From 13412f83a60b8ec1c8df32bf4c2984e7e53febe8 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Tue, 12 Aug 2025 08:57:23 +0200 Subject: [PATCH 01/39] Clean up 3.14 --- .github/workflows/lint-and-build.yml | 78 ---------------------------- .github/workflows/transifex-pull.yml | 56 -------------------- .gitignore | 1 - README.md | 44 ---------------- TRANSLATORS | 3 -- 5 files changed, 182 deletions(-) delete mode 100644 .github/workflows/lint-and-build.yml delete mode 100644 .github/workflows/transifex-pull.yml delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100644 TRANSLATORS diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml deleted file mode 100644 index ef0e479..0000000 --- a/.github/workflows/lint-and-build.yml +++ /dev/null @@ -1,78 +0,0 @@ -name: Linting and test building workflow - -on: - schedule: - - cron: '0 0 * * *' - push: - branches: - - '*' - workflow_dispatch: - -jobs: - lint: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - version: [ '3.14' ] - continue-on-error: true - steps: - - uses: actions/setup-python@master - with: - python-version: 3 - - run: pip install sphinx-lint - - uses: actions/checkout@master - with: - ref: ${{ matrix.version }} - - uses: rffontenelle/sphinx-lint-problem-matcher@v1.0.0 - - run: sphinx-lint - - build-translation: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - version: [ '3.14' ] - format: [ html, latex ] - steps: - - uses: actions/setup-python@master - with: - python-version: 3 - - uses: actions/checkout@master - with: - repository: python/cpython - ref: ${{ matrix.version }} - - run: make venv - working-directory: ./Doc - - uses: actions/checkout@master - with: - ref: ${{ matrix.version }} - path: Doc/locales/hu/LC_MESSAGES - - run: git pull - working-directory: ./Doc/locales/hu/LC_MESSAGES - - uses: sphinx-doc/github-problem-matcher@v1.1 - - run: make -e SPHINXOPTS="--color -D language='hu' -W --keep-going" ${{ matrix.format }} - working-directory: ./Doc - - uses: actions/upload-artifact@master - if: success() || failure() - with: - name: build-${{ matrix.version }}-${{ matrix.format }} - path: Doc/build/${{ matrix.format }} - - output-pdf: - runs-on: ubuntu-latest - strategy: - matrix: - version: [ '3.14' ] - needs: [ 'build-translation' ] - steps: - - uses: actions/download-artifact@master - with: - name: build-${{ matrix.version }}-latex - - run: sudo apt-get update - - run: sudo apt-get install -y latexmk texlive-xetex fonts-freefont-otf xindy - - run: make - - uses: actions/upload-artifact@master - with: - name: build-${{ matrix.version }}-pdf - path: . \ No newline at end of file diff --git a/.github/workflows/transifex-pull.yml b/.github/workflows/transifex-pull.yml deleted file mode 100644 index 811ff75..0000000 --- a/.github/workflows/transifex-pull.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Pull Translations from Transifex - -on: - schedule: - - cron: '0 * * * *' - workflow_dispatch: -permissions: - contents: write - -jobs: - update-translation: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - version: [ '3.14' ] - steps: - - uses: styfle/cancel-workflow-action@main - with: - access_token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/setup-python@master - with: - python-version: 3 - - name: Install Dependencies - run: | - sudo apt-get install -y gettext - pip install requests cogapp polib transifex-python sphinx-intl blurb six - curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash - curl -O https://raw.githubusercontent.com/python-docs-translations/transifex-automations/master/sample-workflows/transifex-util.py - chmod +x transifex-util.py - working-directory: /usr/local/bin - - uses: actions/checkout@master - with: - ref: ${{ matrix.version }} - fetch-depth: 0 - - run: transifex-util.py recreate_tx_config --language hu --project-slug python-newest --version ${{ matrix.version }} - env: - TX_TOKEN: ${{ secrets.TX_TOKEN }} - - run: transifex-util.py fetch --language hu --project-slug python-newest --version ${{ matrix.version }} - env: - TX_TOKEN: ${{ secrets.TX_TOKEN }} - - run: transifex-util.py delete_obsolete_files --language hu --project-slug python-newest --version ${{ matrix.version }} - - name: Set up Git - run: | - git config --local user.email github-actions@github.com - git config --local user.name "GitHub Action's update-translation job" - - name: Filter files - run: | - ! git diff -I'^"POT-Creation-Date: ' \ - -I'^"Language-Team: ' \ - -I'^# ' -I'^"Last-Translator: ' \ - --exit-code \ - && echo "SIGNIFICANT_CHANGES=1" >> $GITHUB_ENV || exit 0 - - run: git add . - - run: git commit -m 'Update translation from Transifex' - if: env.SIGNIFICANT_CHANGES \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cd1f2c9..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.mo diff --git a/README.md b/README.md deleted file mode 100644 index cb24f79..0000000 --- a/README.md +++ /dev/null @@ -1,44 +0,0 @@ -Hungarian Translation of the Python Documentation -================================================= - -> [!IMPORTANT] -> This translation is in need of a coordinator, if you are interested in doing -> so please open an issue in this repository. - -Contributing to the Translation -------------------------------- - -Your help is welcome; you can start with easy tasks like reviewing -fuzzy entries to help keep the documentation up to date. You can -also proofread already translated entries and finally translate -untranslated ones. - -How to Contribute ------------------ - -Contribution is carried out on -[Transifex](https://explore.transifex.com/python-doc/python-newest/). -The [Python Devguide](https://devguide.python.org/documentation/translations/translating/) -contains all the necessary information to get started. If you have issues with -getting set up, open an issue in this repository and someone will help you. - -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. \ No newline at end of file diff --git a/TRANSLATORS b/TRANSLATORS deleted file mode 100644 index 7becf6d..0000000 --- a/TRANSLATORS +++ /dev/null @@ -1,3 +0,0 @@ -Horváth Árpád -Nyírő Balázs -Bajusz Tamás From 7768550ecc2def5adc3d9d34ccd5e4c095414e20 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Tue, 12 Aug 2025 08:58:07 +0200 Subject: [PATCH 02/39] Add TX config file --- .tx/config | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .tx/config diff --git a/.tx/config b/.tx/config new file mode 100644 index 0000000..e69de29 From b1018c10696d8add2bc8c9ca15498dcc2b9b1403 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Wed, 13 Aug 2025 08:47:40 +0200 Subject: [PATCH 03/39] Add initial files --- .tx/config | 4701 + c-api/abstract.po | 51 + c-api/allocation.po | 209 + c-api/apiabiversion.po | 295 + c-api/arg.po | 1242 + c-api/bool.po | 77 + c-api/buffer.po | 792 + c-api/bytearray.po | 119 + c-api/bytes.po | 362 + c-api/call.po | 571 + c-api/capsule.po | 230 + c-api/cell.po | 87 + c-api/code.po | 481 + c-api/codec.po | 174 + c-api/complex.po | 221 + c-api/concrete.po | 95 + c-api/contextvars.po | 240 + c-api/conversion.po | 242 + c-api/coro.po | 51 + c-api/datetime.po | 309 + c-api/descriptor.po | 40 + c-api/dict.po | 488 + c-api/exceptions.po | 1441 + c-api/extension-modules.po | 357 + c-api/file.po | 155 + c-api/float.po | 226 + c-api/frame.po | 216 + c-api/function.po | 265 + c-api/gcsupport.po | 445 + c-api/gen.po | 66 + c-api/hash.po | 125 + c-api/import.po | 431 + c-api/index.po | 31 + c-api/init.po | 3293 + c-api/init_config.po | 3384 + c-api/intro.po | 1198 + c-api/iter.po | 88 + c-api/iterator.po | 72 + c-api/lifecycle.po | 366 + c-api/list.po | 217 + c-api/long.po | 1023 + c-api/mapping.po | 167 + c-api/marshal.po | 125 + c-api/memory.po | 1219 + c-api/memoryview.po | 104 + c-api/method.po | 127 + c-api/module.po | 847 + c-api/monitoring.po | 304 + c-api/none.po | 53 + c-api/number.po | 328 + c-api/object.po | 969 + c-api/objimpl.po | 29 + c-api/perfmaps.po | 91 + c-api/refcounting.po | 306 + c-api/reflection.po | 128 + c-api/sequence.po | 224 + c-api/set.po | 207 + c-api/slice.po | 174 + c-api/stable.po | 313 + c-api/structures.po | 1094 + c-api/sys.po | 554 + c-api/time.po | 169 + c-api/tuple.po | 285 + c-api/type.po | 796 + c-api/typehints.po | 71 + c-api/typeobj.po | 4622 + c-api/unicode.po | 2333 + c-api/utilities.po | 31 + c-api/veryhigh.po | 417 + c-api/weakref.po | 154 + deprecations/c-api-pending-removal-in-3.14.po | 35 + deprecations/c-api-pending-removal-in-3.15.po | 293 + deprecations/c-api-pending-removal-in-3.16.po | 27 + deprecations/c-api-pending-removal-in-3.18.po | 143 + .../c-api-pending-removal-in-future.po | 117 + deprecations/index.po | 1278 + deprecations/pending-removal-in-3.13.po | 194 + deprecations/pending-removal-in-3.14.po | 213 + deprecations/pending-removal-in-3.15.po | 199 + deprecations/pending-removal-in-3.16.po | 211 + deprecations/pending-removal-in-3.17.po | 37 + deprecations/pending-removal-in-3.19.po | 34 + deprecations/pending-removal-in-future.po | 393 + distributing/index.po | 30 + extending/building.po | 51 + extending/embedding.po | 560 + extending/extending.po | 1940 + extending/index.po | 89 + extending/newtypes.po | 1017 + extending/newtypes_tutorial.po | 2086 + extending/windows.po | 235 + faq/design.po | 1226 + faq/extending.po | 414 + faq/general.po | 686 + faq/gui.po | 115 + faq/index.po | 23 + faq/installed.po | 110 + faq/library.po | 1037 + faq/programming.po | 3430 + faq/windows.po | 423 + howto/annotations.po | 393 + howto/argparse-optparse.po | 137 + howto/argparse.po | 1213 + howto/clinic.po | 29 + howto/cporting.po | 50 + howto/curses.po | 875 + howto/descriptor.po | 1912 + howto/enum.po | 2334 + howto/free-threading-extensions.po | 695 + howto/free-threading-python.po | 305 + howto/functional.po | 1839 + howto/gdb_helpers.po | 789 + howto/index.po | 139 + howto/instrumentation.po | 603 + howto/ipaddress.po | 485 + howto/isolating-extensions.po | 933 + howto/logging-cookbook.po | 5364 + howto/logging.po | 1713 + howto/mro.po | 906 + howto/perf_profiling.po | 454 + howto/pyporting.po | 85 + howto/regex.po | 2288 + howto/remote_debugging.po | 851 + howto/sockets.po | 567 + howto/sorting.po | 638 + howto/timerfd.po | 286 + howto/unicode.po | 1139 + howto/urllib2.po | 808 + installing/index.po | 375 + library/__future__.po | 270 + library/__main__.po | 540 + library/_thread.po | 321 + library/abc.po | 488 + library/aifc.po | 36 + library/allos.po | 32 + library/annotationlib.po | 954 + library/archiving.po | 31 + library/argparse.po | 3157 + library/array.po | 469 + library/ast.po | 3158 + library/asynchat.po | 40 + library/asyncio-api-index.po | 446 + library/asyncio-dev.po | 373 + library/asyncio-eventloop.po | 2577 + library/asyncio-exceptions.po | 108 + library/asyncio-extending.po | 157 + library/asyncio-future.po | 391 + library/asyncio-graph.po | 207 + library/asyncio-llapi-index.po | 1021 + library/asyncio-platforms.po | 159 + library/asyncio-policy.po | 222 + library/asyncio-protocol.po | 1360 + library/asyncio-queue.po | 310 + library/asyncio-runner.po | 258 + library/asyncio-stream.po | 667 + library/asyncio-subprocess.po | 496 + library/asyncio-sync.po | 613 + library/asyncio-task.po | 1968 + library/asyncio.po | 178 + library/asyncore.po | 40 + library/atexit.po | 186 + library/audioop.po | 36 + library/audit_events.po | 139 + library/base64.po | 460 + library/bdb.po | 668 + library/binary.po | 44 + library/binascii.po | 241 + library/bisect.po | 328 + library/builtins.po | 84 + library/bz2.po | 426 + library/calendar.po | 732 + library/cgi.po | 43 + library/cgitb.po | 43 + library/chunk.po | 36 + library/cmath.po | 640 + library/cmd.po | 482 + library/cmdline.po | 231 + library/cmdlinelibs.po | 33 + library/code.po | 252 + library/codecs.po | 2892 + library/codeop.po | 113 + library/collections.abc.po | 757 + library/collections.po | 1774 + library/colorsys.po | 86 + library/compileall.po | 425 + library/compression.po | 54 + library/compression.zstd.po | 1160 + library/concurrency.po | 36 + library/concurrent.futures.po | 925 + library/concurrent.interpreters.po | 530 + library/concurrent.po | 36 + library/configparser.po | 1814 + library/constants.po | 160 + library/contextlib.po | 1416 + library/contextvars.po | 425 + library/copy.po | 200 + library/copyreg.po | 86 + library/crypt.po | 45 + library/crypto.po | 34 + library/csv.po | 825 + library/ctypes.po | 4243 + library/curses.ascii.po | 344 + library/curses.panel.po | 130 + library/curses.po | 2610 + library/custominterp.po | 36 + library/dataclasses.po | 1221 + library/datatypes.po | 43 + library/datetime.po | 4203 + library/dbm.po | 600 + library/debug.po | 33 + library/decimal.po | 2738 + library/development.po | 36 + library/devmode.po | 385 + library/dialog.po | 287 + library/difflib.po | 1057 + library/dis.po | 2321 + library/distribution.po | 31 + library/distutils.po | 38 + library/doctest.po | 2679 + library/email.charset.po | 295 + library/email.compat32-message.po | 930 + library/email.contentmanager.po | 296 + library/email.encoders.po | 123 + library/email.errors.po | 183 + library/email.examples.po | 487 + library/email.generator.po | 337 + library/email.header.po | 336 + library/email.headerregistry.po | 689 + library/email.iterators.po | 110 + library/email.message.po | 889 + library/email.mime.po | 310 + library/email.parser.po | 383 + library/email.po | 193 + library/email.policy.po | 807 + library/email.utils.po | 279 + library/ensurepip.po | 237 + library/enum.po | 1484 + library/errno.po | 712 + library/exceptions.po | 1377 + library/faulthandler.po | 375 + library/fcntl.po | 390 + library/filecmp.po | 256 + library/fileformats.po | 29 + library/fileinput.po | 318 + library/filesys.po | 59 + library/fnmatch.po | 218 + library/fractions.po | 315 + library/frameworks.po | 34 + library/ftplib.po | 621 + library/functional.po | 33 + library/functions.po | 3309 + library/functools.po | 1089 + library/gc.po | 484 + library/getopt.po | 321 + library/getpass.po | 103 + library/gettext.po | 905 + library/glob.po | 281 + library/graphlib.po | 318 + library/grp.po | 148 + library/gzip.po | 434 + library/hashlib.po | 1051 + library/heapq.po | 537 + library/hmac.po | 181 + library/html.entities.po | 72 + library/html.parser.po | 468 + library/html.po | 61 + library/http.client.po | 784 + library/http.cookiejar.po | 989 + library/http.cookies.po | 361 + library/http.po | 1084 + library/http.server.po | 815 + library/i18n.po | 35 + library/idle.po | 1707 + library/imaplib.po | 844 + library/imghdr.po | 43 + library/imp.po | 42 + library/importlib.metadata.po | 849 + library/importlib.po | 2019 + library/importlib.resources.abc.po | 230 + library/importlib.resources.po | 354 + library/index.po | 61 + library/inspect.po | 2291 + library/internet.po | 52 + library/intro.po | 269 + library/io.po | 1772 + library/ipaddress.po | 1102 + library/ipc.po | 40 + library/itertools.po | 1648 + library/json.po | 1118 + library/keyword.po | 57 + library/language.po | 34 + library/linecache.po | 119 + library/locale.po | 903 + library/logging.config.po | 1368 + library/logging.handlers.po | 1696 + library/logging.po | 2291 + library/lzma.po | 703 + library/mailbox.po | 1985 + library/mailcap.po | 36 + library/markup.po | 31 + library/marshal.po | 335 + library/math.po | 1370 + library/mimetypes.po | 488 + library/mm.po | 30 + library/mmap.po | 482 + library/modulefinder.po | 145 + library/modules.po | 33 + library/msilib.po | 36 + library/msvcrt.po | 291 + library/multiprocessing.po | 4611 + library/multiprocessing.shared_memory.po | 489 + library/netdata.po | 29 + library/netrc.po | 130 + library/nis.po | 36 + library/nntplib.po | 36 + library/numbers.po | 299 + library/numeric.po | 37 + library/operator.po | 893 + library/optparse.po | 3381 + library/os.path.po | 720 + library/os.po | 6655 ++ library/ossaudiodev.po | 36 + library/pathlib.po | 2829 + library/pdb.po | 1163 + library/persistence.po | 36 + library/pickle.po | 1877 + library/pickletools.po | 139 + library/pipes.po | 40 + library/pkgutil.po | 300 + library/platform.po | 538 + library/plistlib.po | 303 + library/poplib.po | 337 + library/posix.po | 148 + library/pprint.po | 464 + library/profile.po | 1138 + library/pty.po | 182 + library/pwd.po | 182 + library/py_compile.po | 216 + library/pyclbr.po | 171 + library/pydoc.po | 182 + library/pyexpat.po | 969 + library/python.po | 36 + library/queue.po | 393 + library/quopri.po | 97 + library/random.po | 1021 + library/re.po | 2815 + library/readline.po | 447 + library/removed.po | 29 + library/reprlib.po | 302 + library/resource.po | 590 + library/rlcompleter.po | 107 + library/runpy.po | 281 + library/sched.po | 188 + library/secrets.po | 246 + library/security_warnings.po | 114 + library/select.po | 1034 + library/selectors.po | 379 + library/shelve.po | 304 + library/shlex.po | 550 + library/shutil.po | 1244 + library/signal.po | 940 + library/site.po | 419 + library/smtpd.po | 42 + library/smtplib.po | 789 + library/sndhdr.po | 43 + library/socket.po | 2742 + library/socketserver.po | 826 + library/spwd.po | 42 + library/sqlite3.po | 3164 + library/ssl.po | 3641 + library/stat.po | 480 + library/statistics.po | 1663 + library/stdtypes.po | 8928 ++ library/string.po | 1462 + library/string.templatelib.po | 329 + library/stringprep.po | 164 + library/struct.po | 1144 + library/subprocess.po | 2012 + library/sunau.po | 36 + library/superseded.po | 49 + library/symtable.po | 408 + library/sys.monitoring.po | 642 + library/sys.po | 2953 + library/sys_path_init.po | 217 + library/sysconfig.po | 768 + library/syslog.po | 217 + library/tabnanny.po | 82 + library/tarfile.po | 2044 + library/telnetlib.po | 43 + library/tempfile.po | 635 + library/termios.po | 176 + library/test.po | 2067 + library/text.po | 36 + library/textwrap.po | 392 + library/threading.po | 1917 + library/time.po | 1544 + library/timeit.po | 496 + library/tk.po | 68 + library/tkinter.colorchooser.po | 50 + library/tkinter.dnd.po | 114 + library/tkinter.font.po | 169 + library/tkinter.messagebox.po | 247 + library/tkinter.po | 1913 + library/tkinter.scrolledtext.po | 58 + library/tkinter.ttk.po | 2353 + library/token.po | 502 + library/tokenize.po | 412 + library/tomllib.po | 261 + library/trace.po | 277 + library/traceback.po | 918 + library/tracemalloc.po | 1033 + library/tty.po | 112 + library/turtle.po | 3903 + library/types.po | 647 + library/typing.po | 5567 + library/unicodedata.po | 212 + library/unittest.mock-examples.po | 1356 + library/unittest.mock.po | 3101 + library/unittest.po | 3566 + library/unix.po | 30 + library/urllib.error.po | 104 + library/urllib.parse.po | 1070 + library/urllib.po | 49 + library/urllib.request.po | 1919 + library/urllib.robotparser.po | 137 + library/uu.po | 36 + library/uuid.po | 534 + library/venv.po | 1038 + library/warnings.po | 1021 + library/wave.po | 300 + library/weakref.po | 730 + library/webbrowser.po | 477 + library/windows.po | 29 + library/winreg.po | 989 + library/winsound.po | 226 + library/wsgiref.po | 1081 + library/xdrlib.po | 36 + library/xml.dom.minidom.po | 467 + library/xml.dom.po | 1362 + library/xml.dom.pulldom.po | 210 + library/xml.etree.elementtree.po | 1925 + library/xml.po | 155 + library/xml.sax.handler.po | 611 + library/xml.sax.po | 228 + library/xml.sax.reader.po | 433 + library/xml.sax.utils.po | 127 + library/xmlrpc.client.po | 816 + library/xmlrpc.po | 44 + library/xmlrpc.server.po | 496 + library/zipapp.po | 512 + library/zipfile.po | 1249 + library/zipimport.po | 250 + library/zlib.po | 483 + library/zoneinfo.po | 593 + reference/compound_stmts.po | 2963 + reference/datamodel.po | 5536 + reference/executionmodel.po | 671 + reference/expressions.po | 3288 + reference/grammar.po | 1964 + reference/import.po | 1463 + reference/index.po | 35 + reference/introduction.po | 370 + reference/lexical_analysis.po | 2299 + reference/simple_stmts.po | 1719 + reference/toplevel_components.po | 178 + tutorial/appendix.po | 219 + tutorial/appetite.po | 205 + tutorial/classes.po | 1567 + tutorial/controlflow.po | 1875 + tutorial/datastructures.po | 1142 + tutorial/errors.po | 1025 + tutorial/floatingpoint.po | 552 + tutorial/index.po | 109 + tutorial/inputoutput.po | 931 + tutorial/interactive.po | 74 + tutorial/interpreter.po | 305 + tutorial/introduction.po | 1024 + tutorial/modules.po | 1089 + tutorial/stdlib.po | 586 + tutorial/stdlib2.po | 704 + tutorial/venv.po | 359 + tutorial/whatnow.po | 141 + using/android.po | 158 + using/cmdline.po | 1695 + using/configure.po | 2138 + using/editors.po | 56 + using/index.po | 30 + using/ios.po | 648 + using/mac.po | 686 + using/unix.po | 355 + using/windows.po | 3259 + whatsnew/2.0.po | 1754 + whatsnew/2.1.po | 1185 + whatsnew/2.2.po | 1853 + whatsnew/2.3.po | 3075 + whatsnew/2.4.po | 2379 + whatsnew/2.5.po | 3405 + whatsnew/2.6.po | 4682 + whatsnew/2.7.po | 3869 + whatsnew/3.0.po | 1382 + whatsnew/3.1.po | 886 + whatsnew/3.10.po | 3622 + whatsnew/3.11.po | 4504 + whatsnew/3.12.po | 5136 + whatsnew/3.13.po | 5677 ++ whatsnew/3.14.po | 6068 ++ whatsnew/3.2.po | 4080 + whatsnew/3.3.po | 4122 + whatsnew/3.4.po | 3668 + whatsnew/3.5.po | 3778 + whatsnew/3.6.po | 3539 + whatsnew/3.7.po | 3764 + whatsnew/3.8.po | 3515 + whatsnew/3.9.po | 2537 + whatsnew/changelog.po | 83711 ++++++++++++++++ whatsnew/index.po | 44 + 516 files changed, 534910 insertions(+) create mode 100644 c-api/abstract.po create mode 100644 c-api/allocation.po create mode 100644 c-api/apiabiversion.po create mode 100644 c-api/arg.po create mode 100644 c-api/bool.po create mode 100644 c-api/buffer.po create mode 100644 c-api/bytearray.po create mode 100644 c-api/bytes.po create mode 100644 c-api/call.po create mode 100644 c-api/capsule.po create mode 100644 c-api/cell.po create mode 100644 c-api/code.po create mode 100644 c-api/codec.po create mode 100644 c-api/complex.po create mode 100644 c-api/concrete.po create mode 100644 c-api/contextvars.po create mode 100644 c-api/conversion.po create mode 100644 c-api/coro.po create mode 100644 c-api/datetime.po create mode 100644 c-api/descriptor.po create mode 100644 c-api/dict.po create mode 100644 c-api/exceptions.po create mode 100644 c-api/extension-modules.po create mode 100644 c-api/file.po create mode 100644 c-api/float.po create mode 100644 c-api/frame.po create mode 100644 c-api/function.po create mode 100644 c-api/gcsupport.po create mode 100644 c-api/gen.po create mode 100644 c-api/hash.po create mode 100644 c-api/import.po create mode 100644 c-api/index.po create mode 100644 c-api/init.po create mode 100644 c-api/init_config.po create mode 100644 c-api/intro.po create mode 100644 c-api/iter.po create mode 100644 c-api/iterator.po create mode 100644 c-api/lifecycle.po create mode 100644 c-api/list.po create mode 100644 c-api/long.po create mode 100644 c-api/mapping.po create mode 100644 c-api/marshal.po create mode 100644 c-api/memory.po create mode 100644 c-api/memoryview.po create mode 100644 c-api/method.po create mode 100644 c-api/module.po create mode 100644 c-api/monitoring.po create mode 100644 c-api/none.po create mode 100644 c-api/number.po create mode 100644 c-api/object.po create mode 100644 c-api/objimpl.po create mode 100644 c-api/perfmaps.po create mode 100644 c-api/refcounting.po create mode 100644 c-api/reflection.po create mode 100644 c-api/sequence.po create mode 100644 c-api/set.po create mode 100644 c-api/slice.po create mode 100644 c-api/stable.po create mode 100644 c-api/structures.po create mode 100644 c-api/sys.po create mode 100644 c-api/time.po create mode 100644 c-api/tuple.po create mode 100644 c-api/type.po create mode 100644 c-api/typehints.po create mode 100644 c-api/typeobj.po create mode 100644 c-api/unicode.po create mode 100644 c-api/utilities.po create mode 100644 c-api/veryhigh.po create mode 100644 c-api/weakref.po create mode 100644 deprecations/c-api-pending-removal-in-3.14.po create mode 100644 deprecations/c-api-pending-removal-in-3.15.po create mode 100644 deprecations/c-api-pending-removal-in-3.16.po create mode 100644 deprecations/c-api-pending-removal-in-3.18.po create mode 100644 deprecations/c-api-pending-removal-in-future.po create mode 100644 deprecations/index.po create mode 100644 deprecations/pending-removal-in-3.13.po create mode 100644 deprecations/pending-removal-in-3.14.po create mode 100644 deprecations/pending-removal-in-3.15.po create mode 100644 deprecations/pending-removal-in-3.16.po create mode 100644 deprecations/pending-removal-in-3.17.po create mode 100644 deprecations/pending-removal-in-3.19.po create mode 100644 deprecations/pending-removal-in-future.po create mode 100644 distributing/index.po create mode 100644 extending/building.po create mode 100644 extending/embedding.po create mode 100644 extending/extending.po create mode 100644 extending/index.po create mode 100644 extending/newtypes.po create mode 100644 extending/newtypes_tutorial.po create mode 100644 extending/windows.po create mode 100644 faq/design.po create mode 100644 faq/extending.po create mode 100644 faq/general.po create mode 100644 faq/gui.po create mode 100644 faq/index.po create mode 100644 faq/installed.po create mode 100644 faq/library.po create mode 100644 faq/programming.po create mode 100644 faq/windows.po create mode 100644 howto/annotations.po create mode 100644 howto/argparse-optparse.po create mode 100644 howto/argparse.po create mode 100644 howto/clinic.po create mode 100644 howto/cporting.po create mode 100644 howto/curses.po create mode 100644 howto/descriptor.po create mode 100644 howto/enum.po create mode 100644 howto/free-threading-extensions.po create mode 100644 howto/free-threading-python.po create mode 100644 howto/functional.po create mode 100644 howto/gdb_helpers.po create mode 100644 howto/index.po create mode 100644 howto/instrumentation.po create mode 100644 howto/ipaddress.po create mode 100644 howto/isolating-extensions.po create mode 100644 howto/logging-cookbook.po create mode 100644 howto/logging.po create mode 100644 howto/mro.po create mode 100644 howto/perf_profiling.po create mode 100644 howto/pyporting.po create mode 100644 howto/regex.po create mode 100644 howto/remote_debugging.po create mode 100644 howto/sockets.po create mode 100644 howto/sorting.po create mode 100644 howto/timerfd.po create mode 100644 howto/unicode.po create mode 100644 howto/urllib2.po create mode 100644 installing/index.po create mode 100644 library/__future__.po create mode 100644 library/__main__.po create mode 100644 library/_thread.po create mode 100644 library/abc.po create mode 100644 library/aifc.po create mode 100644 library/allos.po create mode 100644 library/annotationlib.po create mode 100644 library/archiving.po create mode 100644 library/argparse.po create mode 100644 library/array.po create mode 100644 library/ast.po create mode 100644 library/asynchat.po create mode 100644 library/asyncio-api-index.po create mode 100644 library/asyncio-dev.po create mode 100644 library/asyncio-eventloop.po create mode 100644 library/asyncio-exceptions.po create mode 100644 library/asyncio-extending.po create mode 100644 library/asyncio-future.po create mode 100644 library/asyncio-graph.po create mode 100644 library/asyncio-llapi-index.po create mode 100644 library/asyncio-platforms.po create mode 100644 library/asyncio-policy.po create mode 100644 library/asyncio-protocol.po create mode 100644 library/asyncio-queue.po create mode 100644 library/asyncio-runner.po create mode 100644 library/asyncio-stream.po create mode 100644 library/asyncio-subprocess.po create mode 100644 library/asyncio-sync.po create mode 100644 library/asyncio-task.po create mode 100644 library/asyncio.po create mode 100644 library/asyncore.po create mode 100644 library/atexit.po create mode 100644 library/audioop.po create mode 100644 library/audit_events.po create mode 100644 library/base64.po create mode 100644 library/bdb.po create mode 100644 library/binary.po create mode 100644 library/binascii.po create mode 100644 library/bisect.po create mode 100644 library/builtins.po create mode 100644 library/bz2.po create mode 100644 library/calendar.po create mode 100644 library/cgi.po create mode 100644 library/cgitb.po create mode 100644 library/chunk.po create mode 100644 library/cmath.po create mode 100644 library/cmd.po create mode 100644 library/cmdline.po create mode 100644 library/cmdlinelibs.po create mode 100644 library/code.po create mode 100644 library/codecs.po create mode 100644 library/codeop.po create mode 100644 library/collections.abc.po create mode 100644 library/collections.po create mode 100644 library/colorsys.po create mode 100644 library/compileall.po create mode 100644 library/compression.po create mode 100644 library/compression.zstd.po create mode 100644 library/concurrency.po create mode 100644 library/concurrent.futures.po create mode 100644 library/concurrent.interpreters.po create mode 100644 library/concurrent.po create mode 100644 library/configparser.po create mode 100644 library/constants.po create mode 100644 library/contextlib.po create mode 100644 library/contextvars.po create mode 100644 library/copy.po create mode 100644 library/copyreg.po create mode 100644 library/crypt.po create mode 100644 library/crypto.po create mode 100644 library/csv.po create mode 100644 library/ctypes.po create mode 100644 library/curses.ascii.po create mode 100644 library/curses.panel.po create mode 100644 library/curses.po create mode 100644 library/custominterp.po create mode 100644 library/dataclasses.po create mode 100644 library/datatypes.po create mode 100644 library/datetime.po create mode 100644 library/dbm.po create mode 100644 library/debug.po create mode 100644 library/decimal.po create mode 100644 library/development.po create mode 100644 library/devmode.po create mode 100644 library/dialog.po create mode 100644 library/difflib.po create mode 100644 library/dis.po create mode 100644 library/distribution.po create mode 100644 library/distutils.po create mode 100644 library/doctest.po create mode 100644 library/email.charset.po create mode 100644 library/email.compat32-message.po create mode 100644 library/email.contentmanager.po create mode 100644 library/email.encoders.po create mode 100644 library/email.errors.po create mode 100644 library/email.examples.po create mode 100644 library/email.generator.po create mode 100644 library/email.header.po create mode 100644 library/email.headerregistry.po create mode 100644 library/email.iterators.po create mode 100644 library/email.message.po create mode 100644 library/email.mime.po create mode 100644 library/email.parser.po create mode 100644 library/email.po create mode 100644 library/email.policy.po create mode 100644 library/email.utils.po create mode 100644 library/ensurepip.po create mode 100644 library/enum.po create mode 100644 library/errno.po create mode 100644 library/exceptions.po create mode 100644 library/faulthandler.po create mode 100644 library/fcntl.po create mode 100644 library/filecmp.po create mode 100644 library/fileformats.po create mode 100644 library/fileinput.po create mode 100644 library/filesys.po create mode 100644 library/fnmatch.po create mode 100644 library/fractions.po create mode 100644 library/frameworks.po create mode 100644 library/ftplib.po create mode 100644 library/functional.po create mode 100644 library/functions.po create mode 100644 library/functools.po create mode 100644 library/gc.po create mode 100644 library/getopt.po create mode 100644 library/getpass.po create mode 100644 library/gettext.po create mode 100644 library/glob.po create mode 100644 library/graphlib.po create mode 100644 library/grp.po create mode 100644 library/gzip.po create mode 100644 library/hashlib.po create mode 100644 library/heapq.po create mode 100644 library/hmac.po create mode 100644 library/html.entities.po create mode 100644 library/html.parser.po create mode 100644 library/html.po create mode 100644 library/http.client.po create mode 100644 library/http.cookiejar.po create mode 100644 library/http.cookies.po create mode 100644 library/http.po create mode 100644 library/http.server.po create mode 100644 library/i18n.po create mode 100644 library/idle.po create mode 100644 library/imaplib.po create mode 100644 library/imghdr.po create mode 100644 library/imp.po create mode 100644 library/importlib.metadata.po create mode 100644 library/importlib.po create mode 100644 library/importlib.resources.abc.po create mode 100644 library/importlib.resources.po create mode 100644 library/index.po create mode 100644 library/inspect.po create mode 100644 library/internet.po create mode 100644 library/intro.po create mode 100644 library/io.po create mode 100644 library/ipaddress.po create mode 100644 library/ipc.po create mode 100644 library/itertools.po create mode 100644 library/json.po create mode 100644 library/keyword.po create mode 100644 library/language.po create mode 100644 library/linecache.po create mode 100644 library/locale.po create mode 100644 library/logging.config.po create mode 100644 library/logging.handlers.po create mode 100644 library/logging.po create mode 100644 library/lzma.po create mode 100644 library/mailbox.po create mode 100644 library/mailcap.po create mode 100644 library/markup.po create mode 100644 library/marshal.po create mode 100644 library/math.po create mode 100644 library/mimetypes.po create mode 100644 library/mm.po create mode 100644 library/mmap.po create mode 100644 library/modulefinder.po create mode 100644 library/modules.po create mode 100644 library/msilib.po create mode 100644 library/msvcrt.po create mode 100644 library/multiprocessing.po create mode 100644 library/multiprocessing.shared_memory.po create mode 100644 library/netdata.po create mode 100644 library/netrc.po create mode 100644 library/nis.po create mode 100644 library/nntplib.po create mode 100644 library/numbers.po create mode 100644 library/numeric.po create mode 100644 library/operator.po create mode 100644 library/optparse.po create mode 100644 library/os.path.po create mode 100644 library/os.po create mode 100644 library/ossaudiodev.po create mode 100644 library/pathlib.po create mode 100644 library/pdb.po create mode 100644 library/persistence.po create mode 100644 library/pickle.po create mode 100644 library/pickletools.po create mode 100644 library/pipes.po create mode 100644 library/pkgutil.po create mode 100644 library/platform.po create mode 100644 library/plistlib.po create mode 100644 library/poplib.po create mode 100644 library/posix.po create mode 100644 library/pprint.po create mode 100644 library/profile.po create mode 100644 library/pty.po create mode 100644 library/pwd.po create mode 100644 library/py_compile.po create mode 100644 library/pyclbr.po create mode 100644 library/pydoc.po create mode 100644 library/pyexpat.po create mode 100644 library/python.po create mode 100644 library/queue.po create mode 100644 library/quopri.po create mode 100644 library/random.po create mode 100644 library/re.po create mode 100644 library/readline.po create mode 100644 library/removed.po create mode 100644 library/reprlib.po create mode 100644 library/resource.po create mode 100644 library/rlcompleter.po create mode 100644 library/runpy.po create mode 100644 library/sched.po create mode 100644 library/secrets.po create mode 100644 library/security_warnings.po create mode 100644 library/select.po create mode 100644 library/selectors.po create mode 100644 library/shelve.po create mode 100644 library/shlex.po create mode 100644 library/shutil.po create mode 100644 library/signal.po create mode 100644 library/site.po create mode 100644 library/smtpd.po create mode 100644 library/smtplib.po create mode 100644 library/sndhdr.po create mode 100644 library/socket.po create mode 100644 library/socketserver.po create mode 100644 library/spwd.po create mode 100644 library/sqlite3.po create mode 100644 library/ssl.po create mode 100644 library/stat.po create mode 100644 library/statistics.po create mode 100644 library/stdtypes.po create mode 100644 library/string.po create mode 100644 library/string.templatelib.po create mode 100644 library/stringprep.po create mode 100644 library/struct.po create mode 100644 library/subprocess.po create mode 100644 library/sunau.po create mode 100644 library/superseded.po create mode 100644 library/symtable.po create mode 100644 library/sys.monitoring.po create mode 100644 library/sys.po create mode 100644 library/sys_path_init.po create mode 100644 library/sysconfig.po create mode 100644 library/syslog.po create mode 100644 library/tabnanny.po create mode 100644 library/tarfile.po create mode 100644 library/telnetlib.po create mode 100644 library/tempfile.po create mode 100644 library/termios.po create mode 100644 library/test.po create mode 100644 library/text.po create mode 100644 library/textwrap.po create mode 100644 library/threading.po create mode 100644 library/time.po create mode 100644 library/timeit.po create mode 100644 library/tk.po create mode 100644 library/tkinter.colorchooser.po create mode 100644 library/tkinter.dnd.po create mode 100644 library/tkinter.font.po create mode 100644 library/tkinter.messagebox.po create mode 100644 library/tkinter.po create mode 100644 library/tkinter.scrolledtext.po create mode 100644 library/tkinter.ttk.po create mode 100644 library/token.po create mode 100644 library/tokenize.po create mode 100644 library/tomllib.po create mode 100644 library/trace.po create mode 100644 library/traceback.po create mode 100644 library/tracemalloc.po create mode 100644 library/tty.po create mode 100644 library/turtle.po create mode 100644 library/types.po create mode 100644 library/typing.po create mode 100644 library/unicodedata.po create mode 100644 library/unittest.mock-examples.po create mode 100644 library/unittest.mock.po create mode 100644 library/unittest.po create mode 100644 library/unix.po create mode 100644 library/urllib.error.po create mode 100644 library/urllib.parse.po create mode 100644 library/urllib.po create mode 100644 library/urllib.request.po create mode 100644 library/urllib.robotparser.po create mode 100644 library/uu.po create mode 100644 library/uuid.po create mode 100644 library/venv.po create mode 100644 library/warnings.po create mode 100644 library/wave.po create mode 100644 library/weakref.po create mode 100644 library/webbrowser.po create mode 100644 library/windows.po create mode 100644 library/winreg.po create mode 100644 library/winsound.po create mode 100644 library/wsgiref.po create mode 100644 library/xdrlib.po create mode 100644 library/xml.dom.minidom.po create mode 100644 library/xml.dom.po create mode 100644 library/xml.dom.pulldom.po create mode 100644 library/xml.etree.elementtree.po create mode 100644 library/xml.po create mode 100644 library/xml.sax.handler.po create mode 100644 library/xml.sax.po create mode 100644 library/xml.sax.reader.po create mode 100644 library/xml.sax.utils.po create mode 100644 library/xmlrpc.client.po create mode 100644 library/xmlrpc.po create mode 100644 library/xmlrpc.server.po create mode 100644 library/zipapp.po create mode 100644 library/zipfile.po create mode 100644 library/zipimport.po create mode 100644 library/zlib.po create mode 100644 library/zoneinfo.po create mode 100644 reference/compound_stmts.po create mode 100644 reference/datamodel.po create mode 100644 reference/executionmodel.po create mode 100644 reference/expressions.po create mode 100644 reference/grammar.po create mode 100644 reference/import.po create mode 100644 reference/index.po create mode 100644 reference/introduction.po create mode 100644 reference/lexical_analysis.po create mode 100644 reference/simple_stmts.po create mode 100644 reference/toplevel_components.po create mode 100644 tutorial/appendix.po create mode 100644 tutorial/appetite.po create mode 100644 tutorial/classes.po create mode 100644 tutorial/controlflow.po create mode 100644 tutorial/datastructures.po create mode 100644 tutorial/errors.po create mode 100644 tutorial/floatingpoint.po create mode 100644 tutorial/index.po create mode 100644 tutorial/inputoutput.po create mode 100644 tutorial/interactive.po create mode 100644 tutorial/interpreter.po create mode 100644 tutorial/introduction.po create mode 100644 tutorial/modules.po create mode 100644 tutorial/stdlib.po create mode 100644 tutorial/stdlib2.po create mode 100644 tutorial/venv.po create mode 100644 tutorial/whatnow.po create mode 100644 using/android.po create mode 100644 using/cmdline.po create mode 100644 using/configure.po create mode 100644 using/editors.po create mode 100644 using/index.po create mode 100644 using/ios.po create mode 100644 using/mac.po create mode 100644 using/unix.po create mode 100644 using/windows.po create mode 100644 whatsnew/2.0.po create mode 100644 whatsnew/2.1.po create mode 100644 whatsnew/2.2.po create mode 100644 whatsnew/2.3.po create mode 100644 whatsnew/2.4.po create mode 100644 whatsnew/2.5.po create mode 100644 whatsnew/2.6.po create mode 100644 whatsnew/2.7.po create mode 100644 whatsnew/3.0.po create mode 100644 whatsnew/3.1.po create mode 100644 whatsnew/3.10.po create mode 100644 whatsnew/3.11.po create mode 100644 whatsnew/3.12.po create mode 100644 whatsnew/3.13.po create mode 100644 whatsnew/3.14.po create mode 100644 whatsnew/3.2.po create mode 100644 whatsnew/3.3.po create mode 100644 whatsnew/3.4.po create mode 100644 whatsnew/3.5.po create mode 100644 whatsnew/3.6.po create mode 100644 whatsnew/3.7.po create mode 100644 whatsnew/3.8.po create mode 100644 whatsnew/3.9.po create mode 100644 whatsnew/changelog.po create mode 100644 whatsnew/index.po diff --git a/.tx/config b/.tx/config index e69de29..eb7e34a 100644 --- a/.tx/config +++ b/.tx/config @@ -0,0 +1,4701 @@ +[main] +host = https://www.transifex.com + +[o:python-doc:p:was-python-newest:r:about] +file_filter = about.po +source_file = gettext/about.pot +type = PO +minimum_perc = 0 +resource_name = about +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:bugs] +file_filter = bugs.po +source_file = gettext/bugs.pot +type = PO +minimum_perc = 0 +resource_name = bugs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--abstract] +file_filter = c-api/abstract.po +source_file = gettext/c-api/abstract.pot +type = PO +minimum_perc = 0 +resource_name = c-api--abstract +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--allocation] +file_filter = c-api/allocation.po +source_file = gettext/c-api/allocation.pot +type = PO +minimum_perc = 0 +resource_name = c-api--allocation +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--apiabiversion] +file_filter = c-api/apiabiversion.po +source_file = gettext/c-api/apiabiversion.pot +type = PO +minimum_perc = 0 +resource_name = c-api--apiabiversion +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--arg] +file_filter = c-api/arg.po +source_file = gettext/c-api/arg.pot +type = PO +minimum_perc = 0 +resource_name = c-api--arg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--bool] +file_filter = c-api/bool.po +source_file = gettext/c-api/bool.pot +type = PO +minimum_perc = 0 +resource_name = c-api--bool +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--buffer] +file_filter = c-api/buffer.po +source_file = gettext/c-api/buffer.pot +type = PO +minimum_perc = 0 +resource_name = c-api--buffer +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--bytearray] +file_filter = c-api/bytearray.po +source_file = gettext/c-api/bytearray.pot +type = PO +minimum_perc = 0 +resource_name = c-api--bytearray +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--bytes] +file_filter = c-api/bytes.po +source_file = gettext/c-api/bytes.pot +type = PO +minimum_perc = 0 +resource_name = c-api--bytes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--call] +file_filter = c-api/call.po +source_file = gettext/c-api/call.pot +type = PO +minimum_perc = 0 +resource_name = c-api--call +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--capsule] +file_filter = c-api/capsule.po +source_file = gettext/c-api/capsule.pot +type = PO +minimum_perc = 0 +resource_name = c-api--capsule +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--cell] +file_filter = c-api/cell.po +source_file = gettext/c-api/cell.pot +type = PO +minimum_perc = 0 +resource_name = c-api--cell +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--code] +file_filter = c-api/code.po +source_file = gettext/c-api/code.pot +type = PO +minimum_perc = 0 +resource_name = c-api--code +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--codec] +file_filter = c-api/codec.po +source_file = gettext/c-api/codec.pot +type = PO +minimum_perc = 0 +resource_name = c-api--codec +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--complex] +file_filter = c-api/complex.po +source_file = gettext/c-api/complex.pot +type = PO +minimum_perc = 0 +resource_name = c-api--complex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--concrete] +file_filter = c-api/concrete.po +source_file = gettext/c-api/concrete.pot +type = PO +minimum_perc = 0 +resource_name = c-api--concrete +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--contextvars] +file_filter = c-api/contextvars.po +source_file = gettext/c-api/contextvars.pot +type = PO +minimum_perc = 0 +resource_name = c-api--contextvars +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--conversion] +file_filter = c-api/conversion.po +source_file = gettext/c-api/conversion.pot +type = PO +minimum_perc = 0 +resource_name = c-api--conversion +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--coro] +file_filter = c-api/coro.po +source_file = gettext/c-api/coro.pot +type = PO +minimum_perc = 0 +resource_name = c-api--coro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--datetime] +file_filter = c-api/datetime.po +source_file = gettext/c-api/datetime.pot +type = PO +minimum_perc = 0 +resource_name = c-api--datetime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--descriptor] +file_filter = c-api/descriptor.po +source_file = gettext/c-api/descriptor.pot +type = PO +minimum_perc = 0 +resource_name = c-api--descriptor +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--dict] +file_filter = c-api/dict.po +source_file = gettext/c-api/dict.pot +type = PO +minimum_perc = 0 +resource_name = c-api--dict +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--exceptions] +file_filter = c-api/exceptions.po +source_file = gettext/c-api/exceptions.pot +type = PO +minimum_perc = 0 +resource_name = c-api--exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--extension-modules] +file_filter = c-api/extension-modules.po +source_file = gettext/c-api/extension-modules.pot +type = PO +minimum_perc = 0 +resource_name = c-api--extension-modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--file] +file_filter = c-api/file.po +source_file = gettext/c-api/file.pot +type = PO +minimum_perc = 0 +resource_name = c-api--file +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--float] +file_filter = c-api/float.po +source_file = gettext/c-api/float.pot +type = PO +minimum_perc = 0 +resource_name = c-api--float +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--frame] +file_filter = c-api/frame.po +source_file = gettext/c-api/frame.pot +type = PO +minimum_perc = 0 +resource_name = c-api--frame +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--function] +file_filter = c-api/function.po +source_file = gettext/c-api/function.pot +type = PO +minimum_perc = 0 +resource_name = c-api--function +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--gcsupport] +file_filter = c-api/gcsupport.po +source_file = gettext/c-api/gcsupport.pot +type = PO +minimum_perc = 0 +resource_name = c-api--gcsupport +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--gen] +file_filter = c-api/gen.po +source_file = gettext/c-api/gen.pot +type = PO +minimum_perc = 0 +resource_name = c-api--gen +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--hash] +file_filter = c-api/hash.po +source_file = gettext/c-api/hash.pot +type = PO +minimum_perc = 0 +resource_name = c-api--hash +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--import] +file_filter = c-api/import.po +source_file = gettext/c-api/import.pot +type = PO +minimum_perc = 0 +resource_name = c-api--import +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--index] +file_filter = c-api/index.po +source_file = gettext/c-api/index.pot +type = PO +minimum_perc = 0 +resource_name = c-api--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--init] +file_filter = c-api/init.po +source_file = gettext/c-api/init.pot +type = PO +minimum_perc = 0 +resource_name = c-api--init +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--init_config] +file_filter = c-api/init_config.po +source_file = gettext/c-api/init_config.pot +type = PO +minimum_perc = 0 +resource_name = c-api--init_config +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--intro] +file_filter = c-api/intro.po +source_file = gettext/c-api/intro.pot +type = PO +minimum_perc = 0 +resource_name = c-api--intro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--iter] +file_filter = c-api/iter.po +source_file = gettext/c-api/iter.pot +type = PO +minimum_perc = 0 +resource_name = c-api--iter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--iterator] +file_filter = c-api/iterator.po +source_file = gettext/c-api/iterator.pot +type = PO +minimum_perc = 0 +resource_name = c-api--iterator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--lifecycle] +file_filter = c-api/lifecycle.po +source_file = gettext/c-api/lifecycle.pot +type = PO +minimum_perc = 0 +resource_name = c-api--lifecycle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--list] +file_filter = c-api/list.po +source_file = gettext/c-api/list.pot +type = PO +minimum_perc = 0 +resource_name = c-api--list +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--long] +file_filter = c-api/long.po +source_file = gettext/c-api/long.pot +type = PO +minimum_perc = 0 +resource_name = c-api--long +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--mapping] +file_filter = c-api/mapping.po +source_file = gettext/c-api/mapping.pot +type = PO +minimum_perc = 0 +resource_name = c-api--mapping +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--marshal] +file_filter = c-api/marshal.po +source_file = gettext/c-api/marshal.pot +type = PO +minimum_perc = 0 +resource_name = c-api--marshal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--memory] +file_filter = c-api/memory.po +source_file = gettext/c-api/memory.pot +type = PO +minimum_perc = 0 +resource_name = c-api--memory +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--memoryview] +file_filter = c-api/memoryview.po +source_file = gettext/c-api/memoryview.pot +type = PO +minimum_perc = 0 +resource_name = c-api--memoryview +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--method] +file_filter = c-api/method.po +source_file = gettext/c-api/method.pot +type = PO +minimum_perc = 0 +resource_name = c-api--method +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--module] +file_filter = c-api/module.po +source_file = gettext/c-api/module.pot +type = PO +minimum_perc = 0 +resource_name = c-api--module +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--monitoring] +file_filter = c-api/monitoring.po +source_file = gettext/c-api/monitoring.pot +type = PO +minimum_perc = 0 +resource_name = c-api--monitoring +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--none] +file_filter = c-api/none.po +source_file = gettext/c-api/none.pot +type = PO +minimum_perc = 0 +resource_name = c-api--none +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--number] +file_filter = c-api/number.po +source_file = gettext/c-api/number.pot +type = PO +minimum_perc = 0 +resource_name = c-api--number +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--object] +file_filter = c-api/object.po +source_file = gettext/c-api/object.pot +type = PO +minimum_perc = 0 +resource_name = c-api--object +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--objimpl] +file_filter = c-api/objimpl.po +source_file = gettext/c-api/objimpl.pot +type = PO +minimum_perc = 0 +resource_name = c-api--objimpl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--perfmaps] +file_filter = c-api/perfmaps.po +source_file = gettext/c-api/perfmaps.pot +type = PO +minimum_perc = 0 +resource_name = c-api--perfmaps +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--refcounting] +file_filter = c-api/refcounting.po +source_file = gettext/c-api/refcounting.pot +type = PO +minimum_perc = 0 +resource_name = c-api--refcounting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--reflection] +file_filter = c-api/reflection.po +source_file = gettext/c-api/reflection.pot +type = PO +minimum_perc = 0 +resource_name = c-api--reflection +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--sequence] +file_filter = c-api/sequence.po +source_file = gettext/c-api/sequence.pot +type = PO +minimum_perc = 0 +resource_name = c-api--sequence +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--set] +file_filter = c-api/set.po +source_file = gettext/c-api/set.pot +type = PO +minimum_perc = 0 +resource_name = c-api--set +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--slice] +file_filter = c-api/slice.po +source_file = gettext/c-api/slice.pot +type = PO +minimum_perc = 0 +resource_name = c-api--slice +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--stable] +file_filter = c-api/stable.po +source_file = gettext/c-api/stable.pot +type = PO +minimum_perc = 0 +resource_name = c-api--stable +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--structures] +file_filter = c-api/structures.po +source_file = gettext/c-api/structures.pot +type = PO +minimum_perc = 0 +resource_name = c-api--structures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--sys] +file_filter = c-api/sys.po +source_file = gettext/c-api/sys.pot +type = PO +minimum_perc = 0 +resource_name = c-api--sys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--time] +file_filter = c-api/time.po +source_file = gettext/c-api/time.pot +type = PO +minimum_perc = 0 +resource_name = c-api--time +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--tuple] +file_filter = c-api/tuple.po +source_file = gettext/c-api/tuple.pot +type = PO +minimum_perc = 0 +resource_name = c-api--tuple +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--type] +file_filter = c-api/type.po +source_file = gettext/c-api/type.pot +type = PO +minimum_perc = 0 +resource_name = c-api--type +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--typehints] +file_filter = c-api/typehints.po +source_file = gettext/c-api/typehints.pot +type = PO +minimum_perc = 0 +resource_name = c-api--typehints +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--typeobj] +file_filter = c-api/typeobj.po +source_file = gettext/c-api/typeobj.pot +type = PO +minimum_perc = 0 +resource_name = c-api--typeobj +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--unicode] +file_filter = c-api/unicode.po +source_file = gettext/c-api/unicode.pot +type = PO +minimum_perc = 0 +resource_name = c-api--unicode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--utilities] +file_filter = c-api/utilities.po +source_file = gettext/c-api/utilities.pot +type = PO +minimum_perc = 0 +resource_name = c-api--utilities +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--veryhigh] +file_filter = c-api/veryhigh.po +source_file = gettext/c-api/veryhigh.pot +type = PO +minimum_perc = 0 +resource_name = c-api--veryhigh +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:c-api--weakref] +file_filter = c-api/weakref.po +source_file = gettext/c-api/weakref.pot +type = PO +minimum_perc = 0 +resource_name = c-api--weakref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:contents] +file_filter = contents.po +source_file = gettext/contents.pot +type = PO +minimum_perc = 0 +resource_name = contents +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:copyright] +file_filter = copyright.po +source_file = gettext/copyright.pot +type = PO +minimum_perc = 0 +resource_name = copyright +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--c-api-pending-removal-in-3_14] +file_filter = deprecations/c-api-pending-removal-in-3.14.po +source_file = gettext/deprecations/c-api-pending-removal-in-3.14.pot +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:was-python-newest:r:deprecations--c-api-pending-removal-in-3_15] +file_filter = deprecations/c-api-pending-removal-in-3.15.po +source_file = gettext/deprecations/c-api-pending-removal-in-3.15.pot +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:was-python-newest:r:deprecations--c-api-pending-removal-in-3_16] +file_filter = deprecations/c-api-pending-removal-in-3.16.po +source_file = gettext/deprecations/c-api-pending-removal-in-3.16.pot +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:was-python-newest:r:deprecations--c-api-pending-removal-in-3_18] +file_filter = deprecations/c-api-pending-removal-in-3.18.po +source_file = gettext/deprecations/c-api-pending-removal-in-3.18.pot +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:was-python-newest:r:deprecations--c-api-pending-removal-in-future] +file_filter = deprecations/c-api-pending-removal-in-future.po +source_file = gettext/deprecations/c-api-pending-removal-in-future.pot +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:was-python-newest:r:deprecations--index] +file_filter = deprecations/index.po +source_file = gettext/deprecations/index.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_13] +file_filter = deprecations/pending-removal-in-3.13.po +source_file = gettext/deprecations/pending-removal-in-3.13.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_13 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_14] +file_filter = deprecations/pending-removal-in-3.14.po +source_file = gettext/deprecations/pending-removal-in-3.14.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_14 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_15] +file_filter = deprecations/pending-removal-in-3.15.po +source_file = gettext/deprecations/pending-removal-in-3.15.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_15 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_16] +file_filter = deprecations/pending-removal-in-3.16.po +source_file = gettext/deprecations/pending-removal-in-3.16.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_16 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_17] +file_filter = deprecations/pending-removal-in-3.17.po +source_file = gettext/deprecations/pending-removal-in-3.17.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_17 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-3_19] +file_filter = deprecations/pending-removal-in-3.19.po +source_file = gettext/deprecations/pending-removal-in-3.19.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_19 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:deprecations--pending-removal-in-future] +file_filter = deprecations/pending-removal-in-future.po +source_file = gettext/deprecations/pending-removal-in-future.pot +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-future +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:distributing--index] +file_filter = distributing/index.po +source_file = gettext/distributing/index.pot +type = PO +minimum_perc = 0 +resource_name = distributing--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--building] +file_filter = extending/building.po +source_file = gettext/extending/building.pot +type = PO +minimum_perc = 0 +resource_name = extending--building +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--embedding] +file_filter = extending/embedding.po +source_file = gettext/extending/embedding.pot +type = PO +minimum_perc = 0 +resource_name = extending--embedding +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--extending] +file_filter = extending/extending.po +source_file = gettext/extending/extending.pot +type = PO +minimum_perc = 0 +resource_name = extending--extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--index] +file_filter = extending/index.po +source_file = gettext/extending/index.pot +type = PO +minimum_perc = 0 +resource_name = extending--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--newtypes] +file_filter = extending/newtypes.po +source_file = gettext/extending/newtypes.pot +type = PO +minimum_perc = 0 +resource_name = extending--newtypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--newtypes_tutorial] +file_filter = extending/newtypes_tutorial.po +source_file = gettext/extending/newtypes_tutorial.pot +type = PO +minimum_perc = 0 +resource_name = extending--newtypes_tutorial +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:extending--windows] +file_filter = extending/windows.po +source_file = gettext/extending/windows.pot +type = PO +minimum_perc = 0 +resource_name = extending--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--design] +file_filter = faq/design.po +source_file = gettext/faq/design.pot +type = PO +minimum_perc = 0 +resource_name = faq--design +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--extending] +file_filter = faq/extending.po +source_file = gettext/faq/extending.pot +type = PO +minimum_perc = 0 +resource_name = faq--extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--general] +file_filter = faq/general.po +source_file = gettext/faq/general.pot +type = PO +minimum_perc = 0 +resource_name = faq--general +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--gui] +file_filter = faq/gui.po +source_file = gettext/faq/gui.pot +type = PO +minimum_perc = 0 +resource_name = faq--gui +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--index] +file_filter = faq/index.po +source_file = gettext/faq/index.pot +type = PO +minimum_perc = 0 +resource_name = faq--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--installed] +file_filter = faq/installed.po +source_file = gettext/faq/installed.pot +type = PO +minimum_perc = 0 +resource_name = faq--installed +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--library] +file_filter = faq/library.po +source_file = gettext/faq/library.pot +type = PO +minimum_perc = 0 +resource_name = faq--library +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--programming] +file_filter = faq/programming.po +source_file = gettext/faq/programming.pot +type = PO +minimum_perc = 0 +resource_name = faq--programming +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:faq--windows] +file_filter = faq/windows.po +source_file = gettext/faq/windows.pot +type = PO +minimum_perc = 0 +resource_name = faq--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:glossary_] +file_filter = glossary.po +source_file = gettext/glossary.pot +type = PO +minimum_perc = 0 +resource_name = glossary_ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--annotations] +file_filter = howto/annotations.po +source_file = gettext/howto/annotations.pot +type = PO +minimum_perc = 0 +resource_name = howto--annotations +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--argparse] +file_filter = howto/argparse.po +source_file = gettext/howto/argparse.pot +type = PO +minimum_perc = 0 +resource_name = howto--argparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--argparse-optparse] +file_filter = howto/argparse-optparse.po +source_file = gettext/howto/argparse-optparse.pot +type = PO +minimum_perc = 0 +resource_name = howto--argparse-optparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--clinic] +file_filter = howto/clinic.po +source_file = gettext/howto/clinic.pot +type = PO +minimum_perc = 0 +resource_name = howto--clinic +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--cporting] +file_filter = howto/cporting.po +source_file = gettext/howto/cporting.pot +type = PO +minimum_perc = 0 +resource_name = howto--cporting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--curses] +file_filter = howto/curses.po +source_file = gettext/howto/curses.pot +type = PO +minimum_perc = 0 +resource_name = howto--curses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--descriptor] +file_filter = howto/descriptor.po +source_file = gettext/howto/descriptor.pot +type = PO +minimum_perc = 0 +resource_name = howto--descriptor +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--enum] +file_filter = howto/enum.po +source_file = gettext/howto/enum.pot +type = PO +minimum_perc = 0 +resource_name = howto--enum +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--free-threading-extensions] +file_filter = howto/free-threading-extensions.po +source_file = gettext/howto/free-threading-extensions.pot +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-extensions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--free-threading-python] +file_filter = howto/free-threading-python.po +source_file = gettext/howto/free-threading-python.pot +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-python +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--functional] +file_filter = howto/functional.po +source_file = gettext/howto/functional.pot +type = PO +minimum_perc = 0 +resource_name = howto--functional +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--gdb_helpers] +file_filter = howto/gdb_helpers.po +source_file = gettext/howto/gdb_helpers.pot +type = PO +minimum_perc = 0 +resource_name = howto--gdb_helpers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--index] +file_filter = howto/index.po +source_file = gettext/howto/index.pot +type = PO +minimum_perc = 0 +resource_name = howto--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--instrumentation] +file_filter = howto/instrumentation.po +source_file = gettext/howto/instrumentation.pot +type = PO +minimum_perc = 0 +resource_name = howto--instrumentation +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--ipaddress] +file_filter = howto/ipaddress.po +source_file = gettext/howto/ipaddress.pot +type = PO +minimum_perc = 0 +resource_name = howto--ipaddress +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--isolating-extensions] +file_filter = howto/isolating-extensions.po +source_file = gettext/howto/isolating-extensions.pot +type = PO +minimum_perc = 0 +resource_name = howto--isolating-extensions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--logging] +file_filter = howto/logging.po +source_file = gettext/howto/logging.pot +type = PO +minimum_perc = 0 +resource_name = howto--logging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--logging-cookbook] +file_filter = howto/logging-cookbook.po +source_file = gettext/howto/logging-cookbook.pot +type = PO +minimum_perc = 0 +resource_name = howto--logging-cookbook +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--mro] +file_filter = howto/mro.po +source_file = gettext/howto/mro.pot +type = PO +minimum_perc = 0 +resource_name = howto--mro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--perf_profiling] +file_filter = howto/perf_profiling.po +source_file = gettext/howto/perf_profiling.pot +type = PO +minimum_perc = 0 +resource_name = howto--perf_profiling +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--pyporting] +file_filter = howto/pyporting.po +source_file = gettext/howto/pyporting.pot +type = PO +minimum_perc = 0 +resource_name = howto--pyporting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--regex] +file_filter = howto/regex.po +source_file = gettext/howto/regex.pot +type = PO +minimum_perc = 0 +resource_name = howto--regex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--remote_debugging] +file_filter = howto/remote_debugging.po +source_file = gettext/howto/remote_debugging.pot +type = PO +minimum_perc = 0 +resource_name = howto--remote_debugging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--sockets] +file_filter = howto/sockets.po +source_file = gettext/howto/sockets.pot +type = PO +minimum_perc = 0 +resource_name = howto--sockets +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--sorting] +file_filter = howto/sorting.po +source_file = gettext/howto/sorting.pot +type = PO +minimum_perc = 0 +resource_name = howto--sorting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--timerfd] +file_filter = howto/timerfd.po +source_file = gettext/howto/timerfd.pot +type = PO +minimum_perc = 0 +resource_name = howto--timerfd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--unicode] +file_filter = howto/unicode.po +source_file = gettext/howto/unicode.pot +type = PO +minimum_perc = 0 +resource_name = howto--unicode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:howto--urllib2] +file_filter = howto/urllib2.po +source_file = gettext/howto/urllib2.pot +type = PO +minimum_perc = 0 +resource_name = howto--urllib2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:installing--index] +file_filter = installing/index.po +source_file = gettext/installing/index.pot +type = PO +minimum_perc = 0 +resource_name = installing--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--__future__] +file_filter = library/__future__.po +source_file = gettext/library/__future__.pot +type = PO +minimum_perc = 0 +resource_name = library--__future__ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--__main__] +file_filter = library/__main__.po +source_file = gettext/library/__main__.pot +type = PO +minimum_perc = 0 +resource_name = library--__main__ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--_thread] +file_filter = library/_thread.po +source_file = gettext/library/_thread.pot +type = PO +minimum_perc = 0 +resource_name = library--_thread +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--abc] +file_filter = library/abc.po +source_file = gettext/library/abc.pot +type = PO +minimum_perc = 0 +resource_name = library--abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--aifc] +file_filter = library/aifc.po +source_file = gettext/library/aifc.pot +type = PO +minimum_perc = 0 +resource_name = library--aifc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--allos] +file_filter = library/allos.po +source_file = gettext/library/allos.pot +type = PO +minimum_perc = 0 +resource_name = library--allos +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--annotationlib] +file_filter = library/annotationlib.po +source_file = gettext/library/annotationlib.pot +type = PO +minimum_perc = 0 +resource_name = library--annotationlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--archiving] +file_filter = library/archiving.po +source_file = gettext/library/archiving.pot +type = PO +minimum_perc = 0 +resource_name = library--archiving +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--argparse] +file_filter = library/argparse.po +source_file = gettext/library/argparse.pot +type = PO +minimum_perc = 0 +resource_name = library--argparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--array] +file_filter = library/array.po +source_file = gettext/library/array.pot +type = PO +minimum_perc = 0 +resource_name = library--array +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ast] +file_filter = library/ast.po +source_file = gettext/library/ast.pot +type = PO +minimum_perc = 0 +resource_name = library--ast +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asynchat] +file_filter = library/asynchat.po +source_file = gettext/library/asynchat.pot +type = PO +minimum_perc = 0 +resource_name = library--asynchat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio] +file_filter = library/asyncio.po +source_file = gettext/library/asyncio.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-api-index] +file_filter = library/asyncio-api-index.po +source_file = gettext/library/asyncio-api-index.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-api-index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-dev] +file_filter = library/asyncio-dev.po +source_file = gettext/library/asyncio-dev.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-dev +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-eventloop] +file_filter = library/asyncio-eventloop.po +source_file = gettext/library/asyncio-eventloop.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-eventloop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-exceptions] +file_filter = library/asyncio-exceptions.po +source_file = gettext/library/asyncio-exceptions.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-extending] +file_filter = library/asyncio-extending.po +source_file = gettext/library/asyncio-extending.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-future] +file_filter = library/asyncio-future.po +source_file = gettext/library/asyncio-future.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-future +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-graph] +file_filter = library/asyncio-graph.po +source_file = gettext/library/asyncio-graph.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-graph +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-llapi-index] +file_filter = library/asyncio-llapi-index.po +source_file = gettext/library/asyncio-llapi-index.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-llapi-index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-platforms] +file_filter = library/asyncio-platforms.po +source_file = gettext/library/asyncio-platforms.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-platforms +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-policy] +file_filter = library/asyncio-policy.po +source_file = gettext/library/asyncio-policy.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-policy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-protocol] +file_filter = library/asyncio-protocol.po +source_file = gettext/library/asyncio-protocol.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-protocol +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-queue] +file_filter = library/asyncio-queue.po +source_file = gettext/library/asyncio-queue.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-queue +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-runner] +file_filter = library/asyncio-runner.po +source_file = gettext/library/asyncio-runner.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-runner +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-stream] +file_filter = library/asyncio-stream.po +source_file = gettext/library/asyncio-stream.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-stream +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-subprocess] +file_filter = library/asyncio-subprocess.po +source_file = gettext/library/asyncio-subprocess.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-subprocess +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-sync] +file_filter = library/asyncio-sync.po +source_file = gettext/library/asyncio-sync.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-sync +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncio-task] +file_filter = library/asyncio-task.po +source_file = gettext/library/asyncio-task.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncio-task +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--asyncore] +file_filter = library/asyncore.po +source_file = gettext/library/asyncore.pot +type = PO +minimum_perc = 0 +resource_name = library--asyncore +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--atexit] +file_filter = library/atexit.po +source_file = gettext/library/atexit.pot +type = PO +minimum_perc = 0 +resource_name = library--atexit +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--audioop] +file_filter = library/audioop.po +source_file = gettext/library/audioop.pot +type = PO +minimum_perc = 0 +resource_name = library--audioop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--audit_events] +file_filter = library/audit_events.po +source_file = gettext/library/audit_events.pot +type = PO +minimum_perc = 0 +resource_name = library--audit_events +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--base64] +file_filter = library/base64.po +source_file = gettext/library/base64.pot +type = PO +minimum_perc = 0 +resource_name = library--base64 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--bdb] +file_filter = library/bdb.po +source_file = gettext/library/bdb.pot +type = PO +minimum_perc = 0 +resource_name = library--bdb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--binary] +file_filter = library/binary.po +source_file = gettext/library/binary.pot +type = PO +minimum_perc = 0 +resource_name = library--binary +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--binascii] +file_filter = library/binascii.po +source_file = gettext/library/binascii.pot +type = PO +minimum_perc = 0 +resource_name = library--binascii +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--bisect] +file_filter = library/bisect.po +source_file = gettext/library/bisect.pot +type = PO +minimum_perc = 0 +resource_name = library--bisect +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--builtins] +file_filter = library/builtins.po +source_file = gettext/library/builtins.pot +type = PO +minimum_perc = 0 +resource_name = library--builtins +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--bz2] +file_filter = library/bz2.po +source_file = gettext/library/bz2.pot +type = PO +minimum_perc = 0 +resource_name = library--bz2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--calendar] +file_filter = library/calendar.po +source_file = gettext/library/calendar.pot +type = PO +minimum_perc = 0 +resource_name = library--calendar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cgi] +file_filter = library/cgi.po +source_file = gettext/library/cgi.pot +type = PO +minimum_perc = 0 +resource_name = library--cgi +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cgitb] +file_filter = library/cgitb.po +source_file = gettext/library/cgitb.pot +type = PO +minimum_perc = 0 +resource_name = library--cgitb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--chunk] +file_filter = library/chunk.po +source_file = gettext/library/chunk.pot +type = PO +minimum_perc = 0 +resource_name = library--chunk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cmath] +file_filter = library/cmath.po +source_file = gettext/library/cmath.pot +type = PO +minimum_perc = 0 +resource_name = library--cmath +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cmd] +file_filter = library/cmd.po +source_file = gettext/library/cmd.pot +type = PO +minimum_perc = 0 +resource_name = library--cmd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cmdline] +file_filter = library/cmdline.po +source_file = gettext/library/cmdline.pot +type = PO +minimum_perc = 0 +resource_name = library--cmdline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--cmdlinelibs] +file_filter = library/cmdlinelibs.po +source_file = gettext/library/cmdlinelibs.pot +type = PO +minimum_perc = 0 +resource_name = library--cmdlinelibs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--code] +file_filter = library/code.po +source_file = gettext/library/code.pot +type = PO +minimum_perc = 0 +resource_name = library--code +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--codecs] +file_filter = library/codecs.po +source_file = gettext/library/codecs.pot +type = PO +minimum_perc = 0 +resource_name = library--codecs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--codeop] +file_filter = library/codeop.po +source_file = gettext/library/codeop.pot +type = PO +minimum_perc = 0 +resource_name = library--codeop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--collections] +file_filter = library/collections.po +source_file = gettext/library/collections.pot +type = PO +minimum_perc = 0 +resource_name = library--collections +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--collections_abc] +file_filter = library/collections.abc.po +source_file = gettext/library/collections.abc.pot +type = PO +minimum_perc = 0 +resource_name = library--collections_abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--colorsys] +file_filter = library/colorsys.po +source_file = gettext/library/colorsys.pot +type = PO +minimum_perc = 0 +resource_name = library--colorsys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--compileall] +file_filter = library/compileall.po +source_file = gettext/library/compileall.pot +type = PO +minimum_perc = 0 +resource_name = library--compileall +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--compression] +file_filter = library/compression.po +source_file = gettext/library/compression.pot +type = PO +minimum_perc = 0 +resource_name = library--compression +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--compression_zstd] +file_filter = library/compression.zstd.po +source_file = gettext/library/compression.zstd.pot +type = PO +minimum_perc = 0 +resource_name = library--compression_zstd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--concurrency] +file_filter = library/concurrency.po +source_file = gettext/library/concurrency.pot +type = PO +minimum_perc = 0 +resource_name = library--concurrency +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--concurrent] +file_filter = library/concurrent.po +source_file = gettext/library/concurrent.pot +type = PO +minimum_perc = 0 +resource_name = library--concurrent +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--concurrent_futures] +file_filter = library/concurrent.futures.po +source_file = gettext/library/concurrent.futures.pot +type = PO +minimum_perc = 0 +resource_name = library--concurrent_futures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--concurrent_interpreters] +file_filter = library/concurrent.interpreters.po +source_file = gettext/library/concurrent.interpreters.pot +type = PO +minimum_perc = 0 +resource_name = library--concurrent_interpreters +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--configparser] +file_filter = library/configparser.po +source_file = gettext/library/configparser.pot +type = PO +minimum_perc = 0 +resource_name = library--configparser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--constants] +file_filter = library/constants.po +source_file = gettext/library/constants.pot +type = PO +minimum_perc = 0 +resource_name = library--constants +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--contextlib] +file_filter = library/contextlib.po +source_file = gettext/library/contextlib.pot +type = PO +minimum_perc = 0 +resource_name = library--contextlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--contextvars] +file_filter = library/contextvars.po +source_file = gettext/library/contextvars.pot +type = PO +minimum_perc = 0 +resource_name = library--contextvars +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--copy] +file_filter = library/copy.po +source_file = gettext/library/copy.pot +type = PO +minimum_perc = 0 +resource_name = library--copy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--copyreg] +file_filter = library/copyreg.po +source_file = gettext/library/copyreg.pot +type = PO +minimum_perc = 0 +resource_name = library--copyreg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--crypt] +file_filter = library/crypt.po +source_file = gettext/library/crypt.pot +type = PO +minimum_perc = 0 +resource_name = library--crypt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--crypto] +file_filter = library/crypto.po +source_file = gettext/library/crypto.pot +type = PO +minimum_perc = 0 +resource_name = library--crypto +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--csv] +file_filter = library/csv.po +source_file = gettext/library/csv.pot +type = PO +minimum_perc = 0 +resource_name = library--csv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ctypes] +file_filter = library/ctypes.po +source_file = gettext/library/ctypes.pot +type = PO +minimum_perc = 0 +resource_name = library--ctypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--curses] +file_filter = library/curses.po +source_file = gettext/library/curses.pot +type = PO +minimum_perc = 0 +resource_name = library--curses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--curses_ascii] +file_filter = library/curses.ascii.po +source_file = gettext/library/curses.ascii.pot +type = PO +minimum_perc = 0 +resource_name = library--curses_ascii +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--curses_panel] +file_filter = library/curses.panel.po +source_file = gettext/library/curses.panel.pot +type = PO +minimum_perc = 0 +resource_name = library--curses_panel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--custominterp] +file_filter = library/custominterp.po +source_file = gettext/library/custominterp.pot +type = PO +minimum_perc = 0 +resource_name = library--custominterp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--dataclasses] +file_filter = library/dataclasses.po +source_file = gettext/library/dataclasses.pot +type = PO +minimum_perc = 0 +resource_name = library--dataclasses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--datatypes] +file_filter = library/datatypes.po +source_file = gettext/library/datatypes.pot +type = PO +minimum_perc = 0 +resource_name = library--datatypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--datetime] +file_filter = library/datetime.po +source_file = gettext/library/datetime.pot +type = PO +minimum_perc = 0 +resource_name = library--datetime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--dbm] +file_filter = library/dbm.po +source_file = gettext/library/dbm.pot +type = PO +minimum_perc = 0 +resource_name = library--dbm +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--debug] +file_filter = library/debug.po +source_file = gettext/library/debug.pot +type = PO +minimum_perc = 0 +resource_name = library--debug +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--decimal] +file_filter = library/decimal.po +source_file = gettext/library/decimal.pot +type = PO +minimum_perc = 0 +resource_name = library--decimal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--development] +file_filter = library/development.po +source_file = gettext/library/development.pot +type = PO +minimum_perc = 0 +resource_name = library--development +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--devmode] +file_filter = library/devmode.po +source_file = gettext/library/devmode.pot +type = PO +minimum_perc = 0 +resource_name = library--devmode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--dialog] +file_filter = library/dialog.po +source_file = gettext/library/dialog.pot +type = PO +minimum_perc = 0 +resource_name = library--dialog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--difflib] +file_filter = library/difflib.po +source_file = gettext/library/difflib.pot +type = PO +minimum_perc = 0 +resource_name = library--difflib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--dis] +file_filter = library/dis.po +source_file = gettext/library/dis.pot +type = PO +minimum_perc = 0 +resource_name = library--dis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--distribution] +file_filter = library/distribution.po +source_file = gettext/library/distribution.pot +type = PO +minimum_perc = 0 +resource_name = library--distribution +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--distutils] +file_filter = library/distutils.po +source_file = gettext/library/distutils.pot +type = PO +minimum_perc = 0 +resource_name = library--distutils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--doctest] +file_filter = library/doctest.po +source_file = gettext/library/doctest.pot +type = PO +minimum_perc = 0 +resource_name = library--doctest +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email] +file_filter = library/email.po +source_file = gettext/library/email.pot +type = PO +minimum_perc = 0 +resource_name = library--email +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_charset] +file_filter = library/email.charset.po +source_file = gettext/library/email.charset.pot +type = PO +minimum_perc = 0 +resource_name = library--email_charset +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_compat32-message] +file_filter = library/email.compat32-message.po +source_file = gettext/library/email.compat32-message.pot +type = PO +minimum_perc = 0 +resource_name = library--email_compat32-message +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_contentmanager] +file_filter = library/email.contentmanager.po +source_file = gettext/library/email.contentmanager.pot +type = PO +minimum_perc = 0 +resource_name = library--email_contentmanager +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_encoders] +file_filter = library/email.encoders.po +source_file = gettext/library/email.encoders.pot +type = PO +minimum_perc = 0 +resource_name = library--email_encoders +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_errors] +file_filter = library/email.errors.po +source_file = gettext/library/email.errors.pot +type = PO +minimum_perc = 0 +resource_name = library--email_errors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_examples] +file_filter = library/email.examples.po +source_file = gettext/library/email.examples.pot +type = PO +minimum_perc = 0 +resource_name = library--email_examples +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_generator] +file_filter = library/email.generator.po +source_file = gettext/library/email.generator.pot +type = PO +minimum_perc = 0 +resource_name = library--email_generator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_header] +file_filter = library/email.header.po +source_file = gettext/library/email.header.pot +type = PO +minimum_perc = 0 +resource_name = library--email_header +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_headerregistry] +file_filter = library/email.headerregistry.po +source_file = gettext/library/email.headerregistry.pot +type = PO +minimum_perc = 0 +resource_name = library--email_headerregistry +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_iterators] +file_filter = library/email.iterators.po +source_file = gettext/library/email.iterators.pot +type = PO +minimum_perc = 0 +resource_name = library--email_iterators +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_message] +file_filter = library/email.message.po +source_file = gettext/library/email.message.pot +type = PO +minimum_perc = 0 +resource_name = library--email_message +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_mime] +file_filter = library/email.mime.po +source_file = gettext/library/email.mime.pot +type = PO +minimum_perc = 0 +resource_name = library--email_mime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_parser] +file_filter = library/email.parser.po +source_file = gettext/library/email.parser.pot +type = PO +minimum_perc = 0 +resource_name = library--email_parser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_policy] +file_filter = library/email.policy.po +source_file = gettext/library/email.policy.pot +type = PO +minimum_perc = 0 +resource_name = library--email_policy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--email_utils] +file_filter = library/email.utils.po +source_file = gettext/library/email.utils.pot +type = PO +minimum_perc = 0 +resource_name = library--email_utils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ensurepip] +file_filter = library/ensurepip.po +source_file = gettext/library/ensurepip.pot +type = PO +minimum_perc = 0 +resource_name = library--ensurepip +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--enum] +file_filter = library/enum.po +source_file = gettext/library/enum.pot +type = PO +minimum_perc = 0 +resource_name = library--enum +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--errno] +file_filter = library/errno.po +source_file = gettext/library/errno.pot +type = PO +minimum_perc = 0 +resource_name = library--errno +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--exceptions] +file_filter = library/exceptions.po +source_file = gettext/library/exceptions.pot +type = PO +minimum_perc = 0 +resource_name = library--exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--faulthandler] +file_filter = library/faulthandler.po +source_file = gettext/library/faulthandler.pot +type = PO +minimum_perc = 0 +resource_name = library--faulthandler +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--fcntl] +file_filter = library/fcntl.po +source_file = gettext/library/fcntl.pot +type = PO +minimum_perc = 0 +resource_name = library--fcntl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--filecmp] +file_filter = library/filecmp.po +source_file = gettext/library/filecmp.pot +type = PO +minimum_perc = 0 +resource_name = library--filecmp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--fileformats] +file_filter = library/fileformats.po +source_file = gettext/library/fileformats.pot +type = PO +minimum_perc = 0 +resource_name = library--fileformats +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--fileinput] +file_filter = library/fileinput.po +source_file = gettext/library/fileinput.pot +type = PO +minimum_perc = 0 +resource_name = library--fileinput +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--filesys] +file_filter = library/filesys.po +source_file = gettext/library/filesys.pot +type = PO +minimum_perc = 0 +resource_name = library--filesys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--fnmatch] +file_filter = library/fnmatch.po +source_file = gettext/library/fnmatch.pot +type = PO +minimum_perc = 0 +resource_name = library--fnmatch +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--fractions] +file_filter = library/fractions.po +source_file = gettext/library/fractions.pot +type = PO +minimum_perc = 0 +resource_name = library--fractions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--frameworks] +file_filter = library/frameworks.po +source_file = gettext/library/frameworks.pot +type = PO +minimum_perc = 0 +resource_name = library--frameworks +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ftplib] +file_filter = library/ftplib.po +source_file = gettext/library/ftplib.pot +type = PO +minimum_perc = 0 +resource_name = library--ftplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--functional] +file_filter = library/functional.po +source_file = gettext/library/functional.pot +type = PO +minimum_perc = 0 +resource_name = library--functional +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--functions] +file_filter = library/functions.po +source_file = gettext/library/functions.pot +type = PO +minimum_perc = 0 +resource_name = library--functions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--functools] +file_filter = library/functools.po +source_file = gettext/library/functools.pot +type = PO +minimum_perc = 0 +resource_name = library--functools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--gc] +file_filter = library/gc.po +source_file = gettext/library/gc.pot +type = PO +minimum_perc = 0 +resource_name = library--gc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--getopt] +file_filter = library/getopt.po +source_file = gettext/library/getopt.pot +type = PO +minimum_perc = 0 +resource_name = library--getopt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--getpass] +file_filter = library/getpass.po +source_file = gettext/library/getpass.pot +type = PO +minimum_perc = 0 +resource_name = library--getpass +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--gettext] +file_filter = library/gettext.po +source_file = gettext/library/gettext.pot +type = PO +minimum_perc = 0 +resource_name = library--gettext +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--glob] +file_filter = library/glob.po +source_file = gettext/library/glob.pot +type = PO +minimum_perc = 0 +resource_name = library--glob +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--graphlib] +file_filter = library/graphlib.po +source_file = gettext/library/graphlib.pot +type = PO +minimum_perc = 0 +resource_name = library--graphlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--grp] +file_filter = library/grp.po +source_file = gettext/library/grp.pot +type = PO +minimum_perc = 0 +resource_name = library--grp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--gzip] +file_filter = library/gzip.po +source_file = gettext/library/gzip.pot +type = PO +minimum_perc = 0 +resource_name = library--gzip +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--hashlib] +file_filter = library/hashlib.po +source_file = gettext/library/hashlib.pot +type = PO +minimum_perc = 0 +resource_name = library--hashlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--heapq] +file_filter = library/heapq.po +source_file = gettext/library/heapq.pot +type = PO +minimum_perc = 0 +resource_name = library--heapq +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--hmac] +file_filter = library/hmac.po +source_file = gettext/library/hmac.pot +type = PO +minimum_perc = 0 +resource_name = library--hmac +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--html] +file_filter = library/html.po +source_file = gettext/library/html.pot +type = PO +minimum_perc = 0 +resource_name = library--html +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--html_entities] +file_filter = library/html.entities.po +source_file = gettext/library/html.entities.pot +type = PO +minimum_perc = 0 +resource_name = library--html_entities +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--html_parser] +file_filter = library/html.parser.po +source_file = gettext/library/html.parser.pot +type = PO +minimum_perc = 0 +resource_name = library--html_parser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--http] +file_filter = library/http.po +source_file = gettext/library/http.pot +type = PO +minimum_perc = 0 +resource_name = library--http +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--http_client] +file_filter = library/http.client.po +source_file = gettext/library/http.client.pot +type = PO +minimum_perc = 0 +resource_name = library--http_client +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--http_cookiejar] +file_filter = library/http.cookiejar.po +source_file = gettext/library/http.cookiejar.pot +type = PO +minimum_perc = 0 +resource_name = library--http_cookiejar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--http_cookies] +file_filter = library/http.cookies.po +source_file = gettext/library/http.cookies.pot +type = PO +minimum_perc = 0 +resource_name = library--http_cookies +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--http_server] +file_filter = library/http.server.po +source_file = gettext/library/http.server.pot +type = PO +minimum_perc = 0 +resource_name = library--http_server +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--i18n] +file_filter = library/i18n.po +source_file = gettext/library/i18n.pot +type = PO +minimum_perc = 0 +resource_name = library--i18n +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--idle] +file_filter = library/idle.po +source_file = gettext/library/idle.pot +type = PO +minimum_perc = 0 +resource_name = library--idle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--imaplib] +file_filter = library/imaplib.po +source_file = gettext/library/imaplib.pot +type = PO +minimum_perc = 0 +resource_name = library--imaplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--imghdr] +file_filter = library/imghdr.po +source_file = gettext/library/imghdr.pot +type = PO +minimum_perc = 0 +resource_name = library--imghdr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--imp] +file_filter = library/imp.po +source_file = gettext/library/imp.pot +type = PO +minimum_perc = 0 +resource_name = library--imp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--importlib] +file_filter = library/importlib.po +source_file = gettext/library/importlib.pot +type = PO +minimum_perc = 0 +resource_name = library--importlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--importlib_metadata] +file_filter = library/importlib.metadata.po +source_file = gettext/library/importlib.metadata.pot +type = PO +minimum_perc = 0 +resource_name = library--importlib_metadata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--importlib_resources] +file_filter = library/importlib.resources.po +source_file = gettext/library/importlib.resources.pot +type = PO +minimum_perc = 0 +resource_name = library--importlib_resources +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--importlib_resources_abc] +file_filter = library/importlib.resources.abc.po +source_file = gettext/library/importlib.resources.abc.pot +type = PO +minimum_perc = 0 +resource_name = library--importlib_resources_abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--index] +file_filter = library/index.po +source_file = gettext/library/index.pot +type = PO +minimum_perc = 0 +resource_name = library--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--inspect] +file_filter = library/inspect.po +source_file = gettext/library/inspect.pot +type = PO +minimum_perc = 0 +resource_name = library--inspect +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--internet] +file_filter = library/internet.po +source_file = gettext/library/internet.pot +type = PO +minimum_perc = 0 +resource_name = library--internet +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--intro] +file_filter = library/intro.po +source_file = gettext/library/intro.pot +type = PO +minimum_perc = 0 +resource_name = library--intro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--io] +file_filter = library/io.po +source_file = gettext/library/io.pot +type = PO +minimum_perc = 0 +resource_name = library--io +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ipaddress] +file_filter = library/ipaddress.po +source_file = gettext/library/ipaddress.pot +type = PO +minimum_perc = 0 +resource_name = library--ipaddress +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ipc] +file_filter = library/ipc.po +source_file = gettext/library/ipc.pot +type = PO +minimum_perc = 0 +resource_name = library--ipc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--itertools] +file_filter = library/itertools.po +source_file = gettext/library/itertools.pot +type = PO +minimum_perc = 0 +resource_name = library--itertools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--json] +file_filter = library/json.po +source_file = gettext/library/json.pot +type = PO +minimum_perc = 0 +resource_name = library--json +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--keyword] +file_filter = library/keyword.po +source_file = gettext/library/keyword.pot +type = PO +minimum_perc = 0 +resource_name = library--keyword +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--language] +file_filter = library/language.po +source_file = gettext/library/language.pot +type = PO +minimum_perc = 0 +resource_name = library--language +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--linecache] +file_filter = library/linecache.po +source_file = gettext/library/linecache.pot +type = PO +minimum_perc = 0 +resource_name = library--linecache +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--locale] +file_filter = library/locale.po +source_file = gettext/library/locale.pot +type = PO +minimum_perc = 0 +resource_name = library--locale +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--logging] +file_filter = library/logging.po +source_file = gettext/library/logging.pot +type = PO +minimum_perc = 0 +resource_name = library--logging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--logging_config] +file_filter = library/logging.config.po +source_file = gettext/library/logging.config.pot +type = PO +minimum_perc = 0 +resource_name = library--logging_config +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--logging_handlers] +file_filter = library/logging.handlers.po +source_file = gettext/library/logging.handlers.pot +type = PO +minimum_perc = 0 +resource_name = library--logging_handlers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--lzma] +file_filter = library/lzma.po +source_file = gettext/library/lzma.pot +type = PO +minimum_perc = 0 +resource_name = library--lzma +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--mailbox] +file_filter = library/mailbox.po +source_file = gettext/library/mailbox.pot +type = PO +minimum_perc = 0 +resource_name = library--mailbox +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--mailcap] +file_filter = library/mailcap.po +source_file = gettext/library/mailcap.pot +type = PO +minimum_perc = 0 +resource_name = library--mailcap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--markup] +file_filter = library/markup.po +source_file = gettext/library/markup.pot +type = PO +minimum_perc = 0 +resource_name = library--markup +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--marshal] +file_filter = library/marshal.po +source_file = gettext/library/marshal.pot +type = PO +minimum_perc = 0 +resource_name = library--marshal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--math] +file_filter = library/math.po +source_file = gettext/library/math.pot +type = PO +minimum_perc = 0 +resource_name = library--math +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--mimetypes] +file_filter = library/mimetypes.po +source_file = gettext/library/mimetypes.pot +type = PO +minimum_perc = 0 +resource_name = library--mimetypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--mm] +file_filter = library/mm.po +source_file = gettext/library/mm.pot +type = PO +minimum_perc = 0 +resource_name = library--mm +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--mmap] +file_filter = library/mmap.po +source_file = gettext/library/mmap.pot +type = PO +minimum_perc = 0 +resource_name = library--mmap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--modulefinder] +file_filter = library/modulefinder.po +source_file = gettext/library/modulefinder.pot +type = PO +minimum_perc = 0 +resource_name = library--modulefinder +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--modules] +file_filter = library/modules.po +source_file = gettext/library/modules.pot +type = PO +minimum_perc = 0 +resource_name = library--modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--msilib] +file_filter = library/msilib.po +source_file = gettext/library/msilib.pot +type = PO +minimum_perc = 0 +resource_name = library--msilib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--msvcrt] +file_filter = library/msvcrt.po +source_file = gettext/library/msvcrt.pot +type = PO +minimum_perc = 0 +resource_name = library--msvcrt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--multiprocessing] +file_filter = library/multiprocessing.po +source_file = gettext/library/multiprocessing.pot +type = PO +minimum_perc = 0 +resource_name = library--multiprocessing +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--multiprocessing_shared_memory] +file_filter = library/multiprocessing.shared_memory.po +source_file = gettext/library/multiprocessing.shared_memory.pot +type = PO +minimum_perc = 0 +resource_name = library--multiprocessing_shared_memory +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--netdata] +file_filter = library/netdata.po +source_file = gettext/library/netdata.pot +type = PO +minimum_perc = 0 +resource_name = library--netdata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--netrc] +file_filter = library/netrc.po +source_file = gettext/library/netrc.pot +type = PO +minimum_perc = 0 +resource_name = library--netrc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--nis] +file_filter = library/nis.po +source_file = gettext/library/nis.pot +type = PO +minimum_perc = 0 +resource_name = library--nis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--nntplib] +file_filter = library/nntplib.po +source_file = gettext/library/nntplib.pot +type = PO +minimum_perc = 0 +resource_name = library--nntplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--numbers] +file_filter = library/numbers.po +source_file = gettext/library/numbers.pot +type = PO +minimum_perc = 0 +resource_name = library--numbers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--numeric] +file_filter = library/numeric.po +source_file = gettext/library/numeric.pot +type = PO +minimum_perc = 0 +resource_name = library--numeric +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--operator] +file_filter = library/operator.po +source_file = gettext/library/operator.pot +type = PO +minimum_perc = 0 +resource_name = library--operator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--optparse] +file_filter = library/optparse.po +source_file = gettext/library/optparse.pot +type = PO +minimum_perc = 0 +resource_name = library--optparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--os] +file_filter = library/os.po +source_file = gettext/library/os.pot +type = PO +minimum_perc = 0 +resource_name = library--os +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--os_path] +file_filter = library/os.path.po +source_file = gettext/library/os.path.pot +type = PO +minimum_perc = 0 +resource_name = library--os_path +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ossaudiodev] +file_filter = library/ossaudiodev.po +source_file = gettext/library/ossaudiodev.pot +type = PO +minimum_perc = 0 +resource_name = library--ossaudiodev +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pathlib] +file_filter = library/pathlib.po +source_file = gettext/library/pathlib.pot +type = PO +minimum_perc = 0 +resource_name = library--pathlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pdb] +file_filter = library/pdb.po +source_file = gettext/library/pdb.pot +type = PO +minimum_perc = 0 +resource_name = library--pdb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--persistence] +file_filter = library/persistence.po +source_file = gettext/library/persistence.pot +type = PO +minimum_perc = 0 +resource_name = library--persistence +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pickle] +file_filter = library/pickle.po +source_file = gettext/library/pickle.pot +type = PO +minimum_perc = 0 +resource_name = library--pickle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pickletools] +file_filter = library/pickletools.po +source_file = gettext/library/pickletools.pot +type = PO +minimum_perc = 0 +resource_name = library--pickletools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pipes] +file_filter = library/pipes.po +source_file = gettext/library/pipes.pot +type = PO +minimum_perc = 0 +resource_name = library--pipes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pkgutil] +file_filter = library/pkgutil.po +source_file = gettext/library/pkgutil.pot +type = PO +minimum_perc = 0 +resource_name = library--pkgutil +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--platform] +file_filter = library/platform.po +source_file = gettext/library/platform.pot +type = PO +minimum_perc = 0 +resource_name = library--platform +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--plistlib] +file_filter = library/plistlib.po +source_file = gettext/library/plistlib.pot +type = PO +minimum_perc = 0 +resource_name = library--plistlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--poplib] +file_filter = library/poplib.po +source_file = gettext/library/poplib.pot +type = PO +minimum_perc = 0 +resource_name = library--poplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--posix] +file_filter = library/posix.po +source_file = gettext/library/posix.pot +type = PO +minimum_perc = 0 +resource_name = library--posix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pprint] +file_filter = library/pprint.po +source_file = gettext/library/pprint.pot +type = PO +minimum_perc = 0 +resource_name = library--pprint +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--profile] +file_filter = library/profile.po +source_file = gettext/library/profile.pot +type = PO +minimum_perc = 0 +resource_name = library--profile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pty] +file_filter = library/pty.po +source_file = gettext/library/pty.pot +type = PO +minimum_perc = 0 +resource_name = library--pty +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pwd] +file_filter = library/pwd.po +source_file = gettext/library/pwd.pot +type = PO +minimum_perc = 0 +resource_name = library--pwd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--py_compile] +file_filter = library/py_compile.po +source_file = gettext/library/py_compile.pot +type = PO +minimum_perc = 0 +resource_name = library--py_compile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pyclbr] +file_filter = library/pyclbr.po +source_file = gettext/library/pyclbr.pot +type = PO +minimum_perc = 0 +resource_name = library--pyclbr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pydoc] +file_filter = library/pydoc.po +source_file = gettext/library/pydoc.pot +type = PO +minimum_perc = 0 +resource_name = library--pydoc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--pyexpat] +file_filter = library/pyexpat.po +source_file = gettext/library/pyexpat.pot +type = PO +minimum_perc = 0 +resource_name = library--pyexpat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--python] +file_filter = library/python.po +source_file = gettext/library/python.pot +type = PO +minimum_perc = 0 +resource_name = library--python +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--queue] +file_filter = library/queue.po +source_file = gettext/library/queue.pot +type = PO +minimum_perc = 0 +resource_name = library--queue +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--quopri] +file_filter = library/quopri.po +source_file = gettext/library/quopri.pot +type = PO +minimum_perc = 0 +resource_name = library--quopri +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--random] +file_filter = library/random.po +source_file = gettext/library/random.pot +type = PO +minimum_perc = 0 +resource_name = library--random +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--re] +file_filter = library/re.po +source_file = gettext/library/re.pot +type = PO +minimum_perc = 0 +resource_name = library--re +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--readline] +file_filter = library/readline.po +source_file = gettext/library/readline.pot +type = PO +minimum_perc = 0 +resource_name = library--readline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--removed] +file_filter = library/removed.po +source_file = gettext/library/removed.pot +type = PO +minimum_perc = 0 +resource_name = library--removed +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--reprlib] +file_filter = library/reprlib.po +source_file = gettext/library/reprlib.pot +type = PO +minimum_perc = 0 +resource_name = library--reprlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--resource] +file_filter = library/resource.po +source_file = gettext/library/resource.pot +type = PO +minimum_perc = 0 +resource_name = library--resource +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--rlcompleter] +file_filter = library/rlcompleter.po +source_file = gettext/library/rlcompleter.pot +type = PO +minimum_perc = 0 +resource_name = library--rlcompleter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--runpy] +file_filter = library/runpy.po +source_file = gettext/library/runpy.pot +type = PO +minimum_perc = 0 +resource_name = library--runpy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sched] +file_filter = library/sched.po +source_file = gettext/library/sched.pot +type = PO +minimum_perc = 0 +resource_name = library--sched +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--secrets] +file_filter = library/secrets.po +source_file = gettext/library/secrets.pot +type = PO +minimum_perc = 0 +resource_name = library--secrets +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--security_warnings] +file_filter = library/security_warnings.po +source_file = gettext/library/security_warnings.pot +type = PO +minimum_perc = 0 +resource_name = library--security_warnings +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--select] +file_filter = library/select.po +source_file = gettext/library/select.pot +type = PO +minimum_perc = 0 +resource_name = library--select +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--selectors] +file_filter = library/selectors.po +source_file = gettext/library/selectors.pot +type = PO +minimum_perc = 0 +resource_name = library--selectors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--shelve] +file_filter = library/shelve.po +source_file = gettext/library/shelve.pot +type = PO +minimum_perc = 0 +resource_name = library--shelve +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--shlex] +file_filter = library/shlex.po +source_file = gettext/library/shlex.pot +type = PO +minimum_perc = 0 +resource_name = library--shlex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--shutil] +file_filter = library/shutil.po +source_file = gettext/library/shutil.pot +type = PO +minimum_perc = 0 +resource_name = library--shutil +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--signal] +file_filter = library/signal.po +source_file = gettext/library/signal.pot +type = PO +minimum_perc = 0 +resource_name = library--signal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--site] +file_filter = library/site.po +source_file = gettext/library/site.pot +type = PO +minimum_perc = 0 +resource_name = library--site +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--smtpd] +file_filter = library/smtpd.po +source_file = gettext/library/smtpd.pot +type = PO +minimum_perc = 0 +resource_name = library--smtpd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--smtplib] +file_filter = library/smtplib.po +source_file = gettext/library/smtplib.pot +type = PO +minimum_perc = 0 +resource_name = library--smtplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sndhdr] +file_filter = library/sndhdr.po +source_file = gettext/library/sndhdr.pot +type = PO +minimum_perc = 0 +resource_name = library--sndhdr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--socket] +file_filter = library/socket.po +source_file = gettext/library/socket.pot +type = PO +minimum_perc = 0 +resource_name = library--socket +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--socketserver] +file_filter = library/socketserver.po +source_file = gettext/library/socketserver.pot +type = PO +minimum_perc = 0 +resource_name = library--socketserver +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--spwd] +file_filter = library/spwd.po +source_file = gettext/library/spwd.pot +type = PO +minimum_perc = 0 +resource_name = library--spwd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sqlite3] +file_filter = library/sqlite3.po +source_file = gettext/library/sqlite3.pot +type = PO +minimum_perc = 0 +resource_name = library--sqlite3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--ssl] +file_filter = library/ssl.po +source_file = gettext/library/ssl.pot +type = PO +minimum_perc = 0 +resource_name = library--ssl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--stat] +file_filter = library/stat.po +source_file = gettext/library/stat.pot +type = PO +minimum_perc = 0 +resource_name = library--stat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--statistics] +file_filter = library/statistics.po +source_file = gettext/library/statistics.pot +type = PO +minimum_perc = 0 +resource_name = library--statistics +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--stdtypes] +file_filter = library/stdtypes.po +source_file = gettext/library/stdtypes.pot +type = PO +minimum_perc = 0 +resource_name = library--stdtypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--string] +file_filter = library/string.po +source_file = gettext/library/string.pot +type = PO +minimum_perc = 0 +resource_name = library--string +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--string_templatelib] +file_filter = library/string.templatelib.po +source_file = gettext/library/string.templatelib.pot +type = PO +minimum_perc = 0 +resource_name = library--string_templatelib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--stringprep] +file_filter = library/stringprep.po +source_file = gettext/library/stringprep.pot +type = PO +minimum_perc = 0 +resource_name = library--stringprep +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--struct] +file_filter = library/struct.po +source_file = gettext/library/struct.pot +type = PO +minimum_perc = 0 +resource_name = library--struct +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--subprocess] +file_filter = library/subprocess.po +source_file = gettext/library/subprocess.pot +type = PO +minimum_perc = 0 +resource_name = library--subprocess +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sunau] +file_filter = library/sunau.po +source_file = gettext/library/sunau.pot +type = PO +minimum_perc = 0 +resource_name = library--sunau +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--superseded] +file_filter = library/superseded.po +source_file = gettext/library/superseded.pot +type = PO +minimum_perc = 0 +resource_name = library--superseded +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--symtable] +file_filter = library/symtable.po +source_file = gettext/library/symtable.pot +type = PO +minimum_perc = 0 +resource_name = library--symtable +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sys] +file_filter = library/sys.po +source_file = gettext/library/sys.pot +type = PO +minimum_perc = 0 +resource_name = library--sys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sys_monitoring] +file_filter = library/sys.monitoring.po +source_file = gettext/library/sys.monitoring.pot +type = PO +minimum_perc = 0 +resource_name = library--sys_monitoring +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sys_path_init] +file_filter = library/sys_path_init.po +source_file = gettext/library/sys_path_init.pot +type = PO +minimum_perc = 0 +resource_name = library--sys_path_init +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--sysconfig] +file_filter = library/sysconfig.po +source_file = gettext/library/sysconfig.pot +type = PO +minimum_perc = 0 +resource_name = library--sysconfig +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--syslog] +file_filter = library/syslog.po +source_file = gettext/library/syslog.pot +type = PO +minimum_perc = 0 +resource_name = library--syslog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tabnanny] +file_filter = library/tabnanny.po +source_file = gettext/library/tabnanny.pot +type = PO +minimum_perc = 0 +resource_name = library--tabnanny +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tarfile] +file_filter = library/tarfile.po +source_file = gettext/library/tarfile.pot +type = PO +minimum_perc = 0 +resource_name = library--tarfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--telnetlib] +file_filter = library/telnetlib.po +source_file = gettext/library/telnetlib.pot +type = PO +minimum_perc = 0 +resource_name = library--telnetlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tempfile] +file_filter = library/tempfile.po +source_file = gettext/library/tempfile.pot +type = PO +minimum_perc = 0 +resource_name = library--tempfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--termios] +file_filter = library/termios.po +source_file = gettext/library/termios.pot +type = PO +minimum_perc = 0 +resource_name = library--termios +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--test] +file_filter = library/test.po +source_file = gettext/library/test.pot +type = PO +minimum_perc = 0 +resource_name = library--test +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--text] +file_filter = library/text.po +source_file = gettext/library/text.pot +type = PO +minimum_perc = 0 +resource_name = library--text +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--textwrap] +file_filter = library/textwrap.po +source_file = gettext/library/textwrap.pot +type = PO +minimum_perc = 0 +resource_name = library--textwrap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--threading] +file_filter = library/threading.po +source_file = gettext/library/threading.pot +type = PO +minimum_perc = 0 +resource_name = library--threading +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--time] +file_filter = library/time.po +source_file = gettext/library/time.pot +type = PO +minimum_perc = 0 +resource_name = library--time +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--timeit] +file_filter = library/timeit.po +source_file = gettext/library/timeit.pot +type = PO +minimum_perc = 0 +resource_name = library--timeit +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tk] +file_filter = library/tk.po +source_file = gettext/library/tk.pot +type = PO +minimum_perc = 0 +resource_name = library--tk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter] +file_filter = library/tkinter.po +source_file = gettext/library/tkinter.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_colorchooser] +file_filter = library/tkinter.colorchooser.po +source_file = gettext/library/tkinter.colorchooser.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_colorchooser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_dnd] +file_filter = library/tkinter.dnd.po +source_file = gettext/library/tkinter.dnd.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_dnd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_font] +file_filter = library/tkinter.font.po +source_file = gettext/library/tkinter.font.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_font +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_messagebox] +file_filter = library/tkinter.messagebox.po +source_file = gettext/library/tkinter.messagebox.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_messagebox +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_scrolledtext] +file_filter = library/tkinter.scrolledtext.po +source_file = gettext/library/tkinter.scrolledtext.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_scrolledtext +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tkinter_ttk] +file_filter = library/tkinter.ttk.po +source_file = gettext/library/tkinter.ttk.pot +type = PO +minimum_perc = 0 +resource_name = library--tkinter_ttk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--token] +file_filter = library/token.po +source_file = gettext/library/token.pot +type = PO +minimum_perc = 0 +resource_name = library--token +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tokenize] +file_filter = library/tokenize.po +source_file = gettext/library/tokenize.pot +type = PO +minimum_perc = 0 +resource_name = library--tokenize +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tomllib] +file_filter = library/tomllib.po +source_file = gettext/library/tomllib.pot +type = PO +minimum_perc = 0 +resource_name = library--tomllib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--trace] +file_filter = library/trace.po +source_file = gettext/library/trace.pot +type = PO +minimum_perc = 0 +resource_name = library--trace +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--traceback] +file_filter = library/traceback.po +source_file = gettext/library/traceback.pot +type = PO +minimum_perc = 0 +resource_name = library--traceback +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tracemalloc] +file_filter = library/tracemalloc.po +source_file = gettext/library/tracemalloc.pot +type = PO +minimum_perc = 0 +resource_name = library--tracemalloc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--tty] +file_filter = library/tty.po +source_file = gettext/library/tty.pot +type = PO +minimum_perc = 0 +resource_name = library--tty +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--turtle] +file_filter = library/turtle.po +source_file = gettext/library/turtle.pot +type = PO +minimum_perc = 0 +resource_name = library--turtle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--types] +file_filter = library/types.po +source_file = gettext/library/types.pot +type = PO +minimum_perc = 0 +resource_name = library--types +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--typing] +file_filter = library/typing.po +source_file = gettext/library/typing.pot +type = PO +minimum_perc = 0 +resource_name = library--typing +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--unicodedata] +file_filter = library/unicodedata.po +source_file = gettext/library/unicodedata.pot +type = PO +minimum_perc = 0 +resource_name = library--unicodedata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--unittest] +file_filter = library/unittest.po +source_file = gettext/library/unittest.pot +type = PO +minimum_perc = 0 +resource_name = library--unittest +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--unittest_mock] +file_filter = library/unittest.mock.po +source_file = gettext/library/unittest.mock.pot +type = PO +minimum_perc = 0 +resource_name = library--unittest_mock +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--unittest_mock-examples] +file_filter = library/unittest.mock-examples.po +source_file = gettext/library/unittest.mock-examples.pot +type = PO +minimum_perc = 0 +resource_name = library--unittest_mock-examples +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--unix] +file_filter = library/unix.po +source_file = gettext/library/unix.pot +type = PO +minimum_perc = 0 +resource_name = library--unix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--urllib] +file_filter = library/urllib.po +source_file = gettext/library/urllib.pot +type = PO +minimum_perc = 0 +resource_name = library--urllib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--urllib_error] +file_filter = library/urllib.error.po +source_file = gettext/library/urllib.error.pot +type = PO +minimum_perc = 0 +resource_name = library--urllib_error +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--urllib_parse] +file_filter = library/urllib.parse.po +source_file = gettext/library/urllib.parse.pot +type = PO +minimum_perc = 0 +resource_name = library--urllib_parse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--urllib_request] +file_filter = library/urllib.request.po +source_file = gettext/library/urllib.request.pot +type = PO +minimum_perc = 0 +resource_name = library--urllib_request +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--urllib_robotparser] +file_filter = library/urllib.robotparser.po +source_file = gettext/library/urllib.robotparser.pot +type = PO +minimum_perc = 0 +resource_name = library--urllib_robotparser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--uu] +file_filter = library/uu.po +source_file = gettext/library/uu.pot +type = PO +minimum_perc = 0 +resource_name = library--uu +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--uuid] +file_filter = library/uuid.po +source_file = gettext/library/uuid.pot +type = PO +minimum_perc = 0 +resource_name = library--uuid +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--venv] +file_filter = library/venv.po +source_file = gettext/library/venv.pot +type = PO +minimum_perc = 0 +resource_name = library--venv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--warnings] +file_filter = library/warnings.po +source_file = gettext/library/warnings.pot +type = PO +minimum_perc = 0 +resource_name = library--warnings +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--wave] +file_filter = library/wave.po +source_file = gettext/library/wave.pot +type = PO +minimum_perc = 0 +resource_name = library--wave +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--weakref] +file_filter = library/weakref.po +source_file = gettext/library/weakref.pot +type = PO +minimum_perc = 0 +resource_name = library--weakref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--webbrowser] +file_filter = library/webbrowser.po +source_file = gettext/library/webbrowser.pot +type = PO +minimum_perc = 0 +resource_name = library--webbrowser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--windows] +file_filter = library/windows.po +source_file = gettext/library/windows.pot +type = PO +minimum_perc = 0 +resource_name = library--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--winreg] +file_filter = library/winreg.po +source_file = gettext/library/winreg.pot +type = PO +minimum_perc = 0 +resource_name = library--winreg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--winsound] +file_filter = library/winsound.po +source_file = gettext/library/winsound.pot +type = PO +minimum_perc = 0 +resource_name = library--winsound +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--wsgiref] +file_filter = library/wsgiref.po +source_file = gettext/library/wsgiref.pot +type = PO +minimum_perc = 0 +resource_name = library--wsgiref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xdrlib] +file_filter = library/xdrlib.po +source_file = gettext/library/xdrlib.pot +type = PO +minimum_perc = 0 +resource_name = library--xdrlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml] +file_filter = library/xml.po +source_file = gettext/library/xml.pot +type = PO +minimum_perc = 0 +resource_name = library--xml +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_dom] +file_filter = library/xml.dom.po +source_file = gettext/library/xml.dom.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_dom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_dom_minidom] +file_filter = library/xml.dom.minidom.po +source_file = gettext/library/xml.dom.minidom.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_dom_minidom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_dom_pulldom] +file_filter = library/xml.dom.pulldom.po +source_file = gettext/library/xml.dom.pulldom.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_dom_pulldom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_etree_elementtree] +file_filter = library/xml.etree.elementtree.po +source_file = gettext/library/xml.etree.elementtree.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_etree_elementtree +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_sax] +file_filter = library/xml.sax.po +source_file = gettext/library/xml.sax.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_sax +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_sax_handler] +file_filter = library/xml.sax.handler.po +source_file = gettext/library/xml.sax.handler.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_handler +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_sax_reader] +file_filter = library/xml.sax.reader.po +source_file = gettext/library/xml.sax.reader.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_reader +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xml_sax_utils] +file_filter = library/xml.sax.utils.po +source_file = gettext/library/xml.sax.utils.pot +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_utils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xmlrpc] +file_filter = library/xmlrpc.po +source_file = gettext/library/xmlrpc.pot +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xmlrpc_client] +file_filter = library/xmlrpc.client.po +source_file = gettext/library/xmlrpc.client.pot +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc_client +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--xmlrpc_server] +file_filter = library/xmlrpc.server.po +source_file = gettext/library/xmlrpc.server.pot +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc_server +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--zipapp] +file_filter = library/zipapp.po +source_file = gettext/library/zipapp.pot +type = PO +minimum_perc = 0 +resource_name = library--zipapp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--zipfile] +file_filter = library/zipfile.po +source_file = gettext/library/zipfile.pot +type = PO +minimum_perc = 0 +resource_name = library--zipfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--zipimport] +file_filter = library/zipimport.po +source_file = gettext/library/zipimport.pot +type = PO +minimum_perc = 0 +resource_name = library--zipimport +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--zlib] +file_filter = library/zlib.po +source_file = gettext/library/zlib.pot +type = PO +minimum_perc = 0 +resource_name = library--zlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:library--zoneinfo] +file_filter = library/zoneinfo.po +source_file = gettext/library/zoneinfo.pot +type = PO +minimum_perc = 0 +resource_name = library--zoneinfo +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:license] +file_filter = license.po +source_file = gettext/license.pot +type = PO +minimum_perc = 0 +resource_name = license +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--compound_stmts] +file_filter = reference/compound_stmts.po +source_file = gettext/reference/compound_stmts.pot +type = PO +minimum_perc = 0 +resource_name = reference--compound_stmts +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--datamodel] +file_filter = reference/datamodel.po +source_file = gettext/reference/datamodel.pot +type = PO +minimum_perc = 0 +resource_name = reference--datamodel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--executionmodel] +file_filter = reference/executionmodel.po +source_file = gettext/reference/executionmodel.pot +type = PO +minimum_perc = 0 +resource_name = reference--executionmodel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--expressions] +file_filter = reference/expressions.po +source_file = gettext/reference/expressions.pot +type = PO +minimum_perc = 0 +resource_name = reference--expressions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--grammar] +file_filter = reference/grammar.po +source_file = gettext/reference/grammar.pot +type = PO +minimum_perc = 0 +resource_name = reference--grammar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--import] +file_filter = reference/import.po +source_file = gettext/reference/import.pot +type = PO +minimum_perc = 0 +resource_name = reference--import +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--index] +file_filter = reference/index.po +source_file = gettext/reference/index.pot +type = PO +minimum_perc = 0 +resource_name = reference--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--introduction] +file_filter = reference/introduction.po +source_file = gettext/reference/introduction.pot +type = PO +minimum_perc = 0 +resource_name = reference--introduction +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--lexical_analysis] +file_filter = reference/lexical_analysis.po +source_file = gettext/reference/lexical_analysis.pot +type = PO +minimum_perc = 0 +resource_name = reference--lexical_analysis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--simple_stmts] +file_filter = reference/simple_stmts.po +source_file = gettext/reference/simple_stmts.pot +type = PO +minimum_perc = 0 +resource_name = reference--simple_stmts +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:reference--toplevel_components] +file_filter = reference/toplevel_components.po +source_file = gettext/reference/toplevel_components.pot +type = PO +minimum_perc = 0 +resource_name = reference--toplevel_components +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:sphinx] +file_filter = sphinx.po +source_file = gettext/sphinx.pot +type = PO +minimum_perc = 0 +resource_name = sphinx +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--appendix] +file_filter = tutorial/appendix.po +source_file = gettext/tutorial/appendix.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--appendix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--appetite] +file_filter = tutorial/appetite.po +source_file = gettext/tutorial/appetite.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--appetite +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--classes] +file_filter = tutorial/classes.po +source_file = gettext/tutorial/classes.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--classes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--controlflow] +file_filter = tutorial/controlflow.po +source_file = gettext/tutorial/controlflow.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--controlflow +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--datastructures] +file_filter = tutorial/datastructures.po +source_file = gettext/tutorial/datastructures.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--datastructures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--errors] +file_filter = tutorial/errors.po +source_file = gettext/tutorial/errors.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--errors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--floatingpoint] +file_filter = tutorial/floatingpoint.po +source_file = gettext/tutorial/floatingpoint.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--floatingpoint +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--index] +file_filter = tutorial/index.po +source_file = gettext/tutorial/index.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--inputoutput] +file_filter = tutorial/inputoutput.po +source_file = gettext/tutorial/inputoutput.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--inputoutput +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--interactive] +file_filter = tutorial/interactive.po +source_file = gettext/tutorial/interactive.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--interactive +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--interpreter] +file_filter = tutorial/interpreter.po +source_file = gettext/tutorial/interpreter.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--interpreter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--introduction] +file_filter = tutorial/introduction.po +source_file = gettext/tutorial/introduction.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--introduction +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--modules] +file_filter = tutorial/modules.po +source_file = gettext/tutorial/modules.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--stdlib] +file_filter = tutorial/stdlib.po +source_file = gettext/tutorial/stdlib.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--stdlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--stdlib2] +file_filter = tutorial/stdlib2.po +source_file = gettext/tutorial/stdlib2.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--stdlib2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--venv] +file_filter = tutorial/venv.po +source_file = gettext/tutorial/venv.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--venv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:tutorial--whatnow] +file_filter = tutorial/whatnow.po +source_file = gettext/tutorial/whatnow.pot +type = PO +minimum_perc = 0 +resource_name = tutorial--whatnow +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--android] +file_filter = using/android.po +source_file = gettext/using/android.pot +type = PO +minimum_perc = 0 +resource_name = using--android +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--cmdline] +file_filter = using/cmdline.po +source_file = gettext/using/cmdline.pot +type = PO +minimum_perc = 0 +resource_name = using--cmdline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--configure] +file_filter = using/configure.po +source_file = gettext/using/configure.pot +type = PO +minimum_perc = 0 +resource_name = using--configure +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--editors] +file_filter = using/editors.po +source_file = gettext/using/editors.pot +type = PO +minimum_perc = 0 +resource_name = using--editors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--index] +file_filter = using/index.po +source_file = gettext/using/index.pot +type = PO +minimum_perc = 0 +resource_name = using--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--ios] +file_filter = using/ios.po +source_file = gettext/using/ios.pot +type = PO +minimum_perc = 0 +resource_name = using--ios +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--mac] +file_filter = using/mac.po +source_file = gettext/using/mac.pot +type = PO +minimum_perc = 0 +resource_name = using--mac +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--unix] +file_filter = using/unix.po +source_file = gettext/using/unix.pot +type = PO +minimum_perc = 0 +resource_name = using--unix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:using--windows] +file_filter = using/windows.po +source_file = gettext/using/windows.pot +type = PO +minimum_perc = 0 +resource_name = using--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_0] +file_filter = whatsnew/2.0.po +source_file = gettext/whatsnew/2.0.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_0 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_1] +file_filter = whatsnew/2.1.po +source_file = gettext/whatsnew/2.1.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_1 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_2] +file_filter = whatsnew/2.2.po +source_file = gettext/whatsnew/2.2.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_3] +file_filter = whatsnew/2.3.po +source_file = gettext/whatsnew/2.3.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_4] +file_filter = whatsnew/2.4.po +source_file = gettext/whatsnew/2.4.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_4 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_5] +file_filter = whatsnew/2.5.po +source_file = gettext/whatsnew/2.5.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_5 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_6] +file_filter = whatsnew/2.6.po +source_file = gettext/whatsnew/2.6.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_6 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--2_7] +file_filter = whatsnew/2.7.po +source_file = gettext/whatsnew/2.7.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_7 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_0] +file_filter = whatsnew/3.0.po +source_file = gettext/whatsnew/3.0.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_0 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_1] +file_filter = whatsnew/3.1.po +source_file = gettext/whatsnew/3.1.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_1 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_10] +file_filter = whatsnew/3.10.po +source_file = gettext/whatsnew/3.10.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_10 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_11] +file_filter = whatsnew/3.11.po +source_file = gettext/whatsnew/3.11.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_11 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_12] +file_filter = whatsnew/3.12.po +source_file = gettext/whatsnew/3.12.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_12 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_13] +file_filter = whatsnew/3.13.po +source_file = gettext/whatsnew/3.13.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_13 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_14] +file_filter = whatsnew/3.14.po +source_file = gettext/whatsnew/3.14.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_14 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_2] +file_filter = whatsnew/3.2.po +source_file = gettext/whatsnew/3.2.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_3] +file_filter = whatsnew/3.3.po +source_file = gettext/whatsnew/3.3.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_4] +file_filter = whatsnew/3.4.po +source_file = gettext/whatsnew/3.4.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_4 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_5] +file_filter = whatsnew/3.5.po +source_file = gettext/whatsnew/3.5.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_5 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_6] +file_filter = whatsnew/3.6.po +source_file = gettext/whatsnew/3.6.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_6 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_7] +file_filter = whatsnew/3.7.po +source_file = gettext/whatsnew/3.7.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_7 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_8] +file_filter = whatsnew/3.8.po +source_file = gettext/whatsnew/3.8.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_8 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--3_9] +file_filter = whatsnew/3.9.po +source_file = gettext/whatsnew/3.9.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_9 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--changelog] +file_filter = whatsnew/changelog.po +source_file = gettext/whatsnew/changelog.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--changelog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:was-python-newest:r:whatsnew--index] +file_filter = whatsnew/index.po +source_file = gettext/whatsnew/index.pot +type = PO +minimum_perc = 0 +resource_name = whatsnew--index +replace_edited_strings = false +keep_translations = false + diff --git a/c-api/abstract.po b/c-api/abstract.po new file mode 100644 index 0000000..1859e49 --- /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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/abstract.rst:7 +msgid "Abstract Objects Layer" +msgstr "Absztrakt Objektum Réteg" + +#: ../../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 "" +"Az ebben a fejezetben található függvények a Python objektumokkal annak " +"típusától függetlenül lépnek kapcsolatba (pl. minden numerikus típus vagy " +"minden sorozat típus). Amikor olyan objektumon van használva, amire nem " +"vonatkoznak, akkor Python kivételt dobnak." + +#: ../../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 "" +"Ezeket a függvényeket nem lehetséges olyan objektumokon használni, amik " +"nincsenek rendesen inicializálva, mint például a lista objektumok amiket " +"a :c:func:`PyList_New` hoz létre, de értékük még nem lett nem ``NULL`` " +"értékre állítva." diff --git a/c-api/allocation.po b/c-api/allocation.po new file mode 100644 index 0000000..140ae80 --- /dev/null +++ b/c-api/allocation.po @@ -0,0 +1,209 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/allocation.rst:6 +msgid "Allocating Objects on the Heap" +msgstr "Objektumok Allokálása a Heap-en" + +#: ../../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 "" + +#: ../../c-api/allocation.rst:24 +msgid "" +"In general, consider this function to be a low-level routine. " +"Use :c:member:`~PyTypeObject.tp_alloc` where possible. For " +"implementing :c:member:`!tp_alloc` for your type, " +"prefer :c:func:`PyType_GenericAlloc` or :c:func:`PyObject_New`." +msgstr "" + +#: ../../c-api/allocation.rst:31 +msgid "" +"This function only initializes the object's memory corresponding to the " +"initial :c:type:`PyObject` structure. It does not zero the rest." +msgstr "" + +#: ../../c-api/allocation.rst:37 +msgid "" +"This does everything :c:func:`PyObject_Init` does, and also initializes the " +"length information for a variable-size object." +msgstr "" +"Ez mindent megcsinál, amit a :c:func:`PyObject_Init` csinálna és " +"inicializálja a hossz információt egy változó-nagyságú objektumnak." + +#: ../../c-api/allocation.rst:42 +msgid "" +"This function only initializes some of the object's memory. It does not " +"zero the rest." +msgstr "" + +#: ../../c-api/allocation.rst:48 +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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/allocation.rst:61 +msgid "" +"This macro does not " +"call :c:member:`~PyTypeObject.tp_alloc`, :c:member:`~PyTypeObject.tp_new` " +"(:meth:`~object.__new__`), or :c:member:`~PyTypeObject.tp_init` " +"(:meth:`~object.__init__`)." +msgstr "" + +#: ../../c-api/allocation.rst:65 +msgid "" +"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set " +"in :c:member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_New` " +"instead." +msgstr "" + +#: ../../c-api/allocation.rst:68 +msgid "" +"Memory allocated by this macro must be freed with :c:func:`PyObject_Free` " +"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" + +#: ../../c-api/allocation.rst:73 ../../c-api/allocation.rst:123 +msgid "" +"The returned memory is not guaranteed to have been completely zeroed before " +"it was initialized." +msgstr "" + +#: ../../c-api/allocation.rst: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 "" + +#: ../../c-api/allocation.rst:83 +msgid "PyObject *foo = PyObject_CallNoArgs((PyObject *)&PyFoo_Type);" +msgstr "" + +#: ../../c-api/allocation.rst:87 ../../c-api/allocation.rst:137 +msgid ":c:func:`PyObject_Free`" +msgstr "" + +#: ../../c-api/allocation.rst:88 +msgid ":c:macro:`PyObject_GC_New`" +msgstr "" + +#: ../../c-api/allocation.rst:89 ../../c-api/allocation.rst:139 +msgid ":c:func:`PyType_GenericAlloc`" +msgstr "" + +#: ../../c-api/allocation.rst:90 ../../c-api/allocation.rst:140 +msgid ":c:member:`~PyTypeObject.tp_alloc`" +msgstr "" + +#: ../../c-api/allocation.rst:95 +msgid "Like :c:macro:`PyObject_New` except:" +msgstr "" + +#: ../../c-api/allocation.rst:97 +msgid "" +"It allocates enough memory for the *TYPE* structure plus *size* " +"(``Py_ssize_t``) fields of the size given by " +"the :c:member:`~PyTypeObject.tp_itemsize` field of *typeobj*." +msgstr "" + +#: ../../c-api/allocation.rst:100 +msgid "The memory is initialized like :c:func:`PyObject_InitVar`." +msgstr "" + +#: ../../c-api/allocation.rst:102 +msgid "" +"This is useful for implementing objects like tuples, which are able to " +"determine their size at construction time. Embedding the array of fields " +"into the same allocation decreases the number of allocations, improving the " +"memory management efficiency." +msgstr "" + +#: ../../c-api/allocation.rst:114 +msgid "" +"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set " +"in :c:member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_NewVar` " +"instead." +msgstr "" + +#: ../../c-api/allocation.rst:118 +msgid "" +"Memory allocated by this function must be freed with :c:func:`PyObject_Free` " +"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" + +#: ../../c-api/allocation.rst:133 +msgid "" +"PyObject *list_instance = PyObject_CallNoArgs((PyObject *)&PyList_Type);" +msgstr "" + +#: ../../c-api/allocation.rst:138 +msgid ":c:macro:`PyObject_GC_NewVar`" +msgstr "" + +#: ../../c-api/allocation.rst:145 +msgid "Same as :c:func:`PyObject_Free`." +msgstr "" + +#: ../../c-api/allocation.rst:149 +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 "" +"Objektum, ami a Pythonban ``None``-ként lesz látható. Ezt csak " +"a :c:macro:`Py_None` makróval szabad elérni, ami egy erre az objektumra " +"mutató pointerre értékelődik ki." + +#: ../../c-api/allocation.rst:156 +msgid ":ref:`moduleobjects`" +msgstr "" + +#: ../../c-api/allocation.rst:157 +msgid "To allocate and create extension modules." +msgstr "Kiegészítő modulok allokálására és létrehozására." diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po new file mode 100644 index 0000000..c46f578 --- /dev/null +++ b/c-api/apiabiversion.po @@ -0,0 +1,295 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/apiabiversion.rst:7 +msgid "API and ABI Versioning" +msgstr "API és ABI Verziószámozás" + +#: ../../c-api/apiabiversion.rst:11 +msgid "Build-time version constants" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/apiabiversion.rst:17 +msgid "" +"See :ref:`stable` for a discussion of API and ABI stability across versions." +msgstr "" +"Lásd: :ref:`stable` egy beszélgetéshez az API és ABI stabilitásáról verziók " +"között." + +#: ../../c-api/apiabiversion.rst:21 +msgid "The ``3`` in ``3.4.1a2``." +msgstr "A ``3`` ``3.4.1a2``-ban. " + +#: ../../c-api/apiabiversion.rst:25 +msgid "The ``4`` in ``3.4.1a2``." +msgstr "A ``4`` ``3.4.1a2``-ban." + +#: ../../c-api/apiabiversion.rst:29 +msgid "The ``1`` in ``3.4.1a2``." +msgstr "A ``1`` ``3.4.1a2``-ban." + +#: ../../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 "" +"A ``a`` ``3.4.1a2``-ban. Ez lehet ``0xA`` alfának, ``0xB`` bétának, ``0xC`` " +"kiadásra jelöltnek vagy ``0xF`` véglegesnek." + +#: ../../c-api/apiabiversion.rst:39 +msgid "The ``2`` in ``3.4.1a2``. Zero for final releases." +msgstr "A ``2`` ``3.4.1a2``-ban. Nulla a végleges kiadáshoz." + +#: ../../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 "" + +#: ../../c-api/apiabiversion.rst:46 +msgid "" +"Use this for numeric comparisons, for example, ``#if PY_VERSION_HEX >= ...``." +msgstr "" + +#: ../../c-api/apiabiversion.rst:51 +msgid "Run-time version" +msgstr "" + +#: ../../c-api/apiabiversion.rst:55 +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 "" + +#: ../../c-api/apiabiversion.rst:59 +msgid "" +"Use this for numeric comparisons, for example, ``if (Py_Version >= ...)``." +msgstr "" + +#: ../../c-api/apiabiversion.rst:65 +msgid "Bit-packing macros" +msgstr "" + +#: ../../c-api/apiabiversion.rst:69 +msgid "" +"Return the given version, encoded as a single 32-bit integer with the " +"following structure:" +msgstr "" + +#: ../../c-api/apiabiversion.rst:75 +msgid "Argument" +msgstr "" + +#: ../../c-api/apiabiversion.rst:73 +msgid "No. of bits" +msgstr "" + +#: ../../c-api/apiabiversion.rst:75 +msgid "Bit mask" +msgstr "" + +#: ../../c-api/apiabiversion.rst:75 +msgid "Bit shift" +msgstr "" + +#: ../../c-api/apiabiversion.rst:73 +msgid "Example values" +msgstr "" + +#: ../../c-api/apiabiversion.rst:75 ../../c-api/apiabiversion.rst:93 +msgid "``3.4.1a2``" +msgstr "``3.4.1a2``" + +#: ../../c-api/apiabiversion.rst:75 ../../c-api/apiabiversion.rst:95 +msgid "``3.10.0``" +msgstr "``3.10.0``" + +#: ../../c-api/apiabiversion.rst:77 +msgid "*major*" +msgstr "" + +#: ../../c-api/apiabiversion.rst:77 ../../c-api/apiabiversion.rst:79 +#: ../../c-api/apiabiversion.rst:81 +msgid "8" +msgstr "" + +#: ../../c-api/apiabiversion.rst:77 +msgid "``0xFF000000``" +msgstr "``0xFF000000``" + +#: ../../c-api/apiabiversion.rst:77 +msgid "24" +msgstr "" + +#: ../../c-api/apiabiversion.rst:77 +msgid "``0x03``" +msgstr "``0x03``" + +#: ../../c-api/apiabiversion.rst:79 +msgid "*minor*" +msgstr "" + +#: ../../c-api/apiabiversion.rst:79 +msgid "``0x00FF0000``" +msgstr "``0x00FF0000``" + +#: ../../c-api/apiabiversion.rst:79 +msgid "16" +msgstr "" + +#: ../../c-api/apiabiversion.rst:79 +msgid "``0x04``" +msgstr "``0x04``" + +#: ../../c-api/apiabiversion.rst:79 +msgid "``0x0A``" +msgstr "``0x0A``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "*micro*" +msgstr "" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x0000FF00``" +msgstr "``0x0000FF00``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x01``" +msgstr "``0x01``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x00``" +msgstr "``0x00``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "*release_level*" +msgstr "" + +#: ../../c-api/apiabiversion.rst:83 ../../c-api/apiabiversion.rst:85 +msgid "4" +msgstr "4" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0x000000F0``" +msgstr "``0x000000F0``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0xA``" +msgstr "``0xA``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0xF``" +msgstr "``0xF``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "*release_serial*" +msgstr "" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0x0000000F``" +msgstr "``0x0000000F``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "0" +msgstr "" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0x2``" +msgstr "``0x2``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0x0``" +msgstr "``0x0``" + +#: ../../c-api/apiabiversion.rst:88 +msgid "For example:" +msgstr "" + +#: ../../c-api/apiabiversion.rst:91 +msgid "Version" +msgstr "" + +#: ../../c-api/apiabiversion.rst:91 +msgid "``Py_PACK_FULL_VERSION`` arguments" +msgstr "" + +#: ../../c-api/apiabiversion.rst:91 +msgid "Encoded version" +msgstr "" + +#: ../../c-api/apiabiversion.rst:93 +msgid "``(3, 4, 1, 0xA, 2)``" +msgstr "" + +#: ../../c-api/apiabiversion.rst:93 +msgid "``0x030401a2``" +msgstr "``0x030401a2``" + +#: ../../c-api/apiabiversion.rst:95 +msgid "``(3, 10, 0, 0xF, 0)``" +msgstr "" + +#: ../../c-api/apiabiversion.rst:95 +msgid "``0x030a00f0``" +msgstr "``0x030a00f0``" + +#: ../../c-api/apiabiversion.rst:98 +msgid "" +"Out-of range bits in the arguments are ignored. That is, the macro can be " +"defined as:" +msgstr "" + +#: ../../c-api/apiabiversion.rst:101 +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 "" + +#: ../../c-api/apiabiversion.rst:112 +msgid "" +"``Py_PACK_FULL_VERSION`` is primarily a macro, intended for use in ``#if`` " +"directives, but it is also available as an exported function." +msgstr "" + +#: ../../c-api/apiabiversion.rst:119 +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 "" diff --git a/c-api/arg.po b/c-api/arg.po new file mode 100644 index 0000000..aaf9caa --- /dev/null +++ b/c-api/arg.po @@ -0,0 +1,1242 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/arg.rst:6 +msgid "Parsing arguments and building values" +msgstr "Argumentumok elemzése és értékek építése " + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:19 +msgid "Parsing arguments" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:33 +msgid "Strings and buffers" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:46 +msgid "Unless otherwise stated, buffers are not NUL-terminated." +msgstr "" + +#: ../../c-api/arg.rst:48 +msgid "There are three ways strings and buffers can be converted to C:" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:70 +msgid "" +"To ensure that the underlying buffer may be safely borrowed, the " +"object's :c:member:`PyBufferProcs.bf_releasebuffer` field must be ``NULL``. " +"This disallows common mutable objects such as :class:`bytearray`, but also " +"some read-only objects such as :class:`memoryview` of :class:`bytes`." +msgstr "" + +#: ../../c-api/arg.rst:76 +msgid "" +"Besides this ``bf_releasebuffer`` requirement, there is no check to verify " +"whether the input object is immutable (e.g. whether it would honor a request " +"for a writable buffer, or whether another thread can mutate the data)." +msgstr "" + +#: ../../c-api/arg.rst:80 +msgid "``s`` (:class:`str`) [const char \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:96 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null code points were " +"encountered in the Python string." +msgstr "" + +#: ../../c-api/arg.rst:100 +msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:106 +msgid "" +"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char " +"\\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:113 ../../c-api/arg.rst:614 +msgid "``z`` (:class:`str` or ``None``) [const char \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:117 +msgid "" +"``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:125 +msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:132 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes buffer." +msgstr "" + +#: ../../c-api/arg.rst:136 +msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" +msgstr "``y*`` (:term:`bytes-like object`) [Py_buffer]" + +#: ../../c-api/arg.rst:137 +msgid "" +"This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " +"objects. **This is the recommended way to accept binary data.**" +msgstr "" + +#: ../../c-api/arg.rst:141 +msgid "" +"``y#`` (read-only :term:`bytes-like object`) [const char " +"\\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../c-api/arg.rst:142 +msgid "" +"This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " +"objects." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:160 +msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" +msgstr "" + +#: ../../c-api/arg.rst:161 +msgid "" +"This format accepts any object which implements the read-write buffer " +"interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " +"The buffer may contain embedded null bytes. The caller have to " +"call :c:func:`PyBuffer_Release` when it is done with the buffer." +msgstr "" + +#: ../../c-api/arg.rst:166 +msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" +msgstr "" + +#: ../../c-api/arg.rst:167 +msgid "" +"This variant on ``s`` is used for encoding Unicode into a character buffer. " +"It only works for encoded data without embedded NUL bytes." +msgstr "" + +#: ../../c-api/arg.rst:170 +msgid "" +"This format requires two arguments. The first is only used as input, and " +"must be a :c:expr:`const char*` which points to the name of an encoding as a " +"NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " +"used. An exception is raised if the named encoding is not known to Python. " +"The second argument must be a :c:expr:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument." +msgstr "" + +#: ../../c-api/arg.rst:178 +msgid "" +":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " +"the encoded data into this buffer and adjust *\\*buffer* to reference the " +"newly allocated storage. The caller is responsible for " +"calling :c:func:`PyMem_Free` to free the allocated buffer after use." +msgstr "" + +#: ../../c-api/arg.rst:183 +msgid "" +"``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer]" +msgstr "" + +#: ../../c-api/arg.rst:184 +msgid "" +"Same as ``es`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" + +#: ../../c-api/arg.rst:188 +msgid "" +"``es#`` (:class:`str`) [const char \\*encoding, char " +"\\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" +msgstr "" + +#: ../../c-api/arg.rst:189 +msgid "" +"This variant on ``s#`` is used for encoding Unicode into a character buffer. " +"Unlike the ``es`` format, this variant allows input data which contains NUL " +"characters." +msgstr "" + +#: ../../c-api/arg.rst:193 +msgid "" +"It requires three arguments. The first is only used as input, and must be " +"a :c:expr:`const char*` which points to the name of an encoding as a NUL-" +"terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. " +"An exception is raised if the named encoding is not known to Python. The " +"second argument must be a :c:expr:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument. " +"The third argument must be a pointer to an integer; the referenced integer " +"will be set to the number of bytes in the output buffer." +msgstr "" + +#: ../../c-api/arg.rst:203 +msgid "There are two modes of operation:" +msgstr "" + +#: ../../c-api/arg.rst:205 +msgid "" +"If *\\*buffer* points a ``NULL`` pointer, the function will allocate a " +"buffer of the needed size, copy the encoded data into this buffer and set " +"*\\*buffer* to reference the newly allocated storage. The caller is " +"responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " +"after usage." +msgstr "" + +#: ../../c-api/arg.rst:210 +msgid "" +"If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " +"buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " +"interpret the initial value of *\\*buffer_length* as the buffer size. It " +"will then copy the encoded data into the buffer and NUL-terminate it. If " +"the buffer is not large enough, a :exc:`ValueError` will be set." +msgstr "" + +#: ../../c-api/arg.rst:216 +msgid "" +"In both cases, *\\*buffer_length* is set to the length of the encoded data " +"without the trailing NUL byte." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:220 +msgid "" +"Same as ``es#`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" + +#: ../../c-api/arg.rst:224 +msgid "" +"``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " +"``Py_UNICODE*`` representation." +msgstr "" + +#: ../../c-api/arg.rst:230 +msgid "Numbers" +msgstr "Számok" + +#: ../../c-api/arg.rst:232 +msgid "" +"These formats allow representing Python numbers or single characters as C " +"numbers. Formats that require :class:`int`, :class:`float` " +"or :class:`complex` can also use the corresponding special " +"methods :meth:`~object.__index__`, :meth:`~object.__float__` " +"or :meth:`~object.__complex__` to convert the Python object to the required " +"type." +msgstr "" + +#: ../../c-api/arg.rst:238 +msgid "" +"For signed integer formats, :exc:`OverflowError` is raised if the value is " +"out of range for the C type. For unsigned integer formats, no range checking " +"is done --- the most significant bits are silently truncated when the " +"receiving field is too small to receive the value." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:255 ../../c-api/arg.rst:651 +msgid "``H`` (:class:`int`) [unsigned short int]" +msgstr "" + +#: ../../c-api/arg.rst:256 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned short int`, without " +"overflow checking." +msgstr "" + +#: ../../c-api/arg.rst:259 ../../c-api/arg.rst:636 +msgid "``i`` (:class:`int`) [int]" +msgstr "" + +#: ../../c-api/arg.rst:260 +msgid "Convert a Python integer to a plain C :c:expr:`int`." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:273 ../../c-api/arg.rst:283 +msgid "Use :meth:`~object.__index__` if available." +msgstr "" + +#: ../../c-api/arg.rst:276 ../../c-api/arg.rst:660 +msgid "``L`` (:class:`int`) [long long]" +msgstr "``L`` (:class:`int`) [long long]" + +#: ../../c-api/arg.rst:277 +msgid "Convert a Python integer to a C :c:expr:`long long`." +msgstr "" + +#: ../../c-api/arg.rst:279 ../../c-api/arg.rst:665 +msgid "``K`` (:class:`int`) [unsigned long long]" +msgstr "" + +#: ../../c-api/arg.rst:280 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned long long` without " +"overflow checking." +msgstr "" + +#: ../../c-api/arg.rst:286 ../../c-api/arg.rst:668 +msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../c-api/arg.rst:287 +msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/arg.rst:289 +msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:293 +msgid "Allow :class:`bytearray` objects." +msgstr "" + +#: ../../c-api/arg.rst:296 ../../c-api/arg.rst:686 +msgid "``C`` (:class:`str` of length 1) [int]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:300 ../../c-api/arg.rst:693 +msgid "``f`` (:class:`float`) [float]" +msgstr "" + +#: ../../c-api/arg.rst:301 +msgid "Convert a Python floating-point number to a C :c:expr:`float`." +msgstr "" + +#: ../../c-api/arg.rst:303 ../../c-api/arg.rst:690 +msgid "``d`` (:class:`float`) [double]" +msgstr "" + +#: ../../c-api/arg.rst:304 +msgid "Convert a Python floating-point number to a C :c:expr:`double`." +msgstr "" + +#: ../../c-api/arg.rst:306 +msgid "``D`` (:class:`complex`) [Py_complex]" +msgstr "" + +#: ../../c-api/arg.rst:307 +msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." +msgstr "" + +#: ../../c-api/arg.rst:310 +msgid "Other objects" +msgstr "" + +#: ../../c-api/arg.rst:312 ../../c-api/arg.rst:699 +msgid "``O`` (object) [PyObject \\*]" +msgstr "``O`` (object) [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 "" + +#: ../../c-api/arg.rst:319 +msgid "``O!`` (object) [*typeobject*, PyObject \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:328 +msgid "``O&`` (object) [*converter*, *address*]" +msgstr "``O&`` (object) [*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 "" + +#: ../../c-api/arg.rst:334 +msgid "status = converter(object, address);" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:351 +msgid "" +"Examples of converters: :c:func:`PyUnicode_FSConverter` " +"and :c:func:`PyUnicode_FSDecoder`." +msgstr "" + +#: ../../c-api/arg.rst:354 +msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." +msgstr "" + +#: ../../c-api/arg.rst:357 ../../c-api/arg.rst:671 +msgid "``p`` (:class:`bool`) [int]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:366 +msgid "``(items)`` (sequence) [*matching-items*]" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:379 +msgid "" +":class:`str` and :class:`bytearray` objects no longer accepted as a sequence." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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-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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:434 +msgid "API Functions" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:466 +msgid "" +"Added support for :ref:`positional-only parameters `." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:498 +msgid "Example::" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:548 +msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:566 +msgid "Building values" +msgstr "" + +#: ../../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 "" + +#: ../../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-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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:597 +msgid "``s`` (:class:`str` or ``None``) [const char \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:601 +msgid "" +"``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:606 +msgid "``y`` (:class:`bytes`) [const char \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:610 +msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:615 ../../c-api/arg.rst:631 +msgid "Same as ``s``." +msgstr "" + +#: ../../c-api/arg.rst:617 +msgid "" +"``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../c-api/arg.rst:618 ../../c-api/arg.rst:634 +msgid "Same as ``s#``." +msgstr "" + +#: ../../c-api/arg.rst:620 +msgid "``u`` (:class:`str`) [const wchar_t \\*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:625 +msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:630 +msgid "``U`` (:class:`str` or ``None``) [const char \\*]" +msgstr "" + +#: ../../c-api/arg.rst:633 +msgid "" +"``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" +msgstr "" + +#: ../../c-api/arg.rst:637 +msgid "Convert a plain C :c:expr:`int` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:639 +msgid "``b`` (:class:`int`) [char]" +msgstr "" + +#: ../../c-api/arg.rst:640 +msgid "Convert a plain C :c:expr:`char` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:643 +msgid "Convert a plain C :c:expr:`short int` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:646 +msgid "Convert a C :c:expr:`long int` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:649 +msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:652 +msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:655 +msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:658 +msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:661 +msgid "Convert a C :c:expr:`long long` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:666 +msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." +msgstr "" + +#: ../../c-api/arg.rst:669 +msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." +msgstr "" + +#: ../../c-api/arg.rst:672 +msgid "Convert a C :c:expr:`int` to a Python :class:`bool` object." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:682 +msgid "``c`` (:class:`bytes` of length 1) [char]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:687 +msgid "" +"Convert a C :c:expr:`int` representing a character to Python :class:`str` " +"object of length 1." +msgstr "" + +#: ../../c-api/arg.rst:691 +msgid "Convert a C :c:expr:`double` to a Python floating-point number." +msgstr "" + +#: ../../c-api/arg.rst:694 +msgid "Convert a C :c:expr:`float` to a Python floating-point number." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:709 +msgid "``S`` (object) [PyObject \\*]" +msgstr "``S`` (object) [PyObject \\*]" + +#: ../../c-api/arg.rst:710 +msgid "Same as ``O``." +msgstr "" + +#: ../../c-api/arg.rst:712 +msgid "``N`` (object) [PyObject \\*]" +msgstr "``N`` (object) [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 "" + +#: ../../c-api/arg.rst:717 +msgid "``O&`` (object) [*converter*, *anything*]" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/arg.rst:723 +msgid "``(items)`` (:class:`tuple`) [*matching-items*]" +msgstr "" + +#: ../../c-api/arg.rst:724 +msgid "" +"Convert a sequence of C values to a Python tuple with the same number of " +"items." +msgstr "" + +#: ../../c-api/arg.rst:726 +msgid "``[items]`` (:class:`list`) [*matching-items*]" +msgstr "" + +#: ../../c-api/arg.rst:727 +msgid "" +"Convert a sequence of C values to a Python list with the same number of " +"items." +msgstr "" + +#: ../../c-api/arg.rst:729 +msgid "``{items}`` (:class:`dict`) [*matching-items*]" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" diff --git a/c-api/bool.po b/c-api/bool.po new file mode 100644 index 0000000..c01f227 --- /dev/null +++ b/c-api/bool.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/bool.rst:6 +msgid "Boolean Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/bool.rst:16 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python boolean type; " +"it is the same object as :class:`bool` in the Python layer." +msgstr "" + +#: ../../c-api/bool.rst:22 +msgid "" +"Return true if *o* is of type :c:data:`PyBool_Type`. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/bool.rst:28 +msgid "" +"The Python ``False`` object. This object has no methods and " +"is :term:`immortal`." +msgstr "" + +#: ../../c-api/bool.rst:31 +msgid ":c:data:`Py_False` is :term:`immortal`." +msgstr "" + +#: ../../c-api/bool.rst:37 +msgid "" +"The Python ``True`` object. This object has no methods and " +"is :term:`immortal`." +msgstr "" + +#: ../../c-api/bool.rst:40 +msgid ":c:data:`Py_True` is :term:`immortal`." +msgstr "" + +#: ../../c-api/bool.rst:46 +msgid "Return :c:data:`Py_False` from a function." +msgstr "" + +#: ../../c-api/bool.rst:51 +msgid "Return :c:data:`Py_True` from a function." +msgstr "" + +#: ../../c-api/bool.rst:56 +msgid "" +"Return :c:data:`Py_True` or :c:data:`Py_False`, depending on the truth value " +"of *v*." +msgstr "" diff --git a/c-api/buffer.po b/c-api/buffer.po new file mode 100644 index 0000000..47c82a7 --- /dev/null +++ b/c-api/buffer.po @@ -0,0 +1,792 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/buffer.rst:11 +msgid "Buffer Protocol" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:58 +msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:69 +msgid "" +"The buffer protocol is now accessible in Python, see :ref:`python-buffer-" +"protocol` and :class:`memoryview`." +msgstr "" + +#: ../../c-api/buffer.rst:75 +msgid "Buffer structure" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:105 +msgid "" +"For :term:`contiguous` arrays, the value points to the beginning of the " +"memory block." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:162 +msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:183 +msgid "The shape array is read-only for the consumer." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:195 +msgid "The strides array is read-only for the consumer." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:213 +msgid "The suboffsets array is read-only for the consumer." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:224 +msgid "Constants:" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:237 +msgid "Buffer request types" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:244 +msgid "" +"All :c:type:`Py_buffer` fields are unambiguously defined by the request type." +msgstr "" + +#: ../../c-api/buffer.rst:248 +msgid "request-independent fields" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:254 +msgid "readonly, format" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/buffer.rst:266 +msgid "" +"Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " +"filled in correctly. Otherwise, this field MUST be ``NULL``." +msgstr "" + +#: ../../c-api/buffer.rst:270 +msgid "" +":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " +"section. Since :c:macro:`PyBUF_SIMPLE` is defined as " +"0, :c:macro:`PyBUF_WRITABLE` can be used as a stand-alone flag to request a " +"simple writable buffer." +msgstr "" + +#: ../../c-api/buffer.rst:274 +msgid "" +":c:macro:`PyBUF_FORMAT` must be \\|'d to any of the flags " +"except :c:macro:`PyBUF_SIMPLE`, because the latter already implies format " +"``B`` (unsigned bytes). :c:macro:`!PyBUF_FORMAT` cannot be used on its own." +msgstr "" + +#: ../../c-api/buffer.rst:280 +msgid "shape, strides, suboffsets" +msgstr "" + +#: ../../c-api/buffer.rst:282 +msgid "" +"The flags that control the logical structure of the memory are listed in " +"decreasing order of complexity. Note that each flag contains all bits of the " +"flags below it." +msgstr "" + +#: ../../c-api/buffer.rst:289 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:338 +msgid "Request" +msgstr "" + +#: ../../c-api/buffer.rst:289 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:338 +msgid "shape" +msgstr "" + +#: ../../c-api/buffer.rst:289 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:338 +msgid "strides" +msgstr "" + +#: ../../c-api/buffer.rst:289 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:338 +msgid "suboffsets" +msgstr "" + +#: ../../c-api/buffer.rst:291 ../../c-api/buffer.rst:293 +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:315 +#: ../../c-api/buffer.rst:317 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:321 ../../c-api/buffer.rst:340 +#: ../../c-api/buffer.rst:342 ../../c-api/buffer.rst:344 +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:348 +#: ../../c-api/buffer.rst:350 ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:354 +msgid "yes" +msgstr "" + +#: ../../c-api/buffer.rst:291 ../../c-api/buffer.rst:340 +#: ../../c-api/buffer.rst:342 +msgid "if needed" +msgstr "" + +#: ../../c-api/buffer.rst:293 ../../c-api/buffer.rst:295 +#: ../../c-api/buffer.rst:297 ../../c-api/buffer.rst:315 +#: ../../c-api/buffer.rst:317 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:321 ../../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 "NULL" +msgstr "" + +#: ../../c-api/buffer.rst:304 +msgid "contiguity requests" +msgstr "" + +#: ../../c-api/buffer.rst:306 +msgid "" +"C or Fortran :term:`contiguity ` can be explicitly requested, " +"with and without stride information. Without stride information, the buffer " +"must be C-contiguous." +msgstr "" + +#: ../../c-api/buffer.rst:313 ../../c-api/buffer.rst:338 +msgid "contig" +msgstr "" + +#: ../../c-api/buffer.rst:315 ../../c-api/buffer.rst:321 +#: ../../c-api/buffer.rst:352 ../../c-api/buffer.rst:354 +msgid "C" +msgstr "" + +#: ../../c-api/buffer.rst:317 +msgid "F" +msgstr "" + +#: ../../c-api/buffer.rst:319 +msgid "C or F" +msgstr "" + +#: ../../c-api/buffer.rst:321 +msgid ":c:macro:`PyBUF_ND`" +msgstr "" + +#: ../../c-api/buffer.rst:326 +msgid "compound requests" +msgstr "" + +#: ../../c-api/buffer.rst:328 +msgid "" +"All possible requests are fully defined by some combination of the flags in " +"the previous section. For convenience, the buffer protocol provides " +"frequently used combinations as single flags." +msgstr "" + +#: ../../c-api/buffer.rst:332 +msgid "" +"In the following table *U* stands for undefined contiguity. The consumer " +"would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." +msgstr "" + +#: ../../c-api/buffer.rst:338 +msgid "readonly" +msgstr "" + +#: ../../c-api/buffer.rst:338 +msgid "format" +msgstr "" + +#: ../../c-api/buffer.rst:340 ../../c-api/buffer.rst:342 +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 ../../c-api/buffer.rst:350 +msgid "U" +msgstr "" + +#: ../../c-api/buffer.rst:340 ../../c-api/buffer.rst:344 +#: ../../c-api/buffer.rst:348 ../../c-api/buffer.rst:352 +msgid "0" +msgstr "" + +#: ../../c-api/buffer.rst:342 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:350 ../../c-api/buffer.rst:354 +msgid "1 or 0" +msgstr "" + +#: ../../c-api/buffer.rst:359 +msgid "Complex arrays" +msgstr "" + +#: ../../c-api/buffer.rst:362 +msgid "NumPy-style: shape and strides" +msgstr "" + +#: ../../c-api/buffer.rst:364 +msgid "" +"The logical structure of NumPy-style arrays is defined " +"by :c:member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer.shape` " +"and :c:member:`~Py_buffer.strides`." +msgstr "" + +#: ../../c-api/buffer.rst:367 +msgid "" +"If ``ndim == 0``, the memory location pointed to " +"by :c:member:`~Py_buffer.buf` is interpreted as a scalar of " +"size :c:member:`~Py_buffer.itemsize`. In that case, " +"both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer.strides` are " +"``NULL``." +msgstr "" + +#: ../../c-api/buffer.rst:371 +msgid "" +"If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " +"standard n-dimensional C-array. Otherwise, the consumer must access an n-" +"dimensional array as follows:" +msgstr "" + +#: ../../c-api/buffer.rst:375 +msgid "" +"ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " +"strides[n-1];\n" +"item = *((typeof(item) *)ptr);" +msgstr "" + +#: ../../c-api/buffer.rst:381 +msgid "" +"As noted above, :c:member:`~Py_buffer.buf` can point to any location within " +"the actual memory block. An exporter can check the validity of a buffer with " +"this function:" +msgstr "" + +#: ../../c-api/buffer.rst:385 +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 "" + +#: ../../c-api/buffer.rst:415 +msgid "PIL-style: shape, strides and suboffsets" +msgstr "" + +#: ../../c-api/buffer.rst:417 +msgid "" +"In addition to the regular items, PIL-style arrays can contain pointers that " +"must be followed in order to get to the next element in a dimension. For " +"example, the regular three-dimensional C-array ``char v[2][2][3]`` can also " +"be viewed as an array of 2 pointers to 2 two-dimensional arrays: ``char " +"(*v[2])[2][3]``. In suboffsets representation, those two pointers can be " +"embedded at the start of :c:member:`~Py_buffer.buf`, pointing to two ``char " +"x[2][3]`` arrays that can be located anywhere in memory." +msgstr "" + +#: ../../c-api/buffer.rst:426 +msgid "" +"Here is a function that returns a pointer to the element in an N-D array " +"pointed to by an N-dimensional index when there are both non-``NULL`` " +"strides and suboffsets::" +msgstr "" + +#: ../../c-api/buffer.rst:430 +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 "" + +#: ../../c-api/buffer.rst:445 +msgid "Buffer-related functions" +msgstr "" + +#: ../../c-api/buffer.rst:449 +msgid "" +"Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " +"``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " +"will succeed. This function always succeeds." +msgstr "" + +#: ../../c-api/buffer.rst:456 +msgid "" +"Send a request to *exporter* to fill in *view* as specified by *flags*. If " +"the exporter cannot provide a buffer of the exact type, it MUST " +"raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." +msgstr "" + +#: ../../c-api/buffer.rst:461 +msgid "" +"On success, fill in *view*, set ``view->obj`` to a new reference to " +"*exporter* and return 0. In the case of chained buffer providers that " +"redirect requests to a single object, ``view->obj`` MAY refer to this object " +"instead of *exporter* (See :ref:`Buffer Object Structures `)." +msgstr "" + +#: ../../c-api/buffer.rst:466 +msgid "" +"Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " +"to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` " +"and :c:func:`free`. Thus, after the consumer is done with the " +"buffer, :c:func:`PyBuffer_Release` must be called exactly once." +msgstr "" + +#: ../../c-api/buffer.rst:474 +msgid "" +"Release the buffer *view* and release the :term:`strong reference` (i.e. " +"decrement the reference count) to the view's supporting object, ``view-" +">obj``. This function MUST be called when the buffer is no longer being " +"used, otherwise reference leaks may occur." +msgstr "" + +#: ../../c-api/buffer.rst:479 +msgid "" +"It is an error to call this function on a buffer that was not obtained " +"via :c:func:`PyObject_GetBuffer`." +msgstr "" + +#: ../../c-api/buffer.rst:485 +msgid "" +"Return the implied :c:member:`~Py_buffer.itemsize` " +"from :c:member:`~Py_buffer.format`. On error, raise an exception and return " +"-1." +msgstr "" + +#: ../../c-api/buffer.rst:493 +msgid "" +"Return ``1`` if the memory defined by the *view* is C-style (*order* is " +"``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " +"one (*order* is ``'A'``). Return ``0`` otherwise. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/buffer.rst:500 +msgid "" +"Get the memory area pointed to by the *indices* inside the given *view*. " +"*indices* must point to an array of ``view->ndim`` indices." +msgstr "" + +#: ../../c-api/buffer.rst:506 +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 "" + +#: ../../c-api/buffer.rst:513 +msgid "" +"Copy *len* bytes from *src* to its contiguous representation in *buf*. " +"*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " +"ordering or either one). ``0`` is returned on success, ``-1`` on error." +msgstr "" + +#: ../../c-api/buffer.rst:517 +msgid "This function fails if *len* != *src->len*." +msgstr "" + +#: ../../c-api/buffer.rst:522 +msgid "" +"Copy data from *src* to *dest* buffer. Can convert between C-style and or " +"Fortran-style buffers." +msgstr "" + +#: ../../c-api/buffer.rst:525 +msgid "``0`` is returned on success, ``-1`` on error." +msgstr "" + +#: ../../c-api/buffer.rst:529 +msgid "" +"Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " +"if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " +"given shape with the given number of bytes per element." +msgstr "" + +#: ../../c-api/buffer.rst:536 +msgid "" +"Handle buffer requests for an exporter that wants to expose *buf* of size " +"*len* with writability set according to *readonly*. *buf* is interpreted as " +"a sequence of unsigned bytes." +msgstr "" + +#: ../../c-api/buffer.rst:540 +msgid "" +"The *flags* argument indicates the request type. This function always fills " +"in *view* as specified by flags, unless *buf* has been designated as read-" +"only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." +msgstr "" + +#: ../../c-api/buffer.rst:544 +msgid "" +"On success, set ``view->obj`` to a new reference to *exporter* and return 0. " +"Otherwise, raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and " +"return ``-1``;" +msgstr "" + +#: ../../c-api/buffer.rst:548 +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 "" + +#: ../../c-api/buffer.rst:3 +msgid "buffer protocol" +msgstr "" + +#: ../../c-api/buffer.rst:3 +msgid "buffer interface" +msgstr "" + +#: ../../c-api/buffer.rst:3 +msgid "(see buffer protocol)" +msgstr "" + +#: ../../c-api/buffer.rst:3 +msgid "buffer object" +msgstr "" + +#: ../../c-api/buffer.rst:32 +msgid "PyBufferProcs (C type)" +msgstr "" + +#: ../../c-api/buffer.rst:301 +msgid "contiguous" +msgstr "" + +#: ../../c-api/buffer.rst:301 +msgid "C-contiguous" +msgstr "" + +#: ../../c-api/buffer.rst:301 +msgid "Fortran contiguous" +msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po new file mode 100644 index 0000000..e71276c --- /dev/null +++ b/c-api/bytearray.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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/bytearray.rst:6 +msgid "Byte Array Objects" +msgstr "" + +#: ../../c-api/bytearray.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python bytearray object." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/bytearray.rst:23 +msgid "Type check macros" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/bytearray.rst:38 +msgid "Direct API functions" +msgstr "" + +#: ../../c-api/bytearray.rst:42 +msgid "" +"Return a new bytearray object from any object, *o*, that implements " +"the :ref:`buffer protocol `." +msgstr "" + +#: ../../c-api/bytearray.rst:45 ../../c-api/bytearray.rst:52 +#: ../../c-api/bytearray.rst:59 +msgid "On failure, return ``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/bytearray.rst:50 +msgid "Create a new bytearray object from *string* and its length, *len*." +msgstr "" + +#: ../../c-api/bytearray.rst:57 +msgid "" +"Concat bytearrays *a* and *b* and return a new bytearray with the result." +msgstr "" + +#: ../../c-api/bytearray.rst:64 +msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." +msgstr "" + +#: ../../c-api/bytearray.rst:69 +msgid "" +"Return the contents of *bytearray* as a char array after checking for a " +"``NULL`` pointer. The returned array always has an extra null byte appended." +msgstr "" + +#: ../../c-api/bytearray.rst:76 +msgid "" +"Resize the internal buffer of *bytearray* to *len*. Failure is a ``-1`` " +"return with an exception set." +msgstr "" + +#: ../../c-api/bytearray.rst:79 +msgid "" +"A negative *len* will now result in an exception being set and -1 returned." +msgstr "" + +#: ../../c-api/bytearray.rst:84 +msgid "Macros" +msgstr "" + +#: ../../c-api/bytearray.rst:86 +msgid "These macros trade safety for speed and they don't check pointers." +msgstr "" + +#: ../../c-api/bytearray.rst:90 +msgid "Similar to :c:func:`PyByteArray_AsString`, but without error checking." +msgstr "" + +#: ../../c-api/bytearray.rst:95 +msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking." +msgstr "" + +#: ../../c-api/bytearray.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/bytearray.rst:8 +msgid "bytearray" +msgstr "" diff --git a/c-api/bytes.po b/c-api/bytes.po new file mode 100644 index 0000000..35bfb52 --- /dev/null +++ b/c-api/bytes.po @@ -0,0 +1,362 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/bytes.rst:6 +msgid "Bytes Objects" +msgstr "" + +#: ../../c-api/bytes.rst:8 +msgid "" +"These functions raise :exc:`TypeError` when expecting a bytes parameter and " +"called with a non-bytes parameter." +msgstr "" + +#: ../../c-api/bytes.rst:16 +msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/bytes.rst:39 +msgid "" +"Return a new bytes object with a copy of the string *v* as value on success, " +"and ``NULL`` on failure. The parameter *v* must not be ``NULL``; it will " +"not be checked." +msgstr "" + +#: ../../c-api/bytes.rst:46 +msgid "" +"Return a new bytes object with a copy of the string *v* as value and length " +"*len* on success, and ``NULL`` on failure. If *v* is ``NULL``, the contents " +"of the bytes object are uninitialized." +msgstr "" + +#: ../../c-api/bytes.rst: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 "" + +#: ../../c-api/bytes.rst:65 +msgid "Format Characters" +msgstr "" + +#: ../../c-api/bytes.rst:65 +msgid "Type" +msgstr "" + +#: ../../c-api/bytes.rst:65 +msgid "Comment" +msgstr "" + +#: ../../c-api/bytes.rst:67 +msgid "``%%``" +msgstr "``%%``" + +#: ../../c-api/bytes.rst:67 +msgid "*n/a*" +msgstr "" + +#: ../../c-api/bytes.rst:67 +msgid "The literal % character." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/bytes.rst:69 +msgid "A single byte, represented as a C int." +msgstr "" + +#: ../../c-api/bytes.rst:72 +msgid "``%d``" +msgstr "``%d``" + +#: ../../c-api/bytes.rst:72 +msgid "Equivalent to ``printf(\"%d\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:75 +msgid "``%u``" +msgstr "``%u``" + +#: ../../c-api/bytes.rst:75 +msgid "unsigned int" +msgstr "" + +#: ../../c-api/bytes.rst:75 +msgid "Equivalent to ``printf(\"%u\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:78 +msgid "``%ld``" +msgstr "``%ld``" + +#: ../../c-api/bytes.rst:78 +msgid "long" +msgstr "" + +#: ../../c-api/bytes.rst:78 +msgid "Equivalent to ``printf(\"%ld\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:81 +msgid "``%lu``" +msgstr "``%lu``" + +#: ../../c-api/bytes.rst:81 +msgid "unsigned long" +msgstr "" + +#: ../../c-api/bytes.rst:81 +msgid "Equivalent to ``printf(\"%lu\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:84 +msgid "``%zd``" +msgstr "``%zd``" + +#: ../../c-api/bytes.rst:84 +msgid ":c:type:`\\ Py_ssize_t`" +msgstr "" + +#: ../../c-api/bytes.rst:84 +msgid "Equivalent to ``printf(\"%zd\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:87 +msgid "``%zu``" +msgstr "``%zu``" + +#: ../../c-api/bytes.rst:87 +msgid "size_t" +msgstr "" + +#: ../../c-api/bytes.rst:87 +msgid "Equivalent to ``printf(\"%zu\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:90 +msgid "``%i``" +msgstr "``%i``" + +#: ../../c-api/bytes.rst:90 +msgid "Equivalent to ``printf(\"%i\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:93 +msgid "``%x``" +msgstr "``%x``" + +#: ../../c-api/bytes.rst:93 +msgid "Equivalent to ``printf(\"%x\")``. [1]_" +msgstr "" + +#: ../../c-api/bytes.rst:96 +msgid "``%s``" +msgstr "``%s``" + +#: ../../c-api/bytes.rst:96 +msgid "const char\\*" +msgstr "" + +#: ../../c-api/bytes.rst:96 +msgid "A null-terminated C character array." +msgstr "" + +#: ../../c-api/bytes.rst:99 +msgid "``%p``" +msgstr "``%p``" + +#: ../../c-api/bytes.rst:99 +msgid "const void\\*" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/bytes.rst:117 +msgid "" +"Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " +"arguments." +msgstr "" + +#: ../../c-api/bytes.rst:123 +msgid "" +"Return the bytes representation of object *o* that implements the buffer " +"protocol." +msgstr "" + +#: ../../c-api/bytes.rst:129 +msgid "Return the length of the bytes in bytes object *o*." +msgstr "" + +#: ../../c-api/bytes.rst:134 +msgid "Similar to :c:func:`PyBytes_Size`, but without error checking." +msgstr "" + +#: ../../c-api/bytes.rst:139 +msgid "" +"Return a pointer to the contents of *o*. The pointer refers to the internal " +"buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " +"buffer is always null, regardless of whether there are any other null " +"bytes. The data must not be modified in any way, unless the object was just " +"created using ``PyBytes_FromStringAndSize(NULL, size)``. It must not be " +"deallocated. If *o* is not a bytes object at " +"all, :c:func:`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." +msgstr "" + +#: ../../c-api/bytes.rst:151 +msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking." +msgstr "" + +#: ../../c-api/bytes.rst:156 +msgid "" +"Return the null-terminated contents of the object *obj* through the output " +"variables *buffer* and *length*. Returns ``0`` on success." +msgstr "" + +#: ../../c-api/bytes.rst:160 +msgid "" +"If *length* is ``NULL``, the bytes object may not contain embedded null " +"bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " +"raised." +msgstr "" + +#: ../../c-api/bytes.rst:164 +msgid "" +"The buffer refers to an internal buffer of *obj*, which includes an " +"additional null byte at the end (not counted in *length*). The data must " +"not be modified in any way, unless the object was just created using " +"``PyBytes_FromStringAndSize(NULL, size)``. It must not be deallocated. If " +"*obj* is not a bytes object at all, :c:func:`PyBytes_AsStringAndSize` " +"returns ``-1`` and raises :exc:`TypeError`." +msgstr "" + +#: ../../c-api/bytes.rst:171 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes object." +msgstr "" + +#: ../../c-api/bytes.rst:178 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*; the caller will own the new reference. The reference " +"to the old value of *bytes* will be stolen. If the new object cannot be " +"created, the old reference to *bytes* will still be discarded and the value " +"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." +msgstr "" + +#: ../../c-api/bytes.rst:187 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*. This version releases the :term:`strong reference` to " +"*newpart* (i.e. decrements its reference count)." +msgstr "" + +#: ../../c-api/bytes.rst:194 +msgid "Similar to ``sep.join(iterable)`` in Python." +msgstr "" + +#: ../../c-api/bytes.rst:196 +msgid "" +"*sep* must be Python :class:`bytes` object. (Note " +"that :c:func:`PyUnicode_Join` accepts ``NULL`` separator and treats it as a " +"space, whereas :c:func:`PyBytes_Join` doesn't accept ``NULL`` separator.)" +msgstr "" + +#: ../../c-api/bytes.rst:201 +msgid "" +"*iterable* must be an iterable object yielding objects that implement " +"the :ref:`buffer protocol `." +msgstr "" + +#: ../../c-api/bytes.rst:204 +msgid "" +"On success, return a new :class:`bytes` object. On error, set an exception " +"and return ``NULL``." +msgstr "" + +#: ../../c-api/bytes.rst:212 +msgid "" +"Resize a bytes object. *newsize* will be the new length of the bytes object. " +"You can think of it as creating a new bytes object and destroying the old " +"one, only more efficiently. Pass the address of an existing bytes object as " +"an lvalue (it may be written into), and the new size desired. On success, " +"*\\*bytes* holds the resized bytes object and ``0`` is returned; the address " +"in *\\*bytes* may differ from its input value. If the reallocation fails, " +"the original bytes object at *\\*bytes* is deallocated, *\\*bytes* is set to " +"``NULL``, :exc:`MemoryError` is set, and ``-1`` is returned." +msgstr "" + +#: ../../c-api/bytes.rst:11 +msgid "object" +msgstr "" + +#: ../../c-api/bytes.rst:11 +msgid "bytes" +msgstr "" diff --git a/c-api/call.po b/c-api/call.po new file mode 100644 index 0000000..170b76b --- /dev/null +++ b/c-api/call.po @@ -0,0 +1,571 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/call.rst:6 +msgid "Call Protocol" +msgstr "" + +#: ../../c-api/call.rst:8 +msgid "" +"CPython supports two different calling protocols: *tp_call* and vectorcall." +msgstr "" + +#: ../../c-api/call.rst:12 +msgid "The *tp_call* Protocol" +msgstr "" + +#: ../../c-api/call.rst:14 +msgid "" +"Instances of classes that set :c:member:`~PyTypeObject.tp_call` are " +"callable. The signature of the slot is::" +msgstr "" + +#: ../../c-api/call.rst:17 +msgid "" +"PyObject *tp_call(PyObject *callable, PyObject *args, PyObject *kwargs);" +msgstr "" + +#: ../../c-api/call.rst:19 +msgid "" +"A call is made using a tuple for the positional arguments and a dict for the " +"keyword arguments, similarly to ``callable(*args, **kwargs)`` in Python " +"code. *args* must be non-NULL (use an empty tuple if there are no arguments) " +"but *kwargs* may be *NULL* if there are no keyword arguments." +msgstr "" + +#: ../../c-api/call.rst:25 +msgid "" +"This convention is not only used by " +"*tp_call*: :c:member:`~PyTypeObject.tp_new` " +"and :c:member:`~PyTypeObject.tp_init` also pass arguments this way." +msgstr "" + +#: ../../c-api/call.rst:29 +msgid "" +"To call an object, use :c:func:`PyObject_Call` or another :ref:`call API " +"`." +msgstr "" + +#: ../../c-api/call.rst:36 +msgid "The Vectorcall Protocol" +msgstr "" + +#: ../../c-api/call.rst:40 +msgid "" +"The vectorcall protocol was introduced in :pep:`590` as an additional " +"protocol for making calls more efficient." +msgstr "" + +#: ../../c-api/call.rst:43 +msgid "" +"As rule of thumb, CPython will prefer the vectorcall for internal calls if " +"the callable supports it. However, this is not a hard rule. Additionally, " +"some third-party extensions use *tp_call* directly (rather than " +"using :c:func:`PyObject_Call`). Therefore, a class supporting vectorcall " +"must also implement :c:member:`~PyTypeObject.tp_call`. Moreover, the " +"callable must behave the same regardless of which protocol is used. The " +"recommended way to achieve this is by " +"setting :c:member:`~PyTypeObject.tp_call` to :c:func:`PyVectorcall_Call`. " +"This bears repeating:" +msgstr "" + +#: ../../c-api/call.rst:57 +msgid "" +"A class supporting vectorcall **must** also " +"implement :c:member:`~PyTypeObject.tp_call` with the same semantics." +msgstr "" + +#: ../../c-api/call.rst:62 +msgid "" +"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " +"when the class's :py:meth:`~object.__call__` method is reassigned. (This " +"internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it " +"behave differently than the vectorcall function.) In earlier Python " +"versions, vectorcall should only be used with :c:macro:`immutable " +"` or static types." +msgstr "" + +#: ../../c-api/call.rst:69 +msgid "" +"A class should not implement vectorcall if that would be slower than " +"*tp_call*. For example, if the callee needs to convert the arguments to an " +"args tuple and kwargs dict anyway, then there is no point in implementing " +"vectorcall." +msgstr "" + +#: ../../c-api/call.rst:74 +msgid "" +"Classes can implement the vectorcall protocol by enabling " +"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and " +"setting :c:member:`~PyTypeObject.tp_vectorcall_offset` to the offset inside " +"the object structure where a *vectorcallfunc* appears. This is a pointer to " +"a function with the following signature:" +msgstr "" + +#: ../../c-api/call.rst:82 +msgid "*callable* is the object being called." +msgstr "" + +#: ../../c-api/call.rst:83 +msgid "" +"*args* is a C array consisting of the positional arguments followed by the" +msgstr "" + +#: ../../c-api/call.rst:84 +msgid "" +"values of the keyword arguments. This can be *NULL* if there are no " +"arguments." +msgstr "" + +#: ../../c-api/call.rst:86 +msgid "*nargsf* is the number of positional arguments plus possibly the" +msgstr "" + +#: ../../c-api/call.rst:87 +msgid "" +":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " +"positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`." +msgstr "" + +#: ../../c-api/call.rst:90 +msgid "*kwnames* is a tuple containing the names of the keyword arguments;" +msgstr "" + +#: ../../c-api/call.rst:91 +msgid "" +"in other words, the keys of the kwargs dict. These names must be strings " +"(instances of ``str`` or a subclass) and they must be unique. If there are " +"no keyword arguments, then *kwnames* can instead be *NULL*." +msgstr "" + +#: ../../c-api/call.rst:98 +msgid "" +"If this flag is set in a vectorcall *nargsf* argument, the callee is allowed " +"to temporarily change ``args[-1]``. In other words, *args* points to " +"argument 1 (not 0) in the allocated vector. The callee must restore the " +"value of ``args[-1]`` before returning." +msgstr "" + +#: ../../c-api/call.rst:103 +msgid "" +"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " +"``args[0]`` may be changed." +msgstr "" + +#: ../../c-api/call.rst:106 +msgid "" +"Whenever they can do so cheaply (without additional allocation), callers are " +"encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " +"allow callables such as bound methods to make their onward calls (which " +"include a prepended *self* argument) very efficiently." +msgstr "" + +#: ../../c-api/call.rst:113 +msgid "" +"To call an object that implements vectorcall, use a :ref:`call API ` function as with any other callable. :c:func:`PyObject_Vectorcall` " +"will usually be most efficient." +msgstr "" + +#: ../../c-api/call.rst:119 +msgid "Recursion Control" +msgstr "" + +#: ../../c-api/call.rst:121 +msgid "" +"When using *tp_call*, callees do not need to worry about :ref:`recursion " +"`: CPython uses :c:func:`Py_EnterRecursiveCall` " +"and :c:func:`Py_LeaveRecursiveCall` for calls made using *tp_call*." +msgstr "" + +#: ../../c-api/call.rst:126 +msgid "" +"For efficiency, this is not the case for calls done using vectorcall: the " +"callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if " +"needed." +msgstr "" + +#: ../../c-api/call.rst:132 +msgid "Vectorcall Support API" +msgstr "" + +#: ../../c-api/call.rst:136 +msgid "" +"Given a vectorcall *nargsf* argument, return the actual number of arguments. " +"Currently equivalent to::" +msgstr "" + +#: ../../c-api/call.rst:140 +msgid "(Py_ssize_t)(nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET)" +msgstr "" + +#: ../../c-api/call.rst:142 +msgid "" +"However, the function ``PyVectorcall_NARGS`` should be used to allow for " +"future extensions." +msgstr "" + +#: ../../c-api/call.rst:149 +msgid "" +"If *op* does not support the vectorcall protocol (either because the type " +"does not or because the specific instance does not), return *NULL*. " +"Otherwise, return the vectorcall function pointer stored in *op*. This " +"function never raises an exception." +msgstr "" + +#: ../../c-api/call.rst:154 +msgid "" +"This is mostly useful to check whether or not *op* supports vectorcall, " +"which can be done by checking ``PyVectorcall_Function(op) != NULL``." +msgstr "" + +#: ../../c-api/call.rst:161 +msgid "" +"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword " +"arguments given in a tuple and dict, respectively." +msgstr "" + +#: ../../c-api/call.rst:164 +msgid "" +"This is a specialized function, intended to be put in " +"the :c:member:`~PyTypeObject.tp_call` slot or be used in an implementation " +"of ``tp_call``. It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` " +"flag and it does not fall back to ``tp_call``." +msgstr "" + +#: ../../c-api/call.rst:175 +msgid "Object Calling API" +msgstr "" + +#: ../../c-api/call.rst:177 +msgid "" +"Various functions are available for calling a Python object. Each converts " +"its arguments to a convention supported by the called object – either " +"*tp_call* or vectorcall. In order to do as little conversion as possible, " +"pick one that best fits the format of data you have available." +msgstr "" + +#: ../../c-api/call.rst:183 +msgid "" +"The following table summarizes the available functions; please see " +"individual documentation for details." +msgstr "" + +#: ../../c-api/call.rst:187 +msgid "Function" +msgstr "" + +#: ../../c-api/call.rst:187 +msgid "callable" +msgstr "" + +#: ../../c-api/call.rst:187 +msgid "args" +msgstr "" + +#: ../../c-api/call.rst:187 +msgid "kwargs" +msgstr "" + +#: ../../c-api/call.rst:189 +msgid ":c:func:`PyObject_Call`" +msgstr "" + +#: ../../c-api/call.rst: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 "" + +#: ../../c-api/call.rst:189 +msgid "tuple" +msgstr "" + +#: ../../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-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-api/call.rst:193 ../../c-api/call.rst:207 +msgid "1 object" +msgstr "" + +#: ../../c-api/call.rst:195 +msgid ":c:func:`PyObject_CallObject`" +msgstr "" + +#: ../../c-api/call.rst:195 +msgid "tuple/``NULL``" +msgstr "tuple/``NULL``" + +#: ../../c-api/call.rst:197 +msgid ":c:func:`PyObject_CallFunction`" +msgstr "" + +#: ../../c-api/call.rst:197 ../../c-api/call.rst:199 +msgid "format" +msgstr "" + +#: ../../c-api/call.rst:199 +msgid ":c:func:`PyObject_CallMethod`" +msgstr "" + +#: ../../c-api/call.rst:199 +msgid "obj + ``char*``" +msgstr "" + +#: ../../c-api/call.rst:201 +msgid ":c:func:`PyObject_CallFunctionObjArgs`" +msgstr "" + +#: ../../c-api/call.rst:201 ../../c-api/call.rst:203 +msgid "variadic" +msgstr "" + +#: ../../c-api/call.rst:203 +msgid ":c:func:`PyObject_CallMethodObjArgs`" +msgstr "" + +#: ../../c-api/call.rst:203 ../../c-api/call.rst:205 ../../c-api/call.rst:207 +msgid "obj + name" +msgstr "" + +#: ../../c-api/call.rst:205 +msgid ":c:func:`PyObject_CallMethodNoArgs`" +msgstr "" + +#: ../../c-api/call.rst:207 +msgid ":c:func:`PyObject_CallMethodOneArg`" +msgstr "" + +#: ../../c-api/call.rst:209 +msgid ":c:func:`PyObject_Vectorcall`" +msgstr "" + +#: ../../c-api/call.rst:209 ../../c-api/call.rst:211 ../../c-api/call.rst:213 +msgid "vectorcall" +msgstr "" + +#: ../../c-api/call.rst:211 +msgid ":c:func:`PyObject_VectorcallDict`" +msgstr "" + +#: ../../c-api/call.rst:213 +msgid ":c:func:`PyObject_VectorcallMethod`" +msgstr "" + +#: ../../c-api/call.rst:213 +msgid "arg + name" +msgstr "" + +#: ../../c-api/call.rst:219 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*, and named arguments given by the dictionary *kwargs*." +msgstr "" + +#: ../../c-api/call.rst:222 +msgid "" +"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If " +"no named arguments are needed, *kwargs* can be *NULL*." +msgstr "" + +#: ../../c-api/call.rst: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:358 ../../c-api/call.rst:392 +msgid "" +"Return the result of the call on success, or raise an exception and return " +"*NULL* on failure." +msgstr "" + +#: ../../c-api/call.rst:228 +msgid "" +"This is the equivalent of the Python expression: ``callable(*args, " +"**kwargs)``." +msgstr "" + +#: ../../c-api/call.rst:234 +msgid "" +"Call a callable Python object *callable* without any arguments. It is the " +"most efficient way to call a callable Python object without any argument." +msgstr "" + +#: ../../c-api/call.rst:245 +msgid "" +"Call a callable Python object *callable* with exactly 1 positional argument " +"*arg* and no keyword arguments." +msgstr "" + +#: ../../c-api/call.rst:256 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*. If no arguments are needed, then *args* can be *NULL*." +msgstr "" + +#: ../../c-api/call.rst:262 ../../c-api/call.rst:274 +msgid "This is the equivalent of the Python expression: ``callable(*args)``." +msgstr "" + +#: ../../c-api/call.rst:267 +msgid "" +"Call a callable Python object *callable*, with a variable number of C " +"arguments. The C arguments are described using a :c:func:`Py_BuildValue` " +"style format string. The format can be *NULL*, indicating that no arguments " +"are provided." +msgstr "" + +#: ../../c-api/call.rst:276 +msgid "" +"Note that if you only pass :c:expr:`PyObject *` " +"args, :c:func:`PyObject_CallFunctionObjArgs` is a faster alternative." +msgstr "" + +#: ../../c-api/call.rst:279 +msgid "The type of *format* was changed from ``char *``." +msgstr "" + +#: ../../c-api/call.rst:285 +msgid "" +"Call the method named *name* of object *obj* with a variable number of C " +"arguments. The C arguments are described by a :c:func:`Py_BuildValue` " +"format string that should produce a tuple." +msgstr "" + +#: ../../c-api/call.rst:289 +msgid "The format can be *NULL*, indicating that no arguments are provided." +msgstr "" + +#: ../../c-api/call.rst:294 +msgid "" +"This is the equivalent of the Python expression: ``obj.name(arg1, " +"arg2, ...)``." +msgstr "" + +#: ../../c-api/call.rst:297 +msgid "" +"Note that if you only pass :c:expr:`PyObject *` " +"args, :c:func:`PyObject_CallMethodObjArgs` is a faster alternative." +msgstr "" + +#: ../../c-api/call.rst:300 +msgid "The types of *name* and *format* were changed from ``char *``." +msgstr "" + +#: ../../c-api/call.rst:306 +msgid "" +"Call a callable Python object *callable*, with a variable number " +"of :c:expr:`PyObject *` arguments. The arguments are provided as a variable " +"number of parameters followed by *NULL*." +msgstr "" + +#: ../../c-api/call.rst:313 +msgid "" +"This is the equivalent of the Python expression: ``callable(arg1, " +"arg2, ...)``." +msgstr "" + +#: ../../c-api/call.rst:319 +msgid "" +"Call a method of the Python object *obj*, where the name of the method is " +"given as a Python string object in *name*. It is called with a variable " +"number of :c:expr:`PyObject *` arguments. The arguments are provided as a " +"variable number of parameters followed by *NULL*." +msgstr "" + +#: ../../c-api/call.rst:330 +msgid "" +"Call a method of the Python object *obj* without arguments, where the name " +"of the method is given as a Python string object in *name*." +msgstr "" + +#: ../../c-api/call.rst:341 +msgid "" +"Call a method of the Python object *obj* with a single positional argument " +"*arg*, where the name of the method is given as a Python string object in " +"*name*." +msgstr "" + +#: ../../c-api/call.rst:353 +msgid "" +"Call a callable Python object *callable*. The arguments are the same as " +"for :c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this " +"directly calls the vectorcall function stored in *callable*." +msgstr "" + +#: ../../c-api/call.rst:365 +msgid "" +"Call *callable* with positional arguments passed exactly as in the " +"vectorcall_ protocol, but with keyword arguments passed as a dictionary " +"*kwdict*. The *args* array contains only the positional arguments." +msgstr "" + +#: ../../c-api/call.rst:369 +msgid "" +"Regardless of which protocol is used internally, a conversion of arguments " +"needs to be done. Therefore, this function should only be used if the caller " +"already has a dictionary ready to use for the keyword arguments, but not a " +"tuple for the positional arguments." +msgstr "" + +#: ../../c-api/call.rst:379 +msgid "" +"Call a method using the vectorcall calling convention. The name of the " +"method is given as a Python string *name*. The object whose method is called " +"is *args[0]*, and the *args* array starting at *args[1]* represents the " +"arguments of the call. There must be at least one positional argument. " +"*nargsf* is the number of positional arguments including *args[0]*, " +"plus :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` " +"may temporarily be changed. Keyword arguments can be passed just like " +"in :c:func:`PyObject_Vectorcall`." +msgstr "" + +#: ../../c-api/call.rst:388 +msgid "" +"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " +"will call the unbound method object with the full *args* vector as arguments." +msgstr "" + +#: ../../c-api/call.rst:399 +msgid "Call Support API" +msgstr "" + +#: ../../c-api/call.rst:403 +msgid "" +"Determine if the object *o* is callable. Return ``1`` if the object is " +"callable and ``0`` otherwise. This function always succeeds." +msgstr "" diff --git a/c-api/capsule.po b/c-api/capsule.po new file mode 100644 index 0000000..97c8b4e --- /dev/null +++ b/c-api/capsule.po @@ -0,0 +1,230 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/capsule.rst:6 +msgid "Capsules" +msgstr "" + +#: ../../c-api/capsule.rst:10 +msgid "" +"Refer to :ref:`using-capsules` for more information on using these objects." +msgstr "" + +#: ../../c-api/capsule.rst:17 +msgid "" +"This subtype of :c:type:`PyObject` represents an opaque value, useful for C " +"extension modules who need to pass an opaque value (as a :c:expr:`void*` " +"pointer) through Python code to other C code. It is often used to make a C " +"function pointer defined in one module available to other modules, so the " +"regular import mechanism can be used to access C APIs defined in dynamically " +"loaded modules." +msgstr "" + +#: ../../c-api/capsule.rst:27 +msgid "The type of a destructor callback for a capsule. Defined as::" +msgstr "" + +#: ../../c-api/capsule.rst:29 +msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" +msgstr "" + +#: ../../c-api/capsule.rst:31 +msgid "" +"See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " +"callbacks." +msgstr "" + +#: ../../c-api/capsule.rst:37 +msgid "" +"Return true if its argument is a :c:type:`PyCapsule`. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/capsule.rst:43 +msgid "" +"Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " +"argument may not be ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:46 +msgid "On failure, set an exception and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:48 +msgid "" +"The *name* string may either be ``NULL`` or a pointer to a valid C string. " +"If non-``NULL``, this string must outlive the capsule. (Though it is " +"permitted to free it inside the *destructor*.)" +msgstr "" + +#: ../../c-api/capsule.rst:52 +msgid "" +"If the *destructor* argument is not ``NULL``, it will be called with the " +"capsule as its argument when it is destroyed." +msgstr "" + +#: ../../c-api/capsule.rst:55 +msgid "" +"If this capsule will be stored as an attribute of a module, the *name* " +"should be specified as ``modulename.attributename``. This will enable other " +"modules to import the capsule using :c:func:`PyCapsule_Import`." +msgstr "" + +#: ../../c-api/capsule.rst:62 +msgid "" +"Retrieve the *pointer* stored in the capsule. On failure, set an exception " +"and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:65 +msgid "" +"The *name* parameter must compare exactly to the name stored in the capsule. " +"If the name stored in the capsule is ``NULL``, the *name* passed in must " +"also be ``NULL``. Python uses the C function :c:func:`!strcmp` to compare " +"capsule names." +msgstr "" + +#: ../../c-api/capsule.rst:73 +msgid "" +"Return the current destructor stored in the capsule. On failure, set an " +"exception and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:76 +msgid "" +"It is legal for a capsule to have a ``NULL`` destructor. This makes a " +"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/capsule.rst:83 +msgid "" +"Return the current context stored in the capsule. On failure, set an " +"exception and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:86 +msgid "" +"It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/capsule.rst:93 +msgid "" +"Return the current name stored in the capsule. On failure, set an exception " +"and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:96 +msgid "" +"It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/capsule.rst:103 +msgid "" +"Import a pointer to a C object from a capsule attribute in a module. The " +"*name* parameter should specify the full name to the attribute, as in " +"``module.attribute``. The *name* stored in the capsule must match this " +"string exactly." +msgstr "" + +#: ../../c-api/capsule.rst:108 +msgid "" +"This function splits *name* on the ``.`` character, and imports the first " +"element. It then processes further elements using attribute lookups." +msgstr "" + +#: ../../c-api/capsule.rst:111 +msgid "" +"Return the capsule's internal *pointer* on success. On failure, set an " +"exception and return ``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:116 +msgid "" +"If *name* points to an attribute of some submodule or subpackage, this " +"submodule or subpackage must be previously imported using other means (for " +"example, by using :c:func:`PyImport_ImportModule`) for the attribute lookups " +"to succeed." +msgstr "" + +#: ../../c-api/capsule.rst:121 +msgid "*no_block* has no effect anymore." +msgstr "" + +#: ../../c-api/capsule.rst:127 +msgid "" +"Determines whether or not *capsule* is a valid capsule. A valid capsule is " +"non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " +"pointer stored in it, and its internal name matches the *name* parameter. " +"(See :c:func:`PyCapsule_GetPointer` for information on how capsule names are " +"compared.)" +msgstr "" + +#: ../../c-api/capsule.rst:133 +msgid "" +"In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " +"to any of the accessors (any function starting with ``PyCapsule_Get``) are " +"guaranteed to succeed." +msgstr "" + +#: ../../c-api/capsule.rst:137 +msgid "" +"Return a nonzero value if the object is valid and matches the name passed " +"in. Return ``0`` otherwise. This function will not fail." +msgstr "" + +#: ../../c-api/capsule.rst:143 +msgid "Set the context pointer inside *capsule* to *context*." +msgstr "" + +#: ../../c-api/capsule.rst:145 ../../c-api/capsule.rst:152 +#: ../../c-api/capsule.rst:161 ../../c-api/capsule.rst:169 +msgid "" +"Return ``0`` on success. Return nonzero and set an exception on failure." +msgstr "" + +#: ../../c-api/capsule.rst:150 +msgid "Set the destructor inside *capsule* to *destructor*." +msgstr "" + +#: ../../c-api/capsule.rst:157 +msgid "" +"Set the name inside *capsule* to *name*. If non-``NULL``, the name must " +"outlive the capsule. If the previous *name* stored in the capsule was not " +"``NULL``, no attempt is made to free it." +msgstr "" + +#: ../../c-api/capsule.rst:166 +msgid "" +"Set the void pointer inside *capsule* to *pointer*. The pointer may not be " +"``NULL``." +msgstr "" + +#: ../../c-api/capsule.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/capsule.rst:8 +msgid "Capsule" +msgstr "" diff --git a/c-api/cell.po b/c-api/cell.po new file mode 100644 index 0000000..21b24e2 --- /dev/null +++ b/c-api/cell.po @@ -0,0 +1,87 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/cell.rst:6 +msgid "Cell Objects" +msgstr "" + +#: ../../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 contains 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 "" + +#: ../../c-api/cell.rst:20 +msgid "The C structure used for cell objects." +msgstr "" + +#: ../../c-api/cell.rst:25 +msgid "The type object corresponding to cell objects." +msgstr "" + +#: ../../c-api/cell.rst:30 +msgid "" +"Return true if *ob* is a cell object; *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" + +#: ../../c-api/cell.rst:36 +msgid "" +"Create and return a new cell object containing the value *ob*. The parameter " +"may be ``NULL``." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/cell.rst:58 +msgid "" +"On success, return ``0``. If *cell* is not a cell object, set an exception " +"and return ``-1``." +msgstr "" + +#: ../../c-api/cell.rst:64 +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 "" diff --git a/c-api/code.po b/c-api/code.po new file mode 100644 index 0000000..448afc0 --- /dev/null +++ b/c-api/code.po @@ -0,0 +1,481 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/code.rst:8 +msgid "Code Objects" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/code.rst:24 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :ref:`code object `." +msgstr "" + +#: ../../c-api/code.rst:30 +msgid "" +"Return true if *co* is a :ref:`code object `. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/code.rst:35 +msgid "" +"Return the number of :term:`free (closure) variables ` in " +"a code object." +msgstr "" + +#: ../../c-api/code.rst:40 +msgid "" +"Return the position of the first :term:`free (closure) variable ` in a code object." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/code.rst:61 +msgid "Added ``qualname`` and ``exceptiontable`` parameters." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/code.rst:74 +msgid "" +"Similar to :c:func:`PyUnstable_Code_New`, but with an extra " +"\"posonlyargcount\" for positional-only arguments. The same caveats that " +"apply to ``PyUnstable_Code_New`` also apply to this function." +msgstr "" + +#: ../../c-api/code.rst:79 +msgid "as ``PyCode_NewWithPosOnlyArgs``" +msgstr "" + +#: ../../c-api/code.rst:81 +msgid "Added ``qualname`` and ``exceptiontable`` parameters." +msgstr "" + +#: ../../c-api/code.rst:86 +msgid "" +"Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is " +"deprecated, but will remain available until the signature changes again." +msgstr "" + +#: ../../c-api/code.rst:92 +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 "" + +#: ../../c-api/code.rst:98 +msgid "" +"Return the line number of the instruction that occurs on or before " +"``byte_offset`` and ends after it. If you just need the line number of a " +"frame, use :c:func:`PyFrame_GetLineNumber` instead." +msgstr "" + +#: ../../c-api/code.rst:101 +msgid "" +"For efficiently iterating over the line numbers in a code object, " +"use :pep:`the API described in PEP 626 <0626#out-of-process-debuggers-and-" +"profilers>`." +msgstr "" + +#: ../../c-api/code.rst:106 +msgid "" +"Sets the passed ``int`` pointers to the source code line and column numbers " +"for the instruction at ``byte_offset``. Sets the value to ``0`` when " +"information is not available for any particular element." +msgstr "" + +#: ../../c-api/code.rst:110 +msgid "Returns ``1`` if the function succeeds and 0 otherwise." +msgstr "" + +#: ../../c-api/code.rst:116 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong " +"reference to a :c:type:`PyBytesObject` representing the bytecode in a code " +"object. On error, ``NULL`` is returned and an exception is raised." +msgstr "" + +#: ../../c-api/code.rst:121 +msgid "" +"This ``PyBytesObject`` may be created on-demand by the interpreter and does " +"not necessarily represent the bytecode actually executed by CPython. The " +"primary use case for this function is debuggers and profilers." +msgstr "" + +#: ../../c-api/code.rst:129 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of the local " +"variables. On error, ``NULL`` is returned and an exception is raised." +msgstr "" + +#: ../../c-api/code.rst:138 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of the local " +"variables that are referenced by nested functions. On error, ``NULL`` is " +"returned and an exception is raised." +msgstr "" + +#: ../../c-api/code.rst:147 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of " +"the :term:`free (closure) variables `. On error, ``NULL`` " +"is returned and an exception is raised." +msgstr "" + +#: ../../c-api/code.rst:156 +msgid "" +"Register *callback* as a code object watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../../c-api/code.rst:165 +msgid "" +"Clear watcher identified by *watcher_id* previously returned " +"from :c:func:`PyCode_AddWatcher` for the current interpreter. Return ``0`` " +"on success, or ``-1`` and set an exception on error (e.g. if the given " +"*watcher_id* was never registered.)" +msgstr "" + +#: ../../c-api/code.rst:174 +msgid "" +"Enumeration of possible code object watcher events: - " +"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" +msgstr "" + +#: ../../c-api/code.rst:182 +msgid "Type of a code object watcher callback function." +msgstr "" + +#: ../../c-api/code.rst:184 +msgid "" +"If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " +"*co* has been fully initialized. Otherwise, the callback is invoked before " +"the destruction of *co* takes place, so the prior state of *co* can be " +"inspected." +msgstr "" + +#: ../../c-api/code.rst:189 +msgid "" +"If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback " +"to the about-to-be-destroyed code object will resurrect it and prevent it " +"from being freed at this time. When the resurrected object is destroyed " +"later, any watcher callbacks active at that time will be called again." +msgstr "" + +#: ../../c-api/code.rst:194 +msgid "" +"Users of this API should not rely on internal runtime implementation " +"details. Such details may include, but are not limited to, the exact order " +"and timing of creation and destruction of code objects. While changes in " +"these details may result in differences observable by watchers (including " +"whether a callback is invoked or not), it does not change the semantics of " +"the Python code being executed." +msgstr "" + +#: ../../c-api/code.rst:201 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../../c-api/code.rst:205 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../../c-api/code.rst:217 +msgid "Code Object Flags" +msgstr "" + +#: ../../c-api/code.rst:219 +msgid "" +"Code objects contain a bit-field of flags, which can be retrieved as " +"the :attr:`~codeobject.co_flags` Python attribute (for example " +"using :c:func:`PyObject_GetAttrString`), and set using a *flags* argument " +"to :c:func:`PyUnstable_Code_New` and similar functions." +msgstr "" + +#: ../../c-api/code.rst:224 +msgid "" +"Flags whose names start with ``CO_FUTURE_`` correspond to features normally " +"selectable by :ref:`future statements `. These flags can be used " +"in :c:member:`PyCompilerFlags.cf_flags`. Note that many ``CO_FUTURE_`` flags " +"are mandatory in current versions of Python, and setting them has no effect." +msgstr "" + +#: ../../c-api/code.rst:230 +msgid "" +"The following flags are available. For their meaning, see the linked " +"documentation of their Python equivalents." +msgstr "" + +#: ../../c-api/code.rst:238 +msgid "Flag" +msgstr "" + +#: ../../c-api/code.rst:239 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../c-api/code.rst:241 +msgid ":py:data:`inspect.CO_OPTIMIZED`" +msgstr "" + +#: ../../c-api/code.rst:243 +msgid ":py:data:`inspect.CO_NEWLOCALS`" +msgstr "" + +#: ../../c-api/code.rst:245 +msgid ":py:data:`inspect.CO_VARARGS`" +msgstr "" + +#: ../../c-api/code.rst:247 +msgid ":py:data:`inspect.CO_VARKEYWORDS`" +msgstr "" + +#: ../../c-api/code.rst:249 +msgid ":py:data:`inspect.CO_NESTED`" +msgstr "" + +#: ../../c-api/code.rst:251 +msgid ":py:data:`inspect.CO_GENERATOR`" +msgstr "" + +#: ../../c-api/code.rst:253 +msgid ":py:data:`inspect.CO_COROUTINE`" +msgstr "" + +#: ../../c-api/code.rst:255 +msgid ":py:data:`inspect.CO_ITERABLE_COROUTINE`" +msgstr "" + +#: ../../c-api/code.rst:257 +msgid ":py:data:`inspect.CO_ASYNC_GENERATOR`" +msgstr "" + +#: ../../c-api/code.rst:259 +msgid ":py:data:`inspect.CO_HAS_DOCSTRING`" +msgstr "" + +#: ../../c-api/code.rst:261 +msgid ":py:data:`inspect.CO_METHOD`" +msgstr "" + +#: ../../c-api/code.rst:264 +msgid "no effect (:py:data:`__future__.division`)" +msgstr "" + +#: ../../c-api/code.rst:266 +msgid "no effect (:py:data:`__future__.absolute_import`)" +msgstr "" + +#: ../../c-api/code.rst:268 +msgid "no effect (:py:data:`__future__.with_statement`)" +msgstr "" + +#: ../../c-api/code.rst:270 +msgid "no effect (:py:data:`__future__.print_function`)" +msgstr "" + +#: ../../c-api/code.rst:272 +msgid "no effect (:py:data:`__future__.unicode_literals`)" +msgstr "" + +#: ../../c-api/code.rst:274 +msgid "no effect (:py:data:`__future__.generator_stop`)" +msgstr "" + +#: ../../c-api/code.rst:276 +msgid ":py:data:`__future__.annotations`" +msgstr "" + +#: ../../c-api/code.rst:280 +msgid "Extra information" +msgstr "" + +#: ../../c-api/code.rst:282 +msgid "" +"To support low-level extensions to frame evaluation, such as external just-" +"in-time compilers, it is possible to attach arbitrary extra data to code " +"objects." +msgstr "" + +#: ../../c-api/code.rst:286 +msgid "" +"These functions are part of the unstable C API tier: this functionality is a " +"CPython implementation detail, and the API may change without deprecation " +"warnings." +msgstr "" + +#: ../../c-api/code.rst:292 +msgid "Return a new an opaque index value used to adding data to code objects." +msgstr "" + +#: ../../c-api/code.rst:294 +msgid "" +"You generally call this function once (per interpreter) and use the result " +"with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on " +"individual code objects." +msgstr "" + +#: ../../c-api/code.rst:298 +msgid "" +"If *free* is not ``NULL``: when a code object is deallocated, *free* will be " +"called on non-``NULL`` data stored under the new index. " +"Use :c:func:`Py_DecRef` when storing :c:type:`PyObject`." +msgstr "" + +#: ../../c-api/code.rst:304 +msgid "as ``_PyEval_RequestCodeExtraIndex``" +msgstr "" + +#: ../../c-api/code.rst:308 +msgid "" +"Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name " +"is deprecated, but will be available until the API changes." +msgstr "" + +#: ../../c-api/code.rst:314 +msgid "" +"Set *extra* to the extra data stored under the given index. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" + +#: ../../c-api/code.rst:317 +msgid "" +"If no data was set under the index, set *extra* to ``NULL`` and return 0 " +"without setting an exception." +msgstr "" + +#: ../../c-api/code.rst:322 +msgid "as ``_PyCode_GetExtra``" +msgstr "" + +#: ../../c-api/code.rst:326 +msgid "" +"Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" + +#: ../../c-api/code.rst:332 +msgid "" +"Set the extra data stored under the given index to *extra*. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" + +#: ../../c-api/code.rst:337 +msgid "as ``_PyCode_SetExtra``" +msgstr "" + +#: ../../c-api/code.rst:341 +msgid "" +"Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" + +#: ../../c-api/code.rst:3 +msgid "object" +msgstr "" + +#: ../../c-api/code.rst:3 +msgid "code" +msgstr "" + +#: ../../c-api/code.rst:3 +msgid "code object" +msgstr "" + +#: ../../c-api/code.rst:64 +msgid "PyCode_New (C function)" +msgstr "" + +#: ../../c-api/code.rst:77 +msgid "PyCode_NewWithPosOnlyArgs (C function)" +msgstr "" + +#: ../../c-api/code.rst:302 +msgid "_PyEval_RequestCodeExtraIndex (C function)" +msgstr "" + +#: ../../c-api/code.rst:320 +msgid "_PyCode_GetExtra (C function)" +msgstr "" + +#: ../../c-api/code.rst:335 +msgid "_PyCode_SetExtra (C function)" +msgstr "" diff --git a/c-api/codec.po b/c-api/codec.po new file mode 100644 index 0000000..1373e81 --- /dev/null +++ b/c-api/codec.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/codec.rst:4 +msgid "Codec registry and support functions" +msgstr "" + +#: ../../c-api/codec.rst:8 +msgid "Register a new codec search function." +msgstr "" + +#: ../../c-api/codec.rst:10 +msgid "" +"As side effect, this tries to load the :mod:`!encodings` package, if not yet " +"done, to make sure that it is always first in the list of search functions." +msgstr "" + +#: ../../c-api/codec.rst:15 +msgid "" +"Unregister a codec search function and clear the registry's cache. If the " +"search function is not registered, do nothing. Return 0 on success. Raise an " +"exception and return -1 on error." +msgstr "" + +#: ../../c-api/codec.rst:23 +msgid "" +"Return ``1`` or ``0`` depending on whether there is a registered codec for " +"the given *encoding*. This function always succeeds." +msgstr "" + +#: ../../c-api/codec.rst:28 +msgid "Generic codec based encoding API." +msgstr "" + +#: ../../c-api/codec.rst:30 +msgid "" +"*object* is passed through the encoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." +msgstr "" + +#: ../../c-api/codec.rst:37 +msgid "Generic codec based decoding API." +msgstr "" + +#: ../../c-api/codec.rst:39 +msgid "" +"*object* is passed through the decoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." +msgstr "" + +#: ../../c-api/codec.rst:46 +msgid "Codec lookup API" +msgstr "" + +#: ../../c-api/codec.rst:48 +msgid "" +"In the following functions, the *encoding* string is looked up converted to " +"all lower-case characters, which makes encodings looked up through this " +"mechanism effectively case-insensitive. If no codec is found, " +"a :exc:`KeyError` is set and ``NULL`` returned." +msgstr "" + +#: ../../c-api/codec.rst:55 +msgid "Get an encoder function for the given *encoding*." +msgstr "" + +#: ../../c-api/codec.rst:59 +msgid "Get a decoder function for the given *encoding*." +msgstr "" + +#: ../../c-api/codec.rst:63 +msgid "" +"Get an :class:`~codecs.IncrementalEncoder` object for the given *encoding*." +msgstr "" + +#: ../../c-api/codec.rst:67 +msgid "" +"Get an :class:`~codecs.IncrementalDecoder` object for the given *encoding*." +msgstr "" + +#: ../../c-api/codec.rst:71 +msgid "" +"Get a :class:`~codecs.StreamReader` factory function for the given " +"*encoding*." +msgstr "" + +#: ../../c-api/codec.rst:75 +msgid "" +"Get a :class:`~codecs.StreamWriter` factory function for the given " +"*encoding*." +msgstr "" + +#: ../../c-api/codec.rst:79 +msgid "Registry API for Unicode encoding error handlers" +msgstr "" + +#: ../../c-api/codec.rst:83 +msgid "" +"Register the error handling callback function *error* under the given " +"*name*. This callback function will be called by a codec when it encounters " +"unencodable characters/undecodable bytes and *name* is specified as the " +"error parameter in the call to the encode/decode function." +msgstr "" + +#: ../../c-api/codec.rst:88 +msgid "" +"The callback gets a single argument, an instance " +"of :exc:`UnicodeEncodeError`, :exc:`UnicodeDecodeError` " +"or :exc:`UnicodeTranslateError` that holds information about the problematic " +"sequence of characters or bytes and their offset in the original string " +"(see :ref:`unicodeexceptions` for functions to extract this information). " +"The callback must either raise the given exception, or return a two-item " +"tuple containing the replacement for the problematic sequence, and an " +"integer giving the offset in the original string at which encoding/decoding " +"should be resumed." +msgstr "" + +#: ../../c-api/codec.rst:98 +msgid "Return ``0`` on success, ``-1`` on error." +msgstr "" + +#: ../../c-api/codec.rst:102 +msgid "" +"Lookup the error handling callback function registered under *name*. As a " +"special case ``NULL`` can be passed, in which case the error handling " +"callback for \"strict\" will be returned." +msgstr "" + +#: ../../c-api/codec.rst:108 +msgid "Raise *exc* as an exception." +msgstr "" + +#: ../../c-api/codec.rst:112 +msgid "Ignore the unicode error, skipping the faulty input." +msgstr "" + +#: ../../c-api/codec.rst:116 +msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``." +msgstr "" + +#: ../../c-api/codec.rst:120 +msgid "Replace the unicode encode error with XML character references." +msgstr "" + +#: ../../c-api/codec.rst:124 +msgid "" +"Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` " +"and ``\\U``)." +msgstr "" + +#: ../../c-api/codec.rst:129 +msgid "Replace the unicode encode error with ``\\N{...}`` escapes." +msgstr "" diff --git a/c-api/complex.po b/c-api/complex.po new file mode 100644 index 0000000..05e4606 --- /dev/null +++ b/c-api/complex.po @@ -0,0 +1,221 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/complex.rst:6 +msgid "Complex Number Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:17 +msgid "Complex Numbers as C Structures" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:33 +msgid "The structure is defined as::" +msgstr "" + +#: ../../c-api/complex.rst:35 +msgid "" +"typedef struct {\n" +" double real;\n" +" double imag;\n" +"} Py_complex;" +msgstr "" + +#: ../../c-api/complex.rst:43 +msgid "" +"Return the sum of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" + +#: ../../c-api/complex.rst:49 +msgid "" +"Return the difference between two complex numbers, using the " +"C :c:type:`Py_complex` representation." +msgstr "" + +#: ../../c-api/complex.rst:55 +msgid "" +"Return the negation of the complex number *num*, using the " +"C :c:type:`Py_complex` representation." +msgstr "" + +#: ../../c-api/complex.rst:61 +msgid "" +"Return the product of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" + +#: ../../c-api/complex.rst:67 +msgid "" +"Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" + +#: ../../c-api/complex.rst:70 +msgid "" +"If *divisor* is null, this method returns zero and sets :c:data:`errno` " +"to :c:macro:`!EDOM`." +msgstr "" + +#: ../../c-api/complex.rst:76 +msgid "" +"Return the exponentiation of *num* by *exp*, using the " +"C :c:type:`Py_complex` representation." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:82 +msgid "Set :c:data:`errno` to :c:macro:`!ERANGE` on overflows." +msgstr "" + +#: ../../c-api/complex.rst:86 +msgid "Complex Numbers as Python Objects" +msgstr "" + +#: ../../c-api/complex.rst:91 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python complex number object." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:126 +msgid "Return the real part of *op* as a C :c:expr:`double`." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:137 ../../c-api/complex.rst:153 +msgid "Use :meth:`~object.__complex__` if available." +msgstr "" + +#: ../../c-api/complex.rst:142 +msgid "Return the imaginary part of *op* as a C :c:expr:`double`." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:158 +msgid "Return the :c:type:`Py_complex` value of the complex number *op*." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/complex.rst:170 +msgid "Use :meth:`~object.__index__` if available." +msgstr "" + +#: ../../c-api/complex.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/complex.rst:8 +msgid "complex number" +msgstr "" diff --git a/c-api/concrete.po b/c-api/concrete.po new file mode 100644 index 0000000..3c48d02 --- /dev/null +++ b/c-api/concrete.po @@ -0,0 +1,95 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/concrete.rst:8 +msgid "Concrete Objects Layer" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/concrete.rst:28 +msgid "Fundamental Objects" +msgstr "" + +#: ../../c-api/concrete.rst:30 +msgid "" +"This section describes Python type objects and the singleton object ``None``." +msgstr "" + +#: ../../c-api/concrete.rst:41 +msgid "Numeric Objects" +msgstr "" + +#: ../../c-api/concrete.rst:56 +msgid "Sequence Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/concrete.rst:78 +msgid "Container Objects" +msgstr "" + +#: ../../c-api/concrete.rst:91 +msgid "Function Objects" +msgstr "" + +#: ../../c-api/concrete.rst:102 +msgid "Other Objects" +msgstr "" + +#: ../../c-api/concrete.rst:43 ../../c-api/concrete.rst:58 +#: ../../c-api/concrete.rst:80 +msgid "object" +msgstr "" + +#: ../../c-api/concrete.rst:43 +msgid "numeric" +msgstr "" + +#: ../../c-api/concrete.rst:58 +msgid "sequence" +msgstr "" + +#: ../../c-api/concrete.rst:80 +msgid "mapping" +msgstr "" diff --git a/c-api/contextvars.po b/c-api/contextvars.po new file mode 100644 index 0000000..9b59799 --- /dev/null +++ b/c-api/contextvars.po @@ -0,0 +1,240 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/contextvars.rst:6 +msgid "Context Variables Objects" +msgstr "" + +#: ../../c-api/contextvars.rst:15 +msgid "" +"In Python 3.7.1 the signatures of all context variables C APIs were " +"**changed** to use :c:type:`PyObject` pointers instead " +"of :c:type:`PyContext`, :c:type:`PyContextVar`, " +"and :c:type:`PyContextToken`, e.g.::" +msgstr "" + +#: ../../c-api/contextvars.rst:20 +msgid "" +"// in 3.7.0:\n" +"PyContext *PyContext_New(void);\n" +"\n" +"// in 3.7.1+:\n" +"PyObject *PyContext_New(void);" +msgstr "" + +#: ../../c-api/contextvars.rst:26 +msgid "See :issue:`34762` for more details." +msgstr "" + +#: ../../c-api/contextvars.rst:29 +msgid "" +"This section details the public C API for the :mod:`contextvars` module." +msgstr "" + +#: ../../c-api/contextvars.rst:33 +msgid "" +"The C structure used to represent a :class:`contextvars.Context` object." +msgstr "" + +#: ../../c-api/contextvars.rst:38 +msgid "" +"The C structure used to represent a :class:`contextvars.ContextVar` object." +msgstr "" + +#: ../../c-api/contextvars.rst:43 +msgid "The C structure used to represent a :class:`contextvars.Token` object." +msgstr "" + +#: ../../c-api/contextvars.rst:47 +msgid "The type object representing the *context* type." +msgstr "" + +#: ../../c-api/contextvars.rst:51 +msgid "The type object representing the *context variable* type." +msgstr "" + +#: ../../c-api/contextvars.rst:55 +msgid "The type object representing the *context variable token* type." +msgstr "" + +#: ../../c-api/contextvars.rst:58 +msgid "Type-check macros:" +msgstr "" + +#: ../../c-api/contextvars.rst:62 +msgid "" +"Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/contextvars.rst:67 +msgid "" +"Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/contextvars.rst:72 +msgid "" +"Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/contextvars.rst:76 +msgid "Context object management functions:" +msgstr "" + +#: ../../c-api/contextvars.rst:80 +msgid "" +"Create a new empty context object. Returns ``NULL`` if an error has " +"occurred." +msgstr "" + +#: ../../c-api/contextvars.rst:85 +msgid "" +"Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " +"if an error has occurred." +msgstr "" + +#: ../../c-api/contextvars.rst:90 +msgid "" +"Create a shallow copy of the current thread context. Returns ``NULL`` if an " +"error has occurred." +msgstr "" + +#: ../../c-api/contextvars.rst:95 +msgid "" +"Set *ctx* as the current context for the current thread. Returns ``0`` on " +"success, and ``-1`` on error." +msgstr "" + +#: ../../c-api/contextvars.rst:100 +msgid "" +"Deactivate the *ctx* context and restore the previous context as the current " +"context for the current thread. Returns ``0`` on success, and ``-1`` on " +"error." +msgstr "" + +#: ../../c-api/contextvars.rst:106 +msgid "" +"Register *callback* as a context object watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyContext_ClearWatcher`. In " +"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../../c-api/contextvars.rst:115 +msgid "" +"Clear watcher identified by *watcher_id* previously returned " +"from :c:func:`PyContext_AddWatcher` for the current interpreter. Return " +"``0`` on success, or ``-1`` and set an exception on error (e.g. if the given " +"*watcher_id* was never registered.)" +msgstr "" + +#: ../../c-api/contextvars.rst:124 +msgid "Enumeration of possible context object watcher events:" +msgstr "" + +#: ../../c-api/contextvars.rst:126 +msgid "" +"``Py_CONTEXT_SWITCHED``: The :term:`current context` has switched to a " +"different context. The object passed to the watch callback is the now-" +"current :class:`contextvars.Context` object, or None if no context is " +"current." +msgstr "" + +#: ../../c-api/contextvars.rst:135 +msgid "" +"Context object watcher callback function. The object passed to the callback " +"is event-specific; see :c:type:`PyContextEvent` for details." +msgstr "" + +#: ../../c-api/contextvars.rst:138 +msgid "" +"If the callback returns with an exception set, it must return ``-1``; this " +"exception will be printed as an unraisable exception " +"using :c:func:`PyErr_FormatUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../../c-api/contextvars.rst:142 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../../c-api/contextvars.rst:151 +msgid "Context variable functions:" +msgstr "" + +#: ../../c-api/contextvars.rst:155 +msgid "" +"Create a new ``ContextVar`` object. The *name* parameter is used for " +"introspection and debug purposes. The *def* parameter specifies a default " +"value for the context variable, or ``NULL`` for no default. If an error has " +"occurred, this function returns ``NULL``." +msgstr "" + +#: ../../c-api/contextvars.rst:162 +msgid "" +"Get the value of a context variable. Returns ``-1`` if an error has " +"occurred during lookup, and ``0`` if no error occurred, whether or not a " +"value was found." +msgstr "" + +#: ../../c-api/contextvars.rst:166 +msgid "" +"If the context variable was found, *value* will be a pointer to it. If the " +"context variable was *not* found, *value* will point to:" +msgstr "" + +#: ../../c-api/contextvars.rst:169 +msgid "*default_value*, if not ``NULL``;" +msgstr "" + +#: ../../c-api/contextvars.rst:170 +msgid "the default value of *var*, if not ``NULL``;" +msgstr "" + +#: ../../c-api/contextvars.rst:171 +msgid "``NULL``" +msgstr "``NULL``" + +#: ../../c-api/contextvars.rst:173 +msgid "Except for ``NULL``, the function returns a new reference." +msgstr "" + +#: ../../c-api/contextvars.rst:177 +msgid "" +"Set the value of *var* to *value* in the current context. Returns a new " +"token object for this change, or ``NULL`` if an error has occurred." +msgstr "" + +#: ../../c-api/contextvars.rst:182 +msgid "" +"Reset the state of the *var* context variable to that it was in " +"before :c:func:`PyContextVar_Set` that returned the *token* was called. This " +"function returns ``0`` on success and ``-1`` on error." +msgstr "" diff --git a/c-api/conversion.po b/c-api/conversion.po new file mode 100644 index 0000000..b73f2c1 --- /dev/null +++ b/c-api/conversion.po @@ -0,0 +1,242 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/conversion.rst:6 +msgid "String conversion and formatting" +msgstr "" + +#: ../../c-api/conversion.rst:8 +msgid "Functions for number conversion and formatted string output." +msgstr "" + +#: ../../c-api/conversion.rst:13 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the extra arguments. See the Unix man " +"page :manpage:`snprintf(3)`." +msgstr "" + +#: ../../c-api/conversion.rst:19 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the variable argument list *va*. Unix man " +"page :manpage:`vsnprintf(3)`." +msgstr "" + +#: ../../c-api/conversion.rst:23 +msgid "" +":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " +"library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " +"is to guarantee consistent behavior in corner cases, which the Standard C " +"functions do not." +msgstr "" + +#: ../../c-api/conversion.rst:28 +msgid "" +"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " +"They never write more than *size* bytes (including the trailing ``'\\0'``) " +"into str. Both functions require that ``str != NULL``, ``size > 0``, " +"``format != NULL`` and ``size < INT_MAX``. Note that this means there is no " +"equivalent to the C99 ``n = snprintf(NULL, 0, ...)`` which would determine " +"the necessary buffer size." +msgstr "" + +#: ../../c-api/conversion.rst:34 +msgid "" +"The return value (*rv*) for these functions should be interpreted as follows:" +msgstr "" + +#: ../../c-api/conversion.rst:36 +msgid "" +"When ``0 <= rv < size``, the output conversion was successful and *rv* " +"characters were written to *str* (excluding the trailing ``'\\0'`` byte at " +"``str[rv]``)." +msgstr "" + +#: ../../c-api/conversion.rst:40 +msgid "" +"When ``rv >= size``, the output conversion was truncated and a buffer with " +"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is " +"``'\\0'`` in this case." +msgstr "" + +#: ../../c-api/conversion.rst:44 +msgid "" +"When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in " +"this case too, but the rest of *str* is undefined. The exact cause of the " +"error depends on the underlying platform." +msgstr "" + +#: ../../c-api/conversion.rst:49 +msgid "" +"The following functions provide locale-independent string to number " +"conversions." +msgstr "" + +#: ../../c-api/conversion.rst:53 +msgid "" +"Convert the initial part of the string in ``str`` to an :c:expr:`unsigned " +"long` value according to the given ``base``, which must be between ``2`` and " +"``36`` inclusive, or be the special value ``0``." +msgstr "" + +#: ../../c-api/conversion.rst:57 +msgid "" +"Leading white space and case of characters are ignored. If ``base`` is zero " +"it looks for a leading ``0b``, ``0o`` or ``0x`` to tell which base. If " +"these are absent it defaults to ``10``. Base must be 0 or between 2 and 36 " +"(inclusive). If ``ptr`` is non-``NULL`` it will contain a pointer to the " +"end of the scan." +msgstr "" + +#: ../../c-api/conversion.rst:63 +msgid "" +"If the converted value falls out of range of corresponding return type, " +"range error occurs (:c:data:`errno` is set to :c:macro:`!ERANGE`) " +"and :c:macro:`!ULONG_MAX` is returned. If no conversion can be performed, " +"``0`` is returned." +msgstr "" + +#: ../../c-api/conversion.rst:68 +msgid "See also the Unix man page :manpage:`strtoul(3)`." +msgstr "" + +#: ../../c-api/conversion.rst:75 +msgid "" +"Convert the initial part of the string in ``str`` to an :c:expr:`long` value " +"according to the given ``base``, which must be between ``2`` and ``36`` " +"inclusive, or be the special value ``0``." +msgstr "" + +#: ../../c-api/conversion.rst:79 +msgid "" +"Same as :c:func:`PyOS_strtoul`, but return a :c:expr:`long` value instead " +"and :c:macro:`LONG_MAX` on overflows." +msgstr "" + +#: ../../c-api/conversion.rst:82 +msgid "See also the Unix man page :manpage:`strtol(3)`." +msgstr "" + +#: ../../c-api/conversion.rst:89 +msgid "" +"Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on " +"failure. The set of accepted strings corresponds to the set of strings " +"accepted by Python's :func:`float` constructor, except that ``s`` must not " +"have leading or trailing whitespace. The conversion is independent of the " +"current locale." +msgstr "" + +#: ../../c-api/conversion.rst:95 +msgid "" +"If ``endptr`` is ``NULL``, convert the whole string. " +"Raise :exc:`ValueError` and return ``-1.0`` if the string is not a valid " +"representation of a floating-point number." +msgstr "" + +#: ../../c-api/conversion.rst:99 +msgid "" +"If endptr is not ``NULL``, convert as much of the string as possible and set " +"``*endptr`` to point to the first unconverted character. If no initial " +"segment of the string is the valid representation of a floating-point " +"number, set ``*endptr`` to point to the beginning of the string, raise " +"ValueError, and return ``-1.0``." +msgstr "" + +#: ../../c-api/conversion.rst:106 +msgid "" +"If ``s`` represents a value that is too large to store in a float (for " +"example, ``\"1e500\"`` is such a string on many platforms) then if " +"``overflow_exception`` is ``NULL`` return ``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 "" + +#: ../../c-api/conversion.rst:114 +msgid "" +"If any other error occurs during the conversion (for example an out-of-" +"memory error), set the appropriate Python exception and return ``-1.0``." +msgstr "" + +#: ../../c-api/conversion.rst:123 +msgid "" +"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, " +"*precision*, and *flags*." +msgstr "" + +#: ../../c-api/conversion.rst:126 +msgid "" +"*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " +"``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is " +"ignored. The ``'r'`` format code specifies the standard :func:`repr` format." +msgstr "" + +#: ../../c-api/conversion.rst:131 +msgid "" +"*flags* can be zero or more of the values ``Py_DTSF_SIGN``, " +"``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:" +msgstr "" + +#: ../../c-api/conversion.rst:134 +msgid "" +"``Py_DTSF_SIGN`` means to always precede the returned string with a sign " +"character, even if *val* is non-negative." +msgstr "" + +#: ../../c-api/conversion.rst:137 +msgid "" +"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look " +"like an integer." +msgstr "" + +#: ../../c-api/conversion.rst:140 +msgid "" +"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the " +"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." +msgstr "" + +#: ../../c-api/conversion.rst:144 +msgid "" +"If *ptype* is non-``NULL``, then the value it points to will be set to one " +"of ``Py_DTST_FINITE``, ``Py_DTST_INFINITE``, or ``Py_DTST_NAN``, signifying " +"that *val* is a finite number, an infinite number, or not a number, " +"respectively." +msgstr "" + +#: ../../c-api/conversion.rst:148 +msgid "" +"The return value is a pointer to *buffer* with the converted string or " +"``NULL`` if the conversion failed. The caller is responsible for freeing the " +"returned string by calling :c:func:`PyMem_Free`." +msgstr "" + +#: ../../c-api/conversion.rst:157 +msgid "" +"Case insensitive comparison of strings. The function works almost " +"identically to :c:func:`!strcmp` except that it ignores the case." +msgstr "" + +#: ../../c-api/conversion.rst:163 +msgid "" +"Case insensitive comparison of strings. The function works almost " +"identically to :c:func:`!strncmp` except that it ignores the case." +msgstr "" diff --git a/c-api/coro.po b/c-api/coro.po new file mode 100644 index 0000000..69c1523 --- /dev/null +++ b/c-api/coro.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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/coro.rst:6 +msgid "Coroutine Objects" +msgstr "" + +#: ../../c-api/coro.rst:10 +msgid "" +"Coroutine objects are what functions declared with an ``async`` keyword " +"return." +msgstr "" + +#: ../../c-api/coro.rst:16 +msgid "The C structure used for coroutine objects." +msgstr "" + +#: ../../c-api/coro.rst:21 +msgid "The type object corresponding to coroutine objects." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" diff --git a/c-api/datetime.po b/c-api/datetime.po new file mode 100644 index 0000000..5980b79 --- /dev/null +++ b/c-api/datetime.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/datetime.rst:6 +msgid "DateTime Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/datetime.rst:18 +msgid "This subtype of :c:type:`PyObject` represents a Python date object." +msgstr "" + +#: ../../c-api/datetime.rst:22 +msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." +msgstr "" + +#: ../../c-api/datetime.rst:26 +msgid "This subtype of :c:type:`PyObject` represents a Python time object." +msgstr "" + +#: ../../c-api/datetime.rst:30 +msgid "" +"This subtype of :c:type:`PyObject` represents the difference between two " +"datetime values." +msgstr "" + +#: ../../c-api/datetime.rst:34 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python date type; it " +"is the same object as :class:`datetime.date` in the Python layer." +msgstr "" + +#: ../../c-api/datetime.rst:39 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python datetime type; " +"it is the same object as :class:`datetime.datetime` in the Python layer." +msgstr "" + +#: ../../c-api/datetime.rst:44 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python time type; it " +"is the same object as :class:`datetime.time` in the Python layer." +msgstr "" + +#: ../../c-api/datetime.rst:49 +msgid "" +"This instance of :c:type:`PyTypeObject` represents Python type for the " +"difference between two datetime values; it is the same object " +"as :class:`datetime.timedelta` in the Python layer." +msgstr "" + +#: ../../c-api/datetime.rst:55 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python time zone info " +"type; it is the same object as :class:`datetime.tzinfo` in the Python layer." +msgstr "" + +#: ../../c-api/datetime.rst:59 +msgid "Macro for access to the UTC singleton:" +msgstr "" + +#: ../../c-api/datetime.rst:63 +msgid "" +"Returns the time zone singleton representing UTC, the same object " +"as :attr:`datetime.timezone.utc`." +msgstr "" + +#: ../../c-api/datetime.rst:69 +msgid "Type-check macros:" +msgstr "" + +#: ../../c-api/datetime.rst:73 +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 "" + +#: ../../c-api/datetime.rst:80 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " +"be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:86 +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 "" + +#: ../../c-api/datetime.rst:93 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " +"not be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:99 +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 "" + +#: ../../c-api/datetime.rst:106 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " +"be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:112 +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 "" + +#: ../../c-api/datetime.rst:119 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " +"be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:125 +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 "" + +#: ../../c-api/datetime.rst:132 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " +"not be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:136 +msgid "Macros to create objects:" +msgstr "" + +#: ../../c-api/datetime.rst:140 +msgid "" +"Return a :class:`datetime.date` object with the specified year, month and " +"day." +msgstr "" + +#: ../../c-api/datetime.rst:145 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second and microsecond." +msgstr "" + +#: ../../c-api/datetime.rst:151 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second, microsecond and fold." +msgstr "" + +#: ../../c-api/datetime.rst:159 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second and microsecond." +msgstr "" + +#: ../../c-api/datetime.rst:165 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second, microsecond and fold." +msgstr "" + +#: ../../c-api/datetime.rst:173 +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 "" + +#: ../../c-api/datetime.rst:181 +msgid "" +"Return a :class:`datetime.timezone` object with an unnamed fixed offset " +"represented by the *offset* argument." +msgstr "" + +#: ../../c-api/datetime.rst:189 +msgid "" +"Return a :class:`datetime.timezone` object with a fixed offset represented " +"by the *offset* argument and with tzname *name*." +msgstr "" + +#: ../../c-api/datetime.rst:195 +msgid "" +"Macros to extract fields from date objects. The argument must be an " +"instance of :c:type:`PyDateTime_Date`, including subclasses (such " +"as :c:type:`PyDateTime_DateTime`). The argument must not be ``NULL``, and " +"the type is not checked:" +msgstr "" + +#: ../../c-api/datetime.rst:202 +msgid "Return the year, as a positive int." +msgstr "" + +#: ../../c-api/datetime.rst:207 +msgid "Return the month, as an int from 1 through 12." +msgstr "" + +#: ../../c-api/datetime.rst:212 +msgid "Return the day, as an int from 1 through 31." +msgstr "" + +#: ../../c-api/datetime.rst:215 +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 "" + +#: ../../c-api/datetime.rst:221 ../../c-api/datetime.rst:259 +msgid "Return the hour, as an int from 0 through 23." +msgstr "" + +#: ../../c-api/datetime.rst:226 ../../c-api/datetime.rst:264 +msgid "Return the minute, as an int from 0 through 59." +msgstr "" + +#: ../../c-api/datetime.rst:231 ../../c-api/datetime.rst:269 +msgid "Return the second, as an int from 0 through 59." +msgstr "" + +#: ../../c-api/datetime.rst:236 ../../c-api/datetime.rst:274 +msgid "Return the microsecond, as an int from 0 through 999999." +msgstr "" + +#: ../../c-api/datetime.rst:241 ../../c-api/datetime.rst:279 +msgid "Return the fold, as an int from 0 through 1." +msgstr "" + +#: ../../c-api/datetime.rst:248 ../../c-api/datetime.rst:286 +msgid "Return the tzinfo (which may be ``None``)." +msgstr "" + +#: ../../c-api/datetime.rst:253 +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 "" + +#: ../../c-api/datetime.rst:291 +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 "" + +#: ../../c-api/datetime.rst:297 +msgid "Return the number of days, as an int from -999999999 to 999999999." +msgstr "" + +#: ../../c-api/datetime.rst:304 +msgid "Return the number of seconds, as an int from 0 through 86399." +msgstr "" + +#: ../../c-api/datetime.rst:311 +msgid "Return the number of microseconds, as an int from 0 through 999999." +msgstr "" + +#: ../../c-api/datetime.rst:316 +msgid "Macros for the convenience of modules implementing the DB API:" +msgstr "" + +#: ../../c-api/datetime.rst:320 +msgid "" +"Create and return a new :class:`datetime.datetime` object given an argument " +"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." +msgstr "" + +#: ../../c-api/datetime.rst:326 +msgid "" +"Create and return a new :class:`datetime.date` object given an argument " +"tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." +msgstr "" diff --git a/c-api/descriptor.po b/c-api/descriptor.po new file mode 100644 index 0000000..106fc8d --- /dev/null +++ b/c-api/descriptor.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/descriptor.rst:6 +msgid "Descriptor Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/descriptor.rst:15 +msgid "The type object for the built-in descriptor types." +msgstr "" + +#: ../../c-api/descriptor.rst:35 +msgid "" +"Return non-zero if the descriptor objects *descr* describes a data " +"attribute, or ``0`` if it describes a method. *descr* must be a descriptor " +"object; there is no error checking." +msgstr "" diff --git a/c-api/dict.po b/c-api/dict.po new file mode 100644 index 0000000..08b953a --- /dev/null +++ b/c-api/dict.po @@ -0,0 +1,488 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/dict.rst:6 +msgid "Dictionary Objects" +msgstr "" + +#: ../../c-api/dict.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python dictionary object." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/dict.rst:24 +msgid "" +"Return true if *p* is a dict object or an instance of a subtype of the dict " +"type. This function always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:30 +msgid "" +"Return true if *p* is a dict object, but not an instance of a subtype of the " +"dict type. This function always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:36 +msgid "Return a new empty dictionary, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/dict.rst:41 +msgid "" +"Return a :class:`types.MappingProxyType` object for a mapping which enforces " +"read-only behavior. This is normally used to create a view to prevent " +"modification of the dictionary for non-dynamic class types." +msgstr "" + +#: ../../c-api/dict.rst:48 +msgid "Empty an existing dictionary of all key-value pairs." +msgstr "" + +#: ../../c-api/dict.rst:53 +msgid "" +"Determine if dictionary *p* contains *key*. If an item in *p* is matches " +"*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " +"is equivalent to the Python expression ``key in p``." +msgstr "" + +#: ../../c-api/dict.rst:60 +msgid "" +"This is the same as :c:func:`PyDict_Contains`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:69 +msgid "Return a new dictionary that contains the same key-value pairs as *p*." +msgstr "" + +#: ../../c-api/dict.rst:74 +msgid "" +"Insert *val* into the dictionary *p* with a key of *key*. *key* must " +"be :term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return " +"``0`` on success or ``-1`` on failure. This function *does not* steal a " +"reference to *val*." +msgstr "" + +#: ../../c-api/dict.rst:82 +msgid "" +"This is the same as :c:func:`PyDict_SetItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:89 +msgid "" +"Remove the entry in dictionary *p* with key *key*. *key* must " +"be :term:`hashable`; if it isn't, :exc:`TypeError` is raised. If *key* is " +"not in the dictionary, :exc:`KeyError` is raised. Return ``0`` on success or " +"``-1`` on failure." +msgstr "" + +#: ../../c-api/dict.rst:97 +msgid "" +"This is the same as :c:func:`PyDict_DelItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:104 +msgid "" +"Return a new :term:`strong reference` to the object from dictionary *p* " +"which has a key *key*:" +msgstr "" + +#: ../../c-api/dict.rst:107 +msgid "" +"If the key is present, set *\\*result* to a new :term:`strong reference` to " +"the value and return ``1``." +msgstr "" + +#: ../../c-api/dict.rst:109 +msgid "If the key is missing, set *\\*result* to ``NULL`` and return ``0``." +msgstr "" + +#: ../../c-api/dict.rst:110 ../../c-api/dict.rst:207 +msgid "On error, raise an exception and return ``-1``." +msgstr "" + +#: ../../c-api/dict.rst:114 +msgid "See also the :c:func:`PyObject_GetItem` function." +msgstr "" + +#: ../../c-api/dict.rst:119 +msgid "" +"Return a :term:`borrowed reference` to the object from dictionary *p* which " +"has a key *key*. Return ``NULL`` if the key *key* is missing *without* " +"setting an exception." +msgstr "" + +#: ../../c-api/dict.rst:125 +msgid "" +"Exceptions that occur while this calls :meth:`~object.__hash__` " +"and :meth:`~object.__eq__` methods are silently ignored. Prefer " +"the :c:func:`PyDict_GetItemWithError` function instead." +msgstr "" + +#: ../../c-api/dict.rst:129 +msgid "" +"Calling this API without an :term:`attached thread state` had been allowed " +"for historical reason. It is no longer allowed." +msgstr "" + +#: ../../c-api/dict.rst:136 +msgid "" +"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " +"Return ``NULL`` **with** an exception set if an exception occurred. Return " +"``NULL`` **without** an exception set if the key wasn't present." +msgstr "" + +#: ../../c-api/dict.rst:144 +msgid "" +"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:150 +msgid "" +"Exceptions that occur while this calls :meth:`~object.__hash__` " +"and :meth:`~object.__eq__` methods or while creating the " +"temporary :class:`str` object are silently ignored. Prefer using " +"the :c:func:`PyDict_GetItemWithError` function with your " +"own :c:func:`PyUnicode_FromString` *key* instead." +msgstr "" + +#: ../../c-api/dict.rst:159 +msgid "" +"Similar to :c:func:`PyDict_GetItemRef`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:168 +msgid "" +"This is the same as the Python-level :meth:`dict.setdefault`. If present, " +"it returns the value corresponding to *key* from the dictionary *p*. If the " +"key is not in the dict, it is inserted with value *defaultobj* and " +"*defaultobj* is returned. This function evaluates the hash function of " +"*key* only once, instead of evaluating it independently for the lookup and " +"the insertion." +msgstr "" + +#: ../../c-api/dict.rst:179 +msgid "" +"Inserts *default_value* into the dictionary *p* with a key of *key* if the " +"key is not already present in the dictionary. If *result* is not ``NULL``, " +"then *\\*result* is set to a :term:`strong reference` to either " +"*default_value*, if the key was not present, or the existing value, if *key* " +"was already present in the dictionary. Returns ``1`` if the key was present " +"and *default_value* was not inserted, or ``0`` if the key was not present " +"and *default_value* was inserted. On failure, returns ``-1``, sets an " +"exception, and sets ``*result`` to ``NULL``." +msgstr "" + +#: ../../c-api/dict.rst:189 +msgid "" +"For clarity: if you have a strong reference to *default_value* before " +"calling this function, then after it returns, you hold a strong reference to " +"both *default_value* and *\\*result* (if it's not ``NULL``). These may refer " +"to the same object: in that case you hold two separate references to it." +msgstr "" + +#: ../../c-api/dict.rst:200 +msgid "" +"Remove *key* from dictionary *p* and optionally return the removed value. Do " +"not raise :exc:`KeyError` if the key missing." +msgstr "" + +#: ../../c-api/dict.rst:203 +msgid "" +"If the key is present, set *\\*result* to a new reference to the removed " +"value if *result* is not ``NULL``, and return ``1``." +msgstr "" + +#: ../../c-api/dict.rst:205 +msgid "" +"If the key is missing, set *\\*result* to ``NULL`` if *result* is not " +"``NULL``, and return ``0``." +msgstr "" + +#: ../../c-api/dict.rst:209 +msgid "" +"Similar to :meth:`dict.pop`, but without the default value and not " +"raising :exc:`KeyError` if the key missing." +msgstr "" + +#: ../../c-api/dict.rst:217 +msgid "" +"Similar to :c:func:`PyDict_Pop`, but *key* is specified as a :c:expr:`const " +"char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/dict.rst:226 +msgid "" +"Return a :c:type:`PyListObject` containing all the items from the dictionary." +msgstr "" + +#: ../../c-api/dict.rst:231 +msgid "" +"Return a :c:type:`PyListObject` containing all the keys from the dictionary." +msgstr "" + +#: ../../c-api/dict.rst:236 +msgid "" +"Return a :c:type:`PyListObject` containing all the values from the " +"dictionary *p*." +msgstr "" + +#: ../../c-api/dict.rst:244 +msgid "" +"Return the number of items in the dictionary. This is equivalent to " +"``len(p)`` on a dictionary." +msgstr "" + +#: ../../c-api/dict.rst:250 +msgid "" +"Iterate over all key-value pairs in the dictionary *p*. " +"The :c:type:`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` " +"prior to the first call to this function to start the iteration; the " +"function returns true for each pair in the dictionary, and false once all " +"pairs have been reported. The parameters *pkey* and *pvalue* should either " +"point to :c:expr:`PyObject*` variables that will be filled in with each key " +"and value, respectively, or may be ``NULL``. Any references returned " +"through them are borrowed. *ppos* should not be altered during iteration. " +"Its value represents offsets within the internal dictionary structure, and " +"since the structure is sparse, the offsets are not consecutive." +msgstr "" + +#: ../../c-api/dict.rst:261 +msgid "For example::" +msgstr "" + +#: ../../c-api/dict.rst:263 +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 "" + +#: ../../c-api/dict.rst:271 +msgid "" +"The dictionary *p* should not be mutated during iteration. It is safe to " +"modify the values of the keys as you iterate over the dictionary, but only " +"so long as the set of keys does not change. For example::" +msgstr "" + +#: ../../c-api/dict.rst:275 +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 "" + +#: ../../c-api/dict.rst:293 +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 "" + +#: ../../c-api/dict.rst:298 +msgid "" +"Py_BEGIN_CRITICAL_SECTION(self->dict);\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" ...\n" +"}\n" +"Py_END_CRITICAL_SECTION();" +msgstr "" + +#: ../../c-api/dict.rst:307 +msgid "" +"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " +"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " +"and :c:func:`PyObject_GetItem`. If *override* is true, existing pairs in *a* " +"will be replaced if a matching key is found in *b*, otherwise pairs will " +"only be added if there is not a matching key in *a*. Return ``0`` on success " +"or ``-1`` if an exception was raised." +msgstr "" + +#: ../../c-api/dict.rst:317 +msgid "" +"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to " +"``a.update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall " +"back to the iterating over a sequence of key value pairs if the second " +"argument has no \"keys\" attribute. Return ``0`` on success or ``-1`` if an " +"exception was raised." +msgstr "" + +#: ../../c-api/dict.rst:326 +msgid "" +"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " +"*seq2* must be an iterable object producing iterable objects of length 2, " +"viewed as key-value pairs. In case of duplicate keys, the last wins if " +"*override* is true, else the first wins. Return ``0`` on success or ``-1`` " +"if an exception was raised. Equivalent Python (except for the return value)::" +msgstr "" + +#: ../../c-api/dict.rst:333 +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 "" + +#: ../../c-api/dict.rst:340 +msgid "" +"Register *callback* as a dictionary watcher. Return a non-negative integer " +"id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../../c-api/dict.rst:349 +msgid "" +"Clear watcher identified by *watcher_id* previously returned " +"from :c:func:`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error " +"(e.g. if the given *watcher_id* was never registered.)" +msgstr "" + +#: ../../c-api/dict.rst:357 +msgid "" +"Mark dictionary *dict* as watched. The callback granted *watcher_id* " +"by :c:func:`PyDict_AddWatcher` will be called when *dict* is modified or " +"deallocated. Return ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../../c-api/dict.rst:365 +msgid "" +"Mark dictionary *dict* as no longer watched. The callback granted " +"*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " +"*dict* is modified or deallocated. The dict must previously have been " +"watched by this watcher. Return ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../../c-api/dict.rst:374 +msgid "" +"Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " +"``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " +"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or " +"``PyDict_EVENT_DEALLOCATED``." +msgstr "" + +#: ../../c-api/dict.rst:382 +msgid "Type of a dict watcher callback function." +msgstr "" + +#: ../../c-api/dict.rst:384 +msgid "" +"If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " +"*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " +"or ``PyDict_EVENT_MODIFIED``, *new_value* will be the new value for *key*. " +"If *event* is ``PyDict_EVENT_DELETED``, *key* is being deleted from the " +"dictionary and *new_value* will be ``NULL``." +msgstr "" + +#: ../../c-api/dict.rst:390 +msgid "" +"``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " +"dict is merged into it. To maintain efficiency of this operation, per-key " +"``PyDict_EVENT_ADDED`` events are not issued in this case; instead a single " +"``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." +msgstr "" + +#: ../../c-api/dict.rst:396 +msgid "" +"The callback may inspect but must not modify *dict*; doing so could have " +"unpredictable effects, including infinite recursion. Do not trigger Python " +"code execution in the callback, as it could modify the dict as a side effect." +msgstr "" + +#: ../../c-api/dict.rst:400 +msgid "" +"If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " +"callback to the about-to-be-destroyed dictionary will resurrect it and " +"prevent it from being freed at this time. When the resurrected object is " +"destroyed later, any watcher callbacks active at that time will be called " +"again." +msgstr "" + +#: ../../c-api/dict.rst:406 +msgid "" +"Callbacks occur before the notified modification to *dict* takes place, so " +"the prior state of *dict* can be inspected." +msgstr "" + +#: ../../c-api/dict.rst:409 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../../c-api/dict.rst:413 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../../c-api/dict.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/dict.rst:8 +msgid "dictionary" +msgstr "" + +#: ../../c-api/dict.rst:242 +msgid "built-in function" +msgstr "" + +#: ../../c-api/dict.rst:242 +msgid "len" +msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po new file mode 100644 index 0000000..3110dd2 --- /dev/null +++ b/c-api/exceptions.po @@ -0,0 +1,1441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/exceptions.rst:8 +msgid "Exception Handling" +msgstr "" + +#: ../../c-api/exceptions.rst:10 +msgid "" +"The functions described in this chapter will let you handle and raise Python " +"exceptions. It is important to understand some of the basics of Python " +"exception handling. It works somewhat like the POSIX :c:data:`errno` " +"variable: there is a global indicator (per thread) of the last error that " +"occurred. Most C API functions don't clear this on success, but will set it " +"to indicate the cause of the error on failure. Most C API functions also " +"return an error indicator, usually ``NULL`` if they are supposed to return a " +"pointer, or ``-1`` if they return an integer (exception: the ``PyArg_*`` " +"functions return ``1`` for success and ``0`` for failure)." +msgstr "" + +#: ../../c-api/exceptions.rst:20 +msgid "" +"Concretely, the error indicator consists of three object pointers: the " +"exception's type, the exception's value, and the traceback object. Any of " +"those pointers can be ``NULL`` if non-set (although some combinations are " +"forbidden, for example you can't have a non-``NULL`` traceback if the " +"exception type is ``NULL``)." +msgstr "" + +#: ../../c-api/exceptions.rst:26 +msgid "" +"When a function must fail because some function it called failed, it " +"generally doesn't set the error indicator; the function it called already " +"set it. It is responsible for either handling the error and clearing the " +"exception or returning after cleaning up any resources it holds (such as " +"object references or memory allocations); it should *not* continue normally " +"if it is not prepared to handle the error. If returning due to an error, it " +"is important to indicate to the caller that an error has been set. If the " +"error is not handled or carefully propagated, additional calls into the " +"Python/C API may not behave as intended and may fail in mysterious ways." +msgstr "" + +#: ../../c-api/exceptions.rst:37 +msgid "" +"The error indicator is **not** the result of :func:`sys.exc_info`. The " +"former corresponds to an exception that is not yet caught (and is therefore " +"still propagating), while the latter returns an exception after it is caught " +"(and has therefore stopped propagating)." +msgstr "" + +#: ../../c-api/exceptions.rst:44 +msgid "Printing and clearing" +msgstr "" + +#: ../../c-api/exceptions.rst:49 +msgid "" +"Clear the error indicator. If the error indicator is not set, there is no " +"effect." +msgstr "" + +#: ../../c-api/exceptions.rst:55 +msgid "" +"Print a standard traceback to ``sys.stderr`` and clear the error indicator. " +"**Unless** the error is a ``SystemExit``, in that case no traceback is " +"printed and the Python process will exit with the error code specified by " +"the ``SystemExit`` instance." +msgstr "" + +#: ../../c-api/exceptions.rst:60 +msgid "" +"Call this function **only** when the error indicator is set. Otherwise it " +"will cause a fatal error!" +msgstr "" + +#: ../../c-api/exceptions.rst:63 +msgid "" +"If *set_sys_last_vars* is nonzero, the variable :data:`sys.last_exc` is set " +"to the printed exception. For backwards compatibility, the deprecated " +"variables :data:`sys.last_type`, :data:`sys.last_value` " +"and :data:`sys.last_traceback` are also set to the type, value and traceback " +"of this exception, respectively." +msgstr "" + +#: ../../c-api/exceptions.rst:69 +msgid "The setting of :data:`sys.last_exc` was added." +msgstr "" + +#: ../../c-api/exceptions.rst:75 +msgid "Alias for ``PyErr_PrintEx(1)``." +msgstr "" + +#: ../../c-api/exceptions.rst:80 +msgid "" +"Call :func:`sys.unraisablehook` using the current exception and *obj* " +"argument." +msgstr "" + +#: ../../c-api/exceptions.rst:83 +msgid "" +"This utility function prints a warning message to ``sys.stderr`` when an " +"exception has been set but it is impossible for the interpreter to actually " +"raise the exception. It is used, for example, when an exception occurs in " +"an :meth:`~object.__del__` method." +msgstr "" + +#: ../../c-api/exceptions.rst:88 +msgid "" +"The function is called with a single argument *obj* that identifies the " +"context in which the unraisable exception occurred. If possible, the repr of " +"*obj* will be printed in the warning message. If *obj* is ``NULL``, only the " +"traceback is printed." +msgstr "" + +#: ../../c-api/exceptions.rst:93 +msgid "An exception must be set when calling this function." +msgstr "" + +#: ../../c-api/exceptions.rst:95 +msgid "Print a traceback. Print only traceback if *obj* is ``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst:98 +msgid "Use :func:`sys.unraisablehook`." +msgstr "" + +#: ../../c-api/exceptions.rst:104 +msgid "" +"Similar to :c:func:`PyErr_WriteUnraisable`, but the *format* and subsequent " +"parameters help format the warning message; they have the same meaning and " +"values as in :c:func:`PyUnicode_FromFormat`. ``PyErr_WriteUnraisable(obj)`` " +"is roughly equivalent to ``PyErr_FormatUnraisable(\"Exception ignored in: " +"%R\", obj)``. If *format* is ``NULL``, only the traceback is printed." +msgstr "" + +#: ../../c-api/exceptions.rst:116 +msgid "" +"Print the standard traceback display of ``exc`` to ``sys.stderr``, including " +"chained exceptions and notes." +msgstr "" + +#: ../../c-api/exceptions.rst:123 +msgid "Raising exceptions" +msgstr "" + +#: ../../c-api/exceptions.rst:125 +msgid "" +"These functions help you set the current thread's error indicator. For " +"convenience, some of these functions will always return a ``NULL`` pointer " +"for use in a ``return`` statement." +msgstr "" + +#: ../../c-api/exceptions.rst:132 +msgid "" +"This is the most common way to set the error indicator. The first argument " +"specifies the exception type; it is normally one of the standard exceptions, " +"e.g. :c:data:`PyExc_RuntimeError`. You need not create a new :term:`strong " +"reference` to it (e.g. with :c:func:`Py_INCREF`). The second argument is an " +"error message; it is decoded from ``'utf-8'``." +msgstr "" + +#: ../../c-api/exceptions.rst:141 +msgid "" +"This function is similar to :c:func:`PyErr_SetString` but lets you specify " +"an arbitrary Python object for the \"value\" of the exception." +msgstr "" + +#: ../../c-api/exceptions.rst:147 +msgid "" +"This function sets the error indicator and returns ``NULL``. *exception* " +"should be a Python exception class. The *format* and subsequent parameters " +"help format the error message; they have the same meaning and values as " +"in :c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." +msgstr "" + +#: ../../c-api/exceptions.rst:156 +msgid "" +"Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " +"rather than a variable number of arguments." +msgstr "" + +#: ../../c-api/exceptions.rst:164 +msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." +msgstr "" + +#: ../../c-api/exceptions.rst:169 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " +"*message* indicates that a built-in operation was invoked with an illegal " +"argument. It is mostly for internal use." +msgstr "" + +#: ../../c-api/exceptions.rst:176 +msgid "" +"This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " +"``NULL`` so an object allocation function can write ``return " +"PyErr_NoMemory();`` when it runs out of memory." +msgstr "" + +#: ../../c-api/exceptions.rst:185 +msgid "" +"This is a convenience function to raise an exception when a C library " +"function has returned an error and set the C variable :c:data:`errno`. It " +"constructs a tuple object whose first item is the integer :c:data:`errno` " +"value and whose second item is the corresponding error message (gotten " +"from :c:func:`!strerror`), and then calls ``PyErr_SetObject(type, " +"object)``. On Unix, when the :c:data:`errno` value is :c:macro:`!EINTR`, " +"indicating an interrupted system call, this " +"calls :c:func:`PyErr_CheckSignals`, and if that set the error indicator, " +"leaves it set to that. The function always returns ``NULL``, so a wrapper " +"function around a system call can write ``return PyErr_SetFromErrno(type);`` " +"when the system call returns an error." +msgstr "" + +#: ../../c-api/exceptions.rst:199 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " +"if *filenameObject* is not ``NULL``, it is passed to the constructor of " +"*type* as a third parameter. In the case of :exc:`OSError` exception, this " +"is used to define the :attr:`!filename` attribute of the exception instance." +msgstr "" + +#: ../../c-api/exceptions.rst:208 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " +"second filename object, for raising errors when a function that takes two " +"filenames fails." +msgstr "" + +#: ../../c-api/exceptions.rst:217 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " +"is given as a C string. *filename* is decoded from the :term:`filesystem " +"encoding and error handler`." +msgstr "" + +#: ../../c-api/exceptions.rst:224 +msgid "" +"This is a convenience function to raise :exc:`OSError`. If called with " +"*ierr* of ``0``, the error code returned by a call to :c:func:`!" +"GetLastError` is used instead. It calls the Win32 function :c:func:`!" +"FormatMessage` to retrieve the Windows description of error code given by " +"*ierr* or :c:func:`!GetLastError`, then it constructs a :exc:`OSError` " +"object with the :attr:`~OSError.winerror` attribute set to the error code, " +"the :attr:`~OSError.strerror` attribute set to the corresponding error " +"message (gotten from :c:func:`!FormatMessage`), and then calls " +"``PyErr_SetObject(PyExc_OSError, object)``. This function always returns " +"``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst: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 "" + +#: ../../c-api/exceptions.rst:239 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " +"specifying the exception type to be raised." +msgstr "" + +#: ../../c-api/exceptions.rst:247 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErr`, with the additional behavior " +"that if *filename* is not ``NULL``, it is decoded from the filesystem " +"encoding (:func:`os.fsdecode`) and passed to the constructor " +"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" +"filename` attribute of the exception instance." +msgstr "" + +#: ../../c-api/exceptions.rst:258 +msgid "" +"Similar to :c:func:`PyErr_SetExcFromWindowsErr`, with the additional " +"behavior that if *filename* is not ``NULL``, it is passed to the constructor " +"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" +"filename` attribute of the exception instance." +msgstr "" + +#: ../../c-api/exceptions.rst:268 +msgid "" +"Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " +"accepts a second filename object." +msgstr "" + +#: ../../c-api/exceptions.rst:278 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " +"parameter specifying the exception type to be raised." +msgstr "" + +#: ../../c-api/exceptions.rst:286 +msgid "" +"This is a convenience function to raise :exc:`ImportError`. *msg* will be " +"set as the exception's message string. *name* and *path*, both of which can " +"be ``NULL``, will be set as the :exc:`ImportError`'s respective ``name`` and " +"``path`` attributes." +msgstr "" + +#: ../../c-api/exceptions.rst:296 +msgid "" +"Much like :c:func:`PyErr_SetImportError` but this function allows for " +"specifying a subclass of :exc:`ImportError` to raise." +msgstr "" + +#: ../../c-api/exceptions.rst:304 +msgid "" +"Set file, line, and offset information for the current exception. If the " +"current exception is not a :exc:`SyntaxError`, then it sets additional " +"attributes, which make the exception printing subsystem think the exception " +"is a :exc:`SyntaxError`." +msgstr "" + +#: ../../c-api/exceptions.rst:314 +msgid "" +"Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " +"decoded from the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/exceptions.rst:322 +msgid "" +"Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " +"omitted." +msgstr "" + +#: ../../c-api/exceptions.rst:328 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " +"where *message* indicates that an internal operation (e.g. a Python/C API " +"function) was invoked with an illegal argument. It is mostly for internal " +"use." +msgstr "" + +#: ../../c-api/exceptions.rst:335 +msgid "Issuing warnings" +msgstr "" + +#: ../../c-api/exceptions.rst:337 +msgid "" +"Use these functions to issue warnings from C code. They mirror similar " +"functions exported by the Python :mod:`warnings` module. They normally " +"print a warning message to *sys.stderr*; however, it is also possible that " +"the user has specified that warnings are to be turned into errors, and in " +"that case they will raise an exception. It is also possible that the " +"functions raise an exception because of a problem with the warning " +"machinery. The return value is ``0`` if no exception is raised, or ``-1`` if " +"an exception is raised. (It is not possible to determine whether a warning " +"message is actually printed, nor what the reason is for the exception; this " +"is intentional.) If an exception is raised, the caller should do its normal " +"exception handling (for example, :c:func:`Py_DECREF` owned references and " +"return an error value)." +msgstr "" + +#: ../../c-api/exceptions.rst:352 +msgid "" +"Issue a warning message. The *category* argument is a warning category (see " +"below) or ``NULL``; the *message* argument is a UTF-8 encoded string. " +"*stack_level* is a positive number giving a number of stack frames; the " +"warning will be issued from the currently executing line of code in that " +"stack frame. A *stack_level* of 1 is the function " +"calling :c:func:`PyErr_WarnEx`, 2 is the function above that, and so forth." +msgstr "" + +#: ../../c-api/exceptions.rst:359 +msgid "" +"Warning categories must be subclasses " +"of :c:data:`PyExc_Warning`; :c:data:`PyExc_Warning` is a subclass " +"of :c:data:`PyExc_Exception`; the default warning category " +"is :c:data:`PyExc_RuntimeWarning`. The standard Python warning categories " +"are available as global variables whose names are enumerated " +"at :ref:`standardwarningcategories`." +msgstr "" + +#: ../../c-api/exceptions.rst:365 +msgid "" +"For information about warning control, see the documentation for " +"the :mod:`warnings` module and the :option:`-W` option in the command line " +"documentation. There is no C API for warning control." +msgstr "" + +#: ../../c-api/exceptions.rst:372 +msgid "" +"Issue a warning message with explicit control over all warning attributes. " +"This is a straightforward wrapper around the Python " +"function :func:`warnings.warn_explicit`; see there for more information. " +"The *module* and *registry* arguments may be set to ``NULL`` to get the " +"default effect described there." +msgstr "" + +#: ../../c-api/exceptions.rst:383 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " +"*module* are UTF-8 encoded strings, and *filename* is decoded from " +"the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/exceptions.rst:390 +msgid "" +"Function similar to :c:func:`PyErr_WarnEx`, but " +"use :c:func:`PyUnicode_FromFormat` to format the warning message. *format* " +"is an ASCII-encoded string." +msgstr "" + +#: ../../c-api/exceptions.rst:399 +msgid "" +"Function similar to :c:func:`PyErr_WarnFormat`, but *category* " +"is :exc:`ResourceWarning` and it passes *source* to :class:`!" +"warnings.WarningMessage`." +msgstr "" + +#: ../../c-api/exceptions.rst:406 +msgid "Querying the error indicator" +msgstr "" + +#: ../../c-api/exceptions.rst:410 +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:416 +msgid "The caller must have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/exceptions.rst:420 +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:428 +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:435 +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:443 +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:446 +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:449 ../../c-api/exceptions.rst:493 +msgid "For example::" +msgstr "" + +#: ../../c-api/exceptions.rst:451 +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:459 +msgid "" +":c:func:`PyErr_GetHandledException`, to save the exception currently being " +"handled." +msgstr "" + +#: ../../c-api/exceptions.rst:467 +msgid "" +"Set *exc* as the exception currently being raised, clearing the existing " +"exception if one is set." +msgstr "" + +#: ../../c-api/exceptions.rst:472 +msgid "This call steals a reference to *exc*, which must be a valid exception." +msgstr "" + +#: ../../c-api/exceptions.rst:481 +msgid "Use :c:func:`PyErr_GetRaisedException` instead." +msgstr "" + +#: ../../c-api/exceptions.rst:483 +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:490 +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:495 +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 "" + +#: ../../c-api/exceptions.rst:509 +msgid "Use :c:func:`PyErr_SetRaisedException` instead." +msgstr "" + +#: ../../c-api/exceptions.rst:511 +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:525 +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:534 +msgid "" +"Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" +"normalization." +msgstr "" + +#: ../../c-api/exceptions.rst:537 +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:545 +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:550 +msgid "" +"if (tb != NULL) {\n" +" PyException_SetTraceback(val, tb);\n" +"}" +msgstr "" + +#: ../../c-api/exceptions.rst:557 +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:564 +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:573 +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:580 +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:589 +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: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_SetExcInfo` to restore or clear the " +"exception state." +msgstr "" + +#: ../../c-api/exceptions.rst:608 +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:617 +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:624 +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:632 +msgid "Signal Handling" +msgstr "" + +#: ../../c-api/exceptions.rst:642 +msgid "This function interacts with Python's signal handling." +msgstr "" + +#: ../../c-api/exceptions.rst:644 +msgid "" +"If the function is called from the main thread and under the main Python " +"interpreter, it checks whether a signal has been sent to the processes and " +"if so, invokes the corresponding signal handler. If the :mod:`signal` " +"module is supported, this can invoke a signal handler written in Python." +msgstr "" + +#: ../../c-api/exceptions.rst:649 +msgid "" +"The function attempts to handle all pending signals, and then returns ``0``. " +"However, if a Python signal handler raises an exception, the error indicator " +"is set and the function returns ``-1`` immediately (such that other pending " +"signals may not have been handled yet: they will be on the " +"next :c:func:`PyErr_CheckSignals()` invocation)." +msgstr "" + +#: ../../c-api/exceptions.rst:655 +msgid "" +"If the function is called from a non-main thread, or under a non-main Python " +"interpreter, it does nothing and returns ``0``." +msgstr "" + +#: ../../c-api/exceptions.rst:658 +msgid "" +"This function can be called by long-running C code that wants to be " +"interruptible by user requests (such as by pressing Ctrl-C)." +msgstr "" + +#: ../../c-api/exceptions.rst:662 +msgid "" +"The default Python signal handler for :c:macro:`!SIGINT` raises " +"the :exc:`KeyboardInterrupt` exception." +msgstr "" + +#: ../../c-api/exceptions.rst:673 +msgid "" +"Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " +"equivalent to ``PyErr_SetInterruptEx(SIGINT)``." +msgstr "" + +#: ../../c-api/exceptions.rst:677 ../../c-api/exceptions.rst:704 +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:687 +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:691 +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:696 +msgid "" +"If the given signal isn't handled by Python (it was set " +"to :py:const:`signal.SIG_DFL` or :py:const:`signal.SIG_IGN`), it will be " +"ignored." +msgstr "" + +#: ../../c-api/exceptions.rst:699 +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:712 +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:716 +msgid "" +"The value ``-1`` disables the feature; this is the initial state. This is " +"equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " +"checking. *fd* should be a valid file descriptor. The function should only " +"be called from the main thread." +msgstr "" + +#: ../../c-api/exceptions.rst:721 +msgid "On Windows, the function now also supports socket handles." +msgstr "" + +#: ../../c-api/exceptions.rst:726 +msgid "Exception Classes" +msgstr "" + +#: ../../c-api/exceptions.rst:730 +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:736 +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:745 +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:754 +msgid "" +"Return non-zero if *ob* is an exception class, zero otherwise. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/exceptions.rst:759 +msgid "Return :c:member:`~PyTypeObject.tp_name` of the exception class *ob*." +msgstr "" + +#: ../../c-api/exceptions.rst:763 +msgid "Exception Objects" +msgstr "" + +#: ../../c-api/exceptions.rst:767 +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:775 +msgid "" +"Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " +"clear it." +msgstr "" + +#: ../../c-api/exceptions.rst:781 +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:789 +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:796 +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:804 +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:808 +msgid "" +"The :attr:`~BaseException.__suppress_context__` attribute is implicitly set " +"to ``True`` by this function." +msgstr "" + +#: ../../c-api/exceptions.rst:814 +msgid "Return :attr:`~BaseException.args` of exception *ex*." +msgstr "" + +#: ../../c-api/exceptions.rst:819 +msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." +msgstr "" + +#: ../../c-api/exceptions.rst:823 +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:837 +msgid "Unicode Exception Objects" +msgstr "" + +#: ../../c-api/exceptions.rst:839 +msgid "" +"The following functions are used to create and modify Unicode exceptions " +"from C." +msgstr "" + +#: ../../c-api/exceptions.rst:843 +msgid "" +"Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " +"*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " +"UTF-8 encoded strings." +msgstr "" + +#: ../../c-api/exceptions.rst:850 +msgid "Return the *encoding* attribute of the given exception object." +msgstr "" + +#: ../../c-api/exceptions.rst:856 +msgid "Return the *object* attribute of the given exception object." +msgstr "" + +#: ../../c-api/exceptions.rst:862 +msgid "" +"Get the *start* attribute of the given exception object and place it into " +"*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " +"on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:866 +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:869 +msgid ":attr:`UnicodeError.start`" +msgstr "" + +#: ../../c-api/exceptions.rst:875 +msgid "" +"Set the *start* attribute of the given exception object to *start*. Return " +"``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:880 +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:888 +msgid "" +"Get the *end* attribute of the given exception object and place it into " +"*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " +"failure." +msgstr "" + +#: ../../c-api/exceptions.rst:892 +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:899 +msgid "" +"Set the *end* attribute of the given exception object to *end*. Return " +"``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:902 +msgid ":attr:`UnicodeError.end`" +msgstr "" + +#: ../../c-api/exceptions.rst:908 +msgid "Return the *reason* attribute of the given exception object." +msgstr "" + +#: ../../c-api/exceptions.rst:914 +msgid "" +"Set the *reason* attribute of the given exception object to *reason*. " +"Return ``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:921 +msgid "Recursion Control" +msgstr "" + +#: ../../c-api/exceptions.rst:923 +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:932 +msgid "Marks a point where a recursive C-level call is about to be performed." +msgstr "" + +#: ../../c-api/exceptions.rst:934 +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:938 +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:942 ../../c-api/exceptions.rst:950 +msgid "" +"This function is now also available in the :ref:`limited API `." +msgstr "" + +#: ../../c-api/exceptions.rst:947 +msgid "" +"Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " +"*successful* invocation of :c:func:`Py_EnterRecursiveCall`." +msgstr "" + +#: ../../c-api/exceptions.rst:953 +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:961 +msgid "" +"Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " +"implementation to detect cycles." +msgstr "" + +#: ../../c-api/exceptions.rst:964 +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:970 +msgid "" +"The function will return a negative integer if the recursion limit is " +"reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " +"should typically return ``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst:974 +msgid "" +"Otherwise, the function returns zero and " +"the :c:member:`~PyTypeObject.tp_repr` implementation can continue normally." +msgstr "" + +#: ../../c-api/exceptions.rst:979 +msgid "" +"Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation " +"of :c:func:`Py_ReprEnter` that returns zero." +msgstr "" + +#: ../../c-api/exceptions.rst:986 +msgid "Exception and warning types" +msgstr "" + +#: ../../c-api/exceptions.rst:988 +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:992 +msgid "For completeness, here are all the variables:" +msgstr "" + +#: ../../c-api/exceptions.rst:995 +msgid "Exception types" +msgstr "" + +#: ../../c-api/exceptions.rst:1002 ../../c-api/exceptions.rst:1148 +#: ../../c-api/exceptions.rst:1178 +msgid "C name" +msgstr "" + +#: ../../c-api/exceptions.rst:1003 ../../c-api/exceptions.rst:1149 +#: ../../c-api/exceptions.rst:1179 +msgid "Python name" +msgstr "" + +#: ../../c-api/exceptions.rst:1005 +msgid ":exc:`BaseException`" +msgstr "" + +#: ../../c-api/exceptions.rst:1007 +msgid ":exc:`BaseExceptionGroup`" +msgstr "" + +#: ../../c-api/exceptions.rst:1009 +msgid ":exc:`Exception`" +msgstr "" + +#: ../../c-api/exceptions.rst:1011 +msgid ":exc:`ArithmeticError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1013 +msgid ":exc:`AssertionError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1015 +msgid ":exc:`AttributeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1017 +msgid ":exc:`BlockingIOError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1019 +msgid ":exc:`BrokenPipeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1021 +msgid ":exc:`BufferError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1023 +msgid ":exc:`ChildProcessError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1025 +msgid ":exc:`ConnectionAbortedError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1027 +msgid ":exc:`ConnectionError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1029 +msgid ":exc:`ConnectionRefusedError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1031 +msgid ":exc:`ConnectionResetError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1033 +msgid ":exc:`EOFError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1035 +msgid ":exc:`FileExistsError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1037 +msgid ":exc:`FileNotFoundError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1039 +msgid ":exc:`FloatingPointError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1041 +msgid ":exc:`GeneratorExit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1043 +msgid ":exc:`ImportError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1045 +msgid ":exc:`IndentationError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1047 +msgid ":exc:`IndexError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1049 +msgid ":exc:`InterruptedError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1051 +msgid ":exc:`IsADirectoryError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1053 +msgid ":exc:`KeyError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1055 +msgid ":exc:`KeyboardInterrupt`" +msgstr "" + +#: ../../c-api/exceptions.rst:1057 +msgid ":exc:`LookupError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1059 +msgid ":exc:`MemoryError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1061 +msgid ":exc:`ModuleNotFoundError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1063 +msgid ":exc:`NameError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1065 +msgid ":exc:`NotADirectoryError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1067 +msgid ":exc:`NotImplementedError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1069 ../../c-api/exceptions.rst:1152 +#: ../../c-api/exceptions.rst:1155 ../../c-api/exceptions.rst:1158 +msgid ":exc:`OSError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1071 +msgid ":exc:`OverflowError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1073 +msgid ":exc:`PermissionError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1075 +msgid ":exc:`ProcessLookupError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1077 +msgid ":exc:`PythonFinalizationError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1079 +msgid ":exc:`RecursionError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1081 +msgid ":exc:`ReferenceError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1083 +msgid ":exc:`RuntimeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1085 +msgid ":exc:`StopAsyncIteration`" +msgstr "" + +#: ../../c-api/exceptions.rst:1087 +msgid ":exc:`StopIteration`" +msgstr "" + +#: ../../c-api/exceptions.rst:1089 +msgid ":exc:`SyntaxError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1091 +msgid ":exc:`SystemError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1093 +msgid ":exc:`SystemExit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1095 +msgid ":exc:`TabError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1097 +msgid ":exc:`TimeoutError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1099 +msgid ":exc:`TypeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1101 +msgid ":exc:`UnboundLocalError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1103 +msgid ":exc:`UnicodeDecodeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1105 +msgid ":exc:`UnicodeEncodeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1107 +msgid ":exc:`UnicodeError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1109 +msgid ":exc:`UnicodeTranslateError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1111 +msgid ":exc:`ValueError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1113 +msgid ":exc:`ZeroDivisionError`" +msgstr "" + +#: ../../c-api/exceptions.rst:1115 +msgid "" +":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:`PyExc_ConnectionAbortedError`, :c:data:`PyExc_ConnectionRefusedError`, :c:data:`PyExc_ConnectionResetError`, :c:data:`PyExc_FileExistsError`, :c:data:`PyExc_FileNotFoundError`, :c:data:`PyExc_InterruptedError`, :c:data:`PyExc_IsADirectoryError`, :c:data:`PyExc_NotADirectoryError`, :c:data:`PyExc_PermissionError`, :c:data:`PyExc_ProcessLookupError` " +"and :c:data:`PyExc_TimeoutError` were introduced following :pep:`3151`." +msgstr "" + +#: ../../c-api/exceptions.rst:1125 +msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." +msgstr "" + +#: ../../c-api/exceptions.rst:1128 +msgid ":c:data:`PyExc_ModuleNotFoundError`." +msgstr "" + +#: ../../c-api/exceptions.rst:1131 +msgid ":c:data:`PyExc_BaseExceptionGroup`." +msgstr "" + +#: ../../c-api/exceptions.rst:1136 +msgid "OSError aliases" +msgstr "" + +#: ../../c-api/exceptions.rst:1138 +msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." +msgstr "" + +#: ../../c-api/exceptions.rst:1140 +msgid "These aliases used to be separate exception types." +msgstr "" + +#: ../../c-api/exceptions.rst:1150 +msgid "Notes" +msgstr "" + +#: ../../c-api/exceptions.rst:1159 +msgid "[win]_" +msgstr "" + +#: ../../c-api/exceptions.rst:1161 +msgid "Notes:" +msgstr "" + +#: ../../c-api/exceptions.rst:1164 +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:1171 +msgid "Warning types" +msgstr "" + +#: ../../c-api/exceptions.rst:1181 +msgid ":exc:`Warning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1183 +msgid ":exc:`BytesWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1185 +msgid ":exc:`DeprecationWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1187 +msgid ":exc:`EncodingWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1189 +msgid ":exc:`FutureWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1191 +msgid ":exc:`ImportWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1193 +msgid ":exc:`PendingDeprecationWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1195 +msgid ":exc:`ResourceWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1197 +msgid ":exc:`RuntimeWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1199 +msgid ":exc:`SyntaxWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1201 +msgid ":exc:`UnicodeWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1203 +msgid ":exc:`UserWarning`" +msgstr "" + +#: ../../c-api/exceptions.rst:1205 +msgid ":c:data:`PyExc_ResourceWarning`." +msgstr "" + +#: ../../c-api/exceptions.rst:1208 +msgid ":c:data:`PyExc_EncodingWarning`." +msgstr "" + +#: ../../c-api/exceptions.rst:183 +msgid "strerror (C function)" +msgstr "" + +#: ../../c-api/exceptions.rst:637 ../../c-api/exceptions.rst:668 +#: ../../c-api/exceptions.rst:683 +msgid "module" +msgstr "" + +#: ../../c-api/exceptions.rst:637 ../../c-api/exceptions.rst:668 +#: ../../c-api/exceptions.rst:683 +msgid "signal" +msgstr "" + +#: ../../c-api/exceptions.rst:637 ../../c-api/exceptions.rst:668 +msgid "SIGINT (C macro)" +msgstr "" + +#: ../../c-api/exceptions.rst:637 ../../c-api/exceptions.rst:668 +#: ../../c-api/exceptions.rst:683 +msgid "KeyboardInterrupt (built-in exception)" +msgstr "" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po new file mode 100644 index 0000000..e670afe --- /dev/null +++ b/c-api/extension-modules.po @@ -0,0 +1,357 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/extension-modules.rst:6 +msgid "Defining extension modules" +msgstr "" + +#: ../../c-api/extension-modules.rst:8 +msgid "" +"A C extension for CPython is a shared library (for example, a ``.so`` file " +"on Linux, ``.pyd`` DLL on Windows), which is loadable into the Python " +"process (for example, it is compiled with compatible compiler settings), and " +"which exports an :ref:`initialization function `." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:48 +msgid "Added support for multi-phase initialization (:pep:`489`)." +msgstr "" + +#: ../../c-api/extension-modules.rst:52 +msgid "Multiple module instances" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:74 +msgid "" +"A simpler way to avoid these issues is :ref:`raising an error on repeated " +"initialization `." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:89 +msgid "Initialization function" +msgstr "" + +#: ../../c-api/extension-modules.rst:91 +msgid "" +"The initialization function defined by an extension module has the following " +"signature:" +msgstr "" + +#: ../../c-api/extension-modules.rst:96 +msgid "" +"Its name should be :samp:`PyInit_{}`, with ```` replaced by the " +"name of the module." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:115 +msgid "" +"It is recommended to define the initialization function using a helper macro:" +msgstr "" + +#: ../../c-api/extension-modules.rst:119 +msgid "Declare an extension module initialization function. This macro:" +msgstr "" + +#: ../../c-api/extension-modules.rst:122 +msgid "specifies the :c:expr:`PyObject*` return type," +msgstr "" + +#: ../../c-api/extension-modules.rst:123 +msgid "adds any special linkage declarations required by the platform, and" +msgstr "" + +#: ../../c-api/extension-modules.rst:124 +msgid "for C++, declares the function as ``extern \"C\"``." +msgstr "" + +#: ../../c-api/extension-modules.rst:126 +msgid "For example, a module called ``spam`` would be defined like this::" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:154 +msgid "Multi-phase initialization" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:168 +msgid "Return *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:184 +msgid "Legacy single-phase initialization" +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:197 +msgid "" +"Single-phase initialization differs from the :ref:`default ` in the following ways:" +msgstr "" + +#: ../../c-api/extension-modules.rst:200 +msgid "Single-phase modules are, or rather *contain*, “singletons”." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:229 +msgid "" +"The exact behavior should be considered a CPython implementation detail." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/extension-modules.rst:240 +msgid "Non-ASCII module names (``PyInitU_modulename``) are not supported." +msgstr "" + +#: ../../c-api/extension-modules.rst:242 +msgid "" +"Single-phase modules support module lookup functions " +"like :c:func:`PyState_FindModule`." +msgstr "" + +#: ../../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 "" diff --git a/c-api/file.po b/c-api/file.po new file mode 100644 index 0000000..3939c0b --- /dev/null +++ b/c-api/file.po @@ -0,0 +1,155 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/file.rst:35 +msgid "Ignore *name* attribute." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/file.rst:65 +msgid "" +"Overrides the normal behavior of :func:`io.open_code` to pass its parameter " +"through the provided handler." +msgstr "" + +#: ../../c-api/file.rst:68 +msgid "The *handler* is a function of type:" +msgstr "" + +#: ../../c-api/file.rst:73 +msgid "" +"Equivalent of :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " +"where *path* is guaranteed to be :c:type:`PyUnicodeObject`." +msgstr "" + +#: ../../c-api/file.rst:77 +msgid "" +"The *userData* pointer is passed into the hook function. Since hook " +"functions may be called from different runtimes, this pointer should not " +"refer directly to Python state." +msgstr "" + +#: ../../c-api/file.rst:81 +msgid "" +"As this hook is intentionally used during import, avoid importing new " +"modules during its execution unless they are known to be frozen or available " +"in ``sys.modules``." +msgstr "" + +#: ../../c-api/file.rst:85 +msgid "" +"Once a hook has been set, it cannot be removed or replaced, and later calls " +"to :c:func:`PyFile_SetOpenCodeHook` will fail. On failure, the function " +"returns -1 and sets an exception if the interpreter has been initialized." +msgstr "" + +#: ../../c-api/file.rst:89 +msgid "This function is safe to call before :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/file.rst:91 +msgid "" +"Raises an :ref:`auditing event ` ``setopencodehook`` with no " +"arguments." +msgstr "" + +#: ../../c-api/file.rst:101 +msgid "" +"Write object *obj* to file object *p*. The only supported flag for *flags* " +"is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is " +"written instead of the :func:`repr`. Return ``0`` on success or ``-1`` on " +"failure; the appropriate exception will be set." +msgstr "" + +#: ../../c-api/file.rst:109 +msgid "" +"Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " +"failure; the appropriate exception will be set." +msgstr "" + +#: ../../c-api/file.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/file.rst:8 +msgid "file" +msgstr "" + +#: ../../c-api/file.rst:50 +msgid "EOFError (built-in exception)" +msgstr "" + +#: ../../c-api/file.rst:99 +msgid "Py_PRINT_RAW (C macro)" +msgstr "" diff --git a/c-api/float.po b/c-api/float.po new file mode 100644 index 0000000..6f8011f --- /dev/null +++ b/c-api/float.po @@ -0,0 +1,226 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/float.rst:6 +msgid "Floating-Point Objects" +msgstr "" + +#: ../../c-api/float.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python floating-point object." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/float.rst:36 +msgid "" +"Create a :c:type:`PyFloatObject` object based on the string value in *str*, " +"or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/float.rst:42 +msgid "" +"Create a :c:type:`PyFloatObject` object from *v*, or ``NULL`` on failure." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/float.rst:54 +msgid "Use :meth:`~object.__index__` if available." +msgstr "" + +#: ../../c-api/float.rst:60 +msgid "" +"Return a C :c:expr:`double` representation of the contents of *pyfloat*, but " +"without error checking." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/float.rst:73 +msgid "" +"Return the maximum representable finite float *DBL_MAX* as " +"C :c:expr:`double`." +msgstr "" + +#: ../../c-api/float.rst:78 +msgid "" +"Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`." +msgstr "" + +#: ../../c-api/float.rst:82 +msgid "Pack and Unpack functions" +msgstr "" + +#: ../../c-api/float.rst:84 +msgid "" +"The pack and unpack functions provide an efficient platform-independent way " +"to store floating-point values as byte strings. The Pack routines produce a " +"bytes string from a C :c:expr:`double`, and the Unpack routines produce a " +"C :c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) " +"specifies the number of bytes in the bytes string." +msgstr "" + +#: ../../c-api/float.rst:90 +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 "" + +#: ../../c-api/float.rst:99 +msgid "" +"Note that NaNs type may not be preserved on IEEE platforms (silent NaN " +"become quiet), for example on x86 systems in 32-bit mode." +msgstr "" + +#: ../../c-api/float.rst:102 +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 "" + +#: ../../c-api/float.rst:110 +msgid "Pack functions" +msgstr "" + +#: ../../c-api/float.rst:112 +msgid "" +"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is " +"an :c:expr:`int` argument, non-zero if you want the bytes string in little-" +"endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero " +"if you want big-endian format (exponent first, at *p*). " +"The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: " +"it is equal to ``1`` on big endian processor, or ``0`` on little endian " +"processor." +msgstr "" + +#: ../../c-api/float.rst:119 +msgid "" +"Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " +"most likely :exc:`OverflowError`)." +msgstr "" + +#: ../../c-api/float.rst:122 +msgid "There are two problems on non-IEEE platforms:" +msgstr "" + +#: ../../c-api/float.rst:124 +msgid "What this does is undefined if *x* is a NaN or infinity." +msgstr "" + +#: ../../c-api/float.rst:125 +msgid "``-0.0`` and ``+0.0`` produce the same bytes string." +msgstr "" + +#: ../../c-api/float.rst:129 +msgid "Pack a C double as the IEEE 754 binary16 half-precision format." +msgstr "" + +#: ../../c-api/float.rst:133 +msgid "Pack a C double as the IEEE 754 binary32 single precision format." +msgstr "" + +#: ../../c-api/float.rst:137 +msgid "Pack a C double as the IEEE 754 binary64 double precision format." +msgstr "" + +#: ../../c-api/float.rst:141 +msgid "Unpack functions" +msgstr "" + +#: ../../c-api/float.rst:143 +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 "" + +#: ../../c-api/float.rst:150 +msgid "" +"Return value: The unpacked double. On error, this is ``-1.0`` " +"and :c:func:`PyErr_Occurred` is true (and an exception is set, most " +"likely :exc:`OverflowError`)." +msgstr "" + +#: ../../c-api/float.rst:154 +msgid "" +"Note that on a non-IEEE platform this will refuse to unpack a bytes string " +"that represents a NaN or infinity." +msgstr "" + +#: ../../c-api/float.rst:159 +msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." +msgstr "" + +#: ../../c-api/float.rst:163 +msgid "Unpack the IEEE 754 binary32 single precision format as a C double." +msgstr "" + +#: ../../c-api/float.rst:167 +msgid "Unpack the IEEE 754 binary64 double precision format as a C double." +msgstr "" + +#: ../../c-api/float.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/float.rst:8 +msgid "floating-point" +msgstr "" diff --git a/c-api/frame.po b/c-api/frame.po new file mode 100644 index 0000000..f091c7a --- /dev/null +++ b/c-api/frame.po @@ -0,0 +1,216 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/frame.rst:4 +msgid "Frame Objects" +msgstr "" + +#: ../../c-api/frame.rst:8 +msgid "The C structure of the objects used to describe frame objects." +msgstr "" + +#: ../../c-api/frame.rst:10 +msgid "There are no public members in this structure." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/frame.rst:20 +msgid "See also :ref:`Reflection `." +msgstr "" + +#: ../../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 "" + +#: ../../c-api/frame.rst:29 +msgid "" +"Previously, this type was only available after including ````." +msgstr "" + +#: ../../c-api/frame.rst:34 +msgid "Return non-zero if *obj* is a frame object." +msgstr "" + +#: ../../c-api/frame.rst:38 +msgid "" +"Previously, this function was only available after including " +"````." +msgstr "" + +#: ../../c-api/frame.rst:43 +msgid "Get the *frame* next outer frame." +msgstr "" + +#: ../../c-api/frame.rst:45 +msgid "" +"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame." +msgstr "" + +#: ../../c-api/frame.rst:53 +msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." +msgstr "" + +#: ../../c-api/frame.rst:55 ../../c-api/frame.rst:86 +msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." +msgstr "" + +#: ../../c-api/frame.rst:62 +msgid "Get the *frame* code." +msgstr "" + +#: ../../c-api/frame.rst:64 ../../c-api/frame.rst:130 +msgid "Return a :term:`strong reference`." +msgstr "" + +#: ../../c-api/frame.rst:66 +msgid "The result (frame code) cannot be ``NULL``." +msgstr "" + +#: ../../c-api/frame.rst:73 +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 "" + +#: ../../c-api/frame.rst:77 +msgid "Return a :term:`strong reference`, or ``NULL``." +msgstr "" + +#: ../../c-api/frame.rst:84 +msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." +msgstr "" + +#: ../../c-api/frame.rst:93 +msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." +msgstr "" + +#: ../../c-api/frame.rst:95 +msgid "Returns -1 if ``frame.f_lasti`` is ``None``." +msgstr "" + +#: ../../c-api/frame.rst:102 +msgid "Get the variable *name* of *frame*." +msgstr "" + +#: ../../c-api/frame.rst:104 +msgid "Return a :term:`strong reference` to the variable value on success." +msgstr "" + +#: ../../c-api/frame.rst:105 +msgid "" +"Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." +msgstr "" + +#: ../../c-api/frame.rst:106 +msgid "Raise an exception and return ``NULL`` on error." +msgstr "" + +#: ../../c-api/frame.rst:108 +msgid "*name* type must be a :class:`str`." +msgstr "" + +#: ../../c-api/frame.rst:115 +msgid "" +"Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " +"encoded in UTF-8." +msgstr "" + +#: ../../c-api/frame.rst:123 +msgid "" +"Get the *frame*'s :attr:`~frame.f_locals` attribute. If the frame refers to " +"an :term:`optimized scope`, this returns a write-through proxy object that " +"allows modifying the locals. In all other cases (classes, " +"modules, :func:`exec`, :func:`eval`) it returns the mapping representing the " +"frame locals directly (as described for :func:`locals`)." +msgstr "" + +#: ../../c-api/frame.rst:134 +msgid "" +"As part of :pep:`667`, return an instance " +"of :c:var:`PyFrameLocalsProxy_Type`." +msgstr "" + +#: ../../c-api/frame.rst:140 +msgid "Return the line number that *frame* is currently executing." +msgstr "" + +#: ../../c-api/frame.rst:144 +msgid "Frame Locals Proxies" +msgstr "" + +#: ../../c-api/frame.rst:148 +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:154 +msgid "See :pep:`667` for more information." +msgstr "" + +#: ../../c-api/frame.rst:158 +msgid "The type of frame :func:`locals` proxy objects." +msgstr "" + +#: ../../c-api/frame.rst:162 +msgid "Return non-zero if *obj* is a frame :func:`locals` proxy." +msgstr "" + +#: ../../c-api/frame.rst:165 +msgid "Internal Frames" +msgstr "" + +#: ../../c-api/frame.rst:167 +msgid "Unless using :pep:`523`, you will not need this." +msgstr "" + +#: ../../c-api/frame.rst:171 +msgid "The interpreter's internal frame representation." +msgstr "" + +#: ../../c-api/frame.rst:177 +msgid "Return a :term:`strong reference` to the code object for the frame." +msgstr "" + +#: ../../c-api/frame.rst:184 +msgid "Return the byte offset into the last executed instruction." +msgstr "" + +#: ../../c-api/frame.rst:191 +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 0000000..1e8f7f4 --- /dev/null +++ b/c-api/function.po @@ -0,0 +1,265 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/function.rst:6 +msgid "Function Objects" +msgstr "" + +#: ../../c-api/function.rst:10 +msgid "There are a few functions specific to Python functions." +msgstr "" + +#: ../../c-api/function.rst:15 +msgid "The C structure used for functions." +msgstr "" + +#: ../../c-api/function.rst:22 +msgid "" +"This is an instance of :c:type:`PyTypeObject` and represents the Python " +"function type. It is exposed to Python programmers as " +"``types.FunctionType``." +msgstr "" + +#: ../../c-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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/function.rst:57 +msgid "Return the code object associated with the function object *op*." +msgstr "" + +#: ../../c-api/function.rst:62 +msgid "Return the globals dictionary associated with the function object *op*." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../c-api/function.rst:86 ../../c-api/function.rst:116 +#: ../../c-api/function.rst:130 +msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." +msgstr "" + +#: ../../c-api/function.rst:91 +msgid "Set the vectorcall field of a given function object *func*." +msgstr "" + +#: ../../c-api/function.rst:93 +msgid "" +"Warning: extensions using this API must preserve the behavior of the " +"unaltered (default) vectorcall function!" +msgstr "" + +#: ../../c-api/function.rst:101 +msgid "" +"Return the keyword-only argument default values of the function object *op*. " +"This can be a dictionary of arguments or ``NULL``." +msgstr "" + +#: ../../c-api/function.rst:107 +msgid "" +"Return the closure associated with the function object *op*. This can be " +"``NULL`` or a tuple of cell objects." +msgstr "" + +#: ../../c-api/function.rst:113 +msgid "" +"Set the closure associated with the function object *op*. *closure* must be " +"``Py_None`` or a tuple of cell objects." +msgstr "" + +#: ../../c-api/function.rst:121 +msgid "" +"Return the annotations of the function object *op*. This can be a mutable " +"dictionary or ``NULL``." +msgstr "" + +#: ../../c-api/function.rst:127 +msgid "" +"Set the annotations for the function object *op*. *annotations* must be a " +"dictionary or ``Py_None``." +msgstr "" + +#: ../../c-api/function.rst:141 +msgid "" +"These functions are similar to their ``PyFunction_Get*`` counterparts, but " +"do not do type checking. Passing anything other than an instance " +"of :c:data:`PyFunction_Type` is undefined behavior." +msgstr "" + +#: ../../c-api/function.rst:148 +msgid "" +"Register *callback* as a function watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " +"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../../c-api/function.rst:158 +msgid "" +"Clear watcher identified by *watcher_id* previously returned " +"from :c:func:`PyFunction_AddWatcher` for the current interpreter. Return " +"``0`` on success, or ``-1`` and set an exception on error (e.g. if the " +"given *watcher_id* was never registered.)" +msgstr "" + +#: ../../c-api/function.rst:168 +msgid "Enumeration of possible function watcher events:" +msgstr "" + +#: ../../c-api/function.rst:170 +msgid "``PyFunction_EVENT_CREATE``" +msgstr "``PyFunction_EVENT_CREATE``" + +#: ../../c-api/function.rst:171 +msgid "``PyFunction_EVENT_DESTROY``" +msgstr "``PyFunction_EVENT_DESTROY``" + +#: ../../c-api/function.rst:172 +msgid "``PyFunction_EVENT_MODIFY_CODE``" +msgstr "``PyFunction_EVENT_MODIFY_CODE``" + +#: ../../c-api/function.rst:173 +msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_DEFAULTS``" + +#: ../../c-api/function.rst:174 +msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" + +#: ../../c-api/function.rst:181 +msgid "Type of a function watcher callback function." +msgstr "" + +#: ../../c-api/function.rst:183 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " +"then *new_value* will be ``NULL``. Otherwise, *new_value* will hold " +"a :term:`borrowed reference` to the new value that is about to be stored in " +"*func* for the attribute that is being modified." +msgstr "" + +#: ../../c-api/function.rst:188 +msgid "" +"The callback may inspect but must not modify *func*; doing so could have " +"unpredictable effects, including infinite recursion." +msgstr "" + +#: ../../c-api/function.rst:191 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " +"after *func* has been fully initialized. Otherwise, the callback is invoked " +"before the modification to *func* takes place, so the prior state of *func* " +"can be inspected. The runtime is permitted to optimize away the creation of " +"function objects when possible. In such cases no event will be emitted. " +"Although this creates the possibility of an observable difference of runtime " +"behavior depending on optimization decisions, it does not change the " +"semantics of the Python code being executed." +msgstr "" + +#: ../../c-api/function.rst:200 +msgid "" +"If *event* is ``PyFunction_EVENT_DESTROY``, Taking a reference in the " +"callback to the about-to-be-destroyed function will resurrect it, preventing " +"it from being freed at this time. When the resurrected object is destroyed " +"later, any watcher callbacks active at that time will be called again." +msgstr "" + +#: ../../c-api/function.rst:205 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../../c-api/function.rst:209 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../../c-api/function.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/function.rst:8 +msgid "function" +msgstr "" + +#: ../../c-api/function.rst:20 +msgid "MethodType (in module types)" +msgstr "" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po new file mode 100644 index 0000000..aab4001 --- /dev/null +++ b/c-api/gcsupport.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/gcsupport.rst:6 +msgid "Supporting Cyclic Garbage Collection" +msgstr "" + +#: ../../c-api/gcsupport.rst:8 +msgid "" +"Python's support for detecting and collecting garbage which involves " +"circular references requires support from object types which are " +"\"containers\" for other objects which may also be containers. Types which " +"do not store references to other objects, or which only store references to " +"atomic types (such as numbers or strings), do not need to provide any " +"explicit support for garbage collection." +msgstr "" + +#: ../../c-api/gcsupport.rst:15 +msgid "" +"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " +"the type object must include the :c:macro:`Py_TPFLAGS_HAVE_GC` and provide " +"an implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " +"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " +"implementation must also be provided." +msgstr "" + +#: ../../c-api/gcsupport.rst:21 +msgid ":c:macro:`Py_TPFLAGS_HAVE_GC`" +msgstr "" + +#: ../../c-api/gcsupport.rst:22 +msgid "" +"Objects with a type with this flag set must conform with the rules " +"documented here. For convenience these objects will be referred to as " +"container objects." +msgstr "" + +#: ../../c-api/gcsupport.rst:26 +msgid "Constructors for container types must conform to two rules:" +msgstr "" + +#: ../../c-api/gcsupport.rst:28 +msgid "" +"The memory for the object must be allocated using :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`." +msgstr "" + +#: ../../c-api/gcsupport.rst:31 +msgid "" +"Once all the fields which may contain references to other containers are " +"initialized, it must call :c:func:`PyObject_GC_Track`." +msgstr "" + +#: ../../c-api/gcsupport.rst:34 +msgid "" +"Similarly, the deallocator for the object must conform to a similar pair of " +"rules:" +msgstr "" + +#: ../../c-api/gcsupport.rst:37 +msgid "" +"Before fields which refer to other containers are " +"invalidated, :c:func:`PyObject_GC_UnTrack` must be called." +msgstr "" + +#: ../../c-api/gcsupport.rst:40 +msgid "" +"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." +msgstr "" + +#: ../../c-api/gcsupport.rst:43 +msgid "" +"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least " +"a :c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from " +"its subclass or subclasses." +msgstr "" + +#: ../../c-api/gcsupport.rst:47 +msgid "" +"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call " +"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the " +"interpreter will automatically populate " +"the :c:member:`~PyTypeObject.tp_flags`, :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields if the type inherits from a " +"class that implements the garbage collector protocol and the child class " +"does *not* include the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." +msgstr "" + +#: ../../c-api/gcsupport.rst:57 +msgid "" +"Analogous to :c:macro:`PyObject_New` but for container objects with " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../../c-api/gcsupport.rst: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 "" + +#: ../../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-api/gcsupport.rst:74 +msgid ":c:macro:`PyObject_New`" +msgstr "" + +#: ../../c-api/gcsupport.rst:75 ../../c-api/gcsupport.rst:99 +#: ../../c-api/gcsupport.rst:193 +msgid ":c:func:`PyType_GenericAlloc`" +msgstr "" + +#: ../../c-api/gcsupport.rst:76 ../../c-api/gcsupport.rst:100 +msgid ":c:member:`~PyTypeObject.tp_alloc`" +msgstr "" + +#: ../../c-api/gcsupport.rst:81 +msgid "" +"Analogous to :c:macro:`PyObject_NewVar` but for container objects with " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../../c-api/gcsupport.rst:98 +msgid ":c:macro:`PyObject_NewVar`" +msgstr "" + +#: ../../c-api/gcsupport.rst:105 +msgid "" +"Analogous to :c:macro:`PyObject_GC_New` but allocates *extra_size* bytes at " +"the end of the object (at offset :c:member:`~PyTypeObject.tp_basicsize`). " +"The allocated memory is initialized to zeros, except for the :c:type:`Python " +"object header `." +msgstr "" + +#: ../../c-api/gcsupport.rst:111 +msgid "" +"The extra data will be deallocated with the object, but otherwise it is not " +"managed by Python." +msgstr "" + +#: ../../c-api/gcsupport.rst:114 +msgid "" +"Memory allocated by this function must be freed " +"with :c:func:`PyObject_GC_Del` (usually called via the " +"object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" + +#: ../../c-api/gcsupport.rst:119 +msgid "" +"The function is marked as unstable because the final mechanism for reserving " +"extra data after an instance is not yet decided. For allocating a variable " +"number of fields, prefer using :c:type:`PyVarObject` " +"and :c:member:`~PyTypeObject.tp_itemsize` instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:130 +msgid "" +"Resize an object allocated by :c:macro:`PyObject_NewVar`. Returns the " +"resized object of type ``TYPE*`` (refers to any C type) or ``NULL`` on " +"failure." +msgstr "" + +#: ../../c-api/gcsupport.rst:134 +msgid "" +"*op* must be of type :c:expr:`PyVarObject *` and must not be tracked by the " +"collector yet. *newsize* must be of type :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/gcsupport.rst:141 +msgid "" +"Adds the object *op* to the set of container objects tracked by the " +"collector. The collector can run at unexpected times so objects must be " +"valid while being tracked. This should be called once all the fields " +"followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, " +"usually near the end of the constructor." +msgstr "" + +#: ../../c-api/gcsupport.rst:150 +msgid "" +"Returns non-zero if the object implements the garbage collector protocol, " +"otherwise returns 0." +msgstr "" + +#: ../../c-api/gcsupport.rst:153 +msgid "" +"The object cannot be tracked by the garbage collector if this function " +"returns 0." +msgstr "" + +#: ../../c-api/gcsupport.rst:158 +msgid "" +"Returns 1 if the object type of *op* implements the GC protocol and *op* is " +"being currently tracked by the garbage collector and 0 otherwise." +msgstr "" + +#: ../../c-api/gcsupport.rst:161 +msgid "This is analogous to the Python function :func:`gc.is_tracked`." +msgstr "" + +#: ../../c-api/gcsupport.rst:168 +msgid "" +"Returns 1 if the object type of *op* implements the GC protocol and *op* has " +"been already finalized by the garbage collector and 0 otherwise." +msgstr "" + +#: ../../c-api/gcsupport.rst:171 +msgid "This is analogous to the Python function :func:`gc.is_finalized`." +msgstr "" + +#: ../../c-api/gcsupport.rst:178 +msgid "" +"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`." +msgstr "" + +#: ../../c-api/gcsupport.rst:181 +msgid "" +"Do not call this directly to free an object's memory; call the " +"type's :c:member:`~PyTypeObject.tp_free` slot instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:184 +msgid "" +"Do not use this for memory allocated " +"by :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, or related " +"allocation functions; use :c:func:`PyObject_Free` instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:190 +msgid ":c:func:`PyObject_Free` is the non-GC equivalent of this function." +msgstr "" + +#: ../../c-api/gcsupport.rst:191 +msgid ":c:macro:`PyObject_GC_New`" +msgstr "" + +#: ../../c-api/gcsupport.rst:192 +msgid ":c:macro:`PyObject_GC_NewVar`" +msgstr "" + +#: ../../c-api/gcsupport.rst:194 +msgid ":c:member:`~PyTypeObject.tp_free`" +msgstr "" + +#: ../../c-api/gcsupport.rst:199 +msgid "" +"Remove the object *op* from the set of container objects tracked by the " +"collector. Note that :c:func:`PyObject_GC_Track` can be called again on " +"this object to add it back to the set of tracked objects. The deallocator " +"(:c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the " +"object before any of the fields used by " +"the :c:member:`~PyTypeObject.tp_traverse` handler become invalid." +msgstr "" + +#: ../../c-api/gcsupport.rst:208 +msgid "" +"The :c:func:`!_PyObject_GC_TRACK` and :c:func:`!_PyObject_GC_UNTRACK` macros " +"have been removed from the public C API." +msgstr "" + +#: ../../c-api/gcsupport.rst:211 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " +"parameter of this type:" +msgstr "" + +#: ../../c-api/gcsupport.rst:216 +msgid "" +"Type of the visitor function passed to " +"the :c:member:`~PyTypeObject.tp_traverse` handler. The function should be " +"called with an object to traverse as *object* and the third parameter to " +"the :c:member:`~PyTypeObject.tp_traverse` handler as *arg*. The Python core " +"uses several visitor functions to implement cyclic garbage detection; it's " +"not expected that users will need to write their own visitor functions." +msgstr "" + +#: ../../c-api/gcsupport.rst:223 +msgid "" +"The :c:member:`~PyTypeObject.tp_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 "" +"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:242 +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:247 +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:255 +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:261 +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:270 +msgid "Controlling the Garbage Collector State" +msgstr "" + +#: ../../c-api/gcsupport.rst:272 +msgid "" +"The C-API provides the following functions for controlling garbage " +"collection runs." +msgstr "" + +#: ../../c-api/gcsupport.rst:277 +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:280 +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:290 +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:298 +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:306 +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:313 +msgid "Querying Garbage Collector State" +msgstr "" + +#: ../../c-api/gcsupport.rst:315 +msgid "" +"The C-API provides the following interface for querying information about " +"the garbage collector." +msgstr "" + +#: ../../c-api/gcsupport.rst:320 +msgid "" +"Run supplied *callback* on all live GC-capable objects. *arg* is passed " +"through to all invocations of *callback*." +msgstr "" + +#: ../../c-api/gcsupport.rst:324 +msgid "" +"If new objects are (de)allocated by the callback it is undefined if they " +"will be visited." +msgstr "" + +#: ../../c-api/gcsupport.rst:327 +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:335 +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 0000000..3a4c5f0 --- /dev/null +++ b/c-api/gen.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/gen.rst:6 +msgid "Generator Objects" +msgstr "" + +#: ../../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 "" + +#: ../../c-api/gen.rst:15 +msgid "The C structure used for generator objects." +msgstr "" + +#: ../../c-api/gen.rst:20 +msgid "The type object corresponding to generator objects." +msgstr "" + +#: ../../c-api/gen.rst:25 +msgid "" +"Return true if *ob* is a generator object; *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" + +#: ../../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 "" + +#: ../../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 "" + +#: ../../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 "" diff --git a/c-api/hash.po b/c-api/hash.po new file mode 100644 index 0000000..410672b --- /dev/null +++ b/c-api/hash.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/hash.rst:4 +msgid "PyHash API" +msgstr "" + +#: ../../c-api/hash.rst:6 +msgid "" +"See also the :c:member:`PyTypeObject.tp_hash` member and :ref:`numeric-hash`." +msgstr "" + +#: ../../c-api/hash.rst:10 +msgid "Hash value type: signed integer." +msgstr "" + +#: ../../c-api/hash.rst:16 +msgid "Hash value type: unsigned integer." +msgstr "" + +#: ../../c-api/hash.rst:22 +msgid "" +"The `Mersenne prime `_ ``P = " +"2**n -1``, used for numeric hash scheme." +msgstr "" + +#: ../../c-api/hash.rst:28 +msgid "The exponent ``n`` of ``P`` in :c:macro:`PyHASH_MODULUS`." +msgstr "" + +#: ../../c-api/hash.rst:34 +msgid "Prime multiplier used in string and various other hashes." +msgstr "" + +#: ../../c-api/hash.rst:40 +msgid "The hash value returned for a positive infinity." +msgstr "" + +#: ../../c-api/hash.rst:46 +msgid "The multiplier used for the imaginary part of a complex number." +msgstr "" + +#: ../../c-api/hash.rst:52 +msgid "Hash function definition used by :c:func:`PyHash_GetFuncDef`." +msgstr "" + +#: ../../c-api/hash.rst:60 +msgid "Hash function name (UTF-8 encoded string)." +msgstr "" + +#: ../../c-api/hash.rst:64 +msgid "Internal size of the hash value in bits." +msgstr "" + +#: ../../c-api/hash.rst:68 +msgid "Size of seed input in bits." +msgstr "" + +#: ../../c-api/hash.rst:75 +msgid "Get the hash function definition." +msgstr "" + +#: ../../c-api/hash.rst:78 +msgid ":pep:`456` \"Secure and interchangeable hash algorithm\"." +msgstr "" + +#: ../../c-api/hash.rst:85 +msgid "" +"Hash a pointer value: process the pointer value as an integer (cast it to " +"``uintptr_t`` internally). The pointer is not dereferenced." +msgstr "" + +#: ../../c-api/hash.rst:88 +msgid "The function cannot fail: it cannot return ``-1``." +msgstr "" + +#: ../../c-api/hash.rst:95 +msgid "" +"Compute and return the hash value of a buffer of *len* bytes starting at " +"address *ptr*. The hash is guaranteed to match that " +"of :class:`bytes`, :class:`memoryview`, and other built-in objects that " +"implement the :ref:`buffer protocol `." +msgstr "" + +#: ../../c-api/hash.rst:100 +msgid "" +"Use this function to implement hashing for immutable objects " +"whose :c:member:`~PyTypeObject.tp_richcompare` function compares to another " +"object's buffer." +msgstr "" + +#: ../../c-api/hash.rst:104 +msgid "*len* must be greater than or equal to ``0``." +msgstr "" + +#: ../../c-api/hash.rst:106 +msgid "This function always succeeds." +msgstr "" + +#: ../../c-api/hash.rst:113 +msgid "" +"Generic hashing function that is meant to be put into a type object's " +"``tp_hash`` slot. Its result only depends on the object's identity." +msgstr "" + +#: ../../c-api/hash.rst:118 +msgid "In CPython, it is equivalent to :c:func:`Py_HashPointer`." +msgstr "" diff --git a/c-api/import.po b/c-api/import.po new file mode 100644 index 0000000..8b80f02 --- /dev/null +++ b/c-api/import.po @@ -0,0 +1,431 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/import.rst:6 +msgid "Importing Modules" +msgstr "" + +#: ../../c-api/import.rst:16 +msgid "" +"This is a wrapper around :c:func:`PyImport_Import()` which takes " +"a :c:expr:`const char *` as an argument instead of a :c:expr:`PyObject *`." +msgstr "" + +#: ../../c-api/import.rst:21 +msgid "This function is a deprecated alias of :c:func:`PyImport_ImportModule`." +msgstr "" + +#: ../../c-api/import.rst:23 +msgid "" +"This function used to fail immediately when the import lock was held by " +"another thread. In Python 3.3 though, the locking scheme switched to per-" +"module locks for most purposes, so this function's special behaviour isn't " +"needed anymore." +msgstr "" + +#: ../../c-api/import.rst:29 +msgid "Use :c:func:`PyImport_ImportModule` instead." +msgstr "" + +#: ../../c-api/import.rst:37 +msgid "" +"Import a module. This is best described by referring to the built-in Python " +"function :func:`__import__`." +msgstr "" + +#: ../../c-api/import.rst:40 ../../c-api/import.rst:56 +msgid "" +"The return value is a new reference to the imported module or top-level " +"package, or ``NULL`` with an exception set on failure. Like " +"for :func:`__import__`, the return value when a submodule of a package was " +"requested is normally the top-level package, unless a non-empty *fromlist* " +"was given." +msgstr "" + +#: ../../c-api/import.rst:46 +msgid "" +"Failing imports remove incomplete module objects, like " +"with :c:func:`PyImport_ImportModule`." +msgstr "" + +#: ../../c-api/import.rst:52 +msgid "" +"Import a module. This is best described by referring to the built-in Python " +"function :func:`__import__`, as the standard :func:`__import__` function " +"calls this function directly." +msgstr "" + +#: ../../c-api/import.rst:66 +msgid "" +"Similar to :c:func:`PyImport_ImportModuleLevelObject`, but the name is a " +"UTF-8 encoded string instead of a Unicode object." +msgstr "" + +#: ../../c-api/import.rst:69 +msgid "Negative values for *level* are no longer accepted." +msgstr "" + +#: ../../c-api/import.rst:74 +msgid "" +"This is a higher-level interface that calls the current \"import hook " +"function\" (with an explicit *level* of 0, meaning absolute import). It " +"invokes the :func:`__import__` function from the ``__builtins__`` of the " +"current globals. This means that the import is done using whatever import " +"hooks are installed in the current environment." +msgstr "" + +#: ../../c-api/import.rst:80 +msgid "This function always uses absolute imports." +msgstr "" + +#: ../../c-api/import.rst:85 +msgid "" +"Reload a module. Return a new reference to the reloaded module, or ``NULL`` " +"with an exception set on failure (the module still exists in this case)." +msgstr "" + +#: ../../c-api/import.rst:91 +msgid "Return the module object corresponding to a module name." +msgstr "" + +#: ../../c-api/import.rst:93 +msgid "" +"The *name* argument may be of the form ``package.module``. First check the " +"modules dictionary if there's one there, and if not, create a new one and " +"insert it in the modules dictionary." +msgstr "" + +#: ../../c-api/import.rst:97 +msgid "" +"Return a :term:`strong reference` to the module on success. Return ``NULL`` " +"with an exception set on failure." +msgstr "" + +#: ../../c-api/import.rst:100 +msgid "The module name *name* is decoded from UTF-8." +msgstr "" + +#: ../../c-api/import.rst:102 +msgid "" +"This function does not load or import the module; if the module wasn't " +"already loaded, you will get an empty module object. " +"Use :c:func:`PyImport_ImportModule` or one of its variants to import a " +"module. Package structures implied by a dotted name for *name* are not " +"created if not already present." +msgstr "" + +#: ../../c-api/import.rst:113 +msgid "" +"Similar to :c:func:`PyImport_AddModuleRef`, but return a :term:`borrowed " +"reference` and *name* is a Python :class:`str` object." +msgstr "" + +#: ../../c-api/import.rst:121 +msgid "" +"Similar to :c:func:`PyImport_AddModuleRef`, but return a :term:`borrowed " +"reference`." +msgstr "" + +#: ../../c-api/import.rst:129 +msgid "" +"Given a module name (possibly of the form ``package.module``) and a code " +"object read from a Python bytecode file or obtained from the built-in " +"function :func:`compile`, load the module. Return a new reference to the " +"module object, or ``NULL`` with an exception set if an error occurred. " +"*name* is removed from :data:`sys.modules` in error cases, even if *name* " +"was already in :data:`sys.modules` on entry " +"to :c:func:`PyImport_ExecCodeModule`. Leaving incompletely initialized " +"modules in :data:`sys.modules` is dangerous, as imports of such modules have " +"no way to know that the module object is an unknown (and probably damaged " +"with respect to the module author's intents) state." +msgstr "" + +#: ../../c-api/import.rst:139 +msgid "" +"The module's :attr:`~module.__spec__` and :attr:`~module.__loader__` will be " +"set, if not set already, with the appropriate values. The spec's loader " +"will be set to the module's :attr:`!__loader__` (if set) and to an instance " +"of :class:`~importlib.machinery.SourceFileLoader` otherwise." +msgstr "" + +#: ../../c-api/import.rst:144 +msgid "" +"The module's :attr:`~module.__file__` attribute will be set to the code " +"object's :attr:`~codeobject.co_filename`. If " +"applicable, :attr:`~module.__cached__` will also be set." +msgstr "" + +#: ../../c-api/import.rst:148 +msgid "" +"This function will reload the module if it was already imported. " +"See :c:func:`PyImport_ReloadModule` for the intended way to reload a module." +msgstr "" + +#: ../../c-api/import.rst:151 +msgid "" +"If *name* points to a dotted name of the form ``package.module``, any " +"package structures not already created will still not be created." +msgstr "" + +#: ../../c-api/import.rst:154 +msgid "" +"See also :c:func:`PyImport_ExecCodeModuleEx` " +"and :c:func:`PyImport_ExecCodeModuleWithPathnames`." +msgstr "" + +#: ../../c-api/import.rst:157 +msgid "" +"The setting of :attr:`~module.__cached__` and :attr:`~module.__loader__` is " +"deprecated. See :class:`~importlib.machinery.ModuleSpec` for alternatives." +msgstr "" + +#: ../../c-api/import.rst:165 +msgid "" +"Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`~module.__file__` " +"attribute of the module object is set to *pathname* if it is non-``NULL``." +msgstr "" + +#: ../../c-api/import.rst:168 +msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`." +msgstr "" + +#: ../../c-api/import.rst:173 +msgid "" +"Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`~module.__cached__` " +"attribute of the module object is set to *cpathname* if it is non-``NULL``. " +"Of the three functions, this is the preferred one to use." +msgstr "" + +#: ../../c-api/import.rst:179 +msgid "" +"Setting :attr:`~module.__cached__` is deprecated. " +"See :class:`~importlib.machinery.ModuleSpec` for alternatives." +msgstr "" + +#: ../../c-api/import.rst:186 +msgid "" +"Like :c:func:`PyImport_ExecCodeModuleObject`, but *name*, *pathname* and " +"*cpathname* are UTF-8 encoded strings. Attempts are also made to figure out " +"what the value for *pathname* should be from *cpathname* if the former is " +"set to ``NULL``." +msgstr "" + +#: ../../c-api/import.rst:192 +msgid "" +"Uses :func:`!imp.source_from_cache` in calculating the source path if only " +"the bytecode path is provided." +msgstr "" + +#: ../../c-api/import.rst:195 +msgid "No longer uses the removed :mod:`!imp` module." +msgstr "" + +#: ../../c-api/import.rst:201 +msgid "" +"Return the magic number for Python bytecode files (a.k.a. :file:`.pyc` " +"file). The magic number should be present in the first four bytes of the " +"bytecode file, in little-endian byte order. Returns ``-1`` on error." +msgstr "" + +#: ../../c-api/import.rst:205 +msgid "Return value of ``-1`` upon failure." +msgstr "" + +#: ../../c-api/import.rst:211 +msgid "" +"Return the magic tag string for :pep:`3147` format Python bytecode file " +"names. Keep in mind that the value at ``sys.implementation.cache_tag`` is " +"authoritative and should be used instead of this function." +msgstr "" + +#: ../../c-api/import.rst:219 +msgid "" +"Return the dictionary used for the module administration (a.k.a. " +"``sys.modules``). Note that this is a per-interpreter variable." +msgstr "" + +#: ../../c-api/import.rst:224 +msgid "" +"Return the already imported module with the given name. If the module has " +"not been imported yet then returns ``NULL`` but does not set an error. " +"Returns ``NULL`` and sets an error if the lookup failed." +msgstr "" + +#: ../../c-api/import.rst:232 +msgid "" +"Return a finder object for a :data:`sys.path`/:attr:`!pkg.__path__` item " +"*path*, possibly by fetching it from the :data:`sys.path_importer_cache` " +"dict. If it wasn't yet cached, traverse :data:`sys.path_hooks` until a hook " +"is found that can handle the path item. Return ``None`` if no hook could; " +"this tells our caller that the :term:`path based finder` could not find a " +"finder for this path item. Cache the result " +"in :data:`sys.path_importer_cache`. Return a new reference to the finder " +"object." +msgstr "" + +#: ../../c-api/import.rst:243 +msgid "" +"Load a frozen module named *name*. Return ``1`` for success, ``0`` if the " +"module is not found, and ``-1`` with an exception set if the initialization " +"failed. To access the imported module on a successful load, " +"use :c:func:`PyImport_ImportModule`. (Note the misnomer --- this function " +"would reload the module if it was already imported.)" +msgstr "" + +#: ../../c-api/import.rst:251 +msgid "The ``__file__`` attribute is no longer set on the module." +msgstr "" + +#: ../../c-api/import.rst:257 +msgid "" +"Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a " +"UTF-8 encoded string instead of a Unicode object." +msgstr "" + +#: ../../c-api/import.rst:265 +msgid "" +"This is the structure type definition for frozen module descriptors, as " +"generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the " +"Python source distribution). Its definition, found in :file:`Include/" +"import.h`, is::" +msgstr "" + +#: ../../c-api/import.rst:270 +msgid "" +"struct _frozen {\n" +" const char *name;\n" +" const unsigned char *code;\n" +" int size;\n" +" bool is_package;\n" +"};" +msgstr "" + +#: ../../c-api/import.rst:277 +msgid "" +"The new ``is_package`` field indicates whether the module is a package or " +"not. This replaces setting the ``size`` field to a negative value." +msgstr "" + +#: ../../c-api/import.rst:283 +msgid "" +"This pointer is initialized to point to an array of :c:struct:`_frozen` " +"records, terminated by one whose members are all ``NULL`` or zero. When a " +"frozen module is imported, it is searched in this table. Third-party code " +"could play tricks with this to provide a dynamically created collection of " +"frozen modules." +msgstr "" + +#: ../../c-api/import.rst:291 +msgid "" +"Add a single module to the existing table of built-in modules. This is a " +"convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning " +"``-1`` if the table could not be extended. The new module can be imported " +"by the name *name*, and uses the function *initfunc* as the initialization " +"function called on the first attempted import. This should be called " +"before :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/import.rst:301 +msgid "" +"Structure describing a single entry in the list of built-in modules. " +"Programs which embed Python may use an array of these structures in " +"conjunction with :c:func:`PyImport_ExtendInittab` to provide additional " +"built-in modules. The structure consists of two members:" +msgstr "" + +#: ../../c-api/import.rst:309 +msgid "The module name, as an ASCII encoded string." +msgstr "" + +#: ../../c-api/import.rst:313 +msgid "Initialization function for a module built into the interpreter." +msgstr "" + +#: ../../c-api/import.rst:318 +msgid "" +"Add a collection of modules to the table of built-in modules. The *newtab* " +"array must end with a sentinel entry which contains ``NULL`` for " +"the :c:member:`~_inittab.name` field; failure to provide the sentinel value " +"can result in a memory fault. Returns ``0`` on success or ``-1`` if " +"insufficient memory could be allocated to extend the internal table. In the " +"event of failure, no modules are added to the internal table. This must be " +"called before :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/import.rst:325 +msgid "" +"If Python is initialized multiple times, :c:func:`PyImport_AppendInittab` " +"or :c:func:`PyImport_ExtendInittab` must be called before each Python " +"initialization." +msgstr "" + +#: ../../c-api/import.rst:332 +msgid "Import the module *mod_name* and get its attribute *attr_name*." +msgstr "" + +#: ../../c-api/import.rst:334 +msgid "Names must be Python :class:`str` objects." +msgstr "" + +#: ../../c-api/import.rst:336 +msgid "" +"Helper function combining :c:func:`PyImport_Import` " +"and :c:func:`PyObject_GetAttr`. For example, it can raise :exc:`ImportError` " +"if the module is not found, and :exc:`AttributeError` if the attribute " +"doesn't exist." +msgstr "" + +#: ../../c-api/import.rst:345 +msgid "" +"Similar to :c:func:`PyImport_ImportModuleAttr`, but names are UTF-8 encoded " +"strings instead of Python :class:`str` objects." +msgstr "" + +#: ../../c-api/import.rst:11 +msgid "package variable" +msgstr "" + +#: ../../c-api/import.rst:11 +msgid "__all__" +msgstr "" + +#: ../../c-api/import.rst:11 +msgid "__all__ (package variable)" +msgstr "" + +#: ../../c-api/import.rst:11 +msgid "modules (in module sys)" +msgstr "" + +#: ../../c-api/import.rst:35 ../../c-api/import.rst:127 +msgid "built-in function" +msgstr "" + +#: ../../c-api/import.rst:35 +msgid "__import__" +msgstr "" + +#: ../../c-api/import.rst:127 +msgid "compile" +msgstr "" + +#: ../../c-api/import.rst:263 +msgid "freeze utility" +msgstr "" diff --git a/c-api/index.po b/c-api/index.po new file mode 100644 index 0000000..9e9410d --- /dev/null +++ b/c-api/index.po @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/index.rst:5 +msgid "Python/C API Reference Manual" +msgstr "" + +#: ../../c-api/index.rst:7 +msgid "" +"This manual documents the API used by C and C++ programmers who want to " +"write extension modules or embed Python. It is a companion " +"to :ref:`extending-index`, which describes the general principles of " +"extension writing but does not document the API functions in detail." +msgstr "" diff --git a/c-api/init.po b/c-api/init.po new file mode 100644 index 0000000..7fd82c3 --- /dev/null +++ b/c-api/init.po @@ -0,0 +1,3293 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/init.rst:8 +msgid "Initialization, Finalization, and Threads" +msgstr "" + +#: ../../c-api/init.rst:10 +msgid "" +"See :ref:`Python Initialization Configuration ` for details on " +"how to configure the interpreter prior to initialization." +msgstr "" + +#: ../../c-api/init.rst:16 +msgid "Before Python Initialization" +msgstr "" + +#: ../../c-api/init.rst:18 +msgid "" +"In an application embedding Python, the :c:func:`Py_Initialize` function " +"must be called before using any other Python/C API functions; with the " +"exception of a few functions and the :ref:`global configuration variables " +"`." +msgstr "" + +#: ../../c-api/init.rst:23 +msgid "" +"The following functions can be safely called before Python is initialized:" +msgstr "" + +#: ../../c-api/init.rst:25 +msgid "Functions that initialize the interpreter:" +msgstr "" + +#: ../../c-api/init.rst:27 +msgid ":c:func:`Py_Initialize`" +msgstr "" + +#: ../../c-api/init.rst:28 +msgid ":c:func:`Py_InitializeEx`" +msgstr "" + +#: ../../c-api/init.rst:29 +msgid ":c:func:`Py_InitializeFromConfig`" +msgstr "" + +#: ../../c-api/init.rst:30 +msgid ":c:func:`Py_BytesMain`" +msgstr "" + +#: ../../c-api/init.rst:31 +msgid ":c:func:`Py_Main`" +msgstr "" + +#: ../../c-api/init.rst:32 +msgid "the runtime pre-initialization functions covered in :ref:`init-config`" +msgstr "" + +#: ../../c-api/init.rst:34 +msgid "Configuration functions:" +msgstr "" + +#: ../../c-api/init.rst:36 +msgid ":c:func:`PyImport_AppendInittab`" +msgstr "" + +#: ../../c-api/init.rst:37 +msgid ":c:func:`PyImport_ExtendInittab`" +msgstr "" + +#: ../../c-api/init.rst:38 +msgid ":c:func:`!PyInitFrozenExtensions`" +msgstr "" + +#: ../../c-api/init.rst:39 +msgid ":c:func:`PyMem_SetAllocator`" +msgstr "" + +#: ../../c-api/init.rst:40 +msgid ":c:func:`PyMem_SetupDebugHooks`" +msgstr "" + +#: ../../c-api/init.rst:41 +msgid ":c:func:`PyObject_SetArenaAllocator`" +msgstr "" + +#: ../../c-api/init.rst:42 +msgid ":c:func:`Py_SetProgramName`" +msgstr "" + +#: ../../c-api/init.rst:43 +msgid ":c:func:`Py_SetPythonHome`" +msgstr "" + +#: ../../c-api/init.rst:44 +msgid ":c:func:`PySys_ResetWarnOptions`" +msgstr "" + +#: ../../c-api/init.rst:45 +msgid "the configuration functions covered in :ref:`init-config`" +msgstr "" + +#: ../../c-api/init.rst:47 +msgid "Informative functions:" +msgstr "" + +#: ../../c-api/init.rst:49 ../../c-api/init.rst:57 +msgid ":c:func:`Py_IsInitialized`" +msgstr "" + +#: ../../c-api/init.rst:50 +msgid ":c:func:`PyMem_GetAllocator`" +msgstr "" + +#: ../../c-api/init.rst:51 +msgid ":c:func:`PyObject_GetArenaAllocator`" +msgstr "" + +#: ../../c-api/init.rst:52 +msgid ":c:func:`Py_GetBuildInfo`" +msgstr "" + +#: ../../c-api/init.rst:53 +msgid ":c:func:`Py_GetCompiler`" +msgstr "" + +#: ../../c-api/init.rst:54 +msgid ":c:func:`Py_GetCopyright`" +msgstr "" + +#: ../../c-api/init.rst:55 +msgid ":c:func:`Py_GetPlatform`" +msgstr "" + +#: ../../c-api/init.rst:56 +msgid ":c:func:`Py_GetVersion`" +msgstr "" + +#: ../../c-api/init.rst:59 +msgid "Utilities:" +msgstr "" + +#: ../../c-api/init.rst:61 +msgid ":c:func:`Py_DecodeLocale`" +msgstr "" + +#: ../../c-api/init.rst:62 +msgid "" +"the status reporting and utility functions covered in :ref:`init-config`" +msgstr "" + +#: ../../c-api/init.rst:64 +msgid "Memory allocators:" +msgstr "" + +#: ../../c-api/init.rst:66 +msgid ":c:func:`PyMem_RawMalloc`" +msgstr "" + +#: ../../c-api/init.rst:67 +msgid ":c:func:`PyMem_RawRealloc`" +msgstr "" + +#: ../../c-api/init.rst:68 +msgid ":c:func:`PyMem_RawCalloc`" +msgstr "" + +#: ../../c-api/init.rst:69 +msgid ":c:func:`PyMem_RawFree`" +msgstr "" + +#: ../../c-api/init.rst:71 +msgid "Synchronization:" +msgstr "" + +#: ../../c-api/init.rst:73 +msgid ":c:func:`PyMutex_Lock`" +msgstr "" + +#: ../../c-api/init.rst:74 +msgid ":c:func:`PyMutex_Unlock`" +msgstr "" + +#: ../../c-api/init.rst:78 +msgid "" +"Despite their apparent similarity to some of the functions listed above, the " +"following functions **should not be called** before the interpreter has been " +"initialized: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:`Py_GetProgramName`, :c:func:`PyEval_InitThreads`, " +"and :c:func:`Py_RunMain`." +msgstr "" + +#: ../../c-api/init.rst:90 +msgid "Global configuration variables" +msgstr "" + +#: ../../c-api/init.rst:92 +msgid "" +"Python has variables for the global configuration to control different " +"features and options. By default, these flags are controlled " +"by :ref:`command line options `." +msgstr "" + +#: ../../c-api/init.rst:96 +msgid "" +"When a flag is set by an option, the value of the flag is the number of " +"times that the option was set. For example, ``-b`` " +"sets :c:data:`Py_BytesWarningFlag` to 1 and ``-bb`` " +"sets :c:data:`Py_BytesWarningFlag` to 2." +msgstr "" + +#: ../../c-api/init.rst:102 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.bytes_warning` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:106 +msgid "" +"Issue a warning when comparing :class:`bytes` or :class:`bytearray` " +"with :class:`str` or :class:`bytes` with :class:`int`. Issue an error if " +"greater or equal to ``2``." +msgstr "" + +#: ../../c-api/init.rst:110 +msgid "Set by the :option:`-b` option." +msgstr "" + +#: ../../c-api/init.rst:116 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.parser_debug` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:120 +msgid "" +"Turn on parser debugging output (for expert only, depending on compilation " +"options)." +msgstr "" + +#: ../../c-api/init.rst:123 +msgid "" +"Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " +"variable." +msgstr "" + +#: ../../c-api/init.rst:130 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.write_bytecode` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:134 +msgid "" +"If set to non-zero, Python won't try to write ``.pyc`` files on the import " +"of source modules." +msgstr "" + +#: ../../c-api/init.rst:137 +msgid "" +"Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " +"environment variable." +msgstr "" + +#: ../../c-api/init.rst:144 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.pathconfig_warnings` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:148 +msgid "" +"Suppress error messages when calculating the module search path " +"in :c:func:`Py_GetPath`." +msgstr "" + +#: ../../c-api/init.rst:151 +msgid "Private flag used by ``_freeze_module`` and ``frozenmain`` programs." +msgstr "" + +#: ../../c-api/init.rst:157 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.hash_seed` " +"and :c:member:`PyConfig.use_hash_seed` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:162 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " +"a non-empty string." +msgstr "" + +#: ../../c-api/init.rst:165 +msgid "" +"If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " +"variable to initialize the secret hash seed." +msgstr "" + +#: ../../c-api/init.rst:172 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.use_environment` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:176 +msgid "" +"Ignore all :envvar:`!PYTHON*` environment variables, " +"e.g. :envvar:`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." +msgstr "" + +#: ../../c-api/init.rst:179 +msgid "Set by the :option:`-E` and :option:`-I` options." +msgstr "" + +#: ../../c-api/init.rst:185 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.inspect` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:189 +msgid "" +"When a script is passed as first argument or the :option:`-c` option is " +"used, enter interactive mode after executing the script or the command, even " +"when :data:`sys.stdin` does not appear to be a terminal." +msgstr "" + +#: ../../c-api/init.rst:193 +msgid "" +"Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " +"variable." +msgstr "" + +#: ../../c-api/init.rst:200 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.interactive` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:204 +msgid "Set by the :option:`-i` option." +msgstr "" + +#: ../../c-api/init.rst:210 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.isolated` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:214 +msgid "" +"Run Python in isolated mode. In isolated mode :data:`sys.path` contains " +"neither the script's directory nor the user's site-packages directory." +msgstr "" + +#: ../../c-api/init.rst:217 +msgid "Set by the :option:`-I` option." +msgstr "" + +#: ../../c-api/init.rst:225 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyPreConfig.legacy_windows_fs_encoding` should be used " +"instead, see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:229 +msgid "" +"If the flag is non-zero, use the ``mbcs`` encoding with ``replace`` error " +"handler, instead of the UTF-8 encoding with ``surrogatepass`` error handler, " +"for the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/init.rst:233 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " +"variable is set to a non-empty string." +msgstr "" + +#: ../../c-api/init.rst:236 +msgid "See :pep:`529` for more details." +msgstr "" + +#: ../../c-api/init.rst:238 ../../c-api/init.rst:256 +msgid "Availability" +msgstr "" + +#: ../../c-api/init.rst:244 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.legacy_windows_stdio` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:248 +msgid "" +"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!" +"io._WindowsConsoleIO` for :mod:`sys` standard streams." +msgstr "" + +#: ../../c-api/init.rst:251 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " +"is set to a non-empty string." +msgstr "" + +#: ../../c-api/init.rst:254 +msgid "See :pep:`528` for more details." +msgstr "" + +#: ../../c-api/init.rst:262 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.site_import` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:266 +msgid "" +"Disable the import of the module :mod:`site` and the site-dependent " +"manipulations of :data:`sys.path` that it entails. Also disable these " +"manipulations if :mod:`site` is explicitly imported later " +"(call :func:`site.main` if you want them to be triggered)." +msgstr "" + +#: ../../c-api/init.rst:271 +msgid "Set by the :option:`-S` option." +msgstr "" + +#: ../../c-api/init.rst:277 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.user_site_directory` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:281 +msgid "" +"Don't add the :data:`user site-packages directory ` " +"to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init.rst:284 +msgid "" +"Set by the :option:`-s` and :option:`-I` options, and " +"the :envvar:`PYTHONNOUSERSITE` environment variable." +msgstr "" + +#: ../../c-api/init.rst:291 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.optimization_level` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:295 +msgid "" +"Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " +"variable." +msgstr "" + +#: ../../c-api/init.rst:302 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.quiet` should be used instead, see :ref:`Python " +"Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:306 +msgid "" +"Don't display the copyright and version messages even in interactive mode." +msgstr "" + +#: ../../c-api/init.rst:308 +msgid "Set by the :option:`-q` option." +msgstr "" + +#: ../../c-api/init.rst:316 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.buffered_stdio` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:320 +msgid "Force the stdout and stderr streams to be unbuffered." +msgstr "" + +#: ../../c-api/init.rst:322 +msgid "" +"Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " +"environment variable." +msgstr "" + +#: ../../c-api/init.rst:329 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.verbose` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:333 +msgid "" +"Print a message each time a module is initialized, showing the place " +"(filename or built-in module) from which it is loaded. If greater or equal " +"to ``2``, print a message for each file that is checked for when searching " +"for a module. Also provides information on module cleanup at exit." +msgstr "" + +#: ../../c-api/init.rst:338 +msgid "" +"Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " +"variable." +msgstr "" + +#: ../../c-api/init.rst:345 +msgid "Initializing and finalizing the interpreter" +msgstr "" + +#: ../../c-api/init.rst:360 +msgid "" +"Initialize the Python interpreter. In an application embedding Python, " +"this should be called before using any other Python/C API functions; " +"see :ref:`Before Python Initialization ` for the few " +"exceptions." +msgstr "" + +#: ../../c-api/init.rst:364 +msgid "" +"This initializes the table of loaded modules (``sys.modules``), and creates " +"the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " +"also initializes the module search path (``sys.path``). It does not set " +"``sys.argv``; use the :ref:`Python Initialization Configuration ` API for that. This is a no-op when called for a second time " +"(without calling :c:func:`Py_FinalizeEx` first). There is no return value; " +"it is a fatal error if the initialization fails." +msgstr "" + +#: ../../c-api/init.rst:372 ../../c-api/init.rst:386 +msgid "" +"Use :c:func:`Py_InitializeFromConfig` to customize the :ref:`Python " +"Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:376 +msgid "" +"On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " +"will also affect non-Python uses of the console using the C Runtime." +msgstr "" + +#: ../../c-api/init.rst:382 +msgid "" +"This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " +"*initsigs* is ``0``, it skips initialization registration of signal " +"handlers, which may be useful when CPython is embedded as part of a larger " +"application." +msgstr "" + +#: ../../c-api/init.rst:392 +msgid "" +"Initialize Python from *config* configuration, as described in :ref:`init-" +"from-config`." +msgstr "" + +#: ../../c-api/init.rst:395 +msgid "" +"See the :ref:`init-config` section for details on pre-initializing the " +"interpreter, populating the runtime configuration structure, and querying " +"the returned status structure." +msgstr "" + +#: ../../c-api/init.rst:402 +msgid "" +"Return true (nonzero) when the Python interpreter has been initialized, " +"false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " +"false until :c:func:`Py_Initialize` is called again." +msgstr "" + +#: ../../c-api/init.rst:409 +msgid "" +"Return true (non-zero) if the main Python interpreter is :term:`shutting " +"down `. Return false (zero) otherwise." +msgstr "" + +#: ../../c-api/init.rst:417 +msgid "" +"Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " +"of Python/C API functions, and destroy all sub-interpreters " +"(see :c:func:`Py_NewInterpreter` below) that were created and not yet " +"destroyed since the last call to :c:func:`Py_Initialize`. This is a no-op " +"when called for a second time (without calling :c:func:`Py_Initialize` again " +"first)." +msgstr "" + +#: ../../c-api/init.rst:423 +msgid "" +"Since this is the reverse of :c:func:`Py_Initialize`, it should be called in " +"the same thread with the same interpreter active. That means the main " +"thread and the main interpreter. This should never be called " +"while :c:func:`Py_RunMain` is running." +msgstr "" + +#: ../../c-api/init.rst:428 +msgid "" +"Normally the return value is ``0``. If there were errors during finalization " +"(flushing buffered data), ``-1`` is returned." +msgstr "" + +#: ../../c-api/init.rst:432 +msgid "" +"Note that Python will do a best effort at freeing all memory allocated by " +"the Python interpreter. Therefore, any C-Extension should make sure to " +"correctly clean up all of the preveiously allocated PyObjects before using " +"them in subsequent calls to :c:func:`Py_Initialize`. Otherwise it could " +"introduce vulnerabilities and incorrect behavior." +msgstr "" + +#: ../../c-api/init.rst:438 +msgid "" +"This function is provided for a number of reasons. An embedding application " +"might want to restart Python without having to restart the application " +"itself. An application that has loaded the Python interpreter from a " +"dynamically loadable library (or DLL) might want to free all memory " +"allocated by Python before unloading the DLL. During a hunt for memory leaks " +"in an application a developer might want to free all memory allocated by " +"Python before exiting from the application." +msgstr "" + +#: ../../c-api/init.rst:446 +msgid "" +"**Bugs and caveats:** The destruction of modules and objects in modules is " +"done in random order; this may cause destructors (:meth:`~object.__del__` " +"methods) to fail when they depend on other objects (even functions) or " +"modules. Dynamically loaded extension modules loaded by Python are not " +"unloaded. Small amounts of memory allocated by the Python interpreter may " +"not be freed (if you find a leak, please report it). Memory tied up in " +"circular references between objects is not freed. Interned strings will all " +"be deallocated regardless of their reference count. Some memory allocated by " +"extension modules may not be freed. Some extensions may not work properly " +"if their initialization routine is called more than once; this can happen if " +"an application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` " +"more than once. :c:func:`Py_FinalizeEx` must not be called recursively from " +"within itself. Therefore, it must not be called by any code that may be run " +"as part of the interpreter shutdown process, such as :py:mod:`atexit` " +"handlers, object finalizers, or any code that may be run while flushing the " +"stdout and stderr files." +msgstr "" + +#: ../../c-api/init.rst:462 +msgid "" +"Raises an :ref:`auditing event ` " +"``cpython._PySys_ClearAuditHooks`` with no arguments." +msgstr "" + +#: ../../c-api/init.rst:469 +msgid "" +"This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " +"disregards the return value." +msgstr "" + +#: ../../c-api/init.rst:475 +msgid "" +"Similar to :c:func:`Py_Main` but *argv* is an array of bytes strings, " +"allowing the calling application to delegate the text decoding step to the " +"CPython runtime." +msgstr "" + +#: ../../c-api/init.rst:484 +msgid "" +"The main program for the standard interpreter, encapsulating a full " +"initialization/finalization cycle, as well as additional behaviour to " +"implement reading configurations settings from the environment and command " +"line, and then executing ``__main__`` in accordance with :ref:`using-on-" +"cmdline`." +msgstr "" + +#: ../../c-api/init.rst:490 +msgid "" +"This is made available for programs which wish to support the full CPython " +"command line interface, rather than just embedding a Python runtime in a " +"larger application." +msgstr "" + +#: ../../c-api/init.rst:494 +msgid "" +"The *argc* and *argv* parameters are similar to those which are passed to a " +"C program's :c:func:`main` function, except that the *argv* entries are " +"first converted to ``wchar_t`` using :c:func:`Py_DecodeLocale`. It is also " +"important to note that the argument list entries may be modified to point to " +"strings other than those passed in (however, the contents of the strings " +"pointed to by the argument list are not modified)." +msgstr "" + +#: ../../c-api/init.rst:501 +msgid "" +"The return value is ``2`` if the argument list does not represent a valid " +"Python command line, and otherwise the same as :c:func:`Py_RunMain`." +msgstr "" + +#: ../../c-api/init.rst:504 +msgid "" +"In terms of the CPython runtime configuration APIs documented in " +"the :ref:`runtime configuration ` section (and without " +"accounting for error handling), ``Py_Main`` is approximately equivalent to::" +msgstr "" + +#: ../../c-api/init.rst:508 +msgid "" +"PyConfig config;\n" +"PyConfig_InitPythonConfig(&config);\n" +"PyConfig_SetArgv(&config, argc, argv);\n" +"Py_InitializeFromConfig(&config);\n" +"PyConfig_Clear(&config);\n" +"\n" +"Py_RunMain();" +msgstr "" + +#: ../../c-api/init.rst:516 +msgid "" +"In normal usage, an embedding application will call this function *instead* " +"of calling :c:func:`Py_Initialize`, :c:func:`Py_InitializeEx` " +"or :c:func:`Py_InitializeFromConfig` directly, and all settings will be " +"applied as described elsewhere in this documentation. If this function is " +"instead called *after* a preceding runtime initialization API call, then " +"exactly which environmental and command line configuration settings will be " +"updated is version dependent (as it depends on which settings correctly " +"support being modified after they have already been set once when the " +"runtime was first initialized)." +msgstr "" + +#: ../../c-api/init.rst:529 +msgid "Executes the main module in a fully configured CPython runtime." +msgstr "" + +#: ../../c-api/init.rst:531 +msgid "" +"Executes the command (:c:member:`PyConfig.run_command`), the script " +"(:c:member:`PyConfig.run_filename`) or the module " +"(:c:member:`PyConfig.run_module`) specified on the command line or in the " +"configuration. If none of these values are set, runs the interactive Python " +"prompt (REPL) using the ``__main__`` module's global namespace." +msgstr "" + +#: ../../c-api/init.rst:537 +msgid "" +"If :c:member:`PyConfig.inspect` is not set (the default), the return value " +"will be ``0`` if the interpreter exits normally (that is, without raising an " +"exception), the exit status of an unhandled :exc:`SystemExit`, or ``1`` for " +"any other unhandled exception." +msgstr "" + +#: ../../c-api/init.rst:542 +msgid "" +"If :c:member:`PyConfig.inspect` is set (such as when the :option:`-i` option " +"is used), rather than returning when the interpreter exits, execution will " +"instead resume in an interactive Python prompt (REPL) using the ``__main__`` " +"module's global namespace. If the interpreter exited with an exception, it " +"is immediately raised in the REPL session. The function return value is then " +"determined by the way the *REPL session* terminates: ``0``, ``1``, or the " +"status of a :exc:`SystemExit`, as specified above." +msgstr "" + +#: ../../c-api/init.rst:550 +msgid "" +"This function always finalizes the Python interpreter before it returns." +msgstr "" + +#: ../../c-api/init.rst:552 +msgid "" +"See :ref:`Python Configuration ` for an example of a " +"customized Python that always runs in isolated mode " +"using :c:func:`Py_RunMain`." +msgstr "" + +#: ../../c-api/init.rst:558 +msgid "" +"Register an :mod:`atexit` callback for the target interpreter *interp*. This " +"is similar to :c:func:`Py_AtExit`, but takes an explicit interpreter and " +"data pointer for the callback." +msgstr "" + +#: ../../c-api/init.rst:562 +msgid "There must be an :term:`attached thread state` for *interp*." +msgstr "" + +#: ../../c-api/init.rst:567 +msgid "Process-wide parameters" +msgstr "" + +#: ../../c-api/init.rst:577 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.program_name` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:581 +msgid "" +"This function should be called before :c:func:`Py_Initialize` is called for " +"the first time, if it is called at all. It tells the interpreter the value " +"of the ``argv[0]`` argument to the :c:func:`main` function of the program " +"(converted to wide characters). This is used by :c:func:`Py_GetPath` and " +"some other functions below to find the Python run-time libraries relative to " +"the interpreter executable. The default value is ``'python'``. The " +"argument should point to a zero-terminated wide character string in static " +"storage whose contents will not change for the duration of the program's " +"execution. No code in the Python interpreter will change the contents of " +"this storage." +msgstr "" + +#: ../../c-api/init.rst:592 ../../c-api/init.rst:840 ../../c-api/init.rst:876 +#: ../../c-api/init.rst:902 +msgid "" +"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get " +"a :c:expr:`wchar_t*` string." +msgstr "" + +#: ../../c-api/init.rst:600 +msgid "" +"Return the program name set with :c:member:`PyConfig.program_name`, or the " +"default. The returned string points into static storage; the caller should " +"not modify its value." +msgstr "" + +#: ../../c-api/init.rst:604 ../../c-api/init.rst:627 ../../c-api/init.rst:675 +#: ../../c-api/init.rst:699 ../../c-api/init.rst:726 ../../c-api/init.rst:914 +msgid "" +"This function should not be called before :c:func:`Py_Initialize`, otherwise " +"it returns ``NULL``." +msgstr "" + +#: ../../c-api/init.rst:607 ../../c-api/init.rst:630 ../../c-api/init.rst:678 +#: ../../c-api/init.rst:702 ../../c-api/init.rst:731 ../../c-api/init.rst:917 +msgid "It now returns ``NULL`` if called before :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/init.rst:610 ../../c-api/init.rst:705 +msgid "" +"Use :c:func:`PyConfig_Get(\"executable\") ` " +"(:data:`sys.executable`) instead." +msgstr "" + +#: ../../c-api/init.rst:617 +msgid "" +"Return the *prefix* for installed platform-independent files. This is " +"derived through a number of complicated rules from the program name set " +"with :c:member:`PyConfig.program_name` and some environment variables; for " +"example, if the program name is ``'/usr/local/bin/python'``, the prefix is " +"``'/usr/local'``. The returned string points into static storage; the caller " +"should not modify its value. This corresponds to the :makevar:`prefix` " +"variable in the top-level :file:`Makefile` and the :option:`--prefix` " +"argument to the :program:`configure` script at build time. The value is " +"available to Python code as ``sys.base_prefix``. It is only useful on Unix. " +"See also the next function." +msgstr "" + +#: ../../c-api/init.rst:633 +msgid "" +"Use :c:func:`PyConfig_Get(\"base_prefix\") ` " +"(:data:`sys.base_prefix`) instead. Use :c:func:`PyConfig_Get(\"prefix\") " +"` (:data:`sys.prefix`) if :ref:`virtual environments ` need to be handled." +msgstr "" + +#: ../../c-api/init.rst:642 +msgid "" +"Return the *exec-prefix* for installed platform-*dependent* files. This is " +"derived through a number of complicated rules from the program name set " +"with :c:member:`PyConfig.program_name` and some environment variables; for " +"example, if the program name is ``'/usr/local/bin/python'``, the exec-prefix " +"is ``'/usr/local'``. The returned string points into static storage; the " +"caller should not modify its value. This corresponds to " +"the :makevar:`exec_prefix` variable in the top-level :file:`Makefile` and " +"the ``--exec-prefix`` argument to the :program:`configure` script at build " +"time. The value is available to Python code as ``sys.base_exec_prefix``. " +"It is only useful on Unix." +msgstr "" + +#: ../../c-api/init.rst:653 +msgid "" +"Background: The exec-prefix differs from the prefix when platform dependent " +"files (such as executables and shared libraries) are installed in a " +"different directory tree. In a typical installation, platform dependent " +"files may be installed in the :file:`/usr/local/plat` subtree while platform " +"independent may be installed in :file:`/usr/local`." +msgstr "" + +#: ../../c-api/init.rst:659 +msgid "" +"Generally speaking, a platform is a combination of hardware and software " +"families, e.g. Sparc machines running the Solaris 2.x operating system are " +"considered the same platform, but Intel machines running Solaris 2.x are " +"another platform, and Intel machines running Linux are yet another " +"platform. Different major revisions of the same operating system generally " +"also form different platforms. Non-Unix operating systems are a different " +"story; the installation strategies on those systems are so different that " +"the prefix and exec-prefix are meaningless, and set to the empty string. " +"Note that compiled Python bytecode files are platform independent (but not " +"independent from the Python version by which they were compiled!)." +msgstr "" + +#: ../../c-api/init.rst:670 +msgid "" +"System administrators will know how to configure the :program:`mount` " +"or :program:`automount` programs to share :file:`/usr/local` between " +"platforms while having :file:`/usr/local/plat` be a different filesystem for " +"each platform." +msgstr "" + +#: ../../c-api/init.rst:681 +msgid "" +"Use :c:func:`PyConfig_Get(\"base_exec_prefix\") ` " +"(:data:`sys.base_exec_prefix`) instead. " +"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " +"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " +"be handled." +msgstr "" + +#: ../../c-api/init.rst:693 +msgid "" +"Return the full program name of the Python executable; this is computed as " +"a side-effect of deriving the default module search path from the program " +"name (set by :c:member:`PyConfig.program_name`). The returned string points " +"into static storage; the caller should not modify its value. The value is " +"available to Python code as ``sys.executable``." +msgstr "" + +#: ../../c-api/init.rst:716 +msgid "" +"Return the default module search path; this is computed from the program " +"name (set by :c:member:`PyConfig.program_name`) and some environment " +"variables. The returned string consists of a series of directory names " +"separated by a platform dependent delimiter character. The delimiter " +"character is ``':'`` on Unix and macOS, ``';'`` on Windows. The returned " +"string points into static storage; the caller should not modify its value. " +"The list :data:`sys.path` is initialized with this value on interpreter " +"startup; it can be (and usually is) modified later to change the search path " +"for loading modules." +msgstr "" + +#: ../../c-api/init.rst:734 +msgid "" +"Use :c:func:`PyConfig_Get(\"module_search_paths\") ` " +"(:data:`sys.path`) instead." +msgstr "" + +#: ../../c-api/init.rst:740 +msgid "" +"Return the version of this Python interpreter. This is a string that looks " +"something like ::" +msgstr "" + +#: ../../c-api/init.rst:743 +msgid "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" +msgstr "" + +#: ../../c-api/init.rst:747 +msgid "" +"The first word (up to the first space character) is the current Python " +"version; the first characters are the major and minor version separated by a " +"period. The returned string points into static storage; the caller should " +"not modify its value. The value is available to Python code " +"as :data:`sys.version`." +msgstr "" + +#: ../../c-api/init.rst:752 +msgid "See also the :c:var:`Py_Version` constant." +msgstr "" + +#: ../../c-api/init.rst:759 +msgid "" +"Return the platform identifier for the current platform. On Unix, this is " +"formed from the \"official\" name of the operating system, converted to " +"lower case, followed by the major revision number; e.g., for Solaris 2.x, " +"which is also known as SunOS 5.x, the value is ``'sunos5'``. On macOS, it " +"is ``'darwin'``. On Windows, it is ``'win'``. The returned string points " +"into static storage; the caller should not modify its value. The value is " +"available to Python code as ``sys.platform``." +msgstr "" + +#: ../../c-api/init.rst:770 +msgid "" +"Return the official copyright string for the current Python version, for " +"example" +msgstr "" + +#: ../../c-api/init.rst:772 +msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" +msgstr "" + +#: ../../c-api/init.rst:776 +msgid "" +"The returned string points into static storage; the caller should not modify " +"its value. The value is available to Python code as ``sys.copyright``." +msgstr "" + +#: ../../c-api/init.rst:782 +msgid "" +"Return an indication of the compiler used to build the current Python " +"version, in square brackets, for example::" +msgstr "" + +#: ../../c-api/init.rst:785 +msgid "\"[GCC 2.7.2.2]\"" +msgstr "" + +#: ../../c-api/init.rst:789 ../../c-api/init.rst:803 +msgid "" +"The returned string points into static storage; the caller should not modify " +"its value. The value is available to Python code as part of the variable " +"``sys.version``." +msgstr "" + +#: ../../c-api/init.rst:796 +msgid "" +"Return information about the sequence number and build date and time of the " +"current Python interpreter instance, for example ::" +msgstr "" + +#: ../../c-api/init.rst:799 +msgid "\"#67, Aug 1 1997, 22:34:28\"" +msgstr "" + +#: ../../c-api/init.rst:815 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.argv`, :c:member:`PyConfig.parse_argv` " +"and :c:member:`PyConfig.safe_path` should be used instead, see :ref:`Python " +"Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:820 +msgid "" +"Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " +"similar to those passed to the program's :c:func:`main` function with the " +"difference that the first entry should refer to the script file to be " +"executed rather than the executable hosting the Python interpreter. If " +"there isn't a script that will be run, the first entry in *argv* can be an " +"empty string. If this function fails to initialize :data:`sys.argv`, a " +"fatal condition is signalled using :c:func:`Py_FatalError`." +msgstr "" + +#: ../../c-api/init.rst:828 +msgid "" +"If *updatepath* is zero, this is all the function does. If *updatepath* is " +"non-zero, the function also modifies :data:`sys.path` according to the " +"following algorithm:" +msgstr "" + +#: ../../c-api/init.rst:832 +msgid "" +"If the name of an existing script is passed in ``argv[0]``, the absolute " +"path of the directory where the script is located is prepended " +"to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init.rst:835 +msgid "" +"Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " +"existing file name), an empty string is prepended to :data:`sys.path`, which " +"is the same as prepending the current working directory (``\".\"``)." +msgstr "" + +#: ../../c-api/init.rst:843 ../../c-api/init.rst:879 +msgid "" +"See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " +"members of the :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:847 +msgid "" +"It is recommended that applications embedding the Python interpreter for " +"purposes other than executing a single script pass ``0`` as *updatepath*, " +"and update :data:`sys.path` themselves if desired. See :cve:`2008-5983`." +msgstr "" + +#: ../../c-api/init.rst:852 +msgid "" +"On versions before 3.1.3, you can achieve the same effect by manually " +"popping the first :data:`sys.path` element after having " +"called :c:func:`PySys_SetArgv`, for example using::" +msgstr "" + +#: ../../c-api/init.rst:856 +msgid "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" +msgstr "" + +#: ../../c-api/init.rst:868 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.argv` and :c:member:`PyConfig.parse_argv` should " +"be used instead, see :ref:`Python Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:872 +msgid "" +"This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " +"``1`` unless the :program:`python` interpreter was started with " +"the :option:`-I`." +msgstr "" + +#: ../../c-api/init.rst:882 +msgid "The *updatepath* value depends on :option:`-I`." +msgstr "" + +#: ../../c-api/init.rst:889 +msgid "" +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.home` should be used instead, see :ref:`Python " +"Initialization Configuration `." +msgstr "" + +#: ../../c-api/init.rst:893 +msgid "" +"Set the default \"home\" directory, that is, the location of the standard " +"Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " +"string." +msgstr "" + +#: ../../c-api/init.rst:897 +msgid "" +"The argument should point to a zero-terminated character string in static " +"storage whose contents will not change for the duration of the program's " +"execution. No code in the Python interpreter will change the contents of " +"this storage." +msgstr "" + +#: ../../c-api/init.rst:910 +msgid "" +"Return the default \"home\", that is, the value set " +"by :c:member:`PyConfig.home`, or the value of the :envvar:`PYTHONHOME` " +"environment variable if it is set." +msgstr "" + +#: ../../c-api/init.rst:920 +msgid "" +"Use :c:func:`PyConfig_Get(\"home\") ` or " +"the :envvar:`PYTHONHOME` environment variable instead." +msgstr "" + +#: ../../c-api/init.rst:928 +msgid "Thread State and the Global Interpreter Lock" +msgstr "" + +#: ../../c-api/init.rst:935 +msgid "" +"Unless on a :term:`free-threaded ` build of :term:`CPython`, " +"the Python interpreter is not fully thread-safe. In order to support multi-" +"threaded Python programs, there's a global lock, called the :term:`global " +"interpreter lock` or :term:`GIL`, that must be held by the current thread " +"before it can safely access Python objects. Without the lock, even the " +"simplest operations could cause problems in a multi-threaded program: for " +"example, when two threads simultaneously increment the reference count of " +"the same object, the reference count could end up being incremented only " +"once instead of twice." +msgstr "" + +#: ../../c-api/init.rst:946 +msgid "" +"Therefore, the rule exists that only the thread that has acquired " +"the :term:`GIL` may operate on Python objects or call Python/C API " +"functions. In order to emulate concurrency of execution, the interpreter " +"regularly tries to switch threads (see :func:`sys.setswitchinterval`). The " +"lock is also released around potentially blocking I/O operations like " +"reading or writing a file, so that other Python threads can run in the " +"meantime." +msgstr "" + +#: ../../c-api/init.rst:956 +msgid "" +"The Python interpreter keeps some thread-specific bookkeeping information " +"inside a data structure called :c:type:`PyThreadState`, known as " +"a :term:`thread state`. Each OS thread has a thread-local pointer to " +"a :c:type:`PyThreadState`; a thread state referenced by this pointer is " +"considered to be :term:`attached `." +msgstr "" + +#: ../../c-api/init.rst:961 +msgid "" +"A thread can only have one :term:`attached thread state` at a time. An " +"attached thread state is typically analogous with holding the :term:`GIL`, " +"except on :term:`free-threaded ` builds. On builds with " +"the :term:`GIL` enabled, :term:`attaching ` a thread " +"state will block until the :term:`GIL` can be acquired. However, even on " +"builds with the :term:`GIL` disabled, it is still required to have an " +"attached thread state to call most of the C API." +msgstr "" + +#: ../../c-api/init.rst:968 +msgid "" +"In general, there will always be an :term:`attached thread state` when using " +"Python's C API. Only in some specific cases (such as in " +"a :c:macro:`Py_BEGIN_ALLOW_THREADS` block) will the thread not have an " +"attached thread state. If uncertain, check " +"if :c:func:`PyThreadState_GetUnchecked` returns ``NULL``." +msgstr "" + +#: ../../c-api/init.rst:974 +msgid "Detaching the thread state from extension code" +msgstr "" + +#: ../../c-api/init.rst:976 +msgid "" +"Most extension code manipulating the :term:`thread state` has the following " +"simple structure::" +msgstr "" + +#: ../../c-api/init.rst:979 +msgid "" +"Save the thread state in a local variable.\n" +"... Do some blocking I/O operation ...\n" +"Restore the thread state from the local variable." +msgstr "" + +#: ../../c-api/init.rst:983 +msgid "This is so common that a pair of macros exists to simplify it::" +msgstr "" + +#: ../../c-api/init.rst:985 +msgid "" +"Py_BEGIN_ALLOW_THREADS\n" +"... Do some blocking I/O operation ...\n" +"Py_END_ALLOW_THREADS" +msgstr "" + +#: ../../c-api/init.rst:993 +msgid "" +"The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " +"hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " +"block." +msgstr "" + +#: ../../c-api/init.rst:997 +msgid "The block above expands to the following code::" +msgstr "" + +#: ../../c-api/init.rst:999 +msgid "" +"PyThreadState *_save;\n" +"\n" +"_save = PyEval_SaveThread();\n" +"... Do some blocking I/O operation ...\n" +"PyEval_RestoreThread(_save);" +msgstr "" + +#: ../../c-api/init.rst:1009 +msgid "Here is how these functions work:" +msgstr "" + +#: ../../c-api/init.rst:1011 +msgid "" +"The :term:`attached thread state` holds the :term:`GIL` for the entire " +"interpreter. When detaching the :term:`attached thread state`, " +"the :term:`GIL` is released, allowing other threads to attach a thread state " +"to their own thread, thus getting the :term:`GIL` and can start executing. " +"The pointer to the prior :term:`attached thread state` is stored as a local " +"variable. Upon reaching :c:macro:`Py_END_ALLOW_THREADS`, the thread state " +"that was previously :term:`attached ` is passed " +"to :c:func:`PyEval_RestoreThread`. This function will block until another " +"releases its :term:`thread state `, thus allowing the " +"old :term:`thread state ` to get re-attached and the " +"C API can be called again." +msgstr "" + +#: ../../c-api/init.rst:1021 +msgid "" +"For :term:`free-threaded ` builds, the :term:`GIL` is " +"normally out of the question, but detaching the :term:`thread state " +"` is still required for blocking I/O and long " +"operations. The difference is that threads don't have to wait for " +"the :term:`GIL` to be released to attach their thread state, allowing true " +"multi-core parallelism." +msgstr "" + +#: ../../c-api/init.rst:1027 +msgid "" +"Calling system I/O functions is the most common use case for detaching " +"the :term:`thread state `, but it can also be useful " +"before calling long-running computations which don't need access to Python " +"objects, such as compression or cryptographic functions operating over " +"memory buffers. For example, the standard :mod:`zlib` and :mod:`hashlib` " +"modules detach the :term:`thread state ` when " +"compressing or hashing data." +msgstr "" + +#: ../../c-api/init.rst:1038 +msgid "Non-Python created threads" +msgstr "" + +#: ../../c-api/init.rst:1040 +msgid "" +"When threads are created using the dedicated Python APIs (such as " +"the :mod:`threading` module), a thread state is automatically associated to " +"them and the code showed above is therefore correct. However, when threads " +"are created from C (for example by a third-party library with its own thread " +"management), they don't hold the :term:`GIL`, because they don't have " +"an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/init.rst:1047 +msgid "" +"If you need to call Python code from these threads (often this will be part " +"of a callback API provided by the aforementioned third-party library), you " +"must first register these threads with the interpreter by creating " +"an :term:`attached thread state` before you can start using the Python/C " +"API. When you are done, you should detach the :term:`thread state `, and finally free it." +msgstr "" + +#: ../../c-api/init.rst:1054 +msgid "" +"The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " +"do all of the above automatically. The typical idiom for calling into " +"Python from a C thread is::" +msgstr "" + +#: ../../c-api/init.rst:1058 +msgid "" +"PyGILState_STATE gstate;\n" +"gstate = PyGILState_Ensure();\n" +"\n" +"/* Perform Python actions here. */\n" +"result = CallSomeFunction();\n" +"/* evaluate result or handle exception */\n" +"\n" +"/* Release the thread. No Python API allowed beyond this point. */\n" +"PyGILState_Release(gstate);" +msgstr "" + +#: ../../c-api/init.rst:1068 +msgid "" +"Note that the ``PyGILState_*`` functions assume there is only one global " +"interpreter (created automatically by :c:func:`Py_Initialize`). Python " +"supports the creation of additional interpreters " +"(using :c:func:`Py_NewInterpreter`), but mixing multiple interpreters and " +"the ``PyGILState_*`` API is unsupported. This is " +"because :c:func:`PyGILState_Ensure` and similar functions default " +"to :term:`attaching ` a :term:`thread state` for the " +"main interpreter, meaning that the thread can't safely interact with the " +"calling subinterpreter." +msgstr "" + +#: ../../c-api/init.rst:1078 +msgid "Supporting subinterpreters in non-Python threads" +msgstr "" + +#: ../../c-api/init.rst:1080 +msgid "" +"If you would like to support subinterpreters with non-Python created " +"threads, you must use the ``PyThreadState_*`` API instead of the traditional " +"``PyGILState_*`` API." +msgstr "" + +#: ../../c-api/init.rst:1084 +msgid "" +"In particular, you must store the interpreter state from the calling " +"function and pass it to :c:func:`PyThreadState_New`, which will ensure that " +"the :term:`thread state` is targeting the correct interpreter::" +msgstr "" + +#: ../../c-api/init.rst:1088 +msgid "" +"/* The return value of PyInterpreterState_Get() from the\n" +" function that created this thread. */\n" +"PyInterpreterState *interp = ThreadData->interp;\n" +"PyThreadState *tstate = PyThreadState_New(interp);\n" +"PyThreadState_Swap(tstate);\n" +"\n" +"/* GIL of the subinterpreter is now held.\n" +" Perform Python actions here. */\n" +"result = CallSomeFunction();\n" +"/* evaluate result or handle exception */\n" +"\n" +"/* Destroy the thread state. No Python API allowed beyond this point. */\n" +"PyThreadState_Clear(tstate);\n" +"PyThreadState_DeleteCurrent();" +msgstr "" + +#: ../../c-api/init.rst:1106 +msgid "Cautions about fork()" +msgstr "" + +#: ../../c-api/init.rst:1108 +msgid "" +"Another important thing to note about threads is their behaviour in the face " +"of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " +"process forks only the thread that issued the fork will exist. This has a " +"concrete impact both on how locks must be handled and on all stored state in " +"CPython's runtime." +msgstr "" + +#: ../../c-api/init.rst:1114 +msgid "" +"The fact that only the \"current\" thread remains means any locks held by " +"other threads will never be released. Python solves this for :func:`os.fork` " +"by acquiring the locks it uses internally before the fork, and releasing " +"them afterwards. In addition, it resets any :ref:`lock-objects` in the " +"child. When extending or embedding Python, there is no way to inform Python " +"of additional (non-Python) locks that need to be acquired before or reset " +"after a fork. OS facilities such as :c:func:`!pthread_atfork` would need to " +"be used to accomplish the same thing. Additionally, when extending or " +"embedding Python, calling :c:func:`fork` directly rather than " +"through :func:`os.fork` (and returning to or calling into Python) may result " +"in a deadlock by one of Python's internal locks being held by a thread that " +"is defunct after the fork. :c:func:`PyOS_AfterFork_Child` tries to reset the " +"necessary locks, but is not always able to." +msgstr "" + +#: ../../c-api/init.rst:1129 +msgid "" +"The fact that all other threads go away also means that CPython's runtime " +"state there must be cleaned up properly, which :func:`os.fork` does. This " +"means finalizing all other :c:type:`PyThreadState` objects belonging to the " +"current interpreter and all other :c:type:`PyInterpreterState` objects. Due " +"to this and the special nature of the :ref:`\"main\" interpreter `, :c:func:`fork` should only be called in that " +"interpreter's \"main\" thread, where the CPython global runtime was " +"originally initialized. The only exception is if :c:func:`exec` will be " +"called immediately after." +msgstr "" + +#: ../../c-api/init.rst:1143 +msgid "Cautions regarding runtime finalization" +msgstr "" + +#: ../../c-api/init.rst:1145 +msgid "" +"In the late stage of :term:`interpreter shutdown`, after attempting to wait " +"for non-daemon threads to exit (though this can be interrupted " +"by :class:`KeyboardInterrupt`) and running the :mod:`atexit` functions, the " +"runtime is marked as *finalizing*: :c:func:`Py_IsFinalizing` " +"and :func:`sys.is_finalizing` return true. At this point, only the " +"*finalization thread* that initiated finalization (typically the main " +"thread) is allowed to acquire the :term:`GIL`." +msgstr "" + +#: ../../c-api/init.rst:1153 +msgid "" +"If any thread, other than the finalization thread, attempts to attach " +"a :term:`thread state` during finalization, either explicitly or implicitly, " +"the thread enters **a permanently blocked state** where it remains until the " +"program exits. In most cases this is harmless, but this can result in " +"deadlock if a later stage of finalization attempts to acquire a lock owned " +"by the blocked thread, or otherwise waits on the blocked thread." +msgstr "" + +#: ../../c-api/init.rst:1160 +msgid "" +"Gross? Yes. This prevents random crashes and/or unexpectedly skipped C++ " +"finalizations further up the call stack when such threads were forcibly " +"exited here in CPython 3.13 and earlier. The CPython runtime :term:`thread " +"state` C APIs have never had any error reporting or handling expectations " +"at :term:`thread state` attachment time that would've allowed for graceful " +"exit from this situation. Changing that would require new stable C APIs and " +"rewriting the majority of C code in the CPython ecosystem to use those with " +"error handling." +msgstr "" + +#: ../../c-api/init.rst:1170 +msgid "High-level API" +msgstr "" + +#: ../../c-api/init.rst:1172 +msgid "" +"These are the most commonly used types and functions when writing C " +"extension code, or when embedding the Python interpreter:" +msgstr "" + +#: ../../c-api/init.rst:1177 +msgid "" +"This data structure represents the state shared by a number of cooperating " +"threads. Threads belonging to the same interpreter share their module " +"administration and a few other internal items. There are no public members " +"in this structure." +msgstr "" + +#: ../../c-api/init.rst:1182 +msgid "" +"Threads belonging to different interpreters initially share nothing, except " +"process state like available memory, open file descriptors and such. The " +"global interpreter lock is also shared by all threads, regardless of to " +"which interpreter they belong." +msgstr "" + +#: ../../c-api/init.rst:1190 +msgid "" +"This data structure represents the state of a single thread. The only " +"public data member is:" +msgstr "" + +#: ../../c-api/init.rst:1195 +msgid "This thread's interpreter state." +msgstr "" + +#: ../../c-api/init.rst:1206 +msgid "Deprecated function which does nothing." +msgstr "" + +#: ../../c-api/init.rst:1208 +msgid "" +"In Python 3.6 and older, this function created the GIL if it didn't exist." +msgstr "" + +#: ../../c-api/init.rst:1210 +msgid "The function now does nothing." +msgstr "" + +#: ../../c-api/init.rst:1213 +msgid "" +"This function is now called by :c:func:`Py_Initialize()`, so you don't have " +"to call it yourself anymore." +msgstr "" + +#: ../../c-api/init.rst:1217 +msgid "" +"This function cannot be called before :c:func:`Py_Initialize()` anymore." +msgstr "" + +#: ../../c-api/init.rst:1227 +msgid "" +"Detach the :term:`attached thread state` and return it. The thread will have " +"no :term:`thread state` upon returning." +msgstr "" + +#: ../../c-api/init.rst:1233 +msgid "" +"Set the :term:`attached thread state` to *tstate*. The passed :term:`thread " +"state` **should not** be :term:`attached `, otherwise " +"deadlock ensues. *tstate* will be attached upon returning." +msgstr "" + +#: ../../c-api/init.rst:1238 ../../c-api/init.rst:1609 +msgid "" +"Calling this function from a thread when the runtime is finalizing will hang " +"the thread until the program exits, even if the thread was not created by " +"Python. Refer to :ref:`cautions-regarding-runtime-finalization` for more " +"details." +msgstr "" + +#: ../../c-api/init.rst:1243 ../../c-api/init.rst:1314 +#: ../../c-api/init.rst:1619 +msgid "" +"Hangs the current thread, rather than terminating it, if called while the " +"interpreter is finalizing." +msgstr "" + +#: ../../c-api/init.rst:1249 +msgid "" +"Return the :term:`attached thread state`. If the thread has no attached " +"thread state, (such as when inside of :c:macro:`Py_BEGIN_ALLOW_THREADS` " +"block), then this issues a fatal error (so that the caller needn't check for " +"``NULL``)." +msgstr "" + +#: ../../c-api/init.rst:1254 +msgid "See also :c:func:`PyThreadState_GetUnchecked`." +msgstr "" + +#: ../../c-api/init.rst:1258 +msgid "" +"Similar to :c:func:`PyThreadState_Get`, but don't kill the process with a " +"fatal error if it is NULL. The caller is responsible to check if the result " +"is NULL." +msgstr "" + +#: ../../c-api/init.rst:1262 +msgid "" +"In Python 3.5 to 3.12, the function was private and known as " +"``_PyThreadState_UncheckedGet()``." +msgstr "" + +#: ../../c-api/init.rst:1269 +msgid "" +"Set the :term:`attached thread state` to *tstate*, and return " +"the :term:`thread state` that was attached prior to calling." +msgstr "" + +#: ../../c-api/init.rst:1272 +msgid "" +"This function is safe to call without an :term:`attached thread state`; it " +"will simply return ``NULL`` indicating that there was no prior thread state." +msgstr "" + +#: ../../c-api/init.rst:1279 +msgid "" +"Similar to :c:func:`PyGILState_Ensure`, this function will hang the thread " +"if the runtime is finalizing." +msgstr "" + +#: ../../c-api/init.rst:1283 +msgid "" +"The following functions use thread-local storage, and are not compatible " +"with sub-interpreters:" +msgstr "" + +#: ../../c-api/init.rst:1288 +msgid "" +"Ensure that the current thread is ready to call the Python C API regardless " +"of the current state of Python, or of the :term:`attached thread state`. " +"This may be called as many times as desired by a thread as long as each call " +"is matched with a call to :c:func:`PyGILState_Release`. In general, other " +"thread-related APIs may be used between :c:func:`PyGILState_Ensure` " +"and :c:func:`PyGILState_Release` calls as long as the thread state is " +"restored to its previous state before the Release(). For example, normal " +"usage of the :c:macro:`Py_BEGIN_ALLOW_THREADS` " +"and :c:macro:`Py_END_ALLOW_THREADS` macros is acceptable." +msgstr "" + +#: ../../c-api/init.rst:1298 +msgid "" +"The return value is an opaque \"handle\" to the :term:`attached thread " +"state` when :c:func:`PyGILState_Ensure` was called, and must be passed " +"to :c:func:`PyGILState_Release` to ensure Python is left in the same state. " +"Even though recursive calls are allowed, these handles *cannot* be shared - " +"each unique call to :c:func:`PyGILState_Ensure` must save the handle for its " +"call to :c:func:`PyGILState_Release`." +msgstr "" + +#: ../../c-api/init.rst:1305 +msgid "" +"When the function returns, there will be an :term:`attached thread state` " +"and the thread will be able to call arbitrary Python code. Failure is a " +"fatal error." +msgstr "" + +#: ../../c-api/init.rst:1309 +msgid "" +"Calling this function when the runtime is finalizing is unsafe. Doing so " +"will either hang the thread until the program ends, or fully crash the " +"interpreter in rare cases. Refer to :ref:`cautions-regarding-runtime-" +"finalization` for more details." +msgstr "" + +#: ../../c-api/init.rst:1320 +msgid "" +"Release any resources previously acquired. After this call, Python's state " +"will be the same as it was prior to the " +"corresponding :c:func:`PyGILState_Ensure` call (but generally this state " +"will be unknown to the caller, hence the use of the GILState API)." +msgstr "" + +#: ../../c-api/init.rst:1325 +msgid "" +"Every call to :c:func:`PyGILState_Ensure` must be matched by a call " +"to :c:func:`PyGILState_Release` on the same thread." +msgstr "" + +#: ../../c-api/init.rst:1330 +msgid "" +"Get the :term:`attached thread state` for this thread. May return ``NULL`` " +"if no GILState API has been used on the current thread. Note that the main " +"thread always has such a thread-state, even if no auto-thread-state call has " +"been made on the main thread. This is mainly a helper/diagnostic function." +msgstr "" + +#: ../../c-api/init.rst:1336 +msgid "" +"This function does not account for :term:`thread states ` " +"created by something other than :c:func:`PyGILState_Ensure` (such " +"as :c:func:`PyThreadState_New`). Prefer :c:func:`PyThreadState_Get` " +"or :c:func:`PyThreadState_GetUnchecked` for most cases." +msgstr "" + +#: ../../c-api/init.rst:1345 +msgid "" +"Return ``1`` if the current thread is holding the :term:`GIL` and ``0`` " +"otherwise. This function can be called from any thread at any time. Only if " +"it has had its :term:`thread state ` initialized " +"via :c:func:`PyGILState_Ensure` will it return ``1``. This is mainly a " +"helper/diagnostic function. It can be useful for example in callback " +"contexts or memory allocation functions when knowing that the :term:`GIL` is " +"locked can allow the caller to perform sensitive actions or otherwise behave " +"differently." +msgstr "" + +#: ../../c-api/init.rst:1355 +msgid "" +"If the current Python process has ever created a subinterpreter, this " +"function will *always* return ``1``. " +"Prefer :c:func:`PyThreadState_GetUnchecked` for most cases." +msgstr "" + +#: ../../c-api/init.rst:1362 +msgid "" +"The following macros are normally used without a trailing semicolon; look " +"for example usage in the Python source distribution." +msgstr "" + +#: ../../c-api/init.rst:1368 +msgid "" +"This macro expands to ``{ PyThreadState *_save; _save = " +"PyEval_SaveThread();``. Note that it contains an opening brace; it must be " +"matched with a following :c:macro:`Py_END_ALLOW_THREADS` macro. See above " +"for further discussion of this macro." +msgstr "" + +#: ../../c-api/init.rst:1376 +msgid "" +"This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " +"contains a closing brace; it must be matched with an " +"earlier :c:macro:`Py_BEGIN_ALLOW_THREADS` macro. See above for further " +"discussion of this macro." +msgstr "" + +#: ../../c-api/init.rst:1384 +msgid "" +"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent " +"to :c:macro:`Py_END_ALLOW_THREADS` without the closing brace." +msgstr "" + +#: ../../c-api/init.rst:1390 +msgid "" +"This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent " +"to :c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " +"declaration." +msgstr "" + +#: ../../c-api/init.rst:1396 +msgid "Low-level API" +msgstr "" + +#: ../../c-api/init.rst:1398 +msgid "" +"All of the following functions must be called after :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/init.rst:1400 +msgid "" +":c:func:`Py_Initialize()` now initializes the :term:`GIL` and sets " +"an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/init.rst:1407 +msgid "" +"Create a new interpreter state object. An :term:`attached thread state` is " +"not needed, but may optionally exist if it is necessary to serialize calls " +"to this function." +msgstr "" + +#: ../../c-api/init.rst:1411 +msgid "" +"Raises an :ref:`auditing event ` " +"``cpython.PyInterpreterState_New`` with no arguments." +msgstr "" + +#: ../../c-api/init.rst:1416 +msgid "" +"Reset all information in an interpreter state object. There must be " +"an :term:`attached thread state` for the interpreter." +msgstr "" + +#: ../../c-api/init.rst:1419 +msgid "" +"Raises an :ref:`auditing event ` " +"``cpython.PyInterpreterState_Clear`` with no arguments." +msgstr "" + +#: ../../c-api/init.rst:1424 +msgid "" +"Destroy an interpreter state object. There **should not** be " +"an :term:`attached thread state` for the target interpreter. The interpreter " +"state must have been reset with a previous call " +"to :c:func:`PyInterpreterState_Clear`." +msgstr "" + +#: ../../c-api/init.rst:1431 +msgid "" +"Create a new thread state object belonging to the given interpreter object. " +"An :term:`attached thread state` is not needed." +msgstr "" + +#: ../../c-api/init.rst:1436 +msgid "" +"Reset all information in a :term:`thread state` object. *tstate* must " +"be :term:`attached `" +msgstr "" + +#: ../../c-api/init.rst:1439 +msgid "" +"This function now calls the :c:member:`PyThreadState.on_delete` callback. " +"Previously, that happened in :c:func:`PyThreadState_Delete`." +msgstr "" + +#: ../../c-api/init.rst:1443 +msgid "The :c:member:`PyThreadState.on_delete` callback was removed." +msgstr "" + +#: ../../c-api/init.rst:1449 +msgid "" +"Destroy a :term:`thread state` object. *tstate* should not " +"be :term:`attached ` to any thread. *tstate* must " +"have been reset with a previous call to :c:func:`PyThreadState_Clear`." +msgstr "" + +#: ../../c-api/init.rst:1457 +msgid "" +"Detach the :term:`attached thread state` (which must have been reset with a " +"previous call to :c:func:`PyThreadState_Clear`) and then destroy it." +msgstr "" + +#: ../../c-api/init.rst:1460 +msgid "" +"No :term:`thread state` will be :term:`attached ` " +"upon returning." +msgstr "" + +#: ../../c-api/init.rst:1465 +msgid "Get the current frame of the Python thread state *tstate*." +msgstr "" + +#: ../../c-api/init.rst:1467 +msgid "" +"Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " +"executing." +msgstr "" + +#: ../../c-api/init.rst:1470 +msgid "See also :c:func:`PyEval_GetFrame`." +msgstr "" + +#: ../../c-api/init.rst:1472 ../../c-api/init.rst:1481 +#: ../../c-api/init.rst:1490 +msgid "" +"*tstate* must not be ``NULL``, and must be :term:`attached `." +msgstr "" + +#: ../../c-api/init.rst:1479 +msgid "" +"Get the unique :term:`thread state` identifier of the Python thread state " +"*tstate*." +msgstr "" + +#: ../../c-api/init.rst:1488 +msgid "Get the interpreter of the Python thread state *tstate*." +msgstr "" + +#: ../../c-api/init.rst:1497 +msgid "Suspend tracing and profiling in the Python thread state *tstate*." +msgstr "" + +#: ../../c-api/init.rst:1499 +msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." +msgstr "" + +#: ../../c-api/init.rst:1506 +msgid "" +"Resume tracing and profiling in the Python thread state *tstate* suspended " +"by the :c:func:`PyThreadState_EnterTracing` function." +msgstr "" + +#: ../../c-api/init.rst:1509 +msgid "" +"See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." +msgstr "" + +#: ../../c-api/init.rst:1517 +msgid "Get the current interpreter." +msgstr "" + +#: ../../c-api/init.rst:1519 +msgid "" +"Issue a fatal error if there no :term:`attached thread state`. It cannot " +"return NULL." +msgstr "" + +#: ../../c-api/init.rst:1527 +msgid "" +"Return the interpreter's unique ID. If there was any error in doing so then " +"``-1`` is returned and an error is set." +msgstr "" + +#: ../../c-api/init.rst:1530 ../../c-api/init.rst:2117 +#: ../../c-api/init.rst:2124 ../../c-api/init.rst:2143 +#: ../../c-api/init.rst:2150 +msgid "The caller must have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/init.rst:1537 +msgid "" +"Return a dictionary in which interpreter-specific data may be stored. If " +"this function returns ``NULL`` then no exception has been raised and the " +"caller should assume no interpreter-specific dict is available." +msgstr "" + +#: ../../c-api/init.rst:1541 +msgid "" +"This is not a replacement for :c:func:`PyModule_GetState()`, which " +"extensions should use to store interpreter-specific state information." +msgstr "" + +#: ../../c-api/init.rst:1549 +msgid "Type of a frame evaluation function." +msgstr "" + +#: ../../c-api/init.rst:1551 +msgid "" +"The *throwflag* parameter is used by the ``throw()`` method of generators: " +"if non-zero, handle the current exception." +msgstr "" + +#: ../../c-api/init.rst:1554 +msgid "The function now takes a *tstate* parameter." +msgstr "" + +#: ../../c-api/init.rst:1557 +msgid "" +"The *frame* parameter changed from ``PyFrameObject*`` to " +"``_PyInterpreterFrame*``." +msgstr "" + +#: ../../c-api/init.rst:1562 +msgid "Get the frame evaluation function." +msgstr "" + +#: ../../c-api/init.rst:1564 ../../c-api/init.rst:1572 +msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." +msgstr "" + +#: ../../c-api/init.rst:1570 +msgid "Set the frame evaluation function." +msgstr "" + +#: ../../c-api/init.rst:1579 +msgid "" +"Return a dictionary in which extensions can store thread-specific state " +"information. Each extension should use a unique key to use to store state " +"in the dictionary. It is okay to call this function when no :term:`thread " +"state` is :term:`attached `. If this function returns " +"``NULL``, no exception has been raised and the caller should assume no " +"thread state is attached." +msgstr "" + +#: ../../c-api/init.rst:1589 +msgid "" +"Asynchronously raise an exception in a thread. The *id* argument is the " +"thread id of the target thread; *exc* is the exception object to be raised. " +"This function does not steal any references to *exc*. To prevent naive " +"misuse, you must write your own C extension to call this. Must be called " +"with an :term:`attached thread state`. Returns the number of thread states " +"modified; this is normally one, but will be zero if the thread id isn't " +"found. If *exc* is ``NULL``, the pending exception (if any) for the thread " +"is cleared. This raises no exceptions." +msgstr "" + +#: ../../c-api/init.rst:1597 +msgid "" +"The type of the *id* parameter changed from :c:expr:`long` " +"to :c:expr:`unsigned long`." +msgstr "" + +#: ../../c-api/init.rst:1603 +msgid "" +":term:`Attach ` *tstate* to the current thread, which " +"must not be ``NULL`` or already :term:`attached `." +msgstr "" + +#: ../../c-api/init.rst:1606 +msgid "" +"The calling thread must not already have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/init.rst:1614 +msgid "" +"Updated to be consistent " +"with :c:func:`PyEval_RestoreThread`, :c:func:`Py_END_ALLOW_THREADS`, " +"and :c:func:`PyGILState_Ensure`, and terminate the current thread if called " +"while the interpreter is finalizing." +msgstr "" + +#: ../../c-api/init.rst:1623 +msgid "" +":c:func:`PyEval_RestoreThread` is a higher-level function which is always " +"available (even when threads have not been initialized)." +msgstr "" + +#: ../../c-api/init.rst:1629 +msgid "" +"Detach the :term:`attached thread state`. The *tstate* argument, which must " +"not be ``NULL``, is only used to check that it represents " +"the :term:`attached thread state` --- if it isn't, a fatal error is reported." +msgstr "" + +#: ../../c-api/init.rst:1634 +msgid "" +":c:func:`PyEval_SaveThread` is a higher-level function which is always " +"available (even when threads have not been initialized)." +msgstr "" + +#: ../../c-api/init.rst:1641 +msgid "Sub-interpreter support" +msgstr "" + +#: ../../c-api/init.rst:1643 +msgid "" +"While in most uses, you will only embed a single Python interpreter, there " +"are cases where you need to create several independent interpreters in the " +"same process and perhaps even in the same thread. Sub-interpreters allow you " +"to do that." +msgstr "" + +#: ../../c-api/init.rst:1648 +msgid "" +"The \"main\" interpreter is the first one created when the runtime " +"initializes. It is usually the only Python interpreter in a process. Unlike " +"sub-interpreters, the main interpreter has unique process-global " +"responsibilities like signal handling. It is also responsible for execution " +"during runtime initialization and is usually the active interpreter during " +"runtime finalization. The :c:func:`PyInterpreterState_Main` function " +"returns a pointer to its state." +msgstr "" + +#: ../../c-api/init.rst:1655 +msgid "" +"You can switch between sub-interpreters using " +"the :c:func:`PyThreadState_Swap` function. You can create and destroy them " +"using the following functions:" +msgstr "" + +#: ../../c-api/init.rst:1661 +msgid "" +"Structure containing most parameters to configure a sub-interpreter. Its " +"values are used only in :c:func:`Py_NewInterpreterFromConfig` and never " +"modified by the runtime." +msgstr "" + +#: ../../c-api/init.rst:1667 +msgid "Structure fields:" +msgstr "" + +#: ../../c-api/init.rst:1671 +msgid "" +"If this is ``0`` then the sub-interpreter will use its own \"object\" " +"allocator state. Otherwise it will use (share) the main interpreter's." +msgstr "" + +#: ../../c-api/init.rst:1675 +msgid "" +"If this is ``0`` " +"then :c:member:`~PyInterpreterConfig.check_multi_interp_extensions` must be " +"``1`` (non-zero). If this is ``1`` then :c:member:`~PyInterpreterConfig.gil` " +"must not be :c:macro:`PyInterpreterConfig_OWN_GIL`." +msgstr "" + +#: ../../c-api/init.rst:1683 +msgid "" +"If this is ``0`` then the runtime will not support forking the process in " +"any thread where the sub-interpreter is currently active. Otherwise fork is " +"unrestricted." +msgstr "" + +#: ../../c-api/init.rst:1687 +msgid "" +"Note that the :mod:`subprocess` module still works when fork is disallowed." +msgstr "" + +#: ../../c-api/init.rst:1692 +msgid "" +"If this is ``0`` then the runtime will not support replacing the current " +"process via exec (e.g. :func:`os.execv`) in any thread where the sub-" +"interpreter is currently active. Otherwise exec is unrestricted." +msgstr "" + +#: ../../c-api/init.rst:1697 +msgid "" +"Note that the :mod:`subprocess` module still works when exec is disallowed." +msgstr "" + +#: ../../c-api/init.rst:1702 +msgid "" +"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " +"create threads. Otherwise threads are allowed." +msgstr "" + +#: ../../c-api/init.rst:1708 +msgid "" +"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " +"create daemon threads. Otherwise daemon threads are allowed (as long " +"as :c:member:`~PyInterpreterConfig.allow_threads` is non-zero)." +msgstr "" + +#: ../../c-api/init.rst:1715 +msgid "" +"If this is ``0`` then all extension modules may be imported, including " +"legacy (single-phase init) modules, in any thread where the sub-interpreter " +"is currently active. Otherwise only multi-phase init extension modules " +"(see :pep:`489`) may be imported. (Also " +"see :c:macro:`Py_mod_multiple_interpreters`.)" +msgstr "" + +#: ../../c-api/init.rst:1722 +msgid "" +"This must be ``1`` (non-zero) " +"if :c:member:`~PyInterpreterConfig.use_main_obmalloc` is ``0``." +msgstr "" + +#: ../../c-api/init.rst:1727 +msgid "" +"This determines the operation of the GIL for the sub-interpreter. It may be " +"one of the following:" +msgstr "" + +#: ../../c-api/init.rst:1734 +msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." +msgstr "" + +#: ../../c-api/init.rst:1738 +msgid "Use (share) the main interpreter's GIL." +msgstr "" + +#: ../../c-api/init.rst:1742 +msgid "Use the sub-interpreter's own GIL." +msgstr "" + +#: ../../c-api/init.rst:1744 +msgid "" +"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` " +"then :c:member:`PyInterpreterConfig.use_main_obmalloc` must be ``0``." +msgstr "" + +#: ../../c-api/init.rst:1758 +msgid "" +"Create a new sub-interpreter. This is an (almost) totally separate " +"environment for the execution of Python code. In particular, the new " +"interpreter has separate, independent versions of all imported modules, " +"including the fundamental modules :mod:`builtins`, :mod:`__main__` " +"and :mod:`sys`. The table of loaded modules (``sys.modules``) and the " +"module search path (``sys.path``) are also separate. The new environment " +"has no ``sys.argv`` variable. It has new standard I/O stream file objects " +"``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` (however these refer to the " +"same underlying file descriptors)." +msgstr "" + +#: ../../c-api/init.rst:1768 +msgid "" +"The given *config* controls the options with which the interpreter is " +"initialized." +msgstr "" + +#: ../../c-api/init.rst:1771 +msgid "" +"Upon success, *tstate_p* will be set to the first :term:`thread state` " +"created in the new sub-interpreter. This thread state is :term:`attached " +"`. Note that no actual thread is created; see the " +"discussion of thread states below. If creation of the new interpreter is " +"unsuccessful, *tstate_p* is set to ``NULL``; no exception is set since the " +"exception state is stored in the :term:`attached thread state`, which might " +"not exist." +msgstr "" + +#: ../../c-api/init.rst:1780 +msgid "" +"Like all other Python/C API functions, an :term:`attached thread state` must " +"be present before calling this function, but it might be detached upon " +"returning. On success, the returned thread state will be :term:`attached " +"`. If the sub-interpreter is created with its " +"own :term:`GIL` then the :term:`attached thread state` of the calling " +"interpreter will be detached. When the function returns, the new " +"interpreter's :term:`thread state` will be :term:`attached ` to the current thread and the previous interpreter's :term:`attached " +"thread state` will remain detached." +msgstr "" + +#: ../../c-api/init.rst:1791 +msgid "" +"Sub-interpreters are most effective when isolated from each other, with " +"certain functionality restricted::" +msgstr "" + +#: ../../c-api/init.rst:1794 +msgid "" +"PyInterpreterConfig config = {\n" +" .use_main_obmalloc = 0,\n" +" .allow_fork = 0,\n" +" .allow_exec = 0,\n" +" .allow_threads = 1,\n" +" .allow_daemon_threads = 0,\n" +" .check_multi_interp_extensions = 1,\n" +" .gil = PyInterpreterConfig_OWN_GIL,\n" +"};\n" +"PyThreadState *tstate = NULL;\n" +"PyStatus status = Py_NewInterpreterFromConfig(&tstate, &config);\n" +"if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../c-api/init.rst:1809 +msgid "" +"Note that the config is used only briefly and does not get modified. During " +"initialization the config's values are converted into " +"various :c:type:`PyInterpreterState` values. A read-only copy of the config " +"may be stored internally on the :c:type:`PyInterpreterState`." +msgstr "" + +#: ../../c-api/init.rst:1818 +msgid "Extension modules are shared between (sub-)interpreters as follows:" +msgstr "" + +#: ../../c-api/init.rst:1820 +msgid "" +"For modules using multi-phase initialization, " +"e.g. :c:func:`PyModule_FromDefAndSpec`, a separate module object is created " +"and initialized for each interpreter. Only C-level static and global " +"variables are shared between these module objects." +msgstr "" + +#: ../../c-api/init.rst:1826 +msgid "" +"For modules using single-phase initialization, " +"e.g. :c:func:`PyModule_Create`, the first time a particular extension is " +"imported, it is initialized normally, and a (shallow) copy of its module's " +"dictionary is squirreled away. When the same extension is imported by " +"another (sub-)interpreter, a new module is initialized and filled with the " +"contents of this copy; the extension's ``init`` function is not called. " +"Objects in the module's dictionary thus end up shared across " +"(sub-)interpreters, which might cause unwanted behavior (see `Bugs and " +"caveats`_ below)." +msgstr "" + +#: ../../c-api/init.rst:1837 +msgid "" +"Note that this is different from what happens when an extension is imported " +"after the interpreter has been completely re-initialized by " +"calling :c:func:`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, " +"the extension's ``initmodule`` function *is* called again. As with multi-" +"phase initialization, this means that only C-level static and global " +"variables are shared between these modules." +msgstr "" + +#: ../../c-api/init.rst:1857 +msgid "" +"Create a new sub-interpreter. This is essentially just a wrapper " +"around :c:func:`Py_NewInterpreterFromConfig` with a config that preserves " +"the existing behavior. The result is an unisolated sub-interpreter that " +"shares the main interpreter's GIL, allows fork/exec, allows daemon threads, " +"and allows single-phase init modules." +msgstr "" + +#: ../../c-api/init.rst:1869 +msgid "" +"Destroy the (sub-)interpreter represented by the given :term:`thread state`. " +"The given thread state must be :term:`attached `. " +"When the call returns, there will be no :term:`attached thread state`. All " +"thread states associated with this interpreter are destroyed." +msgstr "" + +#: ../../c-api/init.rst:1874 +msgid "" +":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " +"explicitly destroyed at that point." +msgstr "" + +#: ../../c-api/init.rst:1879 +msgid "A Per-Interpreter GIL" +msgstr "" + +#: ../../c-api/init.rst:1881 +msgid "" +"Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " +"that is completely isolated from other interpreters, including having its " +"own GIL. The most important benefit of this isolation is that such an " +"interpreter can execute Python code without being blocked by other " +"interpreters or blocking any others. Thus a single Python process can truly " +"take advantage of multiple CPU cores when running Python code. The " +"isolation also encourages a different approach to concurrency than that of " +"just using threads. (See :pep:`554`.)" +msgstr "" + +#: ../../c-api/init.rst:1891 +msgid "" +"Using an isolated interpreter requires vigilance in preserving that " +"isolation. That especially means not sharing any objects or mutable state " +"without guarantees about thread-safety. Even objects that are otherwise " +"immutable (e.g. ``None``, ``(1, 5)``) can't normally be shared because of " +"the refcount. One simple but less-efficient approach around this is to use " +"a global lock around all use of some state (or object). Alternately, " +"effectively immutable objects (like integers or strings) can be made safe in " +"spite of their refcounts by making them :term:`immortal`. In fact, this has " +"been done for the builtin singletons, small integers, and a number of other " +"builtin objects." +msgstr "" + +#: ../../c-api/init.rst:1902 +msgid "" +"If you preserve isolation then you will have access to proper multi-core " +"computing without the complications that come with free-threading. Failure " +"to preserve isolation will expose you to the full consequences of free-" +"threading, including races and hard-to-debug crashes." +msgstr "" + +#: ../../c-api/init.rst:1907 +msgid "" +"Aside from that, one of the main challenges of using multiple isolated " +"interpreters is how to communicate between them safely (not break isolation) " +"and efficiently. The runtime and stdlib do not provide any standard " +"approach to this yet. A future stdlib module would help mitigate the effort " +"of preserving isolation and expose effective tools for communicating (and " +"sharing) data between interpreters." +msgstr "" + +#: ../../c-api/init.rst:1918 +msgid "Bugs and caveats" +msgstr "" + +#: ../../c-api/init.rst:1920 +msgid "" +"Because sub-interpreters (and the main interpreter) are part of the same " +"process, the insulation between them isn't perfect --- for example, using " +"low-level file operations like :func:`os.close` they can (accidentally or " +"maliciously) affect each other's open files. Because of the way extensions " +"are shared between (sub-)interpreters, some extensions may not work " +"properly; this is especially likely when using single-phase initialization " +"or (static) global variables. It is possible to insert objects created in " +"one sub-interpreter into a namespace of another (sub-)interpreter; this " +"should be avoided if possible." +msgstr "" + +#: ../../c-api/init.rst:1930 +msgid "" +"Special care should be taken to avoid sharing user-defined functions, " +"methods, instances or classes between sub-interpreters, since import " +"operations executed by such objects may affect the wrong (sub-)interpreter's " +"dictionary of loaded modules. It is equally important to avoid sharing " +"objects from which the above are reachable." +msgstr "" + +#: ../../c-api/init.rst:1936 +msgid "" +"Also note that combining this functionality with ``PyGILState_*`` APIs is " +"delicate, because these APIs assume a bijection between Python thread states " +"and OS-level threads, an assumption broken by the presence of sub-" +"interpreters. It is highly recommended that you don't switch sub-" +"interpreters between a pair of matching :c:func:`PyGILState_Ensure` " +"and :c:func:`PyGILState_Release` calls. Furthermore, extensions (such " +"as :mod:`ctypes`) using these APIs to allow calling of Python code from non-" +"Python created threads will probably be broken when using sub-interpreters." +msgstr "" + +#: ../../c-api/init.rst:1947 +msgid "Asynchronous Notifications" +msgstr "" + +#: ../../c-api/init.rst:1949 +msgid "" +"A mechanism is provided to make asynchronous notifications to the main " +"interpreter thread. These notifications take the form of a function pointer " +"and a void pointer argument." +msgstr "" + +#: ../../c-api/init.rst:1956 +msgid "" +"Schedule a function to be called from the main interpreter thread. On " +"success, ``0`` is returned and *func* is queued for being called in the main " +"thread. On failure, ``-1`` is returned without setting any exception." +msgstr "" + +#: ../../c-api/init.rst:1960 +msgid "" +"When successfully queued, *func* will be *eventually* called from the main " +"interpreter thread with the argument *arg*. It will be called " +"asynchronously with respect to normally running Python code, but with both " +"these conditions met:" +msgstr "" + +#: ../../c-api/init.rst:1965 +msgid "on a :term:`bytecode` boundary;" +msgstr "" + +#: ../../c-api/init.rst:1966 +msgid "" +"with the main thread holding an :term:`attached thread state` (*func* can " +"therefore use the full C API)." +msgstr "" + +#: ../../c-api/init.rst:1969 +msgid "" +"*func* must return ``0`` on success, or ``-1`` on failure with an exception " +"set. *func* won't be interrupted to perform another asynchronous " +"notification recursively, but it can still be interrupted to switch threads " +"if the :term:`thread state ` is detached." +msgstr "" + +#: ../../c-api/init.rst:1974 +msgid "" +"This function doesn't need an :term:`attached thread state`. However, to " +"call this function in a subinterpreter, the caller must have " +"an :term:`attached thread state`. Otherwise, the function *func* can be " +"scheduled to be called from the wrong interpreter." +msgstr "" + +#: ../../c-api/init.rst:1979 +msgid "" +"This is a low-level function, only useful for very special cases. There is " +"no guarantee that *func* will be called as quick as possible. If the main " +"thread is busy executing a system call, *func* won't be called before the " +"system call returns. This function is generally **not** suitable for " +"calling Python code from arbitrary C threads. Instead, use " +"the :ref:`PyGILState API`." +msgstr "" + +#: ../../c-api/init.rst:1988 +msgid "" +"If this function is called in a subinterpreter, the function *func* is now " +"scheduled to be called from the subinterpreter, rather than being called " +"from the main interpreter. Each subinterpreter now has its own list of " +"scheduled calls." +msgstr "" + +#: ../../c-api/init.rst:1997 +msgid "Profiling and Tracing" +msgstr "" + +#: ../../c-api/init.rst:2002 +msgid "" +"The Python interpreter provides some low-level support for attaching " +"profiling and execution tracing facilities. These are used for profiling, " +"debugging, and coverage analysis tools." +msgstr "" + +#: ../../c-api/init.rst:2006 +msgid "" +"This C interface allows the profiling or tracing code to avoid the overhead " +"of calling through Python-level callable objects, making a direct C function " +"call instead. The essential attributes of the facility have not changed; " +"the interface allows trace functions to be installed per-thread, and the " +"basic events reported to the trace function are the same as had been " +"reported to the Python-level trace functions in previous versions." +msgstr "" + +#: ../../c-api/init.rst:2016 +msgid "" +"The type of the trace function registered using :c:func:`PyEval_SetProfile` " +"and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " +"the registration function as *obj*, *frame* is the frame object to which the " +"event pertains, *what* is one of the " +"constants :c:data:`PyTrace_CALL`, :c:data:`PyTrace_EXCEPTION`, :c:data:`PyTrace_LINE`, :c:data:`PyTrace_RETURN`, :c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION`, :c:data:`PyTrace_C_RETURN`, " +"or :c:data:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" +msgstr "" + +#: ../../c-api/init.rst:2025 +msgid "Value of *what*" +msgstr "" + +#: ../../c-api/init.rst:2025 +msgid "Meaning of *arg*" +msgstr "" + +#: ../../c-api/init.rst:2027 +msgid ":c:data:`PyTrace_CALL`" +msgstr "" + +#: ../../c-api/init.rst:2027 ../../c-api/init.rst:2032 +#: ../../c-api/init.rst:2043 +msgid "Always :c:data:`Py_None`." +msgstr "" + +#: ../../c-api/init.rst:2029 +msgid ":c:data:`PyTrace_EXCEPTION`" +msgstr "" + +#: ../../c-api/init.rst:2029 +msgid "Exception information as returned by :func:`sys.exc_info`." +msgstr "" + +#: ../../c-api/init.rst:2032 +msgid ":c:data:`PyTrace_LINE`" +msgstr "" + +#: ../../c-api/init.rst:2034 +msgid ":c:data:`PyTrace_RETURN`" +msgstr "" + +#: ../../c-api/init.rst:2034 +msgid "" +"Value being returned to the caller, or ``NULL`` if caused by an exception." +msgstr "" + +#: ../../c-api/init.rst:2037 +msgid ":c:data:`PyTrace_C_CALL`" +msgstr "" + +#: ../../c-api/init.rst:2037 ../../c-api/init.rst:2039 +#: ../../c-api/init.rst:2041 +msgid "Function object being called." +msgstr "" + +#: ../../c-api/init.rst:2039 +msgid ":c:data:`PyTrace_C_EXCEPTION`" +msgstr "" + +#: ../../c-api/init.rst:2041 +msgid ":c:data:`PyTrace_C_RETURN`" +msgstr "" + +#: ../../c-api/init.rst:2043 +msgid ":c:data:`PyTrace_OPCODE`" +msgstr "" + +#: ../../c-api/init.rst:2048 +msgid "" +"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " +"a new call to a function or method is being reported, or a new entry into a " +"generator. Note that the creation of the iterator for a generator function " +"is not reported as there is no control transfer to the Python bytecode in " +"the corresponding frame." +msgstr "" + +#: ../../c-api/init.rst:2057 +msgid "" +"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " +"an exception has been raised. The callback function is called with this " +"value for *what* when after any bytecode is processed after which the " +"exception becomes set within the frame being executed. The effect of this " +"is that as exception propagation causes the Python stack to unwind, the " +"callback is called upon return to each frame as the exception propagates. " +"Only trace functions receives these events; they are not needed by the " +"profiler." +msgstr "" + +#: ../../c-api/init.rst:2068 +msgid "" +"The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " +"function (but not a profiling function) when a line-number event is being " +"reported. It may be disabled for a frame by " +"setting :attr:`~frame.f_trace_lines` to *0* on that frame." +msgstr "" + +#: ../../c-api/init.rst:2076 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a call is about to return." +msgstr "" + +#: ../../c-api/init.rst:2082 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function is about to be called." +msgstr "" + +#: ../../c-api/init.rst:2088 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function has raised an exception." +msgstr "" + +#: ../../c-api/init.rst:2094 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function has returned." +msgstr "" + +#: ../../c-api/init.rst:2100 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " +"not profiling functions) when a new opcode is about to be executed. This " +"event is not emitted by default: it must be explicitly requested by " +"setting :attr:`~frame.f_trace_opcodes` to *1* on the frame." +msgstr "" + +#: ../../c-api/init.rst:2108 +msgid "" +"Set the profiler function to *func*. The *obj* parameter is passed to the " +"function as its first parameter, and may be any Python object, or ``NULL``. " +"If the profile function needs to maintain state, using a different value for " +"*obj* for each thread provides a convenient and thread-safe place to store " +"it. The profile function is called for all monitored events " +"except :c:data:`PyTrace_LINE` :c:data:`PyTrace_OPCODE` " +"and :c:data:`PyTrace_EXCEPTION`." +msgstr "" + +#: ../../c-api/init.rst:2115 +msgid "See also the :func:`sys.setprofile` function." +msgstr "" + +#: ../../c-api/init.rst:2121 +msgid "" +"Like :c:func:`PyEval_SetProfile` but sets the profile function in all " +"running threads belonging to the current interpreter instead of the setting " +"it only on the current thread." +msgstr "" + +#: ../../c-api/init.rst:2126 +msgid "" +"As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " +"while setting the profile functions in all threads." +msgstr "" + +#: ../../c-api/init.rst:2134 +msgid "" +"Set the tracing function to *func*. This is similar " +"to :c:func:`PyEval_SetProfile`, except the tracing function does receive " +"line-number events and per-opcode events, but does not receive any event " +"related to C function objects being called. Any trace function registered " +"using :c:func:`PyEval_SetTrace` will not " +"receive :c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION` " +"or :c:data:`PyTrace_C_RETURN` as a value for the *what* parameter." +msgstr "" + +#: ../../c-api/init.rst:2141 +msgid "See also the :func:`sys.settrace` function." +msgstr "" + +#: ../../c-api/init.rst:2147 +msgid "" +"Like :c:func:`PyEval_SetTrace` but sets the tracing function in all running " +"threads belonging to the current interpreter instead of the setting it only " +"on the current thread." +msgstr "" + +#: ../../c-api/init.rst:2152 +msgid "" +"As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " +"while setting the trace functions in all threads." +msgstr "" + +#: ../../c-api/init.rst:2158 +msgid "Reference tracing" +msgstr "" + +#: ../../c-api/init.rst:2164 +msgid "" +"The type of the trace function registered " +"using :c:func:`PyRefTracer_SetTracer`. The first parameter is a Python " +"object that has been just created (when **event** is set " +"to :c:data:`PyRefTracer_CREATE`) or about to be destroyed (when **event** is " +"set to :c:data:`PyRefTracer_DESTROY`). The **data** argument is the opaque " +"pointer that was provided when :c:func:`PyRefTracer_SetTracer` was called." +msgstr "" + +#: ../../c-api/init.rst:2174 +msgid "" +"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " +"a Python object has been created." +msgstr "" + +#: ../../c-api/init.rst:2179 +msgid "" +"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " +"a Python object has been destroyed." +msgstr "" + +#: ../../c-api/init.rst:2184 +msgid "" +"Register a reference tracer function. The function will be called when a new " +"Python has been created or when an object is going to be destroyed. If " +"**data** is provided it must be an opaque pointer that will be provided when " +"the tracer function is called. Return ``0`` on success. Set an exception and " +"return ``-1`` on error." +msgstr "" + +#: ../../c-api/init.rst:2190 +msgid "" +"Not that tracer functions **must not** create Python objects inside or " +"otherwise the call will be re-entrant. The tracer also **must not** clear " +"any existing exception or set an exception. A :term:`thread state` will be " +"active every time the tracer function is called." +msgstr "" + +#: ../../c-api/init.rst:2195 ../../c-api/init.rst:2206 +msgid "" +"There must be an :term:`attached thread state` when calling this function." +msgstr "" + +#: ../../c-api/init.rst:2201 +msgid "" +"Get the registered reference tracer function and the value of the opaque " +"data pointer that was registered when :c:func:`PyRefTracer_SetTracer` was " +"called. If no tracer was registered this function will return NULL and will " +"set the **data** pointer to NULL." +msgstr "" + +#: ../../c-api/init.rst:2213 +msgid "Advanced Debugger Support" +msgstr "" + +#: ../../c-api/init.rst:2218 +msgid "" +"These functions are only intended to be used by advanced debugging tools." +msgstr "" + +#: ../../c-api/init.rst:2223 +msgid "" +"Return the interpreter state object at the head of the list of all such " +"objects." +msgstr "" + +#: ../../c-api/init.rst:2228 +msgid "Return the main interpreter state object." +msgstr "" + +#: ../../c-api/init.rst:2233 +msgid "" +"Return the next interpreter state object after *interp* from the list of all " +"such objects." +msgstr "" + +#: ../../c-api/init.rst:2239 +msgid "" +"Return the pointer to the first :c:type:`PyThreadState` object in the list " +"of threads associated with the interpreter *interp*." +msgstr "" + +#: ../../c-api/init.rst:2245 +msgid "" +"Return the next thread state object after *tstate* from the list of all such " +"objects belonging to the same :c:type:`PyInterpreterState` object." +msgstr "" + +#: ../../c-api/init.rst:2252 +msgid "Thread Local Storage Support" +msgstr "" + +#: ../../c-api/init.rst:2256 +msgid "" +"The Python interpreter provides low-level support for thread-local storage " +"(TLS) which wraps the underlying native TLS implementation to support the " +"Python-level thread local storage API (:class:`threading.local`). The " +"CPython C level APIs are similar to those offered by pthreads and Windows: " +"use a thread key and functions to associate a :c:expr:`void*` value per " +"thread." +msgstr "" + +#: ../../c-api/init.rst:2263 +msgid "" +"A :term:`thread state` does *not* need to be :term:`attached ` when calling these functions; they suppl their own locking." +msgstr "" + +#: ../../c-api/init.rst:2266 +msgid "" +"Note that :file:`Python.h` does not include the declaration of the TLS APIs, " +"you need to include :file:`pythread.h` to use thread-local storage." +msgstr "" + +#: ../../c-api/init.rst:2270 +msgid "" +"None of these API functions handle memory management on behalf of " +"the :c:expr:`void*` values. You need to allocate and deallocate them " +"yourself. If the :c:expr:`void*` values happen to be :c:expr:`PyObject*`, " +"these functions don't do refcount operations on them either." +msgstr "" + +#: ../../c-api/init.rst:2278 +msgid "Thread Specific Storage (TSS) API" +msgstr "" + +#: ../../c-api/init.rst:2280 +msgid "" +"TSS API is introduced to supersede the use of the existing TLS API within " +"the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " +"instead of :c:expr:`int` to represent thread keys." +msgstr "" + +#: ../../c-api/init.rst:2286 +msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" +msgstr "" + +#: ../../c-api/init.rst:2291 +msgid "" +"This data structure represents the state of a thread key, the definition of " +"which may depend on the underlying TLS implementation, and it has an " +"internal field representing the key's initialization state. There are no " +"public members in this structure." +msgstr "" + +#: ../../c-api/init.rst:2296 +msgid "" +"When :ref:`Py_LIMITED_API ` is not defined, static allocation of " +"this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." +msgstr "" + +#: ../../c-api/init.rst:2302 +msgid "" +"This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " +"that this macro won't be defined with :ref:`Py_LIMITED_API `." +msgstr "" + +#: ../../c-api/init.rst:2307 +msgid "Dynamic Allocation" +msgstr "" + +#: ../../c-api/init.rst:2309 +msgid "" +"Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " +"built with :ref:`Py_LIMITED_API `, where static allocation of this " +"type is not possible due to its implementation being opaque at build time." +msgstr "" + +#: ../../c-api/init.rst:2316 +msgid "" +"Return a value which is the same state as a value initialized " +"with :c:macro:`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic " +"allocation failure." +msgstr "" + +#: ../../c-api/init.rst:2323 +msgid "" +"Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " +"calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " +"have been unassigned. This is a no-op if the *key* argument is ``NULL``." +msgstr "" + +#: ../../c-api/init.rst:2329 +msgid "" +"A freed key becomes a dangling pointer. You should reset the key to ``NULL``." +msgstr "" + +#: ../../c-api/init.rst:2334 +msgid "Methods" +msgstr "" + +#: ../../c-api/init.rst:2336 +msgid "" +"The parameter *key* of these functions must not be ``NULL``. Moreover, the " +"behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " +"undefined if the given :c:type:`Py_tss_t` has not been initialized " +"by :c:func:`PyThread_tss_create`." +msgstr "" + +#: ../../c-api/init.rst:2344 +msgid "" +"Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " +"by :c:func:`PyThread_tss_create`." +msgstr "" + +#: ../../c-api/init.rst:2350 +msgid "" +"Return a zero value on successful initialization of a TSS key. The behavior " +"is undefined if the value pointed to by the *key* argument is not " +"initialized by :c:macro:`Py_tss_NEEDS_INIT`. This function can be called " +"repeatedly on the same key -- calling it on an already initialized key is a " +"no-op and immediately returns success." +msgstr "" + +#: ../../c-api/init.rst:2359 +msgid "" +"Destroy a TSS key to forget the values associated with the key across all " +"threads, and change the key's initialization state to uninitialized. A " +"destroyed key is able to be initialized again " +"by :c:func:`PyThread_tss_create`. This function can be called repeatedly on " +"the same key -- calling it on an already destroyed key is a no-op." +msgstr "" + +#: ../../c-api/init.rst:2368 +msgid "" +"Return a zero value to indicate successfully associating a :c:expr:`void*` " +"value with a TSS key in the current thread. Each thread has a distinct " +"mapping of the key to a :c:expr:`void*` value." +msgstr "" + +#: ../../c-api/init.rst:2375 +msgid "" +"Return the :c:expr:`void*` value associated with a TSS key in the current " +"thread. This returns ``NULL`` if no value is associated with the key in the " +"current thread." +msgstr "" + +#: ../../c-api/init.rst:2383 +msgid "Thread Local Storage (TLS) API" +msgstr "" + +#: ../../c-api/init.rst:2385 +msgid "" +"This API is superseded by :ref:`Thread Specific Storage (TSS) API `." +msgstr "" + +#: ../../c-api/init.rst:2390 +msgid "" +"This version of the API does not support platforms where the native TLS key " +"is defined in a way that cannot be safely cast to ``int``. On such " +"platforms, :c:func:`PyThread_create_key` will return immediately with a " +"failure status, and the other TLS functions will all be no-ops on such " +"platforms." +msgstr "" + +#: ../../c-api/init.rst:2395 +msgid "" +"Due to the compatibility problem noted above, this version of the API should " +"not be used in new code." +msgstr "" + +#: ../../c-api/init.rst:2406 +msgid "Synchronization Primitives" +msgstr "" + +#: ../../c-api/init.rst:2408 +msgid "The C-API provides a basic mutual exclusion lock." +msgstr "" + +#: ../../c-api/init.rst:2412 +msgid "" +"A mutual exclusion lock. The :c:type:`!PyMutex` should be initialized to " +"zero to represent the unlocked state. For example::" +msgstr "" + +#: ../../c-api/init.rst:2415 +msgid "PyMutex mutex = {0};" +msgstr "" + +#: ../../c-api/init.rst:2417 +msgid "" +"Instances of :c:type:`!PyMutex` should not be copied or moved. Both the " +"contents and address of a :c:type:`!PyMutex` are meaningful, and it must " +"remain at a fixed, writable location in memory." +msgstr "" + +#: ../../c-api/init.rst:2423 +msgid "" +"A :c:type:`!PyMutex` currently occupies one byte, but the size should be " +"considered unstable. The size may change in future Python releases without " +"a deprecation period." +msgstr "" + +#: ../../c-api/init.rst:2431 +msgid "" +"Lock mutex *m*. If another thread has already locked it, the calling thread " +"will block until the mutex is unlocked. While blocked, the thread will " +"temporarily detach the :term:`thread state ` if one " +"exists." +msgstr "" + +#: ../../c-api/init.rst:2439 +msgid "" +"Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " +"issue a fatal error." +msgstr "" + +#: ../../c-api/init.rst:2446 +msgid "Returns non-zero if the mutex *m* is currently locked, zero otherwise." +msgstr "" + +#: ../../c-api/init.rst:2450 +msgid "" +"This function is intended for use in assertions and debugging only and " +"should not be used to make concurrency control decisions, as the lock state " +"may change immediately after the check." +msgstr "" + +#: ../../c-api/init.rst:2459 +msgid "Python Critical Section API" +msgstr "" + +#: ../../c-api/init.rst:2461 +msgid "" +"The critical section API provides a deadlock avoidance layer on top of per-" +"object locks for :term:`free-threaded ` CPython. They are " +"intended to replace reliance on the :term:`global interpreter lock`, and are " +"no-ops in versions of Python with the global interpreter lock." +msgstr "" + +#: ../../c-api/init.rst:2466 +msgid "" +"Critical sections avoid deadlocks by implicitly suspending active critical " +"sections and releasing the locks during calls " +"to :c:func:`PyEval_SaveThread`. When :c:func:`PyEval_RestoreThread` is " +"called, the most recent critical section is resumed, and its locks " +"reacquired. This means the critical section API provides weaker guarantees " +"than traditional locks -- they are useful because their behavior is similar " +"to the :term:`GIL`." +msgstr "" + +#: ../../c-api/init.rst:2473 +msgid "" +"Variants that accept :c:type:`PyMutex` pointers rather than Python objects " +"are also available. Use these variants to start a critical section in a " +"situation where there is no :c:type:`PyObject` -- for example, when working " +"with a C type that does not extend or wrap :c:type:`PyObject` but still " +"needs to call into the C API in a manner that might lead to deadlocks." +msgstr "" + +#: ../../c-api/init.rst:2479 +msgid "" +"The functions and structs used by the macros are exposed for cases where C " +"macros are not available. They should only be used as in the given macro " +"expansions. Note that the sizes and contents of the structures may change in " +"future Python versions." +msgstr "" + +#: ../../c-api/init.rst:2486 +msgid "" +"Operations that need to lock two objects at once must " +"use :c:macro:`Py_BEGIN_CRITICAL_SECTION2`. You *cannot* use nested critical " +"sections to lock more than one object at once, because the inner critical " +"section may suspend the outer critical sections. This API does not provide " +"a way to lock more than two objects at once." +msgstr "" + +#: ../../c-api/init.rst:2492 +msgid "Example usage::" +msgstr "" + +#: ../../c-api/init.rst:2494 +msgid "" +"static PyObject *\n" +"set_field(MyObject *self, PyObject *value)\n" +"{\n" +" Py_BEGIN_CRITICAL_SECTION(self);\n" +" Py_SETREF(self->field, Py_XNewRef(value));\n" +" Py_END_CRITICAL_SECTION();\n" +" Py_RETURN_NONE;\n" +"}" +msgstr "" + +#: ../../c-api/init.rst:2503 +msgid "" +"In the above example, :c:macro:`Py_SETREF` calls :c:macro:`Py_DECREF`, which " +"can call arbitrary code through an object's deallocation function. The " +"critical section API avoids potential deadlocks due to reentrancy and lock " +"ordering by allowing the runtime to temporarily suspend the critical section " +"if the code triggered by the finalizer blocks and " +"calls :c:func:`PyEval_SaveThread`." +msgstr "" + +#: ../../c-api/init.rst:2511 +msgid "" +"Acquires the per-object lock for the object *op* and begins a critical " +"section." +msgstr "" + +#: ../../c-api/init.rst:2514 ../../c-api/init.rst:2528 +#: ../../c-api/init.rst:2545 ../../c-api/init.rst:2560 +#: ../../c-api/init.rst:2574 ../../c-api/init.rst:2591 +msgid "In the free-threaded build, this macro expands to::" +msgstr "" + +#: ../../c-api/init.rst:2516 +msgid "" +"{\n" +" PyCriticalSection _py_cs;\n" +" PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" +msgstr "" + +#: ../../c-api/init.rst:2520 ../../c-api/init.rst:2566 +msgid "In the default build, this macro expands to ``{``." +msgstr "" + +#: ../../c-api/init.rst:2526 +msgid "Locks the mutex *m* and begins a critical section." +msgstr "" + +#: ../../c-api/init.rst:2530 +msgid "" +"{\n" +" PyCriticalSection _py_cs;\n" +" PyCriticalSection_BeginMutex(&_py_cs, m)" +msgstr "" + +#: ../../c-api/init.rst:2534 +msgid "" +"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION`, there is no cast for " +"the argument of the macro - it must be a :c:type:`PyMutex` pointer." +msgstr "" + +#: ../../c-api/init.rst:2537 ../../c-api/init.rst:2583 +msgid "On the default build, this macro expands to ``{``." +msgstr "" + +#: ../../c-api/init.rst:2543 +msgid "Ends the critical section and releases the per-object lock." +msgstr "" + +#: ../../c-api/init.rst:2547 +msgid "" +" PyCriticalSection_End(&_py_cs);\n" +"}" +msgstr "" + +#: ../../c-api/init.rst:2550 ../../c-api/init.rst:2596 +msgid "In the default build, this macro expands to ``}``." +msgstr "" + +#: ../../c-api/init.rst:2556 +msgid "" +"Acquires the per-objects locks for the objects *a* and *b* and begins a " +"critical section. The locks are acquired in a consistent order (lowest " +"address first) to avoid lock ordering deadlocks." +msgstr "" + +#: ../../c-api/init.rst:2562 +msgid "" +"{\n" +" PyCriticalSection2 _py_cs2;\n" +" PyCriticalSection2_Begin(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" +msgstr "" + +#: ../../c-api/init.rst:2572 +msgid "Locks the mutexes *m1* and *m2* and begins a critical section." +msgstr "" + +#: ../../c-api/init.rst:2576 +msgid "" +"{\n" +" PyCriticalSection2 _py_cs2;\n" +" PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2)" +msgstr "" + +#: ../../c-api/init.rst:2580 +msgid "" +"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, there is no cast for " +"the arguments of the macro - they must be :c:type:`PyMutex` pointers." +msgstr "" + +#: ../../c-api/init.rst:2589 +msgid "Ends the critical section and releases the per-object locks." +msgstr "" + +#: ../../c-api/init.rst:2593 +msgid "" +" PyCriticalSection2_End(&_py_cs2);\n" +"}" +msgstr "" + +#: ../../c-api/init.rst:350 +msgid "PyEval_InitThreads()" +msgstr "" + +#: ../../c-api/init.rst:350 +msgid "modules (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:712 +msgid "path (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:712 ../../c-api/init.rst:1222 +#: ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "module" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "builtins" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "__main__" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "sys" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:712 +msgid "search" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:712 +msgid "path" +msgstr "" + +#: ../../c-api/init.rst:350 ../../c-api/init.rst:1814 ../../c-api/init.rst:1867 +msgid "Py_FinalizeEx (C function)" +msgstr "" + +#: ../../c-api/init.rst:572 +msgid "Py_Initialize()" +msgstr "" + +#: ../../c-api/init.rst:572 ../../c-api/init.rst:810 +msgid "main()" +msgstr "" + +#: ../../c-api/init.rst:572 +msgid "Py_GetPath()" +msgstr "" + +#: ../../c-api/init.rst:690 +msgid "executable (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:745 ../../c-api/init.rst:787 ../../c-api/init.rst:801 +msgid "version (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:757 +msgid "platform (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:774 +msgid "copyright (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:810 +msgid "Py_FatalError()" +msgstr "" + +#: ../../c-api/init.rst:810 +msgid "argv (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:930 +msgid "global interpreter lock" +msgstr "" + +#: ../../c-api/init.rst:930 +msgid "interpreter lock" +msgstr "" + +#: ../../c-api/init.rst:930 +msgid "lock, interpreter" +msgstr "" + +#: ../../c-api/init.rst:944 +msgid "setswitchinterval (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:953 +msgid "PyThreadState (C type)" +msgstr "" + +#: ../../c-api/init.rst:989 +msgid "Py_BEGIN_ALLOW_THREADS (C macro)" +msgstr "" + +#: ../../c-api/init.rst:989 +msgid "Py_END_ALLOW_THREADS (C macro)" +msgstr "" + +#: ../../c-api/init.rst:1005 +msgid "PyEval_RestoreThread (C function)" +msgstr "" + +#: ../../c-api/init.rst:1005 +msgid "PyEval_SaveThread (C function)" +msgstr "" + +#: ../../c-api/init.rst:1200 +msgid "PyEval_AcquireThread()" +msgstr "" + +#: ../../c-api/init.rst:1200 +msgid "PyEval_ReleaseThread()" +msgstr "" + +#: ../../c-api/init.rst:1200 +msgid "PyEval_SaveThread()" +msgstr "" + +#: ../../c-api/init.rst:1200 +msgid "PyEval_RestoreThread()" +msgstr "" + +#: ../../c-api/init.rst:1222 +msgid "_thread" +msgstr "" + +#: ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "stdout (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "stderr (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:1750 ../../c-api/init.rst:1849 +msgid "stdin (in module sys)" +msgstr "" + +#: ../../c-api/init.rst:1814 +msgid "Py_Initialize (C function)" +msgstr "" + +#: ../../c-api/init.rst:1844 +msgid "close (in module os)" +msgstr "" diff --git a/c-api/init_config.po b/c-api/init_config.po new file mode 100644 index 0000000..69281dc --- /dev/null +++ b/c-api/init_config.po @@ -0,0 +1,3384 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/init_config.rst:7 +msgid "Python Initialization Configuration" +msgstr "" + +#: ../../c-api/init_config.rst:13 +msgid "PyInitConfig C API" +msgstr "" + +#: ../../c-api/init_config.rst:17 +msgid "Python can be initialized with :c:func:`Py_InitializeFromInitConfig`." +msgstr "" + +#: ../../c-api/init_config.rst:19 ../../c-api/init_config.rst:650 +msgid "" +"The :c:func:`Py_RunMain` function can be used to write a customized Python " +"program." +msgstr "" + +#: ../../c-api/init_config.rst:22 ../../c-api/init_config.rst:653 +msgid "" +"See also :ref:`Initialization, Finalization, and Threads `." +msgstr "" + +#: ../../c-api/init_config.rst:25 +msgid ":pep:`741` \"Python Configuration C API\"." +msgstr "" + +#: ../../c-api/init_config.rst:29 ../../c-api/init_config.rst:660 +msgid "Example" +msgstr "" + +#: ../../c-api/init_config.rst:31 +msgid "" +"Example of customized Python always running with the :ref:`Python " +"Development Mode ` enabled; return ``-1`` on error:" +msgstr "" + +#: ../../c-api/init_config.rst:34 +msgid "" +"int init_python(void)\n" +"{\n" +" PyInitConfig *config = PyInitConfig_Create();\n" +" if (config == NULL) {\n" +" printf(\"PYTHON INIT ERROR: memory allocation failed\\n\");\n" +" return -1;\n" +" }\n" +"\n" +" // Enable the Python Development Mode\n" +" if (PyInitConfig_SetInt(config, \"dev_mode\", 1) < 0) {\n" +" goto error;\n" +" }\n" +"\n" +" // Initialize Python with the configuration\n" +" if (Py_InitializeFromInitConfig(config) < 0) {\n" +" goto error;\n" +" }\n" +" PyInitConfig_Free(config);\n" +" return 0;\n" +"\n" +"error:\n" +" {\n" +" // Display the error message.\n" +" //\n" +" // This uncommon braces style is used, because you cannot make\n" +" // goto targets point to variable declarations.\n" +" const char *err_msg;\n" +" (void)PyInitConfig_GetError(config, &err_msg);\n" +" printf(\"PYTHON INIT ERROR: %s\\n\", err_msg);\n" +" PyInitConfig_Free(config);\n" +" return -1;\n" +" }\n" +"}" +msgstr "" + +#: ../../c-api/init_config.rst:71 +msgid "Create Config" +msgstr "" + +#: ../../c-api/init_config.rst:75 +msgid "Opaque structure to configure the Python initialization." +msgstr "" + +#: ../../c-api/init_config.rst:80 +msgid "" +"Create a new initialization configuration using :ref:`Isolated Configuration " +"` default values." +msgstr "" + +#: ../../c-api/init_config.rst:83 +msgid "It must be freed by :c:func:`PyInitConfig_Free`." +msgstr "" + +#: ../../c-api/init_config.rst:85 +msgid "Return ``NULL`` on memory allocation failure." +msgstr "" + +#: ../../c-api/init_config.rst:90 +msgid "Free memory of the initialization configuration *config*." +msgstr "" + +#: ../../c-api/init_config.rst:92 +msgid "If *config* is ``NULL``, no operation is performed." +msgstr "" + +#: ../../c-api/init_config.rst:96 +msgid "Error Handling" +msgstr "" + +#: ../../c-api/init_config.rst:100 +msgid "Get the *config* error message." +msgstr "" + +#: ../../c-api/init_config.rst:102 +msgid "Set *\\*err_msg* and return ``1`` if an error is set." +msgstr "" + +#: ../../c-api/init_config.rst:103 +msgid "Set *\\*err_msg* to ``NULL`` and return ``0`` otherwise." +msgstr "" + +#: ../../c-api/init_config.rst:105 +msgid "An error message is an UTF-8 encoded string." +msgstr "" + +#: ../../c-api/init_config.rst:107 +msgid "If *config* has an exit code, format the exit code as an error message." +msgstr "" + +#: ../../c-api/init_config.rst:110 +msgid "" +"The error message remains valid until another ``PyInitConfig`` function is " +"called with *config*. The caller doesn't have to free the error message." +msgstr "" + +#: ../../c-api/init_config.rst:117 +msgid "Get the *config* exit code." +msgstr "" + +#: ../../c-api/init_config.rst:119 +msgid "Set *\\*exitcode* and return ``1`` if *config* has an exit code set." +msgstr "" + +#: ../../c-api/init_config.rst:120 +msgid "Return ``0`` if *config* has no exit code set." +msgstr "" + +#: ../../c-api/init_config.rst:122 +msgid "" +"Only the ``Py_InitializeFromInitConfig()`` function can set an exit code if " +"the ``parse_argv`` option is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:125 +msgid "" +"An exit code can be set when parsing the command line failed (exit code " +"``2``) or when a command line option asks to display the command line help " +"(exit code ``0``)." +msgstr "" + +#: ../../c-api/init_config.rst:131 +msgid "Get Options" +msgstr "" + +#: ../../c-api/init_config.rst:133 ../../c-api/init_config.rst:187 +#: ../../c-api/init_config.rst:559 +msgid "" +"The configuration option *name* parameter must be a non-NULL null-terminated " +"UTF-8 encoded string. See :ref:`Configuration Options `." +msgstr "" + +#: ../../c-api/init_config.rst:138 +msgid "Test if the configuration has an option called *name*." +msgstr "" + +#: ../../c-api/init_config.rst:140 +msgid "Return ``1`` if the option exists, or return ``0`` otherwise." +msgstr "" + +#: ../../c-api/init_config.rst:145 +msgid "Get an integer configuration option." +msgstr "" + +#: ../../c-api/init_config.rst:147 ../../c-api/init_config.rst:156 +msgid "Set *\\*value*, and return ``0`` on success." +msgstr "" + +#: ../../c-api/init_config.rst:148 ../../c-api/init_config.rst:157 +#: ../../c-api/init_config.rst:172 ../../c-api/init_config.rst:200 +#: ../../c-api/init_config.rst:209 ../../c-api/init_config.rst:218 +#: ../../c-api/init_config.rst:233 ../../c-api/init_config.rst:249 +msgid "Set an error in *config* and return ``-1`` on error." +msgstr "" + +#: ../../c-api/init_config.rst:153 +msgid "" +"Get a string configuration option as a null-terminated UTF-8 encoded string." +msgstr "" + +#: ../../c-api/init_config.rst:159 +msgid "" +"*\\*value* can be set to ``NULL`` if the option is an optional string and " +"the option is unset." +msgstr "" + +#: ../../c-api/init_config.rst:162 +msgid "" +"On success, the string must be released with ``free(value)`` if it's not " +"``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:168 +msgid "" +"Get a string list configuration option as an array of null-terminated UTF-8 " +"encoded strings." +msgstr "" + +#: ../../c-api/init_config.rst:171 +msgid "Set *\\*length* and *\\*value*, and return ``0`` on success." +msgstr "" + +#: ../../c-api/init_config.rst:174 +msgid "" +"On success, the string list must be released with " +"``PyInitConfig_FreeStrList(length, items)``." +msgstr "" + +#: ../../c-api/init_config.rst:180 +msgid "Free memory of a string list created by ``PyInitConfig_GetStrList()``." +msgstr "" + +#: ../../c-api/init_config.rst:185 +msgid "Set Options" +msgstr "" + +#: ../../c-api/init_config.rst:190 +msgid "" +"Some configuration options have side effects on other options. This logic is " +"only implemented when ``Py_InitializeFromInitConfig()`` is called, not by " +"the \"Set\" functions below. For example, setting ``dev_mode`` to ``1`` does " +"not set ``faulthandler`` to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:197 +msgid "Set an integer configuration option." +msgstr "" + +#: ../../c-api/init_config.rst:199 ../../c-api/init_config.rst:208 +#: ../../c-api/init_config.rst:217 ../../c-api/init_config.rst:232 +#: ../../c-api/init_config.rst:248 ../../c-api/init_config.rst:591 +msgid "Return ``0`` on success." +msgstr "" + +#: ../../c-api/init_config.rst:205 +msgid "" +"Set a string configuration option from a null-terminated UTF-8 encoded " +"string. The string is copied." +msgstr "" + +#: ../../c-api/init_config.rst:214 +msgid "" +"Set a string list configuration option from an array of null-terminated " +"UTF-8 encoded strings. The string list is copied." +msgstr "" + +#: ../../c-api/init_config.rst:222 +msgid "Module" +msgstr "" + +#: ../../c-api/init_config.rst:226 +msgid "Add a built-in extension module to the table of built-in modules." +msgstr "" + +#: ../../c-api/init_config.rst:228 +msgid "" +"The new module can be imported by the name *name*, and uses the function " +"*initfunc* as the initialization function called on the first attempted " +"import." +msgstr "" + +#: ../../c-api/init_config.rst:235 +msgid "" +"If Python is initialized multiple times, ``PyInitConfig_AddModule()`` must " +"be called at each Python initialization." +msgstr "" + +#: ../../c-api/init_config.rst:238 +msgid "Similar to the :c:func:`PyImport_AppendInittab` function." +msgstr "" + +#: ../../c-api/init_config.rst:242 +msgid "Initialize Python" +msgstr "" + +#: ../../c-api/init_config.rst:246 +msgid "Initialize Python from the initialization configuration." +msgstr "" + +#: ../../c-api/init_config.rst:250 +msgid "Set an exit code in *config* and return ``-1`` if Python wants to exit." +msgstr "" + +#: ../../c-api/init_config.rst:253 +msgid "See ``PyInitConfig_GetExitcode()`` for the exit code case." +msgstr "" + +#: ../../c-api/init_config.rst:259 +msgid "Configuration Options" +msgstr "" + +#: ../../c-api/init_config.rst:264 +msgid "Option" +msgstr "" + +#: ../../c-api/init_config.rst:265 +msgid "PyConfig/PyPreConfig member" +msgstr "" + +#: ../../c-api/init_config.rst:266 +msgid "Type" +msgstr "" + +#: ../../c-api/init_config.rst:267 +msgid "Visibility" +msgstr "" + +#: ../../c-api/init_config.rst:268 +msgid "``\"allocator\"``" +msgstr "``\"allocator\"``" + +#: ../../c-api/init_config.rst:269 +msgid ":c:member:`allocator `" +msgstr "" + +#: ../../c-api/init_config.rst:270 ../../c-api/init_config.rst:294 +#: ../../c-api/init_config.rst:322 ../../c-api/init_config.rst:358 +#: ../../c-api/init_config.rst:366 ../../c-api/init_config.rst:378 +#: ../../c-api/init_config.rst:406 ../../c-api/init_config.rst:494 +#: ../../c-api/init_config.rst:522 ../../c-api/init_config.rst:576 +msgid "``int``" +msgstr "``int``" + +#: ../../c-api/init_config.rst:271 ../../c-api/init_config.rst:291 +#: ../../c-api/init_config.rst:299 ../../c-api/init_config.rst:303 +#: ../../c-api/init_config.rst:307 ../../c-api/init_config.rst:311 +#: ../../c-api/init_config.rst:315 ../../c-api/init_config.rst:319 +#: ../../c-api/init_config.rst:327 ../../c-api/init_config.rst:331 +#: ../../c-api/init_config.rst:335 ../../c-api/init_config.rst:347 +#: ../../c-api/init_config.rst:351 ../../c-api/init_config.rst:355 +#: ../../c-api/init_config.rst:359 ../../c-api/init_config.rst:363 +#: ../../c-api/init_config.rst:367 ../../c-api/init_config.rst:375 +#: ../../c-api/init_config.rst:387 ../../c-api/init_config.rst:391 +#: ../../c-api/init_config.rst:395 ../../c-api/init_config.rst:399 +#: ../../c-api/init_config.rst:411 ../../c-api/init_config.rst:415 +#: ../../c-api/init_config.rst:423 ../../c-api/init_config.rst:427 +#: ../../c-api/init_config.rst:439 ../../c-api/init_config.rst:451 +#: ../../c-api/init_config.rst:455 ../../c-api/init_config.rst:459 +#: ../../c-api/init_config.rst:463 ../../c-api/init_config.rst:467 +#: ../../c-api/init_config.rst:471 ../../c-api/init_config.rst:475 +#: ../../c-api/init_config.rst:479 ../../c-api/init_config.rst:483 +#: ../../c-api/init_config.rst:487 ../../c-api/init_config.rst:495 +#: ../../c-api/init_config.rst:503 ../../c-api/init_config.rst:507 +#: ../../c-api/init_config.rst:511 ../../c-api/init_config.rst:515 +#: ../../c-api/init_config.rst:519 ../../c-api/init_config.rst:527 +#: ../../c-api/init_config.rst:543 +msgid "Read-only" +msgstr "" + +#: ../../c-api/init_config.rst:272 +msgid "``\"argv\"``" +msgstr "``\"argv\"``" + +#: ../../c-api/init_config.rst:273 +msgid ":c:member:`argv `" +msgstr "" + +#: ../../c-api/init_config.rst:274 ../../c-api/init_config.rst:402 +#: ../../c-api/init_config.rst:410 ../../c-api/init_config.rst:530 +#: ../../c-api/init_config.rst:578 +msgid "``list[str]``" +msgstr "``list[str]``" + +#: ../../c-api/init_config.rst:275 ../../c-api/init_config.rst:279 +#: ../../c-api/init_config.rst:283 ../../c-api/init_config.rst:287 +#: ../../c-api/init_config.rst:295 ../../c-api/init_config.rst:323 +#: ../../c-api/init_config.rst:339 ../../c-api/init_config.rst:343 +#: ../../c-api/init_config.rst:371 ../../c-api/init_config.rst:379 +#: ../../c-api/init_config.rst:383 ../../c-api/init_config.rst:403 +#: ../../c-api/init_config.rst:407 ../../c-api/init_config.rst:419 +#: ../../c-api/init_config.rst:431 ../../c-api/init_config.rst:435 +#: ../../c-api/init_config.rst:443 ../../c-api/init_config.rst:447 +#: ../../c-api/init_config.rst:491 ../../c-api/init_config.rst:499 +#: ../../c-api/init_config.rst:523 ../../c-api/init_config.rst:531 +#: ../../c-api/init_config.rst:535 ../../c-api/init_config.rst:539 +msgid "Public" +msgstr "" + +#: ../../c-api/init_config.rst:276 +msgid "``\"base_exec_prefix\"``" +msgstr "``\"base_exec_prefix\"``" + +#: ../../c-api/init_config.rst:277 +msgid ":c:member:`base_exec_prefix `" +msgstr "" + +#: ../../c-api/init_config.rst:278 ../../c-api/init_config.rst:282 +#: ../../c-api/init_config.rst:286 ../../c-api/init_config.rst:298 +#: ../../c-api/init_config.rst:334 ../../c-api/init_config.rst:338 +#: ../../c-api/init_config.rst:342 ../../c-api/init_config.rst:350 +#: ../../c-api/init_config.rst:354 ../../c-api/init_config.rst:362 +#: ../../c-api/init_config.rst:430 ../../c-api/init_config.rst:434 +#: ../../c-api/init_config.rst:438 ../../c-api/init_config.rst:442 +#: ../../c-api/init_config.rst:450 ../../c-api/init_config.rst:454 +#: ../../c-api/init_config.rst:458 ../../c-api/init_config.rst:462 +#: ../../c-api/init_config.rst:482 ../../c-api/init_config.rst:486 +#: ../../c-api/init_config.rst:490 ../../c-api/init_config.rst:577 +msgid "``str``" +msgstr "``str``" + +#: ../../c-api/init_config.rst:280 +msgid "``\"base_executable\"``" +msgstr "``\"base_executable\"``" + +#: ../../c-api/init_config.rst:281 +msgid ":c:member:`base_executable `" +msgstr "" + +#: ../../c-api/init_config.rst:284 +msgid "``\"base_prefix\"``" +msgstr "``\"base_prefix\"``" + +#: ../../c-api/init_config.rst:285 +msgid ":c:member:`base_prefix `" +msgstr "" + +#: ../../c-api/init_config.rst:288 +msgid "``\"buffered_stdio\"``" +msgstr "``\"buffered_stdio\"``" + +#: ../../c-api/init_config.rst:289 +msgid ":c:member:`buffered_stdio `" +msgstr "" + +#: ../../c-api/init_config.rst:290 ../../c-api/init_config.rst:302 +#: ../../c-api/init_config.rst:306 ../../c-api/init_config.rst:310 +#: ../../c-api/init_config.rst:314 ../../c-api/init_config.rst:318 +#: ../../c-api/init_config.rst:326 ../../c-api/init_config.rst:330 +#: ../../c-api/init_config.rst:346 ../../c-api/init_config.rst:370 +#: ../../c-api/init_config.rst:374 ../../c-api/init_config.rst:382 +#: ../../c-api/init_config.rst:386 ../../c-api/init_config.rst:390 +#: ../../c-api/init_config.rst:394 ../../c-api/init_config.rst:398 +#: ../../c-api/init_config.rst:414 ../../c-api/init_config.rst:418 +#: ../../c-api/init_config.rst:422 ../../c-api/init_config.rst:426 +#: ../../c-api/init_config.rst:446 ../../c-api/init_config.rst:466 +#: ../../c-api/init_config.rst:470 ../../c-api/init_config.rst:474 +#: ../../c-api/init_config.rst:478 ../../c-api/init_config.rst:498 +#: ../../c-api/init_config.rst:502 ../../c-api/init_config.rst:506 +#: ../../c-api/init_config.rst:510 ../../c-api/init_config.rst:514 +#: ../../c-api/init_config.rst:518 ../../c-api/init_config.rst:526 +#: ../../c-api/init_config.rst:534 ../../c-api/init_config.rst:542 +#: ../../c-api/init_config.rst:575 +msgid "``bool``" +msgstr "``bool``" + +#: ../../c-api/init_config.rst:292 +msgid "``\"bytes_warning\"``" +msgstr "``\"bytes_warning\"``" + +#: ../../c-api/init_config.rst:293 +msgid ":c:member:`bytes_warning `" +msgstr "" + +#: ../../c-api/init_config.rst:296 +msgid "``\"check_hash_pycs_mode\"``" +msgstr "``\"check_hash_pycs_mode\"``" + +#: ../../c-api/init_config.rst:297 +msgid ":c:member:`check_hash_pycs_mode `" +msgstr "" + +#: ../../c-api/init_config.rst:300 +msgid "``\"code_debug_ranges\"``" +msgstr "``\"code_debug_ranges\"``" + +#: ../../c-api/init_config.rst:301 +msgid ":c:member:`code_debug_ranges `" +msgstr "" + +#: ../../c-api/init_config.rst:304 +msgid "``\"coerce_c_locale\"``" +msgstr "``\"coerce_c_locale\"``" + +#: ../../c-api/init_config.rst:305 +msgid ":c:member:`coerce_c_locale `" +msgstr "" + +#: ../../c-api/init_config.rst:308 +msgid "``\"coerce_c_locale_warn\"``" +msgstr "``\"coerce_c_locale_warn\"``" + +#: ../../c-api/init_config.rst:309 +msgid ":c:member:`coerce_c_locale_warn `" +msgstr "" + +#: ../../c-api/init_config.rst:312 +msgid "``\"configure_c_stdio\"``" +msgstr "``\"configure_c_stdio\"``" + +#: ../../c-api/init_config.rst:313 +msgid ":c:member:`configure_c_stdio `" +msgstr "" + +#: ../../c-api/init_config.rst:316 +msgid "``\"configure_locale\"``" +msgstr "``\"configure_locale\"``" + +#: ../../c-api/init_config.rst:317 +msgid ":c:member:`configure_locale `" +msgstr "" + +#: ../../c-api/init_config.rst:320 +msgid "``\"cpu_count\"``" +msgstr "``\"cpu_count\"``" + +#: ../../c-api/init_config.rst:321 +msgid ":c:member:`cpu_count `" +msgstr "" + +#: ../../c-api/init_config.rst:324 +msgid "``\"dev_mode\"``" +msgstr "``\"dev_mode\"``" + +#: ../../c-api/init_config.rst:325 +msgid ":c:member:`dev_mode `" +msgstr "" + +#: ../../c-api/init_config.rst:328 +msgid "``\"dump_refs\"``" +msgstr "``\"dump_refs\"``" + +#: ../../c-api/init_config.rst:329 +msgid ":c:member:`dump_refs `" +msgstr "" + +#: ../../c-api/init_config.rst:332 +msgid "``\"dump_refs_file\"``" +msgstr "``\"dump_refs_file\"``" + +#: ../../c-api/init_config.rst:333 +msgid ":c:member:`dump_refs_file `" +msgstr "" + +#: ../../c-api/init_config.rst:336 +msgid "``\"exec_prefix\"``" +msgstr "``\"exec_prefix\"``" + +#: ../../c-api/init_config.rst:337 +msgid ":c:member:`exec_prefix `" +msgstr "" + +#: ../../c-api/init_config.rst:340 +msgid "``\"executable\"``" +msgstr "``\"executable\"``" + +#: ../../c-api/init_config.rst:341 +msgid ":c:member:`executable `" +msgstr "" + +#: ../../c-api/init_config.rst:344 +msgid "``\"faulthandler\"``" +msgstr "``\"faulthandler\"``" + +#: ../../c-api/init_config.rst:345 +msgid ":c:member:`faulthandler `" +msgstr "" + +#: ../../c-api/init_config.rst:348 +msgid "``\"filesystem_encoding\"``" +msgstr "``\"filesystem_encoding\"``" + +#: ../../c-api/init_config.rst:349 +msgid ":c:member:`filesystem_encoding `" +msgstr "" + +#: ../../c-api/init_config.rst:352 +msgid "``\"filesystem_errors\"``" +msgstr "``\"filesystem_errors\"``" + +#: ../../c-api/init_config.rst:353 +msgid ":c:member:`filesystem_errors `" +msgstr "" + +#: ../../c-api/init_config.rst:356 +msgid "``\"hash_seed\"``" +msgstr "``\"hash_seed\"``" + +#: ../../c-api/init_config.rst:357 +msgid ":c:member:`hash_seed `" +msgstr "" + +#: ../../c-api/init_config.rst:360 +msgid "``\"home\"``" +msgstr "``\"home\"``" + +#: ../../c-api/init_config.rst:361 +msgid ":c:member:`home `" +msgstr "" + +#: ../../c-api/init_config.rst:364 +msgid "``\"import_time\"``" +msgstr "``\"import_time\"``" + +#: ../../c-api/init_config.rst:365 +msgid ":c:member:`import_time `" +msgstr "" + +#: ../../c-api/init_config.rst:368 +msgid "``\"inspect\"``" +msgstr "``\"inspect\"``" + +#: ../../c-api/init_config.rst:369 +msgid ":c:member:`inspect `" +msgstr "" + +#: ../../c-api/init_config.rst:372 +msgid "``\"install_signal_handlers\"``" +msgstr "``\"install_signal_handlers\"``" + +#: ../../c-api/init_config.rst:373 +msgid ":c:member:`install_signal_handlers `" +msgstr "" + +#: ../../c-api/init_config.rst:376 +msgid "``\"int_max_str_digits\"``" +msgstr "``\"int_max_str_digits\"``" + +#: ../../c-api/init_config.rst:377 +msgid ":c:member:`int_max_str_digits `" +msgstr "" + +#: ../../c-api/init_config.rst:380 +msgid "``\"interactive\"``" +msgstr "``\"interactive\"``" + +#: ../../c-api/init_config.rst:381 +msgid ":c:member:`interactive `" +msgstr "" + +#: ../../c-api/init_config.rst:384 +msgid "``\"isolated\"``" +msgstr "``\"isolated\"``" + +#: ../../c-api/init_config.rst:385 +msgid ":c:member:`isolated `" +msgstr "" + +#: ../../c-api/init_config.rst:388 +msgid "``\"legacy_windows_fs_encoding\"``" +msgstr "``\"legacy_windows_fs_encoding\"``" + +#: ../../c-api/init_config.rst:389 +msgid "" +":c:member:`legacy_windows_fs_encoding " +"`" +msgstr "" + +#: ../../c-api/init_config.rst:392 +msgid "``\"legacy_windows_stdio\"``" +msgstr "``\"legacy_windows_stdio\"``" + +#: ../../c-api/init_config.rst:393 +msgid ":c:member:`legacy_windows_stdio `" +msgstr "" + +#: ../../c-api/init_config.rst:396 +msgid "``\"malloc_stats\"``" +msgstr "``\"malloc_stats\"``" + +#: ../../c-api/init_config.rst:397 +msgid ":c:member:`malloc_stats `" +msgstr "" + +#: ../../c-api/init_config.rst:400 +msgid "``\"module_search_paths\"``" +msgstr "``\"module_search_paths\"``" + +#: ../../c-api/init_config.rst:401 +msgid ":c:member:`module_search_paths `" +msgstr "" + +#: ../../c-api/init_config.rst:404 +msgid "``\"optimization_level\"``" +msgstr "``\"optimization_level\"``" + +#: ../../c-api/init_config.rst:405 +msgid ":c:member:`optimization_level `" +msgstr "" + +#: ../../c-api/init_config.rst:408 +msgid "``\"orig_argv\"``" +msgstr "``\"orig_argv\"``" + +#: ../../c-api/init_config.rst:409 +msgid ":c:member:`orig_argv `" +msgstr "" + +#: ../../c-api/init_config.rst:412 +msgid "``\"parse_argv\"``" +msgstr "``\"parse_argv\"``" + +#: ../../c-api/init_config.rst:413 +msgid ":c:member:`parse_argv `" +msgstr "" + +#: ../../c-api/init_config.rst:416 +msgid "``\"parser_debug\"``" +msgstr "``\"parser_debug\"``" + +#: ../../c-api/init_config.rst:417 +msgid ":c:member:`parser_debug `" +msgstr "" + +#: ../../c-api/init_config.rst:420 +msgid "``\"pathconfig_warnings\"``" +msgstr "``\"pathconfig_warnings\"``" + +#: ../../c-api/init_config.rst:421 +msgid ":c:member:`pathconfig_warnings `" +msgstr "" + +#: ../../c-api/init_config.rst:424 +msgid "``\"perf_profiling\"``" +msgstr "``\"perf_profiling\"``" + +#: ../../c-api/init_config.rst:425 +msgid ":c:member:`perf_profiling `" +msgstr "" + +#: ../../c-api/init_config.rst:428 +msgid "``\"platlibdir\"``" +msgstr "``\"platlibdir\"``" + +#: ../../c-api/init_config.rst:429 +msgid ":c:member:`platlibdir `" +msgstr "" + +#: ../../c-api/init_config.rst:432 +msgid "``\"prefix\"``" +msgstr "``\"prefix\"``" + +#: ../../c-api/init_config.rst:433 +msgid ":c:member:`prefix `" +msgstr "" + +#: ../../c-api/init_config.rst:436 +msgid "``\"program_name\"``" +msgstr "``\"program_name\"``" + +#: ../../c-api/init_config.rst:437 +msgid ":c:member:`program_name `" +msgstr "" + +#: ../../c-api/init_config.rst:440 +msgid "``\"pycache_prefix\"``" +msgstr "``\"pycache_prefix\"``" + +#: ../../c-api/init_config.rst:441 +msgid ":c:member:`pycache_prefix `" +msgstr "" + +#: ../../c-api/init_config.rst:444 +msgid "``\"quiet\"``" +msgstr "``\"quiet\"``" + +#: ../../c-api/init_config.rst:445 +msgid ":c:member:`quiet `" +msgstr "" + +#: ../../c-api/init_config.rst:448 +msgid "``\"run_command\"``" +msgstr "``\"run_command\"``" + +#: ../../c-api/init_config.rst:449 +msgid ":c:member:`run_command `" +msgstr "" + +#: ../../c-api/init_config.rst:452 +msgid "``\"run_filename\"``" +msgstr "``\"run_filename\"``" + +#: ../../c-api/init_config.rst:453 +msgid ":c:member:`run_filename `" +msgstr "" + +#: ../../c-api/init_config.rst:456 +msgid "``\"run_module\"``" +msgstr "``\"run_module\"``" + +#: ../../c-api/init_config.rst:457 +msgid ":c:member:`run_module `" +msgstr "" + +#: ../../c-api/init_config.rst:460 +msgid "``\"run_presite\"``" +msgstr "``\"run_presite\"``" + +#: ../../c-api/init_config.rst:461 +msgid ":c:member:`run_presite `" +msgstr "" + +#: ../../c-api/init_config.rst:464 +msgid "``\"safe_path\"``" +msgstr "``\"safe_path\"``" + +#: ../../c-api/init_config.rst:465 +msgid ":c:member:`safe_path `" +msgstr "" + +#: ../../c-api/init_config.rst:468 +msgid "``\"show_ref_count\"``" +msgstr "``\"show_ref_count\"``" + +#: ../../c-api/init_config.rst:469 +msgid ":c:member:`show_ref_count `" +msgstr "" + +#: ../../c-api/init_config.rst:472 +msgid "``\"site_import\"``" +msgstr "``\"site_import\"``" + +#: ../../c-api/init_config.rst:473 +msgid ":c:member:`site_import `" +msgstr "" + +#: ../../c-api/init_config.rst:476 +msgid "``\"skip_source_first_line\"``" +msgstr "``\"skip_source_first_line\"``" + +#: ../../c-api/init_config.rst:477 +msgid ":c:member:`skip_source_first_line `" +msgstr "" + +#: ../../c-api/init_config.rst:480 +msgid "``\"stdio_encoding\"``" +msgstr "``\"stdio_encoding\"``" + +#: ../../c-api/init_config.rst:481 +msgid ":c:member:`stdio_encoding `" +msgstr "" + +#: ../../c-api/init_config.rst:484 +msgid "``\"stdio_errors\"``" +msgstr "``\"stdio_errors\"``" + +#: ../../c-api/init_config.rst:485 +msgid ":c:member:`stdio_errors `" +msgstr "" + +#: ../../c-api/init_config.rst:488 +msgid "``\"stdlib_dir\"``" +msgstr "``\"stdlib_dir\"``" + +#: ../../c-api/init_config.rst:489 +msgid ":c:member:`stdlib_dir `" +msgstr "" + +#: ../../c-api/init_config.rst:492 +msgid "``\"tracemalloc\"``" +msgstr "``\"tracemalloc\"``" + +#: ../../c-api/init_config.rst:493 +msgid ":c:member:`tracemalloc `" +msgstr "" + +#: ../../c-api/init_config.rst:496 +msgid "``\"use_environment\"``" +msgstr "``\"use_environment\"``" + +#: ../../c-api/init_config.rst:497 +msgid ":c:member:`use_environment `" +msgstr "" + +#: ../../c-api/init_config.rst:500 +msgid "``\"use_frozen_modules\"``" +msgstr "``\"use_frozen_modules\"``" + +#: ../../c-api/init_config.rst:501 +msgid ":c:member:`use_frozen_modules `" +msgstr "" + +#: ../../c-api/init_config.rst:504 +msgid "``\"use_hash_seed\"``" +msgstr "``\"use_hash_seed\"``" + +#: ../../c-api/init_config.rst:505 +msgid ":c:member:`use_hash_seed `" +msgstr "" + +#: ../../c-api/init_config.rst:508 +msgid "``\"use_system_logger\"``" +msgstr "``\"use_system_logger\"``" + +#: ../../c-api/init_config.rst:509 +msgid ":c:member:`use_system_logger `" +msgstr "" + +#: ../../c-api/init_config.rst:512 +msgid "``\"user_site_directory\"``" +msgstr "``\"user_site_directory\"``" + +#: ../../c-api/init_config.rst:513 +msgid ":c:member:`user_site_directory `" +msgstr "" + +#: ../../c-api/init_config.rst:516 +msgid "``\"utf8_mode\"``" +msgstr "``\"utf8_mode\"``" + +#: ../../c-api/init_config.rst:517 +msgid ":c:member:`utf8_mode `" +msgstr "" + +#: ../../c-api/init_config.rst:520 +msgid "``\"verbose\"``" +msgstr "``\"verbose\"``" + +#: ../../c-api/init_config.rst:521 +msgid ":c:member:`verbose `" +msgstr "" + +#: ../../c-api/init_config.rst:524 +msgid "``\"warn_default_encoding\"``" +msgstr "``\"warn_default_encoding\"``" + +#: ../../c-api/init_config.rst:525 +msgid ":c:member:`warn_default_encoding `" +msgstr "" + +#: ../../c-api/init_config.rst:528 +msgid "``\"warnoptions\"``" +msgstr "``\"warnoptions\"``" + +#: ../../c-api/init_config.rst:529 +msgid ":c:member:`warnoptions `" +msgstr "" + +#: ../../c-api/init_config.rst:532 +msgid "``\"write_bytecode\"``" +msgstr "``\"write_bytecode\"``" + +#: ../../c-api/init_config.rst:533 +msgid ":c:member:`write_bytecode `" +msgstr "" + +#: ../../c-api/init_config.rst:536 +msgid "``\"xoptions\"``" +msgstr "``\"xoptions\"``" + +#: ../../c-api/init_config.rst:537 +msgid ":c:member:`xoptions `" +msgstr "" + +#: ../../c-api/init_config.rst:538 ../../c-api/init_config.rst:579 +msgid "``dict[str, str]``" +msgstr "" + +#: ../../c-api/init_config.rst:540 +msgid "``\"_pystats\"``" +msgstr "``\"_pystats\"``" + +#: ../../c-api/init_config.rst:541 +msgid ":c:member:`_pystats `" +msgstr "" + +#: ../../c-api/init_config.rst:545 +msgid "Visibility:" +msgstr "" + +#: ../../c-api/init_config.rst:547 +msgid "" +"Public: Can by get by :c:func:`PyConfig_Get` and set " +"by :c:func:`PyConfig_Set`." +msgstr "" + +#: ../../c-api/init_config.rst:549 +msgid "" +"Read-only: Can by get by :c:func:`PyConfig_Get`, but cannot be set " +"by :c:func:`PyConfig_Set`." +msgstr "" + +#: ../../c-api/init_config.rst:554 +msgid "Runtime Python configuration API" +msgstr "" + +#: ../../c-api/init_config.rst:556 +msgid "" +"At runtime, it's possible to get and set configuration options " +"using :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions." +msgstr "" + +#: ../../c-api/init_config.rst:562 +msgid "" +"Some options are read from the :mod:`sys` attributes. For example, the " +"option ``\"argv\"`` is read from :data:`sys.argv`." +msgstr "" + +#: ../../c-api/init_config.rst:568 +msgid "" +"Get the current runtime value of a configuration option as a Python object." +msgstr "" + +#: ../../c-api/init_config.rst:570 ../../c-api/init_config.rst:601 +msgid "Return a new reference on success." +msgstr "" + +#: ../../c-api/init_config.rst:571 ../../c-api/init_config.rst:602 +msgid "Set an exception and return ``NULL`` on error." +msgstr "" + +#: ../../c-api/init_config.rst:573 +msgid "The object type depends on the configuration option. It can be:" +msgstr "" + +#: ../../c-api/init_config.rst:581 ../../c-api/init_config.rst:604 +#: ../../c-api/init_config.rst:619 +msgid "" +"The caller must have an :term:`attached thread state`. The function cannot " +"be called before Python initialization nor after Python finalization." +msgstr "" + +#: ../../c-api/init_config.rst:589 +msgid "Similar to :c:func:`PyConfig_Get`, but get the value as a C int." +msgstr "" + +#: ../../c-api/init_config.rst:592 +msgid "Set an exception and return ``-1`` on error." +msgstr "" + +#: ../../c-api/init_config.rst:599 +msgid "Get all configuration option names as a ``frozenset``." +msgstr "" + +#: ../../c-api/init_config.rst:612 +msgid "Set the current runtime value of a configuration option." +msgstr "" + +#: ../../c-api/init_config.rst:614 +msgid "Raise a :exc:`ValueError` if there is no option *name*." +msgstr "" + +#: ../../c-api/init_config.rst:615 +msgid "Raise a :exc:`ValueError` if *value* is an invalid value." +msgstr "" + +#: ../../c-api/init_config.rst:616 +msgid "Raise a :exc:`ValueError` if the option is read-only (cannot be set)." +msgstr "" + +#: ../../c-api/init_config.rst:617 +msgid "Raise a :exc:`TypeError` if *value* has not the proper type." +msgstr "" + +#: ../../c-api/init_config.rst:622 +msgid "" +"Raises an :ref:`auditing event ` ``cpython.PyConfig_Set`` with " +"arguments ``name``, ``value``." +msgstr "" + +#: ../../c-api/init_config.rst:630 +msgid "PyConfig C API" +msgstr "" + +#: ../../c-api/init_config.rst:634 +msgid "" +"Python can be initialized with :c:func:`Py_InitializeFromConfig` and " +"the :c:type:`PyConfig` structure. It can be preinitialized " +"with :c:func:`Py_PreInitialize` and the :c:type:`PyPreConfig` structure." +msgstr "" + +#: ../../c-api/init_config.rst:638 +msgid "There are two kinds of configuration:" +msgstr "" + +#: ../../c-api/init_config.rst:640 +msgid "" +"The :ref:`Python Configuration ` can be used to build a " +"customized Python which behaves as the regular Python. For example, " +"environment variables and command line arguments are used to configure " +"Python." +msgstr "" + +#: ../../c-api/init_config.rst:645 +msgid "" +"The :ref:`Isolated Configuration ` can be used to embed " +"Python into an application. It isolates Python from the system. For example, " +"environment variables are ignored, the LC_CTYPE locale is left unchanged and " +"no signal handler is registered." +msgstr "" + +#: ../../c-api/init_config.rst:656 +msgid ":pep:`587` \"Python Initialization Configuration\"." +msgstr "" + +#: ../../c-api/init_config.rst:662 +msgid "Example of customized Python always running in isolated mode::" +msgstr "" + +#: ../../c-api/init_config.rst:664 +msgid "" +"int main(int argc, char **argv)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +" config.isolated = 1;\n" +"\n" +" /* Decode command line arguments.\n" +" Implicitly preinitialize Python (in isolated mode). */\n" +" status = PyConfig_SetBytesArgv(&config, argc, argv);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +"\n" +" return Py_RunMain();\n" +"\n" +"exception:\n" +" PyConfig_Clear(&config);\n" +" if (PyStatus_IsExit(status)) {\n" +" return status.exitcode;\n" +" }\n" +" /* Display the error message and exit the process with\n" +" non-zero exit code */\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../c-api/init_config.rst:699 +msgid "PyWideStringList" +msgstr "" + +#: ../../c-api/init_config.rst:703 +msgid "List of ``wchar_t*`` strings." +msgstr "" + +#: ../../c-api/init_config.rst:705 +msgid "" +"If *length* is non-zero, *items* must be non-``NULL`` and all strings must " +"be non-``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:710 +msgid "Methods:" +msgstr "" + +#: ../../c-api/init_config.rst:714 +msgid "Append *item* to *list*." +msgstr "" + +#: ../../c-api/init_config.rst:716 ../../c-api/init_config.rst:727 +msgid "Python must be preinitialized to call this function." +msgstr "" + +#: ../../c-api/init_config.rst:720 +msgid "Insert *item* into *list* at *index*." +msgstr "" + +#: ../../c-api/init_config.rst:722 +msgid "" +"If *index* is greater than or equal to *list* length, append *item* to " +"*list*." +msgstr "" + +#: ../../c-api/init_config.rst:725 +msgid "*index* must be greater than or equal to ``0``." +msgstr "" + +#: ../../c-api/init_config.rst:731 ../../c-api/init_config.rst:751 +#: ../../c-api/init_config.rst:858 ../../c-api/init_config.rst:1177 +msgid "Structure fields:" +msgstr "" + +#: ../../c-api/init_config.rst:735 +msgid "List length." +msgstr "" + +#: ../../c-api/init_config.rst:739 +msgid "List items." +msgstr "" + +#: ../../c-api/init_config.rst:742 +msgid "PyStatus" +msgstr "" + +#: ../../c-api/init_config.rst:746 +msgid "" +"Structure to store an initialization function status: success, error or exit." +msgstr "" + +#: ../../c-api/init_config.rst:749 +msgid "For an error, it can store the C function name which created the error." +msgstr "" + +#: ../../c-api/init_config.rst:755 +msgid "Exit code. Argument passed to ``exit()``." +msgstr "" + +#: ../../c-api/init_config.rst:759 +msgid "Error message." +msgstr "" + +#: ../../c-api/init_config.rst:763 +msgid "Name of the function which created an error, can be ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:767 +msgid "Functions to create a status:" +msgstr "" + +#: ../../c-api/init_config.rst:771 +msgid "Success." +msgstr "" + +#: ../../c-api/init_config.rst:775 +msgid "Initialization error with a message." +msgstr "" + +#: ../../c-api/init_config.rst:777 +msgid "*err_msg* must not be ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:781 +msgid "Memory allocation failure (out of memory)." +msgstr "" + +#: ../../c-api/init_config.rst:785 +msgid "Exit Python with the specified exit code." +msgstr "" + +#: ../../c-api/init_config.rst:787 +msgid "Functions to handle a status:" +msgstr "" + +#: ../../c-api/init_config.rst:791 +msgid "" +"Is the status an error or an exit? If true, the exception must be handled; " +"by calling :c:func:`Py_ExitStatusException` for example." +msgstr "" + +#: ../../c-api/init_config.rst:796 +msgid "Is the result an error?" +msgstr "" + +#: ../../c-api/init_config.rst:800 +msgid "Is the result an exit?" +msgstr "" + +#: ../../c-api/init_config.rst:804 +msgid "" +"Call ``exit(exitcode)`` if *status* is an exit. Print the error message and " +"exit with a non-zero exit code if *status* is an error. Must only be called " +"if ``PyStatus_Exception(status)`` is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:809 +msgid "" +"Internally, Python uses macros which set ``PyStatus.func``, whereas " +"functions to create a status set ``func`` to ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:812 +msgid "Example::" +msgstr "" + +#: ../../c-api/init_config.rst:814 +msgid "" +"PyStatus alloc(void **ptr, size_t size)\n" +"{\n" +" *ptr = PyMem_RawMalloc(size);\n" +" if (*ptr == NULL) {\n" +" return PyStatus_NoMemory();\n" +" }\n" +" return PyStatus_Ok();\n" +"}\n" +"\n" +"int main(int argc, char **argv)\n" +"{\n" +" void *ptr;\n" +" PyStatus status = alloc(&ptr, 16);\n" +" if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +" }\n" +" PyMem_Free(ptr);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../c-api/init_config.rst:836 +msgid "PyPreConfig" +msgstr "" + +#: ../../c-api/init_config.rst:840 +msgid "Structure used to preinitialize Python." +msgstr "" + +#: ../../c-api/init_config.rst:844 +msgid "Function to initialize a preconfiguration:" +msgstr "" + +#: ../../c-api/init_config.rst:848 +msgid "" +"Initialize the preconfiguration with :ref:`Python Configuration `." +msgstr "" + +#: ../../c-api/init_config.rst:853 +msgid "" +"Initialize the preconfiguration with :ref:`Isolated Configuration `." +msgstr "" + +#: ../../c-api/init_config.rst:862 +msgid "Name of the Python memory allocators:" +msgstr "" + +#: ../../c-api/init_config.rst:864 +msgid "" +"``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " +"defaults)." +msgstr "" + +#: ../../c-api/init_config.rst:866 +msgid "" +"``PYMEM_ALLOCATOR_DEFAULT`` (``1``): :ref:`default memory allocators " +"`." +msgstr "" + +#: ../../c-api/init_config.rst:868 +msgid "" +"``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`default memory allocators ` with :ref:`debug hooks `." +msgstr "" + +#: ../../c-api/init_config.rst:871 +msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): use ``malloc()`` of the C library." +msgstr "" + +#: ../../c-api/init_config.rst:872 +msgid "" +"``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` " +"with :ref:`debug hooks `." +msgstr "" + +#: ../../c-api/init_config.rst:874 +msgid "" +"``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " +"`." +msgstr "" + +#: ../../c-api/init_config.rst:876 +msgid "" +"``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " +"allocator ` with :ref:`debug hooks `." +msgstr "" + +#: ../../c-api/init_config.rst:879 +msgid "" +"``PYMEM_ALLOCATOR_MIMALLOC`` (``6``): use ``mimalloc``, a fast malloc " +"replacement." +msgstr "" + +#: ../../c-api/init_config.rst:881 +msgid "" +"``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` (``7``): use ``mimalloc``, a fast malloc " +"replacement with :ref:`debug hooks `." +msgstr "" + +#: ../../c-api/init_config.rst:885 +msgid "" +"``PYMEM_ALLOCATOR_PYMALLOC`` and ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` are not " +"supported if Python is :option:`configured using --without-pymalloc <--" +"without-pymalloc>`." +msgstr "" + +#: ../../c-api/init_config.rst:889 +msgid "" +"``PYMEM_ALLOCATOR_MIMALLOC`` and ``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` are not " +"supported if Python is :option:`configured using --without-mimalloc <--" +"without-mimalloc>` or if the underlying atomic support isn't available." +msgstr "" + +#: ../../c-api/init_config.rst:894 +msgid "See :ref:`Memory Management `." +msgstr "" + +#: ../../c-api/init_config.rst:896 +msgid "Default: ``PYMEM_ALLOCATOR_NOT_SET``." +msgstr "" + +#: ../../c-api/init_config.rst:900 +msgid "Set the LC_CTYPE locale to the user preferred locale." +msgstr "" + +#: ../../c-api/init_config.rst:902 +msgid "" +"If equals to ``0``, set :c:member:`~PyPreConfig.coerce_c_locale` " +"and :c:member:`~PyPreConfig.coerce_c_locale_warn` members to ``0``." +msgstr "" + +#: ../../c-api/init_config.rst:905 ../../c-api/init_config.rst:916 +msgid "See the :term:`locale encoding`." +msgstr "" + +#: ../../c-api/init_config.rst:907 ../../c-api/init_config.rst:962 +#: ../../c-api/init_config.rst:1333 +msgid "Default: ``1`` in Python config, ``0`` in isolated config." +msgstr "" + +#: ../../c-api/init_config.rst:911 +msgid "If equals to ``2``, coerce the C locale." +msgstr "" + +#: ../../c-api/init_config.rst:913 +msgid "" +"If equals to ``1``, read the LC_CTYPE locale to decide if it should be " +"coerced." +msgstr "" + +#: ../../c-api/init_config.rst:918 ../../c-api/init_config.rst:924 +msgid "Default: ``-1`` in Python config, ``0`` in isolated config." +msgstr "" + +#: ../../c-api/init_config.rst:922 +msgid "If non-zero, emit a warning if the C locale is coerced." +msgstr "" + +#: ../../c-api/init_config.rst:928 +msgid "" +":ref:`Python Development Mode `: see :c:member:`PyConfig.dev_mode`." +msgstr "" + +#: ../../c-api/init_config.rst:931 ../../c-api/init_config.rst:1342 +#: ../../c-api/init_config.rst:1398 ../../c-api/init_config.rst:1892 +msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode." +msgstr "" + +#: ../../c-api/init_config.rst:935 +msgid "Isolated mode: see :c:member:`PyConfig.isolated`." +msgstr "" + +#: ../../c-api/init_config.rst:937 ../../c-api/init_config.rst:1569 +msgid "Default: ``0`` in Python mode, ``1`` in isolated mode." +msgstr "" + +#: ../../c-api/init_config.rst:941 +msgid "If non-zero:" +msgstr "" + +#: ../../c-api/init_config.rst:943 +msgid "Set :c:member:`PyPreConfig.utf8_mode` to ``0``," +msgstr "" + +#: ../../c-api/init_config.rst:944 +msgid "Set :c:member:`PyConfig.filesystem_encoding` to ``\"mbcs\"``," +msgstr "" + +#: ../../c-api/init_config.rst:945 +msgid "Set :c:member:`PyConfig.filesystem_errors` to ``\"replace\"``." +msgstr "" + +#: ../../c-api/init_config.rst:947 +msgid "" +"Initialized from the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " +"variable value." +msgstr "" + +#: ../../c-api/init_config.rst:950 ../../c-api/init_config.rst:1583 +msgid "" +"Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " +"Windows specific code." +msgstr "" + +#: ../../c-api/init_config.rst:953 ../../c-api/init_config.rst:1281 +#: ../../c-api/init_config.rst:1288 ../../c-api/init_config.rst:1355 +#: ../../c-api/init_config.rst:1487 ../../c-api/init_config.rst:1505 +#: ../../c-api/init_config.rst:1519 ../../c-api/init_config.rst:1586 +#: ../../c-api/init_config.rst:1600 ../../c-api/init_config.rst:1660 +#: ../../c-api/init_config.rst:1712 ../../c-api/init_config.rst:1774 +#: ../../c-api/init_config.rst:1828 ../../c-api/init_config.rst:1857 +#: ../../c-api/init_config.rst:1971 ../../c-api/init_config.rst:2018 +msgid "Default: ``0``." +msgstr "" + +#: ../../c-api/init_config.rst:957 +msgid "" +"If non-zero, :c:func:`Py_PreInitializeFromArgs` " +"and :c:func:`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument " +"the same way the regular Python parses command line arguments: " +"see :ref:`Command Line Arguments `." +msgstr "" + +#: ../../c-api/init_config.rst:966 +msgid "" +"Use :ref:`environment variables `? " +"See :c:member:`PyConfig.use_environment`." +msgstr "" + +#: ../../c-api/init_config.rst:969 ../../c-api/init_config.rst:1933 +msgid "Default: ``1`` in Python config and ``0`` in isolated config." +msgstr "" + +#: ../../c-api/init_config.rst:973 +msgid "If non-zero, enable the :ref:`Python UTF-8 Mode `." +msgstr "" + +#: ../../c-api/init_config.rst:975 +msgid "" +"Set to ``0`` or ``1`` by the :option:`-X utf8 <-X>` command line option and " +"the :envvar:`PYTHONUTF8` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:978 +msgid "Also set to ``1`` if the ``LC_CTYPE`` locale is ``C`` or ``POSIX``." +msgstr "" + +#: ../../c-api/init_config.rst:980 +msgid "Default: ``-1`` in Python config and ``0`` in isolated config." +msgstr "" + +#: ../../c-api/init_config.rst:986 +msgid "Preinitialize Python with PyPreConfig" +msgstr "" + +#: ../../c-api/init_config.rst:988 +msgid "The preinitialization of Python:" +msgstr "" + +#: ../../c-api/init_config.rst:990 +msgid "Set the Python memory allocators (:c:member:`PyPreConfig.allocator`)" +msgstr "" + +#: ../../c-api/init_config.rst:991 +msgid "Configure the LC_CTYPE locale (:term:`locale encoding`)" +msgstr "" + +#: ../../c-api/init_config.rst:992 +msgid "" +"Set the :ref:`Python UTF-8 Mode ` " +"(:c:member:`PyPreConfig.utf8_mode`)" +msgstr "" + +#: ../../c-api/init_config.rst:995 +msgid "" +"The current preconfiguration (``PyPreConfig`` type) is stored in " +"``_PyRuntime.preconfig``." +msgstr "" + +#: ../../c-api/init_config.rst:998 +msgid "Functions to preinitialize Python:" +msgstr "" + +#: ../../c-api/init_config.rst:1002 ../../c-api/init_config.rst:1008 +#: ../../c-api/init_config.rst:1017 +msgid "Preinitialize Python from *preconfig* preconfiguration." +msgstr "" + +#: ../../c-api/init_config.rst:1004 ../../c-api/init_config.rst:1013 +#: ../../c-api/init_config.rst:1022 +msgid "*preconfig* must not be ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:1010 +msgid "" +"Parse *argv* command line arguments (bytes strings) " +"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1019 +msgid "" +"Parse *argv* command line arguments (wide strings) " +"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1024 ../../c-api/init_config.rst:2041 +msgid "" +"The caller is responsible to handle exceptions (error or exit) " +"using :c:func:`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." +msgstr "" + +#: ../../c-api/init_config.rst:1027 +msgid "" +"For :ref:`Python Configuration ` " +"(:c:func:`PyPreConfig_InitPythonConfig`), if Python is initialized with " +"command line arguments, the command line arguments must also be passed to " +"preinitialize Python, since they have an effect on the pre-configuration " +"like encodings. For example, the :option:`-X utf8 <-X>` command line option " +"enables the :ref:`Python UTF-8 Mode `." +msgstr "" + +#: ../../c-api/init_config.rst:1034 +msgid "" +"``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " +"before :c:func:`Py_InitializeFromConfig` to install a custom memory " +"allocator. It can be called before :c:func:`Py_PreInitialize` " +"if :c:member:`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." +msgstr "" + +#: ../../c-api/init_config.rst:1039 +msgid "" +"Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " +"be used before the Python preinitialization, whereas calling directly " +"``malloc()`` and ``free()`` is always safe. :c:func:`Py_DecodeLocale` must " +"not be called before the Python preinitialization." +msgstr "" + +#: ../../c-api/init_config.rst:1044 +msgid "" +"Example using the preinitialization to enable the :ref:`Python UTF-8 Mode " +"`::" +msgstr "" + +#: ../../c-api/init_config.rst:1047 +msgid "" +"PyStatus status;\n" +"PyPreConfig preconfig;\n" +"PyPreConfig_InitPythonConfig(&preconfig);\n" +"\n" +"preconfig.utf8_mode = 1;\n" +"\n" +"status = Py_PreInitialize(&preconfig);\n" +"if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +"}\n" +"\n" +"/* at this point, Python speaks UTF-8 */\n" +"\n" +"Py_Initialize();\n" +"/* ... use Python API here ... */\n" +"Py_Finalize();" +msgstr "" + +#: ../../c-api/init_config.rst:1066 +msgid "PyConfig" +msgstr "" + +#: ../../c-api/init_config.rst:1070 +msgid "Structure containing most parameters to configure Python." +msgstr "" + +#: ../../c-api/init_config.rst:1072 +msgid "" +"When done, the :c:func:`PyConfig_Clear` function must be used to release the " +"configuration memory." +msgstr "" + +#: ../../c-api/init_config.rst:1077 +msgid "Structure methods:" +msgstr "" + +#: ../../c-api/init_config.rst:1081 +msgid "" +"Initialize configuration with the :ref:`Python Configuration `." +msgstr "" + +#: ../../c-api/init_config.rst:1086 +msgid "" +"Initialize configuration with the :ref:`Isolated Configuration `." +msgstr "" + +#: ../../c-api/init_config.rst:1091 +msgid "Copy the wide character string *str* into ``*config_str``." +msgstr "" + +#: ../../c-api/init_config.rst:1093 ../../c-api/init_config.rst:1100 +#: ../../c-api/init_config.rst:1107 ../../c-api/init_config.rst:1115 +#: ../../c-api/init_config.rst:1121 ../../c-api/init_config.rst:1138 +msgid ":ref:`Preinitialize Python ` if needed." +msgstr "" + +#: ../../c-api/init_config.rst:1097 +msgid "" +"Decode *str* using :c:func:`Py_DecodeLocale` and set the result into " +"``*config_str``." +msgstr "" + +#: ../../c-api/init_config.rst:1104 +msgid "" +"Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " +"from the *argv* list of wide character strings." +msgstr "" + +#: ../../c-api/init_config.rst:1111 +msgid "" +"Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " +"from the *argv* list of bytes strings. Decode bytes " +"using :c:func:`Py_DecodeLocale`." +msgstr "" + +#: ../../c-api/init_config.rst:1119 +msgid "Set the list of wide strings *list* to *length* and *items*." +msgstr "" + +#: ../../c-api/init_config.rst:1125 +msgid "Read all Python configuration." +msgstr "" + +#: ../../c-api/init_config.rst:1127 +msgid "Fields which are already initialized are left unchanged." +msgstr "" + +#: ../../c-api/init_config.rst:1129 +msgid "" +"Fields for :ref:`path configuration ` are no longer " +"calculated or modified when calling this function, as of Python 3.11." +msgstr "" + +#: ../../c-api/init_config.rst:1132 ../../c-api/init_config.rst:1689 +msgid "" +"The :c:func:`PyConfig_Read` function only parses :c:member:`PyConfig.argv` " +"arguments once: :c:member:`PyConfig.parse_argv` is set to ``2`` after " +"arguments are parsed. Since Python arguments are stripped " +"from :c:member:`PyConfig.argv`, parsing arguments twice would parse the " +"application options as Python options." +msgstr "" + +#: ../../c-api/init_config.rst:1140 +msgid "" +"The :c:member:`PyConfig.argv` arguments are now only parsed " +"once, :c:member:`PyConfig.parse_argv` is set to ``2`` after arguments are " +"parsed, and arguments are only parsed if :c:member:`PyConfig.parse_argv` " +"equals ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:1146 +msgid "" +":c:func:`PyConfig_Read` no longer calculates all paths, and so fields listed " +"under :ref:`Python Path Configuration ` may no longer be " +"updated until :c:func:`Py_InitializeFromConfig` is called." +msgstr "" + +#: ../../c-api/init_config.rst:1154 +msgid "Release configuration memory." +msgstr "" + +#: ../../c-api/init_config.rst:1156 +msgid "" +"Most ``PyConfig`` methods :ref:`preinitialize Python ` if needed. " +"In that case, the Python preinitialization configuration " +"(:c:type:`PyPreConfig`) in based on the :c:type:`PyConfig`. If configuration " +"fields which are in common with :c:type:`PyPreConfig` are tuned, they must " +"be set before calling a :c:type:`PyConfig` method:" +msgstr "" + +#: ../../c-api/init_config.rst:1162 +msgid ":c:member:`PyConfig.dev_mode`" +msgstr "" + +#: ../../c-api/init_config.rst:1163 +msgid ":c:member:`PyConfig.isolated`" +msgstr "" + +#: ../../c-api/init_config.rst:1164 +msgid ":c:member:`PyConfig.parse_argv`" +msgstr "" + +#: ../../c-api/init_config.rst:1165 +msgid ":c:member:`PyConfig.use_environment`" +msgstr "" + +#: ../../c-api/init_config.rst:1167 +msgid "" +"Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " +"is used, this method must be called before other methods, since the " +"preinitialization configuration depends on command line arguments " +"(if :c:member:`~PyConfig.parse_argv` is non-zero)." +msgstr "" + +#: ../../c-api/init_config.rst:1172 +msgid "" +"The caller of these methods is responsible to handle exceptions (error or " +"exit) using ``PyStatus_Exception()`` and ``Py_ExitStatusException()``." +msgstr "" + +#: ../../c-api/init_config.rst:1185 +msgid "" +"Set :data:`sys.argv` command line arguments based " +"on :c:member:`~PyConfig.argv`. These parameters are similar to those passed " +"to the program's :c:func:`main` function with the difference that the first " +"entry should refer to the script file to be executed rather than the " +"executable hosting the Python interpreter. If there isn't a script that " +"will be run, the first entry in :c:member:`~PyConfig.argv` can be an empty " +"string." +msgstr "" + +#: ../../c-api/init_config.rst:1193 +msgid "" +"Set :c:member:`~PyConfig.parse_argv` to ``1`` to " +"parse :c:member:`~PyConfig.argv` the same way the regular Python parses " +"Python command line arguments and then to strip Python arguments " +"from :c:member:`~PyConfig.argv`." +msgstr "" + +#: ../../c-api/init_config.rst:1198 +msgid "" +"If :c:member:`~PyConfig.argv` is empty, an empty string is added to ensure " +"that :data:`sys.argv` always exists and is never empty." +msgstr "" + +#: ../../c-api/init_config.rst:1201 ../../c-api/init_config.rst:1228 +#: ../../c-api/init_config.rst:1242 ../../c-api/init_config.rst:1252 +#: ../../c-api/init_config.rst:1363 ../../c-api/init_config.rst:1372 +#: ../../c-api/init_config.rst:1383 ../../c-api/init_config.rst:1474 +#: ../../c-api/init_config.rst:1630 ../../c-api/init_config.rst:1731 +#: ../../c-api/init_config.rst:1750 ../../c-api/init_config.rst:1765 +#: ../../c-api/init_config.rst:1782 ../../c-api/init_config.rst:1795 +#: ../../c-api/init_config.rst:1803 ../../c-api/init_config.rst:1817 +#: ../../c-api/init_config.rst:1920 +msgid "Default: ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:1203 +msgid "See also the :c:member:`~PyConfig.orig_argv` member." +msgstr "" + +#: ../../c-api/init_config.rst:1207 +msgid "" +"If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path " +"to :data:`sys.path` at startup:" +msgstr "" + +#: ../../c-api/init_config.rst:1210 +msgid "" +"If :c:member:`argv[0] ` is equal to ``L\"-m\"`` (``python -m " +"module``), prepend the current working directory." +msgstr "" + +#: ../../c-api/init_config.rst:1212 +msgid "" +"If running a script (``python script.py``), prepend the script's directory. " +"If it's a symbolic link, resolve symbolic links." +msgstr "" + +#: ../../c-api/init_config.rst:1214 +msgid "" +"Otherwise (``python -c code`` and ``python``), prepend an empty string, " +"which means the current working directory." +msgstr "" + +#: ../../c-api/init_config.rst:1217 +msgid "" +"Set to ``1`` by the :option:`-P` command line option and " +"the :envvar:`PYTHONSAFEPATH` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1220 +msgid "Default: ``0`` in Python config, ``1`` in isolated config." +msgstr "" + +#: ../../c-api/init_config.rst:1226 +msgid ":data:`sys.base_exec_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1230 ../../c-api/init_config.rst:1244 +#: ../../c-api/init_config.rst:1254 ../../c-api/init_config.rst:1374 +#: ../../c-api/init_config.rst:1385 ../../c-api/init_config.rst:1647 +#: ../../c-api/init_config.rst:1733 +msgid "Part of the :ref:`Python Path Configuration ` output." +msgstr "" + +#: ../../c-api/init_config.rst:1232 +msgid "See also :c:member:`PyConfig.exec_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1236 +msgid "Python base executable: :data:`sys._base_executable`." +msgstr "" + +#: ../../c-api/init_config.rst:1238 +msgid "Set by the :envvar:`__PYVENV_LAUNCHER__` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1240 +msgid "Set from :c:member:`PyConfig.executable` if ``NULL``." +msgstr "" + +#: ../../c-api/init_config.rst:1246 +msgid "See also :c:member:`PyConfig.executable`." +msgstr "" + +#: ../../c-api/init_config.rst:1250 +msgid ":data:`sys.base_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1256 +msgid "See also :c:member:`PyConfig.prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1260 +msgid "" +"If equals to ``0`` and :c:member:`~PyConfig.configure_c_stdio` is non-zero, " +"disable buffering on the C streams stdout and stderr." +msgstr "" + +#: ../../c-api/init_config.rst:1263 +msgid "" +"Set to ``0`` by the :option:`-u` command line option and " +"the :envvar:`PYTHONUNBUFFERED` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1266 +msgid "stdin is always opened in buffered mode." +msgstr "" + +#: ../../c-api/init_config.rst:1268 ../../c-api/init_config.rst:1301 +#: ../../c-api/init_config.rst:1845 ../../c-api/init_config.rst:2003 +msgid "Default: ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:1272 +msgid "" +"If equals to ``1``, issue a warning when comparing :class:`bytes` " +"or :class:`bytearray` with :class:`str`, or comparing :class:`bytes` " +"with :class:`int`." +msgstr "" + +#: ../../c-api/init_config.rst:1276 +msgid "" +"If equal or greater to ``2``, raise a :exc:`BytesWarning` exception in these " +"cases." +msgstr "" + +#: ../../c-api/init_config.rst:1279 +msgid "Incremented by the :option:`-b` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1285 +msgid "" +"If non-zero, emit a :exc:`EncodingWarning` warning " +"when :class:`io.TextIOWrapper` uses its default encoding. See :ref:`io-" +"encoding-warning` for details." +msgstr "" + +#: ../../c-api/init_config.rst:1294 +msgid "" +"If equals to ``0``, disables the inclusion of the end line and column " +"mappings in code objects. Also disables traceback printing carets to " +"specific error locations." +msgstr "" + +#: ../../c-api/init_config.rst:1298 +msgid "" +"Set to ``0`` by the :envvar:`PYTHONNODEBUGRANGES` environment variable and " +"by the :option:`-X no_debug_ranges <-X>` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1307 +msgid "" +"Control the validation behavior of hash-based ``.pyc`` files: value of " +"the :option:`--check-hash-based-pycs` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1310 +msgid "Valid values:" +msgstr "" + +#: ../../c-api/init_config.rst:1312 +msgid "" +"``L\"always\"``: Hash the source file for invalidation regardless of value " +"of the 'check_source' flag." +msgstr "" + +#: ../../c-api/init_config.rst:1314 +msgid "``L\"never\"``: Assume that hash-based pycs always are valid." +msgstr "" + +#: ../../c-api/init_config.rst:1315 +msgid "" +"``L\"default\"``: The 'check_source' flag in hash-based pycs determines " +"invalidation." +msgstr "" + +#: ../../c-api/init_config.rst:1318 +msgid "Default: ``L\"default\"``." +msgstr "" + +#: ../../c-api/init_config.rst:1320 +msgid "See also :pep:`552` \"Deterministic pycs\"." +msgstr "" + +#: ../../c-api/init_config.rst:1324 +msgid "If non-zero, configure C standard streams:" +msgstr "" + +#: ../../c-api/init_config.rst:1326 +msgid "" +"On Windows, set the binary mode (``O_BINARY``) on stdin, stdout and stderr." +msgstr "" + +#: ../../c-api/init_config.rst:1328 +msgid "" +"If :c:member:`~PyConfig.buffered_stdio` equals zero, disable buffering of " +"stdin, stdout and stderr streams." +msgstr "" + +#: ../../c-api/init_config.rst:1330 +msgid "" +"If :c:member:`~PyConfig.interactive` is non-zero, enable stream buffering on " +"stdin and stdout (only stdout on Windows)." +msgstr "" + +#: ../../c-api/init_config.rst:1337 +msgid "If non-zero, enable the :ref:`Python Development Mode `." +msgstr "" + +#: ../../c-api/init_config.rst:1339 +msgid "" +"Set to ``1`` by the :option:`-X dev <-X>` option and " +"the :envvar:`PYTHONDEVMODE` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1346 +msgid "Dump Python references?" +msgstr "" + +#: ../../c-api/init_config.rst:1348 +msgid "If non-zero, dump all objects which are still alive at exit." +msgstr "" + +#: ../../c-api/init_config.rst:1350 +msgid "Set to ``1`` by the :envvar:`PYTHONDUMPREFS` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1352 +msgid "" +"Needs a special build of Python with the ``Py_TRACE_REFS`` macro defined: " +"see the :option:`configure --with-trace-refs option <--with-trace-refs>`." +msgstr "" + +#: ../../c-api/init_config.rst:1359 +msgid "Filename where to dump Python references." +msgstr "" + +#: ../../c-api/init_config.rst:1361 +msgid "Set by the :envvar:`PYTHONDUMPREFSFILE` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1369 +msgid "" +"The site-specific directory prefix where the platform-dependent Python files " +"are installed: :data:`sys.exec_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1376 +msgid "See also :c:member:`PyConfig.base_exec_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1380 +msgid "" +"The absolute path of the executable binary for the Python " +"interpreter: :data:`sys.executable`." +msgstr "" + +#: ../../c-api/init_config.rst:1387 +msgid "See also :c:member:`PyConfig.base_executable`." +msgstr "" + +#: ../../c-api/init_config.rst:1391 +msgid "Enable faulthandler?" +msgstr "" + +#: ../../c-api/init_config.rst:1393 +msgid "If non-zero, call :func:`faulthandler.enable` at startup." +msgstr "" + +#: ../../c-api/init_config.rst:1395 +msgid "" +"Set to ``1`` by :option:`-X faulthandler <-X>` and " +"the :envvar:`PYTHONFAULTHANDLER` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1402 +msgid "" +":term:`Filesystem encoding `: :func:`sys.getfilesystemencoding`." +msgstr "" + +#: ../../c-api/init_config.rst:1405 +msgid "On macOS, Android and VxWorks: use ``\"utf-8\"`` by default." +msgstr "" + +#: ../../c-api/init_config.rst:1407 +msgid "" +"On Windows: use ``\"utf-8\"`` by default, or ``\"mbcs\"`` " +"if :c:member:`~PyPreConfig.legacy_windows_fs_encoding` " +"of :c:type:`PyPreConfig` is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1411 +msgid "Default encoding on other platforms:" +msgstr "" + +#: ../../c-api/init_config.rst:1413 +msgid "``\"utf-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1414 +msgid "" +"``\"ascii\"`` if Python detects that ``nl_langinfo(CODESET)`` announces the " +"ASCII encoding, whereas the ``mbstowcs()`` function decodes from a different " +"encoding (usually Latin1)." +msgstr "" + +#: ../../c-api/init_config.rst:1417 +msgid "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string." +msgstr "" + +#: ../../c-api/init_config.rst:1418 +msgid "" +"Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result." +msgstr "" + +#: ../../c-api/init_config.rst:1421 +msgid "" +"At Python startup, the encoding name is normalized to the Python codec name. " +"For example, ``\"ANSI_X3.4-1968\"`` is replaced with ``\"ascii\"``." +msgstr "" + +#: ../../c-api/init_config.rst:1424 +msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." +msgstr "" + +#: ../../c-api/init_config.rst:1428 +msgid "" +":term:`Filesystem error handler `: :func:`sys.getfilesystemencodeerrors`." +msgstr "" + +#: ../../c-api/init_config.rst:1431 +msgid "" +"On Windows: use ``\"surrogatepass\"`` by default, or ``\"replace\"`` " +"if :c:member:`~PyPreConfig.legacy_windows_fs_encoding` " +"of :c:type:`PyPreConfig` is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1435 +msgid "On other platforms: use ``\"surrogateescape\"`` by default." +msgstr "" + +#: ../../c-api/init_config.rst:1437 +msgid "Supported error handlers:" +msgstr "" + +#: ../../c-api/init_config.rst:1439 +msgid "``\"strict\"``" +msgstr "``\"strict\"``" + +#: ../../c-api/init_config.rst:1440 +msgid "``\"surrogateescape\"``" +msgstr "``\"surrogateescape\"``" + +#: ../../c-api/init_config.rst:1441 +msgid "``\"surrogatepass\"`` (only supported with the UTF-8 encoding)" +msgstr "" + +#: ../../c-api/init_config.rst:1443 +msgid "See also the :c:member:`~PyConfig.filesystem_encoding` member." +msgstr "" + +#: ../../c-api/init_config.rst:1447 +msgid "If non-zero, use frozen modules." +msgstr "" + +#: ../../c-api/init_config.rst:1449 +msgid "Set by the :envvar:`PYTHON_FROZEN_MODULES` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1451 +msgid "" +"Default: ``1`` in a release build, or ``0`` in a :ref:`debug build `." +msgstr "" + +#: ../../c-api/init_config.rst:1457 +msgid "Randomized hash function seed." +msgstr "" + +#: ../../c-api/init_config.rst:1459 +msgid "" +"If :c:member:`~PyConfig.use_hash_seed` is zero, a seed is chosen randomly at " +"Python startup, and :c:member:`~PyConfig.hash_seed` is ignored." +msgstr "" + +#: ../../c-api/init_config.rst:1462 +msgid "Set by the :envvar:`PYTHONHASHSEED` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1464 +msgid "" +"Default *use_hash_seed* value: ``-1`` in Python mode, ``0`` in isolated mode." +msgstr "" + +#: ../../c-api/init_config.rst:1469 +msgid "" +"Set the default Python \"home\" directory, that is, the location of the " +"standard Python libraries (see :envvar:`PYTHONHOME`)." +msgstr "" + +#: ../../c-api/init_config.rst:1472 +msgid "Set by the :envvar:`PYTHONHOME` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1476 ../../c-api/init_config.rst:1612 +#: ../../c-api/init_config.rst:1632 ../../c-api/init_config.rst:1721 +#: ../../c-api/init_config.rst:1752 +msgid "Part of the :ref:`Python Path Configuration ` input." +msgstr "" + +#: ../../c-api/init_config.rst:1480 +msgid "" +"If ``1``, profile import time. If ``2``, include additional output that " +"indicates when an imported module has already been loaded." +msgstr "" + +#: ../../c-api/init_config.rst:1484 +msgid "" +"Set by the :option:`-X importtime <-X>` option and " +"the :envvar:`PYTHONPROFILEIMPORTTIME` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1491 +msgid "Added support for ``import_time = 2``" +msgstr "" + +#: ../../c-api/init_config.rst:1495 +msgid "Enter interactive mode after executing a script or a command." +msgstr "" + +#: ../../c-api/init_config.rst:1497 +msgid "" +"If greater than ``0``, enable inspect: when a script is passed as first " +"argument or the -c option is used, enter interactive mode after executing " +"the script or the command, even when :data:`sys.stdin` does not appear to be " +"a terminal." +msgstr "" + +#: ../../c-api/init_config.rst:1502 +msgid "" +"Incremented by the :option:`-i` command line option. Set to ``1`` if " +"the :envvar:`PYTHONINSPECT` environment variable is non-empty." +msgstr "" + +#: ../../c-api/init_config.rst:1509 +msgid "Install Python signal handlers?" +msgstr "" + +#: ../../c-api/init_config.rst:1511 ../../c-api/init_config.rst:1695 +#: ../../c-api/init_config.rst:1719 ../../c-api/init_config.rst:1955 +msgid "Default: ``1`` in Python mode, ``0`` in isolated mode." +msgstr "" + +#: ../../c-api/init_config.rst:1515 +msgid "If greater than ``0``, enable the interactive mode (REPL)." +msgstr "" + +#: ../../c-api/init_config.rst:1517 +msgid "Incremented by the :option:`-i` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1523 +msgid "" +"Configures the :ref:`integer string conversion length limitation " +"`. An initial value of ``-1`` means the value will be " +"taken from the command line or environment or otherwise default to 4300 " +"(:data:`sys.int_info.default_max_str_digits`). A value of ``0`` disables " +"the limitation. Values greater than zero but less than 640 " +"(:data:`sys.int_info.str_digits_check_threshold`) are unsupported and will " +"produce an error." +msgstr "" + +#: ../../c-api/init_config.rst:1531 +msgid "" +"Configured by the :option:`-X int_max_str_digits <-X>` command line flag or " +"the :envvar:`PYTHONINTMAXSTRDIGITS` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1534 +msgid "" +"Default: ``-1`` in Python mode. 4300 " +"(:data:`sys.int_info.default_max_str_digits`) in isolated mode." +msgstr "" + +#: ../../c-api/init_config.rst:1541 +msgid "" +"If the value of :c:member:`~PyConfig.cpu_count` is not ``-1`` then it will " +"override the return values " +"of :func:`os.cpu_count`, :func:`os.process_cpu_count`, " +"and :func:`multiprocessing.cpu_count`." +msgstr "" + +#: ../../c-api/init_config.rst:1545 +msgid "" +"Configured by the :samp:`-X cpu_count={n|default}` command line flag or " +"the :envvar:`PYTHON_CPU_COUNT` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1548 ../../c-api/init_config.rst:1909 +msgid "Default: ``-1``." +msgstr "" + +#: ../../c-api/init_config.rst:1554 +msgid "If greater than ``0``, enable isolated mode:" +msgstr "" + +#: ../../c-api/init_config.rst:1556 +msgid "" +"Set :c:member:`~PyConfig.safe_path` to ``1``: don't prepend a potentially " +"unsafe path to :data:`sys.path` at Python startup, such as the current " +"directory, the script's directory or an empty string." +msgstr "" + +#: ../../c-api/init_config.rst:1560 +msgid "" +"Set :c:member:`~PyConfig.use_environment` to ``0``: ignore ``PYTHON`` " +"environment variables." +msgstr "" + +#: ../../c-api/init_config.rst:1562 +msgid "" +"Set :c:member:`~PyConfig.user_site_directory` to ``0``: don't add the user " +"site directory to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:1564 +msgid "" +"Python REPL doesn't import :mod:`readline` nor enable default readline " +"configuration on interactive prompts." +msgstr "" + +#: ../../c-api/init_config.rst:1567 +msgid "Set to ``1`` by the :option:`-I` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1571 +msgid "" +"See also the :ref:`Isolated Configuration ` " +"and :c:member:`PyPreConfig.isolated`." +msgstr "" + +#: ../../c-api/init_config.rst:1576 +msgid "" +"If non-zero, use :class:`io.FileIO` instead of :class:`!" +"io._WindowsConsoleIO` for :data:`sys.stdin`, :data:`sys.stdout` " +"and :data:`sys.stderr`." +msgstr "" + +#: ../../c-api/init_config.rst:1580 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " +"is set to a non-empty string." +msgstr "" + +#: ../../c-api/init_config.rst:1588 +msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)." +msgstr "" + +#: ../../c-api/init_config.rst:1592 +msgid "" +"If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " +"` at exit." +msgstr "" + +#: ../../c-api/init_config.rst:1595 +msgid "Set to ``1`` by the :envvar:`PYTHONMALLOCSTATS` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1597 +msgid "" +"The option is ignored if Python is :option:`configured using the --without-" +"pymalloc option <--without-pymalloc>`." +msgstr "" + +#: ../../c-api/init_config.rst:1604 +msgid "Platform library directory name: :data:`sys.platlibdir`." +msgstr "" + +#: ../../c-api/init_config.rst:1606 +msgid "Set by the :envvar:`PYTHONPLATLIBDIR` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1608 +msgid "" +"Default: value of the ``PLATLIBDIR`` macro which is set by " +"the :option:`configure --with-platlibdir option <--with-platlibdir>` " +"(default: ``\"lib\"``, or ``\"DLLs\"`` on Windows)." +msgstr "" + +#: ../../c-api/init_config.rst:1616 +msgid "" +"This macro is now used on Windows to locate the standard library extension " +"modules, typically under ``DLLs``. However, for compatibility, note that " +"this value is ignored for any non-standard layouts, including in-tree builds " +"and virtual environments." +msgstr "" + +#: ../../c-api/init_config.rst:1625 +msgid "" +"Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` " +"(:data:`os.pathsep`)." +msgstr "" + +#: ../../c-api/init_config.rst:1628 +msgid "Set by the :envvar:`PYTHONPATH` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1637 +msgid "Module search paths: :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:1639 +msgid "" +"If :c:member:`~PyConfig.module_search_paths_set` is equal to " +"``0``, :c:func:`Py_InitializeFromConfig` will " +"replace :c:member:`~PyConfig.module_search_paths` and " +"sets :c:member:`~PyConfig.module_search_paths_set` to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:1644 +msgid "" +"Default: empty list (``module_search_paths``) and ``0`` " +"(``module_search_paths_set``)." +msgstr "" + +#: ../../c-api/init_config.rst:1651 +msgid "Compilation optimization level:" +msgstr "" + +#: ../../c-api/init_config.rst:1653 +msgid "``0``: Peephole optimizer, set ``__debug__`` to ``True``." +msgstr "" + +#: ../../c-api/init_config.rst:1654 +msgid "``1``: Level 0, remove assertions, set ``__debug__`` to ``False``." +msgstr "" + +#: ../../c-api/init_config.rst:1655 +msgid "``2``: Level 1, strip docstrings." +msgstr "" + +#: ../../c-api/init_config.rst:1657 +msgid "" +"Incremented by the :option:`-O` command line option. Set to " +"the :envvar:`PYTHONOPTIMIZE` environment variable value." +msgstr "" + +#: ../../c-api/init_config.rst:1664 +msgid "" +"The list of the original command line arguments passed to the Python " +"executable: :data:`sys.orig_argv`." +msgstr "" + +#: ../../c-api/init_config.rst:1667 +msgid "" +"If :c:member:`~PyConfig.orig_argv` list is empty " +"and :c:member:`~PyConfig.argv` is not a list only containing an empty " +"string, :c:func:`PyConfig_Read` copies :c:member:`~PyConfig.argv` " +"into :c:member:`~PyConfig.orig_argv` before " +"modifying :c:member:`~PyConfig.argv` (if :c:member:`~PyConfig.parse_argv` is " +"non-zero)." +msgstr "" + +#: ../../c-api/init_config.rst:1674 +msgid "" +"See also the :c:member:`~PyConfig.argv` member and " +"the :c:func:`Py_GetArgcArgv` function." +msgstr "" + +#: ../../c-api/init_config.rst:1677 ../../c-api/init_config.rst:1990 +#: ../../c-api/init_config.rst:2009 +msgid "Default: empty list." +msgstr "" + +#: ../../c-api/init_config.rst:1683 +msgid "Parse command line arguments?" +msgstr "" + +#: ../../c-api/init_config.rst:1685 +msgid "" +"If equals to ``1``, parse :c:member:`~PyConfig.argv` the same way the " +"regular Python parses :ref:`command line arguments `, and " +"strip Python arguments from :c:member:`~PyConfig.argv`." +msgstr "" + +#: ../../c-api/init_config.rst:1697 +msgid "" +"The :c:member:`PyConfig.argv` arguments are now only parsed " +"if :c:member:`PyConfig.parse_argv` equals to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:1703 +msgid "" +"Parser debug mode. If greater than ``0``, turn on parser debugging output " +"(for expert only, depending on compilation options)." +msgstr "" + +#: ../../c-api/init_config.rst:1706 +msgid "" +"Incremented by the :option:`-d` command line option. Set to " +"the :envvar:`PYTHONDEBUG` environment variable value." +msgstr "" + +#: ../../c-api/init_config.rst:1709 ../../c-api/init_config.rst:1814 +msgid "" +"Needs a :ref:`debug build of Python ` (the ``Py_DEBUG`` macro " +"must be defined)." +msgstr "" + +#: ../../c-api/init_config.rst:1716 +msgid "" +"If non-zero, calculation of path configuration is allowed to log warnings " +"into ``stderr``. If equals to ``0``, suppress these warnings." +msgstr "" + +#: ../../c-api/init_config.rst:1723 +msgid "Now also applies on Windows." +msgstr "" + +#: ../../c-api/init_config.rst:1728 +msgid "" +"The site-specific directory prefix where the platform independent Python " +"files are installed: :data:`sys.prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1735 +msgid "See also :c:member:`PyConfig.base_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1739 +msgid "" +"Program name used to initialize :c:member:`~PyConfig.executable` and in " +"early error messages during Python initialization." +msgstr "" + +#: ../../c-api/init_config.rst:1742 +msgid "On macOS, use :envvar:`PYTHONEXECUTABLE` environment variable if set." +msgstr "" + +#: ../../c-api/init_config.rst:1743 +msgid "" +"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, " +"use :envvar:`__PYVENV_LAUNCHER__` environment variable if set." +msgstr "" + +#: ../../c-api/init_config.rst:1745 +msgid "" +"Use ``argv[0]`` of :c:member:`~PyConfig.argv` if available and non-empty." +msgstr "" + +#: ../../c-api/init_config.rst:1747 +msgid "" +"Otherwise, use ``L\"python\"`` on Windows, or ``L\"python3\"`` on other " +"platforms." +msgstr "" + +#: ../../c-api/init_config.rst:1756 +msgid "" +"Directory where cached ``.pyc`` files are " +"written: :data:`sys.pycache_prefix`." +msgstr "" + +#: ../../c-api/init_config.rst:1759 +msgid "" +"Set by the :option:`-X pycache_prefix=PATH <-X>` command line option and " +"the :envvar:`PYTHONPYCACHEPREFIX` environment variable. The command-line " +"option takes precedence." +msgstr "" + +#: ../../c-api/init_config.rst:1763 +msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." +msgstr "" + +#: ../../c-api/init_config.rst:1769 +msgid "" +"Quiet mode. If greater than ``0``, don't display the copyright and version " +"at Python startup in interactive mode." +msgstr "" + +#: ../../c-api/init_config.rst:1772 +msgid "Incremented by the :option:`-q` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1778 +msgid "Value of the :option:`-c` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1780 ../../c-api/init_config.rst:1801 +msgid "Used by :c:func:`Py_RunMain`." +msgstr "" + +#: ../../c-api/init_config.rst:1786 +msgid "" +"Filename passed on the command line: trailing command line argument " +"without :option:`-c` or :option:`-m`. It is used by the :c:func:`Py_RunMain` " +"function." +msgstr "" + +#: ../../c-api/init_config.rst:1790 +msgid "" +"For example, it is set to ``script.py`` by the ``python3 script.py arg`` " +"command line." +msgstr "" + +#: ../../c-api/init_config.rst:1793 +msgid "See also the :c:member:`PyConfig.skip_source_first_line` option." +msgstr "" + +#: ../../c-api/init_config.rst:1799 +msgid "Value of the :option:`-m` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1807 +msgid "" +"``package.module`` path to module that should be imported before ``site.py`` " +"is run." +msgstr "" + +#: ../../c-api/init_config.rst:1810 +msgid "" +"Set by the :option:`-X presite=package.module <-X>` command-line option and " +"the :envvar:`PYTHON_PRESITE` environment variable. The command-line option " +"takes precedence." +msgstr "" + +#: ../../c-api/init_config.rst:1821 +msgid "" +"Show total reference count at exit (excluding :term:`immortal` objects)?" +msgstr "" + +#: ../../c-api/init_config.rst:1823 +msgid "Set to ``1`` by :option:`-X showrefcount <-X>` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1825 +msgid "" +"Needs a :ref:`debug build of Python ` (the ``Py_REF_DEBUG`` " +"macro must be defined)." +msgstr "" + +#: ../../c-api/init_config.rst:1832 +msgid "Import the :mod:`site` module at startup?" +msgstr "" + +#: ../../c-api/init_config.rst:1834 +msgid "" +"If equal to zero, disable the import of the module site and the site-" +"dependent manipulations of :data:`sys.path` that it entails." +msgstr "" + +#: ../../c-api/init_config.rst:1837 +msgid "" +"Also disable these manipulations if the :mod:`site` module is explicitly " +"imported later (call :func:`site.main` if you want them to be triggered)." +msgstr "" + +#: ../../c-api/init_config.rst:1840 +msgid "Set to ``0`` by the :option:`-S` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1842 +msgid "" +":data:`sys.flags.no_site ` is set to the inverted value " +"of :c:member:`~PyConfig.site_import`." +msgstr "" + +#: ../../c-api/init_config.rst:1849 +msgid "" +"If non-zero, skip the first line of the :c:member:`PyConfig.run_filename` " +"source." +msgstr "" + +#: ../../c-api/init_config.rst:1852 +msgid "" +"It allows the usage of non-Unix forms of ``#!cmd``. This is intended for a " +"DOS specific hack only." +msgstr "" + +#: ../../c-api/init_config.rst:1855 +msgid "Set to ``1`` by the :option:`-x` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1862 +msgid "" +"Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` " +"and :data:`sys.stderr` (but :data:`sys.stderr` always uses " +"``\"backslashreplace\"`` error handler)." +msgstr "" + +#: ../../c-api/init_config.rst:1866 +msgid "" +"Use the :envvar:`PYTHONIOENCODING` environment variable if it is non-empty." +msgstr "" + +#: ../../c-api/init_config.rst:1869 +msgid "Default encoding:" +msgstr "" + +#: ../../c-api/init_config.rst:1871 +msgid "``\"UTF-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." +msgstr "" + +#: ../../c-api/init_config.rst:1872 +msgid "Otherwise, use the :term:`locale encoding`." +msgstr "" + +#: ../../c-api/init_config.rst:1874 +msgid "Default error handler:" +msgstr "" + +#: ../../c-api/init_config.rst:1876 +msgid "On Windows: use ``\"surrogateescape\"``." +msgstr "" + +#: ../../c-api/init_config.rst:1877 +msgid "" +"``\"surrogateescape\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero, or " +"if the LC_CTYPE locale is \"C\" or \"POSIX\"." +msgstr "" + +#: ../../c-api/init_config.rst:1879 +msgid "``\"strict\"`` otherwise." +msgstr "" + +#: ../../c-api/init_config.rst:1881 +msgid "See also :c:member:`PyConfig.legacy_windows_stdio`." +msgstr "" + +#: ../../c-api/init_config.rst:1885 +msgid "Enable tracemalloc?" +msgstr "" + +#: ../../c-api/init_config.rst:1887 +msgid "If non-zero, call :func:`tracemalloc.start` at startup." +msgstr "" + +#: ../../c-api/init_config.rst:1889 +msgid "" +"Set by :option:`-X tracemalloc=N <-X>` command line option and by " +"the :envvar:`PYTHONTRACEMALLOC` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1896 +msgid "Enable the Linux ``perf`` profiler support?" +msgstr "" + +#: ../../c-api/init_config.rst:1898 +msgid "If equals to ``1``, enable support for the Linux ``perf`` profiler." +msgstr "" + +#: ../../c-api/init_config.rst:1900 +msgid "" +"If equals to ``2``, enable support for the Linux ``perf`` profiler with " +"DWARF JIT support." +msgstr "" + +#: ../../c-api/init_config.rst:1903 +msgid "" +"Set to ``1`` by :option:`-X perf <-X>` command-line option and " +"the :envvar:`PYTHONPERFSUPPORT` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1906 +msgid "" +"Set to ``2`` by the :option:`-X perf_jit <-X>` command-line option and " +"the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1912 +msgid "See :ref:`perf_profiling` for more information." +msgstr "" + +#: ../../c-api/init_config.rst:1918 +msgid "Directory of the Python standard library." +msgstr "" + +#: ../../c-api/init_config.rst:1926 +msgid "Use :ref:`environment variables `?" +msgstr "" + +#: ../../c-api/init_config.rst:1928 +msgid "" +"If equals to zero, ignore the :ref:`environment variables `." +msgstr "" + +#: ../../c-api/init_config.rst:1931 +msgid "Set to ``0`` by the :option:`-E` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1937 +msgid "" +"If non-zero, ``stdout`` and ``stderr`` will be redirected to the system log." +msgstr "" + +#: ../../c-api/init_config.rst:1940 +msgid "Only available on macOS 10.12 and later, and on iOS." +msgstr "" + +#: ../../c-api/init_config.rst:1942 +msgid "" +"Default: ``0`` (don't use the system log) on macOS; ``1`` on iOS (use the " +"system log)." +msgstr "" + +#: ../../c-api/init_config.rst:1949 +msgid "If non-zero, add the user site directory to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:1951 +msgid "Set to ``0`` by the :option:`-s` and :option:`-I` command line options." +msgstr "" + +#: ../../c-api/init_config.rst:1953 +msgid "Set to ``0`` by the :envvar:`PYTHONNOUSERSITE` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:1959 +msgid "" +"Verbose mode. If greater than ``0``, print a message each time a module is " +"imported, showing the place (filename or built-in module) from which it is " +"loaded." +msgstr "" + +#: ../../c-api/init_config.rst:1963 +msgid "" +"If greater than or equal to ``2``, print a message for each file that is " +"checked for when searching for a module. Also provides information on module " +"cleanup at exit." +msgstr "" + +#: ../../c-api/init_config.rst:1967 +msgid "Incremented by the :option:`-v` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:1969 +msgid "Set by the :envvar:`PYTHONVERBOSE` environment variable value." +msgstr "" + +#: ../../c-api/init_config.rst:1975 +msgid "" +"Options of the :mod:`warnings` module to build warnings filters, lowest to " +"highest priority: :data:`sys.warnoptions`." +msgstr "" + +#: ../../c-api/init_config.rst:1978 +msgid "" +"The :mod:`warnings` module adds :data:`sys.warnoptions` in the reverse " +"order: the last :c:member:`PyConfig.warnoptions` item becomes the first item " +"of :data:`warnings.filters` which is checked first (highest priority)." +msgstr "" + +#: ../../c-api/init_config.rst:1983 +msgid "" +"The :option:`-W` command line options adds its value " +"to :c:member:`~PyConfig.warnoptions`, it can be used multiple times." +msgstr "" + +#: ../../c-api/init_config.rst:1986 +msgid "" +"The :envvar:`PYTHONWARNINGS` environment variable can also be used to add " +"warning options. Multiple options can be specified, separated by commas " +"(``,``)." +msgstr "" + +#: ../../c-api/init_config.rst:1994 +msgid "" +"If equal to ``0``, Python won't try to write ``.pyc`` files on the import of " +"source modules." +msgstr "" + +#: ../../c-api/init_config.rst:1997 +msgid "" +"Set to ``0`` by the :option:`-B` command line option and " +"the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable." +msgstr "" + +#: ../../c-api/init_config.rst:2000 +msgid "" +":data:`sys.dont_write_bytecode` is initialized to the inverted value " +"of :c:member:`~PyConfig.write_bytecode`." +msgstr "" + +#: ../../c-api/init_config.rst:2007 +msgid "Values of the :option:`-X` command line options: :data:`sys._xoptions`." +msgstr "" + +#: ../../c-api/init_config.rst:2013 +msgid "If non-zero, write performance statistics at Python exit." +msgstr "" + +#: ../../c-api/init_config.rst:2015 +msgid "" +"Need a special build with the ``Py_STATS`` macro: see :option:`--enable-" +"pystats`." +msgstr "" + +#: ../../c-api/init_config.rst:2020 +msgid "" +"If :c:member:`~PyConfig.parse_argv` is non-zero, :c:member:`~PyConfig.argv` " +"arguments are parsed the same way the regular Python parses :ref:`command " +"line arguments `, and Python arguments are stripped " +"from :c:member:`~PyConfig.argv`." +msgstr "" + +#: ../../c-api/init_config.rst:2025 +msgid "" +"The :c:member:`~PyConfig.xoptions` options are parsed to set other options: " +"see the :option:`-X` command line option." +msgstr "" + +#: ../../c-api/init_config.rst:2030 +msgid "The ``show_alloc_count`` field has been removed." +msgstr "" + +#: ../../c-api/init_config.rst:2036 +msgid "Initialization with PyConfig" +msgstr "" + +#: ../../c-api/init_config.rst:2038 +msgid "" +"Initializing the interpreter from a populated configuration struct is " +"handled by calling :c:func:`Py_InitializeFromConfig`." +msgstr "" + +#: ../../c-api/init_config.rst:2044 +msgid "" +"If :c:func:`PyImport_FrozenModules`, :c:func:`PyImport_AppendInittab` " +"or :c:func:`PyImport_ExtendInittab` are used, they must be set or called " +"after Python preinitialization and before the Python initialization. If " +"Python is initialized multiple times, :c:func:`PyImport_AppendInittab` " +"or :c:func:`PyImport_ExtendInittab` must be called before each Python " +"initialization." +msgstr "" + +#: ../../c-api/init_config.rst:2051 +msgid "" +"The current configuration (``PyConfig`` type) is stored in " +"``PyInterpreterState.config``." +msgstr "" + +#: ../../c-api/init_config.rst:2054 +msgid "Example setting the program name::" +msgstr "" + +#: ../../c-api/init_config.rst:2056 +msgid "" +"void init_python(void)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* Set the program name. Implicitly preinitialize Python. */\n" +" status = PyConfig_SetString(&config, &config.program_name,\n" +" L\"/path/to/my_program\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +" return;\n" +"\n" +"exception:\n" +" PyConfig_Clear(&config);\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../c-api/init_config.rst:2082 +msgid "" +"More complete example modifying the default configuration, read the " +"configuration, and then override some parameters. Note that since 3.11, many " +"parameters are not calculated until initialization, and so values cannot be " +"read from the configuration structure. Any values set before initialize is " +"called will be left unchanged by initialization::" +msgstr "" + +#: ../../c-api/init_config.rst:2089 +msgid "" +"PyStatus init_python(const char *program_name)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* Set the program name before reading the configuration\n" +" (decode byte string from the locale encoding).\n" +"\n" +" Implicitly preinitialize Python. */\n" +" status = PyConfig_SetBytesString(&config, &config.program_name,\n" +" program_name);\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Read all configuration at once */\n" +" status = PyConfig_Read(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Specify sys.path explicitly */\n" +" /* If you want to modify the default set of paths, finish\n" +" initialization first and then use PySys_GetObject(\"path\") */\n" +" config.module_search_paths_set = 1;\n" +" status = PyWideStringList_Append(&config.module_search_paths,\n" +" L\"/path/to/stdlib\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +" status = PyWideStringList_Append(&config.module_search_paths,\n" +" L\"/path/to/more/modules\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Override executable computed by PyConfig_Read() */\n" +" status = PyConfig_SetString(&config, &config.executable,\n" +" L\"/path/to/my_executable\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +"\n" +"done:\n" +" PyConfig_Clear(&config);\n" +" return status;\n" +"}" +msgstr "" + +#: ../../c-api/init_config.rst:2145 +msgid "Isolated Configuration" +msgstr "" + +#: ../../c-api/init_config.rst:2147 +msgid "" +":c:func:`PyPreConfig_InitIsolatedConfig` " +"and :c:func:`PyConfig_InitIsolatedConfig` functions create a configuration " +"to isolate Python from the system. For example, to embed Python into an " +"application." +msgstr "" + +#: ../../c-api/init_config.rst:2152 +msgid "" +"This configuration ignores global configuration variables, environment " +"variables, command line arguments (:c:member:`PyConfig.argv` is not parsed) " +"and user site directory. The C standard streams (ex: ``stdout``) and the " +"LC_CTYPE locale are left unchanged. Signal handlers are not installed." +msgstr "" + +#: ../../c-api/init_config.rst:2157 +msgid "" +"Configuration files are still used with this configuration to determine " +"paths that are unspecified. Ensure :c:member:`PyConfig.home` is specified to " +"avoid computing the default path configuration." +msgstr "" + +#: ../../c-api/init_config.rst:2165 +msgid "Python Configuration" +msgstr "" + +#: ../../c-api/init_config.rst:2167 +msgid "" +":c:func:`PyPreConfig_InitPythonConfig` " +"and :c:func:`PyConfig_InitPythonConfig` functions create a configuration to " +"build a customized Python which behaves as the regular Python." +msgstr "" + +#: ../../c-api/init_config.rst:2171 +msgid "" +"Environments variables and command line arguments are used to configure " +"Python, whereas global configuration variables are ignored." +msgstr "" + +#: ../../c-api/init_config.rst:2174 +msgid "" +"This function enables C locale coercion (:pep:`538`) and :ref:`Python UTF-8 " +"Mode ` (:pep:`540`) depending on the LC_CTYPE " +"locale, :envvar:`PYTHONUTF8` and :envvar:`PYTHONCOERCECLOCALE` environment " +"variables." +msgstr "" + +#: ../../c-api/init_config.rst:2183 +msgid "Python Path Configuration" +msgstr "" + +#: ../../c-api/init_config.rst:2185 +msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" +msgstr "" + +#: ../../c-api/init_config.rst:2187 +msgid "Path configuration inputs:" +msgstr "" + +#: ../../c-api/init_config.rst:2189 +msgid ":c:member:`PyConfig.home`" +msgstr "" + +#: ../../c-api/init_config.rst:2190 +msgid ":c:member:`PyConfig.platlibdir`" +msgstr "" + +#: ../../c-api/init_config.rst:2191 +msgid ":c:member:`PyConfig.pathconfig_warnings`" +msgstr "" + +#: ../../c-api/init_config.rst:2192 +msgid ":c:member:`PyConfig.program_name`" +msgstr "" + +#: ../../c-api/init_config.rst:2193 +msgid ":c:member:`PyConfig.pythonpath_env`" +msgstr "" + +#: ../../c-api/init_config.rst:2194 +msgid "current working directory: to get absolute paths" +msgstr "" + +#: ../../c-api/init_config.rst:2195 +msgid "" +"``PATH`` environment variable to get the program full path " +"(from :c:member:`PyConfig.program_name`)" +msgstr "" + +#: ../../c-api/init_config.rst:2197 +msgid "``__PYVENV_LAUNCHER__`` environment variable" +msgstr "" + +#: ../../c-api/init_config.rst:2198 +msgid "" +"(Windows only) Application paths in the registry under " +"\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and " +"HKEY_LOCAL_MACHINE (where X.Y is the Python version)." +msgstr "" + +#: ../../c-api/init_config.rst:2202 +msgid "Path configuration output fields:" +msgstr "" + +#: ../../c-api/init_config.rst:2204 +msgid ":c:member:`PyConfig.base_exec_prefix`" +msgstr "" + +#: ../../c-api/init_config.rst:2205 +msgid ":c:member:`PyConfig.base_executable`" +msgstr "" + +#: ../../c-api/init_config.rst:2206 +msgid ":c:member:`PyConfig.base_prefix`" +msgstr "" + +#: ../../c-api/init_config.rst:2207 +msgid ":c:member:`PyConfig.exec_prefix`" +msgstr "" + +#: ../../c-api/init_config.rst:2208 +msgid ":c:member:`PyConfig.executable`" +msgstr "" + +#: ../../c-api/init_config.rst:2209 +msgid ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig.module_search_paths`" +msgstr "" + +#: ../../c-api/init_config.rst:2211 +msgid ":c:member:`PyConfig.prefix`" +msgstr "" + +#: ../../c-api/init_config.rst:2213 +msgid "" +"If at least one \"output field\" is not set, Python calculates the path " +"configuration to fill unset fields. " +"If :c:member:`~PyConfig.module_search_paths_set` is equal to " +"``0``, :c:member:`~PyConfig.module_search_paths` is overridden " +"and :c:member:`~PyConfig.module_search_paths_set` is set to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:2219 +msgid "" +"It is possible to completely ignore the function calculating the default " +"path configuration by setting explicitly all path configuration output " +"fields listed above. A string is considered as set even if it is non-empty. " +"``module_search_paths`` is considered as set if ``module_search_paths_set`` " +"is set to ``1``. In this case, ``module_search_paths`` will be used without " +"modification." +msgstr "" + +#: ../../c-api/init_config.rst:2226 +msgid "" +"Set :c:member:`~PyConfig.pathconfig_warnings` to ``0`` to suppress warnings " +"when calculating the path configuration (Unix only, Windows does not log any " +"warning)." +msgstr "" + +#: ../../c-api/init_config.rst:2229 +msgid "" +"If :c:member:`~PyConfig.base_prefix` " +"or :c:member:`~PyConfig.base_exec_prefix` fields are not set, they inherit " +"their value from :c:member:`~PyConfig.prefix` " +"and :c:member:`~PyConfig.exec_prefix` respectively." +msgstr "" + +#: ../../c-api/init_config.rst:2233 +msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" +msgstr "" + +#: ../../c-api/init_config.rst:2235 +msgid "" +"If :c:member:`~PyConfig.run_filename` is set and is a directory which " +"contains a ``__main__.py`` script, " +"prepend :c:member:`~PyConfig.run_filename` to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:2238 +msgid "If :c:member:`~PyConfig.isolated` is zero:" +msgstr "" + +#: ../../c-api/init_config.rst:2240 +msgid "" +"If :c:member:`~PyConfig.run_module` is set, prepend the current directory " +"to :data:`sys.path`. Do nothing if the current directory cannot be read." +msgstr "" + +#: ../../c-api/init_config.rst:2242 +msgid "" +"If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the " +"filename to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:2244 +msgid "Otherwise, prepend an empty string to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:2246 +msgid "" +"If :c:member:`~PyConfig.site_import` is non-zero, :data:`sys.path` can be " +"modified by the :mod:`site` module. " +"If :c:member:`~PyConfig.user_site_directory` is non-zero and the user's site-" +"package directory exists, the :mod:`site` module appends the user's site-" +"package directory to :data:`sys.path`." +msgstr "" + +#: ../../c-api/init_config.rst:2252 +msgid "The following configuration files are used by the path configuration:" +msgstr "" + +#: ../../c-api/init_config.rst:2254 +msgid "``pyvenv.cfg``" +msgstr "``pyvenv.cfg``" + +#: ../../c-api/init_config.rst:2255 +msgid "``._pth`` file (ex: ``python._pth``)" +msgstr "" + +#: ../../c-api/init_config.rst:2256 +msgid "``pybuilddir.txt`` (Unix only)" +msgstr "" + +#: ../../c-api/init_config.rst:2258 +msgid "If a ``._pth`` file is present:" +msgstr "" + +#: ../../c-api/init_config.rst:2260 +msgid "Set :c:member:`~PyConfig.isolated` to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:2261 +msgid "Set :c:member:`~PyConfig.use_environment` to ``0``." +msgstr "" + +#: ../../c-api/init_config.rst:2262 +msgid "Set :c:member:`~PyConfig.site_import` to ``0``." +msgstr "" + +#: ../../c-api/init_config.rst:2263 +msgid "Set :c:member:`~PyConfig.safe_path` to ``1``." +msgstr "" + +#: ../../c-api/init_config.rst:2265 +msgid "" +"If :c:member:`~PyConfig.home` is not set and a ``pyvenv.cfg`` file is " +"present in the same directory as :c:member:`~PyConfig.executable`, or its " +"parent, :c:member:`~PyConfig.prefix` and :c:member:`~PyConfig.exec_prefix` " +"are set that location. When this happens, :c:member:`~PyConfig.base_prefix` " +"and :c:member:`~PyConfig.base_exec_prefix` still keep their value, pointing " +"to the base installation. See :ref:`sys-path-init-virtual-environments` for " +"more information." +msgstr "" + +#: ../../c-api/init_config.rst:2273 +msgid "" +"The ``__PYVENV_LAUNCHER__`` environment variable is used to " +"set :c:member:`PyConfig.base_executable`." +msgstr "" + +#: ../../c-api/init_config.rst:2278 +msgid "" +":c:member:`~PyConfig.prefix`, and :c:member:`~PyConfig.exec_prefix`, are now " +"set to the ``pyvenv.cfg`` directory. This was previously done " +"by :mod:`site`, therefore affected by :option:`-S`." +msgstr "" + +#: ../../c-api/init_config.rst:2284 +msgid "Py_GetArgcArgv()" +msgstr "" + +#: ../../c-api/init_config.rst:2288 +msgid "Get the original command line arguments, before Python modified them." +msgstr "" + +#: ../../c-api/init_config.rst:2290 +msgid "See also :c:member:`PyConfig.orig_argv` member." +msgstr "" + +#: ../../c-api/init_config.rst:2293 +msgid "Delaying main module execution" +msgstr "" + +#: ../../c-api/init_config.rst:2295 +msgid "" +"In some embedding use cases, it may be desirable to separate interpreter " +"initialization from the execution of the main module." +msgstr "" + +#: ../../c-api/init_config.rst:2298 +msgid "" +"This separation can be achieved by setting ``PyConfig.run_command`` to the " +"empty string during initialization (to prevent the interpreter from dropping " +"into the interactive prompt), and then subsequently executing the desired " +"main module code using ``__main__.__dict__`` as the global namespace." +msgstr "" + +#: ../../c-api/init_config.rst:1181 +msgid "main()" +msgstr "" + +#: ../../c-api/init_config.rst:1181 +msgid "argv (in module sys)" +msgstr "" diff --git a/c-api/intro.po b/c-api/intro.po new file mode 100644 index 0000000..8cdba4e --- /dev/null +++ b/c-api/intro.po @@ -0,0 +1,1198 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/intro.rst:8 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../c-api/intro.rst:10 +msgid "" +"The Application Programmer's Interface to Python gives C and C++ programmers " +"access to the Python interpreter at a variety of levels. The API is equally " +"usable from C++, but for brevity it is generally referred to as the Python/C " +"API. There are two fundamentally different reasons for using the Python/C " +"API. The first reason is to write *extension modules* for specific purposes; " +"these are C modules that extend the Python interpreter. This is probably " +"the most common use. The second reason is to use Python as a component in a " +"larger application; this technique is generally referred to " +"as :dfn:`embedding` Python in an application." +msgstr "" + +#: ../../c-api/intro.rst:20 +msgid "" +"Writing an extension module is a relatively well-understood process, where a " +"\"cookbook\" approach works well. There are several tools that automate the " +"process to some extent. While people have embedded Python in other " +"applications since its early existence, the process of embedding Python is " +"less straightforward than writing an extension." +msgstr "" + +#: ../../c-api/intro.rst:26 +msgid "" +"Many API functions are useful independent of whether you're embedding or " +"extending Python; moreover, most applications that embed Python will need " +"to provide a custom extension as well, so it's probably a good idea to " +"become familiar with writing an extension before attempting to embed Python " +"in a real application." +msgstr "" + +#: ../../c-api/intro.rst:34 +msgid "Language version compatibility" +msgstr "" + +#: ../../c-api/intro.rst:36 +msgid "Python's C API is compatible with C11 and C++11 versions of C and C++." +msgstr "" + +#: ../../c-api/intro.rst:38 +msgid "" +"This is a lower limit: the C API does not require features from later C/C++ " +"versions. You do *not* need to enable your compiler's \"c11 mode\"." +msgstr "" + +#: ../../c-api/intro.rst:44 +msgid "Coding standards" +msgstr "" + +#: ../../c-api/intro.rst:46 +msgid "" +"If you're writing C code for inclusion in CPython, you **must** follow the " +"guidelines and standards defined in :PEP:`7`. These guidelines apply " +"regardless of the version of Python you are contributing to. Following " +"these conventions is not necessary for your own third party extension " +"modules, unless you eventually expect to contribute them to Python." +msgstr "" + +#: ../../c-api/intro.rst:56 +msgid "Include Files" +msgstr "" + +#: ../../c-api/intro.rst:58 +msgid "" +"All function, type and macro definitions needed to use the Python/C API are " +"included in your code by the following line::" +msgstr "" + +#: ../../c-api/intro.rst:61 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include " +msgstr "" + +#: ../../c-api/intro.rst:64 +msgid "" +"This implies inclusion of the following standard headers: ````, " +"````, ````, ````, ```` and " +"```` (if available)." +msgstr "" + +#: ../../c-api/intro.rst:70 +msgid "" +"Since Python may define some pre-processor definitions which affect the " +"standard headers on some systems, you *must* include :file:`Python.h` before " +"any standard headers are included." +msgstr "" + +#: ../../c-api/intro.rst:74 +msgid "" +"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " +"``Python.h``. See :ref:`arg-parsing` for a description of this macro." +msgstr "" + +#: ../../c-api/intro.rst:77 +msgid "" +"All user visible names defined by Python.h (except those defined by the " +"included standard headers) have one of the prefixes ``Py`` or ``_Py``. " +"Names beginning with ``_Py`` are for internal use by the Python " +"implementation and should not be used by extension writers. Structure member " +"names do not have a reserved prefix." +msgstr "" + +#: ../../c-api/intro.rst:84 +msgid "" +"User code should never define names that begin with ``Py`` or ``_Py``. This " +"confuses the reader, and jeopardizes the portability of the user code to " +"future Python versions, which may define additional names beginning with one " +"of these prefixes." +msgstr "" + +#: ../../c-api/intro.rst:89 +msgid "" +"The header files are typically installed with Python. On Unix, these are " +"located in the directories :file:`{prefix}/include/pythonversion/` " +"and :file:`{exec_prefix}/include/pythonversion/`, where :option:`prefix <--" +"prefix>` and :option:`exec_prefix <--exec-prefix>` are defined by the " +"corresponding parameters to Python's :program:`configure` script and " +"*version* is ``'%d.%d' % sys.version_info[:2]``. On Windows, the headers " +"are installed in :file:`{prefix}/include`, where ``prefix`` is the " +"installation directory specified to the installer." +msgstr "" + +#: ../../c-api/intro.rst:98 +msgid "" +"To include the headers, place both directories (if different) on your " +"compiler's search path for includes. Do *not* place the parent directories " +"on the search path and then use ``#include ``; this will " +"break on multi-platform builds since the platform independent headers " +"under :option:`prefix <--prefix>` include the platform specific headers " +"from :option:`exec_prefix <--exec-prefix>`." +msgstr "" + +#: ../../c-api/intro.rst:105 +msgid "" +"C++ users should note that although the API is defined entirely using C, the " +"header files properly declare the entry points to be ``extern \"C\"``. As a " +"result, there is no need to do anything special to use the API from C++." +msgstr "" + +#: ../../c-api/intro.rst:111 +msgid "Useful macros" +msgstr "" + +#: ../../c-api/intro.rst:113 +msgid "" +"Several useful macros are defined in the Python header files. Many are " +"defined closer to where they are useful (for " +"example, :c:macro:`Py_RETURN_NONE`, :c:macro:`PyMODINIT_FUNC`). Others of a " +"more general utility are defined here. This is not necessarily a complete " +"listing." +msgstr "" + +#: ../../c-api/intro.rst:122 +msgid "Return the absolute value of ``x``." +msgstr "" + +#: ../../c-api/intro.rst:128 +msgid "" +"Ask the compiler to always inline a static inline function. The compiler can " +"ignore it and decide to not inline the function." +msgstr "" + +#: ../../c-api/intro.rst:131 +msgid "" +"It can be used to inline performance critical static inline functions when " +"building Python in debug mode with function inlining disabled. For example, " +"MSC disables function inlining when building in debug mode." +msgstr "" + +#: ../../c-api/intro.rst:135 +msgid "" +"Marking blindly a static inline function with Py_ALWAYS_INLINE can result in " +"worse performances (due to increased code size for example). The compiler is " +"usually smarter than the developer for the cost/benefit analysis." +msgstr "" + +#: ../../c-api/intro.rst:139 +msgid "" +"If Python is :ref:`built in debug mode ` (if " +"the :c:macro:`Py_DEBUG` macro is defined), the :c:macro:`Py_ALWAYS_INLINE` " +"macro does nothing." +msgstr "" + +#: ../../c-api/intro.rst:142 +msgid "It must be specified before the function return type. Usage::" +msgstr "" + +#: ../../c-api/intro.rst:144 +msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" +msgstr "" + +#: ../../c-api/intro.rst:150 +msgid "" +"Argument must be a character or an integer in the range [-128, 127] or [0, " +"255]. This macro returns ``c`` cast to an ``unsigned char``." +msgstr "" + +#: ../../c-api/intro.rst:155 +msgid "" +"Use this for deprecated declarations. The macro must be placed before the " +"symbol name." +msgstr "" + +#: ../../c-api/intro.rst:158 ../../c-api/intro.rst:244 +#: ../../c-api/intro.rst:262 +msgid "Example::" +msgstr "" + +#: ../../c-api/intro.rst:160 +msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" +msgstr "" + +#: ../../c-api/intro.rst:162 +msgid "MSVC support was added." +msgstr "" + +#: ../../c-api/intro.rst:167 +msgid "" +"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " +"command line (see :c:member:`PyConfig.use_environment`)." +msgstr "" + +#: ../../c-api/intro.rst:172 +msgid "Return the maximum value between ``x`` and ``y``." +msgstr "" + +#: ../../c-api/intro.rst:178 +msgid "Return the size of a structure (``type``) ``member`` in bytes." +msgstr "" + +#: ../../c-api/intro.rst:184 +msgid "Return the minimum value between ``x`` and ``y``." +msgstr "" + +#: ../../c-api/intro.rst:190 +msgid "" +"Disable inlining on a function. For example, it reduces the C stack " +"consumption: useful on LTO+PGO builds which heavily inline code " +"(see :issue:`33720`)." +msgstr "" + +#: ../../c-api/intro.rst:194 +msgid "Usage::" +msgstr "" + +#: ../../c-api/intro.rst:196 +msgid "Py_NO_INLINE static int random(void) { return 4; }" +msgstr "" + +#: ../../c-api/intro.rst:202 +msgid "" +"Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." +msgstr "" + +#: ../../c-api/intro.rst:209 +msgid "" +"Use this when you have a code path that cannot be reached by design. For " +"example, in the ``default:`` clause in a ``switch`` statement for which all " +"possible values are covered in ``case`` statements. Use this in places " +"where you might be tempted to put an ``assert(0)`` or ``abort()`` call." +msgstr "" + +#: ../../c-api/intro.rst:214 +msgid "" +"In release mode, the macro helps the compiler to optimize the code, and " +"avoids a warning about unreachable code. For example, the macro is " +"implemented with ``__builtin_unreachable()`` on GCC in release mode." +msgstr "" + +#: ../../c-api/intro.rst:218 +msgid "" +"A use for ``Py_UNREACHABLE()`` is following a call a function that never " +"returns but that is not declared :c:macro:`_Py_NO_RETURN`." +msgstr "" + +#: ../../c-api/intro.rst:221 +msgid "" +"If a code path is very unlikely code but can be reached under exceptional " +"case, this macro must not be used. For example, under low memory condition " +"or if a system call returns a value out of the expected range. In this " +"case, it's better to report the error to the caller. If the error cannot be " +"reported to caller, :c:func:`Py_FatalError` can be used." +msgstr "" + +#: ../../c-api/intro.rst:231 +msgid "" +"Use this for unused arguments in a function definition to silence compiler " +"warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." +msgstr "" + +#: ../../c-api/intro.rst:238 +msgid "" +"Creates a variable with name ``name`` that can be used in docstrings. If " +"Python is built without docstrings, the value will be empty." +msgstr "" + +#: ../../c-api/intro.rst:241 +msgid "" +"Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: ../../c-api/intro.rst:246 +msgid "" +"PyDoc_STRVAR(pop_doc, \"Remove and return the rightmost element.\");\n" +"\n" +"static PyMethodDef deque_methods[] = {\n" +" // ...\n" +" {\"pop\", (PyCFunction)deque_pop, METH_NOARGS, pop_doc},\n" +" // ...\n" +"}" +msgstr "" + +#: ../../c-api/intro.rst:256 +msgid "" +"Creates a docstring for the given input string or an empty string if " +"docstrings are disabled." +msgstr "" + +#: ../../c-api/intro.rst:259 +msgid "" +"Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: ../../c-api/intro.rst:264 +msgid "" +"static PyMethodDef pysqlite_row_methods[] = {\n" +" {\"keys\", (PyCFunction)pysqlite_row_keys, METH_NOARGS,\n" +" PyDoc_STR(\"Returns the keys of the row.\")},\n" +" {NULL, NULL}\n" +"};" +msgstr "" + +#: ../../c-api/intro.rst:274 +msgid "Objects, Types and Reference Counts" +msgstr "" + +#: ../../c-api/intro.rst:278 +msgid "" +"Most Python/C API functions have one or more arguments as well as a return " +"value of type :c:expr:`PyObject*`. This type is a pointer to an opaque data " +"type representing an arbitrary Python object. Since all Python object types " +"are treated the same way by the Python language in most situations (e.g., " +"assignments, scope rules, and argument passing), it is only fitting that " +"they should be represented by a single C type. Almost all Python objects " +"live on the heap: you never declare an automatic or static variable of " +"type :c:type:`PyObject`, only pointer variables of type :c:expr:`PyObject*` " +"can be declared. The sole exception are the type objects; since these must " +"never be deallocated, they are typically static :c:type:`PyTypeObject` " +"objects." +msgstr "" + +#: ../../c-api/intro.rst:289 +msgid "" +"All Python objects (even Python integers) have a :dfn:`type` and " +"a :dfn:`reference count`. An object's type determines what kind of object " +"it is (e.g., an integer, a list, or a user-defined function; there are many " +"more as explained in :ref:`types`). For each of the well-known types there " +"is a macro to check whether an object is of that type; for instance, " +"``PyList_Check(a)`` is true if (and only if) the object pointed to by *a* is " +"a Python list." +msgstr "" + +#: ../../c-api/intro.rst:300 +msgid "Reference Counts" +msgstr "" + +#: ../../c-api/intro.rst:302 +msgid "" +"The reference count is important because today's computers have a finite " +"(and often severely limited) memory size; it counts how many different " +"places there are that have a :term:`strong reference` to an object. Such a " +"place could be another object, or a global (or static) C variable, or a " +"local variable in some C function. When the last :term:`strong reference` to " +"an object is released (i.e. its reference count becomes zero), the object is " +"deallocated. If it contains references to other objects, those references " +"are released. Those other objects may be deallocated in turn, if there are " +"no more references to them, and so on. (There's an obvious problem with " +"objects that reference each other here; for now, the solution is \"don't do " +"that.\")" +msgstr "" + +#: ../../c-api/intro.rst:319 +msgid "" +"Reference counts are always manipulated explicitly. The normal way is to " +"use the macro :c:func:`Py_INCREF` to take a new reference to an object (i.e. " +"increment its reference count by one), and :c:func:`Py_DECREF` to release " +"that reference (i.e. decrement the reference count by one). " +"The :c:func:`Py_DECREF` macro is considerably more complex than the incref " +"one, since it must check whether the reference count becomes zero and then " +"cause the object's deallocator to be called. The deallocator is a function " +"pointer contained in the object's type structure. The type-specific " +"deallocator takes care of releasing references for other objects contained " +"in the object if this is a compound object type, such as a list, as well as " +"performing any additional finalization that's needed. There's no chance " +"that the reference count can overflow; at least as many bits are used to " +"hold the reference count as there are distinct memory locations in virtual " +"memory (assuming ``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the " +"reference count increment is a simple operation." +msgstr "" + +#: ../../c-api/intro.rst:335 +msgid "" +"It is not necessary to hold a :term:`strong reference` (i.e. increment the " +"reference count) for every local variable that contains a pointer to an " +"object. In theory, the object's reference count goes up by one when the " +"variable is made to point to it and it goes down by one when the variable " +"goes out of scope. However, these two cancel each other out, so at the end " +"the reference count hasn't changed. The only real reason to use the " +"reference count is to prevent the object from being deallocated as long as " +"our variable is pointing to it. If we know that there is at least one " +"other reference to the object that lives at least as long as our variable, " +"there is no need to take a new :term:`strong reference` (i.e. increment the " +"reference count) temporarily. An important situation where this arises is in " +"objects that are passed as arguments to C functions in an extension module " +"that are called from Python; the call mechanism guarantees to hold a " +"reference to every argument for the duration of the call." +msgstr "" + +#: ../../c-api/intro.rst:351 +msgid "" +"However, a common pitfall is to extract an object from a list and hold on to " +"it for a while without taking a new reference. Some other operation might " +"conceivably remove the object from the list, releasing that reference, and " +"possibly deallocating it. The real danger is that innocent-looking " +"operations may invoke arbitrary Python code which could do this; there is a " +"code path which allows control to flow back to the user from " +"a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." +msgstr "" + +#: ../../c-api/intro.rst:359 +msgid "" +"A safe approach is to always use the generic operations (functions whose " +"name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " +"``PyMapping_``). These operations always create a new :term:`strong " +"reference` (i.e. increment the reference count) of the object they return. " +"This leaves the caller with the responsibility to call :c:func:`Py_DECREF` " +"when they are done with the result; this soon becomes second nature." +msgstr "" + +#: ../../c-api/intro.rst:370 +msgid "Reference Count Details" +msgstr "" + +#: ../../c-api/intro.rst:372 +msgid "" +"The reference count behavior of functions in the Python/C API is best " +"explained in terms of *ownership of references*. Ownership pertains to " +"references, never to objects (objects are not owned: they are always " +"shared). \"Owning a reference\" means being responsible for calling " +"Py_DECREF on it when the reference is no longer needed. Ownership can also " +"be transferred, meaning that the code that receives ownership of the " +"reference then becomes responsible for eventually releasing it by " +"calling :c:func:`Py_DECREF` or :c:func:`Py_XDECREF` when it's no longer " +"needed---or passing on this responsibility (usually to its caller). When a " +"function passes ownership of a reference on to its caller, the caller is " +"said to receive a *new* reference. When no ownership is transferred, the " +"caller is said to *borrow* the reference. Nothing needs to be done for " +"a :term:`borrowed reference`." +msgstr "" + +#: ../../c-api/intro.rst:385 +msgid "" +"Conversely, when a calling function passes in a reference to an object, " +"there are two possibilities: the function *steals* a reference to the " +"object, or it does not. *Stealing a reference* means that when you pass a " +"reference to a function, that function assumes that it now owns that " +"reference, and you are not responsible for it any longer." +msgstr "" + +#: ../../c-api/intro.rst:395 +msgid "" +"Few functions steal references; the two notable exceptions " +"are :c:func:`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a " +"reference to the item (but not to the tuple or list into which the item is " +"put!). These functions were designed to steal a reference because of a " +"common idiom for populating a tuple or list with newly created objects; for " +"example, the code to create the tuple ``(1, 2, \"three\")`` could look like " +"this (forgetting about error handling for the moment; a better way to code " +"this is shown below)::" +msgstr "" + +#: ../../c-api/intro.rst:403 +msgid "" +"PyObject *t;\n" +"\n" +"t = PyTuple_New(3);\n" +"PyTuple_SetItem(t, 0, PyLong_FromLong(1L));\n" +"PyTuple_SetItem(t, 1, PyLong_FromLong(2L));\n" +"PyTuple_SetItem(t, 2, PyUnicode_FromString(\"three\"));" +msgstr "" + +#: ../../c-api/intro.rst:410 +msgid "" +"Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " +"stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " +"although the reference to it will be stolen, use :c:func:`Py_INCREF` to grab " +"another reference before calling the reference-stealing function." +msgstr "" + +#: ../../c-api/intro.rst:415 +msgid "" +"Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " +"items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " +"do this since tuples are an immutable data type. You should only " +"use :c:func:`PyTuple_SetItem` for tuples that you are creating yourself." +msgstr "" + +#: ../../c-api/intro.rst:420 +msgid "" +"Equivalent code for populating a list can be written " +"using :c:func:`PyList_New` and :c:func:`PyList_SetItem`." +msgstr "" + +#: ../../c-api/intro.rst:423 +msgid "" +"However, in practice, you will rarely use these ways of creating and " +"populating a tuple or list. There's a generic " +"function, :c:func:`Py_BuildValue`, that can create most common objects from " +"C values, directed by a :dfn:`format string`. For example, the above two " +"blocks of code could be replaced by the following (which also takes care of " +"the error checking)::" +msgstr "" + +#: ../../c-api/intro.rst:429 +msgid "" +"PyObject *tuple, *list;\n" +"\n" +"tuple = Py_BuildValue(\"(iis)\", 1, 2, \"three\");\n" +"list = Py_BuildValue(\"[iis]\", 1, 2, \"three\");" +msgstr "" + +#: ../../c-api/intro.rst:434 +msgid "" +"It is much more common to use :c:func:`PyObject_SetItem` and friends with " +"items whose references you are only borrowing, like arguments that were " +"passed in to the function you are writing. In that case, their behaviour " +"regarding references is much saner, since you don't have to take a new " +"reference just so you can give that reference away (\"have it be stolen\"). " +"For example, this function sets all items of a list (actually, any mutable " +"sequence) to a given item::" +msgstr "" + +#: ../../c-api/intro.rst:441 +msgid "" +"int\n" +"set_all(PyObject *target, PyObject *item)\n" +"{\n" +" Py_ssize_t i, n;\n" +"\n" +" n = PyObject_Length(target);\n" +" if (n < 0)\n" +" return -1;\n" +" for (i = 0; i < n; i++) {\n" +" PyObject *index = PyLong_FromSsize_t(i);\n" +" if (!index)\n" +" return -1;\n" +" if (PyObject_SetItem(target, index, item) < 0) {\n" +" Py_DECREF(index);\n" +" return -1;\n" +" }\n" +" Py_DECREF(index);\n" +" }\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../c-api/intro.rst:464 +msgid "" +"The situation is slightly different for function return values. While " +"passing a reference to most functions does not change your ownership " +"responsibilities for that reference, many functions that return a reference " +"to an object give you ownership of the reference. The reason is simple: in " +"many cases, the returned object is created on the fly, and the reference " +"you get is the only reference to the object. Therefore, the generic " +"functions that return object references, like :c:func:`PyObject_GetItem` " +"and :c:func:`PySequence_GetItem`, always return a new reference (the caller " +"becomes the owner of the reference)." +msgstr "" + +#: ../../c-api/intro.rst:473 +msgid "" +"It is important to realize that whether you own a reference returned by a " +"function depends on which function you call only --- *the plumage* (the type " +"of the object passed as an argument to the function) *doesn't enter into it!" +"* Thus, if you extract an item from a list using :c:func:`PyList_GetItem`, " +"you don't own the reference --- but if you obtain the same item from the " +"same list using :c:func:`PySequence_GetItem` (which happens to take exactly " +"the same arguments), you do own a reference to the returned object." +msgstr "" + +#: ../../c-api/intro.rst:485 +msgid "" +"Here is an example of how you could write a function that computes the sum " +"of the items in a list of integers; once using :c:func:`PyList_GetItem`, " +"and once using :c:func:`PySequence_GetItem`. ::" +msgstr "" + +#: ../../c-api/intro.rst:489 +msgid "" +"long\n" +"sum_list(PyObject *list)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +"\n" +" n = PyList_Size(list);\n" +" if (n < 0)\n" +" return -1; /* Not a list */\n" +" for (i = 0; i < n; i++) {\n" +" item = PyList_GetItem(list, i); /* Can't fail */\n" +" if (!PyLong_Check(item)) continue; /* Skip non-integers */\n" +" value = PyLong_AsLong(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Integer too big to fit in a C long, bail out */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" return total;\n" +"}" +msgstr "" + +#: ../../c-api/intro.rst:515 +msgid "" +"long\n" +"sum_sequence(PyObject *sequence)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +" n = PySequence_Length(sequence);\n" +" if (n < 0)\n" +" return -1; /* Has no length */\n" +" for (i = 0; i < n; i++) {\n" +" item = PySequence_GetItem(sequence, i);\n" +" if (item == NULL)\n" +" return -1; /* Not a sequence, or other failure */\n" +" if (PyLong_Check(item)) {\n" +" value = PyLong_AsLong(item);\n" +" Py_DECREF(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Integer too big to fit in a C long, bail out */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" else {\n" +" Py_DECREF(item); /* Discard reference ownership */\n" +" }\n" +" }\n" +" return total;\n" +"}" +msgstr "" + +#: ../../c-api/intro.rst:549 +msgid "Types" +msgstr "" + +#: ../../c-api/intro.rst:551 +msgid "" +"There are few other data types that play a significant role in the Python/C " +"API; most are simple C types such " +"as :c:expr:`int`, :c:expr:`long`, :c:expr:`double` and :c:expr:`char*`. A " +"few structure types are used to describe static tables used to list the " +"functions exported by a module or the data attributes of a new object type, " +"and another is used to describe the value of a complex number. These will " +"be discussed together with the functions that use them." +msgstr "" + +#: ../../c-api/intro.rst:561 +msgid "" +"A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. " +"C99 doesn't define such a thing directly (size_t is an unsigned integral " +"type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest " +"positive value of type :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/intro.rst:570 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../c-api/intro.rst:572 +msgid "" +"The Python programmer only needs to deal with exceptions if specific error " +"handling is required; unhandled exceptions are automatically propagated to " +"the caller, then to the caller's caller, and so on, until they reach the top-" +"level interpreter, where they are reported to the user accompanied by a " +"stack traceback." +msgstr "" + +#: ../../c-api/intro.rst:580 +msgid "" +"For C programmers, however, error checking always has to be explicit. All " +"functions in the Python/C API can raise exceptions, unless an explicit claim " +"is made otherwise in a function's documentation. In general, when a " +"function encounters an error, it sets an exception, discards any object " +"references that it owns, and returns an error indicator. If not documented " +"otherwise, this indicator is either ``NULL`` or ``-1``, depending on the " +"function's return type. A few functions return a Boolean true/false result, " +"with false indicating an error. Very few functions return no explicit error " +"indicator or have an ambiguous return value, and require explicit testing " +"for errors with :c:func:`PyErr_Occurred`. These exceptions are always " +"explicitly documented." +msgstr "" + +#: ../../c-api/intro.rst:595 +msgid "" +"Exception state is maintained in per-thread storage (this is equivalent to " +"using global storage in an unthreaded application). A thread can be in one " +"of two states: an exception has occurred, or not. The " +"function :c:func:`PyErr_Occurred` can be used to check for this: it returns " +"a borrowed reference to the exception type object when an exception has " +"occurred, and ``NULL`` otherwise. There are a number of functions to set " +"the exception state: :c:func:`PyErr_SetString` is the most common (though " +"not the most general) function to set the exception state, " +"and :c:func:`PyErr_Clear` clears the exception state." +msgstr "" + +#: ../../c-api/intro.rst:605 +msgid "" +"The full exception state consists of three objects (all of which can be " +"``NULL``): the exception type, the corresponding exception value, and the " +"traceback. These have the same meanings as the Python result of " +"``sys.exc_info()``; however, they are not the same: the Python objects " +"represent the last exception being handled by a " +"Python :keyword:`try` ... :keyword:`except` statement, while the C level " +"exception state only exists while an exception is being passed on between C " +"functions until it reaches the Python bytecode interpreter's main loop, " +"which takes care of transferring it to ``sys.exc_info()`` and friends." +msgstr "" + +#: ../../c-api/intro.rst:617 +msgid "" +"Note that starting with Python 1.5, the preferred, thread-safe way to access " +"the exception state from Python code is to call the " +"function :func:`sys.exc_info`, which returns the per-thread exception state " +"for Python code. Also, the semantics of both ways to access the exception " +"state have changed so that a function which catches an exception will save " +"and restore its thread's exception state so as to preserve the exception " +"state of its caller. This prevents common bugs in exception handling code " +"caused by an innocent-looking function overwriting the exception being " +"handled; it also reduces the often unwanted lifetime extension for objects " +"that are referenced by the stack frames in the traceback." +msgstr "" + +#: ../../c-api/intro.rst:628 +msgid "" +"As a general principle, a function that calls another function to perform " +"some task should check whether the called function raised an exception, and " +"if so, pass the exception state on to its caller. It should discard any " +"object references that it owns, and return an error indicator, but it " +"should *not* set another exception --- that would overwrite the exception " +"that was just raised, and lose important information about the exact cause " +"of the error." +msgstr "" + +#: ../../c-api/intro.rst:637 +msgid "" +"A simple example of detecting exceptions and passing them on is shown in " +"the :c:func:`!sum_sequence` example above. It so happens that this example " +"doesn't need to clean up any owned references when it detects an error. The " +"following example function shows some error cleanup. First, to remind you " +"why you like Python, we show the equivalent Python code::" +msgstr "" + +#: ../../c-api/intro.rst:643 +msgid "" +"def incr_item(dict, key):\n" +" try:\n" +" item = dict[key]\n" +" except KeyError:\n" +" item = 0\n" +" dict[key] = item + 1" +msgstr "" + +#: ../../c-api/intro.rst:652 +msgid "Here is the corresponding C code, in all its glory::" +msgstr "" + +#: ../../c-api/intro.rst:654 +msgid "" +"int\n" +"incr_item(PyObject *dict, PyObject *key)\n" +"{\n" +" /* Objects all initialized to NULL for Py_XDECREF */\n" +" PyObject *item = NULL, *const_one = NULL, *incremented_item = NULL;\n" +" int rv = -1; /* Return value initialized to -1 (failure) */\n" +"\n" +" item = PyObject_GetItem(dict, key);\n" +" if (item == NULL) {\n" +" /* Handle KeyError only: */\n" +" if (!PyErr_ExceptionMatches(PyExc_KeyError))\n" +" goto error;\n" +"\n" +" /* Clear the error and use zero: */\n" +" PyErr_Clear();\n" +" item = PyLong_FromLong(0L);\n" +" if (item == NULL)\n" +" goto error;\n" +" }\n" +" const_one = PyLong_FromLong(1L);\n" +" if (const_one == NULL)\n" +" goto error;\n" +"\n" +" incremented_item = PyNumber_Add(item, const_one);\n" +" if (incremented_item == NULL)\n" +" goto error;\n" +"\n" +" if (PyObject_SetItem(dict, key, incremented_item) < 0)\n" +" goto error;\n" +" rv = 0; /* Success */\n" +" /* Continue with cleanup code */\n" +"\n" +" error:\n" +" /* Cleanup code, shared by success and failure path */\n" +"\n" +" /* Use Py_XDECREF() to ignore NULL references */\n" +" Py_XDECREF(item);\n" +" Py_XDECREF(const_one);\n" +" Py_XDECREF(incremented_item);\n" +"\n" +" return rv; /* -1 for error, 0 for success */\n" +"}" +msgstr "" + +#: ../../c-api/intro.rst:704 +msgid "" +"This example represents an endorsed use of the ``goto`` statement in C! It " +"illustrates the use of :c:func:`PyErr_ExceptionMatches` " +"and :c:func:`PyErr_Clear` to handle specific exceptions, and the use " +"of :c:func:`Py_XDECREF` to dispose of owned references that may be ``NULL`` " +"(note the ``'X'`` in the name; :c:func:`Py_DECREF` would crash when " +"confronted with a ``NULL`` reference). It is important that the variables " +"used to hold owned references are initialized to ``NULL`` for this to work; " +"likewise, the proposed return value is initialized to ``-1`` (failure) and " +"only set to success after the final call made is successful." +msgstr "" + +#: ../../c-api/intro.rst:718 +msgid "Embedding Python" +msgstr "" + +#: ../../c-api/intro.rst:720 +msgid "" +"The one important task that only embedders (as opposed to extension writers) " +"of the Python interpreter have to worry about is the initialization, and " +"possibly the finalization, of the Python interpreter. Most functionality of " +"the interpreter can only be used after the interpreter has been initialized." +msgstr "" + +#: ../../c-api/intro.rst:733 +msgid "" +"The basic initialization function is :c:func:`Py_Initialize`. This " +"initializes the table of loaded modules, and creates the fundamental " +"modules :mod:`builtins`, :mod:`__main__`, and :mod:`sys`. It also " +"initializes the module search path (``sys.path``)." +msgstr "" + +#: ../../c-api/intro.rst:738 +msgid "" +":c:func:`Py_Initialize` does not set the \"script argument list\" " +"(``sys.argv``). If this variable is needed by Python code that will be " +"executed later, setting :c:member:`PyConfig.argv` " +"and :c:member:`PyConfig.parse_argv` must be set: see :ref:`Python " +"Initialization Configuration `." +msgstr "" + +#: ../../c-api/intro.rst:743 +msgid "" +"On most systems (in particular, on Unix and Windows, although the details " +"are slightly different), :c:func:`Py_Initialize` calculates the module " +"search path based upon its best guess for the location of the standard " +"Python interpreter executable, assuming that the Python library is found in " +"a fixed location relative to the Python interpreter executable. In " +"particular, it looks for a directory named :file:`lib/python{X.Y}` relative " +"to the parent directory where the executable named :file:`python` is found " +"on the shell command search path (the environment variable :envvar:`PATH`)." +msgstr "" + +#: ../../c-api/intro.rst:752 +msgid "" +"For instance, if the Python executable is found in :file:`/usr/local/bin/" +"python`, it will assume that the libraries are in :file:`/usr/local/lib/" +"python{X.Y}`. (In fact, this particular path is also the \"fallback\" " +"location, used when no executable file named :file:`python` is found " +"along :envvar:`PATH`.) The user can override this behavior by setting the " +"environment variable :envvar:`PYTHONHOME`, or insert additional directories " +"in front of the standard path by setting :envvar:`PYTHONPATH`." +msgstr "" + +#: ../../c-api/intro.rst:766 +msgid "" +"The embedding application can steer the search by " +"setting :c:member:`PyConfig.program_name` *before* " +"calling :c:func:`Py_InitializeFromConfig`. Note that :envvar:`PYTHONHOME` " +"still overrides this and :envvar:`PYTHONPATH` is still inserted in front of " +"the standard path. An application that requires total control has to " +"provide its own implementation " +"of :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, " +"and :c:func:`Py_GetProgramFullPath` (all defined in :file:`Modules/" +"getpath.c`)." +msgstr "" + +#: ../../c-api/intro.rst:777 +msgid "" +"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " +"application may want to start over (make another call " +"to :c:func:`Py_Initialize`) or the application is simply done with its use " +"of Python and wants to free memory allocated by Python. This can be " +"accomplished by calling :c:func:`Py_FinalizeEx`. The " +"function :c:func:`Py_IsInitialized` returns true if Python is currently in " +"the initialized state. More information about these functions is given in a " +"later chapter. Notice that :c:func:`Py_FinalizeEx` does *not* free all " +"memory allocated by the Python interpreter, e.g. memory allocated by " +"extension modules currently cannot be released." +msgstr "" + +#: ../../c-api/intro.rst:791 +msgid "Debugging Builds" +msgstr "" + +#: ../../c-api/intro.rst:793 +msgid "" +"Python can be built with several macros to enable extra checks of the " +"interpreter and extension modules. These checks tend to add a large amount " +"of overhead to the runtime so they are not enabled by default." +msgstr "" + +#: ../../c-api/intro.rst:797 +msgid "" +"A full list of the various types of debugging builds is in the " +"file :file:`Misc/SpecialBuilds.txt` in the Python source distribution. " +"Builds are available that support tracing of reference counts, debugging the " +"memory allocator, or low-level profiling of the main interpreter loop. Only " +"the most frequently used builds will be described in the remainder of this " +"section." +msgstr "" + +#: ../../c-api/intro.rst:805 +msgid "" +"Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined " +"produces what is generally meant by :ref:`a debug build of Python `. :c:macro:`!Py_DEBUG` is enabled in the Unix build by " +"adding :option:`--with-pydebug` to the :file:`./configure` command. It is " +"also implied by the presence of the not-Python-specific :c:macro:`!_DEBUG` " +"macro. When :c:macro:`!Py_DEBUG` is enabled in the Unix build, compiler " +"optimization is disabled." +msgstr "" + +#: ../../c-api/intro.rst:813 +msgid "" +"In addition to the reference count debugging described below, extra checks " +"are performed, see :ref:`Python Debug Build `." +msgstr "" + +#: ../../c-api/intro.rst:816 +msgid "" +"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see " +"the :option:`configure --with-trace-refs option <--with-trace-refs>`). When " +"defined, a circular doubly linked list of active objects is maintained by " +"adding two extra fields to every :c:type:`PyObject`. Total allocations are " +"tracked as well. Upon exit, all existing references are printed. (In " +"interactive mode this happens after every statement run by the interpreter.)" +msgstr "" + +#: ../../c-api/intro.rst:823 +msgid "" +"Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " +"distribution for more detailed information." +msgstr "" + +#: ../../c-api/intro.rst:830 +msgid "Recommended third party tools" +msgstr "" + +#: ../../c-api/intro.rst:832 +msgid "" +"The following third party tools offer both simpler and more sophisticated " +"approaches to creating C, C++ and Rust extensions for Python:" +msgstr "" + +#: ../../c-api/intro.rst:835 +msgid "`Cython `_" +msgstr "" + +#: ../../c-api/intro.rst:836 +msgid "`cffi `_" +msgstr "" + +#: ../../c-api/intro.rst:837 +msgid "`HPy `_" +msgstr "" + +#: ../../c-api/intro.rst:838 +msgid "`nanobind `_ (C++)" +msgstr "" + +#: ../../c-api/intro.rst:839 +msgid "`Numba `_" +msgstr "" + +#: ../../c-api/intro.rst:840 +msgid "`pybind11 `_ (C++)" +msgstr "" + +#: ../../c-api/intro.rst:841 +msgid "`PyO3 `_ (Rust)" +msgstr "" + +#: ../../c-api/intro.rst:842 +msgid "`SWIG `_" +msgstr "" + +#: ../../c-api/intro.rst:844 +msgid "" +"Using tools such as these can help avoid writing code that is tightly bound " +"to a particular version of CPython, avoid reference counting errors, and " +"focus more on your own code than on using the CPython API. In general, new " +"versions of Python can be supported by updating the tool, and your code will " +"often use newer and more efficient APIs automatically. Some tools also " +"support compiling for other implementations of Python from a single set of " +"sources." +msgstr "" + +#: ../../c-api/intro.rst:851 +msgid "" +"These projects are not supported by the same people who maintain Python, and " +"issues need to be raised with the projects directly. Remember to check that " +"the project is still maintained and supported, as the list above may become " +"outdated." +msgstr "" + +#: ../../c-api/intro.rst:858 +msgid "" +"`Python Packaging User Guide: Binary Extensions `_" +msgstr "" + +#: ../../c-api/intro.rst:859 +msgid "" +"The Python Packaging User Guide not only covers several available tools that " +"simplify the creation of binary extensions, but also discusses the various " +"reasons why creating an extension module may be desirable in the first place." +msgstr "" + +#: ../../c-api/intro.rst:276 +msgid "object" +msgstr "" + +#: ../../c-api/intro.rst:276 +msgid "type" +msgstr "" + +#: ../../c-api/intro.rst:315 +msgid "Py_INCREF (C function)" +msgstr "" + +#: ../../c-api/intro.rst:315 +msgid "Py_DECREF (C function)" +msgstr "" + +#: ../../c-api/intro.rst:391 +msgid "PyList_SetItem (C function)" +msgstr "" + +#: ../../c-api/intro.rst:391 +msgid "PyTuple_SetItem (C function)" +msgstr "" + +#: ../../c-api/intro.rst:462 +msgid "set_all()" +msgstr "" + +#: ../../c-api/intro.rst:481 +msgid "PyList_GetItem (C function)" +msgstr "" + +#: ../../c-api/intro.rst:481 +msgid "PySequence_GetItem (C function)" +msgstr "" + +#: ../../c-api/intro.rst:511 +msgid "sum_list()" +msgstr "" + +#: ../../c-api/intro.rst:543 ../../c-api/intro.rst:635 +msgid "sum_sequence()" +msgstr "" + +#: ../../c-api/intro.rst:578 +msgid "PyErr_Occurred (C function)" +msgstr "" + +#: ../../c-api/intro.rst:591 +msgid "PyErr_SetString (C function)" +msgstr "" + +#: ../../c-api/intro.rst:591 ../../c-api/intro.rst:699 +msgid "PyErr_Clear (C function)" +msgstr "" + +#: ../../c-api/intro.rst:615 +msgid "exc_info (in module sys)" +msgstr "" + +#: ../../c-api/intro.rst:650 ../../c-api/intro.rst:697 +msgid "incr_item()" +msgstr "" + +#: ../../c-api/intro.rst:699 +msgid "PyErr_ExceptionMatches (C function)" +msgstr "" + +#: ../../c-api/intro.rst:699 +msgid "Py_XDECREF (C function)" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "Py_Initialize (C function)" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "module" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "builtins" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "__main__" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "sys" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "search" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "path" +msgstr "" + +#: ../../c-api/intro.rst:725 +msgid "path (in module sys)" +msgstr "" + +#: ../../c-api/intro.rst:760 +msgid "Py_GetPath (C function)" +msgstr "" + +#: ../../c-api/intro.rst:760 +msgid "Py_GetPrefix (C function)" +msgstr "" + +#: ../../c-api/intro.rst:760 +msgid "Py_GetExecPrefix (C function)" +msgstr "" + +#: ../../c-api/intro.rst:760 +msgid "Py_GetProgramFullPath (C function)" +msgstr "" + +#: ../../c-api/intro.rst:775 +msgid "Py_IsInitialized (C function)" +msgstr "" diff --git a/c-api/iter.po b/c-api/iter.po new file mode 100644 index 0000000..cb4e9c5 --- /dev/null +++ b/c-api/iter.po @@ -0,0 +1,88 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/iter.rst:6 +msgid "Iterator Protocol" +msgstr "" + +#: ../../c-api/iter.rst:8 +msgid "There are two functions specifically for working with iterators." +msgstr "" + +#: ../../c-api/iter.rst:12 +msgid "" +"Return non-zero if the object *o* can be safely passed " +"to :c:func:`PyIter_NextItem` and ``0`` otherwise. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/iter.rst:18 +msgid "" +"Return non-zero if the object *o* provides the :class:`AsyncIterator` " +"protocol, and ``0`` otherwise. This function always succeeds." +msgstr "" + +#: ../../c-api/iter.rst:25 +msgid "" +"Return ``1`` and set *item* to a :term:`strong reference` of the next value " +"of the iterator *iter* on success. Return ``0`` and set *item* to ``NULL`` " +"if there are no remaining values. Return ``-1``, set *item* to ``NULL`` and " +"set an exception on error." +msgstr "" + +#: ../../c-api/iter.rst:34 +msgid "" +"This is an older version of :c:func:`!PyIter_NextItem`, which is retained " +"for backwards compatibility. Prefer :c:func:`PyIter_NextItem`." +msgstr "" + +#: ../../c-api/iter.rst:38 +msgid "" +"Return the next value from the iterator *o*. The object must be an iterator " +"according to :c:func:`PyIter_Check` (it is up to the caller to check this). " +"If there are no remaining values, returns ``NULL`` with no exception set. If " +"an error occurs while retrieving the item, returns ``NULL`` and passes along " +"the exception." +msgstr "" + +#: ../../c-api/iter.rst:46 +msgid "" +"The enum value used to represent different results of :c:func:`PyIter_Send`." +msgstr "" + +#: ../../c-api/iter.rst:53 +msgid "Sends the *arg* value into the iterator *iter*. Returns:" +msgstr "" + +#: ../../c-api/iter.rst:55 +msgid "" +"``PYGEN_RETURN`` if iterator returns. Return value is returned via *presult*." +msgstr "" + +#: ../../c-api/iter.rst:56 +msgid "" +"``PYGEN_NEXT`` if iterator yields. Yielded value is returned via *presult*." +msgstr "" + +#: ../../c-api/iter.rst:57 +msgid "" +"``PYGEN_ERROR`` if iterator has raised and exception. *presult* is set to " +"``NULL``." +msgstr "" diff --git a/c-api/iterator.po b/c-api/iterator.po new file mode 100644 index 0000000..be615b5 --- /dev/null +++ b/c-api/iterator.po @@ -0,0 +1,72 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/iterator.rst:6 +msgid "Iterator Objects" +msgstr "" + +#: ../../c-api/iterator.rst:8 +msgid "" +"Python provides two general-purpose iterator objects. The first, a sequence " +"iterator, works with an arbitrary sequence supporting " +"the :meth:`~object.__getitem__` method. The second works with a callable " +"object and a sentinel value, calling the callable for each item in the " +"sequence, and ending the iteration when the sentinel value is returned." +msgstr "" + +#: ../../c-api/iterator.rst:17 +msgid "" +"Type object for iterator objects returned by :c:func:`PySeqIter_New` and the " +"one-argument form of the :func:`iter` built-in function for built-in " +"sequence types." +msgstr "" + +#: ../../c-api/iterator.rst:24 +msgid "" +"Return true if the type of *op* is :c:data:`PySeqIter_Type`. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/iterator.rst:30 +msgid "" +"Return an iterator that works with a general sequence object, *seq*. The " +"iteration ends when the sequence raises :exc:`IndexError` for the " +"subscripting operation." +msgstr "" + +#: ../../c-api/iterator.rst:37 +msgid "" +"Type object for iterator objects returned by :c:func:`PyCallIter_New` and " +"the two-argument form of the :func:`iter` built-in function." +msgstr "" + +#: ../../c-api/iterator.rst:43 +msgid "" +"Return true if the type of *op* is :c:data:`PyCallIter_Type`. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/iterator.rst:49 +msgid "" +"Return a new iterator. The first parameter, *callable*, can be any Python " +"callable object that can be called with no parameters; each call to it " +"should return the next item in the iteration. When *callable* returns a " +"value equal to *sentinel*, the iteration will be terminated." +msgstr "" diff --git a/c-api/lifecycle.po b/c-api/lifecycle.po new file mode 100644 index 0000000..dbe7a99 --- /dev/null +++ b/c-api/lifecycle.po @@ -0,0 +1,366 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/lifecycle.rst:6 +msgid "Object Life Cycle" +msgstr "" + +#: ../../c-api/lifecycle.rst:8 +msgid "" +"This section explains how a type's slots relate to each other throughout the " +"life of an object. It is not intended to be a complete canonical reference " +"for the slots; instead, refer to the slot-specific documentation " +"in :ref:`type-structs` for details about a particular slot." +msgstr "" + +#: ../../c-api/lifecycle.rst:15 +msgid "Life Events" +msgstr "" + +#: ../../c-api/lifecycle.rst:17 +msgid "" +"The figure below illustrates the order of events that can occur throughout " +"an object's life. An arrow from *A* to *B* indicates that event *B* can " +"occur after event *A* has occurred, with the arrow's label indicating the " +"condition that must be true for *B* to occur after *A*." +msgstr "" + +#: ../../c-api/lifecycle.rst:55 ../../c-api/lifecycle.rst:62 +msgid "Diagram showing events in an object's life. Explained in detail below." +msgstr "" + +#: ../../c-api/lifecycle.rst:70 +msgid "Explanation:" +msgstr "" + +#: ../../c-api/lifecycle.rst:72 +msgid "When a new object is constructed by calling its type:" +msgstr "" + +#: ../../c-api/lifecycle.rst:74 +msgid ":c:member:`~PyTypeObject.tp_new` is called to create a new object." +msgstr "" + +#: ../../c-api/lifecycle.rst:75 +msgid "" +":c:member:`~PyTypeObject.tp_alloc` is directly called " +"by :c:member:`~PyTypeObject.tp_new` to allocate the memory for the new " +"object." +msgstr "" + +#: ../../c-api/lifecycle.rst:78 +msgid "" +":c:member:`~PyTypeObject.tp_init` initializes the newly created " +"object. :c:member:`!tp_init` can be called again to re-initialize an object, " +"if desired. The :c:member:`!tp_init` call can also be skipped entirely, for " +"example by Python code calling :py:meth:`~object.__new__`." +msgstr "" + +#: ../../c-api/lifecycle.rst:83 +msgid "After :c:member:`!tp_init` completes, the object is ready to use." +msgstr "" + +#: ../../c-api/lifecycle.rst:84 +msgid "Some time after the last reference to an object is removed:" +msgstr "" + +#: ../../c-api/lifecycle.rst:86 +msgid "" +"If an object is not marked as *finalized*, it might be finalized by marking " +"it as *finalized* and calling its :c:member:`~PyTypeObject.tp_finalize` " +"function. Python does *not* finalize an object when the last reference to " +"it is deleted; use :c:func:`PyObject_CallFinalizerFromDealloc` to ensure " +"that :c:member:`~PyTypeObject.tp_finalize` is always called." +msgstr "" + +#: ../../c-api/lifecycle.rst:92 +msgid "" +"If the object is marked as finalized, :c:member:`~PyTypeObject.tp_clear` " +"might be called by the garbage collector to clear references held by the " +"object. It is *not* called when the object's reference count reaches zero." +msgstr "" + +#: ../../c-api/lifecycle.rst:96 +msgid "" +":c:member:`~PyTypeObject.tp_dealloc` is called to destroy the object. To " +"avoid code duplication, :c:member:`~PyTypeObject.tp_dealloc` typically calls " +"into :c:member:`~PyTypeObject.tp_clear` to free up the object's references." +msgstr "" + +#: ../../c-api/lifecycle.rst:100 +msgid "" +"When :c:member:`~PyTypeObject.tp_dealloc` finishes object destruction, it " +"directly calls :c:member:`~PyTypeObject.tp_free` (usually set " +"to :c:func:`PyObject_Free` or :c:func:`PyObject_GC_Del` automatically as " +"appropriate for the type) to deallocate the memory." +msgstr "" + +#: ../../c-api/lifecycle.rst:105 +msgid "" +"The :c:member:`~PyTypeObject.tp_finalize` function is permitted to add a " +"reference to the object if desired. If it does, the object is " +"*resurrected*, preventing its pending destruction. (Only :c:member:`!" +"tp_finalize` is allowed to resurrect an " +"object; :c:member:`~PyTypeObject.tp_clear` " +"and :c:member:`~PyTypeObject.tp_dealloc` cannot without calling " +"into :c:member:`!tp_finalize`.) Resurrecting an object may or may not cause " +"the object's *finalized* mark to be removed. Currently, Python does not " +"remove the *finalized* mark from a resurrected object if it supports garbage " +"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set) but does " +"remove the mark if the object does not support garbage collection; either or " +"both of these behaviors may change in the future." +msgstr "" + +#: ../../c-api/lifecycle.rst:118 +msgid "" +":c:member:`~PyTypeObject.tp_dealloc` can optionally " +"call :c:member:`~PyTypeObject.tp_finalize` " +"via :c:func:`PyObject_CallFinalizerFromDealloc` if it wishes to reuse that " +"code to help with object destruction. This is recommended because it " +"guarantees that :c:member:`!tp_finalize` is always called before " +"destruction. See the :c:member:`~PyTypeObject.tp_dealloc` documentation for " +"example code." +msgstr "" + +#: ../../c-api/lifecycle.rst:125 +msgid "" +"If the object is a member of a :term:`cyclic isolate` and " +"either :c:member:`~PyTypeObject.tp_clear` fails to break the reference cycle " +"or the cyclic isolate is not detected (perhaps :func:`gc.disable` was " +"called, or the :c:macro:`Py_TPFLAGS_HAVE_GC` flag was erroneously omitted in " +"one of the involved types), the objects remain indefinitely uncollectable " +"(they \"leak\"). See :data:`gc.garbage`." +msgstr "" + +#: ../../c-api/lifecycle.rst:132 +msgid "" +"If the object is marked as supporting garbage collection " +"(the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " +"in :c:member:`~PyTypeObject.tp_flags`), the following events are also " +"possible:" +msgstr "" + +#: ../../c-api/lifecycle.rst:136 +msgid "" +"The garbage collector occasionally " +"calls :c:member:`~PyTypeObject.tp_traverse` to identify :term:`cyclic " +"isolates `." +msgstr "" + +#: ../../c-api/lifecycle.rst:139 +msgid "" +"When the garbage collector discovers a :term:`cyclic isolate`, it finalizes " +"one of the objects in the group by marking it as *finalized* and calling " +"its :c:member:`~PyTypeObject.tp_finalize` function, if it has one. This " +"repeats until the cyclic isolate doesn't exist or all of the objects have " +"been finalized." +msgstr "" + +#: ../../c-api/lifecycle.rst:144 +msgid "" +":c:member:`~PyTypeObject.tp_finalize` is permitted to resurrect the object " +"by adding a reference from outside the :term:`cyclic isolate`. The new " +"reference causes the group of objects to no longer form a cyclic isolate " +"(the reference cycle may still exist, but if it does the objects are no " +"longer isolated)." +msgstr "" + +#: ../../c-api/lifecycle.rst:149 +msgid "" +"When the garbage collector discovers a :term:`cyclic isolate` and all of the " +"objects in the group have already been marked as *finalized*, the garbage " +"collector clears one or more of the uncleared objects in the group (possibly " +"concurrently) by calling each's :c:member:`~PyTypeObject.tp_clear` " +"function. This repeats as long as the cyclic isolate still exists and not " +"all of the objects have been cleared." +msgstr "" + +#: ../../c-api/lifecycle.rst:158 +msgid "Cyclic Isolate Destruction" +msgstr "" + +#: ../../c-api/lifecycle.rst:160 +msgid "" +"Listed below are the stages of life of a hypothetical :term:`cyclic isolate` " +"that continues to exist after each member object is finalized or cleared. " +"It is a memory leak if a cyclic isolate progresses through all of these " +"stages; it should vanish once all objects are cleared, if not sooner. A " +"cyclic isolate can vanish either because the reference cycle is broken or " +"because the objects are no longer isolated due to finalizer resurrection " +"(see :c:member:`~PyTypeObject.tp_finalize`)." +msgstr "" + +#: ../../c-api/lifecycle.rst:168 +msgid "" +"**Reachable** (not yet a cyclic isolate): All objects are in their normal, " +"reachable state. A reference cycle could exist, but an external reference " +"means the objects are not yet isolated." +msgstr "" + +#: ../../c-api/lifecycle.rst:171 +msgid "" +"**Unreachable but consistent:** The final reference from outside the cyclic " +"group of objects has been removed, causing the objects to become isolated " +"(thus a cyclic isolate is born). None of the group's objects have been " +"finalized or cleared yet. The cyclic isolate remains at this stage until " +"some future run of the garbage collector (not necessarily the next run " +"because the next run might not scan every object)." +msgstr "" + +#: ../../c-api/lifecycle.rst:177 +msgid "" +"**Mix of finalized and not finalized:** Objects in a cyclic isolate are " +"finalized one at a time, which means that there is a period of time when the " +"cyclic isolate is composed of a mix of finalized and non-finalized objects. " +"Finalization order is unspecified, so it can appear random. A finalized " +"object must behave in a sane manner when non-finalized objects interact with " +"it, and a non-finalized object must be able to tolerate the finalization of " +"an arbitrary subset of its referents." +msgstr "" + +#: ../../c-api/lifecycle.rst:184 +msgid "" +"**All finalized:** All objects in a cyclic isolate are finalized before any " +"of them are cleared." +msgstr "" + +#: ../../c-api/lifecycle.rst:186 +msgid "" +"**Mix of finalized and cleared:** The objects can be cleared serially or " +"concurrently (but with the :term:`GIL` held); either way, some will finish " +"before others. A finalized object must be able to tolerate the clearing of " +"a subset of its referents. :pep:`442` calls this stage \"cyclic trash\"." +msgstr "" + +#: ../../c-api/lifecycle.rst:190 +msgid "" +"**Leaked:** If a cyclic isolate still exists after all objects in the group " +"have been finalized and cleared, then the objects remain indefinitely " +"uncollectable (see :data:`gc.garbage`). It is a bug if a cyclic isolate " +"reaches this stage---it means the :c:member:`~PyTypeObject.tp_clear` methods " +"of the participating objects have failed to break the reference cycle as " +"required." +msgstr "" + +#: ../../c-api/lifecycle.rst:197 +msgid "" +"If :c:member:`~PyTypeObject.tp_clear` did not exist, then Python would have " +"no way to safely break a reference cycle. Simply destroying an object in a " +"cyclic isolate would result in a dangling pointer, triggering undefined " +"behavior when an object referencing the destroyed object is itself " +"destroyed. The clearing step makes object destruction a two-phase process: " +"first :c:member:`~PyTypeObject.tp_clear` is called to partially destroy the " +"objects enough to detangle them from each other, " +"then :c:member:`~PyTypeObject.tp_dealloc` is called to complete the " +"destruction." +msgstr "" + +#: ../../c-api/lifecycle.rst:206 +msgid "" +"Unlike clearing, finalization is not a phase of destruction. A finalized " +"object must still behave properly by continuing to fulfill its design " +"contracts. An object's finalizer is allowed to execute arbitrary Python " +"code, and is even allowed to prevent the impending destruction by adding a " +"reference. The finalizer is only related to destruction by call order---if " +"it runs, it runs before destruction, which starts " +"with :c:member:`~PyTypeObject.tp_clear` (if called) and concludes " +"with :c:member:`~PyTypeObject.tp_dealloc`." +msgstr "" + +#: ../../c-api/lifecycle.rst:214 +msgid "" +"The finalization step is not necessary to safely reclaim the objects in a " +"cyclic isolate, but its existence makes it easier to design types that " +"behave in a sane manner when objects are cleared. Clearing an object might " +"necessarily leave it in a broken, partially destroyed state---it might be " +"unsafe to call any of the cleared object's methods or access any of its " +"attributes. With finalization, only finalized objects can possibly interact " +"with cleared objects; non-finalized objects are guaranteed to interact with " +"only non-cleared (but potentially finalized) objects." +msgstr "" + +#: ../../c-api/lifecycle.rst:223 +msgid "To summarize the possible interactions:" +msgstr "" + +#: ../../c-api/lifecycle.rst:225 +msgid "" +"A non-finalized object might have references to or from non-finalized and " +"finalized objects, but not to or from cleared objects." +msgstr "" + +#: ../../c-api/lifecycle.rst:227 +msgid "" +"A finalized object might have references to or from non-finalized, " +"finalized, and cleared objects." +msgstr "" + +#: ../../c-api/lifecycle.rst:229 +msgid "" +"A cleared object might have references to or from finalized and cleared " +"objects, but not to or from non-finalized objects." +msgstr "" + +#: ../../c-api/lifecycle.rst:232 +msgid "" +"Without any reference cycles, an object can be simply destroyed once its " +"last reference is deleted; the finalization and clearing steps are not " +"necessary to safely reclaim unused objects. However, it can be useful to " +"automatically call :c:member:`~PyTypeObject.tp_finalize` " +"and :c:member:`~PyTypeObject.tp_clear` before destruction anyway because " +"type design is simplified when all objects always experience the same series " +"of events regardless of whether they participated in a cyclic isolate. " +"Python currently only calls :c:member:`~PyTypeObject.tp_finalize` " +"and :c:member:`~PyTypeObject.tp_clear` as needed to destroy a cyclic " +"isolate; this may change in a future version." +msgstr "" + +#: ../../c-api/lifecycle.rst:244 +msgid "Functions" +msgstr "" + +#: ../../c-api/lifecycle.rst:246 +msgid "To allocate and free memory, see :ref:`allocating-objects`." +msgstr "" + +#: ../../c-api/lifecycle.rst:251 +msgid "" +"Finalizes the object as described in :c:member:`~PyTypeObject.tp_finalize`. " +"Call this function (or :c:func:`PyObject_CallFinalizerFromDealloc`) instead " +"of calling :c:member:`~PyTypeObject.tp_finalize` directly because this " +"function may deduplicate multiple calls to :c:member:`!tp_finalize`. " +"Currently, calls are only deduplicated if the type supports garbage " +"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set); this may " +"change in the future." +msgstr "" + +#: ../../c-api/lifecycle.rst:262 +msgid "" +"Same as :c:func:`PyObject_CallFinalizer` but meant to be called at the " +"beginning of the object's destructor (:c:member:`~PyTypeObject.tp_dealloc`). " +"There must not be any references to the object. If the object's finalizer " +"resurrects the object, this function returns -1; no further destruction " +"should happen. Otherwise, this function returns 0 and destruction can " +"continue normally." +msgstr "" + +#: ../../c-api/lifecycle.rst:271 +msgid ":c:member:`~PyTypeObject.tp_dealloc` for example code." +msgstr "" diff --git a/c-api/list.po b/c-api/list.po new file mode 100644 index 0000000..b9a217e --- /dev/null +++ b/c-api/list.po @@ -0,0 +1,217 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/list.rst:6 +msgid "List Objects" +msgstr "" + +#: ../../c-api/list.rst:13 +msgid "This subtype of :c:type:`PyObject` represents a Python list object." +msgstr "" + +#: ../../c-api/list.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python list type. " +"This is the same object as :class:`list` in the Python layer." +msgstr "" + +#: ../../c-api/list.rst:24 +msgid "" +"Return true if *p* is a list object or an instance of a subtype of the list " +"type. This function always succeeds." +msgstr "" + +#: ../../c-api/list.rst:30 +msgid "" +"Return true if *p* is a list object, but not an instance of a subtype of the " +"list type. This function always succeeds." +msgstr "" + +#: ../../c-api/list.rst:36 +msgid "Return a new list of length *len* on success, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/list.rst:40 +msgid "" +"If *len* is greater than zero, the returned list object's items are set to " +"``NULL``. Thus you cannot use abstract API functions such " +"as :c:func:`PySequence_SetItem` or expose the object to Python code before " +"setting all items to a real object with :c:func:`PyList_SetItem` " +"or :c:func:`PyList_SET_ITEM()`. The following APIs are safe APIs before the " +"list is fully initialized: :c:func:`PyList_SetItem()` " +"and :c:func:`PyList_SET_ITEM()`." +msgstr "" + +#: ../../c-api/list.rst:53 +msgid "" +"Return the length of the list object in *list*; this is equivalent to " +"``len(list)`` on a list object." +msgstr "" + +#: ../../c-api/list.rst:59 +msgid "Similar to :c:func:`PyList_Size`, but without error checking." +msgstr "" + +#: ../../c-api/list.rst:64 +msgid "" +"Return the object at position *index* in the list pointed to by *list*. The " +"position must be non-negative; indexing from the end of the list is not " +"supported. If *index* is out of bounds (:code:`<0 or >=len(list)`), return " +"``NULL`` and set an :exc:`IndexError` exception." +msgstr "" + +#: ../../c-api/list.rst:74 +msgid "" +"Like :c:func:`PyList_GetItemRef`, but returns a :term:`borrowed reference` " +"instead of a :term:`strong reference`." +msgstr "" + +#: ../../c-api/list.rst:80 +msgid "Similar to :c:func:`PyList_GetItem`, but without error checking." +msgstr "" + +#: ../../c-api/list.rst:85 +msgid "" +"Set the item at index *index* in list to *item*. Return ``0`` on success. " +"If *index* is out of bounds, return ``-1`` and set an :exc:`IndexError` " +"exception." +msgstr "" + +#: ../../c-api/list.rst:91 +msgid "" +"This function \"steals\" a reference to *item* and discards a reference to " +"an item already in the list at the affected position." +msgstr "" + +#: ../../c-api/list.rst:97 +msgid "" +"Macro form of :c:func:`PyList_SetItem` without error checking. This is " +"normally only used to fill in new lists where there is no previous content." +msgstr "" + +#: ../../c-api/list.rst:100 +msgid "" +"Bounds checking is performed as an assertion if Python is built " +"in :ref:`debug mode ` or :option:`with assertions <--with-" +"assertions>`." +msgstr "" + +#: ../../c-api/list.rst:106 +msgid "" +"This macro \"steals\" a reference to *item*, and, " +"unlike :c:func:`PyList_SetItem`, does *not* discard a reference to any item " +"that is being replaced; any reference in *list* at position *i* will be " +"leaked." +msgstr "" + +#: ../../c-api/list.rst:114 +msgid "" +"Insert the item *item* into list *list* in front of index *index*. Return " +"``0`` if successful; return ``-1`` and set an exception if unsuccessful. " +"Analogous to ``list.insert(index, item)``." +msgstr "" + +#: ../../c-api/list.rst:121 +msgid "" +"Append the object *item* at the end of list *list*. Return ``0`` if " +"successful; return ``-1`` and set an exception if unsuccessful. Analogous " +"to ``list.append(item)``." +msgstr "" + +#: ../../c-api/list.rst:128 +msgid "" +"Return a list of the objects in *list* containing the objects *between* " +"*low* and *high*. Return ``NULL`` and set an exception if unsuccessful. " +"Analogous to ``list[low:high]``. Indexing from the end of the list is not " +"supported." +msgstr "" + +#: ../../c-api/list.rst:135 +msgid "" +"Set the slice of *list* between *low* and *high* to the contents of " +"*itemlist*. Analogous to ``list[low:high] = itemlist``. The *itemlist* may " +"be ``NULL``, indicating the assignment of an empty list (slice deletion). " +"Return ``0`` on success, ``-1`` on failure. Indexing from the end of the " +"list is not supported." +msgstr "" + +#: ../../c-api/list.rst:144 +msgid "" +"Extend *list* with the contents of *iterable*. This is the same as " +"``PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable)`` and " +"analogous to ``list.extend(iterable)`` or ``list += iterable``." +msgstr "" + +#: ../../c-api/list.rst:148 +msgid "" +"Raise an exception and return ``-1`` if *list* is not a :class:`list` " +"object. Return 0 on success." +msgstr "" + +#: ../../c-api/list.rst:156 +msgid "" +"Remove all items from *list*. This is the same as ``PyList_SetSlice(list, " +"0, PY_SSIZE_T_MAX, NULL)`` and analogous to ``list.clear()`` or ``del " +"list[:]``." +msgstr "" + +#: ../../c-api/list.rst:160 +msgid "" +"Raise an exception and return ``-1`` if *list* is not a :class:`list` " +"object. Return 0 on success." +msgstr "" + +#: ../../c-api/list.rst:168 +msgid "" +"Sort the items of *list* in place. Return ``0`` on success, ``-1`` on " +"failure. This is equivalent to ``list.sort()``." +msgstr "" + +#: ../../c-api/list.rst:174 +msgid "" +"Reverse the items of *list* in place. Return ``0`` on success, ``-1`` on " +"failure. This is the equivalent of ``list.reverse()``." +msgstr "" + +#: ../../c-api/list.rst:182 +msgid "" +"Return a new tuple object containing the contents of *list*; equivalent to " +"``tuple(list)``." +msgstr "" + +#: ../../c-api/list.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/list.rst:8 +msgid "list" +msgstr "" + +#: ../../c-api/list.rst:51 ../../c-api/list.rst:180 +msgid "built-in function" +msgstr "" + +#: ../../c-api/list.rst:51 +msgid "len" +msgstr "" + +#: ../../c-api/list.rst:180 +msgid "tuple" +msgstr "" diff --git a/c-api/long.po b/c-api/long.po new file mode 100644 index 0000000..2dca03f --- /dev/null +++ b/c-api/long.po @@ -0,0 +1,1023 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/long.rst:6 +msgid "Integer Objects" +msgstr "" + +#: ../../c-api/long.rst:11 +msgid "" +"All integers are implemented as \"long\" integer objects of arbitrary size." +msgstr "" + +#: ../../c-api/long.rst:13 +msgid "" +"On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot " +"be distinguished from a number. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../../c-api/long.rst:18 +msgid "This subtype of :c:type:`PyObject` represents a Python integer object." +msgstr "" + +#: ../../c-api/long.rst:23 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python integer type. " +"This is the same object as :class:`int` in the Python layer." +msgstr "" + +#: ../../c-api/long.rst:29 +msgid "" +"Return true if its argument is a :c:type:`PyLongObject` or a subtype " +"of :c:type:`PyLongObject`. This function always succeeds." +msgstr "" + +#: ../../c-api/long.rst:35 +msgid "" +"Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " +"of :c:type:`PyLongObject`. This function always succeeds." +msgstr "" + +#: ../../c-api/long.rst:41 +msgid "" +"Return a new :c:type:`PyLongObject` object from *v*, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:43 +msgid "" +"The current implementation keeps an array of integer objects for all " +"integers between ``-5`` and ``256``. When you create an int in that range " +"you actually just get back a reference to the existing object." +msgstr "" + +#: ../../c-api/long.rst:50 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, " +"or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:56 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " +"``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:62 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " +"``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:68 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or " +"``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:75 +msgid "" +"Return a new :c:type:`PyLongObject` object from a signed C :c:expr:`int32_t` " +"or :c:expr:`int64_t`, or ``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/long.rst:84 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " +"long`, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:91 +msgid "" +"Return a new :c:type:`PyLongObject` object from an unsigned " +"C :c:expr:`uint32_t` or :c:expr:`uint64_t`, or ``NULL`` with an exception " +"set on failure." +msgstr "" + +#: ../../c-api/long.rst:100 +msgid "" +"Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " +"``NULL`` on failure." +msgstr "" + +#: ../../c-api/long.rst:106 +msgid "" +"Return a new :c:type:`PyLongObject` based on the string value in *str*, " +"which is interpreted according to the radix in *base*, or ``NULL`` on " +"failure. If *pend* is non-``NULL``, *\\*pend* will point to the end of " +"*str* on success or to the first character that could not be processed on " +"error. If *base* is ``0``, *str* is interpreted using the :ref:`integers` " +"definition; in this case, leading zeros in a non-zero decimal number raises " +"a :exc:`ValueError`. If *base* is not ``0``, it must be between ``2`` and " +"``36``, inclusive. Leading and trailing whitespace and single underscores " +"after a base specifier and between digits are ignored. If there are no " +"digits or *str* is not NULL-terminated following the digits and trailing " +"whitespace, :exc:`ValueError` will be raised." +msgstr "" + +#: ../../c-api/long.rst:117 +msgid "" +":c:func:`PyLong_AsNativeBytes()` and :c:func:`PyLong_FromNativeBytes()` " +"functions can be used to convert a :c:type:`PyLongObject` to/from an array " +"of bytes in base ``256``." +msgstr "" + +#: ../../c-api/long.rst:124 +msgid "" +"Convert a sequence of Unicode digits in the string *u* to a Python integer " +"value." +msgstr "" + +#: ../../c-api/long.rst:132 +msgid "" +"Create a Python integer from the pointer *p*. The pointer value can be " +"retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." +msgstr "" + +#: ../../c-api/long.rst:138 +msgid "" +"Create a Python integer from the value contained in the first *n_bytes* of " +"*buffer*, interpreted as a two's-complement signed number." +msgstr "" + +#: ../../c-api/long.rst:141 +msgid "" +"*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " +"select the native endian that CPython was compiled with and assume that the " +"most-significant bit is a sign bit. Passing " +"``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` will produce the same result as " +"calling :c:func:`PyLong_FromUnsignedNativeBytes`. Other flags are ignored." +msgstr "" + +#: ../../c-api/long.rst:152 +msgid "" +"Create a Python integer from the value contained in the first *n_bytes* of " +"*buffer*, interpreted as an unsigned number." +msgstr "" + +#: ../../c-api/long.rst:155 +msgid "" +"*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " +"select the native endian that CPython was compiled with and assume that the " +"most-significant bit is not a sign bit. Flags other than endian are ignored." +msgstr "" + +#: ../../c-api/long.rst:168 ../../c-api/long.rst:204 +msgid "" +"Return a C :c:expr:`long` representation of *obj*. If *obj* is not an " +"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " +"method (if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:172 +msgid "" +"Raise :exc:`OverflowError` if the value of *obj* is out of range for " +"a :c:expr:`long`." +msgstr "" + +#: ../../c-api/long.rst:175 ../../c-api/long.rst:213 ../../c-api/long.rst:234 +#: ../../c-api/long.rst:254 ../../c-api/long.rst:277 +msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/long.rst:177 ../../c-api/long.rst:215 ../../c-api/long.rst:236 +#: ../../c-api/long.rst:258 ../../c-api/long.rst:342 ../../c-api/long.rst:362 +msgid "Use :meth:`~object.__index__` if available." +msgstr "" + +#: ../../c-api/long.rst:180 ../../c-api/long.rst:218 ../../c-api/long.rst:239 +#: ../../c-api/long.rst:261 ../../c-api/long.rst:345 ../../c-api/long.rst:365 +msgid "This function will no longer use :meth:`~object.__int__`." +msgstr "" + +#: ../../c-api/long.rst:187 +msgid "" +"A :term:`soft deprecated` alias. Exactly equivalent to the preferred " +"``PyLong_AsLong``. In particular, it can fail with :exc:`OverflowError` or " +"another exception." +msgstr "" + +#: ../../c-api/long.rst:191 +msgid "The function is soft deprecated." +msgstr "" + +#: ../../c-api/long.rst:196 +msgid "" +"Similar to :c:func:`PyLong_AsLong`, but store the result in a " +"C :c:expr:`int` instead of a C :c:expr:`long`." +msgstr "" + +#: ../../c-api/long.rst:208 +msgid "" +"If the value of *obj* is greater than :c:macro:`LONG_MAX` or less " +"than :c:macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, " +"respectively, and return ``-1``; otherwise, set *\\*overflow* to ``0``. If " +"any other exception occurs set *\\*overflow* to ``0`` and return ``-1`` as " +"usual." +msgstr "" + +#: ../../c-api/long.rst:227 ../../c-api/long.rst:245 +msgid "" +"Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an " +"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " +"method (if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:231 +msgid "" +"Raise :exc:`OverflowError` if the value of *obj* is out of range for " +"a :c:expr:`long long`." +msgstr "" + +#: ../../c-api/long.rst:249 +msgid "" +"If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less " +"than :c:macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, " +"respectively, and return ``-1``; otherwise, set *\\*overflow* to ``0``. If " +"any other exception occurs set *\\*overflow* to ``0`` and return ``-1`` as " +"usual." +msgstr "" + +#: ../../c-api/long.rst:271 +msgid "" +"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " +"be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:274 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/long.rst:286 +msgid "" +"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* " +"must be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:289 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:expr:`unsigned long`." +msgstr "" + +#: ../../c-api/long.rst:292 +msgid "" +"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../../c-api/long.rst:302 +msgid "" +"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " +"instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:305 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:type:`size_t`." +msgstr "" + +#: ../../c-api/long.rst:308 +msgid "" +"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../../c-api/long.rst:317 +msgid "" +"Return a C :c:expr:`unsigned long long` representation of *pylong*. " +"*pylong* must be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:320 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"an :c:expr:`unsigned long long`." +msgstr "" + +#: ../../c-api/long.rst:323 +msgid "" +"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../../c-api/long.rst:326 +msgid "" +"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." +msgstr "" + +#: ../../c-api/long.rst:332 +msgid "" +"Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not " +"an instance of :c:type:`PyLongObject`, first call " +"its :meth:`~object.__index__` method (if present) to convert it to " +"a :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:336 +msgid "" +"If the value of *obj* is out of range for an :c:expr:`unsigned long`, return " +"the reduction of that value modulo ``ULONG_MAX + 1``." +msgstr "" + +#: ../../c-api/long.rst:339 +msgid "" +"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../../c-api/long.rst:351 +msgid "" +"Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* " +"is not an instance of :c:type:`PyLongObject`, first call " +"its :meth:`~object.__index__` method (if present) to convert it to " +"a :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:356 +msgid "" +"If the value of *obj* is out of range for an :c:expr:`unsigned long long`, " +"return the reduction of that value modulo ``ULLONG_MAX + 1``." +msgstr "" + +#: ../../c-api/long.rst:359 +msgid "" +"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " +"to disambiguate." +msgstr "" + +#: ../../c-api/long.rst:372 +msgid "" +"Set *\\*value* to a signed C :c:expr:`int32_t` or :c:expr:`int64_t` " +"representation of *obj*." +msgstr "" + +#: ../../c-api/long.rst:375 ../../c-api/long.rst:396 +msgid "If the *obj* value is out of range, raise an :exc:`OverflowError`." +msgstr "" + +#: ../../c-api/long.rst:377 ../../c-api/long.rst:398 +msgid "" +"Set *\\*value* and return ``0`` on success. Set an exception and return " +"``-1`` on error." +msgstr "" + +#: ../../c-api/long.rst:380 ../../c-api/long.rst:401 +msgid "*value* must not be ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:388 +msgid "" +"Set *\\*value* to an unsigned C :c:expr:`uint32_t` or :c:expr:`uint64_t` " +"representation of *obj*." +msgstr "" + +#: ../../c-api/long.rst:391 +msgid "" +"If *obj* is not an instance of :c:type:`PyLongObject`, first call " +"its :meth:`~object.__index__` method (if present) to convert it to " +"a :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:395 +msgid "If *obj* is negative, raise a :exc:`ValueError`." +msgstr "" + +#: ../../c-api/long.rst:408 +msgid "" +"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " +"instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../../c-api/long.rst:411 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:expr:`double`." +msgstr "" + +#: ../../c-api/long.rst:414 +msgid "" +"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/long.rst:419 +msgid "" +"Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* " +"cannot be converted, an :exc:`OverflowError` will be raised. This is only " +"assured to produce a usable :c:expr:`void` pointer for values created " +"with :c:func:`PyLong_FromVoidPtr`." +msgstr "" + +#: ../../c-api/long.rst:424 +msgid "" +"Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../../c-api/long.rst:429 +msgid "" +"Copy the Python integer value *pylong* to a native *buffer* of size " +"*n_bytes*. The *flags* can be set to ``-1`` to behave similarly to a C cast, " +"or to values documented below to control the behavior." +msgstr "" + +#: ../../c-api/long.rst:433 +msgid "" +"Returns ``-1`` with an exception raised on error. This may happen if " +"*pylong* cannot be interpreted as an integer, or if *pylong* was negative " +"and the ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` flag was set." +msgstr "" + +#: ../../c-api/long.rst:437 +msgid "" +"Otherwise, returns the number of bytes required to store the value. If this " +"is equal to or less than *n_bytes*, the entire value was copied. All " +"*n_bytes* of the buffer are written: large buffers are padded with zeroes." +msgstr "" + +#: ../../c-api/long.rst:442 +msgid "" +"If the returned value is greater than *n_bytes*, the value was truncated: as " +"many of the lowest bits of the value as could fit are written, and the " +"higher bits are ignored. This matches the typical behavior of a C-style " +"downcast." +msgstr "" + +#: ../../c-api/long.rst:449 +msgid "" +"Overflow is not considered an error. If the returned value is larger than " +"*n_bytes*, most significant bits were discarded." +msgstr "" + +#: ../../c-api/long.rst:452 +msgid "``0`` will never be returned." +msgstr "" + +#: ../../c-api/long.rst:454 +msgid "Values are always copied as two's-complement." +msgstr "" + +#: ../../c-api/long.rst:456 +msgid "Usage example::" +msgstr "" + +#: ../../c-api/long.rst:458 +msgid "" +"int32_t value;\n" +"Py_ssize_t bytes = PyLong_AsNativeBytes(pylong, &value, sizeof(value), -1);\n" +"if (bytes < 0) {\n" +" // Failed. A Python exception was set with the reason.\n" +" return NULL;\n" +"}\n" +"else if (bytes <= (Py_ssize_t)sizeof(value)) {\n" +" // Success!\n" +"}\n" +"else {\n" +" // Overflow occurred, but 'value' contains the truncated\n" +" // lowest bits of pylong.\n" +"}" +msgstr "" + +#: ../../c-api/long.rst:472 +msgid "" +"Passing zero to *n_bytes* will return the size of a buffer that would be " +"large enough to hold the value. This may be larger than technically " +"necessary, but not unreasonably so. If *n_bytes=0*, *buffer* may be ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:479 +msgid "" +"Passing *n_bytes=0* to this function is not an accurate way to determine the " +"bit length of the value." +msgstr "" + +#: ../../c-api/long.rst:482 +msgid "" +"To get at the entire Python value of an unknown size, the function can be " +"called twice: first to determine the buffer size, then to fill it::" +msgstr "" + +#: ../../c-api/long.rst:485 +msgid "" +"// Ask how much space we need.\n" +"Py_ssize_t expected = PyLong_AsNativeBytes(pylong, NULL, 0, -1);\n" +"if (expected < 0) {\n" +" // Failed. A Python exception was set with the reason.\n" +" return NULL;\n" +"}\n" +"assert(expected != 0); // Impossible per the API definition.\n" +"uint8_t *bignum = malloc(expected);\n" +"if (!bignum) {\n" +" PyErr_SetString(PyExc_MemoryError, \"bignum malloc failed.\");\n" +" return NULL;\n" +"}\n" +"// Safely get the entire value.\n" +"Py_ssize_t bytes = PyLong_AsNativeBytes(pylong, bignum, expected, -1);\n" +"if (bytes < 0) { // Exception has been set.\n" +" free(bignum);\n" +" return NULL;\n" +"}\n" +"else if (bytes > expected) { // This should not be possible.\n" +" PyErr_SetString(PyExc_RuntimeError,\n" +" \"Unexpected bignum truncation after a size check.\");\n" +" free(bignum);\n" +" return NULL;\n" +"}\n" +"// The expected success given the above pre-check.\n" +"// ... use bignum ...\n" +"free(bignum);" +msgstr "" + +#: ../../c-api/long.rst:513 +msgid "" +"*flags* is either ``-1`` (``Py_ASNATIVEBYTES_DEFAULTS``) to select defaults " +"that behave most like a C cast, or a combination of the other flags in the " +"table below. Note that ``-1`` cannot be combined with other flags." +msgstr "" + +#: ../../c-api/long.rst:518 +msgid "" +"Currently, ``-1`` corresponds to ``Py_ASNATIVEBYTES_NATIVE_ENDIAN | " +"Py_ASNATIVEBYTES_UNSIGNED_BUFFER``." +msgstr "" + +#: ../../c-api/long.rst:524 +msgid "Flag" +msgstr "" + +#: ../../c-api/long.rst:524 +msgid "Value" +msgstr "" + +#: ../../c-api/long.rst:526 +msgid "``-1``" +msgstr "``-1``" + +#: ../../c-api/long.rst:527 +msgid "``0``" +msgstr "``0``" + +#: ../../c-api/long.rst:528 +msgid "``1``" +msgstr "``1``" + +#: ../../c-api/long.rst:529 +msgid "``3``" +msgstr "``3``" + +#: ../../c-api/long.rst:530 +msgid "``4``" +msgstr "``4``" + +#: ../../c-api/long.rst:531 +msgid "``8``" +msgstr "``8``" + +#: ../../c-api/long.rst:532 +msgid "``16``" +msgstr "``16``" + +#: ../../c-api/long.rst:535 +msgid "" +"Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian " +"flags. Passing ``2`` is reserved." +msgstr "" + +#: ../../c-api/long.rst:538 +msgid "" +"By default, sufficient buffer will be requested to include a sign bit. For " +"example, when converting 128 with *n_bytes=1*, the function will return 2 " +"(or more) in order to store a zero sign bit." +msgstr "" + +#: ../../c-api/long.rst:542 +msgid "" +"If ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` is specified, a zero sign bit will " +"be omitted from size calculations. This allows, for example, 128 to fit in a " +"single-byte buffer. If the destination buffer is later treated as signed, a " +"positive input value may become negative. Note that the flag does not affect " +"handling of negative values: for those, space for a sign bit is always " +"requested." +msgstr "" + +#: ../../c-api/long.rst:549 +msgid "" +"Specifying ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` causes an exception to be " +"set if *pylong* is negative. Without this flag, negative values will be " +"copied provided there is enough space for at least one sign bit, regardless " +"of whether ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` was specified." +msgstr "" + +#: ../../c-api/long.rst:554 +msgid "" +"If ``Py_ASNATIVEBYTES_ALLOW_INDEX`` is specified and a non-integer value is " +"passed, its :meth:`~object.__index__` method will be called first. This may " +"result in Python code executing and other threads being allowed to run, " +"which could cause changes to other objects or values in use. When *flags* is " +"``-1``, this option is not set, and non-integer values will " +"raise :exc:`TypeError`." +msgstr "" + +#: ../../c-api/long.rst:563 +msgid "" +"With the default *flags* (``-1``, or *UNSIGNED_BUFFER* without " +"*REJECT_NEGATIVE*), multiple Python integers can map to a single value " +"without overflow. For example, both ``255`` and ``-1`` fit a single-byte " +"buffer and set all its bits. This matches typical C cast behavior." +msgstr "" + +#: ../../c-api/long.rst:574 +msgid "Get the sign of the integer object *obj*." +msgstr "" + +#: ../../c-api/long.rst:576 +msgid "" +"On success, set *\\*sign* to the integer sign (0, -1 or +1 for zero, " +"negative or positive integer, respectively) and return 0." +msgstr "" + +#: ../../c-api/long.rst:579 +msgid "" +"On failure, return -1 with an exception set. This function always succeeds " +"if *obj* is a :c:type:`PyLongObject` or its subtype." +msgstr "" + +#: ../../c-api/long.rst:587 +msgid "Check if the integer object *obj* is positive (``obj > 0``)." +msgstr "" + +#: ../../c-api/long.rst:589 +msgid "" +"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " +"``1`` when it's positive and ``0`` otherwise. Else set an exception and " +"return ``-1``." +msgstr "" + +#: ../../c-api/long.rst:598 +msgid "Check if the integer object *obj* is negative (``obj < 0``)." +msgstr "" + +#: ../../c-api/long.rst:600 +msgid "" +"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " +"``1`` when it's negative and ``0`` otherwise. Else set an exception and " +"return ``-1``." +msgstr "" + +#: ../../c-api/long.rst:609 +msgid "Check if the integer object *obj* is zero." +msgstr "" + +#: ../../c-api/long.rst:611 +msgid "" +"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " +"``1`` when it's zero and ``0`` otherwise. Else set an exception and return " +"``-1``." +msgstr "" + +#: ../../c-api/long.rst:620 +msgid "" +"On success, return a read only :term:`named tuple`, that holds information " +"about Python's internal representation of integers. See :data:`sys.int_info` " +"for description of individual fields." +msgstr "" + +#: ../../c-api/long.rst:624 +msgid "On failure, return ``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/long.rst:631 +msgid "Return 1 if *op* is compact, 0 otherwise." +msgstr "" + +#: ../../c-api/long.rst:633 +msgid "" +"This function makes it possible for performance-critical code to implement a " +"“fast path” for small integers. For compact values " +"use :c:func:`PyUnstable_Long_CompactValue`; for others fall back to " +"a :c:func:`PyLong_As* ` function " +"or :c:func:`PyLong_AsNativeBytes`." +msgstr "" + +#: ../../c-api/long.rst:639 +msgid "The speedup is expected to be negligible for most users." +msgstr "" + +#: ../../c-api/long.rst:641 +msgid "" +"Exactly what values are considered compact is an implementation detail and " +"is subject to change." +msgstr "" + +#: ../../c-api/long.rst:649 +msgid "" +"If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " +"return its value." +msgstr "" + +#: ../../c-api/long.rst:652 +msgid "Otherwise, the return value is undefined." +msgstr "" + +#: ../../c-api/long.rst:658 +msgid "Export API" +msgstr "" + +#: ../../c-api/long.rst:664 +msgid "" +"Layout of an array of \"digits\" (\"limbs\" in the GMP terminology), used to " +"represent absolute value for arbitrary precision integers." +msgstr "" + +#: ../../c-api/long.rst:667 +msgid "" +"Use :c:func:`PyLong_GetNativeLayout` to get the native layout of " +"Python :class:`int` objects, used internally for integers with \"big " +"enough\" absolute value." +msgstr "" + +#: ../../c-api/long.rst:671 +msgid "" +"See also :data:`sys.int_info` which exposes similar information in Python." +msgstr "" + +#: ../../c-api/long.rst:675 +msgid "" +"Bits per digit. For example, a 15 bit digit means that bits 0-14 contain " +"meaningful information." +msgstr "" + +#: ../../c-api/long.rst:680 +msgid "" +"Digit size in bytes. For example, a 15 bit digit will require at least 2 " +"bytes." +msgstr "" + +#: ../../c-api/long.rst:685 +msgid "Digits order:" +msgstr "" + +#: ../../c-api/long.rst:687 +msgid "``1`` for most significant digit first" +msgstr "" + +#: ../../c-api/long.rst:688 +msgid "``-1`` for least significant digit first" +msgstr "" + +#: ../../c-api/long.rst:692 +msgid "Digit endianness:" +msgstr "" + +#: ../../c-api/long.rst:694 +msgid "``1`` for most significant byte first (big endian)" +msgstr "" + +#: ../../c-api/long.rst:695 +msgid "``-1`` for least significant byte first (little endian)" +msgstr "" + +#: ../../c-api/long.rst:700 +msgid "Get the native layout of Python :class:`int` objects." +msgstr "" + +#: ../../c-api/long.rst:702 +msgid "See the :c:struct:`PyLongLayout` structure." +msgstr "" + +#: ../../c-api/long.rst:704 +msgid "" +"The function must not be called before Python initialization nor after " +"Python finalization. The returned layout is valid until Python is finalized. " +"The layout is the same for all Python sub-interpreters in a process, and so " +"it can be cached." +msgstr "" + +#: ../../c-api/long.rst:712 +msgid "Export of a Python :class:`int` object." +msgstr "" + +#: ../../c-api/long.rst:714 +msgid "There are two cases:" +msgstr "" + +#: ../../c-api/long.rst:716 +msgid "" +"If :c:member:`digits` is ``NULL``, only use the :c:member:`value` member." +msgstr "" + +#: ../../c-api/long.rst:717 +msgid "" +"If :c:member:`digits` is not ``NULL``, " +"use :c:member:`negative`, :c:member:`ndigits` and :c:member:`digits` members." +msgstr "" + +#: ../../c-api/long.rst:722 +msgid "" +"The native integer value of the exported :class:`int` object. Only valid " +"if :c:member:`digits` is ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:727 +msgid "" +"``1`` if the number is negative, ``0`` otherwise. Only valid " +"if :c:member:`digits` is not ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:732 +msgid "" +"Number of digits in :c:member:`digits` array. Only valid " +"if :c:member:`digits` is not ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:737 +msgid "Read-only array of unsigned digits. Can be ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:742 +msgid "Export a Python :class:`int` object." +msgstr "" + +#: ../../c-api/long.rst:744 +msgid "" +"*export_long* must point to a :c:struct:`PyLongExport` structure allocated " +"by the caller. It must not be ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:747 +msgid "" +"On success, fill in *\\*export_long* and return ``0``. On error, set an " +"exception and return ``-1``." +msgstr "" + +#: ../../c-api/long.rst:750 +msgid "" +":c:func:`PyLong_FreeExport` must be called when the export is no longer " +"needed." +msgstr "" + +#: ../../c-api/long.rst:754 +msgid "" +"This function always succeeds if *obj* is a Python :class:`int` object or a " +"subclass." +msgstr "" + +#: ../../c-api/long.rst:760 +msgid "Release the export *export_long* created by :c:func:`PyLong_Export`." +msgstr "" + +#: ../../c-api/long.rst:763 +msgid "" +"Calling :c:func:`PyLong_FreeExport` is optional if *export_long->digits* is " +"``NULL``." +msgstr "" + +#: ../../c-api/long.rst:768 +msgid "PyLongWriter API" +msgstr "" + +#: ../../c-api/long.rst:770 +msgid "The :c:type:`PyLongWriter` API can be used to import an integer." +msgstr "" + +#: ../../c-api/long.rst:776 +msgid "A Python :class:`int` writer instance." +msgstr "" + +#: ../../c-api/long.rst:778 +msgid "" +"The instance must be destroyed by :c:func:`PyLongWriter_Finish` " +"or :c:func:`PyLongWriter_Discard`." +msgstr "" + +#: ../../c-api/long.rst:784 +msgid "Create a :c:type:`PyLongWriter`." +msgstr "" + +#: ../../c-api/long.rst:786 +msgid "" +"On success, allocate *\\*digits* and return a writer. On error, set an " +"exception and return ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:789 +msgid "*negative* is ``1`` if the number is negative, or ``0`` otherwise." +msgstr "" + +#: ../../c-api/long.rst:791 +msgid "" +"*ndigits* is the number of digits in the *digits* array. It must be greater " +"than 0." +msgstr "" + +#: ../../c-api/long.rst:794 +msgid "*digits* must not be NULL." +msgstr "" + +#: ../../c-api/long.rst:796 +msgid "" +"After a successful call to this function, the caller should fill in the " +"array of digits *digits* and then call :c:func:`PyLongWriter_Finish` to get " +"a Python :class:`int`. The layout of *digits* is described " +"by :c:func:`PyLong_GetNativeLayout`." +msgstr "" + +#: ../../c-api/long.rst:801 +msgid "" +"Digits must be in the range [``0``; ``(1 << bits_per_digit) - 1``] (where " +"the :c:struct:`~PyLongLayout.bits_per_digit` is the number of bits per " +"digit). Any unused most significant digits must be set to ``0``." +msgstr "" + +#: ../../c-api/long.rst:806 +msgid "" +"Alternately, call :c:func:`PyLongWriter_Discard` to destroy the writer " +"instance without creating an :class:`~int` object." +msgstr "" + +#: ../../c-api/long.rst:812 +msgid "" +"Finish a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." +msgstr "" + +#: ../../c-api/long.rst:814 +msgid "" +"On success, return a Python :class:`int` object. On error, set an exception " +"and return ``NULL``." +msgstr "" + +#: ../../c-api/long.rst:817 +msgid "" +"The function takes care of normalizing the digits and converts the object to " +"a compact integer if needed." +msgstr "" + +#: ../../c-api/long.rst:820 ../../c-api/long.rst:829 +msgid "The writer instance and the *digits* array are invalid after the call." +msgstr "" + +#: ../../c-api/long.rst:825 +msgid "" +"Discard a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." +msgstr "" + +#: ../../c-api/long.rst:827 +msgid "If *writer* is ``NULL``, no operation is performed." +msgstr "" + +#: ../../c-api/long.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/long.rst:8 +msgid "long integer" +msgstr "" + +#: ../../c-api/long.rst:8 +msgid "integer" +msgstr "" + +#: ../../c-api/long.rst:164 +msgid "LONG_MAX (C macro)" +msgstr "" + +#: ../../c-api/long.rst:164 ../../c-api/long.rst:224 ../../c-api/long.rst:267 +#: ../../c-api/long.rst:282 ../../c-api/long.rst:298 ../../c-api/long.rst:314 +msgid "OverflowError (built-in exception)" +msgstr "" + +#: ../../c-api/long.rst:267 +msgid "PY_SSIZE_T_MAX (C macro)" +msgstr "" + +#: ../../c-api/long.rst:282 +msgid "ULONG_MAX (C macro)" +msgstr "" + +#: ../../c-api/long.rst:298 +msgid "SIZE_MAX (C macro)" +msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po new file mode 100644 index 0000000..ee249a2 --- /dev/null +++ b/c-api/mapping.po @@ -0,0 +1,167 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/mapping.rst:6 +msgid "Mapping Protocol" +msgstr "" + +#: ../../c-api/mapping.rst:8 +msgid "" +"See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` " +"and :c:func:`PyObject_DelItem`." +msgstr "" + +#: ../../c-api/mapping.rst:14 +msgid "" +"Return ``1`` if the object provides the mapping protocol or supports " +"slicing, and ``0`` otherwise. Note that it returns ``1`` for Python classes " +"with a :meth:`~object.__getitem__` method, since in general it is impossible " +"to determine what type of keys the class supports. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/mapping.rst:25 +msgid "" +"Returns the number of keys in object *o* on success, and ``-1`` on failure. " +"This is equivalent to the Python expression ``len(o)``." +msgstr "" + +#: ../../c-api/mapping.rst:31 +msgid "" +"This is the same as :c:func:`PyObject_GetItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:38 +msgid "" +"Variant of :c:func:`PyObject_GetItem` which doesn't raise :exc:`KeyError` if " +"the key is not found." +msgstr "" + +#: ../../c-api/mapping.rst:41 +msgid "" +"If the key is found, return ``1`` and set *\\*result* to a new :term:`strong " +"reference` to the corresponding value. If the key is not found, return ``0`` " +"and set *\\*result* to ``NULL``; the :exc:`KeyError` is silenced. If an " +"error other than :exc:`KeyError` is raised, return ``-1`` and set " +"*\\*result* to ``NULL``." +msgstr "" + +#: ../../c-api/mapping.rst:53 +msgid "" +"This is the same as :c:func:`PyMapping_GetOptionalItem`, but *key* is " +"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:62 +msgid "" +"This is the same as :c:func:`PyObject_SetItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:69 +msgid "This is an alias of :c:func:`PyObject_DelItem`." +msgstr "" + +#: ../../c-api/mapping.rst:74 +msgid "" +"This is the same as :c:func:`PyObject_DelItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:81 +msgid "" +"Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " +"This is equivalent to the Python expression ``key in o``. On failure, return " +"``-1``." +msgstr "" + +#: ../../c-api/mapping.rst:90 +msgid "" +"This is the same as :c:func:`PyMapping_HasKeyWithError`, but *key* is " +"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:99 +msgid "" +"Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " +"This is equivalent to the Python expression ``key in o``. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/mapping.rst:105 +msgid "" +"Exceptions which occur when this calls :meth:`~object.__getitem__` method " +"are silently ignored. For proper error handling, " +"use :c:func:`PyMapping_HasKeyWithError`, :c:func:`PyMapping_GetOptionalItem` " +"or :c:func:`PyObject_GetItem()` instead." +msgstr "" + +#: ../../c-api/mapping.rst:113 +msgid "" +"This is the same as :c:func:`PyMapping_HasKey`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/mapping.rst:119 +msgid "" +"Exceptions that occur when this calls :meth:`~object.__getitem__` method or " +"while creating the temporary :class:`str` object are silently ignored. For " +"proper error handling, " +"use :c:func:`PyMapping_HasKeyStringWithError`, :c:func:`PyMapping_GetOptionalItemString` " +"or :c:func:`PyMapping_GetItemString` instead." +msgstr "" + +#: ../../c-api/mapping.rst:129 +msgid "" +"On success, return a list of the keys in object *o*. On failure, return " +"``NULL``." +msgstr "" + +#: ../../c-api/mapping.rst:132 ../../c-api/mapping.rst:141 +#: ../../c-api/mapping.rst:150 +msgid "Previously, the function returned a list or a tuple." +msgstr "" + +#: ../../c-api/mapping.rst:138 +msgid "" +"On success, return a list of the values in object *o*. On failure, return " +"``NULL``." +msgstr "" + +#: ../../c-api/mapping.rst:147 +msgid "" +"On success, return a list of the items in object *o*, where each item is a " +"tuple containing a key-value pair. On failure, return ``NULL``." +msgstr "" + +#: ../../c-api/mapping.rst:23 +msgid "built-in function" +msgstr "" + +#: ../../c-api/mapping.rst:23 +msgid "len" +msgstr "" diff --git a/c-api/marshal.po b/c-api/marshal.po new file mode 100644 index 0000000..e3b5e10 --- /dev/null +++ b/c-api/marshal.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/marshal.rst:6 +msgid "Data marshalling support" +msgstr "" + +#: ../../c-api/marshal.rst:8 +msgid "" +"These routines allow C code to work with serialized objects using the same " +"data format as the :mod:`marshal` module. There are functions to write data " +"into the serialization format, and additional functions that can be used to " +"read the data back. Files used to store marshalled data must be opened in " +"binary mode." +msgstr "" + +#: ../../c-api/marshal.rst:14 +msgid "Numeric values are stored with the least significant byte first." +msgstr "" + +#: ../../c-api/marshal.rst:16 +msgid "" +"The module supports several versions of the data format; see " +"the :py:mod:`Python module documentation ` for details." +msgstr "" + +#: ../../c-api/marshal.rst:21 +msgid "The current format version. See :py:data:`marshal.version`." +msgstr "" + +#: ../../c-api/marshal.rst:25 +msgid "" +"Marshal a :c:expr:`long` integer, *value*, to *file*. This will only write " +"the least-significant 32 bits of *value*; regardless of the size of the " +"native :c:expr:`long` type. *version* indicates the file format." +msgstr "" + +#: ../../c-api/marshal.rst:29 ../../c-api/marshal.rst:37 +msgid "" +"This function can fail, in which case it sets the error indicator. " +"Use :c:func:`PyErr_Occurred` to check for that." +msgstr "" + +#: ../../c-api/marshal.rst:34 +msgid "" +"Marshal a Python object, *value*, to *file*. *version* indicates the file " +"format." +msgstr "" + +#: ../../c-api/marshal.rst:42 +msgid "" +"Return a bytes object containing the marshalled representation of *value*. " +"*version* indicates the file format." +msgstr "" + +#: ../../c-api/marshal.rst:46 +msgid "The following functions allow marshalled values to be read back in." +msgstr "" + +#: ../../c-api/marshal.rst:51 +msgid "" +"Return a C :c:expr:`long` from the data stream in a :c:expr:`FILE*` opened " +"for reading. Only a 32-bit value can be read in using this function, " +"regardless of the native size of :c:expr:`long`." +msgstr "" + +#: ../../c-api/marshal.rst:55 ../../c-api/marshal.rst:65 +msgid "" +"On error, sets the appropriate exception (:exc:`EOFError`) and returns " +"``-1``." +msgstr "" + +#: ../../c-api/marshal.rst:61 +msgid "" +"Return a C :c:expr:`short` from the data stream in a :c:expr:`FILE*` opened " +"for reading. Only a 16-bit value can be read in using this function, " +"regardless of the native size of :c:expr:`short`." +msgstr "" + +#: ../../c-api/marshal.rst:71 +msgid "" +"Return a Python object from the data stream in a :c:expr:`FILE*` opened for " +"reading." +msgstr "" + +#: ../../c-api/marshal.rst:74 ../../c-api/marshal.rst:88 +#: ../../c-api/marshal.rst:97 +msgid "" +"On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " +"or :exc:`TypeError`) and returns ``NULL``." +msgstr "" + +#: ../../c-api/marshal.rst:80 +msgid "" +"Return a Python object from the data stream in a :c:expr:`FILE*` opened for " +"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " +"assumes that no further objects will be read from the file, allowing it to " +"aggressively load file data into memory so that the de-serialization can " +"operate from data in memory rather than reading a byte at a time from the " +"file. Only use these variant if you are certain that you won't be reading " +"anything else from the file." +msgstr "" + +#: ../../c-api/marshal.rst:94 +msgid "" +"Return a Python object from the data stream in a byte buffer containing " +"*len* bytes pointed to by *data*." +msgstr "" diff --git a/c-api/memory.po b/c-api/memory.po new file mode 100644 index 0000000..dbf70e4 --- /dev/null +++ b/c-api/memory.po @@ -0,0 +1,1219 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/memory.rst:8 +msgid "Memory Management" +msgstr "" + +#: ../../c-api/memory.rst:17 +msgid "Overview" +msgstr "" + +#: ../../c-api/memory.rst:19 +msgid "" +"Memory management in Python involves a private heap containing all Python " +"objects and data structures. The management of this private heap is ensured " +"internally by the *Python memory manager*. The Python memory manager has " +"different components which deal with various dynamic storage management " +"aspects, like sharing, segmentation, preallocation or caching." +msgstr "" + +#: ../../c-api/memory.rst:25 +msgid "" +"At the lowest level, a raw memory allocator ensures that there is enough " +"room in the private heap for storing all Python-related data by interacting " +"with the memory manager of the operating system. On top of the raw memory " +"allocator, several object-specific allocators operate on the same heap and " +"implement distinct memory management policies adapted to the peculiarities " +"of every object type. For example, integer objects are managed differently " +"within the heap than strings, tuples or dictionaries because integers imply " +"different storage requirements and speed/space tradeoffs. The Python memory " +"manager thus delegates some of the work to the object-specific allocators, " +"but ensures that the latter operate within the bounds of the private heap." +msgstr "" + +#: ../../c-api/memory.rst:36 +msgid "" +"It is important to understand that the management of the Python heap is " +"performed by the interpreter itself and that the user has no control over " +"it, even if they regularly manipulate object pointers to memory blocks " +"inside that heap. The allocation of heap space for Python objects and other " +"internal buffers is performed on demand by the Python memory manager through " +"the Python/C API functions listed in this document." +msgstr "" + +#: ../../c-api/memory.rst:49 +msgid "" +"To avoid memory corruption, extension writers should never try to operate on " +"Python objects with the functions exported by the C " +"library: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " +"and :c:func:`free`. This will result in mixed calls between the C " +"allocator and the Python memory manager with fatal consequences, because " +"they implement different algorithms and operate on different heaps. " +"However, one may safely allocate and release memory blocks with the C " +"library allocator for individual purposes, as shown in the following " +"example::" +msgstr "" + +#: ../../c-api/memory.rst:58 +msgid "" +"PyObject *res;\n" +"char *buf = (char *) malloc(BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"...Do some I/O operation involving buf...\n" +"res = PyBytes_FromString(buf);\n" +"free(buf); /* malloc'ed */\n" +"return res;" +msgstr "" + +#: ../../c-api/memory.rst:68 +msgid "" +"In this example, the memory request for the I/O buffer is handled by the C " +"library allocator. The Python memory manager is involved only in the " +"allocation of the bytes object returned as a result." +msgstr "" + +#: ../../c-api/memory.rst:72 +msgid "" +"In most situations, however, it is recommended to allocate memory from the " +"Python heap specifically because the latter is under control of the Python " +"memory manager. For example, this is required when the interpreter is " +"extended with new object types written in C. Another reason for using the " +"Python heap is the desire to *inform* the Python memory manager about the " +"memory needs of the extension module. Even when the requested memory is used " +"exclusively for internal, highly specific purposes, delegating all memory " +"requests to the Python memory manager causes the interpreter to have a more " +"accurate image of its memory footprint as a whole. Consequently, under " +"certain circumstances, the Python memory manager may or may not trigger " +"appropriate actions, like garbage collection, memory compaction or other " +"preventive procedures. Note that by using the C library allocator as shown " +"in the previous example, the allocated memory for the I/O buffer escapes " +"completely the Python memory manager." +msgstr "" + +#: ../../c-api/memory.rst:88 +msgid "" +"The :envvar:`PYTHONMALLOC` environment variable can be used to configure the " +"memory allocators used by Python." +msgstr "" + +#: ../../c-api/memory.rst:91 +msgid "" +"The :envvar:`PYTHONMALLOCSTATS` environment variable can be used to print " +"statistics of the :ref:`pymalloc memory allocator ` every time a " +"new pymalloc object arena is created, and on shutdown." +msgstr "" + +#: ../../c-api/memory.rst:96 +msgid "Allocator Domains" +msgstr "" + +#: ../../c-api/memory.rst:100 +msgid "" +"All allocating functions belong to one of three different \"domains\" (see " +"also :c:type:`PyMemAllocatorDomain`). These domains represent different " +"allocation strategies and are optimized for different purposes. The specific " +"details on how every domain allocates memory or what internal functions each " +"domain calls is considered an implementation detail, but for debugging " +"purposes a simplified table can be found at :ref:`here `. The APIs used to allocate and free a block of memory must be " +"from the same domain. For example, :c:func:`PyMem_Free` must be used to free " +"memory allocated using :c:func:`PyMem_Malloc`." +msgstr "" + +#: ../../c-api/memory.rst:109 +msgid "The three allocation domains are:" +msgstr "" + +#: ../../c-api/memory.rst:111 +msgid "" +"Raw domain: intended for allocating memory for general-purpose memory " +"buffers where the allocation *must* go to the system allocator or where the " +"allocator can operate without an :term:`attached thread state`. The memory " +"is requested directly from the system. See :ref:`Raw Memory Interface `." +msgstr "" + +#: ../../c-api/memory.rst:116 +msgid "" +"\"Mem\" domain: intended for allocating memory for Python buffers and " +"general-purpose memory buffers where the allocation must be performed with " +"an :term:`attached thread state`. The memory is taken from the Python " +"private heap. See :ref:`Memory Interface `." +msgstr "" + +#: ../../c-api/memory.rst:121 +msgid "" +"Object domain: intended for allocating memory for Python objects. The memory " +"is taken from the Python private heap. See :ref:`Object allocators " +"`." +msgstr "" + +#: ../../c-api/memory.rst:126 +msgid "" +"The :term:`free-threaded ` build requires that only Python " +"objects are allocated using the \"object\" domain and that all Python " +"objects are allocated using that domain. This differs from the prior Python " +"versions, where this was only a best practice and not a hard requirement." +msgstr "" + +#: ../../c-api/memory.rst:130 +msgid "" +"For example, buffers (non-Python objects) should be allocated " +"using :c:func:`PyMem_Malloc`, :c:func:`PyMem_RawMalloc`, " +"or :c:func:`malloc`, but not :c:func:`PyObject_Malloc`." +msgstr "" + +#: ../../c-api/memory.rst:133 +msgid "See :ref:`Memory Allocation APIs `." +msgstr "" + +#: ../../c-api/memory.rst:139 +msgid "Raw Memory Interface" +msgstr "" + +#: ../../c-api/memory.rst:141 +msgid "" +"The following function sets are wrappers to the system allocator. These " +"functions are thread-safe, so a :term:`thread state` does not need to " +"be :term:`attached `." +msgstr "" + +#: ../../c-api/memory.rst:145 +msgid "" +"The :ref:`default raw memory allocator ` uses the " +"following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " +"and :c:func:`!free`; call ``malloc(1)`` (or ``calloc(1, 1)``) when " +"requesting zero bytes." +msgstr "" + +#: ../../c-api/memory.rst:154 ../../c-api/memory.rst:224 +#: ../../c-api/memory.rst:333 +msgid "" +"Allocates *n* bytes and returns a pointer of type :c:expr:`void*` to the " +"allocated memory, or ``NULL`` if the request fails." +msgstr "" + +#: ../../c-api/memory.rst:157 +msgid "" +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not " +"have been initialized in any way." +msgstr "" + +#: ../../c-api/memory.rst:164 ../../c-api/memory.rst:234 +#: ../../c-api/memory.rst:343 +msgid "" +"Allocates *nelem* elements each whose size in bytes is *elsize* and returns " +"a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if " +"the request fails. The memory is initialized to zeros." +msgstr "" + +#: ../../c-api/memory.rst:168 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-``NULL`` pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " +"called instead." +msgstr "" + +#: ../../c-api/memory.rst:177 ../../c-api/memory.rst:247 +#: ../../c-api/memory.rst:356 +msgid "" +"Resizes the memory block pointed to by *p* to *n* bytes. The contents will " +"be unchanged to the minimum of the old and the new sizes." +msgstr "" + +#: ../../c-api/memory.rst:180 +msgid "" +"If *p* is ``NULL``, the call is equivalent to ``PyMem_RawMalloc(n)``; else " +"if *n* is equal to zero, the memory block is resized but is not freed, and " +"the returned pointer is non-``NULL``." +msgstr "" + +#: ../../c-api/memory.rst:184 +msgid "" +"Unless *p* is ``NULL``, it must have been returned by a previous call " +"to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` " +"or :c:func:`PyMem_RawCalloc`." +msgstr "" + +#: ../../c-api/memory.rst:188 +msgid "" +"If the request fails, :c:func:`PyMem_RawRealloc` returns ``NULL`` and *p* " +"remains a valid pointer to the previous memory area." +msgstr "" + +#: ../../c-api/memory.rst:194 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` " +"or :c:func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_RawFree(p)`` has " +"been called before, undefined behavior occurs." +msgstr "" + +#: ../../c-api/memory.rst:199 ../../c-api/memory.rst:268 +#: ../../c-api/memory.rst:377 +msgid "If *p* is ``NULL``, no operation is performed." +msgstr "" + +#: ../../c-api/memory.rst:205 +msgid "Memory Interface" +msgstr "" + +#: ../../c-api/memory.rst:207 ../../c-api/memory.rst:314 +msgid "" +"The following function sets, modeled after the ANSI C standard, but " +"specifying behavior when requesting zero bytes, are available for allocating " +"and releasing memory from the Python heap." +msgstr "" + +#: ../../c-api/memory.rst:211 +msgid "" +"The :ref:`default memory allocator ` uses " +"the :ref:`pymalloc memory allocator `." +msgstr "" + +#: ../../c-api/memory.rst:216 ../../c-api/memory.rst:329 +msgid "" +"There must be an :term:`attached thread state` when using these functions." +msgstr "" + +#: ../../c-api/memory.rst:220 +msgid "" +"The default allocator is now pymalloc instead of system :c:func:`malloc`." +msgstr "" + +#: ../../c-api/memory.rst:227 +msgid "" +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " +"been initialized in any way." +msgstr "" + +#: ../../c-api/memory.rst:238 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-``NULL`` pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been " +"called instead." +msgstr "" + +#: ../../c-api/memory.rst:250 +msgid "" +"If *p* is ``NULL``, the call is equivalent to ``PyMem_Malloc(n)``; else if " +"*n* is equal to zero, the memory block is resized but is not freed, and the " +"returned pointer is non-``NULL``." +msgstr "" + +#: ../../c-api/memory.rst:254 +msgid "" +"Unless *p* is ``NULL``, it must have been returned by a previous call " +"to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." +msgstr "" + +#: ../../c-api/memory.rst:257 +msgid "" +"If the request fails, :c:func:`PyMem_Realloc` returns ``NULL`` and *p* " +"remains a valid pointer to the previous memory area." +msgstr "" + +#: ../../c-api/memory.rst:263 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` " +"or :c:func:`PyMem_Calloc`. Otherwise, or if ``PyMem_Free(p)`` has been " +"called before, undefined behavior occurs." +msgstr "" + +#: ../../c-api/memory.rst:270 +msgid "" +"The following type-oriented macros are provided for convenience. Note that " +"*TYPE* refers to any C type." +msgstr "" + +#: ../../c-api/memory.rst:276 +msgid "" +"Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " +"of memory. Returns a pointer cast to ``TYPE*``. The memory will not have " +"been initialized in any way." +msgstr "" + +#: ../../c-api/memory.rst:283 +msgid "" +"Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " +"sizeof(TYPE))`` bytes. Returns a pointer cast to ``TYPE*``. On return, *p* " +"will be a pointer to the new memory area, or ``NULL`` in the event of " +"failure." +msgstr "" + +#: ../../c-api/memory.rst:288 +msgid "" +"This is a C preprocessor macro; *p* is always reassigned. Save the original " +"value of *p* to avoid losing memory when handling errors." +msgstr "" + +#: ../../c-api/memory.rst:294 +msgid "Same as :c:func:`PyMem_Free`." +msgstr "" + +#: ../../c-api/memory.rst:296 +msgid "" +"In addition, the following macro sets are provided for calling the Python " +"memory allocator directly, without involving the C API functions listed " +"above. However, note that their use does not preserve binary compatibility " +"across Python versions and is therefore deprecated in extension modules." +msgstr "" + +#: ../../c-api/memory.rst:301 +msgid "``PyMem_MALLOC(size)``" +msgstr "``PyMem_MALLOC(size)``" + +#: ../../c-api/memory.rst:302 +msgid "``PyMem_NEW(type, size)``" +msgstr "" + +#: ../../c-api/memory.rst:303 +msgid "``PyMem_REALLOC(ptr, size)``" +msgstr "" + +#: ../../c-api/memory.rst:304 +msgid "``PyMem_RESIZE(ptr, type, size)``" +msgstr "" + +#: ../../c-api/memory.rst:305 +msgid "``PyMem_FREE(ptr)``" +msgstr "``PyMem_FREE(ptr)``" + +#: ../../c-api/memory.rst:306 +msgid "``PyMem_DEL(ptr)``" +msgstr "``PyMem_DEL(ptr)``" + +#: ../../c-api/memory.rst:312 +msgid "Object allocators" +msgstr "" + +#: ../../c-api/memory.rst:319 +msgid "" +"There is no guarantee that the memory returned by these allocators can be " +"successfully cast to a Python object when intercepting the allocating " +"functions in this domain by the methods described in the :ref:`Customize " +"Memory Allocators ` section." +msgstr "" + +#: ../../c-api/memory.rst:324 +msgid "" +"The :ref:`default object allocator ` uses " +"the :ref:`pymalloc memory allocator `." +msgstr "" + +#: ../../c-api/memory.rst:336 +msgid "" +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyObject_Malloc(1)`` had been called instead. The memory will not " +"have been initialized in any way." +msgstr "" + +#: ../../c-api/memory.rst:347 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-``NULL`` pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " +"called instead." +msgstr "" + +#: ../../c-api/memory.rst:359 +msgid "" +"If *p* is ``NULL``, the call is equivalent to ``PyObject_Malloc(n)``; else " +"if *n* is equal to zero, the memory block is resized but is not freed, and " +"the returned pointer is non-``NULL``." +msgstr "" + +#: ../../c-api/memory.rst:363 +msgid "" +"Unless *p* is ``NULL``, it must have been returned by a previous call " +"to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` " +"or :c:func:`PyObject_Calloc`." +msgstr "" + +#: ../../c-api/memory.rst:366 +msgid "" +"If the request fails, :c:func:`PyObject_Realloc` returns ``NULL`` and *p* " +"remains a valid pointer to the previous memory area." +msgstr "" + +#: ../../c-api/memory.rst:372 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` " +"or :c:func:`PyObject_Calloc`. Otherwise, or if ``PyObject_Free(p)`` has " +"been called before, undefined behavior occurs." +msgstr "" + +#: ../../c-api/memory.rst:379 +msgid "" +"Do not call this directly to free an object's memory; call the " +"type's :c:member:`~PyTypeObject.tp_free` slot instead." +msgstr "" + +#: ../../c-api/memory.rst:382 +msgid "" +"Do not use this for memory allocated by :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`; use :c:func:`PyObject_GC_Del` instead." +msgstr "" + +#: ../../c-api/memory.rst:387 +msgid "" +":c:func:`PyObject_GC_Del` is the equivalent of this function for memory " +"allocated by types that support garbage collection." +msgstr "" + +#: ../../c-api/memory.rst:389 ../../c-api/memory.rst:486 +msgid ":c:func:`PyObject_Malloc`" +msgstr "" + +#: ../../c-api/memory.rst:390 ../../c-api/memory.rst:487 +msgid ":c:func:`PyObject_Realloc`" +msgstr "" + +#: ../../c-api/memory.rst:391 ../../c-api/memory.rst:488 +msgid ":c:func:`PyObject_Calloc`" +msgstr "" + +#: ../../c-api/memory.rst:392 +msgid ":c:macro:`PyObject_New`" +msgstr "" + +#: ../../c-api/memory.rst:393 +msgid ":c:macro:`PyObject_NewVar`" +msgstr "" + +#: ../../c-api/memory.rst:394 +msgid ":c:func:`PyType_GenericAlloc`" +msgstr "" + +#: ../../c-api/memory.rst:395 +msgid ":c:member:`~PyTypeObject.tp_free`" +msgstr "" + +#: ../../c-api/memory.rst:401 +msgid "Default Memory Allocators" +msgstr "" + +#: ../../c-api/memory.rst:403 +msgid "Default memory allocators:" +msgstr "" + +#: ../../c-api/memory.rst:406 +msgid "Configuration" +msgstr "" + +#: ../../c-api/memory.rst:406 +msgid "Name" +msgstr "" + +#: ../../c-api/memory.rst:406 +msgid "PyMem_RawMalloc" +msgstr "" + +#: ../../c-api/memory.rst:406 +msgid "PyMem_Malloc" +msgstr "" + +#: ../../c-api/memory.rst:406 +msgid "PyObject_Malloc" +msgstr "" + +#: ../../c-api/memory.rst:408 +msgid "Release build" +msgstr "" + +#: ../../c-api/memory.rst:408 +msgid "``\"pymalloc\"``" +msgstr "``\"pymalloc\"``" + +#: ../../c-api/memory.rst:408 ../../c-api/memory.rst:410 +msgid "``malloc``" +msgstr "``malloc``" + +#: ../../c-api/memory.rst:408 +msgid "``pymalloc``" +msgstr "``pymalloc``" + +#: ../../c-api/memory.rst:409 +msgid "Debug build" +msgstr "" + +#: ../../c-api/memory.rst:409 +msgid "``\"pymalloc_debug\"``" +msgstr "``\"pymalloc_debug\"``" + +#: ../../c-api/memory.rst:409 ../../c-api/memory.rst:411 +msgid "``malloc`` + debug" +msgstr "" + +#: ../../c-api/memory.rst:409 +msgid "``pymalloc`` + debug" +msgstr "" + +#: ../../c-api/memory.rst:410 +msgid "Release build, without pymalloc" +msgstr "" + +#: ../../c-api/memory.rst:410 +msgid "``\"malloc\"``" +msgstr "``\"malloc\"``" + +#: ../../c-api/memory.rst:411 +msgid "Debug build, without pymalloc" +msgstr "" + +#: ../../c-api/memory.rst:411 +msgid "``\"malloc_debug\"``" +msgstr "``\"malloc_debug\"``" + +#: ../../c-api/memory.rst:414 +msgid "Legend:" +msgstr "" + +#: ../../c-api/memory.rst:416 +msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable." +msgstr "" + +#: ../../c-api/memory.rst:417 +msgid "" +"``malloc``: system allocators from the standard C library, C " +"functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " +"and :c:func:`free`." +msgstr "" + +#: ../../c-api/memory.rst:419 +msgid "``pymalloc``: :ref:`pymalloc memory allocator `." +msgstr "" + +#: ../../c-api/memory.rst:420 +msgid "" +"``mimalloc``: :ref:`mimalloc memory allocator `. The pymalloc " +"allocator will be used if mimalloc support isn't available." +msgstr "" + +#: ../../c-api/memory.rst:422 +msgid "" +"\"+ debug\": with :ref:`debug hooks on the Python memory allocators `." +msgstr "" + +#: ../../c-api/memory.rst:424 +msgid "\"Debug build\": :ref:`Python build in debug mode `." +msgstr "" + +#: ../../c-api/memory.rst:429 +msgid "Customize Memory Allocators" +msgstr "" + +#: ../../c-api/memory.rst:435 +msgid "" +"Structure used to describe a memory block allocator. The structure has the " +"following fields:" +msgstr "" + +#: ../../c-api/memory.rst:439 ../../c-api/memory.rst:690 +msgid "Field" +msgstr "" + +#: ../../c-api/memory.rst:439 ../../c-api/memory.rst:690 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../c-api/memory.rst:441 ../../c-api/memory.rst:692 +msgid "``void *ctx``" +msgstr "" + +#: ../../c-api/memory.rst:441 ../../c-api/memory.rst:692 +msgid "user context passed as first argument" +msgstr "" + +#: ../../c-api/memory.rst:443 +msgid "``void* malloc(void *ctx, size_t size)``" +msgstr "" + +#: ../../c-api/memory.rst:443 +msgid "allocate a memory block" +msgstr "" + +#: ../../c-api/memory.rst:445 +msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" +msgstr "" + +#: ../../c-api/memory.rst:445 +msgid "allocate a memory block initialized with zeros" +msgstr "" + +#: ../../c-api/memory.rst:448 +msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" +msgstr "" + +#: ../../c-api/memory.rst:448 +msgid "allocate or resize a memory block" +msgstr "" + +#: ../../c-api/memory.rst:450 +msgid "``void free(void *ctx, void *ptr)``" +msgstr "" + +#: ../../c-api/memory.rst:450 +msgid "free a memory block" +msgstr "" + +#: ../../c-api/memory.rst:453 +msgid "" +"The :c:type:`!PyMemAllocator` structure was renamed " +"to :c:type:`PyMemAllocatorEx` and a new ``calloc`` field was added." +msgstr "" + +#: ../../c-api/memory.rst:460 +msgid "Enum used to identify an allocator domain. Domains:" +msgstr "" + +#: ../../c-api/memory.rst:466 ../../c-api/memory.rst:475 +#: ../../c-api/memory.rst:484 +msgid "Functions:" +msgstr "" + +#: ../../c-api/memory.rst:468 +msgid ":c:func:`PyMem_RawMalloc`" +msgstr "" + +#: ../../c-api/memory.rst:469 +msgid ":c:func:`PyMem_RawRealloc`" +msgstr "" + +#: ../../c-api/memory.rst:470 +msgid ":c:func:`PyMem_RawCalloc`" +msgstr "" + +#: ../../c-api/memory.rst:471 +msgid ":c:func:`PyMem_RawFree`" +msgstr "" + +#: ../../c-api/memory.rst:477 +msgid ":c:func:`PyMem_Malloc`," +msgstr "" + +#: ../../c-api/memory.rst:478 +msgid ":c:func:`PyMem_Realloc`" +msgstr "" + +#: ../../c-api/memory.rst:479 +msgid ":c:func:`PyMem_Calloc`" +msgstr "" + +#: ../../c-api/memory.rst:480 +msgid ":c:func:`PyMem_Free`" +msgstr "" + +#: ../../c-api/memory.rst:489 +msgid ":c:func:`PyObject_Free`" +msgstr "" + +#: ../../c-api/memory.rst:493 +msgid "Get the memory block allocator of the specified domain." +msgstr "" + +#: ../../c-api/memory.rst:498 +msgid "Set the memory block allocator of the specified domain." +msgstr "" + +#: ../../c-api/memory.rst:500 +msgid "" +"The new allocator must return a distinct non-``NULL`` pointer when " +"requesting zero bytes." +msgstr "" + +#: ../../c-api/memory.rst:503 +msgid "" +"For the :c:macro:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" +"safe: a :term:`thread state` is not :term:`attached ` " +"when the allocator is called." +msgstr "" + +#: ../../c-api/memory.rst:507 +msgid "" +"For the remaining domains, the allocator must also be thread-safe: the " +"allocator may be called in different interpreters that do not share " +"a :term:`GIL`." +msgstr "" + +#: ../../c-api/memory.rst:511 +msgid "" +"If the new allocator is not a hook (does not call the previous allocator), " +"the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the " +"debug hooks on top on the new allocator." +msgstr "" + +#: ../../c-api/memory.rst:515 +msgid "" +"See also :c:member:`PyPreConfig.allocator` and :ref:`Preinitialize Python " +"with PyPreConfig `." +msgstr "" + +#: ../../c-api/memory.rst:520 +msgid ":c:func:`PyMem_SetAllocator` does have the following contract:" +msgstr "" + +#: ../../c-api/memory.rst:522 +msgid "" +"It can be called after :c:func:`Py_PreInitialize` and " +"before :c:func:`Py_InitializeFromConfig` to install a custom memory " +"allocator. There are no restrictions over the installed allocator other than " +"the ones imposed by the domain (for instance, the Raw Domain allows the " +"allocator to be called without an :term:`attached thread state`). " +"See :ref:`the section on allocator domains ` for more " +"information." +msgstr "" + +#: ../../c-api/memory.rst:530 +msgid "" +"If called after Python has finish initializing " +"(after :c:func:`Py_InitializeFromConfig` has been called) the allocator " +"**must** wrap the existing allocator. Substituting the current allocator for " +"some other arbitrary one is **not supported**." +msgstr "" + +#: ../../c-api/memory.rst:535 +msgid "All allocators must be thread-safe." +msgstr "" + +#: ../../c-api/memory.rst:541 +msgid "" +"Setup :ref:`debug hooks in the Python memory allocators ` " +"to detect memory errors." +msgstr "" + +#: ../../c-api/memory.rst:548 +msgid "Debug hooks on the Python memory allocators" +msgstr "" + +#: ../../c-api/memory.rst:550 +msgid "" +"When :ref:`Python is built in debug mode `, " +"the :c:func:`PyMem_SetupDebugHooks` function is called at the :ref:`Python " +"preinitialization ` to setup debug hooks on Python memory " +"allocators to detect memory errors." +msgstr "" + +#: ../../c-api/memory.rst:555 +msgid "" +"The :envvar:`PYTHONMALLOC` environment variable can be used to install debug " +"hooks on a Python compiled in release mode (ex: ``PYTHONMALLOC=debug``)." +msgstr "" + +#: ../../c-api/memory.rst:558 +msgid "" +"The :c:func:`PyMem_SetupDebugHooks` function can be used to set debug hooks " +"after calling :c:func:`PyMem_SetAllocator`." +msgstr "" + +#: ../../c-api/memory.rst:561 +msgid "" +"These debug hooks fill dynamically allocated memory blocks with special, " +"recognizable bit patterns. Newly allocated memory is filled with the byte " +"``0xCD`` (``PYMEM_CLEANBYTE``), freed memory is filled with the byte " +"``0xDD`` (``PYMEM_DEADBYTE``). Memory blocks are surrounded by \"forbidden " +"bytes\" filled with the byte ``0xFD`` (``PYMEM_FORBIDDENBYTE``). Strings of " +"these bytes are unlikely to be valid addresses, floats, or ASCII strings." +msgstr "" + +#: ../../c-api/memory.rst:568 +msgid "Runtime checks:" +msgstr "" + +#: ../../c-api/memory.rst:570 +msgid "" +"Detect API violations. For example, detect if :c:func:`PyObject_Free` is " +"called on a memory block allocated by :c:func:`PyMem_Malloc`." +msgstr "" + +#: ../../c-api/memory.rst:572 +msgid "Detect write before the start of the buffer (buffer underflow)." +msgstr "" + +#: ../../c-api/memory.rst:573 +msgid "Detect write after the end of the buffer (buffer overflow)." +msgstr "" + +#: ../../c-api/memory.rst:574 +msgid "" +"Check that there is an :term:`attached thread state` when allocator " +"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " +"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " +"called." +msgstr "" + +#: ../../c-api/memory.rst:579 +msgid "" +"On error, the debug hooks use the :mod:`tracemalloc` module to get the " +"traceback where a memory block was allocated. The traceback is only " +"displayed if :mod:`tracemalloc` is tracing Python memory allocations and the " +"memory block was traced." +msgstr "" + +#: ../../c-api/memory.rst:584 +msgid "" +"Let *S* = ``sizeof(size_t)``. ``2*S`` bytes are added at each end of each " +"block of *N* bytes requested. The memory layout is like so, where p " +"represents the address returned by a malloc-like or realloc-like function " +"(``p[i:j]`` means the slice of bytes from ``*(p+i)`` inclusive up to " +"``*(p+j)`` exclusive; note that the treatment of negative indices differs " +"from a Python slice):" +msgstr "" + +#: ../../c-api/memory.rst:590 +msgid "``p[-2*S:-S]``" +msgstr "``p[-2*S:-S]``" + +#: ../../c-api/memory.rst:591 +msgid "" +"Number of bytes originally asked for. This is a size_t, big-endian (easier " +"to read in a memory dump)." +msgstr "" + +#: ../../c-api/memory.rst:593 +msgid "``p[-S]``" +msgstr "``p[-S]``" + +#: ../../c-api/memory.rst:594 +msgid "API identifier (ASCII character):" +msgstr "" + +#: ../../c-api/memory.rst:596 +msgid "``'r'`` for :c:macro:`PYMEM_DOMAIN_RAW`." +msgstr "" + +#: ../../c-api/memory.rst:597 +msgid "``'m'`` for :c:macro:`PYMEM_DOMAIN_MEM`." +msgstr "" + +#: ../../c-api/memory.rst:598 +msgid "``'o'`` for :c:macro:`PYMEM_DOMAIN_OBJ`." +msgstr "" + +#: ../../c-api/memory.rst:600 +msgid "``p[-S+1:0]``" +msgstr "``p[-S+1:0]``" + +#: ../../c-api/memory.rst:601 +msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads." +msgstr "" + +#: ../../c-api/memory.rst:603 +msgid "``p[0:N]``" +msgstr "``p[0:N]``" + +#: ../../c-api/memory.rst:604 +msgid "" +"The requested memory, filled with copies of PYMEM_CLEANBYTE, used to catch " +"reference to uninitialized memory. When a realloc-like function is called " +"requesting a larger memory block, the new excess bytes are also filled with " +"PYMEM_CLEANBYTE. When a free-like function is called, these are overwritten " +"with PYMEM_DEADBYTE, to catch reference to freed memory. When a realloc- " +"like function is called requesting a smaller memory block, the excess old " +"bytes are also filled with PYMEM_DEADBYTE." +msgstr "" + +#: ../../c-api/memory.rst:612 +msgid "``p[N:N+S]``" +msgstr "``p[N:N+S]``" + +#: ../../c-api/memory.rst:613 +msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads." +msgstr "" + +#: ../../c-api/memory.rst:615 +msgid "``p[N+S:N+2*S]``" +msgstr "``p[N+S:N+2*S]``" + +#: ../../c-api/memory.rst:616 +msgid "" +"Only used if the ``PYMEM_DEBUG_SERIALNO`` macro is defined (not defined by " +"default)." +msgstr "" + +#: ../../c-api/memory.rst:619 +msgid "" +"A serial number, incremented by 1 on each call to a malloc-like or realloc-" +"like function. Big-endian :c:type:`size_t`. If \"bad memory\" is detected " +"later, the serial number gives an excellent way to set a breakpoint on the " +"next run, to capture the instant at which this block was passed out. The " +"static function bumpserialno() in obmalloc.c is the only place the serial " +"number is incremented, and exists so you can set such a breakpoint easily." +msgstr "" + +#: ../../c-api/memory.rst:626 +msgid "" +"A realloc-like or free-like function first checks that the " +"PYMEM_FORBIDDENBYTE bytes at each end are intact. If they've been altered, " +"diagnostic output is written to stderr, and the program is aborted via " +"Py_FatalError(). The other main failure mode is provoking a memory error " +"when a program reads up one of the special bit patterns and tries to use it " +"as an address. If you get in a debugger then and look at the object, you're " +"likely to see that it's entirely filled with PYMEM_DEADBYTE (meaning freed " +"memory is getting used) or PYMEM_CLEANBYTE (meaning uninitialized memory is " +"getting used)." +msgstr "" + +#: ../../c-api/memory.rst:635 +msgid "" +"The :c:func:`PyMem_SetupDebugHooks` function now also works on Python " +"compiled in release mode. On error, the debug hooks now " +"use :mod:`tracemalloc` to get the traceback where a memory block was " +"allocated. The debug hooks now also check if there is an :term:`attached " +"thread state` when functions of :c:macro:`PYMEM_DOMAIN_OBJ` " +"and :c:macro:`PYMEM_DOMAIN_MEM` domains are called." +msgstr "" + +#: ../../c-api/memory.rst:643 +msgid "" +"Byte patterns ``0xCB`` (``PYMEM_CLEANBYTE``), ``0xDB`` (``PYMEM_DEADBYTE``) " +"and ``0xFB`` (``PYMEM_FORBIDDENBYTE``) have been replaced with ``0xCD``, " +"``0xDD`` and ``0xFD`` to use the same values than Windows CRT debug " +"``malloc()`` and ``free()``." +msgstr "" + +#: ../../c-api/memory.rst:653 +msgid "The pymalloc allocator" +msgstr "" + +#: ../../c-api/memory.rst:655 +msgid "" +"Python has a *pymalloc* allocator optimized for small objects (smaller or " +"equal to 512 bytes) with a short lifetime. It uses memory mappings called " +"\"arenas\" with a fixed size of either 256 KiB on 32-bit platforms or 1 MiB " +"on 64-bit platforms. It falls back to :c:func:`PyMem_RawMalloc` " +"and :c:func:`PyMem_RawRealloc` for allocations larger than 512 bytes." +msgstr "" + +#: ../../c-api/memory.rst:661 +msgid "" +"*pymalloc* is the :ref:`default allocator ` of " +"the :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) " +"and :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." +msgstr "" + +#: ../../c-api/memory.rst:665 +msgid "The arena allocator uses the following functions:" +msgstr "" + +#: ../../c-api/memory.rst:667 +msgid ":c:func:`!VirtualAlloc` and :c:func:`!VirtualFree` on Windows," +msgstr "" + +#: ../../c-api/memory.rst:668 +msgid ":c:func:`!mmap` and :c:func:`!munmap` if available," +msgstr "" + +#: ../../c-api/memory.rst:669 +msgid ":c:func:`malloc` and :c:func:`free` otherwise." +msgstr "" + +#: ../../c-api/memory.rst:671 +msgid "" +"This allocator is disabled if Python is configured with the :option:`--" +"without-pymalloc` option. It can also be disabled at runtime using " +"the :envvar:`PYTHONMALLOC` environment variable (ex: " +"``PYTHONMALLOC=malloc``)." +msgstr "" + +#: ../../c-api/memory.rst:675 +msgid "" +"Typically, it makes sense to disable the pymalloc allocator when building " +"Python with AddressSanitizer (:option:`--with-address-sanitizer`) which " +"helps uncover low level bugs within the C code." +msgstr "" + +#: ../../c-api/memory.rst:680 +msgid "Customize pymalloc Arena Allocator" +msgstr "" + +#: ../../c-api/memory.rst:686 +msgid "" +"Structure used to describe an arena allocator. The structure has three " +"fields:" +msgstr "" + +#: ../../c-api/memory.rst:694 +msgid "``void* alloc(void *ctx, size_t size)``" +msgstr "" + +#: ../../c-api/memory.rst:694 +msgid "allocate an arena of size bytes" +msgstr "" + +#: ../../c-api/memory.rst:696 +msgid "``void free(void *ctx, void *ptr, size_t size)``" +msgstr "" + +#: ../../c-api/memory.rst:696 +msgid "free an arena" +msgstr "" + +#: ../../c-api/memory.rst:701 +msgid "Get the arena allocator." +msgstr "" + +#: ../../c-api/memory.rst:705 +msgid "Set the arena allocator." +msgstr "" + +#: ../../c-api/memory.rst:710 +msgid "The mimalloc allocator" +msgstr "" + +#: ../../c-api/memory.rst:714 +msgid "" +"Python supports the mimalloc allocator when the underlying platform support " +"is available. mimalloc \"is a general purpose allocator with excellent " +"performance characteristics. Initially developed by Daan Leijen for the " +"runtime systems of the Koka and Lean languages.\"" +msgstr "" + +#: ../../c-api/memory.rst:719 +msgid "tracemalloc C API" +msgstr "" + +#: ../../c-api/memory.rst:725 +msgid "Track an allocated memory block in the :mod:`tracemalloc` module." +msgstr "" + +#: ../../c-api/memory.rst:727 +msgid "" +"Return ``0`` on success, return ``-1`` on error (failed to allocate memory " +"to store the trace). Return ``-2`` if tracemalloc is disabled." +msgstr "" + +#: ../../c-api/memory.rst:730 +msgid "If memory block is already tracked, update the existing trace." +msgstr "" + +#: ../../c-api/memory.rst:734 +msgid "" +"Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " +"nothing if the block was not tracked." +msgstr "" + +#: ../../c-api/memory.rst:737 +msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." +msgstr "" + +#: ../../c-api/memory.rst:743 +msgid "Examples" +msgstr "" + +#: ../../c-api/memory.rst:745 +msgid "" +"Here is the example from section :ref:`memoryoverview`, rewritten so that " +"the I/O buffer is allocated from the Python heap by using the first function " +"set::" +msgstr "" + +#: ../../c-api/memory.rst:748 +msgid "" +"PyObject *res;\n" +"char *buf = (char *) PyMem_Malloc(BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"/* ...Do some I/O operation involving buf... */\n" +"res = PyBytes_FromString(buf);\n" +"PyMem_Free(buf); /* allocated with PyMem_Malloc */\n" +"return res;" +msgstr "" + +#: ../../c-api/memory.rst:758 +msgid "The same code using the type-oriented function set::" +msgstr "" + +#: ../../c-api/memory.rst:760 +msgid "" +"PyObject *res;\n" +"char *buf = PyMem_New(char, BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"/* ...Do some I/O operation involving buf... */\n" +"res = PyBytes_FromString(buf);\n" +"PyMem_Free(buf); /* allocated with PyMem_New */\n" +"return res;" +msgstr "" + +#: ../../c-api/memory.rst:770 +msgid "" +"Note that in the two examples above, the buffer is always manipulated via " +"functions belonging to the same set. Indeed, it is required to use the same " +"memory API family for a given memory block, so that the risk of mixing " +"different allocators is reduced to a minimum. The following code sequence " +"contains two errors, one of which is labeled as *fatal* because it mixes two " +"different allocators operating on different heaps. ::" +msgstr "" + +#: ../../c-api/memory.rst:777 +msgid "" +"char *buf1 = PyMem_New(char, BUFSIZ);\n" +"char *buf2 = (char *) malloc(BUFSIZ);\n" +"char *buf3 = (char *) PyMem_Malloc(BUFSIZ);\n" +"...\n" +"PyMem_Del(buf3); /* Wrong -- should be PyMem_Free() */\n" +"free(buf2); /* Right -- allocated via malloc() */\n" +"free(buf1); /* Fatal -- should be PyMem_Free() */" +msgstr "" + +#: ../../c-api/memory.rst:785 +msgid "" +"In addition to the functions aimed at handling raw memory blocks from the " +"Python heap, objects in Python are allocated and released " +"with :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar` " +"and :c:func:`PyObject_Free`." +msgstr "" + +#: ../../c-api/memory.rst:789 +msgid "" +"These will be explained in the next chapter on defining and implementing new " +"object types in C." +msgstr "" + +#: ../../c-api/memory.rst:43 +msgid "malloc (C function)" +msgstr "" + +#: ../../c-api/memory.rst:43 +msgid "calloc (C function)" +msgstr "" + +#: ../../c-api/memory.rst:43 +msgid "realloc (C function)" +msgstr "" + +#: ../../c-api/memory.rst:43 +msgid "free (C function)" +msgstr "" diff --git a/c-api/memoryview.po b/c-api/memoryview.po new file mode 100644 index 0000000..8545a90 --- /dev/null +++ b/c-api/memoryview.po @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/memoryview.rst:9 +msgid "MemoryView objects" +msgstr "" + +#: ../../c-api/memoryview.rst:11 +msgid "" +"A :class:`memoryview` object exposes the C level :ref:`buffer interface " +"` as a Python object which can then be passed around like any " +"other object." +msgstr "" + +#: ../../c-api/memoryview.rst:18 +msgid "" +"Create a memoryview object from an object that provides the buffer " +"interface. If *obj* supports writable buffer exports, the memoryview object " +"will be read/write, otherwise it may be either read-only or read/write at " +"the discretion of the exporter." +msgstr "" + +#: ../../c-api/memoryview.rst:26 +msgid "Flag to request a readonly buffer." +msgstr "" + +#: ../../c-api/memoryview.rst:31 +msgid "Flag to request a writable buffer." +msgstr "" + +#: ../../c-api/memoryview.rst:36 +msgid "" +"Create a memoryview object using *mem* as the underlying buffer. *flags* can " +"be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." +msgstr "" + +#: ../../c-api/memoryview.rst:43 +msgid "" +"Create a memoryview object wrapping the given buffer structure *view*. For " +"simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " +"function." +msgstr "" + +#: ../../c-api/memoryview.rst:49 +msgid "" +"Create a memoryview object to a :term:`contiguous` chunk of memory (in " +"either 'C' or 'F'ortran *order*) from an object that defines the buffer " +"interface. If memory is contiguous, the memoryview object points to the " +"original memory. Otherwise, a copy is made and the memoryview points to a " +"new bytes object." +msgstr "" + +#: ../../c-api/memoryview.rst:55 +msgid "" +"*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." +msgstr "" + +#: ../../c-api/memoryview.rst:60 +msgid "" +"Return true if the object *obj* is a memoryview object. It is not currently " +"allowed to create subclasses of :class:`memoryview`. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/memoryview.rst:67 +msgid "" +"Return a pointer to the memoryview's private copy of the exporter's buffer. " +"*mview* **must** be a memoryview instance; this macro doesn't check its " +"type, you must do it yourself or you will risk crashes." +msgstr "" + +#: ../../c-api/memoryview.rst:73 +msgid "" +"Return either a pointer to the exporting object that the memoryview is based " +"on or ``NULL`` if the memoryview has been created by one of the " +"functions :c:func:`PyMemoryView_FromMemory` " +"or :c:func:`PyMemoryView_FromBuffer`. *mview* **must** be a memoryview " +"instance." +msgstr "" + +#: ../../c-api/memoryview.rst:5 +msgid "object" +msgstr "" + +#: ../../c-api/memoryview.rst:5 +msgid "memoryview" +msgstr "" diff --git a/c-api/method.po b/c-api/method.po new file mode 100644 index 0000000..f6819d6 --- /dev/null +++ b/c-api/method.po @@ -0,0 +1,127 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/method.rst:6 +msgid "Instance Method Objects" +msgstr "" + +#: ../../c-api/method.rst:10 +msgid "" +"An instance method is a wrapper for a :c:type:`PyCFunction` and the new way " +"to bind a :c:type:`PyCFunction` to a class object. It replaces the former " +"call ``PyMethod_New(func, NULL, class)``." +msgstr "" + +#: ../../c-api/method.rst:17 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python instance " +"method type. It is not exposed to Python programs." +msgstr "" + +#: ../../c-api/method.rst:23 +msgid "" +"Return true if *o* is an instance method object (has " +"type :c:data:`PyInstanceMethod_Type`). The parameter must not be ``NULL``. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/method.rst:30 +msgid "" +"Return a new instance method object, with *func* being any callable object. " +"*func* is the function that will be called when the instance method is " +"called." +msgstr "" + +#: ../../c-api/method.rst:37 +msgid "Return the function object associated with the instance method *im*." +msgstr "" + +#: ../../c-api/method.rst:42 +msgid "" +"Macro version of :c:func:`PyInstanceMethod_Function` which avoids error " +"checking." +msgstr "" + +#: ../../c-api/method.rst:48 +msgid "Method Objects" +msgstr "Az metódusobjektumok" + +#: ../../c-api/method.rst:52 +msgid "" +"Methods are bound function objects. Methods are always bound to an instance " +"of a user-defined class. Unbound methods (methods bound to a class object) " +"are no longer available." +msgstr "" + +#: ../../c-api/method.rst:61 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python method type. " +"This is exposed to Python programs as ``types.MethodType``." +msgstr "" + +#: ../../c-api/method.rst:67 +msgid "" +"Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). " +"The parameter must not be ``NULL``. This function always succeeds." +msgstr "" + +#: ../../c-api/method.rst:73 +msgid "" +"Return a new method object, with *func* being any callable object and *self* " +"the instance the method should be bound. *func* is the function that will be " +"called when the method is called. *self* must not be ``NULL``." +msgstr "" + +#: ../../c-api/method.rst:80 +msgid "Return the function object associated with the method *meth*." +msgstr "" + +#: ../../c-api/method.rst:85 +msgid "" +"Macro version of :c:func:`PyMethod_Function` which avoids error checking." +msgstr "" + +#: ../../c-api/method.rst:90 +msgid "Return the instance associated with the method *meth*." +msgstr "" + +#: ../../c-api/method.rst:95 +msgid "Macro version of :c:func:`PyMethod_Self` which avoids error checking." +msgstr "" + +#: ../../c-api/method.rst:8 ../../c-api/method.rst:50 +msgid "object" +msgstr "" + +#: ../../c-api/method.rst:8 +msgid "instancemethod" +msgstr "" + +#: ../../c-api/method.rst:50 +msgid "method" +msgstr "" + +#: ../../c-api/method.rst:59 +msgid "MethodType (in module types)" +msgstr "" diff --git a/c-api/module.po b/c-api/module.po new file mode 100644 index 0000000..0240da6 --- /dev/null +++ b/c-api/module.po @@ -0,0 +1,847 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/module.rst:6 +msgid "Module Objects" +msgstr "" + +#: ../../c-api/module.rst:15 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python module type. " +"This is exposed to Python programs as ``types.ModuleType``." +msgstr "" + +#: ../../c-api/module.rst:21 +msgid "" +"Return true if *p* is a module object, or a subtype of a module object. This " +"function always succeeds." +msgstr "" + +#: ../../c-api/module.rst:27 +msgid "" +"Return true if *p* is a module object, but not a subtype " +"of :c:data:`PyModule_Type`. This function always succeeds." +msgstr "" + +#: ../../c-api/module.rst:40 +msgid "" +"Return a new module object with :attr:`module.__name__` set to *name*. The " +"module's :attr:`!" +"__name__`, :attr:`~module.__doc__`, :attr:`~module.__package__` " +"and :attr:`~module.__loader__` attributes are filled in (all but :attr:`!" +"__name__` are set to ``None``). The caller is responsible for setting " +"a :attr:`~module.__file__` attribute." +msgstr "" + +#: ../../c-api/module.rst:46 ../../c-api/module.rst:416 +#: ../../c-api/module.rst:443 +msgid "Return ``NULL`` with an exception set on error." +msgstr "" + +#: ../../c-api/module.rst:50 +msgid "" +":attr:`~module.__package__` and :attr:`~module.__loader__` are now set to " +"``None``." +msgstr "" + +#: ../../c-api/module.rst:57 +msgid "" +"Similar to :c:func:`PyModule_NewObject`, but the name is a UTF-8 encoded " +"string instead of a Unicode object." +msgstr "" + +#: ../../c-api/module.rst:65 +msgid "" +"Return the dictionary object that implements *module*'s namespace; this " +"object is the same as the :attr:`~object.__dict__` attribute of the module " +"object. If *module* is not a module object (or a subtype of a module " +"object), :exc:`SystemError` is raised and ``NULL`` is returned." +msgstr "" + +#: ../../c-api/module.rst:70 +msgid "" +"It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` " +"functions rather than directly manipulate a " +"module's :attr:`~object.__dict__`." +msgstr "" + +#: ../../c-api/module.rst:81 +msgid "" +"Return *module*'s :attr:`~module.__name__` value. If the module does not " +"provide one, or if it is not a string, :exc:`SystemError` is raised and " +"``NULL`` is returned." +msgstr "" + +#: ../../c-api/module.rst:90 +msgid "" +"Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " +"``'utf-8'``." +msgstr "" + +#: ../../c-api/module.rst:95 +msgid "" +"Return the \"state\" of the module, that is, a pointer to the block of " +"memory allocated at module creation time, or ``NULL``. " +"See :c:member:`PyModuleDef.m_size`." +msgstr "" + +#: ../../c-api/module.rst:102 +msgid "" +"Return a pointer to the :c:type:`PyModuleDef` struct from which the module " +"was created, or ``NULL`` if the module wasn't created from a definition." +msgstr "" + +#: ../../c-api/module.rst:112 +msgid "" +"Return the name of the file from which *module* was loaded using " +"*module*'s :attr:`~module.__file__` attribute. If this is not defined, or " +"if it is not a string, raise :exc:`SystemError` and return ``NULL``; " +"otherwise return a reference to a Unicode object." +msgstr "" + +#: ../../c-api/module.rst:122 +msgid "" +"Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " +"encoded to 'utf-8'." +msgstr "" + +#: ../../c-api/module.rst:125 +msgid "" +":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " +"unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." +msgstr "" + +#: ../../c-api/module.rst:133 +msgid "Module definitions" +msgstr "" + +#: ../../c-api/module.rst:135 +msgid "" +"The functions in the previous section work on any module object, including " +"modules imported from Python code." +msgstr "" + +#: ../../c-api/module.rst:138 +msgid "" +"Modules defined using the C API typically use a *module " +"definition*, :c:type:`PyModuleDef` -- a statically allocated, constant " +"“description\" of how a module should be created." +msgstr "" + +#: ../../c-api/module.rst:142 +msgid "" +"The definition is usually used to define an extension's “main” module object " +"(see :ref:`extension-modules` for details). It is also used to :ref:`create " +"extension modules dynamically `." +msgstr "" + +#: ../../c-api/module.rst:147 +msgid "" +"Unlike :c:func:`PyModule_New`, the definition allows management of *module " +"state* -- a piece of memory that is allocated and cleared together with the " +"module object. Unlike the module's Python attributes, Python code cannot " +"replace or delete data stored in module state." +msgstr "" + +#: ../../c-api/module.rst:155 +msgid "" +"The module definition struct, which holds all information needed to create a " +"module object. This structure must be statically allocated (or be otherwise " +"guaranteed to be valid while any modules created from it exist). Usually, " +"there is only one variable of this type for each extension module." +msgstr "" + +#: ../../c-api/module.rst:163 +msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." +msgstr "" + +#: ../../c-api/module.rst:167 +msgid "Name for the new module." +msgstr "" + +#: ../../c-api/module.rst:171 +msgid "" +"Docstring for the module; usually a docstring variable created " +"with :c:macro:`PyDoc_STRVAR` is used." +msgstr "" + +#: ../../c-api/module.rst:176 +msgid "" +"Module state may be kept in a per-module memory area that can be retrieved " +"with :c:func:`PyModule_GetState`, rather than in static globals. This makes " +"modules safe for use in multiple sub-interpreters." +msgstr "" + +#: ../../c-api/module.rst:180 +msgid "" +"This memory area is allocated based on *m_size* on module creation, and " +"freed when the module object is deallocated, after " +"the :c:member:`~PyModuleDef.m_free` function has been called, if present." +msgstr "" + +#: ../../c-api/module.rst:184 +msgid "" +"Setting it to a non-negative value means that the module can be re-" +"initialized and specifies the additional amount of memory it requires for " +"its state." +msgstr "" + +#: ../../c-api/module.rst:188 +msgid "" +"Setting ``m_size`` to ``-1`` means that the module does not support sub-" +"interpreters, because it has global state. Negative ``m_size`` is only " +"allowed when using :ref:`legacy single-phase initialization ` or when :ref:`creating modules dynamically `." +msgstr "" + +#: ../../c-api/module.rst:194 +msgid "See :PEP:`3121` for more details." +msgstr "" + +#: ../../c-api/module.rst:198 +msgid "" +"A pointer to a table of module-level functions, described " +"by :c:type:`PyMethodDef` values. Can be ``NULL`` if no functions are " +"present." +msgstr "" + +#: ../../c-api/module.rst:203 +msgid "" +"An array of slot definitions for multi-phase initialization, terminated by a " +"``{0, NULL}`` entry. When using legacy single-phase initialization, " +"*m_slots* must be ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:209 +msgid "" +"Prior to version 3.5, this member was always set to ``NULL``, and was " +"defined as:" +msgstr "" + +#: ../../c-api/module.rst:216 +msgid "" +"A traversal function to call during GC traversal of the module object, or " +"``NULL`` if not needed." +msgstr "" + +#: ../../c-api/module.rst:219 ../../c-api/module.rst:234 +#: ../../c-api/module.rst:255 +msgid "" +"This function is not called if the module state was requested but is not " +"allocated yet. This is the case immediately after the module is created and " +"before the module is executed (:c:data:`Py_mod_exec` function). More " +"precisely, this function is not called if :c:member:`~PyModuleDef.m_size` is " +"greater than 0 and the module state (as returned " +"by :c:func:`PyModule_GetState`) is ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:226 ../../c-api/module.rst:247 +#: ../../c-api/module.rst:262 +msgid "No longer called before the module state is allocated." +msgstr "" + +#: ../../c-api/module.rst:231 +msgid "" +"A clear function to call during GC clearing of the module object, or " +"``NULL`` if not needed." +msgstr "" + +#: ../../c-api/module.rst:241 +msgid "" +"Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " +"before a module is deallocated. For example, when reference counting is " +"enough to determine that an object is no longer used, the cyclic garbage " +"collector is not involved and :c:member:`~PyModuleDef.m_free` is called " +"directly." +msgstr "" + +#: ../../c-api/module.rst:252 +msgid "" +"A function to call during deallocation of the module object, or ``NULL`` if " +"not needed." +msgstr "" + +#: ../../c-api/module.rst:267 +msgid "Module slots" +msgstr "" + +#: ../../c-api/module.rst:273 +msgid "A slot ID, chosen from the available values explained below." +msgstr "" + +#: ../../c-api/module.rst:277 +msgid "Value of the slot, whose meaning depends on the slot ID." +msgstr "" + +#: ../../c-api/module.rst:281 +msgid "The available slot types are:" +msgstr "" + +#: ../../c-api/module.rst:285 +msgid "" +"Specifies a function that is called to create the module object itself. The " +"*value* pointer of this slot must point to a function of the signature:" +msgstr "" + +#: ../../c-api/module.rst:292 +msgid "" +"The function receives a :py:class:`~importlib.machinery.ModuleSpec` " +"instance, as defined in :PEP:`451`, and the module definition. It should " +"return a new module object, or set an error and return ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:297 +msgid "" +"This function should be kept minimal. In particular, it should not call " +"arbitrary Python code, as trying to import the same module again may result " +"in an infinite loop." +msgstr "" + +#: ../../c-api/module.rst:301 +msgid "" +"Multiple ``Py_mod_create`` slots may not be specified in one module " +"definition." +msgstr "" + +#: ../../c-api/module.rst:304 +msgid "" +"If ``Py_mod_create`` is not specified, the import machinery will create a " +"normal module object using :c:func:`PyModule_New`. The name is taken from " +"*spec*, not the definition, to allow extension modules to dynamically adjust " +"to their place in the module hierarchy and be imported under different names " +"through symlinks, all while sharing a single module definition." +msgstr "" + +#: ../../c-api/module.rst:310 +msgid "" +"There is no requirement for the returned object to be an instance " +"of :c:type:`PyModule_Type`. Any type can be used, as long as it supports " +"setting and getting import-related attributes. However, only " +"``PyModule_Type`` instances may be returned if the ``PyModuleDef`` has non-" +"``NULL`` ``m_traverse``, ``m_clear``, ``m_free``; non-zero ``m_size``; or " +"slots other than ``Py_mod_create``." +msgstr "" + +#: ../../c-api/module.rst:319 +msgid "" +"Specifies a function that is called to *execute* the module. This is " +"equivalent to executing the code of a Python module: typically, this " +"function adds classes and constants to the module. The signature of the " +"function is:" +msgstr "" + +#: ../../c-api/module.rst:328 +msgid "" +"If multiple ``Py_mod_exec`` slots are specified, they are processed in the " +"order they appear in the *m_slots* array." +msgstr "" + +#: ../../c-api/module.rst:333 ../../c-api/module.rst:366 +msgid "Specifies one of the following values:" +msgstr "" + +#: ../../c-api/module.rst:339 +msgid "The module does not support being imported in subinterpreters." +msgstr "" + +#: ../../c-api/module.rst:343 +msgid "" +"The module supports being imported in subinterpreters, but only when they " +"share the main interpreter's GIL. (See :ref:`isolating-extensions-howto`.)" +msgstr "" + +#: ../../c-api/module.rst:349 +msgid "" +"The module supports being imported in subinterpreters, even when they have " +"their own GIL. (See :ref:`isolating-extensions-howto`.)" +msgstr "" + +#: ../../c-api/module.rst:353 +msgid "" +"This slot determines whether or not importing this module in a " +"subinterpreter will fail." +msgstr "" + +#: ../../c-api/module.rst:356 +msgid "" +"Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " +"module definition." +msgstr "" + +#: ../../c-api/module.rst:359 +msgid "" +"If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " +"defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." +msgstr "" + +#: ../../c-api/module.rst:372 +msgid "" +"The module depends on the presence of the global interpreter lock (GIL), and " +"may access global state without synchronization." +msgstr "" + +#: ../../c-api/module.rst:377 +msgid "The module is safe to run without an active GIL." +msgstr "" + +#: ../../c-api/module.rst:379 +msgid "" +"This slot is ignored by Python builds not configured with :option:`--disable-" +"gil`. Otherwise, it determines whether or not importing this module will " +"cause the GIL to be automatically enabled. See :ref:`whatsnew313-free-" +"threaded-cpython` for more detail." +msgstr "" + +#: ../../c-api/module.rst:384 +msgid "" +"Multiple ``Py_mod_gil`` slots may not be specified in one module definition." +msgstr "" + +#: ../../c-api/module.rst:386 +msgid "" +"If ``Py_mod_gil`` is not specified, the import machinery defaults to " +"``Py_MOD_GIL_USED``." +msgstr "" + +#: ../../c-api/module.rst:395 +msgid "Creating extension modules dynamically" +msgstr "" + +#: ../../c-api/module.rst:397 +msgid "" +"The following functions may be used to create a module outside of an " +"extension's :ref:`initialization function `. They are " +"also used in :ref:`single-phase initialization `." +msgstr "" + +#: ../../c-api/module.rst:404 +msgid "" +"Create a new module object, given the definition in *def*. This is a macro " +"that calls :c:func:`PyModule_Create2` with *module_api_version* set " +"to :c:macro:`PYTHON_API_VERSION`, or to :c:macro:`PYTHON_ABI_VERSION` if " +"using the :ref:`limited API `." +msgstr "" + +#: ../../c-api/module.rst:412 +msgid "" +"Create a new module object, given the definition in *def*, assuming the API " +"version *module_api_version*. If that version does not match the version of " +"the running interpreter, a :exc:`RuntimeWarning` is emitted." +msgstr "" + +#: ../../c-api/module.rst:418 +msgid "" +"This function does not support slots. The :c:member:`~PyModuleDef.m_slots` " +"member of *def* must be ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:424 +msgid "" +"Most uses of this function should be using :c:func:`PyModule_Create` " +"instead; only use this if you are sure you need it." +msgstr "" + +#: ../../c-api/module.rst:429 +msgid "" +"This macro calls :c:func:`PyModule_FromDefAndSpec2` with " +"*module_api_version* set to :c:macro:`PYTHON_API_VERSION`, or " +"to :c:macro:`PYTHON_ABI_VERSION` if using the :ref:`limited API `." +msgstr "" + +#: ../../c-api/module.rst:438 +msgid "" +"Create a new module object, given the definition in *def* and the ModuleSpec " +"*spec*, assuming the API version *module_api_version*. If that version does " +"not match the version of the running interpreter, a :exc:`RuntimeWarning` is " +"emitted." +msgstr "" + +#: ../../c-api/module.rst:445 +msgid "" +"Note that this does not process execution slots (:c:data:`Py_mod_exec`). " +"Both ``PyModule_FromDefAndSpec`` and ``PyModule_ExecDef`` must be called to " +"fully initialize a module." +msgstr "" + +#: ../../c-api/module.rst:451 +msgid "" +"Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " +"instead; only use this if you are sure you need it." +msgstr "" + +#: ../../c-api/module.rst:458 +msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." +msgstr "" + +#: ../../c-api/module.rst:464 +msgid "The C API version. Defined for backwards compatibility." +msgstr "" + +#: ../../c-api/module.rst:466 ../../c-api/module.rst:473 +msgid "" +"Currently, this constant is not updated in new Python versions, and is not " +"useful for versioning. This may change in the future." +msgstr "" + +#: ../../c-api/module.rst:471 +msgid "Defined as ``3`` for backwards compatibility." +msgstr "" + +#: ../../c-api/module.rst:478 +msgid "Support functions" +msgstr "" + +#: ../../c-api/module.rst:480 +msgid "" +"The following functions are provided to help initialize a module state. They " +"are intended for a module's execution slots (:c:data:`Py_mod_exec`), the " +"initialization function for legacy :ref:`single-phase initialization `, or code that creates modules dynamically." +msgstr "" + +#: ../../c-api/module.rst:488 +msgid "" +"Add an object to *module* as *name*. This is a convenience function which " +"can be used from the module's initialization function." +msgstr "" + +#: ../../c-api/module.rst:491 +msgid "" +"On success, return ``0``. On error, raise an exception and return ``-1``." +msgstr "" + +#: ../../c-api/module.rst:493 ../../c-api/module.rst:544 +#: ../../c-api/module.rst:571 +msgid "Example usage::" +msgstr "" + +#: ../../c-api/module.rst:495 +msgid "" +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" if (obj == NULL) {\n" +" return -1;\n" +" }\n" +" int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" +" Py_DECREF(obj);\n" +" return res;\n" +" }" +msgstr "" + +#: ../../c-api/module.rst:507 +msgid "" +"To be convenient, the function accepts ``NULL`` *value* with an exception " +"set. In this case, return ``-1`` and just leave the raised exception " +"unchanged." +msgstr "" + +#: ../../c-api/module.rst:511 +msgid "" +"The example can also be written without checking explicitly if *obj* is " +"``NULL``::" +msgstr "" + +#: ../../c-api/module.rst:514 +msgid "" +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" +" Py_XDECREF(obj);\n" +" return res;\n" +" }" +msgstr "" + +#: ../../c-api/module.rst:523 +msgid "" +"Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this " +"case, since *obj* can be ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:526 +msgid "" +"The number of different *name* strings passed to this function should be " +"kept small, usually by only using statically allocated strings as *name*. " +"For names that aren't known at compile time, prefer " +"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_SetAttr` " +"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " +"may be used internally to create a key object." +msgstr "" + +#: ../../c-api/module.rst:539 +msgid "" +"Similar to :c:func:`PyModule_AddObjectRef`, but \"steals\" a reference to " +"*value*. It can be called with a result of function that returns a new " +"reference without bothering to check its result or even saving it to a " +"variable." +msgstr "" + +#: ../../c-api/module.rst:546 +msgid "" +"if (PyModule_Add(module, \"spam\", PyBytes_FromString(value)) < 0) {\n" +" goto error;\n" +"}" +msgstr "" + +#: ../../c-api/module.rst:555 +msgid "" +"Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " +"*value* on success (if it returns ``0``)." +msgstr "" + +#: ../../c-api/module.rst:558 +msgid "" +"The new :c:func:`PyModule_Add` or :c:func:`PyModule_AddObjectRef` functions " +"are recommended, since it is easy to introduce reference leaks by misusing " +"the :c:func:`PyModule_AddObject` function." +msgstr "" + +#: ../../c-api/module.rst:565 +msgid "" +"Unlike other functions that steal references, ``PyModule_AddObject()`` only " +"releases the reference to *value* **on success**." +msgstr "" + +#: ../../c-api/module.rst:568 +msgid "" +"This means that its return value must be checked, and calling code " +"must :c:func:`Py_XDECREF` *value* manually on error." +msgstr "" + +#: ../../c-api/module.rst:573 +msgid "" +"PyObject *obj = PyBytes_FromString(value);\n" +"if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" +" // If 'obj' is not NULL and PyModule_AddObject() failed,\n" +" // 'obj' strong reference must be deleted with Py_XDECREF().\n" +" // If 'obj' is NULL, Py_XDECREF() does nothing.\n" +" Py_XDECREF(obj);\n" +" goto error;\n" +"}\n" +"// PyModule_AddObject() stole a reference to obj:\n" +"// Py_XDECREF(obj) is not needed here." +msgstr "" + +#: ../../c-api/module.rst:586 +msgid ":c:func:`PyModule_AddObject` is :term:`soft deprecated`." +msgstr "" + +#: ../../c-api/module.rst:591 +msgid "" +"Add an integer constant to *module* as *name*. This convenience function " +"can be used from the module's initialization function. Return ``-1`` with an " +"exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:595 +msgid "" +"This is a convenience function that calls :c:func:`PyLong_FromLong` " +"and :c:func:`PyModule_AddObjectRef`; see their documentation for details." +msgstr "" + +#: ../../c-api/module.rst:601 +msgid "" +"Add a string constant to *module* as *name*. This convenience function can " +"be used from the module's initialization function. The string *value* must " +"be ``NULL``-terminated. Return ``-1`` with an exception set on error, ``0`` " +"on success." +msgstr "" + +#: ../../c-api/module.rst:606 +msgid "" +"This is a convenience function that " +"calls :c:func:`PyUnicode_InternFromString` " +"and :c:func:`PyModule_AddObjectRef`; see their documentation for details." +msgstr "" + +#: ../../c-api/module.rst:613 +msgid "" +"Add an int constant to *module*. The name and the value are taken from " +"*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int " +"constant *AF_INET* with the value of *AF_INET* to *module*. Return ``-1`` " +"with an exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:621 +msgid "Add a string constant to *module*." +msgstr "" + +#: ../../c-api/module.rst:625 +msgid "" +"Add a type object to *module*. The type object is finalized by calling " +"internally :c:func:`PyType_Ready`. The name of the type object is taken from " +"the last component of :c:member:`~PyTypeObject.tp_name` after dot. Return " +"``-1`` with an exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:635 +msgid "" +"Add the functions from the ``NULL`` terminated *functions* array to " +"*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " +"individual entries (due to the lack of a shared module namespace, module " +"level \"functions\" implemented in C typically receive the module as their " +"first parameter, making them similar to instance methods on Python classes)." +msgstr "" + +#: ../../c-api/module.rst:641 +msgid "" +"This function is called automatically when creating a module from " +"``PyModuleDef`` (such as when using :ref:`multi-phase-initialization`, " +"``PyModule_Create``, or ``PyModule_FromDefAndSpec``). Some module authors " +"may prefer defining functions in multiple :c:type:`PyMethodDef` arrays; in " +"that case they should call this function directly." +msgstr "" + +#: ../../c-api/module.rst:652 +msgid "" +"Set the docstring for *module* to *docstring*. This function is called " +"automatically when creating a module from ``PyModuleDef`` (such as when " +"using :ref:`multi-phase-initialization`, ``PyModule_Create``, or " +"``PyModule_FromDefAndSpec``)." +msgstr "" + +#: ../../c-api/module.rst:661 +msgid "" +"Indicate that *module* does or does not support running without the global " +"interpreter lock (GIL), using one of the values from :c:macro:`Py_mod_gil`. " +"It must be called during *module*'s initialization function when " +"using :ref:`single-phase-initialization`. If this function is not called " +"during module initialization, the import machinery assumes the module does " +"not support running without the GIL. This function is only available in " +"Python builds configured with :option:`--disable-gil`. Return ``-1`` with an " +"exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:675 +msgid "Module lookup (single-phase initialization)" +msgstr "" + +#: ../../c-api/module.rst:677 +msgid "" +"The legacy :ref:`single-phase initialization ` " +"initialization scheme creates singleton modules that can be looked up in the " +"context of the current interpreter. This allows the module object to be " +"retrieved later with only a reference to the module definition." +msgstr "" + +#: ../../c-api/module.rst:682 +msgid "" +"These functions will not work on modules created using multi-phase " +"initialization, since multiple such modules can be created from a single " +"definition." +msgstr "" + +#: ../../c-api/module.rst:687 +msgid "" +"Returns the module object that was created from *def* for the current " +"interpreter. This method requires that the module object has been attached " +"to the interpreter state with :c:func:`PyState_AddModule` beforehand. In " +"case the corresponding module object is not found or has not been attached " +"to the interpreter state yet, it returns ``NULL``." +msgstr "" + +#: ../../c-api/module.rst:694 +msgid "" +"Attaches the module object passed to the function to the interpreter state. " +"This allows the module object to be accessible " +"via :c:func:`PyState_FindModule`." +msgstr "" + +#: ../../c-api/module.rst:697 +msgid "Only effective on modules created using single-phase initialization." +msgstr "" + +#: ../../c-api/module.rst:699 +msgid "" +"Python calls ``PyState_AddModule`` automatically after importing a module " +"that uses :ref:`single-phase initialization `, " +"so it is unnecessary (but harmless) to call it from module initialization " +"code. An explicit call is needed only if the module's own init code " +"subsequently calls ``PyState_FindModule``. The function is mainly intended " +"for implementing alternative import mechanisms (either by calling it " +"directly, or by referring to its implementation for details of the required " +"state updates)." +msgstr "" + +#: ../../c-api/module.rst:708 +msgid "" +"If a module was attached previously using the same *def*, it is replaced by " +"the new *module*." +msgstr "" + +#: ../../c-api/module.rst:711 ../../c-api/module.rst:722 +msgid "The caller must have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/module.rst:713 +msgid "Return ``-1`` with an exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:719 +msgid "" +"Removes the module object created from *def* from the interpreter state. " +"Return ``-1`` with an exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/module.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/module.rst:8 +msgid "module" +msgstr "" + +#: ../../c-api/module.rst:13 +msgid "ModuleType (in module types)" +msgstr "" + +#: ../../c-api/module.rst:33 ../../c-api/module.rst:77 +msgid "__name__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:33 +msgid "__doc__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:33 ../../c-api/module.rst:108 +msgid "__file__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:33 +msgid "__package__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:33 +msgid "__loader__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:63 +msgid "__dict__ (module attribute)" +msgstr "" + +#: ../../c-api/module.rst:77 ../../c-api/module.rst:108 +msgid "SystemError (built-in exception)" +msgstr "" diff --git a/c-api/monitoring.po b/c-api/monitoring.po new file mode 100644 index 0000000..c66902f --- /dev/null +++ b/c-api/monitoring.po @@ -0,0 +1,304 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/monitoring.rst:6 +msgid "Monitoring C API" +msgstr "" + +#: ../../c-api/monitoring.rst:8 +msgid "Added in version 3.13." +msgstr "" + +#: ../../c-api/monitoring.rst:10 +msgid "" +"An extension may need to interact with the event monitoring system. " +"Subscribing to events and registering callbacks can be done via the Python " +"API exposed in :mod:`sys.monitoring`." +msgstr "" + +#: ../../c-api/monitoring.rst:15 +msgid "Generating Execution Events" +msgstr "" + +#: ../../c-api/monitoring.rst:17 +msgid "" +"The functions below make it possible for an extension to fire monitoring " +"events as it emulates the execution of Python code. Each of these functions " +"accepts a ``PyMonitoringState`` struct which contains concise information " +"about the activation state of events, as well as the event arguments, which " +"include a ``PyObject*`` representing the code object, the instruction offset " +"and sometimes additional, event-specific arguments " +"(see :mod:`sys.monitoring` for details about the signatures of the different " +"event callbacks). The ``codelike`` argument should be an instance " +"of :class:`types.CodeType` or of a type that emulates it." +msgstr "" + +#: ../../c-api/monitoring.rst:27 +msgid "" +"The VM disables tracing when firing an event, so there is no need for user " +"code to do that." +msgstr "" + +#: ../../c-api/monitoring.rst:30 +msgid "" +"Monitoring functions should not be called with an exception set, except " +"those listed below as working with the current exception." +msgstr "" + +#: ../../c-api/monitoring.rst:35 +msgid "" +"Representation of the state of an event type. It is allocated by the user " +"while its contents are maintained by the monitoring API functions described " +"below." +msgstr "" + +#: ../../c-api/monitoring.rst:39 +msgid "" +"All of the functions below return 0 on success and -1 (with an exception " +"set) on error." +msgstr "" + +#: ../../c-api/monitoring.rst:41 +msgid "See :mod:`sys.monitoring` for descriptions of the events." +msgstr "" + +#: ../../c-api/monitoring.rst:45 +msgid "Fire a ``PY_START`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:50 +msgid "Fire a ``PY_RESUME`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:55 +msgid "Fire a ``PY_RETURN`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:60 +msgid "Fire a ``PY_YIELD`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:65 +msgid "Fire a ``CALL`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:70 +msgid "Fire a ``LINE`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:75 +msgid "Fire a ``JUMP`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:80 +msgid "Fire a ``BRANCH_LEFT`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:85 +msgid "Fire a ``BRANCH_RIGHT`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:90 +msgid "Fire a ``C_RETURN`` event." +msgstr "" + +#: ../../c-api/monitoring.rst:95 +msgid "" +"Fire a ``PY_THROW`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:101 +msgid "" +"Fire a ``RAISE`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:107 +msgid "" +"Fire a ``C_RAISE`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:113 +msgid "" +"Fire a ``RERAISE`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:119 +msgid "" +"Fire an ``EXCEPTION_HANDLED`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:125 +msgid "" +"Fire a ``PY_UNWIND`` event with the current exception (as returned " +"by :c:func:`PyErr_GetRaisedException`)." +msgstr "" + +#: ../../c-api/monitoring.rst:131 +msgid "" +"Fire a ``STOP_ITERATION`` event. If ``value`` is an instance " +"of :exc:`StopIteration`, it is used. Otherwise, a new :exc:`StopIteration` " +"instance is created with ``value`` as its argument." +msgstr "" + +#: ../../c-api/monitoring.rst:136 +msgid "Managing the Monitoring State" +msgstr "" + +#: ../../c-api/monitoring.rst:138 +msgid "" +"Monitoring states can be managed with the help of monitoring scopes. A scope " +"would typically correspond to a python function." +msgstr "" + +#: ../../c-api/monitoring.rst:143 +msgid "" +"Enter a monitored scope. ``event_types`` is an array of the event IDs for " +"events that may be fired from the scope. For example, the ID of a " +"``PY_START`` event is the value ``PY_MONITORING_EVENT_PY_START``, which is " +"numerically equal to the base-2 logarithm of " +"``sys.monitoring.events.PY_START``. ``state_array`` is an array with a " +"monitoring state entry for each event in ``event_types``, it is allocated by " +"the user but populated by :c:func:`!PyMonitoring_EnterScope` with " +"information about the activation state of the event. The size of " +"``event_types`` (and hence also of ``state_array``) is given in ``length``." +msgstr "" + +#: ../../c-api/monitoring.rst:153 +msgid "" +"The ``version`` argument is a pointer to a value which should be allocated " +"by the user together with ``state_array`` and initialized to 0, and then set " +"only by :c:func:`!PyMonitoring_EnterScope` itself. It allows this function " +"to determine whether event states have changed since the previous call, and " +"to return quickly if they have not." +msgstr "" + +#: ../../c-api/monitoring.rst:159 +msgid "" +"The scopes referred to here are lexical scopes: a function, class or " +"method. :c:func:`!PyMonitoring_EnterScope` should be called whenever the " +"lexical scope is entered. Scopes can be reentered, reusing the same " +"*state_array* and *version*, in situations like when emulating a recursive " +"Python function. When a code-like's execution is paused, such as when " +"emulating a generator, the scope needs to be exited and re-entered." +msgstr "" + +#: ../../c-api/monitoring.rst:166 +msgid "The macros for *event_types* are:" +msgstr "" + +#: ../../c-api/monitoring.rst:174 +msgid "Macro" +msgstr "" + +#: ../../c-api/monitoring.rst:174 +msgid "Event" +msgstr "" + +#: ../../c-api/monitoring.rst:176 +msgid ":monitoring-event:`BRANCH_LEFT`" +msgstr "" + +#: ../../c-api/monitoring.rst:177 +msgid ":monitoring-event:`BRANCH_RIGHT`" +msgstr "" + +#: ../../c-api/monitoring.rst:178 +msgid ":monitoring-event:`CALL`" +msgstr "" + +#: ../../c-api/monitoring.rst:179 +msgid ":monitoring-event:`C_RAISE`" +msgstr "" + +#: ../../c-api/monitoring.rst:180 +msgid ":monitoring-event:`C_RETURN`" +msgstr "" + +#: ../../c-api/monitoring.rst:181 +msgid ":monitoring-event:`EXCEPTION_HANDLED`" +msgstr "" + +#: ../../c-api/monitoring.rst:182 +msgid ":monitoring-event:`INSTRUCTION`" +msgstr "" + +#: ../../c-api/monitoring.rst:183 +msgid ":monitoring-event:`JUMP`" +msgstr "" + +#: ../../c-api/monitoring.rst:184 +msgid ":monitoring-event:`LINE`" +msgstr "" + +#: ../../c-api/monitoring.rst:185 +msgid ":monitoring-event:`PY_RESUME`" +msgstr "" + +#: ../../c-api/monitoring.rst:186 +msgid ":monitoring-event:`PY_RETURN`" +msgstr "" + +#: ../../c-api/monitoring.rst:187 +msgid ":monitoring-event:`PY_START`" +msgstr "" + +#: ../../c-api/monitoring.rst:188 +msgid ":monitoring-event:`PY_THROW`" +msgstr "" + +#: ../../c-api/monitoring.rst:189 +msgid ":monitoring-event:`PY_UNWIND`" +msgstr "" + +#: ../../c-api/monitoring.rst:190 +msgid ":monitoring-event:`PY_YIELD`" +msgstr "" + +#: ../../c-api/monitoring.rst:191 +msgid ":monitoring-event:`RAISE`" +msgstr "" + +#: ../../c-api/monitoring.rst:192 +msgid ":monitoring-event:`RERAISE`" +msgstr "" + +#: ../../c-api/monitoring.rst:193 +msgid ":monitoring-event:`STOP_ITERATION`" +msgstr "" + +#: ../../c-api/monitoring.rst:198 +msgid "" +"Exit the last scope that was entered with :c:func:`!PyMonitoring_EnterScope`." +msgstr "" + +#: ../../c-api/monitoring.rst:203 +msgid "" +"Return true if the event corresponding to the event ID *ev* is a :ref:`local " +"event `." +msgstr "" + +#: ../../c-api/monitoring.rst:210 +msgid "This function is :term:`soft deprecated`." +msgstr "" diff --git a/c-api/none.po b/c-api/none.po new file mode 100644 index 0000000..36ed43d --- /dev/null +++ b/c-api/none.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/none.rst:6 +msgid "The ``None`` Object" +msgstr "" + +#: ../../c-api/none.rst:10 +msgid "" +"Note that the :c:type:`PyTypeObject` for ``None`` is not directly exposed in " +"the Python/C API. Since ``None`` is a singleton, testing for object " +"identity (using ``==`` in C) is sufficient. There is no :c:func:`!" +"PyNone_Check` function for the same reason." +msgstr "" + +#: ../../c-api/none.rst:18 +msgid "" +"The Python ``None`` object, denoting lack of value. This object has no " +"methods and is :term:`immortal`." +msgstr "" + +#: ../../c-api/none.rst:21 +msgid ":c:data:`Py_None` is :term:`immortal`." +msgstr "" + +#: ../../c-api/none.rst:26 +msgid "Return :c:data:`Py_None` from a function." +msgstr "" + +#: ../../c-api/none.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/none.rst:8 +msgid "None" +msgstr "" diff --git a/c-api/number.po b/c-api/number.po new file mode 100644 index 0000000..8e01e0b --- /dev/null +++ b/c-api/number.po @@ -0,0 +1,328 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/number.rst:6 +msgid "Number Protocol" +msgstr "" + +#: ../../c-api/number.rst:11 +msgid "" +"Returns ``1`` if the object *o* provides numeric protocols, and false " +"otherwise. This function always succeeds." +msgstr "" + +#: ../../c-api/number.rst:14 +msgid "Returns ``1`` if *o* is an index integer." +msgstr "" + +#: ../../c-api/number.rst:20 +msgid "" +"Returns the result of adding *o1* and *o2*, or ``NULL`` on failure. This is " +"the equivalent of the Python expression ``o1 + o2``." +msgstr "" + +#: ../../c-api/number.rst:26 +msgid "" +"Returns the result of subtracting *o2* from *o1*, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``o1 - o2``." +msgstr "" + +#: ../../c-api/number.rst:32 +msgid "" +"Returns the result of multiplying *o1* and *o2*, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``o1 * o2``." +msgstr "" + +#: ../../c-api/number.rst:38 +msgid "" +"Returns the result of matrix multiplication on *o1* and *o2*, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 @ o2``." +msgstr "" + +#: ../../c-api/number.rst:46 +msgid "" +"Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is " +"the equivalent of the Python expression ``o1 // o2``." +msgstr "" + +#: ../../c-api/number.rst:52 +msgid "" +"Return a reasonable approximation for the mathematical value of *o1* divided " +"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " +"because binary floating-point numbers are approximate; it is not possible to " +"represent all real numbers in base two. This function can return a floating-" +"point value when passed two integers. This is the equivalent of the Python " +"expression ``o1 / o2``." +msgstr "" + +#: ../../c-api/number.rst:61 +msgid "" +"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``o1 % o2``." +msgstr "" + +#: ../../c-api/number.rst:69 +msgid "" +"See the built-in function :func:`divmod`. Returns ``NULL`` on failure. This " +"is the equivalent of the Python expression ``divmod(o1, o2)``." +msgstr "" + +#: ../../c-api/number.rst:77 +msgid "" +"See the built-in function :func:`pow`. Returns ``NULL`` on failure. This is " +"the equivalent of the Python expression ``pow(o1, o2, o3)``, where *o3* is " +"optional. If *o3* is to be ignored, pass :c:data:`Py_None` in its place " +"(passing ``NULL`` for *o3* would cause an illegal memory access)." +msgstr "" + +#: ../../c-api/number.rst:85 +msgid "" +"Returns the negation of *o* on success, or ``NULL`` on failure. This is the " +"equivalent of the Python expression ``-o``." +msgstr "" + +#: ../../c-api/number.rst:91 +msgid "" +"Returns *o* on success, or ``NULL`` on failure. This is the equivalent of " +"the Python expression ``+o``." +msgstr "" + +#: ../../c-api/number.rst:99 +msgid "" +"Returns the absolute value of *o*, or ``NULL`` on failure. This is the " +"equivalent of the Python expression ``abs(o)``." +msgstr "" + +#: ../../c-api/number.rst:105 +msgid "" +"Returns the bitwise negation of *o* on success, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``~o``." +msgstr "" + +#: ../../c-api/number.rst:111 +msgid "" +"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 << o2``." +msgstr "" + +#: ../../c-api/number.rst:117 +msgid "" +"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 >> o2``." +msgstr "" + +#: ../../c-api/number.rst:123 +msgid "" +"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 & o2``." +msgstr "" + +#: ../../c-api/number.rst:129 +msgid "" +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` " +"on failure. This is the equivalent of the Python expression ``o1 ^ o2``." +msgstr "" + +#: ../../c-api/number.rst:135 +msgid "" +"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 | o2``." +msgstr "" + +#: ../../c-api/number.rst:141 +msgid "" +"Returns the result of adding *o1* and *o2*, or ``NULL`` on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 += o2``." +msgstr "" + +#: ../../c-api/number.rst:148 +msgid "" +"Returns the result of subtracting *o2* from *o1*, or ``NULL`` on failure. " +"The operation is done *in-place* when *o1* supports it. This is the " +"equivalent of the Python statement ``o1 -= o2``." +msgstr "" + +#: ../../c-api/number.rst:155 +msgid "" +"Returns the result of multiplying *o1* and *o2*, or ``NULL`` on failure. " +"The operation is done *in-place* when *o1* supports it. This is the " +"equivalent of the Python statement ``o1 *= o2``." +msgstr "" + +#: ../../c-api/number.rst:162 +msgid "" +"Returns the result of matrix multiplication on *o1* and *o2*, or ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 @= o2``." +msgstr "" + +#: ../../c-api/number.rst:171 +msgid "" +"Returns the mathematical floor of dividing *o1* by *o2*, or ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 //= o2``." +msgstr "" + +#: ../../c-api/number.rst:178 +msgid "" +"Return a reasonable approximation for the mathematical value of *o1* divided " +"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " +"because binary floating-point numbers are approximate; it is not possible to " +"represent all real numbers in base two. This function can return a floating-" +"point value when passed two integers. The operation is done *in-place* when " +"*o1* supports it. This is the equivalent of the Python statement ``o1 /= " +"o2``." +msgstr "" + +#: ../../c-api/number.rst:188 +msgid "" +"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 %= o2``." +msgstr "" + +#: ../../c-api/number.rst:197 +msgid "" +"See the built-in function :func:`pow`. Returns ``NULL`` on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 **= o2`` when o3 is :c:data:`Py_None`, or an in-" +"place variant of ``pow(o1, o2, o3)`` otherwise. If *o3* is to be ignored, " +"pass :c:data:`Py_None` in its place (passing ``NULL`` for *o3* would cause " +"an illegal memory access)." +msgstr "" + +#: ../../c-api/number.rst:206 +msgid "" +"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 <<= o2``." +msgstr "" + +#: ../../c-api/number.rst:213 +msgid "" +"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 >>= o2``." +msgstr "" + +#: ../../c-api/number.rst:220 +msgid "" +"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 &= o2``." +msgstr "" + +#: ../../c-api/number.rst:227 +msgid "" +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` " +"on failure. The operation is done *in-place* when *o1* supports it. This " +"is the equivalent of the Python statement ``o1 ^= o2``." +msgstr "" + +#: ../../c-api/number.rst:234 +msgid "" +"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 |= o2``." +msgstr "" + +#: ../../c-api/number.rst:243 +msgid "" +"Returns the *o* converted to an integer object on success, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``int(o)``." +msgstr "" + +#: ../../c-api/number.rst:251 +msgid "" +"Returns the *o* converted to a float object on success, or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``float(o)``." +msgstr "" + +#: ../../c-api/number.rst:257 +msgid "" +"Returns the *o* converted to a Python int on success or ``NULL`` with " +"a :exc:`TypeError` exception raised on failure." +msgstr "" + +#: ../../c-api/number.rst:260 +msgid "" +"The result always has exact type :class:`int`. Previously, the result could " +"have been an instance of a subclass of ``int``." +msgstr "" + +#: ../../c-api/number.rst:267 +msgid "" +"Returns the integer *n* converted to base *base* as a string. The *base* " +"argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned " +"string is prefixed with a base marker of ``'0b'``, ``'0o'``, or ``'0x'``, " +"respectively. If *n* is not a Python int, it is converted " +"with :c:func:`PyNumber_Index` first." +msgstr "" + +#: ../../c-api/number.rst:276 +msgid "" +"Returns *o* converted to a :c:type:`Py_ssize_t` value if *o* can be " +"interpreted as an integer. If the call fails, an exception is raised and " +"``-1`` is returned." +msgstr "" + +#: ../../c-api/number.rst:279 +msgid "" +"If *o* can be converted to a Python int but the attempt to convert to " +"a :c:type:`Py_ssize_t` value would raise an :exc:`OverflowError`, then the " +"*exc* argument is the type of exception that will be raised " +"(usually :exc:`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, " +"then the exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` " +"for a negative integer or ``PY_SSIZE_T_MAX`` for a positive integer." +msgstr "" + +#: ../../c-api/number.rst:289 +msgid "" +"Returns ``1`` if *o* is an index integer (has the ``nb_index`` slot of the " +"``tp_as_number`` structure filled in), and ``0`` otherwise. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/number.rst:67 ../../c-api/number.rst:75 +#: ../../c-api/number.rst:97 ../../c-api/number.rst:195 +#: ../../c-api/number.rst:241 ../../c-api/number.rst:249 +msgid "built-in function" +msgstr "" + +#: ../../c-api/number.rst:67 +msgid "divmod" +msgstr "" + +#: ../../c-api/number.rst:75 ../../c-api/number.rst:195 +msgid "pow" +msgstr "" + +#: ../../c-api/number.rst:97 +msgid "abs" +msgstr "" + +#: ../../c-api/number.rst:241 +msgid "int" +msgstr "" + +#: ../../c-api/number.rst:249 +msgid "float" +msgstr "" diff --git a/c-api/object.po b/c-api/object.po new file mode 100644 index 0000000..7aa57df --- /dev/null +++ b/c-api/object.po @@ -0,0 +1,969 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/object.rst:6 +msgid "Object Protocol" +msgstr "" + +#: ../../c-api/object.rst:11 +msgid "Get a :term:`strong reference` to a constant." +msgstr "" + +#: ../../c-api/object.rst:13 +msgid "Set an exception and return ``NULL`` if *constant_id* is invalid." +msgstr "" + +#: ../../c-api/object.rst:15 +msgid "*constant_id* must be one of these constant identifiers:" +msgstr "" + +#: ../../c-api/object.rst:20 +msgid "Constant Identifier" +msgstr "" + +#: ../../c-api/object.rst:20 +msgid "Value" +msgstr "" + +#: ../../c-api/object.rst:20 +msgid "Returned object" +msgstr "" + +#: ../../c-api/object.rst:22 ../../c-api/object.rst:27 +msgid "``0``" +msgstr "``0``" + +#: ../../c-api/object.rst:22 +msgid ":py:data:`None`" +msgstr "" + +#: ../../c-api/object.rst:23 ../../c-api/object.rst:28 +msgid "``1``" +msgstr "``1``" + +#: ../../c-api/object.rst:23 +msgid ":py:data:`False`" +msgstr "" + +#: ../../c-api/object.rst:24 +msgid "``2``" +msgstr "``2``" + +#: ../../c-api/object.rst:24 +msgid ":py:data:`True`" +msgstr "" + +#: ../../c-api/object.rst:25 +msgid "``3``" +msgstr "``3``" + +#: ../../c-api/object.rst:25 +msgid ":py:data:`Ellipsis`" +msgstr "" + +#: ../../c-api/object.rst:26 +msgid "``4``" +msgstr "``4``" + +#: ../../c-api/object.rst:26 +msgid ":py:data:`NotImplemented`" +msgstr "" + +#: ../../c-api/object.rst:27 +msgid "``5``" +msgstr "``5``" + +#: ../../c-api/object.rst:28 +msgid "``6``" +msgstr "``6``" + +#: ../../c-api/object.rst:29 +msgid "``7``" +msgstr "``7``" + +#: ../../c-api/object.rst:29 +msgid "``''``" +msgstr "``''``" + +#: ../../c-api/object.rst:30 +msgid "``8``" +msgstr "``8``" + +#: ../../c-api/object.rst:30 +msgid "``b''``" +msgstr "``b''``" + +#: ../../c-api/object.rst:31 +msgid "``9``" +msgstr "``9``" + +#: ../../c-api/object.rst:31 +msgid "``()``" +msgstr "``()``" + +#: ../../c-api/object.rst:34 +msgid "" +"Numeric values are only given for projects which cannot use the constant " +"identifiers." +msgstr "" + +#: ../../c-api/object.rst:42 +msgid "In CPython, all of these constants are :term:`immortal`." +msgstr "" + +#: ../../c-api/object.rst:47 +msgid "" +"Similar to :c:func:`Py_GetConstant`, but return a :term:`borrowed reference`." +msgstr "" + +#: ../../c-api/object.rst:50 +msgid "" +"This function is primarily intended for backwards compatibility: " +"using :c:func:`Py_GetConstant` is recommended for new code." +msgstr "" + +#: ../../c-api/object.rst:53 +msgid "" +"The reference is borrowed from the interpreter, and is valid until the " +"interpreter finalization." +msgstr "" + +#: ../../c-api/object.rst:61 +msgid "" +"The ``NotImplemented`` singleton, used to signal that an operation is not " +"implemented for the given type combination." +msgstr "" + +#: ../../c-api/object.rst:67 +msgid "" +"Properly handle returning :c:data:`Py_NotImplemented` from within a C " +"function (that is, create a new :term:`strong reference` " +"to :const:`NotImplemented` and return it)." +msgstr "" + +#: ../../c-api/object.rst:74 +msgid "" +"Flag to be used with multiple functions that print the object " +"(like :c:func:`PyObject_Print` and :c:func:`PyFile_WriteObject`). If passed, " +"these function would use the :func:`str` of the object instead of " +"the :func:`repr`." +msgstr "" + +#: ../../c-api/object.rst:82 +msgid "" +"Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " +"argument is used to enable certain printing options. The only option " +"currently supported is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of " +"the object is written instead of the :func:`repr`." +msgstr "" + +#: ../../c-api/object.rst:90 +msgid "" +"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " +"This is equivalent to the Python expression ``hasattr(o, attr_name)``. On " +"failure, return ``-1``." +msgstr "" + +#: ../../c-api/object.rst:99 +msgid "" +"This is the same as :c:func:`PyObject_HasAttrWithError`, but *attr_name* is " +"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:108 +msgid "" +"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/object.rst:113 +msgid "" +"Exceptions that occur when this calls :meth:`~object.__getattr__` " +"and :meth:`~object.__getattribute__` methods aren't propagated, but instead " +"given to :func:`sys.unraisablehook`. For proper error handling, " +"use :c:func:`PyObject_HasAttrWithError`, :c:func:`PyObject_GetOptionalAttr` " +"or :c:func:`PyObject_GetAttr` instead." +msgstr "" + +#: ../../c-api/object.rst:122 +msgid "" +"This is the same as :c:func:`PyObject_HasAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:128 +msgid "" +"Exceptions that occur when this calls :meth:`~object.__getattr__` " +"and :meth:`~object.__getattribute__` methods or while creating the " +"temporary :class:`str` object are silently ignored. For proper error " +"handling, " +"use :c:func:`PyObject_HasAttrStringWithError`, :c:func:`PyObject_GetOptionalAttrString` " +"or :c:func:`PyObject_GetAttrString` instead." +msgstr "" + +#: ../../c-api/object.rst:138 +msgid "" +"Retrieve an attribute named *attr_name* from object *o*. Returns the " +"attribute value on success, or ``NULL`` on failure. This is the equivalent " +"of the Python expression ``o.attr_name``." +msgstr "" + +#: ../../c-api/object.rst:142 +msgid "" +"If the missing attribute should not be treated as a failure, you can " +"use :c:func:`PyObject_GetOptionalAttr` instead." +msgstr "" + +#: ../../c-api/object.rst:148 +msgid "" +"This is the same as :c:func:`PyObject_GetAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:152 +msgid "" +"If the missing attribute should not be treated as a failure, you can " +"use :c:func:`PyObject_GetOptionalAttrString` instead." +msgstr "" + +#: ../../c-api/object.rst:158 +msgid "" +"Variant of :c:func:`PyObject_GetAttr` which doesn't " +"raise :exc:`AttributeError` if the attribute is not found." +msgstr "" + +#: ../../c-api/object.rst:161 +msgid "" +"If the attribute is found, return ``1`` and set *\\*result* to a " +"new :term:`strong reference` to the attribute. If the attribute is not " +"found, return ``0`` and set *\\*result* to ``NULL``; " +"the :exc:`AttributeError` is silenced. If an error other " +"than :exc:`AttributeError` is raised, return ``-1`` and set *\\*result* to " +"``NULL``." +msgstr "" + +#: ../../c-api/object.rst:173 +msgid "" +"This is the same as :c:func:`PyObject_GetOptionalAttr`, but *attr_name* is " +"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:181 +msgid "" +"Generic attribute getter function that is meant to be put into a type " +"object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " +"of classes in the object's MRO as well as an attribute in the " +"object's :attr:`~object.__dict__` (if present). As outlined " +"in :ref:`descriptors`, data descriptors take preference over instance " +"attributes, while non-data descriptors don't. Otherwise, " +"an :exc:`AttributeError` is raised." +msgstr "" + +#: ../../c-api/object.rst:191 +msgid "" +"Set the value of the attribute named *attr_name*, for object *o*, to the " +"value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " +"success. This is the equivalent of the Python statement ``o.attr_name = v``." +msgstr "" + +#: ../../c-api/object.rst:196 +msgid "" +"If *v* is ``NULL``, the attribute is deleted. This behaviour is deprecated " +"in favour of using :c:func:`PyObject_DelAttr`, but there are currently no " +"plans to remove it." +msgstr "" + +#: ../../c-api/object.rst:203 +msgid "" +"This is the same as :c:func:`PyObject_SetAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:207 +msgid "" +"If *v* is ``NULL``, the attribute is deleted, but this feature is deprecated " +"in favour of using :c:func:`PyObject_DelAttrString`." +msgstr "" + +#: ../../c-api/object.rst:210 +msgid "" +"The number of different attribute names passed to this function should be " +"kept small, usually by using a statically allocated string as *attr_name*. " +"For attribute names that aren't known at compile time, prefer " +"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_SetAttr` " +"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " +"may be used internally to create a key object." +msgstr "" + +#: ../../c-api/object.rst:220 +msgid "" +"Generic attribute setter and deleter function that is meant to be put into a " +"type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a " +"data descriptor in the dictionary of classes in the object's MRO, and if " +"found it takes preference over setting or deleting the attribute in the " +"instance dictionary. Otherwise, the attribute is set or deleted in the " +"object's :attr:`~object.__dict__` (if present). On success, ``0`` is " +"returned, otherwise an :exc:`AttributeError` is raised and ``-1`` is " +"returned." +msgstr "" + +#: ../../c-api/object.rst:232 +msgid "" +"Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " +"failure. This is the equivalent of the Python statement ``del o.attr_name``." +msgstr "" + +#: ../../c-api/object.rst:238 +msgid "" +"This is the same as :c:func:`PyObject_DelAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:242 +msgid "" +"The number of different attribute names passed to this function should be " +"kept small, usually by using a statically allocated string as *attr_name*. " +"For attribute names that aren't known at compile time, prefer " +"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_DelAttr` " +"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " +"may be used internally to create a key object for lookup." +msgstr "" + +#: ../../c-api/object.rst:253 +msgid "" +"A generic implementation for the getter of a ``__dict__`` descriptor. It " +"creates the dictionary if necessary." +msgstr "" + +#: ../../c-api/object.rst:256 +msgid "" +"This function may also be called to get the :py:attr:`~object.__dict__` of " +"the object *o*. Pass ``NULL`` for *context* when calling it. Since this " +"function may need to allocate memory for the dictionary, it may be more " +"efficient to call :c:func:`PyObject_GetAttr` when accessing an attribute on " +"the object." +msgstr "" + +#: ../../c-api/object.rst:262 +msgid "On failure, returns ``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/object.rst:269 +msgid "" +"A generic implementation for the setter of a ``__dict__`` descriptor. This " +"implementation does not allow the dictionary to be deleted." +msgstr "" + +#: ../../c-api/object.rst:277 +msgid "" +"Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. If " +"there is no ``__dict__``, return ``NULL`` without setting an exception." +msgstr "" + +#: ../../c-api/object.rst:280 +msgid "" +"This function may need to allocate memory for the dictionary, so it may be " +"more efficient to call :c:func:`PyObject_GetAttr` when accessing an " +"attribute on the object." +msgstr "" + +#: ../../c-api/object.rst:287 +msgid "" +"Compare the values of *o1* and *o2* using the operation specified by *opid*, " +"which must be one " +"of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_GT`, " +"or :c:macro:`Py_GE`, corresponding to ``<``, ``<=``, ``==``, ``!=``, ``>``, " +"or ``>=`` respectively. This is the equivalent of the Python expression ``o1 " +"op o2``, where ``op`` is the operator corresponding to *opid*. Returns the " +"value of the comparison on success, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/object.rst:297 +msgid "" +"Compare the values of *o1* and *o2* using the operation specified by *opid*, " +"like :c:func:`PyObject_RichCompare`, but returns ``-1`` on error, ``0`` if " +"the result is false, ``1`` otherwise." +msgstr "" + +#: ../../c-api/object.rst:302 +msgid "" +"If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " +"will always return ``1`` for :c:macro:`Py_EQ` and ``0`` for :c:macro:`Py_NE`." +msgstr "" + +#: ../../c-api/object.rst:307 +msgid "" +"Format *obj* using *format_spec*. This is equivalent to the Python " +"expression ``format(obj, format_spec)``." +msgstr "" + +#: ../../c-api/object.rst:310 +msgid "" +"*format_spec* may be ``NULL``. In this case the call is equivalent to " +"``format(obj)``. Returns the formatted string on success, ``NULL`` on " +"failure." +msgstr "" + +#: ../../c-api/object.rst:318 +msgid "" +"Compute a string representation of object *o*. Returns the string " +"representation on success, ``NULL`` on failure. This is the equivalent of " +"the Python expression ``repr(o)``. Called by the :func:`repr` built-in " +"function." +msgstr "" + +#: ../../c-api/object.rst:322 ../../c-api/object.rst:346 +msgid "" +"This function now includes a debug assertion to help ensure that it does not " +"silently discard an active exception." +msgstr "" + +#: ../../c-api/object.rst:330 +msgid "" +"As :c:func:`PyObject_Repr`, compute a string representation of object *o*, " +"but escape the non-ASCII characters in the string returned " +"by :c:func:`PyObject_Repr` with ``\\x``, ``\\u`` or ``\\U`` escapes. This " +"generates a string similar to that returned by :c:func:`PyObject_Repr` in " +"Python 2. Called by the :func:`ascii` built-in function." +msgstr "" + +#: ../../c-api/object.rst:341 +msgid "" +"Compute a string representation of object *o*. Returns the string " +"representation on success, ``NULL`` on failure. This is the equivalent of " +"the Python expression ``str(o)``. Called by the :func:`str` built-in " +"function and, therefore, by the :func:`print` function." +msgstr "" + +#: ../../c-api/object.rst:355 +msgid "" +"Compute a bytes representation of object *o*. ``NULL`` is returned on " +"failure and a bytes object on success. This is equivalent to the Python " +"expression ``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a " +"TypeError is raised when *o* is an integer instead of a zero-initialized " +"bytes object." +msgstr "" + +#: ../../c-api/object.rst:364 +msgid "" +"Return ``1`` if the class *derived* is identical to or derived from the " +"class *cls*, otherwise return ``0``. In case of an error, return ``-1``." +msgstr "" + +#: ../../c-api/object.rst:367 ../../c-api/object.rst:386 +msgid "" +"If *cls* is a tuple, the check will be done against every entry in *cls*. " +"The result will be ``1`` when at least one of the checks returns ``1``, " +"otherwise it will be ``0``." +msgstr "" + +#: ../../c-api/object.rst:371 +msgid "" +"If *cls* has a :meth:`~type.__subclasscheck__` method, it will be called to " +"determine the subclass status as described in :pep:`3119`. Otherwise, " +"*derived* is a subclass of *cls* if it is a direct or indirect subclass, " +"i.e. contained in :attr:`cls.__mro__ `." +msgstr "" + +#: ../../c-api/object.rst:376 +msgid "" +"Normally only class objects, i.e. instances of :class:`type` or a derived " +"class, are considered classes. However, objects can override this by having " +"a :attr:`~type.__bases__` attribute (which must be a tuple of base classes)." +msgstr "" + +#: ../../c-api/object.rst:383 +msgid "" +"Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " +"*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." +msgstr "" + +#: ../../c-api/object.rst:390 +msgid "" +"If *cls* has a :meth:`~type.__instancecheck__` method, it will be called to " +"determine the subclass status as described in :pep:`3119`. Otherwise, " +"*inst* is an instance of *cls* if its class is a subclass of *cls*." +msgstr "" + +#: ../../c-api/object.rst:394 +msgid "" +"An instance *inst* can override what is considered its class by having " +"a :attr:`~object.__class__` attribute." +msgstr "" + +#: ../../c-api/object.rst:397 +msgid "" +"An object *cls* can override if it is considered a class, and what its base " +"classes are, by having a :attr:`~type.__bases__` attribute (which must be a " +"tuple of base classes)." +msgstr "" + +#: ../../c-api/object.rst:406 +msgid "" +"Compute and return the hash value of an object *o*. On failure, return " +"``-1``. This is the equivalent of the Python expression ``hash(o)``." +msgstr "" + +#: ../../c-api/object.rst:409 +msgid "" +"The return type is now Py_hash_t. This is a signed integer the same size " +"as :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/object.rst:416 +msgid "" +"Set a :exc:`TypeError` indicating that ``type(o)`` is not :term:`hashable` " +"and return ``-1``. This function receives special treatment when stored in a " +"``tp_hash`` slot, allowing a type to explicitly indicate to the interpreter " +"that it is not hashable." +msgstr "" + +#: ../../c-api/object.rst:424 +msgid "" +"Returns ``1`` if the object *o* is considered to be true, and ``0`` " +"otherwise. This is equivalent to the Python expression ``not not o``. On " +"failure, return ``-1``." +msgstr "" + +#: ../../c-api/object.rst:431 +msgid "" +"Returns ``0`` if the object *o* is considered to be true, and ``1`` " +"otherwise. This is equivalent to the Python expression ``not o``. On " +"failure, return ``-1``." +msgstr "" + +#: ../../c-api/object.rst:440 +msgid "" +"When *o* is non-``NULL``, returns a type object corresponding to the object " +"type of object *o*. On failure, raises :exc:`SystemError` and returns " +"``NULL``. This is equivalent to the Python expression ``type(o)``. This " +"function creates a new :term:`strong reference` to the return value. There's " +"really no reason to use this function instead of the :c:func:`Py_TYPE()` " +"function, which returns a pointer of type :c:expr:`PyTypeObject*`, except " +"when a new :term:`strong reference` is needed." +msgstr "" + +#: ../../c-api/object.rst:452 +msgid "" +"Return non-zero if the object *o* is of type *type* or a subtype of *type*, " +"and ``0`` otherwise. Both parameters must be non-``NULL``." +msgstr "" + +#: ../../c-api/object.rst:461 +msgid "" +"Return the length of object *o*. If the object *o* provides either the " +"sequence and mapping protocols, the sequence length is returned. On error, " +"``-1`` is returned. This is the equivalent to the Python expression " +"``len(o)``." +msgstr "" + +#: ../../c-api/object.rst:468 +msgid "" +"Return an estimated length for the object *o*. First try to return its " +"actual length, then an estimate using :meth:`~object.__length_hint__`, and " +"finally return the default value. On error return ``-1``. This is the " +"equivalent to the Python expression ``operator.length_hint(o, " +"defaultvalue)``." +msgstr "" + +#: ../../c-api/object.rst:478 +msgid "" +"Return element of *o* corresponding to the object *key* or ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o[key]``." +msgstr "" + +#: ../../c-api/object.rst:484 +msgid "" +"Map the object *key* to the value *v*. Raise an exception and return ``-1`` " +"on failure; return ``0`` on success. This is the equivalent of the Python " +"statement ``o[key] = v``. This function *does not* steal a reference to *v*." +msgstr "" + +#: ../../c-api/object.rst:492 +msgid "" +"Remove the mapping for the object *key* from the object *o*. Return ``-1`` " +"on failure. This is equivalent to the Python statement ``del o[key]``." +msgstr "" + +#: ../../c-api/object.rst:498 +msgid "" +"This is the same as :c:func:`PyObject_DelItem`, but *key* is specified as " +"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/object.rst:505 +msgid "" +"This is equivalent to the Python expression ``dir(o)``, returning a " +"(possibly empty) list of strings appropriate for the object argument, or " +"``NULL`` if there was an error. If the argument is ``NULL``, this is like " +"the Python ``dir()``, returning the names of the current locals; in this " +"case, if no execution frame is active then ``NULL`` is returned " +"but :c:func:`PyErr_Occurred` will return false." +msgstr "" + +#: ../../c-api/object.rst:514 +msgid "" +"This is equivalent to the Python expression ``iter(o)``. It returns a new " +"iterator for the object argument, or the object itself if the object is " +"already an iterator. Raises :exc:`TypeError` and returns ``NULL`` if the " +"object cannot be iterated." +msgstr "" + +#: ../../c-api/object.rst:522 +msgid "" +"This is equivalent to the Python ``__iter__(self): return self`` method. It " +"is intended for :term:`iterator` types, to be used in " +"the :c:member:`PyTypeObject.tp_iter` slot." +msgstr "" + +#: ../../c-api/object.rst:528 +msgid "" +"This is the equivalent to the Python expression ``aiter(o)``. Takes " +"an :class:`AsyncIterable` object and returns an :class:`AsyncIterator` for " +"it. This is typically a new iterator but if the argument is " +"an :class:`AsyncIterator`, this returns itself. Raises :exc:`TypeError` and " +"returns ``NULL`` if the object cannot be iterated." +msgstr "" + +#: ../../c-api/object.rst:538 +msgid "Get a pointer to subclass-specific data reserved for *cls*." +msgstr "" + +#: ../../c-api/object.rst:540 +msgid "" +"The object *o* must be an instance of *cls*, and *cls* must have been " +"created using negative :c:member:`PyType_Spec.basicsize`. Python does not " +"check this." +msgstr "" + +#: ../../c-api/object.rst:544 +msgid "On error, set an exception and return ``NULL``." +msgstr "" + +#: ../../c-api/object.rst:550 +msgid "" +"Return the size of the instance memory space reserved for *cls*, i.e. the " +"size of the memory :c:func:`PyObject_GetTypeData` returns." +msgstr "" + +#: ../../c-api/object.rst:553 +msgid "" +"This may be larger than requested using :c:member:`-PyType_Spec.basicsize " +"`; it is safe to use this larger size (e.g. " +"with :c:func:`!memset`)." +msgstr "" + +#: ../../c-api/object.rst:556 +msgid "" +"The type *cls* **must** have been created using " +"negative :c:member:`PyType_Spec.basicsize`. Python does not check this." +msgstr "" + +#: ../../c-api/object.rst:560 +msgid "On error, set an exception and return a negative value." +msgstr "" + +#: ../../c-api/object.rst:566 +msgid "" +"Get a pointer to per-item data for a class " +"with :c:macro:`Py_TPFLAGS_ITEMS_AT_END`." +msgstr "" + +#: ../../c-api/object.rst:569 +msgid "" +"On error, set an exception and return ``NULL``. :py:exc:`TypeError` is " +"raised if *o* does not have :c:macro:`Py_TPFLAGS_ITEMS_AT_END` set." +msgstr "" + +#: ../../c-api/object.rst:577 +msgid "Visit the managed dictionary of *obj*." +msgstr "" + +#: ../../c-api/object.rst:579 ../../c-api/object.rst:588 +msgid "" +"This function must only be called in a traverse function of the type which " +"has the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." +msgstr "" + +#: ../../c-api/object.rst:586 +msgid "Clear the managed dictionary of *obj*." +msgstr "" + +#: ../../c-api/object.rst:595 +msgid "" +"Enable `deferred reference counting `_ on *obj*, if supported by the runtime. In " +"the :term:`free-threaded ` build, this allows the " +"interpreter to avoid reference count adjustments to *obj*, which may improve " +"multi-threaded performance. The tradeoff is that *obj* will only be " +"deallocated by the tracing garbage collector, and not when the interpreter " +"no longer has any references to it." +msgstr "" + +#: ../../c-api/object.rst:602 +msgid "" +"This function returns ``1`` if deferred reference counting is enabled on " +"*obj*, and ``0`` if deferred reference counting is not supported or if the " +"hint was ignored by the interpreter, such as when deferred reference " +"counting is already enabled on *obj*. This function is thread-safe, and " +"cannot fail." +msgstr "" + +#: ../../c-api/object.rst:607 +msgid "" +"This function does nothing on builds with the :term:`GIL` enabled, which do " +"not support deferred reference counting. This also does nothing if *obj* is " +"not an object tracked by the garbage collector (see :func:`gc.is_tracked` " +"and :c:func:`PyObject_GC_IsTracked`)." +msgstr "" + +#: ../../c-api/object.rst:612 +msgid "" +"This function is intended to be used soon after *obj* is created, by the " +"code that creates it, such as in the " +"object's :c:member:`~PyTypeObject.tp_new` slot." +msgstr "" + +#: ../../c-api/object.rst:620 +msgid "" +"Check if *obj* is a unique temporary object. Returns ``1`` if *obj* is known " +"to be a unique temporary object, and ``0`` otherwise. This function cannot " +"fail, but the check is conservative, and may return ``0`` in some cases even " +"if *obj* is a unique temporary object." +msgstr "" + +#: ../../c-api/object.rst:626 +msgid "" +"If an object is a unique temporary, it is guaranteed that the current code " +"has the only reference to the object. For arguments to C functions, this " +"should be used instead of checking if the reference count is ``1``. Starting " +"with Python 3.14, the interpreter internally avoids some reference count " +"modifications when loading objects onto the operands stack " +"by :term:`borrowing ` references when possible, which " +"means that a reference count of ``1`` by itself does not guarantee that a " +"function argument uniquely referenced." +msgstr "" + +#: ../../c-api/object.rst:635 +msgid "" +"In the example below, ``my_func`` is called with a unique temporary object " +"as its argument::" +msgstr "" + +#: ../../c-api/object.rst:638 +msgid "my_func([1, 2, 3])" +msgstr "" + +#: ../../c-api/object.rst:640 +msgid "" +"In the example below, ``my_func`` is **not** called with a unique temporary " +"object as its argument, even if its refcount is ``1``::" +msgstr "" + +#: ../../c-api/object.rst:643 +msgid "" +"my_list = [1, 2, 3]\n" +"my_func(my_list)" +msgstr "" + +#: ../../c-api/object.rst:646 +msgid "See also the function :c:func:`Py_REFCNT`." +msgstr "" + +#: ../../c-api/object.rst:652 +msgid "" +"This function returns non-zero if *obj* is :term:`immortal`, and zero " +"otherwise. This function cannot fail." +msgstr "" + +#: ../../c-api/object.rst:657 +msgid "" +"Objects that are immortal in one CPython version are not guaranteed to be " +"immortal in another." +msgstr "" + +#: ../../c-api/object.rst:664 +msgid "" +"Increments the reference count of *obj* if it is not zero. Returns ``1`` if " +"the object's reference count was successfully incremented. Otherwise, this " +"function returns ``0``." +msgstr "" + +#: ../../c-api/object.rst:668 +msgid "" +":c:func:`PyUnstable_EnableTryIncRef` must have been called earlier on *obj* " +"or this function may spuriously return ``0`` in the :term:`free threading` " +"build." +msgstr "" + +#: ../../c-api/object.rst:672 +msgid "" +"This function is logically equivalent to the following C code, except that " +"it behaves atomically in the :term:`free threading` build::" +msgstr "" + +#: ../../c-api/object.rst:675 +msgid "" +"if (Py_REFCNT(op) > 0) {\n" +" Py_INCREF(op);\n" +" return 1;\n" +"}\n" +"return 0;" +msgstr "" + +#: ../../c-api/object.rst:681 +msgid "" +"This is intended as a building block for managing weak references without " +"the overhead of a Python :ref:`weak reference object `." +msgstr "" + +#: ../../c-api/object.rst:684 +msgid "" +"Typically, correct use of this function requires support from *obj*'s " +"deallocator (:c:member:`~PyTypeObject.tp_dealloc`). For example, the " +"following sketch could be adapted to implement a \"weakmap\" that works like " +"a :py:class:`~weakref.WeakValueDictionary` for a specific type:" +msgstr "" + +#: ../../c-api/object.rst:690 +msgid "" +"PyMutex mutex;\n" +"\n" +"PyObject *\n" +"add_entry(weakmap_key_type *key, PyObject *value)\n" +"{\n" +" PyUnstable_EnableTryIncRef(value);\n" +" weakmap_type weakmap = ...;\n" +" PyMutex_Lock(&mutex);\n" +" weakmap_add_entry(weakmap, key, value);\n" +" PyMutex_Unlock(&mutex);\n" +" Py_RETURN_NONE;\n" +"}\n" +"\n" +"PyObject *\n" +"get_value(weakmap_key_type *key)\n" +"{\n" +" weakmap_type weakmap = ...;\n" +" PyMutex_Lock(&mutex);\n" +" PyObject *result = weakmap_find(weakmap, key);\n" +" if (PyUnstable_TryIncRef(result)) {\n" +" // `result` is safe to use\n" +" PyMutex_Unlock(&mutex);\n" +" return result;\n" +" }\n" +" // if we get here, `result` is starting to be garbage-collected,\n" +" // but has not been removed from the weakmap yet\n" +" PyMutex_Unlock(&mutex);\n" +" return NULL;\n" +"}\n" +"\n" +"// tp_dealloc function for weakmap values\n" +"void\n" +"value_dealloc(PyObject *value)\n" +"{\n" +" weakmap_type weakmap = ...;\n" +" PyMutex_Lock(&mutex);\n" +" weakmap_remove_value(weakmap, value);\n" +"\n" +" ...\n" +" PyMutex_Unlock(&mutex);\n" +"}" +msgstr "" + +#: ../../c-api/object.rst:738 +msgid "" +"Enables subsequent uses of :c:func:`PyUnstable_TryIncRef` on *obj*. The " +"caller must hold a :term:`strong reference` to *obj* when calling this." +msgstr "" + +#: ../../c-api/object.rst:745 +msgid "Determine if *op* only has one reference." +msgstr "" + +#: ../../c-api/object.rst:747 +msgid "" +"On GIL-enabled builds, this function is equivalent to :c:expr:`Py_REFCNT(op) " +"== 1`." +msgstr "" + +#: ../../c-api/object.rst:750 +msgid "" +"On a :term:`free threaded ` build, this checks if " +"*op*'s :term:`reference count` is equal to one and additionally checks if " +"*op* is only used by this thread. :c:expr:`Py_REFCNT(op) == 1` is **not** " +"thread-safe on free threaded builds; prefer this function." +msgstr "" + +#: ../../c-api/object.rst:755 +msgid "" +"The caller must hold an :term:`attached thread state`, despite the fact that " +"this function doesn't call into the Python interpreter. This function cannot " +"fail." +msgstr "" + +#: ../../c-api/object.rst:316 ../../c-api/object.rst:328 +#: ../../c-api/object.rst:353 ../../c-api/object.rst:404 +#: ../../c-api/object.rst:438 ../../c-api/object.rst:459 +msgid "built-in function" +msgstr "" + +#: ../../c-api/object.rst:316 +msgid "repr" +msgstr "" + +#: ../../c-api/object.rst:328 +msgid "ascii" +msgstr "" + +#: ../../c-api/object.rst:336 +msgid "string" +msgstr "" + +#: ../../c-api/object.rst:336 +msgid "PyObject_Str (C function)" +msgstr "" + +#: ../../c-api/object.rst:353 +msgid "bytes" +msgstr "" + +#: ../../c-api/object.rst:404 +msgid "hash" +msgstr "" + +#: ../../c-api/object.rst:438 +msgid "type" +msgstr "" + +#: ../../c-api/object.rst:459 +msgid "len" +msgstr "" diff --git a/c-api/objimpl.po b/c-api/objimpl.po new file mode 100644 index 0000000..99c4193 --- /dev/null +++ b/c-api/objimpl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/objimpl.rst:7 +msgid "Object Implementation Support" +msgstr "" + +#: ../../c-api/objimpl.rst:9 +msgid "" +"This chapter describes the functions, types, and macros used when defining " +"new object types." +msgstr "" diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po new file mode 100644 index 0000000..f8e75ab --- /dev/null +++ b/c-api/perfmaps.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/perfmaps.rst:6 +msgid "Support for Perf Maps" +msgstr "" + +#: ../../c-api/perfmaps.rst:8 +msgid "" +"On supported platforms (as of this writing, only Linux), the runtime can " +"take advantage of *perf map files* to make Python functions visible to an " +"external profiling tool (such as `perf `_). A running process may create a file in the ``/tmp`` " +"directory, which contains entries that can map a section of executable code " +"to a name. This interface is described in the `documentation of the Linux " +"Perf tool `_." +msgstr "" + +#: ../../c-api/perfmaps.rst:16 +msgid "" +"In Python, these helper APIs can be used by libraries and features that rely " +"on generating machine code on the fly." +msgstr "" + +#: ../../c-api/perfmaps.rst:19 +msgid "" +"Note that holding an :term:`attached thread state` is not required for these " +"APIs." +msgstr "" + +#: ../../c-api/perfmaps.rst:23 +msgid "" +"Open the ``/tmp/perf-$pid.map`` file, unless it's already opened, and create " +"a lock to ensure thread-safe writes to the file (provided the writes are " +"done through :c:func:`PyUnstable_WritePerfMapEntry`). Normally, there's no " +"need to call this explicitly; just " +"use :c:func:`PyUnstable_WritePerfMapEntry` and it will initialize the state " +"on first call." +msgstr "" + +#: ../../c-api/perfmaps.rst:29 +msgid "" +"Returns ``0`` on success, ``-1`` on failure to create/open the perf map " +"file, or ``-2`` on failure to create a lock. Check ``errno`` for more " +"information about the cause of a failure." +msgstr "" + +#: ../../c-api/perfmaps.rst:35 +msgid "" +"Write one single entry to the ``/tmp/perf-$pid.map`` file. This function is " +"thread safe. Here is what an example entry looks like::" +msgstr "" + +#: ../../c-api/perfmaps.rst:38 +msgid "" +"# address size name\n" +"7f3529fcf759 b py::bar:/run/t.py" +msgstr "" + +#: ../../c-api/perfmaps.rst:41 +msgid "" +"Will call :c:func:`PyUnstable_PerfMapState_Init` before writing the entry, " +"if the perf map file is not already opened. Returns ``0`` on success, or the " +"same error codes as :c:func:`PyUnstable_PerfMapState_Init` on failure." +msgstr "" + +#: ../../c-api/perfmaps.rst:47 +msgid "" +"Close the perf map file opened by :c:func:`PyUnstable_PerfMapState_Init`. " +"This is called by the runtime itself during interpreter shut-down. In " +"general, there shouldn't be a reason to explicitly call this, except to " +"handle specific scenarios such as forking." +msgstr "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po new file mode 100644 index 0000000..30ea97a --- /dev/null +++ b/c-api/refcounting.po @@ -0,0 +1,306 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/refcounting.rst:8 +msgid "Reference Counting" +msgstr "" + +#: ../../c-api/refcounting.rst:10 +msgid "" +"The functions and macros in this section are used for managing reference " +"counts of Python objects." +msgstr "" + +#: ../../c-api/refcounting.rst:16 +msgid "Get the reference count of the Python object *o*." +msgstr "" + +#: ../../c-api/refcounting.rst:18 +msgid "" +"Note that the returned value may not actually reflect how many references to " +"the object are actually held. For example, some objects " +"are :term:`immortal` and have a very high refcount that does not reflect the " +"actual number of references. Consequently, do not rely on the returned " +"value to be accurate, other than a value of 0 or 1." +msgstr "" + +#: ../../c-api/refcounting.rst:24 +msgid "" +"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." +msgstr "" + +#: ../../c-api/refcounting.rst:28 +msgid "" +"On :term:`free threaded ` builds of Python, returning 1 " +"isn't sufficient to determine if it's safe to treat *o* as having no access " +"by other threads. Use :c:func:`PyUnstable_Object_IsUniquelyReferenced` for " +"that instead." +msgstr "" + +#: ../../c-api/refcounting.rst:33 +msgid "" +"See also the " +"function :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary()`." +msgstr "" + +#: ../../c-api/refcounting.rst:35 +msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." +msgstr "" + +#: ../../c-api/refcounting.rst:38 +msgid "The parameter type is no longer :c:expr:`const PyObject*`." +msgstr "" + +#: ../../c-api/refcounting.rst:44 +msgid "Set the object *o* reference counter to *refcnt*." +msgstr "" + +#: ../../c-api/refcounting.rst:46 +msgid "" +"On :ref:`Python build with Free Threading `, if " +"*refcnt* is larger than ``UINT32_MAX``, the object is made :term:`immortal`." +msgstr "" + +#: ../../c-api/refcounting.rst:49 ../../c-api/refcounting.rst:62 +#: ../../c-api/refcounting.rst:128 +msgid "This function has no effect on :term:`immortal` objects." +msgstr "" + +#: ../../c-api/refcounting.rst:53 ../../c-api/refcounting.rst:77 +#: ../../c-api/refcounting.rst:156 +msgid "Immortal objects are not modified." +msgstr "" + +#: ../../c-api/refcounting.rst:59 +msgid "" +"Indicate taking a new :term:`strong reference` to object *o*, indicating it " +"is in use and should not be destroyed." +msgstr "" + +#: ../../c-api/refcounting.rst:64 +msgid "" +"This function is usually used to convert a :term:`borrowed reference` to " +"a :term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be " +"used to create a new :term:`strong reference`." +msgstr "" + +#: ../../c-api/refcounting.rst:68 +msgid "When done using the object, release is by calling :c:func:`Py_DECREF`." +msgstr "" + +#: ../../c-api/refcounting.rst:70 +msgid "" +"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " +"use :c:func:`Py_XINCREF`." +msgstr "" + +#: ../../c-api/refcounting.rst:73 +msgid "" +"Do not expect this function to actually modify *o* in any way. For at " +"least :pep:`some objects <0683>`, this function has no effect." +msgstr "" + +#: ../../c-api/refcounting.rst:83 +msgid "" +"Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which " +"case this has no effect." +msgstr "" + +#: ../../c-api/refcounting.rst:86 +msgid "See also :c:func:`Py_XNewRef`." +msgstr "" + +#: ../../c-api/refcounting.rst:91 +msgid "" +"Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF` " +"on *o* and return the object *o*." +msgstr "" + +#: ../../c-api/refcounting.rst:94 +msgid "" +"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " +"should be called on it to release the reference." +msgstr "" + +#: ../../c-api/refcounting.rst:97 +msgid "" +"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be " +"``NULL``." +msgstr "" + +#: ../../c-api/refcounting.rst:100 +msgid "For example::" +msgstr "" + +#: ../../c-api/refcounting.rst:102 +msgid "" +"Py_INCREF(obj);\n" +"self->attr = obj;" +msgstr "" + +#: ../../c-api/refcounting.rst:105 +msgid "can be written as::" +msgstr "" + +#: ../../c-api/refcounting.rst:107 +msgid "self->attr = Py_NewRef(obj);" +msgstr "" + +#: ../../c-api/refcounting.rst:109 +msgid "See also :c:func:`Py_INCREF`." +msgstr "" + +#: ../../c-api/refcounting.rst:116 +msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." +msgstr "" + +#: ../../c-api/refcounting.rst:118 +msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." +msgstr "" + +#: ../../c-api/refcounting.rst:125 +msgid "" +"Release a :term:`strong reference` to object *o*, indicating the reference " +"is no longer used." +msgstr "" + +#: ../../c-api/refcounting.rst:130 +msgid "" +"Once the last :term:`strong reference` is released (i.e. the object's " +"reference count reaches 0), the object's type's deallocation function (which " +"must not be ``NULL``) is invoked." +msgstr "" + +#: ../../c-api/refcounting.rst:135 +msgid "" +"This function is usually used to delete a :term:`strong reference` before " +"exiting its scope." +msgstr "" + +#: ../../c-api/refcounting.rst:138 +msgid "" +"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " +"use :c:func:`Py_XDECREF`." +msgstr "" + +#: ../../c-api/refcounting.rst:141 +msgid "" +"Do not expect this function to actually modify *o* in any way. For at " +"least :pep:`some objects <683>`, this function has no effect." +msgstr "" + +#: ../../c-api/refcounting.rst:147 +msgid "" +"The deallocation function can cause arbitrary Python code to be invoked " +"(e.g. when a class instance with a :meth:`~object.__del__` method is " +"deallocated). While exceptions in such code are not propagated, the " +"executed code has free access to all Python global variables. This means " +"that any object that is reachable from a global variable should be in a " +"consistent state before :c:func:`Py_DECREF` is invoked. For example, code " +"to delete an object from a list should copy a reference to the deleted " +"object in a temporary variable, update the list data structure, and then " +"call :c:func:`Py_DECREF` for the temporary variable." +msgstr "" + +#: ../../c-api/refcounting.rst:162 +msgid "" +"Similar to :c:func:`Py_DECREF`, but the object *o* can be ``NULL``, in which " +"case this has no effect. The same warning from :c:func:`Py_DECREF` applies " +"here as well." +msgstr "" + +#: ../../c-api/refcounting.rst:169 +msgid "" +"Release a :term:`strong reference` for object *o*. The object may be " +"``NULL``, in which case the macro has no effect; otherwise the effect is the " +"same as for :c:func:`Py_DECREF`, except that the argument is also set to " +"``NULL``. The warning for :c:func:`Py_DECREF` does not apply with respect " +"to the object passed because the macro carefully uses a temporary variable " +"and sets the argument to ``NULL`` before releasing the reference." +msgstr "" + +#: ../../c-api/refcounting.rst:177 +msgid "" +"It is a good idea to use this macro whenever releasing a reference to an " +"object that might be traversed during garbage collection." +msgstr "" + +#: ../../c-api/refcounting.rst:180 +msgid "" +"The macro argument is now only evaluated once. If the argument has side " +"effects, these are no longer duplicated." +msgstr "" + +#: ../../c-api/refcounting.rst:187 +msgid "" +"Indicate taking a new :term:`strong reference` to object *o*. A function " +"version of :c:func:`Py_XINCREF`. It can be used for runtime dynamic " +"embedding of Python." +msgstr "" + +#: ../../c-api/refcounting.rst:194 +msgid "" +"Release a :term:`strong reference` to object *o*. A function version " +"of :c:func:`Py_XDECREF`. It can be used for runtime dynamic embedding of " +"Python." +msgstr "" + +#: ../../c-api/refcounting.rst:201 +msgid "" +"Macro safely releasing a :term:`strong reference` to object *dst* and " +"setting *dst* to *src*." +msgstr "" + +#: ../../c-api/refcounting.rst:204 +msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" +msgstr "" + +#: ../../c-api/refcounting.rst:206 +msgid "" +"Py_DECREF(dst);\n" +"dst = src;" +msgstr "" + +#: ../../c-api/refcounting.rst:209 +msgid "The safe way is::" +msgstr "" + +#: ../../c-api/refcounting.rst:211 +msgid "Py_SETREF(dst, src);" +msgstr "" + +#: ../../c-api/refcounting.rst:213 +msgid "" +"That arranges to set *dst* to *src* *before* releasing the reference to the " +"old value of *dst*, so that any code triggered as a side-effect of *dst* " +"getting torn down no longer believes *dst* points to a valid object." +msgstr "" + +#: ../../c-api/refcounting.rst:220 ../../c-api/refcounting.rst:232 +msgid "" +"The macro arguments are now only evaluated once. If an argument has side " +"effects, these are no longer duplicated." +msgstr "" + +#: ../../c-api/refcounting.rst:227 +msgid "" +"Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead " +"of :c:func:`Py_DECREF`." +msgstr "" diff --git a/c-api/reflection.po b/c-api/reflection.po new file mode 100644 index 0000000..f7b0b51 --- /dev/null +++ b/c-api/reflection.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/reflection.rst:6 +msgid "Reflection" +msgstr "" + +#: ../../c-api/reflection.rst:12 +msgid "Use :c:func:`PyEval_GetFrameBuiltins` instead." +msgstr "" + +#: ../../c-api/reflection.rst:14 ../../c-api/reflection.rst:66 +msgid "" +"Return a dictionary of the builtins in the current execution frame, or the " +"interpreter of the thread state if no frame is currently executing." +msgstr "" + +#: ../../c-api/reflection.rst:22 +msgid "" +"Use either :c:func:`PyEval_GetFrameLocals` to obtain the same behaviour as " +"calling :func:`locals` in Python code, or else " +"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame` " +"to access the :attr:`~frame.f_locals` attribute of the currently executing " +"frame." +msgstr "" + +#: ../../c-api/reflection.rst:27 +msgid "" +"Return a mapping providing access to the local variables in the current " +"execution frame, or ``NULL`` if no frame is currently executing." +msgstr "" + +#: ../../c-api/reflection.rst:30 +msgid "" +"Refer to :func:`locals` for details of the mapping returned at different " +"scopes." +msgstr "" + +#: ../../c-api/reflection.rst:32 +msgid "" +"As this function returns a :term:`borrowed reference`, the dictionary " +"returned for :term:`optimized scopes ` is cached on the " +"frame object and will remain alive as long as the frame object does. " +"Unlike :c:func:`PyEval_GetFrameLocals` and :func:`locals`, subsequent calls " +"to this function in the same frame will update the contents of the cached " +"dictionary to reflect changes in the state of the local variables rather " +"than returning a new snapshot." +msgstr "" + +#: ../../c-api/reflection.rst:39 +msgid "" +"As part of :pep:`667`, :c:func:`PyFrame_GetLocals`, :func:`locals`, " +"and :attr:`FrameType.f_locals ` no longer make use of the " +"shared cache dictionary. Refer to the :ref:`What's New entry ` for additional details." +msgstr "" + +#: ../../c-api/reflection.rst:50 +msgid "Use :c:func:`PyEval_GetFrameGlobals` instead." +msgstr "" + +#: ../../c-api/reflection.rst:52 +msgid "" +"Return a dictionary of the global variables in the current execution frame, " +"or ``NULL`` if no frame is currently executing." +msgstr "" + +#: ../../c-api/reflection.rst:58 +msgid "" +"Return the :term:`attached thread state`'s frame, which is ``NULL`` if no " +"frame is currently executing." +msgstr "" + +#: ../../c-api/reflection.rst:61 +msgid "See also :c:func:`PyThreadState_GetFrame`." +msgstr "" + +#: ../../c-api/reflection.rst:74 +msgid "" +"Return a dictionary of the local variables in the current execution frame, " +"or ``NULL`` if no frame is currently executing. Equivalent to " +"calling :func:`locals` in Python code." +msgstr "" + +#: ../../c-api/reflection.rst:78 +msgid "" +"To access :attr:`~frame.f_locals` on the current frame without making an " +"independent snapshot in :term:`optimized scopes `, " +"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame`." +msgstr "" + +#: ../../c-api/reflection.rst:87 +msgid "" +"Return a dictionary of the global variables in the current execution frame, " +"or ``NULL`` if no frame is currently executing. Equivalent to " +"calling :func:`globals` in Python code." +msgstr "" + +#: ../../c-api/reflection.rst:96 +msgid "" +"Return the name of *func* if it is a function, class or instance object, " +"else the name of *func*\\s type." +msgstr "" + +#: ../../c-api/reflection.rst:102 +msgid "" +"Return a description string, depending on the type of *func*. Return values " +"include \"()\" for functions and methods, \" constructor\", \" instance\", " +"and \" object\". Concatenated with the result " +"of :c:func:`PyEval_GetFuncName`, the result will be a description of *func*." +msgstr "" diff --git a/c-api/sequence.po b/c-api/sequence.po new file mode 100644 index 0000000..e46eca4 --- /dev/null +++ b/c-api/sequence.po @@ -0,0 +1,224 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/sequence.rst:6 +msgid "Sequence Protocol" +msgstr "" + +#: ../../c-api/sequence.rst:11 +msgid "" +"Return ``1`` if the object provides the sequence protocol, and ``0`` " +"otherwise. Note that it returns ``1`` for Python classes with " +"a :meth:`~object.__getitem__` method, unless they are :class:`dict` " +"subclasses, since in general it is impossible to determine what type of keys " +"the class supports. This function always succeeds." +msgstr "" + +#: ../../c-api/sequence.rst:23 +msgid "" +"Returns the number of objects in sequence *o* on success, and ``-1`` on " +"failure. This is equivalent to the Python expression ``len(o)``." +msgstr "" + +#: ../../c-api/sequence.rst:29 +msgid "" +"Return the concatenation of *o1* and *o2* on success, and ``NULL`` on " +"failure. This is the equivalent of the Python expression ``o1 + o2``." +msgstr "" + +#: ../../c-api/sequence.rst:35 +msgid "" +"Return the result of repeating sequence object *o* *count* times, or " +"``NULL`` on failure. This is the equivalent of the Python expression ``o * " +"count``." +msgstr "" + +#: ../../c-api/sequence.rst:41 +msgid "" +"Return the concatenation of *o1* and *o2* on success, and ``NULL`` on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python expression ``o1 += o2``." +msgstr "" + +#: ../../c-api/sequence.rst:48 +msgid "" +"Return the result of repeating sequence object *o* *count* times, or " +"``NULL`` on failure. The operation is done *in-place* when *o* supports " +"it. This is the equivalent of the Python expression ``o *= count``." +msgstr "" + +#: ../../c-api/sequence.rst:55 +msgid "" +"Return the *i*\\ th element of *o*, or ``NULL`` on failure. This is the " +"equivalent of the Python expression ``o[i]``." +msgstr "" + +#: ../../c-api/sequence.rst:61 +msgid "" +"Return the slice of sequence object *o* between *i1* and *i2*, or ``NULL`` " +"on failure. This is the equivalent of the Python expression ``o[i1:i2]``." +msgstr "" + +#: ../../c-api/sequence.rst:67 +msgid "" +"Assign object *v* to the *i*\\ th element of *o*. Raise an exception and " +"return ``-1`` on failure; return ``0`` on success. This is the equivalent " +"of the Python statement ``o[i] = v``. This function *does not* steal a " +"reference to *v*." +msgstr "" + +#: ../../c-api/sequence.rst:72 +msgid "" +"If *v* is ``NULL``, the element is deleted, but this feature is deprecated " +"in favour of using :c:func:`PySequence_DelItem`." +msgstr "" + +#: ../../c-api/sequence.rst:78 +msgid "" +"Delete the *i*\\ th element of object *o*. Returns ``-1`` on failure. This " +"is the equivalent of the Python statement ``del o[i]``." +msgstr "" + +#: ../../c-api/sequence.rst:84 +msgid "" +"Assign the sequence object *v* to the slice in sequence object *o* from *i1* " +"to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``." +msgstr "" + +#: ../../c-api/sequence.rst:90 +msgid "" +"Delete the slice in sequence object *o* from *i1* to *i2*. Returns ``-1`` " +"on failure. This is the equivalent of the Python statement ``del o[i1:i2]``." +msgstr "" + +#: ../../c-api/sequence.rst:96 +msgid "" +"Return the number of occurrences of *value* in *o*, that is, return the " +"number of keys for which ``o[key] == value``. On failure, return ``-1``. " +"This is equivalent to the Python expression ``o.count(value)``." +msgstr "" + +#: ../../c-api/sequence.rst:103 +msgid "" +"Determine if *o* contains *value*. If an item in *o* is equal to *value*, " +"return ``1``, otherwise return ``0``. On error, return ``-1``. This is " +"equivalent to the Python expression ``value in o``." +msgstr "" + +#: ../../c-api/sequence.rst:110 +msgid "Alias for :c:func:`PySequence_Contains`." +msgstr "" + +#: ../../c-api/sequence.rst:112 +msgid "" +"The function is :term:`soft deprecated` and should no longer be used to " +"write new code." +msgstr "" + +#: ../../c-api/sequence.rst:119 +msgid "" +"Return the first index *i* for which ``o[i] == value``. On error, return " +"``-1``. This is equivalent to the Python expression ``o.index(value)``." +msgstr "" + +#: ../../c-api/sequence.rst:125 +msgid "" +"Return a list object with the same contents as the sequence or iterable *o*, " +"or ``NULL`` on failure. The returned list is guaranteed to be new. This is " +"equivalent to the Python expression ``list(o)``." +msgstr "" + +#: ../../c-api/sequence.rst:134 +msgid "" +"Return a tuple object with the same contents as the sequence or iterable " +"*o*, or ``NULL`` on failure. If *o* is a tuple, a new reference will be " +"returned, otherwise a tuple will be constructed with the appropriate " +"contents. This is equivalent to the Python expression ``tuple(o)``." +msgstr "" + +#: ../../c-api/sequence.rst:142 +msgid "" +"Return the sequence or iterable *o* as an object usable by the other " +"``PySequence_Fast*`` family of functions. If the object is not a sequence or " +"iterable, raises :exc:`TypeError` with *m* as the message text. Returns " +"``NULL`` on failure." +msgstr "" + +#: ../../c-api/sequence.rst:147 +msgid "" +"The ``PySequence_Fast*`` functions are thus named because they assume *o* is " +"a :c:type:`PyTupleObject` or a :c:type:`PyListObject` and access the data " +"fields of *o* directly." +msgstr "" + +#: ../../c-api/sequence.rst:151 +msgid "" +"As a CPython implementation detail, if *o* is already a sequence or list, it " +"will be returned." +msgstr "" + +#: ../../c-api/sequence.rst:157 +msgid "" +"Returns the length of *o*, assuming that *o* was returned " +"by :c:func:`PySequence_Fast` and that *o* is not ``NULL``. The size can " +"also be retrieved by calling :c:func:`PySequence_Size` on *o*, " +"but :c:func:`PySequence_Fast_GET_SIZE` is faster because it can assume *o* " +"is a list or tuple." +msgstr "" + +#: ../../c-api/sequence.rst:166 +msgid "" +"Return the *i*\\ th element of *o*, assuming that *o* was returned " +"by :c:func:`PySequence_Fast`, *o* is not ``NULL``, and that *i* is within " +"bounds." +msgstr "" + +#: ../../c-api/sequence.rst:172 +msgid "" +"Return the underlying array of PyObject pointers. Assumes that *o* was " +"returned by :c:func:`PySequence_Fast` and *o* is not ``NULL``." +msgstr "" + +#: ../../c-api/sequence.rst:175 +msgid "" +"Note, if a list gets resized, the reallocation may relocate the items array. " +"So, only use the underlying array pointer in contexts where the sequence " +"cannot change." +msgstr "" + +#: ../../c-api/sequence.rst:182 +msgid "" +"Return the *i*\\ th element of *o* or ``NULL`` on failure. Faster form " +"of :c:func:`PySequence_GetItem` but without checking " +"that :c:func:`PySequence_Check` on *o* is true and without adjustment for " +"negative indices." +msgstr "" + +#: ../../c-api/sequence.rst:21 ../../c-api/sequence.rst:132 +msgid "built-in function" +msgstr "" + +#: ../../c-api/sequence.rst:21 +msgid "len" +msgstr "" + +#: ../../c-api/sequence.rst:132 +msgid "tuple" +msgstr "" diff --git a/c-api/set.po b/c-api/set.po new file mode 100644 index 0000000..ea634e9 --- /dev/null +++ b/c-api/set.po @@ -0,0 +1,207 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/set.rst:6 +msgid "Set Objects" +msgstr "" + +#: ../../c-api/set.rst:15 +msgid "" +"This section details the public API for :class:`set` and :class:`frozenset` " +"objects. Any functionality not listed below is best accessed using either " +"the abstract object protocol " +"(including :c:func:`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:`PyObject_Print`, " +"and :c:func:`PyObject_GetIter`) or the abstract number protocol " +"(including :c:func:`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:func:`PyNumber_Or`, :c:func:`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :c:func:`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, " +"and :c:func:`PyNumber_InPlaceXor`)." +msgstr "" + +#: ../../c-api/set.rst:29 +msgid "" +"This subtype of :c:type:`PyObject` is used to hold the internal data for " +"both :class:`set` and :class:`frozenset` objects. It is like " +"a :c:type:`PyDictObject` in that it is a fixed size for small sets (much " +"like tuple storage) and will point to a separate, variable sized block of " +"memory for medium and large sized sets (much like list storage). None of the " +"fields of this structure should be considered public and all are subject to " +"change. All access should be done through the documented API rather than by " +"manipulating the values in the structure." +msgstr "" + +#: ../../c-api/set.rst:40 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :class:`set` type." +msgstr "" + +#: ../../c-api/set.rst:46 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :class:`frozenset` type." +msgstr "" + +#: ../../c-api/set.rst:49 +msgid "" +"The following type check macros work on pointers to any Python object. " +"Likewise, the constructor functions work with any iterable Python object." +msgstr "" + +#: ../../c-api/set.rst:55 +msgid "" +"Return true if *p* is a :class:`set` object or an instance of a subtype. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:60 +msgid "" +"Return true if *p* is a :class:`frozenset` object or an instance of a " +"subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:65 +msgid "" +"Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or " +"an instance of a subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:70 +msgid "" +"Return true if *p* is a :class:`set` object but not an instance of a " +"subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:77 +msgid "" +"Return true if *p* is a :class:`set` object or a :class:`frozenset` object " +"but not an instance of a subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:83 +msgid "" +"Return true if *p* is a :class:`frozenset` object but not an instance of a " +"subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/set.rst:89 +msgid "" +"Return a new :class:`set` containing objects returned by the *iterable*. " +"The *iterable* may be ``NULL`` to create a new empty set. Return the new " +"set on success or ``NULL`` on failure. Raise :exc:`TypeError` if *iterable* " +"is not actually iterable. The constructor is also useful for copying a set " +"(``c=set(s)``)." +msgstr "" + +#: ../../c-api/set.rst:98 +msgid "" +"Return a new :class:`frozenset` containing objects returned by the " +"*iterable*. The *iterable* may be ``NULL`` to create a new empty frozenset. " +"Return the new set on success or ``NULL`` on failure. " +"Raise :exc:`TypeError` if *iterable* is not actually iterable." +msgstr "" + +#: ../../c-api/set.rst:104 +msgid "" +"The following functions and macros are available for instances " +"of :class:`set` or :class:`frozenset` or instances of their subtypes." +msgstr "" + +#: ../../c-api/set.rst:112 +msgid "" +"Return the length of a :class:`set` or :class:`frozenset` object. Equivalent " +"to ``len(anyset)``. Raises a :exc:`SystemError` if *anyset* is not " +"a :class:`set`, :class:`frozenset`, or an instance of a subtype." +msgstr "" + +#: ../../c-api/set.rst:119 +msgid "Macro form of :c:func:`PySet_Size` without error checking." +msgstr "" + +#: ../../c-api/set.rst:124 +msgid "" +"Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is " +"encountered. Unlike the Python :meth:`~object.__contains__` method, this " +"function does not automatically convert unhashable sets into temporary " +"frozensets. Raise a :exc:`TypeError` if the *key* is unhashable. " +"Raise :exc:`SystemError` if *anyset* is not " +"a :class:`set`, :class:`frozenset`, or an instance of a subtype." +msgstr "" + +#: ../../c-api/set.rst:133 +msgid "" +"Add *key* to a :class:`set` instance. Also works with :class:`frozenset` " +"instances (like :c:func:`PyTuple_SetItem` it can be used to fill in the " +"values of brand new frozensets before they are exposed to other code). " +"Return ``0`` on success or ``-1`` on failure. Raise a :exc:`TypeError` if " +"the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to " +"grow. Raise a :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." +msgstr "" + +#: ../../c-api/set.rst:142 +msgid "" +"The following functions are available for instances of :class:`set` or its " +"subtypes but not for instances of :class:`frozenset` or its subtypes." +msgstr "" + +#: ../../c-api/set.rst:148 +msgid "" +"Return ``1`` if found and removed, ``0`` if not found (no action taken), and " +"``-1`` if an error is encountered. Does not raise :exc:`KeyError` for " +"missing keys. Raise a :exc:`TypeError` if the *key* is unhashable. Unlike " +"the Python :meth:`~frozenset.discard` method, this function does not " +"automatically convert unhashable sets into temporary frozensets. " +"Raise :exc:`SystemError` if *set* is not an instance of :class:`set` or its " +"subtype." +msgstr "" + +#: ../../c-api/set.rst:158 +msgid "" +"Return a new reference to an arbitrary object in the *set*, and removes the " +"object from the *set*. Return ``NULL`` on failure. Raise :exc:`KeyError` " +"if the set is empty. Raise a :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." +msgstr "" + +#: ../../c-api/set.rst:166 +msgid "" +"Empty an existing set of all elements. Return ``0`` on success. Return " +"``-1`` and raise :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." +msgstr "" + +#: ../../c-api/set.rst:11 +msgid "object" +msgstr "" + +#: ../../c-api/set.rst:11 +msgid "set" +msgstr "" + +#: ../../c-api/set.rst:11 +msgid "frozenset" +msgstr "" + +#: ../../c-api/set.rst:110 +msgid "built-in function" +msgstr "" + +#: ../../c-api/set.rst:110 +msgid "len" +msgstr "" diff --git a/c-api/slice.po b/c-api/slice.po new file mode 100644 index 0000000..f62ca5d --- /dev/null +++ b/c-api/slice.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/slice.rst:6 +msgid "Slice Objects" +msgstr "" + +#: ../../c-api/slice.rst:11 +msgid "" +"The type object for slice objects. This is the same as :class:`slice` in " +"the Python layer." +msgstr "" + +#: ../../c-api/slice.rst:17 +msgid "" +"Return true if *ob* is a slice object; *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" + +#: ../../c-api/slice.rst:23 +msgid "" +"Return a new slice object with the given values. The *start*, *stop*, and " +"*step* parameters are used as the values of the slice object attributes of " +"the same names. Any of the values may be ``NULL``, in which case the " +"``None`` will be used for the corresponding attribute." +msgstr "" + +#: ../../c-api/slice.rst:28 +msgid "" +"Return ``NULL`` with an exception set if the new object could not be " +"allocated." +msgstr "" + +#: ../../c-api/slice.rst:34 +msgid "" +"Retrieve the start, stop and step indices from the slice object *slice*, " +"assuming a sequence of length *length*. Treats indices greater than *length* " +"as errors." +msgstr "" + +#: ../../c-api/slice.rst:38 +msgid "" +"Returns ``0`` on success and ``-1`` on error with no exception set (unless " +"one of the indices was not ``None`` and failed to be converted to an " +"integer, in which case ``-1`` is returned with an exception set)." +msgstr "" + +#: ../../c-api/slice.rst:42 +msgid "You probably do not want to use this function." +msgstr "" + +#: ../../c-api/slice.rst:44 ../../c-api/slice.rst:75 +msgid "" +"The parameter type for the *slice* parameter was ``PySliceObject*`` before." +msgstr "" + +#: ../../c-api/slice.rst:51 +msgid "" +"Usable replacement for :c:func:`PySlice_GetIndices`. Retrieve the start, " +"stop, and step indices from the slice object *slice* assuming a sequence of " +"length *length*, and store the length of the slice in *slicelength*. Out of " +"bounds indices are clipped in a manner consistent with the handling of " +"normal slices." +msgstr "" + +#: ../../c-api/slice.rst:57 +msgid "Return ``0`` on success and ``-1`` on error with an exception set." +msgstr "" + +#: ../../c-api/slice.rst:60 +msgid "" +"This function is considered not safe for resizable sequences. Its invocation " +"should be replaced by a combination of :c:func:`PySlice_Unpack` " +"and :c:func:`PySlice_AdjustIndices` where ::" +msgstr "" + +#: ../../c-api/slice.rst:64 +msgid "" +"if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) " +"< 0) {\n" +" // return error\n" +"}" +msgstr "" + +#: ../../c-api/slice.rst:68 +msgid "is replaced by ::" +msgstr "" + +#: ../../c-api/slice.rst:70 +msgid "" +"if (PySlice_Unpack(slice, &start, &stop, &step) < 0) {\n" +" // return error\n" +"}\n" +"slicelength = PySlice_AdjustIndices(length, &start, &stop, step);" +msgstr "" + +#: ../../c-api/slice.rst:79 +msgid "" +"If ``Py_LIMITED_API`` is not set or set to the value between ``0x03050400`` " +"and ``0x03060000`` (not including) or ``0x03060100`` or higher :c:func:`!" +"PySlice_GetIndicesEx` is implemented as a macro using :c:func:`!" +"PySlice_Unpack` and :c:func:`!PySlice_AdjustIndices`. Arguments *start*, " +"*stop* and *step* are evaluated more than once." +msgstr "" + +#: ../../c-api/slice.rst:86 +msgid "" +"If ``Py_LIMITED_API`` is set to the value less than ``0x03050400`` or " +"between ``0x03060000`` and ``0x03060100`` (not including) :c:func:`!" +"PySlice_GetIndicesEx` is a deprecated function." +msgstr "" + +#: ../../c-api/slice.rst:94 +msgid "" +"Extract the start, stop and step data members from a slice object as C " +"integers. Silently reduce values larger than ``PY_SSIZE_T_MAX`` to " +"``PY_SSIZE_T_MAX``, silently boost the start and stop values less than " +"``PY_SSIZE_T_MIN`` to ``PY_SSIZE_T_MIN``, and silently boost the step values " +"less than ``-PY_SSIZE_T_MAX`` to ``-PY_SSIZE_T_MAX``." +msgstr "" + +#: ../../c-api/slice.rst:100 +msgid "Return ``-1`` with an exception set on error, ``0`` on success." +msgstr "" + +#: ../../c-api/slice.rst:107 +msgid "" +"Adjust start/end slice indices assuming a sequence of the specified length. " +"Out of bounds indices are clipped in a manner consistent with the handling " +"of normal slices." +msgstr "" + +#: ../../c-api/slice.rst:111 +msgid "" +"Return the length of the slice. Always successful. Doesn't call Python " +"code." +msgstr "" + +#: ../../c-api/slice.rst:118 +msgid "Ellipsis Object" +msgstr "" + +#: ../../c-api/slice.rst:123 +msgid "" +"The type of Python :const:`Ellipsis` object. Same " +"as :class:`types.EllipsisType` in the Python layer." +msgstr "" + +#: ../../c-api/slice.rst:129 +msgid "" +"The Python ``Ellipsis`` object. This object has no methods. " +"Like :c:data:`Py_None`, it is an :term:`immortal` singleton object." +msgstr "" + +#: ../../c-api/slice.rst:132 +msgid ":c:data:`Py_Ellipsis` is immortal." +msgstr "" diff --git a/c-api/stable.po b/c-api/stable.po new file mode 100644 index 0000000..111e0a8 --- /dev/null +++ b/c-api/stable.po @@ -0,0 +1,313 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/stable.rst:7 +msgid "C API Stability" +msgstr "" + +#: ../../c-api/stable.rst:9 +msgid "" +"Unless documented otherwise, Python's C API is covered by the Backwards " +"Compatibility Policy, :pep:`387`. Most changes to it are source-compatible " +"(typically by only adding new API). Changing existing API or removing API is " +"only done after a deprecation period or to fix serious issues." +msgstr "" + +#: ../../c-api/stable.rst:15 +msgid "" +"CPython's Application Binary Interface (ABI) is forward- and backwards-" +"compatible across a minor release (if these are compiled the same way; " +"see :ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 " +"will work on 3.10.8 and vice versa, but will need to be compiled separately " +"for 3.9.x and 3.11.x." +msgstr "" + +#: ../../c-api/stable.rst:21 +msgid "There are two tiers of C API with different stability expectations:" +msgstr "" + +#: ../../c-api/stable.rst:23 +msgid "" +":ref:`Unstable API `, may change in minor versions without a " +"deprecation period. It is marked by the ``PyUnstable`` prefix in names." +msgstr "" + +#: ../../c-api/stable.rst:25 +msgid "" +":ref:`Limited API `, is compatible across several minor " +"releases. When :c:macro:`Py_LIMITED_API` is defined, only this subset is " +"exposed from ``Python.h``." +msgstr "" + +#: ../../c-api/stable.rst:29 +msgid "These are discussed in more detail below." +msgstr "" + +#: ../../c-api/stable.rst:31 +msgid "" +"Names prefixed by an underscore, such as ``_Py_InternalState``, are private " +"API that can change without notice even in patch releases. If you need to " +"use this API, consider reaching out to `CPython developers `_ to discuss adding public API for " +"your use case." +msgstr "" + +#: ../../c-api/stable.rst:40 +msgid "Unstable C API" +msgstr "" + +#: ../../c-api/stable.rst:44 +msgid "" +"Any API named with the ``PyUnstable`` prefix exposes CPython implementation " +"details, and may change in every minor release (e.g. from 3.9 to 3.10) " +"without any deprecation warnings. However, it will not change in a bugfix " +"release (e.g. from 3.10.0 to 3.10.1)." +msgstr "" + +#: ../../c-api/stable.rst:49 +msgid "" +"It is generally intended for specialized, low-level tools like debuggers." +msgstr "" + +#: ../../c-api/stable.rst:51 +msgid "" +"Projects that use this API are expected to follow CPython development and " +"spend extra effort adjusting to changes." +msgstr "" + +#: ../../c-api/stable.rst:57 +msgid "Stable Application Binary Interface" +msgstr "" + +#: ../../c-api/stable.rst:59 +msgid "" +"For simplicity, this document talks about *extensions*, but the Limited API " +"and Stable ABI work the same way for all uses of the API – for example, " +"embedding Python." +msgstr "" + +#: ../../c-api/stable.rst:66 +msgid "Limited C API" +msgstr "" + +#: ../../c-api/stable.rst:68 +msgid "" +"Python 3.2 introduced the *Limited API*, a subset of Python's C API. " +"Extensions that only use the Limited API can be compiled once and be loaded " +"on multiple versions of Python. Contents of the Limited API are :ref:`listed " +"below `." +msgstr "" + +#: ../../c-api/stable.rst:75 +msgid "" +"Define this macro before including ``Python.h`` to opt in to only use the " +"Limited API, and to select the Limited API version." +msgstr "" + +#: ../../c-api/stable.rst:78 +msgid "" +"Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX` " +"corresponding to the lowest Python version your extension supports. The " +"extension will be ABI-compatible with all Python 3 releases from the " +"specified one onward, and can use Limited API introduced up to that version." +msgstr "" + +#: ../../c-api/stable.rst:84 +msgid "" +"Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum " +"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when " +"compiling with future Python versions." +msgstr "" + +#: ../../c-api/stable.rst:88 +msgid "" +"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as " +"``0x03020000`` (Python 3.2, the version that introduced Limited API)." +msgstr "" + +#: ../../c-api/stable.rst:95 +msgid "Stable ABI" +msgstr "" + +#: ../../c-api/stable.rst:97 +msgid "" +"To enable this, Python provides a *Stable ABI*: a set of symbols that will " +"remain ABI-compatible across Python 3.x versions." +msgstr "" + +#: ../../c-api/stable.rst:102 +msgid "" +"The Stable ABI prevents ABI issues, like linker errors due to missing " +"symbols or data corruption due to changes in structure layouts or function " +"signatures. However, other changes in Python can change the *behavior* of " +"extensions. See Python's Backwards Compatibility Policy (:pep:`387`) for " +"details." +msgstr "" + +#: ../../c-api/stable.rst:108 +msgid "" +"The Stable ABI contains symbols exposed in the :ref:`Limited API `, but also other ones – for example, functions necessary to support " +"older versions of the Limited API." +msgstr "" + +#: ../../c-api/stable.rst:112 +msgid "" +"On Windows, extensions that use the Stable ABI should be linked against " +"``python3.dll`` rather than a version-specific library such as " +"``python39.dll``." +msgstr "" + +#: ../../c-api/stable.rst:116 +msgid "" +"On some platforms, Python will look for and load shared library files named " +"with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such " +"extensions conform to a Stable ABI. The user (or their packaging tools) need " +"to ensure that, for example, extensions built with the 3.10+ Limited API are " +"not installed for lower versions of Python." +msgstr "" + +#: ../../c-api/stable.rst:123 +msgid "" +"All functions in the Stable ABI are present as functions in Python's shared " +"library, not solely as macros. This makes them usable from languages that " +"don't use the C preprocessor." +msgstr "" + +#: ../../c-api/stable.rst:129 +msgid "Limited API Scope and Performance" +msgstr "" + +#: ../../c-api/stable.rst:131 +msgid "" +"The goal for the Limited API is to allow everything that is possible with " +"the full C API, but possibly with a performance penalty." +msgstr "" + +#: ../../c-api/stable.rst:134 +msgid "" +"For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro " +"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it " +"can rely on version-specific implementation details of the list object." +msgstr "" + +#: ../../c-api/stable.rst:139 +msgid "" +"Without ``Py_LIMITED_API`` defined, some C API functions are inlined or " +"replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, " +"allowing stability as Python's data structures are improved, but possibly " +"reducing performance." +msgstr "" + +#: ../../c-api/stable.rst:144 +msgid "" +"By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile " +"a Limited API extension with a version-specific ABI. This can improve " +"performance for that Python version, but will limit compatibility. Compiling " +"with ``Py_LIMITED_API`` will then yield an extension that can be distributed " +"where a version-specific one is not available – for example, for prereleases " +"of an upcoming Python version." +msgstr "" + +#: ../../c-api/stable.rst:153 +msgid "Limited API Caveats" +msgstr "" + +#: ../../c-api/stable.rst:155 +msgid "" +"Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee " +"that code conforms to the :ref:`Limited API ` or " +"the :ref:`Stable ABI `. ``Py_LIMITED_API`` only covers " +"definitions, but an API also includes other issues, such as expected " +"semantics." +msgstr "" + +#: ../../c-api/stable.rst:160 +msgid "" +"One issue that ``Py_LIMITED_API`` does not guard against is calling a " +"function with arguments that are invalid in a lower Python version. For " +"example, consider a function that starts accepting ``NULL`` for an argument. " +"In Python 3.9, ``NULL`` now selects a default behavior, but in Python 3.8, " +"the argument will be used directly, causing a ``NULL`` dereference and " +"crash. A similar argument works for fields of structs." +msgstr "" + +#: ../../c-api/stable.rst:167 +msgid "" +"Another issue is that some struct fields are currently not hidden when " +"``Py_LIMITED_API`` is defined, even though they're part of the Limited API." +msgstr "" + +#: ../../c-api/stable.rst:170 +msgid "" +"For these reasons, we recommend testing an extension with *all* minor Python " +"versions it supports, and preferably to build with the *lowest* such version." +msgstr "" + +#: ../../c-api/stable.rst:173 +msgid "" +"We also recommend reviewing documentation of all used API to check if it is " +"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a " +"few private declarations are exposed for technical reasons (or even " +"unintentionally, as bugs)." +msgstr "" + +#: ../../c-api/stable.rst:178 +msgid "" +"Also note that the Limited API is not necessarily stable: compiling with " +"``Py_LIMITED_API`` with Python 3.8 means that the extension will run with " +"Python 3.12, but it will not necessarily *compile* with Python 3.12. In " +"particular, parts of the Limited API may be deprecated and removed, provided " +"that the Stable ABI stays stable." +msgstr "" + +#: ../../c-api/stable.rst:188 +msgid "Platform Considerations" +msgstr "" + +#: ../../c-api/stable.rst:190 +msgid "" +"ABI stability depends not only on Python, but also on the compiler used, " +"lower-level libraries and compiler options. For the purposes of " +"the :ref:`Stable ABI `, these details define a “platform”. They " +"usually depend on the OS type and processor architecture" +msgstr "" + +#: ../../c-api/stable.rst:195 +msgid "" +"It is the responsibility of each particular distributor of Python to ensure " +"that all Python versions on a particular platform are built in a way that " +"does not break the Stable ABI. This is the case with Windows and macOS " +"releases from ``python.org`` and many third-party distributors." +msgstr "" + +#: ../../c-api/stable.rst:205 +msgid "Contents of Limited API" +msgstr "" + +#: ../../c-api/stable.rst:208 +msgid "" +"Currently, the :ref:`Limited API ` includes the following " +"items:" +msgstr "" + +#: ../../c-api/stable.rst:42 +msgid "PyUnstable" +msgstr "" diff --git a/c-api/structures.po b/c-api/structures.po new file mode 100644 index 0000000..3188819 --- /dev/null +++ b/c-api/structures.po @@ -0,0 +1,1094 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/structures.rst:6 +msgid "Common Object Structures" +msgstr "" + +#: ../../c-api/structures.rst:8 +msgid "" +"There are a large number of structures which are used in the definition of " +"object types for Python. This section describes these structures and how " +"they are used." +msgstr "" + +#: ../../c-api/structures.rst:14 +msgid "Base object types and macros" +msgstr "" + +#: ../../c-api/structures.rst:16 +msgid "" +"All Python objects ultimately share a small number of fields at the " +"beginning of the object's representation in memory. These are represented " +"by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are " +"defined, in turn, by the expansions of some macros also used, whether " +"directly or indirectly, in the definition of all other Python objects. " +"Additional macros can be found under :ref:`reference counting " +"`." +msgstr "" + +#: ../../c-api/structures.rst:26 +msgid "" +"All object types are extensions of this type. This is a type which contains " +"the information Python needs to treat a pointer to an object as an object. " +"In a normal \"release\" build, it contains only the object's reference count " +"and a pointer to the corresponding type object. Nothing is actually declared " +"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast " +"to a :c:expr:`PyObject*`." +msgstr "" + +#: ../../c-api/structures.rst:33 +msgid "" +"The members must not be accessed directly; instead use macros such " +"as :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." +msgstr "" + +#: ../../c-api/structures.rst:38 +msgid "" +"The object's reference count, as returned by :c:macro:`Py_REFCNT`. Do not " +"use this field directly; instead use functions and macros such as :c:macro:`!" +"Py_REFCNT`, :c:func:`Py_INCREF` and :c:func:`Py_DecRef`." +msgstr "" + +#: ../../c-api/structures.rst:42 +msgid "" +"The field type may be different from ``Py_ssize_t``, depending on build " +"configuration and platform." +msgstr "" + +#: ../../c-api/structures.rst:47 +msgid "" +"The object's type. Do not use this field directly; use :c:macro:`Py_TYPE` " +"and :c:func:`Py_SET_TYPE` instead." +msgstr "" + +#: ../../c-api/structures.rst:54 +msgid "" +"An extension of :c:type:`PyObject` that adds " +"the :c:member:`~PyVarObject.ob_size` field. This is intended for objects " +"that have some notion of *length*." +msgstr "" + +#: ../../c-api/structures.rst:58 +msgid "" +"As with :c:type:`!PyObject`, the members must not be accessed directly; " +"instead use macros such as :c:macro:`Py_SIZE`, :c:macro:`Py_REFCNT` " +"and :c:macro:`Py_TYPE`." +msgstr "" + +#: ../../c-api/structures.rst:64 +msgid "" +"A size field, whose contents should be considered an object's internal " +"implementation detail." +msgstr "" + +#: ../../c-api/structures.rst:67 +msgid "Do not use this field directly; use :c:macro:`Py_SIZE` instead." +msgstr "" + +#: ../../c-api/structures.rst:69 +msgid "" +"Object creation functions such as :c:func:`PyObject_NewVar` will generally " +"set this field to the requested size (number of items). After creation, " +"arbitrary values can be stored in :c:member:`!ob_size` " +"using :c:macro:`Py_SET_SIZE`." +msgstr "" + +#: ../../c-api/structures.rst:74 +msgid "" +"To get an object's publicly exposed length, as returned by the Python " +"function :py:func:`len`, use :c:func:`PyObject_Length` instead." +msgstr "" + +#: ../../c-api/structures.rst:81 +msgid "" +"This is a macro used when declaring new types which represent objects " +"without a varying length. The PyObject_HEAD macro expands to::" +msgstr "" + +#: ../../c-api/structures.rst:84 +msgid "PyObject ob_base;" +msgstr "" + +#: ../../c-api/structures.rst:86 +msgid "See documentation of :c:type:`PyObject` above." +msgstr "" + +#: ../../c-api/structures.rst:91 +msgid "" +"This is a macro used when declaring new types which represent objects with a " +"length that varies from instance to instance. The PyObject_VAR_HEAD macro " +"expands to::" +msgstr "" + +#: ../../c-api/structures.rst:95 +msgid "PyVarObject ob_base;" +msgstr "" + +#: ../../c-api/structures.rst:97 +msgid "See documentation of :c:type:`PyVarObject` above." +msgstr "" + +#: ../../c-api/structures.rst:102 +msgid "" +"The base class of all other objects, the same as :class:`object` in Python." +msgstr "" + +#: ../../c-api/structures.rst:107 +msgid "" +"Test if the *x* object is the *y* object, the same as ``x is y`` in Python." +msgstr "" + +#: ../../c-api/structures.rst:114 +msgid "" +"Test if an object is the ``None`` singleton, the same as ``x is None`` in " +"Python." +msgstr "" + +#: ../../c-api/structures.rst:122 +msgid "" +"Test if an object is the ``True`` singleton, the same as ``x is True`` in " +"Python." +msgstr "" + +#: ../../c-api/structures.rst:130 +msgid "" +"Test if an object is the ``False`` singleton, the same as ``x is False`` in " +"Python." +msgstr "" + +#: ../../c-api/structures.rst:138 +msgid "Get the type of the Python object *o*." +msgstr "" + +#: ../../c-api/structures.rst:140 +msgid "" +"The returned reference is :term:`borrowed ` from *o*. Do " +"not release it with :c:func:`Py_DECREF` or similar." +msgstr "" + +#: ../../c-api/structures.rst:143 +msgid "" +":c:func:`Py_TYPE()` is changed to an inline static function. The parameter " +"type is no longer :c:expr:`const PyObject*`." +msgstr "" + +#: ../../c-api/structures.rst:150 +msgid "" +"Return non-zero if the object *o* type is *type*. Return zero otherwise. " +"Equivalent to: ``Py_TYPE(o) == type``." +msgstr "" + +#: ../../c-api/structures.rst:158 +msgid "" +"Set the type of object *o* to *type*, without any checking or reference " +"counting." +msgstr "" + +#: ../../c-api/structures.rst:161 +msgid "" +"This is a very low-level operation. Consider instead setting the Python " +"attribute :attr:`~object.__class__` using :c:func:`PyObject_SetAttrString` " +"or similar." +msgstr "" + +#: ../../c-api/structures.rst:165 +msgid "" +"Note that assigning an incompatible type can lead to undefined behavior." +msgstr "" + +#: ../../c-api/structures.rst:167 +msgid "" +"If *type* is a :ref:`heap type `, the caller must create a new " +"reference to it. Similarly, if the old type of *o* is a heap type, the " +"caller must release a reference to that type." +msgstr "" + +#: ../../c-api/structures.rst:177 +msgid "Get the :c:member:`~PyVarObject.ob_size` field of *o*." +msgstr "" + +#: ../../c-api/structures.rst:179 +msgid "" +":c:func:`Py_SIZE()` is changed to an inline static function. The parameter " +"type is no longer :c:expr:`const PyVarObject*`." +msgstr "" + +#: ../../c-api/structures.rst:186 +msgid "Set the :c:member:`~PyVarObject.ob_size` field of *o* to *size*." +msgstr "" + +#: ../../c-api/structures.rst:193 +msgid "" +"This is a macro which expands to initialization values for a " +"new :c:type:`PyObject` type. This macro expands to::" +msgstr "" + +#: ../../c-api/structures.rst:196 +msgid "" +"_PyObject_EXTRA_INIT\n" +"1, type," +msgstr "" + +#: ../../c-api/structures.rst:202 +msgid "" +"This is a macro which expands to initialization values for a " +"new :c:type:`PyVarObject` type, including " +"the :c:member:`~PyVarObject.ob_size` field. This macro expands to::" +msgstr "" + +#: ../../c-api/structures.rst:206 +msgid "" +"_PyObject_EXTRA_INIT\n" +"1, type, size," +msgstr "" + +#: ../../c-api/structures.rst:211 +msgid "Implementing functions and methods" +msgstr "" + +#: ../../c-api/structures.rst:215 +msgid "" +"Type of the functions used to implement most Python callables in C. " +"Functions of this type take two :c:expr:`PyObject*` parameters and return " +"one such value. If the return value is ``NULL``, an exception shall have " +"been set. If not ``NULL``, the return value is interpreted as the return " +"value of the function as exposed in Python. The function must return a new " +"reference." +msgstr "" + +#: ../../c-api/structures.rst:222 +msgid "The function signature is::" +msgstr "" + +#: ../../c-api/structures.rst:224 +msgid "" +"PyObject *PyCFunction(PyObject *self,\n" +" PyObject *args);" +msgstr "" + +#: ../../c-api/structures.rst:229 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :ref:`METH_VARARGS | METH_KEYWORDS `. " +"The function signature is::" +msgstr "" + +#: ../../c-api/structures.rst:233 +msgid "" +"PyObject *PyCFunctionWithKeywords(PyObject *self,\n" +" PyObject *args,\n" +" PyObject *kwargs);" +msgstr "" + +#: ../../c-api/structures.rst:240 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :c:macro:`METH_FASTCALL`. The function signature is::" +msgstr "" + +#: ../../c-api/structures.rst:244 +msgid "" +"PyObject *PyCFunctionFast(PyObject *self,\n" +" PyObject *const *args,\n" +" Py_ssize_t nargs);" +msgstr "" + +#: ../../c-api/structures.rst:250 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :ref:`METH_FASTCALL | METH_KEYWORDS `. The function signature is::" +msgstr "" + +#: ../../c-api/structures.rst:254 +msgid "" +"PyObject *PyCFunctionFastWithKeywords(PyObject *self,\n" +" PyObject *const *args,\n" +" Py_ssize_t nargs,\n" +" PyObject *kwnames);" +msgstr "" + +#: ../../c-api/structures.rst:261 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `. The function signature is::" +msgstr "" + +#: ../../c-api/structures.rst:265 +msgid "" +"PyObject *PyCMethod(PyObject *self,\n" +" PyTypeObject *defining_class,\n" +" PyObject *const *args,\n" +" Py_ssize_t nargs,\n" +" PyObject *kwnames)" +msgstr "" + +#: ../../c-api/structures.rst:276 +msgid "" +"Structure used to describe a method of an extension type. This structure " +"has four fields:" +msgstr "" + +#: ../../c-api/structures.rst:281 +msgid "Name of the method." +msgstr "" + +#: ../../c-api/structures.rst:285 +msgid "Pointer to the C implementation." +msgstr "" + +#: ../../c-api/structures.rst:289 +msgid "Flags bits indicating how the call should be constructed." +msgstr "" + +#: ../../c-api/structures.rst:293 +msgid "Points to the contents of the docstring." +msgstr "" + +#: ../../c-api/structures.rst:295 +msgid "" +"The :c:member:`~PyMethodDef.ml_meth` is a C function pointer. The functions " +"may be of different types, but they always return :c:expr:`PyObject*`. If " +"the function is not of the :c:type:`PyCFunction`, the compiler will require " +"a cast in the method table. Even though :c:type:`PyCFunction` defines the " +"first parameter as :c:expr:`PyObject*`, it is common that the method " +"implementation uses the specific C type of the *self* object." +msgstr "" + +#: ../../c-api/structures.rst:303 +msgid "" +"The :c:member:`~PyMethodDef.ml_flags` field is a bitfield which can include " +"the following flags. The individual flags indicate either a calling " +"convention or a binding convention." +msgstr "" + +#: ../../c-api/structures.rst:308 +msgid "There are these calling conventions:" +msgstr "" + +#: ../../c-api/structures.rst:312 +msgid "" +"This is the typical calling convention, where the methods have the " +"type :c:type:`PyCFunction`. The function expects two :c:expr:`PyObject*` " +"values. The first one is the *self* object for methods; for module " +"functions, it is the module object. The second parameter (often called " +"*args*) is a tuple object representing all arguments. This parameter is " +"typically processed using :c:func:`PyArg_ParseTuple` " +"or :c:func:`PyArg_UnpackTuple`." +msgstr "" + +#: ../../c-api/structures.rst:322 +msgid "" +"Can only be used in certain combinations with other " +"flags: :ref:`METH_VARARGS | METH_KEYWORDS `, :ref:`METH_FASTCALL | METH_KEYWORDS ` and :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS " +"`." +msgstr "" + +#: ../../c-api/structures.rst:330 +msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`" +msgstr "" + +#: ../../c-api/structures.rst:331 +msgid "" +"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " +"The function expects three parameters: *self*, *args*, *kwargs* where " +"*kwargs* is a dictionary of all the keyword arguments or possibly ``NULL`` " +"if there are no keyword arguments. The parameters are typically processed " +"using :c:func:`PyArg_ParseTupleAndKeywords`." +msgstr "" + +#: ../../c-api/structures.rst:340 +msgid "" +"Fast calling convention supporting only positional arguments. The methods " +"have the type :c:type:`PyCFunctionFast`. The first parameter is *self*, the " +"second parameter is a C array of :c:expr:`PyObject*` values indicating the " +"arguments and the third parameter is the number of arguments (the length of " +"the array)." +msgstr "" + +#: ../../c-api/structures.rst:350 +msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `." +msgstr "" + +#: ../../c-api/structures.rst:355 +msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`" +msgstr "" + +#: ../../c-api/structures.rst:356 +msgid "" +"Extension of :c:macro:`METH_FASTCALL` supporting also keyword arguments, " +"with methods of type :c:type:`PyCFunctionFastWithKeywords`. Keyword " +"arguments are passed the same way as in the :ref:`vectorcall protocol " +"`: there is an additional fourth :c:expr:`PyObject*` parameter " +"which is a tuple representing the names of the keyword arguments (which are " +"guaranteed to be strings) or possibly ``NULL`` if there are no keywords. " +"The values of the keyword arguments are stored in the *args* array, after " +"the positional arguments." +msgstr "" + +#: ../../c-api/structures.rst:371 +msgid "" +"Can only be used in the combination with other flags: :ref:`METH_METHOD | " +"METH_FASTCALL | METH_KEYWORDS `." +msgstr "" + +#: ../../c-api/structures.rst:377 +msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`" +msgstr "" + +#: ../../c-api/structures.rst:378 +msgid "" +"Extension of :ref:`METH_FASTCALL | METH_KEYWORDS ` supporting the *defining class*, that is, the class that " +"contains the method in question. The defining class might be a superclass of " +"``Py_TYPE(self)``." +msgstr "" + +#: ../../c-api/structures.rst:383 +msgid "" +"The method needs to be of type :c:type:`PyCMethod`, the same as for " +"``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added " +"after ``self``." +msgstr "" + +#: ../../c-api/structures.rst:392 +msgid "" +"Methods without parameters don't need to check whether arguments are given " +"if they are listed with the :c:macro:`METH_NOARGS` flag. They need to be of " +"type :c:type:`PyCFunction`. The first parameter is typically named *self* " +"and will hold a reference to the module or object instance. In all cases " +"the second parameter will be ``NULL``." +msgstr "" + +#: ../../c-api/structures.rst:398 +msgid "" +"The function must have 2 parameters. Since the second parameter is " +"unused, :c:macro:`Py_UNUSED` can be used to prevent a compiler warning." +msgstr "" + +#: ../../c-api/structures.rst:404 +msgid "" +"Methods with a single object argument can be listed with " +"the :c:macro:`METH_O` flag, instead of invoking :c:func:`PyArg_ParseTuple` " +"with a ``\"O\"`` argument. They have the type :c:type:`PyCFunction`, with " +"the *self* parameter, and a :c:expr:`PyObject*` parameter representing the " +"single argument." +msgstr "" + +#: ../../c-api/structures.rst:410 +msgid "" +"These two constants are not used to indicate the calling convention but the " +"binding when use with methods of classes. These may not be used for " +"functions defined for modules. At most one of these flags may be set for " +"any given method." +msgstr "" + +#: ../../c-api/structures.rst:420 +msgid "" +"The method will be passed the type object as the first parameter rather than " +"an instance of the type. This is used to create *class methods*, similar to " +"what is created when using the :func:`classmethod` built-in function." +msgstr "" + +#: ../../c-api/structures.rst:430 +msgid "" +"The method will be passed ``NULL`` as the first parameter rather than an " +"instance of the type. This is used to create *static methods*, similar to " +"what is created when using the :func:`staticmethod` built-in function." +msgstr "" + +#: ../../c-api/structures.rst:434 +msgid "" +"One other constant controls whether a method is loaded in place of another " +"definition with the same method name." +msgstr "" + +#: ../../c-api/structures.rst:440 +msgid "" +"The method will be loaded in place of existing definitions. Without " +"*METH_COEXIST*, the default is to skip repeated definitions. Since slot " +"wrappers are loaded before the method table, the existence of a " +"*sq_contains* slot, for example, would generate a wrapped method " +"named :meth:`~object.__contains__` and preclude the loading of a " +"corresponding PyCFunction with the same name. With the flag defined, the " +"PyCFunction will be loaded in place of the wrapper object and will co-exist " +"with the slot. This is helpful because calls to PyCFunctions are optimized " +"more than wrapper object calls." +msgstr "" + +#: ../../c-api/structures.rst:452 +msgid "" +"Turn *ml* into a Python :term:`callable` object. The caller must ensure that " +"*ml* outlives the :term:`callable`. Typically, *ml* is defined as a static " +"variable." +msgstr "" + +#: ../../c-api/structures.rst:456 +msgid "" +"The *self* parameter will be passed as the *self* argument to the C function " +"in ``ml->ml_meth`` when invoked. *self* can be ``NULL``." +msgstr "" + +#: ../../c-api/structures.rst:460 +msgid "" +"The :term:`callable` object's ``__module__`` attribute can be set from the " +"given *module* argument. *module* should be a Python string, which will be " +"used as name of the module the function is defined in. If unavailable, it " +"can be set to :const:`None` or ``NULL``." +msgstr "" + +#: ../../c-api/structures.rst:466 +msgid ":attr:`function.__module__`" +msgstr "" + +#: ../../c-api/structures.rst:468 +msgid "" +"The *cls* parameter will be passed as the *defining_class* argument to the C " +"function. Must be set if :c:macro:`METH_METHOD` is set on ``ml->ml_flags``." +msgstr "" + +#: ../../c-api/structures.rst:477 +msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``." +msgstr "" + +#: ../../c-api/structures.rst:482 +msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``." +msgstr "" + +#: ../../c-api/structures.rst:486 +msgid "Accessing attributes of extension types" +msgstr "" + +#: ../../c-api/structures.rst:490 +msgid "" +"Structure which describes an attribute of a type which corresponds to a C " +"struct member. When defining a class, put a NULL-terminated array of these " +"structures in the :c:member:`~PyTypeObject.tp_members` slot." +msgstr "" + +#: ../../c-api/structures.rst:495 +msgid "Its fields are, in order:" +msgstr "" + +#: ../../c-api/structures.rst:499 +msgid "" +"Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array." +msgstr "" + +#: ../../c-api/structures.rst:502 +msgid "The string should be static, no copy is made of it." +msgstr "" + +#: ../../c-api/structures.rst:506 +msgid "" +"The type of the member in the C struct. See :ref:`PyMemberDef-types` for the " +"possible values." +msgstr "" + +#: ../../c-api/structures.rst:511 +msgid "" +"The offset in bytes that the member is located on the type’s object struct." +msgstr "" + +#: ../../c-api/structures.rst:515 +msgid "" +"Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." +msgstr "" + +#: ../../c-api/structures.rst:519 +msgid "" +"The docstring, or NULL. The string should be static, no copy is made of it. " +"Typically, it is defined using :c:macro:`PyDoc_STR`." +msgstr "" + +#: ../../c-api/structures.rst:523 +msgid "" +"By default (when :c:member:`~PyMemberDef.flags` is ``0``), members allow " +"both read and write access. Use the :c:macro:`Py_READONLY` flag for read-" +"only access. Certain types, like :c:macro:`Py_T_STRING`, " +"imply :c:macro:`Py_READONLY`. Only :c:macro:`Py_T_OBJECT_EX` (and " +"legacy :c:macro:`T_OBJECT`) members can be deleted." +msgstr "" + +#: ../../c-api/structures.rst:532 +msgid "" +"For heap-allocated types (created using :c:func:`PyType_FromSpec` or " +"similar), ``PyMemberDef`` may contain a definition for the special member " +"``\"__vectorcalloffset__\"``, corresponding " +"to :c:member:`~PyTypeObject.tp_vectorcall_offset` in type objects. This " +"member must be defined with ``Py_T_PYSSIZET``, and either ``Py_READONLY`` or " +"``Py_READONLY | Py_RELATIVE_OFFSET``. For example::" +msgstr "" + +#: ../../c-api/structures.rst:539 +msgid "" +"static PyMemberDef spam_type_members[] = {\n" +" {\"__vectorcalloffset__\", Py_T_PYSSIZET,\n" +" offsetof(Spam_object, vectorcall), Py_READONLY},\n" +" {NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../c-api/structures.rst:545 +msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" +msgstr "" + +#: ../../c-api/structures.rst:547 +msgid "" +"The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` " +"and :c:member:`~PyTypeObject.tp_weaklistoffset` can be defined similarly " +"using ``\"__dictoffset__\"`` and ``\"__weaklistoffset__\"`` members, but " +"extensions are strongly encouraged to use :c:macro:`Py_TPFLAGS_MANAGED_DICT` " +"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." +msgstr "" + +#: ../../c-api/structures.rst:555 +msgid "" +"``PyMemberDef`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../../c-api/structures.rst:560 +msgid "" +":c:macro:`Py_RELATIVE_OFFSET` is now allowed for " +"``\"__vectorcalloffset__\"``, ``\"__dictoffset__\"`` and " +"``\"__weaklistoffset__\"``." +msgstr "" + +#: ../../c-api/structures.rst:566 +msgid "" +"Get an attribute belonging to the object at address *obj_addr*. The " +"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error." +msgstr "" + +#: ../../c-api/structures.rst:572 +msgid "" +"``PyMember_GetOne`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../../c-api/structures.rst:577 +msgid "" +"Set an attribute belonging to the object at address *obj_addr* to object " +"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns " +"``0`` if successful and a negative value on failure." +msgstr "" + +#: ../../c-api/structures.rst:583 +msgid "" +"``PyMember_SetOne`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../../c-api/structures.rst:589 +msgid "Member flags" +msgstr "" + +#: ../../c-api/structures.rst:591 +msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" +msgstr "" + +#: ../../c-api/structures.rst:595 +msgid "Not writable." +msgstr "" + +#: ../../c-api/structures.rst:599 +msgid "" +"Emit an ``object.__getattr__`` :ref:`audit event ` before " +"reading." +msgstr "" + +#: ../../c-api/structures.rst:604 +msgid "" +"Indicates that the :c:member:`~PyMemberDef.offset` of this ``PyMemberDef`` " +"entry indicates an offset from the subclass-specific data, rather than from " +"``PyObject``." +msgstr "" + +#: ../../c-api/structures.rst:608 +msgid "" +"Can only be used as part of :c:member:`Py_tp_members " +"` :c:type:`slot ` when creating a " +"class using negative :c:member:`~PyType_Spec.basicsize`. It is mandatory in " +"that case." +msgstr "" + +#: ../../c-api/structures.rst:613 +msgid "" +"This flag is only used in :c:type:`PyType_Slot`. When " +"setting :c:member:`~PyTypeObject.tp_members` during class creation, Python " +"clears it and sets :c:member:`PyMemberDef.offset` to the offset from the " +"``PyObject`` struct." +msgstr "" + +#: ../../c-api/structures.rst:625 +msgid "" +"The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" +"WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " +"deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are " +"equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does " +"nothing." +msgstr "" + +#: ../../c-api/structures.rst:636 +msgid "" +"The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. " +"The :c:macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The " +"new names are now always available. Previously, these required ``#include " +"\"structmember.h\"``. The header is still available and it provides the old " +"names." +msgstr "" + +#: ../../c-api/structures.rst:645 +msgid "Member types" +msgstr "" + +#: ../../c-api/structures.rst:647 +msgid "" +":c:member:`PyMemberDef.type` can be one of the following macros " +"corresponding to various C types. When the member is accessed in Python, it " +"will be converted to the equivalent Python type. When it is set from Python, " +"it will be converted back to the C type. If that is not possible, an " +"exception such as :exc:`TypeError` or :exc:`ValueError` is raised." +msgstr "" + +#: ../../c-api/structures.rst:655 +msgid "" +"Unless marked (D), attributes defined this way cannot be deleted using " +"e.g. :keyword:`del` or :py:func:`delattr`." +msgstr "" + +#: ../../c-api/structures.rst:659 +msgid "Macro name" +msgstr "" + +#: ../../c-api/structures.rst:659 +msgid "C type" +msgstr "" + +#: ../../c-api/structures.rst:659 +msgid "Python type" +msgstr "" + +#: ../../c-api/structures.rst:661 +msgid ":c:expr:`char`" +msgstr "" + +#: ../../c-api/structures.rst:661 ../../c-api/structures.rst:662 +#: ../../c-api/structures.rst:663 ../../c-api/structures.rst:664 +#: ../../c-api/structures.rst:665 ../../c-api/structures.rst:666 +#: ../../c-api/structures.rst:667 ../../c-api/structures.rst:668 +#: ../../c-api/structures.rst:669 ../../c-api/structures.rst:670 +#: ../../c-api/structures.rst:671 +msgid ":py:class:`int`" +msgstr "" + +#: ../../c-api/structures.rst:662 +msgid ":c:expr:`short`" +msgstr "" + +#: ../../c-api/structures.rst:663 +msgid ":c:expr:`int`" +msgstr "" + +#: ../../c-api/structures.rst:664 +msgid ":c:expr:`long`" +msgstr "" + +#: ../../c-api/structures.rst:665 +msgid ":c:expr:`long long`" +msgstr "" + +#: ../../c-api/structures.rst:666 +msgid ":c:expr:`unsigned char`" +msgstr "" + +#: ../../c-api/structures.rst:667 +msgid ":c:expr:`unsigned int`" +msgstr "" + +#: ../../c-api/structures.rst:668 +msgid ":c:expr:`unsigned short`" +msgstr "" + +#: ../../c-api/structures.rst:669 +msgid ":c:expr:`unsigned long`" +msgstr "" + +#: ../../c-api/structures.rst:670 +msgid ":c:expr:`unsigned long long`" +msgstr "" + +#: ../../c-api/structures.rst:671 +msgid ":c:expr:`Py_ssize_t`" +msgstr "" + +#: ../../c-api/structures.rst:672 +msgid ":c:expr:`float`" +msgstr "" + +#: ../../c-api/structures.rst:672 ../../c-api/structures.rst:673 +msgid ":py:class:`float`" +msgstr "" + +#: ../../c-api/structures.rst:673 +msgid ":c:expr:`double`" +msgstr "" + +#: ../../c-api/structures.rst:674 +msgid ":c:expr:`char` (written as 0 or 1)" +msgstr "" + +#: ../../c-api/structures.rst:674 +msgid ":py:class:`bool`" +msgstr "" + +#: ../../c-api/structures.rst:676 +msgid ":c:expr:`const char *` (*)" +msgstr "" + +#: ../../c-api/structures.rst:676 ../../c-api/structures.rst:677 +msgid ":py:class:`str` (RO)" +msgstr "" + +#: ../../c-api/structures.rst:677 +msgid ":c:expr:`const char[]` (*)" +msgstr "" + +#: ../../c-api/structures.rst:678 +msgid ":c:expr:`char` (0-127)" +msgstr "" + +#: ../../c-api/structures.rst:678 +msgid ":py:class:`str` (**)" +msgstr "" + +#: ../../c-api/structures.rst:679 +msgid ":c:expr:`PyObject *`" +msgstr "" + +#: ../../c-api/structures.rst:679 +msgid ":py:class:`object` (D)" +msgstr "" + +#: ../../c-api/structures.rst:682 +msgid "" +"(*): Zero-terminated, UTF8-encoded C string. With :c:macro:`!Py_T_STRING` " +"the C representation is a pointer; with :c:macro:`!Py_T_STRING_INPLACE` the " +"string is stored directly in the structure." +msgstr "" + +#: ../../c-api/structures.rst:687 +msgid "(**): String of length 1. Only ASCII is accepted." +msgstr "" + +#: ../../c-api/structures.rst:689 +msgid "(RO): Implies :c:macro:`Py_READONLY`." +msgstr "" + +#: ../../c-api/structures.rst:691 +msgid "" +"(D): Can be deleted, in which case the pointer is set to ``NULL``. Reading a " +"``NULL`` pointer raises :py:exc:`AttributeError`." +msgstr "" + +#: ../../c-api/structures.rst:717 +msgid "" +"In previous versions, the macros were only available with ``#include " +"\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " +"``T_INT``). The header is still available and contains the old names, along " +"with the following deprecated types:" +msgstr "" + +#: ../../c-api/structures.rst:725 +msgid "" +"Like ``Py_T_OBJECT_EX``, but ``NULL`` is converted to ``None``. This results " +"in surprising behavior in Python: deleting the attribute effectively sets it " +"to ``None``." +msgstr "" + +#: ../../c-api/structures.rst:731 +msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." +msgstr "" + +#: ../../c-api/structures.rst:734 +msgid "Defining Getters and Setters" +msgstr "" + +#: ../../c-api/structures.rst:738 +msgid "" +"Structure to define property-like access for a type. See also description of " +"the :c:member:`PyTypeObject.tp_getset` slot." +msgstr "" + +#: ../../c-api/structures.rst:743 +msgid "attribute name" +msgstr "" + +#: ../../c-api/structures.rst:747 +msgid "C function to get the attribute." +msgstr "" + +#: ../../c-api/structures.rst:751 +msgid "" +"Optional C function to set or delete the attribute. If ``NULL``, the " +"attribute is read-only." +msgstr "" + +#: ../../c-api/structures.rst:756 +msgid "optional docstring" +msgstr "" + +#: ../../c-api/structures.rst:760 +msgid "" +"Optional user data pointer, providing additional data for getter and setter." +msgstr "" + +#: ../../c-api/structures.rst:764 +msgid "" +"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) " +"and a user data pointer (the associated ``closure``):" +msgstr "" + +#: ../../c-api/structures.rst:767 +msgid "" +"It should return a new reference on success or ``NULL`` with a set exception " +"on failure." +msgstr "" + +#: ../../c-api/structures.rst:772 +msgid "" +"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and " +"the value to be set) and a user data pointer (the associated ``closure``):" +msgstr "" + +#: ../../c-api/structures.rst:775 +msgid "" +"In case the attribute should be deleted the second parameter is ``NULL``. " +"Should return ``0`` on success or ``-1`` with a set exception on failure." +msgstr "" + +#: ../../c-api/structures.rst:418 ../../c-api/structures.rst:428 +msgid "built-in function" +msgstr "" + +#: ../../c-api/structures.rst:418 +msgid "classmethod" +msgstr "" + +#: ../../c-api/structures.rst:428 +msgid "staticmethod" +msgstr "" + +#: ../../c-api/structures.rst:618 +msgid "READ_RESTRICTED (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:618 +msgid "WRITE_RESTRICTED (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:618 +msgid "RESTRICTED (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:631 +msgid "READONLY (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_BYTE (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_SHORT (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_INT (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_LONG (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_LONGLONG (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_UBYTE (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_USHORT (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_UINT (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_ULONG (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_ULONGULONG (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_PYSSIZET (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_FLOAT (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_DOUBLE (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_BOOL (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_CHAR (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_STRING (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_STRING_INPLACE (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "T_OBJECT_EX (C macro)" +msgstr "" + +#: ../../c-api/structures.rst:694 +msgid "structmember.h" +msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po new file mode 100644 index 0000000..9e1d130 --- /dev/null +++ b/c-api/sys.po @@ -0,0 +1,554 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/sys.rst:6 +msgid "Operating System Utilities" +msgstr "" + +#: ../../c-api/sys.rst:11 +msgid "" +"Return the file system representation for *path*. If the object is " +"a :class:`str` or :class:`bytes` object, then a new :term:`strong reference` " +"is returned. If the object implements the :class:`os.PathLike` interface, " +"then :meth:`~os.PathLike.__fspath__` is returned as long as it is " +"a :class:`str` or :class:`bytes` object. Otherwise :exc:`TypeError` is " +"raised and ``NULL`` is returned." +msgstr "" + +#: ../../c-api/sys.rst:24 +msgid "" +"Return true (nonzero) if the standard I/O file *fp* with name *filename* is " +"deemed interactive. This is the case for files for which " +"``isatty(fileno(fp))`` is true. If the :c:member:`PyConfig.interactive` is " +"non-zero, this function also returns true if the *filename* pointer is " +"``NULL`` or if the name is equal to one of the strings ``''`` or " +"``'???'``." +msgstr "" + +#: ../../c-api/sys.rst:30 +msgid "This function must not be called before Python is initialized." +msgstr "" + +#: ../../c-api/sys.rst:35 +msgid "" +"Function to prepare some internal state before a process fork. This should " +"be called before calling :c:func:`fork` or any similar function that clones " +"the current process. Only available on systems where :c:func:`fork` is " +"defined." +msgstr "" + +#: ../../c-api/sys.rst:41 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_BeforeFork()``." +msgstr "" + +#: ../../c-api/sys.rst:51 +msgid "" +"Function to update some internal state after a process fork. This should be " +"called from the parent process after calling :c:func:`fork` or any similar " +"function that clones the current process, regardless of whether process " +"cloning was successful. Only available on systems where :c:func:`fork` is " +"defined." +msgstr "" + +#: ../../c-api/sys.rst:58 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Parent()``." +msgstr "" + +#: ../../c-api/sys.rst:68 +msgid "" +"Function to update internal interpreter state after a process fork. This " +"must be called from the child process after calling :c:func:`fork`, or any " +"similar function that clones the current process, if there is any chance the " +"process will call back into the Python interpreter. Only available on " +"systems where :c:func:`fork` is defined." +msgstr "" + +#: ../../c-api/sys.rst:75 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Child()``." +msgstr "" + +#: ../../c-api/sys.rst:83 +msgid "" +":func:`os.register_at_fork` allows registering custom Python functions to be " +"called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` " +"and :c:func:`PyOS_AfterFork_Child`." +msgstr "" + +#: ../../c-api/sys.rst:90 +msgid "" +"Function to update some internal state after a process fork; this should be " +"called in the new process if the Python interpreter will continue to be " +"used. If a new executable is loaded into the new process, this function does " +"not need to be called." +msgstr "" + +#: ../../c-api/sys.rst:95 +msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`." +msgstr "" + +#: ../../c-api/sys.rst:103 +msgid "" +"Return true when the interpreter runs out of stack space. This is a " +"reliable check, but is only available when :c:macro:`!USE_STACKCHECK` is " +"defined (currently on certain versions of Windows using the Microsoft Visual " +"C++ compiler). :c:macro:`!USE_STACKCHECK` will be defined automatically; you " +"should never change the definition in your own code." +msgstr "" + +#: ../../c-api/sys.rst:115 +msgid "" +"Return the current signal handler for signal *i*. This is a thin wrapper " +"around either :c:func:`!sigaction` or :c:func:`!signal`. Do not call those " +"functions directly!" +msgstr "" + +#: ../../c-api/sys.rst:122 +msgid "" +"Set the signal handler for signal *i* to be *h*; return the old signal " +"handler. This is a thin wrapper around either :c:func:`!sigaction` " +"or :c:func:`!signal`. Do not call those functions directly!" +msgstr "" + +#: ../../c-api/sys.rst:129 +msgid "" +"This function should not be called directly: use the :c:type:`PyConfig` API " +"with the :c:func:`PyConfig_SetBytesString` function which ensures " +"that :ref:`Python is preinitialized `." +msgstr "" + +#: ../../c-api/sys.rst:133 ../../c-api/sys.rst:200 +msgid "" +"This function must not be called before :ref:`Python is preinitialized ` and so that the LC_CTYPE locale is properly configured: see " +"the :c:func:`Py_PreInitialize` function." +msgstr "" + +#: ../../c-api/sys.rst:137 +msgid "" +"Decode a byte string from the :term:`filesystem encoding and error handler`. " +"If the error handler is :ref:`surrogateescape error handler " +"`, undecodable bytes are decoded as characters in range " +"U+DC80..U+DCFF; and if a byte sequence can be decoded as a surrogate " +"character, the bytes are escaped using the surrogateescape error handler " +"instead of decoding them." +msgstr "" + +#: ../../c-api/sys.rst:144 +msgid "" +"Return a pointer to a newly allocated wide character string, " +"use :c:func:`PyMem_RawFree` to free the memory. If size is not ``NULL``, " +"write the number of wide characters excluding the null character into " +"``*size``" +msgstr "" + +#: ../../c-api/sys.rst:148 +msgid "" +"Return ``NULL`` on decoding error or memory allocation error. If *size* is " +"not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " +"``(size_t)-2`` on decoding error." +msgstr "" + +#: ../../c-api/sys.rst:152 ../../c-api/sys.rst:192 +msgid "" +"The :term:`filesystem encoding and error handler` are selected " +"by :c:func:`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` " +"and :c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." +msgstr "" + +#: ../../c-api/sys.rst:156 +msgid "" +"Decoding errors should never happen, unless there is a bug in the C library." +msgstr "" + +#: ../../c-api/sys.rst:159 +msgid "" +"Use the :c:func:`Py_EncodeLocale` function to encode the character string " +"back to a byte string." +msgstr "" + +#: ../../c-api/sys.rst:164 +msgid "" +"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` " +"and :c:func:`PyUnicode_DecodeLocaleAndSize` functions." +msgstr "" + +#: ../../c-api/sys.rst:169 ../../c-api/sys.rst:211 +msgid "" +"The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode " +"`." +msgstr "" + +#: ../../c-api/sys.rst:173 +msgid "" +"The function now uses the UTF-8 encoding on Windows " +"if :c:member:`PyPreConfig.legacy_windows_fs_encoding` is zero;" +msgstr "" + +#: ../../c-api/sys.rst:180 +msgid "" +"Encode a wide character string to the :term:`filesystem encoding and error " +"handler`. If the error handler is :ref:`surrogateescape error handler " +"`, surrogate characters in the range U+DC80..U+DCFF are " +"converted to bytes 0x80..0xFF." +msgstr "" + +#: ../../c-api/sys.rst:185 +msgid "" +"Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` " +"to free the memory. Return ``NULL`` on encoding error or memory allocation " +"error." +msgstr "" + +#: ../../c-api/sys.rst:189 +msgid "" +"If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " +"success, or set to the index of the invalid character on encoding error." +msgstr "" + +#: ../../c-api/sys.rst:196 +msgid "" +"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " +"to a wide character string." +msgstr "" + +#: ../../c-api/sys.rst:206 +msgid "" +"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " +"functions." +msgstr "" + +#: ../../c-api/sys.rst:215 +msgid "" +"The function now uses the UTF-8 encoding on Windows " +"if :c:member:`PyPreConfig.legacy_windows_fs_encoding` is zero." +msgstr "" + +#: ../../c-api/sys.rst:221 +msgid "" +"Similar to :c:func:`!fopen`, but *path* is a Python object and an exception " +"is set on error." +msgstr "" + +#: ../../c-api/sys.rst:224 +msgid "" +"*path* must be a :class:`str` object, a :class:`bytes` object, or " +"a :term:`path-like object`." +msgstr "" + +#: ../../c-api/sys.rst:227 +msgid "" +"On success, return the new file pointer. On error, set an exception and " +"return ``NULL``." +msgstr "" + +#: ../../c-api/sys.rst:230 +msgid "" +"The file must be closed by :c:func:`Py_fclose` rather than calling " +"directly :c:func:`!fclose`." +msgstr "" + +#: ../../c-api/sys.rst:233 +msgid "The file descriptor is created non-inheritable (:pep:`446`)." +msgstr "" + +#: ../../c-api/sys.rst:235 +msgid "The caller must have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/sys.rst:242 +msgid "Close a file that was opened by :c:func:`Py_fopen`." +msgstr "" + +#: ../../c-api/sys.rst:244 +msgid "" +"On success, return ``0``. On error, return ``EOF`` and ``errno`` is set to " +"indicate the error. In either case, any further access (including another " +"call to :c:func:`Py_fclose`) to the stream results in undefined behavior." +msgstr "" + +#: ../../c-api/sys.rst:255 +msgid "System Functions" +msgstr "" + +#: ../../c-api/sys.rst:257 +msgid "" +"These are utility functions that make functionality from the :mod:`sys` " +"module accessible to C code. They all work with the current interpreter " +"thread's :mod:`sys` module's dict, which is contained in the internal thread " +"state structure." +msgstr "" + +#: ../../c-api/sys.rst:263 +msgid "" +"Return the object *name* from the :mod:`sys` module or ``NULL`` if it does " +"not exist, without setting an exception." +msgstr "" + +#: ../../c-api/sys.rst:268 +msgid "" +"Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which " +"case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` " +"on error." +msgstr "" + +#: ../../c-api/sys.rst:274 +msgid "" +"Reset :data:`sys.warnoptions` to an empty list. This function may be called " +"prior to :c:func:`Py_Initialize`." +msgstr "" + +#: ../../c-api/sys.rst:277 +msgid "Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead." +msgstr "" + +#: ../../c-api/sys.rst:282 +msgid "" +"Write the output string described by *format* to :data:`sys.stdout`. No " +"exceptions are raised, even if truncation occurs (see below)." +msgstr "" + +#: ../../c-api/sys.rst:285 +msgid "" +"*format* should limit the total size of the formatted output string to 1000 " +"bytes or less -- after 1000 bytes, the output string is truncated. In " +"particular, this means that no unrestricted \"%s\" formats should occur; " +"these should be limited using \"%.s\" where is a decimal number " +"calculated so that plus the maximum size of other formatted text does " +"not exceed 1000 bytes. Also watch out for \"%f\", which can print hundreds " +"of digits for very large numbers." +msgstr "" + +#: ../../c-api/sys.rst:293 +msgid "" +"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " +"is written to the real (C level) *stdout*." +msgstr "" + +#: ../../c-api/sys.rst:298 +msgid "" +"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " +"instead." +msgstr "" + +#: ../../c-api/sys.rst:303 +msgid "" +"Function similar to PySys_WriteStdout() but format the message " +"using :c:func:`PyUnicode_FromFormatV` and don't truncate the message to an " +"arbitrary length." +msgstr "" + +#: ../../c-api/sys.rst:311 +msgid "" +"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " +"instead." +msgstr "" + +#: ../../c-api/sys.rst:318 +msgid "" +"Return the current dictionary of :option:`-X` options, similarly " +"to :data:`sys._xoptions`. On error, ``NULL`` is returned and an exception " +"is set." +msgstr "" + +#: ../../c-api/sys.rst:327 +msgid "" +"Raise an auditing event with any active hooks. Return zero for success and " +"non-zero with an exception set on failure." +msgstr "" + +#: ../../c-api/sys.rst:330 +msgid "The *event* string argument must not be *NULL*." +msgstr "" + +#: ../../c-api/sys.rst:332 +msgid "" +"If any hooks have been added, *format* and other arguments will be used to " +"construct a tuple to pass. Apart from ``N``, the same format characters as " +"used in :c:func:`Py_BuildValue` are available. If the built value is not a " +"tuple, it will be added into a single-element tuple." +msgstr "" + +#: ../../c-api/sys.rst:337 +msgid "" +"The ``N`` format option must not be used. It consumes a reference, but since " +"there is no way to know whether arguments to this function will be consumed, " +"using it may cause reference leaks." +msgstr "" + +#: ../../c-api/sys.rst:341 +msgid "" +"Note that ``#`` format characters should always be treated " +"as :c:type:`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was " +"defined." +msgstr "" + +#: ../../c-api/sys.rst:344 +msgid ":func:`sys.audit` performs the same function from Python code." +msgstr "" + +#: ../../c-api/sys.rst:346 +msgid "See also :c:func:`PySys_AuditTuple`." +msgstr "" + +#: ../../c-api/sys.rst:352 +msgid "" +"Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " +"unavoidable deprecation warning was raised." +msgstr "" + +#: ../../c-api/sys.rst:358 +msgid "" +"Similar to :c:func:`PySys_Audit`, but pass arguments as a Python object. " +"*args* must be a :class:`tuple`. To pass no arguments, *args* can be *NULL*." +msgstr "" + +#: ../../c-api/sys.rst:366 +msgid "" +"Append the callable *hook* to the list of active auditing hooks. Return zero " +"on success and non-zero on failure. If the runtime has been initialized, " +"also set an error on failure. Hooks added through this API are called for " +"all interpreters created by the runtime." +msgstr "" + +#: ../../c-api/sys.rst:372 +msgid "" +"The *userData* pointer is passed into the hook function. Since hook " +"functions may be called from different runtimes, this pointer should not " +"refer directly to Python state." +msgstr "" + +#: ../../c-api/sys.rst:376 +msgid "" +"This function is safe to call before :c:func:`Py_Initialize`. When called " +"after runtime initialization, existing audit hooks are notified and may " +"silently abort the operation by raising an error subclassed " +"from :class:`Exception` (other errors will not be silenced)." +msgstr "" + +#: ../../c-api/sys.rst:381 +msgid "" +"The hook function is always called with an :term:`attached thread state` by " +"the Python interpreter that raised the event." +msgstr "" + +#: ../../c-api/sys.rst:384 +msgid "" +"See :pep:`578` for a detailed description of auditing. Functions in the " +"runtime and standard library that raise events are listed in the :ref:`audit " +"events table `. Details are in each function's documentation." +msgstr "" + +#: ../../c-api/sys.rst:389 ../../c-api/sys.rst:391 +msgid "" +"If the interpreter is initialized, this function raises an auditing event " +"``sys.addaudithook`` with no arguments. If any existing hooks raise an " +"exception derived from :class:`Exception`, the new hook will not be added " +"and the exception is cleared. As a result, callers cannot assume that their " +"hook has been added unless they control all existing hooks." +msgstr "" + +#: ../../c-api/sys.rst:400 +msgid "" +"The type of the hook function. *event* is the C string event argument passed " +"to :c:func:`PySys_Audit` or :c:func:`PySys_AuditTuple`. *args* is guaranteed " +"to be a :c:type:`PyTupleObject`. *userData* is the argument passed to " +"PySys_AddAuditHook()." +msgstr "" + +#: ../../c-api/sys.rst:412 +msgid "Process Control" +msgstr "" + +#: ../../c-api/sys.rst:419 +msgid "" +"Print a fatal error message and kill the process. No cleanup is performed. " +"This function should only be invoked when a condition is detected that would " +"make it dangerous to continue using the Python interpreter; e.g., when the " +"object administration appears to be corrupted. On Unix, the standard C " +"library function :c:func:`!abort` is called which will attempt to produce " +"a :file:`core` file." +msgstr "" + +#: ../../c-api/sys.rst:426 +msgid "" +"The ``Py_FatalError()`` function is replaced with a macro which logs " +"automatically the name of the current function, unless the " +"``Py_LIMITED_API`` macro is defined." +msgstr "" + +#: ../../c-api/sys.rst:430 +msgid "Log the function name automatically." +msgstr "" + +#: ../../c-api/sys.rst:440 +msgid "" +"Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " +"the standard C library function ``exit(status)``. " +"If :c:func:`Py_FinalizeEx` indicates an error, the exit status is set to 120." +msgstr "" + +#: ../../c-api/sys.rst:444 +msgid "Errors from finalization no longer ignored." +msgstr "" + +#: ../../c-api/sys.rst:454 +msgid "" +"Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " +"cleanup function will be called with no arguments and should return no " +"value. At most 32 cleanup functions can be registered. When the " +"registration is successful, :c:func:`Py_AtExit` returns ``0``; on failure, " +"it returns ``-1``. The cleanup function registered last is called first. " +"Each cleanup function will be called at most once. Since Python's internal " +"finalization will have completed before the cleanup function, no Python APIs " +"should be called by *func*." +msgstr "" + +#: ../../c-api/sys.rst:464 +msgid ":c:func:`PyUnstable_AtExit` for passing a ``void *data`` argument." +msgstr "" + +#: ../../c-api/sys.rst:101 +msgid "USE_STACKCHECK (C macro)" +msgstr "" + +#: ../../c-api/sys.rst:417 +msgid "abort (C function)" +msgstr "" + +#: ../../c-api/sys.rst:436 ../../c-api/sys.rst:450 +msgid "Py_FinalizeEx (C function)" +msgstr "" + +#: ../../c-api/sys.rst:436 +msgid "exit (C function)" +msgstr "" + +#: ../../c-api/sys.rst:450 +msgid "cleanup functions" +msgstr "" diff --git a/c-api/time.po b/c-api/time.po new file mode 100644 index 0000000..bbfe054 --- /dev/null +++ b/c-api/time.po @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/time.rst:6 +msgid "PyTime C API" +msgstr "" + +#: ../../c-api/time.rst:10 +msgid "" +"The clock C API provides access to system clocks. It is similar to the " +"Python :mod:`time` module." +msgstr "" + +#: ../../c-api/time.rst:13 +msgid "" +"For C API related to the :mod:`datetime` module, see :ref:`datetimeobjects`." +msgstr "" + +#: ../../c-api/time.rst:17 +msgid "Types" +msgstr "" + +#: ../../c-api/time.rst:21 +msgid "" +"A timestamp or duration in nanoseconds, represented as a signed 64-bit " +"integer." +msgstr "" + +#: ../../c-api/time.rst:24 +msgid "" +"The reference point for timestamps depends on the clock used. For " +"example, :c:func:`PyTime_Time` returns timestamps relative to the UNIX epoch." +msgstr "" + +#: ../../c-api/time.rst:27 +msgid "" +"The supported range is around [-292.3 years; +292.3 years]. Using the Unix " +"epoch (January 1st, 1970) as reference, the supported date range is around " +"[1677-09-21; 2262-04-11]. The exact limits are exposed as constants:" +msgstr "" + +#: ../../c-api/time.rst:34 +msgid "Minimum value of :c:type:`PyTime_t`." +msgstr "" + +#: ../../c-api/time.rst:38 +msgid "Maximum value of :c:type:`PyTime_t`." +msgstr "" + +#: ../../c-api/time.rst:42 +msgid "Clock Functions" +msgstr "" + +#: ../../c-api/time.rst:44 +msgid "" +"The following functions take a pointer to a :c:expr:`PyTime_t` that they set " +"to the value of a particular clock. Details of each clock are given in the " +"documentation of the corresponding Python function." +msgstr "" + +#: ../../c-api/time.rst:49 +msgid "" +"The functions return ``0`` on success, or ``-1`` (with an exception set) on " +"failure." +msgstr "" + +#: ../../c-api/time.rst:52 +msgid "" +"On integer overflow, they set the :c:data:`PyExc_OverflowError` exception " +"and set ``*result`` to the value clamped to the ``[PyTime_MIN; PyTime_MAX]`` " +"range. (On current systems, integer overflows are likely caused by " +"misconfigured system time.)" +msgstr "" + +#: ../../c-api/time.rst:58 +msgid "" +"As any other C API (unless otherwise specified), the functions must be " +"called with an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/time.rst:63 +msgid "" +"Read the monotonic clock. See :func:`time.monotonic` for important details " +"on this clock." +msgstr "" + +#: ../../c-api/time.rst:68 +msgid "" +"Read the performance counter. See :func:`time.perf_counter` for important " +"details on this clock." +msgstr "" + +#: ../../c-api/time.rst:73 +msgid "" +"Read the “wall clock” time. See :func:`time.time` for details important on " +"this clock." +msgstr "" + +#: ../../c-api/time.rst:78 +msgid "Raw Clock Functions" +msgstr "" + +#: ../../c-api/time.rst:80 +msgid "" +"Similar to clock functions, but don't set an exception on error and don't " +"require the caller to have an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/time.rst:83 +msgid "On success, the functions return ``0``." +msgstr "" + +#: ../../c-api/time.rst:85 +msgid "" +"On failure, they set ``*result`` to ``0`` and return ``-1``, *without* " +"setting an exception. To get the cause of the error, :term:`attach ` a :term:`thread state`, and call the regular (non-``Raw``) " +"function. Note that the regular function may succeed after the ``Raw`` one " +"failed." +msgstr "" + +#: ../../c-api/time.rst:92 +msgid "" +"Similar to :c:func:`PyTime_Monotonic`, but don't set an exception on error " +"and don't require an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/time.rst:97 +msgid "" +"Similar to :c:func:`PyTime_PerfCounter`, but don't set an exception on error " +"and don't require an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/time.rst:102 +msgid "" +"Similar to :c:func:`PyTime_Time`, but don't set an exception on error and " +"don't require an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/time.rst:107 +msgid "Conversion functions" +msgstr "" + +#: ../../c-api/time.rst:111 +msgid "Convert a timestamp to a number of seconds as a C :c:expr:`double`." +msgstr "" + +#: ../../c-api/time.rst:113 +msgid "" +"The function cannot fail, but note that :c:expr:`double` has limited " +"accuracy for large values." +msgstr "" diff --git a/c-api/tuple.po b/c-api/tuple.po new file mode 100644 index 0000000..fae7e6f --- /dev/null +++ b/c-api/tuple.po @@ -0,0 +1,285 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/tuple.rst:6 +msgid "Tuple Objects" +msgstr "" + +#: ../../c-api/tuple.rst:13 +msgid "This subtype of :c:type:`PyObject` represents a Python tuple object." +msgstr "" + +#: ../../c-api/tuple.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python tuple type; it " +"is the same object as :class:`tuple` in the Python layer." +msgstr "" + +#: ../../c-api/tuple.rst:24 +msgid "" +"Return true if *p* is a tuple object or an instance of a subtype of the " +"tuple type. This function always succeeds." +msgstr "" + +#: ../../c-api/tuple.rst:30 +msgid "" +"Return true if *p* is a tuple object, but not an instance of a subtype of " +"the tuple type. This function always succeeds." +msgstr "" + +#: ../../c-api/tuple.rst:36 +msgid "" +"Return a new tuple object of size *len*, or ``NULL`` with an exception set " +"on failure." +msgstr "" + +#: ../../c-api/tuple.rst:42 +msgid "" +"Return a new tuple object of size *n*, or ``NULL`` with an exception set on " +"failure. The tuple values are initialized to the subsequent *n* C arguments " +"pointing to Python objects. ``PyTuple_Pack(2, a, b)`` is equivalent to " +"``Py_BuildValue(\"(OO)\", a, b)``." +msgstr "" + +#: ../../c-api/tuple.rst:50 +msgid "" +"Take a pointer to a tuple object, and return the size of that tuple. On " +"error, return ``-1`` and with an exception set." +msgstr "" + +#: ../../c-api/tuple.rst:56 +msgid "Like :c:func:`PyTuple_Size`, but without error checking." +msgstr "" + +#: ../../c-api/tuple.rst:61 +msgid "" +"Return the object at position *pos* in the tuple pointed to by *p*. If " +"*pos* is negative or out of bounds, return ``NULL`` and set " +"an :exc:`IndexError` exception." +msgstr "" + +#: ../../c-api/tuple.rst:64 +msgid "" +"The returned reference is borrowed from the tuple *p* (that is: it is only " +"valid as long as you hold a reference to *p*). To get a :term:`strong " +"reference`, use :c:func:`Py_NewRef(PyTuple_GetItem(...)) ` " +"or :c:func:`PySequence_GetItem`." +msgstr "" + +#: ../../c-api/tuple.rst:73 +msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." +msgstr "" + +#: ../../c-api/tuple.rst:78 +msgid "" +"Return the slice of the tuple pointed to by *p* between *low* and *high*, or " +"``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/tuple.rst:81 +msgid "" +"This is the equivalent of the Python expression ``p[low:high]``. Indexing " +"from the end of the tuple is not supported." +msgstr "" + +#: ../../c-api/tuple.rst:87 +msgid "" +"Insert a reference to object *o* at position *pos* of the tuple pointed to " +"by *p*. Return ``0`` on success. If *pos* is out of bounds, return ``-1`` " +"and set an :exc:`IndexError` exception." +msgstr "" + +#: ../../c-api/tuple.rst:93 +msgid "" +"This function \"steals\" a reference to *o* and discards a reference to an " +"item already in the tuple at the affected position." +msgstr "" + +#: ../../c-api/tuple.rst:99 +msgid "" +"Like :c:func:`PyTuple_SetItem`, but does no error checking, and should " +"*only* be used to fill in brand new tuples." +msgstr "" + +#: ../../c-api/tuple.rst:102 ../../c-api/tuple.rst:224 +#: ../../c-api/tuple.rst:242 +msgid "" +"Bounds checking is performed as an assertion if Python is built " +"in :ref:`debug mode ` or :option:`with assertions <--with-" +"assertions>`." +msgstr "" + +#: ../../c-api/tuple.rst:107 +msgid "" +"This function \"steals\" a reference to *o*, and, " +"unlike :c:func:`PyTuple_SetItem`, does *not* discard a reference to any item " +"that is being replaced; any reference in the tuple at position *pos* will be " +"leaked." +msgstr "" + +#: ../../c-api/tuple.rst:114 +msgid "" +"This macro should *only* be used on tuples that are newly created. Using " +"this macro on a tuple that is already in use (or in other words, has a " +"refcount > 1) could lead to undefined behavior." +msgstr "" + +#: ../../c-api/tuple.rst:121 +msgid "" +"Can be used to resize a tuple. *newsize* will be the new length of the " +"tuple. Because tuples are *supposed* to be immutable, this should only be " +"used if there is only one reference to the object. Do *not* use this if the " +"tuple may already be known to some other part of the code. The tuple will " +"always grow or shrink at the end. Think of this as destroying the old tuple " +"and creating a new one, only more efficiently. Returns ``0`` on success. " +"Client code should never assume that the resulting value of ``*p`` will be " +"the same as before calling this function. If the object referenced by ``*p`` " +"is replaced, the original ``*p`` is destroyed. On failure, returns ``-1`` " +"and sets ``*p`` to ``NULL``, and raises :exc:`MemoryError` " +"or :exc:`SystemError`." +msgstr "" + +#: ../../c-api/tuple.rst:136 +msgid "Struct Sequence Objects" +msgstr "" + +#: ../../c-api/tuple.rst:138 +msgid "" +"Struct sequence objects are the C equivalent " +"of :func:`~collections.namedtuple` objects, i.e. a sequence whose items can " +"also be accessed through attributes. To create a struct sequence, you first " +"have to create a specific struct sequence type." +msgstr "" + +#: ../../c-api/tuple.rst:145 +msgid "" +"Create a new struct sequence type from the data in *desc*, described below. " +"Instances of the resulting type can be created " +"with :c:func:`PyStructSequence_New`." +msgstr "" + +#: ../../c-api/tuple.rst:148 ../../c-api/tuple.rst:217 +msgid "Return ``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/tuple.rst:153 +msgid "Initializes a struct sequence type *type* from *desc* in place." +msgstr "" + +#: ../../c-api/tuple.rst:158 +msgid "" +"Like :c:func:`PyStructSequence_InitType`, but returns ``0`` on success and " +"``-1`` with an exception set on failure." +msgstr "" + +#: ../../c-api/tuple.rst:166 +msgid "Contains the meta information of a struct sequence type to create." +msgstr "" + +#: ../../c-api/tuple.rst:170 +msgid "" +"Fully qualified name of the type; null-terminated UTF-8 encoded. The name " +"must contain the module name." +msgstr "" + +#: ../../c-api/tuple.rst:175 +msgid "Pointer to docstring for the type or ``NULL`` to omit." +msgstr "" + +#: ../../c-api/tuple.rst:179 +msgid "Pointer to ``NULL``-terminated array with field names of the new type." +msgstr "" + +#: ../../c-api/tuple.rst:183 +msgid "Number of fields visible to the Python side (if used as tuple)." +msgstr "" + +#: ../../c-api/tuple.rst:188 +msgid "" +"Describes a field of a struct sequence. As a struct sequence is modeled as a " +"tuple, all fields are typed as :c:expr:`PyObject*`. The index in " +"the :c:member:`~PyStructSequence_Desc.fields` array of " +"the :c:type:`PyStructSequence_Desc` determines which field of the struct " +"sequence is described." +msgstr "" + +#: ../../c-api/tuple.rst:196 +msgid "" +"Name for the field or ``NULL`` to end the list of named fields, set " +"to :c:data:`PyStructSequence_UnnamedField` to leave unnamed." +msgstr "" + +#: ../../c-api/tuple.rst:201 +msgid "Field docstring or ``NULL`` to omit." +msgstr "" + +#: ../../c-api/tuple.rst:206 +msgid "Special value for a field name to leave it unnamed." +msgstr "" + +#: ../../c-api/tuple.rst:208 +msgid "The type was changed from ``char *``." +msgstr "" + +#: ../../c-api/tuple.rst:214 +msgid "" +"Creates an instance of *type*, which must have been created " +"with :c:func:`PyStructSequence_NewType`." +msgstr "" + +#: ../../c-api/tuple.rst:222 +msgid "" +"Return the object at position *pos* in the struct sequence pointed to by *p*." +msgstr "" + +#: ../../c-api/tuple.rst:230 +msgid "Alias to :c:func:`PyStructSequence_GetItem`." +msgstr "" + +#: ../../c-api/tuple.rst:232 +msgid "Now implemented as an alias to :c:func:`PyStructSequence_GetItem`." +msgstr "" + +#: ../../c-api/tuple.rst:238 +msgid "" +"Sets the field at index *pos* of the struct sequence *p* to value *o*. " +"Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " +"new instances." +msgstr "" + +#: ../../c-api/tuple.rst:247 +msgid "This function \"steals\" a reference to *o*." +msgstr "" + +#: ../../c-api/tuple.rst:252 +msgid "Alias to :c:func:`PyStructSequence_SetItem`." +msgstr "" + +#: ../../c-api/tuple.rst:254 +msgid "Now implemented as an alias to :c:func:`PyStructSequence_SetItem`." +msgstr "" + +#: ../../c-api/tuple.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/tuple.rst:8 +msgid "tuple" +msgstr "" diff --git a/c-api/type.po b/c-api/type.po new file mode 100644 index 0000000..592c620 --- /dev/null +++ b/c-api/type.po @@ -0,0 +1,796 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/type.rst:6 +msgid "Type Objects" +msgstr "" + +#: ../../c-api/type.rst:13 +msgid "The C structure of the objects used to describe built-in types." +msgstr "" + +#: ../../c-api/type.rst:18 +msgid "" +"This is the type object for type objects; it is the same object " +"as :class:`type` in the Python layer." +msgstr "" + +#: ../../c-api/type.rst:24 +msgid "" +"Return non-zero if the object *o* is a type object, including instances of " +"types derived from the standard type object. Return 0 in all other cases. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/type.rst:31 +msgid "" +"Return non-zero if the object *o* is a type object, but not a subtype of the " +"standard type object. Return 0 in all other cases. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/type.rst:38 +msgid "Clear the internal lookup cache. Return the current version tag." +msgstr "" + +#: ../../c-api/type.rst:42 +msgid "" +"Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " +"function is primarily meant for use with ``Py_LIMITED_API``; the individual " +"flag bits are guaranteed to be stable across Python releases, but access " +"to :c:member:`~PyTypeObject.tp_flags` itself is not part of " +"the :ref:`limited API `." +msgstr "" + +#: ../../c-api/type.rst:49 +msgid "The return type is now ``unsigned long`` rather than ``long``." +msgstr "" + +#: ../../c-api/type.rst:55 +msgid "" +"Return the type object's internal namespace, which is otherwise only exposed " +"via a read-only proxy (:attr:`cls.__dict__ `). This is a " +"replacement for accessing :c:member:`~PyTypeObject.tp_dict` directly. The " +"returned dictionary must be treated as read-only." +msgstr "" + +#: ../../c-api/type.rst:61 +msgid "" +"This function is meant for specific embedding and language-binding cases, " +"where direct access to the dict is necessary and indirect access (e.g. via " +"the proxy or :c:func:`PyObject_GetAttr`) isn't adequate." +msgstr "" + +#: ../../c-api/type.rst:65 +msgid "" +"Extension modules should continue to use ``tp_dict``, directly or " +"indirectly, when setting up their own types." +msgstr "" + +#: ../../c-api/type.rst:73 +msgid "" +"Invalidate the internal lookup cache for the type and all of its subtypes. " +"This function must be called after any manual modification of the attributes " +"or base classes of the type." +msgstr "" + +#: ../../c-api/type.rst:80 +msgid "" +"Register *callback* as a type watcher. Return a non-negative integer ID " +"which must be passed to future calls to :c:func:`PyType_Watch`. In case of " +"error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../../c-api/type.rst:85 +msgid "" +"In free-threaded builds, :c:func:`PyType_AddWatcher` is not thread-safe, so " +"it must be called at start up (before spawning the first thread)." +msgstr "" + +#: ../../c-api/type.rst:93 +msgid "" +"Clear watcher identified by *watcher_id* (previously returned " +"from :c:func:`PyType_AddWatcher`). Return ``0`` on success, ``-1`` on error " +"(e.g. if *watcher_id* was never registered.)" +msgstr "" + +#: ../../c-api/type.rst:97 +msgid "" +"An extension should never call ``PyType_ClearWatcher`` with a *watcher_id* " +"that was not returned to it by a previous call " +"to :c:func:`PyType_AddWatcher`." +msgstr "" + +#: ../../c-api/type.rst:106 +msgid "" +"Mark *type* as watched. The callback granted *watcher_id* " +"by :c:func:`PyType_AddWatcher` will be called " +"whenever :c:func:`PyType_Modified` reports a change to *type*. (The callback " +"may be called only once for a series of consecutive modifications to *type*, " +"if :c:func:`!_PyType_Lookup` is not called on *type* between the " +"modifications; this is an implementation detail and subject to change.)" +msgstr "" + +#: ../../c-api/type.rst:113 +msgid "" +"An extension should never call ``PyType_Watch`` with a *watcher_id* that was " +"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." +msgstr "" + +#: ../../c-api/type.rst:121 +msgid "Type of a type-watcher callback function." +msgstr "" + +#: ../../c-api/type.rst:123 +msgid "" +"The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " +"called on *type* or any type in its MRO; violating this rule could cause " +"infinite recursion." +msgstr "" + +#: ../../c-api/type.rst:132 +msgid "" +"Return non-zero if the type object *o* sets the feature *feature*. Type " +"features are denoted by single bit flags." +msgstr "" + +#: ../../c-api/type.rst:138 +msgid "" +"Return true if the type object includes support for the cycle detector; this " +"tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`." +msgstr "" + +#: ../../c-api/type.rst:144 +msgid "Return true if *a* is a subtype of *b*." +msgstr "" + +#: ../../c-api/type.rst:146 +msgid "" +"This function only checks for actual subtypes, which means " +"that :meth:`~type.__subclasscheck__` is not called on *b*. " +"Call :c:func:`PyObject_IsSubclass` to do the same check " +"that :func:`issubclass` would do." +msgstr "" + +#: ../../c-api/type.rst:154 +msgid "" +"Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " +"object. Uses Python's default memory allocation mechanism to allocate " +"memory for a new instance, zeros the memory, then initializes the memory as " +"if by calling :c:func:`PyObject_Init` or :c:func:`PyObject_InitVar`." +msgstr "" + +#: ../../c-api/type.rst:159 +msgid "" +"Do not call this directly to allocate memory for an object; call the " +"type's :c:member:`~PyTypeObject.tp_alloc` slot instead." +msgstr "" + +#: ../../c-api/type.rst:162 +msgid "" +"For types that support garbage collection (i.e., " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set), this function behaves " +"like :c:macro:`PyObject_GC_New` or :c:macro:`PyObject_GC_NewVar` (except the " +"memory is guaranteed to be zeroed before initialization), and should be " +"paired with :c:func:`PyObject_GC_Del` in :c:member:`~PyTypeObject.tp_free`. " +"Otherwise, it behaves like :c:macro:`PyObject_New` " +"or :c:macro:`PyObject_NewVar` (except the memory is guaranteed to be zeroed " +"before initialization) and should be paired with :c:func:`PyObject_Free` " +"in :c:member:`~PyTypeObject.tp_free`." +msgstr "" + +#: ../../c-api/type.rst:174 +msgid "" +"Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " +"object. Creates a new instance using the " +"type's :c:member:`~PyTypeObject.tp_alloc` slot and returns the resulting " +"object." +msgstr "" + +#: ../../c-api/type.rst:180 +msgid "" +"Finalize a type object. This should be called on all type objects to finish " +"their initialization. This function is responsible for adding inherited " +"slots from a type's base class. Return ``0`` on success, or return ``-1`` " +"and sets an exception on error." +msgstr "" + +#: ../../c-api/type.rst:186 +msgid "" +"If some of the base classes implements the GC protocol and the provided type " +"does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " +"protocol will be automatically implemented from its parents. On the " +"contrary, if the type being created does " +"include :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags then it **must** " +"implement the GC protocol itself by at least implementing " +"the :c:member:`~PyTypeObject.tp_traverse` handle." +msgstr "" + +#: ../../c-api/type.rst:196 +msgid "" +"Return the type's name. Equivalent to getting the " +"type's :attr:`~type.__name__` attribute." +msgstr "" + +#: ../../c-api/type.rst:203 +msgid "" +"Return the type's qualified name. Equivalent to getting the " +"type's :attr:`~type.__qualname__` attribute." +msgstr "" + +#: ../../c-api/type.rst:210 +msgid "" +"Return the type's fully qualified name. Equivalent to ``f\"{type.__module__}." +"{type.__qualname__}\"``, or :attr:`type.__qualname__` " +"if :attr:`type.__module__` is not a string or is equal to ``\"builtins\"``." +msgstr "" + +#: ../../c-api/type.rst:218 +msgid "" +"Return the type's module name. Equivalent to getting " +"the :attr:`type.__module__` attribute." +msgstr "" + +#: ../../c-api/type.rst:225 +msgid "" +"Return the function pointer stored in the given slot. If the result is " +"``NULL``, this indicates that either the slot is ``NULL``, or that the " +"function was called with invalid parameters. Callers will typically cast the " +"result pointer into the appropriate function type." +msgstr "" + +#: ../../c-api/type.rst:231 +msgid "" +"See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." +msgstr "" + +#: ../../c-api/type.rst:235 +msgid "" +":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " +"limited to :ref:`heap types `." +msgstr "" + +#: ../../c-api/type.rst:241 +msgid "" +"Return the module object associated with the given type when the type was " +"created using :c:func:`PyType_FromModuleAndSpec`." +msgstr "" + +#: ../../c-api/type.rst:244 ../../c-api/type.rst:264 +msgid "" +"If no module is associated with the given type, sets :py:class:`TypeError` " +"and returns ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:247 +msgid "" +"This function is usually used to get the module in which a method is " +"defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may " +"not return the intended result. ``Py_TYPE(self)`` may be a *subclass* of the " +"intended class, and subclasses are not necessarily defined in the same " +"module as their superclass. See :c:type:`PyCMethod` to get the class that " +"defines the method. See :c:func:`PyType_GetModuleByDef` for cases " +"when :c:type:`!PyCMethod` cannot be used." +msgstr "" + +#: ../../c-api/type.rst:260 +msgid "" +"Return the state of the module object associated with the given type. This " +"is a shortcut for calling :c:func:`PyModule_GetState()` on the result " +"of :c:func:`PyType_GetModule`." +msgstr "" + +#: ../../c-api/type.rst:267 +msgid "" +"If the *type* has an associated module but its state is ``NULL``, returns " +"``NULL`` without setting an exception." +msgstr "" + +#: ../../c-api/type.rst:274 +msgid "" +"Find the first superclass whose module was created from the " +"given :c:type:`PyModuleDef` *def*, and return that module." +msgstr "" + +#: ../../c-api/type.rst:277 +msgid "" +"If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:279 +msgid "" +"This function is intended to be used together " +"with :c:func:`PyModule_GetState()` to get module state from slot methods " +"(such as :c:member:`~PyTypeObject.tp_init` " +"or :c:member:`~PyNumberMethods.nb_add`) and other places where a method's " +"defining class cannot be passed using the :c:type:`PyCMethod` calling " +"convention." +msgstr "" + +#: ../../c-api/type.rst:285 +msgid "" +"The returned reference is :term:`borrowed ` from *type*, " +"and will be valid as long as you hold a reference to *type*. Do not release " +"it with :c:func:`Py_DECREF` or similar." +msgstr "" + +#: ../../c-api/type.rst:293 +msgid "" +"Find the first superclass in *type*'s :term:`method resolution order` " +"whose :c:macro:`Py_tp_token` token is equal to the given one." +msgstr "" + +#: ../../c-api/type.rst:296 +msgid "" +"If found, set *\\*result* to a new :term:`strong reference` to it and return " +"``1``." +msgstr "" + +#: ../../c-api/type.rst:298 +msgid "If not found, set *\\*result* to ``NULL`` and return ``0``." +msgstr "" + +#: ../../c-api/type.rst:299 +msgid "" +"On error, set *\\*result* to ``NULL`` and return ``-1`` with an exception " +"set." +msgstr "" + +#: ../../c-api/type.rst:302 +msgid "" +"The *result* argument may be ``NULL``, in which case *\\*result* is not set. " +"Use this if you need only the return value." +msgstr "" + +#: ../../c-api/type.rst:305 +msgid "The *token* argument may not be ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:311 +msgid "Attempt to assign a version tag to the given type." +msgstr "" + +#: ../../c-api/type.rst:313 +msgid "" +"Returns 1 if the type already had a valid version tag or a new one was " +"assigned, or 0 if a new tag could not be assigned." +msgstr "" + +#: ../../c-api/type.rst:320 +msgid "Creating Heap-Allocated Types" +msgstr "" + +#: ../../c-api/type.rst:322 +msgid "" +"The following functions and structs are used to create :ref:`heap types " +"`." +msgstr "" + +#: ../../c-api/type.rst:327 +msgid "" +"Create and return a :ref:`heap type ` from the *spec* " +"(see :c:macro:`Py_TPFLAGS_HEAPTYPE`)." +msgstr "" + +#: ../../c-api/type.rst:330 +msgid "" +"The metaclass *metaclass* is used to construct the resulting type object. " +"When *metaclass* is ``NULL``, the metaclass is derived from *bases* (or " +"*Py_tp_base[s]* slots if *bases* is ``NULL``, see below)." +msgstr "" + +#: ../../c-api/type.rst:334 +msgid "" +"Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " +"supported, except if ``tp_new`` is ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:337 +msgid "" +"The *bases* argument can be used to specify base classes; it can either be " +"only one class or a tuple of classes. If *bases* is ``NULL``, the " +"*Py_tp_bases* slot is used instead. If that also is ``NULL``, the " +"*Py_tp_base* slot is used instead. If that also is ``NULL``, the new type " +"derives from :class:`object`." +msgstr "" + +#: ../../c-api/type.rst:343 +msgid "" +"The *module* argument can be used to record the module in which the new " +"class is defined. It must be a module object or ``NULL``. If not ``NULL``, " +"the module is associated with the new type and can later be retrieved " +"with :c:func:`PyType_GetModule`. The associated module is not inherited by " +"subclasses; it must be specified for each class individually." +msgstr "" + +#: ../../c-api/type.rst:350 +msgid "This function calls :c:func:`PyType_Ready` on the new type." +msgstr "" + +#: ../../c-api/type.rst:352 +msgid "" +"Note that this function does *not* fully match the behavior of " +"calling :py:class:`type() ` or using the :keyword:`class` statement. " +"With user-provided base types or metaclasses, prefer :ref:`calling ` :py:class:`type` (or the metaclass) over ``PyType_From*`` functions. " +"Specifically:" +msgstr "" + +#: ../../c-api/type.rst:359 +msgid "" +":py:meth:`~object.__new__` is not called on the new class (and it must be " +"set to ``type.__new__``)." +msgstr "" + +#: ../../c-api/type.rst:361 +msgid ":py:meth:`~object.__init__` is not called on the new class." +msgstr "" + +#: ../../c-api/type.rst:362 +msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." +msgstr "" + +#: ../../c-api/type.rst:363 +msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." +msgstr "" + +#: ../../c-api/type.rst:369 +msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." +msgstr "" + +#: ../../c-api/type.rst:375 +msgid "" +"The function now accepts a single class as the *bases* argument and ``NULL`` " +"as the ``tp_doc`` slot." +msgstr "" + +#: ../../c-api/type.rst:380 ../../c-api/type.rst:401 +msgid "" +"The function now finds and uses a metaclass corresponding to the provided " +"base classes. Previously, only :class:`type` instances were returned." +msgstr "" + +#: ../../c-api/type.rst:383 ../../c-api/type.rst:404 ../../c-api/type.rst:424 +msgid "" +"The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " +"may result in incomplete initialization. Creating classes whose metaclass " +"overrides :c:member:`~PyTypeObject.tp_new` is deprecated." +msgstr "" + +#: ../../c-api/type.rst:390 ../../c-api/type.rst:411 ../../c-api/type.rst:431 +msgid "" +"Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " +"is no longer allowed." +msgstr "" + +#: ../../c-api/type.rst:395 +msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." +msgstr "" + +#: ../../c-api/type.rst:416 +msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." +msgstr "" + +#: ../../c-api/type.rst:420 +msgid "" +"The function now finds and uses a metaclass corresponding to the base " +"classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` " +"instances were returned." +msgstr "" + +#: ../../c-api/type.rst:436 +msgid "" +"Make a type immutable: set the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag." +msgstr "" + +#: ../../c-api/type.rst:438 +msgid "All base classes of *type* must be immutable." +msgstr "" + +#: ../../c-api/type.rst:440 +msgid "On success, return ``0``. On error, set an exception and return ``-1``." +msgstr "" + +#: ../../c-api/type.rst:443 +msgid "" +"The type must not be used before it's made immutable. For example, type " +"instances must not be created before the type is made immutable." +msgstr "" + +#: ../../c-api/type.rst:459 +msgid "Structure defining a type's behavior." +msgstr "" + +#: ../../c-api/type.rst:463 +msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." +msgstr "" + +#: ../../c-api/type.rst:467 +msgid "" +"If positive, specifies the size of the instance in bytes. It is used to " +"set :c:member:`PyTypeObject.tp_basicsize`." +msgstr "" + +#: ../../c-api/type.rst:470 +msgid "" +"If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " +"inherited." +msgstr "" + +#: ../../c-api/type.rst:473 +msgid "" +"If negative, the absolute value specifies how much space instances of the " +"class need *in addition* to the superclass. " +"Use :c:func:`PyObject_GetTypeData` to get a pointer to subclass-specific " +"memory reserved this way. For negative :c:member:`!basicsize`, Python will " +"insert padding when needed to meet :c:member:`~PyTypeObject.tp_basicsize`'s " +"alignment requirements." +msgstr "" + +#: ../../c-api/type.rst:483 +msgid "Previously, this field could not be negative." +msgstr "" + +#: ../../c-api/type.rst:487 +msgid "" +"Size of one element of a variable-size type, in bytes. Used to " +"set :c:member:`PyTypeObject.tp_itemsize`. See ``tp_itemsize`` documentation " +"for caveats." +msgstr "" + +#: ../../c-api/type.rst:491 +msgid "" +"If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " +"arbitrary variable-sized classes is dangerous, since some types use a fixed " +"offset for variable-sized memory, which can then overlap fixed-sized memory " +"used by a subclass. To help prevent mistakes, inheriting ``itemsize`` is " +"only possible in the following situations:" +msgstr "" + +#: ../../c-api/type.rst:498 +msgid "" +"The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." +msgstr "" + +#: ../../c-api/type.rst:500 +msgid "" +"The requested :c:member:`PyType_Spec.basicsize` is positive, suggesting that " +"the memory layout of the base class is known." +msgstr "" + +#: ../../c-api/type.rst:502 +msgid "" +"The requested :c:member:`PyType_Spec.basicsize` is zero, suggesting that the " +"subclass does not access the instance's memory directly." +msgstr "" + +#: ../../c-api/type.rst:505 +msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." +msgstr "" + +#: ../../c-api/type.rst:509 +msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." +msgstr "" + +#: ../../c-api/type.rst:511 +msgid "" +"If the ``Py_TPFLAGS_HEAPTYPE`` flag is not " +"set, :c:func:`PyType_FromSpecWithBases` sets it automatically." +msgstr "" + +#: ../../c-api/type.rst:516 +msgid "" +"Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " +"value ``{0, NULL}``." +msgstr "" + +#: ../../c-api/type.rst:519 +msgid "Each slot ID should be specified at most once." +msgstr "" + +#: ../../c-api/type.rst:529 +msgid "" +"Structure defining optional functionality of a type, containing a slot ID " +"and a value pointer." +msgstr "" + +#: ../../c-api/type.rst:534 +msgid "A slot ID." +msgstr "" + +#: ../../c-api/type.rst:536 +msgid "" +"Slot IDs are named like the field names of the " +"structures :c:type:`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:type:`PyMappingMethods` " +"and :c:type:`PyAsyncMethods` with an added ``Py_`` prefix. For example, use:" +msgstr "" + +#: ../../c-api/type.rst:542 +msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" +msgstr "" + +#: ../../c-api/type.rst:543 +msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" +msgstr "" + +#: ../../c-api/type.rst:544 +msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" +msgstr "" + +#: ../../c-api/type.rst:546 +msgid "" +"An additional slot is supported that does not correspond to a :c:type:`!" +"PyTypeObject` struct field:" +msgstr "" + +#: ../../c-api/type.rst:549 +msgid ":c:data:`Py_tp_token`" +msgstr "" + +#: ../../c-api/type.rst:551 +msgid "" +"The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" +msgstr "" + +#: ../../c-api/type.rst:553 +msgid "" +":c:member:`~PyTypeObject.tp_weaklistoffset` " +"(use :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" +msgstr "" + +#: ../../c-api/type.rst:555 +msgid "" +":c:member:`~PyTypeObject.tp_dictoffset` " +"(use :c:macro:`Py_TPFLAGS_MANAGED_DICT` instead if possible)" +msgstr "" + +#: ../../c-api/type.rst:557 +msgid "" +":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " +"``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" +msgstr "" + +#: ../../c-api/type.rst:561 +msgid "" +"If it is not possible to switch to a ``MANAGED`` flag (for example, for " +"vectorcall or to support Python older than 3.12), specify the offset " +"in :c:member:`Py_tp_members `. " +"See :ref:`PyMemberDef documentation ` for details." +msgstr "" + +#: ../../c-api/type.rst:567 +msgid "" +"The following internal fields cannot be set at all when creating a heap type:" +msgstr "" + +#: ../../c-api/type.rst:570 +msgid "" +":c:member:`~PyTypeObject.tp_dict`, :c:member:`~PyTypeObject.tp_mro`, :c:member:`~PyTypeObject.tp_cache`, :c:member:`~PyTypeObject.tp_subclasses`, " +"and :c:member:`~PyTypeObject.tp_weaklist`." +msgstr "" + +#: ../../c-api/type.rst:576 +msgid "" +"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " +"some platforms. To avoid issues, use the *bases* argument " +"of :c:func:`PyType_FromSpecWithBases` instead." +msgstr "" + +#: ../../c-api/type.rst:581 +msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." +msgstr "" + +#: ../../c-api/type.rst:584 +msgid "" +":c:member:`~PyBufferProcs.bf_getbuffer` " +"and :c:member:`~PyBufferProcs.bf_releasebuffer` are now available under " +"the :ref:`limited API `." +msgstr "" + +#: ../../c-api/type.rst:589 +msgid "" +"The field :c:member:`~PyTypeObject.tp_vectorcall` can now set using " +"``Py_tp_vectorcall``. See the field's documentation for details." +msgstr "" + +#: ../../c-api/type.rst:596 +msgid "" +"The desired value of the slot. In most cases, this is a pointer to a " +"function." +msgstr "" + +#: ../../c-api/type.rst:599 +msgid "*pfunc* values may not be ``NULL``, except for the following slots:" +msgstr "" + +#: ../../c-api/type.rst:601 +msgid "``Py_tp_doc``" +msgstr "``Py_tp_doc``" + +#: ../../c-api/type.rst:602 +msgid "" +":c:data:`Py_tp_token` (for clarity, prefer :c:data:`Py_TP_USE_SPEC` rather " +"than ``NULL``)" +msgstr "" + +#: ../../c-api/type.rst:607 +msgid "" +"A :c:member:`~PyType_Slot.slot` that records a static memory layout ID for a " +"class." +msgstr "" + +#: ../../c-api/type.rst:610 +msgid "" +"If the :c:type:`PyType_Spec` of the class is statically allocated, the token " +"can be set to the spec using the special value :c:data:`Py_TP_USE_SPEC`:" +msgstr "" + +#: ../../c-api/type.rst:614 +msgid "" +"static PyType_Slot foo_slots[] = {\n" +" {Py_tp_token, Py_TP_USE_SPEC}," +msgstr "" + +#: ../../c-api/type.rst:619 +msgid "It can also be set to an arbitrary pointer, but you must ensure that:" +msgstr "" + +#: ../../c-api/type.rst:621 +msgid "" +"The pointer outlives the class, so it's not reused for something else while " +"the class exists." +msgstr "" + +#: ../../c-api/type.rst:623 +msgid "" +"It \"belongs\" to the extension module where the class lives, so it will not " +"clash with other extensions." +msgstr "" + +#: ../../c-api/type.rst:626 +msgid "" +"Use :c:func:`PyType_GetBaseByToken` to check if a class's superclass has a " +"given token -- that is, check whether the memory layout is compatible." +msgstr "" + +#: ../../c-api/type.rst:629 +msgid "" +"To get the token for a given class (without considering superclasses), " +"use :c:func:`PyType_GetSlot` with ``Py_tp_token``." +msgstr "" + +#: ../../c-api/type.rst:638 +msgid "" +"Used as a value with :c:data:`Py_tp_token` to set the token to the " +"class's :c:type:`PyType_Spec`. Expands to ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:8 +msgid "object" +msgstr "" + +#: ../../c-api/type.rst:8 +msgid "type" +msgstr "" diff --git a/c-api/typehints.po b/c-api/typehints.po new file mode 100644 index 0000000..f40cfb1 --- /dev/null +++ b/c-api/typehints.po @@ -0,0 +1,71 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/typehints.rst:6 +msgid "Objects for Type Hinting" +msgstr "" + +#: ../../c-api/typehints.rst:8 +msgid "" +"Various built-in types for type hinting are provided. Currently, two types " +"exist -- :ref:`GenericAlias ` and :ref:`Union `. Only ``GenericAlias`` is exposed to C." +msgstr "" + +#: ../../c-api/typehints.rst:14 +msgid "" +"Create a :ref:`GenericAlias ` object. Equivalent to " +"calling the Python class :class:`types.GenericAlias`. The *origin* and " +"*args* arguments set the ``GenericAlias``\\ 's ``__origin__`` and " +"``__args__`` attributes respectively. *origin* should be " +"a :c:expr:`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or " +"any ``PyObject*``. If *args* passed is not a tuple, a 1-tuple is " +"automatically constructed and ``__args__`` is set to ``(args,)``. Minimal " +"checking is done for the arguments, so the function will succeed even if " +"*origin* is not a type. The ``GenericAlias``\\ 's ``__parameters__`` " +"attribute is constructed lazily from ``__args__``. On failure, an exception " +"is raised and ``NULL`` is returned." +msgstr "" + +#: ../../c-api/typehints.rst:28 +msgid "Here's an example of how to make an extension type generic::" +msgstr "" + +#: ../../c-api/typehints.rst:30 +msgid "" +"...\n" +"static PyMethodDef my_obj_methods[] = {\n" +" // Other methods.\n" +" ...\n" +" {\"__class_getitem__\", Py_GenericAlias, METH_O|METH_CLASS, \"See PEP " +"585\"}\n" +" ...\n" +"}" +msgstr "" + +#: ../../c-api/typehints.rst:38 +msgid "The data model method :meth:`~object.__class_getitem__`." +msgstr "" + +#: ../../c-api/typehints.rst:44 +msgid "" +"The C type of the object returned by :c:func:`Py_GenericAlias`. Equivalent " +"to :class:`types.GenericAlias` in Python." +msgstr "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po new file mode 100644 index 0000000..1efdac9 --- /dev/null +++ b/c-api/typeobj.po @@ -0,0 +1,4622 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/typeobj.rst:6 +msgid "Type Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:8 +msgid "" +"Perhaps one of the most important structures of the Python object system is " +"the structure that defines a new type: the :c:type:`PyTypeObject` " +"structure. Type objects can be handled using any of the ``PyObject_*`` or " +"``PyType_*`` functions, but do not offer much that's interesting to most " +"Python applications. These objects are fundamental to how objects behave, so " +"they are very important to the interpreter itself and to any extension " +"module that implements new types." +msgstr "" + +#: ../../c-api/typeobj.rst:16 +msgid "" +"Type objects are fairly large compared to most of the standard types. The " +"reason for the size is that each type object stores a large number of " +"values, mostly C function pointers, each of which implements a small part of " +"the type's functionality. The fields of the type object are examined in " +"detail in this section. The fields will be described in the order in which " +"they occur in the structure." +msgstr "" + +#: ../../c-api/typeobj.rst:23 +msgid "" +"In addition to the following quick reference, the :ref:`typedef-examples` " +"section provides at-a-glance insight into the meaning and use " +"of :c:type:`PyTypeObject`." +msgstr "" + +#: ../../c-api/typeobj.rst:29 +msgid "Quick Reference" +msgstr "" + +#: ../../c-api/typeobj.rst:34 +msgid "\"tp slots\"" +msgstr "" + +#: ../../c-api/typeobj.rst:40 +msgid "PyTypeObject Slot [#slots]_" +msgstr "" + +#: ../../c-api/typeobj.rst:40 ../../c-api/typeobj.rst:201 +msgid ":ref:`Type `" +msgstr "" + +#: ../../c-api/typeobj.rst:40 +msgid "special methods/attrs" +msgstr "" + +#: ../../c-api/typeobj.rst:40 +msgid "Info [#cols]_" +msgstr "" + +#: ../../c-api/typeobj.rst:42 +msgid "O" +msgstr "" + +#: ../../c-api/typeobj.rst:42 +msgid "T" +msgstr "" + +#: ../../c-api/typeobj.rst:42 +msgid "D" +msgstr "" + +#: ../../c-api/typeobj.rst:42 +msgid "I" +msgstr "" + +#: ../../c-api/typeobj.rst:44 +msgid " :c:member:`~PyTypeObject.tp_name`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:44 +#: ../../c-api/typeobj.rst:86 +msgid "const char *" +msgstr "" + +#: ../../c-api/typeobj.rst:44 +msgid "__name__" +msgstr "" + +#: ../../c-api/typeobj.rst:44 ../../c-api/typeobj.rst:46 +#: ../../c-api/typeobj.rst:48 ../../c-api/typeobj.rst:50 +#: ../../c-api/typeobj.rst:52 ../../c-api/typeobj.rst:62 +#: ../../c-api/typeobj.rst:70 ../../c-api/typeobj.rst:72 +#: ../../c-api/typeobj.rst:74 ../../c-api/typeobj.rst:76 +#: ../../c-api/typeobj.rst:79 ../../c-api/typeobj.rst:84 +#: ../../c-api/typeobj.rst:86 ../../c-api/typeobj.rst:88 +#: ../../c-api/typeobj.rst:90 ../../c-api/typeobj.rst:92 +#: ../../c-api/typeobj.rst:99 ../../c-api/typeobj.rst:101 +#: ../../c-api/typeobj.rst:103 ../../c-api/typeobj.rst:105 +#: ../../c-api/typeobj.rst:107 ../../c-api/typeobj.rst:109 +#: ../../c-api/typeobj.rst:111 ../../c-api/typeobj.rst:115 +#: ../../c-api/typeobj.rst:117 ../../c-api/typeobj.rst:120 +#: ../../c-api/typeobj.rst:122 ../../c-api/typeobj.rst:124 +#: ../../c-api/typeobj.rst:126 ../../c-api/typeobj.rst:128 +#: ../../c-api/typeobj.rst:130 ../../c-api/typeobj.rst:146 +msgid "X" +msgstr "" + +#: ../../c-api/typeobj.rst:46 +msgid ":c:member:`~PyTypeObject.tp_basicsize`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:46 +#: ../../c-api/typeobj.rst:48 ../../c-api/typeobj.rst:52 +#: ../../c-api/typeobj.rst:99 ../../c-api/typeobj.rst:120 +#: ../../c-api/typeobj.rst:417 +msgid ":c:type:`Py_ssize_t`" +msgstr "" + +#: ../../c-api/typeobj.rst:48 +msgid ":c:member:`~PyTypeObject.tp_itemsize`" +msgstr "" + +#: ../../c-api/typeobj.rst:50 +msgid ":c:member:`~PyTypeObject.tp_dealloc`" +msgstr "" + +#: ../../c-api/typeobj.rst:50 ../../c-api/typeobj.rst:142 +#: ../../c-api/typeobj.rst:146 ../../c-api/typeobj.rst:347 +msgid ":c:type:`destructor`" +msgstr "" + +#: ../../c-api/typeobj.rst:52 +msgid ":c:member:`~PyTypeObject.tp_vectorcall_offset`" +msgstr "" + +#: ../../c-api/typeobj.rst:54 +msgid "(:c:member:`~PyTypeObject.tp_getattr`)" +msgstr "" + +#: ../../c-api/typeobj.rst:54 ../../c-api/typeobj.rst:371 +msgid ":c:type:`getattrfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:54 ../../c-api/typeobj.rst:76 +msgid "__getattribute__, __getattr__" +msgstr "" + +#: ../../c-api/typeobj.rst:54 ../../c-api/typeobj.rst:57 +#: ../../c-api/typeobj.rst:70 ../../c-api/typeobj.rst:76 +#: ../../c-api/typeobj.rst:79 ../../c-api/typeobj.rst:88 +#: ../../c-api/typeobj.rst:90 ../../c-api/typeobj.rst:92 +msgid "G" +msgstr "" + +#: ../../c-api/typeobj.rst:57 +msgid "(:c:member:`~PyTypeObject.tp_setattr`)" +msgstr "" + +#: ../../c-api/typeobj.rst:57 ../../c-api/typeobj.rst:376 +msgid ":c:type:`setattrfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:57 ../../c-api/typeobj.rst:79 +msgid "__setattr__, __delattr__" +msgstr "" + +#: ../../c-api/typeobj.rst:60 +msgid ":c:member:`~PyTypeObject.tp_as_async`" +msgstr "" + +#: ../../c-api/typeobj.rst:60 +msgid ":c:type:`PyAsyncMethods` *" +msgstr "" + +#: ../../c-api/typeobj.rst:60 ../../c-api/typeobj.rst:64 +#: ../../c-api/typeobj.rst:66 ../../c-api/typeobj.rst:68 +#: ../../c-api/typeobj.rst:82 +msgid ":ref:`sub-slots`" +msgstr "" + +#: ../../c-api/typeobj.rst:60 ../../c-api/typeobj.rst:64 +#: ../../c-api/typeobj.rst:66 ../../c-api/typeobj.rst:68 +#: ../../c-api/typeobj.rst:82 +msgid "%" +msgstr "" + +#: ../../c-api/typeobj.rst:62 +msgid ":c:member:`~PyTypeObject.tp_repr`" +msgstr "" + +#: ../../c-api/typeobj.rst:62 ../../c-api/typeobj.rst:74 +#: ../../c-api/typeobj.rst:369 +msgid ":c:type:`reprfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:62 +msgid "__repr__" +msgstr "" + +#: ../../c-api/typeobj.rst:64 +msgid ":c:member:`~PyTypeObject.tp_as_number`" +msgstr "" + +#: ../../c-api/typeobj.rst:64 +msgid ":c:type:`PyNumberMethods` *" +msgstr "" + +#: ../../c-api/typeobj.rst:66 +msgid ":c:member:`~PyTypeObject.tp_as_sequence`" +msgstr "" + +#: ../../c-api/typeobj.rst:66 +msgid ":c:type:`PySequenceMethods` *" +msgstr "" + +#: ../../c-api/typeobj.rst:68 +msgid ":c:member:`~PyTypeObject.tp_as_mapping`" +msgstr "" + +#: ../../c-api/typeobj.rst:68 +msgid ":c:type:`PyMappingMethods` *" +msgstr "" + +#: ../../c-api/typeobj.rst:70 +msgid ":c:member:`~PyTypeObject.tp_hash`" +msgstr "" + +#: ../../c-api/typeobj.rst:70 ../../c-api/typeobj.rst:405 +msgid ":c:type:`hashfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:70 +msgid "__hash__" +msgstr "" + +#: ../../c-api/typeobj.rst:72 +msgid ":c:member:`~PyTypeObject.tp_call`" +msgstr "" + +#: ../../c-api/typeobj.rst:72 ../../c-api/typeobj.rst:237 +#: ../../c-api/typeobj.rst:240 ../../c-api/typeobj.rst:441 +msgid ":c:type:`ternaryfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:72 +msgid "__call__" +msgstr "" + +#: ../../c-api/typeobj.rst:74 +msgid ":c:member:`~PyTypeObject.tp_str`" +msgstr "" + +#: ../../c-api/typeobj.rst:74 +msgid "__str__" +msgstr "" + +#: ../../c-api/typeobj.rst:76 +msgid ":c:member:`~PyTypeObject.tp_getattro`" +msgstr "" + +#: ../../c-api/typeobj.rst:76 ../../c-api/typeobj.rst:382 +msgid ":c:type:`getattrofunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:79 +msgid ":c:member:`~PyTypeObject.tp_setattro`" +msgstr "" + +#: ../../c-api/typeobj.rst:79 ../../c-api/typeobj.rst:387 +msgid ":c:type:`setattrofunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:82 +msgid ":c:member:`~PyTypeObject.tp_as_buffer`" +msgstr "" + +#: ../../c-api/typeobj.rst:82 +msgid ":c:type:`PyBufferProcs` *" +msgstr "" + +#: ../../c-api/typeobj.rst:84 +msgid ":c:member:`~PyTypeObject.tp_flags`" +msgstr "" + +#: ../../c-api/typeobj.rst:84 +msgid "unsigned long" +msgstr "" + +#: ../../c-api/typeobj.rst:84 ../../c-api/typeobj.rst:99 +#: ../../c-api/typeobj.rst:113 ../../c-api/typeobj.rst:120 +#: ../../c-api/typeobj.rst:124 ../../c-api/typeobj.rst:126 +#: ../../c-api/typeobj.rst:128 +msgid "?" +msgstr "" + +#: ../../c-api/typeobj.rst:86 +msgid ":c:member:`~PyTypeObject.tp_doc`" +msgstr "" + +#: ../../c-api/typeobj.rst:86 +msgid "__doc__" +msgstr "" + +#: ../../c-api/typeobj.rst:88 +msgid ":c:member:`~PyTypeObject.tp_traverse`" +msgstr "" + +#: ../../c-api/typeobj.rst:88 ../../c-api/typeobj.rst:351 +msgid ":c:type:`traverseproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:90 +msgid ":c:member:`~PyTypeObject.tp_clear`" +msgstr "" + +#: ../../c-api/typeobj.rst:90 ../../c-api/typeobj.rst:130 +#: ../../c-api/typeobj.rst:248 ../../c-api/typeobj.rst:430 +msgid ":c:type:`inquiry`" +msgstr "" + +#: ../../c-api/typeobj.rst:92 +msgid ":c:member:`~PyTypeObject.tp_richcompare`" +msgstr "" + +#: ../../c-api/typeobj.rst:92 ../../c-api/typeobj.rst:407 +msgid ":c:type:`richcmpfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:92 +msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" +msgstr "" + +#: ../../c-api/typeobj.rst:99 +msgid "(:c:member:`~PyTypeObject.tp_weaklistoffset`)" +msgstr "" + +#: ../../c-api/typeobj.rst:101 +msgid ":c:member:`~PyTypeObject.tp_iter`" +msgstr "" + +#: ../../c-api/typeobj.rst:101 ../../c-api/typeobj.rst:413 +msgid ":c:type:`getiterfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:101 +msgid "__iter__" +msgstr "" + +#: ../../c-api/typeobj.rst:103 +msgid ":c:member:`~PyTypeObject.tp_iternext`" +msgstr "" + +#: ../../c-api/typeobj.rst:103 ../../c-api/typeobj.rst:415 +msgid ":c:type:`iternextfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:103 +msgid "__next__" +msgstr "" + +#: ../../c-api/typeobj.rst:105 +msgid ":c:member:`~PyTypeObject.tp_methods`" +msgstr "" + +#: ../../c-api/typeobj.rst:105 +msgid ":c:type:`PyMethodDef` []" +msgstr "" + +#: ../../c-api/typeobj.rst:107 +msgid ":c:member:`~PyTypeObject.tp_members`" +msgstr "" + +#: ../../c-api/typeobj.rst:107 +msgid ":c:type:`PyMemberDef` []" +msgstr "" + +#: ../../c-api/typeobj.rst:109 +msgid ":c:member:`~PyTypeObject.tp_getset`" +msgstr "" + +#: ../../c-api/typeobj.rst:109 +msgid ":c:type:`PyGetSetDef` []" +msgstr "" + +#: ../../c-api/typeobj.rst:111 +msgid ":c:member:`~PyTypeObject.tp_base`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:111 +msgid ":c:type:`PyTypeObject` *" +msgstr "" + +#: ../../c-api/typeobj.rst:111 +msgid "__base__" +msgstr "" + +#: ../../c-api/typeobj.rst:113 +msgid ":c:member:`~PyTypeObject.tp_dict`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:113 +#: ../../c-api/typeobj.rst:132 ../../c-api/typeobj.rst:134 +#: ../../c-api/typeobj.rst:136 ../../c-api/typeobj.rst:140 +#: ../../c-api/typeobj.rst:342 ../../c-api/typeobj.rst:347 +#: ../../c-api/typeobj.rst:357 ../../c-api/typeobj.rst:369 +#: ../../c-api/typeobj.rst:371 ../../c-api/typeobj.rst:382 +#: ../../c-api/typeobj.rst:393 ../../c-api/typeobj.rst:405 +#: ../../c-api/typeobj.rst:407 ../../c-api/typeobj.rst:413 +#: ../../c-api/typeobj.rst:415 ../../c-api/typeobj.rst:417 +#: ../../c-api/typeobj.rst:430 ../../c-api/typeobj.rst:432 +#: ../../c-api/typeobj.rst:436 ../../c-api/typeobj.rst:441 +#: ../../c-api/typeobj.rst:447 +msgid ":c:type:`PyObject` *" +msgstr "" + +#: ../../c-api/typeobj.rst:113 +msgid "__dict__" +msgstr "" + +#: ../../c-api/typeobj.rst:115 +msgid ":c:member:`~PyTypeObject.tp_descr_get`" +msgstr "" + +#: ../../c-api/typeobj.rst:115 ../../c-api/typeobj.rst:393 +msgid ":c:type:`descrgetfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:115 +msgid "__get__" +msgstr "" + +#: ../../c-api/typeobj.rst:117 +msgid ":c:member:`~PyTypeObject.tp_descr_set`" +msgstr "" + +#: ../../c-api/typeobj.rst:117 ../../c-api/typeobj.rst:399 +msgid ":c:type:`descrsetfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:117 +msgid "__set__, __delete__" +msgstr "" + +#: ../../c-api/typeobj.rst:120 +msgid "(:c:member:`~PyTypeObject.tp_dictoffset`)" +msgstr "" + +#: ../../c-api/typeobj.rst:122 +msgid ":c:member:`~PyTypeObject.tp_init`" +msgstr "" + +#: ../../c-api/typeobj.rst:122 ../../c-api/typeobj.rst:363 +msgid ":c:type:`initproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:122 +msgid "__init__" +msgstr "" + +#: ../../c-api/typeobj.rst:124 +msgid ":c:member:`~PyTypeObject.tp_alloc`" +msgstr "" + +#: ../../c-api/typeobj.rst:124 ../../c-api/typeobj.rst:342 +msgid ":c:type:`allocfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:126 +msgid ":c:member:`~PyTypeObject.tp_new`" +msgstr "" + +#: ../../c-api/typeobj.rst:126 ../../c-api/typeobj.rst:357 +msgid ":c:type:`newfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:126 +msgid "__new__" +msgstr "" + +#: ../../c-api/typeobj.rst:128 +msgid ":c:member:`~PyTypeObject.tp_free`" +msgstr "" + +#: ../../c-api/typeobj.rst:128 ../../c-api/typeobj.rst:349 +msgid ":c:type:`freefunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:130 +msgid ":c:member:`~PyTypeObject.tp_is_gc`" +msgstr "" + +#: ../../c-api/typeobj.rst:132 +msgid "<:c:member:`~PyTypeObject.tp_bases`>" +msgstr "" + +#: ../../c-api/typeobj.rst:132 +msgid "__bases__" +msgstr "" + +#: ../../c-api/typeobj.rst:132 ../../c-api/typeobj.rst:134 +msgid "~" +msgstr "" + +#: ../../c-api/typeobj.rst:134 +msgid "<:c:member:`~PyTypeObject.tp_mro`>" +msgstr "" + +#: ../../c-api/typeobj.rst:134 +msgid "__mro__" +msgstr "" + +#: ../../c-api/typeobj.rst:136 +msgid "[:c:member:`~PyTypeObject.tp_cache`]" +msgstr "" + +#: ../../c-api/typeobj.rst:138 +msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:138 +#: ../../c-api/typeobj.rst:279 ../../c-api/typeobj.rst:349 +msgid "void *" +msgstr "" + +#: ../../c-api/typeobj.rst:138 +msgid "__subclasses__" +msgstr "" + +#: ../../c-api/typeobj.rst:140 +msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" +msgstr "" + +#: ../../c-api/typeobj.rst:142 +msgid "(:c:member:`~PyTypeObject.tp_del`)" +msgstr "" + +#: ../../c-api/typeobj.rst:144 +msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" +msgstr "" + +#: ../../c-api/typeobj.rst:144 +msgid "unsigned int" +msgstr "" + +#: ../../c-api/typeobj.rst:146 +msgid ":c:member:`~PyTypeObject.tp_finalize`" +msgstr "" + +#: ../../c-api/typeobj.rst:146 +msgid "__del__" +msgstr "" + +#: ../../c-api/typeobj.rst:148 +msgid ":c:member:`~PyTypeObject.tp_vectorcall`" +msgstr "" + +#: ../../c-api/typeobj.rst:148 +msgid ":c:type:`vectorcallfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:150 +msgid "[:c:member:`~PyTypeObject.tp_watched`]" +msgstr "" + +#: ../../c-api/typeobj.rst:150 +msgid "unsigned char" +msgstr "" + +#: ../../c-api/typeobj.rst:155 +msgid "" +"**()**: A slot name in parentheses indicates it is (effectively) deprecated." +msgstr "" + +#: ../../c-api/typeobj.rst:157 +msgid "" +"**<>**: Names in angle brackets should be initially set to ``NULL`` and " +"treated as read-only." +msgstr "" + +#: ../../c-api/typeobj.rst:160 +msgid "**[]**: Names in square brackets are for internal use only." +msgstr "" + +#: ../../c-api/typeobj.rst:162 +msgid "" +"**** (as a prefix) means the field is required (must be non-``NULL``)." +msgstr "" + +#: ../../c-api/typeobj.rst:164 +msgid "Columns:" +msgstr "" + +#: ../../c-api/typeobj.rst:166 +msgid "**\"O\"**: set on :c:data:`PyBaseObject_Type`" +msgstr "" + +#: ../../c-api/typeobj.rst:168 +msgid "**\"T\"**: set on :c:data:`PyType_Type`" +msgstr "" + +#: ../../c-api/typeobj.rst:170 +msgid "**\"D\"**: default (if slot is set to ``NULL``)" +msgstr "" + +#: ../../c-api/typeobj.rst:172 +msgid "" +"X - PyType_Ready sets this value if it is NULL\n" +"~ - PyType_Ready always sets this value (it should be NULL)\n" +"? - PyType_Ready may set this value depending on other slots\n" +"\n" +"Also see the inheritance column (\"I\")." +msgstr "" + +#: ../../c-api/typeobj.rst:180 +msgid "**\"I\"**: inheritance" +msgstr "" + +#: ../../c-api/typeobj.rst:182 +msgid "" +"X - type slot is inherited via *PyType_Ready* if defined with a *NULL* " +"value\n" +"% - the slots of the sub-struct are inherited individually\n" +"G - inherited, but only in combination with other slots; see the slot's " +"description\n" +"? - it's complicated; see the slot's description" +msgstr "" + +#: ../../c-api/typeobj.rst:189 +msgid "" +"Note that some slots are effectively inherited through the normal attribute " +"lookup chain." +msgstr "" + +#: ../../c-api/typeobj.rst:195 +msgid "sub-slots" +msgstr "" + +#: ../../c-api/typeobj.rst:201 +msgid "Slot" +msgstr "" + +#: ../../c-api/typeobj.rst:201 +msgid "special methods" +msgstr "" + +#: ../../c-api/typeobj.rst:204 +msgid ":c:member:`~PyAsyncMethods.am_await`" +msgstr "" + +#: ../../c-api/typeobj.rst:204 ../../c-api/typeobj.rst:206 +#: ../../c-api/typeobj.rst:208 ../../c-api/typeobj.rst:242 +#: ../../c-api/typeobj.rst:244 ../../c-api/typeobj.rst:246 +#: ../../c-api/typeobj.rst:250 ../../c-api/typeobj.rst:277 +#: ../../c-api/typeobj.rst:281 ../../c-api/typeobj.rst:291 +#: ../../c-api/typeobj.rst:432 +msgid ":c:type:`unaryfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:204 +msgid "__await__" +msgstr "" + +#: ../../c-api/typeobj.rst:206 +msgid ":c:member:`~PyAsyncMethods.am_aiter`" +msgstr "" + +#: ../../c-api/typeobj.rst:206 +msgid "__aiter__" +msgstr "" + +#: ../../c-api/typeobj.rst:208 +msgid ":c:member:`~PyAsyncMethods.am_anext`" +msgstr "" + +#: ../../c-api/typeobj.rst:208 +msgid "__anext__" +msgstr "" + +#: ../../c-api/typeobj.rst:210 +msgid ":c:member:`~PyAsyncMethods.am_send`" +msgstr "" + +#: ../../c-api/typeobj.rst:210 +msgid ":c:type:`sendfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:214 +msgid ":c:member:`~PyNumberMethods.nb_add`" +msgstr "" + +#: ../../c-api/typeobj.rst:214 ../../c-api/typeobj.rst:217 +#: ../../c-api/typeobj.rst:219 ../../c-api/typeobj.rst:222 +#: ../../c-api/typeobj.rst:224 ../../c-api/typeobj.rst:227 +#: ../../c-api/typeobj.rst:229 ../../c-api/typeobj.rst:232 +#: ../../c-api/typeobj.rst:234 ../../c-api/typeobj.rst:252 +#: ../../c-api/typeobj.rst:255 ../../c-api/typeobj.rst:257 +#: ../../c-api/typeobj.rst:260 ../../c-api/typeobj.rst:262 +#: ../../c-api/typeobj.rst:265 ../../c-api/typeobj.rst:267 +#: ../../c-api/typeobj.rst:270 ../../c-api/typeobj.rst:272 +#: ../../c-api/typeobj.rst:275 ../../c-api/typeobj.rst:283 +#: ../../c-api/typeobj.rst:285 ../../c-api/typeobj.rst:287 +#: ../../c-api/typeobj.rst:289 ../../c-api/typeobj.rst:293 +#: ../../c-api/typeobj.rst:296 ../../c-api/typeobj.rst:302 +#: ../../c-api/typeobj.rst:311 ../../c-api/typeobj.rst:322 +#: ../../c-api/typeobj.rst:436 +msgid ":c:type:`binaryfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:214 +msgid "__add__ __radd__" +msgstr "" + +#: ../../c-api/typeobj.rst:217 +msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" +msgstr "" + +#: ../../c-api/typeobj.rst:217 ../../c-api/typeobj.rst:322 +msgid "__iadd__" +msgstr "" + +#: ../../c-api/typeobj.rst:219 +msgid ":c:member:`~PyNumberMethods.nb_subtract`" +msgstr "" + +#: ../../c-api/typeobj.rst:219 +msgid "__sub__ __rsub__" +msgstr "" + +#: ../../c-api/typeobj.rst:222 +msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" +msgstr "" + +#: ../../c-api/typeobj.rst:222 +msgid "__isub__" +msgstr "" + +#: ../../c-api/typeobj.rst:224 +msgid ":c:member:`~PyNumberMethods.nb_multiply`" +msgstr "" + +#: ../../c-api/typeobj.rst:224 +msgid "__mul__ __rmul__" +msgstr "" + +#: ../../c-api/typeobj.rst:227 +msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" +msgstr "" + +#: ../../c-api/typeobj.rst:227 ../../c-api/typeobj.rst:324 +msgid "__imul__" +msgstr "" + +#: ../../c-api/typeobj.rst:229 +msgid ":c:member:`~PyNumberMethods.nb_remainder`" +msgstr "" + +#: ../../c-api/typeobj.rst:229 +msgid "__mod__ __rmod__" +msgstr "" + +#: ../../c-api/typeobj.rst:232 +msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" +msgstr "" + +#: ../../c-api/typeobj.rst:232 +msgid "__imod__" +msgstr "" + +#: ../../c-api/typeobj.rst:234 +msgid ":c:member:`~PyNumberMethods.nb_divmod`" +msgstr "" + +#: ../../c-api/typeobj.rst:234 +msgid "__divmod__ __rdivmod__" +msgstr "" + +#: ../../c-api/typeobj.rst:237 +msgid ":c:member:`~PyNumberMethods.nb_power`" +msgstr "" + +#: ../../c-api/typeobj.rst:237 +msgid "__pow__ __rpow__" +msgstr "" + +#: ../../c-api/typeobj.rst:240 +msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" +msgstr "" + +#: ../../c-api/typeobj.rst:240 +msgid "__ipow__" +msgstr "" + +#: ../../c-api/typeobj.rst:242 +msgid ":c:member:`~PyNumberMethods.nb_negative`" +msgstr "" + +#: ../../c-api/typeobj.rst:242 +msgid "__neg__" +msgstr "" + +#: ../../c-api/typeobj.rst:244 +msgid ":c:member:`~PyNumberMethods.nb_positive`" +msgstr "" + +#: ../../c-api/typeobj.rst:244 +msgid "__pos__" +msgstr "" + +#: ../../c-api/typeobj.rst:246 +msgid ":c:member:`~PyNumberMethods.nb_absolute`" +msgstr "" + +#: ../../c-api/typeobj.rst:246 +msgid "__abs__" +msgstr "" + +#: ../../c-api/typeobj.rst:248 +msgid ":c:member:`~PyNumberMethods.nb_bool`" +msgstr "" + +#: ../../c-api/typeobj.rst:248 +msgid "__bool__" +msgstr "" + +#: ../../c-api/typeobj.rst:250 +msgid ":c:member:`~PyNumberMethods.nb_invert`" +msgstr "" + +#: ../../c-api/typeobj.rst:250 +msgid "__invert__" +msgstr "" + +#: ../../c-api/typeobj.rst:252 +msgid ":c:member:`~PyNumberMethods.nb_lshift`" +msgstr "" + +#: ../../c-api/typeobj.rst:252 +msgid "__lshift__ __rlshift__" +msgstr "" + +#: ../../c-api/typeobj.rst:255 +msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" +msgstr "" + +#: ../../c-api/typeobj.rst:255 +msgid "__ilshift__" +msgstr "" + +#: ../../c-api/typeobj.rst:257 +msgid ":c:member:`~PyNumberMethods.nb_rshift`" +msgstr "" + +#: ../../c-api/typeobj.rst:257 +msgid "__rshift__ __rrshift__" +msgstr "" + +#: ../../c-api/typeobj.rst:260 +msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" +msgstr "" + +#: ../../c-api/typeobj.rst:260 +msgid "__irshift__" +msgstr "" + +#: ../../c-api/typeobj.rst:262 +msgid ":c:member:`~PyNumberMethods.nb_and`" +msgstr "" + +#: ../../c-api/typeobj.rst:262 +msgid "__and__ __rand__" +msgstr "" + +#: ../../c-api/typeobj.rst:265 +msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" +msgstr "" + +#: ../../c-api/typeobj.rst:265 +msgid "__iand__" +msgstr "" + +#: ../../c-api/typeobj.rst:267 +msgid ":c:member:`~PyNumberMethods.nb_xor`" +msgstr "" + +#: ../../c-api/typeobj.rst:267 +msgid "__xor__ __rxor__" +msgstr "" + +#: ../../c-api/typeobj.rst:270 +msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" +msgstr "" + +#: ../../c-api/typeobj.rst:270 +msgid "__ixor__" +msgstr "" + +#: ../../c-api/typeobj.rst:272 +msgid ":c:member:`~PyNumberMethods.nb_or`" +msgstr "" + +#: ../../c-api/typeobj.rst:272 +msgid "__or__ __ror__" +msgstr "" + +#: ../../c-api/typeobj.rst:275 +msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" +msgstr "" + +#: ../../c-api/typeobj.rst:275 +msgid "__ior__" +msgstr "" + +#: ../../c-api/typeobj.rst:277 +msgid ":c:member:`~PyNumberMethods.nb_int`" +msgstr "" + +#: ../../c-api/typeobj.rst:277 +msgid "__int__" +msgstr "" + +#: ../../c-api/typeobj.rst:279 +msgid ":c:member:`~PyNumberMethods.nb_reserved`" +msgstr "" + +#: ../../c-api/typeobj.rst:281 +msgid ":c:member:`~PyNumberMethods.nb_float`" +msgstr "" + +#: ../../c-api/typeobj.rst:281 +msgid "__float__" +msgstr "" + +#: ../../c-api/typeobj.rst:283 +msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" +msgstr "" + +#: ../../c-api/typeobj.rst:283 +msgid "__floordiv__" +msgstr "" + +#: ../../c-api/typeobj.rst:285 +msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" +msgstr "" + +#: ../../c-api/typeobj.rst:285 +msgid "__ifloordiv__" +msgstr "" + +#: ../../c-api/typeobj.rst:287 +msgid ":c:member:`~PyNumberMethods.nb_true_divide`" +msgstr "" + +#: ../../c-api/typeobj.rst:287 +msgid "__truediv__" +msgstr "" + +#: ../../c-api/typeobj.rst:289 +msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" +msgstr "" + +#: ../../c-api/typeobj.rst:289 +msgid "__itruediv__" +msgstr "" + +#: ../../c-api/typeobj.rst:291 +msgid ":c:member:`~PyNumberMethods.nb_index`" +msgstr "" + +#: ../../c-api/typeobj.rst:291 +msgid "__index__" +msgstr "" + +#: ../../c-api/typeobj.rst:293 +msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" +msgstr "" + +#: ../../c-api/typeobj.rst:293 +msgid "__matmul__ __rmatmul__" +msgstr "" + +#: ../../c-api/typeobj.rst:296 +msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" +msgstr "" + +#: ../../c-api/typeobj.rst:296 +msgid "__imatmul__" +msgstr "" + +#: ../../c-api/typeobj.rst:300 +msgid ":c:member:`~PyMappingMethods.mp_length`" +msgstr "" + +#: ../../c-api/typeobj.rst:300 ../../c-api/typeobj.rst:309 +#: ../../c-api/typeobj.rst:417 +msgid ":c:type:`lenfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:300 ../../c-api/typeobj.rst:309 +msgid "__len__" +msgstr "" + +#: ../../c-api/typeobj.rst:302 +msgid ":c:member:`~PyMappingMethods.mp_subscript`" +msgstr "" + +#: ../../c-api/typeobj.rst:302 ../../c-api/typeobj.rst:315 +msgid "__getitem__" +msgstr "" + +#: ../../c-api/typeobj.rst:304 +msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" +msgstr "" + +#: ../../c-api/typeobj.rst:304 ../../c-api/typeobj.rst:463 +msgid ":c:type:`objobjargproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:304 +msgid "__setitem__, __delitem__" +msgstr "" + +#: ../../c-api/typeobj.rst:309 +msgid ":c:member:`~PySequenceMethods.sq_length`" +msgstr "" + +#: ../../c-api/typeobj.rst:311 +msgid ":c:member:`~PySequenceMethods.sq_concat`" +msgstr "" + +#: ../../c-api/typeobj.rst:311 +msgid "__add__" +msgstr "" + +#: ../../c-api/typeobj.rst:313 +msgid ":c:member:`~PySequenceMethods.sq_repeat`" +msgstr "" + +#: ../../c-api/typeobj.rst:313 ../../c-api/typeobj.rst:315 +#: ../../c-api/typeobj.rst:324 ../../c-api/typeobj.rst:447 +msgid ":c:type:`ssizeargfunc`" +msgstr "" + +#: ../../c-api/typeobj.rst:313 +msgid "__mul__" +msgstr "" + +#: ../../c-api/typeobj.rst:315 +msgid ":c:member:`~PySequenceMethods.sq_item`" +msgstr "" + +#: ../../c-api/typeobj.rst:317 +msgid ":c:member:`~PySequenceMethods.sq_ass_item`" +msgstr "" + +#: ../../c-api/typeobj.rst:317 ../../c-api/typeobj.rst:452 +msgid ":c:type:`ssizeobjargproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:317 +msgid "__setitem__ __delitem__" +msgstr "" + +#: ../../c-api/typeobj.rst:320 +msgid ":c:member:`~PySequenceMethods.sq_contains`" +msgstr "" + +#: ../../c-api/typeobj.rst:320 ../../c-api/typeobj.rst:458 +msgid ":c:type:`objobjproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:320 +msgid "__contains__" +msgstr "" + +#: ../../c-api/typeobj.rst:322 +msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" +msgstr "" + +#: ../../c-api/typeobj.rst:324 +msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" +msgstr "" + +#: ../../c-api/typeobj.rst:328 +msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" +msgstr "" + +#: ../../c-api/typeobj.rst:328 +msgid ":c:func:`getbufferproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:328 +msgid "__buffer__" +msgstr "" + +#: ../../c-api/typeobj.rst:330 +msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" +msgstr "" + +#: ../../c-api/typeobj.rst:330 +msgid ":c:func:`releasebufferproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:330 +msgid "__release_\\ buffer\\__" +msgstr "" + +#: ../../c-api/typeobj.rst:337 +msgid "slot typedefs" +msgstr "" + +#: ../../c-api/typeobj.rst:340 +msgid "typedef" +msgstr "" + +#: ../../c-api/typeobj.rst:340 +msgid "Parameter Types" +msgstr "" + +#: ../../c-api/typeobj.rst:340 +msgid "Return Type" +msgstr "" + +#: ../../c-api/typeobj.rst:347 ../../c-api/typeobj.rst:349 +#: ../../c-api/typeobj.rst:425 +msgid "void" +msgstr "" + +#: ../../c-api/typeobj.rst:0 +msgid ":c:type:`visitproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 ../../c-api/typeobj.rst:351 +#: ../../c-api/typeobj.rst:363 ../../c-api/typeobj.rst:376 +#: ../../c-api/typeobj.rst:387 ../../c-api/typeobj.rst:399 +#: ../../c-api/typeobj.rst:419 ../../c-api/typeobj.rst:430 +#: ../../c-api/typeobj.rst:452 ../../c-api/typeobj.rst:458 +#: ../../c-api/typeobj.rst:463 +msgid "int" +msgstr "" + +#: ../../c-api/typeobj.rst:405 +msgid "Py_hash_t" +msgstr "" + +#: ../../c-api/typeobj.rst:419 +msgid ":c:type:`getbufferproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:0 +msgid ":c:type:`Py_buffer` *" +msgstr "" + +#: ../../c-api/typeobj.rst:425 +msgid ":c:type:`releasebufferproc`" +msgstr "" + +#: ../../c-api/typeobj.rst:470 +msgid "See :ref:`slot-typedefs` below for more detail." +msgstr "" + +#: ../../c-api/typeobj.rst:474 +msgid "PyTypeObject Definition" +msgstr "" + +#: ../../c-api/typeobj.rst:476 +msgid "" +"The structure definition for :c:type:`PyTypeObject` can be found " +"in :file:`Include/cpython/object.h`. For convenience of reference, this " +"repeats the definition found there:" +msgstr "" + +#: ../../c-api/typeobj.rst:482 +msgid "" +"typedef struct _typeobject {\n" +" PyObject_VAR_HEAD\n" +" const char *tp_name; /* For printing, in format \".\" */\n" +" Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */\n" +"\n" +" /* Methods to implement standard operations */\n" +"\n" +" destructor tp_dealloc;\n" +" Py_ssize_t tp_vectorcall_offset;\n" +" getattrfunc tp_getattr;\n" +" setattrfunc tp_setattr;\n" +" PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)\n" +" or tp_reserved (Python 3) */\n" +" reprfunc tp_repr;\n" +"\n" +" /* Method suites for standard classes */\n" +"\n" +" PyNumberMethods *tp_as_number;\n" +" PySequenceMethods *tp_as_sequence;\n" +" PyMappingMethods *tp_as_mapping;\n" +"\n" +" /* More standard operations (here for binary compatibility) */\n" +"\n" +" hashfunc tp_hash;\n" +" ternaryfunc tp_call;\n" +" reprfunc tp_str;\n" +" getattrofunc tp_getattro;\n" +" setattrofunc tp_setattro;\n" +"\n" +" /* Functions to access object as input/output buffer */\n" +" PyBufferProcs *tp_as_buffer;\n" +"\n" +" /* Flags to define presence of optional/expanded features */\n" +" unsigned long tp_flags;\n" +"\n" +" const char *tp_doc; /* Documentation string */\n" +"\n" +" /* Assigned meaning in release 2.0 */\n" +" /* call function for all accessible objects */\n" +" traverseproc tp_traverse;\n" +"\n" +" /* delete references to contained objects */\n" +" inquiry tp_clear;\n" +"\n" +" /* Assigned meaning in release 2.1 */\n" +" /* rich comparisons */\n" +" richcmpfunc tp_richcompare;\n" +"\n" +" /* weak reference enabler */\n" +" Py_ssize_t tp_weaklistoffset;\n" +"\n" +" /* Iterators */\n" +" getiterfunc tp_iter;\n" +" iternextfunc tp_iternext;\n" +"\n" +" /* Attribute descriptor and subclassing stuff */\n" +" PyMethodDef *tp_methods;\n" +" PyMemberDef *tp_members;\n" +" PyGetSetDef *tp_getset;\n" +" // Strong reference on a heap type, borrowed reference on a static type\n" +" PyTypeObject *tp_base;\n" +" PyObject *tp_dict;\n" +" descrgetfunc tp_descr_get;\n" +" descrsetfunc tp_descr_set;\n" +" Py_ssize_t tp_dictoffset;\n" +" initproc tp_init;\n" +" allocfunc tp_alloc;\n" +" newfunc tp_new;\n" +" freefunc tp_free; /* Low-level free-memory routine */\n" +" inquiry tp_is_gc; /* For PyObject_IS_GC */\n" +" PyObject *tp_bases;\n" +" PyObject *tp_mro; /* method resolution order */\n" +" PyObject *tp_cache; /* no longer used */\n" +" void *tp_subclasses; /* for static builtin types this is an index */\n" +" PyObject *tp_weaklist; /* not used for static builtin types */\n" +" destructor tp_del;\n" +"\n" +" /* Type attribute cache version tag. Added in version 2.6.\n" +" * If zero, the cache is invalid and must be initialized.\n" +" */\n" +" unsigned int tp_version_tag;\n" +"\n" +" destructor tp_finalize;\n" +" vectorcallfunc tp_vectorcall;\n" +"\n" +" /* bitset of which type-watchers care about this type */\n" +" unsigned char tp_watched;\n" +"\n" +" /* Number of tp_version_tag values used.\n" +" * Set to _Py_ATTR_CACHE_UNUSED if the attribute cache is\n" +" * disabled for this type (e.g. due to custom MRO entries).\n" +" * Otherwise, limited to MAX_VERSIONS_PER_CLASS (defined elsewhere).\n" +" */\n" +" uint16_t tp_versions_used;\n" +"} PyTypeObject;\n" +msgstr "" + +#: ../../c-api/typeobj.rst:486 +msgid "PyObject Slots" +msgstr "" + +#: ../../c-api/typeobj.rst:488 +msgid "" +"The type object structure extends the :c:type:`PyVarObject` structure. " +"The :c:member:`~PyVarObject.ob_size` field is used for dynamic types " +"(created by :c:func:`!type_new`, usually called from a class statement). " +"Note that :c:data:`PyType_Type` (the metatype) " +"initializes :c:member:`~PyTypeObject.tp_itemsize`, which means that its " +"instances (i.e. type objects) *must* have " +"the :c:member:`~PyVarObject.ob_size` field." +msgstr "" + +#: ../../c-api/typeobj.rst:495 +msgid ":c:member:`PyObject.ob_refcnt`" +msgstr "" + +#: ../../c-api/typeobj.rst:497 +msgid "" +"The type object's reference count is initialized to ``1`` by the " +"``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type " +"objects `, the type's instances (objects " +"whose :c:member:`~PyObject.ob_type` points back to the type) do *not* count " +"as references. But for :ref:`dynamically allocated type objects `, the instances *do* count as references." +msgstr "" + +#: ../../c-api/typeobj.rst:504 ../../c-api/typeobj.rst:527 +#: ../../c-api/typeobj.rst:543 ../../c-api/typeobj.rst:587 +#: ../../c-api/typeobj.rst:665 ../../c-api/typeobj.rst:807 +#: ../../c-api/typeobj.rst:852 ../../c-api/typeobj.rst:869 +#: ../../c-api/typeobj.rst:886 ../../c-api/typeobj.rst:904 +#: ../../c-api/typeobj.rst:928 ../../c-api/typeobj.rst:945 +#: ../../c-api/typeobj.rst:957 ../../c-api/typeobj.rst:969 +#: ../../c-api/typeobj.rst:1002 ../../c-api/typeobj.rst:1024 +#: ../../c-api/typeobj.rst:1044 ../../c-api/typeobj.rst:1065 +#: ../../c-api/typeobj.rst:1091 ../../c-api/typeobj.rst:1110 +#: ../../c-api/typeobj.rst:1126 ../../c-api/typeobj.rst:1166 +#: ../../c-api/typeobj.rst:1177 ../../c-api/typeobj.rst:1187 +#: ../../c-api/typeobj.rst:1197 ../../c-api/typeobj.rst:1211 +#: ../../c-api/typeobj.rst:1229 ../../c-api/typeobj.rst:1252 +#: ../../c-api/typeobj.rst:1270 ../../c-api/typeobj.rst:1283 +#: ../../c-api/typeobj.rst:1305 ../../c-api/typeobj.rst:1349 +#: ../../c-api/typeobj.rst:1370 ../../c-api/typeobj.rst:1389 +#: ../../c-api/typeobj.rst:1419 ../../c-api/typeobj.rst:1441 +#: ../../c-api/typeobj.rst:1467 ../../c-api/typeobj.rst:1558 +#: ../../c-api/typeobj.rst:1702 ../../c-api/typeobj.rst:1767 +#: ../../c-api/typeobj.rst:1803 ../../c-api/typeobj.rst:1828 +#: ../../c-api/typeobj.rst:1851 ../../c-api/typeobj.rst:1864 +#: ../../c-api/typeobj.rst:1879 ../../c-api/typeobj.rst:1893 +#: ../../c-api/typeobj.rst:1923 ../../c-api/typeobj.rst:1955 +#: ../../c-api/typeobj.rst:1981 ../../c-api/typeobj.rst:1999 +#: ../../c-api/typeobj.rst:2028 ../../c-api/typeobj.rst:2072 +#: ../../c-api/typeobj.rst:2089 ../../c-api/typeobj.rst:2129 +#: ../../c-api/typeobj.rst:2152 ../../c-api/typeobj.rst:2190 +#: ../../c-api/typeobj.rst:2218 ../../c-api/typeobj.rst:2231 +#: ../../c-api/typeobj.rst:2241 ../../c-api/typeobj.rst:2258 +#: ../../c-api/typeobj.rst:2275 ../../c-api/typeobj.rst:2289 +#: ../../c-api/typeobj.rst:2431 ../../c-api/typeobj.rst:2489 +msgid "**Inheritance:**" +msgstr "" + +#: ../../c-api/typeobj.rst:506 ../../c-api/typeobj.rst:545 +#: ../../c-api/typeobj.rst:589 +msgid "This field is not inherited by subtypes." +msgstr "" + +#: ../../c-api/typeobj.rst:509 +msgid ":c:member:`PyObject.ob_type`" +msgstr "" + +#: ../../c-api/typeobj.rst:511 +msgid "" +"This is the type's type, in other words its metatype. It is initialized by " +"the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " +"normally be ``&PyType_Type``. However, for dynamically loadable extension " +"modules that must be usable on Windows (at least), the compiler complains " +"that this is not a valid initializer. Therefore, the convention is to pass " +"``NULL`` to the ``PyObject_HEAD_INIT`` macro and to initialize this field " +"explicitly at the start of the module's initialization function, before " +"doing anything else. This is typically done like this::" +msgstr "" + +#: ../../c-api/typeobj.rst:520 +msgid "Foo_Type.ob_type = &PyType_Type;" +msgstr "" + +#: ../../c-api/typeobj.rst:522 +msgid "" +"This should be done before any instances of the type are " +"created. :c:func:`PyType_Ready` checks if :c:member:`~PyObject.ob_type` is " +"``NULL``, and if so, initializes it to the :c:member:`~PyObject.ob_type` " +"field of the base class. :c:func:`PyType_Ready` will not change this field " +"if it is non-zero." +msgstr "" + +#: ../../c-api/typeobj.rst:529 ../../c-api/typeobj.rst:809 +#: ../../c-api/typeobj.rst:930 ../../c-api/typeobj.rst:1026 +#: ../../c-api/typeobj.rst:1046 ../../c-api/typeobj.rst:1830 +#: ../../c-api/typeobj.rst:1853 ../../c-api/typeobj.rst:1983 +#: ../../c-api/typeobj.rst:2001 ../../c-api/typeobj.rst:2074 +#: ../../c-api/typeobj.rst:2192 ../../c-api/typeobj.rst:2433 +msgid "This field is inherited by subtypes." +msgstr "" + +#: ../../c-api/typeobj.rst:533 +msgid "PyVarObject Slots" +msgstr "" + +#: ../../c-api/typeobj.rst:535 +msgid ":c:member:`PyVarObject.ob_size`" +msgstr "" + +#: ../../c-api/typeobj.rst:537 +msgid "" +"For :ref:`statically allocated type objects `, this should be " +"initialized to zero. For :ref:`dynamically allocated type objects `, this field has a special internal meaning." +msgstr "" + +#: ../../c-api/typeobj.rst:541 +msgid "This field should be accessed using the :c:func:`Py_SIZE()` macro." +msgstr "" + +#: ../../c-api/typeobj.rst:549 +msgid "PyTypeObject Slots" +msgstr "" + +#: ../../c-api/typeobj.rst:551 +msgid "" +"Each slot has a section describing inheritance. If :c:func:`PyType_Ready` " +"may set a value when the field is set to ``NULL`` then there will also be a " +"\"Default\" section. (Note that many fields set " +"on :c:data:`PyBaseObject_Type` and :c:data:`PyType_Type` effectively act as " +"defaults.)" +msgstr "" + +#: ../../c-api/typeobj.rst:558 +msgid "" +"Pointer to a NUL-terminated string containing the name of the type. For " +"types that are accessible as module globals, the string should be the full " +"module name, followed by a dot, followed by the type name; for built-in " +"types, it should be just the type name. If the module is a submodule of a " +"package, the full package name is part of the full module name. For " +"example, a type named :class:`!T` defined in module :mod:`!M` in " +"subpackage :mod:`!Q` in package :mod:`!P` should have " +"the :c:member:`~PyTypeObject.tp_name` initializer ``\"P.Q.M.T\"``." +msgstr "" + +#: ../../c-api/typeobj.rst:566 +msgid "" +"For :ref:`dynamically allocated type objects `, this should just " +"be the type name, and the module name explicitly stored in the type dict as " +"the value for key ``'__module__'``." +msgstr "" + +#: ../../c-api/typeobj.rst:571 +msgid "" +"For :ref:`statically allocated type objects `, the *tp_name* " +"field should contain a dot. Everything before the last dot is made " +"accessible as the :attr:`~type.__module__` attribute, and everything after " +"the last dot is made accessible as the :attr:`~type.__name__` attribute." +msgstr "" + +#: ../../c-api/typeobj.rst:577 +msgid "" +"If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " +"made accessible as the :attr:`~type.__name__` attribute, and " +"the :attr:`~type.__module__` attribute is undefined (unless explicitly set " +"in the dictionary, as explained above). This means your type will be " +"impossible to pickle. Additionally, it will not be listed in module " +"documentations created with pydoc." +msgstr "" + +#: ../../c-api/typeobj.rst:583 +msgid "" +"This field must not be ``NULL``. It is the only required field " +"in :c:func:`PyTypeObject` (other than " +"potentially :c:member:`~PyTypeObject.tp_itemsize`)." +msgstr "" + +#: ../../c-api/typeobj.rst:595 +msgid "" +"These fields allow calculating the size in bytes of instances of the type." +msgstr "" + +#: ../../c-api/typeobj.rst:597 +msgid "" +"There are two kinds of types: types with fixed-length instances have a " +"zero :c:member:`!tp_itemsize` field, types with variable-length instances " +"have a non-zero :c:member:`!tp_itemsize` field. For a type with fixed-" +"length instances, all instances have the same size, given in :c:member:`!" +"tp_basicsize`. (Exceptions to this rule can be made " +"using :c:func:`PyUnstable_Object_GC_NewWithExtraData`.)" +msgstr "" + +#: ../../c-api/typeobj.rst:604 +msgid "" +"For a type with variable-length instances, the instances must have " +"an :c:member:`~PyVarObject.ob_size` field, and the instance size " +"is :c:member:`!tp_basicsize` plus N times :c:member:`!tp_itemsize`, where N " +"is the \"length\" of the object." +msgstr "" + +#: ../../c-api/typeobj.rst:609 +msgid "" +"Functions like :c:func:`PyObject_NewVar` will take the value of N as an " +"argument, and store in the instance's :c:member:`~PyVarObject.ob_size` " +"field. Note that the :c:member:`~PyVarObject.ob_size` field may later be " +"used for other purposes. For example, :py:type:`int` instances use the bits " +"of :c:member:`~PyVarObject.ob_size` in an implementation-defined way; the " +"underlying storage and its size should be accessed " +"using :c:func:`PyLong_Export`." +msgstr "" + +#: ../../c-api/typeobj.rst:619 +msgid "" +"The :c:member:`~PyVarObject.ob_size` field should be accessed using " +"the :c:func:`Py_SIZE()` and :c:func:`Py_SET_SIZE()` macros." +msgstr "" + +#: ../../c-api/typeobj.rst:622 +msgid "" +"Also, the presence of an :c:member:`~PyVarObject.ob_size` field in the " +"instance layout doesn't mean that the instance structure is variable-length. " +"For example, the :py:type:`list` type has fixed-length instances, yet those " +"instances have a :c:member:`~PyVarObject.ob_size` field. (As " +"with :py:type:`int`, avoid reading lists' :c:member:`!ob_size` directly. " +"Call :c:func:`PyList_Size` instead.)" +msgstr "" + +#: ../../c-api/typeobj.rst:629 +msgid "" +"The :c:member:`!tp_basicsize` includes size needed for data of the " +"type's :c:member:`~PyTypeObject.tp_base`, plus any extra data needed by each " +"instance." +msgstr "" + +#: ../../c-api/typeobj.rst:633 +msgid "" +"The correct way to set :c:member:`!tp_basicsize` is to use the ``sizeof`` " +"operator on the struct used to declare the instance layout. This struct must " +"include the struct used to declare the base type. In other " +"words, :c:member:`!tp_basicsize` must be greater than or equal to the " +"base's :c:member:`!tp_basicsize`." +msgstr "" + +#: ../../c-api/typeobj.rst:639 +msgid "" +"Since every type is a subtype of :py:type:`object`, this struct must " +"include :c:type:`PyObject` or :c:type:`PyVarObject` (depending on " +"whether :c:member:`~PyVarObject.ob_size` should be included). These are " +"usually defined by the macro :c:macro:`PyObject_HEAD` " +"or :c:macro:`PyObject_VAR_HEAD`, respectively." +msgstr "" + +#: ../../c-api/typeobj.rst:645 +msgid "" +"The basic size does not include the GC header size, as that header is not " +"part of :c:macro:`PyObject_HEAD`." +msgstr "" + +#: ../../c-api/typeobj.rst:648 +msgid "" +"For cases where struct used to declare the base type is unknown, " +"see :c:member:`PyType_Spec.basicsize` and :c:func:`PyType_FromMetaclass`." +msgstr "" + +#: ../../c-api/typeobj.rst:651 +msgid "Notes about alignment:" +msgstr "" + +#: ../../c-api/typeobj.rst:653 +msgid "" +":c:member:`!tp_basicsize` must be a multiple of ``_Alignof(PyObject)``. When " +"using ``sizeof`` on a ``struct`` that includes :c:macro:`PyObject_HEAD`, as " +"recommended, the compiler ensures this. When not using a C ``struct``, or " +"when using compiler extensions like ``__attribute__((packed))``, it is up to " +"you." +msgstr "" + +#: ../../c-api/typeobj.rst:658 +msgid "" +"If the variable items require a particular alignment, :c:member:`!" +"tp_basicsize` and :c:member:`!tp_itemsize` must each be a multiple of that " +"alignment. For example, if a type's variable part stores a ``double``, it is " +"your responsibility that both fields are a multiple of ``_Alignof(double)``." +msgstr "" + +#: ../../c-api/typeobj.rst:667 +msgid "" +"These fields are inherited separately by subtypes. (That is, if the field is " +"set to zero, :c:func:`PyType_Ready` will copy the value from the base type, " +"indicating that the instances do not need additional storage.)" +msgstr "" + +#: ../../c-api/typeobj.rst:672 +msgid "" +"If the base type has a non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is " +"generally not safe to set :c:member:`~PyTypeObject.tp_itemsize` to a " +"different non-zero value in a subtype (though this depends on the " +"implementation of the base type)." +msgstr "" + +#: ../../c-api/typeobj.rst:679 +msgid "" +"A pointer to the instance destructor function. The function signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:681 +msgid "void tp_dealloc(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:683 +msgid "" +"The destructor function should remove all references which the instance owns " +"(e.g., call :c:func:`Py_CLEAR`), free all memory buffers owned by the " +"instance, and call the type's :c:member:`~PyTypeObject.tp_free` function to " +"free the object itself." +msgstr "" + +#: ../../c-api/typeobj.rst:688 +msgid "" +"If you may call functions that may set the error indicator, you must " +"use :c:func:`PyErr_GetRaisedException` " +"and :c:func:`PyErr_SetRaisedException` to ensure you don't clobber a " +"preexisting error indicator (the deallocation could have occurred while " +"processing a different error):" +msgstr "" + +#: ../../c-api/typeobj.rst:693 +msgid "" +"static void\n" +"foo_dealloc(foo_object *self)\n" +"{\n" +" PyObject *et, *ev, *etb;\n" +" PyObject *exc = PyErr_GetRaisedException();\n" +" ...\n" +" PyErr_SetRaisedException(exc);\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:704 +msgid "" +"The dealloc handler itself must not raise an exception; if it hits an error " +"case it should call :c:func:`PyErr_FormatUnraisable` to log (and clear) an " +"unraisable exception." +msgstr "" + +#: ../../c-api/typeobj.rst:708 +msgid "No guarantees are made about when an object is destroyed, except:" +msgstr "" + +#: ../../c-api/typeobj.rst:710 +msgid "" +"Python will destroy an object immediately or some time after the final " +"reference to the object is deleted, unless its finalizer " +"(:c:member:`~PyTypeObject.tp_finalize`) subsequently resurrects the object." +msgstr "" + +#: ../../c-api/typeobj.rst:714 +msgid "" +"An object will not be destroyed while it is being automatically finalized " +"(:c:member:`~PyTypeObject.tp_finalize`) or automatically cleared " +"(:c:member:`~PyTypeObject.tp_clear`)." +msgstr "" + +#: ../../c-api/typeobj.rst:718 +msgid "" +"CPython currently destroys an object immediately from :c:func:`Py_DECREF` " +"when the new reference count is zero, but this may change in a future " +"version." +msgstr "" + +#: ../../c-api/typeobj.rst:722 +msgid "" +"It is recommended to call :c:func:`PyObject_CallFinalizerFromDealloc` at the " +"beginning of :c:member:`!tp_dealloc` to guarantee that the object is always " +"finalized before destruction." +msgstr "" + +#: ../../c-api/typeobj.rst:726 +msgid "" +"If the type supports garbage collection (the :c:macro:`Py_TPFLAGS_HAVE_GC` " +"flag is set), the destructor should call :c:func:`PyObject_GC_UnTrack` " +"before clearing any member fields." +msgstr "" + +#: ../../c-api/typeobj.rst:730 +msgid "" +"It is permissible to call :c:member:`~PyTypeObject.tp_clear` " +"from :c:member:`!tp_dealloc` to reduce code duplication and to guarantee " +"that the object is always cleared before destruction. Beware " +"that :c:member:`!tp_clear` might have already been called." +msgstr "" + +#: ../../c-api/typeobj.rst:735 +msgid "" +"If the type is heap allocated (:c:macro:`Py_TPFLAGS_HEAPTYPE`), the " +"deallocator should release the owned reference to its type object " +"(via :c:func:`Py_DECREF`) after calling the type deallocator. See the " +"example code below.::" +msgstr "" + +#: ../../c-api/typeobj.rst:740 +msgid "" +"static void\n" +"foo_dealloc(PyObject *op)\n" +"{\n" +" foo_object *self = (foo_object *) op;\n" +" PyObject_GC_UnTrack(self);\n" +" Py_CLEAR(self->ref);\n" +" Py_TYPE(self)->tp_free(self);\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:749 +msgid "" +":c:member:`!tp_dealloc` must leave the exception status unchanged. If it " +"needs to call something that might raise an exception, the exception state " +"must be backed up first and restored later (after logging any exceptions " +"with :c:func:`PyErr_WriteUnraisable`)." +msgstr "" + +#: ../../c-api/typeobj.rst:754 +msgid "Example::" +msgstr "" + +#: ../../c-api/typeobj.rst:756 +msgid "" +"static void\n" +"foo_dealloc(PyObject *self)\n" +"{\n" +" PyObject *exc = PyErr_GetRaisedException();\n" +"\n" +" if (PyObject_CallFinalizerFromDealloc(self) < 0) {\n" +" // self was resurrected.\n" +" goto done;\n" +" }\n" +"\n" +" PyTypeObject *tp = Py_TYPE(self);\n" +"\n" +" if (tp->tp_flags & Py_TPFLAGS_HAVE_GC) {\n" +" PyObject_GC_UnTrack(self);\n" +" }\n" +"\n" +" // Optional, but convenient to avoid code duplication.\n" +" if (tp->tp_clear && tp->tp_clear(self) < 0) {\n" +" PyErr_WriteUnraisable(self);\n" +" }\n" +"\n" +" // Any additional destruction goes here.\n" +"\n" +" tp->tp_free(self);\n" +" self = NULL; // In case PyErr_WriteUnraisable() is called below.\n" +"\n" +" if (tp->tp_flags & Py_TPFLAGS_HEAPTYPE) {\n" +" Py_CLEAR(tp);\n" +" }\n" +"\n" +"done:\n" +" // Optional, if something was called that might have raised an\n" +" // exception.\n" +" if (PyErr_Occurred()) {\n" +" PyErr_WriteUnraisable(self);\n" +" }\n" +" PyErr_SetRaisedException(exc);\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:795 +msgid "" +":c:member:`!tp_dealloc` may be called from any Python thread, not just the " +"thread which created the object (if the object becomes part of a refcount " +"cycle, that cycle might be collected by a garbage collection on any " +"thread). This is not a problem for Python API calls, since the thread on " +"which :c:member:`!tp_dealloc` is called with an :term:`attached thread " +"state`. However, if the object being destroyed in turn destroys objects " +"from some other C library, care should be taken to ensure that destroying " +"those objects on the thread which called :c:member:`!tp_dealloc` will not " +"violate any assumptions of the library." +msgstr "" + +#: ../../c-api/typeobj.rst:813 ../../c-api/typeobj.rst:1713 +#: ../../c-api/typeobj.rst:2446 +msgid "" +":ref:`life-cycle` for details about how this slot relates to other slots." +msgstr "" + +#: ../../c-api/typeobj.rst:818 +msgid "" +"An optional offset to a per-instance function that implements calling the " +"object using the :ref:`vectorcall protocol `, a more efficient " +"alternative of the simpler :c:member:`~PyTypeObject.tp_call`." +msgstr "" + +#: ../../c-api/typeobj.rst:823 +msgid "" +"This field is only used if the flag :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` is " +"set. If so, this must be a positive integer containing the offset in the " +"instance of a :c:type:`vectorcallfunc` pointer." +msgstr "" + +#: ../../c-api/typeobj.rst:827 +msgid "" +"The *vectorcallfunc* pointer may be ``NULL``, in which case the instance " +"behaves as if :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " +"instance falls back to :c:member:`~PyTypeObject.tp_call`." +msgstr "" + +#: ../../c-api/typeobj.rst:831 +msgid "" +"Any class that sets ``Py_TPFLAGS_HAVE_VECTORCALL`` must also " +"set :c:member:`~PyTypeObject.tp_call` and make sure its behaviour is " +"consistent with the *vectorcallfunc* function. This can be done by setting " +"*tp_call* to :c:func:`PyVectorcall_Call`." +msgstr "" + +#: ../../c-api/typeobj.rst:838 +msgid "" +"Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was " +"used for printing to a file. In Python 3.0 to 3.7, it was unused." +msgstr "" + +#: ../../c-api/typeobj.rst:844 +msgid "" +"Before version 3.12, it was not recommended for :ref:`mutable heap types " +"` to implement the vectorcall protocol. When a user " +"sets :attr:`~object.__call__` in Python code, only *tp_call* is updated, " +"likely making it inconsistent with the vectorcall function. Since 3.12, " +"setting ``__call__`` will disable vectorcall optimization by clearing " +"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag." +msgstr "" + +#: ../../c-api/typeobj.rst:854 +msgid "" +"This field is always inherited. However, " +"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If " +"it's not set, then the subclass won't use :ref:`vectorcall `, " +"except when :c:func:`PyVectorcall_Call` is explicitly called." +msgstr "" + +#: ../../c-api/typeobj.rst:863 +msgid "An optional pointer to the get-attribute-string function." +msgstr "" + +#: ../../c-api/typeobj.rst:865 +msgid "" +"This field is deprecated. When it is defined, it should point to a function " +"that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, " +"but taking a C string instead of a Python string object to give the " +"attribute name." +msgstr "" + +#: ../../c-api/typeobj.rst:871 ../../c-api/typeobj.rst:1067 +msgid "Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject.tp_getattro`" +msgstr "" + +#: ../../c-api/typeobj.rst:873 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_getattro`: a subtype inherits " +"both :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:880 ../../c-api/typeobj.rst:1080 +msgid "" +"An optional pointer to the function for setting and deleting attributes." +msgstr "" + +#: ../../c-api/typeobj.rst:882 +msgid "" +"This field is deprecated. When it is defined, it should point to a function " +"that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, " +"but taking a C string instead of a Python string object to give the " +"attribute name." +msgstr "" + +#: ../../c-api/typeobj.rst:888 ../../c-api/typeobj.rst:1093 +msgid "Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject.tp_setattro`" +msgstr "" + +#: ../../c-api/typeobj.rst:890 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_setattro`: a subtype inherits " +"both :c:member:`~PyTypeObject.tp_setattr` " +"and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_setattr` " +"and :c:member:`~PyTypeObject.tp_setattro` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:897 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement :term:`awaitable` and :term:`asynchronous iterator` " +"protocols at the C-level. See :ref:`async-structs` for details." +msgstr "" + +#: ../../c-api/typeobj.rst:901 +msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." +msgstr "" + +#: ../../c-api/typeobj.rst:906 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../../c-api/typeobj.rst:914 +msgid "" +"An optional pointer to a function that implements the built-in " +"function :func:`repr`." +msgstr "" + +#: ../../c-api/typeobj.rst:917 +msgid "The signature is the same as for :c:func:`PyObject_Repr`::" +msgstr "" + +#: ../../c-api/typeobj.rst:919 +msgid "PyObject *tp_repr(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:921 +msgid "" +"The function must return a string or a Unicode object. Ideally, this " +"function should return a string that, when passed to :func:`eval`, given a " +"suitable environment, returns an object with the same value. If this is not " +"feasible, it should return a string starting with ``'<'`` and ending with " +"``'>'`` from which both the type and the value of the object can be deduced." +msgstr "" + +#: ../../c-api/typeobj.rst:932 ../../c-api/typeobj.rst:1011 +#: ../../c-api/typeobj.rst:1048 ../../c-api/typeobj.rst:1073 +#: ../../c-api/typeobj.rst:1099 ../../c-api/typeobj.rst:1141 +#: ../../c-api/typeobj.rst:1776 ../../c-api/typeobj.rst:1810 +#: ../../c-api/typeobj.rst:1927 ../../c-api/typeobj.rst:1960 +#: ../../c-api/typeobj.rst:2035 ../../c-api/typeobj.rst:2076 +#: ../../c-api/typeobj.rst:2096 ../../c-api/typeobj.rst:2135 +#: ../../c-api/typeobj.rst:2163 ../../c-api/typeobj.rst:2194 +msgid "**Default:**" +msgstr "" + +#: ../../c-api/typeobj.rst:934 +msgid "" +"When this field is not set, a string of the form ``<%s object at %p>`` is " +"returned, where ``%s`` is replaced by the type name, and ``%p`` by the " +"object's memory address." +msgstr "" + +#: ../../c-api/typeobj.rst:941 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the number protocol. These fields are documented " +"in :ref:`number-structs`." +msgstr "" + +#: ../../c-api/typeobj.rst:947 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../../c-api/typeobj.rst:953 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the sequence protocol. These fields are documented " +"in :ref:`sequence-structs`." +msgstr "" + +#: ../../c-api/typeobj.rst:959 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../../c-api/typeobj.rst:965 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the mapping protocol. These fields are documented " +"in :ref:`mapping-structs`." +msgstr "" + +#: ../../c-api/typeobj.rst:971 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../../c-api/typeobj.rst:979 +msgid "" +"An optional pointer to a function that implements the built-in " +"function :func:`hash`." +msgstr "" + +#: ../../c-api/typeobj.rst:982 +msgid "The signature is the same as for :c:func:`PyObject_Hash`::" +msgstr "" + +#: ../../c-api/typeobj.rst:984 +msgid "Py_hash_t tp_hash(PyObject *);" +msgstr "" + +#: ../../c-api/typeobj.rst:986 +msgid "" +"The value ``-1`` should not be returned as a normal return value; when an " +"error occurs during the computation of the hash value, the function should " +"set an exception and return ``-1``." +msgstr "" + +#: ../../c-api/typeobj.rst:990 +msgid "" +"When this field is not set (*and* :c:member:`~PyTypeObject.tp_richcompare` " +"is not set), an attempt to take the hash of the object " +"raises :exc:`TypeError`. This is the same as setting it " +"to :c:func:`PyObject_HashNotImplemented`." +msgstr "" + +#: ../../c-api/typeobj.rst:994 +msgid "" +"This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to " +"block inheritance of the hash method from a parent type. This is interpreted " +"as the equivalent of ``__hash__ = None`` at the Python level, causing " +"``isinstance(o, collections.Hashable)`` to correctly return ``False``. Note " +"that the converse is also true - setting ``__hash__ = None`` on a class at " +"the Python level will result in the ``tp_hash`` slot being set " +"to :c:func:`PyObject_HashNotImplemented`." +msgstr "" + +#: ../../c-api/typeobj.rst:1004 ../../c-api/typeobj.rst:1769 +msgid "Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject.tp_richcompare`" +msgstr "" + +#: ../../c-api/typeobj.rst:1006 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_richcompare`: a subtype inherits both " +"of :c:member:`~PyTypeObject.tp_richcompare` " +"and :c:member:`~PyTypeObject.tp_hash`, when the " +"subtype's :c:member:`~PyTypeObject.tp_richcompare` " +"and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:1013 +msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericHash`." +msgstr "" + +#: ../../c-api/typeobj.rst:1018 +msgid "" +"An optional pointer to a function that implements calling the object. This " +"should be ``NULL`` if the object is not callable. The signature is the same " +"as for :c:func:`PyObject_Call`::" +msgstr "" + +#: ../../c-api/typeobj.rst:1022 +msgid "PyObject *tp_call(PyObject *self, PyObject *args, PyObject *kwargs);" +msgstr "" + +#: ../../c-api/typeobj.rst:1031 +msgid "" +"An optional pointer to a function that implements the built-in " +"operation :func:`str`. (Note that :class:`str` is a type now, " +"and :func:`str` calls the constructor for that type. This constructor " +"calls :c:func:`PyObject_Str` to do the actual work, " +"and :c:func:`PyObject_Str` will call this handler.)" +msgstr "" + +#: ../../c-api/typeobj.rst:1036 +msgid "The signature is the same as for :c:func:`PyObject_Str`::" +msgstr "" + +#: ../../c-api/typeobj.rst:1038 +msgid "PyObject *tp_str(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:1040 +msgid "" +"The function must return a string or a Unicode object. It should be a " +"\"friendly\" string representation of the object, as this is the " +"representation that will be used, among other things, by the :func:`print` " +"function." +msgstr "" + +#: ../../c-api/typeobj.rst:1050 +msgid "" +"When this field is not set, :c:func:`PyObject_Repr` is called to return a " +"string representation." +msgstr "" + +#: ../../c-api/typeobj.rst:1056 +msgid "An optional pointer to the get-attribute function." +msgstr "" + +#: ../../c-api/typeobj.rst:1058 +msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" +msgstr "" + +#: ../../c-api/typeobj.rst:1060 +msgid "PyObject *tp_getattro(PyObject *self, PyObject *attr);" +msgstr "" + +#: ../../c-api/typeobj.rst:1062 +msgid "" +"It is usually convenient to set this field " +"to :c:func:`PyObject_GenericGetAttr`, which implements the normal way of " +"looking for object attributes." +msgstr "" + +#: ../../c-api/typeobj.rst:1069 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_getattr`: a subtype inherits " +"both :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:1075 +msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." +msgstr "" + +#: ../../c-api/typeobj.rst:1082 +msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" +msgstr "" + +#: ../../c-api/typeobj.rst:1084 +msgid "int tp_setattro(PyObject *self, PyObject *attr, PyObject *value);" +msgstr "" + +#: ../../c-api/typeobj.rst:1086 +msgid "" +"In addition, setting *value* to ``NULL`` to delete an attribute must be " +"supported. It is usually convenient to set this field " +"to :c:func:`PyObject_GenericSetAttr`, which implements the normal way of " +"setting object attributes." +msgstr "" + +#: ../../c-api/typeobj.rst:1095 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_setattr`: a subtype inherits " +"both :c:member:`~PyTypeObject.tp_setattr` " +"and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_setattr` " +"and :c:member:`~PyTypeObject.tp_setattro` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:1101 +msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." +msgstr "" + +#: ../../c-api/typeobj.rst:1106 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the buffer interface. These fields are documented " +"in :ref:`buffer-structs`." +msgstr "" + +#: ../../c-api/typeobj.rst:1112 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../../c-api/typeobj.rst:1118 +msgid "" +"This field is a bit mask of various flags. Some flags indicate variant " +"semantics for certain situations; others are used to indicate that certain " +"fields in the type object (or in the extension structures referenced " +"via :c:member:`~PyTypeObject.tp_as_number`, :c:member:`~PyTypeObject.tp_as_sequence`, :c:member:`~PyTypeObject.tp_as_mapping`, " +"and :c:member:`~PyTypeObject.tp_as_buffer`) that were historically not " +"always present are valid; if such a flag bit is clear, the type fields it " +"guards must not be accessed and must be considered to have a zero or " +"``NULL`` value instead." +msgstr "" + +#: ../../c-api/typeobj.rst:1128 +msgid "" +"Inheritance of this field is complicated. Most flag bits are inherited " +"individually, i.e. if the base type has a flag bit set, the subtype inherits " +"this flag bit. The flag bits that pertain to extension structures are " +"strictly inherited if the extension structure is inherited, i.e. the base " +"type's value of the flag bit is copied into the subtype together with a " +"pointer to the extension structure. The :c:macro:`Py_TPFLAGS_HAVE_GC` flag " +"bit is inherited together with the :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and " +"the :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields in the subtype exist and have " +"``NULL`` values." +msgstr "" + +#: ../../c-api/typeobj.rst:1143 +msgid "" +":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " +"Py_TPFLAGS_BASETYPE``." +msgstr "" + +#: ../../c-api/typeobj.rst:1146 +msgid "**Bit Masks:**" +msgstr "" + +#: ../../c-api/typeobj.rst:1150 +msgid "" +"The following bit masks are currently defined; these can be ORed together " +"using the ``|`` operator to form the value of " +"the :c:member:`~PyTypeObject.tp_flags` field. The " +"macro :c:func:`PyType_HasFeature` takes a type and a flags value, *tp* and " +"*f*, and checks whether ``tp->tp_flags & f`` is non-zero." +msgstr "" + +#: ../../c-api/typeobj.rst:1157 +msgid "" +"This bit is set when the type object itself is allocated on the heap, for " +"example, types created dynamically using :c:func:`PyType_FromSpec`. In this " +"case, the :c:member:`~PyObject.ob_type` field of its instances is considered " +"a reference to the type, and the type object is INCREF'ed when a new " +"instance is created, and DECREF'ed when an instance is destroyed (this does " +"not apply to instances of subtypes; only the type referenced by the " +"instance's ob_type gets INCREF'ed or DECREF'ed). Heap types should " +"also :ref:`support garbage collection ` as they " +"can form a reference cycle with their own module object." +msgstr "" + +#: ../../c-api/typeobj.rst:1168 ../../c-api/typeobj.rst:1179 +#: ../../c-api/typeobj.rst:1189 ../../c-api/typeobj.rst:1199 +#: ../../c-api/typeobj.rst:1231 +msgid "???" +msgstr "" + +#: ../../c-api/typeobj.rst:1173 +msgid "" +"This bit is set when the type can be used as the base type of another type. " +"If this bit is clear, the type cannot be subtyped (similar to a \"final\" " +"class in Java)." +msgstr "" + +#: ../../c-api/typeobj.rst:1184 +msgid "" +"This bit is set when the type object has been fully initialized " +"by :c:func:`PyType_Ready`." +msgstr "" + +#: ../../c-api/typeobj.rst:1194 +msgid "" +"This bit is set while :c:func:`PyType_Ready` is in the process of " +"initializing the type object." +msgstr "" + +#: ../../c-api/typeobj.rst:1204 +msgid "" +"This bit is set when the object supports garbage collection. If this bit is " +"set, memory for new instances (see :c:member:`~PyTypeObject.tp_alloc`) must " +"be allocated using :c:macro:`PyObject_GC_New` " +"or :c:func:`PyType_GenericAlloc` and deallocated " +"(see :c:member:`~PyTypeObject.tp_free`) using :c:func:`PyObject_GC_Del`. " +"More information in section :ref:`supporting-cycle-detection`." +msgstr "" + +#: ../../c-api/typeobj.rst:1213 ../../c-api/typeobj.rst:1560 +#: ../../c-api/typeobj.rst:1704 +msgid "Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject.tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" +msgstr "" + +#: ../../c-api/typeobj.rst:1215 +msgid "" +"The :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with " +"the :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and " +"the :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields in the subtype exist and have " +"``NULL`` values." +msgstr "" + +#: ../../c-api/typeobj.rst:1225 +msgid "" +"This is a bitmask of all the bits that pertain to the existence of certain " +"fields in the type object and its extension structures. Currently, it " +"includes the following bits: :c:macro:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." +msgstr "" + +#: ../../c-api/typeobj.rst:1236 +msgid "This bit indicates that objects behave like unbound methods." +msgstr "" + +#: ../../c-api/typeobj.rst:1238 +msgid "If this flag is set for ``type(meth)``, then:" +msgstr "" + +#: ../../c-api/typeobj.rst:1240 +msgid "" +"``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " +"equivalent to ``meth(obj, *args, **kwds)``." +msgstr "" + +#: ../../c-api/typeobj.rst:1243 +msgid "" +"``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " +"``meth(*args, **kwds)``." +msgstr "" + +#: ../../c-api/typeobj.rst:1246 +msgid "" +"This flag enables an optimization for typical method calls like " +"``obj.meth()``: it avoids creating a temporary \"bound method\" object for " +"``obj.meth``." +msgstr "" + +#: ../../c-api/typeobj.rst:1254 +msgid "" +"This flag is never inherited by types without " +"the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag set. For extension types, it " +"is inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:1260 +msgid "" +"This bit indicates that instances of the class have " +"a :attr:`~object.__dict__` attribute, and that the space for the dictionary " +"is managed by the VM." +msgstr "" + +#: ../../c-api/typeobj.rst:1263 +msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." +msgstr "" + +#: ../../c-api/typeobj.rst:1265 +msgid "" +"The type traverse function must call :c:func:`PyObject_VisitManagedDict` and " +"its clear function must call :c:func:`PyObject_ClearManagedDict`." +msgstr "" + +#: ../../c-api/typeobj.rst:1272 +msgid "" +"This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " +"field is set in a superclass." +msgstr "" + +#: ../../c-api/typeobj.rst:1278 +msgid "" +"This bit indicates that instances of the class should be weakly " +"referenceable." +msgstr "" + +#: ../../c-api/typeobj.rst:1285 +msgid "" +"This flag is inherited unless " +"the :c:member:`~PyTypeObject.tp_weaklistoffset` field is set in a superclass." +msgstr "" + +#: ../../c-api/typeobj.rst:1291 +msgid "" +"Only usable with variable-size types, i.e. ones with non-" +"zero :c:member:`~PyTypeObject.tp_itemsize`." +msgstr "" + +#: ../../c-api/typeobj.rst:1294 +msgid "" +"Indicates that the variable-sized portion of an instance of this type is at " +"the end of the instance's memory area, at an offset of ``Py_TYPE(obj)-" +">tp_basicsize`` (which may be different in each subclass)." +msgstr "" + +#: ../../c-api/typeobj.rst:1299 +msgid "" +"When setting this flag, be sure that all superclasses either use this memory " +"layout, or are not variable-sized. Python does not check this." +msgstr "" + +#: ../../c-api/typeobj.rst:1307 +msgid "This flag is inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:1321 +msgid "" +"These flags are used by functions such as :c:func:`PyLong_Check` to quickly " +"determine if a type is a subclass of a built-in type; such specific checks " +"are faster than a generic check, like :c:func:`PyObject_IsInstance`. Custom " +"types that inherit from built-ins should have " +"their :c:member:`~PyTypeObject.tp_flags` set appropriately, or the code that " +"interacts with such types will behave differently depending on what kind of " +"check is used." +msgstr "" + +#: ../../c-api/typeobj.rst:1332 +msgid "" +"This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " +"present in the type structure." +msgstr "" + +#: ../../c-api/typeobj.rst:1337 +msgid "" +"This flag isn't necessary anymore, as the interpreter assumes " +"the :c:member:`~PyTypeObject.tp_finalize` slot is always present in the type " +"structure." +msgstr "" + +#: ../../c-api/typeobj.rst:1345 +msgid "" +"This bit is set when the class implements the :ref:`vectorcall protocol " +"`. See :c:member:`~PyTypeObject.tp_vectorcall_offset` for " +"details." +msgstr "" + +#: ../../c-api/typeobj.rst:1351 +msgid "" +"This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:1358 +msgid "" +"This flag is now removed from a class when the " +"class's :py:meth:`~object.__call__` method is reassigned." +msgstr "" + +#: ../../c-api/typeobj.rst:1361 +msgid "This flag can now be inherited by mutable classes." +msgstr "" + +#: ../../c-api/typeobj.rst:1365 +msgid "" +"This bit is set for type objects that are immutable: type attributes cannot " +"be set nor deleted." +msgstr "" + +#: ../../c-api/typeobj.rst:1367 +msgid "" +":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " +"`." +msgstr "" + +#: ../../c-api/typeobj.rst:1372 +msgid "This flag is not inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:1378 +msgid "" +"Disallow creating instances of the type: " +"set :c:member:`~PyTypeObject.tp_new` to NULL and don't create the " +"``__new__`` key in the type dictionary." +msgstr "" + +#: ../../c-api/typeobj.rst:1382 +msgid "" +"The flag must be set before creating the type, not after. For example, it " +"must be set before :c:func:`PyType_Ready` is called on the type." +msgstr "" + +#: ../../c-api/typeobj.rst:1385 +msgid "" +"The flag is set automatically on :ref:`static types ` " +"if :c:member:`~PyTypeObject.tp_base` is NULL or ``&PyBaseObject_Type`` " +"and :c:member:`~PyTypeObject.tp_new` is NULL." +msgstr "" + +#: ../../c-api/typeobj.rst:1391 +msgid "" +"This flag is not inherited. However, subclasses will not be instantiable " +"unless they provide a non-NULL :c:member:`~PyTypeObject.tp_new` (which is " +"only possible via the C API)." +msgstr "" + +#: ../../c-api/typeobj.rst:1398 +msgid "" +"To disallow instantiating a class directly but allow instantiating its " +"subclasses (e.g. for an :term:`abstract base class`), do not use this flag. " +"Instead, make :c:member:`~PyTypeObject.tp_new` only succeed for subclasses." +msgstr "" + +#: ../../c-api/typeobj.rst:1409 +msgid "" +"This bit indicates that instances of the class may match mapping patterns " +"when used as the subject of a :keyword:`match` block. It is automatically " +"set when registering or subclassing :class:`collections.abc.Mapping`, and " +"unset when registering :class:`collections.abc.Sequence`." +msgstr "" + +#: ../../c-api/typeobj.rst:1416 ../../c-api/typeobj.rst:1438 +msgid "" +":c:macro:`Py_TPFLAGS_MAPPING` and :c:macro:`Py_TPFLAGS_SEQUENCE` are " +"mutually exclusive; it is an error to enable both flags simultaneously." +msgstr "" + +#: ../../c-api/typeobj.rst:1421 +msgid "" +"This flag is inherited by types that do not already " +"set :c:macro:`Py_TPFLAGS_SEQUENCE`." +msgstr "" + +#: ../../c-api/typeobj.rst:1424 ../../c-api/typeobj.rst:1446 +msgid ":pep:`634` -- Structural Pattern Matching: Specification" +msgstr "" + +#: ../../c-api/typeobj.rst:1431 +msgid "" +"This bit indicates that instances of the class may match sequence patterns " +"when used as the subject of a :keyword:`match` block. It is automatically " +"set when registering or subclassing :class:`collections.abc.Sequence`, and " +"unset when registering :class:`collections.abc.Mapping`." +msgstr "" + +#: ../../c-api/typeobj.rst:1443 +msgid "" +"This flag is inherited by types that do not already " +"set :c:macro:`Py_TPFLAGS_MAPPING`." +msgstr "" + +#: ../../c-api/typeobj.rst:1453 +msgid "" +"Internal. Do not set or unset this flag. To indicate that a class has " +"changed call :c:func:`PyType_Modified`" +msgstr "" + +#: ../../c-api/typeobj.rst:1457 +msgid "" +"This flag is present in header files, but is not be used. It will be removed " +"in a future version of CPython" +msgstr "" + +#: ../../c-api/typeobj.rst:1463 +msgid "" +"An optional pointer to a NUL-terminated C string giving the docstring for " +"this type object. This is exposed as the :attr:`~type.__doc__` attribute on " +"the type and instances of the type." +msgstr "" + +#: ../../c-api/typeobj.rst:1469 +msgid "This field is *not* inherited by subtypes." +msgstr "" + +#: ../../c-api/typeobj.rst:1474 +msgid "" +"An optional pointer to a traversal function for the garbage collector. This " +"is only used if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " +"signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:1477 +msgid "int tp_traverse(PyObject *self, visitproc visit, void *arg);" +msgstr "" + +#: ../../c-api/typeobj.rst:1479 ../../c-api/typeobj.rst:1699 +msgid "" +"More information about Python's garbage collection scheme can be found in " +"section :ref:`supporting-cycle-detection`." +msgstr "" + +#: ../../c-api/typeobj.rst:1482 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " +"collector to detect reference cycles. A typical implementation of " +"a :c:member:`~PyTypeObject.tp_traverse` function simply " +"calls :c:func:`Py_VISIT` on each of the instance's members that are Python " +"objects that the instance owns. For example, this is function :c:func:`!" +"local_traverse` from the :mod:`!_thread` extension module::" +msgstr "" + +#: ../../c-api/typeobj.rst:1488 +msgid "" +"static int\n" +"local_traverse(PyObject *op, visitproc visit, void *arg)\n" +"{\n" +" localobject *self = (localobject *) op;\n" +" Py_VISIT(self->args);\n" +" Py_VISIT(self->kw);\n" +" Py_VISIT(self->dict);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:1498 +msgid "" +"Note that :c:func:`Py_VISIT` is called only on those members that can " +"participate in reference cycles. Although there is also a ``self->key`` " +"member, it can only be ``NULL`` or a Python string and therefore cannot be " +"part of a reference cycle." +msgstr "" + +#: ../../c-api/typeobj.rst:1502 +msgid "" +"On the other hand, even if you know a member can never be part of a cycle, " +"as a debugging aid you may want to visit it anyway just so the :mod:`gc` " +"module's :func:`~gc.get_referents` function will include it." +msgstr "" + +#: ../../c-api/typeobj.rst:1506 +msgid "" +"Heap types (:c:macro:`Py_TPFLAGS_HEAPTYPE`) must visit their type with::" +msgstr "" + +#: ../../c-api/typeobj.rst:1508 +msgid "Py_VISIT(Py_TYPE(self));" +msgstr "" + +#: ../../c-api/typeobj.rst:1510 +msgid "" +"It is only needed since Python 3.9. To support Python 3.8 and older, this " +"line must be conditional::" +msgstr "" + +#: ../../c-api/typeobj.rst:1513 +msgid "" +"#if PY_VERSION_HEX >= 0x03090000\n" +" Py_VISIT(Py_TYPE(self));\n" +"#endif" +msgstr "" + +#: ../../c-api/typeobj.rst:1517 +msgid "" +"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " +"the :c:member:`~PyTypeObject.tp_flags` field, the traverse function must " +"call :c:func:`PyObject_VisitManagedDict` like this::" +msgstr "" + +#: ../../c-api/typeobj.rst:1521 +msgid "PyObject_VisitManagedDict((PyObject*)self, visit, arg);" +msgstr "" + +#: ../../c-api/typeobj.rst:1524 +msgid "" +"When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " +"that the instance *owns* (by having :term:`strong references ` to them) must be visited. For instance, if an object supports " +"weak references via the :c:member:`~PyTypeObject.tp_weaklist` slot, the " +"pointer supporting the linked list (what *tp_weaklist* points to) must " +"**not** be visited as the instance does not directly own the weak references " +"to itself (the weakreference list is there to support the weak reference " +"machinery, but the instance has no strong reference to the elements inside " +"it, as they are allowed to be removed even if the instance is still alive)." +msgstr "" + +#: ../../c-api/typeobj.rst:1535 +msgid "" +"Note that :c:func:`Py_VISIT` requires the *visit* and *arg* parameters " +"to :c:func:`!local_traverse` to have these specific names; don't name them " +"just anything." +msgstr "" + +#: ../../c-api/typeobj.rst:1539 +msgid "" +"Instances of :ref:`heap-allocated types ` hold a reference to " +"their type. Their traversal function must therefore either " +"visit :c:func:`Py_TYPE(self) `, or delegate this responsibility by " +"calling ``tp_traverse`` of another heap-allocated type (such as a heap-" +"allocated superclass). If they do not, the type object may not be garbage-" +"collected." +msgstr "" + +#: ../../c-api/typeobj.rst:1548 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` function can be called from any " +"thread." +msgstr "" + +#: ../../c-api/typeobj.rst:1553 +msgid "" +"Heap-allocated types are expected to visit ``Py_TYPE(self)`` in " +"``tp_traverse``. In earlier versions of Python, due to `bug 40217 `_, doing this may lead to crashes in subclasses." +msgstr "" + +#: ../../c-api/typeobj.rst:1562 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_clear` and " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag " +"bit, :c:member:`~PyTypeObject.tp_traverse`, " +"and :c:member:`~PyTypeObject.tp_clear` are all inherited from the base type " +"if they are all zero in the subtype." +msgstr "" + +#: ../../c-api/typeobj.rst:1570 +msgid "An optional pointer to a clear function. The signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:1572 +msgid "int tp_clear(PyObject *);" +msgstr "" + +#: ../../c-api/typeobj.rst:1574 +msgid "" +"The purpose of this function is to break reference cycles that are causing " +"a :term:`cyclic isolate` so that the objects can be safely destroyed. A " +"cleared object is a partially destroyed object; the object is not obligated " +"to satisfy design invariants held during normal use." +msgstr "" + +#: ../../c-api/typeobj.rst:1579 +msgid "" +":c:member:`!tp_clear` does not need to delete references to objects that " +"can't participate in reference cycles, such as Python strings or Python " +"integers. However, it may be convenient to clear all references, and write " +"the type's :c:member:`~PyTypeObject.tp_dealloc` function to " +"invoke :c:member:`!tp_clear` to avoid code duplication. (Beware " +"that :c:member:`!tp_clear` might have already been called. Prefer calling " +"idempotent functions like :c:func:`Py_CLEAR`.)" +msgstr "" + +#: ../../c-api/typeobj.rst:1587 +msgid "" +"Any non-trivial cleanup should be performed " +"in :c:member:`~PyTypeObject.tp_finalize` instead of :c:member:`!tp_clear`." +msgstr "" + +#: ../../c-api/typeobj.rst:1592 +msgid "" +"If :c:member:`!tp_clear` fails to break a reference cycle then the objects " +"in the :term:`cyclic isolate` may remain indefinitely uncollectable " +"(\"leak\"). See :data:`gc.garbage`." +msgstr "" + +#: ../../c-api/typeobj.rst:1598 +msgid "" +"Referents (direct and indirect) might have already been cleared; they are " +"not guaranteed to be in a consistent state." +msgstr "" + +#: ../../c-api/typeobj.rst:1603 +msgid "" +"The :c:member:`~PyTypeObject.tp_clear` function can be called from any " +"thread." +msgstr "" + +#: ../../c-api/typeobj.rst:1608 +msgid "" +"An object is not guaranteed to be automatically cleared before its " +"destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called." +msgstr "" + +#: ../../c-api/typeobj.rst:1611 +msgid "" +"This function differs from the destructor " +"(:c:member:`~PyTypeObject.tp_dealloc`) in the following ways:" +msgstr "" + +#: ../../c-api/typeobj.rst:1614 +msgid "" +"The purpose of clearing an object is to remove references to other objects " +"that might participate in a reference cycle. The purpose of the destructor, " +"on the other hand, is a superset: it must release *all* resources it owns, " +"including references to objects that cannot participate in a reference cycle " +"(e.g., integers) as well as the object's own memory (by " +"calling :c:member:`~PyTypeObject.tp_free`)." +msgstr "" + +#: ../../c-api/typeobj.rst:1620 +msgid "" +"When :c:member:`!tp_clear` is called, other objects might still hold " +"references to the object being cleared. Because of this, :c:member:`!" +"tp_clear` must not deallocate the object's own memory " +"(:c:member:`~PyTypeObject.tp_free`). The destructor, on the other hand, is " +"only called when no (strong) references exist, and as such, must safely " +"destroy the object itself by deallocating it." +msgstr "" + +#: ../../c-api/typeobj.rst:1626 +msgid "" +":c:member:`!tp_clear` might never be automatically called. An object's " +"destructor, on the other hand, will be automatically called some time after " +"the object becomes unreachable (i.e., either there are no references to the " +"object or the object is a member of a :term:`cyclic isolate`)." +msgstr "" + +#: ../../c-api/typeobj.rst:1631 +msgid "" +"No guarantees are made about when, if, or how often Python automatically " +"clears an object, except:" +msgstr "" + +#: ../../c-api/typeobj.rst:1634 +msgid "" +"Python will not automatically clear an object if it is reachable, i.e., " +"there is a reference to it and it is not a member of a :term:`cyclic " +"isolate`." +msgstr "" + +#: ../../c-api/typeobj.rst:1637 +msgid "" +"Python will not automatically clear an object if it has not been " +"automatically finalized (see :c:member:`~PyTypeObject.tp_finalize`). (If " +"the finalizer resurrected the object, the object may or may not be " +"automatically finalized again before it is cleared.)" +msgstr "" + +#: ../../c-api/typeobj.rst:1641 +msgid "" +"If an object is a member of a :term:`cyclic isolate`, Python will not " +"automatically clear it if any member of the cyclic isolate has not yet been " +"automatically finalized (:c:member:`~PyTypeObject.tp_finalize`)." +msgstr "" + +#: ../../c-api/typeobj.rst:1644 +msgid "" +"Python will not destroy an object until after any automatic calls to " +"its :c:member:`!tp_clear` function have returned. This ensures that the act " +"of breaking a reference cycle does not invalidate the ``self`` pointer " +"while :c:member:`!tp_clear` is still executing." +msgstr "" + +#: ../../c-api/typeobj.rst:1648 +msgid "" +"Python will not automatically call :c:member:`!tp_clear` multiple times " +"concurrently." +msgstr "" + +#: ../../c-api/typeobj.rst:1651 +msgid "" +"CPython currently only automatically clears objects as needed to break " +"reference cycles in a :term:`cyclic isolate`, but future versions might " +"clear objects regularly before their destruction." +msgstr "" + +#: ../../c-api/typeobj.rst:1655 +msgid "" +"Taken together, all :c:member:`~PyTypeObject.tp_clear` functions in the " +"system must combine to break all reference cycles. This is subtle, and if " +"in any doubt supply a :c:member:`~PyTypeObject.tp_clear` function. For " +"example, the tuple type does not implement " +"a :c:member:`~PyTypeObject.tp_clear` function, because it's possible to " +"prove that no reference cycle can be composed entirely of tuples. Therefore " +"the :c:member:`~PyTypeObject.tp_clear` functions of other types are " +"responsible for breaking any cycle containing a tuple. This isn't " +"immediately obvious, and there's rarely a good reason to avoid " +"implementing :c:member:`~PyTypeObject.tp_clear`." +msgstr "" + +#: ../../c-api/typeobj.rst:1666 +msgid "" +"Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " +"instance's references to those of its members that may be Python objects, " +"and set its pointers to those members to ``NULL``, as in the following " +"example::" +msgstr "" + +#: ../../c-api/typeobj.rst:1670 +msgid "" +"static int\n" +"local_clear(PyObject *op)\n" +"{\n" +" localobject *self = (localobject *) op;\n" +" Py_CLEAR(self->key);\n" +" Py_CLEAR(self->args);\n" +" Py_CLEAR(self->kw);\n" +" Py_CLEAR(self->dict);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:1681 +msgid "" +"The :c:func:`Py_CLEAR` macro should be used, because clearing references is " +"delicate: the reference to the contained object must not be released " +"(via :c:func:`Py_DECREF`) until after the pointer to the contained object is " +"set to ``NULL``. This is because releasing the reference may cause the " +"contained object to become trash, triggering a chain of reclamation activity " +"that may include invoking arbitrary Python code (due to finalizers, or " +"weakref callbacks, associated with the contained object). If it's possible " +"for such code to reference *self* again, it's important that the pointer to " +"the contained object be ``NULL`` at that time, so that *self* knows the " +"contained object can no longer be used. The :c:func:`Py_CLEAR` macro " +"performs the operations in a safe order." +msgstr "" + +#: ../../c-api/typeobj.rst:1693 +msgid "" +"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " +"the :c:member:`~PyTypeObject.tp_flags` field, the traverse function must " +"call :c:func:`PyObject_ClearManagedDict` like this::" +msgstr "" + +#: ../../c-api/typeobj.rst:1697 +msgid "PyObject_ClearManagedDict((PyObject*)self);" +msgstr "" + +#: ../../c-api/typeobj.rst:1706 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_traverse` and " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag " +"bit, :c:member:`~PyTypeObject.tp_traverse`, " +"and :c:member:`~PyTypeObject.tp_clear` are all inherited from the base type " +"if they are all zero in the subtype." +msgstr "" + +#: ../../c-api/typeobj.rst:1718 +msgid "" +"An optional pointer to the rich comparison function, whose signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:1720 +msgid "PyObject *tp_richcompare(PyObject *self, PyObject *other, int op);" +msgstr "" + +#: ../../c-api/typeobj.rst:1722 +msgid "" +"The first parameter is guaranteed to be an instance of the type that is " +"defined by :c:type:`PyTypeObject`." +msgstr "" + +#: ../../c-api/typeobj.rst:1725 +msgid "" +"The function should return the result of the comparison (usually ``Py_True`` " +"or ``Py_False``). If the comparison is undefined, it must return " +"``Py_NotImplemented``, if another error occurred it must return ``NULL`` and " +"set an exception condition." +msgstr "" + +#: ../../c-api/typeobj.rst:1730 +msgid "" +"The following constants are defined to be used as the third argument " +"for :c:member:`~PyTypeObject.tp_richcompare` and " +"for :c:func:`PyObject_RichCompare`:" +msgstr "" + +#: ../../c-api/typeobj.rst:1736 +msgid "Constant" +msgstr "" + +#: ../../c-api/typeobj.rst:1736 +msgid "Comparison" +msgstr "" + +#: ../../c-api/typeobj.rst:1738 +msgid "``<``" +msgstr "``<``" + +#: ../../c-api/typeobj.rst:1740 +msgid "``<=``" +msgstr "``<=``" + +#: ../../c-api/typeobj.rst:1742 +msgid "``==``" +msgstr "``==``" + +#: ../../c-api/typeobj.rst:1744 +msgid "``!=``" +msgstr "``!=``" + +#: ../../c-api/typeobj.rst:1746 +msgid "``>``" +msgstr "``>``" + +#: ../../c-api/typeobj.rst:1748 +msgid "``>=``" +msgstr "``>=``" + +#: ../../c-api/typeobj.rst:1751 +msgid "" +"The following macro is defined to ease writing rich comparison functions:" +msgstr "" + +#: ../../c-api/typeobj.rst:1755 +msgid "" +"Return ``Py_True`` or ``Py_False`` from the function, depending on the " +"result of a comparison. VAL_A and VAL_B must be orderable by C comparison " +"operators (for example, they may be C ints or floats). The third argument " +"specifies the requested operation, as for :c:func:`PyObject_RichCompare`." +msgstr "" + +#: ../../c-api/typeobj.rst:1761 +msgid "The returned value is a new :term:`strong reference`." +msgstr "" + +#: ../../c-api/typeobj.rst:1763 +msgid "On error, sets an exception and returns ``NULL`` from the function." +msgstr "" + +#: ../../c-api/typeobj.rst:1771 +msgid "" +"This field is inherited by subtypes together " +"with :c:member:`~PyTypeObject.tp_hash`: a subtype " +"inherits :c:member:`~PyTypeObject.tp_richcompare` " +"and :c:member:`~PyTypeObject.tp_hash` when the " +"subtype's :c:member:`~PyTypeObject.tp_richcompare` " +"and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:1778 +msgid "" +":c:data:`PyBaseObject_Type` provides " +"a :c:member:`~PyTypeObject.tp_richcompare` implementation, which may be " +"inherited. However, if only :c:member:`~PyTypeObject.tp_hash` is defined, " +"not even the inherited function is used and instances of the type will not " +"be able to participate in any comparisons." +msgstr "" + +#: ../../c-api/typeobj.rst:1787 +msgid "" +"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` " +"should be used instead, if at all possible." +msgstr "" + +#: ../../c-api/typeobj.rst:1790 +msgid "" +"If the instances of this type are weakly referenceable, this field is " +"greater than zero and contains the offset in the instance structure of the " +"weak reference list head (ignoring the GC header, if present); this offset " +"is used by :c:func:`PyObject_ClearWeakRefs` and the ``PyWeakref_*`` " +"functions. The instance structure needs to include a field of " +"type :c:expr:`PyObject*` which is initialized to ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:1797 +msgid "" +"Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " +"is the list head for weak references to the type object itself." +msgstr "" + +#: ../../c-api/typeobj.rst:1800 +msgid "" +"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit " +"and :c:member:`~PyTypeObject.tp_weaklistoffset`." +msgstr "" + +#: ../../c-api/typeobj.rst:1805 +msgid "" +"This field is inherited by subtypes, but see the rules listed below. A " +"subtype may override this offset; this means that the subtype uses a " +"different weak reference list head than the base type. Since the list head " +"is always found via :c:member:`~PyTypeObject.tp_weaklistoffset`, this should " +"not be a problem." +msgstr "" + +#: ../../c-api/typeobj.rst:1812 +msgid "" +"If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in " +"the :c:member:`~PyTypeObject.tp_flags` field, " +"then :c:member:`~PyTypeObject.tp_weaklistoffset` will be set to a negative " +"value, to indicate that it is unsafe to use this field." +msgstr "" + +#: ../../c-api/typeobj.rst:1820 +msgid "" +"An optional pointer to a function that returns an :term:`iterator` for the " +"object. Its presence normally signals that the instances of this type " +"are :term:`iterable` (although sequences may be iterable without this " +"function)." +msgstr "" + +#: ../../c-api/typeobj.rst:1824 +msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" +msgstr "" + +#: ../../c-api/typeobj.rst:1826 +msgid "PyObject *tp_iter(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:1835 +msgid "" +"An optional pointer to a function that returns the next item in " +"an :term:`iterator`. The signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:1838 +msgid "PyObject *tp_iternext(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:1840 +msgid "" +"When the iterator is exhausted, it must return ``NULL``; " +"a :exc:`StopIteration` exception may or may not be set. When another error " +"occurs, it must return ``NULL`` too. Its presence signals that the " +"instances of this type are iterators." +msgstr "" + +#: ../../c-api/typeobj.rst:1845 +msgid "" +"Iterator types should also define the :c:member:`~PyTypeObject.tp_iter` " +"function, and that function should return the iterator instance itself (not " +"a new iterator instance)." +msgstr "" + +#: ../../c-api/typeobj.rst:1849 +msgid "This function has the same signature as :c:func:`PyIter_Next`." +msgstr "" + +#: ../../c-api/typeobj.rst:1858 +msgid "" +"An optional pointer to a static ``NULL``-terminated array " +"of :c:type:`PyMethodDef` structures, declaring regular methods of this type." +msgstr "" + +#: ../../c-api/typeobj.rst:1861 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." +msgstr "" + +#: ../../c-api/typeobj.rst:1866 +msgid "" +"This field is not inherited by subtypes (methods are inherited through a " +"different mechanism)." +msgstr "" + +#: ../../c-api/typeobj.rst:1872 +msgid "" +"An optional pointer to a static ``NULL``-terminated array " +"of :c:type:`PyMemberDef` structures, declaring regular data members (fields " +"or slots) of instances of this type." +msgstr "" + +#: ../../c-api/typeobj.rst:1876 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." +msgstr "" + +#: ../../c-api/typeobj.rst:1881 +msgid "" +"This field is not inherited by subtypes (members are inherited through a " +"different mechanism)." +msgstr "" + +#: ../../c-api/typeobj.rst:1887 +msgid "" +"An optional pointer to a static ``NULL``-terminated array " +"of :c:type:`PyGetSetDef` structures, declaring computed attributes of " +"instances of this type." +msgstr "" + +#: ../../c-api/typeobj.rst:1890 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." +msgstr "" + +#: ../../c-api/typeobj.rst:1895 +msgid "" +"This field is not inherited by subtypes (computed attributes are inherited " +"through a different mechanism)." +msgstr "" + +#: ../../c-api/typeobj.rst:1901 +msgid "" +"An optional pointer to a base type from which type properties are " +"inherited. At this level, only single inheritance is supported; multiple " +"inheritance require dynamically creating a type object by calling the " +"metatype." +msgstr "" + +#: ../../c-api/typeobj.rst:1909 +msgid "" +"Slot initialization is subject to the rules of initializing globals. C99 " +"requires the initializers to be \"address constants\". Function designators " +"like :c:func:`PyType_GenericNew`, with implicit conversion to a pointer, are " +"valid C99 address constants." +msgstr "" + +#: ../../c-api/typeobj.rst:1914 +msgid "" +"However, the unary '&' operator applied to a non-static variable " +"like :c:data:`PyBaseObject_Type` is not required to produce an address " +"constant. Compilers may support this (gcc does), MSVC does not. Both " +"compilers are strictly standard conforming in this particular behavior." +msgstr "" + +#: ../../c-api/typeobj.rst:1920 +msgid "" +"Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " +"extension module's init function." +msgstr "" + +#: ../../c-api/typeobj.rst:1925 +msgid "This field is not inherited by subtypes (obviously)." +msgstr "" + +#: ../../c-api/typeobj.rst:1929 +msgid "" +"This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " +"is known as the type :class:`object`)." +msgstr "" + +#: ../../c-api/typeobj.rst:1935 +msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." +msgstr "" + +#: ../../c-api/typeobj.rst:1937 +msgid "" +"This field should normally be initialized to ``NULL`` before PyType_Ready is " +"called; it may also be initialized to a dictionary containing initial " +"attributes for the type. Once :c:func:`PyType_Ready` has initialized the " +"type, extra attributes for the type may be added to this dictionary only if " +"they don't correspond to overloaded operations " +"(like :meth:`~object.__add__`). Once initialization for the type has " +"finished, this field should be treated as read-only." +msgstr "" + +#: ../../c-api/typeobj.rst:1945 +msgid "" +"Some types may not store their dictionary in this slot. " +"Use :c:func:`PyType_GetDict` to retrieve the dictionary for an arbitrary " +"type." +msgstr "" + +#: ../../c-api/typeobj.rst:1951 +msgid "" +"Internals detail: For static builtin types, this is always ``NULL``. " +"Instead, the dict for such types is stored on ``PyInterpreterState``. " +"Use :c:func:`PyType_GetDict` to get the dict for an arbitrary type." +msgstr "" + +#: ../../c-api/typeobj.rst:1957 +msgid "" +"This field is not inherited by subtypes (though the attributes defined in " +"here are inherited through a different mechanism)." +msgstr "" + +#: ../../c-api/typeobj.rst:1962 +msgid "" +"If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " +"dictionary to it." +msgstr "" + +#: ../../c-api/typeobj.rst:1967 +msgid "" +"It is not safe to use :c:func:`PyDict_SetItem` on or otherwise " +"modify :c:member:`~PyTypeObject.tp_dict` with the dictionary C-API." +msgstr "" + +#: ../../c-api/typeobj.rst:1973 +msgid "An optional pointer to a \"descriptor get\" function." +msgstr "" + +#: ../../c-api/typeobj.rst:1975 ../../c-api/typeobj.rst:1991 +#: ../../c-api/typeobj.rst:2055 ../../c-api/typeobj.rst:2085 +#: ../../c-api/typeobj.rst:2108 +msgid "The function signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:1977 +msgid "PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type);" +msgstr "" + +#: ../../c-api/typeobj.rst:1988 +msgid "" +"An optional pointer to a function for setting and deleting a descriptor's " +"value." +msgstr "" + +#: ../../c-api/typeobj.rst:1993 +msgid "int tp_descr_set(PyObject *self, PyObject *obj, PyObject *value);" +msgstr "" + +#: ../../c-api/typeobj.rst:1995 +msgid "The *value* argument is set to ``NULL`` to delete the value." +msgstr "" + +#: ../../c-api/typeobj.rst:2006 +msgid "" +"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_DICT` " +"should be used instead, if at all possible." +msgstr "" + +#: ../../c-api/typeobj.rst:2009 +msgid "" +"If the instances of this type have a dictionary containing instance " +"variables, this field is non-zero and contains the offset in the instances " +"of the type of the instance variable dictionary; this offset is used " +"by :c:func:`PyObject_GenericGetAttr`." +msgstr "" + +#: ../../c-api/typeobj.rst:2014 +msgid "" +"Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " +"the dictionary for attributes of the type object itself." +msgstr "" + +#: ../../c-api/typeobj.rst:2017 +msgid "" +"The value specifies the offset of the dictionary from the start of the " +"instance structure." +msgstr "" + +#: ../../c-api/typeobj.rst:2019 +msgid "" +"The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" +"only. To get the pointer to the dictionary " +"call :c:func:`PyObject_GenericGetDict`. " +"Calling :c:func:`PyObject_GenericGetDict` may need to allocate memory for " +"the dictionary, so it is may be more efficient to " +"call :c:func:`PyObject_GetAttr` when accessing an attribute on the object." +msgstr "" + +#: ../../c-api/typeobj.rst:2025 +msgid "" +"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit " +"and :c:member:`~PyTypeObject.tp_dictoffset`." +msgstr "" + +#: ../../c-api/typeobj.rst:2030 +msgid "" +"This field is inherited by subtypes. A subtype should not override this " +"offset; doing so could be unsafe, if C code tries to access the dictionary " +"at the previous offset. To properly support inheritance, " +"use :c:macro:`Py_TPFLAGS_MANAGED_DICT`." +msgstr "" + +#: ../../c-api/typeobj.rst:2037 +msgid "" +"This slot has no default. For :ref:`static types `, if the " +"field is ``NULL`` then no :attr:`~object.__dict__` gets created for " +"instances." +msgstr "" + +#: ../../c-api/typeobj.rst:2040 +msgid "" +"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " +"the :c:member:`~PyTypeObject.tp_flags` field, " +"then :c:member:`~PyTypeObject.tp_dictoffset` will be set to ``-1``, to " +"indicate that it is unsafe to use this field." +msgstr "" + +#: ../../c-api/typeobj.rst:2048 +msgid "An optional pointer to an instance initialization function." +msgstr "" + +#: ../../c-api/typeobj.rst:2050 +msgid "" +"This function corresponds to the :meth:`~object.__init__` method of " +"classes. Like :meth:`!__init__`, it is possible to create an instance " +"without calling :meth:`!__init__`, and it is possible to reinitialize an " +"instance by calling its :meth:`!__init__` method again." +msgstr "" + +#: ../../c-api/typeobj.rst:2057 +msgid "int tp_init(PyObject *self, PyObject *args, PyObject *kwds);" +msgstr "" + +#: ../../c-api/typeobj.rst:2059 +msgid "" +"The self argument is the instance to be initialized; the *args* and *kwds* " +"arguments represent positional and keyword arguments of the call " +"to :meth:`~object.__init__`." +msgstr "" + +#: ../../c-api/typeobj.rst:2063 +msgid "" +"The :c:member:`~PyTypeObject.tp_init` function, if not ``NULL``, is called " +"when an instance is created normally by calling its type, after the " +"type's :c:member:`~PyTypeObject.tp_new` function has returned an instance of " +"the type. If the :c:member:`~PyTypeObject.tp_new` function returns an " +"instance of some other type that is not a subtype of the original type, " +"no :c:member:`~PyTypeObject.tp_init` function is called; " +"if :c:member:`~PyTypeObject.tp_new` returns an instance of a subtype of the " +"original type, the subtype's :c:member:`~PyTypeObject.tp_init` is called." +msgstr "" + +#: ../../c-api/typeobj.rst:2070 +msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." +msgstr "" + +#: ../../c-api/typeobj.rst:2078 +msgid "" +"For :ref:`static types ` this field does not have a default." +msgstr "" + +#: ../../c-api/typeobj.rst:2083 +msgid "An optional pointer to an instance allocation function." +msgstr "" + +#: ../../c-api/typeobj.rst:2087 +msgid "PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems);" +msgstr "" + +#: ../../c-api/typeobj.rst:2091 +msgid "" +"Static subtypes inherit this slot, which will " +"be :c:func:`PyType_GenericAlloc` if inherited from :class:`object`." +msgstr "" + +#: ../../c-api/typeobj.rst:2094 ../../c-api/typeobj.rst:2161 +msgid ":ref:`Heap subtypes ` do not inherit this slot." +msgstr "" + +#: ../../c-api/typeobj.rst:2098 +msgid "" +"For heap subtypes, this field is always set to :c:func:`PyType_GenericAlloc`." +msgstr "" + +#: ../../c-api/typeobj.rst:2101 ../../c-api/typeobj.rst:2169 +msgid "For static subtypes, this slot is inherited (see above)." +msgstr "" + +#: ../../c-api/typeobj.rst:2106 +msgid "An optional pointer to an instance creation function." +msgstr "" + +#: ../../c-api/typeobj.rst:2110 +msgid "" +"PyObject *tp_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds);" +msgstr "" + +#: ../../c-api/typeobj.rst:2112 +msgid "" +"The *subtype* argument is the type of the object being created; the *args* " +"and *kwds* arguments represent positional and keyword arguments of the call " +"to the type. Note that *subtype* doesn't have to equal the type " +"whose :c:member:`~PyTypeObject.tp_new` function is called; it may be a " +"subtype of that type (but not an unrelated type)." +msgstr "" + +#: ../../c-api/typeobj.rst:2118 +msgid "" +"The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" +">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " +"only as much further initialization as is absolutely necessary. " +"Initialization that can safely be ignored or repeated should be placed in " +"the :c:member:`~PyTypeObject.tp_init` handler. A good rule of thumb is that " +"for immutable types, all initialization should take place " +"in :c:member:`~PyTypeObject.tp_new`, while for mutable types, most " +"initialization should be deferred to :c:member:`~PyTypeObject.tp_init`." +msgstr "" + +#: ../../c-api/typeobj.rst:2126 +msgid "" +"Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " +"creating instances of the type in Python." +msgstr "" + +#: ../../c-api/typeobj.rst:2131 +msgid "" +"This field is inherited by subtypes, except it is not inherited " +"by :ref:`static types ` " +"whose :c:member:`~PyTypeObject.tp_base` is ``NULL`` or " +"``&PyBaseObject_Type``." +msgstr "" + +#: ../../c-api/typeobj.rst:2137 +msgid "" +"For :ref:`static types ` this field has no default. This means " +"if the slot is defined as ``NULL``, the type cannot be called to create new " +"instances; presumably there is some other way to create instances, like a " +"factory function." +msgstr "" + +#: ../../c-api/typeobj.rst:2145 +msgid "" +"An optional pointer to an instance deallocation function. Its signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:2147 +msgid "void tp_free(void *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2149 +msgid "" +"This function must free the memory allocated " +"by :c:member:`~PyTypeObject.tp_alloc`." +msgstr "" + +#: ../../c-api/typeobj.rst:2154 +msgid "" +"Static subtypes inherit this slot, which will be :c:func:`PyObject_Free` if " +"inherited from :class:`object`. Exception: If the type supports garbage " +"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " +"in :c:member:`~PyTypeObject.tp_flags`) and it would " +"inherit :c:func:`PyObject_Free`, then this slot is not inherited but instead " +"defaults to :c:func:`PyObject_GC_Del`." +msgstr "" + +#: ../../c-api/typeobj.rst:2165 +msgid "" +"For :ref:`heap subtypes `, this slot defaults to a deallocator " +"suitable to match :c:func:`PyType_GenericAlloc` and the value of " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." +msgstr "" + +#: ../../c-api/typeobj.rst:2174 +msgid "An optional pointer to a function called by the garbage collector." +msgstr "" + +#: ../../c-api/typeobj.rst:2176 +msgid "" +"The garbage collector needs to know whether a particular object is " +"collectible or not. Normally, it is sufficient to look at the object's " +"type's :c:member:`~PyTypeObject.tp_flags` field, and check " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit. But some types have a mixture " +"of statically and dynamically allocated instances, and the statically " +"allocated instances are not collectible. Such types should define this " +"function; it should return ``1`` for a collectible instance, and ``0`` for a " +"non-collectible instance. The signature is::" +msgstr "" + +#: ../../c-api/typeobj.rst:2184 +msgid "int tp_is_gc(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2186 +msgid "" +"(The only example of this are types themselves. The " +"metatype, :c:data:`PyType_Type`, defines this function to distinguish " +"between statically and :ref:`dynamically allocated types `.)" +msgstr "" + +#: ../../c-api/typeobj.rst:2196 +msgid "" +"This slot has no default. If this field is " +"``NULL``, :c:macro:`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." +msgstr "" + +#: ../../c-api/typeobj.rst:2202 +msgid "Tuple of base types." +msgstr "" + +#: ../../c-api/typeobj.rst:2204 ../../c-api/typeobj.rst:2228 +msgid "" +"This field should be set to ``NULL`` and treated as read-only. Python will " +"fill it in when the type is :c:func:`initialized `." +msgstr "" + +#: ../../c-api/typeobj.rst:2207 +msgid "" +"For dynamically created classes, the ``Py_tp_bases`` :c:type:`slot " +"` can be used instead of the *bases* argument " +"of :c:func:`PyType_FromSpecWithBases`. The argument form is preferred." +msgstr "" + +#: ../../c-api/typeobj.rst:2214 +msgid "" +"Multiple inheritance does not work well for statically defined types. If you " +"set ``tp_bases`` to a tuple, Python will not raise an error, but some slots " +"will only be inherited from the first base." +msgstr "" + +#: ../../c-api/typeobj.rst:2220 ../../c-api/typeobj.rst:2243 +#: ../../c-api/typeobj.rst:2260 ../../c-api/typeobj.rst:2277 +#: ../../c-api/typeobj.rst:2291 +msgid "This field is not inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:2225 +msgid "" +"Tuple containing the expanded set of base types, starting with the type " +"itself and ending with :class:`object`, in Method Resolution Order." +msgstr "" + +#: ../../c-api/typeobj.rst:2233 +msgid "" +"This field is not inherited; it is calculated fresh " +"by :c:func:`PyType_Ready`." +msgstr "" + +#: ../../c-api/typeobj.rst:2239 +msgid "Unused. Internal use only." +msgstr "" + +#: ../../c-api/typeobj.rst:2248 +msgid "" +"A collection of subclasses. Internal use only. May be an invalid pointer." +msgstr "" + +#: ../../c-api/typeobj.rst:2250 +msgid "" +"To get a list of subclasses, call the Python " +"method :py:meth:`~type.__subclasses__`." +msgstr "" + +#: ../../c-api/typeobj.rst:2255 +msgid "" +"For some types, this field does not hold a valid :c:expr:`PyObject*`. The " +"type was changed to :c:expr:`void*` to indicate this." +msgstr "" + +#: ../../c-api/typeobj.rst:2265 +msgid "" +"Weak reference list head, for weak references to this type object. Not " +"inherited. Internal use only." +msgstr "" + +#: ../../c-api/typeobj.rst:2270 +msgid "" +"Internals detail: For the static builtin types this is always ``NULL``, even " +"if weakrefs are added. Instead, the weakrefs for each are stored on " +"``PyInterpreterState``. Use the public C-API or the internal " +"``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." +msgstr "" + +#: ../../c-api/typeobj.rst:2282 +msgid "" +"This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." +msgstr "" + +#: ../../c-api/typeobj.rst:2287 +msgid "Used to index into the method cache. Internal use only." +msgstr "" + +#: ../../c-api/typeobj.rst:2296 +msgid "" +"An optional pointer to an instance finalization function. This is the C " +"implementation of the :meth:`~object.__del__` special method. Its signature " +"is::" +msgstr "" + +#: ../../c-api/typeobj.rst:2300 +msgid "void tp_finalize(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2302 +msgid "" +"The primary purpose of finalization is to perform any non-trivial cleanup " +"that must be performed before the object is destroyed, while the object and " +"any other objects it directly or indirectly references are still in a " +"consistent state. The finalizer is allowed to execute arbitrary Python code." +msgstr "" + +#: ../../c-api/typeobj.rst:2308 +msgid "" +"Before Python automatically finalizes an object, some of the object's direct " +"or indirect referents might have themselves been automatically finalized. " +"However, none of the referents will have been automatically cleared " +"(:c:member:`~PyTypeObject.tp_clear`) yet." +msgstr "" + +#: ../../c-api/typeobj.rst:2313 +msgid "" +"Other non-finalized objects might still be using a finalized object, so the " +"finalizer must leave the object in a sane state (e.g., invariants are still " +"met)." +msgstr "" + +#: ../../c-api/typeobj.rst:2319 +msgid "" +"After Python automatically finalizes an object, Python might start " +"automatically clearing (:c:member:`~PyTypeObject.tp_clear`) the object and " +"its referents (direct and indirect). Cleared objects are not guaranteed to " +"be in a consistent state; a finalized object must be able to tolerate " +"cleared referents." +msgstr "" + +#: ../../c-api/typeobj.rst:2327 +msgid "" +"An object is not guaranteed to be automatically finalized before its " +"destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called. It is " +"recommended to call :c:func:`PyObject_CallFinalizerFromDealloc` at the " +"beginning of :c:member:`!tp_dealloc` to guarantee that the object is always " +"finalized before destruction." +msgstr "" + +#: ../../c-api/typeobj.rst:2335 +msgid "" +"The :c:member:`~PyTypeObject.tp_finalize` function can be called from any " +"thread, although the :term:`GIL` will be held." +msgstr "" + +#: ../../c-api/typeobj.rst:2340 +msgid "" +"The :c:member:`!tp_finalize` function can be called during shutdown, after " +"some global variables have been deleted. See the documentation of " +"the :meth:`~object.__del__` method for details." +msgstr "" + +#: ../../c-api/typeobj.rst:2344 +msgid "" +"When Python finalizes an object, it behaves like the following algorithm:" +msgstr "" + +#: ../../c-api/typeobj.rst:2346 +msgid "" +"Python might mark the object as *finalized*. Currently, Python always marks " +"objects whose type supports garbage collection (i.e., " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " +"in :c:member:`~PyTypeObject.tp_flags`) and never marks other types of " +"objects; this might change in a future version." +msgstr "" + +#: ../../c-api/typeobj.rst:2351 +msgid "" +"If the object is not marked as *finalized* and its :c:member:`!tp_finalize` " +"finalizer function is non-``NULL``, the finalizer function is called." +msgstr "" + +#: ../../c-api/typeobj.rst:2354 +msgid "" +"If the finalizer function was called and the finalizer made the object " +"reachable (i.e., there is a reference to the object and it is not a member " +"of a :term:`cyclic isolate`), then the finalizer is said to have " +"*resurrected* the object. It is unspecified whether the finalizer can also " +"resurrect the object by adding a new reference to the object that does not " +"make it reachable, i.e., the object is (still) a member of a cyclic isolate." +msgstr "" + +#: ../../c-api/typeobj.rst:2361 +msgid "" +"If the finalizer resurrected the object, the object's pending destruction is " +"canceled and the object's *finalized* mark might be removed if present. " +"Currently, Python never removes the *finalized* mark; this might change in a " +"future version." +msgstr "" + +#: ../../c-api/typeobj.rst:2366 +msgid "" +"*Automatic finalization* refers to any finalization performed by Python " +"except via calls to :c:func:`PyObject_CallFinalizer` " +"or :c:func:`PyObject_CallFinalizerFromDealloc`. No guarantees are made " +"about when, if, or how often an object is automatically finalized, except:" +msgstr "" + +#: ../../c-api/typeobj.rst:2371 +msgid "" +"Python will not automatically finalize an object if it is reachable, i.e., " +"there is a reference to it and it is not a member of a :term:`cyclic " +"isolate`." +msgstr "" + +#: ../../c-api/typeobj.rst:2374 +msgid "" +"Python will not automatically finalize an object if finalizing it would not " +"mark the object as *finalized*. Currently, this applies to objects whose " +"type does not support garbage collection, i.e., " +"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is not set. Such objects can still " +"be manually finalized by calling :c:func:`PyObject_CallFinalizer` " +"or :c:func:`PyObject_CallFinalizerFromDealloc`." +msgstr "" + +#: ../../c-api/typeobj.rst:2380 +msgid "" +"Python will not automatically finalize any two members of a :term:`cyclic " +"isolate` concurrently." +msgstr "" + +#: ../../c-api/typeobj.rst:2382 +msgid "" +"Python will not automatically finalize an object after it has automatically " +"cleared (:c:member:`~PyTypeObject.tp_clear`) the object." +msgstr "" + +#: ../../c-api/typeobj.rst:2384 +msgid "" +"If an object is a member of a :term:`cyclic isolate`, Python will not " +"automatically finalize it after automatically clearing " +"(see :c:member:`~PyTypeObject.tp_clear`) any other member." +msgstr "" + +#: ../../c-api/typeobj.rst:2387 +msgid "" +"Python will automatically finalize every member of a :term:`cyclic isolate` " +"before it automatically clears (see :c:member:`~PyTypeObject.tp_clear`) any " +"of them." +msgstr "" + +#: ../../c-api/typeobj.rst:2390 +msgid "" +"If Python is going to automatically clear an object " +"(:c:member:`~PyTypeObject.tp_clear`), it will automatically finalize the " +"object first." +msgstr "" + +#: ../../c-api/typeobj.rst:2394 +msgid "" +"Python currently only automatically finalizes objects that are members of " +"a :term:`cyclic isolate`, but future versions might finalize objects " +"regularly before their destruction." +msgstr "" + +#: ../../c-api/typeobj.rst:2398 +msgid "" +"To manually finalize an object, do not call this function directly; " +"call :c:func:`PyObject_CallFinalizer` " +"or :c:func:`PyObject_CallFinalizerFromDealloc` instead." +msgstr "" + +#: ../../c-api/typeobj.rst:2402 +msgid "" +":c:member:`~PyTypeObject.tp_finalize` should leave the current exception " +"status unchanged. The recommended way to write a non-trivial finalizer is " +"to back up the exception at the beginning by " +"calling :c:func:`PyErr_GetRaisedException` and restore the exception at the " +"end by calling :c:func:`PyErr_SetRaisedException`. If an exception is " +"encountered in the middle of the finalizer, log and clear it " +"with :c:func:`PyErr_WriteUnraisable` or :c:func:`PyErr_FormatUnraisable`. " +"For example::" +msgstr "" + +#: ../../c-api/typeobj.rst:2411 +msgid "" +"static void\n" +"foo_finalize(PyObject *self)\n" +"{\n" +" // Save the current exception, if any.\n" +" PyObject *exc = PyErr_GetRaisedException();\n" +"\n" +" // ...\n" +"\n" +" if (do_something_that_might_raise() != success_indicator) {\n" +" PyErr_WriteUnraisable(self);\n" +" goto done;\n" +" }\n" +"\n" +"done:\n" +" // Restore the saved exception. This silently discards any exception\n" +" // raised above, so be sure to call PyErr_WriteUnraisable first if\n" +" // necessary.\n" +" PyErr_SetRaisedException(exc);\n" +"}" +msgstr "" + +#: ../../c-api/typeobj.rst:2439 +msgid "" +"Before version 3.8 it was necessary to set " +"the :c:macro:`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to " +"be used. This is no longer required." +msgstr "" + +#: ../../c-api/typeobj.rst:2445 +msgid ":pep:`442`: \"Safe object finalization\"" +msgstr "" + +#: ../../c-api/typeobj.rst:2448 +msgid ":c:func:`PyObject_CallFinalizer`" +msgstr "" + +#: ../../c-api/typeobj.rst:2449 +msgid ":c:func:`PyObject_CallFinalizerFromDealloc`" +msgstr "" + +#: ../../c-api/typeobj.rst:2454 +msgid "" +"A :ref:`vectorcall function ` to use for calls of this type " +"object (rather than instances). In other words, ``tp_vectorcall`` can be " +"used to optimize ``type.__call__``, which typically returns a new instance " +"of *type*." +msgstr "" + +#: ../../c-api/typeobj.rst:2459 +msgid "" +"As with any vectorcall function, if ``tp_vectorcall`` is ``NULL``, the " +"*tp_call* protocol (``Py_TYPE(type)->tp_call``) is used instead." +msgstr "" + +#: ../../c-api/typeobj.rst:2464 +msgid "" +"The :ref:`vectorcall protocol ` requires that the vectorcall " +"function has the same behavior as the corresponding ``tp_call``. This means " +"that ``type->tp_vectorcall`` must match the behavior of ``Py_TYPE(type)-" +">tp_call``." +msgstr "" + +#: ../../c-api/typeobj.rst:2469 +msgid "" +"Specifically, if *type* uses the default metaclass, ``type->tp_vectorcall`` " +"must behave the same as :c:expr:`PyType_Type->tp_call`, which:" +msgstr "" + +#: ../../c-api/typeobj.rst:2473 +msgid "calls ``type->tp_new``," +msgstr "" + +#: ../../c-api/typeobj.rst:2475 +msgid "" +"if the result is a subclass of *type*, calls ``type->tp_init`` on the result " +"of ``tp_new``, and" +msgstr "" + +#: ../../c-api/typeobj.rst:2478 +msgid "returns the result of ``tp_new``." +msgstr "" + +#: ../../c-api/typeobj.rst:2480 +msgid "" +"Typically, ``tp_vectorcall`` is overridden to optimize this process for " +"specific :c:member:`~PyTypeObject.tp_new` " +"and :c:member:`~PyTypeObject.tp_init`. When doing this for user-subclassable " +"types, note that both can be overridden (using :py:func:`~object.__new__` " +"and :py:func:`~object.__init__`, respectively)." +msgstr "" + +#: ../../c-api/typeobj.rst:2491 +msgid "This field is never inherited." +msgstr "" + +#: ../../c-api/typeobj.rst:2493 +msgid "(the field exists since 3.8 but it's only used since 3.9)" +msgstr "" + +#: ../../c-api/typeobj.rst:2498 +msgid "Internal. Do not use." +msgstr "" + +#: ../../c-api/typeobj.rst:2506 +msgid "Static Types" +msgstr "" + +#: ../../c-api/typeobj.rst:2508 +msgid "" +"Traditionally, types defined in C code are *static*, that is, a " +"static :c:type:`PyTypeObject` structure is defined directly in code and " +"initialized using :c:func:`PyType_Ready`." +msgstr "" + +#: ../../c-api/typeobj.rst:2512 +msgid "" +"This results in types that are limited relative to types defined in Python:" +msgstr "" + +#: ../../c-api/typeobj.rst:2514 +msgid "" +"Static types are limited to one base, i.e. they cannot use multiple " +"inheritance." +msgstr "" + +#: ../../c-api/typeobj.rst:2516 +msgid "" +"Static type objects (but not necessarily their instances) are immutable. It " +"is not possible to add or modify the type object's attributes from Python." +msgstr "" + +#: ../../c-api/typeobj.rst:2518 +msgid "" +"Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" +"specific state." +msgstr "" + +#: ../../c-api/typeobj.rst:2522 +msgid "" +"Also, since :c:type:`PyTypeObject` is only part of the :ref:`Limited API " +"` as an opaque struct, any extension modules using static " +"types must be compiled for a specific Python minor version." +msgstr "" + +#: ../../c-api/typeobj.rst:2530 +msgid "Heap Types" +msgstr "" + +#: ../../c-api/typeobj.rst:2532 +msgid "" +"An alternative to :ref:`static types ` is *heap-allocated " +"types*, or *heap types* for short, which correspond closely to classes " +"created by Python's ``class`` statement. Heap types have " +"the :c:macro:`Py_TPFLAGS_HEAPTYPE` flag set." +msgstr "" + +#: ../../c-api/typeobj.rst:2537 +msgid "" +"This is done by filling a :c:type:`PyType_Spec` structure and " +"calling :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, :c:func:`PyType_FromModuleAndSpec`, " +"or :c:func:`PyType_FromMetaclass`." +msgstr "" + +#: ../../c-api/typeobj.rst:2545 +msgid "Number Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:2552 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the number protocol. Each function is used by the function of " +"similar name documented in the :ref:`number` section." +msgstr "" + +#: ../../c-api/typeobj.rst:2558 ../../c-api/typeobj.rst:2882 +msgid "Here is the structure definition::" +msgstr "" + +#: ../../c-api/typeobj.rst:2560 +msgid "" +"typedef struct {\n" +" binaryfunc nb_add;\n" +" binaryfunc nb_subtract;\n" +" binaryfunc nb_multiply;\n" +" binaryfunc nb_remainder;\n" +" binaryfunc nb_divmod;\n" +" ternaryfunc nb_power;\n" +" unaryfunc nb_negative;\n" +" unaryfunc nb_positive;\n" +" unaryfunc nb_absolute;\n" +" inquiry nb_bool;\n" +" unaryfunc nb_invert;\n" +" binaryfunc nb_lshift;\n" +" binaryfunc nb_rshift;\n" +" binaryfunc nb_and;\n" +" binaryfunc nb_xor;\n" +" binaryfunc nb_or;\n" +" unaryfunc nb_int;\n" +" void *nb_reserved;\n" +" unaryfunc nb_float;\n" +"\n" +" binaryfunc nb_inplace_add;\n" +" binaryfunc nb_inplace_subtract;\n" +" binaryfunc nb_inplace_multiply;\n" +" binaryfunc nb_inplace_remainder;\n" +" ternaryfunc nb_inplace_power;\n" +" binaryfunc nb_inplace_lshift;\n" +" binaryfunc nb_inplace_rshift;\n" +" binaryfunc nb_inplace_and;\n" +" binaryfunc nb_inplace_xor;\n" +" binaryfunc nb_inplace_or;\n" +"\n" +" binaryfunc nb_floor_divide;\n" +" binaryfunc nb_true_divide;\n" +" binaryfunc nb_inplace_floor_divide;\n" +" binaryfunc nb_inplace_true_divide;\n" +"\n" +" unaryfunc nb_index;\n" +"\n" +" binaryfunc nb_matrix_multiply;\n" +" binaryfunc nb_inplace_matrix_multiply;\n" +"} PyNumberMethods;" +msgstr "" + +#: ../../c-api/typeobj.rst:2605 +msgid "" +"Binary and ternary functions must check the type of all their operands, and " +"implement the necessary conversions (at least one of the operands is an " +"instance of the defined type). If the operation is not defined for the " +"given operands, binary and ternary functions must return " +"``Py_NotImplemented``, if another error occurred they must return ``NULL`` " +"and set an exception." +msgstr "" + +#: ../../c-api/typeobj.rst:2614 +msgid "" +"The :c:member:`~PyNumberMethods.nb_reserved` field should always be " +"``NULL``. It was previously called :c:member:`!nb_long`, and was renamed in " +"Python 3.0.1." +msgstr "" + +#: ../../c-api/typeobj.rst:2659 +msgid "Mapping Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:2666 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the mapping protocol. It has three members:" +msgstr "" + +#: ../../c-api/typeobj.rst:2671 +msgid "" +"This function is used by :c:func:`PyMapping_Size` " +"and :c:func:`PyObject_Size`, and has the same signature. This slot may be " +"set to ``NULL`` if the object has no defined length." +msgstr "" + +#: ../../c-api/typeobj.rst:2677 +msgid "" +"This function is used by :c:func:`PyObject_GetItem` " +"and :c:func:`PySequence_GetSlice`, and has the same signature as :c:func:`!" +"PyObject_GetItem`. This slot must be filled for " +"the :c:func:`PyMapping_Check` function to return ``1``, it can be ``NULL`` " +"otherwise." +msgstr "" + +#: ../../c-api/typeobj.rst:2685 +msgid "" +"This function is used " +"by :c:func:`PyObject_SetItem`, :c:func:`PyObject_DelItem`, :c:func:`PySequence_SetSlice` " +"and :c:func:`PySequence_DelSlice`. It has the same signature as :c:func:`!" +"PyObject_SetItem`, but *v* can also be set to ``NULL`` to delete an item. " +"If this slot is ``NULL``, the object does not support item assignment and " +"deletion." +msgstr "" + +#: ../../c-api/typeobj.rst:2696 +msgid "Sequence Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:2703 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the sequence protocol." +msgstr "" + +#: ../../c-api/typeobj.rst:2708 +msgid "" +"This function is used by :c:func:`PySequence_Size` " +"and :c:func:`PyObject_Size`, and has the same signature. It is also used " +"for handling negative indices via the :c:member:`~PySequenceMethods.sq_item` " +"and the :c:member:`~PySequenceMethods.sq_ass_item` slots." +msgstr "" + +#: ../../c-api/typeobj.rst:2715 +msgid "" +"This function is used by :c:func:`PySequence_Concat` and has the same " +"signature. It is also used by the ``+`` operator, after trying the numeric " +"addition via the :c:member:`~PyNumberMethods.nb_add` slot." +msgstr "" + +#: ../../c-api/typeobj.rst:2721 +msgid "" +"This function is used by :c:func:`PySequence_Repeat` and has the same " +"signature. It is also used by the ``*`` operator, after trying numeric " +"multiplication via the :c:member:`~PyNumberMethods.nb_multiply` slot." +msgstr "" + +#: ../../c-api/typeobj.rst:2727 +msgid "" +"This function is used by :c:func:`PySequence_GetItem` and has the same " +"signature. It is also used by :c:func:`PyObject_GetItem`, after trying the " +"subscription via the :c:member:`~PyMappingMethods.mp_subscript` slot. This " +"slot must be filled for the :c:func:`PySequence_Check` function to return " +"``1``, it can be ``NULL`` otherwise." +msgstr "" + +#: ../../c-api/typeobj.rst:2733 +msgid "" +"Negative indexes are handled as follows: if " +"the :c:member:`~PySequenceMethods.sq_length` slot is filled, it is called " +"and the sequence length is used to compute a positive index which is passed " +"to :c:member:`~PySequenceMethods.sq_item`. If :c:member:`!sq_length` is " +"``NULL``, the index is passed as is to the function." +msgstr "" + +#: ../../c-api/typeobj.rst:2740 +msgid "" +"This function is used by :c:func:`PySequence_SetItem` and has the same " +"signature. It is also used by :c:func:`PyObject_SetItem` " +"and :c:func:`PyObject_DelItem`, after trying the item assignment and " +"deletion via the :c:member:`~PyMappingMethods.mp_ass_subscript` slot. This " +"slot may be left to ``NULL`` if the object does not support item assignment " +"and deletion." +msgstr "" + +#: ../../c-api/typeobj.rst:2749 +msgid "" +"This function may be used by :c:func:`PySequence_Contains` and has the same " +"signature. This slot may be left to ``NULL``, in this case :c:func:`!" +"PySequence_Contains` simply traverses the sequence until it finds a match." +msgstr "" + +#: ../../c-api/typeobj.rst:2756 +msgid "" +"This function is used by :c:func:`PySequence_InPlaceConcat` and has the same " +"signature. It should modify its first operand, and return it. This slot " +"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceConcat` " +"will fall back to :c:func:`PySequence_Concat`. It is also used by the " +"augmented assignment ``+=``, after trying numeric in-place addition via " +"the :c:member:`~PyNumberMethods.nb_inplace_add` slot." +msgstr "" + +#: ../../c-api/typeobj.rst:2765 +msgid "" +"This function is used by :c:func:`PySequence_InPlaceRepeat` and has the same " +"signature. It should modify its first operand, and return it. This slot " +"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceRepeat` " +"will fall back to :c:func:`PySequence_Repeat`. It is also used by the " +"augmented assignment ``*=``, after trying numeric in-place multiplication " +"via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." +msgstr "" + +#: ../../c-api/typeobj.rst:2776 +msgid "Buffer Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:2784 +msgid "" +"This structure holds pointers to the functions required by the :ref:`Buffer " +"protocol `. The protocol defines how an exporter object can " +"expose its internal data to consumer objects." +msgstr "" + +#: ../../c-api/typeobj.rst:2790 ../../c-api/typeobj.rst:2839 +#: ../../c-api/typeobj.rst:2893 ../../c-api/typeobj.rst:2904 +#: ../../c-api/typeobj.rst:2916 ../../c-api/typeobj.rst:2926 +msgid "The signature of this function is::" +msgstr "" + +#: ../../c-api/typeobj.rst:2792 +msgid "int (PyObject *exporter, Py_buffer *view, int flags);" +msgstr "" + +#: ../../c-api/typeobj.rst:2794 +msgid "" +"Handle a request to *exporter* to fill in *view* as specified by *flags*. " +"Except for point (3), an implementation of this function MUST take these " +"steps:" +msgstr "" + +#: ../../c-api/typeobj.rst:2798 +msgid "" +"Check if the request can be met. If not, raise :exc:`BufferError`, " +"set :c:expr:`view->obj` to ``NULL`` and return ``-1``." +msgstr "" + +#: ../../c-api/typeobj.rst:2801 +msgid "Fill in the requested fields." +msgstr "" + +#: ../../c-api/typeobj.rst:2803 +msgid "Increment an internal counter for the number of exports." +msgstr "" + +#: ../../c-api/typeobj.rst:2805 +msgid "" +"Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`." +msgstr "" + +#: ../../c-api/typeobj.rst:2807 +msgid "Return ``0``." +msgstr "" + +#: ../../c-api/typeobj.rst:2809 +msgid "" +"If *exporter* is part of a chain or tree of buffer providers, two main " +"schemes can be used:" +msgstr "" + +#: ../../c-api/typeobj.rst:2812 +msgid "" +"Re-export: Each member of the tree acts as the exporting object and " +"sets :c:expr:`view->obj` to a new reference to itself." +msgstr "" + +#: ../../c-api/typeobj.rst:2815 +msgid "" +"Redirect: The buffer request is redirected to the root object of the tree. " +"Here, :c:expr:`view->obj` will be a new reference to the root object." +msgstr "" + +#: ../../c-api/typeobj.rst:2819 +msgid "" +"The individual fields of *view* are described in section :ref:`Buffer " +"structure `, the rules how an exporter must react to " +"specific requests are in section :ref:`Buffer request types `." +msgstr "" + +#: ../../c-api/typeobj.rst:2824 +msgid "" +"All memory pointed to in the :c:type:`Py_buffer` structure belongs to the " +"exporter and must remain valid until there are no consumers " +"left. :c:member:`~Py_buffer.format`, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer.strides`, :c:member:`~Py_buffer.suboffsets` " +"and :c:member:`~Py_buffer.internal` are read-only for the consumer." +msgstr "" + +#: ../../c-api/typeobj.rst:2831 +msgid "" +":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " +"buffer while dealing correctly with all request types." +msgstr "" + +#: ../../c-api/typeobj.rst:2834 +msgid "" +":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " +"this function." +msgstr "" + +#: ../../c-api/typeobj.rst:2841 +msgid "void (PyObject *exporter, Py_buffer *view);" +msgstr "" + +#: ../../c-api/typeobj.rst:2843 +msgid "" +"Handle a request to release the resources of the buffer. If no resources " +"need to be released, :c:member:`PyBufferProcs.bf_releasebuffer` may be " +"``NULL``. Otherwise, a standard implementation of this function will take " +"these optional steps:" +msgstr "" + +#: ../../c-api/typeobj.rst:2848 +msgid "Decrement an internal counter for the number of exports." +msgstr "" + +#: ../../c-api/typeobj.rst:2850 +msgid "If the counter is ``0``, free all memory associated with *view*." +msgstr "" + +#: ../../c-api/typeobj.rst:2852 +msgid "" +"The exporter MUST use the :c:member:`~Py_buffer.internal` field to keep " +"track of buffer-specific resources. This field is guaranteed to remain " +"constant, while a consumer MAY pass a copy of the original buffer as the " +"*view* argument." +msgstr "" + +#: ../../c-api/typeobj.rst:2858 +msgid "" +"This function MUST NOT decrement :c:expr:`view->obj`, since that is done " +"automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " +"breaking reference cycles)." +msgstr "" + +#: ../../c-api/typeobj.rst:2863 +msgid "" +":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " +"function." +msgstr "" + +#: ../../c-api/typeobj.rst:2871 +msgid "Async Object Structures" +msgstr "" + +#: ../../c-api/typeobj.rst:2879 +msgid "" +"This structure holds pointers to the functions required to " +"implement :term:`awaitable` and :term:`asynchronous iterator` objects." +msgstr "" + +#: ../../c-api/typeobj.rst:2884 +msgid "" +"typedef struct {\n" +" unaryfunc am_await;\n" +" unaryfunc am_aiter;\n" +" unaryfunc am_anext;\n" +" sendfunc am_send;\n" +"} PyAsyncMethods;" +msgstr "" + +#: ../../c-api/typeobj.rst:2895 +msgid "PyObject *am_await(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2897 +msgid "" +"The returned object must be an :term:`iterator`, i.e. :c:func:`PyIter_Check` " +"must return ``1`` for it." +msgstr "" + +#: ../../c-api/typeobj.rst:2900 +msgid "" +"This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." +msgstr "" + +#: ../../c-api/typeobj.rst:2906 +msgid "PyObject *am_aiter(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2908 +msgid "" +"Must return an :term:`asynchronous iterator` object. " +"See :meth:`~object.__anext__` for details." +msgstr "" + +#: ../../c-api/typeobj.rst:2911 +msgid "" +"This slot may be set to ``NULL`` if an object does not implement " +"asynchronous iteration protocol." +msgstr "" + +#: ../../c-api/typeobj.rst:2918 +msgid "PyObject *am_anext(PyObject *self);" +msgstr "" + +#: ../../c-api/typeobj.rst:2920 +msgid "" +"Must return an :term:`awaitable` object. See :meth:`~object.__anext__` for " +"details. This slot may be set to ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:2928 +msgid "PySendResult am_send(PyObject *self, PyObject *arg, PyObject **result);" +msgstr "" + +#: ../../c-api/typeobj.rst:2930 +msgid "" +"See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." +msgstr "" + +#: ../../c-api/typeobj.rst:2939 +msgid "Slot Type typedefs" +msgstr "" + +#: ../../c-api/typeobj.rst:2943 +msgid "" +"The purpose of this function is to separate memory allocation from memory " +"initialization. It should return a pointer to a block of memory of adequate " +"length for the instance, suitably aligned, and initialized to zeros, but " +"with :c:member:`~PyObject.ob_refcnt` set to ``1`` " +"and :c:member:`~PyObject.ob_type` set to the type argument. If the " +"type's :c:member:`~PyTypeObject.tp_itemsize` is non-zero, the " +"object's :c:member:`~PyVarObject.ob_size` field should be initialized to " +"*nitems* and the length of the allocated memory block should be " +"``tp_basicsize + nitems*tp_itemsize``, rounded up to a multiple of " +"``sizeof(void*)``; otherwise, *nitems* is not used and the length of the " +"block should be :c:member:`~PyTypeObject.tp_basicsize`." +msgstr "" + +#: ../../c-api/typeobj.rst:2953 +msgid "" +"This function should not do any other instance initialization, not even to " +"allocate additional memory; that should be done " +"by :c:member:`~PyTypeObject.tp_new`." +msgstr "" + +#: ../../c-api/typeobj.rst:2960 +msgid "See :c:member:`~PyTypeObject.tp_free`." +msgstr "" + +#: ../../c-api/typeobj.rst:2964 +msgid "See :c:member:`~PyTypeObject.tp_new`." +msgstr "" + +#: ../../c-api/typeobj.rst:2968 +msgid "See :c:member:`~PyTypeObject.tp_init`." +msgstr "" + +#: ../../c-api/typeobj.rst:2972 +msgid "See :c:member:`~PyTypeObject.tp_repr`." +msgstr "" + +#: ../../c-api/typeobj.rst:2976 ../../c-api/typeobj.rst:2985 +msgid "Return the value of the named attribute for the object." +msgstr "" + +#: ../../c-api/typeobj.rst:2980 ../../c-api/typeobj.rst:2991 +msgid "" +"Set the value of the named attribute for the object. The value argument is " +"set to ``NULL`` to delete the attribute." +msgstr "" + +#: ../../c-api/typeobj.rst:2987 +msgid "See :c:member:`~PyTypeObject.tp_getattro`." +msgstr "" + +#: ../../c-api/typeobj.rst:2994 +msgid "See :c:member:`~PyTypeObject.tp_setattro`." +msgstr "" + +#: ../../c-api/typeobj.rst:2998 +msgid "See :c:member:`~PyTypeObject.tp_descr_get`." +msgstr "" + +#: ../../c-api/typeobj.rst:3002 +msgid "See :c:member:`~PyTypeObject.tp_descr_set`." +msgstr "" + +#: ../../c-api/typeobj.rst:3006 +msgid "See :c:member:`~PyTypeObject.tp_hash`." +msgstr "" + +#: ../../c-api/typeobj.rst:3010 +msgid "See :c:member:`~PyTypeObject.tp_richcompare`." +msgstr "" + +#: ../../c-api/typeobj.rst:3014 +msgid "See :c:member:`~PyTypeObject.tp_iter`." +msgstr "" + +#: ../../c-api/typeobj.rst:3018 +msgid "See :c:member:`~PyTypeObject.tp_iternext`." +msgstr "" + +#: ../../c-api/typeobj.rst:3032 +msgid "See :c:member:`~PyAsyncMethods.am_send`." +msgstr "" + +#: ../../c-api/typeobj.rst:3048 +msgid "Examples" +msgstr "" + +#: ../../c-api/typeobj.rst:3050 +msgid "" +"The following are simple examples of Python type definitions. They include " +"common usage you may encounter. Some demonstrate tricky corner cases. For " +"more examples, practical info, and a tutorial, see :ref:`defining-new-types` " +"and :ref:`new-types-topics`." +msgstr "" + +#: ../../c-api/typeobj.rst:3055 +msgid "A basic :ref:`static type `::" +msgstr "" + +#: ../../c-api/typeobj.rst:3057 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +" const char *data;\n" +"} MyObject;\n" +"\n" +"static PyTypeObject MyObject_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"mymod.MyObject\",\n" +" .tp_basicsize = sizeof(MyObject),\n" +" .tp_doc = PyDoc_STR(\"My objects\"),\n" +" .tp_new = myobj_new,\n" +" .tp_dealloc = (destructor)myobj_dealloc,\n" +" .tp_repr = (reprfunc)myobj_repr,\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:3072 +msgid "" +"You may also find older code (especially in the CPython code base) with a " +"more verbose initializer::" +msgstr "" + +#: ../../c-api/typeobj.rst:3075 +msgid "" +"static PyTypeObject MyObject_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" \"mymod.MyObject\", /* tp_name */\n" +" sizeof(MyObject), /* tp_basicsize */\n" +" 0, /* tp_itemsize */\n" +" (destructor)myobj_dealloc, /* tp_dealloc */\n" +" 0, /* tp_vectorcall_offset */\n" +" 0, /* tp_getattr */\n" +" 0, /* tp_setattr */\n" +" 0, /* tp_as_async */\n" +" (reprfunc)myobj_repr, /* tp_repr */\n" +" 0, /* tp_as_number */\n" +" 0, /* tp_as_sequence */\n" +" 0, /* tp_as_mapping */\n" +" 0, /* tp_hash */\n" +" 0, /* tp_call */\n" +" 0, /* tp_str */\n" +" 0, /* tp_getattro */\n" +" 0, /* tp_setattro */\n" +" 0, /* tp_as_buffer */\n" +" 0, /* tp_flags */\n" +" PyDoc_STR(\"My objects\"), /* tp_doc */\n" +" 0, /* tp_traverse */\n" +" 0, /* tp_clear */\n" +" 0, /* tp_richcompare */\n" +" 0, /* tp_weaklistoffset */\n" +" 0, /* tp_iter */\n" +" 0, /* tp_iternext */\n" +" 0, /* tp_methods */\n" +" 0, /* tp_members */\n" +" 0, /* tp_getset */\n" +" 0, /* tp_base */\n" +" 0, /* tp_dict */\n" +" 0, /* tp_descr_get */\n" +" 0, /* tp_descr_set */\n" +" 0, /* tp_dictoffset */\n" +" 0, /* tp_init */\n" +" 0, /* tp_alloc */\n" +" myobj_new, /* tp_new */\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:3116 +msgid "A type that supports weakrefs, instance dicts, and hashing::" +msgstr "" + +#: ../../c-api/typeobj.rst:3118 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +" const char *data;\n" +"} MyObject;\n" +"\n" +"static PyTypeObject MyObject_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"mymod.MyObject\",\n" +" .tp_basicsize = sizeof(MyObject),\n" +" .tp_doc = PyDoc_STR(\"My objects\"),\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |\n" +" Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_MANAGED_DICT |\n" +" Py_TPFLAGS_MANAGED_WEAKREF,\n" +" .tp_new = myobj_new,\n" +" .tp_traverse = (traverseproc)myobj_traverse,\n" +" .tp_clear = (inquiry)myobj_clear,\n" +" .tp_alloc = PyType_GenericNew,\n" +" .tp_dealloc = (destructor)myobj_dealloc,\n" +" .tp_repr = (reprfunc)myobj_repr,\n" +" .tp_hash = (hashfunc)myobj_hash,\n" +" .tp_richcompare = PyBaseObject_Type.tp_richcompare,\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:3141 +msgid "" +"A str subclass that cannot be subclassed and cannot be called to create " +"instances (e.g. uses a separate factory func) " +"using :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag::" +msgstr "" + +#: ../../c-api/typeobj.rst:3145 +msgid "" +"typedef struct {\n" +" PyUnicodeObject raw;\n" +" char *extra;\n" +"} MyStr;\n" +"\n" +"static PyTypeObject MyStr_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"mymod.MyStr\",\n" +" .tp_basicsize = sizeof(MyStr),\n" +" .tp_base = NULL, // set to &PyUnicode_Type in module init\n" +" .tp_doc = PyDoc_STR(\"my custom str\"),\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION,\n" +" .tp_repr = (reprfunc)myobj_repr,\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:3160 +msgid "" +"The simplest :ref:`static type ` with fixed-length instances::" +msgstr "" + +#: ../../c-api/typeobj.rst:3162 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +"} MyObject;\n" +"\n" +"static PyTypeObject MyObject_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"mymod.MyObject\",\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:3171 +msgid "" +"The simplest :ref:`static type ` with variable-length " +"instances::" +msgstr "" + +#: ../../c-api/typeobj.rst:3173 +msgid "" +"typedef struct {\n" +" PyObject_VAR_HEAD\n" +" const char *data[1];\n" +"} MyObject;\n" +"\n" +"static PyTypeObject MyObject_Type = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"mymod.MyObject\",\n" +" .tp_basicsize = sizeof(MyObject) - sizeof(char *),\n" +" .tp_itemsize = sizeof(char *),\n" +"};" +msgstr "" + +#: ../../c-api/typeobj.rst:912 ../../c-api/typeobj.rst:977 +msgid "built-in function" +msgstr "" + +#: ../../c-api/typeobj.rst:912 +msgid "repr" +msgstr "" + +#: ../../c-api/typeobj.rst:977 +msgid "hash" +msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po new file mode 100644 index 0000000..fef75b4 --- /dev/null +++ b/c-api/unicode.po @@ -0,0 +1,2333 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/unicode.rst:6 +msgid "Unicode Objects and Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:12 +msgid "Unicode Objects" +msgstr "" + +#: ../../c-api/unicode.rst:14 +msgid "" +"Since the implementation of :pep:`393` in Python 3.3, Unicode objects " +"internally use a variety of representations, in order to allow handling the " +"complete range of Unicode characters while staying memory efficient. There " +"are special cases for strings where all code points are below 128, 256, or " +"65536; otherwise, code points must be below 1114112 (which is the full " +"Unicode range)." +msgstr "" + +#: ../../c-api/unicode.rst:20 +msgid "" +"UTF-8 representation is created on demand and cached in the Unicode object." +msgstr "" + +#: ../../c-api/unicode.rst:23 +msgid "" +"The :c:type:`Py_UNICODE` representation has been removed since Python 3.12 " +"with deprecated APIs. See :pep:`623` for more information." +msgstr "" + +#: ../../c-api/unicode.rst:29 +msgid "Unicode Type" +msgstr "" + +#: ../../c-api/unicode.rst:31 +msgid "" +"These are the basic Unicode object types used for the Unicode implementation " +"in Python:" +msgstr "" + +#: ../../c-api/unicode.rst:36 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " +"It is exposed to Python code as :py:class:`str`." +msgstr "" + +#: ../../c-api/unicode.rst:42 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python Unicode " +"iterator type. It is used to iterate over Unicode string objects." +msgstr "" + +#: ../../c-api/unicode.rst:50 +msgid "" +"These types are typedefs for unsigned integer types wide enough to contain " +"characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " +"single Unicode characters, use :c:type:`Py_UCS4`." +msgstr "" + +#: ../../c-api/unicode.rst:61 +msgid "" +"These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " +"almost all cases, they shouldn't be used directly, since all API functions " +"that deal with Unicode objects take and return :c:type:`PyObject` pointers." +msgstr "" + +#: ../../c-api/unicode.rst:68 +msgid "" +"The following APIs are C macros and static inlined functions for fast checks " +"and access to internal read-only data of Unicode objects:" +msgstr "" + +#: ../../c-api/unicode.rst:73 +msgid "" +"Return true if the object *obj* is a Unicode object or an instance of a " +"Unicode subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/unicode.rst:79 +msgid "" +"Return true if the object *obj* is a Unicode object, but not an instance of " +"a subtype. This function always succeeds." +msgstr "" + +#: ../../c-api/unicode.rst:85 +msgid "" +"Return the length of the Unicode string, in code points. *unicode* has to " +"be a Unicode object in the \"canonical\" representation (not checked)." +msgstr "" + +#: ../../c-api/unicode.rst:95 +msgid "" +"Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " +"integer types for direct character access. No checks are performed if the " +"canonical representation has the correct character size; " +"use :c:func:`PyUnicode_KIND` to select the right function." +msgstr "" + +#: ../../c-api/unicode.rst:107 +msgid "Return values of the :c:func:`PyUnicode_KIND` macro." +msgstr "" + +#: ../../c-api/unicode.rst:111 +msgid "``PyUnicode_WCHAR_KIND`` has been removed." +msgstr "" + +#: ../../c-api/unicode.rst:117 +msgid "" +"Return one of the PyUnicode kind constants (see above) that indicate how " +"many bytes per character this Unicode object uses to store its data. " +"*unicode* has to be a Unicode object in the \"canonical\" representation " +"(not checked)." +msgstr "" + +#: ../../c-api/unicode.rst:126 +msgid "" +"Return a void pointer to the raw Unicode buffer. *unicode* has to be a " +"Unicode object in the \"canonical\" representation (not checked)." +msgstr "" + +#: ../../c-api/unicode.rst:135 +msgid "" +"Write the code point *value* to the given zero-based *index* in a string." +msgstr "" + +#: ../../c-api/unicode.rst:137 +msgid "" +"The *kind* value and *data* pointer must have been obtained from a string " +"using :c:func:`PyUnicode_KIND` and :c:func:`PyUnicode_DATA` respectively. " +"You must hold a reference to that string while calling :c:func:`!" +"PyUnicode_WRITE`. All requirements of :c:func:`PyUnicode_WriteChar` also " +"apply." +msgstr "" + +#: ../../c-api/unicode.rst:143 +msgid "" +"The function performs no checks for any of its requirements, and is intended " +"for usage in loops." +msgstr "" + +#: ../../c-api/unicode.rst:152 +msgid "" +"Read a code point from a canonical representation *data* (as obtained " +"with :c:func:`PyUnicode_DATA`). No checks or ready calls are performed." +msgstr "" + +#: ../../c-api/unicode.rst:160 +msgid "" +"Read a character from a Unicode object *unicode*, which must be in the " +"\"canonical\" representation. This is less efficient " +"than :c:func:`PyUnicode_READ` if you do multiple consecutive reads." +msgstr "" + +#: ../../c-api/unicode.rst:169 +msgid "" +"Return the maximum code point that is suitable for creating another string " +"based on *unicode*, which must be in the \"canonical\" representation. This " +"is always an approximation but more efficient than iterating over the string." +msgstr "" + +#: ../../c-api/unicode.rst:178 +msgid "" +"Return ``1`` if the string is a valid identifier according to the language " +"definition, section :ref:`identifiers`. Return ``0`` otherwise." +msgstr "" + +#: ../../c-api/unicode.rst:181 +msgid "" +"The function does not call :c:func:`Py_FatalError` anymore if the string is " +"not ready." +msgstr "" + +#: ../../c-api/unicode.rst:188 +msgid "" +"Return true if the string only contains ASCII characters. Equivalent " +"to :py:meth:`str.isascii`." +msgstr "" + +#: ../../c-api/unicode.rst:195 +msgid "Unicode Character Properties" +msgstr "" + +#: ../../c-api/unicode.rst:197 +msgid "" +"Unicode provides many different character properties. The most often needed " +"ones are available through these macros which are mapped to C functions " +"depending on the Python configuration." +msgstr "" + +#: ../../c-api/unicode.rst:204 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." +msgstr "" + +#: ../../c-api/unicode.rst:209 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." +msgstr "" + +#: ../../c-api/unicode.rst:214 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." +msgstr "" + +#: ../../c-api/unicode.rst:219 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." +msgstr "" + +#: ../../c-api/unicode.rst:224 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." +msgstr "" + +#: ../../c-api/unicode.rst:229 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." +msgstr "" + +#: ../../c-api/unicode.rst:234 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." +msgstr "" + +#: ../../c-api/unicode.rst:239 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." +msgstr "" + +#: ../../c-api/unicode.rst:244 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." +msgstr "" + +#: ../../c-api/unicode.rst:249 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." +msgstr "" + +#: ../../c-api/unicode.rst:254 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a printable character, in " +"the sense of :meth:`str.isprintable`." +msgstr "" + +#: ../../c-api/unicode.rst:258 +msgid "These APIs can be used for fast direct character conversions:" +msgstr "" + +#: ../../c-api/unicode.rst:263 +msgid "Return the character *ch* converted to lower case." +msgstr "" + +#: ../../c-api/unicode.rst:268 +msgid "Return the character *ch* converted to upper case." +msgstr "" + +#: ../../c-api/unicode.rst:273 +msgid "Return the character *ch* converted to title case." +msgstr "" + +#: ../../c-api/unicode.rst:278 +msgid "" +"Return the character *ch* converted to a decimal positive integer. Return " +"``-1`` if this is not possible. This function does not raise exceptions." +msgstr "" + +#: ../../c-api/unicode.rst:284 +msgid "" +"Return the character *ch* converted to a single digit integer. Return ``-1`` " +"if this is not possible. This function does not raise exceptions." +msgstr "" + +#: ../../c-api/unicode.rst:290 +msgid "" +"Return the character *ch* converted to a double. Return ``-1.0`` if this is " +"not possible. This function does not raise exceptions." +msgstr "" + +#: ../../c-api/unicode.rst:294 +msgid "These APIs can be used to work with surrogates:" +msgstr "" + +#: ../../c-api/unicode.rst:298 +msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." +msgstr "" + +#: ../../c-api/unicode.rst:302 +msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." +msgstr "" + +#: ../../c-api/unicode.rst:306 +msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." +msgstr "" + +#: ../../c-api/unicode.rst:310 +msgid "" +"Join two surrogate code points and return a single :c:type:`Py_UCS4` value. " +"*high* and *low* are respectively the leading and trailing surrogates in a " +"surrogate pair. *high* must be in the range [0xD800; 0xDBFF] and *low* must " +"be in the range [0xDC00; 0xDFFF]." +msgstr "" + +#: ../../c-api/unicode.rst:317 +msgid "Creating and accessing Unicode strings" +msgstr "" + +#: ../../c-api/unicode.rst:319 +msgid "" +"To create Unicode objects and access their basic sequence properties, use " +"these APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:324 +msgid "" +"Create a new Unicode object. *maxchar* should be the true maximum code " +"point to be placed in the string. As an approximation, it can be rounded up " +"to the nearest value in the sequence 127, 255, 65535, 1114111." +msgstr "" + +#: ../../c-api/unicode.rst:328 +msgid "On error, set an exception and return ``NULL``." +msgstr "" + +#: ../../c-api/unicode.rst:330 +msgid "" +"After creation, the string can be filled " +"by :c:func:`PyUnicode_WriteChar`, :c:func:`PyUnicode_CopyCharacters`, :c:func:`PyUnicode_Fill`, :c:func:`PyUnicode_WRITE` " +"or similar. Since strings are supposed to be immutable, take care to not " +"“use” the result while it is being modified. In particular, before it's " +"filled with its final contents, a string:" +msgstr "" + +#: ../../c-api/unicode.rst:337 +msgid "must not be hashed," +msgstr "" + +#: ../../c-api/unicode.rst:338 +msgid "" +"must not be :c:func:`converted to UTF-8 `, or " +"another non-\"canonical\" representation," +msgstr "" + +#: ../../c-api/unicode.rst:340 +msgid "must not have its reference count changed," +msgstr "" + +#: ../../c-api/unicode.rst:341 +msgid "must not be shared with code that might do one of the above." +msgstr "" + +#: ../../c-api/unicode.rst:343 +msgid "" +"This list is not exhaustive. Avoiding these uses is your responsibility; " +"Python does not always check these requirements." +msgstr "" + +#: ../../c-api/unicode.rst:346 +msgid "" +"To avoid accidentally exposing a partially-written string object, prefer " +"using the :c:type:`PyUnicodeWriter` API, or one of the ``PyUnicode_From*`` " +"functions below." +msgstr "" + +#: ../../c-api/unicode.rst:357 +msgid "" +"Create a new Unicode object with the given *kind* (possible values " +"are :c:macro:`PyUnicode_1BYTE_KIND` etc., as returned " +"by :c:func:`PyUnicode_KIND`). The *buffer* must point to an array of *size* " +"units of 1, 2 or 4 bytes per character, as given by the kind." +msgstr "" + +#: ../../c-api/unicode.rst:362 +msgid "" +"If necessary, the input *buffer* is copied and transformed into the " +"canonical representation. For example, if the *buffer* is a UCS4 string " +"(:c:macro:`PyUnicode_4BYTE_KIND`) and it consists only of codepoints in the " +"UCS1 range, it will be transformed into UCS1 " +"(:c:macro:`PyUnicode_1BYTE_KIND`)." +msgstr "" + +#: ../../c-api/unicode.rst:373 +msgid "" +"Create a Unicode object from the char buffer *str*. The bytes will be " +"interpreted as being UTF-8 encoded. The buffer is copied into the new " +"object. The return value might be a shared object, i.e. modification of the " +"data is not allowed." +msgstr "" + +#: ../../c-api/unicode.rst:379 +msgid "This function raises :exc:`SystemError` when:" +msgstr "" + +#: ../../c-api/unicode.rst:381 +msgid "*size* < 0," +msgstr "" + +#: ../../c-api/unicode.rst:382 +msgid "*str* is ``NULL`` and *size* > 0" +msgstr "" + +#: ../../c-api/unicode.rst:384 +msgid "*str* == ``NULL`` with *size* > 0 is not allowed anymore." +msgstr "" + +#: ../../c-api/unicode.rst:390 +msgid "" +"Create a Unicode object from a UTF-8 encoded null-terminated char buffer " +"*str*." +msgstr "" + +#: ../../c-api/unicode.rst:396 +msgid "" +"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " +"arguments, calculate the size of the resulting Python Unicode string and " +"return a string with the values formatted into it. The variable arguments " +"must be C types and must correspond exactly to the format characters in the " +"*format* ASCII-encoded string." +msgstr "" + +#: ../../c-api/unicode.rst:402 +msgid "" +"A conversion specifier contains two or more characters and has the following " +"components, which must occur in this order:" +msgstr "" + +#: ../../c-api/unicode.rst:405 +msgid "The ``'%'`` character, which marks the start of the specifier." +msgstr "" + +#: ../../c-api/unicode.rst:407 +msgid "" +"Conversion flags (optional), which affect the result of some conversion " +"types." +msgstr "" + +#: ../../c-api/unicode.rst:410 +msgid "" +"Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " +"actual width is given in the next argument, which must be of " +"type :c:expr:`int`, and the object to convert comes after the minimum field " +"width and optional precision." +msgstr "" + +#: ../../c-api/unicode.rst:415 +msgid "" +"Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " +"specified as ``'*'`` (an asterisk), the actual precision is given in the " +"next argument, which must be of type :c:expr:`int`, and the value to convert " +"comes after the precision." +msgstr "" + +#: ../../c-api/unicode.rst:420 +msgid "Length modifier (optional)." +msgstr "" + +#: ../../c-api/unicode.rst:422 +msgid "Conversion type." +msgstr "" + +#: ../../c-api/unicode.rst:424 +msgid "The conversion flag characters are:" +msgstr "" + +#: ../../c-api/unicode.rst:429 +msgid "Flag" +msgstr "" + +#: ../../c-api/unicode.rst:429 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../c-api/unicode.rst:431 +msgid "``0``" +msgstr "``0``" + +#: ../../c-api/unicode.rst:431 +msgid "The conversion will be zero padded for numeric values." +msgstr "" + +#: ../../c-api/unicode.rst:433 +msgid "``-``" +msgstr "``-``" + +#: ../../c-api/unicode.rst:433 +msgid "" +"The converted value is left adjusted (overrides the ``0`` flag if both are " +"given)." +msgstr "" + +#: ../../c-api/unicode.rst:437 +msgid "" +"The length modifiers for following integer conversions (``d``, ``i``, ``o``, " +"``u``, ``x``, or ``X``) specify the type of the argument (:c:expr:`int` by " +"default):" +msgstr "" + +#: ../../c-api/unicode.rst:444 +msgid "Modifier" +msgstr "" + +#: ../../c-api/unicode.rst:444 +msgid "Types" +msgstr "" + +#: ../../c-api/unicode.rst:446 +msgid "``l``" +msgstr "``l``" + +#: ../../c-api/unicode.rst:446 +msgid ":c:expr:`long` or :c:expr:`unsigned long`" +msgstr "" + +#: ../../c-api/unicode.rst:448 +msgid "``ll``" +msgstr "``ll``" + +#: ../../c-api/unicode.rst:448 +msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" +msgstr "" + +#: ../../c-api/unicode.rst:450 +msgid "``j``" +msgstr "``j``" + +#: ../../c-api/unicode.rst:450 +msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" +msgstr "" + +#: ../../c-api/unicode.rst:452 +msgid "``z``" +msgstr "``z``" + +#: ../../c-api/unicode.rst:452 +msgid ":c:type:`size_t` or :c:type:`ssize_t`" +msgstr "" + +#: ../../c-api/unicode.rst:454 +msgid "``t``" +msgstr "``t``" + +#: ../../c-api/unicode.rst:454 +msgid ":c:type:`ptrdiff_t`" +msgstr "" + +#: ../../c-api/unicode.rst:457 +msgid "" +"The length modifier ``l`` for following conversions ``s`` or ``V`` specify " +"that the type of the argument is :c:expr:`const wchar_t*`." +msgstr "" + +#: ../../c-api/unicode.rst:460 +msgid "The conversion specifiers are:" +msgstr "" + +#: ../../c-api/unicode.rst:466 +msgid "Conversion Specifier" +msgstr "" + +#: ../../c-api/unicode.rst:467 +msgid "Type" +msgstr "" + +#: ../../c-api/unicode.rst:468 +msgid "Comment" +msgstr "" + +#: ../../c-api/unicode.rst:470 +msgid "``%``" +msgstr "``%``" + +#: ../../c-api/unicode.rst:471 +msgid "*n/a*" +msgstr "" + +#: ../../c-api/unicode.rst:472 +msgid "The literal ``%`` character." +msgstr "" + +#: ../../c-api/unicode.rst:474 +msgid "``d``, ``i``" +msgstr "" + +#: ../../c-api/unicode.rst:475 ../../c-api/unicode.rst:479 +#: ../../c-api/unicode.rst:483 ../../c-api/unicode.rst:487 +#: ../../c-api/unicode.rst:491 +msgid "Specified by the length modifier" +msgstr "" + +#: ../../c-api/unicode.rst:476 +msgid "The decimal representation of a signed C integer." +msgstr "" + +#: ../../c-api/unicode.rst:478 +msgid "``u``" +msgstr "``u``" + +#: ../../c-api/unicode.rst:480 +msgid "The decimal representation of an unsigned C integer." +msgstr "" + +#: ../../c-api/unicode.rst:482 +msgid "``o``" +msgstr "``o``" + +#: ../../c-api/unicode.rst:484 +msgid "The octal representation of an unsigned C integer." +msgstr "" + +#: ../../c-api/unicode.rst:486 +msgid "``x``" +msgstr "``x``" + +#: ../../c-api/unicode.rst:488 +msgid "The hexadecimal representation of an unsigned C integer (lowercase)." +msgstr "" + +#: ../../c-api/unicode.rst:490 +msgid "``X``" +msgstr "``X``" + +#: ../../c-api/unicode.rst:492 +msgid "The hexadecimal representation of an unsigned C integer (uppercase)." +msgstr "" + +#: ../../c-api/unicode.rst:494 +msgid "``c``" +msgstr "``c``" + +#: ../../c-api/unicode.rst:495 +msgid ":c:expr:`int`" +msgstr "" + +#: ../../c-api/unicode.rst:496 +msgid "A single character." +msgstr "" + +#: ../../c-api/unicode.rst:498 +msgid "``s``" +msgstr "``s``" + +#: ../../c-api/unicode.rst:499 +msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" +msgstr "" + +#: ../../c-api/unicode.rst:500 +msgid "A null-terminated C character array." +msgstr "" + +#: ../../c-api/unicode.rst:502 +msgid "``p``" +msgstr "``p``" + +#: ../../c-api/unicode.rst:503 +msgid ":c:expr:`const void*`" +msgstr "" + +#: ../../c-api/unicode.rst:504 +msgid "" +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." +msgstr "" + +#: ../../c-api/unicode.rst:509 +msgid "``A``" +msgstr "``A``" + +#: ../../c-api/unicode.rst:510 ../../c-api/unicode.rst:514 +#: ../../c-api/unicode.rst:524 ../../c-api/unicode.rst:528 +#: ../../c-api/unicode.rst:532 ../../c-api/unicode.rst:537 +msgid ":c:expr:`PyObject*`" +msgstr "" + +#: ../../c-api/unicode.rst:511 +msgid "The result of calling :func:`ascii`." +msgstr "" + +#: ../../c-api/unicode.rst:513 +msgid "``U``" +msgstr "``U``" + +#: ../../c-api/unicode.rst:515 +msgid "A Unicode object." +msgstr "" + +#: ../../c-api/unicode.rst:517 +msgid "``V``" +msgstr "``V``" + +#: ../../c-api/unicode.rst:518 +msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" +msgstr "" + +#: ../../c-api/unicode.rst:519 +msgid "" +"A Unicode object (which may be ``NULL``) and a null-terminated C character " +"array as a second parameter (which will be used, if the first parameter is " +"``NULL``)." +msgstr "" + +#: ../../c-api/unicode.rst:523 +msgid "``S``" +msgstr "``S``" + +#: ../../c-api/unicode.rst:525 +msgid "The result of calling :c:func:`PyObject_Str`." +msgstr "" + +#: ../../c-api/unicode.rst:527 +msgid "``R``" +msgstr "``R``" + +#: ../../c-api/unicode.rst:529 +msgid "The result of calling :c:func:`PyObject_Repr`." +msgstr "" + +#: ../../c-api/unicode.rst:531 +msgid "``T``" +msgstr "``T``" + +#: ../../c-api/unicode.rst:533 +msgid "" +"Get the fully qualified name of an object type; " +"call :c:func:`PyType_GetFullyQualifiedName`." +msgstr "" + +#: ../../c-api/unicode.rst:536 +msgid "``#T``" +msgstr "``#T``" + +#: ../../c-api/unicode.rst:538 +msgid "" +"Similar to ``T`` format, but use a colon (``:``) as separator between the " +"module name and the qualified name." +msgstr "" + +#: ../../c-api/unicode.rst:541 +msgid "``N``" +msgstr "``N``" + +#: ../../c-api/unicode.rst:542 ../../c-api/unicode.rst:547 +msgid ":c:expr:`PyTypeObject*`" +msgstr "" + +#: ../../c-api/unicode.rst:543 +msgid "" +"Get the fully qualified name of a type; " +"call :c:func:`PyType_GetFullyQualifiedName`." +msgstr "" + +#: ../../c-api/unicode.rst:546 +msgid "``#N``" +msgstr "``#N``" + +#: ../../c-api/unicode.rst:548 +msgid "" +"Similar to ``N`` format, but use a colon (``:``) as separator between the " +"module name and the qualified name." +msgstr "" + +#: ../../c-api/unicode.rst:552 +msgid "" +"The width formatter unit is number of characters rather than bytes. The " +"precision formatter unit is number of bytes or :c:type:`wchar_t` items (if " +"the length modifier ``l`` is used) for ``\"%s\"`` and ``\"%V\"`` (if the " +"``PyObject*`` argument is ``NULL``), and a number of characters for " +"``\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " +"``PyObject*`` argument is not ``NULL``)." +msgstr "" + +#: ../../c-api/unicode.rst:560 +msgid "" +"Unlike to C :c:func:`printf` the ``0`` flag has effect even when a precision " +"is given for integer conversions (``d``, ``i``, ``u``, ``o``, ``x``, or " +"``X``)." +msgstr "" + +#: ../../c-api/unicode.rst:564 +msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." +msgstr "" + +#: ../../c-api/unicode.rst:567 +msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." +msgstr "" + +#: ../../c-api/unicode.rst:570 +msgid "" +"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " +"``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." +msgstr "" + +#: ../../c-api/unicode.rst:574 +msgid "" +"Support for conversion specifiers ``o`` and ``X``. Support for length " +"modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " +"conversions. Length modifier ``l`` is now applied to conversion specifiers " +"``s`` and ``V``. Support for variable width and precision ``*``. Support for " +"flag ``-``." +msgstr "" + +#: ../../c-api/unicode.rst:582 +msgid "" +"An unrecognized format character now sets a :exc:`SystemError`. In previous " +"versions it caused all the rest of the format string to be copied as-is to " +"the result string, and any extra arguments discarded." +msgstr "" + +#: ../../c-api/unicode.rst:586 +msgid "Support for ``%T``, ``%#T``, ``%N`` and ``%#N`` formats added." +msgstr "" + +#: ../../c-api/unicode.rst:592 +msgid "" +"Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " +"arguments." +msgstr "" + +#: ../../c-api/unicode.rst:598 +msgid "" +"Copy an instance of a Unicode subtype to a new true Unicode object if " +"necessary. If *obj* is already a true Unicode object (not a subtype), return " +"a new :term:`strong reference` to the object." +msgstr "" + +#: ../../c-api/unicode.rst:602 +msgid "" +"Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." +msgstr "" + +#: ../../c-api/unicode.rst:607 +msgid "Create a Unicode Object from the given Unicode code point *ordinal*." +msgstr "" + +#: ../../c-api/unicode.rst:609 +msgid "" +"The ordinal must be in ``range(0x110000)``. A :exc:`ValueError` is raised in " +"the case it is not." +msgstr "" + +#: ../../c-api/unicode.rst:616 +msgid "Decode an encoded object *obj* to a Unicode object." +msgstr "" + +#: ../../c-api/unicode.rst:618 +msgid "" +":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " +"` are decoded according to the given *encoding* and using " +"the error handling defined by *errors*. Both can be ``NULL`` to have the " +"interface use the default values (see :ref:`builtincodecs` for details)." +msgstr "" + +#: ../../c-api/unicode.rst:624 +msgid "" +"All other objects, including Unicode objects, cause a :exc:`TypeError` to be " +"set." +msgstr "" + +#: ../../c-api/unicode.rst:627 +msgid "" +"The API returns ``NULL`` if there was an error. The caller is responsible " +"for decref'ing the returned objects." +msgstr "" + +#: ../../c-api/unicode.rst:633 +msgid "" +"Append the string *right* to the end of *p_left*. *p_left* must point to " +"a :term:`strong reference` to a Unicode object; :c:func:`!PyUnicode_Append` " +"releases (\"steals\") this reference." +msgstr "" + +#: ../../c-api/unicode.rst:637 +msgid "On error, set *\\*p_left* to ``NULL`` and set an exception." +msgstr "" + +#: ../../c-api/unicode.rst:639 +msgid "On success, set *\\*p_left* to a new strong reference to the result." +msgstr "" + +#: ../../c-api/unicode.rst:644 +msgid "" +"The function is similar to :c:func:`PyUnicode_Append`, with the only " +"difference being that it decrements the reference count of *right* by one." +msgstr "" + +#: ../../c-api/unicode.rst:650 +msgid "" +"Return a mapping suitable for decoding a custom single-byte encoding. Given " +"a Unicode string *string* of up to 256 characters representing an encoding " +"table, returns either a compact internal mapping object or a dictionary " +"mapping character ordinals to byte values. Raises a :exc:`TypeError` and " +"return ``NULL`` on invalid input." +msgstr "" + +#: ../../c-api/unicode.rst:661 +msgid "" +"Return the name of the default string encoding, ``\"utf-8\"``. " +"See :func:`sys.getdefaultencoding`." +msgstr "" + +#: ../../c-api/unicode.rst:664 +msgid "" +"The returned string does not need to be freed, and is valid until " +"interpreter shutdown." +msgstr "" + +#: ../../c-api/unicode.rst:670 +msgid "Return the length of the Unicode object, in code points." +msgstr "" + +#: ../../c-api/unicode.rst:672 +msgid "On error, set an exception and return ``-1``." +msgstr "" + +#: ../../c-api/unicode.rst:683 +msgid "" +"Copy characters from one Unicode object into another. This function " +"performs character conversion when necessary and falls back to :c:func:`!" +"memcpy` if possible. Returns ``-1`` and sets an exception on error, " +"otherwise returns the number of copied characters." +msgstr "" + +#: ../../c-api/unicode.rst:688 ../../c-api/unicode.rst:718 +#: ../../c-api/unicode.rst:738 +msgid "" +"The string must not have been “used” yet. See :c:func:`PyUnicode_New` for " +"details." +msgstr "" + +#: ../../c-api/unicode.rst:696 +msgid "" +"Resize a Unicode object *\\*unicode* to the new *length* in code points." +msgstr "" + +#: ../../c-api/unicode.rst:698 +msgid "" +"Try to resize the string in place (which is usually faster than allocating a " +"new string and copying characters), or create a new string." +msgstr "" + +#: ../../c-api/unicode.rst:701 +msgid "" +"*\\*unicode* is modified to point to the new (resized) object and ``0`` is " +"returned on success. Otherwise, ``-1`` is returned and an exception is set, " +"and *\\*unicode* is left untouched." +msgstr "" + +#: ../../c-api/unicode.rst:705 +msgid "" +"The function doesn't check string content, the result may not be a string in " +"canonical representation." +msgstr "" + +#: ../../c-api/unicode.rst:712 +msgid "" +"Fill a string with a character: write *fill_char* into " +"``unicode[start:start+length]``." +msgstr "" + +#: ../../c-api/unicode.rst:715 +msgid "" +"Fail if *fill_char* is bigger than the string maximum character, or if the " +"string has more than 1 reference." +msgstr "" + +#: ../../c-api/unicode.rst:721 +msgid "" +"Return the number of written character, or return ``-1`` and raise an " +"exception on error." +msgstr "" + +#: ../../c-api/unicode.rst:730 +msgid "" +"Write a *character* to the string *unicode* at the zero-based *index*. " +"Return ``0`` on success, ``-1`` on error with an exception set." +msgstr "" + +#: ../../c-api/unicode.rst:733 +msgid "" +"This function checks that *unicode* is a Unicode object, that the index is " +"not out of bounds, and that the object's reference count is one). " +"See :c:func:`PyUnicode_WRITE` for a version that skips these checks, making " +"them your responsibility." +msgstr "" + +#: ../../c-api/unicode.rst:746 +msgid "" +"Read a character from a string. This function checks that *unicode* is a " +"Unicode object and the index is not out of bounds, in contrast " +"to :c:func:`PyUnicode_READ_CHAR`, which performs no error checking." +msgstr "" + +#: ../../c-api/unicode.rst:750 +msgid "Return character on success, ``-1`` on error with an exception set." +msgstr "" + +#: ../../c-api/unicode.rst:758 +msgid "" +"Return a substring of *unicode*, from character index *start* (included) to " +"character index *end* (excluded). Negative indices are not supported. On " +"error, set an exception and return ``NULL``." +msgstr "" + +#: ../../c-api/unicode.rst:768 +msgid "" +"Copy the string *unicode* into a UCS4 buffer, including a null character, if " +"*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " +"particular, a :exc:`SystemError` if *buflen* is smaller than the length of " +"*unicode*). *buffer* is returned on success." +msgstr "" + +#: ../../c-api/unicode.rst:778 +msgid "" +"Copy the string *unicode* into a new UCS4 buffer that is allocated " +"using :c:func:`PyMem_Malloc`. If this fails, ``NULL`` is returned with " +"a :exc:`MemoryError` set. The returned buffer always has an extra null code " +"point appended." +msgstr "" + +#: ../../c-api/unicode.rst:787 +msgid "Locale Encoding" +msgstr "" + +#: ../../c-api/unicode.rst:789 +msgid "" +"The current locale encoding can be used to decode text from the operating " +"system." +msgstr "" + +#: ../../c-api/unicode.rst:796 +msgid "" +"Decode a string from UTF-8 on Android and VxWorks, or from the current " +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The decoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. *str* must end with a " +"null character but cannot contain embedded null characters." +msgstr "" + +#: ../../c-api/unicode.rst:803 +msgid "" +"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from " +"the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/unicode.rst:806 ../../c-api/unicode.rst:841 +msgid "This function ignores the :ref:`Python UTF-8 Mode `." +msgstr "" + +#: ../../c-api/unicode.rst:810 ../../c-api/unicode.rst:926 +msgid "The :c:func:`Py_DecodeLocale` function." +msgstr "" + +#: ../../c-api/unicode.rst:814 +msgid "" +"The function now also uses the current locale encoding for the " +"``surrogateescape`` error handler, except on Android. " +"Previously, :c:func:`Py_DecodeLocale` was used for the ``surrogateescape``, " +"and the current locale encoding was used for ``strict``." +msgstr "" + +#: ../../c-api/unicode.rst:823 +msgid "" +"Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " +"length using :c:func:`!strlen`." +msgstr "" + +#: ../../c-api/unicode.rst:831 +msgid "" +"Encode a Unicode object to UTF-8 on Android and VxWorks, or to the current " +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. Return " +"a :class:`bytes` object. *unicode* cannot contain embedded null characters." +msgstr "" + +#: ../../c-api/unicode.rst:838 +msgid "" +"Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to " +"the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/unicode.rst:845 ../../c-api/unicode.rst:957 +msgid "The :c:func:`Py_EncodeLocale` function." +msgstr "" + +#: ../../c-api/unicode.rst:849 +msgid "" +"The function now also uses the current locale encoding for the " +"``surrogateescape`` error handler, except on Android. " +"Previously, :c:func:`Py_EncodeLocale` was used for the ``surrogateescape``, " +"and the current locale encoding was used for ``strict``." +msgstr "" + +#: ../../c-api/unicode.rst:858 +msgid "File System Encoding" +msgstr "" + +#: ../../c-api/unicode.rst:860 +msgid "" +"Functions encoding to and decoding from the :term:`filesystem encoding and " +"error handler` (:pep:`383` and :pep:`529`)." +msgstr "" + +#: ../../c-api/unicode.rst:863 +msgid "" +"To encode file names to :class:`bytes` during argument parsing, the " +"``\"O&\"`` converter should be used, passing :c:func:`!" +"PyUnicode_FSConverter` as the conversion function:" +msgstr "" + +#: ../../c-api/unicode.rst:869 +msgid "" +":ref:`PyArg_Parse\\* converter `: encode :class:`str` objects " +"-- obtained directly or through the :class:`os.PathLike` interface -- " +"to :class:`bytes` using :c:func:`PyUnicode_EncodeFSDefault`; :class:`bytes` " +"objects are output as-is. *result* must be an address of a C variable of " +"type :c:expr:`PyObject*` (or :c:expr:`PyBytesObject*`). On success, set the " +"variable to a new :term:`strong reference` to a :ref:`bytes object " +"` which must be released when it is no longer used and return " +"a non-zero value (:c:macro:`Py_CLEANUP_SUPPORTED`). Embedded null bytes are " +"not allowed in the result. On failure, return ``0`` with an exception set." +msgstr "" + +#: ../../c-api/unicode.rst:881 +msgid "" +"If *obj* is ``NULL``, the function releases a strong reference stored in the " +"variable referred by *result* and returns ``1``." +msgstr "" + +#: ../../c-api/unicode.rst:886 ../../c-api/unicode.rst:913 +msgid "Accepts a :term:`path-like object`." +msgstr "" + +#: ../../c-api/unicode.rst:889 +msgid "" +"To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " +"converter should be used, passing :c:func:`!PyUnicode_FSDecoder` as the " +"conversion function:" +msgstr "" + +#: ../../c-api/unicode.rst:895 +msgid "" +":ref:`PyArg_Parse\\* converter `: decode :class:`bytes` objects " +"-- obtained either directly or indirectly through the :class:`os.PathLike` " +"interface -- to :class:`str` " +"using :c:func:`PyUnicode_DecodeFSDefaultAndSize`; :class:`str` objects are " +"output as-is. *result* must be an address of a C variable of " +"type :c:expr:`PyObject*` (or :c:expr:`PyUnicodeObject*`). On success, set " +"the variable to a new :term:`strong reference` to a :ref:`Unicode object " +"` which must be released when it is no longer used and " +"return a non-zero value (:c:macro:`Py_CLEANUP_SUPPORTED`). Embedded null " +"characters are not allowed in the result. On failure, return ``0`` with an " +"exception set." +msgstr "" + +#: ../../c-api/unicode.rst:908 +msgid "" +"If *obj* is ``NULL``, release the strong reference to the object referred to " +"by *result* and return ``1``." +msgstr "" + +#: ../../c-api/unicode.rst:919 +msgid "Decode a string from the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/unicode.rst:921 +msgid "" +"If you need to decode a string from the current locale encoding, " +"use :c:func:`PyUnicode_DecodeLocaleAndSize`." +msgstr "" + +#: ../../c-api/unicode.rst:928 ../../c-api/unicode.rst:941 +#: ../../c-api/unicode.rst:961 +msgid "" +"The :term:`filesystem error handler ` " +"is now used." +msgstr "" + +#: ../../c-api/unicode.rst:935 +msgid "" +"Decode a null-terminated string from the :term:`filesystem encoding and " +"error handler`." +msgstr "" + +#: ../../c-api/unicode.rst:938 +msgid "" +"If the string length is known, " +"use :c:func:`PyUnicode_DecodeFSDefaultAndSize`." +msgstr "" + +#: ../../c-api/unicode.rst:948 +msgid "" +"Encode a Unicode object to the :term:`filesystem encoding and error " +"handler`, and return :class:`bytes`. Note that the resulting :class:`bytes` " +"object can contain null bytes." +msgstr "" + +#: ../../c-api/unicode.rst:952 +msgid "" +"If you need to encode a string to the current locale encoding, " +"use :c:func:`PyUnicode_EncodeLocale`." +msgstr "" + +#: ../../c-api/unicode.rst:966 +msgid "wchar_t Support" +msgstr "" + +#: ../../c-api/unicode.rst:968 +msgid ":c:type:`wchar_t` support for platforms which support it:" +msgstr "" + +#: ../../c-api/unicode.rst:972 +msgid "" +"Create a Unicode object from the :c:type:`wchar_t` buffer *wstr* of the " +"given *size*. Passing ``-1`` as the *size* indicates that the function must " +"itself compute the length, using :c:func:`!wcslen`. Return ``NULL`` on " +"failure." +msgstr "" + +#: ../../c-api/unicode.rst:980 +msgid "" +"Copy the Unicode object contents into the :c:type:`wchar_t` buffer *wstr*. " +"At most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " +"trailing null termination character). Return the number " +"of :c:type:`wchar_t` characters copied or ``-1`` in case of an error." +msgstr "" + +#: ../../c-api/unicode.rst:985 +msgid "" +"When *wstr* is ``NULL``, instead return the *size* that would be required to " +"store all of *unicode* including a terminating null." +msgstr "" + +#: ../../c-api/unicode.rst:988 +msgid "" +"Note that the resulting :c:expr:`wchar_t*` string may or may not be null-" +"terminated. It is the responsibility of the caller to make sure that " +"the :c:expr:`wchar_t*` string is null-terminated in case this is required by " +"the application. Also, note that the :c:expr:`wchar_t*` string might contain " +"null characters, which would cause the string to be truncated when used with " +"most C functions." +msgstr "" + +#: ../../c-api/unicode.rst:998 +msgid "" +"Convert the Unicode object to a wide character string. The output string " +"always ends with a null character. If *size* is not ``NULL``, write the " +"number of wide characters (excluding the trailing null termination " +"character) into *\\*size*. Note that the resulting :c:type:`wchar_t` string " +"might contain null characters, which would cause the string to be truncated " +"when used with most C functions. If *size* is ``NULL`` and " +"the :c:expr:`wchar_t*` string contains null characters a :exc:`ValueError` " +"is raised." +msgstr "" + +#: ../../c-api/unicode.rst:1006 +msgid "" +"Returns a buffer allocated by :c:macro:`PyMem_New` (use :c:func:`PyMem_Free` " +"to free it) on success. On error, returns ``NULL`` and *\\*size* is " +"undefined. Raises a :exc:`MemoryError` if memory allocation is failed." +msgstr "" + +#: ../../c-api/unicode.rst:1013 +msgid "" +"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " +"string contains null characters." +msgstr "" + +#: ../../c-api/unicode.rst:1021 +msgid "Built-in Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1023 +msgid "" +"Python provides a set of built-in codecs which are written in C for speed. " +"All of these codecs are directly usable via the following functions." +msgstr "" + +#: ../../c-api/unicode.rst:1026 +msgid "" +"Many of the following APIs take two arguments encoding and errors, and they " +"have the same semantics as the ones of the built-in :func:`str` string " +"object constructor." +msgstr "" + +#: ../../c-api/unicode.rst:1030 +msgid "" +"Setting encoding to ``NULL`` causes the default encoding to be used which is " +"UTF-8. The file system calls should use :c:func:`PyUnicode_FSConverter` for " +"encoding file names. This uses the :term:`filesystem encoding and error " +"handler` internally." +msgstr "" + +#: ../../c-api/unicode.rst:1035 +msgid "" +"Error handling is set by errors which may also be set to ``NULL`` meaning to " +"use the default handling defined for the codec. Default error handling for " +"all built-in codecs is \"strict\" (:exc:`ValueError` is raised)." +msgstr "" + +#: ../../c-api/unicode.rst:1039 +msgid "" +"The codecs all use a similar interface. Only deviations from the following " +"generic ones are documented for simplicity." +msgstr "" + +#: ../../c-api/unicode.rst:1044 +msgid "Generic Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1046 +msgid "The following macro is provided:" +msgstr "" + +#: ../../c-api/unicode.rst:1051 +msgid "The Unicode code point ``U+FFFD`` (replacement character)." +msgstr "" + +#: ../../c-api/unicode.rst:1053 +msgid "" +"This Unicode character is used as the replacement character during decoding " +"if the *errors* argument is set to \"replace\"." +msgstr "" + +#: ../../c-api/unicode.rst:1057 +msgid "These are the generic codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1063 +msgid "" +"Create a Unicode object by decoding *size* bytes of the encoded string " +"*str*. *encoding* and *errors* have the same meaning as the parameters of " +"the same name in the :func:`str` built-in function. The codec to be used is " +"looked up using the Python codec registry. Return ``NULL`` if an exception " +"was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1073 +msgid "" +"Encode a Unicode object and return the result as Python bytes object. " +"*encoding* and *errors* have the same meaning as the parameters of the same " +"name in the Unicode :meth:`~str.encode` method. The codec to be used is " +"looked up using the Python codec registry. Return ``NULL`` if an exception " +"was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1081 +msgid "UTF-8 Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1083 +msgid "These are the UTF-8 codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1088 +msgid "" +"Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " +"*str*. Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1095 +msgid "" +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " +"*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " +"not be treated as an error. Those bytes will not be decoded and the number " +"of bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../../c-api/unicode.rst:1103 +msgid "" +"Encode a Unicode object using UTF-8 and return the result as Python bytes " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " +"raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1107 ../../c-api/unicode.rst:1122 +msgid "" +"The function fails if the string contains surrogate code points (``U+D800`` " +"- ``U+DFFF``)." +msgstr "" + +#: ../../c-api/unicode.rst:1113 +msgid "" +"Return a pointer to the UTF-8 encoding of the Unicode object, and store the " +"size of the encoded representation (in bytes) in *size*. The *size* " +"argument can be ``NULL``; in this case no size will be stored. The returned " +"buffer always has an extra null byte appended (not included in *size*), " +"regardless of whether there are any other null code points." +msgstr "" + +#: ../../c-api/unicode.rst:1119 +msgid "" +"On error, set an exception, set *size* to ``-1`` (if it's not NULL) and " +"return ``NULL``." +msgstr "" + +#: ../../c-api/unicode.rst:1125 +msgid "" +"This caches the UTF-8 representation of the string in the Unicode object, " +"and subsequent calls will return a pointer to the same buffer. The caller " +"is not responsible for deallocating the buffer. The buffer is deallocated " +"and pointers to it become invalid when the Unicode object is garbage " +"collected." +msgstr "" + +#: ../../c-api/unicode.rst:1132 ../../c-api/unicode.rst:1154 +msgid "The return type is now ``const char *`` rather of ``char *``." +msgstr "" + +#: ../../c-api/unicode.rst:1135 +msgid "This function is a part of the :ref:`limited API `." +msgstr "" + +#: ../../c-api/unicode.rst:1141 +msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." +msgstr "" + +#: ../../c-api/unicode.rst:1145 +msgid "" +"This function does not have any special behavior for `null characters " +"`_ embedded within *unicode*. " +"As a result, strings containing null characters will remain in the returned " +"string, which some C functions might interpret as the end of the string, " +"leading to truncation. If truncation is an issue, it is recommended to " +"use :c:func:`PyUnicode_AsUTF8AndSize` instead." +msgstr "" + +#: ../../c-api/unicode.rst:1159 +msgid "UTF-32 Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1161 +msgid "These are the UTF-32 codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1167 +msgid "" +"Decode *size* bytes from a UTF-32 encoded buffer string and return the " +"corresponding Unicode object. *errors* (if non-``NULL``) defines the error " +"handling. It defaults to \"strict\"." +msgstr "" + +#: ../../c-api/unicode.rst:1171 ../../c-api/unicode.rst:1221 +msgid "" +"If *byteorder* is non-``NULL``, the decoder starts decoding using the given " +"byte order::" +msgstr "" + +#: ../../c-api/unicode.rst:1174 ../../c-api/unicode.rst:1224 +msgid "" +"*byteorder == -1: little endian\n" +"*byteorder == 0: native order\n" +"*byteorder == 1: big endian" +msgstr "" + +#: ../../c-api/unicode.rst:1178 +msgid "" +"If ``*byteorder`` is zero, and the first four bytes of the input data are a " +"byte order mark (BOM), the decoder switches to this byte order and the BOM " +"is not copied into the resulting Unicode string. If ``*byteorder`` is " +"``-1`` or ``1``, any byte order mark is copied to the output." +msgstr "" + +#: ../../c-api/unicode.rst:1183 +msgid "" +"After completion, *\\*byteorder* is set to the current byte order at the end " +"of input data." +msgstr "" + +#: ../../c-api/unicode.rst:1186 ../../c-api/unicode.rst:1237 +msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." +msgstr "" + +#: ../../c-api/unicode.rst:1188 ../../c-api/unicode.rst:1239 +msgid "Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1194 +msgid "" +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " +"treat trailing incomplete UTF-32 byte sequences (such as a number of bytes " +"not divisible by four) as an error. Those bytes will not be decoded and the " +"number of bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../../c-api/unicode.rst:1203 +msgid "" +"Return a Python byte string using the UTF-32 encoding in native byte order. " +"The string always starts with a BOM mark. Error handling is \"strict\". " +"Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1209 +msgid "UTF-16 Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1211 +msgid "These are the UTF-16 codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1217 +msgid "" +"Decode *size* bytes from a UTF-16 encoded buffer string and return the " +"corresponding Unicode object. *errors* (if non-``NULL``) defines the error " +"handling. It defaults to \"strict\"." +msgstr "" + +#: ../../c-api/unicode.rst:1228 +msgid "" +"If ``*byteorder`` is zero, and the first two bytes of the input data are a " +"byte order mark (BOM), the decoder switches to this byte order and the BOM " +"is not copied into the resulting Unicode string. If ``*byteorder`` is " +"``-1`` or ``1``, any byte order mark is copied to the output (where it will " +"result in either a ``\\ufeff`` or a ``\\ufffe`` character)." +msgstr "" + +#: ../../c-api/unicode.rst:1234 +msgid "" +"After completion, ``*byteorder`` is set to the current byte order at the end " +"of input data." +msgstr "" + +#: ../../c-api/unicode.rst:1245 +msgid "" +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " +"treat trailing incomplete UTF-16 byte sequences (such as an odd number of " +"bytes or a split surrogate pair) as an error. Those bytes will not be " +"decoded and the number of bytes that have been decoded will be stored in " +"*consumed*." +msgstr "" + +#: ../../c-api/unicode.rst:1254 +msgid "" +"Return a Python byte string using the UTF-16 encoding in native byte order. " +"The string always starts with a BOM mark. Error handling is \"strict\". " +"Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1260 +msgid "UTF-7 Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1262 +msgid "These are the UTF-7 codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1267 +msgid "" +"Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " +"*str*. Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1274 +msgid "" +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " +"*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " +"not be treated as an error. Those bytes will not be decoded and the number " +"of bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../../c-api/unicode.rst:1281 +msgid "Unicode-Escape Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1283 +msgid "These are the \"Unicode Escape\" codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1289 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Unicode-Escape " +"encoded string *str*. Return ``NULL`` if an exception was raised by the " +"codec." +msgstr "" + +#: ../../c-api/unicode.rst:1295 +msgid "" +"Encode a Unicode object using Unicode-Escape and return the result as a " +"bytes object. Error handling is \"strict\". Return ``NULL`` if an " +"exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1301 +msgid "Raw-Unicode-Escape Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1303 +msgid "These are the \"Raw Unicode Escape\" codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1309 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " +"encoded string *str*. Return ``NULL`` if an exception was raised by the " +"codec." +msgstr "" + +#: ../../c-api/unicode.rst:1315 +msgid "" +"Encode a Unicode object using Raw-Unicode-Escape and return the result as a " +"bytes object. Error handling is \"strict\". Return ``NULL`` if an " +"exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1321 +msgid "Latin-1 Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1323 +msgid "" +"These are the Latin-1 codec APIs: Latin-1 corresponds to the first 256 " +"Unicode ordinals and only these are accepted by the codecs during encoding." +msgstr "" + +#: ../../c-api/unicode.rst:1329 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " +"string *str*. Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1335 +msgid "" +"Encode a Unicode object using Latin-1 and return the result as Python bytes " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " +"raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1341 +msgid "ASCII Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1343 +msgid "" +"These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " +"other codes generate errors." +msgstr "" + +#: ../../c-api/unicode.rst:1349 +msgid "" +"Create a Unicode object by decoding *size* bytes of the ASCII encoded string " +"*str*. Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1355 +msgid "" +"Encode a Unicode object using ASCII and return the result as Python bytes " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " +"raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1361 +msgid "Character Map Codecs" +msgstr "" + +#: ../../c-api/unicode.rst:1363 +msgid "" +"This codec is special in that it can be used to implement many different " +"codecs (and this is in fact what was done to obtain most of the standard " +"codecs included in the :mod:`!encodings` package). The codec uses mappings " +"to encode and decode characters. The mapping objects provided must support " +"the :meth:`~object.__getitem__` mapping interface; dictionaries and " +"sequences work well." +msgstr "" + +#: ../../c-api/unicode.rst:1369 +msgid "These are the mapping codec APIs:" +msgstr "" + +#: ../../c-api/unicode.rst:1374 +msgid "" +"Create a Unicode object by decoding *size* bytes of the encoded string *str* " +"using the given *mapping* object. Return ``NULL`` if an exception was " +"raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1378 +msgid "" +"If *mapping* is ``NULL``, Latin-1 decoding will be applied. Else *mapping* " +"must map bytes ordinals (integers in the range from 0 to 255) to Unicode " +"strings, integers (which are then interpreted as Unicode ordinals) or " +"``None``. Unmapped data bytes -- ones which cause a :exc:`LookupError`, as " +"well as ones which get mapped to ``None``, ``0xFFFE`` or ``'\\ufffe'``, are " +"treated as undefined mappings and cause an error." +msgstr "" + +#: ../../c-api/unicode.rst:1389 +msgid "" +"Encode a Unicode object using the given *mapping* object and return the " +"result as a bytes object. Error handling is \"strict\". Return ``NULL`` if " +"an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1393 +msgid "" +"The *mapping* object must map Unicode ordinal integers to bytes objects, " +"integers in the range from 0 to 255 or ``None``. Unmapped character " +"ordinals (ones which cause a :exc:`LookupError`) as well as mapped to " +"``None`` are treated as \"undefined mapping\" and cause an error." +msgstr "" + +#: ../../c-api/unicode.rst:1399 +msgid "The following codec API is special in that maps Unicode to Unicode." +msgstr "" + +#: ../../c-api/unicode.rst:1403 +msgid "" +"Translate a string by applying a character mapping table to it and return " +"the resulting Unicode object. Return ``NULL`` if an exception was raised by " +"the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1407 +msgid "" +"The mapping table must map Unicode ordinal integers to Unicode ordinal " +"integers or ``None`` (causing deletion of the character)." +msgstr "" + +#: ../../c-api/unicode.rst:1410 +msgid "" +"Mapping tables need only provide the :meth:`~object.__getitem__` interface; " +"dictionaries and sequences work well. Unmapped character ordinals (ones " +"which cause a :exc:`LookupError`) are left untouched and are copied as-is." +msgstr "" + +#: ../../c-api/unicode.rst:1414 +msgid "" +"*errors* has the usual meaning for codecs. It may be ``NULL`` which " +"indicates to use the default error handling." +msgstr "" + +#: ../../c-api/unicode.rst:1419 +msgid "MBCS codecs for Windows" +msgstr "" + +#: ../../c-api/unicode.rst:1421 +msgid "" +"These are the MBCS codec APIs. They are currently only available on Windows " +"and use the Win32 MBCS converters to implement the conversions. Note that " +"MBCS (or DBCS) is a class of encodings, not just one. The target encoding " +"is defined by the user settings on the machine running the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1428 +msgid "" +"Create a Unicode object by decoding *size* bytes of the MBCS encoded string " +"*str*. Return ``NULL`` if an exception was raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1435 +msgid "" +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " +"decode trailing lead byte and the number of bytes that have been decoded " +"will be stored in *consumed*." +msgstr "" + +#: ../../c-api/unicode.rst:1444 +msgid "" +"Similar to :c:func:`PyUnicode_DecodeMBCSStateful`, except uses the code page " +"specified by *code_page*." +msgstr "" + +#: ../../c-api/unicode.rst:1450 +msgid "" +"Encode a Unicode object using MBCS and return the result as Python bytes " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " +"raised by the codec." +msgstr "" + +#: ../../c-api/unicode.rst:1457 +msgid "" +"Encode the Unicode object using the specified code page and return a Python " +"bytes object. Return ``NULL`` if an exception was raised by the codec. " +"Use :c:macro:`!CP_ACP` code page to get the MBCS encoder." +msgstr "" + +#: ../../c-api/unicode.rst:1467 +msgid "Methods and Slot Functions" +msgstr "" + +#: ../../c-api/unicode.rst:1469 +msgid "" +"The following APIs are capable of handling Unicode objects and strings on " +"input (we refer to them as strings in the descriptions) and return Unicode " +"objects or integers as appropriate." +msgstr "" + +#: ../../c-api/unicode.rst:1473 +msgid "They all return ``NULL`` or ``-1`` if an exception occurs." +msgstr "" + +#: ../../c-api/unicode.rst:1478 +msgid "Concat two strings giving a new Unicode string." +msgstr "" + +#: ../../c-api/unicode.rst:1483 +msgid "" +"Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " +"splitting will be done at all whitespace substrings. Otherwise, splits " +"occur at the given separator. At most *maxsplit* splits will be done. If " +"negative, no limit is set. Separators are not included in the resulting " +"list." +msgstr "" + +#: ../../c-api/unicode.rst:1488 ../../c-api/unicode.rst:1498 +#: ../../c-api/unicode.rst:1519 ../../c-api/unicode.rst:1532 +msgid "On error, return ``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/unicode.rst:1490 +msgid "Equivalent to :py:meth:`str.split`." +msgstr "" + +#: ../../c-api/unicode.rst:1495 +msgid "" +"Similar to :c:func:`PyUnicode_Split`, but splitting will be done beginning " +"at the end of the string." +msgstr "" + +#: ../../c-api/unicode.rst:1500 +msgid "Equivalent to :py:meth:`str.rsplit`." +msgstr "" + +#: ../../c-api/unicode.rst:1505 +msgid "" +"Split a Unicode string at line breaks, returning a list of Unicode strings. " +"CRLF is considered to be one line break. If *keepends* is ``0``, the Line " +"break characters are not included in the resulting strings." +msgstr "" + +#: ../../c-api/unicode.rst:1512 +msgid "" +"Split a Unicode string at the first occurrence of *sep*, and return a 3-" +"tuple containing the part before the separator, the separator itself, and " +"the part after the separator. If the separator is not found, return a 3-" +"tuple containing the string itself, followed by two empty strings." +msgstr "" + +#: ../../c-api/unicode.rst:1517 ../../c-api/unicode.rst:1530 +msgid "*sep* must not be empty." +msgstr "" + +#: ../../c-api/unicode.rst:1521 +msgid "Equivalent to :py:meth:`str.partition`." +msgstr "" + +#: ../../c-api/unicode.rst:1526 +msgid "" +"Similar to :c:func:`PyUnicode_Partition`, but split a Unicode string at the " +"last occurrence of *sep*. If the separator is not found, return a 3-tuple " +"containing two empty strings, followed by the string itself." +msgstr "" + +#: ../../c-api/unicode.rst:1534 +msgid "Equivalent to :py:meth:`str.rpartition`." +msgstr "" + +#: ../../c-api/unicode.rst:1539 +msgid "" +"Join a sequence of strings using the given *separator* and return the " +"resulting Unicode string." +msgstr "" + +#: ../../c-api/unicode.rst:1546 +msgid "" +"Return ``1`` if *substr* matches ``unicode[start:end]`` at the given tail " +"end (*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` " +"a suffix match), ``0`` otherwise. Return ``-1`` if an error occurred." +msgstr "" + +#: ../../c-api/unicode.rst:1554 +msgid "" +"Return the first position of *substr* in ``unicode[start:end]`` using the " +"given *direction* (*direction* == ``1`` means to do a forward search, " +"*direction* == ``-1`` a backward search). The return value is the index of " +"the first match; a value of ``-1`` indicates that no match was found, and " +"``-2`` indicates that an error occurred and an exception has been set." +msgstr "" + +#: ../../c-api/unicode.rst:1564 +msgid "" +"Return the first position of the character *ch* in ``unicode[start:end]`` " +"using the given *direction* (*direction* == ``1`` means to do a forward " +"search, *direction* == ``-1`` a backward search). The return value is the " +"index of the first match; a value of ``-1`` indicates that no match was " +"found, and ``-2`` indicates that an error occurred and an exception has been " +"set." +msgstr "" + +#: ../../c-api/unicode.rst:1572 +msgid "" +"*start* and *end* are now adjusted to behave like ``unicode[start:end]``." +msgstr "" + +#: ../../c-api/unicode.rst:1579 +msgid "" +"Return the number of non-overlapping occurrences of *substr* in " +"``unicode[start:end]``. Return ``-1`` if an error occurred." +msgstr "" + +#: ../../c-api/unicode.rst:1586 +msgid "" +"Replace at most *maxcount* occurrences of *substr* in *unicode* with " +"*replstr* and return the resulting Unicode object. *maxcount* == ``-1`` " +"means replace all occurrences." +msgstr "" + +#: ../../c-api/unicode.rst:1593 +msgid "" +"Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " +"and greater than, respectively." +msgstr "" + +#: ../../c-api/unicode.rst:1596 +msgid "" +"This function returns ``-1`` upon failure, so one should " +"call :c:func:`PyErr_Occurred` to check for errors." +msgstr "" + +#: ../../c-api/unicode.rst:1601 +msgid "The :c:func:`PyUnicode_Equal` function." +msgstr "" + +#: ../../c-api/unicode.rst:1606 +msgid "Test if two strings are equal:" +msgstr "" + +#: ../../c-api/unicode.rst:1608 +msgid "Return ``1`` if *a* is equal to *b*." +msgstr "" + +#: ../../c-api/unicode.rst:1609 +msgid "Return ``0`` if *a* is not equal to *b*." +msgstr "" + +#: ../../c-api/unicode.rst:1610 +msgid "" +"Set a :exc:`TypeError` exception and return ``-1`` if *a* or *b* is not " +"a :class:`str` object." +msgstr "" + +#: ../../c-api/unicode.rst:1613 +msgid "The function always succeeds if *a* and *b* are :class:`str` objects." +msgstr "" + +#: ../../c-api/unicode.rst:1615 +msgid "" +"The function works for :class:`str` subclasses, but does not honor custom " +"``__eq__()`` method." +msgstr "" + +#: ../../c-api/unicode.rst:1620 +msgid "The :c:func:`PyUnicode_Compare` function." +msgstr "" + +#: ../../c-api/unicode.rst:1627 +msgid "" +"Compare a Unicode object with a char buffer which is interpreted as being " +"UTF-8 or ASCII encoded and return true (``1``) if they are equal, or false " +"(``0``) otherwise. If the Unicode object contains surrogate code points " +"(``U+D800`` - ``U+DFFF``) or the C string is not valid UTF-8, false (``0``) " +"is returned." +msgstr "" + +#: ../../c-api/unicode.rst:1634 ../../c-api/unicode.rst:1655 +msgid "This function does not raise exceptions." +msgstr "" + +#: ../../c-api/unicode.rst:1641 +msgid "" +"Similar to :c:func:`PyUnicode_EqualToUTF8AndSize`, but compute *string* " +"length using :c:func:`!strlen`. If the Unicode object contains null " +"characters, false (``0``) is returned." +msgstr "" + +#: ../../c-api/unicode.rst:1650 +msgid "" +"Compare a Unicode object, *unicode*, with *string* and return ``-1``, ``0``, " +"``1`` for less than, equal, and greater than, respectively. It is best to " +"pass only ASCII-encoded strings, but the function interprets the input " +"string as ISO-8859-1 if it contains non-ASCII characters." +msgstr "" + +#: ../../c-api/unicode.rst:1660 +msgid "Rich compare two Unicode strings and return one of the following:" +msgstr "" + +#: ../../c-api/unicode.rst:1662 +msgid "``NULL`` in case an exception was raised" +msgstr "" + +#: ../../c-api/unicode.rst:1663 +msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" +msgstr "" + +#: ../../c-api/unicode.rst:1664 +msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" +msgstr "" + +#: ../../c-api/unicode.rst:1666 +msgid "" +"Possible values for *op* " +"are :c:macro:`Py_GT`, :c:macro:`Py_GE`, :c:macro:`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_LT`, " +"and :c:macro:`Py_LE`." +msgstr "" + +#: ../../c-api/unicode.rst:1672 +msgid "" +"Return a new string object from *format* and *args*; this is analogous to " +"``format % args``." +msgstr "" + +#: ../../c-api/unicode.rst:1678 +msgid "" +"Check whether *substr* is contained in *unicode* and return true or false " +"accordingly." +msgstr "" + +#: ../../c-api/unicode.rst:1681 +msgid "" +"*substr* has to coerce to a one element Unicode string. ``-1`` is returned " +"if there was an error." +msgstr "" + +#: ../../c-api/unicode.rst:1687 +msgid "" +"Intern the argument :c:expr:`*p_unicode` in place. The argument must be the " +"address of a pointer variable pointing to a Python Unicode string object. " +"If there is an existing interned string that is the same " +"as :c:expr:`*p_unicode`, it sets :c:expr:`*p_unicode` to it (releasing the " +"reference to the old string object and creating a new :term:`strong " +"reference` to the interned string object), otherwise it " +"leaves :c:expr:`*p_unicode` alone and interns it." +msgstr "" + +#: ../../c-api/unicode.rst:1694 +msgid "" +"(Clarification: even though there is a lot of talk about references, think " +"of this function as reference-neutral. You must own the object you pass in; " +"after the call you no longer own the passed-in reference, but you newly own " +"the result.)" +msgstr "" + +#: ../../c-api/unicode.rst:1699 +msgid "" +"This function never raises an exception. On error, it leaves its argument " +"unchanged without interning it." +msgstr "" + +#: ../../c-api/unicode.rst:1702 +msgid "" +"Instances of subclasses of :py:class:`str` may not be interned, that " +"is, :c:expr:`PyUnicode_CheckExact(*p_unicode)` must be true. If it is not, " +"then -- as with any other error -- the argument is left unchanged." +msgstr "" + +#: ../../c-api/unicode.rst:1706 +msgid "" +"Note that interned strings are not “immortal”. You must keep a reference to " +"the result to benefit from interning." +msgstr "" + +#: ../../c-api/unicode.rst:1712 +msgid "" +"A combination of :c:func:`PyUnicode_FromString` " +"and :c:func:`PyUnicode_InternInPlace`, meant for statically allocated " +"strings." +msgstr "" + +#: ../../c-api/unicode.rst:1715 +msgid "" +"Return a new (\"owned\") reference to either a new Unicode string object " +"that has been interned, or an earlier interned string object with the same " +"value." +msgstr "" + +#: ../../c-api/unicode.rst:1719 +msgid "" +"Python may keep a reference to the result, or make it :term:`immortal`, " +"preventing it from being garbage-collected promptly. For interning an " +"unbounded number of different strings, such as ones coming from user input, " +"prefer calling :c:func:`PyUnicode_FromString` " +"and :c:func:`PyUnicode_InternInPlace` directly." +msgstr "" + +#: ../../c-api/unicode.rst:1728 +msgid "" +"Return a non-zero value if *str* is interned, zero if not. The *str* " +"argument must be a string; this is not checked. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/unicode.rst:1734 +msgid "" +"A non-zero return value may carry additional information about *how* the " +"string is interned. The meaning of such non-zero values, as well as each " +"specific string's intern-related details, may change between CPython " +"versions." +msgstr "" + +#: ../../c-api/unicode.rst:1741 +msgid "PyUnicodeWriter" +msgstr "" + +#: ../../c-api/unicode.rst:1743 +msgid "" +"The :c:type:`PyUnicodeWriter` API can be used to create a " +"Python :class:`str` object." +msgstr "" + +#: ../../c-api/unicode.rst:1750 +msgid "A Unicode writer instance." +msgstr "" + +#: ../../c-api/unicode.rst:1752 +msgid "" +"The instance must be destroyed by :c:func:`PyUnicodeWriter_Finish` on " +"success, or :c:func:`PyUnicodeWriter_Discard` on error." +msgstr "" + +#: ../../c-api/unicode.rst:1757 +msgid "Create a Unicode writer instance." +msgstr "" + +#: ../../c-api/unicode.rst:1759 +msgid "*length* must be greater than or equal to ``0``." +msgstr "" + +#: ../../c-api/unicode.rst:1761 +msgid "" +"If *length* is greater than ``0``, preallocate an internal buffer of " +"*length* characters." +msgstr "" + +#: ../../c-api/unicode.rst:1764 ../../c-api/unicode.rst:1770 +msgid "Set an exception and return ``NULL`` on error." +msgstr "" + +#: ../../c-api/unicode.rst:1768 +msgid "" +"Return the final Python :class:`str` object and destroy the writer instance." +msgstr "" + +#: ../../c-api/unicode.rst:1772 ../../c-api/unicode.rst:1780 +msgid "The writer instance is invalid after this call." +msgstr "" + +#: ../../c-api/unicode.rst:1776 +msgid "Discard the internal Unicode buffer and destroy the writer instance." +msgstr "" + +#: ../../c-api/unicode.rst:1778 +msgid "If *writer* is ``NULL``, no operation is performed." +msgstr "" + +#: ../../c-api/unicode.rst:1784 +msgid "Write the single Unicode character *ch* into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1786 ../../c-api/unicode.rst:1796 +#: ../../c-api/unicode.rst:1811 ../../c-api/unicode.rst:1823 +#: ../../c-api/unicode.rst:1832 ../../c-api/unicode.rst:1839 +#: ../../c-api/unicode.rst:1846 ../../c-api/unicode.rst:1857 +#: ../../c-api/unicode.rst:1864 ../../c-api/unicode.rst:1883 +msgid "" +"On success, return ``0``. On error, set an exception, leave the writer " +"unchanged, and return ``-1``." +msgstr "" + +#: ../../c-api/unicode.rst:1791 +msgid "" +"Decode the string *str* from UTF-8 in strict mode and write the output into " +"*writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1793 ../../c-api/unicode.rst:1805 +#: ../../c-api/unicode.rst:1872 +msgid "" +"*size* is the string length in bytes. If *size* is equal to ``-1``, call " +"``strlen(str)`` to get the string length." +msgstr "" + +#: ../../c-api/unicode.rst:1799 +msgid "See also :c:func:`PyUnicodeWriter_DecodeUTF8Stateful`." +msgstr "" + +#: ../../c-api/unicode.rst:1803 +msgid "Write the ASCII string *str* into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1808 +msgid "" +"*str* must only contain ASCII characters. The behavior is undefined if *str* " +"contains non-ASCII characters." +msgstr "" + +#: ../../c-api/unicode.rst:1818 +msgid "Write the wide string *str* into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1820 +msgid "" +"*size* is a number of wide characters. If *size* is equal to ``-1``, call " +"``wcslen(str)`` to get the string length." +msgstr "" + +#: ../../c-api/unicode.rst:1828 +msgid "Writer the UCS4 string *str* into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1830 +msgid "*size* is a number of UCS4 characters." +msgstr "" + +#: ../../c-api/unicode.rst:1837 +msgid "" +"Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1844 +msgid "" +"Call :c:func:`PyObject_Repr` on *obj* and write the output into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1851 +msgid "Write the substring ``str[start:end]`` into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1853 +msgid "" +"*str* must be Python :class:`str` object. *start* must be greater than or " +"equal to 0, and less than or equal to *end*. *end* must be less than or " +"equal to *str* length." +msgstr "" + +#: ../../c-api/unicode.rst:1862 +msgid "" +"Similar to :c:func:`PyUnicode_FromFormat`, but write the output directly " +"into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1869 +msgid "" +"Decode the string *str* from UTF-8 with *errors* error handler and write the " +"output into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1875 +msgid "" +"*errors* is an :ref:`error handler ` name, such as " +"``\"replace\"``. If *errors* is ``NULL``, use the strict error handler." +msgstr "" + +#: ../../c-api/unicode.rst:1878 +msgid "" +"If *consumed* is not ``NULL``, set *\\*consumed* to the number of decoded " +"bytes on success. If *consumed* is ``NULL``, treat trailing incomplete UTF-8 " +"byte sequences as an error." +msgstr "" + +#: ../../c-api/unicode.rst:1886 +msgid "See also :c:func:`PyUnicodeWriter_WriteUTF8`." +msgstr "" + +#: ../../c-api/unicode.rst:1889 +msgid "Deprecated API" +msgstr "" + +#: ../../c-api/unicode.rst:1891 +msgid "The following API is deprecated." +msgstr "" + +#: ../../c-api/unicode.rst:1895 +msgid "" +"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " +"type depending on the platform. Please use :c:type:`wchar_t` directly " +"instead." +msgstr "" + +#: ../../c-api/unicode.rst:1899 +msgid "" +"In previous versions, this was a 16-bit type or a 32-bit type depending on " +"whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " +"build time." +msgstr "" + +#: ../../c-api/unicode.rst:1909 +msgid "" +"Do nothing and return ``0``. This API is kept only for backward " +"compatibility, but there are no plans to remove it." +msgstr "" + +#: ../../c-api/unicode.rst:1915 +msgid "" +"This API does nothing since Python 3.12. Previously, this needed to be " +"called for each string created using the old API (:c:func:`!" +"PyUnicode_FromUnicode` or similar)." +msgstr "" + +#: ../../c-api/unicode.rst:1923 +msgid "" +"Do nothing and return ``1``. This API is kept only for backward " +"compatibility, but there are no plans to remove it." +msgstr "" + +#: ../../c-api/unicode.rst:1929 +msgid "" +"This API does nothing since Python 3.12. Previously, this could be called to " +"check if :c:func:`PyUnicode_READY` is necessary." +msgstr "" diff --git a/c-api/utilities.po b/c-api/utilities.po new file mode 100644 index 0000000..22b9dff --- /dev/null +++ b/c-api/utilities.po @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/utilities.rst:7 +msgid "Utilities" +msgstr "" + +#: ../../c-api/utilities.rst:9 +msgid "" +"The functions in this chapter perform various utility tasks, ranging from " +"helping C code be more portable across platforms, using Python modules from " +"C, and parsing function arguments and constructing Python values from C " +"values." +msgstr "" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po new file mode 100644 index 0000000..9a3665f --- /dev/null +++ b/c-api/veryhigh.po @@ -0,0 +1,417 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/veryhigh.rst:8 +msgid "The Very High Level Layer" +msgstr "" + +#: ../../c-api/veryhigh.rst:10 +msgid "" +"The functions in this chapter will let you execute Python source code given " +"in a file or a buffer, but they will not let you interact in a more detailed " +"way with the interpreter." +msgstr "" + +#: ../../c-api/veryhigh.rst:14 +msgid "" +"Several of these functions accept a start symbol from the grammar as a " +"parameter. The available start symbols " +"are :c:data:`Py_eval_input`, :c:data:`Py_file_input`, " +"and :c:data:`Py_single_input`. These are described following the functions " +"which accept them as parameters." +msgstr "" + +#: ../../c-api/veryhigh.rst:19 +msgid "" +"Note also that several of these functions take :c:expr:`FILE*` parameters. " +"One particular issue which needs to be handled carefully is that " +"the :c:type:`FILE` structure for different C libraries can be different and " +"incompatible. Under Windows (at least), it is possible for dynamically " +"linked extensions to actually use different libraries, so care should be " +"taken that :c:expr:`FILE*` parameters are only passed to these functions if " +"it is certain that they were created by the same library that the Python " +"runtime is using." +msgstr "" + +#: ../../c-api/veryhigh.rst:30 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving *closeit* set to ``0`` and *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:36 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving the *closeit* argument set to ``0``." +msgstr "" + +#: ../../c-api/veryhigh.rst:42 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving the *flags* argument set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:48 +msgid "" +"If *fp* refers to a file associated with an interactive device (console or " +"terminal input or Unix pseudo-terminal), return the value " +"of :c:func:`PyRun_InteractiveLoop`, otherwise return the result " +"of :c:func:`PyRun_SimpleFile`. *filename* is decoded from the filesystem " +"encoding (:func:`sys.getfilesystemencoding`). If *filename* is ``NULL``, " +"this function uses ``\"???\"`` as the filename. If *closeit* is true, the " +"file is closed before ``PyRun_SimpleFileExFlags()`` returns." +msgstr "" + +#: ../../c-api/veryhigh.rst:60 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " +"leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:66 +msgid "" +"Executes the Python source code from *command* in the :mod:`__main__` module " +"according to the *flags* argument. If :mod:`__main__` does not already " +"exist, it is created. Returns ``0`` on success or ``-1`` if an exception " +"was raised. If there was an error, there is no way to get the exception " +"information. For the meaning of *flags*, see below." +msgstr "" + +#: ../../c-api/veryhigh.rst:72 +msgid "" +"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " +"function will not return ``-1``, but exit the process, as long " +"as :c:member:`PyConfig.inspect` is zero." +msgstr "" + +#: ../../c-api/veryhigh.rst:79 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " +"leaving *closeit* set to ``0`` and *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:85 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " +"leaving *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:91 +msgid "" +"Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is " +"read from *fp* instead of an in-memory string. *filename* should be the name " +"of the file, it is decoded from :term:`filesystem encoding and error " +"handler`. If *closeit* is true, the file is closed before " +"``PyRun_SimpleFileExFlags()`` returns." +msgstr "" + +#: ../../c-api/veryhigh.rst:98 +msgid "" +"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, " +"\"rb\")``). Otherwise, Python may not handle script file with LF line ending " +"correctly." +msgstr "" + +#: ../../c-api/veryhigh.rst:104 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " +"leaving *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:110 +msgid "" +"Read and execute a single statement from a file associated with an " +"interactive device according to the *flags* argument. The user will be " +"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* is decoded from " +"the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/veryhigh.rst:115 +msgid "" +"Returns ``0`` when the input was executed successfully, ``-1`` if there was " +"an exception, or an error code from the :file:`errcode.h` include file " +"distributed as part of Python if there was a parse error. (Note " +"that :file:`errcode.h` is not included by :file:`Python.h`, so must be " +"included specifically if needed.)" +msgstr "" + +#: ../../c-api/veryhigh.rst:124 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " +"below, leaving *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:130 +msgid "" +"Read and execute statements from a file associated with an interactive " +"device until EOF is reached. The user will be prompted using ``sys.ps1`` " +"and ``sys.ps2``. *filename* is decoded from the :term:`filesystem encoding " +"and error handler`. Returns ``0`` at EOF or a negative number upon failure." +msgstr "" + +#: ../../c-api/veryhigh.rst:138 +msgid "" +"Can be set to point to a function with the prototype ``int func(void)``. " +"The function will be called when Python's interpreter prompt is about to " +"become idle and wait for user input from the terminal. The return value is " +"ignored. Overriding this hook can be used to integrate the interpreter's " +"prompt with other event loops, as done in the :file:`Modules/_tkinter.c` in " +"the Python source code." +msgstr "" + +#: ../../c-api/veryhigh.rst:146 ../../c-api/veryhigh.rst:170 +msgid "" +"This function is only called from the :ref:`main interpreter `." +msgstr "" + +#: ../../c-api/veryhigh.rst:153 +msgid "" +"Can be set to point to a function with the prototype ``char *func(FILE " +"*stdin, FILE *stdout, char *prompt)``, overriding the default function used " +"to read a single line of input at the interpreter's prompt. The function is " +"expected to output the string *prompt* if it's not ``NULL``, and then read a " +"line of input from the provided standard input file, returning the resulting " +"string. For example, The :mod:`readline` module sets this hook to provide " +"line-editing and tab-completion features." +msgstr "" + +#: ../../c-api/veryhigh.rst:162 +msgid "" +"The result must be a string allocated by :c:func:`PyMem_RawMalloc` " +"or :c:func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." +msgstr "" + +#: ../../c-api/veryhigh.rst:165 +msgid "" +"The result must be allocated by :c:func:`PyMem_RawMalloc` " +"or :c:func:`PyMem_RawRealloc`, instead of being allocated " +"by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc`." +msgstr "" + +#: ../../c-api/veryhigh.rst:176 +msgid "" +"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " +"*flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:182 +msgid "" +"Execute Python source code from *str* in the context specified by the " +"objects *globals* and *locals* with the compiler flags specified by " +"*flags*. *globals* must be a dictionary; *locals* can be any object that " +"implements the mapping protocol. The parameter *start* specifies the start " +"token that should be used to parse the source code." +msgstr "" + +#: ../../c-api/veryhigh.rst:188 +msgid "" +"Returns the result of executing the code as a Python object, or ``NULL`` if " +"an exception was raised." +msgstr "" + +#: ../../c-api/veryhigh.rst:194 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*closeit* set to ``0`` and *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:200 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:206 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*closeit* set to ``0``." +msgstr "" + +#: ../../c-api/veryhigh.rst:212 +msgid "" +"Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " +"from *fp* instead of an in-memory string. *filename* should be the name of " +"the file, it is decoded from the :term:`filesystem encoding and error " +"handler`. If *closeit* is true, the file is closed " +"before :c:func:`PyRun_FileExFlags` returns." +msgstr "" + +#: ../../c-api/veryhigh.rst:221 +msgid "" +"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " +"leaving *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:227 +msgid "" +"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " +"with *optimize* set to ``-1``." +msgstr "" + +#: ../../c-api/veryhigh.rst:233 +msgid "" +"Parse and compile the Python source code in *str*, returning the resulting " +"code object. The start token is given by *start*; this can be used to " +"constrain the code which can be compiled and should " +"be :c:data:`Py_eval_input`, :c:data:`Py_file_input`, " +"or :c:data:`Py_single_input`. The filename specified by *filename* is used " +"to construct the code object and may appear in tracebacks " +"or :exc:`SyntaxError` exception messages. This returns ``NULL`` if the code " +"cannot be parsed or compiled." +msgstr "" + +#: ../../c-api/veryhigh.rst:241 +msgid "" +"The integer *optimize* specifies the optimization level of the compiler; a " +"value of ``-1`` selects the optimization level of the interpreter as given " +"by :option:`-O` options. Explicit levels are ``0`` (no optimization; " +"``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false) " +"or ``2`` (docstrings are removed too)." +msgstr "" + +#: ../../c-api/veryhigh.rst:252 +msgid "" +"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " +"decoded from the :term:`filesystem encoding and error handler`." +msgstr "" + +#: ../../c-api/veryhigh.rst:259 +msgid "" +"This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " +"code object, and global and local variables. The other arguments are set to " +"``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:266 +msgid "" +"Evaluate a precompiled code object, given a particular environment for its " +"evaluation. This environment consists of a dictionary of global variables, " +"a mapping object of local variables, arrays of arguments, keywords and " +"defaults, a dictionary of default values for :ref:`keyword-only ` arguments and a closure tuple of cells." +msgstr "" + +#: ../../c-api/veryhigh.rst:275 +msgid "" +"Evaluate an execution frame. This is a simplified interface " +"to :c:func:`PyEval_EvalFrameEx`, for backward compatibility." +msgstr "" + +#: ../../c-api/veryhigh.rst:281 +msgid "" +"This is the main, unvarnished function of Python interpretation. The code " +"object associated with the execution frame *f* is executed, interpreting " +"bytecode and executing calls as needed. The additional *throwflag* " +"parameter can mostly be ignored - if true, then it causes an exception to " +"immediately be thrown; this is used for the :meth:`~generator.throw` methods " +"of generator objects." +msgstr "" + +#: ../../c-api/veryhigh.rst:288 +msgid "" +"This function now includes a debug assertion to help ensure that it does not " +"silently discard an active exception." +msgstr "" + +#: ../../c-api/veryhigh.rst:295 +msgid "" +"This function changes the flags of the current evaluation frame, and returns " +"true on success, false on failure." +msgstr "" + +#: ../../c-api/veryhigh.rst:303 +msgid "" +"The start symbol from the Python grammar for isolated expressions; for use " +"with :c:func:`Py_CompileString`." +msgstr "" + +#: ../../c-api/veryhigh.rst:311 +msgid "" +"The start symbol from the Python grammar for sequences of statements as read " +"from a file or other source; for use with :c:func:`Py_CompileString`. This " +"is the symbol to use when compiling arbitrarily long Python source code." +msgstr "" + +#: ../../c-api/veryhigh.rst:320 +msgid "" +"The start symbol from the Python grammar for a single statement; for use " +"with :c:func:`Py_CompileString`. This is the symbol used for the interactive " +"interpreter loop." +msgstr "" + +#: ../../c-api/veryhigh.rst:327 +msgid "" +"This is the structure used to hold compiler flags. In cases where code is " +"only being compiled, it is passed as ``int flags``, and in cases where code " +"is being executed, it is passed as ``PyCompilerFlags *flags``. In this " +"case, ``from __future__ import`` can modify *flags*." +msgstr "" + +#: ../../c-api/veryhigh.rst:332 +msgid "" +"Whenever ``PyCompilerFlags *flags`` is " +"``NULL``, :c:member:`~PyCompilerFlags.cf_flags` is treated as equal to " +"``0``, and any modification due to ``from __future__ import`` is discarded." +msgstr "" + +#: ../../c-api/veryhigh.rst:338 +msgid "Compiler flags." +msgstr "" + +#: ../../c-api/veryhigh.rst:342 +msgid "" +"*cf_feature_version* is the minor Python version. It should be initialized " +"to ``PY_MINOR_VERSION``." +msgstr "" + +#: ../../c-api/veryhigh.rst:345 +msgid "" +"The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " +"flag is set in :c:member:`~PyCompilerFlags.cf_flags`." +msgstr "" + +#: ../../c-api/veryhigh.rst:348 +msgid "Added *cf_feature_version* field." +msgstr "" + +#: ../../c-api/veryhigh.rst:351 +msgid "The available compiler flags are accessible as macros:" +msgstr "" + +#: ../../c-api/veryhigh.rst:360 +msgid "" +"See :ref:`compiler flags ` in documentation of " +"the :py:mod:`!ast` Python module, which exports these constants under the " +"same names." +msgstr "" + +#: ../../c-api/veryhigh.rst:364 +msgid "" +"The \"``PyCF``\" flags above can be combined with \"``CO_FUTURE``\" flags " +"such as :c:macro:`CO_FUTURE_ANNOTATIONS` to enable features normally " +"selectable using :ref:`future statements `. " +"See :ref:`c_codeobject_flags` for a complete list." +msgstr "" + +#: ../../c-api/veryhigh.rst:301 ../../c-api/veryhigh.rst:309 +#: ../../c-api/veryhigh.rst:318 +msgid "Py_CompileString (C function)" +msgstr "" diff --git a/c-api/weakref.po b/c-api/weakref.po new file mode 100644 index 0000000..a3fedd1 --- /dev/null +++ b/c-api/weakref.po @@ -0,0 +1,154 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../c-api/weakref.rst:6 +msgid "Weak Reference Objects" +msgstr "" + +#: ../../c-api/weakref.rst:8 +msgid "" +"Python supports *weak references* as first-class objects. There are two " +"specific object types which directly implement weak references. The first " +"is a simple reference object, and the second acts as a proxy for the " +"original object as much as it can." +msgstr "" + +#: ../../c-api/weakref.rst:16 +msgid "" +"Return non-zero if *ob* is either a reference or proxy object. This " +"function always succeeds." +msgstr "" + +#: ../../c-api/weakref.rst:22 +msgid "" +"Return non-zero if *ob* is a reference object. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/weakref.rst:27 +msgid "" +"Return non-zero if *ob* is a proxy object. This function always succeeds." +msgstr "" + +#: ../../c-api/weakref.rst:32 +msgid "" +"Return a weak reference object for the object *ob*. This will always return " +"a new reference, but is not guaranteed to create a new object; an existing " +"reference object may be returned. The second parameter, *callback*, can be " +"a callable object that receives notification when *ob* is garbage collected; " +"it should accept a single parameter, which will be the weak reference object " +"itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a " +"weakly referenceable object, or if *callback* is not callable, ``None``, or " +"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." +msgstr "" + +#: ../../c-api/weakref.rst:44 +msgid "" +"Return a weak reference proxy object for the object *ob*. This will always " +"return a new reference, but is not guaranteed to create a new object; an " +"existing proxy object may be returned. The second parameter, *callback*, " +"can be a callable object that receives notification when *ob* is garbage " +"collected; it should accept a single parameter, which will be the weak " +"reference object itself. *callback* may also be ``None`` or ``NULL``. If " +"*ob* is not a weakly referenceable object, or if *callback* is not callable, " +"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." +msgstr "" + +#: ../../c-api/weakref.rst:56 +msgid "" +"Get a :term:`strong reference` to the referenced object from a weak " +"reference, *ref*, into *\\*pobj*." +msgstr "" + +#: ../../c-api/weakref.rst:59 +msgid "" +"On success, set *\\*pobj* to a new :term:`strong reference` to the " +"referenced object and return 1." +msgstr "" + +#: ../../c-api/weakref.rst:61 +msgid "If the reference is dead, set *\\*pobj* to ``NULL`` and return 0." +msgstr "" + +#: ../../c-api/weakref.rst:62 +msgid "On error, raise an exception and return -1." +msgstr "" + +#: ../../c-api/weakref.rst:69 +msgid "" +"Return a :term:`borrowed reference` to the referenced object from a weak " +"reference, *ref*. If the referent is no longer live, returns ``Py_None``." +msgstr "" + +#: ../../c-api/weakref.rst:74 +msgid "" +"This function returns a :term:`borrowed reference` to the referenced object. " +"This means that you should always call :c:func:`Py_INCREF` on the object " +"except when it cannot be destroyed before the last usage of the borrowed " +"reference." +msgstr "" + +#: ../../c-api/weakref.rst:79 ../../c-api/weakref.rst:87 +msgid "Use :c:func:`PyWeakref_GetRef` instead." +msgstr "" + +#: ../../c-api/weakref.rst:85 +msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." +msgstr "" + +#: ../../c-api/weakref.rst:93 +msgid "" +"Test if the weak reference *ref* is dead. Returns 1 if the reference is " +"dead, 0 if it is alive, and -1 with an error set if *ref* is not a weak " +"reference object." +msgstr "" + +#: ../../c-api/weakref.rst:102 +msgid "" +"This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " +"to clear weak references." +msgstr "" + +#: ../../c-api/weakref.rst:105 +msgid "" +"This iterates through the weak references for *object* and calls callbacks " +"for those references which have one. It returns when all callbacks have been " +"attempted." +msgstr "" + +#: ../../c-api/weakref.rst:112 +msgid "Clears the weakrefs for *object* without calling the callbacks." +msgstr "" + +#: ../../c-api/weakref.rst:114 +msgid "" +"This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " +"for types with finalizers (i.e., :meth:`~object.__del__`). The handler for " +"those objects first calls :c:func:`PyObject_ClearWeakRefs` to clear weakrefs " +"and call their callbacks, then the finalizer, and finally this function to " +"clear any weakrefs that may have been created by the finalizer." +msgstr "" + +#: ../../c-api/weakref.rst:120 +msgid "" +"In most circumstances, it's more appropriate to " +"use :c:func:`PyObject_ClearWeakRefs` to clear weakrefs instead of this " +"function." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.14.po b/deprecations/c-api-pending-removal-in-3.14.po new file mode 100644 index 0000000..ba6e9d1 --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.14.po @@ -0,0 +1,35 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/c-api-pending-removal-in-3.14.rst:2 +msgid "Pending removal in Python 3.14" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.14.rst:4 +msgid "" +"The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " +"(:pep:`699`; :gh:`101193`)." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.14.rst:7 +msgid "" +"Creating :c:data:`immutable types ` with mutable " +"bases (:gh:`95388`)." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.15.po b/deprecations/c-api-pending-removal-in-3.15.po new file mode 100644 index 0000000..dbbb295 --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.15.po @@ -0,0 +1,293 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:2 +msgid "Pending removal in Python 3.15" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:4 +msgid "" +"The :c:func:`PyImport_ImportModuleNoBlock`: " +"Use :c:func:`PyImport_ImportModule` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:6 +msgid "" +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: " +"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " +"`__ can be used to " +"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:10 +msgid "" +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: " +"Use :c:type:`wchar_t` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:12 +msgid "" +":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:14 +msgid "" +":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`str`, such as :class:`bytes`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:17 +msgid "" +":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:19 +msgid "" +":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`bytes`, such as :class:`str`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:22 +msgid "Python initialization functions, deprecated in Python 3.13:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:24 +msgid "" +":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " +"` (:data:`sys.path`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:27 +msgid "" +":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " +"` (:data:`sys.base_prefix`) instead. " +"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " +"if :ref:`virtual environments ` need to be handled." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:32 +msgid "" +":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " +"` (:data:`sys.base_exec_prefix`) instead. " +"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " +"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " +"be handled." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:38 +msgid "" +":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:41 +msgid "" +":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:44 +msgid "" +":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " +"` or the :envvar:`PYTHONHOME` environment variable instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:48 +msgid "" +"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:52 +msgid "" +"Functions to configure Python's initialization, deprecated in Python 3.11:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:54 +msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:56 +msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:58 +msgid "" +":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:60 +msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:62 +msgid "" +":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" +"warnings.filters` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:65 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used " +"with :c:type:`PyConfig` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:68 +msgid "Global configuration variables:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:70 +msgid "" +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " +"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:73 +msgid "" +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " +"or :c:func:`PyConfig_Get(\"verbose\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:76 +msgid "" +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " +"or :c:func:`PyConfig_Get(\"quiet\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:79 +msgid "" +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " +"or :c:func:`PyConfig_Get(\"interactive\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:82 +msgid "" +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " +"or :c:func:`PyConfig_Get(\"inspect\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:85 +msgid "" +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " +"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:88 +msgid "" +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " +"or :c:func:`PyConfig_Get(\"site_import\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:91 +msgid "" +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " +"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:94 +msgid "" +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " +"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:97 +msgid "" +":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " +"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:100 +msgid "" +":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " +"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:103 +msgid "" +":c:var:`Py_NoUserSiteDirectory`: " +"Use :c:member:`PyConfig.user_site_directory` " +"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:106 +msgid "" +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " +"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:109 +msgid "" +":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " +"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " +"` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:113 +msgid "" +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " +"or :c:func:`PyConfig_Get(\"isolated\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:116 +msgid "" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: " +"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " +"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:119 +msgid "" +":c:var:`Py_LegacyWindowsStdioFlag`: " +"Use :c:member:`PyConfig.legacy_windows_stdio` " +"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:122 +msgid "" +":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" +"Py_HasFileSystemDefaultEncoding`: " +"Use :c:member:`PyConfig.filesystem_encoding` " +"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:125 +msgid "" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: " +"Use :c:member:`PyConfig.filesystem_errors` " +"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:128 +msgid "" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " +"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " +"(see :c:func:`Py_PreInitialize`)" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:133 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used " +"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " +"be used to get these options at runtime." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.16.po b/deprecations/c-api-pending-removal-in-3.16.po new file mode 100644 index 0000000..785afa8 --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.16.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/c-api-pending-removal-in-3.16.rst:2 +msgid "Pending removal in Python 3.16" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.16.rst:4 +msgid "The bundled copy of ``libmpdec``." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.18.po b/deprecations/c-api-pending-removal-in-3.18.po new file mode 100644 index 0000000..e50b847 --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.18.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:2 +msgid "Pending removal in Python 3.18" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:4 +msgid "Deprecated private functions (:gh:`128863`):" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:6 +msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:7 +msgid "" +":c:func:`!_PyDict_GetItemStringWithError`: " +"use :c:func:`PyDict_GetItemStringRef`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:8 +msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:9 +msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:10 +msgid "" +":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " +"use :c:func:`PyLongWriter_Create`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:12 +msgid "" +":c:func:`!_PyThreadState_UncheckedGet`: " +"use :c:func:`PyThreadState_GetUnchecked`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:13 +msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:14 +msgid "" +":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " +"with :c:func:`writer = PyUnicodeWriter_Create(0) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:17 +msgid "" +":c:func:`!_PyUnicodeWriter_Finish`: replace " +"``_PyUnicodeWriter_Finish(&writer)`` " +"with :c:func:`PyUnicodeWriter_Finish(writer) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:20 +msgid "" +":c:func:`!_PyUnicodeWriter_Dealloc`: replace " +"``_PyUnicodeWriter_Dealloc(&writer)`` " +"with :c:func:`PyUnicodeWriter_Discard(writer) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:23 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteChar`: replace " +"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " +"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:26 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteStr`: replace " +"``_PyUnicodeWriter_WriteStr(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:29 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " +"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " +"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:32 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " +"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:35 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " +"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:38 +msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:39 +msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:40 +msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:41 +msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:43 +msgid "" +"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-future.po b/deprecations/c-api-pending-removal-in-future.po new file mode 100644 index 0000000..c206063 --- /dev/null +++ b/deprecations/c-api-pending-removal-in-future.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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:2 +msgid "Pending removal in future versions" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:4 +msgid "" +"The following APIs are deprecated and will be removed, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:7 +msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:9 +msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:11 +msgid "" +":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:13 +msgid "" +":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:15 +msgid "" +":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:17 +msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:19 +msgid "" +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " +"and :c:func:`PySlice_AdjustIndices` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:21 +msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:23 +msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:25 +msgid "" +":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:27 +msgid "" +":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:29 +msgid "Thread Local Storage (TLS) API:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:31 +msgid "" +":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:33 +msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:35 +msgid "" +":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:37 +msgid "" +":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:39 +msgid "" +":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:41 +msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." +msgstr "" diff --git a/deprecations/index.po b/deprecations/index.po new file mode 100644 index 0000000..d559686 --- /dev/null +++ b/deprecations/index.po @@ -0,0 +1,1278 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/index.rst:2 +msgid "Deprecations" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:2 +#: ../../deprecations/pending-removal-in-3.15.rst:2 +msgid "Pending removal in Python 3.15" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:4 +#: ../../deprecations/pending-removal-in-3.16.rst:4 +msgid "The import system:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:6 +msgid "" +"Setting :attr:`~module.__cached__` on a module while failing to " +"set :attr:`__spec__.cached ` is " +"deprecated. In Python 3.15, :attr:`!__cached__` will cease to be set or take " +"into consideration by the import system or standard library. (:gh:`97879`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:11 +msgid "" +"Setting :attr:`~module.__package__` on a module while failing to " +"set :attr:`__spec__.parent ` is " +"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " +"take into consideration by the import system or standard library. " +"(:gh:`97879`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:16 +#: ../../deprecations/pending-removal-in-3.19.rst:4 +msgid ":mod:`ctypes`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:18 +msgid "" +"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " +"since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:21 +msgid ":mod:`http.server`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:23 +msgid "" +"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " +"been deprecated since Python 3.13. No direct replacement exists. *Anything* " +"is better than CGI to interface a web server with a request handler." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:29 +msgid "" +"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" +"line interface has been deprecated since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:32 +#: ../../deprecations/pending-removal-in-future.rst:64 +msgid ":mod:`importlib`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:34 +msgid "``load_module()`` method: use ``exec_module()`` instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:36 +msgid ":class:`locale`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:38 +msgid "" +"The :func:`~locale.getdefaultlocale` function has been deprecated since " +"Python 3.11. Its removal was originally planned for Python 3.13 " +"(:gh:`90817`), but has been postponed to Python 3.15. " +"Use :func:`~locale.getlocale`, :func:`~locale.setlocale`, " +"and :func:`~locale.getencoding` instead. (Contributed by Hugo van Kemenade " +"in :gh:`111187`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:46 +msgid ":mod:`pathlib`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:48 +msgid "" +":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. " +"Use :func:`os.path.isreserved` to detect reserved paths on Windows." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:52 +msgid ":mod:`platform`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:54 +msgid "" +":func:`~platform.java_ver` has been deprecated since Python 3.13. This " +"function is only useful for Jython support, has a confusing API, and is " +"largely untested." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:58 +#: ../../deprecations/pending-removal-in-3.16.rst:96 +msgid ":mod:`sysconfig`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:60 +msgid "" +"The *check_home* argument of :func:`sysconfig.is_python_build` has been " +"deprecated since Python 3.12." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:63 +msgid ":mod:`threading`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:65 +msgid "" +":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " +"arguments has been deprecated since Python 3.14, as the Python version does " +"not permit any arguments, but the C version allows any number of positional " +"or keyword arguments, ignoring every argument." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:71 +msgid ":mod:`types`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:73 +msgid "" +":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " +"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " +"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " +"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:80 +#: ../../deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`typing`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:82 +msgid "" +"The undocumented keyword argument syntax for " +"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " +"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " +"3.13. Use the class-based syntax or the functional syntax instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:88 +msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:95 +msgid "" +"The :func:`typing.no_type_check_decorator` decorator function has been " +"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " +"it has yet to be supported by any major type checker." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:100 +msgid ":mod:`wave`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:102 +msgid "" +"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " +"and :meth:`~wave.Wave_read.getmarkers` methods of " +"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " +"deprecated since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:107 +msgid ":mod:`zipimport`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:109 +msgid "" +":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " +"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " +"by Jiahao Li in :gh:`125746`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:2 +msgid "Pending removal in Python 3.16" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:6 +msgid "" +"Setting :attr:`~module.__loader__` on a module while failing to " +"set :attr:`__spec__.loader ` is " +"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " +"taken into consideration by the import system or the standard library." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:11 +msgid ":mod:`array`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:13 +msgid "" +"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " +"documentation since Python 3.3 and at runtime since Python 3.13. Use the " +"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:19 +msgid ":mod:`asyncio`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:21 +msgid "" +":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " +"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " +"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:26 +msgid "" +":mod:`asyncio` policy system is deprecated and will be removed in Python " +"3.16. In particular, the following classes and functions are deprecated:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:29 +msgid ":class:`asyncio.AbstractEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:30 +msgid ":class:`asyncio.DefaultEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:31 +msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:32 +msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:33 +msgid ":func:`asyncio.get_event_loop_policy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:34 +msgid ":func:`asyncio.set_event_loop_policy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:36 +msgid "" +"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " +"*loop_factory* to use the desired event loop implementation." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:39 +msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:41 +msgid "" +"import asyncio\n" +"\n" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:48 +msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:50 +#: ../../deprecations/pending-removal-in-future.rst:16 +msgid ":mod:`builtins`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:52 +msgid "" +"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " +"deprecated since Python 3.12, as it produces surprising and unintuitive " +"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " +"of a Boolean. In the rare case that you need the bitwise inversion of the " +"underlying integer, convert to ``int`` explicitly (``~int(x)``)." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:59 +msgid ":mod:`functools`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:61 +msgid "" +"Calling the Python implementation of :func:`functools.reduce` with " +"*function* or *sequence* as keyword arguments has been deprecated since " +"Python 3.14." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:64 +msgid ":mod:`logging`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:66 +msgid "" +"Support for custom logging handlers with the *strm* argument is deprecated " +"and scheduled for removal in Python 3.16. Define handlers with the *stream* " +"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:70 +msgid ":mod:`mimetypes`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:72 +msgid "" +"Valid extensions start with a '.' or are empty " +"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " +"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " +"Kemenade in :gh:`75223`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:78 +msgid ":mod:`shutil`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:80 +msgid "" +"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " +"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " +"now an alias of :exc:`RuntimeError`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:85 +msgid ":mod:`symtable`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:87 +msgid "" +"The :meth:`Class.get_methods ` method has been " +"deprecated since Python 3.14." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:90 +msgid ":mod:`sys`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:92 +msgid "" +"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " +"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " +"environment variable instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:98 +msgid "" +"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " +"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " +"instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:102 +msgid ":mod:`tarfile`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:104 +msgid "" +"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " +"deprecated since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.17.rst:2 +msgid "Pending removal in Python 3.17" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.17.rst:6 +msgid "" +"Before Python 3.14, old-style unions were implemented using the private " +"class ``typing._UnionGenericAlias``. This class is no longer needed for the " +"implementation, but it has been retained for backward compatibility, with " +"removal scheduled for Python 3.17. Users should use documented introspection " +"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " +"of relying on private implementation details." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.19.rst:2 +msgid "Pending removal in Python 3.19" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.19.rst:6 +msgid "" +"Implicitly switching to the MSVC-compatible struct layout by " +"setting :attr:`~ctypes.Structure._pack_` but " +"not :attr:`~ctypes.Structure._layout_` on non-Windows platforms." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:2 +#: ../../deprecations/pending-removal-in-future.rst:2 +msgid "Pending removal in future versions" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:4 +msgid "" +"The following APIs will be removed in the future, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:7 +msgid ":mod:`argparse`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:9 +msgid "" +"Nesting argument groups and nesting mutually exclusive groups are deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:11 +msgid "" +"Passing the undocumented keyword argument *prefix_chars* " +"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:14 +msgid "The :class:`argparse.FileType` type converter is deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:18 +msgid "``bool(NotImplemented)``." +msgstr "``bool(NotImplemented)``." + +#: ../../deprecations/pending-removal-in-future.rst:19 +msgid "" +"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " +"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " +"argument signature." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:22 +msgid "" +"Currently Python accepts numeric literals immediately followed by keywords, " +"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " +"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " +"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " +"if the numeric literal is immediately followed by one of " +"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " +"and :keyword:`or`. In a future release it will be changed to a syntax " +"error. (:gh:`87999`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:30 +msgid "" +"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " +"these methods will be required to return an instance of a strict subclass " +"of :class:`int`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:33 +msgid "" +"Support for ``__float__()`` method returning a strict subclass " +"of :class:`float`: these methods will be required to return an instance " +"of :class:`float`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:36 +msgid "" +"Support for ``__complex__()`` method returning a strict subclass " +"of :class:`complex`: these methods will be required to return an instance " +"of :class:`complex`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:39 +msgid "Delegation of ``int()`` to ``__trunc__()`` method." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:40 +msgid "" +"Passing a complex number as the *real* or *imag* argument in " +"the :func:`complex` constructor is now deprecated; it should only be passed " +"as a single positional argument. (Contributed by Serhiy Storchaka " +"in :gh:`109218`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:45 +msgid "" +":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " +"are deprecated and replaced by :data:`calendar.JANUARY` " +"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " +"in :gh:`103636`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:50 +msgid "" +":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " +"(:gh:`133038`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:52 +msgid "" +":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " +"instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:55 +msgid ":mod:`datetime`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:57 +msgid "" +":meth:`~datetime.datetime.utcnow`: use " +"``datetime.datetime.now(tz=datetime.UTC)``." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:59 +msgid "" +":meth:`~datetime.datetime.utcfromtimestamp`: use " +"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:62 +msgid ":mod:`gettext`: Plural value must be an integer." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:66 +msgid "" +":func:`~importlib.util.cache_from_source` *debug_override* parameter is " +"deprecated: use the *optimization* parameter instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:69 +msgid ":mod:`importlib.metadata`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:71 +msgid "``EntryPoints`` tuple interface." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:72 +msgid "Implicit ``None`` on return values." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:74 +msgid "" +":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " +"use :meth:`~logging.warning` instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:77 +msgid "" +":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " +"BytesIO and binary mode instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:80 +msgid "" +":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:82 +msgid "" +":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " +"deprecated, use an exception instance." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:85 +msgid "" +":mod:`re`: More strict rules are now applied for numerical group references " +"and group names in regular expressions. Only sequence of ASCII digits is " +"now accepted as a numerical reference. The group name in bytes patterns and " +"replacement strings can now only contain ASCII letters and digits and " +"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:92 +msgid "" +":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:94 +msgid "" +":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " +"Python 3.12; use the *onexc* parameter instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:97 +msgid ":mod:`ssl` options and protocols:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:99 +msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:100 +msgid "" +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " +"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:103 +msgid "``ssl.OP_NO_SSL*`` options" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:104 +msgid "``ssl.OP_NO_TLS*`` options" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:105 +msgid "``ssl.PROTOCOL_SSLv3``" +msgstr "``ssl.PROTOCOL_SSLv3``" + +#: ../../deprecations/pending-removal-in-future.rst:106 +msgid "``ssl.PROTOCOL_TLS``" +msgstr "``ssl.PROTOCOL_TLS``" + +#: ../../deprecations/pending-removal-in-future.rst:107 +msgid "``ssl.PROTOCOL_TLSv1``" +msgstr "``ssl.PROTOCOL_TLSv1``" + +#: ../../deprecations/pending-removal-in-future.rst:108 +msgid "``ssl.PROTOCOL_TLSv1_1``" +msgstr "``ssl.PROTOCOL_TLSv1_1``" + +#: ../../deprecations/pending-removal-in-future.rst:109 +msgid "``ssl.PROTOCOL_TLSv1_2``" +msgstr "``ssl.PROTOCOL_TLSv1_2``" + +#: ../../deprecations/pending-removal-in-future.rst:110 +msgid "``ssl.TLSVersion.SSLv3``" +msgstr "``ssl.TLSVersion.SSLv3``" + +#: ../../deprecations/pending-removal-in-future.rst:111 +msgid "``ssl.TLSVersion.TLSv1``" +msgstr "``ssl.TLSVersion.TLSv1``" + +#: ../../deprecations/pending-removal-in-future.rst:112 +msgid "``ssl.TLSVersion.TLSv1_1``" +msgstr "``ssl.TLSVersion.TLSv1_1``" + +#: ../../deprecations/pending-removal-in-future.rst:114 +msgid ":mod:`threading` methods:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:116 +msgid "" +":meth:`!threading.Condition.notifyAll`: " +"use :meth:`~threading.Condition.notify_all`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:117 +msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:118 +msgid "" +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " +"use :attr:`threading.Thread.daemon` attribute." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:120 +msgid "" +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " +"use :attr:`threading.Thread.name` attribute." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:122 +msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:123 +msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:125 +msgid ":class:`typing.Text` (:gh:`92332`)." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:127 +msgid "" +"The internal class ``typing._UnionGenericAlias`` is no longer used to " +"implement :class:`typing.Union`. To preserve compatibility with users using " +"this private class, a compatibility shim will be provided until at least " +"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:132 +msgid "" +":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " +"value that is not ``None`` from a test case." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:135 +msgid "" +":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " +"instead" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:137 +msgid "``splitattr()``" +msgstr "``splitattr()``" + +#: ../../deprecations/pending-removal-in-future.rst:138 +msgid "``splithost()``" +msgstr "``splithost()``" + +#: ../../deprecations/pending-removal-in-future.rst:139 +msgid "``splitnport()``" +msgstr "``splitnport()``" + +#: ../../deprecations/pending-removal-in-future.rst:140 +msgid "``splitpasswd()``" +msgstr "``splitpasswd()``" + +#: ../../deprecations/pending-removal-in-future.rst:141 +msgid "``splitport()``" +msgstr "``splitport()``" + +#: ../../deprecations/pending-removal-in-future.rst:142 +msgid "``splitquery()``" +msgstr "``splitquery()``" + +#: ../../deprecations/pending-removal-in-future.rst:143 +msgid "``splittag()``" +msgstr "``splittag()``" + +#: ../../deprecations/pending-removal-in-future.rst:144 +msgid "``splittype()``" +msgstr "``splittype()``" + +#: ../../deprecations/pending-removal-in-future.rst:145 +msgid "``splituser()``" +msgstr "``splituser()``" + +#: ../../deprecations/pending-removal-in-future.rst:146 +msgid "``splitvalue()``" +msgstr "``splitvalue()``" + +#: ../../deprecations/pending-removal-in-future.rst:147 +msgid "``to_bytes()``" +msgstr "``to_bytes()``" + +#: ../../deprecations/pending-removal-in-future.rst:149 +msgid "" +":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " +"writes." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:152 +msgid "" +":mod:`xml.etree.ElementTree`: Testing the truth value of " +"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " +"release it will always return ``True``. Prefer explicit ``len(elem)`` or " +"``elem is not None`` tests instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:157 +msgid "" +":func:`sys._clear_type_cache` is deprecated: " +"use :func:`sys._clear_internal_caches` instead." +msgstr "" + +#: ../../deprecations/index.rst:15 +msgid "C API deprecations" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:4 +msgid "" +"The :c:func:`PyImport_ImportModuleNoBlock`: " +"Use :c:func:`PyImport_ImportModule` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:6 +msgid "" +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: " +"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " +"`__ can be used to " +"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:10 +msgid "" +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: " +"Use :c:type:`wchar_t` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:12 +msgid "" +":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:14 +msgid "" +":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`str`, such as :class:`bytes`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:17 +msgid "" +":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:19 +msgid "" +":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`bytes`, such as :class:`str`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:22 +msgid "Python initialization functions, deprecated in Python 3.13:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:24 +msgid "" +":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " +"` (:data:`sys.path`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:27 +msgid "" +":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " +"` (:data:`sys.base_prefix`) instead. " +"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " +"if :ref:`virtual environments ` need to be handled." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:32 +msgid "" +":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " +"` (:data:`sys.base_exec_prefix`) instead. " +"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " +"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " +"be handled." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:38 +msgid "" +":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:41 +msgid "" +":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:44 +msgid "" +":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " +"` or the :envvar:`PYTHONHOME` environment variable instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:48 +msgid "" +"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:52 +msgid "" +"Functions to configure Python's initialization, deprecated in Python 3.11:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:54 +msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:56 +msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:58 +msgid "" +":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:60 +msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:62 +msgid "" +":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" +"warnings.filters` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:65 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used " +"with :c:type:`PyConfig` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:68 +msgid "Global configuration variables:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:70 +msgid "" +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " +"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:73 +msgid "" +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " +"or :c:func:`PyConfig_Get(\"verbose\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:76 +msgid "" +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " +"or :c:func:`PyConfig_Get(\"quiet\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:79 +msgid "" +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " +"or :c:func:`PyConfig_Get(\"interactive\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:82 +msgid "" +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " +"or :c:func:`PyConfig_Get(\"inspect\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:85 +msgid "" +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " +"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:88 +msgid "" +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " +"or :c:func:`PyConfig_Get(\"site_import\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:91 +msgid "" +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " +"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:94 +msgid "" +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " +"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:97 +msgid "" +":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " +"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:100 +msgid "" +":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " +"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:103 +msgid "" +":c:var:`Py_NoUserSiteDirectory`: " +"Use :c:member:`PyConfig.user_site_directory` " +"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:106 +msgid "" +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " +"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:109 +msgid "" +":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " +"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " +"` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:113 +msgid "" +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " +"or :c:func:`PyConfig_Get(\"isolated\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:116 +msgid "" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: " +"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " +"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:119 +msgid "" +":c:var:`Py_LegacyWindowsStdioFlag`: " +"Use :c:member:`PyConfig.legacy_windows_stdio` " +"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:122 +msgid "" +":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" +"Py_HasFileSystemDefaultEncoding`: " +"Use :c:member:`PyConfig.filesystem_encoding` " +"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:125 +msgid "" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: " +"Use :c:member:`PyConfig.filesystem_errors` " +"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:128 +msgid "" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " +"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " +"(see :c:func:`Py_PreInitialize`)" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.15.rst:133 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used " +"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " +"be used to get these options at runtime." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:2 +msgid "Pending removal in Python 3.18" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:4 +msgid "Deprecated private functions (:gh:`128863`):" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:6 +msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:7 +msgid "" +":c:func:`!_PyDict_GetItemStringWithError`: " +"use :c:func:`PyDict_GetItemStringRef`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:8 +msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:9 +msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:10 +msgid "" +":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " +"use :c:func:`PyLongWriter_Create`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:12 +msgid "" +":c:func:`!_PyThreadState_UncheckedGet`: " +"use :c:func:`PyThreadState_GetUnchecked`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:13 +msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:14 +msgid "" +":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " +"with :c:func:`writer = PyUnicodeWriter_Create(0) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:17 +msgid "" +":c:func:`!_PyUnicodeWriter_Finish`: replace " +"``_PyUnicodeWriter_Finish(&writer)`` " +"with :c:func:`PyUnicodeWriter_Finish(writer) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:20 +msgid "" +":c:func:`!_PyUnicodeWriter_Dealloc`: replace " +"``_PyUnicodeWriter_Dealloc(&writer)`` " +"with :c:func:`PyUnicodeWriter_Discard(writer) `." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:23 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteChar`: replace " +"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " +"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:26 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteStr`: replace " +"``_PyUnicodeWriter_WriteStr(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:29 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " +"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " +"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:32 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " +"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:35 +msgid "" +":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " +"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " +"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " +"`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:38 +msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:39 +msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:40 +msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:41 +msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-3.18.rst:43 +msgid "" +"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:4 +msgid "" +"The following APIs are deprecated and will be removed, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:7 +msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:9 +msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:11 +msgid "" +":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:13 +msgid "" +":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:15 +msgid "" +":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:17 +msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:19 +msgid "" +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " +"and :c:func:`PySlice_AdjustIndices` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:21 +msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:23 +msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:25 +msgid "" +":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:27 +msgid "" +":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:29 +msgid "Thread Local Storage (TLS) API:" +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:31 +msgid "" +":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:33 +msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:35 +msgid "" +":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:37 +msgid "" +":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:39 +msgid "" +":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " +"instead." +msgstr "" + +#: ../../deprecations/c-api-pending-removal-in-future.rst:41 +msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." +msgstr "" diff --git a/deprecations/pending-removal-in-3.13.po b/deprecations/pending-removal-in-3.13.po new file mode 100644 index 0000000..dbc6130 --- /dev/null +++ b/deprecations/pending-removal-in-3.13.po @@ -0,0 +1,194 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.13.rst:2 +msgid "Pending removal in Python 3.13" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:4 +msgid "Modules (see :pep:`594`):" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:6 +msgid ":mod:`!aifc`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:7 +msgid ":mod:`!audioop`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:8 +msgid ":mod:`!cgi`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:9 +msgid ":mod:`!cgitb`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:10 +msgid ":mod:`!chunk`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:11 +msgid ":mod:`!crypt`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:12 +msgid ":mod:`!imghdr`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:13 +msgid ":mod:`!mailcap`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:14 +msgid ":mod:`!msilib`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:15 +msgid ":mod:`!nis`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:16 +msgid ":mod:`!nntplib`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:17 +msgid ":mod:`!ossaudiodev`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:18 +msgid ":mod:`!pipes`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:19 +msgid ":mod:`!sndhdr`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:20 +msgid ":mod:`!spwd`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:21 +msgid ":mod:`!sunau`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:22 +msgid ":mod:`!telnetlib`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:23 +msgid ":mod:`!uu`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:24 +msgid ":mod:`!xdrlib`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:26 +msgid "Other modules:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:28 +msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:30 +msgid "APIs:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:32 +msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:33 +msgid "``locale.resetlocale()`` (:gh:`90817`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:34 +msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:35 +msgid ":func:`!unittest.findTestCases` (:gh:`50096`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:36 +msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:37 +msgid ":func:`!unittest.makeSuite` (:gh:`50096`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:38 +msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:39 +msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:40 +msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:41 +msgid ":mod:`importlib.resources` deprecated methods:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.13.rst:43 +msgid "``contents()``" +msgstr "``contents()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:44 +msgid "``is_resource()``" +msgstr "``is_resource()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:45 +msgid "``open_binary()``" +msgstr "``open_binary()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:46 +msgid "``open_text()``" +msgstr "``open_text()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:47 +msgid "``path()``" +msgstr "``path()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:48 +msgid "``read_binary()``" +msgstr "``read_binary()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:49 +msgid "``read_text()``" +msgstr "``read_text()``" + +#: ../../deprecations/pending-removal-in-3.13.rst:51 +msgid "" +"Use :func:`importlib.resources.files` instead. Refer to `importlib-" +"resources: Migrating from Legacy `_ (:gh:`106531`)" +msgstr "" diff --git a/deprecations/pending-removal-in-3.14.po b/deprecations/pending-removal-in-3.14.po new file mode 100644 index 0000000..0d44c0f --- /dev/null +++ b/deprecations/pending-removal-in-3.14.po @@ -0,0 +1,213 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.14.rst:2 +msgid "Pending removal in Python 3.14" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:4 +msgid "" +":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" +"argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " +"(Contributed by Nikita Sobolev in :gh:`92248`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:9 +msgid "" +":mod:`ast`: The following features have been deprecated in documentation " +"since Python 3.8, now cause a :exc:`DeprecationWarning` to be emitted at " +"runtime when they are accessed or used, and will be removed in Python 3.14:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:13 +msgid ":class:`!ast.Num`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:14 +msgid ":class:`!ast.Str`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:15 +msgid ":class:`!ast.Bytes`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:16 +msgid ":class:`!ast.NameConstant`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:17 +msgid ":class:`!ast.Ellipsis`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:19 +msgid "" +"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka " +"in :gh:`90953`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:22 +msgid ":mod:`asyncio`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:24 +msgid "" +"The child watcher classes :class:`!asyncio.MultiLoopChildWatcher`, :class:`!" +"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` " +"and :class:`!asyncio.SafeChildWatcher` are deprecated and will be removed in " +"Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:30 +msgid "" +":func:`!asyncio.set_child_watcher`, :func:`!" +"asyncio.get_child_watcher`, :meth:`!" +"asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" +"asyncio.AbstractEventLoopPolicy.get_child_watcher` are deprecated and will " +"be removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:36 +msgid "" +"The :meth:`~asyncio.get_event_loop` method of the default event loop policy " +"now emits a :exc:`DeprecationWarning` if there is no current event loop set " +"and it decides to create one. (Contributed by Serhiy Storchaka and Guido van " +"Rossum in :gh:`100160`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:41 +msgid "" +":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " +"Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " +"typing, prefer a union, like ``bytes | bytearray``, " +"or :class:`collections.abc.Buffer`. (Contributed by Shantanu Jain " +"in :gh:`91896`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:47 +msgid "" +":mod:`email`: Deprecated the *isdst* parameter " +"in :func:`email.utils.localtime`. (Contributed by Alan Williams " +"in :gh:`72346`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:50 +msgid ":mod:`importlib.abc` deprecated classes:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:52 +msgid ":class:`!importlib.abc.ResourceReader`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:53 +msgid ":class:`!importlib.abc.Traversable`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:54 +msgid ":class:`!importlib.abc.TraversableResources`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:56 +msgid "Use :mod:`importlib.resources.abc` classes instead:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:58 +msgid ":class:`importlib.resources.abc.Traversable`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:59 +msgid ":class:`importlib.resources.abc.TraversableResources`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:61 +msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:63 +msgid "" +":mod:`itertools` had undocumented, inefficient, historically buggy, and " +"inconsistent support for copy, deepcopy, and pickle operations. This will be " +"removed in 3.14 for a significant reduction in code volume and maintenance " +"burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:69 +msgid "" +":mod:`multiprocessing`: The default start method will change to a safer one " +"on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " +"currently the default (:gh:`84559`). Adding a runtime warning about this was " +"deemed too disruptive as the majority of code is not expected to care. Use " +"the :func:`~multiprocessing.get_context` " +"or :func:`~multiprocessing.set_start_method` APIs to explicitly specify when " +"your code *requires* ``'fork'``. See :ref:`multiprocessing-start-methods`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:77 +msgid "" +":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` " +"and :meth:`~pathlib.PurePath.relative_to`: passing additional arguments is " +"deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:81 +msgid "" +":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " +"now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " +"instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:86 +msgid ":mod:`pty`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:88 +msgid "``master_open()``: use :func:`pty.openpty`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:89 +msgid "``slave_open()``: use :func:`pty.openpty`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:91 +msgid ":mod:`sqlite3`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:93 +msgid ":data:`!version` and :data:`!version_info`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:95 +msgid "" +":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` " +"if :ref:`named placeholders ` are used and " +"*parameters* is a sequence instead of a :class:`dict`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:99 +msgid "" +":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " +"causes a :exc:`DeprecationWarning` to be emitted when it is used." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.14.rst:102 +msgid "" +":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " +"intended to be a public API. (Contributed by Gregory P. Smith " +"in :gh:`88168`.)" +msgstr "" diff --git a/deprecations/pending-removal-in-3.15.po b/deprecations/pending-removal-in-3.15.po new file mode 100644 index 0000000..522159a --- /dev/null +++ b/deprecations/pending-removal-in-3.15.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.15.rst:2 +msgid "Pending removal in Python 3.15" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:4 +msgid "The import system:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:6 +msgid "" +"Setting :attr:`~module.__cached__` on a module while failing to " +"set :attr:`__spec__.cached ` is " +"deprecated. In Python 3.15, :attr:`!__cached__` will cease to be set or take " +"into consideration by the import system or standard library. (:gh:`97879`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:11 +msgid "" +"Setting :attr:`~module.__package__` on a module while failing to " +"set :attr:`__spec__.parent ` is " +"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " +"take into consideration by the import system or standard library. " +"(:gh:`97879`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:16 +msgid ":mod:`ctypes`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:18 +msgid "" +"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " +"since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:21 +msgid ":mod:`http.server`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:23 +msgid "" +"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " +"been deprecated since Python 3.13. No direct replacement exists. *Anything* " +"is better than CGI to interface a web server with a request handler." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:29 +msgid "" +"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" +"line interface has been deprecated since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:32 +msgid ":mod:`importlib`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:34 +msgid "``load_module()`` method: use ``exec_module()`` instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:36 +msgid ":class:`locale`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:38 +msgid "" +"The :func:`~locale.getdefaultlocale` function has been deprecated since " +"Python 3.11. Its removal was originally planned for Python 3.13 " +"(:gh:`90817`), but has been postponed to Python 3.15. " +"Use :func:`~locale.getlocale`, :func:`~locale.setlocale`, " +"and :func:`~locale.getencoding` instead. (Contributed by Hugo van Kemenade " +"in :gh:`111187`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:46 +msgid ":mod:`pathlib`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:48 +msgid "" +":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. " +"Use :func:`os.path.isreserved` to detect reserved paths on Windows." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:52 +msgid ":mod:`platform`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:54 +msgid "" +":func:`~platform.java_ver` has been deprecated since Python 3.13. This " +"function is only useful for Jython support, has a confusing API, and is " +"largely untested." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:58 +msgid ":mod:`sysconfig`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:60 +msgid "" +"The *check_home* argument of :func:`sysconfig.is_python_build` has been " +"deprecated since Python 3.12." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:63 +msgid ":mod:`threading`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:65 +msgid "" +":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " +"arguments has been deprecated since Python 3.14, as the Python version does " +"not permit any arguments, but the C version allows any number of positional " +"or keyword arguments, ignoring every argument." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:71 +msgid ":mod:`types`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:73 +msgid "" +":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " +"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " +"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " +"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:80 +msgid ":mod:`typing`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:82 +msgid "" +"The undocumented keyword argument syntax for " +"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " +"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " +"3.13. Use the class-based syntax or the functional syntax instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:88 +msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:95 +msgid "" +"The :func:`typing.no_type_check_decorator` decorator function has been " +"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " +"it has yet to be supported by any major type checker." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:100 +msgid ":mod:`wave`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:102 +msgid "" +"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " +"and :meth:`~wave.Wave_read.getmarkers` methods of " +"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " +"deprecated since Python 3.13." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:107 +msgid ":mod:`zipimport`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.15.rst:109 +msgid "" +":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " +"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " +"by Jiahao Li in :gh:`125746`.)" +msgstr "" diff --git a/deprecations/pending-removal-in-3.16.po b/deprecations/pending-removal-in-3.16.po new file mode 100644 index 0000000..023a12f --- /dev/null +++ b/deprecations/pending-removal-in-3.16.po @@ -0,0 +1,211 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.16.rst:2 +msgid "Pending removal in Python 3.16" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:4 +msgid "The import system:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:6 +msgid "" +"Setting :attr:`~module.__loader__` on a module while failing to " +"set :attr:`__spec__.loader ` is " +"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " +"taken into consideration by the import system or the standard library." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:11 +msgid ":mod:`array`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:13 +msgid "" +"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " +"documentation since Python 3.3 and at runtime since Python 3.13. Use the " +"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:19 +msgid ":mod:`asyncio`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:21 +msgid "" +":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " +"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " +"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:26 +msgid "" +":mod:`asyncio` policy system is deprecated and will be removed in Python " +"3.16. In particular, the following classes and functions are deprecated:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:29 +msgid ":class:`asyncio.AbstractEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:30 +msgid ":class:`asyncio.DefaultEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:31 +msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:32 +msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:33 +msgid ":func:`asyncio.get_event_loop_policy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:34 +msgid ":func:`asyncio.set_event_loop_policy`" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:36 +msgid "" +"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " +"*loop_factory* to use the desired event loop implementation." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:39 +msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:41 +msgid "" +"import asyncio\n" +"\n" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:48 +msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:50 +msgid ":mod:`builtins`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:52 +msgid "" +"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " +"deprecated since Python 3.12, as it produces surprising and unintuitive " +"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " +"of a Boolean. In the rare case that you need the bitwise inversion of the " +"underlying integer, convert to ``int`` explicitly (``~int(x)``)." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:59 +msgid ":mod:`functools`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:61 +msgid "" +"Calling the Python implementation of :func:`functools.reduce` with " +"*function* or *sequence* as keyword arguments has been deprecated since " +"Python 3.14." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:64 +msgid ":mod:`logging`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:66 +msgid "" +"Support for custom logging handlers with the *strm* argument is deprecated " +"and scheduled for removal in Python 3.16. Define handlers with the *stream* " +"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:70 +msgid ":mod:`mimetypes`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:72 +msgid "" +"Valid extensions start with a '.' or are empty " +"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " +"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " +"Kemenade in :gh:`75223`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:78 +msgid ":mod:`shutil`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:80 +msgid "" +"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " +"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " +"now an alias of :exc:`RuntimeError`." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:85 +msgid ":mod:`symtable`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:87 +msgid "" +"The :meth:`Class.get_methods ` method has been " +"deprecated since Python 3.14." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:90 +msgid ":mod:`sys`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:92 +msgid "" +"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " +"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " +"environment variable instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:96 +msgid ":mod:`sysconfig`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:98 +msgid "" +"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " +"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " +"instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:102 +msgid ":mod:`tarfile`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.16.rst:104 +msgid "" +"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " +"deprecated since Python 3.13." +msgstr "" diff --git a/deprecations/pending-removal-in-3.17.po b/deprecations/pending-removal-in-3.17.po new file mode 100644 index 0000000..913b0cf --- /dev/null +++ b/deprecations/pending-removal-in-3.17.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.17.rst:2 +msgid "Pending removal in Python 3.17" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`typing`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.17.rst:6 +msgid "" +"Before Python 3.14, old-style unions were implemented using the private " +"class ``typing._UnionGenericAlias``. This class is no longer needed for the " +"implementation, but it has been retained for backward compatibility, with " +"removal scheduled for Python 3.17. Users should use documented introspection " +"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " +"of relying on private implementation details." +msgstr "" diff --git a/deprecations/pending-removal-in-3.19.po b/deprecations/pending-removal-in-3.19.po new file mode 100644 index 0000000..68fe00c --- /dev/null +++ b/deprecations/pending-removal-in-3.19.po @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-3.19.rst:2 +msgid "Pending removal in Python 3.19" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.19.rst:4 +msgid ":mod:`ctypes`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-3.19.rst:6 +msgid "" +"Implicitly switching to the MSVC-compatible struct layout by " +"setting :attr:`~ctypes.Structure._pack_` but " +"not :attr:`~ctypes.Structure._layout_` on non-Windows platforms." +msgstr "" diff --git a/deprecations/pending-removal-in-future.po b/deprecations/pending-removal-in-future.po new file mode 100644 index 0000000..74bd7eb --- /dev/null +++ b/deprecations/pending-removal-in-future.po @@ -0,0 +1,393 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../deprecations/pending-removal-in-future.rst:2 +msgid "Pending removal in future versions" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:4 +msgid "" +"The following APIs will be removed in the future, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:7 +msgid ":mod:`argparse`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:9 +msgid "" +"Nesting argument groups and nesting mutually exclusive groups are deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:11 +msgid "" +"Passing the undocumented keyword argument *prefix_chars* " +"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:14 +msgid "The :class:`argparse.FileType` type converter is deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:16 +msgid ":mod:`builtins`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:18 +msgid "``bool(NotImplemented)``." +msgstr "``bool(NotImplemented)``." + +#: ../../deprecations/pending-removal-in-future.rst:19 +msgid "" +"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " +"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " +"argument signature." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:22 +msgid "" +"Currently Python accepts numeric literals immediately followed by keywords, " +"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " +"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " +"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " +"if the numeric literal is immediately followed by one of " +"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " +"and :keyword:`or`. In a future release it will be changed to a syntax " +"error. (:gh:`87999`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:30 +msgid "" +"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " +"these methods will be required to return an instance of a strict subclass " +"of :class:`int`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:33 +msgid "" +"Support for ``__float__()`` method returning a strict subclass " +"of :class:`float`: these methods will be required to return an instance " +"of :class:`float`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:36 +msgid "" +"Support for ``__complex__()`` method returning a strict subclass " +"of :class:`complex`: these methods will be required to return an instance " +"of :class:`complex`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:39 +msgid "Delegation of ``int()`` to ``__trunc__()`` method." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:40 +msgid "" +"Passing a complex number as the *real* or *imag* argument in " +"the :func:`complex` constructor is now deprecated; it should only be passed " +"as a single positional argument. (Contributed by Serhiy Storchaka " +"in :gh:`109218`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:45 +msgid "" +":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " +"are deprecated and replaced by :data:`calendar.JANUARY` " +"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " +"in :gh:`103636`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:50 +msgid "" +":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " +"(:gh:`133038`)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:52 +msgid "" +":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " +"instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:55 +msgid ":mod:`datetime`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:57 +msgid "" +":meth:`~datetime.datetime.utcnow`: use " +"``datetime.datetime.now(tz=datetime.UTC)``." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:59 +msgid "" +":meth:`~datetime.datetime.utcfromtimestamp`: use " +"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:62 +msgid ":mod:`gettext`: Plural value must be an integer." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:64 +msgid ":mod:`importlib`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:66 +msgid "" +":func:`~importlib.util.cache_from_source` *debug_override* parameter is " +"deprecated: use the *optimization* parameter instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:69 +msgid ":mod:`importlib.metadata`:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:71 +msgid "``EntryPoints`` tuple interface." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:72 +msgid "Implicit ``None`` on return values." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:74 +msgid "" +":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " +"use :meth:`~logging.warning` instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:77 +msgid "" +":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " +"BytesIO and binary mode instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:80 +msgid "" +":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:82 +msgid "" +":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " +"deprecated, use an exception instance." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:85 +msgid "" +":mod:`re`: More strict rules are now applied for numerical group references " +"and group names in regular expressions. Only sequence of ASCII digits is " +"now accepted as a numerical reference. The group name in bytes patterns and " +"replacement strings can now only contain ASCII letters and digits and " +"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:92 +msgid "" +":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:94 +msgid "" +":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " +"Python 3.12; use the *onexc* parameter instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:97 +msgid ":mod:`ssl` options and protocols:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:99 +msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:100 +msgid "" +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " +"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:103 +msgid "``ssl.OP_NO_SSL*`` options" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:104 +msgid "``ssl.OP_NO_TLS*`` options" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:105 +msgid "``ssl.PROTOCOL_SSLv3``" +msgstr "``ssl.PROTOCOL_SSLv3``" + +#: ../../deprecations/pending-removal-in-future.rst:106 +msgid "``ssl.PROTOCOL_TLS``" +msgstr "``ssl.PROTOCOL_TLS``" + +#: ../../deprecations/pending-removal-in-future.rst:107 +msgid "``ssl.PROTOCOL_TLSv1``" +msgstr "``ssl.PROTOCOL_TLSv1``" + +#: ../../deprecations/pending-removal-in-future.rst:108 +msgid "``ssl.PROTOCOL_TLSv1_1``" +msgstr "``ssl.PROTOCOL_TLSv1_1``" + +#: ../../deprecations/pending-removal-in-future.rst:109 +msgid "``ssl.PROTOCOL_TLSv1_2``" +msgstr "``ssl.PROTOCOL_TLSv1_2``" + +#: ../../deprecations/pending-removal-in-future.rst:110 +msgid "``ssl.TLSVersion.SSLv3``" +msgstr "``ssl.TLSVersion.SSLv3``" + +#: ../../deprecations/pending-removal-in-future.rst:111 +msgid "``ssl.TLSVersion.TLSv1``" +msgstr "``ssl.TLSVersion.TLSv1``" + +#: ../../deprecations/pending-removal-in-future.rst:112 +msgid "``ssl.TLSVersion.TLSv1_1``" +msgstr "``ssl.TLSVersion.TLSv1_1``" + +#: ../../deprecations/pending-removal-in-future.rst:114 +msgid ":mod:`threading` methods:" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:116 +msgid "" +":meth:`!threading.Condition.notifyAll`: " +"use :meth:`~threading.Condition.notify_all`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:117 +msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:118 +msgid "" +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " +"use :attr:`threading.Thread.daemon` attribute." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:120 +msgid "" +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " +"use :attr:`threading.Thread.name` attribute." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:122 +msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:123 +msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:125 +msgid ":class:`typing.Text` (:gh:`92332`)." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:127 +msgid "" +"The internal class ``typing._UnionGenericAlias`` is no longer used to " +"implement :class:`typing.Union`. To preserve compatibility with users using " +"this private class, a compatibility shim will be provided until at least " +"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:132 +msgid "" +":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " +"value that is not ``None`` from a test case." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:135 +msgid "" +":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " +"instead" +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:137 +msgid "``splitattr()``" +msgstr "``splitattr()``" + +#: ../../deprecations/pending-removal-in-future.rst:138 +msgid "``splithost()``" +msgstr "``splithost()``" + +#: ../../deprecations/pending-removal-in-future.rst:139 +msgid "``splitnport()``" +msgstr "``splitnport()``" + +#: ../../deprecations/pending-removal-in-future.rst:140 +msgid "``splitpasswd()``" +msgstr "``splitpasswd()``" + +#: ../../deprecations/pending-removal-in-future.rst:141 +msgid "``splitport()``" +msgstr "``splitport()``" + +#: ../../deprecations/pending-removal-in-future.rst:142 +msgid "``splitquery()``" +msgstr "``splitquery()``" + +#: ../../deprecations/pending-removal-in-future.rst:143 +msgid "``splittag()``" +msgstr "``splittag()``" + +#: ../../deprecations/pending-removal-in-future.rst:144 +msgid "``splittype()``" +msgstr "``splittype()``" + +#: ../../deprecations/pending-removal-in-future.rst:145 +msgid "``splituser()``" +msgstr "``splituser()``" + +#: ../../deprecations/pending-removal-in-future.rst:146 +msgid "``splitvalue()``" +msgstr "``splitvalue()``" + +#: ../../deprecations/pending-removal-in-future.rst:147 +msgid "``to_bytes()``" +msgstr "``to_bytes()``" + +#: ../../deprecations/pending-removal-in-future.rst:149 +msgid "" +":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " +"writes." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:152 +msgid "" +":mod:`xml.etree.ElementTree`: Testing the truth value of " +"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " +"release it will always return ``True``. Prefer explicit ``len(elem)`` or " +"``elem is not None`` tests instead." +msgstr "" + +#: ../../deprecations/pending-removal-in-future.rst:157 +msgid "" +":func:`sys._clear_type_cache` is deprecated: " +"use :func:`sys._clear_internal_caches` instead." +msgstr "" diff --git a/distributing/index.po b/distributing/index.po new file mode 100644 index 0000000..28e69ac --- /dev/null +++ b/distributing/index.po @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../distributing/index.rst:10 +msgid "Distributing Python Modules" +msgstr "" + +#: ../../distributing/index.rst:14 +msgid "" +"Information and guidance on distributing Python modules and packages has " +"been moved to the `Python Packaging User Guide`_, and the tutorial on " +"`packaging Python projects`_." +msgstr "" diff --git a/extending/building.po b/extending/building.po new file mode 100644 index 0000000..feb8e1e --- /dev/null +++ b/extending/building.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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/building.rst:7 +msgid "Building C and C++ Extensions" +msgstr "" + +#: ../../extending/building.rst:9 +msgid "" +"A C extension for CPython is a shared library (for example, a ``.so`` file " +"on Linux, ``.pyd`` on Windows), which exports an *initialization function*." +msgstr "" + +#: ../../extending/building.rst:12 +msgid "See :ref:`extension-modules` for details." +msgstr "" + +#: ../../extending/building.rst:21 +msgid "Building C and C++ Extensions with setuptools" +msgstr "" + +#: ../../extending/building.rst:24 +msgid "" +"Building, packaging and distributing extension modules is best done with " +"third-party tools, and is out of scope of this document. One suitable tool " +"is Setuptools, whose documentation can be found at https://" +"setuptools.pypa.io/en/latest/setuptools.html." +msgstr "" + +#: ../../extending/building.rst:29 +msgid "" +"The :mod:`distutils` module, which was included in the standard library " +"until Python 3.12, is now maintained as part of Setuptools." +msgstr "" diff --git a/extending/embedding.po b/extending/embedding.po new file mode 100644 index 0000000..36c6764 --- /dev/null +++ b/extending/embedding.po @@ -0,0 +1,560 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/embedding.rst:8 +msgid "Embedding Python in Another Application" +msgstr "" + +#: ../../extending/embedding.rst:10 +msgid "" +"The previous chapters discussed how to extend Python, that is, how to extend " +"the functionality of Python by attaching a library of C functions to it. It " +"is also possible to do it the other way around: enrich your C/C++ " +"application by embedding Python in it. Embedding provides your application " +"with the ability to implement some of the functionality of your application " +"in Python rather than C or C++. This can be used for many purposes; one " +"example would be to allow users to tailor the application to their needs by " +"writing some scripts in Python. You can also use it yourself if some of the " +"functionality can be written in Python more easily." +msgstr "" + +#: ../../extending/embedding.rst:20 +msgid "" +"Embedding Python is similar to extending it, but not quite. The difference " +"is that when you extend Python, the main program of the application is still " +"the Python interpreter, while if you embed Python, the main program may have " +"nothing to do with Python --- instead, some parts of the application " +"occasionally call the Python interpreter to run some Python code." +msgstr "" + +#: ../../extending/embedding.rst:26 +msgid "" +"So if you are embedding Python, you are providing your own main program. " +"One of the things this main program has to do is initialize the Python " +"interpreter. At the very least, you have to call the " +"function :c:func:`Py_Initialize`. There are optional calls to pass command " +"line arguments to Python. Then later you can call the interpreter from any " +"part of the application." +msgstr "" + +#: ../../extending/embedding.rst:32 +msgid "" +"There are several different ways to call the interpreter: you can pass a " +"string containing Python statements to :c:func:`PyRun_SimpleString`, or you " +"can pass a stdio file pointer and a file name (for identification in error " +"messages only) to :c:func:`PyRun_SimpleFile`. You can also call the lower-" +"level operations described in the previous chapters to construct and use " +"Python objects." +msgstr "" + +#: ../../extending/embedding.rst:41 +msgid ":ref:`c-api-index`" +msgstr "" + +#: ../../extending/embedding.rst:42 +msgid "" +"The details of Python's C interface are given in this manual. A great deal " +"of necessary information can be found here." +msgstr "" + +#: ../../extending/embedding.rst:49 +msgid "Very High Level Embedding" +msgstr "" + +#: ../../extending/embedding.rst:51 +msgid "" +"The simplest form of embedding Python is the use of the very high level " +"interface. This interface is intended to execute a Python script without " +"needing to interact with the application directly. This can for example be " +"used to perform some operation on a file. ::" +msgstr "" + +#: ../../extending/embedding.rst:56 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" PyStatus status;\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* optional but recommended */\n" +" status = PyConfig_SetBytesString(&config, &config.program_name, " +"argv[0]);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +"\n" +" PyRun_SimpleString(\"from time import time,ctime\\n\"\n" +" \"print('Today is', ctime(time()))\\n\");\n" +" if (Py_FinalizeEx() < 0) {\n" +" exit(120);\n" +" }\n" +" return 0;\n" +"\n" +" exception:\n" +" PyConfig_Clear(&config);\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../extending/embedding.rst:92 +msgid "" +"``#define PY_SSIZE_T_CLEAN`` was used to indicate that ``Py_ssize_t`` should " +"be used in some APIs instead of ``int``. It is not necessary since Python " +"3.13, but we keep it here for backward compatibility. See :ref:`arg-parsing-" +"string-and-buffers` for a description of this macro." +msgstr "" + +#: ../../extending/embedding.rst:97 +msgid "" +"Setting :c:member:`PyConfig.program_name` should be called " +"before :c:func:`Py_InitializeFromConfig` to inform the interpreter about " +"paths to Python run-time libraries. Next, the Python interpreter is " +"initialized with :c:func:`Py_Initialize`, followed by the execution of a " +"hard-coded Python script that prints the date and time. Afterwards, " +"the :c:func:`Py_FinalizeEx` call shuts the interpreter down, followed by the " +"end of the program. In a real program, you may want to get the Python " +"script from another source, perhaps a text-editor routine, a file, or a " +"database. Getting the Python code from a file can better be done by using " +"the :c:func:`PyRun_SimpleFile` function, which saves you the trouble of " +"allocating memory space and loading the file contents." +msgstr "" + +#: ../../extending/embedding.rst:112 +msgid "Beyond Very High Level Embedding: An overview" +msgstr "" + +#: ../../extending/embedding.rst:114 +msgid "" +"The high level interface gives you the ability to execute arbitrary pieces " +"of Python code from your application, but exchanging data values is quite " +"cumbersome to say the least. If you want that, you should use lower level " +"calls. At the cost of having to write more C code, you can achieve almost " +"anything." +msgstr "" + +#: ../../extending/embedding.rst:119 +msgid "" +"It should be noted that extending Python and embedding Python is quite the " +"same activity, despite the different intent. Most topics discussed in the " +"previous chapters are still valid. To show this, consider what the extension " +"code from Python to C really does:" +msgstr "" + +#: ../../extending/embedding.rst:124 +msgid "Convert data values from Python to C," +msgstr "" + +#: ../../extending/embedding.rst:126 +msgid "Perform a function call to a C routine using the converted values, and" +msgstr "" + +#: ../../extending/embedding.rst:128 +msgid "Convert the data values from the call from C to Python." +msgstr "" + +#: ../../extending/embedding.rst:130 +msgid "When embedding Python, the interface code does:" +msgstr "" + +#: ../../extending/embedding.rst:132 +msgid "Convert data values from C to Python," +msgstr "" + +#: ../../extending/embedding.rst:134 +msgid "" +"Perform a function call to a Python interface routine using the converted " +"values, and" +msgstr "" + +#: ../../extending/embedding.rst:137 +msgid "Convert the data values from the call from Python to C." +msgstr "" + +#: ../../extending/embedding.rst:139 +msgid "" +"As you can see, the data conversion steps are simply swapped to accommodate " +"the different direction of the cross-language transfer. The only difference " +"is the routine that you call between both data conversions. When extending, " +"you call a C routine, when embedding, you call a Python routine." +msgstr "" + +#: ../../extending/embedding.rst:144 +msgid "" +"This chapter will not discuss how to convert data from Python to C and vice " +"versa. Also, proper use of references and dealing with errors is assumed to " +"be understood. Since these aspects do not differ from extending the " +"interpreter, you can refer to earlier chapters for the required information." +msgstr "" + +#: ../../extending/embedding.rst:153 +msgid "Pure Embedding" +msgstr "" + +#: ../../extending/embedding.rst:155 +msgid "" +"The first program aims to execute a function in a Python script. Like in the " +"section about the very high level interface, the Python interpreter does not " +"directly interact with the application (but that will change in the next " +"section)." +msgstr "" + +#: ../../extending/embedding.rst:160 +msgid "The code to run a function defined in a Python script is:" +msgstr "" + +#: ../../extending/embedding.rst:162 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" PyObject *pName, *pModule, *pFunc;\n" +" PyObject *pArgs, *pValue;\n" +" int i;\n" +"\n" +" if (argc < 3) {\n" +" fprintf(stderr,\"Usage: call pythonfile funcname [args]\\n\");\n" +" return 1;\n" +" }\n" +"\n" +" Py_Initialize();\n" +" pName = PyUnicode_DecodeFSDefault(argv[1]);\n" +" /* Error checking of pName left out */\n" +"\n" +" pModule = PyImport_Import(pName);\n" +" Py_DECREF(pName);\n" +"\n" +" if (pModule != NULL) {\n" +" pFunc = PyObject_GetAttrString(pModule, argv[2]);\n" +" /* pFunc is a new reference */\n" +"\n" +" if (pFunc && PyCallable_Check(pFunc)) {\n" +" pArgs = PyTuple_New(argc - 3);\n" +" for (i = 0; i < argc - 3; ++i) {\n" +" pValue = PyLong_FromLong(atoi(argv[i + 3]));\n" +" if (!pValue) {\n" +" Py_DECREF(pArgs);\n" +" Py_DECREF(pModule);\n" +" fprintf(stderr, \"Cannot convert argument\\n\");\n" +" return 1;\n" +" }\n" +" /* pValue reference stolen here: */\n" +" PyTuple_SetItem(pArgs, i, pValue);\n" +" }\n" +" pValue = PyObject_CallObject(pFunc, pArgs);\n" +" Py_DECREF(pArgs);\n" +" if (pValue != NULL) {\n" +" printf(\"Result of call: %ld\\n\", PyLong_AsLong(pValue));\n" +" Py_DECREF(pValue);\n" +" }\n" +" else {\n" +" Py_DECREF(pFunc);\n" +" Py_DECREF(pModule);\n" +" PyErr_Print();\n" +" fprintf(stderr,\"Call failed\\n\");\n" +" return 1;\n" +" }\n" +" }\n" +" else {\n" +" if (PyErr_Occurred())\n" +" PyErr_Print();\n" +" fprintf(stderr, \"Cannot find function \\\"%s\\\"\\n\", " +"argv[2]);\n" +" }\n" +" Py_XDECREF(pFunc);\n" +" Py_DECREF(pModule);\n" +" }\n" +" else {\n" +" PyErr_Print();\n" +" fprintf(stderr, \"Failed to load \\\"%s\\\"\\n\", argv[1]);\n" +" return 1;\n" +" }\n" +" if (Py_FinalizeEx() < 0) {\n" +" return 120;\n" +" }\n" +" return 0;\n" +"}\n" +msgstr "" + +#: ../../extending/embedding.rst:165 +msgid "" +"This code loads a Python script using ``argv[1]``, and calls the function " +"named in ``argv[2]``. Its integer arguments are the other values of the " +"``argv`` array. If you :ref:`compile and link ` this program " +"(let's call the finished executable :program:`call`), and use it to execute " +"a Python script, such as:" +msgstr "" + +#: ../../extending/embedding.rst:171 +msgid "" +"def multiply(a,b):\n" +" print(\"Will compute\", a, \"times\", b)\n" +" c = 0\n" +" for i in range(0, a):\n" +" c = c + b\n" +" return c" +msgstr "" + +#: ../../extending/embedding.rst:180 +msgid "then the result should be:" +msgstr "" + +#: ../../extending/embedding.rst:182 +msgid "" +"$ call multiply multiply 3 2\n" +"Will compute 3 times 2\n" +"Result of call: 6" +msgstr "" + +#: ../../extending/embedding.rst:188 +msgid "" +"Although the program is quite large for its functionality, most of the code " +"is for data conversion between Python and C, and for error reporting. The " +"interesting part with respect to embedding Python starts with ::" +msgstr "" + +#: ../../extending/embedding.rst:192 +msgid "" +"Py_Initialize();\n" +"pName = PyUnicode_DecodeFSDefault(argv[1]);\n" +"/* Error checking of pName left out */\n" +"pModule = PyImport_Import(pName);" +msgstr "" + +#: ../../extending/embedding.rst:197 +msgid "" +"After initializing the interpreter, the script is loaded " +"using :c:func:`PyImport_Import`. This routine needs a Python string as its " +"argument, which is constructed using the :c:func:`PyUnicode_DecodeFSDefault` " +"data conversion routine. ::" +msgstr "" + +#: ../../extending/embedding.rst:202 +msgid "" +"pFunc = PyObject_GetAttrString(pModule, argv[2]);\n" +"/* pFunc is a new reference */\n" +"\n" +"if (pFunc && PyCallable_Check(pFunc)) {\n" +" ...\n" +"}\n" +"Py_XDECREF(pFunc);" +msgstr "" + +#: ../../extending/embedding.rst:210 +msgid "" +"Once the script is loaded, the name we're looking for is retrieved " +"using :c:func:`PyObject_GetAttrString`. If the name exists, and the object " +"returned is callable, you can safely assume that it is a function. The " +"program then proceeds by constructing a tuple of arguments as normal. The " +"call to the Python function is then made with::" +msgstr "" + +#: ../../extending/embedding.rst:216 +msgid "pValue = PyObject_CallObject(pFunc, pArgs);" +msgstr "" + +#: ../../extending/embedding.rst:218 +msgid "" +"Upon return of the function, ``pValue`` is either ``NULL`` or it contains a " +"reference to the return value of the function. Be sure to release the " +"reference after examining the value." +msgstr "" + +#: ../../extending/embedding.rst:226 +msgid "Extending Embedded Python" +msgstr "" + +#: ../../extending/embedding.rst:228 +msgid "" +"Until now, the embedded Python interpreter had no access to functionality " +"from the application itself. The Python API allows this by extending the " +"embedded interpreter. That is, the embedded interpreter gets extended with " +"routines provided by the application. While it sounds complex, it is not so " +"bad. Simply forget for a while that the application starts the Python " +"interpreter. Instead, consider the application to be a set of subroutines, " +"and write some glue code that gives Python access to those routines, just " +"like you would write a normal Python extension. For example::" +msgstr "" + +#: ../../extending/embedding.rst:237 +msgid "" +"static int numargs=0;\n" +"\n" +"/* Return the number of arguments of the application command line */\n" +"static PyObject*\n" +"emb_numargs(PyObject *self, PyObject *args)\n" +"{\n" +" if(!PyArg_ParseTuple(args, \":numargs\"))\n" +" return NULL;\n" +" return PyLong_FromLong(numargs);\n" +"}\n" +"\n" +"static PyMethodDef emb_module_methods[] = {\n" +" {\"numargs\", emb_numargs, METH_VARARGS,\n" +" \"Return the number of arguments received by the process.\"},\n" +" {NULL, NULL, 0, NULL}\n" +"};\n" +"\n" +"static struct PyModuleDef emb_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"emb\",\n" +" .m_size = 0,\n" +" .m_methods = emb_module_methods,\n" +"};\n" +"\n" +"static PyObject*\n" +"PyInit_emb(void)\n" +"{\n" +" return PyModuleDef_Init(&emb_module);\n" +"}" +msgstr "" + +#: ../../extending/embedding.rst:267 +msgid "" +"Insert the above code just above the :c:func:`main` function. Also, insert " +"the following two statements before the call to :c:func:`Py_Initialize`::" +msgstr "" + +#: ../../extending/embedding.rst:270 +msgid "" +"numargs = argc;\n" +"PyImport_AppendInittab(\"emb\", &PyInit_emb);" +msgstr "" + +#: ../../extending/embedding.rst:273 +msgid "" +"These two lines initialize the ``numargs`` variable, and make the :func:`!" +"emb.numargs` function accessible to the embedded Python interpreter. With " +"these extensions, the Python script can do things like" +msgstr "" + +#: ../../extending/embedding.rst:277 +msgid "" +"import emb\n" +"print(\"Number of arguments\", emb.numargs())" +msgstr "" + +#: ../../extending/embedding.rst:282 +msgid "" +"In a real application, the methods will expose an API of the application to " +"Python." +msgstr "" + +#: ../../extending/embedding.rst:292 +msgid "Embedding Python in C++" +msgstr "" + +#: ../../extending/embedding.rst:294 +msgid "" +"It is also possible to embed Python in a C++ program; precisely how this is " +"done will depend on the details of the C++ system used; in general you will " +"need to write the main program in C++, and use the C++ compiler to compile " +"and link your program. There is no need to recompile Python itself using C+" +"+." +msgstr "" + +#: ../../extending/embedding.rst:303 +msgid "Compiling and Linking under Unix-like systems" +msgstr "" + +#: ../../extending/embedding.rst:305 +msgid "" +"It is not necessarily trivial to find the right flags to pass to your " +"compiler (and linker) in order to embed the Python interpreter into your " +"application, particularly because Python needs to load library modules " +"implemented as C dynamic extensions (:file:`.so` files) linked against it." +msgstr "" + +#: ../../extending/embedding.rst:311 +msgid "" +"To find out the required compiler and linker flags, you can execute " +"the :file:`python{X.Y}-config` script which is generated as part of the " +"installation process (a :file:`python3-config` script may also be " +"available). This script has several options, of which the following will be " +"directly useful to you:" +msgstr "" + +#: ../../extending/embedding.rst:317 +msgid "" +"``pythonX.Y-config --cflags`` will give you the recommended flags when " +"compiling:" +msgstr "" + +#: ../../extending/embedding.rst:320 +msgid "" +"$ /opt/bin/python3.11-config --cflags\n" +"-I/opt/include/python3.11 -I/opt/include/python3.11 -Wsign-compare -DNDEBUG " +"-g -fwrapv -O3 -Wall" +msgstr "" + +#: ../../extending/embedding.rst:325 +msgid "" +"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags " +"when linking:" +msgstr "" + +#: ../../extending/embedding.rst:328 +msgid "" +"$ /opt/bin/python3.11-config --ldflags --embed\n" +"-L/opt/lib/python3.11/config-3.11-x86_64-linux-gnu -L/opt/lib -lpython3.11 " +"-lpthread -ldl -lutil -lm" +msgstr "" + +#: ../../extending/embedding.rst:334 +msgid "" +"To avoid confusion between several Python installations (and especially " +"between the system Python and your own compiled Python), it is recommended " +"that you use the absolute path to :file:`python{X.Y}-config`, as in the " +"above example." +msgstr "" + +#: ../../extending/embedding.rst:339 +msgid "" +"If this procedure doesn't work for you (it is not guaranteed to work for all " +"Unix-like platforms; however, we welcome :ref:`bug reports `) you will have to read your system's documentation about dynamic " +"linking and/or examine Python's :file:`Makefile` " +"(use :func:`sysconfig.get_makefile_filename` to find its location) and " +"compilation options. In this case, the :mod:`sysconfig` module is a useful " +"tool to programmatically extract the configuration values that you will want " +"to combine together. For example:" +msgstr "" + +#: ../../extending/embedding.rst:348 +msgid "" +">>> import sysconfig\n" +">>> sysconfig.get_config_var('LIBS')\n" +"'-lpthread -ldl -lutil'\n" +">>> sysconfig.get_config_var('LINKFORSHARED')\n" +"'-Xlinker -export-dynamic'" +msgstr "" diff --git a/extending/extending.po b/extending/extending.po new file mode 100644 index 0000000..09706bf --- /dev/null +++ b/extending/extending.po @@ -0,0 +1,1940 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/extending.rst:8 +msgid "Extending Python with C or C++" +msgstr "" + +#: ../../extending/extending.rst:10 +msgid "" +"It is quite easy to add new built-in modules to Python, if you know how to " +"program in C. Such :dfn:`extension modules` can do two things that can't be " +"done directly in Python: they can implement new built-in object types, and " +"they can call C library functions and system calls." +msgstr "" + +#: ../../extending/extending.rst:15 +msgid "" +"To support extensions, the Python API (Application Programmers Interface) " +"defines a set of functions, macros and variables that provide access to most " +"aspects of the Python run-time system. The Python API is incorporated in a " +"C source file by including the header ``\"Python.h\"``." +msgstr "" + +#: ../../extending/extending.rst:20 +msgid "" +"The compilation of an extension module depends on its intended use as well " +"as on your system setup; details are given in later chapters." +msgstr "" + +#: ../../extending/extending.rst:25 +msgid "" +"The C extension interface is specific to CPython, and extension modules do " +"not work on other Python implementations. In many cases, it is possible to " +"avoid writing C extensions and preserve portability to other " +"implementations. For example, if your use case is calling C library " +"functions or system calls, you should consider using the :mod:`ctypes` " +"module or the `cffi `_ library rather than " +"writing custom C code. These modules let you write Python code to interface " +"with C code and are more portable between implementations of Python than " +"writing and compiling a C extension module." +msgstr "" + +#: ../../extending/extending.rst:40 +msgid "A Simple Example" +msgstr "" + +#: ../../extending/extending.rst:42 +msgid "" +"Let's create an extension module called ``spam`` (the favorite food of Monty " +"Python fans...) and let's say we want to create a Python interface to the C " +"library function :c:func:`system` [#]_. This function takes a null-" +"terminated character string as argument and returns an integer. We want " +"this function to be callable from Python as follows:" +msgstr "" + +#: ../../extending/extending.rst:48 +msgid "" +">>> import spam\n" +">>> status = spam.system(\"ls -l\")" +msgstr "" + +#: ../../extending/extending.rst:53 +msgid "" +"Begin by creating a file :file:`spammodule.c`. (Historically, if a module " +"is called ``spam``, the C file containing its implementation is " +"called :file:`spammodule.c`; if the module name is very long, like " +"``spammify``, the module name can be just :file:`spammify.c`.)" +msgstr "" + +#: ../../extending/extending.rst:58 +msgid "The first two lines of our file can be::" +msgstr "" + +#: ../../extending/extending.rst:60 ../../extending/extending.rst:681 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include " +msgstr "" + +#: ../../extending/extending.rst:63 +msgid "" +"which pulls in the Python API (you can add a comment describing the purpose " +"of the module and a copyright notice if you like)." +msgstr "" + +#: ../../extending/extending.rst:68 +msgid "" +"Since Python may define some pre-processor definitions which affect the " +"standard headers on some systems, you *must* include :file:`Python.h` before " +"any standard headers are included." +msgstr "" + +#: ../../extending/extending.rst:72 +msgid "" +"``#define PY_SSIZE_T_CLEAN`` was used to indicate that ``Py_ssize_t`` should " +"be used in some APIs instead of ``int``. It is not necessary since Python " +"3.13, but we keep it here for backward compatibility. See :ref:`arg-parsing-" +"string-and-buffers` for a description of this macro." +msgstr "" + +#: ../../extending/extending.rst:77 +msgid "" +"All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` " +"or ``PY``, except those defined in standard header files. For convenience, " +"and since they are used extensively by the Python interpreter, " +"``\"Python.h\"`` includes a few standard header files: ````, " +"````, ````, and ````. If the latter header " +"file does not exist on your system, it declares the " +"functions :c:func:`malloc`, :c:func:`free` and :c:func:`realloc` directly." +msgstr "" + +#: ../../extending/extending.rst:85 +msgid "" +"The next thing we add to our module file is the C function that will be " +"called when the Python expression ``spam.system(string)`` is evaluated " +"(we'll see shortly how it ends up being called)::" +msgstr "" + +#: ../../extending/extending.rst:89 +msgid "" +"static PyObject *\n" +"spam_system(PyObject *self, PyObject *args)\n" +"{\n" +" const char *command;\n" +" int sts;\n" +"\n" +" if (!PyArg_ParseTuple(args, \"s\", &command))\n" +" return NULL;\n" +" sts = system(command);\n" +" return PyLong_FromLong(sts);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:101 +msgid "" +"There is a straightforward translation from the argument list in Python (for " +"example, the single expression ``\"ls -l\"``) to the arguments passed to the " +"C function. The C function always has two arguments, conventionally named " +"*self* and *args*." +msgstr "" + +#: ../../extending/extending.rst:106 +msgid "" +"The *self* argument points to the module object for module-level functions; " +"for a method it would point to the object instance." +msgstr "" + +#: ../../extending/extending.rst:109 +msgid "" +"The *args* argument will be a pointer to a Python tuple object containing " +"the arguments. Each item of the tuple corresponds to an argument in the " +"call's argument list. The arguments are Python objects --- in order to do " +"anything with them in our C function we have to convert them to C values. " +"The function :c:func:`PyArg_ParseTuple` in the Python API checks the " +"argument types and converts them to C values. It uses a template string to " +"determine the required types of the arguments as well as the types of the C " +"variables into which to store the converted values. More about this later." +msgstr "" + +#: ../../extending/extending.rst:118 +msgid "" +":c:func:`PyArg_ParseTuple` returns true (nonzero) if all arguments have the " +"right type and its components have been stored in the variables whose " +"addresses are passed. It returns false (zero) if an invalid argument list " +"was passed. In the latter case it also raises an appropriate exception so " +"the calling function can return ``NULL`` immediately (as we saw in the " +"example)." +msgstr "" + +#: ../../extending/extending.rst:128 +msgid "Intermezzo: Errors and Exceptions" +msgstr "" + +#: ../../extending/extending.rst:130 +msgid "" +"An important convention throughout the Python interpreter is the following: " +"when a function fails, it should set an exception condition and return an " +"error value (usually ``-1`` or a ``NULL`` pointer). Exception information " +"is stored in three members of the interpreter's thread state. These are " +"``NULL`` if there is no exception. Otherwise they are the C equivalents of " +"the members of the Python tuple returned by :meth:`sys.exc_info`. These are " +"the exception type, exception instance, and a traceback object. It is " +"important to know about them to understand how errors are passed around." +msgstr "" + +#: ../../extending/extending.rst:139 +msgid "" +"The Python API defines a number of functions to set various types of " +"exceptions." +msgstr "" + +#: ../../extending/extending.rst:141 +msgid "" +"The most common one is :c:func:`PyErr_SetString`. Its arguments are an " +"exception object and a C string. The exception object is usually a " +"predefined object like :c:data:`PyExc_ZeroDivisionError`. The C string " +"indicates the cause of the error and is converted to a Python string object " +"and stored as the \"associated value\" of the exception." +msgstr "" + +#: ../../extending/extending.rst:147 +msgid "" +"Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " +"exception argument and constructs the associated value by inspection of the " +"global variable :c:data:`errno`. The most general function " +"is :c:func:`PyErr_SetObject`, which takes two object arguments, the " +"exception and its associated value. You don't need to :c:func:`Py_INCREF` " +"the objects passed to any of these functions." +msgstr "" + +#: ../../extending/extending.rst:154 +msgid "" +"You can test non-destructively whether an exception has been set " +"with :c:func:`PyErr_Occurred`. This returns the current exception object, " +"or ``NULL`` if no exception has occurred. You normally don't need to " +"call :c:func:`PyErr_Occurred` to see whether an error occurred in a function " +"call, since you should be able to tell from the return value." +msgstr "" + +#: ../../extending/extending.rst:160 +msgid "" +"When a function *f* that calls another function *g* detects that the latter " +"fails, *f* should itself return an error value (usually ``NULL`` or " +"``-1``). It should *not* call one of the ``PyErr_*`` functions --- one has " +"already been called by *g*. *f*'s caller is then supposed to also return an " +"error indication to *its* caller, again *without* calling ``PyErr_*``, and " +"so on --- the most detailed cause of the error was already reported by the " +"function that first detected it. Once the error reaches the Python " +"interpreter's main loop, this aborts the currently executing Python code and " +"tries to find an exception handler specified by the Python programmer." +msgstr "" + +#: ../../extending/extending.rst:170 +msgid "" +"(There are situations where a module can actually give a more detailed error " +"message by calling another ``PyErr_*`` function, and in such cases it is " +"fine to do so. As a general rule, however, this is not necessary, and can " +"cause information about the cause of the error to be lost: most operations " +"can fail for a variety of reasons.)" +msgstr "" + +#: ../../extending/extending.rst:176 +msgid "" +"To ignore an exception set by a function call that failed, the exception " +"condition must be cleared explicitly by calling :c:func:`PyErr_Clear`. The " +"only time C code should call :c:func:`PyErr_Clear` is if it doesn't want to " +"pass the error on to the interpreter but wants to handle it completely by " +"itself (possibly by trying something else, or pretending nothing went wrong)." +msgstr "" + +#: ../../extending/extending.rst:182 +msgid "" +"Every failing :c:func:`malloc` call must be turned into an exception --- the " +"direct caller of :c:func:`malloc` (or :c:func:`realloc`) must " +"call :c:func:`PyErr_NoMemory` and return a failure indicator itself. All " +"the object-creating functions (for example, :c:func:`PyLong_FromLong`) " +"already do this, so this note is only relevant to those who " +"call :c:func:`malloc` directly." +msgstr "" + +#: ../../extending/extending.rst:188 +msgid "" +"Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " +"and friends, functions that return an integer status usually return a " +"positive value or zero for success and ``-1`` for failure, like Unix system " +"calls." +msgstr "" + +#: ../../extending/extending.rst:192 +msgid "" +"Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` " +"or :c:func:`Py_DECREF` calls for objects you have already created) when you " +"return an error indicator!" +msgstr "" + +#: ../../extending/extending.rst:196 +msgid "" +"The choice of which exception to raise is entirely yours. There are " +"predeclared C objects corresponding to all built-in Python exceptions, such " +"as :c:data:`PyExc_ZeroDivisionError`, which you can use directly. Of course, " +"you should choose exceptions wisely --- don't use :c:data:`PyExc_TypeError` " +"to mean that a file couldn't be opened (that should probably " +"be :c:data:`PyExc_OSError`). If something's wrong with the argument list, " +"the :c:func:`PyArg_ParseTuple` function usually " +"raises :c:data:`PyExc_TypeError`. If you have an argument whose value must " +"be in a particular range or must satisfy other " +"conditions, :c:data:`PyExc_ValueError` is appropriate." +msgstr "" + +#: ../../extending/extending.rst:206 +msgid "" +"You can also define a new exception that is unique to your module. The " +"simplest way to do this is to declare a static global object variable at the " +"beginning of the file::" +msgstr "" + +#: ../../extending/extending.rst:210 +msgid "static PyObject *SpamError = NULL;" +msgstr "" + +#: ../../extending/extending.rst:212 +msgid "" +"and initialize it by calling :c:func:`PyErr_NewException` in the " +"module's :c:data:`Py_mod_exec` function (:c:func:`!spam_module_exec`)::" +msgstr "" + +#: ../../extending/extending.rst:215 +msgid "SpamError = PyErr_NewException(\"spam.error\", NULL, NULL);" +msgstr "" + +#: ../../extending/extending.rst:217 +msgid "" +"Since :c:data:`!SpamError` is a global variable, it will be overwitten every " +"time the module is reinitialized, when the :c:data:`Py_mod_exec` function is " +"called." +msgstr "" + +#: ../../extending/extending.rst:220 +msgid "" +"For now, let's avoid the issue: we will block repeated initialization by " +"raising an :py:exc:`ImportError`::" +msgstr "" + +#: ../../extending/extending.rst:223 +msgid "" +"static PyObject *SpamError = NULL;\n" +"\n" +"static int\n" +"spam_module_exec(PyObject *m)\n" +"{\n" +" if (SpamError != NULL) {\n" +" PyErr_SetString(PyExc_ImportError,\n" +" \"cannot initialize spam module more than once\");\n" +" return -1;\n" +" }\n" +" SpamError = PyErr_NewException(\"spam.error\", NULL, NULL);\n" +" if (PyModule_AddObjectRef(m, \"SpamError\", SpamError) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot spam_module_slots[] = {\n" +" {Py_mod_exec, spam_module_exec},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static struct PyModuleDef spam_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" .m_size = 0, // non-negative\n" +" .m_slots = spam_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModuleDef_Init(&spam_module);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:259 +msgid "" +"Note that the Python name for the exception object is :exc:`!spam.error`. " +"The :c:func:`PyErr_NewException` function may create a class with the base " +"class being :exc:`Exception` (unless another class is passed in instead of " +"``NULL``), described in :ref:`bltin-exceptions`." +msgstr "" + +#: ../../extending/extending.rst:264 +msgid "" +"Note also that the :c:data:`!SpamError` variable retains a reference to the " +"newly created exception class; this is intentional! Since the exception " +"could be removed from the module by external code, an owned reference to the " +"class is needed to ensure that it will not be discarded, causing :c:data:`!" +"SpamError` to become a dangling pointer. Should it become a dangling " +"pointer, C code which raises the exception could cause a core dump or other " +"unintended side effects." +msgstr "" + +#: ../../extending/extending.rst:271 +msgid "" +"For now, the :c:func:`Py_DECREF` call to remove this reference is missing. " +"Even when the Python interpreter shuts down, the global :c:data:`!SpamError` " +"variable will not be garbage-collected. It will \"leak\". We did, however, " +"ensure that this will happen at most once per process." +msgstr "" + +#: ../../extending/extending.rst:276 +msgid "" +"We discuss the use of :c:macro:`PyMODINIT_FUNC` as a function return type " +"later in this sample." +msgstr "" + +#: ../../extending/extending.rst:279 +msgid "" +"The :exc:`!spam.error` exception can be raised in your extension module " +"using a call to :c:func:`PyErr_SetString` as shown below::" +msgstr "" + +#: ../../extending/extending.rst:282 +msgid "" +"static PyObject *\n" +"spam_system(PyObject *self, PyObject *args)\n" +"{\n" +" const char *command;\n" +" int sts;\n" +"\n" +" if (!PyArg_ParseTuple(args, \"s\", &command))\n" +" return NULL;\n" +" sts = system(command);\n" +" if (sts < 0) {\n" +" PyErr_SetString(SpamError, \"System command failed\");\n" +" return NULL;\n" +" }\n" +" return PyLong_FromLong(sts);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:302 +msgid "Back to the Example" +msgstr "" + +#: ../../extending/extending.rst:304 +msgid "" +"Going back to our example function, you should now be able to understand " +"this statement::" +msgstr "" + +#: ../../extending/extending.rst:307 +msgid "" +"if (!PyArg_ParseTuple(args, \"s\", &command))\n" +" return NULL;" +msgstr "" + +#: ../../extending/extending.rst:310 +msgid "" +"It returns ``NULL`` (the error indicator for functions returning object " +"pointers) if an error is detected in the argument list, relying on the " +"exception set by :c:func:`PyArg_ParseTuple`. Otherwise the string value of " +"the argument has been copied to the local variable :c:data:`!command`. This " +"is a pointer assignment and you are not supposed to modify the string to " +"which it points (so in Standard C, the variable :c:data:`!command` should " +"properly be declared as ``const char *command``)." +msgstr "" + +#: ../../extending/extending.rst:318 +msgid "" +"The next statement is a call to the Unix function :c:func:`system`, passing " +"it the string we just got from :c:func:`PyArg_ParseTuple`::" +msgstr "" + +#: ../../extending/extending.rst:321 +msgid "sts = system(command);" +msgstr "" + +#: ../../extending/extending.rst:323 +msgid "" +"Our :func:`!spam.system` function must return the value of :c:data:`!sts` as " +"a Python object. This is done using the " +"function :c:func:`PyLong_FromLong`. ::" +msgstr "" + +#: ../../extending/extending.rst:326 +msgid "return PyLong_FromLong(sts);" +msgstr "" + +#: ../../extending/extending.rst:328 +msgid "" +"In this case, it will return an integer object. (Yes, even integers are " +"objects on the heap in Python!)" +msgstr "" + +#: ../../extending/extending.rst:331 +msgid "" +"If you have a C function that returns no useful argument (a function " +"returning :c:expr:`void`), the corresponding Python function must return " +"``None``. You need this idiom to do so (which is implemented by " +"the :c:macro:`Py_RETURN_NONE` macro)::" +msgstr "" + +#: ../../extending/extending.rst:336 +msgid "" +"Py_INCREF(Py_None);\n" +"return Py_None;" +msgstr "" + +#: ../../extending/extending.rst:339 +msgid "" +":c:data:`Py_None` is the C name for the special Python object ``None``. It " +"is a genuine Python object rather than a ``NULL`` pointer, which means " +"\"error\" in most contexts, as we have seen." +msgstr "" + +#: ../../extending/extending.rst:347 +msgid "The Module's Method Table and Initialization Function" +msgstr "" + +#: ../../extending/extending.rst:349 +msgid "" +"I promised to show how :c:func:`!spam_system` is called from Python " +"programs. First, we need to list its name and address in a \"method table\"::" +msgstr "" + +#: ../../extending/extending.rst:352 +msgid "" +"static PyMethodDef spam_methods[] = {\n" +" ...\n" +" {\"system\", spam_system, METH_VARARGS,\n" +" \"Execute a shell command.\"},\n" +" ...\n" +" {NULL, NULL, 0, NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../extending/extending.rst:360 +msgid "" +"Note the third entry (``METH_VARARGS``). This is a flag telling the " +"interpreter the calling convention to be used for the C function. It should " +"normally always be ``METH_VARARGS`` or ``METH_VARARGS | METH_KEYWORDS``; a " +"value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` " +"is used." +msgstr "" + +#: ../../extending/extending.rst:365 +msgid "" +"When using only ``METH_VARARGS``, the function should expect the Python-" +"level parameters to be passed in as a tuple acceptable for parsing " +"via :c:func:`PyArg_ParseTuple`; more information on this function is " +"provided below." +msgstr "" + +#: ../../extending/extending.rst:369 +msgid "" +"The :c:macro:`METH_KEYWORDS` bit may be set in the third field if keyword " +"arguments should be passed to the function. In this case, the C function " +"should accept a third ``PyObject *`` parameter which will be a dictionary of " +"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " +"to such a function." +msgstr "" + +#: ../../extending/extending.rst:375 +msgid "" +"The method table must be referenced in the module definition structure::" +msgstr "" + +#: ../../extending/extending.rst:377 +msgid "" +"static struct PyModuleDef spam_module = {\n" +" ...\n" +" .m_methods = spam_methods,\n" +" ...\n" +"};" +msgstr "" + +#: ../../extending/extending.rst:383 +msgid "" +"This structure, in turn, must be passed to the interpreter in the module's " +"initialization function. The initialization function must be " +"named :c:func:`!PyInit_name`, where *name* is the name of the module, and " +"should be the only non-\\ ``static`` item defined in the module file::" +msgstr "" + +#: ../../extending/extending.rst:388 +msgid "" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModuleDef_Init(&spam_module);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:394 +msgid "" +"Note that :c:macro:`PyMODINIT_FUNC` declares the function as ``PyObject *`` " +"return type, declares any special linkage declarations required by the " +"platform, and for C++ declares the function as ``extern \"C\"``." +msgstr "" + +#: ../../extending/extending.rst:398 +msgid "" +":c:func:`!PyInit_spam` is called when each interpreter imports its " +"module :mod:`!spam` for the first time. (See below for comments about " +"embedding Python.) A pointer to the module definition must be returned " +"via :c:func:`PyModuleDef_Init`, so that the import machinery can create the " +"module and store it in ``sys.modules``." +msgstr "" + +#: ../../extending/extending.rst:403 +msgid "" +"When embedding Python, the :c:func:`!PyInit_spam` function is not called " +"automatically unless there's an entry in the :c:data:`PyImport_Inittab` " +"table. To add the module to the initialization table, " +"use :c:func:`PyImport_AppendInittab`, optionally followed by an import of " +"the module::" +msgstr "" + +#: ../../extending/extending.rst:408 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" PyStatus status;\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* Add a built-in module, before Py_Initialize */\n" +" if (PyImport_AppendInittab(\"spam\", PyInit_spam) == -1) {\n" +" fprintf(stderr, \"Error: could not extend in-built modules " +"table\\n\");\n" +" exit(1);\n" +" }\n" +"\n" +" /* Pass argv[0] to the Python interpreter */\n" +" status = PyConfig_SetBytesString(&config, &config.program_name, " +"argv[0]);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" /* Initialize the Python interpreter. Required.\n" +" If this step fails, it will be a fatal error. */\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +"\n" +" /* Optionally import the module; alternatively,\n" +" import can be deferred until the embedded script\n" +" imports it. */\n" +" PyObject *pmodule = PyImport_ImportModule(\"spam\");\n" +" if (!pmodule) {\n" +" PyErr_Print();\n" +" fprintf(stderr, \"Error: could not import module 'spam'\\n\");\n" +" }\n" +"\n" +" // ... use Python C API here ...\n" +"\n" +" return 0;\n" +"\n" +" exception:\n" +" PyConfig_Clear(&config);\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:458 +msgid "" +"If you declare a global variable or a local static one, the module may " +"experience unintended side-effects on re-initialisation, for example when " +"removing entries from ``sys.modules`` or importing compiled modules into " +"multiple interpreters within a process (or following a :c:func:`fork` " +"without an intervening :c:func:`exec`). If module state is not yet " +"fully :ref:`isolated `, authors should consider " +"marking the module as having no support for subinterpreters " +"(via :c:macro:`Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED`)." +msgstr "" + +#: ../../extending/extending.rst:467 +msgid "" +"A more substantial example module is included in the Python source " +"distribution as :file:`Modules/xxlimited.c`. This file may be used as a " +"template or simply read as an example." +msgstr "" + +#: ../../extending/extending.rst:475 +msgid "Compilation and Linkage" +msgstr "" + +#: ../../extending/extending.rst:477 +msgid "" +"There are two more things to do before you can use your new extension: " +"compiling and linking it with the Python system. If you use dynamic " +"loading, the details may depend on the style of dynamic loading your system " +"uses; see the chapters about building extension modules " +"(chapter :ref:`building`) and additional information that pertains only to " +"building on Windows (chapter :ref:`building-on-windows`) for more " +"information about this." +msgstr "" + +#: ../../extending/extending.rst:484 +msgid "" +"If you can't use dynamic loading, or if you want to make your module a " +"permanent part of the Python interpreter, you will have to change the " +"configuration setup and rebuild the interpreter. Luckily, this is very " +"simple on Unix: just place your file (:file:`spammodule.c` for example) in " +"the :file:`Modules/` directory of an unpacked source distribution, add a " +"line to the file :file:`Modules/Setup.local` describing your file:" +msgstr "" + +#: ../../extending/extending.rst:491 +msgid "spam spammodule.o" +msgstr "" + +#: ../../extending/extending.rst:495 +msgid "" +"and rebuild the interpreter by running :program:`make` in the toplevel " +"directory. You can also run :program:`make` in the :file:`Modules/` " +"subdirectory, but then you must first rebuild :file:`Makefile` there by " +"running ':program:`make` Makefile'. (This is necessary each time you change " +"the :file:`Setup` file.)" +msgstr "" + +#: ../../extending/extending.rst:501 +msgid "" +"If your module requires additional libraries to link with, these can be " +"listed on the line in the configuration file as well, for instance:" +msgstr "" + +#: ../../extending/extending.rst:504 +msgid "spam spammodule.o -lX11" +msgstr "" + +#: ../../extending/extending.rst:512 +msgid "Calling Python Functions from C" +msgstr "" + +#: ../../extending/extending.rst:514 +msgid "" +"So far we have concentrated on making C functions callable from Python. The " +"reverse is also useful: calling Python functions from C. This is especially " +"the case for libraries that support so-called \"callback\" functions. If a " +"C interface makes use of callbacks, the equivalent Python often needs to " +"provide a callback mechanism to the Python programmer; the implementation " +"will require calling the Python callback functions from a C callback. Other " +"uses are also imaginable." +msgstr "" + +#: ../../extending/extending.rst:522 +msgid "" +"Fortunately, the Python interpreter is easily called recursively, and there " +"is a standard interface to call a Python function. (I won't dwell on how to " +"call the Python parser with a particular string as input --- if you're " +"interested, have a look at the implementation of the :option:`-c` command " +"line option in :file:`Modules/main.c` from the Python source code.)" +msgstr "" + +#: ../../extending/extending.rst:528 +msgid "" +"Calling a Python function is easy. First, the Python program must somehow " +"pass you the Python function object. You should provide a function (or some " +"other interface) to do this. When this function is called, save a pointer " +"to the Python function object (be careful to :c:func:`Py_INCREF` it!) in a " +"global variable --- or wherever you see fit. For example, the following " +"function might be part of a module definition::" +msgstr "" + +#: ../../extending/extending.rst:535 +msgid "" +"static PyObject *my_callback = NULL;\n" +"\n" +"static PyObject *\n" +"my_set_callback(PyObject *dummy, PyObject *args)\n" +"{\n" +" PyObject *result = NULL;\n" +" PyObject *temp;\n" +"\n" +" if (PyArg_ParseTuple(args, \"O:set_callback\", &temp)) {\n" +" if (!PyCallable_Check(temp)) {\n" +" PyErr_SetString(PyExc_TypeError, \"parameter must be " +"callable\");\n" +" return NULL;\n" +" }\n" +" Py_XINCREF(temp); /* Add a reference to new callback */\n" +" Py_XDECREF(my_callback); /* Dispose of previous callback */\n" +" my_callback = temp; /* Remember new callback */\n" +" /* Boilerplate to return \"None\" */\n" +" Py_INCREF(Py_None);\n" +" result = Py_None;\n" +" }\n" +" return result;\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:558 +msgid "" +"This function must be registered with the interpreter using " +"the :c:macro:`METH_VARARGS` flag; this is described in " +"section :ref:`methodtable`. The :c:func:`PyArg_ParseTuple` function and its " +"arguments are documented in section :ref:`parsetuple`." +msgstr "" + +#: ../../extending/extending.rst:563 +msgid "" +"The macros :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF` increment/decrement " +"the reference count of an object and are safe in the presence of ``NULL`` " +"pointers (but note that *temp* will not be ``NULL`` in this context). More " +"info on them in section :ref:`refcounts`." +msgstr "" + +#: ../../extending/extending.rst:570 +msgid "" +"Later, when it is time to call the function, you call the C " +"function :c:func:`PyObject_CallObject`. This function has two arguments, " +"both pointers to arbitrary Python objects: the Python function, and the " +"argument list. The argument list must always be a tuple object, whose " +"length is the number of arguments. To call the Python function with no " +"arguments, pass in ``NULL``, or an empty tuple; to call it with one " +"argument, pass a singleton tuple. :c:func:`Py_BuildValue` returns a tuple " +"when its format string consists of zero or more format codes between " +"parentheses. For example::" +msgstr "" + +#: ../../extending/extending.rst:579 +msgid "" +"int arg;\n" +"PyObject *arglist;\n" +"PyObject *result;\n" +"...\n" +"arg = 123;\n" +"...\n" +"/* Time to call the callback */\n" +"arglist = Py_BuildValue(\"(i)\", arg);\n" +"result = PyObject_CallObject(my_callback, arglist);\n" +"Py_DECREF(arglist);" +msgstr "" + +#: ../../extending/extending.rst:590 +msgid "" +":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " +"return value of the Python function. :c:func:`PyObject_CallObject` is " +"\"reference-count-neutral\" with respect to its arguments. In the example a " +"new tuple was created to serve as the argument list, which " +"is :c:func:`Py_DECREF`\\ -ed immediately after " +"the :c:func:`PyObject_CallObject` call." +msgstr "" + +#: ../../extending/extending.rst:597 +msgid "" +"The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " +"brand new object, or it is an existing object whose reference count has been " +"incremented. So, unless you want to save it in a global variable, you " +"should somehow :c:func:`Py_DECREF` the result, even (especially!) if you are " +"not interested in its value." +msgstr "" + +#: ../../extending/extending.rst:603 +msgid "" +"Before you do this, however, it is important to check that the return value " +"isn't ``NULL``. If it is, the Python function terminated by raising an " +"exception. If the C code that called :c:func:`PyObject_CallObject` is called " +"from Python, it should now return an error indication to its Python caller, " +"so the interpreter can print a stack trace, or the calling Python code can " +"handle the exception. If this is not possible or desirable, the exception " +"should be cleared by calling :c:func:`PyErr_Clear`. For example::" +msgstr "" + +#: ../../extending/extending.rst:611 +msgid "" +"if (result == NULL)\n" +" return NULL; /* Pass error back */\n" +"...use result...\n" +"Py_DECREF(result);" +msgstr "" + +#: ../../extending/extending.rst:616 +msgid "" +"Depending on the desired interface to the Python callback function, you may " +"also have to provide an argument list to :c:func:`PyObject_CallObject`. In " +"some cases the argument list is also provided by the Python program, through " +"the same interface that specified the callback function. It can then be " +"saved and used in the same manner as the function object. In other cases, " +"you may have to construct a new tuple to pass as the argument list. The " +"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " +"you want to pass an integral event code, you might use the following code::" +msgstr "" + +#: ../../extending/extending.rst:625 +msgid "" +"PyObject *arglist;\n" +"...\n" +"arglist = Py_BuildValue(\"(l)\", eventcode);\n" +"result = PyObject_CallObject(my_callback, arglist);\n" +"Py_DECREF(arglist);\n" +"if (result == NULL)\n" +" return NULL; /* Pass error back */\n" +"/* Here maybe use the result */\n" +"Py_DECREF(result);" +msgstr "" + +#: ../../extending/extending.rst:635 +msgid "" +"Note the placement of ``Py_DECREF(arglist)`` immediately after the call, " +"before the error check! Also note that strictly speaking this code is not " +"complete: :c:func:`Py_BuildValue` may run out of memory, and this should be " +"checked." +msgstr "" + +#: ../../extending/extending.rst:639 +msgid "" +"You may also call a function with keyword arguments by " +"using :c:func:`PyObject_Call`, which supports arguments and keyword " +"arguments. As in the above example, we use :c:func:`Py_BuildValue` to " +"construct the dictionary. ::" +msgstr "" + +#: ../../extending/extending.rst:643 +msgid "" +"PyObject *dict;\n" +"...\n" +"dict = Py_BuildValue(\"{s:i}\", \"name\", val);\n" +"result = PyObject_Call(my_callback, NULL, dict);\n" +"Py_DECREF(dict);\n" +"if (result == NULL)\n" +" return NULL; /* Pass error back */\n" +"/* Here maybe use the result */\n" +"Py_DECREF(result);" +msgstr "" + +#: ../../extending/extending.rst:657 +msgid "Extracting Parameters in Extension Functions" +msgstr "" + +#: ../../extending/extending.rst:661 +msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" +msgstr "" + +#: ../../extending/extending.rst:663 +msgid "int PyArg_ParseTuple(PyObject *arg, const char *format, ...);" +msgstr "" + +#: ../../extending/extending.rst:665 +msgid "" +"The *arg* argument must be a tuple object containing an argument list passed " +"from Python to a C function. The *format* argument must be a format string, " +"whose syntax is explained in :ref:`arg-parsing` in the Python/C API " +"Reference Manual. The remaining arguments must be addresses of variables " +"whose type is determined by the format string." +msgstr "" + +#: ../../extending/extending.rst:671 +msgid "" +"Note that while :c:func:`PyArg_ParseTuple` checks that the Python arguments " +"have the required types, it cannot check the validity of the addresses of C " +"variables passed to the call: if you make mistakes there, your code will " +"probably crash or at least overwrite random bits in memory. So be careful!" +msgstr "" + +#: ../../extending/extending.rst:676 +msgid "" +"Note that any Python object references which are provided to the caller are " +"*borrowed* references; do not decrement their reference count!" +msgstr "" + +#: ../../extending/extending.rst:679 +msgid "Some example calls::" +msgstr "" + +#: ../../extending/extending.rst:686 +msgid "" +"int ok;\n" +"int i, j;\n" +"long k, l;\n" +"const char *s;\n" +"Py_ssize_t size;\n" +"\n" +"ok = PyArg_ParseTuple(args, \"\"); /* No arguments */\n" +" /* Python call: f() */" +msgstr "" + +#: ../../extending/extending.rst:697 +msgid "" +"ok = PyArg_ParseTuple(args, \"s\", &s); /* A string */\n" +" /* Possible Python call: f('whoops!') */" +msgstr "" + +#: ../../extending/extending.rst:702 +msgid "" +"ok = PyArg_ParseTuple(args, \"lls\", &k, &l, &s); /* Two longs and a string " +"*/\n" +" /* Possible Python call: f(1, 2, 'three') */" +msgstr "" + +#: ../../extending/extending.rst:707 +msgid "" +"ok = PyArg_ParseTuple(args, \"(ii)s#\", &i, &j, &s, &size);\n" +" /* A pair of ints and a string, whose size is also returned */\n" +" /* Possible Python call: f((1, 2), 'three') */" +msgstr "" + +#: ../../extending/extending.rst:713 +msgid "" +"{\n" +" const char *file;\n" +" const char *mode = \"r\";\n" +" int bufsize = 0;\n" +" ok = PyArg_ParseTuple(args, \"s|si\", &file, &mode, &bufsize);\n" +" /* A string, and optionally another string and an integer */\n" +" /* Possible Python calls:\n" +" f('spam')\n" +" f('spam', 'w')\n" +" f('spam', 'wb', 100000) */\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:727 +msgid "" +"{\n" +" int left, top, right, bottom, h, v;\n" +" ok = PyArg_ParseTuple(args, \"((ii)(ii))(ii)\",\n" +" &left, &top, &right, &bottom, &h, &v);\n" +" /* A rectangle and a point */\n" +" /* Possible Python call:\n" +" f(((0, 0), (400, 300)), (10, 10)) */\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:738 +msgid "" +"{\n" +" Py_complex c;\n" +" ok = PyArg_ParseTuple(args, \"D:myfunction\", &c);\n" +" /* a complex, also providing a function name for errors */\n" +" /* Possible Python call: myfunction(1+2j) */\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:749 +msgid "Keyword Parameters for Extension Functions" +msgstr "" + +#: ../../extending/extending.rst:753 +msgid "" +"The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" +msgstr "" + +#: ../../extending/extending.rst:755 +msgid "" +"int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,\n" +" const char *format, char * const " +"*kwlist, ...);" +msgstr "" + +#: ../../extending/extending.rst:758 +msgid "" +"The *arg* and *format* parameters are identical to those of " +"the :c:func:`PyArg_ParseTuple` function. The *kwdict* parameter is the " +"dictionary of keywords received as the third parameter from the Python " +"runtime. The *kwlist* parameter is a ``NULL``-terminated list of strings " +"which identify the parameters; the names are matched with the type " +"information from *format* from left to right. On " +"success, :c:func:`PyArg_ParseTupleAndKeywords` returns true, otherwise it " +"returns false and raises an appropriate exception." +msgstr "" + +#: ../../extending/extending.rst:768 +msgid "" +"Nested tuples cannot be parsed when using keyword arguments! Keyword " +"parameters passed in which are not present in the *kwlist* will " +"cause :exc:`TypeError` to be raised." +msgstr "" + +#: ../../extending/extending.rst:774 +msgid "" +"Here is an example module which uses keywords, based on an example by Geoff " +"Philbrick (philbrick@hks.com)::" +msgstr "" + +#: ../../extending/extending.rst:777 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"static PyObject *\n" +"keywdarg_parrot(PyObject *self, PyObject *args, PyObject *keywds)\n" +"{\n" +" int voltage;\n" +" const char *state = \"a stiff\";\n" +" const char *action = \"voom\";\n" +" const char *type = \"Norwegian Blue\";\n" +"\n" +" static char *kwlist[] = {\"voltage\", \"state\", \"action\", \"type\", " +"NULL};\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, keywds, \"i|sss\", kwlist,\n" +" &voltage, &state, &action, &type))\n" +" return NULL;\n" +"\n" +" printf(\"-- This parrot wouldn't %s if you put %i Volts through it." +"\\n\",\n" +" action, voltage);\n" +" printf(\"-- Lovely plumage, the %s -- It's %s!\\n\", type, state);\n" +"\n" +" Py_RETURN_NONE;\n" +"}\n" +"\n" +"static PyMethodDef keywdarg_methods[] = {\n" +" /* The cast of the function is necessary since PyCFunction values\n" +" * only take two PyObject* parameters, and keywdarg_parrot() takes\n" +" * three.\n" +" */\n" +" {\"parrot\", (PyCFunction)(void(*)(void))keywdarg_parrot, METH_VARARGS | " +"METH_KEYWORDS,\n" +" \"Print a lovely skit to standard output.\"},\n" +" {NULL, NULL, 0, NULL} /* sentinel */\n" +"};\n" +"\n" +"static struct PyModuleDef keywdarg_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"keywdarg\",\n" +" .m_size = 0,\n" +" .m_methods = keywdarg_methods,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_keywdarg(void)\n" +"{\n" +" return PyModuleDef_Init(&keywdarg_module);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:828 +msgid "Building Arbitrary Values" +msgstr "" + +#: ../../extending/extending.rst:830 +msgid "" +"This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " +"declared as follows::" +msgstr "" + +#: ../../extending/extending.rst:833 +msgid "PyObject *Py_BuildValue(const char *format, ...);" +msgstr "" + +#: ../../extending/extending.rst:835 +msgid "" +"It recognizes a set of format units similar to the ones recognized " +"by :c:func:`PyArg_ParseTuple`, but the arguments (which are input to the " +"function, not output) must not be pointers, just values. It returns a new " +"Python object, suitable for returning from a C function called from Python." +msgstr "" + +#: ../../extending/extending.rst:840 +msgid "" +"One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " +"its first argument to be a tuple (since Python argument lists are always " +"represented as tuples internally), :c:func:`Py_BuildValue` does not always " +"build a tuple. It builds a tuple only if its format string contains two or " +"more format units. If the format string is empty, it returns ``None``; if it " +"contains exactly one format unit, it returns whatever object is described by " +"that format unit. To force it to return a tuple of size 0 or one, " +"parenthesize the format string." +msgstr "" + +#: ../../extending/extending.rst:848 +msgid "" +"Examples (to the left the call, to the right the resulting Python value):" +msgstr "" + +#: ../../extending/extending.rst:850 +msgid "" +"Py_BuildValue(\"\") None\n" +"Py_BuildValue(\"i\", 123) 123\n" +"Py_BuildValue(\"iii\", 123, 456, 789) (123, 456, 789)\n" +"Py_BuildValue(\"s\", \"hello\") 'hello'\n" +"Py_BuildValue(\"y\", \"hello\") b'hello'\n" +"Py_BuildValue(\"ss\", \"hello\", \"world\") ('hello', 'world')\n" +"Py_BuildValue(\"s#\", \"hello\", 4) 'hell'\n" +"Py_BuildValue(\"y#\", \"hello\", 4) b'hell'\n" +"Py_BuildValue(\"()\") ()\n" +"Py_BuildValue(\"(i)\", 123) (123,)\n" +"Py_BuildValue(\"(ii)\", 123, 456) (123, 456)\n" +"Py_BuildValue(\"(i,i)\", 123, 456) (123, 456)\n" +"Py_BuildValue(\"[i,i]\", 123, 456) [123, 456]\n" +"Py_BuildValue(\"{s:i,s:i}\",\n" +" \"abc\", 123, \"def\", 456) {'abc': 123, 'def': 456}\n" +"Py_BuildValue(\"((ii)(ii)) (ii)\",\n" +" 1, 2, 3, 4, 5, 6) (((1, 2), (3, 4)), (5, 6))" +msgstr "" + +#: ../../extending/extending.rst:874 +msgid "Reference Counts" +msgstr "" + +#: ../../extending/extending.rst:876 +msgid "" +"In languages like C or C++, the programmer is responsible for dynamic " +"allocation and deallocation of memory on the heap. In C, this is done using " +"the functions :c:func:`malloc` and :c:func:`free`. In C++, the operators " +"``new`` and ``delete`` are used with essentially the same meaning and we'll " +"restrict the following discussion to the C case." +msgstr "" + +#: ../../extending/extending.rst:882 +msgid "" +"Every block of memory allocated with :c:func:`malloc` should eventually be " +"returned to the pool of available memory by exactly one call " +"to :c:func:`free`. It is important to call :c:func:`free` at the right " +"time. If a block's address is forgotten but :c:func:`free` is not called " +"for it, the memory it occupies cannot be reused until the program " +"terminates. This is called a :dfn:`memory leak`. On the other hand, if a " +"program calls :c:func:`free` for a block and then continues to use the " +"block, it creates a conflict with reuse of the block through " +"another :c:func:`malloc` call. This is called :dfn:`using freed memory`. It " +"has the same bad consequences as referencing uninitialized data --- core " +"dumps, wrong results, mysterious crashes." +msgstr "" + +#: ../../extending/extending.rst:893 +msgid "" +"Common causes of memory leaks are unusual paths through the code. For " +"instance, a function may allocate a block of memory, do some calculation, " +"and then free the block again. Now a change in the requirements for the " +"function may add a test to the calculation that detects an error condition " +"and can return prematurely from the function. It's easy to forget to free " +"the allocated memory block when taking this premature exit, especially when " +"it is added later to the code. Such leaks, once introduced, often go " +"undetected for a long time: the error exit is taken only in a small fraction " +"of all calls, and most modern machines have plenty of virtual memory, so the " +"leak only becomes apparent in a long-running process that uses the leaking " +"function frequently. Therefore, it's important to prevent leaks from " +"happening by having a coding convention or strategy that minimizes this kind " +"of errors." +msgstr "" + +#: ../../extending/extending.rst:906 +msgid "" +"Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " +"needs a strategy to avoid memory leaks as well as the use of freed memory. " +"The chosen method is called :dfn:`reference counting`. The principle is " +"simple: every object contains a counter, which is incremented when a " +"reference to the object is stored somewhere, and which is decremented when a " +"reference to it is deleted. When the counter reaches zero, the last " +"reference to the object has been deleted and the object is freed." +msgstr "" + +#: ../../extending/extending.rst:914 +msgid "" +"An alternative strategy is called :dfn:`automatic garbage collection`. " +"(Sometimes, reference counting is also referred to as a garbage collection " +"strategy, hence my use of \"automatic\" to distinguish the two.) The big " +"advantage of automatic garbage collection is that the user doesn't need to " +"call :c:func:`free` explicitly. (Another claimed advantage is an " +"improvement in speed or memory usage --- this is no hard fact however.) The " +"disadvantage is that for C, there is no truly portable automatic garbage " +"collector, while reference counting can be implemented portably (as long as " +"the functions :c:func:`malloc` and :c:func:`free` are available --- which " +"the C Standard guarantees). Maybe some day a sufficiently portable automatic " +"garbage collector will be available for C. Until then, we'll have to live " +"with reference counts." +msgstr "" + +#: ../../extending/extending.rst:926 +msgid "" +"While Python uses the traditional reference counting implementation, it also " +"offers a cycle detector that works to detect reference cycles. This allows " +"applications to not worry about creating direct or indirect circular " +"references; these are the weakness of garbage collection implemented using " +"only reference counting. Reference cycles consist of objects which contain " +"(possibly indirect) references to themselves, so that each object in the " +"cycle has a reference count which is non-zero. Typical reference counting " +"implementations are not able to reclaim the memory belonging to any objects " +"in a reference cycle, or referenced from the objects in the cycle, even " +"though there are no further references to the cycle itself." +msgstr "" + +#: ../../extending/extending.rst:937 +msgid "" +"The cycle detector is able to detect garbage cycles and can reclaim them. " +"The :mod:`gc` module exposes a way to run the detector " +"(the :func:`~gc.collect` function), as well as configuration interfaces and " +"the ability to disable the detector at runtime." +msgstr "" + +#: ../../extending/extending.rst:946 +msgid "Reference Counting in Python" +msgstr "" + +#: ../../extending/extending.rst:948 +msgid "" +"There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " +"the incrementing and decrementing of the reference " +"count. :c:func:`Py_DECREF` also frees the object when the count reaches " +"zero. For flexibility, it doesn't call :c:func:`free` directly --- rather, " +"it makes a call through a function pointer in the object's :dfn:`type " +"object`. For this purpose (and others), every object also contains a " +"pointer to its type object." +msgstr "" + +#: ../../extending/extending.rst:955 +msgid "" +"The big question now remains: when to use ``Py_INCREF(x)`` and " +"``Py_DECREF(x)``? Let's first introduce some terms. Nobody \"owns\" an " +"object; however, you can :dfn:`own a reference` to an object. An object's " +"reference count is now defined as the number of owned references to it. The " +"owner of a reference is responsible for calling :c:func:`Py_DECREF` when the " +"reference is no longer needed. Ownership of a reference can be " +"transferred. There are three ways to dispose of an owned reference: pass it " +"on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " +"reference creates a memory leak." +msgstr "" + +#: ../../extending/extending.rst:964 +msgid "" +"It is also possible to :dfn:`borrow` [#]_ a reference to an object. The " +"borrower of a reference should not call :c:func:`Py_DECREF`. The borrower " +"must not hold on to the object longer than the owner from which it was " +"borrowed. Using a borrowed reference after the owner has disposed of it " +"risks using freed memory and should be avoided completely [#]_." +msgstr "" + +#: ../../extending/extending.rst:970 +msgid "" +"The advantage of borrowing over owning a reference is that you don't need to " +"take care of disposing of the reference on all possible paths through the " +"code --- in other words, with a borrowed reference you don't run the risk of " +"leaking when a premature exit is taken. The disadvantage of borrowing over " +"owning is that there are some subtle situations where in seemingly correct " +"code a borrowed reference can be used after the owner from which it was " +"borrowed has in fact disposed of it." +msgstr "" + +#: ../../extending/extending.rst:978 +msgid "" +"A borrowed reference can be changed into an owned reference by " +"calling :c:func:`Py_INCREF`. This does not affect the status of the owner " +"from which the reference was borrowed --- it creates a new owned reference, " +"and gives full owner responsibilities (the new owner must dispose of the " +"reference properly, as well as the previous owner)." +msgstr "" + +#: ../../extending/extending.rst:988 +msgid "Ownership Rules" +msgstr "" + +#: ../../extending/extending.rst:990 +msgid "" +"Whenever an object reference is passed into or out of a function, it is part " +"of the function's interface specification whether ownership is transferred " +"with the reference or not." +msgstr "" + +#: ../../extending/extending.rst:994 +msgid "" +"Most functions that return a reference to an object pass on ownership with " +"the reference. In particular, all functions whose function it is to create " +"a new object, such as :c:func:`PyLong_FromLong` and :c:func:`Py_BuildValue`, " +"pass ownership to the receiver. Even if the object is not actually new, you " +"still receive ownership of a new reference to that object. For " +"instance, :c:func:`PyLong_FromLong` maintains a cache of popular values and " +"can return a reference to a cached item." +msgstr "" + +#: ../../extending/extending.rst:1002 +msgid "" +"Many functions that extract objects from other objects also transfer " +"ownership with the reference, for " +"instance :c:func:`PyObject_GetAttrString`. The picture is less clear, here, " +"however, since a few common routines are " +"exceptions: :c:func:`PyTuple_GetItem`, :c:func:`PyList_GetItem`, :c:func:`PyDict_GetItem`, " +"and :c:func:`PyDict_GetItemString` all return references that you borrow " +"from the tuple, list or dictionary." +msgstr "" + +#: ../../extending/extending.rst:1009 +msgid "" +"The function :c:func:`PyImport_AddModule` also returns a borrowed reference, " +"even though it may actually create the object it returns: this is possible " +"because an owned reference to the object is stored in ``sys.modules``." +msgstr "" + +#: ../../extending/extending.rst:1013 +msgid "" +"When you pass an object reference into another function, in general, the " +"function borrows the reference from you --- if it needs to store it, it will " +"use :c:func:`Py_INCREF` to become an independent owner. There are exactly " +"two important exceptions to this rule: :c:func:`PyTuple_SetItem` " +"and :c:func:`PyList_SetItem`. These functions take over ownership of the " +"item passed to them --- even if they fail! (Note " +"that :c:func:`PyDict_SetItem` and friends don't take over ownership --- they " +"are \"normal.\")" +msgstr "" + +#: ../../extending/extending.rst:1021 +msgid "" +"When a C function is called from Python, it borrows references to its " +"arguments from the caller. The caller owns a reference to the object, so " +"the borrowed reference's lifetime is guaranteed until the function returns. " +"Only when such a borrowed reference must be stored or passed on, it must be " +"turned into an owned reference by calling :c:func:`Py_INCREF`." +msgstr "" + +#: ../../extending/extending.rst:1027 +msgid "" +"The object reference returned from a C function that is called from Python " +"must be an owned reference --- ownership is transferred from the function to " +"its caller." +msgstr "" + +#: ../../extending/extending.rst:1035 +msgid "Thin Ice" +msgstr "" + +#: ../../extending/extending.rst:1037 +msgid "" +"There are a few situations where seemingly harmless use of a borrowed " +"reference can lead to problems. These all have to do with implicit " +"invocations of the interpreter, which can cause the owner of a reference to " +"dispose of it." +msgstr "" + +#: ../../extending/extending.rst:1041 +msgid "" +"The first and most important case to know about is using :c:func:`Py_DECREF` " +"on an unrelated object while borrowing a reference to a list item. For " +"instance::" +msgstr "" + +#: ../../extending/extending.rst:1044 +msgid "" +"void\n" +"bug(PyObject *list)\n" +"{\n" +" PyObject *item = PyList_GetItem(list, 0);\n" +"\n" +" PyList_SetItem(list, 1, PyLong_FromLong(0L));\n" +" PyObject_Print(item, stdout, 0); /* BUG! */\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1053 +msgid "" +"This function first borrows a reference to ``list[0]``, then replaces " +"``list[1]`` with the value ``0``, and finally prints the borrowed reference. " +"Looks harmless, right? But it's not!" +msgstr "" + +#: ../../extending/extending.rst:1057 +msgid "" +"Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " +"references to all its items, so when item 1 is replaced, it has to dispose " +"of the original item 1. Now let's suppose the original item 1 was an " +"instance of a user-defined class, and let's further suppose that the class " +"defined a :meth:`!__del__` method. If this class instance has a reference " +"count of 1, disposing of it will call its :meth:`!__del__` method." +msgstr "" + +#: ../../extending/extending.rst:1064 +msgid "" +"Since it is written in Python, the :meth:`!__del__` method can execute " +"arbitrary Python code. Could it perhaps do something to invalidate the " +"reference to ``item`` in :c:func:`!bug`? You bet! Assuming that the list " +"passed into :c:func:`!bug` is accessible to the :meth:`!__del__` method, it " +"could execute a statement to the effect of ``del list[0]``, and assuming " +"this was the last reference to that object, it would free the memory " +"associated with it, thereby invalidating ``item``." +msgstr "" + +#: ../../extending/extending.rst:1072 +msgid "" +"The solution, once you know the source of the problem, is easy: temporarily " +"increment the reference count. The correct version of the function reads::" +msgstr "" + +#: ../../extending/extending.rst:1075 +msgid "" +"void\n" +"no_bug(PyObject *list)\n" +"{\n" +" PyObject *item = PyList_GetItem(list, 0);\n" +"\n" +" Py_INCREF(item);\n" +" PyList_SetItem(list, 1, PyLong_FromLong(0L));\n" +" PyObject_Print(item, stdout, 0);\n" +" Py_DECREF(item);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1086 +msgid "" +"This is a true story. An older version of Python contained variants of this " +"bug and someone spent a considerable amount of time in a C debugger to " +"figure out why his :meth:`!__del__` methods would fail..." +msgstr "" + +#: ../../extending/extending.rst:1090 +msgid "" +"The second case of problems with a borrowed reference is a variant involving " +"threads. Normally, multiple threads in the Python interpreter can't get in " +"each other's way, because there is a :term:`global lock ` protecting Python's entire object space. However, it is possible to " +"temporarily release this lock using the " +"macro :c:macro:`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it " +"using :c:macro:`Py_END_ALLOW_THREADS`. This is common around blocking I/O " +"calls, to let other threads use the processor while waiting for the I/O to " +"complete. Obviously, the following function has the same problem as the " +"previous one::" +msgstr "" + +#: ../../extending/extending.rst:1100 +msgid "" +"void\n" +"bug(PyObject *list)\n" +"{\n" +" PyObject *item = PyList_GetItem(list, 0);\n" +" Py_BEGIN_ALLOW_THREADS\n" +" ...some blocking I/O call...\n" +" Py_END_ALLOW_THREADS\n" +" PyObject_Print(item, stdout, 0); /* BUG! */\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1114 +msgid "NULL Pointers" +msgstr "" + +#: ../../extending/extending.rst:1116 +msgid "" +"In general, functions that take object references as arguments do not expect " +"you to pass them ``NULL`` pointers, and will dump core (or cause later core " +"dumps) if you do so. Functions that return object references generally " +"return ``NULL`` only to indicate that an exception occurred. The reason for " +"not testing for ``NULL`` arguments is that functions often pass the objects " +"they receive on to other function --- if each function were to test for " +"``NULL``, there would be a lot of redundant tests and the code would run " +"more slowly." +msgstr "" + +#: ../../extending/extending.rst:1124 +msgid "" +"It is better to test for ``NULL`` only at the \"source:\" when a pointer " +"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from " +"a function that may raise an exception." +msgstr "" + +#: ../../extending/extending.rst:1128 +msgid "" +"The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " +"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` " +"and :c:func:`Py_XDECREF` do." +msgstr "" + +#: ../../extending/extending.rst:1132 +msgid "" +"The macros for checking for a particular object type (``Pytype_Check()``) " +"don't check for ``NULL`` pointers --- again, there is much code that calls " +"several of these in a row to test an object against various different " +"expected types, and this would generate redundant tests. There are no " +"variants with ``NULL`` checking." +msgstr "" + +#: ../../extending/extending.rst:1138 +msgid "" +"The C function calling mechanism guarantees that the argument list passed to " +"C functions (``args`` in the examples) is never ``NULL`` --- in fact it " +"guarantees that it is always a tuple [#]_." +msgstr "" + +#: ../../extending/extending.rst:1142 +msgid "" +"It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " +"user." +msgstr "" + +#: ../../extending/extending.rst:1153 +msgid "Writing Extensions in C++" +msgstr "" + +#: ../../extending/extending.rst:1155 +msgid "" +"It is possible to write extension modules in C++. Some restrictions apply. " +"If the main program (the Python interpreter) is compiled and linked by the C " +"compiler, global or static objects with constructors cannot be used. This " +"is not a problem if the main program is linked by the C++ compiler. " +"Functions that will be called by the Python interpreter (in particular, " +"module initialization functions) have to be declared using ``extern \"C\"``. " +"It is unnecessary to enclose the Python header files in ``extern \"C\" {...}" +"`` --- they use this form already if the symbol ``__cplusplus`` is defined " +"(all recent C++ compilers define this symbol)." +msgstr "" + +#: ../../extending/extending.rst:1169 +msgid "Providing a C API for an Extension Module" +msgstr "" + +#: ../../extending/extending.rst:1174 +msgid "" +"Many extension modules just provide new functions and types to be used from " +"Python, but sometimes the code in an extension module can be useful for " +"other extension modules. For example, an extension module could implement a " +"type \"collection\" which works like lists without order. Just like the " +"standard Python list type has a C API which permits extension modules to " +"create and manipulate lists, this new collection type should have a set of C " +"functions for direct manipulation from other extension modules." +msgstr "" + +#: ../../extending/extending.rst:1182 +msgid "" +"At first sight this seems easy: just write the functions (without declaring " +"them ``static``, of course), provide an appropriate header file, and " +"document the C API. And in fact this would work if all extension modules " +"were always linked statically with the Python interpreter. When modules are " +"used as shared libraries, however, the symbols defined in one module may not " +"be visible to another module. The details of visibility depend on the " +"operating system; some systems use one global namespace for the Python " +"interpreter and all extension modules (Windows, for example), whereas others " +"require an explicit list of imported symbols at module link time (AIX is one " +"example), or offer a choice of different strategies (most Unices). And even " +"if symbols are globally visible, the module whose functions one wishes to " +"call might not have been loaded yet!" +msgstr "" + +#: ../../extending/extending.rst:1194 +msgid "" +"Portability therefore requires not to make any assumptions about symbol " +"visibility. This means that all symbols in extension modules should be " +"declared ``static``, except for the module's initialization function, in " +"order to avoid name clashes with other extension modules (as discussed in " +"section :ref:`methodtable`). And it means that symbols that *should* be " +"accessible from other extension modules must be exported in a different way." +msgstr "" + +#: ../../extending/extending.rst:1201 +msgid "" +"Python provides a special mechanism to pass C-level information (pointers) " +"from one extension module to another one: Capsules. A Capsule is a Python " +"data type which stores a pointer (:c:expr:`void \\*`). Capsules can only be " +"created and accessed via their C API, but they can be passed around like any " +"other Python object. In particular, they can be assigned to a name in an " +"extension module's namespace. Other extension modules can then import this " +"module, retrieve the value of this name, and then retrieve the pointer from " +"the Capsule." +msgstr "" + +#: ../../extending/extending.rst:1209 +msgid "" +"There are many ways in which Capsules can be used to export the C API of an " +"extension module. Each function could get its own Capsule, or all C API " +"pointers could be stored in an array whose address is published in a " +"Capsule. And the various tasks of storing and retrieving the pointers can be " +"distributed in different ways between the module providing the code and the " +"client modules." +msgstr "" + +#: ../../extending/extending.rst:1215 +msgid "" +"Whichever method you choose, it's important to name your Capsules properly. " +"The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const " +"char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly " +"encourage you to specify a name. Properly named Capsules provide a degree " +"of runtime type-safety; there is no feasible way to tell one unnamed Capsule " +"from another." +msgstr "" + +#: ../../extending/extending.rst:1222 +msgid "" +"In particular, Capsules used to expose C APIs should be given a name " +"following this convention::" +msgstr "" + +#: ../../extending/extending.rst:1225 +msgid "modulename.attributename" +msgstr "" + +#: ../../extending/extending.rst:1227 +msgid "" +"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " +"C API provided via a Capsule, but only if the Capsule's name matches this " +"convention. This behavior gives C API users a high degree of certainty that " +"the Capsule they load contains the correct C API." +msgstr "" + +#: ../../extending/extending.rst:1232 +msgid "" +"The following example demonstrates an approach that puts most of the burden " +"on the writer of the exporting module, which is appropriate for commonly " +"used library modules. It stores all C API pointers (just one in the " +"example!) in an array of :c:expr:`void` pointers which becomes the value of " +"a Capsule. The header file corresponding to the module provides a macro that " +"takes care of importing the module and retrieving its C API pointers; client " +"modules only have to call this macro before accessing the C API." +msgstr "" + +#: ../../extending/extending.rst:1240 +msgid "" +"The exporting module is a modification of the :mod:`!spam` module from " +"section :ref:`extending-simpleexample`. The function :func:`!spam.system` " +"does not call the C library function :c:func:`system` directly, but a " +"function :c:func:`!PySpam_System`, which would of course do something more " +"complicated in reality (such as adding \"spam\" to every command). This " +"function :c:func:`!PySpam_System` is also exported to other extension " +"modules." +msgstr "" + +#: ../../extending/extending.rst:1247 +msgid "" +"The function :c:func:`!PySpam_System` is a plain C function, declared " +"``static`` like everything else::" +msgstr "" + +#: ../../extending/extending.rst:1250 +msgid "" +"static int\n" +"PySpam_System(const char *command)\n" +"{\n" +" return system(command);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1256 +msgid "The function :c:func:`!spam_system` is modified in a trivial way::" +msgstr "" + +#: ../../extending/extending.rst:1258 +msgid "" +"static PyObject *\n" +"spam_system(PyObject *self, PyObject *args)\n" +"{\n" +" const char *command;\n" +" int sts;\n" +"\n" +" if (!PyArg_ParseTuple(args, \"s\", &command))\n" +" return NULL;\n" +" sts = PySpam_System(command);\n" +" return PyLong_FromLong(sts);\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1270 +msgid "In the beginning of the module, right after the line ::" +msgstr "" + +#: ../../extending/extending.rst:1272 +msgid "#include " +msgstr "" + +#: ../../extending/extending.rst:1274 +msgid "two more lines must be added::" +msgstr "" + +#: ../../extending/extending.rst:1276 +msgid "" +"#define SPAM_MODULE\n" +"#include \"spammodule.h\"" +msgstr "" + +#: ../../extending/extending.rst:1279 +msgid "" +"The ``#define`` is used to tell the header file that it is being included in " +"the exporting module, not a client module. Finally, the " +"module's :c:data:`mod_exec ` function must take care of " +"initializing the C API pointer array::" +msgstr "" + +#: ../../extending/extending.rst:1283 +msgid "" +"static int\n" +"spam_module_exec(PyObject *m)\n" +"{\n" +" static void *PySpam_API[PySpam_API_pointers];\n" +" PyObject *c_api_object;\n" +"\n" +" /* Initialize the C API pointer array */\n" +" PySpam_API[PySpam_System_NUM] = (void *)PySpam_System;\n" +"\n" +" /* Create a Capsule containing the API pointer array's address */\n" +" c_api_object = PyCapsule_New((void *)PySpam_API, \"spam._C_API\", " +"NULL);\n" +"\n" +" if (PyModule_Add(m, \"_C_API\", c_api_object) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1302 +msgid "" +"Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " +"would disappear when :c:func:`!PyInit_spam` terminates!" +msgstr "" + +#: ../../extending/extending.rst:1305 +msgid "" +"The bulk of the work is in the header file :file:`spammodule.h`, which looks " +"like this::" +msgstr "" + +#: ../../extending/extending.rst:1308 +msgid "" +"#ifndef Py_SPAMMODULE_H\n" +"#define Py_SPAMMODULE_H\n" +"#ifdef __cplusplus\n" +"extern \"C\" {\n" +"#endif\n" +"\n" +"/* Header file for spammodule */\n" +"\n" +"/* C API functions */\n" +"#define PySpam_System_NUM 0\n" +"#define PySpam_System_RETURN int\n" +"#define PySpam_System_PROTO (const char *command)\n" +"\n" +"/* Total number of C API pointers */\n" +"#define PySpam_API_pointers 1\n" +"\n" +"\n" +"#ifdef SPAM_MODULE\n" +"/* This section is used when compiling spammodule.c */\n" +"\n" +"static PySpam_System_RETURN PySpam_System PySpam_System_PROTO;\n" +"\n" +"#else\n" +"/* This section is used in modules that use spammodule's API */\n" +"\n" +"static void **PySpam_API;\n" +"\n" +"#define PySpam_System \\\n" +" (*(PySpam_System_RETURN (*)PySpam_System_PROTO) " +"PySpam_API[PySpam_System_NUM])\n" +"\n" +"/* Return -1 on error, 0 on success.\n" +" * PyCapsule_Import will set an exception if there's an error.\n" +" */\n" +"static int\n" +"import_spam(void)\n" +"{\n" +" PySpam_API = (void **)PyCapsule_Import(\"spam._C_API\", 0);\n" +" return (PySpam_API != NULL) ? 0 : -1;\n" +"}\n" +"\n" +"#endif\n" +"\n" +"#ifdef __cplusplus\n" +"}\n" +"#endif\n" +"\n" +"#endif /* !defined(Py_SPAMMODULE_H) */" +msgstr "" + +#: ../../extending/extending.rst:1356 +msgid "" +"All that a client module must do in order to have access to the " +"function :c:func:`!PySpam_System` is to call the function (or rather " +"macro) :c:func:`!import_spam` in its :c:data:`mod_exec ` " +"function::" +msgstr "" + +#: ../../extending/extending.rst:1360 +msgid "" +"static int\n" +"client_module_exec(PyObject *m)\n" +"{\n" +" if (import_spam() < 0) {\n" +" return -1;\n" +" }\n" +" /* additional initialization can happen here */\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/extending.rst:1370 +msgid "" +"The main disadvantage of this approach is that the file :file:`spammodule.h` " +"is rather complicated. However, the basic structure is the same for each " +"function that is exported, so it has to be learned only once." +msgstr "" + +#: ../../extending/extending.rst:1374 +msgid "" +"Finally it should be mentioned that Capsules offer additional functionality, " +"which is especially useful for memory allocation and deallocation of the " +"pointer stored in a Capsule. The details are described in the Python/C API " +"Reference Manual in the section :ref:`capsules` and in the implementation of " +"Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " +"in the Python source code distribution)." +msgstr "" + +#: ../../extending/extending.rst:1382 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../extending/extending.rst:1383 +msgid "" +"An interface for this function already exists in the standard " +"module :mod:`os` --- it was chosen as a simple and straightforward example." +msgstr "" + +#: ../../extending/extending.rst:1386 +msgid "" +"The metaphor of \"borrowing\" a reference is not completely correct: the " +"owner still has a copy of the reference." +msgstr "" + +#: ../../extending/extending.rst:1389 +msgid "" +"Checking that the reference count is at least 1 **does not work** --- the " +"reference count itself could be in freed memory and may thus be reused for " +"another object!" +msgstr "" + +#: ../../extending/extending.rst:1393 +msgid "" +"These guarantees don't hold when you use the \"old\" style calling " +"convention --- this is still found in much existing code." +msgstr "" + +#: ../../extending/extending.rst:568 +msgid "PyObject_CallObject (C function)" +msgstr "" + +#: ../../extending/extending.rst:659 +msgid "PyArg_ParseTuple (C function)" +msgstr "" + +#: ../../extending/extending.rst:751 +msgid "PyArg_ParseTupleAndKeywords (C function)" +msgstr "" + +#: ../../extending/extending.rst:772 +msgid "Philbrick, Geoff" +msgstr "" diff --git a/extending/index.po b/extending/index.po new file mode 100644 index 0000000..80aac55 --- /dev/null +++ b/extending/index.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/index.rst:5 +msgid "Extending and Embedding the Python Interpreter" +msgstr "" + +#: ../../extending/index.rst:7 +msgid "" +"This document describes how to write modules in C or C++ to extend the " +"Python interpreter with new modules. Those modules can not only define new " +"functions but also new object types and their methods. The document also " +"describes how to embed the Python interpreter in another application, for " +"use as an extension language. Finally, it shows how to compile and link " +"extension modules so that they can be loaded dynamically (at run time) into " +"the interpreter, if the underlying operating system supports this feature." +msgstr "" + +#: ../../extending/index.rst:15 +msgid "" +"This document assumes basic knowledge about Python. For an informal " +"introduction to the language, see :ref:`tutorial-index`. :ref:`reference-" +"index` gives a more formal definition of the language. :ref:`library-index` " +"documents the existing object types, functions and modules (both built-in " +"and written in Python) that give the language its wide application range." +msgstr "" + +#: ../../extending/index.rst:21 +msgid "" +"For a detailed description of the whole Python/C API, see the " +"separate :ref:`c-api-index`." +msgstr "" + +#: ../../extending/index.rst:26 +msgid "Recommended third party tools" +msgstr "" + +#: ../../extending/index.rst:28 +msgid "" +"This guide only covers the basic tools for creating extensions provided as " +"part of this version of CPython. Some :ref:`third party tools ` " +"offer both simpler and more sophisticated approaches to creating C and C++ " +"extensions for Python." +msgstr "" + +#: ../../extending/index.rst:35 +msgid "Creating extensions without third party tools" +msgstr "" + +#: ../../extending/index.rst:37 +msgid "" +"This section of the guide covers creating C and C++ extensions without " +"assistance from third party tools. It is intended primarily for creators of " +"those tools, rather than being a recommended way to create your own C " +"extensions." +msgstr "" + +#: ../../extending/index.rst:44 +msgid ":pep:`489` -- Multi-phase extension module initialization" +msgstr "" + +#: ../../extending/index.rst:57 +msgid "Embedding the CPython runtime in a larger application" +msgstr "" + +#: ../../extending/index.rst:59 +msgid "" +"Sometimes, rather than creating an extension that runs inside the Python " +"interpreter as the main application, it is desirable to instead embed the " +"CPython runtime inside a larger application. This section covers some of the " +"details involved in doing that successfully." +msgstr "" diff --git a/extending/newtypes.po b/extending/newtypes.po new file mode 100644 index 0000000..9a5acc7 --- /dev/null +++ b/extending/newtypes.po @@ -0,0 +1,1017 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/newtypes.rst:7 +msgid "Defining Extension Types: Assorted Topics" +msgstr "" + +#: ../../extending/newtypes.rst:11 +msgid "" +"This section aims to give a quick fly-by on the various type methods you can " +"implement and what they do." +msgstr "" + +#: ../../extending/newtypes.rst:14 +msgid "" +"Here is the definition of :c:type:`PyTypeObject`, with some fields only used " +"in :ref:`debug builds ` omitted:" +msgstr "" + +#: ../../extending/newtypes.rst:17 +msgid "" +"typedef struct _typeobject {\n" +" PyObject_VAR_HEAD\n" +" const char *tp_name; /* For printing, in format \".\" */\n" +" Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */\n" +"\n" +" /* Methods to implement standard operations */\n" +"\n" +" destructor tp_dealloc;\n" +" Py_ssize_t tp_vectorcall_offset;\n" +" getattrfunc tp_getattr;\n" +" setattrfunc tp_setattr;\n" +" PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)\n" +" or tp_reserved (Python 3) */\n" +" reprfunc tp_repr;\n" +"\n" +" /* Method suites for standard classes */\n" +"\n" +" PyNumberMethods *tp_as_number;\n" +" PySequenceMethods *tp_as_sequence;\n" +" PyMappingMethods *tp_as_mapping;\n" +"\n" +" /* More standard operations (here for binary compatibility) */\n" +"\n" +" hashfunc tp_hash;\n" +" ternaryfunc tp_call;\n" +" reprfunc tp_str;\n" +" getattrofunc tp_getattro;\n" +" setattrofunc tp_setattro;\n" +"\n" +" /* Functions to access object as input/output buffer */\n" +" PyBufferProcs *tp_as_buffer;\n" +"\n" +" /* Flags to define presence of optional/expanded features */\n" +" unsigned long tp_flags;\n" +"\n" +" const char *tp_doc; /* Documentation string */\n" +"\n" +" /* Assigned meaning in release 2.0 */\n" +" /* call function for all accessible objects */\n" +" traverseproc tp_traverse;\n" +"\n" +" /* delete references to contained objects */\n" +" inquiry tp_clear;\n" +"\n" +" /* Assigned meaning in release 2.1 */\n" +" /* rich comparisons */\n" +" richcmpfunc tp_richcompare;\n" +"\n" +" /* weak reference enabler */\n" +" Py_ssize_t tp_weaklistoffset;\n" +"\n" +" /* Iterators */\n" +" getiterfunc tp_iter;\n" +" iternextfunc tp_iternext;\n" +"\n" +" /* Attribute descriptor and subclassing stuff */\n" +" PyMethodDef *tp_methods;\n" +" PyMemberDef *tp_members;\n" +" PyGetSetDef *tp_getset;\n" +" // Strong reference on a heap type, borrowed reference on a static type\n" +" PyTypeObject *tp_base;\n" +" PyObject *tp_dict;\n" +" descrgetfunc tp_descr_get;\n" +" descrsetfunc tp_descr_set;\n" +" Py_ssize_t tp_dictoffset;\n" +" initproc tp_init;\n" +" allocfunc tp_alloc;\n" +" newfunc tp_new;\n" +" freefunc tp_free; /* Low-level free-memory routine */\n" +" inquiry tp_is_gc; /* For PyObject_IS_GC */\n" +" PyObject *tp_bases;\n" +" PyObject *tp_mro; /* method resolution order */\n" +" PyObject *tp_cache; /* no longer used */\n" +" void *tp_subclasses; /* for static builtin types this is an index */\n" +" PyObject *tp_weaklist; /* not used for static builtin types */\n" +" destructor tp_del;\n" +"\n" +" /* Type attribute cache version tag. Added in version 2.6.\n" +" * If zero, the cache is invalid and must be initialized.\n" +" */\n" +" unsigned int tp_version_tag;\n" +"\n" +" destructor tp_finalize;\n" +" vectorcallfunc tp_vectorcall;\n" +"\n" +" /* bitset of which type-watchers care about this type */\n" +" unsigned char tp_watched;\n" +"\n" +" /* Number of tp_version_tag values used.\n" +" * Set to _Py_ATTR_CACHE_UNUSED if the attribute cache is\n" +" * disabled for this type (e.g. due to custom MRO entries).\n" +" * Otherwise, limited to MAX_VERSIONS_PER_CLASS (defined elsewhere).\n" +" */\n" +" uint16_t tp_versions_used;\n" +"} PyTypeObject;\n" +msgstr "" + +#: ../../extending/newtypes.rst:20 +msgid "" +"Now that's a *lot* of methods. Don't worry too much though -- if you have a " +"type you want to define, the chances are very good that you will only " +"implement a handful of these." +msgstr "" + +#: ../../extending/newtypes.rst:24 +msgid "" +"As you probably expect by now, we're going to go over this and give more " +"information about the various handlers. We won't go in the order they are " +"defined in the structure, because there is a lot of historical baggage that " +"impacts the ordering of the fields. It's often easiest to find an example " +"that includes the fields you need and then change the values to suit your " +"new type. ::" +msgstr "" + +#: ../../extending/newtypes.rst:31 +msgid "const char *tp_name; /* For printing */" +msgstr "" + +#: ../../extending/newtypes.rst:33 +msgid "" +"The name of the type -- as mentioned in the previous chapter, this will " +"appear in various places, almost entirely for diagnostic purposes. Try to " +"choose something that will be helpful in such a situation! ::" +msgstr "" + +#: ../../extending/newtypes.rst:37 +msgid "Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */" +msgstr "" + +#: ../../extending/newtypes.rst:39 +msgid "" +"These fields tell the runtime how much memory to allocate when new objects " +"of this type are created. Python has some built-in support for variable " +"length structures (think: strings, tuples) which is where " +"the :c:member:`~PyTypeObject.tp_itemsize` field comes in. This will be " +"dealt with later. ::" +msgstr "" + +#: ../../extending/newtypes.rst:44 +msgid "const char *tp_doc;" +msgstr "" + +#: ../../extending/newtypes.rst:46 +msgid "" +"Here you can put a string (or its address) that you want returned when the " +"Python script references ``obj.__doc__`` to retrieve the doc string." +msgstr "" + +#: ../../extending/newtypes.rst:49 +msgid "" +"Now we come to the basic type methods -- the ones most extension types will " +"implement." +msgstr "" + +#: ../../extending/newtypes.rst:54 +msgid "Finalization and De-allocation" +msgstr "" + +#: ../../extending/newtypes.rst:64 +msgid "destructor tp_dealloc;" +msgstr "" + +#: ../../extending/newtypes.rst:66 +msgid "" +"This function is called when the reference count of the instance of your " +"type is reduced to zero and the Python interpreter wants to reclaim it. If " +"your type has memory to free or other clean-up to perform, you can put it " +"here. The object itself needs to be freed here as well. Here is an example " +"of this function::" +msgstr "" + +#: ../../extending/newtypes.rst:72 +msgid "" +"static void\n" +"newdatatype_dealloc(PyObject *op)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" free(self->obj_UnderlyingDatatypePtr);\n" +" Py_TYPE(self)->tp_free(self);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:80 +msgid "" +"If your type supports garbage collection, the destructor should " +"call :c:func:`PyObject_GC_UnTrack` before clearing any member fields::" +msgstr "" + +#: ../../extending/newtypes.rst:83 +msgid "" +"static void\n" +"newdatatype_dealloc(PyObject *op)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" PyObject_GC_UnTrack(op);\n" +" Py_CLEAR(self->other_obj);\n" +" ...\n" +" Py_TYPE(self)->tp_free(self);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:97 +msgid "" +"One important requirement of the deallocator function is that it leaves any " +"pending exceptions alone. This is important since deallocators are " +"frequently called as the interpreter unwinds the Python stack; when the " +"stack is unwound due to an exception (rather than normal returns), nothing " +"is done to protect the deallocators from seeing that an exception has " +"already been set. Any actions which a deallocator performs which may cause " +"additional Python code to be executed may detect that an exception has been " +"set. This can lead to misleading errors from the interpreter. The proper " +"way to protect against this is to save a pending exception before performing " +"the unsafe action, and restoring it when done. This can be done using " +"the :c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` functions::" +msgstr "" + +#: ../../extending/newtypes.rst:109 +msgid "" +"static void\n" +"my_dealloc(PyObject *obj)\n" +"{\n" +" MyObject *self = (MyObject *) obj;\n" +" PyObject *cbresult;\n" +"\n" +" if (self->my_callback != NULL) {\n" +" PyObject *err_type, *err_value, *err_traceback;\n" +"\n" +" /* This saves the current exception state */\n" +" PyErr_Fetch(&err_type, &err_value, &err_traceback);\n" +"\n" +" cbresult = PyObject_CallNoArgs(self->my_callback);\n" +" if (cbresult == NULL) {\n" +" PyErr_WriteUnraisable(self->my_callback);\n" +" }\n" +" else {\n" +" Py_DECREF(cbresult);\n" +" }\n" +"\n" +" /* This restores the saved exception state */\n" +" PyErr_Restore(err_type, err_value, err_traceback);\n" +"\n" +" Py_DECREF(self->my_callback);\n" +" }\n" +" Py_TYPE(self)->tp_free(self);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:138 +msgid "" +"There are limitations to what you can safely do in a deallocator function. " +"First, if your type supports garbage collection " +"(using :c:member:`~PyTypeObject.tp_traverse` and/" +"or :c:member:`~PyTypeObject.tp_clear`), some of the object's members can " +"have been cleared or finalized by the " +"time :c:member:`~PyTypeObject.tp_dealloc` is called. Second, " +"in :c:member:`~PyTypeObject.tp_dealloc`, your object is in an unstable " +"state: its reference count is equal to zero. Any call to a non-trivial " +"object or API (as in the example above) might end up " +"calling :c:member:`~PyTypeObject.tp_dealloc` again, causing a double free " +"and a crash." +msgstr "" + +#: ../../extending/newtypes.rst:147 +msgid "" +"Starting with Python 3.4, it is recommended not to put any complex " +"finalization code in :c:member:`~PyTypeObject.tp_dealloc`, and instead use " +"the new :c:member:`~PyTypeObject.tp_finalize` type method." +msgstr "" + +#: ../../extending/newtypes.rst:152 +msgid ":pep:`442` explains the new finalization scheme." +msgstr "" + +#: ../../extending/newtypes.rst:159 +msgid "Object Presentation" +msgstr "" + +#: ../../extending/newtypes.rst:161 +msgid "" +"In Python, there are two ways to generate a textual representation of an " +"object: the :func:`repr` function, and the :func:`str` function. " +"(The :func:`print` function just calls :func:`str`.) These handlers are " +"both optional." +msgstr "" + +#: ../../extending/newtypes.rst:167 +msgid "" +"reprfunc tp_repr;\n" +"reprfunc tp_str;" +msgstr "" + +#: ../../extending/newtypes.rst:170 +msgid "" +"The :c:member:`~PyTypeObject.tp_repr` handler should return a string object " +"containing a representation of the instance for which it is called. Here is " +"a simple example::" +msgstr "" + +#: ../../extending/newtypes.rst:174 +msgid "" +"static PyObject *\n" +"newdatatype_repr(PyObject *op)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" return PyUnicode_FromFormat(\"Repr-ified_newdatatype{{size:%d}}\",\n" +" self->obj_UnderlyingDatatypePtr->size);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:182 +msgid "" +"If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the " +"interpreter will supply a representation that uses the " +"type's :c:member:`~PyTypeObject.tp_name` and a uniquely identifying value " +"for the object." +msgstr "" + +#: ../../extending/newtypes.rst:186 +msgid "" +"The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what " +"the :c:member:`~PyTypeObject.tp_repr` handler described above is " +"to :func:`repr`; that is, it is called when Python code calls :func:`str` on " +"an instance of your object. Its implementation is very similar to " +"the :c:member:`~PyTypeObject.tp_repr` function, but the resulting string is " +"intended for human consumption. If :c:member:`~PyTypeObject.tp_str` is not " +"specified, the :c:member:`~PyTypeObject.tp_repr` handler is used instead." +msgstr "" + +#: ../../extending/newtypes.rst:193 +msgid "Here is a simple example::" +msgstr "" + +#: ../../extending/newtypes.rst:195 +msgid "" +"static PyObject *\n" +"newdatatype_str(PyObject *op)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" return PyUnicode_FromFormat(\"Stringified_newdatatype{{size:%d}}\",\n" +" self->obj_UnderlyingDatatypePtr->size);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:206 +msgid "Attribute Management" +msgstr "" + +#: ../../extending/newtypes.rst:208 +msgid "" +"For every object which can support attributes, the corresponding type must " +"provide the functions that control how the attributes are resolved. There " +"needs to be a function which can retrieve attributes (if any are defined), " +"and another to set attributes (if setting attributes is allowed). Removing " +"an attribute is a special case, for which the new value passed to the " +"handler is ``NULL``." +msgstr "" + +#: ../../extending/newtypes.rst:214 +msgid "" +"Python supports two pairs of attribute handlers; a type that supports " +"attributes only needs to implement the functions for one pair. The " +"difference is that one pair takes the name of the attribute as " +"a :c:expr:`char\\*`, while the other accepts a :c:expr:`PyObject*`. Each " +"type can use whichever pair makes more sense for the implementation's " +"convenience. ::" +msgstr "" + +#: ../../extending/newtypes.rst:220 +msgid "" +"getattrfunc tp_getattr; /* char * version */\n" +"setattrfunc tp_setattr;\n" +"/* ... */\n" +"getattrofunc tp_getattro; /* PyObject * version */\n" +"setattrofunc tp_setattro;" +msgstr "" + +#: ../../extending/newtypes.rst:226 +msgid "" +"If accessing attributes of an object is always a simple operation (this will " +"be explained shortly), there are generic implementations which can be used " +"to provide the :c:expr:`PyObject*` version of the attribute management " +"functions. The actual need for type-specific attribute handlers almost " +"completely disappeared starting with Python 2.2, though there are many " +"examples which have not been updated to use some of the new generic " +"mechanism that is available." +msgstr "" + +#: ../../extending/newtypes.rst:237 +msgid "Generic Attribute Management" +msgstr "" + +#: ../../extending/newtypes.rst:239 +msgid "" +"Most extension types only use *simple* attributes. So, what makes the " +"attributes simple? There are only a couple of conditions that must be met:" +msgstr "" + +#: ../../extending/newtypes.rst:242 +msgid "" +"The name of the attributes must be known when :c:func:`PyType_Ready` is " +"called." +msgstr "" + +#: ../../extending/newtypes.rst:245 +msgid "" +"No special processing is needed to record that an attribute was looked up or " +"set, nor do actions need to be taken based on the value." +msgstr "" + +#: ../../extending/newtypes.rst:248 +msgid "" +"Note that this list does not place any restrictions on the values of the " +"attributes, when the values are computed, or how relevant data is stored." +msgstr "" + +#: ../../extending/newtypes.rst:251 +msgid "" +"When :c:func:`PyType_Ready` is called, it uses three tables referenced by " +"the type object to create :term:`descriptor`\\s which are placed in the " +"dictionary of the type object. Each descriptor controls access to one " +"attribute of the instance object. Each of the tables is optional; if all " +"three are ``NULL``, instances of the type will only have attributes that are " +"inherited from their base type, and should leave " +"the :c:member:`~PyTypeObject.tp_getattro` " +"and :c:member:`~PyTypeObject.tp_setattro` fields ``NULL`` as well, allowing " +"the base type to handle attributes." +msgstr "" + +#: ../../extending/newtypes.rst:259 +msgid "The tables are declared as three fields of the type object::" +msgstr "" + +#: ../../extending/newtypes.rst:261 +msgid "" +"struct PyMethodDef *tp_methods;\n" +"struct PyMemberDef *tp_members;\n" +"struct PyGetSetDef *tp_getset;" +msgstr "" + +#: ../../extending/newtypes.rst:265 +msgid "" +"If :c:member:`~PyTypeObject.tp_methods` is not ``NULL``, it must refer to an " +"array of :c:type:`PyMethodDef` structures. Each entry in the table is an " +"instance of this structure::" +msgstr "" + +#: ../../extending/newtypes.rst:269 +msgid "" +"typedef struct PyMethodDef {\n" +" const char *ml_name; /* method name */\n" +" PyCFunction ml_meth; /* implementation function */\n" +" int ml_flags; /* flags */\n" +" const char *ml_doc; /* docstring */\n" +"} PyMethodDef;" +msgstr "" + +#: ../../extending/newtypes.rst:276 +msgid "" +"One entry should be defined for each method provided by the type; no entries " +"are needed for methods inherited from a base type. One additional entry is " +"needed at the end; it is a sentinel that marks the end of the array. " +"The :c:member:`~PyMethodDef.ml_name` field of the sentinel must be ``NULL``." +msgstr "" + +#: ../../extending/newtypes.rst:281 +msgid "" +"The second table is used to define attributes which map directly to data " +"stored in the instance. A variety of primitive C types are supported, and " +"access may be read-only or read-write. The structures in the table are " +"defined as::" +msgstr "" + +#: ../../extending/newtypes.rst:285 +msgid "" +"typedef struct PyMemberDef {\n" +" const char *name;\n" +" int type;\n" +" int offset;\n" +" int flags;\n" +" const char *doc;\n" +"} PyMemberDef;" +msgstr "" + +#: ../../extending/newtypes.rst:293 +msgid "" +"For each entry in the table, a :term:`descriptor` will be constructed and " +"added to the type which will be able to extract a value from the instance " +"structure. The :c:member:`~PyMemberDef.type` field should contain a type " +"code like :c:macro:`Py_T_INT` or :c:macro:`Py_T_DOUBLE`; the value will be " +"used to determine how to convert Python values to and from C values. " +"The :c:member:`~PyMemberDef.flags` field is used to store flags which " +"control how the attribute can be accessed: you can set it " +"to :c:macro:`Py_READONLY` to prevent Python code from setting it." +msgstr "" + +#: ../../extending/newtypes.rst:301 +msgid "" +"An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` " +"table to build descriptors that are used at runtime is that any attribute " +"defined this way can have an associated doc string simply by providing the " +"text in the table. An application can use the introspection API to retrieve " +"the descriptor from the class object, and get the doc string using " +"its :attr:`~type.__doc__` attribute." +msgstr "" + +#: ../../extending/newtypes.rst:307 +msgid "" +"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " +"with a :c:member:`~PyMethodDef.ml_name` value of ``NULL`` is required." +msgstr "" + +#: ../../extending/newtypes.rst:321 +msgid "Type-specific Attribute Management" +msgstr "" + +#: ../../extending/newtypes.rst:323 +msgid "" +"For simplicity, only the :c:expr:`char\\*` version will be demonstrated " +"here; the type of the name parameter is the only difference between " +"the :c:expr:`char\\*` and :c:expr:`PyObject*` flavors of the interface. This " +"example effectively does the same thing as the generic example above, but " +"does not use the generic support added in Python 2.2. It explains how the " +"handler functions are called, so that if you do need to extend their " +"functionality, you'll understand what needs to be done." +msgstr "" + +#: ../../extending/newtypes.rst:331 +msgid "" +"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object " +"requires an attribute look-up. It is called in the same situations where " +"the :meth:`~object.__getattr__` method of a class would be called." +msgstr "" + +#: ../../extending/newtypes.rst:335 +msgid "Here is an example::" +msgstr "" + +#: ../../extending/newtypes.rst:337 +msgid "" +"static PyObject *\n" +"newdatatype_getattr(PyObject *op, char *name)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" if (strcmp(name, \"data\") == 0) {\n" +" return PyLong_FromLong(self->data);\n" +" }\n" +"\n" +" PyErr_Format(PyExc_AttributeError,\n" +" \"'%.100s' object has no attribute '%.400s'\",\n" +" Py_TYPE(self)->tp_name, name);\n" +" return NULL;\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:351 +msgid "" +"The :c:member:`~PyTypeObject.tp_setattr` handler is called when " +"the :meth:`~object.__setattr__` or :meth:`~object.__delattr__` method of a " +"class instance would be called. When an attribute should be deleted, the " +"third parameter will be ``NULL``. Here is an example that simply raises an " +"exception; if this were really all you wanted, " +"the :c:member:`~PyTypeObject.tp_setattr` handler should be set to " +"``NULL``. ::" +msgstr "" + +#: ../../extending/newtypes.rst:357 +msgid "" +"static int\n" +"newdatatype_setattr(PyObject *op, char *name, PyObject *v)\n" +"{\n" +" PyErr_Format(PyExc_RuntimeError, \"Read-only attribute: %s\", name);\n" +" return -1;\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:365 +msgid "Object Comparison" +msgstr "" + +#: ../../extending/newtypes.rst:369 +msgid "richcmpfunc tp_richcompare;" +msgstr "" + +#: ../../extending/newtypes.rst:371 +msgid "" +"The :c:member:`~PyTypeObject.tp_richcompare` handler is called when " +"comparisons are needed. It is analogous to the :ref:`rich comparison " +"methods `, like :meth:`!__lt__`, and also called " +"by :c:func:`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`." +msgstr "" + +#: ../../extending/newtypes.rst:376 +msgid "" +"This function is called with two Python objects and the operator as " +"arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, " +"``Py_GE``, ``Py_LT`` or ``Py_GT``. It should compare the two objects with " +"respect to the specified operator and return ``Py_True`` or ``Py_False`` if " +"the comparison is successful, ``Py_NotImplemented`` to indicate that " +"comparison is not implemented and the other object's comparison method " +"should be tried, or ``NULL`` if an exception was set." +msgstr "" + +#: ../../extending/newtypes.rst:384 +msgid "" +"Here is a sample implementation, for a datatype that is considered equal if " +"the size of an internal pointer is equal::" +msgstr "" + +#: ../../extending/newtypes.rst:387 +msgid "" +"static PyObject *\n" +"newdatatype_richcmp(PyObject *lhs, PyObject *rhs, int op)\n" +"{\n" +" newdatatypeobject *obj1 = (newdatatypeobject *) lhs;\n" +" newdatatypeobject *obj2 = (newdatatypeobject *) rhs;\n" +" PyObject *result;\n" +" int c, size1, size2;\n" +"\n" +" /* code to make sure that both arguments are of type\n" +" newdatatype omitted */\n" +"\n" +" size1 = obj1->obj_UnderlyingDatatypePtr->size;\n" +" size2 = obj2->obj_UnderlyingDatatypePtr->size;\n" +"\n" +" switch (op) {\n" +" case Py_LT: c = size1 < size2; break;\n" +" case Py_LE: c = size1 <= size2; break;\n" +" case Py_EQ: c = size1 == size2; break;\n" +" case Py_NE: c = size1 != size2; break;\n" +" case Py_GT: c = size1 > size2; break;\n" +" case Py_GE: c = size1 >= size2; break;\n" +" }\n" +" result = c ? Py_True : Py_False;\n" +" return Py_NewRef(result);\n" +" }" +msgstr "" + +#: ../../extending/newtypes.rst:415 +msgid "Abstract Protocol Support" +msgstr "" + +#: ../../extending/newtypes.rst:417 +msgid "" +"Python supports a variety of *abstract* 'protocols;' the specific interfaces " +"provided to use these interfaces are documented in :ref:`abstract`." +msgstr "" + +#: ../../extending/newtypes.rst:421 +msgid "" +"A number of these abstract interfaces were defined early in the development " +"of the Python implementation. In particular, the number, mapping, and " +"sequence protocols have been part of Python since the beginning. Other " +"protocols have been added over time. For protocols which depend on several " +"handler routines from the type implementation, the older protocols have been " +"defined as optional blocks of handlers referenced by the type object. For " +"newer protocols there are additional slots in the main type object, with a " +"flag bit being set to indicate that the slots are present and should be " +"checked by the interpreter. (The flag bit does not indicate that the slot " +"values are non-``NULL``. The flag may be set to indicate the presence of a " +"slot, but a slot may still be unfilled.) ::" +msgstr "" + +#: ../../extending/newtypes.rst:432 +msgid "" +"PyNumberMethods *tp_as_number;\n" +"PySequenceMethods *tp_as_sequence;\n" +"PyMappingMethods *tp_as_mapping;" +msgstr "" + +#: ../../extending/newtypes.rst:436 +msgid "" +"If you wish your object to be able to act like a number, a sequence, or a " +"mapping object, then you place the address of a structure that implements " +"the C type :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, " +"or :c:type:`PyMappingMethods`, respectively. It is up to you to fill in this " +"structure with appropriate values. You can find examples of the use of each " +"of these in the :file:`Objects` directory of the Python source " +"distribution. ::" +msgstr "" + +#: ../../extending/newtypes.rst:443 +msgid "hashfunc tp_hash;" +msgstr "" + +#: ../../extending/newtypes.rst:445 +msgid "" +"This function, if you choose to provide it, should return a hash number for " +"an instance of your data type. Here is a simple example::" +msgstr "" + +#: ../../extending/newtypes.rst:448 +msgid "" +"static Py_hash_t\n" +"newdatatype_hash(PyObject *op)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" Py_hash_t result;\n" +" result = self->some_size + 32767 * self->some_number;\n" +" if (result == -1) {\n" +" result = -2;\n" +" }\n" +" return result;\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:460 +msgid "" +":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. " +"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, " +"which is why you should be careful to avoid returning it when hash " +"computation is successful, as seen above." +msgstr "" + +#: ../../extending/newtypes.rst:467 +msgid "ternaryfunc tp_call;" +msgstr "" + +#: ../../extending/newtypes.rst:469 +msgid "" +"This function is called when an instance of your data type is \"called\", " +"for example, if ``obj1`` is an instance of your data type and the Python " +"script contains ``obj1('hello')``, the :c:member:`~PyTypeObject.tp_call` " +"handler is invoked." +msgstr "" + +#: ../../extending/newtypes.rst:473 +msgid "This function takes three arguments:" +msgstr "" + +#: ../../extending/newtypes.rst:475 +msgid "" +"*self* is the instance of the data type which is the subject of the call. If " +"the call is ``obj1('hello')``, then *self* is ``obj1``." +msgstr "" + +#: ../../extending/newtypes.rst:478 +msgid "" +"*args* is a tuple containing the arguments to the call. You can " +"use :c:func:`PyArg_ParseTuple` to extract the arguments." +msgstr "" + +#: ../../extending/newtypes.rst:481 +msgid "" +"*kwds* is a dictionary of keyword arguments that were passed. If this is non-" +"``NULL`` and you support keyword arguments, " +"use :c:func:`PyArg_ParseTupleAndKeywords` to extract the arguments. If you " +"do not want to support keyword arguments and this is non-``NULL``, raise " +"a :exc:`TypeError` with a message saying that keyword arguments are not " +"supported." +msgstr "" + +#: ../../extending/newtypes.rst:487 +msgid "Here is a toy ``tp_call`` implementation::" +msgstr "" + +#: ../../extending/newtypes.rst:489 +msgid "" +"static PyObject *\n" +"newdatatype_call(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" newdatatypeobject *self = (newdatatypeobject *) op;\n" +" PyObject *result;\n" +" const char *arg1;\n" +" const char *arg2;\n" +" const char *arg3;\n" +"\n" +" if (!PyArg_ParseTuple(args, \"sss:call\", &arg1, &arg2, &arg3)) {\n" +" return NULL;\n" +" }\n" +" result = PyUnicode_FromFormat(\n" +" \"Returning -- value: [%d] arg1: [%s] arg2: [%s] arg3: [%s]\\n\",\n" +" self->obj_UnderlyingDatatypePtr->size,\n" +" arg1, arg2, arg3);\n" +" return result;\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:510 +msgid "" +"/* Iterators */\n" +"getiterfunc tp_iter;\n" +"iternextfunc tp_iternext;" +msgstr "" + +#: ../../extending/newtypes.rst:514 +msgid "" +"These functions provide support for the iterator protocol. Both handlers " +"take exactly one parameter, the instance for which they are being called, " +"and return a new reference. In the case of an error, they should set an " +"exception and return ``NULL``. :c:member:`~PyTypeObject.tp_iter` " +"corresponds to the Python :meth:`~object.__iter__` method, " +"while :c:member:`~PyTypeObject.tp_iternext` corresponds to the " +"Python :meth:`~iterator.__next__` method." +msgstr "" + +#: ../../extending/newtypes.rst:521 +msgid "" +"Any :term:`iterable` object must implement " +"the :c:member:`~PyTypeObject.tp_iter` handler, which must return " +"an :term:`iterator` object. Here the same guidelines apply as for Python " +"classes:" +msgstr "" + +#: ../../extending/newtypes.rst:525 +msgid "" +"For collections (such as lists and tuples) which can support multiple " +"independent iterators, a new iterator should be created and returned by each " +"call to :c:member:`~PyTypeObject.tp_iter`." +msgstr "" + +#: ../../extending/newtypes.rst:528 +msgid "" +"Objects which can only be iterated over once (usually due to side effects of " +"iteration, such as file objects) can " +"implement :c:member:`~PyTypeObject.tp_iter` by returning a new reference to " +"themselves -- and should also therefore implement " +"the :c:member:`~PyTypeObject.tp_iternext` handler." +msgstr "" + +#: ../../extending/newtypes.rst:533 +msgid "" +"Any :term:`iterator` object should implement " +"both :c:member:`~PyTypeObject.tp_iter` " +"and :c:member:`~PyTypeObject.tp_iternext`. An " +"iterator's :c:member:`~PyTypeObject.tp_iter` handler should return a new " +"reference to the iterator. Its :c:member:`~PyTypeObject.tp_iternext` " +"handler should return a new reference to the next object in the iteration, " +"if there is one. If the iteration has reached the " +"end, :c:member:`~PyTypeObject.tp_iternext` may return ``NULL`` without " +"setting an exception, or it may set :exc:`StopIteration` *in addition* to " +"returning ``NULL``; avoiding the exception can yield slightly better " +"performance. If an actual error " +"occurs, :c:member:`~PyTypeObject.tp_iternext` should always set an exception " +"and return ``NULL``." +msgstr "" + +#: ../../extending/newtypes.rst:549 +msgid "Weak Reference Support" +msgstr "" + +#: ../../extending/newtypes.rst:551 +msgid "" +"One of the goals of Python's weak reference implementation is to allow any " +"type to participate in the weak reference mechanism without incurring the " +"overhead on performance-critical objects (such as numbers)." +msgstr "" + +#: ../../extending/newtypes.rst:556 +msgid "Documentation for the :mod:`weakref` module." +msgstr "" + +#: ../../extending/newtypes.rst:558 +msgid "" +"For an object to be weakly referenceable, the extension type must set the " +"``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` " +"field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should " +"be left as zero." +msgstr "" + +#: ../../extending/newtypes.rst:563 +msgid "" +"Concretely, here is how the statically declared type object would look::" +msgstr "" + +#: ../../extending/newtypes.rst:565 +msgid "" +"static PyTypeObject TrivialType = {\n" +" PyVarObject_HEAD_INIT(NULL, 0)\n" +" /* ... other members omitted for brevity ... */\n" +" .tp_flags = Py_TPFLAGS_MANAGED_WEAKREF | ...,\n" +"};" +msgstr "" + +#: ../../extending/newtypes.rst:572 +msgid "" +"The only further addition is that ``tp_dealloc`` needs to clear any weak " +"references (by calling :c:func:`PyObject_ClearWeakRefs`)::" +msgstr "" + +#: ../../extending/newtypes.rst:575 +msgid "" +"static void\n" +"Trivial_dealloc(PyObject *op)\n" +"{\n" +" /* Clear weakrefs first before calling any destructors */\n" +" PyObject_ClearWeakRefs(op);\n" +" /* ... remainder of destruction code omitted for brevity ... */\n" +" Py_TYPE(op)->tp_free(op);\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:586 +msgid "More Suggestions" +msgstr "" + +#: ../../extending/newtypes.rst:588 +msgid "" +"In order to learn how to implement any specific method for your new data " +"type, get the :term:`CPython` source code. Go to the :file:`Objects` " +"directory, then search the C source files for ``tp_`` plus the function you " +"want (for example, ``tp_richcompare``). You will find examples of the " +"function you want to implement." +msgstr "" + +#: ../../extending/newtypes.rst:594 +msgid "" +"When you need to verify that an object is a concrete instance of the type " +"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " +"sample of its use might be something like the following::" +msgstr "" + +#: ../../extending/newtypes.rst:598 +msgid "" +"if (!PyObject_TypeCheck(some_object, &MyType)) {\n" +" PyErr_SetString(PyExc_TypeError, \"arg #1 not a mything\");\n" +" return NULL;\n" +"}" +msgstr "" + +#: ../../extending/newtypes.rst:604 +msgid "Download CPython source releases." +msgstr "" + +#: ../../extending/newtypes.rst:605 +msgid "https://www.python.org/downloads/source/" +msgstr "" + +#: ../../extending/newtypes.rst:607 +msgid "" +"The CPython project on GitHub, where the CPython source code is developed." +msgstr "" + +#: ../../extending/newtypes.rst:608 +msgid "https://github.com/python/cpython" +msgstr "" + +#: ../../extending/newtypes.rst:56 +msgid "object" +msgstr "" + +#: ../../extending/newtypes.rst:56 +msgid "deallocation" +msgstr "" + +#: ../../extending/newtypes.rst:56 +msgid "deallocation, object" +msgstr "" + +#: ../../extending/newtypes.rst:56 +msgid "finalization" +msgstr "" + +#: ../../extending/newtypes.rst:56 +msgid "finalization, of objects" +msgstr "" + +#: ../../extending/newtypes.rst:93 +msgid "PyErr_Fetch (C function)" +msgstr "" + +#: ../../extending/newtypes.rst:93 +msgid "PyErr_Restore (C function)" +msgstr "" + +#: ../../extending/newtypes.rst:154 +msgid "string" +msgstr "" + +#: ../../extending/newtypes.rst:154 +msgid "object representation" +msgstr "" + +#: ../../extending/newtypes.rst:154 +msgid "built-in function" +msgstr "" + +#: ../../extending/newtypes.rst:154 +msgid "repr" +msgstr "" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po new file mode 100644 index 0000000..052c2dd --- /dev/null +++ b/extending/newtypes_tutorial.po @@ -0,0 +1,2086 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/newtypes_tutorial.rst:7 +msgid "Defining Extension Types: Tutorial" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:14 +msgid "" +"Python allows the writer of a C extension module to define new types that " +"can be manipulated from Python code, much like the built-in :class:`str` " +"and :class:`list` types. The code for all extension types follows a " +"pattern, but there are some details that you need to understand before you " +"can get started. This document is a gentle introduction to the topic." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:24 +msgid "The Basics" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:26 +msgid "" +"The :term:`CPython` runtime sees all Python objects as variables of " +"type :c:expr:`PyObject*`, which serves as a \"base type\" for all Python " +"objects. The :c:type:`PyObject` structure itself only contains the " +"object's :term:`reference count` and a pointer to the object's \"type " +"object\". This is where the action is; the type object determines which (C) " +"functions get called by the interpreter when, for instance, an attribute " +"gets looked up on an object, a method called, or it is multiplied by another " +"object. These C functions are called \"type methods\"." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:35 +msgid "" +"So, if you want to define a new extension type, you need to create a new " +"type object." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:38 +msgid "" +"This sort of thing can only be explained by example, so here's a minimal, " +"but complete, module that defines a new type named :class:`!Custom` inside a " +"C extension module :mod:`!custom`:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:43 +msgid "" +"What we're showing here is the traditional way of defining *static* " +"extension types. It should be adequate for most uses. The C API also " +"allows defining heap-allocated extension types using " +"the :c:func:`PyType_FromSpec` function, which isn't covered in this tutorial." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:48 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"typedef struct {\n" +" PyObject_HEAD\n" +" /* Type-specific fields go here. */\n" +"} CustomObject;\n" +"\n" +"static PyTypeObject CustomType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"custom.Custom\",\n" +" .tp_doc = PyDoc_STR(\"Custom objects\"),\n" +" .tp_basicsize = sizeof(CustomObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT,\n" +" .tp_new = PyType_GenericNew,\n" +"};\n" +"\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" // Just use this while using static types\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"custom\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_custom(void)\n" +"{\n" +" return PyModuleDef_Init(&custom_module);\n" +"}\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:50 +msgid "" +"Now that's quite a bit to take in at once, but hopefully bits will seem " +"familiar from the previous chapter. This file defines three things:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:53 +msgid "" +"What a :class:`!Custom` **object** contains: this is the ``CustomObject`` " +"struct, which is allocated once for each :class:`!Custom` instance." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:55 +msgid "" +"How the :class:`!Custom` **type** behaves: this is the ``CustomType`` " +"struct, which defines a set of flags and function pointers that the " +"interpreter inspects when specific operations are requested." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:58 +msgid "" +"How to define and execute the :mod:`!custom` module: this is the " +"``PyInit_custom`` function and the associated ``custom_module`` struct for " +"defining the module, and the ``custom_module_exec`` function to set up a " +"fresh module object." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:63 +msgid "The first bit is::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:65 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +"} CustomObject;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:69 +msgid "" +"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " +"at the start of each object struct and defines a field called ``ob_base`` of " +"type :c:type:`PyObject`, containing a pointer to a type object and a " +"reference count (these can be accessed using the macros :c:macro:`Py_TYPE` " +"and :c:macro:`Py_REFCNT` respectively). The reason for the macro is to " +"abstract away the layout and to enable additional fields in :ref:`debug " +"builds `." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:78 +msgid "" +"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " +"wary of adding one by accident: some compilers will complain." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:81 +msgid "" +"Of course, objects generally store additional data besides the standard " +"``PyObject_HEAD`` boilerplate; for example, here is the definition for " +"standard Python floats::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:85 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +" double ob_fval;\n" +"} PyFloatObject;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:90 +msgid "The second bit is the definition of the type object. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:92 +msgid "" +"static PyTypeObject CustomType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"custom.Custom\",\n" +" .tp_doc = PyDoc_STR(\"Custom objects\"),\n" +" .tp_basicsize = sizeof(CustomObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT,\n" +" .tp_new = PyType_GenericNew,\n" +"};" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:103 +msgid "" +"We recommend using C99-style designated initializers as above, to avoid " +"listing all the :c:type:`PyTypeObject` fields that you don't care about and " +"also to avoid caring about the fields' declaration order." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:107 +msgid "" +"The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " +"more :ref:`fields ` than the definition above. The remaining " +"fields will be filled with zeros by the C compiler, and it's common practice " +"to not specify them explicitly unless you need them." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:112 +msgid "We're going to pick it apart, one field at a time::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:114 +msgid ".ob_base = PyVarObject_HEAD_INIT(NULL, 0)" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:116 +msgid "" +"This line is mandatory boilerplate to initialize the ``ob_base`` field " +"mentioned above. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:119 +msgid ".tp_name = \"custom.Custom\"," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:121 +msgid "" +"The name of our type. This will appear in the default textual " +"representation of our objects and in some error messages, for example:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:124 +msgid "" +">>> \"\" + custom.Custom()\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: can only concatenate str (not \"custom.Custom\") to str" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:131 +msgid "" +"Note that the name is a dotted name that includes both the module name and " +"the name of the type within the module. The module in this case is :mod:`!" +"custom` and the type is :class:`!Custom`, so we set the type name " +"to :class:`!custom.Custom`. Using the real dotted import path is important " +"to make your type compatible with the :mod:`pydoc` and :mod:`pickle` " +"modules. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:137 +msgid "" +".tp_basicsize = sizeof(CustomObject),\n" +".tp_itemsize = 0," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:140 +msgid "" +"This is so that Python knows how much memory to allocate when creating " +"new :class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is " +"only used for variable-sized objects and should otherwise be zero." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:146 +msgid "" +"If you want your type to be subclassable from Python, and your type has the " +"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " +"problems with multiple inheritance. A Python subclass of your type will " +"have to list your type first in its :attr:`~type.__bases__`, or else it will " +"not be able to call your type's :meth:`~object.__new__` method without " +"getting an error. You can avoid this problem by ensuring that your type has " +"a larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " +"does. Most of the time, this will be true anyway, because either your base " +"type will be :class:`object`, or else you will be adding data members to " +"your base type, and therefore increasing its size." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:156 +msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:158 +msgid ".tp_flags = Py_TPFLAGS_DEFAULT," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:160 +msgid "" +"All types should include this constant in their flags. It enables all of " +"the members defined until at least Python 3.3. If you need further members, " +"you will need to OR the corresponding flags." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:164 +msgid "" +"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:166 +msgid ".tp_doc = PyDoc_STR(\"Custom objects\")," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:168 +msgid "" +"To enable object creation, we have to provide " +"a :c:member:`~PyTypeObject.tp_new` handler. This is the equivalent of the " +"Python method :meth:`~object.__new__`, but has to be specified explicitly. " +"In this case, we can just use the default implementation provided by the API " +"function :c:func:`PyType_GenericNew`. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:173 +msgid ".tp_new = PyType_GenericNew," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:175 +msgid "" +"Everything else in the file should be familiar, except for some code " +"in :c:func:`!custom_module_exec`::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:178 +msgid "" +"if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:182 +msgid "" +"This initializes the :class:`!Custom` type, filling in a number of members " +"to the appropriate default values, including :c:member:`~PyObject.ob_type` " +"that we initially set to ``NULL``. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:186 +msgid "" +"if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" +" return -1;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:190 +msgid "" +"This adds the type to the module dictionary. This allows us to " +"create :class:`!Custom` instances by calling the :class:`!Custom` class:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:193 +msgid "" +">>> import custom\n" +">>> mycustom = custom.Custom()" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:198 +msgid "" +"That's it! All that remains is to build it; put the above code in a file " +"called :file:`custom.c`," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:201 +msgid "" +"[build-system]\n" +"requires = [\"setuptools\"]\n" +"build-backend = \"setuptools.build_meta\"\n" +"\n" +"[project]\n" +"name = \"custom\"\n" +"version = \"1\"\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:203 +msgid "in a file called :file:`pyproject.toml`, and" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:205 +msgid "" +"from setuptools import Extension, setup\n" +"setup(ext_modules=[Extension(\"custom\", [\"custom.c\"])])" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:210 +msgid "in a file called :file:`setup.py`; then typing" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:212 +#: ../../extending/newtypes_tutorial.rst:550 +msgid "$ python -m pip install ." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:216 +msgid "" +"in a shell should produce a file :file:`custom.so` in a subdirectory and " +"install it; now fire up Python --- you should be able to ``import custom`` " +"and play around with ``Custom`` objects." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:220 +msgid "That wasn't so hard, was it?" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:222 +msgid "" +"Of course, the current Custom type is pretty uninteresting. It has no data " +"and doesn't do anything. It can't even be subclassed." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:227 +msgid "Adding data and methods to the Basic example" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:229 +msgid "" +"Let's extend the basic example to add some data and methods. Let's also " +"make the type usable as a base class. We'll create a new module, :mod:`!" +"custom2` that adds these capabilities:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:233 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"#include /* for offsetof() */\n" +"\n" +"typedef struct {\n" +" PyObject_HEAD\n" +" PyObject *first; /* first name */\n" +" PyObject *last; /* last name */\n" +" int number;\n" +"} CustomObject;\n" +"\n" +"static void\n" +"Custom_dealloc(PyObject *op)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_XDECREF(self->first);\n" +" Py_XDECREF(self->last);\n" +" Py_TYPE(self)->tp_free(self);\n" +"}\n" +"\n" +"static PyObject *\n" +"Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self;\n" +" self = (CustomObject *) type->tp_alloc(type, 0);\n" +" if (self != NULL) {\n" +" self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->first == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->last == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->number = 0;\n" +" }\n" +" return (PyObject *) self;\n" +"}\n" +"\n" +"static int\n" +"Custom_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" static char *kwlist[] = {\"first\", \"last\", \"number\", NULL};\n" +" PyObject *first = NULL, *last = NULL;\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, kwds, \"|OOi\", kwlist,\n" +" &first, &last,\n" +" &self->number))\n" +" return -1;\n" +"\n" +" if (first) {\n" +" Py_XSETREF(self->first, Py_NewRef(first));\n" +" }\n" +" if (last) {\n" +" Py_XSETREF(self->last, Py_NewRef(last));\n" +" }\n" +" return 0;\n" +"}\n" +"\n" +"static PyMemberDef Custom_members[] = {\n" +" {\"first\", Py_T_OBJECT_EX, offsetof(CustomObject, first), 0,\n" +" \"first name\"},\n" +" {\"last\", Py_T_OBJECT_EX, offsetof(CustomObject, last), 0,\n" +" \"last name\"},\n" +" {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" +" \"custom number\"},\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyObject *\n" +"Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (self->first == NULL) {\n" +" PyErr_SetString(PyExc_AttributeError, \"first\");\n" +" return NULL;\n" +" }\n" +" if (self->last == NULL) {\n" +" PyErr_SetString(PyExc_AttributeError, \"last\");\n" +" return NULL;\n" +" }\n" +" return PyUnicode_FromFormat(\"%S %S\", self->first, self->last);\n" +"}\n" +"\n" +"static PyMethodDef Custom_methods[] = {\n" +" {\"name\", Custom_name, METH_NOARGS,\n" +" \"Return the name, combining the first and last name\"\n" +" },\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyTypeObject CustomType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"custom2.Custom\",\n" +" .tp_doc = PyDoc_STR(\"Custom objects\"),\n" +" .tp_basicsize = sizeof(CustomObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,\n" +" .tp_new = Custom_new,\n" +" .tp_init = Custom_init,\n" +" .tp_dealloc = Custom_dealloc,\n" +" .tp_members = Custom_members,\n" +" .tp_methods = Custom_methods,\n" +"};\n" +"\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"custom2\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_custom2(void)\n" +"{\n" +" return PyModuleDef_Init(&custom_module);\n" +"}\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:236 +msgid "This version of the module has a number of changes." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:238 +msgid "" +"The :class:`!Custom` type now has three data attributes in its C struct, " +"*first*, *last*, and *number*. The *first* and *last* variables are Python " +"strings containing first and last names. The *number* attribute is a C " +"integer." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:242 +msgid "The object structure is updated accordingly::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:244 +msgid "" +"typedef struct {\n" +" PyObject_HEAD\n" +" PyObject *first; /* first name */\n" +" PyObject *last; /* last name */\n" +" int number;\n" +"} CustomObject;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:251 +msgid "" +"Because we now have data to manage, we have to be more careful about object " +"allocation and deallocation. At a minimum, we need a deallocation method::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:254 +msgid "" +"static void\n" +"Custom_dealloc(PyObject *op)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_XDECREF(self->first);\n" +" Py_XDECREF(self->last);\n" +" Py_TYPE(self)->tp_free(self);\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:263 +msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:265 +msgid ".tp_dealloc = Custom_dealloc," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:267 +msgid "" +"This method first clears the reference counts of the two Python " +"attributes. :c:func:`Py_XDECREF` correctly handles the case where its " +"argument is ``NULL`` (which might happen here if ``tp_new`` failed midway). " +"It then calls the :c:member:`~PyTypeObject.tp_free` member of the object's " +"type (computed by ``Py_TYPE(self)``) to free the object's memory. Note that " +"the object's type might not be :class:`!CustomType`, because the object may " +"be an instance of a subclass." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:277 +msgid "" +"The explicit cast to ``CustomObject *`` above is needed because we defined " +"``Custom_dealloc`` to take a ``PyObject *`` argument, as the ``tp_dealloc`` " +"function pointer expects to receive a ``PyObject *`` argument. By assigning " +"to the ``tp_dealloc`` slot of a type, we declare that it can only be called " +"with instances of our ``CustomObject`` class, so the cast to ``(CustomObject " +"*)`` is safe. This is object-oriented polymorphism, in C!" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:285 +msgid "" +"In existing code, or in previous versions of this tutorial, you might see " +"similar functions take a pointer to the subtype object structure " +"(``CustomObject*``) directly, like this::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:289 +msgid "" +"Custom_dealloc(CustomObject *self)\n" +"{\n" +" Py_XDECREF(self->first);\n" +" Py_XDECREF(self->last);\n" +" Py_TYPE(self)->tp_free((PyObject *) self);\n" +"}\n" +"...\n" +".tp_dealloc = (destructor) Custom_dealloc," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:298 +msgid "" +"This does the same thing on all architectures that CPython supports, but " +"according to the C standard, it invokes undefined behavior." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:302 +msgid "" +"We want to make sure that the first and last names are initialized to empty " +"strings, so we provide a ``tp_new`` implementation::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:305 +msgid "" +"static PyObject *\n" +"Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self;\n" +" self = (CustomObject *) type->tp_alloc(type, 0);\n" +" if (self != NULL) {\n" +" self->first = PyUnicode_FromString(\"\");\n" +" if (self->first == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->last = PyUnicode_FromString(\"\");\n" +" if (self->last == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->number = 0;\n" +" }\n" +" return (PyObject *) self;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:326 +msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:328 +msgid ".tp_new = Custom_new," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:330 +msgid "" +"The ``tp_new`` handler is responsible for creating (as opposed to " +"initializing) objects of the type. It is exposed in Python as " +"the :meth:`~object.__new__` method. It is not required to define a " +"``tp_new`` member, and indeed many extension types will simply " +"reuse :c:func:`PyType_GenericNew` as done in the first version of " +"the :class:`!Custom` type above. In this case, we use the ``tp_new`` " +"handler to initialize the ``first`` and ``last`` attributes to non-``NULL`` " +"default values." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:338 +msgid "" +"``tp_new`` is passed the type being instantiated (not necessarily " +"``CustomType``, if a subclass is instantiated) and any arguments passed when " +"the type was called, and is expected to return the instance created. " +"``tp_new`` handlers always accept positional and keyword arguments, but they " +"often ignore the arguments, leaving the argument handling to initializer " +"(a.k.a. ``tp_init`` in C or ``__init__`` in Python) methods." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:346 +msgid "" +"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " +"it itself." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:349 +msgid "" +"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " +"slot to allocate memory::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:352 +msgid "self = (CustomObject *) type->tp_alloc(type, 0);" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:354 +msgid "" +"Since memory allocation may fail, we must check " +"the :c:member:`~PyTypeObject.tp_alloc` result against ``NULL`` before " +"proceeding." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:358 +msgid "" +"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " +"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " +"class, which is :class:`object` by default. Most types use the default " +"allocation strategy." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:364 +msgid "" +"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " +"that calls a base type's :c:member:`~PyTypeObject.tp_new` " +"or :meth:`~object.__new__`), you must *not* try to determine what method to " +"call using method resolution order at runtime. Always statically determine " +"what type you are going to call, and call " +"its :c:member:`~PyTypeObject.tp_new` directly, or via ``type->tp_base-" +">tp_new``. If you do not do this, Python subclasses of your type that also " +"inherit from other Python-defined classes may not work correctly. " +"(Specifically, you may not be able to create instances of such subclasses " +"without getting a :exc:`TypeError`.)" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:374 +msgid "" +"We also define an initialization function which accepts arguments to provide " +"initial values for our instance::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:377 +msgid "" +"static int\n" +"Custom_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" static char *kwlist[] = {\"first\", \"last\", \"number\", NULL};\n" +" PyObject *first = NULL, *last = NULL, *tmp;\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, kwds, \"|OOi\", kwlist,\n" +" &first, &last,\n" +" &self->number))\n" +" return -1;\n" +"\n" +" if (first) {\n" +" tmp = self->first;\n" +" Py_INCREF(first);\n" +" self->first = first;\n" +" Py_XDECREF(tmp);\n" +" }\n" +" if (last) {\n" +" tmp = self->last;\n" +" Py_INCREF(last);\n" +" self->last = last;\n" +" Py_XDECREF(tmp);\n" +" }\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:404 +msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:406 +msgid ".tp_init = Custom_init," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:408 +msgid "" +"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as " +"the :meth:`~object.__init__` method. It is used to initialize an object " +"after it's created. Initializers always accept positional and keyword " +"arguments, and they should return either ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:413 +msgid "" +"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " +"called at all (for example, the :mod:`pickle` module by default doesn't " +"call :meth:`~object.__init__` on unpickled instances). It can also be " +"called multiple times. Anyone can call the :meth:`!__init__` method on our " +"objects. For this reason, we have to be extra careful when assigning the " +"new attribute values. We might be tempted, for example to assign the " +"``first`` member like this::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:421 +msgid "" +"if (first) {\n" +" Py_XDECREF(self->first);\n" +" Py_INCREF(first);\n" +" self->first = first;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:427 +msgid "" +"But this would be risky. Our type doesn't restrict the type of the " +"``first`` member, so it could be any kind of object. It could have a " +"destructor that causes code to be executed that tries to access the " +"``first`` member; or that destructor could detach the :term:`thread state " +"` and let arbitrary code run in other threads that " +"accesses and modifies our object." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:434 +msgid "" +"To be paranoid and protect ourselves against this possibility, we almost " +"always reassign members before decrementing their reference counts. When " +"don't we have to do this?" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:438 +msgid "when we absolutely know that the reference count is greater than 1;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:440 +msgid "" +"when we know that deallocation of the object [#]_ will neither detach " +"the :term:`thread state ` nor cause any calls back " +"into our type's code;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:443 +msgid "" +"when decrementing a reference count in " +"a :c:member:`~PyTypeObject.tp_dealloc` handler on a type which doesn't " +"support cyclic garbage collection [#]_." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:446 +msgid "" +"We want to expose our instance variables as attributes. There are a number " +"of ways to do that. The simplest way is to define member definitions::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:449 +msgid "" +"static PyMemberDef Custom_members[] = {\n" +" {\"first\", Py_T_OBJECT_EX, offsetof(CustomObject, first), 0,\n" +" \"first name\"},\n" +" {\"last\", Py_T_OBJECT_EX, offsetof(CustomObject, last), 0,\n" +" \"last name\"},\n" +" {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" +" \"custom number\"},\n" +" {NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:459 +msgid "" +"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:461 +msgid ".tp_members = Custom_members," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:463 +msgid "" +"Each member definition has a member name, type, offset, access flags and " +"documentation string. See the :ref:`Generic-Attribute-Management` section " +"below for details." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:467 +msgid "" +"A disadvantage of this approach is that it doesn't provide a way to restrict " +"the types of objects that can be assigned to the Python attributes. We " +"expect the first and last names to be strings, but any Python objects can be " +"assigned. Further, the attributes can be deleted, setting the C pointers to " +"``NULL``. Even though we can make sure the members are initialized to non-" +"``NULL`` values, the members can be set to ``NULL`` if the attributes are " +"deleted." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:474 +msgid "" +"We define a single method, :meth:`!Custom.name`, that outputs the objects " +"name as the concatenation of the first and last names. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:477 +msgid "" +"static PyObject *\n" +"Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (self->first == NULL) {\n" +" PyErr_SetString(PyExc_AttributeError, \"first\");\n" +" return NULL;\n" +" }\n" +" if (self->last == NULL) {\n" +" PyErr_SetString(PyExc_AttributeError, \"last\");\n" +" return NULL;\n" +" }\n" +" return PyUnicode_FromFormat(\"%S %S\", self->first, self->last);\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:492 +msgid "" +"The method is implemented as a C function that takes a :class:`!Custom` " +"(or :class:`!Custom` subclass) instance as the first argument. Methods " +"always take an instance as the first argument. Methods often take positional " +"and keyword arguments as well, but in this case we don't take any and don't " +"need to accept a positional argument tuple or keyword argument dictionary. " +"This method is equivalent to the Python method:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:499 +msgid "" +"def name(self):\n" +" return \"%s %s\" % (self.first, self.last)" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:504 +msgid "" +"Note that we have to check for the possibility that our :attr:`!first` " +"and :attr:`!last` members are ``NULL``. This is because they can be " +"deleted, in which case they are set to ``NULL``. It would be better to " +"prevent deletion of these attributes and to restrict the attribute values to " +"be strings. We'll see how to do that in the next section." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:510 +msgid "" +"Now that we've defined the method, we need to create an array of method " +"definitions::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:513 +msgid "" +"static PyMethodDef Custom_methods[] = {\n" +" {\"name\", Custom_name, METH_NOARGS,\n" +" \"Return the name, combining the first and last name\"\n" +" },\n" +" {NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:520 +msgid "" +"(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the " +"method is expecting no arguments other than *self*)" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:523 +msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:525 +msgid ".tp_methods = Custom_methods," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:527 +msgid "" +"Finally, we'll make our type usable as a base class for subclassing. We've " +"written our methods carefully so far so that they don't make any assumptions " +"about the type of the object being created or used, so all we need to do is " +"to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:532 +msgid ".tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:534 +msgid "" +"We rename :c:func:`!PyInit_custom` to :c:func:`!PyInit_custom2`, update the " +"module name in the :c:type:`PyModuleDef` struct, and update the full class " +"name in the :c:type:`PyTypeObject` struct." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:538 +msgid "Finally, we update our :file:`setup.py` file to include the new module," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:540 +msgid "" +"from setuptools import Extension, setup\n" +"setup(ext_modules=[\n" +" Extension(\"custom\", [\"custom.c\"]),\n" +" Extension(\"custom2\", [\"custom2.c\"]),\n" +"])" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:548 +msgid "and then we re-install so that we can ``import custom2``:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:555 +msgid "Providing finer control over data attributes" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:557 +msgid "" +"In this section, we'll provide finer control over how the :attr:`!first` " +"and :attr:`!last` attributes are set in the :class:`!Custom` example. In the " +"previous version of our module, the instance variables :attr:`!first` " +"and :attr:`!last` could be set to non-string values or even deleted. We want " +"to make sure that these attributes always contain strings." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:563 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"#include /* for offsetof() */\n" +"\n" +"typedef struct {\n" +" PyObject_HEAD\n" +" PyObject *first; /* first name */\n" +" PyObject *last; /* last name */\n" +" int number;\n" +"} CustomObject;\n" +"\n" +"static void\n" +"Custom_dealloc(PyObject *op)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_XDECREF(self->first);\n" +" Py_XDECREF(self->last);\n" +" Py_TYPE(self)->tp_free(self);\n" +"}\n" +"\n" +"static PyObject *\n" +"Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self;\n" +" self = (CustomObject *) type->tp_alloc(type, 0);\n" +" if (self != NULL) {\n" +" self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->first == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->last == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->number = 0;\n" +" }\n" +" return (PyObject *) self;\n" +"}\n" +"\n" +"static int\n" +"Custom_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" static char *kwlist[] = {\"first\", \"last\", \"number\", NULL};\n" +" PyObject *first = NULL, *last = NULL;\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, kwds, \"|UUi\", kwlist,\n" +" &first, &last,\n" +" &self->number))\n" +" return -1;\n" +"\n" +" if (first) {\n" +" Py_SETREF(self->first, Py_NewRef(first));\n" +" }\n" +" if (last) {\n" +" Py_SETREF(self->last, Py_NewRef(last));\n" +" }\n" +" return 0;\n" +"}\n" +"\n" +"static PyMemberDef Custom_members[] = {\n" +" {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" +" \"custom number\"},\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyObject *\n" +"Custom_getfirst(PyObject *op, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return Py_NewRef(self->first);\n" +"}\n" +"\n" +"static int\n" +"Custom_setfirst(PyObject *op, PyObject *value, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (value == NULL) {\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" +" return -1;\n" +" }\n" +" if (!PyUnicode_Check(value)) {\n" +" PyErr_SetString(PyExc_TypeError,\n" +" \"The first attribute value must be a string\");\n" +" return -1;\n" +" }\n" +" Py_SETREF(self->first, Py_NewRef(value));\n" +" return 0;\n" +"}\n" +"\n" +"static PyObject *\n" +"Custom_getlast(PyObject *op, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return Py_NewRef(self->last);\n" +"}\n" +"\n" +"static int\n" +"Custom_setlast(PyObject *op, PyObject *value, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (value == NULL) {\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last " +"attribute\");\n" +" return -1;\n" +" }\n" +" if (!PyUnicode_Check(value)) {\n" +" PyErr_SetString(PyExc_TypeError,\n" +" \"The last attribute value must be a string\");\n" +" return -1;\n" +" }\n" +" Py_SETREF(self->last, Py_NewRef(value));\n" +" return 0;\n" +"}\n" +"\n" +"static PyGetSetDef Custom_getsetters[] = {\n" +" {\"first\", Custom_getfirst, Custom_setfirst,\n" +" \"first name\", NULL},\n" +" {\"last\", Custom_getlast, Custom_setlast,\n" +" \"last name\", NULL},\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyObject *\n" +"Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return PyUnicode_FromFormat(\"%S %S\", self->first, self->last);\n" +"}\n" +"\n" +"static PyMethodDef Custom_methods[] = {\n" +" {\"name\", Custom_name, METH_NOARGS,\n" +" \"Return the name, combining the first and last name\"\n" +" },\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyTypeObject CustomType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"custom3.Custom\",\n" +" .tp_doc = PyDoc_STR(\"Custom objects\"),\n" +" .tp_basicsize = sizeof(CustomObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,\n" +" .tp_new = Custom_new,\n" +" .tp_init = Custom_init,\n" +" .tp_dealloc = Custom_dealloc,\n" +" .tp_members = Custom_members,\n" +" .tp_methods = Custom_methods,\n" +" .tp_getset = Custom_getsetters,\n" +"};\n" +"\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"custom3\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_custom3(void)\n" +"{\n" +" return PyModuleDef_Init(&custom_module);\n" +"}\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:566 +msgid "" +"To provide greater control, over the :attr:`!first` and :attr:`!last` " +"attributes, we'll use custom getter and setter functions. Here are the " +"functions for getting and setting the :attr:`!first` attribute::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:570 +msgid "" +"static PyObject *\n" +"Custom_getfirst(PyObject *op, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_INCREF(self->first);\n" +" return self->first;\n" +"}\n" +"\n" +"static int\n" +"Custom_setfirst(PyObject *op, PyObject *value, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" PyObject *tmp;\n" +" if (value == NULL) {\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" +" return -1;\n" +" }\n" +" if (!PyUnicode_Check(value)) {\n" +" PyErr_SetString(PyExc_TypeError,\n" +" \"The first attribute value must be a string\");\n" +" return -1;\n" +" }\n" +" tmp = self->first;\n" +" Py_INCREF(value);\n" +" self->first = value;\n" +" Py_DECREF(tmp);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:599 +msgid "" +"The getter function is passed a :class:`!Custom` object and a \"closure\", " +"which is a void pointer. In this case, the closure is ignored. (The " +"closure supports an advanced usage in which definition data is passed to the " +"getter and setter. This could, for example, be used to allow a single set of " +"getter and setter functions that decide the attribute to get or set based on " +"data in the closure.)" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:605 +msgid "" +"The setter function is passed the :class:`!Custom` object, the new value, " +"and the closure. The new value may be ``NULL``, in which case the attribute " +"is being deleted. In our setter, we raise an error if the attribute is " +"deleted or if its new value is not a string." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:610 +msgid "We create an array of :c:type:`PyGetSetDef` structures::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:612 +msgid "" +"static PyGetSetDef Custom_getsetters[] = {\n" +" {\"first\", Custom_getfirst, Custom_setfirst,\n" +" \"first name\", NULL},\n" +" {\"last\", Custom_getlast, Custom_setlast,\n" +" \"last name\", NULL},\n" +" {NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:620 +msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:622 +msgid ".tp_getset = Custom_getsetters," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:624 +msgid "" +"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " +"mentioned above. In this case, we aren't using a closure, so we just pass " +"``NULL``." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:627 +msgid "We also remove the member definitions for these attributes::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:629 +msgid "" +"static PyMemberDef Custom_members[] = {\n" +" {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" +" \"custom number\"},\n" +" {NULL} /* Sentinel */\n" +"};" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:635 +msgid "" +"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " +"allow strings [#]_ to be passed::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:638 +msgid "" +"static int\n" +"Custom_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" static char *kwlist[] = {\"first\", \"last\", \"number\", NULL};\n" +" PyObject *first = NULL, *last = NULL, *tmp;\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, kwds, \"|UUi\", kwlist,\n" +" &first, &last,\n" +" &self->number))\n" +" return -1;\n" +"\n" +" if (first) {\n" +" tmp = self->first;\n" +" Py_INCREF(first);\n" +" self->first = first;\n" +" Py_DECREF(tmp);\n" +" }\n" +" if (last) {\n" +" tmp = self->last;\n" +" Py_INCREF(last);\n" +" self->last = last;\n" +" Py_DECREF(tmp);\n" +" }\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:665 +msgid "" +"With these changes, we can assure that the ``first`` and ``last`` members " +"are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " +"cases. This means that most of the :c:func:`Py_XDECREF` calls can be " +"converted to :c:func:`Py_DECREF` calls. The only place we can't change " +"these calls is in the ``tp_dealloc`` implementation, where there is the " +"possibility that the initialization of these members failed in ``tp_new``." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:672 +msgid "" +"We also rename the module initialization function and module name in the " +"initialization function, as we did before, and we add an extra definition to " +"the :file:`setup.py` file." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:678 +msgid "Supporting cyclic garbage collection" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:680 +msgid "" +"Python has a :term:`cyclic garbage collector (GC) ` that " +"can identify unneeded objects even when their reference counts are not zero. " +"This can happen when objects are involved in cycles. For example, consider:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:684 +msgid "" +">>> l = []\n" +">>> l.append(l)\n" +">>> del l" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:690 +msgid "" +"In this example, we create a list that contains itself. When we delete it, " +"it still has a reference from itself. Its reference count doesn't drop to " +"zero. Fortunately, Python's cyclic garbage collector will eventually figure " +"out that the list is garbage and free it." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:695 +msgid "" +"In the second version of the :class:`!Custom` example, we allowed any kind " +"of object to be stored in the :attr:`!first` or :attr:`!last` attributes " +"[#]_. Besides, in the second and third versions, we allowed " +"subclassing :class:`!Custom`, and subclasses may add arbitrary attributes. " +"For any of those two reasons, :class:`!Custom` objects can participate in " +"cycles:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:701 +msgid "" +">>> import custom3\n" +">>> class Derived(custom3.Custom): pass\n" +"...\n" +">>> n = Derived()\n" +">>> n.some_attribute = n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:709 +msgid "" +"To allow a :class:`!Custom` instance participating in a reference cycle to " +"be properly detected and collected by the cyclic GC, our :class:`!Custom` " +"type needs to fill two additional slots and to enable a flag that enables " +"these slots:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:713 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"#include /* for offsetof() */\n" +"\n" +"typedef struct {\n" +" PyObject_HEAD\n" +" PyObject *first; /* first name */\n" +" PyObject *last; /* last name */\n" +" int number;\n" +"} CustomObject;\n" +"\n" +"static int\n" +"Custom_traverse(PyObject *op, visitproc visit, void *arg)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_VISIT(self->first);\n" +" Py_VISIT(self->last);\n" +" return 0;\n" +"}\n" +"\n" +"static int\n" +"Custom_clear(PyObject *op)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_CLEAR(self->first);\n" +" Py_CLEAR(self->last);\n" +" return 0;\n" +"}\n" +"\n" +"static void\n" +"Custom_dealloc(PyObject *op)\n" +"{\n" +" PyObject_GC_UnTrack(op);\n" +" (void)Custom_clear(op);\n" +" Py_TYPE(op)->tp_free(op);\n" +"}\n" +"\n" +"static PyObject *\n" +"Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self;\n" +" self = (CustomObject *) type->tp_alloc(type, 0);\n" +" if (self != NULL) {\n" +" self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->first == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);\n" +" if (self->last == NULL) {\n" +" Py_DECREF(self);\n" +" return NULL;\n" +" }\n" +" self->number = 0;\n" +" }\n" +" return (PyObject *) self;\n" +"}\n" +"\n" +"static int\n" +"Custom_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" static char *kwlist[] = {\"first\", \"last\", \"number\", NULL};\n" +" PyObject *first = NULL, *last = NULL;\n" +"\n" +" if (!PyArg_ParseTupleAndKeywords(args, kwds, \"|UUi\", kwlist,\n" +" &first, &last,\n" +" &self->number))\n" +" return -1;\n" +"\n" +" if (first) {\n" +" Py_SETREF(self->first, Py_NewRef(first));\n" +" }\n" +" if (last) {\n" +" Py_SETREF(self->last, Py_NewRef(last));\n" +" }\n" +" return 0;\n" +"}\n" +"\n" +"static PyMemberDef Custom_members[] = {\n" +" {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" +" \"custom number\"},\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyObject *\n" +"Custom_getfirst(PyObject *op, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return Py_NewRef(self->first);\n" +"}\n" +"\n" +"static int\n" +"Custom_setfirst(PyObject *op, PyObject *value, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (value == NULL) {\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" +" return -1;\n" +" }\n" +" if (!PyUnicode_Check(value)) {\n" +" PyErr_SetString(PyExc_TypeError,\n" +" \"The first attribute value must be a string\");\n" +" return -1;\n" +" }\n" +" Py_XSETREF(self->first, Py_NewRef(value));\n" +" return 0;\n" +"}\n" +"\n" +"static PyObject *\n" +"Custom_getlast(PyObject *op, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return Py_NewRef(self->last);\n" +"}\n" +"\n" +"static int\n" +"Custom_setlast(PyObject *op, PyObject *value, void *closure)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" if (value == NULL) {\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last " +"attribute\");\n" +" return -1;\n" +" }\n" +" if (!PyUnicode_Check(value)) {\n" +" PyErr_SetString(PyExc_TypeError,\n" +" \"The last attribute value must be a string\");\n" +" return -1;\n" +" }\n" +" Py_XSETREF(self->last, Py_NewRef(value));\n" +" return 0;\n" +"}\n" +"\n" +"static PyGetSetDef Custom_getsetters[] = {\n" +" {\"first\", Custom_getfirst, Custom_setfirst,\n" +" \"first name\", NULL},\n" +" {\"last\", Custom_getlast, Custom_setlast,\n" +" \"last name\", NULL},\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyObject *\n" +"Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" return PyUnicode_FromFormat(\"%S %S\", self->first, self->last);\n" +"}\n" +"\n" +"static PyMethodDef Custom_methods[] = {\n" +" {\"name\", Custom_name, METH_NOARGS,\n" +" \"Return the name, combining the first and last name\"\n" +" },\n" +" {NULL} /* Sentinel */\n" +"};\n" +"\n" +"static PyTypeObject CustomType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"custom4.Custom\",\n" +" .tp_doc = PyDoc_STR(\"Custom objects\"),\n" +" .tp_basicsize = sizeof(CustomObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | " +"Py_TPFLAGS_HAVE_GC,\n" +" .tp_new = Custom_new,\n" +" .tp_init = Custom_init,\n" +" .tp_dealloc = Custom_dealloc,\n" +" .tp_traverse = Custom_traverse,\n" +" .tp_clear = Custom_clear,\n" +" .tp_members = Custom_members,\n" +" .tp_methods = Custom_methods,\n" +" .tp_getset = Custom_getsetters,\n" +"};\n" +"\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"custom4\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_custom4(void)\n" +"{\n" +" return PyModuleDef_Init(&custom_module);\n" +"}\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:716 +msgid "" +"First, the traversal method lets the cyclic GC know about subobjects that " +"could participate in cycles::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:719 +msgid "" +"static int\n" +"Custom_traverse(PyObject *op, visitproc visit, void *arg)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" int vret;\n" +" if (self->first) {\n" +" vret = visit(self->first, arg);\n" +" if (vret != 0)\n" +" return vret;\n" +" }\n" +" if (self->last) {\n" +" vret = visit(self->last, arg);\n" +" if (vret != 0)\n" +" return vret;\n" +" }\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:737 +msgid "" +"For each subobject that can participate in cycles, we need to call " +"the :c:func:`!visit` function, which is passed to the traversal method. " +"The :c:func:`!visit` function takes as arguments the subobject and the extra " +"argument *arg* passed to the traversal method. It returns an integer value " +"that must be returned if it is non-zero." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:743 +msgid "" +"Python provides a :c:func:`Py_VISIT` macro that automates calling visit " +"functions. With :c:func:`Py_VISIT`, we can minimize the amount of " +"boilerplate in ``Custom_traverse``::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:747 +msgid "" +"static int\n" +"Custom_traverse(PyObject *op, visitproc visit, void *arg)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_VISIT(self->first);\n" +" Py_VISIT(self->last);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:757 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " +"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:760 +msgid "" +"Second, we need to provide a method for clearing any subobjects that can " +"participate in cycles::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:763 +msgid "" +"static int\n" +"Custom_clear(PyObject *op)\n" +"{\n" +" CustomObject *self = (CustomObject *) op;\n" +" Py_CLEAR(self->first);\n" +" Py_CLEAR(self->last);\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:772 +msgid "" +"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " +"safe way to clear data attributes of arbitrary types while decrementing " +"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on " +"the attribute before setting it to ``NULL``, there is a possibility that the " +"attribute's destructor would call back into code that reads the attribute " +"again (*especially* if there is a reference cycle)." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:780 +msgid "You could emulate :c:func:`Py_CLEAR` by writing::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:782 +msgid "" +"PyObject *tmp;\n" +"tmp = self->first;\n" +"self->first = NULL;\n" +"Py_XDECREF(tmp);" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:787 +msgid "" +"Nevertheless, it is much easier and less error-prone to always " +"use :c:func:`Py_CLEAR` when deleting an attribute. Don't try to micro-" +"optimize at the expense of robustness!" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:791 +msgid "" +"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " +"attributes. It means the circular GC can be triggered inside the function. " +"Since the GC assumes reference count is not zero, we need to untrack the " +"object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing " +"members. Here is our reimplemented deallocator " +"using :c:func:`PyObject_GC_UnTrack` and ``Custom_clear``::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:798 +msgid "" +"static void\n" +"Custom_dealloc(PyObject *op)\n" +"{\n" +" PyObject_GC_UnTrack(op);\n" +" (void)Custom_clear(op);\n" +" Py_TYPE(op)->tp_free(op);\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:806 +msgid "" +"Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:808 +msgid "" +".tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC," +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:810 +msgid "" +"That's pretty much it. If we had written " +"custom :c:member:`~PyTypeObject.tp_alloc` " +"or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify them for " +"cyclic garbage collection. Most extensions will use the versions " +"automatically provided." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:816 +msgid "Subclassing other types" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:818 +msgid "" +"It is possible to create new extension types that are derived from existing " +"types. It is easiest to inherit from the built in types, since an extension " +"can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to " +"share these :c:type:`PyTypeObject` structures between extension modules." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:823 +msgid "" +"In this example we will create a :class:`!SubList` type that inherits from " +"the built-in :class:`list` type. The new type will be completely compatible " +"with regular lists, but will have an additional :meth:`!increment` method " +"that increases an internal counter:" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:828 +msgid "" +">>> import sublist\n" +">>> s = sublist.SubList(range(3))\n" +">>> s.extend(s)\n" +">>> print(len(s))\n" +"6\n" +">>> print(s.increment())\n" +"1\n" +">>> print(s.increment())\n" +"2" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:840 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include \n" +"\n" +"typedef struct {\n" +" PyListObject list;\n" +" int state;\n" +"} SubListObject;\n" +"\n" +"static PyObject *\n" +"SubList_increment(PyObject *op, PyObject *Py_UNUSED(dummy))\n" +"{\n" +" SubListObject *self = (SubListObject *) op;\n" +" self->state++;\n" +" return PyLong_FromLong(self->state);\n" +"}\n" +"\n" +"static PyMethodDef SubList_methods[] = {\n" +" {\"increment\", SubList_increment, METH_NOARGS,\n" +" PyDoc_STR(\"increment state counter\")},\n" +" {NULL},\n" +"};\n" +"\n" +"static int\n" +"SubList_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" SubListObject *self = (SubListObject *) op;\n" +" if (PyList_Type.tp_init(op, args, kwds) < 0)\n" +" return -1;\n" +" self->state = 0;\n" +" return 0;\n" +"}\n" +"\n" +"static PyTypeObject SubListType = {\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" +" .tp_name = \"sublist.SubList\",\n" +" .tp_doc = PyDoc_STR(\"SubList objects\"),\n" +" .tp_basicsize = sizeof(SubListObject),\n" +" .tp_itemsize = 0,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,\n" +" .tp_init = SubList_init,\n" +" .tp_methods = SubList_methods,\n" +"};\n" +"\n" +"static int\n" +"sublist_module_exec(PyObject *m)\n" +"{\n" +" SubListType.tp_base = &PyList_Type;\n" +" if (PyType_Ready(&SubListType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " +"0) {\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot sublist_module_slots[] = {\n" +" {Py_mod_exec, sublist_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef sublist_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"sublist\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = sublist_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_sublist(void)\n" +"{\n" +" return PyModuleDef_Init(&sublist_module);\n" +"}\n" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:843 +msgid "" +"As you can see, the source code closely resembles the :class:`!Custom` " +"examples in previous sections. We will break down the main differences " +"between them. ::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:846 +msgid "" +"typedef struct {\n" +" PyListObject list;\n" +" int state;\n" +"} SubListObject;" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:851 +msgid "" +"The primary difference for derived type objects is that the base type's " +"object structure must be the first value. The base type will already " +"include the :c:func:`PyObject_HEAD` at the beginning of its structure." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:855 +msgid "" +"When a Python object is a :class:`!SubList` instance, its ``PyObject *`` " +"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " +"*``::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:858 +msgid "" +"static int\n" +"SubList_init(PyObject *op, PyObject *args, PyObject *kwds)\n" +"{\n" +" SubListObject *self = (SubListObject *) op;\n" +" if (PyList_Type.tp_init(op, args, kwds) < 0)\n" +" return -1;\n" +" self->state = 0;\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:868 +msgid "" +"We see above how to call through to the :meth:`~object.__init__` method of " +"the base type." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:871 +msgid "" +"This pattern is important when writing a type with " +"custom :c:member:`~PyTypeObject.tp_new` " +"and :c:member:`~PyTypeObject.tp_dealloc` members. " +"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the " +"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " +"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:877 +msgid "" +"The :c:type:`PyTypeObject` struct supports " +"a :c:member:`~PyTypeObject.tp_base` specifying the type's concrete base " +"class. Due to cross-platform compiler issues, you can't fill that field " +"directly with a reference to :c:type:`PyList_Type`; it should be done in " +"the :c:data:`Py_mod_exec` function::" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:883 +msgid "" +"static int\n" +"sublist_module_exec(PyObject *m)\n" +"{\n" +" SubListType.tp_base = &PyList_Type;\n" +" if (PyType_Ready(&SubListType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " +"0) {\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:898 +msgid "" +"Before calling :c:func:`PyType_Ready`, the type structure must have " +"the :c:member:`~PyTypeObject.tp_base` slot filled in. When we are deriving " +"an existing type, it is not necessary to fill out " +"the :c:member:`~PyTypeObject.tp_alloc` slot with :c:func:`PyType_GenericNew` " +"-- the allocation function from the base type will be inherited." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:904 +msgid "" +"After that, calling :c:func:`PyType_Ready` and adding the type object to the " +"module is the same as with the basic :class:`!Custom` examples." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:909 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../extending/newtypes_tutorial.rst:910 +msgid "" +"This is true when we know that the object is a basic type, like a string or " +"a float." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:913 +msgid "" +"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " +"this example, because our type doesn't support garbage collection." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:916 +msgid "" +"We now know that the first and last members are strings, so perhaps we could " +"be less careful about decrementing their reference counts, however, we " +"accept instances of string subclasses. Even though deallocating normal " +"strings won't call back into our objects, we can't guarantee that " +"deallocating an instance of a string subclass won't call back into our " +"objects." +msgstr "" + +#: ../../extending/newtypes_tutorial.rst:922 +msgid "" +"Also, even with our attributes restricted to strings instances, the user " +"could pass arbitrary :class:`str` subclasses and therefore still create " +"reference cycles." +msgstr "" diff --git a/extending/windows.po b/extending/windows.po new file mode 100644 index 0000000..352d432 --- /dev/null +++ b/extending/windows.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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../extending/windows.rst:8 +msgid "Building C and C++ Extensions on Windows" +msgstr "" + +#: ../../extending/windows.rst:10 +msgid "" +"This chapter briefly explains how to create a Windows extension module for " +"Python using Microsoft Visual C++, and follows with more detailed background " +"information on how it works. The explanatory material is useful for both " +"the Windows programmer learning to build Python extensions and the Unix " +"programmer interested in producing software which can be successfully built " +"on both Unix and Windows." +msgstr "" + +#: ../../extending/windows.rst:17 +msgid "" +"Module authors are encouraged to use the distutils approach for building " +"extension modules, instead of the one described in this section. You will " +"still need the C compiler that was used to build Python; typically Microsoft " +"Visual C++." +msgstr "" + +#: ../../extending/windows.rst:24 +msgid "" +"This chapter mentions a number of filenames that include an encoded Python " +"version number. These filenames are represented with the version number " +"shown as ``XY``; in practice, ``'X'`` will be the major version number and " +"``'Y'`` will be the minor version number of the Python release you're " +"working with. For example, if you are using Python 2.2.1, ``XY`` will " +"actually be ``22``." +msgstr "" + +#: ../../extending/windows.rst:34 +msgid "A Cookbook Approach" +msgstr "" + +#: ../../extending/windows.rst:36 +msgid "" +"There are two approaches to building extension modules on Windows, just as " +"there are on Unix: use the ``setuptools`` package to control the build " +"process, or do things manually. The setuptools approach works well for most " +"extensions; documentation on using ``setuptools`` to build and package " +"extension modules is available in :ref:`setuptools-index`. If you find you " +"really need to do things manually, it may be instructive to study the " +"project file for the :source:`winsound ` standard " +"library module." +msgstr "" + +#: ../../extending/windows.rst:48 +msgid "Differences Between Unix and Windows" +msgstr "" + +#: ../../extending/windows.rst:53 +msgid "" +"Unix and Windows use completely different paradigms for run-time loading of " +"code. Before you try to build a module that can be dynamically loaded, be " +"aware of how your system works." +msgstr "" + +#: ../../extending/windows.rst:57 +msgid "" +"In Unix, a shared object (:file:`.so`) file contains code to be used by the " +"program, and also the names of functions and data that it expects to find in " +"the program. When the file is joined to the program, all references to " +"those functions and data in the file's code are changed to point to the " +"actual locations in the program where the functions and data are placed in " +"memory. This is basically a link operation." +msgstr "" + +#: ../../extending/windows.rst:64 +msgid "" +"In Windows, a dynamic-link library (:file:`.dll`) file has no dangling " +"references. Instead, an access to functions or data goes through a lookup " +"table. So the DLL code does not have to be fixed up at runtime to refer to " +"the program's memory; instead, the code already uses the DLL's lookup table, " +"and the lookup table is modified at runtime to point to the functions and " +"data." +msgstr "" + +#: ../../extending/windows.rst:70 +msgid "" +"In Unix, there is only one type of library file (:file:`.a`) which contains " +"code from several object files (:file:`.o`). During the link step to create " +"a shared object file (:file:`.so`), the linker may find that it doesn't know " +"where an identifier is defined. The linker will look for it in the object " +"files in the libraries; if it finds it, it will include all the code from " +"that object file." +msgstr "" + +#: ../../extending/windows.rst:76 +msgid "" +"In Windows, there are two types of library, a static library and an import " +"library (both called :file:`.lib`). A static library is like a " +"Unix :file:`.a` file; it contains code to be included as necessary. An " +"import library is basically used only to reassure the linker that a certain " +"identifier is legal, and will be present in the program when the DLL is " +"loaded. So the linker uses the information from the import library to build " +"the lookup table for using identifiers that are not included in the DLL. " +"When an application or a DLL is linked, an import library may be generated, " +"which will need to be used for all future DLLs that depend on the symbols in " +"the application or DLL." +msgstr "" + +#: ../../extending/windows.rst:86 +msgid "" +"Suppose you are building two dynamic-load modules, B and C, which should " +"share another block of code A. On Unix, you would *not* pass :file:`A.a` to " +"the linker for :file:`B.so` and :file:`C.so`; that would cause it to be " +"included twice, so that B and C would each have their own copy. In Windows, " +"building :file:`A.dll` will also build :file:`A.lib`. You *do* " +"pass :file:`A.lib` to the linker for B and C. :file:`A.lib` does not " +"contain code; it just contains information which will be used at runtime to " +"access A's code." +msgstr "" + +#: ../../extending/windows.rst:94 +msgid "" +"In Windows, using an import library is sort of like using ``import spam``; " +"it gives you access to spam's names, but does not create a separate copy. " +"On Unix, linking with a library is more like ``from spam import *``; it does " +"create a separate copy." +msgstr "" + +#: ../../extending/windows.rst:101 +msgid "" +"Turn off the implicit, ``#pragma``-based linkage with the Python library, " +"performed inside CPython header files." +msgstr "" + +#: ../../extending/windows.rst:110 +msgid "Using DLLs in Practice" +msgstr "" + +#: ../../extending/windows.rst:115 +msgid "" +"Windows Python is built in Microsoft Visual C++; using other compilers may " +"or may not work. The rest of this section is MSVC++ specific." +msgstr "" + +#: ../../extending/windows.rst:118 +msgid "" +"When creating DLLs in Windows, you can use the CPython library in two ways:" +msgstr "" + +#: ../../extending/windows.rst:120 +msgid "" +"By default, inclusion of :file:`PC/pyconfig.h` directly or " +"via :file:`Python.h` triggers an implicit, configure-aware link with the " +"library. The header file chooses :file:`pythonXY_d.lib` for " +"Debug, :file:`pythonXY.lib` for Release, and :file:`pythonX.lib` for Release " +"with the :ref:`Limited API ` enabled." +msgstr "" + +#: ../../extending/windows.rst:126 ../../extending/windows.rst:144 +msgid "" +"To build two DLLs, spam and ni (which uses C functions found in spam), you " +"could use these commands::" +msgstr "" + +#: ../../extending/windows.rst:129 +msgid "" +"cl /LD /I/python/include spam.c\n" +"cl /LD /I/python/include ni.c spam.lib" +msgstr "" + +#: ../../extending/windows.rst:132 +msgid "" +"The first command created three files: :file:`spam.obj`, :file:`spam.dll` " +"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python " +"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " +"the Python code thanks to the implicitly linked :file:`pythonXY.lib`." +msgstr "" + +#: ../../extending/windows.rst:137 ../../extending/windows.rst:155 +msgid "" +"The second command created :file:`ni.dll` (and :file:`.obj` " +"and :file:`.lib`), which knows how to find the necessary functions from " +"spam, and also from the Python executable." +msgstr "" + +#: ../../extending/windows.rst:141 +msgid "" +"Manually by defining :c:macro:`Py_NO_LINK_LIB` macro before " +"including :file:`Python.h`. You must pass :file:`pythonXY.lib` to the linker." +msgstr "" + +#: ../../extending/windows.rst:147 +msgid "" +"cl /LD /DPy_NO_LINK_LIB /I/python/include spam.c ../libs/pythonXY.lib\n" +"cl /LD /DPy_NO_LINK_LIB /I/python/include ni.c spam.lib ../libs/pythonXY.lib" +msgstr "" + +#: ../../extending/windows.rst:150 +msgid "" +"The first command created three files: :file:`spam.obj`, :file:`spam.dll` " +"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python " +"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " +"the Python code thanks to :file:`pythonXY.lib`." +msgstr "" + +#: ../../extending/windows.rst:159 +msgid "" +"Not every identifier is exported to the lookup table. If you want any other " +"modules (including Python) to be able to see your identifiers, you have to " +"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) " +"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``." +msgstr "" + +#: ../../extending/windows.rst:164 +msgid "" +"Developer Studio will throw in a lot of import libraries that you do not " +"really need, adding about 100K to your executable. To get rid of them, use " +"the Project Settings dialog, Link tab, to specify *ignore default " +"libraries*. Add the correct :file:`msvcrt{xx}.lib` to the list of libraries." +msgstr "" diff --git a/faq/design.po b/faq/design.po new file mode 100644 index 0000000..82de65c --- /dev/null +++ b/faq/design.po @@ -0,0 +1,1226 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/design.rst:3 +msgid "Design and History FAQ" +msgstr "" + +#: ../../faq/design.rst:6 +msgid "Contents" +msgstr "" + +#: ../../faq/design.rst:11 +msgid "Why does Python use indentation for grouping of statements?" +msgstr "" + +#: ../../faq/design.rst:13 +msgid "" +"Guido van Rossum believes that using indentation for grouping is extremely " +"elegant and contributes a lot to the clarity of the average Python program. " +"Most people learn to love this feature after a while." +msgstr "" + +#: ../../faq/design.rst:17 +msgid "" +"Since there are no begin/end brackets there cannot be a disagreement between " +"grouping perceived by the parser and the human reader. Occasionally C " +"programmers will encounter a fragment of code like this::" +msgstr "" + +#: ../../faq/design.rst:21 +msgid "" +"if (x <= y)\n" +" x++;\n" +" y--;\n" +"z++;" +msgstr "" + +#: ../../faq/design.rst:26 +msgid "" +"Only the ``x++`` statement is executed if the condition is true, but the " +"indentation leads many to believe otherwise. Even experienced C programmers " +"will sometimes stare at it a long time wondering as to why ``y`` is being " +"decremented even for ``x > y``." +msgstr "" + +#: ../../faq/design.rst:31 +msgid "" +"Because there are no begin/end brackets, Python is much less prone to coding-" +"style conflicts. In C there are many different ways to place the braces. " +"After becoming used to reading and writing code using a particular style, it " +"is normal to feel somewhat uneasy when reading (or being required to write) " +"in a different one." +msgstr "" + +#: ../../faq/design.rst:38 +msgid "" +"Many coding styles place begin/end brackets on a line by themselves. This " +"makes programs considerably longer and wastes valuable screen space, making " +"it harder to get a good overview of a program. Ideally, a function should " +"fit on one screen (say, 20--30 lines). 20 lines of Python can do a lot more " +"work than 20 lines of C. This is not solely due to the lack of begin/end " +"brackets -- the lack of declarations and the high-level data types are also " +"responsible -- but the indentation-based syntax certainly helps." +msgstr "" + +#: ../../faq/design.rst:48 +msgid "Why am I getting strange results with simple arithmetic operations?" +msgstr "" + +#: ../../faq/design.rst:50 +msgid "See the next question." +msgstr "" + +#: ../../faq/design.rst:54 +msgid "Why are floating-point calculations so inaccurate?" +msgstr "" + +#: ../../faq/design.rst:56 +msgid "Users are often surprised by results like this::" +msgstr "" + +#: ../../faq/design.rst:58 +msgid "" +">>> 1.2 - 1.0\n" +"0.19999999999999996" +msgstr "" + +#: ../../faq/design.rst:61 +msgid "" +"and think it is a bug in Python. It's not. This has little to do with " +"Python, and much more to do with how the underlying platform handles " +"floating-point numbers." +msgstr "" + +#: ../../faq/design.rst:65 +msgid "" +"The :class:`float` type in CPython uses a C ``double`` for storage. " +"A :class:`float` object's value is stored in binary floating-point with a " +"fixed precision (typically 53 bits) and Python uses C operations, which in " +"turn rely on the hardware implementation in the processor, to perform " +"floating-point operations. This means that as far as floating-point " +"operations are concerned, Python behaves like many popular languages " +"including C and Java." +msgstr "" + +#: ../../faq/design.rst:72 +msgid "" +"Many numbers that can be written easily in decimal notation cannot be " +"expressed exactly in binary floating point. For example, after::" +msgstr "" + +#: ../../faq/design.rst:75 +msgid ">>> x = 1.2" +msgstr "" + +#: ../../faq/design.rst:77 +msgid "" +"the value stored for ``x`` is a (very good) approximation to the decimal " +"value ``1.2``, but is not exactly equal to it. On a typical machine, the " +"actual stored value is::" +msgstr "" + +#: ../../faq/design.rst:81 +msgid "1.0011001100110011001100110011001100110011001100110011 (binary)" +msgstr "" + +#: ../../faq/design.rst:83 +msgid "which is exactly::" +msgstr "" + +#: ../../faq/design.rst:85 +msgid "1.1999999999999999555910790149937383830547332763671875 (decimal)" +msgstr "" + +#: ../../faq/design.rst:87 +msgid "" +"The typical precision of 53 bits provides Python floats with 15--16 decimal " +"digits of accuracy." +msgstr "" + +#: ../../faq/design.rst:90 +msgid "" +"For a fuller explanation, please see the :ref:`floating-point arithmetic " +"` chapter in the Python tutorial." +msgstr "" + +#: ../../faq/design.rst:95 +msgid "Why are Python strings immutable?" +msgstr "" + +#: ../../faq/design.rst:97 +msgid "There are several advantages." +msgstr "" + +#: ../../faq/design.rst:99 +msgid "" +"One is performance: knowing that a string is immutable means we can allocate " +"space for it at creation time, and the storage requirements are fixed and " +"unchanging. This is also one of the reasons for the distinction between " +"tuples and lists." +msgstr "" + +#: ../../faq/design.rst:104 +msgid "" +"Another advantage is that strings in Python are considered as \"elemental\" " +"as numbers. No amount of activity will change the value 8 to anything else, " +"and in Python, no amount of activity will change the string \"eight\" to " +"anything else." +msgstr "" + +#: ../../faq/design.rst:112 +msgid "Why must 'self' be used explicitly in method definitions and calls?" +msgstr "" + +#: ../../faq/design.rst:114 +msgid "" +"The idea was borrowed from Modula-3. It turns out to be very useful, for a " +"variety of reasons." +msgstr "" + +#: ../../faq/design.rst:117 +msgid "" +"First, it's more obvious that you are using a method or instance attribute " +"instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " +"absolutely clear that an instance variable or method is used even if you " +"don't know the class definition by heart. In C++, you can sort of tell by " +"the lack of a local variable declaration (assuming globals are rare or " +"easily recognizable) -- but in Python, there are no local variable " +"declarations, so you'd have to look up the class definition to be sure. " +"Some C++ and Java coding standards call for instance attributes to have an " +"``m_`` prefix, so this explicitness is still useful in those languages, too." +msgstr "" + +#: ../../faq/design.rst:127 +msgid "" +"Second, it means that no special syntax is necessary if you want to " +"explicitly reference or call the method from a particular class. In C++, if " +"you want to use a method from a base class which is overridden in a derived " +"class, you have to use the ``::`` operator -- in Python you can write " +"``baseclass.methodname(self, )``. This is particularly " +"useful for :meth:`~object.__init__` methods, and in general in cases where a " +"derived class method wants to extend the base class method of the same name " +"and thus has to call the base class method somehow." +msgstr "" + +#: ../../faq/design.rst:136 +msgid "" +"Finally, for instance variables it solves a syntactic problem with " +"assignment: since local variables in Python are (by definition!) those " +"variables to which a value is assigned in a function body (and that aren't " +"explicitly declared global), there has to be some way to tell the " +"interpreter that an assignment was meant to assign to an instance variable " +"instead of to a local variable, and it should preferably be syntactic (for " +"efficiency reasons). C++ does this through declarations, but Python doesn't " +"have declarations and it would be a pity having to introduce them just for " +"this purpose. Using the explicit ``self.var`` solves this nicely. " +"Similarly, for using instance variables, having to write ``self.var`` means " +"that references to unqualified names inside a method don't have to search " +"the instance's directories. To put it another way, local variables and " +"instance variables live in two different namespaces, and you need to tell " +"Python which namespace to use." +msgstr "" + +#: ../../faq/design.rst:154 +msgid "Why can't I use an assignment in an expression?" +msgstr "" + +#: ../../faq/design.rst:156 +msgid "Starting in Python 3.8, you can!" +msgstr "" + +#: ../../faq/design.rst:158 +msgid "" +"Assignment expressions using the walrus operator ``:=`` assign a variable in " +"an expression::" +msgstr "" + +#: ../../faq/design.rst:161 +msgid "" +"while chunk := fp.read(200):\n" +" print(chunk)" +msgstr "" + +#: ../../faq/design.rst:164 +msgid "See :pep:`572` for more information." +msgstr "" + +#: ../../faq/design.rst:169 +msgid "" +"Why does Python use methods for some functionality (e.g. list.index()) but " +"functions for other (e.g. len(list))?" +msgstr "" + +#: ../../faq/design.rst:171 +msgid "As Guido said:" +msgstr "" + +#: ../../faq/design.rst:173 +msgid "" +"(a) For some operations, prefix notation just reads better than postfix -- " +"prefix (and infix!) operations have a long tradition in mathematics which " +"likes notations where the visuals help the mathematician thinking about a " +"problem. Compare the easy with which we rewrite a formula like x*(a+b) into " +"x*a + x*b to the clumsiness of doing the same thing using a raw OO notation." +msgstr "" + +#: ../../faq/design.rst:180 +msgid "" +"(b) When I read code that says len(x) I *know* that it is asking for the " +"length of something. This tells me two things: the result is an integer, and " +"the argument is some kind of container. To the contrary, when I read " +"x.len(), I have to already know that x is some kind of container " +"implementing an interface or inheriting from a class that has a standard " +"len(). Witness the confusion we occasionally have when a class that is not " +"implementing a mapping has a get() or keys() method, or something that isn't " +"a file has a write() method." +msgstr "" + +#: ../../faq/design.rst:189 +msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" +msgstr "" + +#: ../../faq/design.rst:193 +msgid "Why is join() a string method instead of a list or tuple method?" +msgstr "" + +#: ../../faq/design.rst:195 +msgid "" +"Strings became much more like other standard types starting in Python 1.6, " +"when methods were added which give the same functionality that has always " +"been available using the functions of the string module. Most of these new " +"methods have been widely accepted, but the one which appears to make some " +"programmers feel uncomfortable is::" +msgstr "" + +#: ../../faq/design.rst:201 +msgid "\", \".join(['1', '2', '4', '8', '16'])" +msgstr "" + +#: ../../faq/design.rst:203 +msgid "which gives the result::" +msgstr "" + +#: ../../faq/design.rst:205 +msgid "\"1, 2, 4, 8, 16\"" +msgstr "" + +#: ../../faq/design.rst:207 +msgid "There are two common arguments against this usage." +msgstr "" + +#: ../../faq/design.rst:209 +msgid "" +"The first runs along the lines of: \"It looks really ugly using a method of " +"a string literal (string constant)\", to which the answer is that it might, " +"but a string literal is just a fixed value. If the methods are to be allowed " +"on names bound to strings there is no logical reason to make them " +"unavailable on literals." +msgstr "" + +#: ../../faq/design.rst:215 +msgid "" +"The second objection is typically cast as: \"I am really telling a sequence " +"to join its members together with a string constant\". Sadly, you aren't. " +"For some reason there seems to be much less difficulty with " +"having :meth:`~str.split` as a string method, since in that case it is easy " +"to see that ::" +msgstr "" + +#: ../../faq/design.rst:220 +msgid "\"1, 2, 4, 8, 16\".split(\", \")" +msgstr "" + +#: ../../faq/design.rst:222 +msgid "" +"is an instruction to a string literal to return the substrings delimited by " +"the given separator (or, by default, arbitrary runs of white space)." +msgstr "" + +#: ../../faq/design.rst:225 +msgid "" +":meth:`~str.join` is a string method because in using it you are telling the " +"separator string to iterate over a sequence of strings and insert itself " +"between adjacent elements. This method can be used with any argument which " +"obeys the rules for sequence objects, including any new classes you might " +"define yourself. Similar methods exist for bytes and bytearray objects." +msgstr "" + +#: ../../faq/design.rst:233 +msgid "How fast are exceptions?" +msgstr "" + +#: ../../faq/design.rst:235 +msgid "" +"A :keyword:`try`/:keyword:`except` block is extremely efficient if no " +"exceptions are raised. Actually catching an exception is expensive. In " +"versions of Python prior to 2.0 it was common to use this idiom::" +msgstr "" + +#: ../../faq/design.rst:240 +msgid "" +"try:\n" +" value = mydict[key]\n" +"except KeyError:\n" +" mydict[key] = getvalue(key)\n" +" value = mydict[key]" +msgstr "" + +#: ../../faq/design.rst:246 +msgid "" +"This only made sense when you expected the dict to have the key almost all " +"the time. If that wasn't the case, you coded it like this::" +msgstr "" + +#: ../../faq/design.rst:249 +msgid "" +"if key in mydict:\n" +" value = mydict[key]\n" +"else:\n" +" value = mydict[key] = getvalue(key)" +msgstr "" + +#: ../../faq/design.rst:254 +msgid "" +"For this specific case, you could also use ``value = dict.setdefault(key, " +"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " +"because it is evaluated in all cases." +msgstr "" + +#: ../../faq/design.rst:260 +msgid "Why isn't there a switch or case statement in Python?" +msgstr "" + +#: ../../faq/design.rst:262 +msgid "" +"In general, structured switch statements execute one block of code when an " +"expression has a particular value or set of values. Since Python 3.10 one " +"can easily match literal values, or constants within a namespace, with a " +"``match ... case`` statement. An older alternative is a sequence of ``if... " +"elif... elif... else``." +msgstr "" + +#: ../../faq/design.rst:268 +msgid "" +"For cases where you need to choose from a very large number of " +"possibilities, you can create a dictionary mapping case values to functions " +"to call. For example::" +msgstr "" + +#: ../../faq/design.rst:272 +msgid "" +"functions = {'a': function_1,\n" +" 'b': function_2,\n" +" 'c': self.method_1}\n" +"\n" +"func = functions[value]\n" +"func()" +msgstr "" + +#: ../../faq/design.rst:279 +msgid "" +"For calling methods on objects, you can simplify yet further by using " +"the :func:`getattr` built-in to retrieve methods with a particular name::" +msgstr "" + +#: ../../faq/design.rst:282 +msgid "" +"class MyVisitor:\n" +" def visit_a(self):\n" +" ...\n" +"\n" +" def dispatch(self, value):\n" +" method_name = 'visit_' + str(value)\n" +" method = getattr(self, method_name)\n" +" method()" +msgstr "" + +#: ../../faq/design.rst:291 +msgid "" +"It's suggested that you use a prefix for the method names, such as " +"``visit_`` in this example. Without such a prefix, if values are coming " +"from an untrusted source, an attacker would be able to call any method on " +"your object." +msgstr "" + +#: ../../faq/design.rst:295 +msgid "" +"Imitating switch with fallthrough, as with C's switch-case-default, is " +"possible, much harder, and less needed." +msgstr "" + +#: ../../faq/design.rst:300 +msgid "" +"Can't you emulate threads in the interpreter instead of relying on an OS-" +"specific thread implementation?" +msgstr "" + +#: ../../faq/design.rst:302 +msgid "" +"Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " +"for each Python stack frame. Also, extensions can call back into Python at " +"almost random moments. Therefore, a complete threads implementation " +"requires thread support for C." +msgstr "" + +#: ../../faq/design.rst:307 +msgid "" +"Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " +"interpreter loop that avoids the C stack." +msgstr "" + +#: ../../faq/design.rst:312 +msgid "Why can't lambda expressions contain statements?" +msgstr "" + +#: ../../faq/design.rst:314 +msgid "" +"Python lambda expressions cannot contain statements because Python's " +"syntactic framework can't handle statements nested inside expressions. " +"However, in Python, this is not a serious problem. Unlike lambda forms in " +"other languages, where they add functionality, Python lambdas are only a " +"shorthand notation if you're too lazy to define a function." +msgstr "" + +#: ../../faq/design.rst:320 +msgid "" +"Functions are already first class objects in Python, and can be declared in " +"a local scope. Therefore the only advantage of using a lambda instead of a " +"locally defined function is that you don't need to invent a name for the " +"function -- but that's just a local variable to which the function object " +"(which is exactly the same type of object that a lambda expression yields) " +"is assigned!" +msgstr "" + +#: ../../faq/design.rst:328 +msgid "Can Python be compiled to machine code, C or some other language?" +msgstr "" + +#: ../../faq/design.rst:330 +msgid "" +"`Cython `_ compiles a modified version of Python with " +"optional annotations into C extensions. `Nuitka `_ is " +"an up-and-coming compiler of Python into C++ code, aiming to support the " +"full Python language." +msgstr "" + +#: ../../faq/design.rst:337 +msgid "How does Python manage memory?" +msgstr "" + +#: ../../faq/design.rst:339 +msgid "" +"The details of Python memory management depend on the implementation. The " +"standard implementation of Python, :term:`CPython`, uses reference counting " +"to detect inaccessible objects, and another mechanism to collect reference " +"cycles, periodically executing a cycle detection algorithm which looks for " +"inaccessible cycles and deletes the objects involved. The :mod:`gc` module " +"provides functions to perform a garbage collection, obtain debugging " +"statistics, and tune the collector's parameters." +msgstr "" + +#: ../../faq/design.rst:347 +msgid "" +"Other implementations (such as `Jython `_ or `PyPy " +"`_), however, can rely on a different mechanism such as a " +"full-blown garbage collector. This difference can cause some subtle porting " +"problems if your Python code depends on the behavior of the reference " +"counting implementation." +msgstr "" + +#: ../../faq/design.rst:353 +msgid "" +"In some Python implementations, the following code (which is fine in " +"CPython) will probably run out of file descriptors::" +msgstr "" + +#: ../../faq/design.rst:356 +msgid "" +"for file in very_long_list_of_files:\n" +" f = open(file)\n" +" c = f.read(1)" +msgstr "" + +#: ../../faq/design.rst:360 +msgid "" +"Indeed, using CPython's reference counting and destructor scheme, each new " +"assignment to ``f`` closes the previous file. With a traditional GC, " +"however, those file objects will only get collected (and closed) at varying " +"and possibly long intervals." +msgstr "" + +#: ../../faq/design.rst:365 +msgid "" +"If you want to write code that will work with any Python implementation, you " +"should explicitly close the file or use the :keyword:`with` statement; this " +"will work regardless of memory management scheme::" +msgstr "" + +#: ../../faq/design.rst:369 +msgid "" +"for file in very_long_list_of_files:\n" +" with open(file) as f:\n" +" c = f.read(1)" +msgstr "" + +#: ../../faq/design.rst:375 +msgid "Why doesn't CPython use a more traditional garbage collection scheme?" +msgstr "" + +#: ../../faq/design.rst:377 +msgid "" +"For one thing, this is not a C standard feature and hence it's not portable. " +"(Yes, we know about the Boehm GC library. It has bits of assembler code for " +"*most* common platforms, not for all of them, and although it is mostly " +"transparent, it isn't completely transparent; patches are required to get " +"Python to work with it.)" +msgstr "" + +#: ../../faq/design.rst:383 +msgid "" +"Traditional GC also becomes a problem when Python is embedded into other " +"applications. While in a standalone Python it's fine to replace the " +"standard ``malloc()`` and ``free()`` with versions provided by the GC " +"library, an application embedding Python may want to have its *own* " +"substitute for ``malloc()`` and ``free()``, and may not want Python's. " +"Right now, CPython works with anything that implements ``malloc()`` and " +"``free()`` properly." +msgstr "" + +#: ../../faq/design.rst:392 +msgid "Why isn't all memory freed when CPython exits?" +msgstr "" + +#: ../../faq/design.rst:394 +msgid "" +"Objects referenced from the global namespaces of Python modules are not " +"always deallocated when Python exits. This may happen if there are circular " +"references. There are also certain bits of memory that are allocated by the " +"C library that are impossible to free (e.g. a tool like Purify will complain " +"about these). Python is, however, aggressive about cleaning up memory on " +"exit and does try to destroy every single object." +msgstr "" + +#: ../../faq/design.rst:401 +msgid "" +"If you want to force Python to delete certain things on deallocation use " +"the :mod:`atexit` module to run a function that will force those deletions." +msgstr "" + +#: ../../faq/design.rst:406 +msgid "Why are there separate tuple and list data types?" +msgstr "" + +#: ../../faq/design.rst:408 +msgid "" +"Lists and tuples, while similar in many respects, are generally used in " +"fundamentally different ways. Tuples can be thought of as being similar to " +"Pascal ``records`` or C ``structs``; they're small collections of related " +"data which may be of different types which are operated on as a group. For " +"example, a Cartesian coordinate is appropriately represented as a tuple of " +"two or three numbers." +msgstr "" + +#: ../../faq/design.rst:415 +msgid "" +"Lists, on the other hand, are more like arrays in other languages. They " +"tend to hold a varying number of objects all of which have the same type and " +"which are operated on one-by-one. For example, :func:`os.listdir('.') " +"` returns a list of strings representing the files in the " +"current directory. Functions which operate on this output would generally " +"not break if you added another file or two to the directory." +msgstr "" + +#: ../../faq/design.rst:423 +msgid "" +"Tuples are immutable, meaning that once a tuple has been created, you can't " +"replace any of its elements with a new value. Lists are mutable, meaning " +"that you can always change a list's elements. Only immutable elements can " +"be used as dictionary keys, and hence only tuples and not lists can be used " +"as keys." +msgstr "" + +#: ../../faq/design.rst:430 +msgid "How are lists implemented in CPython?" +msgstr "" + +#: ../../faq/design.rst:432 +msgid "" +"CPython's lists are really variable-length arrays, not Lisp-style linked " +"lists. The implementation uses a contiguous array of references to other " +"objects, and keeps a pointer to this array and the array's length in a list " +"head structure." +msgstr "" + +#: ../../faq/design.rst:436 +msgid "" +"This makes indexing a list ``a[i]`` an operation whose cost is independent " +"of the size of the list or the value of the index." +msgstr "" + +#: ../../faq/design.rst:439 +msgid "" +"When items are appended or inserted, the array of references is resized. " +"Some cleverness is applied to improve the performance of appending items " +"repeatedly; when the array must be grown, some extra space is allocated so " +"the next few times don't require an actual resize." +msgstr "" + +#: ../../faq/design.rst:446 +msgid "How are dictionaries implemented in CPython?" +msgstr "" + +#: ../../faq/design.rst:448 +msgid "" +"CPython's dictionaries are implemented as resizable hash tables. Compared " +"to B-trees, this gives better performance for lookup (the most common " +"operation by far) under most circumstances, and the implementation is " +"simpler." +msgstr "" + +#: ../../faq/design.rst:452 +msgid "" +"Dictionaries work by computing a hash code for each key stored in the " +"dictionary using the :func:`hash` built-in function. The hash code varies " +"widely depending on the key and a per-process seed; for example, " +"``'Python'`` could hash to ``-539294296`` while ``'python'``, a string that " +"differs by a single bit, could hash to ``1142331976``. The hash code is " +"then used to calculate a location in an internal array where the value will " +"be stored. Assuming that you're storing keys that all have different hash " +"values, this means that dictionaries take constant time -- *O*\\ (1), in Big-" +"O notation -- to retrieve a key." +msgstr "" + +#: ../../faq/design.rst:463 +msgid "Why must dictionary keys be immutable?" +msgstr "" + +#: ../../faq/design.rst:465 +msgid "" +"The hash table implementation of dictionaries uses a hash value calculated " +"from the key value to find the key. If the key were a mutable object, its " +"value could change, and thus its hash could also change. But since whoever " +"changes the key object can't tell that it was being used as a dictionary " +"key, it can't move the entry around in the dictionary. Then, when you try " +"to look up the same object in the dictionary it won't be found because its " +"hash value is different. If you tried to look up the old value it wouldn't " +"be found either, because the value of the object found in that hash bin " +"would be different." +msgstr "" + +#: ../../faq/design.rst:474 +msgid "" +"If you want a dictionary indexed with a list, simply convert the list to a " +"tuple first; the function ``tuple(L)`` creates a tuple with the same entries " +"as the list ``L``. Tuples are immutable and can therefore be used as " +"dictionary keys." +msgstr "" + +#: ../../faq/design.rst:478 +msgid "Some unacceptable solutions that have been proposed:" +msgstr "" + +#: ../../faq/design.rst:480 +msgid "" +"Hash lists by their address (object ID). This doesn't work because if you " +"construct a new list with the same value it won't be found; e.g.::" +msgstr "" + +#: ../../faq/design.rst:483 +msgid "" +"mydict = {[1, 2]: '12'}\n" +"print(mydict[[1, 2]])" +msgstr "" + +#: ../../faq/design.rst:486 +msgid "" +"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " +"used in the second line differs from that in the first line. In other " +"words, dictionary keys should be compared using ``==``, not " +"using :keyword:`is`." +msgstr "" + +#: ../../faq/design.rst:490 +msgid "" +"Make a copy when using a list as a key. This doesn't work because the list, " +"being a mutable object, could contain a reference to itself, and then the " +"copying code would run into an infinite loop." +msgstr "" + +#: ../../faq/design.rst:494 +msgid "" +"Allow lists as keys but tell the user not to modify them. This would allow " +"a class of hard-to-track bugs in programs when you forgot or modified a list " +"by accident. It also invalidates an important invariant of dictionaries: " +"every value in ``d.keys()`` is usable as a key of the dictionary." +msgstr "" + +#: ../../faq/design.rst:499 +msgid "" +"Mark lists as read-only once they are used as a dictionary key. The problem " +"is that it's not just the top-level object that could change its value; you " +"could use a tuple containing a list as a key. Entering anything as a key " +"into a dictionary would require marking all objects reachable from there as " +"read-only -- and again, self-referential objects could cause an infinite " +"loop." +msgstr "" + +#: ../../faq/design.rst:505 +msgid "" +"There is a trick to get around this if you need to, but use it at your own " +"risk: You can wrap a mutable structure inside a class instance which has " +"both a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You " +"must then make sure that the hash value for all such wrapper objects that " +"reside in a dictionary (or other hash based structure), remain fixed while " +"the object is in the dictionary (or other structure). ::" +msgstr "" + +#: ../../faq/design.rst:513 +msgid "" +"class ListWrapper:\n" +" def __init__(self, the_list):\n" +" self.the_list = the_list\n" +"\n" +" def __eq__(self, other):\n" +" return self.the_list == other.the_list\n" +"\n" +" def __hash__(self):\n" +" l = self.the_list\n" +" result = 98767 - len(l)*555\n" +" for i, el in enumerate(l):\n" +" try:\n" +" result = result + (hash(el) % 9999999) * 1001 + i\n" +" except Exception:\n" +" result = (result % 7777777) + i * 333\n" +" return result" +msgstr "" + +#: ../../faq/design.rst:530 +msgid "" +"Note that the hash computation is complicated by the possibility that some " +"members of the list may be unhashable and also by the possibility of " +"arithmetic overflow." +msgstr "" + +#: ../../faq/design.rst:534 +msgid "" +"Furthermore it must always be the case that if ``o1 == o2`` (ie " +"``o1.__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, " +"``o1.__hash__() == o2.__hash__()``), regardless of whether the object is in " +"a dictionary or not. If you fail to meet these restrictions dictionaries " +"and other hash based structures will misbehave." +msgstr "" + +#: ../../faq/design.rst:539 +msgid "" +"In the case of :class:`!ListWrapper`, whenever the wrapper object is in a " +"dictionary the wrapped list must not change to avoid anomalies. Don't do " +"this unless you are prepared to think hard about the requirements and the " +"consequences of not meeting them correctly. Consider yourself warned." +msgstr "" + +#: ../../faq/design.rst:546 +msgid "Why doesn't list.sort() return the sorted list?" +msgstr "" + +#: ../../faq/design.rst:548 +msgid "" +"In situations where performance matters, making a copy of the list just to " +"sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " +"place. In order to remind you of that fact, it does not return the sorted " +"list. This way, you won't be fooled into accidentally overwriting a list " +"when you need a sorted copy but also need to keep the unsorted version " +"around." +msgstr "" + +#: ../../faq/design.rst:554 +msgid "" +"If you want to return a new list, use the built-in :func:`sorted` function " +"instead. This function creates a new list from a provided iterable, sorts " +"it and returns it. For example, here's how to iterate over the keys of a " +"dictionary in sorted order::" +msgstr "" + +#: ../../faq/design.rst:559 +msgid "" +"for key in sorted(mydict):\n" +" ... # do whatever with mydict[key]..." +msgstr "" + +#: ../../faq/design.rst:564 +msgid "How do you specify and enforce an interface spec in Python?" +msgstr "" + +#: ../../faq/design.rst:566 +msgid "" +"An interface specification for a module as provided by languages such as C++ " +"and Java describes the prototypes for the methods and functions of the " +"module. Many feel that compile-time enforcement of interface specifications " +"helps in the construction of large programs." +msgstr "" + +#: ../../faq/design.rst:571 +msgid "" +"Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " +"Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " +"to check whether an instance or a class implements a particular ABC. " +"The :mod:`collections.abc` module defines a set of useful ABCs such " +"as :class:`~collections.abc.Iterable`, :class:`~collections.abc.Container`, " +"and :class:`~collections.abc.MutableMapping`." +msgstr "" + +#: ../../faq/design.rst:578 +msgid "" +"For Python, many of the advantages of interface specifications can be " +"obtained by an appropriate test discipline for components." +msgstr "" + +#: ../../faq/design.rst:581 +msgid "" +"A good test suite for a module can both provide a regression test and serve " +"as a module interface specification and a set of examples. Many Python " +"modules can be run as a script to provide a simple \"self test.\" Even " +"modules which use complex external interfaces can often be tested in " +"isolation using trivial \"stub\" emulations of the external interface. " +"The :mod:`doctest` and :mod:`unittest` modules or third-party test " +"frameworks can be used to construct exhaustive test suites that exercise " +"every line of code in a module." +msgstr "" + +#: ../../faq/design.rst:589 +msgid "" +"An appropriate testing discipline can help build large complex applications " +"in Python as well as having interface specifications would. In fact, it can " +"be better because an interface specification cannot test certain properties " +"of a program. For example, the :meth:`!list.append` method is expected to " +"add new elements to the end of some internal list; an interface " +"specification cannot test that your :meth:`!list.append` implementation will " +"actually do this correctly, but it's trivial to check this property in a " +"test suite." +msgstr "" + +#: ../../faq/design.rst:597 +msgid "" +"Writing test suites is very helpful, and you might want to design your code " +"to make it easily tested. One increasingly popular technique, test-driven " +"development, calls for writing parts of the test suite first, before you " +"write any of the actual code. Of course Python allows you to be sloppy and " +"not write test cases at all." +msgstr "" + +#: ../../faq/design.rst:605 +msgid "Why is there no goto?" +msgstr "" + +#: ../../faq/design.rst:607 +msgid "" +"In the 1970s people realized that unrestricted goto could lead to messy " +"\"spaghetti\" code that was hard to understand and revise. In a high-level " +"language, it is also unneeded as long as there are ways to branch (in " +"Python, with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, " +"and :keyword:`if`/:keyword:`else` expressions) and loop " +"(with :keyword:`while` and :keyword:`for` statements, possibly " +"containing :keyword:`continue` and :keyword:`break`)." +msgstr "" + +#: ../../faq/design.rst:614 +msgid "" +"One can also use exceptions to provide a \"structured goto\" that works even " +"across function calls. Many feel that exceptions can conveniently emulate " +"all reasonable uses of the ``go`` or ``goto`` constructs of C, Fortran, and " +"other languages. For example::" +msgstr "" + +#: ../../faq/design.rst:620 +msgid "" +"class label(Exception): pass # declare a label\n" +"\n" +"try:\n" +" ...\n" +" if condition: raise label() # goto label\n" +" ...\n" +"except label: # where to goto\n" +" pass\n" +"..." +msgstr "" + +#: ../../faq/design.rst:630 +msgid "" +"This doesn't allow you to jump into the middle of a loop, but that's usually " +"considered an abuse of ``goto`` anyway. Use sparingly." +msgstr "" + +#: ../../faq/design.rst:635 +msgid "Why can't raw strings (r-strings) end with a backslash?" +msgstr "" + +#: ../../faq/design.rst:637 +msgid "" +"More precisely, they can't end with an odd number of backslashes: the " +"unpaired backslash at the end escapes the closing quote character, leaving " +"an unterminated string." +msgstr "" + +#: ../../faq/design.rst:641 +msgid "" +"Raw strings were designed to ease creating input for processors (chiefly " +"regular expression engines) that want to do their own backslash escape " +"processing. Such processors consider an unmatched trailing backslash to be " +"an error anyway, so raw strings disallow that. In return, they allow you to " +"pass on the string quote character by escaping it with a backslash. These " +"rules work well when r-strings are used for their intended purpose." +msgstr "" + +#: ../../faq/design.rst:648 +msgid "" +"If you're trying to build Windows pathnames, note that all Windows system " +"calls accept forward slashes too::" +msgstr "" + +#: ../../faq/design.rst:651 +msgid "f = open(\"/mydir/file.txt\") # works fine!" +msgstr "" + +#: ../../faq/design.rst:653 +msgid "" +"If you're trying to build a pathname for a DOS command, try e.g. one of ::" +msgstr "" + +#: ../../faq/design.rst:655 +msgid "" +"dir = r\"\\this\\is\\my\\dos\\dir\" \"\\\\\"\n" +"dir = r\"\\this\\is\\my\\dos\\dir\\ \"[:-1]\n" +"dir = \"\\\\this\\\\is\\\\my\\\\dos\\\\dir\\\\\"" +msgstr "" + +#: ../../faq/design.rst:661 +msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" +msgstr "" + +#: ../../faq/design.rst:663 +msgid "" +"Python has a :keyword:`with` statement that wraps the execution of a block, " +"calling code on the entrance and exit from the block. Some languages have a " +"construct that looks like this::" +msgstr "" + +#: ../../faq/design.rst:667 +msgid "" +"with obj:\n" +" a = 1 # equivalent to obj.a = 1\n" +" total = total + 1 # obj.total = obj.total + 1" +msgstr "" + +#: ../../faq/design.rst:671 +msgid "In Python, such a construct would be ambiguous." +msgstr "" + +#: ../../faq/design.rst:673 +msgid "" +"Other languages, such as Object Pascal, Delphi, and C++, use static types, " +"so it's possible to know, in an unambiguous way, what member is being " +"assigned to. This is the main point of static typing -- the compiler " +"*always* knows the scope of every variable at compile time." +msgstr "" + +#: ../../faq/design.rst:678 +msgid "" +"Python uses dynamic types. It is impossible to know in advance which " +"attribute will be referenced at runtime. Member attributes may be added or " +"removed from objects on the fly. This makes it impossible to know, from a " +"simple reading, what attribute is being referenced: a local one, a global " +"one, or a member attribute?" +msgstr "" + +#: ../../faq/design.rst:684 +msgid "For instance, take the following incomplete snippet::" +msgstr "" + +#: ../../faq/design.rst:686 +msgid "" +"def foo(a):\n" +" with a:\n" +" print(x)" +msgstr "" + +#: ../../faq/design.rst:690 +msgid "" +"The snippet assumes that ``a`` must have a member attribute called ``x``. " +"However, there is nothing in Python that tells the interpreter this. What " +"should happen if ``a`` is, let us say, an integer? If there is a global " +"variable named ``x``, will it be used inside the :keyword:`with` block? As " +"you see, the dynamic nature of Python makes such choices much harder." +msgstr "" + +#: ../../faq/design.rst:696 +msgid "" +"The primary benefit of :keyword:`with` and similar language features " +"(reduction of code volume) can, however, easily be achieved in Python by " +"assignment. Instead of::" +msgstr "" + +#: ../../faq/design.rst:699 +msgid "" +"function(args).mydict[index][index].a = 21\n" +"function(args).mydict[index][index].b = 42\n" +"function(args).mydict[index][index].c = 63" +msgstr "" + +#: ../../faq/design.rst:703 +msgid "write this::" +msgstr "" + +#: ../../faq/design.rst:705 +msgid "" +"ref = function(args).mydict[index][index]\n" +"ref.a = 21\n" +"ref.b = 42\n" +"ref.c = 63" +msgstr "" + +#: ../../faq/design.rst:710 +msgid "" +"This also has the side-effect of increasing execution speed because name " +"bindings are resolved at run-time in Python, and the second version only " +"needs to perform the resolution once." +msgstr "" + +#: ../../faq/design.rst:714 +msgid "" +"Similar proposals that would introduce syntax to further reduce code volume, " +"such as using a 'leading dot', have been rejected in favour of explicitness " +"(see https://mail.python.org/pipermail/python-ideas/2016-May/040070.html)." +msgstr "" + +#: ../../faq/design.rst:720 +msgid "Why don't generators support the with statement?" +msgstr "" + +#: ../../faq/design.rst:722 +msgid "" +"For technical reasons, a generator used directly as a context manager would " +"not work correctly. When, as is most common, a generator is used as an " +"iterator run to completion, no closing is needed. When it is, wrap it " +"as :func:`contextlib.closing(generator) ` in " +"the :keyword:`with` statement." +msgstr "" + +#: ../../faq/design.rst:730 +msgid "Why are colons required for the if/while/def/class statements?" +msgstr "" + +#: ../../faq/design.rst:732 +msgid "" +"The colon is required primarily to enhance readability (one of the results " +"of the experimental ABC language). Consider this::" +msgstr "" + +#: ../../faq/design.rst:735 +msgid "" +"if a == b\n" +" print(a)" +msgstr "" + +#: ../../faq/design.rst:738 +msgid "versus ::" +msgstr "" + +#: ../../faq/design.rst:740 +msgid "" +"if a == b:\n" +" print(a)" +msgstr "" + +#: ../../faq/design.rst:743 +msgid "" +"Notice how the second one is slightly easier to read. Notice further how a " +"colon sets off the example in this FAQ answer; it's a standard usage in " +"English." +msgstr "" + +#: ../../faq/design.rst:746 +msgid "" +"Another minor reason is that the colon makes it easier for editors with " +"syntax highlighting; they can look for colons to decide when indentation " +"needs to be increased instead of having to do a more elaborate parsing of " +"the program text." +msgstr "" + +#: ../../faq/design.rst:752 +msgid "Why does Python allow commas at the end of lists and tuples?" +msgstr "" + +#: ../../faq/design.rst:754 +msgid "" +"Python lets you add a trailing comma at the end of lists, tuples, and " +"dictionaries::" +msgstr "" + +#: ../../faq/design.rst:757 +msgid "" +"[1, 2, 3,]\n" +"('a', 'b', 'c',)\n" +"d = {\n" +" \"A\": [1, 5],\n" +" \"B\": [6, 7], # last trailing comma is optional but good style\n" +"}" +msgstr "" + +#: ../../faq/design.rst:765 +msgid "There are several reasons to allow this." +msgstr "" + +#: ../../faq/design.rst:767 +msgid "" +"When you have a literal value for a list, tuple, or dictionary spread across " +"multiple lines, it's easier to add more elements because you don't have to " +"remember to add a comma to the previous line. The lines can also be " +"reordered without creating a syntax error." +msgstr "" + +#: ../../faq/design.rst:772 +msgid "" +"Accidentally omitting the comma can lead to errors that are hard to " +"diagnose. For example::" +msgstr "" + +#: ../../faq/design.rst:775 +msgid "" +"x = [\n" +" \"fee\",\n" +" \"fie\"\n" +" \"foo\",\n" +" \"fum\"\n" +"]" +msgstr "" + +#: ../../faq/design.rst:782 +msgid "" +"This list looks like it has four elements, but it actually contains three: " +"\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " +"of error." +msgstr "" + +#: ../../faq/design.rst:785 +msgid "" +"Allowing the trailing comma may also make programmatic code generation " +"easier." +msgstr "" diff --git a/faq/extending.po b/faq/extending.po new file mode 100644 index 0000000..b496040 --- /dev/null +++ b/faq/extending.po @@ -0,0 +1,414 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/extending.rst:3 +msgid "Extending/Embedding FAQ" +msgstr "" + +#: ../../faq/extending.rst:6 +msgid "Contents" +msgstr "" + +#: ../../faq/extending.rst:16 +msgid "Can I create my own functions in C?" +msgstr "" + +#: ../../faq/extending.rst:18 +msgid "" +"Yes, you can create built-in modules containing functions, variables, " +"exceptions and even new types in C. This is explained in the " +"document :ref:`extending-index`." +msgstr "" + +#: ../../faq/extending.rst:22 +msgid "Most intermediate or advanced Python books will also cover this topic." +msgstr "" + +#: ../../faq/extending.rst:26 +msgid "Can I create my own functions in C++?" +msgstr "" + +#: ../../faq/extending.rst:28 +msgid "" +"Yes, using the C compatibility features found in C++. Place ``extern \"C\" " +"{ ... }`` around the Python include files and put ``extern \"C\"`` before " +"each function that is going to be called by the Python interpreter. Global " +"or static C++ objects with constructors are probably not a good idea." +msgstr "" + +#: ../../faq/extending.rst:37 +msgid "Writing C is hard; are there any alternatives?" +msgstr "" + +#: ../../faq/extending.rst:39 +msgid "" +"There are a number of alternatives to writing your own C extensions, " +"depending on what you're trying to do. :ref:`Recommended third party tools " +"` offer both simpler and more sophisticated approaches to " +"creating C and C++ extensions for Python." +msgstr "" + +#: ../../faq/extending.rst:46 +msgid "How can I execute arbitrary Python statements from C?" +msgstr "" + +#: ../../faq/extending.rst:48 +msgid "" +"The highest-level function to do this is :c:func:`PyRun_SimpleString` which " +"takes a single string argument to be executed in the context of the module " +"``__main__`` and returns ``0`` for success and ``-1`` when an exception " +"occurred (including :exc:`SyntaxError`). If you want more control, " +"use :c:func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` " +"in ``Python/pythonrun.c``." +msgstr "" + +#: ../../faq/extending.rst:57 +msgid "How can I evaluate an arbitrary Python expression from C?" +msgstr "" + +#: ../../faq/extending.rst:59 +msgid "" +"Call the function :c:func:`PyRun_String` from the previous question with the " +"start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " +"and returns its value." +msgstr "" + +#: ../../faq/extending.rst:65 +msgid "How do I extract C values from a Python object?" +msgstr "" + +#: ../../faq/extending.rst:67 +msgid "" +"That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " +"returns its length and :c:func:`PyTuple_GetItem` returns the item at a " +"specified index. Lists have similar functions, :c:func:`PyList_Size` " +"and :c:func:`PyList_GetItem`." +msgstr "" + +#: ../../faq/extending.rst:72 +msgid "" +"For bytes, :c:func:`PyBytes_Size` returns its length " +"and :c:func:`PyBytes_AsStringAndSize` provides a pointer to its value and " +"its length. Note that Python bytes objects may contain null bytes so " +"C's :c:func:`!strlen` should not be used." +msgstr "" + +#: ../../faq/extending.rst:77 +msgid "" +"To test the type of an object, first make sure it isn't ``NULL``, and then " +"use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:`PyList_Check`, " +"etc." +msgstr "" + +#: ../../faq/extending.rst:80 +msgid "" +"There is also a high-level API to Python objects which is provided by the so-" +"called 'abstract' interface -- read ``Include/abstract.h`` for further " +"details. It allows interfacing with any kind of Python sequence using calls " +"like :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, etc. as well " +"as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " +"al.) and mappings in the PyMapping APIs." +msgstr "" + +#: ../../faq/extending.rst:89 +msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" +msgstr "" + +#: ../../faq/extending.rst:91 +msgid "You can't. Use :c:func:`PyTuple_Pack` instead." +msgstr "" + +#: ../../faq/extending.rst:95 +msgid "How do I call an object's method from C?" +msgstr "" + +#: ../../faq/extending.rst:97 +msgid "" +"The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " +"method of an object. The parameters are the object, the name of the method " +"to call, a format string like that used with :c:func:`Py_BuildValue`, and " +"the argument values::" +msgstr "" + +#: ../../faq/extending.rst:102 +msgid "" +"PyObject *\n" +"PyObject_CallMethod(PyObject *object, const char *method_name,\n" +" const char *arg_format, ...);" +msgstr "" + +#: ../../faq/extending.rst:106 +msgid "" +"This works for any object that has methods -- whether built-in or user-" +"defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " +"return value." +msgstr "" + +#: ../../faq/extending.rst:109 +msgid "" +"To call, e.g., a file object's \"seek\" method with arguments 10, 0 " +"(assuming the file object pointer is \"f\")::" +msgstr "" + +#: ../../faq/extending.rst:112 +msgid "" +"res = PyObject_CallMethod(f, \"seek\", \"(ii)\", 10, 0);\n" +"if (res == NULL) {\n" +" ... an exception occurred ...\n" +"}\n" +"else {\n" +" Py_DECREF(res);\n" +"}" +msgstr "" + +#: ../../faq/extending.rst:120 +msgid "" +"Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " +"argument list, to call a function without arguments, pass \"()\" for the " +"format, and to call a function with one argument, surround the argument in " +"parentheses, e.g. \"(i)\"." +msgstr "" + +#: ../../faq/extending.rst:127 +msgid "" +"How do I catch the output from PyErr_Print() (or anything that prints to " +"stdout/stderr)?" +msgstr "" + +#: ../../faq/extending.rst:129 +msgid "" +"In Python code, define an object that supports the ``write()`` method. " +"Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " +"print_error, or just allow the standard traceback mechanism to work. Then, " +"the output will go wherever your ``write()`` method sends it." +msgstr "" + +#: ../../faq/extending.rst:134 +msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" +msgstr "" + +#: ../../faq/extending.rst:136 +msgid "" +">>> import io, sys\n" +">>> sys.stdout = io.StringIO()\n" +">>> print('foo')\n" +">>> print('hello world!')\n" +">>> sys.stderr.write(sys.stdout.getvalue())\n" +"foo\n" +"hello world!" +msgstr "" + +#: ../../faq/extending.rst:146 +msgid "A custom object to do the same would look like this:" +msgstr "" + +#: ../../faq/extending.rst:148 +msgid "" +">>> import io, sys\n" +">>> class StdoutCatcher(io.TextIOBase):\n" +"... def __init__(self):\n" +"... self.data = []\n" +"... def write(self, stuff):\n" +"... self.data.append(stuff)\n" +"...\n" +">>> import sys\n" +">>> sys.stdout = StdoutCatcher()\n" +">>> print('foo')\n" +">>> print('hello world!')\n" +">>> sys.stderr.write(''.join(sys.stdout.data))\n" +"foo\n" +"hello world!" +msgstr "" + +#: ../../faq/extending.rst:167 +msgid "How do I access a module written in Python from C?" +msgstr "" + +#: ../../faq/extending.rst:169 +msgid "You can get a pointer to the module object as follows::" +msgstr "" + +#: ../../faq/extending.rst:171 +msgid "module = PyImport_ImportModule(\"\");" +msgstr "" + +#: ../../faq/extending.rst:173 +msgid "" +"If the module hasn't been imported yet (i.e. it is not yet present " +"in :data:`sys.modules`), this initializes the module; otherwise it simply " +"returns the value of ``sys.modules[\"\"]``. Note that it " +"doesn't enter the module into any namespace -- it only ensures it has been " +"initialized and is stored in :data:`sys.modules`." +msgstr "" + +#: ../../faq/extending.rst:179 +msgid "" +"You can then access the module's attributes (i.e. any name defined in the " +"module) as follows::" +msgstr "" + +#: ../../faq/extending.rst:182 +msgid "attr = PyObject_GetAttrString(module, \"\");" +msgstr "" + +#: ../../faq/extending.rst:184 +msgid "" +"Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " +"module also works." +msgstr "" + +#: ../../faq/extending.rst:189 +msgid "How do I interface to C++ objects from Python?" +msgstr "" + +#: ../../faq/extending.rst:191 +msgid "" +"Depending on your requirements, there are many approaches. To do this " +"manually, begin by reading :ref:`the \"Extending and Embedding\" document " +"`. Realize that for the Python run-time system, there " +"isn't a whole lot of difference between C and C++ -- so the strategy of " +"building a new Python type around a C structure (pointer) type will also " +"work for C++ objects." +msgstr "" + +#: ../../faq/extending.rst:197 +msgid "For C++ libraries, see :ref:`c-wrapper-software`." +msgstr "" + +#: ../../faq/extending.rst:201 +msgid "I added a module using the Setup file and the make fails; why?" +msgstr "" + +#: ../../faq/extending.rst:203 +msgid "" +"Setup must end in a newline, if there is no newline there, the build process " +"fails. (Fixing this requires some ugly shell script hackery, and this bug " +"is so minor that it doesn't seem worth the effort.)" +msgstr "" + +#: ../../faq/extending.rst:209 +msgid "How do I debug an extension?" +msgstr "" + +#: ../../faq/extending.rst:211 +msgid "" +"When using GDB with dynamically loaded extensions, you can't set a " +"breakpoint in your extension until your extension is loaded." +msgstr "" + +#: ../../faq/extending.rst:214 +msgid "In your ``.gdbinit`` file (or interactively), add the command:" +msgstr "" + +#: ../../faq/extending.rst:216 +msgid "br _PyImport_LoadDynamicModule" +msgstr "" + +#: ../../faq/extending.rst:220 +msgid "Then, when you run GDB:" +msgstr "" + +#: ../../faq/extending.rst:222 +msgid "" +"$ gdb /local/bin/python\n" +"gdb) run myscript.py\n" +"gdb) continue # repeat until your extension is loaded\n" +"gdb) finish # so that your extension is loaded\n" +"gdb) br myfunction.c:50\n" +"gdb) continue" +msgstr "" + +#: ../../faq/extending.rst:232 +msgid "" +"I want to compile a Python module on my Linux system, but some files are " +"missing. Why?" +msgstr "" + +#: ../../faq/extending.rst:234 +msgid "" +"Most packaged versions of Python omit some files required for compiling " +"Python extensions." +msgstr "" + +#: ../../faq/extending.rst:237 +msgid "For Red Hat, install the python3-devel RPM to get the necessary files." +msgstr "" + +#: ../../faq/extending.rst:239 +msgid "For Debian, run ``apt-get install python3-dev``." +msgstr "" + +#: ../../faq/extending.rst:242 +msgid "How do I tell \"incomplete input\" from \"invalid input\"?" +msgstr "" + +#: ../../faq/extending.rst:244 +msgid "" +"Sometimes you want to emulate the Python interactive interpreter's behavior, " +"where it gives you a continuation prompt when the input is incomplete (e.g. " +"you typed the start of an \"if\" statement or you didn't close your " +"parentheses or triple string quotes), but it gives you a syntax error " +"message immediately when the input is invalid." +msgstr "" + +#: ../../faq/extending.rst:250 +msgid "" +"In Python you can use the :mod:`codeop` module, which approximates the " +"parser's behavior sufficiently. IDLE uses this, for example." +msgstr "" + +#: ../../faq/extending.rst:253 +msgid "" +"The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " +"(perhaps in a separate thread) and let the Python interpreter handle the " +"input for you. You can also set the :c:func:`PyOS_ReadlineFunctionPointer` " +"to point at your custom input function. See ``Modules/readline.c`` and " +"``Parser/myreadline.c`` for more hints." +msgstr "" + +#: ../../faq/extending.rst:260 +msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" +msgstr "" + +#: ../../faq/extending.rst:262 +msgid "" +"To dynamically load g++ extension modules, you must recompile Python, relink " +"it using g++ (change LINKCC in the Python Modules Makefile), and link your " +"extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." +msgstr "" + +#: ../../faq/extending.rst:268 +msgid "" +"Can I create an object class with some methods implemented in C and others " +"in Python (e.g. through inheritance)?" +msgstr "" + +#: ../../faq/extending.rst:270 +msgid "" +"Yes, you can inherit from built-in classes such " +"as :class:`int`, :class:`list`, :class:`dict`, etc." +msgstr "" + +#: ../../faq/extending.rst:273 +msgid "" +"The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/" +"index.html) provides a way of doing this from C++ (i.e. you can inherit from " +"an extension class written in C++ using the BPL)." +msgstr "" diff --git a/faq/general.po b/faq/general.po new file mode 100644 index 0000000..05d8681 --- /dev/null +++ b/faq/general.po @@ -0,0 +1,686 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/general.rst:5 +msgid "General Python FAQ" +msgstr "" + +#: ../../faq/general.rst:8 +msgid "Contents" +msgstr "" + +#: ../../faq/general.rst:13 +msgid "General Information" +msgstr "" + +#: ../../faq/general.rst:16 +msgid "What is Python?" +msgstr "" + +#: ../../faq/general.rst:18 +msgid "" +"Python is an interpreted, interactive, object-oriented programming " +"language. It incorporates modules, exceptions, dynamic typing, very high " +"level dynamic data types, and classes. It supports multiple programming " +"paradigms beyond object-oriented programming, such as procedural and " +"functional programming. Python combines remarkable power with very clear " +"syntax. It has interfaces to many system calls and libraries, as well as to " +"various window systems, and is extensible in C or C++. It is also usable as " +"an extension language for applications that need a programmable interface. " +"Finally, Python is portable: it runs on many Unix variants including Linux " +"and macOS, and on Windows." +msgstr "" + +#: ../../faq/general.rst:28 +msgid "" +"To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " +"to Python `_ links to other " +"introductory tutorials and resources for learning Python." +msgstr "" + +#: ../../faq/general.rst:34 +msgid "What is the Python Software Foundation?" +msgstr "" + +#: ../../faq/general.rst:36 +msgid "" +"The Python Software Foundation is an independent non-profit organization " +"that holds the copyright on Python versions 2.1 and newer. The PSF's " +"mission is to advance open source technology related to the Python " +"programming language and to publicize the use of Python. The PSF's home " +"page is at https://www.python.org/psf/." +msgstr "" + +#: ../../faq/general.rst:42 +msgid "" +"Donations to the PSF are tax-exempt in the US. If you use Python and find " +"it helpful, please contribute via `the PSF donation page `_." +msgstr "" + +#: ../../faq/general.rst:48 +msgid "Are there copyright restrictions on the use of Python?" +msgstr "" + +#: ../../faq/general.rst:50 +msgid "" +"You can do anything you want with the source, as long as you leave the " +"copyrights in and display those copyrights in any documentation about Python " +"that you produce. If you honor the copyright rules, it's OK to use Python " +"for commercial use, to sell copies of Python in source or binary form " +"(modified or unmodified), or to sell products that incorporate Python in " +"some form. We would still like to know about all commercial use of Python, " +"of course." +msgstr "" + +#: ../../faq/general.rst:57 +msgid "" +"See `the license page `_ to find " +"further explanations and the full text of the PSF License." +msgstr "" + +#: ../../faq/general.rst:60 +msgid "" +"The Python logo is trademarked, and in certain cases permission is required " +"to use it. Consult `the Trademark Usage Policy `__ for more information." +msgstr "" + +#: ../../faq/general.rst:66 +msgid "Why was Python created in the first place?" +msgstr "" + +#: ../../faq/general.rst:68 +msgid "" +"Here's a *very* brief summary of what started it all, written by Guido van " +"Rossum:" +msgstr "" + +#: ../../faq/general.rst:71 +msgid "" +"I had extensive experience with implementing an interpreted language in the " +"ABC group at CWI, and from working with this group I had learned a lot about " +"language design. This is the origin of many Python features, including the " +"use of indentation for statement grouping and the inclusion of very-high-" +"level data types (although the details are all different in Python)." +msgstr "" + +#: ../../faq/general.rst:78 +msgid "" +"I had a number of gripes about the ABC language, but also liked many of its " +"features. It was impossible to extend the ABC language (or its " +"implementation) to remedy my complaints -- in fact its lack of extensibility " +"was one of its biggest problems. I had some experience with using Modula-2+ " +"and talked with the designers of Modula-3 and read the Modula-3 report. " +"Modula-3 is the origin of the syntax and semantics used for exceptions, and " +"some other Python features." +msgstr "" + +#: ../../faq/general.rst:86 +msgid "" +"I was working in the Amoeba distributed operating system group at CWI. We " +"needed a better way to do system administration than by writing either C " +"programs or Bourne shell scripts, since Amoeba had its own system call " +"interface which wasn't easily accessible from the Bourne shell. My " +"experience with error handling in Amoeba made me acutely aware of the " +"importance of exceptions as a programming language feature." +msgstr "" + +#: ../../faq/general.rst:93 +msgid "" +"It occurred to me that a scripting language with a syntax like ABC but with " +"access to the Amoeba system calls would fill the need. I realized that it " +"would be foolish to write an Amoeba-specific language, so I decided that I " +"needed a language that was generally extensible." +msgstr "" + +#: ../../faq/general.rst:98 +msgid "" +"During the 1989 Christmas holidays, I had a lot of time on my hand, so I " +"decided to give it a try. During the next year, while still mostly working " +"on it in my own time, Python was used in the Amoeba project with increasing " +"success, and the feedback from colleagues made me add many early " +"improvements." +msgstr "" + +#: ../../faq/general.rst:104 +msgid "" +"In February 1991, after just over a year of development, I decided to post " +"to USENET. The rest is in the ``Misc/HISTORY`` file." +msgstr "" + +#: ../../faq/general.rst:109 +msgid "What is Python good for?" +msgstr "" + +#: ../../faq/general.rst:111 +msgid "" +"Python is a high-level general-purpose programming language that can be " +"applied to many different classes of problems." +msgstr "" + +#: ../../faq/general.rst:114 +msgid "" +"The language comes with a large standard library that covers areas such as " +"string processing (regular expressions, Unicode, calculating differences " +"between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), " +"software engineering (unit testing, logging, profiling, parsing Python " +"code), and operating system interfaces (system calls, filesystems, TCP/IP " +"sockets). Look at the table of contents for :ref:`library-index` to get an " +"idea of what's available. A wide variety of third-party extensions are also " +"available. Consult `the Python Package Index `_ to find " +"packages of interest to you." +msgstr "" + +#: ../../faq/general.rst:128 +msgid "How does the Python version numbering scheme work?" +msgstr "" + +#: ../../faq/general.rst:130 +msgid "Python versions are numbered \"A.B.C\" or \"A.B\":" +msgstr "" + +#: ../../faq/general.rst:132 +msgid "" +"*A* is the major version number -- it is only incremented for really major " +"changes in the language." +msgstr "" + +#: ../../faq/general.rst:134 +msgid "" +"*B* is the minor version number -- it is incremented for less earth-" +"shattering changes." +msgstr "" + +#: ../../faq/general.rst:136 +msgid "" +"*C* is the micro version number -- it is incremented for each bugfix release." +msgstr "" + +#: ../../faq/general.rst:138 +msgid "" +"Not all releases are bugfix releases. In the run-up to a new feature " +"release, a series of development releases are made, denoted as alpha, beta, " +"or release candidate. Alphas are early releases in which interfaces aren't " +"yet finalized; it's not unexpected to see an interface change between two " +"alpha releases. Betas are more stable, preserving existing interfaces but " +"possibly adding new modules, and release candidates are frozen, making no " +"changes except as needed to fix critical bugs." +msgstr "" + +#: ../../faq/general.rst:146 +msgid "Alpha, beta and release candidate versions have an additional suffix:" +msgstr "" + +#: ../../faq/general.rst:148 +msgid "The suffix for an alpha version is \"aN\" for some small number *N*." +msgstr "" + +#: ../../faq/general.rst:149 +msgid "The suffix for a beta version is \"bN\" for some small number *N*." +msgstr "" + +#: ../../faq/general.rst:150 +msgid "" +"The suffix for a release candidate version is \"rcN\" for some small number " +"*N*." +msgstr "" + +#: ../../faq/general.rst:152 +msgid "" +"In other words, all versions labeled *2.0aN* precede the versions labeled " +"*2.0bN*, which precede versions labeled *2.0rcN*, and *those* precede 2.0." +msgstr "" + +#: ../../faq/general.rst:155 +msgid "" +"You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " +"are unreleased versions, built directly from the CPython development " +"repository. In practice, after a final minor release is made, the version " +"is incremented to the next minor version, which becomes the \"a0\" version, " +"e.g. \"2.4a0\"." +msgstr "" + +#: ../../faq/general.rst:160 +msgid "" +"See the `Developer's Guide `__ for more information about the development cycle, " +"and :pep:`387` to learn more about Python's backward compatibility policy. " +"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " +"and :data:`sys.version_info`." +msgstr "" + +#: ../../faq/general.rst:169 +msgid "How do I obtain a copy of the Python source?" +msgstr "" + +#: ../../faq/general.rst:171 +msgid "" +"The latest Python source distribution is always available from python.org, " +"at https://www.python.org/downloads/. The latest development sources can be " +"obtained at https://github.com/python/cpython/." +msgstr "" + +#: ../../faq/general.rst:175 +msgid "" +"The source distribution is a gzipped tar file containing the complete C " +"source, Sphinx-formatted documentation, Python library modules, example " +"programs, and several useful pieces of freely distributable software. The " +"source will compile and run out of the box on most UNIX platforms." +msgstr "" + +#: ../../faq/general.rst:180 +msgid "" +"Consult the `Getting Started section of the Python Developer's Guide " +"`__ for more information on getting the " +"source code and compiling it." +msgstr "" + +#: ../../faq/general.rst:186 +msgid "How do I get documentation on Python?" +msgstr "" + +#: ../../faq/general.rst:188 +msgid "" +"The standard documentation for the current stable version of Python is " +"available at https://docs.python.org/3/. PDF, plain text, and downloadable " +"HTML versions are also available at https://docs.python.org/3/download.html." +msgstr "" + +#: ../../faq/general.rst:192 +msgid "" +"The documentation is written in reStructuredText and processed by `the " +"Sphinx documentation tool `__. The " +"reStructuredText source for the documentation is part of the Python source " +"distribution." +msgstr "" + +#: ../../faq/general.rst:198 +msgid "I've never programmed before. Is there a Python tutorial?" +msgstr "" + +#: ../../faq/general.rst:200 +msgid "" +"There are numerous tutorials and books available. The standard " +"documentation includes :ref:`tutorial-index`." +msgstr "" + +#: ../../faq/general.rst:203 +msgid "" +"Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " +"including lists of tutorials." +msgstr "" + +#: ../../faq/general.rst:208 +msgid "Is there a newsgroup or mailing list devoted to Python?" +msgstr "" + +#: ../../faq/general.rst:210 +msgid "" +"There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " +"`python-list `_. The " +"newsgroup and mailing list are gatewayed into each other -- if you can read " +"news it's unnecessary to subscribe to the mailing " +"list. :newsgroup:`comp.lang.python` is high-traffic, receiving hundreds of " +"postings every day, and Usenet readers are often more able to cope with this " +"volume." +msgstr "" + +#: ../../faq/general.rst:217 +msgid "" +"Announcements of new software releases and events can be found in " +"comp.lang.python.announce, a low-traffic moderated list that receives about " +"five postings per day. It's available as `the python-announce mailing list " +"`_." +msgstr "" + +#: ../../faq/general.rst:222 +msgid "" +"More info about other mailing lists and newsgroups can be found at https://" +"www.python.org/community/lists/." +msgstr "" + +#: ../../faq/general.rst:227 +msgid "How do I get a beta test version of Python?" +msgstr "" + +#: ../../faq/general.rst:229 +msgid "" +"Alpha and beta releases are available from https://www.python.org/" +"downloads/. All releases are announced on the comp.lang.python and " +"comp.lang.python.announce newsgroups and on the Python home page at https://" +"www.python.org/; an RSS feed of news is available." +msgstr "" + +#: ../../faq/general.rst:234 +msgid "" +"You can also access the development version of Python through Git. See `The " +"Python Developer's Guide `_ for details." +msgstr "" + +#: ../../faq/general.rst:239 +msgid "How do I submit bug reports and patches for Python?" +msgstr "" + +#: ../../faq/general.rst:241 +msgid "" +"To report a bug or submit a patch, use the issue tracker at https://" +"github.com/python/cpython/issues." +msgstr "" + +#: ../../faq/general.rst:244 +msgid "" +"For more information on how Python is developed, consult `the Python " +"Developer's Guide `_." +msgstr "" + +#: ../../faq/general.rst:249 +msgid "Are there any published articles about Python that I can reference?" +msgstr "" + +#: ../../faq/general.rst:251 +msgid "It's probably best to cite your favorite book about Python." +msgstr "" + +#: ../../faq/general.rst:253 +msgid "" +"The `very first article `_ about Python was " +"written in 1991 and is now quite outdated." +msgstr "" + +#: ../../faq/general.rst:256 +msgid "" +"Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers " +"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " +"(December 1991), Amsterdam, pp 283--303." +msgstr "" + +#: ../../faq/general.rst:262 +msgid "Are there any books on Python?" +msgstr "" + +#: ../../faq/general.rst:264 +msgid "" +"Yes, there are many, and more are being published. See the python.org wiki " +"at https://wiki.python.org/moin/PythonBooks for a list." +msgstr "" + +#: ../../faq/general.rst:267 +msgid "" +"You can also search online bookstores for \"Python\" and filter out the " +"Monty Python references; or perhaps search for \"Python\" and \"language\"." +msgstr "" + +#: ../../faq/general.rst:272 +msgid "Where in the world is www.python.org located?" +msgstr "" + +#: ../../faq/general.rst:274 +msgid "" +"The Python project's infrastructure is located all over the world and is " +"managed by the Python Infrastructure Team. Details `here `__." +msgstr "" + +#: ../../faq/general.rst:279 +msgid "Why is it called Python?" +msgstr "" + +#: ../../faq/general.rst:281 +msgid "" +"When he began implementing Python, Guido van Rossum was also reading the " +"published scripts from `\"Monty Python's Flying Circus\" `__, a BBC comedy series from the 1970s. " +"Van Rossum thought he needed a name that was short, unique, and slightly " +"mysterious, so he decided to call the language Python." +msgstr "" + +#: ../../faq/general.rst:289 +msgid "Do I have to like \"Monty Python's Flying Circus\"?" +msgstr "" + +#: ../../faq/general.rst:291 +msgid "No, but it helps. :)" +msgstr "" + +#: ../../faq/general.rst:295 +msgid "Python in the real world" +msgstr "" + +#: ../../faq/general.rst:298 +msgid "How stable is Python?" +msgstr "" + +#: ../../faq/general.rst:300 +msgid "" +"Very stable. New, stable releases have been coming out roughly every 6 to " +"18 months since 1991, and this seems likely to continue. As of version 3.9, " +"Python will have a new feature release every 12 months (:pep:`602`)." +msgstr "" + +#: ../../faq/general.rst:304 +msgid "" +"The developers issue bugfix releases of older versions, so the stability of " +"existing releases gradually improves. Bugfix releases, indicated by a third " +"component of the version number (e.g. 3.5.3, 3.6.2), are managed for " +"stability; only fixes for known problems are included in a bugfix release, " +"and it's guaranteed that interfaces will remain the same throughout a series " +"of bugfix releases." +msgstr "" + +#: ../../faq/general.rst:311 +msgid "" +"The latest stable releases can always be found on the `Python download page " +"`_. Python 3.x is the recommended version " +"and supported by most widely used libraries. Python 2.x :pep:`is not " +"maintained anymore <373>`." +msgstr "" + +#: ../../faq/general.rst:317 +msgid "How many people are using Python?" +msgstr "" + +#: ../../faq/general.rst:319 +msgid "" +"There are probably millions of users, though it's difficult to obtain an " +"exact count." +msgstr "" + +#: ../../faq/general.rst:322 +msgid "" +"Python is available for free download, so there are no sales figures, and " +"it's available from many different sites and packaged with many Linux " +"distributions, so download statistics don't tell the whole story either." +msgstr "" + +#: ../../faq/general.rst:326 +msgid "" +"The comp.lang.python newsgroup is very active, but not all Python users post " +"to the group or even read it." +msgstr "" + +#: ../../faq/general.rst:331 +msgid "Have any significant projects been done in Python?" +msgstr "" + +#: ../../faq/general.rst:333 +msgid "" +"See https://www.python.org/about/success for a list of projects that use " +"Python. Consulting the proceedings for `past Python conferences `_ will reveal contributions from many " +"different companies and organizations." +msgstr "" + +#: ../../faq/general.rst:338 +msgid "" +"High-profile Python projects include `the Mailman mailing list manager " +"`_ and `the Zope application server `_. Several Linux distributions, most notably `Red Hat " +"`_, have written part or all of their installer and " +"system administration software in Python. Companies that use Python " +"internally include Google, Yahoo, and Lucasfilm Ltd." +msgstr "" + +#: ../../faq/general.rst:347 +msgid "What new developments are expected for Python in the future?" +msgstr "" + +#: ../../faq/general.rst:349 +msgid "" +"See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). " +"PEPs are design documents describing a suggested new feature for Python, " +"providing a concise technical specification and a rationale. Look for a PEP " +"titled \"Python X.Y Release Schedule\", where X.Y is a version that hasn't " +"been publicly released yet." +msgstr "" + +#: ../../faq/general.rst:355 +msgid "" +"New development is discussed on `the python-dev mailing list `_." +msgstr "" + +#: ../../faq/general.rst:360 +msgid "Is it reasonable to propose incompatible changes to Python?" +msgstr "" + +#: ../../faq/general.rst:362 +msgid "" +"In general, no. There are already millions of lines of Python code around " +"the world, so any change in the language that invalidates more than a very " +"small fraction of existing programs has to be frowned upon. Even if you can " +"provide a conversion program, there's still the problem of updating all " +"documentation; many books have been written about Python, and we don't want " +"to invalidate them all at a single stroke." +msgstr "" + +#: ../../faq/general.rst:369 +msgid "" +"Providing a gradual upgrade path is necessary if a feature has to be " +"changed. :pep:`5` describes the procedure followed for introducing backward-" +"incompatible changes while minimizing disruption for users." +msgstr "" + +#: ../../faq/general.rst:375 +msgid "Is Python a good language for beginning programmers?" +msgstr "" + +#: ../../faq/general.rst:377 +msgid "Yes." +msgstr "" + +#: ../../faq/general.rst:379 +msgid "" +"It is still common to start students with a procedural and statically typed " +"language such as Pascal, C, or a subset of C++ or Java. Students may be " +"better served by learning Python as their first language. Python has a very " +"simple and consistent syntax and a large standard library and, most " +"importantly, using Python in a beginning programming course lets students " +"concentrate on important programming skills such as problem decomposition " +"and data type design. With Python, students can be quickly introduced to " +"basic concepts such as loops and procedures. They can probably even work " +"with user-defined objects in their very first course." +msgstr "" + +#: ../../faq/general.rst:389 +msgid "" +"For a student who has never programmed before, using a statically typed " +"language seems unnatural. It presents additional complexity that the " +"student must master and slows the pace of the course. The students are " +"trying to learn to think like a computer, decompose problems, design " +"consistent interfaces, and encapsulate data. While learning to use a " +"statically typed language is important in the long term, it is not " +"necessarily the best topic to address in the students' first programming " +"course." +msgstr "" + +#: ../../faq/general.rst:397 +msgid "" +"Many other aspects of Python make it a good first language. Like Java, " +"Python has a large standard library so that students can be assigned " +"programming projects very early in the course that *do* something. " +"Assignments aren't restricted to the standard four-function calculator and " +"check balancing programs. By using the standard library, students can gain " +"the satisfaction of working on realistic applications as they learn the " +"fundamentals of programming. Using the standard library also teaches " +"students about code reuse. Third-party modules such as PyGame are also " +"helpful in extending the students' reach." +msgstr "" + +#: ../../faq/general.rst:406 +msgid "" +"Python's interactive interpreter enables students to test language features " +"while they're programming. They can keep a window with the interpreter " +"running while they enter their program's source in another window. If they " +"can't remember the methods for a list, they can do something like this::" +msgstr "" + +#: ../../faq/general.rst:411 +msgid "" +">>> L = []\n" +">>> dir(L)\n" +"['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',\n" +"'__dir__', '__doc__', '__eq__', '__format__', '__ge__',\n" +"'__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',\n" +"'__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',\n" +"'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',\n" +"'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',\n" +"'__sizeof__', '__str__', '__subclasshook__', 'append', 'clear',\n" +"'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',\n" +"'reverse', 'sort']\n" +">>> [d for d in dir(L) if '__' not in d]\n" +"['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', " +"'remove', 'reverse', 'sort']\n" +"\n" +">>> help(L.append)\n" +"Help on built-in function append:\n" +"\n" +"append(...)\n" +" L.append(object) -> None -- append object to end\n" +"\n" +">>> L.append(1)\n" +">>> L\n" +"[1]" +msgstr "" + +#: ../../faq/general.rst:435 +msgid "" +"With the interpreter, documentation is never far from the student as they " +"are programming." +msgstr "" + +#: ../../faq/general.rst:438 +msgid "" +"There are also good IDEs for Python. IDLE is a cross-platform IDE for " +"Python that is written in Python using Tkinter. Emacs users will be happy to " +"know that there is a very good Python mode for Emacs. All of these " +"programming environments provide syntax highlighting, auto-indenting, and " +"access to the interactive interpreter while coding. Consult `the Python " +"wiki `_ for a full list of " +"Python editing environments." +msgstr "" + +#: ../../faq/general.rst:446 +msgid "" +"If you want to discuss Python's use in education, you may be interested in " +"joining `the edu-sig mailing list `_." +msgstr "" diff --git a/faq/gui.po b/faq/gui.po new file mode 100644 index 0000000..0484d5a --- /dev/null +++ b/faq/gui.po @@ -0,0 +1,115 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/gui.rst:5 +msgid "Graphic User Interface FAQ" +msgstr "" + +#: ../../faq/gui.rst:8 +msgid "Contents" +msgstr "" + +#: ../../faq/gui.rst:15 +msgid "General GUI Questions" +msgstr "" + +#: ../../faq/gui.rst:18 +msgid "What GUI toolkits exist for Python?" +msgstr "" + +#: ../../faq/gui.rst:20 +msgid "" +"Standard builds of Python include an object-oriented interface to the Tcl/Tk " +"widget set, called :ref:`tkinter `. This is probably the easiest " +"to install (since it comes included with most `binary distributions `_ of Python) and use. For more info about Tk, " +"including pointers to the source, see the `Tcl/Tk home page `_. Tcl/Tk is fully portable to the macOS, Windows, and Unix " +"platforms." +msgstr "" + +#: ../../faq/gui.rst:28 +msgid "" +"Depending on what platform(s) you are aiming at, there are also several " +"alternatives. A `list of cross-platform `_ and `platform-specific `_ GUI " +"frameworks can be found on the python wiki." +msgstr "" + +#: ../../faq/gui.rst:36 +msgid "Tkinter questions" +msgstr "" + +#: ../../faq/gui.rst:39 +msgid "How do I freeze Tkinter applications?" +msgstr "" + +#: ../../faq/gui.rst:41 +msgid "" +"Freeze is a tool to create stand-alone applications. When freezing Tkinter " +"applications, the applications will not be truly stand-alone, as the " +"application will still need the Tcl and Tk libraries." +msgstr "" + +#: ../../faq/gui.rst:45 +msgid "" +"One solution is to ship the application with the Tcl and Tk libraries, and " +"point to them at run-time using the :envvar:`!TCL_LIBRARY` and :envvar:`!" +"TK_LIBRARY` environment variables." +msgstr "" + +#: ../../faq/gui.rst:49 +msgid "" +"Various third-party freeze libraries such as py2exe and cx_Freeze have " +"handling for Tkinter applications built-in." +msgstr "" + +#: ../../faq/gui.rst:54 +msgid "Can I have Tk events handled while waiting for I/O?" +msgstr "" + +#: ../../faq/gui.rst:56 +msgid "" +"On platforms other than Windows, yes, and you don't even need threads! But " +"you'll have to restructure your I/O code a bit. Tk has the equivalent of " +"Xt's :c:func:`!XtAddInput` call, which allows you to register a callback " +"function which will be called from the Tk mainloop when I/O is possible on a " +"file descriptor. See :ref:`tkinter-file-handlers`." +msgstr "" + +#: ../../faq/gui.rst:64 +msgid "I can't get key bindings to work in Tkinter: why?" +msgstr "" + +#: ../../faq/gui.rst:66 +msgid "" +"An often-heard complaint is that event handlers :ref:`bound ` to events with the :meth:`!bind` method don't get handled even when " +"the appropriate key is pressed." +msgstr "" + +#: ../../faq/gui.rst:70 +msgid "" +"The most common cause is that the widget to which the binding applies " +"doesn't have \"keyboard focus\". Check out the Tk documentation for the " +"focus command. Usually a widget is given the keyboard focus by clicking in " +"it (but not for labels; see the takefocus option)." +msgstr "" diff --git a/faq/index.po b/faq/index.po new file mode 100644 index 0000000..b0cd938 --- /dev/null +++ b/faq/index.po @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/index.rst:5 +msgid "Python Frequently Asked Questions" +msgstr "" diff --git a/faq/installed.po b/faq/installed.po new file mode 100644 index 0000000..be81fef --- /dev/null +++ b/faq/installed.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/installed.rst:3 +msgid "\"Why is Python Installed on my Computer?\" FAQ" +msgstr "" + +#: ../../faq/installed.rst:6 +msgid "What is Python?" +msgstr "" + +#: ../../faq/installed.rst:8 +msgid "" +"Python is a programming language. It's used for many different " +"applications. It's used in some high schools and colleges as an introductory " +"programming language because Python is easy to learn, but it's also used by " +"professional software developers at places such as Google, NASA, and " +"Lucasfilm Ltd." +msgstr "" + +#: ../../faq/installed.rst:13 +msgid "" +"If you wish to learn more about Python, start with the `Beginner's Guide to " +"Python `_." +msgstr "" + +#: ../../faq/installed.rst:18 +msgid "Why is Python installed on my machine?" +msgstr "" + +#: ../../faq/installed.rst:20 +msgid "" +"If you find Python installed on your system but don't remember installing " +"it, there are several possible ways it could have gotten there." +msgstr "" + +#: ../../faq/installed.rst:23 +msgid "" +"Perhaps another user on the computer wanted to learn programming and " +"installed it; you'll have to figure out who's been using the machine and " +"might have installed it." +msgstr "" + +#: ../../faq/installed.rst:26 +msgid "" +"A third-party application installed on the machine might have been written " +"in Python and included a Python installation. There are many such " +"applications, from GUI programs to network servers and administrative " +"scripts." +msgstr "" + +#: ../../faq/installed.rst:29 +msgid "" +"Some Windows machines also have Python installed. At this writing we're " +"aware of computers from Hewlett-Packard and Compaq that include Python. " +"Apparently some of HP/Compaq's administrative tools are written in Python." +msgstr "" + +#: ../../faq/installed.rst:32 +msgid "" +"Many Unix-compatible operating systems, such as macOS and some Linux " +"distributions, have Python installed by default; it's included in the base " +"installation." +msgstr "" + +#: ../../faq/installed.rst:38 +msgid "Can I delete Python?" +msgstr "" + +#: ../../faq/installed.rst:40 +msgid "That depends on where Python came from." +msgstr "" + +#: ../../faq/installed.rst:42 +msgid "" +"If someone installed it deliberately, you can remove it without hurting " +"anything. On Windows, use the Add/Remove Programs icon in the Control Panel." +msgstr "" + +#: ../../faq/installed.rst:45 +msgid "" +"If Python was installed by a third-party application, you can also remove " +"it, but that application will no longer work. You should use that " +"application's uninstaller rather than removing Python directly." +msgstr "" + +#: ../../faq/installed.rst:49 +msgid "" +"If Python came with your operating system, removing it is not recommended. " +"If you remove it, whatever tools were written in Python will no longer run, " +"and some of them might be important to you. Reinstalling the whole system " +"would then be required to fix things again." +msgstr "" diff --git a/faq/library.po b/faq/library.po new file mode 100644 index 0000000..1b368c4 --- /dev/null +++ b/faq/library.po @@ -0,0 +1,1037 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/library.rst:5 +msgid "Library and Extension FAQ" +msgstr "" + +#: ../../faq/library.rst:8 +msgid "Contents" +msgstr "" + +#: ../../faq/library.rst:12 +msgid "General Library Questions" +msgstr "" + +#: ../../faq/library.rst:15 +msgid "How do I find a module or application to perform task X?" +msgstr "" + +#: ../../faq/library.rst:17 +msgid "" +"Check :ref:`the Library Reference ` to see if there's a " +"relevant standard library module. (Eventually you'll learn what's in the " +"standard library and will be able to skip this step.)" +msgstr "" + +#: ../../faq/library.rst:21 +msgid "" +"For third-party packages, search the `Python Package Index `_ or try `Google `_ or another web search " +"engine. Searching for \"Python\" plus a keyword or two for your topic of " +"interest will usually find something helpful." +msgstr "" + +#: ../../faq/library.rst:28 +msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" +msgstr "" + +#: ../../faq/library.rst:30 +msgid "" +"If you can't find a source file for a module it may be a built-in or " +"dynamically loaded module implemented in C, C++ or other compiled language. " +"In this case you may not have the source file or it may be something " +"like :file:`mathmodule.c`, somewhere in a C source directory (not on the " +"Python Path)." +msgstr "" + +#: ../../faq/library.rst:35 +msgid "There are (at least) three kinds of modules in Python:" +msgstr "" + +#: ../../faq/library.rst:37 +msgid "modules written in Python (.py);" +msgstr "" + +#: ../../faq/library.rst:38 +msgid "" +"modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" +msgstr "" + +#: ../../faq/library.rst:39 +msgid "" +"modules written in C and linked with the interpreter; to get a list of " +"these, type::" +msgstr "" + +#: ../../faq/library.rst:42 +msgid "" +"import sys\n" +"print(sys.builtin_module_names)" +msgstr "" + +#: ../../faq/library.rst:47 +msgid "How do I make a Python script executable on Unix?" +msgstr "" + +#: ../../faq/library.rst:49 +msgid "" +"You need to do two things: the script file's mode must be executable and the " +"first line must begin with ``#!`` followed by the path of the Python " +"interpreter." +msgstr "" + +#: ../../faq/library.rst:53 +msgid "" +"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " +"755 scriptfile``." +msgstr "" + +#: ../../faq/library.rst:56 +msgid "" +"The second can be done in a number of ways. The most straightforward way is " +"to write ::" +msgstr "" + +#: ../../faq/library.rst:59 +msgid "#!/usr/local/bin/python" +msgstr "" + +#: ../../faq/library.rst:61 +msgid "" +"as the very first line of your file, using the pathname for where the Python " +"interpreter is installed on your platform." +msgstr "" + +#: ../../faq/library.rst:64 +msgid "" +"If you would like the script to be independent of where the Python " +"interpreter lives, you can use the :program:`env` program. Almost all Unix " +"variants support the following, assuming the Python interpreter is in a " +"directory on the user's :envvar:`PATH`::" +msgstr "" + +#: ../../faq/library.rst:69 +msgid "#!/usr/bin/env python" +msgstr "" + +#: ../../faq/library.rst:71 +msgid "" +"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI " +"scripts is often very minimal, so you need to use the actual absolute " +"pathname of the interpreter." +msgstr "" + +#: ../../faq/library.rst:75 +msgid "" +"Occasionally, a user's environment is so full that the :program:`/usr/bin/" +"env` program fails; or there's no env program at all. In that case, you can " +"try the following hack (due to Alex Rezinsky):" +msgstr "" + +#: ../../faq/library.rst:79 +msgid "" +"#! /bin/sh\n" +"\"\"\":\"\n" +"exec python $0 ${1+\"$@\"}\n" +"\"\"\"" +msgstr "" + +#: ../../faq/library.rst:86 +msgid "" +"The minor disadvantage is that this defines the script's __doc__ string. " +"However, you can fix that by adding ::" +msgstr "" + +#: ../../faq/library.rst:89 +msgid "__doc__ = \"\"\"...Whatever...\"\"\"" +msgstr "" + +#: ../../faq/library.rst:94 +msgid "Is there a curses/termcap package for Python?" +msgstr "" + +#: ../../faq/library.rst:98 +msgid "" +"For Unix variants: The standard Python source distribution comes with a " +"curses module in the :source:`Modules` subdirectory, though it's not " +"compiled by default. (Note that this is not available in the Windows " +"distribution -- there is no curses module for Windows.)" +msgstr "" + +#: ../../faq/library.rst:103 +msgid "" +"The :mod:`curses` module supports basic curses features as well as many " +"additional functions from ncurses and SYSV curses such as colour, " +"alternative character set support, pads, and mouse support. This means the " +"module isn't compatible with operating systems that only have BSD curses, " +"but there don't seem to be any currently maintained OSes that fall into this " +"category." +msgstr "" + +#: ../../faq/library.rst:111 +msgid "Is there an equivalent to C's onexit() in Python?" +msgstr "" + +#: ../../faq/library.rst:113 +msgid "" +"The :mod:`atexit` module provides a register function that is similar to " +"C's :c:func:`!onexit`." +msgstr "" + +#: ../../faq/library.rst:118 +msgid "Why don't my signal handlers work?" +msgstr "" + +#: ../../faq/library.rst:120 +msgid "" +"The most common problem is that the signal handler is declared with the " +"wrong argument list. It is called as ::" +msgstr "" + +#: ../../faq/library.rst:123 +msgid "handler(signum, frame)" +msgstr "" + +#: ../../faq/library.rst:125 +msgid "so it should be declared with two parameters::" +msgstr "" + +#: ../../faq/library.rst:127 +msgid "" +"def handler(signum, frame):\n" +" ..." +msgstr "" + +#: ../../faq/library.rst:132 +msgid "Common tasks" +msgstr "" + +#: ../../faq/library.rst:135 +msgid "How do I test a Python program or component?" +msgstr "" + +#: ../../faq/library.rst:137 +msgid "" +"Python comes with two testing frameworks. The :mod:`doctest` module finds " +"examples in the docstrings for a module and runs them, comparing the output " +"with the expected output given in the docstring." +msgstr "" + +#: ../../faq/library.rst:141 +msgid "" +"The :mod:`unittest` module is a fancier testing framework modelled on Java " +"and Smalltalk testing frameworks." +msgstr "" + +#: ../../faq/library.rst:144 +msgid "" +"To make testing easier, you should use good modular design in your program. " +"Your program should have almost all functionality encapsulated in either " +"functions or class methods -- and this sometimes has the surprising and " +"delightful effect of making the program run faster (because local variable " +"accesses are faster than global accesses). Furthermore the program should " +"avoid depending on mutating global variables, since this makes testing much " +"more difficult to do." +msgstr "" + +#: ../../faq/library.rst:152 +msgid "The \"global main logic\" of your program may be as simple as ::" +msgstr "" + +#: ../../faq/library.rst:154 +msgid "" +"if __name__ == \"__main__\":\n" +" main_logic()" +msgstr "" + +#: ../../faq/library.rst:157 +msgid "at the bottom of the main module of your program." +msgstr "" + +#: ../../faq/library.rst:159 +msgid "" +"Once your program is organized as a tractable collection of function and " +"class behaviours, you should write test functions that exercise the " +"behaviours. A test suite that automates a sequence of tests can be " +"associated with each module. This sounds like a lot of work, but since " +"Python is so terse and flexible it's surprisingly easy. You can make coding " +"much more pleasant and fun by writing your test functions in parallel with " +"the \"production code\", since this makes it easy to find bugs and even " +"design flaws earlier." +msgstr "" + +#: ../../faq/library.rst:167 +msgid "" +"\"Support modules\" that are not intended to be the main module of a program " +"may include a self-test of the module. ::" +msgstr "" + +#: ../../faq/library.rst:170 +msgid "" +"if __name__ == \"__main__\":\n" +" self_test()" +msgstr "" + +#: ../../faq/library.rst:173 +msgid "" +"Even programs that interact with complex external interfaces may be tested " +"when the external interfaces are unavailable by using \"fake\" interfaces " +"implemented in Python." +msgstr "" + +#: ../../faq/library.rst:179 +msgid "How do I create documentation from doc strings?" +msgstr "" + +#: ../../faq/library.rst:181 +msgid "" +"The :mod:`pydoc` module can create HTML from the doc strings in your Python " +"source code. An alternative for creating API documentation purely from " +"docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." +msgstr "" + +#: ../../faq/library.rst:188 +msgid "How do I get a single keypress at a time?" +msgstr "" + +#: ../../faq/library.rst:190 +msgid "" +"For Unix variants there are several solutions. It's straightforward to do " +"this using curses, but curses is a fairly large module to learn." +msgstr "" + +#: ../../faq/library.rst:234 +msgid "Threads" +msgstr "" + +#: ../../faq/library.rst:237 +msgid "How do I program using threads?" +msgstr "" + +#: ../../faq/library.rst:239 +msgid "" +"Be sure to use the :mod:`threading` module and not the :mod:`_thread` " +"module. The :mod:`threading` module builds convenient abstractions on top of " +"the low-level primitives provided by the :mod:`_thread` module." +msgstr "" + +#: ../../faq/library.rst:245 +msgid "None of my threads seem to run: why?" +msgstr "" + +#: ../../faq/library.rst:247 +msgid "" +"As soon as the main thread exits, all threads are killed. Your main thread " +"is running too quickly, giving the threads no time to do any work." +msgstr "" + +#: ../../faq/library.rst:250 +msgid "" +"A simple fix is to add a sleep to the end of the program that's long enough " +"for all the threads to finish::" +msgstr "" + +#: ../../faq/library.rst:253 +msgid "" +"import threading, time\n" +"\n" +"def thread_task(name, n):\n" +" for i in range(n):\n" +" print(name, i)\n" +"\n" +"for i in range(10):\n" +" T = threading.Thread(target=thread_task, args=(str(i), i))\n" +" T.start()\n" +"\n" +"time.sleep(10) # <---------------------------!" +msgstr "" + +#: ../../faq/library.rst:265 +msgid "" +"But now (on many platforms) the threads don't run in parallel, but appear to " +"run sequentially, one at a time! The reason is that the OS thread scheduler " +"doesn't start a new thread until the previous thread is blocked." +msgstr "" + +#: ../../faq/library.rst:269 +msgid "A simple fix is to add a tiny sleep to the start of the run function::" +msgstr "" + +#: ../../faq/library.rst:271 +msgid "" +"def thread_task(name, n):\n" +" time.sleep(0.001) # <--------------------!\n" +" for i in range(n):\n" +" print(name, i)\n" +"\n" +"for i in range(10):\n" +" T = threading.Thread(target=thread_task, args=(str(i), i))\n" +" T.start()\n" +"\n" +"time.sleep(10)" +msgstr "" + +#: ../../faq/library.rst:282 +msgid "" +"Instead of trying to guess a good delay value for :func:`time.sleep`, it's " +"better to use some kind of semaphore mechanism. One idea is to use " +"the :mod:`queue` module to create a queue object, let each thread append a " +"token to the queue when it finishes, and let the main thread read as many " +"tokens from the queue as there are threads." +msgstr "" + +#: ../../faq/library.rst:290 +msgid "How do I parcel out work among a bunch of worker threads?" +msgstr "" + +#: ../../faq/library.rst:292 +msgid "" +"The easiest way is to use the :mod:`concurrent.futures` module, especially " +"the :mod:`~concurrent.futures.ThreadPoolExecutor` class." +msgstr "" + +#: ../../faq/library.rst:295 +msgid "" +"Or, if you want fine control over the dispatching algorithm, you can write " +"your own logic manually. Use the :mod:`queue` module to create a queue " +"containing a list of jobs. The :class:`~queue.Queue` class maintains a list " +"of objects and has a ``.put(obj)`` method that adds items to the queue and a " +"``.get()`` method to return them. The class will take care of the locking " +"necessary to ensure that each job is handed out exactly once." +msgstr "" + +#: ../../faq/library.rst:302 +msgid "Here's a trivial example::" +msgstr "" + +#: ../../faq/library.rst:304 +msgid "" +"import threading, queue, time\n" +"\n" +"# The worker thread gets jobs off the queue. When the queue is empty, it\n" +"# assumes there will be no more work and exits.\n" +"# (Realistically workers will run until terminated.)\n" +"def worker():\n" +" print('Running worker')\n" +" time.sleep(0.1)\n" +" while True:\n" +" try:\n" +" arg = q.get(block=False)\n" +" except queue.Empty:\n" +" print('Worker', threading.current_thread(), end=' ')\n" +" print('queue empty')\n" +" break\n" +" else:\n" +" print('Worker', threading.current_thread(), end=' ')\n" +" print('running with argument', arg)\n" +" time.sleep(0.5)\n" +"\n" +"# Create queue\n" +"q = queue.Queue()\n" +"\n" +"# Start a pool of 5 workers\n" +"for i in range(5):\n" +" t = threading.Thread(target=worker, name='worker %i' % (i+1))\n" +" t.start()\n" +"\n" +"# Begin adding work to the queue\n" +"for i in range(50):\n" +" q.put(i)\n" +"\n" +"# Give threads time to run\n" +"print('Main thread sleeping')\n" +"time.sleep(5)" +msgstr "" + +#: ../../faq/library.rst:340 +msgid "When run, this will produce the following output:" +msgstr "" + +#: ../../faq/library.rst:342 +msgid "" +"Running worker\n" +"Running worker\n" +"Running worker\n" +"Running worker\n" +"Running worker\n" +"Main thread sleeping\n" +"Worker running with argument 0\n" +"Worker running with argument 1\n" +"Worker running with argument 2\n" +"Worker running with argument 3\n" +"Worker running with argument 4\n" +"Worker running with argument 5\n" +"..." +msgstr "" + +#: ../../faq/library.rst:358 +msgid "" +"Consult the module's documentation for more details; " +"the :class:`~queue.Queue` class provides a featureful interface." +msgstr "" + +#: ../../faq/library.rst:363 +msgid "What kinds of global value mutation are thread-safe?" +msgstr "" + +#: ../../faq/library.rst:365 +msgid "" +"A :term:`global interpreter lock` (GIL) is used internally to ensure that " +"only one thread runs in the Python VM at a time. In general, Python offers " +"to switch among threads only between bytecode instructions; how frequently " +"it switches can be set via :func:`sys.setswitchinterval`. Each bytecode " +"instruction and therefore all the C implementation code reached from each " +"instruction is therefore atomic from the point of view of a Python program." +msgstr "" + +#: ../../faq/library.rst:372 +msgid "" +"In theory, this means an exact accounting requires an exact understanding of " +"the PVM bytecode implementation. In practice, it means that operations on " +"shared variables of built-in data types (ints, lists, dicts, etc) that " +"\"look atomic\" really are." +msgstr "" + +#: ../../faq/library.rst:377 +msgid "" +"For example, the following operations are all atomic (L, L1, L2 are lists, " +"D, D1, D2 are dicts, x, y are objects, i, j are ints)::" +msgstr "" + +#: ../../faq/library.rst:380 +msgid "" +"L.append(x)\n" +"L1.extend(L2)\n" +"x = L[i]\n" +"x = L.pop()\n" +"L1[i:j] = L2\n" +"L.sort()\n" +"x = y\n" +"x.field = y\n" +"D[x] = y\n" +"D1.update(D2)\n" +"D.keys()" +msgstr "" + +#: ../../faq/library.rst:392 +msgid "These aren't::" +msgstr "" + +#: ../../faq/library.rst:394 +msgid "" +"i = i+1\n" +"L.append(L[-1])\n" +"L[i] = L[j]\n" +"D[x] = D[x] + 1" +msgstr "" + +#: ../../faq/library.rst:399 +msgid "" +"Operations that replace other objects may invoke those other " +"objects' :meth:`~object.__del__` method when their reference count reaches " +"zero, and that can affect things. This is especially true for the mass " +"updates to dictionaries and lists. When in doubt, use a mutex!" +msgstr "" + +#: ../../faq/library.rst:406 +msgid "Can't we get rid of the Global Interpreter Lock?" +msgstr "" + +#: ../../faq/library.rst:408 +msgid "" +"The :term:`global interpreter lock` (GIL) is often seen as a hindrance to " +"Python's deployment on high-end multiprocessor server machines, because a " +"multi-threaded Python program effectively only uses one CPU, due to the " +"insistence that (almost) all Python code can only run while the GIL is held." +msgstr "" + +#: ../../faq/library.rst:413 +msgid "" +"With the approval of :pep:`703` work is now underway to remove the GIL from " +"the CPython implementation of Python. Initially it will be implemented as " +"an optional compiler flag when building the interpreter, and so separate " +"builds will be available with and without the GIL. Long-term, the hope is " +"to settle on a single build, once the performance implications of removing " +"the GIL are fully understood. Python 3.13 is likely to be the first release " +"containing this work, although it may not be completely functional in this " +"release." +msgstr "" + +#: ../../faq/library.rst:422 +msgid "" +"The current work to remove the GIL is based on a `fork of Python 3.9 with " +"the GIL removed `_ by Sam Gross. Prior " +"to that, in the days of Python 1.5, Greg Stein actually implemented a " +"comprehensive patch set (the \"free threading\" patches) that removed the " +"GIL and replaced it with fine-grained locking. Adam Olsen did a similar " +"experiment in his `python-safethread `_ project. Unfortunately, both of these earlier " +"experiments exhibited a sharp drop in single-thread performance (at least " +"30% slower), due to the amount of fine-grained locking necessary to " +"compensate for the removal of the GIL. The Python 3.9 fork is the first " +"attempt at removing the GIL with an acceptable performance impact." +msgstr "" + +#: ../../faq/library.rst:437 +msgid "" +"The presence of the GIL in current Python releases doesn't mean that you " +"can't make good use of Python on multi-CPU machines! You just have to be " +"creative with dividing the work up between multiple *processes* rather than " +"multiple *threads*. The :class:`~concurrent.futures.ProcessPoolExecutor` " +"class in the new :mod:`concurrent.futures` module provides an easy way of " +"doing so; the :mod:`multiprocessing` module provides a lower-level API in " +"case you want more control over dispatching of tasks." +msgstr "" + +#: ../../faq/library.rst:446 +msgid "" +"Judicious use of C extensions will also help; if you use a C extension to " +"perform a time-consuming task, the extension can release the GIL while the " +"thread of execution is in the C code and allow other threads to get some " +"work done. Some standard library modules such as :mod:`zlib` " +"and :mod:`hashlib` already do this." +msgstr "" + +#: ../../faq/library.rst:452 +msgid "" +"An alternative approach to reducing the impact of the GIL is to make the GIL " +"a per-interpreter-state lock rather than truly global. This was :ref:`first " +"implemented in Python 3.12 ` and is available in the C " +"API. A Python interface to it is expected in Python 3.13. The main " +"limitation to it at the moment is likely to be 3rd party extension modules, " +"since these must be written with multiple interpreters in mind in order to " +"be usable, so many older extension modules will not be usable." +msgstr "" + +#: ../../faq/library.rst:462 +msgid "Input and Output" +msgstr "Bemenet és kimenet" + +#: ../../faq/library.rst:465 +msgid "How do I delete a file? (And other file questions...)" +msgstr "" + +#: ../../faq/library.rst:467 +msgid "" +"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, " +"see the :mod:`os` module. The two functions are " +"identical; :func:`~os.unlink` is simply the name of the Unix system call for " +"this function." +msgstr "" + +#: ../../faq/library.rst:471 +msgid "" +"To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create " +"one. ``os.makedirs(path)`` will create any intermediate directories in " +"``path`` that don't exist. ``os.removedirs(path)`` will remove intermediate " +"directories as long as they're empty; if you want to delete an entire " +"directory tree and its contents, use :func:`shutil.rmtree`." +msgstr "" + +#: ../../faq/library.rst:477 +msgid "To rename a file, use ``os.rename(old_path, new_path)``." +msgstr "" + +#: ../../faq/library.rst:479 +msgid "" +"To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use " +"``f.truncate(offset)``; offset defaults to the current seek position. " +"There's also ``os.ftruncate(fd, offset)`` for files opened " +"with :func:`os.open`, where *fd* is the file descriptor (a small integer)." +msgstr "" + +#: ../../faq/library.rst:484 +msgid "" +"The :mod:`shutil` module also contains a number of functions to work on " +"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, " +"and :func:`~shutil.rmtree`." +msgstr "" + +#: ../../faq/library.rst:490 +msgid "How do I copy a file?" +msgstr "" + +#: ../../faq/library.rst:492 +msgid "" +"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " +"that on Windows NTFS volumes, it does not copy `alternate data streams " +"`_ nor " +"`resource forks `__ on macOS " +"HFS+ volumes, though both are now rarely used. It also doesn't copy file " +"permissions and metadata, though using :func:`shutil.copy2` instead will " +"preserve most (though not all) of it." +msgstr "" + +#: ../../faq/library.rst:503 +msgid "How do I read (or write) binary data?" +msgstr "" + +#: ../../faq/library.rst:505 +msgid "" +"To read or write complex binary data formats, it's best to use " +"the :mod:`struct` module. It allows you to take a string containing binary " +"data (usually numbers) and convert it to Python objects; and vice versa." +msgstr "" + +#: ../../faq/library.rst:509 +msgid "" +"For example, the following code reads two 2-byte integers and one 4-byte " +"integer in big-endian format from a file::" +msgstr "" + +#: ../../faq/library.rst:512 +msgid "" +"import struct\n" +"\n" +"with open(filename, \"rb\") as f:\n" +" s = f.read(8)\n" +" x, y, z = struct.unpack(\">hhl\", s)" +msgstr "" + +#: ../../faq/library.rst:518 +msgid "" +"The '>' in the format string forces big-endian data; the letter 'h' reads " +"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " +"bytes) from the string." +msgstr "" + +#: ../../faq/library.rst:522 +msgid "" +"For data that is more regular (e.g. a homogeneous list of ints or floats), " +"you can also use the :mod:`array` module." +msgstr "" + +#: ../../faq/library.rst:527 +msgid "" +"To read and write binary data, it is mandatory to open the file in binary " +"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` " +"instead (the default), the file will be open in text mode and ``f.read()`` " +"will return :class:`str` objects rather than :class:`bytes` objects." +msgstr "" + +#: ../../faq/library.rst:535 +msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" +msgstr "" + +#: ../../faq/library.rst:537 +msgid "" +":func:`os.read` is a low-level function which takes a file descriptor, a " +"small integer representing the opened file. :func:`os.popen` creates a high-" +"level file object, the same type returned by the built-in :func:`open` " +"function. Thus, to read *n* bytes from a pipe *p* created " +"with :func:`os.popen`, you need to use ``p.read(n)``." +msgstr "" + +#: ../../faq/library.rst:545 +msgid "How do I access the serial (RS232) port?" +msgstr "" + +#: ../../faq/library.rst:547 +msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:" +msgstr "" + +#: ../../faq/library.rst:549 +msgid ":pypi:`pyserial`" +msgstr "" + +#: ../../faq/library.rst:551 +msgid "For Unix, see a Usenet post by Mitch Chapman:" +msgstr "" + +#: ../../faq/library.rst:553 +msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" +msgstr "" + +#: ../../faq/library.rst:557 +msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" +msgstr "" + +#: ../../faq/library.rst:559 +msgid "" +"Python :term:`file objects ` are a high-level layer of " +"abstraction on low-level C file descriptors." +msgstr "" + +#: ../../faq/library.rst:562 +msgid "" +"For most file objects you create in Python via the built-in :func:`open` " +"function, ``f.close()`` marks the Python file object as being closed from " +"Python's point of view, and also arranges to close the underlying C file " +"descriptor. This also happens automatically in ``f``'s destructor, when " +"``f`` becomes garbage." +msgstr "" + +#: ../../faq/library.rst:568 +msgid "" +"But stdin, stdout and stderr are treated specially by Python, because of the " +"special status also given to them by C. Running ``sys.stdout.close()`` " +"marks the Python-level file object as being closed, but does *not* close the " +"associated C file descriptor." +msgstr "" + +#: ../../faq/library.rst:573 +msgid "" +"To close the underlying C file descriptor for one of these three, you should " +"first be sure that's what you really want to do (e.g., you may confuse " +"extension modules trying to do I/O). If it is, use :func:`os.close`::" +msgstr "" + +#: ../../faq/library.rst:577 +msgid "" +"os.close(stdin.fileno())\n" +"os.close(stdout.fileno())\n" +"os.close(stderr.fileno())" +msgstr "" + +#: ../../faq/library.rst:581 +msgid "Or you can use the numeric constants 0, 1 and 2, respectively." +msgstr "" + +#: ../../faq/library.rst:585 +msgid "Network/Internet Programming" +msgstr "" + +#: ../../faq/library.rst:588 +msgid "What WWW tools are there for Python?" +msgstr "" + +#: ../../faq/library.rst:590 +msgid "" +"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library " +"Reference Manual. Python has many modules that will help you build server-" +"side and client-side web systems." +msgstr "" + +#: ../../faq/library.rst:596 +msgid "" +"A summary of available frameworks is maintained by Paul Boddie at https://" +"wiki.python.org/moin/WebProgramming\\ ." +msgstr "" + +#: ../../faq/library.rst:601 +msgid "What module should I use to help with generating HTML?" +msgstr "" + +#: ../../faq/library.rst:605 +msgid "" +"You can find a collection of useful links on the `Web Programming wiki page " +"`_." +msgstr "" + +#: ../../faq/library.rst:610 +msgid "How do I send mail from a Python script?" +msgstr "" + +#: ../../faq/library.rst:612 +msgid "Use the standard library module :mod:`smtplib`." +msgstr "" + +#: ../../faq/library.rst:614 +msgid "" +"Here's a very simple interactive mail sender that uses it. This method will " +"work on any host that supports an SMTP listener. ::" +msgstr "" + +#: ../../faq/library.rst:617 +msgid "" +"import sys, smtplib\n" +"\n" +"fromaddr = input(\"From: \")\n" +"toaddrs = input(\"To: \").split(',')\n" +"print(\"Enter message, end with ^D:\")\n" +"msg = ''\n" +"while True:\n" +" line = sys.stdin.readline()\n" +" if not line:\n" +" break\n" +" msg += line\n" +"\n" +"# The actual mail send\n" +"server = smtplib.SMTP('localhost')\n" +"server.sendmail(fromaddr, toaddrs, msg)\n" +"server.quit()" +msgstr "" + +#: ../../faq/library.rst:634 +msgid "" +"A Unix-only alternative uses sendmail. The location of the sendmail program " +"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/" +"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " +"some sample code::" +msgstr "" + +#: ../../faq/library.rst:639 +msgid "" +"import os\n" +"\n" +"SENDMAIL = \"/usr/sbin/sendmail\" # sendmail location\n" +"p = os.popen(\"%s -t -i\" % SENDMAIL, \"w\")\n" +"p.write(\"To: receiver@example.com\\n\")\n" +"p.write(\"Subject: test\\n\")\n" +"p.write(\"\\n\") # blank line separating headers from body\n" +"p.write(\"Some text\\n\")\n" +"p.write(\"some more text\\n\")\n" +"sts = p.close()\n" +"if sts != 0:\n" +" print(\"Sendmail exit status\", sts)" +msgstr "" + +#: ../../faq/library.rst:654 +msgid "How do I avoid blocking in the connect() method of a socket?" +msgstr "" + +#: ../../faq/library.rst:656 +msgid "" +"The :mod:`select` module is commonly used to help with asynchronous I/O on " +"sockets." +msgstr "" + +#: ../../faq/library.rst:659 +msgid "" +"To prevent the TCP connect from blocking, you can set the socket to non-" +"blocking mode. Then when you do the :meth:`~socket.socket.connect`, you " +"will either connect immediately (unlikely) or get an exception that contains " +"the error number as ``.errno``. ``errno.EINPROGRESS`` indicates that the " +"connection is in progress, but hasn't finished yet. Different OSes will " +"return different values, so you're going to have to check what's returned on " +"your system." +msgstr "" + +#: ../../faq/library.rst:667 +msgid "" +"You can use the :meth:`~socket.socket.connect_ex` method to avoid creating " +"an exception. It will just return the errno value. To poll, you can " +"call :meth:`~socket.socket.connect_ex` again later -- ``0`` or " +"``errno.EISCONN`` indicate that you're connected -- or you can pass this " +"socket to :meth:`select.select` to check if it's writable." +msgstr "" + +#: ../../faq/library.rst:675 +msgid "" +"The :mod:`asyncio` module provides a general purpose single-threaded and " +"concurrent asynchronous library, which can be used for writing non-blocking " +"network code. The third-party `Twisted `_ library is a " +"popular and feature-rich alternative." +msgstr "" + +#: ../../faq/library.rst:683 +msgid "Databases" +msgstr "" + +#: ../../faq/library.rst:686 +msgid "Are there any interfaces to database packages in Python?" +msgstr "" + +#: ../../faq/library.rst:688 +msgid "Yes." +msgstr "" + +#: ../../faq/library.rst:690 +msgid "" +"Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " +"` are also included with standard Python. There is also " +"the :mod:`sqlite3` module, which provides a lightweight disk-based " +"relational database." +msgstr "" + +#: ../../faq/library.rst:695 +msgid "" +"Support for most relational databases is available. See the " +"`DatabaseProgramming wiki page `_ for details." +msgstr "" + +#: ../../faq/library.rst:701 +msgid "How do you implement persistent objects in Python?" +msgstr "" + +#: ../../faq/library.rst:703 +msgid "" +"The :mod:`pickle` library module solves this in a very general way (though " +"you still can't store things like open files, sockets or windows), and " +"the :mod:`shelve` library module uses pickle and (g)dbm to create persistent " +"mappings containing arbitrary Python objects." +msgstr "" + +#: ../../faq/library.rst:710 +msgid "Mathematics and Numerics" +msgstr "" + +#: ../../faq/library.rst:713 +msgid "How do I generate random numbers in Python?" +msgstr "" + +#: ../../faq/library.rst:715 +msgid "" +"The standard module :mod:`random` implements a random number generator. " +"Usage is simple::" +msgstr "" + +#: ../../faq/library.rst:718 +msgid "" +"import random\n" +"random.random()" +msgstr "" + +#: ../../faq/library.rst:721 +msgid "This returns a random floating-point number in the range [0, 1)." +msgstr "" + +#: ../../faq/library.rst:723 +msgid "" +"There are also many other specialized generators in this module, such as:" +msgstr "" + +#: ../../faq/library.rst:725 +msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." +msgstr "" + +#: ../../faq/library.rst:726 +msgid "``uniform(a, b)`` chooses a floating-point number in the range [a, b)." +msgstr "" + +#: ../../faq/library.rst:727 +msgid "" +"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." +msgstr "" + +#: ../../faq/library.rst:729 +msgid "Some higher-level functions operate on sequences directly, such as:" +msgstr "" + +#: ../../faq/library.rst:731 +msgid "``choice(S)`` chooses a random element from a given sequence." +msgstr "" + +#: ../../faq/library.rst:732 +msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly." +msgstr "" + +#: ../../faq/library.rst:734 +msgid "" +"There's also a ``Random`` class you can instantiate to create independent " +"multiple random number generators." +msgstr "" diff --git a/faq/programming.po b/faq/programming.po new file mode 100644 index 0000000..6edd178 --- /dev/null +++ b/faq/programming.po @@ -0,0 +1,3430 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/programming.rst:5 +msgid "Programming FAQ" +msgstr "" + +#: ../../faq/programming.rst:8 +msgid "Contents" +msgstr "" + +#: ../../faq/programming.rst:12 +msgid "General Questions" +msgstr "" + +#: ../../faq/programming.rst:15 +msgid "" +"Is there a source code level debugger with breakpoints, single-stepping, " +"etc.?" +msgstr "" + +#: ../../faq/programming.rst:17 ../../faq/programming.rst:58 +msgid "Yes." +msgstr "" + +#: ../../faq/programming.rst:19 +msgid "" +"Several debuggers for Python are described below, and the built-in " +"function :func:`breakpoint` allows you to drop into any of them." +msgstr "" + +#: ../../faq/programming.rst:22 +msgid "" +"The pdb module is a simple but adequate console-mode debugger for Python. It " +"is part of the standard Python library, and is :mod:`documented in the " +"Library Reference Manual `. You can also write your own debugger by " +"using the code for pdb as an example." +msgstr "" + +#: ../../faq/programming.rst:27 +msgid "" +"The IDLE interactive development environment, which is part of the standard " +"Python distribution (normally available as `Tools/scripts/idle3 `_), includes a " +"graphical debugger." +msgstr "" + +#: ../../faq/programming.rst:32 +msgid "" +"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " +"PythonWin debugger colors breakpoints and has quite a few cool features such " +"as debugging non-PythonWin programs. PythonWin is available as part of " +"`pywin32 `_ project and as a part of " +"the `ActivePython `_ " +"distribution." +msgstr "" + +#: ../../faq/programming.rst:39 +msgid "" +"`Eric `_ is an IDE built on PyQt and " +"the Scintilla editing component." +msgstr "" + +#: ../../faq/programming.rst:42 +msgid "" +"`trepan3k `_ is a gdb-like " +"debugger." +msgstr "" + +#: ../../faq/programming.rst:44 +msgid "" +"`Visual Studio Code `_ is an IDE with " +"debugging tools that integrates with version-control software." +msgstr "" + +#: ../../faq/programming.rst:47 +msgid "" +"There are a number of commercial Python IDEs that include graphical " +"debuggers. They include:" +msgstr "" + +#: ../../faq/programming.rst:50 +msgid "`Wing IDE `_" +msgstr "" + +#: ../../faq/programming.rst:51 +msgid "`Komodo IDE `_" +msgstr "" + +#: ../../faq/programming.rst:52 +msgid "`PyCharm `_" +msgstr "" + +#: ../../faq/programming.rst:56 +msgid "Are there tools to help find bugs or perform static analysis?" +msgstr "" + +#: ../../faq/programming.rst:60 +msgid "" +"`Pylint `_ and `Pyflakes " +"`_ do basic checking that will help you " +"catch bugs sooner." +msgstr "" + +#: ../../faq/programming.rst:64 +msgid "" +"Static type checkers such as `Mypy `_, `Pyre " +"`_, and `Pytype `_ can check type hints in Python source code." +msgstr "" + +#: ../../faq/programming.rst:73 +msgid "How can I create a stand-alone binary from a Python script?" +msgstr "" + +#: ../../faq/programming.rst:75 +msgid "" +"You don't need the ability to compile Python to C code if all you want is a " +"stand-alone program that users can download and run without having to " +"install the Python distribution first. There are a number of tools that " +"determine the set of modules required by a program and bind these modules " +"together with a Python binary to produce a single executable." +msgstr "" + +#: ../../faq/programming.rst:81 +msgid "" +"One is to use the freeze tool, which is included in the Python source tree " +"as `Tools/freeze `_. It converts Python byte code to C arrays; with a C compiler you " +"can embed all your modules into a new program, which is then linked with the " +"standard Python modules." +msgstr "" + +#: ../../faq/programming.rst:87 +msgid "" +"It works by scanning your source recursively for import statements (in both " +"forms) and looking for the modules in the standard Python path as well as in " +"the source directory (for built-in modules). It then turns the bytecode for " +"modules written in Python into C code (array initializers that can be turned " +"into code objects using the marshal module) and creates a custom-made config " +"file that only contains those built-in modules which are actually used in " +"the program. It then compiles the generated C code and links it with the " +"rest of the Python interpreter to form a self-contained binary which acts " +"exactly like your script." +msgstr "" + +#: ../../faq/programming.rst:96 +msgid "" +"The following packages can help with the creation of console and GUI " +"executables:" +msgstr "" + +#: ../../faq/programming.rst:99 +msgid "`Nuitka `_ (Cross-platform)" +msgstr "" + +#: ../../faq/programming.rst:100 +msgid "`PyInstaller `_ (Cross-platform)" +msgstr "" + +#: ../../faq/programming.rst:101 +msgid "" +"`PyOxidizer `_ (Cross-platform)" +msgstr "" + +#: ../../faq/programming.rst:102 +msgid "" +"`cx_Freeze `_ (Cross-platform)" +msgstr "" + +#: ../../faq/programming.rst:103 +msgid "`py2app `_ (macOS only)" +msgstr "" + +#: ../../faq/programming.rst:104 +msgid "`py2exe `_ (Windows only)" +msgstr "" + +#: ../../faq/programming.rst:107 +msgid "Are there coding standards or a style guide for Python programs?" +msgstr "" + +#: ../../faq/programming.rst:109 +msgid "" +"Yes. The coding style required for standard library modules is documented " +"as :pep:`8`." +msgstr "" + +#: ../../faq/programming.rst:114 +msgid "Core Language" +msgstr "" + +#: ../../faq/programming.rst:119 +msgid "Why am I getting an UnboundLocalError when the variable has a value?" +msgstr "" + +#: ../../faq/programming.rst:121 +msgid "" +"It can be a surprise to get the :exc:`UnboundLocalError` in previously " +"working code when it is modified by adding an assignment statement somewhere " +"in the body of a function." +msgstr "" + +#: ../../faq/programming.rst:125 +msgid "This code:" +msgstr "" + +#: ../../faq/programming.rst:134 +msgid "works, but this code:" +msgstr "" + +#: ../../faq/programming.rst:141 +msgid "results in an :exc:`!UnboundLocalError`:" +msgstr "" + +#: ../../faq/programming.rst:148 +msgid "" +"This is because when you make an assignment to a variable in a scope, that " +"variable becomes local to that scope and shadows any similarly named " +"variable in the outer scope. Since the last statement in foo assigns a new " +"value to ``x``, the compiler recognizes it as a local variable. " +"Consequently when the earlier ``print(x)`` attempts to print the " +"uninitialized local variable and an error results." +msgstr "" + +#: ../../faq/programming.rst:155 +msgid "" +"In the example above you can access the outer scope variable by declaring it " +"global:" +msgstr "" + +#: ../../faq/programming.rst:167 +msgid "" +"This explicit declaration is required in order to remind you that (unlike " +"the superficially analogous situation with class and instance variables) you " +"are actually modifying the value of the variable in the outer scope:" +msgstr "" + +#: ../../faq/programming.rst:174 +msgid "" +"You can do a similar thing in a nested scope using the :keyword:`nonlocal` " +"keyword:" +msgstr "" + +#: ../../faq/programming.rst:192 +msgid "What are the rules for local and global variables in Python?" +msgstr "" + +#: ../../faq/programming.rst:194 +msgid "" +"In Python, variables that are only referenced inside a function are " +"implicitly global. If a variable is assigned a value anywhere within the " +"function's body, it's assumed to be a local unless explicitly declared as " +"global." +msgstr "" + +#: ../../faq/programming.rst:198 +msgid "" +"Though a bit surprising at first, a moment's consideration explains this. " +"On one hand, requiring :keyword:`global` for assigned variables provides a " +"bar against unintended side-effects. On the other hand, if ``global`` was " +"required for all global references, you'd be using ``global`` all the time. " +"You'd have to declare as global every reference to a built-in function or to " +"a component of an imported module. This clutter would defeat the usefulness " +"of the ``global`` declaration for identifying side-effects." +msgstr "" + +#: ../../faq/programming.rst:208 +msgid "" +"Why do lambdas defined in a loop with different values all return the same " +"result?" +msgstr "" + +#: ../../faq/programming.rst:210 +msgid "" +"Assume you use a for loop to define a few different lambdas (or even plain " +"functions), e.g.::" +msgstr "" + +#: ../../faq/programming.rst:213 +msgid "" +">>> squares = []\n" +">>> for x in range(5):\n" +"... squares.append(lambda: x**2)" +msgstr "" + +#: ../../faq/programming.rst:217 +msgid "" +"This gives you a list that contains 5 lambdas that calculate ``x**2``. You " +"might expect that, when called, they would return, respectively, ``0``, " +"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " +"see that they all return ``16``::" +msgstr "" + +#: ../../faq/programming.rst:222 +msgid "" +">>> squares[2]()\n" +"16\n" +">>> squares[4]()\n" +"16" +msgstr "" + +#: ../../faq/programming.rst:227 +msgid "" +"This happens because ``x`` is not local to the lambdas, but is defined in " +"the outer scope, and it is accessed when the lambda is called --- not when " +"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " +"the functions now return ``4**2``, i.e. ``16``. You can also verify this by " +"changing the value of ``x`` and see how the results of the lambdas change::" +msgstr "" + +#: ../../faq/programming.rst:233 +msgid "" +">>> x = 8\n" +">>> squares[2]()\n" +"64" +msgstr "" + +#: ../../faq/programming.rst:237 +msgid "" +"In order to avoid this, you need to save the values in variables local to " +"the lambdas, so that they don't rely on the value of the global ``x``::" +msgstr "" + +#: ../../faq/programming.rst:240 +msgid "" +">>> squares = []\n" +">>> for x in range(5):\n" +"... squares.append(lambda n=x: n**2)" +msgstr "" + +#: ../../faq/programming.rst:244 +msgid "" +"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " +"when the lambda is defined so that it has the same value that ``x`` had at " +"that point in the loop. This means that the value of ``n`` will be ``0`` in " +"the first lambda, ``1`` in the second, ``2`` in the third, and so on. " +"Therefore each lambda will now return the correct result::" +msgstr "" + +#: ../../faq/programming.rst:250 +msgid "" +">>> squares[2]()\n" +"4\n" +">>> squares[4]()\n" +"16" +msgstr "" + +#: ../../faq/programming.rst:255 +msgid "" +"Note that this behaviour is not peculiar to lambdas, but applies to regular " +"functions too." +msgstr "" + +#: ../../faq/programming.rst:260 +msgid "How do I share global variables across modules?" +msgstr "" + +#: ../../faq/programming.rst:262 +msgid "" +"The canonical way to share information across modules within a single " +"program is to create a special module (often called config or cfg). Just " +"import the config module in all modules of your application; the module then " +"becomes available as a global name. Because there is only one instance of " +"each module, any changes made to the module object get reflected " +"everywhere. For example:" +msgstr "" + +#: ../../faq/programming.rst:268 +msgid "config.py::" +msgstr "" + +#: ../../faq/programming.rst:270 +msgid "x = 0 # Default value of the 'x' configuration setting" +msgstr "" + +#: ../../faq/programming.rst:272 +msgid "mod.py::" +msgstr "" + +#: ../../faq/programming.rst:274 +msgid "" +"import config\n" +"config.x = 1" +msgstr "" + +#: ../../faq/programming.rst:277 +msgid "main.py::" +msgstr "" + +#: ../../faq/programming.rst:279 +msgid "" +"import config\n" +"import mod\n" +"print(config.x)" +msgstr "" + +#: ../../faq/programming.rst:283 +msgid "" +"Note that using a module is also the basis for implementing the singleton " +"design pattern, for the same reason." +msgstr "" + +#: ../../faq/programming.rst:288 +msgid "What are the \"best practices\" for using import in a module?" +msgstr "" + +#: ../../faq/programming.rst:290 +msgid "" +"In general, don't use ``from modulename import *``. Doing so clutters the " +"importer's namespace, and makes it much harder for linters to detect " +"undefined names." +msgstr "" + +#: ../../faq/programming.rst:294 +msgid "" +"Import modules at the top of a file. Doing so makes it clear what other " +"modules your code requires and avoids questions of whether the module name " +"is in scope. Using one import per line makes it easy to add and delete " +"module imports, but using multiple imports per line uses less screen space." +msgstr "" + +#: ../../faq/programming.rst:299 +msgid "It's good practice if you import modules in the following order:" +msgstr "" + +#: ../../faq/programming.rst:301 +msgid "" +"standard library modules -- " +"e.g. :mod:`sys`, :mod:`os`, :mod:`argparse`, :mod:`re`" +msgstr "" + +#: ../../faq/programming.rst:302 +msgid "" +"third-party library modules (anything installed in Python's site-packages " +"directory) -- e.g. :mod:`!dateutil`, :mod:`!requests`, :mod:`!PIL.Image`" +msgstr "" + +#: ../../faq/programming.rst:304 +msgid "locally developed modules" +msgstr "" + +#: ../../faq/programming.rst:306 +msgid "" +"It is sometimes necessary to move imports to a function or class to avoid " +"problems with circular imports. Gordon McMillan says:" +msgstr "" + +#: ../../faq/programming.rst:309 +msgid "" +"Circular imports are fine where both modules use the \"import \" " +"form of import. They fail when the 2nd module wants to grab a name out of " +"the first (\"from module import name\") and the import is at the top level. " +"That's because names in the 1st are not yet available, because the first " +"module is busy importing the 2nd." +msgstr "" + +#: ../../faq/programming.rst:315 +msgid "" +"In this case, if the second module is only used in one function, then the " +"import can easily be moved into that function. By the time the import is " +"called, the first module will have finished initializing, and the second " +"module can do its import." +msgstr "" + +#: ../../faq/programming.rst:320 +msgid "" +"It may also be necessary to move imports out of the top level of code if " +"some of the modules are platform-specific. In that case, it may not even be " +"possible to import all of the modules at the top of the file. In this case, " +"importing the correct modules in the corresponding platform-specific code is " +"a good option." +msgstr "" + +#: ../../faq/programming.rst:325 +msgid "" +"Only move imports into a local scope, such as inside a function definition, " +"if it's necessary to solve a problem such as avoiding a circular import or " +"are trying to reduce the initialization time of a module. This technique is " +"especially helpful if many of the imports are unnecessary depending on how " +"the program executes. You may also want to move imports into a function if " +"the modules are only ever used in that function. Note that loading a module " +"the first time may be expensive because of the one time initialization of " +"the module, but loading a module multiple times is virtually free, costing " +"only a couple of dictionary lookups. Even if the module name has gone out " +"of scope, the module is probably available in :data:`sys.modules`." +msgstr "" + +#: ../../faq/programming.rst:338 +msgid "Why are default values shared between objects?" +msgstr "" + +#: ../../faq/programming.rst:340 +msgid "" +"This type of bug commonly bites neophyte programmers. Consider this " +"function::" +msgstr "" + +#: ../../faq/programming.rst:342 +msgid "" +"def foo(mydict={}): # Danger: shared reference to one dict for all calls\n" +" ... compute something ...\n" +" mydict[key] = value\n" +" return mydict" +msgstr "" + +#: ../../faq/programming.rst:347 +msgid "" +"The first time you call this function, ``mydict`` contains a single item. " +"The second time, ``mydict`` contains two items because when ``foo()`` begins " +"executing, ``mydict`` starts out with an item already in it." +msgstr "" + +#: ../../faq/programming.rst:351 +msgid "" +"It is often expected that a function call creates new objects for default " +"values. This is not what happens. Default values are created exactly once, " +"when the function is defined. If that object is changed, like the " +"dictionary in this example, subsequent calls to the function will refer to " +"this changed object." +msgstr "" + +#: ../../faq/programming.rst:356 +msgid "" +"By definition, immutable objects such as numbers, strings, tuples, and " +"``None``, are safe from change. Changes to mutable objects such as " +"dictionaries, lists, and class instances can lead to confusion." +msgstr "" + +#: ../../faq/programming.rst:360 +msgid "" +"Because of this feature, it is good programming practice to not use mutable " +"objects as default values. Instead, use ``None`` as the default value and " +"inside the function, check if the parameter is ``None`` and create a new " +"list/dictionary/whatever if it is. For example, don't write::" +msgstr "" + +#: ../../faq/programming.rst:365 +msgid "" +"def foo(mydict={}):\n" +" ..." +msgstr "" + +#: ../../faq/programming.rst:368 +msgid "but::" +msgstr "" + +#: ../../faq/programming.rst:370 +msgid "" +"def foo(mydict=None):\n" +" if mydict is None:\n" +" mydict = {} # create a new dict for local namespace" +msgstr "" + +#: ../../faq/programming.rst:374 +msgid "" +"This feature can be useful. When you have a function that's time-consuming " +"to compute, a common technique is to cache the parameters and the resulting " +"value of each call to the function, and return the cached value if the same " +"value is requested again. This is called \"memoizing\", and can be " +"implemented like this::" +msgstr "" + +#: ../../faq/programming.rst:379 +msgid "" +"# Callers can only provide two parameters and optionally pass _cache by " +"keyword\n" +"def expensive(arg1, arg2, *, _cache={}):\n" +" if (arg1, arg2) in _cache:\n" +" return _cache[(arg1, arg2)]\n" +"\n" +" # Calculate the value\n" +" result = ... expensive computation ...\n" +" _cache[(arg1, arg2)] = result # Store result in the cache\n" +" return result" +msgstr "" + +#: ../../faq/programming.rst:389 +msgid "" +"You could use a global variable containing a dictionary instead of the " +"default value; it's a matter of taste." +msgstr "" + +#: ../../faq/programming.rst:394 +msgid "" +"How can I pass optional or keyword parameters from one function to another?" +msgstr "" + +#: ../../faq/programming.rst:396 +msgid "" +"Collect the arguments using the ``*`` and ``**`` specifiers in the " +"function's parameter list; this gives you the positional arguments as a " +"tuple and the keyword arguments as a dictionary. You can then pass these " +"arguments when calling another function by using ``*`` and ``**``::" +msgstr "" + +#: ../../faq/programming.rst:401 +msgid "" +"def f(x, *args, **kwargs):\n" +" ...\n" +" kwargs['width'] = '14.3c'\n" +" ...\n" +" g(x, *args, **kwargs)" +msgstr "" + +#: ../../faq/programming.rst:415 +msgid "What is the difference between arguments and parameters?" +msgstr "" + +#: ../../faq/programming.rst:417 +msgid "" +":term:`Parameters ` are defined by the names that appear in a " +"function definition, whereas :term:`arguments ` are the values " +"actually passed to a function when calling it. Parameters define " +"what :term:`kind of arguments ` a function can accept. For " +"example, given the function definition::" +msgstr "" + +#: ../../faq/programming.rst:423 +msgid "" +"def func(foo, bar=None, **kwargs):\n" +" pass" +msgstr "" + +#: ../../faq/programming.rst:426 +msgid "" +"*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " +"``func``, for example::" +msgstr "" + +#: ../../faq/programming.rst:429 +msgid "func(42, bar=314, extra=somevar)" +msgstr "" + +#: ../../faq/programming.rst:431 +msgid "the values ``42``, ``314``, and ``somevar`` are arguments." +msgstr "" + +#: ../../faq/programming.rst:435 +msgid "Why did changing list 'y' also change list 'x'?" +msgstr "" + +#: ../../faq/programming.rst:437 +msgid "If you wrote code like::" +msgstr "" + +#: ../../faq/programming.rst:439 +msgid "" +">>> x = []\n" +">>> y = x\n" +">>> y.append(10)\n" +">>> y\n" +"[10]\n" +">>> x\n" +"[10]" +msgstr "" + +#: ../../faq/programming.rst:447 +msgid "" +"you might be wondering why appending an element to ``y`` changed ``x`` too." +msgstr "" + +#: ../../faq/programming.rst:449 +msgid "There are two factors that produce this result:" +msgstr "" + +#: ../../faq/programming.rst:451 +msgid "" +"Variables are simply names that refer to objects. Doing ``y = x`` doesn't " +"create a copy of the list -- it creates a new variable ``y`` that refers to " +"the same object ``x`` refers to. This means that there is only one object " +"(the list), and both ``x`` and ``y`` refer to it." +msgstr "" + +#: ../../faq/programming.rst:455 +msgid "" +"Lists are :term:`mutable`, which means that you can change their content." +msgstr "" + +#: ../../faq/programming.rst:457 +msgid "" +"After the call to :meth:`!append`, the content of the mutable object has " +"changed from ``[]`` to ``[10]``. Since both the variables refer to the same " +"object, using either name accesses the modified value ``[10]``." +msgstr "" + +#: ../../faq/programming.rst:461 +msgid "If we instead assign an immutable object to ``x``::" +msgstr "" + +#: ../../faq/programming.rst:463 +msgid "" +">>> x = 5 # ints are immutable\n" +">>> y = x\n" +">>> x = x + 1 # 5 can't be mutated, we are creating a new object here\n" +">>> x\n" +"6\n" +">>> y\n" +"5" +msgstr "" + +#: ../../faq/programming.rst:471 +msgid "" +"we can see that in this case ``x`` and ``y`` are not equal anymore. This is " +"because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " +"not mutating the int ``5`` by incrementing its value; instead, we are " +"creating a new object (the int ``6``) and assigning it to ``x`` (that is, " +"changing which object ``x`` refers to). After this assignment we have two " +"objects (the ints ``6`` and ``5``) and two variables that refer to them " +"(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." +msgstr "" + +#: ../../faq/programming.rst:479 +msgid "" +"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " +"object, whereas superficially similar operations (for example ``y = y + " +"[10]`` and :func:`sorted(y) `) create a new object. In general in " +"Python (and in all cases in the standard library) a method that mutates an " +"object will return ``None`` to help avoid getting the two types of " +"operations confused. So if you mistakenly write ``y.sort()`` thinking it " +"will give you a sorted copy of ``y``, you'll instead end up with ``None``, " +"which will likely cause your program to generate an easily diagnosed error." +msgstr "" + +#: ../../faq/programming.rst:488 +msgid "" +"However, there is one class of operations where the same operation sometimes " +"has different behaviors with different types: the augmented assignment " +"operators. For example, ``+=`` mutates lists but not tuples or ints " +"(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " +"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " +"1`` create new objects)." +msgstr "" + +#: ../../faq/programming.rst:495 +msgid "In other words:" +msgstr "" + +#: ../../faq/programming.rst:497 +msgid "" +"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " +"etc.), we can use some specific operations to mutate it and all the " +"variables that refer to it will see the change." +msgstr "" + +#: ../../faq/programming.rst:500 +msgid "" +"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " +"etc.), all the variables that refer to it will always see the same value, " +"but operations that transform that value into a new value always return a " +"new object." +msgstr "" + +#: ../../faq/programming.rst:505 +msgid "" +"If you want to know if two variables refer to the same object or not, you " +"can use the :keyword:`is` operator, or the built-in function :func:`id`." +msgstr "" + +#: ../../faq/programming.rst:510 +msgid "How do I write a function with output parameters (call by reference)?" +msgstr "" + +#: ../../faq/programming.rst:512 +msgid "" +"Remember that arguments are passed by assignment in Python. Since " +"assignment just creates references to objects, there's no alias between an " +"argument name in the caller and callee, and so no call-by-reference per se. " +"You can achieve the desired effect in a number of ways." +msgstr "" + +#: ../../faq/programming.rst:517 +msgid "By returning a tuple of the results::" +msgstr "" + +#: ../../faq/programming.rst:519 +msgid "" +">>> def func1(a, b):\n" +"... a = 'new-value' # a and b are local names\n" +"... b = b + 1 # assigned to new objects\n" +"... return a, b # return new values\n" +"...\n" +">>> x, y = 'old-value', 99\n" +">>> func1(x, y)\n" +"('new-value', 100)" +msgstr "" + +#: ../../faq/programming.rst:528 +msgid "This is almost always the clearest solution." +msgstr "" + +#: ../../faq/programming.rst:530 +msgid "" +"By using global variables. This isn't thread-safe, and is not recommended." +msgstr "" + +#: ../../faq/programming.rst:532 +msgid "By passing a mutable (changeable in-place) object::" +msgstr "" + +#: ../../faq/programming.rst:534 +msgid "" +">>> def func2(a):\n" +"... a[0] = 'new-value' # 'a' references a mutable list\n" +"... a[1] = a[1] + 1 # changes a shared object\n" +"...\n" +">>> args = ['old-value', 99]\n" +">>> func2(args)\n" +">>> args\n" +"['new-value', 100]" +msgstr "" + +#: ../../faq/programming.rst:543 +msgid "By passing in a dictionary that gets mutated::" +msgstr "" + +#: ../../faq/programming.rst:545 +msgid "" +">>> def func3(args):\n" +"... args['a'] = 'new-value' # args is a mutable dictionary\n" +"... args['b'] = args['b'] + 1 # change it in-place\n" +"...\n" +">>> args = {'a': 'old-value', 'b': 99}\n" +">>> func3(args)\n" +">>> args\n" +"{'a': 'new-value', 'b': 100}" +msgstr "" + +#: ../../faq/programming.rst:554 +msgid "Or bundle up values in a class instance::" +msgstr "" + +#: ../../faq/programming.rst:556 +msgid "" +">>> class Namespace:\n" +"... def __init__(self, /, **args):\n" +"... for key, value in args.items():\n" +"... setattr(self, key, value)\n" +"...\n" +">>> def func4(args):\n" +"... args.a = 'new-value' # args is a mutable Namespace\n" +"... args.b = args.b + 1 # change object in-place\n" +"...\n" +">>> args = Namespace(a='old-value', b=99)\n" +">>> func4(args)\n" +">>> vars(args)\n" +"{'a': 'new-value', 'b': 100}" +msgstr "" + +#: ../../faq/programming.rst:571 +msgid "There's almost never a good reason to get this complicated." +msgstr "" + +#: ../../faq/programming.rst:573 +msgid "Your best choice is to return a tuple containing the multiple results." +msgstr "" + +#: ../../faq/programming.rst:577 +msgid "How do you make a higher order function in Python?" +msgstr "" + +#: ../../faq/programming.rst:579 +msgid "" +"You have two choices: you can use nested scopes or you can use callable " +"objects. For example, suppose you wanted to define ``linear(a,b)`` which " +"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " +"scopes::" +msgstr "" + +#: ../../faq/programming.rst:583 +msgid "" +"def linear(a, b):\n" +" def result(x):\n" +" return a * x + b\n" +" return result" +msgstr "" + +#: ../../faq/programming.rst:588 +msgid "Or using a callable object::" +msgstr "" + +#: ../../faq/programming.rst:590 +msgid "" +"class linear:\n" +"\n" +" def __init__(self, a, b):\n" +" self.a, self.b = a, b\n" +"\n" +" def __call__(self, x):\n" +" return self.a * x + self.b" +msgstr "" + +#: ../../faq/programming.rst:598 +msgid "In both cases, ::" +msgstr "" + +#: ../../faq/programming.rst:600 +msgid "taxes = linear(0.3, 2)" +msgstr "" + +#: ../../faq/programming.rst:602 +msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." +msgstr "" + +#: ../../faq/programming.rst:604 +msgid "" +"The callable object approach has the disadvantage that it is a bit slower " +"and results in slightly longer code. However, note that a collection of " +"callables can share their signature via inheritance::" +msgstr "" + +#: ../../faq/programming.rst:608 +msgid "" +"class exponential(linear):\n" +" # __init__ inherited\n" +" def __call__(self, x):\n" +" return self.a * (x ** self.b)" +msgstr "" + +#: ../../faq/programming.rst:613 +msgid "Object can encapsulate state for several methods::" +msgstr "" + +#: ../../faq/programming.rst:615 +msgid "" +"class counter:\n" +"\n" +" value = 0\n" +"\n" +" def set(self, x):\n" +" self.value = x\n" +"\n" +" def up(self):\n" +" self.value = self.value + 1\n" +"\n" +" def down(self):\n" +" self.value = self.value - 1\n" +"\n" +"count = counter()\n" +"inc, dec, reset = count.up, count.down, count.set" +msgstr "" + +#: ../../faq/programming.rst:631 +msgid "" +"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " +"same counting variable." +msgstr "" + +#: ../../faq/programming.rst:636 +msgid "How do I copy an object in Python?" +msgstr "" + +#: ../../faq/programming.rst:638 +msgid "" +"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " +"case. Not all objects can be copied, but most can." +msgstr "" + +#: ../../faq/programming.rst:641 +msgid "" +"Some objects can be copied more easily. Dictionaries have " +"a :meth:`~dict.copy` method::" +msgstr "" + +#: ../../faq/programming.rst:644 +msgid "newdict = olddict.copy()" +msgstr "" + +#: ../../faq/programming.rst:646 +msgid "Sequences can be copied by slicing::" +msgstr "" + +#: ../../faq/programming.rst:648 +msgid "new_l = l[:]" +msgstr "" + +#: ../../faq/programming.rst:652 +msgid "How can I find the methods or attributes of an object?" +msgstr "" + +#: ../../faq/programming.rst:654 +msgid "" +"For an instance ``x`` of a user-defined class, :func:`dir(x) ` returns " +"an alphabetized list of the names containing the instance attributes and " +"methods and attributes defined by its class." +msgstr "" + +#: ../../faq/programming.rst:660 +msgid "How can my code discover the name of an object?" +msgstr "" + +#: ../../faq/programming.rst:662 +msgid "" +"Generally speaking, it can't, because objects don't really have names. " +"Essentially, assignment always binds a name to a value; the same is true of " +"``def`` and ``class`` statements, but in that case the value is a callable. " +"Consider the following code::" +msgstr "" + +#: ../../faq/programming.rst:667 +msgid "" +">>> class A:\n" +"... pass\n" +"...\n" +">>> B = A\n" +">>> a = B()\n" +">>> b = a\n" +">>> print(b)\n" +"<__main__.A object at 0x16D07CC>\n" +">>> print(a)\n" +"<__main__.A object at 0x16D07CC>" +msgstr "" + +#: ../../faq/programming.rst:678 +msgid "" +"Arguably the class has a name: even though it is bound to two names and " +"invoked through the name ``B`` the created instance is still reported as an " +"instance of class ``A``. However, it is impossible to say whether the " +"instance's name is ``a`` or ``b``, since both names are bound to the same " +"value." +msgstr "" + +#: ../../faq/programming.rst:683 +msgid "" +"Generally speaking it should not be necessary for your code to \"know the " +"names\" of particular values. Unless you are deliberately writing " +"introspective programs, this is usually an indication that a change of " +"approach might be beneficial." +msgstr "" + +#: ../../faq/programming.rst:688 +msgid "" +"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " +"to this question:" +msgstr "" + +#: ../../faq/programming.rst:691 +msgid "" +"The same way as you get the name of that cat you found on your porch: the " +"cat (object) itself cannot tell you its name, and it doesn't really care -- " +"so the only way to find out what it's called is to ask all your neighbours " +"(namespaces) if it's their cat (object)..." +msgstr "" + +#: ../../faq/programming.rst:696 +msgid "" +"....and don't be surprised if you'll find that it's known by many names, or " +"no name at all!" +msgstr "" + +#: ../../faq/programming.rst:701 +msgid "What's up with the comma operator's precedence?" +msgstr "" + +#: ../../faq/programming.rst:703 +msgid "Comma is not an operator in Python. Consider this session::" +msgstr "" + +#: ../../faq/programming.rst:705 +msgid "" +">>> \"a\" in \"b\", \"a\"\n" +"(False, 'a')" +msgstr "" + +#: ../../faq/programming.rst:708 +msgid "" +"Since the comma is not an operator, but a separator between expressions the " +"above is evaluated as if you had entered::" +msgstr "" + +#: ../../faq/programming.rst:711 +msgid "(\"a\" in \"b\"), \"a\"" +msgstr "" + +#: ../../faq/programming.rst:713 +msgid "not::" +msgstr "" + +#: ../../faq/programming.rst:715 +msgid "\"a\" in (\"b\", \"a\")" +msgstr "" + +#: ../../faq/programming.rst:717 +msgid "" +"The same is true of the various assignment operators (``=``, ``+=`` etc). " +"They are not truly operators but syntactic delimiters in assignment " +"statements." +msgstr "" + +#: ../../faq/programming.rst:722 +msgid "Is there an equivalent of C's \"?:\" ternary operator?" +msgstr "" + +#: ../../faq/programming.rst:724 +msgid "Yes, there is. The syntax is as follows::" +msgstr "" + +#: ../../faq/programming.rst:726 +msgid "" +"[on_true] if [expression] else [on_false]\n" +"\n" +"x, y = 50, 25\n" +"small = x if x < y else y" +msgstr "" + +#: ../../faq/programming.rst:731 +msgid "" +"Before this syntax was introduced in Python 2.5, a common idiom was to use " +"logical operators::" +msgstr "" + +#: ../../faq/programming.rst:734 +msgid "[expression] and [on_true] or [on_false]" +msgstr "" + +#: ../../faq/programming.rst:736 +msgid "" +"However, this idiom is unsafe, as it can give wrong results when *on_true* " +"has a false boolean value. Therefore, it is always better to use the ``... " +"if ... else ...`` form." +msgstr "" + +#: ../../faq/programming.rst:742 +msgid "Is it possible to write obfuscated one-liners in Python?" +msgstr "" + +#: ../../faq/programming.rst:744 +msgid "" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" +"lambda`. See the following three examples, slightly adapted from Ulf " +"Bartelt::" +msgstr "" + +#: ../../faq/programming.rst:747 +msgid "" +"from functools import reduce\n" +"\n" +"# Primes < 1000\n" +"print(list(filter(None,map(lambda y:y*reduce(lambda x,y:x*y!=0,\n" +"map(lambda x,y=y:y%x,range(2,int(pow(y,0.5)+1))),1),range(2,1000)))))\n" +"\n" +"# First 10 Fibonacci numbers\n" +"print(list(map(lambda x,f=lambda x,f:(f(x-1,f)+f(x-2,f)) if x>1 else 1:\n" +"f(x,f), range(10))))\n" +"\n" +"# Mandelbrot set\n" +"print((lambda Ru,Ro,Iu,Io,IM,Sx,Sy:reduce(lambda x,y:x+'\\n'+y,map(lambda " +"y,\n" +"Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,Sy=Sy,L=lambda yc,Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,i=IM,\n" +"Sx=Sx,Sy=Sy:reduce(lambda x,y:x+y,map(lambda x,xc=Ru,yc=yc,Ru=Ru,Ro=Ro,\n" +"i=i,Sx=Sx,F=lambda xc,yc,x,y,k,f=lambda xc,yc,x,y,k,f:(k<=0)or (x*x+y*y\n" +">=4.0) or 1+f(xc,yc,x*x-y*y+xc,2.0*x*y+yc,k-1,f):f(xc,yc,x,y,k,f):chr(\n" +"64+F(Ru+x*(Ro-Ru)/Sx,yc,0,0,i)),range(Sx))):L(Iu+y*(Io-Iu)/Sy),range(Sy\n" +"))))(-2.1, 0.7, -1.2, 1.2, 30, 80, 24))\n" +"# \\___ ___/ \\___ ___/ | | |__ lines on screen\n" +"# V V | |______ columns on screen\n" +"# | | |__________ maximum of \"iterations\"\n" +"# | |_________________ range on y axis\n" +"# |____________________________ range on x axis" +msgstr "" + +#: ../../faq/programming.rst:771 +msgid "Don't try this at home, kids!" +msgstr "" + +#: ../../faq/programming.rst:777 +msgid "What does the slash(/) in the parameter list of a function mean?" +msgstr "" + +#: ../../faq/programming.rst:779 +msgid "" +"A slash in the argument list of a function denotes that the parameters prior " +"to it are positional-only. Positional-only parameters are the ones without " +"an externally usable name. Upon calling a function that accepts positional-" +"only parameters, arguments are mapped to parameters based solely on their " +"position. For example, :func:`divmod` is a function that accepts positional-" +"only parameters. Its documentation looks like this::" +msgstr "" + +#: ../../faq/programming.rst:786 +msgid "" +">>> help(divmod)\n" +"Help on built-in function divmod in module builtins:\n" +"\n" +"divmod(x, y, /)\n" +" Return the tuple (x//y, x%y). Invariant: div*y + mod == x." +msgstr "" + +#: ../../faq/programming.rst:792 +msgid "" +"The slash at the end of the parameter list means that both parameters are " +"positional-only. Thus, calling :func:`divmod` with keyword arguments would " +"lead to an error::" +msgstr "" + +#: ../../faq/programming.rst:796 +msgid "" +">>> divmod(x=3, y=4)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: divmod() takes no keyword arguments" +msgstr "" + +#: ../../faq/programming.rst:803 +msgid "Numbers and strings" +msgstr "" + +#: ../../faq/programming.rst:806 +msgid "How do I specify hexadecimal and octal integers?" +msgstr "" + +#: ../../faq/programming.rst:808 +msgid "" +"To specify an octal digit, precede the octal value with a zero, and then a " +"lower or uppercase \"o\". For example, to set the variable \"a\" to the " +"octal value \"10\" (8 in decimal), type::" +msgstr "" + +#: ../../faq/programming.rst:812 +msgid "" +">>> a = 0o10\n" +">>> a\n" +"8" +msgstr "" + +#: ../../faq/programming.rst:816 +msgid "" +"Hexadecimal is just as easy. Simply precede the hexadecimal number with a " +"zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " +"specified in lower or uppercase. For example, in the Python interpreter::" +msgstr "" + +#: ../../faq/programming.rst:820 +msgid "" +">>> a = 0xa5\n" +">>> a\n" +"165\n" +">>> b = 0XB2\n" +">>> b\n" +"178" +msgstr "" + +#: ../../faq/programming.rst:829 +msgid "Why does -22 // 10 return -3?" +msgstr "" + +#: ../../faq/programming.rst:831 +msgid "" +"It's primarily driven by the desire that ``i % j`` have the same sign as " +"``j``. If you want that, and also want::" +msgstr "" + +#: ../../faq/programming.rst:834 +msgid "i == (i // j) * j + (i % j)" +msgstr "" + +#: ../../faq/programming.rst:836 +msgid "" +"then integer division has to return the floor. C also requires that " +"identity to hold, and then compilers that truncate ``i // j`` need to make " +"``i % j`` have the same sign as ``i``." +msgstr "" + +#: ../../faq/programming.rst:840 +msgid "" +"There are few real use cases for ``i % j`` when ``j`` is negative. When " +"``j`` is positive, there are many, and in virtually all of them it's more " +"useful for ``i % j`` to be ``>= 0``. If the clock says 10 now, what did it " +"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " +"bug waiting to bite." +msgstr "" + +#: ../../faq/programming.rst:848 +msgid "How do I get int literal attribute instead of SyntaxError?" +msgstr "" + +#: ../../faq/programming.rst:850 +msgid "" +"Trying to lookup an ``int`` literal attribute in the normal manner gives " +"a :exc:`SyntaxError` because the period is seen as a decimal point::" +msgstr "" + +#: ../../faq/programming.rst:853 +msgid "" +">>> 1.__class__\n" +" File \"\", line 1\n" +" 1.__class__\n" +" ^\n" +"SyntaxError: invalid decimal literal" +msgstr "" + +#: ../../faq/programming.rst:859 +msgid "" +"The solution is to separate the literal from the period with either a space " +"or parentheses." +msgstr "" + +#: ../../faq/programming.rst:869 +msgid "How do I convert a string to a number?" +msgstr "" + +#: ../../faq/programming.rst:871 +msgid "" +"For integers, use the built-in :func:`int` type constructor, e.g. " +"``int('144') == 144``. Similarly, :func:`float` converts to a floating-" +"point number, e.g. ``float('144') == 144.0``." +msgstr "" + +#: ../../faq/programming.rst:875 +msgid "" +"By default, these interpret the number as decimal, so that ``int('0144') == " +"144`` holds true, and ``int('0x144')`` raises :exc:`ValueError`. " +"``int(string, base)`` takes the base to convert from as a second optional " +"argument, so ``int( '0x144', 16) == 324``. If the base is specified as 0, " +"the number is interpreted using Python's rules: a leading '0o' indicates " +"octal, and '0x' indicates a hex number." +msgstr "" + +#: ../../faq/programming.rst:882 +msgid "" +"Do not use the built-in function :func:`eval` if all you need is to convert " +"strings to numbers. :func:`eval` will be significantly slower and it " +"presents a security risk: someone could pass you a Python expression that " +"might have unwanted side effects. For example, someone could pass " +"``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " +"directory." +msgstr "" + +#: ../../faq/programming.rst:889 +msgid "" +":func:`eval` also has the effect of interpreting numbers as Python " +"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " +"does not allow leading '0' in a decimal number (except '0')." +msgstr "" + +#: ../../faq/programming.rst:895 +msgid "How do I convert a number to a string?" +msgstr "" + +#: ../../faq/programming.rst:897 +msgid "" +"To convert, e.g., the number ``144`` to the string ``'144'``, use the built-" +"in type constructor :func:`str`. If you want a hexadecimal or octal " +"representation, use the built-in functions :func:`hex` or :func:`oct`. For " +"fancy formatting, see the :ref:`f-strings` and :ref:`formatstrings` " +"sections, e.g. ``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}" +"\".format(1.0/3.0)`` yields ``'0.333'``." +msgstr "" + +#: ../../faq/programming.rst:906 +msgid "How do I modify a string in place?" +msgstr "" + +#: ../../faq/programming.rst:908 +msgid "" +"You can't, because strings are immutable. In most situations, you should " +"simply construct a new string from the various parts you want to assemble it " +"from. However, if you need an object with the ability to modify in-place " +"unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " +"module::" +msgstr "" + +#: ../../faq/programming.rst:914 +msgid "" +">>> import io\n" +">>> s = \"Hello, world\"\n" +">>> sio = io.StringIO(s)\n" +">>> sio.getvalue()\n" +"'Hello, world'\n" +">>> sio.seek(7)\n" +"7\n" +">>> sio.write(\"there!\")\n" +"6\n" +">>> sio.getvalue()\n" +"'Hello, there!'\n" +"\n" +">>> import array\n" +">>> a = array.array('w', s)\n" +">>> print(a)\n" +"array('w', 'Hello, world')\n" +">>> a[0] = 'y'\n" +">>> print(a)\n" +"array('w', 'yello, world')\n" +">>> a.tounicode()\n" +"'yello, world'" +msgstr "" + +#: ../../faq/programming.rst:938 +msgid "How do I use strings to call functions/methods?" +msgstr "" + +#: ../../faq/programming.rst:940 +msgid "There are various techniques." +msgstr "" + +#: ../../faq/programming.rst:942 +msgid "" +"The best is to use a dictionary that maps strings to functions. The primary " +"advantage of this technique is that the strings do not need to match the " +"names of the functions. This is also the primary technique used to emulate " +"a case construct::" +msgstr "" + +#: ../../faq/programming.rst:947 +msgid "" +"def a():\n" +" pass\n" +"\n" +"def b():\n" +" pass\n" +"\n" +"dispatch = {'go': a, 'stop': b} # Note lack of parens for funcs\n" +"\n" +"dispatch[get_input()]() # Note trailing parens to call function" +msgstr "" + +#: ../../faq/programming.rst:957 +msgid "Use the built-in function :func:`getattr`::" +msgstr "" + +#: ../../faq/programming.rst:959 +msgid "" +"import foo\n" +"getattr(foo, 'bar')()" +msgstr "" + +#: ../../faq/programming.rst:962 +msgid "" +"Note that :func:`getattr` works on any object, including classes, class " +"instances, modules, and so on." +msgstr "" + +#: ../../faq/programming.rst:965 +msgid "This is used in several places in the standard library, like this::" +msgstr "" + +#: ../../faq/programming.rst:967 +msgid "" +"class Foo:\n" +" def do_foo(self):\n" +" ...\n" +"\n" +" def do_bar(self):\n" +" ...\n" +"\n" +"f = getattr(foo_instance, 'do_' + opname)\n" +"f()" +msgstr "" + +#: ../../faq/programming.rst:978 +msgid "Use :func:`locals` to resolve the function name::" +msgstr "" + +#: ../../faq/programming.rst:980 +msgid "" +"def myFunc():\n" +" print(\"hello\")\n" +"\n" +"fname = \"myFunc\"\n" +"\n" +"f = locals()[fname]\n" +"f()" +msgstr "" + +#: ../../faq/programming.rst:990 +msgid "" +"Is there an equivalent to Perl's ``chomp()`` for removing trailing newlines " +"from strings?" +msgstr "" + +#: ../../faq/programming.rst:992 +msgid "" +"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " +"terminator from the end of the string ``S`` without removing other trailing " +"whitespace. If the string ``S`` represents more than one line, with several " +"empty lines at the end, the line terminators for all the blank lines will be " +"removed::" +msgstr "" + +#: ../../faq/programming.rst:998 +msgid "" +">>> lines = (\"line 1 \\r\\n\"\n" +"... \"\\r\\n\"\n" +"... \"\\r\\n\")\n" +">>> lines.rstrip(\"\\n\\r\")\n" +"'line 1 '" +msgstr "" + +#: ../../faq/programming.rst:1004 +msgid "" +"Since this is typically only desired when reading text one line at a time, " +"using ``S.rstrip()`` this way works well." +msgstr "" + +#: ../../faq/programming.rst:1009 +msgid "Is there a ``scanf()`` or ``sscanf()`` equivalent?" +msgstr "" + +#: ../../faq/programming.rst:1011 +msgid "Not as such." +msgstr "" + +#: ../../faq/programming.rst:1013 +msgid "" +"For simple input parsing, the easiest approach is usually to split the line " +"into whitespace-delimited words using the :meth:`~str.split` method of " +"string objects and then convert decimal strings to numeric values " +"using :func:`int` or :func:`float`. :meth:`!split` supports an optional " +"\"sep\" parameter which is useful if the line uses something other than " +"whitespace as a separator." +msgstr "" + +#: ../../faq/programming.rst:1019 +msgid "" +"For more complicated input parsing, regular expressions are more powerful " +"than C's ``sscanf`` and better suited for the task." +msgstr "" + +#: ../../faq/programming.rst:1024 +msgid "What does ``UnicodeDecodeError`` or ``UnicodeEncodeError`` error mean?" +msgstr "" + +#: ../../faq/programming.rst:1026 +msgid "See the :ref:`unicode-howto`." +msgstr "" + +#: ../../faq/programming.rst:1032 +msgid "Can I end a raw string with an odd number of backslashes?" +msgstr "" + +#: ../../faq/programming.rst:1034 +msgid "" +"A raw string ending with an odd number of backslashes will escape the " +"string's quote::" +msgstr "" + +#: ../../faq/programming.rst:1036 +msgid "" +">>> r'C:\\this\\will\\not\\work\\'\n" +" File \"\", line 1\n" +" r'C:\\this\\will\\not\\work\\'\n" +" ^\n" +"SyntaxError: unterminated string literal (detected at line 1)" +msgstr "" + +#: ../../faq/programming.rst:1042 +msgid "" +"There are several workarounds for this. One is to use regular strings and " +"double the backslashes::" +msgstr "" + +#: ../../faq/programming.rst:1045 +msgid "" +">>> 'C:\\\\this\\\\will\\\\work\\\\'\n" +"'C:\\\\this\\\\will\\\\work\\\\'" +msgstr "" + +#: ../../faq/programming.rst:1048 +msgid "" +"Another is to concatenate a regular string containing an escaped backslash " +"to the raw string::" +msgstr "" + +#: ../../faq/programming.rst:1051 +msgid "" +">>> r'C:\\this\\will\\work' '\\\\'\n" +"'C:\\\\this\\\\will\\\\work\\\\'" +msgstr "" + +#: ../../faq/programming.rst:1054 +msgid "" +"It is also possible to use :func:`os.path.join` to append a backslash on " +"Windows::" +msgstr "" + +#: ../../faq/programming.rst:1056 +msgid "" +">>> os.path.join(r'C:\\this\\will\\work', '')\n" +"'C:\\\\this\\\\will\\\\work\\\\'" +msgstr "" + +#: ../../faq/programming.rst:1059 +msgid "" +"Note that while a backslash will \"escape\" a quote for the purposes of " +"determining where the raw string ends, no escaping occurs when interpreting " +"the value of the raw string. That is, the backslash remains present in the " +"value of the raw string::" +msgstr "" + +#: ../../faq/programming.rst:1064 +msgid "" +">>> r'backslash\\'preserved'\n" +"\"backslash\\\\'preserved\"" +msgstr "" + +#: ../../faq/programming.rst:1067 +msgid "Also see the specification in the :ref:`language reference `." +msgstr "" + +#: ../../faq/programming.rst:1070 +msgid "Performance" +msgstr "" + +#: ../../faq/programming.rst:1073 +msgid "My program is too slow. How do I speed it up?" +msgstr "" + +#: ../../faq/programming.rst:1075 +msgid "" +"That's a tough one, in general. First, here are a list of things to " +"remember before diving further:" +msgstr "" + +#: ../../faq/programming.rst:1078 +msgid "" +"Performance characteristics vary across Python implementations. This FAQ " +"focuses on :term:`CPython`." +msgstr "" + +#: ../../faq/programming.rst:1080 +msgid "" +"Behaviour can vary across operating systems, especially when talking about I/" +"O or multi-threading." +msgstr "" + +#: ../../faq/programming.rst:1082 +msgid "" +"You should always find the hot spots in your program *before* attempting to " +"optimize any code (see the :mod:`profile` module)." +msgstr "" + +#: ../../faq/programming.rst:1084 +msgid "" +"Writing benchmark scripts will allow you to iterate quickly when searching " +"for improvements (see the :mod:`timeit` module)." +msgstr "" + +#: ../../faq/programming.rst:1086 +msgid "" +"It is highly recommended to have good code coverage (through unit testing or " +"any other technique) before potentially introducing regressions hidden in " +"sophisticated optimizations." +msgstr "" + +#: ../../faq/programming.rst:1090 +msgid "" +"That being said, there are many tricks to speed up Python code. Here are " +"some general principles which go a long way towards reaching acceptable " +"performance levels:" +msgstr "" + +#: ../../faq/programming.rst:1094 +msgid "" +"Making your algorithms faster (or changing to faster ones) can yield much " +"larger benefits than trying to sprinkle micro-optimization tricks all over " +"your code." +msgstr "" + +#: ../../faq/programming.rst:1098 +msgid "" +"Use the right data structures. Study documentation for the :ref:`bltin-" +"types` and the :mod:`collections` module." +msgstr "" + +#: ../../faq/programming.rst:1101 +msgid "" +"When the standard library provides a primitive for doing something, it is " +"likely (although not guaranteed) to be faster than any alternative you may " +"come up with. This is doubly true for primitives written in C, such as " +"builtins and some extension types. For example, be sure to use either " +"the :meth:`list.sort` built-in method or the related :func:`sorted` function " +"to do sorting (and see the :ref:`sortinghowto` for examples of moderately " +"advanced usage)." +msgstr "" + +#: ../../faq/programming.rst:1109 +msgid "" +"Abstractions tend to create indirections and force the interpreter to work " +"more. If the levels of indirection outweigh the amount of useful work done, " +"your program will be slower. You should avoid excessive abstraction, " +"especially under the form of tiny functions or methods (which are also often " +"detrimental to readability)." +msgstr "" + +#: ../../faq/programming.rst:1115 +msgid "" +"If you have reached the limit of what pure Python can allow, there are tools " +"to take you further away. For example, `Cython `_ can " +"compile a slightly modified version of Python code into a C extension, and " +"can be used on many different platforms. Cython can take advantage of " +"compilation (and optional type annotations) to make your code significantly " +"faster than when interpreted. If you are confident in your C programming " +"skills, you can also :ref:`write a C extension module ` " +"yourself." +msgstr "" + +#: ../../faq/programming.rst:1125 +msgid "" +"The wiki page devoted to `performance tips `_." +msgstr "" + +#: ../../faq/programming.rst:1131 +msgid "What is the most efficient way to concatenate many strings together?" +msgstr "" + +#: ../../faq/programming.rst:1133 +msgid "" +":class:`str` and :class:`bytes` objects are immutable, therefore " +"concatenating many strings together is inefficient as each concatenation " +"creates a new object. In the general case, the total runtime cost is " +"quadratic in the total string length." +msgstr "" + +#: ../../faq/programming.rst:1138 +msgid "" +"To accumulate many :class:`str` objects, the recommended idiom is to place " +"them into a list and call :meth:`str.join` at the end::" +msgstr "" + +#: ../../faq/programming.rst:1141 +msgid "" +"chunks = []\n" +"for s in my_strings:\n" +" chunks.append(s)\n" +"result = ''.join(chunks)" +msgstr "" + +#: ../../faq/programming.rst:1146 +msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" +msgstr "" + +#: ../../faq/programming.rst:1148 +msgid "" +"To accumulate many :class:`bytes` objects, the recommended idiom is to " +"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " +"operator)::" +msgstr "" + +#: ../../faq/programming.rst:1151 +msgid "" +"result = bytearray()\n" +"for b in my_bytes_objects:\n" +" result += b" +msgstr "" + +#: ../../faq/programming.rst:1157 +msgid "Sequences (Tuples/Lists)" +msgstr "" + +#: ../../faq/programming.rst:1160 +msgid "How do I convert between tuples and lists?" +msgstr "" + +#: ../../faq/programming.rst:1162 +msgid "" +"The type constructor ``tuple(seq)`` converts any sequence (actually, any " +"iterable) into a tuple with the same items in the same order." +msgstr "" + +#: ../../faq/programming.rst:1165 +msgid "" +"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " +"yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " +"copy but returns the same object, so it is cheap to call :func:`tuple` when " +"you aren't sure that an object is already a tuple." +msgstr "" + +#: ../../faq/programming.rst:1170 +msgid "" +"The type constructor ``list(seq)`` converts any sequence or iterable into a " +"list with the same items in the same order. For example, ``list((1, 2, " +"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " +"If the argument is a list, it makes a copy just like ``seq[:]`` would." +msgstr "" + +#: ../../faq/programming.rst:1177 +msgid "What's a negative index?" +msgstr "" + +#: ../../faq/programming.rst:1179 +msgid "" +"Python sequences are indexed with positive numbers and negative numbers. " +"For positive numbers 0 is the first index 1 is the second index and so " +"forth. For negative indices -1 is the last index and -2 is the penultimate " +"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " +"``seq[len(seq)-n]``." +msgstr "" + +#: ../../faq/programming.rst:1184 +msgid "" +"Using negative indices can be very convenient. For example ``S[:-1]`` is " +"all of the string except for its last character, which is useful for " +"removing the trailing newline from a string." +msgstr "" + +#: ../../faq/programming.rst:1190 +msgid "How do I iterate over a sequence in reverse order?" +msgstr "" + +#: ../../faq/programming.rst:1192 +msgid "Use the :func:`reversed` built-in function::" +msgstr "" + +#: ../../faq/programming.rst:1194 +msgid "" +"for x in reversed(sequence):\n" +" ... # do something with x ..." +msgstr "" + +#: ../../faq/programming.rst:1197 +msgid "" +"This won't touch your original sequence, but build a new copy with reversed " +"order to iterate over." +msgstr "" + +#: ../../faq/programming.rst:1202 +msgid "How do you remove duplicates from a list?" +msgstr "" + +#: ../../faq/programming.rst:1204 +msgid "See the Python Cookbook for a long discussion of many ways to do this:" +msgstr "" + +#: ../../faq/programming.rst:1206 +msgid "https://code.activestate.com/recipes/52560/" +msgstr "" + +#: ../../faq/programming.rst:1208 +msgid "" +"If you don't mind reordering the list, sort it and then scan from the end of " +"the list, deleting duplicates as you go::" +msgstr "" + +#: ../../faq/programming.rst:1211 +msgid "" +"if mylist:\n" +" mylist.sort()\n" +" last = mylist[-1]\n" +" for i in range(len(mylist)-2, -1, -1):\n" +" if last == mylist[i]:\n" +" del mylist[i]\n" +" else:\n" +" last = mylist[i]" +msgstr "" + +#: ../../faq/programming.rst:1220 +msgid "" +"If all elements of the list may be used as set keys (i.e. they are " +"all :term:`hashable`) this is often faster ::" +msgstr "" + +#: ../../faq/programming.rst:1223 +msgid "mylist = list(set(mylist))" +msgstr "" + +#: ../../faq/programming.rst:1225 +msgid "" +"This converts the list into a set, thereby removing duplicates, and then " +"back into a list." +msgstr "" + +#: ../../faq/programming.rst:1230 +msgid "How do you remove multiple items from a list" +msgstr "" + +#: ../../faq/programming.rst:1232 +msgid "" +"As with removing duplicates, explicitly iterating in reverse with a delete " +"condition is one possibility. However, it is easier and faster to use slice " +"replacement with an implicit or explicit forward iteration. Here are three " +"variations.::" +msgstr "" + +#: ../../faq/programming.rst:1237 +msgid "" +"mylist[:] = filter(keep_function, mylist)\n" +"mylist[:] = (x for x in mylist if keep_condition)\n" +"mylist[:] = [x for x in mylist if keep_condition]" +msgstr "" + +#: ../../faq/programming.rst:1241 +msgid "The list comprehension may be fastest." +msgstr "" + +#: ../../faq/programming.rst:1245 +msgid "How do you make an array in Python?" +msgstr "" + +#: ../../faq/programming.rst:1247 +msgid "Use a list::" +msgstr "" + +#: ../../faq/programming.rst:1249 +msgid "[\"this\", 1, \"is\", \"an\", \"array\"]" +msgstr "" + +#: ../../faq/programming.rst:1251 +msgid "" +"Lists are equivalent to C or Pascal arrays in their time complexity; the " +"primary difference is that a Python list can contain objects of many " +"different types." +msgstr "" + +#: ../../faq/programming.rst:1254 +msgid "" +"The ``array`` module also provides methods for creating arrays of fixed " +"types with compact representations, but they are slower to index than " +"lists. Also note that `NumPy `_ and other third party " +"packages define array-like structures with various characteristics as well." +msgstr "" + +#: ../../faq/programming.rst:1260 +msgid "" +"To get Lisp-style linked lists, you can emulate *cons cells* using tuples::" +msgstr "" + +#: ../../faq/programming.rst:1262 +msgid "lisp_list = (\"like\", (\"this\", (\"example\", None) ) )" +msgstr "" + +#: ../../faq/programming.rst:1264 +msgid "" +"If mutability is desired, you could use lists instead of tuples. Here the " +"analogue of a Lisp *car* is ``lisp_list[0]`` and the analogue of *cdr* is " +"``lisp_list[1]``. Only do this if you're sure you really need to, because " +"it's usually a lot slower than using Python lists." +msgstr "" + +#: ../../faq/programming.rst:1273 +msgid "How do I create a multidimensional list?" +msgstr "" + +#: ../../faq/programming.rst:1275 +msgid "You probably tried to make a multidimensional array like this::" +msgstr "" + +#: ../../faq/programming.rst:1277 +msgid ">>> A = [[None] * 2] * 3" +msgstr "" + +#: ../../faq/programming.rst:1279 +msgid "This looks correct if you print it:" +msgstr "" + +#: ../../faq/programming.rst:1285 +msgid "" +">>> A\n" +"[[None, None], [None, None], [None, None]]" +msgstr "" + +#: ../../faq/programming.rst:1290 +msgid "But when you assign a value, it shows up in multiple places:" +msgstr "" + +#: ../../faq/programming.rst:1296 +msgid "" +">>> A[0][0] = 5\n" +">>> A\n" +"[[5, None], [5, None], [5, None]]" +msgstr "" + +#: ../../faq/programming.rst:1302 +msgid "" +"The reason is that replicating a list with ``*`` doesn't create copies, it " +"only creates references to the existing objects. The ``*3`` creates a list " +"containing 3 references to the same list of length two. Changes to one row " +"will show in all rows, which is almost certainly not what you want." +msgstr "" + +#: ../../faq/programming.rst:1307 +msgid "" +"The suggested approach is to create a list of the desired length first and " +"then fill in each element with a newly created list::" +msgstr "" + +#: ../../faq/programming.rst:1310 +msgid "" +"A = [None] * 3\n" +"for i in range(3):\n" +" A[i] = [None] * 2" +msgstr "" + +#: ../../faq/programming.rst:1314 +msgid "" +"This generates a list containing 3 different lists of length two. You can " +"also use a list comprehension::" +msgstr "" + +#: ../../faq/programming.rst:1317 +msgid "" +"w, h = 2, 3\n" +"A = [[None] * w for i in range(h)]" +msgstr "" + +#: ../../faq/programming.rst:1320 +msgid "" +"Or, you can use an extension that provides a matrix datatype; `NumPy " +"`_ is the best known." +msgstr "" + +#: ../../faq/programming.rst:1325 +msgid "How do I apply a method or function to a sequence of objects?" +msgstr "" + +#: ../../faq/programming.rst:1327 +msgid "" +"To call a method or function and accumulate the return values is a list, " +"a :term:`list comprehension` is an elegant solution::" +msgstr "" + +#: ../../faq/programming.rst:1330 +msgid "" +"result = [obj.method() for obj in mylist]\n" +"\n" +"result = [function(obj) for obj in mylist]" +msgstr "" + +#: ../../faq/programming.rst:1334 +msgid "" +"To just run the method or function without saving the return values, a " +"plain :keyword:`for` loop will suffice::" +msgstr "" + +#: ../../faq/programming.rst:1337 +msgid "" +"for obj in mylist:\n" +" obj.method()\n" +"\n" +"for obj in mylist:\n" +" function(obj)" +msgstr "" + +#: ../../faq/programming.rst:1346 +msgid "" +"Why does a_tuple[i] += ['item'] raise an exception when the addition works?" +msgstr "" + +#: ../../faq/programming.rst:1348 +msgid "" +"This is because of a combination of the fact that augmented assignment " +"operators are *assignment* operators, and the difference between mutable and " +"immutable objects in Python." +msgstr "" + +#: ../../faq/programming.rst:1352 +msgid "" +"This discussion applies in general when augmented assignment operators are " +"applied to elements of a tuple that point to mutable objects, but we'll use " +"a ``list`` and ``+=`` as our exemplar." +msgstr "" + +#: ../../faq/programming.rst:1356 +msgid "If you wrote::" +msgstr "" + +#: ../../faq/programming.rst:1358 +msgid "" +">>> a_tuple = (1, 2)\n" +">>> a_tuple[0] += 1\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: 'tuple' object does not support item assignment" +msgstr "" + +#: ../../faq/programming.rst:1364 +msgid "" +"The reason for the exception should be immediately clear: ``1`` is added to " +"the object ``a_tuple[0]`` points to (``1``), producing the result object, " +"``2``, but when we attempt to assign the result of the computation, ``2``, " +"to element ``0`` of the tuple, we get an error because we can't change what " +"an element of a tuple points to." +msgstr "" + +#: ../../faq/programming.rst:1370 +msgid "" +"Under the covers, what this augmented assignment statement is doing is " +"approximately this::" +msgstr "" + +#: ../../faq/programming.rst:1373 +msgid "" +">>> result = a_tuple[0] + 1\n" +">>> a_tuple[0] = result\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: 'tuple' object does not support item assignment" +msgstr "" + +#: ../../faq/programming.rst:1379 +msgid "" +"It is the assignment part of the operation that produces the error, since a " +"tuple is immutable." +msgstr "" + +#: ../../faq/programming.rst:1382 +msgid "When you write something like::" +msgstr "" + +#: ../../faq/programming.rst:1384 +msgid "" +">>> a_tuple = (['foo'], 'bar')\n" +">>> a_tuple[0] += ['item']\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: 'tuple' object does not support item assignment" +msgstr "" + +#: ../../faq/programming.rst:1390 +msgid "" +"The exception is a bit more surprising, and even more surprising is the fact " +"that even though there was an error, the append worked::" +msgstr "" + +#: ../../faq/programming.rst:1393 +msgid "" +">>> a_tuple[0]\n" +"['foo', 'item']" +msgstr "" + +#: ../../faq/programming.rst:1396 +msgid "" +"To see why this happens, you need to know that (a) if an object implements " +"an :meth:`~object.__iadd__` magic method, it gets called when the ``+=`` " +"augmented assignment is executed, and its return value is what gets used in " +"the assignment statement; and (b) for lists, :meth:`!__iadd__` is equivalent " +"to calling :meth:`!extend` on the list and returning the list. That's why " +"we say that for lists, ``+=`` is a \"shorthand\" for :meth:`!list.extend`::" +msgstr "" + +#: ../../faq/programming.rst:1404 +msgid "" +">>> a_list = []\n" +">>> a_list += [1]\n" +">>> a_list\n" +"[1]" +msgstr "" + +#: ../../faq/programming.rst:1409 +msgid "This is equivalent to::" +msgstr "" + +#: ../../faq/programming.rst:1411 +msgid "" +">>> result = a_list.__iadd__([1])\n" +">>> a_list = result" +msgstr "" + +#: ../../faq/programming.rst:1414 +msgid "" +"The object pointed to by a_list has been mutated, and the pointer to the " +"mutated object is assigned back to ``a_list``. The end result of the " +"assignment is a no-op, since it is a pointer to the same object that " +"``a_list`` was previously pointing to, but the assignment still happens." +msgstr "" + +#: ../../faq/programming.rst:1419 +msgid "Thus, in our tuple example what is happening is equivalent to::" +msgstr "" + +#: ../../faq/programming.rst:1421 +msgid "" +">>> result = a_tuple[0].__iadd__(['item'])\n" +">>> a_tuple[0] = result\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: 'tuple' object does not support item assignment" +msgstr "" + +#: ../../faq/programming.rst:1427 +msgid "" +"The :meth:`!__iadd__` succeeds, and thus the list is extended, but even " +"though ``result`` points to the same object that ``a_tuple[0]`` already " +"points to, that final assignment still results in an error, because tuples " +"are immutable." +msgstr "" + +#: ../../faq/programming.rst:1433 +msgid "" +"I want to do a complicated sort: can you do a Schwartzian Transform in " +"Python?" +msgstr "" + +#: ../../faq/programming.rst:1435 +msgid "" +"The technique, attributed to Randal Schwartz of the Perl community, sorts " +"the elements of a list by a metric which maps each element to its \"sort " +"value\". In Python, use the ``key`` argument for the :meth:`list.sort` " +"method::" +msgstr "" + +#: ../../faq/programming.rst:1439 +msgid "" +"Isorted = L[:]\n" +"Isorted.sort(key=lambda s: int(s[10:15]))" +msgstr "" + +#: ../../faq/programming.rst:1444 +msgid "How can I sort one list by values from another list?" +msgstr "" + +#: ../../faq/programming.rst:1446 +msgid "" +"Merge them into an iterator of tuples, sort the resulting list, and then " +"pick out the element you want. ::" +msgstr "" + +#: ../../faq/programming.rst:1449 +msgid "" +">>> list1 = [\"what\", \"I'm\", \"sorting\", \"by\"]\n" +">>> list2 = [\"something\", \"else\", \"to\", \"sort\"]\n" +">>> pairs = zip(list1, list2)\n" +">>> pairs = sorted(pairs)\n" +">>> pairs\n" +"[(\"I'm\", 'else'), ('by', 'sort'), ('sorting', 'to'), ('what', " +"'something')]\n" +">>> result = [x[1] for x in pairs]\n" +">>> result\n" +"['else', 'sort', 'to', 'something']" +msgstr "" + +#: ../../faq/programming.rst:1461 +msgid "Objects" +msgstr "" + +#: ../../faq/programming.rst:1464 +msgid "What is a class?" +msgstr "" + +#: ../../faq/programming.rst:1466 +msgid "" +"A class is the particular object type created by executing a class " +"statement. Class objects are used as templates to create instance objects, " +"which embody both the data (attributes) and code (methods) specific to a " +"datatype." +msgstr "" + +#: ../../faq/programming.rst:1470 +msgid "" +"A class can be based on one or more other classes, called its base " +"class(es). It then inherits the attributes and methods of its base classes. " +"This allows an object model to be successively refined by inheritance. You " +"might have a generic ``Mailbox`` class that provides basic accessor methods " +"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " +"``OutlookMailbox`` that handle various specific mailbox formats." +msgstr "" + +#: ../../faq/programming.rst:1479 +msgid "What is a method?" +msgstr "" + +#: ../../faq/programming.rst:1481 +msgid "" +"A method is a function on some object ``x`` that you normally call as " +"``x.name(arguments...)``. Methods are defined as functions inside the class " +"definition::" +msgstr "" + +#: ../../faq/programming.rst:1485 +msgid "" +"class C:\n" +" def meth(self, arg):\n" +" return arg * 2 + self.attribute" +msgstr "" + +#: ../../faq/programming.rst:1491 +msgid "What is self?" +msgstr "" + +#: ../../faq/programming.rst:1493 +msgid "" +"Self is merely a conventional name for the first argument of a method. A " +"method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " +"c)`` for some instance ``x`` of the class in which the definition occurs; " +"the called method will think it is called as ``meth(x, a, b, c)``." +msgstr "" + +#: ../../faq/programming.rst:1498 +msgid "See also :ref:`why-self`." +msgstr "" + +#: ../../faq/programming.rst:1502 +msgid "" +"How do I check if an object is an instance of a given class or of a subclass " +"of it?" +msgstr "" + +#: ../../faq/programming.rst:1504 +msgid "" +"Use the built-in function :func:`isinstance(obj, cls) `. You " +"can check if an object is an instance of any of a number of classes by " +"providing a tuple instead of a single class, e.g. ``isinstance(obj, (class1, " +"class2, ...))``, and can also check whether an object is one of Python's " +"built-in types, e.g. ``isinstance(obj, str)`` or ``isinstance(obj, (int, " +"float, complex))``." +msgstr "" + +#: ../../faq/programming.rst:1511 +msgid "" +"Note that :func:`isinstance` also checks for virtual inheritance from " +"an :term:`abstract base class`. So, the test will return ``True`` for a " +"registered class even if hasn't directly or indirectly inherited from it. " +"To test for \"true inheritance\", scan the :term:`MRO` of the class:" +msgstr "" + +#: ../../faq/programming.rst:1516 +msgid "" +"from collections.abc import Mapping\n" +"\n" +"class P:\n" +" pass\n" +"\n" +"class C(P):\n" +" pass\n" +"\n" +"Mapping.register(P)" +msgstr "" + +#: ../../faq/programming.rst:1528 +msgid "" +">>> c = C()\n" +">>> isinstance(c, C) # direct\n" +"True\n" +">>> isinstance(c, P) # indirect\n" +"True\n" +">>> isinstance(c, Mapping) # virtual\n" +"True\n" +"\n" +"# Actual inheritance chain\n" +">>> type(c).__mro__\n" +"(, , )\n" +"\n" +"# Test for \"true inheritance\"\n" +">>> Mapping in type(c).__mro__\n" +"False" +msgstr "" + +#: ../../faq/programming.rst:1546 +msgid "" +"Note that most programs do not use :func:`isinstance` on user-defined " +"classes very often. If you are developing the classes yourself, a more " +"proper object-oriented style is to define methods on the classes that " +"encapsulate a particular behaviour, instead of checking the object's class " +"and doing a different thing based on what class it is. For example, if you " +"have a function that does something::" +msgstr "" + +#: ../../faq/programming.rst:1553 +msgid "" +"def search(obj):\n" +" if isinstance(obj, Mailbox):\n" +" ... # code to search a mailbox\n" +" elif isinstance(obj, Document):\n" +" ... # code to search a document\n" +" elif ..." +msgstr "" + +#: ../../faq/programming.rst:1560 +msgid "" +"A better approach is to define a ``search()`` method on all the classes and " +"just call it::" +msgstr "" + +#: ../../faq/programming.rst:1563 +msgid "" +"class Mailbox:\n" +" def search(self):\n" +" ... # code to search a mailbox\n" +"\n" +"class Document:\n" +" def search(self):\n" +" ... # code to search a document\n" +"\n" +"obj.search()" +msgstr "" + +#: ../../faq/programming.rst:1575 +msgid "What is delegation?" +msgstr "" + +#: ../../faq/programming.rst:1577 +msgid "" +"Delegation is an object oriented technique (also called a design pattern). " +"Let's say you have an object ``x`` and want to change the behaviour of just " +"one of its methods. You can create a new class that provides a new " +"implementation of the method you're interested in changing and delegates all " +"other methods to the corresponding method of ``x``." +msgstr "" + +#: ../../faq/programming.rst:1583 +msgid "" +"Python programmers can easily implement delegation. For example, the " +"following class implements a class that behaves like a file but converts all " +"written data to uppercase::" +msgstr "" + +#: ../../faq/programming.rst:1587 +msgid "" +"class UpperOut:\n" +"\n" +" def __init__(self, outfile):\n" +" self._outfile = outfile\n" +"\n" +" def write(self, s):\n" +" self._outfile.write(s.upper())\n" +"\n" +" def __getattr__(self, name):\n" +" return getattr(self._outfile, name)" +msgstr "" + +#: ../../faq/programming.rst:1598 +msgid "" +"Here the ``UpperOut`` class redefines the ``write()`` method to convert the " +"argument string to uppercase before calling the underlying " +"``self._outfile.write()`` method. All other methods are delegated to the " +"underlying ``self._outfile`` object. The delegation is accomplished via " +"the :meth:`~object.__getattr__` method; consult :ref:`the language reference " +"` for more information about controlling attribute access." +msgstr "" + +#: ../../faq/programming.rst:1605 +msgid "" +"Note that for more general cases delegation can get trickier. When " +"attributes must be set as well as retrieved, the class must define " +"a :meth:`~object.__setattr__` method too, and it must do so carefully. The " +"basic implementation of :meth:`!__setattr__` is roughly equivalent to the " +"following::" +msgstr "" + +#: ../../faq/programming.rst:1610 +msgid "" +"class X:\n" +" ...\n" +" def __setattr__(self, name, value):\n" +" self.__dict__[name] = value\n" +" ..." +msgstr "" + +#: ../../faq/programming.rst:1616 +msgid "" +"Many :meth:`~object.__setattr__` implementations call :meth:`!" +"object.__setattr__` to set an attribute on self without causing infinite " +"recursion::" +msgstr "" + +#: ../../faq/programming.rst:1619 +msgid "" +"class X:\n" +" def __setattr__(self, name, value):\n" +" # Custom logic here...\n" +" object.__setattr__(self, name, value)" +msgstr "" + +#: ../../faq/programming.rst:1624 +msgid "" +"Alternatively, it is possible to set attributes by inserting entries " +"into :attr:`self.__dict__ ` directly." +msgstr "" + +#: ../../faq/programming.rst:1629 +msgid "" +"How do I call a method defined in a base class from a derived class that " +"extends it?" +msgstr "" + +#: ../../faq/programming.rst:1631 +msgid "Use the built-in :func:`super` function::" +msgstr "" + +#: ../../faq/programming.rst:1633 +msgid "" +"class Derived(Base):\n" +" def meth(self):\n" +" super().meth() # calls Base.meth" +msgstr "" + +#: ../../faq/programming.rst:1637 +msgid "" +"In the example, :func:`super` will automatically determine the instance from " +"which it was called (the ``self`` value), look up the :term:`method " +"resolution order` (MRO) with ``type(self).__mro__``, and return the next in " +"line after ``Derived`` in the MRO: ``Base``." +msgstr "" + +#: ../../faq/programming.rst:1644 +msgid "How can I organize my code to make it easier to change the base class?" +msgstr "" + +#: ../../faq/programming.rst:1646 +msgid "" +"You could assign the base class to an alias and derive from the alias. Then " +"all you have to change is the value assigned to the alias. Incidentally, " +"this trick is also handy if you want to decide dynamically (e.g. depending " +"on availability of resources) which base class to use. Example::" +msgstr "" + +#: ../../faq/programming.rst:1651 +msgid "" +"class Base:\n" +" ...\n" +"\n" +"BaseAlias = Base\n" +"\n" +"class Derived(BaseAlias):\n" +" ..." +msgstr "" + +#: ../../faq/programming.rst:1661 +msgid "How do I create static class data and static class methods?" +msgstr "" + +#: ../../faq/programming.rst:1663 +msgid "" +"Both static data and static methods (in the sense of C++ or Java) are " +"supported in Python." +msgstr "" + +#: ../../faq/programming.rst:1666 +msgid "" +"For static data, simply define a class attribute. To assign a new value to " +"the attribute, you have to explicitly use the class name in the assignment::" +msgstr "" + +#: ../../faq/programming.rst:1669 +msgid "" +"class C:\n" +" count = 0 # number of times C.__init__ called\n" +"\n" +" def __init__(self):\n" +" C.count = C.count + 1\n" +"\n" +" def getcount(self):\n" +" return C.count # or return self.count" +msgstr "" + +#: ../../faq/programming.rst:1678 +msgid "" +"``c.count`` also refers to ``C.count`` for any ``c`` such that " +"``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " +"class on the base-class search path from ``c.__class__`` back to ``C``." +msgstr "" + +#: ../../faq/programming.rst:1682 +msgid "" +"Caution: within a method of C, an assignment like ``self.count = 42`` " +"creates a new and unrelated instance named \"count\" in ``self``'s own " +"dict. Rebinding of a class-static data name must always specify the class " +"whether inside a method or not::" +msgstr "" + +#: ../../faq/programming.rst:1687 +msgid "C.count = 314" +msgstr "" + +#: ../../faq/programming.rst:1689 +msgid "Static methods are possible::" +msgstr "" + +#: ../../faq/programming.rst:1691 +msgid "" +"class C:\n" +" @staticmethod\n" +" def static(arg1, arg2, arg3):\n" +" # No 'self' parameter!\n" +" ..." +msgstr "" + +#: ../../faq/programming.rst:1697 +msgid "" +"However, a far more straightforward way to get the effect of a static method " +"is via a simple module-level function::" +msgstr "" + +#: ../../faq/programming.rst:1700 +msgid "" +"def getcount():\n" +" return C.count" +msgstr "" + +#: ../../faq/programming.rst:1703 +msgid "" +"If your code is structured so as to define one class (or tightly related " +"class hierarchy) per module, this supplies the desired encapsulation." +msgstr "" + +#: ../../faq/programming.rst:1708 +msgid "How can I overload constructors (or methods) in Python?" +msgstr "" + +#: ../../faq/programming.rst:1710 +msgid "" +"This answer actually applies to all methods, but the question usually comes " +"up first in the context of constructors." +msgstr "" + +#: ../../faq/programming.rst:1713 +msgid "In C++ you'd write" +msgstr "" + +#: ../../faq/programming.rst:1715 +msgid "" +"class C {\n" +" C() { cout << \"No arguments\\n\"; }\n" +" C(int i) { cout << \"Argument is \" << i << \"\\n\"; }\n" +"}" +msgstr "" + +#: ../../faq/programming.rst:1722 +msgid "" +"In Python you have to write a single constructor that catches all cases " +"using default arguments. For example::" +msgstr "" + +#: ../../faq/programming.rst:1725 +msgid "" +"class C:\n" +" def __init__(self, i=None):\n" +" if i is None:\n" +" print(\"No arguments\")\n" +" else:\n" +" print(\"Argument is\", i)" +msgstr "" + +#: ../../faq/programming.rst:1732 +msgid "This is not entirely equivalent, but close enough in practice." +msgstr "" + +#: ../../faq/programming.rst:1734 +msgid "You could also try a variable-length argument list, e.g. ::" +msgstr "" + +#: ../../faq/programming.rst:1736 +msgid "" +"def __init__(self, *args):\n" +" ..." +msgstr "" + +#: ../../faq/programming.rst:1739 +msgid "The same approach works for all method definitions." +msgstr "" + +#: ../../faq/programming.rst:1743 +msgid "I try to use __spam and I get an error about _SomeClassName__spam." +msgstr "" + +#: ../../faq/programming.rst:1745 +msgid "" +"Variable names with double leading underscores are \"mangled\" to provide a " +"simple but effective way to define class private variables. Any identifier " +"of the form ``__spam`` (at least two leading underscores, at most one " +"trailing underscore) is textually replaced with ``_classname__spam``, where " +"``classname`` is the current class name with any leading underscores " +"stripped." +msgstr "" + +#: ../../faq/programming.rst:1751 +msgid "" +"The identifier can be used unchanged within the class, but to access it " +"outside the class, the mangled name must be used:" +msgstr "" + +#: ../../faq/programming.rst:1754 +msgid "" +"class A:\n" +" def __one(self):\n" +" return 1\n" +" def two(self):\n" +" return 2 * self.__one()\n" +"\n" +"class B(A):\n" +" def three(self):\n" +" return 3 * self._A__one()\n" +"\n" +"four = 4 * A()._A__one()" +msgstr "" + +#: ../../faq/programming.rst:1768 +msgid "" +"In particular, this does not guarantee privacy since an outside user can " +"still deliberately access the private attribute; many Python programmers " +"never bother to use private variable names at all." +msgstr "" + +#: ../../faq/programming.rst:1774 +msgid "" +"The :ref:`private name mangling specifications ` for " +"details and special cases." +msgstr "" + +#: ../../faq/programming.rst:1778 +msgid "My class defines __del__ but it is not called when I delete the object." +msgstr "" + +#: ../../faq/programming.rst:1780 +msgid "There are several possible reasons for this." +msgstr "" + +#: ../../faq/programming.rst:1782 +msgid "" +"The :keyword:`del` statement does not necessarily " +"call :meth:`~object.__del__` -- it simply decrements the object's reference " +"count, and if this reaches zero :meth:`!__del__` is called." +msgstr "" + +#: ../../faq/programming.rst:1786 +msgid "" +"If your data structures contain circular links (e.g. a tree where each child " +"has a parent reference and each parent has a list of children) the reference " +"counts will never go back to zero. Once in a while Python runs an algorithm " +"to detect such cycles, but the garbage collector might run some time after " +"the last reference to your data structure vanishes, so your :meth:`!__del__` " +"method may be called at an inconvenient and random time. This is " +"inconvenient if you're trying to reproduce a problem. Worse, the order in " +"which object's :meth:`!__del__` methods are executed is arbitrary. You can " +"run :func:`gc.collect` to force a collection, but there *are* pathological " +"cases where objects will never be collected." +msgstr "" + +#: ../../faq/programming.rst:1797 +msgid "" +"Despite the cycle collector, it's still a good idea to define an explicit " +"``close()`` method on objects to be called whenever you're done with them. " +"The ``close()`` method can then remove attributes that refer to subobjects. " +"Don't call :meth:`!__del__` directly -- :meth:`!__del__` should call " +"``close()`` and ``close()`` should make sure that it can be called more than " +"once for the same object." +msgstr "" + +#: ../../faq/programming.rst:1804 +msgid "" +"Another way to avoid cyclical references is to use the :mod:`weakref` " +"module, which allows you to point to objects without incrementing their " +"reference count. Tree data structures, for instance, should use weak " +"references for their parent and sibling references (if they need them!)." +msgstr "" + +#: ../../faq/programming.rst:1817 +msgid "" +"Finally, if your :meth:`!__del__` method raises an exception, a warning " +"message is printed to :data:`sys.stderr`." +msgstr "" + +#: ../../faq/programming.rst:1822 +msgid "How do I get a list of all instances of a given class?" +msgstr "" + +#: ../../faq/programming.rst:1824 +msgid "" +"Python does not keep track of all instances of a class (or of a built-in " +"type). You can program the class's constructor to keep track of all " +"instances by keeping a list of weak references to each instance." +msgstr "" + +#: ../../faq/programming.rst:1830 +msgid "Why does the result of ``id()`` appear to be not unique?" +msgstr "" + +#: ../../faq/programming.rst:1832 +msgid "" +"The :func:`id` builtin returns an integer that is guaranteed to be unique " +"during the lifetime of the object. Since in CPython, this is the object's " +"memory address, it happens frequently that after an object is deleted from " +"memory, the next freshly created object is allocated at the same position in " +"memory. This is illustrated by this example:" +msgstr "" + +#: ../../faq/programming.rst:1843 +msgid "" +"The two ids belong to different integer objects that are created before, and " +"deleted immediately after execution of the ``id()`` call. To be sure that " +"objects whose id you want to examine are still alive, create another " +"reference to the object:" +msgstr "" + +#: ../../faq/programming.rst:1856 +msgid "When can I rely on identity tests with the *is* operator?" +msgstr "" + +#: ../../faq/programming.rst:1858 +msgid "" +"The ``is`` operator tests for object identity. The test ``a is b`` is " +"equivalent to ``id(a) == id(b)``." +msgstr "" + +#: ../../faq/programming.rst:1861 +msgid "" +"The most important property of an identity test is that an object is always " +"identical to itself, ``a is a`` always returns ``True``. Identity tests are " +"usually faster than equality tests. And unlike equality tests, identity " +"tests are guaranteed to return a boolean ``True`` or ``False``." +msgstr "" + +#: ../../faq/programming.rst:1866 +msgid "" +"However, identity tests can *only* be substituted for equality tests when " +"object identity is assured. Generally, there are three circumstances where " +"identity is guaranteed:" +msgstr "" + +#: ../../faq/programming.rst:1870 +msgid "" +"Assignments create new names but do not change object identity. After the " +"assignment ``new = old``, it is guaranteed that ``new is old``." +msgstr "" + +#: ../../faq/programming.rst:1873 +msgid "" +"Putting an object in a container that stores object references does not " +"change object identity. After the list assignment ``s[0] = x``, it is " +"guaranteed that ``s[0] is x``." +msgstr "" + +#: ../../faq/programming.rst:1877 +msgid "" +"If an object is a singleton, it means that only one instance of that object " +"can exist. After the assignments ``a = None`` and ``b = None``, it is " +"guaranteed that ``a is b`` because ``None`` is a singleton." +msgstr "" + +#: ../../faq/programming.rst:1881 +msgid "" +"In most other circumstances, identity tests are inadvisable and equality " +"tests are preferred. In particular, identity tests should not be used to " +"check constants such as :class:`int` and :class:`str` which aren't " +"guaranteed to be singletons::" +msgstr "" + +#: ../../faq/programming.rst:1886 +msgid "" +">>> a = 1000\n" +">>> b = 500\n" +">>> c = b + 500\n" +">>> a is c\n" +"False\n" +"\n" +">>> a = 'Python'\n" +">>> b = 'Py'\n" +">>> c = b + 'thon'\n" +">>> a is c\n" +"False" +msgstr "" + +#: ../../faq/programming.rst:1898 +msgid "Likewise, new instances of mutable containers are never identical::" +msgstr "" + +#: ../../faq/programming.rst:1900 +msgid "" +">>> a = []\n" +">>> b = []\n" +">>> a is b\n" +"False" +msgstr "" + +#: ../../faq/programming.rst:1905 +msgid "" +"In the standard library code, you will see several common patterns for " +"correctly using identity tests:" +msgstr "" + +#: ../../faq/programming.rst:1908 +msgid "" +"As recommended by :pep:`8`, an identity test is the preferred way to check " +"for ``None``. This reads like plain English in code and avoids confusion " +"with other objects that may have boolean values that evaluate to false." +msgstr "" + +#: ../../faq/programming.rst:1912 +msgid "" +"Detecting optional arguments can be tricky when ``None`` is a valid input " +"value. In those situations, you can create a singleton sentinel object " +"guaranteed to be distinct from other objects. For example, here is how to " +"implement a method that behaves like :meth:`dict.pop`:" +msgstr "" + +#: ../../faq/programming.rst:1917 +msgid "" +"_sentinel = object()\n" +"\n" +"def pop(self, key, default=_sentinel):\n" +" if key in self:\n" +" value = self[key]\n" +" del self[key]\n" +" return value\n" +" if default is _sentinel:\n" +" raise KeyError(key)\n" +" return default" +msgstr "" + +#: ../../faq/programming.rst:1930 +msgid "" +"Container implementations sometimes need to augment equality tests with " +"identity tests. This prevents the code from being confused by objects such " +"as ``float('NaN')`` that are not equal to themselves." +msgstr "" + +#: ../../faq/programming.rst:1934 +msgid "" +"For example, here is the implementation of :meth:`!" +"collections.abc.Sequence.__contains__`::" +msgstr "" + +#: ../../faq/programming.rst:1937 +msgid "" +"def __contains__(self, value):\n" +" for v in self:\n" +" if v is value or v == value:\n" +" return True\n" +" return False" +msgstr "" + +#: ../../faq/programming.rst:1945 +msgid "" +"How can a subclass control what data is stored in an immutable instance?" +msgstr "" + +#: ../../faq/programming.rst:1947 +msgid "" +"When subclassing an immutable type, override the :meth:`~object.__new__` " +"method instead of the :meth:`~object.__init__` method. The latter only runs " +"*after* an instance is created, which is too late to alter data in an " +"immutable instance." +msgstr "" + +#: ../../faq/programming.rst:1952 +msgid "" +"All of these immutable classes have a different signature than their parent " +"class:" +msgstr "" + +#: ../../faq/programming.rst:1955 +msgid "" +"from datetime import date\n" +"\n" +"class FirstOfMonthDate(date):\n" +" \"Always choose the first day of the month\"\n" +" def __new__(cls, year, month, day):\n" +" return super().__new__(cls, year, month, 1)\n" +"\n" +"class NamedInt(int):\n" +" \"Allow text names for some numbers\"\n" +" xlat = {'zero': 0, 'one': 1, 'ten': 10}\n" +" def __new__(cls, value):\n" +" value = cls.xlat.get(value, value)\n" +" return super().__new__(cls, value)\n" +"\n" +"class TitleStr(str):\n" +" \"Convert str to name suitable for a URL path\"\n" +" def __new__(cls, s):\n" +" s = s.lower().replace(' ', '-')\n" +" s = ''.join([c for c in s if c.isalnum() or c == '-'])\n" +" return super().__new__(cls, s)" +msgstr "" + +#: ../../faq/programming.rst:1978 +msgid "The classes can be used like this:" +msgstr "" + +#: ../../faq/programming.rst:1980 +msgid "" +">>> FirstOfMonthDate(2012, 2, 14)\n" +"FirstOfMonthDate(2012, 2, 1)\n" +">>> NamedInt('ten')\n" +"10\n" +">>> NamedInt(20)\n" +"20\n" +">>> TitleStr('Blog: Why Python Rocks')\n" +"'blog-why-python-rocks'" +msgstr "" + +#: ../../faq/programming.rst:1995 +msgid "How do I cache method calls?" +msgstr "" + +#: ../../faq/programming.rst:1997 +msgid "" +"The two principal tools for caching methods " +"are :func:`functools.cached_property` and :func:`functools.lru_cache`. The " +"former stores results at the instance level and the latter at the class " +"level." +msgstr "" + +#: ../../faq/programming.rst:2002 +msgid "" +"The *cached_property* approach only works with methods that do not take any " +"arguments. It does not create a reference to the instance. The cached " +"method result will be kept only as long as the instance is alive." +msgstr "" + +#: ../../faq/programming.rst:2006 +msgid "" +"The advantage is that when an instance is no longer used, the cached method " +"result will be released right away. The disadvantage is that if instances " +"accumulate, so too will the accumulated method results. They can grow " +"without bound." +msgstr "" + +#: ../../faq/programming.rst:2011 +msgid "" +"The *lru_cache* approach works with methods that have :term:`hashable` " +"arguments. It creates a reference to the instance unless special efforts " +"are made to pass in weak references." +msgstr "" + +#: ../../faq/programming.rst:2015 +msgid "" +"The advantage of the least recently used algorithm is that the cache is " +"bounded by the specified *maxsize*. The disadvantage is that instances are " +"kept alive until they age out of the cache or until the cache is cleared." +msgstr "" + +#: ../../faq/programming.rst:2020 +msgid "This example shows the various techniques::" +msgstr "" + +#: ../../faq/programming.rst:2022 +msgid "" +"class Weather:\n" +" \"Lookup weather information on a government website\"\n" +"\n" +" def __init__(self, station_id):\n" +" self._station_id = station_id\n" +" # The _station_id is private and immutable\n" +"\n" +" def current_temperature(self):\n" +" \"Latest hourly observation\"\n" +" # Do not cache this because old results\n" +" # can be out of date.\n" +"\n" +" @cached_property\n" +" def location(self):\n" +" \"Return the longitude/latitude coordinates of the station\"\n" +" # Result only depends on the station_id\n" +"\n" +" @lru_cache(maxsize=20)\n" +" def historic_rainfall(self, date, units='mm'):\n" +" \"Rainfall on a given date\"\n" +" # Depends on the station_id, date, and units." +msgstr "" + +#: ../../faq/programming.rst:2044 +msgid "" +"The above example assumes that the *station_id* never changes. If the " +"relevant instance attributes are mutable, the *cached_property* approach " +"can't be made to work because it cannot detect changes to the attributes." +msgstr "" + +#: ../../faq/programming.rst:2049 +msgid "" +"To make the *lru_cache* approach work when the *station_id* is mutable, the " +"class needs to define the :meth:`~object.__eq__` " +"and :meth:`~object.__hash__` methods so that the cache can detect relevant " +"attribute updates::" +msgstr "" + +#: ../../faq/programming.rst:2053 +msgid "" +"class Weather:\n" +" \"Example with a mutable station identifier\"\n" +"\n" +" def __init__(self, station_id):\n" +" self.station_id = station_id\n" +"\n" +" def change_station(self, station_id):\n" +" self.station_id = station_id\n" +"\n" +" def __eq__(self, other):\n" +" return self.station_id == other.station_id\n" +"\n" +" def __hash__(self):\n" +" return hash(self.station_id)\n" +"\n" +" @lru_cache(maxsize=20)\n" +" def historic_rainfall(self, date, units='cm'):\n" +" 'Rainfall on a given date'\n" +" # Depends on the station_id, date, and units." +msgstr "" + +#: ../../faq/programming.rst:2075 +msgid "Modules" +msgstr "Modulok" + +#: ../../faq/programming.rst:2078 +msgid "How do I create a .pyc file?" +msgstr "" + +#: ../../faq/programming.rst:2080 +msgid "" +"When a module is imported for the first time (or when the source file has " +"changed since the current compiled file was created) a ``.pyc`` file " +"containing the compiled code should be created in a ``__pycache__`` " +"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " +"file will have a filename that starts with the same name as the ``.py`` " +"file, and ends with ``.pyc``, with a middle component that depends on the " +"particular ``python`` binary that created it. (See :pep:`3147` for details.)" +msgstr "" + +#: ../../faq/programming.rst:2088 +msgid "" +"One reason that a ``.pyc`` file may not be created is a permissions problem " +"with the directory containing the source file, meaning that the " +"``__pycache__`` subdirectory cannot be created. This can happen, for " +"example, if you develop as one user but run as another, such as if you are " +"testing with a web server." +msgstr "" + +#: ../../faq/programming.rst:2093 +msgid "" +"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " +"creation of a .pyc file is automatic if you're importing a module and Python " +"has the ability (permissions, free space, etc...) to create a " +"``__pycache__`` subdirectory and write the compiled module to that " +"subdirectory." +msgstr "" + +#: ../../faq/programming.rst:2098 +msgid "" +"Running Python on a top level script is not considered an import and no " +"``.pyc`` will be created. For example, if you have a top-level module " +"``foo.py`` that imports another module ``xyz.py``, when you run ``foo`` (by " +"typing ``python foo.py`` as a shell command), a ``.pyc`` will be created for " +"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " +"for ``foo`` since ``foo.py`` isn't being imported." +msgstr "" + +#: ../../faq/programming.rst:2105 +msgid "" +"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a " +"``.pyc`` file for a module that is not imported -- you can, using " +"the :mod:`py_compile` and :mod:`compileall` modules." +msgstr "" + +#: ../../faq/programming.rst:2109 +msgid "" +"The :mod:`py_compile` module can manually compile any module. One way is to " +"use the ``compile()`` function in that module interactively::" +msgstr "" + +#: ../../faq/programming.rst:2112 +msgid "" +">>> import py_compile\n" +">>> py_compile.compile('foo.py')" +msgstr "" + +#: ../../faq/programming.rst:2115 +msgid "" +"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " +"location as ``foo.py`` (or you can override that with the optional parameter " +"``cfile``)." +msgstr "" + +#: ../../faq/programming.rst:2119 +msgid "" +"You can also automatically compile all files in a directory or directories " +"using the :mod:`compileall` module. You can do it from the shell prompt by " +"running ``compileall.py`` and providing the path of a directory containing " +"Python files to compile::" +msgstr "" + +#: ../../faq/programming.rst:2124 +msgid "python -m compileall ." +msgstr "" + +#: ../../faq/programming.rst:2128 +msgid "How do I find the current module name?" +msgstr "" + +#: ../../faq/programming.rst:2130 +msgid "" +"A module can find out its own module name by looking at the predefined " +"global variable ``__name__``. If this has the value ``'__main__'``, the " +"program is running as a script. Many modules that are usually used by " +"importing them also provide a command-line interface or a self-test, and " +"only execute this code after checking ``__name__``::" +msgstr "" + +#: ../../faq/programming.rst:2136 +msgid "" +"def main():\n" +" print('Running test...')\n" +" ...\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../faq/programming.rst:2145 +msgid "How can I have modules that mutually import each other?" +msgstr "" + +#: ../../faq/programming.rst:2147 +msgid "Suppose you have the following modules:" +msgstr "" + +#: ../../faq/programming.rst:2149 +msgid ":file:`foo.py`::" +msgstr "" + +#: ../../faq/programming.rst:2151 +msgid "" +"from bar import bar_var\n" +"foo_var = 1" +msgstr "" + +#: ../../faq/programming.rst:2154 +msgid ":file:`bar.py`::" +msgstr "" + +#: ../../faq/programming.rst:2156 +msgid "" +"from foo import foo_var\n" +"bar_var = 2" +msgstr "" + +#: ../../faq/programming.rst:2159 +msgid "The problem is that the interpreter will perform the following steps:" +msgstr "" + +#: ../../faq/programming.rst:2161 +msgid "main imports ``foo``" +msgstr "" + +#: ../../faq/programming.rst:2162 +msgid "Empty globals for ``foo`` are created" +msgstr "" + +#: ../../faq/programming.rst:2163 +msgid "``foo`` is compiled and starts executing" +msgstr "" + +#: ../../faq/programming.rst:2164 +msgid "``foo`` imports ``bar``" +msgstr "" + +#: ../../faq/programming.rst:2165 +msgid "Empty globals for ``bar`` are created" +msgstr "" + +#: ../../faq/programming.rst:2166 +msgid "``bar`` is compiled and starts executing" +msgstr "" + +#: ../../faq/programming.rst:2167 +msgid "" +"``bar`` imports ``foo`` (which is a no-op since there already is a module " +"named ``foo``)" +msgstr "" + +#: ../../faq/programming.rst:2168 +msgid "" +"The import mechanism tries to read ``foo_var`` from ``foo`` globals, to set " +"``bar.foo_var = foo.foo_var``" +msgstr "" + +#: ../../faq/programming.rst:2170 +msgid "" +"The last step fails, because Python isn't done with interpreting ``foo`` yet " +"and the global symbol dictionary for ``foo`` is still empty." +msgstr "" + +#: ../../faq/programming.rst:2173 +msgid "" +"The same thing happens when you use ``import foo``, and then try to access " +"``foo.foo_var`` in global code." +msgstr "" + +#: ../../faq/programming.rst:2176 +msgid "There are (at least) three possible workarounds for this problem." +msgstr "" + +#: ../../faq/programming.rst:2178 +msgid "" +"Guido van Rossum recommends avoiding all uses of ``from " +"import ...``, and placing all code inside functions. Initializations of " +"global variables and class variables should use constants or built-in " +"functions only. This means everything from an imported module is referenced " +"as ``.``." +msgstr "" + +#: ../../faq/programming.rst:2183 +msgid "" +"Jim Roskind suggests performing steps in the following order in each module:" +msgstr "" + +#: ../../faq/programming.rst:2185 +msgid "" +"exports (globals, functions, and classes that don't need imported base " +"classes)" +msgstr "" + +#: ../../faq/programming.rst:2187 +msgid "``import`` statements" +msgstr "" + +#: ../../faq/programming.rst:2188 +msgid "" +"active code (including globals that are initialized from imported values)." +msgstr "" + +#: ../../faq/programming.rst:2190 +msgid "" +"Van Rossum doesn't like this approach much because the imports appear in a " +"strange place, but it does work." +msgstr "" + +#: ../../faq/programming.rst:2193 +msgid "" +"Matthias Urlichs recommends restructuring your code so that the recursive " +"import is not necessary in the first place." +msgstr "" + +#: ../../faq/programming.rst:2196 +msgid "These solutions are not mutually exclusive." +msgstr "" + +#: ../../faq/programming.rst:2200 +msgid "__import__('x.y.z') returns ; how do I get z?" +msgstr "" + +#: ../../faq/programming.rst:2202 +msgid "" +"Consider using the convenience function :func:`~importlib.import_module` " +"from :mod:`importlib` instead::" +msgstr "" + +#: ../../faq/programming.rst:2205 +msgid "z = importlib.import_module('x.y.z')" +msgstr "" + +#: ../../faq/programming.rst:2209 +msgid "" +"When I edit an imported module and reimport it, the changes don't show up. " +"Why does this happen?" +msgstr "" + +#: ../../faq/programming.rst:2211 +msgid "" +"For reasons of efficiency as well as consistency, Python only reads the " +"module file on the first time a module is imported. If it didn't, in a " +"program consisting of many modules where each one imports the same basic " +"module, the basic module would be parsed and re-parsed many times. To force " +"re-reading of a changed module, do this::" +msgstr "" + +#: ../../faq/programming.rst:2217 +msgid "" +"import importlib\n" +"import modname\n" +"importlib.reload(modname)" +msgstr "" + +#: ../../faq/programming.rst:2221 +msgid "" +"Warning: this technique is not 100% fool-proof. In particular, modules " +"containing statements like ::" +msgstr "" + +#: ../../faq/programming.rst:2224 +msgid "from modname import some_objects" +msgstr "" + +#: ../../faq/programming.rst:2226 +msgid "" +"will continue to work with the old version of the imported objects. If the " +"module contains class definitions, existing class instances will *not* be " +"updated to use the new class definition. This can result in the following " +"paradoxical behaviour::" +msgstr "" + +#: ../../faq/programming.rst:2231 +msgid "" +">>> import importlib\n" +">>> import cls\n" +">>> c = cls.C() # Create an instance of C\n" +">>> importlib.reload(cls)\n" +"\n" +">>> isinstance(c, cls.C) # isinstance is false?!?\n" +"False" +msgstr "" + +#: ../../faq/programming.rst:2239 +msgid "" +"The nature of the problem is made clear if you print out the \"identity\" of " +"the class objects::" +msgstr "" + +#: ../../faq/programming.rst:2242 +msgid "" +">>> hex(id(c.__class__))\n" +"'0x7352a0'\n" +">>> hex(id(cls.C))\n" +"'0x4198d0'" +msgstr "" + +#: ../../faq/programming.rst:408 +msgid "argument" +msgstr "" + +#: ../../faq/programming.rst:408 +msgid "difference from parameter" +msgstr "" + +#: ../../faq/programming.rst:408 +msgid "parameter" +msgstr "" + +#: ../../faq/programming.rst:408 +msgid "difference from argument" +msgstr "" diff --git a/faq/windows.po b/faq/windows.po new file mode 100644 index 0000000..3496e81 --- /dev/null +++ b/faq/windows.po @@ -0,0 +1,423 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../faq/windows.rst:9 +msgid "Python on Windows FAQ" +msgstr "" + +#: ../../faq/windows.rst:12 +msgid "Contents" +msgstr "" + +#: ../../faq/windows.rst:22 +msgid "How do I run a Python program under Windows?" +msgstr "" + +#: ../../faq/windows.rst:24 +msgid "" +"This is not necessarily a straightforward question. If you are already " +"familiar with running programs from the Windows command line then everything " +"will seem obvious; otherwise, you might need a little more guidance." +msgstr "" + +#: ../../faq/windows.rst:28 +msgid "" +"Unless you use some sort of integrated development environment, you will end " +"up *typing* Windows commands into what is referred to as a \"Command prompt " +"window\". Usually you can create such a window from your search bar by " +"searching for ``cmd``. You should be able to recognize when you have " +"started such a window because you will see a Windows \"command prompt\", " +"which usually looks like this:" +msgstr "" + +#: ../../faq/windows.rst:35 +msgid "C:\\>" +msgstr "" + +#: ../../faq/windows.rst:39 +msgid "" +"The letter may be different, and there might be other things after it, so " +"you might just as easily see something like:" +msgstr "" + +#: ../../faq/windows.rst:42 +msgid "D:\\YourName\\Projects\\Python>" +msgstr "" + +#: ../../faq/windows.rst:46 +msgid "" +"depending on how your computer has been set up and what else you have " +"recently done with it. Once you have started such a window, you are well on " +"the way to running Python programs." +msgstr "" + +#: ../../faq/windows.rst:50 +msgid "" +"You need to realize that your Python scripts have to be processed by another " +"program called the Python *interpreter*. The interpreter reads your script, " +"compiles it into bytecodes, and then executes the bytecodes to run your " +"program. So, how do you arrange for the interpreter to handle your Python?" +msgstr "" + +#: ../../faq/windows.rst:55 +msgid "" +"First, you need to make sure that your command window recognises the word " +"\"py\" as an instruction to start the interpreter. If you have opened a " +"command window, you should try entering the command ``py`` and hitting " +"return:" +msgstr "" + +#: ../../faq/windows.rst:60 +msgid "C:\\Users\\YourName> py" +msgstr "" + +#: ../../faq/windows.rst:64 +msgid "You should then see something like:" +msgstr "" + +#: ../../faq/windows.rst:66 +msgid "" +"Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit " +"(Intel)] on win32\n" +"Type \"help\", \"copyright\", \"credits\" or \"license\" for more " +"information.\n" +">>>" +msgstr "" + +#: ../../faq/windows.rst:72 +msgid "" +"You have started the interpreter in \"interactive mode\". That means you can " +"enter Python statements or expressions interactively and have them executed " +"or evaluated while you wait. This is one of Python's strongest features. " +"Check it by entering a few expressions of your choice and seeing the results:" +msgstr "" + +#: ../../faq/windows.rst:77 +msgid "" +">>> print(\"Hello\")\n" +"Hello\n" +">>> \"Hello\" * 3\n" +"'HelloHelloHello'" +msgstr "" + +#: ../../faq/windows.rst:84 +msgid "" +"Many people use the interactive mode as a convenient yet highly programmable " +"calculator. When you want to end your interactive Python session, call " +"the :func:`exit` function or hold the :kbd:`Ctrl` key down while you enter " +"a :kbd:`Z`, then hit the \":kbd:`Enter`\" key to get back to your Windows " +"command prompt." +msgstr "" + +#: ../../faq/windows.rst:90 +msgid "" +"You may also find that you have a Start-menu entry such " +"as :menuselection:`Start --> Programs --> Python 3.x --> Python (command " +"line)` that results in you seeing the ``>>>`` prompt in a new window. If " +"so, the window will disappear after you call the :func:`exit` function or " +"enter the :kbd:`Ctrl-Z` character; Windows is running a single \"python\" " +"command in the window, and closes it when you terminate the interpreter." +msgstr "" + +#: ../../faq/windows.rst:97 +msgid "" +"Now that we know the ``py`` command is recognized, you can give your Python " +"script to it. You'll have to give either an absolute or a relative path to " +"the Python script. Let's say your Python script is located in your desktop " +"and is named ``hello.py``, and your command prompt is nicely opened in your " +"home directory so you're seeing something similar to::" +msgstr "" + +#: ../../faq/windows.rst:104 +msgid "C:\\Users\\YourName>" +msgstr "" + +#: ../../faq/windows.rst:106 +msgid "" +"So now you'll ask the ``py`` command to give your script to Python by typing " +"``py`` followed by your script path::" +msgstr "" + +#: ../../faq/windows.rst:110 +msgid "" +"C:\\Users\\YourName> py Desktop\\hello.py\n" +"hello" +msgstr "" + +#: ../../faq/windows.rst:114 +msgid "How do I make Python scripts executable?" +msgstr "" + +#: ../../faq/windows.rst:116 +msgid "" +"On Windows, the standard Python installer already associates the .py " +"extension with a file type (Python.File) and gives that file type an open " +"command that runs the interpreter (``D:\\Program Files\\Python\\python.exe " +"\"%1\" %*``). This is enough to make scripts executable from the command " +"prompt as 'foo.py'. If you'd rather be able to execute the script by simple " +"typing 'foo' with no extension you need to add .py to the PATHEXT " +"environment variable." +msgstr "" + +#: ../../faq/windows.rst:124 +msgid "Why does Python sometimes take so long to start?" +msgstr "" + +#: ../../faq/windows.rst:126 +msgid "" +"Usually Python starts very quickly on Windows, but occasionally there are " +"bug reports that Python suddenly begins to take a long time to start up. " +"This is made even more puzzling because Python will work fine on other " +"Windows systems which appear to be configured identically." +msgstr "" + +#: ../../faq/windows.rst:131 +msgid "" +"The problem may be caused by a misconfiguration of virus checking software " +"on the problem machine. Some virus scanners have been known to introduce " +"startup overhead of two orders of magnitude when the scanner is configured " +"to monitor all reads from the filesystem. Try checking the configuration of " +"virus scanning software on your systems to ensure that they are indeed " +"configured identically. McAfee, when configured to scan all file system read " +"activity, is a particular offender." +msgstr "" + +#: ../../faq/windows.rst:141 +msgid "How do I make an executable from a Python script?" +msgstr "" + +#: ../../faq/windows.rst:143 +msgid "" +"See :ref:`faq-create-standalone-binary` for a list of tools that can be used " +"to make executables." +msgstr "" + +#: ../../faq/windows.rst:148 +msgid "Is a ``*.pyd`` file the same as a DLL?" +msgstr "" + +#: ../../faq/windows.rst:150 +msgid "" +"Yes, .pyd files are dll's, but there are a few differences. If you have a " +"DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You " +"can then write Python \"import foo\", and Python will search for foo.pyd (as " +"well as foo.py, foo.pyc) and if it finds it, will attempt to call " +"``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " +"as that would cause Windows to require the DLL to be present." +msgstr "" + +#: ../../faq/windows.rst:157 +msgid "" +"Note that the search path for foo.pyd is PYTHONPATH, not the same as the " +"path that Windows uses to search for foo.dll. Also, foo.pyd need not be " +"present to run your program, whereas if you linked your program with a dll, " +"the dll is required. Of course, foo.pyd is required if you want to say " +"``import foo``. In a DLL, linkage is declared in the source code with " +"``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of " +"available functions." +msgstr "" + +#: ../../faq/windows.rst:166 +msgid "How can I embed Python into a Windows application?" +msgstr "" + +#: ../../faq/windows.rst:168 +msgid "" +"Embedding the Python interpreter in a Windows app can be summarized as " +"follows:" +msgstr "" + +#: ../../faq/windows.rst:170 +msgid "" +"Do **not** build Python into your .exe file directly. On Windows, Python " +"must be a DLL to handle importing modules that are themselves DLL's. (This " +"is the first key undocumented fact.) Instead, link " +"to :file:`python{NN}.dll`; it is typically installed in ``C:" +"\\Windows\\System``. *NN* is the Python version, a number such as \"33\" " +"for Python 3.3." +msgstr "" + +#: ../../faq/windows.rst:176 +msgid "" +"You can link to Python in two different ways. Load-time linking means " +"linking against :file:`python{NN}.lib`, while run-time linking means linking " +"against :file:`python{NN}.dll`. (General note: :file:`python{NN}.lib` is " +"the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It " +"merely defines symbols for the linker.)" +msgstr "" + +#: ../../faq/windows.rst:182 +msgid "" +"Run-time linking greatly simplifies link options; everything happens at run " +"time. Your code must load :file:`python{NN}.dll` using the Windows " +"``LoadLibraryEx()`` routine. The code must also use access routines and " +"data in :file:`python{NN}.dll` (that is, Python's C API's) using pointers " +"obtained by the Windows ``GetProcAddress()`` routine. Macros can make using " +"these pointers transparent to any C code that calls routines in Python's C " +"API." +msgstr "" + +#: ../../faq/windows.rst:191 +msgid "" +"If you use SWIG, it is easy to create a Python \"extension module\" that " +"will make the app's data and methods available to Python. SWIG will handle " +"just about all the grungy details for you. The result is C code that you " +"link *into* your .exe file (!) You do **not** have to create a DLL file, " +"and this also simplifies linking." +msgstr "" + +#: ../../faq/windows.rst:197 +msgid "" +"SWIG will create an init function (a C function) whose name depends on the " +"name of the extension module. For example, if the name of the module is " +"leo, the init function will be called initleo(). If you use SWIG shadow " +"classes, as you should, the init function will be called initleoc(). This " +"initializes a mostly hidden helper class used by the shadow class." +msgstr "" + +#: ../../faq/windows.rst:203 +msgid "" +"The reason you can link the C code in step 2 into your .exe file is that " +"calling the initialization function is equivalent to importing the module " +"into Python! (This is the second key undocumented fact.)" +msgstr "" + +#: ../../faq/windows.rst:207 +msgid "" +"In short, you can use the following code to initialize the Python " +"interpreter with your extension module." +msgstr "" + +#: ../../faq/windows.rst:210 +msgid "" +"#include \n" +"...\n" +"Py_Initialize(); // Initialize Python.\n" +"initmyAppc(); // Initialize (import) the helper class.\n" +"PyRun_SimpleString(\"import myApp\"); // Import the shadow class." +msgstr "" + +#: ../../faq/windows.rst:218 +msgid "" +"There are two problems with Python's C API which will become apparent if you " +"use a compiler other than MSVC, the compiler used to build pythonNN.dll." +msgstr "" + +#: ../../faq/windows.rst:221 +msgid "" +"Problem 1: The so-called \"Very High Level\" functions that take ``FILE *`` " +"arguments will not work in a multi-compiler environment because each " +"compiler's notion of a ``struct FILE`` will be different. From an " +"implementation standpoint these are very low level functions." +msgstr "" + +#: ../../faq/windows.rst:226 +msgid "" +"Problem 2: SWIG generates the following code when generating wrappers to " +"void functions:" +msgstr "" + +#: ../../faq/windows.rst:229 +msgid "" +"Py_INCREF(Py_None);\n" +"_resultobj = Py_None;\n" +"return _resultobj;" +msgstr "" + +#: ../../faq/windows.rst:235 +msgid "" +"Alas, Py_None is a macro that expands to a reference to a complex data " +"structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " +"fail in a mult-compiler environment. Replace such code by:" +msgstr "" + +#: ../../faq/windows.rst:239 +msgid "return Py_BuildValue(\"\");" +msgstr "" + +#: ../../faq/windows.rst:243 +msgid "" +"It may be possible to use SWIG's ``%typemap`` command to make the change " +"automatically, though I have not been able to get this to work (I'm a " +"complete SWIG newbie)." +msgstr "" + +#: ../../faq/windows.rst:247 +msgid "" +"Using a Python shell script to put up a Python interpreter window from " +"inside your Windows app is not a good idea; the resulting window will be " +"independent of your app's windowing system. Rather, you (or the " +"wxPythonWindow class) should create a \"native\" interpreter window. It is " +"easy to connect that window to the Python interpreter. You can redirect " +"Python's i/o to _any_ object that supports read and write, so all you need " +"is a Python object (defined in your extension module) that contains read() " +"and write() methods." +msgstr "" + +#: ../../faq/windows.rst:256 +msgid "How do I keep editors from inserting tabs into my Python source?" +msgstr "" + +#: ../../faq/windows.rst:258 +msgid "" +"The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, " +"recommends 4 spaces for distributed Python code; this is also the Emacs " +"python-mode default." +msgstr "" + +#: ../../faq/windows.rst:262 +msgid "" +"Under any editor, mixing tabs and spaces is a bad idea. MSVC is no " +"different in this respect, and is easily configured to use spaces: " +"Take :menuselection:`Tools --> Options --> Tabs`, and for file type " +"\"Default\" set \"Tab size\" and \"Indent size\" to 4, and select the " +"\"Insert spaces\" radio button." +msgstr "" + +#: ../../faq/windows.rst:267 +msgid "" +"Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and " +"spaces are causing problems in leading whitespace. You may also run " +"the :mod:`tabnanny` module to check a directory tree in batch mode." +msgstr "" + +#: ../../faq/windows.rst:274 +msgid "How do I check for a keypress without blocking?" +msgstr "" + +#: ../../faq/windows.rst:276 +msgid "" +"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " +"module. It defines a function ``kbhit()`` which checks whether a keyboard " +"hit is present, and ``getch()`` which gets one character without echoing it." +msgstr "" + +#: ../../faq/windows.rst:281 +msgid "How do I solve the missing api-ms-win-crt-runtime-l1-1-0.dll error?" +msgstr "" + +#: ../../faq/windows.rst:283 +msgid "" +"This can occur on Python 3.5 and later when using Windows 8.1 or earlier " +"without all updates having been installed. First ensure your operating " +"system is supported and is up to date, and if that does not resolve the " +"issue, visit the `Microsoft support page `_ for guidance on manually installing the C Runtime update." +msgstr "" diff --git a/howto/annotations.po b/howto/annotations.po new file mode 100644 index 0000000..5ef6c7c --- /dev/null +++ b/howto/annotations.po @@ -0,0 +1,393 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/annotations.rst:5 +msgid "Annotations Best Practices" +msgstr "" + +#: ../../howto/annotations.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/annotations.rst:7 +msgid "Larry Hastings" +msgstr "" + +#: ../../howto/annotations.rst-1 +msgid "Abstract" +msgstr "" + +#: ../../howto/annotations.rst:11 +msgid "" +"This document is designed to encapsulate the best practices for working with " +"annotations dicts. If you write Python code that examines " +"``__annotations__`` on Python objects, we encourage you to follow the " +"guidelines described below." +msgstr "" + +#: ../../howto/annotations.rst:16 +msgid "" +"The document is organized into four sections: best practices for accessing " +"the annotations of an object in Python versions 3.10 and newer, best " +"practices for accessing the annotations of an object in Python versions 3.9 " +"and older, other best practices for ``__annotations__`` that apply to any " +"Python version, and quirks of ``__annotations__``." +msgstr "" + +#: ../../howto/annotations.rst:26 +msgid "" +"Note that this document is specifically about working with " +"``__annotations__``, not uses *for* annotations. If you're looking for " +"information on how to use \"type hints\" in your code, please see " +"the :mod:`typing` module." +msgstr "" + +#: ../../howto/annotations.rst:33 +msgid "Accessing The Annotations Dict Of An Object In Python 3.10 And Newer" +msgstr "" + +#: ../../howto/annotations.rst:35 +msgid "" +"Python 3.10 adds a new function to the standard " +"library: :func:`inspect.get_annotations`. In Python versions 3.10 through " +"3.13, calling this function is the best practice for accessing the " +"annotations dict of any object that supports annotations. This function can " +"also \"un-stringize\" stringized annotations for you." +msgstr "" + +#: ../../howto/annotations.rst:42 +msgid "" +"In Python 3.14, there is a new :mod:`annotationlib` module with " +"functionality for working with annotations. This includes " +"a :func:`annotationlib.get_annotations` function, which " +"supersedes :func:`inspect.get_annotations`." +msgstr "" + +#: ../../howto/annotations.rst:47 +msgid "" +"If for some reason :func:`inspect.get_annotations` isn't viable for your use " +"case, you may access the ``__annotations__`` data member manually. Best " +"practice for this changed in Python 3.10 as well: as of Python 3.10, " +"``o.__annotations__`` is guaranteed to *always* work on Python functions, " +"classes, and modules. If you're certain the object you're examining is one " +"of these three *specific* objects, you may simply use ``o.__annotations__`` " +"to get at the object's annotations dict." +msgstr "" + +#: ../../howto/annotations.rst:57 +msgid "" +"However, other types of callables--for example, callables created " +"by :func:`functools.partial`--may not have an ``__annotations__`` attribute " +"defined. When accessing the ``__annotations__`` of a possibly unknown " +"object, best practice in Python versions 3.10 and newer is to " +"call :func:`getattr` with three arguments, for example ``getattr(o, " +"'__annotations__', None)``." +msgstr "" + +#: ../../howto/annotations.rst:65 +msgid "" +"Before Python 3.10, accessing ``__annotations__`` on a class that defines no " +"annotations but that has a parent class with annotations would return the " +"parent's ``__annotations__``. In Python 3.10 and newer, the child class's " +"annotations will be an empty dict instead." +msgstr "" + +#: ../../howto/annotations.rst:73 +msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older" +msgstr "" + +#: ../../howto/annotations.rst:75 +msgid "" +"In Python 3.9 and older, accessing the annotations dict of an object is much " +"more complicated than in newer versions. The problem is a design flaw in " +"these older versions of Python, specifically to do with class annotations." +msgstr "" + +#: ../../howto/annotations.rst:80 +msgid "" +"Best practice for accessing the annotations dict of other objects--" +"functions, other callables, and modules--is the same as best practice for " +"3.10, assuming you aren't calling :func:`inspect.get_annotations`: you " +"should use three-argument :func:`getattr` to access the object's " +"``__annotations__`` attribute." +msgstr "" + +#: ../../howto/annotations.rst:87 +msgid "" +"Unfortunately, this isn't best practice for classes. The problem is that, " +"since ``__annotations__`` is optional on classes, and because classes can " +"inherit attributes from their base classes, accessing the " +"``__annotations__`` attribute of a class may inadvertently return the " +"annotations dict of a *base class.* As an example::" +msgstr "" + +#: ../../howto/annotations.rst:94 +msgid "" +"class Base:\n" +" a: int = 3\n" +" b: str = 'abc'\n" +"\n" +"class Derived(Base):\n" +" pass\n" +"\n" +"print(Derived.__annotations__)" +msgstr "" + +#: ../../howto/annotations.rst:103 +msgid "This will print the annotations dict from ``Base``, not ``Derived``." +msgstr "" + +#: ../../howto/annotations.rst:106 +msgid "" +"Your code will have to have a separate code path if the object you're " +"examining is a class (``isinstance(o, type)``). In that case, best practice " +"relies on an implementation detail of Python 3.9 and before: if a class has " +"annotations defined, they are stored in the class's :attr:`~type.__dict__` " +"dictionary. Since the class may or may not have annotations defined, best " +"practice is to call the :meth:`~dict.get` method on the class dict." +msgstr "" + +#: ../../howto/annotations.rst:114 +msgid "" +"To put it all together, here is some sample code that safely accesses the " +"``__annotations__`` attribute on an arbitrary object in Python 3.9 and " +"before::" +msgstr "" + +#: ../../howto/annotations.rst:118 +msgid "" +"if isinstance(o, type):\n" +" ann = o.__dict__.get('__annotations__', None)\n" +"else:\n" +" ann = getattr(o, '__annotations__', None)" +msgstr "" + +#: ../../howto/annotations.rst:123 +msgid "" +"After running this code, ``ann`` should be either a dictionary or ``None``. " +"You're encouraged to double-check the type of ``ann`` " +"using :func:`isinstance` before further examination." +msgstr "" + +#: ../../howto/annotations.rst:128 +msgid "" +"Note that some exotic or malformed type objects may not have " +"a :attr:`~type.__dict__` attribute, so for extra safety you may also wish to " +"use :func:`getattr` to access :attr:`!__dict__`." +msgstr "" + +#: ../../howto/annotations.rst:134 +msgid "Manually Un-Stringizing Stringized Annotations" +msgstr "" + +#: ../../howto/annotations.rst:136 +msgid "" +"In situations where some annotations may be \"stringized\", and you wish to " +"evaluate those strings to produce the Python values they represent, it " +"really is best to call :func:`inspect.get_annotations` to do this work for " +"you." +msgstr "" + +#: ../../howto/annotations.rst:142 +msgid "" +"If you're using Python 3.9 or older, or if for some reason you can't " +"use :func:`inspect.get_annotations`, you'll need to duplicate its logic. " +"You're encouraged to examine the implementation " +"of :func:`inspect.get_annotations` in the current Python version and follow " +"a similar approach." +msgstr "" + +#: ../../howto/annotations.rst:148 +msgid "" +"In a nutshell, if you wish to evaluate a stringized annotation on an " +"arbitrary object ``o``:" +msgstr "" + +#: ../../howto/annotations.rst:151 +msgid "" +"If ``o`` is a module, use ``o.__dict__`` as the ``globals`` when " +"calling :func:`eval`." +msgstr "" + +#: ../../howto/annotations.rst:153 +msgid "" +"If ``o`` is a class, use ``sys.modules[o.__module__].__dict__`` as the " +"``globals``, and ``dict(vars(o))`` as the ``locals``, when " +"calling :func:`eval`." +msgstr "" + +#: ../../howto/annotations.rst:156 +msgid "" +"If ``o`` is a wrapped callable " +"using :func:`functools.update_wrapper`, :func:`functools.wraps`, " +"or :func:`functools.partial`, iteratively unwrap it by accessing either " +"``o.__wrapped__`` or ``o.func`` as appropriate, until you have found the " +"root unwrapped function." +msgstr "" + +#: ../../howto/annotations.rst:160 +msgid "" +"If ``o`` is a callable (but not a class), use :attr:`o.__globals__ " +"` as the globals when calling :func:`eval`." +msgstr "" + +#: ../../howto/annotations.rst:164 +msgid "" +"However, not all string values used as annotations can be successfully " +"turned into Python values by :func:`eval`. String values could theoretically " +"contain any valid string, and in practice there are valid use cases for type " +"hints that require annotating with string values that specifically *can't* " +"be evaluated. For example:" +msgstr "" + +#: ../../howto/annotations.rst:171 +msgid "" +":pep:`604` union types using ``|``, before support for this was added to " +"Python 3.10." +msgstr "" + +#: ../../howto/annotations.rst:173 +msgid "" +"Definitions that aren't needed at runtime, only imported " +"when :const:`typing.TYPE_CHECKING` is true." +msgstr "" + +#: ../../howto/annotations.rst:176 +msgid "" +"If :func:`eval` attempts to evaluate such values, it will fail and raise an " +"exception. So, when designing a library API that works with annotations, " +"it's recommended to only attempt to evaluate string values when explicitly " +"requested to by the caller." +msgstr "" + +#: ../../howto/annotations.rst:184 +msgid "Best Practices For ``__annotations__`` In Any Python Version" +msgstr "" + +#: ../../howto/annotations.rst:186 +msgid "" +"You should avoid assigning to the ``__annotations__`` member of objects " +"directly. Let Python manage setting ``__annotations__``." +msgstr "" + +#: ../../howto/annotations.rst:189 +msgid "" +"If you do assign directly to the ``__annotations__`` member of an object, " +"you should always set it to a ``dict`` object." +msgstr "" + +#: ../../howto/annotations.rst:192 +msgid "" +"You should avoid accessing ``__annotations__`` directly on any object. " +"Instead, use :func:`annotationlib.get_annotations` (Python 3.14+) " +"or :func:`inspect.get_annotations` (Python 3.10+)." +msgstr "" + +#: ../../howto/annotations.rst:196 +msgid "" +"If you do directly access the ``__annotations__`` member of an object, you " +"should ensure that it's a dictionary before attempting to examine its " +"contents." +msgstr "" + +#: ../../howto/annotations.rst:200 +msgid "You should avoid modifying ``__annotations__`` dicts." +msgstr "" + +#: ../../howto/annotations.rst:202 +msgid "" +"You should avoid deleting the ``__annotations__`` attribute of an object." +msgstr "" + +#: ../../howto/annotations.rst:207 +msgid "``__annotations__`` Quirks" +msgstr "" + +#: ../../howto/annotations.rst:209 +msgid "" +"In all versions of Python 3, function objects lazy-create an annotations " +"dict if no annotations are defined on that object. You can delete the " +"``__annotations__`` attribute using ``del fn.__annotations__``, but if you " +"then access ``fn.__annotations__`` the object will create a new empty dict " +"that it will store and return as its annotations. Deleting the annotations " +"on a function before it has lazily created its annotations dict will throw " +"an ``AttributeError``; using ``del fn.__annotations__`` twice in a row is " +"guaranteed to always throw an ``AttributeError``." +msgstr "" + +#: ../../howto/annotations.rst:219 +msgid "" +"Everything in the above paragraph also applies to class and module objects " +"in Python 3.10 and newer." +msgstr "" + +#: ../../howto/annotations.rst:222 +msgid "" +"In all versions of Python 3, you can set ``__annotations__`` on a function " +"object to ``None``. However, subsequently accessing the annotations on that " +"object using ``fn.__annotations__`` will lazy-create an empty dictionary as " +"per the first paragraph of this section. This is *not* true of modules and " +"classes, in any Python version; those objects permit setting " +"``__annotations__`` to any Python value, and will retain whatever value is " +"set." +msgstr "" + +#: ../../howto/annotations.rst:230 +msgid "" +"If Python stringizes your annotations for you (using ``from __future__ " +"import annotations``), and you specify a string as an annotation, the string " +"will itself be quoted. In effect the annotation is quoted *twice.* For " +"example::" +msgstr "" + +#: ../../howto/annotations.rst:236 +msgid "" +"from __future__ import annotations\n" +"def foo(a: \"str\"): pass\n" +"\n" +"print(foo.__annotations__)" +msgstr "" + +#: ../../howto/annotations.rst:241 +msgid "" +"This prints ``{'a': \"'str'\"}``. This shouldn't really be considered a " +"\"quirk\"; it's mentioned here simply because it might be surprising." +msgstr "" + +#: ../../howto/annotations.rst:244 +msgid "" +"If you use a class with a custom metaclass and access ``__annotations__`` on " +"the class, you may observe unexpected behavior; see :pep:`749 <749#pep749-" +"metaclasses>` for some examples. You can avoid these quirks by " +"using :func:`annotationlib.get_annotations` on Python 3.14+ " +"or :func:`inspect.get_annotations` on Python 3.10+. On earlier versions of " +"Python, you can avoid these bugs by accessing the annotations from the " +"class's :attr:`~type.__dict__` (for example, " +"``cls.__dict__.get('__annotations__', None)``)." +msgstr "" + +#: ../../howto/annotations.rst:253 +msgid "" +"In some versions of Python, instances of classes may have an " +"``__annotations__`` attribute. However, this is not supported functionality. " +"If you need the annotations of an instance, you can use :func:`type` to " +"access its class (for example, " +"``annotationlib.get_annotations(type(myinstance))`` on Python 3.14+)." +msgstr "" diff --git a/howto/argparse-optparse.po b/howto/argparse-optparse.po new file mode 100644 index 0000000..e0f878a --- /dev/null +++ b/howto/argparse-optparse.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/argparse-optparse.rst:8 +msgid "Migrating ``optparse`` code to ``argparse``" +msgstr "" + +#: ../../howto/argparse-optparse.rst:10 +msgid "" +"The :mod:`argparse` module offers several higher level features not natively " +"provided by the :mod:`optparse` module, including:" +msgstr "" + +#: ../../howto/argparse-optparse.rst:13 +msgid "Handling positional arguments." +msgstr "" + +#: ../../howto/argparse-optparse.rst:14 +msgid "Supporting subcommands." +msgstr "" + +#: ../../howto/argparse-optparse.rst:15 +msgid "Allowing alternative option prefixes like ``+`` and ``/``." +msgstr "" + +#: ../../howto/argparse-optparse.rst:16 +msgid "Handling zero-or-more and one-or-more style arguments." +msgstr "" + +#: ../../howto/argparse-optparse.rst:17 +msgid "Producing more informative usage messages." +msgstr "" + +#: ../../howto/argparse-optparse.rst:18 +msgid "Providing a much simpler interface for custom ``type`` and ``action``." +msgstr "" + +#: ../../howto/argparse-optparse.rst:20 +msgid "" +"Originally, the :mod:`argparse` module attempted to maintain compatibility " +"with :mod:`optparse`. However, the fundamental design differences between " +"supporting declarative command line option processing (while leaving " +"positional argument processing to application code), and supporting both " +"named options and positional arguments in the declarative interface mean " +"that the API has diverged from that of ``optparse`` over time." +msgstr "" + +#: ../../howto/argparse-optparse.rst:27 +msgid "" +"As described in :ref:`choosing-an-argument-parser`, applications that are " +"currently using :mod:`optparse` and are happy with the way it works can just " +"continue to use ``optparse``." +msgstr "" + +#: ../../howto/argparse-optparse.rst:31 +msgid "" +"Application developers that are considering migrating should also review the " +"list of intrinsic behavioural differences described in that section before " +"deciding whether or not migration is desirable." +msgstr "" + +#: ../../howto/argparse-optparse.rst:35 +msgid "" +"For applications that do choose to migrate from :mod:`optparse` " +"to :mod:`argparse`, the following suggestions should be helpful:" +msgstr "" + +#: ../../howto/argparse-optparse.rst:38 +msgid "" +"Replace all :meth:`optparse.OptionParser.add_option` calls " +"with :meth:`ArgumentParser.add_argument` calls." +msgstr "" + +#: ../../howto/argparse-optparse.rst:41 +msgid "" +"Replace ``(options, args) = parser.parse_args()`` with ``args = " +"parser.parse_args()`` and add additional :meth:`ArgumentParser.add_argument` " +"calls for the positional arguments. Keep in mind that what was previously " +"called ``options``, now in the :mod:`argparse` context is called ``args``." +msgstr "" + +#: ../../howto/argparse-optparse.rst:46 +msgid "" +"Replace :meth:`optparse.OptionParser.disable_interspersed_args` by " +"using :meth:`~ArgumentParser.parse_intermixed_args` instead " +"of :meth:`~ArgumentParser.parse_args`." +msgstr "" + +#: ../../howto/argparse-optparse.rst:50 +msgid "" +"Replace callback actions and the ``callback_*`` keyword arguments with " +"``type`` or ``action`` arguments." +msgstr "" + +#: ../../howto/argparse-optparse.rst:53 +msgid "" +"Replace string names for ``type`` keyword arguments with the corresponding " +"type objects (e.g. int, float, complex, etc)." +msgstr "" + +#: ../../howto/argparse-optparse.rst:56 +msgid "" +"Replace :class:`optparse.Values` with :class:`Namespace` " +"and :exc:`optparse.OptionError` and :exc:`optparse.OptionValueError` " +"with :exc:`ArgumentError`." +msgstr "" + +#: ../../howto/argparse-optparse.rst:60 +msgid "" +"Replace strings with implicit arguments such as ``%default`` or ``%prog`` " +"with the standard Python syntax to use dictionaries to format strings, that " +"is, ``%(default)s`` and ``%(prog)s``." +msgstr "" + +#: ../../howto/argparse-optparse.rst:64 +msgid "" +"Replace the OptionParser constructor ``version`` argument with a call to " +"``parser.add_argument('--version', action='version', version='')``." +msgstr "" diff --git a/howto/argparse.po b/howto/argparse.po new file mode 100644 index 0000000..17053b3 --- /dev/null +++ b/howto/argparse.po @@ -0,0 +1,1213 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/argparse.rst:5 +msgid "Argparse Tutorial" +msgstr "" + +#: ../../howto/argparse.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/argparse.rst:7 +msgid "Tshepang Mbambo" +msgstr "" + +#: ../../howto/argparse.rst:11 +msgid "" +"This tutorial is intended to be a gentle introduction to :mod:`argparse`, " +"the recommended command-line parsing module in the Python standard library." +msgstr "" + +#: ../../howto/argparse.rst:16 +msgid "" +"The standard library includes two other libraries directly related to " +"command-line parameter processing: the lower level :mod:`optparse` module " +"(which may require more code to configure for a given application, but also " +"allows an application to request behaviors that ``argparse`` doesn't " +"support), and the very low level :mod:`getopt` (which specifically serves as " +"an equivalent to the :c:func:`!getopt` family of functions available to C " +"programmers). While neither of those modules is covered directly in this " +"guide, many of the core concepts in ``argparse`` first originated in " +"``optparse``, so some aspects of this tutorial will also be relevant to " +"``optparse`` users." +msgstr "" + +#: ../../howto/argparse.rst:29 +msgid "Concepts" +msgstr "" + +#: ../../howto/argparse.rst:31 +msgid "" +"Let's show the sort of functionality that we are going to explore in this " +"introductory tutorial by making use of the :command:`ls` command:" +msgstr "" + +#: ../../howto/argparse.rst:34 +msgid "" +"$ ls\n" +"cpython devguide prog.py pypy rm-unused-function.patch\n" +"$ ls pypy\n" +"ctypes_configure demo dotviewer include lib_pypy lib-python ...\n" +"$ ls -l\n" +"total 20\n" +"drwxr-xr-x 19 wena wena 4096 Feb 18 18:51 cpython\n" +"drwxr-xr-x 4 wena wena 4096 Feb 8 12:04 devguide\n" +"-rwxr-xr-x 1 wena wena 535 Feb 19 00:05 prog.py\n" +"drwxr-xr-x 14 wena wena 4096 Feb 7 00:59 pypy\n" +"-rw-r--r-- 1 wena wena 741 Feb 18 01:01 rm-unused-function.patch\n" +"$ ls --help\n" +"Usage: ls [OPTION]... [FILE]...\n" +"List information about the FILEs (the current directory by default).\n" +"Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.\n" +"..." +msgstr "" + +#: ../../howto/argparse.rst:53 +msgid "A few concepts we can learn from the four commands:" +msgstr "" + +#: ../../howto/argparse.rst:55 +msgid "" +"The :command:`ls` command is useful when run without any options at all. It " +"defaults to displaying the contents of the current directory." +msgstr "" + +#: ../../howto/argparse.rst:58 +msgid "" +"If we want beyond what it provides by default, we tell it a bit more. In " +"this case, we want it to display a different directory, ``pypy``. What we " +"did is specify what is known as a positional argument. It's named so because " +"the program should know what to do with the value, solely based on where it " +"appears on the command line. This concept is more relevant to a command " +"like :command:`cp`, whose most basic usage is ``cp SRC DEST``. The first " +"position is *what you want copied,* and the second position is *where you " +"want it copied to*." +msgstr "" + +#: ../../howto/argparse.rst:67 +msgid "" +"Now, say we want to change behaviour of the program. In our example, we " +"display more info for each file instead of just showing the file names. The " +"``-l`` in that case is known as an optional argument." +msgstr "" + +#: ../../howto/argparse.rst:71 +msgid "" +"That's a snippet of the help text. It's very useful in that you can come " +"across a program you have never used before, and can figure out how it works " +"simply by reading its help text." +msgstr "" + +#: ../../howto/argparse.rst:77 +msgid "The basics" +msgstr "" + +#: ../../howto/argparse.rst:79 +msgid "Let us start with a very simple example which does (almost) nothing::" +msgstr "" + +#: ../../howto/argparse.rst:81 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.parse_args()" +msgstr "" + +#: ../../howto/argparse.rst:85 ../../howto/argparse.rst:193 +#: ../../howto/argparse.rst:214 +msgid "Following is a result of running the code:" +msgstr "" + +#: ../../howto/argparse.rst:87 +msgid "" +"$ python prog.py\n" +"$ python prog.py --help\n" +"usage: prog.py [-h]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"$ python prog.py --verbose\n" +"usage: prog.py [-h]\n" +"prog.py: error: unrecognized arguments: --verbose\n" +"$ python prog.py foo\n" +"usage: prog.py [-h]\n" +"prog.py: error: unrecognized arguments: foo" +msgstr "" + +#: ../../howto/argparse.rst:102 ../../howto/argparse.rst:259 +#: ../../howto/argparse.rst:303 +msgid "Here is what is happening:" +msgstr "" + +#: ../../howto/argparse.rst:104 +msgid "" +"Running the script without any options results in nothing displayed to " +"stdout. Not so useful." +msgstr "" + +#: ../../howto/argparse.rst:107 +msgid "" +"The second one starts to display the usefulness of the :mod:`argparse` " +"module. We have done almost nothing, but already we get a nice help message." +msgstr "" + +#: ../../howto/argparse.rst:110 +msgid "" +"The ``--help`` option, which can also be shortened to ``-h``, is the only " +"option we get for free (i.e. no need to specify it). Specifying anything " +"else results in an error. But even then, we do get a useful usage message, " +"also for free." +msgstr "" + +#: ../../howto/argparse.rst:117 +msgid "Introducing Positional arguments" +msgstr "" + +#: ../../howto/argparse.rst:119 +msgid "An example::" +msgstr "" + +#: ../../howto/argparse.rst:121 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"echo\")\n" +"args = parser.parse_args()\n" +"print(args.echo)" +msgstr "" + +#: ../../howto/argparse.rst:127 +msgid "And running the code:" +msgstr "" + +#: ../../howto/argparse.rst:129 +msgid "" +"$ python prog.py\n" +"usage: prog.py [-h] echo\n" +"prog.py: error: the following arguments are required: echo\n" +"$ python prog.py --help\n" +"usage: prog.py [-h] echo\n" +"\n" +"positional arguments:\n" +" echo\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"$ python prog.py foo\n" +"foo" +msgstr "" + +#: ../../howto/argparse.rst:145 +msgid "Here is what's happening:" +msgstr "" + +#: ../../howto/argparse.rst:147 +msgid "" +"We've added the :meth:`~ArgumentParser.add_argument` method, which is what " +"we use to specify which command-line options the program is willing to " +"accept. In this case, I've named it ``echo`` so that it's in line with its " +"function." +msgstr "" + +#: ../../howto/argparse.rst:151 +msgid "Calling our program now requires us to specify an option." +msgstr "" + +#: ../../howto/argparse.rst:153 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method actually returns some data " +"from the options specified, in this case, ``echo``." +msgstr "" + +#: ../../howto/argparse.rst:156 +msgid "" +"The variable is some form of 'magic' that :mod:`argparse` performs for free " +"(i.e. no need to specify which variable that value is stored in). You will " +"also notice that its name matches the string argument given to the method, " +"``echo``." +msgstr "" + +#: ../../howto/argparse.rst:161 +msgid "" +"Note however that, although the help display looks nice and all, it " +"currently is not as helpful as it can be. For example we see that we got " +"``echo`` as a positional argument, but we don't know what it does, other " +"than by guessing or by reading the source code. So, let's make it a bit more " +"useful::" +msgstr "" + +#: ../../howto/argparse.rst:166 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"echo\", help=\"echo the string you use here\")\n" +"args = parser.parse_args()\n" +"print(args.echo)" +msgstr "" + +#: ../../howto/argparse.rst:172 +msgid "And we get:" +msgstr "" + +#: ../../howto/argparse.rst:174 +msgid "" +"$ python prog.py -h\n" +"usage: prog.py [-h] echo\n" +"\n" +"positional arguments:\n" +" echo echo the string you use here\n" +"\n" +"options:\n" +" -h, --help show this help message and exit" +msgstr "" + +#: ../../howto/argparse.rst:185 +msgid "Now, how about doing something even more useful::" +msgstr "" + +#: ../../howto/argparse.rst:187 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", help=\"display a square of a given " +"number\")\n" +"args = parser.parse_args()\n" +"print(args.square**2)" +msgstr "" + +#: ../../howto/argparse.rst:195 +msgid "" +"$ python prog.py 4\n" +"Traceback (most recent call last):\n" +" File \"prog.py\", line 5, in \n" +" print(args.square**2)\n" +"TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'" +msgstr "" + +#: ../../howto/argparse.rst:203 +msgid "" +"That didn't go so well. That's because :mod:`argparse` treats the options we " +"give it as strings, unless we tell it otherwise. So, let's " +"tell :mod:`argparse` to treat that input as an integer::" +msgstr "" + +#: ../../howto/argparse.rst:207 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", help=\"display a square of a given " +"number\",\n" +" type=int)\n" +"args = parser.parse_args()\n" +"print(args.square**2)" +msgstr "" + +#: ../../howto/argparse.rst:216 +msgid "" +"$ python prog.py 4\n" +"16\n" +"$ python prog.py four\n" +"usage: prog.py [-h] square\n" +"prog.py: error: argument square: invalid int value: 'four'" +msgstr "" + +#: ../../howto/argparse.rst:224 +msgid "" +"That went well. The program now even helpfully quits on bad illegal input " +"before proceeding." +msgstr "" + +#: ../../howto/argparse.rst:229 +msgid "Introducing Optional arguments" +msgstr "" + +#: ../../howto/argparse.rst:231 +msgid "" +"So far we have been playing with positional arguments. Let us have a look on " +"how to add optional ones::" +msgstr "" + +#: ../../howto/argparse.rst:234 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"--verbosity\", help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"if args.verbosity:\n" +" print(\"verbosity turned on\")" +msgstr "" + +#: ../../howto/argparse.rst:241 ../../howto/argparse.rst:287 +#: ../../howto/argparse.rst:403 ../../howto/argparse.rst:437 +msgid "And the output:" +msgstr "" + +#: ../../howto/argparse.rst:243 +msgid "" +"$ python prog.py --verbosity 1\n" +"verbosity turned on\n" +"$ python prog.py\n" +"$ python prog.py --help\n" +"usage: prog.py [-h] [--verbosity VERBOSITY]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --verbosity VERBOSITY\n" +" increase output verbosity\n" +"$ python prog.py --verbosity\n" +"usage: prog.py [-h] [--verbosity VERBOSITY]\n" +"prog.py: error: argument --verbosity: expected one argument" +msgstr "" + +#: ../../howto/argparse.rst:261 +msgid "" +"The program is written so as to display something when ``--verbosity`` is " +"specified and display nothing when not." +msgstr "" + +#: ../../howto/argparse.rst:264 +msgid "" +"To show that the option is actually optional, there is no error when running " +"the program without it. Note that by default, if an optional argument isn't " +"used, the relevant variable, in this case ``args.verbosity``, is given " +"``None`` as a value, which is the reason it fails the truth test of " +"the :keyword:`if` statement." +msgstr "" + +#: ../../howto/argparse.rst:270 +msgid "The help message is a bit different." +msgstr "" + +#: ../../howto/argparse.rst:272 +msgid "" +"When using the ``--verbosity`` option, one must also specify some value, any " +"value." +msgstr "" + +#: ../../howto/argparse.rst:275 +msgid "" +"The above example accepts arbitrary integer values for ``--verbosity``, but " +"for our simple program, only two values are actually useful, ``True`` or " +"``False``. Let's modify the code accordingly::" +msgstr "" + +#: ../../howto/argparse.rst:279 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"--verbose\", help=\"increase output verbosity\",\n" +" action=\"store_true\")\n" +"args = parser.parse_args()\n" +"if args.verbose:\n" +" print(\"verbosity turned on\")" +msgstr "" + +#: ../../howto/argparse.rst:289 +msgid "" +"$ python prog.py --verbose\n" +"verbosity turned on\n" +"$ python prog.py --verbose 1\n" +"usage: prog.py [-h] [--verbose]\n" +"prog.py: error: unrecognized arguments: 1\n" +"$ python prog.py --help\n" +"usage: prog.py [-h] [--verbose]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --verbose increase output verbosity" +msgstr "" + +#: ../../howto/argparse.rst:305 +msgid "" +"The option is now more of a flag than something that requires a value. We " +"even changed the name of the option to match that idea. Note that we now " +"specify a new keyword, ``action``, and give it the value ``\"store_true\"``. " +"This means that, if the option is specified, assign the value ``True`` to " +"``args.verbose``. Not specifying it implies ``False``." +msgstr "" + +#: ../../howto/argparse.rst:312 +msgid "" +"It complains when you specify a value, in true spirit of what flags actually " +"are." +msgstr "" + +#: ../../howto/argparse.rst:315 +msgid "Notice the different help text." +msgstr "" + +#: ../../howto/argparse.rst:319 +msgid "Short options" +msgstr "" + +#: ../../howto/argparse.rst:321 +msgid "" +"If you are familiar with command line usage, you will notice that I haven't " +"yet touched on the topic of short versions of the options. It's quite " +"simple::" +msgstr "" + +#: ../../howto/argparse.rst:325 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"-v\", \"--verbose\", help=\"increase output " +"verbosity\",\n" +" action=\"store_true\")\n" +"args = parser.parse_args()\n" +"if args.verbose:\n" +" print(\"verbosity turned on\")" +msgstr "" + +#: ../../howto/argparse.rst:333 +msgid "And here goes:" +msgstr "" + +#: ../../howto/argparse.rst:335 +msgid "" +"$ python prog.py -v\n" +"verbosity turned on\n" +"$ python prog.py --help\n" +"usage: prog.py [-h] [-v]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -v, --verbose increase output verbosity" +msgstr "" + +#: ../../howto/argparse.rst:346 +msgid "Note that the new ability is also reflected in the help text." +msgstr "" + +#: ../../howto/argparse.rst:350 +msgid "Combining Positional and Optional arguments" +msgstr "" + +#: ../../howto/argparse.rst:352 +msgid "Our program keeps growing in complexity::" +msgstr "" + +#: ../../howto/argparse.rst:354 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display a square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbose\", action=\"store_true\",\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"if args.verbose:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:367 +msgid "And now the output:" +msgstr "" + +#: ../../howto/argparse.rst:369 +msgid "" +"$ python prog.py\n" +"usage: prog.py [-h] [-v] square\n" +"prog.py: error: the following arguments are required: square\n" +"$ python prog.py 4\n" +"16\n" +"$ python prog.py 4 --verbose\n" +"the square of 4 equals 16\n" +"$ python prog.py --verbose 4\n" +"the square of 4 equals 16" +msgstr "" + +#: ../../howto/argparse.rst:381 +msgid "We've brought back a positional argument, hence the complaint." +msgstr "" + +#: ../../howto/argparse.rst:383 +msgid "Note that the order does not matter." +msgstr "" + +#: ../../howto/argparse.rst:385 +msgid "" +"How about we give this program of ours back the ability to have multiple " +"verbosity values, and actually get to use them::" +msgstr "" + +#: ../../howto/argparse.rst:388 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display a square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", type=int,\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"if args.verbosity == 2:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"elif args.verbosity == 1:\n" +" print(f\"{args.square}^2 == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:405 +msgid "" +"$ python prog.py 4\n" +"16\n" +"$ python prog.py 4 -v\n" +"usage: prog.py [-h] [-v VERBOSITY] square\n" +"prog.py: error: argument -v/--verbosity: expected one argument\n" +"$ python prog.py 4 -v 1\n" +"4^2 == 16\n" +"$ python prog.py 4 -v 2\n" +"the square of 4 equals 16\n" +"$ python prog.py 4 -v 3\n" +"16" +msgstr "" + +#: ../../howto/argparse.rst:419 +msgid "" +"These all look good except the last one, which exposes a bug in our program. " +"Let's fix it by restricting the values the ``--verbosity`` option can " +"accept::" +msgstr "" + +#: ../../howto/argparse.rst:422 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display a square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", type=int, choices=[0, 1, 2],\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"if args.verbosity == 2:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"elif args.verbosity == 1:\n" +" print(f\"{args.square}^2 == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:439 +msgid "" +"$ python prog.py 4 -v 3\n" +"usage: prog.py [-h] [-v {0,1,2}] square\n" +"prog.py: error: argument -v/--verbosity: invalid choice: 3 (choose from 0, " +"1, 2)\n" +"$ python prog.py 4 -h\n" +"usage: prog.py [-h] [-v {0,1,2}] square\n" +"\n" +"positional arguments:\n" +" square display a square of a given number\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -v, --verbosity {0,1,2}\n" +" increase output verbosity" +msgstr "" + +#: ../../howto/argparse.rst:455 +msgid "" +"Note that the change also reflects both in the error message as well as the " +"help string." +msgstr "" + +#: ../../howto/argparse.rst:458 +msgid "" +"Now, let's use a different approach of playing with verbosity, which is " +"pretty common. It also matches the way the CPython executable handles its " +"own verbosity argument (check the output of ``python --help``)::" +msgstr "" + +#: ../../howto/argparse.rst:462 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display the square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", action=\"count\",\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"if args.verbosity == 2:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"elif args.verbosity == 1:\n" +" print(f\"{args.square}^2 == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:477 +msgid "" +"We have introduced another action, \"count\", to count the number of " +"occurrences of specific options." +msgstr "" + +#: ../../howto/argparse.rst:481 +msgid "" +"$ python prog.py 4\n" +"16\n" +"$ python prog.py 4 -v\n" +"4^2 == 16\n" +"$ python prog.py 4 -vv\n" +"the square of 4 equals 16\n" +"$ python prog.py 4 --verbosity --verbosity\n" +"the square of 4 equals 16\n" +"$ python prog.py 4 -v 1\n" +"usage: prog.py [-h] [-v] square\n" +"prog.py: error: unrecognized arguments: 1\n" +"$ python prog.py 4 -h\n" +"usage: prog.py [-h] [-v] square\n" +"\n" +"positional arguments:\n" +" square display a square of a given number\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -v, --verbosity increase output verbosity\n" +"$ python prog.py 4 -vvv\n" +"16" +msgstr "" + +#: ../../howto/argparse.rst:506 +msgid "" +"Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " +"previous version of our script. That should explain the complaint." +msgstr "" + +#: ../../howto/argparse.rst:509 +msgid "It also behaves similar to \"store_true\" action." +msgstr "" + +#: ../../howto/argparse.rst:511 +msgid "" +"Now here's a demonstration of what the \"count\" action gives. You've " +"probably seen this sort of usage before." +msgstr "" + +#: ../../howto/argparse.rst:514 +msgid "" +"And if you don't specify the ``-v`` flag, that flag is considered to have " +"``None`` value." +msgstr "" + +#: ../../howto/argparse.rst:517 +msgid "" +"As should be expected, specifying the long form of the flag, we should get " +"the same output." +msgstr "" + +#: ../../howto/argparse.rst:520 +msgid "" +"Sadly, our help output isn't very informative on the new ability our script " +"has acquired, but that can always be fixed by improving the documentation " +"for our script (e.g. via the ``help`` keyword argument)." +msgstr "" + +#: ../../howto/argparse.rst:524 +msgid "That last output exposes a bug in our program." +msgstr "" + +#: ../../howto/argparse.rst:527 +msgid "Let's fix::" +msgstr "" + +#: ../../howto/argparse.rst:529 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display a square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", action=\"count\",\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"\n" +"# bugfix: replace == with >=\n" +"if args.verbosity >= 2:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"elif args.verbosity >= 1:\n" +" print(f\"{args.square}^2 == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:546 +msgid "And this is what it gives:" +msgstr "" + +#: ../../howto/argparse.rst:548 +msgid "" +"$ python prog.py 4 -vvv\n" +"the square of 4 equals 16\n" +"$ python prog.py 4 -vvvv\n" +"the square of 4 equals 16\n" +"$ python prog.py 4\n" +"Traceback (most recent call last):\n" +" File \"prog.py\", line 11, in \n" +" if args.verbosity >= 2:\n" +"TypeError: '>=' not supported between instances of 'NoneType' and 'int'" +msgstr "" + +#: ../../howto/argparse.rst:561 +msgid "" +"First output went well, and fixes the bug we had before. That is, we want " +"any value >= 2 to be as verbose as possible." +msgstr "" + +#: ../../howto/argparse.rst:564 +msgid "Third output not so good." +msgstr "" + +#: ../../howto/argparse.rst:566 +msgid "Let's fix that bug::" +msgstr "" + +#: ../../howto/argparse.rst:568 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"square\", type=int,\n" +" help=\"display a square of a given number\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", action=\"count\", default=0,\n" +" help=\"increase output verbosity\")\n" +"args = parser.parse_args()\n" +"answer = args.square**2\n" +"if args.verbosity >= 2:\n" +" print(f\"the square of {args.square} equals {answer}\")\n" +"elif args.verbosity >= 1:\n" +" print(f\"{args.square}^2 == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:583 +msgid "" +"We've just introduced yet another keyword, ``default``. We've set it to " +"``0`` in order to make it comparable to the other int values. Remember that " +"by default, if an optional argument isn't specified, it gets the ``None`` " +"value, and that cannot be compared to an int value (hence " +"the :exc:`TypeError` exception)." +msgstr "" + +#: ../../howto/argparse.rst:590 +msgid "And:" +msgstr "" + +#: ../../howto/argparse.rst:592 +msgid "" +"$ python prog.py 4\n" +"16" +msgstr "" + +#: ../../howto/argparse.rst:597 +msgid "" +"You can go quite far just with what we've learned so far, and we have only " +"scratched the surface. The :mod:`argparse` module is very powerful, and " +"we'll explore a bit more of it before we end this tutorial." +msgstr "" + +#: ../../howto/argparse.rst:604 +msgid "Getting a little more advanced" +msgstr "" + +#: ../../howto/argparse.rst:606 +msgid "" +"What if we wanted to expand our tiny program to perform other powers, not " +"just squares::" +msgstr "" + +#: ../../howto/argparse.rst:609 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"x\", type=int, help=\"the base\")\n" +"parser.add_argument(\"y\", type=int, help=\"the exponent\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", action=\"count\", default=0)\n" +"args = parser.parse_args()\n" +"answer = args.x**args.y\n" +"if args.verbosity >= 2:\n" +" print(f\"{args.x} to the power {args.y} equals {answer}\")\n" +"elif args.verbosity >= 1:\n" +" print(f\"{args.x}^{args.y} == {answer}\")\n" +"else:\n" +" print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:623 ../../howto/argparse.rst:661 +#: ../../howto/argparse.rst:877 +msgid "Output:" +msgstr "" + +#: ../../howto/argparse.rst:625 +msgid "" +"$ python prog.py\n" +"usage: prog.py [-h] [-v] x y\n" +"prog.py: error: the following arguments are required: x, y\n" +"$ python prog.py -h\n" +"usage: prog.py [-h] [-v] x y\n" +"\n" +"positional arguments:\n" +" x the base\n" +" y the exponent\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -v, --verbosity\n" +"$ python prog.py 4 2 -v\n" +"4^2 == 16" +msgstr "" + +#: ../../howto/argparse.rst:644 +msgid "" +"Notice that so far we've been using verbosity level to *change* the text " +"that gets displayed. The following example instead uses verbosity level to " +"display *more* text instead::" +msgstr "" + +#: ../../howto/argparse.rst:648 +msgid "" +"import argparse\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument(\"x\", type=int, help=\"the base\")\n" +"parser.add_argument(\"y\", type=int, help=\"the exponent\")\n" +"parser.add_argument(\"-v\", \"--verbosity\", action=\"count\", default=0)\n" +"args = parser.parse_args()\n" +"answer = args.x**args.y\n" +"if args.verbosity >= 2:\n" +" print(f\"Running '{__file__}'\")\n" +"if args.verbosity >= 1:\n" +" print(f\"{args.x}^{args.y} == \", end=\"\")\n" +"print(answer)" +msgstr "" + +#: ../../howto/argparse.rst:663 +msgid "" +"$ python prog.py 4 2\n" +"16\n" +"$ python prog.py 4 2 -v\n" +"4^2 == 16\n" +"$ python prog.py 4 2 -vv\n" +"Running 'prog.py'\n" +"4^2 == 16" +msgstr "" + +#: ../../howto/argparse.rst:677 +msgid "Specifying ambiguous arguments" +msgstr "" + +#: ../../howto/argparse.rst:679 +msgid "" +"When there is ambiguity in deciding whether an argument is positional or for " +"an argument, ``--`` can be used to tell :meth:`~ArgumentParser.parse_args` " +"that everything after that is a positional argument::" +msgstr "" + +#: ../../howto/argparse.rst:683 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-n', nargs='+')\n" +">>> parser.add_argument('args', nargs='*')\n" +"\n" +">>> # ambiguous, so parse_args assumes it's an option\n" +">>> parser.parse_args(['-f'])\n" +"usage: PROG [-h] [-n N [N ...]] [args ...]\n" +"PROG: error: unrecognized arguments: -f\n" +"\n" +">>> parser.parse_args(['--', '-f'])\n" +"Namespace(args=['-f'], n=None)\n" +"\n" +">>> # ambiguous, so the -n option greedily accepts arguments\n" +">>> parser.parse_args(['-n', '1', '2', '3'])\n" +"Namespace(args=[], n=['1', '2', '3'])\n" +"\n" +">>> parser.parse_args(['-n', '1', '--', '2', '3'])\n" +"Namespace(args=['2', '3'], n=['1'])" +msgstr "" + +#: ../../howto/argparse.rst:704 +msgid "Conflicting options" +msgstr "" + +#: ../../howto/argparse.rst:706 +msgid "" +"So far, we have been working with two methods of " +"an :class:`argparse.ArgumentParser` instance. Let's introduce a third " +"one, :meth:`~ArgumentParser.add_mutually_exclusive_group`. It allows for us " +"to specify options that conflict with each other. Let's also change the rest " +"of the program so that the new functionality makes more sense: we'll " +"introduce the ``--quiet`` option, which will be the opposite of the ``--" +"verbose`` one::" +msgstr "" + +#: ../../howto/argparse.rst:714 +msgid "" +"import argparse\n" +"\n" +"parser = argparse.ArgumentParser()\n" +"group = parser.add_mutually_exclusive_group()\n" +"group.add_argument(\"-v\", \"--verbose\", action=\"store_true\")\n" +"group.add_argument(\"-q\", \"--quiet\", action=\"store_true\")\n" +"parser.add_argument(\"x\", type=int, help=\"the base\")\n" +"parser.add_argument(\"y\", type=int, help=\"the exponent\")\n" +"args = parser.parse_args()\n" +"answer = args.x**args.y\n" +"\n" +"if args.quiet:\n" +" print(answer)\n" +"elif args.verbose:\n" +" print(f\"{args.x} to the power {args.y} equals {answer}\")\n" +"else:\n" +" print(f\"{args.x}^{args.y} == {answer}\")" +msgstr "" + +#: ../../howto/argparse.rst:732 +msgid "" +"Our program is now simpler, and we've lost some functionality for the sake " +"of demonstration. Anyways, here's the output:" +msgstr "" + +#: ../../howto/argparse.rst:735 +msgid "" +"$ python prog.py 4 2\n" +"4^2 == 16\n" +"$ python prog.py 4 2 -q\n" +"16\n" +"$ python prog.py 4 2 -v\n" +"4 to the power 2 equals 16\n" +"$ python prog.py 4 2 -vq\n" +"usage: prog.py [-h] [-v | -q] x y\n" +"prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose\n" +"$ python prog.py 4 2 -v --quiet\n" +"usage: prog.py [-h] [-v | -q] x y\n" +"prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose" +msgstr "" + +#: ../../howto/argparse.rst:750 +msgid "" +"That should be easy to follow. I've added that last output so you can see " +"the sort of flexibility you get, i.e. mixing long form options with short " +"form ones." +msgstr "" + +#: ../../howto/argparse.rst:754 +msgid "" +"Before we conclude, you probably want to tell your users the main purpose of " +"your program, just in case they don't know::" +msgstr "" + +#: ../../howto/argparse.rst:757 +msgid "" +"import argparse\n" +"\n" +"parser = argparse.ArgumentParser(description=\"calculate X to the power of " +"Y\")\n" +"group = parser.add_mutually_exclusive_group()\n" +"group.add_argument(\"-v\", \"--verbose\", action=\"store_true\")\n" +"group.add_argument(\"-q\", \"--quiet\", action=\"store_true\")\n" +"parser.add_argument(\"x\", type=int, help=\"the base\")\n" +"parser.add_argument(\"y\", type=int, help=\"the exponent\")\n" +"args = parser.parse_args()\n" +"answer = args.x**args.y\n" +"\n" +"if args.quiet:\n" +" print(answer)\n" +"elif args.verbose:\n" +" print(f\"{args.x} to the power {args.y} equals {answer}\")\n" +"else:\n" +" print(f\"{args.x}^{args.y} == {answer}\")" +msgstr "" + +#: ../../howto/argparse.rst:775 +msgid "" +"Note that slight difference in the usage text. Note the ``[-v | -q]``, which " +"tells us that we can either use ``-v`` or ``-q``, but not both at the same " +"time:" +msgstr "" + +#: ../../howto/argparse.rst:779 ../../howto/argparse.rst:806 +msgid "" +"$ python prog.py --help\n" +"usage: prog.py [-h] [-v | -q] x y\n" +"\n" +"calculate X to the power of Y\n" +"\n" +"positional arguments:\n" +" x the base\n" +" y the exponent\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -v, --verbose\n" +" -q, --quiet" +msgstr "" + +#: ../../howto/argparse.rst:797 +msgid "How to translate the argparse output" +msgstr "" + +#: ../../howto/argparse.rst:799 +msgid "" +"The output of the :mod:`argparse` module such as its help text and error " +"messages are all made translatable using the :mod:`gettext` module. This " +"allows applications to easily localize messages produced by :mod:`argparse`. " +"See also :ref:`i18n-howto`." +msgstr "" + +#: ../../howto/argparse.rst:804 +msgid "For instance, in this :mod:`argparse` output:" +msgstr "" + +#: ../../howto/argparse.rst:822 +msgid "" +"The strings ``usage:``, ``positional arguments:``, ``options:`` and ``show " +"this help message and exit`` are all translatable." +msgstr "" + +#: ../../howto/argparse.rst:825 +msgid "" +"In order to translate these strings, they must first be extracted into a " +"``.po`` file. For example, using `Babel `__, run " +"this command:" +msgstr "" + +#: ../../howto/argparse.rst:829 +msgid "$ pybabel extract -o messages.po /usr/lib/python3.12/argparse.py" +msgstr "" + +#: ../../howto/argparse.rst:833 +msgid "" +"This command will extract all translatable strings from the :mod:`argparse` " +"module and output them into a file named ``messages.po``. This command " +"assumes that your Python installation is in ``/usr/lib``." +msgstr "" + +#: ../../howto/argparse.rst:837 +msgid "" +"You can find out the location of the :mod:`argparse` module on your system " +"using this script::" +msgstr "" + +#: ../../howto/argparse.rst:840 +msgid "" +"import argparse\n" +"print(argparse.__file__)" +msgstr "" + +#: ../../howto/argparse.rst:843 +msgid "" +"Once the messages in the ``.po`` file are translated and the translations " +"are installed using :mod:`gettext`, :mod:`argparse` will be able to display " +"the translated messages." +msgstr "" + +#: ../../howto/argparse.rst:847 +msgid "" +"To translate your own strings in the :mod:`argparse` output, " +"use :mod:`gettext`." +msgstr "" + +#: ../../howto/argparse.rst:850 +msgid "Custom type converters" +msgstr "" + +#: ../../howto/argparse.rst:852 +msgid "" +"The :mod:`argparse` module allows you to specify custom type converters for " +"your command-line arguments. This allows you to modify user input before " +"it's stored in the :class:`argparse.Namespace`. This can be useful when you " +"need to pre-process the input before it is used in your program." +msgstr "" + +#: ../../howto/argparse.rst:857 +msgid "" +"When using a custom type converter, you can use any callable that takes a " +"single string argument (the argument value) and returns the converted value. " +"However, if you need to handle more complex scenarios, you can use a custom " +"action class with the **action** parameter instead." +msgstr "" + +#: ../../howto/argparse.rst:862 +msgid "" +"For example, let's say you want to handle arguments with different prefixes " +"and process them accordingly::" +msgstr "" + +#: ../../howto/argparse.rst:865 +msgid "" +"import argparse\n" +"\n" +"parser = argparse.ArgumentParser(prefix_chars='-+')\n" +"\n" +"parser.add_argument('-a', metavar='', action='append',\n" +" type=lambda x: ('-', x))\n" +"parser.add_argument('+a', metavar='', action='append',\n" +" type=lambda x: ('+', x))\n" +"\n" +"args = parser.parse_args()\n" +"print(args)" +msgstr "" + +#: ../../howto/argparse.rst:879 +msgid "" +"$ python prog.py -a value1 +a value2\n" +"Namespace(a=[('-', 'value1'), ('+', 'value2')])" +msgstr "" + +#: ../../howto/argparse.rst:884 +msgid "In this example, we:" +msgstr "" + +#: ../../howto/argparse.rst:886 +msgid "" +"Created a parser with custom prefix characters using the ``prefix_chars`` " +"parameter." +msgstr "" + +#: ../../howto/argparse.rst:889 +msgid "" +"Defined two arguments, ``-a`` and ``+a``, which used the ``type`` parameter " +"to create custom type converters to store the value in a tuple with the " +"prefix." +msgstr "" + +#: ../../howto/argparse.rst:892 +msgid "" +"Without the custom type converters, the arguments would have treated the ``-" +"a`` and ``+a`` as the same argument, which would have been undesirable. By " +"using custom type converters, we were able to differentiate between the two " +"arguments." +msgstr "" + +#: ../../howto/argparse.rst:897 +msgid "Conclusion" +msgstr "" + +#: ../../howto/argparse.rst:899 +msgid "" +"The :mod:`argparse` module offers a lot more than shown here. Its docs are " +"quite detailed and thorough, and full of examples. Having gone through this " +"tutorial, you should easily digest them without feeling overwhelmed." +msgstr "" diff --git a/howto/clinic.po b/howto/clinic.po new file mode 100644 index 0000000..0d65c7f --- /dev/null +++ b/howto/clinic.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/clinic.rst:8 +msgid "Argument Clinic How-To" +msgstr "" + +#: ../../howto/clinic.rst:13 +msgid "" +"The Argument Clinic How-TO has been moved to the `Python Developer's Guide " +"`__." +msgstr "" diff --git a/howto/cporting.po b/howto/cporting.po new file mode 100644 index 0000000..e06b357 --- /dev/null +++ b/howto/cporting.po @@ -0,0 +1,50 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/cporting.rst:7 +msgid "Porting Extension Modules to Python 3" +msgstr "" + +#: ../../howto/cporting.rst:9 +msgid "" +"We recommend the following resources for porting extension modules to Python " +"3:" +msgstr "" + +#: ../../howto/cporting.rst:11 +msgid "" +"The `Migrating C extensions`_ chapter from *Supporting Python 3: An in-depth " +"guide*, a book on moving from Python 2 to Python 3 in general, guides the " +"reader through porting an extension module." +msgstr "" + +#: ../../howto/cporting.rst:15 +msgid "" +"The `Porting guide`_ from the *py3c* project provides opinionated " +"suggestions with supporting code." +msgstr "" + +#: ../../howto/cporting.rst:17 +msgid "" +":ref:`Recommended third party tools ` offer abstractions over " +"the Python's C API. Extensions generally need to be re-written to use one of " +"them, but the library then handles differences between various Python " +"versions and implementations." +msgstr "" diff --git a/howto/curses.po b/howto/curses.po new file mode 100644 index 0000000..e047c5d --- /dev/null +++ b/howto/curses.po @@ -0,0 +1,875 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/curses.rst:5 +msgid "Curses Programming with Python" +msgstr "" + +#: ../../howto/curses.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/curses.rst:9 +msgid "A.M. Kuchling, Eric S. Raymond" +msgstr "" + +#: ../../howto/curses.rst:0 +msgid "Release" +msgstr "" + +#: ../../howto/curses.rst:10 +msgid "2.04" +msgstr "" + +#: ../../howto/curses.rst-1 +msgid "Abstract" +msgstr "" + +#: ../../howto/curses.rst:15 +msgid "" +"This document describes how to use the :mod:`curses` extension module to " +"control text-mode displays." +msgstr "" + +#: ../../howto/curses.rst:20 +msgid "What is curses?" +msgstr "" + +#: ../../howto/curses.rst:22 +msgid "" +"The curses library supplies a terminal-independent screen-painting and " +"keyboard-handling facility for text-based terminals; such terminals include " +"VT100s, the Linux console, and the simulated terminal provided by various " +"programs. Display terminals support various control codes to perform common " +"operations such as moving the cursor, scrolling the screen, and erasing " +"areas. Different terminals use widely differing codes, and often have their " +"own minor quirks." +msgstr "" + +#: ../../howto/curses.rst:30 +msgid "" +"In a world of graphical displays, one might ask \"why bother\"? It's true " +"that character-cell display terminals are an obsolete technology, but there " +"are niches in which being able to do fancy things with them are still " +"valuable. One niche is on small-footprint or embedded Unixes that don't run " +"an X server. Another is tools such as OS installers and kernel " +"configurators that may have to run before any graphical support is available." +msgstr "" + +#: ../../howto/curses.rst:38 +msgid "" +"The curses library provides fairly basic functionality, providing the " +"programmer with an abstraction of a display containing multiple non-" +"overlapping windows of text. The contents of a window can be changed in " +"various ways---adding text, erasing it, changing its appearance---and the " +"curses library will figure out what control codes need to be sent to the " +"terminal to produce the right output. curses doesn't provide many user-" +"interface concepts such as buttons, checkboxes, or dialogs; if you need such " +"features, consider a user interface library such as :pypi:`Urwid`." +msgstr "" + +#: ../../howto/curses.rst:48 +msgid "" +"The curses library was originally written for BSD Unix; the later System V " +"versions of Unix from AT&T added many enhancements and new functions. BSD " +"curses is no longer maintained, having been replaced by ncurses, which is an " +"open-source implementation of the AT&T interface. If you're using an open-" +"source Unix such as Linux or FreeBSD, your system almost certainly uses " +"ncurses. Since most current commercial Unix versions are based on System V " +"code, all the functions described here will probably be available. The " +"older versions of curses carried by some proprietary Unixes may not support " +"everything, though." +msgstr "" + +#: ../../howto/curses.rst:58 +msgid "" +"The Windows version of Python doesn't include the :mod:`curses` module. A " +"ported version called :pypi:`UniCurses` is available." +msgstr "" + +#: ../../howto/curses.rst:63 +msgid "The Python curses module" +msgstr "" + +#: ../../howto/curses.rst:65 +msgid "" +"The Python module is a fairly simple wrapper over the C functions provided " +"by curses; if you're already familiar with curses programming in C, it's " +"really easy to transfer that knowledge to Python. The biggest difference is " +"that the Python interface makes things simpler by merging different C " +"functions such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!" +"mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " +"this covered in more detail later." +msgstr "" + +#: ../../howto/curses.rst:73 +msgid "" +"This HOWTO is an introduction to writing text-mode programs with curses and " +"Python. It doesn't attempt to be a complete guide to the curses API; for " +"that, see the Python library guide's section on ncurses, and the C manual " +"pages for ncurses. It will, however, give you the basic ideas." +msgstr "" + +#: ../../howto/curses.rst:80 +msgid "Starting and ending a curses application" +msgstr "" + +#: ../../howto/curses.rst:82 +msgid "" +"Before doing anything, curses must be initialized. This is done by calling " +"the :func:`~curses.initscr` function, which will determine the terminal " +"type, send any required setup codes to the terminal, and create various " +"internal data structures. If successful, :func:`!initscr` returns a window " +"object representing the entire screen; this is usually called ``stdscr`` " +"after the name of the corresponding C variable. ::" +msgstr "" + +#: ../../howto/curses.rst:90 +msgid "" +"import curses\n" +"stdscr = curses.initscr()" +msgstr "" + +#: ../../howto/curses.rst:93 +msgid "" +"Usually curses applications turn off automatic echoing of keys to the " +"screen, in order to be able to read keys and only display them under certain " +"circumstances. This requires calling the :func:`~curses.noecho` function. ::" +msgstr "" + +#: ../../howto/curses.rst:98 +msgid "curses.noecho()" +msgstr "" + +#: ../../howto/curses.rst:100 +msgid "" +"Applications will also commonly need to react to keys instantly, without " +"requiring the Enter key to be pressed; this is called cbreak mode, as " +"opposed to the usual buffered input mode. ::" +msgstr "" + +#: ../../howto/curses.rst:104 +msgid "curses.cbreak()" +msgstr "" + +#: ../../howto/curses.rst:106 +msgid "" +"Terminals usually return special keys, such as the cursor keys or navigation " +"keys such as Page Up and Home, as a multibyte escape sequence. While you " +"could write your application to expect such sequences and process them " +"accordingly, curses can do it for you, returning a special value such " +"as :const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to " +"enable keypad mode. ::" +msgstr "" + +#: ../../howto/curses.rst:113 +msgid "stdscr.keypad(True)" +msgstr "" + +#: ../../howto/curses.rst:115 +msgid "" +"Terminating a curses application is much easier than starting one. You'll " +"need to call::" +msgstr "" + +#: ../../howto/curses.rst:118 +msgid "" +"curses.nocbreak()\n" +"stdscr.keypad(False)\n" +"curses.echo()" +msgstr "" + +#: ../../howto/curses.rst:122 +msgid "" +"to reverse the curses-friendly terminal settings. Then call " +"the :func:`~curses.endwin` function to restore the terminal to its original " +"operating mode. ::" +msgstr "" + +#: ../../howto/curses.rst:126 +msgid "curses.endwin()" +msgstr "" + +#: ../../howto/curses.rst:128 +msgid "" +"A common problem when debugging a curses application is to get your terminal " +"messed up when the application dies without restoring the terminal to its " +"previous state. In Python this commonly happens when your code is buggy and " +"raises an uncaught exception. Keys are no longer echoed to the screen when " +"you type them, for example, which makes using the shell difficult." +msgstr "" + +#: ../../howto/curses.rst:134 +msgid "" +"In Python you can avoid these complications and make debugging much easier " +"by importing the :func:`curses.wrapper` function and using it like this::" +msgstr "" + +#: ../../howto/curses.rst:137 +msgid "" +"from curses import wrapper\n" +"\n" +"def main(stdscr):\n" +" # Clear screen\n" +" stdscr.clear()\n" +"\n" +" # This raises ZeroDivisionError when i == 10.\n" +" for i in range(0, 11):\n" +" v = i-10\n" +" stdscr.addstr(i, 0, '10 divided by {} is {}'.format(v, 10/v))\n" +"\n" +" stdscr.refresh()\n" +" stdscr.getkey()\n" +"\n" +"wrapper(main)" +msgstr "" + +#: ../../howto/curses.rst:153 +msgid "" +"The :func:`~curses.wrapper` function takes a callable object and does the " +"initializations described above, also initializing colors if color support " +"is present. :func:`!wrapper` then runs your provided callable. Once the " +"callable returns, :func:`!wrapper` will restore the original state of the " +"terminal. The callable is called inside a :keyword:`try`..." +"\\ :keyword:`except` that catches exceptions, restores the state of the " +"terminal, and then re-raises the exception. Therefore your terminal won't " +"be left in a funny state on exception and you'll be able to read the " +"exception's message and traceback." +msgstr "" + +#: ../../howto/curses.rst:165 +msgid "Windows and Pads" +msgstr "" + +#: ../../howto/curses.rst:167 +msgid "" +"Windows are the basic abstraction in curses. A window object represents a " +"rectangular area of the screen, and supports methods to display text, erase " +"it, allow the user to input strings, and so forth." +msgstr "" + +#: ../../howto/curses.rst:171 +msgid "" +"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a " +"window object that covers the entire screen. Many programs may need only " +"this single window, but you might wish to divide the screen into smaller " +"windows, in order to redraw or clear them separately. " +"The :func:`~curses.newwin` function creates a new window of a given size, " +"returning the new window object. ::" +msgstr "" + +#: ../../howto/curses.rst:178 +msgid "" +"begin_x = 20; begin_y = 7\n" +"height = 5; width = 40\n" +"win = curses.newwin(height, width, begin_y, begin_x)" +msgstr "" + +#: ../../howto/curses.rst:182 +msgid "" +"Note that the coordinate system used in curses is unusual. Coordinates are " +"always passed in the order *y,x*, and the top-left corner of a window is " +"coordinate (0,0). This breaks the normal convention for handling " +"coordinates where the *x* coordinate comes first. This is an unfortunate " +"difference from most other computer applications, but it's been part of " +"curses since it was first written, and it's too late to change things now." +msgstr "" + +#: ../../howto/curses.rst:190 +msgid "" +"Your application can determine the size of the screen by using " +"the :data:`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* " +"and *x* sizes. Legal coordinates will then extend from ``(0,0)`` to " +"``(curses.LINES - 1, curses.COLS - 1)``." +msgstr "" + +#: ../../howto/curses.rst:195 +msgid "" +"When you call a method to display or erase text, the effect doesn't " +"immediately show up on the display. Instead you must call " +"the :meth:`~curses.window.refresh` method of window objects to update the " +"screen." +msgstr "" + +#: ../../howto/curses.rst:200 +msgid "" +"This is because curses was originally written with slow 300-baud terminal " +"connections in mind; with these terminals, minimizing the time required to " +"redraw the screen was very important. Instead curses accumulates changes to " +"the screen and displays them in the most efficient manner when you " +"call :meth:`!refresh`. For example, if your program displays some text in a " +"window and then clears the window, there's no need to send the original text " +"because they're never visible." +msgstr "" + +#: ../../howto/curses.rst:209 +msgid "" +"In practice, explicitly telling curses to redraw a window doesn't really " +"complicate programming with curses much. Most programs go into a flurry of " +"activity, and then pause waiting for a keypress or some other action on the " +"part of the user. All you have to do is to be sure that the screen has been " +"redrawn before pausing to wait for user input, by first calling :meth:`!" +"stdscr.refresh` or the :meth:`!refresh` method of some other relevant window." +msgstr "" + +#: ../../howto/curses.rst:217 +msgid "" +"A pad is a special case of a window; it can be larger than the actual " +"display screen, and only a portion of the pad displayed at a time. Creating " +"a pad requires the pad's height and width, while refreshing a pad requires " +"giving the coordinates of the on-screen area where a subsection of the pad " +"will be displayed. ::" +msgstr "" + +#: ../../howto/curses.rst:223 +msgid "" +"pad = curses.newpad(100, 100)\n" +"# These loops fill the pad with letters; addch() is\n" +"# explained in the next section\n" +"for y in range(0, 99):\n" +" for x in range(0, 99):\n" +" pad.addch(y,x, ord('a') + (x*x+y*y) % 26)\n" +"\n" +"# Displays a section of the pad in the middle of the screen.\n" +"# (0,0) : coordinate of upper-left corner of pad area to display.\n" +"# (5,5) : coordinate of upper-left corner of window area to be filled\n" +"# with pad content.\n" +"# (20, 75) : coordinate of lower-right corner of window area to be\n" +"# : filled with pad content.\n" +"pad.refresh( 0,0, 5,5, 20,75)" +msgstr "" + +#: ../../howto/curses.rst:238 +msgid "" +"The :meth:`!refresh` call displays a section of the pad in the rectangle " +"extending from coordinate (5,5) to coordinate (20,75) on the screen; the " +"upper left corner of the displayed section is coordinate (0,0) on the pad. " +"Beyond that difference, pads are exactly like ordinary windows and support " +"the same methods." +msgstr "" + +#: ../../howto/curses.rst:244 +msgid "" +"If you have multiple windows and pads on screen there is a more efficient " +"way to update the screen and prevent annoying screen flicker as each part of " +"the screen gets updated. :meth:`!refresh` actually does two things:" +msgstr "" + +#: ../../howto/curses.rst:249 +msgid "" +"Calls the :meth:`~curses.window.noutrefresh` method of each window to update " +"an underlying data structure representing the desired state of the screen." +msgstr "" + +#: ../../howto/curses.rst:252 +msgid "" +"Calls the function :func:`~curses.doupdate` function to change the physical " +"screen to match the desired state recorded in the data structure." +msgstr "" + +#: ../../howto/curses.rst:255 +msgid "" +"Instead you can call :meth:`!noutrefresh` on a number of windows to update " +"the data structure, and then call :func:`!doupdate` to update the screen." +msgstr "" + +#: ../../howto/curses.rst:261 +msgid "Displaying Text" +msgstr "" + +#: ../../howto/curses.rst:263 +msgid "" +"From a C programmer's point of view, curses may sometimes look like a twisty " +"maze of functions, all subtly different. For example, :c:func:`!addstr` " +"displays a string at the current cursor location in the ``stdscr`` window, " +"while :c:func:`!mvaddstr` moves to a given y,x coordinate first before " +"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, " +"but allows specifying a window to use instead of using ``stdscr`` by " +"default. :c:func:`!mvwaddstr` allows specifying both a window and a " +"coordinate." +msgstr "" + +#: ../../howto/curses.rst:272 +msgid "" +"Fortunately the Python interface hides all these details. ``stdscr`` is a " +"window object like any other, and methods such " +"as :meth:`~curses.window.addstr` accept multiple argument forms. Usually " +"there are four different forms." +msgstr "" + +#: ../../howto/curses.rst:278 +msgid "Form" +msgstr "" + +#: ../../howto/curses.rst:278 ../../howto/curses.rst:346 +msgid "Description" +msgstr "" + +#: ../../howto/curses.rst:280 +msgid "*str* or *ch*" +msgstr "" + +#: ../../howto/curses.rst:280 +msgid "Display the string *str* or character *ch* at the current position" +msgstr "" + +#: ../../howto/curses.rst:283 +msgid "*str* or *ch*, *attr*" +msgstr "" + +#: ../../howto/curses.rst:283 +msgid "" +"Display the string *str* or character *ch*, using attribute *attr* at the " +"current position" +msgstr "" + +#: ../../howto/curses.rst:287 +msgid "*y*, *x*, *str* or *ch*" +msgstr "" + +#: ../../howto/curses.rst:287 +msgid "Move to position *y,x* within the window, and display *str* or *ch*" +msgstr "" + +#: ../../howto/curses.rst:290 +msgid "*y*, *x*, *str* or *ch*, *attr*" +msgstr "" + +#: ../../howto/curses.rst:290 +msgid "" +"Move to position *y,x* within the window, and display *str* or *ch*, using " +"attribute *attr*" +msgstr "" + +#: ../../howto/curses.rst:294 +msgid "" +"Attributes allow displaying text in highlighted forms such as boldface, " +"underline, reverse code, or in color. They'll be explained in more detail " +"in the next subsection." +msgstr "" + +#: ../../howto/curses.rst:299 +msgid "" +"The :meth:`~curses.window.addstr` method takes a Python string or bytestring " +"as the value to be displayed. The contents of bytestrings are sent to the " +"terminal as-is. Strings are encoded to bytes using the value of the " +"window's :attr:`~window.encoding` attribute; this defaults to the default " +"system encoding as returned by :func:`locale.getencoding`." +msgstr "" + +#: ../../howto/curses.rst:305 +msgid "" +"The :meth:`~curses.window.addch` methods take a character, which can be " +"either a string of length 1, a bytestring of length 1, or an integer." +msgstr "" + +#: ../../howto/curses.rst:308 +msgid "" +"Constants are provided for extension characters; these constants are " +"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- " +"symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " +"for drawing borders). You can also use the appropriate Unicode character." +msgstr "" + +#: ../../howto/curses.rst:314 +msgid "" +"Windows remember where the cursor was left after the last operation, so if " +"you leave out the *y,x* coordinates, the string or character will be " +"displayed wherever the last operation left off. You can also move the " +"cursor with the ``move(y,x)`` method. Because some terminals always display " +"a flashing cursor, you may want to ensure that the cursor is positioned in " +"some location where it won't be distracting; it can be confusing to have the " +"cursor blinking at some apparently random location." +msgstr "" + +#: ../../howto/curses.rst:322 +msgid "" +"If your application doesn't need a blinking cursor at all, you can call " +"``curs_set(False)`` to make it invisible. For compatibility with older " +"curses versions, there's a ``leaveok(bool)`` function that's a synonym " +"for :func:`~curses.curs_set`. When *bool* is true, the curses library will " +"attempt to suppress the flashing cursor, and you won't need to worry about " +"leaving it in odd locations." +msgstr "" + +#: ../../howto/curses.rst:331 +msgid "Attributes and Color" +msgstr "" + +#: ../../howto/curses.rst:333 +msgid "" +"Characters can be displayed in different ways. Status lines in a text-based " +"application are commonly shown in reverse video, or a text viewer may need " +"to highlight certain words. curses supports this by allowing you to specify " +"an attribute for each cell on the screen." +msgstr "" + +#: ../../howto/curses.rst:338 +msgid "" +"An attribute is an integer, each bit representing a different attribute. " +"You can try to display text with multiple attribute bits set, but curses " +"doesn't guarantee that all the possible combinations are available, or that " +"they're all visually distinct. That depends on the ability of the terminal " +"being used, so it's safest to stick to the most commonly available " +"attributes, listed here." +msgstr "" + +#: ../../howto/curses.rst:346 +msgid "Attribute" +msgstr "" + +#: ../../howto/curses.rst:348 +msgid ":const:`A_BLINK`" +msgstr "" + +#: ../../howto/curses.rst:348 +msgid "Blinking text" +msgstr "" + +#: ../../howto/curses.rst:350 +msgid ":const:`A_BOLD`" +msgstr "" + +#: ../../howto/curses.rst:350 +msgid "Extra bright or bold text" +msgstr "" + +#: ../../howto/curses.rst:352 +msgid ":const:`A_DIM`" +msgstr "" + +#: ../../howto/curses.rst:352 +msgid "Half bright text" +msgstr "" + +#: ../../howto/curses.rst:354 +msgid ":const:`A_REVERSE`" +msgstr "" + +#: ../../howto/curses.rst:354 +msgid "Reverse-video text" +msgstr "" + +#: ../../howto/curses.rst:356 +msgid ":const:`A_STANDOUT`" +msgstr "" + +#: ../../howto/curses.rst:356 +msgid "The best highlighting mode available" +msgstr "" + +#: ../../howto/curses.rst:358 +msgid ":const:`A_UNDERLINE`" +msgstr "" + +#: ../../howto/curses.rst:358 +msgid "Underlined text" +msgstr "" + +#: ../../howto/curses.rst:361 +msgid "" +"So, to display a reverse-video status line on the top line of the screen, " +"you could code::" +msgstr "" + +#: ../../howto/curses.rst:364 +msgid "" +"stdscr.addstr(0, 0, \"Current mode: Typing mode\",\n" +" curses.A_REVERSE)\n" +"stdscr.refresh()" +msgstr "" + +#: ../../howto/curses.rst:368 +msgid "" +"The curses library also supports color on those terminals that provide it. " +"The most common such terminal is probably the Linux console, followed by " +"color xterms." +msgstr "" + +#: ../../howto/curses.rst:372 +msgid "" +"To use color, you must call the :func:`~curses.start_color` function soon " +"after calling :func:`~curses.initscr`, to initialize the default color set " +"(the :func:`curses.wrapper` function does this automatically). Once that's " +"done, the :func:`~curses.has_colors` function returns TRUE if the terminal " +"in use can actually display color. (Note: curses uses the American spelling " +"'color', instead of the Canadian/British spelling 'colour'. If you're used " +"to the British spelling, you'll have to resign yourself to misspelling it " +"for the sake of these functions.)" +msgstr "" + +#: ../../howto/curses.rst:382 +msgid "" +"The curses library maintains a finite number of color pairs, containing a " +"foreground (or text) color and a background color. You can get the " +"attribute value corresponding to a color pair with " +"the :func:`~curses.color_pair` function; this can be bitwise-OR'ed with " +"other attributes such as :const:`A_REVERSE`, but again, such combinations " +"are not guaranteed to work on all terminals." +msgstr "" + +#: ../../howto/curses.rst:389 +msgid "An example, which displays a line of text using color pair 1::" +msgstr "" + +#: ../../howto/curses.rst:391 +msgid "" +"stdscr.addstr(\"Pretty text\", curses.color_pair(1))\n" +"stdscr.refresh()" +msgstr "" + +#: ../../howto/curses.rst:394 +msgid "" +"As I said before, a color pair consists of a foreground and background " +"color. The ``init_pair(n, f, b)`` function changes the definition of color " +"pair *n*, to foreground color f and background color b. Color pair 0 is " +"hard-wired to white on black, and cannot be changed." +msgstr "" + +#: ../../howto/curses.rst:399 +msgid "" +"Colors are numbered, and :func:`start_color` initializes 8 basic colors when " +"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, " +"4:blue, 5:magenta, 6:cyan, and 7:white. The :mod:`curses` module defines " +"named constants for each of these " +"colors: :const:`curses.COLOR_BLACK`, :const:`curses.COLOR_RED`, and so forth." +msgstr "" + +#: ../../howto/curses.rst:405 +msgid "" +"Let's put all this together. To change color 1 to red text on a white " +"background, you would call::" +msgstr "" + +#: ../../howto/curses.rst:408 +msgid "curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)" +msgstr "" + +#: ../../howto/curses.rst:410 +msgid "" +"When you change a color pair, any text already displayed using that color " +"pair will change to the new colors. You can also display new text in this " +"color with::" +msgstr "" + +#: ../../howto/curses.rst:414 +msgid "stdscr.addstr(0,0, \"RED ALERT!\", curses.color_pair(1))" +msgstr "" + +#: ../../howto/curses.rst:416 +msgid "" +"Very fancy terminals can change the definitions of the actual colors to a " +"given RGB value. This lets you change color 1, which is usually red, to " +"purple or blue or any other color you like. Unfortunately, the Linux " +"console doesn't support this, so I'm unable to try it out, and can't provide " +"any examples. You can check if your terminal can do this by " +"calling :func:`~curses.can_change_color`, which returns ``True`` if the " +"capability is there. If you're lucky enough to have such a talented " +"terminal, consult your system's man pages for more information." +msgstr "" + +#: ../../howto/curses.rst:427 +msgid "User Input" +msgstr "" + +#: ../../howto/curses.rst:429 +msgid "" +"The C curses library offers only very simple input mechanisms. " +"Python's :mod:`curses` module adds a basic text-input widget. (Other " +"libraries such as :pypi:`Urwid` have more extensive collections of widgets.)" +msgstr "" + +#: ../../howto/curses.rst:433 +msgid "There are two methods for getting input from a window:" +msgstr "" + +#: ../../howto/curses.rst:435 +msgid "" +":meth:`~curses.window.getch` refreshes the screen and then waits for the " +"user to hit a key, displaying the key if :func:`~curses.echo` has been " +"called earlier. You can optionally specify a coordinate to which the cursor " +"should be moved before pausing." +msgstr "" + +#: ../../howto/curses.rst:440 +msgid "" +":meth:`~curses.window.getkey` does the same thing but converts the integer " +"to a string. Individual characters are returned as 1-character strings, and " +"special keys such as function keys return longer strings containing a key " +"name such as ``KEY_UP`` or ``^G``." +msgstr "" + +#: ../../howto/curses.rst:445 +msgid "" +"It's possible to not wait for the user using " +"the :meth:`~curses.window.nodelay` window method. After " +"``nodelay(True)``, :meth:`!getch` and :meth:`!getkey` for the window become " +"non-blocking. To signal that no input is ready, :meth:`!getch` returns " +"``curses.ERR`` (a value of -1) and :meth:`!getkey` raises an exception. " +"There's also a :func:`~curses.halfdelay` function, which can be used to (in " +"effect) set a timer on each :meth:`!getch`; if no input becomes available " +"within a specified delay (measured in tenths of a second), curses raises an " +"exception." +msgstr "" + +#: ../../howto/curses.rst:455 +msgid "" +"The :meth:`!getch` method returns an integer; if it's between 0 and 255, it " +"represents the ASCII code of the key pressed. Values greater than 255 are " +"special keys such as Page Up, Home, or the cursor keys. You can compare the " +"value returned to constants such " +"as :const:`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, " +"or :const:`curses.KEY_LEFT`. The main loop of your program may look " +"something like this::" +msgstr "" + +#: ../../howto/curses.rst:462 +msgid "" +"while True:\n" +" c = stdscr.getch()\n" +" if c == ord('p'):\n" +" PrintDocument()\n" +" elif c == ord('q'):\n" +" break # Exit the while loop\n" +" elif c == curses.KEY_HOME:\n" +" x = y = 0" +msgstr "" + +#: ../../howto/curses.rst:471 +msgid "" +"The :mod:`curses.ascii` module supplies ASCII class membership functions " +"that take either integer or 1-character string arguments; these may be " +"useful in writing more readable tests for such loops. It also supplies " +"conversion functions that take either integer or 1-character-string " +"arguments and return the same type. For example, :func:`curses.ascii.ctrl` " +"returns the control character corresponding to its argument." +msgstr "" + +#: ../../howto/curses.rst:478 +msgid "" +"There's also a method to retrieve an entire " +"string, :meth:`~curses.window.getstr`. It isn't used very often, because " +"its functionality is quite limited; the only editing keys available are the " +"backspace key and the Enter key, which terminates the string. It can " +"optionally be limited to a fixed number of characters. ::" +msgstr "" + +#: ../../howto/curses.rst:484 +msgid "" +"curses.echo() # Enable echoing of characters\n" +"\n" +"# Get a 15-character string, with the cursor on the top line\n" +"s = stdscr.getstr(0,0, 15)" +msgstr "" + +#: ../../howto/curses.rst:489 +msgid "" +"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-" +"like set of keybindings. Various methods of " +"the :class:`~curses.textpad.Textbox` class support editing with input " +"validation and gathering the edit results either with or without trailing " +"spaces. Here's an example::" +msgstr "" + +#: ../../howto/curses.rst:495 +msgid "" +"import curses\n" +"from curses.textpad import Textbox, rectangle\n" +"\n" +"def main(stdscr):\n" +" stdscr.addstr(0, 0, \"Enter IM message: (hit Ctrl-G to send)\")\n" +"\n" +" editwin = curses.newwin(5,30, 2,1)\n" +" rectangle(stdscr, 1,0, 1+5+1, 1+30+1)\n" +" stdscr.refresh()\n" +"\n" +" box = Textbox(editwin)\n" +"\n" +" # Let the user edit until Ctrl-G is struck.\n" +" box.edit()\n" +"\n" +" # Get resulting contents\n" +" message = box.gather()" +msgstr "" + +#: ../../howto/curses.rst:513 +msgid "" +"See the library documentation on :mod:`curses.textpad` for more details." +msgstr "" + +#: ../../howto/curses.rst:517 +msgid "For More Information" +msgstr "" + +#: ../../howto/curses.rst:519 +msgid "" +"This HOWTO doesn't cover some advanced topics, such as reading the contents " +"of the screen or capturing mouse events from an xterm instance, but the " +"Python library page for the :mod:`curses` module is now reasonably " +"complete. You should browse it next." +msgstr "" + +#: ../../howto/curses.rst:524 +msgid "" +"If you're in doubt about the detailed behavior of the curses functions, " +"consult the manual pages for your curses implementation, whether it's " +"ncurses or a proprietary Unix vendor's. The manual pages will document any " +"quirks, and provide complete lists of all the functions, attributes, " +"and :ref:`ACS_\\* ` characters available to you." +msgstr "" + +#: ../../howto/curses.rst:531 +msgid "" +"Because the curses API is so large, some functions aren't supported in the " +"Python interface. Often this isn't because they're difficult to implement, " +"but because no one has needed them yet. Also, Python doesn't yet support " +"the menu library associated with ncurses. Patches adding support for these " +"would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." +msgstr "" + +#: ../../howto/curses.rst:539 +msgid "" +"`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." +msgstr "" + +#: ../../howto/curses.rst:541 +msgid "`The ncurses man page `_" +msgstr "" + +#: ../../howto/curses.rst:542 +msgid "" +"`The ncurses FAQ `_" +msgstr "" + +#: ../../howto/curses.rst:543 +msgid "" +"`\"Use curses... don't swear\" `_: video of a PyCon 2013 talk on controlling terminals using " +"curses or Urwid." +msgstr "" + +#: ../../howto/curses.rst:545 +msgid "" +"`\"Console Applications with Urwid\" `_: video of a PyCon CA 2012 talk demonstrating some " +"applications written using Urwid." +msgstr "" diff --git a/howto/descriptor.po b/howto/descriptor.po new file mode 100644 index 0000000..9cfdcfb --- /dev/null +++ b/howto/descriptor.po @@ -0,0 +1,1912 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/descriptor.rst:5 +msgid "Descriptor Guide" +msgstr "" + +#: ../../howto/descriptor.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/descriptor.rst:7 +msgid "Raymond Hettinger" +msgstr "" + +#: ../../howto/descriptor.rst:0 +msgid "Contact" +msgstr "" + +#: ../../howto/descriptor.rst:8 +msgid "" +msgstr "" + +#: ../../howto/descriptor.rst:11 +msgid "Contents" +msgstr "" + +#: ../../howto/descriptor.rst:13 +msgid "" +":term:`Descriptors ` let objects customize attribute lookup, " +"storage, and deletion." +msgstr "" + +#: ../../howto/descriptor.rst:16 +msgid "This guide has four major sections:" +msgstr "" + +#: ../../howto/descriptor.rst:18 +msgid "" +"The \"primer\" gives a basic overview, moving gently from simple examples, " +"adding one feature at a time. Start here if you're new to descriptors." +msgstr "" + +#: ../../howto/descriptor.rst:21 +msgid "" +"The second section shows a complete, practical descriptor example. If you " +"already know the basics, start there." +msgstr "" + +#: ../../howto/descriptor.rst:24 +msgid "" +"The third section provides a more technical tutorial that goes into the " +"detailed mechanics of how descriptors work. Most people don't need this " +"level of detail." +msgstr "" + +#: ../../howto/descriptor.rst:28 +msgid "" +"The last section has pure Python equivalents for built-in descriptors that " +"are written in C. Read this if you're curious about how functions turn into " +"bound methods or about the implementation of common tools " +"like :func:`classmethod`, :func:`staticmethod`, :func:`property`, " +"and :term:`__slots__`." +msgstr "" + +#: ../../howto/descriptor.rst:36 +msgid "Primer" +msgstr "" + +#: ../../howto/descriptor.rst:38 +msgid "" +"In this primer, we start with the most basic possible example and then we'll " +"add new capabilities one by one." +msgstr "" + +#: ../../howto/descriptor.rst:43 +msgid "Simple example: A descriptor that returns a constant" +msgstr "" + +#: ../../howto/descriptor.rst:45 +msgid "" +"The :class:`!Ten` class is a descriptor whose :meth:`~object.__get__` method " +"always returns the constant ``10``:" +msgstr "" + +#: ../../howto/descriptor.rst:48 +msgid "" +"class Ten:\n" +" def __get__(self, obj, objtype=None):\n" +" return 10" +msgstr "" + +#: ../../howto/descriptor.rst:54 +msgid "" +"To use the descriptor, it must be stored as a class variable in another " +"class:" +msgstr "" + +#: ../../howto/descriptor.rst:56 +msgid "" +"class A:\n" +" x = 5 # Regular class attribute\n" +" y = Ten() # Descriptor instance" +msgstr "" + +#: ../../howto/descriptor.rst:62 +msgid "" +"An interactive session shows the difference between normal attribute lookup " +"and descriptor lookup:" +msgstr "" + +#: ../../howto/descriptor.rst:65 +msgid "" +">>> a = A() # Make an instance of class A\n" +">>> a.x # Normal attribute lookup\n" +"5\n" +">>> a.y # Descriptor lookup\n" +"10" +msgstr "" + +#: ../../howto/descriptor.rst:73 +msgid "" +"In the ``a.x`` attribute lookup, the dot operator finds ``'x': 5`` in the " +"class dictionary. In the ``a.y`` lookup, the dot operator finds a " +"descriptor instance, recognized by its ``__get__`` method. Calling that " +"method returns ``10``." +msgstr "" + +#: ../../howto/descriptor.rst:78 +msgid "" +"Note that the value ``10`` is not stored in either the class dictionary or " +"the instance dictionary. Instead, the value ``10`` is computed on demand." +msgstr "" + +#: ../../howto/descriptor.rst:81 +msgid "" +"This example shows how a simple descriptor works, but it isn't very useful. " +"For retrieving constants, normal attribute lookup would be better." +msgstr "" + +#: ../../howto/descriptor.rst:84 +msgid "" +"In the next section, we'll create something more useful, a dynamic lookup." +msgstr "" + +#: ../../howto/descriptor.rst:88 +msgid "Dynamic lookups" +msgstr "" + +#: ../../howto/descriptor.rst:90 +msgid "" +"Interesting descriptors typically run computations instead of returning " +"constants:" +msgstr "" + +#: ../../howto/descriptor.rst:93 +msgid "" +"import os\n" +"\n" +"class DirectorySize:\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" return len(os.listdir(obj.dirname))\n" +"\n" +"class Directory:\n" +"\n" +" size = DirectorySize() # Descriptor instance\n" +"\n" +" def __init__(self, dirname):\n" +" self.dirname = dirname # Regular instance attribute" +msgstr "" + +#: ../../howto/descriptor.rst:109 +msgid "" +"An interactive session shows that the lookup is dynamic — it computes " +"different, updated answers each time::" +msgstr "" + +#: ../../howto/descriptor.rst:112 +msgid "" +">>> s = Directory('songs')\n" +">>> g = Directory('games')\n" +">>> s.size # The songs directory has twenty " +"files\n" +"20\n" +">>> g.size # The games directory has three " +"files\n" +"3\n" +">>> os.remove('games/chess') # Delete a game\n" +">>> g.size # File count is automatically " +"updated\n" +"2" +msgstr "" + +#: ../../howto/descriptor.rst:122 +msgid "" +"Besides showing how descriptors can run computations, this example also " +"reveals the purpose of the parameters to :meth:`~object.__get__`. The " +"*self* parameter is *size*, an instance of *DirectorySize*. The *obj* " +"parameter is either *g* or *s*, an instance of *Directory*. It is the *obj* " +"parameter that lets the :meth:`~object.__get__` method learn the target " +"directory. The *objtype* parameter is the class *Directory*." +msgstr "" + +#: ../../howto/descriptor.rst:131 +msgid "Managed attributes" +msgstr "" + +#: ../../howto/descriptor.rst:133 +msgid "" +"A popular use for descriptors is managing access to instance data. The " +"descriptor is assigned to a public attribute in the class dictionary while " +"the actual data is stored as a private attribute in the instance " +"dictionary. The descriptor's :meth:`~object.__get__` " +"and :meth:`~object.__set__` methods are triggered when the public attribute " +"is accessed." +msgstr "" + +#: ../../howto/descriptor.rst:139 +msgid "" +"In the following example, *age* is the public attribute and *_age* is the " +"private attribute. When the public attribute is accessed, the descriptor " +"logs the lookup or update:" +msgstr "" + +#: ../../howto/descriptor.rst:143 +msgid "" +"import logging\n" +"\n" +"logging.basicConfig(level=logging.INFO)\n" +"\n" +"class LoggedAgeAccess:\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" value = obj._age\n" +" logging.info('Accessing %r giving %r', 'age', value)\n" +" return value\n" +"\n" +" def __set__(self, obj, value):\n" +" logging.info('Updating %r to %r', 'age', value)\n" +" obj._age = value\n" +"\n" +"class Person:\n" +"\n" +" age = LoggedAgeAccess() # Descriptor instance\n" +"\n" +" def __init__(self, name, age):\n" +" self.name = name # Regular instance attribute\n" +" self.age = age # Calls __set__()\n" +"\n" +" def birthday(self):\n" +" self.age += 1 # Calls both __get__() and __set__()" +msgstr "" + +#: ../../howto/descriptor.rst:172 +msgid "" +"An interactive session shows that all access to the managed attribute *age* " +"is logged, but that the regular attribute *name* is not logged:" +msgstr "" + +#: ../../howto/descriptor.rst:181 +msgid "" +">>> mary = Person('Mary M', 30) # The initial age update is logged\n" +"INFO:root:Updating 'age' to 30\n" +">>> dave = Person('David D', 40)\n" +"INFO:root:Updating 'age' to 40\n" +"\n" +">>> vars(mary) # The actual data is in a private " +"attribute\n" +"{'name': 'Mary M', '_age': 30}\n" +">>> vars(dave)\n" +"{'name': 'David D', '_age': 40}\n" +"\n" +">>> mary.age # Access the data and log the " +"lookup\n" +"INFO:root:Accessing 'age' giving 30\n" +"30\n" +">>> mary.birthday() # Updates are logged as well\n" +"INFO:root:Accessing 'age' giving 30\n" +"INFO:root:Updating 'age' to 31\n" +"\n" +">>> dave.name # Regular attribute lookup isn't " +"logged\n" +"'David D'\n" +">>> dave.age # Only the managed attribute is " +"logged\n" +"INFO:root:Accessing 'age' giving 40\n" +"40" +msgstr "" + +#: ../../howto/descriptor.rst:206 +msgid "" +"One major issue with this example is that the private name *_age* is " +"hardwired in the *LoggedAgeAccess* class. That means that each instance can " +"only have one logged attribute and that its name is unchangeable. In the " +"next example, we'll fix that problem." +msgstr "" + +#: ../../howto/descriptor.rst:213 +msgid "Customized names" +msgstr "" + +#: ../../howto/descriptor.rst:215 +msgid "" +"When a class uses descriptors, it can inform each descriptor about which " +"variable name was used." +msgstr "" + +#: ../../howto/descriptor.rst:218 +msgid "" +"In this example, the :class:`!Person` class has two descriptor instances, " +"*name* and *age*. When the :class:`!Person` class is defined, it makes a " +"callback to :meth:`~object.__set_name__` in *LoggedAccess* so that the field " +"names can be recorded, giving each descriptor its own *public_name* and " +"*private_name*:" +msgstr "" + +#: ../../howto/descriptor.rst:223 +msgid "" +"import logging\n" +"\n" +"logging.basicConfig(level=logging.INFO)\n" +"\n" +"class LoggedAccess:\n" +"\n" +" def __set_name__(self, owner, name):\n" +" self.public_name = name\n" +" self.private_name = '_' + name\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" value = getattr(obj, self.private_name)\n" +" logging.info('Accessing %r giving %r', self.public_name, value)\n" +" return value\n" +"\n" +" def __set__(self, obj, value):\n" +" logging.info('Updating %r to %r', self.public_name, value)\n" +" setattr(obj, self.private_name, value)\n" +"\n" +"class Person:\n" +"\n" +" name = LoggedAccess() # First descriptor instance\n" +" age = LoggedAccess() # Second descriptor instance\n" +"\n" +" def __init__(self, name, age):\n" +" self.name = name # Calls the first descriptor\n" +" self.age = age # Calls the second descriptor\n" +"\n" +" def birthday(self):\n" +" self.age += 1" +msgstr "" + +#: ../../howto/descriptor.rst:256 +msgid "" +"An interactive session shows that the :class:`!Person` class has " +"called :meth:`~object.__set_name__` so that the field names would be " +"recorded. Here we call :func:`vars` to look up the descriptor without " +"triggering it:" +msgstr "" + +#: ../../howto/descriptor.rst:260 +msgid "" +">>> vars(vars(Person)['name'])\n" +"{'public_name': 'name', 'private_name': '_name'}\n" +">>> vars(vars(Person)['age'])\n" +"{'public_name': 'age', 'private_name': '_age'}" +msgstr "" + +#: ../../howto/descriptor.rst:267 +msgid "The new class now logs access to both *name* and *age*:" +msgstr "" + +#: ../../howto/descriptor.rst:275 +msgid "" +">>> pete = Person('Peter P', 10)\n" +"INFO:root:Updating 'name' to 'Peter P'\n" +"INFO:root:Updating 'age' to 10\n" +">>> kate = Person('Catherine C', 20)\n" +"INFO:root:Updating 'name' to 'Catherine C'\n" +"INFO:root:Updating 'age' to 20" +msgstr "" + +#: ../../howto/descriptor.rst:284 +msgid "The two *Person* instances contain only the private names:" +msgstr "" + +#: ../../howto/descriptor.rst:286 +msgid "" +">>> vars(pete)\n" +"{'_name': 'Peter P', '_age': 10}\n" +">>> vars(kate)\n" +"{'_name': 'Catherine C', '_age': 20}" +msgstr "" + +#: ../../howto/descriptor.rst:295 +msgid "Closing thoughts" +msgstr "" + +#: ../../howto/descriptor.rst:297 +msgid "" +"A :term:`descriptor` is what we call any object that " +"defines :meth:`~object.__get__`, :meth:`~object.__set__`, " +"or :meth:`~object.__delete__`." +msgstr "" + +#: ../../howto/descriptor.rst:300 +msgid "" +"Optionally, descriptors can have a :meth:`~object.__set_name__` method. " +"This is only used in cases where a descriptor needs to know either the class " +"where it was created or the name of class variable it was assigned to. " +"(This method, if present, is called even if the class is not a descriptor.)" +msgstr "" + +#: ../../howto/descriptor.rst:305 +msgid "" +"Descriptors get invoked by the dot operator during attribute lookup. If a " +"descriptor is accessed indirectly with ``vars(some_class)" +"[descriptor_name]``, the descriptor instance is returned without invoking it." +msgstr "" + +#: ../../howto/descriptor.rst:309 +msgid "" +"Descriptors only work when used as class variables. When put in instances, " +"they have no effect." +msgstr "" + +#: ../../howto/descriptor.rst:312 +msgid "" +"The main motivation for descriptors is to provide a hook allowing objects " +"stored in class variables to control what happens during attribute lookup." +msgstr "" + +#: ../../howto/descriptor.rst:315 +msgid "" +"Traditionally, the calling class controls what happens during lookup. " +"Descriptors invert that relationship and allow the data being looked-up to " +"have a say in the matter." +msgstr "" + +#: ../../howto/descriptor.rst:319 +msgid "" +"Descriptors are used throughout the language. It is how functions turn into " +"bound methods. Common tools " +"like :func:`classmethod`, :func:`staticmethod`, :func:`property`, " +"and :func:`functools.cached_property` are all implemented as descriptors." +msgstr "" + +#: ../../howto/descriptor.rst:326 +msgid "Complete Practical Example" +msgstr "" + +#: ../../howto/descriptor.rst:328 +msgid "" +"In this example, we create a practical and powerful tool for locating " +"notoriously hard to find data corruption bugs." +msgstr "" + +#: ../../howto/descriptor.rst:333 +msgid "Validator class" +msgstr "" + +#: ../../howto/descriptor.rst:335 +msgid "" +"A validator is a descriptor for managed attribute access. Prior to storing " +"any data, it verifies that the new value meets various type and range " +"restrictions. If those restrictions aren't met, it raises an exception to " +"prevent data corruption at its source." +msgstr "" + +#: ../../howto/descriptor.rst:340 +msgid "" +"This :class:`!Validator` class is both an :term:`abstract base class` and a " +"managed attribute descriptor:" +msgstr "" + +#: ../../howto/descriptor.rst:343 +msgid "" +"from abc import ABC, abstractmethod\n" +"\n" +"class Validator(ABC):\n" +"\n" +" def __set_name__(self, owner, name):\n" +" self.private_name = '_' + name\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" return getattr(obj, self.private_name)\n" +"\n" +" def __set__(self, obj, value):\n" +" self.validate(value)\n" +" setattr(obj, self.private_name, value)\n" +"\n" +" @abstractmethod\n" +" def validate(self, value):\n" +" pass" +msgstr "" + +#: ../../howto/descriptor.rst:363 +msgid "" +"Custom validators need to inherit from :class:`!Validator` and must supply " +"a :meth:`!validate` method to test various restrictions as needed." +msgstr "" + +#: ../../howto/descriptor.rst:368 +msgid "Custom validators" +msgstr "" + +#: ../../howto/descriptor.rst:370 +msgid "Here are three practical data validation utilities:" +msgstr "" + +#: ../../howto/descriptor.rst:372 +msgid "" +":class:`!OneOf` verifies that a value is one of a restricted set of options." +msgstr "" + +#: ../../howto/descriptor.rst:374 +msgid "" +":class:`!Number` verifies that a value is either an :class:`int` " +"or :class:`float`. Optionally, it verifies that a value is between a given " +"minimum or maximum." +msgstr "" + +#: ../../howto/descriptor.rst:378 +msgid "" +":class:`!String` verifies that a value is a :class:`str`. Optionally, it " +"validates a given minimum or maximum length. It can validate a user-defined " +"`predicate `_ " +"as well." +msgstr "" + +#: ../../howto/descriptor.rst:383 +msgid "" +"class OneOf(Validator):\n" +"\n" +" def __init__(self, *options):\n" +" self.options = set(options)\n" +"\n" +" def validate(self, value):\n" +" if value not in self.options:\n" +" raise ValueError(\n" +" f'Expected {value!r} to be one of {self.options!r}'\n" +" )\n" +"\n" +"class Number(Validator):\n" +"\n" +" def __init__(self, minvalue=None, maxvalue=None):\n" +" self.minvalue = minvalue\n" +" self.maxvalue = maxvalue\n" +"\n" +" def validate(self, value):\n" +" if not isinstance(value, (int, float)):\n" +" raise TypeError(f'Expected {value!r} to be an int or float')\n" +" if self.minvalue is not None and value < self.minvalue:\n" +" raise ValueError(\n" +" f'Expected {value!r} to be at least {self.minvalue!r}'\n" +" )\n" +" if self.maxvalue is not None and value > self.maxvalue:\n" +" raise ValueError(\n" +" f'Expected {value!r} to be no more than {self.maxvalue!r}'\n" +" )\n" +"\n" +"class String(Validator):\n" +"\n" +" def __init__(self, minsize=None, maxsize=None, predicate=None):\n" +" self.minsize = minsize\n" +" self.maxsize = maxsize\n" +" self.predicate = predicate\n" +"\n" +" def validate(self, value):\n" +" if not isinstance(value, str):\n" +" raise TypeError(f'Expected {value!r} to be an str')\n" +" if self.minsize is not None and len(value) < self.minsize:\n" +" raise ValueError(\n" +" f'Expected {value!r} to be no smaller than {self.minsize!" +"r}'\n" +" )\n" +" if self.maxsize is not None and len(value) > self.maxsize:\n" +" raise ValueError(\n" +" f'Expected {value!r} to be no bigger than {self.maxsize!r}'\n" +" )\n" +" if self.predicate is not None and not self.predicate(value):\n" +" raise ValueError(\n" +" f'Expected {self.predicate} to be true for {value!r}'\n" +" )" +msgstr "" + +#: ../../howto/descriptor.rst:439 +msgid "Practical application" +msgstr "" + +#: ../../howto/descriptor.rst:441 +msgid "Here's how the data validators can be used in a real class:" +msgstr "" + +#: ../../howto/descriptor.rst:443 +msgid "" +"class Component:\n" +"\n" +" name = String(minsize=3, maxsize=10, predicate=str.isupper)\n" +" kind = OneOf('wood', 'metal', 'plastic')\n" +" quantity = Number(minvalue=0)\n" +"\n" +" def __init__(self, name, kind, quantity):\n" +" self.name = name\n" +" self.kind = kind\n" +" self.quantity = quantity" +msgstr "" + +#: ../../howto/descriptor.rst:456 +msgid "The descriptors prevent invalid instances from being created:" +msgstr "" + +#: ../../howto/descriptor.rst:458 +msgid "" +">>> Component('Widget', 'metal', 5) # Blocked: 'Widget' is not all " +"uppercase\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: Expected to be true for " +"'Widget'\n" +"\n" +">>> Component('WIDGET', 'metle', 5) # Blocked: 'metle' is misspelled\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: Expected 'metle' to be one of {'metal', 'plastic', 'wood'}\n" +"\n" +">>> Component('WIDGET', 'metal', -5) # Blocked: -5 is negative\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: Expected -5 to be at least 0\n" +"\n" +">>> Component('WIDGET', 'metal', 'V') # Blocked: 'V' isn't a number\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: Expected 'V' to be an int or float\n" +"\n" +">>> c = Component('WIDGET', 'metal', 5) # Allowed: The inputs are valid" +msgstr "" + +#: ../../howto/descriptor.rst:484 +msgid "Technical Tutorial" +msgstr "" + +#: ../../howto/descriptor.rst:486 +msgid "" +"What follows is a more technical tutorial for the mechanics and details of " +"how descriptors work." +msgstr "" + +#: ../../howto/descriptor.rst:491 +msgid "Abstract" +msgstr "" + +#: ../../howto/descriptor.rst:493 +msgid "" +"Defines descriptors, summarizes the protocol, and shows how descriptors are " +"called. Provides an example showing how object relational mappings work." +msgstr "" + +#: ../../howto/descriptor.rst:496 +msgid "" +"Learning about descriptors not only provides access to a larger toolset, it " +"creates a deeper understanding of how Python works." +msgstr "" + +#: ../../howto/descriptor.rst:501 +msgid "Definition and introduction" +msgstr "" + +#: ../../howto/descriptor.rst:503 +msgid "" +"In general, a descriptor is an attribute value that has one of the methods " +"in the descriptor protocol. Those methods " +"are :meth:`~object.__get__`, :meth:`~object.__set__`, " +"and :meth:`~object.__delete__`. If any of those methods are defined for an " +"attribute, it is said to be a :term:`descriptor`." +msgstr "" + +#: ../../howto/descriptor.rst:508 +msgid "" +"The default behavior for attribute access is to get, set, or delete the " +"attribute from an object's dictionary. For instance, ``a.x`` has a lookup " +"chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " +"continuing through the method resolution order of ``type(a)``. If the looked-" +"up value is an object defining one of the descriptor methods, then Python " +"may override the default behavior and invoke the descriptor method instead. " +"Where this occurs in the precedence chain depends on which descriptor " +"methods were defined." +msgstr "" + +#: ../../howto/descriptor.rst:517 +msgid "" +"Descriptors are a powerful, general purpose protocol. They are the " +"mechanism behind properties, methods, static methods, class methods, " +"and :func:`super`. They are used throughout Python itself. Descriptors " +"simplify the underlying C code and offer a flexible set of new tools for " +"everyday Python programs." +msgstr "" + +#: ../../howto/descriptor.rst:525 +msgid "Descriptor protocol" +msgstr "" + +#: ../../howto/descriptor.rst:527 +msgid "``descr.__get__(self, obj, type=None)``" +msgstr "" + +#: ../../howto/descriptor.rst:529 +msgid "``descr.__set__(self, obj, value)``" +msgstr "" + +#: ../../howto/descriptor.rst:531 +msgid "``descr.__delete__(self, obj)``" +msgstr "" + +#: ../../howto/descriptor.rst:533 +msgid "" +"That is all there is to it. Define any of these methods and an object is " +"considered a descriptor and can override default behavior upon being looked " +"up as an attribute." +msgstr "" + +#: ../../howto/descriptor.rst:537 +msgid "" +"If an object defines :meth:`~object.__set__` or :meth:`~object.__delete__`, " +"it is considered a data descriptor. Descriptors that only " +"define :meth:`~object.__get__` are called non-data descriptors (they are " +"often used for methods but other uses are possible)." +msgstr "" + +#: ../../howto/descriptor.rst:542 +msgid "" +"Data and non-data descriptors differ in how overrides are calculated with " +"respect to entries in an instance's dictionary. If an instance's dictionary " +"has an entry with the same name as a data descriptor, the data descriptor " +"takes precedence. If an instance's dictionary has an entry with the same " +"name as a non-data descriptor, the dictionary entry takes precedence." +msgstr "" + +#: ../../howto/descriptor.rst:548 +msgid "" +"To make a read-only data descriptor, define both :meth:`~object.__get__` " +"and :meth:`~object.__set__` with the :meth:`~object.__set__` raising " +"an :exc:`AttributeError` when called. Defining the :meth:`~object.__set__` " +"method with an exception raising placeholder is enough to make it a data " +"descriptor." +msgstr "" + +#: ../../howto/descriptor.rst:555 +msgid "Overview of descriptor invocation" +msgstr "" + +#: ../../howto/descriptor.rst:557 +msgid "" +"A descriptor can be called directly with ``desc.__get__(obj)`` or " +"``desc.__get__(None, cls)``." +msgstr "" + +#: ../../howto/descriptor.rst:560 +msgid "" +"But it is more common for a descriptor to be invoked automatically from " +"attribute access." +msgstr "" + +#: ../../howto/descriptor.rst:563 +msgid "" +"The expression ``obj.x`` looks up the attribute ``x`` in the chain of " +"namespaces for ``obj``. If the search finds a descriptor outside of the " +"instance :attr:`~object.__dict__`, its :meth:`~object.__get__` method is " +"invoked according to the precedence rules listed below." +msgstr "" + +#: ../../howto/descriptor.rst:568 +msgid "" +"The details of invocation depend on whether ``obj`` is an object, class, or " +"instance of super." +msgstr "" + +#: ../../howto/descriptor.rst:573 +msgid "Invocation from an instance" +msgstr "" + +#: ../../howto/descriptor.rst:575 +msgid "" +"Instance lookup scans through a chain of namespaces giving data descriptors " +"the highest priority, followed by instance variables, then non-data " +"descriptors, then class variables, and lastly :meth:`~object.__getattr__` if " +"it is provided." +msgstr "" + +#: ../../howto/descriptor.rst:580 +msgid "" +"If a descriptor is found for ``a.x``, then it is invoked with: " +"``desc.__get__(a, type(a))``." +msgstr "" + +#: ../../howto/descriptor.rst:583 +msgid "" +"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here " +"is a pure Python equivalent:" +msgstr "" + +#: ../../howto/descriptor.rst:586 +msgid "" +"def find_name_in_mro(cls, name, default):\n" +" \"Emulate _PyType_Lookup() in Objects/typeobject.c\"\n" +" for base in cls.__mro__:\n" +" if name in vars(base):\n" +" return vars(base)[name]\n" +" return default\n" +"\n" +"def object_getattribute(obj, name):\n" +" \"Emulate PyObject_GenericGetAttr() in Objects/object.c\"\n" +" null = object()\n" +" objtype = type(obj)\n" +" cls_var = find_name_in_mro(objtype, name, null)\n" +" descr_get = getattr(type(cls_var), '__get__', null)\n" +" if descr_get is not null:\n" +" if (hasattr(type(cls_var), '__set__')\n" +" or hasattr(type(cls_var), '__delete__')):\n" +" return descr_get(cls_var, obj, objtype) # data descriptor\n" +" if hasattr(obj, '__dict__') and name in vars(obj):\n" +" return vars(obj)[name] # instance variable\n" +" if descr_get is not null:\n" +" return descr_get(cls_var, obj, objtype) # non-data " +"descriptor\n" +" if cls_var is not null:\n" +" return cls_var # class variable\n" +" raise AttributeError(name)" +msgstr "" + +#: ../../howto/descriptor.rst:722 +msgid "" +"Note, there is no :meth:`~object.__getattr__` hook in " +"the :meth:`~object.__getattribute__` code. That is why " +"calling :meth:`~object.__getattribute__` directly or with " +"``super().__getattribute__`` will bypass :meth:`~object.__getattr__` " +"entirely." +msgstr "" + +#: ../../howto/descriptor.rst:726 +msgid "" +"Instead, it is the dot operator and the :func:`getattr` function that are " +"responsible for invoking :meth:`~object.__getattr__` " +"whenever :meth:`~object.__getattribute__` raises an :exc:`AttributeError`. " +"Their logic is encapsulated in a helper function:" +msgstr "" + +#: ../../howto/descriptor.rst:731 +msgid "" +"def getattr_hook(obj, name):\n" +" \"Emulate slot_tp_getattr_hook() in Objects/typeobject.c\"\n" +" try:\n" +" return obj.__getattribute__(name)\n" +" except AttributeError:\n" +" if not hasattr(type(obj), '__getattr__'):\n" +" raise\n" +" return type(obj).__getattr__(obj, name) # __getattr__" +msgstr "" + +#: ../../howto/descriptor.rst:776 +msgid "Invocation from a class" +msgstr "" + +#: ../../howto/descriptor.rst:778 +msgid "" +"The logic for a dotted lookup such as ``A.x`` is in :meth:`!" +"type.__getattribute__`. The steps are similar to those for :meth:`!" +"object.__getattribute__` but the instance dictionary lookup is replaced by a " +"search through the class's :term:`method resolution order`." +msgstr "" + +#: ../../howto/descriptor.rst:783 +msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``." +msgstr "" + +#: ../../howto/descriptor.rst:785 +msgid "" +"The full C implementation can be found in :c:func:`!type_getattro` " +"and :c:func:`!_PyType_Lookup` in :source:`Objects/typeobject.c`." +msgstr "" + +#: ../../howto/descriptor.rst:790 +msgid "Invocation from super" +msgstr "" + +#: ../../howto/descriptor.rst:792 +msgid "" +"The logic for super's dotted lookup is in " +"the :meth:`~object.__getattribute__` method for object returned " +"by :func:`super`." +msgstr "" + +#: ../../howto/descriptor.rst:795 +msgid "" +"A dotted lookup such as ``super(A, obj).m`` searches " +"``obj.__class__.__mro__`` for the base class ``B`` immediately following " +"``A`` and then returns ``B.__dict__['m'].__get__(obj, A)``. If not a " +"descriptor, ``m`` is returned unchanged." +msgstr "" + +#: ../../howto/descriptor.rst:800 +msgid "" +"The full C implementation can be found in :c:func:`!super_getattro` " +"in :source:`Objects/typeobject.c`. A pure Python equivalent can be found in " +"`Guido's Tutorial `_." +msgstr "" + +#: ../../howto/descriptor.rst:807 +msgid "Summary of invocation logic" +msgstr "" + +#: ../../howto/descriptor.rst:809 +msgid "" +"The mechanism for descriptors is embedded in " +"the :meth:`~object.__getattribute__` methods " +"for :class:`object`, :class:`type`, and :func:`super`." +msgstr "" + +#: ../../howto/descriptor.rst:812 +msgid "The important points to remember are:" +msgstr "" + +#: ../../howto/descriptor.rst:814 +msgid "Descriptors are invoked by the :meth:`~object.__getattribute__` method." +msgstr "" + +#: ../../howto/descriptor.rst:816 +msgid "" +"Classes inherit this machinery from :class:`object`, :class:`type`, " +"or :func:`super`." +msgstr "" + +#: ../../howto/descriptor.rst:819 +msgid "" +"Overriding :meth:`~object.__getattribute__` prevents automatic descriptor " +"calls because all the descriptor logic is in that method." +msgstr "" + +#: ../../howto/descriptor.rst:822 +msgid "" +":meth:`!object.__getattribute__` and :meth:`!type.__getattribute__` make " +"different calls to :meth:`~object.__get__`. The first includes the instance " +"and may include the class. The second puts in ``None`` for the instance and " +"always includes the class." +msgstr "" + +#: ../../howto/descriptor.rst:827 +msgid "Data descriptors always override instance dictionaries." +msgstr "" + +#: ../../howto/descriptor.rst:829 +msgid "Non-data descriptors may be overridden by instance dictionaries." +msgstr "" + +#: ../../howto/descriptor.rst:833 +msgid "Automatic name notification" +msgstr "" + +#: ../../howto/descriptor.rst:835 +msgid "" +"Sometimes it is desirable for a descriptor to know what class variable name " +"it was assigned to. When a new class is created, the :class:`type` " +"metaclass scans the dictionary of the new class. If any of the entries are " +"descriptors and if they define :meth:`~object.__set_name__`, that method is " +"called with two arguments. The *owner* is the class where the descriptor is " +"used, and the *name* is the class variable the descriptor was assigned to." +msgstr "" + +#: ../../howto/descriptor.rst:842 +msgid "" +"The implementation details are in :c:func:`!type_new` and :c:func:`!" +"set_names` in :source:`Objects/typeobject.c`." +msgstr "" + +#: ../../howto/descriptor.rst:845 +msgid "" +"Since the update logic is in :meth:`!type.__new__`, notifications only take " +"place at the time of class creation. If descriptors are added to the class " +"afterwards, :meth:`~object.__set_name__` will need to be called manually." +msgstr "" + +#: ../../howto/descriptor.rst:851 +msgid "ORM example" +msgstr "" + +#: ../../howto/descriptor.rst:853 +msgid "" +"The following code is a simplified skeleton showing how data descriptors " +"could be used to implement an `object relational mapping `_." +msgstr "" + +#: ../../howto/descriptor.rst:857 +msgid "" +"The essential idea is that the data is stored in an external database. The " +"Python instances only hold keys to the database's tables. Descriptors take " +"care of lookups or updates:" +msgstr "" + +#: ../../howto/descriptor.rst:861 +msgid "" +"class Field:\n" +"\n" +" def __set_name__(self, owner, name):\n" +" self.fetch = f'SELECT {name} FROM {owner.table} WHERE {owner.key}" +"=?;'\n" +" self.store = f'UPDATE {owner.table} SET {name}=? WHERE {owner.key}" +"=?;'\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" return conn.execute(self.fetch, [obj.key]).fetchone()[0]\n" +"\n" +" def __set__(self, obj, value):\n" +" conn.execute(self.store, [value, obj.key])\n" +" conn.commit()" +msgstr "" + +#: ../../howto/descriptor.rst:876 +msgid "" +"We can use the :class:`!Field` class to define `models `_ that describe the schema for each " +"table in a database:" +msgstr "" + +#: ../../howto/descriptor.rst:880 +msgid "" +"class Movie:\n" +" table = 'Movies' # Table name\n" +" key = 'title' # Primary key\n" +" director = Field()\n" +" year = Field()\n" +"\n" +" def __init__(self, key):\n" +" self.key = key\n" +"\n" +"class Song:\n" +" table = 'Music'\n" +" key = 'title'\n" +" artist = Field()\n" +" year = Field()\n" +" genre = Field()\n" +"\n" +" def __init__(self, key):\n" +" self.key = key" +msgstr "" + +#: ../../howto/descriptor.rst:901 +msgid "To use the models, first connect to the database::" +msgstr "" + +#: ../../howto/descriptor.rst:903 +msgid "" +">>> import sqlite3\n" +">>> conn = sqlite3.connect('entertainment.db')" +msgstr "" + +#: ../../howto/descriptor.rst:906 +msgid "" +"An interactive session shows how data is retrieved from the database and how " +"it can be updated:" +msgstr "" + +#: ../../howto/descriptor.rst:934 +msgid "" +">>> Movie('Star Wars').director\n" +"'George Lucas'\n" +">>> jaws = Movie('Jaws')\n" +">>> f'Released in {jaws.year} by {jaws.director}'\n" +"'Released in 1975 by Steven Spielberg'\n" +"\n" +">>> Song('Country Roads').artist\n" +"'John Denver'\n" +"\n" +">>> Movie('Star Wars').director = 'J.J. Abrams'\n" +">>> Movie('Star Wars').director\n" +"'J.J. Abrams'" +msgstr "" + +#: ../../howto/descriptor.rst:955 +msgid "Pure Python Equivalents" +msgstr "" + +#: ../../howto/descriptor.rst:957 +msgid "" +"The descriptor protocol is simple and offers exciting possibilities. " +"Several use cases are so common that they have been prepackaged into built-" +"in tools. Properties, bound methods, static methods, class methods, and " +"\\_\\_slots\\_\\_ are all based on the descriptor protocol." +msgstr "" + +#: ../../howto/descriptor.rst:964 +msgid "Properties" +msgstr "" + +#: ../../howto/descriptor.rst:966 +msgid "" +"Calling :func:`property` is a succinct way of building a data descriptor " +"that triggers a function call upon access to an attribute. Its signature " +"is::" +msgstr "" + +#: ../../howto/descriptor.rst:969 +msgid "property(fget=None, fset=None, fdel=None, doc=None) -> property" +msgstr "" + +#: ../../howto/descriptor.rst:971 +msgid "" +"The documentation shows a typical use to define a managed attribute ``x``:" +msgstr "" + +#: ../../howto/descriptor.rst:973 +msgid "" +"class C:\n" +" def getx(self): return self.__x\n" +" def setx(self, value): self.__x = value\n" +" def delx(self): del self.__x\n" +" x = property(getx, setx, delx, \"I'm the 'x' property.\")" +msgstr "" + +#: ../../howto/descriptor.rst:995 +msgid "" +"To see how :func:`property` is implemented in terms of the descriptor " +"protocol, here is a pure Python equivalent that implements most of the core " +"functionality:" +msgstr "" + +#: ../../howto/descriptor.rst:998 +msgid "" +"class Property:\n" +" \"Emulate PyProperty_Type() in Objects/descrobject.c\"\n" +"\n" +" def __init__(self, fget=None, fset=None, fdel=None, doc=None):\n" +" self.fget = fget\n" +" self.fset = fset\n" +" self.fdel = fdel\n" +" if doc is None and fget is not None:\n" +" doc = fget.__doc__\n" +" self.__doc__ = doc\n" +"\n" +" def __set_name__(self, owner, name):\n" +" self.__name__ = name\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" if obj is None:\n" +" return self\n" +" if self.fget is None:\n" +" raise AttributeError\n" +" return self.fget(obj)\n" +"\n" +" def __set__(self, obj, value):\n" +" if self.fset is None:\n" +" raise AttributeError\n" +" self.fset(obj, value)\n" +"\n" +" def __delete__(self, obj):\n" +" if self.fdel is None:\n" +" raise AttributeError\n" +" self.fdel(obj)\n" +"\n" +" def getter(self, fget):\n" +" return type(self)(fget, self.fset, self.fdel, self.__doc__)\n" +"\n" +" def setter(self, fset):\n" +" return type(self)(self.fget, fset, self.fdel, self.__doc__)\n" +"\n" +" def deleter(self, fdel):\n" +" return type(self)(self.fget, self.fset, fdel, self.__doc__)" +msgstr "" + +#: ../../howto/descriptor.rst:1122 +msgid "" +"The :func:`property` builtin helps whenever a user interface has granted " +"attribute access and then subsequent changes require the intervention of a " +"method." +msgstr "" + +#: ../../howto/descriptor.rst:1126 +msgid "" +"For instance, a spreadsheet class may grant access to a cell value through " +"``Cell('b10').value``. Subsequent improvements to the program require the " +"cell to be recalculated on every access; however, the programmer does not " +"want to affect existing client code accessing the attribute directly. The " +"solution is to wrap access to the value attribute in a property data " +"descriptor:" +msgstr "" + +#: ../../howto/descriptor.rst:1132 +msgid "" +"class Cell:\n" +" ...\n" +"\n" +" @property\n" +" def value(self):\n" +" \"Recalculate the cell before returning value\"\n" +" self.recalc()\n" +" return self._value" +msgstr "" + +#: ../../howto/descriptor.rst:1143 +msgid "" +"Either the built-in :func:`property` or our :func:`!Property` equivalent " +"would work in this example." +msgstr "" + +#: ../../howto/descriptor.rst:1148 +msgid "Functions and methods" +msgstr "" + +#: ../../howto/descriptor.rst:1150 +msgid "" +"Python's object oriented features are built upon a function based " +"environment. Using non-data descriptors, the two are merged seamlessly." +msgstr "" + +#: ../../howto/descriptor.rst:1153 +msgid "" +"Functions stored in class dictionaries get turned into methods when invoked. " +"Methods only differ from regular functions in that the object instance is " +"prepended to the other arguments. By convention, the instance is called " +"*self* but could be called *this* or any other variable name." +msgstr "" + +#: ../../howto/descriptor.rst:1158 +msgid "" +"Methods can be created manually with :class:`types.MethodType` which is " +"roughly equivalent to:" +msgstr "" + +#: ../../howto/descriptor.rst:1161 +msgid "" +"class MethodType:\n" +" \"Emulate PyMethod_Type in Objects/classobject.c\"\n" +"\n" +" def __init__(self, func, obj):\n" +" self.__func__ = func\n" +" self.__self__ = obj\n" +"\n" +" def __call__(self, *args, **kwargs):\n" +" func = self.__func__\n" +" obj = self.__self__\n" +" return func(obj, *args, **kwargs)\n" +"\n" +" def __getattribute__(self, name):\n" +" \"Emulate method_getset() in Objects/classobject.c\"\n" +" if name == '__doc__':\n" +" return self.__func__.__doc__\n" +" return object.__getattribute__(self, name)\n" +"\n" +" def __getattr__(self, name):\n" +" \"Emulate method_getattro() in Objects/classobject.c\"\n" +" return getattr(self.__func__, name)\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" \"Emulate method_descr_get() in Objects/classobject.c\"\n" +" return self" +msgstr "" + +#: ../../howto/descriptor.rst:1189 +msgid "" +"To support automatic creation of methods, functions include " +"the :meth:`~object.__get__` method for binding methods during attribute " +"access. This means that functions are non-data descriptors that return " +"bound methods during dotted lookup from an instance. Here's how it works:" +msgstr "" + +#: ../../howto/descriptor.rst:1194 +msgid "" +"class Function:\n" +" ...\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" \"Simulate func_descr_get() in Objects/funcobject.c\"\n" +" if obj is None:\n" +" return self\n" +" return MethodType(self, obj)" +msgstr "" + +#: ../../howto/descriptor.rst:1205 +msgid "" +"Running the following class in the interpreter shows how the function " +"descriptor works in practice:" +msgstr "" + +#: ../../howto/descriptor.rst:1208 +msgid "" +"class D:\n" +" def f(self):\n" +" return self\n" +"\n" +"class D2:\n" +" pass" +msgstr "" + +#: ../../howto/descriptor.rst:1226 +msgid "" +"The function has a :term:`qualified name` attribute to support introspection:" +msgstr "" + +#: ../../howto/descriptor.rst:1228 +msgid "" +">>> D.f.__qualname__\n" +"'D.f'" +msgstr "" + +#: ../../howto/descriptor.rst:1233 +msgid "" +"Accessing the function through the class dictionary does not " +"invoke :meth:`~object.__get__`. Instead, it just returns the underlying " +"function object::" +msgstr "" + +#: ../../howto/descriptor.rst:1236 +msgid "" +">>> D.__dict__['f']\n" +"" +msgstr "" + +#: ../../howto/descriptor.rst:1239 +msgid "" +"Dotted access from a class calls :meth:`~object.__get__` which just returns " +"the underlying function unchanged::" +msgstr "" + +#: ../../howto/descriptor.rst:1242 +msgid "" +">>> D.f\n" +"" +msgstr "" + +#: ../../howto/descriptor.rst:1245 +msgid "" +"The interesting behavior occurs during dotted access from an instance. The " +"dotted lookup calls :meth:`~object.__get__` which returns a bound method " +"object::" +msgstr "" + +#: ../../howto/descriptor.rst:1248 +msgid "" +">>> d = D()\n" +">>> d.f\n" +">" +msgstr "" + +#: ../../howto/descriptor.rst:1252 +msgid "" +"Internally, the bound method stores the underlying function and the bound " +"instance::" +msgstr "" + +#: ../../howto/descriptor.rst:1255 +msgid "" +">>> d.f.__func__\n" +"\n" +"\n" +">>> d.f.__self__\n" +"<__main__.D object at 0x00B18C90>" +msgstr "" + +#: ../../howto/descriptor.rst:1261 +msgid "" +"If you have ever wondered where *self* comes from in regular methods or " +"where *cls* comes from in class methods, this is it!" +msgstr "" + +#: ../../howto/descriptor.rst:1266 +msgid "Kinds of methods" +msgstr "" + +#: ../../howto/descriptor.rst:1268 +msgid "" +"Non-data descriptors provide a simple mechanism for variations on the usual " +"patterns of binding functions into methods." +msgstr "" + +#: ../../howto/descriptor.rst:1271 +msgid "" +"To recap, functions have a :meth:`~object.__get__` method so that they can " +"be converted to a method when accessed as attributes. The non-data " +"descriptor transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. " +"Calling ``cls.f(*args)`` becomes ``f(*args)``." +msgstr "" + +#: ../../howto/descriptor.rst:1276 +msgid "This chart summarizes the binding and its two most useful variants:" +msgstr "" + +#: ../../howto/descriptor.rst:1279 +msgid "Transformation" +msgstr "" + +#: ../../howto/descriptor.rst:1279 +msgid "Called from an object" +msgstr "" + +#: ../../howto/descriptor.rst:1279 +msgid "Called from a class" +msgstr "" + +#: ../../howto/descriptor.rst:1282 +msgid "function" +msgstr "" + +#: ../../howto/descriptor.rst:1282 +msgid "f(obj, \\*args)" +msgstr "" + +#: ../../howto/descriptor.rst:1282 ../../howto/descriptor.rst:1284 +msgid "f(\\*args)" +msgstr "" + +#: ../../howto/descriptor.rst:1284 +msgid "staticmethod" +msgstr "" + +#: ../../howto/descriptor.rst:1286 +msgid "classmethod" +msgstr "" + +#: ../../howto/descriptor.rst:1286 +msgid "f(type(obj), \\*args)" +msgstr "" + +#: ../../howto/descriptor.rst:1286 +msgid "f(cls, \\*args)" +msgstr "" + +#: ../../howto/descriptor.rst:1291 +msgid "Static methods" +msgstr "" + +#: ../../howto/descriptor.rst:1293 +msgid "" +"Static methods return the underlying function without changes. Calling " +"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into " +"``object.__getattribute__(c, \"f\")`` or ``object.__getattribute__(C, " +"\"f\")``. As a result, the function becomes identically accessible from " +"either an object or a class." +msgstr "" + +#: ../../howto/descriptor.rst:1299 +msgid "" +"Good candidates for static methods are methods that do not reference the " +"``self`` variable." +msgstr "" + +#: ../../howto/descriptor.rst:1302 +msgid "" +"For instance, a statistics package may include a container class for " +"experimental data. The class provides normal methods for computing the " +"average, mean, median, and other descriptive statistics that depend on the " +"data. However, there may be useful functions which are conceptually related " +"but do not depend on the data. For instance, ``erf(x)`` is handy conversion " +"routine that comes up in statistical work but does not directly depend on a " +"particular dataset. It can be called either from an object or the class: " +"``s.erf(1.5) --> 0.9332`` or ``Sample.erf(1.5) --> 0.9332``." +msgstr "" + +#: ../../howto/descriptor.rst:1311 +msgid "" +"Since static methods return the underlying function with no changes, the " +"example calls are unexciting:" +msgstr "" + +#: ../../howto/descriptor.rst:1314 +msgid "" +"class E:\n" +" @staticmethod\n" +" def f(x):\n" +" return x * 10" +msgstr "" + +#: ../../howto/descriptor.rst:1321 +msgid "" +">>> E.f(3)\n" +"30\n" +">>> E().f(3)\n" +"30" +msgstr "" + +#: ../../howto/descriptor.rst:1328 +msgid "" +"Using the non-data descriptor protocol, a pure Python version " +"of :func:`staticmethod` would look like this:" +msgstr "" + +#: ../../howto/descriptor.rst:1331 +msgid "" +"import functools\n" +"\n" +"class StaticMethod:\n" +" \"Emulate PyStaticMethod_Type() in Objects/funcobject.c\"\n" +"\n" +" def __init__(self, f):\n" +" self.f = f\n" +" functools.update_wrapper(self, f)\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" return self.f\n" +"\n" +" def __call__(self, *args, **kwds):\n" +" return self.f(*args, **kwds)\n" +"\n" +" @property\n" +" def __annotations__(self):\n" +" return self.f.__annotations__" +msgstr "" + +#: ../../howto/descriptor.rst:1352 +msgid "" +"The :func:`functools.update_wrapper` call adds a ``__wrapped__`` attribute " +"that refers to the underlying function. Also it carries forward the " +"attributes necessary to make the wrapper look like the wrapped function, " +"including :attr:`~function.__name__`, :attr:`~function.__qualname__`, " +"and :attr:`~function.__doc__`." +msgstr "" + +#: ../../howto/descriptor.rst:1421 +msgid "Class methods" +msgstr "" + +#: ../../howto/descriptor.rst:1423 +msgid "" +"Unlike static methods, class methods prepend the class reference to the " +"argument list before calling the function. This format is the same for " +"whether the caller is an object or a class:" +msgstr "" + +#: ../../howto/descriptor.rst:1427 +msgid "" +"class F:\n" +" @classmethod\n" +" def f(cls, x):\n" +" return cls.__name__, x" +msgstr "" + +#: ../../howto/descriptor.rst:1434 +msgid "" +">>> F.f(3)\n" +"('F', 3)\n" +">>> F().f(3)\n" +"('F', 3)" +msgstr "" + +#: ../../howto/descriptor.rst:1441 +msgid "" +"This behavior is useful whenever the method only needs to have a class " +"reference and does not rely on data stored in a specific instance. One use " +"for class methods is to create alternate class constructors. For example, " +"the classmethod :func:`dict.fromkeys` creates a new dictionary from a list " +"of keys. The pure Python equivalent is:" +msgstr "" + +#: ../../howto/descriptor.rst:1447 +msgid "" +"class Dict(dict):\n" +" @classmethod\n" +" def fromkeys(cls, iterable, value=None):\n" +" \"Emulate dict_fromkeys() in Objects/dictobject.c\"\n" +" d = cls()\n" +" for key in iterable:\n" +" d[key] = value\n" +" return d" +msgstr "" + +#: ../../howto/descriptor.rst:1458 +msgid "Now a new dictionary of unique keys can be constructed like this:" +msgstr "" + +#: ../../howto/descriptor.rst:1460 +msgid "" +">>> d = Dict.fromkeys('abracadabra')\n" +">>> type(d) is Dict\n" +"True\n" +">>> d\n" +"{'a': None, 'b': None, 'r': None, 'c': None, 'd': None}" +msgstr "" + +#: ../../howto/descriptor.rst:1468 +msgid "" +"Using the non-data descriptor protocol, a pure Python version " +"of :func:`classmethod` would look like this:" +msgstr "" + +#: ../../howto/descriptor.rst:1471 +msgid "" +"import functools\n" +"\n" +"class ClassMethod:\n" +" \"Emulate PyClassMethod_Type() in Objects/funcobject.c\"\n" +"\n" +" def __init__(self, f):\n" +" self.f = f\n" +" functools.update_wrapper(self, f)\n" +"\n" +" def __get__(self, obj, cls=None):\n" +" if cls is None:\n" +" cls = type(obj)\n" +" return MethodType(self.f, cls)" +msgstr "" + +#: ../../howto/descriptor.rst:1533 +msgid "" +"The :func:`functools.update_wrapper` call in ``ClassMethod`` adds a " +"``__wrapped__`` attribute that refers to the underlying function. Also it " +"carries forward the attributes necessary to make the wrapper look like the " +"wrapped " +"function: :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__`, " +"and :attr:`~function.__annotations__`." +msgstr "" + +#: ../../howto/descriptor.rst:1542 +msgid "Member objects and __slots__" +msgstr "" + +#: ../../howto/descriptor.rst:1544 +msgid "" +"When a class defines ``__slots__``, it replaces instance dictionaries with a " +"fixed-length array of slot values. From a user point of view that has " +"several effects:" +msgstr "" + +#: ../../howto/descriptor.rst:1548 +msgid "" +"1. Provides immediate detection of bugs due to misspelled attribute " +"assignments. Only attribute names specified in ``__slots__`` are allowed:" +msgstr "" + +#: ../../howto/descriptor.rst:1551 +msgid "" +"class Vehicle:\n" +" __slots__ = ('id_number', 'make', 'model')" +msgstr "" + +#: ../../howto/descriptor.rst:1556 +msgid "" +">>> auto = Vehicle()\n" +">>> auto.id_nubmer = 'VYE483814LQEX'\n" +"Traceback (most recent call last):\n" +" ...\n" +"AttributeError: 'Vehicle' object has no attribute 'id_nubmer'" +msgstr "" + +#: ../../howto/descriptor.rst:1564 +msgid "" +"2. Helps create immutable objects where descriptors manage access to private " +"attributes stored in ``__slots__``:" +msgstr "" + +#: ../../howto/descriptor.rst:1567 +msgid "" +"class Immutable:\n" +"\n" +" __slots__ = ('_dept', '_name') # Replace the instance " +"dictionary\n" +"\n" +" def __init__(self, dept, name):\n" +" self._dept = dept # Store to private attribute\n" +" self._name = name # Store to private attribute\n" +"\n" +" @property # Read-only descriptor\n" +" def dept(self):\n" +" return self._dept\n" +"\n" +" @property\n" +" def name(self): # Read-only descriptor\n" +" return self._name" +msgstr "" + +#: ../../howto/descriptor.rst:1585 +msgid "" +">>> mark = Immutable('Botany', 'Mark Watney')\n" +">>> mark.dept\n" +"'Botany'\n" +">>> mark.dept = 'Space Pirate'\n" +"Traceback (most recent call last):\n" +" ...\n" +"AttributeError: property 'dept' of 'Immutable' object has no setter\n" +">>> mark.location = 'Mars'\n" +"Traceback (most recent call last):\n" +" ...\n" +"AttributeError: 'Immutable' object has no attribute 'location'" +msgstr "" + +#: ../../howto/descriptor.rst:1599 +msgid "" +"3. Saves memory. On a 64-bit Linux build, an instance with two attributes " +"takes 48 bytes with ``__slots__`` and 152 bytes without. This `flyweight " +"design pattern `_ likely " +"only matters when a large number of instances are going to be created." +msgstr "" + +#: ../../howto/descriptor.rst:1604 +msgid "" +"4. Improves speed. Reading instance variables is 35% faster with " +"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)." +msgstr "" + +#: ../../howto/descriptor.rst:1607 +msgid "" +"5. Blocks tools like :func:`functools.cached_property` which require an " +"instance dictionary to function correctly:" +msgstr "" + +#: ../../howto/descriptor.rst:1610 +msgid "" +"from functools import cached_property\n" +"\n" +"class CP:\n" +" __slots__ = () # Eliminates the instance dict\n" +"\n" +" @cached_property # Requires an instance dict\n" +" def pi(self):\n" +" return 4 * sum((-1.0)**n / (2.0*n + 1.0)\n" +" for n in reversed(range(100_000)))" +msgstr "" + +#: ../../howto/descriptor.rst:1622 +msgid "" +">>> CP().pi\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: No '__dict__' attribute on 'CP' instance to cache 'pi' property." +msgstr "" + +#: ../../howto/descriptor.rst:1629 +msgid "" +"It is not possible to create an exact drop-in pure Python version of " +"``__slots__`` because it requires direct access to C structures and control " +"over object memory allocation. However, we can build a mostly faithful " +"simulation where the actual C structure for slots is emulated by a private " +"``_slotvalues`` list. Reads and writes to that private structure are " +"managed by member descriptors:" +msgstr "" + +#: ../../howto/descriptor.rst:1636 +msgid "" +"null = object()\n" +"\n" +"class Member:\n" +"\n" +" def __init__(self, name, clsname, offset):\n" +" 'Emulate PyMemberDef in Include/structmember.h'\n" +" # Also see descr_new() in Objects/descrobject.c\n" +" self.name = name\n" +" self.clsname = clsname\n" +" self.offset = offset\n" +"\n" +" def __get__(self, obj, objtype=None):\n" +" 'Emulate member_get() in Objects/descrobject.c'\n" +" # Also see PyMember_GetOne() in Python/structmember.c\n" +" if obj is None:\n" +" return self\n" +" value = obj._slotvalues[self.offset]\n" +" if value is null:\n" +" raise AttributeError(self.name)\n" +" return value\n" +"\n" +" def __set__(self, obj, value):\n" +" 'Emulate member_set() in Objects/descrobject.c'\n" +" obj._slotvalues[self.offset] = value\n" +"\n" +" def __delete__(self, obj):\n" +" 'Emulate member_delete() in Objects/descrobject.c'\n" +" value = obj._slotvalues[self.offset]\n" +" if value is null:\n" +" raise AttributeError(self.name)\n" +" obj._slotvalues[self.offset] = null\n" +"\n" +" def __repr__(self):\n" +" 'Emulate member_repr() in Objects/descrobject.c'\n" +" return f''" +msgstr "" + +#: ../../howto/descriptor.rst:1674 +msgid "" +"The :meth:`!type.__new__` method takes care of adding member objects to " +"class variables:" +msgstr "" + +#: ../../howto/descriptor.rst:1677 +msgid "" +"class Type(type):\n" +" 'Simulate how the type metaclass adds member objects for slots'\n" +"\n" +" def __new__(mcls, clsname, bases, mapping, **kwargs):\n" +" 'Emulate type_new() in Objects/typeobject.c'\n" +" # type_new() calls PyTypeReady() which calls add_methods()\n" +" slot_names = mapping.get('slot_names', [])\n" +" for offset, name in enumerate(slot_names):\n" +" mapping[name] = Member(name, clsname, offset)\n" +" return type.__new__(mcls, clsname, bases, mapping, **kwargs)" +msgstr "" + +#: ../../howto/descriptor.rst:1690 +msgid "" +"The :meth:`object.__new__` method takes care of creating instances that have " +"slots instead of an instance dictionary. Here is a rough simulation in pure " +"Python:" +msgstr "" + +#: ../../howto/descriptor.rst:1694 +msgid "" +"class Object:\n" +" 'Simulate how object.__new__() allocates memory for __slots__'\n" +"\n" +" def __new__(cls, *args, **kwargs):\n" +" 'Emulate object_new() in Objects/typeobject.c'\n" +" inst = super().__new__(cls)\n" +" if hasattr(cls, 'slot_names'):\n" +" empty_slots = [null] * len(cls.slot_names)\n" +" object.__setattr__(inst, '_slotvalues', empty_slots)\n" +" return inst\n" +"\n" +" def __setattr__(self, name, value):\n" +" 'Emulate _PyObject_GenericSetAttrWithDict() Objects/object.c'\n" +" cls = type(self)\n" +" if hasattr(cls, 'slot_names') and name not in cls.slot_names:\n" +" raise AttributeError(\n" +" f'{cls.__name__!r} object has no attribute {name!r}'\n" +" )\n" +" super().__setattr__(name, value)\n" +"\n" +" def __delattr__(self, name):\n" +" 'Emulate _PyObject_GenericSetAttrWithDict() Objects/object.c'\n" +" cls = type(self)\n" +" if hasattr(cls, 'slot_names') and name not in cls.slot_names:\n" +" raise AttributeError(\n" +" f'{cls.__name__!r} object has no attribute {name!r}'\n" +" )\n" +" super().__delattr__(name)" +msgstr "" + +#: ../../howto/descriptor.rst:1725 +msgid "" +"To use the simulation in a real class, just inherit from :class:`!Object` " +"and set the :term:`metaclass` to :class:`Type`:" +msgstr "" + +#: ../../howto/descriptor.rst:1728 +msgid "" +"class H(Object, metaclass=Type):\n" +" 'Instance variables stored in slots'\n" +"\n" +" slot_names = ['x', 'y']\n" +"\n" +" def __init__(self, x, y):\n" +" self.x = x\n" +" self.y = y" +msgstr "" + +#: ../../howto/descriptor.rst:1739 +msgid "" +"At this point, the metaclass has loaded member objects for *x* and *y*::" +msgstr "" + +#: ../../howto/descriptor.rst:1741 +msgid "" +">>> from pprint import pp\n" +">>> pp(dict(vars(H)))\n" +"{'__module__': '__main__',\n" +" '__doc__': 'Instance variables stored in slots',\n" +" 'slot_names': ['x', 'y'],\n" +" '__init__': ,\n" +" 'x': ,\n" +" 'y': }" +msgstr "" + +#: ../../howto/descriptor.rst:1760 +msgid "" +"When instances are created, they have a ``slot_values`` list where the " +"attributes are stored:" +msgstr "" + +#: ../../howto/descriptor.rst:1763 +msgid "" +">>> h = H(10, 20)\n" +">>> vars(h)\n" +"{'_slotvalues': [10, 20]}\n" +">>> h.x = 55\n" +">>> vars(h)\n" +"{'_slotvalues': [55, 20]}" +msgstr "" + +#: ../../howto/descriptor.rst:1772 +msgid "Misspelled or unassigned attributes will raise an exception:" +msgstr "" + +#: ../../howto/descriptor.rst:1774 +msgid "" +">>> h.xz\n" +"Traceback (most recent call last):\n" +" ...\n" +"AttributeError: 'H' object has no attribute 'xz'" +msgstr "" diff --git a/howto/enum.po b/howto/enum.po new file mode 100644 index 0000000..1b4ecaa --- /dev/null +++ b/howto/enum.po @@ -0,0 +1,2334 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/enum.rst:5 +msgid "Enum HOWTO" +msgstr "" + +#: ../../howto/enum.rst:11 +msgid "" +"An :class:`Enum` is a set of symbolic names bound to unique values. They " +"are similar to global variables, but they offer a more useful :func:`repr`, " +"grouping, type-safety, and a few other features." +msgstr "" + +#: ../../howto/enum.rst:15 +msgid "" +"They are most useful when you have a variable that can take one of a limited " +"selection of values. For example, the days of the week::" +msgstr "" + +#: ../../howto/enum.rst:18 +msgid "" +">>> from enum import Enum\n" +">>> class Weekday(Enum):\n" +"... MONDAY = 1\n" +"... TUESDAY = 2\n" +"... WEDNESDAY = 3\n" +"... THURSDAY = 4\n" +"... FRIDAY = 5\n" +"... SATURDAY = 6\n" +"... SUNDAY = 7" +msgstr "" + +#: ../../howto/enum.rst:28 +msgid "Or perhaps the RGB primary colors::" +msgstr "" + +#: ../../howto/enum.rst:30 +msgid "" +">>> from enum import Enum\n" +">>> class Color(Enum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 3" +msgstr "" + +#: ../../howto/enum.rst:36 +msgid "" +"As you can see, creating an :class:`Enum` is as simple as writing a class " +"that inherits from :class:`Enum` itself." +msgstr "" + +#: ../../howto/enum.rst:39 +msgid "Case of Enum Members" +msgstr "" + +#: ../../howto/enum.rst:41 +msgid "" +"Because Enums are used to represent constants, and to help avoid issues with " +"name clashes between mixin-class methods/attributes and enum names, we " +"strongly recommend using UPPER_CASE names for members, and will be using " +"that style in our examples." +msgstr "" + +#: ../../howto/enum.rst:46 +msgid "" +"Depending on the nature of the enum a member's value may or may not be " +"important, but either way that value can be used to get the corresponding " +"member::" +msgstr "" + +#: ../../howto/enum.rst:50 +msgid "" +">>> Weekday(3)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:53 +msgid "" +"As you can see, the ``repr()`` of a member shows the enum name, the member " +"name, and the value. The ``str()`` of a member shows only the enum name and " +"member name::" +msgstr "" + +#: ../../howto/enum.rst:57 +msgid "" +">>> print(Weekday.THURSDAY)\n" +"Weekday.THURSDAY" +msgstr "" + +#: ../../howto/enum.rst:60 +msgid "The *type* of an enumeration member is the enum it belongs to::" +msgstr "" + +#: ../../howto/enum.rst:62 +msgid "" +">>> type(Weekday.MONDAY)\n" +"\n" +">>> isinstance(Weekday.FRIDAY, Weekday)\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:67 +msgid "Enum members have an attribute that contains just their :attr:`!name`::" +msgstr "" + +#: ../../howto/enum.rst:69 +msgid "" +">>> print(Weekday.TUESDAY.name)\n" +"TUESDAY" +msgstr "" + +#: ../../howto/enum.rst:72 +msgid "Likewise, they have an attribute for their :attr:`!value`::" +msgstr "" + +#: ../../howto/enum.rst:75 +msgid "" +">>> Weekday.WEDNESDAY.value\n" +"3" +msgstr "" + +#: ../../howto/enum.rst:78 +msgid "" +"Unlike many languages that treat enumerations solely as name/value pairs, " +"Python Enums can have behavior added. For example, :class:`datetime.date` " +"has two methods for returning the weekday: :meth:`~datetime.date.weekday` " +"and :meth:`~datetime.date.isoweekday`. The difference is that one of them " +"counts from 0-6 and the other from 1-7. Rather than keep track of that " +"ourselves we can add a method to the :class:`!Weekday` enum to extract the " +"day from the :class:`~datetime.date` instance and return the matching enum " +"member::" +msgstr "" + +#: ../../howto/enum.rst:87 +msgid "" +"@classmethod\n" +"def from_date(cls, date):\n" +" return cls(date.isoweekday())" +msgstr "" + +#: ../../howto/enum.rst:91 +msgid "The complete :class:`!Weekday` enum now looks like this::" +msgstr "" + +#: ../../howto/enum.rst:93 +msgid "" +">>> class Weekday(Enum):\n" +"... MONDAY = 1\n" +"... TUESDAY = 2\n" +"... WEDNESDAY = 3\n" +"... THURSDAY = 4\n" +"... FRIDAY = 5\n" +"... SATURDAY = 6\n" +"... SUNDAY = 7\n" +"... #\n" +"... @classmethod\n" +"... def from_date(cls, date):\n" +"... return cls(date.isoweekday())" +msgstr "" + +#: ../../howto/enum.rst:106 +msgid "Now we can find out what today is! Observe::" +msgstr "" + +#: ../../howto/enum.rst:108 +msgid "" +">>> from datetime import date\n" +">>> Weekday.from_date(date.today())\n" +"" +msgstr "" + +#: ../../howto/enum.rst:112 +msgid "" +"Of course, if you're reading this on some other day, you'll see that day " +"instead." +msgstr "" + +#: ../../howto/enum.rst:114 +msgid "" +"This :class:`!Weekday` enum is great if our variable only needs one day, but " +"what if we need several? Maybe we're writing a function to plot chores " +"during a week, and don't want to use a :class:`list` -- we could use a " +"different type of :class:`Enum`::" +msgstr "" + +#: ../../howto/enum.rst:119 +msgid "" +">>> from enum import Flag\n" +">>> class Weekday(Flag):\n" +"... MONDAY = 1\n" +"... TUESDAY = 2\n" +"... WEDNESDAY = 4\n" +"... THURSDAY = 8\n" +"... FRIDAY = 16\n" +"... SATURDAY = 32\n" +"... SUNDAY = 64" +msgstr "" + +#: ../../howto/enum.rst:129 +msgid "" +"We've changed two things: we're inherited from :class:`Flag`, and the values " +"are all powers of 2." +msgstr "" + +#: ../../howto/enum.rst:132 +msgid "" +"Just like the original :class:`!Weekday` enum above, we can have a single " +"selection::" +msgstr "" + +#: ../../howto/enum.rst:134 +msgid "" +">>> first_week_day = Weekday.MONDAY\n" +">>> first_week_day\n" +"" +msgstr "" + +#: ../../howto/enum.rst:138 +msgid "" +"But :class:`Flag` also allows us to combine several members into a single " +"variable::" +msgstr "" + +#: ../../howto/enum.rst:141 +msgid "" +">>> weekend = Weekday.SATURDAY | Weekday.SUNDAY\n" +">>> weekend\n" +"" +msgstr "" + +#: ../../howto/enum.rst:145 +msgid "You can even iterate over a :class:`Flag` variable::" +msgstr "" + +#: ../../howto/enum.rst:147 +msgid "" +">>> for day in weekend:\n" +"... print(day)\n" +"Weekday.SATURDAY\n" +"Weekday.SUNDAY" +msgstr "" + +#: ../../howto/enum.rst:152 +msgid "Okay, let's get some chores set up::" +msgstr "" + +#: ../../howto/enum.rst:154 +msgid "" +">>> chores_for_ethan = {\n" +"... 'feed the cat': Weekday.MONDAY | Weekday.WEDNESDAY | " +"Weekday.FRIDAY,\n" +"... 'do the dishes': Weekday.TUESDAY | Weekday.THURSDAY,\n" +"... 'answer SO questions': Weekday.SATURDAY,\n" +"... }" +msgstr "" + +#: ../../howto/enum.rst:160 +msgid "And a function to display the chores for a given day::" +msgstr "" + +#: ../../howto/enum.rst:162 +msgid "" +">>> def show_chores(chores, day):\n" +"... for chore, days in chores.items():\n" +"... if day in days:\n" +"... print(chore)\n" +"...\n" +">>> show_chores(chores_for_ethan, Weekday.SATURDAY)\n" +"answer SO questions" +msgstr "" + +#: ../../howto/enum.rst:170 +msgid "" +"In cases where the actual values of the members do not matter, you can save " +"yourself some work and use :func:`auto` for the values::" +msgstr "" + +#: ../../howto/enum.rst:173 +msgid "" +">>> from enum import auto\n" +">>> class Weekday(Flag):\n" +"... MONDAY = auto()\n" +"... TUESDAY = auto()\n" +"... WEDNESDAY = auto()\n" +"... THURSDAY = auto()\n" +"... FRIDAY = auto()\n" +"... SATURDAY = auto()\n" +"... SUNDAY = auto()\n" +"... WEEKEND = SATURDAY | SUNDAY" +msgstr "" + +#: ../../howto/enum.rst:189 +msgid "Programmatic access to enumeration members and their attributes" +msgstr "" + +#: ../../howto/enum.rst:191 +msgid "" +"Sometimes it's useful to access members in enumerations programmatically " +"(i.e. situations where ``Color.RED`` won't do because the exact color is not " +"known at program-writing time). ``Enum`` allows such access::" +msgstr "" + +#: ../../howto/enum.rst:195 +msgid "" +">>> Color(1)\n" +"\n" +">>> Color(3)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:200 +msgid "If you want to access enum members by *name*, use item access::" +msgstr "" + +#: ../../howto/enum.rst:202 +msgid "" +">>> Color['RED']\n" +"\n" +">>> Color['GREEN']\n" +"" +msgstr "" + +#: ../../howto/enum.rst:207 +msgid "" +"If you have an enum member and need its :attr:`!name` or :attr:`!value`::" +msgstr "" + +#: ../../howto/enum.rst:209 +msgid "" +">>> member = Color.RED\n" +">>> member.name\n" +"'RED'\n" +">>> member.value\n" +"1" +msgstr "" + +#: ../../howto/enum.rst:217 +msgid "Duplicating enum members and values" +msgstr "" + +#: ../../howto/enum.rst:219 +msgid "Having two enum members with the same name is invalid::" +msgstr "" + +#: ../../howto/enum.rst:221 +msgid "" +">>> class Shape(Enum):\n" +"... SQUARE = 2\n" +"... SQUARE = 3\n" +"...\n" +"Traceback (most recent call last):\n" +"...\n" +"TypeError: 'SQUARE' already defined as 2" +msgstr "" + +#: ../../howto/enum.rst:229 +msgid "" +"However, an enum member can have other names associated with it. Given two " +"entries ``A`` and ``B`` with the same value (and ``A`` defined first), ``B`` " +"is an alias for the member ``A``. By-value lookup of the value of ``A`` " +"will return the member ``A``. By-name lookup of ``A`` will return the " +"member ``A``. By-name lookup of ``B`` will also return the member ``A``::" +msgstr "" + +#: ../../howto/enum.rst:235 +msgid "" +">>> class Shape(Enum):\n" +"... SQUARE = 2\n" +"... DIAMOND = 1\n" +"... CIRCLE = 3\n" +"... ALIAS_FOR_SQUARE = 2\n" +"...\n" +">>> Shape.SQUARE\n" +"\n" +">>> Shape.ALIAS_FOR_SQUARE\n" +"\n" +">>> Shape(2)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:250 +msgid "" +"Attempting to create a member with the same name as an already defined " +"attribute (another member, a method, etc.) or attempting to create an " +"attribute with the same name as a member is not allowed." +msgstr "" + +#: ../../howto/enum.rst:256 +msgid "Ensuring unique enumeration values" +msgstr "" + +#: ../../howto/enum.rst:258 +msgid "" +"By default, enumerations allow multiple names as aliases for the same value. " +"When this behavior isn't desired, you can use the :func:`unique` decorator::" +msgstr "" + +#: ../../howto/enum.rst:261 +msgid "" +">>> from enum import Enum, unique\n" +">>> @unique\n" +"... class Mistake(Enum):\n" +"... ONE = 1\n" +"... TWO = 2\n" +"... THREE = 3\n" +"... FOUR = 3\n" +"...\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: duplicate values found in : FOUR -> THREE" +msgstr "" + +#: ../../howto/enum.rst:275 +msgid "Using automatic values" +msgstr "" + +#: ../../howto/enum.rst:277 +msgid "If the exact value is unimportant you can use :class:`auto`::" +msgstr "" + +#: ../../howto/enum.rst:279 +msgid "" +">>> from enum import Enum, auto\n" +">>> class Color(Enum):\n" +"... RED = auto()\n" +"... BLUE = auto()\n" +"... GREEN = auto()\n" +"...\n" +">>> [member.value for member in Color]\n" +"[1, 2, 3]" +msgstr "" + +#: ../../howto/enum.rst:288 +msgid "" +"The values are chosen by :func:`~Enum._generate_next_value_`, which can be " +"overridden::" +msgstr "" + +#: ../../howto/enum.rst:291 +msgid "" +">>> class AutoName(Enum):\n" +"... @staticmethod\n" +"... def _generate_next_value_(name, start, count, last_values):\n" +"... return name\n" +"...\n" +">>> class Ordinal(AutoName):\n" +"... NORTH = auto()\n" +"... SOUTH = auto()\n" +"... EAST = auto()\n" +"... WEST = auto()\n" +"...\n" +">>> [member.value for member in Ordinal]\n" +"['NORTH', 'SOUTH', 'EAST', 'WEST']" +msgstr "" + +#: ../../howto/enum.rst:307 +msgid "" +"The :meth:`~Enum._generate_next_value_` method must be defined before any " +"members." +msgstr "" + +#: ../../howto/enum.rst:310 +msgid "Iteration" +msgstr "" + +#: ../../howto/enum.rst:312 +msgid "Iterating over the members of an enum does not provide the aliases::" +msgstr "" + +#: ../../howto/enum.rst:314 +msgid "" +">>> list(Shape)\n" +"[, , ]\n" +">>> list(Weekday)\n" +"[, , , " +", , , " +"]" +msgstr "" + +#: ../../howto/enum.rst:319 +msgid "" +"Note that the aliases ``Shape.ALIAS_FOR_SQUARE`` and ``Weekday.WEEKEND`` " +"aren't shown." +msgstr "" + +#: ../../howto/enum.rst:321 +msgid "" +"The special attribute ``__members__`` is a read-only ordered mapping of " +"names to members. It includes all names defined in the enumeration, " +"including the aliases::" +msgstr "" + +#: ../../howto/enum.rst:325 +msgid "" +">>> for name, member in Shape.__members__.items():\n" +"... name, member\n" +"...\n" +"('SQUARE', )\n" +"('DIAMOND', )\n" +"('CIRCLE', )\n" +"('ALIAS_FOR_SQUARE', )" +msgstr "" + +#: ../../howto/enum.rst:333 +msgid "" +"The ``__members__`` attribute can be used for detailed programmatic access " +"to the enumeration members. For example, finding all the aliases::" +msgstr "" + +#: ../../howto/enum.rst:336 +msgid "" +">>> [name for name, member in Shape.__members__.items() if member.name != " +"name]\n" +"['ALIAS_FOR_SQUARE']" +msgstr "" + +#: ../../howto/enum.rst:341 +msgid "" +"Aliases for flags include values with multiple flags set, such as ``3``, and " +"no flags set, i.e. ``0``." +msgstr "" + +#: ../../howto/enum.rst:346 +msgid "Comparisons" +msgstr "" + +#: ../../howto/enum.rst:348 +msgid "Enumeration members are compared by identity::" +msgstr "" + +#: ../../howto/enum.rst:350 +msgid "" +">>> Color.RED is Color.RED\n" +"True\n" +">>> Color.RED is Color.BLUE\n" +"False\n" +">>> Color.RED is not Color.BLUE\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:357 +msgid "" +"Ordered comparisons between enumeration values are *not* supported. Enum " +"members are not integers (but see `IntEnum`_ below)::" +msgstr "" + +#: ../../howto/enum.rst:360 +msgid "" +">>> Color.RED < Color.BLUE\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: '<' not supported between instances of 'Color' and 'Color'" +msgstr "" + +#: ../../howto/enum.rst:365 +msgid "Equality comparisons are defined though::" +msgstr "" + +#: ../../howto/enum.rst:367 +msgid "" +">>> Color.BLUE == Color.RED\n" +"False\n" +">>> Color.BLUE != Color.RED\n" +"True\n" +">>> Color.BLUE == Color.BLUE\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:374 +msgid "" +"Comparisons against non-enumeration values will always compare not equal " +"(again, :class:`IntEnum` was explicitly designed to behave differently, see " +"below)::" +msgstr "" + +#: ../../howto/enum.rst:378 +msgid "" +">>> Color.BLUE == 2\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:383 +msgid "" +"It is possible to reload modules -- if a reloaded module contains enums, " +"they will be recreated, and the new members may not compare identical/equal " +"to the original members." +msgstr "" + +#: ../../howto/enum.rst:388 +msgid "Allowed members and attributes of enumerations" +msgstr "" + +#: ../../howto/enum.rst:390 +msgid "" +"Most of the examples above use integers for enumeration values. Using " +"integers is short and handy (and provided by default by the `Functional " +"API`_), but not strictly enforced. In the vast majority of use-cases, one " +"doesn't care what the actual value of an enumeration is. But if the value " +"*is* important, enumerations can have arbitrary values." +msgstr "" + +#: ../../howto/enum.rst:396 +msgid "" +"Enumerations are Python classes, and can have methods and special methods as " +"usual. If we have this enumeration::" +msgstr "" + +#: ../../howto/enum.rst:399 +msgid "" +">>> class Mood(Enum):\n" +"... FUNKY = 1\n" +"... HAPPY = 3\n" +"...\n" +"... def describe(self):\n" +"... # self is the member here\n" +"... return self.name, self.value\n" +"...\n" +"... def __str__(self):\n" +"... return 'my custom str! {0}'.format(self.value)\n" +"...\n" +"... @classmethod\n" +"... def favorite_mood(cls):\n" +"... # cls here is the enumeration\n" +"... return cls.HAPPY\n" +"..." +msgstr "" + +#: ../../howto/enum.rst:416 +msgid "Then::" +msgstr "" + +#: ../../howto/enum.rst:418 +msgid "" +">>> Mood.favorite_mood()\n" +"\n" +">>> Mood.HAPPY.describe()\n" +"('HAPPY', 3)\n" +">>> str(Mood.FUNKY)\n" +"'my custom str! 1'" +msgstr "" + +#: ../../howto/enum.rst:425 +msgid "" +"The rules for what is allowed are as follows: names that start and end with " +"a single underscore are reserved by enum and cannot be used; all other " +"attributes defined within an enumeration will become members of this " +"enumeration, with the exception of special methods " +"(:meth:`~object.__str__`, :meth:`~object.__add__`, etc.), descriptors " +"(methods are also descriptors), and variable names listed " +"in :attr:`~Enum._ignore_`." +msgstr "" + +#: ../../howto/enum.rst:432 +msgid "" +"Note: if your enumeration defines :meth:`~object.__new__` and/" +"or :meth:`~object.__init__`, any value(s) given to the enum member will be " +"passed into those methods. See `Planet`_ for an example." +msgstr "" + +#: ../../howto/enum.rst:438 +msgid "" +"The :meth:`~object.__new__` method, if defined, is used during creation of " +"the Enum members; it is then replaced by Enum's :meth:`~object.__new__` " +"which is used after class creation for lookup of existing members. " +"See :ref:`new-vs-init` for more details." +msgstr "" + +#: ../../howto/enum.rst:445 +msgid "Restricted Enum subclassing" +msgstr "" + +#: ../../howto/enum.rst:447 +msgid "" +"A new :class:`Enum` class must have one base enum class, up to one concrete " +"data type, and as many :class:`object`-based mixin classes as needed. The " +"order of these base classes is::" +msgstr "" + +#: ../../howto/enum.rst:451 +msgid "" +"class EnumName([mix-in, ...,] [data-type,] base-enum):\n" +" pass" +msgstr "" + +#: ../../howto/enum.rst:454 +msgid "" +"Also, subclassing an enumeration is allowed only if the enumeration does not " +"define any members. So this is forbidden::" +msgstr "" + +#: ../../howto/enum.rst:457 +msgid "" +">>> class MoreColor(Color):\n" +"... PINK = 17\n" +"...\n" +"Traceback (most recent call last):\n" +"...\n" +"TypeError: cannot extend " +msgstr "" + +#: ../../howto/enum.rst:464 +msgid "But this is allowed::" +msgstr "" + +#: ../../howto/enum.rst:466 +msgid "" +">>> class Foo(Enum):\n" +"... def some_behavior(self):\n" +"... pass\n" +"...\n" +">>> class Bar(Foo):\n" +"... HAPPY = 1\n" +"... SAD = 2\n" +"..." +msgstr "" + +#: ../../howto/enum.rst:475 +msgid "" +"Allowing subclassing of enums that define members would lead to a violation " +"of some important invariants of types and instances. On the other hand, it " +"makes sense to allow sharing some common behavior between a group of " +"enumerations. (See `OrderedEnum`_ for an example.)" +msgstr "" + +#: ../../howto/enum.rst:484 +msgid "Dataclass support" +msgstr "" + +#: ../../howto/enum.rst:486 +msgid "" +"When inheriting from a :class:`~dataclasses.dataclass`, " +"the :meth:`~Enum.__repr__` omits the inherited class' name. For example::" +msgstr "" + +#: ../../howto/enum.rst:489 +msgid "" +">>> from dataclasses import dataclass, field\n" +">>> @dataclass\n" +"... class CreatureDataMixin:\n" +"... size: str\n" +"... legs: int\n" +"... tail: bool = field(repr=False, default=True)\n" +"...\n" +">>> class Creature(CreatureDataMixin, Enum):\n" +"... BEETLE = 'small', 6\n" +"... DOG = 'medium', 4\n" +"...\n" +">>> Creature.DOG\n" +"" +msgstr "" + +#: ../../howto/enum.rst:503 +msgid "" +"Use the :func:`~dataclasses.dataclass` argument ``repr=False`` to use the " +"standard :func:`repr`." +msgstr "" + +#: ../../howto/enum.rst:506 +msgid "" +"Only the dataclass fields are shown in the value area, not the dataclass' " +"name." +msgstr "" + +#: ../../howto/enum.rst:512 +msgid "" +"Adding :func:`~dataclasses.dataclass` decorator to :class:`Enum` and its " +"subclasses is not supported. It will not raise any errors, but it will " +"produce very strange results at runtime, such as members being equal to each " +"other::" +msgstr "" + +#: ../../howto/enum.rst:517 +msgid "" +">>> @dataclass # don't do this: it does not make any sense\n" +"... class Color(Enum):\n" +"... RED = 1\n" +"... BLUE = 2\n" +"...\n" +">>> Color.RED is Color.BLUE\n" +"False\n" +">>> Color.RED == Color.BLUE # problem is here: they should not be equal\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:529 +msgid "Pickling" +msgstr "" + +#: ../../howto/enum.rst:531 +msgid "Enumerations can be pickled and unpickled::" +msgstr "" + +#: ../../howto/enum.rst:533 +msgid "" +">>> from test.test_enum import Fruit\n" +">>> from pickle import dumps, loads\n" +">>> Fruit.TOMATO is loads(dumps(Fruit.TOMATO))\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:538 +msgid "" +"The usual restrictions for pickling apply: picklable enums must be defined " +"in the top level of a module, since unpickling requires them to be " +"importable from that module." +msgstr "" + +#: ../../howto/enum.rst:544 +msgid "" +"With pickle protocol version 4 it is possible to easily pickle enums nested " +"in other classes." +msgstr "" + +#: ../../howto/enum.rst:547 +msgid "" +"It is possible to modify how enum members are pickled/unpickled by " +"defining :meth:`~object.__reduce_ex__` in the enumeration class. The " +"default method is by-value, but enums with complicated values may want to " +"use by-name::" +msgstr "" + +#: ../../howto/enum.rst:551 +msgid "" +">>> import enum\n" +">>> class MyEnum(enum.Enum):\n" +"... __reduce_ex__ = enum.pickle_by_enum_name" +msgstr "" + +#: ../../howto/enum.rst:557 +msgid "" +"Using by-name for flags is not recommended, as unnamed aliases will not " +"unpickle." +msgstr "" + +#: ../../howto/enum.rst:562 +msgid "Functional API" +msgstr "" + +#: ../../howto/enum.rst:564 +msgid "" +"The :class:`Enum` class is callable, providing the following functional API::" +msgstr "" + +#: ../../howto/enum.rst:566 +msgid "" +">>> Animal = Enum('Animal', 'ANT BEE CAT DOG')\n" +">>> Animal\n" +"\n" +">>> Animal.ANT\n" +"\n" +">>> list(Animal)\n" +"[, , , ]" +msgstr "" + +#: ../../howto/enum.rst:574 +msgid "" +"The semantics of this API resemble :class:`~collections.namedtuple`. The " +"first argument of the call to :class:`Enum` is the name of the enumeration." +msgstr "" + +#: ../../howto/enum.rst:577 +msgid "" +"The second argument is the *source* of enumeration member names. It can be " +"a whitespace-separated string of names, a sequence of names, a sequence of 2-" +"tuples with key/value pairs, or a mapping (e.g. dictionary) of names to " +"values. The last two options enable assigning arbitrary values to " +"enumerations; the others auto-assign increasing integers starting with 1 " +"(use the ``start`` parameter to specify a different starting value). A new " +"class derived from :class:`Enum` is returned. In other words, the above " +"assignment to :class:`!Animal` is equivalent to::" +msgstr "" + +#: ../../howto/enum.rst:586 +msgid "" +">>> class Animal(Enum):\n" +"... ANT = 1\n" +"... BEE = 2\n" +"... CAT = 3\n" +"... DOG = 4\n" +"..." +msgstr "" + +#: ../../howto/enum.rst:593 +msgid "" +"The reason for defaulting to ``1`` as the starting number and not ``0`` is " +"that ``0`` is ``False`` in a boolean sense, but by default enum members all " +"evaluate to ``True``." +msgstr "" + +#: ../../howto/enum.rst:597 +msgid "" +"Pickling enums created with the functional API can be tricky as frame stack " +"implementation details are used to try and figure out which module the " +"enumeration is being created in (e.g. it will fail if you use a utility " +"function in a separate module, and also may not work on IronPython or " +"Jython). The solution is to specify the module name explicitly as follows::" +msgstr "" + +#: ../../howto/enum.rst:603 +msgid ">>> Animal = Enum('Animal', 'ANT BEE CAT DOG', module=__name__)" +msgstr "" + +#: ../../howto/enum.rst:607 +msgid "" +"If ``module`` is not supplied, and Enum cannot determine what it is, the new " +"Enum members will not be unpicklable; to keep errors closer to the source, " +"pickling will be disabled." +msgstr "" + +#: ../../howto/enum.rst:611 +msgid "" +"The new pickle protocol 4 also, in some circumstances, relies " +"on :attr:`~type.__qualname__` being set to the location where pickle will be " +"able to find the class. For example, if the class was made available in " +"class SomeData in the global scope::" +msgstr "" + +#: ../../howto/enum.rst:616 +msgid "" +">>> Animal = Enum('Animal', 'ANT BEE CAT DOG', qualname='SomeData.Animal')" +msgstr "" + +#: ../../howto/enum.rst:618 +msgid "The complete signature is::" +msgstr "" + +#: ../../howto/enum.rst:620 +msgid "" +"Enum(\n" +" value='NewEnumName',\n" +" names=<...>,\n" +" *,\n" +" module='...',\n" +" qualname='...',\n" +" type=,\n" +" start=1,\n" +" )" +msgstr "" + +#: ../../howto/enum.rst:630 +msgid "*value*: What the new enum class will record as its name." +msgstr "" + +#: ../../howto/enum.rst:632 +msgid "" +"*names*: The enum members. This can be a whitespace- or comma-separated " +"string (values will start at 1 unless otherwise specified)::" +msgstr "" + +#: ../../howto/enum.rst:635 +msgid "'RED GREEN BLUE' | 'RED,GREEN,BLUE' | 'RED, GREEN, BLUE'" +msgstr "" + +#: ../../howto/enum.rst:637 +msgid "or an iterator of names::" +msgstr "" + +#: ../../howto/enum.rst:639 +msgid "['RED', 'GREEN', 'BLUE']" +msgstr "" + +#: ../../howto/enum.rst:641 +msgid "or an iterator of (name, value) pairs::" +msgstr "" + +#: ../../howto/enum.rst:643 +msgid "[('CYAN', 4), ('MAGENTA', 5), ('YELLOW', 6)]" +msgstr "" + +#: ../../howto/enum.rst:645 +msgid "or a mapping::" +msgstr "" + +#: ../../howto/enum.rst:647 +msgid "{'CHARTREUSE': 7, 'SEA_GREEN': 11, 'ROSEMARY': 42}" +msgstr "" + +#: ../../howto/enum.rst:649 +msgid "*module*: name of module where new enum class can be found." +msgstr "" + +#: ../../howto/enum.rst:651 +msgid "*qualname*: where in module new enum class can be found." +msgstr "" + +#: ../../howto/enum.rst:653 +msgid "*type*: type to mix in to new enum class." +msgstr "" + +#: ../../howto/enum.rst:655 +msgid "*start*: number to start counting at if only names are passed in." +msgstr "" + +#: ../../howto/enum.rst:657 +msgid "The *start* parameter was added." +msgstr "" + +#: ../../howto/enum.rst:662 +msgid "Derived Enumerations" +msgstr "" + +#: ../../howto/enum.rst:665 +msgid "IntEnum" +msgstr "" + +#: ../../howto/enum.rst:667 +msgid "" +"The first variation of :class:`Enum` that is provided is also a subclass " +"of :class:`int`. Members of an :class:`IntEnum` can be compared to " +"integers; by extension, integer enumerations of different types can also be " +"compared to each other::" +msgstr "" + +#: ../../howto/enum.rst:672 +msgid "" +">>> from enum import IntEnum\n" +">>> class Shape(IntEnum):\n" +"... CIRCLE = 1\n" +"... SQUARE = 2\n" +"...\n" +">>> class Request(IntEnum):\n" +"... POST = 1\n" +"... GET = 2\n" +"...\n" +">>> Shape == 1\n" +"False\n" +">>> Shape.CIRCLE == 1\n" +"True\n" +">>> Shape.CIRCLE == Request.POST\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:688 +msgid "" +"However, they still can't be compared to standard :class:`Enum` " +"enumerations::" +msgstr "" + +#: ../../howto/enum.rst:690 +msgid "" +">>> class Shape(IntEnum):\n" +"... CIRCLE = 1\n" +"... SQUARE = 2\n" +"...\n" +">>> class Color(Enum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"...\n" +">>> Shape.CIRCLE == Color.RED\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:701 +msgid "" +":class:`IntEnum` values behave like integers in other ways you'd expect::" +msgstr "" + +#: ../../howto/enum.rst:703 +msgid "" +">>> int(Shape.CIRCLE)\n" +"1\n" +">>> ['a', 'b', 'c'][Shape.CIRCLE]\n" +"'b'\n" +">>> [i for i in range(Shape.SQUARE)]\n" +"[0, 1]" +msgstr "" + +#: ../../howto/enum.rst:712 +msgid "StrEnum" +msgstr "" + +#: ../../howto/enum.rst:714 +msgid "" +"The second variation of :class:`Enum` that is provided is also a subclass " +"of :class:`str`. Members of a :class:`StrEnum` can be compared to strings; " +"by extension, string enumerations of different types can also be compared to " +"each other." +msgstr "" + +#: ../../howto/enum.rst:723 +msgid "IntFlag" +msgstr "" + +#: ../../howto/enum.rst:725 +msgid "" +"The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " +"based on :class:`int`. The difference being :class:`IntFlag` members can be " +"combined using the bitwise operators (&, \\|, ^, ~) and the result is still " +"an :class:`IntFlag` member, if possible. " +"Like :class:`IntEnum`, :class:`IntFlag` members are also integers and can be " +"used wherever an :class:`int` is used." +msgstr "" + +#: ../../howto/enum.rst:733 +msgid "" +"Any operation on an :class:`IntFlag` member besides the bit-wise operations " +"will lose the :class:`IntFlag` membership." +msgstr "" + +#: ../../howto/enum.rst:736 +msgid "" +"Bit-wise operations that result in invalid :class:`IntFlag` values will lose " +"the :class:`IntFlag` membership. See :class:`FlagBoundary` for details." +msgstr "" + +#: ../../howto/enum.rst:743 +msgid "Sample :class:`IntFlag` class::" +msgstr "" + +#: ../../howto/enum.rst:745 +msgid "" +">>> from enum import IntFlag\n" +">>> class Perm(IntFlag):\n" +"... R = 4\n" +"... W = 2\n" +"... X = 1\n" +"...\n" +">>> Perm.R | Perm.W\n" +"\n" +">>> Perm.R + Perm.W\n" +"6\n" +">>> RW = Perm.R | Perm.W\n" +">>> Perm.R in RW\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:759 +msgid "It is also possible to name the combinations::" +msgstr "" + +#: ../../howto/enum.rst:761 +msgid "" +">>> class Perm(IntFlag):\n" +"... R = 4\n" +"... W = 2\n" +"... X = 1\n" +"... RWX = 7\n" +"...\n" +">>> Perm.RWX\n" +"\n" +">>> ~Perm.RWX\n" +"\n" +">>> Perm(7)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:776 +msgid "" +"Named combinations are considered aliases. Aliases do not show up during " +"iteration, but can be returned from by-value lookups." +msgstr "" + +#: ../../howto/enum.rst:781 +msgid "" +"Another important difference between :class:`IntFlag` and :class:`Enum` is " +"that if no flags are set (the value is 0), its boolean evaluation " +"is :data:`False`::" +msgstr "" + +#: ../../howto/enum.rst:784 +msgid "" +">>> Perm.R & Perm.X\n" +"\n" +">>> bool(Perm.R & Perm.X)\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:789 +msgid "" +"Because :class:`IntFlag` members are also subclasses of :class:`int` they " +"can be combined with them (but may lose :class:`IntFlag` membership::" +msgstr "" + +#: ../../howto/enum.rst:792 +msgid "" +">>> Perm.X | 4\n" +"\n" +"\n" +">>> Perm.X + 8\n" +"9" +msgstr "" + +#: ../../howto/enum.rst:800 +msgid "" +"The negation operator, ``~``, always returns an :class:`IntFlag` member with " +"a positive value::" +msgstr "" + +#: ../../howto/enum.rst:803 +msgid "" +">>> (~Perm.X).value == (Perm.R|Perm.W).value == 6\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:806 +msgid ":class:`IntFlag` members can also be iterated over::" +msgstr "" + +#: ../../howto/enum.rst:808 +msgid "" +">>> list(RW)\n" +"[, ]" +msgstr "" + +#: ../../howto/enum.rst:815 +msgid "Flag" +msgstr "" + +#: ../../howto/enum.rst:817 +msgid "" +"The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " +"members can be combined using the bitwise operators (&, \\|, ^, ~). " +"Unlike :class:`IntFlag`, they cannot be combined with, nor compared against, " +"any other :class:`Flag` enumeration, nor :class:`int`. While it is possible " +"to specify the values directly it is recommended to use :class:`auto` as the " +"value and let :class:`Flag` select an appropriate value." +msgstr "" + +#: ../../howto/enum.rst:826 +msgid "" +"Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " +"no flags being set, the boolean evaluation is :data:`False`::" +msgstr "" + +#: ../../howto/enum.rst:829 +msgid "" +">>> from enum import Flag, auto\n" +">>> class Color(Flag):\n" +"... RED = auto()\n" +"... BLUE = auto()\n" +"... GREEN = auto()\n" +"...\n" +">>> Color.RED & Color.GREEN\n" +"\n" +">>> bool(Color.RED & Color.GREEN)\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:840 +msgid "" +"Individual flags should have values that are powers of two (1, 2, 4, " +"8, ...), while combinations of flags will not::" +msgstr "" + +#: ../../howto/enum.rst:843 +msgid "" +">>> class Color(Flag):\n" +"... RED = auto()\n" +"... BLUE = auto()\n" +"... GREEN = auto()\n" +"... WHITE = RED | BLUE | GREEN\n" +"...\n" +">>> Color.WHITE\n" +"" +msgstr "" + +#: ../../howto/enum.rst:852 +msgid "" +"Giving a name to the \"no flags set\" condition does not change its boolean " +"value::" +msgstr "" + +#: ../../howto/enum.rst:855 +msgid "" +">>> class Color(Flag):\n" +"... BLACK = 0\n" +"... RED = auto()\n" +"... BLUE = auto()\n" +"... GREEN = auto()\n" +"...\n" +">>> Color.BLACK\n" +"\n" +">>> bool(Color.BLACK)\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:866 +msgid ":class:`Flag` members can also be iterated over::" +msgstr "" + +#: ../../howto/enum.rst:868 +msgid "" +">>> purple = Color.RED | Color.BLUE\n" +">>> list(purple)\n" +"[, ]" +msgstr "" + +#: ../../howto/enum.rst:876 +msgid "" +"For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " +"recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " +"promises of an enumeration (by being comparable to integers, and thus by " +"transitivity to other unrelated enumerations). :class:`IntEnum` " +"and :class:`IntFlag` should be used only in cases where :class:`Enum` " +"and :class:`Flag` will not do; for example, when integer constants are " +"replaced with enumerations, or for interoperability with other systems." +msgstr "" + +#: ../../howto/enum.rst:886 +msgid "Others" +msgstr "" + +#: ../../howto/enum.rst:888 +msgid "" +"While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " +"simple to implement independently::" +msgstr "" + +#: ../../howto/enum.rst:891 +msgid "" +"class IntEnum(int, ReprEnum): # or Enum instead of ReprEnum\n" +" pass" +msgstr "" + +#: ../../howto/enum.rst:894 +msgid "" +"This demonstrates how similar derived enumerations can be defined; for " +"example a :class:`!FloatEnum` that mixes in :class:`float` instead " +"of :class:`int`." +msgstr "" + +#: ../../howto/enum.rst:897 +msgid "Some rules:" +msgstr "" + +#: ../../howto/enum.rst:899 +msgid "" +"When subclassing :class:`Enum`, mix-in types must appear before " +"the :class:`Enum` class itself in the sequence of bases, as in " +"the :class:`IntEnum` example above." +msgstr "" + +#: ../../howto/enum.rst:902 +msgid "" +"Mix-in types must be subclassable. For example, :class:`bool` " +"and :class:`range` are not subclassable and will throw an error during Enum " +"creation if used as the mix-in type." +msgstr "" + +#: ../../howto/enum.rst:905 +msgid "" +"While :class:`Enum` can have members of any type, once you mix in an " +"additional type, all the members must have values of that type, " +"e.g. :class:`int` above. This restriction does not apply to mix-ins which " +"only add methods and don't specify another type." +msgstr "" + +#: ../../howto/enum.rst:909 +msgid "" +"When another data type is mixed in, the :attr:`~Enum.value` attribute is " +"*not the same* as the enum member itself, although it is equivalent and will " +"compare equal." +msgstr "" + +#: ../../howto/enum.rst:912 +msgid "" +"A ``data type`` is a mixin that defines :meth:`~object.__new__`, or " +"a :class:`~dataclasses.dataclass`" +msgstr "" + +#: ../../howto/enum.rst:914 +msgid "" +"%-style formatting: ``%s`` and ``%r`` call the :class:`Enum` " +"class's :meth:`~object.__str__` and :meth:`~object.__repr__` respectively; " +"other codes (such as ``%i`` or ``%h`` for IntEnum) treat the enum member as " +"its mixed-in type." +msgstr "" + +#: ../../howto/enum.rst:917 +msgid "" +":ref:`Formatted string literals `, :meth:`str.format`, " +"and :func:`format` will use the enum's :meth:`~object.__str__` method." +msgstr "" + +#: ../../howto/enum.rst:922 +msgid "" +"Because :class:`IntEnum`, :class:`IntFlag`, and :class:`StrEnum` are " +"designed to be drop-in replacements for existing constants, " +"their :meth:`~object.__str__` method has been reset to their data " +"types' :meth:`~object.__str__` method." +msgstr "" + +#: ../../howto/enum.rst:930 +msgid "When to use :meth:`~object.__new__` vs. :meth:`~object.__init__`" +msgstr "" + +#: ../../howto/enum.rst:932 +msgid "" +":meth:`~object.__new__` must be used whenever you want to customize the " +"actual value of the :class:`Enum` member. Any other modifications may go in " +"either :meth:`~object.__new__` or :meth:`~object.__init__`, " +"with :meth:`~object.__init__` being preferred." +msgstr "" + +#: ../../howto/enum.rst:936 +msgid "" +"For example, if you want to pass several items to the constructor, but only " +"want one of them to be the value::" +msgstr "" + +#: ../../howto/enum.rst:939 +msgid "" +">>> class Coordinate(bytes, Enum):\n" +"... \"\"\"\n" +"... Coordinate with binary codes that can be indexed by the int code.\n" +"... \"\"\"\n" +"... def __new__(cls, value, label, unit):\n" +"... obj = bytes.__new__(cls, [value])\n" +"... obj._value_ = value\n" +"... obj.label = label\n" +"... obj.unit = unit\n" +"... return obj\n" +"... PX = (0, 'P.X', 'km')\n" +"... PY = (1, 'P.Y', 'km')\n" +"... VX = (2, 'V.X', 'km/s')\n" +"... VY = (3, 'V.Y', 'km/s')\n" +"...\n" +"\n" +">>> print(Coordinate['PY'])\n" +"Coordinate.PY\n" +"\n" +">>> print(Coordinate(3))\n" +"Coordinate.VY" +msgstr "" + +#: ../../howto/enum.rst:963 +msgid "" +"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " +"one that is found; instead, use the data type directly." +msgstr "" + +#: ../../howto/enum.rst:968 +msgid "Finer Points" +msgstr "" + +#: ../../howto/enum.rst:971 +msgid "Supported ``__dunder__`` names" +msgstr "" + +#: ../../howto/enum.rst:973 +msgid "" +":attr:`~enum.EnumType.__members__` is a read-only ordered mapping of " +"``member_name``:``member`` items. It is only available on the class." +msgstr "" + +#: ../../howto/enum.rst:976 +msgid "" +":meth:`~object.__new__`, if specified, must create and return the enum " +"members; it is also a very good idea to set the " +"member's :attr:`~Enum._value_` appropriately. Once all the members are " +"created it is no longer used." +msgstr "" + +#: ../../howto/enum.rst:982 +msgid "Supported ``_sunder_`` names" +msgstr "" + +#: ../../howto/enum.rst:984 +msgid ":attr:`~Enum._name_` -- name of the member" +msgstr "" + +#: ../../howto/enum.rst:985 +msgid ":attr:`~Enum._value_` -- value of the member; can be set in ``__new__``" +msgstr "" + +#: ../../howto/enum.rst:986 +msgid "" +":meth:`~Enum._missing_` -- a lookup function used when a value is not found; " +"may be overridden" +msgstr "" + +#: ../../howto/enum.rst:988 +msgid "" +":attr:`~Enum._ignore_` -- a list of names, either as a :class:`list` or " +"a :class:`str`, that will not be transformed into members, and will be " +"removed from the final class" +msgstr "" + +#: ../../howto/enum.rst:991 +msgid "" +":meth:`~Enum._generate_next_value_` -- used to get an appropriate value for " +"an enum member; may be overridden" +msgstr "" + +#: ../../howto/enum.rst:993 +msgid "" +":meth:`~EnumType._add_alias_` -- adds a new name as an alias to an existing " +"member." +msgstr "" + +#: ../../howto/enum.rst:995 +msgid "" +":meth:`~EnumType._add_value_alias_` -- adds a new value as an alias to an " +"existing member. See `MultiValueEnum`_ for an example." +msgstr "" + +#: ../../howto/enum.rst:1000 +msgid "" +"For standard :class:`Enum` classes the next value chosen is the highest " +"value seen incremented by one." +msgstr "" + +#: ../../howto/enum.rst:1003 +msgid "" +"For :class:`Flag` classes the next value chosen will be the next highest " +"power-of-two." +msgstr "" + +#: ../../howto/enum.rst:1006 +msgid "" +"Prior versions would use the last seen value instead of the highest value." +msgstr "" + +#: ../../howto/enum.rst:1009 +msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" +msgstr "" + +#: ../../howto/enum.rst:1010 +msgid "``_ignore_``" +msgstr "``_ignore_``" + +#: ../../howto/enum.rst:1011 +msgid "``_add_alias_``, ``_add_value_alias_``" +msgstr "" + +#: ../../howto/enum.rst:1013 +msgid "" +"To help keep Python 2 / Python 3 code in sync an :attr:`~Enum._order_` " +"attribute can be provided. It will be checked against the actual order of " +"the enumeration and raise an error if the two do not match::" +msgstr "" + +#: ../../howto/enum.rst:1017 +msgid "" +">>> class Color(Enum):\n" +"... _order_ = 'RED GREEN BLUE'\n" +"... RED = 1\n" +"... BLUE = 3\n" +"... GREEN = 2\n" +"...\n" +"Traceback (most recent call last):\n" +"...\n" +"TypeError: member order does not match _order_:\n" +" ['RED', 'BLUE', 'GREEN']\n" +" ['RED', 'GREEN', 'BLUE']" +msgstr "" + +#: ../../howto/enum.rst:1031 +msgid "" +"In Python 2 code the :attr:`~Enum._order_` attribute is necessary as " +"definition order is lost before it can be recorded." +msgstr "" + +#: ../../howto/enum.rst:1036 +msgid "_Private__names" +msgstr "" + +#: ../../howto/enum.rst:1038 +msgid "" +":ref:`Private names ` are not converted to enum " +"members, but remain normal attributes." +msgstr "" + +#: ../../howto/enum.rst:1045 +msgid "``Enum`` member type" +msgstr "" + +#: ../../howto/enum.rst:1047 +msgid "" +"Enum members are instances of their enum class, and are normally accessed as " +"``EnumClass.member``. In certain situations, such as writing custom enum " +"behavior, being able to access one member directly from another is useful, " +"and is supported; however, in order to avoid name clashes between member " +"names and attributes/methods from mixed-in classes, upper-case names are " +"strongly recommended." +msgstr "" + +#: ../../howto/enum.rst:1058 +msgid "Creating members that are mixed with other data types" +msgstr "" + +#: ../../howto/enum.rst:1060 +msgid "" +"When subclassing other data types, such as :class:`int` or :class:`str`, " +"with an :class:`Enum`, all values after the ``=`` are passed to that data " +"type's constructor. For example::" +msgstr "" + +#: ../../howto/enum.rst:1064 +msgid "" +">>> class MyEnum(IntEnum): # help(int) -> int(x, base=10) -> integer\n" +"... example = '11', 16 # so x='11' and base=16\n" +"...\n" +">>> MyEnum.example.value # and hex(11) is...\n" +"17" +msgstr "" + +#: ../../howto/enum.rst:1072 +msgid "Boolean value of ``Enum`` classes and members" +msgstr "" + +#: ../../howto/enum.rst:1074 +msgid "" +"Enum classes that are mixed with non-:class:`Enum` types (such " +"as :class:`int`, :class:`str`, etc.) are evaluated according to the mixed-in " +"type's rules; otherwise, all members evaluate as :data:`True`. To make your " +"own enum's boolean evaluation depend on the member's value add the following " +"to your class::" +msgstr "" + +#: ../../howto/enum.rst:1080 +msgid "" +"def __bool__(self):\n" +" return bool(self.value)" +msgstr "" + +#: ../../howto/enum.rst:1083 +msgid "Plain :class:`Enum` classes always evaluate as :data:`True`." +msgstr "" + +#: ../../howto/enum.rst:1087 +msgid "``Enum`` classes with methods" +msgstr "" + +#: ../../howto/enum.rst:1089 +msgid "" +"If you give your enum subclass extra methods, like the `Planet`_ class " +"below, those methods will show up in a :func:`dir` of the member, but not of " +"the class::" +msgstr "" + +#: ../../howto/enum.rst:1093 +msgid "" +">>> dir(Planet)\n" +"['EARTH', 'JUPITER', 'MARS', 'MERCURY', 'NEPTUNE', 'SATURN', 'URANUS', " +"'VENUS', '__class__', '__doc__', '__members__', '__module__']\n" +">>> dir(Planet.EARTH)\n" +"['__class__', '__doc__', '__module__', 'mass', 'name', 'radius', " +"'surface_gravity', 'value']" +msgstr "" + +#: ../../howto/enum.rst:1100 +msgid "Combining members of ``Flag``" +msgstr "" + +#: ../../howto/enum.rst:1102 +msgid "" +"Iterating over a combination of :class:`Flag` members will only return the " +"members that are comprised of a single bit::" +msgstr "" + +#: ../../howto/enum.rst:1105 +msgid "" +">>> class Color(Flag):\n" +"... RED = auto()\n" +"... GREEN = auto()\n" +"... BLUE = auto()\n" +"... MAGENTA = RED | BLUE\n" +"... YELLOW = RED | GREEN\n" +"... CYAN = GREEN | BLUE\n" +"...\n" +">>> Color(3) # named combination\n" +"\n" +">>> Color(7) # not named combination\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1120 +msgid "``Flag`` and ``IntFlag`` minutia" +msgstr "" + +#: ../../howto/enum.rst:1122 +msgid "Using the following snippet for our examples::" +msgstr "" + +#: ../../howto/enum.rst:1124 +msgid "" +">>> class Color(IntFlag):\n" +"... BLACK = 0\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 4\n" +"... PURPLE = RED | BLUE\n" +"... WHITE = RED | GREEN | BLUE\n" +"..." +msgstr "" + +#: ../../howto/enum.rst:1133 +msgid "the following are true:" +msgstr "" + +#: ../../howto/enum.rst:1135 +msgid "single-bit flags are canonical" +msgstr "" + +#: ../../howto/enum.rst:1136 +msgid "multi-bit and zero-bit flags are aliases" +msgstr "" + +#: ../../howto/enum.rst:1137 +msgid "only canonical flags are returned during iteration::" +msgstr "" + +#: ../../howto/enum.rst:1139 +msgid "" +">>> list(Color.WHITE)\n" +"[, , ]" +msgstr "" + +#: ../../howto/enum.rst:1142 +msgid "" +"negating a flag or flag set returns a new flag/flag set with the " +"corresponding positive integer value::" +msgstr "" + +#: ../../howto/enum.rst:1145 +msgid "" +">>> Color.BLUE\n" +"\n" +"\n" +">>> ~Color.BLUE\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1151 +msgid "names of pseudo-flags are constructed from their members' names::" +msgstr "" + +#: ../../howto/enum.rst:1153 +msgid "" +">>> (Color.RED | Color.GREEN).name\n" +"'RED|GREEN'\n" +"\n" +">>> class Perm(IntFlag):\n" +"... R = 4\n" +"... W = 2\n" +"... X = 1\n" +"...\n" +">>> (Perm.R & Perm.W).name is None # effectively Perm(0)\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:1164 +msgid "multi-bit flags, aka aliases, can be returned from operations::" +msgstr "" + +#: ../../howto/enum.rst:1166 +msgid "" +">>> Color.RED | Color.BLUE\n" +"\n" +"\n" +">>> Color(7) # or Color(-1)\n" +"\n" +"\n" +">>> Color(0)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1175 +msgid "" +"membership / containment checking: zero-valued flags are always considered " +"to be contained::" +msgstr "" + +#: ../../howto/enum.rst:1178 +msgid "" +">>> Color.BLACK in Color.WHITE\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:1181 +msgid "" +"otherwise, only if all bits of one flag are in the other flag will True be " +"returned::" +msgstr "" + +#: ../../howto/enum.rst:1184 +msgid "" +">>> Color.PURPLE in Color.WHITE\n" +"True\n" +"\n" +">>> Color.GREEN in Color.PURPLE\n" +"False" +msgstr "" + +#: ../../howto/enum.rst:1190 +msgid "" +"There is a new boundary mechanism that controls how out-of-range / invalid " +"bits are handled: ``STRICT``, ``CONFORM``, ``EJECT``, and ``KEEP``:" +msgstr "" + +#: ../../howto/enum.rst:1193 +msgid "STRICT --> raises an exception when presented with invalid values" +msgstr "" + +#: ../../howto/enum.rst:1194 +msgid "CONFORM --> discards any invalid bits" +msgstr "" + +#: ../../howto/enum.rst:1195 +msgid "EJECT --> lose Flag status and become a normal int with the given value" +msgstr "" + +#: ../../howto/enum.rst:1196 +msgid "KEEP --> keep the extra bits" +msgstr "" + +#: ../../howto/enum.rst:1198 +msgid "keeps Flag status and extra bits" +msgstr "" + +#: ../../howto/enum.rst:1199 +msgid "extra bits do not show up in iteration" +msgstr "" + +#: ../../howto/enum.rst:1200 +msgid "extra bits do show up in repr() and str()" +msgstr "" + +#: ../../howto/enum.rst:1202 +msgid "" +"The default for Flag is ``STRICT``, the default for ``IntFlag`` is " +"``EJECT``, and the default for ``_convert_`` is ``KEEP`` (see " +"``ssl.Options`` for an example of when ``KEEP`` is needed)." +msgstr "" + +#: ../../howto/enum.rst:1210 +msgid "How are Enums and Flags different?" +msgstr "" + +#: ../../howto/enum.rst:1212 +msgid "" +"Enums have a custom metaclass that affects many aspects of both " +"derived :class:`Enum` classes and their instances (members)." +msgstr "" + +#: ../../howto/enum.rst:1217 +msgid "Enum Classes" +msgstr "" + +#: ../../howto/enum.rst:1219 +msgid "" +"The :class:`EnumType` metaclass is responsible for providing " +"the :meth:`~object.__contains__`, :meth:`~object.__dir__`, :meth:`~object.__iter__` " +"and other methods that allow one to do things with an :class:`Enum` class " +"that fail on a typical class, such as ``list(Color)`` or ``some_enum_var in " +"Color``. :class:`EnumType` is responsible for ensuring that various other " +"methods on the final :class:`Enum` class are correct (such " +"as :meth:`~object.__new__`, :meth:`~object.__getnewargs__`, :meth:`~object.__str__` " +"and :meth:`~object.__repr__`)." +msgstr "" + +#: ../../howto/enum.rst:1228 +msgid "Flag Classes" +msgstr "" + +#: ../../howto/enum.rst:1230 +msgid "" +"Flags have an expanded view of aliasing: to be canonical, the value of a " +"flag needs to be a power-of-two value, and not a duplicate name. So, in " +"addition to the :class:`Enum` definition of alias, a flag with no value " +"(a.k.a. ``0``) or with more than one power-of-two value (e.g. ``3``) is " +"considered an alias." +msgstr "" + +#: ../../howto/enum.rst:1236 +msgid "Enum Members (aka instances)" +msgstr "" + +#: ../../howto/enum.rst:1238 +msgid "" +"The most interesting thing about enum members is that they are " +"singletons. :class:`EnumType` creates them all while it is creating the enum " +"class itself, and then puts a custom :meth:`~object.__new__` in place to " +"ensure that no new ones are ever instantiated by returning only the existing " +"member instances." +msgstr "" + +#: ../../howto/enum.rst:1244 +msgid "Flag Members" +msgstr "" + +#: ../../howto/enum.rst:1246 +msgid "" +"Flag members can be iterated over just like the :class:`Flag` class, and " +"only the canonical members will be returned. For example::" +msgstr "" + +#: ../../howto/enum.rst:1249 +msgid "" +">>> list(Color)\n" +"[, , ]" +msgstr "" + +#: ../../howto/enum.rst:1252 +msgid "(Note that ``BLACK``, ``PURPLE``, and ``WHITE`` do not show up.)" +msgstr "" + +#: ../../howto/enum.rst:1254 +msgid "" +"Inverting a flag member returns the corresponding positive value, rather " +"than a negative value --- for example::" +msgstr "" + +#: ../../howto/enum.rst:1257 +msgid "" +">>> ~Color.RED\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1260 +msgid "" +"Flag members have a length corresponding to the number of power-of-two " +"values they contain. For example::" +msgstr "" + +#: ../../howto/enum.rst:1263 +msgid "" +">>> len(Color.PURPLE)\n" +"2" +msgstr "" + +#: ../../howto/enum.rst:1270 +msgid "Enum Cookbook" +msgstr "" + +#: ../../howto/enum.rst:1273 +msgid "" +"While :class:`Enum`, :class:`IntEnum`, :class:`StrEnum`, :class:`Flag`, " +"and :class:`IntFlag` are expected to cover the majority of use-cases, they " +"cannot cover them all. Here are recipes for some different types of " +"enumerations that can be used directly, or as examples for creating one's " +"own." +msgstr "" + +#: ../../howto/enum.rst:1280 +msgid "Omitting values" +msgstr "" + +#: ../../howto/enum.rst:1282 +msgid "" +"In many use-cases, one doesn't care what the actual value of an enumeration " +"is. There are several ways to define this type of simple enumeration:" +msgstr "" + +#: ../../howto/enum.rst:1285 +msgid "use instances of :class:`auto` for the value" +msgstr "" + +#: ../../howto/enum.rst:1286 +msgid "use instances of :class:`object` as the value" +msgstr "" + +#: ../../howto/enum.rst:1287 +msgid "use a descriptive string as the value" +msgstr "" + +#: ../../howto/enum.rst:1288 +msgid "" +"use a tuple as the value and a custom :meth:`~object.__new__` to replace the " +"tuple with an :class:`int` value" +msgstr "" + +#: ../../howto/enum.rst:1291 +msgid "" +"Using any of these methods signifies to the user that these values are not " +"important, and also enables one to add, remove, or reorder members without " +"having to renumber the remaining members." +msgstr "" + +#: ../../howto/enum.rst:1297 +msgid "Using :class:`auto`" +msgstr "" + +#: ../../howto/enum.rst:1299 +msgid "Using :class:`auto` would look like::" +msgstr "" + +#: ../../howto/enum.rst:1301 +msgid "" +">>> class Color(Enum):\n" +"... RED = auto()\n" +"... BLUE = auto()\n" +"... GREEN = auto()\n" +"...\n" +">>> Color.GREEN\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1311 +msgid "Using :class:`object`" +msgstr "" + +#: ../../howto/enum.rst:1313 +msgid "Using :class:`object` would look like::" +msgstr "" + +#: ../../howto/enum.rst:1315 +msgid "" +">>> class Color(Enum):\n" +"... RED = object()\n" +"... GREEN = object()\n" +"... BLUE = object()\n" +"...\n" +">>> Color.GREEN\n" +">" +msgstr "" + +#: ../../howto/enum.rst:1323 +msgid "" +"This is also a good example of why you might want to write your " +"own :meth:`~object.__repr__`::" +msgstr "" + +#: ../../howto/enum.rst:1326 +msgid "" +">>> class Color(Enum):\n" +"... RED = object()\n" +"... GREEN = object()\n" +"... BLUE = object()\n" +"... def __repr__(self):\n" +"... return \"<%s.%s>\" % (self.__class__.__name__, self._name_)\n" +"...\n" +">>> Color.GREEN\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1339 +msgid "Using a descriptive string" +msgstr "" + +#: ../../howto/enum.rst:1341 +msgid "Using a string as the value would look like::" +msgstr "" + +#: ../../howto/enum.rst:1343 +msgid "" +">>> class Color(Enum):\n" +"... RED = 'stop'\n" +"... GREEN = 'go'\n" +"... BLUE = 'too fast!'\n" +"...\n" +">>> Color.GREEN\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1353 +msgid "Using a custom :meth:`~object.__new__`" +msgstr "" + +#: ../../howto/enum.rst:1355 +msgid "Using an auto-numbering :meth:`~object.__new__` would look like::" +msgstr "" + +#: ../../howto/enum.rst:1357 +msgid "" +">>> class AutoNumber(Enum):\n" +"... def __new__(cls):\n" +"... value = len(cls.__members__) + 1\n" +"... obj = object.__new__(cls)\n" +"... obj._value_ = value\n" +"... return obj\n" +"...\n" +">>> class Color(AutoNumber):\n" +"... RED = ()\n" +"... GREEN = ()\n" +"... BLUE = ()\n" +"...\n" +">>> Color.GREEN\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1372 +msgid "" +"To make a more general purpose ``AutoNumber``, add ``*args`` to the " +"signature::" +msgstr "" + +#: ../../howto/enum.rst:1374 +msgid "" +">>> class AutoNumber(Enum):\n" +"... def __new__(cls, *args): # this is the only change from above\n" +"... value = len(cls.__members__) + 1\n" +"... obj = object.__new__(cls)\n" +"... obj._value_ = value\n" +"... return obj\n" +"..." +msgstr "" + +#: ../../howto/enum.rst:1382 +msgid "" +"Then when you inherit from ``AutoNumber`` you can write your own " +"``__init__`` to handle any extra arguments::" +msgstr "" + +#: ../../howto/enum.rst:1385 +msgid "" +">>> class Swatch(AutoNumber):\n" +"... def __init__(self, pantone='unknown'):\n" +"... self.pantone = pantone\n" +"... AUBURN = '3497'\n" +"... SEA_GREEN = '1246'\n" +"... BLEACHED_CORAL = () # New color, no Pantone code yet!\n" +"...\n" +">>> Swatch.SEA_GREEN\n" +"\n" +">>> Swatch.SEA_GREEN.pantone\n" +"'1246'\n" +">>> Swatch.BLEACHED_CORAL.pantone\n" +"'unknown'" +msgstr "" + +#: ../../howto/enum.rst:1401 +msgid "" +"The :meth:`~object.__new__` method, if defined, is used during creation of " +"the Enum members; it is then replaced by Enum's :meth:`~object.__new__` " +"which is used after class creation for lookup of existing members." +msgstr "" + +#: ../../howto/enum.rst:1407 +msgid "" +"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " +"one that is found; instead, use the data type directly -- e.g.::" +msgstr "" + +#: ../../howto/enum.rst:1410 +msgid "obj = int.__new__(cls, value)" +msgstr "" + +#: ../../howto/enum.rst:1414 +msgid "OrderedEnum" +msgstr "" + +#: ../../howto/enum.rst:1416 +msgid "" +"An ordered enumeration that is not based on :class:`IntEnum` and so " +"maintains the normal :class:`Enum` invariants (such as not being comparable " +"to other enumerations)::" +msgstr "" + +#: ../../howto/enum.rst:1420 +msgid "" +">>> class OrderedEnum(Enum):\n" +"... def __ge__(self, other):\n" +"... if self.__class__ is other.__class__:\n" +"... return self.value >= other.value\n" +"... return NotImplemented\n" +"... def __gt__(self, other):\n" +"... if self.__class__ is other.__class__:\n" +"... return self.value > other.value\n" +"... return NotImplemented\n" +"... def __le__(self, other):\n" +"... if self.__class__ is other.__class__:\n" +"... return self.value <= other.value\n" +"... return NotImplemented\n" +"... def __lt__(self, other):\n" +"... if self.__class__ is other.__class__:\n" +"... return self.value < other.value\n" +"... return NotImplemented\n" +"...\n" +">>> class Grade(OrderedEnum):\n" +"... A = 5\n" +"... B = 4\n" +"... C = 3\n" +"... D = 2\n" +"... F = 1\n" +"...\n" +">>> Grade.C < Grade.A\n" +"True" +msgstr "" + +#: ../../howto/enum.rst:1450 +msgid "DuplicateFreeEnum" +msgstr "" + +#: ../../howto/enum.rst:1452 +msgid "" +"Raises an error if a duplicate member value is found instead of creating an " +"alias::" +msgstr "" + +#: ../../howto/enum.rst:1455 +msgid "" +">>> class DuplicateFreeEnum(Enum):\n" +"... def __init__(self, *args):\n" +"... cls = self.__class__\n" +"... if any(self.value == e.value for e in cls):\n" +"... a = self.name\n" +"... e = cls(self.value).name\n" +"... raise ValueError(\n" +"... \"aliases not allowed in DuplicateFreeEnum: %r --> " +"%r\"\n" +"... % (a, e))\n" +"...\n" +">>> class Color(DuplicateFreeEnum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 3\n" +"... GRENE = 2\n" +"...\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: aliases not allowed in DuplicateFreeEnum: 'GRENE' --> 'GREEN'" +msgstr "" + +#: ../../howto/enum.rst:1477 +msgid "" +"This is a useful example for subclassing Enum to add or change other " +"behaviors as well as disallowing aliases. If the only desired change is " +"disallowing aliases, the :func:`unique` decorator can be used instead." +msgstr "" + +#: ../../howto/enum.rst:1483 +msgid "MultiValueEnum" +msgstr "" + +#: ../../howto/enum.rst:1485 +msgid "Supports having more than one value per member::" +msgstr "" + +#: ../../howto/enum.rst:1487 +msgid "" +">>> class MultiValueEnum(Enum):\n" +"... def __new__(cls, value, *values):\n" +"... self = object.__new__(cls)\n" +"... self._value_ = value\n" +"... for v in values:\n" +"... self._add_value_alias_(v)\n" +"... return self\n" +"...\n" +">>> class DType(MultiValueEnum):\n" +"... float32 = 'f', 8\n" +"... double64 = 'd', 9\n" +"...\n" +">>> DType('f')\n" +"\n" +">>> DType(9)\n" +"" +msgstr "" + +#: ../../howto/enum.rst:1506 +msgid "Planet" +msgstr "" + +#: ../../howto/enum.rst:1508 +msgid "" +"If :meth:`~object.__new__` or :meth:`~object.__init__` is defined, the value " +"of the enum member will be passed to those methods::" +msgstr "" + +#: ../../howto/enum.rst:1511 +msgid "" +">>> class Planet(Enum):\n" +"... MERCURY = (3.303e+23, 2.4397e6)\n" +"... VENUS = (4.869e+24, 6.0518e6)\n" +"... EARTH = (5.976e+24, 6.37814e6)\n" +"... MARS = (6.421e+23, 3.3972e6)\n" +"... JUPITER = (1.9e+27, 7.1492e7)\n" +"... SATURN = (5.688e+26, 6.0268e7)\n" +"... URANUS = (8.686e+25, 2.5559e7)\n" +"... NEPTUNE = (1.024e+26, 2.4746e7)\n" +"... def __init__(self, mass, radius):\n" +"... self.mass = mass # in kilograms\n" +"... self.radius = radius # in meters\n" +"... @property\n" +"... def surface_gravity(self):\n" +"... # universal gravitational constant (m3 kg-1 s-2)\n" +"... G = 6.67300E-11\n" +"... return G * self.mass / (self.radius * self.radius)\n" +"...\n" +">>> Planet.EARTH.value\n" +"(5.976e+24, 6378140.0)\n" +">>> Planet.EARTH.surface_gravity\n" +"9.802652743337129" +msgstr "" + +#: ../../howto/enum.rst:1537 +msgid "TimePeriod" +msgstr "" + +#: ../../howto/enum.rst:1539 +msgid "An example to show the :attr:`~Enum._ignore_` attribute in use::" +msgstr "" + +#: ../../howto/enum.rst:1541 +msgid "" +">>> from datetime import timedelta\n" +">>> class Period(timedelta, Enum):\n" +"... \"different lengths of time\"\n" +"... _ignore_ = 'Period i'\n" +"... Period = vars()\n" +"... for i in range(367):\n" +"... Period['day_%d' % i] = i\n" +"...\n" +">>> list(Period)[:2]\n" +"[, ]\n" +">>> list(Period)[-2:]\n" +"[, ]" +msgstr "" + +#: ../../howto/enum.rst:1558 +msgid "Subclassing EnumType" +msgstr "" + +#: ../../howto/enum.rst:1560 +msgid "" +"While most enum needs can be met by customizing :class:`Enum` subclasses, " +"either with class decorators or custom functions, :class:`EnumType` can be " +"subclassed to provide a different Enum experience." +msgstr "" diff --git a/howto/free-threading-extensions.po b/howto/free-threading-extensions.po new file mode 100644 index 0000000..fb4e88b --- /dev/null +++ b/howto/free-threading-extensions.po @@ -0,0 +1,695 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/free-threading-extensions.rst:7 +msgid "C API Extension Support for Free Threading" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:9 +msgid "" +"Starting with the 3.13 release, CPython has support for running with " +"the :term:`global interpreter lock` (GIL) disabled in a configuration " +"called :term:`free threading`. This document describes how to adapt C API " +"extensions to support free threading." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:16 +msgid "Identifying the Free-Threaded Build in C" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:18 +msgid "" +"The CPython C API exposes the ``Py_GIL_DISABLED`` macro: in the free-" +"threaded build it's defined to ``1``, and in the regular build it's not " +"defined. You can use it to enable code that only runs under the free-" +"threaded build::" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:22 +msgid "" +"#ifdef Py_GIL_DISABLED\n" +"/* code that only runs in the free-threaded build */\n" +"#endif" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:28 +msgid "" +"On Windows, this macro is not defined automatically, but must be specified " +"to the compiler when building. The :func:`sysconfig.get_config_var` function " +"can be used to determine whether the current running interpreter had the " +"macro defined." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:35 +msgid "Module Initialization" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:37 +msgid "" +"Extension modules need to explicitly indicate that they support running with " +"the GIL disabled; otherwise importing the extension will raise a warning and " +"enable the GIL at runtime." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:41 +msgid "" +"There are two ways to indicate that an extension module supports running " +"with the GIL disabled depending on whether the extension uses multi-phase or " +"single-phase initialization." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:46 +msgid "Multi-Phase Initialization" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:48 +msgid "" +"Extensions that use multi-phase initialization " +"(i.e., :c:func:`PyModuleDef_Init`) should add a :c:data:`Py_mod_gil` slot in " +"the module definition. If your extension supports older versions of " +"CPython, you should guard the slot with a :c:data:`PY_VERSION_HEX` check." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:55 +msgid "" +"static struct PyModuleDef_Slot module_slots[] = {\n" +" ...\n" +"#if PY_VERSION_HEX >= 0x030D0000\n" +" {Py_mod_gil, Py_MOD_GIL_NOT_USED},\n" +"#endif\n" +" {0, NULL}\n" +"};\n" +"\n" +"static struct PyModuleDef moduledef = {\n" +" PyModuleDef_HEAD_INIT,\n" +" .m_slots = module_slots,\n" +" ...\n" +"};" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:71 +msgid "Single-Phase Initialization" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:73 +msgid "" +"Extensions that use single-phase initialization " +"(i.e., :c:func:`PyModule_Create`) should " +"call :c:func:`PyUnstable_Module_SetGIL` to indicate that they support " +"running with the GIL disabled. The function is only defined in the free-" +"threaded build, so you should guard the call with ``#ifdef Py_GIL_DISABLED`` " +"to avoid compilation errors in the regular build." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:81 +msgid "" +"static struct PyModuleDef moduledef = {\n" +" PyModuleDef_HEAD_INIT,\n" +" ...\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_mymodule(void)\n" +"{\n" +" PyObject *m = PyModule_Create(&moduledef);\n" +" if (m == NULL) {\n" +" return NULL;\n" +" }\n" +"#ifdef Py_GIL_DISABLED\n" +" PyUnstable_Module_SetGIL(m, Py_MOD_GIL_NOT_USED);\n" +"#endif\n" +" return m;\n" +"}" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:101 +msgid "General API Guidelines" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:103 +msgid "Most of the C API is thread-safe, but there are some exceptions." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:105 +msgid "" +"**Struct Fields**: Accessing fields in Python C API objects or structs " +"directly is not thread-safe if the field may be concurrently modified." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:107 +msgid "" +"**Macros**: Accessor macros " +"like :c:macro:`PyList_GET_ITEM`, :c:macro:`PyList_SET_ITEM`, and macros " +"like :c:macro:`PySequence_Fast_GET_SIZE` that use the object returned " +"by :c:func:`PySequence_Fast` do not perform any error checking or locking. " +"These macros are not thread-safe if the container object may be modified " +"concurrently." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:113 +msgid "" +"**Borrowed References**: C API functions that return :term:`borrowed " +"references ` may not be thread-safe if the containing " +"object is modified concurrently. See the section on :ref:`borrowed " +"references ` for more information." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:120 +msgid "Container Thread Safety" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:122 +msgid "" +"Containers like :c:struct:`PyListObject`, :c:struct:`PyDictObject`, " +"and :c:struct:`PySetObject` perform internal locking in the free-threaded " +"build. For example, the :c:func:`PyList_Append` will lock the list before " +"appending an item." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:130 +msgid "``PyDict_Next``" +msgstr "``PyDict_Next``" + +#: ../../howto/free-threading-extensions.rst:132 +msgid "" +"A notable exception is :c:func:`PyDict_Next`, which does not lock the " +"dictionary. You should use :c:macro:`Py_BEGIN_CRITICAL_SECTION` to protect " +"the dictionary while iterating over it if the dictionary may be concurrently " +"modified::" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:137 +msgid "" +"Py_BEGIN_CRITICAL_SECTION(dict);\n" +"PyObject *key, *value;\n" +"Py_ssize_t pos = 0;\n" +"while (PyDict_Next(dict, &pos, &key, &value)) {\n" +" ...\n" +"}\n" +"Py_END_CRITICAL_SECTION();" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:147 +msgid "Borrowed References" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:151 +msgid "" +"Some C API functions return :term:`borrowed references `. These APIs are not thread-safe if the containing object is " +"modified concurrently. For example, it's not safe to " +"use :c:func:`PyList_GetItem` if the list may be modified concurrently." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:156 +msgid "" +"The following table lists some borrowed reference APIs and their " +"replacements that return :term:`strong references `." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:160 +msgid "Borrowed reference API" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:160 +msgid "Strong reference API" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:162 +msgid ":c:func:`PyList_GetItem`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:162 +#: ../../howto/free-threading-extensions.rst:164 +msgid ":c:func:`PyList_GetItemRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:164 +msgid ":c:func:`PyList_GET_ITEM`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:166 +msgid ":c:func:`PyDict_GetItem`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:166 +#: ../../howto/free-threading-extensions.rst:168 +msgid ":c:func:`PyDict_GetItemRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:168 +msgid ":c:func:`PyDict_GetItemWithError`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:170 +msgid ":c:func:`PyDict_GetItemString`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:170 +msgid ":c:func:`PyDict_GetItemStringRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:172 +msgid ":c:func:`PyDict_SetDefault`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:172 +msgid ":c:func:`PyDict_SetDefaultRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:174 +msgid ":c:func:`PyDict_Next`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:174 +msgid "none (see :ref:`PyDict_Next`)" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:176 +msgid ":c:func:`PyWeakref_GetObject`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:176 +#: ../../howto/free-threading-extensions.rst:178 +msgid ":c:func:`PyWeakref_GetRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:178 +msgid ":c:func:`PyWeakref_GET_OBJECT`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:180 +msgid ":c:func:`PyImport_AddModule`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:180 +msgid ":c:func:`PyImport_AddModuleRef`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:182 +msgid ":c:func:`PyCell_GET`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:182 +msgid ":c:func:`PyCell_Get`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:185 +msgid "" +"Not all APIs that return borrowed references are problematic. For " +"example, :c:func:`PyTuple_GetItem` is safe because tuples are immutable. " +"Similarly, not all uses of the above APIs are problematic. For " +"example, :c:func:`PyDict_GetItem` is often used for parsing keyword argument " +"dictionaries in function calls; those keyword argument dictionaries are " +"effectively private (not accessible by other threads), so using borrowed " +"references in that context is safe." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:193 +msgid "" +"Some of these functions were added in Python 3.13. You can use the " +"`pythoncapi-compat `_ package " +"to provide implementations of these functions for older Python versions." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:201 +msgid "Memory Allocation APIs" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:203 +msgid "" +"Python's memory management C API provides functions in three " +"different :ref:`allocation domains `: \"raw\", \"mem\", " +"and \"object\". For thread-safety, the free-threaded build requires that " +"only Python objects are allocated using the object domain, and that all " +"Python object are allocated using that domain. This differs from the prior " +"Python versions, where this was only a best practice and not a hard " +"requirement." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:212 +msgid "" +"Search for uses of :c:func:`PyObject_Malloc` in your extension and check " +"that the allocated memory is used for Python objects. " +"Use :c:func:`PyMem_Malloc` to allocate buffers instead " +"of :c:func:`PyObject_Malloc`." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:219 +msgid "Thread State and GIL APIs" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:221 +msgid "" +"Python provides a set of functions and macros to manage thread state and the " +"GIL, such as:" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:224 +msgid ":c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:225 +msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:226 +msgid ":c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS`" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:228 +msgid "" +"These functions should still be used in the free-threaded build to manage " +"thread state even when the :term:`GIL` is disabled. For example, if you " +"create a thread outside of Python, you must call :c:func:`PyGILState_Ensure` " +"before calling into the Python API to ensure that the thread has a valid " +"Python thread state." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:234 +msgid "" +"You should continue to call :c:func:`PyEval_SaveThread` " +"or :c:macro:`Py_BEGIN_ALLOW_THREADS` around blocking operations, such as I/O " +"or lock acquisitions, to allow other threads to run the :term:`cyclic " +"garbage collector `." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:241 +msgid "Protecting Internal Extension State" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:243 +msgid "" +"Your extension may have internal state that was previously protected by the " +"GIL. You may need to add locking to protect this state. The approach will " +"depend on your extension, but some common patterns include:" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:247 +msgid "" +"**Caches**: global caches are a common source of shared state. Consider " +"using a lock to protect the cache or disabling it in the free-threaded build " +"if the cache is not critical for performance." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:250 +msgid "" +"**Global State**: global state may need to be protected by a lock or moved " +"to thread local storage. C11 and C++11 provide the ``thread_local`` or " +"``_Thread_local`` for `thread-local storage `_." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:257 +msgid "Critical Sections" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:261 +msgid "" +"In the free-threaded build, CPython provides a mechanism called \"critical " +"sections\" to protect data that would otherwise be protected by the GIL. " +"While extension authors may not interact with the internal critical section " +"implementation directly, understanding their behavior is crucial when using " +"certain C API functions or managing shared state in the free-threaded build." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:268 +msgid "What Are Critical Sections?" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:270 +msgid "" +"Conceptually, critical sections act as a deadlock avoidance layer built on " +"top of simple mutexes. Each thread maintains a stack of active critical " +"sections. When a thread needs to acquire a lock associated with a critical " +"section (e.g., implicitly when calling a thread-safe C API function " +"like :c:func:`PyDict_SetItem`, or explicitly using macros), it attempts to " +"acquire the underlying mutex." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:278 +msgid "Using Critical Sections" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:280 +msgid "The primary APIs for using critical sections are:" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:282 +msgid "" +":c:macro:`Py_BEGIN_CRITICAL_SECTION` and :c:macro:`Py_END_CRITICAL_SECTION` " +"- For locking a single object" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:285 +msgid "" +":c:macro:`Py_BEGIN_CRITICAL_SECTION2` " +"and :c:macro:`Py_END_CRITICAL_SECTION2` - For locking two objects " +"simultaneously" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:288 +msgid "" +"These macros must be used in matching pairs and must appear in the same C " +"scope, since they establish a new local scope. These macros are no-ops in " +"non-free-threaded builds, so they can be safely added to code that needs to " +"support both build types." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:293 +msgid "" +"A common use of a critical section would be to lock an object while " +"accessing an internal attribute of it. For example, if an extension type " +"has an internal count field, you could use a critical section while reading " +"or writing that field::" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:298 +msgid "" +"// read the count, returns new reference to internal count value\n" +"PyObject *result;\n" +"Py_BEGIN_CRITICAL_SECTION(obj);\n" +"result = Py_NewRef(obj->count);\n" +"Py_END_CRITICAL_SECTION();\n" +"return result;\n" +"\n" +"// write the count, consumes reference from new_count\n" +"Py_BEGIN_CRITICAL_SECTION(obj);\n" +"obj->count = new_count;\n" +"Py_END_CRITICAL_SECTION();" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:312 +msgid "How Critical Sections Work" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:314 +msgid "" +"Unlike traditional locks, critical sections do not guarantee exclusive " +"access throughout their entire duration. If a thread would block while " +"holding a critical section (e.g., by acquiring another lock or performing I/" +"O), the critical section is temporarily suspended—all locks are released—and " +"then resumed when the blocking operation completes." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:320 +msgid "" +"This behavior is similar to what happens with the GIL when a thread makes a " +"blocking call. The key differences are:" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:323 +msgid "Critical sections operate on a per-object basis rather than globally" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:325 +msgid "" +"Critical sections follow a stack discipline within each thread (the " +"\"begin\" and \"end\" macros enforce this since they must be paired and " +"within the same scope)" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:328 +msgid "" +"Critical sections automatically release and reacquire locks around potential " +"blocking operations" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:332 +msgid "Deadlock Avoidance" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:334 +msgid "Critical sections help avoid deadlocks in two ways:" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:336 +msgid "" +"If a thread tries to acquire a lock that's already held by another thread, " +"it first suspends all of its active critical sections, temporarily releasing " +"their locks" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:340 +msgid "" +"When the blocking operation completes, only the top-most critical section is " +"reacquired first" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:343 +msgid "" +"This means you cannot rely on nested critical sections to lock multiple " +"objects at once, as the inner critical section may suspend the outer ones. " +"Instead, use :c:macro:`Py_BEGIN_CRITICAL_SECTION2` to lock two objects " +"simultaneously." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:347 +msgid "" +"Note that the locks described above are only :c:type:`!PyMutex` based locks. " +"The critical section implementation does not know about or affect other " +"locking mechanisms that might be in use, like POSIX mutexes. Also note that " +"while blocking on any :c:type:`!PyMutex` causes the critical sections to be " +"suspended, only the mutexes that are part of the critical sections are " +"released. If :c:type:`!PyMutex` is used without a critical section, it will " +"not be released and therefore does not get the same deadlock avoidance." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:356 +msgid "Important Considerations" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:358 +msgid "" +"Critical sections may temporarily release their locks, allowing other " +"threads to modify the protected data. Be careful about making assumptions " +"about the state of the data after operations that might block." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:362 +msgid "" +"Because locks can be temporarily released (suspended), entering a critical " +"section does not guarantee exclusive access to the protected resource " +"throughout the section's duration. If code within a critical section calls " +"another function that blocks (e.g., acquires another lock, performs blocking " +"I/O), all locks held by the thread via critical sections will be released. " +"This is similar to how the GIL can be released during blocking calls." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:369 +msgid "" +"Only the lock(s) associated with the most recently entered (top-most) " +"critical section are guaranteed to be held at any given time. Locks for " +"outer, nested critical sections might have been suspended." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:373 +msgid "" +"You can lock at most two objects simultaneously with these APIs. If you need " +"to lock more objects, you'll need to restructure your code." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:376 +msgid "" +"While critical sections will not deadlock if you attempt to lock the same " +"object twice, they are less efficient than purpose-built reentrant locks for " +"this use case." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:380 +msgid "" +"When using :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, the order of the objects " +"doesn't affect correctness (the implementation handles deadlock avoidance), " +"but it's good practice to always lock objects in a consistent order." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:384 +msgid "" +"Remember that the critical section macros are primarily for protecting " +"access to *Python objects* that might be involved in internal CPython " +"operations susceptible to the deadlock scenarios described above. For " +"protecting purely internal extension state, standard mutexes or other " +"synchronization primitives might be more appropriate." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:392 +msgid "Building Extensions for the Free-Threaded Build" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:394 +msgid "" +"C API extensions need to be built specifically for the free-threaded build. " +"The wheels, shared libraries, and binaries are indicated by a ``t`` suffix." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:397 +msgid "" +"`pypa/manylinux `_ supports the free-" +"threaded build, with the ``t`` suffix, such as ``python3.13t``." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:399 +msgid "" +"`pypa/cibuildwheel `_ supports the " +"free-threaded build if you set `CIBW_ENABLE to cpython-freethreading " +"`_." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:404 +msgid "Limited C API and Stable ABI" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:406 +msgid "" +"The free-threaded build does not currently support the :ref:`Limited C API " +"` or the stable ABI. If you use `setuptools `_ to build your extension and " +"currently set ``py_limited_api=True`` you can use ``py_limited_api=not " +"sysconfig.get_config_var(\"Py_GIL_DISABLED\")`` to opt out of the limited " +"API when building with the free-threaded build." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:414 +msgid "" +"You will need to build separate wheels specifically for the free-threaded " +"build. If you currently use the stable ABI, you can continue to build a " +"single wheel for multiple non-free-threaded Python versions." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:420 +msgid "Windows" +msgstr "" + +#: ../../howto/free-threading-extensions.rst:422 +msgid "" +"Due to a limitation of the official Windows installer, you will need to " +"manually define ``Py_GIL_DISABLED=1`` when building extensions from source." +msgstr "" + +#: ../../howto/free-threading-extensions.rst:427 +msgid "" +"`Porting Extension Modules to Support Free-Threading `_: A community-maintained porting guide for " +"extension authors." +msgstr "" diff --git a/howto/free-threading-python.po b/howto/free-threading-python.po new file mode 100644 index 0000000..878e991 --- /dev/null +++ b/howto/free-threading-python.po @@ -0,0 +1,305 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/free-threading-python.rst:5 +msgid "Python support for free threading" +msgstr "" + +#: ../../howto/free-threading-python.rst:7 +msgid "" +"Starting with the 3.13 release, CPython has support for a build of Python " +"called :term:`free threading` where the :term:`global interpreter lock` " +"(GIL) is disabled. Free-threaded execution allows for full utilization of " +"the available processing power by running threads in parallel on available " +"CPU cores. While not all software will benefit from this automatically, " +"programs designed with threading in mind will run faster on multi-core " +"hardware." +msgstr "" + +#: ../../howto/free-threading-python.rst:14 +msgid "" +"The free-threaded mode is working and continues to be improved, but there is " +"some additional overhead in single-threaded workloads compared to the " +"regular build. Additionally, third-party packages, in particular ones with " +"an :term:`extension module`, may not be ready for use in a free-threaded " +"build, and will re-enable the :term:`GIL`." +msgstr "" + +#: ../../howto/free-threading-python.rst:20 +msgid "" +"This document describes the implications of free threading for Python code. " +"See :ref:`freethreading-extensions-howto` for information on how to write C " +"extensions that support the free-threaded build." +msgstr "" + +#: ../../howto/free-threading-python.rst:26 +msgid "" +":pep:`703` – Making the Global Interpreter Lock Optional in CPython for an " +"overall description of free-threaded Python." +msgstr "" + +#: ../../howto/free-threading-python.rst:31 +msgid "Installation" +msgstr "" + +#: ../../howto/free-threading-python.rst:33 +msgid "" +"Starting with Python 3.13, the official macOS and Windows installers " +"optionally support installing free-threaded Python binaries. The installers " +"are available at https://www.python.org/downloads/." +msgstr "" + +#: ../../howto/free-threading-python.rst:37 +msgid "" +"For information on other platforms, see the `Installing a Free-Threaded " +"Python `_, a " +"community-maintained installation guide for installing free-threaded Python." +msgstr "" + +#: ../../howto/free-threading-python.rst:41 +msgid "" +"When building CPython from source, the :option:`--disable-gil` configure " +"option should be used to build a free-threaded Python interpreter." +msgstr "" + +#: ../../howto/free-threading-python.rst:46 +msgid "Identifying free-threaded Python" +msgstr "" + +#: ../../howto/free-threading-python.rst:48 +msgid "" +"To check if the current interpreter supports free-threading, :option:`python " +"-VV <-V>` and :data:`sys.version` contain \"free-threading build\". The " +"new :func:`sys._is_gil_enabled` function can be used to check whether the " +"GIL is actually disabled in the running process." +msgstr "" + +#: ../../howto/free-threading-python.rst:53 +msgid "" +"The ``sysconfig.get_config_var(\"Py_GIL_DISABLED\")`` configuration variable " +"can be used to determine whether the build supports free threading. If the " +"variable is set to ``1``, then the build supports free threading. This is " +"the recommended mechanism for decisions related to the build configuration." +msgstr "" + +#: ../../howto/free-threading-python.rst:60 +msgid "The global interpreter lock in free-threaded Python" +msgstr "" + +#: ../../howto/free-threading-python.rst:62 +msgid "" +"Free-threaded builds of CPython support optionally running with the GIL " +"enabled at runtime using the environment variable :envvar:`PYTHON_GIL` or " +"the command-line option :option:`-X gil`." +msgstr "" + +#: ../../howto/free-threading-python.rst:66 +msgid "" +"The GIL may also automatically be enabled when importing a C-API extension " +"module that is not explicitly marked as supporting free threading. A " +"warning will be printed in this case." +msgstr "" + +#: ../../howto/free-threading-python.rst:70 +msgid "" +"In addition to individual package documentation, the following websites " +"track the status of popular packages support for free threading:" +msgstr "" + +#: ../../howto/free-threading-python.rst:73 +msgid "https://py-free-threading.github.io/tracking/" +msgstr "" + +#: ../../howto/free-threading-python.rst:74 +msgid "https://hugovk.github.io/free-threaded-wheels/" +msgstr "" + +#: ../../howto/free-threading-python.rst:78 +msgid "Thread safety" +msgstr "" + +#: ../../howto/free-threading-python.rst:80 +msgid "" +"The free-threaded build of CPython aims to provide similar thread-safety " +"behavior at the Python level to the default GIL-enabled build. Built-in " +"types like :class:`dict`, :class:`list`, and :class:`set` use internal locks " +"to protect against concurrent modifications in ways that behave similarly to " +"the GIL. However, Python has not historically guaranteed specific behavior " +"for concurrent modifications to these built-in types, so this should be " +"treated as a description of the current implementation, not a guarantee of " +"current or future behavior." +msgstr "" + +#: ../../howto/free-threading-python.rst:91 +msgid "" +"It's recommended to use the :class:`threading.Lock` or other synchronization " +"primitives instead of relying on the internal locks of built-in types, when " +"possible." +msgstr "" + +#: ../../howto/free-threading-python.rst:97 +msgid "Known limitations" +msgstr "" + +#: ../../howto/free-threading-python.rst:99 +msgid "" +"This section describes known limitations of the free-threaded CPython build." +msgstr "" + +#: ../../howto/free-threading-python.rst:102 +msgid "Immortalization" +msgstr "" + +#: ../../howto/free-threading-python.rst:104 +msgid "" +"The free-threaded build of the 3.13 release makes some " +"objects :term:`immortal`. Immortal objects are not deallocated and have " +"reference counts that are never modified. This is done to avoid reference " +"count contention that would prevent efficient multi-threaded scaling." +msgstr "" + +#: ../../howto/free-threading-python.rst:109 +msgid "" +"An object will be made immortal when a new thread is started for the first " +"time after the main thread is running. The following objects are " +"immortalized:" +msgstr "" + +#: ../../howto/free-threading-python.rst:112 +msgid "" +":ref:`function ` objects declared at the module level" +msgstr "" + +#: ../../howto/free-threading-python.rst:113 +msgid ":ref:`method ` descriptors" +msgstr "" + +#: ../../howto/free-threading-python.rst:114 +msgid ":ref:`code ` objects" +msgstr "" + +#: ../../howto/free-threading-python.rst:115 +msgid ":term:`module` objects and their dictionaries" +msgstr "" + +#: ../../howto/free-threading-python.rst:116 +msgid ":ref:`classes ` (type objects)" +msgstr "" + +#: ../../howto/free-threading-python.rst:118 +msgid "" +"Because immortal objects are never deallocated, applications that create " +"many objects of these types may see increased memory usage. This is " +"expected to be addressed in the 3.14 release." +msgstr "" + +#: ../../howto/free-threading-python.rst:122 +msgid "" +"Additionally, numeric and string literals in the code as well as strings " +"returned by :func:`sys.intern` are also immortalized. This behavior is " +"expected to remain in the 3.14 free-threaded build." +msgstr "" + +#: ../../howto/free-threading-python.rst:128 +msgid "Frame objects" +msgstr "" + +#: ../../howto/free-threading-python.rst:130 +msgid "" +"It is not safe to access :ref:`frame ` objects from other " +"threads and doing so may cause your program to crash . This means " +"that :func:`sys._current_frames` is generally not safe to use in a free-" +"threaded build. Functions like :func:`inspect.currentframe` " +"and :func:`sys._getframe` are generally safe as long as the resulting frame " +"object is not passed to another thread." +msgstr "" + +#: ../../howto/free-threading-python.rst:138 +msgid "Iterators" +msgstr "Iterátorok" + +#: ../../howto/free-threading-python.rst:140 +msgid "" +"Sharing the same iterator object between multiple threads is generally not " +"safe and threads may see duplicate or missing elements when iterating or " +"crash the interpreter." +msgstr "" + +#: ../../howto/free-threading-python.rst:146 +msgid "Single-threaded performance" +msgstr "" + +#: ../../howto/free-threading-python.rst:148 +msgid "" +"The free-threaded build has additional overhead when executing Python code " +"compared to the default GIL-enabled build. In 3.13, this overhead is about " +"40% on the `pyperformance `_ suite. " +"Programs that spend most of their time in C extensions or I/O will see less " +"of an impact. The largest impact is because the specializing adaptive " +"interpreter (:pep:`659`) is disabled in the free-threaded build. We expect " +"to re-enable it in a thread-safe way in the 3.14 release. This overhead is " +"expected to be reduced in upcoming Python release. We are aiming for an " +"overhead of 10% or less on the pyperformance suite compared to the default " +"GIL-enabled build." +msgstr "" + +#: ../../howto/free-threading-python.rst:161 +msgid "Behavioral changes" +msgstr "" + +#: ../../howto/free-threading-python.rst:163 +msgid "" +"This section describes CPython behavioural changes with the free-threaded " +"build." +msgstr "" + +#: ../../howto/free-threading-python.rst:168 +msgid "Context variables" +msgstr "" + +#: ../../howto/free-threading-python.rst:170 +msgid "" +"In the free-threaded build, the " +"flag :data:`~sys.flags.thread_inherit_context` is set to true by default " +"which causes threads created with :class:`threading.Thread` to start with a " +"copy of the :class:`~contextvars.Context()` of the caller " +"of :meth:`~threading.Thread.start`. In the default GIL-enabled build, the " +"flag defaults to false so threads start with an " +"empty :class:`~contextvars.Context()`." +msgstr "" + +#: ../../howto/free-threading-python.rst:180 +msgid "Warning filters" +msgstr "" + +#: ../../howto/free-threading-python.rst:182 +msgid "" +"In the free-threaded build, the " +"flag :data:`~sys.flags.context_aware_warnings` is set to true by default. " +"In the default GIL-enabled build, the flag defaults to false. If the flag " +"is true then the :class:`warnings.catch_warnings` context manager uses a " +"context variable for warning filters. If the flag is false " +"then :class:`~warnings.catch_warnings` modifies the global filters list, " +"which is not thread-safe. See the :mod:`warnings` module for more details." +msgstr "" diff --git a/howto/functional.po b/howto/functional.po new file mode 100644 index 0000000..65cfe81 --- /dev/null +++ b/howto/functional.po @@ -0,0 +1,1839 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/functional.rst:5 +msgid "Functional Programming HOWTO" +msgstr "" + +#: ../../howto/functional.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/functional.rst:7 +msgid "A. M. Kuchling" +msgstr "" + +#: ../../howto/functional.rst:0 +msgid "Release" +msgstr "" + +#: ../../howto/functional.rst:8 +msgid "0.32" +msgstr "" + +#: ../../howto/functional.rst:10 +msgid "" +"In this document, we'll take a tour of Python's features suitable for " +"implementing programs in a functional style. After an introduction to the " +"concepts of functional programming, we'll look at language features such " +"as :term:`iterator`\\s and :term:`generator`\\s and relevant library modules " +"such as :mod:`itertools` and :mod:`functools`." +msgstr "" + +#: ../../howto/functional.rst:18 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../howto/functional.rst:20 +msgid "" +"This section explains the basic concept of functional programming; if you're " +"just interested in learning about Python language features, skip to the next " +"section on :ref:`functional-howto-iterators`." +msgstr "" + +#: ../../howto/functional.rst:24 +msgid "" +"Programming languages support decomposing problems in several different ways:" +msgstr "" + +#: ../../howto/functional.rst:26 +msgid "" +"Most programming languages are **procedural**: programs are lists of " +"instructions that tell the computer what to do with the program's input. C, " +"Pascal, and even Unix shells are procedural languages." +msgstr "" + +#: ../../howto/functional.rst:30 +msgid "" +"In **declarative** languages, you write a specification that describes the " +"problem to be solved, and the language implementation figures out how to " +"perform the computation efficiently. SQL is the declarative language you're " +"most likely to be familiar with; a SQL query describes the data set you want " +"to retrieve, and the SQL engine decides whether to scan tables or use " +"indexes, which subclauses should be performed first, etc." +msgstr "" + +#: ../../howto/functional.rst:37 +msgid "" +"**Object-oriented** programs manipulate collections of objects. Objects " +"have internal state and support methods that query or modify this internal " +"state in some way. Smalltalk and Java are object-oriented languages. C++ " +"and Python are languages that support object-oriented programming, but don't " +"force the use of object-oriented features." +msgstr "" + +#: ../../howto/functional.rst:43 +msgid "" +"**Functional** programming decomposes a problem into a set of functions. " +"Ideally, functions only take inputs and produce outputs, and don't have any " +"internal state that affects the output produced for a given input. Well-" +"known functional languages include the ML family (Standard ML, OCaml, and " +"other variants) and Haskell." +msgstr "" + +#: ../../howto/functional.rst:49 +msgid "" +"The designers of some computer languages choose to emphasize one particular " +"approach to programming. This often makes it difficult to write programs " +"that use a different approach. Other languages are multi-paradigm languages " +"that support several different approaches. Lisp, C++, and Python are multi-" +"paradigm; you can write programs or libraries that are largely procedural, " +"object-oriented, or functional in all of these languages. In a large " +"program, different sections might be written using different approaches; the " +"GUI might be object-oriented while the processing logic is procedural or " +"functional, for example." +msgstr "" + +#: ../../howto/functional.rst:60 +msgid "" +"In a functional program, input flows through a set of functions. Each " +"function operates on its input and produces some output. Functional style " +"discourages functions with side effects that modify internal state or make " +"other changes that aren't visible in the function's return value. Functions " +"that have no side effects at all are called **purely functional**. Avoiding " +"side effects means not using data structures that get updated as a program " +"runs; every function's output must only depend on its input." +msgstr "" + +#: ../../howto/functional.rst:68 +msgid "" +"Some languages are very strict about purity and don't even have assignment " +"statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all " +"side effects, such as printing to the screen or writing to a disk file. " +"Another example is a call to the :func:`print` or :func:`time.sleep` " +"function, neither of which returns a useful value. Both are called only for " +"their side effects of sending some text to the screen or pausing execution " +"for a second." +msgstr "" + +#: ../../howto/functional.rst:75 +msgid "" +"Python programs written in functional style usually won't go to the extreme " +"of avoiding all I/O or all assignments; instead, they'll provide a " +"functional-appearing interface but will use non-functional features " +"internally. For example, the implementation of a function will still use " +"assignments to local variables, but won't modify global variables or have " +"other side effects." +msgstr "" + +#: ../../howto/functional.rst:81 +msgid "" +"Functional programming can be considered the opposite of object-oriented " +"programming. Objects are little capsules containing some internal state " +"along with a collection of method calls that let you modify this state, and " +"programs consist of making the right set of state changes. Functional " +"programming wants to avoid state changes as much as possible and works with " +"data flowing between functions. In Python you might combine the two " +"approaches by writing functions that take and return instances representing " +"objects in your application (e-mail messages, transactions, etc.)." +msgstr "" + +#: ../../howto/functional.rst:90 +msgid "" +"Functional design may seem like an odd constraint to work under. Why should " +"you avoid objects and side effects? There are theoretical and practical " +"advantages to the functional style:" +msgstr "" + +#: ../../howto/functional.rst:94 +msgid "Formal provability." +msgstr "" + +#: ../../howto/functional.rst:95 +msgid "Modularity." +msgstr "" + +#: ../../howto/functional.rst:96 +msgid "Composability." +msgstr "" + +#: ../../howto/functional.rst:97 +msgid "Ease of debugging and testing." +msgstr "" + +#: ../../howto/functional.rst:101 +msgid "Formal provability" +msgstr "" + +#: ../../howto/functional.rst:103 +msgid "" +"A theoretical benefit is that it's easier to construct a mathematical proof " +"that a functional program is correct." +msgstr "" + +#: ../../howto/functional.rst:106 +msgid "" +"For a long time researchers have been interested in finding ways to " +"mathematically prove programs correct. This is different from testing a " +"program on numerous inputs and concluding that its output is usually " +"correct, or reading a program's source code and concluding that the code " +"looks right; the goal is instead a rigorous proof that a program produces " +"the right result for all possible inputs." +msgstr "" + +#: ../../howto/functional.rst:113 +msgid "" +"The technique used to prove programs correct is to write down " +"**invariants**, properties of the input data and of the program's variables " +"that are always true. For each line of code, you then show that if " +"invariants X and Y are true **before** the line is executed, the slightly " +"different invariants X' and Y' are true **after** the line is executed. " +"This continues until you reach the end of the program, at which point the " +"invariants should match the desired conditions on the program's output." +msgstr "" + +#: ../../howto/functional.rst:121 +msgid "" +"Functional programming's avoidance of assignments arose because assignments " +"are difficult to handle with this technique; assignments can break " +"invariants that were true before the assignment without producing any new " +"invariants that can be propagated onward." +msgstr "" + +#: ../../howto/functional.rst:126 +msgid "" +"Unfortunately, proving programs correct is largely impractical and not " +"relevant to Python software. Even trivial programs require proofs that are " +"several pages long; the proof of correctness for a moderately complicated " +"program would be enormous, and few or none of the programs you use daily " +"(the Python interpreter, your XML parser, your web browser) could be proven " +"correct. Even if you wrote down or generated a proof, there would then be " +"the question of verifying the proof; maybe there's an error in it, and you " +"wrongly believe you've proved the program correct." +msgstr "" + +#: ../../howto/functional.rst:137 +msgid "Modularity" +msgstr "" + +#: ../../howto/functional.rst:139 +msgid "" +"A more practical benefit of functional programming is that it forces you to " +"break apart your problem into small pieces. Programs are more modular as a " +"result. It's easier to specify and write a small function that does one " +"thing than a large function that performs a complicated transformation. " +"Small functions are also easier to read and to check for errors." +msgstr "" + +#: ../../howto/functional.rst:147 +msgid "Ease of debugging and testing" +msgstr "" + +#: ../../howto/functional.rst:149 +msgid "Testing and debugging a functional-style program is easier." +msgstr "" + +#: ../../howto/functional.rst:151 +msgid "" +"Debugging is simplified because functions are generally small and clearly " +"specified. When a program doesn't work, each function is an interface point " +"where you can check that the data are correct. You can look at the " +"intermediate inputs and outputs to quickly isolate the function that's " +"responsible for a bug." +msgstr "" + +#: ../../howto/functional.rst:156 +msgid "" +"Testing is easier because each function is a potential subject for a unit " +"test. Functions don't depend on system state that needs to be replicated " +"before running a test; instead you only have to synthesize the right input " +"and then check that the output matches expectations." +msgstr "" + +#: ../../howto/functional.rst:163 +msgid "Composability" +msgstr "" + +#: ../../howto/functional.rst:165 +msgid "" +"As you work on a functional-style program, you'll write a number of " +"functions with varying inputs and outputs. Some of these functions will be " +"unavoidably specialized to a particular application, but others will be " +"useful in a wide variety of programs. For example, a function that takes a " +"directory path and returns all the XML files in the directory, or a function " +"that takes a filename and returns its contents, can be applied to many " +"different situations." +msgstr "" + +#: ../../howto/functional.rst:172 +msgid "" +"Over time you'll form a personal library of utilities. Often you'll " +"assemble new programs by arranging existing functions in a new configuration " +"and writing a few functions specialized for the current task." +msgstr "" + +#: ../../howto/functional.rst:180 +msgid "Iterators" +msgstr "Iterátorok" + +#: ../../howto/functional.rst:182 +msgid "" +"I'll start by looking at a Python language feature that's an important " +"foundation for writing functional-style programs: iterators." +msgstr "" + +#: ../../howto/functional.rst:185 +msgid "" +"An iterator is an object representing a stream of data; this object returns " +"the data one element at a time. A Python iterator must support a method " +"called :meth:`~iterator.__next__` that takes no arguments and always returns " +"the next element of the stream. If there are no more elements in the " +"stream, :meth:`~iterator.__next__` must raise the :exc:`StopIteration` " +"exception. Iterators don't have to be finite, though; it's perfectly " +"reasonable to write an iterator that produces an infinite stream of data." +msgstr "" + +#: ../../howto/functional.rst:193 +msgid "" +"The built-in :func:`iter` function takes an arbitrary object and tries to " +"return an iterator that will return the object's contents or elements, " +"raising :exc:`TypeError` if the object doesn't support iteration. Several " +"of Python's built-in data types support iteration, the most common being " +"lists and dictionaries. An object is called :term:`iterable` if you can get " +"an iterator for it." +msgstr "" + +#: ../../howto/functional.rst:200 +msgid "You can experiment with the iteration interface manually:" +msgstr "" + +#: ../../howto/functional.rst:218 +msgid "" +"Python expects iterable objects in several different contexts, the most " +"important being the :keyword:`for` statement. In the statement ``for X in " +"Y``, Y must be an iterator or some object for which :func:`iter` can create " +"an iterator. These two statements are equivalent::" +msgstr "" + +#: ../../howto/functional.rst:224 +msgid "" +"for i in iter(obj):\n" +" print(i)\n" +"\n" +"for i in obj:\n" +" print(i)" +msgstr "" + +#: ../../howto/functional.rst:230 +msgid "" +"Iterators can be materialized as lists or tuples by using the :func:`list` " +"or :func:`tuple` constructor functions:" +msgstr "" + +#: ../../howto/functional.rst:239 +msgid "" +"Sequence unpacking also supports iterators: if you know an iterator will " +"return N elements, you can unpack them into an N-tuple:" +msgstr "" + +#: ../../howto/functional.rst:248 +msgid "" +"Built-in functions such as :func:`max` and :func:`min` can take a single " +"iterator argument and will return the largest or smallest element. The " +"``\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " +"iterator`` is true if X is found in the stream returned by the iterator. " +"You'll run into obvious problems if the iterator is " +"infinite; :func:`max`, :func:`min` will never return, and if the element X " +"never appears in the stream, the ``\"in\"`` and ``\"not in\"`` operators " +"won't return either." +msgstr "" + +#: ../../howto/functional.rst:256 +msgid "" +"Note that you can only go forward in an iterator; there's no way to get the " +"previous element, reset the iterator, or make a copy of it. Iterator " +"objects can optionally provide these additional capabilities, but the " +"iterator protocol only specifies the :meth:`~iterator.__next__` method. " +"Functions may therefore consume all of the iterator's output, and if you " +"need to do something different with the same stream, you'll have to create a " +"new iterator." +msgstr "" + +#: ../../howto/functional.rst:266 +msgid "Data Types That Support Iterators" +msgstr "" + +#: ../../howto/functional.rst:268 +msgid "" +"We've already seen how lists and tuples support iterators. In fact, any " +"Python sequence type, such as strings, will automatically support creation " +"of an iterator." +msgstr "" + +#: ../../howto/functional.rst:272 +msgid "" +"Calling :func:`iter` on a dictionary returns an iterator that will loop over " +"the dictionary's keys::" +msgstr "" + +#: ../../howto/functional.rst:275 +msgid "" +">>> m = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6,\n" +"... 'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, 'Dec': 12}\n" +">>> for key in m:\n" +"... print(key, m[key])\n" +"Jan 1\n" +"Feb 2\n" +"Mar 3\n" +"Apr 4\n" +"May 5\n" +"Jun 6\n" +"Jul 7\n" +"Aug 8\n" +"Sep 9\n" +"Oct 10\n" +"Nov 11\n" +"Dec 12" +msgstr "" + +#: ../../howto/functional.rst:292 +msgid "" +"Note that starting with Python 3.7, dictionary iteration order is guaranteed " +"to be the same as the insertion order. In earlier versions, the behaviour " +"was unspecified and could vary between implementations." +msgstr "" + +#: ../../howto/functional.rst:296 +msgid "" +"Applying :func:`iter` to a dictionary always loops over the keys, but " +"dictionaries have methods that return other iterators. If you want to " +"iterate over values or key/value pairs, you can explicitly call " +"the :meth:`~dict.values` or :meth:`~dict.items` methods to get an " +"appropriate iterator." +msgstr "" + +#: ../../howto/functional.rst:302 +msgid "" +"The :func:`dict` constructor can accept an iterator that returns a finite " +"stream of ``(key, value)`` tuples:" +msgstr "" + +#: ../../howto/functional.rst:309 +msgid "" +"Files also support iteration by calling the :meth:`~io.TextIOBase.readline` " +"method until there are no more lines in the file. This means you can read " +"each line of a file like this::" +msgstr "" + +#: ../../howto/functional.rst:313 +msgid "" +"for line in file:\n" +" # do something for each line\n" +" ..." +msgstr "" + +#: ../../howto/functional.rst:317 +msgid "" +"Sets can take their contents from an iterable and let you iterate over the " +"set's elements::" +msgstr "" + +#: ../../howto/functional.rst:320 +msgid "" +">>> S = {2, 3, 5, 7, 11, 13}\n" +">>> for i in S:\n" +"... print(i)\n" +"2\n" +"3\n" +"5\n" +"7\n" +"11\n" +"13" +msgstr "" + +#: ../../howto/functional.rst:333 +msgid "Generator expressions and list comprehensions" +msgstr "" + +#: ../../howto/functional.rst:335 +msgid "" +"Two common operations on an iterator's output are 1) performing some " +"operation for every element, 2) selecting a subset of elements that meet " +"some condition. For example, given a list of strings, you might want to " +"strip off trailing whitespace from each line or extract all the strings " +"containing a given substring." +msgstr "" + +#: ../../howto/functional.rst:341 +msgid "" +"List comprehensions and generator expressions (short form: \"listcomps\" and " +"\"genexps\") are a concise notation for such operations, borrowed from the " +"functional programming language Haskell (https://www.haskell.org/). You can " +"strip all the whitespace from a stream of strings with the following code::" +msgstr "" + +#: ../../howto/functional.rst:346 +msgid "" +">>> line_list = [' line 1\\n', 'line 2 \\n', ' \\n', '']\n" +"\n" +">>> # Generator expression -- returns iterator\n" +">>> stripped_iter = (line.strip() for line in line_list)\n" +"\n" +">>> # List comprehension -- returns list\n" +">>> stripped_list = [line.strip() for line in line_list]" +msgstr "" + +#: ../../howto/functional.rst:354 +msgid "" +"You can select only certain elements by adding an ``\"if\"`` condition::" +msgstr "" + +#: ../../howto/functional.rst:356 +msgid "" +">>> stripped_list = [line.strip() for line in line_list\n" +"... if line != \"\"]" +msgstr "" + +#: ../../howto/functional.rst:359 +msgid "" +"With a list comprehension, you get back a Python list; ``stripped_list`` is " +"a list containing the resulting lines, not an iterator. Generator " +"expressions return an iterator that computes the values as necessary, not " +"needing to materialize all the values at once. This means that list " +"comprehensions aren't useful if you're working with iterators that return an " +"infinite stream or a very large amount of data. Generator expressions are " +"preferable in these situations." +msgstr "" + +#: ../../howto/functional.rst:366 +msgid "" +"Generator expressions are surrounded by parentheses (\"()\") and list " +"comprehensions are surrounded by square brackets (\"[]\"). Generator " +"expressions have the form::" +msgstr "" + +#: ../../howto/functional.rst:370 +msgid "" +"( expression for expr in sequence1\n" +" if condition1\n" +" for expr2 in sequence2\n" +" if condition2\n" +" for expr3 in sequence3\n" +" ...\n" +" if condition3\n" +" for exprN in sequenceN\n" +" if conditionN )" +msgstr "" + +#: ../../howto/functional.rst:380 +msgid "" +"Again, for a list comprehension only the outside brackets are different " +"(square brackets instead of parentheses)." +msgstr "" + +#: ../../howto/functional.rst:383 +msgid "" +"The elements of the generated output will be the successive values of " +"``expression``. The ``if`` clauses are all optional; if present, " +"``expression`` is only evaluated and added to the result when ``condition`` " +"is true." +msgstr "" + +#: ../../howto/functional.rst:387 +msgid "" +"Generator expressions always have to be written inside parentheses, but the " +"parentheses signalling a function call also count. If you want to create an " +"iterator that will be immediately passed to a function you can write::" +msgstr "" + +#: ../../howto/functional.rst:391 +msgid "obj_total = sum(obj.count for obj in list_all_objects())" +msgstr "" + +#: ../../howto/functional.rst:393 +msgid "" +"The ``for...in`` clauses contain the sequences to be iterated over. The " +"sequences do not have to be the same length, because they are iterated over " +"from left to right, **not** in parallel. For each element in ``sequence1``, " +"``sequence2`` is looped over from the beginning. ``sequence3`` is then " +"looped over for each resulting pair of elements from ``sequence1`` and " +"``sequence2``." +msgstr "" + +#: ../../howto/functional.rst:399 +msgid "" +"To put it another way, a list comprehension or generator expression is " +"equivalent to the following Python code::" +msgstr "" + +#: ../../howto/functional.rst:402 +msgid "" +"for expr1 in sequence1:\n" +" if not (condition1):\n" +" continue # Skip this element\n" +" for expr2 in sequence2:\n" +" if not (condition2):\n" +" continue # Skip this element\n" +" ...\n" +" for exprN in sequenceN:\n" +" if not (conditionN):\n" +" continue # Skip this element\n" +"\n" +" # Output the value of\n" +" # the expression." +msgstr "" + +#: ../../howto/functional.rst:416 +msgid "" +"This means that when there are multiple ``for...in`` clauses but no ``if`` " +"clauses, the length of the resulting output will be equal to the product of " +"the lengths of all the sequences. If you have two lists of length 3, the " +"output list is 9 elements long:" +msgstr "" + +#: ../../howto/functional.rst:428 +msgid "" +"To avoid introducing an ambiguity into Python's grammar, if ``expression`` " +"is creating a tuple, it must be surrounded with parentheses. The first list " +"comprehension below is a syntax error, while the second one is correct::" +msgstr "" + +#: ../../howto/functional.rst:432 +msgid "" +"# Syntax error\n" +"[x, y for x in seq1 for y in seq2]\n" +"# Correct\n" +"[(x, y) for x in seq1 for y in seq2]" +msgstr "" + +#: ../../howto/functional.rst:439 +msgid "Generators" +msgstr "Generátorok" + +#: ../../howto/functional.rst:441 +msgid "" +"Generators are a special class of functions that simplify the task of " +"writing iterators. Regular functions compute a value and return it, but " +"generators return an iterator that returns a stream of values." +msgstr "" + +#: ../../howto/functional.rst:445 +msgid "" +"You're doubtless familiar with how regular function calls work in Python or " +"C. When you call a function, it gets a private namespace where its local " +"variables are created. When the function reaches a ``return`` statement, " +"the local variables are destroyed and the value is returned to the caller. " +"A later call to the same function creates a new private namespace and a " +"fresh set of local variables. But, what if the local variables weren't " +"thrown away on exiting a function? What if you could later resume the " +"function where it left off? This is what generators provide; they can be " +"thought of as resumable functions." +msgstr "" + +#: ../../howto/functional.rst:454 +msgid "Here's the simplest example of a generator function:" +msgstr "" + +#: ../../howto/functional.rst:460 +msgid "" +"Any function containing a :keyword:`yield` keyword is a generator function; " +"this is detected by Python's :term:`bytecode` compiler which compiles the " +"function specially as a result." +msgstr "" + +#: ../../howto/functional.rst:464 +msgid "" +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the ``yield`` expression, the generator outputs the value of " +"``i``, similar to a ``return`` statement. The big difference between " +"``yield`` and a ``return`` statement is that on reaching a ``yield`` the " +"generator's state of execution is suspended and local variables are " +"preserved. On the next call to the generator's :meth:`~generator.__next__` " +"method, the function will resume executing." +msgstr "" + +#: ../../howto/functional.rst:473 +msgid "Here's a sample usage of the ``generate_ints()`` generator:" +msgstr "" + +#: ../../howto/functional.rst:490 +msgid "" +"You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " +"generate_ints(3)``." +msgstr "" + +#: ../../howto/functional.rst:493 +msgid "" +"Inside a generator function, ``return value`` causes " +"``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " +"method. Once this happens, or the bottom of the function is reached, the " +"procession of values ends and the generator cannot yield any further values." +msgstr "" + +#: ../../howto/functional.rst:498 +msgid "" +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`~iterator.__next__` " +"method increment ``self.count`` and return it. However, for a moderately " +"complicated generator, writing a corresponding class can be much messier." +msgstr "" + +#: ../../howto/functional.rst:506 +msgid "" +"The test suite included with Python's library, :source:`Lib/test/" +"test_generators.py`, contains a number of more interesting examples. Here's " +"one generator that implements an in-order traversal of a tree using " +"generators recursively. ::" +msgstr "" + +#: ../../howto/functional.rst:511 +msgid "" +"# A recursive generator that generates Tree leaves in in-order.\n" +"def inorder(t):\n" +" if t:\n" +" for x in inorder(t.left):\n" +" yield x\n" +"\n" +" yield t.label\n" +"\n" +" for x in inorder(t.right):\n" +" yield x" +msgstr "" + +#: ../../howto/functional.rst:522 +msgid "" +"Two other examples in ``test_generators.py`` produce solutions for the N-" +"Queens problem (placing N queens on an NxN chess board so that no queen " +"threatens another) and the Knight's Tour (finding a route that takes a " +"knight to every square of an NxN chessboard without visiting any square " +"twice)." +msgstr "" + +#: ../../howto/functional.rst:530 +msgid "Passing values into a generator" +msgstr "" + +#: ../../howto/functional.rst:532 +msgid "" +"In Python 2.4 and earlier, generators only produced output. Once a " +"generator's code was invoked to create an iterator, there was no way to pass " +"any new information into the function when its execution is resumed. You " +"could hack together this ability by making the generator look at a global " +"variable or by passing in some mutable object that callers then modify, but " +"these approaches are messy." +msgstr "" + +#: ../../howto/functional.rst:539 +msgid "" +"In Python 2.5 there's a simple way to pass values into a " +"generator. :keyword:`yield` became an expression, returning a value that can " +"be assigned to a variable or otherwise operated on::" +msgstr "" + +#: ../../howto/functional.rst:543 +msgid "val = (yield i)" +msgstr "" + +#: ../../howto/functional.rst:545 +msgid "" +"I recommend that you **always** put parentheses around a ``yield`` " +"expression when you're doing something with the returned value, as in the " +"above example. The parentheses aren't always necessary, but it's easier to " +"always add them instead of having to remember when they're needed." +msgstr "" + +#: ../../howto/functional.rst:550 +msgid "" +"(:pep:`342` explains the exact rules, which are that a ``yield``-expression " +"must always be parenthesized except when it occurs at the top-level " +"expression on the right-hand side of an assignment. This means you can " +"write ``val = yield i`` but have to use parentheses when there's an " +"operation, as in ``val = (yield i) + 12``.)" +msgstr "" + +#: ../../howto/functional.rst:556 +msgid "" +"Values are sent into a generator by calling its :meth:`send(value) " +"` method. This method resumes the generator's code and the " +"``yield`` expression returns the specified value. If the " +"regular :meth:`~generator.__next__` method is called, the ``yield`` returns " +"``None``." +msgstr "" + +#: ../../howto/functional.rst:561 +msgid "" +"Here's a simple counter that increments by 1 and allows changing the value " +"of the internal counter." +msgstr "" + +#: ../../howto/functional.rst:564 +msgid "" +"def counter(maximum):\n" +" i = 0\n" +" while i < maximum:\n" +" val = (yield i)\n" +" # If value provided, change counter\n" +" if val is not None:\n" +" i = val\n" +" else:\n" +" i += 1" +msgstr "" + +#: ../../howto/functional.rst:576 +msgid "And here's an example of changing the counter:" +msgstr "" + +#: ../../howto/functional.rst:593 +msgid "" +"Because ``yield`` will often be returning ``None``, you should always check " +"for this case. Don't just use its value in expressions unless you're sure " +"that the :meth:`~generator.send` method will be the only method used to " +"resume your generator function." +msgstr "" + +#: ../../howto/functional.rst:598 +msgid "" +"In addition to :meth:`~generator.send`, there are two other methods on " +"generators:" +msgstr "" + +#: ../../howto/functional.rst:601 +msgid "" +":meth:`throw(value) ` is used to raise an exception inside " +"the generator; the exception is raised by the ``yield`` expression where the " +"generator's execution is paused." +msgstr "" + +#: ../../howto/functional.rst:605 +msgid "" +":meth:`~generator.close` sends a :exc:`GeneratorExit` exception to the " +"generator to terminate the iteration. On receiving this exception, the " +"generator's code must either raise :exc:`GeneratorExit` " +"or :exc:`StopIteration`; catching the exception and doing anything else is " +"illegal and will trigger a :exc:`RuntimeError`. :meth:`~generator.close` " +"will also be called by Python's garbage collector when the generator is " +"garbage-collected." +msgstr "" + +#: ../../howto/functional.rst:613 +msgid "" +"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " +"suggest using a ``try: ... finally:`` suite instead of " +"catching :exc:`GeneratorExit`." +msgstr "" + +#: ../../howto/functional.rst:616 +msgid "" +"The cumulative effect of these changes is to turn generators from one-way " +"producers of information into both producers and consumers." +msgstr "" + +#: ../../howto/functional.rst:619 +msgid "" +"Generators also become **coroutines**, a more generalized form of " +"subroutines. Subroutines are entered at one point and exited at another " +"point (the top of the function, and a ``return`` statement), but coroutines " +"can be entered, exited, and resumed at many different points (the ``yield`` " +"statements)." +msgstr "" + +#: ../../howto/functional.rst:626 +msgid "Built-in functions" +msgstr "" + +#: ../../howto/functional.rst:628 +msgid "" +"Let's look in more detail at built-in functions often used with iterators." +msgstr "" + +#: ../../howto/functional.rst:630 +msgid "" +"Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " +"the features of generator expressions:" +msgstr "" + +#: ../../howto/functional.rst:633 +msgid "" +":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" +msgstr "" + +#: ../../howto/functional.rst:634 +msgid "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." +msgstr "" + +#: ../../howto/functional.rst:644 +msgid "You can of course achieve the same effect with a list comprehension." +msgstr "" + +#: ../../howto/functional.rst:646 +msgid "" +":func:`filter(predicate, iter) ` returns an iterator over all the " +"sequence elements that meet a certain condition, and is similarly duplicated " +"by list comprehensions. A **predicate** is a function that returns the " +"truth value of some condition; for use with :func:`filter`, the predicate " +"must take a single value." +msgstr "" + +#: ../../howto/functional.rst:659 +msgid "This can also be written as a list comprehension:" +msgstr "" + +#: ../../howto/functional.rst:665 +msgid "" +":func:`enumerate(iter, start=0) ` counts off the elements in the " +"iterable returning 2-tuples containing the count (from *start*) and each " +"element. ::" +msgstr "" + +#: ../../howto/functional.rst:669 +msgid "" +">>> for item in enumerate(['subject', 'verb', 'object']):\n" +"... print(item)\n" +"(0, 'subject')\n" +"(1, 'verb')\n" +"(2, 'object')" +msgstr "" + +#: ../../howto/functional.rst:675 +msgid "" +":func:`enumerate` is often used when looping through a list and recording " +"the indexes at which certain conditions are met::" +msgstr "" + +#: ../../howto/functional.rst:678 +msgid "" +"f = open('data.txt', 'r')\n" +"for i, line in enumerate(f):\n" +" if line.strip() == '':\n" +" print('Blank line at line #%i' % i)" +msgstr "" + +#: ../../howto/functional.rst:683 +msgid "" +":func:`sorted(iterable, key=None, reverse=False) ` collects all the " +"elements of the iterable into a list, sorts the list, and returns the sorted " +"result. The *key* and *reverse* arguments are passed through to the " +"constructed list's :meth:`~list.sort` method. ::" +msgstr "" + +#: ../../howto/functional.rst:688 +msgid "" +">>> import random\n" +">>> # Generate 8 random numbers between [0, 10000)\n" +">>> rand_list = random.sample(range(10000), 8)\n" +">>> rand_list\n" +"[769, 7953, 9828, 6431, 8442, 9878, 6213, 2207]\n" +">>> sorted(rand_list)\n" +"[769, 2207, 6213, 6431, 7953, 8442, 9828, 9878]\n" +">>> sorted(rand_list, reverse=True)\n" +"[9878, 9828, 8442, 7953, 6431, 6213, 2207, 769]" +msgstr "" + +#: ../../howto/functional.rst:698 +msgid "" +"(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" +msgstr "" + +#: ../../howto/functional.rst:701 +msgid "" +"The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " +"the truth values of an iterable's contents. :func:`any` returns ``True`` if " +"any element in the iterable is a true value, and :func:`all` returns " +"``True`` if all of the elements are true values:" +msgstr "" + +#: ../../howto/functional.rst:720 +msgid "" +":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " +"and returns them in a tuple::" +msgstr "" + +#: ../../howto/functional.rst:723 +msgid "" +"zip(['a', 'b', 'c'], (1, 2, 3)) =>\n" +" ('a', 1), ('b', 2), ('c', 3)" +msgstr "" + +#: ../../howto/functional.rst:726 +msgid "" +"It doesn't construct an in-memory list and exhaust all the input iterators " +"before returning; instead tuples are constructed and returned only if " +"they're requested. (The technical term for this behaviour is `lazy " +"evaluation `__.)" +msgstr "" + +#: ../../howto/functional.rst:731 +msgid "" +"This iterator is intended to be used with iterables that are all of the same " +"length. If the iterables are of different lengths, the resulting stream " +"will be the same length as the shortest iterable. ::" +msgstr "" + +#: ../../howto/functional.rst:735 +msgid "" +"zip(['a', 'b'], (1, 2, 3)) =>\n" +" ('a', 1), ('b', 2)" +msgstr "" + +#: ../../howto/functional.rst:738 +msgid "" +"You should avoid doing this, though, because an element may be taken from " +"the longer iterators and discarded. This means you can't go on to use the " +"iterators further because you risk skipping a discarded element." +msgstr "" + +#: ../../howto/functional.rst:744 +msgid "The itertools module" +msgstr "" + +#: ../../howto/functional.rst:746 +msgid "" +"The :mod:`itertools` module contains a number of commonly used iterators as " +"well as functions for combining several iterators. This section will " +"introduce the module's contents by showing small examples." +msgstr "" + +#: ../../howto/functional.rst:750 +msgid "The module's functions fall into a few broad classes:" +msgstr "" + +#: ../../howto/functional.rst:752 +msgid "Functions that create a new iterator based on an existing iterator." +msgstr "" + +#: ../../howto/functional.rst:753 +msgid "Functions for treating an iterator's elements as function arguments." +msgstr "" + +#: ../../howto/functional.rst:754 +msgid "Functions for selecting portions of an iterator's output." +msgstr "" + +#: ../../howto/functional.rst:755 +msgid "A function for grouping an iterator's output." +msgstr "" + +#: ../../howto/functional.rst:758 +msgid "Creating new iterators" +msgstr "" + +#: ../../howto/functional.rst:760 +msgid "" +":func:`itertools.count(start, step) ` returns an infinite " +"stream of evenly spaced values. You can optionally supply the starting " +"number, which defaults to 0, and the interval between numbers, which " +"defaults to 1::" +msgstr "" + +#: ../../howto/functional.rst:764 +msgid "" +"itertools.count() =>\n" +" 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...\n" +"itertools.count(10) =>\n" +" 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...\n" +"itertools.count(10, 5) =>\n" +" 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, ..." +msgstr "" + +#: ../../howto/functional.rst:771 +msgid "" +":func:`itertools.cycle(iter) ` saves a copy of the contents " +"of a provided iterable and returns a new iterator that returns its elements " +"from first to last. The new iterator will repeat these elements " +"infinitely. ::" +msgstr "" + +#: ../../howto/functional.rst:775 +msgid "" +"itertools.cycle([1, 2, 3, 4, 5]) =>\n" +" 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ..." +msgstr "" + +#: ../../howto/functional.rst:778 +msgid "" +":func:`itertools.repeat(elem, [n]) ` returns the provided " +"element *n* times, or returns the element endlessly if *n* is not " +"provided. ::" +msgstr "" + +#: ../../howto/functional.rst:781 +msgid "" +"itertools.repeat('abc') =>\n" +" abc, abc, abc, abc, abc, abc, abc, abc, abc, abc, ...\n" +"itertools.repeat('abc', 5) =>\n" +" abc, abc, abc, abc, abc" +msgstr "" + +#: ../../howto/functional.rst:786 +msgid "" +":func:`itertools.chain(iterA, iterB, ...) ` takes an " +"arbitrary number of iterables as input, and returns all the elements of the " +"first iterator, then all the elements of the second, and so on, until all of " +"the iterables have been exhausted. ::" +msgstr "" + +#: ../../howto/functional.rst:791 +msgid "" +"itertools.chain(['a', 'b', 'c'], (1, 2, 3)) =>\n" +" a, b, c, 1, 2, 3" +msgstr "" + +#: ../../howto/functional.rst:794 +msgid "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"returns a stream that's a slice of the iterator. With a single *stop* " +"argument, it will return the first *stop* elements. If you supply a " +"starting index, you'll get *stop-start* elements, and if you supply a value " +"for *step*, elements will be skipped accordingly. Unlike Python's string " +"and list slicing, you can't use negative values for *start*, *stop*, or " +"*step*. ::" +msgstr "" + +#: ../../howto/functional.rst:801 +msgid "" +"itertools.islice(range(10), 8) =>\n" +" 0, 1, 2, 3, 4, 5, 6, 7\n" +"itertools.islice(range(10), 2, 8) =>\n" +" 2, 3, 4, 5, 6, 7\n" +"itertools.islice(range(10), 2, 8, 2) =>\n" +" 2, 4, 6" +msgstr "" + +#: ../../howto/functional.rst:808 +msgid "" +":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " +"returns *n* independent iterators that will all return the contents of the " +"source iterator. If you don't supply a value for *n*, the default is 2. " +"Replicating iterators requires saving some of the contents of the source " +"iterator, so this can consume significant memory if the iterator is large " +"and one of the new iterators is consumed more than the others. ::" +msgstr "" + +#: ../../howto/functional.rst:816 +msgid "" +"itertools.tee( itertools.count() ) =>\n" +" iterA, iterB\n" +"\n" +"where iterA ->\n" +" 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...\n" +"\n" +"and iterB ->\n" +" 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ..." +msgstr "" + +#: ../../howto/functional.rst:827 +msgid "Calling functions on elements" +msgstr "" + +#: ../../howto/functional.rst:829 +msgid "" +"The :mod:`operator` module contains a set of functions corresponding to " +"Python's operators. Some examples are :func:`operator.add(a, b) " +"` (adds two values), :func:`operator.ne(a, b) ` " +"(same as ``a != b``), and :func:`operator.attrgetter('id') " +"` (returns a callable that fetches the ``.id`` " +"attribute)." +msgstr "" + +#: ../../howto/functional.rst:835 +msgid "" +":func:`itertools.starmap(func, iter) ` assumes that the " +"iterable will return a stream of tuples, and calls *func* using these tuples " +"as the arguments::" +msgstr "" + +#: ../../howto/functional.rst:839 +msgid "" +"itertools.starmap(os.path.join,\n" +" [('/bin', 'python'), ('/usr', 'bin', 'java'),\n" +" ('/usr', 'bin', 'perl'), ('/usr', 'bin', 'ruby')])\n" +"=>\n" +" /bin/python, /usr/bin/java, /usr/bin/perl, /usr/bin/ruby" +msgstr "" + +#: ../../howto/functional.rst:847 +msgid "Selecting elements" +msgstr "" + +#: ../../howto/functional.rst:849 +msgid "" +"Another group of functions chooses a subset of an iterator's elements based " +"on a predicate." +msgstr "" + +#: ../../howto/functional.rst:852 +msgid "" +":func:`itertools.filterfalse(predicate, iter) ` is " +"the opposite of :func:`filter`, returning all elements for which the " +"predicate returns false::" +msgstr "" + +#: ../../howto/functional.rst:856 +msgid "" +"itertools.filterfalse(is_even, itertools.count()) =>\n" +" 1, 3, 5, 7, 9, 11, 13, 15, ..." +msgstr "" + +#: ../../howto/functional.rst:859 +msgid "" +":func:`itertools.takewhile(predicate, iter) ` returns " +"elements for as long as the predicate returns true. Once the predicate " +"returns false, the iterator will signal the end of its results. ::" +msgstr "" + +#: ../../howto/functional.rst:863 +msgid "" +"def less_than_10(x):\n" +" return x < 10\n" +"\n" +"itertools.takewhile(less_than_10, itertools.count()) =>\n" +" 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n" +"\n" +"itertools.takewhile(is_even, itertools.count()) =>\n" +" 0" +msgstr "" + +#: ../../howto/functional.rst:872 +msgid "" +":func:`itertools.dropwhile(predicate, iter) ` discards " +"elements while the predicate returns true, and then returns the rest of the " +"iterable's results. ::" +msgstr "" + +#: ../../howto/functional.rst:876 +msgid "" +"itertools.dropwhile(less_than_10, itertools.count()) =>\n" +" 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...\n" +"\n" +"itertools.dropwhile(is_even, itertools.count()) =>\n" +" 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..." +msgstr "" + +#: ../../howto/functional.rst:882 +msgid "" +":func:`itertools.compress(data, selectors) ` takes two " +"iterators and returns only those elements of *data* for which the " +"corresponding element of *selectors* is true, stopping whenever either one " +"is exhausted::" +msgstr "" + +#: ../../howto/functional.rst:886 +msgid "" +"itertools.compress([1, 2, 3, 4, 5], [True, True, False, False, True]) =>\n" +" 1, 2, 5" +msgstr "" + +#: ../../howto/functional.rst:891 +msgid "Combinatoric functions" +msgstr "" + +#: ../../howto/functional.rst:893 +msgid "" +"The :func:`itertools.combinations(iterable, r) ` " +"returns an iterator giving all possible *r*-tuple combinations of the " +"elements contained in *iterable*. ::" +msgstr "" + +#: ../../howto/functional.rst:897 +msgid "" +"itertools.combinations([1, 2, 3, 4, 5], 2) =>\n" +" (1, 2), (1, 3), (1, 4), (1, 5),\n" +" (2, 3), (2, 4), (2, 5),\n" +" (3, 4), (3, 5),\n" +" (4, 5)\n" +"\n" +"itertools.combinations([1, 2, 3, 4, 5], 3) =>\n" +" (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5),\n" +" (2, 3, 4), (2, 3, 5), (2, 4, 5),\n" +" (3, 4, 5)" +msgstr "" + +#: ../../howto/functional.rst:908 +msgid "" +"The elements within each tuple remain in the same order as *iterable* " +"returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " +"the examples above. A similar " +"function, :func:`itertools.permutations(iterable, r=None) " +"`, removes this constraint on the order, returning " +"all possible arrangements of length *r*::" +msgstr "" + +#: ../../howto/functional.rst:915 +msgid "" +"itertools.permutations([1, 2, 3, 4, 5], 2) =>\n" +" (1, 2), (1, 3), (1, 4), (1, 5),\n" +" (2, 1), (2, 3), (2, 4), (2, 5),\n" +" (3, 1), (3, 2), (3, 4), (3, 5),\n" +" (4, 1), (4, 2), (4, 3), (4, 5),\n" +" (5, 1), (5, 2), (5, 3), (5, 4)\n" +"\n" +"itertools.permutations([1, 2, 3, 4, 5]) =>\n" +" (1, 2, 3, 4, 5), (1, 2, 3, 5, 4), (1, 2, 4, 3, 5),\n" +" ...\n" +" (5, 4, 3, 2, 1)" +msgstr "" + +#: ../../howto/functional.rst:927 +msgid "" +"If you don't supply a value for *r* the length of the iterable is used, " +"meaning that all the elements are permuted." +msgstr "" + +#: ../../howto/functional.rst:930 +msgid "" +"Note that these functions produce all of the possible combinations by " +"position and don't require that the contents of *iterable* are unique::" +msgstr "" + +#: ../../howto/functional.rst:933 +msgid "" +"itertools.permutations('aba', 3) =>\n" +" ('a', 'b', 'a'), ('a', 'a', 'b'), ('b', 'a', 'a'),\n" +" ('b', 'a', 'a'), ('a', 'a', 'b'), ('a', 'b', 'a')" +msgstr "" + +#: ../../howto/functional.rst:937 +msgid "" +"The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " +"strings came from different positions." +msgstr "" + +#: ../../howto/functional.rst:940 +msgid "" +"The :func:`itertools.combinations_with_replacement(iterable, r) " +"` function relaxes a different " +"constraint: elements can be repeated within a single tuple. Conceptually an " +"element is selected for the first position of each tuple and then is " +"replaced before the second element is selected. ::" +msgstr "" + +#: ../../howto/functional.rst:946 +msgid "" +"itertools.combinations_with_replacement([1, 2, 3, 4, 5], 2) =>\n" +" (1, 1), (1, 2), (1, 3), (1, 4), (1, 5),\n" +" (2, 2), (2, 3), (2, 4), (2, 5),\n" +" (3, 3), (3, 4), (3, 5),\n" +" (4, 4), (4, 5),\n" +" (5, 5)" +msgstr "" + +#: ../../howto/functional.rst:955 +msgid "Grouping elements" +msgstr "" + +#: ../../howto/functional.rst:957 +msgid "" +"The last function I'll discuss, :func:`itertools.groupby(iter, " +"key_func=None) `, is the most complicated. " +"``key_func(elem)`` is a function that can compute a key value for each " +"element returned by the iterable. If you don't supply a key function, the " +"key is simply each element itself." +msgstr "" + +#: ../../howto/functional.rst:962 +msgid "" +":func:`~itertools.groupby` collects all the consecutive elements from the " +"underlying iterable that have the same key value, and returns a stream of 2-" +"tuples containing a key value and an iterator for the elements with that key." +msgstr "" + +#: ../../howto/functional.rst:968 +msgid "" +"city_list = [('Decatur', 'AL'), ('Huntsville', 'AL'), ('Selma', 'AL'),\n" +" ('Anchorage', 'AK'), ('Nome', 'AK'),\n" +" ('Flagstaff', 'AZ'), ('Phoenix', 'AZ'), ('Tucson', 'AZ'),\n" +" ...\n" +" ]\n" +"\n" +"def get_state(city_state):\n" +" return city_state[1]\n" +"\n" +"itertools.groupby(city_list, get_state) =>\n" +" ('AL', iterator-1),\n" +" ('AK', iterator-2),\n" +" ('AZ', iterator-3), ...\n" +"\n" +"where\n" +"iterator-1 =>\n" +" ('Decatur', 'AL'), ('Huntsville', 'AL'), ('Selma', 'AL')\n" +"iterator-2 =>\n" +" ('Anchorage', 'AK'), ('Nome', 'AK')\n" +"iterator-3 =>\n" +" ('Flagstaff', 'AZ'), ('Phoenix', 'AZ'), ('Tucson', 'AZ')" +msgstr "" + +#: ../../howto/functional.rst:990 +msgid "" +":func:`~itertools.groupby` assumes that the underlying iterable's contents " +"will already be sorted based on the key. Note that the returned iterators " +"also use the underlying iterable, so you have to consume the results of " +"iterator-1 before requesting iterator-2 and its corresponding key." +msgstr "" + +#: ../../howto/functional.rst:997 +msgid "The functools module" +msgstr "" + +#: ../../howto/functional.rst:999 +msgid "" +"The :mod:`functools` module contains some higher-order functions. A **higher-" +"order function** takes one or more functions as input and returns a new " +"function. The most useful tool in this module is " +"the :func:`functools.partial` function." +msgstr "" + +#: ../../howto/functional.rst:1004 +msgid "" +"For programs written in a functional style, you'll sometimes want to " +"construct variants of existing functions that have some of the parameters " +"filled in. Consider a Python function ``f(a, b, c)``; you may wish to create " +"a new function ``g(b, c)`` that's equivalent to ``f(1, b, c)``; you're " +"filling in a value for one of ``f()``'s parameters. This is called " +"\"partial function application\"." +msgstr "" + +#: ../../howto/functional.rst:1010 +msgid "" +"The constructor for :func:`~functools.partial` takes the arguments " +"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " +"resulting object is callable, so you can just call it to invoke ``function`` " +"with the filled-in arguments." +msgstr "" + +#: ../../howto/functional.rst:1015 +msgid "Here's a small but realistic example::" +msgstr "" + +#: ../../howto/functional.rst:1017 +msgid "" +"import functools\n" +"\n" +"def log(message, subsystem):\n" +" \"\"\"Write the contents of 'message' to the specified subsystem.\"\"\"\n" +" print('%s: %s' % (subsystem, message))\n" +" ...\n" +"\n" +"server_log = functools.partial(log, subsystem='server')\n" +"server_log('Unable to open socket')" +msgstr "" + +#: ../../howto/functional.rst:1027 +msgid "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"cumulatively performs an operation on all the iterable's elements and, " +"therefore, can't be applied to infinite iterables. *func* must be a function " +"that takes two elements and returns a single " +"value. :func:`functools.reduce` takes the first two elements A and B " +"returned by the iterator and calculates ``func(A, B)``. It then requests " +"the third element, C, calculates ``func(func(A, B), C)``, combines this " +"result with the fourth element returned, and continues until the iterable is " +"exhausted. If the iterable returns no values at all, a :exc:`TypeError` " +"exception is raised. If the initial value is supplied, it's used as a " +"starting point and ``func(initial_value, A)`` is the first calculation. ::" +msgstr "" + +#: ../../howto/functional.rst:1039 +msgid "" +">>> import operator, functools\n" +">>> functools.reduce(operator.concat, ['A', 'BB', 'C'])\n" +"'ABBC'\n" +">>> functools.reduce(operator.concat, [])\n" +"Traceback (most recent call last):\n" +" ...\n" +"TypeError: reduce() of empty sequence with no initial value\n" +">>> functools.reduce(operator.mul, [1, 2, 3], 1)\n" +"6\n" +">>> functools.reduce(operator.mul, [], 1)\n" +"1" +msgstr "" + +#: ../../howto/functional.rst:1051 +msgid "" +"If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up " +"all the elements of the iterable. This case is so common that there's a " +"special built-in called :func:`sum` to compute it:" +msgstr "" + +#: ../../howto/functional.rst:1063 +msgid "" +"For many uses of :func:`functools.reduce`, though, it can be clearer to just " +"write the obvious :keyword:`for` loop::" +msgstr "" + +#: ../../howto/functional.rst:1066 +msgid "" +"import functools\n" +"# Instead of:\n" +"product = functools.reduce(operator.mul, [1, 2, 3], 1)\n" +"\n" +"# You can write:\n" +"product = 1\n" +"for i in [1, 2, 3]:\n" +" product *= i" +msgstr "" + +#: ../../howto/functional.rst:1075 +msgid "" +"A related function is :func:`itertools.accumulate(iterable, " +"func=operator.add) `. It performs the same " +"calculation, but instead of returning only the final " +"result, :func:`~itertools.accumulate` returns an iterator that also yields " +"each partial result::" +msgstr "" + +#: ../../howto/functional.rst:1080 +msgid "" +"itertools.accumulate([1, 2, 3, 4, 5]) =>\n" +" 1, 3, 6, 10, 15\n" +"\n" +"itertools.accumulate([1, 2, 3, 4, 5], operator.mul) =>\n" +" 1, 2, 6, 24, 120" +msgstr "" + +#: ../../howto/functional.rst:1088 +msgid "The operator module" +msgstr "" + +#: ../../howto/functional.rst:1090 +msgid "" +"The :mod:`operator` module was mentioned earlier. It contains a set of " +"functions corresponding to Python's operators. These functions are often " +"useful in functional-style code because they save you from writing trivial " +"functions that perform a single operation." +msgstr "" + +#: ../../howto/functional.rst:1095 +msgid "Some of the functions in this module are:" +msgstr "" + +#: ../../howto/functional.rst:1097 +msgid "" +"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " +"``abs()``, ..." +msgstr "" + +#: ../../howto/functional.rst:1098 +msgid "Logical operations: ``not_()``, ``truth()``." +msgstr "" + +#: ../../howto/functional.rst:1099 +msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." +msgstr "" + +#: ../../howto/functional.rst:1100 +msgid "" +"Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." +msgstr "" + +#: ../../howto/functional.rst:1101 +msgid "Object identity: ``is_()``, ``is_not()``." +msgstr "" + +#: ../../howto/functional.rst:1103 +msgid "Consult the operator module's documentation for a complete list." +msgstr "" + +#: ../../howto/functional.rst:1107 +msgid "Small functions and the lambda expression" +msgstr "" + +#: ../../howto/functional.rst:1109 +msgid "" +"When writing functional-style programs, you'll often need little functions " +"that act as predicates or that combine elements in some way." +msgstr "" + +#: ../../howto/functional.rst:1112 +msgid "" +"If there's a Python built-in or a module function that's suitable, you don't " +"need to define a new function at all::" +msgstr "" + +#: ../../howto/functional.rst:1115 +msgid "" +"stripped_lines = [line.strip() for line in lines]\n" +"existing_files = filter(os.path.exists, file_list)" +msgstr "" + +#: ../../howto/functional.rst:1118 +msgid "" +"If the function you need doesn't exist, you need to write it. One way to " +"write small functions is to use the :keyword:`lambda` expression. " +"``lambda`` takes a number of parameters and an expression combining these " +"parameters, and creates an anonymous function that returns the value of the " +"expression::" +msgstr "" + +#: ../../howto/functional.rst:1123 +msgid "" +"adder = lambda x, y: x+y\n" +"\n" +"print_assign = lambda name, value: name + '=' + str(value)" +msgstr "" + +#: ../../howto/functional.rst:1127 +msgid "" +"An alternative is to just use the ``def`` statement and define a function in " +"the usual way::" +msgstr "" + +#: ../../howto/functional.rst:1130 +msgid "" +"def adder(x, y):\n" +" return x + y\n" +"\n" +"def print_assign(name, value):\n" +" return name + '=' + str(value)" +msgstr "" + +#: ../../howto/functional.rst:1136 +msgid "" +"Which alternative is preferable? That's a style question; my usual course " +"is to avoid using ``lambda``." +msgstr "" + +#: ../../howto/functional.rst:1139 +msgid "" +"One reason for my preference is that ``lambda`` is quite limited in the " +"functions it can define. The result has to be computable as a single " +"expression, which means you can't have multiway ``if... elif... else`` " +"comparisons or ``try... except`` statements. If you try to do too much in a " +"``lambda`` statement, you'll end up with an overly complicated expression " +"that's hard to read. Quick, what's the following code doing? ::" +msgstr "" + +#: ../../howto/functional.rst:1146 +msgid "" +"import functools\n" +"total = functools.reduce(lambda a, b: (0, a[1] + b[1]), items)[1]" +msgstr "" + +#: ../../howto/functional.rst:1149 +msgid "" +"You can figure it out, but it takes time to disentangle the expression to " +"figure out what's going on. Using a short nested ``def`` statements makes " +"things a little bit better::" +msgstr "" + +#: ../../howto/functional.rst:1153 +msgid "" +"import functools\n" +"def combine(a, b):\n" +" return 0, a[1] + b[1]\n" +"\n" +"total = functools.reduce(combine, items)[1]" +msgstr "" + +#: ../../howto/functional.rst:1159 +msgid "But it would be best of all if I had simply used a ``for`` loop::" +msgstr "" + +#: ../../howto/functional.rst:1161 +msgid "" +"total = 0\n" +"for a, b in items:\n" +" total += b" +msgstr "" + +#: ../../howto/functional.rst:1165 +msgid "Or the :func:`sum` built-in and a generator expression::" +msgstr "" + +#: ../../howto/functional.rst:1167 +msgid "total = sum(b for a, b in items)" +msgstr "" + +#: ../../howto/functional.rst:1169 +msgid "" +"Many uses of :func:`functools.reduce` are clearer when written as ``for`` " +"loops." +msgstr "" + +#: ../../howto/functional.rst:1171 +msgid "" +"Fredrik Lundh once suggested the following set of rules for refactoring uses " +"of ``lambda``:" +msgstr "" + +#: ../../howto/functional.rst:1174 +msgid "Write a lambda function." +msgstr "" + +#: ../../howto/functional.rst:1175 +msgid "Write a comment explaining what the heck that lambda does." +msgstr "" + +#: ../../howto/functional.rst:1176 +msgid "" +"Study the comment for a while, and think of a name that captures the essence " +"of the comment." +msgstr "" + +#: ../../howto/functional.rst:1178 +msgid "Convert the lambda to a def statement, using that name." +msgstr "" + +#: ../../howto/functional.rst:1179 +msgid "Remove the comment." +msgstr "" + +#: ../../howto/functional.rst:1181 +msgid "" +"I really like these rules, but you're free to disagree about whether this " +"lambda-free style is better." +msgstr "" + +#: ../../howto/functional.rst:1186 +msgid "Revision History and Acknowledgements" +msgstr "" + +#: ../../howto/functional.rst:1188 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " +"Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." +msgstr "" + +#: ../../howto/functional.rst:1193 +msgid "Version 0.1: posted June 30 2006." +msgstr "" + +#: ../../howto/functional.rst:1195 +msgid "Version 0.11: posted July 1 2006. Typo fixes." +msgstr "" + +#: ../../howto/functional.rst:1197 +msgid "" +"Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " +"one. Typo fixes." +msgstr "" + +#: ../../howto/functional.rst:1200 +msgid "" +"Version 0.21: Added more references suggested on the tutor mailing list." +msgstr "" + +#: ../../howto/functional.rst:1202 +msgid "" +"Version 0.30: Adds a section on the ``functional`` module written by Collin " +"Winter; adds short section on the operator module; a few other edits." +msgstr "" + +#: ../../howto/functional.rst:1207 +msgid "References" +msgstr "" + +#: ../../howto/functional.rst:1210 +msgid "General" +msgstr "" + +#: ../../howto/functional.rst:1212 +msgid "" +"**Structure and Interpretation of Computer Programs**, by Harold Abelson and " +"Gerald Jay Sussman with Julie Sussman. The book can be found at https://" +"mitpress.mit.edu/sicp. In this classic textbook of computer science, " +"chapters 2 and 3 discuss the use of sequences and streams to organize the " +"data flow inside a program. The book uses Scheme for its examples, but many " +"of the design approaches described in these chapters are applicable to " +"functional-style Python code." +msgstr "" + +#: ../../howto/functional.rst:1220 +msgid "" +"https://defmacro.org/2006/06/19/fp.html: A general introduction to " +"functional programming that uses Java examples and has a lengthy historical " +"introduction." +msgstr "" + +#: ../../howto/functional.rst:1223 +msgid "" +"https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " +"entry describing functional programming." +msgstr "" + +#: ../../howto/functional.rst:1226 +msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." +msgstr "" + +#: ../../howto/functional.rst:1228 +msgid "" +"https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of " +"partial function application." +msgstr "" + +#: ../../howto/functional.rst:1230 +msgid "" +"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." +msgstr "" + +#: ../../howto/functional.rst:1233 +msgid "Python-specific" +msgstr "" + +#: ../../howto/functional.rst:1235 +msgid "" +"https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" +"reference:`Text Processing in Python` discusses functional programming for " +"text processing, in the section titled \"Utilizing Higher-Order Functions in " +"Text Processing\"." +msgstr "" + +#: ../../howto/functional.rst:1240 +msgid "" +"Mertz also wrote a 3-part series of articles on functional programming for " +"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and " +"`part 3 `__," +msgstr "" + +#: ../../howto/functional.rst:1248 +msgid "Python documentation" +msgstr "" + +#: ../../howto/functional.rst:1250 +msgid "Documentation for the :mod:`itertools` module." +msgstr "" + +#: ../../howto/functional.rst:1252 +msgid "Documentation for the :mod:`functools` module." +msgstr "" + +#: ../../howto/functional.rst:1254 +msgid "Documentation for the :mod:`operator` module." +msgstr "" + +#: ../../howto/functional.rst:1256 +msgid ":pep:`289`: \"Generator Expressions\"" +msgstr "" + +#: ../../howto/functional.rst:1258 +msgid "" +":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " +"generator features in Python 2.5." +msgstr "" diff --git a/howto/gdb_helpers.po b/howto/gdb_helpers.po new file mode 100644 index 0000000..312ba35 --- /dev/null +++ b/howto/gdb_helpers.po @@ -0,0 +1,789 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/gdb_helpers.rst:5 +msgid "Debugging C API extensions and CPython Internals with GDB" +msgstr "" + +#: ../../howto/gdb_helpers.rst:9 +msgid "" +"This document explains how the Python GDB extension, ``python-gdb.py``, can " +"be used with the GDB debugger to debug CPython extensions and the CPython " +"interpreter itself." +msgstr "" + +#: ../../howto/gdb_helpers.rst:13 +msgid "" +"When debugging low-level problems such as crashes or deadlocks, a low-level " +"debugger, such as GDB, is useful to diagnose and correct the issue. By " +"default, GDB (or any of its front-ends) doesn't support high-level " +"information specific to the CPython interpreter." +msgstr "" + +#: ../../howto/gdb_helpers.rst:18 +msgid "" +"The ``python-gdb.py`` extension adds CPython interpreter information to GDB. " +"The extension helps introspect the stack of currently executing Python " +"functions. Given a Python object represented by a :c:expr:`PyObject *` " +"pointer, the extension surfaces the type and value of the object." +msgstr "" + +#: ../../howto/gdb_helpers.rst:23 +msgid "" +"Developers who are working on CPython extensions or tinkering with parts of " +"CPython that are written in C can use this document to learn how to use the " +"``python-gdb.py`` extension with GDB." +msgstr "" + +#: ../../howto/gdb_helpers.rst:29 +msgid "" +"This document assumes that you are familiar with the basics of GDB and the " +"CPython C API. It consolidates guidance from the `devguide `_ and the `Python wiki `_." +msgstr "" + +#: ../../howto/gdb_helpers.rst:36 +msgid "Prerequisites" +msgstr "" + +#: ../../howto/gdb_helpers.rst:38 +msgid "You need to have:" +msgstr "" + +#: ../../howto/gdb_helpers.rst:40 +msgid "" +"GDB 7 or later. (For earlier versions of GDB, see ``Misc/gdbinit`` in the " +"sources of Python 3.11 or earlier.)" +msgstr "" + +#: ../../howto/gdb_helpers.rst:42 +msgid "" +"GDB-compatible debugging information for Python and any extension you are " +"debugging." +msgstr "" + +#: ../../howto/gdb_helpers.rst:44 +msgid "The ``python-gdb.py`` extension." +msgstr "" + +#: ../../howto/gdb_helpers.rst:46 +msgid "" +"The extension is built with Python, but might be distributed separately or " +"not at all. Below, we include tips for a few common systems as examples. " +"Note that even if the instructions match your system, they might be outdated." +msgstr "" + +#: ../../howto/gdb_helpers.rst:52 +msgid "Setup with Python built from source" +msgstr "" + +#: ../../howto/gdb_helpers.rst:54 +msgid "" +"When you build CPython from source, debugging information should be " +"available, and the build should add a ``python-gdb.py`` file to the root " +"directory of your repository." +msgstr "" + +#: ../../howto/gdb_helpers.rst:58 +msgid "" +"To activate support, you must add the directory containing ``python-gdb.py`` " +"to GDB's \"auto-load-safe-path\". If you haven't done this, recent versions " +"of GDB will print out a warning with instructions on how to do this." +msgstr "" + +#: ../../howto/gdb_helpers.rst:65 +msgid "" +"If you do not see instructions for your version of GDB, put this in your " +"configuration file (``~/.gdbinit`` or ``~/.config/gdb/gdbinit``)::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:68 +msgid "add-auto-load-safe-path /path/to/cpython" +msgstr "" + +#: ../../howto/gdb_helpers.rst:70 +msgid "You can also add multiple paths, separated by ``:``." +msgstr "" + +#: ../../howto/gdb_helpers.rst:74 +msgid "Setup for Python from a Linux distro" +msgstr "" + +#: ../../howto/gdb_helpers.rst:76 +msgid "" +"Most Linux systems provide debug information for the system Python in a " +"package called ``python-debuginfo``, ``python-dbg`` or similar. For example:" +msgstr "" + +#: ../../howto/gdb_helpers.rst:80 +msgid "Fedora:" +msgstr "" + +#: ../../howto/gdb_helpers.rst:82 +msgid "" +"sudo dnf install gdb\n" +"sudo dnf debuginfo-install python3" +msgstr "" + +#: ../../howto/gdb_helpers.rst:87 +msgid "Ubuntu:" +msgstr "" + +#: ../../howto/gdb_helpers.rst:89 +msgid "sudo apt install gdb python3-dbg" +msgstr "" + +#: ../../howto/gdb_helpers.rst:93 +msgid "" +"On several recent Linux systems, GDB can download debugging symbols " +"automatically using *debuginfod*. However, this will not install the " +"``python-gdb.py`` extension; you generally do need to install the debug info " +"package separately." +msgstr "" + +#: ../../howto/gdb_helpers.rst:100 +msgid "Using the Debug build and Development mode" +msgstr "" + +#: ../../howto/gdb_helpers.rst:102 +msgid "For easier debugging, you might want to:" +msgstr "" + +#: ../../howto/gdb_helpers.rst:104 +msgid "" +"Use a :ref:`debug build ` of Python. (When building from " +"source, use ``configure --with-pydebug``. On Linux distros, install and run " +"a package like ``python-debug`` or ``python-dbg``, if available.)" +msgstr "" + +#: ../../howto/gdb_helpers.rst:107 +msgid "Use the runtime :ref:`development mode ` (``-X dev``)." +msgstr "" + +#: ../../howto/gdb_helpers.rst:109 +msgid "" +"Both enable extra assertions and disable some optimizations. Sometimes this " +"hides the bug you are trying to find, but in most cases they make the " +"process easier." +msgstr "" + +#: ../../howto/gdb_helpers.rst:115 +msgid "Using the ``python-gdb`` extension" +msgstr "" + +#: ../../howto/gdb_helpers.rst:117 +msgid "" +"When the extension is loaded, it provides two main features: pretty printers " +"for Python values, and additional commands." +msgstr "" + +#: ../../howto/gdb_helpers.rst:121 +msgid "Pretty-printers" +msgstr "" + +#: ../../howto/gdb_helpers.rst:123 +msgid "" +"This is what a GDB backtrace looks like (truncated) when this extension is " +"enabled::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:126 +msgid "" +"#0 0x000000000041a6b1 in PyObject_Malloc (nbytes=Cannot access memory at " +"address 0x7fffff7fefe8\n" +") at Objects/obmalloc.c:748\n" +"#1 0x000000000041b7c0 in _PyObject_DebugMallocApi (id=111 'o', nbytes=24) " +"at Objects/obmalloc.c:1445\n" +"#2 0x000000000041b717 in _PyObject_DebugMalloc (nbytes=24) at Objects/" +"obmalloc.c:1412\n" +"#3 0x000000000044060a in _PyUnicode_New (length=11) at Objects/" +"unicodeobject.c:346\n" +"#4 0x00000000004466aa in PyUnicodeUCS2_DecodeUTF8Stateful (s=0x5c2b8d " +"\"__lltrace__\", size=11, errors=0x0, consumed=\n" +" 0x0) at Objects/unicodeobject.c:2531\n" +"#5 0x0000000000446647 in PyUnicodeUCS2_DecodeUTF8 (s=0x5c2b8d " +"\"__lltrace__\", size=11, errors=0x0)\n" +" at Objects/unicodeobject.c:2495\n" +"#6 0x0000000000440d1b in PyUnicodeUCS2_FromStringAndSize (u=0x5c2b8d " +"\"__lltrace__\", size=11)\n" +" at Objects/unicodeobject.c:551\n" +"#7 0x0000000000440d94 in PyUnicodeUCS2_FromString (u=0x5c2b8d " +"\"__lltrace__\") at Objects/unicodeobject.c:569\n" +"#8 0x0000000000584abd in PyDict_GetItemString (v=\n" +" {'Yuck': , '__builtins__': , '__file__': 'Lib/test/crashers/nasty_eq_vs_dict.py', " +"'__package__': None, 'y': , 'dict': {0: 0, 1: " +"1, 2: 2, 3: 3}, '__cached__': None, '__name__': '__main__', 'z': , '__doc__': None}, key=\n" +" 0x5c2b8d \"__lltrace__\") at Objects/dictobject.c:2171" +msgstr "" + +#: ../../howto/gdb_helpers.rst:142 +msgid "" +"Notice how the dictionary argument to ``PyDict_GetItemString`` is displayed " +"as its ``repr()``, rather than an opaque ``PyObject *`` pointer." +msgstr "" + +#: ../../howto/gdb_helpers.rst:145 +msgid "" +"The extension works by supplying a custom printing routine for values of " +"type ``PyObject *``. If you need to access lower-level details of an " +"object, then cast the value to a pointer of the appropriate type. For " +"example::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:149 +msgid "" +"(gdb) p globals\n" +"$1 = {'__builtins__': , '__name__':\n" +"'__main__', 'ctypes': , '__doc__': None,\n" +"'__package__': None}\n" +"\n" +"(gdb) p *(PyDictObject*)globals\n" +"$2 = {ob_refcnt = 3, ob_type = 0x3dbdf85820, ma_fill = 5, ma_used = 5,\n" +"ma_mask = 7, ma_table = 0x63d0f8, ma_lookup = 0x3dbdc7ea70\n" +", ma_smalltable = {{me_hash = 7065186196740147912,\n" +"me_key = '__builtins__', me_value = },\n" +"{me_hash = -368181376027291943, me_key = '__name__',\n" +"me_value ='__main__'}, {me_hash = 0, me_key = 0x0, me_value = 0x0},\n" +"{me_hash = 0, me_key = 0x0, me_value = 0x0},\n" +"{me_hash = -9177857982131165996, me_key = 'ctypes',\n" +"me_value = },\n" +"{me_hash = -8518757509529533123, me_key = '__doc__', me_value = None},\n" +"{me_hash = 0, me_key = 0x0, me_value = 0x0}, {\n" +" me_hash = 6614918939584953775, me_key = '__package__', me_value = None}}}" +msgstr "" + +#: ../../howto/gdb_helpers.rst:168 +msgid "" +"Note that the pretty-printers do not actually call ``repr()``. For basic " +"types, they try to match its result closely." +msgstr "" + +#: ../../howto/gdb_helpers.rst:171 +msgid "" +"An area that can be confusing is that the custom printer for some types look " +"a lot like GDB's built-in printer for standard types. For example, the " +"pretty-printer for a Python ``int`` (:c:expr:`PyLongObject *`) gives a " +"representation that is not distinguishable from one of a regular machine-" +"level integer::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:177 +msgid "" +"(gdb) p some_machine_integer\n" +"$3 = 42\n" +"\n" +"(gdb) p some_python_integer\n" +"$4 = 42" +msgstr "" + +#: ../../howto/gdb_helpers.rst:183 +msgid "" +"The internal structure can be revealed with a cast to :c:expr:`PyLongObject " +"*`::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:185 +msgid "" +"(gdb) p *(PyLongObject*)some_python_integer\n" +"$5 = {ob_base = {ob_base = {ob_refcnt = 8, ob_type = 0x3dad39f5e0}, ob_size " +"= 1},\n" +"ob_digit = {42}}" +msgstr "" + +#: ../../howto/gdb_helpers.rst:189 +msgid "" +"A similar confusion can arise with the ``str`` type, where the output looks " +"a lot like gdb's built-in printer for ``char *``::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:192 +msgid "" +"(gdb) p ptr_to_python_str\n" +"$6 = '__builtins__'" +msgstr "" + +#: ../../howto/gdb_helpers.rst:195 +msgid "" +"The pretty-printer for ``str`` instances defaults to using single-quotes (as " +"does Python's ``repr`` for strings) whereas the standard printer for ``char " +"*`` values uses double-quotes and contains a hexadecimal address::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:199 +msgid "" +"(gdb) p ptr_to_char_star\n" +"$7 = 0x6d72c0 \"hello world\"" +msgstr "" + +#: ../../howto/gdb_helpers.rst:202 +msgid "" +"Again, the implementation details can be revealed with a cast " +"to :c:expr:`PyUnicodeObject *`::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:205 +msgid "" +"(gdb) p *(PyUnicodeObject*)$6\n" +"$8 = {ob_base = {ob_refcnt = 33, ob_type = 0x3dad3a95a0}, length = 12,\n" +"str = 0x7ffff2128500, hash = 7065186196740147912, state = 1, defenc = 0x0}" +msgstr "" + +#: ../../howto/gdb_helpers.rst:210 +msgid "``py-list``" +msgstr "``py-list``" + +#: ../../howto/gdb_helpers.rst:212 +msgid "" +"The extension adds a ``py-list`` command, which lists the Python source code " +"(if any) for the current frame in the selected thread. The current line is " +"marked with a \">\"::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:216 +msgid "" +"(gdb) py-list\n" +" 901 if options.profile:\n" +" 902 options.profile = False\n" +" 903 profile_me()\n" +" 904 return\n" +" 905\n" +">906 u = UI()\n" +" 907 if not u.quit:\n" +" 908 try:\n" +" 909 gtk.main()\n" +" 910 except KeyboardInterrupt:\n" +" 911 # properly quit on a keyboard interrupt..." +msgstr "" + +#: ../../howto/gdb_helpers.rst:229 +msgid "" +"Use ``py-list START`` to list at a different line number within the Python " +"source, and ``py-list START,END`` to list a specific range of lines within " +"the Python source." +msgstr "" + +#: ../../howto/gdb_helpers.rst:234 +msgid "``py-up`` and ``py-down``" +msgstr "" + +#: ../../howto/gdb_helpers.rst:236 +msgid "" +"The ``py-up`` and ``py-down`` commands are analogous to GDB's regular ``up`` " +"and ``down`` commands, but try to move at the level of CPython frames, " +"rather than C frames." +msgstr "" + +#: ../../howto/gdb_helpers.rst:240 +msgid "" +"GDB is not always able to read the relevant frame information, depending on " +"the optimization level with which CPython was compiled. Internally, the " +"commands look for C frames that are executing the default frame evaluation " +"function (that is, the core bytecode interpreter loop within CPython) and " +"look up the value of the related ``PyFrameObject *``." +msgstr "" + +#: ../../howto/gdb_helpers.rst:246 +msgid "They emit the frame number (at the C level) within the thread." +msgstr "" + +#: ../../howto/gdb_helpers.rst:248 ../../howto/gdb_helpers.rst:320 +msgid "For example::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:250 +msgid "" +"(gdb) py-up\n" +"#37 Frame 0x9420b04, for file /usr/lib/python2.6/site-packages/\n" +"gnome_sudoku/main.py, line 906, in start_game ()\n" +" u = UI()\n" +"(gdb) py-up\n" +"#40 Frame 0x948e82c, for file /usr/lib/python2.6/site-packages/\n" +"gnome_sudoku/gnome_sudoku.py, line 22, in start_game(main=)\n" +" main.start_game()\n" +"(gdb) py-up\n" +"Unable to find an older python frame" +msgstr "" + +#: ../../howto/gdb_helpers.rst:261 +msgid "so we're at the top of the Python stack." +msgstr "" + +#: ../../howto/gdb_helpers.rst:263 +msgid "" +"The frame numbers correspond to those displayed by GDB's standard " +"``backtrace`` command. The command skips C frames which are not executing " +"Python code." +msgstr "" + +#: ../../howto/gdb_helpers.rst:267 +msgid "Going back down::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:269 +msgid "" +"(gdb) py-down\n" +"#37 Frame 0x9420b04, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"main.py, line 906, in start_game ()\n" +" u = UI()\n" +"(gdb) py-down\n" +"#34 (unable to read python frame information)\n" +"(gdb) py-down\n" +"#23 (unable to read python frame information)\n" +"(gdb) py-down\n" +"#19 (unable to read python frame information)\n" +"(gdb) py-down\n" +"#14 Frame 0x99262ac, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"game_selector.py, line 201, in run_swallowed_dialog " +"(self=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, " +"'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 " +"5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 " +"3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 " +"8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 " +"9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 " +"0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], " +"dialog=, saved_game_model=, sudoku_maker=, main_page=0) " +"at remote 0x98fa6e4>, d=)\n" +" gtk.main()\n" +"(gdb) py-down\n" +"#8 (unable to read python frame information)\n" +"(gdb) py-down\n" +"Unable to find a newer python frame" +msgstr "" + +#: ../../howto/gdb_helpers.rst:289 +msgid "and we're at the bottom of the Python stack." +msgstr "" + +#: ../../howto/gdb_helpers.rst:291 +msgid "" +"Note that in Python 3.12 and newer, the same C stack frame can be used for " +"multiple Python stack frames. This means that ``py-up`` and ``py-down`` may " +"move multiple Python frames at once. For example::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:295 +msgid "" +"(gdb) py-up\n" +"#6 Frame 0x7ffff7fb62b0, for file /tmp/rec.py, line 5, in recursive_function " +"(n=0)\n" +" time.sleep(5)\n" +"#6 Frame 0x7ffff7fb6240, for file /tmp/rec.py, line 7, in recursive_function " +"(n=1)\n" +" recursive_function(n-1)\n" +"#6 Frame 0x7ffff7fb61d0, for file /tmp/rec.py, line 7, in recursive_function " +"(n=2)\n" +" recursive_function(n-1)\n" +"#6 Frame 0x7ffff7fb6160, for file /tmp/rec.py, line 7, in recursive_function " +"(n=3)\n" +" recursive_function(n-1)\n" +"#6 Frame 0x7ffff7fb60f0, for file /tmp/rec.py, line 7, in recursive_function " +"(n=4)\n" +" recursive_function(n-1)\n" +"#6 Frame 0x7ffff7fb6080, for file /tmp/rec.py, line 7, in recursive_function " +"(n=5)\n" +" recursive_function(n-1)\n" +"#6 Frame 0x7ffff7fb6020, for file /tmp/rec.py, line 9, in ()\n" +" recursive_function(5)\n" +"(gdb) py-up\n" +"Unable to find an older python frame" +msgstr "" + +#: ../../howto/gdb_helpers.rst:315 +msgid "``py-bt``" +msgstr "``py-bt``" + +#: ../../howto/gdb_helpers.rst:317 +msgid "" +"The ``py-bt`` command attempts to display a Python-level backtrace of the " +"current thread." +msgstr "" + +#: ../../howto/gdb_helpers.rst:322 +msgid "" +"(gdb) py-bt\n" +"#8 (unable to read python frame information)\n" +"#11 Frame 0x9aead74, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"dialog_swallower.py, line 48, in run_dialog " +"(self=, main_page=0) " +"at remote 0x98fa6e4>, d=)\n" +" gtk.main()\n" +"#14 Frame 0x99262ac, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"game_selector.py, line 201, in run_swallowed_dialog " +"(self=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, " +"'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 " +"5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 " +"3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 " +"8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 " +"9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 " +"0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], " +"dialog=, saved_game_model=, sudoku_maker=)\n" +" main.start_game()" +msgstr "" + +#: ../../howto/gdb_helpers.rst:336 +msgid "" +"The frame numbers correspond to those displayed by GDB's standard " +"``backtrace`` command." +msgstr "" + +#: ../../howto/gdb_helpers.rst:340 +msgid "``py-print``" +msgstr "``py-print``" + +#: ../../howto/gdb_helpers.rst:342 +msgid "" +"The ``py-print`` command looks up a Python name and tries to print it. It " +"looks in locals within the current thread, then globals, then finally " +"builtins::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:346 +msgid "" +"(gdb) py-print self\n" +"local 'self' = ,\n" +"main_page=0) at remote 0x98fa6e4>\n" +"(gdb) py-print __name__\n" +"global '__name__' = 'gnome_sudoku.dialog_swallower'\n" +"(gdb) py-print len\n" +"builtin 'len' = \n" +"(gdb) py-print scarlet_pimpernel\n" +"'scarlet_pimpernel' not found" +msgstr "" + +#: ../../howto/gdb_helpers.rst:356 +msgid "" +"If the current C frame corresponds to multiple Python frames, ``py-print`` " +"only considers the first one." +msgstr "" + +#: ../../howto/gdb_helpers.rst:360 +msgid "``py-locals``" +msgstr "``py-locals``" + +#: ../../howto/gdb_helpers.rst:362 +msgid "" +"The ``py-locals`` command looks up all Python locals within the current " +"Python frame in the selected thread, and prints their representations::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:365 +msgid "" +"(gdb) py-locals\n" +"self = ,\n" +"main_page=0) at remote 0x98fa6e4>\n" +"d = " +msgstr "" + +#: ../../howto/gdb_helpers.rst:370 +msgid "" +"If the current C frame corresponds to multiple Python frames, locals from " +"all of them will be shown::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:373 +msgid "" +"(gdb) py-locals\n" +"Locals for recursive_function\n" +"n = 0\n" +"Locals for recursive_function\n" +"n = 1\n" +"Locals for recursive_function\n" +"n = 2\n" +"Locals for recursive_function\n" +"n = 3\n" +"Locals for recursive_function\n" +"n = 4\n" +"Locals for recursive_function\n" +"n = 5\n" +"Locals for " +msgstr "" + +#: ../../howto/gdb_helpers.rst:390 +msgid "Use with GDB commands" +msgstr "" + +#: ../../howto/gdb_helpers.rst:392 +msgid "" +"The extension commands complement GDB's built-in commands. For example, you " +"can use a frame numbers shown by ``py-bt`` with the ``frame`` command to go " +"a specific frame within the selected thread, like this::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:396 +msgid "" +"(gdb) py-bt\n" +"(output snipped)\n" +"#68 Frame 0xaa4560, for file Lib/test/regrtest.py, line 1548, in " +"()\n" +" main()\n" +"(gdb) frame 68\n" +"#68 0x00000000004cd1e6 in PyEval_EvalFrameEx (f=Frame 0xaa4560, for file Lib/" +"test/regrtest.py, line 1548, in (), throwflag=0) at Python/" +"ceval.c:2665\n" +"2665 x = call_function(&sp, oparg);\n" +"(gdb) py-list\n" +"1543 # Run the tests in a context manager that temporary changes the " +"CWD to a\n" +"1544 # temporary and writable directory. If it's not possible to " +"create or\n" +"1545 # change the CWD, the original CWD will be used. The original " +"CWD is\n" +"1546 # available from test_support.SAVEDCWD.\n" +"1547 with test_support.temp_cwd(TESTCWD, quiet=True):\n" +">1548 main()" +msgstr "" + +#: ../../howto/gdb_helpers.rst:411 +msgid "" +"The ``info threads`` command will give you a list of the threads within the " +"process, and you can use the ``thread`` command to select a different one::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:414 +msgid "" +"(gdb) info threads\n" +" 105 Thread 0x7fffefa18710 (LWP 10260) sem_wait () at ../nptl/sysdeps/unix/" +"sysv/linux/x86_64/sem_wait.S:86\n" +" 104 Thread 0x7fffdf5fe710 (LWP 10259) sem_wait () at ../nptl/sysdeps/unix/" +"sysv/linux/x86_64/sem_wait.S:86\n" +"* 1 Thread 0x7ffff7fe2700 (LWP 10145) 0x00000038e46d73e3 in select () at ../" +"sysdeps/unix/syscall-template.S:82" +msgstr "" + +#: ../../howto/gdb_helpers.rst:419 +msgid "" +"You can use ``thread apply all COMMAND`` or (``t a a COMMAND`` for short) to " +"run a command on all threads. With ``py-bt``, this lets you see what every " +"thread is doing at the Python level::" +msgstr "" + +#: ../../howto/gdb_helpers.rst:423 +msgid "" +"(gdb) t a a py-bt\n" +"\n" +"Thread 105 (Thread 0x7fffefa18710 (LWP 10260)):\n" +"#5 Frame 0x7fffd00019d0, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 155, in _acquire_restore " +"(self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, " +"_RLock__block=, _RLock__count=1) at remote " +"0xd7ff40>, count_owner=(1, 140737213728528), count=1, " +"owner=140737213728528)\n" +" self.__block.acquire()\n" +"#8 Frame 0x7fffac001640, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 269, in wait " +"(self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, " +"_RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, " +"_release_save=, release=, _acquire_restore=, " +"_Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, " +"timeout=None, waiter=, saved_state=(1, " +"140737213728528))\n" +" self._acquire_restore(saved_state)\n" +"#12 Frame 0x7fffb8001a10, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 348, in f ()\n" +" cond.wait()\n" +"#16 Frame 0x7fffb8001c40, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 37, in task (tid=140737213728528)\n" +" f()\n" +"\n" +"Thread 104 (Thread 0x7fffdf5fe710 (LWP 10259)):\n" +"#5 Frame 0x7fffe4001580, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 155, in _acquire_restore " +"(self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, " +"_RLock__block=, _RLock__count=1) at remote " +"0xd7ff40>, count_owner=(1, 140736940992272), count=1, " +"owner=140736940992272)\n" +" self.__block.acquire()\n" +"#8 Frame 0x7fffc8002090, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 269, in wait " +"(self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, " +"_RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, " +"_release_save=, release=, _acquire_restore=, " +"_Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, " +"timeout=None, waiter=, saved_state=(1, " +"140736940992272))\n" +" self._acquire_restore(saved_state)\n" +"#12 Frame 0x7fffac001c90, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 348, in f ()\n" +" cond.wait()\n" +"#16 Frame 0x7fffac0011c0, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 37, in task (tid=140736940992272)\n" +" f()\n" +"\n" +"Thread 1 (Thread 0x7ffff7fe2700 (LWP 10145)):\n" +"#5 Frame 0xcb5380, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 16, in _wait ()\n" +" time.sleep(0.01)\n" +"#8 Frame 0x7fffd00024a0, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 378, in _check_notify " +"(self=, skipped=[], _mirrorOutput=False, testsRun=39, " +"buffer=False, _original_stderr=, " +"_stdout_buffer=, " +"_stderr_buffer=, " +"_moduleSetUpFailed=False, expectedFailures=[], errors=[], " +"_previousTestClass=, unexpectedSuccesses=[], " +"failures=[], shouldStop=False, failfast=False) at remote 0xc185a0>, " +"_threads=(0,), _cleanups=[], _type_equality_funcs={: , : " +", : " +", : " +", , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/index.rst:3 +msgid "Python HOWTOs" +msgstr "" + +#: ../../howto/index.rst:5 +msgid "" +"Python HOWTOs are documents that cover a specific topic in-depth. Modeled on " +"the Linux Documentation Project's HOWTO collection, this collection is an " +"effort to foster documentation that's more detailed than the Python Library " +"Reference." +msgstr "" + +#: ../../howto/index.rst:39 +msgid "General:" +msgstr "" + +#: ../../howto/index.rst:41 +msgid ":ref:`annotations-howto`" +msgstr "" + +#: ../../howto/index.rst:42 +msgid ":ref:`argparse-tutorial`" +msgstr "" + +#: ../../howto/index.rst:43 +msgid ":ref:`descriptorhowto`" +msgstr "" + +#: ../../howto/index.rst:44 +msgid ":ref:`enum-howto`" +msgstr "" + +#: ../../howto/index.rst:45 +msgid ":ref:`functional-howto`" +msgstr "" + +#: ../../howto/index.rst:46 +msgid ":ref:`ipaddress-howto`" +msgstr "" + +#: ../../howto/index.rst:47 +msgid ":ref:`logging-howto`" +msgstr "" + +#: ../../howto/index.rst:48 +msgid ":ref:`logging-cookbook`" +msgstr "" + +#: ../../howto/index.rst:49 +msgid ":ref:`regex-howto`" +msgstr "" + +#: ../../howto/index.rst:50 +msgid ":ref:`sortinghowto`" +msgstr "" + +#: ../../howto/index.rst:51 +msgid ":ref:`unicode-howto`" +msgstr "" + +#: ../../howto/index.rst:52 +msgid ":ref:`urllib-howto`" +msgstr "" + +#: ../../howto/index.rst:54 +msgid "Advanced development:" +msgstr "" + +#: ../../howto/index.rst:56 +msgid ":ref:`curses-howto`" +msgstr "" + +#: ../../howto/index.rst:57 +msgid ":ref:`freethreading-python-howto`" +msgstr "" + +#: ../../howto/index.rst:58 +msgid ":ref:`freethreading-extensions-howto`" +msgstr "" + +#: ../../howto/index.rst:59 +msgid ":ref:`isolating-extensions-howto`" +msgstr "" + +#: ../../howto/index.rst:60 +msgid ":ref:`python_2.3_mro`" +msgstr "" + +#: ../../howto/index.rst:61 +msgid ":ref:`socket-howto`" +msgstr "" + +#: ../../howto/index.rst:62 +msgid ":ref:`timerfd-howto`" +msgstr "" + +#: ../../howto/index.rst:63 +msgid ":ref:`cporting-howto`" +msgstr "" + +#: ../../howto/index.rst:65 +msgid "Debugging and profiling:" +msgstr "" + +#: ../../howto/index.rst:67 +msgid ":ref:`gdb`" +msgstr "" + +#: ../../howto/index.rst:68 +msgid ":ref:`instrumentation`" +msgstr "" + +#: ../../howto/index.rst:69 +msgid ":ref:`perf_profiling`" +msgstr "" + +#: ../../howto/index.rst:70 +msgid ":ref:`remote-debugging`" +msgstr "" diff --git a/howto/instrumentation.po b/howto/instrumentation.po new file mode 100644 index 0000000..c1dd630 --- /dev/null +++ b/howto/instrumentation.po @@ -0,0 +1,603 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/instrumentation.rst:7 +msgid "Instrumenting CPython with DTrace and SystemTap" +msgstr "" + +#: ../../howto/instrumentation.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/instrumentation.rst:9 +msgid "David Malcolm" +msgstr "" + +#: ../../howto/instrumentation.rst:10 +msgid "Łukasz Langa" +msgstr "" + +#: ../../howto/instrumentation.rst:12 +msgid "" +"DTrace and SystemTap are monitoring tools, each providing a way to inspect " +"what the processes on a computer system are doing. They both use domain-" +"specific languages allowing a user to write scripts which:" +msgstr "" + +#: ../../howto/instrumentation.rst:16 +msgid "filter which processes are to be observed" +msgstr "" + +#: ../../howto/instrumentation.rst:17 +msgid "gather data from the processes of interest" +msgstr "" + +#: ../../howto/instrumentation.rst:18 +msgid "generate reports on the data" +msgstr "" + +#: ../../howto/instrumentation.rst:20 +msgid "" +"As of Python 3.6, CPython can be built with embedded \"markers\", also known " +"as \"probes\", that can be observed by a DTrace or SystemTap script, making " +"it easier to monitor what the CPython processes on a system are doing." +msgstr "" + +#: ../../howto/instrumentation.rst:27 +msgid "" +"DTrace markers are implementation details of the CPython interpreter. No " +"guarantees are made about probe compatibility between versions of CPython. " +"DTrace scripts can stop working or work incorrectly without warning when " +"changing CPython versions." +msgstr "" + +#: ../../howto/instrumentation.rst:34 +msgid "Enabling the static markers" +msgstr "" + +#: ../../howto/instrumentation.rst:36 +msgid "" +"macOS comes with built-in support for DTrace. On Linux, in order to build " +"CPython with the embedded markers for SystemTap, the SystemTap development " +"tools must be installed." +msgstr "" + +#: ../../howto/instrumentation.rst:40 +msgid "On a Linux machine, this can be done via::" +msgstr "" + +#: ../../howto/instrumentation.rst:42 +msgid "$ yum install systemtap-sdt-devel" +msgstr "" + +#: ../../howto/instrumentation.rst:44 +msgid "or::" +msgstr "" + +#: ../../howto/instrumentation.rst:46 +msgid "$ sudo apt-get install systemtap-sdt-dev" +msgstr "" + +#: ../../howto/instrumentation.rst:49 +msgid "" +"CPython must then be :option:`configured with the --with-dtrace option <--" +"with-dtrace>`:" +msgstr "" + +#: ../../howto/instrumentation.rst:52 +msgid "checking for --with-dtrace... yes" +msgstr "" + +#: ../../howto/instrumentation.rst:56 +msgid "" +"On macOS, you can list available DTrace probes by running a Python process " +"in the background and listing all probes made available by the Python " +"provider::" +msgstr "" + +#: ../../howto/instrumentation.rst:60 +msgid "" +"$ python3.6 -q &\n" +"$ sudo dtrace -l -P python$! # or: dtrace -l -m python3.6\n" +"\n" +" ID PROVIDER MODULE FUNCTION NAME\n" +"29564 python18035 python3.6 _PyEval_EvalFrameDefault " +"function-entry\n" +"29565 python18035 python3.6 dtrace_function_entry " +"function-entry\n" +"29566 python18035 python3.6 _PyEval_EvalFrameDefault " +"function-return\n" +"29567 python18035 python3.6 dtrace_function_return " +"function-return\n" +"29568 python18035 python3.6 collect gc-" +"done\n" +"29569 python18035 python3.6 collect gc-" +"start\n" +"29570 python18035 python3.6 _PyEval_EvalFrameDefault line\n" +"29571 python18035 python3.6 maybe_dtrace_line line" +msgstr "" + +#: ../../howto/instrumentation.rst:73 +msgid "" +"On Linux, you can verify if the SystemTap static markers are present in the " +"built binary by seeing if it contains a \".note.stapsdt\" section." +msgstr "" + +#: ../../howto/instrumentation.rst:78 +msgid "" +"$ readelf -S ./python | grep .note.stapsdt\n" +"[30] .note.stapsdt NOTE 0000000000000000 00308d78" +msgstr "" + +#: ../../howto/instrumentation.rst:81 +msgid "" +"If you've built Python as a shared library (with the :option:`--enable-" +"shared` configure option), you need to look instead within the shared " +"library. For example::" +msgstr "" + +#: ../../howto/instrumentation.rst:85 +msgid "" +"$ readelf -S libpython3.3dm.so.1.0 | grep .note.stapsdt\n" +"[29] .note.stapsdt NOTE 0000000000000000 00365b68" +msgstr "" + +#: ../../howto/instrumentation.rst:88 +msgid "Sufficiently modern readelf can print the metadata::" +msgstr "" + +#: ../../howto/instrumentation.rst:90 +msgid "" +"$ readelf -n ./python\n" +"\n" +"Displaying notes found at file offset 0x00000254 with length 0x00000020:\n" +" Owner Data size Description\n" +" GNU 0x00000010 NT_GNU_ABI_TAG (ABI version " +"tag)\n" +" OS: Linux, ABI: 2.6.32\n" +"\n" +"Displaying notes found at file offset 0x00000274 with length 0x00000024:\n" +" Owner Data size Description\n" +" GNU 0x00000014 NT_GNU_BUILD_ID (unique build " +"ID bitstring)\n" +" Build ID: df924a2b08a7e89f6e11251d4602022977af2670\n" +"\n" +"Displaying notes found at file offset 0x002d6c30 with length 0x00000144:\n" +" Owner Data size Description\n" +" stapsdt 0x00000031 NT_STAPSDT (SystemTap probe " +"descriptors)\n" +" Provider: python\n" +" Name: gc__start\n" +" Location: 0x00000000004371c3, Base: 0x0000000000630ce2, Semaphore: " +"0x00000000008d6bf6\n" +" Arguments: -4@%ebx\n" +" stapsdt 0x00000030 NT_STAPSDT (SystemTap probe " +"descriptors)\n" +" Provider: python\n" +" Name: gc__done\n" +" Location: 0x00000000004374e1, Base: 0x0000000000630ce2, Semaphore: " +"0x00000000008d6bf8\n" +" Arguments: -8@%rax\n" +" stapsdt 0x00000045 NT_STAPSDT (SystemTap probe " +"descriptors)\n" +" Provider: python\n" +" Name: function__entry\n" +" Location: 0x000000000053db6c, Base: 0x0000000000630ce2, Semaphore: " +"0x00000000008d6be8\n" +" Arguments: 8@%rbp 8@%r12 -4@%eax\n" +" stapsdt 0x00000046 NT_STAPSDT (SystemTap probe " +"descriptors)\n" +" Provider: python\n" +" Name: function__return\n" +" Location: 0x000000000053dba8, Base: 0x0000000000630ce2, Semaphore: " +"0x00000000008d6bea\n" +" Arguments: 8@%rbp 8@%r12 -4@%eax" +msgstr "" + +#: ../../howto/instrumentation.rst:125 +msgid "" +"The above metadata contains information for SystemTap describing how it can " +"patch strategically placed machine code instructions to enable the tracing " +"hooks used by a SystemTap script." +msgstr "" + +#: ../../howto/instrumentation.rst:131 +msgid "Static DTrace probes" +msgstr "" + +#: ../../howto/instrumentation.rst:133 +msgid "" +"The following example DTrace script can be used to show the call/return " +"hierarchy of a Python script, only tracing within the invocation of a " +"function called \"start\". In other words, import-time function invocations " +"are not going to be listed:" +msgstr "" + +#: ../../howto/instrumentation.rst:138 +msgid "" +"self int indent;\n" +"\n" +"python$target:::function-entry\n" +"/copyinstr(arg1) == \"start\"/\n" +"{\n" +" self->trace = 1;\n" +"}\n" +"\n" +"python$target:::function-entry\n" +"/self->trace/\n" +"{\n" +" printf(\"%d\\t%*s:\", timestamp, 15, probename);\n" +" printf(\"%*s\", self->indent, \"\");\n" +" printf(\"%s:%s:%d\\n\", basename(copyinstr(arg0)), copyinstr(arg1), " +"arg2);\n" +" self->indent++;\n" +"}\n" +"\n" +"python$target:::function-return\n" +"/self->trace/\n" +"{\n" +" self->indent--;\n" +" printf(\"%d\\t%*s:\", timestamp, 15, probename);\n" +" printf(\"%*s\", self->indent, \"\");\n" +" printf(\"%s:%s:%d\\n\", basename(copyinstr(arg0)), copyinstr(arg1), " +"arg2);\n" +"}\n" +"\n" +"python$target:::function-return\n" +"/copyinstr(arg1) == \"start\"/\n" +"{\n" +" self->trace = 0;\n" +"}" +msgstr "" + +#: ../../howto/instrumentation.rst:172 ../../howto/instrumentation.rst:230 +msgid "It can be invoked like this::" +msgstr "" + +#: ../../howto/instrumentation.rst:174 +msgid "$ sudo dtrace -q -s call_stack.d -c \"python3.6 script.py\"" +msgstr "" + +#: ../../howto/instrumentation.rst:176 ../../howto/instrumentation.rst:236 +msgid "The output looks like this:" +msgstr "" + +#: ../../howto/instrumentation.rst:178 +msgid "" +"156641360502280 function-entry:call_stack.py:start:23\n" +"156641360518804 function-entry: call_stack.py:function_1:1\n" +"156641360532797 function-entry: call_stack.py:function_3:9\n" +"156641360546807 function-return: call_stack.py:function_3:10\n" +"156641360563367 function-return: call_stack.py:function_1:2\n" +"156641360578365 function-entry: call_stack.py:function_2:5\n" +"156641360591757 function-entry: call_stack.py:function_1:1\n" +"156641360605556 function-entry: call_stack.py:function_3:9\n" +"156641360617482 function-return: call_stack.py:function_3:10\n" +"156641360629814 function-return: call_stack.py:function_1:2\n" +"156641360642285 function-return: call_stack.py:function_2:6\n" +"156641360656770 function-entry: call_stack.py:function_3:9\n" +"156641360669707 function-return: call_stack.py:function_3:10\n" +"156641360687853 function-entry: call_stack.py:function_4:13\n" +"156641360700719 function-return: call_stack.py:function_4:14\n" +"156641360719640 function-entry: call_stack.py:function_5:18\n" +"156641360732567 function-return: call_stack.py:function_5:21\n" +"156641360747370 function-return:call_stack.py:start:28" +msgstr "" + +#: ../../howto/instrumentation.rst:201 +msgid "Static SystemTap markers" +msgstr "" + +#: ../../howto/instrumentation.rst:203 +msgid "" +"The low-level way to use the SystemTap integration is to use the static " +"markers directly. This requires you to explicitly state the binary file " +"containing them." +msgstr "" + +#: ../../howto/instrumentation.rst:207 +msgid "" +"For example, this SystemTap script can be used to show the call/return " +"hierarchy of a Python script:" +msgstr "" + +#: ../../howto/instrumentation.rst:210 +msgid "" +"probe process(\"python\").mark(\"function__entry\") {\n" +" filename = user_string($arg1);\n" +" funcname = user_string($arg2);\n" +" lineno = $arg3;\n" +"\n" +" printf(\"%s => %s in %s:%d\\\\n\",\n" +" thread_indent(1), funcname, filename, lineno);\n" +"}\n" +"\n" +"probe process(\"python\").mark(\"function__return\") {\n" +" filename = user_string($arg1);\n" +" funcname = user_string($arg2);\n" +" lineno = $arg3;\n" +"\n" +" printf(\"%s <= %s in %s:%d\\\\n\",\n" +" thread_indent(-1), funcname, filename, lineno);\n" +"}" +msgstr "" + +#: ../../howto/instrumentation.rst:232 +msgid "" +"$ stap \\\n" +" show-call-hierarchy.stp \\\n" +" -c \"./python test.py\"" +msgstr "" + +#: ../../howto/instrumentation.rst:238 +msgid "" +"11408 python(8274): => __contains__ in Lib/_abcoll.py:362\n" +"11414 python(8274): => __getitem__ in Lib/os.py:425\n" +"11418 python(8274): => encode in Lib/os.py:490\n" +"11424 python(8274): <= encode in Lib/os.py:493\n" +"11428 python(8274): <= __getitem__ in Lib/os.py:426\n" +"11433 python(8274): <= __contains__ in Lib/_abcoll.py:366" +msgstr "" + +#: ../../howto/instrumentation.rst:247 +msgid "where the columns are:" +msgstr "" + +#: ../../howto/instrumentation.rst:249 +msgid "time in microseconds since start of script" +msgstr "" + +#: ../../howto/instrumentation.rst:250 +msgid "name of executable" +msgstr "" + +#: ../../howto/instrumentation.rst:251 +msgid "PID of process" +msgstr "" + +#: ../../howto/instrumentation.rst:253 +msgid "" +"and the remainder indicates the call/return hierarchy as the script executes." +msgstr "" + +#: ../../howto/instrumentation.rst:255 +msgid "" +"For a :option:`--enable-shared` build of CPython, the markers are contained " +"within the libpython shared library, and the probe's dotted path needs to " +"reflect this. For example, this line from the above example:" +msgstr "" + +#: ../../howto/instrumentation.rst:259 +msgid "probe process(\"python\").mark(\"function__entry\") {" +msgstr "" + +#: ../../howto/instrumentation.rst:263 +msgid "should instead read:" +msgstr "" + +#: ../../howto/instrumentation.rst:265 +msgid "" +"probe " +"process(\"python\").library(\"libpython3.6dm.so.1.0\").mark(\"function__entry\") " +"{" +msgstr "" + +#: ../../howto/instrumentation.rst:269 +msgid "(assuming a :ref:`debug build ` of CPython 3.6)" +msgstr "" + +#: ../../howto/instrumentation.rst:273 +msgid "Available static markers" +msgstr "" + +#: ../../howto/instrumentation.rst:277 +msgid "" +"This marker indicates that execution of a Python function has begun. It is " +"only triggered for pure-Python (bytecode) functions." +msgstr "" + +#: ../../howto/instrumentation.rst:280 +msgid "" +"The filename, function name, and line number are provided back to the " +"tracing script as positional arguments, which must be accessed using " +"``$arg1``, ``$arg2``, ``$arg3``:" +msgstr "" + +#: ../../howto/instrumentation.rst:284 +msgid "" +"``$arg1`` : ``(const char *)`` filename, accessible using " +"``user_string($arg1)``" +msgstr "" + +#: ../../howto/instrumentation.rst:286 +msgid "" +"``$arg2`` : ``(const char *)`` function name, accessible using " +"``user_string($arg2)``" +msgstr "" + +#: ../../howto/instrumentation.rst:289 +msgid "``$arg3`` : ``int`` line number" +msgstr "" + +#: ../../howto/instrumentation.rst:293 +msgid "" +"This marker is the converse of :c:func:`!function__entry`, and indicates " +"that execution of a Python function has ended (either via ``return``, or via " +"an exception). It is only triggered for pure-Python (bytecode) functions." +msgstr "" + +#: ../../howto/instrumentation.rst:297 +msgid "The arguments are the same as for :c:func:`!function__entry`" +msgstr "" + +#: ../../howto/instrumentation.rst:301 +msgid "" +"This marker indicates a Python line is about to be executed. It is the " +"equivalent of line-by-line tracing with a Python profiler. It is not " +"triggered within C functions." +msgstr "" + +#: ../../howto/instrumentation.rst:305 +msgid "The arguments are the same as for :c:func:`!function__entry`." +msgstr "" + +#: ../../howto/instrumentation.rst:309 +msgid "" +"Fires when the Python interpreter starts a garbage collection cycle. " +"``arg0`` is the generation to scan, like :func:`gc.collect`." +msgstr "" + +#: ../../howto/instrumentation.rst:314 +msgid "" +"Fires when the Python interpreter finishes a garbage collection cycle. " +"``arg0`` is the number of collected objects." +msgstr "" + +#: ../../howto/instrumentation.rst:319 +msgid "" +"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " +"is the module name." +msgstr "" + +#: ../../howto/instrumentation.rst:326 +msgid "" +"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " +"the module name, ``arg1`` indicates if module was successfully loaded." +msgstr "" + +#: ../../howto/instrumentation.rst:335 +msgid "" +"Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " +"the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " +"tuple object." +msgstr "" + +#: ../../howto/instrumentation.rst:343 +msgid "SystemTap Tapsets" +msgstr "" + +#: ../../howto/instrumentation.rst:345 +msgid "" +"The higher-level way to use the SystemTap integration is to use a " +"\"tapset\": SystemTap's equivalent of a library, which hides some of the " +"lower-level details of the static markers." +msgstr "" + +#: ../../howto/instrumentation.rst:349 +msgid "Here is a tapset file, based on a non-shared build of CPython:" +msgstr "" + +#: ../../howto/instrumentation.rst:351 +msgid "" +"/*\n" +" Provide a higher-level wrapping around the function__entry and\n" +" function__return markers:\n" +" \\*/\n" +"probe python.function.entry = process(\"python\").mark(\"function__entry\")\n" +"{\n" +" filename = user_string($arg1);\n" +" funcname = user_string($arg2);\n" +" lineno = $arg3;\n" +" frameptr = $arg4\n" +"}\n" +"probe python.function.return = " +"process(\"python\").mark(\"function__return\")\n" +"{\n" +" filename = user_string($arg1);\n" +" funcname = user_string($arg2);\n" +" lineno = $arg3;\n" +" frameptr = $arg4\n" +"}" +msgstr "" + +#: ../../howto/instrumentation.rst:372 +msgid "" +"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" +"systemtap/tapset``), then these additional probepoints become available:" +msgstr "" + +#: ../../howto/instrumentation.rst:378 +msgid "" +"This probe point indicates that execution of a Python function has begun. It " +"is only triggered for pure-Python (bytecode) functions." +msgstr "" + +#: ../../howto/instrumentation.rst:383 +msgid "" +"This probe point is the converse of ``python.function.return``, and " +"indicates that execution of a Python function has ended (either via " +"``return``, or via an exception). It is only triggered for pure-Python " +"(bytecode) functions." +msgstr "" + +#: ../../howto/instrumentation.rst:390 +msgid "Examples" +msgstr "" + +#: ../../howto/instrumentation.rst:391 +msgid "" +"This SystemTap script uses the tapset above to more cleanly implement the " +"example given above of tracing the Python function-call hierarchy, without " +"needing to directly name the static markers:" +msgstr "" + +#: ../../howto/instrumentation.rst:395 +msgid "" +"probe python.function.entry\n" +"{\n" +" printf(\"%s => %s in %s:%d\\n\",\n" +" thread_indent(1), funcname, filename, lineno);\n" +"}\n" +"\n" +"probe python.function.return\n" +"{\n" +" printf(\"%s <= %s in %s:%d\\n\",\n" +" thread_indent(-1), funcname, filename, lineno);\n" +"}" +msgstr "" + +#: ../../howto/instrumentation.rst:410 +msgid "" +"The following script uses the tapset above to provide a top-like view of all " +"running CPython code, showing the top 20 most frequently entered bytecode " +"frames, each second, across the whole system:" +msgstr "" + +#: ../../howto/instrumentation.rst:414 +msgid "" +"global fn_calls;\n" +"\n" +"probe python.function.entry\n" +"{\n" +" fn_calls[pid(), filename, funcname, lineno] += 1;\n" +"}\n" +"\n" +"probe timer.ms(1000) {\n" +" printf(\"\\033[2J\\033[1;1H\") /* clear screen \\*/\n" +" printf(\"%6s %80s %6s %30s %6s\\n\",\n" +" \"PID\", \"FILENAME\", \"LINE\", \"FUNCTION\", \"CALLS\")\n" +" foreach ([pid, filename, funcname, lineno] in fn_calls- limit 20) {\n" +" printf(\"%6d %80s %6d %30s %6d\\n\",\n" +" pid, filename, lineno, funcname,\n" +" fn_calls[pid, filename, funcname, lineno]);\n" +" }\n" +" delete fn_calls;\n" +"}" +msgstr "" diff --git a/howto/ipaddress.po b/howto/ipaddress.po new file mode 100644 index 0000000..cc82dd5 --- /dev/null +++ b/howto/ipaddress.po @@ -0,0 +1,485 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/ipaddress.rst:9 +msgid "An introduction to the ipaddress module" +msgstr "" + +#: ../../howto/ipaddress.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/ipaddress.rst:11 +msgid "Peter Moody" +msgstr "" + +#: ../../howto/ipaddress.rst:12 +msgid "Nick Coghlan" +msgstr "" + +#: ../../howto/ipaddress.rst-1 +msgid "Overview" +msgstr "" + +#: ../../howto/ipaddress.rst:16 +msgid "" +"This document aims to provide a gentle introduction to the :mod:`ipaddress` " +"module. It is aimed primarily at users that aren't already familiar with IP " +"networking terminology, but may also be useful to network engineers wanting " +"an overview of how :mod:`ipaddress` represents IP network addressing " +"concepts." +msgstr "" + +#: ../../howto/ipaddress.rst:24 +msgid "Creating Address/Network/Interface objects" +msgstr "" + +#: ../../howto/ipaddress.rst:26 +msgid "" +"Since :mod:`ipaddress` is a module for inspecting and manipulating IP " +"addresses, the first thing you'll want to do is create some objects. You " +"can use :mod:`ipaddress` to create objects from strings and integers." +msgstr "" + +#: ../../howto/ipaddress.rst:32 +msgid "A Note on IP Versions" +msgstr "" + +#: ../../howto/ipaddress.rst:34 +msgid "" +"For readers that aren't particularly familiar with IP addressing, it's " +"important to know that the Internet Protocol (IP) is currently in the " +"process of moving from version 4 of the protocol to version 6. This " +"transition is occurring largely because version 4 of the protocol doesn't " +"provide enough addresses to handle the needs of the whole world, especially " +"given the increasing number of devices with direct connections to the " +"internet." +msgstr "" + +#: ../../howto/ipaddress.rst:41 +msgid "" +"Explaining the details of the differences between the two versions of the " +"protocol is beyond the scope of this introduction, but readers need to at " +"least be aware that these two versions exist, and it will sometimes be " +"necessary to force the use of one version or the other." +msgstr "" + +#: ../../howto/ipaddress.rst:48 +msgid "IP Host Addresses" +msgstr "" + +#: ../../howto/ipaddress.rst:50 +msgid "" +"Addresses, often referred to as \"host addresses\" are the most basic unit " +"when working with IP addressing. The simplest way to create addresses is to " +"use the :func:`ipaddress.ip_address` factory function, which automatically " +"determines whether to create an IPv4 or IPv6 address based on the passed in " +"value:" +msgstr "" + +#: ../../howto/ipaddress.rst:61 +msgid "" +"Addresses can also be created directly from integers. Values that will fit " +"within 32 bits are assumed to be IPv4 addresses::" +msgstr "" + +#: ../../howto/ipaddress.rst:64 +msgid "" +">>> ipaddress.ip_address(3221225985)\n" +"IPv4Address('192.0.2.1')\n" +">>> ipaddress.ip_address(42540766411282592856903984951653826561)\n" +"IPv6Address('2001:db8::1')" +msgstr "" + +#: ../../howto/ipaddress.rst:69 +msgid "" +"To force the use of IPv4 or IPv6 addresses, the relevant classes can be " +"invoked directly. This is particularly useful to force creation of IPv6 " +"addresses for small integers::" +msgstr "" + +#: ../../howto/ipaddress.rst:73 +msgid "" +">>> ipaddress.ip_address(1)\n" +"IPv4Address('0.0.0.1')\n" +">>> ipaddress.IPv4Address(1)\n" +"IPv4Address('0.0.0.1')\n" +">>> ipaddress.IPv6Address(1)\n" +"IPv6Address('::1')" +msgstr "" + +#: ../../howto/ipaddress.rst:82 +msgid "Defining Networks" +msgstr "" + +#: ../../howto/ipaddress.rst:84 +msgid "" +"Host addresses are usually grouped together into IP networks, " +"so :mod:`ipaddress` provides a way to create, inspect and manipulate network " +"definitions. IP network objects are constructed from strings that define the " +"range of host addresses that are part of that network. The simplest form for " +"that information is a \"network address/network prefix\" pair, where the " +"prefix defines the number of leading bits that are compared to determine " +"whether or not an address is part of the network and the network address " +"defines the expected value of those bits." +msgstr "" + +#: ../../howto/ipaddress.rst:93 +msgid "" +"As for addresses, a factory function is provided that determines the correct " +"IP version automatically::" +msgstr "" + +#: ../../howto/ipaddress.rst:96 +msgid "" +">>> ipaddress.ip_network('192.0.2.0/24')\n" +"IPv4Network('192.0.2.0/24')\n" +">>> ipaddress.ip_network('2001:db8::0/96')\n" +"IPv6Network('2001:db8::/96')" +msgstr "" + +#: ../../howto/ipaddress.rst:101 +msgid "" +"Network objects cannot have any host bits set. The practical effect of this " +"is that ``192.0.2.1/24`` does not describe a network. Such definitions are " +"referred to as interface objects since the ip-on-a-network notation is " +"commonly used to describe network interfaces of a computer on a given " +"network and are described further in the next section." +msgstr "" + +#: ../../howto/ipaddress.rst:107 +msgid "" +"By default, attempting to create a network object with host bits set will " +"result in :exc:`ValueError` being raised. To request that the additional " +"bits instead be coerced to zero, the flag ``strict=False`` can be passed to " +"the constructor::" +msgstr "" + +#: ../../howto/ipaddress.rst:112 +msgid "" +">>> ipaddress.ip_network('192.0.2.1/24')\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: 192.0.2.1/24 has host bits set\n" +">>> ipaddress.ip_network('192.0.2.1/24', strict=False)\n" +"IPv4Network('192.0.2.0/24')" +msgstr "" + +#: ../../howto/ipaddress.rst:119 +msgid "" +"While the string form offers significantly more flexibility, networks can " +"also be defined with integers, just like host addresses. In this case, the " +"network is considered to contain only the single address identified by the " +"integer, so the network prefix includes the entire network address::" +msgstr "" + +#: ../../howto/ipaddress.rst:124 +msgid "" +">>> ipaddress.ip_network(3221225984)\n" +"IPv4Network('192.0.2.0/32')\n" +">>> ipaddress.ip_network(42540766411282592856903984951653826560)\n" +"IPv6Network('2001:db8::/128')" +msgstr "" + +#: ../../howto/ipaddress.rst:129 +msgid "" +"As with addresses, creation of a particular kind of network can be forced by " +"calling the class constructor directly instead of using the factory function." +msgstr "" + +#: ../../howto/ipaddress.rst:135 +msgid "Host Interfaces" +msgstr "" + +#: ../../howto/ipaddress.rst:137 +msgid "" +"As mentioned just above, if you need to describe an address on a particular " +"network, neither the address nor the network classes are sufficient. " +"Notation like ``192.0.2.1/24`` is commonly used by network engineers and the " +"people who write tools for firewalls and routers as shorthand for \"the host " +"``192.0.2.1`` on the network ``192.0.2.0/24``\", " +"Accordingly, :mod:`ipaddress` provides a set of hybrid classes that " +"associate an address with a particular network. The interface for creation " +"is identical to that for defining network objects, except that the address " +"portion isn't constrained to being a network address." +msgstr "" + +#: ../../howto/ipaddress.rst:152 +msgid "" +"Integer inputs are accepted (as with networks), and use of a particular IP " +"version can be forced by calling the relevant constructor directly." +msgstr "" + +#: ../../howto/ipaddress.rst:157 +msgid "Inspecting Address/Network/Interface Objects" +msgstr "" + +#: ../../howto/ipaddress.rst:159 +msgid "" +"You've gone to the trouble of creating an IPv(4|6)(Address|Network|" +"Interface) object, so you probably want to get information about " +"it. :mod:`ipaddress` tries to make doing this easy and intuitive." +msgstr "" + +#: ../../howto/ipaddress.rst:163 +msgid "Extracting the IP version::" +msgstr "" + +#: ../../howto/ipaddress.rst:165 +msgid "" +">>> addr4 = ipaddress.ip_address('192.0.2.1')\n" +">>> addr6 = ipaddress.ip_address('2001:db8::1')\n" +">>> addr6.version\n" +"6\n" +">>> addr4.version\n" +"4" +msgstr "" + +#: ../../howto/ipaddress.rst:172 +msgid "Obtaining the network from an interface::" +msgstr "" + +#: ../../howto/ipaddress.rst:174 +msgid "" +">>> host4 = ipaddress.ip_interface('192.0.2.1/24')\n" +">>> host4.network\n" +"IPv4Network('192.0.2.0/24')\n" +">>> host6 = ipaddress.ip_interface('2001:db8::1/96')\n" +">>> host6.network\n" +"IPv6Network('2001:db8::/96')" +msgstr "" + +#: ../../howto/ipaddress.rst:181 +msgid "Finding out how many individual addresses are in a network::" +msgstr "" + +#: ../../howto/ipaddress.rst:183 +msgid "" +">>> net4 = ipaddress.ip_network('192.0.2.0/24')\n" +">>> net4.num_addresses\n" +"256\n" +">>> net6 = ipaddress.ip_network('2001:db8::0/96')\n" +">>> net6.num_addresses\n" +"4294967296" +msgstr "" + +#: ../../howto/ipaddress.rst:190 +msgid "Iterating through the \"usable\" addresses on a network::" +msgstr "" + +#: ../../howto/ipaddress.rst:192 +msgid "" +">>> net4 = ipaddress.ip_network('192.0.2.0/24')\n" +">>> for x in net4.hosts():\n" +"... print(x)\n" +"192.0.2.1\n" +"192.0.2.2\n" +"192.0.2.3\n" +"192.0.2.4\n" +"...\n" +"192.0.2.252\n" +"192.0.2.253\n" +"192.0.2.254" +msgstr "" + +#: ../../howto/ipaddress.rst:205 +msgid "" +"Obtaining the netmask (i.e. set bits corresponding to the network prefix) or " +"the hostmask (any bits that are not part of the netmask):" +msgstr "" + +#: ../../howto/ipaddress.rst:220 +msgid "Exploding or compressing the address::" +msgstr "" + +#: ../../howto/ipaddress.rst:222 +msgid "" +">>> addr6.exploded\n" +"'2001:0db8:0000:0000:0000:0000:0000:0001'\n" +">>> addr6.compressed\n" +"'2001:db8::1'\n" +">>> net6.exploded\n" +"'2001:0db8:0000:0000:0000:0000:0000:0000/96'\n" +">>> net6.compressed\n" +"'2001:db8::/96'" +msgstr "" + +#: ../../howto/ipaddress.rst:231 +msgid "" +"While IPv4 doesn't support explosion or compression, the associated objects " +"still provide the relevant properties so that version neutral code can " +"easily ensure the most concise or most verbose form is used for IPv6 " +"addresses while still correctly handling IPv4 addresses." +msgstr "" + +#: ../../howto/ipaddress.rst:238 +msgid "Networks as lists of Addresses" +msgstr "" + +#: ../../howto/ipaddress.rst:240 +msgid "" +"It's sometimes useful to treat networks as lists. This means it is possible " +"to index them like this::" +msgstr "" + +#: ../../howto/ipaddress.rst:243 +msgid "" +">>> net4[1]\n" +"IPv4Address('192.0.2.1')\n" +">>> net4[-1]\n" +"IPv4Address('192.0.2.255')\n" +">>> net6[1]\n" +"IPv6Address('2001:db8::1')\n" +">>> net6[-1]\n" +"IPv6Address('2001:db8::ffff:ffff')" +msgstr "" + +#: ../../howto/ipaddress.rst:253 +msgid "" +"It also means that network objects lend themselves to using the list " +"membership test syntax like this::" +msgstr "" + +#: ../../howto/ipaddress.rst:256 +msgid "" +"if address in network:\n" +" # do something" +msgstr "" + +#: ../../howto/ipaddress.rst:259 +msgid "Containment testing is done efficiently based on the network prefix::" +msgstr "" + +#: ../../howto/ipaddress.rst:261 +msgid "" +">>> addr4 = ipaddress.ip_address('192.0.2.1')\n" +">>> addr4 in ipaddress.ip_network('192.0.2.0/24')\n" +"True\n" +">>> addr4 in ipaddress.ip_network('192.0.3.0/24')\n" +"False" +msgstr "" + +#: ../../howto/ipaddress.rst:269 +msgid "Comparisons" +msgstr "" + +#: ../../howto/ipaddress.rst:271 +msgid "" +":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare " +"objects, where it makes sense::" +msgstr "" + +#: ../../howto/ipaddress.rst:274 +msgid "" +">>> ipaddress.ip_address('192.0.2.1') < ipaddress.ip_address('192.0.2.2')\n" +"True" +msgstr "" + +#: ../../howto/ipaddress.rst:277 +msgid "" +"A :exc:`TypeError` exception is raised if you try to compare objects of " +"different versions or different types." +msgstr "" + +#: ../../howto/ipaddress.rst:282 +msgid "Using IP Addresses with other modules" +msgstr "" + +#: ../../howto/ipaddress.rst:284 +msgid "" +"Other modules that use IP addresses (such as :mod:`socket`) usually won't " +"accept objects from this module directly. Instead, they must be coerced to " +"an integer or string that the other module will accept::" +msgstr "" + +#: ../../howto/ipaddress.rst:288 +msgid "" +">>> addr4 = ipaddress.ip_address('192.0.2.1')\n" +">>> str(addr4)\n" +"'192.0.2.1'\n" +">>> int(addr4)\n" +"3221225985" +msgstr "" + +#: ../../howto/ipaddress.rst:296 +msgid "Getting more detail when instance creation fails" +msgstr "" + +#: ../../howto/ipaddress.rst:298 +msgid "" +"When creating address/network/interface objects using the version-agnostic " +"factory functions, any errors will be reported as :exc:`ValueError` with a " +"generic error message that simply says the passed in value was not " +"recognized as an object of that type. The lack of a specific error is " +"because it's necessary to know whether the value is *supposed* to be IPv4 or " +"IPv6 in order to provide more detail on why it has been rejected." +msgstr "" + +#: ../../howto/ipaddress.rst:305 +msgid "" +"To support use cases where it is useful to have access to this additional " +"detail, the individual class constructors actually raise " +"the :exc:`ValueError` subclasses :exc:`ipaddress.AddressValueError` " +"and :exc:`ipaddress.NetmaskValueError` to indicate exactly which part of the " +"definition failed to parse correctly." +msgstr "" + +#: ../../howto/ipaddress.rst:311 +msgid "" +"The error messages are significantly more detailed when using the class " +"constructors directly. For example::" +msgstr "" + +#: ../../howto/ipaddress.rst:314 +msgid "" +">>> ipaddress.ip_address(\"192.168.0.256\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: '192.168.0.256' does not appear to be an IPv4 or IPv6 address\n" +">>> ipaddress.IPv4Address(\"192.168.0.256\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"ipaddress.AddressValueError: Octet 256 (> 255) not permitted in " +"'192.168.0.256'\n" +"\n" +">>> ipaddress.ip_network(\"192.168.0.1/64\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: '192.168.0.1/64' does not appear to be an IPv4 or IPv6 network\n" +">>> ipaddress.IPv4Network(\"192.168.0.1/64\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"ipaddress.NetmaskValueError: '64' is not a valid netmask" +msgstr "" + +#: ../../howto/ipaddress.rst:332 +msgid "" +"However, both of the module specific exceptions have :exc:`ValueError` as " +"their parent class, so if you're not concerned with the particular type of " +"error, you can still write code like the following::" +msgstr "" + +#: ../../howto/ipaddress.rst:336 +msgid "" +"try:\n" +" network = ipaddress.IPv4Network(address)\n" +"except ValueError:\n" +" print('address/netmask is invalid for IPv4:', address)" +msgstr "" diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po new file mode 100644 index 0000000..ed1a623 --- /dev/null +++ b/howto/isolating-extensions.po @@ -0,0 +1,933 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/isolating-extensions.rst:7 +msgid "Isolating Extension Modules" +msgstr "" + +#: ../../howto/isolating-extensions.rst-1 +msgid "Abstract" +msgstr "" + +#: ../../howto/isolating-extensions.rst:11 +msgid "" +"Traditionally, state belonging to Python extension modules was kept in C " +"``static`` variables, which have process-wide scope. This document describes " +"problems of such per-process state and shows a safer way: per-module state." +msgstr "" + +#: ../../howto/isolating-extensions.rst:16 +msgid "" +"The document also describes how to switch to per-module state where " +"possible. This transition involves allocating space for that state, " +"potentially switching from static types to heap types, and—perhaps most " +"importantly—accessing per-module state from code." +msgstr "" + +#: ../../howto/isolating-extensions.rst:23 +msgid "Who should read this" +msgstr "" + +#: ../../howto/isolating-extensions.rst:25 +msgid "" +"This guide is written for maintainers of :ref:`C-API ` " +"extensions who would like to make that extension safer to use in " +"applications where Python itself is used as a library." +msgstr "" + +#: ../../howto/isolating-extensions.rst:31 +msgid "Background" +msgstr "" + +#: ../../howto/isolating-extensions.rst:33 +msgid "" +"An *interpreter* is the context in which Python code runs. It contains " +"configuration (e.g. the import path) and runtime state (e.g. the set of " +"imported modules)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:37 +msgid "" +"Python supports running multiple interpreters in one process. There are two " +"cases to think about—users may run interpreters:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:40 +msgid "" +"in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` " +"cycles, and" +msgstr "" + +#: ../../howto/isolating-extensions.rst:42 +msgid "" +"in parallel, managing \"sub-interpreters\" " +"using :c:func:`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." +msgstr "" + +#: ../../howto/isolating-extensions.rst:45 +msgid "" +"Both cases (and combinations of them) would be most useful when embedding " +"Python within a library. Libraries generally shouldn't make assumptions " +"about the application that uses them, which include assuming a process-wide " +"\"main Python interpreter\"." +msgstr "" + +#: ../../howto/isolating-extensions.rst:50 +msgid "" +"Historically, Python extension modules don't handle this use case well. Many " +"extension modules (and even some stdlib modules) use *per-process* global " +"state, because C ``static`` variables are extremely easy to use. Thus, data " +"that should be specific to an interpreter ends up being shared between " +"interpreters. Unless the extension developer is careful, it is very easy to " +"introduce edge cases that lead to crashes when a module is loaded in more " +"than one interpreter in the same process." +msgstr "" + +#: ../../howto/isolating-extensions.rst:58 +msgid "" +"Unfortunately, *per-interpreter* state is not easy to achieve. Extension " +"authors tend to not keep multiple interpreters in mind when developing, and " +"it is currently cumbersome to test the behavior." +msgstr "" + +#: ../../howto/isolating-extensions.rst:63 +msgid "Enter Per-Module State" +msgstr "" + +#: ../../howto/isolating-extensions.rst:65 +msgid "" +"Instead of focusing on per-interpreter state, Python's C API is evolving to " +"better support the more granular *per-module* state. This means that C-level " +"data should be attached to a *module object*. Each interpreter creates its " +"own module object, keeping the data separate. For testing the isolation, " +"multiple module objects corresponding to a single extension can even be " +"loaded in a single interpreter." +msgstr "" + +#: ../../howto/isolating-extensions.rst:72 +msgid "" +"Per-module state provides an easy way to think about lifetime and resource " +"ownership: the extension module will initialize when a module object is " +"created, and clean up when it's freed. In this regard, a module is just like " +"any other :c:expr:`PyObject *`; there are no \"on interpreter shutdown\" " +"hooks to think—or forget—about." +msgstr "" + +#: ../../howto/isolating-extensions.rst:78 +msgid "" +"Note that there are use cases for different kinds of \"globals\": per-" +"process, per-interpreter, per-thread or per-task state. With per-module " +"state as the default, these are still possible, but you should treat them as " +"exceptional cases: if you need them, you should give them additional care " +"and testing. (Note that this guide does not cover them.)" +msgstr "" + +#: ../../howto/isolating-extensions.rst:87 +msgid "Isolated Module Objects" +msgstr "" + +#: ../../howto/isolating-extensions.rst:89 +msgid "" +"The key point to keep in mind when developing an extension module is that " +"several module objects can be created from a single shared library. For " +"example:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:93 +msgid "" +">>> import sys\n" +">>> import binascii\n" +">>> old_binascii = binascii\n" +">>> del sys.modules['binascii']\n" +">>> import binascii # create a new module object\n" +">>> old_binascii == binascii\n" +"False" +msgstr "" + +#: ../../howto/isolating-extensions.rst:103 +msgid "" +"As a rule of thumb, the two modules should be completely independent. All " +"objects and state specific to the module should be encapsulated within the " +"module object, not shared with other module objects, and cleaned up when the " +"module object is deallocated. Since this just is a rule of thumb, exceptions " +"are possible (see `Managing Global State`_), but they will need more thought " +"and attention to edge cases." +msgstr "" + +#: ../../howto/isolating-extensions.rst:111 +msgid "" +"While some modules could do with less stringent restrictions, isolated " +"modules make it easier to set clear expectations and guidelines that work " +"across a variety of use cases." +msgstr "" + +#: ../../howto/isolating-extensions.rst:117 +msgid "Surprising Edge Cases" +msgstr "" + +#: ../../howto/isolating-extensions.rst:119 +msgid "" +"Note that isolated modules do create some surprising edge cases. Most " +"notably, each module object will typically not share its classes and " +"exceptions with other similar modules. Continuing from the `example above " +"`__, note that ``old_binascii.Error`` and " +"``binascii.Error`` are separate objects. In the following code, the " +"exception is *not* caught:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:126 +msgid "" +">>> old_binascii.Error == binascii.Error\n" +"False\n" +">>> try:\n" +"... old_binascii.unhexlify(b'qwertyuiop')\n" +"... except binascii.Error:\n" +"... print('boo')\n" +"...\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +"binascii.Error: Non-hexadecimal digit found" +msgstr "" + +#: ../../howto/isolating-extensions.rst:139 +msgid "" +"This is expected. Notice that pure-Python modules behave the same way: it is " +"a part of how Python works." +msgstr "" + +#: ../../howto/isolating-extensions.rst:142 +msgid "" +"The goal is to make extension modules safe at the C level, not to make hacks " +"behave intuitively. Mutating ``sys.modules`` \"manually\" counts as a hack." +msgstr "" + +#: ../../howto/isolating-extensions.rst:148 +msgid "Making Modules Safe with Multiple Interpreters" +msgstr "" + +#: ../../howto/isolating-extensions.rst:152 +msgid "Managing Global State" +msgstr "" + +#: ../../howto/isolating-extensions.rst:154 +msgid "" +"Sometimes, the state associated with a Python module is not specific to that " +"module, but to the entire process (or something else \"more global\" than a " +"module). For example:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:158 +msgid "The ``readline`` module manages *the* terminal." +msgstr "" + +#: ../../howto/isolating-extensions.rst:159 +msgid "" +"A module running on a circuit board wants to control *the* on-board LED." +msgstr "" + +#: ../../howto/isolating-extensions.rst:162 +msgid "" +"In these cases, the Python module should provide *access* to the global " +"state, rather than *own* it. If possible, write the module so that multiple " +"copies of it can access the state independently (along with other libraries, " +"whether for Python or other languages). If that is not possible, consider " +"explicit locking." +msgstr "" + +#: ../../howto/isolating-extensions.rst:168 +msgid "" +"If it is necessary to use process-global state, the simplest way to avoid " +"issues with multiple interpreters is to explicitly prevent a module from " +"being loaded more than once per process—see :ref:`isolating-extensions-" +"optout`." +msgstr "" + +#: ../../howto/isolating-extensions.rst:175 +msgid "Managing Per-Module State" +msgstr "" + +#: ../../howto/isolating-extensions.rst:177 +msgid "" +"To use per-module state, use :ref:`multi-phase extension module " +"initialization `. This signals that your module " +"supports multiple interpreters correctly." +msgstr "" + +#: ../../howto/isolating-extensions.rst:181 +msgid "" +"Set ``PyModuleDef.m_size`` to a positive number to request that many bytes " +"of storage local to the module. Usually, this will be set to the size of " +"some module-specific ``struct``, which can store all of the module's C-level " +"state. In particular, it is where you should put pointers to classes " +"(including exceptions, but excluding static types) and settings (e.g. " +"``csv``'s :py:data:`~csv.field_size_limit`) which the C code needs to " +"function." +msgstr "" + +#: ../../howto/isolating-extensions.rst:190 +msgid "" +"Another option is to store state in the module's ``__dict__``, but you must " +"avoid crashing when users modify ``__dict__`` from Python code. This usually " +"means error- and type-checking at the C level, which is easy to get wrong " +"and hard to test sufficiently." +msgstr "" + +#: ../../howto/isolating-extensions.rst:195 +msgid "" +"However, if module state is not needed in C code, storing it in ``__dict__`` " +"only is a good idea." +msgstr "" + +#: ../../howto/isolating-extensions.rst:198 +msgid "" +"If the module state includes ``PyObject`` pointers, the module object must " +"hold references to those objects and implement the module-level hooks " +"``m_traverse``, ``m_clear`` and ``m_free``. These work like ``tp_traverse``, " +"``tp_clear`` and ``tp_free`` of a class. Adding them will require some work " +"and make the code longer; this is the price for modules which can be " +"unloaded cleanly." +msgstr "" + +#: ../../howto/isolating-extensions.rst:205 +msgid "" +"An example of a module with per-module state is currently available as " +"`xxlimited `__; example module initialization shown at the bottom of the " +"file." +msgstr "" + +#: ../../howto/isolating-extensions.rst:213 +msgid "Opt-Out: Limiting to One Module Object per Process" +msgstr "" + +#: ../../howto/isolating-extensions.rst:215 +msgid "" +"A non-negative ``PyModuleDef.m_size`` signals that a module supports " +"multiple interpreters correctly. If this is not yet the case for your " +"module, you can explicitly make your module loadable only once per process. " +"For example::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:220 +msgid "" +"// A process-wide flag\n" +"static int loaded = 0;\n" +"\n" +"// Mutex to provide thread safety (only needed for free-threaded Python)\n" +"static PyMutex modinit_mutex = {0};\n" +"\n" +"static int\n" +"exec_module(PyObject* module)\n" +"{\n" +" PyMutex_Lock(&modinit_mutex);\n" +" if (loaded) {\n" +" PyMutex_Unlock(&modinit_mutex);\n" +" PyErr_SetString(PyExc_ImportError,\n" +" \"cannot load module more than once per process\");\n" +" return -1;\n" +" }\n" +" loaded = 1;\n" +" PyMutex_Unlock(&modinit_mutex);\n" +" // ... rest of initialization\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:242 +msgid "" +"If your module's :c:member:`PyModuleDef.m_clear` function is able to prepare " +"for future re-initialization, it should clear the ``loaded`` flag. In this " +"case, your module won't support multiple instances existing *concurrently*, " +"but it will, for example, support being loaded after Python runtime shutdown " +"(:c:func:`Py_FinalizeEx`) and re-initialization (:c:func:`Py_Initialize`)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:251 +msgid "Module State Access from Functions" +msgstr "" + +#: ../../howto/isolating-extensions.rst:253 +msgid "" +"Accessing the state from module-level functions is straightforward. " +"Functions get the module object as their first argument; for extracting the " +"state, you can use ``PyModule_GetState``::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:257 +msgid "" +"static PyObject *\n" +"func(PyObject *module, PyObject *args)\n" +"{\n" +" my_struct *state = (my_struct*)PyModule_GetState(module);\n" +" if (state == NULL) {\n" +" return NULL;\n" +" }\n" +" // ... rest of logic\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:268 +msgid "" +"``PyModule_GetState`` may return ``NULL`` without setting an exception if " +"there is no module state, i.e. ``PyModuleDef.m_size`` was zero. In your own " +"module, you're in control of ``m_size``, so this is easy to prevent." +msgstr "" + +#: ../../howto/isolating-extensions.rst:275 +msgid "Heap Types" +msgstr "" + +#: ../../howto/isolating-extensions.rst:277 +msgid "" +"Traditionally, types defined in C code are *static*; that is, ``static " +"PyTypeObject`` structures defined directly in code and initialized using " +"``PyType_Ready()``." +msgstr "" + +#: ../../howto/isolating-extensions.rst:281 +msgid "" +"Such types are necessarily shared across the process. Sharing them between " +"module objects requires paying attention to any state they own or access. To " +"limit the possible issues, static types are immutable at the Python level: " +"for example, you can't set ``str.myattribute = 123``." +msgstr "" + +#: ../../howto/isolating-extensions.rst:287 +msgid "" +"Sharing truly immutable objects between interpreters is fine, as long as " +"they don't provide access to mutable objects. However, in CPython, every " +"Python object has a mutable implementation detail: the reference count. " +"Changes to the refcount are guarded by the GIL. Thus, code that shares any " +"Python objects across interpreters implicitly depends on CPython's current, " +"process-wide GIL." +msgstr "" + +#: ../../howto/isolating-extensions.rst:294 +msgid "" +"Because they are immutable and process-global, static types cannot access " +"\"their\" module state. If any method of such a type requires access to " +"module state, the type must be converted to a *heap-allocated type*, or " +"*heap type* for short. These correspond more closely to classes created by " +"Python's ``class`` statement." +msgstr "" + +#: ../../howto/isolating-extensions.rst:301 +msgid "For new modules, using heap types by default is a good rule of thumb." +msgstr "" + +#: ../../howto/isolating-extensions.rst:305 +msgid "Changing Static Types to Heap Types" +msgstr "" + +#: ../../howto/isolating-extensions.rst:307 +msgid "" +"Static types can be converted to heap types, but note that the heap type API " +"was not designed for \"lossless\" conversion from static types—that is, " +"creating a type that works exactly like a given static type. So, when " +"rewriting the class definition in a new API, you are likely to " +"unintentionally change a few details (e.g. pickleability or inherited " +"slots). Always test the details that are important to you." +msgstr "" + +#: ../../howto/isolating-extensions.rst:316 +msgid "" +"Watch out for the following two points in particular (but note that this is " +"not a comprehensive list):" +msgstr "" + +#: ../../howto/isolating-extensions.rst:319 +msgid "" +"Unlike static types, heap type objects are mutable by default. Use " +"the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." +msgstr "" + +#: ../../howto/isolating-extensions.rst:321 +msgid "" +"Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, so it may " +"become possible to instantiate them from Python code. You can prevent this " +"with the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag." +msgstr "" + +#: ../../howto/isolating-extensions.rst:327 +msgid "Defining Heap Types" +msgstr "" + +#: ../../howto/isolating-extensions.rst:329 +msgid "" +"Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a " +"description or \"blueprint\" of a class, and " +"calling :c:func:`PyType_FromModuleAndSpec` to construct a new class object." +msgstr "" + +#: ../../howto/isolating-extensions.rst:334 +msgid "" +"Other functions, like :c:func:`PyType_FromSpec`, can also create heap types, " +"but :c:func:`PyType_FromModuleAndSpec` associates the module with the class, " +"allowing access to the module state from methods." +msgstr "" + +#: ../../howto/isolating-extensions.rst:338 +msgid "" +"The class should generally be stored in *both* the module state (for safe " +"access from C) and the module's ``__dict__`` (for access from Python code)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:344 +msgid "Garbage-Collection Protocol" +msgstr "" + +#: ../../howto/isolating-extensions.rst:346 +msgid "" +"Instances of heap types hold a reference to their type. This ensures that " +"the type isn't destroyed before all its instances are, but may result in " +"reference cycles that need to be broken by the garbage collector." +msgstr "" + +#: ../../howto/isolating-extensions.rst:351 +msgid "" +"To avoid memory leaks, instances of heap types must implement the garbage " +"collection protocol. That is, heap types should:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:355 +msgid "Have the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." +msgstr "" + +#: ../../howto/isolating-extensions.rst:356 +msgid "" +"Define a traverse function using ``Py_tp_traverse``, which visits the type " +"(e.g. using ``Py_VISIT(Py_TYPE(self))``)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:359 +msgid "" +"Please refer to the documentation of :c:macro:`Py_TPFLAGS_HAVE_GC` " +"and :c:member:`~PyTypeObject.tp_traverse` for additional considerations." +msgstr "" + +#: ../../howto/isolating-extensions.rst:363 +msgid "" +"The API for defining heap types grew organically, leaving it somewhat " +"awkward to use in its current state. The following sections will guide you " +"through common issues." +msgstr "" + +#: ../../howto/isolating-extensions.rst:369 +msgid "``tp_traverse`` in Python 3.8 and lower" +msgstr "" + +#: ../../howto/isolating-extensions.rst:371 +msgid "" +"The requirement to visit the type from ``tp_traverse`` was added in Python " +"3.9. If you support Python 3.8 and lower, the traverse function must *not* " +"visit the type, so it must be more complicated::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:375 +msgid "" +"static int my_traverse(PyObject *self, visitproc visit, void *arg)\n" +"{\n" +" if (Py_Version >= 0x03090000) {\n" +" Py_VISIT(Py_TYPE(self));\n" +" }\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:383 +msgid "" +"Unfortunately, :c:data:`Py_Version` was only added in Python 3.11. As a " +"replacement, use:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:386 +msgid ":c:macro:`PY_VERSION_HEX`, if not using the stable ABI, or" +msgstr "" + +#: ../../howto/isolating-extensions.rst:387 +msgid "" +":py:data:`sys.version_info` (via :c:func:`PySys_GetObject` " +"and :c:func:`PyArg_ParseTuple`)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:392 +msgid "Delegating ``tp_traverse``" +msgstr "" + +#: ../../howto/isolating-extensions.rst:394 +msgid "" +"If your traverse function delegates to " +"the :c:member:`~PyTypeObject.tp_traverse` of its base class (or another " +"type), ensure that ``Py_TYPE(self)`` is visited only once. Note that only " +"heap type are expected to visit the type in ``tp_traverse``." +msgstr "" + +#: ../../howto/isolating-extensions.rst:399 +msgid "For example, if your traverse function includes::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:401 +msgid "base->tp_traverse(self, visit, arg)" +msgstr "" + +#: ../../howto/isolating-extensions.rst:403 +msgid "...and ``base`` may be a static type, then it should also include::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:405 +msgid "" +"if (base->tp_flags & Py_TPFLAGS_HEAPTYPE) {\n" +" // a heap type's tp_traverse already visited Py_TYPE(self)\n" +"} else {\n" +" if (Py_Version >= 0x03090000) {\n" +" Py_VISIT(Py_TYPE(self));\n" +" }\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:413 +msgid "" +"It is not necessary to handle the type's reference count " +"in :c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_clear`." +msgstr "" + +#: ../../howto/isolating-extensions.rst:418 +msgid "Defining ``tp_dealloc``" +msgstr "" + +#: ../../howto/isolating-extensions.rst:420 +msgid "" +"If your type has a custom :c:member:`~PyTypeObject.tp_dealloc` function, it " +"needs to:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:423 +msgid "" +"call :c:func:`PyObject_GC_UnTrack` before any fields are invalidated, and" +msgstr "" + +#: ../../howto/isolating-extensions.rst:424 +msgid "decrement the reference count of the type." +msgstr "" + +#: ../../howto/isolating-extensions.rst:426 +msgid "" +"To keep the type valid while ``tp_free`` is called, the type's refcount " +"needs to be decremented *after* the instance is deallocated. For example::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:429 +msgid "" +"static void my_dealloc(PyObject *self)\n" +"{\n" +" PyObject_GC_UnTrack(self);\n" +" ...\n" +" PyTypeObject *type = Py_TYPE(self);\n" +" type->tp_free(self);\n" +" Py_DECREF(type);\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:438 +msgid "" +"The default ``tp_dealloc`` function does this, so if your type does *not* " +"override ``tp_dealloc`` you don't need to add it." +msgstr "" + +#: ../../howto/isolating-extensions.rst:444 +msgid "Not overriding ``tp_free``" +msgstr "" + +#: ../../howto/isolating-extensions.rst:446 +msgid "" +"The :c:member:`~PyTypeObject.tp_free` slot of a heap type must be set " +"to :c:func:`PyObject_GC_Del`. This is the default; do not override it." +msgstr "" + +#: ../../howto/isolating-extensions.rst:452 +msgid "Avoiding ``PyObject_New``" +msgstr "" + +#: ../../howto/isolating-extensions.rst:454 +msgid "GC-tracked objects need to be allocated using GC-aware functions." +msgstr "" + +#: ../../howto/isolating-extensions.rst:456 +msgid "If you use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:458 +msgid "" +"Get and call type's :c:member:`~PyTypeObject.tp_alloc` slot, if possible. " +"That is, replace ``TYPE *o = PyObject_New(TYPE, typeobj)`` with::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:461 +msgid "TYPE *o = typeobj->tp_alloc(typeobj, 0);" +msgstr "" + +#: ../../howto/isolating-extensions.rst:463 +msgid "" +"Replace ``o = PyObject_NewVar(TYPE, typeobj, size)`` with the same, but use " +"size instead of the 0." +msgstr "" + +#: ../../howto/isolating-extensions.rst:466 +msgid "" +"If the above is not possible (e.g. inside a custom ``tp_alloc``), " +"call :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:469 +msgid "" +"TYPE *o = PyObject_GC_New(TYPE, typeobj);\n" +"\n" +"TYPE *o = PyObject_GC_NewVar(TYPE, typeobj, size);" +msgstr "" + +#: ../../howto/isolating-extensions.rst:475 +msgid "Module State Access from Classes" +msgstr "" + +#: ../../howto/isolating-extensions.rst:477 +msgid "" +"If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, " +"you can call :c:func:`PyType_GetModule` to get the associated module, and " +"then :c:func:`PyModule_GetState` to get the module's state." +msgstr "" + +#: ../../howto/isolating-extensions.rst:481 +msgid "" +"To save a some tedious error-handling boilerplate code, you can combine " +"these two steps with :c:func:`PyType_GetModuleState`, resulting in::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:484 +msgid "" +"my_struct *state = (my_struct*)PyType_GetModuleState(type);\n" +"if (state == NULL) {\n" +" return NULL;\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:491 +msgid "Module State Access from Regular Methods" +msgstr "" + +#: ../../howto/isolating-extensions.rst:493 +msgid "" +"Accessing the module-level state from methods of a class is somewhat more " +"complicated, but is possible thanks to API introduced in Python 3.9. To get " +"the state, you need to first get the *defining class*, and then get the " +"module state from it." +msgstr "" + +#: ../../howto/isolating-extensions.rst:498 +msgid "" +"The largest roadblock is getting *the class a method was defined in*, or " +"that method's \"defining class\" for short. The defining class can have a " +"reference to the module it is part of." +msgstr "" + +#: ../../howto/isolating-extensions.rst:502 +msgid "" +"Do not confuse the defining class with ``Py_TYPE(self)``. If the method is " +"called on a *subclass* of your type, ``Py_TYPE(self)`` will refer to that " +"subclass, which may be defined in different module than yours." +msgstr "" + +#: ../../howto/isolating-extensions.rst:507 +msgid "" +"The following Python code can illustrate the concept. " +"``Base.get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" +msgstr "" + +#: ../../howto/isolating-extensions.rst:511 +msgid "" +"class Base:\n" +" def get_type_of_self(self):\n" +" return type(self)\n" +"\n" +" def get_defining_class(self):\n" +" return __class__\n" +"\n" +"class Sub(Base):\n" +" pass" +msgstr "" + +#: ../../howto/isolating-extensions.rst:523 +msgid "" +"For a method to get its \"defining class\", it must use " +"the :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS ` :c:type:`calling convention ` and " +"the corresponding :c:type:`PyCMethod` signature::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:528 +msgid "" +"PyObject *PyCMethod(\n" +" PyObject *self, // object the method was called on\n" +" PyTypeObject *defining_class, // defining class\n" +" PyObject *const *args, // C array of arguments\n" +" Py_ssize_t nargs, // length of \"args\"\n" +" PyObject *kwnames) // NULL, or dict of keyword arguments" +msgstr "" + +#: ../../howto/isolating-extensions.rst:535 +msgid "" +"Once you have the defining class, call :c:func:`PyType_GetModuleState` to " +"get the state of its associated module." +msgstr "" + +#: ../../howto/isolating-extensions.rst:538 +msgid "For example::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:540 +msgid "" +"static PyObject *\n" +"example_method(PyObject *self,\n" +" PyTypeObject *defining_class,\n" +" PyObject *const *args,\n" +" Py_ssize_t nargs,\n" +" PyObject *kwnames)\n" +"{\n" +" my_struct *state = (my_struct*)PyType_GetModuleState(defining_class);\n" +" if (state == NULL) {\n" +" return NULL;\n" +" }\n" +" ... // rest of logic\n" +"}\n" +"\n" +"PyDoc_STRVAR(example_method_doc, \"...\");\n" +"\n" +"static PyMethodDef my_methods[] = {\n" +" {\"example_method\",\n" +" (PyCFunction)(void(*)(void))example_method,\n" +" METH_METHOD|METH_FASTCALL|METH_KEYWORDS,\n" +" example_method_doc}\n" +" {NULL},\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:566 +msgid "Module State Access from Slot Methods, Getters and Setters" +msgstr "" + +#: ../../howto/isolating-extensions.rst:570 +msgid "This is new in Python 3.11." +msgstr "" + +#: ../../howto/isolating-extensions.rst:578 +msgid "" +"Slot methods—the fast C equivalents for special methods, such " +"as :c:member:`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` " +"or :c:member:`~PyTypeObject.tp_new` for initialization—have a very simple " +"API that doesn't allow passing in the defining class, unlike " +"with :c:type:`PyCMethod`. The same goes for getters and setters defined " +"with :c:type:`PyGetSetDef`." +msgstr "" + +#: ../../howto/isolating-extensions.rst:585 +msgid "" +"To access the module state in these cases, use " +"the :c:func:`PyType_GetModuleByDef` function, and pass in the module " +"definition. Once you have the module, call :c:func:`PyModule_GetState` to " +"get the state::" +msgstr "" + +#: ../../howto/isolating-extensions.rst:590 +msgid "" +"PyObject *module = PyType_GetModuleByDef(Py_TYPE(self), &module_def);\n" +"my_struct *state = (my_struct*)PyModule_GetState(module);\n" +"if (state == NULL) {\n" +" return NULL;\n" +"}" +msgstr "" + +#: ../../howto/isolating-extensions.rst:596 +msgid "" +":c:func:`!PyType_GetModuleByDef` works by searching the :term:`method " +"resolution order` (i.e. all superclasses) for the first superclass that has " +"a corresponding module." +msgstr "" + +#: ../../howto/isolating-extensions.rst:602 +msgid "" +"In very exotic cases (inheritance chains spanning multiple modules created " +"from the same definition), :c:func:`!PyType_GetModuleByDef` might not return " +"the module of the true defining class. However, it will always return a " +"module with the same definition, ensuring a compatible C memory layout." +msgstr "" + +#: ../../howto/isolating-extensions.rst:610 +msgid "Lifetime of the Module State" +msgstr "" + +#: ../../howto/isolating-extensions.rst:612 +msgid "" +"When a module object is garbage-collected, its module state is freed. For " +"each pointer to (a part of) the module state, you must hold a reference to " +"the module object." +msgstr "" + +#: ../../howto/isolating-extensions.rst:616 +msgid "" +"Usually this is not an issue, because types created " +"with :c:func:`PyType_FromModuleAndSpec`, and their instances, hold a " +"reference to the module. However, you must be careful in reference counting " +"when you reference module state from other places, such as callbacks for " +"external libraries." +msgstr "" + +#: ../../howto/isolating-extensions.rst:625 +msgid "Open Issues" +msgstr "" + +#: ../../howto/isolating-extensions.rst:627 +msgid "Several issues around per-module state and heap types are still open." +msgstr "" + +#: ../../howto/isolating-extensions.rst:629 +msgid "" +"Discussions about improving the situation are best held on the `discuss " +"forum under c-api tag `__." +msgstr "" + +#: ../../howto/isolating-extensions.rst:633 +msgid "Per-Class Scope" +msgstr "" + +#: ../../howto/isolating-extensions.rst:635 +msgid "" +"It is currently (as of Python 3.11) not possible to attach state to " +"individual *types* without relying on CPython implementation details (which " +"may change in the future—perhaps, ironically, to allow a proper solution for " +"per-class scope)." +msgstr "" + +#: ../../howto/isolating-extensions.rst:642 +msgid "Lossless Conversion to Heap Types" +msgstr "" + +#: ../../howto/isolating-extensions.rst:644 +msgid "" +"The heap type API was not designed for \"lossless\" conversion from static " +"types; that is, creating a type that works exactly like a given static type." +msgstr "" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po new file mode 100644 index 0000000..d02a810 --- /dev/null +++ b/howto/logging-cookbook.po @@ -0,0 +1,5364 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/logging-cookbook.rst:5 +msgid "Logging Cookbook" +msgstr "" + +#: ../../howto/logging-cookbook.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/logging-cookbook.rst:7 +msgid "Vinay Sajip " +msgstr "" + +#: ../../howto/logging-cookbook.rst:9 +msgid "" +"This page contains a number of recipes related to logging, which have been " +"found useful in the past. For links to tutorial and reference information, " +"please see :ref:`cookbook-ref-links`." +msgstr "" + +#: ../../howto/logging-cookbook.rst:16 +msgid "Using logging in multiple modules" +msgstr "" + +#: ../../howto/logging-cookbook.rst:18 +msgid "" +"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " +"the same logger object. This is true not only within the same module, but " +"also across modules as long as it is in the same Python interpreter " +"process. It is true for references to the same object; additionally, " +"application code can define and configure a parent logger in one module and " +"create (but not configure) a child logger in a separate module, and all " +"logger calls to the child will pass up to the parent. Here is a main " +"module::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:26 +msgid "" +"import logging\n" +"import auxiliary_module\n" +"\n" +"# create logger with 'spam_application'\n" +"logger = logging.getLogger('spam_application')\n" +"logger.setLevel(logging.DEBUG)\n" +"# create file handler which logs even debug messages\n" +"fh = logging.FileHandler('spam.log')\n" +"fh.setLevel(logging.DEBUG)\n" +"# create console handler with a higher log level\n" +"ch = logging.StreamHandler()\n" +"ch.setLevel(logging.ERROR)\n" +"# create formatter and add it to the handlers\n" +"formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %" +"(message)s')\n" +"fh.setFormatter(formatter)\n" +"ch.setFormatter(formatter)\n" +"# add the handlers to the logger\n" +"logger.addHandler(fh)\n" +"logger.addHandler(ch)\n" +"\n" +"logger.info('creating an instance of auxiliary_module.Auxiliary')\n" +"a = auxiliary_module.Auxiliary()\n" +"logger.info('created an instance of auxiliary_module.Auxiliary')\n" +"logger.info('calling auxiliary_module.Auxiliary.do_something')\n" +"a.do_something()\n" +"logger.info('finished auxiliary_module.Auxiliary.do_something')\n" +"logger.info('calling auxiliary_module.some_function()')\n" +"auxiliary_module.some_function()\n" +"logger.info('done with auxiliary_module.some_function()')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:56 +msgid "Here is the auxiliary module::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:58 +msgid "" +"import logging\n" +"\n" +"# create logger\n" +"module_logger = logging.getLogger('spam_application.auxiliary')\n" +"\n" +"class Auxiliary:\n" +" def __init__(self):\n" +" self.logger = " +"logging.getLogger('spam_application.auxiliary.Auxiliary')\n" +" self.logger.info('creating an instance of Auxiliary')\n" +"\n" +" def do_something(self):\n" +" self.logger.info('doing something')\n" +" a = 1 + 1\n" +" self.logger.info('done doing something')\n" +"\n" +"def some_function():\n" +" module_logger.info('received a call to \"some_function\"')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:76 +msgid "The output looks like this:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:78 +msgid "" +"2005-03-23 23:47:11,663 - spam_application - INFO -\n" +" creating an instance of auxiliary_module.Auxiliary\n" +"2005-03-23 23:47:11,665 - spam_application.auxiliary.Auxiliary - INFO -\n" +" creating an instance of Auxiliary\n" +"2005-03-23 23:47:11,665 - spam_application - INFO -\n" +" created an instance of auxiliary_module.Auxiliary\n" +"2005-03-23 23:47:11,668 - spam_application - INFO -\n" +" calling auxiliary_module.Auxiliary.do_something\n" +"2005-03-23 23:47:11,668 - spam_application.auxiliary.Auxiliary - INFO -\n" +" doing something\n" +"2005-03-23 23:47:11,669 - spam_application.auxiliary.Auxiliary - INFO -\n" +" done doing something\n" +"2005-03-23 23:47:11,670 - spam_application - INFO -\n" +" finished auxiliary_module.Auxiliary.do_something\n" +"2005-03-23 23:47:11,671 - spam_application - INFO -\n" +" calling auxiliary_module.some_function()\n" +"2005-03-23 23:47:11,672 - spam_application.auxiliary - INFO -\n" +" received a call to 'some_function'\n" +"2005-03-23 23:47:11,673 - spam_application - INFO -\n" +" done with auxiliary_module.some_function()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:102 +msgid "Logging from multiple threads" +msgstr "" + +#: ../../howto/logging-cookbook.rst:104 +msgid "" +"Logging from multiple threads requires no special effort. The following " +"example shows logging from the main (initial) thread and another thread::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:107 +msgid "" +"import logging\n" +"import threading\n" +"import time\n" +"\n" +"def worker(arg):\n" +" while not arg['stop']:\n" +" logging.debug('Hi from myfunc')\n" +" time.sleep(0.5)\n" +"\n" +"def main():\n" +" logging.basicConfig(level=logging.DEBUG, format='%(relativeCreated)6d %" +"(threadName)s %(message)s')\n" +" info = {'stop': False}\n" +" thread = threading.Thread(target=worker, args=(info,))\n" +" thread.start()\n" +" while True:\n" +" try:\n" +" logging.debug('Hello from main')\n" +" time.sleep(0.75)\n" +" except KeyboardInterrupt:\n" +" info['stop'] = True\n" +" break\n" +" thread.join()\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:133 +msgid "When run, the script should print something like the following:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:135 +msgid "" +" 0 Thread-1 Hi from myfunc\n" +" 3 MainThread Hello from main\n" +" 505 Thread-1 Hi from myfunc\n" +" 755 MainThread Hello from main\n" +"1007 Thread-1 Hi from myfunc\n" +"1507 MainThread Hello from main\n" +"1508 Thread-1 Hi from myfunc\n" +"2010 Thread-1 Hi from myfunc\n" +"2258 MainThread Hello from main\n" +"2512 Thread-1 Hi from myfunc\n" +"3009 MainThread Hello from main\n" +"3013 Thread-1 Hi from myfunc\n" +"3515 Thread-1 Hi from myfunc\n" +"3761 MainThread Hello from main\n" +"4017 Thread-1 Hi from myfunc\n" +"4513 MainThread Hello from main\n" +"4518 Thread-1 Hi from myfunc" +msgstr "" + +#: ../../howto/logging-cookbook.rst:155 +msgid "" +"This shows the logging output interspersed as one might expect. This " +"approach works for more threads than shown here, of course." +msgstr "" + +#: ../../howto/logging-cookbook.rst:159 +msgid "Multiple handlers and formatters" +msgstr "" + +#: ../../howto/logging-cookbook.rst:161 +msgid "" +"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " +"no minimum or maximum quota for the number of handlers you may add. " +"Sometimes it will be beneficial for an application to log all messages of " +"all severities to a text file while simultaneously logging errors or above " +"to the console. To set this up, simply configure the appropriate handlers. " +"The logging calls in the application code will remain unchanged. Here is a " +"slight modification to the previous simple module-based configuration " +"example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:169 +msgid "" +"import logging\n" +"\n" +"logger = logging.getLogger('simple_example')\n" +"logger.setLevel(logging.DEBUG)\n" +"# create file handler which logs even debug messages\n" +"fh = logging.FileHandler('spam.log')\n" +"fh.setLevel(logging.DEBUG)\n" +"# create console handler with a higher log level\n" +"ch = logging.StreamHandler()\n" +"ch.setLevel(logging.ERROR)\n" +"# create formatter and add it to the handlers\n" +"formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %" +"(message)s')\n" +"ch.setFormatter(formatter)\n" +"fh.setFormatter(formatter)\n" +"# add the handlers to logger\n" +"logger.addHandler(ch)\n" +"logger.addHandler(fh)\n" +"\n" +"# 'application' code\n" +"logger.debug('debug message')\n" +"logger.info('info message')\n" +"logger.warning('warn message')\n" +"logger.error('error message')\n" +"logger.critical('critical message')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:194 +msgid "" +"Notice that the 'application' code does not care about multiple handlers. " +"All that changed was the addition and configuration of a new handler named " +"*fh*." +msgstr "" + +#: ../../howto/logging-cookbook.rst:197 +msgid "" +"The ability to create new handlers with higher- or lower-severity filters " +"can be very helpful when writing and testing an application. Instead of " +"using many ``print`` statements for debugging, use ``logger.debug``: Unlike " +"the print statements, which you will have to delete or comment out later, " +"the logger.debug statements can remain intact in the source code and remain " +"dormant until you need them again. At that time, the only change that needs " +"to happen is to modify the severity level of the logger and/or handler to " +"debug." +msgstr "" + +#: ../../howto/logging-cookbook.rst:208 +msgid "Logging to multiple destinations" +msgstr "" + +#: ../../howto/logging-cookbook.rst:210 +msgid "" +"Let's say you want to log to console and file with different message formats " +"and in differing circumstances. Say you want to log messages with levels of " +"DEBUG and higher to file, and those messages at level INFO and higher to the " +"console. Let's also assume that the file should contain timestamps, but the " +"console messages should not. Here's how you can achieve this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:216 +msgid "" +"import logging\n" +"\n" +"# set up logging to file - see previous section for more details\n" +"logging.basicConfig(level=logging.DEBUG,\n" +" format='%(asctime)s %(name)-12s %(levelname)-8s %" +"(message)s',\n" +" datefmt='%m-%d %H:%M',\n" +" filename='/tmp/myapp.log',\n" +" filemode='w')\n" +"# define a Handler which writes INFO messages or higher to the sys.stderr\n" +"console = logging.StreamHandler()\n" +"console.setLevel(logging.INFO)\n" +"# set a format which is simpler for console use\n" +"formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')\n" +"# tell the handler to use this format\n" +"console.setFormatter(formatter)\n" +"# add the handler to the root logger\n" +"logging.getLogger('').addHandler(console)\n" +"\n" +"# Now, we can log to the root logger, or any other logger. First the " +"root...\n" +"logging.info('Jackdaws love my big sphinx of quartz.')\n" +"\n" +"# Now, define a couple of other loggers which might represent areas in your\n" +"# application:\n" +"\n" +"logger1 = logging.getLogger('myapp.area1')\n" +"logger2 = logging.getLogger('myapp.area2')\n" +"\n" +"logger1.debug('Quick zephyrs blow, vexing daft Jim.')\n" +"logger1.info('How quickly daft jumping zebras vex.')\n" +"logger2.warning('Jail zesty vixen who grabbed pay from quack.')\n" +"logger2.error('The five boxing wizards jump quickly.')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:248 +msgid "When you run this, on the console you will see" +msgstr "" + +#: ../../howto/logging-cookbook.rst:250 +msgid "" +"root : INFO Jackdaws love my big sphinx of quartz.\n" +"myapp.area1 : INFO How quickly daft jumping zebras vex.\n" +"myapp.area2 : WARNING Jail zesty vixen who grabbed pay from quack.\n" +"myapp.area2 : ERROR The five boxing wizards jump quickly." +msgstr "" + +#: ../../howto/logging-cookbook.rst:257 +msgid "and in the file you will see something like" +msgstr "" + +#: ../../howto/logging-cookbook.rst:259 +msgid "" +"10-22 22:19 root INFO Jackdaws love my big sphinx of quartz.\n" +"10-22 22:19 myapp.area1 DEBUG Quick zephyrs blow, vexing daft Jim.\n" +"10-22 22:19 myapp.area1 INFO How quickly daft jumping zebras vex.\n" +"10-22 22:19 myapp.area2 WARNING Jail zesty vixen who grabbed pay from " +"quack.\n" +"10-22 22:19 myapp.area2 ERROR The five boxing wizards jump quickly." +msgstr "" + +#: ../../howto/logging-cookbook.rst:267 +msgid "" +"As you can see, the DEBUG message only shows up in the file. The other " +"messages are sent to both destinations." +msgstr "" + +#: ../../howto/logging-cookbook.rst:270 +msgid "" +"This example uses console and file handlers, but you can use any number and " +"combination of handlers you choose." +msgstr "" + +#: ../../howto/logging-cookbook.rst:273 +msgid "" +"Note that the above choice of log filename ``/tmp/myapp.log`` implies use of " +"a standard location for temporary files on POSIX systems. On Windows, you " +"may need to choose a different directory name for the log - just ensure that " +"the directory exists and that you have the permissions to create and update " +"files in it." +msgstr "" + +#: ../../howto/logging-cookbook.rst:282 +msgid "Custom handling of levels" +msgstr "" + +#: ../../howto/logging-cookbook.rst:284 +msgid "" +"Sometimes, you might want to do something slightly different from the " +"standard handling of levels in handlers, where all levels above a threshold " +"get processed by a handler. To do this, you need to use filters. Let's look " +"at a scenario where you want to arrange things as follows:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:289 +msgid "Send messages of severity ``INFO`` and ``WARNING`` to ``sys.stdout``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:290 +msgid "Send messages of severity ``ERROR`` and above to ``sys.stderr``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:291 +msgid "Send messages of severity ``DEBUG`` and above to file ``app.log``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:293 +msgid "Suppose you configure logging with the following JSON:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:295 +msgid "" +"{\n" +" \"version\": 1,\n" +" \"disable_existing_loggers\": false,\n" +" \"formatters\": {\n" +" \"simple\": {\n" +" \"format\": \"%(levelname)-8s - %(message)s\"\n" +" }\n" +" },\n" +" \"handlers\": {\n" +" \"stdout\": {\n" +" \"class\": \"logging.StreamHandler\",\n" +" \"level\": \"INFO\",\n" +" \"formatter\": \"simple\",\n" +" \"stream\": \"ext://sys.stdout\"\n" +" },\n" +" \"stderr\": {\n" +" \"class\": \"logging.StreamHandler\",\n" +" \"level\": \"ERROR\",\n" +" \"formatter\": \"simple\",\n" +" \"stream\": \"ext://sys.stderr\"\n" +" },\n" +" \"file\": {\n" +" \"class\": \"logging.FileHandler\",\n" +" \"formatter\": \"simple\",\n" +" \"filename\": \"app.log\",\n" +" \"mode\": \"w\"\n" +" }\n" +" },\n" +" \"root\": {\n" +" \"level\": \"DEBUG\",\n" +" \"handlers\": [\n" +" \"stderr\",\n" +" \"stdout\",\n" +" \"file\"\n" +" ]\n" +" }\n" +"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:335 +msgid "" +"This configuration does *almost* what we want, except that ``sys.stdout`` " +"would show messages of severity ``ERROR`` and only events of this severity " +"and higher will be tracked as well as ``INFO`` and ``WARNING`` messages. To " +"prevent this, we can set up a filter which excludes those messages and add " +"it to the relevant handler. This can be configured by adding a ``filters`` " +"section parallel to ``formatters`` and ``handlers``:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:341 +msgid "" +"{\n" +" \"filters\": {\n" +" \"warnings_and_below\": {\n" +" \"()\" : \"__main__.filter_maker\",\n" +" \"level\": \"WARNING\"\n" +" }\n" +" }\n" +"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:352 +msgid "and changing the section on the ``stdout`` handler to add it:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:354 +msgid "" +"{\n" +" \"stdout\": {\n" +" \"class\": \"logging.StreamHandler\",\n" +" \"level\": \"INFO\",\n" +" \"formatter\": \"simple\",\n" +" \"stream\": \"ext://sys.stdout\",\n" +" \"filters\": [\"warnings_and_below\"]\n" +" }\n" +"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:366 +msgid "" +"A filter is just a function, so we can define the ``filter_maker`` (a " +"factory function) as follows:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:369 +msgid "" +"def filter_maker(level):\n" +" level = getattr(logging, level)\n" +"\n" +" def filter(record):\n" +" return record.levelno <= level\n" +"\n" +" return filter" +msgstr "" + +#: ../../howto/logging-cookbook.rst:379 +msgid "" +"This converts the string argument passed in to a numeric level, and returns " +"a function which only returns ``True`` if the level of the passed in record " +"is at or below the specified level. Note that in this example I have defined " +"the ``filter_maker`` in a test script ``main.py`` that I run from the " +"command line, so its module will be ``__main__`` - hence the " +"``__main__.filter_maker`` in the filter configuration. You will need to " +"change that if you define it in a different module." +msgstr "" + +#: ../../howto/logging-cookbook.rst:387 +msgid "With the filter added, we can run ``main.py``, which in full is:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:389 +msgid "" +"import json\n" +"import logging\n" +"import logging.config\n" +"\n" +"CONFIG = '''\n" +"{\n" +" \"version\": 1,\n" +" \"disable_existing_loggers\": false,\n" +" \"formatters\": {\n" +" \"simple\": {\n" +" \"format\": \"%(levelname)-8s - %(message)s\"\n" +" }\n" +" },\n" +" \"filters\": {\n" +" \"warnings_and_below\": {\n" +" \"()\" : \"__main__.filter_maker\",\n" +" \"level\": \"WARNING\"\n" +" }\n" +" },\n" +" \"handlers\": {\n" +" \"stdout\": {\n" +" \"class\": \"logging.StreamHandler\",\n" +" \"level\": \"INFO\",\n" +" \"formatter\": \"simple\",\n" +" \"stream\": \"ext://sys.stdout\",\n" +" \"filters\": [\"warnings_and_below\"]\n" +" },\n" +" \"stderr\": {\n" +" \"class\": \"logging.StreamHandler\",\n" +" \"level\": \"ERROR\",\n" +" \"formatter\": \"simple\",\n" +" \"stream\": \"ext://sys.stderr\"\n" +" },\n" +" \"file\": {\n" +" \"class\": \"logging.FileHandler\",\n" +" \"formatter\": \"simple\",\n" +" \"filename\": \"app.log\",\n" +" \"mode\": \"w\"\n" +" }\n" +" },\n" +" \"root\": {\n" +" \"level\": \"DEBUG\",\n" +" \"handlers\": [\n" +" \"stderr\",\n" +" \"stdout\",\n" +" \"file\"\n" +" ]\n" +" }\n" +"}\n" +"'''\n" +"\n" +"def filter_maker(level):\n" +" level = getattr(logging, level)\n" +"\n" +" def filter(record):\n" +" return record.levelno <= level\n" +"\n" +" return filter\n" +"\n" +"logging.config.dictConfig(json.loads(CONFIG))\n" +"logging.debug('A DEBUG message')\n" +"logging.info('An INFO message')\n" +"logging.warning('A WARNING message')\n" +"logging.error('An ERROR message')\n" +"logging.critical('A CRITICAL message')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:457 +msgid "And after running it like this:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:459 +msgid "python main.py 2>stderr.log >stdout.log" +msgstr "" + +#: ../../howto/logging-cookbook.rst:463 +msgid "We can see the results are as expected:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:465 +msgid "" +"$ more *.log\n" +"::::::::::::::\n" +"app.log\n" +"::::::::::::::\n" +"DEBUG - A DEBUG message\n" +"INFO - An INFO message\n" +"WARNING - A WARNING message\n" +"ERROR - An ERROR message\n" +"CRITICAL - A CRITICAL message\n" +"::::::::::::::\n" +"stderr.log\n" +"::::::::::::::\n" +"ERROR - An ERROR message\n" +"CRITICAL - A CRITICAL message\n" +"::::::::::::::\n" +"stdout.log\n" +"::::::::::::::\n" +"INFO - An INFO message\n" +"WARNING - A WARNING message" +msgstr "" + +#: ../../howto/logging-cookbook.rst:489 +msgid "Configuration server example" +msgstr "" + +#: ../../howto/logging-cookbook.rst:491 +msgid "Here is an example of a module using the logging configuration server::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:493 +msgid "" +"import logging\n" +"import logging.config\n" +"import time\n" +"import os\n" +"\n" +"# read initial config file\n" +"logging.config.fileConfig('logging.conf')\n" +"\n" +"# create and start listener on port 9999\n" +"t = logging.config.listen(9999)\n" +"t.start()\n" +"\n" +"logger = logging.getLogger('simpleExample')\n" +"\n" +"try:\n" +" # loop through logging calls to see the difference\n" +" # new configurations make, until Ctrl+C is pressed\n" +" while True:\n" +" logger.debug('debug message')\n" +" logger.info('info message')\n" +" logger.warning('warn message')\n" +" logger.error('error message')\n" +" logger.critical('critical message')\n" +" time.sleep(5)\n" +"except KeyboardInterrupt:\n" +" # cleanup\n" +" logging.config.stopListening()\n" +" t.join()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:522 +msgid "" +"And here is a script that takes a filename and sends that file to the " +"server, properly preceded with the binary-encoded length, as the new logging " +"configuration::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:526 +msgid "" +"#!/usr/bin/env python\n" +"import socket, sys, struct\n" +"\n" +"with open(sys.argv[1], 'rb') as f:\n" +" data_to_send = f.read()\n" +"\n" +"HOST = 'localhost'\n" +"PORT = 9999\n" +"s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" +"print('connecting...')\n" +"s.connect((HOST, PORT))\n" +"print('sending config...')\n" +"s.send(struct.pack('>L', len(data_to_send)))\n" +"s.send(data_to_send)\n" +"s.close()\n" +"print('complete')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:547 +msgid "Dealing with handlers that block" +msgstr "" + +#: ../../howto/logging-cookbook.rst:551 +msgid "" +"Sometimes you have to get your logging handlers to do their work without " +"blocking the thread you're logging from. This is common in web applications, " +"though of course it also occurs in other scenarios." +msgstr "" + +#: ../../howto/logging-cookbook.rst:555 +msgid "" +"A common culprit which demonstrates sluggish behaviour is " +"the :class:`SMTPHandler`: sending emails can take a long time, for a number " +"of reasons outside the developer's control (for example, a poorly performing " +"mail or network infrastructure). But almost any network-based handler can " +"block: Even a :class:`SocketHandler` operation may do a DNS query under the " +"hood which is too slow (and this query can be deep in the socket library " +"code, below the Python layer, and outside your control)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:563 +msgid "" +"One solution is to use a two-part approach. For the first part, attach only " +"a :class:`QueueHandler` to those loggers which are accessed from performance-" +"critical threads. They simply write to their queue, which can be sized to a " +"large enough capacity or initialized with no upper bound to their size. The " +"write to the queue will typically be accepted quickly, though you will " +"probably need to catch the :exc:`queue.Full` exception as a precaution in " +"your code. If you are a library developer who has performance-critical " +"threads in their code, be sure to document this (together with a suggestion " +"to attach only ``QueueHandlers`` to your loggers) for the benefit of other " +"developers who will use your code." +msgstr "" + +#: ../../howto/logging-cookbook.rst:574 +msgid "" +"The second part of the solution is :class:`QueueListener`, which has been " +"designed as the counterpart to :class:`QueueHandler`. " +"A :class:`QueueListener` is very simple: it's passed a queue and some " +"handlers, and it fires up an internal thread which listens to its queue for " +"LogRecords sent from ``QueueHandlers`` (or any other source of " +"``LogRecords``, for that matter). The ``LogRecords`` are removed from the " +"queue and passed to the handlers for processing." +msgstr "" + +#: ../../howto/logging-cookbook.rst:582 +msgid "" +"The advantage of having a separate :class:`QueueListener` class is that you " +"can use the same instance to service multiple ``QueueHandlers``. This is " +"more resource-friendly than, say, having threaded versions of the existing " +"handler classes, which would eat up one thread per handler for no particular " +"benefit." +msgstr "" + +#: ../../howto/logging-cookbook.rst:587 +msgid "An example of using these two classes follows (imports omitted)::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:589 +msgid "" +"que = queue.Queue(-1) # no limit on size\n" +"queue_handler = QueueHandler(que)\n" +"handler = logging.StreamHandler()\n" +"listener = QueueListener(que, handler)\n" +"root = logging.getLogger()\n" +"root.addHandler(queue_handler)\n" +"formatter = logging.Formatter('%(threadName)s: %(message)s')\n" +"handler.setFormatter(formatter)\n" +"listener.start()\n" +"# The log output will display the thread which generated\n" +"# the event (the main thread) rather than the internal\n" +"# thread which monitors the internal queue. This is what\n" +"# you want to happen.\n" +"root.warning('Look out!')\n" +"listener.stop()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:605 +msgid "which, when run, will produce:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:607 +msgid "MainThread: Look out!" +msgstr "" + +#: ../../howto/logging-cookbook.rst:611 +msgid "" +"Although the earlier discussion wasn't specifically talking about async " +"code, but rather about slow logging handlers, it should be noted that when " +"logging from async code, network and even file handlers could lead to " +"problems (blocking the event loop) because some logging is done " +"from :mod:`asyncio` internals. It might be best, if any async code is used " +"in an application, to use the above approach for logging, so that any " +"blocking code runs only in the ``QueueListener`` thread." +msgstr "" + +#: ../../howto/logging-cookbook.rst:619 +msgid "" +"Prior to Python 3.5, the :class:`QueueListener` always passed every message " +"received from the queue to every handler it was initialized with. (This was " +"because it was assumed that level filtering was all done on the other side, " +"where the queue is filled.) From 3.5 onwards, this behaviour can be changed " +"by passing a keyword argument ``respect_handler_level=True`` to the " +"listener's constructor. When this is done, the listener compares the level " +"of each message with the handler's level, and only passes a message to a " +"handler if it's appropriate to do so." +msgstr "" + +#: ../../howto/logging-cookbook.rst:629 +msgid "" +"The :class:`QueueListener` can be started (and stopped) via " +"the :keyword:`with` statement. For example:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:633 +msgid "" +"with QueueListener(que, handler) as listener:\n" +" # The queue listener automatically starts\n" +" # when the 'with' block is entered.\n" +" pass\n" +"# The queue listener automatically stops once\n" +"# the 'with' block is exited." +msgstr "" + +#: ../../howto/logging-cookbook.rst:645 +msgid "Sending and receiving logging events across a network" +msgstr "" + +#: ../../howto/logging-cookbook.rst:647 +msgid "" +"Let's say you want to send logging events across a network, and handle them " +"at the receiving end. A simple way of doing this is attaching " +"a :class:`SocketHandler` instance to the root logger at the sending end::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:651 +msgid "" +"import logging, logging.handlers\n" +"\n" +"rootLogger = logging.getLogger('')\n" +"rootLogger.setLevel(logging.DEBUG)\n" +"socketHandler = logging.handlers.SocketHandler('localhost',\n" +" logging.handlers.DEFAULT_TCP_LOGGING_PORT)\n" +"# don't bother with a formatter, since a socket handler sends the event as\n" +"# an unformatted pickle\n" +"rootLogger.addHandler(socketHandler)\n" +"\n" +"# Now, we can log to the root logger, or any other logger. First the " +"root...\n" +"logging.info('Jackdaws love my big sphinx of quartz.')\n" +"\n" +"# Now, define a couple of other loggers which might represent areas in your\n" +"# application:\n" +"\n" +"logger1 = logging.getLogger('myapp.area1')\n" +"logger2 = logging.getLogger('myapp.area2')\n" +"\n" +"logger1.debug('Quick zephyrs blow, vexing daft Jim.')\n" +"logger1.info('How quickly daft jumping zebras vex.')\n" +"logger2.warning('Jail zesty vixen who grabbed pay from quack.')\n" +"logger2.error('The five boxing wizards jump quickly.')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:675 +msgid "" +"At the receiving end, you can set up a receiver using " +"the :mod:`socketserver` module. Here is a basic working example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:678 +msgid "" +"import pickle\n" +"import logging\n" +"import logging.handlers\n" +"import socketserver\n" +"import struct\n" +"\n" +"\n" +"class LogRecordStreamHandler(socketserver.StreamRequestHandler):\n" +" \"\"\"Handler for a streaming logging request.\n" +"\n" +" This basically logs the record using whatever logging policy is\n" +" configured locally.\n" +" \"\"\"\n" +"\n" +" def handle(self):\n" +" \"\"\"\n" +" Handle multiple requests - each expected to be a 4-byte length,\n" +" followed by the LogRecord in pickle format. Logs the record\n" +" according to whatever policy is configured locally.\n" +" \"\"\"\n" +" while True:\n" +" chunk = self.connection.recv(4)\n" +" if len(chunk) < 4:\n" +" break\n" +" slen = struct.unpack('>L', chunk)[0]\n" +" chunk = self.connection.recv(slen)\n" +" while len(chunk) < slen:\n" +" chunk = chunk + self.connection.recv(slen - len(chunk))\n" +" obj = self.unPickle(chunk)\n" +" record = logging.makeLogRecord(obj)\n" +" self.handleLogRecord(record)\n" +"\n" +" def unPickle(self, data):\n" +" return pickle.loads(data)\n" +"\n" +" def handleLogRecord(self, record):\n" +" # if a name is specified, we use the named logger rather than the " +"one\n" +" # implied by the record.\n" +" if self.server.logname is not None:\n" +" name = self.server.logname\n" +" else:\n" +" name = record.name\n" +" logger = logging.getLogger(name)\n" +" # N.B. EVERY record gets logged. This is because Logger.handle\n" +" # is normally called AFTER logger-level filtering. If you want\n" +" # to do filtering, do it at the client end to save wasting\n" +" # cycles and network bandwidth!\n" +" logger.handle(record)\n" +"\n" +"class LogRecordSocketReceiver(socketserver.ThreadingTCPServer):\n" +" \"\"\"\n" +" Simple TCP socket-based logging receiver suitable for testing.\n" +" \"\"\"\n" +"\n" +" allow_reuse_address = True\n" +"\n" +" def __init__(self, host='localhost',\n" +" port=logging.handlers.DEFAULT_TCP_LOGGING_PORT,\n" +" handler=LogRecordStreamHandler):\n" +" socketserver.ThreadingTCPServer.__init__(self, (host, port), " +"handler)\n" +" self.abort = 0\n" +" self.timeout = 1\n" +" self.logname = None\n" +"\n" +" def serve_until_stopped(self):\n" +" import select\n" +" abort = 0\n" +" while not abort:\n" +" rd, wr, ex = select.select([self.socket.fileno()],\n" +" [], [],\n" +" self.timeout)\n" +" if rd:\n" +" self.handle_request()\n" +" abort = self.abort\n" +"\n" +"def main():\n" +" logging.basicConfig(\n" +" format='%(relativeCreated)5d %(name)-15s %(levelname)-8s %" +"(message)s')\n" +" tcpserver = LogRecordSocketReceiver()\n" +" print('About to start TCP server...')\n" +" tcpserver.serve_until_stopped()\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:763 +msgid "" +"First run the server, and then the client. On the client side, nothing is " +"printed on the console; on the server side, you should see something like:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:766 +msgid "" +"About to start TCP server...\n" +" 59 root INFO Jackdaws love my big sphinx of quartz.\n" +" 59 myapp.area1 DEBUG Quick zephyrs blow, vexing daft Jim.\n" +" 69 myapp.area1 INFO How quickly daft jumping zebras vex.\n" +" 69 myapp.area2 WARNING Jail zesty vixen who grabbed pay from quack.\n" +" 69 myapp.area2 ERROR The five boxing wizards jump quickly." +msgstr "" + +#: ../../howto/logging-cookbook.rst:775 +msgid "" +"Note that there are some security issues with pickle in some scenarios. If " +"these affect you, you can use an alternative serialization scheme by " +"overriding the :meth:`~SocketHandler.makePickle` method and implementing " +"your alternative there, as well as adapting the above script to use your " +"alternative serialization." +msgstr "" + +#: ../../howto/logging-cookbook.rst:783 +msgid "Running a logging socket listener in production" +msgstr "" + +#: ../../howto/logging-cookbook.rst:787 +msgid "" +"To run a logging listener in production, you may need to use a process-" +"management tool such as `Supervisor `_. `Here is a " +"Gist `__ which provides the bare-bones files to run " +"the above functionality using Supervisor. It consists of the following files:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:794 +msgid "File" +msgstr "" + +#: ../../howto/logging-cookbook.rst:794 +msgid "Purpose" +msgstr "" + +#: ../../howto/logging-cookbook.rst:796 +msgid ":file:`prepare.sh`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:796 +msgid "A Bash script to prepare the environment for testing" +msgstr "" + +#: ../../howto/logging-cookbook.rst:799 +msgid ":file:`supervisor.conf`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:799 +msgid "" +"The Supervisor configuration file, which has entries for the listener and a " +"multi-process web application" +msgstr "" + +#: ../../howto/logging-cookbook.rst:803 +msgid ":file:`ensure_app.sh`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:803 +msgid "" +"A Bash script to ensure that Supervisor is running with the above " +"configuration" +msgstr "" + +#: ../../howto/logging-cookbook.rst:806 +msgid ":file:`log_listener.py`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:806 +msgid "" +"The socket listener program which receives log events and records them to a " +"file" +msgstr "" + +#: ../../howto/logging-cookbook.rst:809 +msgid ":file:`main.py`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:809 +msgid "" +"A simple web application which performs logging via a socket connected to " +"the listener" +msgstr "" + +#: ../../howto/logging-cookbook.rst:812 +msgid ":file:`webapp.json`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:812 +msgid "A JSON configuration file for the web application" +msgstr "" + +#: ../../howto/logging-cookbook.rst:814 +msgid ":file:`client.py`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:814 +msgid "A Python script to exercise the web application" +msgstr "" + +#: ../../howto/logging-cookbook.rst:817 +msgid "" +"The web application uses `Gunicorn `_, which is a " +"popular web application server that starts multiple worker processes to " +"handle requests. This example setup shows how the workers can write to the " +"same log file without conflicting with one another --- they all go through " +"the socket listener." +msgstr "" + +#: ../../howto/logging-cookbook.rst:822 +msgid "To test these files, do the following in a POSIX environment:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:824 +msgid "" +"Download `the Gist `__ as a ZIP archive using " +"the :guilabel:`Download ZIP` button." +msgstr "" + +#: ../../howto/logging-cookbook.rst:827 +msgid "Unzip the above files from the archive into a scratch directory." +msgstr "" + +#: ../../howto/logging-cookbook.rst:829 +msgid "" +"In the scratch directory, run ``bash prepare.sh`` to get things ready. This " +"creates a :file:`run` subdirectory to contain Supervisor-related and log " +"files, and a :file:`venv` subdirectory to contain a virtual environment into " +"which ``bottle``, ``gunicorn`` and ``supervisor`` are installed." +msgstr "" + +#: ../../howto/logging-cookbook.rst:834 +msgid "" +"Run ``bash ensure_app.sh`` to ensure that Supervisor is running with the " +"above configuration." +msgstr "" + +#: ../../howto/logging-cookbook.rst:837 +msgid "" +"Run ``venv/bin/python client.py`` to exercise the web application, which " +"will lead to records being written to the log." +msgstr "" + +#: ../../howto/logging-cookbook.rst:840 +msgid "" +"Inspect the log files in the :file:`run` subdirectory. You should see the " +"most recent log lines in files matching the pattern :file:`app.log*`. They " +"won't be in any particular order, since they have been handled concurrently " +"by different worker processes in a non-deterministic way." +msgstr "" + +#: ../../howto/logging-cookbook.rst:845 +msgid "" +"You can shut down the listener and the web application by running ``venv/bin/" +"supervisorctl -c supervisor.conf shutdown``." +msgstr "" + +#: ../../howto/logging-cookbook.rst:848 +msgid "" +"You may need to tweak the configuration files in the unlikely event that the " +"configured ports clash with something else in your test environment." +msgstr "" + +#: ../../howto/logging-cookbook.rst:851 +msgid "" +"The default configuration uses a TCP socket on port 9020. You can use a Unix " +"Domain socket instead of a TCP socket by doing the following:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:854 +msgid "" +"In :file:`listener.json`, add a ``socket`` key with the path to the domain " +"socket you want to use. If this key is present, the listener listens on the " +"corresponding domain socket and not on a TCP socket (the ``port`` key is " +"ignored)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:859 +msgid "" +"In :file:`webapp.json`, change the socket handler configuration dictionary " +"so that the ``host`` value is the path to the domain socket, and set the " +"``port`` value to ``null``." +msgstr "" + +#: ../../howto/logging-cookbook.rst:869 +msgid "Adding contextual information to your logging output" +msgstr "" + +#: ../../howto/logging-cookbook.rst:871 +msgid "" +"Sometimes you want logging output to contain contextual information in " +"addition to the parameters passed to the logging call. For example, in a " +"networked application, it may be desirable to log client-specific " +"information in the log (e.g. remote client's username, or IP address). " +"Although you could use the *extra* parameter to achieve this, it's not " +"always convenient to pass the information in this way. While it might be " +"tempting to create :class:`Logger` instances on a per-connection basis, this " +"is not a good idea because these instances are not garbage collected. While " +"this is not a problem in practice, when the number of :class:`Logger` " +"instances is dependent on the level of granularity you want to use in " +"logging an application, it could be hard to manage if the number " +"of :class:`Logger` instances becomes effectively unbounded." +msgstr "" + +#: ../../howto/logging-cookbook.rst:886 +msgid "Using LoggerAdapters to impart contextual information" +msgstr "" + +#: ../../howto/logging-cookbook.rst:888 +msgid "" +"An easy way in which you can pass contextual information to be output along " +"with logging event information is to use the :class:`LoggerAdapter` class. " +"This class is designed to look like a :class:`Logger`, so that you can " +"call :meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` " +"and :meth:`log`. These methods have the same signatures as their " +"counterparts in :class:`Logger`, so you can use the two types of instances " +"interchangeably." +msgstr "" + +#: ../../howto/logging-cookbook.rst:896 +msgid "" +"When you create an instance of :class:`LoggerAdapter`, you pass it " +"a :class:`Logger` instance and a dict-like object which contains your " +"contextual information. When you call one of the logging methods on an " +"instance of :class:`LoggerAdapter`, it delegates the call to the underlying " +"instance of :class:`Logger` passed to its constructor, and arranges to pass " +"the contextual information in the delegated call. Here's a snippet from the " +"code of :class:`LoggerAdapter`::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:904 +msgid "" +"def debug(self, msg, /, *args, **kwargs):\n" +" \"\"\"\n" +" Delegate a debug call to the underlying logger, after adding\n" +" contextual information from this adapter instance.\n" +" \"\"\"\n" +" msg, kwargs = self.process(msg, kwargs)\n" +" self.logger.debug(msg, *args, **kwargs)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:912 +msgid "" +"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " +"the contextual information is added to the logging output. It's passed the " +"message and keyword arguments of the logging call, and it passes back " +"(potentially) modified versions of these to use in the call to the " +"underlying logger. The default implementation of this method leaves the " +"message alone, but inserts an 'extra' key in the keyword argument whose " +"value is the dict-like object passed to the constructor. Of course, if you " +"had passed an 'extra' keyword argument in the call to the adapter, it will " +"be silently overwritten." +msgstr "" + +#: ../../howto/logging-cookbook.rst:921 +msgid "" +"The advantage of using 'extra' is that the values in the dict-like object " +"are merged into the :class:`LogRecord` instance's __dict__, allowing you to " +"use customized strings with your :class:`Formatter` instances which know " +"about the keys of the dict-like object. If you need a different method, e.g. " +"if you want to prepend or append the contextual information to the message " +"string, you just need to subclass :class:`LoggerAdapter` and " +"override :meth:`~LoggerAdapter.process` to do what you need. Here is a " +"simple example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:929 +msgid "" +"class CustomAdapter(logging.LoggerAdapter):\n" +" \"\"\"\n" +" This example adapter expects the passed in dict-like object to have a\n" +" 'connid' key, whose value in brackets is prepended to the log message.\n" +" \"\"\"\n" +" def process(self, msg, kwargs):\n" +" return '[%s] %s' % (self.extra['connid'], msg), kwargs" +msgstr "" + +#: ../../howto/logging-cookbook.rst:937 +msgid "which you can use like this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:939 +msgid "" +"logger = logging.getLogger(__name__)\n" +"adapter = CustomAdapter(logger, {'connid': some_conn_id})" +msgstr "" + +#: ../../howto/logging-cookbook.rst:942 +msgid "" +"Then any events that you log to the adapter will have the value of " +"``some_conn_id`` prepended to the log messages." +msgstr "" + +#: ../../howto/logging-cookbook.rst:946 +msgid "Using objects other than dicts to pass contextual information" +msgstr "" + +#: ../../howto/logging-cookbook.rst:948 +msgid "" +"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " +"could pass an instance of a class which implements ``__getitem__`` and " +"``__iter__`` so that it looks like a dict to logging. This would be useful " +"if you want to generate values dynamically (whereas the values in a dict " +"would be constant)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:957 +msgid "Using Filters to impart contextual information" +msgstr "" + +#: ../../howto/logging-cookbook.rst:959 +msgid "" +"You can also add contextual information to log output using a user-" +"defined :class:`Filter`. ``Filter`` instances are allowed to modify the " +"``LogRecords`` passed to them, including adding additional attributes which " +"can then be output using a suitable format string, or if needed a " +"custom :class:`Formatter`." +msgstr "" + +#: ../../howto/logging-cookbook.rst:964 +msgid "" +"For example in a web application, the request being processed (or at least, " +"the interesting parts of it) can be stored in a threadlocal " +"(:class:`threading.local`) variable, and then accessed from a ``Filter`` to " +"add, say, information from the request - say, the remote IP address and " +"remote user's username - to the ``LogRecord``, using the attribute names " +"'ip' and 'user' as in the ``LoggerAdapter`` example above. In that case, the " +"same format string can be used to get similar output to that shown above. " +"Here's an example script::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:973 +msgid "" +"import logging\n" +"from random import choice\n" +"\n" +"class ContextFilter(logging.Filter):\n" +" \"\"\"\n" +" This is a filter which injects contextual information into the log.\n" +"\n" +" Rather than use actual contextual information, we just use random\n" +" data in this demo.\n" +" \"\"\"\n" +"\n" +" USERS = ['jim', 'fred', 'sheila']\n" +" IPS = ['123.231.231.123', '127.0.0.1', '192.168.0.1']\n" +"\n" +" def filter(self, record):\n" +"\n" +" record.ip = choice(ContextFilter.IPS)\n" +" record.user = choice(ContextFilter.USERS)\n" +" return True\n" +"\n" +"if __name__ == '__main__':\n" +" levels = (logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, " +"logging.CRITICAL)\n" +" logging.basicConfig(level=logging.DEBUG,\n" +" format='%(asctime)-15s %(name)-5s %(levelname)-8s " +"IP: %(ip)-15s User: %(user)-8s %(message)s')\n" +" a1 = logging.getLogger('a.b.c')\n" +" a2 = logging.getLogger('d.e.f')\n" +"\n" +" f = ContextFilter()\n" +" a1.addFilter(f)\n" +" a2.addFilter(f)\n" +" a1.debug('A debug message')\n" +" a1.info('An info message with %s', 'some parameters')\n" +" for x in range(10):\n" +" lvl = choice(levels)\n" +" lvlname = logging.getLevelName(lvl)\n" +" a2.log(lvl, 'A message at %s level with %d %s', lvlname, 2, " +"'parameters')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1010 +msgid "which, when run, produces something like:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1012 +msgid "" +"2010-09-06 22:38:15,292 a.b.c DEBUG IP: 123.231.231.123 User: fred A " +"debug message\n" +"2010-09-06 22:38:15,300 a.b.c INFO IP: 192.168.0.1 User: sheila An " +"info message with some parameters\n" +"2010-09-06 22:38:15,300 d.e.f CRITICAL IP: 127.0.0.1 User: sheila A " +"message at CRITICAL level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f ERROR IP: 127.0.0.1 User: jim A " +"message at ERROR level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f DEBUG IP: 127.0.0.1 User: sheila A " +"message at DEBUG level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f ERROR IP: 123.231.231.123 User: fred A " +"message at ERROR level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f CRITICAL IP: 192.168.0.1 User: jim A " +"message at CRITICAL level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f CRITICAL IP: 127.0.0.1 User: sheila A " +"message at CRITICAL level with 2 parameters\n" +"2010-09-06 22:38:15,300 d.e.f DEBUG IP: 192.168.0.1 User: jim A " +"message at DEBUG level with 2 parameters\n" +"2010-09-06 22:38:15,301 d.e.f ERROR IP: 127.0.0.1 User: sheila A " +"message at ERROR level with 2 parameters\n" +"2010-09-06 22:38:15,301 d.e.f DEBUG IP: 123.231.231.123 User: fred A " +"message at DEBUG level with 2 parameters\n" +"2010-09-06 22:38:15,301 d.e.f INFO IP: 123.231.231.123 User: fred A " +"message at INFO level with 2 parameters" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1028 +msgid "Use of ``contextvars``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1030 +msgid "" +"Since Python 3.7, the :mod:`contextvars` module has provided context-local " +"storage which works for both :mod:`threading` and :mod:`asyncio` processing " +"needs. This type of storage may thus be generally preferable to thread-" +"locals. The following example shows how, in a multi-threaded environment, " +"logs can populated with contextual information such as, for example, request " +"attributes handled by web applications." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1036 +msgid "" +"For the purposes of illustration, say that you have different web " +"applications, each independent of the other but running in the same Python " +"process and using a library common to them. How can each of these " +"applications have their own log, where all logging messages from the library " +"(and other request processing code) are directed to the appropriate " +"application's log file, while including in the log additional contextual " +"information such as client IP, HTTP request method and client username?" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1043 +msgid "Let's assume that the library can be simulated by the following code:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1045 +msgid "" +"# webapplib.py\n" +"import logging\n" +"import time\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"def useful():\n" +" # Just a representative event logged from the library\n" +" logger.debug('Hello from webapplib!')\n" +" # Just sleep for a bit so other threads get to run\n" +" time.sleep(0.01)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1059 +msgid "" +"We can simulate the multiple web applications by means of two simple " +"classes, ``Request`` and ``WebApp``. These simulate how real threaded web " +"applications work - each request is handled by a thread:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1063 +msgid "" +"# main.py\n" +"import argparse\n" +"from contextvars import ContextVar\n" +"import logging\n" +"import os\n" +"from random import choice\n" +"import threading\n" +"import webapplib\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"root = logging.getLogger()\n" +"root.setLevel(logging.DEBUG)\n" +"\n" +"class Request:\n" +" \"\"\"\n" +" A simple dummy request class which just holds dummy HTTP request " +"method,\n" +" client IP address and client username\n" +" \"\"\"\n" +" def __init__(self, method, ip, user):\n" +" self.method = method\n" +" self.ip = ip\n" +" self.user = user\n" +"\n" +"# A dummy set of requests which will be used in the simulation - we'll just " +"pick\n" +"# from this list randomly. Note that all GET requests are from " +"192.168.2.XXX\n" +"# addresses, whereas POST requests are from 192.16.3.XXX addresses. Three " +"users\n" +"# are represented in the sample requests.\n" +"\n" +"REQUESTS = [\n" +" Request('GET', '192.168.2.20', 'jim'),\n" +" Request('POST', '192.168.3.20', 'fred'),\n" +" Request('GET', '192.168.2.21', 'sheila'),\n" +" Request('POST', '192.168.3.21', 'jim'),\n" +" Request('GET', '192.168.2.22', 'fred'),\n" +" Request('POST', '192.168.3.22', 'sheila'),\n" +"]\n" +"\n" +"# Note that the format string includes references to request context " +"information\n" +"# such as HTTP method, client IP and username\n" +"\n" +"formatter = logging.Formatter('%(threadName)-11s %(appName)s %(name)-9s %" +"(user)-6s %(ip)s %(method)-4s %(message)s')\n" +"\n" +"# Create our context variables. These will be filled at the start of " +"request\n" +"# processing, and used in the logging that happens during that processing\n" +"\n" +"ctx_request = ContextVar('request')\n" +"ctx_appname = ContextVar('appname')\n" +"\n" +"class InjectingFilter(logging.Filter):\n" +" \"\"\"\n" +" A filter which injects context-specific information into logs and " +"ensures\n" +" that only information for a specific webapp is included in its log\n" +" \"\"\"\n" +" def __init__(self, app):\n" +" self.app = app\n" +"\n" +" def filter(self, record):\n" +" request = ctx_request.get()\n" +" record.method = request.method\n" +" record.ip = request.ip\n" +" record.user = request.user\n" +" record.appName = appName = ctx_appname.get()\n" +" return appName == self.app.name\n" +"\n" +"class WebApp:\n" +" \"\"\"\n" +" A dummy web application class which has its own handler and filter for " +"a\n" +" webapp-specific log.\n" +" \"\"\"\n" +" def __init__(self, name):\n" +" self.name = name\n" +" handler = logging.FileHandler(name + '.log', 'w')\n" +" f = InjectingFilter(self)\n" +" handler.setFormatter(formatter)\n" +" handler.addFilter(f)\n" +" root.addHandler(handler)\n" +" self.num_requests = 0\n" +"\n" +" def process_request(self, request):\n" +" \"\"\"\n" +" This is the dummy method for processing a request. It's called on a\n" +" different thread for every request. We store the context information " +"into\n" +" the context vars before doing anything else.\n" +" \"\"\"\n" +" ctx_request.set(request)\n" +" ctx_appname.set(self.name)\n" +" self.num_requests += 1\n" +" logger.debug('Request processing started')\n" +" webapplib.useful()\n" +" logger.debug('Request processing finished')\n" +"\n" +"def main():\n" +" fn = os.path.splitext(os.path.basename(__file__))[0]\n" +" adhf = argparse.ArgumentDefaultsHelpFormatter\n" +" ap = argparse.ArgumentParser(formatter_class=adhf, prog=fn,\n" +" description='Simulate a couple of web '\n" +" 'applications handling some '\n" +" 'requests, showing how request " +"'\n" +" 'context can be used to '\n" +" 'populate logs')\n" +" aa = ap.add_argument\n" +" aa('--count', '-c', type=int, default=100, help='How many requests to " +"simulate')\n" +" options = ap.parse_args()\n" +"\n" +" # Create the dummy webapps and put them in a list which we can use to " +"select\n" +" # from randomly\n" +" app1 = WebApp('app1')\n" +" app2 = WebApp('app2')\n" +" apps = [app1, app2]\n" +" threads = []\n" +" # Add a common handler which will capture all events\n" +" handler = logging.FileHandler('app.log', 'w')\n" +" handler.setFormatter(formatter)\n" +" root.addHandler(handler)\n" +"\n" +" # Generate calls to process requests\n" +" for i in range(options.count):\n" +" try:\n" +" # Pick an app at random and a request for it to process\n" +" app = choice(apps)\n" +" request = choice(REQUESTS)\n" +" # Process the request in its own thread\n" +" t = threading.Thread(target=app.process_request, " +"args=(request,))\n" +" threads.append(t)\n" +" t.start()\n" +" except KeyboardInterrupt:\n" +" break\n" +"\n" +" # Wait for the threads to terminate\n" +" for t in threads:\n" +" t.join()\n" +"\n" +" for app in apps:\n" +" print('%s processed %s requests' % (app.name, app.num_requests))\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1203 +msgid "" +"If you run the above, you should find that roughly half the requests go " +"into :file:`app1.log` and the rest into :file:`app2.log`, and the all the " +"requests are logged to :file:`app.log`. Each webapp-specific log will " +"contain only log entries for only that webapp, and the request information " +"will be displayed consistently in the log (i.e. the information in each " +"dummy request will always appear together in a log line). This is " +"illustrated by the following shell output:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1210 +msgid "" +"~/logging-contextual-webapp$ python main.py\n" +"app1 processed 51 requests\n" +"app2 processed 49 requests\n" +"~/logging-contextual-webapp$ wc -l *.log\n" +" 153 app1.log\n" +" 147 app2.log\n" +" 300 app.log\n" +" 600 total\n" +"~/logging-contextual-webapp$ head -3 app1.log\n" +"Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request " +"processing started\n" +"Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello " +"from webapplib!\n" +"Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request " +"processing started\n" +"~/logging-contextual-webapp$ head -3 app2.log\n" +"Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request " +"processing started\n" +"Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello " +"from webapplib!\n" +"Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request " +"processing started\n" +"~/logging-contextual-webapp$ head app.log\n" +"Thread-1 (process_request) app2 __main__ sheila 192.168.2.21 GET Request " +"processing started\n" +"Thread-1 (process_request) app2 webapplib sheila 192.168.2.21 GET Hello " +"from webapplib!\n" +"Thread-2 (process_request) app2 __main__ jim 192.168.2.20 GET Request " +"processing started\n" +"Thread-3 (process_request) app1 __main__ jim 192.168.3.21 POST Request " +"processing started\n" +"Thread-2 (process_request) app2 webapplib jim 192.168.2.20 GET Hello " +"from webapplib!\n" +"Thread-3 (process_request) app1 webapplib jim 192.168.3.21 POST Hello " +"from webapplib!\n" +"Thread-4 (process_request) app2 __main__ fred 192.168.2.22 GET Request " +"processing started\n" +"Thread-5 (process_request) app1 __main__ jim 192.168.3.21 POST Request " +"processing started\n" +"Thread-4 (process_request) app2 webapplib fred 192.168.2.22 GET Hello " +"from webapplib!\n" +"Thread-6 (process_request) app1 __main__ jim 192.168.3.21 POST Request " +"processing started\n" +"~/logging-contextual-webapp$ grep app1 app1.log | wc -l\n" +"153\n" +"~/logging-contextual-webapp$ grep app2 app2.log | wc -l\n" +"147\n" +"~/logging-contextual-webapp$ grep app1 app.log | wc -l\n" +"153\n" +"~/logging-contextual-webapp$ grep app2 app.log | wc -l\n" +"147" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1250 +msgid "Imparting contextual information in handlers" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1252 +msgid "" +"Each :class:`~Handler` has its own chain of filters. If you want to add " +"contextual information to a :class:`LogRecord` without leaking it to other " +"handlers, you can use a filter that returns a new :class:`~LogRecord` " +"instead of modifying it in-place, as shown in the following script::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1257 +msgid "" +"import copy\n" +"import logging\n" +"\n" +"def filter(record: logging.LogRecord):\n" +" record = copy.copy(record)\n" +" record.user = 'jim'\n" +" return record\n" +"\n" +"if __name__ == '__main__':\n" +" logger = logging.getLogger()\n" +" logger.setLevel(logging.INFO)\n" +" handler = logging.StreamHandler()\n" +" formatter = logging.Formatter('%(message)s from %(user)-8s')\n" +" handler.setFormatter(formatter)\n" +" handler.addFilter(filter)\n" +" logger.addHandler(handler)\n" +"\n" +" logger.info('A log message')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1279 +msgid "Logging to a single file from multiple processes" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1281 +msgid "" +"Although logging is thread-safe, and logging to a single file from multiple " +"threads in a single process *is* supported, logging to a single file from " +"*multiple processes* is *not* supported, because there is no standard way to " +"serialize access to a single file across multiple processes in Python. If " +"you need to log to a single file from multiple processes, one way of doing " +"this is to have all the processes log to a :class:`~handlers.SocketHandler`, " +"and have a separate process which implements a socket server which reads " +"from the socket and logs to file. (If you prefer, you can dedicate one " +"thread in one of the existing processes to perform this " +"function.) :ref:`This section ` documents this approach in " +"more detail and includes a working socket receiver which can be used as a " +"starting point for you to adapt in your own applications." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1294 +msgid "" +"You could also write your own handler which uses " +"the :class:`~multiprocessing.Lock` class from the :mod:`multiprocessing` " +"module to serialize access to the file from your processes. The " +"stdlib :class:`FileHandler` and subclasses do not make use " +"of :mod:`multiprocessing`." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1301 +msgid "" +"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " +"all logging events to one of the processes in your multi-process " +"application. The following example script demonstrates how you can do this; " +"in the example a separate listener process listens for events sent by other " +"processes and logs them according to its own logging configuration. Although " +"the example only demonstrates one way of doing it (for example, you may want " +"to use a listener thread rather than a separate listener process -- the " +"implementation would be analogous) it does allow for completely different " +"logging configurations for the listener and the other processes in your " +"application, and can be used as the basis for code meeting your own specific " +"requirements::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1312 +msgid "" +"# You'll need these imports in your own code\n" +"import logging\n" +"import logging.handlers\n" +"import multiprocessing\n" +"\n" +"# Next two import lines for this demo only\n" +"from random import choice, random\n" +"import time\n" +"\n" +"#\n" +"# Because you'll want to define the logging configurations for listener and " +"workers, the\n" +"# listener and worker process functions take a configurer parameter which is " +"a callable\n" +"# for configuring logging for that process. These functions are also passed " +"the queue,\n" +"# which they use for communication.\n" +"#\n" +"# In practice, you can configure the listener however you want, but note " +"that in this\n" +"# simple example, the listener does not apply level or filter logic to " +"received records.\n" +"# In practice, you would probably want to do this logic in the worker " +"processes, to avoid\n" +"# sending events which would be filtered out between processes.\n" +"#\n" +"# The size of the rotated files is made small so you can see the results " +"easily.\n" +"def listener_configurer():\n" +" root = logging.getLogger()\n" +" h = logging.handlers.RotatingFileHandler('mptest.log', 'a', 300, 10)\n" +" f = logging.Formatter('%(asctime)s %(processName)-10s %(name)s %" +"(levelname)-8s %(message)s')\n" +" h.setFormatter(f)\n" +" root.addHandler(h)\n" +"\n" +"# This is the listener process top-level loop: wait for logging events\n" +"# (LogRecords)on the queue and handle them, quit when you get a None for a\n" +"# LogRecord.\n" +"def listener_process(queue, configurer):\n" +" configurer()\n" +" while True:\n" +" try:\n" +" record = queue.get()\n" +" if record is None: # We send this as a sentinel to tell the " +"listener to quit.\n" +" break\n" +" logger = logging.getLogger(record.name)\n" +" logger.handle(record) # No level or filter logic applied - just " +"do it!\n" +" except Exception:\n" +" import sys, traceback\n" +" print('Whoops! Problem:', file=sys.stderr)\n" +" traceback.print_exc(file=sys.stderr)\n" +"\n" +"# Arrays used for random selections in this demo\n" +"\n" +"LEVELS = [logging.DEBUG, logging.INFO, logging.WARNING,\n" +" logging.ERROR, logging.CRITICAL]\n" +"\n" +"LOGGERS = ['a.b.c', 'd.e.f']\n" +"\n" +"MESSAGES = [\n" +" 'Random message #1',\n" +" 'Random message #2',\n" +" 'Random message #3',\n" +"]\n" +"\n" +"# The worker configuration is done at the start of the worker process run.\n" +"# Note that on Windows you can't rely on fork semantics, so each process\n" +"# will run the logging configuration code when it starts.\n" +"def worker_configurer(queue):\n" +" h = logging.handlers.QueueHandler(queue) # Just the one handler needed\n" +" root = logging.getLogger()\n" +" root.addHandler(h)\n" +" # send all messages, for demo; no other level or filter logic applied.\n" +" root.setLevel(logging.DEBUG)\n" +"\n" +"# This is the worker process top-level loop, which just logs ten events " +"with\n" +"# random intervening delays before terminating.\n" +"# The print messages are just so you know it's doing something!\n" +"def worker_process(queue, configurer):\n" +" configurer(queue)\n" +" name = multiprocessing.current_process().name\n" +" print('Worker started: %s' % name)\n" +" for i in range(10):\n" +" time.sleep(random())\n" +" logger = logging.getLogger(choice(LOGGERS))\n" +" level = choice(LEVELS)\n" +" message = choice(MESSAGES)\n" +" logger.log(level, message)\n" +" print('Worker finished: %s' % name)\n" +"\n" +"# Here's where the demo gets orchestrated. Create the queue, create and " +"start\n" +"# the listener, create ten workers and start them, wait for them to finish,\n" +"# then send a None to the queue to tell the listener to finish.\n" +"def main():\n" +" queue = multiprocessing.Queue(-1)\n" +" listener = multiprocessing.Process(target=listener_process,\n" +" args=(queue, listener_configurer))\n" +" listener.start()\n" +" workers = []\n" +" for i in range(10):\n" +" worker = multiprocessing.Process(target=worker_process,\n" +" args=(queue, worker_configurer))\n" +" workers.append(worker)\n" +" worker.start()\n" +" for w in workers:\n" +" w.join()\n" +" queue.put_nowait(None)\n" +" listener.join()\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1417 +msgid "" +"A variant of the above script keeps the logging in the main process, in a " +"separate thread::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1420 +msgid "" +"import logging\n" +"import logging.config\n" +"import logging.handlers\n" +"from multiprocessing import Process, Queue\n" +"import random\n" +"import threading\n" +"import time\n" +"\n" +"def logger_thread(q):\n" +" while True:\n" +" record = q.get()\n" +" if record is None:\n" +" break\n" +" logger = logging.getLogger(record.name)\n" +" logger.handle(record)\n" +"\n" +"\n" +"def worker_process(q):\n" +" qh = logging.handlers.QueueHandler(q)\n" +" root = logging.getLogger()\n" +" root.setLevel(logging.DEBUG)\n" +" root.addHandler(qh)\n" +" levels = [logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR,\n" +" logging.CRITICAL]\n" +" loggers = ['foo', 'foo.bar', 'foo.bar.baz',\n" +" 'spam', 'spam.ham', 'spam.ham.eggs']\n" +" for i in range(100):\n" +" lvl = random.choice(levels)\n" +" logger = logging.getLogger(random.choice(loggers))\n" +" logger.log(lvl, 'Message no. %d', i)\n" +"\n" +"if __name__ == '__main__':\n" +" q = Queue()\n" +" d = {\n" +" 'version': 1,\n" +" 'formatters': {\n" +" 'detailed': {\n" +" 'class': 'logging.Formatter',\n" +" 'format': '%(asctime)s %(name)-15s %(levelname)-8s %" +"(processName)-10s %(message)s'\n" +" }\n" +" },\n" +" 'handlers': {\n" +" 'console': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'level': 'INFO',\n" +" },\n" +" 'file': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog.log',\n" +" 'mode': 'w',\n" +" 'formatter': 'detailed',\n" +" },\n" +" 'foofile': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog-foo.log',\n" +" 'mode': 'w',\n" +" 'formatter': 'detailed',\n" +" },\n" +" 'errors': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog-errors.log',\n" +" 'mode': 'w',\n" +" 'level': 'ERROR',\n" +" 'formatter': 'detailed',\n" +" },\n" +" },\n" +" 'loggers': {\n" +" 'foo': {\n" +" 'handlers': ['foofile']\n" +" }\n" +" },\n" +" 'root': {\n" +" 'level': 'DEBUG',\n" +" 'handlers': ['console', 'file', 'errors']\n" +" },\n" +" }\n" +" workers = []\n" +" for i in range(5):\n" +" wp = Process(target=worker_process, name='worker %d' % (i + 1), " +"args=(q,))\n" +" workers.append(wp)\n" +" wp.start()\n" +" logging.config.dictConfig(d)\n" +" lp = threading.Thread(target=logger_thread, args=(q,))\n" +" lp.start()\n" +" # At this point, the main process could do some useful work of its own\n" +" # Once it's done that, it can wait for the workers to terminate...\n" +" for wp in workers:\n" +" wp.join()\n" +" # And now tell the logging thread to finish up, too\n" +" q.put(None)\n" +" lp.join()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1512 +msgid "" +"This variant shows how you can e.g. apply configuration for particular " +"loggers - e.g. the ``foo`` logger has a special handler which stores all " +"events in the ``foo`` subsystem in a file ``mplog-foo.log``. This will be " +"used by the logging machinery in the main process (even though the logging " +"events are generated in the worker processes) to direct the messages to the " +"appropriate destinations." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1519 +msgid "Using concurrent.futures.ProcessPoolExecutor" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1521 +msgid "" +"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " +"your worker processes, you need to create the queue slightly differently. " +"Instead of" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1525 +msgid "queue = multiprocessing.Queue(-1)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1529 +msgid "you should use" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1531 +msgid "" +"queue = multiprocessing.Manager().Queue(-1) # also works with the examples " +"above" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1535 +msgid "and you can then replace the worker creation from this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1537 +msgid "" +"workers = []\n" +"for i in range(10):\n" +" worker = multiprocessing.Process(target=worker_process,\n" +" args=(queue, worker_configurer))\n" +" workers.append(worker)\n" +" worker.start()\n" +"for w in workers:\n" +" w.join()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1546 +msgid "to this (remembering to first import :mod:`concurrent.futures`)::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1548 +msgid "" +"with concurrent.futures.ProcessPoolExecutor(max_workers=10) as executor:\n" +" for i in range(10):\n" +" executor.submit(worker_process, queue, worker_configurer)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1553 +msgid "Deploying Web applications using Gunicorn and uWSGI" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1555 +msgid "" +"When deploying Web applications using `Gunicorn `_ or " +"`uWSGI `_ (or similar), " +"multiple worker processes are created to handle client requests. In such " +"environments, avoid creating file-based handlers directly in your web " +"application. Instead, use a :class:`SocketHandler` to log from the web " +"application to a listener in a separate process. This can be set up using a " +"process management tool such as Supervisor - see `Running a logging socket " +"listener in production`_ for more details." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1565 +msgid "Using file rotation" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1570 +msgid "" +"Sometimes you want to let a log file grow to a certain size, then open a new " +"file and log to that. You may want to keep a certain number of these files, " +"and when that many files have been created, rotate the files so that the " +"number of files and the size of the files both remain bounded. For this " +"usage pattern, the logging package provides a :class:`RotatingFileHandler`::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1576 +msgid "" +"import glob\n" +"import logging\n" +"import logging.handlers\n" +"\n" +"LOG_FILENAME = 'logging_rotatingfile_example.out'\n" +"\n" +"# Set up a specific logger with our desired output level\n" +"my_logger = logging.getLogger('MyLogger')\n" +"my_logger.setLevel(logging.DEBUG)\n" +"\n" +"# Add the log message handler to the logger\n" +"handler = logging.handlers.RotatingFileHandler(\n" +" LOG_FILENAME, maxBytes=20, backupCount=5)\n" +"\n" +"my_logger.addHandler(handler)\n" +"\n" +"# Log some messages\n" +"for i in range(20):\n" +" my_logger.debug('i = %d' % i)\n" +"\n" +"# See what files are created\n" +"logfiles = glob.glob('%s*' % LOG_FILENAME)\n" +"\n" +"for filename in logfiles:\n" +" print(filename)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1602 +msgid "" +"The result should be 6 separate files, each with part of the log history for " +"the application:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1605 +msgid "" +"logging_rotatingfile_example.out\n" +"logging_rotatingfile_example.out.1\n" +"logging_rotatingfile_example.out.2\n" +"logging_rotatingfile_example.out.3\n" +"logging_rotatingfile_example.out.4\n" +"logging_rotatingfile_example.out.5" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1614 +msgid "" +"The most current file is always :file:`logging_rotatingfile_example.out`, " +"and each time it reaches the size limit it is renamed with the suffix " +"``.1``. Each of the existing backup files is renamed to increment the suffix " +"(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1619 +msgid "" +"Obviously this example sets the log length much too small as an extreme " +"example. You would want to set *maxBytes* to an appropriate value." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1627 +msgid "Use of alternative formatting styles" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1629 +msgid "" +"When logging was added to the Python standard library, the only way of " +"formatting messages with variable content was to use the %-formatting " +"method. Since then, Python has gained two new formatting " +"approaches: :class:`string.Template` (added in Python 2.4) " +"and :meth:`str.format` (added in Python 2.6)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1635 +msgid "" +"Logging (as of 3.2) provides improved support for these two additional " +"formatting styles. The :class:`Formatter` class been enhanced to take an " +"additional, optional keyword parameter named ``style``. This defaults to " +"``'%'``, but other possible values are ``'{'`` and ``'$'``, which correspond " +"to the other two formatting styles. Backwards compatibility is maintained by " +"default (as you would expect), but by explicitly specifying a style " +"parameter, you get the ability to specify format strings which work " +"with :meth:`str.format` or :class:`string.Template`. Here's an example " +"console session to show the possibilities:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1645 +msgid "" +">>> import logging\n" +">>> root = logging.getLogger()\n" +">>> root.setLevel(logging.DEBUG)\n" +">>> handler = logging.StreamHandler()\n" +">>> bf = logging.Formatter('{asctime} {name} {levelname:8s} {message}',\n" +"... style='{')\n" +">>> handler.setFormatter(bf)\n" +">>> root.addHandler(handler)\n" +">>> logger = logging.getLogger('foo.bar')\n" +">>> logger.debug('This is a DEBUG message')\n" +"2010-10-28 15:11:55,341 foo.bar DEBUG This is a DEBUG message\n" +">>> logger.critical('This is a CRITICAL message')\n" +"2010-10-28 15:12:11,526 foo.bar CRITICAL This is a CRITICAL message\n" +">>> df = logging.Formatter('$asctime $name ${levelname} $message',\n" +"... style='$')\n" +">>> handler.setFormatter(df)\n" +">>> logger.debug('This is a DEBUG message')\n" +"2010-10-28 15:13:06,924 foo.bar DEBUG This is a DEBUG message\n" +">>> logger.critical('This is a CRITICAL message')\n" +"2010-10-28 15:13:11,494 foo.bar CRITICAL This is a CRITICAL message\n" +">>>" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1669 +msgid "" +"Note that the formatting of logging messages for final output to logs is " +"completely independent of how an individual logging message is constructed. " +"That can still use %-formatting, as shown here::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1673 +msgid "" +">>> logger.error('This is an%s %s %s', 'other,', 'ERROR,', 'message')\n" +"2010-10-28 15:19:29,833 foo.bar ERROR This is another, ERROR, message\n" +">>>" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1677 +msgid "" +"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the actual " +"logging call (e.g. the ``exc_info`` keyword parameter to indicate that " +"traceback information should be logged, or the ``extra`` keyword parameter " +"to indicate additional contextual information to be added to the log). So " +"you cannot directly make logging calls using :meth:`str.format` " +"or :class:`string.Template` syntax, because internally the logging package " +"uses %-formatting to merge the format string and the variable arguments. " +"There would be no changing this while preserving backward compatibility, " +"since all logging calls which are out there in existing code will be using %-" +"format strings." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1690 +msgid "" +"There is, however, a way that you can use {}- and $- formatting to construct " +"your individual log messages. Recall that for a message you can use an " +"arbitrary object as a message format string, and that the logging package " +"will call ``str()`` on that object to get the actual format string. Consider " +"the following two classes::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1696 ../../howto/logging-cookbook.rst:2784 +msgid "" +"class BraceMessage:\n" +" def __init__(self, fmt, /, *args, **kwargs):\n" +" self.fmt = fmt\n" +" self.args = args\n" +" self.kwargs = kwargs\n" +"\n" +" def __str__(self):\n" +" return self.fmt.format(*self.args, **self.kwargs)\n" +"\n" +"class DollarMessage:\n" +" def __init__(self, fmt, /, **kwargs):\n" +" self.fmt = fmt\n" +" self.kwargs = kwargs\n" +"\n" +" def __str__(self):\n" +" from string import Template\n" +" return Template(self.fmt).substitute(**self.kwargs)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1714 +msgid "" +"Either of these can be used in place of a format string, to allow {}- or $-" +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of \"%(message)s\" or \"{message}\" or " +"\"$message\". It's a little unwieldy to use the class names whenever you " +"want to log something, but it's quite palatable if you use an alias such as " +"__ (double underscore --- not to be confused with _, the single underscore " +"used as a synonym/alias for :func:`gettext.gettext` or its brethren)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1722 +msgid "" +"The above classes are not included in Python, though they're easy enough to " +"copy and paste into your own code. They can be used as follows (assuming " +"that they're declared in a module called ``wherever``):" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1726 +msgid "" +">>> from wherever import BraceMessage as __\n" +">>> print(__('Message with {0} {name}', 2, name='placeholders'))\n" +"Message with 2 placeholders\n" +">>> class Point: pass\n" +"...\n" +">>> p = Point()\n" +">>> p.x = 0.5\n" +">>> p.y = 0.5\n" +">>> print(__('Message with coordinates: ({point.x:.2f}, {point.y:.2f})',\n" +"... point=p))\n" +"Message with coordinates: (0.50, 0.50)\n" +">>> from wherever import DollarMessage as __\n" +">>> print(__('Message with $num $what', num=2, what='placeholders'))\n" +"Message with 2 placeholders\n" +">>>" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1744 +msgid "" +"While the above examples use ``print()`` to show how the formatting works, " +"you would of course use ``logger.debug()`` or similar to actually log using " +"this approach." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1748 +msgid "" +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That's because the __ notation is just syntax " +"sugar for a constructor call to one of the :samp:`{XXX}Message` classes." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1756 +msgid "" +"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " +"effect to the above, as in the following example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1759 +msgid "" +"import logging\n" +"\n" +"class Message:\n" +" def __init__(self, fmt, args):\n" +" self.fmt = fmt\n" +" self.args = args\n" +"\n" +" def __str__(self):\n" +" return self.fmt.format(*self.args)\n" +"\n" +"class StyleAdapter(logging.LoggerAdapter):\n" +" def log(self, level, msg, /, *args, stacklevel=1, **kwargs):\n" +" if self.isEnabledFor(level):\n" +" msg, kwargs = self.process(msg, kwargs)\n" +" self.logger.log(level, Message(msg, args), **kwargs,\n" +" stacklevel=stacklevel+1)\n" +"\n" +"logger = StyleAdapter(logging.getLogger(__name__))\n" +"\n" +"def main():\n" +" logger.debug('Hello, {}', 'world!')\n" +"\n" +"if __name__ == '__main__':\n" +" logging.basicConfig(level=logging.DEBUG)\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1785 +msgid "" +"The above script should log the message ``Hello, world!`` when run with " +"Python 3.8 or later." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1794 +msgid "Customizing ``LogRecord``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1796 +msgid "" +"Every logging event is represented by a :class:`LogRecord` instance. When an " +"event is logged and not filtered out by a logger's level, " +"a :class:`LogRecord` is created, populated with information about the event " +"and then passed to the handlers for that logger (and its ancestors, up to " +"and including the logger where further propagation up the hierarchy is " +"disabled). Before Python 3.2, there were only two places where this creation " +"was done:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1803 +msgid "" +":meth:`Logger.makeRecord`, which is called in the normal process of logging " +"an event. This invoked :class:`LogRecord` directly to create an instance." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1806 +msgid "" +":func:`makeLogRecord`, which is called with a dictionary containing " +"attributes to be added to the LogRecord. This is typically invoked when a " +"suitable dictionary has been received over the network (e.g. in pickle form " +"via a :class:`~handlers.SocketHandler`, or in JSON form via " +"an :class:`~handlers.HTTPHandler`)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1812 +msgid "" +"This has usually meant that if you need to do anything special with " +"a :class:`LogRecord`, you've had to do one of the following." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1815 +msgid "" +"Create your own :class:`Logger` subclass, which " +"overrides :meth:`Logger.makeRecord`, and set it " +"using :func:`~logging.setLoggerClass` before any loggers that you care about " +"are instantiated." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1818 +msgid "" +"Add a :class:`Filter` to a logger or handler, which does the necessary " +"special manipulation you need when its :meth:`~Filter.filter` method is " +"called." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1822 +msgid "" +"The first approach would be a little unwieldy in the scenario where (say) " +"several different libraries wanted to do different things. Each would " +"attempt to set its own :class:`Logger` subclass, and the one which did this " +"last would win." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1827 +msgid "" +"The second approach works reasonably well for many cases, but does not allow " +"you to e.g. use a specialized subclass of :class:`LogRecord`. Library " +"developers can set a suitable filter on their loggers, but they would have " +"to remember to do this every time they introduced a new logger (which they " +"would do simply by adding new packages or modules and doing ::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1833 +msgid "logger = logging.getLogger(__name__)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1835 +msgid "" +"at module level). It's probably one too many things to think about. " +"Developers could also add the filter to a :class:`~logging.NullHandler` " +"attached to their top-level logger, but this would not be invoked if an " +"application developer attached a handler to a lower-level library logger --- " +"so output from that handler would not reflect the intentions of the library " +"developer." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1841 +msgid "" +"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " +"through a factory, which you can specify. The factory is just a callable you " +"can set with :func:`~logging.setLogRecordFactory`, and interrogate " +"with :func:`~logging.getLogRecordFactory`. The factory is invoked with the " +"same signature as the :class:`~logging.LogRecord` constructor, " +"as :class:`LogRecord` is the default setting for the factory." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1848 +msgid "" +"This approach allows a custom factory to control all aspects of LogRecord " +"creation. For example, you could return a subclass, or just add some " +"additional attributes to the record once created, using a pattern similar to " +"this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1852 +msgid "" +"old_factory = logging.getLogRecordFactory()\n" +"\n" +"def record_factory(*args, **kwargs):\n" +" record = old_factory(*args, **kwargs)\n" +" record.custom_attribute = 0xdecafbad\n" +" return record\n" +"\n" +"logging.setLogRecordFactory(record_factory)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1861 +msgid "" +"This pattern allows different libraries to chain factories together, and as " +"long as they don't overwrite each other's attributes or unintentionally " +"overwrite the attributes provided as standard, there should be no surprises. " +"However, it should be borne in mind that each link in the chain adds run-" +"time overhead to all logging operations, and the technique should only be " +"used when the use of a :class:`Filter` does not provide the desired result." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1873 +msgid "Subclassing QueueHandler and QueueListener- a ZeroMQ example" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1876 ../../howto/logging-cookbook.rst:2009 +msgid "Subclass ``QueueHandler``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1878 +msgid "" +"You can use a :class:`QueueHandler` subclass to send messages to other kinds " +"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " +"socket is created separately and passed to the handler (as its 'queue')::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1882 +msgid "" +"import zmq # using pyzmq, the Python binding for ZeroMQ\n" +"import json # for serializing records portably\n" +"\n" +"ctx = zmq.Context()\n" +"sock = zmq.Socket(ctx, zmq.PUB) # or zmq.PUSH, or other suitable value\n" +"sock.bind('tcp://*:5556') # or wherever\n" +"\n" +"class ZeroMQSocketHandler(QueueHandler):\n" +" def enqueue(self, record):\n" +" self.queue.send_json(record.__dict__)\n" +"\n" +"\n" +"handler = ZeroMQSocketHandler(sock)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1897 +msgid "" +"Of course there are other ways of organizing this, for example passing in " +"the data needed by the handler to create the socket::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1900 +msgid "" +"class ZeroMQSocketHandler(QueueHandler):\n" +" def __init__(self, uri, socktype=zmq.PUB, ctx=None):\n" +" self.ctx = ctx or zmq.Context()\n" +" socket = zmq.Socket(self.ctx, socktype)\n" +" socket.bind(uri)\n" +" super().__init__(socket)\n" +"\n" +" def enqueue(self, record):\n" +" self.queue.send_json(record.__dict__)\n" +"\n" +" def close(self):\n" +" self.queue.close()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1915 ../../howto/logging-cookbook.rst:1945 +msgid "Subclass ``QueueListener``" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1917 +msgid "" +"You can also subclass :class:`QueueListener` to get messages from other " +"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1920 +msgid "" +"class ZeroMQSocketListener(QueueListener):\n" +" def __init__(self, uri, /, *handlers, **kwargs):\n" +" self.ctx = kwargs.get('ctx') or zmq.Context()\n" +" socket = zmq.Socket(self.ctx, zmq.SUB)\n" +" socket.setsockopt_string(zmq.SUBSCRIBE, '') # subscribe to " +"everything\n" +" socket.connect(uri)\n" +" super().__init__(socket, *handlers, **kwargs)\n" +"\n" +" def dequeue(self):\n" +" msg = self.queue.recv_json()\n" +" return logging.makeLogRecord(msg)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1935 +msgid "Subclassing QueueHandler and QueueListener- a ``pynng`` example" +msgstr "" + +#: ../../howto/logging-cookbook.rst:1937 +msgid "" +"In a similar way to the above section, we can implement a listener and " +"handler using :pypi:`pynng`, which is a Python binding to `NNG `_, billed as a spiritual successor to ZeroMQ. The " +"following snippets illustrate -- you can test them in an environment which " +"has ``pynng`` installed. Just for variety, we present the listener first." +msgstr "" + +#: ../../howto/logging-cookbook.rst:1947 +msgid "" +"# listener.py\n" +"import json\n" +"import logging\n" +"import logging.handlers\n" +"\n" +"import pynng\n" +"\n" +"DEFAULT_ADDR = \"tcp://localhost:13232\"\n" +"\n" +"interrupted = False\n" +"\n" +"class NNGSocketListener(logging.handlers.QueueListener):\n" +"\n" +" def __init__(self, uri, /, *handlers, **kwargs):\n" +" # Have a timeout for interruptability, and open a\n" +" # subscriber socket\n" +" socket = pynng.Sub0(listen=uri, recv_timeout=500)\n" +" # The b'' subscription matches all topics\n" +" topics = kwargs.pop('topics', None) or b''\n" +" socket.subscribe(topics)\n" +" # We treat the socket as a queue\n" +" super().__init__(socket, *handlers, **kwargs)\n" +"\n" +" def dequeue(self, block):\n" +" data = None\n" +" # Keep looping while not interrupted and no data received over the\n" +" # socket\n" +" while not interrupted:\n" +" try:\n" +" data = self.queue.recv(block=block)\n" +" break\n" +" except pynng.Timeout:\n" +" pass\n" +" except pynng.Closed: # sometimes happens when you hit Ctrl-C\n" +" break\n" +" if data is None:\n" +" return None\n" +" # Get the logging event sent from a publisher\n" +" event = json.loads(data.decode('utf-8'))\n" +" return logging.makeLogRecord(event)\n" +"\n" +" def enqueue_sentinel(self):\n" +" # Not used in this implementation, as the socket isn't really a\n" +" # queue\n" +" pass\n" +"\n" +"logging.getLogger('pynng').propagate = False\n" +"listener = NNGSocketListener(DEFAULT_ADDR, logging.StreamHandler(), " +"topics=b'')\n" +"listener.start()\n" +"print('Press Ctrl-C to stop.')\n" +"try:\n" +" while True:\n" +" pass\n" +"except KeyboardInterrupt:\n" +" interrupted = True\n" +"finally:\n" +" listener.stop()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2013 +msgid "" +"# sender.py\n" +"import json\n" +"import logging\n" +"import logging.handlers\n" +"import time\n" +"import random\n" +"\n" +"import pynng\n" +"\n" +"DEFAULT_ADDR = \"tcp://localhost:13232\"\n" +"\n" +"class NNGSocketHandler(logging.handlers.QueueHandler):\n" +"\n" +" def __init__(self, uri):\n" +" socket = pynng.Pub0(dial=uri, send_timeout=500)\n" +" super().__init__(socket)\n" +"\n" +" def enqueue(self, record):\n" +" # Send the record as UTF-8 encoded JSON\n" +" d = dict(record.__dict__)\n" +" data = json.dumps(d)\n" +" self.queue.send(data.encode('utf-8'))\n" +"\n" +" def close(self):\n" +" self.queue.close()\n" +"\n" +"logging.getLogger('pynng').propagate = False\n" +"handler = NNGSocketHandler(DEFAULT_ADDR)\n" +"# Make sure the process ID is in the output\n" +"logging.basicConfig(level=logging.DEBUG,\n" +" handlers=[logging.StreamHandler(), handler],\n" +" format='%(levelname)-8s %(name)10s %(process)6s %" +"(message)s')\n" +"levels = (logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR,\n" +" logging.CRITICAL)\n" +"logger_names = ('myapp', 'myapp.lib1', 'myapp.lib2')\n" +"msgno = 1\n" +"while True:\n" +" # Just randomly select some loggers and levels and log away\n" +" level = random.choice(levels)\n" +" logger = logging.getLogger(random.choice(logger_names))\n" +" logger.log(level, 'Message no. %5d' % msgno)\n" +" msgno += 1\n" +" delay = random.random() * 2 + 0.5\n" +" time.sleep(delay)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2060 +msgid "" +"You can run the above two snippets in separate command shells. If we run the " +"listener in one shell and run the sender in two separate shells, we should " +"see something like the following. In the first sender shell:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2064 +msgid "" +"$ python sender.py\n" +"DEBUG myapp 613 Message no. 1\n" +"WARNING myapp.lib2 613 Message no. 2\n" +"CRITICAL myapp.lib2 613 Message no. 3\n" +"WARNING myapp.lib2 613 Message no. 4\n" +"CRITICAL myapp.lib1 613 Message no. 5\n" +"DEBUG myapp 613 Message no. 6\n" +"CRITICAL myapp.lib1 613 Message no. 7\n" +"INFO myapp.lib1 613 Message no. 8\n" +"(and so on)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2077 +msgid "In the second sender shell:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2079 +msgid "" +"$ python sender.py\n" +"INFO myapp.lib2 657 Message no. 1\n" +"CRITICAL myapp.lib2 657 Message no. 2\n" +"CRITICAL myapp 657 Message no. 3\n" +"CRITICAL myapp.lib1 657 Message no. 4\n" +"INFO myapp.lib1 657 Message no. 5\n" +"WARNING myapp.lib2 657 Message no. 6\n" +"CRITICAL myapp 657 Message no. 7\n" +"DEBUG myapp.lib1 657 Message no. 8\n" +"(and so on)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2092 +msgid "In the listener shell:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2094 +msgid "" +"$ python listener.py\n" +"Press Ctrl-C to stop.\n" +"DEBUG myapp 613 Message no. 1\n" +"WARNING myapp.lib2 613 Message no. 2\n" +"INFO myapp.lib2 657 Message no. 1\n" +"CRITICAL myapp.lib2 613 Message no. 3\n" +"CRITICAL myapp.lib2 657 Message no. 2\n" +"CRITICAL myapp 657 Message no. 3\n" +"WARNING myapp.lib2 613 Message no. 4\n" +"CRITICAL myapp.lib1 613 Message no. 5\n" +"CRITICAL myapp.lib1 657 Message no. 4\n" +"INFO myapp.lib1 657 Message no. 5\n" +"DEBUG myapp 613 Message no. 6\n" +"WARNING myapp.lib2 657 Message no. 6\n" +"CRITICAL myapp 657 Message no. 7\n" +"CRITICAL myapp.lib1 613 Message no. 7\n" +"INFO myapp.lib1 613 Message no. 8\n" +"DEBUG myapp.lib1 657 Message no. 8\n" +"(and so on)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2116 +msgid "" +"As you can see, the logging from the two sender processes is interleaved in " +"the listener's output." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2121 +msgid "An example dictionary-based configuration" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2123 +msgid "" +"Below is an example of a logging configuration dictionary - it's taken from " +"the `documentation on the Django project `_. This dictionary is passed " +"to :func:`~config.dictConfig` to put the configuration into effect::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2127 +msgid "" +"LOGGING = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': False,\n" +" 'formatters': {\n" +" 'verbose': {\n" +" 'format': '{levelname} {asctime} {module} {process:d} {thread:d} " +"{message}',\n" +" 'style': '{',\n" +" },\n" +" 'simple': {\n" +" 'format': '{levelname} {message}',\n" +" 'style': '{',\n" +" },\n" +" },\n" +" 'filters': {\n" +" 'special': {\n" +" '()': 'project.logging.SpecialFilter',\n" +" 'foo': 'bar',\n" +" },\n" +" },\n" +" 'handlers': {\n" +" 'console': {\n" +" 'level': 'INFO',\n" +" 'class': 'logging.StreamHandler',\n" +" 'formatter': 'simple',\n" +" },\n" +" 'mail_admins': {\n" +" 'level': 'ERROR',\n" +" 'class': 'django.utils.log.AdminEmailHandler',\n" +" 'filters': ['special']\n" +" }\n" +" },\n" +" 'loggers': {\n" +" 'django': {\n" +" 'handlers': ['console'],\n" +" 'propagate': True,\n" +" },\n" +" 'django.request': {\n" +" 'handlers': ['mail_admins'],\n" +" 'level': 'ERROR',\n" +" 'propagate': False,\n" +" },\n" +" 'myproject.custom': {\n" +" 'handlers': ['console', 'mail_admins'],\n" +" 'level': 'INFO',\n" +" 'filters': ['special']\n" +" }\n" +" }\n" +"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2176 +msgid "" +"For more information about this configuration, you can see the `relevant " +"section `_ of the Django documentation." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2183 +msgid "Using a rotator and namer to customize log rotation processing" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2185 +msgid "" +"An example of how you can define a namer and rotator is given in the " +"following runnable script, which shows gzip compression of the log file::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2188 +msgid "" +"import gzip\n" +"import logging\n" +"import logging.handlers\n" +"import os\n" +"import shutil\n" +"\n" +"def namer(name):\n" +" return name + \".gz\"\n" +"\n" +"def rotator(source, dest):\n" +" with open(source, 'rb') as f_in:\n" +" with gzip.open(dest, 'wb') as f_out:\n" +" shutil.copyfileobj(f_in, f_out)\n" +" os.remove(source)\n" +"\n" +"\n" +"rh = logging.handlers.RotatingFileHandler('rotated.log', maxBytes=128, " +"backupCount=5)\n" +"rh.rotator = rotator\n" +"rh.namer = namer\n" +"\n" +"root = logging.getLogger()\n" +"root.setLevel(logging.INFO)\n" +"root.addHandler(rh)\n" +"f = logging.Formatter('%(asctime)s %(message)s')\n" +"rh.setFormatter(f)\n" +"for i in range(1000):\n" +" root.info(f'Message no. {i + 1}')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2216 +msgid "" +"After running this, you will see six new files, five of which are compressed:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2218 +msgid "" +"$ ls rotated.log*\n" +"rotated.log rotated.log.2.gz rotated.log.4.gz\n" +"rotated.log.1.gz rotated.log.3.gz rotated.log.5.gz\n" +"$ zcat rotated.log.1.gz\n" +"2023-01-20 02:28:17,767 Message no. 996\n" +"2023-01-20 02:28:17,767 Message no. 997\n" +"2023-01-20 02:28:17,767 Message no. 998" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2229 +msgid "A more elaborate multiprocessing example" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2231 +msgid "" +"The following working example shows how logging can be used with " +"multiprocessing using configuration files. The configurations are fairly " +"simple, but serve to illustrate how more complex ones could be implemented " +"in a real multiprocessing scenario." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2236 +msgid "" +"In the example, the main process spawns a listener process and some worker " +"processes. Each of the main process, the listener and the workers have three " +"separate configurations (the workers all share the same configuration). We " +"can see logging in the main process, how the workers log to a QueueHandler " +"and how the listener implements a QueueListener and a more complex logging " +"configuration, and arranges to dispatch events received via the queue to the " +"handlers specified in the configuration. Note that these configurations are " +"purely illustrative, but you should be able to adapt this example to your " +"own scenario." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2246 +msgid "" +"Here's the script - the docstrings and the comments hopefully explain how it " +"works::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2249 +msgid "" +"import logging\n" +"import logging.config\n" +"import logging.handlers\n" +"from multiprocessing import Process, Queue, Event, current_process\n" +"import os\n" +"import random\n" +"import time\n" +"\n" +"class MyHandler:\n" +" \"\"\"\n" +" A simple handler for logging events. It runs in the listener process " +"and\n" +" dispatches events to loggers based on the name in the received record,\n" +" which then get dispatched, by the logging system, to the handlers\n" +" configured for those loggers.\n" +" \"\"\"\n" +"\n" +" def handle(self, record):\n" +" if record.name == \"root\":\n" +" logger = logging.getLogger()\n" +" else:\n" +" logger = logging.getLogger(record.name)\n" +"\n" +" if logger.isEnabledFor(record.levelno):\n" +" # The process name is transformed just to show that it's the " +"listener\n" +" # doing the logging to files and console\n" +" record.processName = '%s (for %s)' % (current_process().name, " +"record.processName)\n" +" logger.handle(record)\n" +"\n" +"def listener_process(q, stop_event, config):\n" +" \"\"\"\n" +" This could be done in the main process, but is just done in a separate\n" +" process for illustrative purposes.\n" +"\n" +" This initialises logging according to the specified configuration,\n" +" starts the listener and waits for the main process to signal completion\n" +" via the event. The listener is then stopped, and the process exits.\n" +" \"\"\"\n" +" logging.config.dictConfig(config)\n" +" listener = logging.handlers.QueueListener(q, MyHandler())\n" +" listener.start()\n" +" if os.name == 'posix':\n" +" # On POSIX, the setup logger will have been configured in the\n" +" # parent process, but should have been disabled following the\n" +" # dictConfig call.\n" +" # On Windows, since fork isn't used, the setup logger won't\n" +" # exist in the child, so it would be created and the message\n" +" # would appear - hence the \"if posix\" clause.\n" +" logger = logging.getLogger('setup')\n" +" logger.critical('Should not appear, because of disabled " +"logger ...')\n" +" stop_event.wait()\n" +" listener.stop()\n" +"\n" +"def worker_process(config):\n" +" \"\"\"\n" +" A number of these are spawned for the purpose of illustration. In\n" +" practice, they could be a heterogeneous bunch of processes rather than\n" +" ones which are identical to each other.\n" +"\n" +" This initialises logging according to the specified configuration,\n" +" and logs a hundred messages with random levels to randomly selected\n" +" loggers.\n" +"\n" +" A small sleep is added to allow other processes a chance to run. This\n" +" is not strictly needed, but it mixes the output from the different\n" +" processes a bit more than if it's left out.\n" +" \"\"\"\n" +" logging.config.dictConfig(config)\n" +" levels = [logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR,\n" +" logging.CRITICAL]\n" +" loggers = ['foo', 'foo.bar', 'foo.bar.baz',\n" +" 'spam', 'spam.ham', 'spam.ham.eggs']\n" +" if os.name == 'posix':\n" +" # On POSIX, the setup logger will have been configured in the\n" +" # parent process, but should have been disabled following the\n" +" # dictConfig call.\n" +" # On Windows, since fork isn't used, the setup logger won't\n" +" # exist in the child, so it would be created and the message\n" +" # would appear - hence the \"if posix\" clause.\n" +" logger = logging.getLogger('setup')\n" +" logger.critical('Should not appear, because of disabled " +"logger ...')\n" +" for i in range(100):\n" +" lvl = random.choice(levels)\n" +" logger = logging.getLogger(random.choice(loggers))\n" +" logger.log(lvl, 'Message no. %d', i)\n" +" time.sleep(0.01)\n" +"\n" +"def main():\n" +" q = Queue()\n" +" # The main process gets a simple configuration which prints to the " +"console.\n" +" config_initial = {\n" +" 'version': 1,\n" +" 'handlers': {\n" +" 'console': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'level': 'INFO'\n" +" }\n" +" },\n" +" 'root': {\n" +" 'handlers': ['console'],\n" +" 'level': 'DEBUG'\n" +" }\n" +" }\n" +" # The worker process configuration is just a QueueHandler attached to " +"the\n" +" # root logger, which allows all messages to be sent to the queue.\n" +" # We disable existing loggers to disable the \"setup\" logger used in " +"the\n" +" # parent process. This is needed on POSIX because the logger will\n" +" # be there in the child following a fork().\n" +" config_worker = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': True,\n" +" 'handlers': {\n" +" 'queue': {\n" +" 'class': 'logging.handlers.QueueHandler',\n" +" 'queue': q\n" +" }\n" +" },\n" +" 'root': {\n" +" 'handlers': ['queue'],\n" +" 'level': 'DEBUG'\n" +" }\n" +" }\n" +" # The listener process configuration shows that the full flexibility of\n" +" # logging configuration is available to dispatch events to handlers " +"however\n" +" # you want.\n" +" # We disable existing loggers to disable the \"setup\" logger used in " +"the\n" +" # parent process. This is needed on POSIX because the logger will\n" +" # be there in the child following a fork().\n" +" config_listener = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': True,\n" +" 'formatters': {\n" +" 'detailed': {\n" +" 'class': 'logging.Formatter',\n" +" 'format': '%(asctime)s %(name)-15s %(levelname)-8s %" +"(processName)-10s %(message)s'\n" +" },\n" +" 'simple': {\n" +" 'class': 'logging.Formatter',\n" +" 'format': '%(name)-15s %(levelname)-8s %(processName)-10s %" +"(message)s'\n" +" }\n" +" },\n" +" 'handlers': {\n" +" 'console': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'formatter': 'simple',\n" +" 'level': 'INFO'\n" +" },\n" +" 'file': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog.log',\n" +" 'mode': 'w',\n" +" 'formatter': 'detailed'\n" +" },\n" +" 'foofile': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog-foo.log',\n" +" 'mode': 'w',\n" +" 'formatter': 'detailed'\n" +" },\n" +" 'errors': {\n" +" 'class': 'logging.FileHandler',\n" +" 'filename': 'mplog-errors.log',\n" +" 'mode': 'w',\n" +" 'formatter': 'detailed',\n" +" 'level': 'ERROR'\n" +" }\n" +" },\n" +" 'loggers': {\n" +" 'foo': {\n" +" 'handlers': ['foofile']\n" +" }\n" +" },\n" +" 'root': {\n" +" 'handlers': ['console', 'file', 'errors'],\n" +" 'level': 'DEBUG'\n" +" }\n" +" }\n" +" # Log some initial events, just to show that logging in the parent " +"works\n" +" # normally.\n" +" logging.config.dictConfig(config_initial)\n" +" logger = logging.getLogger('setup')\n" +" logger.info('About to create workers ...')\n" +" workers = []\n" +" for i in range(5):\n" +" wp = Process(target=worker_process, name='worker %d' % (i + 1),\n" +" args=(config_worker,))\n" +" workers.append(wp)\n" +" wp.start()\n" +" logger.info('Started worker: %s', wp.name)\n" +" logger.info('About to create listener ...')\n" +" stop_event = Event()\n" +" lp = Process(target=listener_process, name='listener',\n" +" args=(q, stop_event, config_listener))\n" +" lp.start()\n" +" logger.info('Started listener')\n" +" # We now hang around for the workers to finish their work.\n" +" for wp in workers:\n" +" wp.join()\n" +" # Workers all done, listening can now stop.\n" +" # Logging in the parent still works normally.\n" +" logger.info('Telling listener to stop ...')\n" +" stop_event.set()\n" +" lp.join()\n" +" logger.info('All done.')\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2458 +msgid "Inserting a BOM into messages sent to a SysLogHandler" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2460 +msgid "" +":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " +"set of bytes which have the following structure: an optional pure-ASCII " +"component, followed by a UTF-8 Byte Order Mark (BOM), followed by Unicode " +"encoded using UTF-8. (See the :rfc:`relevant section of the specification " +"<5424#section-6>`.)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2466 +msgid "" +"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " +"insert a BOM into the message, but unfortunately, it was implemented " +"incorrectly, with the BOM appearing at the beginning of the message and " +"hence not allowing any pure-ASCII component to appear before it." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2472 +msgid "" +"As this behaviour is broken, the incorrect BOM insertion code is being " +"removed from Python 3.2.4 and later. However, it is not being replaced, and " +"if you want to produce :rfc:`5424`-compliant messages which include a BOM, " +"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " +"encoded using UTF-8, then you need to do the following:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2478 +msgid "" +"Attach a :class:`~logging.Formatter` instance to " +"your :class:`~logging.handlers.SysLogHandler` instance, with a format string " +"such as::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2482 +msgid "'ASCII section\\ufeffUnicode section'" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2484 +msgid "" +"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " +"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2487 +msgid "" +"Replace the ASCII section with whatever placeholders you like, but make sure " +"that the data that appears in there after substitution is always ASCII (that " +"way, it will remain unchanged after UTF-8 encoding)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2491 +msgid "" +"Replace the Unicode section with whatever placeholders you like; if the data " +"which appears there after substitution contains characters outside the ASCII " +"range, that's fine -- it will be encoded using UTF-8." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2495 +msgid "" +"The formatted message *will* be encoded using UTF-8 encoding by " +"``SysLogHandler``. If you follow the above rules, you should be able to " +"produce :rfc:`5424`-compliant messages. If you don't, logging may not " +"complain, but your messages will not be RFC 5424-compliant, and your syslog " +"daemon may complain." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2502 +msgid "Implementing structured logging" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2504 +msgid "" +"Although most logging messages are intended for reading by humans, and thus " +"not readily machine-parseable, there might be circumstances where you want " +"to output messages in a structured format which *is* capable of being parsed " +"by a program (without needing complex regular expressions to parse the log " +"message). This is straightforward to achieve using the logging package. " +"There are a number of ways in which this could be achieved, but the " +"following is a simple approach which uses JSON to serialise the event in a " +"machine-parseable manner::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2512 +msgid "" +"import json\n" +"import logging\n" +"\n" +"class StructuredMessage:\n" +" def __init__(self, message, /, **kwargs):\n" +" self.message = message\n" +" self.kwargs = kwargs\n" +"\n" +" def __str__(self):\n" +" return '%s >>> %s' % (self.message, json.dumps(self.kwargs))\n" +"\n" +"_ = StructuredMessage # optional, to improve readability\n" +"\n" +"logging.basicConfig(level=logging.INFO, format='%(message)s')\n" +"logging.info(_('message 1', foo='bar', bar='baz', num=123, fnum=123.456))" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2528 +msgid "If the above script is run, it prints:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2530 +msgid "" +"message 1 >>> {\"fnum\": 123.456, \"num\": 123, \"bar\": \"baz\", \"foo\": " +"\"bar\"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2534 ../../howto/logging-cookbook.rst:2576 +msgid "" +"Note that the order of items might be different according to the version of " +"Python used." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2537 +msgid "" +"If you need more specialised processing, you can use a custom JSON encoder, " +"as in the following complete example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2540 +msgid "" +"import json\n" +"import logging\n" +"\n" +"\n" +"class Encoder(json.JSONEncoder):\n" +" def default(self, o):\n" +" if isinstance(o, set):\n" +" return tuple(o)\n" +" elif isinstance(o, str):\n" +" return o.encode('unicode_escape').decode('ascii')\n" +" return super().default(o)\n" +"\n" +"class StructuredMessage:\n" +" def __init__(self, message, /, **kwargs):\n" +" self.message = message\n" +" self.kwargs = kwargs\n" +"\n" +" def __str__(self):\n" +" s = Encoder().encode(self.kwargs)\n" +" return '%s >>> %s' % (self.message, s)\n" +"\n" +"_ = StructuredMessage # optional, to improve readability\n" +"\n" +"def main():\n" +" logging.basicConfig(level=logging.INFO, format='%(message)s')\n" +" logging.info(_('message 1', set_value={1, 2, 3}, snowman='\\u2603'))\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2570 +msgid "When the above script is run, it prints:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2572 +msgid "message 1 >>> {\"snowman\": \"\\u2603\", \"set_value\": [1, 2, 3]}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2585 +msgid "Customizing handlers with :func:`dictConfig`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2587 +msgid "" +"There are times when you want to customize logging handlers in particular " +"ways, and if you use :func:`dictConfig` you may be able to do this without " +"subclassing. As an example, consider that you may want to set the ownership " +"of a log file. On POSIX, this is easily done using :func:`shutil.chown`, but " +"the file handlers in the stdlib don't offer built-in support. You can " +"customize handler creation using a plain function such as::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2594 +msgid "" +"def owned_file_handler(filename, mode='a', encoding=None, owner=None):\n" +" if owner:\n" +" if not os.path.exists(filename):\n" +" open(filename, 'a').close()\n" +" shutil.chown(filename, *owner)\n" +" return logging.FileHandler(filename, mode, encoding)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2601 +msgid "" +"You can then specify, in a logging configuration passed " +"to :func:`dictConfig`, that a logging handler be created by calling this " +"function::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2604 +msgid "" +"LOGGING = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': False,\n" +" 'formatters': {\n" +" 'default': {\n" +" 'format': '%(asctime)s %(levelname)s %(name)s %(message)s'\n" +" },\n" +" },\n" +" 'handlers': {\n" +" 'file':{\n" +" # The values below are popped from this dictionary and\n" +" # used to create the handler, set the handler's level and\n" +" # its formatter.\n" +" '()': owned_file_handler,\n" +" 'level':'DEBUG',\n" +" 'formatter': 'default',\n" +" # The values below are passed to the handler creator callable\n" +" # as keyword arguments.\n" +" 'owner': ['pulse', 'pulse'],\n" +" 'filename': 'chowntest.log',\n" +" 'mode': 'w',\n" +" 'encoding': 'utf-8',\n" +" },\n" +" },\n" +" 'root': {\n" +" 'handlers': ['file'],\n" +" 'level': 'DEBUG',\n" +" },\n" +"}" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2634 +msgid "" +"In this example I am setting the ownership using the ``pulse`` user and " +"group, just for the purposes of illustration. Putting it together into a " +"working script, ``chowntest.py``::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2638 +msgid "" +"import logging, logging.config, os, shutil\n" +"\n" +"def owned_file_handler(filename, mode='a', encoding=None, owner=None):\n" +" if owner:\n" +" if not os.path.exists(filename):\n" +" open(filename, 'a').close()\n" +" shutil.chown(filename, *owner)\n" +" return logging.FileHandler(filename, mode, encoding)\n" +"\n" +"LOGGING = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': False,\n" +" 'formatters': {\n" +" 'default': {\n" +" 'format': '%(asctime)s %(levelname)s %(name)s %(message)s'\n" +" },\n" +" },\n" +" 'handlers': {\n" +" 'file':{\n" +" # The values below are popped from this dictionary and\n" +" # used to create the handler, set the handler's level and\n" +" # its formatter.\n" +" '()': owned_file_handler,\n" +" 'level':'DEBUG',\n" +" 'formatter': 'default',\n" +" # The values below are passed to the handler creator callable\n" +" # as keyword arguments.\n" +" 'owner': ['pulse', 'pulse'],\n" +" 'filename': 'chowntest.log',\n" +" 'mode': 'w',\n" +" 'encoding': 'utf-8',\n" +" },\n" +" },\n" +" 'root': {\n" +" 'handlers': ['file'],\n" +" 'level': 'DEBUG',\n" +" },\n" +"}\n" +"\n" +"logging.config.dictConfig(LOGGING)\n" +"logger = logging.getLogger('mylogger')\n" +"logger.debug('A debug message')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2681 +msgid "To run this, you will probably need to run as ``root``:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2683 +msgid "" +"$ sudo python3.3 chowntest.py\n" +"$ cat chowntest.log\n" +"2013-11-05 09:34:51,128 DEBUG mylogger A debug message\n" +"$ ls -l chowntest.log\n" +"-rw-r--r-- 1 pulse pulse 55 2013-11-05 09:34 chowntest.log" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2691 +msgid "" +"Note that this example uses Python 3.3 because that's " +"where :func:`shutil.chown` makes an appearance. This approach should work " +"with any Python version that supports :func:`dictConfig` - namely, Python " +"2.7, 3.2 or later. With pre-3.3 versions, you would need to implement the " +"actual ownership change using e.g. :func:`os.chown`." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2697 +msgid "" +"In practice, the handler-creating function may be in a utility module " +"somewhere in your project. Instead of the line in the configuration::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2700 +msgid "'()': owned_file_handler," +msgstr "" + +#: ../../howto/logging-cookbook.rst:2702 +msgid "you could use e.g.::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2704 +msgid "'()': 'ext://project.util.owned_file_handler'," +msgstr "" + +#: ../../howto/logging-cookbook.rst:2706 +msgid "" +"where ``project.util`` can be replaced with the actual name of the package " +"where the function resides. In the above working script, using ``'ext://" +"__main__.owned_file_handler'`` should work. Here, the actual callable is " +"resolved by :func:`dictConfig` from the ``ext://`` specification." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2711 +msgid "" +"This example hopefully also points the way to how you could implement other " +"types of file change - e.g. setting specific POSIX permission bits - in the " +"same way, using :func:`os.chmod`." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2715 +msgid "" +"Of course, the approach could also be extended to types of handler other " +"than a :class:`~logging.FileHandler` - for example, one of the rotating file " +"handlers, or a different type of handler altogether." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2725 +msgid "Using particular formatting styles throughout your application" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2727 +msgid "" +"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " +"parameter which, while defaulting to ``%`` for backward compatibility, " +"allowed the specification of ``{`` or ``$`` to support the formatting " +"approaches supported by :meth:`str.format` and :class:`string.Template`. " +"Note that this governs the formatting of logging messages for final output " +"to logs, and is completely orthogonal to how an individual logging message " +"is constructed." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2734 +msgid "" +"Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the logging " +"call (e.g. the ``exc_info`` keyword parameter to indicate that traceback " +"information should be logged, or the ``extra`` keyword parameter to indicate " +"additional contextual information to be added to the log). So you cannot " +"directly make logging calls using :meth:`str.format` " +"or :class:`string.Template` syntax, because internally the logging package " +"uses %-formatting to merge the format string and the variable arguments. " +"There would be no changing this while preserving backward compatibility, " +"since all logging calls which are out there in existing code will be using %-" +"format strings." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2746 +msgid "" +"There have been suggestions to associate format styles with specific " +"loggers, but that approach also runs into backward compatibility problems " +"because any existing code could be using a given logger name and using %-" +"formatting." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2750 +msgid "" +"For logging to work interoperably between any third-party libraries and your " +"code, decisions about formatting need to be made at the level of the " +"individual logging call. This opens up a couple of ways in which alternative " +"formatting styles can be accommodated." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2757 +msgid "Using LogRecord factories" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2759 +msgid "" +"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " +"above, the logging package gained the ability to allow users to set their " +"own :class:`LogRecord` subclasses, using the :func:`setLogRecordFactory` " +"function. You can use this to set your own subclass of :class:`LogRecord`, " +"which does the Right Thing by overriding the :meth:`~LogRecord.getMessage` " +"method. The base class implementation of this method is where the ``msg % " +"args`` formatting happens, and where you can substitute your alternate " +"formatting; however, you should be careful to support all formatting styles " +"and allow %-formatting as the default, to ensure interoperability with other " +"code. Care should also be taken to call ``str(self.msg)``, just as the base " +"implementation does." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2770 +msgid "" +"Refer to the reference documentation on :func:`setLogRecordFactory` " +"and :class:`LogRecord` for more information." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2775 +msgid "Using custom message objects" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2777 +msgid "" +"There is another, perhaps simpler way that you can use {}- and $- formatting " +"to construct your individual log messages. You may recall " +"(from :ref:`arbitrary-object-messages`) that when logging you can use an " +"arbitrary object as a message format string, and that the logging package " +"will call :func:`str` on that object to get the actual format string. " +"Consider the following two classes::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2802 +msgid "" +"Either of these can be used in place of a format string, to allow {}- or $-" +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of “%(message)s” or “{message}” or " +"“$message”. If you find it a little unwieldy to use the class names whenever " +"you want to log something, you can make it more palatable if you use an " +"alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " +"using ``_`` for localization)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2810 +msgid "" +"Examples of this approach are given below. Firstly, formatting " +"with :meth:`str.format`::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2813 +msgid "" +">>> __ = BraceMessage\n" +">>> print(__('Message with {0} {1}', 2, 'placeholders'))\n" +"Message with 2 placeholders\n" +">>> class Point: pass\n" +"...\n" +">>> p = Point()\n" +">>> p.x = 0.5\n" +">>> p.y = 0.5\n" +">>> print(__('Message with coordinates: ({point.x:.2f}, {point.y:.2f})', " +"point=p))\n" +"Message with coordinates: (0.50, 0.50)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2824 +msgid "Secondly, formatting with :class:`string.Template`::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2826 +msgid "" +">>> __ = DollarMessage\n" +">>> print(__('Message with $num $what', num=2, what='placeholders'))\n" +"Message with 2 placeholders\n" +">>>" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2831 +msgid "" +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That’s because the __ notation is just syntax " +"sugar for a constructor call to one of the :samp:`{XXX}Message` classes " +"shown above." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2845 +msgid "Configuring filters with :func:`dictConfig`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2847 +msgid "" +"You *can* configure filters using :func:`~logging.config.dictConfig`, though " +"it might not be obvious at first glance how to do it (hence this recipe). " +"Since :class:`~logging.Filter` is the only filter class included in the " +"standard library, and it is unlikely to cater to many requirements (it's " +"only there as a base class), you will typically need to define your " +"own :class:`~logging.Filter` subclass with an " +"overridden :meth:`~logging.Filter.filter` method. To do this, specify the " +"``()`` key in the configuration dictionary for the filter, specifying a " +"callable which will be used to create the filter (a class is the most " +"obvious, but you can provide any callable which returns " +"a :class:`~logging.Filter` instance). Here is a complete example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2858 +msgid "" +"import logging\n" +"import logging.config\n" +"import sys\n" +"\n" +"class MyFilter(logging.Filter):\n" +" def __init__(self, param=None):\n" +" self.param = param\n" +"\n" +" def filter(self, record):\n" +" if self.param is None:\n" +" allow = True\n" +" else:\n" +" allow = self.param not in record.msg\n" +" if allow:\n" +" record.msg = 'changed: ' + record.msg\n" +" return allow\n" +"\n" +"LOGGING = {\n" +" 'version': 1,\n" +" 'filters': {\n" +" 'myfilter': {\n" +" '()': MyFilter,\n" +" 'param': 'noshow',\n" +" }\n" +" },\n" +" 'handlers': {\n" +" 'console': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'filters': ['myfilter']\n" +" }\n" +" },\n" +" 'root': {\n" +" 'level': 'DEBUG',\n" +" 'handlers': ['console']\n" +" },\n" +"}\n" +"\n" +"if __name__ == '__main__':\n" +" logging.config.dictConfig(LOGGING)\n" +" logging.debug('hello')\n" +" logging.debug('hello - noshow')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2900 +msgid "" +"This example shows how you can pass configuration data to the callable which " +"constructs the instance, in the form of keyword parameters. When run, the " +"above script will print:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2904 +msgid "changed: hello" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2908 +msgid "which shows that the filter is working as configured." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2910 +msgid "A couple of extra points to note:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2912 +msgid "" +"If you can't refer to the callable directly in the configuration (e.g. if it " +"lives in a different module, and you can't import it directly where the " +"configuration dictionary is), you can use the form ``ext://...`` as " +"described in :ref:`logging-config-dict-externalobj`. For example, you could " +"have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " +"the above example." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2919 +msgid "" +"As well as for filters, this technique can also be used to configure custom " +"handlers and formatters. See :ref:`logging-config-dict-userdef` for more " +"information on how logging supports using user-defined objects in its " +"configuration, and see the other cookbook recipe :ref:`custom-handlers` " +"above." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2928 +msgid "Customized exception formatting" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2930 +msgid "" +"There might be times when you want to do customized exception formatting - " +"for argument's sake, let's say you want exactly one line per logged event, " +"even when exception information is present. You can do this with a custom " +"formatter class, as shown in the following example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2935 +msgid "" +"import logging\n" +"\n" +"class OneLineExceptionFormatter(logging.Formatter):\n" +" def formatException(self, exc_info):\n" +" \"\"\"\n" +" Format an exception so that it prints on a single line.\n" +" \"\"\"\n" +" result = super().formatException(exc_info)\n" +" return repr(result) # or format into one line however you want to\n" +"\n" +" def format(self, record):\n" +" s = super().format(record)\n" +" if record.exc_text:\n" +" s = s.replace('\\n', '') + '|'\n" +" return s\n" +"\n" +"def configure_logging():\n" +" fh = logging.FileHandler('output.txt', 'w')\n" +" f = OneLineExceptionFormatter('%(asctime)s|%(levelname)s|%(message)s|',\n" +" '%d/%m/%Y %H:%M:%S')\n" +" fh.setFormatter(f)\n" +" root = logging.getLogger()\n" +" root.setLevel(logging.DEBUG)\n" +" root.addHandler(fh)\n" +"\n" +"def main():\n" +" configure_logging()\n" +" logging.info('Sample message')\n" +" try:\n" +" x = 1 / 0\n" +" except ZeroDivisionError as e:\n" +" logging.exception('ZeroDivisionError: %s', e)\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2971 +msgid "When run, this produces a file with exactly two lines:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2973 +msgid "" +"28/01/2015 07:21:23|INFO|Sample message|\n" +"28/01/2015 07:21:23|ERROR|ZeroDivisionError: division by zero|'Traceback " +"(most recent call last):\\n File \"logtest7.py\", line 30, in main\\n x " +"= 1 / 0\\nZeroDivisionError: division by zero'|" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2978 +msgid "" +"While the above treatment is simplistic, it points the way to how exception " +"information can be formatted to your liking. The :mod:`traceback` module may " +"be helpful for more specialized needs." +msgstr "" + +#: ../../howto/logging-cookbook.rst:2985 +msgid "Speaking logging messages" +msgstr "" + +#: ../../howto/logging-cookbook.rst:2987 +msgid "" +"There might be situations when it is desirable to have logging messages " +"rendered in an audible rather than a visible format. This is easy to do if " +"you have text-to-speech (TTS) functionality available in your system, even " +"if it doesn't have a Python binding. Most TTS systems have a command line " +"program you can run, and this can be invoked from a handler " +"using :mod:`subprocess`. It's assumed here that TTS command line programs " +"won't expect to interact with users or take a long time to complete, and " +"that the frequency of logged messages will be not so high as to swamp the " +"user with messages, and that it's acceptable to have the messages spoken one " +"at a time rather than concurrently, The example implementation below waits " +"for one message to be spoken before the next is processed, and this might " +"cause other handlers to be kept waiting. Here is a short example showing the " +"approach, which assumes that the ``espeak`` TTS package is available::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3000 +msgid "" +"import logging\n" +"import subprocess\n" +"import sys\n" +"\n" +"class TTSHandler(logging.Handler):\n" +" def emit(self, record):\n" +" msg = self.format(record)\n" +" # Speak slowly in a female English voice\n" +" cmd = ['espeak', '-s150', '-ven+f3', msg]\n" +" p = subprocess.Popen(cmd, stdout=subprocess.PIPE,\n" +" stderr=subprocess.STDOUT)\n" +" # wait for the program to finish\n" +" p.communicate()\n" +"\n" +"def configure_logging():\n" +" h = TTSHandler()\n" +" root = logging.getLogger()\n" +" root.addHandler(h)\n" +" # the default formatter just returns the message\n" +" root.setLevel(logging.DEBUG)\n" +"\n" +"def main():\n" +" logging.info('Hello')\n" +" logging.debug('Goodbye')\n" +"\n" +"if __name__ == '__main__':\n" +" configure_logging()\n" +" sys.exit(main())" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3029 +msgid "" +"When run, this script should say \"Hello\" and then \"Goodbye\" in a female " +"voice." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3031 +msgid "" +"The above approach can, of course, be adapted to other TTS systems and even " +"other systems altogether which can process messages via external programs " +"run from a command line." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3039 +msgid "Buffering logging messages and outputting them conditionally" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3041 +msgid "" +"There might be situations where you want to log messages in a temporary area " +"and only output them if a certain condition occurs. For example, you may " +"want to start logging debug events in a function, and if the function " +"completes without errors, you don't want to clutter the log with the " +"collected debug information, but if there is an error, you want all the " +"debug information to be output as well as the error." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3048 +msgid "" +"Here is an example which shows how you could do this using a decorator for " +"your functions where you want logging to behave this way. It makes use of " +"the :class:`logging.handlers.MemoryHandler`, which allows buffering of " +"logged events until some condition occurs, at which point the buffered " +"events are ``flushed`` - passed to another handler (the ``target`` handler) " +"for processing. By default, the ``MemoryHandler`` flushed when its buffer " +"gets filled up or an event whose level is greater than or equal to a " +"specified threshold is seen. You can use this recipe with a more specialised " +"subclass of ``MemoryHandler`` if you want custom flushing behavior." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3058 +msgid "" +"The example script has a simple function, ``foo``, which just cycles through " +"all the logging levels, writing to ``sys.stderr`` to say what level it's " +"about to log at, and then actually logging a message at that level. You can " +"pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " +"levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3064 +msgid "" +"The script just arranges to decorate ``foo`` with a decorator which will do " +"the conditional logging that's required. The decorator takes a logger as a " +"parameter and attaches a memory handler for the duration of the call to the " +"decorated function. The decorator can be additionally parameterised using a " +"target handler, a level at which flushing should occur, and a capacity for " +"the buffer (number of records buffered). These default to " +"a :class:`~logging.StreamHandler` which writes to ``sys.stderr``, " +"``logging.ERROR`` and ``100`` respectively." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3072 +msgid "Here's the script::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3074 +msgid "" +"import logging\n" +"from logging.handlers import MemoryHandler\n" +"import sys\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"logger.addHandler(logging.NullHandler())\n" +"\n" +"def log_if_errors(logger, target_handler=None, flush_level=None, " +"capacity=None):\n" +" if target_handler is None:\n" +" target_handler = logging.StreamHandler()\n" +" if flush_level is None:\n" +" flush_level = logging.ERROR\n" +" if capacity is None:\n" +" capacity = 100\n" +" handler = MemoryHandler(capacity, flushLevel=flush_level, " +"target=target_handler)\n" +"\n" +" def decorator(fn):\n" +" def wrapper(*args, **kwargs):\n" +" logger.addHandler(handler)\n" +" try:\n" +" return fn(*args, **kwargs)\n" +" except Exception:\n" +" logger.exception('call failed')\n" +" raise\n" +" finally:\n" +" super(MemoryHandler, handler).flush()\n" +" logger.removeHandler(handler)\n" +" return wrapper\n" +"\n" +" return decorator\n" +"\n" +"def write_line(s):\n" +" sys.stderr.write('%s\\n' % s)\n" +"\n" +"def foo(fail=False):\n" +" write_line('about to log at DEBUG ...')\n" +" logger.debug('Actually logged at DEBUG')\n" +" write_line('about to log at INFO ...')\n" +" logger.info('Actually logged at INFO')\n" +" write_line('about to log at WARNING ...')\n" +" logger.warning('Actually logged at WARNING')\n" +" if fail:\n" +" write_line('about to log at ERROR ...')\n" +" logger.error('Actually logged at ERROR')\n" +" write_line('about to log at CRITICAL ...')\n" +" logger.critical('Actually logged at CRITICAL')\n" +" return fail\n" +"\n" +"decorated_foo = log_if_errors(logger)(foo)\n" +"\n" +"if __name__ == '__main__':\n" +" logger.setLevel(logging.DEBUG)\n" +" write_line('Calling undecorated foo with False')\n" +" assert not foo(False)\n" +" write_line('Calling undecorated foo with True')\n" +" assert foo(True)\n" +" write_line('Calling decorated foo with False')\n" +" assert not decorated_foo(False)\n" +" write_line('Calling decorated foo with True')\n" +" assert decorated_foo(True)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3135 +msgid "When this script is run, the following output should be observed:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3137 +msgid "" +"Calling undecorated foo with False\n" +"about to log at DEBUG ...\n" +"about to log at INFO ...\n" +"about to log at WARNING ...\n" +"Calling undecorated foo with True\n" +"about to log at DEBUG ...\n" +"about to log at INFO ...\n" +"about to log at WARNING ...\n" +"about to log at ERROR ...\n" +"about to log at CRITICAL ...\n" +"Calling decorated foo with False\n" +"about to log at DEBUG ...\n" +"about to log at INFO ...\n" +"about to log at WARNING ...\n" +"Calling decorated foo with True\n" +"about to log at DEBUG ...\n" +"about to log at INFO ...\n" +"about to log at WARNING ...\n" +"about to log at ERROR ...\n" +"Actually logged at DEBUG\n" +"Actually logged at INFO\n" +"Actually logged at WARNING\n" +"Actually logged at ERROR\n" +"about to log at CRITICAL ...\n" +"Actually logged at CRITICAL" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3165 +msgid "" +"As you can see, actual logging output only occurs when an event is logged " +"whose severity is ERROR or greater, but in that case, any previous events at " +"lower severities are also logged." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3169 +msgid "You can of course use the conventional means of decoration::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3171 +msgid "" +"@log_if_errors(logger)\n" +"def foo(fail=False):\n" +" ..." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3179 +msgid "Sending logging messages to email, with buffering" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3181 +msgid "" +"To illustrate how you can send log messages via email, so that a set number " +"of messages are sent per email, you can " +"subclass :class:`~logging.handlers.BufferingHandler`. In the following " +"example, which you can adapt to suit your specific needs, a simple test " +"harness is provided which allows you to run the script with command line " +"arguments specifying what you typically need to send things via SMTP. (Run " +"the downloaded script with the ``-h`` argument to see the required and " +"optional arguments.)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3189 +msgid "" +"import logging\n" +"import logging.handlers\n" +"import smtplib\n" +"\n" +"class BufferingSMTPHandler(logging.handlers.BufferingHandler):\n" +" def __init__(self, mailhost, port, username, password, fromaddr, " +"toaddrs,\n" +" subject, capacity):\n" +" logging.handlers.BufferingHandler.__init__(self, capacity)\n" +" self.mailhost = mailhost\n" +" self.mailport = port\n" +" self.username = username\n" +" self.password = password\n" +" self.fromaddr = fromaddr\n" +" if isinstance(toaddrs, str):\n" +" toaddrs = [toaddrs]\n" +" self.toaddrs = toaddrs\n" +" self.subject = subject\n" +" self.setFormatter(logging.Formatter(\"%(asctime)s %(levelname)-5s %" +"(message)s\"))\n" +"\n" +" def flush(self):\n" +" if len(self.buffer) > 0:\n" +" try:\n" +" smtp = smtplib.SMTP(self.mailhost, self.mailport)\n" +" smtp.starttls()\n" +" smtp.login(self.username, self.password)\n" +" msg = \"From: %s\\r\\nTo: %s\\r\\nSubject: %s\\r\\n\\r\\n\" " +"% (self.fromaddr, ','.join(self.toaddrs), self.subject)\n" +" for record in self.buffer:\n" +" s = self.format(record)\n" +" msg = msg + s + \"\\r\\n\"\n" +" smtp.sendmail(self.fromaddr, self.toaddrs, msg)\n" +" smtp.quit()\n" +" except Exception:\n" +" if logging.raiseExceptions:\n" +" raise\n" +" self.buffer = []\n" +"\n" +"if __name__ == '__main__':\n" +" import argparse\n" +"\n" +" ap = argparse.ArgumentParser()\n" +" aa = ap.add_argument\n" +" aa('host', metavar='HOST', help='SMTP server')\n" +" aa('--port', '-p', type=int, default=587, help='SMTP port')\n" +" aa('user', metavar='USER', help='SMTP username')\n" +" aa('password', metavar='PASSWORD', help='SMTP password')\n" +" aa('to', metavar='TO', help='Addressee for emails')\n" +" aa('sender', metavar='SENDER', help='Sender email address')\n" +" aa('--subject', '-s',\n" +" default='Test Logging email from Python logging module (buffering)',\n" +" help='Subject of email')\n" +" options = ap.parse_args()\n" +" logger = logging.getLogger()\n" +" logger.setLevel(logging.DEBUG)\n" +" h = BufferingSMTPHandler(options.host, options.port, options.user,\n" +" options.password, options.sender,\n" +" options.to, options.subject, 10)\n" +" logger.addHandler(h)\n" +" for i in range(102):\n" +" logger.info(\"Info index = %d\", i)\n" +" h.flush()\n" +" h.close()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3253 +msgid "" +"If you run this script and your SMTP server is correctly set up, you should " +"find that it sends eleven emails to the addressee you specify. The first ten " +"emails will each have ten log messages, and the eleventh will have two " +"messages. That makes up 102 messages as specified in the script." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3261 +msgid "Formatting times using UTC (GMT) via configuration" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3263 +msgid "" +"Sometimes you want to format times using UTC, which can be done using a " +"class such as ``UTCFormatter``, shown below::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3266 +msgid "" +"import logging\n" +"import time\n" +"\n" +"class UTCFormatter(logging.Formatter):\n" +" converter = time.gmtime" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3272 +msgid "" +"and you can then use the ``UTCFormatter`` in your code instead " +"of :class:`~logging.Formatter`. If you want to do that via configuration, " +"you can use the :func:`~logging.config.dictConfig` API with an approach " +"illustrated by the following complete example::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3277 +msgid "" +"import logging\n" +"import logging.config\n" +"import time\n" +"\n" +"class UTCFormatter(logging.Formatter):\n" +" converter = time.gmtime\n" +"\n" +"LOGGING = {\n" +" 'version': 1,\n" +" 'disable_existing_loggers': False,\n" +" 'formatters': {\n" +" 'utc': {\n" +" '()': UTCFormatter,\n" +" 'format': '%(asctime)s %(message)s',\n" +" },\n" +" 'local': {\n" +" 'format': '%(asctime)s %(message)s',\n" +" }\n" +" },\n" +" 'handlers': {\n" +" 'console1': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'formatter': 'utc',\n" +" },\n" +" 'console2': {\n" +" 'class': 'logging.StreamHandler',\n" +" 'formatter': 'local',\n" +" },\n" +" },\n" +" 'root': {\n" +" 'handlers': ['console1', 'console2'],\n" +" }\n" +"}\n" +"\n" +"if __name__ == '__main__':\n" +" logging.config.dictConfig(LOGGING)\n" +" logging.warning('The local time is %s', time.asctime())" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3315 +msgid "When this script is run, it should print something like:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3317 +msgid "" +"2015-10-17 12:53:29,501 The local time is Sat Oct 17 13:53:29 2015\n" +"2015-10-17 13:53:29,501 The local time is Sat Oct 17 13:53:29 2015" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3322 +msgid "" +"showing how the time is formatted both as local time and UTC, one for each " +"handler." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3329 +msgid "Using a context manager for selective logging" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3331 +msgid "" +"There are times when it would be useful to temporarily change the logging " +"configuration and revert it back after doing something. For this, a context " +"manager is the most obvious way of saving and restoring the logging context. " +"Here is a simple example of such a context manager, which allows you to " +"optionally change the logging level and add a logging handler purely in the " +"scope of the context manager::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3338 +msgid "" +"import logging\n" +"import sys\n" +"\n" +"class LoggingContext:\n" +" def __init__(self, logger, level=None, handler=None, close=True):\n" +" self.logger = logger\n" +" self.level = level\n" +" self.handler = handler\n" +" self.close = close\n" +"\n" +" def __enter__(self):\n" +" if self.level is not None:\n" +" self.old_level = self.logger.level\n" +" self.logger.setLevel(self.level)\n" +" if self.handler:\n" +" self.logger.addHandler(self.handler)\n" +"\n" +" def __exit__(self, et, ev, tb):\n" +" if self.level is not None:\n" +" self.logger.setLevel(self.old_level)\n" +" if self.handler:\n" +" self.logger.removeHandler(self.handler)\n" +" if self.handler and self.close:\n" +" self.handler.close()\n" +" # implicit return of None => don't swallow exceptions" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3364 +msgid "" +"If you specify a level value, the logger's level is set to that value in the " +"scope of the with block covered by the context manager. If you specify a " +"handler, it is added to the logger on entry to the block and removed on exit " +"from the block. You can also ask the manager to close the handler for you on " +"block exit - you could do this if you don't need the handler any more." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3370 +msgid "" +"To illustrate how it works, we can add the following block of code to the " +"above::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3373 +msgid "" +"if __name__ == '__main__':\n" +" logger = logging.getLogger('foo')\n" +" logger.addHandler(logging.StreamHandler())\n" +" logger.setLevel(logging.INFO)\n" +" logger.info('1. This should appear just once on stderr.')\n" +" logger.debug('2. This should not appear.')\n" +" with LoggingContext(logger, level=logging.DEBUG):\n" +" logger.debug('3. This should appear once on stderr.')\n" +" logger.debug('4. This should not appear.')\n" +" h = logging.StreamHandler(sys.stdout)\n" +" with LoggingContext(logger, level=logging.DEBUG, handler=h, " +"close=True):\n" +" logger.debug('5. This should appear twice - once on stderr and once " +"on stdout.')\n" +" logger.info('6. This should appear just once on stderr.')\n" +" logger.debug('7. This should not appear.')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3388 +msgid "" +"We initially set the logger's level to ``INFO``, so message #1 appears and " +"message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " +"following ``with`` block, and so message #3 appears. After the block exits, " +"the logger's level is restored to ``INFO`` and so message #4 doesn't appear. " +"In the next ``with`` block, we set the level to ``DEBUG`` again but also add " +"a handler writing to ``sys.stdout``. Thus, message #5 appears twice on the " +"console (once via ``stderr`` and once via ``stdout``). After the ``with`` " +"statement's completion, the status is as it was before so message #6 appears " +"(like message #1) whereas message #7 doesn't (just like message #2)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3398 +msgid "If we run the resulting script, the result is as follows:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3400 +msgid "" +"$ python logctx.py\n" +"1. This should appear just once on stderr.\n" +"3. This should appear once on stderr.\n" +"5. This should appear twice - once on stderr and once on stdout.\n" +"5. This should appear twice - once on stderr and once on stdout.\n" +"6. This should appear just once on stderr." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3409 +msgid "" +"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " +"following, which is the only message written to ``stdout``:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3412 +msgid "" +"$ python logctx.py 2>/dev/null\n" +"5. This should appear twice - once on stderr and once on stdout." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3417 +msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3419 +msgid "" +"$ python logctx.py >/dev/null\n" +"1. This should appear just once on stderr.\n" +"3. This should appear once on stderr.\n" +"5. This should appear twice - once on stderr and once on stdout.\n" +"6. This should appear just once on stderr." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3427 +msgid "" +"In this case, the message #5 printed to ``stdout`` doesn't appear, as " +"expected." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3429 +msgid "" +"Of course, the approach described here can be generalised, for example to " +"attach logging filters temporarily. Note that the above code works in Python " +"2 as well as Python 3." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3437 +msgid "A CLI application starter template" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3439 +msgid "Here's an example which shows how you can:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3441 +msgid "Use a logging level based on command-line arguments" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3442 +msgid "" +"Dispatch to multiple subcommands in separate files, all logging at the same " +"level in a consistent way" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3444 +msgid "Make use of simple, minimal configuration" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3446 +msgid "" +"Suppose we have a command-line application whose job is to stop, start or " +"restart some services. This could be organised for the purposes of " +"illustration as a file ``app.py`` that is the main script for the " +"application, with individual commands implemented in ``start.py``, " +"``stop.py`` and ``restart.py``. Suppose further that we want to control the " +"verbosity of the application via a command-line argument, defaulting to " +"``logging.INFO``. Here's one way that ``app.py`` could be written::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3454 +msgid "" +"import argparse\n" +"import importlib\n" +"import logging\n" +"import os\n" +"import sys\n" +"\n" +"def main(args=None):\n" +" scriptname = os.path.basename(__file__)\n" +" parser = argparse.ArgumentParser(scriptname)\n" +" levels = ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')\n" +" parser.add_argument('--log-level', default='INFO', choices=levels)\n" +" subparsers = parser.add_subparsers(dest='command',\n" +" help='Available commands:')\n" +" start_cmd = subparsers.add_parser('start', help='Start a service')\n" +" start_cmd.add_argument('name', metavar='NAME',\n" +" help='Name of service to start')\n" +" stop_cmd = subparsers.add_parser('stop',\n" +" help='Stop one or more services')\n" +" stop_cmd.add_argument('names', metavar='NAME', nargs='+',\n" +" help='Name of service to stop')\n" +" restart_cmd = subparsers.add_parser('restart',\n" +" help='Restart one or more " +"services')\n" +" restart_cmd.add_argument('names', metavar='NAME', nargs='+',\n" +" help='Name of service to restart')\n" +" options = parser.parse_args()\n" +" # the code to dispatch commands could all be in this file. For the " +"purposes\n" +" # of illustration only, we implement each command in a separate module.\n" +" try:\n" +" mod = importlib.import_module(options.command)\n" +" cmd = getattr(mod, 'command')\n" +" except (ImportError, AttributeError):\n" +" print('Unable to find the code for command \\'%s\\'' % " +"options.command)\n" +" return 1\n" +" # Could get fancy here and load configuration from file or dictionary\n" +" logging.basicConfig(level=options.log_level,\n" +" format='%(levelname)s %(name)s %(message)s')\n" +" cmd(options)\n" +"\n" +"if __name__ == '__main__':\n" +" sys.exit(main())" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3495 +msgid "" +"And the ``start``, ``stop`` and ``restart`` commands can be implemented in " +"separate modules, like so for starting::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3498 +msgid "" +"# start.py\n" +"import logging\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"def command(options):\n" +" logger.debug('About to start %s', options.name)\n" +" # actually do the command processing here ...\n" +" logger.info('Started the \\'%s\\' service.', options.name)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3508 +msgid "and thus for stopping::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3510 +msgid "" +"# stop.py\n" +"import logging\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"def command(options):\n" +" n = len(options.names)\n" +" if n == 1:\n" +" plural = ''\n" +" services = '\\'%s\\'' % options.names[0]\n" +" else:\n" +" plural = 's'\n" +" services = ', '.join('\\'%s\\'' % name for name in options.names)\n" +" i = services.rfind(', ')\n" +" services = services[:i] + ' and ' + services[i + 2:]\n" +" logger.debug('About to stop %s', services)\n" +" # actually do the command processing here ...\n" +" logger.info('Stopped the %s service%s.', services, plural)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3529 +msgid "and similarly for restarting::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3531 +msgid "" +"# restart.py\n" +"import logging\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"def command(options):\n" +" n = len(options.names)\n" +" if n == 1:\n" +" plural = ''\n" +" services = '\\'%s\\'' % options.names[0]\n" +" else:\n" +" plural = 's'\n" +" services = ', '.join('\\'%s\\'' % name for name in options.names)\n" +" i = services.rfind(', ')\n" +" services = services[:i] + ' and ' + services[i + 2:]\n" +" logger.debug('About to restart %s', services)\n" +" # actually do the command processing here ...\n" +" logger.info('Restarted the %s service%s.', services, plural)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3550 +msgid "" +"If we run this application with the default log level, we get output like " +"this:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3552 +msgid "" +"$ python app.py start foo\n" +"INFO start Started the 'foo' service.\n" +"\n" +"$ python app.py stop foo bar\n" +"INFO stop Stopped the 'foo' and 'bar' services.\n" +"\n" +"$ python app.py restart foo bar baz\n" +"INFO restart Restarted the 'foo', 'bar' and 'baz' services." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3563 +msgid "" +"The first word is the logging level, and the second word is the module or " +"package name of the place where the event was logged." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3566 +msgid "" +"If we change the logging level, then we can change the information sent to " +"the log. For example, if we want more information:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3569 +msgid "" +"$ python app.py --log-level DEBUG start foo\n" +"DEBUG start About to start foo\n" +"INFO start Started the 'foo' service.\n" +"\n" +"$ python app.py --log-level DEBUG stop foo bar\n" +"DEBUG stop About to stop 'foo' and 'bar'\n" +"INFO stop Stopped the 'foo' and 'bar' services.\n" +"\n" +"$ python app.py --log-level DEBUG restart foo bar baz\n" +"DEBUG restart About to restart 'foo', 'bar' and 'baz'\n" +"INFO restart Restarted the 'foo', 'bar' and 'baz' services." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3583 +msgid "And if we want less:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3585 +msgid "" +"$ python app.py --log-level WARNING start foo\n" +"$ python app.py --log-level WARNING stop foo bar\n" +"$ python app.py --log-level WARNING restart foo bar baz" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3591 +msgid "" +"In this case, the commands don't print anything to the console, since " +"nothing at ``WARNING`` level or above is logged by them." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3597 +msgid "A Qt GUI for logging" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3599 +msgid "" +"A question that comes up from time to time is about how to log to a GUI " +"application. The `Qt `_ framework is a popular cross-" +"platform UI framework with Python bindings using :pypi:`PySide2` " +"or :pypi:`PyQt5` libraries." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3604 +msgid "" +"The following example shows how to log to a Qt GUI. This introduces a simple " +"``QtHandler`` class which takes a callable, which should be a slot in the " +"main thread that does GUI updates. A worker thread is also created to show " +"how you can log to the GUI from both the UI itself (via a button for manual " +"logging) as well as a worker thread doing work in the background (here, just " +"logging messages at random levels with random short delays in between)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3611 +msgid "" +"The worker thread is implemented using Qt's ``QThread`` class rather than " +"the :mod:`threading` module, as there are circumstances where one has to use " +"``QThread``, which offers better integration with other ``Qt`` components." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3615 +msgid "" +"The code should work with recent releases of any of ``PySide6``, ``PyQt6``, " +"``PySide2`` or ``PyQt5``. You should be able to adapt the approach to " +"earlier versions of Qt. Please refer to the comments in the code snippet for " +"more detailed information." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3620 +msgid "" +"import datetime\n" +"import logging\n" +"import random\n" +"import sys\n" +"import time\n" +"\n" +"# Deal with minor differences between different Qt packages\n" +"try:\n" +" from PySide6 import QtCore, QtGui, QtWidgets\n" +" Signal = QtCore.Signal\n" +" Slot = QtCore.Slot\n" +"except ImportError:\n" +" try:\n" +" from PyQt6 import QtCore, QtGui, QtWidgets\n" +" Signal = QtCore.pyqtSignal\n" +" Slot = QtCore.pyqtSlot\n" +" except ImportError:\n" +" try:\n" +" from PySide2 import QtCore, QtGui, QtWidgets\n" +" Signal = QtCore.Signal\n" +" Slot = QtCore.Slot\n" +" except ImportError:\n" +" from PyQt5 import QtCore, QtGui, QtWidgets\n" +" Signal = QtCore.pyqtSignal\n" +" Slot = QtCore.pyqtSlot\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"\n" +"#\n" +"# Signals need to be contained in a QObject or subclass in order to be " +"correctly\n" +"# initialized.\n" +"#\n" +"class Signaller(QtCore.QObject):\n" +" signal = Signal(str, logging.LogRecord)\n" +"\n" +"#\n" +"# Output to a Qt GUI is only supposed to happen on the main thread. So, " +"this\n" +"# handler is designed to take a slot function which is set up to run in the " +"main\n" +"# thread. In this example, the function takes a string argument which is a\n" +"# formatted log message, and the log record which generated it. The " +"formatted\n" +"# string is just a convenience - you could format a string for output any " +"way\n" +"# you like in the slot function itself.\n" +"#\n" +"# You specify the slot function to do whatever GUI updates you want. The " +"handler\n" +"# doesn't know or care about specific UI elements.\n" +"#\n" +"class QtHandler(logging.Handler):\n" +" def __init__(self, slotfunc, *args, **kwargs):\n" +" super().__init__(*args, **kwargs)\n" +" self.signaller = Signaller()\n" +" self.signaller.signal.connect(slotfunc)\n" +"\n" +" def emit(self, record):\n" +" s = self.format(record)\n" +" self.signaller.signal.emit(s, record)\n" +"\n" +"#\n" +"# This example uses QThreads, which means that the threads at the Python " +"level\n" +"# are named something like \"Dummy-1\". The function below gets the Qt name " +"of the\n" +"# current thread.\n" +"#\n" +"def ctname():\n" +" return QtCore.QThread.currentThread().objectName()\n" +"\n" +"\n" +"#\n" +"# Used to generate random levels for logging.\n" +"#\n" +"LEVELS = (logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR,\n" +" logging.CRITICAL)\n" +"\n" +"#\n" +"# This worker class represents work that is done in a thread separate to " +"the\n" +"# main thread. The way the thread is kicked off to do work is via a button " +"press\n" +"# that connects to a slot in the worker.\n" +"#\n" +"# Because the default threadName value in the LogRecord isn't much use, we " +"add\n" +"# a qThreadName which contains the QThread name as computed above, and pass " +"that\n" +"# value in an \"extra\" dictionary which is used to update the LogRecord " +"with the\n" +"# QThread name.\n" +"#\n" +"# This example worker just outputs messages sequentially, interspersed with\n" +"# random delays of the order of a few seconds.\n" +"#\n" +"class Worker(QtCore.QObject):\n" +" @Slot()\n" +" def start(self):\n" +" extra = {'qThreadName': ctname() }\n" +" logger.debug('Started work', extra=extra)\n" +" i = 1\n" +" # Let the thread run until interrupted. This allows reasonably " +"clean\n" +" # thread termination.\n" +" while not QtCore.QThread.currentThread().isInterruptionRequested():\n" +" delay = 0.5 + random.random() * 2\n" +" time.sleep(delay)\n" +" try:\n" +" if random.random() < 0.1:\n" +" raise ValueError('Exception raised: %d' % i)\n" +" else:\n" +" level = random.choice(LEVELS)\n" +" logger.log(level, 'Message after delay of %3.1f: %d', " +"delay, i, extra=extra)\n" +" except ValueError as e:\n" +" logger.exception('Failed: %s', e, extra=extra)\n" +" i += 1\n" +"\n" +"#\n" +"# Implement a simple UI for this cookbook example. This contains:\n" +"#\n" +"# * A read-only text edit window which holds formatted log messages\n" +"# * A button to start work and log stuff in a separate thread\n" +"# * A button to log something from the main thread\n" +"# * A button to clear the log window\n" +"#\n" +"class Window(QtWidgets.QWidget):\n" +"\n" +" COLORS = {\n" +" logging.DEBUG: 'black',\n" +" logging.INFO: 'blue',\n" +" logging.WARNING: 'orange',\n" +" logging.ERROR: 'red',\n" +" logging.CRITICAL: 'purple',\n" +" }\n" +"\n" +" def __init__(self, app):\n" +" super().__init__()\n" +" self.app = app\n" +" self.textedit = te = QtWidgets.QPlainTextEdit(self)\n" +" # Set whatever the default monospace font is for the platform\n" +" f = QtGui.QFont('nosuchfont')\n" +" if hasattr(f, 'Monospace'):\n" +" f.setStyleHint(f.Monospace)\n" +" else:\n" +" f.setStyleHint(f.StyleHint.Monospace) # for Qt6\n" +" te.setFont(f)\n" +" te.setReadOnly(True)\n" +" PB = QtWidgets.QPushButton\n" +" self.work_button = PB('Start background work', self)\n" +" self.log_button = PB('Log a message at a random level', self)\n" +" self.clear_button = PB('Clear log window', self)\n" +" self.handler = h = QtHandler(self.update_status)\n" +" # Remember to use qThreadName rather than threadName in the format " +"string.\n" +" fs = '%(asctime)s %(qThreadName)-12s %(levelname)-8s %(message)s'\n" +" formatter = logging.Formatter(fs)\n" +" h.setFormatter(formatter)\n" +" logger.addHandler(h)\n" +" # Set up to terminate the QThread when we exit\n" +" app.aboutToQuit.connect(self.force_quit)\n" +"\n" +" # Lay out all the widgets\n" +" layout = QtWidgets.QVBoxLayout(self)\n" +" layout.addWidget(te)\n" +" layout.addWidget(self.work_button)\n" +" layout.addWidget(self.log_button)\n" +" layout.addWidget(self.clear_button)\n" +" self.setFixedSize(900, 400)\n" +"\n" +" # Connect the non-worker slots and signals\n" +" self.log_button.clicked.connect(self.manual_update)\n" +" self.clear_button.clicked.connect(self.clear_display)\n" +"\n" +" # Start a new worker thread and connect the slots for the worker\n" +" self.start_thread()\n" +" self.work_button.clicked.connect(self.worker.start)\n" +" # Once started, the button should be disabled\n" +" self.work_button.clicked.connect(lambda : " +"self.work_button.setEnabled(False))\n" +"\n" +" def start_thread(self):\n" +" self.worker = Worker()\n" +" self.worker_thread = QtCore.QThread()\n" +" self.worker.setObjectName('Worker')\n" +" self.worker_thread.setObjectName('WorkerThread') # for qThreadName\n" +" self.worker.moveToThread(self.worker_thread)\n" +" # This will start an event loop in the worker thread\n" +" self.worker_thread.start()\n" +"\n" +" def kill_thread(self):\n" +" # Just tell the worker to stop, then tell it to quit and wait for " +"that\n" +" # to happen\n" +" self.worker_thread.requestInterruption()\n" +" if self.worker_thread.isRunning():\n" +" self.worker_thread.quit()\n" +" self.worker_thread.wait()\n" +" else:\n" +" print('worker has already exited.')\n" +"\n" +" def force_quit(self):\n" +" # For use when the window is closed\n" +" if self.worker_thread.isRunning():\n" +" self.kill_thread()\n" +"\n" +" # The functions below update the UI and run in the main thread because\n" +" # that's where the slots are set up\n" +"\n" +" @Slot(str, logging.LogRecord)\n" +" def update_status(self, status, record):\n" +" color = self.COLORS.get(record.levelno, 'black')\n" +" s = '
%s
' % (color, status)\n" +" self.textedit.appendHtml(s)\n" +"\n" +" @Slot()\n" +" def manual_update(self):\n" +" # This function uses the formatted message passed in, but also uses\n" +" # information from the record to format the message in an " +"appropriate\n" +" # color according to its severity (level).\n" +" level = random.choice(LEVELS)\n" +" extra = {'qThreadName': ctname() }\n" +" logger.log(level, 'Manually logged!', extra=extra)\n" +"\n" +" @Slot()\n" +" def clear_display(self):\n" +" self.textedit.clear()\n" +"\n" +"\n" +"def main():\n" +" QtCore.QThread.currentThread().setObjectName('MainThread')\n" +" logging.getLogger().setLevel(logging.DEBUG)\n" +" app = QtWidgets.QApplication(sys.argv)\n" +" example = Window(app)\n" +" example.show()\n" +" if hasattr(app, 'exec'):\n" +" rc = app.exec()\n" +" else:\n" +" rc = app.exec_()\n" +" sys.exit(rc)\n" +"\n" +"if __name__=='__main__':\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3852 +msgid "Logging to syslog with RFC5424 support" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3854 +msgid "" +"Although :rfc:`5424` dates from 2009, most syslog servers are configured by " +"default to use the older :rfc:`3164`, which hails from 2001. When " +"``logging`` was added to Python in 2003, it supported the earlier (and only " +"existing) protocol at the time. Since RFC5424 came out, as there has not " +"been widespread deployment of it in syslog servers, " +"the :class:`~logging.handlers.SysLogHandler` functionality has not been " +"updated." +msgstr "" + +#: ../../howto/logging-cookbook.rst:3861 +msgid "" +"RFC 5424 contains some useful features such as support for structured data, " +"and if you need to be able to log to a syslog server with support for it, " +"you can do so with a subclassed handler which looks something like this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3865 +msgid "" +"import datetime\n" +"import logging.handlers\n" +"import re\n" +"import socket\n" +"import time\n" +"\n" +"class SysLogHandler5424(logging.handlers.SysLogHandler):\n" +"\n" +" tz_offset = re.compile(r'([+-]\\d{2})(\\d{2})$')\n" +" escaped = re.compile(r'([\\]\"\\\\])')\n" +"\n" +" def __init__(self, *args, **kwargs):\n" +" self.msgid = kwargs.pop('msgid', None)\n" +" self.appname = kwargs.pop('appname', None)\n" +" super().__init__(*args, **kwargs)\n" +"\n" +" def format(self, record):\n" +" version = 1\n" +" asctime = " +"datetime.datetime.fromtimestamp(record.created).isoformat()\n" +" m = self.tz_offset.match(time.strftime('%z'))\n" +" has_offset = False\n" +" if m and time.timezone:\n" +" hrs, mins = m.groups()\n" +" if int(hrs) or int(mins):\n" +" has_offset = True\n" +" if not has_offset:\n" +" asctime += 'Z'\n" +" else:\n" +" asctime += f'{hrs}:{mins}'\n" +" try:\n" +" hostname = socket.gethostname()\n" +" except Exception:\n" +" hostname = '-'\n" +" appname = self.appname or '-'\n" +" procid = record.process\n" +" msgid = '-'\n" +" msg = super().format(record)\n" +" sdata = '-'\n" +" if hasattr(record, 'structured_data'):\n" +" sd = record.structured_data\n" +" # This should be a dict where the keys are SD-ID and the value " +"is a\n" +" # dict mapping PARAM-NAME to PARAM-VALUE (refer to the RFC for " +"what these\n" +" # mean)\n" +" # There's no error checking here - it's purely for illustration, " +"and you\n" +" # can adapt this code for use in production environments\n" +" parts = []\n" +"\n" +" def replacer(m):\n" +" g = m.groups()\n" +" return '\\\\' + g[0]\n" +"\n" +" for sdid, dv in sd.items():\n" +" part = f'[{sdid}'\n" +" for k, v in dv.items():\n" +" s = str(v)\n" +" s = self.escaped.sub(replacer, s)\n" +" part += f' {k}=\"{s}\"'\n" +" part += ']'\n" +" parts.append(part)\n" +" sdata = ''.join(parts)\n" +" return f'{version} {asctime} {hostname} {appname} {procid} {msgid} " +"{sdata} {msg}'" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3927 +msgid "" +"You'll need to be familiar with RFC 5424 to fully understand the above code, " +"and it may be that you have slightly different needs (e.g. for how you pass " +"structural data to the log). Nevertheless, the above should be adaptable to " +"your speciric needs. With the above handler, you'd pass structured data " +"using something like this::" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3932 +msgid "" +"sd = {\n" +" 'foo@12345': {'bar': 'baz', 'baz': 'bozz', 'fizz': r'buzz'},\n" +" 'foo@54321': {'rab': 'baz', 'zab': 'bozz', 'zzif': r'buzz'}\n" +"}\n" +"extra = {'structured_data': sd}\n" +"i = 1\n" +"logger.debug('Message %d', i, extra=extra)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3941 +msgid "How to treat a logger like an output stream" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3943 +msgid "" +"Sometimes, you need to interface to a third-party API which expects a file-" +"like object to write to, but you want to direct the API's output to a " +"logger. You can do this using a class which wraps a logger with a file-like " +"API. Here's a short script illustrating such a class:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3948 +msgid "" +"import logging\n" +"\n" +"class LoggerWriter:\n" +" def __init__(self, logger, level):\n" +" self.logger = logger\n" +" self.level = level\n" +"\n" +" def write(self, message):\n" +" if message != '\\n': # avoid printing bare newlines, if you like\n" +" self.logger.log(self.level, message)\n" +"\n" +" def flush(self):\n" +" # doesn't actually do anything, but might be expected of a file-" +"like\n" +" # object - so optional depending on your situation\n" +" pass\n" +"\n" +" def close(self):\n" +" # doesn't actually do anything, but might be expected of a file-" +"like\n" +" # object - so optional depending on your situation. You might want\n" +" # to set a flag so that later calls to write raise an exception\n" +" pass\n" +"\n" +"def main():\n" +" logging.basicConfig(level=logging.DEBUG)\n" +" logger = logging.getLogger('demo')\n" +" info_fp = LoggerWriter(logger, logging.INFO)\n" +" debug_fp = LoggerWriter(logger, logging.DEBUG)\n" +" print('An INFO message', file=info_fp)\n" +" print('A DEBUG message', file=debug_fp)\n" +"\n" +"if __name__ == \"__main__\":\n" +" main()" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3983 +msgid "When this script is run, it prints" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3985 +msgid "" +"INFO:demo:An INFO message\n" +"DEBUG:demo:A DEBUG message" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3990 +msgid "" +"You could also use ``LoggerWriter`` to redirect ``sys.stdout`` and " +"``sys.stderr`` by doing something like this:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:3993 +msgid "" +"import sys\n" +"\n" +"sys.stdout = LoggerWriter(logger, logging.INFO)\n" +"sys.stderr = LoggerWriter(logger, logging.WARNING)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4000 +msgid "" +"You should do this *after* configuring logging for your needs. In the above " +"example, the :func:`~logging.basicConfig` call does this (using the " +"``sys.stderr`` value *before* it is overwritten by a ``LoggerWriter`` " +"instance). Then, you'd get this kind of result:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4005 +msgid "" +">>> print('Foo')\n" +"INFO:demo:Foo\n" +">>> print('Bar', file=sys.stderr)\n" +"WARNING:demo:Bar\n" +">>>" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4013 +msgid "" +"Of course, the examples above show output according to the format used " +"by :func:`~logging.basicConfig`, but you can use a different formatter when " +"you configure logging." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4017 +msgid "" +"Note that with the above scheme, you are somewhat at the mercy of buffering " +"and the sequence of write calls which you are intercepting. For example, " +"with the definition of ``LoggerWriter`` above, if you have the snippet" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4021 +msgid "" +"sys.stderr = LoggerWriter(logger, logging.WARNING)\n" +"1 / 0" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4026 +msgid "then running the script results in" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4028 +msgid "" +"WARNING:demo:Traceback (most recent call last):\n" +"\n" +"WARNING:demo: File \"/home/runner/cookbook-loggerwriter/test.py\", line 53, " +"in \n" +"\n" +"WARNING:demo:\n" +"WARNING:demo:main()\n" +"WARNING:demo: File \"/home/runner/cookbook-loggerwriter/test.py\", line 49, " +"in main\n" +"\n" +"WARNING:demo:\n" +"WARNING:demo:1 / 0\n" +"WARNING:demo:ZeroDivisionError\n" +"WARNING:demo::\n" +"WARNING:demo:division by zero" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4044 +msgid "" +"As you can see, this output isn't ideal. That's because the underlying code " +"which writes to ``sys.stderr`` makes multiple writes, each of which results " +"in a separate logged line (for example, the last three lines above). To get " +"around this problem, you need to buffer things and only output log lines " +"when newlines are seen. Let's use a slightly better implementation of " +"``LoggerWriter``:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4050 +msgid "" +"class BufferingLoggerWriter(LoggerWriter):\n" +" def __init__(self, logger, level):\n" +" super().__init__(logger, level)\n" +" self.buffer = ''\n" +"\n" +" def write(self, message):\n" +" if '\\n' not in message:\n" +" self.buffer += message\n" +" else:\n" +" parts = message.split('\\n')\n" +" if self.buffer:\n" +" s = self.buffer + parts.pop(0)\n" +" self.logger.log(self.level, s)\n" +" self.buffer = parts.pop()\n" +" for part in parts:\n" +" self.logger.log(self.level, part)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4069 +msgid "" +"This just buffers up stuff until a newline is seen, and then logs complete " +"lines. With this approach, you get better output:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4072 +msgid "" +"WARNING:demo:Traceback (most recent call last):\n" +"WARNING:demo: File \"/home/runner/cookbook-loggerwriter/main.py\", line 55, " +"in \n" +"WARNING:demo: main()\n" +"WARNING:demo: File \"/home/runner/cookbook-loggerwriter/main.py\", line 52, " +"in main\n" +"WARNING:demo: 1/0\n" +"WARNING:demo:ZeroDivisionError: division by zero" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4082 +msgid "How to uniformly handle newlines in logging output" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4084 +msgid "" +"Usually, messages that are logged (say to console or file) consist of a " +"single line of text. However, sometimes there is a need to handle messages " +"with multiple lines - whether because a logging format string contains " +"newlines, or logged data contains newlines. If you want to handle such " +"messages uniformly, so that each line in the logged message appears " +"uniformly formatted as if it was logged separately, you can do this using a " +"handler mixin, as in the following snippet:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4092 +msgid "" +"# Assume this is in a module mymixins.py\n" +"import copy\n" +"\n" +"class MultilineMixin:\n" +" def emit(self, record):\n" +" s = record.getMessage()\n" +" if '\\n' not in s:\n" +" super().emit(record)\n" +" else:\n" +" lines = s.splitlines()\n" +" rec = copy.copy(record)\n" +" rec.args = None\n" +" for line in lines:\n" +" rec.msg = line\n" +" super().emit(rec)" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4110 +msgid "You can use the mixin as in the following script:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4112 +msgid "" +"import logging\n" +"\n" +"from mymixins import MultilineMixin\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"class StreamHandler(MultilineMixin, logging.StreamHandler):\n" +" pass\n" +"\n" +"if __name__ == '__main__':\n" +" logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %" +"(levelname)-9s %(message)s',\n" +" handlers = [StreamHandler()])\n" +" logger.debug('Single line')\n" +" logger.debug('Multiple lines:\\nfool me once ...')\n" +" logger.debug('Another single line')\n" +" logger.debug('Multiple lines:\\n%s', 'fool me ...\\ncan\\'t get fooled " +"again')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4131 +msgid "The script, when run, prints something like:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4133 +msgid "" +"2025-07-02 13:54:47,234 DEBUG Single line\n" +"2025-07-02 13:54:47,234 DEBUG Multiple lines:\n" +"2025-07-02 13:54:47,234 DEBUG fool me once ...\n" +"2025-07-02 13:54:47,234 DEBUG Another single line\n" +"2025-07-02 13:54:47,234 DEBUG Multiple lines:\n" +"2025-07-02 13:54:47,234 DEBUG fool me ...\n" +"2025-07-02 13:54:47,234 DEBUG can't get fooled again" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4143 +msgid "" +"If, on the other hand, you are concerned about `log injection `_, you can use a formatter " +"which escapes newlines, as per the following example:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4147 +msgid "" +"import logging\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"class EscapingFormatter(logging.Formatter):\n" +" def format(self, record):\n" +" s = super().format(record)\n" +" return s.replace('\\n', r'\\n')\n" +"\n" +"if __name__ == '__main__':\n" +" h = logging.StreamHandler()\n" +" h.setFormatter(EscapingFormatter('%(asctime)s %(levelname)-9s %" +"(message)s'))\n" +" logging.basicConfig(level=logging.DEBUG, handlers = [h])\n" +" logger.debug('Single line')\n" +" logger.debug('Multiple lines:\\nfool me once ...')\n" +" logger.debug('Another single line')\n" +" logger.debug('Multiple lines:\\n%s', 'fool me ...\\ncan\\'t get fooled " +"again')" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4167 +msgid "" +"You can, of course, use whatever escaping scheme makes the most sense for " +"you. The script, when run, should produce output like this:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4170 +msgid "" +"2025-07-09 06:47:33,783 DEBUG Single line\n" +"2025-07-09 06:47:33,783 DEBUG Multiple lines:\\nfool me once ...\n" +"2025-07-09 06:47:33,783 DEBUG Another single line\n" +"2025-07-09 06:47:33,783 DEBUG Multiple lines:\\nfool me ...\\ncan't get " +"fooled again" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4177 +msgid "" +"Escaping behaviour can't be the stdlib default , as it would break backwards " +"compatibility." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4183 +msgid "Patterns to avoid" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4185 +msgid "" +"Although the preceding sections have described ways of doing things you " +"might need to do or deal with, it is worth mentioning some usage patterns " +"which are *unhelpful*, and which should therefore be avoided in most cases. " +"The following sections are in no particular order." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4191 +msgid "Opening the same log file multiple times" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4193 +msgid "" +"On Windows, you will generally not be able to open the same file multiple " +"times as this will lead to a \"file is in use by another process\" error. " +"However, on POSIX platforms you'll not get any errors if you open the same " +"file multiple times. This could be done accidentally, for example by:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4198 +msgid "" +"Adding a file handler more than once which references the same file (e.g. by " +"a copy/paste/forget-to-change error)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4201 +msgid "" +"Opening two files that look different, as they have different names, but are " +"the same because one is a symbolic link to the other." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4204 +msgid "" +"Forking a process, following which both parent and child have a reference to " +"the same file. This might be through use of the :mod:`multiprocessing` " +"module, for example." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4208 +msgid "" +"Opening a file multiple times might *appear* to work most of the time, but " +"can lead to a number of problems in practice:" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4211 +msgid "" +"Logging output can be garbled because multiple threads or processes try to " +"write to the same file. Although logging guards against concurrent use of " +"the same handler instance by multiple threads, there is no such protection " +"if concurrent writes are attempted by two different threads using two " +"different handler instances which happen to point to the same file." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4217 +msgid "" +"An attempt to delete a file (e.g. during file rotation) silently fails, " +"because there is another reference pointing to it. This can lead to " +"confusion and wasted debugging time - log entries end up in unexpected " +"places, or are lost altogether. Or a file that was supposed to be moved " +"remains in place, and grows in size unexpectedly despite size-based rotation " +"being supposedly in place." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4224 +msgid "" +"Use the techniques outlined in :ref:`multiple-processes` to circumvent such " +"issues." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4228 +msgid "Using loggers as attributes in a class or passing them as parameters" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4230 +msgid "" +"While there might be unusual cases where you'll need to do this, in general " +"there is no point because loggers are singletons. Code can always access a " +"given logger instance by name using ``logging.getLogger(name)``, so passing " +"instances around and holding them as instance attributes is pointless. Note " +"that in other languages such as Java and C#, loggers are often static class " +"attributes. However, this pattern doesn't make sense in Python, where the " +"module (and not the class) is the unit of software decomposition." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4239 +msgid "" +"Adding handlers other than :class:`~logging.NullHandler` to a logger in a " +"library" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4241 +msgid "" +"Configuring logging by adding handlers, formatters and filters is the " +"responsibility of the application developer, not the library developer. If " +"you are maintaining a library, ensure that you don't add handlers to any of " +"your loggers other than a :class:`~logging.NullHandler` instance." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4247 +msgid "Creating a lot of loggers" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4249 +msgid "" +"Loggers are singletons that are never freed during a script execution, and " +"so creating lots of loggers will use up memory which can't then be freed. " +"Rather than create a logger per e.g. file processed or network connection " +"made, use the :ref:`existing mechanisms ` for passing " +"contextual information into your logs and restrict the loggers created to " +"those describing areas within your application (generally modules, but " +"occasionally slightly more fine-grained than that)." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4260 +msgid "Other resources" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4264 +msgid "Module :mod:`logging`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4265 +msgid "API reference for the logging module." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4267 +msgid "Module :mod:`logging.config`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4268 +msgid "Configuration API for the logging module." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4270 +msgid "Module :mod:`logging.handlers`" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4271 +msgid "Useful handlers included with the logging module." +msgstr "" + +#: ../../howto/logging-cookbook.rst:4273 +msgid ":ref:`Basic Tutorial `" +msgstr "" + +#: ../../howto/logging-cookbook.rst:4275 +msgid ":ref:`Advanced Tutorial `" +msgstr "" diff --git a/howto/logging.po b/howto/logging.po new file mode 100644 index 0000000..82c7278 --- /dev/null +++ b/howto/logging.po @@ -0,0 +1,1713 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/logging.rst:5 +msgid "Logging HOWTO" +msgstr "" + +#: ../../howto/logging.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/logging.rst:7 +msgid "Vinay Sajip " +msgstr "" + +#: ../../howto/logging.rst:13 +msgid "" +"This page contains tutorial information. For links to reference information " +"and a logging cookbook, please see :ref:`tutorial-ref-links`." +msgstr "" + +#: ../../howto/logging.rst:17 +msgid "Basic Logging Tutorial" +msgstr "" + +#: ../../howto/logging.rst:19 +msgid "" +"Logging is a means of tracking events that happen when some software runs. " +"The software's developer adds logging calls to their code to indicate that " +"certain events have occurred. An event is described by a descriptive message " +"which can optionally contain variable data (i.e. data that is potentially " +"different for each occurrence of the event). Events also have an importance " +"which the developer ascribes to the event; the importance can also be called " +"the *level* or *severity*." +msgstr "" + +#: ../../howto/logging.rst:28 +msgid "When to use logging" +msgstr "" + +#: ../../howto/logging.rst:30 +msgid "" +"You can access logging functionality by creating a logger via ``logger = " +"getLogger(__name__)``, and then calling the " +"logger's :meth:`~Logger.debug`, :meth:`~Logger.info`, :meth:`~Logger.warning`, :meth:`~Logger.error` " +"and :meth:`~Logger.critical` methods. To determine when to use logging, and " +"to see which logger methods to use when, see the table below. It states, for " +"each of a set of common tasks, the best tool to use for that task." +msgstr "" + +#: ../../howto/logging.rst:38 +msgid "Task you want to perform" +msgstr "" + +#: ../../howto/logging.rst:38 +msgid "The best tool for the task" +msgstr "" + +#: ../../howto/logging.rst:40 +msgid "" +"Display console output for ordinary usage of a command line script or program" +msgstr "" + +#: ../../howto/logging.rst:40 +msgid ":func:`print`" +msgstr "" + +#: ../../howto/logging.rst:44 +msgid "" +"Report events that occur during normal operation of a program (e.g. for " +"status monitoring or fault investigation)" +msgstr "" + +#: ../../howto/logging.rst:44 +msgid "" +"A logger's :meth:`~Logger.info` (or :meth:`~Logger.debug` method for very " +"detailed output for diagnostic purposes)" +msgstr "" + +#: ../../howto/logging.rst:49 +msgid "Issue a warning regarding a particular runtime event" +msgstr "" + +#: ../../howto/logging.rst:49 +msgid "" +":func:`warnings.warn` in library code if the issue is avoidable and the " +"client application should be modified to eliminate the warning" +msgstr "" + +#: ../../howto/logging.rst:54 +msgid "" +"A logger's :meth:`~Logger.warning` method if there is nothing the client " +"application can do about the situation, but the event should still be noted" +msgstr "" + +#: ../../howto/logging.rst:60 +msgid "Report an error regarding a particular runtime event" +msgstr "" + +#: ../../howto/logging.rst:60 +msgid "Raise an exception" +msgstr "" + +#: ../../howto/logging.rst:63 +msgid "" +"Report suppression of an error without raising an exception (e.g. error " +"handler in a long-running server process)" +msgstr "" + +#: ../../howto/logging.rst:63 +msgid "" +"A logger's :meth:`~Logger.error`, :meth:`~Logger.exception` " +"or :meth:`~Logger.critical` method as appropriate for the specific error and " +"application domain" +msgstr "" + +#: ../../howto/logging.rst:70 +msgid "" +"The logger methods are named after the level or severity of the events they " +"are used to track. The standard levels and their applicability are described " +"below (in increasing order of severity):" +msgstr "" + +#: ../../howto/logging.rst:77 ../../howto/logging.rst:875 +msgid "Level" +msgstr "" + +#: ../../howto/logging.rst:77 +msgid "When it's used" +msgstr "" + +#: ../../howto/logging.rst:79 ../../howto/logging.rst:885 +msgid "``DEBUG``" +msgstr "``DEBUG``" + +#: ../../howto/logging.rst:79 +msgid "" +"Detailed information, typically of interest only when diagnosing problems." +msgstr "" + +#: ../../howto/logging.rst:82 ../../howto/logging.rst:883 +msgid "``INFO``" +msgstr "``INFO``" + +#: ../../howto/logging.rst:82 +msgid "Confirmation that things are working as expected." +msgstr "" + +#: ../../howto/logging.rst:85 ../../howto/logging.rst:881 +msgid "``WARNING``" +msgstr "``WARNING``" + +#: ../../howto/logging.rst:85 +msgid "" +"An indication that something unexpected happened, or indicative of some " +"problem in the near future (e.g. 'disk space low'). The software is still " +"working as expected." +msgstr "" + +#: ../../howto/logging.rst:90 ../../howto/logging.rst:879 +msgid "``ERROR``" +msgstr "``ERROR``" + +#: ../../howto/logging.rst:90 +msgid "" +"Due to a more serious problem, the software has not been able to perform " +"some function." +msgstr "" + +#: ../../howto/logging.rst:93 ../../howto/logging.rst:877 +msgid "``CRITICAL``" +msgstr "``CRITICAL``" + +#: ../../howto/logging.rst:93 +msgid "" +"A serious error, indicating that the program itself may be unable to " +"continue running." +msgstr "" + +#: ../../howto/logging.rst:97 +msgid "" +"The default level is ``WARNING``, which means that only events of this " +"severity and higher will be tracked, unless the logging package is " +"configured to do otherwise." +msgstr "" + +#: ../../howto/logging.rst:100 +msgid "" +"Events that are tracked can be handled in different ways. The simplest way " +"of handling tracked events is to print them to the console. Another common " +"way is to write them to a disk file." +msgstr "" + +#: ../../howto/logging.rst:108 +msgid "A simple example" +msgstr "" + +#: ../../howto/logging.rst:110 +msgid "A very simple example is::" +msgstr "" + +#: ../../howto/logging.rst:112 +msgid "" +"import logging\n" +"logging.warning('Watch out!') # will print a message to the console\n" +"logging.info('I told you so') # will not print anything" +msgstr "" + +#: ../../howto/logging.rst:116 +msgid "If you type these lines into a script and run it, you'll see:" +msgstr "" + +#: ../../howto/logging.rst:118 +msgid "WARNING:root:Watch out!" +msgstr "" + +#: ../../howto/logging.rst:122 +msgid "" +"printed out on the console. The ``INFO`` message doesn't appear because the " +"default level is ``WARNING``. The printed message includes the indication of " +"the level and the description of the event provided in the logging call, " +"i.e. 'Watch out!'. The actual output can be formatted quite flexibly if you " +"need that; formatting options will also be explained later." +msgstr "" + +#: ../../howto/logging.rst:128 +msgid "" +"Notice that in this example, we use functions directly on the ``logging`` " +"module, like ``logging.debug``, rather than creating a logger and calling " +"functions on it. These functions operate on the root logger, but can be " +"useful as they will call :func:`~logging.basicConfig` for you if it has not " +"been called yet, like in this example. In larger programs you'll usually " +"want to control the logging configuration explicitly however - so for that " +"reason as well as others, it's better to create loggers and call their " +"methods." +msgstr "" + +#: ../../howto/logging.rst:137 +msgid "Logging to a file" +msgstr "" + +#: ../../howto/logging.rst:139 +msgid "" +"A very common situation is that of recording logging events in a file, so " +"let's look at that next. Be sure to try the following in a newly started " +"Python interpreter, and don't just continue from the session described " +"above::" +msgstr "" + +#: ../../howto/logging.rst:143 +msgid "" +"import logging\n" +"logger = logging.getLogger(__name__)\n" +"logging.basicConfig(filename='example.log', encoding='utf-8', " +"level=logging.DEBUG)\n" +"logger.debug('This message should go to the log file')\n" +"logger.info('So should this')\n" +"logger.warning('And this, too')\n" +"logger.error('And non-ASCII stuff, too, like Øresund and Malmö')" +msgstr "" + +#: ../../howto/logging.rst:151 +msgid "" +"The *encoding* argument was added. In earlier Python versions, or if not " +"specified, the encoding used is the default value used by :func:`open`. " +"While not shown in the above example, an *errors* argument can also now be " +"passed, which determines how encoding errors are handled. For available " +"values and the default, see the documentation for :func:`open`." +msgstr "" + +#: ../../howto/logging.rst:158 +msgid "" +"And now if we open the file and look at what we have, we should find the log " +"messages:" +msgstr "" + +#: ../../howto/logging.rst:161 +msgid "" +"DEBUG:__main__:This message should go to the log file\n" +"INFO:__main__:So should this\n" +"WARNING:__main__:And this, too\n" +"ERROR:__main__:And non-ASCII stuff, too, like Øresund and Malmö" +msgstr "" + +#: ../../howto/logging.rst:168 +msgid "" +"This example also shows how you can set the logging level which acts as the " +"threshold for tracking. In this case, because we set the threshold to " +"``DEBUG``, all of the messages were printed." +msgstr "" + +#: ../../howto/logging.rst:172 +msgid "" +"If you want to set the logging level from a command-line option such as:" +msgstr "" + +#: ../../howto/logging.rst:174 +msgid "--log=INFO" +msgstr "" + +#: ../../howto/logging.rst:178 +msgid "" +"and you have the value of the parameter passed for ``--log`` in some " +"variable *loglevel*, you can use::" +msgstr "" + +#: ../../howto/logging.rst:181 +msgid "getattr(logging, loglevel.upper())" +msgstr "" + +#: ../../howto/logging.rst:183 +msgid "" +"to get the value which you'll pass to :func:`basicConfig` via the *level* " +"argument. You may want to error check any user input value, perhaps as in " +"the following example::" +msgstr "" + +#: ../../howto/logging.rst:187 +msgid "" +"# assuming loglevel is bound to the string value obtained from the\n" +"# command line argument. Convert to upper case to allow the user to\n" +"# specify --log=DEBUG or --log=debug\n" +"numeric_level = getattr(logging, loglevel.upper(), None)\n" +"if not isinstance(numeric_level, int):\n" +" raise ValueError('Invalid log level: %s' % loglevel)\n" +"logging.basicConfig(level=numeric_level, ...)" +msgstr "" + +#: ../../howto/logging.rst:195 +msgid "" +"The call to :func:`basicConfig` should come *before* any calls to a logger's " +"methods such as :meth:`~Logger.debug`, :meth:`~Logger.info`, etc. Otherwise, " +"that logging event may not be handled in the desired manner." +msgstr "" + +#: ../../howto/logging.rst:199 +msgid "" +"If you run the above script several times, the messages from successive runs " +"are appended to the file *example.log*. If you want each run to start " +"afresh, not remembering the messages from earlier runs, you can specify the " +"*filemode* argument, by changing the call in the above example to::" +msgstr "" + +#: ../../howto/logging.rst:204 +msgid "" +"logging.basicConfig(filename='example.log', filemode='w', " +"level=logging.DEBUG)" +msgstr "" + +#: ../../howto/logging.rst:206 +msgid "" +"The output will be the same as before, but the log file is no longer " +"appended to, so the messages from earlier runs are lost." +msgstr "" + +#: ../../howto/logging.rst:211 +msgid "Logging variable data" +msgstr "" + +#: ../../howto/logging.rst:213 +msgid "" +"To log variable data, use a format string for the event description message " +"and append the variable data as arguments. For example::" +msgstr "" + +#: ../../howto/logging.rst:216 +msgid "" +"import logging\n" +"logging.warning('%s before you %s', 'Look', 'leap!')" +msgstr "" + +#: ../../howto/logging.rst:219 +msgid "will display:" +msgstr "" + +#: ../../howto/logging.rst:221 +msgid "WARNING:root:Look before you leap!" +msgstr "" + +#: ../../howto/logging.rst:225 +msgid "" +"As you can see, merging of variable data into the event description message " +"uses the old, %-style of string formatting. This is for backwards " +"compatibility: the logging package pre-dates newer formatting options such " +"as :meth:`str.format` and :class:`string.Template`. These newer formatting " +"options *are* supported, but exploring them is outside the scope of this " +"tutorial: see :ref:`formatting-styles` for more information." +msgstr "" + +#: ../../howto/logging.rst:234 +msgid "Changing the format of displayed messages" +msgstr "" + +#: ../../howto/logging.rst:236 +msgid "" +"To change the format which is used to display messages, you need to specify " +"the format you want to use::" +msgstr "" + +#: ../../howto/logging.rst:239 +msgid "" +"import logging\n" +"logging.basicConfig(format='%(levelname)s:%(message)s', " +"level=logging.DEBUG)\n" +"logging.debug('This message should appear on the console')\n" +"logging.info('So should this')\n" +"logging.warning('And this, too')" +msgstr "" + +#: ../../howto/logging.rst:245 +msgid "which would print:" +msgstr "" + +#: ../../howto/logging.rst:247 +msgid "" +"DEBUG:This message should appear on the console\n" +"INFO:So should this\n" +"WARNING:And this, too" +msgstr "" + +#: ../../howto/logging.rst:253 +msgid "" +"Notice that the 'root' which appeared in earlier examples has disappeared. " +"For a full set of things that can appear in format strings, you can refer to " +"the documentation for :ref:`logrecord-attributes`, but for simple usage, you " +"just need the *levelname* (severity), *message* (event description, " +"including variable data) and perhaps to display when the event occurred. " +"This is described in the next section." +msgstr "" + +#: ../../howto/logging.rst:262 +msgid "Displaying the date/time in messages" +msgstr "" + +#: ../../howto/logging.rst:264 +msgid "" +"To display the date and time of an event, you would place '%(asctime)s' in " +"your format string::" +msgstr "" + +#: ../../howto/logging.rst:267 +msgid "" +"import logging\n" +"logging.basicConfig(format='%(asctime)s %(message)s')\n" +"logging.warning('is when this event was logged.')" +msgstr "" + +#: ../../howto/logging.rst:271 +msgid "which should print something like this:" +msgstr "" + +#: ../../howto/logging.rst:273 +msgid "2010-12-12 11:41:42,612 is when this event was logged." +msgstr "" + +#: ../../howto/logging.rst:277 +msgid "" +"The default format for date/time display (shown above) is like ISO8601 " +"or :rfc:`3339`. If you need more control over the formatting of the date/" +"time, provide a *datefmt* argument to ``basicConfig``, as in this example::" +msgstr "" + +#: ../../howto/logging.rst:281 +msgid "" +"import logging\n" +"logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:" +"%M:%S %p')\n" +"logging.warning('is when this event was logged.')" +msgstr "" + +#: ../../howto/logging.rst:285 +msgid "which would display something like this:" +msgstr "" + +#: ../../howto/logging.rst:287 +msgid "12/12/2010 11:46:36 AM is when this event was logged." +msgstr "" + +#: ../../howto/logging.rst:291 +msgid "" +"The format of the *datefmt* argument is the same as supported " +"by :func:`time.strftime`." +msgstr "" + +#: ../../howto/logging.rst:296 +msgid "Next Steps" +msgstr "" + +#: ../../howto/logging.rst:298 +msgid "" +"That concludes the basic tutorial. It should be enough to get you up and " +"running with logging. There's a lot more that the logging package offers, " +"but to get the best out of it, you'll need to invest a little more of your " +"time in reading the following sections. If you're ready for that, grab some " +"of your favourite beverage and carry on." +msgstr "" + +#: ../../howto/logging.rst:304 +msgid "" +"If your logging needs are simple, then use the above examples to incorporate " +"logging into your own scripts, and if you run into problems or don't " +"understand something, please post a question in the Help category of the " +"`Python discussion forum `_ and you " +"should receive help before too long." +msgstr "" + +#: ../../howto/logging.rst:310 +msgid "" +"Still here? You can carry on reading the next few sections, which provide a " +"slightly more advanced/in-depth tutorial than the basic one above. After " +"that, you can take a look at the :ref:`logging-cookbook`." +msgstr "" + +#: ../../howto/logging.rst:318 +msgid "Advanced Logging Tutorial" +msgstr "" + +#: ../../howto/logging.rst:320 +msgid "" +"The logging library takes a modular approach and offers several categories " +"of components: loggers, handlers, filters, and formatters." +msgstr "" + +#: ../../howto/logging.rst:323 +msgid "Loggers expose the interface that application code directly uses." +msgstr "" + +#: ../../howto/logging.rst:324 +msgid "" +"Handlers send the log records (created by loggers) to the appropriate " +"destination." +msgstr "" + +#: ../../howto/logging.rst:326 +msgid "" +"Filters provide a finer grained facility for determining which log records " +"to output." +msgstr "" + +#: ../../howto/logging.rst:328 +msgid "Formatters specify the layout of log records in the final output." +msgstr "" + +#: ../../howto/logging.rst:330 +msgid "" +"Log event information is passed between loggers, handlers, filters and " +"formatters in a :class:`LogRecord` instance." +msgstr "" + +#: ../../howto/logging.rst:333 +msgid "" +"Logging is performed by calling methods on instances of the :class:`Logger` " +"class (hereafter called :dfn:`loggers`). Each instance has a name, and they " +"are conceptually arranged in a namespace hierarchy using dots (periods) as " +"separators. For example, a logger named 'scan' is the parent of loggers " +"'scan.text', 'scan.html' and 'scan.pdf'. Logger names can be anything you " +"want, and indicate the area of an application in which a logged message " +"originates." +msgstr "" + +#: ../../howto/logging.rst:340 +msgid "" +"A good convention to use when naming loggers is to use a module-level " +"logger, in each module which uses logging, named as follows::" +msgstr "" + +#: ../../howto/logging.rst:343 +msgid "logger = logging.getLogger(__name__)" +msgstr "" + +#: ../../howto/logging.rst:345 +msgid "" +"This means that logger names track the package/module hierarchy, and it's " +"intuitively obvious where events are logged just from the logger name." +msgstr "" + +#: ../../howto/logging.rst:348 +msgid "" +"The root of the hierarchy of loggers is called the root logger. That's the " +"logger used by the " +"functions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " +"and :func:`critical`, which just call the same-named method of the root " +"logger. The functions and the methods have the same signatures. The root " +"logger's name is printed as 'root' in the logged output." +msgstr "" + +#: ../../howto/logging.rst:354 +msgid "" +"It is, of course, possible to log messages to different destinations. " +"Support is included in the package for writing log messages to files, HTTP " +"GET/POST locations, email via SMTP, generic sockets, queues, or OS-specific " +"logging mechanisms such as syslog or the Windows NT event log. Destinations " +"are served by :dfn:`handler` classes. You can create your own log " +"destination class if you have special requirements not met by any of the " +"built-in handler classes." +msgstr "" + +#: ../../howto/logging.rst:361 +msgid "" +"By default, no destination is set for any logging messages. You can specify " +"a destination (such as console or file) by using :func:`basicConfig` as in " +"the tutorial examples. If you call the " +"functions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " +"and :func:`critical`, they will check to see if no destination is set; and " +"if one is not set, they will set a destination of the console " +"(``sys.stderr``) and a default format for the displayed message before " +"delegating to the root logger to do the actual message output." +msgstr "" + +#: ../../howto/logging.rst:369 +msgid "The default format set by :func:`basicConfig` for messages is:" +msgstr "" + +#: ../../howto/logging.rst:371 +msgid "severity:logger name:message" +msgstr "" + +#: ../../howto/logging.rst:375 +msgid "" +"You can change this by passing a format string to :func:`basicConfig` with " +"the *format* keyword argument. For all options regarding how a format string " +"is constructed, see :ref:`formatter-objects`." +msgstr "" + +#: ../../howto/logging.rst:380 +msgid "Logging Flow" +msgstr "" + +#: ../../howto/logging.rst:382 +msgid "" +"The flow of log event information in loggers and handlers is illustrated in " +"the following diagram." +msgstr "" + +#: ../../howto/logging.rst:433 +msgid "Loggers" +msgstr "" + +#: ../../howto/logging.rst:435 +msgid "" +":class:`Logger` objects have a threefold job. First, they expose several " +"methods to application code so that applications can log messages at " +"runtime. Second, logger objects determine which log messages to act upon " +"based upon severity (the default filtering facility) or filter objects. " +"Third, logger objects pass along relevant log messages to all interested log " +"handlers." +msgstr "" + +#: ../../howto/logging.rst:441 +msgid "" +"The most widely used methods on logger objects fall into two categories: " +"configuration and message sending." +msgstr "" + +#: ../../howto/logging.rst:444 +msgid "These are the most common configuration methods:" +msgstr "" + +#: ../../howto/logging.rst:446 +msgid "" +":meth:`Logger.setLevel` specifies the lowest-severity log message a logger " +"will handle, where debug is the lowest built-in severity level and critical " +"is the highest built-in severity. For example, if the severity level is " +"INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " +"messages and will ignore DEBUG messages." +msgstr "" + +#: ../../howto/logging.rst:452 +msgid "" +":meth:`Logger.addHandler` and :meth:`Logger.removeHandler` add and remove " +"handler objects from the logger object. Handlers are covered in more detail " +"in :ref:`handler-basic`." +msgstr "" + +#: ../../howto/logging.rst:456 +msgid "" +":meth:`Logger.addFilter` and :meth:`Logger.removeFilter` add and remove " +"filter objects from the logger object. Filters are covered in more detail " +"in :ref:`filter`." +msgstr "" + +#: ../../howto/logging.rst:460 +msgid "" +"You don't need to always call these methods on every logger you create. See " +"the last two paragraphs in this section." +msgstr "" + +#: ../../howto/logging.rst:463 +msgid "" +"With the logger object configured, the following methods create log messages:" +msgstr "" + +#: ../../howto/logging.rst:465 +msgid "" +":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:`Logger.error`, " +"and :meth:`Logger.critical` all create log records with a message and a " +"level that corresponds to their respective method names. The message is " +"actually a format string, which may contain the standard string substitution " +"syntax of ``%s``, ``%d``, ``%f``, and so on. The rest of their arguments is " +"a list of objects that correspond with the substitution fields in the " +"message. With regard to ``**kwargs``, the logging methods care only about a " +"keyword of ``exc_info`` and use it to determine whether to log exception " +"information." +msgstr "" + +#: ../../howto/logging.rst:475 +msgid "" +":meth:`Logger.exception` creates a log message similar " +"to :meth:`Logger.error`. The difference is that :meth:`Logger.exception` " +"dumps a stack trace along with it. Call this method only from an exception " +"handler." +msgstr "" + +#: ../../howto/logging.rst:479 +msgid "" +":meth:`Logger.log` takes a log level as an explicit argument. This is a " +"little more verbose for logging messages than using the log level " +"convenience methods listed above, but this is how to log at custom log " +"levels." +msgstr "" + +#: ../../howto/logging.rst:483 +msgid "" +":func:`getLogger` returns a reference to a logger instance with the " +"specified name if it is provided, or ``root`` if not. The names are period-" +"separated hierarchical structures. Multiple calls to :func:`getLogger` with " +"the same name will return a reference to the same logger object. Loggers " +"that are further down in the hierarchical list are children of loggers " +"higher up in the list. For example, given a logger with a name of ``foo``, " +"loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " +"descendants of ``foo``." +msgstr "" + +#: ../../howto/logging.rst:491 +msgid "" +"Loggers have a concept of *effective level*. If a level is not explicitly " +"set on a logger, the level of its parent is used instead as its effective " +"level. If the parent has no explicit level set, *its* parent is examined, " +"and so on - all ancestors are searched until an explicitly set level is " +"found. The root logger always has an explicit level set (``WARNING`` by " +"default). When deciding whether to process an event, the effective level of " +"the logger is used to determine whether the event is passed to the logger's " +"handlers." +msgstr "" + +#: ../../howto/logging.rst:499 +msgid "" +"Child loggers propagate messages up to the handlers associated with their " +"ancestor loggers. Because of this, it is unnecessary to define and configure " +"handlers for all the loggers an application uses. It is sufficient to " +"configure handlers for a top-level logger and create child loggers as " +"needed. (You can, however, turn off propagation by setting the *propagate* " +"attribute of a logger to ``False``.)" +msgstr "" + +#: ../../howto/logging.rst:510 +msgid "Handlers" +msgstr "" + +#: ../../howto/logging.rst:512 +msgid "" +":class:`~logging.Handler` objects are responsible for dispatching the " +"appropriate log messages (based on the log messages' severity) to the " +"handler's specified destination. :class:`Logger` objects can add zero or " +"more handler objects to themselves with an :meth:`~Logger.addHandler` " +"method. As an example scenario, an application may want to send all log " +"messages to a log file, all log messages of error or higher to stdout, and " +"all messages of critical to an email address. This scenario requires three " +"individual handlers where each handler is responsible for sending messages " +"of a specific severity to a specific location." +msgstr "" + +#: ../../howto/logging.rst:522 +msgid "" +"The standard library includes quite a few handler types (see :ref:`useful-" +"handlers`); the tutorials use mainly :class:`StreamHandler` " +"and :class:`FileHandler` in its examples." +msgstr "" + +#: ../../howto/logging.rst:526 +msgid "" +"There are very few methods in a handler for application developers to " +"concern themselves with. The only handler methods that seem relevant for " +"application developers who are using the built-in handler objects (that is, " +"not creating custom handlers) are the following configuration methods:" +msgstr "" + +#: ../../howto/logging.rst:531 +msgid "" +"The :meth:`~Handler.setLevel` method, just as in logger objects, specifies " +"the lowest severity that will be dispatched to the appropriate destination. " +"Why are there two :meth:`~Handler.setLevel` methods? The level set in the " +"logger determines which severity of messages it will pass to its handlers. " +"The level set in each handler determines which messages that handler will " +"send on." +msgstr "" + +#: ../../howto/logging.rst:537 +msgid "" +":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " +"use." +msgstr "" + +#: ../../howto/logging.rst:540 +msgid "" +":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " +"configure and deconfigure filter objects on handlers." +msgstr "" + +#: ../../howto/logging.rst:543 +msgid "" +"Application code should not directly instantiate and use instances " +"of :class:`Handler`. Instead, the :class:`Handler` class is a base class " +"that defines the interface that all handlers should have and establishes " +"some default behavior that child classes can use (or override)." +msgstr "" + +#: ../../howto/logging.rst:550 +msgid "Formatters" +msgstr "" + +#: ../../howto/logging.rst:552 +msgid "" +"Formatter objects configure the final order, structure, and contents of the " +"log message. Unlike the base :class:`logging.Handler` class, application " +"code may instantiate formatter classes, although you could likely subclass " +"the formatter if your application needs special behavior. The constructor " +"takes three optional arguments -- a message format string, a date format " +"string and a style indicator." +msgstr "" + +#: ../../howto/logging.rst:561 +msgid "" +"If there is no message format string, the default is to use the raw " +"message. If there is no date format string, the default date format is:" +msgstr "" + +#: ../../howto/logging.rst:564 +msgid "%Y-%m-%d %H:%M:%S" +msgstr "" + +#: ../../howto/logging.rst:568 +msgid "" +"with the milliseconds tacked on at the end. The ``style`` is one of ``'%'``, " +"``'{'``, or ``'$'``. If one of these is not specified, then ``'%'`` will be " +"used." +msgstr "" + +#: ../../howto/logging.rst:571 +msgid "" +"If the ``style`` is ``'%'``, the message format string uses ``%()s`` styled string substitution; the possible keys are documented " +"in :ref:`logrecord-attributes`. If the style is ``'{'``, the message format " +"string is assumed to be compatible with :meth:`str.format` (using keyword " +"arguments), while if the style is ``'$'`` then the message format string " +"should conform to what is expected by :meth:`string.Template.substitute`." +msgstr "" + +#: ../../howto/logging.rst:578 +msgid "Added the ``style`` parameter." +msgstr "" + +#: ../../howto/logging.rst:581 +msgid "" +"The following message format string will log the time in a human-readable " +"format, the severity of the message, and the contents of the message, in " +"that order::" +msgstr "" + +#: ../../howto/logging.rst:585 +msgid "'%(asctime)s - %(levelname)s - %(message)s'" +msgstr "" + +#: ../../howto/logging.rst:587 +msgid "" +"Formatters use a user-configurable function to convert the creation time of " +"a record to a tuple. By default, :func:`time.localtime` is used; to change " +"this for a particular formatter instance, set the ``converter`` attribute of " +"the instance to a function with the same signature as :func:`time.localtime` " +"or :func:`time.gmtime`. To change it for all formatters, for example if you " +"want all logging times to be shown in GMT, set the ``converter`` attribute " +"in the Formatter class (to ``time.gmtime`` for GMT display)." +msgstr "" + +#: ../../howto/logging.rst:597 +msgid "Configuring Logging" +msgstr "" + +#: ../../howto/logging.rst:601 +msgid "Programmers can configure logging in three ways:" +msgstr "" + +#: ../../howto/logging.rst:603 +msgid "" +"Creating loggers, handlers, and formatters explicitly using Python code that " +"calls the configuration methods listed above." +msgstr "" + +#: ../../howto/logging.rst:605 +msgid "" +"Creating a logging config file and reading it using the :func:`fileConfig` " +"function." +msgstr "" + +#: ../../howto/logging.rst:607 +msgid "" +"Creating a dictionary of configuration information and passing it to " +"the :func:`dictConfig` function." +msgstr "" + +#: ../../howto/logging.rst:610 +msgid "" +"For the reference documentation on the last two options, see :ref:`logging-" +"config-api`. The following example configures a very simple logger, a " +"console handler, and a simple formatter using Python code::" +msgstr "" + +#: ../../howto/logging.rst:614 +msgid "" +"import logging\n" +"\n" +"# create logger\n" +"logger = logging.getLogger('simple_example')\n" +"logger.setLevel(logging.DEBUG)\n" +"\n" +"# create console handler and set level to debug\n" +"ch = logging.StreamHandler()\n" +"ch.setLevel(logging.DEBUG)\n" +"\n" +"# create formatter\n" +"formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %" +"(message)s')\n" +"\n" +"# add formatter to ch\n" +"ch.setFormatter(formatter)\n" +"\n" +"# add ch to logger\n" +"logger.addHandler(ch)\n" +"\n" +"# 'application' code\n" +"logger.debug('debug message')\n" +"logger.info('info message')\n" +"logger.warning('warn message')\n" +"logger.error('error message')\n" +"logger.critical('critical message')" +msgstr "" + +#: ../../howto/logging.rst:640 +msgid "" +"Running this module from the command line produces the following output:" +msgstr "" + +#: ../../howto/logging.rst:642 +msgid "" +"$ python simple_logging_module.py\n" +"2005-03-19 15:10:26,618 - simple_example - DEBUG - debug message\n" +"2005-03-19 15:10:26,620 - simple_example - INFO - info message\n" +"2005-03-19 15:10:26,695 - simple_example - WARNING - warn message\n" +"2005-03-19 15:10:26,697 - simple_example - ERROR - error message\n" +"2005-03-19 15:10:26,773 - simple_example - CRITICAL - critical message" +msgstr "" + +#: ../../howto/logging.rst:651 +msgid "" +"The following Python module creates a logger, handler, and formatter nearly " +"identical to those in the example listed above, with the only difference " +"being the names of the objects::" +msgstr "" + +#: ../../howto/logging.rst:655 +msgid "" +"import logging\n" +"import logging.config\n" +"\n" +"logging.config.fileConfig('logging.conf')\n" +"\n" +"# create logger\n" +"logger = logging.getLogger('simpleExample')\n" +"\n" +"# 'application' code\n" +"logger.debug('debug message')\n" +"logger.info('info message')\n" +"logger.warning('warn message')\n" +"logger.error('error message')\n" +"logger.critical('critical message')" +msgstr "" + +#: ../../howto/logging.rst:670 +msgid "Here is the logging.conf file:" +msgstr "" + +#: ../../howto/logging.rst:672 +msgid "" +"[loggers]\n" +"keys=root,simpleExample\n" +"\n" +"[handlers]\n" +"keys=consoleHandler\n" +"\n" +"[formatters]\n" +"keys=simpleFormatter\n" +"\n" +"[logger_root]\n" +"level=DEBUG\n" +"handlers=consoleHandler\n" +"\n" +"[logger_simpleExample]\n" +"level=DEBUG\n" +"handlers=consoleHandler\n" +"qualname=simpleExample\n" +"propagate=0\n" +"\n" +"[handler_consoleHandler]\n" +"class=StreamHandler\n" +"level=DEBUG\n" +"formatter=simpleFormatter\n" +"args=(sys.stdout,)\n" +"\n" +"[formatter_simpleFormatter]\n" +"format=%(asctime)s - %(name)s - %(levelname)s - %(message)s" +msgstr "" + +#: ../../howto/logging.rst:702 +msgid "" +"The output is nearly identical to that of the non-config-file-based example:" +msgstr "" + +#: ../../howto/logging.rst:704 +msgid "" +"$ python simple_logging_config.py\n" +"2005-03-19 15:38:55,977 - simpleExample - DEBUG - debug message\n" +"2005-03-19 15:38:55,979 - simpleExample - INFO - info message\n" +"2005-03-19 15:38:56,054 - simpleExample - WARNING - warn message\n" +"2005-03-19 15:38:56,055 - simpleExample - ERROR - error message\n" +"2005-03-19 15:38:56,130 - simpleExample - CRITICAL - critical message" +msgstr "" + +#: ../../howto/logging.rst:713 +msgid "" +"You can see that the config file approach has a few advantages over the " +"Python code approach, mainly separation of configuration and code and the " +"ability of noncoders to easily modify the logging properties." +msgstr "" + +#: ../../howto/logging.rst:717 +msgid "" +"The :func:`fileConfig` function takes a default parameter, " +"``disable_existing_loggers``, which defaults to ``True`` for reasons of " +"backward compatibility. This may or may not be what you want, since it will " +"cause any non-root loggers existing before the :func:`fileConfig` call to be " +"disabled unless they (or an ancestor) are explicitly named in the " +"configuration. Please refer to the reference documentation for more " +"information, and specify ``False`` for this parameter if you wish." +msgstr "" + +#: ../../howto/logging.rst:725 +msgid "" +"The dictionary passed to :func:`dictConfig` can also specify a Boolean value " +"with key ``disable_existing_loggers``, which if not specified explicitly in " +"the dictionary also defaults to being interpreted as ``True``. This leads to " +"the logger-disabling behaviour described above, which may not be what you " +"want - in which case, provide the key explicitly with a value of ``False``." +msgstr "" + +#: ../../howto/logging.rst:735 +msgid "" +"Note that the class names referenced in config files need to be either " +"relative to the logging module, or absolute values which can be resolved " +"using normal import mechanisms. Thus, you could use " +"either :class:`~logging.handlers.WatchedFileHandler` (relative to the " +"logging module) or ``mypackage.mymodule.MyHandler`` (for a class defined in " +"package ``mypackage`` and module ``mymodule``, where ``mypackage`` is " +"available on the Python import path)." +msgstr "" + +#: ../../howto/logging.rst:743 +msgid "" +"In Python 3.2, a new means of configuring logging has been introduced, using " +"dictionaries to hold configuration information. This provides a superset of " +"the functionality of the config-file-based approach outlined above, and is " +"the recommended configuration method for new applications and deployments. " +"Because a Python dictionary is used to hold configuration information, and " +"since you can populate that dictionary using different means, you have more " +"options for configuration. For example, you can use a configuration file in " +"JSON format, or, if you have access to YAML processing functionality, a file " +"in YAML format, to populate the configuration dictionary. Or, of course, you " +"can construct the dictionary in Python code, receive it in pickled form over " +"a socket, or use whatever approach makes sense for your application." +msgstr "" + +#: ../../howto/logging.rst:755 +msgid "" +"Here's an example of the same configuration as above, in YAML format for the " +"new dictionary-based approach:" +msgstr "" + +#: ../../howto/logging.rst:758 +msgid "" +"version: 1\n" +"formatters:\n" +" simple:\n" +" format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'\n" +"handlers:\n" +" console:\n" +" class: logging.StreamHandler\n" +" level: DEBUG\n" +" formatter: simple\n" +" stream: ext://sys.stdout\n" +"loggers:\n" +" simpleExample:\n" +" level: DEBUG\n" +" handlers: [console]\n" +" propagate: no\n" +"root:\n" +" level: DEBUG\n" +" handlers: [console]" +msgstr "" + +#: ../../howto/logging.rst:779 +msgid "" +"For more information about logging using a dictionary, see :ref:`logging-" +"config-api`." +msgstr "" + +#: ../../howto/logging.rst:783 +msgid "What happens if no configuration is provided" +msgstr "" + +#: ../../howto/logging.rst:785 +msgid "" +"If no logging configuration is provided, it is possible to have a situation " +"where a logging event needs to be output, but no handlers can be found to " +"output the event." +msgstr "" + +#: ../../howto/logging.rst:789 +msgid "" +"The event is output using a 'handler of last resort', stored " +"in :data:`lastResort`. This internal handler is not associated with any " +"logger, and acts like a :class:`~logging.StreamHandler` which writes the " +"event description message to the current value of ``sys.stderr`` (therefore " +"respecting any redirections which may be in effect). No formatting is done " +"on the message - just the bare event description message is printed. The " +"handler's level is set to ``WARNING``, so all events at this and greater " +"severities will be output." +msgstr "" + +#: ../../howto/logging.rst:800 +msgid "For versions of Python prior to 3.2, the behaviour is as follows:" +msgstr "" + +#: ../../howto/logging.rst:802 +msgid "" +"If :data:`raiseExceptions` is ``False`` (production mode), the event is " +"silently dropped." +msgstr "" + +#: ../../howto/logging.rst:805 +msgid "" +"If :data:`raiseExceptions` is ``True`` (development mode), a message 'No " +"handlers could be found for logger X.Y.Z' is printed once." +msgstr "" + +#: ../../howto/logging.rst:808 +msgid "" +"To obtain the pre-3.2 behaviour, :data:`lastResort` can be set to ``None``." +msgstr "" + +#: ../../howto/logging.rst:814 +msgid "Configuring Logging for a Library" +msgstr "" + +#: ../../howto/logging.rst:816 +msgid "" +"When developing a library which uses logging, you should take care to " +"document how the library uses logging - for example, the names of loggers " +"used. Some consideration also needs to be given to its logging " +"configuration. If the using application does not use logging, and library " +"code makes logging calls, then (as described in the previous section) events " +"of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " +"is regarded as the best default behaviour." +msgstr "" + +#: ../../howto/logging.rst:824 +msgid "" +"If for some reason you *don't* want these messages printed in the absence of " +"any logging configuration, you can attach a do-nothing handler to the top-" +"level logger for your library. This avoids the message being printed, since " +"a handler will always be found for the library's events: it just doesn't " +"produce any output. If the library user configures logging for application " +"use, presumably that configuration will add some handlers, and if levels are " +"suitably configured then logging calls made in library code will send output " +"to those handlers, as normal." +msgstr "" + +#: ../../howto/logging.rst:833 +msgid "" +"A do-nothing handler is included in the logging " +"package: :class:`~logging.NullHandler` (since Python 3.1). An instance of " +"this handler could be added to the top-level logger of the logging namespace " +"used by the library (*if* you want to prevent your library's logged events " +"being output to ``sys.stderr`` in the absence of logging configuration). If " +"all logging by a library *foo* is done using loggers with names matching " +"'foo.x', 'foo.x.y', etc. then the code::" +msgstr "" + +#: ../../howto/logging.rst:841 +msgid "" +"import logging\n" +"logging.getLogger('foo').addHandler(logging.NullHandler())" +msgstr "" + +#: ../../howto/logging.rst:844 +msgid "" +"should have the desired effect. If an organisation produces a number of " +"libraries, then the logger name specified can be 'orgname.foo' rather than " +"just 'foo'." +msgstr "" + +#: ../../howto/logging.rst:848 +msgid "" +"It is strongly advised that you *do not log to the root logger* in your " +"library. Instead, use a logger with a unique and easily identifiable name, " +"such as the ``__name__`` for your library's top-level package or module. " +"Logging to the root logger will make it difficult or impossible for the " +"application developer to configure the logging verbosity or handlers of your " +"library as they wish." +msgstr "" + +#: ../../howto/logging.rst:855 +msgid "" +"It is strongly advised that you *do not add any handlers other " +"than* :class:`~logging.NullHandler` *to your library's loggers*. This is " +"because the configuration of handlers is the prerogative of the application " +"developer who uses your library. The application developer knows their " +"target audience and what handlers are most appropriate for their " +"application: if you add handlers 'under the hood', you might well interfere " +"with their ability to carry out unit tests and deliver logs which suit their " +"requirements." +msgstr "" + +#: ../../howto/logging.rst:866 +msgid "Logging Levels" +msgstr "" + +#: ../../howto/logging.rst:868 +msgid "" +"The numeric values of logging levels are given in the following table. These " +"are primarily of interest if you want to define your own levels, and need " +"them to have specific values relative to the predefined levels. If you " +"define a level with the same numeric value, it overwrites the predefined " +"value; the predefined name is lost." +msgstr "" + +#: ../../howto/logging.rst:875 +msgid "Numeric value" +msgstr "" + +#: ../../howto/logging.rst:877 +msgid "50" +msgstr "" + +#: ../../howto/logging.rst:879 +msgid "40" +msgstr "" + +#: ../../howto/logging.rst:881 +msgid "30" +msgstr "" + +#: ../../howto/logging.rst:883 +msgid "20" +msgstr "" + +#: ../../howto/logging.rst:885 +msgid "10" +msgstr "" + +#: ../../howto/logging.rst:887 +msgid "``NOTSET``" +msgstr "``NOTSET``" + +#: ../../howto/logging.rst:887 +msgid "0" +msgstr "" + +#: ../../howto/logging.rst:890 +msgid "" +"Levels can also be associated with loggers, being set either by the " +"developer or through loading a saved logging configuration. When a logging " +"method is called on a logger, the logger compares its own level with the " +"level associated with the method call. If the logger's level is higher than " +"the method call's, no logging message is actually generated. This is the " +"basic mechanism controlling the verbosity of logging output." +msgstr "" + +#: ../../howto/logging.rst:897 +msgid "" +"Logging messages are encoded as instances of the :class:`~logging.LogRecord` " +"class. When a logger decides to actually log an event, " +"a :class:`~logging.LogRecord` instance is created from the logging message." +msgstr "" + +#: ../../howto/logging.rst:901 +msgid "" +"Logging messages are subjected to a dispatch mechanism through the use " +"of :dfn:`handlers`, which are instances of subclasses of " +"the :class:`Handler` class. Handlers are responsible for ensuring that a " +"logged message (in the form of a :class:`LogRecord`) ends up in a particular " +"location (or set of locations) which is useful for the target audience for " +"that message (such as end users, support desk staff, system administrators, " +"developers). Handlers are passed :class:`LogRecord` instances intended for " +"particular destinations. Each logger can have zero, one or more handlers " +"associated with it (via the :meth:`~Logger.addHandler` method " +"of :class:`Logger`). In addition to any handlers directly associated with a " +"logger, *all handlers associated with all ancestors of the logger* are " +"called to dispatch the message (unless the *propagate* flag for a logger is " +"set to a false value, at which point the passing to ancestor handlers stops)." +msgstr "" + +#: ../../howto/logging.rst:915 +msgid "" +"Just as for loggers, handlers can have levels associated with them. A " +"handler's level acts as a filter in the same way as a logger's level does. " +"If a handler decides to actually dispatch an event, " +"the :meth:`~Handler.emit` method is used to send the message to its " +"destination. Most user-defined subclasses of :class:`Handler` will need to " +"override this :meth:`~Handler.emit`." +msgstr "" + +#: ../../howto/logging.rst:924 +msgid "Custom Levels" +msgstr "" + +#: ../../howto/logging.rst:926 +msgid "" +"Defining your own levels is possible, but should not be necessary, as the " +"existing levels have been chosen on the basis of practical experience. " +"However, if you are convinced that you need custom levels, great care should " +"be exercised when doing this, and it is possibly *a very bad idea to define " +"custom levels if you are developing a library*. That's because if multiple " +"library authors all define their own custom levels, there is a chance that " +"the logging output from such multiple libraries used together will be " +"difficult for the using developer to control and/or interpret, because a " +"given numeric value might mean different things for different libraries." +msgstr "" + +#: ../../howto/logging.rst:939 +msgid "Useful Handlers" +msgstr "" + +#: ../../howto/logging.rst:941 +msgid "" +"In addition to the base :class:`Handler` class, many useful subclasses are " +"provided:" +msgstr "" + +#: ../../howto/logging.rst:944 +msgid "" +":class:`StreamHandler` instances send messages to streams (file-like " +"objects)." +msgstr "" + +#: ../../howto/logging.rst:947 +msgid ":class:`FileHandler` instances send messages to disk files." +msgstr "" + +#: ../../howto/logging.rst:949 +msgid "" +":class:`~handlers.BaseRotatingHandler` is the base class for handlers that " +"rotate log files at a certain point. It is not meant to be instantiated " +"directly. Instead, use :class:`~handlers.RotatingFileHandler` " +"or :class:`~handlers.TimedRotatingFileHandler`." +msgstr "" + +#: ../../howto/logging.rst:954 +msgid "" +":class:`~handlers.RotatingFileHandler` instances send messages to disk " +"files, with support for maximum log file sizes and log file rotation." +msgstr "" + +#: ../../howto/logging.rst:957 +msgid "" +":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " +"files, rotating the log file at certain timed intervals." +msgstr "" + +#: ../../howto/logging.rst:960 +msgid "" +":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " +"Since 3.4, Unix domain sockets are also supported." +msgstr "" + +#: ../../howto/logging.rst:963 +msgid "" +":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " +"Since 3.4, Unix domain sockets are also supported." +msgstr "" + +#: ../../howto/logging.rst:966 +msgid "" +":class:`~handlers.SMTPHandler` instances send messages to a designated email " +"address." +msgstr "" + +#: ../../howto/logging.rst:969 +msgid "" +":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " +"daemon, possibly on a remote machine." +msgstr "" + +#: ../../howto/logging.rst:972 +msgid "" +":class:`~handlers.NTEventLogHandler` instances send messages to a Windows NT/" +"2000/XP event log." +msgstr "" + +#: ../../howto/logging.rst:975 +msgid "" +":class:`~handlers.MemoryHandler` instances send messages to a buffer in " +"memory, which is flushed whenever specific criteria are met." +msgstr "" + +#: ../../howto/logging.rst:978 +msgid "" +":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " +"using either ``GET`` or ``POST`` semantics." +msgstr "" + +#: ../../howto/logging.rst:981 +msgid "" +":class:`~handlers.WatchedFileHandler` instances watch the file they are " +"logging to. If the file changes, it is closed and reopened using the file " +"name. This handler is only useful on Unix-like systems; Windows does not " +"support the underlying mechanism used." +msgstr "" + +#: ../../howto/logging.rst:986 +msgid "" +":class:`~handlers.QueueHandler` instances send messages to a queue, such as " +"those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." +msgstr "" + +#: ../../howto/logging.rst:989 +msgid "" +":class:`NullHandler` instances do nothing with error messages. They are used " +"by library developers who want to use logging, but want to avoid the 'No " +"handlers could be found for logger *XXX*' message which can be displayed if " +"the library user has not configured logging. See :ref:`library-config` for " +"more information." +msgstr "" + +#: ../../howto/logging.rst:995 +msgid "The :class:`NullHandler` class." +msgstr "" + +#: ../../howto/logging.rst:998 +msgid "The :class:`~handlers.QueueHandler` class." +msgstr "" + +#: ../../howto/logging.rst:1001 +msgid "" +"The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` " +"classes are defined in the core logging package. The other handlers are " +"defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" +"module, :mod:`logging.config`, for configuration functionality.)" +msgstr "" + +#: ../../howto/logging.rst:1006 +msgid "" +"Logged messages are formatted for presentation through instances of " +"the :class:`Formatter` class. They are initialized with a format string " +"suitable for use with the % operator and a dictionary." +msgstr "" + +#: ../../howto/logging.rst:1010 +msgid "" +"For formatting multiple messages in a batch, instances " +"of :class:`BufferingFormatter` can be used. In addition to the format string " +"(which is applied to each message in the batch), there is provision for " +"header and trailer format strings." +msgstr "" + +#: ../../howto/logging.rst:1015 +msgid "" +"When filtering based on logger level and/or handler level is not enough, " +"instances of :class:`Filter` can be added to both :class:`Logger` " +"and :class:`Handler` instances (through their :meth:`~Handler.addFilter` " +"method). Before deciding to process a message further, both loggers and " +"handlers consult all their filters for permission. If any filter returns a " +"false value, the message is not processed further." +msgstr "" + +#: ../../howto/logging.rst:1022 +msgid "" +"The basic :class:`Filter` functionality allows filtering by specific logger " +"name. If this feature is used, messages sent to the named logger and its " +"children are allowed through the filter, and all others dropped." +msgstr "" + +#: ../../howto/logging.rst:1030 +msgid "Exceptions raised during logging" +msgstr "" + +#: ../../howto/logging.rst:1032 +msgid "" +"The logging package is designed to swallow exceptions which occur while " +"logging in production. This is so that errors which occur while handling " +"logging events - such as logging misconfiguration, network or other similar " +"errors - do not cause the application using logging to terminate prematurely." +msgstr "" + +#: ../../howto/logging.rst:1037 +msgid "" +":class:`SystemExit` and :class:`KeyboardInterrupt` exceptions are never " +"swallowed. Other exceptions which occur during the :meth:`~Handler.emit` " +"method of a :class:`Handler` subclass are passed to " +"its :meth:`~Handler.handleError` method." +msgstr "" + +#: ../../howto/logging.rst:1042 +msgid "" +"The default implementation of :meth:`~Handler.handleError` " +"in :class:`Handler` checks to see if a module-level " +"variable, :data:`raiseExceptions`, is set. If set, a traceback is printed " +"to :data:`sys.stderr`. If not set, the exception is swallowed." +msgstr "" + +#: ../../howto/logging.rst:1048 +msgid "" +"The default value of :data:`raiseExceptions` is ``True``. This is because " +"during development, you typically want to be notified of any exceptions that " +"occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " +"production usage." +msgstr "" + +#: ../../howto/logging.rst:1058 +msgid "Using arbitrary objects as messages" +msgstr "" + +#: ../../howto/logging.rst:1060 +msgid "" +"In the preceding sections and examples, it has been assumed that the message " +"passed when logging the event is a string. However, this is not the only " +"possibility. You can pass an arbitrary object as a message, and " +"its :meth:`~object.__str__` method will be called when the logging system " +"needs to convert it to a string representation. In fact, if you want to, you " +"can avoid computing a string representation altogether - for example, " +"the :class:`~handlers.SocketHandler` emits an event by pickling it and " +"sending it over the wire." +msgstr "" + +#: ../../howto/logging.rst:1071 +msgid "Optimization" +msgstr "" + +#: ../../howto/logging.rst:1073 +msgid "" +"Formatting of message arguments is deferred until it cannot be avoided. " +"However, computing the arguments passed to the logging method can also be " +"expensive, and you may want to avoid doing it if the logger will just throw " +"away your event. To decide what to do, you can call " +"the :meth:`~Logger.isEnabledFor` method which takes a level argument and " +"returns true if the event would be created by the Logger for that level of " +"call. You can write code like this::" +msgstr "" + +#: ../../howto/logging.rst:1081 +msgid "" +"if logger.isEnabledFor(logging.DEBUG):\n" +" logger.debug('Message with %s, %s', expensive_func1(),\n" +" expensive_func2())" +msgstr "" + +#: ../../howto/logging.rst:1085 +msgid "" +"so that if the logger's threshold is set above ``DEBUG``, the calls to " +"``expensive_func1`` and ``expensive_func2`` are never made." +msgstr "" + +#: ../../howto/logging.rst:1088 +msgid "" +"In some cases, :meth:`~Logger.isEnabledFor` can itself be more expensive " +"than you'd like (e.g. for deeply nested loggers where an explicit level is " +"only set high up in the logger hierarchy). In such cases (or if you want to " +"avoid calling a method in tight loops), you can cache the result of a call " +"to :meth:`~Logger.isEnabledFor` in a local or instance variable, and use " +"that instead of calling the method each time. Such a cached value would only " +"need to be recomputed when the logging configuration changes dynamically " +"while the application is running (which is not all that common)." +msgstr "" + +#: ../../howto/logging.rst:1097 +msgid "" +"There are other optimizations which can be made for specific applications " +"which need more precise control over what logging information is collected. " +"Here's a list of things you can do to avoid processing during logging which " +"you don't need:" +msgstr "" + +#: ../../howto/logging.rst:1103 +msgid "What you don't want to collect" +msgstr "" + +#: ../../howto/logging.rst:1103 +msgid "How to avoid collecting it" +msgstr "" + +#: ../../howto/logging.rst:1105 +msgid "Information about where calls were made from." +msgstr "" + +#: ../../howto/logging.rst:1105 +msgid "" +"Set ``logging._srcfile`` to ``None``. This avoids " +"calling :func:`sys._getframe`, which may help to speed up your code in " +"environments like PyPy (which can't speed up code that " +"uses :func:`sys._getframe`)." +msgstr "" + +#: ../../howto/logging.rst:1111 +msgid "Threading information." +msgstr "" + +#: ../../howto/logging.rst:1111 +msgid "Set ``logging.logThreads`` to ``False``." +msgstr "" + +#: ../../howto/logging.rst:1113 +msgid "Current process ID (:func:`os.getpid`)" +msgstr "" + +#: ../../howto/logging.rst:1113 +msgid "Set ``logging.logProcesses`` to ``False``." +msgstr "" + +#: ../../howto/logging.rst:1115 +msgid "" +"Current process name when using ``multiprocessing`` to manage multiple " +"processes." +msgstr "" + +#: ../../howto/logging.rst:1115 +msgid "Set ``logging.logMultiprocessing`` to ``False``." +msgstr "" + +#: ../../howto/logging.rst:1118 +msgid "Current :class:`asyncio.Task` name when using ``asyncio``." +msgstr "" + +#: ../../howto/logging.rst:1118 +msgid "Set ``logging.logAsyncioTasks`` to ``False``." +msgstr "" + +#: ../../howto/logging.rst:1122 +msgid "" +"Also note that the core logging module only includes the basic handlers. If " +"you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " +"won't take up any memory." +msgstr "" + +#: ../../howto/logging.rst:1129 +msgid "Other resources" +msgstr "" + +#: ../../howto/logging.rst:1133 +msgid "Module :mod:`logging`" +msgstr "" + +#: ../../howto/logging.rst:1134 +msgid "API reference for the logging module." +msgstr "" + +#: ../../howto/logging.rst:1136 +msgid "Module :mod:`logging.config`" +msgstr "" + +#: ../../howto/logging.rst:1137 +msgid "Configuration API for the logging module." +msgstr "" + +#: ../../howto/logging.rst:1139 +msgid "Module :mod:`logging.handlers`" +msgstr "" + +#: ../../howto/logging.rst:1140 +msgid "Useful handlers included with the logging module." +msgstr "" + +#: ../../howto/logging.rst:1142 +msgid ":ref:`A logging cookbook `" +msgstr "" diff --git a/howto/mro.po b/howto/mro.po new file mode 100644 index 0000000..8968f1d --- /dev/null +++ b/howto/mro.po @@ -0,0 +1,906 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/mro.rst:4 +msgid "The Python 2.3 Method Resolution Order" +msgstr "" + +#: ../../howto/mro.rst:8 +msgid "" +"This is a historical document, provided as an appendix to the official " +"documentation. The Method Resolution Order discussed here was *introduced* " +"in Python 2.3, but it is still used in later versions -- including Python 3." +msgstr "" + +#: ../../howto/mro.rst:13 +msgid "By `Michele Simionato `__." +msgstr "" + +#: ../../howto/mro.rst:0 +msgid "Abstract" +msgstr "" + +#: ../../howto/mro.rst:17 +msgid "" +"*This document is intended for Python programmers who want to understand the " +"C3 Method Resolution Order used in Python 2.3. Although it is not intended " +"for newbies, it is quite pedagogical with many worked out examples. I am " +"not aware of other publicly available documents with the same scope, " +"therefore it should be useful.*" +msgstr "" + +#: ../../howto/mro.rst:23 +msgid "Disclaimer:" +msgstr "" + +#: ../../howto/mro.rst:25 +msgid "" +"*I donate this document to the Python Software Foundation, under the Python " +"2.3 license. As usual in these circumstances, I warn the reader that what " +"follows* should *be correct, but I don't give any warranty. Use it at your " +"own risk and peril!*" +msgstr "" + +#: ../../howto/mro.rst:30 +msgid "Acknowledgments:" +msgstr "" + +#: ../../howto/mro.rst:32 +msgid "" +"*All the people of the Python mailing list who sent me their support. Paul " +"Foley who pointed out various imprecisions and made me to add the part on " +"local precedence ordering. David Goodger for help with the formatting in " +"reStructuredText. David Mertz for help with the editing. Finally, Guido van " +"Rossum who enthusiastically added this document to the official Python 2.3 " +"home-page.*" +msgstr "" + +#: ../../howto/mro.rst:40 +msgid "The beginning" +msgstr "" + +#: ../../howto/mro.rst:42 +msgid "*Felix qui potuit rerum cognoscere causas* -- Virgilius" +msgstr "" + +#: ../../howto/mro.rst:44 +msgid "" +"Everything started with a post by Samuele Pedroni to the Python development " +"mailing list [#]_. In his post, Samuele showed that the Python 2.2 method " +"resolution order is not monotonic and he proposed to replace it with the C3 " +"method resolution order. Guido agreed with his arguments and therefore now " +"Python 2.3 uses C3. The C3 method itself has nothing to do with Python, " +"since it was invented by people working on Dylan and it is described in a " +"paper intended for lispers [#]_. The present paper gives a (hopefully) " +"readable discussion of the C3 algorithm for Pythonistas who want to " +"understand the reasons for the change." +msgstr "" + +#: ../../howto/mro.rst:55 +msgid "" +"First of all, let me point out that what I am going to say only applies to " +"the *new style classes* introduced in Python 2.2: *classic classes* " +"maintain their old method resolution order, depth first and then left to " +"right. Therefore, there is no breaking of old code for classic classes; and " +"even if in principle there could be breaking of code for Python 2.2 new " +"style classes, in practice the cases in which the C3 resolution order " +"differs from the Python 2.2 method resolution order are so rare that no real " +"breaking of code is expected. Therefore:" +msgstr "" + +#: ../../howto/mro.rst:64 +msgid "*Don't be scared!*" +msgstr "" + +#: ../../howto/mro.rst:66 +msgid "" +"Moreover, unless you make strong use of multiple inheritance and you have " +"non-trivial hierarchies, you don't need to understand the C3 algorithm, and " +"you can easily skip this paper. On the other hand, if you really want to " +"know how multiple inheritance works, then this paper is for you. The good " +"news is that things are not as complicated as you might expect." +msgstr "" + +#: ../../howto/mro.rst:73 +msgid "Let me begin with some basic definitions." +msgstr "" + +#: ../../howto/mro.rst:75 +msgid "" +"Given a class C in a complicated multiple inheritance hierarchy, it is a non-" +"trivial task to specify the order in which methods are overridden, i.e. to " +"specify the order of the ancestors of C." +msgstr "" + +#: ../../howto/mro.rst:79 +msgid "" +"The list of the ancestors of a class C, including the class itself, ordered " +"from the nearest ancestor to the furthest, is called the class precedence " +"list or the *linearization* of C." +msgstr "" + +#: ../../howto/mro.rst:83 +msgid "" +"The *Method Resolution Order* (MRO) is the set of rules that construct the " +"linearization. In the Python literature, the idiom \"the MRO of C\" is also " +"used as a synonymous for the linearization of the class C." +msgstr "" + +#: ../../howto/mro.rst:88 +msgid "" +"For instance, in the case of single inheritance hierarchy, if C is a " +"subclass of C1, and C1 is a subclass of C2, then the linearization of C is " +"simply the list [C, C1 , C2]. However, with multiple inheritance " +"hierarchies, the construction of the linearization is more cumbersome, since " +"it is more difficult to construct a linearization that respects *local " +"precedence ordering* and *monotonicity*." +msgstr "" + +#: ../../howto/mro.rst:96 +msgid "" +"I will discuss the local precedence ordering later, but I can give the " +"definition of monotonicity here. A MRO is monotonic when the following is " +"true: *if C1 precedes C2 in the linearization of C, then C1 precedes C2 in " +"the linearization of any subclass of C*. Otherwise, the innocuous operation " +"of deriving a new class could change the resolution order of methods, " +"potentially introducing very subtle bugs. Examples where this happens will " +"be shown later." +msgstr "" + +#: ../../howto/mro.rst:104 +msgid "" +"Not all classes admit a linearization. There are cases, in complicated " +"hierarchies, where it is not possible to derive a class such that its " +"linearization respects all the desired properties." +msgstr "" + +#: ../../howto/mro.rst:108 +msgid "Here I give an example of this situation. Consider the hierarchy" +msgstr "" + +#: ../../howto/mro.rst:116 +msgid "" +"which can be represented with the following inheritance graph, where I have " +"denoted with O the ``object`` class, which is the beginning of any hierarchy " +"for new style classes:" +msgstr "" + +#: ../../howto/mro.rst:120 +msgid "" +" -----------\n" +"| |\n" +"| O |\n" +"| / \\ |\n" +" - X Y /\n" +" | / | /\n" +" | / |/\n" +" A B\n" +" \\ /\n" +" ?" +msgstr "" + +#: ../../howto/mro.rst:133 +msgid "" +"In this case, it is not possible to derive a new class C from A and B, since " +"X precedes Y in A, but Y precedes X in B, therefore the method resolution " +"order would be ambiguous in C." +msgstr "" + +#: ../../howto/mro.rst:137 +msgid "" +"Python 2.3 raises an exception in this situation (TypeError: MRO conflict " +"among bases Y, X) forbidding the naive programmer from creating ambiguous " +"hierarchies. Python 2.2 instead does not raise an exception, but chooses an " +"*ad hoc* ordering (CABXYO in this case)." +msgstr "" + +#: ../../howto/mro.rst:143 +msgid "The C3 Method Resolution Order" +msgstr "" + +#: ../../howto/mro.rst:145 +msgid "" +"Let me introduce a few simple notations which will be useful for the " +"following discussion. I will use the shortcut notation::" +msgstr "" + +#: ../../howto/mro.rst:148 +msgid "C1 C2 ... CN" +msgstr "" + +#: ../../howto/mro.rst:150 +msgid "to indicate the list of classes [C1, C2, ... , CN]." +msgstr "" + +#: ../../howto/mro.rst:152 +msgid "The *head* of the list is its first element::" +msgstr "" + +#: ../../howto/mro.rst:154 +msgid "head = C1" +msgstr "" + +#: ../../howto/mro.rst:156 +msgid "whereas the *tail* is the rest of the list::" +msgstr "" + +#: ../../howto/mro.rst:158 +msgid "tail = C2 ... CN." +msgstr "" + +#: ../../howto/mro.rst:160 +msgid "I shall also use the notation::" +msgstr "" + +#: ../../howto/mro.rst:162 +msgid "C + (C1 C2 ... CN) = C C1 C2 ... CN" +msgstr "" + +#: ../../howto/mro.rst:164 +msgid "to denote the sum of the lists [C] + [C1, C2, ... ,CN]." +msgstr "" + +#: ../../howto/mro.rst:166 +msgid "Now I can explain how the MRO works in Python 2.3." +msgstr "" + +#: ../../howto/mro.rst:168 +msgid "" +"Consider a class C in a multiple inheritance hierarchy, with C inheriting " +"from the base classes B1, B2, ... , BN. We want to compute the " +"linearization L[C] of the class C. The rule is the following:" +msgstr "" + +#: ../../howto/mro.rst:173 +msgid "" +"*the linearization of C is the sum of C plus the merge of the linearizations " +"of the parents and the list of the parents.*" +msgstr "" + +#: ../../howto/mro.rst:176 +msgid "In symbolic notation::" +msgstr "" + +#: ../../howto/mro.rst:178 +msgid "L[C(B1 ... BN)] = C + merge(L[B1] ... L[BN], B1 ... BN)" +msgstr "" + +#: ../../howto/mro.rst:180 +msgid "" +"In particular, if C is the ``object`` class, which has no parents, the " +"linearization is trivial::" +msgstr "" + +#: ../../howto/mro.rst:183 +msgid "L[object] = object." +msgstr "" + +#: ../../howto/mro.rst:185 +msgid "" +"However, in general one has to compute the merge according to the following " +"prescription:" +msgstr "" + +#: ../../howto/mro.rst:188 +msgid "" +"*take the head of the first list, i.e L[B1][0]; if this head is not in the " +"tail of any of the other lists, then add it to the linearization of C and " +"remove it from the lists in the merge, otherwise look at the head of the " +"next list and take it, if it is a good head. Then repeat the operation " +"until all the class are removed or it is impossible to find good heads. In " +"this case, it is impossible to construct the merge, Python 2.3 will refuse " +"to create the class C and will raise an exception.*" +msgstr "" + +#: ../../howto/mro.rst:197 +msgid "" +"This prescription ensures that the merge operation *preserves* the ordering, " +"if the ordering can be preserved. On the other hand, if the order cannot be " +"preserved (as in the example of serious order disagreement discussed above) " +"then the merge cannot be computed." +msgstr "" + +#: ../../howto/mro.rst:202 +msgid "" +"The computation of the merge is trivial if C has only one parent (single " +"inheritance); in this case::" +msgstr "" + +#: ../../howto/mro.rst:205 +msgid "L[C(B)] = C + merge(L[B],B) = C + L[B]" +msgstr "" + +#: ../../howto/mro.rst:207 +msgid "" +"However, in the case of multiple inheritance things are more cumbersome and " +"I don't expect you can understand the rule without a couple of examples ;-)" +msgstr "" + +#: ../../howto/mro.rst:212 +msgid "Examples" +msgstr "" + +#: ../../howto/mro.rst:214 +msgid "First example. Consider the following hierarchy:" +msgstr "" + +#: ../../howto/mro.rst:224 +msgid "In this case the inheritance graph can be drawn as:" +msgstr "" + +#: ../../howto/mro.rst:226 +msgid "" +" 6\n" +" ---\n" +"Level 3 | O | (more general)\n" +" / --- \\\n" +" / | \\ |\n" +" / | \\ |\n" +" / | \\ |\n" +" --- --- --- |\n" +"Level 2 3 | D | 4| E | | F | 5 |\n" +" --- --- --- |\n" +" \\ \\ _ / | |\n" +" \\ / \\ _ | |\n" +" \\ / \\ | |\n" +" --- --- |\n" +"Level 1 1 | B | | C | 2 |\n" +" --- --- |\n" +" \\ / |\n" +" \\ / \\ /\n" +" ---\n" +"Level 0 0 | A | (more specialized)\n" +" ---" +msgstr "" + +#: ../../howto/mro.rst:251 +msgid "The linearizations of O,D,E and F are trivial::" +msgstr "" + +#: ../../howto/mro.rst:253 +msgid "" +"L[O] = O\n" +"L[D] = D O\n" +"L[E] = E O\n" +"L[F] = F O" +msgstr "" + +#: ../../howto/mro.rst:258 +msgid "The linearization of B can be computed as::" +msgstr "" + +#: ../../howto/mro.rst:260 +msgid "L[B] = B + merge(DO, EO, DE)" +msgstr "" + +#: ../../howto/mro.rst:262 +msgid "" +"We see that D is a good head, therefore we take it and we are reduced to " +"compute ``merge(O,EO,E)``. Now O is not a good head, since it is in the " +"tail of the sequence EO. In this case the rule says that we have to skip to " +"the next sequence. Then we see that E is a good head; we take it and we are " +"reduced to compute ``merge(O,O)`` which gives O. Therefore::" +msgstr "" + +#: ../../howto/mro.rst:268 +msgid "L[B] = B D E O" +msgstr "" + +#: ../../howto/mro.rst:270 +msgid "Using the same procedure one finds::" +msgstr "" + +#: ../../howto/mro.rst:272 +msgid "" +"L[C] = C + merge(DO,FO,DF)\n" +" = C + D + merge(O,FO,F)\n" +" = C + D + F + merge(O,O)\n" +" = C D F O" +msgstr "" + +#: ../../howto/mro.rst:277 +msgid "Now we can compute::" +msgstr "" + +#: ../../howto/mro.rst:279 +msgid "" +"L[A] = A + merge(BDEO,CDFO,BC)\n" +" = A + B + merge(DEO,CDFO,C)\n" +" = A + B + C + merge(DEO,DFO)\n" +" = A + B + C + D + merge(EO,FO)\n" +" = A + B + C + D + E + merge(O,FO)\n" +" = A + B + C + D + E + F + merge(O,O)\n" +" = A B C D E F O" +msgstr "" + +#: ../../howto/mro.rst:287 +msgid "" +"In this example, the linearization is ordered in a pretty nice way according " +"to the inheritance level, in the sense that lower levels (i.e. more " +"specialized classes) have higher precedence (see the inheritance graph). " +"However, this is not the general case." +msgstr "" + +#: ../../howto/mro.rst:292 +msgid "" +"I leave as an exercise for the reader to compute the linearization for my " +"second example:" +msgstr "" + +#: ../../howto/mro.rst:303 +msgid "" +"The only difference with the previous example is the change B(D,E) --> " +"B(E,D); however even such a little modification completely changes the " +"ordering of the hierarchy:" +msgstr "" + +#: ../../howto/mro.rst:307 +msgid "" +" 6\n" +" ---\n" +"Level 3 | O |\n" +" / --- \\\n" +" / | \\\n" +" / | \\\n" +" / | \\\n" +" --- --- ---\n" +"Level 2 2 | E | 4 | D | | F | 5\n" +" --- --- ---\n" +" \\ / \\ /\n" +" \\ / \\ /\n" +" \\ / \\ /\n" +" --- ---\n" +"Level 1 1 | B | | C | 3\n" +" --- ---\n" +" \\ /\n" +" \\ /\n" +" ---\n" +"Level 0 0 | A |\n" +" ---" +msgstr "" + +#: ../../howto/mro.rst:332 +msgid "" +"Notice that the class E, which is in the second level of the hierarchy, " +"precedes the class C, which is in the first level of the hierarchy, i.e. E " +"is more specialized than C, even if it is in a higher level." +msgstr "" + +#: ../../howto/mro.rst:336 +msgid "" +"A lazy programmer can obtain the MRO directly from Python 2.2, since in this " +"case it coincides with the Python 2.3 linearization. It is enough to invoke " +"the :meth:`~type.mro` method of class A:" +msgstr "" + +#: ../../howto/mro.rst:345 +msgid "" +"Finally, let me consider the example discussed in the first section, " +"involving a serious order disagreement. In this case, it is straightforward " +"to compute the linearizations of O, X, Y, A and B:" +msgstr "" + +#: ../../howto/mro.rst:349 +msgid "" +"L[O] = 0\n" +"L[X] = X O\n" +"L[Y] = Y O\n" +"L[A] = A X Y O\n" +"L[B] = B Y X O" +msgstr "" + +#: ../../howto/mro.rst:357 +msgid "" +"However, it is impossible to compute the linearization for a class C that " +"inherits from A and B::" +msgstr "" + +#: ../../howto/mro.rst:360 +msgid "" +"L[C] = C + merge(AXYO, BYXO, AB)\n" +" = C + A + merge(XYO, BYXO, B)\n" +" = C + A + B + merge(XYO, YXO)" +msgstr "" + +#: ../../howto/mro.rst:364 +msgid "" +"At this point we cannot merge the lists XYO and YXO, since X is in the tail " +"of YXO whereas Y is in the tail of XYO: therefore there are no good heads " +"and the C3 algorithm stops. Python 2.3 raises an error and refuses to " +"create the class C." +msgstr "" + +#: ../../howto/mro.rst:370 +msgid "Bad Method Resolution Orders" +msgstr "" + +#: ../../howto/mro.rst:372 +msgid "" +"A MRO is *bad* when it breaks such fundamental properties as local " +"precedence ordering and monotonicity. In this section, I will show that " +"both the MRO for classic classes and the MRO for new style classes in Python " +"2.2 are bad." +msgstr "" + +#: ../../howto/mro.rst:377 +msgid "" +"It is easier to start with the local precedence ordering. Consider the " +"following example:" +msgstr "" + +#: ../../howto/mro.rst:384 +msgid "with inheritance diagram" +msgstr "" + +#: ../../howto/mro.rst:386 +msgid "" +" O\n" +" |\n" +"(buy spam) F\n" +" | \\\n" +" | E (buy eggs)\n" +" | /\n" +" G\n" +"\n" +" (buy eggs or spam ?)" +msgstr "" + +#: ../../howto/mro.rst:399 +msgid "" +"We see that class G inherits from F and E, with F *before* E: therefore we " +"would expect the attribute *G.remember2buy* to be inherited by " +"*F.remember2buy* and not by *E.remember2buy*: nevertheless Python 2.2 gives" +msgstr "" + +#: ../../howto/mro.rst:407 +msgid "" +"This is a breaking of local precedence ordering since the order in the local " +"precedence list, i.e. the list of the parents of G, is not preserved in the " +"Python 2.2 linearization of G::" +msgstr "" + +#: ../../howto/mro.rst:411 +msgid "L[G,P22]= G E F object # F *follows* E" +msgstr "" + +#: ../../howto/mro.rst:413 +msgid "" +"One could argue that the reason why F follows E in the Python 2.2 " +"linearization is that F is less specialized than E, since F is the " +"superclass of E; nevertheless the breaking of local precedence ordering is " +"quite non-intuitive and error prone. This is particularly true since it is " +"a different from old style classes:" +msgstr "" + +#: ../../howto/mro.rst:425 +msgid "" +"In this case the MRO is GFEF and the local precedence ordering is preserved." +msgstr "" + +#: ../../howto/mro.rst:428 +msgid "" +"As a general rule, hierarchies such as the previous one should be avoided, " +"since it is unclear if F should override E or vice-versa. Python 2.3 solves " +"the ambiguity by raising an exception in the creation of class G, " +"effectively stopping the programmer from generating ambiguous hierarchies. " +"The reason for that is that the C3 algorithm fails when the merge::" +msgstr "" + +#: ../../howto/mro.rst:435 +msgid "merge(FO,EFO,FE)" +msgstr "" + +#: ../../howto/mro.rst:437 +msgid "" +"cannot be computed, because F is in the tail of EFO and E is in the tail of " +"FE." +msgstr "" + +#: ../../howto/mro.rst:440 +msgid "" +"The real solution is to design a non-ambiguous hierarchy, i.e. to derive G " +"from E and F (the more specific first) and not from F and E; in this case " +"the MRO is GEF without any doubt." +msgstr "" + +#: ../../howto/mro.rst:444 +msgid "" +" O\n" +" |\n" +" F (spam)\n" +" / |\n" +"(eggs) E |\n" +" \\ |\n" +" G\n" +" (eggs, no doubt)" +msgstr "" + +#: ../../howto/mro.rst:456 +msgid "" +"Python 2.3 forces the programmer to write good hierarchies (or, at least, " +"less error-prone ones)." +msgstr "" + +#: ../../howto/mro.rst:459 +msgid "" +"On a related note, let me point out that the Python 2.3 algorithm is smart " +"enough to recognize obvious mistakes, as the duplication of classes in the " +"list of parents:" +msgstr "" + +#: ../../howto/mro.rst:469 +msgid "" +"Python 2.2 (both for classic classes and new style classes) in this " +"situation, would not raise any exception." +msgstr "" + +#: ../../howto/mro.rst:472 +msgid "" +"Finally, I would like to point out two lessons we have learned from this " +"example:" +msgstr "" + +#: ../../howto/mro.rst:475 +msgid "" +"despite the name, the MRO determines the resolution order of attributes, not " +"only of methods;" +msgstr "" + +#: ../../howto/mro.rst:478 +msgid "" +"the default food for Pythonistas is spam ! (but you already knew that ;-)" +msgstr "" + +#: ../../howto/mro.rst:481 +msgid "" +"Having discussed the issue of local precedence ordering, let me now consider " +"the issue of monotonicity. My goal is to show that neither the MRO for " +"classic classes nor that for Python 2.2 new style classes is monotonic." +msgstr "" + +#: ../../howto/mro.rst:486 +msgid "" +"To prove that the MRO for classic classes is non-monotonic is rather " +"trivial, it is enough to look at the diamond diagram:" +msgstr "" + +#: ../../howto/mro.rst:489 +msgid "" +" C\n" +" / \\\n" +" / \\\n" +"A B\n" +" \\ /\n" +" \\ /\n" +" D" +msgstr "" + +#: ../../howto/mro.rst:500 +msgid "One easily discerns the inconsistency::" +msgstr "" + +#: ../../howto/mro.rst:502 +msgid "" +"L[B,P21] = B C # B precedes C : B's methods win\n" +"L[D,P21] = D A C B C # B follows C : C's methods win!" +msgstr "" + +#: ../../howto/mro.rst:505 +msgid "" +"On the other hand, there are no problems with the Python 2.2 and 2.3 MROs, " +"they give both::" +msgstr "" + +#: ../../howto/mro.rst:508 +msgid "L[D] = D A B C" +msgstr "" + +#: ../../howto/mro.rst:510 +msgid "" +"Guido points out in his essay [#]_ that the classic MRO is not so bad in " +"practice, since one can typically avoids diamonds for classic classes. But " +"all new style classes inherit from ``object``, therefore diamonds are " +"unavoidable and inconsistencies shows up in every multiple inheritance graph." +msgstr "" + +#: ../../howto/mro.rst:516 +msgid "" +"The MRO of Python 2.2 makes breaking monotonicity difficult, but not " +"impossible. The following example, originally provided by Samuele Pedroni, " +"shows that the MRO of Python 2.2 is non-monotonic:" +msgstr "" + +#: ../../howto/mro.rst:530 +msgid "" +"Here are the linearizations according to the C3 MRO (the reader should " +"verify these linearizations as an exercise and draw the inheritance " +"diagram ;-) ::" +msgstr "" + +#: ../../howto/mro.rst:534 +msgid "" +"L[A] = A O\n" +"L[B] = B O\n" +"L[C] = C O\n" +"L[D] = D O\n" +"L[E] = E O\n" +"L[K1]= K1 A B C O\n" +"L[K2]= K2 D B E O\n" +"L[K3]= K3 D A O\n" +"L[Z] = Z K1 K2 K3 D A B C E O" +msgstr "" + +#: ../../howto/mro.rst:544 +msgid "" +"Python 2.2 gives exactly the same linearizations for A, B, C, D, E, K1, K2 " +"and K3, but a different linearization for Z::" +msgstr "" + +#: ../../howto/mro.rst:547 +msgid "L[Z,P22] = Z K1 K3 A K2 D B C E O" +msgstr "" + +#: ../../howto/mro.rst:549 +msgid "" +"It is clear that this linearization is *wrong*, since A comes before D " +"whereas in the linearization of K3 A comes *after* D. In other words, in K3 " +"methods derived by D override methods derived by A, but in Z, which still is " +"a subclass of K3, methods derived by A override methods derived by D! This " +"is a violation of monotonicity. Moreover, the Python 2.2 linearization of Z " +"is also inconsistent with local precedence ordering, since the local " +"precedence list of the class Z is [K1, K2, K3] (K2 precedes K3), whereas in " +"the linearization of Z K2 *follows* K3. These problems explain why the 2.2 " +"rule has been dismissed in favor of the C3 rule." +msgstr "" + +#: ../../howto/mro.rst:561 +msgid "The end" +msgstr "" + +#: ../../howto/mro.rst:563 +msgid "" +"This section is for the impatient reader, who skipped all the previous " +"sections and jumped immediately to the end. This section is for the lazy " +"programmer too, who didn't want to exercise her/his brain. Finally, it is " +"for the programmer with some hubris, otherwise s/he would not be reading a " +"paper on the C3 method resolution order in multiple inheritance " +"hierarchies ;-) These three virtues taken all together (and *not* " +"separately) deserve a prize: the prize is a short Python 2.2 script that " +"allows you to compute the 2.3 MRO without risk to your brain. Simply change " +"the last line to play with the various examples I have discussed in this " +"paper.::" +msgstr "" + +#: ../../howto/mro.rst:574 +msgid "" +"#\n" +"\n" +"\"\"\"C3 algorithm by Samuele Pedroni (with readability enhanced by me)." +"\"\"\"\n" +"\n" +"class __metaclass__(type):\n" +" \"All classes are metamagically modified to be nicely printed\"\n" +" __repr__ = lambda cls: cls.__name__\n" +"\n" +"class ex_2:\n" +" \"Serious order disagreement\" #From Guido\n" +" class O: pass\n" +" class X(O): pass\n" +" class Y(O): pass\n" +" class A(X,Y): pass\n" +" class B(Y,X): pass\n" +" try:\n" +" class Z(A,B): pass #creates Z(A,B) in Python 2.2\n" +" except TypeError:\n" +" pass # Z(A,B) cannot be created in Python 2.3\n" +"\n" +"class ex_5:\n" +" \"My first example\"\n" +" class O: pass\n" +" class F(O): pass\n" +" class E(O): pass\n" +" class D(O): pass\n" +" class C(D,F): pass\n" +" class B(D,E): pass\n" +" class A(B,C): pass\n" +"\n" +"class ex_6:\n" +" \"My second example\"\n" +" class O: pass\n" +" class F(O): pass\n" +" class E(O): pass\n" +" class D(O): pass\n" +" class C(D,F): pass\n" +" class B(E,D): pass\n" +" class A(B,C): pass\n" +"\n" +"class ex_9:\n" +" \"Difference between Python 2.2 MRO and C3\" #From Samuele\n" +" class O: pass\n" +" class A(O): pass\n" +" class B(O): pass\n" +" class C(O): pass\n" +" class D(O): pass\n" +" class E(O): pass\n" +" class K1(A,B,C): pass\n" +" class K2(D,B,E): pass\n" +" class K3(D,A): pass\n" +" class Z(K1,K2,K3): pass\n" +"\n" +"def merge(seqs):\n" +" print '\\n\\nCPL[%s]=%s' % (seqs[0][0],seqs),\n" +" res = []; i=0\n" +" while 1:\n" +" nonemptyseqs=[seq for seq in seqs if seq]\n" +" if not nonemptyseqs: return res\n" +" i+=1; print '\\n',i,'round: candidates...',\n" +" for seq in nonemptyseqs: # find merge candidates among seq heads\n" +" cand = seq[0]; print ' ',cand,\n" +" nothead=[s for s in nonemptyseqs if cand in s[1:]]\n" +" if nothead: cand=None #reject candidate\n" +" else: break\n" +" if not cand: raise \"Inconsistent hierarchy\"\n" +" res.append(cand)\n" +" for seq in nonemptyseqs: # remove cand\n" +" if seq[0] == cand: del seq[0]\n" +"\n" +"def mro(C):\n" +" \"Compute the class precedence list (mro) according to C3\"\n" +" return merge([[C]]+map(mro,C.__bases__)+[list(C.__bases__)])\n" +"\n" +"def print_mro(C):\n" +" print '\\nMRO[%s]=%s' % (C,mro(C))\n" +" print '\\nP22 MRO[%s]=%s' % (C,C.mro())\n" +"\n" +"print_mro(ex_9.Z)\n" +"\n" +"#" +msgstr "" + +#: ../../howto/mro.rst:656 +msgid "That's all folks," +msgstr "" + +#: ../../howto/mro.rst:658 +msgid "enjoy !" +msgstr "" + +#: ../../howto/mro.rst:662 +msgid "Resources" +msgstr "" + +#: ../../howto/mro.rst:664 +msgid "" +"The thread on python-dev started by Samuele Pedroni: https://mail.python.org/" +"pipermail/python-dev/2002-October/029035.html" +msgstr "" + +#: ../../howto/mro.rst:667 +msgid "" +"The paper *A Monotonic Superclass Linearization for Dylan*: https://doi.org/" +"10.1145/236337.236343" +msgstr "" + +#: ../../howto/mro.rst:670 +msgid "" +"Guido van Rossum's essay, *Unifying types and classes in Python 2.2*: " +"https://web.archive.org/web/20140210194412/http://www.python.org/download/" +"releases/2.2.2/descrintro" +msgstr "" diff --git a/howto/perf_profiling.po b/howto/perf_profiling.po new file mode 100644 index 0000000..6e3327c --- /dev/null +++ b/howto/perf_profiling.po @@ -0,0 +1,454 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/perf_profiling.rst:7 +msgid "Python support for the Linux ``perf`` profiler" +msgstr "" + +#: ../../howto/perf_profiling.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/perf_profiling.rst:9 +msgid "Pablo Galindo" +msgstr "" + +#: ../../howto/perf_profiling.rst:11 +msgid "" +"`The Linux perf profiler `_ is a very powerful " +"tool that allows you to profile and obtain information about the performance " +"of your application. ``perf`` also has a very vibrant ecosystem of tools " +"that aid with the analysis of the data that it produces." +msgstr "" + +#: ../../howto/perf_profiling.rst:17 +msgid "" +"The main problem with using the ``perf`` profiler with Python applications " +"is that ``perf`` only gets information about native symbols, that is, the " +"names of functions and procedures written in C. This means that the names " +"and file names of Python functions in your code will not appear in the " +"output of ``perf``." +msgstr "" + +#: ../../howto/perf_profiling.rst:22 +msgid "" +"Since Python 3.12, the interpreter can run in a special mode that allows " +"Python functions to appear in the output of the ``perf`` profiler. When this " +"mode is enabled, the interpreter will interpose a small piece of code " +"compiled on the fly before the execution of every Python function and it " +"will teach ``perf`` the relationship between this piece of code and the " +"associated Python function using :doc:`perf map files <../c-api/perfmaps>`." +msgstr "" + +#: ../../howto/perf_profiling.rst:31 +msgid "" +"Support for the ``perf`` profiler is currently only available for Linux on " +"select architectures. Check the output of the ``configure`` build step or " +"check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` to " +"see if your system is supported." +msgstr "" + +#: ../../howto/perf_profiling.rst:36 +msgid "For example, consider the following script:" +msgstr "" + +#: ../../howto/perf_profiling.rst:38 +msgid "" +"def foo(n):\n" +" result = 0\n" +" for _ in range(n):\n" +" result += 1\n" +" return result\n" +"\n" +"def bar(n):\n" +" foo(n)\n" +"\n" +"def baz(n):\n" +" bar(n)\n" +"\n" +"if __name__ == \"__main__\":\n" +" baz(1000000)" +msgstr "" + +#: ../../howto/perf_profiling.rst:55 +msgid "We can run ``perf`` to sample CPU stack traces at 9999 hertz::" +msgstr "" + +#: ../../howto/perf_profiling.rst:57 +msgid "$ perf record -F 9999 -g -o perf.data python my_script.py" +msgstr "" + +#: ../../howto/perf_profiling.rst:59 +msgid "Then we can use ``perf report`` to analyze the data:" +msgstr "" + +#: ../../howto/perf_profiling.rst:61 +msgid "" +"$ perf report --stdio -n -g\n" +"\n" +"# Children Self Samples Command Shared Object Symbol\n" +"# ........ ........ ............ .......... .................. ..........................................\n" +"#\n" +" 91.08% 0.00% 0 python.exe python.exe [.] " +"_start\n" +" |\n" +" ---_start\n" +" |\n" +" --90.71%--__libc_start_main\n" +" Py_BytesMain\n" +" |\n" +" |--56.88%--pymain_run_python.constprop.0\n" +" | |\n" +" | |--56.13%--_PyRun_AnyFileObject\n" +" | | _PyRun_SimpleFileObject\n" +" | | |\n" +" | | |--55.02%--run_mod\n" +" | | | |\n" +" | | | --54.65%--" +"PyEval_EvalCode\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | |\n" +" | | | " +"|--51.67%--_PyEval_EvalFrameDefault\n" +" | | | " +"| |\n" +" | | | " +"| |--11.52%--_PyLong_Add\n" +" | | | " +"| | |\n" +" | | | " +"| | |--2.97%--_PyObject_Malloc\n" +"..." +msgstr "" + +#: ../../howto/perf_profiling.rst:100 +msgid "" +"As you can see, the Python functions are not shown in the output, only " +"``_PyEval_EvalFrameDefault`` (the function that evaluates the Python " +"bytecode) shows up. Unfortunately that's not very useful because all Python " +"functions use the same C function to evaluate bytecode so we cannot know " +"which Python function corresponds to which bytecode-evaluating function." +msgstr "" + +#: ../../howto/perf_profiling.rst:105 +msgid "" +"Instead, if we run the same experiment with ``perf`` support enabled we get:" +msgstr "" + +#: ../../howto/perf_profiling.rst:107 +msgid "" +"$ perf report --stdio -n -g\n" +"\n" +"# Children Self Samples Command Shared Object Symbol\n" +"# ........ ........ ............ .......... .................. .....................................................................\n" +"#\n" +" 90.58% 0.36% 1 python.exe python.exe [.] " +"_start\n" +" |\n" +" ---_start\n" +" |\n" +" --89.86%--__libc_start_main\n" +" Py_BytesMain\n" +" |\n" +" |--55.43%--pymain_run_python.constprop.0\n" +" | |\n" +" | |--54.71%--_PyRun_AnyFileObject\n" +" | | _PyRun_SimpleFileObject\n" +" | | |\n" +" | | |--53.62%--run_mod\n" +" | | | |\n" +" | | | --53.26%--" +"PyEval_EvalCode\n" +" | | | py::" +":/src/script.py\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | py::baz:/" +"src/script.py\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | py::bar:/" +"src/script.py\n" +" | | | " +"_PyEval_EvalFrameDefault\n" +" | | | " +"PyObject_Vectorcall\n" +" | | | " +"_PyEval_Vector\n" +" | | | py::foo:/" +"src/script.py\n" +" | | | |\n" +" | | | " +"|--51.81%--_PyEval_EvalFrameDefault\n" +" | | | " +"| |\n" +" | | | " +"| |--13.77%--_PyLong_Add\n" +" | | | " +"| | |\n" +" | | | " +"| | |--3.26%--_PyObject_Malloc" +msgstr "" + +#: ../../howto/perf_profiling.rst:152 +msgid "How to enable ``perf`` profiling support" +msgstr "" + +#: ../../howto/perf_profiling.rst:154 +msgid "" +"``perf`` profiling support can be enabled either from the start using the " +"environment variable :envvar:`PYTHONPERFSUPPORT` or the :option:`-X perf <-" +"X>` option, or dynamically using :func:`sys.activate_stack_trampoline` " +"and :func:`sys.deactivate_stack_trampoline`." +msgstr "" + +#: ../../howto/perf_profiling.rst:160 +msgid "" +"The :mod:`!sys` functions take precedence over the :option:`!-X` option, " +"the :option:`!-X` option takes precedence over the environment variable." +msgstr "" + +#: ../../howto/perf_profiling.rst:163 +msgid "Example, using the environment variable::" +msgstr "" + +#: ../../howto/perf_profiling.rst:165 +msgid "" +"$ PYTHONPERFSUPPORT=1 perf record -F 9999 -g -o perf.data python " +"my_script.py\n" +"$ perf report -g -i perf.data" +msgstr "" + +#: ../../howto/perf_profiling.rst:168 +msgid "Example, using the :option:`!-X` option::" +msgstr "" + +#: ../../howto/perf_profiling.rst:170 +msgid "" +"$ perf record -F 9999 -g -o perf.data python -X perf my_script.py\n" +"$ perf report -g -i perf.data" +msgstr "" + +#: ../../howto/perf_profiling.rst:173 +msgid "Example, using the :mod:`sys` APIs in file :file:`example.py`:" +msgstr "" + +#: ../../howto/perf_profiling.rst:175 +msgid "" +"import sys\n" +"\n" +"sys.activate_stack_trampoline(\"perf\")\n" +"do_profiled_stuff()\n" +"sys.deactivate_stack_trampoline()\n" +"\n" +"non_profiled_stuff()" +msgstr "" + +#: ../../howto/perf_profiling.rst:185 +msgid "...then::" +msgstr "" + +#: ../../howto/perf_profiling.rst:187 +msgid "" +"$ perf record -F 9999 -g -o perf.data python ./example.py\n" +"$ perf report -g -i perf.data" +msgstr "" + +#: ../../howto/perf_profiling.rst:192 +msgid "How to obtain the best results" +msgstr "" + +#: ../../howto/perf_profiling.rst:194 +msgid "" +"For best results, Python should be compiled with ``CFLAGS=\"-fno-omit-frame-" +"pointer -mno-omit-leaf-frame-pointer\"`` as this allows profilers to unwind " +"using only the frame pointer and not on DWARF debug information. This is " +"because as the code that is interposed to allow ``perf`` support is " +"dynamically generated it doesn't have any DWARF debugging information " +"available." +msgstr "" + +#: ../../howto/perf_profiling.rst:201 +msgid "" +"You can check if your system has been compiled with this flag by running::" +msgstr "" + +#: ../../howto/perf_profiling.rst:203 +msgid "$ python -m sysconfig | grep 'no-omit-frame-pointer'" +msgstr "" + +#: ../../howto/perf_profiling.rst:205 +msgid "" +"If you don't see any output it means that your interpreter has not been " +"compiled with frame pointers and therefore it may not be able to show Python " +"functions in the output of ``perf``." +msgstr "" + +#: ../../howto/perf_profiling.rst:211 +msgid "How to work without frame pointers" +msgstr "" + +#: ../../howto/perf_profiling.rst:213 +msgid "" +"If you are working with a Python interpreter that has been compiled without " +"frame pointers, you can still use the ``perf`` profiler, but the overhead " +"will be a bit higher because Python needs to generate unwinding information " +"for every Python function call on the fly. Additionally, ``perf`` will take " +"more time to process the data because it will need to use the DWARF " +"debugging information to unwind the stack and this is a slow process." +msgstr "" + +#: ../../howto/perf_profiling.rst:220 +msgid "" +"To enable this mode, you can use the environment " +"variable :envvar:`PYTHON_PERF_JIT_SUPPORT` or the :option:`-X perf_jit <-X>` " +"option, which will enable the JIT mode for the ``perf`` profiler." +msgstr "" + +#: ../../howto/perf_profiling.rst:226 +msgid "" +"Due to a bug in the ``perf`` tool, only ``perf`` versions higher than v6.8 " +"will work with the JIT mode. The fix was also backported to the v6.7.2 " +"version of the tool." +msgstr "" + +#: ../../howto/perf_profiling.rst:230 +msgid "" +"Note that when checking the version of the ``perf`` tool (which can be done " +"by running ``perf version``) you must take into account that some distros " +"add some custom version numbers including a ``-`` character. This means " +"that ``perf 6.7-3`` is not necessarily ``perf 6.7.3``." +msgstr "" + +#: ../../howto/perf_profiling.rst:235 +msgid "" +"When using the perf JIT mode, you need an extra step before you can run " +"``perf report``. You need to call the ``perf inject`` command to inject the " +"JIT information into the ``perf.data`` file.::" +msgstr "" + +#: ../../howto/perf_profiling.rst:239 +msgid "" +"$ perf record -F 9999 -g -k 1 --call-graph dwarf -o perf.data python " +"-Xperf_jit my_script.py\n" +"$ perf inject -i perf.data --jit --output perf.jit.data\n" +"$ perf report -g -i perf.jit.data" +msgstr "" + +#: ../../howto/perf_profiling.rst:243 +msgid "or using the environment variable::" +msgstr "" + +#: ../../howto/perf_profiling.rst:245 +msgid "" +"$ PYTHON_PERF_JIT_SUPPORT=1 perf record -F 9999 -g --call-graph dwarf -o " +"perf.data python my_script.py\n" +"$ perf inject -i perf.data --jit --output perf.jit.data\n" +"$ perf report -g -i perf.jit.data" +msgstr "" + +#: ../../howto/perf_profiling.rst:249 +msgid "" +"``perf inject --jit`` command will read ``perf.data``, automatically pick up " +"the perf dump file that Python creates (in ``/tmp/perf-$PID.dump``), and " +"then create ``perf.jit.data`` which merges all the JIT information together. " +"It should also create a lot of ``jitted-XXXX-N.so`` files in the current " +"directory which are ELF images for all the JIT trampolines that were created " +"by Python." +msgstr "" + +#: ../../howto/perf_profiling.rst:257 +msgid "" +"When using ``--call-graph dwarf``, the ``perf`` tool will take snapshots of " +"the stack of the process being profiled and save the information in the " +"``perf.data`` file. By default, the size of the stack dump is 8192 bytes, " +"but you can change the size by passing it after a comma like ``--call-graph " +"dwarf,16384``." +msgstr "" + +#: ../../howto/perf_profiling.rst:263 +msgid "" +"The size of the stack dump is important because if the size is too small " +"``perf`` will not be able to unwind the stack and the output will be " +"incomplete. On the other hand, if the size is too big, then ``perf`` won't " +"be able to sample the process as frequently as it would like as the overhead " +"will be higher." +msgstr "" + +#: ../../howto/perf_profiling.rst:269 +msgid "" +"The stack size is particularly important when profiling Python code compiled " +"with low optimization levels (like ``-O0``), as these builds tend to have " +"larger stack frames. If you are compiling Python with ``-O0`` and not seeing " +"Python functions in your profiling output, try increasing the stack dump " +"size to 65528 bytes (the maximum)::" +msgstr "" + +#: ../../howto/perf_profiling.rst:275 +msgid "" +"$ perf record -F 9999 -g -k 1 --call-graph dwarf,65528 -o perf.data python " +"-Xperf_jit my_script.py" +msgstr "" + +#: ../../howto/perf_profiling.rst:277 +msgid "Different compilation flags can significantly impact stack sizes:" +msgstr "" + +#: ../../howto/perf_profiling.rst:279 +msgid "" +"Builds with ``-O0`` typically have much larger stack frames than those with " +"``-O1`` or higher" +msgstr "" + +#: ../../howto/perf_profiling.rst:280 +msgid "" +"Adding optimizations (``-O1``, ``-O2``, etc.) typically reduces stack size" +msgstr "" + +#: ../../howto/perf_profiling.rst:281 +msgid "" +"Frame pointers (``-fno-omit-frame-pointer``) generally provide more reliable " +"stack unwinding" +msgstr "" diff --git a/howto/pyporting.po b/howto/pyporting.po new file mode 100644 index 0000000..21545e5 --- /dev/null +++ b/howto/pyporting.po @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/pyporting.rst:7 +msgid "How to port Python 2 Code to Python 3" +msgstr "" + +#: ../../howto/pyporting.rst:0 +msgid "author" +msgstr "" + +#: ../../howto/pyporting.rst:9 +msgid "Brett Cannon" +msgstr "" + +#: ../../howto/pyporting.rst:11 +msgid "" +"Python 2 reached its official end-of-life at the start of 2020. This means " +"that no new bug reports, fixes, or changes will be made to Python 2 - it's " +"no longer supported: see :pep:`373` and `status of Python versions `_." +msgstr "" + +#: ../../howto/pyporting.rst:16 +msgid "" +"If you are looking to port an extension module instead of pure Python code, " +"please see :ref:`cporting-howto`." +msgstr "" + +#: ../../howto/pyporting.rst:19 +msgid "" +"The archived python-porting_ mailing list may contain some useful guidance." +msgstr "" + +#: ../../howto/pyporting.rst:21 +msgid "" +"Since Python 3.11 the original porting guide was discontinued. You can find " +"the old guide in the `archive `_." +msgstr "" + +#: ../../howto/pyporting.rst:27 +msgid "Third-party guides" +msgstr "" + +#: ../../howto/pyporting.rst:29 +msgid "There are also multiple third-party guides that might be useful:" +msgstr "" + +#: ../../howto/pyporting.rst:31 +msgid "`Guide by Fedora `_" +msgstr "" + +#: ../../howto/pyporting.rst:32 +msgid "`PyCon 2020 tutorial `_" +msgstr "" + +#: ../../howto/pyporting.rst:33 +msgid "" +"`Guide by DigitalOcean `_" +msgstr "" + +#: ../../howto/pyporting.rst:34 +msgid "" +"`Guide by ActiveState `_" +msgstr "" diff --git a/howto/regex.po b/howto/regex.po new file mode 100644 index 0000000..8107214 --- /dev/null +++ b/howto/regex.po @@ -0,0 +1,2288 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/regex.rst:5 +msgid "Regular Expression HOWTO" +msgstr "" + +#: ../../howto/regex.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/regex.rst:7 +msgid "A.M. Kuchling " +msgstr "" + +#: ../../howto/regex.rst-1 +msgid "Abstract" +msgstr "" + +#: ../../howto/regex.rst:18 +msgid "" +"This document is an introductory tutorial to using regular expressions in " +"Python with the :mod:`re` module. It provides a gentler introduction than " +"the corresponding section in the Library Reference." +msgstr "" + +#: ../../howto/regex.rst:24 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../howto/regex.rst:26 +msgid "" +"Regular expressions (called REs, or regexes, or regex patterns) are " +"essentially a tiny, highly specialized programming language embedded inside " +"Python and made available through the :mod:`re` module. Using this little " +"language, you specify the rules for the set of possible strings that you " +"want to match; this set might contain English sentences, or e-mail " +"addresses, or TeX commands, or anything you like. You can then ask " +"questions such as \"Does this string match the pattern?\", or \"Is there a " +"match for the pattern anywhere in this string?\". You can also use REs to " +"modify a string or to split it apart in various ways." +msgstr "" + +#: ../../howto/regex.rst:35 +msgid "" +"Regular expression patterns are compiled into a series of bytecodes which " +"are then executed by a matching engine written in C. For advanced use, it " +"may be necessary to pay careful attention to how the engine will execute a " +"given RE, and write the RE in a certain way in order to produce bytecode " +"that runs faster. Optimization isn't covered in this document, because it " +"requires that you have a good understanding of the matching engine's " +"internals." +msgstr "" + +#: ../../howto/regex.rst:42 +msgid "" +"The regular expression language is relatively small and restricted, so not " +"all possible string processing tasks can be done using regular expressions. " +"There are also tasks that *can* be done with regular expressions, but the " +"expressions turn out to be very complicated. In these cases, you may be " +"better off writing Python code to do the processing; while Python code will " +"be slower than an elaborate regular expression, it will also probably be " +"more understandable." +msgstr "" + +#: ../../howto/regex.rst:51 +msgid "Simple Patterns" +msgstr "" + +#: ../../howto/regex.rst:53 +msgid "" +"We'll start by learning about the simplest possible regular expressions. " +"Since regular expressions are used to operate on strings, we'll begin with " +"the most common task: matching characters." +msgstr "" + +#: ../../howto/regex.rst:57 +msgid "" +"For a detailed explanation of the computer science underlying regular " +"expressions (deterministic and non-deterministic finite automata), you can " +"refer to almost any textbook on writing compilers." +msgstr "" + +#: ../../howto/regex.rst:63 +msgid "Matching Characters" +msgstr "" + +#: ../../howto/regex.rst:65 +msgid "" +"Most letters and characters will simply match themselves. For example, the " +"regular expression ``test`` will match the string ``test`` exactly. (You " +"can enable a case-insensitive mode that would let this RE match ``Test`` or " +"``TEST`` as well; more about this later.)" +msgstr "" + +#: ../../howto/regex.rst:70 +msgid "" +"There are exceptions to this rule; some characters are " +"special :dfn:`metacharacters`, and don't match themselves. Instead, they " +"signal that some out-of-the-ordinary thing should be matched, or they affect " +"other portions of the RE by repeating them or changing their meaning. Much " +"of this document is devoted to discussing various metacharacters and what " +"they do." +msgstr "" + +#: ../../howto/regex.rst:76 +msgid "" +"Here's a complete list of the metacharacters; their meanings will be " +"discussed in the rest of this HOWTO." +msgstr "" + +#: ../../howto/regex.rst:79 +msgid ". ^ $ * + ? { } [ ] \\ | ( )" +msgstr "" + +#: ../../howto/regex.rst:83 +msgid "" +"The first metacharacters we'll look at are ``[`` and ``]``. They're used for " +"specifying a character class, which is a set of characters that you wish to " +"match. Characters can be listed individually, or a range of characters can " +"be indicated by giving two characters and separating them by a ``'-'``. For " +"example, ``[abc]`` will match any of the characters ``a``, ``b``, or ``c``; " +"this is the same as ``[a-c]``, which uses a range to express the same set of " +"characters. If you wanted to match only lowercase letters, your RE would be " +"``[a-z]``." +msgstr "" + +#: ../../howto/regex.rst:92 +msgid "" +"Metacharacters (except ``\\``) are not active inside classes. For example, " +"``[akm$]`` will match any of the characters ``'a'``, ``'k'``, ``'m'``, or " +"``'$'``; ``'$'`` is usually a metacharacter, but inside a character class " +"it's stripped of its special nature." +msgstr "" + +#: ../../howto/regex.rst:97 +msgid "" +"You can match the characters not listed within the class " +"by :dfn:`complementing` the set. This is indicated by including a ``'^'`` " +"as the first character of the class. For example, ``[^5]`` will match any " +"character except ``'5'``. If the caret appears elsewhere in a character " +"class, it does not have special meaning. For example: ``[5^]`` will match " +"either a ``'5'`` or a ``'^'``." +msgstr "" + +#: ../../howto/regex.rst:103 +msgid "" +"Perhaps the most important metacharacter is the backslash, ``\\``. As in " +"Python string literals, the backslash can be followed by various characters " +"to signal various special sequences. It's also used to escape all the " +"metacharacters so you can still match them in patterns; for example, if you " +"need to match a ``[`` or ``\\``, you can precede them with a backslash to " +"remove their special meaning: ``\\[`` or ``\\\\``." +msgstr "" + +#: ../../howto/regex.rst:110 +msgid "" +"Some of the special sequences beginning with ``'\\'`` represent predefined " +"sets of characters that are often useful, such as the set of digits, the set " +"of letters, or the set of anything that isn't whitespace." +msgstr "" + +#: ../../howto/regex.rst:115 +msgid "" +"Let's take an example: ``\\w`` matches any alphanumeric character. If the " +"regex pattern is expressed in bytes, this is equivalent to the class ``[a-zA-" +"Z0-9_]``. If the regex pattern is a string, ``\\w`` will match all the " +"characters marked as letters in the Unicode database provided by " +"the :mod:`unicodedata` module. You can use the more restricted definition " +"of ``\\w`` in a string pattern by supplying the :const:`re.ASCII` flag when " +"compiling the regular expression." +msgstr "" + +#: ../../howto/regex.rst:123 +msgid "" +"The following list of special sequences isn't complete. For a complete list " +"of sequences and expanded class definitions for Unicode string patterns, see " +"the last part of :ref:`Regular Expression Syntax ` in the " +"Standard Library reference. In general, the Unicode versions match any " +"character that's in the appropriate category in the Unicode database." +msgstr "" + +#: ../../howto/regex.rst:130 +msgid "``\\d``" +msgstr "``\\d``" + +#: ../../howto/regex.rst:131 +msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." +msgstr "" + +#: ../../howto/regex.rst:133 +msgid "``\\D``" +msgstr "``\\D``" + +#: ../../howto/regex.rst:134 +msgid "" +"Matches any non-digit character; this is equivalent to the class ``[^0-9]``." +msgstr "" + +#: ../../howto/regex.rst:136 +msgid "``\\s``" +msgstr "``\\s``" + +#: ../../howto/regex.rst:137 +msgid "" +"Matches any whitespace character; this is equivalent to the class " +"``[ \\t\\n\\r\\f\\v]``." +msgstr "" + +#: ../../howto/regex.rst:140 +msgid "``\\S``" +msgstr "``\\S``" + +#: ../../howto/regex.rst:141 +msgid "" +"Matches any non-whitespace character; this is equivalent to the class ``[^ " +"\\t\\n\\r\\f\\v]``." +msgstr "" + +#: ../../howto/regex.rst:144 +msgid "``\\w``" +msgstr "``\\w``" + +#: ../../howto/regex.rst:145 +msgid "" +"Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" +"Z0-9_]``." +msgstr "" + +#: ../../howto/regex.rst:148 +msgid "``\\W``" +msgstr "``\\W``" + +#: ../../howto/regex.rst:149 +msgid "" +"Matches any non-alphanumeric character; this is equivalent to the class " +"``[^a-zA-Z0-9_]``." +msgstr "" + +#: ../../howto/regex.rst:152 +msgid "" +"These sequences can be included inside a character class. For example, " +"``[\\s,.]`` is a character class that will match any whitespace character, " +"or ``','`` or ``'.'``." +msgstr "" + +#: ../../howto/regex.rst:156 +msgid "" +"The final metacharacter in this section is ``.``. It matches anything " +"except a newline character, and there's an alternate mode " +"(:const:`re.DOTALL`) where it will match even a newline. ``.`` is often " +"used where you want to match \"any character\"." +msgstr "" + +#: ../../howto/regex.rst:163 +msgid "Repeating Things" +msgstr "" + +#: ../../howto/regex.rst:165 +msgid "" +"Being able to match varying sets of characters is the first thing regular " +"expressions can do that isn't already possible with the methods available on " +"strings. However, if that was the only additional capability of regexes, " +"they wouldn't be much of an advance. Another capability is that you can " +"specify that portions of the RE must be repeated a certain number of times." +msgstr "" + +#: ../../howto/regex.rst:171 +msgid "" +"The first metacharacter for repeating things that we'll look at is ``*``. " +"``*`` doesn't match the literal character ``'*'``; instead, it specifies " +"that the previous character can be matched zero or more times, instead of " +"exactly once." +msgstr "" + +#: ../../howto/regex.rst:175 +msgid "" +"For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " +"(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." +msgstr "" + +#: ../../howto/regex.rst:178 +msgid "" +"Repetitions such as ``*`` are :dfn:`greedy`; when repeating a RE, the " +"matching engine will try to repeat it as many times as possible. If later " +"portions of the pattern don't match, the matching engine will then back up " +"and try again with fewer repetitions." +msgstr "" + +#: ../../howto/regex.rst:183 +msgid "" +"A step-by-step example will make this more obvious. Let's consider the " +"expression ``a[bcd]*b``. This matches the letter ``'a'``, zero or more " +"letters from the class ``[bcd]``, and finally ends with a ``'b'``. Now " +"imagine matching this RE against the string ``'abcbd'``." +msgstr "" + +#: ../../howto/regex.rst:189 +msgid "Step" +msgstr "" + +#: ../../howto/regex.rst:189 +msgid "Matched" +msgstr "" + +#: ../../howto/regex.rst:189 +msgid "Explanation" +msgstr "" + +#: ../../howto/regex.rst:191 +msgid "1" +msgstr "1" + +#: ../../howto/regex.rst:191 +msgid "``a``" +msgstr "``a``" + +#: ../../howto/regex.rst:191 +msgid "The ``a`` in the RE matches." +msgstr "" + +#: ../../howto/regex.rst:193 +msgid "2" +msgstr "2" + +#: ../../howto/regex.rst:193 +msgid "``abcbd``" +msgstr "``abcbd``" + +#: ../../howto/regex.rst:193 +msgid "" +"The engine matches ``[bcd]*``, going as far as it can, which is to the end " +"of the string." +msgstr "" + +#: ../../howto/regex.rst:197 +msgid "3" +msgstr "3" + +#: ../../howto/regex.rst:197 ../../howto/regex.rst:205 +msgid "*Failure*" +msgstr "" + +#: ../../howto/regex.rst:197 +msgid "" +"The engine tries to match ``b``, but the current position is at the end of " +"the string, so it fails." +msgstr "" + +#: ../../howto/regex.rst:202 +msgid "4" +msgstr "4" + +#: ../../howto/regex.rst:202 ../../howto/regex.rst:213 +msgid "``abcb``" +msgstr "``abcb``" + +#: ../../howto/regex.rst:202 +msgid "Back up, so that ``[bcd]*`` matches one less character." +msgstr "" + +#: ../../howto/regex.rst:205 +msgid "5" +msgstr "" + +#: ../../howto/regex.rst:205 +msgid "" +"Try ``b`` again, but the current position is at the last character, which is " +"a ``'d'``." +msgstr "" + +#: ../../howto/regex.rst:209 ../../howto/regex.rst:213 +msgid "6" +msgstr "" + +#: ../../howto/regex.rst:209 +msgid "``abc``" +msgstr "``abc``" + +#: ../../howto/regex.rst:209 +msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." +msgstr "" + +#: ../../howto/regex.rst:213 +msgid "" +"Try ``b`` again. This time the character at the current position is " +"``'b'``, so it succeeds." +msgstr "" + +#: ../../howto/regex.rst:219 +msgid "" +"The end of the RE has now been reached, and it has matched ``'abcb'``. This " +"demonstrates how the matching engine goes as far as it can at first, and if " +"no match is found it will then progressively back up and retry the rest of " +"the RE again and again. It will back up until it has tried zero matches for " +"``[bcd]*``, and if that subsequently fails, the engine will conclude that " +"the string doesn't match the RE at all." +msgstr "" + +#: ../../howto/regex.rst:226 +msgid "" +"Another repeating metacharacter is ``+``, which matches one or more times. " +"Pay careful attention to the difference between ``*`` and ``+``; ``*`` " +"matches *zero* or more times, so whatever's being repeated may not be " +"present at all, while ``+`` requires at least *one* occurrence. To use a " +"similar example, ``ca+t`` will match ``'cat'`` (1 ``'a'``), ``'caaat'`` (3 " +"``'a'``\\ s), but won't match ``'ct'``." +msgstr "" + +#: ../../howto/regex.rst:233 +msgid "" +"There are two more repeating operators or quantifiers. The question mark " +"character, ``?``, matches either once or zero times; you can think of it as " +"marking something as being optional. For example, ``home-?brew`` matches " +"either ``'homebrew'`` or ``'home-brew'``." +msgstr "" + +#: ../../howto/regex.rst:238 +msgid "" +"The most complicated quantifier is ``{m,n}``, where *m* and *n* are decimal " +"integers. This quantifier means there must be at least *m* repetitions, and " +"at most *n*. For example, ``a/{1,3}b`` will match ``'a/b'``, ``'a//b'``, " +"and ``'a///b'``. It won't match ``'ab'``, which has no slashes, or ``'a////" +"b'``, which has four." +msgstr "" + +#: ../../howto/regex.rst:244 +msgid "" +"You can omit either *m* or *n*; in that case, a reasonable value is assumed " +"for the missing value. Omitting *m* is interpreted as a lower limit of 0, " +"while omitting *n* results in an upper bound of infinity." +msgstr "" + +#: ../../howto/regex.rst:248 +msgid "" +"The simplest case ``{m}`` matches the preceding item exactly *m* times. For " +"example, ``a/{2}b`` will only match ``'a//b'``." +msgstr "" + +#: ../../howto/regex.rst:251 +msgid "" +"Readers of a reductionist bent may notice that the three other quantifiers " +"can all be expressed using this notation. ``{0,}`` is the same as ``*``, " +"``{1,}`` is equivalent to ``+``, and ``{0,1}`` is the same as ``?``. It's " +"better to use ``*``, ``+``, or ``?`` when you can, simply because they're " +"shorter and easier to read." +msgstr "" + +#: ../../howto/regex.rst:259 +msgid "Using Regular Expressions" +msgstr "" + +#: ../../howto/regex.rst:261 +msgid "" +"Now that we've looked at some simple regular expressions, how do we actually " +"use them in Python? The :mod:`re` module provides an interface to the " +"regular expression engine, allowing you to compile REs into objects and then " +"perform matches with them." +msgstr "" + +#: ../../howto/regex.rst:268 +msgid "Compiling Regular Expressions" +msgstr "" + +#: ../../howto/regex.rst:270 +msgid "" +"Regular expressions are compiled into pattern objects, which have methods " +"for various operations such as searching for pattern matches or performing " +"string substitutions. ::" +msgstr "" + +#: ../../howto/regex.rst:274 +msgid "" +">>> import re\n" +">>> p = re.compile('ab*')\n" +">>> p\n" +"re.compile('ab*')" +msgstr "" + +#: ../../howto/regex.rst:279 +msgid "" +":func:`re.compile` also accepts an optional *flags* argument, used to enable " +"various special features and syntax variations. We'll go over the available " +"settings later, but for now a single example will do::" +msgstr "" + +#: ../../howto/regex.rst:283 +msgid ">>> p = re.compile('ab*', re.IGNORECASE)" +msgstr "" + +#: ../../howto/regex.rst:285 +msgid "" +"The RE is passed to :func:`re.compile` as a string. REs are handled as " +"strings because regular expressions aren't part of the core Python language, " +"and no special syntax was created for expressing them. (There are " +"applications that don't need REs at all, so there's no need to bloat the " +"language specification by including them.) Instead, the :mod:`re` module is " +"simply a C extension module included with Python, just like " +"the :mod:`socket` or :mod:`zlib` modules." +msgstr "" + +#: ../../howto/regex.rst:292 +msgid "" +"Putting REs in strings keeps the Python language simpler, but has one " +"disadvantage which is the topic of the next section." +msgstr "" + +#: ../../howto/regex.rst:299 +msgid "The Backslash Plague" +msgstr "" + +#: ../../howto/regex.rst:301 +msgid "" +"As stated earlier, regular expressions use the backslash character " +"(``'\\'``) to indicate special forms or to allow special characters to be " +"used without invoking their special meaning. This conflicts with Python's " +"usage of the same character for the same purpose in string literals." +msgstr "" + +#: ../../howto/regex.rst:306 +msgid "" +"Let's say you want to write a RE that matches the string ``\\section``, " +"which might be found in a LaTeX file. To figure out what to write in the " +"program code, start with the desired string to be matched. Next, you must " +"escape any backslashes and other metacharacters by preceding them with a " +"backslash, resulting in the string ``\\\\section``. The resulting string " +"that must be passed to :func:`re.compile` must be ``\\\\section``. However, " +"to express this as a Python string literal, both backslashes must be escaped " +"*again*." +msgstr "" + +#: ../../howto/regex.rst:315 +msgid "Characters" +msgstr "" + +#: ../../howto/regex.rst:315 +msgid "Stage" +msgstr "" + +#: ../../howto/regex.rst:317 +msgid "``\\section``" +msgstr "``\\section``" + +#: ../../howto/regex.rst:317 +msgid "Text string to be matched" +msgstr "" + +#: ../../howto/regex.rst:319 +msgid "``\\\\section``" +msgstr "``\\\\section``" + +#: ../../howto/regex.rst:319 +msgid "Escaped backslash for :func:`re.compile`" +msgstr "" + +#: ../../howto/regex.rst:321 ../../howto/regex.rst:348 +msgid "``\"\\\\\\\\section\"``" +msgstr "``\"\\\\\\\\section\"``" + +#: ../../howto/regex.rst:321 +msgid "Escaped backslashes for a string literal" +msgstr "" + +#: ../../howto/regex.rst:324 +msgid "" +"In short, to match a literal backslash, one has to write ``'\\\\\\\\'`` as " +"the RE string, because the regular expression must be ``\\\\``, and each " +"backslash must be expressed as ``\\\\`` inside a regular Python string " +"literal. In REs that feature backslashes repeatedly, this leads to lots of " +"repeated backslashes and makes the resulting strings difficult to understand." +msgstr "" + +#: ../../howto/regex.rst:330 +msgid "" +"The solution is to use Python's raw string notation for regular expressions; " +"backslashes are not handled in any special way in a string literal prefixed " +"with ``'r'``, so ``r\"\\n\"`` is a two-character string containing ``'\\'`` " +"and ``'n'``, while ``\"\\n\"`` is a one-character string containing a " +"newline. Regular expressions will often be written in Python code using this " +"raw string notation." +msgstr "" + +#: ../../howto/regex.rst:336 +msgid "" +"In addition, special escape sequences that are valid in regular expressions, " +"but not valid as Python string literals, now result in " +"a :exc:`DeprecationWarning` and will eventually become a :exc:`SyntaxError`, " +"which means the sequences will be invalid if raw string notation or escaping " +"the backslashes isn't used." +msgstr "" + +#: ../../howto/regex.rst:344 +msgid "Regular String" +msgstr "" + +#: ../../howto/regex.rst:344 +msgid "Raw string" +msgstr "" + +#: ../../howto/regex.rst:346 +msgid "``\"ab*\"``" +msgstr "``\"ab*\"``" + +#: ../../howto/regex.rst:346 +msgid "``r\"ab*\"``" +msgstr "``r\"ab*\"``" + +#: ../../howto/regex.rst:348 +msgid "``r\"\\\\section\"``" +msgstr "``r\"\\\\section\"``" + +#: ../../howto/regex.rst:350 +msgid "``\"\\\\w+\\\\s+\\\\1\"``" +msgstr "``\"\\\\w+\\\\s+\\\\1\"``" + +#: ../../howto/regex.rst:350 +msgid "``r\"\\w+\\s+\\1\"``" +msgstr "``r\"\\w+\\s+\\1\"``" + +#: ../../howto/regex.rst:355 +msgid "Performing Matches" +msgstr "" + +#: ../../howto/regex.rst:357 +msgid "" +"Once you have an object representing a compiled regular expression, what do " +"you do with it? Pattern objects have several methods and attributes. Only " +"the most significant ones will be covered here; consult the :mod:`re` docs " +"for a complete listing." +msgstr "" + +#: ../../howto/regex.rst:363 ../../howto/regex.rst:417 +#: ../../howto/regex.rst:1072 +msgid "Method/Attribute" +msgstr "" + +#: ../../howto/regex.rst:363 ../../howto/regex.rst:417 +#: ../../howto/regex.rst:1072 +msgid "Purpose" +msgstr "" + +#: ../../howto/regex.rst:365 +msgid "``match()``" +msgstr "``match()``" + +#: ../../howto/regex.rst:365 +msgid "Determine if the RE matches at the beginning of the string." +msgstr "" + +#: ../../howto/regex.rst:368 +msgid "``search()``" +msgstr "``search()``" + +#: ../../howto/regex.rst:368 +msgid "Scan through a string, looking for any location where this RE matches." +msgstr "" + +#: ../../howto/regex.rst:371 +msgid "``findall()``" +msgstr "``findall()``" + +#: ../../howto/regex.rst:371 +msgid "Find all substrings where the RE matches, and returns them as a list." +msgstr "" + +#: ../../howto/regex.rst:374 +msgid "``finditer()``" +msgstr "``finditer()``" + +#: ../../howto/regex.rst:374 +msgid "" +"Find all substrings where the RE matches, and returns them as " +"an :term:`iterator`." +msgstr "" + +#: ../../howto/regex.rst:378 +msgid "" +":meth:`~re.Pattern.match` and :meth:`~re.Pattern.search` return ``None`` if " +"no match can be found. If they're successful, a :ref:`match object ` instance is returned, containing information about the match: " +"where it starts and ends, the substring it matched, and more." +msgstr "" + +#: ../../howto/regex.rst:383 +msgid "" +"You can learn about this by interactively experimenting with the :mod:`re` " +"module." +msgstr "" + +#: ../../howto/regex.rst:386 +msgid "" +"This HOWTO uses the standard Python interpreter for its examples. First, run " +"the Python interpreter, import the :mod:`re` module, and compile a RE::" +msgstr "" + +#: ../../howto/regex.rst:389 +msgid "" +">>> import re\n" +">>> p = re.compile('[a-z]+')\n" +">>> p\n" +"re.compile('[a-z]+')" +msgstr "" + +#: ../../howto/regex.rst:394 +msgid "" +"Now, you can try matching various strings against the RE ``[a-z]+``. An " +"empty string shouldn't match at all, since ``+`` means 'one or more " +"repetitions'. :meth:`~re.Pattern.match` should return ``None`` in this case, " +"which will cause the interpreter to print no output. You can explicitly " +"print the result of :meth:`!match` to make this clear. ::" +msgstr "" + +#: ../../howto/regex.rst:400 +msgid "" +">>> p.match(\"\")\n" +">>> print(p.match(\"\"))\n" +"None" +msgstr "" + +#: ../../howto/regex.rst:404 +msgid "" +"Now, let's try it on a string that it should match, such as ``tempo``. In " +"this case, :meth:`~re.Pattern.match` will return a :ref:`match object `, so you should store the result in a variable for later use. ::" +msgstr "" + +#: ../../howto/regex.rst:408 +msgid "" +">>> m = p.match('tempo')\n" +">>> m\n" +"" +msgstr "" + +#: ../../howto/regex.rst:412 +msgid "" +"Now you can query the :ref:`match object ` for information " +"about the matching string. Match object instances also have several methods " +"and attributes; the most important ones are:" +msgstr "" + +#: ../../howto/regex.rst:419 +msgid "``group()``" +msgstr "``group()``" + +#: ../../howto/regex.rst:419 +msgid "Return the string matched by the RE" +msgstr "" + +#: ../../howto/regex.rst:421 +msgid "``start()``" +msgstr "``start()``" + +#: ../../howto/regex.rst:421 +msgid "Return the starting position of the match" +msgstr "" + +#: ../../howto/regex.rst:423 +msgid "``end()``" +msgstr "``end()``" + +#: ../../howto/regex.rst:423 +msgid "Return the ending position of the match" +msgstr "" + +#: ../../howto/regex.rst:425 +msgid "``span()``" +msgstr "``span()``" + +#: ../../howto/regex.rst:425 +msgid "Return a tuple containing the (start, end) positions of the match" +msgstr "" + +#: ../../howto/regex.rst:429 +msgid "Trying these methods will soon clarify their meaning::" +msgstr "" + +#: ../../howto/regex.rst:431 +msgid "" +">>> m.group()\n" +"'tempo'\n" +">>> m.start(), m.end()\n" +"(0, 5)\n" +">>> m.span()\n" +"(0, 5)" +msgstr "" + +#: ../../howto/regex.rst:438 +msgid "" +":meth:`~re.Match.group` returns the substring that was matched by the " +"RE. :meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting " +"and ending index of the match. :meth:`~re.Match.span` returns both start and " +"end indexes in a single tuple. Since the :meth:`~re.Pattern.match` method " +"only checks if the RE matches at the start of a string, :meth:`!start` will " +"always be zero. However, the :meth:`~re.Pattern.search` method of patterns " +"scans through the string, so the match may not start at zero in that " +"case. ::" +msgstr "" + +#: ../../howto/regex.rst:446 +msgid "" +">>> print(p.match('::: message'))\n" +"None\n" +">>> m = p.search('::: message'); print(m)\n" +"\n" +">>> m.group()\n" +"'message'\n" +">>> m.span()\n" +"(4, 11)" +msgstr "" + +#: ../../howto/regex.rst:455 +msgid "" +"In actual programs, the most common style is to store the :ref:`match object " +"` in a variable, and then check if it was ``None``. This " +"usually looks like::" +msgstr "" + +#: ../../howto/regex.rst:459 +msgid "" +"p = re.compile( ... )\n" +"m = p.match( 'string goes here' )\n" +"if m:\n" +" print('Match found: ', m.group())\n" +"else:\n" +" print('No match')" +msgstr "" + +#: ../../howto/regex.rst:466 +msgid "" +"Two pattern methods return all of the matches for a " +"pattern. :meth:`~re.Pattern.findall` returns a list of matching strings::" +msgstr "" + +#: ../../howto/regex.rst:469 +msgid "" +">>> p = re.compile(r'\\d+')\n" +">>> p.findall('12 drummers drumming, 11 pipers piping, 10 lords a-leaping')\n" +"['12', '11', '10']" +msgstr "" + +#: ../../howto/regex.rst:473 +msgid "" +"The ``r`` prefix, making the literal a raw string literal, is needed in this " +"example because escape sequences in a normal \"cooked\" string literal that " +"are not recognized by Python, as opposed to regular expressions, now result " +"in a :exc:`DeprecationWarning` and will eventually become " +"a :exc:`SyntaxError`. See :ref:`the-backslash-plague`." +msgstr "" + +#: ../../howto/regex.rst:479 +msgid "" +":meth:`~re.Pattern.findall` has to create the entire list before it can be " +"returned as the result. The :meth:`~re.Pattern.finditer` method returns a " +"sequence of :ref:`match object ` instances as " +"an :term:`iterator`::" +msgstr "" + +#: ../../howto/regex.rst:483 +msgid "" +">>> iterator = p.finditer('12 drummers drumming, 11 ... 10 ...')\n" +">>> iterator\n" +"\n" +">>> for match in iterator:\n" +"... print(match.span())\n" +"...\n" +"(0, 2)\n" +"(22, 24)\n" +"(29, 31)" +msgstr "" + +#: ../../howto/regex.rst:495 +msgid "Module-Level Functions" +msgstr "" + +#: ../../howto/regex.rst:497 +msgid "" +"You don't have to create a pattern object and call its methods; " +"the :mod:`re` module also provides top-level functions " +"called :func:`~re.match`, :func:`~re.search`, :func:`~re.findall`, :func:`~re.sub`, " +"and so forth. These functions take the same arguments as the corresponding " +"pattern method with the RE string added as the first argument, and still " +"return either ``None`` or a :ref:`match object ` instance. ::" +msgstr "" + +#: ../../howto/regex.rst:504 +msgid "" +">>> print(re.match(r'From\\s+', 'Fromage amk'))\n" +"None\n" +">>> re.match(r'From\\s+', 'From amk Thu May 14 19:12:10 1998')\n" +"" +msgstr "" + +#: ../../howto/regex.rst:509 +msgid "" +"Under the hood, these functions simply create a pattern object for you and " +"call the appropriate method on it. They also store the compiled object in a " +"cache, so future calls using the same RE won't need to parse the pattern " +"again and again." +msgstr "" + +#: ../../howto/regex.rst:514 +msgid "" +"Should you use these module-level functions, or should you get the pattern " +"and call its methods yourself? If you're accessing a regex within a loop, " +"pre-compiling it will save a few function calls. Outside of loops, there's " +"not much difference thanks to the internal cache." +msgstr "" + +#: ../../howto/regex.rst:522 +msgid "Compilation Flags" +msgstr "" + +#: ../../howto/regex.rst:526 +msgid "" +"Compilation flags let you modify some aspects of how regular expressions " +"work. Flags are available in the :mod:`re` module under two names, a long " +"name such as :const:`IGNORECASE` and a short, one-letter form such " +"as :const:`I`. (If you're familiar with Perl's pattern modifiers, the one-" +"letter forms use the same letters; the short form of :const:`re.VERBOSE` " +"is :const:`re.X`, for example.) Multiple flags can be specified by bitwise " +"OR-ing them; ``re.I | re.M`` sets both the :const:`I` and :const:`M` flags, " +"for example." +msgstr "" + +#: ../../howto/regex.rst:534 +msgid "" +"Here's a table of the available flags, followed by a more detailed " +"explanation of each one." +msgstr "" + +#: ../../howto/regex.rst:538 +msgid "Flag" +msgstr "" + +#: ../../howto/regex.rst:538 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../howto/regex.rst:540 +msgid ":const:`ASCII`, :const:`A`" +msgstr "" + +#: ../../howto/regex.rst:540 +msgid "" +"Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " +"on ASCII characters with the respective property." +msgstr "" + +#: ../../howto/regex.rst:544 +msgid ":const:`DOTALL`, :const:`S`" +msgstr "" + +#: ../../howto/regex.rst:544 +msgid "Make ``.`` match any character, including newlines." +msgstr "" + +#: ../../howto/regex.rst:547 +msgid ":const:`IGNORECASE`, :const:`I`" +msgstr "" + +#: ../../howto/regex.rst:547 +msgid "Do case-insensitive matches." +msgstr "" + +#: ../../howto/regex.rst:549 +msgid ":const:`LOCALE`, :const:`L`" +msgstr "" + +#: ../../howto/regex.rst:549 +msgid "Do a locale-aware match." +msgstr "" + +#: ../../howto/regex.rst:551 +msgid ":const:`MULTILINE`, :const:`M`" +msgstr "" + +#: ../../howto/regex.rst:551 +msgid "Multi-line matching, affecting ``^`` and ``$``." +msgstr "" + +#: ../../howto/regex.rst:554 +msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" +msgstr "" + +#: ../../howto/regex.rst:554 +msgid "" +"Enable verbose REs, which can be organized more cleanly and understandably." +msgstr "" + +#: ../../howto/regex.rst:563 +msgid "" +"Perform case-insensitive matching; character class and literal strings will " +"match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " +"letters, too. Full Unicode matching also works unless the :const:`ASCII` " +"flag is used to disable non-ASCII matches. When the Unicode patterns ``[a-" +"z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, " +"they will match the 52 ASCII letters and 4 additional non-ASCII letters: 'İ' " +"(U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin small " +"letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U+212A, " +"Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, ``'spAM'``, or " +"``'ſpam'`` (the latter is matched only in Unicode mode). This lowercasing " +"doesn't take the current locale into account; it will if you also set " +"the :const:`LOCALE` flag." +msgstr "" + +#: ../../howto/regex.rst:581 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " +"dependent on the current locale instead of the Unicode database." +msgstr "" + +#: ../../howto/regex.rst:584 +msgid "" +"Locales are a feature of the C library intended to help in writing programs " +"that take account of language differences. For example, if you're " +"processing encoded French text, you'd want to be able to write ``\\w+`` to " +"match words, but ``\\w`` only matches the character class ``[A-Za-z]`` in " +"bytes patterns; it won't match bytes corresponding to ``é`` or ``ç``. If " +"your system is configured properly and a French locale is selected, certain " +"C functions will tell the program that the byte corresponding to ``é`` " +"should also be considered a letter. Setting the :const:`LOCALE` flag when " +"compiling a regular expression will cause the resulting compiled object to " +"use these C functions for ``\\w``; this is slower, but also enables ``\\w+`` " +"to match French words as you'd expect. The use of this flag is discouraged " +"in Python 3 as the locale mechanism is very unreliable, it only handles one " +"\"culture\" at a time, and it only works with 8-bit locales. Unicode " +"matching is already enabled by default in Python 3 for Unicode (str) " +"patterns, and it is able to handle different locales/languages." +msgstr "" + +#: ../../howto/regex.rst:606 +msgid "" +"(``^`` and ``$`` haven't been explained yet; they'll be introduced in " +"section :ref:`more-metacharacters`.)" +msgstr "" + +#: ../../howto/regex.rst:609 +msgid "" +"Usually ``^`` matches only at the beginning of the string, and ``$`` matches " +"only at the end of the string and immediately before the newline (if any) at " +"the end of the string. When this flag is specified, ``^`` matches at the " +"beginning of the string and at the beginning of each line within the string, " +"immediately following each newline. Similarly, the ``$`` metacharacter " +"matches either at the end of the string and at the end of each line " +"(immediately preceding each newline)." +msgstr "" + +#: ../../howto/regex.rst:622 +msgid "" +"Makes the ``'.'`` special character match any character at all, including a " +"newline; without this flag, ``'.'`` will match anything *except* a newline." +msgstr "" + +#: ../../howto/regex.rst:630 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" +"only matching instead of full Unicode matching. This is only meaningful for " +"Unicode patterns, and is ignored for byte patterns." +msgstr "" + +#: ../../howto/regex.rst:639 +msgid "" +"This flag allows you to write regular expressions that are more readable by " +"granting you more flexibility in how you can format them. When this flag " +"has been specified, whitespace within the RE string is ignored, except when " +"the whitespace is in a character class or preceded by an unescaped " +"backslash; this lets you organize and indent the RE more clearly. This flag " +"also lets you put comments within a RE that will be ignored by the engine; " +"comments are marked by a ``'#'`` that's neither in a character class or " +"preceded by an unescaped backslash." +msgstr "" + +#: ../../howto/regex.rst:648 +msgid "" +"For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " +"it is to read? ::" +msgstr "" + +#: ../../howto/regex.rst:651 +msgid "" +"charref = re.compile(r\"\"\"\n" +" &[#] # Start of a numeric entity reference\n" +" (\n" +" 0[0-7]+ # Octal form\n" +" | [0-9]+ # Decimal form\n" +" | x[0-9a-fA-F]+ # Hexadecimal form\n" +" )\n" +" ; # Trailing semicolon\n" +"\"\"\", re.VERBOSE)" +msgstr "" + +#: ../../howto/regex.rst:661 +msgid "Without the verbose setting, the RE would look like this::" +msgstr "" + +#: ../../howto/regex.rst:663 +msgid "" +"charref = re.compile(\"&#(0[0-7]+\"\n" +" \"|[0-9]+\"\n" +" \"|x[0-9a-fA-F]+);\")" +msgstr "" + +#: ../../howto/regex.rst:667 +msgid "" +"In the above example, Python's automatic concatenation of string literals " +"has been used to break up the RE into smaller pieces, but it's still more " +"difficult to understand than the version using :const:`re.VERBOSE`." +msgstr "" + +#: ../../howto/regex.rst:673 +msgid "More Pattern Power" +msgstr "" + +#: ../../howto/regex.rst:675 +msgid "" +"So far we've only covered a part of the features of regular expressions. In " +"this section, we'll cover some new metacharacters, and how to use groups to " +"retrieve portions of the text that was matched." +msgstr "" + +#: ../../howto/regex.rst:683 +msgid "More Metacharacters" +msgstr "" + +#: ../../howto/regex.rst:685 +msgid "" +"There are some metacharacters that we haven't covered yet. Most of them " +"will be covered in this section." +msgstr "" + +#: ../../howto/regex.rst:688 +msgid "" +"Some of the remaining metacharacters to be discussed are :dfn:`zero-width " +"assertions`. They don't cause the engine to advance through the string; " +"instead, they consume no characters at all, and simply succeed or fail. For " +"example, ``\\b`` is an assertion that the current position is located at a " +"word boundary; the position isn't changed by the ``\\b`` at all. This means " +"that zero-width assertions should never be repeated, because if they match " +"once at a given location, they can obviously be matched an infinite number " +"of times." +msgstr "" + +#: ../../howto/regex.rst:696 +msgid "``|``" +msgstr "``|``" + +#: ../../howto/regex.rst:697 +msgid "" +"Alternation, or the \"or\" operator. If *A* and *B* are regular " +"expressions, ``A|B`` will match any string that matches either *A* or *B*. " +"``|`` has very low precedence in order to make it work reasonably when " +"you're alternating multi-character strings. ``Crow|Servo`` will match either " +"``'Crow'`` or ``'Servo'``, not ``'Cro'``, a ``'w'`` or an ``'S'``, and " +"``'ervo'``." +msgstr "" + +#: ../../howto/regex.rst:703 +msgid "" +"To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " +"class, as in ``[|]``." +msgstr "" + +#: ../../howto/regex.rst:706 +msgid "``^``" +msgstr "``^``" + +#: ../../howto/regex.rst:707 +msgid "" +"Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " +"been set, this will only match at the beginning of the string. " +"In :const:`MULTILINE` mode, this also matches immediately after each newline " +"within the string." +msgstr "" + +#: ../../howto/regex.rst:711 +msgid "" +"For example, if you wish to match the word ``From`` only at the beginning of " +"a line, the RE to use is ``^From``. ::" +msgstr "" + +#: ../../howto/regex.rst:714 +msgid "" +">>> print(re.search('^From', 'From Here to Eternity'))\n" +"\n" +">>> print(re.search('^From', 'Reciting From Memory'))\n" +"None" +msgstr "" + +#: ../../howto/regex.rst:719 +msgid "To match a literal ``'^'``, use ``\\^``." +msgstr "" + +#: ../../howto/regex.rst:721 +msgid "``$``" +msgstr "``$``" + +#: ../../howto/regex.rst:722 +msgid "" +"Matches at the end of a line, which is defined as either the end of the " +"string, or any location followed by a newline character. ::" +msgstr "" + +#: ../../howto/regex.rst:725 +msgid "" +">>> print(re.search('}$', '{block}'))\n" +"\n" +">>> print(re.search('}$', '{block} '))\n" +"None\n" +">>> print(re.search('}$', '{block}\\n'))\n" +"" +msgstr "" + +#: ../../howto/regex.rst:732 +msgid "" +"To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " +"class, as in ``[$]``." +msgstr "" + +#: ../../howto/regex.rst:735 +msgid "``\\A``" +msgstr "``\\A``" + +#: ../../howto/regex.rst:736 +msgid "" +"Matches only at the start of the string. When not in :const:`MULTILINE` " +"mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " +"mode, they're different: ``\\A`` still matches only at the beginning of the " +"string, but ``^`` may match at any location inside the string that follows a " +"newline character." +msgstr "" + +#: ../../howto/regex.rst:741 +msgid "``\\z``" +msgstr "``\\z``" + +#: ../../howto/regex.rst:742 +msgid "Matches only at the end of the string." +msgstr "" + +#: ../../howto/regex.rst:744 +msgid "``\\Z``" +msgstr "``\\Z``" + +#: ../../howto/regex.rst:745 +msgid "The same as ``\\z``. For compatibility with old Python versions." +msgstr "" + +#: ../../howto/regex.rst:747 +msgid "``\\b``" +msgstr "``\\b``" + +#: ../../howto/regex.rst:748 +msgid "" +"Word boundary. This is a zero-width assertion that matches only at the " +"beginning or end of a word. A word is defined as a sequence of alphanumeric " +"characters, so the end of a word is indicated by whitespace or a non-" +"alphanumeric character." +msgstr "" + +#: ../../howto/regex.rst:753 +msgid "" +"The following example matches ``class`` only when it's a complete word; it " +"won't match when it's contained inside another word. ::" +msgstr "" + +#: ../../howto/regex.rst:756 +msgid "" +">>> p = re.compile(r'\\bclass\\b')\n" +">>> print(p.search('no class at all'))\n" +"\n" +">>> print(p.search('the declassified algorithm'))\n" +"None\n" +">>> print(p.search('one subclass is'))\n" +"None" +msgstr "" + +#: ../../howto/regex.rst:764 +msgid "" +"There are two subtleties you should remember when using this special " +"sequence. First, this is the worst collision between Python's string " +"literals and regular expression sequences. In Python's string literals, " +"``\\b`` is the backspace character, ASCII value 8. If you're not using raw " +"strings, then Python will convert the ``\\b`` to a backspace, and your RE " +"won't match as you expect it to. The following example looks the same as our " +"previous RE, but omits the ``'r'`` in front of the RE string. ::" +msgstr "" + +#: ../../howto/regex.rst:772 +msgid "" +">>> p = re.compile('\\bclass\\b')\n" +">>> print(p.search('no class at all'))\n" +"None\n" +">>> print(p.search('\\b' + 'class' + '\\b'))\n" +"" +msgstr "" + +#: ../../howto/regex.rst:778 +msgid "" +"Second, inside a character class, where there's no use for this assertion, " +"``\\b`` represents the backspace character, for compatibility with Python's " +"string literals." +msgstr "" + +#: ../../howto/regex.rst:782 +msgid "``\\B``" +msgstr "``\\B``" + +#: ../../howto/regex.rst:783 +msgid "" +"Another zero-width assertion, this is the opposite of ``\\b``, only matching " +"when the current position is not at a word boundary." +msgstr "" + +#: ../../howto/regex.rst:788 +msgid "Grouping" +msgstr "" + +#: ../../howto/regex.rst:790 +msgid "" +"Frequently you need to obtain more information than just whether the RE " +"matched or not. Regular expressions are often used to dissect strings by " +"writing a RE divided into several subgroups which match different components " +"of interest. For example, an RFC-822 header line is divided into a header " +"name and a value, separated by a ``':'``, like this:" +msgstr "" + +#: ../../howto/regex.rst:796 +msgid "" +"From: author@example.com\n" +"User-Agent: Thunderbird 1.5.0.9 (X11/20061227)\n" +"MIME-Version: 1.0\n" +"To: editor@example.com" +msgstr "" + +#: ../../howto/regex.rst:803 +msgid "" +"This can be handled by writing a regular expression which matches an entire " +"header line, and has one group which matches the header name, and another " +"group which matches the header's value." +msgstr "" + +#: ../../howto/regex.rst:807 +msgid "" +"Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " +"``')'`` have much the same meaning as they do in mathematical expressions; " +"they group together the expressions contained inside them, and you can " +"repeat the contents of a group with a quantifier, such as ``*``, ``+``, ``?" +"``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " +"repetitions of ``ab``. ::" +msgstr "" + +#: ../../howto/regex.rst:814 +msgid "" +">>> p = re.compile('(ab)*')\n" +">>> print(p.match('ababababab').span())\n" +"(0, 10)" +msgstr "" + +#: ../../howto/regex.rst:818 +msgid "" +"Groups indicated with ``'('``, ``')'`` also capture the starting and ending " +"index of the text that they match; this can be retrieved by passing an " +"argument " +"to :meth:`~re.Match.group`, :meth:`~re.Match.start`, :meth:`~re.Match.end`, " +"and :meth:`~re.Match.span`. Groups are numbered starting with 0. Group 0 " +"is always present; it's the whole RE, so :ref:`match object ` " +"methods all have group 0 as their default argument. Later we'll see how to " +"express groups that don't capture the span of text that they match. ::" +msgstr "" + +#: ../../howto/regex.rst:827 +msgid "" +">>> p = re.compile('(a)b')\n" +">>> m = p.match('ab')\n" +">>> m.group()\n" +"'ab'\n" +">>> m.group(0)\n" +"'ab'" +msgstr "" + +#: ../../howto/regex.rst:834 +msgid "" +"Subgroups are numbered from left to right, from 1 upward. Groups can be " +"nested; to determine the number, just count the opening parenthesis " +"characters, going from left to right. ::" +msgstr "" + +#: ../../howto/regex.rst:838 +msgid "" +">>> p = re.compile('(a(b)c)d')\n" +">>> m = p.match('abcd')\n" +">>> m.group(0)\n" +"'abcd'\n" +">>> m.group(1)\n" +"'abc'\n" +">>> m.group(2)\n" +"'b'" +msgstr "" + +#: ../../howto/regex.rst:847 +msgid "" +":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " +"which case it will return a tuple containing the corresponding values for " +"those groups. ::" +msgstr "" + +#: ../../howto/regex.rst:850 +msgid "" +">>> m.group(2,1,2)\n" +"('b', 'abc', 'b')" +msgstr "" + +#: ../../howto/regex.rst:853 +msgid "" +"The :meth:`~re.Match.groups` method returns a tuple containing the strings " +"for all the subgroups, from 1 up to however many there are. ::" +msgstr "" + +#: ../../howto/regex.rst:856 +msgid "" +">>> m.groups()\n" +"('abc', 'b')" +msgstr "" + +#: ../../howto/regex.rst:859 +msgid "" +"Backreferences in a pattern allow you to specify that the contents of an " +"earlier capturing group must also be found at the current location in the " +"string. For example, ``\\1`` will succeed if the exact contents of group 1 " +"can be found at the current position, and fails otherwise. Remember that " +"Python's string literals also use a backslash followed by numbers to allow " +"including arbitrary characters in a string, so be sure to use a raw string " +"when incorporating backreferences in a RE." +msgstr "" + +#: ../../howto/regex.rst:867 +msgid "For example, the following RE detects doubled words in a string. ::" +msgstr "" + +#: ../../howto/regex.rst:869 +msgid "" +">>> p = re.compile(r'\\b(\\w+)\\s+\\1\\b')\n" +">>> p.search('Paris in the the spring').group()\n" +"'the the'" +msgstr "" + +#: ../../howto/regex.rst:873 +msgid "" +"Backreferences like this aren't often useful for just searching through a " +"string --- there are few text formats which repeat data in this way --- but " +"you'll soon find out that they're *very* useful when performing string " +"substitutions." +msgstr "" + +#: ../../howto/regex.rst:879 +msgid "Non-capturing and Named Groups" +msgstr "" + +#: ../../howto/regex.rst:881 +msgid "" +"Elaborate REs may use many groups, both to capture substrings of interest, " +"and to group and structure the RE itself. In complex REs, it becomes " +"difficult to keep track of the group numbers. There are two features which " +"help with this problem. Both of them use a common syntax for regular " +"expression extensions, so we'll look at that first." +msgstr "" + +#: ../../howto/regex.rst:887 +msgid "" +"Perl 5 is well known for its powerful additions to standard regular " +"expressions. For these new features the Perl developers couldn't choose new " +"single-keystroke metacharacters or new special sequences beginning with " +"``\\`` without making Perl's regular expressions confusingly different from " +"standard REs. If they chose ``&`` as a new metacharacter, for example, old " +"expressions would be assuming that ``&`` was a regular character and " +"wouldn't have escaped it by writing ``\\&`` or ``[&]``." +msgstr "" + +#: ../../howto/regex.rst:894 +msgid "" +"The solution chosen by the Perl developers was to use ``(?...)`` as the " +"extension syntax. ``?`` immediately after a parenthesis was a syntax error " +"because the ``?`` would have nothing to repeat, so this didn't introduce any " +"compatibility problems. The characters immediately after the ``?`` " +"indicate what extension is being used, so ``(?=foo)`` is one thing (a " +"positive lookahead assertion) and ``(?:foo)`` is something else (a non-" +"capturing group containing the subexpression ``foo``)." +msgstr "" + +#: ../../howto/regex.rst:902 +msgid "" +"Python supports several of Perl's extensions and adds an extension syntax to " +"Perl's extension syntax. If the first character after the question mark is " +"a ``P``, you know that it's an extension that's specific to Python." +msgstr "" + +#: ../../howto/regex.rst:907 +msgid "" +"Now that we've looked at the general extension syntax, we can return to the " +"features that simplify working with groups in complex REs." +msgstr "" + +#: ../../howto/regex.rst:910 +msgid "" +"Sometimes you'll want to use a group to denote a part of a regular " +"expression, but aren't interested in retrieving the group's contents. You " +"can make this fact explicit by using a non-capturing group: ``(?:...)``, " +"where you can replace the ``...`` with any other regular expression. ::" +msgstr "" + +#: ../../howto/regex.rst:915 +msgid "" +">>> m = re.match(\"([abc])+\", \"abc\")\n" +">>> m.groups()\n" +"('c',)\n" +">>> m = re.match(\"(?:[abc])+\", \"abc\")\n" +">>> m.groups()\n" +"()" +msgstr "" + +#: ../../howto/regex.rst:922 +msgid "" +"Except for the fact that you can't retrieve the contents of what the group " +"matched, a non-capturing group behaves exactly the same as a capturing " +"group; you can put anything inside it, repeat it with a repetition " +"metacharacter such as ``*``, and nest it within other groups (capturing or " +"non-capturing). ``(?:...)`` is particularly useful when modifying an " +"existing pattern, since you can add new groups without changing how all the " +"other groups are numbered. It should be mentioned that there's no " +"performance difference in searching between capturing and non-capturing " +"groups; neither form is any faster than the other." +msgstr "" + +#: ../../howto/regex.rst:931 +msgid "" +"A more significant feature is named groups: instead of referring to them by " +"numbers, groups can be referenced by a name." +msgstr "" + +#: ../../howto/regex.rst:934 +msgid "" +"The syntax for a named group is one of the Python-specific extensions: ``(?" +"P...)``. *name* is, obviously, the name of the group. Named groups " +"behave exactly like capturing groups, and additionally associate a name with " +"a group. The :ref:`match object ` methods that deal with " +"capturing groups all accept either integers that refer to the group by " +"number or strings that contain the desired group's name. Named groups are " +"still given numbers, so you can retrieve information about a group in two " +"ways::" +msgstr "" + +#: ../../howto/regex.rst:942 +msgid "" +">>> p = re.compile(r'(?P\\b\\w+\\b)')\n" +">>> m = p.search( '(((( Lots of punctuation )))' )\n" +">>> m.group('word')\n" +"'Lots'\n" +">>> m.group(1)\n" +"'Lots'" +msgstr "" + +#: ../../howto/regex.rst:949 +msgid "" +"Additionally, you can retrieve named groups as a dictionary " +"with :meth:`~re.Match.groupdict`::" +msgstr "" + +#: ../../howto/regex.rst:952 +msgid "" +">>> m = re.match(r'(?P\\w+) (?P\\w+)', 'Jane Doe')\n" +">>> m.groupdict()\n" +"{'first': 'Jane', 'last': 'Doe'}" +msgstr "" + +#: ../../howto/regex.rst:956 +msgid "" +"Named groups are handy because they let you use easily remembered names, " +"instead of having to remember numbers. Here's an example RE from " +"the :mod:`imaplib` module::" +msgstr "" + +#: ../../howto/regex.rst:960 +msgid "" +"InternalDate = re.compile(r'INTERNALDATE \"'\n" +" r'(?P[ 123][0-9])-(?P[A-Z][a-z][a-z])-'\n" +" r'(?P[0-9][0-9][0-9][0-9])'\n" +" r' (?P[0-9][0-9]):(?P[0-9][0-9]):(?P[0-9][0-9])'\n" +" r' (?P[-+])(?P[0-9][0-9])(?P[0-9][0-9])'\n" +" r'\"')" +msgstr "" + +#: ../../howto/regex.rst:967 +msgid "" +"It's obviously much easier to retrieve ``m.group('zonem')``, instead of " +"having to remember to retrieve group 9." +msgstr "" + +#: ../../howto/regex.rst:970 +msgid "" +"The syntax for backreferences in an expression such as ``(...)\\1`` refers " +"to the number of the group. There's naturally a variant that uses the group " +"name instead of the number. This is another Python extension: ``(?P=name)`` " +"indicates that the contents of the group called *name* should again be " +"matched at the current point. The regular expression for finding doubled " +"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s+" +"(?P=word)\\b``::" +msgstr "" + +#: ../../howto/regex.rst:977 +msgid "" +">>> p = re.compile(r'\\b(?P\\w+)\\s+(?P=word)\\b')\n" +">>> p.search('Paris in the the spring').group()\n" +"'the the'" +msgstr "" + +#: ../../howto/regex.rst:983 +msgid "Lookahead Assertions" +msgstr "" + +#: ../../howto/regex.rst:985 +msgid "" +"Another zero-width assertion is the lookahead assertion. Lookahead " +"assertions are available in both positive and negative form, and look like " +"this:" +msgstr "" + +#: ../../howto/regex.rst:988 +msgid "``(?=...)``" +msgstr "``(?=...)``" + +#: ../../howto/regex.rst:989 +msgid "" +"Positive lookahead assertion. This succeeds if the contained regular " +"expression, represented here by ``...``, successfully matches at the current " +"location, and fails otherwise. But, once the contained expression has been " +"tried, the matching engine doesn't advance at all; the rest of the pattern " +"is tried right where the assertion started." +msgstr "" + +#: ../../howto/regex.rst:995 +msgid "``(?!...)``" +msgstr "``(?!...)``" + +#: ../../howto/regex.rst:996 +msgid "" +"Negative lookahead assertion. This is the opposite of the positive " +"assertion; it succeeds if the contained expression *doesn't* match at the " +"current position in the string." +msgstr "" + +#: ../../howto/regex.rst:1000 +msgid "" +"To make this concrete, let's look at a case where a lookahead is useful. " +"Consider a simple pattern to match a filename and split it apart into a base " +"name and an extension, separated by a ``.``. For example, in ``news.rc``, " +"``news`` is the base name, and ``rc`` is the filename's extension." +msgstr "" + +#: ../../howto/regex.rst:1005 +msgid "The pattern to match this is quite simple:" +msgstr "" + +#: ../../howto/regex.rst:1007 +msgid "``.*[.].*$``" +msgstr "``.*[.].*$``" + +#: ../../howto/regex.rst:1009 +msgid "" +"Notice that the ``.`` needs to be treated specially because it's a " +"metacharacter, so it's inside a character class to only match that specific " +"character. Also notice the trailing ``$``; this is added to ensure that all " +"the rest of the string must be included in the extension. This regular " +"expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and " +"``printers.conf``." +msgstr "" + +#: ../../howto/regex.rst:1016 +msgid "" +"Now, consider complicating the problem a bit; what if you want to match " +"filenames where the extension is not ``bat``? Some incorrect attempts:" +msgstr "" + +#: ../../howto/regex.rst:1019 +msgid "``.*[.][^b].*$``" +msgstr "``.*[.][^b].*$``" + +#: ../../howto/regex.rst:1021 +msgid "" +"The first attempt above tries to exclude ``bat`` by requiring that the first " +"character of the extension is not a ``b``. This is wrong, because the " +"pattern also doesn't match ``foo.bar``." +msgstr "" + +#: ../../howto/regex.rst:1025 +msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" +msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" + +#: ../../howto/regex.rst:1027 +msgid "" +"The expression gets messier when you try to patch up the first solution by " +"requiring one of the following cases to match: the first character of the " +"extension isn't ``b``; the second character isn't ``a``; or the third " +"character isn't ``t``. This accepts ``foo.bar`` and rejects " +"``autoexec.bat``, but it requires a three-letter extension and won't accept " +"a filename with a two-letter extension such as ``sendmail.cf``. We'll " +"complicate the pattern again in an effort to fix it." +msgstr "" + +#: ../../howto/regex.rst:1035 +msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" +msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" + +#: ../../howto/regex.rst:1037 +msgid "" +"In the third attempt, the second and third letters are all made optional in " +"order to allow matching extensions shorter than three characters, such as " +"``sendmail.cf``." +msgstr "" + +#: ../../howto/regex.rst:1041 +msgid "" +"The pattern's getting really complicated now, which makes it hard to read " +"and understand. Worse, if the problem changes and you want to exclude both " +"``bat`` and ``exe`` as extensions, the pattern would get even more " +"complicated and confusing." +msgstr "" + +#: ../../howto/regex.rst:1046 +msgid "A negative lookahead cuts through all this confusion:" +msgstr "" + +#: ../../howto/regex.rst:1048 +msgid "``.*[.](?!bat$)[^.]*$``" +msgstr "``.*[.](?!bat$)[^.]*$``" + +#: ../../howto/regex.rst:1050 +msgid "" +"The negative lookahead means: if the expression ``bat`` doesn't match at " +"this point, try the rest of the pattern; if ``bat$`` does match, the whole " +"pattern will fail. The trailing ``$`` is required to ensure that something " +"like ``sample.batch``, where the extension only starts with ``bat``, will be " +"allowed. The ``[^.]*`` makes sure that the pattern works when there are " +"multiple dots in the filename." +msgstr "" + +#: ../../howto/regex.rst:1057 +msgid "" +"Excluding another filename extension is now easy; simply add it as an " +"alternative inside the assertion. The following pattern excludes filenames " +"that end in either ``bat`` or ``exe``:" +msgstr "" + +#: ../../howto/regex.rst:1061 +msgid "``.*[.](?!bat$|exe$)[^.]*$``" +msgstr "``.*[.](?!bat$|exe$)[^.]*$``" + +#: ../../howto/regex.rst:1065 +msgid "Modifying Strings" +msgstr "" + +#: ../../howto/regex.rst:1067 +msgid "" +"Up to this point, we've simply performed searches against a static string. " +"Regular expressions are also commonly used to modify strings in various " +"ways, using the following pattern methods:" +msgstr "" + +#: ../../howto/regex.rst:1074 +msgid "``split()``" +msgstr "``split()``" + +#: ../../howto/regex.rst:1074 +msgid "Split the string into a list, splitting it wherever the RE matches" +msgstr "" + +#: ../../howto/regex.rst:1077 +msgid "``sub()``" +msgstr "``sub()``" + +#: ../../howto/regex.rst:1077 +msgid "" +"Find all substrings where the RE matches, and replace them with a different " +"string" +msgstr "" + +#: ../../howto/regex.rst:1080 +msgid "``subn()``" +msgstr "``subn()``" + +#: ../../howto/regex.rst:1080 +msgid "" +"Does the same thing as :meth:`!sub`, but returns the new string and the " +"number of replacements" +msgstr "" + +#: ../../howto/regex.rst:1087 +msgid "Splitting Strings" +msgstr "" + +#: ../../howto/regex.rst:1089 +msgid "" +"The :meth:`~re.Pattern.split` method of a pattern splits a string apart " +"wherever the RE matches, returning a list of the pieces. It's similar to " +"the :meth:`~str.split` method of strings but provides much more generality " +"in the delimiters that you can split by; string :meth:`!split` only supports " +"splitting by whitespace or by a fixed string. As you'd expect, there's a " +"module-level :func:`re.split` function, too." +msgstr "" + +#: ../../howto/regex.rst:1100 +msgid "" +"Split *string* by the matches of the regular expression. If capturing " +"parentheses are used in the RE, then their contents will also be returned as " +"part of the resulting list. If *maxsplit* is nonzero, at most *maxsplit* " +"splits are performed." +msgstr "" + +#: ../../howto/regex.rst:1105 +msgid "" +"You can limit the number of splits made, by passing a value for *maxsplit*. " +"When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " +"remainder of the string is returned as the final element of the list. In " +"the following example, the delimiter is any sequence of non-alphanumeric " +"characters. ::" +msgstr "" + +#: ../../howto/regex.rst:1111 +msgid "" +">>> p = re.compile(r'\\W+')\n" +">>> p.split('This is a test, short and sweet, of split().')\n" +"['This', 'is', 'a', 'test', 'short', 'and', 'sweet', 'of', 'split', '']\n" +">>> p.split('This is a test, short and sweet, of split().', 3)\n" +"['This', 'is', 'a', 'test, short and sweet, of split().']" +msgstr "" + +#: ../../howto/regex.rst:1117 +msgid "" +"Sometimes you're not only interested in what the text between delimiters is, " +"but also need to know what the delimiter was. If capturing parentheses are " +"used in the RE, then their values are also returned as part of the list. " +"Compare the following calls::" +msgstr "" + +#: ../../howto/regex.rst:1122 +msgid "" +">>> p = re.compile(r'\\W+')\n" +">>> p2 = re.compile(r'(\\W+)')\n" +">>> p.split('This... is a test.')\n" +"['This', 'is', 'a', 'test', '']\n" +">>> p2.split('This... is a test.')\n" +"['This', '... ', 'is', ' ', 'a', ' ', 'test', '.', '']" +msgstr "" + +#: ../../howto/regex.rst:1129 +msgid "" +"The module-level function :func:`re.split` adds the RE to be used as the " +"first argument, but is otherwise the same. ::" +msgstr "" + +#: ../../howto/regex.rst:1132 +msgid "" +">>> re.split(r'[\\W]+', 'Words, words, words.')\n" +"['Words', 'words', 'words', '']\n" +">>> re.split(r'([\\W]+)', 'Words, words, words.')\n" +"['Words', ', ', 'words', ', ', 'words', '.', '']\n" +">>> re.split(r'[\\W]+', 'Words, words, words.', 1)\n" +"['Words', 'words, words.']" +msgstr "" + +#: ../../howto/regex.rst:1141 +msgid "Search and Replace" +msgstr "" + +#: ../../howto/regex.rst:1143 +msgid "" +"Another common task is to find all the matches for a pattern, and replace " +"them with a different string. The :meth:`~re.Pattern.sub` method takes a " +"replacement value, which can be either a string or a function, and the " +"string to be processed." +msgstr "" + +#: ../../howto/regex.rst:1150 +msgid "" +"Returns the string obtained by replacing the leftmost non-overlapping " +"occurrences of the RE in *string* by the replacement *replacement*. If the " +"pattern isn't found, *string* is returned unchanged." +msgstr "" + +#: ../../howto/regex.rst:1154 +msgid "" +"The optional argument *count* is the maximum number of pattern occurrences " +"to be replaced; *count* must be a non-negative integer. The default value " +"of 0 means to replace all occurrences." +msgstr "" + +#: ../../howto/regex.rst:1158 +msgid "" +"Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " +"replaces colour names with the word ``colour``::" +msgstr "" + +#: ../../howto/regex.rst:1161 +msgid "" +">>> p = re.compile('(blue|white|red)')\n" +">>> p.sub('colour', 'blue socks and red shoes')\n" +"'colour socks and colour shoes'\n" +">>> p.sub('colour', 'blue socks and red shoes', count=1)\n" +"'colour socks and red shoes'" +msgstr "" + +#: ../../howto/regex.rst:1167 +msgid "" +"The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" +"tuple containing the new string value and the number of replacements that " +"were performed::" +msgstr "" + +#: ../../howto/regex.rst:1170 +msgid "" +">>> p = re.compile('(blue|white|red)')\n" +">>> p.subn('colour', 'blue socks and red shoes')\n" +"('colour socks and colour shoes', 2)\n" +">>> p.subn('colour', 'no colours at all')\n" +"('no colours at all', 0)" +msgstr "" + +#: ../../howto/regex.rst:1176 +msgid "" +"Empty matches are replaced only when they're not adjacent to a previous " +"empty match. ::" +msgstr "" + +#: ../../howto/regex.rst:1179 +msgid "" +">>> p = re.compile('x*')\n" +">>> p.sub('-', 'abxd')\n" +"'-a-b--d-'" +msgstr "" + +#: ../../howto/regex.rst:1183 +msgid "" +"If *replacement* is a string, any backslash escapes in it are processed. " +"That is, ``\\n`` is converted to a single newline character, ``\\r`` is " +"converted to a carriage return, and so forth. Unknown escapes such as " +"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with " +"the substring matched by the corresponding group in the RE. This lets you " +"incorporate portions of the original text in the resulting replacement " +"string." +msgstr "" + +#: ../../howto/regex.rst:1190 +msgid "" +"This example matches the word ``section`` followed by a string enclosed in " +"``{``, ``}``, and changes ``section`` to ``subsection``::" +msgstr "" + +#: ../../howto/regex.rst:1193 +msgid "" +">>> p = re.compile('section{ ( [^}]* ) }', re.VERBOSE)\n" +">>> p.sub(r'subsection{\\1}','section{First} section{second}')\n" +"'subsection{First} subsection{second}'" +msgstr "" + +#: ../../howto/regex.rst:1197 +msgid "" +"There's also a syntax for referring to named groups as defined by the ``(?" +"P...)`` syntax. ``\\g`` will use the substring matched by the " +"group named ``name``, and ``\\g`` uses the corresponding group " +"number. ``\\g<2>`` is therefore equivalent to ``\\2``, but isn't ambiguous " +"in a replacement string such as ``\\g<2>0``. (``\\20`` would be interpreted " +"as a reference to group 20, not a reference to group 2 followed by the " +"literal character ``'0'``.) The following substitutions are all equivalent, " +"but use all three variations of the replacement string. ::" +msgstr "" + +#: ../../howto/regex.rst:1206 +msgid "" +">>> p = re.compile('section{ (?P [^}]* ) }', re.VERBOSE)\n" +">>> p.sub(r'subsection{\\1}','section{First}')\n" +"'subsection{First}'\n" +">>> p.sub(r'subsection{\\g<1>}','section{First}')\n" +"'subsection{First}'\n" +">>> p.sub(r'subsection{\\g}','section{First}')\n" +"'subsection{First}'" +msgstr "" + +#: ../../howto/regex.rst:1214 +msgid "" +"*replacement* can also be a function, which gives you even more control. If " +"*replacement* is a function, the function is called for every non-" +"overlapping occurrence of *pattern*. On each call, the function is passed " +"a :ref:`match object ` argument for the match and can use " +"this information to compute the desired replacement string and return it." +msgstr "" + +#: ../../howto/regex.rst:1220 +msgid "" +"In the following example, the replacement function translates decimals into " +"hexadecimal::" +msgstr "" + +#: ../../howto/regex.rst:1223 +msgid "" +">>> def hexrepl(match):\n" +"... \"Return the hex string for a decimal number\"\n" +"... value = int(match.group())\n" +"... return hex(value)\n" +"...\n" +">>> p = re.compile(r'\\d+')\n" +">>> p.sub(hexrepl, 'Call 65490 for printing, 49152 for user code.')\n" +"'Call 0xffd2 for printing, 0xc000 for user code.'" +msgstr "" + +#: ../../howto/regex.rst:1232 +msgid "" +"When using the module-level :func:`re.sub` function, the pattern is passed " +"as the first argument. The pattern may be provided as an object or as a " +"string; if you need to specify regular expression flags, you must either use " +"a pattern object as the first parameter, or use embedded modifiers in the " +"pattern string, e.g. ``sub(\"(?i)b+\", \"x\", \"bbbb BBBB\")`` returns ``'x " +"x'``." +msgstr "" + +#: ../../howto/regex.rst:1240 +msgid "Common Problems" +msgstr "" + +#: ../../howto/regex.rst:1242 +msgid "" +"Regular expressions are a powerful tool for some applications, but in some " +"ways their behaviour isn't intuitive and at times they don't behave the way " +"you may expect them to. This section will point out some of the most common " +"pitfalls." +msgstr "" + +#: ../../howto/regex.rst:1248 +msgid "Use String Methods" +msgstr "" + +#: ../../howto/regex.rst:1250 +msgid "" +"Sometimes using the :mod:`re` module is a mistake. If you're matching a " +"fixed string, or a single character class, and you're not using " +"any :mod:`re` features such as the :const:`~re.IGNORECASE` flag, then the " +"full power of regular expressions may not be required. Strings have several " +"methods for performing operations with fixed strings and they're usually " +"much faster, because the implementation is a single small C loop that's been " +"optimized for the purpose, instead of the large, more generalized regular " +"expression engine." +msgstr "" + +#: ../../howto/regex.rst:1258 +msgid "" +"One example might be replacing a single fixed string with another one; for " +"example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " +"like the function to use for this, but consider the :meth:`~str.replace` " +"method. Note that :meth:`!replace` will also replace ``word`` inside words, " +"turning ``swordfish`` into ``sdeedfish``, but the naive RE ``word`` would " +"have done that, too. (To avoid performing the substitution on parts of " +"words, the pattern would have to be ``\\bword\\b``, in order to require that " +"``word`` have a word boundary on either side. This takes the job " +"beyond :meth:`!replace`'s abilities.)" +msgstr "" + +#: ../../howto/regex.rst:1267 +msgid "" +"Another common task is deleting every occurrence of a single character from " +"a string or replacing it with another single character. You might do this " +"with something like ``re.sub('\\n', ' ', S)``, but :meth:`~str.translate` is " +"capable of doing both tasks and will be faster than any regular expression " +"operation can be." +msgstr "" + +#: ../../howto/regex.rst:1273 +msgid "" +"In short, before turning to the :mod:`re` module, consider whether your " +"problem can be solved with a faster and simpler string method." +msgstr "" + +#: ../../howto/regex.rst:1278 +msgid "match() versus search()" +msgstr "" + +#: ../../howto/regex.rst:1280 +msgid "" +"The :func:`~re.match` function only checks if the RE matches at the " +"beginning of the string while :func:`~re.search` will scan forward through " +"the string for a match. It's important to keep this distinction in mind. " +"Remember, :func:`!match` will only report a successful match which will " +"start at 0; if the match wouldn't start at zero, :func:`!match` will *not* " +"report it. ::" +msgstr "" + +#: ../../howto/regex.rst:1286 +msgid "" +">>> print(re.match('super', 'superstition').span())\n" +"(0, 5)\n" +">>> print(re.match('super', 'insuperable'))\n" +"None" +msgstr "" + +#: ../../howto/regex.rst:1291 +msgid "" +"On the other hand, :func:`~re.search` will scan forward through the string, " +"reporting the first match it finds. ::" +msgstr "" + +#: ../../howto/regex.rst:1294 +msgid "" +">>> print(re.search('super', 'superstition').span())\n" +"(0, 5)\n" +">>> print(re.search('super', 'insuperable').span())\n" +"(2, 7)" +msgstr "" + +#: ../../howto/regex.rst:1299 +msgid "" +"Sometimes you'll be tempted to keep using :func:`re.match`, and just add " +"``.*`` to the front of your RE. Resist this temptation and " +"use :func:`re.search` instead. The regular expression compiler does some " +"analysis of REs in order to speed up the process of looking for a match. " +"One such analysis figures out what the first character of a match must be; " +"for example, a pattern starting with ``Crow`` must match starting with a " +"``'C'``. The analysis lets the engine quickly scan through the string " +"looking for the starting character, only trying the full match if a ``'C'`` " +"is found." +msgstr "" + +#: ../../howto/regex.rst:1308 +msgid "" +"Adding ``.*`` defeats this optimization, requiring scanning to the end of " +"the string and then backtracking to find a match for the rest of the RE. " +"Use :func:`re.search` instead." +msgstr "" + +#: ../../howto/regex.rst:1314 +msgid "Greedy versus Non-Greedy" +msgstr "" + +#: ../../howto/regex.rst:1316 +msgid "" +"When repeating a regular expression, as in ``a*``, the resulting action is " +"to consume as much of the pattern as possible. This fact often bites you " +"when you're trying to match a pair of balanced delimiters, such as the angle " +"brackets surrounding an HTML tag. The naive pattern for matching a single " +"HTML tag doesn't work because of the greedy nature of ``.*``. ::" +msgstr "" + +#: ../../howto/regex.rst:1322 +msgid "" +">>> s = 'Title'\n" +">>> len(s)\n" +"32\n" +">>> print(re.match('<.*>', s).span())\n" +"(0, 32)\n" +">>> print(re.match('<.*>', s).group())\n" +"Title" +msgstr "" + +#: ../../howto/regex.rst:1330 +msgid "" +"The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " +"of the string. There's still more left in the RE, though, and the ``>`` " +"can't match at the end of the string, so the regular expression engine has " +"to backtrack character by character until it finds a match for the ``>``. " +"The final match extends from the ``'<'`` in ``''`` to the ``'>'`` in " +"``''``, which isn't what you want." +msgstr "" + +#: ../../howto/regex.rst:1337 +msgid "" +"In this case, the solution is to use the non-greedy quantifiers ``*?``, ``+?" +"``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " +"above example, the ``'>'`` is tried immediately after the first ``'<'`` " +"matches, and when it fails, the engine advances a character at a time, " +"retrying the ``'>'`` at every step. This produces just the right result::" +msgstr "" + +#: ../../howto/regex.rst:1343 +msgid "" +">>> print(re.match('<.*?>', s).group())\n" +"" +msgstr "" + +#: ../../howto/regex.rst:1346 +msgid "" +"(Note that parsing HTML or XML with regular expressions is painful. Quick-" +"and-dirty patterns will handle common cases, but HTML and XML have special " +"cases that will break the obvious regular expression; by the time you've " +"written a regular expression that handles all of the possible cases, the " +"patterns will be *very* complicated. Use an HTML or XML parser module for " +"such tasks.)" +msgstr "" + +#: ../../howto/regex.rst:1354 +msgid "Using re.VERBOSE" +msgstr "" + +#: ../../howto/regex.rst:1356 +msgid "" +"By now you've probably noticed that regular expressions are a very compact " +"notation, but they're not terribly readable. REs of moderate complexity can " +"become lengthy collections of backslashes, parentheses, and metacharacters, " +"making them difficult to read and understand." +msgstr "" + +#: ../../howto/regex.rst:1361 +msgid "" +"For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " +"regular expression can be helpful, because it allows you to format the " +"regular expression more clearly." +msgstr "" + +#: ../../howto/regex.rst:1365 +msgid "" +"The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " +"expression that *isn't* inside a character class is ignored. This means " +"that an expression such as ``dog | cat`` is equivalent to the less readable " +"``dog|cat``, but ``[a b]`` will still match the characters ``'a'``, ``'b'``, " +"or a space. In addition, you can also put comments inside a RE; comments " +"extend from a ``#`` character to the next newline. When used with triple-" +"quoted strings, this enables REs to be formatted more neatly::" +msgstr "" + +#: ../../howto/regex.rst:1373 +msgid "" +"pat = re.compile(r\"\"\"\n" +" \\s* # Skip leading whitespace\n" +" (?P
[^:]+) # Header name\n" +" \\s* : # Whitespace, and a colon\n" +" (?P.*?) # The header's value -- *? used to\n" +" # lose the following trailing whitespace\n" +" \\s*$ # Trailing whitespace to end-of-line\n" +"\"\"\", re.VERBOSE)" +msgstr "" + +#: ../../howto/regex.rst:1382 +msgid "This is far more readable than::" +msgstr "" + +#: ../../howto/regex.rst:1384 +msgid "pat = re.compile(r\"\\s*(?P
[^:]+)\\s*:(?P.*?)\\s*$\")" +msgstr "" + +#: ../../howto/regex.rst:1388 +msgid "Feedback" +msgstr "" + +#: ../../howto/regex.rst:1390 +msgid "" +"Regular expressions are a complicated topic. Did this document help you " +"understand them? Were there parts that were unclear, or Problems you " +"encountered that weren't covered here? If so, please send suggestions for " +"improvements to the author." +msgstr "" + +#: ../../howto/regex.rst:1395 +msgid "" +"The most complete book on regular expressions is almost certainly Jeffrey " +"Friedl's Mastering Regular Expressions, published by O'Reilly. " +"Unfortunately, it exclusively concentrates on Perl and Java's flavours of " +"regular expressions, and doesn't contain any Python material at all, so it " +"won't be useful as a reference for programming in Python. (The first " +"edition covered Python's now-removed :mod:`!regex` module, which won't help " +"you much.) Consider checking it out from your library." +msgstr "" diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po new file mode 100644 index 0000000..814e9b4 --- /dev/null +++ b/howto/remote_debugging.po @@ -0,0 +1,851 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/remote_debugging.rst:4 +msgid "Remote debugging attachment protocol" +msgstr "" + +#: ../../howto/remote_debugging.rst:6 +msgid "" +"This section describes the low-level protocol that enables external tools to " +"inject and execute a Python script within a running CPython process." +msgstr "" + +#: ../../howto/remote_debugging.rst:9 +msgid "" +"This mechanism forms the basis of the :func:`sys.remote_exec` function, " +"which instructs a remote Python process to execute a ``.py`` file. However, " +"this section does not document the usage of that function. Instead, it " +"provides a detailed explanation of the underlying protocol, which takes as " +"input the ``pid`` of a target Python process and the path to a Python source " +"file to be executed. This information supports independent reimplementation " +"of the protocol, regardless of programming language." +msgstr "" + +#: ../../howto/remote_debugging.rst:19 +msgid "" +"The execution of the injected script depends on the interpreter reaching a " +"safe evaluation point. As a result, execution may be delayed depending on " +"the runtime state of the target process." +msgstr "" + +#: ../../howto/remote_debugging.rst:23 +msgid "" +"Once injected, the script is executed by the interpreter within the target " +"process the next time a safe evaluation point is reached. This approach " +"enables remote execution capabilities without modifying the behavior or " +"structure of the running Python application." +msgstr "" + +#: ../../howto/remote_debugging.rst:28 +msgid "" +"Subsequent sections provide a step-by-step description of the protocol, " +"including techniques for locating interpreter structures in memory, safely " +"accessing internal fields, and triggering code execution. Platform-specific " +"variations are noted where applicable, and example implementations are " +"included to clarify each operation." +msgstr "" + +#: ../../howto/remote_debugging.rst:35 +msgid "Locating the PyRuntime structure" +msgstr "" + +#: ../../howto/remote_debugging.rst:37 +msgid "" +"CPython places the ``PyRuntime`` structure in a dedicated binary section to " +"help external tools find it at runtime. The name and format of this section " +"vary by platform. For example, ``.PyRuntime`` is used on ELF systems, and " +"``__DATA,__PyRuntime`` is used on macOS. Tools can find the offset of this " +"structure by examining the binary on disk." +msgstr "" + +#: ../../howto/remote_debugging.rst:43 +msgid "" +"The ``PyRuntime`` structure contains CPython’s global interpreter state and " +"provides access to other internal data, including the list of interpreters, " +"thread states, and debugger support fields." +msgstr "" + +#: ../../howto/remote_debugging.rst:47 +msgid "" +"To work with a remote Python process, a debugger must first find the memory " +"address of the ``PyRuntime`` structure in the target process. This address " +"can’t be hardcoded or calculated from a symbol name, because it depends on " +"where the operating system loaded the binary." +msgstr "" + +#: ../../howto/remote_debugging.rst:52 +msgid "" +"The method for finding ``PyRuntime`` depends on the platform, but the steps " +"are the same in general:" +msgstr "" + +#: ../../howto/remote_debugging.rst:55 +msgid "" +"Find the base address where the Python binary or shared library was loaded " +"in the target process." +msgstr "" + +#: ../../howto/remote_debugging.rst:57 +msgid "" +"Use the on-disk binary to locate the offset of the ``.PyRuntime`` section." +msgstr "" + +#: ../../howto/remote_debugging.rst:58 +msgid "" +"Add the section offset to the base address to compute the address in memory." +msgstr "" + +#: ../../howto/remote_debugging.rst:60 +msgid "" +"The sections below explain how to do this on each supported platform and " +"include example code." +msgstr "" + +#: ../../howto/remote_debugging.rst:64 +msgid "Linux (ELF)" +msgstr "" + +#: ../../howto/remote_debugging.rst:65 +msgid "To find the ``PyRuntime`` structure on Linux:" +msgstr "" + +#: ../../howto/remote_debugging.rst:67 +msgid "" +"Read the process’s memory map (for example, ``/proc//maps``) to find " +"the address where the Python executable or ``libpython`` was loaded." +msgstr "" + +#: ../../howto/remote_debugging.rst:69 +msgid "" +"Parse the ELF section headers in the binary to get the offset of the " +"``.PyRuntime`` section." +msgstr "" + +#: ../../howto/remote_debugging.rst:71 +msgid "" +"Add that offset to the base address from step 1 to get the memory address of " +"``PyRuntime``." +msgstr "" + +#: ../../howto/remote_debugging.rst:74 ../../howto/remote_debugging.rst:136 +#: ../../howto/remote_debugging.rst:206 ../../howto/remote_debugging.rst:475 +msgid "The following is an example implementation::" +msgstr "" + +#: ../../howto/remote_debugging.rst:76 +msgid "" +"def find_py_runtime_linux(pid: int) -> int:\n" +" # Step 1: Try to find the Python executable in memory\n" +" binary_path, base_address = find_mapped_binary(\n" +" pid, name_contains=\"python\"\n" +" )\n" +"\n" +" # Step 2: Fallback to shared library if executable is not found\n" +" if binary_path is None:\n" +" binary_path, base_address = find_mapped_binary(\n" +" pid, name_contains=\"libpython\"\n" +" )\n" +"\n" +" # Step 3: Parse ELF headers to get .PyRuntime section offset\n" +" section_offset = parse_elf_section_offset(\n" +" binary_path, \".PyRuntime\"\n" +" )\n" +"\n" +" # Step 4: Compute PyRuntime address in memory\n" +" return base_address + section_offset" +msgstr "" + +#: ../../howto/remote_debugging.rst:97 +msgid "" +"On Linux systems, there are two main approaches to read memory from another " +"process. The first is through the ``/proc`` filesystem, specifically by " +"reading from ``/proc/[pid]/mem`` which provides direct access to the " +"process's memory. This requires appropriate permissions - either being the " +"same user as the target process or having root access. The second approach " +"is using the ``process_vm_readv()`` system call which provides a more " +"efficient way to copy memory between processes. While ptrace's " +"``PTRACE_PEEKTEXT`` operation can also be used to read memory, it is " +"significantly slower as it only reads one word at a time and requires " +"multiple context switches between the tracer and tracee processes." +msgstr "" + +#: ../../howto/remote_debugging.rst:108 +msgid "" +"For parsing ELF sections, the process involves reading and interpreting the " +"ELF file format structures from the binary file on disk. The ELF header " +"contains a pointer to the section header table. Each section header contains " +"metadata about a section including its name (stored in a separate string " +"table), offset, and size. To find a specific section like .PyRuntime, you " +"need to walk through these headers and match the section name. The section " +"header then provides the offset where that section exists in the file, which " +"can be used to calculate its runtime address when the binary is loaded into " +"memory." +msgstr "" + +#: ../../howto/remote_debugging.rst:117 +msgid "" +"You can read more about the ELF file format in the `ELF specification " +"`_." +msgstr "" + +#: ../../howto/remote_debugging.rst:122 +msgid "macOS (Mach-O)" +msgstr "" + +#: ../../howto/remote_debugging.rst:123 +msgid "To find the ``PyRuntime`` structure on macOS:" +msgstr "" + +#: ../../howto/remote_debugging.rst:125 +msgid "" +"Call ``task_for_pid()`` to get the ``mach_port_t`` task port for the target " +"process. This handle is needed to read memory using APIs like " +"``mach_vm_read_overwrite`` and ``mach_vm_region``." +msgstr "" + +#: ../../howto/remote_debugging.rst:128 +msgid "" +"Scan the memory regions to find the one containing the Python executable or " +"``libpython``." +msgstr "" + +#: ../../howto/remote_debugging.rst:130 +msgid "" +"Load the binary file from disk and parse the Mach-O headers to find the " +"section named ``PyRuntime`` in the ``__DATA`` segment. On macOS, symbol " +"names are automatically prefixed with an underscore, so the ``PyRuntime`` " +"symbol appears as ``_PyRuntime`` in the symbol table, but the section name " +"is not affected." +msgstr "" + +#: ../../howto/remote_debugging.rst:138 +msgid "" +"def find_py_runtime_macos(pid: int) -> int:\n" +" # Step 1: Get access to the process's memory\n" +" handle = get_memory_access_handle(pid)\n" +"\n" +" # Step 2: Try to find the Python executable in memory\n" +" binary_path, base_address = find_mapped_binary(\n" +" handle, name_contains=\"python\"\n" +" )\n" +"\n" +" # Step 3: Fallback to libpython if the executable is not found\n" +" if binary_path is None:\n" +" binary_path, base_address = find_mapped_binary(\n" +" handle, name_contains=\"libpython\"\n" +" )\n" +"\n" +" # Step 4: Parse Mach-O headers to get __DATA,__PyRuntime section offset\n" +" section_offset = parse_macho_section_offset(\n" +" binary_path, \"__DATA\", \"__PyRuntime\"\n" +" )\n" +"\n" +" # Step 5: Compute the PyRuntime address in memory\n" +" return base_address + section_offset" +msgstr "" + +#: ../../howto/remote_debugging.rst:161 +msgid "" +"On macOS, accessing another process's memory requires using Mach-O specific " +"APIs and file formats. The first step is obtaining a ``task_port`` handle " +"via ``task_for_pid()``, which provides access to the target process's memory " +"space. This handle enables memory operations through APIs like " +"``mach_vm_read_overwrite()``." +msgstr "" + +#: ../../howto/remote_debugging.rst:167 +msgid "" +"The process memory can be examined using ``mach_vm_region()`` to scan " +"through the virtual memory space, while ``proc_regionfilename()`` helps " +"identify which binary files are loaded at each memory region. When the " +"Python binary or library is found, its Mach-O headers need to be parsed to " +"locate the ``PyRuntime`` structure." +msgstr "" + +#: ../../howto/remote_debugging.rst:172 +msgid "" +"The Mach-O format organizes code and data into segments and sections. The " +"``PyRuntime`` structure lives in a section named ``__PyRuntime`` within the " +"``__DATA`` segment. The actual runtime address calculation involves finding " +"the ``__TEXT`` segment which serves as the binary's base address, then " +"locating the ``__DATA`` segment containing our target section. The final " +"address is computed by combining the base address with the appropriate " +"section offsets from the Mach-O headers." +msgstr "" + +#: ../../howto/remote_debugging.rst:180 +msgid "" +"Note that accessing another process's memory on macOS typically requires " +"elevated privileges - either root access or special security entitlements " +"granted to the debugging process." +msgstr "" + +#: ../../howto/remote_debugging.rst:186 +msgid "Windows (PE)" +msgstr "" + +#: ../../howto/remote_debugging.rst:187 +msgid "To find the ``PyRuntime`` structure on Windows:" +msgstr "" + +#: ../../howto/remote_debugging.rst:189 +msgid "" +"Use the ToolHelp API to enumerate all modules loaded in the target process. " +"This is done using functions such as `CreateToolhelp32Snapshot `_, `Module32First `_, and " +"`Module32Next `_." +msgstr "" + +#: ../../howto/remote_debugging.rst:196 +msgid "" +"Identify the module corresponding to :file:`python.exe` " +"or :file:`python{XY}.dll`, where ``X`` and ``Y`` are the major and minor " +"version numbers of the Python version, and record its base address." +msgstr "" + +#: ../../howto/remote_debugging.rst:199 +msgid "" +"Locate the ``PyRuntim`` section. Due to the PE format's 8-character limit on " +"section names (defined as ``IMAGE_SIZEOF_SHORT_NAME``), the original name " +"``PyRuntime`` is truncated. This section contains the ``PyRuntime`` " +"structure." +msgstr "" + +#: ../../howto/remote_debugging.rst:203 +msgid "" +"Retrieve the section’s relative virtual address (RVA) and add it to the base " +"address of the module." +msgstr "" + +#: ../../howto/remote_debugging.rst:208 +msgid "" +"def find_py_runtime_windows(pid: int) -> int:\n" +" # Step 1: Try to find the Python executable in memory\n" +" binary_path, base_address = find_loaded_module(\n" +" pid, name_contains=\"python\"\n" +" )\n" +"\n" +" # Step 2: Fallback to shared pythonXY.dll if the executable is not\n" +" # found\n" +" if binary_path is None:\n" +" binary_path, base_address = find_loaded_module(\n" +" pid, name_contains=\"python3\"\n" +" )\n" +"\n" +" # Step 3: Parse PE section headers to get the RVA of the PyRuntime\n" +" # section. The section name appears as \"PyRuntim\" due to the\n" +" # 8-character limit defined by the PE format (IMAGE_SIZEOF_SHORT_NAME).\n" +" section_rva = parse_pe_section_offset(binary_path, \"PyRuntim\")\n" +"\n" +" # Step 4: Compute PyRuntime address in memory\n" +" return base_address + section_rva" +msgstr "" + +#: ../../howto/remote_debugging.rst:230 +msgid "" +"On Windows, accessing another process's memory requires using the Windows " +"API functions like ``CreateToolhelp32Snapshot()`` and ``Module32First()/" +"Module32Next()`` to enumerate loaded modules. The ``OpenProcess()`` function " +"provides a handle to access the target process's memory space, enabling " +"memory operations through ``ReadProcessMemory()``." +msgstr "" + +#: ../../howto/remote_debugging.rst:236 +msgid "" +"The process memory can be examined by enumerating loaded modules to find the " +"Python binary or DLL. When found, its PE headers need to be parsed to locate " +"the ``PyRuntime`` structure." +msgstr "" + +#: ../../howto/remote_debugging.rst:240 +msgid "" +"The PE format organizes code and data into sections. The ``PyRuntime`` " +"structure lives in a section named \"PyRuntim\" (truncated from " +"\"PyRuntime\" due to PE's 8-character name limit). The actual runtime " +"address calculation involves finding the module's base address from the " +"module entry, then locating our target section in the PE headers. The final " +"address is computed by combining the base address with the section's virtual " +"address from the PE section headers." +msgstr "" + +#: ../../howto/remote_debugging.rst:247 +msgid "" +"Note that accessing another process's memory on Windows typically requires " +"appropriate privileges - either administrative access or the " +"``SeDebugPrivilege`` privilege granted to the debugging process." +msgstr "" + +#: ../../howto/remote_debugging.rst:253 +msgid "Reading _Py_DebugOffsets" +msgstr "" + +#: ../../howto/remote_debugging.rst:255 +msgid "" +"Once the address of the ``PyRuntime`` structure has been determined, the " +"next step is to read the ``_Py_DebugOffsets`` structure located at the " +"beginning of the ``PyRuntime`` block." +msgstr "" + +#: ../../howto/remote_debugging.rst:259 +msgid "" +"This structure provides version-specific field offsets that are needed to " +"safely read interpreter and thread state memory. These offsets vary between " +"CPython versions and must be checked before use to ensure they are " +"compatible." +msgstr "" + +#: ../../howto/remote_debugging.rst:263 +msgid "To read and check the debug offsets, follow these steps:" +msgstr "" + +#: ../../howto/remote_debugging.rst:265 +msgid "" +"Read memory from the target process starting at the ``PyRuntime`` address, " +"covering the same number of bytes as the ``_Py_DebugOffsets`` structure. " +"This structure is located at the very start of the ``PyRuntime`` memory " +"block. Its layout is defined in CPython’s internal headers and stays the " +"same within a given minor version, but may change in major versions." +msgstr "" + +#: ../../howto/remote_debugging.rst:271 +msgid "Check that the structure contains valid data:" +msgstr "" + +#: ../../howto/remote_debugging.rst:273 +msgid "The ``cookie`` field must match the expected debug marker." +msgstr "" + +#: ../../howto/remote_debugging.rst:274 +msgid "" +"The ``version`` field must match the version of the Python interpreter used " +"by the debugger." +msgstr "" + +#: ../../howto/remote_debugging.rst:276 +msgid "" +"If either the debugger or the target process is using a pre-release version " +"(for example, an alpha, beta, or release candidate), the versions must match " +"exactly." +msgstr "" + +#: ../../howto/remote_debugging.rst:279 +msgid "" +"The ``free_threaded`` field must have the same value in both the debugger " +"and the target process." +msgstr "" + +#: ../../howto/remote_debugging.rst:282 +msgid "" +"If the structure is valid, the offsets it contains can be used to locate " +"fields in memory. If any check fails, the debugger should stop the operation " +"to avoid reading memory in the wrong format." +msgstr "" + +#: ../../howto/remote_debugging.rst:286 +msgid "" +"The following is an example implementation that reads and checks " +"``_Py_DebugOffsets``::" +msgstr "" + +#: ../../howto/remote_debugging.rst:289 +msgid "" +"def read_debug_offsets(pid: int, py_runtime_addr: int) -> DebugOffsets:\n" +" # Step 1: Read memory from the target process at the PyRuntime address\n" +" data = read_process_memory(\n" +" pid, address=py_runtime_addr, size=DEBUG_OFFSETS_SIZE\n" +" )\n" +"\n" +" # Step 2: Deserialize the raw bytes into a _Py_DebugOffsets structure\n" +" debug_offsets = parse_debug_offsets(data)\n" +"\n" +" # Step 3: Validate the contents of the structure\n" +" if debug_offsets.cookie != EXPECTED_COOKIE:\n" +" raise RuntimeError(\"Invalid or missing debug cookie\")\n" +" if debug_offsets.version != LOCAL_PYTHON_VERSION:\n" +" raise RuntimeError(\n" +" \"Mismatch between caller and target Python versions\"\n" +" )\n" +" if debug_offsets.free_threaded != LOCAL_FREE_THREADED:\n" +" raise RuntimeError(\"Mismatch in free-threaded configuration\")\n" +"\n" +" return debug_offsets" +msgstr "" + +#: ../../howto/remote_debugging.rst:314 +msgid "**Process suspension recommended**" +msgstr "" + +#: ../../howto/remote_debugging.rst:316 +msgid "" +"To avoid race conditions and ensure memory consistency, it is strongly " +"recommended that the target process be suspended before performing any " +"operations that read or write internal interpreter state. The Python runtime " +"may concurrently mutate interpreter data structures—such as creating or " +"destroying threads—during normal execution. This can result in invalid " +"memory reads or writes." +msgstr "" + +#: ../../howto/remote_debugging.rst:323 +msgid "" +"A debugger may suspend execution by attaching to the process with ``ptrace`` " +"or by sending a ``SIGSTOP`` signal. Execution should only be resumed after " +"debugger-side memory operations are complete." +msgstr "" + +#: ../../howto/remote_debugging.rst:329 +msgid "" +"Some tools, such as profilers or sampling-based debuggers, may operate on a " +"running process without suspension. In such cases, tools must be explicitly " +"designed to handle partially updated or inconsistent memory. For most " +"debugger implementations, suspending the process remains the safest and most " +"robust approach." +msgstr "" + +#: ../../howto/remote_debugging.rst:337 +msgid "Locating the interpreter and thread state" +msgstr "" + +#: ../../howto/remote_debugging.rst:339 +msgid "" +"Before code can be injected and executed in a remote Python process, the " +"debugger must choose a thread in which to schedule execution. This is " +"necessary because the control fields used to perform remote code injection " +"are located in the ``_PyRemoteDebuggerSupport`` structure, which is embedded " +"in a ``PyThreadState`` object. These fields are modified by the debugger to " +"request execution of injected scripts." +msgstr "" + +#: ../../howto/remote_debugging.rst:346 +msgid "" +"The ``PyThreadState`` structure represents a thread running inside a Python " +"interpreter. It maintains the thread’s evaluation context and contains the " +"fields required for debugger coordination. Locating a valid " +"``PyThreadState`` is therefore a key prerequisite for triggering execution " +"remotely." +msgstr "" + +#: ../../howto/remote_debugging.rst:351 +msgid "" +"A thread is typically selected based on its role or ID. In most cases, the " +"main thread is used, but some tools may target a specific thread by its " +"native thread ID. Once the target thread is chosen, the debugger must locate " +"both the interpreter and the associated thread state structures in memory." +msgstr "" + +#: ../../howto/remote_debugging.rst:356 +msgid "The relevant internal structures are defined as follows:" +msgstr "" + +#: ../../howto/remote_debugging.rst:358 +msgid "" +"``PyInterpreterState`` represents an isolated Python interpreter instance. " +"Each interpreter maintains its own set of imported modules, built-in state, " +"and thread state list. Although most Python applications use a single " +"interpreter, CPython supports multiple interpreters in the same process." +msgstr "" + +#: ../../howto/remote_debugging.rst:363 +msgid "" +"``PyThreadState`` represents a thread running within an interpreter. It " +"contains execution state and the control fields used by the debugger." +msgstr "" + +#: ../../howto/remote_debugging.rst:366 +msgid "To locate a thread:" +msgstr "" + +#: ../../howto/remote_debugging.rst:368 +msgid "" +"Use the offset ``runtime_state.interpreters_head`` to obtain the address of " +"the first interpreter in the ``PyRuntime`` structure. This is the entry " +"point to the linked list of active interpreters." +msgstr "" + +#: ../../howto/remote_debugging.rst:372 +msgid "" +"Use the offset ``interpreter_state.threads_main`` to access the main thread " +"state associated with the selected interpreter. This is typically the most " +"reliable thread to target." +msgstr "" + +#: ../../howto/remote_debugging.rst:376 +msgid "" +"3. Optionally, use the offset ``interpreter_state.threads_head`` to iterate " +"through the linked list of all thread states. Each ``PyThreadState`` " +"structure contains a ``native_thread_id`` field, which may be compared to a " +"target thread ID to find a specific thread." +msgstr "" + +#: ../../howto/remote_debugging.rst:381 +msgid "" +"1. Once a valid ``PyThreadState`` has been found, its address can be used in " +"later steps of the protocol, such as writing debugger control fields and " +"scheduling execution." +msgstr "" + +#: ../../howto/remote_debugging.rst:385 +msgid "" +"The following is an example implementation that locates the main thread " +"state::" +msgstr "" + +#: ../../howto/remote_debugging.rst:387 +msgid "" +"def find_main_thread_state(\n" +" pid: int, py_runtime_addr: int, debug_offsets: DebugOffsets,\n" +") -> int:\n" +" # Step 1: Read interpreters_head from PyRuntime\n" +" interp_head_ptr = (\n" +" py_runtime_addr + debug_offsets.runtime_state.interpreters_head\n" +" )\n" +" interp_addr = read_pointer(pid, interp_head_ptr)\n" +" if interp_addr == 0:\n" +" raise RuntimeError(\"No interpreter found in the target process\")\n" +"\n" +" # Step 2: Read the threads_main pointer from the interpreter\n" +" threads_main_ptr = (\n" +" interp_addr + debug_offsets.interpreter_state.threads_main\n" +" )\n" +" thread_state_addr = read_pointer(pid, threads_main_ptr)\n" +" if thread_state_addr == 0:\n" +" raise RuntimeError(\"Main thread state is not available\")\n" +"\n" +" return thread_state_addr" +msgstr "" + +#: ../../howto/remote_debugging.rst:408 +msgid "" +"The following example demonstrates how to locate a thread by its native " +"thread ID::" +msgstr "" + +#: ../../howto/remote_debugging.rst:411 +msgid "" +"def find_thread_by_id(\n" +" pid: int,\n" +" interp_addr: int,\n" +" debug_offsets: DebugOffsets,\n" +" target_tid: int,\n" +") -> int:\n" +" # Start at threads_head and walk the linked list\n" +" thread_ptr = read_pointer(\n" +" pid,\n" +" interp_addr + debug_offsets.interpreter_state.threads_head\n" +" )\n" +"\n" +" while thread_ptr:\n" +" native_tid_ptr = (\n" +" thread_ptr + debug_offsets.thread_state.native_thread_id\n" +" )\n" +" native_tid = read_int(pid, native_tid_ptr)\n" +" if native_tid == target_tid:\n" +" return thread_ptr\n" +" thread_ptr = read_pointer(\n" +" pid,\n" +" thread_ptr + debug_offsets.thread_state.next\n" +" )\n" +"\n" +" raise RuntimeError(\"Thread with the given ID was not found\")" +msgstr "" + +#: ../../howto/remote_debugging.rst:438 +msgid "" +"Once a valid thread state has been located, the debugger can proceed with " +"modifying its control fields and scheduling execution, as described in the " +"next section." +msgstr "" + +#: ../../howto/remote_debugging.rst:443 +msgid "Writing control information" +msgstr "" + +#: ../../howto/remote_debugging.rst:445 +msgid "" +"Once a valid ``PyThreadState`` structure has been identified, the debugger " +"may modify control fields within it to schedule the execution of a specified " +"Python script. These control fields are checked periodically by the " +"interpreter, and when set correctly, they trigger the execution of remote " +"code at a safe point in the evaluation loop." +msgstr "" + +#: ../../howto/remote_debugging.rst:451 +msgid "" +"Each ``PyThreadState`` contains a ``_PyRemoteDebuggerSupport`` structure " +"used for communication between the debugger and the interpreter. The " +"locations of its fields are defined by the ``_Py_DebugOffsets`` structure " +"and include the following:" +msgstr "" + +#: ../../howto/remote_debugging.rst:456 +msgid "" +"``debugger_script_path``: A fixed-size buffer that holds the full path to a" +msgstr "" + +#: ../../howto/remote_debugging.rst:457 +msgid "" +"Python source file (``.py``). This file must be accessible and readable by " +"the target process when execution is triggered." +msgstr "" + +#: ../../howto/remote_debugging.rst:460 +msgid "" +"``debugger_pending_call``: An integer flag. Setting this to ``1`` tells the" +msgstr "" + +#: ../../howto/remote_debugging.rst:461 +msgid "interpreter that a script is ready to be executed." +msgstr "" + +#: ../../howto/remote_debugging.rst:463 +msgid "``eval_breaker``: A field checked by the interpreter during execution." +msgstr "" + +#: ../../howto/remote_debugging.rst:464 +msgid "" +"Setting bit 5 (``_PY_EVAL_PLEASE_STOP_BIT``, value ``1U << 5``) in this " +"field causes the interpreter to pause and check for debugger activity." +msgstr "" + +#: ../../howto/remote_debugging.rst:467 +msgid "" +"To complete the injection, the debugger must perform the following steps:" +msgstr "" + +#: ../../howto/remote_debugging.rst:469 +msgid "Write the full script path into the ``debugger_script_path`` buffer." +msgstr "" + +#: ../../howto/remote_debugging.rst:470 +msgid "Set ``debugger_pending_call`` to ``1``." +msgstr "" + +#: ../../howto/remote_debugging.rst:471 +msgid "" +"Read the current value of ``eval_breaker``, set bit 5 " +"(``_PY_EVAL_PLEASE_STOP_BIT``), and write the updated value back. This " +"signals the interpreter to check for debugger activity." +msgstr "" + +#: ../../howto/remote_debugging.rst:477 +msgid "" +"def inject_script(\n" +" pid: int,\n" +" thread_state_addr: int,\n" +" debug_offsets: DebugOffsets,\n" +" script_path: str\n" +") -> None:\n" +" # Compute the base offset of _PyRemoteDebuggerSupport\n" +" support_base = (\n" +" thread_state_addr +\n" +" debug_offsets.debugger_support.remote_debugger_support\n" +" )\n" +"\n" +" # Step 1: Write the script path into debugger_script_path\n" +" script_path_ptr = (\n" +" support_base +\n" +" debug_offsets.debugger_support.debugger_script_path\n" +" )\n" +" write_string(pid, script_path_ptr, script_path)\n" +"\n" +" # Step 2: Set debugger_pending_call to 1\n" +" pending_ptr = (\n" +" support_base +\n" +" debug_offsets.debugger_support.debugger_pending_call\n" +" )\n" +" write_int(pid, pending_ptr, 1)\n" +"\n" +" # Step 3: Set _PY_EVAL_PLEASE_STOP_BIT (bit 5, value 1 << 5) in\n" +" # eval_breaker\n" +" eval_breaker_ptr = (\n" +" thread_state_addr +\n" +" debug_offsets.debugger_support.eval_breaker\n" +" )\n" +" breaker = read_int(pid, eval_breaker_ptr)\n" +" breaker |= (1 << 5)\n" +" write_int(pid, eval_breaker_ptr, breaker)" +msgstr "" + +#: ../../howto/remote_debugging.rst:514 +msgid "" +"Once these fields are set, the debugger may resume the process (if it was " +"suspended). The interpreter will process the request at the next safe " +"evaluation point, load the script from disk, and execute it." +msgstr "" + +#: ../../howto/remote_debugging.rst:518 +msgid "" +"It is the responsibility of the debugger to ensure that the script file " +"remains present and accessible to the target process during execution." +msgstr "" + +#: ../../howto/remote_debugging.rst:523 +msgid "" +"Script execution is asynchronous. The script file cannot be deleted " +"immediately after injection. The debugger should wait until the injected " +"script has produced an observable effect before removing the file. This " +"effect depends on what the script is designed to do. For example, a debugger " +"might wait until the remote process connects back to a socket before " +"removing the script. Once such an effect is observed, it is safe to assume " +"the file is no longer needed." +msgstr "" + +#: ../../howto/remote_debugging.rst:532 +msgid "Summary" +msgstr "" + +#: ../../howto/remote_debugging.rst:534 +msgid "To inject and execute a Python script in a remote process:" +msgstr "" + +#: ../../howto/remote_debugging.rst:536 +msgid "Locate the ``PyRuntime`` structure in the target process’s memory." +msgstr "" + +#: ../../howto/remote_debugging.rst:537 +msgid "" +"Read and validate the ``_Py_DebugOffsets`` structure at the beginning of " +"``PyRuntime``." +msgstr "" + +#: ../../howto/remote_debugging.rst:539 +msgid "Use the offsets to locate a valid ``PyThreadState``." +msgstr "" + +#: ../../howto/remote_debugging.rst:540 +msgid "Write the path to a Python script into ``debugger_script_path``." +msgstr "" + +#: ../../howto/remote_debugging.rst:541 +msgid "Set the ``debugger_pending_call`` flag to ``1``." +msgstr "" + +#: ../../howto/remote_debugging.rst:542 +msgid "Set ``_PY_EVAL_PLEASE_STOP_BIT`` in the ``eval_breaker`` field." +msgstr "" + +#: ../../howto/remote_debugging.rst:543 +msgid "" +"Resume the process (if suspended). The script will execute at the next safe " +"evaluation point." +msgstr "" diff --git a/howto/sockets.po b/howto/sockets.po new file mode 100644 index 0000000..cb73dc1 --- /dev/null +++ b/howto/sockets.po @@ -0,0 +1,567 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/sockets.rst:5 +msgid "Socket Programming HOWTO" +msgstr "" + +#: ../../howto/sockets.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/sockets.rst:7 +msgid "Gordon McMillan" +msgstr "" + +#: ../../howto/sockets.rst-1 +msgid "Abstract" +msgstr "" + +#: ../../howto/sockets.rst:12 +msgid "" +"Sockets are used nearly everywhere, but are one of the most severely " +"misunderstood technologies around. This is a 10,000 foot overview of " +"sockets. It's not really a tutorial - you'll still have work to do in " +"getting things operational. It doesn't cover the fine points (and there are " +"a lot of them), but I hope it will give you enough background to begin using " +"them decently." +msgstr "" + +#: ../../howto/sockets.rst:20 +msgid "Sockets" +msgstr "" + +#: ../../howto/sockets.rst:22 +msgid "" +"I'm only going to talk about INET (i.e. IPv4) sockets, but they account for " +"at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. " +"TCP) sockets - unless you really know what you're doing (in which case this " +"HOWTO isn't for you!), you'll get better behavior and performance from a " +"STREAM socket than anything else. I will try to clear up the mystery of what " +"a socket is, as well as some hints on how to work with blocking and non-" +"blocking sockets. But I'll start by talking about blocking sockets. You'll " +"need to know how they work before dealing with non-blocking sockets." +msgstr "" + +#: ../../howto/sockets.rst:31 +msgid "" +"Part of the trouble with understanding these things is that \"socket\" can " +"mean a number of subtly different things, depending on context. So first, " +"let's make a distinction between a \"client\" socket - an endpoint of a " +"conversation, and a \"server\" socket, which is more like a switchboard " +"operator. The client application (your browser, for example) uses \"client\" " +"sockets exclusively; the web server it's talking to uses both \"server\" " +"sockets and \"client\" sockets." +msgstr "" + +#: ../../howto/sockets.rst:40 +msgid "History" +msgstr "" + +#: ../../howto/sockets.rst:42 +msgid "" +"Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets " +"are by far the most popular. On any given platform, there are likely to be " +"other forms of IPC that are faster, but for cross-platform communication, " +"sockets are about the only game in town." +msgstr "" + +#: ../../howto/sockets.rst:47 +msgid "" +"They were invented in Berkeley as part of the BSD flavor of Unix. They " +"spread like wildfire with the internet. With good reason --- the combination " +"of sockets with INET makes talking to arbitrary machines around the world " +"unbelievably easy (at least compared to other schemes)." +msgstr "" + +#: ../../howto/sockets.rst:54 +msgid "Creating a Socket" +msgstr "" + +#: ../../howto/sockets.rst:56 +msgid "" +"Roughly speaking, when you clicked on the link that brought you to this " +"page, your browser did something like the following::" +msgstr "" + +#: ../../howto/sockets.rst:59 +msgid "" +"# create an INET, STREAMing socket\n" +"s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" +"# now connect to the web server on port 80 - the normal http port\n" +"s.connect((\"www.python.org\", 80))" +msgstr "" + +#: ../../howto/sockets.rst:64 +msgid "" +"When the ``connect`` completes, the socket ``s`` can be used to send in a " +"request for the text of the page. The same socket will read the reply, and " +"then be destroyed. That's right, destroyed. Client sockets are normally only " +"used for one exchange (or a small set of sequential exchanges)." +msgstr "" + +#: ../../howto/sockets.rst:70 +msgid "" +"What happens in the web server is a bit more complex. First, the web server " +"creates a \"server socket\"::" +msgstr "" + +#: ../../howto/sockets.rst:73 +msgid "" +"# create an INET, STREAMing socket\n" +"serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" +"# bind the socket to a public host, and a well-known port\n" +"serversocket.bind((socket.gethostname(), 80))\n" +"# become a server socket\n" +"serversocket.listen(5)" +msgstr "" + +#: ../../howto/sockets.rst:80 +msgid "" +"A couple things to notice: we used ``socket.gethostname()`` so that the " +"socket would be visible to the outside world. If we had used " +"``s.bind(('localhost', 80))`` or ``s.bind(('127.0.0.1', 80))`` we would " +"still have a \"server\" socket, but one that was only visible within the " +"same machine. ``s.bind(('', 80))`` specifies that the socket is reachable " +"by any address the machine happens to have." +msgstr "" + +#: ../../howto/sockets.rst:87 +msgid "" +"A second thing to note: low number ports are usually reserved for \"well " +"known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " +"number (4 digits)." +msgstr "" + +#: ../../howto/sockets.rst:91 +msgid "" +"Finally, the argument to ``listen`` tells the socket library that we want it " +"to queue up as many as 5 connect requests (the normal max) before refusing " +"outside connections. If the rest of the code is written properly, that " +"should be plenty." +msgstr "" + +#: ../../howto/sockets.rst:95 +msgid "" +"Now that we have a \"server\" socket, listening on port 80, we can enter the " +"mainloop of the web server::" +msgstr "" + +#: ../../howto/sockets.rst:98 +msgid "" +"while True:\n" +" # accept connections from outside\n" +" (clientsocket, address) = serversocket.accept()\n" +" # now do something with the clientsocket\n" +" # in this case, we'll pretend this is a threaded server\n" +" ct = make_client_thread(clientsocket)\n" +" ct.start()" +msgstr "" + +#: ../../howto/sockets.rst:106 +msgid "" +"There's actually 3 general ways in which this loop could work - dispatching " +"a thread to handle ``clientsocket``, create a new process to handle " +"``clientsocket``, or restructure this app to use non-blocking sockets, and " +"multiplex between our \"server\" socket and any active ``clientsocket``\\ s " +"using ``select``. More about that later. The important thing to understand " +"now is this: this is *all* a \"server\" socket does. It doesn't send any " +"data. It doesn't receive any data. It just produces \"client\" sockets. Each " +"``clientsocket`` is created in response to some *other* \"client\" socket " +"doing a ``connect()`` to the host and port we're bound to. As soon as we've " +"created that ``clientsocket``, we go back to listening for more connections. " +"The two \"clients\" are free to chat it up - they are using some dynamically " +"allocated port which will be recycled when the conversation ends." +msgstr "" + +#: ../../howto/sockets.rst:121 +msgid "IPC" +msgstr "" + +#: ../../howto/sockets.rst:123 +msgid "" +"If you need fast IPC between two processes on one machine, you should look " +"into pipes or shared memory. If you do decide to use AF_INET sockets, bind " +"the \"server\" socket to ``'localhost'``. On most platforms, this will take " +"a shortcut around a couple of layers of network code and be quite a bit " +"faster." +msgstr "" + +#: ../../howto/sockets.rst:129 +msgid "" +"The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " +"API." +msgstr "" + +#: ../../howto/sockets.rst:134 +msgid "Using a Socket" +msgstr "" + +#: ../../howto/sockets.rst:136 +msgid "" +"The first thing to note, is that the web browser's \"client\" socket and the " +"web server's \"client\" socket are identical beasts. That is, this is a " +"\"peer to peer\" conversation. Or to put it another way, *as the designer, " +"you will have to decide what the rules of etiquette are for a conversation*. " +"Normally, the ``connect``\\ ing socket starts the conversation, by sending " +"in a request, or perhaps a signon. But that's a design decision - it's not a " +"rule of sockets." +msgstr "" + +#: ../../howto/sockets.rst:143 +msgid "" +"Now there are two sets of verbs to use for communication. You can use " +"``send`` and ``recv``, or you can transform your client socket into a file-" +"like beast and use ``read`` and ``write``. The latter is the way Java " +"presents its sockets. I'm not going to talk about it here, except to warn " +"you that you need to use ``flush`` on sockets. These are buffered \"files\", " +"and a common mistake is to ``write`` something, and then ``read`` for a " +"reply. Without a ``flush`` in there, you may wait forever for the reply, " +"because the request may still be in your output buffer." +msgstr "" + +#: ../../howto/sockets.rst:152 +msgid "" +"Now we come to the major stumbling block of sockets - ``send`` and ``recv`` " +"operate on the network buffers. They do not necessarily handle all the bytes " +"you hand them (or expect from them), because their major focus is handling " +"the network buffers. In general, they return when the associated network " +"buffers have been filled (``send``) or emptied (``recv``). They then tell " +"you how many bytes they handled. It is *your* responsibility to call them " +"again until your message has been completely dealt with." +msgstr "" + +#: ../../howto/sockets.rst:160 +msgid "" +"When a ``recv`` returns 0 bytes, it means the other side has closed (or is " +"in the process of closing) the connection. You will not receive any more " +"data on this connection. Ever. You may be able to send data successfully; " +"I'll talk more about this later." +msgstr "" + +#: ../../howto/sockets.rst:165 +msgid "" +"A protocol like HTTP uses a socket for only one transfer. The client sends a " +"request, then reads a reply. That's it. The socket is discarded. This means " +"that a client can detect the end of the reply by receiving 0 bytes." +msgstr "" + +#: ../../howto/sockets.rst:169 +msgid "" +"But if you plan to reuse your socket for further transfers, you need to " +"realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I " +"repeat: if a socket ``send`` or ``recv`` returns after handling 0 bytes, the " +"connection has been broken. If the connection has *not* been broken, you " +"may wait on a ``recv`` forever, because the socket will *not* tell you that " +"there's nothing more to read (for now). Now if you think about that a bit, " +"you'll come to realize a fundamental truth of sockets: *messages must either " +"be fixed length* (yuck), *or be delimited* (shrug), *or indicate how long " +"they are* (much better), *or end by shutting down the connection*. The " +"choice is entirely yours, (but some ways are righter than others)." +msgstr "" + +#: ../../howto/sockets.rst:180 +msgid "" +"Assuming you don't want to end the connection, the simplest solution is a " +"fixed length message::" +msgstr "" + +#: ../../howto/sockets.rst:183 +msgid "" +"class MySocket:\n" +" \"\"\"demonstration class only\n" +" - coded for clarity, not efficiency\n" +" \"\"\"\n" +"\n" +" def __init__(self, sock=None):\n" +" if sock is None:\n" +" self.sock = socket.socket(\n" +" socket.AF_INET, socket.SOCK_STREAM)\n" +" else:\n" +" self.sock = sock\n" +"\n" +" def connect(self, host, port):\n" +" self.sock.connect((host, port))\n" +"\n" +" def mysend(self, msg):\n" +" totalsent = 0\n" +" while totalsent < MSGLEN:\n" +" sent = self.sock.send(msg[totalsent:])\n" +" if sent == 0:\n" +" raise RuntimeError(\"socket connection broken\")\n" +" totalsent = totalsent + sent\n" +"\n" +" def myreceive(self):\n" +" chunks = []\n" +" bytes_recd = 0\n" +" while bytes_recd < MSGLEN:\n" +" chunk = self.sock.recv(min(MSGLEN - bytes_recd, 2048))\n" +" if chunk == b'':\n" +" raise RuntimeError(\"socket connection broken\")\n" +" chunks.append(chunk)\n" +" bytes_recd = bytes_recd + len(chunk)\n" +" return b''.join(chunks)" +msgstr "" + +#: ../../howto/sockets.rst:217 +msgid "" +"The sending code here is usable for almost any messaging scheme - in Python " +"you send strings, and you can use ``len()`` to determine its length (even if " +"it has embedded ``\\0`` characters). It's mostly the receiving code that " +"gets more complex. (And in C, it's not much worse, except you can't use " +"``strlen`` if the message has embedded ``\\0``\\ s.)" +msgstr "" + +#: ../../howto/sockets.rst:223 +msgid "" +"The easiest enhancement is to make the first character of the message an " +"indicator of message type, and have the type determine the length. Now you " +"have two ``recv``\\ s - the first to get (at least) that first character so " +"you can look up the length, and the second in a loop to get the rest. If you " +"decide to go the delimited route, you'll be receiving in some arbitrary " +"chunk size, (4096 or 8192 is frequently a good match for network buffer " +"sizes), and scanning what you've received for a delimiter." +msgstr "" + +#: ../../howto/sockets.rst:231 +msgid "" +"One complication to be aware of: if your conversational protocol allows " +"multiple messages to be sent back to back (without some kind of reply), and " +"you pass ``recv`` an arbitrary chunk size, you may end up reading the start " +"of a following message. You'll need to put that aside and hold onto it, " +"until it's needed." +msgstr "" + +#: ../../howto/sockets.rst:237 +msgid "" +"Prefixing the message with its length (say, as 5 numeric characters) gets " +"more complex, because (believe it or not), you may not get all 5 characters " +"in one ``recv``. In playing around, you'll get away with it; but in high " +"network loads, your code will very quickly break unless you use two ``recv`` " +"loops - the first to determine the length, the second to get the data part " +"of the message. Nasty. This is also when you'll discover that ``send`` does " +"not always manage to get rid of everything in one pass. And despite having " +"read this, you will eventually get bit by it!" +msgstr "" + +#: ../../howto/sockets.rst:246 +msgid "" +"In the interests of space, building your character, (and preserving my " +"competitive position), these enhancements are left as an exercise for the " +"reader. Lets move on to cleaning up." +msgstr "" + +#: ../../howto/sockets.rst:252 +msgid "Binary Data" +msgstr "" + +#: ../../howto/sockets.rst:254 +msgid "" +"It is perfectly possible to send binary data over a socket. The major " +"problem is that not all machines use the same formats for binary data. For " +"example, `network byte order `_ is big-endian, with the most significant byte " +"first, so a 16 bit integer with the value ``1`` would be the two hex bytes " +"``00 01``. However, most common processors (x86/AMD64, ARM, RISC-V), are " +"little-endian, with the least significant byte first - that same ``1`` would " +"be ``01 00``." +msgstr "" + +#: ../../howto/sockets.rst:262 +msgid "" +"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, " +"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, " +"\"s\" means *short* and \"l\" means *long*. Where network order is host " +"order, these do nothing, but where the machine is byte-reversed, these swap " +"the bytes around appropriately." +msgstr "" + +#: ../../howto/sockets.rst:268 +msgid "" +"In these days of 64-bit machines, the ASCII representation of binary data is " +"frequently smaller than the binary representation. That's because a " +"surprising amount of the time, most integers have the value 0, or maybe 1. " +"The string ``\"0\"`` would be two bytes, while a full 64-bit integer would " +"be 8. Of course, this doesn't fit well with fixed-length messages. " +"Decisions, decisions." +msgstr "" + +#: ../../howto/sockets.rst:277 +msgid "Disconnecting" +msgstr "" + +#: ../../howto/sockets.rst:279 +msgid "" +"Strictly speaking, you're supposed to use ``shutdown`` on a socket before " +"you ``close`` it. The ``shutdown`` is an advisory to the socket at the " +"other end. Depending on the argument you pass it, it can mean \"I'm not " +"going to send anymore, but I'll still listen\", or \"I'm not listening, good " +"riddance!\". Most socket libraries, however, are so used to programmers " +"neglecting to use this piece of etiquette that normally a ``close`` is the " +"same as ``shutdown(); close()``. So in most situations, an explicit " +"``shutdown`` is not needed." +msgstr "" + +#: ../../howto/sockets.rst:287 +msgid "" +"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The " +"client sends a request and then does a ``shutdown(1)``. This tells the " +"server \"This client is done sending, but can still receive.\" The server " +"can detect \"EOF\" by a receive of 0 bytes. It can assume it has the " +"complete request. The server sends a reply. If the ``send`` completes " +"successfully then, indeed, the client was still receiving." +msgstr "" + +#: ../../howto/sockets.rst:294 +msgid "" +"Python takes the automatic shutdown a step further, and says that when a " +"socket is garbage collected, it will automatically do a ``close`` if it's " +"needed. But relying on this is a very bad habit. If your socket just " +"disappears without doing a ``close``, the socket at the other end may hang " +"indefinitely, thinking you're just being slow. *Please* ``close`` your " +"sockets when you're done." +msgstr "" + +#: ../../howto/sockets.rst:302 +msgid "When Sockets Die" +msgstr "" + +#: ../../howto/sockets.rst:304 +msgid "" +"Probably the worst thing about using blocking sockets is what happens when " +"the other side comes down hard (without doing a ``close``). Your socket is " +"likely to hang. TCP is a reliable protocol, and it will wait a long, long " +"time before giving up on a connection. If you're using threads, the entire " +"thread is essentially dead. There's not much you can do about it. As long as " +"you aren't doing something dumb, like holding a lock while doing a blocking " +"read, the thread isn't really consuming much in the way of resources. Do " +"*not* try to kill the thread - part of the reason that threads are more " +"efficient than processes is that they avoid the overhead associated with the " +"automatic recycling of resources. In other words, if you do manage to kill " +"the thread, your whole process is likely to be screwed up." +msgstr "" + +#: ../../howto/sockets.rst:318 +msgid "Non-blocking Sockets" +msgstr "" + +#: ../../howto/sockets.rst:320 +msgid "" +"If you've understood the preceding, you already know most of what you need " +"to know about the mechanics of using sockets. You'll still use the same " +"calls, in much the same ways. It's just that, if you do it right, your app " +"will be almost inside-out." +msgstr "" + +#: ../../howto/sockets.rst:325 +msgid "" +"In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In " +"C, it's more complex, (for one thing, you'll need to choose between the BSD " +"flavor ``O_NONBLOCK`` and the almost indistinguishable POSIX flavor " +"``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's " +"the exact same idea. You do this after creating the socket, but before using " +"it. (Actually, if you're nuts, you can switch back and forth.)" +msgstr "" + +#: ../../howto/sockets.rst:332 +msgid "" +"The major mechanical difference is that ``send``, ``recv``, ``connect`` and " +"``accept`` can return without having done anything. You have (of course) a " +"number of choices. You can check return code and error codes and generally " +"drive yourself crazy. If you don't believe me, try it sometime. Your app " +"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " +"and do it right." +msgstr "" + +#: ../../howto/sockets.rst:339 +msgid "Use ``select``." +msgstr "" + +#: ../../howto/sockets.rst:341 +msgid "" +"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, " +"but it's close enough to the C version that if you understand ``select`` in " +"Python, you'll have little trouble with it in C::" +msgstr "" + +#: ../../howto/sockets.rst:345 +msgid "" +"ready_to_read, ready_to_write, in_error = \\\n" +" select.select(\n" +" potential_readers,\n" +" potential_writers,\n" +" potential_errs,\n" +" timeout)" +msgstr "" + +#: ../../howto/sockets.rst:352 +msgid "" +"You pass ``select`` three lists: the first contains all sockets that you " +"might want to try reading; the second all the sockets you might want to try " +"writing to, and the last (normally left empty) those that you want to check " +"for errors. You should note that a socket can go into more than one list. " +"The ``select`` call is blocking, but you can give it a timeout. This is " +"generally a sensible thing to do - give it a nice long timeout (say a " +"minute) unless you have good reason to do otherwise." +msgstr "" + +#: ../../howto/sockets.rst:360 +msgid "" +"In return, you will get three lists. They contain the sockets that are " +"actually readable, writable and in error. Each of these lists is a subset " +"(possibly empty) of the corresponding list you passed in." +msgstr "" + +#: ../../howto/sockets.rst:364 +msgid "" +"If a socket is in the output readable list, you can be as-close-to-certain-" +"as-we-ever-get-in-this-business that a ``recv`` on that socket will return " +"*something*. Same idea for the writable list. You'll be able to send " +"*something*. Maybe not all you want to, but *something* is better than " +"nothing. (Actually, any reasonably healthy socket will return as writable - " +"it just means outbound network buffer space is available.)" +msgstr "" + +#: ../../howto/sockets.rst:371 +msgid "" +"If you have a \"server\" socket, put it in the potential_readers list. If it " +"comes out in the readable list, your ``accept`` will (almost certainly) " +"work. If you have created a new socket to ``connect`` to someone else, put " +"it in the potential_writers list. If it shows up in the writable list, you " +"have a decent chance that it has connected." +msgstr "" + +#: ../../howto/sockets.rst:377 +msgid "" +"Actually, ``select`` can be handy even with blocking sockets. It's one way " +"of determining whether you will block - the socket returns as readable when " +"there's something in the buffers. However, this still doesn't help with the " +"problem of determining whether the other end is done, or just busy with " +"something else." +msgstr "" + +#: ../../howto/sockets.rst:382 +msgid "" +"**Portability alert**: On Unix, ``select`` works both with the sockets and " +"files. Don't try this on Windows. On Windows, ``select`` works with sockets " +"only. Also note that in C, many of the more advanced socket options are done " +"differently on Windows. In fact, on Windows I usually use threads (which " +"work very, very well) with my sockets." +msgstr "" diff --git a/howto/sorting.po b/howto/sorting.po new file mode 100644 index 0000000..bf94d00 --- /dev/null +++ b/howto/sorting.po @@ -0,0 +1,638 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/sorting.rst:4 +msgid "Sorting Techniques" +msgstr "" + +#: ../../howto/sorting.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/sorting.rst:6 +msgid "Andrew Dalke and Raymond Hettinger" +msgstr "" + +#: ../../howto/sorting.rst:9 +msgid "" +"Python lists have a built-in :meth:`list.sort` method that modifies the list " +"in-place. There is also a :func:`sorted` built-in function that builds a " +"new sorted list from an iterable." +msgstr "" + +#: ../../howto/sorting.rst:13 +msgid "" +"In this document, we explore the various techniques for sorting data using " +"Python." +msgstr "" + +#: ../../howto/sorting.rst:17 +msgid "Sorting Basics" +msgstr "" + +#: ../../howto/sorting.rst:19 +msgid "" +"A simple ascending sort is very easy: just call the :func:`sorted` function. " +"It returns a new sorted list:" +msgstr "" + +#: ../../howto/sorting.rst:22 +msgid "" +">>> sorted([5, 2, 3, 1, 4])\n" +"[1, 2, 3, 4, 5]" +msgstr "" + +#: ../../howto/sorting.rst:27 +msgid "" +"You can also use the :meth:`list.sort` method. It modifies the list in-place " +"(and returns ``None`` to avoid confusion). Usually it's less convenient " +"than :func:`sorted` - but if you don't need the original list, it's slightly " +"more efficient." +msgstr "" + +#: ../../howto/sorting.rst:32 +msgid "" +">>> a = [5, 2, 3, 1, 4]\n" +">>> a.sort()\n" +">>> a\n" +"[1, 2, 3, 4, 5]" +msgstr "" + +#: ../../howto/sorting.rst:39 +msgid "" +"Another difference is that the :meth:`list.sort` method is only defined for " +"lists. In contrast, the :func:`sorted` function accepts any iterable." +msgstr "" + +#: ../../howto/sorting.rst:42 +msgid "" +">>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})\n" +"[1, 2, 3, 4, 5]" +msgstr "" + +#: ../../howto/sorting.rst:48 +msgid "Key Functions" +msgstr "" + +#: ../../howto/sorting.rst:50 +msgid "" +"The :meth:`list.sort` method and the " +"functions :func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nsmallest`, " +"and :func:`heapq.nlargest` have a *key* parameter to specify a function (or " +"other callable) to be called on each list element prior to making " +"comparisons." +msgstr "" + +#: ../../howto/sorting.rst:56 +msgid "" +"For example, here's a case-insensitive string comparison " +"using :meth:`str.casefold`:" +msgstr "" + +#: ../../howto/sorting.rst:59 +msgid "" +">>> sorted(\"This is a test string from Andrew\".split(), key=str.casefold)\n" +"['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']" +msgstr "" + +#: ../../howto/sorting.rst:64 +msgid "" +"The value of the *key* parameter should be a function (or other callable) " +"that takes a single argument and returns a key to use for sorting purposes. " +"This technique is fast because the key function is called exactly once for " +"each input record." +msgstr "" + +#: ../../howto/sorting.rst:69 +msgid "" +"A common pattern is to sort complex objects using some of the object's " +"indices as keys. For example:" +msgstr "" + +#: ../../howto/sorting.rst:72 +msgid "" +">>> student_tuples = [\n" +"... ('john', 'A', 15),\n" +"... ('jane', 'B', 12),\n" +"... ('dave', 'B', 10),\n" +"... ]\n" +">>> sorted(student_tuples, key=lambda student: student[2]) # sort by age\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:82 +msgid "" +"The same technique works for objects with named attributes. For example:" +msgstr "" + +#: ../../howto/sorting.rst:84 +msgid "" +">>> class Student:\n" +"... def __init__(self, name, grade, age):\n" +"... self.name = name\n" +"... self.grade = grade\n" +"... self.age = age\n" +"... def __repr__(self):\n" +"... return repr((self.name, self.grade, self.age))\n" +"\n" +">>> student_objects = [\n" +"... Student('john', 'A', 15),\n" +"... Student('jane', 'B', 12),\n" +"... Student('dave', 'B', 10),\n" +"... ]\n" +">>> sorted(student_objects, key=lambda student: student.age) # sort by " +"age\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:102 +msgid "" +"Objects with named attributes can be made by a regular class as shown above, " +"or they can be instances of :class:`~dataclasses.dataclass` or " +"a :term:`named tuple`." +msgstr "" + +#: ../../howto/sorting.rst:107 +msgid "Operator Module Functions and Partial Function Evaluation" +msgstr "" + +#: ../../howto/sorting.rst:109 +msgid "" +"The :term:`key function` patterns shown above are very common, so Python " +"provides convenience functions to make accessor functions easier and faster. " +"The :mod:`operator` module " +"has :func:`~operator.itemgetter`, :func:`~operator.attrgetter`, and " +"a :func:`~operator.methodcaller` function." +msgstr "" + +#: ../../howto/sorting.rst:114 +msgid "Using those functions, the above examples become simpler and faster:" +msgstr "" + +#: ../../howto/sorting.rst:116 +msgid "" +">>> from operator import itemgetter, attrgetter\n" +"\n" +">>> sorted(student_tuples, key=itemgetter(2))\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]\n" +"\n" +">>> sorted(student_objects, key=attrgetter('age'))\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:126 +msgid "" +"The operator module functions allow multiple levels of sorting. For example, " +"to sort by *grade* then by *age*:" +msgstr "" + +#: ../../howto/sorting.rst:129 +msgid "" +">>> sorted(student_tuples, key=itemgetter(1,2))\n" +"[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]\n" +"\n" +">>> sorted(student_objects, key=attrgetter('grade', 'age'))\n" +"[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]" +msgstr "" + +#: ../../howto/sorting.rst:137 +msgid "" +"The :mod:`functools` module provides another helpful tool for making key-" +"functions. The :func:`~functools.partial` function can reduce the `arity " +"`_ of a multi-argument function making " +"it suitable for use as a key-function." +msgstr "" + +#: ../../howto/sorting.rst:142 +msgid "" +">>> from functools import partial\n" +">>> from unicodedata import normalize\n" +"\n" +">>> names = 'Zoë Åbjørn Núñez Élana Zeke Abe Nubia Eloise'.split()\n" +"\n" +">>> sorted(names, key=partial(normalize, 'NFD'))\n" +"['Abe', 'Åbjørn', 'Eloise', 'Élana', 'Nubia', 'Núñez', 'Zeke', 'Zoë']\n" +"\n" +">>> sorted(names, key=partial(normalize, 'NFC'))\n" +"['Abe', 'Eloise', 'Nubia', 'Núñez', 'Zeke', 'Zoë', 'Åbjørn', 'Élana']" +msgstr "" + +#: ../../howto/sorting.rst:156 +msgid "Ascending and Descending" +msgstr "" + +#: ../../howto/sorting.rst:158 +msgid "" +"Both :meth:`list.sort` and :func:`sorted` accept a *reverse* parameter with " +"a boolean value. This is used to flag descending sorts. For example, to get " +"the student data in reverse *age* order:" +msgstr "" + +#: ../../howto/sorting.rst:162 +msgid "" +">>> sorted(student_tuples, key=itemgetter(2), reverse=True)\n" +"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]\n" +"\n" +">>> sorted(student_objects, key=attrgetter('age'), reverse=True)\n" +"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]" +msgstr "" + +#: ../../howto/sorting.rst:171 +msgid "Sort Stability and Complex Sorts" +msgstr "" + +#: ../../howto/sorting.rst:173 +msgid "" +"Sorts are guaranteed to be `stable `_\\. That means that when multiple records have " +"the same key, their original order is preserved." +msgstr "" + +#: ../../howto/sorting.rst:177 +msgid "" +">>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]\n" +">>> sorted(data, key=itemgetter(0))\n" +"[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]" +msgstr "" + +#: ../../howto/sorting.rst:183 +msgid "" +"Notice how the two records for *blue* retain their original order so that " +"``('blue', 1)`` is guaranteed to precede ``('blue', 2)``." +msgstr "" + +#: ../../howto/sorting.rst:186 +msgid "" +"This wonderful property lets you build complex sorts in a series of sorting " +"steps. For example, to sort the student data by descending *grade* and then " +"ascending *age*, do the *age* sort first and then sort again using *grade*:" +msgstr "" + +#: ../../howto/sorting.rst:190 +msgid "" +">>> s = sorted(student_objects, key=attrgetter('age')) # sort on " +"secondary key\n" +">>> sorted(s, key=attrgetter('grade'), reverse=True) # now sort on " +"primary key, descending\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:196 +msgid "" +"This can be abstracted out into a wrapper function that can take a list and " +"tuples of field and order to sort them on multiple passes." +msgstr "" + +#: ../../howto/sorting.rst:199 +msgid "" +">>> def multisort(xs, specs):\n" +"... for key, reverse in reversed(specs):\n" +"... xs.sort(key=attrgetter(key), reverse=reverse)\n" +"... return xs\n" +"\n" +">>> multisort(list(student_objects), (('grade', True), ('age', False)))\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:209 +msgid "" +"The `Timsort `_ algorithm used in " +"Python does multiple sorts efficiently because it can take advantage of any " +"ordering already present in a dataset." +msgstr "" + +#: ../../howto/sorting.rst:214 +msgid "Decorate-Sort-Undecorate" +msgstr "" + +#: ../../howto/sorting.rst:216 +msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:" +msgstr "" + +#: ../../howto/sorting.rst:218 +msgid "" +"First, the initial list is decorated with new values that control the sort " +"order." +msgstr "" + +#: ../../howto/sorting.rst:220 +msgid "Second, the decorated list is sorted." +msgstr "" + +#: ../../howto/sorting.rst:222 +msgid "" +"Finally, the decorations are removed, creating a list that contains only the " +"initial values in the new order." +msgstr "" + +#: ../../howto/sorting.rst:225 +msgid "" +"For example, to sort the student data by *grade* using the DSU approach:" +msgstr "" + +#: ../../howto/sorting.rst:227 +msgid "" +">>> decorated = [(student.grade, i, student) for i, student in " +"enumerate(student_objects)]\n" +">>> decorated.sort()\n" +">>> [student for grade, i, student in decorated] # undecorate\n" +"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]" +msgstr "" + +#: ../../howto/sorting.rst:234 +msgid "" +"This idiom works because tuples are compared lexicographically; the first " +"items are compared; if they are the same then the second items are compared, " +"and so on." +msgstr "" + +#: ../../howto/sorting.rst:238 +msgid "" +"It is not strictly necessary in all cases to include the index *i* in the " +"decorated list, but including it gives two benefits:" +msgstr "" + +#: ../../howto/sorting.rst:241 +msgid "" +"The sort is stable -- if two items have the same key, their order will be " +"preserved in the sorted list." +msgstr "" + +#: ../../howto/sorting.rst:244 +msgid "" +"The original items do not have to be comparable because the ordering of the " +"decorated tuples will be determined by at most the first two items. So for " +"example the original list could contain complex numbers which cannot be " +"sorted directly." +msgstr "" + +#: ../../howto/sorting.rst:249 +msgid "" +"Another name for this idiom is `Schwartzian transform `_\\, after Randal L. Schwartz, " +"who popularized it among Perl programmers." +msgstr "" + +#: ../../howto/sorting.rst:253 +msgid "" +"Now that Python sorting provides key-functions, this technique is not often " +"needed." +msgstr "" + +#: ../../howto/sorting.rst:256 +msgid "Comparison Functions" +msgstr "" + +#: ../../howto/sorting.rst:258 +msgid "" +"Unlike key functions that return an absolute value for sorting, a comparison " +"function computes the relative ordering for two inputs." +msgstr "" + +#: ../../howto/sorting.rst:261 +msgid "" +"For example, a `balance scale `_ compares two samples giving a " +"relative ordering: lighter, equal, or heavier. Likewise, a comparison " +"function such as ``cmp(a, b)`` will return a negative value for less-than, " +"zero if the inputs are equal, or a positive value for greater-than." +msgstr "" + +#: ../../howto/sorting.rst:268 +msgid "" +"It is common to encounter comparison functions when translating algorithms " +"from other languages. Also, some libraries provide comparison functions as " +"part of their API. For example, :func:`locale.strcoll` is a comparison " +"function." +msgstr "" + +#: ../../howto/sorting.rst:272 +msgid "" +"To accommodate those situations, Python " +"provides :class:`functools.cmp_to_key` to wrap the comparison function to " +"make it usable as a key function::" +msgstr "" + +#: ../../howto/sorting.rst:276 +msgid "sorted(words, key=cmp_to_key(strcoll)) # locale-aware sort order" +msgstr "" + +#: ../../howto/sorting.rst:279 +msgid "Strategies For Unorderable Types and Values" +msgstr "" + +#: ../../howto/sorting.rst:281 +msgid "" +"A number of type and value issues can arise when sorting. Here are some " +"strategies that can help:" +msgstr "" + +#: ../../howto/sorting.rst:284 +msgid "Convert non-comparable input types to strings prior to sorting:" +msgstr "" + +#: ../../howto/sorting.rst:286 +msgid "" +">>> data = ['twelve', '11', 10]\n" +">>> sorted(map(str, data))\n" +"['10', '11', 'twelve']" +msgstr "" + +#: ../../howto/sorting.rst:292 +msgid "" +"This is needed because most cross-type comparisons raise a :exc:`TypeError`." +msgstr "" + +#: ../../howto/sorting.rst:295 +msgid "Remove special values prior to sorting:" +msgstr "" + +#: ../../howto/sorting.rst:297 +msgid "" +">>> from math import isnan\n" +">>> from itertools import filterfalse\n" +">>> data = [3.3, float('nan'), 1.1, 2.2]\n" +">>> sorted(filterfalse(isnan, data))\n" +"[1.1, 2.2, 3.3]" +msgstr "" + +#: ../../howto/sorting.rst:305 +msgid "" +"This is needed because the `IEEE-754 standard `_ specifies that, \"Every NaN shall compare unordered with " +"everything, including itself.\"" +msgstr "" + +#: ../../howto/sorting.rst:309 +msgid "Likewise, ``None`` can be stripped from datasets as well:" +msgstr "" + +#: ../../howto/sorting.rst:311 +msgid "" +">>> data = [3.3, None, 1.1, 2.2]\n" +">>> sorted(x for x in data if x is not None)\n" +"[1.1, 2.2, 3.3]" +msgstr "" + +#: ../../howto/sorting.rst:317 +msgid "This is needed because ``None`` is not comparable to other types." +msgstr "" + +#: ../../howto/sorting.rst:319 +msgid "Convert mapping types into sorted item lists before sorting:" +msgstr "" + +#: ../../howto/sorting.rst:321 +msgid "" +">>> data = [{'a': 1}, {'b': 2}]\n" +">>> sorted(data, key=lambda d: sorted(d.items()))\n" +"[{'a': 1}, {'b': 2}]" +msgstr "" + +#: ../../howto/sorting.rst:327 +msgid "" +"This is needed because dict-to-dict comparisons raise a :exc:`TypeError`." +msgstr "" + +#: ../../howto/sorting.rst:330 +msgid "Convert set types into sorted lists before sorting:" +msgstr "" + +#: ../../howto/sorting.rst:332 +msgid "" +">>> data = [{'a', 'b', 'c'}, {'b', 'c', 'd'}]\n" +">>> sorted(map(sorted, data))\n" +"[['a', 'b', 'c'], ['b', 'c', 'd']]" +msgstr "" + +#: ../../howto/sorting.rst:338 +msgid "" +"This is needed because the elements contained in set types do not have a " +"deterministic order. For example, ``list({'a', 'b'})`` may produce either " +"``['a', 'b']`` or ``['b', 'a']``." +msgstr "" + +#: ../../howto/sorting.rst:343 +msgid "Odds and Ends" +msgstr "Egyebek..." + +#: ../../howto/sorting.rst:345 +msgid "" +"For locale aware sorting, use :func:`locale.strxfrm` for a key function " +"or :func:`locale.strcoll` for a comparison function. This is necessary " +"because \"alphabetical\" sort orderings can vary across cultures even if the " +"underlying alphabet is the same." +msgstr "" + +#: ../../howto/sorting.rst:350 +msgid "" +"The *reverse* parameter still maintains sort stability (so that records with " +"equal keys retain the original order). Interestingly, that effect can be " +"simulated without the parameter by using the builtin :func:`reversed` " +"function twice:" +msgstr "" + +#: ../../howto/sorting.rst:355 +msgid "" +">>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]\n" +">>> standard_way = sorted(data, key=itemgetter(0), reverse=True)\n" +">>> double_reversed = list(reversed(sorted(reversed(data), " +"key=itemgetter(0))))\n" +">>> assert standard_way == double_reversed\n" +">>> standard_way\n" +"[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]" +msgstr "" + +#: ../../howto/sorting.rst:364 +msgid "" +"The sort routines use ``<`` when making comparisons between two objects. So, " +"it is easy to add a standard sort order to a class by defining " +"an :meth:`~object.__lt__` method:" +msgstr "" + +#: ../../howto/sorting.rst:368 +msgid "" +">>> Student.__lt__ = lambda self, other: self.age < other.age\n" +">>> sorted(student_objects)\n" +"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]" +msgstr "" + +#: ../../howto/sorting.rst:374 +msgid "" +"However, note that ``<`` can fall back to using :meth:`~object.__gt__` " +"if :meth:`~object.__lt__` is not implemented (see :func:`object.__lt__` for " +"details on the mechanics). To avoid surprises, :pep:`8` recommends that all " +"six comparison methods be implemented. The :func:`~functools.total_ordering` " +"decorator is provided to make that task easier." +msgstr "" + +#: ../../howto/sorting.rst:381 +msgid "" +"Key functions need not depend directly on the objects being sorted. A key " +"function can also access external resources. For instance, if the student " +"grades are stored in a dictionary, they can be used to sort a separate list " +"of student names:" +msgstr "" + +#: ../../howto/sorting.rst:386 +msgid "" +">>> students = ['dave', 'john', 'jane']\n" +">>> newgrades = {'john': 'F', 'jane':'A', 'dave': 'C'}\n" +">>> sorted(students, key=newgrades.__getitem__)\n" +"['jane', 'dave', 'john']" +msgstr "" + +#: ../../howto/sorting.rst:394 +msgid "Partial Sorts" +msgstr "" + +#: ../../howto/sorting.rst:396 +msgid "" +"Some applications require only some of the data to be ordered. The standard " +"library provides several tools that do less work than a full sort:" +msgstr "" + +#: ../../howto/sorting.rst:399 +msgid "" +":func:`min` and :func:`max` return the smallest and largest values, " +"respectively. These functions make a single pass over the input data and " +"require almost no auxiliary memory." +msgstr "" + +#: ../../howto/sorting.rst:403 +msgid "" +":func:`heapq.nsmallest` and :func:`heapq.nlargest` return the *n* smallest " +"and largest values, respectively. These functions make a single pass over " +"the data keeping only *n* elements in memory at a time. For values of *n* " +"that are small relative to the number of inputs, these functions make far " +"fewer comparisons than a full sort." +msgstr "" + +#: ../../howto/sorting.rst:409 +msgid "" +":func:`heapq.heappush` and :func:`heapq.heappop` create and maintain a " +"partially sorted arrangement of data that keeps the smallest element at " +"position ``0``. These functions are suitable for implementing priority " +"queues which are commonly used for task scheduling." +msgstr "" diff --git a/howto/timerfd.po b/howto/timerfd.po new file mode 100644 index 0000000..3544841 --- /dev/null +++ b/howto/timerfd.po @@ -0,0 +1,286 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/timerfd.rst:5 +msgid "timer file descriptor HOWTO" +msgstr "" + +#: ../../howto/timerfd.rst:0 +msgid "Release" +msgstr "" + +#: ../../howto/timerfd.rst:7 +msgid "1.13" +msgstr "" + +#: ../../howto/timerfd.rst:9 +msgid "" +"This HOWTO discusses Python's support for the linux timer file descriptor." +msgstr "" + +#: ../../howto/timerfd.rst:13 +msgid "Examples" +msgstr "" + +#: ../../howto/timerfd.rst:15 +msgid "" +"The following example shows how to use a timer file descriptor to execute a " +"function twice a second:" +msgstr "" + +#: ../../howto/timerfd.rst:18 +msgid "" +"# Practical scripts should use really use a non-blocking timer,\n" +"# we use a blocking timer here for simplicity.\n" +"import os, time\n" +"\n" +"# Create the timer file descriptor\n" +"fd = os.timerfd_create(time.CLOCK_REALTIME)\n" +"\n" +"# Start the timer in 1 second, with an interval of half a second\n" +"os.timerfd_settime(fd, initial=1, interval=0.5)\n" +"\n" +"try:\n" +" # Process timer events four times.\n" +" for _ in range(4):\n" +" # read() will block until the timer expires\n" +" _ = os.read(fd, 8)\n" +" print(\"Timer expired\")\n" +"finally:\n" +" # Remember to close the timer file descriptor!\n" +" os.close(fd)" +msgstr "" + +#: ../../howto/timerfd.rst:40 +msgid "" +"To avoid the precision loss caused by the :class:`float` type, timer file " +"descriptors allow specifying initial expiration and interval in integer " +"nanoseconds with ``_ns`` variants of the functions." +msgstr "" + +#: ../../howto/timerfd.rst:44 +msgid "" +"This example shows how :func:`~select.epoll` can be used with timer file " +"descriptors to wait until the file descriptor is ready for reading:" +msgstr "" + +#: ../../howto/timerfd.rst:47 +msgid "" +"import os, time, select, socket, sys\n" +"\n" +"# Create an epoll object\n" +"ep = select.epoll()\n" +"\n" +"# In this example, use loopback address to send \"stop\" command to the " +"server.\n" +"#\n" +"# $ telnet 127.0.0.1 1234\n" +"# Trying 127.0.0.1...\n" +"# Connected to 127.0.0.1.\n" +"# Escape character is '^]'.\n" +"# stop\n" +"# Connection closed by foreign host.\n" +"#\n" +"sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" +"sock.bind((\"127.0.0.1\", 1234))\n" +"sock.setblocking(False)\n" +"sock.listen(1)\n" +"ep.register(sock, select.EPOLLIN)\n" +"\n" +"# Create timer file descriptors in non-blocking mode.\n" +"num = 3\n" +"fds = []\n" +"for _ in range(num):\n" +" fd = os.timerfd_create(time.CLOCK_REALTIME, flags=os.TFD_NONBLOCK)\n" +" fds.append(fd)\n" +" # Register the timer file descriptor for read events\n" +" ep.register(fd, select.EPOLLIN)\n" +"\n" +"# Start the timer with os.timerfd_settime_ns() in nanoseconds.\n" +"# Timer 1 fires every 0.25 seconds; timer 2 every 0.5 seconds; etc\n" +"for i, fd in enumerate(fds, start=1):\n" +" one_sec_in_nsec = 10**9\n" +" i = i * one_sec_in_nsec\n" +" os.timerfd_settime_ns(fd, initial=i//4, interval=i//4)\n" +"\n" +"timeout = 3\n" +"try:\n" +" conn = None\n" +" is_active = True\n" +" while is_active:\n" +" # Wait for the timer to expire for 3 seconds.\n" +" # epoll.poll() returns a list of (fd, event) pairs.\n" +" # fd is a file descriptor.\n" +" # sock and conn[=returned value of socket.accept()] are socket " +"objects, not file descriptors.\n" +" # So use sock.fileno() and conn.fileno() to get the file " +"descriptors.\n" +" events = ep.poll(timeout)\n" +"\n" +" # If more than one timer file descriptors are ready for reading at " +"once,\n" +" # epoll.poll() returns a list of (fd, event) pairs.\n" +" #\n" +" # In this example settings,\n" +" # 1st timer fires every 0.25 seconds in 0.25 seconds. (0.25, 0.5, " +"0.75, 1.0, ...)\n" +" # 2nd timer every 0.5 seconds in 0.5 seconds. (0.5, 1.0, 1.5, " +"2.0, ...)\n" +" # 3rd timer every 0.75 seconds in 0.75 seconds. (0.75, 1.5, 2.25, " +"3.0, ...)\n" +" #\n" +" # In 0.25 seconds, only 1st timer fires.\n" +" # In 0.5 seconds, 1st timer and 2nd timer fires at once.\n" +" # In 0.75 seconds, 1st timer and 3rd timer fires at once.\n" +" # In 1.5 seconds, 1st timer, 2nd timer and 3rd timer fires at " +"once.\n" +" #\n" +" # If a timer file descriptor is signaled more than once since\n" +" # the last os.read() call, os.read() returns the number of signaled\n" +" # as host order of class bytes.\n" +" print(f\"Signaled events={events}\")\n" +" for fd, event in events:\n" +" if event & select.EPOLLIN:\n" +" if fd == sock.fileno():\n" +" # Check if there is a connection request.\n" +" print(f\"Accepting connection {fd}\")\n" +" conn, addr = sock.accept()\n" +" conn.setblocking(False)\n" +" print(f\"Accepted connection {conn} from {addr}\")\n" +" ep.register(conn, select.EPOLLIN)\n" +" elif conn and fd == conn.fileno():\n" +" # Check if there is data to read.\n" +" print(f\"Reading data {fd}\")\n" +" data = conn.recv(1024)\n" +" if data:\n" +" # You should catch UnicodeDecodeError exception for " +"safety.\n" +" cmd = data.decode()\n" +" if cmd.startswith(\"stop\"):\n" +" print(f\"Stopping server\")\n" +" is_active = False\n" +" else:\n" +" print(f\"Unknown command: {cmd}\")\n" +" else:\n" +" # No more data, close connection\n" +" print(f\"Closing connection {fd}\")\n" +" ep.unregister(conn)\n" +" conn.close()\n" +" conn = None\n" +" elif fd in fds:\n" +" print(f\"Reading timer {fd}\")\n" +" count = int.from_bytes(os.read(fd, 8), " +"byteorder=sys.byteorder)\n" +" print(f\"Timer {fds.index(fd) + 1} expired {count} " +"times\")\n" +" else:\n" +" print(f\"Unknown file descriptor {fd}\")\n" +"finally:\n" +" for fd in fds:\n" +" ep.unregister(fd)\n" +" os.close(fd)\n" +" ep.close()" +msgstr "" + +#: ../../howto/timerfd.rst:153 +msgid "" +"This example shows how :func:`~select.select` can be used with timer file " +"descriptors to wait until the file descriptor is ready for reading:" +msgstr "" + +#: ../../howto/timerfd.rst:156 +msgid "" +"import os, time, select, socket, sys\n" +"\n" +"# In this example, use loopback address to send \"stop\" command to the " +"server.\n" +"#\n" +"# $ telnet 127.0.0.1 1234\n" +"# Trying 127.0.0.1...\n" +"# Connected to 127.0.0.1.\n" +"# Escape character is '^]'.\n" +"# stop\n" +"# Connection closed by foreign host.\n" +"#\n" +"sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" +"sock.bind((\"127.0.0.1\", 1234))\n" +"sock.setblocking(False)\n" +"sock.listen(1)\n" +"\n" +"# Create timer file descriptors in non-blocking mode.\n" +"num = 3\n" +"fds = [os.timerfd_create(time.CLOCK_REALTIME, flags=os.TFD_NONBLOCK)\n" +" for _ in range(num)]\n" +"select_fds = fds + [sock]\n" +"\n" +"# Start the timers with os.timerfd_settime() in seconds.\n" +"# Timer 1 fires every 0.25 seconds; timer 2 every 0.5 seconds; etc\n" +"for i, fd in enumerate(fds, start=1):\n" +" os.timerfd_settime(fd, initial=i/4, interval=i/4)\n" +"\n" +"timeout = 3\n" +"try:\n" +" conn = None\n" +" is_active = True\n" +" while is_active:\n" +" # Wait for the timer to expire for 3 seconds.\n" +" # select.select() returns a list of file descriptors or objects.\n" +" rfd, wfd, xfd = select.select(select_fds, select_fds, select_fds, " +"timeout)\n" +" for fd in rfd:\n" +" if fd == sock:\n" +" # Check if there is a connection request.\n" +" print(f\"Accepting connection {fd}\")\n" +" conn, addr = sock.accept()\n" +" conn.setblocking(False)\n" +" print(f\"Accepted connection {conn} from {addr}\")\n" +" select_fds.append(conn)\n" +" elif conn and fd == conn:\n" +" # Check if there is data to read.\n" +" print(f\"Reading data {fd}\")\n" +" data = conn.recv(1024)\n" +" if data:\n" +" # You should catch UnicodeDecodeError exception for " +"safety.\n" +" cmd = data.decode()\n" +" if cmd.startswith(\"stop\"):\n" +" print(f\"Stopping server\")\n" +" is_active = False\n" +" else:\n" +" print(f\"Unknown command: {cmd}\")\n" +" else:\n" +" # No more data, close connection\n" +" print(f\"Closing connection {fd}\")\n" +" select_fds.remove(conn)\n" +" conn.close()\n" +" conn = None\n" +" elif fd in fds:\n" +" print(f\"Reading timer {fd}\")\n" +" count = int.from_bytes(os.read(fd, 8), " +"byteorder=sys.byteorder)\n" +" print(f\"Timer {fds.index(fd) + 1} expired {count} times\")\n" +" else:\n" +" print(f\"Unknown file descriptor {fd}\")\n" +"finally:\n" +" for fd in fds:\n" +" os.close(fd)\n" +" sock.close()\n" +" sock = None" +msgstr "" diff --git a/howto/unicode.po b/howto/unicode.po new file mode 100644 index 0000000..40566e9 --- /dev/null +++ b/howto/unicode.po @@ -0,0 +1,1139 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/unicode.rst:5 +msgid "Unicode HOWTO" +msgstr "" + +#: ../../howto/unicode.rst:0 +msgid "Release" +msgstr "" + +#: ../../howto/unicode.rst:7 +msgid "1.12" +msgstr "" + +#: ../../howto/unicode.rst:9 +msgid "" +"This HOWTO discusses Python's support for the Unicode specification for " +"representing textual data, and explains various problems that people " +"commonly encounter when trying to work with Unicode." +msgstr "" + +#: ../../howto/unicode.rst:15 +msgid "Introduction to Unicode" +msgstr "" + +#: ../../howto/unicode.rst:18 +msgid "Definitions" +msgstr "" + +#: ../../howto/unicode.rst:20 +msgid "" +"Today's programs need to be able to handle a wide variety of characters. " +"Applications are often internationalized to display messages and output in a " +"variety of user-selectable languages; the same program might need to output " +"an error message in English, French, Japanese, Hebrew, or Russian. Web " +"content can be written in any of these languages and can also include a " +"variety of emoji symbols. Python's string type uses the Unicode Standard for " +"representing characters, which lets Python programs work with all these " +"different possible characters." +msgstr "" + +#: ../../howto/unicode.rst:30 +msgid "" +"Unicode (https://www.unicode.org/) is a specification that aims to list " +"every character used by human languages and give each character its own " +"unique code. The Unicode specifications are continually revised and updated " +"to add new languages and symbols." +msgstr "" + +#: ../../howto/unicode.rst:35 +msgid "" +"A **character** is the smallest possible component of a text. 'A', 'B', " +"'C', etc., are all different characters. So are 'È' and 'Í'. Characters " +"vary depending on the language or context you're talking about. For " +"example, there's a character for \"Roman Numeral One\", 'Ⅰ', that's separate " +"from the uppercase letter 'I'. They'll usually look the same, but these are " +"two different characters that have different meanings." +msgstr "" + +#: ../../howto/unicode.rst:42 +msgid "" +"The Unicode standard describes how characters are represented by **code " +"points**. A code point value is an integer in the range 0 to 0x10FFFF " +"(about 1.1 million values, the `actual number assigned `_ is less than that). In the " +"standard and in this document, a code point is written using the notation " +"``U+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." +msgstr "" + +#: ../../howto/unicode.rst:50 +msgid "" +"The Unicode standard contains a lot of tables listing characters and their " +"corresponding code points:" +msgstr "" + +#: ../../howto/unicode.rst:53 +msgid "" +"0061 'a'; LATIN SMALL LETTER A\n" +"0062 'b'; LATIN SMALL LETTER B\n" +"0063 'c'; LATIN SMALL LETTER C\n" +"...\n" +"007B '{'; LEFT CURLY BRACKET\n" +"...\n" +"2167 'Ⅷ'; ROMAN NUMERAL EIGHT\n" +"2168 'Ⅸ'; ROMAN NUMERAL NINE\n" +"...\n" +"265E '♞'; BLACK CHESS KNIGHT\n" +"265F '♟'; BLACK CHESS PAWN\n" +"...\n" +"1F600 '😀'; GRINNING FACE\n" +"1F609 '😉'; WINKING FACE\n" +"..." +msgstr "" + +#: ../../howto/unicode.rst:71 +msgid "" +"Strictly, these definitions imply that it's meaningless to say 'this is " +"character ``U+265E``'. ``U+265E`` is a code point, which represents some " +"particular character; in this case, it represents the character 'BLACK CHESS " +"KNIGHT', '♞'. In informal contexts, this distinction between code points " +"and characters will sometimes be forgotten." +msgstr "" + +#: ../../howto/unicode.rst:78 +msgid "" +"A character is represented on a screen or on paper by a set of graphical " +"elements that's called a **glyph**. The glyph for an uppercase A, for " +"example, is two diagonal strokes and a horizontal stroke, though the exact " +"details will depend on the font being used. Most Python code doesn't need " +"to worry about glyphs; figuring out the correct glyph to display is " +"generally the job of a GUI toolkit or a terminal's font renderer." +msgstr "" + +#: ../../howto/unicode.rst:87 +msgid "Encodings" +msgstr "" + +#: ../../howto/unicode.rst:89 +msgid "" +"To summarize the previous section: a Unicode string is a sequence of code " +"points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). " +"This sequence of code points needs to be represented in memory as a set of " +"**code units**, and **code units** are then mapped to 8-bit bytes. The " +"rules for translating a Unicode string into a sequence of bytes are called a " +"**character encoding**, or just an **encoding**." +msgstr "" + +#: ../../howto/unicode.rst:97 +msgid "" +"The first encoding you might think of is using 32-bit integers as the code " +"unit, and then using the CPU's representation of 32-bit integers. In this " +"representation, the string \"Python\" might look like this:" +msgstr "" + +#: ../../howto/unicode.rst:101 +msgid "" +" P y t h o n\n" +"0x50 00 00 00 79 00 00 00 74 00 00 00 68 00 00 00 6f 00 00 00 6e 00 00 00\n" +" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23" +msgstr "" + +#: ../../howto/unicode.rst:107 +msgid "" +"This representation is straightforward but using it presents a number of " +"problems." +msgstr "" + +#: ../../howto/unicode.rst:110 +msgid "It's not portable; different processors order the bytes differently." +msgstr "" + +#: ../../howto/unicode.rst:112 +msgid "" +"It's very wasteful of space. In most texts, the majority of the code points " +"are less than 127, or less than 255, so a lot of space is occupied by " +"``0x00`` bytes. The above string takes 24 bytes compared to the 6 bytes " +"needed for an ASCII representation. Increased RAM usage doesn't matter too " +"much (desktop computers have gigabytes of RAM, and strings aren't usually " +"that large), but expanding our usage of disk and network bandwidth by a " +"factor of 4 is intolerable." +msgstr "" + +#: ../../howto/unicode.rst:120 +msgid "" +"It's not compatible with existing C functions such as ``strlen()``, so a new " +"family of wide string functions would need to be used." +msgstr "" + +#: ../../howto/unicode.rst:123 +msgid "" +"Therefore this encoding isn't used very much, and people instead choose " +"other encodings that are more efficient and convenient, such as UTF-8." +msgstr "" + +#: ../../howto/unicode.rst:126 +msgid "" +"UTF-8 is one of the most commonly used encodings, and Python often defaults " +"to using it. UTF stands for \"Unicode Transformation Format\", and the '8' " +"means that 8-bit values are used in the encoding. (There are also UTF-16 " +"and UTF-32 encodings, but they are less frequently used than UTF-8.) UTF-8 " +"uses the following rules:" +msgstr "" + +#: ../../howto/unicode.rst:132 +msgid "" +"If the code point is < 128, it's represented by the corresponding byte value." +msgstr "" + +#: ../../howto/unicode.rst:133 +msgid "" +"If the code point is >= 128, it's turned into a sequence of two, three, or " +"four bytes, where each byte of the sequence is between 128 and 255." +msgstr "" + +#: ../../howto/unicode.rst:136 +msgid "UTF-8 has several convenient properties:" +msgstr "" + +#: ../../howto/unicode.rst:138 +msgid "It can handle any Unicode code point." +msgstr "" + +#: ../../howto/unicode.rst:139 +msgid "" +"A Unicode string is turned into a sequence of bytes that contains embedded " +"zero bytes only where they represent the null character (U+0000). This means " +"that UTF-8 strings can be processed by C functions such as ``strcpy()`` and " +"sent through protocols that can't handle zero bytes for anything other than " +"end-of-string markers." +msgstr "" + +#: ../../howto/unicode.rst:144 +msgid "A string of ASCII text is also valid UTF-8 text." +msgstr "" + +#: ../../howto/unicode.rst:145 +msgid "" +"UTF-8 is fairly compact; the majority of commonly used characters can be " +"represented with one or two bytes." +msgstr "" + +#: ../../howto/unicode.rst:147 +msgid "" +"If bytes are corrupted or lost, it's possible to determine the start of the " +"next UTF-8-encoded code point and resynchronize. It's also unlikely that " +"random 8-bit data will look like valid UTF-8." +msgstr "" + +#: ../../howto/unicode.rst:150 +msgid "" +"UTF-8 is a byte oriented encoding. The encoding specifies that each " +"character is represented by a specific sequence of one or more bytes. This " +"avoids the byte-ordering issues that can occur with integer and word " +"oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " +"varies depending on the hardware on which the string was encoded." +msgstr "" + +#: ../../howto/unicode.rst:158 ../../howto/unicode.rst:514 +#: ../../howto/unicode.rst:735 +msgid "References" +msgstr "" + +#: ../../howto/unicode.rst:160 +msgid "" +"The `Unicode Consortium site `_ has character " +"charts, a glossary, and PDF versions of the Unicode specification. Be " +"prepared for some difficult reading. `A chronology `_ of the origin and development of Unicode is also available on " +"the site." +msgstr "" + +#: ../../howto/unicode.rst:165 +msgid "" +"On the Computerphile Youtube channel, Tom Scott briefly `discusses the " +"history of Unicode and UTF-8 `_ " +"(9 minutes 36 seconds)." +msgstr "" + +#: ../../howto/unicode.rst:169 +msgid "" +"To help understand the standard, Jukka Korpela has written `an introductory " +"guide `_ to reading the Unicode " +"character tables." +msgstr "" + +#: ../../howto/unicode.rst:173 +msgid "" +"Another `good introductory article `_ was " +"written by Joel Spolsky. If this introduction didn't make things clear to " +"you, you should try reading this alternate article before continuing." +msgstr "" + +#: ../../howto/unicode.rst:178 +msgid "" +"Wikipedia entries are often helpful; see the entries for \"`character " +"encoding `_\" and `UTF-8 " +"`_, for example." +msgstr "" + +#: ../../howto/unicode.rst:184 +msgid "Python's Unicode Support" +msgstr "" + +#: ../../howto/unicode.rst:186 +msgid "" +"Now that you've learned the rudiments of Unicode, we can look at Python's " +"Unicode features." +msgstr "" + +#: ../../howto/unicode.rst:190 +msgid "The String Type" +msgstr "" + +#: ../../howto/unicode.rst:192 +msgid "" +"Since Python 3.0, the language's :class:`str` type contains Unicode " +"characters, meaning any string created using ``\"unicode rocks!\"``, " +"``'unicode rocks!'``, or the triple-quoted string syntax is stored as " +"Unicode." +msgstr "" + +#: ../../howto/unicode.rst:196 +msgid "" +"The default encoding for Python source code is UTF-8, so you can simply " +"include a Unicode character in a string literal::" +msgstr "" + +#: ../../howto/unicode.rst:199 +msgid "" +"try:\n" +" with open('/tmp/input.txt', 'r') as f:\n" +" ...\n" +"except OSError:\n" +" # 'File not found' error message.\n" +" print(\"Fichier non trouvé\")" +msgstr "" + +#: ../../howto/unicode.rst:206 +msgid "" +"Side note: Python 3 also supports using Unicode characters in identifiers::" +msgstr "" + +#: ../../howto/unicode.rst:208 +msgid "" +"répertoire = \"/tmp/records.log\"\n" +"with open(répertoire, \"w\") as f:\n" +" f.write(\"test\\n\")" +msgstr "" + +#: ../../howto/unicode.rst:212 +msgid "" +"If you can't enter a particular character in your editor or want to keep the " +"source code ASCII-only for some reason, you can also use escape sequences in " +"string literals. (Depending on your system, you may see the actual capital-" +"delta glyph instead of a \\u escape.) ::" +msgstr "" + +#: ../../howto/unicode.rst:217 +msgid "" +">>> \"\\N{GREEK CAPITAL LETTER DELTA}\" # Using the character name\n" +"'\\u0394'\n" +">>> \"\\u0394\" # Using a 16-bit hex value\n" +"'\\u0394'\n" +">>> \"\\U00000394\" # Using a 32-bit hex value\n" +"'\\u0394'" +msgstr "" + +#: ../../howto/unicode.rst:224 +msgid "" +"In addition, one can create a string using the :func:`~bytes.decode` method " +"of :class:`bytes`. This method takes an *encoding* argument, such as " +"``UTF-8``, and optionally an *errors* argument." +msgstr "" + +#: ../../howto/unicode.rst:228 +msgid "" +"The *errors* argument specifies the response when the input string can't be " +"converted according to the encoding's rules. Legal values for this argument " +"are ``'strict'`` (raise a :exc:`UnicodeDecodeError` exception), " +"``'replace'`` (use ``U+FFFD``, ``REPLACEMENT CHARACTER``), ``'ignore'`` " +"(just leave the character out of the Unicode result), or " +"``'backslashreplace'`` (inserts a ``\\xNN`` escape sequence). The following " +"examples show the differences::" +msgstr "" + +#: ../../howto/unicode.rst:236 +msgid "" +">>> b'\\x80abc'.decode(\"utf-8\", \"strict\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0:\n" +" invalid start byte\n" +">>> b'\\x80abc'.decode(\"utf-8\", \"replace\")\n" +"'\\ufffdabc'\n" +">>> b'\\x80abc'.decode(\"utf-8\", \"backslashreplace\")\n" +"'\\\\x80abc'\n" +">>> b'\\x80abc'.decode(\"utf-8\", \"ignore\")\n" +"'abc'" +msgstr "" + +#: ../../howto/unicode.rst:248 +msgid "" +"Encodings are specified as strings containing the encoding's name. Python " +"comes with roughly 100 different encodings; see the Python Library Reference " +"at :ref:`standard-encodings` for a list. Some encodings have multiple " +"names; for example, ``'latin-1'``, ``'iso_8859_1'`` and ``'8859``' are all " +"synonyms for the same encoding." +msgstr "" + +#: ../../howto/unicode.rst:254 +msgid "" +"One-character Unicode strings can also be created with the :func:`chr` built-" +"in function, which takes integers and returns a Unicode string of length 1 " +"that contains the corresponding code point. The reverse operation is the " +"built-in :func:`ord` function that takes a one-character Unicode string and " +"returns the code point value::" +msgstr "" + +#: ../../howto/unicode.rst:260 +msgid "" +">>> chr(57344)\n" +"'\\ue000'\n" +">>> ord('\\ue000')\n" +"57344" +msgstr "" + +#: ../../howto/unicode.rst:266 +msgid "Converting to Bytes" +msgstr "" + +#: ../../howto/unicode.rst:268 +msgid "" +"The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which " +"returns a :class:`bytes` representation of the Unicode string, encoded in " +"the requested *encoding*." +msgstr "" + +#: ../../howto/unicode.rst:272 +msgid "" +"The *errors* parameter is the same as the parameter of " +"the :meth:`~bytes.decode` method but supports a few more possible handlers. " +"As well as ``'strict'``, ``'ignore'``, and ``'replace'`` (which in this case " +"inserts a question mark instead of the unencodable character), there is also " +"``'xmlcharrefreplace'`` (inserts an XML character reference), " +"``backslashreplace`` (inserts a ``\\uNNNN`` escape sequence) and " +"``namereplace`` (inserts a ``\\N{...}`` escape sequence)." +msgstr "" + +#: ../../howto/unicode.rst:280 +msgid "The following example shows the different results::" +msgstr "" + +#: ../../howto/unicode.rst:282 +msgid "" +">>> u = chr(40960) + 'abcd' + chr(1972)\n" +">>> u.encode('utf-8')\n" +"b'\\xea\\x80\\x80abcd\\xde\\xb4'\n" +">>> u.encode('ascii')\n" +"Traceback (most recent call last):\n" +" ...\n" +"UnicodeEncodeError: 'ascii' codec can't encode character '\\ua000' in\n" +" position 0: ordinal not in range(128)\n" +">>> u.encode('ascii', 'ignore')\n" +"b'abcd'\n" +">>> u.encode('ascii', 'replace')\n" +"b'?abcd?'\n" +">>> u.encode('ascii', 'xmlcharrefreplace')\n" +"b'ꀀabcd޴'\n" +">>> u.encode('ascii', 'backslashreplace')\n" +"b'\\\\ua000abcd\\\\u07b4'\n" +">>> u.encode('ascii', 'namereplace')\n" +"b'\\\\N{YI SYLLABLE IT}abcd\\\\u07b4'" +msgstr "" + +#: ../../howto/unicode.rst:301 +msgid "" +"The low-level routines for registering and accessing the available encodings " +"are found in the :mod:`codecs` module. Implementing new encodings also " +"requires understanding the :mod:`codecs` module. However, the encoding and " +"decoding functions returned by this module are usually more low-level than " +"is comfortable, and writing new encodings is a specialized task, so the " +"module won't be covered in this HOWTO." +msgstr "" + +#: ../../howto/unicode.rst:310 +msgid "Unicode Literals in Python Source Code" +msgstr "" + +#: ../../howto/unicode.rst:312 +msgid "" +"In Python source code, specific Unicode code points can be written using the " +"``\\u`` escape sequence, which is followed by four hex digits giving the " +"code point. The ``\\U`` escape sequence is similar, but expects eight hex " +"digits, not four::" +msgstr "" + +#: ../../howto/unicode.rst:317 +msgid "" +">>> s = \"a\\xac\\u1234\\u20ac\\U00008000\"\n" +"... # ^^^^ two-digit hex escape\n" +"... # ^^^^^^ four-digit Unicode escape\n" +"... # ^^^^^^^^^^ eight-digit Unicode escape\n" +">>> [ord(c) for c in s]\n" +"[97, 172, 4660, 8364, 32768]" +msgstr "" + +#: ../../howto/unicode.rst:324 +msgid "" +"Using escape sequences for code points greater than 127 is fine in small " +"doses, but becomes an annoyance if you're using many accented characters, as " +"you would in a program with messages in French or some other accent-using " +"language. You can also assemble strings using the :func:`chr` built-in " +"function, but this is even more tedious." +msgstr "" + +#: ../../howto/unicode.rst:330 +msgid "" +"Ideally, you'd want to be able to write literals in your language's natural " +"encoding. You could then edit Python source code with your favorite editor " +"which would display the accented characters naturally, and have the right " +"characters used at runtime." +msgstr "" + +#: ../../howto/unicode.rst:335 +msgid "" +"Python supports writing source code in UTF-8 by default, but you can use " +"almost any encoding if you declare the encoding being used. This is done by " +"including a special comment as either the first or second line of the source " +"file::" +msgstr "" + +#: ../../howto/unicode.rst:339 +msgid "" +"#!/usr/bin/env python\n" +"# -*- coding: latin-1 -*-\n" +"\n" +"u = 'abcdé'\n" +"print(ord(u[-1]))" +msgstr "" + +#: ../../howto/unicode.rst:345 +msgid "" +"The syntax is inspired by Emacs's notation for specifying variables local to " +"a file. Emacs supports many different variables, but Python only supports " +"'coding'. The ``-*-`` symbols indicate to Emacs that the comment is " +"special; they have no significance to Python but are a convention. Python " +"looks for ``coding: name`` or ``coding=name`` in the comment." +msgstr "" + +#: ../../howto/unicode.rst:351 +msgid "" +"If you don't include such a comment, the default encoding used will be UTF-8 " +"as already mentioned. See also :pep:`263` for more information." +msgstr "" + +#: ../../howto/unicode.rst:356 +msgid "Unicode Properties" +msgstr "" + +#: ../../howto/unicode.rst:358 +msgid "" +"The Unicode specification includes a database of information about code " +"points. For each defined code point, the information includes the " +"character's name, its category, the numeric value if applicable (for " +"characters representing numeric concepts such as the Roman numerals, " +"fractions such as one-third and four-fifths, etc.). There are also display-" +"related properties, such as how to use the code point in bidirectional text." +msgstr "" + +#: ../../howto/unicode.rst:366 +msgid "" +"The following program displays some information about several characters, " +"and prints the numeric value of one particular character::" +msgstr "" + +#: ../../howto/unicode.rst:369 +msgid "" +"import unicodedata\n" +"\n" +"u = chr(233) + chr(0x0bf2) + chr(3972) + chr(6000) + chr(13231)\n" +"\n" +"for i, c in enumerate(u):\n" +" print(i, '%04x' % ord(c), unicodedata.category(c), end=\" \")\n" +" print(unicodedata.name(c))\n" +"\n" +"# Get numeric value of second character\n" +"print(unicodedata.numeric(u[1]))" +msgstr "" + +#: ../../howto/unicode.rst:380 +msgid "When run, this prints:" +msgstr "" + +#: ../../howto/unicode.rst:382 +msgid "" +"0 00e9 Ll LATIN SMALL LETTER E WITH ACUTE\n" +"1 0bf2 No TAMIL NUMBER ONE THOUSAND\n" +"2 0f84 Mn TIBETAN MARK HALANTA\n" +"3 1770 Lo TAGBANWA LETTER SA\n" +"4 33af So SQUARE RAD OVER S SQUARED\n" +"1000.0" +msgstr "" + +#: ../../howto/unicode.rst:391 +msgid "" +"The category codes are abbreviations describing the nature of the character. " +"These are grouped into categories such as \"Letter\", \"Number\", " +"\"Punctuation\", or \"Symbol\", which in turn are broken up into " +"subcategories. To take the codes from the above output, ``'Ll'`` means " +"'Letter, lowercase', ``'No'`` means \"Number, other\", ``'Mn'`` is \"Mark, " +"nonspacing\", and ``'So'`` is \"Symbol, other\". See `the General Category " +"Values section of the Unicode Character Database documentation `_ for a list of " +"category codes." +msgstr "" + +#: ../../howto/unicode.rst:402 +msgid "Comparing Strings" +msgstr "" + +#: ../../howto/unicode.rst:404 +msgid "" +"Unicode adds some complication to comparing strings, because the same set of " +"characters can be represented by different sequences of code points. For " +"example, a letter like 'ê' can be represented as a single code point U+00EA, " +"or as U+0065 U+0302, which is the code point for 'e' followed by a code " +"point for 'COMBINING CIRCUMFLEX ACCENT'. These will produce the same output " +"when printed, but one is a string of length 1 and the other is of length 2." +msgstr "" + +#: ../../howto/unicode.rst:412 +msgid "" +"One tool for a case-insensitive comparison is the :meth:`~str.casefold` " +"string method that converts a string to a case-insensitive form following an " +"algorithm described by the Unicode Standard. This algorithm has special " +"handling for characters such as the German letter 'ß' (code point U+00DF), " +"which becomes the pair of lowercase letters 'ss'." +msgstr "" + +#: ../../howto/unicode.rst:421 +msgid "" +">>> street = 'Gürzenichstraße'\n" +">>> street.casefold()\n" +"'gürzenichstrasse'" +msgstr "" + +#: ../../howto/unicode.rst:425 +msgid "" +"A second tool is the :mod:`unicodedata` " +"module's :func:`~unicodedata.normalize` function that converts strings to " +"one of several normal forms, where letters followed by a combining character " +"are replaced with single characters. :func:`~unicodedata.normalize` can be " +"used to perform string comparisons that won't falsely report inequality if " +"two strings use combining characters differently:" +msgstr "" + +#: ../../howto/unicode.rst:434 +msgid "" +"import unicodedata\n" +"\n" +"def compare_strs(s1, s2):\n" +" def NFD(s):\n" +" return unicodedata.normalize('NFD', s)\n" +"\n" +" return NFD(s1) == NFD(s2)\n" +"\n" +"single_char = 'ê'\n" +"multiple_chars = '\\N{LATIN SMALL LETTER E}\\N{COMBINING CIRCUMFLEX " +"ACCENT}'\n" +"print('length of first string=', len(single_char))\n" +"print('length of second string=', len(multiple_chars))\n" +"print(compare_strs(single_char, multiple_chars))" +msgstr "" + +#: ../../howto/unicode.rst:448 +msgid "When run, this outputs:" +msgstr "" + +#: ../../howto/unicode.rst:450 +msgid "" +"$ python compare-strs.py\n" +"length of first string= 1\n" +"length of second string= 2\n" +"True" +msgstr "" + +#: ../../howto/unicode.rst:457 +msgid "" +"The first argument to the :func:`~unicodedata.normalize` function is a " +"string giving the desired normalization form, which can be one of 'NFC', " +"'NFKC', 'NFD', and 'NFKD'." +msgstr "" + +#: ../../howto/unicode.rst:461 +msgid "The Unicode Standard also specifies how to do caseless comparisons::" +msgstr "" + +#: ../../howto/unicode.rst:463 +msgid "" +"import unicodedata\n" +"\n" +"def compare_caseless(s1, s2):\n" +" def NFD(s):\n" +" return unicodedata.normalize('NFD', s)\n" +"\n" +" return NFD(NFD(s1).casefold()) == NFD(NFD(s2).casefold())\n" +"\n" +"# Example usage\n" +"single_char = 'ê'\n" +"multiple_chars = '\\N{LATIN CAPITAL LETTER E}\\N{COMBINING CIRCUMFLEX " +"ACCENT}'\n" +"\n" +"print(compare_caseless(single_char, multiple_chars))" +msgstr "" + +#: ../../howto/unicode.rst:477 +msgid "" +"This will print ``True``. (Why is :func:`!NFD` invoked twice? Because " +"there are a few characters that make :meth:`~str.casefold` return a non-" +"normalized string, so the result needs to be normalized again. See section " +"3.13 of the Unicode Standard for a discussion and an example.)" +msgstr "" + +#: ../../howto/unicode.rst:484 +msgid "Unicode Regular Expressions" +msgstr "" + +#: ../../howto/unicode.rst:486 +msgid "" +"The regular expressions supported by the :mod:`re` module can be provided " +"either as bytes or strings. Some of the special character sequences such as " +"``\\d`` and ``\\w`` have different meanings depending on whether the pattern " +"is supplied as bytes or a string. For example, ``\\d`` will match the " +"characters ``[0-9]`` in bytes but in strings will match any character that's " +"in the ``'Nd'`` category." +msgstr "" + +#: ../../howto/unicode.rst:493 +msgid "" +"The string in this example has the number 57 written in both Thai and Arabic " +"numerals::" +msgstr "" + +#: ../../howto/unicode.rst:496 +msgid "" +"import re\n" +"p = re.compile(r'\\d+')\n" +"\n" +"s = \"Over \\u0e55\\u0e57 57 flavours\"\n" +"m = p.search(s)\n" +"print(repr(m.group()))" +msgstr "" + +#: ../../howto/unicode.rst:503 +msgid "" +"When executed, ``\\d+`` will match the Thai numerals and print them out. If " +"you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " +"match the substring \"57\" instead." +msgstr "" + +#: ../../howto/unicode.rst:507 +msgid "" +"Similarly, ``\\w`` matches a wide variety of Unicode characters but only " +"``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " +"will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``." +msgstr "" + +#: ../../howto/unicode.rst:518 +msgid "Some good alternative discussions of Python's Unicode support are:" +msgstr "" + +#: ../../howto/unicode.rst:520 +msgid "" +"`Processing Text Files in Python 3 `_, " +"by Nick Coghlan." +msgstr "" + +#: ../../howto/unicode.rst:521 +msgid "" +"`Pragmatic Unicode `_, a PyCon " +"2012 presentation by Ned Batchelder." +msgstr "" + +#: ../../howto/unicode.rst:523 +msgid "" +"The :class:`str` type is described in the Python library reference " +"at :ref:`textseq`." +msgstr "" + +#: ../../howto/unicode.rst:526 +msgid "The documentation for the :mod:`unicodedata` module." +msgstr "" + +#: ../../howto/unicode.rst:528 +msgid "The documentation for the :mod:`codecs` module." +msgstr "" + +#: ../../howto/unicode.rst:530 +msgid "" +"Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " +"slides) `_ at " +"EuroPython 2002. The slides are an excellent overview of the design of " +"Python 2's Unicode features (where the Unicode string type is called " +"``unicode`` and literals start with ``u``)." +msgstr "" + +#: ../../howto/unicode.rst:538 +msgid "Reading and Writing Unicode Data" +msgstr "" + +#: ../../howto/unicode.rst:540 +msgid "" +"Once you've written some code that works with Unicode data, the next problem " +"is input/output. How do you get Unicode strings into your program, and how " +"do you convert Unicode into a form suitable for storage or transmission?" +msgstr "" + +#: ../../howto/unicode.rst:544 +msgid "" +"It's possible that you may not need to do anything depending on your input " +"sources and output destinations; you should check whether the libraries used " +"in your application support Unicode natively. XML parsers often return " +"Unicode data, for example. Many relational databases also support Unicode-" +"valued columns and can return Unicode values from an SQL query." +msgstr "" + +#: ../../howto/unicode.rst:550 +msgid "" +"Unicode data is usually converted to a particular encoding before it gets " +"written to disk or sent over a socket. It's possible to do all the work " +"yourself: open a file, read an 8-bit bytes object from it, and convert the " +"bytes with ``bytes.decode(encoding)``. However, the manual approach is not " +"recommended." +msgstr "" + +#: ../../howto/unicode.rst:555 +msgid "" +"One problem is the multi-byte nature of encodings; one Unicode character can " +"be represented by several bytes. If you want to read the file in arbitrary-" +"sized chunks (say, 1024 or 4096 bytes), you need to write error-handling " +"code to catch the case where only part of the bytes encoding a single " +"Unicode character are read at the end of a chunk. One solution would be to " +"read the entire file into memory and then perform the decoding, but that " +"prevents you from working with files that are extremely large; if you need " +"to read a 2 GiB file, you need 2 GiB of RAM. (More, really, since for at " +"least a moment you'd need to have both the encoded string and its Unicode " +"version in memory.)" +msgstr "" + +#: ../../howto/unicode.rst:565 +msgid "" +"The solution would be to use the low-level decoding interface to catch the " +"case of partial coding sequences. The work of implementing this has already " +"been done for you: the built-in :func:`open` function can return a file-like " +"object that assumes the file's contents are in a specified encoding and " +"accepts Unicode parameters for methods such as :meth:`~io.TextIOBase.read` " +"and :meth:`~io.TextIOBase.write`. This works through :func:`open`\\'s " +"*encoding* and *errors* parameters which are interpreted just like those " +"in :meth:`str.encode` and :meth:`bytes.decode`." +msgstr "" + +#: ../../howto/unicode.rst:574 +msgid "Reading Unicode from a file is therefore simple::" +msgstr "" + +#: ../../howto/unicode.rst:576 +msgid "" +"with open('unicode.txt', encoding='utf-8') as f:\n" +" for line in f:\n" +" print(repr(line))" +msgstr "" + +#: ../../howto/unicode.rst:580 +msgid "" +"It's also possible to open files in update mode, allowing both reading and " +"writing::" +msgstr "" + +#: ../../howto/unicode.rst:583 +msgid "" +"with open('test', encoding='utf-8', mode='w+') as f:\n" +" f.write('\\u4500 blah blah blah\\n')\n" +" f.seek(0)\n" +" print(repr(f.readline()[:1]))" +msgstr "" + +#: ../../howto/unicode.rst:588 +msgid "" +"The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is " +"often written as the first character of a file in order to assist with " +"autodetection of the file's byte ordering. Some encodings, such as UTF-16, " +"expect a BOM to be present at the start of a file; when such an encoding is " +"used, the BOM will be automatically written as the first character and will " +"be silently dropped when the file is read. There are variants of these " +"encodings, such as 'utf-16-le' and 'utf-16-be' for little-endian and big-" +"endian encodings, that specify one particular byte ordering and don't skip " +"the BOM." +msgstr "" + +#: ../../howto/unicode.rst:597 +msgid "" +"In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 " +"encoded files; the name is misleading since UTF-8 is not byte-order " +"dependent. The mark simply announces that the file is encoded in UTF-8. For " +"reading such files, use the 'utf-8-sig' codec to automatically skip the mark " +"if present." +msgstr "" + +#: ../../howto/unicode.rst:604 +msgid "Unicode filenames" +msgstr "" + +#: ../../howto/unicode.rst:606 +msgid "" +"Most of the operating systems in common use today support filenames that " +"contain arbitrary Unicode characters. Usually this is implemented by " +"converting the Unicode string into some encoding that varies depending on " +"the system. Today Python is converging on using UTF-8: Python on MacOS has " +"used UTF-8 for several versions, and Python 3.6 switched to using UTF-8 on " +"Windows as well. On Unix systems, there will only be a :term:`filesystem " +"encoding `. if you've set the " +"``LANG`` or ``LC_CTYPE`` environment variables; if you haven't, the default " +"encoding is again UTF-8." +msgstr "" + +#: ../../howto/unicode.rst:616 +msgid "" +"The :func:`sys.getfilesystemencoding` function returns the encoding to use " +"on your current system, in case you want to do the encoding manually, but " +"there's not much reason to bother. When opening a file for reading or " +"writing, you can usually just provide the Unicode string as the filename, " +"and it will be automatically converted to the right encoding for you::" +msgstr "" + +#: ../../howto/unicode.rst:622 +msgid "" +"filename = 'filename\\u4500abc'\n" +"with open(filename, 'w') as f:\n" +" f.write('blah\\n')" +msgstr "" + +#: ../../howto/unicode.rst:626 +msgid "" +"Functions in the :mod:`os` module such as :func:`os.stat` will also accept " +"Unicode filenames." +msgstr "" + +#: ../../howto/unicode.rst:629 +msgid "" +"The :func:`os.listdir` function returns filenames, which raises an issue: " +"should it return the Unicode version of filenames, or should it return bytes " +"containing the encoded versions? :func:`os.listdir` can do both, depending " +"on whether you provided the directory path as bytes or a Unicode string. If " +"you pass a Unicode string as the path, filenames will be decoded using the " +"filesystem's encoding and a list of Unicode strings will be returned, while " +"passing a byte path will return the filenames as bytes. For example, " +"assuming the default :term:`filesystem encoding ` is UTF-8, running the following program::" +msgstr "" + +#: ../../howto/unicode.rst:639 +msgid "" +"fn = 'filename\\u4500abc'\n" +"f = open(fn, 'w')\n" +"f.close()\n" +"\n" +"import os\n" +"print(os.listdir(b'.'))\n" +"print(os.listdir('.'))" +msgstr "" + +#: ../../howto/unicode.rst:647 +msgid "will produce the following output:" +msgstr "" + +#: ../../howto/unicode.rst:649 +msgid "" +"$ python listdir-test.py\n" +"[b'filename\\xe4\\x94\\x80abc', ...]\n" +"['filename\\u4500abc', ...]" +msgstr "" + +#: ../../howto/unicode.rst:655 +msgid "" +"The first list contains UTF-8-encoded filenames, and the second list " +"contains the Unicode versions." +msgstr "" + +#: ../../howto/unicode.rst:658 +msgid "" +"Note that on most occasions, you should can just stick with using Unicode " +"with these APIs. The bytes APIs should only be used on systems where " +"undecodable file names can be present; that's pretty much only Unix systems " +"now." +msgstr "" + +#: ../../howto/unicode.rst:665 +msgid "Tips for Writing Unicode-aware Programs" +msgstr "" + +#: ../../howto/unicode.rst:667 +msgid "" +"This section provides some suggestions on writing software that deals with " +"Unicode." +msgstr "" + +#: ../../howto/unicode.rst:670 +msgid "The most important tip is:" +msgstr "" + +#: ../../howto/unicode.rst:672 +msgid "" +"Software should only work with Unicode strings internally, decoding the " +"input data as soon as possible and encoding the output only at the end." +msgstr "" + +#: ../../howto/unicode.rst:675 +msgid "" +"If you attempt to write processing functions that accept both Unicode and " +"byte strings, you will find your program vulnerable to bugs wherever you " +"combine the two different kinds of strings. There is no automatic encoding " +"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " +"raised." +msgstr "" + +#: ../../howto/unicode.rst:680 +msgid "" +"When using data coming from a web browser or some other untrusted source, a " +"common technique is to check for illegal characters in a string before using " +"the string in a generated command line or storing it in a database. If " +"you're doing this, be careful to check the decoded string, not the encoded " +"bytes data; some encodings may have interesting properties, such as not " +"being bijective or not being fully ASCII-compatible. This is especially " +"true if the input data also specifies the encoding, since the attacker can " +"then choose a clever way to hide malicious text in the encoded bytestream." +msgstr "" + +#: ../../howto/unicode.rst:691 +msgid "Converting Between File Encodings" +msgstr "" + +#: ../../howto/unicode.rst:693 +msgid "" +"The :class:`~codecs.StreamRecoder` class can transparently convert between " +"encodings, taking a stream that returns data in encoding #1 and behaving " +"like a stream returning data in encoding #2." +msgstr "" + +#: ../../howto/unicode.rst:697 +msgid "" +"For example, if you have an input file *f* that's in Latin-1, you can wrap " +"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" +msgstr "" + +#: ../../howto/unicode.rst:701 +msgid "" +"new_f = codecs.StreamRecoder(f,\n" +" # en/decoder: used by read() to encode its results and\n" +" # by write() to decode its input.\n" +" codecs.getencoder('utf-8'), codecs.getdecoder('utf-8'),\n" +"\n" +" # reader/writer: used to read and write to the stream.\n" +" codecs.getreader('latin-1'), codecs.getwriter('latin-1') )" +msgstr "" + +#: ../../howto/unicode.rst:711 +msgid "Files in an Unknown Encoding" +msgstr "" + +#: ../../howto/unicode.rst:713 +msgid "" +"What can you do if you need to make a change to a file, but don't know the " +"file's encoding? If you know the encoding is ASCII-compatible and only want " +"to examine or modify the ASCII parts, you can open the file with the " +"``surrogateescape`` error handler::" +msgstr "" + +#: ../../howto/unicode.rst:718 +msgid "" +"with open(fname, 'r', encoding=\"ascii\", errors=\"surrogateescape\") as f:\n" +" data = f.read()\n" +"\n" +"# make changes to the string 'data'\n" +"\n" +"with open(fname + '.new', 'w',\n" +" encoding=\"ascii\", errors=\"surrogateescape\") as f:\n" +" f.write(data)" +msgstr "" + +#: ../../howto/unicode.rst:727 +msgid "" +"The ``surrogateescape`` error handler will decode any non-ASCII bytes as " +"code points in a special range running from U+DC80 to U+DCFF. These code " +"points will then turn back into the same bytes when the ``surrogateescape`` " +"error handler is used to encode the data and write it back out." +msgstr "" + +#: ../../howto/unicode.rst:737 +msgid "" +"One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " +"Beazley, discusses text processing and binary data handling." +msgstr "" + +#: ../../howto/unicode.rst:741 +msgid "" +"The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" +"aware Applications in Python\" `_ discuss questions of " +"character encodings as well as how to internationalize and localize an " +"application. These slides cover Python 2.x only." +msgstr "" + +#: ../../howto/unicode.rst:747 +msgid "" +"`The Guts of Unicode in Python `_ is a PyCon 2013 talk by Benjamin Peterson that " +"discusses the internal Unicode representation in Python 3.3." +msgstr "" + +#: ../../howto/unicode.rst:754 +msgid "Acknowledgements" +msgstr "" + +#: ../../howto/unicode.rst:756 +msgid "" +"The initial draft of this document was written by Andrew Kuchling. It has " +"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " +"Kuchling, and Ezio Melotti." +msgstr "" + +#: ../../howto/unicode.rst:760 +msgid "" +"Thanks to the following people who have noted errors or offered suggestions " +"on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " +"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " +"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." +msgstr "" diff --git a/howto/urllib2.po b/howto/urllib2.po new file mode 100644 index 0000000..6c8f42e --- /dev/null +++ b/howto/urllib2.po @@ -0,0 +1,808 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../howto/urllib2.rst:5 +msgid "HOWTO Fetch Internet Resources Using The urllib Package" +msgstr "" + +#: ../../howto/urllib2.rst:0 +msgid "Author" +msgstr "" + +#: ../../howto/urllib2.rst:7 +msgid "`Michael Foord `_" +msgstr "" + +#: ../../howto/urllib2.rst:11 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../howto/urllib2.rst:15 +msgid "" +"You may also find useful the following article on fetching web resources " +"with Python:" +msgstr "" + +#: ../../howto/urllib2.rst:18 +msgid "" +"`Basic Authentication `_" +msgstr "" + +#: ../../howto/urllib2.rst:20 +msgid "A tutorial on *Basic Authentication*, with examples in Python." +msgstr "" + +#: ../../howto/urllib2.rst:22 +msgid "" +"**urllib.request** is a Python module for fetching URLs (Uniform Resource " +"Locators). It offers a very simple interface, in the form of the *urlopen* " +"function. This is capable of fetching URLs using a variety of different " +"protocols. It also offers a slightly more complex interface for handling " +"common situations - like basic authentication, cookies, proxies and so on. " +"These are provided by objects called handlers and openers." +msgstr "" + +#: ../../howto/urllib2.rst:29 +msgid "" +"urllib.request supports fetching URLs for many \"URL schemes\" (identified " +"by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " +"URL scheme of ``\"ftp://python.org/\"``) using their associated network " +"protocols (e.g. FTP, HTTP). This tutorial focuses on the most common case, " +"HTTP." +msgstr "" + +#: ../../howto/urllib2.rst:34 +msgid "" +"For straightforward situations *urlopen* is very easy to use. But as soon as " +"you encounter errors or non-trivial cases when opening HTTP URLs, you will " +"need some understanding of the HyperText Transfer Protocol. The most " +"comprehensive and authoritative reference to HTTP is :rfc:`2616`. This is a " +"technical document and not intended to be easy to read. This HOWTO aims to " +"illustrate using *urllib*, with enough detail about HTTP to help you " +"through. It is not intended to replace the :mod:`urllib.request` docs, but " +"is supplementary to them." +msgstr "" + +#: ../../howto/urllib2.rst:44 +msgid "Fetching URLs" +msgstr "" + +#: ../../howto/urllib2.rst:46 +msgid "The simplest way to use urllib.request is as follows::" +msgstr "" + +#: ../../howto/urllib2.rst:48 +msgid "" +"import urllib.request\n" +"with urllib.request.urlopen('http://python.org/') as response:\n" +" html = response.read()" +msgstr "" + +#: ../../howto/urllib2.rst:52 +msgid "" +"If you wish to retrieve a resource via URL and store it in a temporary " +"location, you can do so via the :func:`shutil.copyfileobj` " +"and :func:`tempfile.NamedTemporaryFile` functions::" +msgstr "" + +#: ../../howto/urllib2.rst:56 +msgid "" +"import shutil\n" +"import tempfile\n" +"import urllib.request\n" +"\n" +"with urllib.request.urlopen('http://python.org/') as response:\n" +" with tempfile.NamedTemporaryFile(delete=False) as tmp_file:\n" +" shutil.copyfileobj(response, tmp_file)\n" +"\n" +"with open(tmp_file.name) as html:\n" +" pass" +msgstr "" + +#: ../../howto/urllib2.rst:67 +msgid "" +"Many uses of urllib will be that simple (note that instead of an 'http:' URL " +"we could have used a URL starting with 'ftp:', 'file:', etc.). However, " +"it's the purpose of this tutorial to explain the more complicated cases, " +"concentrating on HTTP." +msgstr "" + +#: ../../howto/urllib2.rst:72 +msgid "" +"HTTP is based on requests and responses - the client makes requests and " +"servers send responses. urllib.request mirrors this with a ``Request`` " +"object which represents the HTTP request you are making. In its simplest " +"form you create a Request object that specifies the URL you want to fetch. " +"Calling ``urlopen`` with this Request object returns a response object for " +"the URL requested. This response is a file-like object, which means you can " +"for example call ``.read()`` on the response::" +msgstr "" + +#: ../../howto/urllib2.rst:80 +msgid "" +"import urllib.request\n" +"\n" +"req = urllib.request.Request('http://python.org/')\n" +"with urllib.request.urlopen(req) as response:\n" +" the_page = response.read()" +msgstr "" + +#: ../../howto/urllib2.rst:86 +msgid "" +"Note that urllib.request makes use of the same Request interface to handle " +"all URL schemes. For example, you can make an FTP request like so::" +msgstr "" + +#: ../../howto/urllib2.rst:89 +msgid "req = urllib.request.Request('ftp://example.com/')" +msgstr "" + +#: ../../howto/urllib2.rst:91 +msgid "" +"In the case of HTTP, there are two extra things that Request objects allow " +"you to do: First, you can pass data to be sent to the server. Second, you " +"can pass extra information (\"metadata\") *about* the data or about the " +"request itself, to the server - this information is sent as HTTP " +"\"headers\". Let's look at each of these in turn." +msgstr "" + +#: ../../howto/urllib2.rst:98 +msgid "Data" +msgstr "" + +#: ../../howto/urllib2.rst:100 +msgid "" +"Sometimes you want to send data to a URL (often the URL will refer to a CGI " +"(Common Gateway Interface) script or other web application). With HTTP, this " +"is often done using what's known as a **POST** request. This is often what " +"your browser does when you submit a HTML form that you filled in on the web. " +"Not all POSTs have to come from forms: you can use a POST to transmit " +"arbitrary data to your own application. In the common case of HTML forms, " +"the data needs to be encoded in a standard way, and then passed to the " +"Request object as the ``data`` argument. The encoding is done using a " +"function from the :mod:`urllib.parse` library. ::" +msgstr "" + +#: ../../howto/urllib2.rst:110 +msgid "" +"import urllib.parse\n" +"import urllib.request\n" +"\n" +"url = 'http://www.someserver.com/cgi-bin/register.cgi'\n" +"values = {'name' : 'Michael Foord',\n" +" 'location' : 'Northampton',\n" +" 'language' : 'Python' }\n" +"\n" +"data = urllib.parse.urlencode(values)\n" +"data = data.encode('ascii') # data should be bytes\n" +"req = urllib.request.Request(url, data)\n" +"with urllib.request.urlopen(req) as response:\n" +" the_page = response.read()" +msgstr "" + +#: ../../howto/urllib2.rst:124 +msgid "" +"Note that other encodings are sometimes required (e.g. for file upload from " +"HTML forms - see `HTML Specification, Form Submission `_ for more details)." +msgstr "" + +#: ../../howto/urllib2.rst:129 +msgid "" +"If you do not pass the ``data`` argument, urllib uses a **GET** request. One " +"way in which GET and POST requests differ is that POST requests often have " +"\"side-effects\": they change the state of the system in some way (for " +"example by placing an order with the website for a hundredweight of tinned " +"spam to be delivered to your door). Though the HTTP standard makes it clear " +"that POSTs are intended to *always* cause side-effects, and GET requests " +"*never* to cause side-effects, nothing prevents a GET request from having " +"side-effects, nor a POST requests from having no side-effects. Data can also " +"be passed in an HTTP GET request by encoding it in the URL itself." +msgstr "" + +#: ../../howto/urllib2.rst:139 +msgid "This is done as follows::" +msgstr "" + +#: ../../howto/urllib2.rst:141 +msgid "" +">>> import urllib.request\n" +">>> import urllib.parse\n" +">>> data = {}\n" +">>> data['name'] = 'Somebody Here'\n" +">>> data['location'] = 'Northampton'\n" +">>> data['language'] = 'Python'\n" +">>> url_values = urllib.parse.urlencode(data)\n" +">>> print(url_values) # The order may differ from below.\n" +"name=Somebody+Here&language=Python&location=Northampton\n" +">>> url = 'http://www.example.com/example.cgi'\n" +">>> full_url = url + '?' + url_values\n" +">>> data = urllib.request.urlopen(full_url)" +msgstr "" + +#: ../../howto/urllib2.rst:154 +msgid "" +"Notice that the full URL is created by adding a ``?`` to the URL, followed " +"by the encoded values." +msgstr "" + +#: ../../howto/urllib2.rst:158 +msgid "Headers" +msgstr "" + +#: ../../howto/urllib2.rst:160 +msgid "" +"We'll discuss here one particular HTTP header, to illustrate how to add " +"headers to your HTTP request." +msgstr "" + +#: ../../howto/urllib2.rst:163 +msgid "" +"Some websites [#]_ dislike being browsed by programs, or send different " +"versions to different browsers [#]_. By default urllib identifies itself as " +"``Python-urllib/x.y`` (where ``x`` and ``y`` are the major and minor version " +"numbers of the Python release, e.g. ``Python-urllib/2.5``), which may " +"confuse the site, or just plain not work. The way a browser identifies " +"itself is through the ``User-Agent`` header [#]_. When you create a Request " +"object you can pass a dictionary of headers in. The following example makes " +"the same request as above, but identifies itself as a version of Internet " +"Explorer [#]_. ::" +msgstr "" + +#: ../../howto/urllib2.rst:174 +msgid "" +"import urllib.parse\n" +"import urllib.request\n" +"\n" +"url = 'http://www.someserver.com/cgi-bin/register.cgi'\n" +"user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'\n" +"values = {'name': 'Michael Foord',\n" +" 'location': 'Northampton',\n" +" 'language': 'Python' }\n" +"headers = {'User-Agent': user_agent}\n" +"\n" +"data = urllib.parse.urlencode(values)\n" +"data = data.encode('ascii')\n" +"req = urllib.request.Request(url, data, headers)\n" +"with urllib.request.urlopen(req) as response:\n" +" the_page = response.read()" +msgstr "" + +#: ../../howto/urllib2.rst:190 +msgid "" +"The response also has two useful methods. See the section on `info and " +"geturl`_ which comes after we have a look at what happens when things go " +"wrong." +msgstr "" + +#: ../../howto/urllib2.rst:195 +msgid "Handling Exceptions" +msgstr "Kivételek kezelése" + +#: ../../howto/urllib2.rst:197 +msgid "" +"*urlopen* raises :exc:`~urllib.error.URLError` when it cannot handle a " +"response (though as usual with Python APIs, built-in exceptions such " +"as :exc:`ValueError`, :exc:`TypeError` etc. may also be raised)." +msgstr "" + +#: ../../howto/urllib2.rst:201 +msgid "" +":exc:`~urllib.error.HTTPError` is the subclass " +"of :exc:`~urllib.error.URLError` raised in the specific case of HTTP URLs." +msgstr "" + +#: ../../howto/urllib2.rst:204 +msgid "The exception classes are exported from the :mod:`urllib.error` module." +msgstr "" + +#: ../../howto/urllib2.rst:207 +msgid "URLError" +msgstr "" + +#: ../../howto/urllib2.rst:209 +msgid "" +"Often, URLError is raised because there is no network connection (no route " +"to the specified server), or the specified server doesn't exist. In this " +"case, the exception raised will have a 'reason' attribute, which is a tuple " +"containing an error code and a text error message." +msgstr "" + +#: ../../howto/urllib2.rst:214 +msgid "e.g. ::" +msgstr "" + +#: ../../howto/urllib2.rst:216 +msgid "" +">>> req = urllib.request.Request('http://www.pretend_server.org')\n" +">>> try: urllib.request.urlopen(req)\n" +"... except urllib.error.URLError as e:\n" +"... print(e.reason)\n" +"...\n" +"(4, 'getaddrinfo failed')" +msgstr "" + +#: ../../howto/urllib2.rst:225 +msgid "HTTPError" +msgstr "" + +#: ../../howto/urllib2.rst:227 +msgid "" +"Every HTTP response from the server contains a numeric \"status code\". " +"Sometimes the status code indicates that the server is unable to fulfil the " +"request. The default handlers will handle some of these responses for you " +"(for example, if the response is a \"redirection\" that requests the client " +"fetch the document from a different URL, urllib will handle that for you). " +"For those it can't handle, urlopen will raise " +"an :exc:`~urllib.error.HTTPError`. Typical errors include '404' (page not " +"found), '403' (request forbidden), and '401' (authentication required)." +msgstr "" + +#: ../../howto/urllib2.rst:235 +msgid "" +"See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." +msgstr "" + +#: ../../howto/urllib2.rst:237 +msgid "" +"The :exc:`~urllib.error.HTTPError` instance raised will have an integer " +"'code' attribute, which corresponds to the error sent by the server." +msgstr "" + +#: ../../howto/urllib2.rst:241 +msgid "Error Codes" +msgstr "" + +#: ../../howto/urllib2.rst:243 +msgid "" +"Because the default handlers handle redirects (codes in the 300 range), and " +"codes in the 100--299 range indicate success, you will usually only see " +"error codes in the 400--599 range." +msgstr "" + +#: ../../howto/urllib2.rst:247 +msgid "" +":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " +"of response codes that shows all the response codes used by :rfc:`2616`. An " +"excerpt from the dictionary is shown below ::" +msgstr "" + +#: ../../howto/urllib2.rst:251 +msgid "" +"responses = {\n" +" ...\n" +" : ('OK', 'Request fulfilled, document follows'),\n" +" ...\n" +" : ('Forbidden',\n" +" 'Request forbidden -- authorization will " +"'\n" +" 'not help'),\n" +" : ('Not Found',\n" +" 'Nothing matches the given URI'),\n" +" ...\n" +" : (\"I'm a Teapot\",\n" +" 'Server refuses to brew coffee because " +"'\n" +" 'it is a teapot'),\n" +" ...\n" +" : ('Service Unavailable',\n" +" 'The server cannot process the " +"'\n" +" 'request due to a high load'),\n" +" ...\n" +" }" +msgstr "" + +#: ../../howto/urllib2.rst:271 +msgid "" +"When an error is raised the server responds by returning an HTTP error code " +"*and* an error page. You can use the :exc:`~urllib.error.HTTPError` instance " +"as a response on the page returned. This means that as well as the code " +"attribute, it also has read, geturl, and info, methods as returned by the " +"``urllib.response`` module::" +msgstr "" + +#: ../../howto/urllib2.rst:276 +msgid "" +">>> req = urllib.request.Request('http://www.python.org/fish.html')\n" +">>> try:\n" +"... urllib.request.urlopen(req)\n" +"... except urllib.error.HTTPError as e:\n" +"... print(e.code)\n" +"... print(e.read())\n" +"...\n" +"404\n" +"b'\\n\\n\\nPage Not Found\\n\n" +" ..." +msgstr "" + +#: ../../howto/urllib2.rst:291 +msgid "Wrapping it Up" +msgstr "" + +#: ../../howto/urllib2.rst:293 +msgid "" +"So if you want to be prepared for :exc:`~urllib.error.HTTPError` " +"*or* :exc:`~urllib.error.URLError` there are two basic approaches. I prefer " +"the second approach." +msgstr "" + +#: ../../howto/urllib2.rst:297 +msgid "Number 1" +msgstr "" + +#: ../../howto/urllib2.rst:302 +msgid "" +"from urllib.request import Request, urlopen\n" +"from urllib.error import URLError, HTTPError\n" +"req = Request(someurl)\n" +"try:\n" +" response = urlopen(req)\n" +"except HTTPError as e:\n" +" print('The server couldn\\'t fulfill the request.')\n" +" print('Error code: ', e.code)\n" +"except URLError as e:\n" +" print('We failed to reach a server.')\n" +" print('Reason: ', e.reason)\n" +"else:\n" +" # everything is fine" +msgstr "" + +#: ../../howto/urllib2.rst:319 +msgid "" +"The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " +"will *also* catch an :exc:`~urllib.error.HTTPError`." +msgstr "" + +#: ../../howto/urllib2.rst:323 +msgid "Number 2" +msgstr "" + +#: ../../howto/urllib2.rst:327 +msgid "" +"from urllib.request import Request, urlopen\n" +"from urllib.error import URLError\n" +"req = Request(someurl)\n" +"try:\n" +" response = urlopen(req)\n" +"except URLError as e:\n" +" if hasattr(e, 'reason'):\n" +" print('We failed to reach a server.')\n" +" print('Reason: ', e.reason)\n" +" elif hasattr(e, 'code'):\n" +" print('The server couldn\\'t fulfill the request.')\n" +" print('Error code: ', e.code)\n" +"else:\n" +" # everything is fine" +msgstr "" + +#: ../../howto/urllib2.rst:344 +msgid "info and geturl" +msgstr "" + +#: ../../howto/urllib2.rst:346 +msgid "" +"The response returned by urlopen (or the :exc:`~urllib.error.HTTPError` " +"instance) has two useful methods :meth:`!info` and :meth:`!geturl` and is " +"defined in the module :mod:`urllib.response`." +msgstr "" + +#: ../../howto/urllib2.rst:350 +msgid "" +"**geturl** - this returns the real URL of the page fetched. This is useful " +"because ``urlopen`` (or the opener object used) may have followed a " +"redirect. The URL of the page fetched may not be the same as the URL " +"requested." +msgstr "" + +#: ../../howto/urllib2.rst:354 +msgid "" +"**info** - this returns a dictionary-like object that describes the page " +"fetched, particularly the headers sent by the server. It is currently " +"an :class:`http.client.HTTPMessage` instance." +msgstr "" + +#: ../../howto/urllib2.rst:358 +msgid "" +"Typical headers include 'Content-length', 'Content-type', and so on. See the " +"`Quick Reference to HTTP Headers `_ for a " +"useful listing of HTTP headers with brief explanations of their meaning and " +"use." +msgstr "" + +#: ../../howto/urllib2.rst:365 +msgid "Openers and Handlers" +msgstr "" + +#: ../../howto/urllib2.rst:367 +msgid "" +"When you fetch a URL you use an opener (an instance of the perhaps " +"confusingly named :class:`urllib.request.OpenerDirector`). Normally we have " +"been using the default opener - via ``urlopen`` - but you can create custom " +"openers. Openers use handlers. All the \"heavy lifting\" is done by the " +"handlers. Each handler knows how to open URLs for a particular URL scheme " +"(http, ftp, etc.), or how to handle an aspect of URL opening, for example " +"HTTP redirections or HTTP cookies." +msgstr "" + +#: ../../howto/urllib2.rst:375 +msgid "" +"You will want to create openers if you want to fetch URLs with specific " +"handlers installed, for example to get an opener that handles cookies, or to " +"get an opener that does not handle redirections." +msgstr "" + +#: ../../howto/urllib2.rst:379 +msgid "" +"To create an opener, instantiate an ``OpenerDirector``, and then call " +"``.add_handler(some_handler_instance)`` repeatedly." +msgstr "" + +#: ../../howto/urllib2.rst:382 +msgid "" +"Alternatively, you can use ``build_opener``, which is a convenience function " +"for creating opener objects with a single function call. ``build_opener`` " +"adds several handlers by default, but provides a quick way to add more and/" +"or override the default handlers." +msgstr "" + +#: ../../howto/urllib2.rst:387 +msgid "" +"Other sorts of handlers you might want to can handle proxies, " +"authentication, and other common but slightly specialised situations." +msgstr "" + +#: ../../howto/urllib2.rst:390 +msgid "" +"``install_opener`` can be used to make an ``opener`` object the (global) " +"default opener. This means that calls to ``urlopen`` will use the opener you " +"have installed." +msgstr "" + +#: ../../howto/urllib2.rst:394 +msgid "" +"Opener objects have an ``open`` method, which can be called directly to " +"fetch urls in the same way as the ``urlopen`` function: there's no need to " +"call ``install_opener``, except as a convenience." +msgstr "" + +#: ../../howto/urllib2.rst:400 +msgid "Basic Authentication" +msgstr "" + +#: ../../howto/urllib2.rst:402 +msgid "" +"To illustrate creating and installing a handler we will use the " +"``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " +"including an explanation of how Basic Authentication works - see the `Basic " +"Authentication Tutorial `__." +msgstr "" + +#: ../../howto/urllib2.rst:408 +msgid "" +"When authentication is required, the server sends a header (as well as the " +"401 error code) requesting authentication. This specifies the " +"authentication scheme and a 'realm'. The header looks like: ``WWW-" +"Authenticate: SCHEME realm=\"REALM\"``." +msgstr "" + +#: ../../howto/urllib2.rst:413 +msgid "e.g." +msgstr "" + +#: ../../howto/urllib2.rst:415 +msgid "WWW-Authenticate: Basic realm=\"cPanel Users\"" +msgstr "" + +#: ../../howto/urllib2.rst:420 +msgid "" +"The client should then retry the request with the appropriate name and " +"password for the realm included as a header in the request. This is 'basic " +"authentication'. In order to simplify this process we can create an instance " +"of ``HTTPBasicAuthHandler`` and an opener to use this handler." +msgstr "" + +#: ../../howto/urllib2.rst:425 +msgid "" +"The ``HTTPBasicAuthHandler`` uses an object called a password manager to " +"handle the mapping of URLs and realms to passwords and usernames. If you " +"know what the realm is (from the authentication header sent by the server), " +"then you can use a ``HTTPPasswordMgr``. Frequently one doesn't care what the " +"realm is. In that case, it is convenient to use " +"``HTTPPasswordMgrWithDefaultRealm``. This allows you to specify a default " +"username and password for a URL. This will be supplied in the absence of you " +"providing an alternative combination for a specific realm. We indicate this " +"by providing ``None`` as the realm argument to the ``add_password`` method." +msgstr "" + +#: ../../howto/urllib2.rst:435 +msgid "" +"The top-level URL is the first URL that requires authentication. URLs " +"\"deeper\" than the URL you pass to .add_password() will also match. ::" +msgstr "" + +#: ../../howto/urllib2.rst:438 +msgid "" +"# create a password manager\n" +"password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()\n" +"\n" +"# Add the username and password.\n" +"# If we knew the realm, we could use it instead of None.\n" +"top_level_url = \"http://example.com/foo/\"\n" +"password_mgr.add_password(None, top_level_url, username, password)\n" +"\n" +"handler = urllib.request.HTTPBasicAuthHandler(password_mgr)\n" +"\n" +"# create \"opener\" (OpenerDirector instance)\n" +"opener = urllib.request.build_opener(handler)\n" +"\n" +"# use the opener to fetch a URL\n" +"opener.open(a_url)\n" +"\n" +"# Install the opener.\n" +"# Now all calls to urllib.request.urlopen use our opener.\n" +"urllib.request.install_opener(opener)" +msgstr "" + +#: ../../howto/urllib2.rst:460 +msgid "" +"In the above example we only supplied our ``HTTPBasicAuthHandler`` to " +"``build_opener``. By default openers have the handlers for normal situations " +"-- ``ProxyHandler`` (if a proxy setting such as an :envvar:`!http_proxy` " +"environment variable is set), ``UnknownHandler``, ``HTTPHandler``, " +"``HTTPDefaultErrorHandler``, ``HTTPRedirectHandler``, ``FTPHandler``, " +"``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." +msgstr "" + +#: ../../howto/urllib2.rst:467 +msgid "" +"``top_level_url`` is in fact *either* a full URL (including the 'http:' " +"scheme component and the hostname and optionally the port number) e.g. " +"``\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " +"optionally including the port number) e.g. ``\"example.com\"`` or " +"``\"example.com:8080\"`` (the latter example includes a port number). The " +"authority, if present, must NOT contain the \"userinfo\" component - for " +"example ``\"joe:password@example.com\"`` is not correct." +msgstr "" + +#: ../../howto/urllib2.rst:477 +msgid "Proxies" +msgstr "" + +#: ../../howto/urllib2.rst:479 +msgid "" +"**urllib** will auto-detect your proxy settings and use those. This is " +"through the ``ProxyHandler``, which is part of the normal handler chain when " +"a proxy setting is detected. Normally that's a good thing, but there are " +"occasions when it may not be helpful [#]_. One way to do this is to setup " +"our own ``ProxyHandler``, with no proxies defined. This is done using " +"similar steps to setting up a `Basic Authentication`_ handler: ::" +msgstr "" + +#: ../../howto/urllib2.rst:486 +msgid "" +">>> proxy_support = urllib.request.ProxyHandler({})\n" +">>> opener = urllib.request.build_opener(proxy_support)\n" +">>> urllib.request.install_opener(opener)" +msgstr "" + +#: ../../howto/urllib2.rst:492 +msgid "" +"Currently ``urllib.request`` *does not* support fetching of ``https`` " +"locations through a proxy. However, this can be enabled by extending " +"urllib.request as shown in the recipe [#]_." +msgstr "" + +#: ../../howto/urllib2.rst:498 +msgid "" +"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " +"the documentation on :func:`~urllib.request.getproxies`." +msgstr "" + +#: ../../howto/urllib2.rst:503 +msgid "Sockets and Layers" +msgstr "" + +#: ../../howto/urllib2.rst:505 +msgid "" +"The Python support for fetching resources from the web is layered. urllib " +"uses the :mod:`http.client` library, which in turn uses the socket library." +msgstr "" + +#: ../../howto/urllib2.rst:508 +msgid "" +"As of Python 2.3 you can specify how long a socket should wait for a " +"response before timing out. This can be useful in applications which have to " +"fetch web pages. By default the socket module has *no timeout* and can hang. " +"Currently, the socket timeout is not exposed at the http.client or " +"urllib.request levels. However, you can set the default timeout globally for " +"all sockets using ::" +msgstr "" + +#: ../../howto/urllib2.rst:514 +msgid "" +"import socket\n" +"import urllib.request\n" +"\n" +"# timeout in seconds\n" +"timeout = 10\n" +"socket.setdefaulttimeout(timeout)\n" +"\n" +"# this call to urllib.request.urlopen now uses the default timeout\n" +"# we have set in the socket module\n" +"req = urllib.request.Request('http://www.voidspace.org.uk')\n" +"response = urllib.request.urlopen(req)" +msgstr "" + +#: ../../howto/urllib2.rst:531 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../howto/urllib2.rst:533 +msgid "This document was reviewed and revised by John Lee." +msgstr "" + +#: ../../howto/urllib2.rst:535 +msgid "Google for example." +msgstr "" + +#: ../../howto/urllib2.rst:536 +msgid "" +"Browser sniffing is a very bad practice for website design - building sites " +"using web standards is much more sensible. Unfortunately a lot of sites " +"still send different versions to different browsers." +msgstr "" + +#: ../../howto/urllib2.rst:539 +msgid "" +"The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " +"5.1; SV1; .NET CLR 1.1.4322)'*" +msgstr "" + +#: ../../howto/urllib2.rst:541 +msgid "" +"For details of more HTTP request headers, see `Quick Reference to HTTP " +"Headers`_." +msgstr "" + +#: ../../howto/urllib2.rst:543 +msgid "" +"In my case I have to use a proxy to access the internet at work. If you " +"attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " +"set to use the proxy, which urllib picks up on. In order to test scripts " +"with a localhost server, I have to prevent urllib from using the proxy." +msgstr "" + +#: ../../howto/urllib2.rst:548 +msgid "" +"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." +msgstr "" diff --git a/installing/index.po b/installing/index.po new file mode 100644 index 0000000..5294076 --- /dev/null +++ b/installing/index.po @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../installing/index.rst:7 +msgid "Installing Python Modules" +msgstr "" + +#: ../../installing/index.rst:0 +msgid "Email" +msgstr "" + +#: ../../installing/index.rst:9 +msgid "distutils-sig@python.org" +msgstr "" + +#: ../../installing/index.rst:11 +msgid "" +"As a popular open source development project, Python has an active " +"supporting community of contributors and users that also make their software " +"available for other Python developers to use under open source license terms." +msgstr "" + +#: ../../installing/index.rst:15 +msgid "" +"This allows Python users to share and collaborate effectively, benefiting " +"from the solutions others have already created to common (and sometimes even " +"rare!) problems, as well as potentially contributing their own solutions to " +"the common pool." +msgstr "" + +#: ../../installing/index.rst:20 +msgid "" +"This guide covers the installation part of the process. For a guide to " +"creating and sharing your own Python projects, refer to the `Python " +"packaging user guide`_." +msgstr "" + +#: ../../installing/index.rst:28 +msgid "" +"For corporate and other institutional users, be aware that many " +"organisations have their own policies around using and contributing to open " +"source software. Please take such policies into account when making use of " +"the distribution and installation tools provided with Python." +msgstr "" + +#: ../../installing/index.rst:35 +msgid "Key terms" +msgstr "" + +#: ../../installing/index.rst:37 +msgid "" +"``pip`` is the preferred installer program. Starting with Python 3.4, it is " +"included by default with the Python binary installers." +msgstr "" + +#: ../../installing/index.rst:39 +msgid "" +"A *virtual environment* is a semi-isolated Python environment that allows " +"packages to be installed for use by a particular application, rather than " +"being installed system wide." +msgstr "" + +#: ../../installing/index.rst:42 +msgid "" +"``venv`` is the standard tool for creating virtual environments, and has " +"been part of Python since Python 3.3. Starting with Python 3.4, it defaults " +"to installing ``pip`` into all created virtual environments." +msgstr "" + +#: ../../installing/index.rst:45 +msgid "" +"``virtualenv`` is a third party alternative (and predecessor) to ``venv``. " +"It allows virtual environments to be used on versions of Python prior to " +"3.4, which either don't provide ``venv`` at all, or aren't able to " +"automatically install ``pip`` into created environments." +msgstr "" + +#: ../../installing/index.rst:49 +msgid "" +"The `Python Package Index `__ is a public repository of " +"open source licensed packages made available for use by other Python users." +msgstr "" + +#: ../../installing/index.rst:52 +msgid "" +"the `Python Packaging Authority `__ is the group of " +"developers and documentation authors responsible for the maintenance and " +"evolution of the standard packaging tools and the associated metadata and " +"file format standards. They maintain a variety of tools, documentation, and " +"issue trackers on `GitHub `__." +msgstr "" + +#: ../../installing/index.rst:58 +msgid "" +"``distutils`` is the original build and distribution system first added to " +"the Python standard library in 1998. While direct use of ``distutils`` is " +"being phased out, it still laid the foundation for the current packaging and " +"distribution infrastructure, and it not only remains part of the standard " +"library, but its name lives on in other ways (such as the name of the " +"mailing list used to coordinate Python packaging standards development)." +msgstr "" + +#: ../../installing/index.rst:66 +msgid "" +"The use of ``venv`` is now recommended for creating virtual environments." +msgstr "" + +#: ../../installing/index.rst:71 +msgid "" +"`Python Packaging User Guide: Creating and using virtual environments " +"`__" +msgstr "" + +#: ../../installing/index.rst:76 +msgid "Basic usage" +msgstr "" + +#: ../../installing/index.rst:78 +msgid "" +"The standard packaging tools are all designed to be used from the command " +"line." +msgstr "" + +#: ../../installing/index.rst:81 +msgid "" +"The following command will install the latest version of a module and its " +"dependencies from the Python Package Index::" +msgstr "" + +#: ../../installing/index.rst:84 +msgid "python -m pip install SomePackage" +msgstr "" + +#: ../../installing/index.rst:88 +msgid "" +"For POSIX users (including macOS and Linux users), the examples in this " +"guide assume the use of a :term:`virtual environment`." +msgstr "" + +#: ../../installing/index.rst:91 +msgid "" +"For Windows users, the examples in this guide assume that the option to " +"adjust the system PATH environment variable was selected when installing " +"Python." +msgstr "" + +#: ../../installing/index.rst:95 +msgid "" +"It's also possible to specify an exact or minimum version directly on the " +"command line. When using comparator operators such as ``>``, ``<`` or some " +"other special character which get interpreted by shell, the package name and " +"the version should be enclosed within double quotes::" +msgstr "" + +#: ../../installing/index.rst:100 +msgid "" +"python -m pip install SomePackage==1.0.4 # specific version\n" +"python -m pip install \"SomePackage>=1.0.4\" # minimum version" +msgstr "" + +#: ../../installing/index.rst:103 +msgid "" +"Normally, if a suitable module is already installed, attempting to install " +"it again will have no effect. Upgrading existing modules must be requested " +"explicitly::" +msgstr "" + +#: ../../installing/index.rst:107 +msgid "python -m pip install --upgrade SomePackage" +msgstr "" + +#: ../../installing/index.rst:109 +msgid "" +"More information and resources regarding ``pip`` and its capabilities can be " +"found in the `Python Packaging User Guide `__." +msgstr "" + +#: ../../installing/index.rst:112 +msgid "" +"Creation of virtual environments is done through the :mod:`venv` module. " +"Installing packages into an active virtual environment uses the commands " +"shown above." +msgstr "" + +#: ../../installing/index.rst:118 +msgid "" +"`Python Packaging User Guide: Installing Python Distribution Packages " +"`__" +msgstr "" + +#: ../../installing/index.rst:123 +msgid "How do I ...?" +msgstr "" + +#: ../../installing/index.rst:125 +msgid "These are quick answers or links for some common tasks." +msgstr "" + +#: ../../installing/index.rst:128 +msgid "... install ``pip`` in versions of Python prior to Python 3.4?" +msgstr "" + +#: ../../installing/index.rst:130 +msgid "" +"Python only started bundling ``pip`` with Python 3.4. For earlier versions, " +"``pip`` needs to be \"bootstrapped\" as described in the Python Packaging " +"User Guide." +msgstr "" + +#: ../../installing/index.rst:136 +msgid "" +"`Python Packaging User Guide: Requirements for Installing Packages `__" +msgstr "" + +#: ../../installing/index.rst:143 +msgid "... install packages just for the current user?" +msgstr "" + +#: ../../installing/index.rst:145 +msgid "" +"Passing the ``--user`` option to ``python -m pip install`` will install a " +"package just for the current user, rather than for all users of the system." +msgstr "" + +#: ../../installing/index.rst:150 +msgid "... install scientific Python packages?" +msgstr "" + +#: ../../installing/index.rst:152 +msgid "" +"A number of scientific Python packages have complex binary dependencies, and " +"aren't currently easy to install using ``pip`` directly. At this point in " +"time, it will often be easier for users to install these packages by `other " +"means `__ rather than attempting to " +"install them with ``pip``." +msgstr "" + +#: ../../installing/index.rst:160 +msgid "" +"`Python Packaging User Guide: Installing Scientific Packages `__" +msgstr "" + +#: ../../installing/index.rst:165 +msgid "... work with multiple versions of Python installed in parallel?" +msgstr "" + +#: ../../installing/index.rst:167 +msgid "" +"On Linux, macOS, and other POSIX systems, use the versioned Python commands " +"in combination with the ``-m`` switch to run the appropriate copy of " +"``pip``::" +msgstr "" + +#: ../../installing/index.rst:171 +msgid "" +"python2 -m pip install SomePackage # default Python 2\n" +"python2.7 -m pip install SomePackage # specifically Python 2.7\n" +"python3 -m pip install SomePackage # default Python 3\n" +"python3.4 -m pip install SomePackage # specifically Python 3.4" +msgstr "" + +#: ../../installing/index.rst:176 +msgid "Appropriately versioned ``pip`` commands may also be available." +msgstr "" + +#: ../../installing/index.rst:178 +msgid "" +"On Windows, use the ``py`` Python launcher in combination with the ``-m`` " +"switch::" +msgstr "" + +#: ../../installing/index.rst:181 +msgid "" +"py -2 -m pip install SomePackage # default Python 2\n" +"py -2.7 -m pip install SomePackage # specifically Python 2.7\n" +"py -3 -m pip install SomePackage # default Python 3\n" +"py -3.4 -m pip install SomePackage # specifically Python 3.4" +msgstr "" + +#: ../../installing/index.rst:195 +msgid "Common installation issues" +msgstr "" + +#: ../../installing/index.rst:198 +msgid "Installing into the system Python on Linux" +msgstr "" + +#: ../../installing/index.rst:200 +msgid "" +"On Linux systems, a Python installation will typically be included as part " +"of the distribution. Installing into this Python installation requires root " +"access to the system, and may interfere with the operation of the system " +"package manager and other components of the system if a component is " +"unexpectedly upgraded using ``pip``." +msgstr "" + +#: ../../installing/index.rst:206 +msgid "" +"On such systems, it is often better to use a virtual environment or a per-" +"user installation when installing packages with ``pip``." +msgstr "" + +#: ../../installing/index.rst:211 +msgid "Pip not installed" +msgstr "" + +#: ../../installing/index.rst:213 +msgid "" +"It is possible that ``pip`` does not get installed by default. One potential " +"fix is::" +msgstr "" + +#: ../../installing/index.rst:215 +msgid "python -m ensurepip --default-pip" +msgstr "" + +#: ../../installing/index.rst:217 +msgid "" +"There are also additional resources for `installing pip. `__" +msgstr "" + +#: ../../installing/index.rst:222 +msgid "Installing binary extensions" +msgstr "" + +#: ../../installing/index.rst:224 +msgid "" +"Python has typically relied heavily on source based distribution, with end " +"users being expected to compile extension modules from source as part of the " +"installation process." +msgstr "" + +#: ../../installing/index.rst:228 +msgid "" +"With the introduction of support for the binary ``wheel`` format, and the " +"ability to publish wheels for at least Windows and macOS through the Python " +"Package Index, this problem is expected to diminish over time, as users are " +"more regularly able to install pre-built extensions rather than needing to " +"build them themselves." +msgstr "" + +#: ../../installing/index.rst:234 +msgid "" +"Some of the solutions for installing `scientific software `__ that are not yet available as pre-built " +"``wheel`` files may also help with obtaining other binary extensions without " +"needing to build them locally." +msgstr "" + +#: ../../installing/index.rst:241 +msgid "" +"`Python Packaging User Guide: Binary Extensions `__" +msgstr "" diff --git a/library/__future__.po b/library/__future__.po new file mode 100644 index 0000000..da75062 --- /dev/null +++ b/library/__future__.po @@ -0,0 +1,270 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/__future__.rst:2 +msgid ":mod:`!__future__` --- Future statement definitions" +msgstr "" + +#: ../../library/__future__.rst:7 +msgid "**Source code:** :source:`Lib/__future__.py`" +msgstr "" + +#: ../../library/__future__.rst:11 +msgid "" +"Imports of the form ``from __future__ import feature`` are " +"called :ref:`future statements `. These are special-cased by the " +"Python compiler to allow the use of new Python features in modules " +"containing the future statement before the release in which the feature " +"becomes standard." +msgstr "" + +#: ../../library/__future__.rst:16 +msgid "" +"While these future statements are given additional special meaning by the " +"Python compiler, they are still executed like any other import statement and " +"the :mod:`__future__` exists and is handled by the import system the same " +"way any other Python module would be. This design serves three purposes:" +msgstr "" + +#: ../../library/__future__.rst:21 +msgid "" +"To avoid confusing existing tools that analyze import statements and expect " +"to find the modules they're importing." +msgstr "" + +#: ../../library/__future__.rst:24 +msgid "" +"To document when incompatible changes were introduced, and when they will be " +"--- or were --- made mandatory. This is a form of executable documentation, " +"and can be inspected programmatically via importing :mod:`__future__` and " +"examining its contents." +msgstr "" + +#: ../../library/__future__.rst:29 +msgid "" +"To ensure that :ref:`future statements ` run under releases prior to " +"Python 2.1 at least yield runtime exceptions (the import " +"of :mod:`__future__` will fail, because there was no module of that name " +"prior to 2.1)." +msgstr "" + +#: ../../library/__future__.rst:34 +msgid "Module Contents" +msgstr "" + +#: ../../library/__future__.rst:36 +msgid "" +"No feature description will ever be deleted from :mod:`__future__`. Since " +"its introduction in Python 2.1 the following features have found their way " +"into the language using this mechanism:" +msgstr "" + +#: ../../library/__future__.rst:45 +msgid "feature" +msgstr "" + +#: ../../library/__future__.rst:46 +msgid "optional in" +msgstr "" + +#: ../../library/__future__.rst:47 +msgid "mandatory in" +msgstr "" + +#: ../../library/__future__.rst:48 +msgid "effect" +msgstr "" + +#: ../../library/__future__.rst:50 +msgid "2.1.0b1" +msgstr "" + +#: ../../library/__future__.rst:51 +msgid "2.2" +msgstr "" + +#: ../../library/__future__.rst:52 +msgid ":pep:`227`: *Statically Nested Scopes*" +msgstr "" + +#: ../../library/__future__.rst:54 +msgid "2.2.0a1" +msgstr "" + +#: ../../library/__future__.rst:55 +msgid "2.3" +msgstr "" + +#: ../../library/__future__.rst:56 +msgid ":pep:`255`: *Simple Generators*" +msgstr "" + +#: ../../library/__future__.rst:58 +msgid "2.2.0a2" +msgstr "" + +#: ../../library/__future__.rst:59 ../../library/__future__.rst:63 +#: ../../library/__future__.rst:71 ../../library/__future__.rst:75 +msgid "3.0" +msgstr "" + +#: ../../library/__future__.rst:60 +msgid ":pep:`238`: *Changing the Division Operator*" +msgstr "" + +#: ../../library/__future__.rst:62 ../../library/__future__.rst:66 +msgid "2.5.0a1" +msgstr "" + +#: ../../library/__future__.rst:64 +msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" +msgstr "" + +#: ../../library/__future__.rst:67 +msgid "2.6" +msgstr "" + +#: ../../library/__future__.rst:68 +msgid ":pep:`343`: *The “with” Statement*" +msgstr "" + +#: ../../library/__future__.rst:70 ../../library/__future__.rst:74 +msgid "2.6.0a2" +msgstr "" + +#: ../../library/__future__.rst:72 +msgid ":pep:`3105`: *Make print a function*" +msgstr "" + +#: ../../library/__future__.rst:76 +msgid ":pep:`3112`: *Bytes literals in Python 3000*" +msgstr "" + +#: ../../library/__future__.rst:78 +msgid "3.5.0b1" +msgstr "" + +#: ../../library/__future__.rst:79 +msgid "3.7" +msgstr "" + +#: ../../library/__future__.rst:80 +msgid ":pep:`479`: *StopIteration handling inside generators*" +msgstr "" + +#: ../../library/__future__.rst:82 +msgid "3.7.0b1" +msgstr "" + +#: ../../library/__future__.rst:83 +msgid "Never [1]_" +msgstr "" + +#: ../../library/__future__.rst:84 +msgid "" +":pep:`563`: *Postponed evaluation of annotations*, :pep:`649`: *Deferred " +"evaluation of annotations using descriptors*" +msgstr "" + +#: ../../library/__future__.rst:93 +msgid "Each statement in :file:`__future__.py` is of the form::" +msgstr "" + +#: ../../library/__future__.rst:95 +msgid "" +"FeatureName = _Feature(OptionalRelease, MandatoryRelease,\n" +" CompilerFlag)" +msgstr "" + +#: ../../library/__future__.rst:98 +msgid "" +"where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " +"are 5-tuples of the same form as :data:`sys.version_info`::" +msgstr "" + +#: ../../library/__future__.rst:101 +msgid "" +"(PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int\n" +" PY_MINOR_VERSION, # the 1; an int\n" +" PY_MICRO_VERSION, # the 0; an int\n" +" PY_RELEASE_LEVEL, # \"alpha\", \"beta\", \"candidate\" or \"final\"; " +"string\n" +" PY_RELEASE_SERIAL # the 3; an int\n" +")" +msgstr "" + +#: ../../library/__future__.rst:110 +msgid "" +"*OptionalRelease* records the first release in which the feature was " +"accepted." +msgstr "" + +#: ../../library/__future__.rst:114 +msgid "" +"In the case of a *MandatoryRelease* that has not yet occurred, " +"*MandatoryRelease* predicts the release in which the feature will become " +"part of the language." +msgstr "" + +#: ../../library/__future__.rst:118 +msgid "" +"Else *MandatoryRelease* records when the feature became part of the " +"language; in releases at or after that, modules no longer need a future " +"statement to use the feature in question, but may continue to use such " +"imports." +msgstr "" + +#: ../../library/__future__.rst:122 +msgid "" +"*MandatoryRelease* may also be ``None``, meaning that a planned feature got " +"dropped or that it is not yet decided." +msgstr "" + +#: ../../library/__future__.rst:127 +msgid "" +"*CompilerFlag* is the (bitfield) flag that should be passed in the fourth " +"argument to the built-in function :func:`compile` to enable the feature in " +"dynamically compiled code. This flag is stored in " +"the :attr:`_Feature.compiler_flag` attribute on :class:`_Feature` instances." +msgstr "" + +#: ../../library/__future__.rst:133 +msgid "" +"``from __future__ import annotations`` was previously scheduled to become " +"mandatory in Python 3.10, but the change was delayed and ultimately " +"canceled. This feature will eventually be deprecated and removed. " +"See :pep:`649` and :pep:`749`." +msgstr "" + +#: ../../library/__future__.rst:141 +msgid ":ref:`future`" +msgstr "" + +#: ../../library/__future__.rst:142 +msgid "How the compiler treats future imports." +msgstr "" + +#: ../../library/__future__.rst:144 +msgid ":pep:`236` - Back to the __future__" +msgstr "" + +#: ../../library/__future__.rst:145 +msgid "The original proposal for the __future__ mechanism." +msgstr "" diff --git a/library/__main__.po b/library/__main__.po new file mode 100644 index 0000000..1d60f66 --- /dev/null +++ b/library/__main__.po @@ -0,0 +1,540 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/__main__.rst:2 +msgid ":mod:`!__main__` --- Top-level code environment" +msgstr "" + +#: ../../library/__main__.rst:10 +msgid "" +"In Python, the special name ``__main__`` is used for two important " +"constructs:" +msgstr "" + +#: ../../library/__main__.rst:12 +msgid "" +"the name of the top-level environment of the program, which can be checked " +"using the ``__name__ == '__main__'`` expression; and" +msgstr "" + +#: ../../library/__main__.rst:14 +msgid "the ``__main__.py`` file in Python packages." +msgstr "" + +#: ../../library/__main__.rst:16 +msgid "" +"Both of these mechanisms are related to Python modules; how users interact " +"with them and how they interact with each other. They are explained in " +"detail below. If you're new to Python modules, see the tutorial " +"section :ref:`tut-modules` for an introduction." +msgstr "" + +#: ../../library/__main__.rst:25 +msgid "``__name__ == '__main__'``" +msgstr "" + +#: ../../library/__main__.rst:27 +msgid "" +"When a Python module or package is imported, ``__name__`` is set to the " +"module's name. Usually, this is the name of the Python file itself without " +"the ``.py`` extension::" +msgstr "" + +#: ../../library/__main__.rst:31 +msgid "" +">>> import configparser\n" +">>> configparser.__name__\n" +"'configparser'" +msgstr "" + +#: ../../library/__main__.rst:35 +msgid "" +"If the file is part of a package, ``__name__`` will also include the parent " +"package's path::" +msgstr "" + +#: ../../library/__main__.rst:38 +msgid "" +">>> from concurrent.futures import process\n" +">>> process.__name__\n" +"'concurrent.futures.process'" +msgstr "" + +#: ../../library/__main__.rst:42 +msgid "" +"However, if the module is executed in the top-level code environment, its " +"``__name__`` is set to the string ``'__main__'``." +msgstr "" + +#: ../../library/__main__.rst:46 +msgid "What is the \"top-level code environment\"?" +msgstr "" + +#: ../../library/__main__.rst:48 +msgid "" +"``__main__`` is the name of the environment where top-level code is run. " +"\"Top-level code\" is the first user-specified Python module that starts " +"running. It's \"top-level\" because it imports all other modules that the " +"program needs. Sometimes \"top-level code\" is called an *entry point* to " +"the application." +msgstr "" + +#: ../../library/__main__.rst:53 +msgid "The top-level code environment can be:" +msgstr "" + +#: ../../library/__main__.rst:55 +msgid "the scope of an interactive prompt::" +msgstr "" + +#: ../../library/__main__.rst:57 +msgid "" +">>> __name__\n" +"'__main__'" +msgstr "" + +#: ../../library/__main__.rst:60 +msgid "the Python module passed to the Python interpreter as a file argument:" +msgstr "" + +#: ../../library/__main__.rst:62 +msgid "" +"$ python helloworld.py\n" +"Hello, world!" +msgstr "" + +#: ../../library/__main__.rst:67 +msgid "" +"the Python module or package passed to the Python interpreter with " +"the :option:`-m` argument:" +msgstr "" + +#: ../../library/__main__.rst:70 +msgid "" +"$ python -m tarfile\n" +"usage: tarfile.py [-h] [-v] (...)" +msgstr "" + +#: ../../library/__main__.rst:75 +msgid "Python code read by the Python interpreter from standard input:" +msgstr "" + +#: ../../library/__main__.rst:77 +msgid "" +"$ echo \"import this\" | python\n" +"The Zen of Python, by Tim Peters\n" +"\n" +"Beautiful is better than ugly.\n" +"Explicit is better than implicit.\n" +"..." +msgstr "" + +#: ../../library/__main__.rst:86 +msgid "" +"Python code passed to the Python interpreter with the :option:`-c` argument:" +msgstr "" + +#: ../../library/__main__.rst:88 +msgid "" +"$ python -c \"import this\"\n" +"The Zen of Python, by Tim Peters\n" +"\n" +"Beautiful is better than ugly.\n" +"Explicit is better than implicit.\n" +"..." +msgstr "" + +#: ../../library/__main__.rst:97 +msgid "" +"In each of these situations, the top-level module's ``__name__`` is set to " +"``'__main__'``." +msgstr "" + +#: ../../library/__main__.rst:100 +msgid "" +"As a result, a module can discover whether or not it is running in the top-" +"level environment by checking its own ``__name__``, which allows a common " +"idiom for conditionally executing code when the module is not initialized " +"from an import statement::" +msgstr "" + +#: ../../library/__main__.rst:105 +msgid "" +"if __name__ == '__main__':\n" +" # Execute when the module is not initialized from an import statement.\n" +" ..." +msgstr "" + +#: ../../library/__main__.rst:111 +msgid "" +"For a more detailed look at how ``__name__`` is set in all situations, see " +"the tutorial section :ref:`tut-modules`." +msgstr "" + +#: ../../library/__main__.rst:116 ../../library/__main__.rst:239 +msgid "Idiomatic Usage" +msgstr "" + +#: ../../library/__main__.rst:118 +msgid "" +"Some modules contain code that is intended for script use only, like parsing " +"command-line arguments or fetching data from standard input. If a module " +"like this was imported from a different module, for example to unit test it, " +"the script code would unintentionally execute as well." +msgstr "" + +#: ../../library/__main__.rst:123 +msgid "" +"This is where using the ``if __name__ == '__main__'`` code block comes in " +"handy. Code within this block won't run unless the module is executed in the " +"top-level environment." +msgstr "" + +#: ../../library/__main__.rst:127 +msgid "" +"Putting as few statements as possible in the block below ``if __name__ == " +"'__main__'`` can improve code clarity and correctness. Most often, a " +"function named ``main`` encapsulates the program's primary behavior::" +msgstr "" + +#: ../../library/__main__.rst:131 +msgid "" +"# echo.py\n" +"\n" +"import shlex\n" +"import sys\n" +"\n" +"def echo(phrase: str) -> None:\n" +" \"\"\"A dummy wrapper around print.\"\"\"\n" +" # for demonstration purposes, you can imagine that there is some\n" +" # valuable and reusable logic inside this function\n" +" print(phrase)\n" +"\n" +"def main() -> int:\n" +" \"\"\"Echo the input arguments to standard output\"\"\"\n" +" phrase = shlex.join(sys.argv)\n" +" echo(phrase)\n" +" return 0\n" +"\n" +"if __name__ == '__main__':\n" +" sys.exit(main()) # next section explains the use of sys.exit" +msgstr "" + +#: ../../library/__main__.rst:151 +msgid "" +"Note that if the module didn't encapsulate code inside the ``main`` function " +"but instead put it directly within the ``if __name__ == '__main__'`` block, " +"the ``phrase`` variable would be global to the entire module. This is error-" +"prone as other functions within the module could be unintentionally using " +"the global variable instead of a local name. A ``main`` function solves " +"this problem." +msgstr "" + +#: ../../library/__main__.rst:158 +msgid "" +"Using a ``main`` function has the added benefit of the ``echo`` function " +"itself being isolated and importable elsewhere. When ``echo.py`` is " +"imported, the ``echo`` and ``main`` functions will be defined, but neither " +"of them will be called, because ``__name__ != '__main__'``." +msgstr "" + +#: ../../library/__main__.rst:165 +msgid "Packaging Considerations" +msgstr "" + +#: ../../library/__main__.rst:167 +msgid "" +"``main`` functions are often used to create command-line tools by specifying " +"them as entry points for console scripts. When this is done, `pip `_ inserts the function call into a template script, where the " +"return value of ``main`` is passed into :func:`sys.exit`. For example::" +msgstr "" + +#: ../../library/__main__.rst:173 +msgid "sys.exit(main())" +msgstr "" + +#: ../../library/__main__.rst:175 +msgid "" +"Since the call to ``main`` is wrapped in :func:`sys.exit`, the expectation " +"is that your function will return some value acceptable as an input " +"to :func:`sys.exit`; typically, an integer or ``None`` (which is implicitly " +"returned if your function does not have a return statement)." +msgstr "" + +#: ../../library/__main__.rst:180 +msgid "" +"By proactively following this convention ourselves, our module will have the " +"same behavior when run directly (i.e. ``python echo.py``) as it will have if " +"we later package it as a console script entry-point in a pip-installable " +"package." +msgstr "" + +#: ../../library/__main__.rst:185 +msgid "" +"In particular, be careful about returning strings from your ``main`` " +"function. :func:`sys.exit` will interpret a string argument as a failure " +"message, so your program will have an exit code of ``1``, indicating " +"failure, and the string will be written to :data:`sys.stderr`. The " +"``echo.py`` example from earlier exemplifies using the ``sys.exit(main())`` " +"convention." +msgstr "" + +#: ../../library/__main__.rst:193 +msgid "" +"`Python Packaging User Guide `_ contains a " +"collection of tutorials and references on how to distribute and install " +"Python packages with modern tools." +msgstr "" + +#: ../../library/__main__.rst:199 +msgid "``__main__.py`` in Python Packages" +msgstr "" + +#: ../../library/__main__.rst:201 +msgid "" +"If you are not familiar with Python packages, see section :ref:`tut-" +"packages` of the tutorial. Most commonly, the ``__main__.py`` file is used " +"to provide a command-line interface for a package. Consider the following " +"hypothetical package, \"bandclass\":" +msgstr "" + +#: ../../library/__main__.rst:206 +msgid "" +"bandclass\n" +" ├── __init__.py\n" +" ├── __main__.py\n" +" └── student.py" +msgstr "" + +#: ../../library/__main__.rst:213 +msgid "" +"``__main__.py`` will be executed when the package itself is invoked directly " +"from the command line using the :option:`-m` flag. For example:" +msgstr "" + +#: ../../library/__main__.rst:216 +msgid "$ python -m bandclass" +msgstr "" + +#: ../../library/__main__.rst:220 +msgid "" +"This command will cause ``__main__.py`` to run. How you utilize this " +"mechanism will depend on the nature of the package you are writing, but in " +"this hypothetical case, it might make sense to allow the teacher to search " +"for students::" +msgstr "" + +#: ../../library/__main__.rst:225 +msgid "" +"# bandclass/__main__.py\n" +"\n" +"import sys\n" +"from .student import search_students\n" +"\n" +"student_name = sys.argv[1] if len(sys.argv) >= 2 else ''\n" +"print(f'Found student: {search_students(student_name)}')" +msgstr "" + +#: ../../library/__main__.rst:233 +msgid "" +"Note that ``from .student import search_students`` is an example of a " +"relative import. This import style can be used when referencing modules " +"within a package. For more details, see :ref:`intra-package-references` in " +"the :ref:`tut-modules` section of the tutorial." +msgstr "" + +#: ../../library/__main__.rst:241 +msgid "" +"The content of ``__main__.py`` typically isn't fenced with an ``if __name__ " +"== '__main__'`` block. Instead, those files are kept short and import " +"functions to execute from other modules. Those other modules can then be " +"easily unit-tested and are properly reusable." +msgstr "" + +#: ../../library/__main__.rst:246 +msgid "" +"If used, an ``if __name__ == '__main__'`` block will still work as expected " +"for a ``__main__.py`` file within a package, because its ``__name__`` " +"attribute will include the package's path if imported::" +msgstr "" + +#: ../../library/__main__.rst:250 +msgid "" +">>> import asyncio.__main__\n" +">>> asyncio.__main__.__name__\n" +"'asyncio.__main__'" +msgstr "" + +#: ../../library/__main__.rst:254 +msgid "" +"This won't work for ``__main__.py`` files in the root directory of a " +"``.zip`` file though. Hence, for consistency, a minimal ``__main__.py`` " +"without a ``__name__`` check is preferred." +msgstr "" + +#: ../../library/__main__.rst:260 +msgid "" +"See :mod:`venv` for an example of a package with a minimal ``__main__.py`` " +"in the standard library. It doesn't contain a ``if __name__ == '__main__'`` " +"block. You can invoke it with ``python -m venv [directory]``." +msgstr "" + +#: ../../library/__main__.rst:264 +msgid "" +"See :mod:`runpy` for more details on the :option:`-m` flag to the " +"interpreter executable." +msgstr "" + +#: ../../library/__main__.rst:267 +msgid "" +"See :mod:`zipapp` for how to run applications packaged as *.zip* files. In " +"this case Python looks for a ``__main__.py`` file in the root directory of " +"the archive." +msgstr "" + +#: ../../library/__main__.rst:274 +msgid "``import __main__``" +msgstr "" + +#: ../../library/__main__.rst:276 +msgid "" +"Regardless of which module a Python program was started with, other modules " +"running within that same program can import the top-level environment's " +"scope (:term:`namespace`) by importing the ``__main__`` module. This " +"doesn't import a ``__main__.py`` file but rather whichever module that " +"received the special name ``'__main__'``." +msgstr "" + +#: ../../library/__main__.rst:282 +msgid "Here is an example module that consumes the ``__main__`` namespace::" +msgstr "" + +#: ../../library/__main__.rst:284 +msgid "" +"# namely.py\n" +"\n" +"import __main__\n" +"\n" +"def did_user_define_their_name():\n" +" return 'my_name' in dir(__main__)\n" +"\n" +"def print_user_name():\n" +" if not did_user_define_their_name():\n" +" raise ValueError('Define the variable `my_name`!')\n" +"\n" +" print(__main__.my_name)" +msgstr "" + +#: ../../library/__main__.rst:297 +msgid "Example usage of this module could be as follows::" +msgstr "" + +#: ../../library/__main__.rst:299 +msgid "" +"# start.py\n" +"\n" +"import sys\n" +"\n" +"from namely import print_user_name\n" +"\n" +"# my_name = \"Dinsdale\"\n" +"\n" +"def main():\n" +" try:\n" +" print_user_name()\n" +" except ValueError as ve:\n" +" return str(ve)\n" +"\n" +"if __name__ == \"__main__\":\n" +" sys.exit(main())" +msgstr "" + +#: ../../library/__main__.rst:316 +msgid "Now, if we started our program, the result would look like this:" +msgstr "" + +#: ../../library/__main__.rst:318 +msgid "" +"$ python start.py\n" +"Define the variable `my_name`!" +msgstr "" + +#: ../../library/__main__.rst:323 +msgid "" +"The exit code of the program would be 1, indicating an error. Uncommenting " +"the line with ``my_name = \"Dinsdale\"`` fixes the program and now it exits " +"with status code 0, indicating success:" +msgstr "" + +#: ../../library/__main__.rst:327 +msgid "" +"$ python start.py\n" +"Dinsdale" +msgstr "" + +#: ../../library/__main__.rst:332 +msgid "" +"Note that importing ``__main__`` doesn't cause any issues with " +"unintentionally running top-level code meant for script use which is put in " +"the ``if __name__ == \"__main__\"`` block of the ``start`` module. Why does " +"this work?" +msgstr "" + +#: ../../library/__main__.rst:336 +msgid "" +"Python inserts an empty ``__main__`` module in :data:`sys.modules` at " +"interpreter startup, and populates it by running top-level code. In our " +"example this is the ``start`` module which runs line by line and imports " +"``namely``. In turn, ``namely`` imports ``__main__`` (which is really " +"``start``). That's an import cycle! Fortunately, since the partially " +"populated ``__main__`` module is present in :data:`sys.modules`, Python " +"passes that to ``namely``. See :ref:`Special considerations for __main__ " +"` in the import system's reference for details on how " +"this works." +msgstr "" + +#: ../../library/__main__.rst:345 +msgid "" +"The Python REPL is another example of a \"top-level environment\", so " +"anything defined in the REPL becomes part of the ``__main__`` scope::" +msgstr "" + +#: ../../library/__main__.rst:348 +msgid "" +">>> import namely\n" +">>> namely.did_user_define_their_name()\n" +"False\n" +">>> namely.print_user_name()\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: Define the variable `my_name`!\n" +">>> my_name = 'Jabberwocky'\n" +">>> namely.did_user_define_their_name()\n" +"True\n" +">>> namely.print_user_name()\n" +"Jabberwocky" +msgstr "" + +#: ../../library/__main__.rst:361 +msgid "" +"The ``__main__`` scope is used in the implementation of :mod:`pdb` " +"and :mod:`rlcompleter`." +msgstr "" diff --git a/library/_thread.po b/library/_thread.po new file mode 100644 index 0000000..e83d76d --- /dev/null +++ b/library/_thread.po @@ -0,0 +1,321 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/_thread.rst:2 +msgid ":mod:`!_thread` --- Low-level threading API" +msgstr "" + +#: ../../library/_thread.rst:15 +msgid "" +"This module provides low-level primitives for working with multiple threads " +"(also called :dfn:`light-weight processes` or :dfn:`tasks`) --- multiple " +"threads of control sharing their global data space. For synchronization, " +"simple locks (also called :dfn:`mutexes` or :dfn:`binary semaphores`) are " +"provided. The :mod:`threading` module provides an easier to use and higher-" +"level threading API built on top of this module." +msgstr "" + +#: ../../library/_thread.rst:26 +msgid "This module used to be optional, it is now always available." +msgstr "" + +#: ../../library/_thread.rst:29 +msgid "This module defines the following constants and functions:" +msgstr "" + +#: ../../library/_thread.rst:33 +msgid "Raised on thread-specific errors." +msgstr "" + +#: ../../library/_thread.rst:35 +msgid "This is now a synonym of the built-in :exc:`RuntimeError`." +msgstr "" + +#: ../../library/_thread.rst:41 +msgid "This is the type of lock objects." +msgstr "" + +#: ../../library/_thread.rst:46 +msgid "" +"Start a new thread and return its identifier. The thread executes the " +"function *function* with the argument list *args* (which must be a tuple). " +"The optional *kwargs* argument specifies a dictionary of keyword arguments." +msgstr "" + +#: ../../library/_thread.rst:50 +msgid "When the function returns, the thread silently exits." +msgstr "" + +#: ../../library/_thread.rst:52 +msgid "" +"When the function terminates with an unhandled " +"exception, :func:`sys.unraisablehook` is called to handle the exception. The " +"*object* attribute of the hook argument is *function*. By default, a stack " +"trace is printed and then the thread exits (but other threads continue to " +"run)." +msgstr "" + +#: ../../library/_thread.rst:57 +msgid "" +"When the function raises a :exc:`SystemExit` exception, it is silently " +"ignored." +msgstr "" + +#: ../../library/_thread.rst:60 +msgid "" +"Raises an :ref:`auditing event ` ``_thread.start_new_thread`` with " +"arguments ``function``, ``args``, ``kwargs``." +msgstr "" + +#: ../../library/_thread.rst:62 +msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions." +msgstr "" + +#: ../../library/_thread.rst:68 +msgid "" +"Simulate the effect of a signal arriving in the main thread. A thread can " +"use this function to interrupt the main thread, though there is no guarantee " +"that the interruption will happen immediately." +msgstr "" + +#: ../../library/_thread.rst:72 +msgid "" +"If given, *signum* is the number of the signal to simulate. If *signum* is " +"not given, :const:`signal.SIGINT` is simulated." +msgstr "" + +#: ../../library/_thread.rst:75 +msgid "" +"If the given signal isn't handled by Python (it was set " +"to :const:`signal.SIG_DFL` or :const:`signal.SIG_IGN`), this function does " +"nothing." +msgstr "" + +#: ../../library/_thread.rst:79 +msgid "The *signum* argument is added to customize the signal number." +msgstr "" + +#: ../../library/_thread.rst:83 +msgid "" +"This does not emit the corresponding signal but schedules a call to the " +"associated handler (if it exists). If you want to truly emit the signal, " +"use :func:`signal.raise_signal`." +msgstr "" + +#: ../../library/_thread.rst:90 +msgid "" +"Raise the :exc:`SystemExit` exception. When not caught, this will cause the " +"thread to exit silently." +msgstr "" + +#: ../../library/_thread.rst:104 +msgid "" +"Return a new lock object. Methods of locks are described below. The lock " +"is initially unlocked." +msgstr "" + +#: ../../library/_thread.rst:110 +msgid "" +"Return the 'thread identifier' of the current thread. This is a nonzero " +"integer. Its value has no direct meaning; it is intended as a magic cookie " +"to be used e.g. to index a dictionary of thread-specific data. Thread " +"identifiers may be recycled when a thread exits and another thread is " +"created." +msgstr "" + +#: ../../library/_thread.rst:118 +msgid "" +"Return the native integral Thread ID of the current thread assigned by the " +"kernel. This is a non-negative integer. Its value may be used to uniquely " +"identify this particular thread system-wide (until the thread terminates, " +"after which the value may be recycled by the OS)." +msgstr "" + +#: ../../library/_thread.rst:123 ../../library/_thread.rst:148 +msgid "Availability" +msgstr "" + +#: ../../library/_thread.rst:127 +msgid "Added support for GNU/kFreeBSD." +msgstr "" + +#: ../../library/_thread.rst:133 +msgid "" +"Return the thread stack size used when creating new threads. The optional " +"*size* argument specifies the stack size to be used for subsequently created " +"threads, and must be 0 (use platform or configured default) or a positive " +"integer value of at least 32,768 (32 KiB). If *size* is not specified, 0 is " +"used. If changing the thread stack size is unsupported, " +"a :exc:`RuntimeError` is raised. If the specified stack size is invalid, " +"a :exc:`ValueError` is raised and the stack size is unmodified. 32 KiB is " +"currently the minimum supported stack size value to guarantee sufficient " +"stack space for the interpreter itself. Note that some platforms may have " +"particular restrictions on values for the stack size, such as requiring a " +"minimum stack size > 32 KiB or requiring allocation in multiples of the " +"system memory page size - platform documentation should be referred to for " +"more information (4 KiB pages are common; using multiples of 4096 for the " +"stack size is the suggested approach in the absence of more specific " +"information)." +msgstr "" + +#: ../../library/_thread.rst:150 +msgid "Unix platforms with POSIX threads support." +msgstr "" + +#: ../../library/_thread.rst:155 +msgid "" +"The maximum value allowed for the *timeout* parameter of :meth:`Lock.acquire " +"`. Specifying a timeout greater than this value will " +"raise an :exc:`OverflowError`." +msgstr "" + +#: ../../library/_thread.rst:162 +msgid "Lock objects have the following methods:" +msgstr "" + +#: ../../library/_thread.rst:167 +msgid "" +"Without any optional argument, this method acquires the lock " +"unconditionally, if necessary waiting until it is released by another thread " +"(only one thread at a time can acquire a lock --- that's their reason for " +"existence)." +msgstr "" + +#: ../../library/_thread.rst:171 +msgid "" +"If the *blocking* argument is present, the action depends on its value: if " +"it is false, the lock is only acquired if it can be acquired immediately " +"without waiting, while if it is true, the lock is acquired unconditionally " +"as above." +msgstr "" + +#: ../../library/_thread.rst:176 +msgid "" +"If the floating-point *timeout* argument is present and positive, it " +"specifies the maximum wait time in seconds before returning. A negative " +"*timeout* argument specifies an unbounded wait. You cannot specify a " +"*timeout* if *blocking* is false." +msgstr "" + +#: ../../library/_thread.rst:181 +msgid "" +"The return value is ``True`` if the lock is acquired successfully, ``False`` " +"if not." +msgstr "" + +#: ../../library/_thread.rst:184 +msgid "The *timeout* parameter is new." +msgstr "" + +#: ../../library/_thread.rst:187 +msgid "Lock acquires can now be interrupted by signals on POSIX." +msgstr "" + +#: ../../library/_thread.rst:190 +msgid "Lock acquires can now be interrupted by signals on Windows." +msgstr "" + +#: ../../library/_thread.rst:196 +msgid "" +"Releases the lock. The lock must have been acquired earlier, but not " +"necessarily by the same thread." +msgstr "" + +#: ../../library/_thread.rst:202 +msgid "" +"Return the status of the lock: ``True`` if it has been acquired by some " +"thread, ``False`` if not." +msgstr "" + +#: ../../library/_thread.rst:205 +msgid "" +"In addition to these methods, lock objects can also be used via " +"the :keyword:`with` statement, e.g.::" +msgstr "" + +#: ../../library/_thread.rst:208 +msgid "" +"import _thread\n" +"\n" +"a_lock = _thread.allocate_lock()\n" +"\n" +"with a_lock:\n" +" print(\"a_lock is locked while this executes\")" +msgstr "" + +#: ../../library/_thread.rst:215 +msgid "**Caveats:**" +msgstr "" + +#: ../../library/_thread.rst:219 +msgid "" +"Interrupts always go to the main thread (the :exc:`KeyboardInterrupt` " +"exception will be received by that thread.)" +msgstr "" + +#: ../../library/_thread.rst:222 +msgid "" +"Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " +"equivalent to calling :func:`_thread.exit`." +msgstr "" + +#: ../../library/_thread.rst:225 +msgid "" +"When the main thread exits, it is system defined whether the other threads " +"survive. On most systems, they are killed without " +"executing :keyword:`try` ... :keyword:`finally` clauses or executing object " +"destructors." +msgstr "" + +#: ../../library/_thread.rst:7 +msgid "light-weight processes" +msgstr "" + +#: ../../library/_thread.rst:7 +msgid "processes, light-weight" +msgstr "" + +#: ../../library/_thread.rst:7 +msgid "binary semaphores" +msgstr "" + +#: ../../library/_thread.rst:7 +msgid "semaphores, binary" +msgstr "" + +#: ../../library/_thread.rst:22 +msgid "pthreads" +msgstr "" + +#: ../../library/_thread.rst:22 +msgid "threads" +msgstr "" + +#: ../../library/_thread.rst:22 +msgid "POSIX" +msgstr "" + +#: ../../library/_thread.rst:217 +msgid "module" +msgstr "" + +#: ../../library/_thread.rst:217 +msgid "signal" +msgstr "" diff --git a/library/abc.po b/library/abc.po new file mode 100644 index 0000000..1c2f520 --- /dev/null +++ b/library/abc.po @@ -0,0 +1,488 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/abc.rst:2 +msgid ":mod:`!abc` --- Abstract Base Classes" +msgstr "" + +#: ../../library/abc.rst:11 +msgid "**Source code:** :source:`Lib/abc.py`" +msgstr "" + +#: ../../library/abc.rst:15 +msgid "" +"This module provides the infrastructure for defining :term:`abstract base " +"classes ` (ABCs) in Python, as outlined in :pep:`3119`; " +"see the PEP for why this was added to Python. (See also :pep:`3141` and " +"the :mod:`numbers` module regarding a type hierarchy for numbers based on " +"ABCs.)" +msgstr "" + +#: ../../library/abc.rst:20 +msgid "" +"The :mod:`collections` module has some concrete classes that derive from " +"ABCs; these can, of course, be further derived. In addition, " +"the :mod:`collections.abc` submodule has some ABCs that can be used to test " +"whether a class or instance provides a particular interface, for example, if " +"it is :term:`hashable` or if it is a :term:`mapping`." +msgstr "" + +#: ../../library/abc.rst:27 +msgid "" +"This module provides the metaclass :class:`ABCMeta` for defining ABCs and a " +"helper class :class:`ABC` to alternatively define ABCs through inheritance:" +msgstr "" + +#: ../../library/abc.rst:32 +msgid "" +"A helper class that has :class:`ABCMeta` as its metaclass. With this class, " +"an abstract base class can be created by simply deriving from :class:`!ABC` " +"avoiding sometimes confusing metaclass usage, for example::" +msgstr "" + +#: ../../library/abc.rst:36 +msgid "" +"from abc import ABC\n" +"\n" +"class MyABC(ABC):\n" +" pass" +msgstr "" + +#: ../../library/abc.rst:41 +msgid "" +"Note that the type of :class:`!ABC` is still :class:`ABCMeta`, therefore " +"inheriting from :class:`!ABC` requires the usual precautions regarding " +"metaclass usage, as multiple inheritance may lead to metaclass conflicts. " +"One may also define an abstract base class by passing the metaclass keyword " +"and using :class:`!ABCMeta` directly, for example::" +msgstr "" + +#: ../../library/abc.rst:47 +msgid "" +"from abc import ABCMeta\n" +"\n" +"class MyABC(metaclass=ABCMeta):\n" +" pass" +msgstr "" + +#: ../../library/abc.rst:57 +msgid "Metaclass for defining Abstract Base Classes (ABCs)." +msgstr "" + +#: ../../library/abc.rst:59 +msgid "" +"Use this metaclass to create an ABC. An ABC can be subclassed directly, and " +"then acts as a mix-in class. You can also register unrelated concrete " +"classes (even built-in classes) and unrelated ABCs as \"virtual subclasses\" " +"-- these and their descendants will be considered subclasses of the " +"registering ABC by the built-in :func:`issubclass` function, but the " +"registering ABC won't show up in their MRO (Method Resolution Order) nor " +"will method implementations defined by the registering ABC be callable (not " +"even via :func:`super`). [#]_" +msgstr "" + +#: ../../library/abc.rst:68 +msgid "" +"Classes created with a metaclass of :class:`!ABCMeta` have the following " +"method:" +msgstr "" + +#: ../../library/abc.rst:72 +msgid "" +"Register *subclass* as a \"virtual subclass\" of this ABC. For example::" +msgstr "" + +#: ../../library/abc.rst:75 +msgid "" +"from abc import ABC\n" +"\n" +"class MyABC(ABC):\n" +" pass\n" +"\n" +"MyABC.register(tuple)\n" +"\n" +"assert issubclass(tuple, MyABC)\n" +"assert isinstance((), MyABC)" +msgstr "" + +#: ../../library/abc.rst:85 +msgid "Returns the registered subclass, to allow usage as a class decorator." +msgstr "" + +#: ../../library/abc.rst:88 +msgid "" +"To detect calls to :meth:`!register`, you can use " +"the :func:`get_cache_token` function." +msgstr "" + +#: ../../library/abc.rst:92 +msgid "You can also override this method in an abstract base class:" +msgstr "" + +#: ../../library/abc.rst:96 +msgid "(Must be defined as a class method.)" +msgstr "" + +#: ../../library/abc.rst:98 +msgid "" +"Check whether *subclass* is considered a subclass of this ABC. This means " +"that you can customize the behavior of :func:`issubclass` further without " +"the need to call :meth:`register` on every class you want to consider a " +"subclass of the ABC. (This class method is called from " +"the :meth:`~type.__subclasscheck__` method of the ABC.)" +msgstr "" + +#: ../../library/abc.rst:104 +msgid "" +"This method should return ``True``, ``False`` or :data:`NotImplemented`. If " +"it returns ``True``, the *subclass* is considered a subclass of this ABC. If " +"it returns ``False``, the *subclass* is not considered a subclass of this " +"ABC, even if it would normally be one. If it returns :data:`!" +"NotImplemented`, the subclass check is continued with the usual mechanism." +msgstr "" + +#: ../../library/abc.rst:114 +msgid "" +"For a demonstration of these concepts, look at this example ABC definition::" +msgstr "" + +#: ../../library/abc.rst:116 +msgid "" +"class Foo:\n" +" def __getitem__(self, index):\n" +" ...\n" +" def __len__(self):\n" +" ...\n" +" def get_iterator(self):\n" +" return iter(self)\n" +"\n" +"class MyIterable(ABC):\n" +"\n" +" @abstractmethod\n" +" def __iter__(self):\n" +" while False:\n" +" yield None\n" +"\n" +" def get_iterator(self):\n" +" return self.__iter__()\n" +"\n" +" @classmethod\n" +" def __subclasshook__(cls, C):\n" +" if cls is MyIterable:\n" +" if any(\"__iter__\" in B.__dict__ for B in C.__mro__):\n" +" return True\n" +" return NotImplemented\n" +"\n" +"MyIterable.register(Foo)" +msgstr "" + +#: ../../library/abc.rst:143 +msgid "" +"The ABC ``MyIterable`` defines the standard iterable " +"method, :meth:`~object.__iter__`, as an abstract method. The implementation " +"given here can still be called from subclasses. The :meth:`!get_iterator` " +"method is also part of the ``MyIterable`` abstract base class, but it does " +"not have to be overridden in non-abstract derived classes." +msgstr "" + +#: ../../library/abc.rst:149 +msgid "" +"The :meth:`__subclasshook__` class method defined here says that any class " +"that has an :meth:`~object.__iter__` method in its :attr:`~object.__dict__` " +"(or in that of one of its base classes, accessed via " +"the :attr:`~type.__mro__` list) is considered a ``MyIterable`` too." +msgstr "" + +#: ../../library/abc.rst:154 +msgid "" +"Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " +"even though it does not define an :meth:`~object.__iter__` method (it uses " +"the old-style iterable protocol, defined in terms of :meth:`~object.__len__` " +"and :meth:`~object.__getitem__`). Note that this will not make " +"``get_iterator`` available as a method of ``Foo``, so it is provided " +"separately." +msgstr "" + +#: ../../library/abc.rst:163 +msgid "The :mod:`!abc` module also provides the following decorator:" +msgstr "" + +#: ../../library/abc.rst:167 +msgid "A decorator indicating abstract methods." +msgstr "" + +#: ../../library/abc.rst:169 +msgid "" +"Using this decorator requires that the class's metaclass is :class:`ABCMeta` " +"or is derived from it. A class that has a metaclass derived from :class:`!" +"ABCMeta` cannot be instantiated unless all of its abstract methods and " +"properties are overridden. The abstract methods can be called using any of " +"the normal 'super' call mechanisms. :func:`!abstractmethod` may be used to " +"declare abstract methods for properties and descriptors." +msgstr "" + +#: ../../library/abc.rst:176 +msgid "" +"Dynamically adding abstract methods to a class, or attempting to modify the " +"abstraction status of a method or class once it is created, are only " +"supported using the :func:`update_abstractmethods` function. The :func:`!" +"abstractmethod` only affects subclasses derived using regular inheritance; " +"\"virtual subclasses\" registered with the ABC's :meth:`~ABCMeta.register` " +"method are not affected." +msgstr "" + +#: ../../library/abc.rst:183 +msgid "" +"When :func:`!abstractmethod` is applied in combination with other method " +"descriptors, it should be applied as the innermost decorator, as shown in " +"the following usage examples::" +msgstr "" + +#: ../../library/abc.rst:187 +msgid "" +"class C(ABC):\n" +" @abstractmethod\n" +" def my_abstract_method(self, arg1):\n" +" ...\n" +" @classmethod\n" +" @abstractmethod\n" +" def my_abstract_classmethod(cls, arg2):\n" +" ...\n" +" @staticmethod\n" +" @abstractmethod\n" +" def my_abstract_staticmethod(arg3):\n" +" ...\n" +"\n" +" @property\n" +" @abstractmethod\n" +" def my_abstract_property(self):\n" +" ...\n" +" @my_abstract_property.setter\n" +" @abstractmethod\n" +" def my_abstract_property(self, val):\n" +" ...\n" +"\n" +" @abstractmethod\n" +" def _get_x(self):\n" +" ...\n" +" @abstractmethod\n" +" def _set_x(self, val):\n" +" ...\n" +" x = property(_get_x, _set_x)" +msgstr "" + +#: ../../library/abc.rst:217 +msgid "" +"In order to correctly interoperate with the abstract base class machinery, " +"the descriptor must identify itself as abstract using :attr:`!" +"__isabstractmethod__`. In general, this attribute should be ``True`` if any " +"of the methods used to compose the descriptor are abstract. For example, " +"Python's built-in :class:`property` does the equivalent of::" +msgstr "" + +#: ../../library/abc.rst:223 +msgid "" +"class Descriptor:\n" +" ...\n" +" @property\n" +" def __isabstractmethod__(self):\n" +" return any(getattr(f, '__isabstractmethod__', False) for\n" +" f in (self._fget, self._fset, self._fdel))" +msgstr "" + +#: ../../library/abc.rst:232 +msgid "" +"Unlike Java abstract methods, these abstract methods may have an " +"implementation. This implementation can be called via the :func:`super` " +"mechanism from the class that overrides it. This could be useful as an end-" +"point for a super-call in a framework that uses cooperative multiple-" +"inheritance." +msgstr "" + +#: ../../library/abc.rst:239 +msgid "The :mod:`!abc` module also supports the following legacy decorators:" +msgstr "" + +#: ../../library/abc.rst:244 +msgid "" +"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" + +#: ../../library/abc.rst:248 +msgid "" +"A subclass of the built-in :func:`classmethod`, indicating an abstract " +"classmethod. Otherwise it is similar to :func:`abstractmethod`." +msgstr "" + +#: ../../library/abc.rst:251 +msgid "" +"This special case is deprecated, as the :func:`classmethod` decorator is now " +"correctly identified as abstract when applied to an abstract method::" +msgstr "" + +#: ../../library/abc.rst:255 +msgid "" +"class C(ABC):\n" +" @classmethod\n" +" @abstractmethod\n" +" def my_abstract_classmethod(cls, arg):\n" +" ..." +msgstr "" + +#: ../../library/abc.rst:265 +msgid "" +"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" + +#: ../../library/abc.rst:269 +msgid "" +"A subclass of the built-in :func:`staticmethod`, indicating an abstract " +"staticmethod. Otherwise it is similar to :func:`abstractmethod`." +msgstr "" + +#: ../../library/abc.rst:272 +msgid "" +"This special case is deprecated, as the :func:`staticmethod` decorator is " +"now correctly identified as abstract when applied to an abstract method::" +msgstr "" + +#: ../../library/abc.rst:276 +msgid "" +"class C(ABC):\n" +" @staticmethod\n" +" @abstractmethod\n" +" def my_abstract_staticmethod(arg):\n" +" ..." +msgstr "" + +#: ../../library/abc.rst:285 +msgid "" +"It is now possible to " +"use :class:`property`, :meth:`property.getter`, :meth:`property.setter` " +"and :meth:`property.deleter` with :func:`abstractmethod`, making this " +"decorator redundant." +msgstr "" + +#: ../../library/abc.rst:290 +msgid "" +"A subclass of the built-in :func:`property`, indicating an abstract property." +msgstr "" + +#: ../../library/abc.rst:293 +msgid "" +"This special case is deprecated, as the :func:`property` decorator is now " +"correctly identified as abstract when applied to an abstract method::" +msgstr "" + +#: ../../library/abc.rst:297 +msgid "" +"class C(ABC):\n" +" @property\n" +" @abstractmethod\n" +" def my_abstract_property(self):\n" +" ..." +msgstr "" + +#: ../../library/abc.rst:303 +msgid "" +"The above example defines a read-only property; you can also define a read-" +"write abstract property by appropriately marking one or more of the " +"underlying methods as abstract::" +msgstr "" + +#: ../../library/abc.rst:307 +msgid "" +"class C(ABC):\n" +" @property\n" +" def x(self):\n" +" ...\n" +"\n" +" @x.setter\n" +" @abstractmethod\n" +" def x(self, val):\n" +" ..." +msgstr "" + +#: ../../library/abc.rst:317 +msgid "" +"If only some components are abstract, only those components need to be " +"updated to create a concrete property in a subclass::" +msgstr "" + +#: ../../library/abc.rst:320 +msgid "" +"class D(C):\n" +" @C.x.setter\n" +" def x(self, val):\n" +" ..." +msgstr "" + +#: ../../library/abc.rst:326 +msgid "The :mod:`!abc` module also provides the following functions:" +msgstr "" + +#: ../../library/abc.rst:330 +msgid "Returns the current abstract base class cache token." +msgstr "" + +#: ../../library/abc.rst:332 +msgid "" +"The token is an opaque object (that supports equality testing) identifying " +"the current version of the abstract base class cache for virtual subclasses. " +"The token changes with every call to :meth:`ABCMeta.register` on any ABC." +msgstr "" + +#: ../../library/abc.rst:340 +msgid "" +"A function to recalculate an abstract class's abstraction status. This " +"function should be called if a class's abstract methods have been " +"implemented or changed after it was created. Usually, this function should " +"be called from within a class decorator." +msgstr "" + +#: ../../library/abc.rst:345 +msgid "Returns *cls*, to allow usage as a class decorator." +msgstr "" + +#: ../../library/abc.rst:347 +msgid "If *cls* is not an instance of :class:`ABCMeta`, does nothing." +msgstr "" + +#: ../../library/abc.rst:351 +msgid "" +"This function assumes that *cls*'s superclasses are already updated. It does " +"not update any subclasses." +msgstr "" + +#: ../../library/abc.rst:357 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/abc.rst:358 +msgid "" +"C++ programmers should note that Python's virtual base class concept is not " +"the same as C++'s." +msgstr "" diff --git a/library/aifc.po b/library/aifc.po new file mode 100644 index 0000000..655f0df --- /dev/null +++ b/library/aifc.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/aifc.rst:2 +msgid ":mod:`!aifc` --- Read and write AIFF and AIFC files" +msgstr "" + +#: ../../library/aifc.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/aifc.rst:14 +msgid "" +"The last version of Python that provided the :mod:`!aifc` module was `Python " +"3.12 `_." +msgstr "" diff --git a/library/allos.po b/library/allos.po new file mode 100644 index 0000000..b5a1bcc --- /dev/null +++ b/library/allos.po @@ -0,0 +1,32 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/allos.rst:5 +msgid "Generic Operating System Services" +msgstr "" + +#: ../../library/allos.rst:7 +msgid "" +"The modules described in this chapter provide interfaces to operating system " +"features that are available on (almost) all operating systems, such as files " +"and a clock. The interfaces are generally modeled after the Unix or C " +"interfaces, but they are available on most other systems as well. Here's an " +"overview:" +msgstr "" diff --git a/library/annotationlib.po b/library/annotationlib.po new file mode 100644 index 0000000..1c9bd67 --- /dev/null +++ b/library/annotationlib.po @@ -0,0 +1,954 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/annotationlib.rst:2 +msgid ":mod:`!annotationlib` --- Functionality for introspecting annotations" +msgstr "" + +#: ../../library/annotationlib.rst:8 +msgid "**Source code:** :source:`Lib/annotationlib.py`" +msgstr "" + +#: ../../library/annotationlib.rst:17 +msgid "" +"The :mod:`!annotationlib` module provides tools for " +"introspecting :term:`annotations ` on modules, classes, and " +"functions." +msgstr "" + +#: ../../library/annotationlib.rst:20 +msgid "" +"Annotations are :ref:`lazily evaluated ` and often contain " +"forward references to objects that are not yet defined when the annotation " +"is created. This module provides a set of low-level tools that can be used " +"to retrieve annotations in a reliable way, even in the presence of forward " +"references and other edge cases." +msgstr "" + +#: ../../library/annotationlib.rst:25 +msgid "" +"This module supports retrieving annotations in three main formats " +"(see :class:`Format`), each of which works best for different use cases:" +msgstr "" + +#: ../../library/annotationlib.rst:28 +msgid "" +":attr:`~Format.VALUE` evaluates the annotations and returns their value. " +"This is most straightforward to work with, but it may raise errors, for " +"example if the annotations contain references to undefined names." +msgstr "" + +#: ../../library/annotationlib.rst:31 +msgid "" +":attr:`~Format.FORWARDREF` returns :class:`ForwardRef` objects for " +"annotations that cannot be resolved, allowing you to inspect the annotations " +"without evaluating them. This is useful when you need to work with " +"annotations that may contain unresolved forward references." +msgstr "" + +#: ../../library/annotationlib.rst:35 +msgid "" +":attr:`~Format.STRING` returns the annotations as a string, similar to how " +"it would appear in the source file. This is useful for documentation " +"generators that want to display annotations in a readable way." +msgstr "" + +#: ../../library/annotationlib.rst:39 +msgid "" +"The :func:`get_annotations` function is the main entry point for retrieving " +"annotations. Given a function, class, or module, it returns an annotations " +"dictionary in the requested format. This module also provides functionality " +"for working directly with the :term:`annotate function` that is used to " +"evaluate annotations, such as :func:`get_annotate_from_class_namespace` " +"and :func:`call_annotate_function`, as well as " +"the :func:`call_evaluate_function` function for working with :term:`evaluate " +"functions `." +msgstr "" + +#: ../../library/annotationlib.rst:51 +msgid "" +":pep:`649` proposed the current model for how annotations work in Python." +msgstr "" + +#: ../../library/annotationlib.rst:53 +msgid "" +":pep:`749` expanded on various aspects of :pep:`649` and introduced " +"the :mod:`!annotationlib` module." +msgstr "" + +#: ../../library/annotationlib.rst:56 +msgid "" +":ref:`annotations-howto` provides best practices for working with " +"annotations." +msgstr "" + +#: ../../library/annotationlib.rst:59 +msgid "" +":pypi:`typing-extensions` provides a backport of :func:`get_annotations` " +"that works on earlier versions of Python." +msgstr "" + +#: ../../library/annotationlib.rst:63 +msgid "Annotation semantics" +msgstr "" + +#: ../../library/annotationlib.rst:65 +msgid "" +"The way annotations are evaluated has changed over the history of Python 3, " +"and currently still depends on a :ref:`future import `. There have " +"been execution models for annotations:" +msgstr "" + +#: ../../library/annotationlib.rst:69 +msgid "" +"*Stock semantics* (default in Python 3.0 through 3.13; see :pep:`3107` " +"and :pep:`526`): Annotations are evaluated eagerly, as they are encountered " +"in the source code." +msgstr "" + +#: ../../library/annotationlib.rst:72 +msgid "" +"*Stringified annotations* (used with ``from __future__ import annotations`` " +"in Python 3.7 and newer; see :pep:`563`): Annotations are stored as strings " +"only." +msgstr "" + +#: ../../library/annotationlib.rst:75 +msgid "" +"*Deferred evaluation* (default in Python 3.14 and newer; see :pep:`649` " +"and :pep:`749`): Annotations are evaluated lazily, only when they are " +"accessed." +msgstr "" + +#: ../../library/annotationlib.rst:78 +msgid "As an example, consider the following program::" +msgstr "" + +#: ../../library/annotationlib.rst:80 +msgid "" +"def func(a: Cls) -> None:\n" +" print(a)\n" +"\n" +"class Cls: pass\n" +"\n" +"print(func.__annotations__)" +msgstr "" + +#: ../../library/annotationlib.rst:87 +msgid "This will behave as follows:" +msgstr "" + +#: ../../library/annotationlib.rst:89 +msgid "" +"Under stock semantics (Python 3.13 and earlier), it will throw " +"a :exc:`NameError` at the line where ``func`` is defined, because ``Cls`` is " +"an undefined name at that point." +msgstr "" + +#: ../../library/annotationlib.rst:92 +msgid "" +"Under stringified annotations (if ``from __future__ import annotations`` is " +"used), it will print ``{'a': 'Cls', 'return': 'None'}``." +msgstr "" + +#: ../../library/annotationlib.rst:94 +msgid "" +"Under deferred evaluation (Python 3.14 and later), it will print ``{'a': " +", 'return': None}``." +msgstr "" + +#: ../../library/annotationlib.rst:97 +msgid "" +"Stock semantics were used when function annotations were first introduced in " +"Python 3.0 (by :pep:`3107`) because this was the simplest, most obvious way " +"to implement annotations. The same execution model was used when variable " +"annotations were introduced in Python 3.6 (by :pep:`526`). However, stock " +"semantics caused problems when using annotations as type hints, such as a " +"need to refer to names that are not yet defined when the annotation is " +"encountered. In addition, there were performance problems with executing " +"annotations at module import time. Therefore, in Python 3.7, :pep:`563` " +"introduced the ability to store annotations as strings using the ``from " +"__future__ import annotations`` syntax. The plan at the time was to " +"eventually make this behavior the default, but a problem appeared: " +"stringified annotations are more difficult to process for those who " +"introspect annotations at runtime. An alternative proposal, :pep:`649`, " +"introduced the third execution model, deferred evaluation, and was " +"implemented in Python 3.14. Stringified annotations are still used if ``from " +"__future__ import annotations`` is present, but this behavior will " +"eventually be removed." +msgstr "" + +#: ../../library/annotationlib.rst:116 +msgid "Classes" +msgstr "Osztályok" + +#: ../../library/annotationlib.rst:120 +msgid "" +"An :class:`~enum.IntEnum` describing the formats in which annotations can be " +"returned. Members of the enum, or their equivalent integer values, can be " +"passed to :func:`get_annotations` and other functions in this module, as " +"well as to :attr:`~object.__annotate__` functions." +msgstr "" + +#: ../../library/annotationlib.rst:128 +msgid "Values are the result of evaluating the annotation expressions." +msgstr "" + +#: ../../library/annotationlib.rst:133 +msgid "" +"Special value used to signal that an annotate function is being evaluated in " +"a special environment with fake globals. When passed this value, annotate " +"functions should either return the same value as for " +"the :attr:`Format.VALUE` format, or raise :exc:`NotImplementedError` to " +"signal that they do not support execution in this environment. This format " +"is only used internally and should not be passed to the functions in this " +"module." +msgstr "" + +#: ../../library/annotationlib.rst:144 +msgid "" +"Values are real annotation values (as per :attr:`Format.VALUE` format) for " +"defined values, and :class:`ForwardRef` proxies for undefined values. Real " +"objects may contain references to :class:`ForwardRef` proxy objects." +msgstr "" + +#: ../../library/annotationlib.rst:152 +msgid "" +"Values are the text string of the annotation as it appears in the source " +"code, up to modifications including, but not restricted to, whitespace " +"normalizations and constant values optimizations." +msgstr "" + +#: ../../library/annotationlib.rst:156 +msgid "" +"The exact values of these strings may change in future versions of Python." +msgstr "" + +#: ../../library/annotationlib.rst:162 +msgid "A proxy object for forward references in annotations." +msgstr "" + +#: ../../library/annotationlib.rst:164 +msgid "" +"Instances of this class are returned when the :attr:`~Format.FORWARDREF` " +"format is used and annotations contain a name that cannot be resolved. This " +"can happen when a forward reference is used in an annotation, such as when a " +"class is referenced before it is defined." +msgstr "" + +#: ../../library/annotationlib.rst:171 +msgid "" +"A string containing the code that was evaluated to produce " +"the :class:`~ForwardRef`. The string may not be exactly equivalent to the " +"original source." +msgstr "" + +#: ../../library/annotationlib.rst:177 +msgid "Evaluate the forward reference, returning its value." +msgstr "" + +#: ../../library/annotationlib.rst:179 +msgid "" +"If the *format* argument is :attr:`~Format.VALUE` (the default), this method " +"may throw an exception, such as :exc:`NameError`, if the forward reference " +"refers to a name that cannot be resolved. The arguments to this method can " +"be used to provide bindings for names that would otherwise be undefined. If " +"the *format* argument is :attr:`~Format.FORWARDREF`, the method will never " +"throw an exception, but may return a :class:`~ForwardRef` instance. For " +"example, if the forward reference object contains the code " +"``list[undefined]``, where ``undefined`` is a name that is not defined, " +"evaluating it with the :attr:`~Format.FORWARDREF` format will return " +"``list[ForwardRef('undefined')]``. If the *format* argument " +"is :attr:`~Format.STRING`, the method will " +"return :attr:`~ForwardRef.__forward_arg__`." +msgstr "" + +#: ../../library/annotationlib.rst:191 +msgid "" +"The *owner* parameter provides the preferred mechanism for passing scope " +"information to this method. The owner of a :class:`~ForwardRef` is the " +"object that contains the annotation from which the :class:`~ForwardRef` " +"derives, such as a module object, type object, or function object." +msgstr "" + +#: ../../library/annotationlib.rst:196 +msgid "" +"The *globals*, *locals*, and *type_params* parameters provide a more precise " +"mechanism for influencing the names that are available when " +"the :class:`~ForwardRef` is evaluated. *globals* and *locals* are passed " +"to :func:`eval`, representing the global and local namespaces in which the " +"name is evaluated. The *type_params* parameter is relevant for objects " +"created using the native syntax for :ref:`generic classes ` " +"and :ref:`functions `. It is a tuple of :ref:`type " +"parameters ` that are in scope while the forward reference is " +"being evaluated. For example, if evaluating a :class:`~ForwardRef` retrieved " +"from an annotation found in the class namespace of a generic class ``C``, " +"*type_params* should be set to ``C.__type_params__``." +msgstr "" + +#: ../../library/annotationlib.rst:207 +msgid "" +":class:`~ForwardRef` instances returned by :func:`get_annotations` retain " +"references to information about the scope they originated from, so calling " +"this method with no further arguments may be sufficient to evaluate such " +"objects. :class:`~ForwardRef` instances created by other means may not have " +"any information about their scope, so passing arguments to this method may " +"be necessary to evaluate them successfully." +msgstr "" + +#: ../../library/annotationlib.rst:214 +msgid "" +"If no *owner*, *globals*, *locals*, or *type_params* are provided and " +"the :class:`~ForwardRef` does not contain information about its origin, " +"empty globals and locals dictionaries are used." +msgstr "" + +#: ../../library/annotationlib.rst:222 +msgid "Functions" +msgstr "" + +#: ../../library/annotationlib.rst:226 +msgid "" +"Convert an annotations dict containing runtime values to a dict containing " +"only strings. If the values are not already strings, they are converted " +"using :func:`type_repr`. This is meant as a helper for user-provided " +"annotate functions that support the :attr:`~Format.STRING` format but do not " +"have access to the code creating the annotations." +msgstr "" + +#: ../../library/annotationlib.rst:233 +msgid "" +"For example, this is used to implement the :attr:`~Format.STRING` " +"for :class:`typing.TypedDict` classes created through the functional syntax:" +msgstr "" + +#: ../../library/annotationlib.rst:236 +msgid "" +">>> from typing import TypedDict\n" +">>> Movie = TypedDict(\"movie\", {\"name\": str, \"year\": int})\n" +">>> get_annotations(Movie, format=Format.STRING)\n" +"{'name': 'str', 'year': 'int'}" +msgstr "" + +#: ../../library/annotationlib.rst:247 +msgid "" +"Call the :term:`annotate function` *annotate* with the given *format*, a " +"member of the :class:`Format` enum, and return the annotations dictionary " +"produced by the function." +msgstr "" + +#: ../../library/annotationlib.rst:251 +msgid "" +"This helper function is required because annotate functions generated by the " +"compiler for functions, classes, and modules only support " +"the :attr:`~Format.VALUE` format when called directly. To support other " +"formats, this function calls the annotate function in a special environment " +"that allows it to produce annotations in the other formats. This is a useful " +"building block when implementing functionality that needs to partially " +"evaluate annotations while a class is being constructed." +msgstr "" + +#: ../../library/annotationlib.rst:260 +msgid "" +"*owner* is the object that owns the annotation function, usually a function, " +"class, or module. If provided, it is used in the :attr:`~Format.FORWARDREF` " +"format to produce a :class:`ForwardRef` object that carries more information." +msgstr "" + +#: ../../library/annotationlib.rst:267 +msgid "" +":PEP:`PEP 649 <649#the-stringizer-and-the-fake-globals-environment>` " +"contains an explanation of the implementation technique used by this " +"function." +msgstr "" + +#: ../../library/annotationlib.rst:275 +msgid "" +"Call the :term:`evaluate function` *evaluate* with the given *format*, a " +"member of the :class:`Format` enum, and return the value produced by the " +"function. This is similar to :func:`call_annotate_function`, but the latter " +"always returns a dictionary mapping strings to annotations, while this " +"function returns a single value." +msgstr "" + +#: ../../library/annotationlib.rst:281 +msgid "" +"This is intended for use with the evaluate functions generated for lazily " +"evaluated elements related to type aliases and type parameters:" +msgstr "" + +#: ../../library/annotationlib.rst:284 +msgid ":meth:`typing.TypeAliasType.evaluate_value`, the value of type aliases" +msgstr "" + +#: ../../library/annotationlib.rst:285 +msgid ":meth:`typing.TypeVar.evaluate_bound`, the bound of type variables" +msgstr "" + +#: ../../library/annotationlib.rst:286 +msgid "" +":meth:`typing.TypeVar.evaluate_constraints`, the constraints of type " +"variables" +msgstr "" + +#: ../../library/annotationlib.rst:288 +msgid "" +":meth:`typing.TypeVar.evaluate_default`, the default value of type variables" +msgstr "" + +#: ../../library/annotationlib.rst:290 +msgid "" +":meth:`typing.ParamSpec.evaluate_default`, the default value of parameter " +"specifications" +msgstr "" + +#: ../../library/annotationlib.rst:292 +msgid "" +":meth:`typing.TypeVarTuple.evaluate_default`, the default value of type " +"variable tuples" +msgstr "" + +#: ../../library/annotationlib.rst:295 +msgid "" +"*owner* is the object that owns the evaluate function, such as the type " +"alias or type variable object." +msgstr "" + +#: ../../library/annotationlib.rst:298 +msgid "" +"*format* can be used to control the format in which the value is returned:" +msgstr "" + +#: ../../library/annotationlib.rst:300 +msgid "" +">>> type Alias = undefined\n" +">>> call_evaluate_function(Alias.evaluate_value, Format.VALUE)\n" +"Traceback (most recent call last):\n" +"...\n" +"NameError: name 'undefined' is not defined\n" +">>> call_evaluate_function(Alias.evaluate_value, Format.FORWARDREF)\n" +"ForwardRef('undefined')\n" +">>> call_evaluate_function(Alias.evaluate_value, Format.STRING)\n" +"'undefined'" +msgstr "" + +#: ../../library/annotationlib.rst:316 +msgid "" +"Retrieve the :term:`annotate function` from a class namespace dictionary " +"*namespace*. Return :const:`!None` if the namespace does not contain an " +"annotate function. This is primarily useful before the class has been fully " +"created (e.g., in a metaclass); after the class exists, the annotate " +"function can be retrieved with ``cls.__annotate__``. See :ref:`below " +"` for an example using this function in a metaclass." +msgstr "" + +#: ../../library/annotationlib.rst:326 +msgid "Compute the annotations dict for an object." +msgstr "" + +#: ../../library/annotationlib.rst:328 +msgid "" +"*obj* may be a callable, class, module, or other object " +"with :attr:`~object.__annotate__` or :attr:`~object.__annotations__` " +"attributes. Passing any other object raises :exc:`TypeError`." +msgstr "" + +#: ../../library/annotationlib.rst:332 +msgid "" +"The *format* parameter controls the format in which annotations are " +"returned, and must be a member of the :class:`Format` enum or its integer " +"equivalent. The different formats work as follows:" +msgstr "" + +#: ../../library/annotationlib.rst:336 +msgid "" +"VALUE: :attr:`!object.__annotations__` is tried first; if that does not " +"exist, the :attr:`!object.__annotate__` function is called if it exists." +msgstr "" + +#: ../../library/annotationlib.rst:338 +msgid "" +"FORWARDREF: If :attr:`!object.__annotations__` exists and can be evaluated " +"successfully, it is used; otherwise, the :attr:`!object.__annotate__` " +"function is called. If it does not exist either, :attr:`!" +"object.__annotations__` is tried again and any error from accessing it is re-" +"raised." +msgstr "" + +#: ../../library/annotationlib.rst:342 +msgid "" +"STRING: If :attr:`!object.__annotate__` exists, it is called first; " +"otherwise, :attr:`!object.__annotations__` is used and stringified " +"using :func:`annotations_to_string`." +msgstr "" + +#: ../../library/annotationlib.rst:346 +msgid "" +"Returns a dict. :func:`!get_annotations` returns a new dict every time it's " +"called; calling it twice on the same object will return two different but " +"equivalent dicts." +msgstr "" + +#: ../../library/annotationlib.rst:350 +msgid "This function handles several details for you:" +msgstr "" + +#: ../../library/annotationlib.rst:352 +msgid "" +"If *eval_str* is true, values of type :class:`!str` will be un-stringized " +"using :func:`eval`. This is intended for use with stringized annotations " +"(``from __future__ import annotations``). It is an error to set *eval_str* " +"to true with formats other than :attr:`Format.VALUE`." +msgstr "" + +#: ../../library/annotationlib.rst:357 +msgid "" +"If *obj* doesn't have an annotations dict, returns an empty dict. (Functions " +"and methods always have an annotations dict; classes, modules, and other " +"types of callables may not.)" +msgstr "" + +#: ../../library/annotationlib.rst:361 +msgid "" +"Ignores inherited annotations on classes, as well as annotations on " +"metaclasses. If a class doesn't have its own annotations dict, returns an " +"empty dict." +msgstr "" + +#: ../../library/annotationlib.rst:364 +msgid "" +"All accesses to object members and dict values are done using ``getattr()`` " +"and ``dict.get()`` for safety." +msgstr "" + +#: ../../library/annotationlib.rst:367 +msgid "" +"*eval_str* controls whether or not values of type :class:`!str` are replaced " +"with the result of calling :func:`eval` on those values:" +msgstr "" + +#: ../../library/annotationlib.rst:370 +msgid "" +"If eval_str is true, :func:`eval` is called on values of type :class:`!str`. " +"(Note that :func:`!get_annotations` doesn't catch exceptions; " +"if :func:`eval` raises an exception, it will unwind the stack past " +"the :func:`!get_annotations` call.)" +msgstr "" + +#: ../../library/annotationlib.rst:374 +msgid "" +"If *eval_str* is false (the default), values of type :class:`!str` are " +"unchanged." +msgstr "" + +#: ../../library/annotationlib.rst:377 +msgid "" +"*globals* and *locals* are passed in to :func:`eval`; see the documentation " +"for :func:`eval` for more information. If *globals* or *locals* is :const:`!" +"None`, this function may replace that value with a context-specific default, " +"contingent on ``type(obj)``:" +msgstr "" + +#: ../../library/annotationlib.rst:382 +msgid "If *obj* is a module, *globals* defaults to ``obj.__dict__``." +msgstr "" + +#: ../../library/annotationlib.rst:383 +msgid "" +"If *obj* is a class, *globals* defaults to " +"``sys.modules[obj.__module__].__dict__`` and *locals* defaults to the *obj* " +"class namespace." +msgstr "" + +#: ../../library/annotationlib.rst:386 +msgid "" +"If *obj* is a callable, *globals* defaults to :attr:`obj.__globals__ " +"`, although if *obj* is a wrapped function " +"(using :func:`functools.update_wrapper`) or a :class:`functools.partial` " +"object, it is unwrapped until a non-wrapped function is found." +msgstr "" + +#: ../../library/annotationlib.rst:392 +msgid "" +"Calling :func:`!get_annotations` is best practice for accessing the " +"annotations dict of any object. See :ref:`annotations-howto` for more " +"information on annotations best practices." +msgstr "" + +#: ../../library/annotationlib.rst:396 +msgid "" +">>> def f(a: int, b: str) -> float:\n" +"... pass\n" +">>> get_annotations(f)\n" +"{'a': , 'b': , 'return': }" +msgstr "" + +#: ../../library/annotationlib.rst:407 +msgid "" +"Convert an arbitrary Python value to a format suitable for use by " +"the :attr:`~Format.STRING` format. This calls :func:`repr` for most objects, " +"but has special handling for some objects, such as type objects." +msgstr "" + +#: ../../library/annotationlib.rst:411 +msgid "" +"This is meant as a helper for user-provided annotate functions that support " +"the :attr:`~Format.STRING` format but do not have access to the code " +"creating the annotations. It can also be used to provide a user-friendly " +"string representation for other objects that contain values that are " +"commonly encountered in annotations." +msgstr "" + +#: ../../library/annotationlib.rst:421 +msgid "Recipes" +msgstr "" + +#: ../../library/annotationlib.rst:426 +msgid "Using annotations in a metaclass" +msgstr "" + +#: ../../library/annotationlib.rst:428 +msgid "" +"A :ref:`metaclass ` may want to inspect or even modify the " +"annotations in a class body during class creation. Doing so requires " +"retrieving annotations from the class namespace dictionary. For classes " +"created with ``from __future__ import annotations``, the annotations will be " +"in the ``__annotations__`` key of the dictionary. For other classes with " +"annotations, :func:`get_annotate_from_class_namespace` can be used to get " +"the annotate function, and :func:`call_annotate_function` can be used to " +"call it and retrieve the annotations. Using the :attr:`~Format.FORWARDREF` " +"format will usually be best, because this allows the annotations to refer to " +"names that cannot yet be resolved when the class is created." +msgstr "" + +#: ../../library/annotationlib.rst:439 +msgid "" +"To modify the annotations, it is best to create a wrapper annotate function " +"that calls the original annotate function, makes any necessary adjustments, " +"and returns the result." +msgstr "" + +#: ../../library/annotationlib.rst:443 +msgid "" +"Below is an example of a metaclass that filters out " +"all :class:`typing.ClassVar` annotations from the class and puts them in a " +"separate attribute:" +msgstr "" + +#: ../../library/annotationlib.rst:446 +msgid "" +"import annotationlib\n" +"import typing\n" +"\n" +"class ClassVarSeparator(type):\n" +" def __new__(mcls, name, bases, ns):\n" +" if \"__annotations__\" in ns: # from __future__ import annotations\n" +" annotations = ns[\"__annotations__\"]\n" +" classvar_keys = {\n" +" key for key, value in annotations.items()\n" +" # Use string comparison for simplicity; a more robust solution\n" +" # could use annotationlib.ForwardRef.evaluate\n" +" if value.startswith(\"ClassVar\")\n" +" }\n" +" classvars = {key: annotations[key] for key in classvar_keys}\n" +" ns[\"__annotations__\"] = {\n" +" key: value for key, value in annotations.items()\n" +" if key not in classvar_keys\n" +" }\n" +" wrapped_annotate = None\n" +" elif annotate := annotationlib.get_annotate_from_class_namespace(ns):\n" +" annotations = annotationlib.call_annotate_function(\n" +" annotate, format=annotationlib.Format.FORWARDREF\n" +" )\n" +" classvar_keys = {\n" +" key for key, value in annotations.items()\n" +" if typing.get_origin(value) is typing.ClassVar\n" +" }\n" +" classvars = {key: annotations[key] for key in classvar_keys}\n" +"\n" +" def wrapped_annotate(format):\n" +" annos = annotationlib.call_annotate_function(annotate, format, " +"owner=typ)\n" +" return {key: value for key, value in annos.items() if key not in " +"classvar_keys}\n" +"\n" +" else: # no annotations\n" +" classvars = {}\n" +" wrapped_annotate = None\n" +" typ = super().__new__(mcls, name, bases, ns)\n" +"\n" +" if wrapped_annotate is not None:\n" +" # Wrap the original __annotate__ with a wrapper that removes " +"ClassVars\n" +" typ.__annotate__ = wrapped_annotate\n" +" typ.classvars = classvars # Store the ClassVars in a separate " +"attribute\n" +" return typ" +msgstr "" + +#: ../../library/annotationlib.rst:494 +msgid "Limitations of the ``STRING`` format" +msgstr "" + +#: ../../library/annotationlib.rst:496 +msgid "" +"The :attr:`~Format.STRING` format is meant to approximate the source code of " +"the annotation, but the implementation strategy used means that it is not " +"always possible to recover the exact source code." +msgstr "" + +#: ../../library/annotationlib.rst:500 +msgid "" +"First, the stringifier of course cannot recover any information that is not " +"present in the compiled code, including comments, whitespace, " +"parenthesization, and operations that get simplified by the compiler." +msgstr "" + +#: ../../library/annotationlib.rst:504 +msgid "" +"Second, the stringifier can intercept almost all operations that involve " +"names looked up in some scope, but it cannot intercept operations that " +"operate fully on constants. As a corollary, this also means it is not safe " +"to request the ``STRING`` format on untrusted code: Python is powerful " +"enough that it is possible to achieve arbitrary code execution even with no " +"access to any globals or builtins. For example:" +msgstr "" + +#: ../../library/annotationlib.rst:510 +msgid "" +">>> def f(x: (1).__class__.__base__.__subclasses__()" +"[-1].__init__.__builtins__[\"print\"](\"Hello world\")): pass\n" +"...\n" +">>> annotationlib.get_annotations(f, format=annotationlib.Format.STRING)\n" +"Hello world\n" +"{'x': 'None'}" +msgstr "" + +#: ../../library/annotationlib.rst:519 +msgid "" +"This particular example works as of the time of writing, but it relies on " +"implementation details and is not guaranteed to work in the future." +msgstr "" + +#: ../../library/annotationlib.rst:522 +msgid "" +"Among the different kinds of expressions that exist in Python, as " +"represented by the :mod:`ast` module, some expressions are supported, " +"meaning that the ``STRING`` format can generally recover the original source " +"code; others are unsupported, meaning that they may result in incorrect " +"output or an error." +msgstr "" + +#: ../../library/annotationlib.rst:527 +msgid "The following are supported (sometimes with caveats):" +msgstr "" + +#: ../../library/annotationlib.rst:529 +msgid ":class:`ast.BinOp`" +msgstr "" + +#: ../../library/annotationlib.rst:530 +msgid ":class:`ast.UnaryOp`" +msgstr "" + +#: ../../library/annotationlib.rst:532 +msgid "" +":class:`ast.Invert` (``~``), :class:`ast.UAdd` (``+``), " +"and :class:`ast.USub` (``-``) are supported" +msgstr "" + +#: ../../library/annotationlib.rst:533 +msgid ":class:`ast.Not` (``not``) is not supported" +msgstr "" + +#: ../../library/annotationlib.rst:535 +msgid ":class:`ast.Dict` (except when using ``**`` unpacking)" +msgstr "" + +#: ../../library/annotationlib.rst:536 +msgid ":class:`ast.Set`" +msgstr "" + +#: ../../library/annotationlib.rst:537 +msgid ":class:`ast.Compare`" +msgstr "" + +#: ../../library/annotationlib.rst:539 +msgid ":class:`ast.Eq` and :class:`ast.NotEq` are supported" +msgstr "" + +#: ../../library/annotationlib.rst:540 +msgid "" +":class:`ast.Lt`, :class:`ast.LtE`, :class:`ast.Gt`, and :class:`ast.GtE` are " +"supported, but the operand may be flipped" +msgstr "" + +#: ../../library/annotationlib.rst:541 +msgid "" +":class:`ast.Is`, :class:`ast.IsNot`, :class:`ast.In`, and :class:`ast.NotIn` " +"are not supported" +msgstr "" + +#: ../../library/annotationlib.rst:543 +msgid ":class:`ast.Call` (except when using ``**`` unpacking)" +msgstr "" + +#: ../../library/annotationlib.rst:544 +msgid "" +":class:`ast.Constant` (though not the exact representation of the constant; " +"for example, escape sequences in strings are lost; hexadecimal numbers are " +"converted to decimal)" +msgstr "" + +#: ../../library/annotationlib.rst:546 +msgid ":class:`ast.Attribute` (assuming the value is not a constant)" +msgstr "" + +#: ../../library/annotationlib.rst:547 +msgid ":class:`ast.Subscript` (assuming the value is not a constant)" +msgstr "" + +#: ../../library/annotationlib.rst:548 +msgid ":class:`ast.Starred` (``*`` unpacking)" +msgstr "" + +#: ../../library/annotationlib.rst:549 +msgid ":class:`ast.Name`" +msgstr "" + +#: ../../library/annotationlib.rst:550 +msgid ":class:`ast.List`" +msgstr "" + +#: ../../library/annotationlib.rst:551 +msgid ":class:`ast.Tuple`" +msgstr "" + +#: ../../library/annotationlib.rst:552 +msgid ":class:`ast.Slice`" +msgstr "" + +#: ../../library/annotationlib.rst:554 +msgid "" +"The following are unsupported, but throw an informative error when " +"encountered by the stringifier:" +msgstr "" + +#: ../../library/annotationlib.rst:557 +msgid "" +":class:`ast.FormattedValue` (f-strings; error is not detected if conversion " +"specifiers like ``!r`` are used)" +msgstr "" + +#: ../../library/annotationlib.rst:559 +msgid ":class:`ast.JoinedStr` (f-strings)" +msgstr "" + +#: ../../library/annotationlib.rst:561 +msgid "The following are unsupported and result in incorrect output:" +msgstr "" + +#: ../../library/annotationlib.rst:563 +msgid ":class:`ast.BoolOp` (``and`` and ``or``)" +msgstr "" + +#: ../../library/annotationlib.rst:564 +msgid ":class:`ast.IfExp`" +msgstr "" + +#: ../../library/annotationlib.rst:565 +msgid ":class:`ast.Lambda`" +msgstr "" + +#: ../../library/annotationlib.rst:566 +msgid ":class:`ast.ListComp`" +msgstr "" + +#: ../../library/annotationlib.rst:567 +msgid ":class:`ast.SetComp`" +msgstr "" + +#: ../../library/annotationlib.rst:568 +msgid ":class:`ast.DictComp`" +msgstr "" + +#: ../../library/annotationlib.rst:569 +msgid ":class:`ast.GeneratorExp`" +msgstr "" + +#: ../../library/annotationlib.rst:571 +msgid "" +"The following are disallowed in annotation scopes and therefore not relevant:" +msgstr "" + +#: ../../library/annotationlib.rst:573 +msgid ":class:`ast.NamedExpr` (``:=``)" +msgstr "" + +#: ../../library/annotationlib.rst:574 +msgid ":class:`ast.Await`" +msgstr "" + +#: ../../library/annotationlib.rst:575 +msgid ":class:`ast.Yield`" +msgstr "" + +#: ../../library/annotationlib.rst:576 +msgid ":class:`ast.YieldFrom`" +msgstr "" + +#: ../../library/annotationlib.rst:580 +msgid "Limitations of the ``FORWARDREF`` format" +msgstr "" + +#: ../../library/annotationlib.rst:582 +msgid "" +"The :attr:`~Format.FORWARDREF` format aims to produce real values as much as " +"possible, with anything that cannot be resolved replaced " +"with :class:`ForwardRef` objects. It is affected by broadly the same " +"Limitations as the :attr:`~Format.STRING` format: annotations that perform " +"operations on literals or that use unsupported expression types may raise " +"exceptions when evaluated using the :attr:`~Format.FORWARDREF` format." +msgstr "" + +#: ../../library/annotationlib.rst:589 +msgid "Below are a few examples of the behavior with unsupported expressions:" +msgstr "" + +#: ../../library/annotationlib.rst:591 +msgid "" +">>> from annotationlib import get_annotations, Format\n" +">>> def zerodiv(x: 1 / 0): ...\n" +">>> get_annotations(zerodiv, format=Format.STRING)\n" +"Traceback (most recent call last):\n" +" ...\n" +"ZeroDivisionError: division by zero\n" +">>> get_annotations(zerodiv, format=Format.FORWARDREF)\n" +"Traceback (most recent call last):\n" +" ...\n" +"ZeroDivisionError: division by zero\n" +">>> def ifexp(x: 1 if y else 0): ...\n" +">>> get_annotations(ifexp, format=Format.STRING)\n" +"{'x': '1'}" +msgstr "" diff --git a/library/archiving.po b/library/archiving.po new file mode 100644 index 0000000..2c08367 --- /dev/null +++ b/library/archiving.po @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/archiving.rst:5 +msgid "Data Compression and Archiving" +msgstr "" + +#: ../../library/archiving.rst:7 +msgid "" +"The modules described in this chapter support data compression with the " +"zlib, gzip, bzip2, lzma, and zstd algorithms, and the creation of ZIP- and " +"tar-format archives. See also :ref:`archiving-operations` provided by " +"the :mod:`shutil` module." +msgstr "" diff --git a/library/argparse.po b/library/argparse.po new file mode 100644 index 0000000..9dc475c --- /dev/null +++ b/library/argparse.po @@ -0,0 +1,3157 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/argparse.rst:2 +msgid "" +":mod:`!argparse` --- Parser for command-line options, arguments and " +"subcommands" +msgstr "" + +#: ../../library/argparse.rst:12 +msgid "**Source code:** :source:`Lib/argparse.py`" +msgstr "" + +#: ../../library/argparse.rst:16 +msgid "" +"While :mod:`argparse` is the default recommended standard library module for " +"implementing basic command line applications, authors with more exacting " +"requirements for exactly how their command line applications behave may find " +"it doesn't provide the necessary level of control. Refer to :ref:`choosing-" +"an-argument-parser` for alternatives to consider when ``argparse`` doesn't " +"support behaviors that the application requires (such as entirely disabling " +"support for interspersed options and positional arguments, or accepting " +"option parameter values that start with ``-`` even when they correspond to " +"another defined option)." +msgstr "" + +#: ../../library/argparse.rst-1 +msgid "Tutorial" +msgstr "" + +#: ../../library/argparse.rst:30 +msgid "" +"This page contains the API reference information. For a more gentle " +"introduction to Python command-line parsing, have a look at " +"the :ref:`argparse tutorial `." +msgstr "" + +#: ../../library/argparse.rst:34 +msgid "" +"The :mod:`!argparse` module makes it easy to write user-friendly command-" +"line interfaces. The program defines what arguments it requires, and :mod:`!" +"argparse` will figure out how to parse those out of :data:`sys.argv`. " +"The :mod:`!argparse` module also automatically generates help and usage " +"messages. The module will also issue errors when users give the program " +"invalid arguments." +msgstr "" + +#: ../../library/argparse.rst:40 +msgid "" +"The :mod:`!argparse` module's support for command-line interfaces is built " +"around an instance of :class:`argparse.ArgumentParser`. It is a container " +"for argument specifications and has options that apply to the parser as " +"whole::" +msgstr "" + +#: ../../library/argparse.rst:44 +msgid "" +"parser = argparse.ArgumentParser(\n" +" prog='ProgramName',\n" +" description='What the program does',\n" +" epilog='Text at the bottom of help')" +msgstr "" + +#: ../../library/argparse.rst:49 +msgid "" +"The :meth:`ArgumentParser.add_argument` method attaches individual argument " +"specifications to the parser. It supports positional arguments, options " +"that accept values, and on/off flags::" +msgstr "" + +#: ../../library/argparse.rst:53 +msgid "" +"parser.add_argument('filename') # positional argument\n" +"parser.add_argument('-c', '--count') # option that takes a value\n" +"parser.add_argument('-v', '--verbose',\n" +" action='store_true') # on/off flag" +msgstr "" + +#: ../../library/argparse.rst:58 +msgid "" +"The :meth:`ArgumentParser.parse_args` method runs the parser and places the " +"extracted data in a :class:`argparse.Namespace` object::" +msgstr "" + +#: ../../library/argparse.rst:61 +msgid "" +"args = parser.parse_args()\n" +"print(args.filename, args.count, args.verbose)" +msgstr "" + +#: ../../library/argparse.rst:65 +msgid "" +"If you're looking for a guide about how to upgrade :mod:`optparse` code " +"to :mod:`!argparse`, see :ref:`Upgrading Optparse Code `." +msgstr "" + +#: ../../library/argparse.rst:69 +msgid "ArgumentParser objects" +msgstr "" + +#: ../../library/argparse.rst:79 +msgid "" +"Create a new :class:`ArgumentParser` object. All parameters should be passed " +"as keyword arguments. Each parameter has its own more detailed description " +"below, but in short they are:" +msgstr "" + +#: ../../library/argparse.rst:83 +msgid "" +"prog_ - The name of the program (default: generated from the ``__main__`` " +"module attributes and ``sys.argv[0]``)" +msgstr "" + +#: ../../library/argparse.rst:86 +msgid "" +"usage_ - The string describing the program usage (default: generated from " +"arguments added to parser)" +msgstr "" + +#: ../../library/argparse.rst:89 +msgid "" +"description_ - Text to display before the argument help (by default, no text)" +msgstr "" + +#: ../../library/argparse.rst:92 +msgid "epilog_ - Text to display after the argument help (by default, no text)" +msgstr "" + +#: ../../library/argparse.rst:94 +msgid "" +"parents_ - A list of :class:`ArgumentParser` objects whose arguments should " +"also be included" +msgstr "" + +#: ../../library/argparse.rst:97 +msgid "formatter_class_ - A class for customizing the help output" +msgstr "" + +#: ../../library/argparse.rst:99 +msgid "" +"prefix_chars_ - The set of characters that prefix optional arguments " +"(default: '-')" +msgstr "" + +#: ../../library/argparse.rst:102 +msgid "" +"fromfile_prefix_chars_ - The set of characters that prefix files from which " +"additional arguments should be read (default: ``None``)" +msgstr "" + +#: ../../library/argparse.rst:105 +msgid "" +"argument_default_ - The global default value for arguments (default: " +"``None``)" +msgstr "" + +#: ../../library/argparse.rst:108 +msgid "" +"conflict_handler_ - The strategy for resolving conflicting optionals " +"(usually unnecessary)" +msgstr "" + +#: ../../library/argparse.rst:111 +msgid "" +"add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" +msgstr "" + +#: ../../library/argparse.rst:113 +msgid "" +"allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " +"unambiguous (default: ``True``)" +msgstr "" + +#: ../../library/argparse.rst:116 +msgid "" +"exit_on_error_ - Determines whether or not :class:`!ArgumentParser` exits " +"with error info when an error occurs. (default: ``True``)" +msgstr "" + +#: ../../library/argparse.rst:119 +msgid "" +"suggest_on_error_ - Enables suggestions for mistyped argument choices and " +"subparser names (default: ``False``)" +msgstr "" + +#: ../../library/argparse.rst:122 +msgid "color_ - Allow color output (default: ``True``)" +msgstr "" + +#: ../../library/argparse.rst:124 +msgid "*allow_abbrev* parameter was added." +msgstr "" + +#: ../../library/argparse.rst:127 +msgid "" +"In previous versions, *allow_abbrev* also disabled grouping of short flags " +"such as ``-vv`` to mean ``-v -v``." +msgstr "" + +#: ../../library/argparse.rst:131 +msgid "*exit_on_error* parameter was added." +msgstr "" + +#: ../../library/argparse.rst:134 +msgid "*suggest_on_error* and *color* parameters were added." +msgstr "" + +#: ../../library/argparse.rst:137 ../../library/argparse.rst:684 +msgid "The following sections describe how each of these are used." +msgstr "" + +#: ../../library/argparse.rst:143 +msgid "prog" +msgstr "" + +#: ../../library/argparse.rst:146 +msgid "" +"By default, :class:`ArgumentParser` calculates the name of the program to " +"display in help messages depending on the way the Python interpreter was run:" +msgstr "" + +#: ../../library/argparse.rst:149 +msgid "" +"The :func:`base name ` of ``sys.argv[0]`` if a file was " +"passed as argument." +msgstr "" + +#: ../../library/argparse.rst:151 +msgid "" +"The Python interpreter name followed by ``sys.argv[0]`` if a directory or a " +"zipfile was passed as argument." +msgstr "" + +#: ../../library/argparse.rst:153 +msgid "" +"The Python interpreter name followed by ``-m`` followed by the module or " +"package name if the :option:`-m` option was used." +msgstr "" + +#: ../../library/argparse.rst:156 +msgid "" +"This default is almost always desirable because it will make the help " +"messages match the string that was used to invoke the program on the command " +"line. However, to change this default behavior, another value can be " +"supplied using the ``prog=`` argument to :class:`ArgumentParser`::" +msgstr "" + +#: ../../library/argparse.rst:161 +msgid "" +">>> parser = argparse.ArgumentParser(prog='myprogram')\n" +">>> parser.print_help()\n" +"usage: myprogram [-h]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit" +msgstr "" + +#: ../../library/argparse.rst:168 +msgid "" +"Note that the program name, whether determined from ``sys.argv[0]``, from " +"the ``__main__`` module attributes or from the ``prog=`` argument, is " +"available to help messages using the ``%(prog)s`` format specifier." +msgstr "" + +#: ../../library/argparse.rst:175 +msgid "" +">>> parser = argparse.ArgumentParser(prog='myprogram')\n" +">>> parser.add_argument('--foo', help='foo of the %(prog)s program')\n" +">>> parser.print_help()\n" +"usage: myprogram [-h] [--foo FOO]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo FOO foo of the myprogram program" +msgstr "" + +#: ../../library/argparse.rst:184 +msgid "" +"The default ``prog`` value now reflects how ``__main__`` was actually " +"executed, rather than always being ``os.path.basename(sys.argv[0])``." +msgstr "" + +#: ../../library/argparse.rst:189 +msgid "usage" +msgstr "" + +#: ../../library/argparse.rst:191 +msgid "" +"By default, :class:`ArgumentParser` calculates the usage message from the " +"arguments it contains. The default message can be overridden with the " +"``usage=`` keyword argument::" +msgstr "" + +#: ../../library/argparse.rst:195 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', usage='%(prog)s " +"[options]')\n" +">>> parser.add_argument('--foo', nargs='?', help='foo help')\n" +">>> parser.add_argument('bar', nargs='+', help='bar help')\n" +">>> parser.print_help()\n" +"usage: PROG [options]\n" +"\n" +"positional arguments:\n" +" bar bar help\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo [FOO] foo help" +msgstr "" + +#: ../../library/argparse.rst:208 +msgid "" +"The ``%(prog)s`` format specifier is available to fill in the program name " +"in your usage messages." +msgstr "" + +#: ../../library/argparse.rst:211 +msgid "" +"When a custom usage message is specified for the main parser, you may also " +"want to consider passing the ``prog`` argument " +"to :meth:`~ArgumentParser.add_subparsers` or the ``prog`` and the ``usage`` " +"arguments to :meth:`~_SubParsersAction.add_parser`, to ensure consistent " +"command prefixes and usage information across subparsers." +msgstr "" + +#: ../../library/argparse.rst:221 +msgid "description" +msgstr "" + +#: ../../library/argparse.rst:223 +msgid "" +"Most calls to the :class:`ArgumentParser` constructor will use the " +"``description=`` keyword argument. This argument gives a brief description " +"of what the program does and how it works. In help messages, the " +"description is displayed between the command-line usage string and the help " +"messages for the various arguments." +msgstr "" + +#: ../../library/argparse.rst:229 +msgid "" +"By default, the description will be line-wrapped so that it fits within the " +"given space. To change this behavior, see the formatter_class_ argument." +msgstr "" + +#: ../../library/argparse.rst:234 +msgid "epilog" +msgstr "" + +#: ../../library/argparse.rst:236 +msgid "" +"Some programs like to display additional description of the program after " +"the description of the arguments. Such text can be specified using the " +"``epilog=`` argument to :class:`ArgumentParser`::" +msgstr "" + +#: ../../library/argparse.rst:240 +msgid "" +">>> parser = argparse.ArgumentParser(\n" +"... description='A foo that bars',\n" +"... epilog=\"And that's how you'd foo a bar\")\n" +">>> parser.print_help()\n" +"usage: argparse.py [-h]\n" +"\n" +"A foo that bars\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"\n" +"And that's how you'd foo a bar" +msgstr "" + +#: ../../library/argparse.rst:253 +msgid "" +"As with the description_ argument, the ``epilog=`` text is by default line-" +"wrapped, but this behavior can be adjusted with the formatter_class_ " +"argument to :class:`ArgumentParser`." +msgstr "" + +#: ../../library/argparse.rst:259 +msgid "parents" +msgstr "" + +#: ../../library/argparse.rst:261 +msgid "" +"Sometimes, several parsers share a common set of arguments. Rather than " +"repeating the definitions of these arguments, a single parser with all the " +"shared arguments and passed to ``parents=`` argument " +"to :class:`ArgumentParser` can be used. The ``parents=`` argument takes a " +"list of :class:`ArgumentParser` objects, collects all the positional and " +"optional actions from them, and adds these actions to " +"the :class:`ArgumentParser` object being constructed::" +msgstr "" + +#: ../../library/argparse.rst:268 +msgid "" +">>> parent_parser = argparse.ArgumentParser(add_help=False)\n" +">>> parent_parser.add_argument('--parent', type=int)\n" +"\n" +">>> foo_parser = argparse.ArgumentParser(parents=[parent_parser])\n" +">>> foo_parser.add_argument('foo')\n" +">>> foo_parser.parse_args(['--parent', '2', 'XXX'])\n" +"Namespace(foo='XXX', parent=2)\n" +"\n" +">>> bar_parser = argparse.ArgumentParser(parents=[parent_parser])\n" +">>> bar_parser.add_argument('--bar')\n" +">>> bar_parser.parse_args(['--bar', 'YYY'])\n" +"Namespace(bar='YYY', parent=None)" +msgstr "" + +#: ../../library/argparse.rst:281 +msgid "" +"Note that most parent parsers will specify ``add_help=False``. Otherwise, " +"the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " +"parent and one in the child) and raise an error." +msgstr "" + +#: ../../library/argparse.rst:286 +msgid "" +"You must fully initialize the parsers before passing them via ``parents=``. " +"If you change the parent parsers after the child parser, those changes will " +"not be reflected in the child." +msgstr "" + +#: ../../library/argparse.rst:294 +msgid "formatter_class" +msgstr "" + +#: ../../library/argparse.rst:296 +msgid "" +":class:`ArgumentParser` objects allow the help formatting to be customized " +"by specifying an alternate formatting class. Currently, there are four such " +"classes:" +msgstr "" + +#: ../../library/argparse.rst:305 +msgid "" +":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " +"more control over how textual descriptions are displayed. By " +"default, :class:`ArgumentParser` objects line-wrap the description_ and " +"epilog_ texts in command-line help messages::" +msgstr "" + +#: ../../library/argparse.rst:310 +msgid "" +">>> parser = argparse.ArgumentParser(\n" +"... prog='PROG',\n" +"... description='''this description\n" +"... was indented weird\n" +"... but that is okay''',\n" +"... epilog='''\n" +"... likewise for this epilog whose whitespace will\n" +"... be cleaned up and whose words will be wrapped\n" +"... across a couple lines''')\n" +">>> parser.print_help()\n" +"usage: PROG [-h]\n" +"\n" +"this description was indented weird but that is okay\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"\n" +"likewise for this epilog whose whitespace will be cleaned up and whose " +"words\n" +"will be wrapped across a couple lines" +msgstr "" + +#: ../../library/argparse.rst:330 +msgid "" +"Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " +"indicates that description_ and epilog_ are already correctly formatted and " +"should not be line-wrapped::" +msgstr "" + +#: ../../library/argparse.rst:334 +msgid "" +">>> parser = argparse.ArgumentParser(\n" +"... prog='PROG',\n" +"... formatter_class=argparse.RawDescriptionHelpFormatter,\n" +"... description=textwrap.dedent('''\\\n" +"... Please do not mess up this text!\n" +"... --------------------------------\n" +"... I have indented it\n" +"... exactly the way\n" +"... I want it\n" +"... '''))\n" +">>> parser.print_help()\n" +"usage: PROG [-h]\n" +"\n" +"Please do not mess up this text!\n" +"--------------------------------\n" +" I have indented it\n" +" exactly the way\n" +" I want it\n" +"\n" +"options:\n" +" -h, --help show this help message and exit" +msgstr "" + +#: ../../library/argparse.rst:356 +msgid "" +":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " +"text, including argument descriptions. However, multiple newlines are " +"replaced with one. If you wish to preserve multiple blank lines, add spaces " +"between the newlines." +msgstr "" + +#: ../../library/argparse.rst:361 +msgid "" +":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " +"default values to each of the argument help messages::" +msgstr "" + +#: ../../library/argparse.rst:364 +msgid "" +">>> parser = argparse.ArgumentParser(\n" +"... prog='PROG',\n" +"... formatter_class=argparse.ArgumentDefaultsHelpFormatter)\n" +">>> parser.add_argument('--foo', type=int, default=42, help='FOO!')\n" +">>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')\n" +">>> parser.print_help()\n" +"usage: PROG [-h] [--foo FOO] [bar ...]\n" +"\n" +"positional arguments:\n" +" bar BAR! (default: [1, 2, 3])\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo FOO FOO! (default: 42)" +msgstr "" + +#: ../../library/argparse.rst:379 +msgid "" +":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " +"each argument as the display name for its values (rather than using the " +"dest_ as the regular formatter does)::" +msgstr "" + +#: ../../library/argparse.rst:383 +msgid "" +">>> parser = argparse.ArgumentParser(\n" +"... prog='PROG',\n" +"... formatter_class=argparse.MetavarTypeHelpFormatter)\n" +">>> parser.add_argument('--foo', type=int)\n" +">>> parser.add_argument('bar', type=float)\n" +">>> parser.print_help()\n" +"usage: PROG [-h] [--foo int] float\n" +"\n" +"positional arguments:\n" +" float\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo int" +msgstr "" + +#: ../../library/argparse.rst:400 +msgid "prefix_chars" +msgstr "" + +#: ../../library/argparse.rst:402 +msgid "" +"Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " +"Parsers that need to support different or additional prefix characters, e.g. " +"for options like ``+f`` or ``/foo``, may specify them using the " +"``prefix_chars=`` argument to the :class:`ArgumentParser` constructor::" +msgstr "" + +#: ../../library/argparse.rst:408 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='-+')\n" +">>> parser.add_argument('+f')\n" +">>> parser.add_argument('++bar')\n" +">>> parser.parse_args('+f X ++bar Y'.split())\n" +"Namespace(bar='Y', f='X')" +msgstr "" + +#: ../../library/argparse.rst:414 +msgid "" +"The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " +"characters that does not include ``-`` will cause ``-f/--foo`` options to be " +"disallowed." +msgstr "" + +#: ../../library/argparse.rst:420 +msgid "fromfile_prefix_chars" +msgstr "" + +#: ../../library/argparse.rst:422 +msgid "" +"Sometimes, when dealing with a particularly long argument list, it may make " +"sense to keep the list of arguments in a file rather than typing it out at " +"the command line. If the ``fromfile_prefix_chars=`` argument is given to " +"the :class:`ArgumentParser` constructor, then arguments that start with any " +"of the specified characters will be treated as files, and will be replaced " +"by the arguments they contain. For example::" +msgstr "" + +#: ../../library/argparse.rst:429 +msgid "" +">>> with open('args.txt', 'w', encoding=sys.getfilesystemencoding()) as fp:\n" +"... fp.write('-f\\nbar')\n" +"...\n" +">>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@')\n" +">>> parser.add_argument('-f')\n" +">>> parser.parse_args(['-f', 'foo', '@args.txt'])\n" +"Namespace(f='bar')" +msgstr "" + +#: ../../library/argparse.rst:437 +msgid "" +"Arguments read from a file must be one per line by default (but see " +"also :meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if " +"they were in the same place as the original file referencing argument on the " +"command line. So in the example above, the expression ``['-f', 'foo', " +"'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" +"f', 'bar']``." +msgstr "" + +#: ../../library/argparse.rst:445 +msgid "" +"Empty lines are treated as empty strings (``''``), which are allowed as " +"values but not as arguments. Empty lines that are read as arguments will " +"result in an \"unrecognized arguments\" error." +msgstr "" + +#: ../../library/argparse.rst:449 +msgid "" +":class:`ArgumentParser` uses :term:`filesystem encoding and error handler` " +"to read the file containing arguments." +msgstr "" + +#: ../../library/argparse.rst:452 +msgid "" +"The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " +"arguments will never be treated as file references." +msgstr "" + +#: ../../library/argparse.rst:455 +msgid "" +":class:`ArgumentParser` changed encoding and errors to read arguments files " +"from default (e.g. :func:`locale.getpreferredencoding(False) " +"` and ``\"strict\"``) to the :term:`filesystem " +"encoding and error handler`. Arguments file should be encoded in UTF-8 " +"instead of ANSI Codepage on Windows." +msgstr "" + +#: ../../library/argparse.rst:463 +msgid "argument_default" +msgstr "" + +#: ../../library/argparse.rst:465 +msgid "" +"Generally, argument defaults are specified either by passing a default " +"to :meth:`~ArgumentParser.add_argument` or by calling " +"the :meth:`~ArgumentParser.set_defaults` methods with a specific set of name-" +"value pairs. Sometimes however, it may be useful to specify a single parser-" +"wide default for arguments. This can be accomplished by passing the " +"``argument_default=`` keyword argument to :class:`ArgumentParser`. For " +"example, to globally suppress attribute creation " +"on :meth:`~ArgumentParser.parse_args` calls, we supply " +"``argument_default=SUPPRESS``::" +msgstr "" + +#: ../../library/argparse.rst:474 +msgid "" +">>> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)\n" +">>> parser.add_argument('--foo')\n" +">>> parser.add_argument('bar', nargs='?')\n" +">>> parser.parse_args(['--foo', '1', 'BAR'])\n" +"Namespace(bar='BAR', foo='1')\n" +">>> parser.parse_args([])\n" +"Namespace()" +msgstr "" + +#: ../../library/argparse.rst:485 +msgid "allow_abbrev" +msgstr "" + +#: ../../library/argparse.rst:487 +msgid "" +"Normally, when you pass an argument list to " +"the :meth:`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, " +"it :ref:`recognizes abbreviations ` of long options." +msgstr "" + +#: ../../library/argparse.rst:491 +msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" +msgstr "" + +#: ../../library/argparse.rst:493 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', allow_abbrev=False)\n" +">>> parser.add_argument('--foobar', action='store_true')\n" +">>> parser.add_argument('--foonley', action='store_false')\n" +">>> parser.parse_args(['--foon'])\n" +"usage: PROG [-h] [--foobar] [--foonley]\n" +"PROG: error: unrecognized arguments: --foon" +msgstr "" + +#: ../../library/argparse.rst:504 +msgid "conflict_handler" +msgstr "" + +#: ../../library/argparse.rst:506 +msgid "" +":class:`ArgumentParser` objects do not allow two actions with the same " +"option string. By default, :class:`ArgumentParser` objects raise an " +"exception if an attempt is made to create an argument with an option string " +"that is already in use::" +msgstr "" + +#: ../../library/argparse.rst:511 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-f', '--foo', help='old foo help')\n" +">>> parser.add_argument('--foo', help='new foo help')\n" +"Traceback (most recent call last):\n" +" ..\n" +"ArgumentError: argument --foo: conflicting option string(s): --foo" +msgstr "" + +#: ../../library/argparse.rst:518 +msgid "" +"Sometimes (e.g. when using parents_) it may be useful to simply override any " +"older arguments with the same option string. To get this behavior, the " +"value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " +"of :class:`ArgumentParser`::" +msgstr "" + +#: ../../library/argparse.rst:523 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', " +"conflict_handler='resolve')\n" +">>> parser.add_argument('-f', '--foo', help='old foo help')\n" +">>> parser.add_argument('--foo', help='new foo help')\n" +">>> parser.print_help()\n" +"usage: PROG [-h] [-f FOO] [--foo FOO]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -f FOO old foo help\n" +" --foo FOO new foo help" +msgstr "" + +#: ../../library/argparse.rst:534 +msgid "" +"Note that :class:`ArgumentParser` objects only remove an action if all of " +"its option strings are overridden. So, in the example above, the old ``-f/--" +"foo`` action is retained as the ``-f`` action, because only the ``--foo`` " +"option string was overridden." +msgstr "" + +#: ../../library/argparse.rst:541 +msgid "add_help" +msgstr "" + +#: ../../library/argparse.rst:543 +msgid "" +"By default, :class:`ArgumentParser` objects add an option which simply " +"displays the parser's help message. If ``-h`` or ``--help`` is supplied at " +"the command line, the :class:`!ArgumentParser` help will be printed." +msgstr "" + +#: ../../library/argparse.rst:547 +msgid "" +"Occasionally, it may be useful to disable the addition of this help option. " +"This can be achieved by passing ``False`` as the ``add_help=`` argument " +"to :class:`ArgumentParser`::" +msgstr "" + +#: ../../library/argparse.rst:551 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" +">>> parser.add_argument('--foo', help='foo help')\n" +">>> parser.print_help()\n" +"usage: PROG [--foo FOO]\n" +"\n" +"options:\n" +" --foo FOO foo help" +msgstr "" + +#: ../../library/argparse.rst:559 +msgid "" +"The help option is typically ``-h/--help``. The exception to this is if the " +"``prefix_chars=`` is specified and does not include ``-``, in which case ``-" +"h`` and ``--help`` are not valid options. In this case, the first character " +"in ``prefix_chars`` is used to prefix the help options::" +msgstr "" + +#: ../../library/argparse.rst:565 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='+/')\n" +">>> parser.print_help()\n" +"usage: PROG [+h]\n" +"\n" +"options:\n" +" +h, ++help show this help message and exit" +msgstr "" + +#: ../../library/argparse.rst:574 +msgid "exit_on_error" +msgstr "" + +#: ../../library/argparse.rst:576 +msgid "" +"Normally, when you pass an invalid argument list to " +"the :meth:`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, " +"it will print a *message* to :data:`sys.stderr` and exit with a status code " +"of 2." +msgstr "" + +#: ../../library/argparse.rst:580 +msgid "" +"If the user would like to catch errors manually, the feature can be enabled " +"by setting ``exit_on_error`` to ``False``::" +msgstr "" + +#: ../../library/argparse.rst:583 +msgid "" +">>> parser = argparse.ArgumentParser(exit_on_error=False)\n" +">>> parser.add_argument('--integers', type=int)\n" +"_StoreAction(option_strings=['--integers'], dest='integers', nargs=None, " +"const=None, default=None, type=, choices=None, help=None, " +"metavar=None)\n" +">>> try:\n" +"... parser.parse_args('--integers a'.split())\n" +"... except argparse.ArgumentError:\n" +"... print('Catching an argumentError')\n" +"...\n" +"Catching an argumentError" +msgstr "" + +#: ../../library/argparse.rst:596 +msgid "suggest_on_error" +msgstr "" + +#: ../../library/argparse.rst:598 +msgid "" +"By default, when a user passes an invalid argument choice or subparser " +"name, :class:`ArgumentParser` will exit with error info and list the " +"permissible argument choices (if specified) or subparser names as part of " +"the error message." +msgstr "" + +#: ../../library/argparse.rst:602 +msgid "" +"If the user would like to enable suggestions for mistyped argument choices " +"and subparser names, the feature can be enabled by setting " +"``suggest_on_error`` to ``True``. Note that this only applies for arguments " +"when the choices specified are strings::" +msgstr "" + +#: ../../library/argparse.rst:607 +msgid "" +">>> parser = argparse.ArgumentParser(description='Process some integers.',\n" +" suggest_on_error=True)\n" +">>> parser.add_argument('--action', choices=['sum', 'max'])\n" +">>> parser.add_argument('integers', metavar='N', type=int, nargs='+',\n" +"... help='an integer for the accumulator')\n" +">>> parser.parse_args(['--action', 'sumn', 1, 2, 3])\n" +"tester.py: error: argument --action: invalid choice: 'sumn', maybe you meant " +"'sum'? (choose from 'sum', 'max')" +msgstr "" + +#: ../../library/argparse.rst:615 +msgid "" +"If you're writing code that needs to be compatible with older Python " +"versions and want to opportunistically use ``suggest_on_error`` when it's " +"available, you can set it as an attribute after initializing the parser " +"instead of using the keyword argument::" +msgstr "" + +#: ../../library/argparse.rst:620 +msgid "" +">>> parser = argparse.ArgumentParser(description='Process some integers.')\n" +">>> parser.suggest_on_error = True" +msgstr "" + +#: ../../library/argparse.rst:627 +msgid "color" +msgstr "" + +#: ../../library/argparse.rst:629 +msgid "" +"By default, the help message is printed in color using `ANSI escape " +"sequences `__. If you want " +"plain text help messages, you can disable this :ref:`in your local " +"environment `, or in the argument parser itself " +"by setting ``color`` to ``False``::" +msgstr "" + +#: ../../library/argparse.rst:635 +msgid "" +">>> parser = argparse.ArgumentParser(description='Process some integers.',\n" +"... color=False)\n" +">>> parser.add_argument('--action', choices=['sum', 'max'])\n" +">>> parser.add_argument('integers', metavar='N', type=int, nargs='+',\n" +"... help='an integer for the accumulator')\n" +">>> parser.parse_args(['--help'])" +msgstr "" + +#: ../../library/argparse.rst:646 +msgid "The add_argument() method" +msgstr "" + +#: ../../library/argparse.rst:652 +msgid "" +"Define how a single command-line argument should be parsed. Each parameter " +"has its own more detailed description below, but in short they are:" +msgstr "" + +#: ../../library/argparse.rst:655 +msgid "" +"`name or flags`_ - Either a name or a list of option strings, e.g. ``'foo'`` " +"or ``'-f', '--foo'``." +msgstr "" + +#: ../../library/argparse.rst:658 +msgid "" +"action_ - The basic type of action to be taken when this argument is " +"encountered at the command line." +msgstr "" + +#: ../../library/argparse.rst:661 +msgid "nargs_ - The number of command-line arguments that should be consumed." +msgstr "" + +#: ../../library/argparse.rst:663 +msgid "" +"const_ - A constant value required by some action_ and nargs_ selections." +msgstr "" + +#: ../../library/argparse.rst:665 +msgid "" +"default_ - The value produced if the argument is absent from the command " +"line and if it is absent from the namespace object." +msgstr "" + +#: ../../library/argparse.rst:668 +msgid "" +"type_ - The type to which the command-line argument should be converted." +msgstr "" + +#: ../../library/argparse.rst:670 +msgid "choices_ - A sequence of the allowable values for the argument." +msgstr "" + +#: ../../library/argparse.rst:672 +msgid "" +"required_ - Whether or not the command-line option may be omitted (optionals " +"only)." +msgstr "" + +#: ../../library/argparse.rst:675 +msgid "help_ - A brief description of what the argument does." +msgstr "" + +#: ../../library/argparse.rst:677 +msgid "metavar_ - A name for the argument in usage messages." +msgstr "" + +#: ../../library/argparse.rst:679 +msgid "" +"dest_ - The name of the attribute to be added to the object returned " +"by :meth:`parse_args`." +msgstr "" + +#: ../../library/argparse.rst:682 +msgid "deprecated_ - Whether or not use of the argument is deprecated." +msgstr "" + +#: ../../library/argparse.rst:690 +msgid "name or flags" +msgstr "" + +#: ../../library/argparse.rst:692 +msgid "" +"The :meth:`~ArgumentParser.add_argument` method must know whether an " +"optional argument, like ``-f`` or ``--foo``, or a positional argument, like " +"a list of filenames, is expected. The first arguments passed " +"to :meth:`~ArgumentParser.add_argument` must therefore be either a series of " +"flags, or a simple argument name." +msgstr "" + +#: ../../library/argparse.rst:698 +msgid "For example, an optional argument could be created like::" +msgstr "" + +#: ../../library/argparse.rst:700 +msgid ">>> parser.add_argument('-f', '--foo')" +msgstr "" + +#: ../../library/argparse.rst:702 +msgid "while a positional argument could be created like::" +msgstr "" + +#: ../../library/argparse.rst:704 +msgid ">>> parser.add_argument('bar')" +msgstr "" + +#: ../../library/argparse.rst:706 +msgid "" +"When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " +"be identified by the ``-`` prefix, and the remaining arguments will be " +"assumed to be positional::" +msgstr "" + +#: ../../library/argparse.rst:710 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-f', '--foo')\n" +">>> parser.add_argument('bar')\n" +">>> parser.parse_args(['BAR'])\n" +"Namespace(bar='BAR', foo=None)\n" +">>> parser.parse_args(['BAR', '--foo', 'FOO'])\n" +"Namespace(bar='BAR', foo='FOO')\n" +">>> parser.parse_args(['--foo', 'FOO'])\n" +"usage: PROG [-h] [-f FOO] bar\n" +"PROG: error: the following arguments are required: bar" +msgstr "" + +#: ../../library/argparse.rst:721 +msgid "" +"By default, :mod:`!argparse` automatically handles the internal naming and " +"display names of arguments, simplifying the process without requiring " +"additional configuration. As such, you do not need to specify the dest_ and " +"metavar_ parameters. The dest_ parameter defaults to the argument name with " +"underscores ``_`` replacing hyphens ``-`` . The metavar_ parameter defaults " +"to the upper-cased name. For example::" +msgstr "" + +#: ../../library/argparse.rst:729 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('--foo-bar')\n" +">>> parser.parse_args(['--foo-bar', 'FOO-BAR']\n" +"Namespace(foo_bar='FOO-BAR')\n" +">>> parser.print_help()\n" +"usage: [-h] [--foo-bar FOO-BAR]\n" +"\n" +"optional arguments:\n" +" -h, --help show this help message and exit\n" +" --foo-bar FOO-BAR" +msgstr "" + +#: ../../library/argparse.rst:744 +msgid "action" +msgstr "" + +#: ../../library/argparse.rst:746 +msgid "" +":class:`ArgumentParser` objects associate command-line arguments with " +"actions. These actions can do just about anything with the command-line " +"arguments associated with them, though most actions simply add an attribute " +"to the object returned by :meth:`~ArgumentParser.parse_args`. The " +"``action`` keyword argument specifies how the command-line arguments should " +"be handled. The supplied actions are:" +msgstr "" + +#: ../../library/argparse.rst:752 +msgid "" +"``'store'`` - This just stores the argument's value. This is the default " +"action." +msgstr "" + +#: ../../library/argparse.rst:755 +msgid "" +"``'store_const'`` - This stores the value specified by the const_ keyword " +"argument; note that the const_ keyword argument defaults to ``None``. The " +"``'store_const'`` action is most commonly used with optional arguments that " +"specify some sort of flag. For example::" +msgstr "" + +#: ../../library/argparse.rst:760 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action='store_const', const=42)\n" +">>> parser.parse_args(['--foo'])\n" +"Namespace(foo=42)" +msgstr "" + +#: ../../library/argparse.rst:765 +msgid "" +"``'store_true'`` and ``'store_false'`` - These are special cases of " +"``'store_const'`` used for storing the values ``True`` and ``False`` " +"respectively. In addition, they create default values of ``False`` and " +"``True`` respectively::" +msgstr "" + +#: ../../library/argparse.rst:770 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action='store_true')\n" +">>> parser.add_argument('--bar', action='store_false')\n" +">>> parser.add_argument('--baz', action='store_false')\n" +">>> parser.parse_args('--foo --bar'.split())\n" +"Namespace(foo=True, bar=False, baz=True)" +msgstr "" + +#: ../../library/argparse.rst:777 +msgid "" +"``'append'`` - This stores a list, and appends each argument value to the " +"list. It is useful to allow an option to be specified multiple times. If the " +"default value is non-empty, the default elements will be present in the " +"parsed value for the option, with any values from the command line appended " +"after those default values. Example usage::" +msgstr "" + +#: ../../library/argparse.rst:783 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action='append')\n" +">>> parser.parse_args('--foo 1 --foo 2'.split())\n" +"Namespace(foo=['1', '2'])" +msgstr "" + +#: ../../library/argparse.rst:788 +msgid "" +"``'append_const'`` - This stores a list, and appends the value specified by " +"the const_ keyword argument to the list; note that the const_ keyword " +"argument defaults to ``None``. The ``'append_const'`` action is typically " +"useful when multiple arguments need to store constants to the same list. For " +"example::" +msgstr "" + +#: ../../library/argparse.rst:794 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--str', dest='types', action='append_const', " +"const=str)\n" +">>> parser.add_argument('--int', dest='types', action='append_const', " +"const=int)\n" +">>> parser.parse_args('--str --int'.split())\n" +"Namespace(types=[, ])" +msgstr "" + +#: ../../library/argparse.rst:800 +msgid "" +"``'extend'`` - This stores a list and appends each item from the multi-value " +"argument list to it. The ``'extend'`` action is typically used with the " +"nargs_ keyword argument value ``'+'`` or ``'*'``. Note that when nargs_ is " +"``None`` (the default) or ``'?'``, each character of the argument string " +"will be appended to the list. Example usage::" +msgstr "" + +#: ../../library/argparse.rst:808 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument(\"--foo\", action=\"extend\", nargs=\"+\", " +"type=str)\n" +">>> parser.parse_args([\"--foo\", \"f1\", \"--foo\", \"f2\", \"f3\", " +"\"f4\"])\n" +"Namespace(foo=['f1', 'f2', 'f3', 'f4'])" +msgstr "" + +#: ../../library/argparse.rst:815 +msgid "" +"``'count'`` - This counts the number of times a keyword argument occurs. For " +"example, this is useful for increasing verbosity levels::" +msgstr "" + +#: ../../library/argparse.rst:818 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--verbose', '-v', action='count', default=0)\n" +">>> parser.parse_args(['-vvv'])\n" +"Namespace(verbose=3)" +msgstr "" + +#: ../../library/argparse.rst:823 +msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." +msgstr "" + +#: ../../library/argparse.rst:825 +msgid "" +"``'help'`` - This prints a complete help message for all the options in the " +"current parser and then exits. By default a help action is automatically " +"added to the parser. See :class:`ArgumentParser` for details of how the " +"output is created." +msgstr "" + +#: ../../library/argparse.rst:830 +msgid "" +"``'version'`` - This expects a ``version=`` keyword argument in " +"the :meth:`~ArgumentParser.add_argument` call, and prints version " +"information and exits when invoked::" +msgstr "" + +#: ../../library/argparse.rst:834 +msgid "" +">>> import argparse\n" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('--version', action='version', version='%(prog)s " +"2.0')\n" +">>> parser.parse_args(['--version'])\n" +"PROG 2.0" +msgstr "" + +#: ../../library/argparse.rst:840 +msgid "" +"You may also specify an arbitrary action by passing an :class:`Action` " +"subclass (e.g. :class:`BooleanOptionalAction`) or other object that " +"implements the same interface. Only actions that consume command-line " +"arguments (e.g. ``'store'``, ``'append'``, ``'extend'``, or custom actions " +"with non-zero ``nargs``) can be used with positional arguments." +msgstr "" + +#: ../../library/argparse.rst:846 +msgid "" +"The recommended way to create a custom action is to extend :class:`Action`, " +"overriding the :meth:`!__call__` method and optionally the :meth:`!__init__` " +"and :meth:`!format_usage` methods. You can also register custom actions " +"using the :meth:`~ArgumentParser.register` method and reference them by " +"their registered name." +msgstr "" + +#: ../../library/argparse.rst:851 +msgid "An example of a custom action::" +msgstr "" + +#: ../../library/argparse.rst:853 +msgid "" +">>> class FooAction(argparse.Action):\n" +"... def __init__(self, option_strings, dest, nargs=None, **kwargs):\n" +"... if nargs is not None:\n" +"... raise ValueError(\"nargs not allowed\")\n" +"... super().__init__(option_strings, dest, **kwargs)\n" +"... def __call__(self, parser, namespace, values, option_string=None):\n" +"... print('%r %r %r' % (namespace, values, option_string))\n" +"... setattr(namespace, self.dest, values)\n" +"...\n" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action=FooAction)\n" +">>> parser.add_argument('bar', action=FooAction)\n" +">>> args = parser.parse_args('1 --foo 2'.split())\n" +"Namespace(bar=None, foo=None) '1' None\n" +"Namespace(bar='1', foo=None) '2' '--foo'\n" +">>> args\n" +"Namespace(bar='1', foo='2')" +msgstr "" + +#: ../../library/argparse.rst:871 +msgid "For more details, see :class:`Action`." +msgstr "" + +#: ../../library/argparse.rst:877 +msgid "nargs" +msgstr "" + +#: ../../library/argparse.rst:879 +msgid "" +":class:`ArgumentParser` objects usually associate a single command-line " +"argument with a single action to be taken. The ``nargs`` keyword argument " +"associates a different number of command-line arguments with a single " +"action. See also :ref:`specifying-ambiguous-arguments`. The supported values " +"are:" +msgstr "" + +#: ../../library/argparse.rst:884 +msgid "" +"``N`` (an integer). ``N`` arguments from the command line will be gathered " +"together into a list. For example::" +msgstr "" + +#: ../../library/argparse.rst:887 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', nargs=2)\n" +">>> parser.add_argument('bar', nargs=1)\n" +">>> parser.parse_args('c --foo a b'.split())\n" +"Namespace(bar=['c'], foo=['a', 'b'])" +msgstr "" + +#: ../../library/argparse.rst:893 +msgid "" +"Note that ``nargs=1`` produces a list of one item. This is different from " +"the default, in which the item is produced by itself." +msgstr "" + +#: ../../library/argparse.rst:898 +msgid "" +"``'?'``. One argument will be consumed from the command line if possible, " +"and produced as a single item. If no command-line argument is present, the " +"value from default_ will be produced. Note that for optional arguments, " +"there is an additional case - the option string is present but not followed " +"by a command-line argument. In this case the value from const_ will be " +"produced. Some examples to illustrate this::" +msgstr "" + +#: ../../library/argparse.rst:905 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', nargs='?', const='c', default='d')\n" +">>> parser.add_argument('bar', nargs='?', default='d')\n" +">>> parser.parse_args(['XX', '--foo', 'YY'])\n" +"Namespace(bar='XX', foo='YY')\n" +">>> parser.parse_args(['XX', '--foo'])\n" +"Namespace(bar='XX', foo='c')\n" +">>> parser.parse_args([])\n" +"Namespace(bar='d', foo='d')" +msgstr "" + +#: ../../library/argparse.rst:915 +msgid "" +"One of the more common uses of ``nargs='?'`` is to allow optional input and " +"output files::" +msgstr "" + +#: ../../library/argparse.rst:918 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('infile', nargs='?')\n" +">>> parser.add_argument('outfile', nargs='?')\n" +">>> parser.parse_args(['input.txt', 'output.txt'])\n" +"Namespace(infile='input.txt', outfile='output.txt')\n" +">>> parser.parse_args(['input.txt'])\n" +"Namespace(infile='input.txt', outfile=None)\n" +">>> parser.parse_args([])\n" +"Namespace(infile=None, outfile=None)" +msgstr "" + +#: ../../library/argparse.rst:930 +msgid "" +"``'*'``. All command-line arguments present are gathered into a list. Note " +"that it generally doesn't make much sense to have more than one positional " +"argument with ``nargs='*'``, but multiple optional arguments with " +"``nargs='*'`` is possible. For example::" +msgstr "" + +#: ../../library/argparse.rst:935 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', nargs='*')\n" +">>> parser.add_argument('--bar', nargs='*')\n" +">>> parser.add_argument('baz', nargs='*')\n" +">>> parser.parse_args('a b --foo x y --bar 1 2'.split())\n" +"Namespace(bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y'])" +msgstr "" + +#: ../../library/argparse.rst:944 +msgid "" +"``'+'``. Just like ``'*'``, all command-line arguments present are gathered " +"into a list. Additionally, an error message will be generated if there " +"wasn't at least one command-line argument present. For example::" +msgstr "" + +#: ../../library/argparse.rst:948 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('foo', nargs='+')\n" +">>> parser.parse_args(['a', 'b'])\n" +"Namespace(foo=['a', 'b'])\n" +">>> parser.parse_args([])\n" +"usage: PROG [-h] foo [foo ...]\n" +"PROG: error: the following arguments are required: foo" +msgstr "" + +#: ../../library/argparse.rst:956 +msgid "" +"If the ``nargs`` keyword argument is not provided, the number of arguments " +"consumed is determined by the action_. Generally this means a single " +"command-line argument will be consumed and a single item (not a list) will " +"be produced. Actions that do not consume command-line arguments (e.g. " +"``'store_const'``) set ``nargs=0``." +msgstr "" + +#: ../../library/argparse.rst:966 +msgid "const" +msgstr "" + +#: ../../library/argparse.rst:968 +msgid "" +"The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " +"hold constant values that are not read from the command line but are " +"required for the various :class:`ArgumentParser` actions. The two most " +"common uses of it are:" +msgstr "" + +#: ../../library/argparse.rst:972 +msgid "" +"When :meth:`~ArgumentParser.add_argument` is called with " +"``action='store_const'`` or ``action='append_const'``. These actions add " +"the ``const`` value to one of the attributes of the object returned " +"by :meth:`~ArgumentParser.parse_args`. See the action_ description for " +"examples. If ``const`` is not provided " +"to :meth:`~ArgumentParser.add_argument`, it will receive a default value of " +"``None``." +msgstr "" + +#: ../../library/argparse.rst:980 +msgid "" +"When :meth:`~ArgumentParser.add_argument` is called with option strings " +"(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " +"argument that can be followed by zero or one command-line arguments. When " +"parsing the command line, if the option string is encountered with no " +"command-line argument following it, the value of ``const`` will be assumed " +"to be ``None`` instead. See the nargs_ description for examples." +msgstr "" + +#: ../../library/argparse.rst:987 +msgid "" +"``const=None`` by default, including when ``action='append_const'`` or " +"``action='store_const'``." +msgstr "" + +#: ../../library/argparse.rst:994 +msgid "default" +msgstr "" + +#: ../../library/argparse.rst:996 +msgid "" +"All optional arguments and some positional arguments may be omitted at the " +"command line. The ``default`` keyword argument " +"of :meth:`~ArgumentParser.add_argument`, whose value defaults to ``None``, " +"specifies what value should be used if the command-line argument is not " +"present. For optional arguments, the ``default`` value is used when the " +"option string was not present at the command line::" +msgstr "" + +#: ../../library/argparse.rst:1003 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', default=42)\n" +">>> parser.parse_args(['--foo', '2'])\n" +"Namespace(foo='2')\n" +">>> parser.parse_args([])\n" +"Namespace(foo=42)" +msgstr "" + +#: ../../library/argparse.rst:1010 +msgid "" +"If the target namespace already has an attribute set, the action *default* " +"will not overwrite it::" +msgstr "" + +#: ../../library/argparse.rst:1013 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', default=42)\n" +">>> parser.parse_args([], namespace=argparse.Namespace(foo=101))\n" +"Namespace(foo=101)" +msgstr "" + +#: ../../library/argparse.rst:1018 +msgid "" +"If the ``default`` value is a string, the parser parses the value as if it " +"were a command-line argument. In particular, the parser applies any type_ " +"conversion argument, if provided, before setting the attribute on " +"the :class:`Namespace` return value. Otherwise, the parser uses the value " +"as is::" +msgstr "" + +#: ../../library/argparse.rst:1023 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--length', default='10', type=int)\n" +">>> parser.add_argument('--width', default=10.5, type=int)\n" +">>> parser.parse_args()\n" +"Namespace(length=10, width=10.5)" +msgstr "" + +#: ../../library/argparse.rst:1029 +msgid "" +"For positional arguments with nargs_ equal to ``?`` or ``*``, the " +"``default`` value is used when no command-line argument was present::" +msgstr "" + +#: ../../library/argparse.rst:1032 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('foo', nargs='?', default=42)\n" +">>> parser.parse_args(['a'])\n" +"Namespace(foo='a')\n" +">>> parser.parse_args([])\n" +"Namespace(foo=42)" +msgstr "" + +#: ../../library/argparse.rst:1039 +msgid "" +"For required_ arguments, the ``default`` value is ignored. For example, this " +"applies to positional arguments with nargs_ values other than ``?`` or " +"``*``, or optional arguments marked as ``required=True``." +msgstr "" + +#: ../../library/argparse.rst:1043 +msgid "" +"Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " +"the command-line argument was not present::" +msgstr "" + +#: ../../library/argparse.rst:1046 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', default=argparse.SUPPRESS)\n" +">>> parser.parse_args([])\n" +"Namespace()\n" +">>> parser.parse_args(['--foo', '1'])\n" +"Namespace(foo='1')" +msgstr "" + +#: ../../library/argparse.rst:1057 +msgid "type" +msgstr "" + +#: ../../library/argparse.rst:1059 +msgid "" +"By default, the parser reads command-line arguments in as simple strings. " +"However, quite often the command-line string should instead be interpreted " +"as another type, such as a :class:`float` or :class:`int`. The ``type`` " +"keyword for :meth:`~ArgumentParser.add_argument` allows any necessary type-" +"checking and type conversions to be performed." +msgstr "" + +#: ../../library/argparse.rst:1065 +msgid "" +"If the type_ keyword is used with the default_ keyword, the type converter " +"is only applied if the default is a string." +msgstr "" + +#: ../../library/argparse.rst:1068 +msgid "" +"The argument to ``type`` can be a callable that accepts a single string or " +"the name of a registered type (see :meth:`~ArgumentParser.register`) If the " +"function raises :exc:`ArgumentTypeError`, :exc:`TypeError`, " +"or :exc:`ValueError`, the exception is caught and a nicely formatted error " +"message is displayed. Other exception types are not handled." +msgstr "" + +#: ../../library/argparse.rst:1074 +msgid "Common built-in types and functions can be used as type converters:" +msgstr "" + +#: ../../library/argparse.rst:1076 +msgid "" +"import argparse\n" +"import pathlib\n" +"\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument('count', type=int)\n" +"parser.add_argument('distance', type=float)\n" +"parser.add_argument('street', type=ascii)\n" +"parser.add_argument('code_point', type=ord)\n" +"parser.add_argument('datapath', type=pathlib.Path)" +msgstr "" + +#: ../../library/argparse.rst:1088 +msgid "User defined functions can be used as well:" +msgstr "" + +#: ../../library/argparse.rst:1090 +msgid "" +">>> def hyphenated(string):\n" +"... return '-'.join([word[:4] for word in string.casefold().split()])\n" +"...\n" +">>> parser = argparse.ArgumentParser()\n" +">>> _ = parser.add_argument('short_title', type=hyphenated)\n" +">>> parser.parse_args(['\"The Tale of Two Cities\"'])\n" +"Namespace(short_title='\"the-tale-of-two-citi')" +msgstr "" + +#: ../../library/argparse.rst:1100 +msgid "" +"The :func:`bool` function is not recommended as a type converter. All it " +"does is convert empty strings to ``False`` and non-empty strings to " +"``True``. This is usually not what is desired." +msgstr "" + +#: ../../library/argparse.rst:1104 +msgid "" +"In general, the ``type`` keyword is a convenience that should only be used " +"for simple conversions that can only raise one of the three supported " +"exceptions. Anything with more interesting error-handling or resource " +"management should be done downstream after the arguments are parsed." +msgstr "" + +#: ../../library/argparse.rst:1109 +msgid "" +"For example, JSON or YAML conversions have complex error cases that require " +"better reporting than can be given by the ``type`` keyword. " +"A :exc:`~json.JSONDecodeError` would not be well formatted and " +"a :exc:`FileNotFoundError` exception would not be handled at all." +msgstr "" + +#: ../../library/argparse.rst:1114 +msgid "" +"Even :class:`~argparse.FileType` has its limitations for use with the " +"``type`` keyword. If one argument uses :class:`~argparse.FileType` and then " +"a subsequent argument fails, an error is reported but the file is not " +"automatically closed. In this case, it would be better to wait until after " +"the parser has run and then use the :keyword:`with`-statement to manage the " +"files." +msgstr "" + +#: ../../library/argparse.rst:1121 +msgid "" +"For type checkers that simply check against a fixed set of values, consider " +"using the choices_ keyword instead." +msgstr "" + +#: ../../library/argparse.rst:1128 +msgid "choices" +msgstr "" + +#: ../../library/argparse.rst:1130 +msgid "" +"Some command-line arguments should be selected from a restricted set of " +"values. These can be handled by passing a sequence object as the *choices* " +"keyword argument to :meth:`~ArgumentParser.add_argument`. When the command " +"line is parsed, argument values will be checked, and an error message will " +"be displayed if the argument was not one of the acceptable values::" +msgstr "" + +#: ../../library/argparse.rst:1136 +msgid "" +">>> parser = argparse.ArgumentParser(prog='game.py')\n" +">>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])\n" +">>> parser.parse_args(['rock'])\n" +"Namespace(move='rock')\n" +">>> parser.parse_args(['fire'])\n" +"usage: game.py [-h] {rock,paper,scissors}\n" +"game.py: error: argument move: invalid choice: 'fire' (choose from 'rock',\n" +"'paper', 'scissors')" +msgstr "" + +#: ../../library/argparse.rst:1145 +msgid "" +"Note that inclusion in the *choices* sequence is checked after any type_ " +"conversions have been performed, so the type of the objects in the *choices* " +"sequence should match the type_ specified." +msgstr "" + +#: ../../library/argparse.rst:1149 +msgid "" +"Any sequence can be passed as the *choices* value, so :class:`list` " +"objects, :class:`tuple` objects, and custom sequences are all supported." +msgstr "" + +#: ../../library/argparse.rst:1152 +msgid "" +"Use of :class:`enum.Enum` is not recommended because it is difficult to " +"control its appearance in usage, help, and error messages." +msgstr "" + +#: ../../library/argparse.rst:1155 +msgid "" +"Formatted choices override the default *metavar* which is normally derived " +"from *dest*. This is usually what you want because the user never sees the " +"*dest* parameter. If this display isn't desirable (perhaps because there " +"are many choices), just specify an explicit metavar_." +msgstr "" + +#: ../../library/argparse.rst:1164 +msgid "required" +msgstr "" + +#: ../../library/argparse.rst:1166 +msgid "" +"In general, the :mod:`!argparse` module assumes that flags like ``-f`` and " +"``--bar`` indicate *optional* arguments, which can always be omitted at the " +"command line. To make an option *required*, ``True`` can be specified for " +"the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" +msgstr "" + +#: ../../library/argparse.rst:1171 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', required=True)\n" +">>> parser.parse_args(['--foo', 'BAR'])\n" +"Namespace(foo='BAR')\n" +">>> parser.parse_args([])\n" +"usage: [-h] --foo FOO\n" +": error: the following arguments are required: --foo" +msgstr "" + +#: ../../library/argparse.rst:1179 +msgid "" +"As the example shows, if an option is marked as " +"``required``, :meth:`~ArgumentParser.parse_args` will report an error if " +"that option is not present at the command line." +msgstr "" + +#: ../../library/argparse.rst:1185 +msgid "" +"Required options are generally considered bad form because users expect " +"*options* to be *optional*, and thus they should be avoided when possible." +msgstr "" + +#: ../../library/argparse.rst:1192 +msgid "help" +msgstr "" + +#: ../../library/argparse.rst:1194 +msgid "" +"The ``help`` value is a string containing a brief description of the " +"argument. When a user requests help (usually by using ``-h`` or ``--help`` " +"at the command line), these ``help`` descriptions will be displayed with " +"each argument." +msgstr "" + +#: ../../library/argparse.rst:1199 +msgid "" +"The ``help`` strings can include various format specifiers to avoid " +"repetition of things like the program name or the argument default_. The " +"available specifiers include the program name, ``%(prog)s`` and most keyword " +"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``%" +"(type)s``, etc.::" +msgstr "" + +#: ../../library/argparse.rst:1204 +msgid "" +">>> parser = argparse.ArgumentParser(prog='frobble')\n" +">>> parser.add_argument('bar', nargs='?', type=int, default=42,\n" +"... help='the bar to %(prog)s (default: %(default)s)')\n" +">>> parser.print_help()\n" +"usage: frobble [-h] [bar]\n" +"\n" +"positional arguments:\n" +" bar the bar to frobble (default: 42)\n" +"\n" +"options:\n" +" -h, --help show this help message and exit" +msgstr "" + +#: ../../library/argparse.rst:1216 +msgid "" +"As the help string supports %-formatting, if you want a literal ``%`` to " +"appear in the help string, you must escape it as ``%%``." +msgstr "" + +#: ../../library/argparse.rst:1219 +msgid "" +":mod:`!argparse` supports silencing the help entry for certain options, by " +"setting the ``help`` value to ``argparse.SUPPRESS``::" +msgstr "" + +#: ../../library/argparse.rst:1222 +msgid "" +">>> parser = argparse.ArgumentParser(prog='frobble')\n" +">>> parser.add_argument('--foo', help=argparse.SUPPRESS)\n" +">>> parser.print_help()\n" +"usage: frobble [-h]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit" +msgstr "" + +#: ../../library/argparse.rst:1234 +msgid "metavar" +msgstr "" + +#: ../../library/argparse.rst:1236 +msgid "" +"When :class:`ArgumentParser` generates help messages, it needs some way to " +"refer to each expected argument. By default, :class:`!ArgumentParser` " +"objects use the dest_ value as the \"name\" of each object. By default, for " +"positional argument actions, the dest_ value is used directly, and for " +"optional argument actions, the dest_ value is uppercased. So, a single " +"positional argument with ``dest='bar'`` will be referred to as ``bar``. A " +"single optional argument ``--foo`` that should be followed by a single " +"command-line argument will be referred to as ``FOO``. An example::" +msgstr "" + +#: ../../library/argparse.rst:1245 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo')\n" +">>> parser.add_argument('bar')\n" +">>> parser.parse_args('X --foo Y'.split())\n" +"Namespace(bar='X', foo='Y')\n" +">>> parser.print_help()\n" +"usage: [-h] [--foo FOO] bar\n" +"\n" +"positional arguments:\n" +" bar\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo FOO" +msgstr "" + +#: ../../library/argparse.rst:1260 +msgid "An alternative name can be specified with ``metavar``::" +msgstr "" + +#: ../../library/argparse.rst:1262 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', metavar='YYY')\n" +">>> parser.add_argument('bar', metavar='XXX')\n" +">>> parser.parse_args('X --foo Y'.split())\n" +"Namespace(bar='X', foo='Y')\n" +">>> parser.print_help()\n" +"usage: [-h] [--foo YYY] XXX\n" +"\n" +"positional arguments:\n" +" XXX\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo YYY" +msgstr "" + +#: ../../library/argparse.rst:1277 +msgid "" +"Note that ``metavar`` only changes the *displayed* name - the name of the " +"attribute on the :meth:`~ArgumentParser.parse_args` object is still " +"determined by the dest_ value." +msgstr "" + +#: ../../library/argparse.rst:1281 +msgid "" +"Different values of ``nargs`` may cause the metavar to be used multiple " +"times. Providing a tuple to ``metavar`` specifies a different display for " +"each of the arguments::" +msgstr "" + +#: ../../library/argparse.rst:1285 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-x', nargs=2)\n" +">>> parser.add_argument('--foo', nargs=2, metavar=('bar', 'baz'))\n" +">>> parser.print_help()\n" +"usage: PROG [-h] [-x X X] [--foo bar baz]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" -x X X\n" +" --foo bar baz" +msgstr "" + +#: ../../library/argparse.rst:1300 +msgid "dest" +msgstr "" + +#: ../../library/argparse.rst:1302 +msgid "" +"Most :class:`ArgumentParser` actions add some value as an attribute of the " +"object returned by :meth:`~ArgumentParser.parse_args`. The name of this " +"attribute is determined by the ``dest`` keyword argument " +"of :meth:`~ArgumentParser.add_argument`. For positional argument actions, " +"``dest`` is normally supplied as the first argument " +"to :meth:`~ArgumentParser.add_argument`::" +msgstr "" + +#: ../../library/argparse.rst:1309 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('bar')\n" +">>> parser.parse_args(['XXX'])\n" +"Namespace(bar='XXX')" +msgstr "" + +#: ../../library/argparse.rst:1314 +msgid "" +"For optional argument actions, the value of ``dest`` is normally inferred " +"from the option strings. :class:`ArgumentParser` generates the value of " +"``dest`` by taking the first long option string and stripping away the " +"initial ``--`` string. If no long option strings were supplied, ``dest`` " +"will be derived from the first short option string by stripping the initial " +"``-`` character. Any internal ``-`` characters will be converted to ``_`` " +"characters to make sure the string is a valid attribute name. The examples " +"below illustrate this behavior::" +msgstr "" + +#: ../../library/argparse.rst:1323 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('-f', '--foo-bar', '--foo')\n" +">>> parser.add_argument('-x', '-y')\n" +">>> parser.parse_args('-f 1 -x 2'.split())\n" +"Namespace(foo_bar='1', x='2')\n" +">>> parser.parse_args('--foo 1 -y 2'.split())\n" +"Namespace(foo_bar='1', x='2')" +msgstr "" + +#: ../../library/argparse.rst:1331 +msgid "``dest`` allows a custom attribute name to be provided::" +msgstr "" + +#: ../../library/argparse.rst:1333 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', dest='bar')\n" +">>> parser.parse_args('--foo XXX'.split())\n" +"Namespace(bar='XXX')" +msgstr "" + +#: ../../library/argparse.rst:1342 +msgid "deprecated" +msgstr "" + +#: ../../library/argparse.rst:1344 +msgid "" +"During a project's lifetime, some arguments may need to be removed from the " +"command line. Before removing them, you should inform your users that the " +"arguments are deprecated and will be removed. The ``deprecated`` keyword " +"argument of :meth:`~ArgumentParser.add_argument`, which defaults to " +"``False``, specifies if the argument is deprecated and will be removed in " +"the future. For arguments, if ``deprecated`` is ``True``, then a warning " +"will be printed to :data:`sys.stderr` when the argument is used::" +msgstr "" + +#: ../../library/argparse.rst:1354 +msgid "" +">>> import argparse\n" +">>> parser = argparse.ArgumentParser(prog='snake.py')\n" +">>> parser.add_argument('--legs', default=0, type=int, deprecated=True)\n" +">>> parser.parse_args([])\n" +"Namespace(legs=0)\n" +">>> parser.parse_args(['--legs', '4'])\n" +"snake.py: warning: option '--legs' is deprecated\n" +"Namespace(legs=4)" +msgstr "" + +#: ../../library/argparse.rst:1367 +msgid "Action classes" +msgstr "" + +#: ../../library/argparse.rst:1369 +msgid "" +":class:`!Action` classes implement the Action API, a callable which returns " +"a callable which processes arguments from the command-line. Any object which " +"follows this API may be passed as the ``action`` parameter " +"to :meth:`~ArgumentParser.add_argument`." +msgstr "" + +#: ../../library/argparse.rst:1378 +msgid "" +":class:`!Action` objects are used by an :class:`ArgumentParser` to represent " +"the information needed to parse a single argument from one or more strings " +"from the command line. The :class:`!Action` class must accept the two " +"positional arguments plus any keyword arguments passed " +"to :meth:`ArgumentParser.add_argument` except for the ``action`` itself." +msgstr "" + +#: ../../library/argparse.rst:1384 +msgid "" +"Instances of :class:`!Action` (or return value of any callable to the " +"``action`` parameter) should have attributes :attr:`!dest`, :attr:`!" +"option_strings`, :attr:`!default`, :attr:`!type`, :attr:`!required`, :attr:`!" +"help`, etc. defined. The easiest way to ensure these attributes are defined " +"is to call :meth:`!Action.__init__`." +msgstr "" + +#: ../../library/argparse.rst:1392 +msgid "" +":class:`!Action` instances should be callable, so subclasses must override " +"the :meth:`!__call__` method, which should accept four parameters:" +msgstr "" + +#: ../../library/argparse.rst:1395 +msgid "" +"*parser* - The :class:`ArgumentParser` object which contains this action." +msgstr "" + +#: ../../library/argparse.rst:1397 +msgid "" +"*namespace* - The :class:`Namespace` object that will be returned " +"by :meth:`~ArgumentParser.parse_args`. Most actions add an attribute to " +"this object using :func:`setattr`." +msgstr "" + +#: ../../library/argparse.rst:1401 +msgid "" +"*values* - The associated command-line arguments, with any type conversions " +"applied. Type conversions are specified with the type_ keyword argument " +"to :meth:`~ArgumentParser.add_argument`." +msgstr "" + +#: ../../library/argparse.rst:1405 +msgid "" +"*option_string* - The option string that was used to invoke this action. The " +"``option_string`` argument is optional, and will be absent if the action is " +"associated with a positional argument." +msgstr "" + +#: ../../library/argparse.rst:1409 +msgid "" +"The :meth:`!__call__` method may perform arbitrary actions, but will " +"typically set attributes on the ``namespace`` based on ``dest`` and " +"``values``." +msgstr "" + +#: ../../library/argparse.rst:1414 +msgid "" +":class:`!Action` subclasses can define a :meth:`!format_usage` method that " +"takes no argument and return a string which will be used when printing the " +"usage of the program. If such method is not provided, a sensible default " +"will be used." +msgstr "" + +#: ../../library/argparse.rst:1420 +msgid "" +"A subclass of :class:`Action` for handling boolean flags with positive and " +"negative options. Adding a single argument such as ``--foo`` automatically " +"creates both ``--foo`` and ``--no-foo`` options, storing ``True`` and " +"``False`` respectively::" +msgstr "" + +#: ../../library/argparse.rst:1425 +msgid "" +">>> import argparse\n" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action=argparse.BooleanOptionalAction)\n" +">>> parser.parse_args(['--no-foo'])\n" +"Namespace(foo=False)" +msgstr "" + +#: ../../library/argparse.rst:1435 +msgid "The parse_args() method" +msgstr "" + +#: ../../library/argparse.rst:1439 +msgid "" +"Convert argument strings to objects and assign them as attributes of the " +"namespace. Return the populated namespace." +msgstr "" + +#: ../../library/argparse.rst:1442 +msgid "" +"Previous calls to :meth:`add_argument` determine exactly what objects are " +"created and how they are assigned. See the documentation for :meth:`!" +"add_argument` for details." +msgstr "" + +#: ../../library/argparse.rst:1446 +msgid "" +"args_ - List of strings to parse. The default is taken " +"from :data:`sys.argv`." +msgstr "" + +#: ../../library/argparse.rst:1449 +msgid "" +"namespace_ - An object to take the attributes. The default is a new " +"empty :class:`Namespace` object." +msgstr "" + +#: ../../library/argparse.rst:1454 +msgid "Option value syntax" +msgstr "" + +#: ../../library/argparse.rst:1456 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method supports several ways of " +"specifying the value of an option (if it takes one). In the simplest case, " +"the option and its value are passed as two separate arguments::" +msgstr "" + +#: ../../library/argparse.rst:1460 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-x')\n" +">>> parser.add_argument('--foo')\n" +">>> parser.parse_args(['-x', 'X'])\n" +"Namespace(foo=None, x='X')\n" +">>> parser.parse_args(['--foo', 'FOO'])\n" +"Namespace(foo='FOO', x=None)" +msgstr "" + +#: ../../library/argparse.rst:1468 +msgid "" +"For long options (options with names longer than a single character), the " +"option and value can also be passed as a single command-line argument, using " +"``=`` to separate them::" +msgstr "" + +#: ../../library/argparse.rst:1472 +msgid "" +">>> parser.parse_args(['--foo=FOO'])\n" +"Namespace(foo='FOO', x=None)" +msgstr "" + +#: ../../library/argparse.rst:1475 +msgid "" +"For short options (options only one character long), the option and its " +"value can be concatenated::" +msgstr "" + +#: ../../library/argparse.rst:1478 +msgid "" +">>> parser.parse_args(['-xX'])\n" +"Namespace(foo=None, x='X')" +msgstr "" + +#: ../../library/argparse.rst:1481 +msgid "" +"Several short options can be joined together, using only a single ``-`` " +"prefix, as long as only the last option (or none of them) requires a value::" +msgstr "" + +#: ../../library/argparse.rst:1484 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-x', action='store_true')\n" +">>> parser.add_argument('-y', action='store_true')\n" +">>> parser.add_argument('-z')\n" +">>> parser.parse_args(['-xyzZ'])\n" +"Namespace(x=True, y=True, z='Z')" +msgstr "" + +#: ../../library/argparse.rst:1493 +msgid "Invalid arguments" +msgstr "" + +#: ../../library/argparse.rst:1495 +msgid "" +"While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " +"for a variety of errors, including ambiguous options, invalid types, invalid " +"options, wrong number of positional arguments, etc. When it encounters such " +"an error, it exits and prints the error along with a usage message::" +msgstr "" + +#: ../../library/argparse.rst:1500 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('--foo', type=int)\n" +">>> parser.add_argument('bar', nargs='?')\n" +"\n" +">>> # invalid type\n" +">>> parser.parse_args(['--foo', 'spam'])\n" +"usage: PROG [-h] [--foo FOO] [bar]\n" +"PROG: error: argument --foo: invalid int value: 'spam'\n" +"\n" +">>> # invalid option\n" +">>> parser.parse_args(['--bar'])\n" +"usage: PROG [-h] [--foo FOO] [bar]\n" +"PROG: error: no such option: --bar\n" +"\n" +">>> # wrong number of arguments\n" +">>> parser.parse_args(['spam', 'badger'])\n" +"usage: PROG [-h] [--foo FOO] [bar]\n" +"PROG: error: extra arguments found: badger" +msgstr "" + +#: ../../library/argparse.rst:1521 +msgid "Arguments containing ``-``" +msgstr "" + +#: ../../library/argparse.rst:1523 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method attempts to give errors " +"whenever the user has clearly made a mistake, but some situations are " +"inherently ambiguous. For example, the command-line argument ``-1`` could " +"either be an attempt to specify an option or an attempt to provide a " +"positional argument. The :meth:`~ArgumentParser.parse_args` method is " +"cautious here: positional arguments may only begin with ``-`` if they look " +"like negative numbers and there are no options in the parser that look like " +"negative numbers::" +msgstr "" + +#: ../../library/argparse.rst:1531 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-x')\n" +">>> parser.add_argument('foo', nargs='?')\n" +"\n" +">>> # no negative number options, so -1 is a positional argument\n" +">>> parser.parse_args(['-x', '-1'])\n" +"Namespace(foo=None, x='-1')\n" +"\n" +">>> # no negative number options, so -1 and -5 are positional arguments\n" +">>> parser.parse_args(['-x', '-1', '-5'])\n" +"Namespace(foo='-5', x='-1')\n" +"\n" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-1', dest='one')\n" +">>> parser.add_argument('foo', nargs='?')\n" +"\n" +">>> # negative number options present, so -1 is an option\n" +">>> parser.parse_args(['-1', 'X'])\n" +"Namespace(foo=None, one='X')\n" +"\n" +">>> # negative number options present, so -2 is an option\n" +">>> parser.parse_args(['-2'])\n" +"usage: PROG [-h] [-1 ONE] [foo]\n" +"PROG: error: no such option: -2\n" +"\n" +">>> # negative number options present, so both -1s are options\n" +">>> parser.parse_args(['-1', '-1'])\n" +"usage: PROG [-h] [-1 ONE] [foo]\n" +"PROG: error: argument -1: expected one argument" +msgstr "" + +#: ../../library/argparse.rst:1561 +msgid "" +"If you have positional arguments that must begin with ``-`` and don't look " +"like negative numbers, you can insert the pseudo-argument ``'--'`` which " +"tells :meth:`~ArgumentParser.parse_args` that everything after that is a " +"positional argument::" +msgstr "" + +#: ../../library/argparse.rst:1566 +msgid "" +">>> parser.parse_args(['--', '-f'])\n" +"Namespace(foo='-f', one=None)" +msgstr "" + +#: ../../library/argparse.rst:1569 +msgid "" +"See also :ref:`the argparse howto on ambiguous arguments ` for more details." +msgstr "" + +#: ../../library/argparse.rst:1575 +msgid "Argument abbreviations (prefix matching)" +msgstr "" + +#: ../../library/argparse.rst:1577 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method :ref:`by default " +"` allows long options to be abbreviated to a prefix, if the " +"abbreviation is unambiguous (the prefix matches a unique option)::" +msgstr "" + +#: ../../library/argparse.rst:1581 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('-bacon')\n" +">>> parser.add_argument('-badger')\n" +">>> parser.parse_args('-bac MMM'.split())\n" +"Namespace(bacon='MMM', badger=None)\n" +">>> parser.parse_args('-bad WOOD'.split())\n" +"Namespace(bacon=None, badger='WOOD')\n" +">>> parser.parse_args('-ba BA'.split())\n" +"usage: PROG [-h] [-bacon BACON] [-badger BADGER]\n" +"PROG: error: ambiguous option: -ba could match -badger, -bacon" +msgstr "" + +#: ../../library/argparse.rst:1592 +msgid "" +"An error is produced for arguments that could produce more than one options. " +"This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." +msgstr "" + +#: ../../library/argparse.rst:1598 +msgid "Beyond ``sys.argv``" +msgstr "" + +#: ../../library/argparse.rst:1600 +msgid "" +"Sometimes it may be useful to have an :class:`ArgumentParser` parse " +"arguments other than those of :data:`sys.argv`. This can be accomplished by " +"passing a list of strings to :meth:`~ArgumentParser.parse_args`. This is " +"useful for testing at the interactive prompt::" +msgstr "" + +#: ../../library/argparse.rst:1605 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument(\n" +"... 'integers', metavar='int', type=int, choices=range(10),\n" +"... nargs='+', help='an integer in the range 0..9')\n" +">>> parser.add_argument(\n" +"... '--sum', dest='accumulate', action='store_const', const=sum,\n" +"... default=max, help='sum the integers (default: find the max)')\n" +">>> parser.parse_args(['1', '2', '3', '4'])\n" +"Namespace(accumulate=, integers=[1, 2, 3, 4])\n" +">>> parser.parse_args(['1', '2', '3', '4', '--sum'])\n" +"Namespace(accumulate=, integers=[1, 2, 3, 4])" +msgstr "" + +#: ../../library/argparse.rst:1620 +msgid "The Namespace object" +msgstr "" + +#: ../../library/argparse.rst:1624 +msgid "" +"Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " +"an object holding attributes and return it." +msgstr "" + +#: ../../library/argparse.rst:1627 +msgid "" +"This class is deliberately simple, just an :class:`object` subclass with a " +"readable string representation. If you prefer to have dict-like view of the " +"attributes, you can use the standard Python idiom, :func:`vars`::" +msgstr "" + +#: ../../library/argparse.rst:1631 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo')\n" +">>> args = parser.parse_args(['--foo', 'BAR'])\n" +">>> vars(args)\n" +"{'foo': 'BAR'}" +msgstr "" + +#: ../../library/argparse.rst:1637 +msgid "" +"It may also be useful to have an :class:`ArgumentParser` assign attributes " +"to an already existing object, rather than a new :class:`Namespace` object. " +"This can be achieved by specifying the ``namespace=`` keyword argument::" +msgstr "" + +#: ../../library/argparse.rst:1641 +msgid "" +">>> class C:\n" +"... pass\n" +"...\n" +">>> c = C()\n" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo')\n" +">>> parser.parse_args(args=['--foo', 'BAR'], namespace=c)\n" +">>> c.foo\n" +"'BAR'" +msgstr "" + +#: ../../library/argparse.rst:1653 +msgid "Other utilities" +msgstr "" + +#: ../../library/argparse.rst:1656 +msgid "Sub-commands" +msgstr "" + +#: ../../library/argparse.rst:1663 +msgid "" +"Many programs split up their functionality into a number of subcommands, for " +"example, the ``svn`` program can invoke subcommands like ``svn checkout``, " +"``svn update``, and ``svn commit``. Splitting up functionality this way can " +"be a particularly good idea when a program performs several different " +"functions which require different kinds of command-line " +"arguments. :class:`ArgumentParser` supports the creation of such subcommands " +"with the :meth:`!add_subparsers` method. The :meth:`!add_subparsers` method " +"is normally called with no arguments and returns a special action object. " +"This object has a single method, :meth:`~_SubParsersAction.add_parser`, " +"which takes a command name and any :class:`!ArgumentParser` constructor " +"arguments, and returns an :class:`!ArgumentParser` object that can be " +"modified as usual." +msgstr "" + +#: ../../library/argparse.rst:1675 +msgid "Description of parameters:" +msgstr "" + +#: ../../library/argparse.rst:1677 +msgid "" +"*title* - title for the sub-parser group in help output; by default " +"\"subcommands\" if description is provided, otherwise uses title for " +"positional arguments" +msgstr "" + +#: ../../library/argparse.rst:1681 +msgid "" +"*description* - description for the sub-parser group in help output, by " +"default ``None``" +msgstr "" + +#: ../../library/argparse.rst:1684 +msgid "" +"*prog* - usage information that will be displayed with sub-command help, by " +"default the name of the program and any positional arguments before the " +"subparser argument" +msgstr "" + +#: ../../library/argparse.rst:1688 +msgid "" +"*parser_class* - class which will be used to create sub-parser instances, by " +"default the class of the current parser (e.g. :class:`ArgumentParser`)" +msgstr "" + +#: ../../library/argparse.rst:1691 +msgid "" +"action_ - the basic type of action to be taken when this argument is " +"encountered at the command line" +msgstr "" + +#: ../../library/argparse.rst:1694 +msgid "" +"dest_ - name of the attribute under which sub-command name will be stored; " +"by default ``None`` and no value is stored" +msgstr "" + +#: ../../library/argparse.rst:1697 +msgid "" +"required_ - Whether or not a subcommand must be provided, by default " +"``False`` (added in 3.7)" +msgstr "" + +#: ../../library/argparse.rst:1700 +msgid "help_ - help for sub-parser group in help output, by default ``None``" +msgstr "" + +#: ../../library/argparse.rst:1702 +msgid "" +"metavar_ - string presenting available subcommands in help; by default it is " +"``None`` and presents subcommands in form {cmd1, cmd2, ..}" +msgstr "" + +#: ../../library/argparse.rst:1705 +msgid "Some example usage::" +msgstr "" + +#: ../../library/argparse.rst:1707 +msgid "" +">>> # create the top-level parser\n" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> parser.add_argument('--foo', action='store_true', help='foo help')\n" +">>> subparsers = parser.add_subparsers(help='subcommand help')\n" +">>>\n" +">>> # create the parser for the \"a\" command\n" +">>> parser_a = subparsers.add_parser('a', help='a help')\n" +">>> parser_a.add_argument('bar', type=int, help='bar help')\n" +">>>\n" +">>> # create the parser for the \"b\" command\n" +">>> parser_b = subparsers.add_parser('b', help='b help')\n" +">>> parser_b.add_argument('--baz', choices=('X', 'Y', 'Z'), help='baz " +"help')\n" +">>>\n" +">>> # parse some argument lists\n" +">>> parser.parse_args(['a', '12'])\n" +"Namespace(bar=12, foo=False)\n" +">>> parser.parse_args(['--foo', 'b', '--baz', 'Z'])\n" +"Namespace(baz='Z', foo=True)" +msgstr "" + +#: ../../library/argparse.rst:1726 +msgid "" +"Note that the object returned by :meth:`parse_args` will only contain " +"attributes for the main parser and the subparser that was selected by the " +"command line (and not any other subparsers). So in the example above, when " +"the ``a`` command is specified, only the ``foo`` and ``bar`` attributes are " +"present, and when the ``b`` command is specified, only the ``foo`` and " +"``baz`` attributes are present." +msgstr "" + +#: ../../library/argparse.rst:1733 +msgid "" +"Similarly, when a help message is requested from a subparser, only the help " +"for that particular parser will be printed. The help message will not " +"include parent parser or sibling parser messages. (A help message for each " +"subparser command, however, can be given by supplying the ``help=`` argument " +"to :meth:`~_SubParsersAction.add_parser` as above.)" +msgstr "" + +#: ../../library/argparse.rst:1741 +msgid "" +">>> parser.parse_args(['--help'])\n" +"usage: PROG [-h] [--foo] {a,b} ...\n" +"\n" +"positional arguments:\n" +" {a,b} subcommand help\n" +" a a help\n" +" b b help\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --foo foo help\n" +"\n" +">>> parser.parse_args(['a', '--help'])\n" +"usage: PROG a [-h] bar\n" +"\n" +"positional arguments:\n" +" bar bar help\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"\n" +">>> parser.parse_args(['b', '--help'])\n" +"usage: PROG b [-h] [--baz {X,Y,Z}]\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +" --baz {X,Y,Z} baz help" +msgstr "" + +#: ../../library/argparse.rst:1769 +msgid "" +"The :meth:`add_subparsers` method also supports ``title`` and " +"``description`` keyword arguments. When either is present, the subparser's " +"commands will appear in their own group in the help output. For example::" +msgstr "" + +#: ../../library/argparse.rst:1773 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> subparsers = parser.add_subparsers(title='subcommands',\n" +"... description='valid subcommands',\n" +"... help='additional help')\n" +">>> subparsers.add_parser('foo')\n" +">>> subparsers.add_parser('bar')\n" +">>> parser.parse_args(['-h'])\n" +"usage: [-h] {foo,bar} ...\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"\n" +"subcommands:\n" +" valid subcommands\n" +"\n" +" {foo,bar} additional help" +msgstr "" + +#: ../../library/argparse.rst:1790 +msgid "" +"Furthermore, :meth:`~_SubParsersAction.add_parser` supports an additional " +"*aliases* argument, which allows multiple strings to refer to the same " +"subparser. This example, like ``svn``, aliases ``co`` as a shorthand for " +"``checkout``::" +msgstr "" + +#: ../../library/argparse.rst:1795 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> subparsers = parser.add_subparsers()\n" +">>> checkout = subparsers.add_parser('checkout', aliases=['co'])\n" +">>> checkout.add_argument('foo')\n" +">>> parser.parse_args(['co', 'bar'])\n" +"Namespace(foo='bar')" +msgstr "" + +#: ../../library/argparse.rst:1802 +msgid "" +":meth:`~_SubParsersAction.add_parser` supports also an additional " +"*deprecated* argument, which allows to deprecate the subparser." +msgstr "" + +#: ../../library/argparse.rst:1816 +msgid "" +"One particularly effective way of handling subcommands is to combine the use " +"of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` so " +"that each subparser knows which Python function it should execute. For " +"example::" +msgstr "" + +#: ../../library/argparse.rst:1821 +msgid "" +">>> # subcommand functions\n" +">>> def foo(args):\n" +"... print(args.x * args.y)\n" +"...\n" +">>> def bar(args):\n" +"... print('((%s))' % args.z)\n" +"...\n" +">>> # create the top-level parser\n" +">>> parser = argparse.ArgumentParser()\n" +">>> subparsers = parser.add_subparsers(required=True)\n" +">>>\n" +">>> # create the parser for the \"foo\" command\n" +">>> parser_foo = subparsers.add_parser('foo')\n" +">>> parser_foo.add_argument('-x', type=int, default=1)\n" +">>> parser_foo.add_argument('y', type=float)\n" +">>> parser_foo.set_defaults(func=foo)\n" +">>>\n" +">>> # create the parser for the \"bar\" command\n" +">>> parser_bar = subparsers.add_parser('bar')\n" +">>> parser_bar.add_argument('z')\n" +">>> parser_bar.set_defaults(func=bar)\n" +">>>\n" +">>> # parse the args and call whatever function was selected\n" +">>> args = parser.parse_args('foo 1 -x 2'.split())\n" +">>> args.func(args)\n" +"2.0\n" +">>>\n" +">>> # parse the args and call whatever function was selected\n" +">>> args = parser.parse_args('bar XYZYX'.split())\n" +">>> args.func(args)\n" +"((XYZYX))" +msgstr "" + +#: ../../library/argparse.rst:1853 +msgid "" +"This way, you can let :meth:`parse_args` do the job of calling the " +"appropriate function after argument parsing is complete. Associating " +"functions with actions like this is typically the easiest way to handle the " +"different actions for each of your subparsers. However, if it is necessary " +"to check the name of the subparser that was invoked, the ``dest`` keyword " +"argument to the :meth:`add_subparsers` call will work::" +msgstr "" + +#: ../../library/argparse.rst:1860 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> subparsers = parser.add_subparsers(dest='subparser_name')\n" +">>> subparser1 = subparsers.add_parser('1')\n" +">>> subparser1.add_argument('-x')\n" +">>> subparser2 = subparsers.add_parser('2')\n" +">>> subparser2.add_argument('y')\n" +">>> parser.parse_args(['2', 'frobble'])\n" +"Namespace(subparser_name='2', y='frobble')" +msgstr "" + +#: ../../library/argparse.rst:1869 +msgid "New *required* keyword-only parameter." +msgstr "" + +#: ../../library/argparse.rst:1872 +msgid "" +"Subparser's *prog* is no longer affected by a custom usage message in the " +"main parser." +msgstr "" + +#: ../../library/argparse.rst:1878 +msgid "FileType objects" +msgstr "" + +#: ../../library/argparse.rst:1882 +msgid "" +"The :class:`FileType` factory creates objects that can be passed to the type " +"argument of :meth:`ArgumentParser.add_argument`. Arguments that " +"have :class:`FileType` objects as their type will open command-line " +"arguments as files with the requested modes, buffer sizes, encodings and " +"error handling (see the :func:`open` function for more details)::" +msgstr "" + +#: ../../library/argparse.rst:1888 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--raw', type=argparse.FileType('wb', 0))\n" +">>> parser.add_argument('out', type=argparse.FileType('w', " +"encoding='UTF-8'))\n" +">>> parser.parse_args(['--raw', 'raw.dat', 'file.txt'])\n" +"Namespace(out=<_io.TextIOWrapper name='file.txt' mode='w' encoding='UTF-8'>, " +"raw=<_io.FileIO name='raw.dat' mode='wb'>)" +msgstr "" + +#: ../../library/argparse.rst:1894 +msgid "" +"FileType objects understand the pseudo-argument ``'-'`` and automatically " +"convert this into :data:`sys.stdin` for readable :class:`FileType` objects " +"and :data:`sys.stdout` for writable :class:`FileType` objects::" +msgstr "" + +#: ../../library/argparse.rst:1898 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('infile', type=argparse.FileType('r'))\n" +">>> parser.parse_args(['-'])\n" +"Namespace(infile=<_io.TextIOWrapper name='' encoding='UTF-8'>)" +msgstr "" + +#: ../../library/argparse.rst:1905 +msgid "" +"If one argument uses *FileType* and then a subsequent argument fails, an " +"error is reported but the file is not automatically closed. This can also " +"clobber the output files. In this case, it would be better to wait until " +"after the parser has run and then use the :keyword:`with`-statement to " +"manage the files." +msgstr "" + +#: ../../library/argparse.rst:1911 +msgid "Added the *encodings* and *errors* parameters." +msgstr "" + +#: ../../library/argparse.rst:1918 +msgid "Argument groups" +msgstr "" + +#: ../../library/argparse.rst:1923 +msgid "" +"By default, :class:`ArgumentParser` groups command-line arguments into " +"\"positional arguments\" and \"options\" when displaying help messages. When " +"there is a better conceptual grouping of arguments than this default one, " +"appropriate groups can be created using the :meth:`!add_argument_group` " +"method::" +msgstr "" + +#: ../../library/argparse.rst:1929 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" +">>> group = parser.add_argument_group('group')\n" +">>> group.add_argument('--foo', help='foo help')\n" +">>> group.add_argument('bar', help='bar help')\n" +">>> parser.print_help()\n" +"usage: PROG [--foo FOO] bar\n" +"\n" +"group:\n" +" bar bar help\n" +" --foo FOO foo help" +msgstr "" + +#: ../../library/argparse.rst:1940 +msgid "" +"The :meth:`add_argument_group` method returns an argument group object which " +"has an :meth:`~ArgumentParser.add_argument` method just like a " +"regular :class:`ArgumentParser`. When an argument is added to the group, " +"the parser treats it just like a normal argument, but displays the argument " +"in a separate group for help messages. The :meth:`!add_argument_group` " +"method accepts *title* and *description* arguments which can be used to " +"customize this display::" +msgstr "" + +#: ../../library/argparse.rst:1948 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" +">>> group1 = parser.add_argument_group('group1', 'group1 description')\n" +">>> group1.add_argument('foo', help='foo help')\n" +">>> group2 = parser.add_argument_group('group2', 'group2 description')\n" +">>> group2.add_argument('--bar', help='bar help')\n" +">>> parser.print_help()\n" +"usage: PROG [--bar BAR] foo\n" +"\n" +"group1:\n" +" group1 description\n" +"\n" +" foo foo help\n" +"\n" +"group2:\n" +" group2 description\n" +"\n" +" --bar BAR bar help" +msgstr "" + +#: ../../library/argparse.rst:1966 +msgid "" +"The optional, keyword-only parameters argument_default_ and " +"conflict_handler_ allow for finer-grained control of the behavior of the " +"argument group. These parameters have the same meaning as in " +"the :class:`ArgumentParser` constructor, but apply specifically to the " +"argument group rather than the entire parser." +msgstr "" + +#: ../../library/argparse.rst:1971 +msgid "" +"Note that any arguments not in your user-defined groups will end up back in " +"the usual \"positional arguments\" and \"optional arguments\" sections." +msgstr "" + +#: ../../library/argparse.rst:1974 +msgid "" +"Calling :meth:`add_argument_group` on an argument group now raises an " +"exception. This nesting was never supported, often failed to work correctly, " +"and was unintentionally exposed through inheritance." +msgstr "" + +#: ../../library/argparse.rst:1979 +msgid "Passing prefix_chars_ to :meth:`add_argument_group` is now deprecated." +msgstr "" + +#: ../../library/argparse.rst:1985 +msgid "Mutual exclusion" +msgstr "" + +#: ../../library/argparse.rst:1989 +msgid "" +"Create a mutually exclusive group. :mod:`!argparse` will make sure that only " +"one of the arguments in the mutually exclusive group was present on the " +"command line::" +msgstr "" + +#: ../../library/argparse.rst:1993 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> group = parser.add_mutually_exclusive_group()\n" +">>> group.add_argument('--foo', action='store_true')\n" +">>> group.add_argument('--bar', action='store_false')\n" +">>> parser.parse_args(['--foo'])\n" +"Namespace(bar=True, foo=True)\n" +">>> parser.parse_args(['--bar'])\n" +"Namespace(bar=False, foo=False)\n" +">>> parser.parse_args(['--foo', '--bar'])\n" +"usage: PROG [-h] [--foo | --bar]\n" +"PROG: error: argument --bar: not allowed with argument --foo" +msgstr "" + +#: ../../library/argparse.rst:2005 +msgid "" +"The :meth:`add_mutually_exclusive_group` method also accepts a *required* " +"argument, to indicate that at least one of the mutually exclusive arguments " +"is required::" +msgstr "" + +#: ../../library/argparse.rst:2009 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> group = parser.add_mutually_exclusive_group(required=True)\n" +">>> group.add_argument('--foo', action='store_true')\n" +">>> group.add_argument('--bar', action='store_false')\n" +">>> parser.parse_args([])\n" +"usage: PROG [-h] (--foo | --bar)\n" +"PROG: error: one of the arguments --foo --bar is required" +msgstr "" + +#: ../../library/argparse.rst:2017 +msgid "" +"Note that currently mutually exclusive argument groups do not support the " +"*title* and *description* arguments " +"of :meth:`~ArgumentParser.add_argument_group`. However, a mutually exclusive " +"group can be added to an argument group that has a title and description. " +"For example::" +msgstr "" + +#: ../../library/argparse.rst:2023 +msgid "" +">>> parser = argparse.ArgumentParser(prog='PROG')\n" +">>> group = parser.add_argument_group('Group title', 'Group description')\n" +">>> exclusive_group = group.add_mutually_exclusive_group(required=True)\n" +">>> exclusive_group.add_argument('--foo', help='foo help')\n" +">>> exclusive_group.add_argument('--bar', help='bar help')\n" +">>> parser.print_help()\n" +"usage: PROG [-h] (--foo FOO | --bar BAR)\n" +"\n" +"options:\n" +" -h, --help show this help message and exit\n" +"\n" +"Group title:\n" +" Group description\n" +"\n" +" --foo FOO foo help\n" +" --bar BAR bar help" +msgstr "" + +#: ../../library/argparse.rst:2040 +msgid "" +"Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " +"on a mutually exclusive group now raises an exception. This nesting was " +"never supported, often failed to work correctly, and was unintentionally " +"exposed through inheritance." +msgstr "" + +#: ../../library/argparse.rst:2048 +msgid "Parser defaults" +msgstr "" + +#: ../../library/argparse.rst:2052 +msgid "" +"Most of the time, the attributes of the object returned " +"by :meth:`parse_args` will be fully determined by inspecting the command-" +"line arguments and the argument actions. :meth:`set_defaults` allows some " +"additional attributes that are determined without any inspection of the " +"command line to be added::" +msgstr "" + +#: ../../library/argparse.rst:2058 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('foo', type=int)\n" +">>> parser.set_defaults(bar=42, baz='badger')\n" +">>> parser.parse_args(['736'])\n" +"Namespace(bar=42, baz='badger', foo=736)" +msgstr "" + +#: ../../library/argparse.rst:2064 +msgid "" +"Note that parser-level defaults always override argument-level defaults::" +msgstr "" + +#: ../../library/argparse.rst:2066 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', default='bar')\n" +">>> parser.set_defaults(foo='spam')\n" +">>> parser.parse_args([])\n" +"Namespace(foo='spam')" +msgstr "" + +#: ../../library/argparse.rst:2072 +msgid "" +"Parser-level defaults can be particularly useful when working with multiple " +"parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " +"example of this type." +msgstr "" + +#: ../../library/argparse.rst:2078 +msgid "" +"Get the default value for a namespace attribute, as set by " +"either :meth:`~ArgumentParser.add_argument` or " +"by :meth:`~ArgumentParser.set_defaults`::" +msgstr "" + +#: ../../library/argparse.rst:2082 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', default='badger')\n" +">>> parser.get_default('foo')\n" +"'badger'" +msgstr "" + +#: ../../library/argparse.rst:2089 +msgid "Printing help" +msgstr "" + +#: ../../library/argparse.rst:2091 +msgid "" +"In most typical applications, :meth:`~ArgumentParser.parse_args` will take " +"care of formatting and printing any usage or error messages. However, " +"several formatting methods are available:" +msgstr "" + +#: ../../library/argparse.rst:2097 +msgid "" +"Print a brief description of how the :class:`ArgumentParser` should be " +"invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " +"assumed." +msgstr "" + +#: ../../library/argparse.rst:2103 +msgid "" +"Print a help message, including the program usage and information about the " +"arguments registered with the :class:`ArgumentParser`. If *file* is " +"``None``, :data:`sys.stdout` is assumed." +msgstr "" + +#: ../../library/argparse.rst:2107 +msgid "" +"There are also variants of these methods that simply return a string instead " +"of printing it:" +msgstr "" + +#: ../../library/argparse.rst:2112 +msgid "" +"Return a string containing a brief description of how " +"the :class:`ArgumentParser` should be invoked on the command line." +msgstr "" + +#: ../../library/argparse.rst:2117 +msgid "" +"Return a string containing a help message, including the program usage and " +"information about the arguments registered with the :class:`ArgumentParser`." +msgstr "" + +#: ../../library/argparse.rst:2122 +msgid "Partial parsing" +msgstr "" + +#: ../../library/argparse.rst:2126 +msgid "" +"Sometimes a script only needs to handle a specific set of command-line " +"arguments, leaving any unrecognized arguments for another script or program. " +"In these cases, the :meth:`~ArgumentParser.parse_known_args` method can be " +"useful." +msgstr "" + +#: ../../library/argparse.rst:2131 +msgid "" +"This method works similarly to :meth:`~ArgumentParser.parse_args`, but it " +"does not raise an error for extra, unrecognized arguments. Instead, it " +"parses the known arguments and returns a two item tuple that contains the " +"populated namespace and the list of any unrecognized arguments." +msgstr "" + +#: ../../library/argparse.rst:2138 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action='store_true')\n" +">>> parser.add_argument('bar')\n" +">>> parser.parse_known_args(['--foo', '--badger', 'BAR', 'spam'])\n" +"(Namespace(bar='BAR', foo=True), ['--badger', 'spam'])" +msgstr "" + +#: ../../library/argparse.rst:2145 +msgid "" +":ref:`Prefix matching ` rules apply " +"to :meth:`~ArgumentParser.parse_known_args`. The parser may consume an " +"option even if it's just a prefix of one of its known options, instead of " +"leaving it in the remaining arguments list." +msgstr "" + +#: ../../library/argparse.rst:2152 +msgid "Customizing file parsing" +msgstr "" + +#: ../../library/argparse.rst:2156 +msgid "" +"Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " +"argument to the :class:`ArgumentParser` constructor) are read one argument " +"per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " +"reading." +msgstr "" + +#: ../../library/argparse.rst:2161 +msgid "" +"This method takes a single argument *arg_line* which is a string read from " +"the argument file. It returns a list of arguments parsed from this string. " +"The method is called once per line read from the argument file, in order." +msgstr "" + +#: ../../library/argparse.rst:2165 +msgid "" +"A useful override of this method is one that treats each space-separated " +"word as an argument. The following example demonstrates how to do this::" +msgstr "" + +#: ../../library/argparse.rst:2168 +msgid "" +"class MyArgumentParser(argparse.ArgumentParser):\n" +" def convert_arg_line_to_args(self, arg_line):\n" +" return arg_line.split()" +msgstr "" + +#: ../../library/argparse.rst:2174 +msgid "Exiting methods" +msgstr "" + +#: ../../library/argparse.rst:2178 +msgid "" +"This method terminates the program, exiting with the specified *status* and, " +"if given, it prints a *message* to :data:`sys.stderr` before that. The user " +"can override this method to handle these steps differently::" +msgstr "" + +#: ../../library/argparse.rst:2182 +msgid "" +"class ErrorCatchingArgumentParser(argparse.ArgumentParser):\n" +" def exit(self, status=0, message=None):\n" +" if status:\n" +" raise Exception(f'Exiting because of an error: {message}')\n" +" exit(status)" +msgstr "" + +#: ../../library/argparse.rst:2190 +msgid "" +"This method prints a usage message, including the *message*, " +"to :data:`sys.stderr` and terminates the program with a status code of 2." +msgstr "" + +#: ../../library/argparse.rst:2195 +msgid "Intermixed parsing" +msgstr "" + +#: ../../library/argparse.rst:2200 +msgid "" +"A number of Unix commands allow the user to intermix optional arguments with " +"positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " +"and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " +"parsing style." +msgstr "" + +#: ../../library/argparse.rst:2205 +msgid "" +"These parsers do not support all the :mod:`!argparse` features, and will " +"raise exceptions if unsupported features are used. In particular, " +"subparsers, and mutually exclusive groups that include both optionals and " +"positionals are not supported." +msgstr "" + +#: ../../library/argparse.rst:2210 +msgid "" +"The following example shows the difference " +"between :meth:`~ArgumentParser.parse_known_args` " +"and :meth:`~ArgumentParser.parse_intermixed_args`: the former returns " +"``['2', '3']`` as unparsed arguments, while the latter collects all the " +"positionals into ``rest``. ::" +msgstr "" + +#: ../../library/argparse.rst:2216 +msgid "" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo')\n" +">>> parser.add_argument('cmd')\n" +">>> parser.add_argument('rest', nargs='*', type=int)\n" +">>> parser.parse_known_args('doit 1 --foo bar 2 3'.split())\n" +"(Namespace(cmd='doit', foo='bar', rest=[1]), ['2', '3'])\n" +">>> parser.parse_intermixed_args('doit 1 --foo bar 2 3'.split())\n" +"Namespace(cmd='doit', foo='bar', rest=[1, 2, 3])" +msgstr "" + +#: ../../library/argparse.rst:2225 +msgid "" +":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " +"containing the populated namespace and the list of remaining argument " +"strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " +"there are any remaining unparsed argument strings." +msgstr "" + +#: ../../library/argparse.rst:2234 +msgid "Registering custom types or actions" +msgstr "" + +#: ../../library/argparse.rst:2238 +msgid "" +"Sometimes it's desirable to use a custom string in error messages to provide " +"more user-friendly output. In these cases, :meth:`!register` can be used to " +"register custom actions or types with a parser and allow you to reference " +"the type by their registered name instead of their callable name." +msgstr "" + +#: ../../library/argparse.rst:2243 +msgid "" +"The :meth:`!register` method accepts three arguments - a *registry_name*, " +"specifying the internal registry where the object will be stored (e.g., " +"``action``, ``type``), *value*, which is the key under which the object will " +"be registered, and object, the callable to be registered." +msgstr "" + +#: ../../library/argparse.rst:2248 +msgid "" +"The following example shows how to register a custom type with a parser::" +msgstr "" + +#: ../../library/argparse.rst:2250 +msgid "" +">>> import argparse\n" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.register('type', 'hexadecimal integer', lambda s: int(s, 16))\n" +">>> parser.add_argument('--foo', type='hexadecimal integer')\n" +"_StoreAction(option_strings=['--foo'], dest='foo', nargs=None, const=None, " +"default=None, type='hexadecimal integer', choices=None, required=False, " +"help=None, metavar=None, deprecated=False)\n" +">>> parser.parse_args(['--foo', '0xFA'])\n" +"Namespace(foo=250)\n" +">>> parser.parse_args(['--foo', '1.2'])\n" +"usage: PROG [-h] [--foo FOO]\n" +"PROG: error: argument --foo: invalid 'hexadecimal integer' value: '1.2'" +msgstr "" + +#: ../../library/argparse.rst:2262 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/argparse.rst:2266 +msgid "An error from creating or using an argument (optional or positional)." +msgstr "" + +#: ../../library/argparse.rst:2268 +msgid "" +"The string value of this exception is the message, augmented with " +"information about the argument that caused it." +msgstr "" + +#: ../../library/argparse.rst:2273 +msgid "" +"Raised when something goes wrong converting a command line string to a type." +msgstr "" + +#: ../../library/argparse.rst:2277 +msgid "Guides and Tutorials" +msgstr "" + +#: ../../library/argparse.rst:896 +msgid "? (question mark)" +msgstr "" + +#: ../../library/argparse.rst:896 ../../library/argparse.rst:928 +#: ../../library/argparse.rst:942 +msgid "in argparse module" +msgstr "" + +#: ../../library/argparse.rst:928 +msgid "* (asterisk)" +msgstr "" + +#: ../../library/argparse.rst:942 +msgid "+ (plus)" +msgstr "" diff --git a/library/array.po b/library/array.po new file mode 100644 index 0000000..9aed46a --- /dev/null +++ b/library/array.po @@ -0,0 +1,469 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/array.rst:2 +msgid ":mod:`!array` --- Efficient arrays of numeric values" +msgstr "" + +#: ../../library/array.rst:11 +msgid "" +"This module defines an object type which can compactly represent an array of " +"basic values: characters, integers, floating-point numbers. Arrays are " +"sequence types and behave very much like lists, except that the type of " +"objects stored in them is constrained. The type is specified at object " +"creation time by using a :dfn:`type code`, which is a single character. The " +"following type codes are defined:" +msgstr "" + +#: ../../library/array.rst:19 +msgid "Type code" +msgstr "" + +#: ../../library/array.rst:19 +msgid "C Type" +msgstr "" + +#: ../../library/array.rst:19 +msgid "Python Type" +msgstr "" + +#: ../../library/array.rst:19 +msgid "Minimum size in bytes" +msgstr "" + +#: ../../library/array.rst:19 +msgid "Notes" +msgstr "" + +#: ../../library/array.rst:21 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../../library/array.rst:21 +msgid "signed char" +msgstr "" + +#: ../../library/array.rst:21 ../../library/array.rst:23 +#: ../../library/array.rst:29 ../../library/array.rst:31 +#: ../../library/array.rst:33 ../../library/array.rst:35 +#: ../../library/array.rst:37 ../../library/array.rst:39 +#: ../../library/array.rst:41 ../../library/array.rst:43 +msgid "int" +msgstr "" + +#: ../../library/array.rst:21 ../../library/array.rst:23 +msgid "1" +msgstr "1" + +#: ../../library/array.rst:23 +msgid "``'B'``" +msgstr "``'B'``" + +#: ../../library/array.rst:23 +msgid "unsigned char" +msgstr "" + +#: ../../library/array.rst:25 +msgid "``'u'``" +msgstr "``'u'``" + +#: ../../library/array.rst:25 +msgid "wchar_t" +msgstr "" + +#: ../../library/array.rst:25 ../../library/array.rst:27 +msgid "Unicode character" +msgstr "" + +#: ../../library/array.rst:25 ../../library/array.rst:29 +#: ../../library/array.rst:31 ../../library/array.rst:33 +#: ../../library/array.rst:35 +msgid "2" +msgstr "2" + +#: ../../library/array.rst:25 +msgid "\\(1)" +msgstr "" + +#: ../../library/array.rst:27 +msgid "``'w'``" +msgstr "``'w'``" + +#: ../../library/array.rst:27 +msgid "Py_UCS4" +msgstr "" + +#: ../../library/array.rst:27 ../../library/array.rst:37 +#: ../../library/array.rst:39 ../../library/array.rst:45 +msgid "4" +msgstr "4" + +#: ../../library/array.rst:29 +msgid "``'h'``" +msgstr "``'h'``" + +#: ../../library/array.rst:29 +msgid "signed short" +msgstr "" + +#: ../../library/array.rst:31 +msgid "``'H'``" +msgstr "``'H'``" + +#: ../../library/array.rst:31 +msgid "unsigned short" +msgstr "" + +#: ../../library/array.rst:33 +msgid "``'i'``" +msgstr "``'i'``" + +#: ../../library/array.rst:33 +msgid "signed int" +msgstr "" + +#: ../../library/array.rst:35 +msgid "``'I'``" +msgstr "``'I'``" + +#: ../../library/array.rst:35 +msgid "unsigned int" +msgstr "" + +#: ../../library/array.rst:37 +msgid "``'l'``" +msgstr "``'l'``" + +#: ../../library/array.rst:37 +msgid "signed long" +msgstr "" + +#: ../../library/array.rst:39 +msgid "``'L'``" +msgstr "``'L'``" + +#: ../../library/array.rst:39 +msgid "unsigned long" +msgstr "" + +#: ../../library/array.rst:41 +msgid "``'q'``" +msgstr "``'q'``" + +#: ../../library/array.rst:41 +msgid "signed long long" +msgstr "" + +#: ../../library/array.rst:41 ../../library/array.rst:43 +#: ../../library/array.rst:47 +msgid "8" +msgstr "" + +#: ../../library/array.rst:43 +msgid "``'Q'``" +msgstr "``'Q'``" + +#: ../../library/array.rst:43 +msgid "unsigned long long" +msgstr "" + +#: ../../library/array.rst:45 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../../library/array.rst:45 ../../library/array.rst:47 +msgid "float" +msgstr "" + +#: ../../library/array.rst:47 +msgid "``'d'``" +msgstr "``'d'``" + +#: ../../library/array.rst:47 +msgid "double" +msgstr "" + +#: ../../library/array.rst:50 +msgid "Notes:" +msgstr "" + +#: ../../library/array.rst:53 +msgid "It can be 16 bits or 32 bits depending on the platform." +msgstr "" + +#: ../../library/array.rst:55 +msgid "" +"``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated " +"``Py_UNICODE``. This change doesn't affect its behavior because " +"``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3." +msgstr "" + +#: ../../library/array.rst:60 +msgid "Please migrate to ``'w'`` typecode." +msgstr "" + +#: ../../library/array.rst:64 +msgid "" +"The actual representation of values is determined by the machine " +"architecture (strictly speaking, by the C implementation). The actual size " +"can be accessed through the :attr:`array.itemsize` attribute." +msgstr "" + +#: ../../library/array.rst:68 +msgid "The module defines the following item:" +msgstr "" + +#: ../../library/array.rst:73 +msgid "A string with all available type codes." +msgstr "" + +#: ../../library/array.rst:76 +msgid "The module defines the following type:" +msgstr "" + +#: ../../library/array.rst:81 +msgid "" +"A new array whose items are restricted by *typecode*, and initialized from " +"the optional *initializer* value, which must be a :class:`bytes` " +"or :class:`bytearray` object, a Unicode string, or iterable over elements of " +"the appropriate type." +msgstr "" + +#: ../../library/array.rst:86 +msgid "" +"If given a :class:`bytes` or :class:`bytearray` object, the initializer is " +"passed to the new array's :meth:`frombytes` method; if given a Unicode " +"string, the initializer is passed to the :meth:`fromunicode` method; " +"otherwise, the initializer's iterator is passed to the :meth:`extend` method " +"to add initial items to the array." +msgstr "" + +#: ../../library/array.rst:93 +msgid "" +"Array objects support the ordinary sequence operations of indexing, slicing, " +"concatenation, and multiplication. When using slice assignment, the " +"assigned value must be an array object with the same type code; in all other " +"cases, :exc:`TypeError` is raised. Array objects also implement the buffer " +"interface, and may be used wherever :term:`bytes-like objects ` are supported." +msgstr "" + +#: ../../library/array.rst:99 +msgid "" +"Raises an :ref:`auditing event ` ``array.__new__`` with arguments " +"``typecode``, ``initializer``." +msgstr "" + +#: ../../library/array.rst:104 +msgid "The typecode character used to create the array." +msgstr "" + +#: ../../library/array.rst:109 +msgid "The length in bytes of one array item in the internal representation." +msgstr "" + +#: ../../library/array.rst:114 +msgid "Append a new item with value *x* to the end of the array." +msgstr "" + +#: ../../library/array.rst:119 +msgid "" +"Return a tuple ``(address, length)`` giving the current memory address and " +"the length in elements of the buffer used to hold array's contents. The " +"size of the memory buffer in bytes can be computed as ``array.buffer_info()" +"[1] * array.itemsize``. This is occasionally useful when working with low-" +"level (and inherently unsafe) I/O interfaces that require memory addresses, " +"such as certain :c:func:`!ioctl` operations. The returned numbers are valid " +"as long as the array exists and no length-changing operations are applied to " +"it." +msgstr "" + +#: ../../library/array.rst:129 +msgid "" +"When using array objects from code written in C or C++ (the only way to " +"effectively make use of this information), it makes more sense to use the " +"buffer interface supported by array objects. This method is maintained for " +"backward compatibility and should be avoided in new code. The buffer " +"interface is documented in :ref:`bufferobjects`." +msgstr "" + +#: ../../library/array.rst:138 +msgid "" +"\"Byteswap\" all items of the array. This is only supported for values " +"which are 1, 2, 4, or 8 bytes in size; for other types of " +"values, :exc:`RuntimeError` is raised. It is useful when reading data from " +"a file written on a machine with a different byte order." +msgstr "" + +#: ../../library/array.rst:146 +msgid "Return the number of occurrences of *x* in the array." +msgstr "" + +#: ../../library/array.rst:151 +msgid "" +"Append items from *iterable* to the end of the array. If *iterable* is " +"another array, it must have *exactly* the same type code; if " +"not, :exc:`TypeError` will be raised. If *iterable* is not an array, it " +"must be iterable and its elements must be the right type to be appended to " +"the array." +msgstr "" + +#: ../../library/array.rst:159 +msgid "" +"Appends items from the :term:`bytes-like object`, interpreting its content " +"as an array of machine values (as if it had been read from a file using " +"the :meth:`fromfile` method)." +msgstr "" + +#: ../../library/array.rst:163 +msgid ":meth:`!fromstring` is renamed to :meth:`frombytes` for clarity." +msgstr "" + +#: ../../library/array.rst:169 +msgid "" +"Read *n* items (as machine values) from the :term:`file object` *f* and " +"append them to the end of the array. If less than *n* items are " +"available, :exc:`EOFError` is raised, but the items that were available are " +"still inserted into the array." +msgstr "" + +#: ../../library/array.rst:177 +msgid "" +"Append items from the list. This is equivalent to ``for x in list: " +"a.append(x)`` except that if there is a type error, the array is unchanged." +msgstr "" + +#: ../../library/array.rst:183 +msgid "" +"Extends this array with data from the given Unicode string. The array must " +"have type code ``'u'`` or ``'w'``; otherwise a :exc:`ValueError` is raised. " +"Use ``array.frombytes(unicodestring.encode(enc))`` to append Unicode data to " +"an array of some other type." +msgstr "" + +#: ../../library/array.rst:191 +msgid "" +"Return the smallest *i* such that *i* is the index of the first occurrence " +"of *x* in the array. The optional arguments *start* and *stop* can be " +"specified to search for *x* within a subsection of the array. " +"Raise :exc:`ValueError` if *x* is not found." +msgstr "" + +#: ../../library/array.rst:196 +msgid "Added optional *start* and *stop* parameters." +msgstr "" + +#: ../../library/array.rst:202 +msgid "" +"Insert a new item with value *x* in the array before position *i*. Negative " +"values are treated as being relative to the end of the array." +msgstr "" + +#: ../../library/array.rst:208 +msgid "" +"Removes the item with the index *i* from the array and returns it. The " +"optional argument defaults to ``-1``, so that by default the last item is " +"removed and returned." +msgstr "" + +#: ../../library/array.rst:215 +msgid "Remove the first occurrence of *x* from the array." +msgstr "" + +#: ../../library/array.rst:220 +msgid "Remove all elements from the array." +msgstr "" + +#: ../../library/array.rst:227 +msgid "Reverse the order of the items in the array." +msgstr "" + +#: ../../library/array.rst:232 +msgid "" +"Convert the array to an array of machine values and return the bytes " +"representation (the same sequence of bytes that would be written to a file " +"by the :meth:`tofile` method.)" +msgstr "" + +#: ../../library/array.rst:236 +msgid ":meth:`!tostring` is renamed to :meth:`tobytes` for clarity." +msgstr "" + +#: ../../library/array.rst:242 +msgid "Write all items (as machine values) to the :term:`file object` *f*." +msgstr "" + +#: ../../library/array.rst:247 +msgid "Convert the array to an ordinary list with the same items." +msgstr "" + +#: ../../library/array.rst:252 +msgid "" +"Convert the array to a Unicode string. The array must have a type ``'u'`` " +"or ``'w'``; otherwise a :exc:`ValueError` is raised. Use " +"``array.tobytes().decode(enc)`` to obtain a Unicode string from an array of " +"some other type." +msgstr "" + +#: ../../library/array.rst:257 +msgid "" +"The string representation of array objects has the form ``array(typecode, " +"initializer)``. The *initializer* is omitted if the array is empty, " +"otherwise it is a Unicode string if the *typecode* is ``'u'`` or ``'w'``, " +"otherwise it is a list of numbers. The string representation is guaranteed " +"to be able to be converted back to an array with the same type and value " +"using :func:`eval`, so long as the :class:`~array.array` class has been " +"imported using ``from array import array``. Variables ``inf`` and ``nan`` " +"must also be defined if it contains corresponding floating-point values. " +"Examples::" +msgstr "" + +#: ../../library/array.rst:269 +msgid "" +"array('l')\n" +"array('w', 'hello \\u2641')\n" +"array('l', [1, 2, 3, 4, 5])\n" +"array('d', [1.0, 2.0, 3.14, -inf, nan])" +msgstr "" + +#: ../../library/array.rst:277 +msgid "Module :mod:`struct`" +msgstr "" + +#: ../../library/array.rst:278 +msgid "Packing and unpacking of heterogeneous binary data." +msgstr "" + +#: ../../library/array.rst:280 +msgid "`NumPy `_" +msgstr "" + +#: ../../library/array.rst:281 +msgid "The NumPy package defines another array type." +msgstr "" + +#: ../../library/array.rst:7 +msgid "arrays" +msgstr "" diff --git a/library/ast.po b/library/ast.po new file mode 100644 index 0000000..3a1aae0 --- /dev/null +++ b/library/ast.po @@ -0,0 +1,3158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/ast.rst:2 +msgid ":mod:`!ast` --- Abstract syntax trees" +msgstr "" + +#: ../../library/ast.rst:14 +msgid "**Source code:** :source:`Lib/ast.py`" +msgstr "" + +#: ../../library/ast.rst:18 +msgid "" +"The :mod:`ast` module helps Python applications to process trees of the " +"Python abstract syntax grammar. The abstract syntax itself might change " +"with each Python release; this module helps to find out programmatically " +"what the current grammar looks like." +msgstr "" + +#: ../../library/ast.rst:23 +msgid "" +"An abstract syntax tree can be generated by " +"passing :data:`ast.PyCF_ONLY_AST` as a flag to the :func:`compile` built-in " +"function, or using the :func:`parse` helper provided in this module. The " +"result will be a tree of objects whose classes all inherit " +"from :class:`ast.AST`. An abstract syntax tree can be compiled into a " +"Python code object using the built-in :func:`compile` function." +msgstr "" + +#: ../../library/ast.rst:33 +msgid "Abstract grammar" +msgstr "" + +#: ../../library/ast.rst:35 +msgid "The abstract grammar is currently defined as follows:" +msgstr "" + +#: ../../library/ast.rst:37 +msgid "" +"-- ASDL's 4 builtin types are:\n" +"-- identifier, int, string, constant\n" +"\n" +"module Python\n" +"{\n" +" mod = Module(stmt* body, type_ignore* type_ignores)\n" +" | Interactive(stmt* body)\n" +" | Expression(expr body)\n" +" | FunctionType(expr* argtypes, expr returns)\n" +"\n" +" stmt = FunctionDef(identifier name, arguments args,\n" +" stmt* body, expr* decorator_list, expr? returns,\n" +" string? type_comment, type_param* type_params)\n" +" | AsyncFunctionDef(identifier name, arguments args,\n" +" stmt* body, expr* decorator_list, expr? " +"returns,\n" +" string? type_comment, type_param* type_params)\n" +"\n" +" | ClassDef(identifier name,\n" +" expr* bases,\n" +" keyword* keywords,\n" +" stmt* body,\n" +" expr* decorator_list,\n" +" type_param* type_params)\n" +" | Return(expr? value)\n" +"\n" +" | Delete(expr* targets)\n" +" | Assign(expr* targets, expr value, string? type_comment)\n" +" | TypeAlias(expr name, type_param* type_params, expr value)\n" +" | AugAssign(expr target, operator op, expr value)\n" +" -- 'simple' indicates that we annotate simple name without parens\n" +" | AnnAssign(expr target, expr annotation, expr? value, int " +"simple)\n" +"\n" +" -- use 'orelse' because else is a keyword in target languages\n" +" | For(expr target, expr iter, stmt* body, stmt* orelse, string? " +"type_comment)\n" +" | AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, " +"string? type_comment)\n" +" | While(expr test, stmt* body, stmt* orelse)\n" +" | If(expr test, stmt* body, stmt* orelse)\n" +" | With(withitem* items, stmt* body, string? type_comment)\n" +" | AsyncWith(withitem* items, stmt* body, string? type_comment)\n" +"\n" +" | Match(expr subject, match_case* cases)\n" +"\n" +" | Raise(expr? exc, expr? cause)\n" +" | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* " +"finalbody)\n" +" | TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* " +"finalbody)\n" +" | Assert(expr test, expr? msg)\n" +"\n" +" | Import(alias* names)\n" +" | ImportFrom(identifier? module, alias* names, int? level)\n" +"\n" +" | Global(identifier* names)\n" +" | Nonlocal(identifier* names)\n" +" | Expr(expr value)\n" +" | Pass | Break | Continue\n" +"\n" +" -- col_offset is the byte offset in the utf8 string the parser " +"uses\n" +" attributes (int lineno, int col_offset, int? end_lineno, int? " +"end_col_offset)\n" +"\n" +" -- BoolOp() can use left & right?\n" +" expr = BoolOp(boolop op, expr* values)\n" +" | NamedExpr(expr target, expr value)\n" +" | BinOp(expr left, operator op, expr right)\n" +" | UnaryOp(unaryop op, expr operand)\n" +" | Lambda(arguments args, expr body)\n" +" | IfExp(expr test, expr body, expr orelse)\n" +" | Dict(expr?* keys, expr* values)\n" +" | Set(expr* elts)\n" +" | ListComp(expr elt, comprehension* generators)\n" +" | SetComp(expr elt, comprehension* generators)\n" +" | DictComp(expr key, expr value, comprehension* generators)\n" +" | GeneratorExp(expr elt, comprehension* generators)\n" +" -- the grammar constrains where yield expressions can occur\n" +" | Await(expr value)\n" +" | Yield(expr? value)\n" +" | YieldFrom(expr value)\n" +" -- need sequences for compare to distinguish between\n" +" -- x < 4 < 3 and (x < 4) < 3\n" +" | Compare(expr left, cmpop* ops, expr* comparators)\n" +" | Call(expr func, expr* args, keyword* keywords)\n" +" | FormattedValue(expr value, int conversion, expr? format_spec)\n" +" | Interpolation(expr value, constant str, int conversion, expr? " +"format_spec)\n" +" | JoinedStr(expr* values)\n" +" | TemplateStr(expr* values)\n" +" | Constant(constant value, string? kind)\n" +"\n" +" -- the following expression can appear in assignment context\n" +" | Attribute(expr value, identifier attr, expr_context ctx)\n" +" | Subscript(expr value, expr slice, expr_context ctx)\n" +" | Starred(expr value, expr_context ctx)\n" +" | Name(identifier id, expr_context ctx)\n" +" | List(expr* elts, expr_context ctx)\n" +" | Tuple(expr* elts, expr_context ctx)\n" +"\n" +" -- can appear only in Subscript\n" +" | Slice(expr? lower, expr? upper, expr? step)\n" +"\n" +" -- col_offset is the byte offset in the utf8 string the parser " +"uses\n" +" attributes (int lineno, int col_offset, int? end_lineno, int? " +"end_col_offset)\n" +"\n" +" expr_context = Load | Store | Del\n" +"\n" +" boolop = And | Or\n" +"\n" +" operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift\n" +" | RShift | BitOr | BitXor | BitAnd | FloorDiv\n" +"\n" +" unaryop = Invert | Not | UAdd | USub\n" +"\n" +" cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn\n" +"\n" +" comprehension = (expr target, expr iter, expr* ifs, int is_async)\n" +"\n" +" excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)\n" +" attributes (int lineno, int col_offset, int? end_lineno, " +"int? end_col_offset)\n" +"\n" +" arguments = (arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs,\n" +" expr* kw_defaults, arg? kwarg, expr* defaults)\n" +"\n" +" arg = (identifier arg, expr? annotation, string? type_comment)\n" +" attributes (int lineno, int col_offset, int? end_lineno, int? " +"end_col_offset)\n" +"\n" +" -- keyword arguments supplied to call (NULL identifier for **kwargs)\n" +" keyword = (identifier? arg, expr value)\n" +" attributes (int lineno, int col_offset, int? end_lineno, int? " +"end_col_offset)\n" +"\n" +" -- import name with optional 'as' alias.\n" +" alias = (identifier name, identifier? asname)\n" +" attributes (int lineno, int col_offset, int? end_lineno, int? " +"end_col_offset)\n" +"\n" +" withitem = (expr context_expr, expr? optional_vars)\n" +"\n" +" match_case = (pattern pattern, expr? guard, stmt* body)\n" +"\n" +" pattern = MatchValue(expr value)\n" +" | MatchSingleton(constant value)\n" +" | MatchSequence(pattern* patterns)\n" +" | MatchMapping(expr* keys, pattern* patterns, identifier? rest)\n" +" | MatchClass(expr cls, pattern* patterns, identifier* kwd_attrs, " +"pattern* kwd_patterns)\n" +"\n" +" | MatchStar(identifier? name)\n" +" -- The optional \"rest\" MatchMapping parameter handles " +"capturing extra mapping keys\n" +"\n" +" | MatchAs(pattern? pattern, identifier? name)\n" +" | MatchOr(pattern* patterns)\n" +"\n" +" attributes (int lineno, int col_offset, int end_lineno, int " +"end_col_offset)\n" +"\n" +" type_ignore = TypeIgnore(int lineno, string tag)\n" +"\n" +" type_param = TypeVar(identifier name, expr? bound, expr? default_value)\n" +" | ParamSpec(identifier name, expr? default_value)\n" +" | TypeVarTuple(identifier name, expr? default_value)\n" +" attributes (int lineno, int col_offset, int end_lineno, int " +"end_col_offset)\n" +"}\n" +msgstr "" + +#: ../../library/ast.rst:42 +msgid "Node classes" +msgstr "" + +#: ../../library/ast.rst:46 +msgid "" +"This is the base of all AST node classes. The actual node classes are " +"derived from the :file:`Parser/Python.asdl` file, which is " +"reproduced :ref:`above `. They are defined in the :mod:`!" +"_ast` C module and re-exported in :mod:`ast`." +msgstr "" + +#: ../../library/ast.rst:51 +msgid "" +"There is one class defined for each left-hand side symbol in the abstract " +"grammar (for example, :class:`ast.stmt` or :class:`ast.expr`). In addition, " +"there is one class defined for each constructor on the right-hand side; " +"these classes inherit from the classes for the left-hand side trees. For " +"example, :class:`ast.BinOp` inherits from :class:`ast.expr`. For production " +"rules with alternatives (aka \"sums\"), the left-hand side class is " +"abstract: only instances of specific constructor nodes are ever created." +msgstr "" + +#: ../../library/ast.rst:64 +msgid "" +"Each concrete class has an attribute :attr:`!_fields` which gives the names " +"of all child nodes." +msgstr "" + +#: ../../library/ast.rst:67 +msgid "" +"Each instance of a concrete class has one attribute for each child node, of " +"the type as defined in the grammar. For example, :class:`ast.BinOp` " +"instances have an attribute :attr:`left` of type :class:`ast.expr`." +msgstr "" + +#: ../../library/ast.rst:71 +msgid "" +"If these attributes are marked as optional in the grammar (using a question " +"mark), the value might be ``None``. If the attributes can have zero-or-more " +"values (marked with an asterisk), the values are represented as Python " +"lists. All possible attributes must be present and have valid values when " +"compiling an AST with :func:`compile`." +msgstr "" + +#: ../../library/ast.rst:79 +msgid "" +"The :attr:`!_field_types` attribute on each concrete class is a dictionary " +"mapping field names (as also listed in :attr:`_fields`) to their types." +msgstr "" + +#: ../../library/ast.rst:82 +msgid "" +">>> ast.TypeVar._field_types\n" +"{'name': , 'bound': ast.expr | None, 'default_value': ast.expr " +"| None}" +msgstr "" + +#: ../../library/ast.rst:94 +msgid "" +"Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses " +"have :attr:`lineno`, :attr:`col_offset`, :attr:`end_lineno`, " +"and :attr:`end_col_offset` attributes. The :attr:`lineno` " +"and :attr:`end_lineno` are the first and last line numbers of source text " +"span (1-indexed so the first line is line 1) and the :attr:`col_offset` " +"and :attr:`end_col_offset` are the corresponding UTF-8 byte offsets of the " +"first and last tokens that generated the node. The UTF-8 offset is recorded " +"because the parser uses UTF-8 internally." +msgstr "" + +#: ../../library/ast.rst:103 +msgid "" +"Note that the end positions are not required by the compiler and are " +"therefore optional. The end offset is *after* the last symbol, for example " +"one can get the source segment of a one-line expression node using " +"``source_line[node.col_offset : node.end_col_offset]``." +msgstr "" + +#: ../../library/ast.rst:108 +msgid "" +"The constructor of a class :class:`ast.T` parses its arguments as follows:" +msgstr "" + +#: ../../library/ast.rst:110 +msgid "" +"If there are positional arguments, there must be as many as there are items " +"in :attr:`T._fields`; they will be assigned as attributes of these names." +msgstr "" + +#: ../../library/ast.rst:112 +msgid "" +"If there are keyword arguments, they will set the attributes of the same " +"names to the given values." +msgstr "" + +#: ../../library/ast.rst:115 +msgid "" +"For example, to create and populate an :class:`ast.UnaryOp` node, you could " +"use ::" +msgstr "" + +#: ../../library/ast.rst:118 +msgid "" +"node = ast.UnaryOp(ast.USub(), ast.Constant(5, lineno=0, col_offset=0),\n" +" lineno=0, col_offset=0)" +msgstr "" + +#: ../../library/ast.rst:121 +msgid "" +"If a field that is optional in the grammar is omitted from the constructor, " +"it defaults to ``None``. If a list field is omitted, it defaults to the " +"empty list. If a field of type :class:`!ast.expr_context` is omitted, it " +"defaults to :class:`Load() `. If any other field is omitted, " +"a :exc:`DeprecationWarning` is raised and the AST node will not have this " +"field. In Python 3.15, this condition will raise an error." +msgstr "" + +#: ../../library/ast.rst:130 +msgid "Class :class:`ast.Constant` is now used for all constants." +msgstr "" + +#: ../../library/ast.rst:134 +msgid "" +"Simple indices are represented by their value, extended slices are " +"represented as tuples." +msgstr "" + +#: ../../library/ast.rst:139 +msgid "" +"The :meth:`~object.__repr__` output of :class:`~ast.AST` nodes includes the " +"values of the node fields." +msgstr "" + +#: ../../library/ast.rst:144 +msgid "" +"Old classes :class:`!ast.Num`, :class:`!ast.Str`, :class:`!" +"ast.Bytes`, :class:`!ast.NameConstant` and :class:`!ast.Ellipsis` are still " +"available, but they will be removed in future Python releases. In the " +"meantime, instantiating them will return an instance of a different class." +msgstr "" + +#: ../../library/ast.rst:151 +msgid "" +"Old classes :class:`!ast.Index` and :class:`!ast.ExtSlice` are still " +"available, but they will be removed in future Python releases. In the " +"meantime, instantiating them will return an instance of a different class." +msgstr "" + +#: ../../library/ast.rst:158 +msgid "" +"Previous versions of Python allowed the creation of AST nodes that were " +"missing required fields. Similarly, AST node constructors allowed arbitrary " +"keyword arguments that were set as attributes of the AST node, even if they " +"did not match any of the fields of the AST node. This behavior is deprecated " +"and will be removed in Python 3.15." +msgstr "" + +#: ../../library/ast.rst:165 +msgid "" +"The descriptions of the specific node classes displayed here were initially " +"adapted from the fantastic `Green Tree Snakes `__ project and all its " +"contributors." +msgstr "" + +#: ../../library/ast.rst:174 +msgid "Root nodes" +msgstr "" + +#: ../../library/ast.rst:178 +msgid "" +"A Python module, as with :ref:`file input `. Node type generated " +"by :func:`ast.parse` in the default ``\"exec\"`` *mode*." +msgstr "" + +#: ../../library/ast.rst:181 +msgid "``body`` is a :class:`list` of the module's :ref:`ast-statements`." +msgstr "" + +#: ../../library/ast.rst:183 +msgid "" +"``type_ignores`` is a :class:`list` of the module's type ignore comments; " +"see :func:`ast.parse` for more details." +msgstr "" + +#: ../../library/ast.rst:186 +msgid "" +">>> print(ast.dump(ast.parse('x = 1'), indent=4))\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Name(id='x', ctx=Store())],\n" +" value=Constant(value=1))])" +msgstr "" + +#: ../../library/ast.rst:199 +msgid "" +"A single Python :ref:`expression input `. Node type " +"generated by :func:`ast.parse` when *mode* is ``\"eval\"``." +msgstr "" + +#: ../../library/ast.rst:202 +msgid "" +"``body`` is a single node, one of the :ref:`expression types `." +msgstr "" + +#: ../../library/ast.rst:205 ../../library/ast.rst:275 +msgid "" +">>> print(ast.dump(ast.parse('123', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Constant(value=123))" +msgstr "" + +#: ../../library/ast.rst:214 +msgid "" +"A single :ref:`interactive input `, like in :ref:`tut-interac`. " +"Node type generated by :func:`ast.parse` when *mode* is ``\"single\"``." +msgstr "" + +#: ../../library/ast.rst:217 +msgid "``body`` is a :class:`list` of :ref:`statement nodes `." +msgstr "" + +#: ../../library/ast.rst:219 +msgid "" +">>> print(ast.dump(ast.parse('x = 1; y = 2', mode='single'), indent=4))\n" +"Interactive(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Name(id='x', ctx=Store())],\n" +" value=Constant(value=1)),\n" +" Assign(\n" +" targets=[\n" +" Name(id='y', ctx=Store())],\n" +" value=Constant(value=2))])" +msgstr "" + +#: ../../library/ast.rst:236 +msgid "" +"A representation of an old-style type comments for functions, as Python " +"versions prior to 3.5 didn't support :pep:`484` annotations. Node type " +"generated by :func:`ast.parse` when *mode* is ``\"func_type\"``." +msgstr "" + +#: ../../library/ast.rst:240 +msgid "Such type comments would look like this::" +msgstr "" + +#: ../../library/ast.rst:242 +msgid "" +"def sum_two_number(a, b):\n" +" # type: (int, int) -> int\n" +" return a + b" +msgstr "" + +#: ../../library/ast.rst:246 +msgid "" +"``argtypes`` is a :class:`list` of :ref:`expression nodes `." +msgstr "" + +#: ../../library/ast.rst:248 +msgid "``returns`` is a single :ref:`expression node `." +msgstr "" + +#: ../../library/ast.rst:250 +msgid "" +">>> print(ast.dump(ast.parse('(int, str) -> List[int]', mode='func_type'), " +"indent=4))\n" +"FunctionType(\n" +" argtypes=[\n" +" Name(id='int', ctx=Load()),\n" +" Name(id='str', ctx=Load())],\n" +" returns=Subscript(\n" +" value=Name(id='List', ctx=Load()),\n" +" slice=Name(id='int', ctx=Load()),\n" +" ctx=Load()))" +msgstr "" + +#: ../../library/ast.rst:266 +msgid "Literals" +msgstr "" + +#: ../../library/ast.rst:270 +msgid "" +"A constant value. The ``value`` attribute of the ``Constant`` literal " +"contains the Python object it represents. The values represented can be " +"instances " +"of :class:`str`, :class:`bytes`, :class:`int`, :class:`float`, :class:`complex`, " +"and :class:`bool`, and the constants :data:`None` and :data:`Ellipsis`." +msgstr "" + +#: ../../library/ast.rst:284 +msgid "" +"Node representing a single formatting field in an f-string. If the string " +"contains a single formatting field and nothing else the node can be isolated " +"otherwise it appears in :class:`JoinedStr`." +msgstr "" + +#: ../../library/ast.rst:288 ../../library/ast.rst:360 +msgid "" +"``value`` is any expression node (such as a literal, a variable, or a " +"function call)." +msgstr "" + +#: ../../library/ast.rst:290 ../../library/ast.rst:363 +msgid "``conversion`` is an integer:" +msgstr "" + +#: ../../library/ast.rst:292 +msgid "-1: no formatting" +msgstr "" + +#: ../../library/ast.rst:293 +msgid "115 (``ord('s')``): ``!s`` string formatting" +msgstr "" + +#: ../../library/ast.rst:294 +msgid "114 (``ord('r')``): ``!r`` repr formatting" +msgstr "" + +#: ../../library/ast.rst:295 +msgid "97 (``ord('a')``): ``!a`` ASCII formatting" +msgstr "" + +#: ../../library/ast.rst:297 ../../library/ast.rst:370 +msgid "" +"``format_spec`` is a :class:`JoinedStr` node representing the formatting of " +"the value, or ``None`` if no format was specified. Both ``conversion`` and " +"``format_spec`` can be set at the same time." +msgstr "" + +#: ../../library/ast.rst:304 +msgid "" +"An f-string, comprising a series of :class:`FormattedValue` " +"and :class:`Constant` nodes." +msgstr "" + +#: ../../library/ast.rst:307 +msgid "" +">>> print(ast.dump(ast.parse('f\"sin({a}) is {sin(a):.3}\"', mode='eval'), " +"indent=4))\n" +"Expression(\n" +" body=JoinedStr(\n" +" values=[\n" +" Constant(value='sin('),\n" +" FormattedValue(\n" +" value=Name(id='a', ctx=Load()),\n" +" conversion=-1),\n" +" Constant(value=') is '),\n" +" FormattedValue(\n" +" value=Call(\n" +" func=Name(id='sin', ctx=Load()),\n" +" args=[\n" +" Name(id='a', ctx=Load())]),\n" +" conversion=-1,\n" +" format_spec=JoinedStr(\n" +" values=[\n" +" Constant(value='.3')]))]))" +msgstr "" + +#: ../../library/ast.rst:331 +msgid "" +"A t-string, comprising a series of :class:`Interpolation` " +"and :class:`Constant` nodes." +msgstr "" + +#: ../../library/ast.rst:334 +msgid "" +">>> print(ast.dump(ast.parse('t\"{name} finished {place:ordinal}\"', " +"mode='eval'), indent=4))\n" +"Expression(\n" +" body=TemplateStr(\n" +" values=[\n" +" Interpolation(\n" +" value=Name(id='name', ctx=Load()),\n" +" str='name',\n" +" conversion=-1),\n" +" Constant(value=' finished '),\n" +" Interpolation(\n" +" value=Name(id='place', ctx=Load()),\n" +" str='place',\n" +" conversion=-1,\n" +" format_spec=JoinedStr(\n" +" values=[\n" +" Constant(value='ordinal')]))]))" +msgstr "" + +#: ../../library/ast.rst:358 +msgid "Node representing a single interpolation field in a t-string." +msgstr "" + +#: ../../library/ast.rst:362 +msgid "" +"``str`` is a constant containing the text of the interpolation expression." +msgstr "" + +#: ../../library/ast.rst:365 +msgid "-1: no conversion" +msgstr "" + +#: ../../library/ast.rst:366 +msgid "115: ``!s`` string conversion" +msgstr "" + +#: ../../library/ast.rst:367 +msgid "114: ``!r`` repr conversion" +msgstr "" + +#: ../../library/ast.rst:368 +msgid "97: ``!a`` ascii conversion" +msgstr "" + +#: ../../library/ast.rst:380 +msgid "" +"A list or tuple. ``elts`` holds a list of nodes representing the elements. " +"``ctx`` is :class:`Store` if the container is an assignment target (i.e. " +"``(x,y)=something``), and :class:`Load` otherwise." +msgstr "" + +#: ../../library/ast.rst:384 +msgid "" +">>> print(ast.dump(ast.parse('[1, 2, 3]', mode='eval'), indent=4))\n" +"Expression(\n" +" body=List(\n" +" elts=[\n" +" Constant(value=1),\n" +" Constant(value=2),\n" +" Constant(value=3)],\n" +" ctx=Load()))\n" +">>> print(ast.dump(ast.parse('(1, 2, 3)', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Tuple(\n" +" elts=[\n" +" Constant(value=1),\n" +" Constant(value=2),\n" +" Constant(value=3)],\n" +" ctx=Load()))" +msgstr "" + +#: ../../library/ast.rst:406 +msgid "A set. ``elts`` holds a list of nodes representing the set's elements." +msgstr "" + +#: ../../library/ast.rst:408 +msgid "" +">>> print(ast.dump(ast.parse('{1, 2, 3}', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Set(\n" +" elts=[\n" +" Constant(value=1),\n" +" Constant(value=2),\n" +" Constant(value=3)]))" +msgstr "" + +#: ../../library/ast.rst:421 +msgid "" +"A dictionary. ``keys`` and ``values`` hold lists of nodes representing the " +"keys and the values respectively, in matching order (what would be returned " +"when calling :code:`dictionary.keys()` and :code:`dictionary.values()`)." +msgstr "" + +#: ../../library/ast.rst:425 +msgid "" +"When doing dictionary unpacking using dictionary literals the expression to " +"be expanded goes in the ``values`` list, with a ``None`` at the " +"corresponding position in ``keys``." +msgstr "" + +#: ../../library/ast.rst:429 +msgid "" +">>> print(ast.dump(ast.parse('{\"a\":1, **d}', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Dict(\n" +" keys=[\n" +" Constant(value='a'),\n" +" None],\n" +" values=[\n" +" Constant(value=1),\n" +" Name(id='d', ctx=Load())]))" +msgstr "" + +#: ../../library/ast.rst:443 +msgid "Variables" +msgstr "" + +#: ../../library/ast.rst:447 +msgid "" +"A variable name. ``id`` holds the name as a string, and ``ctx`` is one of " +"the following types." +msgstr "" + +#: ../../library/ast.rst:455 +msgid "" +"Variable references can be used to load the value of a variable, to assign a " +"new value to it, or to delete it. Variable references are given a context to " +"distinguish these cases." +msgstr "" + +#: ../../library/ast.rst:459 +msgid "" +">>> print(ast.dump(ast.parse('a'), indent=4))\n" +"Module(\n" +" body=[\n" +" Expr(\n" +" value=Name(id='a', ctx=Load()))])\n" +"\n" +">>> print(ast.dump(ast.parse('a = 1'), indent=4))\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Name(id='a', ctx=Store())],\n" +" value=Constant(value=1))])\n" +"\n" +">>> print(ast.dump(ast.parse('del a'), indent=4))\n" +"Module(\n" +" body=[\n" +" Delete(\n" +" targets=[\n" +" Name(id='a', ctx=Del())])])" +msgstr "" + +#: ../../library/ast.rst:485 +msgid "" +"A ``*var`` variable reference. ``value`` holds the variable, typically " +"a :class:`Name` node. This type must be used when building a :class:`Call` " +"node with ``*args``." +msgstr "" + +#: ../../library/ast.rst:489 +msgid "" +">>> print(ast.dump(ast.parse('a, *b = it'), indent=4))\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Tuple(\n" +" elts=[\n" +" Name(id='a', ctx=Store()),\n" +" Starred(\n" +" value=Name(id='b', ctx=Store()),\n" +" ctx=Store())],\n" +" ctx=Store())],\n" +" value=Name(id='it', ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:509 +msgid "Expressions" +msgstr "" + +#: ../../library/ast.rst:513 +msgid "" +"When an expression, such as a function call, appears as a statement by " +"itself with its return value not used or stored, it is wrapped in this " +"container. ``value`` holds one of the other nodes in this section, " +"a :class:`Constant`, a :class:`Name`, a :class:`Lambda`, a :class:`Yield` " +"or :class:`YieldFrom` node." +msgstr "" + +#: ../../library/ast.rst:518 +msgid "" +">>> print(ast.dump(ast.parse('-a'), indent=4))\n" +"Module(\n" +" body=[\n" +" Expr(\n" +" value=UnaryOp(\n" +" op=USub(),\n" +" operand=Name(id='a', ctx=Load())))])" +msgstr "" + +#: ../../library/ast.rst:531 +msgid "" +"A unary operation. ``op`` is the operator, and ``operand`` any expression " +"node." +msgstr "" + +#: ../../library/ast.rst:540 +msgid "" +"Unary operator tokens. :class:`Not` is the ``not`` keyword, :class:`Invert` " +"is the ``~`` operator." +msgstr "" + +#: ../../library/ast.rst:543 +msgid "" +">>> print(ast.dump(ast.parse('not x', mode='eval'), indent=4))\n" +"Expression(\n" +" body=UnaryOp(\n" +" op=Not(),\n" +" operand=Name(id='x', ctx=Load())))" +msgstr "" + +#: ../../library/ast.rst:554 +msgid "" +"A binary operation (like addition or division). ``op`` is the operator, and " +"``left`` and ``right`` are any expression nodes." +msgstr "" + +#: ../../library/ast.rst:557 +msgid "" +">>> print(ast.dump(ast.parse('x + y', mode='eval'), indent=4))\n" +"Expression(\n" +" body=BinOp(\n" +" left=Name(id='x', ctx=Load()),\n" +" op=Add(),\n" +" right=Name(id='y', ctx=Load())))" +msgstr "" + +#: ../../library/ast.rst:581 +msgid "Binary operator tokens." +msgstr "" + +#: ../../library/ast.rst:586 +msgid "" +"A boolean operation, 'or' or 'and'. ``op`` is :class:`Or` or :class:`And`. " +"``values`` are the values involved. Consecutive operations with the same " +"operator, such as ``a or b or c``, are collapsed into one node with several " +"values." +msgstr "" + +#: ../../library/ast.rst:591 +msgid "This doesn't include ``not``, which is a :class:`UnaryOp`." +msgstr "" + +#: ../../library/ast.rst:593 +msgid "" +">>> print(ast.dump(ast.parse('x or y', mode='eval'), indent=4))\n" +"Expression(\n" +" body=BoolOp(\n" +" op=Or(),\n" +" values=[\n" +" Name(id='x', ctx=Load()),\n" +" Name(id='y', ctx=Load())]))" +msgstr "" + +#: ../../library/ast.rst:607 +msgid "Boolean operator tokens." +msgstr "" + +#: ../../library/ast.rst:612 +msgid "" +"A comparison of two or more values. ``left`` is the first value in the " +"comparison, ``ops`` the list of operators, and ``comparators`` the list of " +"values after the first element in the comparison." +msgstr "" + +#: ../../library/ast.rst:616 +msgid "" +">>> print(ast.dump(ast.parse('1 <= a < 10', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Compare(\n" +" left=Constant(value=1),\n" +" ops=[\n" +" LtE(),\n" +" Lt()],\n" +" comparators=[\n" +" Name(id='a', ctx=Load()),\n" +" Constant(value=10)]))" +msgstr "" + +#: ../../library/ast.rst:641 +msgid "Comparison operator tokens." +msgstr "" + +#: ../../library/ast.rst:646 +msgid "" +"A function call. ``func`` is the function, which will often be " +"a :class:`Name` or :class:`Attribute` object. Of the arguments:" +msgstr "" + +#: ../../library/ast.rst:649 +msgid "``args`` holds a list of the arguments passed by position." +msgstr "" + +#: ../../library/ast.rst:650 +msgid "" +"``keywords`` holds a list of :class:`.keyword` objects representing " +"arguments passed by keyword." +msgstr "" + +#: ../../library/ast.rst:653 +msgid "" +"The ``args`` and ``keywords`` arguments are optional and default to empty " +"lists." +msgstr "" + +#: ../../library/ast.rst:655 +msgid "" +">>> print(ast.dump(ast.parse('func(a, b=c, *d, **e)', mode='eval'), " +"indent=4))\n" +"Expression(\n" +" body=Call(\n" +" func=Name(id='func', ctx=Load()),\n" +" args=[\n" +" Name(id='a', ctx=Load()),\n" +" Starred(\n" +" value=Name(id='d', ctx=Load()),\n" +" ctx=Load())],\n" +" keywords=[\n" +" keyword(\n" +" arg='b',\n" +" value=Name(id='c', ctx=Load())),\n" +" keyword(\n" +" value=Name(id='e', ctx=Load()))]))" +msgstr "" + +#: ../../library/ast.rst:676 +msgid "" +"A keyword argument to a function call or class definition. ``arg`` is a raw " +"string of the parameter name, ``value`` is a node to pass in." +msgstr "" + +#: ../../library/ast.rst:682 +msgid "" +"An expression such as ``a if b else c``. Each field holds a single node, so " +"in the following example, all three are :class:`Name` nodes." +msgstr "" + +#: ../../library/ast.rst:685 +msgid "" +">>> print(ast.dump(ast.parse('a if b else c', mode='eval'), indent=4))\n" +"Expression(\n" +" body=IfExp(\n" +" test=Name(id='b', ctx=Load()),\n" +" body=Name(id='a', ctx=Load()),\n" +" orelse=Name(id='c', ctx=Load())))" +msgstr "" + +#: ../../library/ast.rst:697 +msgid "" +"Attribute access, e.g. ``d.keys``. ``value`` is a node, typically " +"a :class:`Name`. ``attr`` is a bare string giving the name of the attribute, " +"and ``ctx`` is :class:`Load`, :class:`Store` or :class:`Del` according to " +"how the attribute is acted on." +msgstr "" + +#: ../../library/ast.rst:702 +msgid "" +">>> print(ast.dump(ast.parse('snake.colour', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Attribute(\n" +" value=Name(id='snake', ctx=Load()),\n" +" attr='colour',\n" +" ctx=Load()))" +msgstr "" + +#: ../../library/ast.rst:714 +msgid "" +"A named expression. This AST node is produced by the assignment expressions " +"operator (also known as the walrus operator). As opposed to " +"the :class:`Assign` node in which the first argument can be multiple nodes, " +"in this case both ``target`` and ``value`` must be single nodes." +msgstr "" + +#: ../../library/ast.rst:719 +msgid "" +">>> print(ast.dump(ast.parse('(x := 4)', mode='eval'), indent=4))\n" +"Expression(\n" +" body=NamedExpr(\n" +" target=Name(id='x', ctx=Store()),\n" +" value=Constant(value=4)))" +msgstr "" + +#: ../../library/ast.rst:730 +msgid "Subscripting" +msgstr "" + +#: ../../library/ast.rst:734 +msgid "" +"A subscript, such as ``l[1]``. ``value`` is the subscripted object (usually " +"sequence or mapping). ``slice`` is an index, slice or key. It can be " +"a :class:`Tuple` and contain a :class:`Slice`. ``ctx`` " +"is :class:`Load`, :class:`Store` or :class:`Del` according to the action " +"performed with the subscript." +msgstr "" + +#: ../../library/ast.rst:740 +msgid "" +">>> print(ast.dump(ast.parse('l[1:2, 3]', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Subscript(\n" +" value=Name(id='l', ctx=Load()),\n" +" slice=Tuple(\n" +" elts=[\n" +" Slice(\n" +" lower=Constant(value=1),\n" +" upper=Constant(value=2)),\n" +" Constant(value=3)],\n" +" ctx=Load()),\n" +" ctx=Load()))" +msgstr "" + +#: ../../library/ast.rst:758 +msgid "" +"Regular slicing (on the form ``lower:upper`` or ``lower:upper:step``). Can " +"occur only inside the *slice* field of :class:`Subscript`, either directly " +"or as an element of :class:`Tuple`." +msgstr "" + +#: ../../library/ast.rst:762 +msgid "" +">>> print(ast.dump(ast.parse('l[1:2]', mode='eval'), indent=4))\n" +"Expression(\n" +" body=Subscript(\n" +" value=Name(id='l', ctx=Load()),\n" +" slice=Slice(\n" +" lower=Constant(value=1),\n" +" upper=Constant(value=2)),\n" +" ctx=Load()))" +msgstr "" + +#: ../../library/ast.rst:775 +msgid "Comprehensions" +msgstr "" + +#: ../../library/ast.rst:782 +msgid "" +"List and set comprehensions, generator expressions, and dictionary " +"comprehensions. ``elt`` (or ``key`` and ``value``) is a single node " +"representing the part that will be evaluated for each item." +msgstr "" + +#: ../../library/ast.rst:786 +msgid "``generators`` is a list of :class:`comprehension` nodes." +msgstr "" + +#: ../../library/ast.rst:788 +msgid "" +">>> print(ast.dump(\n" +"... ast.parse('[x for x in numbers]', mode='eval'),\n" +"... indent=4,\n" +"... ))\n" +"Expression(\n" +" body=ListComp(\n" +" elt=Name(id='x', ctx=Load()),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='x', ctx=Store()),\n" +" iter=Name(id='numbers', ctx=Load()),\n" +" is_async=0)]))\n" +">>> print(ast.dump(\n" +"... ast.parse('{x: x**2 for x in numbers}', mode='eval'),\n" +"... indent=4,\n" +"... ))\n" +"Expression(\n" +" body=DictComp(\n" +" key=Name(id='x', ctx=Load()),\n" +" value=BinOp(\n" +" left=Name(id='x', ctx=Load()),\n" +" op=Pow(),\n" +" right=Constant(value=2)),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='x', ctx=Store()),\n" +" iter=Name(id='numbers', ctx=Load()),\n" +" is_async=0)]))\n" +">>> print(ast.dump(\n" +"... ast.parse('{x for x in numbers}', mode='eval'),\n" +"... indent=4,\n" +"... ))\n" +"Expression(\n" +" body=SetComp(\n" +" elt=Name(id='x', ctx=Load()),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='x', ctx=Store()),\n" +" iter=Name(id='numbers', ctx=Load()),\n" +" is_async=0)]))" +msgstr "" + +#: ../../library/ast.rst:834 +msgid "" +"One ``for`` clause in a comprehension. ``target`` is the reference to use " +"for each element - typically a :class:`Name` or :class:`Tuple` node. " +"``iter`` is the object to iterate over. ``ifs`` is a list of test " +"expressions: each ``for`` clause can have multiple ``ifs``." +msgstr "" + +#: ../../library/ast.rst:839 +msgid "" +"``is_async`` indicates a comprehension is asynchronous (using an ``async " +"for`` instead of ``for``). The value is an integer (0 or 1)." +msgstr "" + +#: ../../library/ast.rst:842 +msgid "" +">>> print(ast.dump(ast.parse('[ord(c) for line in file for c in line]', " +"mode='eval'),\n" +"... indent=4)) # Multiple comprehensions in one.\n" +"Expression(\n" +" body=ListComp(\n" +" elt=Call(\n" +" func=Name(id='ord', ctx=Load()),\n" +" args=[\n" +" Name(id='c', ctx=Load())]),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='line', ctx=Store()),\n" +" iter=Name(id='file', ctx=Load()),\n" +" is_async=0),\n" +" comprehension(\n" +" target=Name(id='c', ctx=Store()),\n" +" iter=Name(id='line', ctx=Load()),\n" +" is_async=0)]))\n" +"\n" +">>> print(ast.dump(ast.parse('(n**2 for n in it if n>5 if n<10)', " +"mode='eval'),\n" +"... indent=4)) # generator comprehension\n" +"Expression(\n" +" body=GeneratorExp(\n" +" elt=BinOp(\n" +" left=Name(id='n', ctx=Load()),\n" +" op=Pow(),\n" +" right=Constant(value=2)),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='n', ctx=Store()),\n" +" iter=Name(id='it', ctx=Load()),\n" +" ifs=[\n" +" Compare(\n" +" left=Name(id='n', ctx=Load()),\n" +" ops=[\n" +" Gt()],\n" +" comparators=[\n" +" Constant(value=5)]),\n" +" Compare(\n" +" left=Name(id='n', ctx=Load()),\n" +" ops=[\n" +" Lt()],\n" +" comparators=[\n" +" Constant(value=10)])],\n" +" is_async=0)]))\n" +"\n" +">>> print(ast.dump(ast.parse('[i async for i in soc]', mode='eval'),\n" +"... indent=4)) # Async comprehension\n" +"Expression(\n" +" body=ListComp(\n" +" elt=Name(id='i', ctx=Load()),\n" +" generators=[\n" +" comprehension(\n" +" target=Name(id='i', ctx=Store()),\n" +" iter=Name(id='soc', ctx=Load()),\n" +" is_async=1)]))" +msgstr "" + +#: ../../library/ast.rst:904 +msgid "Statements" +msgstr "" + +#: ../../library/ast.rst:908 +msgid "" +"An assignment. ``targets`` is a list of nodes, and ``value`` is a single " +"node." +msgstr "" + +#: ../../library/ast.rst:910 +msgid "" +"Multiple nodes in ``targets`` represents assigning the same value to each. " +"Unpacking is represented by putting a :class:`Tuple` or :class:`List` within " +"``targets``." +msgstr "" + +#: ../../library/ast.rst:916 ../../library/ast.rst:1211 +#: ../../library/ast.rst:1405 ../../library/ast.rst:1971 +msgid "" +"``type_comment`` is an optional string with the type annotation as a comment." +msgstr "" + +#: ../../library/ast.rst:918 +msgid "" +">>> print(ast.dump(ast.parse('a = b = 1'), indent=4)) # Multiple assignment\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Name(id='a', ctx=Store()),\n" +" Name(id='b', ctx=Store())],\n" +" value=Constant(value=1))])\n" +"\n" +">>> print(ast.dump(ast.parse('a,b = c'), indent=4)) # Unpacking\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Tuple(\n" +" elts=[\n" +" Name(id='a', ctx=Store()),\n" +" Name(id='b', ctx=Store())],\n" +" ctx=Store())],\n" +" value=Name(id='c', ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:944 +msgid "" +"An assignment with a type annotation. ``target`` is a single node and can be " +"a :class:`Name`, an :class:`Attribute` or a :class:`Subscript`. " +"``annotation`` is the annotation, such as a :class:`Constant` " +"or :class:`Name` node. ``value`` is a single optional node." +msgstr "" + +#: ../../library/ast.rst:949 +msgid "" +"``simple`` is always either 0 (indicating a \"complex\" target) or 1 " +"(indicating a \"simple\" target). A \"simple\" target consists solely of " +"a :class:`Name` node that does not appear between parentheses; all other " +"targets are considered complex. Only simple targets appear in " +"the :attr:`~object.__annotations__` dictionary of modules and classes." +msgstr "" + +#: ../../library/ast.rst:955 +msgid "" +">>> print(ast.dump(ast.parse('c: int'), indent=4))\n" +"Module(\n" +" body=[\n" +" AnnAssign(\n" +" target=Name(id='c', ctx=Store()),\n" +" annotation=Name(id='int', ctx=Load()),\n" +" simple=1)])\n" +"\n" +">>> print(ast.dump(ast.parse('(a): int = 1'), indent=4)) # Annotation with " +"parenthesis\n" +"Module(\n" +" body=[\n" +" AnnAssign(\n" +" target=Name(id='a', ctx=Store()),\n" +" annotation=Name(id='int', ctx=Load()),\n" +" value=Constant(value=1),\n" +" simple=0)])\n" +"\n" +">>> print(ast.dump(ast.parse('a.b: int'), indent=4)) # Attribute annotation\n" +"Module(\n" +" body=[\n" +" AnnAssign(\n" +" target=Attribute(\n" +" value=Name(id='a', ctx=Load()),\n" +" attr='b',\n" +" ctx=Store()),\n" +" annotation=Name(id='int', ctx=Load()),\n" +" simple=0)])\n" +"\n" +">>> print(ast.dump(ast.parse('a[1]: int'), indent=4)) # Subscript " +"annotation\n" +"Module(\n" +" body=[\n" +" AnnAssign(\n" +" target=Subscript(\n" +" value=Name(id='a', ctx=Load()),\n" +" slice=Constant(value=1),\n" +" ctx=Store()),\n" +" annotation=Name(id='int', ctx=Load()),\n" +" simple=0)])" +msgstr "" + +#: ../../library/ast.rst:999 +msgid "" +"Augmented assignment, such as ``a += 1``. In the following example, " +"``target`` is a :class:`Name` node for ``x`` (with the :class:`Store` " +"context), ``op`` is :class:`Add`, and ``value`` is a :class:`Constant` with " +"value for 1." +msgstr "" + +#: ../../library/ast.rst:1004 +msgid "" +"The ``target`` attribute cannot be of class :class:`Tuple` or :class:`List`, " +"unlike the targets of :class:`Assign`." +msgstr "" + +#: ../../library/ast.rst:1007 +msgid "" +">>> print(ast.dump(ast.parse('x += 2'), indent=4))\n" +"Module(\n" +" body=[\n" +" AugAssign(\n" +" target=Name(id='x', ctx=Store()),\n" +" op=Add(),\n" +" value=Constant(value=2))])" +msgstr "" + +#: ../../library/ast.rst:1020 +msgid "" +"A ``raise`` statement. ``exc`` is the exception object to be raised, " +"normally a :class:`Call` or :class:`Name`, or ``None`` for a standalone " +"``raise``. ``cause`` is the optional part for ``y`` in ``raise x from y``." +msgstr "" + +#: ../../library/ast.rst:1024 +msgid "" +">>> print(ast.dump(ast.parse('raise x from y'), indent=4))\n" +"Module(\n" +" body=[\n" +" Raise(\n" +" exc=Name(id='x', ctx=Load()),\n" +" cause=Name(id='y', ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1036 +msgid "" +"An assertion. ``test`` holds the condition, such as a :class:`Compare` node. " +"``msg`` holds the failure message." +msgstr "" + +#: ../../library/ast.rst:1039 +msgid "" +">>> print(ast.dump(ast.parse('assert x,y'), indent=4))\n" +"Module(\n" +" body=[\n" +" Assert(\n" +" test=Name(id='x', ctx=Load()),\n" +" msg=Name(id='y', ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1051 +msgid "" +"Represents a ``del`` statement. ``targets`` is a list of nodes, such " +"as :class:`Name`, :class:`Attribute` or :class:`Subscript` nodes." +msgstr "" + +#: ../../library/ast.rst:1054 +msgid "" +">>> print(ast.dump(ast.parse('del x,y,z'), indent=4))\n" +"Module(\n" +" body=[\n" +" Delete(\n" +" targets=[\n" +" Name(id='x', ctx=Del()),\n" +" Name(id='y', ctx=Del()),\n" +" Name(id='z', ctx=Del())])])" +msgstr "" + +#: ../../library/ast.rst:1068 +msgid "A ``pass`` statement." +msgstr "" + +#: ../../library/ast.rst:1070 +msgid "" +">>> print(ast.dump(ast.parse('pass'), indent=4))\n" +"Module(\n" +" body=[\n" +" Pass()])" +msgstr "" + +#: ../../library/ast.rst:1080 +msgid "" +"A :ref:`type alias ` created through the :keyword:`type` " +"statement. ``name`` is the name of the alias, ``type_params`` is a list " +"of :ref:`type parameters `, and ``value`` is the value of " +"the type alias." +msgstr "" + +#: ../../library/ast.rst:1085 +msgid "" +">>> print(ast.dump(ast.parse('type Alias = int'), indent=4))\n" +"Module(\n" +" body=[\n" +" TypeAlias(\n" +" name=Name(id='Alias', ctx=Store()),\n" +" value=Name(id='int', ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1096 +msgid "" +"Other statements which are only applicable inside functions or loops are " +"described in other sections." +msgstr "" + +#: ../../library/ast.rst:1100 +msgid "Imports" +msgstr "" + +#: ../../library/ast.rst:1104 +msgid "An import statement. ``names`` is a list of :class:`alias` nodes." +msgstr "" + +#: ../../library/ast.rst:1106 +msgid "" +">>> print(ast.dump(ast.parse('import x,y,z'), indent=4))\n" +"Module(\n" +" body=[\n" +" Import(\n" +" names=[\n" +" alias(name='x'),\n" +" alias(name='y'),\n" +" alias(name='z')])])" +msgstr "" + +#: ../../library/ast.rst:1120 +msgid "" +"Represents ``from x import y``. ``module`` is a raw string of the 'from' " +"name, without any leading dots, or ``None`` for statements such as ``from . " +"import foo``. ``level`` is an integer holding the level of the relative " +"import (0 means absolute import)." +msgstr "" + +#: ../../library/ast.rst:1125 +msgid "" +">>> print(ast.dump(ast.parse('from y import x,y,z'), indent=4))\n" +"Module(\n" +" body=[\n" +" ImportFrom(\n" +" module='y',\n" +" names=[\n" +" alias(name='x'),\n" +" alias(name='y'),\n" +" alias(name='z')],\n" +" level=0)])" +msgstr "" + +#: ../../library/ast.rst:1141 +msgid "" +"Both parameters are raw strings of the names. ``asname`` can be ``None`` if " +"the regular name is to be used." +msgstr "" + +#: ../../library/ast.rst:1144 +msgid "" +">>> print(ast.dump(ast.parse('from ..foo.bar import a as b, c'), indent=4))\n" +"Module(\n" +" body=[\n" +" ImportFrom(\n" +" module='foo.bar',\n" +" names=[\n" +" alias(name='a', asname='b'),\n" +" alias(name='c')],\n" +" level=2)])" +msgstr "" + +#: ../../library/ast.rst:1157 +msgid "Control flow" +msgstr "" + +#: ../../library/ast.rst:1160 +msgid "" +"Optional clauses such as ``else`` are stored as an empty list if they're not " +"present." +msgstr "" + +#: ../../library/ast.rst:1165 +msgid "" +"An ``if`` statement. ``test`` holds a single node, such as " +"a :class:`Compare` node. ``body`` and ``orelse`` each hold a list of nodes." +msgstr "" + +#: ../../library/ast.rst:1168 +msgid "" +"``elif`` clauses don't have a special representation in the AST, but rather " +"appear as extra :class:`If` nodes within the ``orelse`` section of the " +"previous one." +msgstr "" + +#: ../../library/ast.rst:1172 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... if x:\n" +"... ...\n" +"... elif y:\n" +"... ...\n" +"... else:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" If(\n" +" test=Name(id='x', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" orelse=[\n" +" If(\n" +" test=Name(id='y', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" orelse=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1202 +msgid "" +"A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a " +"single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` " +"or :class:`Subscript` node. ``iter`` holds the item to be looped over, again " +"as a single node. ``body`` and ``orelse`` contain lists of nodes to execute. " +"Those in ``orelse`` are executed if the loop finishes normally, rather than " +"via a ``break`` statement." +msgstr "" + +#: ../../library/ast.rst:1213 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... for x in y:\n" +"... ...\n" +"... else:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" For(\n" +" target=Name(id='x', ctx=Store()),\n" +" iter=Name(id='y', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" orelse=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])" +msgstr "" + +#: ../../library/ast.rst:1236 +msgid "" +"A ``while`` loop. ``test`` holds the condition, such as a :class:`Compare` " +"node." +msgstr "" + +#: ../../library/ast.rst:1239 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... while x:\n" +"... ...\n" +"... else:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" While(\n" +" test=Name(id='x', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" orelse=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])" +msgstr "" + +#: ../../library/ast.rst:1262 +msgid "The ``break`` and ``continue`` statements." +msgstr "" + +#: ../../library/ast.rst:1264 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... for a in b:\n" +"... if a > 5:\n" +"... break\n" +"... else:\n" +"... continue\n" +"...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" For(\n" +" target=Name(id='a', ctx=Store()),\n" +" iter=Name(id='b', ctx=Load()),\n" +" body=[\n" +" If(\n" +" test=Compare(\n" +" left=Name(id='a', ctx=Load()),\n" +" ops=[\n" +" Gt()],\n" +" comparators=[\n" +" Constant(value=5)]),\n" +" body=[\n" +" Break()],\n" +" orelse=[\n" +" Continue()])])])" +msgstr "" + +#: ../../library/ast.rst:1295 +msgid "" +"``try`` blocks. All attributes are list of nodes to execute, except for " +"``handlers``, which is a list of :class:`ExceptHandler` nodes." +msgstr "" + +#: ../../library/ast.rst:1298 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... try:\n" +"... ...\n" +"... except Exception:\n" +"... ...\n" +"... except OtherException as e:\n" +"... ...\n" +"... else:\n" +"... ...\n" +"... finally:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Try(\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" handlers=[\n" +" ExceptHandler(\n" +" type=Name(id='Exception', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" ExceptHandler(\n" +" type=Name(id='OtherException', ctx=Load()),\n" +" name='e',\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])],\n" +" orelse=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" finalbody=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])" +msgstr "" + +#: ../../library/ast.rst:1340 +msgid "" +"``try`` blocks which are followed by ``except*`` clauses. The attributes are " +"the same as for :class:`Try` but the :class:`ExceptHandler` nodes in " +"``handlers`` are interpreted as ``except*`` blocks rather then ``except``." +msgstr "" + +#: ../../library/ast.rst:1344 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... try:\n" +"... ...\n" +"... except* Exception:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" TryStar(\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))],\n" +" handlers=[\n" +" ExceptHandler(\n" +" type=Name(id='Exception', ctx=Load()),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1369 +msgid "" +"A single ``except`` clause. ``type`` is the exception type it will match, " +"typically a :class:`Name` node (or ``None`` for a catch-all ``except:`` " +"clause). ``name`` is a raw string for the name to hold the exception, or " +"``None`` if the clause doesn't have ``as foo``. ``body`` is a list of nodes." +msgstr "" + +#: ../../library/ast.rst:1374 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... try:\n" +"... a + 1\n" +"... except TypeError:\n" +"... pass\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Try(\n" +" body=[\n" +" Expr(\n" +" value=BinOp(\n" +" left=Name(id='a', ctx=Load()),\n" +" op=Add(),\n" +" right=Constant(value=1)))],\n" +" handlers=[\n" +" ExceptHandler(\n" +" type=Name(id='TypeError', ctx=Load()),\n" +" body=[\n" +" Pass()])])])" +msgstr "" + +#: ../../library/ast.rst:1400 +msgid "" +"A ``with`` block. ``items`` is a list of :class:`withitem` nodes " +"representing the context managers, and ``body`` is the indented block inside " +"the context." +msgstr "" + +#: ../../library/ast.rst:1410 +msgid "" +"A single context manager in a ``with`` block. ``context_expr`` is the " +"context manager, often a :class:`Call` node. ``optional_vars`` is " +"a :class:`Name`, :class:`Tuple` or :class:`List` for the ``as foo`` part, or " +"``None`` if that isn't used." +msgstr "" + +#: ../../library/ast.rst:1415 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... with a as b, c as d:\n" +"... something(b, d)\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" With(\n" +" items=[\n" +" withitem(\n" +" context_expr=Name(id='a', ctx=Load()),\n" +" optional_vars=Name(id='b', ctx=Store())),\n" +" withitem(\n" +" context_expr=Name(id='c', ctx=Load()),\n" +" optional_vars=Name(id='d', ctx=Store()))],\n" +" body=[\n" +" Expr(\n" +" value=Call(\n" +" func=Name(id='something', ctx=Load()),\n" +" args=[\n" +" Name(id='b', ctx=Load()),\n" +" Name(id='d', ctx=Load())]))])])" +msgstr "" + +#: ../../library/ast.rst:1441 +msgid "Pattern matching" +msgstr "" + +#: ../../library/ast.rst:1446 +msgid "" +"A ``match`` statement. ``subject`` holds the subject of the match (the " +"object that is being matched against the cases) and ``cases`` contains an " +"iterable of :class:`match_case` nodes with the different cases." +msgstr "" + +#: ../../library/ast.rst:1454 +msgid "" +"A single case pattern in a ``match`` statement. ``pattern`` contains the " +"match pattern that the subject will be matched against. Note that " +"the :class:`AST` nodes produced for patterns differ from those produced for " +"expressions, even when they share the same syntax." +msgstr "" + +#: ../../library/ast.rst:1459 +msgid "" +"The ``guard`` attribute contains an expression that will be evaluated if the " +"pattern matches the subject." +msgstr "" + +#: ../../library/ast.rst:1462 +msgid "" +"``body`` contains a list of nodes to execute if the pattern matches and the " +"result of evaluating the guard expression is true." +msgstr "" + +#: ../../library/ast.rst:1465 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case [x] if x>0:\n" +"... ...\n" +"... case tuple():\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchSequence(\n" +" patterns=[\n" +" MatchAs(name='x')]),\n" +" guard=Compare(\n" +" left=Name(id='x', ctx=Load()),\n" +" ops=[\n" +" Gt()],\n" +" comparators=[\n" +" Constant(value=0)]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" match_case(\n" +" pattern=MatchClass(\n" +" cls=Name(id='tuple', ctx=Load())),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1503 +msgid "" +"A match literal or value pattern that compares by equality. ``value`` is an " +"expression node. Permitted value nodes are restricted as described in the " +"match statement documentation. This pattern succeeds if the match subject is " +"equal to the evaluated value." +msgstr "" + +#: ../../library/ast.rst:1508 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case \"Relevant\":\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchValue(\n" +" value=Constant(value='Relevant')),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1531 +msgid "" +"A match literal pattern that compares by identity. ``value`` is the " +"singleton to be compared against: ``None``, ``True``, or ``False``. This " +"pattern succeeds if the match subject is the given constant." +msgstr "" + +#: ../../library/ast.rst:1535 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case None:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchSingleton(value=None),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1557 +msgid "" +"A match sequence pattern. ``patterns`` contains the patterns to be matched " +"against the subject elements if the subject is a sequence. Matches a " +"variable length sequence if one of the subpatterns is a ``MatchStar`` node, " +"otherwise matches a fixed length sequence." +msgstr "" + +#: ../../library/ast.rst:1562 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case [1, 2]:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchSequence(\n" +" patterns=[\n" +" MatchValue(\n" +" value=Constant(value=1)),\n" +" MatchValue(\n" +" value=Constant(value=2))]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1589 +msgid "" +"Matches the rest of the sequence in a variable length match sequence " +"pattern. If ``name`` is not ``None``, a list containing the remaining " +"sequence elements is bound to that name if the overall sequence pattern is " +"successful." +msgstr "" + +#: ../../library/ast.rst:1593 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case [1, 2, *rest]:\n" +"... ...\n" +"... case [*_]:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchSequence(\n" +" patterns=[\n" +" MatchValue(\n" +" value=Constant(value=1)),\n" +" MatchValue(\n" +" value=Constant(value=2)),\n" +" MatchStar(name='rest')]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" match_case(\n" +" pattern=MatchSequence(\n" +" patterns=[\n" +" MatchStar()]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1630 +msgid "" +"A match mapping pattern. ``keys`` is a sequence of expression nodes. " +"``patterns`` is a corresponding sequence of pattern nodes. ``rest`` is an " +"optional name that can be specified to capture the remaining mapping " +"elements. Permitted key expressions are restricted as described in the match " +"statement documentation." +msgstr "" + +#: ../../library/ast.rst:1636 +msgid "" +"This pattern succeeds if the subject is a mapping, all evaluated key " +"expressions are present in the mapping, and the value corresponding to each " +"key matches the corresponding subpattern. If ``rest`` is not ``None``, a " +"dict containing the remaining mapping elements is bound to that name if the " +"overall mapping pattern is successful." +msgstr "" + +#: ../../library/ast.rst:1642 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case {1: _, 2: _}:\n" +"... ...\n" +"... case {**rest}:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchMapping(\n" +" keys=[\n" +" Constant(value=1),\n" +" Constant(value=2)],\n" +" patterns=[\n" +" MatchAs(),\n" +" MatchAs()]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" match_case(\n" +" pattern=MatchMapping(rest='rest'),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1677 +msgid "" +"A match class pattern. ``cls`` is an expression giving the nominal class to " +"be matched. ``patterns`` is a sequence of pattern nodes to be matched " +"against the class defined sequence of pattern matching attributes. " +"``kwd_attrs`` is a sequence of additional attributes to be matched " +"(specified as keyword arguments in the class pattern), ``kwd_patterns`` are " +"the corresponding patterns (specified as keyword values in the class " +"pattern)." +msgstr "" + +#: ../../library/ast.rst:1684 +msgid "" +"This pattern succeeds if the subject is an instance of the nominated class, " +"all positional patterns match the corresponding class-defined attributes, " +"and any specified keyword attributes match their corresponding pattern." +msgstr "" + +#: ../../library/ast.rst:1688 +msgid "" +"Note: classes may define a property that returns self in order to match a " +"pattern node against the instance being matched. Several builtin types are " +"also matched that way, as described in the match statement documentation." +msgstr "" + +#: ../../library/ast.rst:1692 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case Point2D(0, 0):\n" +"... ...\n" +"... case Point3D(x=0, y=0, z=0):\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchClass(\n" +" cls=Name(id='Point2D', ctx=Load()),\n" +" patterns=[\n" +" MatchValue(\n" +" value=Constant(value=0)),\n" +" MatchValue(\n" +" value=Constant(value=0))]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" match_case(\n" +" pattern=MatchClass(\n" +" cls=Name(id='Point3D', ctx=Load()),\n" +" kwd_attrs=[\n" +" 'x',\n" +" 'y',\n" +" 'z'],\n" +" kwd_patterns=[\n" +" MatchValue(\n" +" value=Constant(value=0)),\n" +" MatchValue(\n" +" value=Constant(value=0)),\n" +" MatchValue(\n" +" value=Constant(value=0))]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1739 +msgid "" +"A match \"as-pattern\", capture pattern or wildcard pattern. ``pattern`` " +"contains the match pattern that the subject will be matched against. If the " +"pattern is ``None``, the node represents a capture pattern (i.e a bare name) " +"and will always succeed." +msgstr "" + +#: ../../library/ast.rst:1744 +msgid "" +"The ``name`` attribute contains the name that will be bound if the pattern " +"is successful. If ``name`` is ``None``, ``pattern`` must also be ``None`` " +"and the node represents the wildcard pattern." +msgstr "" + +#: ../../library/ast.rst:1748 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case [x] as y:\n" +"... ...\n" +"... case _:\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchAs(\n" +" pattern=MatchSequence(\n" +" patterns=[\n" +" MatchAs(name='x')]),\n" +" name='y'),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))]),\n" +" match_case(\n" +" pattern=MatchAs(),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1781 +msgid "" +"A match \"or-pattern\". An or-pattern matches each of its subpatterns in " +"turn to the subject, until one succeeds. The or-pattern is then deemed to " +"succeed. If none of the subpatterns succeed the or-pattern fails. The " +"``patterns`` attribute contains a list of match pattern nodes that will be " +"matched against the subject." +msgstr "" + +#: ../../library/ast.rst:1787 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\n" +"... match x:\n" +"... case [x] | (y):\n" +"... ...\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" Match(\n" +" subject=Name(id='x', ctx=Load()),\n" +" cases=[\n" +" match_case(\n" +" pattern=MatchOr(\n" +" patterns=[\n" +" MatchSequence(\n" +" patterns=[\n" +" MatchAs(name='x')]),\n" +" MatchAs(name='y')]),\n" +" body=[\n" +" Expr(\n" +" value=Constant(value=Ellipsis))])])])" +msgstr "" + +#: ../../library/ast.rst:1814 +msgid "Type annotations" +msgstr "" + +#: ../../library/ast.rst:1818 +msgid "" +"A ``# type: ignore`` comment located at *lineno*. *tag* is the optional tag " +"specified by the form ``# type: ignore ``." +msgstr "" + +#: ../../library/ast.rst:1821 +msgid "" +">>> print(ast.dump(ast.parse('x = 1 # type: ignore', type_comments=True), " +"indent=4))\n" +"Module(\n" +" body=[\n" +" Assign(\n" +" targets=[\n" +" Name(id='x', ctx=Store())],\n" +" value=Constant(value=1))],\n" +" type_ignores=[\n" +" TypeIgnore(lineno=1, tag='')])\n" +">>> print(ast.dump(ast.parse('x: bool = 1 # type: ignore[assignment]', " +"type_comments=True), indent=4))\n" +"Module(\n" +" body=[\n" +" AnnAssign(\n" +" target=Name(id='x', ctx=Store()),\n" +" annotation=Name(id='bool', ctx=Load()),\n" +" value=Constant(value=1),\n" +" simple=1)],\n" +" type_ignores=[\n" +" TypeIgnore(lineno=1, tag='[assignment]')])" +msgstr "" + +#: ../../library/ast.rst:1844 +msgid "" +":class:`!TypeIgnore` nodes are not generated when the *type_comments* " +"parameter is set to ``False`` (default). See :func:`ast.parse` for more " +"details." +msgstr "" + +#: ../../library/ast.rst:1852 +msgid "Type parameters" +msgstr "" + +#: ../../library/ast.rst:1854 +msgid "" +":ref:`Type parameters ` can exist on classes, functions, and " +"type aliases." +msgstr "" + +#: ../../library/ast.rst:1859 +msgid "" +"A :class:`typing.TypeVar`. ``name`` is the name of the type variable. " +"``bound`` is the bound or constraints, if any. If ``bound`` is " +"a :class:`Tuple`, it represents constraints; otherwise it represents the " +"bound. ``default_value`` is the default value; if the :class:`!TypeVar` has " +"no default, this attribute will be set to ``None``." +msgstr "" + +#: ../../library/ast.rst:1865 +msgid "" +">>> print(ast.dump(ast.parse(\"type Alias[T: int = bool] = list[T]\"), " +"indent=4))\n" +"Module(\n" +" body=[\n" +" TypeAlias(\n" +" name=Name(id='Alias', ctx=Store()),\n" +" type_params=[\n" +" TypeVar(\n" +" name='T',\n" +" bound=Name(id='int', ctx=Load()),\n" +" default_value=Name(id='bool', ctx=Load()))],\n" +" value=Subscript(\n" +" value=Name(id='list', ctx=Load()),\n" +" slice=Name(id='T', ctx=Load()),\n" +" ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1884 ../../library/ast.rst:1919 +#: ../../library/ast.rst:1951 +msgid "Added the *default_value* parameter." +msgstr "" + +#: ../../library/ast.rst:1889 +msgid "" +"A :class:`typing.ParamSpec`. ``name`` is the name of the parameter " +"specification. ``default_value`` is the default value; if the :class:`!" +"ParamSpec` has no default, this attribute will be set to ``None``." +msgstr "" + +#: ../../library/ast.rst:1893 +msgid "" +">>> print(ast.dump(ast.parse(\"type Alias[**P = [int, str]] = Callable[P, " +"int]\"), indent=4))\n" +"Module(\n" +" body=[\n" +" TypeAlias(\n" +" name=Name(id='Alias', ctx=Store()),\n" +" type_params=[\n" +" ParamSpec(\n" +" name='P',\n" +" default_value=List(\n" +" elts=[\n" +" Name(id='int', ctx=Load()),\n" +" Name(id='str', ctx=Load())],\n" +" ctx=Load()))],\n" +" value=Subscript(\n" +" value=Name(id='Callable', ctx=Load()),\n" +" slice=Tuple(\n" +" elts=[\n" +" Name(id='P', ctx=Load()),\n" +" Name(id='int', ctx=Load())],\n" +" ctx=Load()),\n" +" ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1924 +msgid "" +"A :class:`typing.TypeVarTuple`. ``name`` is the name of the type variable " +"tuple. ``default_value`` is the default value; if the :class:`!TypeVarTuple` " +"has no default, this attribute will be set to ``None``." +msgstr "" + +#: ../../library/ast.rst:1928 +msgid "" +">>> print(ast.dump(ast.parse(\"type Alias[*Ts = ()] = tuple[*Ts]\"), " +"indent=4))\n" +"Module(\n" +" body=[\n" +" TypeAlias(\n" +" name=Name(id='Alias', ctx=Store()),\n" +" type_params=[\n" +" TypeVarTuple(\n" +" name='Ts',\n" +" default_value=Tuple(ctx=Load()))],\n" +" value=Subscript(\n" +" value=Name(id='tuple', ctx=Load()),\n" +" slice=Tuple(\n" +" elts=[\n" +" Starred(\n" +" value=Name(id='Ts', ctx=Load()),\n" +" ctx=Load())],\n" +" ctx=Load()),\n" +" ctx=Load()))])" +msgstr "" + +#: ../../library/ast.rst:1955 +msgid "Function and class definitions" +msgstr "" + +#: ../../library/ast.rst:1959 +msgid "A function definition." +msgstr "" + +#: ../../library/ast.rst:1961 +msgid "``name`` is a raw string of the function name." +msgstr "" + +#: ../../library/ast.rst:1962 +msgid "``args`` is an :class:`arguments` node." +msgstr "" + +#: ../../library/ast.rst:1963 +msgid "``body`` is the list of nodes inside the function." +msgstr "" + +#: ../../library/ast.rst:1964 +msgid "" +"``decorator_list`` is the list of decorators to be applied, stored outermost " +"first (i.e. the first in the list will be applied last)." +msgstr "" + +#: ../../library/ast.rst:1966 +msgid "``returns`` is the return annotation." +msgstr "" + +#: ../../library/ast.rst:1967 ../../library/ast.rst:2130 +msgid "``type_params`` is a list of :ref:`type parameters `." +msgstr "" + +#: ../../library/ast.rst:1973 ../../library/ast.rst:2157 +#: ../../library/ast.rst:2168 +msgid "Added ``type_params``." +msgstr "" + +#: ../../library/ast.rst:1979 +msgid "" +"``lambda`` is a minimal function definition that can be used inside an " +"expression. Unlike :class:`FunctionDef`, ``body`` holds a single node." +msgstr "" + +#: ../../library/ast.rst:1982 +msgid "" +">>> print(ast.dump(ast.parse('lambda x,y: ...'), indent=4))\n" +"Module(\n" +" body=[\n" +" Expr(\n" +" value=Lambda(\n" +" args=arguments(\n" +" args=[\n" +" arg(arg='x'),\n" +" arg(arg='y')]),\n" +" body=Constant(value=Ellipsis)))])" +msgstr "" + +#: ../../library/ast.rst:1998 +msgid "The arguments for a function." +msgstr "" + +#: ../../library/ast.rst:2000 +msgid "" +"``posonlyargs``, ``args`` and ``kwonlyargs`` are lists of :class:`arg` nodes." +msgstr "" + +#: ../../library/ast.rst:2001 +msgid "" +"``vararg`` and ``kwarg`` are single :class:`arg` nodes, referring to the " +"``*args, **kwargs`` parameters." +msgstr "" + +#: ../../library/ast.rst:2003 +msgid "" +"``kw_defaults`` is a list of default values for keyword-only arguments. If " +"one is ``None``, the corresponding argument is required." +msgstr "" + +#: ../../library/ast.rst:2005 +msgid "" +"``defaults`` is a list of default values for arguments that can be passed " +"positionally. If there are fewer defaults, they correspond to the last n " +"arguments." +msgstr "" + +#: ../../library/ast.rst:2012 +msgid "" +"A single argument in a list. ``arg`` is a raw string of the argument name; " +"``annotation`` is its annotation, such as a :class:`Name` node." +msgstr "" + +#: ../../library/ast.rst:2017 +msgid "" +"``type_comment`` is an optional string with the type annotation as a comment" +msgstr "" + +#: ../../library/ast.rst:2019 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... @decorator1\n" +"... @decorator2\n" +"... def f(a: 'annotation', b=1, c=2, *d, e, f=3, **g) -> 'return " +"annotation':\n" +"... pass\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" FunctionDef(\n" +" name='f',\n" +" args=arguments(\n" +" args=[\n" +" arg(\n" +" arg='a',\n" +" annotation=Constant(value='annotation')),\n" +" arg(arg='b'),\n" +" arg(arg='c')],\n" +" vararg=arg(arg='d'),\n" +" kwonlyargs=[\n" +" arg(arg='e'),\n" +" arg(arg='f')],\n" +" kw_defaults=[\n" +" None,\n" +" Constant(value=3)],\n" +" kwarg=arg(arg='g'),\n" +" defaults=[\n" +" Constant(value=1),\n" +" Constant(value=2)]),\n" +" body=[\n" +" Pass()],\n" +" decorator_list=[\n" +" Name(id='decorator1', ctx=Load()),\n" +" Name(id='decorator2', ctx=Load())],\n" +" returns=Constant(value='return annotation'))])" +msgstr "" + +#: ../../library/ast.rst:2059 +msgid "A ``return`` statement." +msgstr "" + +#: ../../library/ast.rst:2061 +msgid "" +">>> print(ast.dump(ast.parse('return 4'), indent=4))\n" +"Module(\n" +" body=[\n" +" Return(\n" +" value=Constant(value=4))])" +msgstr "" + +#: ../../library/ast.rst:2073 +msgid "" +"A ``yield`` or ``yield from`` expression. Because these are expressions, " +"they must be wrapped in an :class:`Expr` node if the value sent back is not " +"used." +msgstr "" + +#: ../../library/ast.rst:2076 +msgid "" +">>> print(ast.dump(ast.parse('yield x'), indent=4))\n" +"Module(\n" +" body=[\n" +" Expr(\n" +" value=Yield(\n" +" value=Name(id='x', ctx=Load())))])\n" +"\n" +">>> print(ast.dump(ast.parse('yield from x'), indent=4))\n" +"Module(\n" +" body=[\n" +" Expr(\n" +" value=YieldFrom(\n" +" value=Name(id='x', ctx=Load())))])" +msgstr "" + +#: ../../library/ast.rst:2096 +msgid "" +"``global`` and ``nonlocal`` statements. ``names`` is a list of raw strings." +msgstr "" + +#: ../../library/ast.rst:2098 +msgid "" +">>> print(ast.dump(ast.parse('global x,y,z'), indent=4))\n" +"Module(\n" +" body=[\n" +" Global(\n" +" names=[\n" +" 'x',\n" +" 'y',\n" +" 'z'])])\n" +"\n" +">>> print(ast.dump(ast.parse('nonlocal x,y,z'), indent=4))\n" +"Module(\n" +" body=[\n" +" Nonlocal(\n" +" names=[\n" +" 'x',\n" +" 'y',\n" +" 'z'])])" +msgstr "" + +#: ../../library/ast.rst:2121 +msgid "A class definition." +msgstr "" + +#: ../../library/ast.rst:2123 +msgid "``name`` is a raw string for the class name" +msgstr "" + +#: ../../library/ast.rst:2124 +msgid "``bases`` is a list of nodes for explicitly specified base classes." +msgstr "" + +#: ../../library/ast.rst:2125 +msgid "" +"``keywords`` is a list of :class:`.keyword` nodes, principally for " +"'metaclass'. Other keywords will be passed to the metaclass, as " +"per :pep:`3115`." +msgstr "" + +#: ../../library/ast.rst:2127 +msgid "" +"``body`` is a list of nodes representing the code within the class " +"definition." +msgstr "" + +#: ../../library/ast.rst:2129 +msgid "``decorator_list`` is a list of nodes, as in :class:`FunctionDef`." +msgstr "" + +#: ../../library/ast.rst:2132 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... @decorator1\n" +"... @decorator2\n" +"... class Foo(base1, base2, metaclass=meta):\n" +"... pass\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" ClassDef(\n" +" name='Foo',\n" +" bases=[\n" +" Name(id='base1', ctx=Load()),\n" +" Name(id='base2', ctx=Load())],\n" +" keywords=[\n" +" keyword(\n" +" arg='metaclass',\n" +" value=Name(id='meta', ctx=Load()))],\n" +" body=[\n" +" Pass()],\n" +" decorator_list=[\n" +" Name(id='decorator1', ctx=Load()),\n" +" Name(id='decorator2', ctx=Load())])])" +msgstr "" + +#: ../../library/ast.rst:2161 +msgid "Async and await" +msgstr "" + +#: ../../library/ast.rst:2165 +msgid "" +"An ``async def`` function definition. Has the same fields " +"as :class:`FunctionDef`." +msgstr "" + +#: ../../library/ast.rst:2174 +msgid "" +"An ``await`` expression. ``value`` is what it waits for. Only valid in the " +"body of an :class:`AsyncFunctionDef`." +msgstr "" + +#: ../../library/ast.rst:2177 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... async def f():\n" +"... await other_func()\n" +"... \"\"\"), indent=4))\n" +"Module(\n" +" body=[\n" +" AsyncFunctionDef(\n" +" name='f',\n" +" args=arguments(),\n" +" body=[\n" +" Expr(\n" +" value=Await(\n" +" value=Call(\n" +" func=Name(id='other_func', ctx=Load()))))])])" +msgstr "" + +#: ../../library/ast.rst:2198 +msgid "" +"``async for`` loops and ``async with`` context managers. They have the same " +"fields as :class:`For` and :class:`With`, respectively. Only valid in the " +"body of an :class:`AsyncFunctionDef`." +msgstr "" + +#: ../../library/ast.rst:2203 +msgid "" +"When a string is parsed by :func:`ast.parse`, operator nodes (subclasses " +"of :class:`ast.operator`, :class:`ast.unaryop`, :class:`ast.cmpop`, :class:`ast.boolop` " +"and :class:`ast.expr_context`) on the returned tree will be singletons. " +"Changes to one will be reflected in all other occurrences of the same value " +"(for example, :class:`ast.Add`)." +msgstr "" + +#: ../../library/ast.rst:2211 +msgid ":mod:`ast` helpers" +msgstr "" + +#: ../../library/ast.rst:2213 +msgid "" +"Apart from the node classes, the :mod:`ast` module defines these utility " +"functions and classes for traversing abstract syntax trees:" +msgstr "" + +#: ../../library/ast.rst:2218 +msgid "" +"Parse the source into an AST node. Equivalent to ``compile(source, " +"filename, mode, flags=FLAGS_VALUE, optimize=optimize)``, where " +"``FLAGS_VALUE`` is ``ast.PyCF_ONLY_AST`` if ``optimize <= 0`` and " +"``ast.PyCF_OPTIMIZED_AST`` otherwise." +msgstr "" + +#: ../../library/ast.rst:2223 +msgid "" +"If ``type_comments=True`` is given, the parser is modified to check and " +"return type comments as specified by :pep:`484` and :pep:`526`. This is " +"equivalent to adding :data:`ast.PyCF_TYPE_COMMENTS` to the flags passed " +"to :func:`compile`. This will report syntax errors for misplaced type " +"comments. Without this flag, type comments will be ignored, and the " +"``type_comment`` field on selected AST nodes will always be ``None``. In " +"addition, the locations of ``# type: ignore`` comments will be returned as " +"the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an " +"empty list)." +msgstr "" + +#: ../../library/ast.rst:2233 +msgid "" +"In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " +"correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " +"List[str]``." +msgstr "" + +#: ../../library/ast.rst:2237 +msgid "" +"Setting ``feature_version`` to a tuple ``(major, minor)`` will result in a " +"\"best-effort\" attempt to parse using that Python version's grammar. For " +"example, setting ``feature_version=(3, 9)`` will attempt to disallow parsing " +"of :keyword:`match` statements. Currently ``major`` must equal to ``3``. The " +"lowest supported version is ``(3, 7)`` (and this may increase in future " +"Python versions); the highest is ``sys.version_info[0:2]``. \"Best-effort\" " +"attempt means there is no guarantee that the parse (or success of the parse) " +"is the same as when run on the Python version corresponding to " +"``feature_version``." +msgstr "" + +#: ../../library/ast.rst:2247 +msgid "" +"If source contains a null character (``\\0``), :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/ast.rst:2250 +msgid "" +"Note that successfully parsing source code into an AST object doesn't " +"guarantee that the source code provided is valid Python code that can be " +"executed as the compilation step can raise further :exc:`SyntaxError` " +"exceptions. For instance, the source ``return 42`` generates a valid AST " +"node for a return statement, but it cannot be compiled alone (it needs to be " +"inside a function node)." +msgstr "" + +#: ../../library/ast.rst:2257 +msgid "" +"In particular, :func:`ast.parse` won't do any scoping checks, which the " +"compilation step does." +msgstr "" + +#: ../../library/ast.rst:2261 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string due to stack depth limitations in Python's AST compiler." +msgstr "" + +#: ../../library/ast.rst:2265 +msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." +msgstr "" + +#: ../../library/ast.rst:2268 +msgid "" +"The minimum supported version for ``feature_version`` is now ``(3, 7)``. The " +"``optimize`` argument was added." +msgstr "" + +#: ../../library/ast.rst:2275 +msgid "" +"Unparse an :class:`ast.AST` object and generate a string with code that " +"would produce an equivalent :class:`ast.AST` object if parsed back " +"with :func:`ast.parse`." +msgstr "" + +#: ../../library/ast.rst:2280 +msgid "" +"The produced code string will not necessarily be equal to the original code " +"that generated the :class:`ast.AST` object (without any compiler " +"optimizations, such as constant tuples/frozensets)." +msgstr "" + +#: ../../library/ast.rst:2285 +msgid "" +"Trying to unparse a highly complex expression would result " +"with :exc:`RecursionError`." +msgstr "" + +#: ../../library/ast.rst:2293 +msgid "" +"Evaluate an expression node or a string containing only a Python literal or " +"container display. The string or node provided may only consist of the " +"following Python literal structures: strings, bytes, numbers, tuples, lists, " +"dicts, sets, booleans, ``None`` and ``Ellipsis``." +msgstr "" + +#: ../../library/ast.rst:2298 +msgid "" +"This can be used for evaluating strings containing Python values without the " +"need to parse the values oneself. It is not capable of evaluating " +"arbitrarily complex expressions, for example involving operators or indexing." +msgstr "" + +#: ../../library/ast.rst:2303 +msgid "" +"This function had been documented as \"safe\" in the past without defining " +"what that meant. That was misleading. This is specifically designed not to " +"execute Python code, unlike the more general :func:`eval`. There is no " +"namespace, no name lookups, or ability to call out. But it is not free from " +"attack: A relatively small input can lead to memory exhaustion or to C stack " +"exhaustion, crashing the process. There is also the possibility for " +"excessive CPU consumption denial of service on some inputs. Calling it on " +"untrusted data is thus not recommended." +msgstr "" + +#: ../../library/ast.rst:2313 +msgid "" +"It is possible to crash the Python interpreter due to stack depth " +"limitations in Python's AST compiler." +msgstr "" + +#: ../../library/ast.rst:2316 +msgid "" +"It can " +"raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:`MemoryError` " +"and :exc:`RecursionError` depending on the malformed input." +msgstr "" + +#: ../../library/ast.rst:2320 +msgid "Now allows bytes and set literals." +msgstr "" + +#: ../../library/ast.rst:2323 +msgid "Now supports creating empty sets with ``'set()'``." +msgstr "" + +#: ../../library/ast.rst:2326 +msgid "For string inputs, leading spaces and tabs are now stripped." +msgstr "" + +#: ../../library/ast.rst:2332 +msgid "" +"Return the docstring of the given *node* (which must be " +"a :class:`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, " +"or :class:`Module` node), or ``None`` if it has no docstring. If *clean* is " +"true, clean up the docstring's indentation with :func:`inspect.cleandoc`." +msgstr "" + +#: ../../library/ast.rst:2338 +msgid ":class:`AsyncFunctionDef` is now supported." +msgstr "" + +#: ../../library/ast.rst:2344 +msgid "" +"Get source code segment of the *source* that generated *node*. If some " +"location information " +"(:attr:`~ast.AST.lineno`, :attr:`~ast.AST.end_lineno`, :attr:`~ast.AST.col_offset`, " +"or :attr:`~ast.AST.end_col_offset`) is missing, return ``None``." +msgstr "" + +#: ../../library/ast.rst:2348 +msgid "" +"If *padded* is ``True``, the first line of a multi-line statement will be " +"padded with spaces to match its original position." +msgstr "" + +#: ../../library/ast.rst:2356 +msgid "" +"When you compile a node tree with :func:`compile`, the compiler " +"expects :attr:`~ast.AST.lineno` and :attr:`~ast.AST.col_offset` attributes " +"for every node that supports them. This is rather tedious to fill in for " +"generated nodes, so this helper adds these attributes recursively where not " +"already set, by setting them to the values of the parent node. It works " +"recursively starting at *node*." +msgstr "" + +#: ../../library/ast.rst:2365 +msgid "" +"Increment the line number and end line number of each node in the tree " +"starting at *node* by *n*. This is useful to \"move code\" to a different " +"location in a file." +msgstr "" + +#: ../../library/ast.rst:2372 +msgid "" +"Copy source location " +"(:attr:`~ast.AST.lineno`, :attr:`~ast.AST.col_offset`, :attr:`~ast.AST.end_lineno`, " +"and :attr:`~ast.AST.end_col_offset`) from *old_node* to *new_node* if " +"possible, and return *new_node*." +msgstr "" + +#: ../../library/ast.rst:2379 +msgid "" +"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " +"that is present on *node*." +msgstr "" + +#: ../../library/ast.rst:2385 +msgid "" +"Yield all direct child nodes of *node*, that is, all fields that are nodes " +"and all items of fields that are lists of nodes." +msgstr "" + +#: ../../library/ast.rst:2391 +msgid "" +"Recursively yield all descendant nodes in the tree starting at *node* " +"(including *node* itself), in no specified order. This is useful if you " +"only want to modify nodes in place and don't care about the context." +msgstr "" + +#: ../../library/ast.rst:2398 +msgid "" +"A node visitor base class that walks the abstract syntax tree and calls a " +"visitor function for every node found. This function may return a value " +"which is forwarded by the :meth:`visit` method." +msgstr "" + +#: ../../library/ast.rst:2402 +msgid "" +"This class is meant to be subclassed, with the subclass adding visitor " +"methods." +msgstr "" + +#: ../../library/ast.rst:2407 +msgid "" +"Visit a node. The default implementation calls the method " +"called :samp:`self.visit_{classname}` where *classname* is the name of the " +"node class, or :meth:`generic_visit` if that method doesn't exist." +msgstr "" + +#: ../../library/ast.rst:2413 +msgid "This visitor calls :meth:`visit` on all children of the node." +msgstr "" + +#: ../../library/ast.rst:2415 +msgid "" +"Note that child nodes of nodes that have a custom visitor method won't be " +"visited unless the visitor calls :meth:`generic_visit` or visits them itself." +msgstr "" + +#: ../../library/ast.rst:2421 +msgid "Handles all constant nodes." +msgstr "" + +#: ../../library/ast.rst:2423 +msgid "" +"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " +"during traversal. For this a special visitor exists " +"(:class:`NodeTransformer`) that allows modifications." +msgstr "" + +#: ../../library/ast.rst:2429 +msgid "" +"Methods :meth:`!visit_Num`, :meth:`!visit_Str`, :meth:`!" +"visit_Bytes`, :meth:`!visit_NameConstant` and :meth:`!visit_Ellipsis` are " +"deprecated now and will not be called in future Python versions. Add " +"the :meth:`visit_Constant` method to handle all constant nodes." +msgstr "" + +#: ../../library/ast.rst:2437 +msgid "" +"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " +"allows modification of nodes." +msgstr "" + +#: ../../library/ast.rst:2440 +msgid "" +"The :class:`NodeTransformer` will walk the AST and use the return value of " +"the visitor methods to replace or remove the old node. If the return value " +"of the visitor method is ``None``, the node will be removed from its " +"location, otherwise it is replaced with the return value. The return value " +"may be the original node in which case no replacement takes place." +msgstr "" + +#: ../../library/ast.rst:2446 +msgid "" +"Here is an example transformer that rewrites all occurrences of name lookups " +"(``foo``) to ``data['foo']``::" +msgstr "" + +#: ../../library/ast.rst:2449 +msgid "" +"class RewriteName(NodeTransformer):\n" +"\n" +" def visit_Name(self, node):\n" +" return Subscript(\n" +" value=Name(id='data', ctx=Load()),\n" +" slice=Constant(value=node.id),\n" +" ctx=node.ctx\n" +" )" +msgstr "" + +#: ../../library/ast.rst:2458 +msgid "" +"Keep in mind that if the node you're operating on has child nodes you must " +"either transform the child nodes yourself or call " +"the :meth:`~ast.NodeVisitor.generic_visit` method for the node first." +msgstr "" + +#: ../../library/ast.rst:2462 +msgid "" +"For nodes that were part of a collection of statements (that applies to all " +"statement nodes), the visitor may also return a list of nodes rather than " +"just a single node." +msgstr "" + +#: ../../library/ast.rst:2466 +msgid "" +"If :class:`NodeTransformer` introduces new nodes (that weren't part of " +"original tree) without giving them location information (such " +"as :attr:`~ast.AST.lineno`), :func:`fix_missing_locations` should be called " +"with the new sub-tree to recalculate the location information::" +msgstr "" + +#: ../../library/ast.rst:2471 +msgid "" +"tree = ast.parse('foo', mode='eval')\n" +"new_tree = fix_missing_locations(RewriteName().visit(tree))" +msgstr "" + +#: ../../library/ast.rst:2474 +msgid "Usually you use the transformer like this::" +msgstr "" + +#: ../../library/ast.rst:2476 +msgid "node = YourTransformer().visit(node)" +msgstr "" + +#: ../../library/ast.rst:2481 +msgid "" +"Return a formatted dump of the tree in *node*. This is mainly useful for " +"debugging purposes. If *annotate_fields* is true (by default), the returned " +"string will show the names and the values for fields. If *annotate_fields* " +"is false, the result string will be more compact by omitting unambiguous " +"field names. Attributes such as line numbers and column offsets are not " +"dumped by default. If this is wanted, *include_attributes* can be set to " +"true." +msgstr "" + +#: ../../library/ast.rst:2489 +msgid "" +"If *indent* is a non-negative integer or string, then the tree will be " +"pretty-printed with that indent level. An indent level of 0, negative, or " +"``\"\"`` will only insert newlines. ``None`` (the default) selects the " +"single line representation. Using a positive integer indent indents that " +"many spaces per level. If *indent* is a string (such as ``\"\\t\"``), that " +"string is used to indent each level." +msgstr "" + +#: ../../library/ast.rst:2496 +msgid "" +"If *show_empty* is false (the default), optional empty lists will be omitted " +"from the output. Optional ``None`` values are always omitted." +msgstr "" + +#: ../../library/ast.rst:2500 +msgid "Added the *indent* option." +msgstr "" + +#: ../../library/ast.rst:2503 +msgid "Added the *show_empty* option." +msgstr "" + +#: ../../library/ast.rst:2506 +msgid "" +">>> print(ast.dump(ast.parse(\"\"\"\\\n" +"... async def f():\n" +"... await other_func()\n" +"... \"\"\"), indent=4, show_empty=True))\n" +"Module(\n" +" body=[\n" +" AsyncFunctionDef(\n" +" name='f',\n" +" args=arguments(\n" +" posonlyargs=[],\n" +" args=[],\n" +" kwonlyargs=[],\n" +" kw_defaults=[],\n" +" defaults=[]),\n" +" body=[\n" +" Expr(\n" +" value=Await(\n" +" value=Call(\n" +" func=Name(id='other_func', ctx=Load()),\n" +" args=[],\n" +" keywords=[])))],\n" +" decorator_list=[],\n" +" type_params=[])],\n" +" type_ignores=[])" +msgstr "" + +#: ../../library/ast.rst:2537 +msgid "Compiler flags" +msgstr "" + +#: ../../library/ast.rst:2539 +msgid "" +"The following flags may be passed to :func:`compile` in order to change " +"effects on the compilation of a program:" +msgstr "" + +#: ../../library/ast.rst:2544 +msgid "" +"Enables support for top-level ``await``, ``async for``, ``async with`` and " +"async comprehensions." +msgstr "" + +#: ../../library/ast.rst:2551 +msgid "" +"Generates and returns an abstract syntax tree instead of returning a " +"compiled code object." +msgstr "" + +#: ../../library/ast.rst:2556 +msgid "" +"The returned AST is optimized according to the *optimize* argument " +"in :func:`compile` or :func:`ast.parse`." +msgstr "" + +#: ../../library/ast.rst:2563 +msgid "" +"Enables support for :pep:`484` and :pep:`526` style type comments (``# type: " +"``, ``# type: ignore ``)." +msgstr "" + +#: ../../library/ast.rst:2571 +msgid "Recursively compares two ASTs." +msgstr "" + +#: ../../library/ast.rst:2573 +msgid "" +"*compare_attributes* affects whether AST attributes are considered in the " +"comparison. If *compare_attributes* is ``False`` (default), then attributes " +"are ignored. Otherwise they must all be equal. This option is useful to " +"check whether the ASTs are structurally equal but differ in whitespace or " +"similar details. Attributes include line numbers and column offsets." +msgstr "" + +#: ../../library/ast.rst:2586 +msgid "Command-line usage" +msgstr "" + +#: ../../library/ast.rst:2590 +msgid "" +"The :mod:`ast` module can be executed as a script from the command line. It " +"is as simple as:" +msgstr "" + +#: ../../library/ast.rst:2593 +msgid "python -m ast [-m ] [-a] [infile]" +msgstr "" + +#: ../../library/ast.rst:2597 +msgid "The following options are accepted:" +msgstr "" + +#: ../../library/ast.rst:2603 +msgid "Show the help message and exit." +msgstr "" + +#: ../../library/ast.rst:2608 +msgid "" +"Specify what kind of code must be compiled, like the *mode* argument " +"in :func:`parse`." +msgstr "" + +#: ../../library/ast.rst:2613 +msgid "Don't parse type comments." +msgstr "" + +#: ../../library/ast.rst:2617 +msgid "Include attributes such as line numbers and column offsets." +msgstr "" + +#: ../../library/ast.rst:2622 +msgid "Indentation of nodes in AST (number of spaces)." +msgstr "" + +#: ../../library/ast.rst:2626 +msgid "" +"Python version in the format 3.x (for example, 3.10). Defaults to the " +"current version of the interpreter." +msgstr "" + +#: ../../library/ast.rst:2634 +msgid "Optimization level for parser. Defaults to no optimization." +msgstr "" + +#: ../../library/ast.rst:2640 +msgid "" +"Show empty lists and fields that are ``None``. Defaults to not showing empty " +"objects." +msgstr "" + +#: ../../library/ast.rst:2646 +msgid "" +"If :file:`infile` is specified its contents are parsed to AST and dumped to " +"stdout. Otherwise, the content is read from stdin." +msgstr "" + +#: ../../library/ast.rst:2652 +msgid "" +"`Green Tree Snakes `_, an external " +"documentation resource, has good details on working with Python ASTs." +msgstr "" + +#: ../../library/ast.rst:2655 +msgid "" +"`ASTTokens `_ " +"annotates Python ASTs with the positions of tokens and text in the source " +"code that generated them. This is helpful for tools that make source code " +"transformations." +msgstr "" + +#: ../../library/ast.rst:2660 +msgid "" +"`leoAst.py `_ unifies the token-based and parse-tree-based views of python programs " +"by inserting two-way links between tokens and ast nodes." +msgstr "" + +#: ../../library/ast.rst:2665 +msgid "" +"`LibCST `_ parses code as a Concrete Syntax " +"Tree that looks like an ast tree and keeps all formatting details. It's " +"useful for building automated refactoring (codemod) applications and linters." +msgstr "" + +#: ../../library/ast.rst:2670 +msgid "" +"`Parso `_ is a Python parser that supports " +"error recovery and round-trip parsing for different Python versions (in " +"multiple Python versions). Parso is also able to list multiple syntax errors " +"in your Python file." +msgstr "" + +#: ../../library/ast.rst:59 +msgid "? (question mark)" +msgstr "" + +#: ../../library/ast.rst:59 ../../library/ast.rst:60 +msgid "in AST grammar" +msgstr "" + +#: ../../library/ast.rst:60 +msgid "* (asterisk)" +msgstr "" diff --git a/library/asynchat.po b/library/asynchat.po new file mode 100644 index 0000000..66fd0b4 --- /dev/null +++ b/library/asynchat.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asynchat.rst:2 +msgid ":mod:`!asynchat` --- Asynchronous socket command/response handler" +msgstr "" + +#: ../../library/asynchat.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.12 ` after being " +"deprecated in Python 3.6. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/asynchat.rst:14 +msgid "Applications should use the :mod:`asyncio` module instead." +msgstr "" + +#: ../../library/asynchat.rst:16 +msgid "" +"The last version of Python that provided the :mod:`!asynchat` module was " +"`Python 3.11 `_." +msgstr "" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po new file mode 100644 index 0000000..09a5722 --- /dev/null +++ b/library/asyncio-api-index.po @@ -0,0 +1,446 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-api-index.rst:6 +msgid "High-level API Index" +msgstr "" + +#: ../../library/asyncio-api-index.rst:8 +msgid "This page lists all high-level async/await enabled asyncio APIs." +msgstr "" + +#: ../../library/asyncio-api-index.rst:12 +msgid "Tasks" +msgstr "" + +#: ../../library/asyncio-api-index.rst:14 +msgid "" +"Utilities to run asyncio programs, create Tasks, and await on multiple " +"things with timeouts." +msgstr "" + +#: ../../library/asyncio-api-index.rst:21 +msgid ":func:`run`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:22 +msgid "Create event loop, run a coroutine, close the loop." +msgstr "" + +#: ../../library/asyncio-api-index.rst:24 +msgid ":class:`Runner`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:25 +msgid "A context manager that simplifies multiple async function calls." +msgstr "" + +#: ../../library/asyncio-api-index.rst:27 +msgid ":class:`Task`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:28 +msgid "Task object." +msgstr "" + +#: ../../library/asyncio-api-index.rst:30 +msgid ":class:`TaskGroup`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:31 +msgid "" +"A context manager that holds a group of tasks. Provides a convenient and " +"reliable way to wait for all tasks in the group to finish." +msgstr "" + +#: ../../library/asyncio-api-index.rst:35 +msgid ":func:`create_task`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:36 +msgid "Start an asyncio Task, then returns it." +msgstr "" + +#: ../../library/asyncio-api-index.rst:38 +msgid ":func:`current_task`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:39 +msgid "Return the current Task." +msgstr "" + +#: ../../library/asyncio-api-index.rst:41 +msgid ":func:`all_tasks`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:42 +msgid "Return all tasks that are not yet finished for an event loop." +msgstr "" + +#: ../../library/asyncio-api-index.rst:44 +msgid "``await`` :func:`sleep`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:45 +msgid "Sleep for a number of seconds." +msgstr "" + +#: ../../library/asyncio-api-index.rst:47 +msgid "``await`` :func:`gather`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:48 +msgid "Schedule and wait for things concurrently." +msgstr "" + +#: ../../library/asyncio-api-index.rst:50 +msgid "``await`` :func:`wait_for`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:51 +msgid "Run with a timeout." +msgstr "" + +#: ../../library/asyncio-api-index.rst:53 +msgid "``await`` :func:`shield`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:54 +msgid "Shield from cancellation." +msgstr "" + +#: ../../library/asyncio-api-index.rst:56 +msgid "``await`` :func:`wait`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:57 +msgid "Monitor for completion." +msgstr "" + +#: ../../library/asyncio-api-index.rst:59 +msgid ":func:`timeout`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:60 +msgid "Run with a timeout. Useful in cases when ``wait_for`` is not suitable." +msgstr "" + +#: ../../library/asyncio-api-index.rst:62 +msgid ":func:`to_thread`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:63 +msgid "Asynchronously run a function in a separate OS thread." +msgstr "" + +#: ../../library/asyncio-api-index.rst:65 +msgid ":func:`run_coroutine_threadsafe`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:66 +msgid "Schedule a coroutine from another OS thread." +msgstr "" + +#: ../../library/asyncio-api-index.rst:68 +msgid "``for in`` :func:`as_completed`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:69 +msgid "Monitor for completion with a ``for`` loop." +msgstr "" + +#: ../../library/asyncio-api-index.rst:73 +#: ../../library/asyncio-api-index.rst:109 +#: ../../library/asyncio-api-index.rst:133 +#: ../../library/asyncio-api-index.rst:169 +#: ../../library/asyncio-api-index.rst:205 +#: ../../library/asyncio-api-index.rst:230 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-api-index.rst:74 +msgid "" +":ref:`Using asyncio.gather() to run things in parallel " +"`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:77 +msgid "" +":ref:`Using asyncio.wait_for() to enforce a timeout " +"`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:80 +msgid ":ref:`Cancellation `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:82 +msgid ":ref:`Using asyncio.sleep() `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:84 +msgid "See also the main :ref:`Tasks documentation page `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:88 +msgid "Queues" +msgstr "" + +#: ../../library/asyncio-api-index.rst:90 +msgid "" +"Queues should be used to distribute work amongst multiple asyncio Tasks, " +"implement connection pools, and pub/sub patterns." +msgstr "" + +#: ../../library/asyncio-api-index.rst:98 +msgid ":class:`Queue`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:99 +msgid "A FIFO queue." +msgstr "" + +#: ../../library/asyncio-api-index.rst:101 +msgid ":class:`PriorityQueue`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:102 +msgid "A priority queue." +msgstr "" + +#: ../../library/asyncio-api-index.rst:104 +msgid ":class:`LifoQueue`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:105 +msgid "A LIFO queue." +msgstr "" + +#: ../../library/asyncio-api-index.rst:110 +msgid "" +":ref:`Using asyncio.Queue to distribute workload between several Tasks " +"`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:113 +msgid "See also the :ref:`Queues documentation page `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:117 +msgid "Subprocesses" +msgstr "" + +#: ../../library/asyncio-api-index.rst:119 +msgid "Utilities to spawn subprocesses and run shell commands." +msgstr "" + +#: ../../library/asyncio-api-index.rst:125 +msgid "``await`` :func:`create_subprocess_exec`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:126 +msgid "Create a subprocess." +msgstr "" + +#: ../../library/asyncio-api-index.rst:128 +msgid "``await`` :func:`create_subprocess_shell`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:129 +msgid "Run a shell command." +msgstr "" + +#: ../../library/asyncio-api-index.rst:134 +msgid ":ref:`Executing a shell command `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:136 +msgid "See also the :ref:`subprocess APIs ` documentation." +msgstr "" + +#: ../../library/asyncio-api-index.rst:141 +msgid "Streams" +msgstr "" + +#: ../../library/asyncio-api-index.rst:143 +msgid "High-level APIs to work with network IO." +msgstr "" + +#: ../../library/asyncio-api-index.rst:149 +msgid "``await`` :func:`open_connection`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:150 +msgid "Establish a TCP connection." +msgstr "" + +#: ../../library/asyncio-api-index.rst:152 +msgid "``await`` :func:`open_unix_connection`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:153 +msgid "Establish a Unix socket connection." +msgstr "" + +#: ../../library/asyncio-api-index.rst:155 +msgid "``await`` :func:`start_server`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:156 +msgid "Start a TCP server." +msgstr "" + +#: ../../library/asyncio-api-index.rst:158 +msgid "``await`` :func:`start_unix_server`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:159 +msgid "Start a Unix socket server." +msgstr "" + +#: ../../library/asyncio-api-index.rst:161 +msgid ":class:`StreamReader`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:162 +msgid "High-level async/await object to receive network data." +msgstr "" + +#: ../../library/asyncio-api-index.rst:164 +msgid ":class:`StreamWriter`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:165 +msgid "High-level async/await object to send network data." +msgstr "" + +#: ../../library/asyncio-api-index.rst:170 +msgid ":ref:`Example TCP client `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:172 +msgid "See also the :ref:`streams APIs ` documentation." +msgstr "" + +#: ../../library/asyncio-api-index.rst:177 +msgid "Synchronization" +msgstr "" + +#: ../../library/asyncio-api-index.rst:179 +msgid "Threading-like synchronization primitives that can be used in Tasks." +msgstr "" + +#: ../../library/asyncio-api-index.rst:185 +msgid ":class:`Lock`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:186 +msgid "A mutex lock." +msgstr "" + +#: ../../library/asyncio-api-index.rst:188 +msgid ":class:`Event`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:189 +msgid "An event object." +msgstr "" + +#: ../../library/asyncio-api-index.rst:191 +msgid ":class:`Condition`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:192 +msgid "A condition object." +msgstr "" + +#: ../../library/asyncio-api-index.rst:194 +msgid ":class:`Semaphore`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:195 +msgid "A semaphore." +msgstr "" + +#: ../../library/asyncio-api-index.rst:197 +msgid ":class:`BoundedSemaphore`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:198 +msgid "A bounded semaphore." +msgstr "" + +#: ../../library/asyncio-api-index.rst:200 +msgid ":class:`Barrier`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:201 +msgid "A barrier object." +msgstr "" + +#: ../../library/asyncio-api-index.rst:206 +msgid ":ref:`Using asyncio.Event `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:208 +msgid ":ref:`Using asyncio.Barrier `." +msgstr "" + +#: ../../library/asyncio-api-index.rst:210 +msgid "" +"See also the documentation of asyncio :ref:`synchronization primitives " +"`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:215 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/asyncio-api-index.rst:222 +msgid ":exc:`asyncio.CancelledError`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:223 +msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:225 +msgid ":exc:`asyncio.BrokenBarrierError`" +msgstr "" + +#: ../../library/asyncio-api-index.rst:226 +msgid "Raised when a Barrier is broken. See also :meth:`Barrier.wait`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:231 +msgid "" +":ref:`Handling CancelledError to run code on cancellation request " +"`." +msgstr "" + +#: ../../library/asyncio-api-index.rst:234 +msgid "" +"See also the full list of :ref:`asyncio-specific exceptions `." +msgstr "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po new file mode 100644 index 0000000..466493e --- /dev/null +++ b/library/asyncio-dev.po @@ -0,0 +1,373 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-dev.rst:7 +msgid "Developing with asyncio" +msgstr "" + +#: ../../library/asyncio-dev.rst:9 +msgid "" +"Asynchronous programming is different from classic \"sequential\" " +"programming." +msgstr "" + +#: ../../library/asyncio-dev.rst:12 +msgid "" +"This page lists common mistakes and traps and explains how to avoid them." +msgstr "" + +#: ../../library/asyncio-dev.rst:19 +msgid "Debug Mode" +msgstr "" + +#: ../../library/asyncio-dev.rst:21 +msgid "" +"By default asyncio runs in production mode. In order to ease the " +"development asyncio has a *debug mode*." +msgstr "" + +#: ../../library/asyncio-dev.rst:24 +msgid "There are several ways to enable asyncio debug mode:" +msgstr "" + +#: ../../library/asyncio-dev.rst:26 +msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." +msgstr "" + +#: ../../library/asyncio-dev.rst:28 +msgid "Using the :ref:`Python Development Mode `." +msgstr "" + +#: ../../library/asyncio-dev.rst:30 +msgid "Passing ``debug=True`` to :func:`asyncio.run`." +msgstr "" + +#: ../../library/asyncio-dev.rst:32 +msgid "Calling :meth:`loop.set_debug`." +msgstr "" + +#: ../../library/asyncio-dev.rst:34 +msgid "In addition to enabling the debug mode, consider also:" +msgstr "" + +#: ../../library/asyncio-dev.rst:36 +msgid "" +"setting the log level of the :ref:`asyncio logger ` " +"to :py:const:`logging.DEBUG`, for example the following snippet of code can " +"be run at startup of the application::" +msgstr "" + +#: ../../library/asyncio-dev.rst:40 +msgid "logging.basicConfig(level=logging.DEBUG)" +msgstr "" + +#: ../../library/asyncio-dev.rst:42 +msgid "" +"configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " +"warnings. One way of doing that is by using the :option:`-W` ``default`` " +"command line option." +msgstr "" + +#: ../../library/asyncio-dev.rst:47 +msgid "When the debug mode is enabled:" +msgstr "" + +#: ../../library/asyncio-dev.rst:49 +msgid "" +"Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` " +"and :meth:`loop.call_at` methods) raise an exception if they are called from " +"a wrong thread." +msgstr "" + +#: ../../library/asyncio-dev.rst:53 +msgid "" +"The execution time of the I/O selector is logged if it takes too long to " +"perform an I/O operation." +msgstr "" + +#: ../../library/asyncio-dev.rst:56 +msgid "" +"Callbacks taking longer than 100 milliseconds are logged. " +"The :attr:`loop.slow_callback_duration` attribute can be used to set the " +"minimum execution duration in seconds that is considered \"slow\"." +msgstr "" + +#: ../../library/asyncio-dev.rst:64 +msgid "Concurrency and Multithreading" +msgstr "" + +#: ../../library/asyncio-dev.rst:66 +msgid "" +"An event loop runs in a thread (typically the main thread) and executes all " +"callbacks and Tasks in its thread. While a Task is running in the event " +"loop, no other Tasks can run in the same thread. When a Task executes an " +"``await`` expression, the running Task gets suspended, and the event loop " +"executes the next Task." +msgstr "" + +#: ../../library/asyncio-dev.rst:72 +msgid "" +"To schedule a :term:`callback` from another OS thread, " +"the :meth:`loop.call_soon_threadsafe` method should be used. Example::" +msgstr "" + +#: ../../library/asyncio-dev.rst:75 +msgid "loop.call_soon_threadsafe(callback, *args)" +msgstr "" + +#: ../../library/asyncio-dev.rst:77 +msgid "" +"Almost all asyncio objects are not thread safe, which is typically not a " +"problem unless there is code that works with them from outside of a Task or " +"a callback. If there's a need for such code to call a low-level asyncio " +"API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" +msgstr "" + +#: ../../library/asyncio-dev.rst:83 +msgid "loop.call_soon_threadsafe(fut.cancel)" +msgstr "" + +#: ../../library/asyncio-dev.rst:85 +msgid "" +"To schedule a coroutine object from a different OS thread, " +"the :func:`run_coroutine_threadsafe` function should be used. It returns " +"a :class:`concurrent.futures.Future` to access the result::" +msgstr "" + +#: ../../library/asyncio-dev.rst:89 +msgid "" +"async def coro_func():\n" +" return await asyncio.sleep(1, 42)\n" +"\n" +"# Later in another OS thread:\n" +"\n" +"future = asyncio.run_coroutine_threadsafe(coro_func(), loop)\n" +"# Wait for the result:\n" +"result = future.result()" +msgstr "" + +#: ../../library/asyncio-dev.rst:98 +msgid "To handle signals the event loop must be run in the main thread." +msgstr "" + +#: ../../library/asyncio-dev.rst:101 +msgid "" +"The :meth:`loop.run_in_executor` method can be used with " +"a :class:`concurrent.futures.ThreadPoolExecutor` " +"or :class:`~concurrent.futures.InterpreterPoolExecutor` to execute blocking " +"code in a different OS thread without blocking the OS thread that the event " +"loop runs in." +msgstr "" + +#: ../../library/asyncio-dev.rst:107 +msgid "" +"There is currently no way to schedule coroutines or callbacks directly from " +"a different process (such as one started with :mod:`multiprocessing`). " +"The :ref:`asyncio-event-loop-methods` section lists APIs that can read from " +"pipes and watch file descriptors without blocking the event loop. In " +"addition, asyncio's :ref:`Subprocess ` APIs provide a " +"way to start a process and communicate with it from the event loop. Lastly, " +"the aforementioned :meth:`loop.run_in_executor` method can also be used with " +"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a " +"different process." +msgstr "" + +#: ../../library/asyncio-dev.rst:121 +msgid "Running Blocking Code" +msgstr "" + +#: ../../library/asyncio-dev.rst:123 +msgid "" +"Blocking (CPU-bound) code should not be called directly. For example, if a " +"function performs a CPU-intensive calculation for 1 second, all concurrent " +"asyncio Tasks and IO operations would be delayed by 1 second." +msgstr "" + +#: ../../library/asyncio-dev.rst:128 +msgid "" +"An executor can be used to run a task in a different thread, including in a " +"different interpreter, or even in a different process to avoid blocking the " +"OS thread with the event loop. See the :meth:`loop.run_in_executor` method " +"for more details." +msgstr "" + +#: ../../library/asyncio-dev.rst:138 +msgid "Logging" +msgstr "Naplózás" + +#: ../../library/asyncio-dev.rst:140 +msgid "" +"asyncio uses the :mod:`logging` module and all logging is performed via the " +"``\"asyncio\"`` logger." +msgstr "" + +#: ../../library/asyncio-dev.rst:143 +msgid "" +"The default log level is :py:const:`logging.INFO`, which can be easily " +"adjusted::" +msgstr "" + +#: ../../library/asyncio-dev.rst:146 +msgid "logging.getLogger(\"asyncio\").setLevel(logging.WARNING)" +msgstr "" + +#: ../../library/asyncio-dev.rst:149 +msgid "" +"Network logging can block the event loop. It is recommended to use a " +"separate thread for handling logs or use non-blocking IO. For example, " +"see :ref:`blocking-handlers`." +msgstr "" + +#: ../../library/asyncio-dev.rst:157 +msgid "Detect never-awaited coroutines" +msgstr "" + +#: ../../library/asyncio-dev.rst:159 +msgid "" +"When a coroutine function is called, but not awaited (e.g. ``coro()`` " +"instead of ``await coro()``) or the coroutine is not scheduled " +"with :meth:`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" +msgstr "" + +#: ../../library/asyncio-dev.rst:164 +msgid "" +"import asyncio\n" +"\n" +"async def test():\n" +" print(\"never scheduled\")\n" +"\n" +"async def main():\n" +" test()\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-dev.rst:174 ../../library/asyncio-dev.rst:219 +msgid "Output::" +msgstr "" + +#: ../../library/asyncio-dev.rst:176 +msgid "" +"test.py:7: RuntimeWarning: coroutine 'test' was never awaited\n" +" test()" +msgstr "" + +#: ../../library/asyncio-dev.rst:179 ../../library/asyncio-dev.rst:235 +msgid "Output in debug mode::" +msgstr "" + +#: ../../library/asyncio-dev.rst:181 +msgid "" +"test.py:7: RuntimeWarning: coroutine 'test' was never awaited\n" +"Coroutine created at (most recent call last)\n" +" File \"../t.py\", line 9, in \n" +" asyncio.run(main(), debug=True)\n" +"\n" +" < .. >\n" +"\n" +" File \"../t.py\", line 7, in main\n" +" test()\n" +" test()" +msgstr "" + +#: ../../library/asyncio-dev.rst:192 +msgid "" +"The usual fix is to either await the coroutine or call " +"the :meth:`asyncio.create_task` function::" +msgstr "" + +#: ../../library/asyncio-dev.rst:195 +msgid "" +"async def main():\n" +" await test()" +msgstr "" + +#: ../../library/asyncio-dev.rst:200 +msgid "Detect never-retrieved exceptions" +msgstr "" + +#: ../../library/asyncio-dev.rst:202 +msgid "" +"If a :meth:`Future.set_exception` is called but the Future object is never " +"awaited on, the exception would never be propagated to the user code. In " +"this case, asyncio would emit a log message when the Future object is " +"garbage collected." +msgstr "" + +#: ../../library/asyncio-dev.rst:207 +msgid "Example of an unhandled exception::" +msgstr "" + +#: ../../library/asyncio-dev.rst:209 +msgid "" +"import asyncio\n" +"\n" +"async def bug():\n" +" raise Exception(\"not consumed\")\n" +"\n" +"async def main():\n" +" asyncio.create_task(bug())\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-dev.rst:221 +msgid "" +"Task exception was never retrieved\n" +"future: \n" +" exception=Exception('not consumed')>\n" +"\n" +"Traceback (most recent call last):\n" +" File \"test.py\", line 4, in bug\n" +" raise Exception(\"not consumed\")\n" +"Exception: not consumed" +msgstr "" + +#: ../../library/asyncio-dev.rst:230 +msgid "" +":ref:`Enable the debug mode ` to get the traceback where " +"the task was created::" +msgstr "" + +#: ../../library/asyncio-dev.rst:233 +msgid "asyncio.run(main(), debug=True)" +msgstr "" + +#: ../../library/asyncio-dev.rst:237 +msgid "" +"Task exception was never retrieved\n" +"future: \n" +" exception=Exception('not consumed') created at asyncio/tasks.py:321>\n" +"\n" +"source_traceback: Object created at (most recent call last):\n" +" File \"../t.py\", line 9, in \n" +" asyncio.run(main(), debug=True)\n" +"\n" +"< .. >\n" +"\n" +"Traceback (most recent call last):\n" +" File \"../t.py\", line 4, in bug\n" +" raise Exception(\"not consumed\")\n" +"Exception: not consumed" +msgstr "" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po new file mode 100644 index 0000000..c1ec416 --- /dev/null +++ b/library/asyncio-eventloop.po @@ -0,0 +1,2577 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-eventloop.rst:8 +msgid "Event Loop" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:10 +msgid "" +"**Source code:** :source:`Lib/asyncio/events.py`, :source:`Lib/asyncio/" +"base_events.py`" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:16 +msgid "Preface" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:17 +msgid "" +"The event loop is the core of every asyncio application. Event loops run " +"asynchronous tasks and callbacks, perform network IO operations, and run " +"subprocesses." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:21 +msgid "" +"Application developers should typically use the high-level asyncio " +"functions, such as :func:`asyncio.run`, and should rarely need to reference " +"the loop object or call its methods. This section is intended mostly for " +"authors of lower-level code, libraries, and frameworks, who need finer " +"control over the event loop behavior." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:28 +msgid "Obtaining the Event Loop" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:29 +msgid "" +"The following low-level functions can be used to get, set, or create an " +"event loop:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:34 +msgid "Return the running event loop in the current OS thread." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:36 +msgid "Raise a :exc:`RuntimeError` if there is no running event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:38 +msgid "This function can only be called from a coroutine or a callback." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:44 +msgid "Get the current event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:46 +msgid "" +"When called from a coroutine or a callback (e.g. scheduled with call_soon or " +"similar API), this function will always return the running event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:50 +msgid "" +"If there is no running event loop set, the function will return the result " +"of the ``get_event_loop_policy().get_event_loop()`` call." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:53 +msgid "" +"Because this function has rather complex behavior (especially when custom " +"event loop policies are in use), using the :func:`get_running_loop` function " +"is preferred to :func:`get_event_loop` in coroutines and callbacks." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:58 +msgid "" +"As noted above, consider using the higher-level :func:`asyncio.run` " +"function, instead of using these lower level functions to manually create " +"and close an event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:62 +msgid "Raises a :exc:`RuntimeError` if there is no current event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:67 +msgid "" +"The :mod:`!asyncio` policy system is deprecated and will be removed in " +"Python 3.16; from there on, this function will return the current running " +"event loop if present else it will return the loop set " +"by :func:`set_event_loop`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:74 +msgid "Set *loop* as the current event loop for the current OS thread." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:78 +msgid "Create and return a new event loop object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:80 +msgid "" +"Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " +"and :func:`new_event_loop` functions can be altered by :ref:`setting a " +"custom event loop policy `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:86 +msgid "Contents" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:87 +msgid "This documentation page contains the following sections:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:89 +msgid "" +"The `Event Loop Methods`_ section is the reference documentation of the " +"event loop APIs;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:92 +msgid "" +"The `Callback Handles`_ section documents the :class:`Handle` " +"and :class:`TimerHandle` instances which are returned from scheduling " +"methods such as :meth:`loop.call_soon` and :meth:`loop.call_later`;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:96 +msgid "" +"The `Server Objects`_ section documents types returned from event loop " +"methods like :meth:`loop.create_server`;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:99 +msgid "" +"The `Event Loop Implementations`_ section documents " +"the :class:`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:102 +msgid "" +"The `Examples`_ section showcases how to work with some event loop APIs." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:109 +msgid "Event Loop Methods" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:111 +msgid "Event loops have **low-level** APIs for the following:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:119 +msgid "Running and stopping the loop" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:123 +msgid "Run until the *future* (an instance of :class:`Future`) has completed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:126 +msgid "" +"If the argument is a :ref:`coroutine object ` it is implicitly " +"scheduled to run as a :class:`asyncio.Task`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:129 +msgid "Return the Future's result or raise its exception." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:133 +msgid "Run the event loop until :meth:`stop` is called." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:135 +msgid "" +"If :meth:`stop` is called before :meth:`run_forever` is called, the loop " +"will poll the I/O selector once with a timeout of zero, run all callbacks " +"scheduled in response to I/O events (and those that were already scheduled), " +"and then exit." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:140 +msgid "" +"If :meth:`stop` is called while :meth:`run_forever` is running, the loop " +"will run the current batch of callbacks and then exit. Note that new " +"callbacks scheduled by callbacks will not run in this case; instead, they " +"will run the next time :meth:`run_forever` or :meth:`run_until_complete` is " +"called." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:148 +msgid "Stop the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:152 +msgid "Return ``True`` if the event loop is currently running." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:156 +msgid "Return ``True`` if the event loop was closed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:160 +msgid "Close the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:162 +msgid "" +"The loop must not be running when this function is called. Any pending " +"callbacks will be discarded." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:165 +msgid "" +"This method clears all queues and shuts down the executor, but does not wait " +"for the executor to finish." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:168 +msgid "" +"This method is idempotent and irreversible. No other methods should be " +"called after the event loop is closed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:174 +msgid "" +"Schedule all currently open :term:`asynchronous generator` objects to close " +"with an :meth:`~agen.aclose` call. After calling this method, the event " +"loop will issue a warning if a new asynchronous generator is iterated. This " +"should be used to reliably finalize all scheduled asynchronous generators." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:180 +msgid "" +"Note that there is no need to call this function when :func:`asyncio.run` is " +"used." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:183 +#: ../../library/asyncio-eventloop.rst:1336 +#: ../../library/asyncio-eventloop.rst:1792 +msgid "Example::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:185 +msgid "" +"try:\n" +" loop.run_forever()\n" +"finally:\n" +" loop.run_until_complete(loop.shutdown_asyncgens())\n" +" loop.close()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:196 +msgid "" +"Schedule the closure of the default executor and wait for it to join all of " +"the threads in the :class:`~concurrent.futures.ThreadPoolExecutor`. Once " +"this method has been called, using the default executor " +"with :meth:`loop.run_in_executor` will raise a :exc:`RuntimeError`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:202 +msgid "" +"The *timeout* parameter specifies the amount of time (in :class:`float` " +"seconds) the executor will be given to finish joining. With the default, " +"``None``, the executor is allowed an unlimited amount of time." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:207 +msgid "" +"If the *timeout* is reached, a :exc:`RuntimeWarning` is emitted and the " +"default executor is terminated without waiting for its threads to finish " +"joining." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:213 +msgid "" +"Do not call this method when using :func:`asyncio.run`, as the latter " +"handles default executor shutdown automatically." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:218 +msgid "Added the *timeout* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:222 +msgid "Scheduling callbacks" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:226 +msgid "" +"Schedule the *callback* :term:`callback` to be called with *args* arguments " +"at the next iteration of the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:229 +msgid "" +"Return an instance of :class:`asyncio.Handle`, which can be used later to " +"cancel the callback." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:232 +msgid "" +"Callbacks are called in the order in which they are registered. Each " +"callback will be called exactly once." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:235 +msgid "" +"The optional keyword-only *context* argument specifies a " +"custom :class:`contextvars.Context` for the *callback* to run in. Callbacks " +"use the current context when no *context* is provided." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:239 +msgid "Unlike :meth:`call_soon_threadsafe`, this method is not thread-safe." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:243 +msgid "" +"A thread-safe variant of :meth:`call_soon`. When scheduling callbacks from " +"another thread, this function *must* be used, since :meth:`call_soon` is not " +"thread-safe." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:247 +msgid "" +"This function is safe to be called from a reentrant context or signal " +"handler, however, it is not safe or fruitful to use the returned handle in " +"such contexts." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:250 +msgid "" +"Raises :exc:`RuntimeError` if called on a loop that's been closed. This can " +"happen on a secondary thread when the main application is shutting down." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:254 +msgid "" +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:257 +#: ../../library/asyncio-eventloop.rst:307 +#: ../../library/asyncio-eventloop.rst:327 +msgid "" +"The *context* keyword-only parameter was added. See :pep:`567` for more " +"details." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:265 +msgid "" +"Most :mod:`asyncio` scheduling functions don't allow passing keyword " +"arguments. To do that, use :func:`functools.partial`::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:268 +msgid "" +"# will schedule \"print(\"Hello\", flush=True)\"\n" +"loop.call_soon(\n" +" functools.partial(print, \"Hello\", flush=True))" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:272 +msgid "" +"Using partial objects is usually more convenient than using lambdas, as " +"asyncio can render partial objects better in debug and error messages." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:280 +msgid "Scheduling delayed callbacks" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:282 +msgid "" +"Event loop provides mechanisms to schedule callback functions to be called " +"at some point in the future. Event loop uses monotonic clocks to track time." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:289 +msgid "" +"Schedule *callback* to be called after the given *delay* number of seconds " +"(can be either an int or a float)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:292 +#: ../../library/asyncio-eventloop.rst:324 +msgid "" +"An instance of :class:`asyncio.TimerHandle` is returned which can be used to " +"cancel the callback." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:295 +msgid "" +"*callback* will be called exactly once. If two callbacks are scheduled for " +"exactly the same time, the order in which they are called is undefined." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:299 +msgid "" +"The optional positional *args* will be passed to the callback when it is " +"called. If you want the callback to be called with keyword arguments " +"use :func:`functools.partial`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:303 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the *callback* to run in. The " +"current context is used when no *context* is provided." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:311 +msgid "" +"In Python 3.7 and earlier with the default event loop implementation, the " +"*delay* could not exceed one day. This has been fixed in Python 3.8." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:318 +msgid "" +"Schedule *callback* to be called at the given absolute timestamp *when* (an " +"int or a float), using the same time reference as :meth:`loop.time`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:322 +msgid "This method's behavior is the same as :meth:`call_later`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:331 +msgid "" +"In Python 3.7 and earlier with the default event loop implementation, the " +"difference between *when* and the current time could not exceed one day. " +"This has been fixed in Python 3.8." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:338 +msgid "" +"Return the current time, as a :class:`float` value, according to the event " +"loop's internal monotonic clock." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:342 +msgid "" +"In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " +"should not exceed one day. This has been fixed in Python 3.8." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:348 +msgid "The :func:`asyncio.sleep` function." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:352 +msgid "Creating Futures and Tasks" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:356 +msgid "Create an :class:`asyncio.Future` object attached to the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:358 +msgid "" +"This is the preferred way to create Futures in asyncio. This lets third-" +"party event loops provide alternative implementations of the Future object " +"(with better performance or instrumentation)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:366 +msgid "" +"Schedule the execution of :ref:`coroutine ` *coro*. Return " +"a :class:`Task` object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:369 +msgid "" +"Third-party event loops can use their own subclass of :class:`Task` for " +"interoperability. In this case, the result type is a subclass " +"of :class:`Task`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:373 +msgid "" +"The full function signature is largely the same as that of the :class:`Task` " +"constructor (or factory) - all of the keyword arguments to this function are " +"passed through to that interface." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:377 +msgid "" +"If the *name* argument is provided and not ``None``, it is set as the name " +"of the task using :meth:`Task.set_name`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:380 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the *coro* to run in. The current " +"context copy is created when no *context* is provided." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:384 +msgid "" +"An optional keyword-only *eager_start* argument allows specifying if the " +"task should execute eagerly during the call to create_task, or be scheduled " +"later. If *eager_start* is not passed the mode set " +"by :meth:`loop.set_task_factory` will be used." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:389 +msgid "Added the *name* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:392 +msgid "Added the *context* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:395 +msgid "" +"Added ``kwargs`` which passes on arbitrary extra parameters, including " +"``name`` and ``context``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:398 +msgid "" +"Rolled back the change that passes on *name* and *context* (if it is None), " +"while still passing on other arbitrary keyword arguments (to avoid breaking " +"backwards compatibility with 3.13.3)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:402 +msgid "" +"All *kwargs* are now passed on. The *eager_start* parameter works with eager " +"task factories." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:407 +msgid "Set a task factory that will be used by :meth:`loop.create_task`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:410 +msgid "" +"If *factory* is ``None`` the default task factory will be set. Otherwise, " +"*factory* must be a *callable* with the signature matching ``(loop, coro, " +"**kwargs)``, where *loop* is a reference to the active event loop, and " +"*coro* is a coroutine object. The callable must pass on all *kwargs*, and " +"return a :class:`asyncio.Task`-compatible object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:416 +msgid "Required that all *kwargs* are passed on to :class:`asyncio.Task`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:419 +msgid "" +"*name* is no longer passed to task factories. *context* is no longer passed " +"to task factories if it is ``None``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:423 +msgid "" +"*name* and *context* are now unconditionally passed on to task factories " +"again." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:428 +msgid "Return a task factory or ``None`` if the default one is in use." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:432 +msgid "Opening network connections" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:444 +msgid "" +"Open a streaming transport connection to a given address specified by *host* " +"and *port*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:447 +msgid "" +"The socket family can be either :py:const:`~socket.AF_INET` " +"or :py:const:`~socket.AF_INET6` depending on *host* (or the *family* " +"argument, if provided)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:451 +msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:453 +#: ../../library/asyncio-eventloop.rst:1246 +#: ../../library/asyncio-eventloop.rst:1263 +msgid "" +"*protocol_factory* must be a callable returning an :ref:`asyncio protocol " +"` implementation." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:456 +msgid "" +"This method will try to establish the connection in the background. When " +"successful, it returns a ``(transport, protocol)`` pair." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:459 +msgid "The chronological synopsis of the underlying operation is as follows:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:461 +msgid "" +"The connection is established and a :ref:`transport ` is " +"created for it." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:464 +msgid "" +"*protocol_factory* is called without arguments and is expected to return " +"a :ref:`protocol ` instance." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:467 +msgid "" +"The protocol instance is coupled with the transport by calling " +"its :meth:`~BaseProtocol.connection_made` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:470 +msgid "A ``(transport, protocol)`` tuple is returned on success." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:472 +msgid "" +"The created transport is an implementation-dependent bidirectional stream." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:475 +#: ../../library/asyncio-eventloop.rst:608 +msgid "Other arguments:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:477 +msgid "" +"*ssl*: if given and not false, a SSL/TLS transport is created (by default a " +"plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " +"object, this context is used to create the transport; if *ssl* " +"is :const:`True`, a default context returned " +"from :func:`ssl.create_default_context` is used." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:483 +msgid ":ref:`SSL/TLS security considerations `" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:485 +msgid "" +"*server_hostname* sets or overrides the hostname that the target server's " +"certificate will be matched against. Should only be passed if *ssl* is not " +"``None``. By default the value of the *host* argument is used. If *host* " +"is empty, there is no default and you must pass a value for " +"*server_hostname*. If *server_hostname* is an empty string, hostname " +"matching is disabled (which is a serious security risk, allowing for " +"potential man-in-the-middle attacks)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:493 +msgid "" +"*family*, *proto*, *flags* are the optional address family, protocol and " +"flags to be passed through to getaddrinfo() for *host* resolution. If given, " +"these should all be integers from the corresponding :mod:`socket` module " +"constants." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:498 +msgid "" +"*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " +"connection. It should be a floating-point number representing the amount of " +"time in seconds to wait for a connection attempt to complete, before " +"starting the next attempt in parallel. This is the \"Connection Attempt " +"Delay\" as defined in :rfc:`8305`. A sensible default value recommended by " +"the RFC is ``0.25`` (250 milliseconds)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:506 +msgid "" +"*interleave* controls address reordering when a host name resolves to " +"multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " +"addresses are tried in the order returned by :meth:`getaddrinfo`. If a " +"positive integer is specified, the addresses are interleaved by address " +"family, and the given integer is interpreted as \"First Address Family " +"Count\" as defined in :rfc:`8305`. The default is ``0`` if " +"*happy_eyeballs_delay* is not specified, and ``1`` if it is." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:515 +msgid "" +"*sock*, if given, should be an existing, already " +"connected :class:`socket.socket` object to be used by the transport. If " +"*sock* is given, none of *host*, *port*, *family*, *proto*, *flags*, " +"*happy_eyeballs_delay*, *interleave* and *local_addr* should be specified." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:523 +#: ../../library/asyncio-eventloop.rst:639 +#: ../../library/asyncio-eventloop.rst:887 +msgid "" +"The *sock* argument transfers ownership of the socket to the transport " +"created. To close the socket, call the " +"transport's :meth:`~asyncio.BaseTransport.close` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:527 +msgid "" +"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " +"the socket locally. The *local_host* and *local_port* are looked up using " +"``getaddrinfo()``, similarly to *host* and *port*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:531 +#: ../../library/asyncio-eventloop.rst:983 +msgid "" +"*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " +"wait for the TLS handshake to complete before aborting the connection. " +"``60.0`` seconds if ``None`` (default)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:535 +#: ../../library/asyncio-eventloop.rst:794 +#: ../../library/asyncio-eventloop.rst:898 +#: ../../library/asyncio-eventloop.rst:987 +msgid "" +"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " +"to complete before aborting the connection. ``30.0`` seconds if ``None`` " +"(default)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:539 +msgid "" +"*all_errors* determines what exceptions are raised when a connection cannot " +"be created. By default, only a single ``Exception`` is raised: the first " +"exception if there is only one or all errors have same message, or a single " +"``OSError`` with the error messages combined. When ``all_errors`` is " +"``True``, an ``ExceptionGroup`` will be raised containing all exceptions " +"(even if there is only one)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:549 +#: ../../library/asyncio-eventloop.rst:806 +msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:553 +msgid "" +"The socket option :ref:`socket.TCP_NODELAY ` is set " +"by default for all TCP connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:558 +#: ../../library/asyncio-eventloop.rst:908 +msgid "Added the *ssl_handshake_timeout* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:562 +msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:564 +msgid "" +"Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " +"IPv4 path and protocol are working, but the server's IPv6 path and protocol " +"are not working, a dual-stack client application experiences significant " +"connection delay compared to an IPv4-only client. This is undesirable " +"because it causes the dual-stack client to have a worse user experience. " +"This document specifies requirements for algorithms that reduce this user-" +"visible delay and provides an algorithm." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:573 +msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:577 +#: ../../library/asyncio-eventloop.rst:703 +#: ../../library/asyncio-eventloop.rst:820 +#: ../../library/asyncio-eventloop.rst:860 +#: ../../library/asyncio-eventloop.rst:912 +#: ../../library/asyncio-eventloop.rst:995 +msgid "Added the *ssl_shutdown_timeout* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:579 +msgid "*all_errors* was added." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:584 +msgid "" +"The :func:`open_connection` function is a high-level alternative API. It " +"returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " +"used directly in async/await code." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:595 +msgid "Create a datagram connection." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:597 +msgid "" +"The socket family can be " +"either :py:const:`~socket.AF_INET`, :py:const:`~socket.AF_INET6`, " +"or :py:const:`~socket.AF_UNIX`, depending on *host* (or the *family* " +"argument, if provided)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:601 +msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:603 +#: ../../library/asyncio-eventloop.rst:730 +#: ../../library/asyncio-eventloop.rst:879 +msgid "" +"*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:606 +#: ../../library/asyncio-eventloop.rst:685 +msgid "A tuple of ``(transport, protocol)`` is returned on success." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:610 +msgid "" +"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " +"the socket locally. The *local_host* and *local_port* are looked up " +"using :meth:`getaddrinfo`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:614 +msgid "" +"*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " +"connect the socket to a remote address. The *remote_host* and *remote_port* " +"are looked up using :meth:`getaddrinfo`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:618 +msgid "" +"*family*, *proto*, *flags* are the optional address family, protocol and " +"flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " +"given, these should all be integers from the corresponding :mod:`socket` " +"module constants." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:623 +msgid "" +"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " +"port as other existing endpoints are bound to, so long as they all set this " +"flag when being created. This option is not supported on Windows and some " +"Unixes. If the :ref:`socket.SO_REUSEPORT ` constant " +"is not defined then this capability is unsupported." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:629 +msgid "" +"*allow_broadcast* tells the kernel to allow this endpoint to send messages " +"to the broadcast address." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:632 +msgid "" +"*sock* can optionally be specified in order to use a preexisting, already " +"connected, :class:`socket.socket` object to be used by the transport. If " +"specified, *local_addr* and *remote_addr* should be omitted (must " +"be :const:`None`)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:643 +msgid "" +"See :ref:`UDP echo client protocol ` " +"and :ref:`UDP echo server protocol ` " +"examples." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:646 +msgid "" +"The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " +"*allow_broadcast*, and *sock* parameters were added." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:650 +msgid "Added support for Windows." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:653 +msgid "" +"The *reuse_address* parameter is no longer supported, as " +"using :ref:`socket.SO_REUSEADDR ` poses a significant " +"security concern for UDP. Explicitly passing ``reuse_address=True`` will " +"raise an exception." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:659 +msgid "" +"When multiple processes with differing UIDs assign sockets to an identical " +"UDP socket address with ``SO_REUSEADDR``, incoming packets can become " +"randomly distributed among the sockets." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:663 +msgid "" +"For supported platforms, *reuse_port* can be used as a replacement for " +"similar functionality. With *reuse_port*, :ref:`socket.SO_REUSEPORT ` is used instead, which specifically prevents processes with " +"differing UIDs from assigning sockets to the same socket address." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:670 +msgid "" +"The *reuse_address* parameter, disabled since Python 3.8.1, 3.7.6 and " +"3.6.10, has been entirely removed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:680 +msgid "Create a Unix connection." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:682 +msgid "" +"The socket family will be :py:const:`~socket.AF_UNIX`; socket type will " +"be :py:const:`~socket.SOCK_STREAM`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:687 +msgid "" +"*path* is the name of a Unix domain socket and is required, unless a *sock* " +"parameter is specified. Abstract Unix " +"sockets, :class:`str`, :class:`bytes`, and :class:`~pathlib.Path` paths are " +"supported." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:692 +msgid "" +"See the documentation of the :meth:`loop.create_connection` method for " +"information about arguments to this method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:695 +#: ../../library/asyncio-eventloop.rst:851 +#: ../../library/asyncio-eventloop.rst:1316 +#: ../../library/asyncio-eventloop.rst:1862 +#: ../../library/asyncio-eventloop.rst:1869 +msgid "Availability" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:697 +msgid "" +"Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " +"a :term:`path-like object`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:707 +msgid "Creating network servers" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:723 +msgid "" +"Create a TCP server (socket type :const:`~socket.SOCK_STREAM`) listening on " +"*port* of the *host* address." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:726 +msgid "Returns a :class:`Server` object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:728 +msgid "Arguments:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:733 +msgid "" +"The *host* parameter can be set to several types which determine where the " +"server would be listening:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:736 +msgid "" +"If *host* is a string, the TCP server is bound to a single network interface " +"specified by *host*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:739 +msgid "" +"If *host* is a sequence of strings, the TCP server is bound to all network " +"interfaces specified by the sequence." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:742 +msgid "" +"If *host* is an empty string or ``None``, all interfaces are assumed and a " +"list of multiple sockets will be returned (most likely one for IPv4 and " +"another one for IPv6)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:746 +msgid "" +"The *port* parameter can be set to specify which port the server should " +"listen on. If ``0`` or ``None`` (the default), a random unused port will be " +"selected (note that if *host* resolves to multiple network interfaces, a " +"different random port will be selected for each interface)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:751 +msgid "" +"*family* can be set to either :const:`socket.AF_INET` " +"or :const:`~socket.AF_INET6` to force the socket to use IPv4 or IPv6. If not " +"set, the *family* will be determined from host name (defaults " +"to :const:`~socket.AF_UNSPEC`)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:756 +msgid "*flags* is a bitmask for :meth:`getaddrinfo`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:758 +msgid "" +"*sock* can optionally be specified in order to use a preexisting socket " +"object. If specified, *host* and *port* must not be specified." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:763 +msgid "" +"The *sock* argument transfers ownership of the socket to the server created. " +"To close the socket, call the server's :meth:`~asyncio.Server.close` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:767 +msgid "" +"*backlog* is the maximum number of queued connections passed " +"to :meth:`~socket.socket.listen` (defaults to 100)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:770 +msgid "" +"*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " +"the accepted connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:773 +msgid "" +"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " +"state, without waiting for its natural timeout to expire. If not specified " +"will automatically be set to ``True`` on Unix." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:778 +msgid "" +"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " +"port as other existing endpoints are bound to, so long as they all set this " +"flag when being created. This option is not supported on Windows." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:783 +msgid "" +"*keep_alive* set to ``True`` keeps connections active by enabling the " +"periodic transmission of messages." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:788 +msgid "Added the *keep_alive* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:790 +msgid "" +"*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " +"for the TLS handshake to complete before aborting the connection. ``60.0`` " +"seconds if ``None`` (default)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:798 +msgid "" +"*start_serving* set to ``True`` (the default) causes the created server to " +"start accepting connections immediately. When set to ``False``, the user " +"should await on :meth:`Server.start_serving` or :meth:`Server.serve_forever` " +"to make the server to start accepting connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:810 +msgid "The *host* parameter can be a sequence of strings." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:814 +msgid "" +"Added *ssl_handshake_timeout* and *start_serving* parameters. The socket " +"option :ref:`socket.TCP_NODELAY ` is set by default " +"for all TCP connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:824 +msgid "" +"The :func:`start_server` function is a higher-level alternative API that " +"returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " +"be used in an async/await code." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:836 +msgid "" +"Similar to :meth:`loop.create_server` but works with " +"the :py:const:`~socket.AF_UNIX` socket family." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:839 +msgid "" +"*path* is the name of a Unix domain socket, and is required, unless a *sock* " +"argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " +"and :class:`~pathlib.Path` paths are supported." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:844 +msgid "" +"If *cleanup_socket* is true then the Unix socket will automatically be " +"removed from the filesystem when the server is closed, unless the socket has " +"been replaced after the server has been created." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:848 +msgid "" +"See the documentation of the :meth:`loop.create_server` method for " +"information about arguments to this method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:855 +msgid "" +"Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " +"parameter can now be a :class:`~pathlib.Path` object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:864 +msgid "Added the *cleanup_socket* parameter." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:872 +msgid "Wrap an already accepted connection into a transport/protocol pair." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:874 +msgid "" +"This method can be used by servers that accept connections outside of " +"asyncio but that use asyncio to handle them." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:877 +#: ../../library/asyncio-eventloop.rst:969 +msgid "Parameters:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:882 +msgid "" +"*sock* is a preexisting socket object returned from :meth:`socket.accept " +"`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:891 +msgid "" +"*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " +"accepted connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:894 +msgid "" +"*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " +"wait for the SSL handshake to complete before aborting the connection. " +"``60.0`` seconds if ``None`` (default)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:902 +msgid "Returns a ``(transport, protocol)`` pair." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:916 +msgid "Transferring files" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:922 +msgid "" +"Send a *file* over a *transport*. Return the total number of bytes sent." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:925 +msgid "The method uses high-performance :meth:`os.sendfile` if available." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:927 +msgid "*file* must be a regular file object opened in binary mode." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:929 +#: ../../library/asyncio-eventloop.rst:1190 +msgid "" +"*offset* tells from where to start reading the file. If specified, *count* " +"is the total number of bytes to transmit as opposed to sending the file " +"until EOF is reached. File position is always updated, even when this method " +"raises an error, and :meth:`file.tell() ` can be used to " +"obtain the actual number of bytes sent." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:936 +msgid "" +"*fallback* set to ``True`` makes asyncio to manually read and send the file " +"when the platform does not support the sendfile system call (e.g. Windows or " +"SSL socket on Unix)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:940 +msgid "" +"Raise :exc:`SendfileNotAvailableError` if the system does not support the " +"*sendfile* syscall and *fallback* is ``False``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:947 +msgid "TLS Upgrade" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:955 +msgid "Upgrade an existing transport-based connection to TLS." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:957 +msgid "" +"Create a TLS coder/decoder instance and insert it between the *transport* " +"and the *protocol*. The coder/decoder implements both *transport*-facing " +"protocol and *protocol*-facing transport." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:961 +msgid "" +"Return the created two-interface instance. After *await*, the *protocol* " +"must stop using the original *transport* and communicate with the returned " +"object only because the coder caches *protocol*-side data and sporadically " +"exchanges extra TLS session packets with *transport*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:966 +msgid "" +"In some situations (e.g. when the passed transport is already closing) this " +"may return ``None``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:971 +msgid "" +"*transport* and *protocol* instances that methods " +"like :meth:`~loop.create_server` and :meth:`~loop.create_connection` return." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:975 +msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:977 +msgid "" +"*server_side* pass ``True`` when a server-side connection is being upgraded " +"(like the one created by :meth:`~loop.create_server`)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:980 +msgid "" +"*server_hostname*: sets or overrides the host name that the target server's " +"certificate will be matched against." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1000 +msgid "Watching file descriptors" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1004 +msgid "" +"Start monitoring the *fd* file descriptor for read availability and invoke " +"*callback* with the specified arguments once *fd* is available for reading." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1008 +#: ../../library/asyncio-eventloop.rst:1022 +msgid "" +"Any preexisting callback registered for *fd* is cancelled and replaced by " +"*callback*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1013 +msgid "" +"Stop monitoring the *fd* file descriptor for read availability. Returns " +"``True`` if *fd* was previously being monitored for reads." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1018 +msgid "" +"Start monitoring the *fd* file descriptor for write availability and invoke " +"*callback* with the specified arguments once *fd* is available for writing." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1025 +#: ../../library/asyncio-eventloop.rst:1303 +msgid "" +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1030 +msgid "" +"Stop monitoring the *fd* file descriptor for write availability. Returns " +"``True`` if *fd* was previously being monitored for writes." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1033 +msgid "" +"See also :ref:`Platform Support ` section for some " +"limitations of these methods." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1038 +msgid "Working with socket objects directly" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1040 +msgid "" +"In general, protocol implementations that use transport-based APIs such " +"as :meth:`loop.create_connection` and :meth:`loop.create_server` are faster " +"than implementations that work with sockets directly. However, there are " +"some use cases when performance is not critical, and working " +"with :class:`~socket.socket` objects directly is more convenient." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1050 +msgid "" +"Receive up to *nbytes* from *sock*. Asynchronous version " +"of :meth:`socket.recv() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1053 +msgid "Return the received data as a bytes object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1055 +#: ../../library/asyncio-eventloop.rst:1070 +#: ../../library/asyncio-eventloop.rst:1082 +#: ../../library/asyncio-eventloop.rst:1095 +#: ../../library/asyncio-eventloop.rst:1111 +#: ../../library/asyncio-eventloop.rst:1127 +#: ../../library/asyncio-eventloop.rst:1138 +#: ../../library/asyncio-eventloop.rst:1165 +#: ../../library/asyncio-eventloop.rst:1204 +msgid "*sock* must be a non-blocking socket." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1057 +msgid "" +"Even though this method was always documented as a coroutine method, " +"releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " +"is an ``async def`` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1065 +msgid "" +"Receive data from *sock* into the *buf* buffer. Modeled after the " +"blocking :meth:`socket.recv_into() ` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1068 +msgid "Return the number of bytes written to the buffer." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1077 +msgid "" +"Receive a datagram of up to *bufsize* from *sock*. Asynchronous version " +"of :meth:`socket.recvfrom() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1080 +msgid "Return a tuple of (received data, remote address)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1089 +msgid "" +"Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " +"version of :meth:`socket.recvfrom_into() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1093 +msgid "Return a tuple of (number of bytes received, remote address)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1102 +msgid "" +"Send *data* to the *sock* socket. Asynchronous version " +"of :meth:`socket.sendall() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1105 +msgid "" +"This method continues to send to the socket until either all data in *data* " +"has been sent or an error occurs. ``None`` is returned on success. On " +"error, an exception is raised. Additionally, there is no way to determine " +"how much data, if any, was successfully processed by the receiving end of " +"the connection." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1113 +#: ../../library/asyncio-eventloop.rst:1167 +msgid "" +"Even though the method was always documented as a coroutine method, before " +"Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " +"``async def`` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1121 +msgid "" +"Send a datagram from *sock* to *address*. Asynchronous version " +"of :meth:`socket.sendto() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1125 +msgid "Return the number of bytes sent." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1134 +msgid "Connect *sock* to a remote socket at *address*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1136 +msgid "" +"Asynchronous version of :meth:`socket.connect() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1140 +msgid "" +"``address`` no longer needs to be resolved. ``sock_connect`` will try to " +"check if the *address* is already resolved by " +"calling :func:`socket.inet_pton`. If not, :meth:`loop.getaddrinfo` will be " +"used to resolve the *address*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1149 +msgid "" +":meth:`loop.create_connection` and :func:`asyncio.open_connection() " +"`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1156 +msgid "" +"Accept a connection. Modeled after the blocking :meth:`socket.accept() " +"` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1159 +msgid "" +"The socket must be bound to an address and listening for connections. The " +"return value is a pair ``(conn, address)`` where *conn* is a *new* socket " +"object usable to send and receive data on the connection, and *address* is " +"the address bound to the socket on the other end of the connection." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1174 +msgid ":meth:`loop.create_server` and :func:`start_server`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1180 +msgid "" +"Send a file using high-performance :mod:`os.sendfile` if possible. Return " +"the total number of bytes sent." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1183 +msgid "" +"Asynchronous version of :meth:`socket.sendfile() `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1185 +msgid "" +"*sock* must be a non-" +"blocking :const:`socket.SOCK_STREAM` :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1188 +msgid "*file* must be a regular file object open in binary mode." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1197 +msgid "" +"*fallback*, when set to ``True``, makes asyncio manually read and send the " +"file when the platform does not support the sendfile syscall (e.g. Windows " +"or SSL socket on Unix)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1201 +msgid "" +"Raise :exc:`SendfileNotAvailableError` if the system does not support " +"*sendfile* syscall and *fallback* is ``False``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1210 +msgid "DNS" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1216 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1221 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1224 +msgid "" +"Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous " +"versions through the loop's default thread pool executor. When this executor " +"is saturated, these methods may experience delays, which higher-level " +"networking libraries may report as increased timeouts. To mitigate this, " +"consider using a custom executor for other user tasks, or setting a default " +"executor with a larger number of workers." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1231 +msgid "" +"Both *getaddrinfo* and *getnameinfo* methods were always documented to " +"return a coroutine, but prior to Python 3.7 they were, in fact, " +"returning :class:`asyncio.Future` objects. Starting with Python 3.7 both " +"methods are coroutines." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1239 +msgid "Working with pipes" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1244 +msgid "Register the read end of *pipe* in the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1249 +msgid "*pipe* is a :term:`file-like object `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1251 +msgid "" +"Return pair ``(transport, protocol)``, where *transport* supports " +"the :class:`ReadTransport` interface and *protocol* is an object " +"instantiated by the *protocol_factory*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1255 +#: ../../library/asyncio-eventloop.rst:1272 +msgid "" +"With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" +"blocking mode." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1261 +msgid "Register the write end of *pipe* in the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1266 +msgid "*pipe* is :term:`file-like object `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1268 +msgid "" +"Return pair ``(transport, protocol)``, where *transport* " +"supports :class:`WriteTransport` interface and *protocol* is an object " +"instantiated by the *protocol_factory*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1277 +msgid "" +":class:`SelectorEventLoop` does not support the above methods on Windows. " +"Use :class:`ProactorEventLoop` instead for Windows." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1282 +msgid "" +"The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1287 +msgid "Unix signals" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1293 +msgid "Set *callback* as the handler for the *signum* signal." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1295 +msgid "" +"The callback will be invoked by *loop*, along with other queued callbacks " +"and runnable coroutines of that event loop. Unlike signal handlers " +"registered using :func:`signal.signal`, a callback registered with this " +"function is allowed to interact with the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1300 +msgid "" +"Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " +"Raise :exc:`RuntimeError` if there is a problem setting up the handler." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1306 +msgid "" +"Like :func:`signal.signal`, this function must be invoked in the main thread." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1311 +msgid "Remove the handler for the *sig* signal." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1313 +msgid "" +"Return ``True`` if the signal handler was removed, or ``False`` if no " +"handler was set for the given signal." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1320 +msgid "The :mod:`signal` module." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1324 +msgid "Executing code in thread or process pools" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1328 +msgid "Arrange for *func* to be called in the specified executor." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1330 +msgid "" +"The *executor* argument should be an :class:`concurrent.futures.Executor` " +"instance. The default executor is used if *executor* is ``None``. The " +"default executor can be set by :meth:`loop.set_default_executor`, otherwise, " +"a :class:`concurrent.futures.ThreadPoolExecutor` will be lazy-initialized " +"and used by :func:`run_in_executor` if needed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1338 +msgid "" +"import asyncio\n" +"import concurrent.futures\n" +"\n" +"def blocking_io():\n" +" # File operations (such as logging) can block the\n" +" # event loop: run them in a thread pool.\n" +" with open('/dev/urandom', 'rb') as f:\n" +" return f.read(100)\n" +"\n" +"def cpu_bound():\n" +" # CPU-bound operations will block the event loop:\n" +" # in general it is preferable to run them in a\n" +" # process pool.\n" +" return sum(i * i for i in range(10 ** 7))\n" +"\n" +"async def main():\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" ## Options:\n" +"\n" +" # 1. Run in the default loop's executor:\n" +" result = await loop.run_in_executor(\n" +" None, blocking_io)\n" +" print('default thread pool', result)\n" +"\n" +" # 2. Run in a custom thread pool:\n" +" with concurrent.futures.ThreadPoolExecutor() as pool:\n" +" result = await loop.run_in_executor(\n" +" pool, blocking_io)\n" +" print('custom thread pool', result)\n" +"\n" +" # 3. Run in a custom process pool:\n" +" with concurrent.futures.ProcessPoolExecutor() as pool:\n" +" result = await loop.run_in_executor(\n" +" pool, cpu_bound)\n" +" print('custom process pool', result)\n" +"\n" +" # 4. Run in a custom interpreter pool:\n" +" with concurrent.futures.InterpreterPoolExecutor() as pool:\n" +" result = await loop.run_in_executor(\n" +" pool, cpu_bound)\n" +" print('custom interpreter pool', result)\n" +"\n" +"if __name__ == '__main__':\n" +" asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1384 +msgid "" +"Note that the entry point guard (``if __name__ == '__main__'``) is required " +"for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " +"used by :class:`~concurrent.futures.ProcessPoolExecutor`. See :ref:`Safe " +"importing of main module `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1389 +msgid "This method returns a :class:`asyncio.Future` object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1391 +msgid "" +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1394 +msgid "" +":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " +"thread pool executor it creates, instead leaving it up to the thread pool " +"executor (:class:`~concurrent.futures.ThreadPoolExecutor`) to set the " +"default." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1403 +msgid "" +"Set *executor* as the default executor used by :meth:`run_in_executor`. " +"*executor* must be an instance " +"of :class:`~concurrent.futures.ThreadPoolExecutor`, which " +"includes :class:`~concurrent.futures.InterpreterPoolExecutor`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1408 +msgid "" +"*executor* must be an instance " +"of :class:`~concurrent.futures.ThreadPoolExecutor`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1414 +msgid "Error Handling API" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1416 +msgid "Allows customizing how exceptions are handled in the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1420 +msgid "Set *handler* as the new event loop exception handler." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1422 +msgid "" +"If *handler* is ``None``, the default exception handler will be set. " +"Otherwise, *handler* must be a callable with the signature matching ``(loop, " +"context)``, where ``loop`` is a reference to the active event loop, and " +"``context`` is a ``dict`` object containing the details of the exception " +"(see :meth:`call_exception_handler` documentation for details about context)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1430 +msgid "" +"If the handler is called on behalf of a :class:`~asyncio.Task` " +"or :class:`~asyncio.Handle`, it is run in the :class:`contextvars.Context` " +"of that task or callback handle." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1436 +msgid "" +"The handler may be called in the :class:`~contextvars.Context` of the task " +"or handle where the exception originated." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1441 +msgid "" +"Return the current exception handler, or ``None`` if no custom exception " +"handler was set." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1448 +msgid "Default exception handler." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1450 +msgid "" +"This is called when an exception occurs and no exception handler is set. " +"This can be called by a custom exception handler that wants to defer to the " +"default handler behavior." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1454 +msgid "" +"*context* parameter has the same meaning as " +"in :meth:`call_exception_handler`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1459 +msgid "Call the current event loop exception handler." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1461 +msgid "" +"*context* is a ``dict`` object containing the following keys (new keys may " +"be introduced in future Python versions):" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1464 +msgid "'message': Error message;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1465 +msgid "'exception' (optional): Exception object;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1466 +msgid "'future' (optional): :class:`asyncio.Future` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1467 +msgid "'task' (optional): :class:`asyncio.Task` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1468 +msgid "'handle' (optional): :class:`asyncio.Handle` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1469 +msgid "'protocol' (optional): :ref:`Protocol ` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1470 +msgid "'transport' (optional): :ref:`Transport ` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1471 +msgid "'socket' (optional): :class:`socket.socket` instance;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1472 +msgid "'source_traceback' (optional): Traceback of the source;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1473 +msgid "'handle_traceback' (optional): Traceback of the handle;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1474 +msgid "'asyncgen' (optional): Asynchronous generator that caused" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1475 +msgid "the exception." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1479 +msgid "" +"This method should not be overloaded in subclassed event loops. For custom " +"exception handling, use the :meth:`set_exception_handler` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1484 +msgid "Enabling debug mode" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1488 +msgid "Get the debug mode (:class:`bool`) of the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1490 +msgid "" +"The default value is ``True`` if the environment " +"variable :envvar:`PYTHONASYNCIODEBUG` is set to a non-empty string, " +"``False`` otherwise." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1496 +msgid "Set the debug mode of the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1500 +msgid "" +"The new :ref:`Python Development Mode ` can now also be used to " +"enable the debug mode." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1505 +msgid "" +"This attribute can be used to set the minimum execution duration in seconds " +"that is considered \"slow\". When debug mode is enabled, \"slow\" callbacks " +"are logged." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1509 +msgid "Default value is 100 milliseconds." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1513 +msgid "The :ref:`debug mode of asyncio `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1517 +msgid "Running Subprocesses" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1519 +msgid "" +"Methods described in this subsections are low-level. In regular async/await " +"code consider using the high-level :func:`asyncio.create_subprocess_shell` " +"and :func:`asyncio.create_subprocess_exec` convenience functions instead." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1526 +msgid "" +"On Windows, the default event loop :class:`ProactorEventLoop` supports " +"subprocesses, whereas :class:`SelectorEventLoop` does not. " +"See :ref:`Subprocess Support on Windows ` for " +"details." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1538 +msgid "" +"Create a subprocess from one or more string arguments specified by *args*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1541 +msgid "*args* must be a list of strings represented by:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1543 +msgid ":class:`str`;" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1544 +msgid "" +"or :class:`bytes`, encoded to the :ref:`filesystem encoding `." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1547 +msgid "" +"The first string specifies the program executable, and the remaining strings " +"specify the arguments. Together, string arguments form the ``argv`` of the " +"program." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1551 +msgid "" +"This is similar to the standard library :class:`subprocess.Popen` class " +"called with ``shell=False`` and the list of strings passed as the first " +"argument; however, where :class:`~subprocess.Popen` takes a single argument " +"which is list of strings, *subprocess_exec* takes multiple string arguments." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1557 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of " +"the :class:`asyncio.SubprocessProtocol` class." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1560 +msgid "Other parameters:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1562 +msgid "*stdin* can be any of these:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1564 +#: ../../library/asyncio-eventloop.rst:1575 +#: ../../library/asyncio-eventloop.rst:1585 +msgid "a file-like object" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1565 +msgid "" +"an existing file descriptor (a positive integer), for example those created " +"with :meth:`os.pipe`" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1566 +#: ../../library/asyncio-eventloop.rst:1576 +#: ../../library/asyncio-eventloop.rst:1586 +msgid "" +"the :const:`subprocess.PIPE` constant (default) which will create a new pipe " +"and connect it," +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1568 +#: ../../library/asyncio-eventloop.rst:1578 +#: ../../library/asyncio-eventloop.rst:1588 +msgid "" +"the value ``None`` which will make the subprocess inherit the file " +"descriptor from this process" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1570 +#: ../../library/asyncio-eventloop.rst:1580 +#: ../../library/asyncio-eventloop.rst:1590 +msgid "" +"the :const:`subprocess.DEVNULL` constant which indicates that the " +"special :data:`os.devnull` file will be used" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1573 +msgid "*stdout* can be any of these:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1583 +msgid "*stderr* can be any of these:" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1592 +msgid "" +"the :const:`subprocess.STDOUT` constant which will connect the standard " +"error stream to the process' standard output stream" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1595 +msgid "" +"All other keyword arguments are passed to :class:`subprocess.Popen` without " +"interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " +"*encoding* and *errors*, which should not be specified at all." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1600 +msgid "" +"The ``asyncio`` subprocess API does not support decoding the streams as " +"text. :func:`bytes.decode` can be used to convert the bytes returned from " +"the stream to text." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1604 +msgid "" +"If a file-like object passed as *stdin*, *stdout* or *stderr* represents a " +"pipe, then the other side of this pipe should be registered " +"with :meth:`~loop.connect_write_pipe` or :meth:`~loop.connect_read_pipe` for " +"use with the event loop." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1609 +msgid "" +"See the constructor of the :class:`subprocess.Popen` class for documentation " +"on other arguments." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1612 +msgid "" +"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " +"the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " +"object instantiated by the *protocol_factory*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1621 +msgid "" +"Create a subprocess from *cmd*, which can be a :class:`str` or " +"a :class:`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1626 +msgid "" +"This is similar to the standard library :class:`subprocess.Popen` class " +"called with ``shell=True``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1629 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of " +"the :class:`SubprocessProtocol` class." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1632 +msgid "" +"See :meth:`~loop.subprocess_exec` for more details about the remaining " +"arguments." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1635 +msgid "" +"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " +"the :class:`SubprocessTransport` base class and *protocol* is an object " +"instantiated by the *protocol_factory*." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1640 +msgid "" +"It is the application's responsibility to ensure that all whitespace and " +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special characters in strings that are going to be " +"used to construct shell commands." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1649 +msgid "Callback Handles" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1653 +msgid "" +"A callback wrapper object returned " +"by :meth:`loop.call_soon`, :meth:`loop.call_soon_threadsafe`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1658 +msgid "" +"Return the :class:`contextvars.Context` object associated with the handle." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1665 +msgid "" +"Cancel the callback. If the callback has already been canceled or executed, " +"this method has no effect." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1670 +msgid "Return ``True`` if the callback was cancelled." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1676 +msgid "" +"A callback wrapper object returned by :meth:`loop.call_later`, " +"and :meth:`loop.call_at`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1679 +msgid "This class is a subclass of :class:`Handle`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1683 +msgid "Return a scheduled callback time as :class:`float` seconds." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1685 +msgid "" +"The time is an absolute timestamp, using the same time reference " +"as :meth:`loop.time`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1692 +msgid "Server Objects" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1694 +msgid "" +"Server objects are created " +"by :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :func:`start_server`, " +"and :func:`start_unix_server` functions." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1698 +msgid "Do not instantiate the :class:`Server` class directly." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1702 +msgid "" +"*Server* objects are asynchronous context managers. When used in an ``async " +"with`` statement, it's guaranteed that the Server object is closed and not " +"accepting new connections when the ``async with`` statement is completed::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1707 +msgid "" +"srv = await loop.create_server(...)\n" +"\n" +"async with srv:\n" +" # some code\n" +"\n" +"# At this point, srv is closed and no longer accepts new connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1715 +msgid "Server object is an asynchronous context manager since Python 3.7." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1718 +msgid "" +"This class was exposed publicly as ``asyncio.Server`` in Python 3.9.11, " +"3.10.3 and 3.11." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1723 +msgid "" +"Stop serving: close listening sockets and set the :attr:`sockets` attribute " +"to ``None``." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1726 +msgid "" +"The sockets that represent existing incoming client connections are left " +"open." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1729 +msgid "" +"The server is closed asynchronously; use the :meth:`wait_closed` coroutine " +"to wait until the server is closed (and no more connections are active)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1735 +msgid "Close all existing incoming client connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1737 +msgid "" +"Calls :meth:`~asyncio.BaseTransport.close` on all associated transports." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1740 +msgid "" +":meth:`close` should be called before :meth:`close_clients` when closing the " +"server to avoid races with new clients connecting." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1747 +msgid "" +"Close all existing incoming client connections immediately, without waiting " +"for pending operations to complete." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1750 +msgid "" +"Calls :meth:`~asyncio.WriteTransport.abort` on all associated transports." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1753 +msgid "" +":meth:`close` should be called before :meth:`abort_clients` when closing the " +"server to avoid races with new clients connecting." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1760 +msgid "Return the event loop associated with the server object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1767 +msgid "Start accepting connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1769 +msgid "" +"This method is idempotent, so it can be called when the server is already " +"serving." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1772 +msgid "" +"The *start_serving* keyword-only parameter to :meth:`loop.create_server` " +"and :meth:`asyncio.start_server` allows creating a Server object that is not " +"accepting connections initially. In this case ``Server.start_serving()``, " +"or :meth:`Server.serve_forever` can be used to make the Server start " +"accepting connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1784 +msgid "" +"Start accepting connections until the coroutine is cancelled. Cancellation " +"of ``serve_forever`` task causes the server to be closed." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1788 +msgid "" +"This method can be called if the server is already accepting connections. " +"Only one ``serve_forever`` task can exist per one *Server* object." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1794 +msgid "" +"async def client_connected(reader, writer):\n" +" # Communicate with the client with\n" +" # reader/writer streams. For example:\n" +" await reader.readline()\n" +"\n" +"async def main(host, port):\n" +" srv = await asyncio.start_server(\n" +" client_connected, host, port)\n" +" await srv.serve_forever()\n" +"\n" +"asyncio.run(main('127.0.0.1', 0))" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1810 +msgid "Return ``True`` if the server is accepting new connections." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1817 +msgid "" +"Wait until the :meth:`close` method completes and all active connections " +"have finished." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1822 +msgid "" +"List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " +"server is listening on." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1825 +msgid "" +"Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " +"server sockets directly. In 3.7 a copy of that list is returned." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1835 +msgid "Event Loop Implementations" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1837 +msgid "" +"asyncio ships with two different event loop " +"implementations: :class:`SelectorEventLoop` and :class:`ProactorEventLoop`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1840 +msgid "By default asyncio is configured to use :class:`EventLoop`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1845 +msgid "" +"A subclass of :class:`AbstractEventLoop` based on the :mod:`selectors` " +"module." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1848 +msgid "" +"Uses the most efficient *selector* available for the given platform. It is " +"also possible to manually configure the exact selector implementation to be " +"used::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1852 +msgid "" +"import asyncio\n" +"import selectors\n" +"\n" +"async def main():\n" +" ...\n" +"\n" +"loop_factory = lambda: " +"asyncio.SelectorEventLoop(selectors.SelectSelector())\n" +"asyncio.run(main(), loop_factory=loop_factory)" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1867 +msgid "" +"A subclass of :class:`AbstractEventLoop` for Windows that uses \"I/O " +"Completion Ports\" (IOCP)." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1873 +msgid "" +"`MSDN documentation on I/O Completion Ports `_." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1878 +msgid "" +"An alias to the most efficient available subclass " +"of :class:`AbstractEventLoop` for the given platform." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1881 +msgid "" +"It is an alias to :class:`SelectorEventLoop` on Unix " +"and :class:`ProactorEventLoop` on Windows." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1887 +msgid "Abstract base class for asyncio-compliant event loops." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1889 +msgid "" +"The :ref:`asyncio-event-loop-methods` section lists all methods that an " +"alternative implementation of ``AbstractEventLoop`` should have defined." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1895 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1897 +msgid "" +"Note that all examples in this section **purposefully** show how to use the " +"low-level event loop APIs, such as :meth:`loop.run_forever` " +"and :meth:`loop.call_soon`. Modern asyncio applications rarely need to be " +"written this way; consider using the high-level functions " +"like :func:`asyncio.run`." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1907 +msgid "Hello World with call_soon()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1909 +msgid "" +"An example using the :meth:`loop.call_soon` method to schedule a callback. " +"The callback displays ``\"Hello World\"`` and then stops the event loop::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1913 +msgid "" +"import asyncio\n" +"\n" +"def hello_world(loop):\n" +" \"\"\"A callback to print 'Hello World' and stop the event loop\"\"\"\n" +" print('Hello World')\n" +" loop.stop()\n" +"\n" +"loop = asyncio.new_event_loop()\n" +"\n" +"# Schedule a call to hello_world()\n" +"loop.call_soon(hello_world, loop)\n" +"\n" +"# Blocking call interrupted by loop.stop()\n" +"try:\n" +" loop.run_forever()\n" +"finally:\n" +" loop.close()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1933 +msgid "" +"A similar :ref:`Hello World ` example created with a coroutine " +"and the :func:`run` function." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1940 +msgid "Display the current date with call_later()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1942 +msgid "" +"An example of a callback displaying the current date every second. The " +"callback uses the :meth:`loop.call_later` method to reschedule itself after " +"5 seconds, and then stops the event loop::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1946 +msgid "" +"import asyncio\n" +"import datetime\n" +"\n" +"def display_date(end_time, loop):\n" +" print(datetime.datetime.now())\n" +" if (loop.time() + 1.0) < end_time:\n" +" loop.call_later(1, display_date, end_time, loop)\n" +" else:\n" +" loop.stop()\n" +"\n" +"loop = asyncio.new_event_loop()\n" +"\n" +"# Schedule the first call to display_date()\n" +"end_time = loop.time() + 5.0\n" +"loop.call_soon(display_date, end_time, loop)\n" +"\n" +"# Blocking call interrupted by loop.stop()\n" +"try:\n" +" loop.run_forever()\n" +"finally:\n" +" loop.close()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1970 +msgid "" +"A similar :ref:`current date ` example created with a " +"coroutine and the :func:`run` function." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1977 +msgid "Watch a file descriptor for read events" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1979 +msgid "" +"Wait until a file descriptor received some data using " +"the :meth:`loop.add_reader` method and then close the event loop::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:1982 +msgid "" +"import asyncio\n" +"from socket import socketpair\n" +"\n" +"# Create a pair of connected file descriptors\n" +"rsock, wsock = socketpair()\n" +"\n" +"loop = asyncio.new_event_loop()\n" +"\n" +"def reader():\n" +" data = rsock.recv(100)\n" +" print(\"Received:\", data.decode())\n" +"\n" +" # We are done: unregister the file descriptor\n" +" loop.remove_reader(rsock)\n" +"\n" +" # Stop the event loop\n" +" loop.stop()\n" +"\n" +"# Register the file descriptor for read event\n" +"loop.add_reader(rsock, reader)\n" +"\n" +"# Simulate the reception of data from the network\n" +"loop.call_soon(wsock.send, 'abc'.encode())\n" +"\n" +"try:\n" +" # Run the event loop\n" +" loop.run_forever()\n" +"finally:\n" +" # We are done. Close sockets and the event loop.\n" +" rsock.close()\n" +" wsock.close()\n" +" loop.close()" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2017 +msgid "" +"A similar :ref:`example ` using " +"transports, protocols, and the :meth:`loop.create_connection` method." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2021 +msgid "" +"Another similar :ref:`example ` " +"using the high-level :func:`asyncio.open_connection` function and streams." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2029 +msgid "Set signal handlers for SIGINT and SIGTERM" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2031 +msgid "(This ``signals`` example only works on Unix.)" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2033 +msgid "" +"Register handlers for signals :const:`~signal.SIGINT` " +"and :const:`~signal.SIGTERM` using the :meth:`loop.add_signal_handler` " +"method::" +msgstr "" + +#: ../../library/asyncio-eventloop.rst:2036 +msgid "" +"import asyncio\n" +"import functools\n" +"import os\n" +"import signal\n" +"\n" +"def ask_exit(signame, loop):\n" +" print(\"got signal %s: exit\" % signame)\n" +" loop.stop()\n" +"\n" +"async def main():\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" for signame in {'SIGINT', 'SIGTERM'}:\n" +" loop.add_signal_handler(\n" +" getattr(signal, signame),\n" +" functools.partial(ask_exit, signame, loop))\n" +"\n" +" await asyncio.sleep(3600)\n" +"\n" +"print(\"Event loop running for 1 hour, press Ctrl+C to interrupt.\")\n" +"print(f\"pid {os.getpid()}: send SIGINT or SIGTERM to exit.\")\n" +"\n" +"asyncio.run(main())" +msgstr "" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po new file mode 100644 index 0000000..9734358 --- /dev/null +++ b/library/asyncio-exceptions.po @@ -0,0 +1,108 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-exceptions.rst:8 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/asyncio-exceptions.rst:10 +msgid "**Source code:** :source:`Lib/asyncio/exceptions.py`" +msgstr "" + +#: ../../library/asyncio-exceptions.rst:16 +msgid "" +"A deprecated alias of :exc:`TimeoutError`, raised when the operation has " +"exceeded the given deadline." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:21 +msgid "This class was made an alias of :exc:`TimeoutError`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:26 +msgid "The operation has been cancelled." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:28 +msgid "" +"This exception can be caught to perform custom operations when asyncio Tasks " +"are cancelled. In almost all situations the exception must be re-raised." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:34 +msgid "" +":exc:`CancelledError` is now a subclass of :class:`BaseException` rather " +"than :class:`Exception`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:39 +msgid "Invalid internal state of :class:`Task` or :class:`Future`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:41 +msgid "" +"Can be raised in situations like setting a result value for a *Future* " +"object that already has a result value set." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:47 +msgid "" +"The \"sendfile\" syscall is not available for the given socket or file type." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:50 +msgid "A subclass of :exc:`RuntimeError`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:55 +msgid "The requested read operation did not complete fully." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:57 +msgid "Raised by the :ref:`asyncio stream APIs`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:59 +msgid "This exception is a subclass of :exc:`EOFError`." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:63 +msgid "The total number (:class:`int`) of expected bytes." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:67 +msgid "A string of :class:`bytes` read before the end of stream was reached." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:72 +msgid "Reached the buffer size limit while looking for a separator." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:74 +msgid "Raised by the :ref:`asyncio stream APIs `." +msgstr "" + +#: ../../library/asyncio-exceptions.rst:78 +msgid "The total number of to be consumed bytes." +msgstr "" diff --git a/library/asyncio-extending.po b/library/asyncio-extending.po new file mode 100644 index 0000000..3b2ad30 --- /dev/null +++ b/library/asyncio-extending.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-extending.rst:6 +msgid "Extending" +msgstr "" + +#: ../../library/asyncio-extending.rst:8 +msgid "" +"The main direction for :mod:`asyncio` extending is writing custom *event " +"loop* classes. Asyncio has helpers that could be used to simplify this task." +msgstr "" + +#: ../../library/asyncio-extending.rst:13 +msgid "" +"Third-parties should reuse existing asyncio code with caution, a new Python " +"version is free to break backward compatibility in *internal* part of API." +msgstr "" + +#: ../../library/asyncio-extending.rst:19 +msgid "Writing a Custom Event Loop" +msgstr "" + +#: ../../library/asyncio-extending.rst:21 +msgid "" +":class:`asyncio.AbstractEventLoop` declares very many methods. Implementing " +"all them from scratch is a tedious job." +msgstr "" + +#: ../../library/asyncio-extending.rst:24 +msgid "" +"A loop can get many common methods implementation for free by inheriting " +"from :class:`asyncio.BaseEventLoop`." +msgstr "" + +#: ../../library/asyncio-extending.rst:27 +msgid "" +"In turn, the successor should implement a bunch of *private* methods " +"declared but not implemented in :class:`asyncio.BaseEventLoop`." +msgstr "" + +#: ../../library/asyncio-extending.rst:30 +msgid "" +"For example, ``loop.create_connection()`` checks arguments, resolves DNS " +"addresses, and calls ``loop._make_socket_transport()`` that should be " +"implemented by inherited class. The ``_make_socket_transport()`` method is " +"not documented and is considered as an *internal* API." +msgstr "" + +#: ../../library/asyncio-extending.rst:38 +msgid "Future and Task private constructors" +msgstr "" + +#: ../../library/asyncio-extending.rst:40 +msgid "" +":class:`asyncio.Future` and :class:`asyncio.Task` should be never created " +"directly, please use corresponding :meth:`loop.create_future` " +"and :meth:`loop.create_task`, or :func:`asyncio.create_task` factories " +"instead." +msgstr "" + +#: ../../library/asyncio-extending.rst:44 +msgid "" +"However, third-party *event loops* may *reuse* built-in future and task " +"implementations for the sake of getting a complex and highly optimized code " +"for free." +msgstr "" + +#: ../../library/asyncio-extending.rst:47 +msgid "For this purpose the following, *private* constructors are listed:" +msgstr "" + +#: ../../library/asyncio-extending.rst:51 +msgid "Create a built-in future instance." +msgstr "" + +#: ../../library/asyncio-extending.rst:53 +msgid "*loop* is an optional event loop instance." +msgstr "" + +#: ../../library/asyncio-extending.rst:57 +msgid "Create a built-in task instance." +msgstr "" + +#: ../../library/asyncio-extending.rst:59 +msgid "" +"*loop* is an optional event loop instance. The rest of arguments are " +"described in :meth:`loop.create_task` description." +msgstr "" + +#: ../../library/asyncio-extending.rst:64 +msgid "*context* argument is added." +msgstr "" + +#: ../../library/asyncio-extending.rst:69 +msgid "Task lifetime support" +msgstr "" + +#: ../../library/asyncio-extending.rst:71 +msgid "" +"A third party task implementation should call the following functions to " +"keep a task visible by :func:`asyncio.all_tasks` " +"and :func:`asyncio.current_task`:" +msgstr "" + +#: ../../library/asyncio-extending.rst:76 +msgid "Register a new *task* as managed by *asyncio*." +msgstr "" + +#: ../../library/asyncio-extending.rst:78 +msgid "Call the function from a task constructor." +msgstr "" + +#: ../../library/asyncio-extending.rst:82 +msgid "Unregister a *task* from *asyncio* internal structures." +msgstr "" + +#: ../../library/asyncio-extending.rst:84 +msgid "The function should be called when a task is about to finish." +msgstr "" + +#: ../../library/asyncio-extending.rst:88 +msgid "Switch the current task to the *task* argument." +msgstr "" + +#: ../../library/asyncio-extending.rst:90 +msgid "" +"Call the function just before executing a portion of embedded *coroutine* " +"(:meth:`coroutine.send` or :meth:`coroutine.throw`)." +msgstr "" + +#: ../../library/asyncio-extending.rst:95 +msgid "Switch the current task back from *task* to ``None``." +msgstr "" + +#: ../../library/asyncio-extending.rst:97 +msgid "" +"Call the function just after :meth:`coroutine.send` " +"or :meth:`coroutine.throw` execution." +msgstr "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po new file mode 100644 index 0000000..fc1a6f9 --- /dev/null +++ b/library/asyncio-future.po @@ -0,0 +1,391 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-future.rst:8 +msgid "Futures" +msgstr "" + +#: ../../library/asyncio-future.rst:10 +msgid "" +"**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" +"base_futures.py`" +msgstr "" + +#: ../../library/asyncio-future.rst:15 +msgid "" +"*Future* objects are used to bridge **low-level callback-based code** with " +"high-level async/await code." +msgstr "" + +#: ../../library/asyncio-future.rst:20 +msgid "Future Functions" +msgstr "" + +#: ../../library/asyncio-future.rst:24 +msgid "Return ``True`` if *obj* is either of:" +msgstr "" + +#: ../../library/asyncio-future.rst:26 +msgid "an instance of :class:`asyncio.Future`," +msgstr "" + +#: ../../library/asyncio-future.rst:27 +msgid "an instance of :class:`asyncio.Task`," +msgstr "" + +#: ../../library/asyncio-future.rst:28 +msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." +msgstr "" + +#: ../../library/asyncio-future.rst:36 +msgid "Return:" +msgstr "" + +#: ../../library/asyncio-future.rst:38 +msgid "" +"*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " +"Future-like object (:func:`isfuture` is used for the test.)" +msgstr "" + +#: ../../library/asyncio-future.rst:42 +msgid "" +"a :class:`Task` object wrapping *obj*, if *obj* is a coroutine " +"(:func:`iscoroutine` is used for the test); in this case the coroutine will " +"be scheduled by ``ensure_future()``." +msgstr "" + +#: ../../library/asyncio-future.rst:47 +msgid "" +"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable " +"(:func:`inspect.isawaitable` is used for the test.)" +msgstr "" + +#: ../../library/asyncio-future.rst:50 +msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/asyncio-future.rst:54 +msgid "" +"Save a reference to the result of this function, to avoid a task " +"disappearing mid-execution." +msgstr "" + +#: ../../library/asyncio-future.rst:57 +msgid "" +"See also the :func:`create_task` function which is the preferred way for " +"creating new tasks or use :class:`asyncio.TaskGroup` which keeps reference " +"to the task internally." +msgstr "" + +#: ../../library/asyncio-future.rst:61 +msgid "The function accepts any :term:`awaitable` object." +msgstr "" + +#: ../../library/asyncio-future.rst:64 +msgid "" +"Deprecation warning is emitted if *obj* is not a Future-like object and " +"*loop* is not specified and there is no running event loop." +msgstr "" + +#: ../../library/asyncio-future.rst:71 +msgid "" +"Wrap a :class:`concurrent.futures.Future` object in " +"a :class:`asyncio.Future` object." +msgstr "" + +#: ../../library/asyncio-future.rst:74 +msgid "" +"Deprecation warning is emitted if *future* is not a Future-like object and " +"*loop* is not specified and there is no running event loop." +msgstr "" + +#: ../../library/asyncio-future.rst:80 +msgid "Future Object" +msgstr "" + +#: ../../library/asyncio-future.rst:84 +msgid "" +"A Future represents an eventual result of an asynchronous operation. Not " +"thread-safe." +msgstr "" + +#: ../../library/asyncio-future.rst:87 +msgid "" +"Future is an :term:`awaitable` object. Coroutines can await on Future " +"objects until they either have a result or an exception set, or until they " +"are cancelled. A Future can be awaited multiple times and the result is same." +msgstr "" + +#: ../../library/asyncio-future.rst:92 +msgid "" +"Typically Futures are used to enable low-level callback-based code (e.g. in " +"protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." +msgstr "" + +#: ../../library/asyncio-future.rst:97 +msgid "" +"The rule of thumb is to never expose Future objects in user-facing APIs, and " +"the recommended way to create a Future object is to " +"call :meth:`loop.create_future`. This way alternative event loop " +"implementations can inject their own optimized implementations of a Future " +"object." +msgstr "" + +#: ../../library/asyncio-future.rst:103 +msgid "Added support for the :mod:`contextvars` module." +msgstr "" + +#: ../../library/asyncio-future.rst:106 +msgid "" +"Deprecation warning is emitted if *loop* is not specified and there is no " +"running event loop." +msgstr "" + +#: ../../library/asyncio-future.rst:112 +msgid "Return the result of the Future." +msgstr "" + +#: ../../library/asyncio-future.rst:114 +msgid "" +"If the Future is *done* and has a result set by the :meth:`set_result` " +"method, the result value is returned." +msgstr "" + +#: ../../library/asyncio-future.rst:117 +msgid "" +"If the Future is *done* and has an exception set by " +"the :meth:`set_exception` method, this method raises the exception." +msgstr "" + +#: ../../library/asyncio-future.rst:120 ../../library/asyncio-future.rst:208 +msgid "" +"If the Future has been *cancelled*, this method raises " +"a :exc:`CancelledError` exception." +msgstr "" + +#: ../../library/asyncio-future.rst:123 +msgid "" +"If the Future's result isn't yet available, this method raises " +"an :exc:`InvalidStateError` exception." +msgstr "" + +#: ../../library/asyncio-future.rst:128 +msgid "Mark the Future as *done* and set its result." +msgstr "" + +#: ../../library/asyncio-future.rst:130 ../../library/asyncio-future.rst:137 +msgid "" +"Raises an :exc:`InvalidStateError` error if the Future is already *done*." +msgstr "" + +#: ../../library/asyncio-future.rst:135 +msgid "Mark the Future as *done* and set an exception." +msgstr "" + +#: ../../library/asyncio-future.rst:142 +msgid "Return ``True`` if the Future is *done*." +msgstr "" + +#: ../../library/asyncio-future.rst:144 +msgid "" +"A Future is *done* if it was *cancelled* or if it has a result or an " +"exception set with :meth:`set_result` or :meth:`set_exception` calls." +msgstr "" + +#: ../../library/asyncio-future.rst:150 +msgid "Return ``True`` if the Future was *cancelled*." +msgstr "" + +#: ../../library/asyncio-future.rst:152 +msgid "" +"The method is usually used to check if a Future is not *cancelled* before " +"setting a result or an exception for it::" +msgstr "" + +#: ../../library/asyncio-future.rst:155 +msgid "" +"if not fut.cancelled():\n" +" fut.set_result(42)" +msgstr "" + +#: ../../library/asyncio-future.rst:160 +msgid "Add a callback to be run when the Future is *done*." +msgstr "" + +#: ../../library/asyncio-future.rst:162 +msgid "The *callback* is called with the Future object as its only argument." +msgstr "" + +#: ../../library/asyncio-future.rst:165 +msgid "" +"If the Future is already *done* when this method is called, the callback is " +"scheduled with :meth:`loop.call_soon`." +msgstr "" + +#: ../../library/asyncio-future.rst:168 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the *callback* to run in. The " +"current context is used when no *context* is provided." +msgstr "" + +#: ../../library/asyncio-future.rst:172 +msgid "" +":func:`functools.partial` can be used to pass parameters to the callback, " +"e.g.::" +msgstr "" + +#: ../../library/asyncio-future.rst:175 +msgid "" +"# Call 'print(\"Future:\", fut)' when \"fut\" is done.\n" +"fut.add_done_callback(\n" +" functools.partial(print, \"Future:\"))" +msgstr "" + +#: ../../library/asyncio-future.rst:179 +msgid "" +"The *context* keyword-only parameter was added. See :pep:`567` for more " +"details." +msgstr "" + +#: ../../library/asyncio-future.rst:185 +msgid "Remove *callback* from the callbacks list." +msgstr "" + +#: ../../library/asyncio-future.rst:187 +msgid "" +"Returns the number of callbacks removed, which is typically 1, unless a " +"callback was added more than once." +msgstr "" + +#: ../../library/asyncio-future.rst:192 +msgid "Cancel the Future and schedule callbacks." +msgstr "" + +#: ../../library/asyncio-future.rst:194 +msgid "" +"If the Future is already *done* or *cancelled*, return ``False``. Otherwise, " +"change the Future's state to *cancelled*, schedule the callbacks, and return " +"``True``." +msgstr "" + +#: ../../library/asyncio-future.rst:198 +msgid "Added the *msg* parameter." +msgstr "" + +#: ../../library/asyncio-future.rst:203 +msgid "Return the exception that was set on this Future." +msgstr "" + +#: ../../library/asyncio-future.rst:205 +msgid "" +"The exception (or ``None`` if no exception was set) is returned only if the " +"Future is *done*." +msgstr "" + +#: ../../library/asyncio-future.rst:211 +msgid "" +"If the Future isn't *done* yet, this method raises " +"an :exc:`InvalidStateError` exception." +msgstr "" + +#: ../../library/asyncio-future.rst:216 +msgid "Return the event loop the Future object is bound to." +msgstr "" + +#: ../../library/asyncio-future.rst:223 +msgid "" +"This example creates a Future object, creates and schedules an asynchronous " +"Task to set result for the Future, and waits until the Future has a result::" +msgstr "" + +#: ../../library/asyncio-future.rst:227 +msgid "" +"async def set_after(fut, delay, value):\n" +" # Sleep for *delay* seconds.\n" +" await asyncio.sleep(delay)\n" +"\n" +" # Set *value* as a result of *fut* Future.\n" +" fut.set_result(value)\n" +"\n" +"async def main():\n" +" # Get the current event loop.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" # Create a new Future object.\n" +" fut = loop.create_future()\n" +"\n" +" # Run \"set_after()\" coroutine in a parallel Task.\n" +" # We are using the low-level \"loop.create_task()\" API here because\n" +" # we already have a reference to the event loop at hand.\n" +" # Otherwise we could have just used \"asyncio.create_task()\".\n" +" loop.create_task(\n" +" set_after(fut, 1, '... world'))\n" +"\n" +" print('hello ...')\n" +"\n" +" # Wait until *fut* has a result (1 second) and print it.\n" +" print(await fut)\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-future.rst:258 +msgid "" +"The Future object was designed to mimic :class:`concurrent.futures.Future`. " +"Key differences include:" +msgstr "" + +#: ../../library/asyncio-future.rst:261 +msgid "" +"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " +"be awaited." +msgstr "" + +#: ../../library/asyncio-future.rst:264 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " +"accept the *timeout* argument." +msgstr "" + +#: ../../library/asyncio-future.rst:267 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise " +"an :exc:`InvalidStateError` exception when the Future is not *done*." +msgstr "" + +#: ../../library/asyncio-future.rst:271 +msgid "" +"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " +"called immediately. They are scheduled with :meth:`loop.call_soon` instead." +msgstr "" + +#: ../../library/asyncio-future.rst:275 +msgid "" +"asyncio Future is not compatible with the :func:`concurrent.futures.wait` " +"and :func:`concurrent.futures.as_completed` functions." +msgstr "" + +#: ../../library/asyncio-future.rst:279 +msgid "" +":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, " +"but :meth:`concurrent.futures.Future.cancel` does not." +msgstr "" diff --git a/library/asyncio-graph.po b/library/asyncio-graph.po new file mode 100644 index 0000000..2fbc227 --- /dev/null +++ b/library/asyncio-graph.po @@ -0,0 +1,207 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-graph.rst:8 +msgid "Call Graph Introspection" +msgstr "" + +#: ../../library/asyncio-graph.rst:10 +msgid "**Source code:** :source:`Lib/asyncio/graph.py`" +msgstr "" + +#: ../../library/asyncio-graph.rst:14 +msgid "" +"asyncio has powerful runtime call graph introspection utilities to trace the " +"entire call graph of a running *coroutine* or *task*, or a suspended " +"*future*. These utilities and the underlying machinery can be used from " +"within a Python program or by external profilers and debuggers." +msgstr "" + +#: ../../library/asyncio-graph.rst:25 +msgid "" +"Print the async call graph for the current task or the " +"provided :class:`Task` or :class:`Future`." +msgstr "" + +#: ../../library/asyncio-graph.rst:28 +msgid "" +"This function prints entries starting from the top frame and going down " +"towards the invocation point." +msgstr "" + +#: ../../library/asyncio-graph.rst:31 +msgid "" +"The function receives an optional *future* argument. If not passed, the " +"current running task will be used." +msgstr "" + +#: ../../library/asyncio-graph.rst:34 ../../library/asyncio-graph.rst:93 +msgid "" +"If the function is called on *the current task*, the optional keyword-only " +"*depth* argument can be used to skip the specified number of frames from top " +"of the stack." +msgstr "" + +#: ../../library/asyncio-graph.rst:38 +msgid "" +"If the optional keyword-only *limit* argument is provided, each call stack " +"in the resulting graph is truncated to include at most ``abs(limit)`` " +"entries. If *limit* is positive, the entries left are the closest to the " +"invocation point. If *limit* is negative, the topmost entries are left. If " +"*limit* is omitted or ``None``, all entries are present. If *limit* is " +"``0``, the call stack is not printed at all, only \"awaited by\" information " +"is printed." +msgstr "" + +#: ../../library/asyncio-graph.rst:46 +msgid "" +"If *file* is omitted or ``None``, the function will print " +"to :data:`sys.stdout`." +msgstr "" + +#: ../../library/asyncio-graph.rst:49 +msgid "**Example:**" +msgstr "" + +#: ../../library/asyncio-graph.rst:51 +msgid "The following Python code:" +msgstr "" + +#: ../../library/asyncio-graph.rst:53 +msgid "" +"import asyncio\n" +"\n" +"async def test():\n" +" asyncio.print_call_graph()\n" +"\n" +"async def main():\n" +" async with asyncio.TaskGroup() as g:\n" +" g.create_task(test(), name='test')\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-graph.rst:66 +msgid "will print::" +msgstr "" + +#: ../../library/asyncio-graph.rst:68 +msgid "" +"* Task(name='test', id=0x1039f0fe0)\n" +"+ Call stack:\n" +"| File 't2.py', line 4, in async test()\n" +"+ Awaited by:\n" +" * Task(name='Task-1', id=0x103a5e060)\n" +" + Call stack:\n" +" | File 'taskgroups.py', line 107, in async TaskGroup.__aexit__()\n" +" | File 't2.py', line 7, in async main()" +msgstr "" + +#: ../../library/asyncio-graph.rst:79 +msgid "" +"Like :func:`print_call_graph`, but returns a string. If *future* is ``None`` " +"and there's no current task, the function returns an empty string." +msgstr "" + +#: ../../library/asyncio-graph.rst:86 +msgid "" +"Capture the async call graph for the current task or the " +"provided :class:`Task` or :class:`Future`." +msgstr "" + +#: ../../library/asyncio-graph.rst:89 +msgid "" +"The function receives an optional *future* argument. If not passed, the " +"current running task will be used. If there's no current task, the function " +"returns ``None``." +msgstr "" + +#: ../../library/asyncio-graph.rst:97 +msgid "Returns a ``FutureCallGraph`` data class object:" +msgstr "" + +#: ../../library/asyncio-graph.rst:99 +msgid "``FutureCallGraph(future, call_stack, awaited_by)``" +msgstr "" + +#: ../../library/asyncio-graph.rst:101 +msgid "" +"Where *future* is a reference to a :class:`Future` or a :class:`Task` (or " +"their subclasses.)" +msgstr "" + +#: ../../library/asyncio-graph.rst:104 +msgid "``call_stack`` is a tuple of ``FrameCallGraphEntry`` objects." +msgstr "" + +#: ../../library/asyncio-graph.rst:106 +msgid "``awaited_by`` is a tuple of ``FutureCallGraph`` objects." +msgstr "" + +#: ../../library/asyncio-graph.rst:108 +msgid "``FrameCallGraphEntry(frame)``" +msgstr "``FrameCallGraphEntry(frame)``" + +#: ../../library/asyncio-graph.rst:110 +msgid "" +"Where *frame* is a frame object of a regular Python function in the call " +"stack." +msgstr "" + +#: ../../library/asyncio-graph.rst:115 +msgid "Low level utility functions" +msgstr "" + +#: ../../library/asyncio-graph.rst:117 +msgid "" +"To introspect an async call graph asyncio requires cooperation from control " +"flow structures, such as :func:`shield` or :class:`TaskGroup`. Any time an " +"intermediate :class:`Future` object with low-level APIs " +"like :meth:`Future.add_done_callback() ` " +"is involved, the following two functions should be used to inform asyncio " +"about how exactly such intermediate future objects are connected with the " +"tasks they wrap or control." +msgstr "" + +#: ../../library/asyncio-graph.rst:128 +msgid "Record that *future* is awaited on by *waiter*." +msgstr "" + +#: ../../library/asyncio-graph.rst:130 ../../library/asyncio-graph.rst:143 +msgid "" +"Both *future* and *waiter* must be instances of :class:`Future` " +"or :class:`Task` or their subclasses, otherwise the call would have no " +"effect." +msgstr "" + +#: ../../library/asyncio-graph.rst:134 +msgid "" +"A call to ``future_add_to_awaited_by()`` must be followed by an eventual " +"call to the :func:`future_discard_from_awaited_by` function with the same " +"arguments." +msgstr "" + +#: ../../library/asyncio-graph.rst:141 +msgid "Record that *future* is no longer awaited on by *waiter*." +msgstr "" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po new file mode 100644 index 0000000..5422d30 --- /dev/null +++ b/library/asyncio-llapi-index.po @@ -0,0 +1,1021 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-llapi-index.rst:6 +msgid "Low-level API Index" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:8 +msgid "This page lists all low-level asyncio APIs." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:12 +msgid "Obtaining the Event Loop" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:18 +msgid ":func:`asyncio.get_running_loop`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:19 +msgid "The **preferred** function to get the running event loop." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:21 +msgid ":func:`asyncio.get_event_loop`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:22 +msgid "Get an event loop instance (running or current via the current policy)." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:24 +msgid ":func:`asyncio.set_event_loop`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:25 +msgid "Set the event loop as current via the current policy." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:27 +msgid ":func:`asyncio.new_event_loop`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:28 +msgid "Create a new event loop." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:32 +#: ../../library/asyncio-llapi-index.rst:269 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:33 +msgid ":ref:`Using asyncio.get_running_loop() `." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:37 +msgid "Event Loop Methods" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:39 +msgid "" +"See also the main documentation section about the :ref:`asyncio-event-loop-" +"methods`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:42 +msgid "Lifecycle" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:47 +msgid ":meth:`loop.run_until_complete`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:48 +msgid "Run a Future/Task/awaitable until complete." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:50 +msgid ":meth:`loop.run_forever`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:51 +msgid "Run the event loop forever." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:53 +msgid ":meth:`loop.stop`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:54 +msgid "Stop the event loop." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:56 +msgid ":meth:`loop.close`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:57 +msgid "Close the event loop." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:59 +msgid ":meth:`loop.is_running`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:60 +msgid "Return ``True`` if the event loop is running." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:62 +msgid ":meth:`loop.is_closed`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:63 +msgid "Return ``True`` if the event loop is closed." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:65 +msgid "``await`` :meth:`loop.shutdown_asyncgens`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:66 +msgid "Close asynchronous generators." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:69 +msgid "Debugging" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:74 +msgid ":meth:`loop.set_debug`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:75 +msgid "Enable or disable the debug mode." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:77 +msgid ":meth:`loop.get_debug`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:78 +msgid "Get the current debug mode." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:81 +msgid "Scheduling Callbacks" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:86 +msgid ":meth:`loop.call_soon`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:87 +msgid "Invoke a callback soon." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:89 +msgid ":meth:`loop.call_soon_threadsafe`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:90 +msgid "A thread-safe variant of :meth:`loop.call_soon`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:92 +msgid ":meth:`loop.call_later`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:93 +msgid "Invoke a callback *after* the given time." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:95 +msgid ":meth:`loop.call_at`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:96 +msgid "Invoke a callback *at* the given time." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:99 +msgid "Thread/Interpreter/Process Pool" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:104 +msgid "``await`` :meth:`loop.run_in_executor`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:105 +msgid "" +"Run a CPU-bound or other blocking function in a :mod:`concurrent.futures` " +"executor." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:108 +msgid ":meth:`loop.set_default_executor`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:109 +msgid "Set the default executor for :meth:`loop.run_in_executor`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:112 +msgid "Tasks and Futures" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:117 +msgid ":meth:`loop.create_future`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:118 +msgid "Create a :class:`Future` object." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:120 +msgid ":meth:`loop.create_task`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:121 +msgid "Schedule coroutine as a :class:`Task`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:123 +msgid ":meth:`loop.set_task_factory`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:124 +msgid "" +"Set a factory used by :meth:`loop.create_task` to create :class:`Tasks " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:127 +msgid ":meth:`loop.get_task_factory`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:128 +msgid "" +"Get the factory :meth:`loop.create_task` uses to create :class:`Tasks " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:132 +msgid "DNS" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:137 +msgid "``await`` :meth:`loop.getaddrinfo`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:138 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:140 +msgid "``await`` :meth:`loop.getnameinfo`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:141 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:144 +msgid "Networking and IPC" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:149 +msgid "``await`` :meth:`loop.create_connection`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:150 +msgid "Open a TCP connection." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:152 +msgid "``await`` :meth:`loop.create_server`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:153 +msgid "Create a TCP server." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:155 +msgid "``await`` :meth:`loop.create_unix_connection`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:156 +msgid "Open a Unix socket connection." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:158 +msgid "``await`` :meth:`loop.create_unix_server`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:159 +msgid "Create a Unix socket server." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:161 +msgid "``await`` :meth:`loop.connect_accepted_socket`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:162 +msgid "Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:165 +msgid "``await`` :meth:`loop.create_datagram_endpoint`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:166 +msgid "Open a datagram (UDP) connection." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:168 +msgid "``await`` :meth:`loop.sendfile`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:169 +msgid "Send a file over a transport." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:171 +msgid "``await`` :meth:`loop.start_tls`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:172 +msgid "Upgrade an existing connection to TLS." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:174 +msgid "``await`` :meth:`loop.connect_read_pipe`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:175 +msgid "Wrap a read end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:177 +msgid "``await`` :meth:`loop.connect_write_pipe`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:178 +msgid "Wrap a write end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:181 +msgid "Sockets" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:186 +msgid "``await`` :meth:`loop.sock_recv`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:187 +msgid "Receive data from the :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:189 +msgid "``await`` :meth:`loop.sock_recv_into`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:190 +msgid "Receive data from the :class:`~socket.socket` into a buffer." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:192 +msgid "``await`` :meth:`loop.sock_recvfrom`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:193 +msgid "Receive a datagram from the :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:195 +msgid "``await`` :meth:`loop.sock_recvfrom_into`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:196 +msgid "Receive a datagram from the :class:`~socket.socket` into a buffer." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:198 +msgid "``await`` :meth:`loop.sock_sendall`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:199 +msgid "Send data to the :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:201 +msgid "``await`` :meth:`loop.sock_sendto`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:202 +msgid "Send a datagram via the :class:`~socket.socket` to the given address." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:204 +msgid "``await`` :meth:`loop.sock_connect`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:205 +msgid "Connect the :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:207 +msgid "``await`` :meth:`loop.sock_accept`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:208 +msgid "Accept a :class:`~socket.socket` connection." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:210 +msgid "``await`` :meth:`loop.sock_sendfile`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:211 +msgid "Send a file over the :class:`~socket.socket`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:213 +msgid ":meth:`loop.add_reader`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:214 +msgid "Start watching a file descriptor for read availability." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:216 +msgid ":meth:`loop.remove_reader`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:217 +msgid "Stop watching a file descriptor for read availability." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:219 +msgid ":meth:`loop.add_writer`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:220 +msgid "Start watching a file descriptor for write availability." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:222 +msgid ":meth:`loop.remove_writer`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:223 +msgid "Stop watching a file descriptor for write availability." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:226 +msgid "Unix Signals" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:231 +msgid ":meth:`loop.add_signal_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:232 +msgid "Add a handler for a :mod:`signal`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:234 +msgid ":meth:`loop.remove_signal_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:235 +msgid "Remove a handler for a :mod:`signal`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:238 +msgid "Subprocesses" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:243 +msgid ":meth:`loop.subprocess_exec`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:244 +msgid "Spawn a subprocess." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:246 +msgid ":meth:`loop.subprocess_shell`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:247 +msgid "Spawn a subprocess from a shell command." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:250 +msgid "Error Handling" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:255 +msgid ":meth:`loop.call_exception_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:256 +msgid "Call the exception handler." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:258 +msgid ":meth:`loop.set_exception_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:259 +msgid "Set a new exception handler." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:261 +msgid ":meth:`loop.get_exception_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:262 +msgid "Get the current exception handler." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:264 +msgid ":meth:`loop.default_exception_handler`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:265 +msgid "The default exception handler implementation." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:270 +msgid "" +":ref:`Using asyncio.new_event_loop() and loop.run_forever() " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:273 +msgid ":ref:`Using loop.call_later() `." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:275 +msgid "" +"Using ``loop.create_connection()`` to implement :ref:`an echo-client " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:278 +msgid "" +"Using ``loop.create_connection()`` to :ref:`connect a socket " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:281 +msgid "" +":ref:`Using add_reader() to watch an FD for read events " +"`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:284 +msgid ":ref:`Using loop.add_signal_handler() `." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:286 +msgid ":ref:`Using loop.subprocess_exec() `." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:290 +msgid "Transports" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:292 +msgid "All transports implement the following methods:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:298 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:299 +msgid "Close the transport." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:301 +msgid ":meth:`transport.is_closing() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:302 +msgid "Return ``True`` if the transport is closing or is closed." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:304 +msgid ":meth:`transport.get_extra_info() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:305 +msgid "Request for information about the transport." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:307 +msgid ":meth:`transport.set_protocol() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:308 +msgid "Set a new protocol." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:310 +msgid ":meth:`transport.get_protocol() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:311 +msgid "Return the current protocol." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:314 +msgid "" +"Transports that can receive data (TCP and Unix connections, pipes, etc). " +"Returned from methods " +"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_read_pipe`, " +"etc:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:319 +msgid "Read Transports" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:324 +msgid ":meth:`transport.is_reading() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:325 +msgid "Return ``True`` if the transport is receiving." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:327 +msgid ":meth:`transport.pause_reading() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:328 +msgid "Pause receiving." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:330 +msgid ":meth:`transport.resume_reading() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:331 +msgid "Resume receiving." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:334 +msgid "" +"Transports that can Send data (TCP and Unix connections, pipes, etc). " +"Returned from methods " +"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_write_pipe`, " +"etc:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:339 +msgid "Write Transports" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:344 +msgid ":meth:`transport.write() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:345 +msgid "Write data to the transport." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:347 +msgid ":meth:`transport.writelines() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:348 +msgid "Write buffers to the transport." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:350 +msgid ":meth:`transport.can_write_eof() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:351 +msgid "Return :const:`True` if the transport supports sending EOF." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:353 +msgid ":meth:`transport.write_eof() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:354 +msgid "Close and send EOF after flushing buffered data." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:356 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:357 +#: ../../library/asyncio-llapi-index.rst:383 +msgid "Close the transport immediately." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:359 +msgid "" +":meth:`transport.get_write_buffer_size() " +"`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:361 +msgid "Return the current size of the output buffer." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:363 +msgid "" +":meth:`transport.get_write_buffer_limits() " +"`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:365 +msgid "Return high and low water marks for write flow control." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:367 +msgid "" +":meth:`transport.set_write_buffer_limits() " +"`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:369 +msgid "Set new high and low water marks for write flow control." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:372 +msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:374 +msgid "Datagram Transports" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:379 +msgid ":meth:`transport.sendto() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:380 +msgid "Send data to the remote peer." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:382 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:386 +msgid "" +"Low-level transport abstraction over subprocesses. Returned " +"by :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell`:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:390 +msgid "Subprocess Transports" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:395 +msgid ":meth:`transport.get_pid() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:396 +msgid "Return the subprocess process id." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:398 +msgid "" +":meth:`transport.get_pipe_transport() " +"`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:400 +msgid "" +"Return the transport for the requested communication pipe (*stdin*, " +"*stdout*, or *stderr*)." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:403 +msgid ":meth:`transport.get_returncode() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:404 +msgid "Return the subprocess return code." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:406 +msgid ":meth:`transport.kill() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:407 +msgid "Kill the subprocess." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:409 +msgid ":meth:`transport.send_signal() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:410 +msgid "Send a signal to the subprocess." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:412 +msgid ":meth:`transport.terminate() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:413 +msgid "Stop the subprocess." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:415 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:416 +msgid "Kill the subprocess and close all pipes." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:420 +msgid "Protocols" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:422 +msgid "Protocol classes can implement the following **callback methods**:" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:428 +msgid "``callback`` :meth:`connection_made() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:429 +msgid "Called when a connection is made." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:431 +msgid "``callback`` :meth:`connection_lost() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:432 +msgid "Called when the connection is lost or closed." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:434 +msgid "``callback`` :meth:`pause_writing() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:435 +msgid "Called when the transport's buffer goes over the high water mark." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:437 +msgid "``callback`` :meth:`resume_writing() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:438 +msgid "Called when the transport's buffer drains below the low water mark." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:441 +msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:446 +msgid "``callback`` :meth:`data_received() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:447 +msgid "Called when some data is received." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:449 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:450 +#: ../../library/asyncio-llapi-index.rst:465 +msgid "Called when an EOF is received." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:453 +msgid "Buffered Streaming Protocols" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:458 +msgid "``callback`` :meth:`get_buffer() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:459 +msgid "Called to allocate a new receive buffer." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:461 +msgid "``callback`` :meth:`buffer_updated() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:462 +msgid "Called when the buffer was updated with the received data." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:464 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:468 +msgid "Datagram Protocols" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:473 +msgid "" +"``callback`` :meth:`datagram_received() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:475 +msgid "Called when a datagram is received." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:477 +msgid "``callback`` :meth:`error_received() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:478 +msgid "" +"Called when a previous send or receive operation raises an :class:`OSError`." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:482 +msgid "Subprocess Protocols" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:487 +msgid "``callback`` :meth:`~SubprocessProtocol.pipe_data_received`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:488 +msgid "" +"Called when the child process writes data into its *stdout* or *stderr* pipe." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:491 +msgid "``callback`` :meth:`~SubprocessProtocol.pipe_connection_lost`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:492 +msgid "" +"Called when one of the pipes communicating with the child process is closed." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:495 +msgid "" +"``callback`` :meth:`process_exited() `" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:497 +msgid "" +"Called when the child process has exited. It can be called " +"before :meth:`~SubprocessProtocol.pipe_data_received` " +"and :meth:`~SubprocessProtocol.pipe_connection_lost` methods." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:503 +msgid "Event Loop Policies" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:505 +msgid "" +"Policies is a low-level mechanism to alter the behavior of functions " +"like :func:`asyncio.get_event_loop`. See also the main :ref:`policies " +"section ` for more details." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:511 +msgid "Accessing Policies" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:516 +msgid ":meth:`asyncio.get_event_loop_policy`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:517 +msgid "Return the current process-wide policy." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:519 +msgid ":meth:`asyncio.set_event_loop_policy`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:520 +msgid "Set a new process-wide policy." +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:522 +msgid ":class:`AbstractEventLoopPolicy`" +msgstr "" + +#: ../../library/asyncio-llapi-index.rst:523 +msgid "Base class for policy objects." +msgstr "" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po new file mode 100644 index 0000000..6f86659 --- /dev/null +++ b/library/asyncio-platforms.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-platforms.rst:9 +msgid "Platform Support" +msgstr "" + +#: ../../library/asyncio-platforms.rst:11 +msgid "" +"The :mod:`asyncio` module is designed to be portable, but some platforms " +"have subtle differences and limitations due to the platforms' underlying " +"architecture and capabilities." +msgstr "" + +#: ../../library/asyncio-platforms.rst:17 +msgid "All Platforms" +msgstr "" + +#: ../../library/asyncio-platforms.rst:19 +msgid "" +":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to " +"monitor file I/O." +msgstr "" + +#: ../../library/asyncio-platforms.rst:24 +msgid "Windows" +msgstr "" + +#: ../../library/asyncio-platforms.rst:26 +msgid "" +"**Source code:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" +"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" +msgstr "" + +#: ../../library/asyncio-platforms.rst:34 +msgid "On Windows, :class:`ProactorEventLoop` is now the default event loop." +msgstr "" + +#: ../../library/asyncio-platforms.rst:36 +msgid "All event loops on Windows do not support the following methods:" +msgstr "" + +#: ../../library/asyncio-platforms.rst:38 +msgid "" +":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " +"not supported. The :const:`socket.AF_UNIX` socket family is specific to Unix." +msgstr "" + +#: ../../library/asyncio-platforms.rst:42 +msgid "" +":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " +"not supported." +msgstr "" + +#: ../../library/asyncio-platforms.rst:45 +msgid ":class:`SelectorEventLoop` has the following limitations:" +msgstr "" + +#: ../../library/asyncio-platforms.rst:47 +msgid "" +":class:`~selectors.SelectSelector` is used to wait on socket events: it " +"supports sockets and is limited to 512 sockets." +msgstr "" + +#: ../../library/asyncio-platforms.rst:50 +msgid "" +":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket " +"handles (e.g. pipe file descriptors are not supported)." +msgstr "" + +#: ../../library/asyncio-platforms.rst:53 +msgid "" +"Pipes are not supported, so the :meth:`loop.connect_read_pipe` " +"and :meth:`loop.connect_write_pipe` methods are not implemented." +msgstr "" + +#: ../../library/asyncio-platforms.rst:56 +msgid "" +":ref:`Subprocesses ` are not supported, " +"i.e. :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods " +"are not implemented." +msgstr "" + +#: ../../library/asyncio-platforms.rst:60 +msgid ":class:`ProactorEventLoop` has the following limitations:" +msgstr "" + +#: ../../library/asyncio-platforms.rst:62 +msgid "" +"The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " +"supported." +msgstr "" + +#: ../../library/asyncio-platforms.rst:65 +msgid "" +"The resolution of the monotonic clock on Windows is usually around 15.6 " +"milliseconds. The best resolution is 0.5 milliseconds. The resolution " +"depends on the hardware (availability of `HPET `_) and on the Windows configuration." +msgstr "" + +#: ../../library/asyncio-platforms.rst:75 +msgid "Subprocess Support on Windows" +msgstr "" + +#: ../../library/asyncio-platforms.rst:77 +msgid "" +"On Windows, the default event loop :class:`ProactorEventLoop` supports " +"subprocesses, whereas :class:`SelectorEventLoop` does not." +msgstr "" + +#: ../../library/asyncio-platforms.rst:82 +msgid "macOS" +msgstr "" + +#: ../../library/asyncio-platforms.rst:84 +msgid "Modern macOS versions are fully supported." +msgstr "" + +#: ../../library/asyncio-platforms.rst:87 +msgid "macOS <= 10.8" +msgstr "" + +#: ../../library/asyncio-platforms.rst:88 +msgid "" +"On macOS 10.6, 10.7 and 10.8, the default event loop " +"uses :class:`selectors.KqueueSelector`, which does not support character " +"devices on these versions. The :class:`SelectorEventLoop` can be manually " +"configured to use :class:`~selectors.SelectSelector` " +"or :class:`~selectors.PollSelector` to support character devices on these " +"older versions of macOS. Example::" +msgstr "" + +#: ../../library/asyncio-platforms.rst:95 +msgid "" +"import asyncio\n" +"import selectors\n" +"\n" +"selector = selectors.SelectSelector()\n" +"loop = asyncio.SelectorEventLoop(selector)\n" +"asyncio.set_event_loop(loop)" +msgstr "" diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po new file mode 100644 index 0000000..47ee15a --- /dev/null +++ b/library/asyncio-policy.po @@ -0,0 +1,222 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-policy.rst:8 +msgid "Policies" +msgstr "" + +#: ../../library/asyncio-policy.rst:12 +msgid "" +"Policies are deprecated and will be removed in Python 3.16. Users are " +"encouraged to use the :func:`asyncio.run` function or " +"the :class:`asyncio.Runner` with *loop_factory* to use the desired loop " +"implementation." +msgstr "" + +#: ../../library/asyncio-policy.rst:18 +msgid "" +"An event loop policy is a global object used to get and set the " +"current :ref:`event loop `, as well as create new event " +"loops. The default policy can be :ref:`replaced ` " +"with :ref:`built-in alternatives ` to use different " +"event loop implementations, or substituted by a :ref:`custom policy ` that can override these behaviors." +msgstr "" + +#: ../../library/asyncio-policy.rst:27 +msgid "" +"The :ref:`policy object ` gets and sets a separate " +"event loop per *context*. This is per-thread by default, though custom " +"policies could define *context* differently." +msgstr "" + +#: ../../library/asyncio-policy.rst:32 +msgid "" +"Custom event loop policies can control the behavior " +"of :func:`get_event_loop`, :func:`set_event_loop`, " +"and :func:`new_event_loop`." +msgstr "" + +#: ../../library/asyncio-policy.rst:35 +msgid "" +"Policy objects should implement the APIs defined in " +"the :class:`AbstractEventLoopPolicy` abstract base class." +msgstr "" + +#: ../../library/asyncio-policy.rst:42 +msgid "Getting and Setting the Policy" +msgstr "" + +#: ../../library/asyncio-policy.rst:44 +msgid "" +"The following functions can be used to get and set the policy for the " +"current process:" +msgstr "" + +#: ../../library/asyncio-policy.rst:49 +msgid "Return the current process-wide policy." +msgstr "" + +#: ../../library/asyncio-policy.rst:51 +msgid "" +"The :func:`get_event_loop_policy` function is deprecated and will be removed " +"in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:57 +msgid "Set the current process-wide policy to *policy*." +msgstr "" + +#: ../../library/asyncio-policy.rst:59 +msgid "If *policy* is set to ``None``, the default policy is restored." +msgstr "" + +#: ../../library/asyncio-policy.rst:61 +msgid "" +"The :func:`set_event_loop_policy` function is deprecated and will be removed " +"in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:69 +msgid "Policy Objects" +msgstr "" + +#: ../../library/asyncio-policy.rst:71 +msgid "The abstract event loop policy base class is defined as follows:" +msgstr "" + +#: ../../library/asyncio-policy.rst:75 +msgid "An abstract base class for asyncio policies." +msgstr "" + +#: ../../library/asyncio-policy.rst:79 +msgid "Get the event loop for the current context." +msgstr "" + +#: ../../library/asyncio-policy.rst:81 +msgid "" +"Return an event loop object implementing the :class:`AbstractEventLoop` " +"interface." +msgstr "" + +#: ../../library/asyncio-policy.rst:84 ../../library/asyncio-policy.rst:96 +msgid "This method should never return ``None``." +msgstr "" + +#: ../../library/asyncio-policy.rst:90 +msgid "Set the event loop for the current context to *loop*." +msgstr "" + +#: ../../library/asyncio-policy.rst:94 +msgid "Create and return a new event loop object." +msgstr "" + +#: ../../library/asyncio-policy.rst:98 +msgid "" +"The :class:`AbstractEventLoopPolicy` class is deprecated and will be removed " +"in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:105 +msgid "asyncio ships with the following built-in policies:" +msgstr "" + +#: ../../library/asyncio-policy.rst:110 +msgid "" +"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix " +"and :class:`ProactorEventLoop` on Windows." +msgstr "" + +#: ../../library/asyncio-policy.rst:113 +msgid "" +"There is no need to install the default policy manually. asyncio is " +"configured to use the default policy automatically." +msgstr "" + +#: ../../library/asyncio-policy.rst:118 +msgid "On Windows, :class:`ProactorEventLoop` is now used by default." +msgstr "" + +#: ../../library/asyncio-policy.rst:120 +msgid "" +"The :meth:`get_event_loop` method of the default asyncio policy now raises " +"a :exc:`RuntimeError` if there is no set event loop." +msgstr "" + +#: ../../library/asyncio-policy.rst:124 +msgid "" +"The :class:`DefaultEventLoopPolicy` class is deprecated and will be removed " +"in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:131 +msgid "" +"An alternative event loop policy that uses the :class:`SelectorEventLoop` " +"event loop implementation." +msgstr "" + +#: ../../library/asyncio-policy.rst:134 ../../library/asyncio-policy.rst:146 +msgid "Availability" +msgstr "" + +#: ../../library/asyncio-policy.rst:136 +msgid "" +"The :class:`WindowsSelectorEventLoopPolicy` class is deprecated and will be " +"removed in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:143 +msgid "" +"An alternative event loop policy that uses the :class:`ProactorEventLoop` " +"event loop implementation." +msgstr "" + +#: ../../library/asyncio-policy.rst:148 +msgid "" +"The :class:`WindowsProactorEventLoopPolicy` class is deprecated and will be " +"removed in Python 3.16." +msgstr "" + +#: ../../library/asyncio-policy.rst:156 +msgid "Custom Policies" +msgstr "" + +#: ../../library/asyncio-policy.rst:158 +msgid "" +"To implement a new event loop policy, it is recommended to " +"subclass :class:`DefaultEventLoopPolicy` and override the methods for which " +"custom behavior is wanted, e.g.::" +msgstr "" + +#: ../../library/asyncio-policy.rst:162 +msgid "" +"class MyEventLoopPolicy(asyncio.DefaultEventLoopPolicy):\n" +"\n" +" def get_event_loop(self):\n" +" \"\"\"Get the event loop.\n" +"\n" +" This may be None or an instance of EventLoop.\n" +" \"\"\"\n" +" loop = super().get_event_loop()\n" +" # Do something with loop ...\n" +" return loop\n" +"\n" +"asyncio.set_event_loop_policy(MyEventLoopPolicy())" +msgstr "" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po new file mode 100644 index 0000000..2de3c54 --- /dev/null +++ b/library/asyncio-protocol.po @@ -0,0 +1,1360 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-protocol.rst:9 +msgid "Transports and Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:12 +msgid "Preface" +msgstr "" + +#: ../../library/asyncio-protocol.rst:13 +msgid "" +"Transports and Protocols are used by the **low-level** event loop APIs such " +"as :meth:`loop.create_connection`. They use callback-based programming " +"style and enable high-performance implementations of network or IPC " +"protocols (e.g. HTTP)." +msgstr "" + +#: ../../library/asyncio-protocol.rst:18 +msgid "" +"Essentially, transports and protocols should only be used in libraries and " +"frameworks and never in high-level asyncio applications." +msgstr "" + +#: ../../library/asyncio-protocol.rst:22 +msgid "This documentation page covers both `Transports`_ and `Protocols`_." +msgstr "" + +#: ../../library/asyncio-protocol.rst:25 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../library/asyncio-protocol.rst:26 +msgid "" +"At the highest level, the transport is concerned with *how* bytes are " +"transmitted, while the protocol determines *which* bytes to transmit (and to " +"some extent when)." +msgstr "" + +#: ../../library/asyncio-protocol.rst:30 +msgid "" +"A different way of saying the same thing: a transport is an abstraction for " +"a socket (or similar I/O endpoint) while a protocol is an abstraction for an " +"application, from the transport's point of view." +msgstr "" + +#: ../../library/asyncio-protocol.rst:35 +msgid "" +"Yet another view is the transport and protocol interfaces together define an " +"abstract interface for using network I/O and interprocess I/O." +msgstr "" + +#: ../../library/asyncio-protocol.rst:39 +msgid "" +"There is always a 1:1 relationship between transport and protocol objects: " +"the protocol calls transport methods to send data, while the transport calls " +"protocol methods to pass it data that has been received." +msgstr "" + +#: ../../library/asyncio-protocol.rst:44 +msgid "" +"Most of connection oriented event loop methods (such " +"as :meth:`loop.create_connection`) usually accept a *protocol_factory* " +"argument used to create a *Protocol* object for an accepted connection, " +"represented by a *Transport* object. Such methods usually return a tuple of " +"``(transport, protocol)``." +msgstr "" + +#: ../../library/asyncio-protocol.rst:51 +msgid "Contents" +msgstr "" + +#: ../../library/asyncio-protocol.rst:52 +msgid "This documentation page contains the following sections:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:54 +msgid "" +"The `Transports`_ section documents " +"asyncio :class:`BaseTransport`, :class:`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:`DatagramTransport`, " +"and :class:`SubprocessTransport` classes." +msgstr "" + +#: ../../library/asyncio-protocol.rst:59 +msgid "" +"The `Protocols`_ section documents " +"asyncio :class:`BaseProtocol`, :class:`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, " +"and :class:`SubprocessProtocol` classes." +msgstr "" + +#: ../../library/asyncio-protocol.rst:63 +msgid "" +"The `Examples`_ section showcases how to work with transports, protocols, " +"and low-level event loop APIs." +msgstr "" + +#: ../../library/asyncio-protocol.rst:70 +msgid "Transports" +msgstr "" + +#: ../../library/asyncio-protocol.rst:72 +msgid "**Source code:** :source:`Lib/asyncio/transports.py`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:76 +msgid "" +"Transports are classes provided by :mod:`asyncio` in order to abstract " +"various kinds of communication channels." +msgstr "" + +#: ../../library/asyncio-protocol.rst:79 +msgid "" +"Transport objects are always instantiated by an :ref:`asyncio event loop " +"`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:82 +msgid "" +"asyncio implements transports for TCP, UDP, SSL, and subprocess pipes. The " +"methods available on a transport depend on the transport's kind." +msgstr "" + +#: ../../library/asyncio-protocol.rst:85 +msgid "" +"The transport classes are :ref:`not thread safe `." +msgstr "" + +#: ../../library/asyncio-protocol.rst:89 +msgid "Transports Hierarchy" +msgstr "" + +#: ../../library/asyncio-protocol.rst:93 +msgid "" +"Base class for all transports. Contains methods that all asyncio transports " +"share." +msgstr "" + +#: ../../library/asyncio-protocol.rst:98 +msgid "A base transport for write-only connections." +msgstr "" + +#: ../../library/asyncio-protocol.rst:100 +msgid "" +"Instances of the *WriteTransport* class are returned from " +"the :meth:`loop.connect_write_pipe` event loop method and are also used by " +"subprocess-related methods like :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:107 +msgid "A base transport for read-only connections." +msgstr "" + +#: ../../library/asyncio-protocol.rst:109 +msgid "" +"Instances of the *ReadTransport* class are returned from " +"the :meth:`loop.connect_read_pipe` event loop method and are also used by " +"subprocess-related methods like :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:116 +msgid "" +"Interface representing a bidirectional transport, such as a TCP connection." +msgstr "" + +#: ../../library/asyncio-protocol.rst:119 +msgid "" +"The user does not instantiate a transport directly; they call a utility " +"function, passing it a protocol factory and other information necessary to " +"create the transport and protocol." +msgstr "" + +#: ../../library/asyncio-protocol.rst:123 +msgid "" +"Instances of the *Transport* class are returned from or used by event loop " +"methods " +"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.create_server`, :meth:`loop.sendfile`, " +"etc." +msgstr "" + +#: ../../library/asyncio-protocol.rst:131 +msgid "A transport for datagram (UDP) connections." +msgstr "" + +#: ../../library/asyncio-protocol.rst:133 +msgid "" +"Instances of the *DatagramTransport* class are returned from " +"the :meth:`loop.create_datagram_endpoint` event loop method." +msgstr "" + +#: ../../library/asyncio-protocol.rst:139 +msgid "" +"An abstraction to represent a connection between a parent and its child OS " +"process." +msgstr "" + +#: ../../library/asyncio-protocol.rst:142 +msgid "" +"Instances of the *SubprocessTransport* class are returned from event loop " +"methods :meth:`loop.subprocess_shell` and :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:148 +msgid "Base Transport" +msgstr "" + +#: ../../library/asyncio-protocol.rst:152 +msgid "Close the transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:154 +msgid "" +"If the transport has a buffer for outgoing data, buffered data will be " +"flushed asynchronously. No more data will be received. After all buffered " +"data is flushed, the protocol's :meth:`protocol.connection_lost() " +"` method will be called with :const:`None` as " +"its argument. The transport should not be used once it is closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:164 +msgid "Return ``True`` if the transport is closing or is closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:168 +msgid "Return information about the transport or underlying resources it uses." +msgstr "" + +#: ../../library/asyncio-protocol.rst:171 +msgid "" +"*name* is a string representing the piece of transport-specific information " +"to get." +msgstr "" + +#: ../../library/asyncio-protocol.rst:174 +msgid "" +"*default* is the value to return if the information is not available, or if " +"the transport does not support querying it with the given third-party event " +"loop implementation or on the current platform." +msgstr "" + +#: ../../library/asyncio-protocol.rst:179 +msgid "" +"For example, the following code attempts to get the underlying socket object " +"of the transport::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:182 +msgid "" +"sock = transport.get_extra_info('socket')\n" +"if sock is not None:\n" +" print(sock.getsockopt(...))" +msgstr "" + +#: ../../library/asyncio-protocol.rst:186 +msgid "Categories of information that can be queried on some transports:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:188 +msgid "socket:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:190 +msgid "" +"``'peername'``: the remote address to which the socket is connected, result " +"of :meth:`socket.socket.getpeername` (``None`` on error)" +msgstr "" + +#: ../../library/asyncio-protocol.rst:194 +msgid "``'socket'``: :class:`socket.socket` instance" +msgstr "" + +#: ../../library/asyncio-protocol.rst:196 +msgid "" +"``'sockname'``: the socket's own address, result " +"of :meth:`socket.socket.getsockname`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:199 +msgid "SSL socket:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:201 +msgid "" +"``'compression'``: the compression algorithm being used as a string, or " +"``None`` if the connection isn't compressed; result " +"of :meth:`ssl.SSLSocket.compression`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:205 +msgid "" +"``'cipher'``: a three-value tuple containing the name of the cipher being " +"used, the version of the SSL protocol that defines its use, and the number " +"of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:210 +msgid "" +"``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:213 +msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" +msgstr "" + +#: ../../library/asyncio-protocol.rst:215 +msgid "" +"``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" +msgstr "" + +#: ../../library/asyncio-protocol.rst:218 +msgid "pipe:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:220 +msgid "``'pipe'``: pipe object" +msgstr "" + +#: ../../library/asyncio-protocol.rst:222 +msgid "subprocess:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:224 +msgid "``'subprocess'``: :class:`subprocess.Popen` instance" +msgstr "" + +#: ../../library/asyncio-protocol.rst:228 +msgid "Set a new protocol." +msgstr "" + +#: ../../library/asyncio-protocol.rst:230 +msgid "" +"Switching protocol should only be done when both protocols are documented to " +"support the switch." +msgstr "" + +#: ../../library/asyncio-protocol.rst:235 +msgid "Return the current protocol." +msgstr "" + +#: ../../library/asyncio-protocol.rst:239 +msgid "Read-only Transports" +msgstr "" + +#: ../../library/asyncio-protocol.rst:243 +msgid "Return ``True`` if the transport is receiving new data." +msgstr "" + +#: ../../library/asyncio-protocol.rst:249 +msgid "" +"Pause the receiving end of the transport. No data will be passed to the " +"protocol's :meth:`protocol.data_received() ` method " +"until :meth:`resume_reading` is called." +msgstr "" + +#: ../../library/asyncio-protocol.rst:253 +msgid "" +"The method is idempotent, i.e. it can be called when the transport is " +"already paused or closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:259 +msgid "" +"Resume the receiving end. The protocol's :meth:`protocol.data_received() " +"` method will be called once again if some data is " +"available for reading." +msgstr "" + +#: ../../library/asyncio-protocol.rst:263 +msgid "" +"The method is idempotent, i.e. it can be called when the transport is " +"already reading." +msgstr "" + +#: ../../library/asyncio-protocol.rst:269 +msgid "Write-only Transports" +msgstr "" + +#: ../../library/asyncio-protocol.rst:273 +msgid "" +"Close the transport immediately, without waiting for pending operations to " +"complete. Buffered data will be lost. No more data will be received. The " +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." +msgstr "" + +#: ../../library/asyncio-protocol.rst:281 +msgid "" +"Return :const:`True` if the transport " +"supports :meth:`~WriteTransport.write_eof`, :const:`False` if not." +msgstr "" + +#: ../../library/asyncio-protocol.rst:286 +msgid "Return the current size of the output buffer used by the transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:290 +msgid "" +"Get the *high* and *low* watermarks for write flow control. Return a tuple " +"``(low, high)`` where *low* and *high* are positive number of bytes." +msgstr "" + +#: ../../library/asyncio-protocol.rst:294 +msgid "Use :meth:`set_write_buffer_limits` to set the limits." +msgstr "" + +#: ../../library/asyncio-protocol.rst:300 +msgid "Set the *high* and *low* watermarks for write flow control." +msgstr "" + +#: ../../library/asyncio-protocol.rst:302 +msgid "" +"These two values (measured in number of bytes) control when the " +"protocol's :meth:`protocol.pause_writing() ` " +"and :meth:`protocol.resume_writing() ` methods " +"are called. If specified, the low watermark must be less than or equal to " +"the high watermark. Neither *high* nor *low* can be negative." +msgstr "" + +#: ../../library/asyncio-protocol.rst:310 +msgid "" +":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes " +"greater than or equal to the *high* value. If writing has been " +"paused, :meth:`~BaseProtocol.resume_writing` is called when the buffer size " +"becomes less than or equal to the *low* value." +msgstr "" + +#: ../../library/asyncio-protocol.rst:315 +msgid "" +"The defaults are implementation-specific. If only the high watermark is " +"given, the low watermark defaults to an implementation-specific value less " +"than or equal to the high watermark. Setting *high* to zero forces *low* to " +"zero as well, and causes :meth:`~BaseProtocol.pause_writing` to be called " +"whenever the buffer becomes non-empty. Setting *low* to zero " +"causes :meth:`~BaseProtocol.resume_writing` to be called only once the " +"buffer is empty. Use of zero for either limit is generally sub-optimal as it " +"reduces opportunities for doing I/O and computation concurrently." +msgstr "" + +#: ../../library/asyncio-protocol.rst:326 +msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." +msgstr "" + +#: ../../library/asyncio-protocol.rst:331 +msgid "Write some *data* bytes to the transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:333 +#: ../../library/asyncio-protocol.rst:362 +msgid "" +"This method does not block; it buffers the data and arranges for it to be " +"sent out asynchronously." +msgstr "" + +#: ../../library/asyncio-protocol.rst:338 +msgid "" +"Write a list (or any iterable) of data bytes to the transport. This is " +"functionally equivalent to calling :meth:`write` on each element yielded by " +"the iterable, but may be implemented more efficiently." +msgstr "" + +#: ../../library/asyncio-protocol.rst:345 +msgid "" +"Close the write end of the transport after flushing all buffered data. Data " +"may still be received." +msgstr "" + +#: ../../library/asyncio-protocol.rst:348 +msgid "" +"This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " +"doesn't support half-closed connections." +msgstr "" + +#: ../../library/asyncio-protocol.rst:353 +msgid "Datagram Transports" +msgstr "" + +#: ../../library/asyncio-protocol.rst:357 +msgid "" +"Send the *data* bytes to the remote peer given by *addr* (a transport-" +"dependent target address). If *addr* is :const:`None`, the data is sent to " +"the target address given on transport creation." +msgstr "" + +#: ../../library/asyncio-protocol.rst:365 +msgid "" +"This method can be called with an empty bytes object to send a zero-length " +"datagram. The buffer size calculation used for flow control is also updated " +"to account for the datagram header." +msgstr "" + +#: ../../library/asyncio-protocol.rst:372 +msgid "" +"Close the transport immediately, without waiting for pending operations to " +"complete. Buffered data will be lost. No more data will be received. The " +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." +msgstr "" + +#: ../../library/asyncio-protocol.rst:382 +msgid "Subprocess Transports" +msgstr "" + +#: ../../library/asyncio-protocol.rst:386 +msgid "Return the subprocess process id as an integer." +msgstr "" + +#: ../../library/asyncio-protocol.rst:390 +msgid "" +"Return the transport for the communication pipe corresponding to the integer " +"file descriptor *fd*:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:393 +msgid "" +"``0``: readable streaming transport of the standard input (*stdin*), " +"or :const:`None` if the subprocess was not created with ``stdin=PIPE``" +msgstr "" + +#: ../../library/asyncio-protocol.rst:395 +msgid "" +"``1``: writable streaming transport of the standard output (*stdout*), " +"or :const:`None` if the subprocess was not created with ``stdout=PIPE``" +msgstr "" + +#: ../../library/asyncio-protocol.rst:397 +msgid "" +"``2``: writable streaming transport of the standard error (*stderr*), " +"or :const:`None` if the subprocess was not created with ``stderr=PIPE``" +msgstr "" + +#: ../../library/asyncio-protocol.rst:399 +msgid "other *fd*: :const:`None`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:403 +msgid "" +"Return the subprocess return code as an integer or :const:`None` if it " +"hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` " +"attribute." +msgstr "" + +#: ../../library/asyncio-protocol.rst:409 +msgid "Kill the subprocess." +msgstr "" + +#: ../../library/asyncio-protocol.rst:411 +msgid "" +"On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, " +"this method is an alias for :meth:`terminate`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:414 +msgid "See also :meth:`subprocess.Popen.kill`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:418 +msgid "" +"Send the *signal* number to the subprocess, as " +"in :meth:`subprocess.Popen.send_signal`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:423 +msgid "Stop the subprocess." +msgstr "" + +#: ../../library/asyncio-protocol.rst:425 +msgid "" +"On POSIX systems, this method sends :py:const:`~signal.SIGTERM` to the " +"subprocess. On Windows, the Windows API function :c:func:`!TerminateProcess` " +"is called to stop the subprocess." +msgstr "" + +#: ../../library/asyncio-protocol.rst:429 +msgid "See also :meth:`subprocess.Popen.terminate`." +msgstr "" + +#: ../../library/asyncio-protocol.rst:433 +msgid "Kill the subprocess by calling the :meth:`kill` method." +msgstr "" + +#: ../../library/asyncio-protocol.rst:435 +msgid "" +"If the subprocess hasn't returned yet, and close transports of *stdin*, " +"*stdout*, and *stderr* pipes." +msgstr "" + +#: ../../library/asyncio-protocol.rst:442 +msgid "Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:444 +msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" +msgstr "" + +#: ../../library/asyncio-protocol.rst:448 +msgid "" +"asyncio provides a set of abstract base classes that should be used to " +"implement network protocols. Those classes are meant to be used together " +"with :ref:`transports `." +msgstr "" + +#: ../../library/asyncio-protocol.rst:452 +msgid "" +"Subclasses of abstract base protocol classes may implement some or all " +"methods. All these methods are callbacks: they are called by transports on " +"certain events, for example when some data is received. A base protocol " +"method should be called by the corresponding transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:459 +msgid "Base Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:463 +msgid "Base protocol with methods that all protocols share." +msgstr "" + +#: ../../library/asyncio-protocol.rst:467 +msgid "" +"The base class for implementing streaming protocols (TCP, Unix sockets, etc)." +msgstr "" + +#: ../../library/asyncio-protocol.rst:472 +msgid "" +"A base class for implementing streaming protocols with manual control of the " +"receive buffer." +msgstr "" + +#: ../../library/asyncio-protocol.rst:477 +msgid "The base class for implementing datagram (UDP) protocols." +msgstr "" + +#: ../../library/asyncio-protocol.rst:481 +msgid "" +"The base class for implementing protocols communicating with child processes " +"(unidirectional pipes)." +msgstr "" + +#: ../../library/asyncio-protocol.rst:486 +msgid "Base Protocol" +msgstr "" + +#: ../../library/asyncio-protocol.rst:488 +msgid "All asyncio protocols can implement Base Protocol callbacks." +msgstr "" + +#: ../../library/asyncio-protocol.rst:491 +msgid "Connection Callbacks" +msgstr "" + +#: ../../library/asyncio-protocol.rst:492 +msgid "" +"Connection callbacks are called on all protocols, exactly once per a " +"successful connection. All other protocol callbacks can only be called " +"between those two methods." +msgstr "" + +#: ../../library/asyncio-protocol.rst:498 +msgid "Called when a connection is made." +msgstr "" + +#: ../../library/asyncio-protocol.rst:500 +msgid "" +"The *transport* argument is the transport representing the connection. The " +"protocol is responsible for storing the reference to its transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:506 +msgid "Called when the connection is lost or closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:508 +msgid "" +"The argument is either an exception object or :const:`None`. The latter " +"means a regular EOF is received, or the connection was aborted or closed by " +"this side of the connection." +msgstr "" + +#: ../../library/asyncio-protocol.rst:514 +msgid "Flow Control Callbacks" +msgstr "" + +#: ../../library/asyncio-protocol.rst:515 +msgid "" +"Flow control callbacks can be called by transports to pause or resume " +"writing performed by the protocol." +msgstr "" + +#: ../../library/asyncio-protocol.rst:518 +msgid "" +"See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " +"method for more details." +msgstr "" + +#: ../../library/asyncio-protocol.rst:523 +msgid "Called when the transport's buffer goes over the high watermark." +msgstr "" + +#: ../../library/asyncio-protocol.rst:527 +msgid "Called when the transport's buffer drains below the low watermark." +msgstr "" + +#: ../../library/asyncio-protocol.rst:529 +msgid "" +"If the buffer size equals the high " +"watermark, :meth:`~BaseProtocol.pause_writing` is not called: the buffer " +"size must go strictly over." +msgstr "" + +#: ../../library/asyncio-protocol.rst:533 +msgid "" +"Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer " +"size is equal or lower than the low watermark. These end conditions are " +"important to ensure that things go as expected when either mark is zero." +msgstr "" + +#: ../../library/asyncio-protocol.rst:540 +msgid "Streaming Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:542 +msgid "" +"Event methods, such " +"as :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_accepted_socket`, :meth:`loop.connect_read_pipe`, " +"and :meth:`loop.connect_write_pipe` accept factories that return streaming " +"protocols." +msgstr "" + +#: ../../library/asyncio-protocol.rst:550 +msgid "" +"Called when some data is received. *data* is a non-empty bytes object " +"containing the incoming data." +msgstr "" + +#: ../../library/asyncio-protocol.rst:553 +msgid "" +"Whether the data is buffered, chunked or reassembled depends on the " +"transport. In general, you shouldn't rely on specific semantics and instead " +"make your parsing generic and flexible. However, data is always received in " +"the correct order." +msgstr "" + +#: ../../library/asyncio-protocol.rst:558 +msgid "" +"The method can be called an arbitrary number of times while a connection is " +"open." +msgstr "" + +#: ../../library/asyncio-protocol.rst:561 +msgid "" +"However, :meth:`protocol.eof_received() ` is called " +"at most once. Once ``eof_received()`` is called, ``data_received()`` is not " +"called anymore." +msgstr "" + +#: ../../library/asyncio-protocol.rst:567 +msgid "" +"Called when the other end signals it won't send any more data (for example " +"by calling :meth:`transport.write_eof() `, if the " +"other end also uses asyncio)." +msgstr "" + +#: ../../library/asyncio-protocol.rst:572 +msgid "" +"This method may return a false value (including ``None``), in which case the " +"transport will close itself. Conversely, if this method returns a true " +"value, the protocol used determines whether to close the transport. Since " +"the default implementation returns ``None``, it implicitly closes the " +"connection." +msgstr "" + +#: ../../library/asyncio-protocol.rst:578 +msgid "" +"Some transports, including SSL, don't support half-closed connections, in " +"which case returning true from this method will result in the connection " +"being closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:583 +#: ../../library/asyncio-protocol.rst:641 +msgid "State machine:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:585 +msgid "" +"start -> connection_made\n" +" [-> data_received]*\n" +" [-> eof_received]?\n" +"-> connection_lost -> end" +msgstr "" + +#: ../../library/asyncio-protocol.rst:594 +msgid "Buffered Streaming Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:598 +msgid "" +"Buffered Protocols can be used with any event loop method that supports " +"`Streaming Protocols`_." +msgstr "" + +#: ../../library/asyncio-protocol.rst:601 +msgid "" +"``BufferedProtocol`` implementations allow explicit manual allocation and " +"control of the receive buffer. Event loops can then use the buffer provided " +"by the protocol to avoid unnecessary data copies. This can result in " +"noticeable performance improvement for protocols that receive big amounts of " +"data. Sophisticated protocol implementations can significantly reduce the " +"number of buffer allocations." +msgstr "" + +#: ../../library/asyncio-protocol.rst:608 +msgid "" +"The following callbacks are called on :class:`BufferedProtocol` instances:" +msgstr "" + +#: ../../library/asyncio-protocol.rst:613 +msgid "Called to allocate a new receive buffer." +msgstr "" + +#: ../../library/asyncio-protocol.rst:615 +msgid "" +"*sizehint* is the recommended minimum size for the returned buffer. It is " +"acceptable to return smaller or larger buffers than what *sizehint* " +"suggests. When set to -1, the buffer size can be arbitrary. It is an error " +"to return a buffer with a zero size." +msgstr "" + +#: ../../library/asyncio-protocol.rst:620 +msgid "" +"``get_buffer()`` must return an object implementing the :ref:`buffer " +"protocol `." +msgstr "" + +#: ../../library/asyncio-protocol.rst:625 +msgid "Called when the buffer was updated with the received data." +msgstr "" + +#: ../../library/asyncio-protocol.rst:627 +msgid "*nbytes* is the total number of bytes that were written to the buffer." +msgstr "" + +#: ../../library/asyncio-protocol.rst:631 +msgid "" +"See the documentation of the :meth:`protocol.eof_received() " +"` method." +msgstr "" + +#: ../../library/asyncio-protocol.rst:635 +msgid "" +":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " +"times during a connection. However, :meth:`protocol.eof_received() " +"` is called at most once and, if " +"called, :meth:`~BufferedProtocol.get_buffer` " +"and :meth:`~BufferedProtocol.buffer_updated` won't be called after it." +msgstr "" + +#: ../../library/asyncio-protocol.rst:643 +msgid "" +"start -> connection_made\n" +" [-> get_buffer\n" +" [-> buffer_updated]?\n" +" ]*\n" +" [-> eof_received]?\n" +"-> connection_lost -> end" +msgstr "" + +#: ../../library/asyncio-protocol.rst:654 +msgid "Datagram Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:656 +msgid "" +"Datagram Protocol instances should be constructed by protocol factories " +"passed to the :meth:`loop.create_datagram_endpoint` method." +msgstr "" + +#: ../../library/asyncio-protocol.rst:661 +msgid "" +"Called when a datagram is received. *data* is a bytes object containing the " +"incoming data. *addr* is the address of the peer sending the data; the " +"exact format depends on the transport." +msgstr "" + +#: ../../library/asyncio-protocol.rst:667 +msgid "" +"Called when a previous send or receive operation raises " +"an :class:`OSError`. *exc* is the :class:`OSError` instance." +msgstr "" + +#: ../../library/asyncio-protocol.rst:670 +msgid "" +"This method is called in rare conditions, when the transport (e.g. UDP) " +"detects that a datagram could not be delivered to its recipient. In many " +"conditions though, undeliverable datagrams will be silently dropped." +msgstr "" + +#: ../../library/asyncio-protocol.rst:677 +msgid "" +"On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for " +"datagram protocols, because there is no reliable way to detect send failures " +"caused by writing too many packets." +msgstr "" + +#: ../../library/asyncio-protocol.rst:681 +msgid "" +"The socket always appears 'ready' and excess packets are dropped. " +"An :class:`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may " +"not be raised; if it is raised, it will be reported " +"to :meth:`DatagramProtocol.error_received` but otherwise ignored." +msgstr "" + +#: ../../library/asyncio-protocol.rst:690 +msgid "Subprocess Protocols" +msgstr "" + +#: ../../library/asyncio-protocol.rst:692 +msgid "" +"Subprocess Protocol instances should be constructed by protocol factories " +"passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` " +"methods." +msgstr "" + +#: ../../library/asyncio-protocol.rst:698 +msgid "" +"Called when the child process writes data into its stdout or stderr pipe." +msgstr "" + +#: ../../library/asyncio-protocol.rst:701 +msgid "*fd* is the integer file descriptor of the pipe." +msgstr "" + +#: ../../library/asyncio-protocol.rst:703 +msgid "*data* is a non-empty bytes object containing the received data." +msgstr "" + +#: ../../library/asyncio-protocol.rst:707 +msgid "" +"Called when one of the pipes communicating with the child process is closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:710 +msgid "*fd* is the integer file descriptor that was closed." +msgstr "" + +#: ../../library/asyncio-protocol.rst:714 +msgid "Called when the child process has exited." +msgstr "" + +#: ../../library/asyncio-protocol.rst:716 +msgid "" +"It can be called before :meth:`~SubprocessProtocol.pipe_data_received` " +"and :meth:`~SubprocessProtocol.pipe_connection_lost` methods." +msgstr "" + +#: ../../library/asyncio-protocol.rst:721 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-protocol.rst:726 +msgid "TCP Echo Server" +msgstr "" + +#: ../../library/asyncio-protocol.rst:728 +msgid "" +"Create a TCP echo server using the :meth:`loop.create_server` method, send " +"back received data, and close the connection::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:731 +msgid "" +"import asyncio\n" +"\n" +"\n" +"class EchoServerProtocol(asyncio.Protocol):\n" +" def connection_made(self, transport):\n" +" peername = transport.get_extra_info('peername')\n" +" print('Connection from {}'.format(peername))\n" +" self.transport = transport\n" +"\n" +" def data_received(self, data):\n" +" message = data.decode()\n" +" print('Data received: {!r}'.format(message))\n" +"\n" +" print('Send: {!r}'.format(message))\n" +" self.transport.write(data)\n" +"\n" +" print('Close the client socket')\n" +" self.transport.close()\n" +"\n" +"\n" +"async def main():\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" server = await loop.create_server(\n" +" EchoServerProtocol,\n" +" '127.0.0.1', 8888)\n" +"\n" +" async with server:\n" +" await server.serve_forever()\n" +"\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-protocol.rst:769 +msgid "" +"The :ref:`TCP echo server using streams ` " +"example uses the high-level :func:`asyncio.start_server` function." +msgstr "" + +#: ../../library/asyncio-protocol.rst:775 +msgid "TCP Echo Client" +msgstr "" + +#: ../../library/asyncio-protocol.rst:777 +msgid "" +"A TCP echo client using the :meth:`loop.create_connection` method, sends " +"data, and waits until the connection is closed::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:780 +msgid "" +"import asyncio\n" +"\n" +"\n" +"class EchoClientProtocol(asyncio.Protocol):\n" +" def __init__(self, message, on_con_lost):\n" +" self.message = message\n" +" self.on_con_lost = on_con_lost\n" +"\n" +" def connection_made(self, transport):\n" +" transport.write(self.message.encode())\n" +" print('Data sent: {!r}'.format(self.message))\n" +"\n" +" def data_received(self, data):\n" +" print('Data received: {!r}'.format(data.decode()))\n" +"\n" +" def connection_lost(self, exc):\n" +" print('The server closed the connection')\n" +" self.on_con_lost.set_result(True)\n" +"\n" +"\n" +"async def main():\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" on_con_lost = loop.create_future()\n" +" message = 'Hello World!'\n" +"\n" +" transport, protocol = await loop.create_connection(\n" +" lambda: EchoClientProtocol(message, on_con_lost),\n" +" '127.0.0.1', 8888)\n" +"\n" +" # Wait until the protocol signals that the connection\n" +" # is lost and close the transport.\n" +" try:\n" +" await on_con_lost\n" +" finally:\n" +" transport.close()\n" +"\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-protocol.rst:825 +msgid "" +"The :ref:`TCP echo client using streams ` " +"example uses the high-level :func:`asyncio.open_connection` function." +msgstr "" + +#: ../../library/asyncio-protocol.rst:832 +msgid "UDP Echo Server" +msgstr "" + +#: ../../library/asyncio-protocol.rst:834 +msgid "" +"A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " +"sends back received data::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:837 +msgid "" +"import asyncio\n" +"\n" +"\n" +"class EchoServerProtocol:\n" +" def connection_made(self, transport):\n" +" self.transport = transport\n" +"\n" +" def datagram_received(self, data, addr):\n" +" message = data.decode()\n" +" print('Received %r from %s' % (message, addr))\n" +" print('Send %r to %s' % (message, addr))\n" +" self.transport.sendto(data, addr)\n" +"\n" +"\n" +"async def main():\n" +" print(\"Starting UDP server\")\n" +"\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" # One protocol instance will be created to serve all\n" +" # client requests.\n" +" transport, protocol = await loop.create_datagram_endpoint(\n" +" EchoServerProtocol,\n" +" local_addr=('127.0.0.1', 9999))\n" +"\n" +" try:\n" +" await asyncio.sleep(3600) # Serve for 1 hour.\n" +" finally:\n" +" transport.close()\n" +"\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-protocol.rst:876 +msgid "UDP Echo Client" +msgstr "" + +#: ../../library/asyncio-protocol.rst:878 +msgid "" +"A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, " +"sends data and closes the transport when it receives the answer::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:881 +msgid "" +"import asyncio\n" +"\n" +"\n" +"class EchoClientProtocol:\n" +" def __init__(self, message, on_con_lost):\n" +" self.message = message\n" +" self.on_con_lost = on_con_lost\n" +" self.transport = None\n" +"\n" +" def connection_made(self, transport):\n" +" self.transport = transport\n" +" print('Send:', self.message)\n" +" self.transport.sendto(self.message.encode())\n" +"\n" +" def datagram_received(self, data, addr):\n" +" print(\"Received:\", data.decode())\n" +"\n" +" print(\"Close the socket\")\n" +" self.transport.close()\n" +"\n" +" def error_received(self, exc):\n" +" print('Error received:', exc)\n" +"\n" +" def connection_lost(self, exc):\n" +" print(\"Connection closed\")\n" +" self.on_con_lost.set_result(True)\n" +"\n" +"\n" +"async def main():\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" on_con_lost = loop.create_future()\n" +" message = \"Hello World!\"\n" +"\n" +" transport, protocol = await loop.create_datagram_endpoint(\n" +" lambda: EchoClientProtocol(message, on_con_lost),\n" +" remote_addr=('127.0.0.1', 9999))\n" +"\n" +" try:\n" +" await on_con_lost\n" +" finally:\n" +" transport.close()\n" +"\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-protocol.rst:933 +msgid "Connecting Existing Sockets" +msgstr "" + +#: ../../library/asyncio-protocol.rst:935 +msgid "" +"Wait until a socket receives data using the :meth:`loop.create_connection` " +"method with a protocol::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:938 +msgid "" +"import asyncio\n" +"import socket\n" +"\n" +"\n" +"class MyProtocol(asyncio.Protocol):\n" +"\n" +" def __init__(self, on_con_lost):\n" +" self.transport = None\n" +" self.on_con_lost = on_con_lost\n" +"\n" +" def connection_made(self, transport):\n" +" self.transport = transport\n" +"\n" +" def data_received(self, data):\n" +" print(\"Received:\", data.decode())\n" +"\n" +" # We are done: close the transport;\n" +" # connection_lost() will be called automatically.\n" +" self.transport.close()\n" +"\n" +" def connection_lost(self, exc):\n" +" # The socket has been closed\n" +" self.on_con_lost.set_result(True)\n" +"\n" +"\n" +"async def main():\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +" on_con_lost = loop.create_future()\n" +"\n" +" # Create a pair of connected sockets\n" +" rsock, wsock = socket.socketpair()\n" +"\n" +" # Register the socket to wait for data.\n" +" transport, protocol = await loop.create_connection(\n" +" lambda: MyProtocol(on_con_lost), sock=rsock)\n" +"\n" +" # Simulate the reception of data from the network.\n" +" loop.call_soon(wsock.send, 'abc'.encode())\n" +"\n" +" try:\n" +" await protocol.on_con_lost\n" +" finally:\n" +" transport.close()\n" +" wsock.close()\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-protocol.rst:989 +msgid "" +"The :ref:`watch a file descriptor for read events " +"` example uses the low-" +"level :meth:`loop.add_reader` method to register an FD." +msgstr "" + +#: ../../library/asyncio-protocol.rst:993 +msgid "" +"The :ref:`register an open socket to wait for data using streams " +"` example uses high-level streams " +"created by the :func:`open_connection` function in a coroutine." +msgstr "" + +#: ../../library/asyncio-protocol.rst:1000 +msgid "loop.subprocess_exec() and SubprocessProtocol" +msgstr "" + +#: ../../library/asyncio-protocol.rst:1002 +msgid "" +"An example of a subprocess protocol used to get the output of a subprocess " +"and to wait for the subprocess exit." +msgstr "" + +#: ../../library/asyncio-protocol.rst:1005 +msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::" +msgstr "" + +#: ../../library/asyncio-protocol.rst:1007 +msgid "" +"import asyncio\n" +"import sys\n" +"\n" +"class DateProtocol(asyncio.SubprocessProtocol):\n" +" def __init__(self, exit_future):\n" +" self.exit_future = exit_future\n" +" self.output = bytearray()\n" +" self.pipe_closed = False\n" +" self.exited = False\n" +"\n" +" def pipe_connection_lost(self, fd, exc):\n" +" self.pipe_closed = True\n" +" self.check_for_exit()\n" +"\n" +" def pipe_data_received(self, fd, data):\n" +" self.output.extend(data)\n" +"\n" +" def process_exited(self):\n" +" self.exited = True\n" +" # process_exited() method can be called before\n" +" # pipe_connection_lost() method: wait until both methods are\n" +" # called.\n" +" self.check_for_exit()\n" +"\n" +" def check_for_exit(self):\n" +" if self.pipe_closed and self.exited:\n" +" self.exit_future.set_result(True)\n" +"\n" +"async def get_date():\n" +" # Get a reference to the event loop as we plan to use\n" +" # low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" code = 'import datetime; print(datetime.datetime.now())'\n" +" exit_future = asyncio.Future(loop=loop)\n" +"\n" +" # Create the subprocess controlled by DateProtocol;\n" +" # redirect the standard output into a pipe.\n" +" transport, protocol = await loop.subprocess_exec(\n" +" lambda: DateProtocol(exit_future),\n" +" sys.executable, '-c', code,\n" +" stdin=None, stderr=None)\n" +"\n" +" # Wait for the subprocess exit using the process_exited()\n" +" # method of the protocol.\n" +" await exit_future\n" +"\n" +" # Close the stdout pipe.\n" +" transport.close()\n" +"\n" +" # Read the output which was collected by the\n" +" # pipe_data_received() method of the protocol.\n" +" data = bytes(protocol.output)\n" +" return data.decode('ascii').rstrip()\n" +"\n" +"date = asyncio.run(get_date())\n" +"print(f\"Current date: {date}\")" +msgstr "" + +#: ../../library/asyncio-protocol.rst:1065 +msgid "" +"See also the :ref:`same example ` " +"written using high-level APIs." +msgstr "" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po new file mode 100644 index 0000000..9ba1a4e --- /dev/null +++ b/library/asyncio-queue.po @@ -0,0 +1,310 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-queue.rst:7 +msgid "Queues" +msgstr "" + +#: ../../library/asyncio-queue.rst:9 +msgid "**Source code:** :source:`Lib/asyncio/queues.py`" +msgstr "" + +#: ../../library/asyncio-queue.rst:13 +msgid "" +"asyncio queues are designed to be similar to classes of the :mod:`queue` " +"module. Although asyncio queues are not thread-safe, they are designed to " +"be used specifically in async/await code." +msgstr "" + +#: ../../library/asyncio-queue.rst:17 +msgid "" +"Note that methods of asyncio queues don't have a *timeout* parameter; " +"use :func:`asyncio.wait_for` function to do queue operations with a timeout." +msgstr "" + +#: ../../library/asyncio-queue.rst:21 +msgid "See also the `Examples`_ section below." +msgstr "" + +#: ../../library/asyncio-queue.rst:24 +msgid "Queue" +msgstr "" + +#: ../../library/asyncio-queue.rst:28 +msgid "A first in, first out (FIFO) queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:30 +msgid "" +"If *maxsize* is less than or equal to zero, the queue size is infinite. If " +"it is an integer greater than ``0``, then ``await put()`` blocks when the " +"queue reaches *maxsize* until an item is removed by :meth:`get`." +msgstr "" + +#: ../../library/asyncio-queue.rst:35 +msgid "" +"Unlike the standard library threading :mod:`queue`, the size of the queue is " +"always known and can be returned by calling the :meth:`qsize` method." +msgstr "" + +#: ../../library/asyncio-queue.rst:39 +msgid "Removed the *loop* parameter." +msgstr "" + +#: ../../library/asyncio-queue.rst:43 +msgid "This class is :ref:`not thread safe `." +msgstr "" + +#: ../../library/asyncio-queue.rst:47 +msgid "Number of items allowed in the queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:51 +msgid "Return ``True`` if the queue is empty, ``False`` otherwise." +msgstr "" + +#: ../../library/asyncio-queue.rst:55 +msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:57 +msgid "" +"If the queue was initialized with ``maxsize=0`` (the default), " +"then :meth:`full` never returns ``True``." +msgstr "" + +#: ../../library/asyncio-queue.rst:63 +msgid "" +"Remove and return an item from the queue. If queue is empty, wait until an " +"item is available." +msgstr "" + +#: ../../library/asyncio-queue.rst:66 +msgid "" +"Raises :exc:`QueueShutDown` if the queue has been shut down and is empty, or " +"if the queue has been shut down immediately." +msgstr "" + +#: ../../library/asyncio-queue.rst:71 +msgid "" +"Return an item if one is immediately available, else raise :exc:`QueueEmpty`." +msgstr "" + +#: ../../library/asyncio-queue.rst:77 +msgid "Block until all items in the queue have been received and processed." +msgstr "" + +#: ../../library/asyncio-queue.rst:79 +msgid "" +"The count of unfinished tasks goes up whenever an item is added to the " +"queue. The count goes down whenever a consumer coroutine " +"calls :meth:`task_done` to indicate that the item was retrieved and all work " +"on it is complete. When the count of unfinished tasks drops to " +"zero, :meth:`join` unblocks." +msgstr "" + +#: ../../library/asyncio-queue.rst:88 +msgid "" +"Put an item into the queue. If the queue is full, wait until a free slot is " +"available before adding the item." +msgstr "" + +#: ../../library/asyncio-queue.rst:91 +msgid "Raises :exc:`QueueShutDown` if the queue has been shut down." +msgstr "" + +#: ../../library/asyncio-queue.rst:95 +msgid "Put an item into the queue without blocking." +msgstr "" + +#: ../../library/asyncio-queue.rst:97 +msgid "If no free slot is immediately available, raise :exc:`QueueFull`." +msgstr "" + +#: ../../library/asyncio-queue.rst:101 +msgid "Return the number of items in the queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:105 +msgid "" +"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` " +"raise :exc:`QueueShutDown`." +msgstr "" + +#: ../../library/asyncio-queue.rst:108 +msgid "" +"By default, :meth:`~Queue.get` on a shut down queue will only raise once the " +"queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " +"immediately instead." +msgstr "" + +#: ../../library/asyncio-queue.rst:112 +msgid "" +"All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " +"unblocked. If *immediate* is true, a task will be marked as done for each " +"remaining item in the queue, which may unblock callers " +"of :meth:`~Queue.join`." +msgstr "" + +#: ../../library/asyncio-queue.rst:121 +msgid "Indicate that a formerly enqueued work item is complete." +msgstr "" + +#: ../../library/asyncio-queue.rst:123 +msgid "" +"Used by queue consumers. For each :meth:`~Queue.get` used to fetch a work " +"item, a subsequent call to :meth:`task_done` tells the queue that the " +"processing on the work item is complete." +msgstr "" + +#: ../../library/asyncio-queue.rst:127 +msgid "" +"If a :meth:`join` is currently blocking, it will resume when all items have " +"been processed (meaning that a :meth:`task_done` call was received for every " +"item that had been :meth:`~Queue.put` into the queue)." +msgstr "" + +#: ../../library/asyncio-queue.rst:132 +msgid "" +"``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " +"in the queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:135 +msgid "" +"Raises :exc:`ValueError` if called more times than there were items placed " +"in the queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:140 +msgid "Priority Queue" +msgstr "" + +#: ../../library/asyncio-queue.rst:144 +msgid "" +"A variant of :class:`Queue`; retrieves entries in priority order (lowest " +"first)." +msgstr "" + +#: ../../library/asyncio-queue.rst:147 +msgid "Entries are typically tuples of the form ``(priority_number, data)``." +msgstr "" + +#: ../../library/asyncio-queue.rst:152 +msgid "LIFO Queue" +msgstr "" + +#: ../../library/asyncio-queue.rst:156 +msgid "" +"A variant of :class:`Queue` that retrieves most recently added entries first " +"(last in, first out)." +msgstr "" + +#: ../../library/asyncio-queue.rst:161 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/asyncio-queue.rst:165 +msgid "" +"This exception is raised when the :meth:`~Queue.get_nowait` method is called " +"on an empty queue." +msgstr "" + +#: ../../library/asyncio-queue.rst:171 +msgid "" +"Exception raised when the :meth:`~Queue.put_nowait` method is called on a " +"queue that has reached its *maxsize*." +msgstr "" + +#: ../../library/asyncio-queue.rst:177 +msgid "" +"Exception raised when :meth:`~Queue.put` or :meth:`~Queue.get` is called on " +"a queue which has been shut down." +msgstr "" + +#: ../../library/asyncio-queue.rst:184 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-queue.rst:188 +msgid "" +"Queues can be used to distribute workload between several concurrent tasks::" +msgstr "" + +#: ../../library/asyncio-queue.rst:191 +msgid "" +"import asyncio\n" +"import random\n" +"import time\n" +"\n" +"\n" +"async def worker(name, queue):\n" +" while True:\n" +" # Get a \"work item\" out of the queue.\n" +" sleep_for = await queue.get()\n" +"\n" +" # Sleep for the \"sleep_for\" seconds.\n" +" await asyncio.sleep(sleep_for)\n" +"\n" +" # Notify the queue that the \"work item\" has been processed.\n" +" queue.task_done()\n" +"\n" +" print(f'{name} has slept for {sleep_for:.2f} seconds')\n" +"\n" +"\n" +"async def main():\n" +" # Create a queue that we will use to store our \"workload\".\n" +" queue = asyncio.Queue()\n" +"\n" +" # Generate random timings and put them into the queue.\n" +" total_sleep_time = 0\n" +" for _ in range(20):\n" +" sleep_for = random.uniform(0.05, 1.0)\n" +" total_sleep_time += sleep_for\n" +" queue.put_nowait(sleep_for)\n" +"\n" +" # Create three worker tasks to process the queue concurrently.\n" +" tasks = []\n" +" for i in range(3):\n" +" task = asyncio.create_task(worker(f'worker-{i}', queue))\n" +" tasks.append(task)\n" +"\n" +" # Wait until the queue is fully processed.\n" +" started_at = time.monotonic()\n" +" await queue.join()\n" +" total_slept_for = time.monotonic() - started_at\n" +"\n" +" # Cancel our worker tasks.\n" +" for task in tasks:\n" +" task.cancel()\n" +" # Wait until all worker tasks are cancelled.\n" +" await asyncio.gather(*tasks, return_exceptions=True)\n" +"\n" +" print('====')\n" +" print(f'3 workers slept in parallel for {total_slept_for:.2f} seconds')\n" +" print(f'total expected sleep time: {total_sleep_time:.2f} seconds')\n" +"\n" +"\n" +"asyncio.run(main())" +msgstr "" diff --git a/library/asyncio-runner.po b/library/asyncio-runner.po new file mode 100644 index 0000000..65453e2 --- /dev/null +++ b/library/asyncio-runner.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-runner.rst:6 +msgid "Runners" +msgstr "" + +#: ../../library/asyncio-runner.rst:8 +msgid "**Source code:** :source:`Lib/asyncio/runners.py`" +msgstr "" + +#: ../../library/asyncio-runner.rst:11 +msgid "" +"This section outlines high-level asyncio primitives to run asyncio code." +msgstr "" + +#: ../../library/asyncio-runner.rst:13 +msgid "" +"They are built on top of an :ref:`event loop ` with the " +"aim to simplify async code usage for common wide-spread scenarios." +msgstr "" + +#: ../../library/asyncio-runner.rst:23 +msgid "Running an asyncio Program" +msgstr "" + +#: ../../library/asyncio-runner.rst:27 +msgid "Execute *coro* in an asyncio event loop and return the result." +msgstr "" + +#: ../../library/asyncio-runner.rst:29 ../../library/asyncio-runner.rst:121 +msgid "The argument can be any awaitable object." +msgstr "" + +#: ../../library/asyncio-runner.rst:31 +msgid "" +"This function runs the awaitable, taking care of managing the asyncio event " +"loop, *finalizing asynchronous generators*, and closing the executor." +msgstr "" + +#: ../../library/asyncio-runner.rst:35 ../../library/asyncio-runner.rst:131 +msgid "" +"This function cannot be called when another asyncio event loop is running in " +"the same thread." +msgstr "" + +#: ../../library/asyncio-runner.rst:38 ../../library/asyncio-runner.rst:97 +msgid "" +"If *debug* is ``True``, the event loop will be run in debug mode. ``False`` " +"disables debug mode explicitly. ``None`` is used to respect the " +"global :ref:`asyncio-debug-mode` settings." +msgstr "" + +#: ../../library/asyncio-runner.rst:42 +msgid "" +"If *loop_factory* is not ``None``, it is used to create a new event loop; " +"otherwise :func:`asyncio.new_event_loop` is used. The loop is closed at the " +"end. This function should be used as a main entry point for asyncio " +"programs, and should ideally only be called once. It is recommended to use " +"*loop_factory* to configure the event loop instead of policies. " +"Passing :class:`asyncio.EventLoop` allows running asyncio without the policy " +"system." +msgstr "" + +#: ../../library/asyncio-runner.rst:50 +msgid "" +"The executor is given a timeout duration of 5 minutes to shutdown. If the " +"executor hasn't finished within that duration, a warning is emitted and the " +"executor is closed." +msgstr "" + +#: ../../library/asyncio-runner.rst:54 +msgid "Example::" +msgstr "" + +#: ../../library/asyncio-runner.rst:56 +msgid "" +"async def main():\n" +" await asyncio.sleep(1)\n" +" print('hello')\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-runner.rst:64 +msgid "Updated to use :meth:`loop.shutdown_default_executor`." +msgstr "" + +#: ../../library/asyncio-runner.rst:69 +msgid "" +"*debug* is ``None`` by default to respect the global debug mode settings." +msgstr "" + +#: ../../library/asyncio-runner.rst:73 +msgid "Added *loop_factory* parameter." +msgstr "" + +#: ../../library/asyncio-runner.rst:77 ../../library/asyncio-runner.rst:136 +msgid "*coro* can be any awaitable object." +msgstr "" + +#: ../../library/asyncio-runner.rst:81 +msgid "" +"The :mod:`!asyncio` policy system is deprecated and will be removed in " +"Python 3.16; from there on, an explicit *loop_factory* is needed to " +"configure the event loop." +msgstr "" + +#: ../../library/asyncio-runner.rst:87 +msgid "Runner context manager" +msgstr "" + +#: ../../library/asyncio-runner.rst:91 +msgid "" +"A context manager that simplifies *multiple* async function calls in the " +"same context." +msgstr "" + +#: ../../library/asyncio-runner.rst:94 +msgid "" +"Sometimes several top-level async functions should be called in the " +"same :ref:`event loop ` and :class:`contextvars.Context`." +msgstr "" + +#: ../../library/asyncio-runner.rst:101 +msgid "" +"*loop_factory* could be used for overriding the loop creation. It is the " +"responsibility of the *loop_factory* to set the created loop as the current " +"one. By default :func:`asyncio.new_event_loop` is used and set as current " +"event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``." +msgstr "" + +#: ../../library/asyncio-runner.rst:106 +msgid "" +"Basically, :func:`asyncio.run` example can be rewritten with the runner " +"usage::" +msgstr "" + +#: ../../library/asyncio-runner.rst:108 +msgid "" +"async def main():\n" +" await asyncio.sleep(1)\n" +" print('hello')\n" +"\n" +"with asyncio.Runner() as runner:\n" +" runner.run(main())" +msgstr "" + +#: ../../library/asyncio-runner.rst:119 +msgid "Execute *coro* in the embedded event loop." +msgstr "" + +#: ../../library/asyncio-runner.rst:123 +msgid "If the argument is a coroutine, it is wrapped in a Task." +msgstr "" + +#: ../../library/asyncio-runner.rst:125 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the code to run in. The runner's " +"default context is used if context is ``None``." +msgstr "" + +#: ../../library/asyncio-runner.rst:129 +msgid "Returns the awaitable's result or raises an exception." +msgstr "" + +#: ../../library/asyncio-runner.rst:140 +msgid "Close the runner." +msgstr "" + +#: ../../library/asyncio-runner.rst:142 +msgid "" +"Finalize asynchronous generators, shutdown default executor, close the event " +"loop and release embedded :class:`contextvars.Context`." +msgstr "" + +#: ../../library/asyncio-runner.rst:147 +msgid "Return the event loop associated with the runner instance." +msgstr "" + +#: ../../library/asyncio-runner.rst:151 +msgid "" +":class:`Runner` uses the lazy initialization strategy, its constructor " +"doesn't initialize underlying low-level structures." +msgstr "" + +#: ../../library/asyncio-runner.rst:154 +msgid "" +"Embedded *loop* and *context* are created at the :keyword:`with` body " +"entering or the first call of :meth:`run` or :meth:`get_loop`." +msgstr "" + +#: ../../library/asyncio-runner.rst:159 +msgid "Handling Keyboard Interruption" +msgstr "" + +#: ../../library/asyncio-runner.rst:163 +msgid "" +"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-" +"C`, :exc:`KeyboardInterrupt` exception is raised in the main thread by " +"default. However this doesn't work with :mod:`asyncio` because it can " +"interrupt asyncio internals and can hang the program from exiting." +msgstr "" + +#: ../../library/asyncio-runner.rst:168 +msgid "" +"To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as " +"follows:" +msgstr "" + +#: ../../library/asyncio-runner.rst:170 +msgid "" +":meth:`asyncio.Runner.run` installs a custom :const:`signal.SIGINT` handler " +"before any user code is executed and removes it when exiting from the " +"function." +msgstr "" + +#: ../../library/asyncio-runner.rst:172 +msgid "" +"The :class:`~asyncio.Runner` creates the main task for the passed coroutine " +"for its execution." +msgstr "" + +#: ../../library/asyncio-runner.rst:174 +msgid "" +"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, the custom signal " +"handler cancels the main task by calling :meth:`asyncio.Task.cancel` which " +"raises :exc:`asyncio.CancelledError` inside the main task. This causes the " +"Python stack to unwind, ``try/except`` and ``try/finally`` blocks can be " +"used for resource cleanup. After the main task is " +"cancelled, :meth:`asyncio.Runner.run` raises :exc:`KeyboardInterrupt`." +msgstr "" + +#: ../../library/asyncio-runner.rst:180 +msgid "" +"A user could write a tight loop which cannot be interrupted " +"by :meth:`asyncio.Task.cancel`, in which case the second " +"following :kbd:`Ctrl-C` immediately raises the :exc:`KeyboardInterrupt` " +"without cancelling the main task." +msgstr "" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po new file mode 100644 index 0000000..2c0ffe6 --- /dev/null +++ b/library/asyncio-stream.po @@ -0,0 +1,667 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-stream.rst:7 +msgid "Streams" +msgstr "" + +#: ../../library/asyncio-stream.rst:9 +msgid "**Source code:** :source:`Lib/asyncio/streams.py`" +msgstr "" + +#: ../../library/asyncio-stream.rst:13 +msgid "" +"Streams are high-level async/await-ready primitives to work with network " +"connections. Streams allow sending and receiving data without using " +"callbacks or low-level protocols and transports." +msgstr "" + +#: ../../library/asyncio-stream.rst:19 +msgid "Here is an example of a TCP echo client written using asyncio streams::" +msgstr "" + +#: ../../library/asyncio-stream.rst:22 ../../library/asyncio-stream.rst:437 +msgid "" +"import asyncio\n" +"\n" +"async def tcp_echo_client(message):\n" +" reader, writer = await asyncio.open_connection(\n" +" '127.0.0.1', 8888)\n" +"\n" +" print(f'Send: {message!r}')\n" +" writer.write(message.encode())\n" +" await writer.drain()\n" +"\n" +" data = await reader.read(100)\n" +" print(f'Received: {data.decode()!r}')\n" +"\n" +" print('Close the connection')\n" +" writer.close()\n" +" await writer.wait_closed()\n" +"\n" +"asyncio.run(tcp_echo_client('Hello World!'))" +msgstr "" + +#: ../../library/asyncio-stream.rst:42 +msgid "See also the `Examples`_ section below." +msgstr "" + +#: ../../library/asyncio-stream.rst:46 +msgid "Stream Functions" +msgstr "" + +#: ../../library/asyncio-stream.rst:47 +msgid "" +"The following top-level asyncio functions can be used to create and work " +"with streams:" +msgstr "" + +#: ../../library/asyncio-stream.rst:59 +msgid "" +"Establish a network connection and return a pair of ``(reader, writer)`` " +"objects." +msgstr "" + +#: ../../library/asyncio-stream.rst:62 +msgid "" +"The returned *reader* and *writer* objects are instances " +"of :class:`StreamReader` and :class:`StreamWriter` classes." +msgstr "" + +#: ../../library/asyncio-stream.rst:65 ../../library/asyncio-stream.rst:112 +msgid "" +"*limit* determines the buffer size limit used by the " +"returned :class:`StreamReader` instance. By default the *limit* is set to " +"64 KiB." +msgstr "" + +#: ../../library/asyncio-stream.rst:69 +msgid "" +"The rest of the arguments are passed directly " +"to :meth:`loop.create_connection`." +msgstr "" + +#: ../../library/asyncio-stream.rst:74 ../../library/asyncio-stream.rst:154 +msgid "" +"The *sock* argument transfers ownership of the socket to " +"the :class:`StreamWriter` created. To close the socket, call " +"its :meth:`~asyncio.StreamWriter.close` method." +msgstr "" + +#: ../../library/asyncio-stream.rst:78 +msgid "Added the *ssl_handshake_timeout* parameter." +msgstr "" + +#: ../../library/asyncio-stream.rst:81 +msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." +msgstr "" + +#: ../../library/asyncio-stream.rst:84 ../../library/asyncio-stream.rst:128 +#: ../../library/asyncio-stream.rst:164 ../../library/asyncio-stream.rst:199 +msgid "Removed the *loop* parameter." +msgstr "" + +#: ../../library/asyncio-stream.rst:87 ../../library/asyncio-stream.rst:131 +#: ../../library/asyncio-stream.rst:167 ../../library/asyncio-stream.rst:202 +#: ../../library/asyncio-stream.rst:404 +msgid "Added the *ssl_shutdown_timeout* parameter." +msgstr "" + +#: ../../library/asyncio-stream.rst:101 +msgid "Start a socket server." +msgstr "" + +#: ../../library/asyncio-stream.rst:103 +msgid "" +"The *client_connected_cb* callback is called whenever a new client " +"connection is established. It receives a ``(reader, writer)`` pair as two " +"arguments, instances of the :class:`StreamReader` and :class:`StreamWriter` " +"classes." +msgstr "" + +#: ../../library/asyncio-stream.rst:108 +msgid "" +"*client_connected_cb* can be a plain callable or a :ref:`coroutine function " +"`; if it is a coroutine function, it will be automatically " +"scheduled as a :class:`Task`." +msgstr "" + +#: ../../library/asyncio-stream.rst:116 +msgid "" +"The rest of the arguments are passed directly to :meth:`loop.create_server`." +msgstr "" + +#: ../../library/asyncio-stream.rst:121 ../../library/asyncio-stream.rst:189 +msgid "" +"The *sock* argument transfers ownership of the socket to the server created. " +"To close the socket, call the server's :meth:`~asyncio.Server.close` method." +msgstr "" + +#: ../../library/asyncio-stream.rst:125 +msgid "Added the *ssl_handshake_timeout* and *start_serving* parameters." +msgstr "" + +#: ../../library/asyncio-stream.rst:134 +msgid "Added the *keep_alive* parameter." +msgstr "" + +#: ../../library/asyncio-stream.rst:139 +msgid "Unix Sockets" +msgstr "" + +#: ../../library/asyncio-stream.rst:145 +msgid "" +"Establish a Unix socket connection and return a pair of ``(reader, writer)``." +msgstr "" + +#: ../../library/asyncio-stream.rst:148 +msgid "Similar to :func:`open_connection` but operates on Unix sockets." +msgstr "" + +#: ../../library/asyncio-stream.rst:150 +msgid "See also the documentation of :meth:`loop.create_unix_connection`." +msgstr "" + +#: ../../library/asyncio-stream.rst:158 ../../library/asyncio-stream.rst:193 +msgid "Availability" +msgstr "" + +#: ../../library/asyncio-stream.rst:160 +msgid "" +"Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " +"a :term:`path-like object`" +msgstr "" + +#: ../../library/asyncio-stream.rst:177 +msgid "Start a Unix socket server." +msgstr "" + +#: ../../library/asyncio-stream.rst:179 +msgid "Similar to :func:`start_server` but works with Unix sockets." +msgstr "" + +#: ../../library/asyncio-stream.rst:181 +msgid "" +"If *cleanup_socket* is true then the Unix socket will automatically be " +"removed from the filesystem when the server is closed, unless the socket has " +"been replaced after the server has been created." +msgstr "" + +#: ../../library/asyncio-stream.rst:185 +msgid "See also the documentation of :meth:`loop.create_unix_server`." +msgstr "" + +#: ../../library/asyncio-stream.rst:195 +msgid "" +"Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " +"parameter can now be a :term:`path-like object`." +msgstr "" + +#: ../../library/asyncio-stream.rst:205 +msgid "Added the *cleanup_socket* parameter." +msgstr "" + +#: ../../library/asyncio-stream.rst:210 +msgid "StreamReader" +msgstr "" + +#: ../../library/asyncio-stream.rst:214 +msgid "" +"Represents a reader object that provides APIs to read data from the IO " +"stream. As an :term:`asynchronous iterable`, the object supports " +"the :keyword:`async for` statement." +msgstr "" + +#: ../../library/asyncio-stream.rst:218 +msgid "" +"It is not recommended to instantiate *StreamReader* objects directly; " +"use :func:`open_connection` and :func:`start_server` instead." +msgstr "" + +#: ../../library/asyncio-stream.rst:224 +msgid "Acknowledge the EOF." +msgstr "" + +#: ../../library/asyncio-stream.rst:229 +msgid "Read up to *n* bytes from the stream." +msgstr "" + +#: ../../library/asyncio-stream.rst:231 +msgid "" +"If *n* is not provided or set to ``-1``, read until EOF, then return all " +"read :class:`bytes`. If EOF was received and the internal buffer is empty, " +"return an empty ``bytes`` object." +msgstr "" + +#: ../../library/asyncio-stream.rst:236 +msgid "If *n* is ``0``, return an empty ``bytes`` object immediately." +msgstr "" + +#: ../../library/asyncio-stream.rst:238 +msgid "" +"If *n* is positive, return at most *n* available ``bytes`` as soon as at " +"least 1 byte is available in the internal buffer. If EOF is received before " +"any byte is read, return an empty ``bytes`` object." +msgstr "" + +#: ../../library/asyncio-stream.rst:246 +msgid "" +"Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." +msgstr "" + +#: ../../library/asyncio-stream.rst:249 +msgid "" +"If EOF is received and ``\\n`` was not found, the method returns partially " +"read data." +msgstr "" + +#: ../../library/asyncio-stream.rst:252 +msgid "" +"If EOF is received and the internal buffer is empty, return an empty " +"``bytes`` object." +msgstr "" + +#: ../../library/asyncio-stream.rst:258 +msgid "Read exactly *n* bytes." +msgstr "" + +#: ../../library/asyncio-stream.rst:260 +msgid "" +"Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " +"read. Use the :attr:`IncompleteReadError.partial` attribute to get the " +"partially read data." +msgstr "" + +#: ../../library/asyncio-stream.rst:267 +msgid "Read data from the stream until *separator* is found." +msgstr "" + +#: ../../library/asyncio-stream.rst:269 +msgid "" +"On success, the data and separator will be removed from the internal buffer " +"(consumed). Returned data will include the separator at the end." +msgstr "" + +#: ../../library/asyncio-stream.rst:273 +msgid "" +"If the amount of data read exceeds the configured stream limit, " +"a :exc:`LimitOverrunError` exception is raised, and the data is left in the " +"internal buffer and can be read again." +msgstr "" + +#: ../../library/asyncio-stream.rst:277 +msgid "" +"If EOF is reached before the complete separator is found, " +"an :exc:`IncompleteReadError` exception is raised, and the internal buffer " +"is reset. The :attr:`IncompleteReadError.partial` attribute may contain a " +"portion of the separator." +msgstr "" + +#: ../../library/asyncio-stream.rst:282 +msgid "" +"The *separator* may also be a tuple of separators. In this case the return " +"value will be the shortest possible that has any separator as the suffix. " +"For the purposes of :exc:`LimitOverrunError`, the shortest possible " +"separator is considered to be the one that matched." +msgstr "" + +#: ../../library/asyncio-stream.rst:292 +msgid "The *separator* parameter may now be a :class:`tuple` of separators." +msgstr "" + +#: ../../library/asyncio-stream.rst:297 +msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." +msgstr "" + +#: ../../library/asyncio-stream.rst:302 +msgid "StreamWriter" +msgstr "" + +#: ../../library/asyncio-stream.rst:306 +msgid "" +"Represents a writer object that provides APIs to write data to the IO stream." +msgstr "" + +#: ../../library/asyncio-stream.rst:309 +msgid "" +"It is not recommended to instantiate *StreamWriter* objects directly; " +"use :func:`open_connection` and :func:`start_server` instead." +msgstr "" + +#: ../../library/asyncio-stream.rst:315 +msgid "" +"The method attempts to write the *data* to the underlying socket " +"immediately. If that fails, the data is queued in an internal write buffer " +"until it can be sent." +msgstr "" + +#: ../../library/asyncio-stream.rst:319 ../../library/asyncio-stream.rst:331 +msgid "The method should be used along with the ``drain()`` method::" +msgstr "" + +#: ../../library/asyncio-stream.rst:321 +msgid "" +"stream.write(data)\n" +"await stream.drain()" +msgstr "" + +#: ../../library/asyncio-stream.rst:326 +msgid "" +"The method writes a list (or any iterable) of bytes to the underlying socket " +"immediately. If that fails, the data is queued in an internal write buffer " +"until it can be sent." +msgstr "" + +#: ../../library/asyncio-stream.rst:333 +msgid "" +"stream.writelines(lines)\n" +"await stream.drain()" +msgstr "" + +#: ../../library/asyncio-stream.rst:338 +msgid "The method closes the stream and the underlying socket." +msgstr "" + +#: ../../library/asyncio-stream.rst:340 +msgid "" +"The method should be used, though not mandatory, along with the " +"``wait_closed()`` method::" +msgstr "" + +#: ../../library/asyncio-stream.rst:343 +msgid "" +"stream.close()\n" +"await stream.wait_closed()" +msgstr "" + +#: ../../library/asyncio-stream.rst:348 +msgid "" +"Return ``True`` if the underlying transport supports the :meth:`write_eof` " +"method, ``False`` otherwise." +msgstr "" + +#: ../../library/asyncio-stream.rst:353 +msgid "" +"Close the write end of the stream after the buffered write data is flushed." +msgstr "" + +#: ../../library/asyncio-stream.rst:358 +msgid "Return the underlying asyncio transport." +msgstr "" + +#: ../../library/asyncio-stream.rst:362 +msgid "" +"Access optional transport information; " +"see :meth:`BaseTransport.get_extra_info` for details." +msgstr "" + +#: ../../library/asyncio-stream.rst:368 +msgid "Wait until it is appropriate to resume writing to the stream. Example::" +msgstr "" + +#: ../../library/asyncio-stream.rst:371 +msgid "" +"writer.write(data)\n" +"await writer.drain()" +msgstr "" + +#: ../../library/asyncio-stream.rst:374 +msgid "" +"This is a flow control method that interacts with the underlying IO write " +"buffer. When the size of the buffer reaches the high watermark, *drain()* " +"blocks until the size of the buffer is drained down to the low watermark and " +"writing can be resumed. When there is nothing to wait for, " +"the :meth:`drain` returns immediately." +msgstr "" + +#: ../../library/asyncio-stream.rst:385 +msgid "Upgrade an existing stream-based connection to TLS." +msgstr "" + +#: ../../library/asyncio-stream.rst:387 +msgid "Parameters:" +msgstr "" + +#: ../../library/asyncio-stream.rst:389 +msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." +msgstr "" + +#: ../../library/asyncio-stream.rst:391 +msgid "" +"*server_hostname*: sets or overrides the host name that the target server's " +"certificate will be matched against." +msgstr "" + +#: ../../library/asyncio-stream.rst:394 +msgid "" +"*ssl_handshake_timeout* is the time in seconds to wait for the TLS handshake " +"to complete before aborting the connection. ``60.0`` seconds if ``None`` " +"(default)." +msgstr "" + +#: ../../library/asyncio-stream.rst:398 +msgid "" +"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " +"to complete before aborting the connection. ``30.0`` seconds if ``None`` " +"(default)." +msgstr "" + +#: ../../library/asyncio-stream.rst:410 +msgid "" +"Return ``True`` if the stream is closed or in the process of being closed." +msgstr "" + +#: ../../library/asyncio-stream.rst:418 +msgid "Wait until the stream is closed." +msgstr "" + +#: ../../library/asyncio-stream.rst:420 +msgid "" +"Should be called after :meth:`close` to wait until the underlying connection " +"is closed, ensuring that all data has been flushed before e.g. exiting the " +"program." +msgstr "" + +#: ../../library/asyncio-stream.rst:428 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-stream.rst:433 +msgid "TCP echo client using streams" +msgstr "" + +#: ../../library/asyncio-stream.rst:435 +msgid "TCP echo client using the :func:`asyncio.open_connection` function::" +msgstr "" + +#: ../../library/asyncio-stream.rst:459 +msgid "" +"The :ref:`TCP echo client protocol " +"` example uses the low-" +"level :meth:`loop.create_connection` method." +msgstr "" + +#: ../../library/asyncio-stream.rst:466 +msgid "TCP echo server using streams" +msgstr "" + +#: ../../library/asyncio-stream.rst:468 +msgid "TCP echo server using the :func:`asyncio.start_server` function::" +msgstr "" + +#: ../../library/asyncio-stream.rst:470 +msgid "" +"import asyncio\n" +"\n" +"async def handle_echo(reader, writer):\n" +" data = await reader.read(100)\n" +" message = data.decode()\n" +" addr = writer.get_extra_info('peername')\n" +"\n" +" print(f\"Received {message!r} from {addr!r}\")\n" +"\n" +" print(f\"Send: {message!r}\")\n" +" writer.write(data)\n" +" await writer.drain()\n" +"\n" +" print(\"Close the connection\")\n" +" writer.close()\n" +" await writer.wait_closed()\n" +"\n" +"async def main():\n" +" server = await asyncio.start_server(\n" +" handle_echo, '127.0.0.1', 8888)\n" +"\n" +" addrs = ', '.join(str(sock.getsockname()) for sock in server.sockets)\n" +" print(f'Serving on {addrs}')\n" +"\n" +" async with server:\n" +" await server.serve_forever()\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-stream.rst:502 +msgid "" +"The :ref:`TCP echo server protocol " +"` example uses " +"the :meth:`loop.create_server` method." +msgstr "" + +#: ../../library/asyncio-stream.rst:507 +msgid "Get HTTP headers" +msgstr "" + +#: ../../library/asyncio-stream.rst:509 +msgid "" +"Simple example querying HTTP headers of the URL passed on the command line::" +msgstr "" + +#: ../../library/asyncio-stream.rst:511 +msgid "" +"import asyncio\n" +"import urllib.parse\n" +"import sys\n" +"\n" +"async def print_http_headers(url):\n" +" url = urllib.parse.urlsplit(url)\n" +" if url.scheme == 'https':\n" +" reader, writer = await asyncio.open_connection(\n" +" url.hostname, 443, ssl=True)\n" +" else:\n" +" reader, writer = await asyncio.open_connection(\n" +" url.hostname, 80)\n" +"\n" +" query = (\n" +" f\"HEAD {url.path or '/'} HTTP/1.0\\r\\n\"\n" +" f\"Host: {url.hostname}\\r\\n\"\n" +" f\"\\r\\n\"\n" +" )\n" +"\n" +" writer.write(query.encode('latin-1'))\n" +" while True:\n" +" line = await reader.readline()\n" +" if not line:\n" +" break\n" +"\n" +" line = line.decode('latin1').rstrip()\n" +" if line:\n" +" print(f'HTTP header> {line}')\n" +"\n" +" # Ignore the body, close the socket\n" +" writer.close()\n" +" await writer.wait_closed()\n" +"\n" +"url = sys.argv[1]\n" +"asyncio.run(print_http_headers(url))" +msgstr "" + +#: ../../library/asyncio-stream.rst:548 +msgid "Usage::" +msgstr "" + +#: ../../library/asyncio-stream.rst:550 +msgid "python example.py http://example.com/path/page.html" +msgstr "" + +#: ../../library/asyncio-stream.rst:552 +msgid "or with HTTPS::" +msgstr "" + +#: ../../library/asyncio-stream.rst:554 +msgid "python example.py https://example.com/path/page.html" +msgstr "" + +#: ../../library/asyncio-stream.rst:560 +msgid "Register an open socket to wait for data using streams" +msgstr "" + +#: ../../library/asyncio-stream.rst:562 +msgid "" +"Coroutine waiting until a socket receives data using " +"the :func:`open_connection` function::" +msgstr "" + +#: ../../library/asyncio-stream.rst:565 +msgid "" +"import asyncio\n" +"import socket\n" +"\n" +"async def wait_for_data():\n" +" # Get a reference to the current event loop because\n" +" # we want to access low-level APIs.\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" # Create a pair of connected sockets.\n" +" rsock, wsock = socket.socketpair()\n" +"\n" +" # Register the open socket to wait for data.\n" +" reader, writer = await asyncio.open_connection(sock=rsock)\n" +"\n" +" # Simulate the reception of data from the network\n" +" loop.call_soon(wsock.send, 'abc'.encode())\n" +"\n" +" # Wait for data\n" +" data = await reader.read(100)\n" +"\n" +" # Got data, we are done: close the socket\n" +" print(\"Received:\", data.decode())\n" +" writer.close()\n" +" await writer.wait_closed()\n" +"\n" +" # Close the second socket\n" +" wsock.close()\n" +"\n" +"asyncio.run(wait_for_data())" +msgstr "" + +#: ../../library/asyncio-stream.rst:597 +msgid "" +"The :ref:`register an open socket to wait for data using a protocol " +"` example uses a low-level protocol and " +"the :meth:`loop.create_connection` method." +msgstr "" + +#: ../../library/asyncio-stream.rst:601 +msgid "" +"The :ref:`watch a file descriptor for read events " +"` example uses the low-" +"level :meth:`loop.add_reader` method to watch a file descriptor." +msgstr "" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po new file mode 100644 index 0000000..17d78ff --- /dev/null +++ b/library/asyncio-subprocess.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-subprocess.rst:7 +msgid "Subprocesses" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:9 +msgid "" +"**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" +"base_subprocess.py`" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:14 +msgid "" +"This section describes high-level async/await asyncio APIs to create and " +"manage subprocesses." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:19 +msgid "" +"Here's an example of how asyncio can run a shell command and obtain its " +"result::" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:22 +msgid "" +"import asyncio\n" +"\n" +"async def run(cmd):\n" +" proc = await asyncio.create_subprocess_shell(\n" +" cmd,\n" +" stdout=asyncio.subprocess.PIPE,\n" +" stderr=asyncio.subprocess.PIPE)\n" +"\n" +" stdout, stderr = await proc.communicate()\n" +"\n" +" print(f'[{cmd!r} exited with {proc.returncode}]')\n" +" if stdout:\n" +" print(f'[stdout]\\n{stdout.decode()}')\n" +" if stderr:\n" +" print(f'[stderr]\\n{stderr.decode()}')\n" +"\n" +"asyncio.run(run('ls /zzz'))" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:40 +msgid "will print::" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:42 +msgid "" +"['ls /zzz' exited with 1]\n" +"[stderr]\n" +"ls: /zzz: No such file or directory" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:46 +msgid "" +"Because all asyncio subprocess functions are asynchronous and asyncio " +"provides many tools to work with such functions, it is easy to execute and " +"monitor multiple subprocesses in parallel. It is indeed trivial to modify " +"the above example to run several commands simultaneously::" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:51 +msgid "" +"async def main():\n" +" await asyncio.gather(\n" +" run('ls /zzz'),\n" +" run('sleep 1; echo \"hello\"'))\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:58 +msgid "See also the `Examples`_ subsection." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:62 +msgid "Creating Subprocesses" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:68 +msgid "Create a subprocess." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:70 +#: ../../library/asyncio-subprocess.rst:89 +msgid "" +"The *limit* argument sets the buffer limit for :class:`StreamReader` " +"wrappers for :attr:`~asyncio.subprocess.Process.stdout` " +"and :attr:`~asyncio.subprocess.Process.stderr` (if :const:`subprocess.PIPE` " +"is passed to *stdout* and *stderr* arguments)." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:74 +#: ../../library/asyncio-subprocess.rst:93 +msgid "Return a :class:`~asyncio.subprocess.Process` instance." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:76 +msgid "" +"See the documentation of :meth:`loop.subprocess_exec` for other parameters." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:79 +#: ../../library/asyncio-subprocess.rst:107 +msgid "Removed the *loop* parameter." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:87 +msgid "Run the *cmd* shell command." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:95 +msgid "" +"See the documentation of :meth:`loop.subprocess_shell` for other parameters." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:100 +msgid "" +"It is the application's responsibility to ensure that all whitespace and " +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special shell characters in strings that are going to " +"be used to construct shell commands." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:112 +msgid "" +"Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " +"used. See :ref:`Subprocess Support on Windows ` " +"for details." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:118 +msgid "" +"asyncio also has the following *low-level* APIs to work with " +"subprocesses: :meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop.connect_read_pipe`, :meth:`loop.connect_write_pipe`, " +"as well as the :ref:`Subprocess Transports ` " +"and :ref:`Subprocess Protocols `." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:126 +msgid "Constants" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:131 +msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:133 +msgid "" +"If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin " +"` attribute will point to " +"a :class:`~asyncio.StreamWriter` instance." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:137 +msgid "" +"If *PIPE* is passed to *stdout* or *stderr* arguments, " +"the :attr:`Process.stdout ` " +"and :attr:`Process.stderr ` attributes " +"will point to :class:`~asyncio.StreamReader` instances." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:145 +msgid "" +"Special value that can be used as the *stderr* argument and indicates that " +"standard error should be redirected into standard output." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:151 +msgid "" +"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " +"to process creation functions. It indicates that the special " +"file :data:`os.devnull` will be used for the corresponding subprocess stream." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:157 +msgid "Interacting with Subprocesses" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:159 +msgid "" +"Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " +"functions return instances of the *Process* class. *Process* is a high-" +"level wrapper that allows communicating with subprocesses and watching for " +"their completion." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:167 +msgid "" +"An object that wraps OS processes created by " +"the :func:`~asyncio.create_subprocess_exec` " +"and :func:`~asyncio.create_subprocess_shell` functions." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:171 +msgid "" +"This class is designed to have a similar API to " +"the :class:`subprocess.Popen` class, but there are some notable differences:" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:175 +msgid "" +"unlike Popen, Process instances do not have an equivalent to " +"the :meth:`~subprocess.Popen.poll` method;" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:178 +msgid "" +"the :meth:`~asyncio.subprocess.Process.communicate` " +"and :meth:`~asyncio.subprocess.Process.wait` methods don't have a *timeout* " +"parameter: use the :func:`~asyncio.wait_for` function;" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:182 +msgid "" +"the :meth:`Process.wait() ` method is " +"asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " +"a blocking busy loop;" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:186 +msgid "the *universal_newlines* parameter is not supported." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:188 +msgid "This class is :ref:`not thread safe `." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:190 +msgid "" +"See also the :ref:`Subprocess and Threads ` " +"section." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:196 +msgid "Wait for the child process to terminate." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:198 +msgid "Set and return the :attr:`returncode` attribute." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:202 +msgid "" +"This method can deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and " +"the child process generates so much output that it blocks waiting for the OS " +"pipe buffer to accept more data. Use the :meth:`communicate` method when " +"using pipes to avoid this condition." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:211 +msgid "Interact with process:" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:213 +msgid "send data to *stdin* (if *input* is not ``None``);" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:214 +msgid "closes *stdin*;" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:215 +msgid "read data from *stdout* and *stderr*, until EOF is reached;" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:216 +msgid "wait for process to terminate." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:218 +msgid "" +"The optional *input* argument is the data (:class:`bytes` object) that will " +"be sent to the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:221 +msgid "Return a tuple ``(stdout_data, stderr_data)``." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:223 +msgid "" +"If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " +"raised when writing *input* into *stdin*, the exception is ignored. This " +"condition occurs when the process exits before all data are written into " +"*stdin*." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:228 +msgid "" +"If it is desired to send data to the process' *stdin*, the process needs to " +"be created with ``stdin=PIPE``. Similarly, to get anything other than " +"``None`` in the result tuple, the process has to be created with " +"``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:234 +msgid "" +"Note, that the data read is buffered in memory, so do not use this method if " +"the data size is large or unlimited." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:239 +msgid "*stdin* gets closed when ``input=None`` too." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:243 +msgid "Sends the signal *signal* to the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:247 +msgid "" +"On Windows, :py:const:`~signal.SIGTERM` is an alias for :meth:`terminate`. " +"``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " +"with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:254 +msgid "Stop the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:256 +msgid "" +"On POSIX systems this method sends :py:const:`~signal.SIGTERM` to the child " +"process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:259 +msgid "" +"On Windows the Win32 API function :c:func:`!TerminateProcess` is called to " +"stop the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:264 +msgid "Kill the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:266 +msgid "" +"On POSIX systems this method sends :py:data:`~signal.SIGKILL` to the child " +"process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:269 +msgid "On Windows this method is an alias for :meth:`terminate`." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:273 +msgid "" +"Standard input stream (:class:`~asyncio.StreamWriter`) or ``None`` if the " +"process was created with ``stdin=None``." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:278 +msgid "" +"Standard output stream (:class:`~asyncio.StreamReader`) or ``None`` if the " +"process was created with ``stdout=None``." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:283 +msgid "" +"Standard error stream (:class:`~asyncio.StreamReader`) or ``None`` if the " +"process was created with ``stderr=None``." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:288 +msgid "" +"Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " +"`, :attr:`await process.stdout.read() ` or :attr:`await " +"process.stderr.read() `. This avoids deadlocks due to streams " +"pausing reading or writing and blocking the child process." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:297 +msgid "Process identification number (PID)." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:299 +msgid "" +"Note that for processes created by " +"the :func:`~asyncio.create_subprocess_shell` function, this attribute is the " +"PID of the spawned shell." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:304 +msgid "Return code of the process when it exits." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:306 +msgid "A ``None`` value indicates that the process has not terminated yet." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:308 +msgid "" +"A negative value ``-N`` indicates that the child was terminated by signal " +"``N`` (POSIX only)." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:315 +msgid "Subprocess and Threads" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:317 +msgid "" +"Standard asyncio event loop supports running subprocesses from different " +"threads by default." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:320 +msgid "" +"On Windows subprocesses are provided by :class:`ProactorEventLoop` only " +"(default), :class:`SelectorEventLoop` has no subprocess support." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:323 +msgid "" +"Note that alternative event loop implementations might have own limitations; " +"please refer to their documentation." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:328 +msgid "" +"The :ref:`Concurrency and multithreading in asyncio ` section." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:333 +msgid "Examples" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:335 +msgid "" +"An example using the :class:`~asyncio.subprocess.Process` class to control a " +"subprocess and the :class:`StreamReader` class to read from its standard " +"output." +msgstr "" + +#: ../../library/asyncio-subprocess.rst:341 +msgid "" +"The subprocess is created by the :func:`create_subprocess_exec` function::" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:344 +msgid "" +"import asyncio\n" +"import sys\n" +"\n" +"async def get_date():\n" +" code = 'import datetime; print(datetime.datetime.now())'\n" +"\n" +" # Create the subprocess; redirect the standard output\n" +" # into a pipe.\n" +" proc = await asyncio.create_subprocess_exec(\n" +" sys.executable, '-c', code,\n" +" stdout=asyncio.subprocess.PIPE)\n" +"\n" +" # Read one line of output.\n" +" data = await proc.stdout.readline()\n" +" line = data.decode('ascii').rstrip()\n" +"\n" +" # Wait for the subprocess exit.\n" +" await proc.wait()\n" +" return line\n" +"\n" +"date = asyncio.run(get_date())\n" +"print(f\"Current date: {date}\")" +msgstr "" + +#: ../../library/asyncio-subprocess.rst:368 +msgid "" +"See also the :ref:`same example ` written " +"using low-level APIs." +msgstr "" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po new file mode 100644 index 0000000..bfc4078 --- /dev/null +++ b/library/asyncio-sync.po @@ -0,0 +1,613 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-sync.rst:7 +msgid "Synchronization Primitives" +msgstr "" + +#: ../../library/asyncio-sync.rst:9 +msgid "**Source code:** :source:`Lib/asyncio/locks.py`" +msgstr "" + +#: ../../library/asyncio-sync.rst:13 +msgid "" +"asyncio synchronization primitives are designed to be similar to those of " +"the :mod:`threading` module with two important caveats:" +msgstr "" + +#: ../../library/asyncio-sync.rst:16 +msgid "" +"asyncio primitives are not thread-safe, therefore they should not be used " +"for OS thread synchronization (use :mod:`threading` for that);" +msgstr "" + +#: ../../library/asyncio-sync.rst:20 +msgid "" +"methods of these synchronization primitives do not accept the *timeout* " +"argument; use the :func:`asyncio.wait_for` function to perform operations " +"with timeouts." +msgstr "" + +#: ../../library/asyncio-sync.rst:24 +msgid "asyncio has the following basic synchronization primitives:" +msgstr "" + +#: ../../library/asyncio-sync.rst:26 +msgid ":class:`Lock`" +msgstr "" + +#: ../../library/asyncio-sync.rst:27 +msgid ":class:`Event`" +msgstr "" + +#: ../../library/asyncio-sync.rst:28 +msgid ":class:`Condition`" +msgstr "" + +#: ../../library/asyncio-sync.rst:29 +msgid ":class:`Semaphore`" +msgstr "" + +#: ../../library/asyncio-sync.rst:30 +msgid ":class:`BoundedSemaphore`" +msgstr "" + +#: ../../library/asyncio-sync.rst:31 +msgid ":class:`Barrier`" +msgstr "" + +#: ../../library/asyncio-sync.rst:38 +msgid "Lock" +msgstr "" + +#: ../../library/asyncio-sync.rst:42 +msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:44 +msgid "" +"An asyncio lock can be used to guarantee exclusive access to a shared " +"resource." +msgstr "" + +#: ../../library/asyncio-sync.rst:47 +msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" +msgstr "" + +#: ../../library/asyncio-sync.rst:50 +msgid "" +"lock = asyncio.Lock()\n" +"\n" +"# ... later\n" +"async with lock:\n" +" # access shared state" +msgstr "" + +#: ../../library/asyncio-sync.rst:56 ../../library/asyncio-sync.rst:201 +#: ../../library/asyncio-sync.rst:309 +msgid "which is equivalent to::" +msgstr "" + +#: ../../library/asyncio-sync.rst:58 +msgid "" +"lock = asyncio.Lock()\n" +"\n" +"# ... later\n" +"await lock.acquire()\n" +"try:\n" +" # access shared state\n" +"finally:\n" +" lock.release()" +msgstr "" + +#: ../../library/asyncio-sync.rst:67 ../../library/asyncio-sync.rst:113 +#: ../../library/asyncio-sync.rst:189 ../../library/asyncio-sync.rst:297 +#: ../../library/asyncio-sync.rst:353 +msgid "Removed the *loop* parameter." +msgstr "" + +#: ../../library/asyncio-sync.rst:73 +msgid "Acquire the lock." +msgstr "" + +#: ../../library/asyncio-sync.rst:75 +msgid "" +"This method waits until the lock is *unlocked*, sets it to *locked* and " +"returns ``True``." +msgstr "" + +#: ../../library/asyncio-sync.rst:78 +msgid "" +"When more than one coroutine is blocked in :meth:`acquire` waiting for the " +"lock to be unlocked, only one coroutine eventually proceeds." +msgstr "" + +#: ../../library/asyncio-sync.rst:82 +msgid "" +"Acquiring a lock is *fair*: the coroutine that proceeds will be the first " +"coroutine that started waiting on the lock." +msgstr "" + +#: ../../library/asyncio-sync.rst:87 +msgid "Release the lock." +msgstr "" + +#: ../../library/asyncio-sync.rst:89 +msgid "When the lock is *locked*, reset it to *unlocked* and return." +msgstr "" + +#: ../../library/asyncio-sync.rst:91 +msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../../library/asyncio-sync.rst:95 +msgid "Return ``True`` if the lock is *locked*." +msgstr "" + +#: ../../library/asyncio-sync.rst:99 +msgid "Event" +msgstr "" + +#: ../../library/asyncio-sync.rst:103 +msgid "An event object. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:105 +msgid "" +"An asyncio event can be used to notify multiple asyncio tasks that some " +"event has happened." +msgstr "" + +#: ../../library/asyncio-sync.rst:108 +msgid "" +"An Event object manages an internal flag that can be set to *true* with " +"the :meth:`~Event.set` method and reset to *false* with the :meth:`clear` " +"method. The :meth:`~Event.wait` method blocks until the flag is set to " +"*true*. The flag is set to *false* initially." +msgstr "" + +#: ../../library/asyncio-sync.rst:118 ../../library/asyncio-sync.rst:377 +msgid "Example::" +msgstr "" + +#: ../../library/asyncio-sync.rst:120 +msgid "" +"async def waiter(event):\n" +" print('waiting for it ...')\n" +" await event.wait()\n" +" print('... got it!')\n" +"\n" +"async def main():\n" +" # Create an Event object.\n" +" event = asyncio.Event()\n" +"\n" +" # Spawn a Task to wait until 'event' is set.\n" +" waiter_task = asyncio.create_task(waiter(event))\n" +"\n" +" # Sleep for 1 second and set the event.\n" +" await asyncio.sleep(1)\n" +" event.set()\n" +"\n" +" # Wait until the waiter task is finished.\n" +" await waiter_task\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-sync.rst:144 +msgid "Wait until the event is set." +msgstr "" + +#: ../../library/asyncio-sync.rst:146 +msgid "" +"If the event is set, return ``True`` immediately. Otherwise block until " +"another task calls :meth:`~Event.set`." +msgstr "" + +#: ../../library/asyncio-sync.rst:151 +msgid "Set the event." +msgstr "" + +#: ../../library/asyncio-sync.rst:153 +msgid "All tasks waiting for event to be set will be immediately awakened." +msgstr "" + +#: ../../library/asyncio-sync.rst:158 +msgid "Clear (unset) the event." +msgstr "" + +#: ../../library/asyncio-sync.rst:160 +msgid "" +"Tasks awaiting on :meth:`~Event.wait` will now block until " +"the :meth:`~Event.set` method is called again." +msgstr "" + +#: ../../library/asyncio-sync.rst:165 +msgid "Return ``True`` if the event is set." +msgstr "" + +#: ../../library/asyncio-sync.rst:169 +msgid "Condition" +msgstr "" + +#: ../../library/asyncio-sync.rst:173 +msgid "A Condition object. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:175 +msgid "" +"An asyncio condition primitive can be used by a task to wait for some event " +"to happen and then get exclusive access to a shared resource." +msgstr "" + +#: ../../library/asyncio-sync.rst:179 +msgid "" +"In essence, a Condition object combines the functionality of " +"an :class:`Event` and a :class:`Lock`. It is possible to have multiple " +"Condition objects share one Lock, which allows coordinating exclusive access " +"to a shared resource between different tasks interested in particular states " +"of that shared resource." +msgstr "" + +#: ../../library/asyncio-sync.rst:185 +msgid "" +"The optional *lock* argument must be a :class:`Lock` object or ``None``. In " +"the latter case a new Lock object is created automatically." +msgstr "" + +#: ../../library/asyncio-sync.rst:192 +msgid "" +"The preferred way to use a Condition is an :keyword:`async with` statement::" +msgstr "" + +#: ../../library/asyncio-sync.rst:195 +msgid "" +"cond = asyncio.Condition()\n" +"\n" +"# ... later\n" +"async with cond:\n" +" await cond.wait()" +msgstr "" + +#: ../../library/asyncio-sync.rst:203 +msgid "" +"cond = asyncio.Condition()\n" +"\n" +"# ... later\n" +"await cond.acquire()\n" +"try:\n" +" await cond.wait()\n" +"finally:\n" +" cond.release()" +msgstr "" + +#: ../../library/asyncio-sync.rst:215 +msgid "Acquire the underlying lock." +msgstr "" + +#: ../../library/asyncio-sync.rst:217 +msgid "" +"This method waits until the underlying lock is *unlocked*, sets it to " +"*locked* and returns ``True``." +msgstr "" + +#: ../../library/asyncio-sync.rst:222 +msgid "" +"Wake up *n* tasks (1 by default) waiting on this condition. If fewer than " +"*n* tasks are waiting they are all awakened." +msgstr "" + +#: ../../library/asyncio-sync.rst:225 ../../library/asyncio-sync.rst:240 +msgid "" +"The lock must be acquired before this method is called and released shortly " +"after. If called with an *unlocked* lock a :exc:`RuntimeError` error is " +"raised." +msgstr "" + +#: ../../library/asyncio-sync.rst:231 +msgid "Return ``True`` if the underlying lock is acquired." +msgstr "" + +#: ../../library/asyncio-sync.rst:235 +msgid "Wake up all tasks waiting on this condition." +msgstr "" + +#: ../../library/asyncio-sync.rst:237 +msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." +msgstr "" + +#: ../../library/asyncio-sync.rst:246 +msgid "Release the underlying lock." +msgstr "" + +#: ../../library/asyncio-sync.rst:248 +msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../../library/asyncio-sync.rst:254 +msgid "Wait until notified." +msgstr "" + +#: ../../library/asyncio-sync.rst:256 +msgid "" +"If the calling task has not acquired the lock when this method is called, " +"a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../../library/asyncio-sync.rst:259 +msgid "" +"This method releases the underlying lock, and then blocks until it is " +"awakened by a :meth:`notify` or :meth:`notify_all` call. Once awakened, the " +"Condition re-acquires its lock and this method returns ``True``." +msgstr "" + +#: ../../library/asyncio-sync.rst:264 +msgid "" +"Note that a task *may* return from this call spuriously, which is why the " +"caller should always re-check the state and be prepared " +"to :meth:`~Condition.wait` again. For this reason, you may prefer to " +"use :meth:`~Condition.wait_for` instead." +msgstr "" + +#: ../../library/asyncio-sync.rst:272 +msgid "Wait until a predicate becomes *true*." +msgstr "" + +#: ../../library/asyncio-sync.rst:274 +msgid "" +"The predicate must be a callable which result will be interpreted as a " +"boolean value. The method will repeatedly :meth:`~Condition.wait` until the " +"predicate evaluates to *true*. The final value is the return value." +msgstr "" + +#: ../../library/asyncio-sync.rst:281 +msgid "Semaphore" +msgstr "" + +#: ../../library/asyncio-sync.rst:285 +msgid "A Semaphore object. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:287 +msgid "" +"A semaphore manages an internal counter which is decremented by " +"each :meth:`acquire` call and incremented by each :meth:`release` call. The " +"counter can never go below zero; when :meth:`acquire` finds that it is zero, " +"it blocks, waiting until some task calls :meth:`release`." +msgstr "" + +#: ../../library/asyncio-sync.rst:293 +msgid "" +"The optional *value* argument gives the initial value for the internal " +"counter (``1`` by default). If the given value is less than ``0`` " +"a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/asyncio-sync.rst:300 +msgid "" +"The preferred way to use a Semaphore is an :keyword:`async with` statement::" +msgstr "" + +#: ../../library/asyncio-sync.rst:303 +msgid "" +"sem = asyncio.Semaphore(10)\n" +"\n" +"# ... later\n" +"async with sem:\n" +" # work with shared resource" +msgstr "" + +#: ../../library/asyncio-sync.rst:311 +msgid "" +"sem = asyncio.Semaphore(10)\n" +"\n" +"# ... later\n" +"await sem.acquire()\n" +"try:\n" +" # work with shared resource\n" +"finally:\n" +" sem.release()" +msgstr "" + +#: ../../library/asyncio-sync.rst:323 +msgid "Acquire a semaphore." +msgstr "" + +#: ../../library/asyncio-sync.rst:325 +msgid "" +"If the internal counter is greater than zero, decrement it by one and return " +"``True`` immediately. If it is zero, wait until a :meth:`release` is called " +"and return ``True``." +msgstr "" + +#: ../../library/asyncio-sync.rst:331 +msgid "Returns ``True`` if semaphore can not be acquired immediately." +msgstr "" + +#: ../../library/asyncio-sync.rst:335 +msgid "" +"Release a semaphore, incrementing the internal counter by one. Can wake up a " +"task waiting to acquire the semaphore." +msgstr "" + +#: ../../library/asyncio-sync.rst:338 +msgid "" +"Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " +"``release()`` calls than ``acquire()`` calls." +msgstr "" + +#: ../../library/asyncio-sync.rst:343 +msgid "BoundedSemaphore" +msgstr "" + +#: ../../library/asyncio-sync.rst:347 +msgid "A bounded semaphore object. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:349 +msgid "" +"Bounded Semaphore is a version of :class:`Semaphore` that raises " +"a :exc:`ValueError` in :meth:`~Semaphore.release` if it increases the " +"internal counter above the initial *value*." +msgstr "" + +#: ../../library/asyncio-sync.rst:358 +msgid "Barrier" +msgstr "" + +#: ../../library/asyncio-sync.rst:362 +msgid "A barrier object. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-sync.rst:364 +msgid "" +"A barrier is a simple synchronization primitive that allows to block until " +"*parties* number of tasks are waiting on it. Tasks can wait on " +"the :meth:`~Barrier.wait` method and would be blocked until the specified " +"number of tasks end up waiting on :meth:`~Barrier.wait`. At that point all " +"of the waiting tasks would unblock simultaneously." +msgstr "" + +#: ../../library/asyncio-sync.rst:370 +msgid "" +":keyword:`async with` can be used as an alternative to awaiting " +"on :meth:`~Barrier.wait`." +msgstr "" + +#: ../../library/asyncio-sync.rst:373 +msgid "The barrier can be reused any number of times." +msgstr "" + +#: ../../library/asyncio-sync.rst:379 +msgid "" +"async def example_barrier():\n" +" # barrier with 3 parties\n" +" b = asyncio.Barrier(3)\n" +"\n" +" # create 2 new waiting tasks\n" +" asyncio.create_task(b.wait())\n" +" asyncio.create_task(b.wait())\n" +"\n" +" await asyncio.sleep(0)\n" +" print(b)\n" +"\n" +" # The third .wait() call passes the barrier\n" +" await b.wait()\n" +" print(b)\n" +" print(\"barrier passed\")\n" +"\n" +" await asyncio.sleep(0)\n" +" print(b)\n" +"\n" +"asyncio.run(example_barrier())" +msgstr "" + +#: ../../library/asyncio-sync.rst:400 +msgid "Result of this example is::" +msgstr "" + +#: ../../library/asyncio-sync.rst:402 +msgid "" +"\n" +"\n" +"barrier passed\n" +"" +msgstr "" + +#: ../../library/asyncio-sync.rst:412 +msgid "" +"Pass the barrier. When all the tasks party to the barrier have called this " +"function, they are all unblocked simultaneously." +msgstr "" + +#: ../../library/asyncio-sync.rst:415 +msgid "" +"When a waiting or blocked task in the barrier is cancelled, this task exits " +"the barrier which stays in the same state. If the state of the barrier is " +"\"filling\", the number of waiting task decreases by 1." +msgstr "" + +#: ../../library/asyncio-sync.rst:420 +msgid "" +"The return value is an integer in the range of 0 to ``parties-1``, different " +"for each task. This can be used to select a task to do some special " +"housekeeping, e.g.::" +msgstr "" + +#: ../../library/asyncio-sync.rst:424 +msgid "" +"...\n" +"async with barrier as position:\n" +" if position == 0:\n" +" # Only one task prints this\n" +" print('End of *draining phase*')" +msgstr "" + +#: ../../library/asyncio-sync.rst:430 +msgid "" +"This method may raise a :class:`BrokenBarrierError` exception if the barrier " +"is broken or reset while a task is waiting. It could raise " +"a :exc:`CancelledError` if a task is cancelled." +msgstr "" + +#: ../../library/asyncio-sync.rst:437 +msgid "" +"Return the barrier to the default, empty state. Any tasks waiting on it " +"will receive the :class:`BrokenBarrierError` exception." +msgstr "" + +#: ../../library/asyncio-sync.rst:440 +msgid "" +"If a barrier is broken it may be better to just leave it and create a new " +"one." +msgstr "" + +#: ../../library/asyncio-sync.rst:445 +msgid "" +"Put the barrier into a broken state. This causes any active or future calls " +"to :meth:`~Barrier.wait` to fail with the :class:`BrokenBarrierError`. Use " +"this for example if one of the tasks needs to abort, to avoid infinite " +"waiting tasks." +msgstr "" + +#: ../../library/asyncio-sync.rst:452 +msgid "The number of tasks required to pass the barrier." +msgstr "" + +#: ../../library/asyncio-sync.rst:456 +msgid "The number of tasks currently waiting in the barrier while filling." +msgstr "" + +#: ../../library/asyncio-sync.rst:460 +msgid "A boolean that is ``True`` if the barrier is in the broken state." +msgstr "" + +#: ../../library/asyncio-sync.rst:465 +msgid "" +"This exception, a subclass of :exc:`RuntimeError`, is raised when " +"the :class:`Barrier` object is reset or broken." +msgstr "" + +#: ../../library/asyncio-sync.rst:473 +msgid "" +"Acquiring a lock using ``await lock`` or ``yield from lock`` and/" +"or :keyword:`with` statement (``with await lock``, ``with (yield from " +"lock)``) was removed. Use ``async with lock`` instead." +msgstr "" diff --git a/library/asyncio-task.po b/library/asyncio-task.po new file mode 100644 index 0000000..91c3f4d --- /dev/null +++ b/library/asyncio-task.po @@ -0,0 +1,1968 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio-task.rst:6 +msgid "Coroutines and Tasks" +msgstr "" + +#: ../../library/asyncio-task.rst:8 +msgid "" +"This section outlines high-level asyncio APIs to work with coroutines and " +"Tasks." +msgstr "" + +#: ../../library/asyncio-task.rst:19 ../../library/asyncio-task.rst:148 +msgid "Coroutines" +msgstr "" + +#: ../../library/asyncio-task.rst:21 +msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" +msgstr "" + +#: ../../library/asyncio-task.rst:25 +msgid "" +":term:`Coroutines ` declared with the async/await syntax is the " +"preferred way of writing asyncio applications. For example, the following " +"snippet of code prints \"hello\", waits 1 second, and then prints \"world\"::" +msgstr "" + +#: ../../library/asyncio-task.rst:30 +msgid "" +">>> import asyncio\n" +"\n" +">>> async def main():\n" +"... print('hello')\n" +"... await asyncio.sleep(1)\n" +"... print('world')\n" +"\n" +">>> asyncio.run(main())\n" +"hello\n" +"world" +msgstr "" + +#: ../../library/asyncio-task.rst:41 +msgid "" +"Note that simply calling a coroutine will not schedule it to be executed::" +msgstr "" + +#: ../../library/asyncio-task.rst:44 +msgid "" +">>> main()\n" +"" +msgstr "" + +#: ../../library/asyncio-task.rst:47 +msgid "To actually run a coroutine, asyncio provides the following mechanisms:" +msgstr "" + +#: ../../library/asyncio-task.rst:49 +msgid "" +"The :func:`asyncio.run` function to run the top-level entry point \"main()\" " +"function (see the above example.)" +msgstr "" + +#: ../../library/asyncio-task.rst:52 +msgid "" +"Awaiting on a coroutine. The following snippet of code will print \"hello\" " +"after waiting for 1 second, and then print \"world\" after waiting for " +"*another* 2 seconds::" +msgstr "" + +#: ../../library/asyncio-task.rst:56 +msgid "" +"import asyncio\n" +"import time\n" +"\n" +"async def say_after(delay, what):\n" +" await asyncio.sleep(delay)\n" +" print(what)\n" +"\n" +"async def main():\n" +" print(f\"started at {time.strftime('%X')}\")\n" +"\n" +" await say_after(1, 'hello')\n" +" await say_after(2, 'world')\n" +"\n" +" print(f\"finished at {time.strftime('%X')}\")\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-task.rst:73 +msgid "Expected output::" +msgstr "" + +#: ../../library/asyncio-task.rst:75 +msgid "" +"started at 17:13:52\n" +"hello\n" +"world\n" +"finished at 17:13:55" +msgstr "" + +#: ../../library/asyncio-task.rst:80 +msgid "" +"The :func:`asyncio.create_task` function to run coroutines concurrently as " +"asyncio :class:`Tasks `." +msgstr "" + +#: ../../library/asyncio-task.rst:83 +msgid "" +"Let's modify the above example and run two ``say_after`` coroutines " +"*concurrently*::" +msgstr "" + +#: ../../library/asyncio-task.rst:86 +msgid "" +"async def main():\n" +" task1 = asyncio.create_task(\n" +" say_after(1, 'hello'))\n" +"\n" +" task2 = asyncio.create_task(\n" +" say_after(2, 'world'))\n" +"\n" +" print(f\"started at {time.strftime('%X')}\")\n" +"\n" +" # Wait until both tasks are completed (should take\n" +" # around 2 seconds.)\n" +" await task1\n" +" await task2\n" +"\n" +" print(f\"finished at {time.strftime('%X')}\")" +msgstr "" + +#: ../../library/asyncio-task.rst:102 +msgid "" +"Note that expected output now shows that the snippet runs 1 second faster " +"than before::" +msgstr "" + +#: ../../library/asyncio-task.rst:105 +msgid "" +"started at 17:14:32\n" +"hello\n" +"world\n" +"finished at 17:14:34" +msgstr "" + +#: ../../library/asyncio-task.rst:110 +msgid "" +"The :class:`asyncio.TaskGroup` class provides a more modern alternative " +"to :func:`create_task`. Using this API, the last example becomes::" +msgstr "" + +#: ../../library/asyncio-task.rst:114 +msgid "" +"async def main():\n" +" async with asyncio.TaskGroup() as tg:\n" +" task1 = tg.create_task(\n" +" say_after(1, 'hello'))\n" +"\n" +" task2 = tg.create_task(\n" +" say_after(2, 'world'))\n" +"\n" +" print(f\"started at {time.strftime('%X')}\")\n" +"\n" +" # The await is implicit when the context manager exits.\n" +"\n" +" print(f\"finished at {time.strftime('%X')}\")" +msgstr "" + +#: ../../library/asyncio-task.rst:128 +msgid "The timing and output should be the same as for the previous version." +msgstr "" + +#: ../../library/asyncio-task.rst:130 +msgid ":class:`asyncio.TaskGroup`." +msgstr "" + +#: ../../library/asyncio-task.rst:137 +msgid "Awaitables" +msgstr "" + +#: ../../library/asyncio-task.rst:139 +msgid "" +"We say that an object is an **awaitable** object if it can be used in " +"an :keyword:`await` expression. Many asyncio APIs are designed to accept " +"awaitables." +msgstr "" + +#: ../../library/asyncio-task.rst:143 +msgid "" +"There are three main types of *awaitable* objects: **coroutines**, " +"**Tasks**, and **Futures**." +msgstr "" + +#: ../../library/asyncio-task.rst:149 +msgid "" +"Python coroutines are *awaitables* and therefore can be awaited from other " +"coroutines::" +msgstr "" + +#: ../../library/asyncio-task.rst:152 +msgid "" +"import asyncio\n" +"\n" +"async def nested():\n" +" return 42\n" +"\n" +"async def main():\n" +" # Nothing happens if we just call \"nested()\".\n" +" # A coroutine object is created but not awaited,\n" +" # so it *won't run at all*.\n" +" nested() # will raise a \"RuntimeWarning\".\n" +"\n" +" # Let's do it differently now and await it:\n" +" print(await nested()) # will print \"42\".\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-task.rst:170 +msgid "" +"In this documentation the term \"coroutine\" can be used for two closely " +"related concepts:" +msgstr "" + +#: ../../library/asyncio-task.rst:173 +msgid "a *coroutine function*: an :keyword:`async def` function;" +msgstr "" + +#: ../../library/asyncio-task.rst:175 +msgid "" +"a *coroutine object*: an object returned by calling a *coroutine function*." +msgstr "" + +#: ../../library/asyncio-task.rst:180 +msgid "Tasks" +msgstr "" + +#: ../../library/asyncio-task.rst:181 +msgid "*Tasks* are used to schedule coroutines *concurrently*." +msgstr "" + +#: ../../library/asyncio-task.rst:183 +msgid "" +"When a coroutine is wrapped into a *Task* with functions " +"like :func:`asyncio.create_task` the coroutine is automatically scheduled to " +"run soon::" +msgstr "" + +#: ../../library/asyncio-task.rst:187 +msgid "" +"import asyncio\n" +"\n" +"async def nested():\n" +" return 42\n" +"\n" +"async def main():\n" +" # Schedule nested() to run soon concurrently\n" +" # with \"main()\".\n" +" task = asyncio.create_task(nested())\n" +"\n" +" # \"task\" can now be used to cancel \"nested()\", or\n" +" # can simply be awaited to wait until it is complete:\n" +" await task\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-task.rst:205 +msgid "Futures" +msgstr "" + +#: ../../library/asyncio-task.rst:206 +msgid "" +"A :class:`Future` is a special **low-level** awaitable object that " +"represents an **eventual result** of an asynchronous operation." +msgstr "" + +#: ../../library/asyncio-task.rst:209 +msgid "" +"When a Future object is *awaited* it means that the coroutine will wait " +"until the Future is resolved in some other place." +msgstr "" + +#: ../../library/asyncio-task.rst:212 +msgid "" +"Future objects in asyncio are needed to allow callback-based code to be used " +"with async/await." +msgstr "" + +#: ../../library/asyncio-task.rst:215 +msgid "" +"Normally **there is no need** to create Future objects at the application " +"level code." +msgstr "" + +#: ../../library/asyncio-task.rst:218 +msgid "" +"Future objects, sometimes exposed by libraries and some asyncio APIs, can be " +"awaited::" +msgstr "" + +#: ../../library/asyncio-task.rst:221 +msgid "" +"async def main():\n" +" await function_that_returns_a_future_object()\n" +"\n" +" # this is also valid:\n" +" await asyncio.gather(\n" +" function_that_returns_a_future_object(),\n" +" some_python_coroutine()\n" +" )" +msgstr "" + +#: ../../library/asyncio-task.rst:230 +msgid "" +"A good example of a low-level function that returns a Future object " +"is :meth:`loop.run_in_executor`." +msgstr "" + +#: ../../library/asyncio-task.rst:235 +msgid "Creating Tasks" +msgstr "" + +#: ../../library/asyncio-task.rst:237 +msgid "**Source code:** :source:`Lib/asyncio/tasks.py`" +msgstr "" + +#: ../../library/asyncio-task.rst:243 +msgid "" +"Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " +"schedule its execution. Return the Task object." +msgstr "" + +#: ../../library/asyncio-task.rst:246 +msgid "" +"The full function signature is largely the same as that of the :class:`Task` " +"constructor (or factory) - all of the keyword arguments to this function are " +"passed through to that interface." +msgstr "" + +#: ../../library/asyncio-task.rst:250 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the *coro* to run in. The current " +"context copy is created when no *context* is provided." +msgstr "" + +#: ../../library/asyncio-task.rst:254 +msgid "" +"An optional keyword-only *eager_start* argument allows specifying if the " +"task should execute eagerly during the call to create_task, or be scheduled " +"later. If *eager_start* is not passed the mode set " +"by :meth:`loop.set_task_factory` will be used." +msgstr "" + +#: ../../library/asyncio-task.rst:259 +msgid "" +"The task is executed in the loop returned " +"by :func:`get_running_loop`, :exc:`RuntimeError` is raised if there is no " +"running loop in current thread." +msgstr "" + +#: ../../library/asyncio-task.rst:265 +msgid "" +":meth:`asyncio.TaskGroup.create_task` is a new alternative leveraging " +"structural concurrency; it allows for waiting for a group of related tasks " +"with strong safety guarantees." +msgstr "" + +#: ../../library/asyncio-task.rst:271 +msgid "" +"Save a reference to the result of this function, to avoid a task " +"disappearing mid-execution. The event loop only keeps weak references to " +"tasks. A task that isn't referenced elsewhere may get garbage collected at " +"any time, even before it's done. For reliable \"fire-and-forget\" background " +"tasks, gather them in a collection::" +msgstr "" + +#: ../../library/asyncio-task.rst:278 +msgid "" +"background_tasks = set()\n" +"\n" +"for i in range(10):\n" +" task = asyncio.create_task(some_coro(param=i))\n" +"\n" +" # Add task to the set. This creates a strong reference.\n" +" background_tasks.add(task)\n" +"\n" +" # To prevent keeping references to finished tasks forever,\n" +" # make each task remove its own reference from the set after\n" +" # completion:\n" +" task.add_done_callback(background_tasks.discard)" +msgstr "" + +#: ../../library/asyncio-task.rst:293 ../../library/asyncio-task.rst:1250 +msgid "Added the *name* parameter." +msgstr "" + +#: ../../library/asyncio-task.rst:296 ../../library/asyncio-task.rst:1257 +msgid "Added the *context* parameter." +msgstr "" + +#: ../../library/asyncio-task.rst:299 +msgid "Added the *eager_start* parameter by passing on all *kwargs*." +msgstr "" + +#: ../../library/asyncio-task.rst:304 +msgid "Task Cancellation" +msgstr "" + +#: ../../library/asyncio-task.rst:306 +msgid "" +"Tasks can easily and safely be cancelled. When a task is " +"cancelled, :exc:`asyncio.CancelledError` will be raised in the task at the " +"next opportunity." +msgstr "" + +#: ../../library/asyncio-task.rst:310 +msgid "" +"It is recommended that coroutines use ``try/finally`` blocks to robustly " +"perform clean-up logic. In case :exc:`asyncio.CancelledError` is explicitly " +"caught, it should generally be propagated when clean-up is " +"complete. :exc:`asyncio.CancelledError` directly " +"subclasses :exc:`BaseException` so most code will not need to be aware of it." +msgstr "" + +#: ../../library/asyncio-task.rst:316 +msgid "" +"The asyncio components that enable structured concurrency, " +"like :class:`asyncio.TaskGroup` and :func:`asyncio.timeout`, are implemented " +"using cancellation internally and might misbehave if a coroutine " +"swallows :exc:`asyncio.CancelledError`. Similarly, user code should not " +"generally call :meth:`uncancel `. However, in cases " +"when suppressing :exc:`asyncio.CancelledError` is truly desired, it is " +"necessary to also call ``uncancel()`` to completely remove the cancellation " +"state." +msgstr "" + +#: ../../library/asyncio-task.rst:328 +msgid "Task Groups" +msgstr "" + +#: ../../library/asyncio-task.rst:330 +msgid "" +"Task groups combine a task creation API with a convenient and reliable way " +"to wait for all tasks in the group to finish." +msgstr "" + +#: ../../library/asyncio-task.rst:335 +msgid "" +"An :ref:`asynchronous context manager ` holding a " +"group of tasks. Tasks can be added to the group using :meth:`create_task`. " +"All tasks are awaited when the context manager exits." +msgstr "" + +#: ../../library/asyncio-task.rst:344 +msgid "" +"Create a task in this task group. The signature matches that " +"of :func:`asyncio.create_task`. If the task group is inactive (e.g. not yet " +"entered, already finished, or in the process of shutting down), we will " +"close the given ``coro``." +msgstr "" + +#: ../../library/asyncio-task.rst:352 +msgid "Close the given coroutine if the task group is not active." +msgstr "" + +#: ../../library/asyncio-task.rst:356 +msgid "Passes on all *kwargs* to :meth:`loop.create_task`" +msgstr "" + +#: ../../library/asyncio-task.rst:358 ../../library/asyncio-task.rst:564 +#: ../../library/asyncio-task.rst:737 ../../library/asyncio-task.rst:795 +#: ../../library/asyncio-task.rst:821 ../../library/asyncio-task.rst:862 +msgid "Example::" +msgstr "" + +#: ../../library/asyncio-task.rst:360 +msgid "" +"async def main():\n" +" async with asyncio.TaskGroup() as tg:\n" +" task1 = tg.create_task(some_coro(...))\n" +" task2 = tg.create_task(another_coro(...))\n" +" print(f\"Both tasks have completed now: {task1.result()}, " +"{task2.result()}\")" +msgstr "" + +#: ../../library/asyncio-task.rst:366 +msgid "" +"The ``async with`` statement will wait for all tasks in the group to finish. " +"While waiting, new tasks may still be added to the group (for example, by " +"passing ``tg`` into one of the coroutines and calling ``tg.create_task()`` " +"in that coroutine). Once the last task has finished and the ``async with`` " +"block is exited, no new tasks may be added to the group." +msgstr "" + +#: ../../library/asyncio-task.rst:373 +msgid "" +"The first time any of the tasks belonging to the group fails with an " +"exception other than :exc:`asyncio.CancelledError`, the remaining tasks in " +"the group are cancelled. No further tasks can then be added to the group. At " +"this point, if the body of the ``async with`` statement is still active " +"(i.e., :meth:`~object.__aexit__` hasn't been called yet), the task directly " +"containing the ``async with`` statement is also cancelled. The " +"resulting :exc:`asyncio.CancelledError` will interrupt an ``await``, but it " +"will not bubble out of the containing ``async with`` statement." +msgstr "" + +#: ../../library/asyncio-task.rst:383 +msgid "" +"Once all tasks have finished, if any tasks have failed with an exception " +"other than :exc:`asyncio.CancelledError`, those exceptions are combined in " +"an :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup` (as appropriate; see " +"their documentation) which is then raised." +msgstr "" + +#: ../../library/asyncio-task.rst:390 +msgid "" +"Two base exceptions are treated specially: If any task fails " +"with :exc:`KeyboardInterrupt` or :exc:`SystemExit`, the task group still " +"cancels the remaining tasks and waits for them, but then the " +"initial :exc:`KeyboardInterrupt` or :exc:`SystemExit` is re-raised instead " +"of :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup`." +msgstr "" + +#: ../../library/asyncio-task.rst:396 +msgid "" +"If the body of the ``async with`` statement exits with an exception " +"(so :meth:`~object.__aexit__` is called with an exception set), this is " +"treated the same as if one of the tasks failed: the remaining tasks are " +"cancelled and then waited for, and non-cancellation exceptions are grouped " +"into an exception group and raised. The exception passed " +"into :meth:`~object.__aexit__`, unless it is :exc:`asyncio.CancelledError`, " +"is also included in the exception group. The same special case is made " +"for :exc:`KeyboardInterrupt` and :exc:`SystemExit` as in the previous " +"paragraph." +msgstr "" + +#: ../../library/asyncio-task.rst:408 +msgid "" +"Task groups are careful not to mix up the internal cancellation used to " +"\"wake up\" their :meth:`~object.__aexit__` with cancellation requests for " +"the task in which they are running made by other parties. In particular, " +"when one task group is syntactically nested in another, and both experience " +"an exception in one of their child tasks simultaneously, the inner task " +"group will process its exceptions, and then the outer task group will " +"receive another cancellation and process its own exceptions." +msgstr "" + +#: ../../library/asyncio-task.rst:416 +msgid "" +"In the case where a task group is cancelled externally and also must raise " +"an :exc:`ExceptionGroup`, it will call the parent " +"task's :meth:`~asyncio.Task.cancel` method. This ensures that " +"a :exc:`asyncio.CancelledError` will be raised at the next :keyword:`await`, " +"so the cancellation is not lost." +msgstr "" + +#: ../../library/asyncio-task.rst:422 +msgid "" +"Task groups preserve the cancellation count reported " +"by :meth:`asyncio.Task.cancelling`." +msgstr "" + +#: ../../library/asyncio-task.rst:427 +msgid "" +"Improved handling of simultaneous internal and external cancellations and " +"correct preservation of cancellation counts." +msgstr "" + +#: ../../library/asyncio-task.rst:431 +msgid "Terminating a Task Group" +msgstr "" + +#: ../../library/asyncio-task.rst:433 +msgid "" +"While terminating a task group is not natively supported by the standard " +"library, termination can be achieved by adding an exception-raising task to " +"the task group and ignoring the raised exception:" +msgstr "" + +#: ../../library/asyncio-task.rst:437 +msgid "" +"import asyncio\n" +"from asyncio import TaskGroup\n" +"\n" +"class TerminateTaskGroup(Exception):\n" +" \"\"\"Exception raised to terminate a task group.\"\"\"\n" +"\n" +"async def force_terminate_task_group():\n" +" \"\"\"Used to force termination of a task group.\"\"\"\n" +" raise TerminateTaskGroup()\n" +"\n" +"async def job(task_id, sleep_time):\n" +" print(f'Task {task_id}: start')\n" +" await asyncio.sleep(sleep_time)\n" +" print(f'Task {task_id}: done')\n" +"\n" +"async def main():\n" +" try:\n" +" async with TaskGroup() as group:\n" +" # spawn some tasks\n" +" group.create_task(job(1, 0.5))\n" +" group.create_task(job(2, 1.5))\n" +" # sleep for 1 second\n" +" await asyncio.sleep(1)\n" +" # add an exception-raising task to force the group to terminate\n" +" group.create_task(force_terminate_task_group())\n" +" except* TerminateTaskGroup:\n" +" pass\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio-task.rst:469 +msgid "Expected output:" +msgstr "" + +#: ../../library/asyncio-task.rst:471 +msgid "" +"Task 1: start\n" +"Task 2: start\n" +"Task 1: done" +msgstr "" + +#: ../../library/asyncio-task.rst:478 +msgid "Sleeping" +msgstr "" + +#: ../../library/asyncio-task.rst:483 +msgid "Block for *delay* seconds." +msgstr "" + +#: ../../library/asyncio-task.rst:485 +msgid "" +"If *result* is provided, it is returned to the caller when the coroutine " +"completes." +msgstr "" + +#: ../../library/asyncio-task.rst:488 +msgid "" +"``sleep()`` always suspends the current task, allowing other tasks to run." +msgstr "" + +#: ../../library/asyncio-task.rst:491 +msgid "" +"Setting the delay to 0 provides an optimized path to allow other tasks to " +"run. This can be used by long-running functions to avoid blocking the event " +"loop for the full duration of the function call." +msgstr "" + +#: ../../library/asyncio-task.rst:497 +msgid "" +"Example of coroutine displaying the current date every second for 5 seconds::" +msgstr "" + +#: ../../library/asyncio-task.rst:500 +msgid "" +"import asyncio\n" +"import datetime\n" +"\n" +"async def display_date():\n" +" loop = asyncio.get_running_loop()\n" +" end_time = loop.time() + 5.0\n" +" while True:\n" +" print(datetime.datetime.now())\n" +" if (loop.time() + 1.0) >= end_time:\n" +" break\n" +" await asyncio.sleep(1)\n" +"\n" +"asyncio.run(display_date())" +msgstr "" + +#: ../../library/asyncio-task.rst:515 ../../library/asyncio-task.rst:613 +#: ../../library/asyncio-task.rst:712 ../../library/asyncio-task.rst:887 +#: ../../library/asyncio-task.rst:942 ../../library/asyncio-task.rst:999 +msgid "Removed the *loop* parameter." +msgstr "" + +#: ../../library/asyncio-task.rst:518 +msgid "Raises :exc:`ValueError` if *delay* is :data:`~math.nan`." +msgstr "" + +#: ../../library/asyncio-task.rst:523 +msgid "Running Tasks Concurrently" +msgstr "" + +#: ../../library/asyncio-task.rst:527 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* sequence " +"*concurrently*." +msgstr "" + +#: ../../library/asyncio-task.rst:530 +msgid "" +"If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " +"Task." +msgstr "" + +#: ../../library/asyncio-task.rst:533 +msgid "" +"If all awaitables are completed successfully, the result is an aggregate " +"list of returned values. The order of result values corresponds to the " +"order of awaitables in *aws*." +msgstr "" + +#: ../../library/asyncio-task.rst:537 +msgid "" +"If *return_exceptions* is ``False`` (default), the first raised exception is " +"immediately propagated to the task that awaits on ``gather()``. Other " +"awaitables in the *aws* sequence **won't be cancelled** and will continue to " +"run." +msgstr "" + +#: ../../library/asyncio-task.rst:542 +msgid "" +"If *return_exceptions* is ``True``, exceptions are treated the same as " +"successful results, and aggregated in the result list." +msgstr "" + +#: ../../library/asyncio-task.rst:545 +msgid "" +"If ``gather()`` is *cancelled*, all submitted awaitables (that have not " +"completed yet) are also *cancelled*." +msgstr "" + +#: ../../library/asyncio-task.rst:548 +msgid "" +"If any Task or Future from the *aws* sequence is *cancelled*, it is treated " +"as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " +"cancelled in this case. This is to prevent the cancellation of one " +"submitted Task/Future to cause other Tasks/Futures to be cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:555 +msgid "" +"A new alternative to create and run tasks concurrently and wait for their " +"completion is :class:`asyncio.TaskGroup`. *TaskGroup* provides stronger " +"safety guarantees than *gather* for scheduling a nesting of subtasks: if a " +"task (or a subtask, a task scheduled by a task) raises an exception, " +"*TaskGroup* will, while *gather* will not, cancel the remaining scheduled " +"tasks)." +msgstr "" + +#: ../../library/asyncio-task.rst:566 +msgid "" +"import asyncio\n" +"\n" +"async def factorial(name, number):\n" +" f = 1\n" +" for i in range(2, number + 1):\n" +" print(f\"Task {name}: Compute factorial({number}), currently i={i}..." +"\")\n" +" await asyncio.sleep(1)\n" +" f *= i\n" +" print(f\"Task {name}: factorial({number}) = {f}\")\n" +" return f\n" +"\n" +"async def main():\n" +" # Schedule three calls *concurrently*:\n" +" L = await asyncio.gather(\n" +" factorial(\"A\", 2),\n" +" factorial(\"B\", 3),\n" +" factorial(\"C\", 4),\n" +" )\n" +" print(L)\n" +"\n" +"asyncio.run(main())\n" +"\n" +"# Expected output:\n" +"#\n" +"# Task A: Compute factorial(2), currently i=2...\n" +"# Task B: Compute factorial(3), currently i=2...\n" +"# Task C: Compute factorial(4), currently i=2...\n" +"# Task A: factorial(2) = 2\n" +"# Task B: Compute factorial(3), currently i=3...\n" +"# Task C: Compute factorial(4), currently i=3...\n" +"# Task B: factorial(3) = 6\n" +"# Task C: Compute factorial(4), currently i=4...\n" +"# Task C: factorial(4) = 24\n" +"# [2, 6, 24]" +msgstr "" + +#: ../../library/asyncio-task.rst:602 +msgid "" +"If *return_exceptions* is false, cancelling gather() after it has been " +"marked done won't cancel any submitted awaitables. For instance, gather can " +"be marked done after propagating an exception to the caller, therefore, " +"calling ``gather.cancel()`` after catching an exception (raised by one of " +"the awaitables) from gather won't cancel any other awaitables." +msgstr "" + +#: ../../library/asyncio-task.rst:609 +msgid "" +"If the *gather* itself is cancelled, the cancellation is propagated " +"regardless of *return_exceptions*." +msgstr "" + +#: ../../library/asyncio-task.rst:616 +msgid "" +"Deprecation warning is emitted if no positional arguments are provided or " +"not all positional arguments are Future-like objects and there is no running " +"event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:625 +msgid "Eager Task Factory" +msgstr "" + +#: ../../library/asyncio-task.rst:629 +msgid "A task factory for eager task execution." +msgstr "" + +#: ../../library/asyncio-task.rst:631 +msgid "" +"When using this factory " +"(via :meth:`loop.set_task_factory(asyncio.eager_task_factory) " +"`), coroutines begin execution synchronously " +"during :class:`Task` construction. Tasks are only scheduled on the event " +"loop if they block. This can be a performance improvement as the overhead of " +"loop scheduling is avoided for coroutines that complete synchronously." +msgstr "" + +#: ../../library/asyncio-task.rst:637 +msgid "" +"A common example where this is beneficial is coroutines which employ caching " +"or memoization to avoid actual I/O when possible." +msgstr "" + +#: ../../library/asyncio-task.rst:642 +msgid "" +"Immediate execution of the coroutine is a semantic change. If the coroutine " +"returns or raises, the task is never scheduled to the event loop. If the " +"coroutine execution blocks, the task is scheduled to the event loop. This " +"change may introduce behavior changes to existing applications. For example, " +"the application's task execution order is likely to change." +msgstr "" + +#: ../../library/asyncio-task.rst:653 +msgid "" +"Create an eager task factory, similar to :func:`eager_task_factory`, using " +"the provided *custom_task_constructor* when creating a new task instead of " +"the default :class:`Task`." +msgstr "" + +#: ../../library/asyncio-task.rst:657 +msgid "" +"*custom_task_constructor* must be a *callable* with the signature matching " +"the signature of :class:`Task.__init__ `. The callable must return " +"a :class:`asyncio.Task`-compatible object." +msgstr "" + +#: ../../library/asyncio-task.rst:661 +msgid "" +"This function returns a *callable* intended to be used as a task factory of " +"an event loop via :meth:`loop.set_task_factory(factory) " +"`)." +msgstr "" + +#: ../../library/asyncio-task.rst:668 +msgid "Shielding From Cancellation" +msgstr "" + +#: ../../library/asyncio-task.rst:672 +msgid "" +"Protect an :ref:`awaitable object ` from " +"being :meth:`cancelled `." +msgstr "" + +#: ../../library/asyncio-task.rst:675 ../../library/asyncio-task.rst:842 +msgid "If *aw* is a coroutine it is automatically scheduled as a Task." +msgstr "" + +#: ../../library/asyncio-task.rst:677 +msgid "The statement::" +msgstr "" + +#: ../../library/asyncio-task.rst:679 +msgid "" +"task = asyncio.create_task(something())\n" +"res = await shield(task)" +msgstr "" + +#: ../../library/asyncio-task.rst:682 +msgid "is equivalent to::" +msgstr "" + +#: ../../library/asyncio-task.rst:684 +msgid "res = await something()" +msgstr "" + +#: ../../library/asyncio-task.rst:686 +msgid "" +"*except* that if the coroutine containing it is cancelled, the Task running " +"in ``something()`` is not cancelled. From the point of view of " +"``something()``, the cancellation did not happen. Although its caller is " +"still cancelled, so the \"await\" expression still raises " +"a :exc:`CancelledError`." +msgstr "" + +#: ../../library/asyncio-task.rst:692 +msgid "" +"If ``something()`` is cancelled by other means (i.e. from within itself) " +"that would also cancel ``shield()``." +msgstr "" + +#: ../../library/asyncio-task.rst:695 +msgid "" +"If it is desired to completely ignore cancellation (not recommended) the " +"``shield()`` function should be combined with a try/except clause, as " +"follows::" +msgstr "" + +#: ../../library/asyncio-task.rst:699 +msgid "" +"task = asyncio.create_task(something())\n" +"try:\n" +" res = await shield(task)\n" +"except CancelledError:\n" +" res = None" +msgstr "" + +#: ../../library/asyncio-task.rst:707 +msgid "" +"Save a reference to tasks passed to this function, to avoid a task " +"disappearing mid-execution. The event loop only keeps weak references to " +"tasks. A task that isn't referenced elsewhere may get garbage collected at " +"any time, even before it's done." +msgstr "" + +#: ../../library/asyncio-task.rst:715 +msgid "" +"Deprecation warning is emitted if *aw* is not Future-like object and there " +"is no running event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:721 +msgid "Timeouts" +msgstr "" + +#: ../../library/asyncio-task.rst:725 +msgid "" +"Return an :ref:`asynchronous context manager ` that " +"can be used to limit the amount of time spent waiting on something." +msgstr "" + +#: ../../library/asyncio-task.rst:729 +msgid "" +"*delay* can either be ``None``, or a float/int number of seconds to wait. If " +"*delay* is ``None``, no time limit will be applied; this can be useful if " +"the delay is unknown when the context manager is created." +msgstr "" + +#: ../../library/asyncio-task.rst:734 +msgid "" +"In either case, the context manager can be rescheduled after creation " +"using :meth:`Timeout.reschedule`." +msgstr "" + +#: ../../library/asyncio-task.rst:739 +msgid "" +"async def main():\n" +" async with asyncio.timeout(10):\n" +" await long_running_task()" +msgstr "" + +#: ../../library/asyncio-task.rst:743 +msgid "" +"If ``long_running_task`` takes more than 10 seconds to complete, the context " +"manager will cancel the current task and handle the " +"resulting :exc:`asyncio.CancelledError` internally, transforming it into " +"a :exc:`TimeoutError` which can be caught and handled." +msgstr "" + +#: ../../library/asyncio-task.rst:750 +msgid "" +"The :func:`asyncio.timeout` context manager is what transforms " +"the :exc:`asyncio.CancelledError` into a :exc:`TimeoutError`, which means " +"the :exc:`TimeoutError` can only be caught *outside* of the context manager." +msgstr "" + +#: ../../library/asyncio-task.rst:755 +msgid "Example of catching :exc:`TimeoutError`::" +msgstr "" + +#: ../../library/asyncio-task.rst:757 +msgid "" +"async def main():\n" +" try:\n" +" async with asyncio.timeout(10):\n" +" await long_running_task()\n" +" except TimeoutError:\n" +" print(\"The long operation timed out, but we've handled it.\")\n" +"\n" +" print(\"This statement will run regardless.\")" +msgstr "" + +#: ../../library/asyncio-task.rst:766 +msgid "" +"The context manager produced by :func:`asyncio.timeout` can be rescheduled " +"to a different deadline and inspected." +msgstr "" + +#: ../../library/asyncio-task.rst:771 +msgid "" +"An :ref:`asynchronous context manager ` for " +"cancelling overdue coroutines." +msgstr "" + +#: ../../library/asyncio-task.rst:774 +msgid "" +"``when`` should be an absolute time at which the context should time out, as " +"measured by the event loop's clock:" +msgstr "" + +#: ../../library/asyncio-task.rst:777 +msgid "If ``when`` is ``None``, the timeout will never trigger." +msgstr "" + +#: ../../library/asyncio-task.rst:778 +msgid "" +"If ``when < loop.time()``, the timeout will trigger on the next iteration of " +"the event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:783 +msgid "" +"Return the current deadline, or ``None`` if the current deadline is not set." +msgstr "" + +#: ../../library/asyncio-task.rst:788 +msgid "Reschedule the timeout." +msgstr "" + +#: ../../library/asyncio-task.rst:792 +msgid "Return whether the context manager has exceeded its deadline (expired)." +msgstr "" + +#: ../../library/asyncio-task.rst:797 +msgid "" +"async def main():\n" +" try:\n" +" # We do not know the timeout when starting, so we pass ``None``.\n" +" async with asyncio.timeout(None) as cm:\n" +" # We know the timeout now, so we reschedule it.\n" +" new_deadline = get_running_loop().time() + 10\n" +" cm.reschedule(new_deadline)\n" +"\n" +" await long_running_task()\n" +" except TimeoutError:\n" +" pass\n" +"\n" +" if cm.expired():\n" +" print(\"Looks like we haven't finished on time.\")" +msgstr "" + +#: ../../library/asyncio-task.rst:812 +msgid "Timeout context managers can be safely nested." +msgstr "" + +#: ../../library/asyncio-task.rst:818 +msgid "" +"Similar to :func:`asyncio.timeout`, except *when* is the absolute time to " +"stop waiting, or ``None``." +msgstr "" + +#: ../../library/asyncio-task.rst:823 +msgid "" +"async def main():\n" +" loop = get_running_loop()\n" +" deadline = loop.time() + 20\n" +" try:\n" +" async with asyncio.timeout_at(deadline):\n" +" await long_running_task()\n" +" except TimeoutError:\n" +" print(\"The long operation timed out, but we've handled it.\")\n" +"\n" +" print(\"This statement will run regardless.\")" +msgstr "" + +#: ../../library/asyncio-task.rst:839 +msgid "" +"Wait for the *aw* :ref:`awaitable ` to complete with a " +"timeout." +msgstr "" + +#: ../../library/asyncio-task.rst:844 +msgid "" +"*timeout* can either be ``None`` or a float or int number of seconds to wait " +"for. If *timeout* is ``None``, block until the future completes." +msgstr "" + +#: ../../library/asyncio-task.rst:848 +msgid "" +"If a timeout occurs, it cancels the task and raises :exc:`TimeoutError`." +msgstr "" + +#: ../../library/asyncio-task.rst:851 +msgid "" +"To avoid the task :meth:`cancellation `, wrap it " +"in :func:`shield`." +msgstr "" + +#: ../../library/asyncio-task.rst:854 +msgid "" +"The function will wait until the future is actually cancelled, so the total " +"wait time may exceed the *timeout*. If an exception happens during " +"cancellation, it is propagated." +msgstr "" + +#: ../../library/asyncio-task.rst:858 +msgid "If the wait is cancelled, the future *aw* is also cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:864 +msgid "" +"async def eternity():\n" +" # Sleep for one hour\n" +" await asyncio.sleep(3600)\n" +" print('yay!')\n" +"\n" +"async def main():\n" +" # Wait for at most 1 second\n" +" try:\n" +" await asyncio.wait_for(eternity(), timeout=1.0)\n" +" except TimeoutError:\n" +" print('timeout!')\n" +"\n" +"asyncio.run(main())\n" +"\n" +"# Expected output:\n" +"#\n" +"# timeout!" +msgstr "" + +#: ../../library/asyncio-task.rst:882 +msgid "" +"When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " +"cancelled. Previously, it raised :exc:`TimeoutError` immediately." +msgstr "" + +#: ../../library/asyncio-task.rst:890 +msgid "Raises :exc:`TimeoutError` instead of :exc:`asyncio.TimeoutError`." +msgstr "" + +#: ../../library/asyncio-task.rst:895 +msgid "Waiting Primitives" +msgstr "" + +#: ../../library/asyncio-task.rst:900 +msgid "" +"Run :class:`~asyncio.Future` and :class:`~asyncio.Task` instances in the " +"*aws* iterable concurrently and block until the condition specified by " +"*return_when*." +msgstr "" + +#: ../../library/asyncio-task.rst:904 +msgid "The *aws* iterable must not be empty." +msgstr "" + +#: ../../library/asyncio-task.rst:906 +msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." +msgstr "" + +#: ../../library/asyncio-task.rst:908 +msgid "Usage::" +msgstr "" + +#: ../../library/asyncio-task.rst:910 +msgid "done, pending = await asyncio.wait(aws)" +msgstr "" + +#: ../../library/asyncio-task.rst:912 +msgid "" +"*timeout* (a float or int), if specified, can be used to control the maximum " +"number of seconds to wait before returning." +msgstr "" + +#: ../../library/asyncio-task.rst:915 +msgid "" +"Note that this function does not raise :exc:`TimeoutError`. Futures or Tasks " +"that aren't done when the timeout occurs are simply returned in the second " +"set." +msgstr "" + +#: ../../library/asyncio-task.rst:919 +msgid "" +"*return_when* indicates when this function should return. It must be one of " +"the following constants:" +msgstr "" + +#: ../../library/asyncio-task.rst:925 +msgid "Constant" +msgstr "" + +#: ../../library/asyncio-task.rst:926 +msgid "Description" +msgstr "" + +#: ../../library/asyncio-task.rst:929 +msgid "The function will return when any future finishes or is cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:932 +msgid "" +"The function will return when any future finishes by raising an exception. " +"If no future raises an exception then it is equivalent " +"to :const:`ALL_COMPLETED`." +msgstr "" + +#: ../../library/asyncio-task.rst:937 +msgid "The function will return when all futures finish or are cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:939 +msgid "" +"Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " +"when a timeout occurs." +msgstr "" + +#: ../../library/asyncio-task.rst:945 +msgid "Passing coroutine objects to ``wait()`` directly is forbidden." +msgstr "" + +#: ../../library/asyncio-task.rst:948 ../../library/asyncio-task.rst:1006 +msgid "Added support for generators yielding tasks." +msgstr "" + +#: ../../library/asyncio-task.rst:954 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* iterable " +"concurrently. The returned object can be iterated to obtain the results of " +"the awaitables as they finish." +msgstr "" + +#: ../../library/asyncio-task.rst:958 +msgid "" +"The object returned by ``as_completed()`` can be iterated as " +"an :term:`asynchronous iterator` or a plain :term:`iterator`. When " +"asynchronous iteration is used, the originally-supplied awaitables are " +"yielded if they are tasks or futures. This makes it easy to correlate " +"previously-scheduled tasks with their results. Example::" +msgstr "" + +#: ../../library/asyncio-task.rst:964 +msgid "" +"ipv4_connect = create_task(open_connection(\"127.0.0.1\", 80))\n" +"ipv6_connect = create_task(open_connection(\"::1\", 80))\n" +"tasks = [ipv4_connect, ipv6_connect]\n" +"\n" +"async for earliest_connect in as_completed(tasks):\n" +" # earliest_connect is done. The result can be obtained by\n" +" # awaiting it or calling earliest_connect.result()\n" +" reader, writer = await earliest_connect\n" +"\n" +" if earliest_connect is ipv6_connect:\n" +" print(\"IPv6 connection established.\")\n" +" else:\n" +" print(\"IPv4 connection established.\")" +msgstr "" + +#: ../../library/asyncio-task.rst:978 +msgid "" +"During asynchronous iteration, implicitly-created tasks will be yielded for " +"supplied awaitables that aren't tasks or futures." +msgstr "" + +#: ../../library/asyncio-task.rst:981 +msgid "" +"When used as a plain iterator, each iteration yields a new coroutine that " +"returns the result or raises the exception of the next completed awaitable. " +"This pattern is compatible with Python versions older than 3.13::" +msgstr "" + +#: ../../library/asyncio-task.rst:985 +msgid "" +"ipv4_connect = create_task(open_connection(\"127.0.0.1\", 80))\n" +"ipv6_connect = create_task(open_connection(\"::1\", 80))\n" +"tasks = [ipv4_connect, ipv6_connect]\n" +"\n" +"for next_connect in as_completed(tasks):\n" +" # next_connect is not one of the original task objects. It must be\n" +" # awaited to obtain the result value or raise the exception of the\n" +" # awaitable that finishes next.\n" +" reader, writer = await next_connect" +msgstr "" + +#: ../../library/asyncio-task.rst:995 +msgid "" +"A :exc:`TimeoutError` is raised if the timeout occurs before all awaitables " +"are done. This is raised by the ``async for`` loop during asynchronous " +"iteration or by the coroutines yielded during plain iteration." +msgstr "" + +#: ../../library/asyncio-task.rst:1002 +msgid "" +"Deprecation warning is emitted if not all awaitable objects in the *aws* " +"iterable are Future-like objects and there is no running event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1009 +msgid "" +"The result can now be used as either an :term:`asynchronous iterator` or as " +"a plain :term:`iterator` (previously it was only a plain iterator)." +msgstr "" + +#: ../../library/asyncio-task.rst:1015 +msgid "Running in Threads" +msgstr "" + +#: ../../library/asyncio-task.rst:1020 +msgid "Asynchronously run function *func* in a separate thread." +msgstr "" + +#: ../../library/asyncio-task.rst:1022 +msgid "" +"Any \\*args and \\*\\*kwargs supplied for this function are directly passed " +"to *func*. Also, the current :class:`contextvars.Context` is propagated, " +"allowing context variables from the event loop thread to be accessed in the " +"separate thread." +msgstr "" + +#: ../../library/asyncio-task.rst:1027 +msgid "" +"Return a coroutine that can be awaited to get the eventual result of *func*." +msgstr "" + +#: ../../library/asyncio-task.rst:1029 +msgid "" +"This coroutine function is primarily intended to be used for executing IO-" +"bound functions/methods that would otherwise block the event loop if they " +"were run in the main thread. For example::" +msgstr "" + +#: ../../library/asyncio-task.rst:1033 +msgid "" +"def blocking_io():\n" +" print(f\"start blocking_io at {time.strftime('%X')}\")\n" +" # Note that time.sleep() can be replaced with any blocking\n" +" # IO-bound operation, such as file operations.\n" +" time.sleep(1)\n" +" print(f\"blocking_io complete at {time.strftime('%X')}\")\n" +"\n" +"async def main():\n" +" print(f\"started main at {time.strftime('%X')}\")\n" +"\n" +" await asyncio.gather(\n" +" asyncio.to_thread(blocking_io),\n" +" asyncio.sleep(1))\n" +"\n" +" print(f\"finished main at {time.strftime('%X')}\")\n" +"\n" +"\n" +"asyncio.run(main())\n" +"\n" +"# Expected output:\n" +"#\n" +"# started main at 19:50:53\n" +"# start blocking_io at 19:50:53\n" +"# blocking_io complete at 19:50:54\n" +"# finished main at 19:50:54" +msgstr "" + +#: ../../library/asyncio-task.rst:1059 +msgid "" +"Directly calling ``blocking_io()`` in any coroutine would block the event " +"loop for its duration, resulting in an additional 1 second of run time. " +"Instead, by using ``asyncio.to_thread()``, we can run it in a separate " +"thread without blocking the event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1066 +msgid "" +"Due to the :term:`GIL`, ``asyncio.to_thread()`` can typically only be used " +"to make IO-bound functions non-blocking. However, for extension modules that " +"release the GIL or alternative Python implementations that don't have one, " +"``asyncio.to_thread()`` can also be used for CPU-bound functions." +msgstr "" + +#: ../../library/asyncio-task.rst:1075 +msgid "Scheduling From Other Threads" +msgstr "" + +#: ../../library/asyncio-task.rst:1079 +msgid "Submit a coroutine to the given event loop. Thread-safe." +msgstr "" + +#: ../../library/asyncio-task.rst:1081 +msgid "" +"Return a :class:`concurrent.futures.Future` to wait for the result from " +"another OS thread." +msgstr "" + +#: ../../library/asyncio-task.rst:1084 +msgid "" +"This function is meant to be called from a different OS thread than the one " +"where the event loop is running. Example::" +msgstr "" + +#: ../../library/asyncio-task.rst:1087 +msgid "" +"def in_thread(loop: asyncio.AbstractEventLoop) -> None:\n" +" # Run some blocking IO\n" +" pathlib.Path(\"example.txt\").write_text(\"hello world\", " +"encoding=\"utf8\")\n" +"\n" +" # Create a coroutine\n" +" coro = asyncio.sleep(1, result=3)\n" +"\n" +" # Submit the coroutine to a given loop\n" +" future = asyncio.run_coroutine_threadsafe(coro, loop)\n" +"\n" +" # Wait for the result with an optional timeout argument\n" +" assert future.result(timeout=2) == 3\n" +"\n" +"async def amain() -> None:\n" +" # Get the running loop\n" +" loop = asyncio.get_running_loop()\n" +"\n" +" # Run something in a thread\n" +" await asyncio.to_thread(in_thread, loop)" +msgstr "" + +#: ../../library/asyncio-task.rst:1107 +msgid "It's also possible to run the other way around. Example::" +msgstr "" + +#: ../../library/asyncio-task.rst:1109 +msgid "" +"@contextlib.contextmanager\n" +"def loop_in_thread() -> Generator[asyncio.AbstractEventLoop]:\n" +" loop_fut = concurrent.futures.Future[asyncio.AbstractEventLoop]()\n" +" stop_event = asyncio.Event()\n" +"\n" +" async def main() -> None:\n" +" loop_fut.set_result(asyncio.get_running_loop())\n" +" await stop_event.wait()\n" +"\n" +" with concurrent.futures.ThreadPoolExecutor(1) as tpe:\n" +" complete_fut = tpe.submit(asyncio.run, main())\n" +" for fut in concurrent.futures.as_completed((loop_fut, " +"complete_fut)):\n" +" if fut is loop_fut:\n" +" loop = loop_fut.result()\n" +" try:\n" +" yield loop\n" +" finally:\n" +" loop.call_soon_threadsafe(stop_event.set)\n" +" else:\n" +" fut.result()\n" +"\n" +"# Create a loop in another thread\n" +"with loop_in_thread() as loop:\n" +" # Create a coroutine\n" +" coro = asyncio.sleep(1, result=3)\n" +"\n" +" # Submit the coroutine to a given loop\n" +" future = asyncio.run_coroutine_threadsafe(coro, loop)\n" +"\n" +" # Wait for the result with an optional timeout argument\n" +" assert future.result(timeout=2) == 3" +msgstr "" + +#: ../../library/asyncio-task.rst:1141 +msgid "" +"If an exception is raised in the coroutine, the returned Future will be " +"notified. It can also be used to cancel the task in the event loop::" +msgstr "" + +#: ../../library/asyncio-task.rst:1145 +msgid "" +"try:\n" +" result = future.result(timeout)\n" +"except TimeoutError:\n" +" print('The coroutine took too long, cancelling the task...')\n" +" future.cancel()\n" +"except Exception as exc:\n" +" print(f'The coroutine raised an exception: {exc!r}')\n" +"else:\n" +" print(f'The coroutine returned: {result!r}')" +msgstr "" + +#: ../../library/asyncio-task.rst:1155 +msgid "" +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." +msgstr "" + +#: ../../library/asyncio-task.rst:1158 +msgid "" +"Unlike other asyncio functions this function requires the *loop* argument to " +"be passed explicitly." +msgstr "" + +#: ../../library/asyncio-task.rst:1165 +msgid "Introspection" +msgstr "" + +#: ../../library/asyncio-task.rst:1170 +msgid "" +"Return the currently running :class:`Task` instance, or ``None`` if no task " +"is running." +msgstr "" + +#: ../../library/asyncio-task.rst:1173 +msgid "" +"If *loop* is ``None`` :func:`get_running_loop` is used to get the current " +"loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1181 +msgid "Return a set of not yet finished :class:`Task` objects run by the loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1184 +msgid "" +"If *loop* is ``None``, :func:`get_running_loop` is used for getting current " +"loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1192 +msgid "Return ``True`` if *obj* is a coroutine object." +msgstr "" + +#: ../../library/asyncio-task.rst:1198 +msgid "Task Object" +msgstr "" + +#: ../../library/asyncio-task.rst:1202 +msgid "" +"A :class:`Future-like ` object that runs a Python :ref:`coroutine " +"`. Not thread-safe." +msgstr "" + +#: ../../library/asyncio-task.rst:1205 +msgid "" +"Tasks are used to run coroutines in event loops. If a coroutine awaits on a " +"Future, the Task suspends the execution of the coroutine and waits for the " +"completion of the Future. When the Future is *done*, the execution of the " +"wrapped coroutine resumes." +msgstr "" + +#: ../../library/asyncio-task.rst:1211 +msgid "" +"Event loops use cooperative scheduling: an event loop runs one Task at a " +"time. While a Task awaits for the completion of a Future, the event loop " +"runs other Tasks, callbacks, or performs IO operations." +msgstr "" + +#: ../../library/asyncio-task.rst:1216 +msgid "" +"Use the high-level :func:`asyncio.create_task` function to create Tasks, or " +"the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " +"Manual instantiation of Tasks is discouraged." +msgstr "" + +#: ../../library/asyncio-task.rst:1221 +msgid "" +"To cancel a running Task use the :meth:`cancel` method. Calling it will " +"cause the Task to throw a :exc:`CancelledError` exception into the wrapped " +"coroutine. If a coroutine is awaiting on a Future object during " +"cancellation, the Future object will be cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:1226 +msgid "" +":meth:`cancelled` can be used to check if the Task was cancelled. The method " +"returns ``True`` if the wrapped coroutine did not suppress " +"the :exc:`CancelledError` exception and was actually cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:1231 +msgid "" +":class:`asyncio.Task` inherits from :class:`Future` all of its APIs " +"except :meth:`Future.set_result` and :meth:`Future.set_exception`." +msgstr "" + +#: ../../library/asyncio-task.rst:1235 +msgid "" +"An optional keyword-only *context* argument allows specifying a " +"custom :class:`contextvars.Context` for the *coro* to run in. If no " +"*context* is provided, the Task copies the current context and later runs " +"its coroutine in the copied context." +msgstr "" + +#: ../../library/asyncio-task.rst:1240 +msgid "" +"An optional keyword-only *eager_start* argument allows eagerly starting the " +"execution of the :class:`asyncio.Task` at task creation time. If set to " +"``True`` and the event loop is running, the task will start executing the " +"coroutine immediately, until the first time the coroutine blocks. If the " +"coroutine returns or raises without blocking, the task will be finished " +"eagerly and will skip scheduling to the event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1247 +msgid "Added support for the :mod:`contextvars` module." +msgstr "" + +#: ../../library/asyncio-task.rst:1253 +msgid "" +"Deprecation warning is emitted if *loop* is not specified and there is no " +"running event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1260 +msgid "Added the *eager_start* parameter." +msgstr "" + +#: ../../library/asyncio-task.rst:1265 +msgid "Return ``True`` if the Task is *done*." +msgstr "" + +#: ../../library/asyncio-task.rst:1267 +msgid "" +"A Task is *done* when the wrapped coroutine either returned a value, raised " +"an exception, or the Task was cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:1272 +msgid "Return the result of the Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1274 +msgid "" +"If the Task is *done*, the result of the wrapped coroutine is returned (or " +"if the coroutine raised an exception, that exception is re-raised.)" +msgstr "" + +#: ../../library/asyncio-task.rst:1278 ../../library/asyncio-task.rst:1292 +msgid "" +"If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " +"exception." +msgstr "" + +#: ../../library/asyncio-task.rst:1281 +msgid "" +"If the Task's result isn't yet available, this method raises " +"an :exc:`InvalidStateError` exception." +msgstr "" + +#: ../../library/asyncio-task.rst:1286 +msgid "Return the exception of the Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1288 +msgid "" +"If the wrapped coroutine raised an exception that exception is returned. If " +"the wrapped coroutine returned normally this method returns ``None``." +msgstr "" + +#: ../../library/asyncio-task.rst:1295 +msgid "" +"If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " +"exception." +msgstr "" + +#: ../../library/asyncio-task.rst:1300 +msgid "Add a callback to be run when the Task is *done*." +msgstr "" + +#: ../../library/asyncio-task.rst:1302 ../../library/asyncio-task.rst:1311 +msgid "This method should only be used in low-level callback-based code." +msgstr "" + +#: ../../library/asyncio-task.rst:1304 +msgid "" +"See the documentation of :meth:`Future.add_done_callback` for more details." +msgstr "" + +#: ../../library/asyncio-task.rst:1309 +msgid "Remove *callback* from the callbacks list." +msgstr "" + +#: ../../library/asyncio-task.rst:1313 +msgid "" +"See the documentation of :meth:`Future.remove_done_callback` for more " +"details." +msgstr "" + +#: ../../library/asyncio-task.rst:1318 +msgid "Return the list of stack frames for this Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1320 +msgid "" +"If the wrapped coroutine is not done, this returns the stack where it is " +"suspended. If the coroutine has completed successfully or was cancelled, " +"this returns an empty list. If the coroutine was terminated by an exception, " +"this returns the list of traceback frames." +msgstr "" + +#: ../../library/asyncio-task.rst:1326 +msgid "The frames are always ordered from oldest to newest." +msgstr "" + +#: ../../library/asyncio-task.rst:1328 +msgid "Only one stack frame is returned for a suspended coroutine." +msgstr "" + +#: ../../library/asyncio-task.rst:1330 +msgid "" +"The optional *limit* argument sets the maximum number of frames to return; " +"by default all available frames are returned. The ordering of the returned " +"list differs depending on whether a stack or a traceback is returned: the " +"newest frames of a stack are returned, but the oldest frames of a traceback " +"are returned. (This matches the behavior of the traceback module.)" +msgstr "" + +#: ../../library/asyncio-task.rst:1339 +msgid "Print the stack or traceback for this Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1341 +msgid "" +"This produces output similar to that of the traceback module for the frames " +"retrieved by :meth:`get_stack`." +msgstr "" + +#: ../../library/asyncio-task.rst:1344 +msgid "The *limit* argument is passed to :meth:`get_stack` directly." +msgstr "" + +#: ../../library/asyncio-task.rst:1346 +msgid "" +"The *file* argument is an I/O stream to which the output is written; by " +"default output is written to :data:`sys.stdout`." +msgstr "" + +#: ../../library/asyncio-task.rst:1351 +msgid "Return the coroutine object wrapped by the :class:`Task`." +msgstr "" + +#: ../../library/asyncio-task.rst:1355 +msgid "" +"This will return ``None`` for Tasks which have already completed eagerly. " +"See the :ref:`Eager Task Factory `." +msgstr "" + +#: ../../library/asyncio-task.rst:1362 +msgid "Newly added eager task execution means result may be ``None``." +msgstr "" + +#: ../../library/asyncio-task.rst:1366 +msgid "" +"Return the :class:`contextvars.Context` object associated with the task." +msgstr "" + +#: ../../library/asyncio-task.rst:1373 +msgid "Return the name of the Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1375 +msgid "" +"If no name has been explicitly assigned to the Task, the default asyncio " +"Task implementation generates a default name during instantiation." +msgstr "" + +#: ../../library/asyncio-task.rst:1383 +msgid "Set the name of the Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1385 +msgid "" +"The *value* argument can be any object, which is then converted to a string." +msgstr "" + +#: ../../library/asyncio-task.rst:1388 +msgid "" +"In the default Task implementation, the name will be visible in " +"the :func:`repr` output of a task object." +msgstr "" + +#: ../../library/asyncio-task.rst:1395 +msgid "Request the Task to be cancelled." +msgstr "" + +#: ../../library/asyncio-task.rst:1397 +msgid "" +"If the Task is already *done* or *cancelled*, return ``False``, otherwise, " +"return ``True``." +msgstr "" + +#: ../../library/asyncio-task.rst:1400 +msgid "" +"The method arranges for a :exc:`CancelledError` exception to be thrown into " +"the wrapped coroutine on the next cycle of the event loop." +msgstr "" + +#: ../../library/asyncio-task.rst:1403 +msgid "" +"The coroutine then has a chance to clean up or even deny the request by " +"suppressing the exception with a :keyword:`try` ... ... ``except " +"CancelledError`` ... :keyword:`finally` block. Therefore, " +"unlike :meth:`Future.cancel`, :meth:`Task.cancel` does not guarantee that " +"the Task will be cancelled, although suppressing cancellation completely is " +"not common and is actively discouraged. Should the coroutine nevertheless " +"decide to suppress the cancellation, it needs to call :meth:`Task.uncancel` " +"in addition to catching the exception." +msgstr "" + +#: ../../library/asyncio-task.rst:1413 +msgid "Added the *msg* parameter." +msgstr "" + +#: ../../library/asyncio-task.rst:1416 +msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." +msgstr "" + +#: ../../library/asyncio-task.rst:1421 +msgid "" +"The following example illustrates how coroutines can intercept the " +"cancellation request::" +msgstr "" + +#: ../../library/asyncio-task.rst:1424 +msgid "" +"async def cancel_me():\n" +" print('cancel_me(): before sleep')\n" +"\n" +" try:\n" +" # Wait for 1 hour\n" +" await asyncio.sleep(3600)\n" +" except asyncio.CancelledError:\n" +" print('cancel_me(): cancel sleep')\n" +" raise\n" +" finally:\n" +" print('cancel_me(): after sleep')\n" +"\n" +"async def main():\n" +" # Create a \"cancel_me\" Task\n" +" task = asyncio.create_task(cancel_me())\n" +"\n" +" # Wait for 1 second\n" +" await asyncio.sleep(1)\n" +"\n" +" task.cancel()\n" +" try:\n" +" await task\n" +" except asyncio.CancelledError:\n" +" print(\"main(): cancel_me is cancelled now\")\n" +"\n" +"asyncio.run(main())\n" +"\n" +"# Expected output:\n" +"#\n" +"# cancel_me(): before sleep\n" +"# cancel_me(): cancel sleep\n" +"# cancel_me(): after sleep\n" +"# main(): cancel_me is cancelled now" +msgstr "" + +#: ../../library/asyncio-task.rst:1460 +msgid "Return ``True`` if the Task is *cancelled*." +msgstr "" + +#: ../../library/asyncio-task.rst:1462 +msgid "" +"The Task is *cancelled* when the cancellation was requested " +"with :meth:`cancel` and the wrapped coroutine propagated " +"the :exc:`CancelledError` exception thrown into it." +msgstr "" + +#: ../../library/asyncio-task.rst:1468 +msgid "Decrement the count of cancellation requests to this Task." +msgstr "" + +#: ../../library/asyncio-task.rst:1470 +msgid "Returns the remaining number of cancellation requests." +msgstr "" + +#: ../../library/asyncio-task.rst:1472 +msgid "" +"Note that once execution of a cancelled task completed, further calls " +"to :meth:`uncancel` are ineffective." +msgstr "" + +#: ../../library/asyncio-task.rst:1477 +msgid "" +"This method is used by asyncio's internals and isn't expected to be used by " +"end-user code. In particular, if a Task gets successfully uncancelled, this " +"allows for elements of structured concurrency like :ref:`taskgroups` " +"and :func:`asyncio.timeout` to continue running, isolating cancellation to " +"the respective structured block. For example::" +msgstr "" + +#: ../../library/asyncio-task.rst:1484 +msgid "" +"async def make_request_with_timeout():\n" +" try:\n" +" async with asyncio.timeout(1):\n" +" # Structured block affected by the timeout:\n" +" await make_request()\n" +" await make_another_request()\n" +" except TimeoutError:\n" +" log(\"There was a timeout\")\n" +" # Outer code not affected by the timeout:\n" +" await unrelated_code()" +msgstr "" + +#: ../../library/asyncio-task.rst:1495 +msgid "" +"While the block with ``make_request()`` and ``make_another_request()`` might " +"get cancelled due to the timeout, ``unrelated_code()`` should continue " +"running even in case of the timeout. This is implemented " +"with :meth:`uncancel`. :class:`TaskGroup` context managers " +"use :func:`uncancel` in a similar fashion." +msgstr "" + +#: ../../library/asyncio-task.rst:1501 +msgid "" +"If end-user code is, for some reason, suppressing cancellation by " +"catching :exc:`CancelledError`, it needs to call this method to remove the " +"cancellation state." +msgstr "" + +#: ../../library/asyncio-task.rst:1505 +msgid "" +"When this method decrements the cancellation count to zero, the method " +"checks if a previous :meth:`cancel` call had arranged " +"for :exc:`CancelledError` to be thrown into the task. If it hasn't been " +"thrown yet, that arrangement will be rescinded (by resetting the internal " +"``_must_cancel`` flag)." +msgstr "" + +#: ../../library/asyncio-task.rst:1511 +msgid "Changed to rescind pending cancellation requests upon reaching zero." +msgstr "" + +#: ../../library/asyncio-task.rst:1516 +msgid "" +"Return the number of pending cancellation requests to this Task, i.e., the " +"number of calls to :meth:`cancel` less the number of :meth:`uncancel` calls." +msgstr "" + +#: ../../library/asyncio-task.rst:1520 +msgid "" +"Note that if this number is greater than zero but the Task is still " +"executing, :meth:`cancelled` will still return ``False``. This is because " +"this number can be lowered by calling :meth:`uncancel`, which can lead to " +"the task not being cancelled after all if the cancellation requests go down " +"to zero." +msgstr "" + +#: ../../library/asyncio-task.rst:1526 +msgid "" +"This method is used by asyncio's internals and isn't expected to be used by " +"end-user code. See :meth:`uncancel` for more details." +msgstr "" diff --git a/library/asyncio.po b/library/asyncio.po new file mode 100644 index 0000000..b9174ae --- /dev/null +++ b/library/asyncio.po @@ -0,0 +1,178 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncio.rst:91 +msgid "High-level APIs" +msgstr "" + +#: ../../library/asyncio.rst:104 +msgid "Low-level APIs" +msgstr "" + +#: ../../library/asyncio.rst:115 +msgid "Guides and Tutorials" +msgstr "" + +#: ../../library/asyncio.rst:2 +msgid ":mod:`!asyncio` --- Asynchronous I/O" +msgstr "" + +#: ../../library/asyncio.rst-1 +msgid "Hello World!" +msgstr "" + +#: ../../library/asyncio.rst:13 +msgid "" +"import asyncio\n" +"\n" +"async def main():\n" +" print('Hello ...')\n" +" await asyncio.sleep(1)\n" +" print('... World!')\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: ../../library/asyncio.rst:22 +msgid "" +"asyncio is a library to write **concurrent** code using the **async/await** " +"syntax." +msgstr "" + +#: ../../library/asyncio.rst:25 +msgid "" +"asyncio is used as a foundation for multiple Python asynchronous frameworks " +"that provide high-performance network and web-servers, database connection " +"libraries, distributed task queues, etc." +msgstr "" + +#: ../../library/asyncio.rst:29 +msgid "" +"asyncio is often a perfect fit for IO-bound and high-level **structured** " +"network code." +msgstr "" + +#: ../../library/asyncio.rst:32 +msgid "asyncio provides a set of **high-level** APIs to:" +msgstr "" + +#: ../../library/asyncio.rst:34 +msgid "" +":ref:`run Python coroutines ` concurrently and have full control " +"over their execution;" +msgstr "" + +#: ../../library/asyncio.rst:37 +msgid "perform :ref:`network IO and IPC `;" +msgstr "" + +#: ../../library/asyncio.rst:39 +msgid "control :ref:`subprocesses `;" +msgstr "" + +#: ../../library/asyncio.rst:41 +msgid "distribute tasks via :ref:`queues `;" +msgstr "" + +#: ../../library/asyncio.rst:43 +msgid ":ref:`synchronize ` concurrent code;" +msgstr "" + +#: ../../library/asyncio.rst:45 +msgid "" +"Additionally, there are **low-level** APIs for *library and framework " +"developers* to:" +msgstr "" + +#: ../../library/asyncio.rst:48 +msgid "" +"create and manage :ref:`event loops `, which provide " +"asynchronous APIs for :ref:`networking `, " +"running :ref:`subprocesses `, handling :ref:`OS " +"signals `, etc;" +msgstr "" + +#: ../../library/asyncio.rst:53 +msgid "" +"implement efficient protocols using :ref:`transports `;" +msgstr "" + +#: ../../library/asyncio.rst:56 +msgid "" +":ref:`bridge ` callback-based libraries and code with async/" +"await syntax." +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/asyncio.rst:64 +msgid "asyncio REPL" +msgstr "" + +#: ../../library/asyncio.rst:65 +msgid "" +"You can experiment with an ``asyncio`` concurrent context in " +"the :term:`REPL`:" +msgstr "" + +#: ../../library/asyncio.rst:67 +msgid "" +"$ python -m asyncio\n" +"asyncio REPL ...\n" +"Use \"await\" directly instead of \"asyncio.run()\".\n" +"Type \"help\", \"copyright\", \"credits\" or \"license\" for more " +"information.\n" +">>> import asyncio\n" +">>> await asyncio.sleep(10, result='hello')\n" +"'hello'" +msgstr "" + +#: ../../library/asyncio.rst:77 +msgid "" +"Raises an :ref:`auditing event ` ``cpython.run_stdin`` with no " +"arguments." +msgstr "" + +#: ../../library/asyncio.rst:79 +msgid "(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events." +msgstr "" + +#: ../../library/asyncio.rst:82 +msgid "" +"Uses PyREPL if possible, in which case :envvar:`PYTHONSTARTUP` is also " +"executed. Emits audit events." +msgstr "" + +#: ../../library/asyncio.rst:90 +msgid "Reference" +msgstr "" + +#: ../../library/asyncio.rst:124 +msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." +msgstr "" diff --git a/library/asyncore.po b/library/asyncore.po new file mode 100644 index 0000000..8948084 --- /dev/null +++ b/library/asyncore.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/asyncore.rst:2 +msgid ":mod:`!asyncore` --- Asynchronous socket handler" +msgstr "" + +#: ../../library/asyncore.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.12 ` after being " +"deprecated in Python 3.6. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/asyncore.rst:14 +msgid "Applications should use the :mod:`asyncio` module instead." +msgstr "" + +#: ../../library/asyncore.rst:16 +msgid "" +"The last version of Python that provided the :mod:`!asyncore` module was " +"`Python 3.11 `_." +msgstr "" diff --git a/library/atexit.po b/library/atexit.po new file mode 100644 index 0000000..5c7b1ac --- /dev/null +++ b/library/atexit.po @@ -0,0 +1,186 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/atexit.rst:2 +msgid ":mod:`!atexit` --- Exit handlers" +msgstr "" + +#: ../../library/atexit.rst:12 +msgid "" +"The :mod:`atexit` module defines functions to register and unregister " +"cleanup functions. Functions thus registered are automatically executed " +"upon normal interpreter termination. :mod:`atexit` runs these functions in " +"the *reverse* order in which they were registered; if you register ``A``, " +"``B``, and ``C``, at interpreter termination time they will be run in the " +"order ``C``, ``B``, ``A``." +msgstr "" + +#: ../../library/atexit.rst:19 +msgid "" +"**Note:** The functions registered via this module are not called when the " +"program is killed by a signal not handled by Python, when a Python fatal " +"internal error is detected, or when :func:`os._exit` is called." +msgstr "" + +#: ../../library/atexit.rst:23 +msgid "" +"**Note:** The effect of registering or unregistering functions from within a " +"cleanup function is undefined." +msgstr "" + +#: ../../library/atexit.rst:26 +msgid "" +"When used with C-API subinterpreters, registered functions are local to the " +"interpreter they were registered in." +msgstr "" + +#: ../../library/atexit.rst:32 +msgid "" +"Register *func* as a function to be executed at termination. Any optional " +"arguments that are to be passed to *func* must be passed as arguments " +"to :func:`register`. It is possible to register the same function and " +"arguments more than once." +msgstr "" + +#: ../../library/atexit.rst:37 +msgid "" +"At normal program termination (for instance, if :func:`sys.exit` is called " +"or the main module's execution completes), all functions registered are " +"called in last in, first out order. The assumption is that lower level " +"modules will normally be imported before higher level modules and thus must " +"be cleaned up later." +msgstr "" + +#: ../../library/atexit.rst:43 +msgid "" +"If an exception is raised during execution of the exit handlers, a traceback " +"is printed (unless :exc:`SystemExit` is raised) and the exception " +"information is saved. After all exit handlers have had a chance to run, the " +"last exception to be raised is re-raised." +msgstr "" + +#: ../../library/atexit.rst:48 +msgid "" +"This function returns *func*, which makes it possible to use it as a " +"decorator." +msgstr "" + +#: ../../library/atexit.rst:52 +msgid "" +"Starting new threads or calling :func:`os.fork` from a registered function " +"can lead to race condition between the main Python runtime thread freeing " +"thread states while internal :mod:`threading` routines or the new process " +"try to use that state. This can lead to crashes rather than clean shutdown." +msgstr "" + +#: ../../library/atexit.rst:58 +msgid "" +"Attempts to start a new thread or :func:`os.fork` a new process in a " +"registered function now leads to :exc:`RuntimeError`." +msgstr "" + +#: ../../library/atexit.rst:64 +msgid "" +"Remove *func* from the list of functions to be run at interpreter " +"shutdown. :func:`unregister` silently does nothing if *func* was not " +"previously registered. If *func* has been registered more than once, every " +"occurrence of that function in the :mod:`atexit` call stack will be " +"removed. Equality comparisons (``==``) are used internally during " +"unregistration, so function references do not need to have matching " +"identities." +msgstr "" + +#: ../../library/atexit.rst:74 +msgid "Module :mod:`readline`" +msgstr "" + +#: ../../library/atexit.rst:75 +msgid "" +"Useful example of :mod:`atexit` to read and write :mod:`readline` history " +"files." +msgstr "" + +#: ../../library/atexit.rst:82 +msgid ":mod:`atexit` Example" +msgstr "" + +#: ../../library/atexit.rst:84 +msgid "" +"The following simple example demonstrates how a module can initialize a " +"counter from a file when it is imported and save the counter's updated value " +"automatically when the program terminates without relying on the application " +"making an explicit call into this module at termination. ::" +msgstr "" + +#: ../../library/atexit.rst:89 +msgid "" +"try:\n" +" with open('counterfile') as infile:\n" +" _count = int(infile.read())\n" +"except FileNotFoundError:\n" +" _count = 0\n" +"\n" +"def incrcounter(n):\n" +" global _count\n" +" _count = _count + n\n" +"\n" +"def savecounter():\n" +" with open('counterfile', 'w') as outfile:\n" +" outfile.write('%d' % _count)\n" +"\n" +"import atexit\n" +"\n" +"atexit.register(savecounter)" +msgstr "" + +#: ../../library/atexit.rst:107 +msgid "" +"Positional and keyword arguments may also be passed to :func:`register` to " +"be passed along to the registered function when it is called::" +msgstr "" + +#: ../../library/atexit.rst:110 +msgid "" +"def goodbye(name, adjective):\n" +" print('Goodbye %s, it was %s to meet you.' % (name, adjective))\n" +"\n" +"import atexit\n" +"\n" +"atexit.register(goodbye, 'Donny', 'nice')\n" +"# or:\n" +"atexit.register(goodbye, adjective='nice', name='Donny')" +msgstr "" + +#: ../../library/atexit.rst:119 +msgid "Usage as a :term:`decorator`::" +msgstr "" + +#: ../../library/atexit.rst:121 +msgid "" +"import atexit\n" +"\n" +"@atexit.register\n" +"def goodbye():\n" +" print('You are now leaving the Python sector.')" +msgstr "" + +#: ../../library/atexit.rst:127 +msgid "This only works with functions that can be called without arguments." +msgstr "" diff --git a/library/audioop.po b/library/audioop.po new file mode 100644 index 0000000..a1c9e26 --- /dev/null +++ b/library/audioop.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/audioop.rst:2 +msgid ":mod:`!audioop` --- Manipulate raw audio data" +msgstr "" + +#: ../../library/audioop.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/audioop.rst:14 +msgid "" +"The last version of Python that provided the :mod:`!audioop` module was " +"`Python 3.12 `_." +msgstr "" diff --git a/library/audit_events.po b/library/audit_events.po new file mode 100644 index 0000000..9f519d5 --- /dev/null +++ b/library/audit_events.po @@ -0,0 +1,139 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/audit_events.rst:6 +msgid "Audit events table" +msgstr "" + +#: ../../library/audit_events.rst:8 +msgid "" +"This table contains all events raised by :func:`sys.audit` " +"or :c:func:`PySys_Audit` calls throughout the CPython runtime and the " +"standard library. These calls were added in 3.8 or later (see :pep:`578`)." +msgstr "" + +#: ../../library/audit_events.rst:12 +msgid "" +"See :func:`sys.addaudithook` and :c:func:`PySys_AddAuditHook` for " +"information on handling these events." +msgstr "" + +#: ../../library/audit_events.rst:17 +msgid "" +"This table is generated from the CPython documentation, and may not " +"represent events raised by other implementations. See your runtime specific " +"documentation for actual events raised." +msgstr "" + +#: ../../library/audit_events.rst:23 +msgid "" +"The following events are raised internally and do not correspond to any " +"public API of CPython:" +msgstr "" + +#: ../../library/audit_events.rst:27 +msgid "Audit event" +msgstr "" + +#: ../../library/audit_events.rst:27 +msgid "Arguments" +msgstr "" + +#: ../../library/audit_events.rst:29 +msgid "_winapi.CreateFile" +msgstr "" + +#: ../../library/audit_events.rst:29 +msgid "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" +msgstr "" + +#: ../../library/audit_events.rst:33 +msgid "_winapi.CreateJunction" +msgstr "" + +#: ../../library/audit_events.rst:33 +msgid "``src_path``, ``dst_path``" +msgstr "" + +#: ../../library/audit_events.rst:35 +msgid "_winapi.CreateNamedPipe" +msgstr "" + +#: ../../library/audit_events.rst:35 +msgid "``name``, ``open_mode``, ``pipe_mode``" +msgstr "" + +#: ../../library/audit_events.rst:37 +msgid "_winapi.CreatePipe" +msgstr "" + +#: ../../library/audit_events.rst:39 +msgid "_winapi.CreateProcess" +msgstr "" + +#: ../../library/audit_events.rst:39 +msgid "``application_name``, ``command_line``, ``current_directory``" +msgstr "" + +#: ../../library/audit_events.rst:42 +msgid "_winapi.OpenProcess" +msgstr "" + +#: ../../library/audit_events.rst:42 +msgid "``process_id``, ``desired_access``" +msgstr "" + +#: ../../library/audit_events.rst:44 +msgid "_winapi.TerminateProcess" +msgstr "" + +#: ../../library/audit_events.rst:44 +msgid "``handle``, ``exit_code``" +msgstr "" + +#: ../../library/audit_events.rst:46 +msgid "_posixsubprocess.fork_exec" +msgstr "" + +#: ../../library/audit_events.rst:46 +msgid "``exec_list``, ``args``, ``env``" +msgstr "" + +#: ../../library/audit_events.rst:48 +msgid "ctypes.PyObj_FromPtr" +msgstr "" + +#: ../../library/audit_events.rst:48 +msgid "``obj``" +msgstr "``obj``" + +#: ../../library/audit_events.rst:51 +msgid "The ``_posixsubprocess.fork_exec`` internal audit event." +msgstr "" + +#: ../../library/audit_events.rst:3 +msgid "audit events" +msgstr "" diff --git a/library/base64.po b/library/base64.po new file mode 100644 index 0000000..3323b7e --- /dev/null +++ b/library/base64.po @@ -0,0 +1,460 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/base64.rst:2 +msgid ":mod:`!base64` --- Base16, Base32, Base64, Base85 Data Encodings" +msgstr "" + +#: ../../library/base64.rst:8 +msgid "**Source code:** :source:`Lib/base64.py`" +msgstr "" + +#: ../../library/base64.rst:16 +msgid "" +"This module provides functions for encoding binary data to printable ASCII " +"characters and decoding such encodings back to binary data. This includes " +"the :ref:`encodings specified in ` :rfc:`4648` (Base64, " +"Base32 and Base16) and the non-standard :ref:`Base85 encodings `." +msgstr "" + +#: ../../library/base64.rst:22 +msgid "" +"There are two interfaces provided by this module. The modern interface " +"supports encoding :term:`bytes-like objects ` to " +"ASCII :class:`bytes`, and decoding :term:`bytes-like objects ` or strings containing ASCII to :class:`bytes`. Both base-64 " +"alphabets defined in :rfc:`4648` (normal, and URL- and filesystem-safe) are " +"supported." +msgstr "" + +#: ../../library/base64.rst:28 +msgid "" +"The :ref:`legacy interface ` does not support decoding from " +"strings, but it does provide functions for encoding and decoding to and " +"from :term:`file objects `. It only supports the Base64 " +"standard alphabet, and it adds newlines every 76 characters as " +"per :rfc:`2045`. Note that if you are looking for :rfc:`2045` support you " +"probably want to be looking at the :mod:`email` package instead." +msgstr "" + +#: ../../library/base64.rst:36 +msgid "" +"ASCII-only Unicode strings are now accepted by the decoding functions of the " +"modern interface." +msgstr "" + +#: ../../library/base64.rst:40 +msgid "" +"Any :term:`bytes-like objects ` are now accepted by all " +"encoding and decoding functions in this module. Ascii85/Base85 support " +"added." +msgstr "" + +#: ../../library/base64.rst:48 +msgid "RFC 4648 Encodings" +msgstr "" + +#: ../../library/base64.rst:50 +msgid "" +"The :rfc:`4648` encodings are suitable for encoding binary data so that it " +"can be safely sent by email, used as parts of URLs, or included as part of " +"an HTTP POST request." +msgstr "" + +#: ../../library/base64.rst:56 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base64 and return the " +"encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:59 +msgid "" +"Optional *altchars* must be a :term:`bytes-like object` of length 2 which " +"specifies an alternative alphabet for the ``+`` and ``/`` characters. This " +"allows an application to e.g. generate URL or filesystem safe Base64 " +"strings. The default is ``None``, for which the standard Base64 alphabet is " +"used." +msgstr "" + +#: ../../library/base64.rst:64 +msgid "" +"May assert or raise a :exc:`ValueError` if the length of *altchars* is not " +"2. Raises a :exc:`TypeError` if *altchars* is not a :term:`bytes-like " +"object`." +msgstr "" + +#: ../../library/base64.rst:70 +msgid "" +"Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:73 +msgid "" +"Optional *altchars* must be a :term:`bytes-like object` or ASCII string of " +"length 2 which specifies the alternative alphabet used instead of the ``+`` " +"and ``/`` characters." +msgstr "" + +#: ../../library/base64.rst:77 +msgid "" +"A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." +msgstr "" + +#: ../../library/base64.rst:80 +msgid "" +"If *validate* is ``False`` (the default), characters that are neither in the " +"normal base-64 alphabet nor the alternative alphabet are discarded prior to " +"the padding check. If *validate* is ``True``, these non-alphabet characters " +"in the input result in a :exc:`binascii.Error`." +msgstr "" + +#: ../../library/base64.rst:86 +msgid "" +"For more information about the strict base64 check, " +"see :func:`binascii.a2b_base64`" +msgstr "" + +#: ../../library/base64.rst:88 +msgid "" +"May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2." +msgstr "" + +#: ../../library/base64.rst:92 +msgid "" +"Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " +"return the encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:98 +msgid "" +"Decode :term:`bytes-like object` or ASCII string *s* using the standard " +"Base64 alphabet and return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:104 +msgid "" +"Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe " +"alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/" +"`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " +"The result can still contain ``=``." +msgstr "" + +#: ../../library/base64.rst:113 +msgid "" +"Decode :term:`bytes-like object` or ASCII string *s* using the URL- and " +"filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` " +"instead of ``/`` in the standard Base64 alphabet, and return the " +"decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:122 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base32 and return the " +"encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:128 +msgid "" +"Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:131 ../../library/base64.rst:179 +msgid "" +"Optional *casefold* is a flag specifying whether a lowercase alphabet is " +"acceptable as input. For security purposes, the default is ``False``." +msgstr "" + +#: ../../library/base64.rst:135 +msgid "" +":rfc:`4648` allows for optional mapping of the digit 0 (zero) to the letter " +"O (oh), and for optional mapping of the digit 1 (one) to either the letter I " +"(eye) or letter L (el). The optional argument *map01* when not ``None``, " +"specifies which letter the digit 1 should be mapped to (when *map01* is not " +"``None``, the digit 0 is always mapped to the letter O). For security " +"purposes the default is ``None``, so that 0 and 1 are not allowed in the " +"input." +msgstr "" + +#: ../../library/base64.rst:142 ../../library/base64.rst:183 +msgid "" +"A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " +"are non-alphabet characters present in the input." +msgstr "" + +#: ../../library/base64.rst:149 +msgid "" +"Similar to :func:`b32encode` but uses the Extended Hex Alphabet, as defined " +"in :rfc:`4648`." +msgstr "" + +#: ../../library/base64.rst:157 +msgid "" +"Similar to :func:`b32decode` but uses the Extended Hex Alphabet, as defined " +"in :rfc:`4648`." +msgstr "" + +#: ../../library/base64.rst:160 +msgid "" +"This version does not allow the digit 0 (zero) to the letter O (oh) and " +"digit 1 (one) to either the letter I (eye) or letter L (el) mappings, all " +"these characters are included in the Extended Hex Alphabet and are not " +"interchangeable." +msgstr "" + +#: ../../library/base64.rst:170 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base16 and return the " +"encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:176 +msgid "" +"Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:190 +msgid "Base85 Encodings" +msgstr "" + +#: ../../library/base64.rst:192 +msgid "" +"Base85 encoding is not formally specified but rather a de facto standard, " +"thus different systems perform the encoding differently." +msgstr "" + +#: ../../library/base64.rst:195 +msgid "" +"The :func:`a85encode` and :func:`b85encode` functions in this module are two " +"implementations of the de facto standard. You should call the function with " +"the Base85 implementation used by the software you intend to work with." +msgstr "" + +#: ../../library/base64.rst:199 +msgid "" +"The two functions present in this module differ in how they handle the " +"following:" +msgstr "" + +#: ../../library/base64.rst:201 +msgid "Whether to include enclosing ``<~`` and ``~>`` markers" +msgstr "" + +#: ../../library/base64.rst:202 +msgid "Whether to include newline characters" +msgstr "" + +#: ../../library/base64.rst:203 +msgid "The set of ASCII characters used for encoding" +msgstr "" + +#: ../../library/base64.rst:204 +msgid "Handling of null bytes" +msgstr "" + +#: ../../library/base64.rst:206 +msgid "" +"Refer to the documentation of the individual functions for more information." +msgstr "" + +#: ../../library/base64.rst:210 +msgid "" +"Encode the :term:`bytes-like object` *b* using Ascii85 and return the " +"encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:213 +msgid "" +"*foldspaces* is an optional flag that uses the special short sequence 'y' " +"instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " +"feature is not supported by the \"standard\" Ascii85 encoding." +msgstr "" + +#: ../../library/base64.rst:217 +msgid "" +"*wrapcol* controls whether the output should have newline (``b'\\n'``) " +"characters added to it. If this is non-zero, each output line will be at " +"most this many characters long, excluding the trailing newline." +msgstr "" + +#: ../../library/base64.rst:221 +msgid "" +"*pad* controls whether the input is padded to a multiple of 4 before " +"encoding. Note that the ``btoa`` implementation always pads." +msgstr "" + +#: ../../library/base64.rst:224 +msgid "" +"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " +"``~>``, which is used by the Adobe implementation." +msgstr "" + +#: ../../library/base64.rst:232 +msgid "" +"Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " +"return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:235 +msgid "" +"*foldspaces* is a flag that specifies whether the 'y' short sequence should " +"be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " +"is not supported by the \"standard\" Ascii85 encoding." +msgstr "" + +#: ../../library/base64.rst:239 +msgid "" +"*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " +"is framed with <~ and ~>)." +msgstr "" + +#: ../../library/base64.rst:242 +msgid "" +"*ignorechars* should be a :term:`bytes-like object` or ASCII string " +"containing characters to ignore from the input. This should only contain " +"whitespace characters, and by default contains all whitespace characters in " +"ASCII." +msgstr "" + +#: ../../library/base64.rst:252 +msgid "" +"Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" +"style binary diffs) and return the encoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:255 +msgid "" +"If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " +"multiple of 4 bytes before encoding." +msgstr "" + +#: ../../library/base64.rst:263 +msgid "" +"Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and " +"return the decoded :class:`bytes`. Padding is implicitly removed, if " +"necessary." +msgstr "" + +#: ../../library/base64.rst:272 +msgid "" +"Encode the :term:`bytes-like object` *s* using Z85 (as used in ZeroMQ) and " +"return the encoded :class:`bytes`. See `Z85 specification `_ for more information." +msgstr "" + +#: ../../library/base64.rst:281 +msgid "" +"Decode the Z85-encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`. See `Z85 specification `_ for more information." +msgstr "" + +#: ../../library/base64.rst:291 +msgid "Legacy Interface" +msgstr "" + +#: ../../library/base64.rst:295 +msgid "" +"Decode the contents of the binary *input* file and write the resulting " +"binary data to the *output* file. *input* and *output* must be :term:`file " +"objects `. *input* will be read until ``input.readline()`` " +"returns an empty bytes object." +msgstr "" + +#: ../../library/base64.rst:303 +msgid "" +"Decode the :term:`bytes-like object` *s*, which must contain one or more " +"lines of base64 encoded data, and return the decoded :class:`bytes`." +msgstr "" + +#: ../../library/base64.rst:311 +msgid "" +"Encode the contents of the binary *input* file and write the resulting " +"base64 encoded data to the *output* file. *input* and *output* must " +"be :term:`file objects `. *input* will be read until " +"``input.read()`` returns an empty bytes object. :func:`encode` inserts a " +"newline character (``b'\\n'``) after every 76 bytes of the output, as well " +"as ensuring that the output always ends with a newline, as per :rfc:`2045` " +"(MIME)." +msgstr "" + +#: ../../library/base64.rst:321 +msgid "" +"Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " +"data, and return :class:`bytes` containing the base64-encoded data, with " +"newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " +"that there is a trailing newline, as per :rfc:`2045` (MIME)." +msgstr "" + +#: ../../library/base64.rst:329 +msgid "An example usage of the module:" +msgstr "" + +#: ../../library/base64.rst:342 +msgid "Security Considerations" +msgstr "" + +#: ../../library/base64.rst:344 +msgid "" +"A new security considerations section was added to :rfc:`4648` (section 12); " +"it's recommended to review the security section for any code deployed to " +"production." +msgstr "" + +#: ../../library/base64.rst:349 +msgid "Module :mod:`binascii`" +msgstr "" + +#: ../../library/base64.rst:350 +msgid "" +"Support module containing ASCII-to-binary and binary-to-ASCII conversions." +msgstr "" + +#: ../../library/base64.rst:352 +msgid "" +":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " +"Mechanisms for Specifying and Describing the Format of Internet Message " +"Bodies" +msgstr "" + +#: ../../library/base64.rst:353 +msgid "" +"Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " +"of the base64 encoding." +msgstr "" + +#: ../../library/base64.rst:10 +msgid "base64" +msgstr "" + +#: ../../library/base64.rst:10 +msgid "encoding" +msgstr "" + +#: ../../library/base64.rst:10 +msgid "MIME" +msgstr "" + +#: ../../library/base64.rst:10 +msgid "base64 encoding" +msgstr "" diff --git a/library/bdb.po b/library/bdb.po new file mode 100644 index 0000000..4fd736e --- /dev/null +++ b/library/bdb.po @@ -0,0 +1,668 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/bdb.rst:2 +msgid ":mod:`!bdb` --- Debugger framework" +msgstr "" + +#: ../../library/bdb.rst:7 +msgid "**Source code:** :source:`Lib/bdb.py`" +msgstr "" + +#: ../../library/bdb.rst:11 +msgid "" +"The :mod:`bdb` module handles basic debugger functions, like setting " +"breakpoints or managing execution via the debugger." +msgstr "" + +#: ../../library/bdb.rst:14 +msgid "The following exception is defined:" +msgstr "" + +#: ../../library/bdb.rst:18 +msgid "Exception raised by the :class:`Bdb` class for quitting the debugger." +msgstr "" + +#: ../../library/bdb.rst:21 +msgid "The :mod:`bdb` module also defines two classes:" +msgstr "" + +#: ../../library/bdb.rst:25 +msgid "" +"This class implements temporary breakpoints, ignore counts, disabling and " +"(re-)enabling, and conditionals." +msgstr "" + +#: ../../library/bdb.rst:28 +msgid "" +"Breakpoints are indexed by number through a list called :attr:`bpbynumber` " +"and by ``(file, line)`` pairs through :attr:`bplist`. The former points to " +"a single instance of class :class:`Breakpoint`. The latter points to a list " +"of such instances since there may be more than one breakpoint per line." +msgstr "" + +#: ../../library/bdb.rst:33 +msgid "" +"When creating a breakpoint, its associated :attr:`file name ` should " +"be in canonical form. If a :attr:`funcname` is defined, a " +"breakpoint :attr:`hit ` will be counted when the first line of that " +"function is executed. A :attr:`conditional ` breakpoint always counts " +"a :attr:`hit `." +msgstr "" + +#: ../../library/bdb.rst:39 +msgid ":class:`Breakpoint` instances have the following methods:" +msgstr "" + +#: ../../library/bdb.rst:43 +msgid "" +"Delete the breakpoint from the list associated to a file/line. If it is the " +"last breakpoint in that position, it also deletes the entry for the file/" +"line." +msgstr "" + +#: ../../library/bdb.rst:50 +msgid "Mark the breakpoint as enabled." +msgstr "" + +#: ../../library/bdb.rst:55 +msgid "Mark the breakpoint as disabled." +msgstr "" + +#: ../../library/bdb.rst:60 +msgid "" +"Return a string with all the information about the breakpoint, nicely " +"formatted:" +msgstr "" + +#: ../../library/bdb.rst:63 +msgid "Breakpoint number." +msgstr "" + +#: ../../library/bdb.rst:64 +msgid "Temporary status (del or keep)." +msgstr "" + +#: ../../library/bdb.rst:65 +msgid "File/line position." +msgstr "" + +#: ../../library/bdb.rst:66 +msgid "Break condition." +msgstr "" + +#: ../../library/bdb.rst:67 +msgid "Number of times to ignore." +msgstr "" + +#: ../../library/bdb.rst:68 +msgid "Number of times hit." +msgstr "" + +#: ../../library/bdb.rst:74 +msgid "" +"Print the output of :meth:`bpformat` to the file *out*, or if it is " +"``None``, to standard output." +msgstr "" + +#: ../../library/bdb.rst:77 +msgid ":class:`Breakpoint` instances have the following attributes:" +msgstr "" + +#: ../../library/bdb.rst:81 +msgid "File name of the :class:`Breakpoint`." +msgstr "" + +#: ../../library/bdb.rst:85 +msgid "Line number of the :class:`Breakpoint` within :attr:`file`." +msgstr "" + +#: ../../library/bdb.rst:89 +msgid "``True`` if a :class:`Breakpoint` at (file, line) is temporary." +msgstr "" + +#: ../../library/bdb.rst:93 +msgid "Condition for evaluating a :class:`Breakpoint` at (file, line)." +msgstr "" + +#: ../../library/bdb.rst:97 +msgid "" +"Function name that defines whether a :class:`Breakpoint` is hit upon " +"entering the function." +msgstr "" + +#: ../../library/bdb.rst:102 +msgid "``True`` if :class:`Breakpoint` is enabled." +msgstr "" + +#: ../../library/bdb.rst:106 +msgid "Numeric index for a single instance of a :class:`Breakpoint`." +msgstr "" + +#: ../../library/bdb.rst:110 +msgid "" +"Dictionary of :class:`Breakpoint` instances indexed by " +"(:attr:`file`, :attr:`line`) tuples." +msgstr "" + +#: ../../library/bdb.rst:115 +msgid "Number of times to ignore a :class:`Breakpoint`." +msgstr "" + +#: ../../library/bdb.rst:119 +msgid "Count of the number of times a :class:`Breakpoint` has been hit." +msgstr "" + +#: ../../library/bdb.rst:123 +msgid "The :class:`Bdb` class acts as a generic Python debugger base class." +msgstr "" + +#: ../../library/bdb.rst:125 +msgid "" +"This class takes care of the details of the trace facility; a derived class " +"should implement user interaction. The standard debugger class " +"(:class:`pdb.Pdb`) is an example." +msgstr "" + +#: ../../library/bdb.rst:129 +msgid "" +"The *skip* argument, if given, must be an iterable of glob-style module name " +"patterns. The debugger will not step into frames that originate in a module " +"that matches one of these patterns. Whether a frame is considered to " +"originate in a certain module is determined by the ``__name__`` in the frame " +"globals." +msgstr "" + +#: ../../library/bdb.rst:135 +msgid "" +"The *backend* argument specifies the backend to use for :class:`Bdb`. It can " +"be either ``'settrace'`` or ``'monitoring'``. ``'settrace'`` " +"uses :func:`sys.settrace` which has the best backward compatibility. The " +"``'monitoring'`` backend uses the new :mod:`sys.monitoring` that was " +"introduced in Python 3.12, which can be much more efficient because it can " +"disable unused events. We are trying to keep the exact interfaces for both " +"backends, but there are some differences. The debugger developers are " +"encouraged to use the ``'monitoring'`` backend to achieve better performance." +msgstr "" + +#: ../../library/bdb.rst:145 +msgid "Added the *skip* parameter." +msgstr "" + +#: ../../library/bdb.rst:148 +msgid "Added the *backend* parameter." +msgstr "" + +#: ../../library/bdb.rst:151 +msgid "" +"The following methods of :class:`Bdb` normally don't need to be overridden." +msgstr "" + +#: ../../library/bdb.rst:155 +msgid "Return canonical form of *filename*." +msgstr "" + +#: ../../library/bdb.rst:157 +msgid "" +"For real file names, the canonical form is an operating-system-" +"dependent, :func:`case-normalized ` :func:`absolute path " +"`. A *filename* with angle brackets, such as " +"``\"\"`` generated in interactive mode, is returned unchanged." +msgstr "" + +#: ../../library/bdb.rst:164 +msgid "" +"Start tracing. For ``'settrace'`` backend, this method is equivalent to " +"``sys.settrace(self.trace_dispatch)``" +msgstr "" + +#: ../../library/bdb.rst:171 +msgid "" +"Stop tracing. For ``'settrace'`` backend, this method is equivalent to " +"``sys.settrace(None)``" +msgstr "" + +#: ../../library/bdb.rst:178 +msgid "" +"Set the :attr:`!botframe`, :attr:`!stopframe`, :attr:`!returnframe` " +"and :attr:`quitting ` attributes with values ready to start " +"debugging." +msgstr "" + +#: ../../library/bdb.rst:183 +msgid "" +"This function is installed as the trace function of debugged frames. Its " +"return value is the new trace function (in most cases, that is, itself)." +msgstr "" + +#: ../../library/bdb.rst:186 +msgid "" +"The default implementation decides how to dispatch a frame, depending on the " +"type of event (passed as a string) that is about to be executed. *event* can " +"be one of the following:" +msgstr "" + +#: ../../library/bdb.rst:190 +msgid "``\"line\"``: A new line of code is going to be executed." +msgstr "" + +#: ../../library/bdb.rst:191 +msgid "" +"``\"call\"``: A function is about to be called, or another code block " +"entered." +msgstr "" + +#: ../../library/bdb.rst:193 +msgid "``\"return\"``: A function or other code block is about to return." +msgstr "" + +#: ../../library/bdb.rst:194 +msgid "``\"exception\"``: An exception has occurred." +msgstr "" + +#: ../../library/bdb.rst:195 +msgid "``\"c_call\"``: A C function is about to be called." +msgstr "" + +#: ../../library/bdb.rst:196 +msgid "``\"c_return\"``: A C function has returned." +msgstr "" + +#: ../../library/bdb.rst:197 +msgid "``\"c_exception\"``: A C function has raised an exception." +msgstr "" + +#: ../../library/bdb.rst:199 +msgid "" +"For the Python events, specialized functions (see below) are called. For " +"the C events, no action is taken." +msgstr "" + +#: ../../library/bdb.rst:202 +msgid "The *arg* parameter depends on the previous event." +msgstr "" + +#: ../../library/bdb.rst:204 +msgid "" +"See the documentation for :func:`sys.settrace` for more information on the " +"trace function. For more information on code and frame objects, refer " +"to :ref:`types`." +msgstr "" + +#: ../../library/bdb.rst:210 +msgid "" +"If the debugger should stop on the current line, invoke " +"the :meth:`user_line` method (which should be overridden in subclasses). " +"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " +"flag is set (which can be set from :meth:`user_line`). Return a reference " +"to the :meth:`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../../library/bdb.rst:218 +msgid "" +"If the debugger should stop on this function call, invoke " +"the :meth:`user_call` method (which should be overridden in subclasses). " +"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " +"flag is set (which can be set from :meth:`user_call`). Return a reference " +"to the :meth:`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../../library/bdb.rst:226 +msgid "" +"If the debugger should stop on this function return, invoke " +"the :meth:`user_return` method (which should be overridden in subclasses). " +"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " +"flag is set (which can be set from :meth:`user_return`). Return a reference " +"to the :meth:`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../../library/bdb.rst:234 +msgid "" +"If the debugger should stop at this exception, invokes " +"the :meth:`user_exception` method (which should be overridden in " +"subclasses). Raise a :exc:`BdbQuit` exception if the :attr:`quitting " +"` flag is set (which can be set from :meth:`user_exception`). " +"Return a reference to the :meth:`trace_dispatch` method for further tracing " +"in that scope." +msgstr "" + +#: ../../library/bdb.rst:240 +msgid "" +"Normally derived classes don't override the following methods, but they may " +"if they want to redefine the definition of stopping and breakpoints." +msgstr "" + +#: ../../library/bdb.rst:245 +msgid "Return ``True`` if *module_name* matches any skip pattern." +msgstr "" + +#: ../../library/bdb.rst:249 +msgid "Return ``True`` if *frame* is below the starting frame in the stack." +msgstr "" + +#: ../../library/bdb.rst:253 +msgid "Return ``True`` if there is an effective breakpoint for this line." +msgstr "" + +#: ../../library/bdb.rst:255 +msgid "" +"Check whether a line or function breakpoint exists and is in effect. Delete " +"temporary breakpoints based on information from :func:`effective`." +msgstr "" + +#: ../../library/bdb.rst:260 +msgid "Return ``True`` if any breakpoint exists for *frame*'s filename." +msgstr "" + +#: ../../library/bdb.rst:262 +msgid "" +"Derived classes should override these methods to gain control over debugger " +"operation." +msgstr "" + +#: ../../library/bdb.rst:267 +msgid "" +"Called from :meth:`dispatch_call` if a break might stop inside the called " +"function." +msgstr "" + +#: ../../library/bdb.rst:270 +msgid "" +"*argument_list* is not used anymore and will always be ``None``. The " +"argument is kept for backwards compatibility." +msgstr "" + +#: ../../library/bdb.rst:275 +msgid "" +"Called from :meth:`dispatch_line` when either :meth:`stop_here` " +"or :meth:`break_here` returns ``True``." +msgstr "" + +#: ../../library/bdb.rst:280 +msgid "" +"Called from :meth:`dispatch_return` when :meth:`stop_here` returns ``True``." +msgstr "" + +#: ../../library/bdb.rst:284 +msgid "" +"Called from :meth:`dispatch_exception` when :meth:`stop_here` returns " +"``True``." +msgstr "" + +#: ../../library/bdb.rst:289 +msgid "Handle how a breakpoint must be removed when it is a temporary one." +msgstr "" + +#: ../../library/bdb.rst:291 +msgid "This method must be implemented by derived classes." +msgstr "" + +#: ../../library/bdb.rst:294 +msgid "" +"Derived classes and clients can call the following methods to affect the " +"stepping state." +msgstr "" + +#: ../../library/bdb.rst:299 +msgid "Stop after one line of code." +msgstr "" + +#: ../../library/bdb.rst:303 +msgid "Stop on the next line in or below the given frame." +msgstr "" + +#: ../../library/bdb.rst:307 +msgid "Stop when returning from the given frame." +msgstr "" + +#: ../../library/bdb.rst:311 +msgid "" +"Stop when the line with the *lineno* greater than the current one is reached " +"or when returning from current frame." +msgstr "" + +#: ../../library/bdb.rst:316 +msgid "" +"Start debugging from *frame*. If *frame* is not specified, debugging starts " +"from caller's frame." +msgstr "" + +#: ../../library/bdb.rst:319 +msgid "" +":func:`set_trace` will enter the debugger immediately, rather than on the " +"next line of code to be executed." +msgstr "" + +#: ../../library/bdb.rst:325 +msgid "" +"Stop only at breakpoints or when finished. If there are no breakpoints, set " +"the system trace function to ``None``." +msgstr "" + +#: ../../library/bdb.rst:332 +msgid "" +"Set the :attr:`!quitting` attribute to ``True``. This raises :exc:`BdbQuit` " +"in the next call to one of the :meth:`!dispatch_\\*` methods." +msgstr "" + +#: ../../library/bdb.rst:336 +msgid "" +"Derived classes and clients can call the following methods to manipulate " +"breakpoints. These methods return a string containing an error message if " +"something went wrong, or ``None`` if all is well." +msgstr "" + +#: ../../library/bdb.rst:342 +msgid "" +"Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* " +"passed as argument, return an error message. The *filename* should be in " +"canonical form, as described in the :meth:`canonic` method." +msgstr "" + +#: ../../library/bdb.rst:348 +msgid "" +"Delete the breakpoints in *filename* and *lineno*. If none were set, return " +"an error message." +msgstr "" + +#: ../../library/bdb.rst:353 +msgid "" +"Delete the breakpoint which has the index *arg* in " +"the :attr:`Breakpoint.bpbynumber`. If *arg* is not numeric or out of range, " +"return an error message." +msgstr "" + +#: ../../library/bdb.rst:359 +msgid "" +"Delete all breakpoints in *filename*. If none were set, return an error " +"message." +msgstr "" + +#: ../../library/bdb.rst:364 +msgid "" +"Delete all existing breakpoints. If none were set, return an error message." +msgstr "" + +#: ../../library/bdb.rst:369 +msgid "" +"Return a breakpoint specified by the given number. If *arg* is a string, it " +"will be converted to a number. If *arg* is a non-numeric string, if the " +"given breakpoint never existed or has been deleted, a :exc:`ValueError` is " +"raised." +msgstr "" + +#: ../../library/bdb.rst:378 +msgid "Return ``True`` if there is a breakpoint for *lineno* in *filename*." +msgstr "" + +#: ../../library/bdb.rst:382 +msgid "" +"Return all breakpoints for *lineno* in *filename*, or an empty list if none " +"are set." +msgstr "" + +#: ../../library/bdb.rst:387 +msgid "Return all breakpoints in *filename*, or an empty list if none are set." +msgstr "" + +#: ../../library/bdb.rst:391 +msgid "Return all breakpoints that are set." +msgstr "" + +#: ../../library/bdb.rst:394 +msgid "" +"Derived classes and clients can call the following methods to disable and " +"restart events to achieve better performance. These methods only work when " +"using the ``'monitoring'`` backend." +msgstr "" + +#: ../../library/bdb.rst:400 +msgid "" +"Disable the current event until the next time :func:`restart_events` is " +"called. This is helpful when the debugger is not interested in the current " +"line." +msgstr "" + +#: ../../library/bdb.rst:408 +msgid "" +"Restart all the disabled events. This function is automatically called in " +"``dispatch_*`` methods after ``user_*`` methods are called. If the " +"``dispatch_*`` methods are not overridden, the disabled events will be " +"restarted after each user interaction." +msgstr "" + +#: ../../library/bdb.rst:416 +msgid "" +"Derived classes and clients can call the following methods to get a data " +"structure representing a stack trace." +msgstr "" + +#: ../../library/bdb.rst:421 +msgid "Return a list of (frame, lineno) tuples in a stack trace, and a size." +msgstr "" + +#: ../../library/bdb.rst:423 +msgid "" +"The most recently called frame is last in the list. The size is the number " +"of frames below the frame where the debugger was invoked." +msgstr "" + +#: ../../library/bdb.rst:428 +msgid "" +"Return a string with information about a stack entry, which is a ``(frame, " +"lineno)`` tuple. The return string contains:" +msgstr "" + +#: ../../library/bdb.rst:431 +msgid "The canonical filename which contains the frame." +msgstr "" + +#: ../../library/bdb.rst:432 +msgid "The function name or ``\"\"``." +msgstr "" + +#: ../../library/bdb.rst:433 +msgid "The input arguments." +msgstr "" + +#: ../../library/bdb.rst:434 +msgid "The return value." +msgstr "" + +#: ../../library/bdb.rst:435 +msgid "The line of code (if it exists)." +msgstr "" + +#: ../../library/bdb.rst:438 +msgid "" +"The following two methods can be called by clients to use a debugger to " +"debug a :term:`statement`, given as a string." +msgstr "" + +#: ../../library/bdb.rst:443 +msgid "" +"Debug a statement executed via the :func:`exec` function. *globals* " +"defaults to :attr:`!__main__.__dict__`, *locals* defaults to *globals*." +msgstr "" + +#: ../../library/bdb.rst:448 +msgid "" +"Debug an expression executed via the :func:`eval` function. *globals* and " +"*locals* have the same meaning as in :meth:`run`." +msgstr "" + +#: ../../library/bdb.rst:453 +msgid "For backwards compatibility. Calls the :meth:`run` method." +msgstr "" + +#: ../../library/bdb.rst:457 +msgid "Debug a single function call, and return its result." +msgstr "" + +#: ../../library/bdb.rst:460 +msgid "Finally, the module defines the following functions:" +msgstr "" + +#: ../../library/bdb.rst:464 +msgid "" +"Return ``True`` if we should break here, depending on the way " +"the :class:`Breakpoint` *b* was set." +msgstr "" + +#: ../../library/bdb.rst:467 +msgid "" +"If it was set via line number, it checks if :attr:`b.line " +"` is the same as the one in *frame*. If the breakpoint " +"was set via :attr:`function name `, we have to " +"check we are in the right *frame* (the right function) and if we are on its " +"first executable line." +msgstr "" + +#: ../../library/bdb.rst:476 +msgid "" +"Return ``(active breakpoint, delete temporary flag)`` or ``(None, None)`` as " +"the breakpoint to act upon." +msgstr "" + +#: ../../library/bdb.rst:479 +msgid "" +"The *active breakpoint* is the first entry in :attr:`bplist " +"` for the (:attr:`file " +"`, :attr:`line `) (which must " +"exist) that is :attr:`enabled `, for " +"which :func:`checkfuncname` is true, and that has neither a " +"false :attr:`condition ` nor positive :attr:`ignore " +"` count. The *flag*, meaning that a temporary " +"breakpoint should be deleted, is ``False`` only when the :attr:`cond " +"` cannot be evaluated (in which case, :attr:`ignore " +"` count is ignored)." +msgstr "" + +#: ../../library/bdb.rst:490 +msgid "If no such entry exists, then ``(None, None)`` is returned." +msgstr "" + +#: ../../library/bdb.rst:495 +msgid "Start debugging with a :class:`Bdb` instance from caller's frame." +msgstr "" + +#: ../../library/bdb.rst:330 +msgid "quitting (bdb.Bdb attribute)" +msgstr "" diff --git a/library/binary.po b/library/binary.po new file mode 100644 index 0000000..5508175 --- /dev/null +++ b/library/binary.po @@ -0,0 +1,44 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/binary.rst:5 +msgid "Binary Data Services" +msgstr "" + +#: ../../library/binary.rst:7 +msgid "" +"The modules described in this chapter provide some basic services operations " +"for manipulation of binary data. Other operations on binary data, " +"specifically in relation to file formats and network protocols, are " +"described in the relevant sections." +msgstr "" + +#: ../../library/binary.rst:12 +msgid "" +"Some libraries described under :ref:`textservices` also work with either " +"ASCII-compatible binary formats (for example, :mod:`re`) or all binary data " +"(for example, :mod:`difflib`)." +msgstr "" + +#: ../../library/binary.rst:16 +msgid "" +"In addition, see the documentation for Python's built-in binary data types " +"in :ref:`binaryseq`." +msgstr "" diff --git a/library/binascii.po b/library/binascii.po new file mode 100644 index 0000000..012b4c2 --- /dev/null +++ b/library/binascii.po @@ -0,0 +1,241 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/binascii.rst:2 +msgid ":mod:`!binascii` --- Convert between binary and ASCII" +msgstr "" + +#: ../../library/binascii.rst:13 +msgid "" +"The :mod:`binascii` module contains a number of methods to convert between " +"binary and various ASCII-encoded binary representations. Normally, you will " +"not use these functions directly but use wrapper modules like :mod:`base64` " +"instead. The :mod:`binascii` module contains low-level functions written in " +"C for greater speed that are used by the higher-level modules." +msgstr "" + +#: ../../library/binascii.rst:22 +msgid "" +"``a2b_*`` functions accept Unicode strings containing only ASCII characters. " +"Other functions only accept :term:`bytes-like objects ` " +"(such as :class:`bytes`, :class:`bytearray` and other objects that support " +"the buffer protocol)." +msgstr "" + +#: ../../library/binascii.rst:27 +msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." +msgstr "" + +#: ../../library/binascii.rst:31 +msgid "The :mod:`binascii` module defines the following functions:" +msgstr "" + +#: ../../library/binascii.rst:36 +msgid "" +"Convert a single line of uuencoded data back to binary and return the binary " +"data. Lines normally contain 45 (binary) bytes, except for the last line. " +"Line data may be followed by whitespace." +msgstr "" + +#: ../../library/binascii.rst:43 +msgid "" +"Convert binary data to a line of ASCII characters, the return value is the " +"converted line, including a newline char. The length of *data* should be at " +"most 45. If *backtick* is true, zeros are represented by ``'`'`` instead of " +"spaces." +msgstr "" + +#: ../../library/binascii.rst:47 +msgid "Added the *backtick* parameter." +msgstr "" + +#: ../../library/binascii.rst:53 +msgid "" +"Convert a block of base64 data back to binary and return the binary data. " +"More than one line may be passed at a time." +msgstr "" + +#: ../../library/binascii.rst:56 +msgid "" +"If *strict_mode* is true, only valid base64 data will be converted. Invalid " +"base64 data will raise :exc:`binascii.Error`." +msgstr "" + +#: ../../library/binascii.rst:59 +msgid "Valid base64:" +msgstr "" + +#: ../../library/binascii.rst:61 +msgid "Conforms to :rfc:`3548`." +msgstr "" + +#: ../../library/binascii.rst:62 +msgid "Contains only characters from the base64 alphabet." +msgstr "" + +#: ../../library/binascii.rst:63 +msgid "" +"Contains no excess data after padding (including excess padding, newlines, " +"etc.)." +msgstr "" + +#: ../../library/binascii.rst:64 +msgid "Does not start with a padding." +msgstr "" + +#: ../../library/binascii.rst:66 +msgid "Added the *strict_mode* parameter." +msgstr "" + +#: ../../library/binascii.rst:72 +msgid "" +"Convert binary data to a line of ASCII characters in base64 coding. The " +"return value is the converted line, including a newline char if *newline* is " +"true. The output of this function conforms to :rfc:`3548`." +msgstr "" + +#: ../../library/binascii.rst:76 +msgid "Added the *newline* parameter." +msgstr "" + +#: ../../library/binascii.rst:82 +msgid "" +"Convert a block of quoted-printable data back to binary and return the " +"binary data. More than one line may be passed at a time. If the optional " +"argument *header* is present and true, underscores will be decoded as spaces." +msgstr "" + +#: ../../library/binascii.rst:89 +msgid "" +"Convert binary data to a line(s) of ASCII characters in quoted-printable " +"encoding. The return value is the converted line(s). If the optional " +"argument *quotetabs* is present and true, all tabs and spaces will be " +"encoded. If the optional argument *istext* is present and true, newlines " +"are not encoded but trailing whitespace will be encoded. If the optional " +"argument *header* is present and true, spaces will be encoded as underscores " +"per :rfc:`1522`. If the optional argument *header* is present and false, " +"newline characters will be encoded as well; otherwise linefeed conversion " +"might corrupt the binary data stream." +msgstr "" + +#: ../../library/binascii.rst:102 +msgid "" +"Compute a 16-bit CRC value of *data*, starting with *value* as the initial " +"CRC, and return the result. This uses the CRC-CCITT polynomial *x*:sup:`16` " +"+ *x*:sup:`12` + *x*:sup:`5` + 1, often represented as 0x1021. This CRC is " +"used in the binhex4 format." +msgstr "" + +#: ../../library/binascii.rst:110 +msgid "" +"Compute CRC-32, the unsigned 32-bit checksum of *data*, starting with an " +"initial CRC of *value*. The default initial CRC is zero. The algorithm is " +"consistent with the ZIP file checksum. Since the algorithm is designed for " +"use as a checksum algorithm, it is not suitable for use as a general hash " +"algorithm. Use as follows::" +msgstr "" + +#: ../../library/binascii.rst:116 +msgid "" +"print(binascii.crc32(b\"hello world\"))\n" +"# Or, in two pieces:\n" +"crc = binascii.crc32(b\"hello\")\n" +"crc = binascii.crc32(b\" world\", crc)\n" +"print('crc32 = {:#010x}'.format(crc))" +msgstr "" + +#: ../../library/binascii.rst:122 +msgid "The result is always unsigned." +msgstr "" + +#: ../../library/binascii.rst:128 +msgid "" +"Return the hexadecimal representation of the binary *data*. Every byte of " +"*data* is converted into the corresponding 2-digit hex representation. The " +"returned bytes object is therefore twice as long as the length of *data*." +msgstr "" + +#: ../../library/binascii.rst:132 +msgid "" +"Similar functionality (but returning a text string) is also conveniently " +"accessible using the :meth:`bytes.hex` method." +msgstr "" + +#: ../../library/binascii.rst:135 +msgid "" +"If *sep* is specified, it must be a single character str or bytes object. It " +"will be inserted in the output after every *bytes_per_sep* input bytes. " +"Separator placement is counted from the right end of the output by default, " +"if you wish to count from the left, supply a negative *bytes_per_sep* value." +msgstr "" + +#: ../../library/binascii.rst:150 +msgid "The *sep* and *bytes_per_sep* parameters were added." +msgstr "" + +#: ../../library/binascii.rst:156 +msgid "" +"Return the binary data represented by the hexadecimal string *hexstr*. This " +"function is the inverse of :func:`b2a_hex`. *hexstr* must contain an even " +"number of hexadecimal digits (which can be upper or lower case), otherwise " +"an :exc:`Error` exception is raised." +msgstr "" + +#: ../../library/binascii.rst:161 +msgid "" +"Similar functionality (accepting only text string arguments, but more " +"liberal towards whitespace) is also accessible using " +"the :meth:`bytes.fromhex` class method." +msgstr "" + +#: ../../library/binascii.rst:167 +msgid "Exception raised on errors. These are usually programming errors." +msgstr "" + +#: ../../library/binascii.rst:172 +msgid "" +"Exception raised on incomplete data. These are usually not programming " +"errors, but may be handled by reading a little more data and trying again." +msgstr "" + +#: ../../library/binascii.rst:178 +msgid "Module :mod:`base64`" +msgstr "" + +#: ../../library/binascii.rst:179 +msgid "" +"Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." +msgstr "" + +#: ../../library/binascii.rst:182 +msgid "Module :mod:`quopri`" +msgstr "" + +#: ../../library/binascii.rst:183 +msgid "Support for quoted-printable encoding used in MIME email messages." +msgstr "" + +#: ../../library/binascii.rst:8 +msgid "module" +msgstr "" + +#: ../../library/binascii.rst:8 +msgid "base64" +msgstr "" diff --git a/library/bisect.po b/library/bisect.po new file mode 100644 index 0000000..025c05d --- /dev/null +++ b/library/bisect.po @@ -0,0 +1,328 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/bisect.rst:2 +msgid ":mod:`!bisect` --- Array bisection algorithm" +msgstr "" + +#: ../../library/bisect.rst:10 +msgid "**Source code:** :source:`Lib/bisect.py`" +msgstr "" + +#: ../../library/bisect.rst:14 +msgid "" +"This module provides support for maintaining a list in sorted order without " +"having to sort the list after each insertion. For long lists of items with " +"expensive comparison operations, this can be an improvement over linear " +"searches or frequent resorting." +msgstr "" + +#: ../../library/bisect.rst:19 +msgid "" +"The module is called :mod:`bisect` because it uses a basic bisection " +"algorithm to do its work. Unlike other bisection tools that search for a " +"specific value, the functions in this module are designed to locate an " +"insertion point. Accordingly, the functions never call " +"an :meth:`~object.__eq__` method to determine whether a value has been " +"found. Instead, the functions only call the :meth:`~object.__lt__` method " +"and will return an insertion point between values in an array." +msgstr "" + +#: ../../library/bisect.rst:29 +msgid "" +"The functions in this module are not thread-safe. If multiple threads " +"concurrently use :mod:`bisect` functions on the same sequence, this may " +"result in undefined behaviour. Likewise, if the provided sequence is mutated " +"by a different thread while a :mod:`bisect` function is operating on it, the " +"result is undefined. For example, using :py:func:`~bisect.insort_left` on " +"the same list from multiple threads may result in the list becoming unsorted." +msgstr "" + +#: ../../library/bisect.rst:39 +msgid "The following functions are provided:" +msgstr "" + +#: ../../library/bisect.rst:44 +msgid "" +"Locate the insertion point for *x* in *a* to maintain sorted order. The " +"parameters *lo* and *hi* may be used to specify a subset of the list which " +"should be considered; by default the entire list is used. If *x* is already " +"present in *a*, the insertion point will be before (to the left of) any " +"existing entries. The return value is suitable for use as the first " +"parameter to ``list.insert()`` assuming that *a* is already sorted." +msgstr "" + +#: ../../library/bisect.rst:51 +msgid "" +"The returned insertion point *ip* partitions the array *a* into two slices " +"such that ``all(elem < x for elem in a[lo : ip])`` is true for the left " +"slice and ``all(elem >= x for elem in a[ip : hi])`` is true for the right " +"slice." +msgstr "" + +#: ../../library/bisect.rst:56 +msgid "" +"*key* specifies a :term:`key function` of one argument that is used to " +"extract a comparison key from each element in the array. To support " +"searching complex records, the key function is not applied to the *x* value." +msgstr "" + +#: ../../library/bisect.rst:60 +msgid "" +"If *key* is ``None``, the elements are compared directly and no key function " +"is called." +msgstr "" + +#: ../../library/bisect.rst:63 ../../library/bisect.rst:77 +#: ../../library/bisect.rst:95 ../../library/bisect.rst:115 +msgid "Added the *key* parameter." +msgstr "" + +#: ../../library/bisect.rst:70 +msgid "" +"Similar to :py:func:`~bisect.bisect_left`, but returns an insertion point " +"which comes after (to the right of) any existing entries of *x* in *a*." +msgstr "" + +#: ../../library/bisect.rst:73 +msgid "" +"The returned insertion point *ip* partitions the array *a* into two slices " +"such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left " +"slice and ``all(elem > x for elem in a[ip : hi])`` is true for the right " +"slice." +msgstr "" + +#: ../../library/bisect.rst:83 +msgid "Insert *x* in *a* in sorted order." +msgstr "" + +#: ../../library/bisect.rst:85 +msgid "" +"This function first runs :py:func:`~bisect.bisect_left` to locate an " +"insertion point. Next, it runs the :meth:`!insert` method on *a* to insert " +"*x* at the appropriate position to maintain sort order." +msgstr "" + +#: ../../library/bisect.rst:89 ../../library/bisect.rst:109 +msgid "" +"To support inserting records in a table, the *key* function (if any) is " +"applied to *x* for the search step but not for the insertion step." +msgstr "" + +#: ../../library/bisect.rst:92 ../../library/bisect.rst:112 +msgid "" +"Keep in mind that the *O*\\ (log *n*) search is dominated by the slow *O*\\ " +"(*n*) insertion step." +msgstr "" + +#: ../../library/bisect.rst:102 +msgid "" +"Similar to :py:func:`~bisect.insort_left`, but inserting *x* in *a* after " +"any existing entries of *x*." +msgstr "" + +#: ../../library/bisect.rst:105 +msgid "" +"This function first runs :py:func:`~bisect.bisect_right` to locate an " +"insertion point. Next, it runs the :meth:`!insert` method on *a* to insert " +"*x* at the appropriate position to maintain sort order." +msgstr "" + +#: ../../library/bisect.rst:120 +msgid "Performance Notes" +msgstr "" + +#: ../../library/bisect.rst:122 +msgid "" +"When writing time sensitive code using *bisect()* and *insort()*, keep these " +"thoughts in mind:" +msgstr "" + +#: ../../library/bisect.rst:125 +msgid "" +"Bisection is effective for searching ranges of values. For locating specific " +"values, dictionaries are more performant." +msgstr "" + +#: ../../library/bisect.rst:128 +msgid "" +"The *insort()* functions are *O*\\ (*n*) because the logarithmic search step " +"is dominated by the linear time insertion step." +msgstr "" + +#: ../../library/bisect.rst:131 +msgid "" +"The search functions are stateless and discard key function results after " +"they are used. Consequently, if the search functions are used in a loop, " +"the key function may be called again and again on the same array elements. " +"If the key function isn't fast, consider wrapping it " +"with :py:func:`functools.cache` to avoid duplicate computations. " +"Alternatively, consider searching an array of precomputed keys to locate the " +"insertion point (as shown in the examples section below)." +msgstr "" + +#: ../../library/bisect.rst:141 +msgid "" +"`Sorted Collections `_ is a " +"high performance module that uses *bisect* to managed sorted collections of " +"data." +msgstr "" + +#: ../../library/bisect.rst:145 +msgid "" +"The `SortedCollection recipe `_ uses bisect to build a full-featured collection class " +"with straight-forward search methods and support for a key-function. The " +"keys are precomputed to save unnecessary calls to the key function during " +"searches." +msgstr "" + +#: ../../library/bisect.rst:153 +msgid "Searching Sorted Lists" +msgstr "" + +#: ../../library/bisect.rst:155 +msgid "" +"The above `bisect functions`_ are useful for finding insertion points but " +"can be tricky or awkward to use for common searching tasks. The following " +"five functions show how to transform them into the standard lookups for " +"sorted lists::" +msgstr "" + +#: ../../library/bisect.rst:160 +msgid "" +"def index(a, x):\n" +" 'Locate the leftmost value exactly equal to x'\n" +" i = bisect_left(a, x)\n" +" if i != len(a) and a[i] == x:\n" +" return i\n" +" raise ValueError\n" +"\n" +"def find_lt(a, x):\n" +" 'Find rightmost value less than x'\n" +" i = bisect_left(a, x)\n" +" if i:\n" +" return a[i-1]\n" +" raise ValueError\n" +"\n" +"def find_le(a, x):\n" +" 'Find rightmost value less than or equal to x'\n" +" i = bisect_right(a, x)\n" +" if i:\n" +" return a[i-1]\n" +" raise ValueError\n" +"\n" +"def find_gt(a, x):\n" +" 'Find leftmost value greater than x'\n" +" i = bisect_right(a, x)\n" +" if i != len(a):\n" +" return a[i]\n" +" raise ValueError\n" +"\n" +"def find_ge(a, x):\n" +" 'Find leftmost item greater than or equal to x'\n" +" i = bisect_left(a, x)\n" +" if i != len(a):\n" +" return a[i]\n" +" raise ValueError" +msgstr "" + +#: ../../library/bisect.rst:197 +msgid "Examples" +msgstr "" + +#: ../../library/bisect.rst:201 +msgid "" +"The :py:func:`~bisect.bisect` function can be useful for numeric table " +"lookups. This example uses :py:func:`~bisect.bisect` to look up a letter " +"grade for an exam score (say) based on a set of ordered numeric breakpoints: " +"90 and up is an 'A', 80 to 89 is a 'B', and so on::" +msgstr "" + +#: ../../library/bisect.rst:206 +msgid "" +">>> def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):\n" +"... i = bisect(breakpoints, score)\n" +"... return grades[i]\n" +"...\n" +">>> [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]]\n" +"['F', 'A', 'C', 'C', 'B', 'A', 'A']" +msgstr "" + +#: ../../library/bisect.rst:213 +msgid "" +"The :py:func:`~bisect.bisect` and :py:func:`~bisect.insort` functions also " +"work with lists of tuples. The *key* argument can serve to extract the " +"field used for ordering records in a table::" +msgstr "" + +#: ../../library/bisect.rst:217 +msgid "" +">>> from collections import namedtuple\n" +">>> from operator import attrgetter\n" +">>> from bisect import bisect, insort\n" +">>> from pprint import pprint\n" +"\n" +">>> Movie = namedtuple('Movie', ('name', 'released', 'director'))\n" +"\n" +">>> movies = [\n" +"... Movie('Jaws', 1975, 'Spielberg'),\n" +"... Movie('Titanic', 1997, 'Cameron'),\n" +"... Movie('The Birds', 1963, 'Hitchcock'),\n" +"... Movie('Aliens', 1986, 'Cameron')\n" +"... ]\n" +"\n" +">>> # Find the first movie released after 1960\n" +">>> by_year = attrgetter('released')\n" +">>> movies.sort(key=by_year)\n" +">>> movies[bisect(movies, 1960, key=by_year)]\n" +"Movie(name='The Birds', released=1963, director='Hitchcock')\n" +"\n" +">>> # Insert a movie while maintaining sort order\n" +">>> romance = Movie('Love Story', 1970, 'Hiller')\n" +">>> insort(movies, romance, key=by_year)\n" +">>> pprint(movies)\n" +"[Movie(name='The Birds', released=1963, director='Hitchcock'),\n" +" Movie(name='Love Story', released=1970, director='Hiller'),\n" +" Movie(name='Jaws', released=1975, director='Spielberg'),\n" +" Movie(name='Aliens', released=1986, director='Cameron'),\n" +" Movie(name='Titanic', released=1997, director='Cameron')]" +msgstr "" + +#: ../../library/bisect.rst:247 +msgid "" +"If the key function is expensive, it is possible to avoid repeated function " +"calls by searching a list of precomputed keys to find the index of a record::" +msgstr "" + +#: ../../library/bisect.rst:250 +msgid "" +">>> data = [('red', 5), ('blue', 1), ('yellow', 8), ('black', 0)]\n" +">>> data.sort(key=lambda r: r[1]) # Or use operator.itemgetter(1).\n" +">>> keys = [r[1] for r in data] # Precompute a list of keys.\n" +">>> data[bisect_left(keys, 0)]\n" +"('black', 0)\n" +">>> data[bisect_left(keys, 1)]\n" +"('blue', 1)\n" +">>> data[bisect_left(keys, 5)]\n" +"('red', 5)\n" +">>> data[bisect_left(keys, 8)]\n" +"('yellow', 8)" +msgstr "" diff --git a/library/builtins.po b/library/builtins.po new file mode 100644 index 0000000..3463326 --- /dev/null +++ b/library/builtins.po @@ -0,0 +1,84 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/builtins.rst:2 +msgid ":mod:`!builtins` --- Built-in objects" +msgstr "" + +#: ../../library/builtins.rst:9 +msgid "" +"This module provides direct access to all 'built-in' identifiers of Python; " +"for example, ``builtins.open`` is the full name for the built-in " +"function :func:`open`." +msgstr "" + +#: ../../library/builtins.rst:12 +msgid "" +"This module is not normally accessed explicitly by most applications, but " +"can be useful in modules that provide objects with the same name as a built-" +"in value, but in which the built-in of that name is also needed. For " +"example, in a module that wants to implement an :func:`open` function that " +"wraps the built-in :func:`open`, this module can be used directly::" +msgstr "" + +#: ../../library/builtins.rst:18 +msgid "" +"import builtins\n" +"\n" +"def open(path):\n" +" f = builtins.open(path, 'r')\n" +" return UpperCaser(f)\n" +"\n" +"class UpperCaser:\n" +" '''Wrapper around a file that converts output to uppercase.'''\n" +"\n" +" def __init__(self, f):\n" +" self._f = f\n" +"\n" +" def read(self, count=-1):\n" +" return self._f.read(count).upper()\n" +"\n" +" # ..." +msgstr "" + +#: ../../library/builtins.rst:35 +msgid "" +"As an implementation detail, most modules have the name ``__builtins__`` " +"made available as part of their globals. The value of ``__builtins__`` is " +"normally either this module or the value of this " +"module's :attr:`~object.__dict__` attribute. Since this is an implementation " +"detail, it may not be used by alternate implementations of Python." +msgstr "" + +#: ../../library/builtins.rst:43 +msgid ":ref:`built-in-consts`" +msgstr "" + +#: ../../library/builtins.rst:44 +msgid ":ref:`bltin-exceptions`" +msgstr "" + +#: ../../library/builtins.rst:45 +msgid ":ref:`built-in-funcs`" +msgstr "" + +#: ../../library/builtins.rst:46 +msgid ":ref:`bltin-types`" +msgstr "" diff --git a/library/bz2.po b/library/bz2.po new file mode 100644 index 0000000..1916d48 --- /dev/null +++ b/library/bz2.po @@ -0,0 +1,426 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/bz2.rst:2 +msgid ":mod:`!bz2` --- Support for :program:`bzip2` compression" +msgstr "" + +#: ../../library/bz2.rst:12 +msgid "**Source code:** :source:`Lib/bz2.py`" +msgstr "" + +#: ../../library/bz2.rst:16 +msgid "" +"This module provides a comprehensive interface for compressing and " +"decompressing data using the bzip2 compression algorithm." +msgstr "" + +#: ../../library/bz2.rst:19 +msgid "The :mod:`bz2` module contains:" +msgstr "" + +#: ../../library/bz2.rst:21 +msgid "" +"The :func:`.open` function and :class:`BZ2File` class for reading and " +"writing compressed files." +msgstr "" + +#: ../../library/bz2.rst:23 +msgid "" +"The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " +"incremental (de)compression." +msgstr "" + +#: ../../library/bz2.rst:25 +msgid "" +"The :func:`compress` and :func:`decompress` functions for one-shot " +"(de)compression." +msgstr "" + +#: ../../library/bz2.rst:30 +msgid "(De)compression of files" +msgstr "" + +#: ../../library/bz2.rst:34 +msgid "" +"Open a bzip2-compressed file in binary or text mode, returning a :term:`file " +"object`." +msgstr "" + +#: ../../library/bz2.rst:37 +msgid "" +"As with the constructor for :class:`BZ2File`, the *filename* argument can be " +"an actual filename (a :class:`str` or :class:`bytes` object), or an existing " +"file object to read from or write to." +msgstr "" + +#: ../../library/bz2.rst:41 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, " +"``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " +"``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." +msgstr "" + +#: ../../library/bz2.rst:45 +msgid "" +"The *compresslevel* argument is an integer from 1 to 9, as for " +"the :class:`BZ2File` constructor." +msgstr "" + +#: ../../library/bz2.rst:48 +msgid "" +"For binary mode, this function is equivalent to the :class:`BZ2File` " +"constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " +"this case, the *encoding*, *errors* and *newline* arguments must not be " +"provided." +msgstr "" + +#: ../../library/bz2.rst:53 +msgid "" +"For text mode, a :class:`BZ2File` object is created, and wrapped in " +"an :class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line ending(s)." +msgstr "" + +#: ../../library/bz2.rst:59 ../../library/bz2.rst:175 +msgid "The ``'x'`` (exclusive creation) mode was added." +msgstr "" + +#: ../../library/bz2.rst:62 ../../library/bz2.rst:182 +msgid "Accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/bz2.rst:68 +msgid "Open a bzip2-compressed file in binary mode." +msgstr "" + +#: ../../library/bz2.rst:70 +msgid "" +"If *filename* is a :class:`str` or :class:`bytes` object, open the named " +"file directly. Otherwise, *filename* should be a :term:`file object`, which " +"will be used to read or write the compressed data." +msgstr "" + +#: ../../library/bz2.rst:74 +msgid "" +"The *mode* argument can be either ``'r'`` for reading (default), ``'w'`` for " +"overwriting, ``'x'`` for exclusive creation, or ``'a'`` for appending. These " +"can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " +"respectively." +msgstr "" + +#: ../../library/bz2.rst:79 +msgid "" +"If *filename* is a file object (rather than an actual file name), a mode of " +"``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." +msgstr "" + +#: ../../library/bz2.rst:82 +msgid "" +"If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between " +"``1`` and ``9`` specifying the level of compression: ``1`` produces the " +"least compression, and ``9`` (default) produces the most compression." +msgstr "" + +#: ../../library/bz2.rst:86 +msgid "" +"If *mode* is ``'r'``, the input file may be the concatenation of multiple " +"compressed streams." +msgstr "" + +#: ../../library/bz2.rst:89 +msgid "" +":class:`BZ2File` provides all of the members specified by " +"the :class:`io.BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` " +"and :meth:`~io.IOBase.truncate`. Iteration and the :keyword:`with` statement " +"are supported." +msgstr "" + +#: ../../library/bz2.rst:94 +msgid ":class:`BZ2File` also provides the following methods and attributes:" +msgstr "" + +#: ../../library/bz2.rst:98 +msgid "" +"Return buffered data without advancing the file position. At least one byte " +"of data will be returned (unless at EOF). The exact number of bytes returned " +"is unspecified." +msgstr "" + +#: ../../library/bz2.rst:102 +msgid "" +"While calling :meth:`peek` does not change the file position of " +"the :class:`BZ2File`, it may change the position of the underlying file " +"object (e.g. if the :class:`BZ2File` was constructed by passing a file " +"object for *filename*)." +msgstr "" + +#: ../../library/bz2.rst:111 +msgid "Return the file descriptor for the underlying file." +msgstr "" + +#: ../../library/bz2.rst:117 +msgid "Return whether the file was opened for reading." +msgstr "" + +#: ../../library/bz2.rst:123 +msgid "Return whether the file supports seeking." +msgstr "" + +#: ../../library/bz2.rst:129 +msgid "Return whether the file was opened for writing." +msgstr "" + +#: ../../library/bz2.rst:135 +msgid "" +"Read up to *size* uncompressed bytes, while trying to avoid making multiple " +"reads from the underlying stream. Reads up to a buffer's worth of data if " +"size is negative." +msgstr "" + +#: ../../library/bz2.rst:139 +msgid "Returns ``b''`` if the file is at EOF." +msgstr "" + +#: ../../library/bz2.rst:145 +msgid "Read bytes into *b*." +msgstr "" + +#: ../../library/bz2.rst:147 +msgid "Returns the number of bytes read (0 for EOF)." +msgstr "" + +#: ../../library/bz2.rst:153 +msgid "``'rb'`` for reading and ``'wb'`` for writing." +msgstr "" + +#: ../../library/bz2.rst:159 +msgid "" +"The bzip2 file name. Equivalent to the :attr:`~io.FileIO.name` attribute of " +"the underlying :term:`file object`." +msgstr "" + +#: ../../library/bz2.rst:165 +msgid "Support for the :keyword:`with` statement was added." +msgstr "" + +#: ../../library/bz2.rst:168 +msgid "" +"Support was added for *filename* being a :term:`file object` instead of an " +"actual filename." +msgstr "" + +#: ../../library/bz2.rst:172 +msgid "" +"The ``'a'`` (append) mode was added, along with support for reading multi-" +"stream files." +msgstr "" + +#: ../../library/bz2.rst:178 +msgid "" +"The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " +"``None``." +msgstr "" + +#: ../../library/bz2.rst:185 +msgid "" +"The *buffering* parameter has been removed. It was ignored and deprecated " +"since Python 3.0. Pass an open file object to control how the file is opened." +msgstr "" + +#: ../../library/bz2.rst:190 +msgid "The *compresslevel* parameter became keyword-only." +msgstr "" + +#: ../../library/bz2.rst:192 +msgid "" +"This class is thread unsafe in the face of multiple simultaneous readers or " +"writers, just like its equivalent classes in :mod:`gzip` and :mod:`lzma` " +"have always been." +msgstr "" + +#: ../../library/bz2.rst:199 +msgid "Incremental (de)compression" +msgstr "" + +#: ../../library/bz2.rst:203 +msgid "" +"Create a new compressor object. This object may be used to compress data " +"incrementally. For one-shot compression, use the :func:`compress` function " +"instead." +msgstr "" + +#: ../../library/bz2.rst:207 ../../library/bz2.rst:295 +msgid "" +"*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " +"default is ``9``." +msgstr "" + +#: ../../library/bz2.rst:212 +msgid "" +"Provide data to the compressor object. Returns a chunk of compressed data if " +"possible, or an empty byte string otherwise." +msgstr "" + +#: ../../library/bz2.rst:215 +msgid "" +"When you have finished providing data to the compressor, call " +"the :meth:`flush` method to finish the compression process." +msgstr "" + +#: ../../library/bz2.rst:221 +msgid "" +"Finish the compression process. Returns the compressed data left in internal " +"buffers." +msgstr "" + +#: ../../library/bz2.rst:224 +msgid "" +"The compressor object may not be used after this method has been called." +msgstr "" + +#: ../../library/bz2.rst:229 +msgid "" +"Create a new decompressor object. This object may be used to decompress data " +"incrementally. For one-shot compression, use the :func:`decompress` function " +"instead." +msgstr "" + +#: ../../library/bz2.rst:234 +msgid "" +"This class does not transparently handle inputs containing multiple " +"compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " +"need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " +"must use a new decompressor for each stream." +msgstr "" + +#: ../../library/bz2.rst:241 +msgid "" +"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " +"as bytes. Some of *data* may be buffered internally, for use in later calls " +"to :meth:`decompress`. The returned data should be concatenated with the " +"output of any previous calls to :meth:`decompress`." +msgstr "" + +#: ../../library/bz2.rst:247 +msgid "" +"If *max_length* is nonnegative, returns at most *max_length* bytes of " +"decompressed data. If this limit is reached and further output can be " +"produced, the :attr:`~.needs_input` attribute will be set to ``False``. In " +"this case, the next call to :meth:`~.decompress` may provide *data* as " +"``b''`` to obtain more of the output." +msgstr "" + +#: ../../library/bz2.rst:254 +msgid "" +"If all of the input data was decompressed and returned (either because this " +"was less than *max_length* bytes, or because *max_length* was negative), " +"the :attr:`~.needs_input` attribute will be set to ``True``." +msgstr "" + +#: ../../library/bz2.rst:259 +msgid "" +"Attempting to decompress data after the end of stream is reached raises " +"an :exc:`EOFError`. Any data found after the end of the stream is ignored " +"and saved in the :attr:`~.unused_data` attribute." +msgstr "" + +#: ../../library/bz2.rst:263 +msgid "Added the *max_length* parameter." +msgstr "" + +#: ../../library/bz2.rst:268 +msgid "``True`` if the end-of-stream marker has been reached." +msgstr "" + +#: ../../library/bz2.rst:275 +msgid "Data found after the end of the compressed stream." +msgstr "" + +#: ../../library/bz2.rst:277 +msgid "" +"If this attribute is accessed before the end of the stream has been reached, " +"its value will be ``b''``." +msgstr "" + +#: ../../library/bz2.rst:282 +msgid "" +"``False`` if the :meth:`.decompress` method can provide more decompressed " +"data before requiring new uncompressed input." +msgstr "" + +#: ../../library/bz2.rst:289 +msgid "One-shot (de)compression" +msgstr "" + +#: ../../library/bz2.rst:293 +msgid "Compress *data*, a :term:`bytes-like object `." +msgstr "" + +#: ../../library/bz2.rst:298 +msgid "For incremental compression, use a :class:`BZ2Compressor` instead." +msgstr "" + +#: ../../library/bz2.rst:303 +msgid "Decompress *data*, a :term:`bytes-like object `." +msgstr "" + +#: ../../library/bz2.rst:305 +msgid "" +"If *data* is the concatenation of multiple compressed streams, decompress " +"all of the streams." +msgstr "" + +#: ../../library/bz2.rst:308 +msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." +msgstr "" + +#: ../../library/bz2.rst:310 +msgid "Support for multi-stream inputs was added." +msgstr "" + +#: ../../library/bz2.rst:316 +msgid "Examples of usage" +msgstr "" + +#: ../../library/bz2.rst:318 +msgid "Below are some examples of typical usage of the :mod:`bz2` module." +msgstr "" + +#: ../../library/bz2.rst:320 +msgid "" +"Using :func:`compress` and :func:`decompress` to demonstrate round-trip " +"compression:" +msgstr "" + +#: ../../library/bz2.rst:338 +msgid "Using :class:`BZ2Compressor` for incremental compression:" +msgstr "" + +#: ../../library/bz2.rst:356 +msgid "" +"The example above uses a very \"nonrandom\" stream of data (a stream of " +"``b\"z\"`` chunks). Random data tends to compress poorly, while ordered, " +"repetitive data usually yields a high compression ratio." +msgstr "" + +#: ../../library/bz2.rst:360 +msgid "Writing and reading a bzip2-compressed file in binary mode:" +msgstr "" diff --git a/library/calendar.po b/library/calendar.po new file mode 100644 index 0000000..b0ba58d --- /dev/null +++ b/library/calendar.po @@ -0,0 +1,732 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/calendar.rst:2 +msgid ":mod:`!calendar` --- General calendar-related functions" +msgstr "" + +#: ../../library/calendar.rst:10 +msgid "**Source code:** :source:`Lib/calendar.py`" +msgstr "" + +#: ../../library/calendar.rst:14 +msgid "" +"This module allows you to output calendars like the Unix :program:`cal` " +"program, and provides additional useful functions related to the calendar. " +"By default, these calendars have Monday as the first day of the week, and " +"Sunday as the last (the European convention). Use :func:`setfirstweekday` to " +"set the first day of the week to Sunday (6) or to any other weekday. " +"Parameters that specify dates are given as integers. For related " +"functionality, see also the :mod:`datetime` and :mod:`time` modules." +msgstr "" + +#: ../../library/calendar.rst:22 +msgid "" +"The functions and classes defined in this module use an idealized calendar, " +"the current Gregorian calendar extended indefinitely in both directions. " +"This matches the definition of the \"proleptic Gregorian\" calendar in " +"Dershowitz and Reingold's book \"Calendrical Calculations\", where it's the " +"base calendar for all computations. Zero and negative years are interpreted " +"as prescribed by the ISO 8601 standard. Year 0 is 1 BC, year -1 is 2 BC, " +"and so on." +msgstr "" + +#: ../../library/calendar.rst:33 +msgid "" +"Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " +"the first day of the week. :const:`MONDAY` is ``0`` (the " +"default), :const:`SUNDAY` is ``6``." +msgstr "" + +#: ../../library/calendar.rst:36 +msgid "" +"A :class:`Calendar` object provides several methods that can be used for " +"preparing the calendar data for formatting. This class doesn't do any " +"formatting itself. This is the job of subclasses." +msgstr "" + +#: ../../library/calendar.rst:41 +msgid ":class:`Calendar` instances have the following methods and attributes:" +msgstr "" + +#: ../../library/calendar.rst:45 +msgid "The first weekday as an integer (0--6)." +msgstr "" + +#: ../../library/calendar.rst:47 +msgid "" +"This property can also be set and read " +"using :meth:`~Calendar.setfirstweekday` " +"and :meth:`~Calendar.getfirstweekday` respectively." +msgstr "" + +#: ../../library/calendar.rst:53 +msgid "Return an :class:`int` for the current first weekday (0--6)." +msgstr "" + +#: ../../library/calendar.rst:55 +msgid "Identical to reading the :attr:`~Calendar.firstweekday` property." +msgstr "" + +#: ../../library/calendar.rst:59 +msgid "" +"Set the first weekday to *firstweekday*, passed as an :class:`int` (0--6)" +msgstr "" + +#: ../../library/calendar.rst:61 +msgid "Identical to setting the :attr:`~Calendar.firstweekday` property." +msgstr "" + +#: ../../library/calendar.rst:65 +msgid "" +"Return an iterator for the week day numbers that will be used for one week. " +"The first value from the iterator will be the same as the value of " +"the :attr:`~Calendar.firstweekday` property." +msgstr "" + +#: ../../library/calendar.rst:72 +msgid "" +"Return an iterator for the month *month* (1--12) in the year *year*. This " +"iterator will return all days (as :class:`datetime.date` objects) for the " +"month and all days before the start of the month or after the end of the " +"month that are required to get a complete week." +msgstr "" + +#: ../../library/calendar.rst:80 +msgid "" +"Return an iterator for the month *month* in the year *year* similar " +"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " +"range. Days returned will simply be day of the month numbers. For the days " +"outside of the specified month, the day number is ``0``." +msgstr "" + +#: ../../library/calendar.rst:88 +msgid "" +"Return an iterator for the month *month* in the year *year* similar " +"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " +"range. Days returned will be tuples consisting of a day of the month number " +"and a week day number." +msgstr "" + +#: ../../library/calendar.rst:96 +msgid "" +"Return an iterator for the month *month* in the year *year* similar " +"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " +"range. Days returned will be tuples consisting of a year, a month and a day " +"of the month numbers." +msgstr "" + +#: ../../library/calendar.rst:106 +msgid "" +"Return an iterator for the month *month* in the year *year* similar " +"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " +"range. Days returned will be tuples consisting of a year, a month, a day of " +"the month, and a day of the week numbers." +msgstr "" + +#: ../../library/calendar.rst:116 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven :class:`datetime.date` objects." +msgstr "" + +#: ../../library/calendar.rst:122 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." +msgstr "" + +#: ../../library/calendar.rst:129 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven day numbers." +msgstr "" + +#: ../../library/calendar.rst:135 +msgid "" +"Return the data for the specified year ready for formatting. The return " +"value is a list of month rows. Each month row contains up to *width* months " +"(defaulting to 3). Each month contains between 4 and 6 weeks and each week " +"contains 1--7 days. Days are :class:`datetime.date` objects." +msgstr "" + +#: ../../library/calendar.rst:143 +msgid "" +"Return the data for the specified year ready for formatting (similar " +"to :meth:`yeardatescalendar`). Entries in the week lists are tuples of day " +"numbers and weekday numbers. Day numbers outside this month are zero." +msgstr "" + +#: ../../library/calendar.rst:150 +msgid "" +"Return the data for the specified year ready for formatting (similar " +"to :meth:`yeardatescalendar`). Entries in the week lists are day numbers. " +"Day numbers outside this month are zero." +msgstr "" + +#: ../../library/calendar.rst:157 +msgid "This class can be used to generate plain text calendars." +msgstr "" + +#: ../../library/calendar.rst:159 +msgid ":class:`TextCalendar` instances have the following methods:" +msgstr "" + +#: ../../library/calendar.rst:164 +msgid "" +"Return a string representing a single day formatted with the given *width*. " +"If *theday* is ``0``, return a string of spaces of the specified width, " +"representing an empty day. The *weekday* parameter is unused." +msgstr "" + +#: ../../library/calendar.rst:171 +msgid "" +"Return a single week in a string with no newline. If *w* is provided, it " +"specifies the width of the date columns, which are centered. Depends on the " +"first weekday as specified in the constructor or set by " +"the :meth:`setfirstweekday` method." +msgstr "" + +#: ../../library/calendar.rst:179 +msgid "" +"Return a string representing the name of a single weekday formatted to the " +"specified *width*. The *weekday* parameter is an integer representing the " +"day of the week, where ``0`` is Monday and ``6`` is Sunday." +msgstr "" + +#: ../../library/calendar.rst:186 +msgid "" +"Return a string containing the header row of weekday names, formatted with " +"the given *width* for each column. The names depend on the locale settings " +"and are padded to the specified width." +msgstr "" + +#: ../../library/calendar.rst:193 +msgid "" +"Return a month's calendar in a multi-line string. If *w* is provided, it " +"specifies the width of the date columns, which are centered. If *l* is " +"given, it specifies the number of lines that each week will use. Depends on " +"the first weekday as specified in the constructor or set by " +"the :meth:`setfirstweekday` method." +msgstr "" + +#: ../../library/calendar.rst:202 +msgid "" +"Return a string representing the month's name centered within the specified " +"*width*. If *withyear* is ``True``, include the year in the output. The " +"*theyear* and *themonth* parameters specify the year and month for the name " +"to be formatted respectively." +msgstr "" + +#: ../../library/calendar.rst:210 +msgid "Print a month's calendar as returned by :meth:`formatmonth`." +msgstr "" + +#: ../../library/calendar.rst:215 +msgid "" +"Return a *m*-column calendar for an entire year as a multi-line string. " +"Optional parameters *w*, *l*, and *c* are for date column width, lines per " +"week, and number of spaces between month columns, respectively. Depends on " +"the first weekday as specified in the constructor or set by " +"the :meth:`setfirstweekday` method. The earliest year for which a calendar " +"can be generated is platform-dependent." +msgstr "" + +#: ../../library/calendar.rst:225 +msgid "" +"Print the calendar for an entire year as returned by :meth:`formatyear`." +msgstr "" + +#: ../../library/calendar.rst:230 +msgid "This class can be used to generate HTML calendars." +msgstr "" + +#: ../../library/calendar.rst:233 +msgid ":class:`!HTMLCalendar` instances have the following methods:" +msgstr "" + +#: ../../library/calendar.rst:237 +msgid "" +"Return a month's calendar as an HTML table. If *withyear* is true the year " +"will be included in the header, otherwise just the month name will be used." +msgstr "" + +#: ../../library/calendar.rst:244 +msgid "" +"Return a year's calendar as an HTML table. *width* (defaulting to 3) " +"specifies the number of months per row." +msgstr "" + +#: ../../library/calendar.rst:250 +msgid "" +"Return a year's calendar as a complete HTML page. *width* (defaulting to 3) " +"specifies the number of months per row. *css* is the name for the cascading " +"style sheet to be used. :const:`None` can be passed if no style sheet should " +"be used. *encoding* specifies the encoding to be used for the output " +"(defaulting to the system default encoding)." +msgstr "" + +#: ../../library/calendar.rst:259 +msgid "" +"Return a month name as an HTML table row. If *withyear* is true the year " +"will be included in the row, otherwise just the month name will be used." +msgstr "" + +#: ../../library/calendar.rst:264 +msgid "" +":class:`!HTMLCalendar` has the following attributes you can override to " +"customize the CSS classes used by the calendar:" +msgstr "" + +#: ../../library/calendar.rst:269 +msgid "" +"A list of CSS classes used for each weekday. The default class list is::" +msgstr "" + +#: ../../library/calendar.rst:271 +msgid "" +"cssclasses = [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\", \"sun\"]" +msgstr "" + +#: ../../library/calendar.rst:273 +msgid "more styles can be added for each day::" +msgstr "" + +#: ../../library/calendar.rst:275 +msgid "" +"cssclasses = [\"mon text-bold\", \"tue\", \"wed\", \"thu\", \"fri\", " +"\"sat\", \"sun red\"]" +msgstr "" + +#: ../../library/calendar.rst:277 +msgid "Note that the length of this list must be seven items." +msgstr "" + +#: ../../library/calendar.rst:282 +msgid "The CSS class for a weekday occurring in the previous or coming month." +msgstr "" + +#: ../../library/calendar.rst:289 +msgid "" +"A list of CSS classes used for weekday names in the header row. The default " +"is the same as :attr:`cssclasses`." +msgstr "" + +#: ../../library/calendar.rst:297 +msgid "" +"The month's head CSS class (used by :meth:`formatmonthname`). The default " +"value is ``\"month\"``." +msgstr "" + +#: ../../library/calendar.rst:305 +msgid "" +"The CSS class for the whole month's table (used by :meth:`formatmonth`). The " +"default value is ``\"month\"``." +msgstr "" + +#: ../../library/calendar.rst:313 +msgid "" +"The CSS class for the whole year's table of tables (used " +"by :meth:`formatyear`). The default value is ``\"year\"``." +msgstr "" + +#: ../../library/calendar.rst:321 +msgid "" +"The CSS class for the table head for the whole year (used " +"by :meth:`formatyear`). The default value is ``\"year\"``." +msgstr "" + +#: ../../library/calendar.rst:327 +msgid "" +"Note that although the naming for the above described class attributes is " +"singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " +"single CSS class with a space separated list of CSS classes, for example::" +msgstr "" + +#: ../../library/calendar.rst:331 +msgid "\"text-bold text-red\"" +msgstr "" + +#: ../../library/calendar.rst:333 +msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" +msgstr "" + +#: ../../library/calendar.rst:335 +msgid "" +"class CustomHTMLCal(calendar.HTMLCalendar):\n" +" cssclasses = [style + \" text-nowrap\" for style in\n" +" calendar.HTMLCalendar.cssclasses]\n" +" cssclass_month_head = \"text-center month-head\"\n" +" cssclass_month = \"text-center month\"\n" +" cssclass_year = \"text-italic lead\"" +msgstr "" + +#: ../../library/calendar.rst:345 +msgid "" +"This subclass of :class:`TextCalendar` can be passed a locale name in the " +"constructor and will return month and weekday names in the specified locale." +msgstr "" + +#: ../../library/calendar.rst:351 +msgid "" +"This subclass of :class:`HTMLCalendar` can be passed a locale name in the " +"constructor and will return month and weekday names in the specified locale." +msgstr "" + +#: ../../library/calendar.rst:357 +msgid "" +"The constructor, :meth:`!formatweekday` and :meth:`!formatmonthname` methods " +"of these two classes temporarily change the ``LC_TIME`` locale to the given " +"*locale*. Because the current locale is a process-wide setting, they are not " +"thread-safe." +msgstr "" + +#: ../../library/calendar.rst:363 +msgid "For simple text calendars this module provides the following functions." +msgstr "" + +#: ../../library/calendar.rst:367 +msgid "" +"Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The " +"values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, " +"and :const:`SUNDAY` are provided for convenience. For example, to set the " +"first weekday to Sunday::" +msgstr "" + +#: ../../library/calendar.rst:372 +msgid "" +"import calendar\n" +"calendar.setfirstweekday(calendar.SUNDAY)" +msgstr "" + +#: ../../library/calendar.rst:378 +msgid "Returns the current setting for the weekday to start each week." +msgstr "" + +#: ../../library/calendar.rst:383 +msgid "" +"Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." +msgstr "" + +#: ../../library/calendar.rst:388 +msgid "" +"Returns the number of leap years in the range from *y1* to *y2* (exclusive), " +"where *y1* and *y2* are years." +msgstr "" + +#: ../../library/calendar.rst:391 +msgid "This function works for ranges spanning a century change." +msgstr "" + +#: ../../library/calendar.rst:396 +msgid "" +"Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " +"*month* (``1``--``12``), *day* (``1``--``31``)." +msgstr "" + +#: ../../library/calendar.rst:402 +msgid "" +"Return a header containing abbreviated weekday names. *n* specifies the " +"width in characters for one weekday." +msgstr "" + +#: ../../library/calendar.rst:408 +msgid "" +"Returns weekday of first day of the month and number of days in month, for " +"the specified *year* and *month*." +msgstr "" + +#: ../../library/calendar.rst:414 +msgid "" +"Returns a matrix representing a month's calendar. Each row represents a " +"week; days outside of the month are represented by zeros. Each week begins " +"with Monday unless set by :func:`setfirstweekday`." +msgstr "" + +#: ../../library/calendar.rst:421 +msgid "Prints a month's calendar as returned by :func:`month`." +msgstr "" + +#: ../../library/calendar.rst:426 +msgid "" +"Returns a month's calendar in a multi-line string using " +"the :meth:`~TextCalendar.formatmonth` of the :class:`TextCalendar` class." +msgstr "" + +#: ../../library/calendar.rst:432 +msgid "" +"Prints the calendar for an entire year as returned by :func:`calendar`." +msgstr "" + +#: ../../library/calendar.rst:437 +msgid "" +"Returns a 3-column calendar for an entire year as a multi-line string using " +"the :meth:`~TextCalendar.formatyear` of the :class:`TextCalendar` class." +msgstr "" + +#: ../../library/calendar.rst:443 +msgid "" +"An unrelated but handy function that takes a time tuple such as returned by " +"the :func:`~time.gmtime` function in the :mod:`time` module, and returns the " +"corresponding Unix timestamp value, assuming an epoch of 1970, and the POSIX " +"encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " +"inverse." +msgstr "" + +#: ../../library/calendar.rst:450 +msgid "The :mod:`calendar` module exports the following data attributes:" +msgstr "" + +#: ../../library/calendar.rst:454 +msgid "" +"A sequence that represents the days of the week in the current locale, where " +"Monday is day number 0." +msgstr "" + +#: ../../library/calendar.rst:464 +msgid "" +"A sequence that represents the abbreviated days of the week in the current " +"locale, where Mon is day number 0." +msgstr "" + +#: ../../library/calendar.rst:479 +msgid "" +"Aliases for the days of the week, where ``MONDAY`` is ``0`` and ``SUNDAY`` " +"is ``6``." +msgstr "" + +#: ../../library/calendar.rst:487 +msgid "" +"Enumeration defining days of the week as integer constants. The members of " +"this enumeration are exported to the module scope as :data:`MONDAY` " +"through :data:`SUNDAY`." +msgstr "" + +#: ../../library/calendar.rst:496 +msgid "" +"A sequence that represents the months of the year in the current locale. " +"This follows normal convention of January being month number 1, so it has a " +"length of 13 and ``month_name[0]`` is the empty string." +msgstr "" + +#: ../../library/calendar.rst:507 +msgid "" +"A sequence that represents the abbreviated months of the year in the current " +"locale. This follows normal convention of January being month number 1, so " +"it has a length of 13 and ``month_abbr[0]`` is the empty string." +msgstr "" + +#: ../../library/calendar.rst:528 +msgid "" +"Aliases for the months of the year, where ``JANUARY`` is ``1`` and " +"``DECEMBER`` is ``12``." +msgstr "" + +#: ../../library/calendar.rst:536 +msgid "" +"Enumeration defining months of the year as integer constants. The members of " +"this enumeration are exported to the module scope as :data:`JANUARY` " +"through :data:`DECEMBER`." +msgstr "" + +#: ../../library/calendar.rst:543 +msgid "The :mod:`calendar` module defines the following exceptions:" +msgstr "" + +#: ../../library/calendar.rst:547 +msgid "" +"A subclass of :exc:`ValueError`, raised when the given month number is " +"outside of the range 1-12 (inclusive)." +msgstr "" + +#: ../../library/calendar.rst:552 +msgid "The invalid month number." +msgstr "" + +#: ../../library/calendar.rst:557 +msgid "" +"A subclass of :exc:`ValueError`, raised when the given weekday number is " +"outside of the range 0-6 (inclusive)." +msgstr "" + +#: ../../library/calendar.rst:562 +msgid "The invalid weekday number." +msgstr "" + +#: ../../library/calendar.rst:567 +msgid "Module :mod:`datetime`" +msgstr "" + +#: ../../library/calendar.rst:568 +msgid "" +"Object-oriented interface to dates and times with similar functionality to " +"the :mod:`time` module." +msgstr "" + +#: ../../library/calendar.rst:571 +msgid "Module :mod:`time`" +msgstr "" + +#: ../../library/calendar.rst:572 +msgid "Low-level time related functions." +msgstr "" + +#: ../../library/calendar.rst:578 +msgid "Command-line usage" +msgstr "" + +#: ../../library/calendar.rst:582 +msgid "" +"The :mod:`calendar` module can be executed as a script from the command line " +"to interactively print a calendar." +msgstr "" + +#: ../../library/calendar.rst:585 +msgid "" +"python -m calendar [-h] [-L LOCALE] [-e ENCODING] [-t {text,html}]\n" +" [-w WIDTH] [-l LINES] [-s SPACING] [-m MONTHS] [-c CSS]\n" +" [-f FIRST_WEEKDAY] [year] [month]" +msgstr "" + +#: ../../library/calendar.rst:592 +msgid "For example, to print a calendar for the year 2000:" +msgstr "" + +#: ../../library/calendar.rst:594 +msgid "" +"$ python -m calendar 2000\n" +" 2000\n" +"\n" +" January February March\n" +"Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\n" +" 1 2 1 2 3 4 5 6 1 2 3 4 5\n" +" 3 4 5 6 7 8 9 7 8 9 10 11 12 13 6 7 8 9 10 11 12\n" +"10 11 12 13 14 15 16 14 15 16 17 18 19 20 13 14 15 16 17 18 19\n" +"17 18 19 20 21 22 23 21 22 23 24 25 26 27 20 21 22 23 24 25 26\n" +"24 25 26 27 28 29 30 28 29 27 28 29 30 31\n" +"31\n" +"\n" +" April May June\n" +"Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\n" +" 1 2 1 2 3 4 5 6 7 1 2 3 4\n" +" 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11\n" +"10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18\n" +"17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25\n" +"24 25 26 27 28 29 30 29 30 31 26 27 28 29 30\n" +"\n" +" July August September\n" +"Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\n" +" 1 2 1 2 3 4 5 6 1 2 3\n" +" 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10\n" +"10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17\n" +"17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24\n" +"24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30\n" +"31\n" +"\n" +" October November December\n" +"Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\n" +" 1 1 2 3 4 5 1 2 3\n" +" 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10\n" +" 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17\n" +"16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24\n" +"23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31\n" +"30 31" +msgstr "" + +#: ../../library/calendar.rst:635 +msgid "The following options are accepted:" +msgstr "" + +#: ../../library/calendar.rst:642 +msgid "Show the help message and exit." +msgstr "" + +#: ../../library/calendar.rst:647 +msgid "The locale to use for month and weekday names. Defaults to English." +msgstr "" + +#: ../../library/calendar.rst:653 +msgid "" +"The encoding to use for output. :option:`--encoding` is required " +"if :option:`--locale` is set." +msgstr "" + +#: ../../library/calendar.rst:659 +msgid "Print the calendar to the terminal as text, or as an HTML document." +msgstr "" + +#: ../../library/calendar.rst:665 +msgid "" +"The weekday to start each week. Must be a number between 0 (Monday) and 6 " +"(Sunday). Defaults to 0." +msgstr "" + +#: ../../library/calendar.rst:673 +msgid "The year to print the calendar for. Defaults to the current year." +msgstr "" + +#: ../../library/calendar.rst:679 +msgid "" +"The month of the specified :option:`year` to print the calendar for. Must be " +"a number between 1 and 12, and may only be used in text mode. Defaults to " +"printing a calendar for the full year." +msgstr "" + +#: ../../library/calendar.rst:685 +msgid "*Text-mode options:*" +msgstr "" + +#: ../../library/calendar.rst:689 +msgid "" +"The width of the date column in terminal columns. The date is printed " +"centred in the column. Any value lower than 2 is ignored. Defaults to 2." +msgstr "" + +#: ../../library/calendar.rst:697 +msgid "" +"The number of lines for each week in terminal rows. The date is printed top-" +"aligned. Any value lower than 1 is ignored. Defaults to 1." +msgstr "" + +#: ../../library/calendar.rst:705 +msgid "" +"The space between months in columns. Any value lower than 2 is ignored. " +"Defaults to 6." +msgstr "" + +#: ../../library/calendar.rst:712 +msgid "The number of months printed per row. Defaults to 3." +msgstr "" + +#: ../../library/calendar.rst:715 +msgid "" +"By default, today's date is highlighted in color and can be :ref:`controlled " +"using environment variables `." +msgstr "" + +#: ../../library/calendar.rst:719 +msgid "*HTML-mode options:*" +msgstr "" + +#: ../../library/calendar.rst:723 +msgid "" +"The path of a CSS stylesheet to use for the calendar. This must either be " +"relative to the generated HTML, or an absolute HTTP or ``file:///`` URL." +msgstr "" diff --git a/library/cgi.po b/library/cgi.po new file mode 100644 index 0000000..891d5e7 --- /dev/null +++ b/library/cgi.po @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cgi.rst:2 +msgid ":mod:`!cgi` --- Common Gateway Interface support" +msgstr "" + +#: ../../library/cgi.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/cgi.rst:14 +msgid "" +"A fork of the module on PyPI can be used instead: :pypi:`legacy-cgi`. This " +"is a copy of the cgi module, no longer maintained or supported by the core " +"Python team." +msgstr "" + +#: ../../library/cgi.rst:18 +msgid "" +"The last version of Python that provided the :mod:`!cgi` module was `Python " +"3.12 `_." +msgstr "" diff --git a/library/cgitb.po b/library/cgitb.po new file mode 100644 index 0000000..bf5111b --- /dev/null +++ b/library/cgitb.po @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cgitb.rst:2 +msgid ":mod:`!cgitb` --- Traceback manager for CGI scripts" +msgstr "" + +#: ../../library/cgitb.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/cgitb.rst:14 +msgid "" +"A fork of the module on PyPI can now be used instead: :pypi:`legacy-cgi`. " +"This is a copy of the cgi module, no longer maintained or supported by the " +"core Python team." +msgstr "" + +#: ../../library/cgitb.rst:18 +msgid "" +"The last version of Python that provided the :mod:`!cgitb` module was " +"`Python 3.12 `_." +msgstr "" diff --git a/library/chunk.po b/library/chunk.po new file mode 100644 index 0000000..2b32f7b --- /dev/null +++ b/library/chunk.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/chunk.rst:2 +msgid ":mod:`!chunk` --- Read IFF chunked data" +msgstr "" + +#: ../../library/chunk.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/chunk.rst:14 +msgid "" +"The last version of Python that provided the :mod:`!chunk` module was " +"`Python 3.12 `_." +msgstr "" diff --git a/library/cmath.po b/library/cmath.po new file mode 100644 index 0000000..7ab3844 --- /dev/null +++ b/library/cmath.po @@ -0,0 +1,640 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cmath.rst:2 +msgid ":mod:`!cmath` --- Mathematical functions for complex numbers" +msgstr "" + +#: ../../library/cmath.rst:9 +msgid "" +"This module provides access to mathematical functions for complex numbers. " +"The functions in this module accept integers, floating-point numbers or " +"complex numbers as arguments. They will also accept any Python object that " +"has either a :meth:`~object.__complex__` or a :meth:`~object.__float__` " +"method: these methods are used to convert the object to a complex or " +"floating-point number, respectively, and the function is then applied to the " +"result of the conversion." +msgstr "" + +#: ../../library/cmath.rst:18 +msgid "" +"For functions involving branch cuts, we have the problem of deciding how to " +"define those functions on the cut itself. Following Kahan's \"Branch cuts " +"for complex elementary functions\" paper, as well as Annex G of C99 and " +"later C standards, we use the sign of zero to distinguish one side of the " +"branch cut from the other: for a branch cut along (a portion of) the real " +"axis we look at the sign of the imaginary part, while for a branch cut along " +"the imaginary axis we look at the sign of the real part." +msgstr "" + +#: ../../library/cmath.rst:26 +msgid "" +"For example, the :func:`cmath.sqrt` function has a branch cut along the " +"negative real axis. An argument of ``-2-0j`` is treated as though it lies " +"*below* the branch cut, and so gives a result on the negative imaginary " +"axis::" +msgstr "" + +#: ../../library/cmath.rst:31 +msgid "" +">>> cmath.sqrt(-2-0j)\n" +"-1.4142135623730951j" +msgstr "" + +#: ../../library/cmath.rst:34 +msgid "" +"But an argument of ``-2+0j`` is treated as though it lies above the branch " +"cut::" +msgstr "" + +#: ../../library/cmath.rst:37 +msgid "" +">>> cmath.sqrt(-2+0j)\n" +"1.4142135623730951j" +msgstr "" + +#: ../../library/cmath.rst:42 +msgid "**Conversions to and from polar coordinates**" +msgstr "" + +#: ../../library/cmath.rst:44 +msgid ":func:`phase(z) `" +msgstr "" + +#: ../../library/cmath.rst:44 +msgid "Return the phase of *z*" +msgstr "" + +#: ../../library/cmath.rst:45 +msgid ":func:`polar(z) `" +msgstr "" + +#: ../../library/cmath.rst:45 +msgid "Return the representation of *z* in polar coordinates" +msgstr "" + +#: ../../library/cmath.rst:46 +msgid ":func:`rect(r, phi) `" +msgstr "" + +#: ../../library/cmath.rst:46 +msgid "Return the complex number *z* with polar coordinates *r* and *phi*" +msgstr "" + +#: ../../library/cmath.rst:48 +msgid "**Power and logarithmic functions**" +msgstr "" + +#: ../../library/cmath.rst:50 +msgid ":func:`exp(z) `" +msgstr "" + +#: ../../library/cmath.rst:50 +msgid "Return *e* raised to the power *z*" +msgstr "" + +#: ../../library/cmath.rst:51 +msgid ":func:`log(z[, base]) `" +msgstr "" + +#: ../../library/cmath.rst:51 +msgid "Return the logarithm of *z* to the given *base* (*e* by default)" +msgstr "" + +#: ../../library/cmath.rst:52 +msgid ":func:`log10(z) `" +msgstr "" + +#: ../../library/cmath.rst:52 +msgid "Return the base-10 logarithm of *z*" +msgstr "" + +#: ../../library/cmath.rst:53 +msgid ":func:`sqrt(z) `" +msgstr "" + +#: ../../library/cmath.rst:53 +msgid "Return the square root of *z*" +msgstr "" + +#: ../../library/cmath.rst:55 +msgid "**Trigonometric functions**" +msgstr "" + +#: ../../library/cmath.rst:57 +msgid ":func:`acos(z) `" +msgstr "" + +#: ../../library/cmath.rst:57 +msgid "Return the arc cosine of *z*" +msgstr "" + +#: ../../library/cmath.rst:58 +msgid ":func:`asin(z) `" +msgstr "" + +#: ../../library/cmath.rst:58 +msgid "Return the arc sine of *z*" +msgstr "" + +#: ../../library/cmath.rst:59 +msgid ":func:`atan(z) `" +msgstr "" + +#: ../../library/cmath.rst:59 +msgid "Return the arc tangent of *z*" +msgstr "" + +#: ../../library/cmath.rst:60 +msgid ":func:`cos(z) `" +msgstr "" + +#: ../../library/cmath.rst:60 +msgid "Return the cosine of *z*" +msgstr "" + +#: ../../library/cmath.rst:61 +msgid ":func:`sin(z) `" +msgstr "" + +#: ../../library/cmath.rst:61 +msgid "Return the sine of *z*" +msgstr "" + +#: ../../library/cmath.rst:62 +msgid ":func:`tan(z) `" +msgstr "" + +#: ../../library/cmath.rst:62 +msgid "Return the tangent of *z*" +msgstr "" + +#: ../../library/cmath.rst:64 +msgid "**Hyperbolic functions**" +msgstr "" + +#: ../../library/cmath.rst:66 +msgid ":func:`acosh(z) `" +msgstr "" + +#: ../../library/cmath.rst:66 +msgid "Return the inverse hyperbolic cosine of *z*" +msgstr "" + +#: ../../library/cmath.rst:67 +msgid ":func:`asinh(z) `" +msgstr "" + +#: ../../library/cmath.rst:67 +msgid "Return the inverse hyperbolic sine of *z*" +msgstr "" + +#: ../../library/cmath.rst:68 +msgid ":func:`atanh(z) `" +msgstr "" + +#: ../../library/cmath.rst:68 +msgid "Return the inverse hyperbolic tangent of *z*" +msgstr "" + +#: ../../library/cmath.rst:69 +msgid ":func:`cosh(z) `" +msgstr "" + +#: ../../library/cmath.rst:69 +msgid "Return the hyperbolic cosine of *z*" +msgstr "" + +#: ../../library/cmath.rst:70 +msgid ":func:`sinh(z) `" +msgstr "" + +#: ../../library/cmath.rst:70 +msgid "Return the hyperbolic sine of *z*" +msgstr "" + +#: ../../library/cmath.rst:71 +msgid ":func:`tanh(z) `" +msgstr "" + +#: ../../library/cmath.rst:71 +msgid "Return the hyperbolic tangent of *z*" +msgstr "" + +#: ../../library/cmath.rst:73 +msgid "**Classification functions**" +msgstr "" + +#: ../../library/cmath.rst:75 +msgid ":func:`isfinite(z) `" +msgstr "" + +#: ../../library/cmath.rst:75 +msgid "Check if all components of *z* are finite" +msgstr "" + +#: ../../library/cmath.rst:76 +msgid ":func:`isinf(z) `" +msgstr "" + +#: ../../library/cmath.rst:76 +msgid "Check if any component of *z* is infinite" +msgstr "" + +#: ../../library/cmath.rst:77 +msgid ":func:`isnan(z) `" +msgstr "" + +#: ../../library/cmath.rst:77 +msgid "Check if any component of *z* is a NaN" +msgstr "" + +#: ../../library/cmath.rst:78 +msgid ":func:`isclose(a, b, *, rel_tol, abs_tol) `" +msgstr "" + +#: ../../library/cmath.rst:78 +msgid "Check if the values *a* and *b* are close to each other" +msgstr "" + +#: ../../library/cmath.rst:80 +msgid "**Constants**" +msgstr "" + +#: ../../library/cmath.rst:82 +msgid ":data:`pi`" +msgstr "" + +#: ../../library/cmath.rst:82 +msgid "*π* = 3.141592..." +msgstr "" + +#: ../../library/cmath.rst:83 +msgid ":data:`e`" +msgstr "" + +#: ../../library/cmath.rst:83 +msgid "*e* = 2.718281..." +msgstr "" + +#: ../../library/cmath.rst:84 +msgid ":data:`tau`" +msgstr "" + +#: ../../library/cmath.rst:84 +msgid "*τ* = 2\\ *π* = 6.283185..." +msgstr "" + +#: ../../library/cmath.rst:85 +msgid ":data:`inf`" +msgstr "" + +#: ../../library/cmath.rst:85 +msgid "Positive infinity" +msgstr "" + +#: ../../library/cmath.rst:86 +msgid ":data:`infj`" +msgstr "" + +#: ../../library/cmath.rst:86 +msgid "Pure imaginary infinity" +msgstr "" + +#: ../../library/cmath.rst:87 +msgid ":data:`nan`" +msgstr "" + +#: ../../library/cmath.rst:87 +msgid "\"Not a number\" (NaN)" +msgstr "" + +#: ../../library/cmath.rst:88 +msgid ":data:`nanj`" +msgstr "" + +#: ../../library/cmath.rst:88 +msgid "Pure imaginary NaN" +msgstr "" + +#: ../../library/cmath.rst:93 +msgid "Conversions to and from polar coordinates" +msgstr "" + +#: ../../library/cmath.rst:95 +msgid "" +"A Python complex number ``z`` is stored internally using *rectangular* or " +"*Cartesian* coordinates. It is completely determined by its *real part* " +"``z.real`` and its *imaginary part* ``z.imag``." +msgstr "" + +#: ../../library/cmath.rst:99 +msgid "" +"*Polar coordinates* give an alternative way to represent a complex number. " +"In polar coordinates, a complex number *z* is defined by the modulus *r* and " +"the phase angle *phi*. The modulus *r* is the distance from *z* to the " +"origin, while the phase *phi* is the counterclockwise angle, measured in " +"radians, from the positive x-axis to the line segment that joins the origin " +"to *z*." +msgstr "" + +#: ../../library/cmath.rst:106 +msgid "" +"The following functions can be used to convert from the native rectangular " +"coordinates to polar coordinates and back." +msgstr "" + +#: ../../library/cmath.rst:111 +msgid "" +"Return the phase of *z* (also known as the *argument* of *z*), as a float. " +"``phase(z)`` is equivalent to ``math.atan2(z.imag, z.real)``. The result " +"lies in the range [-\\ *π*, *π*], and the branch cut for this operation lies " +"along the negative real axis. The sign of the result is the same as the " +"sign of ``z.imag``, even when ``z.imag`` is zero::" +msgstr "" + +#: ../../library/cmath.rst:117 +msgid "" +">>> phase(-1+0j)\n" +"3.141592653589793\n" +">>> phase(-1-0j)\n" +"-3.141592653589793" +msgstr "" + +#: ../../library/cmath.rst:125 +msgid "" +"The modulus (absolute value) of a complex number *z* can be computed using " +"the built-in :func:`abs` function. There is no separate :mod:`cmath` module " +"function for this operation." +msgstr "" + +#: ../../library/cmath.rst:132 +msgid "" +"Return the representation of *z* in polar coordinates. Returns a pair ``(r, " +"phi)`` where *r* is the modulus of *z* and *phi* is the phase of *z*. " +"``polar(z)`` is equivalent to ``(abs(z), phase(z))``." +msgstr "" + +#: ../../library/cmath.rst:140 +msgid "" +"Return the complex number *z* with polar coordinates *r* and *phi*. " +"Equivalent to ``complex(r * math.cos(phi), r * math.sin(phi))``." +msgstr "" + +#: ../../library/cmath.rst:145 +msgid "Power and logarithmic functions" +msgstr "" + +#: ../../library/cmath.rst:149 +msgid "" +"Return *e* raised to the power *z*, where *e* is the base of natural " +"logarithms." +msgstr "" + +#: ../../library/cmath.rst:155 +msgid "" +"Return the logarithm of *z* to the given *base*. If the *base* is not " +"specified, returns the natural logarithm of *z*. There is one branch cut, " +"from 0 along the negative real axis to -∞." +msgstr "" + +#: ../../library/cmath.rst:162 +msgid "" +"Return the base-10 logarithm of *z*. This has the same branch cut " +"as :func:`log`." +msgstr "" + +#: ../../library/cmath.rst:168 +msgid "" +"Return the square root of *z*. This has the same branch cut as :func:`log`." +msgstr "" + +#: ../../library/cmath.rst:172 +msgid "Trigonometric functions" +msgstr "" + +#: ../../library/cmath.rst:176 +msgid "" +"Return the arc cosine of *z*. There are two branch cuts: One extends right " +"from 1 along the real axis to ∞. The other extends left from -1 along the " +"real axis to -∞." +msgstr "" + +#: ../../library/cmath.rst:183 +msgid "" +"Return the arc sine of *z*. This has the same branch cuts as :func:`acos`." +msgstr "" + +#: ../../library/cmath.rst:188 +msgid "" +"Return the arc tangent of *z*. There are two branch cuts: One extends from " +"``1j`` along the imaginary axis to ``∞j``. The other extends from ``-1j`` " +"along the imaginary axis to ``-∞j``." +msgstr "" + +#: ../../library/cmath.rst:195 +msgid "Return the cosine of *z*." +msgstr "" + +#: ../../library/cmath.rst:200 +msgid "Return the sine of *z*." +msgstr "" + +#: ../../library/cmath.rst:205 +msgid "Return the tangent of *z*." +msgstr "" + +#: ../../library/cmath.rst:209 +msgid "Hyperbolic functions" +msgstr "" + +#: ../../library/cmath.rst:213 +msgid "" +"Return the inverse hyperbolic cosine of *z*. There is one branch cut, " +"extending left from 1 along the real axis to -∞." +msgstr "" + +#: ../../library/cmath.rst:219 +msgid "" +"Return the inverse hyperbolic sine of *z*. There are two branch cuts: One " +"extends from ``1j`` along the imaginary axis to ``∞j``. The other extends " +"from ``-1j`` along the imaginary axis to ``-∞j``." +msgstr "" + +#: ../../library/cmath.rst:226 +msgid "" +"Return the inverse hyperbolic tangent of *z*. There are two branch cuts: One " +"extends from ``1`` along the real axis to ``∞``. The other extends from " +"``-1`` along the real axis to ``-∞``." +msgstr "" + +#: ../../library/cmath.rst:233 +msgid "Return the hyperbolic cosine of *z*." +msgstr "" + +#: ../../library/cmath.rst:238 +msgid "Return the hyperbolic sine of *z*." +msgstr "" + +#: ../../library/cmath.rst:243 +msgid "Return the hyperbolic tangent of *z*." +msgstr "" + +#: ../../library/cmath.rst:247 +msgid "Classification functions" +msgstr "" + +#: ../../library/cmath.rst:251 +msgid "" +"Return ``True`` if both the real and imaginary parts of *z* are finite, and " +"``False`` otherwise." +msgstr "" + +#: ../../library/cmath.rst:259 +msgid "" +"Return ``True`` if either the real or the imaginary part of *z* is an " +"infinity, and ``False`` otherwise." +msgstr "" + +#: ../../library/cmath.rst:265 +msgid "" +"Return ``True`` if either the real or the imaginary part of *z* is a NaN, " +"and ``False`` otherwise." +msgstr "" + +#: ../../library/cmath.rst:271 +msgid "" +"Return ``True`` if the values *a* and *b* are close to each other and " +"``False`` otherwise." +msgstr "" + +#: ../../library/cmath.rst:274 +msgid "" +"Whether or not two values are considered close is determined according to " +"given absolute and relative tolerances. If no errors occur, the result will " +"be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``." +msgstr "" + +#: ../../library/cmath.rst:278 +msgid "" +"*rel_tol* is the relative tolerance -- it is the maximum allowed difference " +"between *a* and *b*, relative to the larger absolute value of *a* or *b*. " +"For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default " +"tolerance is ``1e-09``, which assures that the two values are the same " +"within about 9 decimal digits. *rel_tol* must be nonnegative and less than " +"``1.0``." +msgstr "" + +#: ../../library/cmath.rst:285 +msgid "" +"*abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be " +"nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed " +"as ``abs(x) <= rel_tol * abs(x)``, which is ``False`` for any ``x`` and " +"rel_tol less than ``1.0``. So add an appropriate positive abs_tol argument " +"to the call." +msgstr "" + +#: ../../library/cmath.rst:291 +msgid "" +"The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " +"handled according to IEEE rules. Specifically, ``NaN`` is not considered " +"close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only " +"considered close to themselves." +msgstr "" + +#: ../../library/cmath.rst:300 +msgid ":pep:`485` -- A function for testing approximate equality" +msgstr "" + +#: ../../library/cmath.rst:304 +msgid "Constants" +msgstr "" + +#: ../../library/cmath.rst:308 +msgid "The mathematical constant *π*, as a float." +msgstr "" + +#: ../../library/cmath.rst:313 +msgid "The mathematical constant *e*, as a float." +msgstr "" + +#: ../../library/cmath.rst:318 +msgid "The mathematical constant *τ*, as a float." +msgstr "" + +#: ../../library/cmath.rst:325 +msgid "Floating-point positive infinity. Equivalent to ``float('inf')``." +msgstr "" + +#: ../../library/cmath.rst:332 +msgid "" +"Complex number with zero real part and positive infinity imaginary part. " +"Equivalent to ``complex(0.0, float('inf'))``." +msgstr "" + +#: ../../library/cmath.rst:340 +msgid "" +"A floating-point \"not a number\" (NaN) value. Equivalent to " +"``float('nan')``." +msgstr "" + +#: ../../library/cmath.rst:348 +msgid "" +"Complex number with zero real part and NaN imaginary part. Equivalent to " +"``complex(0.0, float('nan'))``." +msgstr "" + +#: ../../library/cmath.rst:356 +msgid "" +"Note that the selection of functions is similar, but not identical, to that " +"in module :mod:`math`. The reason for having two modules is that some users " +"aren't interested in complex numbers, and perhaps don't even know what they " +"are. They would rather have ``math.sqrt(-1)`` raise an exception than " +"return a complex number. Also note that the functions defined " +"in :mod:`cmath` always return a complex number, even if the answer can be " +"expressed as a real number (in which case the complex number has an " +"imaginary part of zero)." +msgstr "" + +#: ../../library/cmath.rst:364 +msgid "" +"A note on branch cuts: They are curves along which the given function fails " +"to be continuous. They are a necessary feature of many complex functions. " +"It is assumed that if you need to compute with complex functions, you will " +"understand about branch cuts. Consult almost any (not too elementary) book " +"on complex variables for enlightenment. For information of the proper " +"choice of branch cuts for numerical purposes, a good reference should be the " +"following:" +msgstr "" + +#: ../../library/cmath.rst:374 +msgid "" +"Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " +"nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " +"art in numerical analysis. Clarendon Press (1987) pp165--211." +msgstr "" + +#: ../../library/cmath.rst:354 +msgid "module" +msgstr "" + +#: ../../library/cmath.rst:354 +msgid "math" +msgstr "" diff --git a/library/cmd.po b/library/cmd.po new file mode 100644 index 0000000..114dc61 --- /dev/null +++ b/library/cmd.po @@ -0,0 +1,482 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cmd.rst:2 +msgid ":mod:`!cmd` --- Support for line-oriented command interpreters" +msgstr "" + +#: ../../library/cmd.rst:9 +msgid "**Source code:** :source:`Lib/cmd.py`" +msgstr "" + +#: ../../library/cmd.rst:13 +msgid "" +"The :class:`Cmd` class provides a simple framework for writing line-oriented " +"command interpreters. These are often useful for test harnesses, " +"administrative tools, and prototypes that will later be wrapped in a more " +"sophisticated interface." +msgstr "" + +#: ../../library/cmd.rst:20 +msgid "" +"A :class:`Cmd` instance or subclass instance is a line-oriented interpreter " +"framework. There is no good reason to instantiate :class:`Cmd` itself; " +"rather, it's useful as a superclass of an interpreter class you define " +"yourself in order to inherit :class:`Cmd`'s methods and encapsulate action " +"methods." +msgstr "" + +#: ../../library/cmd.rst:25 +msgid "" +"The optional argument *completekey* is the :mod:`readline` name of a " +"completion key; it defaults to :kbd:`Tab`. If *completekey* is " +"not :const:`None` and :mod:`readline` is available, command completion is " +"done automatically." +msgstr "" + +#: ../../library/cmd.rst:29 +msgid "" +"The default, ``'tab'``, is treated specially, so that it refers to " +"the :kbd:`Tab` key on every :data:`readline.backend`. Specifically, " +"if :data:`readline.backend` is ``editline``, ``Cmd`` will use ``'^I'`` " +"instead of ``'tab'``. Note that other values are not treated this way, and " +"might only work with a specific backend." +msgstr "" + +#: ../../library/cmd.rst:36 +msgid "" +"The optional arguments *stdin* and *stdout* specify the input and output " +"file objects that the Cmd instance or subclass instance will use for input " +"and output. If not specified, they will default to :data:`sys.stdin` " +"and :data:`sys.stdout`." +msgstr "" + +#: ../../library/cmd.rst:41 +msgid "" +"If you want a given *stdin* to be used, make sure to set the " +"instance's :attr:`use_rawinput` attribute to ``False``, otherwise *stdin* " +"will be ignored." +msgstr "" + +#: ../../library/cmd.rst:45 +msgid "``completekey='tab'`` is replaced by ``'^I'`` for ``editline``." +msgstr "" + +#: ../../library/cmd.rst:52 +msgid "Cmd Objects" +msgstr "" + +#: ../../library/cmd.rst:54 +msgid "A :class:`Cmd` instance has the following methods:" +msgstr "" + +#: ../../library/cmd.rst:59 +msgid "" +"Repeatedly issue a prompt, accept input, parse an initial prefix off the " +"received input, and dispatch to action methods, passing them the remainder " +"of the line as argument." +msgstr "" + +#: ../../library/cmd.rst:63 +msgid "" +"The optional argument is a banner or intro string to be issued before the " +"first prompt (this overrides the :attr:`intro` class attribute)." +msgstr "" + +#: ../../library/cmd.rst:66 +msgid "" +"If the :mod:`readline` module is loaded, input will automatically " +"inherit :program:`bash`\\ -like history-list editing (e.g. :kbd:`Control-P` " +"scrolls back to the last command, :kbd:`Control-N` forward to the next " +"one, :kbd:`Control-F` moves the cursor to the right non-" +"destructively, :kbd:`Control-B` moves the cursor to the left non-" +"destructively, etc.)." +msgstr "" + +#: ../../library/cmd.rst:72 +msgid "An end-of-file on input is passed back as the string ``'EOF'``." +msgstr "" + +#: ../../library/cmd.rst:78 +msgid "" +"An interpreter instance will recognize a command name ``foo`` if and only if " +"it has a method :meth:`!do_foo`. As a special case, a line beginning with " +"the character ``'?'`` is dispatched to the method :meth:`do_help`. As " +"another special case, a line beginning with the character ``'!'`` is " +"dispatched to the method :meth:`!do_shell` (if such a method is defined)." +msgstr "" + +#: ../../library/cmd.rst:84 +msgid "" +"This method will return when the :meth:`postcmd` method returns a true " +"value. The *stop* argument to :meth:`postcmd` is the return value from the " +"command's corresponding :meth:`!do_\\*` method." +msgstr "" + +#: ../../library/cmd.rst:88 +msgid "" +"If completion is enabled, completing commands will be done automatically, " +"and completing of commands args is done by calling :meth:`!complete_foo` " +"with arguments *text*, *line*, *begidx*, and *endidx*. *text* is the string " +"prefix we are attempting to match: all returned matches must begin with it. " +"*line* is the current input line with leading whitespace removed, *begidx* " +"and *endidx* are the beginning and ending indexes of the prefix text, which " +"could be used to provide different completion depending upon which position " +"the argument is in." +msgstr "" + +#: ../../library/cmd.rst:99 +msgid "" +"All subclasses of :class:`Cmd` inherit a predefined :meth:`!do_help`. This " +"method, called with an argument ``'bar'``, invokes the corresponding " +"method :meth:`!help_bar`, and if that is not present, prints the docstring " +"of :meth:`!do_bar`, if available. With no argument, :meth:`!do_help` lists " +"all available help topics (that is, all commands with corresponding :meth:`!" +"help_\\*` methods or commands that have docstrings), and also lists any " +"undocumented commands." +msgstr "" + +#: ../../library/cmd.rst:110 +msgid "" +"Interpret the argument as though it had been typed in response to the " +"prompt. This may be overridden, but should not normally need to be; see " +"the :meth:`precmd` and :meth:`postcmd` methods for useful execution hooks. " +"The return value is a flag indicating whether interpretation of commands by " +"the interpreter should stop. If there is a :meth:`!do_\\*` method for the " +"command *str*, the return value of that method is returned, otherwise the " +"return value from the :meth:`default` method is returned." +msgstr "" + +#: ../../library/cmd.rst:121 +msgid "" +"Method called when an empty line is entered in response to the prompt. If " +"this method is not overridden, it repeats the last nonempty command entered." +msgstr "" + +#: ../../library/cmd.rst:127 +msgid "" +"Method called on an input line when the command prefix is not recognized. If " +"this method is not overridden, it prints an error message and returns." +msgstr "" + +#: ../../library/cmd.rst:133 +msgid "" +"Method called to complete an input line when no command-specific :meth:`!" +"complete_\\*` method is available. By default, it returns an empty list." +msgstr "" + +#: ../../library/cmd.rst:139 +msgid "" +"Method called to display a list of strings as a compact set of columns. Each " +"column is only as wide as necessary. Columns are separated by two spaces for " +"readability." +msgstr "" + +#: ../../library/cmd.rst:146 +msgid "" +"Hook method executed just before the command line *line* is interpreted, but " +"after the input prompt is generated and issued. This method is a stub " +"in :class:`Cmd`; it exists to be overridden by subclasses. The return value " +"is used as the command which will be executed by the :meth:`onecmd` method; " +"the :meth:`precmd` implementation may re-write the command or simply return " +"*line* unchanged." +msgstr "" + +#: ../../library/cmd.rst:156 +msgid "" +"Hook method executed just after a command dispatch is finished. This method " +"is a stub in :class:`Cmd`; it exists to be overridden by subclasses. *line* " +"is the command line which was executed, and *stop* is a flag which indicates " +"whether execution will be terminated after the call to :meth:`postcmd`; this " +"will be the return value of the :meth:`onecmd` method. The return value of " +"this method will be used as the new value for the internal flag which " +"corresponds to *stop*; returning false will cause interpretation to continue." +msgstr "" + +#: ../../library/cmd.rst:167 +msgid "" +"Hook method executed once when :meth:`cmdloop` is called. This method is a " +"stub in :class:`Cmd`; it exists to be overridden by subclasses." +msgstr "" + +#: ../../library/cmd.rst:173 +msgid "" +"Hook method executed once when :meth:`cmdloop` is about to return. This " +"method is a stub in :class:`Cmd`; it exists to be overridden by subclasses." +msgstr "" + +#: ../../library/cmd.rst:177 +msgid "" +"Instances of :class:`Cmd` subclasses have some public instance variables:" +msgstr "" + +#: ../../library/cmd.rst:181 +msgid "The prompt issued to solicit input." +msgstr "" + +#: ../../library/cmd.rst:186 +msgid "The string of characters accepted for the command prefix." +msgstr "" + +#: ../../library/cmd.rst:191 +msgid "The last nonempty command prefix seen." +msgstr "" + +#: ../../library/cmd.rst:196 +msgid "" +"A list of queued input lines. The cmdqueue list is checked " +"in :meth:`cmdloop` when new input is needed; if it is nonempty, its elements " +"will be processed in order, as if entered at the prompt." +msgstr "" + +#: ../../library/cmd.rst:203 +msgid "" +"A string to issue as an intro or banner. May be overridden by giving " +"the :meth:`cmdloop` method an argument." +msgstr "" + +#: ../../library/cmd.rst:209 +msgid "" +"The header to issue if the help output has a section for documented commands." +msgstr "" + +#: ../../library/cmd.rst:214 +msgid "" +"The header to issue if the help output has a section for miscellaneous help " +"topics (that is, there are :meth:`!help_\\*` methods without " +"corresponding :meth:`!do_\\*` methods)." +msgstr "" + +#: ../../library/cmd.rst:221 +msgid "" +"The header to issue if the help output has a section for undocumented " +"commands (that is, there are :meth:`!do_\\*` methods without " +"corresponding :meth:`!help_\\*` methods)." +msgstr "" + +#: ../../library/cmd.rst:228 +msgid "" +"The character used to draw separator lines under the help-message headers. " +"If empty, no ruler line is drawn. It defaults to ``'='``." +msgstr "" + +#: ../../library/cmd.rst:234 +msgid "" +"A flag, defaulting to true. If true, :meth:`cmdloop` uses :func:`input` to " +"display a prompt and read the next command; if " +"false, :data:`sys.stdout.write() ` " +"and :data:`sys.stdin.readline() ` are used. (This means that by " +"importing :mod:`readline`, on systems that support it, the interpreter will " +"automatically support :program:`Emacs`\\ -like line editing and command-" +"history keystrokes.)" +msgstr "" + +#: ../../library/cmd.rst:244 +msgid "Cmd Example" +msgstr "" + +#: ../../library/cmd.rst:248 +msgid "" +"The :mod:`cmd` module is mainly useful for building custom shells that let a " +"user work with a program interactively." +msgstr "" + +#: ../../library/cmd.rst:251 +msgid "" +"This section presents a simple example of how to build a shell around a few " +"of the commands in the :mod:`turtle` module." +msgstr "" + +#: ../../library/cmd.rst:254 +msgid "" +"Basic turtle commands such as :meth:`~turtle.forward` are added to " +"a :class:`Cmd` subclass with method named :meth:`!do_forward`. The argument " +"is converted to a number and dispatched to the turtle module. The docstring " +"is used in the help utility provided by the shell." +msgstr "" + +#: ../../library/cmd.rst:259 +msgid "" +"The example also includes a basic record and playback facility implemented " +"with the :meth:`~Cmd.precmd` method which is responsible for converting the " +"input to lowercase and writing the commands to a file. The :meth:`!" +"do_playback` method reads the file and adds the recorded commands to " +"the :attr:`~Cmd.cmdqueue` for immediate playback::" +msgstr "" + +#: ../../library/cmd.rst:265 +msgid "" +"import cmd, sys\n" +"from turtle import *\n" +"\n" +"class TurtleShell(cmd.Cmd):\n" +" intro = 'Welcome to the turtle shell. Type help or ? to list commands." +"\\n'\n" +" prompt = '(turtle) '\n" +" file = None\n" +"\n" +" # ----- basic turtle commands -----\n" +" def do_forward(self, arg):\n" +" 'Move the turtle forward by the specified distance: FORWARD 10'\n" +" forward(*parse(arg))\n" +" def do_right(self, arg):\n" +" 'Turn turtle right by given number of degrees: RIGHT 20'\n" +" right(*parse(arg))\n" +" def do_left(self, arg):\n" +" 'Turn turtle left by given number of degrees: LEFT 90'\n" +" left(*parse(arg))\n" +" def do_goto(self, arg):\n" +" 'Move turtle to an absolute position with changing orientation. " +"GOTO 100 200'\n" +" goto(*parse(arg))\n" +" def do_home(self, arg):\n" +" 'Return turtle to the home position: HOME'\n" +" home()\n" +" def do_circle(self, arg):\n" +" 'Draw circle with given radius an options extent and steps: CIRCLE " +"50'\n" +" circle(*parse(arg))\n" +" def do_position(self, arg):\n" +" 'Print the current turtle position: POSITION'\n" +" print('Current position is %d %d\\n' % position())\n" +" def do_heading(self, arg):\n" +" 'Print the current turtle heading in degrees: HEADING'\n" +" print('Current heading is %d\\n' % (heading(),))\n" +" def do_color(self, arg):\n" +" 'Set the color: COLOR BLUE'\n" +" color(arg.lower())\n" +" def do_undo(self, arg):\n" +" 'Undo (repeatedly) the last turtle action(s): UNDO'\n" +" def do_reset(self, arg):\n" +" 'Clear the screen and return turtle to center: RESET'\n" +" reset()\n" +" def do_bye(self, arg):\n" +" 'Stop recording, close the turtle window, and exit: BYE'\n" +" print('Thank you for using Turtle')\n" +" self.close()\n" +" bye()\n" +" return True\n" +"\n" +" # ----- record and playback -----\n" +" def do_record(self, arg):\n" +" 'Save future commands to filename: RECORD rose.cmd'\n" +" self.file = open(arg, 'w')\n" +" def do_playback(self, arg):\n" +" 'Playback commands from a file: PLAYBACK rose.cmd'\n" +" self.close()\n" +" with open(arg) as f:\n" +" self.cmdqueue.extend(f.read().splitlines())\n" +" def precmd(self, line):\n" +" line = line.lower()\n" +" if self.file and 'playback' not in line:\n" +" print(line, file=self.file)\n" +" return line\n" +" def close(self):\n" +" if self.file:\n" +" self.file.close()\n" +" self.file = None\n" +"\n" +"def parse(arg):\n" +" 'Convert a series of zero or more numbers to an argument tuple'\n" +" return tuple(map(int, arg.split()))\n" +"\n" +"if __name__ == '__main__':\n" +" TurtleShell().cmdloop()" +msgstr "" + +#: ../../library/cmd.rst:340 +msgid "" +"Here is a sample session with the turtle shell showing the help functions, " +"using blank lines to repeat commands, and the simple record and playback " +"facility:" +msgstr "" + +#: ../../library/cmd.rst:343 +msgid "" +"Welcome to the turtle shell. Type help or ? to list commands.\n" +"\n" +"(turtle) ?\n" +"\n" +"Documented commands (type help ):\n" +"========================================\n" +"bye color goto home playback record right\n" +"circle forward heading left position reset undo\n" +"\n" +"(turtle) help forward\n" +"Move the turtle forward by the specified distance: FORWARD 10\n" +"(turtle) record spiral.cmd\n" +"(turtle) position\n" +"Current position is 0 0\n" +"\n" +"(turtle) heading\n" +"Current heading is 0\n" +"\n" +"(turtle) reset\n" +"(turtle) circle 20\n" +"(turtle) right 30\n" +"(turtle) circle 40\n" +"(turtle) right 30\n" +"(turtle) circle 60\n" +"(turtle) right 30\n" +"(turtle) circle 80\n" +"(turtle) right 30\n" +"(turtle) circle 100\n" +"(turtle) right 30\n" +"(turtle) circle 120\n" +"(turtle) right 30\n" +"(turtle) circle 120\n" +"(turtle) heading\n" +"Current heading is 180\n" +"\n" +"(turtle) forward 100\n" +"(turtle)\n" +"(turtle) right 90\n" +"(turtle) forward 100\n" +"(turtle)\n" +"(turtle) right 90\n" +"(turtle) forward 400\n" +"(turtle) right 90\n" +"(turtle) forward 500\n" +"(turtle) right 90\n" +"(turtle) forward 400\n" +"(turtle) right 90\n" +"(turtle) forward 300\n" +"(turtle) playback spiral.cmd\n" +"Current position is 0 0\n" +"\n" +"Current heading is 0\n" +"\n" +"Current heading is 180\n" +"\n" +"(turtle) bye\n" +"Thank you for using Turtle" +msgstr "" + +#: ../../library/cmd.rst:74 +msgid "? (question mark)" +msgstr "" + +#: ../../library/cmd.rst:74 +msgid "in a command interpreter" +msgstr "" + +#: ../../library/cmd.rst:74 +msgid "! (exclamation)" +msgstr "" diff --git a/library/cmdline.po b/library/cmdline.po new file mode 100644 index 0000000..d214107 --- /dev/null +++ b/library/cmdline.po @@ -0,0 +1,231 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cmdline.rst:5 +msgid "Modules command-line interface (CLI)" +msgstr "" + +#: ../../library/cmdline.rst:7 +msgid "The following modules have a command-line interface." +msgstr "" + +#: ../../library/cmdline.rst:9 +msgid ":ref:`ast `" +msgstr "" + +#: ../../library/cmdline.rst:10 +msgid ":ref:`asyncio `" +msgstr "" + +#: ../../library/cmdline.rst:11 +msgid ":mod:`base64`" +msgstr "" + +#: ../../library/cmdline.rst:12 +msgid ":ref:`calendar `" +msgstr "" + +#: ../../library/cmdline.rst:13 +msgid ":mod:`code`" +msgstr "" + +#: ../../library/cmdline.rst:14 +msgid ":ref:`compileall `" +msgstr "" + +#: ../../library/cmdline.rst:15 +msgid ":mod:`cProfile`: see :ref:`profile `" +msgstr "" + +#: ../../library/cmdline.rst:16 +msgid ":ref:`dis `" +msgstr "" + +#: ../../library/cmdline.rst:17 +msgid ":ref:`doctest `" +msgstr "" + +#: ../../library/cmdline.rst:18 +msgid ":mod:`!encodings.rot_13`" +msgstr "" + +#: ../../library/cmdline.rst:19 +msgid ":mod:`ensurepip`" +msgstr "" + +#: ../../library/cmdline.rst:20 +msgid ":mod:`filecmp`" +msgstr "" + +#: ../../library/cmdline.rst:21 +msgid ":mod:`fileinput`" +msgstr "" + +#: ../../library/cmdline.rst:22 +msgid ":mod:`ftplib`" +msgstr "" + +#: ../../library/cmdline.rst:23 +msgid ":ref:`gzip `" +msgstr "" + +#: ../../library/cmdline.rst:24 +msgid ":ref:`http.server `" +msgstr "" + +#: ../../library/cmdline.rst:25 +msgid ":mod:`!idlelib`" +msgstr "" + +#: ../../library/cmdline.rst:26 +msgid ":ref:`inspect `" +msgstr "" + +#: ../../library/cmdline.rst:27 +msgid ":ref:`json `" +msgstr "" + +#: ../../library/cmdline.rst:28 +msgid ":ref:`mimetypes `" +msgstr "" + +#: ../../library/cmdline.rst:29 +msgid ":mod:`pdb`" +msgstr "" + +#: ../../library/cmdline.rst:30 +msgid ":ref:`pickle `" +msgstr "" + +#: ../../library/cmdline.rst:31 +msgid ":ref:`pickletools `" +msgstr "" + +#: ../../library/cmdline.rst:32 +msgid ":ref:`platform `" +msgstr "" + +#: ../../library/cmdline.rst:33 +msgid ":mod:`poplib`" +msgstr "" + +#: ../../library/cmdline.rst:34 +msgid ":ref:`profile `" +msgstr "" + +#: ../../library/cmdline.rst:35 +msgid ":mod:`pstats`" +msgstr "" + +#: ../../library/cmdline.rst:36 +msgid ":ref:`py_compile `" +msgstr "" + +#: ../../library/cmdline.rst:37 +msgid ":mod:`pyclbr`" +msgstr "" + +#: ../../library/cmdline.rst:38 +msgid ":mod:`pydoc`" +msgstr "" + +#: ../../library/cmdline.rst:39 +msgid ":mod:`quopri`" +msgstr "" + +#: ../../library/cmdline.rst:40 +msgid ":ref:`random `" +msgstr "" + +#: ../../library/cmdline.rst:41 +msgid ":mod:`runpy`" +msgstr "" + +#: ../../library/cmdline.rst:42 +msgid ":ref:`site `" +msgstr "" + +#: ../../library/cmdline.rst:43 +msgid ":ref:`sqlite3 `" +msgstr "" + +#: ../../library/cmdline.rst:44 +msgid ":ref:`symtable `" +msgstr "" + +#: ../../library/cmdline.rst:45 +msgid ":ref:`sysconfig `" +msgstr "" + +#: ../../library/cmdline.rst:46 +msgid ":mod:`tabnanny`" +msgstr "" + +#: ../../library/cmdline.rst:47 +msgid ":ref:`tarfile `" +msgstr "" + +#: ../../library/cmdline.rst:48 +msgid ":mod:`!this`" +msgstr "" + +#: ../../library/cmdline.rst:49 +msgid ":ref:`timeit `" +msgstr "" + +#: ../../library/cmdline.rst:50 +msgid ":ref:`tokenize `" +msgstr "" + +#: ../../library/cmdline.rst:51 +msgid ":ref:`trace `" +msgstr "" + +#: ../../library/cmdline.rst:52 +msgid ":mod:`turtledemo`" +msgstr "" + +#: ../../library/cmdline.rst:53 +msgid ":ref:`unittest `" +msgstr "" + +#: ../../library/cmdline.rst:54 +msgid ":ref:`uuid `" +msgstr "" + +#: ../../library/cmdline.rst:55 +msgid ":mod:`venv`" +msgstr "" + +#: ../../library/cmdline.rst:56 +msgid ":mod:`webbrowser`" +msgstr "" + +#: ../../library/cmdline.rst:57 +msgid ":ref:`zipapp `" +msgstr "" + +#: ../../library/cmdline.rst:58 +msgid ":ref:`zipfile `" +msgstr "" + +#: ../../library/cmdline.rst:60 +msgid "See also the :ref:`Python command-line interface `." +msgstr "" diff --git a/library/cmdlinelibs.po b/library/cmdlinelibs.po new file mode 100644 index 0000000..e3b9dee --- /dev/null +++ b/library/cmdlinelibs.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/cmdlinelibs.rst:5 +msgid "Command Line Interface Libraries" +msgstr "" + +#: ../../library/cmdlinelibs.rst:7 +msgid "" +"The modules described in this chapter assist with implementing command line " +"and terminal interfaces for applications." +msgstr "" + +#: ../../library/cmdlinelibs.rst:10 +msgid "Here's an overview:" +msgstr "" diff --git a/library/code.po b/library/code.po new file mode 100644 index 0000000..c71accf --- /dev/null +++ b/library/code.po @@ -0,0 +1,252 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/code.rst:2 +msgid ":mod:`!code` --- Interpreter base classes" +msgstr "" + +#: ../../library/code.rst:7 +msgid "**Source code:** :source:`Lib/code.py`" +msgstr "" + +#: ../../library/code.rst:11 +msgid "" +"The ``code`` module provides facilities to implement read-eval-print loops " +"in Python. Two classes and convenience functions are included which can be " +"used to build applications which provide an interactive interpreter prompt." +msgstr "" + +#: ../../library/code.rst:18 +msgid "" +"This class deals with parsing and interpreter state (the user's namespace); " +"it does not deal with input buffering or prompting or input file naming (the " +"filename is always passed in explicitly). The optional *locals* argument " +"specifies a mapping to use as the namespace in which code will be executed; " +"it defaults to a newly created dictionary with key ``'__name__'`` set to " +"``'__console__'`` and key ``'__doc__'`` set to ``None``." +msgstr "" + +#: ../../library/code.rst:25 +msgid "" +"Note that functions and classes objects created under an :class:`!" +"InteractiveInterpreter` instance will belong to the namespace specified by " +"*locals*. They are only pickleable if *locals* is the namespace of an " +"existing module." +msgstr "" + +#: ../../library/code.rst:34 +msgid "" +"Closely emulate the behavior of the interactive Python interpreter. This " +"class builds on :class:`InteractiveInterpreter` and adds prompting using the " +"familiar ``sys.ps1`` and ``sys.ps2``, and input buffering. If *local_exit* " +"is true, ``exit()`` and ``quit()`` in the console will not " +"raise :exc:`SystemExit`, but instead return to the calling code." +msgstr "" + +#: ../../library/code.rst:40 ../../library/code.rst:58 +msgid "Added *local_exit* parameter." +msgstr "" + +#: ../../library/code.rst:45 +msgid "" +"Convenience function to run a read-eval-print loop. This creates a new " +"instance of :class:`InteractiveConsole` and sets *readfunc* to be used as " +"the :meth:`InteractiveConsole.raw_input` method, if provided. If *local* is " +"provided, it is passed to the :class:`InteractiveConsole` constructor for " +"use as the default namespace for the interpreter loop. If *local_exit* is " +"provided, it is passed to the :class:`InteractiveConsole` constructor. " +"The :meth:`~InteractiveConsole.interact` method of the instance is then run " +"with *banner* and *exitmsg* passed as the banner and exit message to use, if " +"provided. The console object is discarded after use." +msgstr "" + +#: ../../library/code.rst:55 +msgid "Added *exitmsg* parameter." +msgstr "" + +#: ../../library/code.rst:63 +msgid "" +"This function is useful for programs that want to emulate Python's " +"interpreter main loop (a.k.a. the read-eval-print loop). The tricky part is " +"to determine when the user has entered an incomplete command that can be " +"completed by entering more text (as opposed to a complete command or a " +"syntax error). This function *almost* always makes the same decision as the " +"real interpreter main loop." +msgstr "" + +#: ../../library/code.rst:70 +msgid "" +"*source* is the source string; *filename* is the optional filename from " +"which source was read, defaulting to ``''``; and *symbol* is the " +"optional grammar start symbol, which should be ``'single'`` (the default), " +"``'eval'`` or ``'exec'``." +msgstr "" + +#: ../../library/code.rst:75 +msgid "" +"Returns a code object (the same as ``compile(source, filename, symbol)``) if " +"the command is complete and valid; ``None`` if the command is incomplete; " +"raises :exc:`SyntaxError` if the command is complete and contains a syntax " +"error, or raises :exc:`OverflowError` or :exc:`ValueError` if the command " +"contains an invalid literal." +msgstr "" + +#: ../../library/code.rst:85 +msgid "Interactive Interpreter Objects" +msgstr "" + +#: ../../library/code.rst:90 +msgid "" +"Compile and run some source in the interpreter. Arguments are the same as " +"for :func:`compile_command`; the default for *filename* is ``''``, " +"and for *symbol* is ``'single'``. One of several things can happen:" +msgstr "" + +#: ../../library/code.rst:94 +msgid "" +"The input is incorrect; :func:`compile_command` raised an exception " +"(:exc:`SyntaxError` or :exc:`OverflowError`). A syntax traceback will be " +"printed by calling the :meth:`showsyntaxerror` method. :meth:`runsource` " +"returns ``False``." +msgstr "" + +#: ../../library/code.rst:99 +msgid "" +"The input is incomplete, and more input is required; :func:`compile_command` " +"returned ``None``. :meth:`runsource` returns ``True``." +msgstr "" + +#: ../../library/code.rst:102 +msgid "" +"The input is complete; :func:`compile_command` returned a code object. The " +"code is executed by calling the :meth:`runcode` (which also handles run-time " +"exceptions, except for :exc:`SystemExit`). :meth:`runsource` returns " +"``False``." +msgstr "" + +#: ../../library/code.rst:106 +msgid "" +"The return value can be used to decide whether to use ``sys.ps1`` or " +"``sys.ps2`` to prompt the next line." +msgstr "" + +#: ../../library/code.rst:112 +msgid "" +"Execute a code object. When an exception occurs, :meth:`showtraceback` is " +"called to display a traceback. All exceptions are caught " +"except :exc:`SystemExit`, which is allowed to propagate." +msgstr "" + +#: ../../library/code.rst:116 +msgid "" +"A note about :exc:`KeyboardInterrupt`: this exception may occur elsewhere in " +"this code, and may not always be caught. The caller should be prepared to " +"deal with it." +msgstr "" + +#: ../../library/code.rst:123 +msgid "" +"Display the syntax error that just occurred. This does not display a stack " +"trace because there isn't one for syntax errors. If *filename* is given, it " +"is stuffed into the exception instead of the default filename provided by " +"Python's parser, because it always uses ``''`` when reading from a " +"string. The output is written by the :meth:`write` method." +msgstr "" + +#: ../../library/code.rst:132 +msgid "" +"Display the exception that just occurred. We remove the first stack item " +"because it is within the interpreter object implementation. The output is " +"written by the :meth:`write` method." +msgstr "" + +#: ../../library/code.rst:136 +msgid "" +"The full chained traceback is displayed instead of just the primary " +"traceback." +msgstr "" + +#: ../../library/code.rst:142 +msgid "" +"Write a string to the standard error stream (``sys.stderr``). Derived " +"classes should override this to provide the appropriate output handling as " +"needed." +msgstr "" + +#: ../../library/code.rst:149 +msgid "Interactive Console Objects" +msgstr "" + +#: ../../library/code.rst:151 +msgid "" +"The :class:`InteractiveConsole` class is a subclass " +"of :class:`InteractiveInterpreter`, and so offers all the methods of the " +"interpreter objects as well as the following additions." +msgstr "" + +#: ../../library/code.rst:158 +msgid "" +"Closely emulate the interactive Python console. The optional *banner* " +"argument specify the banner to print before the first interaction; by " +"default it prints a banner similar to the one printed by the standard Python " +"interpreter, followed by the class name of the console object in parentheses " +"(so as not to confuse this with the real interpreter -- since it's so " +"close!)." +msgstr "" + +#: ../../library/code.rst:164 +msgid "" +"The optional *exitmsg* argument specifies an exit message printed when " +"exiting. Pass the empty string to suppress the exit message. If *exitmsg* is " +"not given or ``None``, a default message is printed." +msgstr "" + +#: ../../library/code.rst:168 +msgid "To suppress printing any banner, pass an empty string." +msgstr "" + +#: ../../library/code.rst:171 +msgid "Print an exit message when exiting." +msgstr "" + +#: ../../library/code.rst:177 +msgid "" +"Push a line of source text to the interpreter. The line should not have a " +"trailing newline; it may have internal newlines. The line is appended to a " +"buffer and the interpreter's :meth:`~InteractiveInterpreter.runsource` " +"method is called with the concatenated contents of the buffer as source. If " +"this indicates that the command was executed or invalid, the buffer is " +"reset; otherwise, the command is incomplete, and the buffer is left as it " +"was after the line was appended. The return value is ``True`` if more input " +"is required, ``False`` if the line was dealt with in some way (this is the " +"same as :meth:`!runsource`)." +msgstr "" + +#: ../../library/code.rst:189 +msgid "Remove any unhandled source text from the input buffer." +msgstr "" + +#: ../../library/code.rst:194 +msgid "" +"Write a prompt and read a line. The returned line does not include the " +"trailing newline. When the user enters the EOF key " +"sequence, :exc:`EOFError` is raised. The base implementation reads from " +"``sys.stdin``; a subclass may replace this with a different implementation." +msgstr "" diff --git a/library/codecs.po b/library/codecs.po new file mode 100644 index 0000000..90ddac0 --- /dev/null +++ b/library/codecs.po @@ -0,0 +1,2892 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/codecs.rst:2 +msgid ":mod:`!codecs` --- Codec registry and base classes" +msgstr "" + +#: ../../library/codecs.rst:11 +msgid "**Source code:** :source:`Lib/codecs.py`" +msgstr "" + +#: ../../library/codecs.rst:23 +msgid "" +"This module defines base classes for standard Python codecs (encoders and " +"decoders) and provides access to the internal Python codec registry, which " +"manages the codec and error handling lookup process. Most standard codecs " +"are :term:`text encodings `, which encode text to bytes (and " +"decode bytes to text), but there are also codecs provided that encode text " +"to text, and bytes to bytes. Custom codecs may encode and decode between " +"arbitrary types, but some module features are restricted to be used " +"specifically with :term:`text encodings ` or with codecs that " +"encode to :class:`bytes`." +msgstr "" + +#: ../../library/codecs.rst:33 +msgid "" +"The module defines the following functions for encoding and decoding with " +"any codec:" +msgstr "" + +#: ../../library/codecs.rst:38 +msgid "Encodes *obj* using the codec registered for *encoding*." +msgstr "" + +#: ../../library/codecs.rst:40 +msgid "" +"*Errors* may be given to set the desired error handling scheme. The default " +"error handler is ``'strict'`` meaning that encoding errors " +"raise :exc:`ValueError` (or a more codec specific subclass, such " +"as :exc:`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " +"information on codec error handling." +msgstr "" + +#: ../../library/codecs.rst:48 +msgid "Decodes *obj* using the codec registered for *encoding*." +msgstr "" + +#: ../../library/codecs.rst:50 +msgid "" +"*Errors* may be given to set the desired error handling scheme. The default " +"error handler is ``'strict'`` meaning that decoding errors " +"raise :exc:`ValueError` (or a more codec specific subclass, such " +"as :exc:`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " +"information on codec error handling." +msgstr "" + +#: ../../library/codecs.rst:58 +msgid "" +"Return a mapping suitable for encoding with a custom single-byte encoding. " +"Given a :class:`str` *string* of up to 256 characters representing a " +"decoding table, returns either a compact internal mapping object " +"``EncodingMap`` or a :class:`dictionary ` mapping character ordinals " +"to byte values. Raises a :exc:`TypeError` on invalid input." +msgstr "" + +#: ../../library/codecs.rst:64 +msgid "The full details for each codec can also be looked up directly:" +msgstr "" + +#: ../../library/codecs.rst:68 +msgid "" +"Looks up the codec info in the Python codec registry and returns " +"a :class:`CodecInfo` object as defined below." +msgstr "" + +#: ../../library/codecs.rst:71 +msgid "" +"Encodings are first looked up in the registry's cache. If not found, the " +"list of registered search functions is scanned. If no :class:`CodecInfo` " +"object is found, a :exc:`LookupError` is raised. Otherwise, " +"the :class:`CodecInfo` object is stored in the cache and returned to the " +"caller." +msgstr "" + +#: ../../library/codecs.rst:78 +msgid "" +"Codec details when looking up the codec registry. The constructor arguments " +"are stored in attributes of the same name:" +msgstr "" + +#: ../../library/codecs.rst:84 +msgid "The name of the encoding." +msgstr "" + +#: ../../library/codecs.rst:90 +msgid "" +"The stateless encoding and decoding functions. These must be functions or " +"methods which have the same interface as the :meth:`~Codec.encode` " +"and :meth:`~Codec.decode` methods of Codec instances (see :ref:`Codec " +"Interface `). The functions or methods are expected to work " +"in a stateless mode." +msgstr "" + +#: ../../library/codecs.rst:100 +msgid "" +"Incremental encoder and decoder classes or factory functions. These have to " +"provide the interface defined by the base " +"classes :class:`IncrementalEncoder` and :class:`IncrementalDecoder`, " +"respectively. Incremental codecs can maintain state." +msgstr "" + +#: ../../library/codecs.rst:109 +msgid "" +"Stream writer and reader classes or factory functions. These have to provide " +"the interface defined by the base classes :class:`StreamWriter` " +"and :class:`StreamReader`, respectively. Stream codecs can maintain state." +msgstr "" + +#: ../../library/codecs.rst:114 +msgid "" +"To simplify access to the various codec components, the module provides " +"these additional functions which use :func:`lookup` for the codec lookup:" +msgstr "" + +#: ../../library/codecs.rst:119 +msgid "" +"Look up the codec for the given encoding and return its encoder function." +msgstr "" + +#: ../../library/codecs.rst:121 ../../library/codecs.rst:128 +#: ../../library/codecs.rst:154 ../../library/codecs.rst:162 +msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." +msgstr "" + +#: ../../library/codecs.rst:126 +msgid "" +"Look up the codec for the given encoding and return its decoder function." +msgstr "" + +#: ../../library/codecs.rst:133 +msgid "" +"Look up the codec for the given encoding and return its incremental encoder " +"class or factory function." +msgstr "" + +#: ../../library/codecs.rst:136 +msgid "" +"Raises a :exc:`LookupError` in case the encoding cannot be found or the " +"codec doesn't support an incremental encoder." +msgstr "" + +#: ../../library/codecs.rst:142 +msgid "" +"Look up the codec for the given encoding and return its incremental decoder " +"class or factory function." +msgstr "" + +#: ../../library/codecs.rst:145 +msgid "" +"Raises a :exc:`LookupError` in case the encoding cannot be found or the " +"codec doesn't support an incremental decoder." +msgstr "" + +#: ../../library/codecs.rst:151 +msgid "" +"Look up the codec for the given encoding and return " +"its :class:`StreamReader` class or factory function." +msgstr "" + +#: ../../library/codecs.rst:159 +msgid "" +"Look up the codec for the given encoding and return " +"its :class:`StreamWriter` class or factory function." +msgstr "" + +#: ../../library/codecs.rst:164 +msgid "" +"Custom codecs are made available by registering a suitable codec search " +"function:" +msgstr "" + +#: ../../library/codecs.rst:169 +msgid "" +"Register a codec search function. Search functions are expected to take one " +"argument, being the encoding name in all lower case letters with hyphens and " +"spaces converted to underscores, and return a :class:`CodecInfo` object. In " +"case a search function cannot find a given encoding, it should return " +"``None``." +msgstr "" + +#: ../../library/codecs.rst:175 +msgid "Hyphens and spaces are converted to underscore." +msgstr "" + +#: ../../library/codecs.rst:181 +msgid "" +"Unregister a codec search function and clear the registry's cache. If the " +"search function is not registered, do nothing." +msgstr "" + +#: ../../library/codecs.rst:187 +msgid "" +"While the builtin :func:`open` and the associated :mod:`io` module are the " +"recommended approach for working with encoded text files, this module " +"provides additional utility functions and classes that allow the use of a " +"wider range of codecs when working with binary files:" +msgstr "" + +#: ../../library/codecs.rst:194 +msgid "" +"Open an encoded file using the given *mode* and return an instance " +"of :class:`StreamReaderWriter`, providing transparent encoding/decoding. The " +"default file mode is ``'r'``, meaning to open the file in read mode." +msgstr "" + +#: ../../library/codecs.rst:200 +msgid "" +"If *encoding* is not ``None``, then the underlying encoded files are always " +"opened in binary mode. No automatic conversion of ``'\\n'`` is done on " +"reading and writing. The *mode* argument may be any binary mode acceptable " +"to the built-in :func:`open` function; the ``'b'`` is automatically added." +msgstr "" + +#: ../../library/codecs.rst:206 +msgid "" +"*encoding* specifies the encoding which is to be used for the file. Any " +"encoding that encodes to and decodes from bytes is allowed, and the data " +"types supported by the file methods depend on the codec used." +msgstr "" + +#: ../../library/codecs.rst:210 +msgid "" +"*errors* may be given to define the error handling. It defaults to " +"``'strict'`` which causes a :exc:`ValueError` to be raised in case an " +"encoding error occurs." +msgstr "" + +#: ../../library/codecs.rst:213 +msgid "" +"*buffering* has the same meaning as for the built-in :func:`open` function. " +"It defaults to -1 which means that the default buffer size will be used." +msgstr "" + +#: ../../library/codecs.rst:216 +msgid "The ``'U'`` mode has been removed." +msgstr "" + +#: ../../library/codecs.rst:221 +msgid ":func:`codecs.open` has been superseded by :func:`open`." +msgstr "" + +#: ../../library/codecs.rst:226 +msgid "" +"Return a :class:`StreamRecoder` instance, a wrapped version of *file* which " +"provides transparent transcoding. The original file is closed when the " +"wrapped version is closed." +msgstr "" + +#: ../../library/codecs.rst:230 +msgid "" +"Data written to the wrapped file is decoded according to the given " +"*data_encoding* and then written to the original file as bytes using " +"*file_encoding*. Bytes read from the original file are decoded according to " +"*file_encoding*, and the result is encoded using *data_encoding*." +msgstr "" + +#: ../../library/codecs.rst:236 +msgid "If *file_encoding* is not given, it defaults to *data_encoding*." +msgstr "" + +#: ../../library/codecs.rst:238 +msgid "" +"*errors* may be given to define the error handling. It defaults to " +"``'strict'``, which causes :exc:`ValueError` to be raised in case an " +"encoding error occurs." +msgstr "" + +#: ../../library/codecs.rst:245 +msgid "" +"Uses an incremental encoder to iteratively encode the input provided by " +"*iterator*. *iterator* must yield :class:`str` objects. This function is " +"a :term:`generator`. The *errors* argument (as well as any other keyword " +"argument) is passed through to the incremental encoder." +msgstr "" + +#: ../../library/codecs.rst:250 +msgid "" +"This function requires that the codec accept text :class:`str` objects to " +"encode. Therefore it does not support bytes-to-bytes encoders such as " +"``base64_codec``." +msgstr "" + +#: ../../library/codecs.rst:257 +msgid "" +"Uses an incremental decoder to iteratively decode the input provided by " +"*iterator*. *iterator* must yield :class:`bytes` objects. This function is " +"a :term:`generator`. The *errors* argument (as well as any other keyword " +"argument) is passed through to the incremental decoder." +msgstr "" + +#: ../../library/codecs.rst:262 +msgid "" +"This function requires that the codec accept :class:`bytes` objects to " +"decode. Therefore it does not support text-to-text encoders such as " +"``rot_13``, although ``rot_13`` may be used equivalently " +"with :func:`iterencode`." +msgstr "" + +#: ../../library/codecs.rst:270 +msgid "" +"Return a :class:`tuple` containing the raw bytes of *buffer*, a :ref:`buffer-" +"compatible object ` or :class:`str` (encoded to UTF-8 before " +"processing), and their length in bytes." +msgstr "" + +#: ../../library/codecs.rst:274 +msgid "The *errors* argument is ignored." +msgstr "" + +#: ../../library/codecs.rst:276 +msgid "" +">>> codecs.readbuffer_encode(b\"Zito\")\n" +"(b'Zito', 4)" +msgstr "" + +#: ../../library/codecs.rst:282 +msgid "" +"The module also provides the following constants which are useful for " +"reading and writing to platform dependent files:" +msgstr "" + +#: ../../library/codecs.rst:297 +msgid "" +"These constants define various byte sequences, being Unicode byte order " +"marks (BOMs) for several encodings. They are used in UTF-16 and UTF-32 data " +"streams to indicate the byte order used, and in UTF-8 as a Unicode " +"signature. :const:`BOM_UTF16` is either :const:`BOM_UTF16_BE` " +"or :const:`BOM_UTF16_LE` depending on the platform's native byte " +"order, :const:`BOM` is an alias for :const:`BOM_UTF16`, :const:`BOM_LE` " +"for :const:`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The " +"others represent the BOM in UTF-8 and UTF-32 encodings." +msgstr "" + +#: ../../library/codecs.rst:311 +msgid "Codec Base Classes" +msgstr "" + +#: ../../library/codecs.rst:313 +msgid "" +"The :mod:`codecs` module defines a set of base classes which define the " +"interfaces for working with codec objects, and can also be used as the basis " +"for custom codec implementations." +msgstr "" + +#: ../../library/codecs.rst:317 +msgid "" +"Each codec has to define four interfaces to make it usable as codec in " +"Python: stateless encoder, stateless decoder, stream reader and stream " +"writer. The stream reader and writers typically reuse the stateless encoder/" +"decoder to implement the file protocols. Codec authors also need to define " +"how the codec will handle encoding and decoding errors." +msgstr "" + +#: ../../library/codecs.rst:328 +msgid "Error Handlers" +msgstr "" + +#: ../../library/codecs.rst:330 +msgid "" +"To simplify and standardize error handling, codecs may implement different " +"error handling schemes by accepting the *errors* string argument:" +msgstr "" + +#: ../../library/codecs.rst:350 +msgid "" +"The following error handlers can be used with all Python :ref:`standard-" +"encodings` codecs:" +msgstr "" + +#: ../../library/codecs.rst:356 ../../library/codecs.rst:399 +#: ../../library/codecs.rst:419 +msgid "Value" +msgstr "" + +#: ../../library/codecs.rst:356 ../../library/codecs.rst:399 +#: ../../library/codecs.rst:419 ../../library/codecs.rst:1371 +#: ../../library/codecs.rst:1443 ../../library/codecs.rst:1498 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/codecs.rst:358 +msgid "``'strict'``" +msgstr "``'strict'``" + +#: ../../library/codecs.rst:358 +msgid "" +"Raise :exc:`UnicodeError` (or a subclass), this is the default. Implemented " +"in :func:`strict_errors`." +msgstr "" + +#: ../../library/codecs.rst:362 +msgid "``'ignore'``" +msgstr "``'ignore'``" + +#: ../../library/codecs.rst:362 +msgid "" +"Ignore the malformed data and continue without further notice. Implemented " +"in :func:`ignore_errors`." +msgstr "" + +#: ../../library/codecs.rst:366 +msgid "``'replace'``" +msgstr "``'replace'``" + +#: ../../library/codecs.rst:366 +msgid "" +"Replace with a replacement marker. On encoding, use ``?`` (ASCII character). " +"On decoding, use ``�`` (U+FFFD, the official REPLACEMENT CHARACTER). " +"Implemented in :func:`replace_errors`." +msgstr "" + +#: ../../library/codecs.rst:372 +msgid "``'backslashreplace'``" +msgstr "``'backslashreplace'``" + +#: ../../library/codecs.rst:372 +msgid "" +"Replace with backslashed escape sequences. On encoding, use hexadecimal form " +"of Unicode code point with formats :samp:`\\\\x{hh}` :samp:`\\\\u{xxxx}" +"` :samp:`\\\\U{xxxxxxxx}`. On decoding, use hexadecimal form of byte value " +"with format :samp:`\\\\x{hh}`. Implemented " +"in :func:`backslashreplace_errors`." +msgstr "" + +#: ../../library/codecs.rst:381 +msgid "``'surrogateescape'``" +msgstr "``'surrogateescape'``" + +#: ../../library/codecs.rst:381 +msgid "" +"On decoding, replace byte with individual surrogate code ranging from " +"``U+DC80`` to ``U+DCFF``. This code will then be turned back into the same " +"byte when the ``'surrogateescape'`` error handler is used when encoding the " +"data. (See :pep:`383` for more.)" +msgstr "" + +#: ../../library/codecs.rst:395 +msgid "" +"The following error handlers are only applicable to encoding " +"(within :term:`text encodings `):" +msgstr "" + +#: ../../library/codecs.rst:401 +msgid "``'xmlcharrefreplace'``" +msgstr "``'xmlcharrefreplace'``" + +#: ../../library/codecs.rst:401 +msgid "" +"Replace with XML/HTML numeric character reference, which is a decimal form " +"of Unicode code point with format :samp:`&#{num};`. Implemented " +"in :func:`xmlcharrefreplace_errors`." +msgstr "" + +#: ../../library/codecs.rst:407 +msgid "``'namereplace'``" +msgstr "``'namereplace'``" + +#: ../../library/codecs.rst:407 +msgid "" +"Replace with ``\\N{...}`` escape sequences, what appears in the braces is " +"the Name property from Unicode Character Database. Implemented " +"in :func:`namereplace_errors`." +msgstr "" + +#: ../../library/codecs.rst:416 +msgid "" +"In addition, the following error handler is specific to the given codecs:" +msgstr "" + +#: ../../library/codecs.rst:13 ../../library/codecs.rst:419 +msgid "Codecs" +msgstr "" + +#: ../../library/codecs.rst:421 +msgid "``'surrogatepass'``" +msgstr "``'surrogatepass'``" + +#: ../../library/codecs.rst:421 +msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" +msgstr "" + +#: ../../library/codecs.rst:421 +msgid "" +"Allow encoding and decoding surrogate code point (``U+D800`` - ``U+DFFF``) " +"as normal code point. Otherwise these codecs treat the presence of surrogate " +"code point in :class:`str` as an error." +msgstr "" + +#: ../../library/codecs.rst:428 +msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." +msgstr "" + +#: ../../library/codecs.rst:431 +msgid "" +"The ``'surrogatepass'`` error handler now works with utf-16\\* and utf-32\\* " +"codecs." +msgstr "" + +#: ../../library/codecs.rst:435 +msgid "The ``'namereplace'`` error handler." +msgstr "" + +#: ../../library/codecs.rst:438 +msgid "" +"The ``'backslashreplace'`` error handler now works with decoding and " +"translating." +msgstr "" + +#: ../../library/codecs.rst:442 +msgid "" +"The set of allowed values can be extended by registering a new named error " +"handler:" +msgstr "" + +#: ../../library/codecs.rst:447 +msgid "" +"Register the error handling function *error_handler* under the name *name*. " +"The *error_handler* argument will be called during encoding and decoding in " +"case of an error, when *name* is specified as the errors parameter." +msgstr "" + +#: ../../library/codecs.rst:451 +msgid "" +"For encoding, *error_handler* will be called with " +"a :exc:`UnicodeEncodeError` instance, which contains information about the " +"location of the error. The error handler must either raise this or a " +"different exception, or return a tuple with a replacement for the " +"unencodable part of the input and a position where encoding should continue. " +"The replacement may be either :class:`str` or :class:`bytes`. If the " +"replacement is bytes, the encoder will simply copy them into the output " +"buffer. If the replacement is a string, the encoder will encode the " +"replacement. Encoding continues on original input at the specified position. " +"Negative position values will be treated as being relative to the end of the " +"input string. If the resulting position is out of bound an :exc:`IndexError` " +"will be raised." +msgstr "" + +#: ../../library/codecs.rst:463 +msgid "" +"Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " +"or :exc:`UnicodeTranslateError` will be passed to the handler and that the " +"replacement from the error handler will be put into the output directly." +msgstr "" + +#: ../../library/codecs.rst:468 +msgid "" +"Previously registered error handlers (including the standard error handlers) " +"can be looked up by name:" +msgstr "" + +#: ../../library/codecs.rst:473 +msgid "Return the error handler previously registered under the name *name*." +msgstr "" + +#: ../../library/codecs.rst:475 +msgid "Raises a :exc:`LookupError` in case the handler cannot be found." +msgstr "" + +#: ../../library/codecs.rst:477 +msgid "" +"The following standard error handlers are also made available as module " +"level functions:" +msgstr "" + +#: ../../library/codecs.rst:482 +msgid "Implements the ``'strict'`` error handling." +msgstr "" + +#: ../../library/codecs.rst:484 +msgid "Each encoding or decoding error raises a :exc:`UnicodeError`." +msgstr "" + +#: ../../library/codecs.rst:489 +msgid "Implements the ``'ignore'`` error handling." +msgstr "" + +#: ../../library/codecs.rst:491 +msgid "" +"Malformed data is ignored; encoding or decoding is continued without further " +"notice." +msgstr "" + +#: ../../library/codecs.rst:497 +msgid "Implements the ``'replace'`` error handling." +msgstr "" + +#: ../../library/codecs.rst:499 +msgid "" +"Substitutes ``?`` (ASCII character) for encoding errors or ``�`` (U+FFFD, " +"the official REPLACEMENT CHARACTER) for decoding errors." +msgstr "" + +#: ../../library/codecs.rst:505 +msgid "Implements the ``'backslashreplace'`` error handling." +msgstr "" + +#: ../../library/codecs.rst:507 +msgid "" +"Malformed data is replaced by a backslashed escape sequence. On encoding, " +"use the hexadecimal form of Unicode code point with formats :samp:`\\\\x{hh}" +"` :samp:`\\\\u{xxxx}` :samp:`\\\\U{xxxxxxxx}`. On decoding, use the " +"hexadecimal form of byte value with format :samp:`\\\\x{hh}`." +msgstr "" + +#: ../../library/codecs.rst:513 +msgid "Works with decoding and translating." +msgstr "" + +#: ../../library/codecs.rst:519 +msgid "" +"Implements the ``'xmlcharrefreplace'`` error handling (for encoding " +"within :term:`text encoding` only)." +msgstr "" + +#: ../../library/codecs.rst:522 +msgid "" +"The unencodable character is replaced by an appropriate XML/HTML numeric " +"character reference, which is a decimal form of Unicode code point with " +"format :samp:`&#{num};` ." +msgstr "" + +#: ../../library/codecs.rst:529 +msgid "" +"Implements the ``'namereplace'`` error handling (for encoding " +"within :term:`text encoding` only)." +msgstr "" + +#: ../../library/codecs.rst:532 +msgid "" +"The unencodable character is replaced by a ``\\N{...}`` escape sequence. The " +"set of characters that appear in the braces is the Name property from " +"Unicode Character Database. For example, the German lowercase letter ``'ß'`` " +"will be converted to byte sequence ``\\N{LATIN SMALL LETTER SHARP S}`` ." +msgstr "" + +#: ../../library/codecs.rst:543 +msgid "Stateless Encoding and Decoding" +msgstr "" + +#: ../../library/codecs.rst:545 +msgid "" +"The base :class:`Codec` class defines these methods which also define the " +"function interfaces of the stateless encoder and decoder:" +msgstr "" + +#: ../../library/codecs.rst:553 +msgid "" +"Encodes the object *input* and returns a tuple (output object, length " +"consumed). For instance, :term:`text encoding` converts a string object to a " +"bytes object using a particular character set encoding (e.g., ``cp1252`` or " +"``iso-8859-1``)." +msgstr "" + +#: ../../library/codecs.rst:558 ../../library/codecs.rst:580 +msgid "" +"The *errors* argument defines the error handling to apply. It defaults to " +"``'strict'`` handling." +msgstr "" + +#: ../../library/codecs.rst:561 +msgid "" +"The method may not store state in the :class:`Codec` instance. " +"Use :class:`StreamWriter` for codecs which have to keep state in order to " +"make encoding efficient." +msgstr "" + +#: ../../library/codecs.rst:565 +msgid "" +"The encoder must be able to handle zero length input and return an empty " +"object of the output object type in this situation." +msgstr "" + +#: ../../library/codecs.rst:571 +msgid "" +"Decodes the object *input* and returns a tuple (output object, length " +"consumed). For instance, for a :term:`text encoding`, decoding converts a " +"bytes object encoded using a particular character set encoding to a string " +"object." +msgstr "" + +#: ../../library/codecs.rst:576 +msgid "" +"For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " +"or one which provides the read-only buffer interface -- for example, buffer " +"objects and memory mapped files." +msgstr "" + +#: ../../library/codecs.rst:583 +msgid "" +"The method may not store state in the :class:`Codec` instance. " +"Use :class:`StreamReader` for codecs which have to keep state in order to " +"make decoding efficient." +msgstr "" + +#: ../../library/codecs.rst:587 +msgid "" +"The decoder must be able to handle zero length input and return an empty " +"object of the output object type in this situation." +msgstr "" + +#: ../../library/codecs.rst:592 +msgid "Incremental Encoding and Decoding" +msgstr "" + +#: ../../library/codecs.rst:594 +msgid "" +"The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " +"provide the basic interface for incremental encoding and decoding. Encoding/" +"decoding the input isn't done with one call to the stateless encoder/decoder " +"function, but with multiple calls to " +"the :meth:`~IncrementalEncoder.encode`/:meth:`~IncrementalDecoder.decode` " +"method of the incremental encoder/decoder. The incremental encoder/decoder " +"keeps track of the encoding/decoding process during method calls." +msgstr "" + +#: ../../library/codecs.rst:602 +msgid "" +"The joined output of calls to " +"the :meth:`~IncrementalEncoder.encode`/:meth:`~IncrementalDecoder.decode` " +"method is the same as if all the single inputs were joined into one, and " +"this input was encoded/decoded with the stateless encoder/decoder." +msgstr "" + +#: ../../library/codecs.rst:611 +msgid "IncrementalEncoder Objects" +msgstr "" + +#: ../../library/codecs.rst:613 +msgid "" +"The :class:`IncrementalEncoder` class is used for encoding an input in " +"multiple steps. It defines the following methods which every incremental " +"encoder must define in order to be compatible with the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:620 +msgid "Constructor for an :class:`IncrementalEncoder` instance." +msgstr "" + +#: ../../library/codecs.rst:622 +msgid "" +"All incremental encoders must provide this constructor interface. They are " +"free to add additional keyword arguments, but only the ones defined here are " +"used by the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:626 +msgid "" +"The :class:`IncrementalEncoder` may implement different error handling " +"schemes by providing the *errors* keyword argument. See :ref:`error-" +"handlers` for possible values." +msgstr "" + +#: ../../library/codecs.rst:630 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of " +"the :class:`IncrementalEncoder` object." +msgstr "" + +#: ../../library/codecs.rst:638 +msgid "" +"Encodes *object* (taking the current state of the encoder into account) and " +"returns the resulting encoded object. If this is the last call " +"to :meth:`encode` *final* must be true (the default is false)." +msgstr "" + +#: ../../library/codecs.rst:645 +msgid "" +"Reset the encoder to the initial state. The output is discarded: call " +"``.encode(object, final=True)``, passing an empty byte or text string if " +"necessary, to reset the encoder and to get the output." +msgstr "" + +#: ../../library/codecs.rst:652 +msgid "" +"Return the current state of the encoder which must be an integer. The " +"implementation should make sure that ``0`` is the most common state. (States " +"that are more complicated than integers can be converted into an integer by " +"marshaling/pickling the state and encoding the bytes of the resulting string " +"into an integer.)" +msgstr "" + +#: ../../library/codecs.rst:661 +msgid "" +"Set the state of the encoder to *state*. *state* must be an encoder state " +"returned by :meth:`getstate`." +msgstr "" + +#: ../../library/codecs.rst:668 +msgid "IncrementalDecoder Objects" +msgstr "" + +#: ../../library/codecs.rst:670 +msgid "" +"The :class:`IncrementalDecoder` class is used for decoding an input in " +"multiple steps. It defines the following methods which every incremental " +"decoder must define in order to be compatible with the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:677 +msgid "Constructor for an :class:`IncrementalDecoder` instance." +msgstr "" + +#: ../../library/codecs.rst:679 +msgid "" +"All incremental decoders must provide this constructor interface. They are " +"free to add additional keyword arguments, but only the ones defined here are " +"used by the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:683 +msgid "" +"The :class:`IncrementalDecoder` may implement different error handling " +"schemes by providing the *errors* keyword argument. See :ref:`error-" +"handlers` for possible values." +msgstr "" + +#: ../../library/codecs.rst:687 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of " +"the :class:`IncrementalDecoder` object." +msgstr "" + +#: ../../library/codecs.rst:695 +msgid "" +"Decodes *object* (taking the current state of the decoder into account) and " +"returns the resulting decoded object. If this is the last call " +"to :meth:`decode` *final* must be true (the default is false). If *final* is " +"true the decoder must decode the input completely and must flush all " +"buffers. If this isn't possible (e.g. because of incomplete byte sequences " +"at the end of the input) it must initiate error handling just like in the " +"stateless case (which might raise an exception)." +msgstr "" + +#: ../../library/codecs.rst:706 +msgid "Reset the decoder to the initial state." +msgstr "" + +#: ../../library/codecs.rst:711 +msgid "" +"Return the current state of the decoder. This must be a tuple with two " +"items, the first must be the buffer containing the still undecoded input. " +"The second must be an integer and can be additional state info. (The " +"implementation should make sure that ``0`` is the most common additional " +"state info.) If this additional state info is ``0`` it must be possible to " +"set the decoder to the state which has no input buffered and ``0`` as the " +"additional state info, so that feeding the previously buffered input to the " +"decoder returns it to the previous state without producing any output. " +"(Additional state info that is more complicated than integers can be " +"converted into an integer by marshaling/pickling the info and encoding the " +"bytes of the resulting string into an integer.)" +msgstr "" + +#: ../../library/codecs.rst:726 +msgid "" +"Set the state of the decoder to *state*. *state* must be a decoder state " +"returned by :meth:`getstate`." +msgstr "" + +#: ../../library/codecs.rst:731 +msgid "Stream Encoding and Decoding" +msgstr "" + +#: ../../library/codecs.rst:734 +msgid "" +"The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " +"working interfaces which can be used to implement new encoding submodules " +"very easily. See :mod:`!encodings.utf_8` for an example of how this is done." +msgstr "" + +#: ../../library/codecs.rst:742 +msgid "StreamWriter Objects" +msgstr "" + +#: ../../library/codecs.rst:744 +msgid "" +"The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " +"the following methods which every stream writer must define in order to be " +"compatible with the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:751 +msgid "Constructor for a :class:`StreamWriter` instance." +msgstr "" + +#: ../../library/codecs.rst:753 +msgid "" +"All stream writers must provide this constructor interface. They are free to " +"add additional keyword arguments, but only the ones defined here are used by " +"the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:757 +msgid "" +"The *stream* argument must be a file-like object open for writing text or " +"binary data, as appropriate for the specific codec." +msgstr "" + +#: ../../library/codecs.rst:760 +msgid "" +"The :class:`StreamWriter` may implement different error handling schemes by " +"providing the *errors* keyword argument. See :ref:`error-handlers` for the " +"standard error handlers the underlying stream codec may support." +msgstr "" + +#: ../../library/codecs.rst:764 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:`StreamWriter` " +"object." +msgstr "" + +#: ../../library/codecs.rst:770 +msgid "Writes the object's contents encoded to the stream." +msgstr "" + +#: ../../library/codecs.rst:775 +msgid "" +"Writes the concatenated iterable of strings to the stream (possibly by " +"reusing the :meth:`write` method). Infinite or very large iterables are not " +"supported. The standard bytes-to-bytes codecs do not support this method." +msgstr "" + +#: ../../library/codecs.rst:783 ../../library/codecs.rst:878 +msgid "Resets the codec buffers used for keeping internal state." +msgstr "" + +#: ../../library/codecs.rst:785 +msgid "" +"Calling this method should ensure that the data on the output is put into a " +"clean state that allows appending of new fresh data without having to rescan " +"the whole stream to recover state." +msgstr "" + +#: ../../library/codecs.rst:790 +msgid "" +"In addition to the above methods, the :class:`StreamWriter` must also " +"inherit all other methods and attributes from the underlying stream." +msgstr "" + +#: ../../library/codecs.rst:797 +msgid "StreamReader Objects" +msgstr "" + +#: ../../library/codecs.rst:799 +msgid "" +"The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " +"the following methods which every stream reader must define in order to be " +"compatible with the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:806 +msgid "Constructor for a :class:`StreamReader` instance." +msgstr "" + +#: ../../library/codecs.rst:808 +msgid "" +"All stream readers must provide this constructor interface. They are free to " +"add additional keyword arguments, but only the ones defined here are used by " +"the Python codec registry." +msgstr "" + +#: ../../library/codecs.rst:812 +msgid "" +"The *stream* argument must be a file-like object open for reading text or " +"binary data, as appropriate for the specific codec." +msgstr "" + +#: ../../library/codecs.rst:815 +msgid "" +"The :class:`StreamReader` may implement different error handling schemes by " +"providing the *errors* keyword argument. See :ref:`error-handlers` for the " +"standard error handlers the underlying stream codec may support." +msgstr "" + +#: ../../library/codecs.rst:819 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:`StreamReader` " +"object." +msgstr "" + +#: ../../library/codecs.rst:823 +msgid "" +"The set of allowed values for the *errors* argument can be extended " +"with :func:`register_error`." +msgstr "" + +#: ../../library/codecs.rst:829 +msgid "Decodes data from the stream and returns the resulting object." +msgstr "" + +#: ../../library/codecs.rst:831 +msgid "" +"The *chars* argument indicates the number of decoded code points or bytes to " +"return. The :func:`read` method will never return more data than requested, " +"but it might return less, if there is not enough available." +msgstr "" + +#: ../../library/codecs.rst:836 +msgid "" +"The *size* argument indicates the approximate maximum number of encoded " +"bytes or code points to read for decoding. The decoder can modify this " +"setting as appropriate. The default value -1 indicates to read and decode as " +"much as possible. This parameter is intended to prevent having to decode " +"huge files in one step." +msgstr "" + +#: ../../library/codecs.rst:843 +msgid "" +"The *firstline* flag indicates that it would be sufficient to only return " +"the first line, if there are decoding errors on later lines." +msgstr "" + +#: ../../library/codecs.rst:847 +msgid "" +"The method should use a greedy read strategy meaning that it should read as " +"much data as is allowed within the definition of the encoding and the given " +"size, e.g. if optional encoding endings or state markers are available on " +"the stream, these should be read too." +msgstr "" + +#: ../../library/codecs.rst:855 +msgid "Read one line from the input stream and return the decoded data." +msgstr "" + +#: ../../library/codecs.rst:857 +msgid "" +"*size*, if given, is passed as size argument to the stream's :meth:`read` " +"method." +msgstr "" + +#: ../../library/codecs.rst:860 +msgid "" +"If *keepends* is false line-endings will be stripped from the lines returned." +msgstr "" + +#: ../../library/codecs.rst:866 +msgid "" +"Read all lines available on the input stream and return them as a list of " +"lines." +msgstr "" + +#: ../../library/codecs.rst:869 +msgid "" +"Line-endings are implemented using the codec's :meth:`decode` method and are " +"included in the list entries if *keepends* is true." +msgstr "" + +#: ../../library/codecs.rst:872 +msgid "" +"*sizehint*, if given, is passed as the *size* argument to the " +"stream's :meth:`read` method." +msgstr "" + +#: ../../library/codecs.rst:880 +msgid "" +"Note that no stream repositioning should take place. This method is " +"primarily intended to be able to recover from decoding errors." +msgstr "" + +#: ../../library/codecs.rst:884 +msgid "" +"In addition to the above methods, the :class:`StreamReader` must also " +"inherit all other methods and attributes from the underlying stream." +msgstr "" + +#: ../../library/codecs.rst:890 +msgid "StreamReaderWriter Objects" +msgstr "" + +#: ../../library/codecs.rst:892 +msgid "" +"The :class:`StreamReaderWriter` is a convenience class that allows wrapping " +"streams which work in both read and write modes." +msgstr "" + +#: ../../library/codecs.rst:895 ../../library/codecs.rst:919 +msgid "" +"The design is such that one can use the factory functions returned by " +"the :func:`lookup` function to construct the instance." +msgstr "" + +#: ../../library/codecs.rst:901 +msgid "" +"Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " +"object. *Reader* and *Writer* must be factory functions or classes providing " +"the :class:`StreamReader` and :class:`StreamWriter` interface resp. Error " +"handling is done in the same way as defined for the stream readers and " +"writers." +msgstr "" + +#: ../../library/codecs.rst:906 +msgid "" +":class:`StreamReaderWriter` instances define the combined interfaces " +"of :class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " +"other methods and attributes from the underlying stream." +msgstr "" + +#: ../../library/codecs.rst:914 +msgid "StreamRecoder Objects" +msgstr "" + +#: ../../library/codecs.rst:916 +msgid "" +"The :class:`StreamRecoder` translates data from one encoding to another, " +"which is sometimes useful when dealing with different encoding environments." +msgstr "" + +#: ../../library/codecs.rst:925 +msgid "" +"Creates a :class:`StreamRecoder` instance which implements a two-way " +"conversion: *encode* and *decode* work on the frontend — the data visible to " +"code calling :meth:`~StreamReader.read` and :meth:`~StreamWriter.write`, " +"while *Reader* and *Writer* work on the backend — the data in *stream*." +msgstr "" + +#: ../../library/codecs.rst:931 +msgid "" +"You can use these objects to do transparent transcodings, e.g., from Latin-1 " +"to UTF-8 and back." +msgstr "" + +#: ../../library/codecs.rst:934 +msgid "The *stream* argument must be a file-like object." +msgstr "" + +#: ../../library/codecs.rst:936 +msgid "" +"The *encode* and *decode* arguments must adhere to the :class:`Codec` " +"interface. *Reader* and *Writer* must be factory functions or classes " +"providing objects of the :class:`StreamReader` and :class:`StreamWriter` " +"interface respectively." +msgstr "" + +#: ../../library/codecs.rst:941 +msgid "" +"Error handling is done in the same way as defined for the stream readers and " +"writers." +msgstr "" + +#: ../../library/codecs.rst:945 +msgid "" +":class:`StreamRecoder` instances define the combined interfaces " +"of :class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " +"other methods and attributes from the underlying stream." +msgstr "" + +#: ../../library/codecs.rst:953 +msgid "Encodings and Unicode" +msgstr "" + +#: ../../library/codecs.rst:955 +msgid "" +"Strings are stored internally as sequences of code points in range " +"``U+0000``--``U+10FFFF``. (See :pep:`393` for more details about the " +"implementation.) Once a string object is used outside of CPU and memory, " +"endianness and how these arrays are stored as bytes become an issue. As with " +"other codecs, serialising a string into a sequence of bytes is known as " +"*encoding*, and recreating the string from the sequence of bytes is known as " +"*decoding*. There are a variety of different text serialisation codecs, " +"which are collectivity referred to as :term:`text encodings `." +msgstr "" + +#: ../../library/codecs.rst:965 +msgid "" +"The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " +"the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " +"string object that contains code points above ``U+00FF`` can't be encoded " +"with this codec. Doing so will raise a :exc:`UnicodeEncodeError` that looks " +"like the following (although the details of the error message may differ): " +"``UnicodeEncodeError: 'latin-1' codec can't encode character '\\u1234' in " +"position 3: ordinal not in range(256)``." +msgstr "" + +#: ../../library/codecs.rst:973 +msgid "" +"There's another group of encodings (the so called charmap encodings) that " +"choose a different subset of all Unicode code points and how these code " +"points are mapped to the bytes ``0x0``--``0xff``. To see how this is done " +"simply open e.g. :file:`encodings/cp1252.py` (which is an encoding that is " +"used primarily on Windows). There's a string constant with 256 characters " +"that shows you which character is mapped to which byte value." +msgstr "" + +#: ../../library/codecs.rst:980 +msgid "" +"All of these encodings can only encode 256 of the 1114112 code points " +"defined in Unicode. A simple and straightforward way that can store each " +"Unicode code point, is to store each code point as four consecutive bytes. " +"There are two possibilities: store the bytes in big endian or in little " +"endian order. These two encodings are called ``UTF-32-BE`` and ``UTF-32-LE`` " +"respectively. Their disadvantage is that if e.g. you use ``UTF-32-BE`` on a " +"little endian machine you will always have to swap bytes on encoding and " +"decoding. ``UTF-32`` avoids this problem: bytes will always be in natural " +"endianness. When these bytes are read by a CPU with a different endianness, " +"then bytes have to be swapped though. To be able to detect the endianness of " +"a ``UTF-16`` or ``UTF-32`` byte sequence, there's the so called BOM (\"Byte " +"Order Mark\"). This is the Unicode character ``U+FEFF``. This character can " +"be prepended to every ``UTF-16`` or ``UTF-32`` byte sequence. The byte " +"swapped version of this character (``0xFFFE``) is an illegal character that " +"may not appear in a Unicode text. So when the first character in a " +"``UTF-16`` or ``UTF-32`` byte sequence appears to be a ``U+FFFE`` the bytes " +"have to be swapped on decoding. Unfortunately the character ``U+FEFF`` had a " +"second purpose as a ``ZERO WIDTH NO-BREAK SPACE``: a character that has no " +"width and doesn't allow a word to be split. It can e.g. be used to give " +"hints to a ligature algorithm. With Unicode 4.0 using ``U+FEFF`` as a ``ZERO " +"WIDTH NO-BREAK SPACE`` has been deprecated (with ``U+2060`` (``WORD " +"JOINER``) assuming this role). Nevertheless Unicode software still must be " +"able to handle ``U+FEFF`` in both roles: as a BOM it's a device to determine " +"the storage layout of the encoded bytes, and vanishes once the byte sequence " +"has been decoded into a string; as a ``ZERO WIDTH NO-BREAK SPACE`` it's a " +"normal character that will be decoded like any other." +msgstr "" + +#: ../../library/codecs.rst:1006 +msgid "" +"There's another encoding that is able to encode the full range of Unicode " +"characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " +"issues with byte order in UTF-8. Each byte in a UTF-8 byte sequence consists " +"of two parts: marker bits (the most significant bits) and payload bits. The " +"marker bits are a sequence of zero to four ``1`` bits followed by a ``0`` " +"bit. Unicode characters are encoded like this (with x being payload bits, " +"which when concatenated give the Unicode character):" +msgstr "" + +#: ../../library/codecs.rst:1015 +msgid "Range" +msgstr "" + +#: ../../library/codecs.rst:1015 +msgid "Encoding" +msgstr "" + +#: ../../library/codecs.rst:1017 +msgid "``U-00000000`` ... ``U-0000007F``" +msgstr "" + +#: ../../library/codecs.rst:1017 +msgid "0xxxxxxx" +msgstr "" + +#: ../../library/codecs.rst:1019 +msgid "``U-00000080`` ... ``U-000007FF``" +msgstr "" + +#: ../../library/codecs.rst:1019 +msgid "110xxxxx 10xxxxxx" +msgstr "" + +#: ../../library/codecs.rst:1021 +msgid "``U-00000800`` ... ``U-0000FFFF``" +msgstr "" + +#: ../../library/codecs.rst:1021 +msgid "1110xxxx 10xxxxxx 10xxxxxx" +msgstr "" + +#: ../../library/codecs.rst:1023 +msgid "``U-00010000`` ... ``U-0010FFFF``" +msgstr "" + +#: ../../library/codecs.rst:1023 +msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" +msgstr "" + +#: ../../library/codecs.rst:1026 +msgid "" +"The least significant bit of the Unicode character is the rightmost x bit." +msgstr "" + +#: ../../library/codecs.rst:1028 +msgid "" +"As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " +"character in the decoded string (even if it's the first character) is " +"treated as a ``ZERO WIDTH NO-BREAK SPACE``." +msgstr "" + +#: ../../library/codecs.rst:1032 +msgid "" +"Without external information it's impossible to reliably determine which " +"encoding was used for encoding a string. Each charmap encoding can decode " +"any random byte sequence. However that's not possible with UTF-8, as UTF-8 " +"byte sequences have a structure that doesn't allow arbitrary byte sequences. " +"To increase the reliability with which a UTF-8 encoding can be detected, " +"Microsoft invented a variant of UTF-8 (that Python calls ``\"utf-8-sig\"``) " +"for its Notepad program: Before any of the Unicode characters is written to " +"the file, a UTF-8 encoded BOM (which looks like this as a byte sequence: " +"``0xef``, ``0xbb``, ``0xbf``) is written. As it's rather improbable that any " +"charmap encoded file starts with these byte values (which would e.g. map to" +msgstr "" + +#: ../../library/codecs.rst:0 +msgid "LATIN SMALL LETTER I WITH DIAERESIS" +msgstr "" + +#: ../../library/codecs.rst:0 +msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" +msgstr "" + +#: ../../library/codecs.rst:0 +msgid "INVERTED QUESTION MARK" +msgstr "" + +#: ../../library/codecs.rst:1048 +msgid "" +"in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " +"can be correctly guessed from the byte sequence. So here the BOM is not used " +"to be able to determine the byte order used for generating the byte " +"sequence, but as a signature that helps in guessing the encoding. On " +"encoding the utf-8-sig codec will write ``0xef``, ``0xbb``, ``0xbf`` as the " +"first three bytes to the file. On decoding ``utf-8-sig`` will skip those " +"three bytes if they appear as the first three bytes in the file. In UTF-8, " +"the use of the BOM is discouraged and should generally be avoided." +msgstr "" + +#: ../../library/codecs.rst:1061 +msgid "Standard Encodings" +msgstr "" + +#: ../../library/codecs.rst:1063 +msgid "" +"Python comes with a number of codecs built-in, either implemented as C " +"functions or with dictionaries as mapping tables. The following table lists " +"the codecs by name, together with a few common aliases, and the languages " +"for which the encoding is likely used. Neither the list of aliases nor the " +"list of languages is meant to be exhaustive. Notice that spelling " +"alternatives that only differ in case or use a hyphen instead of an " +"underscore are also valid aliases because they are equivalent when " +"normalized by :func:`~encodings.normalize_encoding`. For example, " +"``'utf-8'`` is a valid alias for the ``'utf_8'`` codec." +msgstr "" + +#: ../../library/codecs.rst:1075 +msgid "" +"The below table lists the most common aliases, for a complete list refer to " +"the source :source:`aliases.py ` file." +msgstr "" + +#: ../../library/codecs.rst:1078 +msgid "" +"On Windows, ``cpXXX`` codecs are available for all code pages. But only " +"codecs listed in the following table are guarantead to exist on other " +"platforms." +msgstr "" + +#: ../../library/codecs.rst:1084 +msgid "" +"Some common encodings can bypass the codecs lookup machinery to improve " +"performance. These optimization opportunities are only recognized by CPython " +"for a limited set of (case insensitive) aliases: utf-8, utf8, latin-1, " +"latin1, iso-8859-1, iso8859-1, mbcs (Windows only), ascii, us-ascii, utf-16, " +"utf16, utf-32, utf32, and the same using underscores instead of dashes. " +"Using alternative aliases for these encodings may result in slower execution." +msgstr "" + +#: ../../library/codecs.rst:1092 +msgid "Optimization opportunity recognized for us-ascii." +msgstr "" + +#: ../../library/codecs.rst:1095 +msgid "" +"Many of the character sets support the same languages. They vary in " +"individual characters (e.g. whether the EURO SIGN is supported or not), and " +"in the assignment of characters to code positions. For the European " +"languages in particular, the following variants typically exist:" +msgstr "" + +#: ../../library/codecs.rst:1100 +msgid "an ISO 8859 codeset" +msgstr "" + +#: ../../library/codecs.rst:1102 +msgid "" +"a Microsoft Windows code page, which is typically derived from an 8859 " +"codeset, but replaces control characters with additional graphic characters" +msgstr "" + +#: ../../library/codecs.rst:1105 +msgid "an IBM EBCDIC code page" +msgstr "" + +#: ../../library/codecs.rst:1107 +msgid "an IBM PC code page, which is ASCII compatible" +msgstr "" + +#: ../../library/codecs.rst:1112 ../../library/codecs.rst:1371 +#: ../../library/codecs.rst:1443 ../../library/codecs.rst:1498 +msgid "Codec" +msgstr "" + +#: ../../library/codecs.rst:1112 ../../library/codecs.rst:1371 +#: ../../library/codecs.rst:1443 ../../library/codecs.rst:1498 +msgid "Aliases" +msgstr "" + +#: ../../library/codecs.rst:1112 +msgid "Languages" +msgstr "" + +#: ../../library/codecs.rst:1114 +msgid "ascii" +msgstr "" + +#: ../../library/codecs.rst:1114 +msgid "646, us-ascii" +msgstr "" + +#: ../../library/codecs.rst:1114 ../../library/codecs.rst:1120 +#: ../../library/codecs.rst:1128 +msgid "English" +msgstr "" + +#: ../../library/codecs.rst:1116 +msgid "big5" +msgstr "" + +#: ../../library/codecs.rst:1116 +msgid "big5-tw, csbig5" +msgstr "" + +#: ../../library/codecs.rst:1116 ../../library/codecs.rst:1118 +#: ../../library/codecs.rst:1177 +msgid "Traditional Chinese" +msgstr "" + +#: ../../library/codecs.rst:1118 +msgid "big5hkscs" +msgstr "" + +#: ../../library/codecs.rst:1118 +msgid "big5-hkscs, hkscs" +msgstr "" + +#: ../../library/codecs.rst:1120 +msgid "cp037" +msgstr "" + +#: ../../library/codecs.rst:1120 +msgid "IBM037, IBM039" +msgstr "" + +#: ../../library/codecs.rst:1122 +msgid "cp273" +msgstr "" + +#: ../../library/codecs.rst:1122 +msgid "273, IBM273, csIBM273" +msgstr "" + +#: ../../library/codecs.rst:1122 +msgid "German" +msgstr "" + +#: ../../library/codecs.rst:1126 +msgid "cp424" +msgstr "" + +#: ../../library/codecs.rst:1126 +msgid "EBCDIC-CP-HE, IBM424" +msgstr "" + +#: ../../library/codecs.rst:1126 ../../library/codecs.rst:1146 +#: ../../library/codecs.rst:1156 ../../library/codecs.rst:1200 +#: ../../library/codecs.rst:1263 +msgid "Hebrew" +msgstr "" + +#: ../../library/codecs.rst:1128 +msgid "cp437" +msgstr "" + +#: ../../library/codecs.rst:1128 +msgid "437, IBM437" +msgstr "" + +#: ../../library/codecs.rst:1130 +msgid "cp500" +msgstr "" + +#: ../../library/codecs.rst:1130 +msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" +msgstr "" + +#: ../../library/codecs.rst:1130 ../../library/codecs.rst:1139 +#: ../../library/codecs.rst:1150 ../../library/codecs.rst:1187 +#: ../../library/codecs.rst:1194 ../../library/codecs.rst:1247 +#: ../../library/codecs.rst:1275 ../../library/codecs.rst:1303 +msgid "Western Europe" +msgstr "" + +#: ../../library/codecs.rst:1133 +msgid "cp720" +msgstr "" + +#: ../../library/codecs.rst:1133 ../../library/codecs.rst:1160 +#: ../../library/codecs.rst:1202 ../../library/codecs.rst:1259 +msgid "Arabic" +msgstr "" + +#: ../../library/codecs.rst:1135 +msgid "cp737" +msgstr "" + +#: ../../library/codecs.rst:1135 ../../library/codecs.rst:1166 +#: ../../library/codecs.rst:1170 ../../library/codecs.rst:1196 +#: ../../library/codecs.rst:1261 ../../library/codecs.rst:1296 +msgid "Greek" +msgstr "" + +#: ../../library/codecs.rst:1137 +msgid "cp775" +msgstr "" + +#: ../../library/codecs.rst:1137 +msgid "IBM775" +msgstr "" + +#: ../../library/codecs.rst:1137 ../../library/codecs.rst:1204 +#: ../../library/codecs.rst:1254 ../../library/codecs.rst:1271 +msgid "Baltic languages" +msgstr "" + +#: ../../library/codecs.rst:1139 +msgid "cp850" +msgstr "" + +#: ../../library/codecs.rst:1139 +msgid "850, IBM850" +msgstr "" + +#: ../../library/codecs.rst:1141 +msgid "cp852" +msgstr "" + +#: ../../library/codecs.rst:1141 +msgid "852, IBM852" +msgstr "" + +#: ../../library/codecs.rst:1141 ../../library/codecs.rst:1189 +#: ../../library/codecs.rst:1250 ../../library/codecs.rst:1300 +msgid "Central and Eastern Europe" +msgstr "" + +#: ../../library/codecs.rst:1143 +msgid "cp855" +msgstr "" + +#: ../../library/codecs.rst:1143 +msgid "855, IBM855" +msgstr "" + +#: ../../library/codecs.rst:1143 ../../library/codecs.rst:1191 +#: ../../library/codecs.rst:1256 ../../library/codecs.rst:1293 +msgid "Belarusian, Bulgarian, Macedonian, Russian, Serbian" +msgstr "" + +#: ../../library/codecs.rst:1146 +msgid "cp856" +msgstr "" + +#: ../../library/codecs.rst:1148 +msgid "cp857" +msgstr "" + +#: ../../library/codecs.rst:1148 +msgid "857, IBM857" +msgstr "" + +#: ../../library/codecs.rst:1148 ../../library/codecs.rst:1181 +#: ../../library/codecs.rst:1198 ../../library/codecs.rst:1265 +#: ../../library/codecs.rst:1305 +msgid "Turkish" +msgstr "" + +#: ../../library/codecs.rst:1150 +msgid "cp858" +msgstr "" + +#: ../../library/codecs.rst:1150 +msgid "858, IBM858" +msgstr "" + +#: ../../library/codecs.rst:1152 +msgid "cp860" +msgstr "" + +#: ../../library/codecs.rst:1152 +msgid "860, IBM860" +msgstr "" + +#: ../../library/codecs.rst:1152 +msgid "Portuguese" +msgstr "" + +#: ../../library/codecs.rst:1154 +msgid "cp861" +msgstr "" + +#: ../../library/codecs.rst:1154 +msgid "861, CP-IS, IBM861" +msgstr "" + +#: ../../library/codecs.rst:1154 ../../library/codecs.rst:1298 +msgid "Icelandic" +msgstr "" + +#: ../../library/codecs.rst:1156 +msgid "cp862" +msgstr "" + +#: ../../library/codecs.rst:1156 +msgid "862, IBM862" +msgstr "" + +#: ../../library/codecs.rst:1158 +msgid "cp863" +msgstr "" + +#: ../../library/codecs.rst:1158 +msgid "863, IBM863" +msgstr "" + +#: ../../library/codecs.rst:1158 +msgid "Canadian" +msgstr "" + +#: ../../library/codecs.rst:1160 +msgid "cp864" +msgstr "" + +#: ../../library/codecs.rst:1160 +msgid "IBM864" +msgstr "" + +#: ../../library/codecs.rst:1162 +msgid "cp865" +msgstr "" + +#: ../../library/codecs.rst:1162 +msgid "865, IBM865" +msgstr "" + +#: ../../library/codecs.rst:1162 +msgid "Danish, Norwegian" +msgstr "" + +#: ../../library/codecs.rst:1164 +msgid "cp866" +msgstr "" + +#: ../../library/codecs.rst:1164 +msgid "866, IBM866" +msgstr "" + +#: ../../library/codecs.rst:1164 ../../library/codecs.rst:1281 +msgid "Russian" +msgstr "" + +#: ../../library/codecs.rst:1166 +msgid "cp869" +msgstr "" + +#: ../../library/codecs.rst:1166 +msgid "869, CP-GR, IBM869" +msgstr "" + +#: ../../library/codecs.rst:1168 +msgid "cp874" +msgstr "" + +#: ../../library/codecs.rst:1168 +msgid "Thai" +msgstr "" + +#: ../../library/codecs.rst:1170 +msgid "cp875" +msgstr "" + +#: ../../library/codecs.rst:1172 +msgid "cp932" +msgstr "" + +#: ../../library/codecs.rst:1172 +msgid "932, ms932, mskanji, ms-kanji, windows-31j" +msgstr "" + +#: ../../library/codecs.rst:1172 ../../library/codecs.rst:1208 +#: ../../library/codecs.rst:1210 ../../library/codecs.rst:1212 +#: ../../library/codecs.rst:1229 ../../library/codecs.rst:1232 +#: ../../library/codecs.rst:1237 ../../library/codecs.rst:1240 +#: ../../library/codecs.rst:1242 ../../library/codecs.rst:1310 +#: ../../library/codecs.rst:1313 ../../library/codecs.rst:1316 +msgid "Japanese" +msgstr "" + +#: ../../library/codecs.rst:1175 +msgid "cp949" +msgstr "" + +#: ../../library/codecs.rst:1175 +msgid "949, ms949, uhc" +msgstr "" + +#: ../../library/codecs.rst:1175 ../../library/codecs.rst:1214 +#: ../../library/codecs.rst:1244 ../../library/codecs.rst:1279 +msgid "Korean" +msgstr "" + +#: ../../library/codecs.rst:1177 +msgid "cp950" +msgstr "" + +#: ../../library/codecs.rst:1177 +msgid "950, ms950" +msgstr "" + +#: ../../library/codecs.rst:1179 +msgid "cp1006" +msgstr "" + +#: ../../library/codecs.rst:1179 +msgid "Urdu" +msgstr "" + +#: ../../library/codecs.rst:1181 +msgid "cp1026" +msgstr "" + +#: ../../library/codecs.rst:1181 +msgid "ibm1026" +msgstr "" + +#: ../../library/codecs.rst:1183 +msgid "cp1125" +msgstr "" + +#: ../../library/codecs.rst:1183 +msgid "1125, ibm1125, cp866u, ruscii" +msgstr "" + +#: ../../library/codecs.rst:1183 ../../library/codecs.rst:1287 +msgid "Ukrainian" +msgstr "" + +#: ../../library/codecs.rst:1187 +msgid "cp1140" +msgstr "" + +#: ../../library/codecs.rst:1187 +msgid "ibm1140" +msgstr "" + +#: ../../library/codecs.rst:1189 +msgid "cp1250" +msgstr "" + +#: ../../library/codecs.rst:1189 +msgid "windows-1250" +msgstr "" + +#: ../../library/codecs.rst:1191 +msgid "cp1251" +msgstr "" + +#: ../../library/codecs.rst:1191 +msgid "windows-1251" +msgstr "" + +#: ../../library/codecs.rst:1194 +msgid "cp1252" +msgstr "" + +#: ../../library/codecs.rst:1194 +msgid "windows-1252" +msgstr "" + +#: ../../library/codecs.rst:1196 +msgid "cp1253" +msgstr "" + +#: ../../library/codecs.rst:1196 +msgid "windows-1253" +msgstr "" + +#: ../../library/codecs.rst:1198 +msgid "cp1254" +msgstr "" + +#: ../../library/codecs.rst:1198 +msgid "windows-1254" +msgstr "" + +#: ../../library/codecs.rst:1200 +msgid "cp1255" +msgstr "" + +#: ../../library/codecs.rst:1200 +msgid "windows-1255" +msgstr "" + +#: ../../library/codecs.rst:1202 +msgid "cp1256" +msgstr "" + +#: ../../library/codecs.rst:1202 +msgid "windows-1256" +msgstr "" + +#: ../../library/codecs.rst:1204 +msgid "cp1257" +msgstr "" + +#: ../../library/codecs.rst:1204 +msgid "windows-1257" +msgstr "" + +#: ../../library/codecs.rst:1206 +msgid "cp1258" +msgstr "" + +#: ../../library/codecs.rst:1206 +msgid "windows-1258" +msgstr "" + +#: ../../library/codecs.rst:1206 +msgid "Vietnamese" +msgstr "" + +#: ../../library/codecs.rst:1208 +msgid "euc_jp" +msgstr "" + +#: ../../library/codecs.rst:1208 +msgid "eucjp, ujis, u-jis" +msgstr "" + +#: ../../library/codecs.rst:1210 +msgid "euc_jis_2004" +msgstr "" + +#: ../../library/codecs.rst:1210 +msgid "jisx0213, eucjis2004" +msgstr "" + +#: ../../library/codecs.rst:1212 +msgid "euc_jisx0213" +msgstr "" + +#: ../../library/codecs.rst:1212 +msgid "eucjisx0213" +msgstr "" + +#: ../../library/codecs.rst:1214 +msgid "euc_kr" +msgstr "" + +#: ../../library/codecs.rst:1214 +msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" +msgstr "" + +#: ../../library/codecs.rst:1218 +msgid "gb2312" +msgstr "" + +#: ../../library/codecs.rst:1218 +msgid "" +"chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " +"gb2312-80, iso-ir-58" +msgstr "" + +#: ../../library/codecs.rst:1218 ../../library/codecs.rst:1227 +msgid "Simplified Chinese" +msgstr "" + +#: ../../library/codecs.rst:1223 +msgid "gbk" +msgstr "" + +#: ../../library/codecs.rst:1223 +msgid "936, cp936, ms936" +msgstr "" + +#: ../../library/codecs.rst:1223 ../../library/codecs.rst:1225 +msgid "Unified Chinese" +msgstr "" + +#: ../../library/codecs.rst:1225 +msgid "gb18030" +msgstr "" + +#: ../../library/codecs.rst:1225 +msgid "gb18030-2000" +msgstr "" + +#: ../../library/codecs.rst:1227 +msgid "hz" +msgstr "" + +#: ../../library/codecs.rst:1227 +msgid "hzgb, hz-gb, hz-gb-2312" +msgstr "" + +#: ../../library/codecs.rst:1229 +msgid "iso2022_jp" +msgstr "" + +#: ../../library/codecs.rst:1229 +msgid "csiso2022jp, iso2022jp, iso-2022-jp" +msgstr "" + +#: ../../library/codecs.rst:1232 +msgid "iso2022_jp_1" +msgstr "" + +#: ../../library/codecs.rst:1232 +msgid "iso2022jp-1, iso-2022-jp-1" +msgstr "" + +#: ../../library/codecs.rst:1234 +msgid "iso2022_jp_2" +msgstr "" + +#: ../../library/codecs.rst:1234 +msgid "iso2022jp-2, iso-2022-jp-2" +msgstr "" + +#: ../../library/codecs.rst:1234 +msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" +msgstr "" + +#: ../../library/codecs.rst:1237 +msgid "iso2022_jp_2004" +msgstr "" + +#: ../../library/codecs.rst:1237 +msgid "iso2022jp-2004, iso-2022-jp-2004" +msgstr "" + +#: ../../library/codecs.rst:1240 +msgid "iso2022_jp_3" +msgstr "" + +#: ../../library/codecs.rst:1240 +msgid "iso2022jp-3, iso-2022-jp-3" +msgstr "" + +#: ../../library/codecs.rst:1242 +msgid "iso2022_jp_ext" +msgstr "" + +#: ../../library/codecs.rst:1242 +msgid "iso2022jp-ext, iso-2022-jp-ext" +msgstr "" + +#: ../../library/codecs.rst:1244 +msgid "iso2022_kr" +msgstr "" + +#: ../../library/codecs.rst:1244 +msgid "csiso2022kr, iso2022kr, iso-2022-kr" +msgstr "" + +#: ../../library/codecs.rst:1247 +msgid "latin_1" +msgstr "" + +#: ../../library/codecs.rst:1247 +msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" +msgstr "" + +#: ../../library/codecs.rst:1250 +msgid "iso8859_2" +msgstr "" + +#: ../../library/codecs.rst:1250 +msgid "iso-8859-2, latin2, L2" +msgstr "" + +#: ../../library/codecs.rst:1252 +msgid "iso8859_3" +msgstr "" + +#: ../../library/codecs.rst:1252 +msgid "iso-8859-3, latin3, L3" +msgstr "" + +#: ../../library/codecs.rst:1252 +msgid "Esperanto, Maltese" +msgstr "" + +#: ../../library/codecs.rst:1254 +msgid "iso8859_4" +msgstr "" + +#: ../../library/codecs.rst:1254 +msgid "iso-8859-4, latin4, L4" +msgstr "" + +#: ../../library/codecs.rst:1256 +msgid "iso8859_5" +msgstr "" + +#: ../../library/codecs.rst:1256 +msgid "iso-8859-5, cyrillic" +msgstr "" + +#: ../../library/codecs.rst:1259 +msgid "iso8859_6" +msgstr "" + +#: ../../library/codecs.rst:1259 +msgid "iso-8859-6, arabic" +msgstr "" + +#: ../../library/codecs.rst:1261 +msgid "iso8859_7" +msgstr "" + +#: ../../library/codecs.rst:1261 +msgid "iso-8859-7, greek, greek8" +msgstr "" + +#: ../../library/codecs.rst:1263 +msgid "iso8859_8" +msgstr "" + +#: ../../library/codecs.rst:1263 +msgid "iso-8859-8, hebrew" +msgstr "" + +#: ../../library/codecs.rst:1265 +msgid "iso8859_9" +msgstr "" + +#: ../../library/codecs.rst:1265 +msgid "iso-8859-9, latin5, L5" +msgstr "" + +#: ../../library/codecs.rst:1267 +msgid "iso8859_10" +msgstr "" + +#: ../../library/codecs.rst:1267 +msgid "iso-8859-10, latin6, L6" +msgstr "" + +#: ../../library/codecs.rst:1267 +msgid "Nordic languages" +msgstr "" + +#: ../../library/codecs.rst:1269 +msgid "iso8859_11" +msgstr "" + +#: ../../library/codecs.rst:1269 +msgid "iso-8859-11, thai" +msgstr "" + +#: ../../library/codecs.rst:1269 +msgid "Thai languages" +msgstr "" + +#: ../../library/codecs.rst:1271 +msgid "iso8859_13" +msgstr "" + +#: ../../library/codecs.rst:1271 +msgid "iso-8859-13, latin7, L7" +msgstr "" + +#: ../../library/codecs.rst:1273 +msgid "iso8859_14" +msgstr "" + +#: ../../library/codecs.rst:1273 +msgid "iso-8859-14, latin8, L8" +msgstr "" + +#: ../../library/codecs.rst:1273 +msgid "Celtic languages" +msgstr "" + +#: ../../library/codecs.rst:1275 +msgid "iso8859_15" +msgstr "" + +#: ../../library/codecs.rst:1275 +msgid "iso-8859-15, latin9, L9" +msgstr "" + +#: ../../library/codecs.rst:1277 +msgid "iso8859_16" +msgstr "" + +#: ../../library/codecs.rst:1277 +msgid "iso-8859-16, latin10, L10" +msgstr "" + +#: ../../library/codecs.rst:1277 +msgid "South-Eastern Europe" +msgstr "" + +#: ../../library/codecs.rst:1279 +msgid "johab" +msgstr "" + +#: ../../library/codecs.rst:1279 +msgid "cp1361, ms1361" +msgstr "" + +#: ../../library/codecs.rst:1281 +msgid "koi8_r" +msgstr "" + +#: ../../library/codecs.rst:1283 +msgid "koi8_t" +msgstr "" + +#: ../../library/codecs.rst:1283 +msgid "Tajik" +msgstr "" + +#: ../../library/codecs.rst:1287 +msgid "koi8_u" +msgstr "" + +#: ../../library/codecs.rst:1289 +msgid "kz1048" +msgstr "" + +#: ../../library/codecs.rst:1289 +msgid "kz_1048, strk1048_2002, rk1048" +msgstr "" + +#: ../../library/codecs.rst:1289 ../../library/codecs.rst:1307 +msgid "Kazakh" +msgstr "" + +#: ../../library/codecs.rst:1293 +msgid "mac_cyrillic" +msgstr "" + +#: ../../library/codecs.rst:1293 +msgid "maccyrillic" +msgstr "" + +#: ../../library/codecs.rst:1296 +msgid "mac_greek" +msgstr "" + +#: ../../library/codecs.rst:1296 +msgid "macgreek" +msgstr "" + +#: ../../library/codecs.rst:1298 +msgid "mac_iceland" +msgstr "" + +#: ../../library/codecs.rst:1298 +msgid "maciceland" +msgstr "" + +#: ../../library/codecs.rst:1300 +msgid "mac_latin2" +msgstr "" + +#: ../../library/codecs.rst:1300 +msgid "maclatin2, maccentraleurope, mac_centeuro" +msgstr "" + +#: ../../library/codecs.rst:1303 +msgid "mac_roman" +msgstr "" + +#: ../../library/codecs.rst:1303 +msgid "macroman, macintosh" +msgstr "" + +#: ../../library/codecs.rst:1305 +msgid "mac_turkish" +msgstr "" + +#: ../../library/codecs.rst:1305 +msgid "macturkish" +msgstr "" + +#: ../../library/codecs.rst:1307 +msgid "ptcp154" +msgstr "" + +#: ../../library/codecs.rst:1307 +msgid "csptcp154, pt154, cp154, cyrillic-asian" +msgstr "" + +#: ../../library/codecs.rst:1310 +msgid "shift_jis" +msgstr "" + +#: ../../library/codecs.rst:1310 +msgid "csshiftjis, shiftjis, sjis, s_jis" +msgstr "" + +#: ../../library/codecs.rst:1313 +msgid "shift_jis_2004" +msgstr "" + +#: ../../library/codecs.rst:1313 +msgid "shiftjis2004, sjis_2004, sjis2004" +msgstr "" + +#: ../../library/codecs.rst:1316 +msgid "shift_jisx0213" +msgstr "" + +#: ../../library/codecs.rst:1316 +msgid "shiftjisx0213, sjisx0213, s_jisx0213" +msgstr "" + +#: ../../library/codecs.rst:1319 +msgid "utf_32" +msgstr "" + +#: ../../library/codecs.rst:1319 +msgid "U32, utf32" +msgstr "" + +#: ../../library/codecs.rst:1319 ../../library/codecs.rst:1321 +#: ../../library/codecs.rst:1323 ../../library/codecs.rst:1325 +#: ../../library/codecs.rst:1327 ../../library/codecs.rst:1329 +#: ../../library/codecs.rst:1331 ../../library/codecs.rst:1333 +#: ../../library/codecs.rst:1335 +msgid "all languages" +msgstr "" + +#: ../../library/codecs.rst:1321 +msgid "utf_32_be" +msgstr "" + +#: ../../library/codecs.rst:1321 +msgid "UTF-32BE" +msgstr "" + +#: ../../library/codecs.rst:1323 +msgid "utf_32_le" +msgstr "" + +#: ../../library/codecs.rst:1323 +msgid "UTF-32LE" +msgstr "" + +#: ../../library/codecs.rst:1325 +msgid "utf_16" +msgstr "" + +#: ../../library/codecs.rst:1325 +msgid "U16, utf16" +msgstr "" + +#: ../../library/codecs.rst:1327 +msgid "utf_16_be" +msgstr "" + +#: ../../library/codecs.rst:1327 +msgid "UTF-16BE" +msgstr "" + +#: ../../library/codecs.rst:1329 +msgid "utf_16_le" +msgstr "" + +#: ../../library/codecs.rst:1329 +msgid "UTF-16LE" +msgstr "" + +#: ../../library/codecs.rst:1331 +msgid "utf_7" +msgstr "" + +#: ../../library/codecs.rst:1331 +msgid "U7, unicode-1-1-utf-7" +msgstr "" + +#: ../../library/codecs.rst:1333 +msgid "utf_8" +msgstr "" + +#: ../../library/codecs.rst:1333 +msgid "U8, UTF, utf8, cp65001" +msgstr "" + +#: ../../library/codecs.rst:1335 +msgid "utf_8_sig" +msgstr "" + +#: ../../library/codecs.rst:1338 +msgid "" +"The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " +"(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " +"decode byte sequences that correspond to surrogate code points." +msgstr "" + +#: ../../library/codecs.rst:1344 +msgid "``cp65001`` is now an alias to ``utf_8``." +msgstr "" + +#: ../../library/codecs.rst:1347 +msgid "On Windows, ``cpXXX`` codecs are now available for all code pages." +msgstr "" + +#: ../../library/codecs.rst:1352 +msgid "Python Specific Encodings" +msgstr "" + +#: ../../library/codecs.rst:1354 +msgid "" +"A number of predefined codecs are specific to Python, so their codec names " +"have no meaning outside Python. These are listed in the tables below based " +"on the expected input and output types (note that while text encodings are " +"the most common use case for codecs, the underlying codec infrastructure " +"supports arbitrary data transforms rather than just text encodings). For " +"asymmetric codecs, the stated meaning describes the encoding direction." +msgstr "" + +#: ../../library/codecs.rst:1362 +msgid "Text Encodings" +msgstr "" + +#: ../../library/codecs.rst:1364 +msgid "" +"The following codecs provide :class:`str` to :class:`bytes` encoding " +"and :term:`bytes-like object` to :class:`str` decoding, similar to the " +"Unicode text encodings." +msgstr "" + +#: ../../library/codecs.rst:1373 +msgid "idna" +msgstr "" + +#: ../../library/codecs.rst:1373 +msgid "" +"Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " +"``errors='strict'`` is supported." +msgstr "" + +#: ../../library/codecs.rst:1379 +msgid "mbcs" +msgstr "" + +#: ../../library/codecs.rst:1379 +msgid "ansi, dbcs" +msgstr "" + +#: ../../library/codecs.rst:1379 +msgid "" +"Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." +msgstr "" + +#: ../../library/codecs.rst:1383 +msgid "oem" +msgstr "" + +#: ../../library/codecs.rst:1383 +msgid "" +"Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." +msgstr "" + +#: ../../library/codecs.rst:1389 +msgid "palmos" +msgstr "" + +#: ../../library/codecs.rst:1389 +msgid "Encoding of PalmOS 3.5." +msgstr "" + +#: ../../library/codecs.rst:1391 +msgid "punycode" +msgstr "" + +#: ../../library/codecs.rst:1391 +msgid "Implement :rfc:`3492`. Stateful codecs are not supported." +msgstr "" + +#: ../../library/codecs.rst:1395 +msgid "raw_unicode_escape" +msgstr "" + +#: ../../library/codecs.rst:1395 +msgid "" +"Latin-1 encoding with :samp:`\\\\u{XXXX}` and :samp:`\\\\U{XXXXXXXX}` for " +"other code points. Existing backslashes are not escaped in any way. It is " +"used in the Python pickle protocol." +msgstr "" + +#: ../../library/codecs.rst:1405 +msgid "undefined" +msgstr "" + +#: ../../library/codecs.rst:1405 +msgid "This Codec should only be used for testing purposes." +msgstr "" + +#: ../../library/codecs.rst:1409 +msgid "" +"Raise an exception for all conversions, even empty strings. The error " +"handler is ignored." +msgstr "" + +#: ../../library/codecs.rst:1414 +msgid "unicode_escape" +msgstr "" + +#: ../../library/codecs.rst:1414 +msgid "" +"Encoding suitable as the contents of a Unicode literal in ASCII-encoded " +"Python source code, except that quotes are not escaped. Decode from Latin-1 " +"source code. Beware that Python source code actually uses UTF-8 by default." +msgstr "" + +#: ../../library/codecs.rst:1426 +msgid "\"unicode_internal\" codec is removed." +msgstr "" + +#: ../../library/codecs.rst:1433 +msgid "Binary Transforms" +msgstr "" + +#: ../../library/codecs.rst:1435 +msgid "" +"The following codecs provide binary transforms: :term:`bytes-like object` " +"to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " +"(which only produces :class:`str` output)." +msgstr "" + +#: ../../library/codecs.rst:1443 +msgid "Encoder / decoder" +msgstr "" + +#: ../../library/codecs.rst:1445 +msgid "base64_codec [#b64]_" +msgstr "" + +#: ../../library/codecs.rst:1445 +msgid "base64, base_64" +msgstr "" + +#: ../../library/codecs.rst:1445 +msgid "" +"Convert the operand to multiline MIME base64 (the result always includes a " +"trailing ``'\\n'``)." +msgstr "" + +#: ../../library/codecs.rst:1450 +msgid "" +"accepts any :term:`bytes-like object` as input for encoding and decoding" +msgstr "" + +#: ../../library/codecs.rst:1445 +msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" +msgstr "" + +#: ../../library/codecs.rst:1456 +msgid "bz2_codec" +msgstr "" + +#: ../../library/codecs.rst:1456 +msgid "bz2" +msgstr "" + +#: ../../library/codecs.rst:1456 +msgid "Compress the operand using bz2." +msgstr "" + +#: ../../library/codecs.rst:1456 +msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" +msgstr "" + +#: ../../library/codecs.rst:1459 +msgid "hex_codec" +msgstr "" + +#: ../../library/codecs.rst:1459 +msgid "hex" +msgstr "" + +#: ../../library/codecs.rst:1459 +msgid "" +"Convert the operand to hexadecimal representation, with two digits per byte." +msgstr "" + +#: ../../library/codecs.rst:1459 +msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" +msgstr "" + +#: ../../library/codecs.rst:1464 +msgid "quopri_codec" +msgstr "" + +#: ../../library/codecs.rst:1464 +msgid "quopri, quotedprintable, quoted_printable" +msgstr "" + +#: ../../library/codecs.rst:1464 +msgid "Convert the operand to MIME quoted printable." +msgstr "" + +#: ../../library/codecs.rst:1464 +msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" +msgstr "" + +#: ../../library/codecs.rst:1468 +msgid "uu_codec" +msgstr "" + +#: ../../library/codecs.rst:1468 +msgid "uu" +msgstr "" + +#: ../../library/codecs.rst:1468 +msgid "Convert the operand using uuencode." +msgstr "" + +#: ../../library/codecs.rst:1471 +msgid "zlib_codec" +msgstr "" + +#: ../../library/codecs.rst:1471 +msgid "zip, zlib" +msgstr "" + +#: ../../library/codecs.rst:1471 +msgid "Compress the operand using gzip." +msgstr "" + +#: ../../library/codecs.rst:1471 +msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" +msgstr "" + +#: ../../library/codecs.rst:1475 +msgid "" +"In addition to :term:`bytes-like objects `, " +"``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " +"decoding" +msgstr "" + +#: ../../library/codecs.rst:1479 +msgid "Restoration of the binary transforms." +msgstr "" + +#: ../../library/codecs.rst:1482 +msgid "Restoration of the aliases for the binary transforms." +msgstr "" + +#: ../../library/codecs.rst:1489 +msgid "Text Transforms" +msgstr "" + +#: ../../library/codecs.rst:1491 +msgid "" +"The following codec provides a text transform: a :class:`str` " +"to :class:`str` mapping. It is not supported by :meth:`str.encode` (which " +"only produces :class:`bytes` output)." +msgstr "" + +#: ../../library/codecs.rst:1500 +msgid "rot_13" +msgstr "" + +#: ../../library/codecs.rst:1500 +msgid "rot13" +msgstr "" + +#: ../../library/codecs.rst:1500 +msgid "Return the Caesar-cypher encryption of the operand." +msgstr "" + +#: ../../library/codecs.rst:1505 +msgid "Restoration of the ``rot_13`` text transform." +msgstr "" + +#: ../../library/codecs.rst:1508 +msgid "Restoration of the ``rot13`` alias." +msgstr "" + +#: ../../library/codecs.rst:1513 +msgid ":mod:`encodings` --- Encodings package" +msgstr "" + +#: ../../library/codecs.rst:1518 +msgid "This module implements the following functions:" +msgstr "" + +#: ../../library/codecs.rst:1522 +msgid "Normalize encoding name *encoding*." +msgstr "" + +#: ../../library/codecs.rst:1524 +msgid "" +"Normalization works as follows: all non-alphanumeric characters except the " +"dot used for Python package names are collapsed and replaced with a single " +"underscore, leading and trailing underscores are removed. For example, ``' " +"-;#'`` becomes ``'_'``." +msgstr "" + +#: ../../library/codecs.rst:1529 +msgid "Note that *encoding* should be ASCII only." +msgstr "" + +#: ../../library/codecs.rst:1533 +msgid "" +"The following functions should not be used directly, except for testing " +"purposes; :func:`codecs.lookup` should be used instead." +msgstr "" + +#: ../../library/codecs.rst:1539 +msgid "" +"Search for the codec module corresponding to the given encoding name " +"*encoding*." +msgstr "" + +#: ../../library/codecs.rst:1542 +msgid "" +"This function first normalizes the *encoding* " +"using :func:`normalize_encoding`, then looks for a corresponding alias. It " +"attempts to import a codec module from the encodings package using either " +"the alias or the normalized name. If the module is found and defines a valid " +"``getregentry()`` function that returns a :class:`codecs.CodecInfo` object, " +"the codec is cached and returned." +msgstr "" + +#: ../../library/codecs.rst:1549 +msgid "" +"If the codec module defines a ``getaliases()`` function any returned aliases " +"are registered for future use." +msgstr "" + +#: ../../library/codecs.rst:1555 +msgid "" +"Search for a Windows code page encoding *encoding* of the form ``cpXXXX``." +msgstr "" + +#: ../../library/codecs.rst:1557 +msgid "" +"If the code page is valid and supported, return a :class:`codecs.CodecInfo` " +"object for it." +msgstr "" + +#: ../../library/codecs.rst:1560 ../../library/codecs.rst:1646 +msgid "Availability" +msgstr "" + +#: ../../library/codecs.rst:1565 +msgid "This module implements the following exception:" +msgstr "" + +#: ../../library/codecs.rst:1569 +msgid "Raised when a codec is invalid or incompatible." +msgstr "" + +#: ../../library/codecs.rst:1573 +msgid "" +":mod:`encodings.idna` --- Internationalized Domain Names in Applications" +msgstr "" + +#: ../../library/codecs.rst:1579 +msgid "" +"This module implements :rfc:`3490` (Internationalized Domain Names in " +"Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " +"Internationalized Domain Names (IDN)). It builds upon the ``punycode`` " +"encoding and :mod:`stringprep`." +msgstr "" + +#: ../../library/codecs.rst:1584 +msgid "" +"If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " +"third-party :pypi:`idna` module." +msgstr "" + +#: ../../library/codecs.rst:1587 +msgid "" +"These RFCs together define a protocol to support non-ASCII characters in " +"domain names. A domain name containing non-ASCII characters (such as " +"``www.Alliancefrançaise.nu``) is converted into an ASCII-compatible encoding " +"(ACE, such as ``www.xn--alliancefranaise-npb.nu``). The ACE form of the " +"domain name is then used in all places where arbitrary characters are not " +"allowed by the protocol, such as DNS queries, HTTP :mailheader:`Host` " +"fields, and so on. This conversion is carried out in the application; if " +"possible invisible to the user: The application should transparently convert " +"Unicode domain labels to IDNA on the wire, and convert back ACE labels to " +"Unicode before presenting them to the user." +msgstr "" + +#: ../../library/codecs.rst:1598 +msgid "" +"Python supports this conversion in several ways: the ``idna`` codec " +"performs conversion between Unicode and ACE, separating an input string into " +"labels based on the separator characters defined in :rfc:`section 3.1 of RFC " +"3490 <3490#section-3.1>` and converting each label to ACE as required, and " +"conversely separating an input byte string into labels based on the ``.`` " +"separator and converting any ACE labels found into unicode. Furthermore, " +"the :mod:`socket` module transparently converts Unicode host names to ACE, " +"so that applications need not be concerned about converting host names " +"themselves when they pass them to the socket module. On top of that, modules " +"that have host names as function parameters, such as :mod:`http.client` " +"and :mod:`ftplib`, accept Unicode host names (:mod:`http.client` then also " +"transparently sends an IDNA hostname in the :mailheader:`Host` field if it " +"sends that field at all)." +msgstr "" + +#: ../../library/codecs.rst:1611 +msgid "" +"When receiving host names from the wire (such as in reverse name lookup), no " +"automatic conversion to Unicode is performed: applications wishing to " +"present such host names to the user should decode them to Unicode." +msgstr "" + +#: ../../library/codecs.rst:1615 +msgid "" +"The module :mod:`encodings.idna` also implements the nameprep procedure, " +"which performs certain normalizations on host names, to achieve case-" +"insensitivity of international domain names, and to unify similar " +"characters. The nameprep functions can be used directly if desired." +msgstr "" + +#: ../../library/codecs.rst:1623 +msgid "" +"Return the nameprepped version of *label*. The implementation currently " +"assumes query strings, so ``AllowUnassigned`` is true." +msgstr "" + +#: ../../library/codecs.rst:1629 +msgid "" +"Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " +"is assumed to be false." +msgstr "" + +#: ../../library/codecs.rst:1635 +msgid "Convert a label to Unicode, as specified in :rfc:`3490`." +msgstr "" + +#: ../../library/codecs.rst:1639 +msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" +msgstr "" + +#: ../../library/codecs.rst:1644 +msgid "This module implements the ANSI codepage (CP_ACP)." +msgstr "" + +#: ../../library/codecs.rst:1648 +msgid "" +"Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " +"to encode, and ``'ignore'`` to decode." +msgstr "" + +#: ../../library/codecs.rst:1652 +msgid "Support any error handler." +msgstr "" + +#: ../../library/codecs.rst:1657 +msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" +msgstr "" + +#: ../../library/codecs.rst:1663 +msgid "" +"This module implements a variant of the UTF-8 codec. On encoding, a UTF-8 " +"encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " +"encoder this is only done once (on the first write to the byte stream). On " +"decoding, an optional UTF-8 encoded BOM at the start of the data will be " +"skipped." +msgstr "" + +#: ../../library/codecs.rst:13 +msgid "Unicode" +msgstr "" + +#: ../../library/codecs.rst:13 +msgid "encode" +msgstr "" + +#: ../../library/codecs.rst:13 +msgid "decode" +msgstr "" + +#: ../../library/codecs.rst:13 +msgid "streams" +msgstr "" + +#: ../../library/codecs.rst:13 +msgid "stackable" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "strict" +msgstr "" + +#: ../../library/codecs.rst:338 ../../library/codecs.rst:390 +#: ../../library/codecs.rst:413 +msgid "error handler's name" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "ignore" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "replace" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "backslashreplace" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "surrogateescape" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "? (question mark)" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "replacement character" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "\\ (backslash)" +msgstr "" + +#: ../../library/codecs.rst:338 ../../library/codecs.rst:390 +msgid "escape sequence" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "\\x" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "\\u" +msgstr "" + +#: ../../library/codecs.rst:338 +msgid "\\U" +msgstr "" + +#: ../../library/codecs.rst:390 +msgid "xmlcharrefreplace" +msgstr "" + +#: ../../library/codecs.rst:390 +msgid "namereplace" +msgstr "" + +#: ../../library/codecs.rst:413 +msgid "surrogatepass" +msgstr "" diff --git a/library/codeop.po b/library/codeop.po new file mode 100644 index 0000000..18c11db --- /dev/null +++ b/library/codeop.po @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/codeop.rst:2 +msgid ":mod:`!codeop` --- Compile Python code" +msgstr "" + +#: ../../library/codeop.rst:10 +msgid "**Source code:** :source:`Lib/codeop.py`" +msgstr "" + +#: ../../library/codeop.rst:14 +msgid "" +"The :mod:`codeop` module provides utilities upon which the Python read-eval-" +"print loop can be emulated, as is done in the :mod:`code` module. As a " +"result, you probably don't want to use the module directly; if you want to " +"include such a loop in your program you probably want to use the :mod:`code` " +"module instead." +msgstr "" + +#: ../../library/codeop.rst:20 +msgid "There are two parts to this job:" +msgstr "" + +#: ../../library/codeop.rst:22 +msgid "" +"Being able to tell if a line of input completes a Python statement: in " +"short, telling whether to print '``>>>``' or '``...``' next." +msgstr "" + +#: ../../library/codeop.rst:25 +msgid "" +"Remembering which future statements the user has entered, so subsequent " +"input can be compiled with these in effect." +msgstr "" + +#: ../../library/codeop.rst:28 +msgid "" +"The :mod:`codeop` module provides a way of doing each of these things, and a " +"way of doing them both." +msgstr "" + +#: ../../library/codeop.rst:31 +msgid "To do just the former:" +msgstr "" + +#: ../../library/codeop.rst:35 +msgid "" +"Tries to compile *source*, which should be a string of Python code and " +"return a code object if *source* is valid Python code. In that case, the " +"filename attribute of the code object will be *filename*, which defaults to " +"``''``. Returns ``None`` if *source* is *not* valid Python code, but " +"is a prefix of valid Python code." +msgstr "" + +#: ../../library/codeop.rst:41 +msgid "" +"If there is a problem with *source*, an exception will be " +"raised. :exc:`SyntaxError` is raised if there is invalid Python syntax, " +"and :exc:`OverflowError` or :exc:`ValueError` if there is an invalid literal." +msgstr "" + +#: ../../library/codeop.rst:45 +msgid "" +"The *symbol* argument determines whether *source* is compiled as a statement " +"(``'single'``, the default), as a sequence of :term:`statement` (``'exec'``) " +"or as an :term:`expression` (``'eval'``). Any other value will " +"cause :exc:`ValueError` to be raised." +msgstr "" + +#: ../../library/codeop.rst:52 +msgid "" +"It is possible (but not likely) that the parser stops parsing with a " +"successful outcome before reaching the end of the source; in this case, " +"trailing symbols may be ignored instead of causing an error. For example, a " +"backslash followed by two newlines may be followed by arbitrary garbage. " +"This will be fixed once the API for the parser is better." +msgstr "" + +#: ../../library/codeop.rst:61 +msgid "" +"Instances of this class have :meth:`~object.__call__` methods identical in " +"signature to the built-in function :func:`compile`, but with the difference " +"that if the instance compiles program text containing a :mod:`__future__` " +"statement, the instance 'remembers' and compiles all subsequent program " +"texts with the statement in force." +msgstr "" + +#: ../../library/codeop.rst:70 +msgid "" +"Instances of this class have :meth:`~object.__call__` methods identical in " +"signature to :func:`compile_command`; the difference is that if the instance " +"compiles program text containing a :mod:`__future__` statement, the instance " +"'remembers' and compiles all subsequent program texts with the statement in " +"force." +msgstr "" diff --git a/library/collections.abc.po b/library/collections.abc.po new file mode 100644 index 0000000..264770d --- /dev/null +++ b/library/collections.abc.po @@ -0,0 +1,757 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/collections.abc.rst:2 +msgid ":mod:`!collections.abc` --- Abstract Base Classes for Containers" +msgstr "" + +#: ../../library/collections.abc.rst:10 +msgid "Formerly, this module was part of the :mod:`collections` module." +msgstr "" + +#: ../../library/collections.abc.rst:13 +msgid "**Source code:** :source:`Lib/_collections_abc.py`" +msgstr "" + +#: ../../library/collections.abc.rst:23 +msgid "" +"This module provides :term:`abstract base classes ` " +"that can be used to test whether a class provides a particular interface; " +"for example, whether it is :term:`hashable` or whether it is " +"a :term:`mapping`." +msgstr "" + +#: ../../library/collections.abc.rst:27 +msgid "" +"An :func:`issubclass` or :func:`isinstance` test for an interface works in " +"one of three ways." +msgstr "" + +#: ../../library/collections.abc.rst:30 +msgid "" +"A newly written class can inherit directly from one of the abstract base " +"classes. The class must supply the required abstract methods. The " +"remaining mixin methods come from inheritance and can be overridden if " +"desired. Other methods may be added as needed:" +msgstr "" + +#: ../../library/collections.abc.rst:35 +msgid "" +"class C(Sequence): # Direct inheritance\n" +" def __init__(self): ... # Extra method not required by the " +"ABC\n" +" def __getitem__(self, index): ... # Required abstract method\n" +" def __len__(self): ... # Required abstract method\n" +" def count(self, value): ... # Optionally override a mixin method" +msgstr "" + +#: ../../library/collections.abc.rst:43 +msgid "" +">>> issubclass(C, Sequence)\n" +"True\n" +">>> isinstance(C(), Sequence)\n" +"True" +msgstr "" + +#: ../../library/collections.abc.rst:50 +msgid "" +"Existing classes and built-in classes can be registered as \"virtual " +"subclasses\" of the ABCs. Those classes should define the full API " +"including all of the abstract methods and all of the mixin methods. This " +"lets users rely on :func:`issubclass` or :func:`isinstance` tests to " +"determine whether the full interface is supported. The exception to this " +"rule is for methods that are automatically inferred from the rest of the API:" +msgstr "" + +#: ../../library/collections.abc.rst:58 +msgid "" +"class D: # No inheritance\n" +" def __init__(self): ... # Extra method not required by the " +"ABC\n" +" def __getitem__(self, index): ... # Abstract method\n" +" def __len__(self): ... # Abstract method\n" +" def count(self, value): ... # Mixin method\n" +" def index(self, value): ... # Mixin method\n" +"\n" +"Sequence.register(D) # Register instead of inherit" +msgstr "" + +#: ../../library/collections.abc.rst:69 +msgid "" +">>> issubclass(D, Sequence)\n" +"True\n" +">>> isinstance(D(), Sequence)\n" +"True" +msgstr "" + +#: ../../library/collections.abc.rst:76 +msgid "" +"In this example, class :class:`!D` does not need to define ``__contains__``, " +"``__iter__``, and ``__reversed__`` because the :ref:`in-operator " +"`, the :term:`iteration ` logic, and " +"the :func:`reversed` function automatically fall back to using " +"``__getitem__`` and ``__len__``." +msgstr "" + +#: ../../library/collections.abc.rst:82 +msgid "" +"Some simple interfaces are directly recognizable by the presence of the " +"required methods (unless those methods have been set to :const:`None`):" +msgstr "" + +#: ../../library/collections.abc.rst:85 +msgid "" +"class E:\n" +" def __iter__(self): ...\n" +" def __next__(self): ..." +msgstr "" + +#: ../../library/collections.abc.rst:91 +msgid "" +">>> issubclass(E, Iterable)\n" +"True\n" +">>> isinstance(E(), Iterable)\n" +"True" +msgstr "" + +#: ../../library/collections.abc.rst:98 +msgid "" +"Complex interfaces do not support this last technique because an interface " +"is more than just the presence of method names. Interfaces specify " +"semantics and relationships between methods that cannot be inferred solely " +"from the presence of specific method names. For example, knowing that a " +"class supplies ``__getitem__``, ``__len__``, and ``__iter__`` is " +"insufficient for distinguishing a :class:`Sequence` from a :class:`Mapping`." +msgstr "" + +#: ../../library/collections.abc.rst:106 +msgid "" +"These abstract classes now support ``[]``. See :ref:`types-genericalias` " +"and :pep:`585`." +msgstr "" + +#: ../../library/collections.abc.rst:113 +msgid "Collections Abstract Base Classes" +msgstr "" + +#: ../../library/collections.abc.rst:115 +msgid "" +"The collections module offers the following :term:`ABCs `:" +msgstr "" + +#: ../../library/collections.abc.rst:120 +msgid "ABC" +msgstr "" + +#: ../../library/collections.abc.rst:120 +msgid "Inherits from" +msgstr "" + +#: ../../library/collections.abc.rst:120 +msgid "Abstract Methods" +msgstr "" + +#: ../../library/collections.abc.rst:120 +msgid "Mixin Methods" +msgstr "" + +#: ../../library/collections.abc.rst:122 +msgid ":class:`Container` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:122 +msgid "``__contains__``" +msgstr "``__contains__``" + +#: ../../library/collections.abc.rst:123 +msgid ":class:`Hashable` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:123 +msgid "``__hash__``" +msgstr "``__hash__``" + +#: ../../library/collections.abc.rst:124 +msgid ":class:`Iterable` [1]_ [2]_" +msgstr "" + +#: ../../library/collections.abc.rst:124 ../../library/collections.abc.rst:125 +msgid "``__iter__``" +msgstr "``__iter__``" + +#: ../../library/collections.abc.rst:125 +msgid ":class:`Iterator` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:125 ../../library/collections.abc.rst:126 +msgid ":class:`Iterable`" +msgstr "" + +#: ../../library/collections.abc.rst:125 +msgid "``__next__``" +msgstr "``__next__``" + +#: ../../library/collections.abc.rst:126 +msgid ":class:`Reversible` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:126 +msgid "``__reversed__``" +msgstr "``__reversed__``" + +#: ../../library/collections.abc.rst:127 +msgid ":class:`Generator` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:127 +msgid ":class:`Iterator`" +msgstr "" + +#: ../../library/collections.abc.rst:127 ../../library/collections.abc.rst:173 +msgid "``send``, ``throw``" +msgstr "" + +#: ../../library/collections.abc.rst:127 +msgid "``close``, ``__iter__``, ``__next__``" +msgstr "" + +#: ../../library/collections.abc.rst:128 +msgid ":class:`Sized` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:128 +msgid "``__len__``" +msgstr "``__len__``" + +#: ../../library/collections.abc.rst:129 +msgid ":class:`Callable` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:129 +msgid "``__call__``" +msgstr "``__call__``" + +#: ../../library/collections.abc.rst:130 +msgid ":class:`Collection` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:130 +msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" +msgstr "" + +#: ../../library/collections.abc.rst:130 ../../library/collections.abc.rst:143 +msgid "``__contains__``, ``__iter__``, ``__len__``" +msgstr "" + +#: ../../library/collections.abc.rst:134 ../../library/collections.abc.rst:137 +msgid ":class:`Sequence`" +msgstr "" + +#: ../../library/collections.abc.rst:134 +msgid ":class:`Reversible`, :class:`Collection`" +msgstr "" + +#: ../../library/collections.abc.rst:134 +msgid "``__getitem__``, ``__len__``" +msgstr "" + +#: ../../library/collections.abc.rst:134 +msgid "" +"``__contains__``, ``__iter__``, ``__reversed__``, ``index``, and ``count``" +msgstr "" + +#: ../../library/collections.abc.rst:137 +msgid ":class:`MutableSequence`" +msgstr "" + +#: ../../library/collections.abc.rst:137 +msgid "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" +msgstr "" + +#: ../../library/collections.abc.rst:137 +msgid "" +"Inherited :class:`Sequence` methods and ``append``, ``clear``, ``reverse``, " +"``extend``, ``pop``, ``remove``, and ``__iadd__``" +msgstr "" + +#: ../../library/collections.abc.rst:143 ../../library/collections.abc.rst:148 +msgid ":class:`Set`" +msgstr "" + +#: ../../library/collections.abc.rst:143 ../../library/collections.abc.rst:154 +msgid ":class:`Collection`" +msgstr "" + +#: ../../library/collections.abc.rst:143 +msgid "" +"``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " +"``__and__``, ``__or__``, ``__sub__``, ``__rsub__``, ``__xor__``, " +"``__rxor__`` and ``isdisjoint``" +msgstr "" + +#: ../../library/collections.abc.rst:148 +msgid ":class:`MutableSet`" +msgstr "" + +#: ../../library/collections.abc.rst:148 +msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" +msgstr "" + +#: ../../library/collections.abc.rst:148 +msgid "" +"Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " +"``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" +msgstr "" + +#: ../../library/collections.abc.rst:154 ../../library/collections.abc.rst:158 +msgid ":class:`Mapping`" +msgstr "" + +#: ../../library/collections.abc.rst:154 +msgid "``__getitem__``, ``__iter__``, ``__len__``" +msgstr "" + +#: ../../library/collections.abc.rst:154 +msgid "" +"``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " +"``__ne__``" +msgstr "" + +#: ../../library/collections.abc.rst:158 +msgid ":class:`MutableMapping`" +msgstr "" + +#: ../../library/collections.abc.rst:158 +msgid "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" +msgstr "" + +#: ../../library/collections.abc.rst:158 +msgid "" +"Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " +"``update``, and ``setdefault``" +msgstr "" + +#: ../../library/collections.abc.rst:165 +msgid ":class:`MappingView`" +msgstr "" + +#: ../../library/collections.abc.rst:165 +msgid ":class:`Sized`" +msgstr "" + +#: ../../library/collections.abc.rst:165 +msgid "``__init__``, ``__len__`` and ``__repr__``" +msgstr "" + +#: ../../library/collections.abc.rst:166 +msgid ":class:`ItemsView`" +msgstr "" + +#: ../../library/collections.abc.rst:166 ../../library/collections.abc.rst:168 +msgid ":class:`MappingView`, :class:`Set`" +msgstr "" + +#: ../../library/collections.abc.rst:166 ../../library/collections.abc.rst:168 +#: ../../library/collections.abc.rst:170 +msgid "``__contains__``, ``__iter__``" +msgstr "" + +#: ../../library/collections.abc.rst:168 +msgid ":class:`KeysView`" +msgstr "" + +#: ../../library/collections.abc.rst:170 +msgid ":class:`ValuesView`" +msgstr "" + +#: ../../library/collections.abc.rst:170 +msgid ":class:`MappingView`, :class:`Collection`" +msgstr "" + +#: ../../library/collections.abc.rst:172 +msgid ":class:`Awaitable` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:172 +msgid "``__await__``" +msgstr "``__await__``" + +#: ../../library/collections.abc.rst:173 +msgid ":class:`Coroutine` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:173 +msgid ":class:`Awaitable`" +msgstr "" + +#: ../../library/collections.abc.rst:173 +msgid "``close``" +msgstr "``close``" + +#: ../../library/collections.abc.rst:174 +msgid ":class:`AsyncIterable` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:174 ../../library/collections.abc.rst:175 +msgid "``__aiter__``" +msgstr "``__aiter__``" + +#: ../../library/collections.abc.rst:175 +msgid ":class:`AsyncIterator` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:175 +msgid ":class:`AsyncIterable`" +msgstr "" + +#: ../../library/collections.abc.rst:175 +msgid "``__anext__``" +msgstr "``__anext__``" + +#: ../../library/collections.abc.rst:176 +msgid ":class:`AsyncGenerator` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:176 +msgid ":class:`AsyncIterator`" +msgstr "" + +#: ../../library/collections.abc.rst:176 +msgid "``asend``, ``athrow``" +msgstr "" + +#: ../../library/collections.abc.rst:176 +msgid "``aclose``, ``__aiter__``, ``__anext__``" +msgstr "" + +#: ../../library/collections.abc.rst:177 +msgid ":class:`Buffer` [1]_" +msgstr "" + +#: ../../library/collections.abc.rst:177 +msgid "``__buffer__``" +msgstr "``__buffer__``" + +#: ../../library/collections.abc.rst:182 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/collections.abc.rst:183 +msgid "" +"These ABCs override :meth:`~abc.ABCMeta.__subclasshook__` to support testing " +"an interface by verifying the required methods are present and have not been " +"set to :const:`None`. This only works for simple interfaces. More complex " +"interfaces require registration or direct subclassing." +msgstr "" + +#: ../../library/collections.abc.rst:189 +msgid "" +"Checking ``isinstance(obj, Iterable)`` detects classes that are registered " +"as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " +"it does not detect classes that iterate with the :meth:`~object.__getitem__` " +"method. The only reliable way to determine whether an object " +"is :term:`iterable` is to call ``iter(obj)``." +msgstr "" + +#: ../../library/collections.abc.rst:197 +msgid "Collections Abstract Base Classes -- Detailed Descriptions" +msgstr "" + +#: ../../library/collections.abc.rst:202 +msgid "ABC for classes that provide the :meth:`~object.__contains__` method." +msgstr "" + +#: ../../library/collections.abc.rst:206 +msgid "ABC for classes that provide the :meth:`~object.__hash__` method." +msgstr "" + +#: ../../library/collections.abc.rst:210 +msgid "ABC for classes that provide the :meth:`~object.__len__` method." +msgstr "" + +#: ../../library/collections.abc.rst:214 +msgid "ABC for classes that provide the :meth:`~object.__call__` method." +msgstr "" + +#: ../../library/collections.abc.rst:216 +msgid "" +"See :ref:`annotating-callables` for details on how to use :class:`!Callable` " +"in type annotations." +msgstr "" + +#: ../../library/collections.abc.rst:221 +msgid "ABC for classes that provide the :meth:`~container.__iter__` method." +msgstr "" + +#: ../../library/collections.abc.rst:223 +msgid "" +"Checking ``isinstance(obj, Iterable)`` detects classes that are registered " +"as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " +"it does not detect classes that iterate with the :meth:`~object.__getitem__` " +"method. The only reliable way to determine whether an object " +"is :term:`iterable` is to call ``iter(obj)``." +msgstr "" + +#: ../../library/collections.abc.rst:232 +msgid "ABC for sized iterable container classes." +msgstr "" + +#: ../../library/collections.abc.rst:238 +msgid "" +"ABC for classes that provide the :meth:`~iterator.__iter__` " +"and :meth:`~iterator.__next__` methods. See also the definition " +"of :term:`iterator`." +msgstr "" + +#: ../../library/collections.abc.rst:244 +msgid "" +"ABC for iterable classes that also provide the :meth:`~object.__reversed__` " +"method." +msgstr "" + +#: ../../library/collections.abc.rst:251 +msgid "" +"ABC for :term:`generator` classes that implement the protocol defined " +"in :pep:`342` that extends :term:`iterators ` with " +"the :meth:`~generator.send`, :meth:`~generator.throw` " +"and :meth:`~generator.close` methods." +msgstr "" + +#: ../../library/collections.abc.rst:256 +msgid "" +"See :ref:`annotating-generators-and-coroutines` for details on " +"using :class:`!Generator` in type annotations." +msgstr "" + +#: ../../library/collections.abc.rst:264 +msgid "ABCs for read-only and mutable :term:`sequences `." +msgstr "" + +#: ../../library/collections.abc.rst:266 +msgid "" +"Implementation note: Some of the mixin methods, such " +"as :meth:`~container.__iter__`, :meth:`~object.__reversed__` " +"and :meth:`index`, make repeated calls to the " +"underlying :meth:`~object.__getitem__` method. Consequently, " +"if :meth:`~object.__getitem__` is implemented with constant access speed, " +"the mixin methods will have linear performance; however, if the underlying " +"method is linear (as it would be with a linked list), the mixins will have " +"quadratic performance and will likely need to be overridden." +msgstr "" + +#: ../../library/collections.abc.rst:275 +msgid "The index() method added support for *stop* and *start* arguments." +msgstr "" + +#: ../../library/collections.abc.rst:282 +msgid "ABCs for read-only and mutable :ref:`sets `." +msgstr "" + +#: ../../library/collections.abc.rst:287 +msgid "ABCs for read-only and mutable :term:`mappings `." +msgstr "" + +#: ../../library/collections.abc.rst:294 +msgid "" +"ABCs for mapping, items, keys, and values :term:`views `." +msgstr "" + +#: ../../library/collections.abc.rst:298 +msgid "" +"ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " +"expressions. Custom implementations must provide " +"the :meth:`~object.__await__` method." +msgstr "" + +#: ../../library/collections.abc.rst:302 +msgid "" +":term:`Coroutine ` objects and instances of " +"the :class:`~collections.abc.Coroutine` ABC are all instances of this ABC." +msgstr "" + +#: ../../library/collections.abc.rst:306 +msgid "" +"In CPython, generator-based coroutines (:term:`generators ` " +"decorated with :func:`@types.coroutine `) are *awaitables*, " +"even though they do not have an :meth:`~object.__await__` method. Using " +"``isinstance(gencoro, Awaitable)`` for them will return ``False``. " +"Use :func:`inspect.isawaitable` to detect them." +msgstr "" + +#: ../../library/collections.abc.rst:316 +msgid "" +"ABC for :term:`coroutine` compatible classes. These implement the following " +"methods, defined in :ref:`coroutine-" +"objects`: :meth:`~coroutine.send`, :meth:`~coroutine.throw`, " +"and :meth:`~coroutine.close`. Custom implementations must also " +"implement :meth:`~object.__await__`. All :class:`Coroutine` instances are " +"also instances of :class:`Awaitable`." +msgstr "" + +#: ../../library/collections.abc.rst:324 +msgid "" +"In CPython, generator-based coroutines (:term:`generators ` " +"decorated with :func:`@types.coroutine `) are *awaitables*, " +"even though they do not have an :meth:`~object.__await__` method. Using " +"``isinstance(gencoro, Coroutine)`` for them will return ``False``. " +"Use :func:`inspect.isawaitable` to detect them." +msgstr "" + +#: ../../library/collections.abc.rst:330 +msgid "" +"See :ref:`annotating-generators-and-coroutines` for details on " +"using :class:`!Coroutine` in type annotations. The variance and order of " +"type parameters correspond to those of :class:`Generator`." +msgstr "" + +#: ../../library/collections.abc.rst:339 +msgid "" +"ABC for classes that provide an ``__aiter__`` method. See also the " +"definition of :term:`asynchronous iterable`." +msgstr "" + +#: ../../library/collections.abc.rst:346 +msgid "" +"ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " +"also the definition of :term:`asynchronous iterator`." +msgstr "" + +#: ../../library/collections.abc.rst:353 +msgid "" +"ABC for :term:`asynchronous generator` classes that implement the protocol " +"defined in :pep:`525` and :pep:`492`." +msgstr "" + +#: ../../library/collections.abc.rst:356 +msgid "" +"See :ref:`annotating-generators-and-coroutines` for details on " +"using :class:`!AsyncGenerator` in type annotations." +msgstr "" + +#: ../../library/collections.abc.rst:363 +msgid "" +"ABC for classes that provide the :meth:`~object.__buffer__` method, " +"implementing the :ref:`buffer protocol `. See :pep:`688`." +msgstr "" + +#: ../../library/collections.abc.rst:369 +msgid "Examples and Recipes" +msgstr "" + +#: ../../library/collections.abc.rst:371 +msgid "" +"ABCs allow us to ask classes or instances if they provide particular " +"functionality, for example::" +msgstr "" + +#: ../../library/collections.abc.rst:374 +msgid "" +"size = None\n" +"if isinstance(myvar, collections.abc.Sized):\n" +" size = len(myvar)" +msgstr "" + +#: ../../library/collections.abc.rst:378 +msgid "" +"Several of the ABCs are also useful as mixins that make it easier to develop " +"classes supporting container APIs. For example, to write a class supporting " +"the full :class:`Set` API, it is only necessary to supply the three " +"underlying abstract " +"methods: :meth:`~object.__contains__`, :meth:`~container.__iter__`, " +"and :meth:`~object.__len__`. The ABC supplies the remaining methods such " +"as :meth:`!__and__` and :meth:`~frozenset.isdisjoint`::" +msgstr "" + +#: ../../library/collections.abc.rst:385 +msgid "" +"class ListBasedSet(collections.abc.Set):\n" +" ''' Alternate set implementation favoring space over speed\n" +" and not requiring the set elements to be hashable. '''\n" +" def __init__(self, iterable):\n" +" self.elements = lst = []\n" +" for value in iterable:\n" +" if value not in lst:\n" +" lst.append(value)\n" +"\n" +" def __iter__(self):\n" +" return iter(self.elements)\n" +"\n" +" def __contains__(self, value):\n" +" return value in self.elements\n" +"\n" +" def __len__(self):\n" +" return len(self.elements)\n" +"\n" +"s1 = ListBasedSet('abcdef')\n" +"s2 = ListBasedSet('defghi')\n" +"overlap = s1 & s2 # The __and__() method is supported " +"automatically" +msgstr "" + +#: ../../library/collections.abc.rst:407 +msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" +msgstr "" + +#: ../../library/collections.abc.rst:410 +msgid "" +"Since some set operations create new sets, the default mixin methods need a " +"way to create new instances from an :term:`iterable`. The class constructor " +"is assumed to have a signature in the form ``ClassName(iterable)``. That " +"assumption is factored-out to an internal :class:`classmethod` " +"called :meth:`!_from_iterable` which calls ``cls(iterable)`` to produce a " +"new set. If the :class:`Set` mixin is being used in a class with a different " +"constructor signature, you will need to override :meth:`!_from_iterable` " +"with a classmethod or regular method that can construct new instances from " +"an iterable argument." +msgstr "" + +#: ../../library/collections.abc.rst:421 +msgid "" +"To override the comparisons (presumably for speed, as the semantics are " +"fixed), redefine :meth:`~object.__le__` and :meth:`~object.__ge__`, then the " +"other operations will automatically follow suit." +msgstr "" + +#: ../../library/collections.abc.rst:427 +msgid "" +"The :class:`Set` mixin provides a :meth:`!_hash` method to compute a hash " +"value for the set; however, :meth:`~object.__hash__` is not defined because " +"not all sets are :term:`hashable` or immutable. To add set hashability " +"using mixins, inherit from both :meth:`Set` and :meth:`Hashable`, then " +"define ``__hash__ = Set._hash``." +msgstr "" + +#: ../../library/collections.abc.rst:435 +msgid "" +"`OrderedSet recipe `_ for an " +"example built on :class:`MutableSet`." +msgstr "" + +#: ../../library/collections.abc.rst:438 +msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." +msgstr "" diff --git a/library/collections.po b/library/collections.po new file mode 100644 index 0000000..a2c854a --- /dev/null +++ b/library/collections.po @@ -0,0 +1,1774 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/collections.rst:2 +msgid ":mod:`!collections` --- Container datatypes" +msgstr "" + +#: ../../library/collections.rst:10 +msgid "**Source code:** :source:`Lib/collections/__init__.py`" +msgstr "" + +#: ../../library/collections.rst:20 +msgid "" +"This module implements specialized container datatypes providing " +"alternatives to Python's general purpose built-in " +"containers, :class:`dict`, :class:`list`, :class:`set`, and :class:`tuple`." +msgstr "" + +#: ../../library/collections.rst:25 +msgid ":func:`namedtuple`" +msgstr "" + +#: ../../library/collections.rst:25 +msgid "factory function for creating tuple subclasses with named fields" +msgstr "" + +#: ../../library/collections.rst:26 +msgid ":class:`deque`" +msgstr "" + +#: ../../library/collections.rst:26 +msgid "list-like container with fast appends and pops on either end" +msgstr "" + +#: ../../library/collections.rst:27 +msgid ":class:`ChainMap`" +msgstr "" + +#: ../../library/collections.rst:27 +msgid "dict-like class for creating a single view of multiple mappings" +msgstr "" + +#: ../../library/collections.rst:28 +msgid ":class:`Counter`" +msgstr "" + +#: ../../library/collections.rst:28 +msgid "dict subclass for counting :term:`hashable` objects" +msgstr "" + +#: ../../library/collections.rst:29 +msgid ":class:`OrderedDict`" +msgstr "" + +#: ../../library/collections.rst:29 +msgid "dict subclass that remembers the order entries were added" +msgstr "" + +#: ../../library/collections.rst:30 +msgid ":class:`defaultdict`" +msgstr "" + +#: ../../library/collections.rst:30 +msgid "dict subclass that calls a factory function to supply missing values" +msgstr "" + +#: ../../library/collections.rst:31 +msgid ":class:`UserDict`" +msgstr "" + +#: ../../library/collections.rst:31 +msgid "wrapper around dictionary objects for easier dict subclassing" +msgstr "" + +#: ../../library/collections.rst:32 +msgid ":class:`UserList`" +msgstr "" + +#: ../../library/collections.rst:32 +msgid "wrapper around list objects for easier list subclassing" +msgstr "" + +#: ../../library/collections.rst:33 +msgid ":class:`UserString`" +msgstr "" + +#: ../../library/collections.rst:33 +msgid "wrapper around string objects for easier string subclassing" +msgstr "" + +#: ../../library/collections.rst:38 +msgid ":class:`ChainMap` objects" +msgstr "" + +#: ../../library/collections.rst:42 +msgid "" +"A :class:`ChainMap` class is provided for quickly linking a number of " +"mappings so they can be treated as a single unit. It is often much faster " +"than creating a new dictionary and running multiple :meth:`~dict.update` " +"calls." +msgstr "" + +#: ../../library/collections.rst:46 +msgid "" +"The class can be used to simulate nested scopes and is useful in templating." +msgstr "" + +#: ../../library/collections.rst:50 +msgid "" +"A :class:`ChainMap` groups multiple dicts or other mappings together to " +"create a single, updateable view. If no *maps* are specified, a single " +"empty dictionary is provided so that a new chain always has at least one " +"mapping." +msgstr "" + +#: ../../library/collections.rst:54 +msgid "" +"The underlying mappings are stored in a list. That list is public and can " +"be accessed or updated using the *maps* attribute. There is no other state." +msgstr "" + +#: ../../library/collections.rst:57 +msgid "" +"Lookups search the underlying mappings successively until a key is found. " +"In contrast, writes, updates, and deletions only operate on the first " +"mapping." +msgstr "" + +#: ../../library/collections.rst:60 +msgid "" +"A :class:`ChainMap` incorporates the underlying mappings by reference. So, " +"if one of the underlying mappings gets updated, those changes will be " +"reflected in :class:`ChainMap`." +msgstr "" + +#: ../../library/collections.rst:64 +msgid "" +"All of the usual dictionary methods are supported. In addition, there is a " +"*maps* attribute, a method for creating new subcontexts, and a property for " +"accessing all but the first mapping:" +msgstr "" + +#: ../../library/collections.rst:70 +msgid "" +"A user updateable list of mappings. The list is ordered from first-searched " +"to last-searched. It is the only stored state and can be modified to change " +"which mappings are searched. The list should always contain at least one " +"mapping." +msgstr "" + +#: ../../library/collections.rst:77 +msgid "" +"Returns a new :class:`ChainMap` containing a new map followed by all of the " +"maps in the current instance. If ``m`` is specified, it becomes the new map " +"at the front of the list of mappings; if not specified, an empty dict is " +"used, so that a call to ``d.new_child()`` is equivalent to: ``ChainMap({}, " +"*d.maps)``. If any keyword arguments are specified, they update passed map " +"or new empty dict. This method is used for creating subcontexts that can be " +"updated without altering values in any of the parent mappings." +msgstr "" + +#: ../../library/collections.rst:86 +msgid "The optional ``m`` parameter was added." +msgstr "" + +#: ../../library/collections.rst:89 +msgid "Keyword arguments support was added." +msgstr "" + +#: ../../library/collections.rst:94 +msgid "" +"Property returning a new :class:`ChainMap` containing all of the maps in the " +"current instance except the first one. This is useful for skipping the " +"first map in the search. Use cases are similar to those for " +"the :keyword:`nonlocal` keyword used in :term:`nested scopes `. The use cases also parallel those for the built-in :func:`super` " +"function. A reference to ``d.parents`` is equivalent to: " +"``ChainMap(*d.maps[1:])``." +msgstr "" + +#: ../../library/collections.rst:102 +msgid "" +"Note, the iteration order of a :class:`ChainMap` is determined by scanning " +"the mappings last to first::" +msgstr "" + +#: ../../library/collections.rst:105 +msgid "" +">>> baseline = {'music': 'bach', 'art': 'rembrandt'}\n" +">>> adjustments = {'art': 'van gogh', 'opera': 'carmen'}\n" +">>> list(ChainMap(adjustments, baseline))\n" +"['music', 'art', 'opera']" +msgstr "" + +#: ../../library/collections.rst:110 +msgid "" +"This gives the same ordering as a series of :meth:`dict.update` calls " +"starting with the last mapping::" +msgstr "" + +#: ../../library/collections.rst:113 +msgid "" +">>> combined = baseline.copy()\n" +">>> combined.update(adjustments)\n" +">>> list(combined)\n" +"['music', 'art', 'opera']" +msgstr "" + +#: ../../library/collections.rst:118 +msgid "Added support for ``|`` and ``|=`` operators, specified in :pep:`584`." +msgstr "" + +#: ../../library/collections.rst:123 +msgid "" +"The `MultiContext class `_ in the Enthought `CodeTools package " +"`_ has options to support writing to " +"any mapping in the chain." +msgstr "" + +#: ../../library/collections.rst:129 +msgid "" +"Django's `Context class `_ for templating is a read-only chain of mappings. It " +"also features pushing and popping of contexts similar to " +"the :meth:`~collections.ChainMap.new_child` method and " +"the :attr:`~collections.ChainMap.parents` property." +msgstr "" + +#: ../../library/collections.rst:136 +msgid "" +"The `Nested Contexts recipe `_ has options to control " +"whether writes and other mutations apply only to the first mapping or to any " +"mapping in the chain." +msgstr "" + +#: ../../library/collections.rst:141 +msgid "" +"A `greatly simplified read-only version of Chainmap `_." +msgstr "" + +#: ../../library/collections.rst:146 +msgid ":class:`ChainMap` Examples and Recipes" +msgstr "" + +#: ../../library/collections.rst:148 +msgid "This section shows various approaches to working with chained maps." +msgstr "" + +#: ../../library/collections.rst:151 +msgid "Example of simulating Python's internal lookup chain::" +msgstr "" + +#: ../../library/collections.rst:153 +msgid "" +"import builtins\n" +"pylookup = ChainMap(locals(), globals(), vars(builtins))" +msgstr "" + +#: ../../library/collections.rst:156 +msgid "" +"Example of letting user specified command-line arguments take precedence " +"over environment variables which in turn take precedence over default " +"values::" +msgstr "" + +#: ../../library/collections.rst:159 +msgid "" +"import os, argparse\n" +"\n" +"defaults = {'color': 'red', 'user': 'guest'}\n" +"\n" +"parser = argparse.ArgumentParser()\n" +"parser.add_argument('-u', '--user')\n" +"parser.add_argument('-c', '--color')\n" +"namespace = parser.parse_args()\n" +"command_line_args = {k: v for k, v in vars(namespace).items() if v is not " +"None}\n" +"\n" +"combined = ChainMap(command_line_args, os.environ, defaults)\n" +"print(combined['color'])\n" +"print(combined['user'])" +msgstr "" + +#: ../../library/collections.rst:173 +msgid "" +"Example patterns for using the :class:`ChainMap` class to simulate nested " +"contexts::" +msgstr "" + +#: ../../library/collections.rst:176 +msgid "" +"c = ChainMap() # Create root context\n" +"d = c.new_child() # Create nested child context\n" +"e = c.new_child() # Child of c, independent from d\n" +"e.maps[0] # Current context dictionary -- like Python's " +"locals()\n" +"e.maps[-1] # Root context -- like Python's globals()\n" +"e.parents # Enclosing context chain -- like Python's nonlocals\n" +"\n" +"d['x'] = 1 # Set value in current context\n" +"d['x'] # Get first key in the chain of contexts\n" +"del d['x'] # Delete from current context\n" +"list(d) # All nested values\n" +"k in d # Check all nested values\n" +"len(d) # Number of nested values\n" +"d.items() # All nested items\n" +"dict(d) # Flatten into a regular dictionary" +msgstr "" + +#: ../../library/collections.rst:192 +msgid "" +"The :class:`ChainMap` class only makes updates (writes and deletions) to the " +"first mapping in the chain while lookups will search the full chain. " +"However, if deep writes and deletions are desired, it is easy to make a " +"subclass that updates keys found deeper in the chain::" +msgstr "" + +#: ../../library/collections.rst:197 +msgid "" +"class DeepChainMap(ChainMap):\n" +" 'Variant of ChainMap that allows direct updates to inner scopes'\n" +"\n" +" def __setitem__(self, key, value):\n" +" for mapping in self.maps:\n" +" if key in mapping:\n" +" mapping[key] = value\n" +" return\n" +" self.maps[0][key] = value\n" +"\n" +" def __delitem__(self, key):\n" +" for mapping in self.maps:\n" +" if key in mapping:\n" +" del mapping[key]\n" +" return\n" +" raise KeyError(key)\n" +"\n" +">>> d = DeepChainMap({'zebra': 'black'}, {'elephant': 'blue'}, {'lion': " +"'yellow'})\n" +">>> d['lion'] = 'orange' # update an existing key two levels down\n" +">>> d['snake'] = 'red' # new keys get added to the topmost dict\n" +">>> del d['elephant'] # remove an existing key one level down\n" +">>> d # display result\n" +"DeepChainMap({'zebra': 'black', 'snake': 'red'}, {}, {'lion': 'orange'})" +msgstr "" + +#: ../../library/collections.rst:223 +msgid ":class:`Counter` objects" +msgstr "" + +#: ../../library/collections.rst:225 +msgid "" +"A counter tool is provided to support convenient and rapid tallies. For " +"example::" +msgstr "" + +#: ../../library/collections.rst:228 +msgid "" +">>> # Tally occurrences of words in a list\n" +">>> cnt = Counter()\n" +">>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:\n" +"... cnt[word] += 1\n" +"...\n" +">>> cnt\n" +"Counter({'blue': 3, 'red': 2, 'green': 1})\n" +"\n" +">>> # Find the ten most common words in Hamlet\n" +">>> import re\n" +">>> words = re.findall(r'\\w+', open('hamlet.txt').read().lower())\n" +">>> Counter(words).most_common(10)\n" +"[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),\n" +" ('you', 554), ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]" +msgstr "" + +#: ../../library/collections.rst:245 +msgid "" +"A :class:`Counter` is a :class:`dict` subclass for counting :term:`hashable` " +"objects. It is a collection where elements are stored as dictionary keys and " +"their counts are stored as dictionary values. Counts are allowed to be any " +"integer value including zero or negative counts. The :class:`Counter` class " +"is similar to bags or multisets in other languages." +msgstr "" + +#: ../../library/collections.rst:251 +msgid "" +"Elements are counted from an *iterable* or initialized from another " +"*mapping* (or counter):" +msgstr "" + +#: ../../library/collections.rst:259 +msgid "" +"Counter objects have a dictionary interface except that they return a zero " +"count for missing items instead of raising a :exc:`KeyError`:" +msgstr "" + +#: ../../library/collections.rst:266 +msgid "" +"Setting a count to zero does not remove an element from a counter. Use " +"``del`` to remove it entirely:" +msgstr "" + +#: ../../library/collections.rst:274 +msgid "" +"As a :class:`dict` subclass, :class:`Counter` inherited the capability to " +"remember insertion order. Math operations on *Counter* objects also " +"preserve order. Results are ordered according to when an element is first " +"encountered in the left operand and then by the order encountered in the " +"right operand." +msgstr "" + +#: ../../library/collections.rst:280 +msgid "" +"Counter objects support additional methods beyond those available for all " +"dictionaries:" +msgstr "" + +#: ../../library/collections.rst:285 +msgid "" +"Return an iterator over elements repeating each as many times as its count. " +"Elements are returned in the order first encountered. If an element's count " +"is less than one, :meth:`elements` will ignore it." +msgstr "" + +#: ../../library/collections.rst:295 +msgid "" +"Return a list of the *n* most common elements and their counts from the most " +"common to the least. If *n* is omitted or ``None``, :meth:`most_common` " +"returns *all* elements in the counter. Elements with equal counts are " +"ordered in the order first encountered:" +msgstr "" + +#: ../../library/collections.rst:305 +msgid "" +"Elements are subtracted from an *iterable* or from another *mapping* (or " +"counter). Like :meth:`dict.update` but subtracts counts instead of " +"replacing them. Both inputs and outputs may be zero or negative." +msgstr "" + +#: ../../library/collections.rst:319 +msgid "Compute the sum of the counts." +msgstr "" + +#: ../../library/collections.rst:327 +msgid "" +"The usual dictionary methods are available for :class:`Counter` objects " +"except for two which work differently for counters." +msgstr "" + +#: ../../library/collections.rst:332 +msgid "This class method is not implemented for :class:`Counter` objects." +msgstr "" + +#: ../../library/collections.rst:336 +msgid "" +"Elements are counted from an *iterable* or added-in from another *mapping* " +"(or counter). Like :meth:`dict.update` but adds counts instead of replacing " +"them. Also, the *iterable* is expected to be a sequence of elements, not a " +"sequence of ``(key, value)`` pairs." +msgstr "" + +#: ../../library/collections.rst:341 +msgid "" +"Counters support rich comparison operators for equality, subset, and " +"superset relationships: ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``. All of " +"those tests treat missing elements as having zero counts so that " +"``Counter(a=1) == Counter(a=1, b=0)`` returns true." +msgstr "" + +#: ../../library/collections.rst:346 +msgid "Rich comparison operations were added." +msgstr "" + +#: ../../library/collections.rst:349 +msgid "" +"In equality tests, missing elements are treated as having zero counts. " +"Formerly, ``Counter(a=3)`` and ``Counter(a=3, b=0)`` were considered " +"distinct." +msgstr "" + +#: ../../library/collections.rst:354 +msgid "Common patterns for working with :class:`Counter` objects::" +msgstr "" + +#: ../../library/collections.rst:356 +msgid "" +"c.total() # total of all counts\n" +"c.clear() # reset all counts\n" +"list(c) # list unique elements\n" +"set(c) # convert to a set\n" +"dict(c) # convert to a regular dictionary\n" +"c.items() # access the (elem, cnt) pairs\n" +"Counter(dict(list_of_pairs)) # convert from a list of (elem, cnt) pairs\n" +"c.most_common()[:-n-1:-1] # n least common elements\n" +"+c # remove zero and negative counts" +msgstr "" + +#: ../../library/collections.rst:366 +msgid "" +"Several mathematical operations are provided for combining :class:`Counter` " +"objects to produce multisets (counters that have counts greater than zero). " +"Addition and subtraction combine counters by adding or subtracting the " +"counts of corresponding elements. Intersection and union return the minimum " +"and maximum of corresponding counts. Equality and inclusion compare " +"corresponding counts. Each operation can accept inputs with signed counts, " +"but the output will exclude results with counts of zero or less." +msgstr "" + +#: ../../library/collections.rst:374 +msgid "" +">>> c = Counter(a=3, b=1)\n" +">>> d = Counter(a=1, b=2)\n" +">>> c + d # add two counters together: c[x] + d[x]\n" +"Counter({'a': 4, 'b': 3})\n" +">>> c - d # subtract (keeping only positive counts)\n" +"Counter({'a': 2})\n" +">>> c & d # intersection: min(c[x], d[x])\n" +"Counter({'a': 1, 'b': 1})\n" +">>> c | d # union: max(c[x], d[x])\n" +"Counter({'a': 3, 'b': 2})\n" +">>> c == d # equality: c[x] == d[x]\n" +"False\n" +">>> c <= d # inclusion: c[x] <= d[x]\n" +"False" +msgstr "" + +#: ../../library/collections.rst:391 +msgid "" +"Unary addition and subtraction are shortcuts for adding an empty counter or " +"subtracting from an empty counter." +msgstr "" + +#: ../../library/collections.rst:400 +msgid "" +"Added support for unary plus, unary minus, and in-place multiset operations." +msgstr "" + +#: ../../library/collections.rst:405 +msgid "" +"Counters were primarily designed to work with positive integers to represent " +"running counts; however, care was taken to not unnecessarily preclude use " +"cases needing other types or negative values. To help with those use cases, " +"this section documents the minimum range and type restrictions." +msgstr "" + +#: ../../library/collections.rst:410 +msgid "" +"The :class:`Counter` class itself is a dictionary subclass with no " +"restrictions on its keys and values. The values are intended to be numbers " +"representing counts, but you *could* store anything in the value field." +msgstr "" + +#: ../../library/collections.rst:414 +msgid "" +"The :meth:`~Counter.most_common` method requires only that the values be " +"orderable." +msgstr "" + +#: ../../library/collections.rst:416 +msgid "" +"For in-place operations such as ``c[key] += 1``, the value type need only " +"support addition and subtraction. So fractions, floats, and decimals would " +"work and negative values are supported. The same is also true " +"for :meth:`~Counter.update` and :meth:`~Counter.subtract` which allow " +"negative and zero values for both inputs and outputs." +msgstr "" + +#: ../../library/collections.rst:422 +msgid "" +"The multiset methods are designed only for use cases with positive values. " +"The inputs may be negative or zero, but only outputs with positive values " +"are created. There are no type restrictions, but the value type needs to " +"support addition, subtraction, and comparison." +msgstr "" + +#: ../../library/collections.rst:427 +msgid "" +"The :meth:`~Counter.elements` method requires integer counts. It ignores " +"zero and negative counts." +msgstr "" + +#: ../../library/collections.rst:432 +msgid "" +"`Bag class `_ in Smalltalk." +msgstr "" + +#: ../../library/collections.rst:435 +msgid "" +"Wikipedia entry for `Multisets `_." +msgstr "" + +#: ../../library/collections.rst:437 +msgid "" +"`C++ multisets `_ tutorial with examples." +msgstr "" + +#: ../../library/collections.rst:440 +msgid "" +"For mathematical operations on multisets and their use cases, see *Knuth, " +"Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " +"19*." +msgstr "" + +#: ../../library/collections.rst:444 +msgid "" +"To enumerate all distinct multisets of a given size over a given set of " +"elements, see :func:`itertools.combinations_with_replacement`::" +msgstr "" + +#: ../../library/collections.rst:447 +msgid "" +"map(Counter, combinations_with_replacement('ABC', 2)) # --> AA AB AC BB BC CC" +msgstr "" + +#: ../../library/collections.rst:451 +msgid ":class:`deque` objects" +msgstr "" + +#: ../../library/collections.rst:455 +msgid "" +"Returns a new deque object initialized left-to-right (using :meth:`append`) " +"with data from *iterable*. If *iterable* is not specified, the new deque is " +"empty." +msgstr "" + +#: ../../library/collections.rst:458 +msgid "" +"Deques are a generalization of stacks and queues (the name is pronounced " +"\"deck\" and is short for \"double-ended queue\"). Deques support thread-" +"safe, memory efficient appends and pops from either side of the deque with " +"approximately the same *O*\\ (1) performance in either direction." +msgstr "" + +#: ../../library/collections.rst:463 +msgid "" +"Though :class:`list` objects support similar operations, they are optimized " +"for fast fixed-length operations and incur *O*\\ (*n*) memory movement costs " +"for ``pop(0)`` and ``insert(0, v)`` operations which change both the size " +"and position of the underlying data representation." +msgstr "" + +#: ../../library/collections.rst:469 +msgid "" +"If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " +"length. Otherwise, the deque is bounded to the specified maximum length. " +"Once a bounded length deque is full, when new items are added, a " +"corresponding number of items are discarded from the opposite end. Bounded " +"length deques provide functionality similar to the ``tail`` filter in Unix. " +"They are also useful for tracking transactions and other pools of data where " +"only the most recent activity is of interest." +msgstr "" + +#: ../../library/collections.rst:478 +msgid "Deque objects support the following methods:" +msgstr "" + +#: ../../library/collections.rst:482 +msgid "Add *x* to the right side of the deque." +msgstr "" + +#: ../../library/collections.rst:487 +msgid "Add *x* to the left side of the deque." +msgstr "" + +#: ../../library/collections.rst:492 +msgid "Remove all elements from the deque leaving it with length 0." +msgstr "" + +#: ../../library/collections.rst:497 +msgid "Create a shallow copy of the deque." +msgstr "" + +#: ../../library/collections.rst:504 +msgid "Count the number of deque elements equal to *x*." +msgstr "" + +#: ../../library/collections.rst:511 +msgid "" +"Extend the right side of the deque by appending elements from the iterable " +"argument." +msgstr "" + +#: ../../library/collections.rst:517 +msgid "" +"Extend the left side of the deque by appending elements from *iterable*. " +"Note, the series of left appends results in reversing the order of elements " +"in the iterable argument." +msgstr "" + +#: ../../library/collections.rst:524 +msgid "" +"Return the position of *x* in the deque (at or after index *start* and " +"before index *stop*). Returns the first match or raises :exc:`ValueError` " +"if not found." +msgstr "" + +#: ../../library/collections.rst:533 +msgid "Insert *x* into the deque at position *i*." +msgstr "" + +#: ../../library/collections.rst:535 +msgid "" +"If the insertion would cause a bounded deque to grow beyond *maxlen*, " +"an :exc:`IndexError` is raised." +msgstr "" + +#: ../../library/collections.rst:543 +msgid "" +"Remove and return an element from the right side of the deque. If no " +"elements are present, raises an :exc:`IndexError`." +msgstr "" + +#: ../../library/collections.rst:549 +msgid "" +"Remove and return an element from the left side of the deque. If no elements " +"are present, raises an :exc:`IndexError`." +msgstr "" + +#: ../../library/collections.rst:555 +msgid "" +"Remove the first occurrence of *value*. If not found, raises " +"a :exc:`ValueError`." +msgstr "" + +#: ../../library/collections.rst:561 +msgid "Reverse the elements of the deque in-place and then return ``None``." +msgstr "" + +#: ../../library/collections.rst:568 +msgid "" +"Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " +"left." +msgstr "" + +#: ../../library/collections.rst:571 +msgid "" +"When the deque is not empty, rotating one step to the right is equivalent to " +"``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " +"to ``d.append(d.popleft())``." +msgstr "" + +#: ../../library/collections.rst:576 +msgid "Deque objects also provide one read-only attribute:" +msgstr "" + +#: ../../library/collections.rst:580 +msgid "Maximum size of a deque or ``None`` if unbounded." +msgstr "" + +#: ../../library/collections.rst:585 +msgid "" +"In addition to the above, deques support iteration, pickling, ``len(d)``, " +"``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " +"with the :keyword:`in` operator, and subscript references such as ``d[0]`` " +"to access the first element. Indexed access is *O*\\ (1) at both ends but " +"slows to *O*\\ (*n*) in the middle. For fast random access, use lists " +"instead." +msgstr "" + +#: ../../library/collections.rst:591 +msgid "" +"Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " +"``__imul__()``." +msgstr "" + +#: ../../library/collections.rst:594 +msgid "Example:" +msgstr "" + +#: ../../library/collections.rst:596 +msgid "" +">>> from collections import deque\n" +">>> d = deque('ghi') # make a new deque with three items\n" +">>> for elem in d: # iterate over the deque's elements\n" +"... print(elem.upper())\n" +"G\n" +"H\n" +"I\n" +"\n" +">>> d.append('j') # add a new entry to the right side\n" +">>> d.appendleft('f') # add a new entry to the left side\n" +">>> d # show the representation of the deque\n" +"deque(['f', 'g', 'h', 'i', 'j'])\n" +"\n" +">>> d.pop() # return and remove the rightmost item\n" +"'j'\n" +">>> d.popleft() # return and remove the leftmost item\n" +"'f'\n" +">>> list(d) # list the contents of the deque\n" +"['g', 'h', 'i']\n" +">>> d[0] # peek at leftmost item\n" +"'g'\n" +">>> d[-1] # peek at rightmost item\n" +"'i'\n" +"\n" +">>> list(reversed(d)) # list the contents of a deque in " +"reverse\n" +"['i', 'h', 'g']\n" +">>> 'h' in d # search the deque\n" +"True\n" +">>> d.extend('jkl') # add multiple elements at once\n" +">>> d\n" +"deque(['g', 'h', 'i', 'j', 'k', 'l'])\n" +">>> d.rotate(1) # right rotation\n" +">>> d\n" +"deque(['l', 'g', 'h', 'i', 'j', 'k'])\n" +">>> d.rotate(-1) # left rotation\n" +">>> d\n" +"deque(['g', 'h', 'i', 'j', 'k', 'l'])\n" +"\n" +">>> deque(reversed(d)) # make a new deque in reverse order\n" +"deque(['l', 'k', 'j', 'i', 'h', 'g'])\n" +">>> d.clear() # empty the deque\n" +">>> d.pop() # cannot pop from an empty deque\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in -toplevel-\n" +" d.pop()\n" +"IndexError: pop from an empty deque\n" +"\n" +">>> d.extendleft('abc') # extendleft() reverses the input " +"order\n" +">>> d\n" +"deque(['c', 'b', 'a'])" +msgstr "" + +#: ../../library/collections.rst:651 +msgid ":class:`deque` Recipes" +msgstr "" + +#: ../../library/collections.rst:653 +msgid "This section shows various approaches to working with deques." +msgstr "" + +#: ../../library/collections.rst:655 +msgid "" +"Bounded length deques provide functionality similar to the ``tail`` filter " +"in Unix::" +msgstr "" + +#: ../../library/collections.rst:658 +msgid "" +"def tail(filename, n=10):\n" +" 'Return the last n lines of a file'\n" +" with open(filename) as f:\n" +" return deque(f, n)" +msgstr "" + +#: ../../library/collections.rst:663 +msgid "" +"Another approach to using deques is to maintain a sequence of recently added " +"elements by appending to the right and popping to the left::" +msgstr "" + +#: ../../library/collections.rst:666 +msgid "" +"def moving_average(iterable, n=3):\n" +" # moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0\n" +" # https://en.wikipedia.org/wiki/Moving_average\n" +" it = iter(iterable)\n" +" d = deque(itertools.islice(it, n-1))\n" +" d.appendleft(0)\n" +" s = sum(d)\n" +" for elem in it:\n" +" s += elem - d.popleft()\n" +" d.append(elem)\n" +" yield s / n" +msgstr "" + +#: ../../library/collections.rst:678 +msgid "" +"A `round-robin scheduler `_ can be implemented with input iterators stored in " +"a :class:`deque`. Values are yielded from the active iterator in position " +"zero. If that iterator is exhausted, it can be removed " +"with :meth:`~deque.popleft`; otherwise, it can be cycled back to the end " +"with the :meth:`~deque.rotate` method::" +msgstr "" + +#: ../../library/collections.rst:685 +msgid "" +"def roundrobin(*iterables):\n" +" \"roundrobin('ABC', 'D', 'EF') --> A D E B F C\"\n" +" iterators = deque(map(iter, iterables))\n" +" while iterators:\n" +" try:\n" +" while True:\n" +" yield next(iterators[0])\n" +" iterators.rotate(-1)\n" +" except StopIteration:\n" +" # Remove an exhausted iterator.\n" +" iterators.popleft()" +msgstr "" + +#: ../../library/collections.rst:697 +msgid "" +"The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " +"slicing and deletion. For example, a pure Python implementation of ``del " +"d[n]`` relies on the ``rotate()`` method to position elements to be popped::" +msgstr "" + +#: ../../library/collections.rst:701 +msgid "" +"def delete_nth(d, n):\n" +" d.rotate(-n)\n" +" d.popleft()\n" +" d.rotate(n)" +msgstr "" + +#: ../../library/collections.rst:706 +msgid "" +"To implement :class:`deque` slicing, use a similar approach " +"applying :meth:`~deque.rotate` to bring a target element to the left side of " +"the deque. Remove old entries with :meth:`~deque.popleft`, add new entries " +"with :meth:`~deque.extend`, and then reverse the rotation. With minor " +"variations on that approach, it is easy to implement Forth style stack " +"manipulations such as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, " +"``rot``, and ``roll``." +msgstr "" + +#: ../../library/collections.rst:716 +msgid ":class:`defaultdict` objects" +msgstr "" + +#: ../../library/collections.rst:720 +msgid "" +"Return a new dictionary-like object. :class:`defaultdict` is a subclass of " +"the built-in :class:`dict` class. It overrides one method and adds one " +"writable instance variable. The remaining functionality is the same as for " +"the :class:`dict` class and is not documented here." +msgstr "" + +#: ../../library/collections.rst:725 +msgid "" +"The first argument provides the initial value for " +"the :attr:`default_factory` attribute; it defaults to ``None``. All " +"remaining arguments are treated the same as if they were passed to " +"the :class:`dict` constructor, including keyword arguments." +msgstr "" + +#: ../../library/collections.rst:731 +msgid "" +":class:`defaultdict` objects support the following method in addition to the " +"standard :class:`dict` operations:" +msgstr "" + +#: ../../library/collections.rst:736 +msgid "" +"If the :attr:`default_factory` attribute is ``None``, this raises " +"a :exc:`KeyError` exception with the *key* as argument." +msgstr "" + +#: ../../library/collections.rst:739 +msgid "" +"If :attr:`default_factory` is not ``None``, it is called without arguments " +"to provide a default value for the given *key*, this value is inserted in " +"the dictionary for the *key*, and returned." +msgstr "" + +#: ../../library/collections.rst:743 +msgid "" +"If calling :attr:`default_factory` raises an exception this exception is " +"propagated unchanged." +msgstr "" + +#: ../../library/collections.rst:746 +msgid "" +"This method is called by the :meth:`~object.__getitem__` method of " +"the :class:`dict` class when the requested key is not found; whatever it " +"returns or raises is then returned or raised by :meth:`~object.__getitem__`." +msgstr "" + +#: ../../library/collections.rst:750 +msgid "" +"Note that :meth:`__missing__` is *not* called for any operations " +"besides :meth:`~object.__getitem__`. This means that :meth:`~dict.get` will, " +"like normal dictionaries, return ``None`` as a default rather than " +"using :attr:`default_factory`." +msgstr "" + +#: ../../library/collections.rst:756 +msgid ":class:`defaultdict` objects support the following instance variable:" +msgstr "" + +#: ../../library/collections.rst:761 +msgid "" +"This attribute is used by the :meth:`__missing__` method; it is initialized " +"from the first argument to the constructor, if present, or to ``None``, if " +"absent." +msgstr "" + +#: ../../library/collections.rst:765 ../../library/collections.rst:1192 +msgid "" +"Added merge (``|``) and update (``|=``) operators, specified in :pep:`584`." +msgstr "" + +#: ../../library/collections.rst:771 +msgid ":class:`defaultdict` Examples" +msgstr "" + +#: ../../library/collections.rst:773 +msgid "" +"Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " +"to group a sequence of key-value pairs into a dictionary of lists:" +msgstr "" + +#: ../../library/collections.rst:784 +msgid "" +"When each key is encountered for the first time, it is not already in the " +"mapping; so an entry is automatically created using " +"the :attr:`~defaultdict.default_factory` function which returns an " +"empty :class:`list`. The :meth:`!list.append` operation then attaches the " +"value to the new list. When keys are encountered again, the look-up " +"proceeds normally (returning the list for that key) and the :meth:`!" +"list.append` operation adds another value to the list. This technique is " +"simpler and faster than an equivalent technique " +"using :meth:`dict.setdefault`:" +msgstr "" + +#: ../../library/collections.rst:799 +msgid "" +"Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes " +"the :class:`defaultdict` useful for counting (like a bag or multiset in " +"other languages):" +msgstr "" + +#: ../../library/collections.rst:811 +msgid "" +"When a letter is first encountered, it is missing from the mapping, so " +"the :attr:`~defaultdict.default_factory` function calls :func:`int` to " +"supply a default count of zero. The increment operation then builds up the " +"count for each letter." +msgstr "" + +#: ../../library/collections.rst:815 +msgid "" +"The function :func:`int` which always returns zero is just a special case of " +"constant functions. A faster and more flexible way to create constant " +"functions is to use a lambda function which can supply any constant value " +"(not just zero):" +msgstr "" + +#: ../../library/collections.rst:828 +msgid "" +"Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes " +"the :class:`defaultdict` useful for building a dictionary of sets:" +msgstr "" + +#: ../../library/collections.rst:841 +msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" +msgstr "" + +#: ../../library/collections.rst:843 +msgid "" +"Named tuples assign meaning to each position in a tuple and allow for more " +"readable, self-documenting code. They can be used wherever regular tuples " +"are used, and they add the ability to access fields by name instead of " +"position index." +msgstr "" + +#: ../../library/collections.rst:849 +msgid "" +"Returns a new tuple subclass named *typename*. The new subclass is used to " +"create tuple-like objects that have fields accessible by attribute lookup as " +"well as being indexable and iterable. Instances of the subclass also have a " +"helpful docstring (with *typename* and *field_names*) and a " +"helpful :meth:`~object.__repr__` method which lists the tuple contents in a " +"``name=value`` format." +msgstr "" + +#: ../../library/collections.rst:856 +msgid "" +"The *field_names* are a sequence of strings such as ``['x', 'y']``. " +"Alternatively, *field_names* can be a single string with each fieldname " +"separated by whitespace and/or commas, for example ``'x y'`` or ``'x, y'``." +msgstr "" + +#: ../../library/collections.rst:860 +msgid "" +"Any valid Python identifier may be used for a fieldname except for names " +"starting with an underscore. Valid identifiers consist of letters, digits, " +"and underscores but do not start with a digit or underscore and cannot be " +"a :mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, or " +"*raise*." +msgstr "" + +#: ../../library/collections.rst:866 +msgid "" +"If *rename* is true, invalid fieldnames are automatically replaced with " +"positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " +"converted to ``['abc', '_1', 'ghi', '_3']``, eliminating the keyword ``def`` " +"and the duplicate fieldname ``abc``." +msgstr "" + +#: ../../library/collections.rst:871 +msgid "" +"*defaults* can be ``None`` or an :term:`iterable` of default values. Since " +"fields with a default value must come after any fields without a default, " +"the *defaults* are applied to the rightmost parameters. For example, if the " +"fieldnames are ``['x', 'y', 'z']`` and the defaults are ``(1, 2)``, then " +"``x`` will be a required argument, ``y`` will default to ``1``, and ``z`` " +"will default to ``2``." +msgstr "" + +#: ../../library/collections.rst:878 +msgid "" +"If *module* is defined, the :attr:`~type.__module__` attribute of the named " +"tuple is set to that value." +msgstr "" + +#: ../../library/collections.rst:881 +msgid "" +"Named tuple instances do not have per-instance dictionaries, so they are " +"lightweight and require no more memory than regular tuples." +msgstr "" + +#: ../../library/collections.rst:884 +msgid "" +"To support pickling, the named tuple class should be assigned to a variable " +"that matches *typename*." +msgstr "" + +#: ../../library/collections.rst:887 +msgid "Added support for *rename*." +msgstr "" + +#: ../../library/collections.rst:890 +msgid "" +"The *verbose* and *rename* parameters became :ref:`keyword-only arguments " +"`." +msgstr "" + +#: ../../library/collections.rst:894 +msgid "Added the *module* parameter." +msgstr "" + +#: ../../library/collections.rst:897 +msgid "Removed the *verbose* parameter and the :attr:`!_source` attribute." +msgstr "" + +#: ../../library/collections.rst:900 +msgid "" +"Added the *defaults* parameter and " +"the :attr:`~somenamedtuple._field_defaults` attribute." +msgstr "" + +#: ../../library/collections.rst:904 +msgid "" +">>> # Basic example\n" +">>> Point = namedtuple('Point', ['x', 'y'])\n" +">>> p = Point(11, y=22) # instantiate with positional or keyword " +"arguments\n" +">>> p[0] + p[1] # indexable like the plain tuple (11, 22)\n" +"33\n" +">>> x, y = p # unpack like a regular tuple\n" +">>> x, y\n" +"(11, 22)\n" +">>> p.x + p.y # fields also accessible by name\n" +"33\n" +">>> p # readable __repr__ with a name=value style\n" +"Point(x=11, y=22)" +msgstr "" + +#: ../../library/collections.rst:920 +msgid "" +"Named tuples are especially useful for assigning field names to result " +"tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" +msgstr "" + +#: ../../library/collections.rst:923 +msgid "" +"EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, " +"paygrade')\n" +"\n" +"import csv\n" +"for emp in map(EmployeeRecord._make, csv.reader(open(\"employees.csv\", " +"\"rb\"))):\n" +" print(emp.name, emp.title)\n" +"\n" +"import sqlite3\n" +"conn = sqlite3.connect('/companydata')\n" +"cursor = conn.cursor()\n" +"cursor.execute('SELECT name, age, title, department, paygrade FROM " +"employees')\n" +"for emp in map(EmployeeRecord._make, cursor.fetchall()):\n" +" print(emp.name, emp.title)" +msgstr "" + +#: ../../library/collections.rst:936 +msgid "" +"In addition to the methods inherited from tuples, named tuples support three " +"additional methods and two attributes. To prevent conflicts with field " +"names, the method and attribute names start with an underscore." +msgstr "" + +#: ../../library/collections.rst:942 +msgid "" +"Class method that makes a new instance from an existing sequence or iterable." +msgstr "" + +#: ../../library/collections.rst:944 +msgid "" +">>> t = [11, 22]\n" +">>> Point._make(t)\n" +"Point(x=11, y=22)" +msgstr "" + +#: ../../library/collections.rst:952 +msgid "" +"Return a new :class:`dict` which maps field names to their corresponding " +"values:" +msgstr "" + +#: ../../library/collections.rst:955 +msgid "" +">>> p = Point(x=11, y=22)\n" +">>> p._asdict()\n" +"{'x': 11, 'y': 22}" +msgstr "" + +#: ../../library/collections.rst:961 +msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." +msgstr "" + +#: ../../library/collections.rst:964 +msgid "" +"Returns a regular :class:`dict` instead of an :class:`OrderedDict`. As of " +"Python 3.7, regular dicts are guaranteed to be ordered. If the extra " +"features of :class:`OrderedDict` are required, the suggested remediation is " +"to cast the result to the desired type: ``OrderedDict(nt._asdict())``." +msgstr "" + +#: ../../library/collections.rst:973 +msgid "" +"Return a new instance of the named tuple replacing specified fields with new " +"values::" +msgstr "" + +#: ../../library/collections.rst:976 +msgid "" +">>> p = Point(x=11, y=22)\n" +">>> p._replace(x=33)\n" +"Point(x=33, y=22)\n" +"\n" +">>> for partnum, record in inventory.items():\n" +"... inventory[partnum] = record._replace(price=newprices[partnum], " +"timestamp=time.now())" +msgstr "" + +#: ../../library/collections.rst:983 +msgid "" +"Named tuples are also supported by generic function :func:`copy.replace`." +msgstr "" + +#: ../../library/collections.rst:985 +msgid "" +"Raise :exc:`TypeError` instead of :exc:`ValueError` for invalid keyword " +"arguments." +msgstr "" + +#: ../../library/collections.rst:991 +msgid "" +"Tuple of strings listing the field names. Useful for introspection and for " +"creating new named tuple types from existing named tuples." +msgstr "" + +#: ../../library/collections.rst:994 +msgid "" +">>> p._fields # view the field names\n" +"('x', 'y')\n" +"\n" +">>> Color = namedtuple('Color', 'red green blue')\n" +">>> Pixel = namedtuple('Pixel', Point._fields + Color._fields)\n" +">>> Pixel(11, 22, 128, 255, 0)\n" +"Pixel(x=11, y=22, red=128, green=255, blue=0)" +msgstr "" + +#: ../../library/collections.rst:1006 +msgid "Dictionary mapping field names to default values." +msgstr "" + +#: ../../library/collections.rst:1008 +msgid "" +">>> Account = namedtuple('Account', ['type', 'balance'], defaults=[0])\n" +">>> Account._field_defaults\n" +"{'balance': 0}\n" +">>> Account('premium')\n" +"Account(type='premium', balance=0)" +msgstr "" + +#: ../../library/collections.rst:1016 +msgid "" +"To retrieve a field whose name is stored in a string, use " +"the :func:`getattr` function:" +msgstr "" + +#: ../../library/collections.rst:1022 +msgid "" +"To convert a dictionary to a named tuple, use the double-star-operator (as " +"described in :ref:`tut-unpacking-arguments`):" +msgstr "" + +#: ../../library/collections.rst:1029 +msgid "" +"Since a named tuple is a regular Python class, it is easy to add or change " +"functionality with a subclass. Here is how to add a calculated field and a " +"fixed-width print format:" +msgstr "" + +#: ../../library/collections.rst:1033 +msgid "" +">>> class Point(namedtuple('Point', ['x', 'y'])):\n" +"... __slots__ = ()\n" +"... @property\n" +"... def hypot(self):\n" +"... return (self.x ** 2 + self.y ** 2) ** 0.5\n" +"... def __str__(self):\n" +"... return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, " +"self.hypot)\n" +"\n" +">>> for p in Point(3, 4), Point(14, 5/7):\n" +"... print(p)\n" +"Point: x= 3.000 y= 4.000 hypot= 5.000\n" +"Point: x=14.000 y= 0.714 hypot=14.018" +msgstr "" + +#: ../../library/collections.rst:1048 +msgid "" +"The subclass shown above sets ``__slots__`` to an empty tuple. This helps " +"keep memory requirements low by preventing the creation of instance " +"dictionaries." +msgstr "" + +#: ../../library/collections.rst:1051 +msgid "" +"Subclassing is not useful for adding new, stored fields. Instead, simply " +"create a new named tuple type from the :attr:`~somenamedtuple._fields` " +"attribute:" +msgstr "" + +#: ../../library/collections.rst:1056 +msgid "" +"Docstrings can be customized by making direct assignments to the ``__doc__`` " +"fields:" +msgstr "" + +#: ../../library/collections.rst:1065 +msgid "Property docstrings became writeable." +msgstr "" + +#: ../../library/collections.rst:1070 +msgid "" +"See :class:`typing.NamedTuple` for a way to add type hints for named " +"tuples. It also provides an elegant notation using the :keyword:`class` " +"keyword::" +msgstr "" + +#: ../../library/collections.rst:1074 +msgid "" +"class Component(NamedTuple):\n" +" part_number: int\n" +" weight: float\n" +" description: Optional[str] = None" +msgstr "" + +#: ../../library/collections.rst:1079 +msgid "" +"See :meth:`types.SimpleNamespace` for a mutable namespace based on an " +"underlying dictionary instead of a tuple." +msgstr "" + +#: ../../library/collections.rst:1082 +msgid "" +"The :mod:`dataclasses` module provides a decorator and functions for " +"automatically adding generated special methods to user-defined classes." +msgstr "" + +#: ../../library/collections.rst:1087 +msgid ":class:`OrderedDict` objects" +msgstr "" + +#: ../../library/collections.rst:1089 +msgid "" +"Ordered dictionaries are just like regular dictionaries but have some extra " +"capabilities relating to ordering operations. They have become less " +"important now that the built-in :class:`dict` class gained the ability to " +"remember insertion order (this new behavior became guaranteed in Python 3.7)." +msgstr "" + +#: ../../library/collections.rst:1095 +msgid "Some differences from :class:`dict` still remain:" +msgstr "" + +#: ../../library/collections.rst:1097 +msgid "" +"The regular :class:`dict` was designed to be very good at mapping " +"operations. Tracking insertion order was secondary." +msgstr "" + +#: ../../library/collections.rst:1100 +msgid "" +"The :class:`OrderedDict` was designed to be good at reordering operations. " +"Space efficiency, iteration speed, and the performance of update operations " +"were secondary." +msgstr "" + +#: ../../library/collections.rst:1104 +msgid "" +"The :class:`OrderedDict` algorithm can handle frequent reordering operations " +"better than :class:`dict`. As shown in the recipes below, this makes it " +"suitable for implementing various kinds of LRU caches." +msgstr "" + +#: ../../library/collections.rst:1108 +msgid "" +"The equality operation for :class:`OrderedDict` checks for matching order." +msgstr "" + +#: ../../library/collections.rst:1110 +msgid "" +"A regular :class:`dict` can emulate the order sensitive equality test with " +"``p == q and all(k1 == k2 for k1, k2 in zip(p, q))``." +msgstr "" + +#: ../../library/collections.rst:1113 +msgid "" +"The :meth:`~OrderedDict.popitem` method of :class:`OrderedDict` has a " +"different signature. It accepts an optional argument to specify which item " +"is popped." +msgstr "" + +#: ../../library/collections.rst:1116 +msgid "" +"A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=True)`` " +"with ``d.popitem()`` which is guaranteed to pop the rightmost (last) item." +msgstr "" + +#: ../../library/collections.rst:1119 +msgid "" +"A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=False)`` " +"with ``(k := next(iter(d)), d.pop(k))`` which will return and remove the " +"leftmost (first) item if it exists." +msgstr "" + +#: ../../library/collections.rst:1123 +msgid "" +":class:`OrderedDict` has a :meth:`~OrderedDict.move_to_end` method to " +"efficiently reposition an element to an endpoint." +msgstr "" + +#: ../../library/collections.rst:1126 +msgid "" +"A regular :class:`dict` can emulate OrderedDict's ``od.move_to_end(k, " +"last=True)`` with ``d[k] = d.pop(k)`` which will move the key and its " +"associated value to the rightmost (last) position." +msgstr "" + +#: ../../library/collections.rst:1130 +msgid "" +"A regular :class:`dict` does not have an efficient equivalent for " +"OrderedDict's ``od.move_to_end(k, last=False)`` which moves the key and its " +"associated value to the leftmost (first) position." +msgstr "" + +#: ../../library/collections.rst:1134 +msgid "" +"Until Python 3.8, :class:`dict` lacked a :meth:`~object.__reversed__` method." +msgstr "" + +#: ../../library/collections.rst:1139 +msgid "" +"Return an instance of a :class:`dict` subclass that has methods specialized " +"for rearranging dictionary order." +msgstr "" + +#: ../../library/collections.rst:1146 +msgid "" +"The :meth:`popitem` method for ordered dictionaries returns and removes a " +"(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" +"out)` order if *last* is true or :abbr:`FIFO (first-in, first-out)` order if " +"false." +msgstr "" + +#: ../../library/collections.rst:1153 +msgid "" +"Move an existing *key* to either end of an ordered dictionary. The item is " +"moved to the right end if *last* is true (the default) or to the beginning " +"if *last* is false. Raises :exc:`KeyError` if the *key* does not exist:" +msgstr "" + +#: ../../library/collections.rst:1158 +msgid "" +">>> d = OrderedDict.fromkeys('abcde')\n" +">>> d.move_to_end('b')\n" +">>> ''.join(d)\n" +"'acdeb'\n" +">>> d.move_to_end('b', last=False)\n" +">>> ''.join(d)\n" +"'bacde'" +msgstr "" + +#: ../../library/collections.rst:1170 +msgid "" +"In addition to the usual mapping methods, ordered dictionaries also support " +"reverse iteration using :func:`reversed`." +msgstr "" + +#: ../../library/collections.rst:1175 +msgid "" +"Equality tests between :class:`OrderedDict` objects are order-sensitive and " +"are roughly equivalent to ``list(od1.items())==list(od2.items())``." +msgstr "" + +#: ../../library/collections.rst:1178 +msgid "" +"Equality tests between :class:`OrderedDict` objects and " +"other :class:`~collections.abc.Mapping` objects are order-insensitive like " +"regular dictionaries. This allows :class:`OrderedDict` objects to be " +"substituted anywhere a regular dictionary is used." +msgstr "" + +#: ../../library/collections.rst:1183 +msgid "" +"The items, keys, and values :term:`views ` " +"of :class:`OrderedDict` now support reverse iteration using :func:`reversed`." +msgstr "" + +#: ../../library/collections.rst:1187 +msgid "" +"With the acceptance of :pep:`468`, order is retained for keyword arguments " +"passed to the :class:`OrderedDict` constructor and its :meth:`~dict.update` " +"method." +msgstr "" + +#: ../../library/collections.rst:1197 +msgid ":class:`OrderedDict` Examples and Recipes" +msgstr "" + +#: ../../library/collections.rst:1199 +msgid "" +"It is straightforward to create an ordered dictionary variant that remembers " +"the order the keys were *last* inserted. If a new entry overwrites an " +"existing entry, the original insertion position is changed and moved to the " +"end::" +msgstr "" + +#: ../../library/collections.rst:1204 +msgid "" +"class LastUpdatedOrderedDict(OrderedDict):\n" +" 'Store items in the order the keys were last added'\n" +"\n" +" def __setitem__(self, key, value):\n" +" super().__setitem__(key, value)\n" +" self.move_to_end(key)" +msgstr "" + +#: ../../library/collections.rst:1211 +msgid "" +"An :class:`OrderedDict` would also be useful for implementing variants " +"of :func:`functools.lru_cache`:" +msgstr "" + +#: ../../library/collections.rst:1214 +msgid "" +"from collections import OrderedDict\n" +"from time import time\n" +"\n" +"class TimeBoundedLRU:\n" +" \"LRU Cache that invalidates and refreshes old entries.\"\n" +"\n" +" def __init__(self, func, maxsize=128, maxage=30):\n" +" self.cache = OrderedDict() # { args : (timestamp, result)}\n" +" self.func = func\n" +" self.maxsize = maxsize\n" +" self.maxage = maxage\n" +"\n" +" def __call__(self, *args):\n" +" if args in self.cache:\n" +" self.cache.move_to_end(args)\n" +" timestamp, result = self.cache[args]\n" +" if time() - timestamp <= self.maxage:\n" +" return result\n" +" result = self.func(*args)\n" +" self.cache[args] = time(), result\n" +" if len(self.cache) > self.maxsize:\n" +" self.cache.popitem(last=False)\n" +" return result" +msgstr "" + +#: ../../library/collections.rst:1241 +msgid "" +"class MultiHitLRUCache:\n" +" \"\"\" LRU cache that defers caching a result until\n" +" it has been requested multiple times.\n" +"\n" +" To avoid flushing the LRU cache with one-time requests,\n" +" we don't cache until a request has been made more than once.\n" +"\n" +" \"\"\"\n" +"\n" +" def __init__(self, func, maxsize=128, maxrequests=4096, cache_after=1):\n" +" self.requests = OrderedDict() # { uncached_key : request_count }\n" +" self.cache = OrderedDict() # { cached_key : function_result }\n" +" self.func = func\n" +" self.maxrequests = maxrequests # max number of uncached requests\n" +" self.maxsize = maxsize # max number of stored return " +"values\n" +" self.cache_after = cache_after\n" +"\n" +" def __call__(self, *args):\n" +" if args in self.cache:\n" +" self.cache.move_to_end(args)\n" +" return self.cache[args]\n" +" result = self.func(*args)\n" +" self.requests[args] = self.requests.get(args, 0) + 1\n" +" if self.requests[args] <= self.cache_after:\n" +" self.requests.move_to_end(args)\n" +" if len(self.requests) > self.maxrequests:\n" +" self.requests.popitem(last=False)\n" +" else:\n" +" self.requests.pop(args, None)\n" +" self.cache[args] = result\n" +" if len(self.cache) > self.maxsize:\n" +" self.cache.popitem(last=False)\n" +" return result" +msgstr "" + +#: ../../library/collections.rst:1310 +msgid ":class:`UserDict` objects" +msgstr "" + +#: ../../library/collections.rst:1312 +msgid "" +"The class, :class:`UserDict` acts as a wrapper around dictionary objects. " +"The need for this class has been partially supplanted by the ability to " +"subclass directly from :class:`dict`; however, this class can be easier to " +"work with because the underlying dictionary is accessible as an attribute." +msgstr "" + +#: ../../library/collections.rst:1320 +msgid "" +"Class that simulates a dictionary. The instance's contents are kept in a " +"regular dictionary, which is accessible via the :attr:`data` attribute " +"of :class:`UserDict` instances. If *initialdata* is provided, :attr:`data` " +"is initialized with its contents; note that a reference to *initialdata* " +"will not be kept, allowing it to be used for other purposes." +msgstr "" + +#: ../../library/collections.rst:1326 +msgid "" +"In addition to supporting the methods and operations of " +"mappings, :class:`UserDict` instances provide the following attribute:" +msgstr "" + +#: ../../library/collections.rst:1331 +msgid "" +"A real dictionary used to store the contents of the :class:`UserDict` class." +msgstr "" + +#: ../../library/collections.rst:1337 +msgid ":class:`UserList` objects" +msgstr "" + +#: ../../library/collections.rst:1339 +msgid "" +"This class acts as a wrapper around list objects. It is a useful base class " +"for your own list-like classes which can inherit from them and override " +"existing methods or add new ones. In this way, one can add new behaviors to " +"lists." +msgstr "" + +#: ../../library/collections.rst:1344 +msgid "" +"The need for this class has been partially supplanted by the ability to " +"subclass directly from :class:`list`; however, this class can be easier to " +"work with because the underlying list is accessible as an attribute." +msgstr "" + +#: ../../library/collections.rst:1350 +msgid "" +"Class that simulates a list. The instance's contents are kept in a regular " +"list, which is accessible via the :attr:`data` attribute " +"of :class:`UserList` instances. The instance's contents are initially set " +"to a copy of *list*, defaulting to the empty list ``[]``. *list* can be any " +"iterable, for example a real Python list or a :class:`UserList` object." +msgstr "" + +#: ../../library/collections.rst:1356 +msgid "" +"In addition to supporting the methods and operations of mutable " +"sequences, :class:`UserList` instances provide the following attribute:" +msgstr "" + +#: ../../library/collections.rst:1361 +msgid "" +"A real :class:`list` object used to store the contents of " +"the :class:`UserList` class." +msgstr "" + +#: ../../library/collections.rst:1364 +msgid "" +"**Subclassing requirements:** Subclasses of :class:`UserList` are expected " +"to offer a constructor which can be called with either no arguments or one " +"argument. List operations which return a new sequence attempt to create an " +"instance of the actual implementation class. To do so, it assumes that the " +"constructor can be called with a single parameter, which is a sequence " +"object used as a data source." +msgstr "" + +#: ../../library/collections.rst:1371 +msgid "" +"If a derived class does not wish to comply with this requirement, all of the " +"special methods supported by this class will need to be overridden; please " +"consult the sources for information about the methods which need to be " +"provided in that case." +msgstr "" + +#: ../../library/collections.rst:1377 +msgid ":class:`UserString` objects" +msgstr "" + +#: ../../library/collections.rst:1379 +msgid "" +"The class, :class:`UserString` acts as a wrapper around string objects. The " +"need for this class has been partially supplanted by the ability to subclass " +"directly from :class:`str`; however, this class can be easier to work with " +"because the underlying string is accessible as an attribute." +msgstr "" + +#: ../../library/collections.rst:1387 +msgid "" +"Class that simulates a string object. The instance's content is kept in a " +"regular string object, which is accessible via the :attr:`data` attribute " +"of :class:`UserString` instances. The instance's contents are initially set " +"to a copy of *seq*. The *seq* argument can be any object which can be " +"converted into a string using the built-in :func:`str` function." +msgstr "" + +#: ../../library/collections.rst:1394 +msgid "" +"In addition to supporting the methods and operations of " +"strings, :class:`UserString` instances provide the following attribute:" +msgstr "" + +#: ../../library/collections.rst:1399 +msgid "" +"A real :class:`str` object used to store the contents of " +"the :class:`UserString` class." +msgstr "" + +#: ../../library/collections.rst:1402 +msgid "" +"New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " +"``isprintable``, and ``maketrans``." +msgstr "" diff --git a/library/colorsys.po b/library/colorsys.po new file mode 100644 index 0000000..1afb266 --- /dev/null +++ b/library/colorsys.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/colorsys.rst:2 +msgid ":mod:`!colorsys` --- Conversions between color systems" +msgstr "" + +#: ../../library/colorsys.rst:9 +msgid "**Source code:** :source:`Lib/colorsys.py`" +msgstr "" + +#: ../../library/colorsys.rst:13 +msgid "" +"The :mod:`colorsys` module defines bidirectional conversions of color values " +"between colors expressed in the RGB (Red Green Blue) color space used in " +"computer monitors and three other coordinate systems: YIQ, HLS (Hue " +"Lightness Saturation) and HSV (Hue Saturation Value). Coordinates in all of " +"these color spaces are floating-point values. In the YIQ space, the Y " +"coordinate is between 0 and 1, but the I and Q coordinates can be positive " +"or negative. In all other spaces, the coordinates are all between 0 and 1." +msgstr "" + +#: ../../library/colorsys.rst:23 +msgid "" +"More information about color spaces can be found at https://poynton.ca/" +"ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-" +"spaces.htm." +msgstr "" + +#: ../../library/colorsys.rst:27 +msgid "The :mod:`colorsys` module defines the following functions:" +msgstr "" + +#: ../../library/colorsys.rst:32 +msgid "Convert the color from RGB coordinates to YIQ coordinates." +msgstr "" + +#: ../../library/colorsys.rst:37 +msgid "Convert the color from YIQ coordinates to RGB coordinates." +msgstr "" + +#: ../../library/colorsys.rst:42 +msgid "Convert the color from RGB coordinates to HLS coordinates." +msgstr "" + +#: ../../library/colorsys.rst:47 +msgid "Convert the color from HLS coordinates to RGB coordinates." +msgstr "" + +#: ../../library/colorsys.rst:52 +msgid "Convert the color from RGB coordinates to HSV coordinates." +msgstr "" + +#: ../../library/colorsys.rst:57 +msgid "Convert the color from HSV coordinates to RGB coordinates." +msgstr "" + +#: ../../library/colorsys.rst:59 +msgid "Example::" +msgstr "" + +#: ../../library/colorsys.rst:61 +msgid "" +">>> import colorsys\n" +">>> colorsys.rgb_to_hsv(0.2, 0.4, 0.4)\n" +"(0.5, 0.5, 0.4)\n" +">>> colorsys.hsv_to_rgb(0.5, 0.5, 0.4)\n" +"(0.2, 0.4, 0.4)" +msgstr "" diff --git a/library/compileall.po b/library/compileall.po new file mode 100644 index 0000000..6a70e65 --- /dev/null +++ b/library/compileall.po @@ -0,0 +1,425 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/compileall.rst:2 +msgid ":mod:`!compileall` --- Byte-compile Python libraries" +msgstr "" + +#: ../../library/compileall.rst:7 +msgid "**Source code:** :source:`Lib/compileall.py`" +msgstr "" + +#: ../../library/compileall.rst:11 +msgid "" +"This module provides some utility functions to support installing Python " +"libraries. These functions compile Python source files in a directory tree. " +"This module can be used to create the cached byte-code files at library " +"installation time, which makes them available for use even by users who " +"don't have write permission to the library directories." +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/compileall.rst:22 +msgid "Command-line use" +msgstr "" + +#: ../../library/compileall.rst:24 +msgid "" +"This module can work as a script (using :program:`python -m compileall`) to " +"compile Python sources." +msgstr "" + +#: ../../library/compileall.rst:32 +msgid "" +"Positional arguments are files to compile or directories that contain source " +"files, traversed recursively. If no argument is given, behave as if the " +"command line was :samp:`-l {}`." +msgstr "" + +#: ../../library/compileall.rst:38 +msgid "" +"Do not recurse into subdirectories, only compile source code files directly " +"contained in the named or implied directories." +msgstr "" + +#: ../../library/compileall.rst:43 +msgid "Force rebuild even if timestamps are up-to-date." +msgstr "" + +#: ../../library/compileall.rst:47 +msgid "" +"Do not print the list of files compiled. If passed once, error messages will " +"still be printed. If passed twice (``-qq``), all output is suppressed." +msgstr "" + +#: ../../library/compileall.rst:52 +msgid "" +"Directory prepended to the path to each file being compiled. This will " +"appear in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" + +#: ../../library/compileall.rst:60 +msgid "" +"Remove the given prefix from paths recorded in the ``.pyc`` files. Paths are " +"made relative to the prefix." +msgstr "" + +#: ../../library/compileall.rst:63 +msgid "This option can be used with ``-p`` but not with ``-d``." +msgstr "" + +#: ../../library/compileall.rst:67 +msgid "" +"Prepend the given prefix to paths recorded in the ``.pyc`` files. Use ``-p /" +"`` to make the paths absolute." +msgstr "" + +#: ../../library/compileall.rst:70 +msgid "This option can be used with ``-s`` but not with ``-d``." +msgstr "" + +#: ../../library/compileall.rst:74 +msgid "" +"regex is used to search the full path to each file considered for " +"compilation, and if the regex produces a match, the file is skipped." +msgstr "" + +#: ../../library/compileall.rst:79 +msgid "" +"Read the file ``list`` and add each line that it contains to the list of " +"files and directories to compile. If ``list`` is ``-``, read lines from " +"``stdin``." +msgstr "" + +#: ../../library/compileall.rst:85 +msgid "" +"Write the byte-code files to their legacy locations and names, which may " +"overwrite byte-code files created by another version of Python. The default " +"is to write files to their :pep:`3147` locations and names, which allows " +"byte-code files from multiple versions of Python to coexist." +msgstr "" + +#: ../../library/compileall.rst:92 +msgid "" +"Control the maximum recursion level for subdirectories. If this is given, " +"then ``-l`` option will not be taken into account. :program:`python -m " +"compileall -r 0` is equivalent to :program:`python -m compileall " +" -l`." +msgstr "" + +#: ../../library/compileall.rst:99 +msgid "" +"Use *N* workers to compile the files within the given directory. If ``0`` is " +"used, then the result of :func:`os.process_cpu_count` will be used." +msgstr "" + +#: ../../library/compileall.rst:105 +msgid "" +"Control how the generated byte-code files are invalidated at runtime. The " +"``timestamp`` value, means that ``.pyc`` files with the source timestamp and " +"size embedded will be generated. The ``checked-hash`` and ``unchecked-hash`` " +"values cause hash-based pycs to be generated. Hash-based pycs embed a hash " +"of the source file contents rather than a timestamp. See :ref:`pyc-" +"invalidation` for more information on how Python validates bytecode cache " +"files at runtime. The default is ``timestamp`` if " +"the :envvar:`SOURCE_DATE_EPOCH` environment variable is not set, and " +"``checked-hash`` if the ``SOURCE_DATE_EPOCH`` environment variable is set." +msgstr "" + +#: ../../library/compileall.rst:118 +msgid "" +"Compile with the given optimization level. May be used multiple times to " +"compile for multiple levels at a time (for example, ``compileall -o 1 -o " +"2``)." +msgstr "" + +#: ../../library/compileall.rst:124 +msgid "Ignore symlinks pointing outside the given directory." +msgstr "" + +#: ../../library/compileall.rst:128 +msgid "" +"If two ``.pyc`` files with different optimization level have the same " +"content, use hard links to consolidate duplicate files." +msgstr "" + +#: ../../library/compileall.rst:131 +msgid "Added the ``-i``, ``-b`` and ``-h`` options." +msgstr "" + +#: ../../library/compileall.rst:134 +msgid "" +"Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed " +"to a multilevel value. ``-b`` will always produce a byte-code file ending " +"in ``.pyc``, never ``.pyo``." +msgstr "" + +#: ../../library/compileall.rst:139 +msgid "Added the ``--invalidation-mode`` option." +msgstr "" + +#: ../../library/compileall.rst:142 +msgid "" +"Added the ``-s``, ``-p``, ``-e`` and ``--hardlink-dupes`` options. Raised " +"the default recursion limit from 10 to :py:func:`sys.getrecursionlimit()`. " +"Added the possibility to specify the ``-o`` option multiple times." +msgstr "" + +#: ../../library/compileall.rst:149 +msgid "" +"There is no command-line option to control the optimization level used by " +"the :func:`compile` function, because the Python interpreter itself already " +"provides the option: :program:`python -O -m compileall`." +msgstr "" + +#: ../../library/compileall.rst:153 +msgid "" +"Similarly, the :func:`compile` function respects " +"the :data:`sys.pycache_prefix` setting. The generated bytecode cache will " +"only be useful if :func:`compile` is run with the " +"same :data:`sys.pycache_prefix` (if any) that will be used at runtime." +msgstr "" + +#: ../../library/compileall.rst:159 +msgid "Public functions" +msgstr "" + +#: ../../library/compileall.rst:163 +msgid "" +"Recursively descend the directory tree named by *dir*, compiling " +"all :file:`.py` files along the way. Return a true value if all the files " +"compiled successfully, and a false value otherwise." +msgstr "" + +#: ../../library/compileall.rst:167 +msgid "" +"The *maxlevels* parameter is used to limit the depth of the recursion; it " +"defaults to ``sys.getrecursionlimit()``." +msgstr "" + +#: ../../library/compileall.rst:170 +msgid "" +"If *ddir* is given, it is prepended to the path to each file being compiled " +"for use in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" + +#: ../../library/compileall.rst:176 +msgid "" +"If *force* is true, modules are re-compiled even if the timestamps are up to " +"date." +msgstr "" + +#: ../../library/compileall.rst:179 +msgid "" +"If *rx* is given, its ``search`` method is called on the complete path to " +"each file considered for compilation, and if it returns a true value, the " +"file is skipped. This can be used to exclude files matching a regular " +"expression, given as a :ref:`re.Pattern ` object." +msgstr "" + +#: ../../library/compileall.rst:184 ../../library/compileall.rst:261 +msgid "" +"If *quiet* is ``False`` or ``0`` (the default), the filenames and other " +"information are printed to standard out. Set to ``1``, only errors are " +"printed. Set to ``2``, all output is suppressed." +msgstr "" + +#: ../../library/compileall.rst:188 ../../library/compileall.rst:265 +msgid "" +"If *legacy* is true, byte-code files are written to their legacy locations " +"and names, which may overwrite byte-code files created by another version of " +"Python. The default is to write files to their :pep:`3147` locations and " +"names, which allows byte-code files from multiple versions of Python to " +"coexist." +msgstr "" + +#: ../../library/compileall.rst:194 ../../library/compileall.rst:271 +msgid "" +"*optimize* specifies the optimization level for the compiler. It is passed " +"to the built-in :func:`compile` function. Accepts also a sequence of " +"optimization levels which lead to multiple compilations of one :file:`.py` " +"file in one call." +msgstr "" + +#: ../../library/compileall.rst:198 +msgid "" +"The argument *workers* specifies how many workers are used to compile files " +"in parallel. The default is to not use multiple workers. If the platform " +"can't use multiple workers and *workers* argument is given, then sequential " +"compilation will be used as a fallback. If *workers* is 0, the number of " +"cores in the system is used. If *workers* is lower than ``0``, " +"a :exc:`ValueError` will be raised." +msgstr "" + +#: ../../library/compileall.rst:205 ../../library/compileall.rst:275 +msgid "" +"*invalidation_mode* should be a member of " +"the :class:`py_compile.PycInvalidationMode` enum and controls how the " +"generated pycs are invalidated at runtime." +msgstr "" + +#: ../../library/compileall.rst:209 ../../library/compileall.rst:279 +msgid "" +"The *stripdir*, *prependdir* and *limit_sl_dest* arguments correspond to the " +"``-s``, ``-p`` and ``-e`` options described above. They may be specified as " +"``str`` or :py:class:`os.PathLike`." +msgstr "" + +#: ../../library/compileall.rst:213 ../../library/compileall.rst:283 +msgid "" +"If *hardlink_dupes* is true and two ``.pyc`` files with different " +"optimization level have the same content, use hard links to consolidate " +"duplicate files." +msgstr "" + +#: ../../library/compileall.rst:216 ../../library/compileall.rst:314 +msgid "Added the *legacy* and *optimize* parameter." +msgstr "" + +#: ../../library/compileall.rst:219 +msgid "Added the *workers* parameter." +msgstr "" + +#: ../../library/compileall.rst:222 ../../library/compileall.rst:288 +#: ../../library/compileall.rst:317 +msgid "*quiet* parameter was changed to a multilevel value." +msgstr "" + +#: ../../library/compileall.rst:225 ../../library/compileall.rst:291 +#: ../../library/compileall.rst:320 +msgid "" +"The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " +"matter what the value of *optimize* is." +msgstr "" + +#: ../../library/compileall.rst:229 +msgid "Accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/compileall.rst:232 ../../library/compileall.rst:295 +#: ../../library/compileall.rst:324 +msgid "The *invalidation_mode* parameter was added." +msgstr "" + +#: ../../library/compileall.rst:235 ../../library/compileall.rst:298 +#: ../../library/compileall.rst:327 +msgid "" +"The *invalidation_mode* parameter's default value is updated to ``None``." +msgstr "" + +#: ../../library/compileall.rst:238 +msgid "Setting *workers* to 0 now chooses the optimal number of cores." +msgstr "" + +#: ../../library/compileall.rst:241 +msgid "" +"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " +"arguments. Default value of *maxlevels* was changed from ``10`` to " +"``sys.getrecursionlimit()``" +msgstr "" + +#: ../../library/compileall.rst:247 +msgid "" +"Compile the file with path *fullname*. Return a true value if the file " +"compiled successfully, and a false value otherwise." +msgstr "" + +#: ../../library/compileall.rst:250 +msgid "" +"If *ddir* is given, it is prepended to the path to the file being compiled " +"for use in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" + +#: ../../library/compileall.rst:256 +msgid "" +"If *rx* is given, its ``search`` method is passed the full path name to the " +"file being compiled, and if it returns a true value, the file is not " +"compiled and ``True`` is returned. This can be used to exclude files " +"matching a regular expression, given as a :ref:`re.Pattern ` " +"object." +msgstr "" + +#: ../../library/compileall.rst:301 +msgid "" +"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " +"arguments." +msgstr "" + +#: ../../library/compileall.rst:306 +msgid "" +"Byte-compile all the :file:`.py` files found along ``sys.path``. Return a " +"true value if all the files compiled successfully, and a false value " +"otherwise." +msgstr "" + +#: ../../library/compileall.rst:309 +msgid "" +"If *skip_curdir* is true (the default), the current directory is not " +"included in the search. All other parameters are passed to " +"the :func:`compile_dir` function. Note that unlike the other compile " +"functions, ``maxlevels`` defaults to ``0``." +msgstr "" + +#: ../../library/compileall.rst:330 +msgid "" +"To force a recompile of all the :file:`.py` files in the :file:`Lib/` " +"subdirectory and all its subdirectories::" +msgstr "" + +#: ../../library/compileall.rst:333 +msgid "" +"import compileall\n" +"\n" +"compileall.compile_dir('Lib/', force=True)\n" +"\n" +"# Perform same compilation, excluding files in .svn directories.\n" +"import re\n" +"compileall.compile_dir('Lib/', rx=re.compile(r'[/\\\\][.]svn'), force=True)\n" +"\n" +"# pathlib.Path objects can also be used.\n" +"import pathlib\n" +"compileall.compile_dir(pathlib.Path('Lib/'), force=True)" +msgstr "" + +#: ../../library/compileall.rst:347 +msgid "Module :mod:`py_compile`" +msgstr "" + +#: ../../library/compileall.rst:348 +msgid "Byte-compile a single source file." +msgstr "" diff --git a/library/compression.po b/library/compression.po new file mode 100644 index 0000000..b13d170 --- /dev/null +++ b/library/compression.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/compression.rst:2 +msgid "The :mod:`!compression` package" +msgstr "" + +#: ../../library/compression.rst:6 +msgid "" +"The :mod:`!compression` package contains the canonical compression modules " +"containing interfaces to several different compression algorithms. Some of " +"these modules have historically been available as separate modules; those " +"will continue to be available under their original names for compatibility " +"reasons, and will not be removed without a deprecation cycle. The use of " +"modules in :mod:`!compression` is encouraged where practical." +msgstr "" + +#: ../../library/compression.rst:13 +msgid ":mod:`!compression.bz2` -- Re-exports :mod:`bz2`" +msgstr "" + +#: ../../library/compression.rst:14 +msgid ":mod:`!compression.gzip` -- Re-exports :mod:`gzip`" +msgstr "" + +#: ../../library/compression.rst:15 +msgid ":mod:`!compression.lzma` -- Re-exports :mod:`lzma`" +msgstr "" + +#: ../../library/compression.rst:16 +msgid ":mod:`!compression.zlib` -- Re-exports :mod:`zlib`" +msgstr "" + +#: ../../library/compression.rst:17 +msgid "" +":mod:`compression.zstd` -- Wrapper for the Zstandard compression library" +msgstr "" diff --git a/library/compression.zstd.po b/library/compression.zstd.po new file mode 100644 index 0000000..318dff7 --- /dev/null +++ b/library/compression.zstd.po @@ -0,0 +1,1160 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/compression.zstd.rst:2 +msgid "" +":mod:`!compression.zstd` --- Compression compatible with the Zstandard format" +msgstr "" + +#: ../../library/compression.zstd.rst:10 +msgid "**Source code:** :source:`Lib/compression/zstd/__init__.py`" +msgstr "" + +#: ../../library/compression.zstd.rst:14 +msgid "" +"This module provides classes and functions for compressing and decompressing " +"data using the Zstandard (or *zstd*) compression algorithm. The `zstd manual " +"`__ describes " +"Zstandard as \"a fast lossless compression algorithm, targeting real-time " +"compression scenarios at zlib-level and better compression ratios.\" Also " +"included is a file interface that supports reading and writing the contents " +"of ``.zst`` files created by the :program:`zstd` utility, as well as raw " +"zstd compressed streams." +msgstr "" + +#: ../../library/compression.zstd.rst:23 +msgid "The :mod:`!compression.zstd` module contains:" +msgstr "" + +#: ../../library/compression.zstd.rst:25 +msgid "" +"The :func:`.open` function and :class:`ZstdFile` class for reading and " +"writing compressed files." +msgstr "" + +#: ../../library/compression.zstd.rst:27 +msgid "" +"The :class:`ZstdCompressor` and :class:`ZstdDecompressor` classes for " +"incremental (de)compression." +msgstr "" + +#: ../../library/compression.zstd.rst:29 +msgid "" +"The :func:`compress` and :func:`decompress` functions for one-shot " +"(de)compression." +msgstr "" + +#: ../../library/compression.zstd.rst:31 +msgid "" +"The :func:`train_dict` and :func:`finalize_dict` functions and " +"the :class:`ZstdDict` class to train and manage Zstandard dictionaries." +msgstr "" + +#: ../../library/compression.zstd.rst:33 +msgid "" +"The :class:`CompressionParameter`, :class:`DecompressionParameter`, " +"and :class:`Strategy` classes for setting advanced (de)compression " +"parameters." +msgstr "" + +#: ../../library/compression.zstd.rst:38 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/compression.zstd.rst:42 +msgid "" +"This exception is raised when an error occurs during compression or " +"decompression, or while initializing the (de)compressor state." +msgstr "" + +#: ../../library/compression.zstd.rst:47 +msgid "Reading and writing compressed files" +msgstr "" + +#: ../../library/compression.zstd.rst:52 +msgid "" +"Open a Zstandard-compressed file in binary or text mode, returning " +"a :term:`file object`." +msgstr "" + +#: ../../library/compression.zstd.rst:55 +msgid "" +"The *file* argument can be either a file name (given as " +"a :class:`str`, :class:`bytes` or :term:`path-like ` " +"object), in which case the named file is opened, or it can be an existing " +"file object to read from or write to." +msgstr "" + +#: ../../library/compression.zstd.rst:60 +msgid "" +"The mode argument can be either ``'rb'`` for reading (default), ``'wb'`` for " +"overwriting, ``'ab'`` for appending, or ``'xb'`` for exclusive creation. " +"These can equivalently be given as ``'r'``, ``'w'``, ``'a'``, and ``'x'`` " +"respectively. You may also open in text mode with ``'rt'``, ``'wt'``, " +"``'at'``, and ``'xt'`` respectively." +msgstr "" + +#: ../../library/compression.zstd.rst:66 ../../library/compression.zstd.rst:110 +msgid "" +"When reading, the *options* argument can be a dictionary providing advanced " +"decompression parameters; see :class:`DecompressionParameter` for detailed " +"information about supported parameters. The *zstd_dict* argument is " +"a :class:`ZstdDict` instance to be used during decompression. When reading, " +"if the *level* argument is not None, a :exc:`!TypeError` will be raised." +msgstr "" + +#: ../../library/compression.zstd.rst:73 +msgid "" +"When writing, the *options* argument can be a dictionary providing advanced " +"decompression parameters; see :class:`CompressionParameter` for detailed " +"information about supported parameters. The *level* argument is the " +"compression level to use when writing compressed data. Only one of *level* " +"or *options* may be non-None. The *zstd_dict* argument is " +"a :class:`ZstdDict` instance to be used during compression." +msgstr "" + +#: ../../library/compression.zstd.rst:81 +msgid "" +"In binary mode, this function is equivalent to the :class:`ZstdFile` " +"constructor: ``ZstdFile(file, mode, ...)``. In this case, the *encoding*, " +"*errors*, and *newline* parameters must not be provided." +msgstr "" + +#: ../../library/compression.zstd.rst:85 +msgid "" +"In text mode, a :class:`ZstdFile` object is created, and wrapped in " +"an :class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line endings." +msgstr "" + +#: ../../library/compression.zstd.rst:93 +msgid "Open a Zstandard-compressed file in binary mode." +msgstr "" + +#: ../../library/compression.zstd.rst:95 +msgid "" +"A :class:`ZstdFile` can wrap an already-open :term:`file object`, or operate " +"directly on a named file. The *file* argument specifies either the file " +"object to wrap, or the name of the file to open (as " +"a :class:`str`, :class:`bytes` or :term:`path-like ` " +"object). If wrapping an existing file object, the wrapped file will not be " +"closed when the :class:`ZstdFile` is closed." +msgstr "" + +#: ../../library/compression.zstd.rst:102 +msgid "" +"The *mode* argument can be either ``'rb'`` for reading (default), ``'wb'`` " +"for overwriting, ``'xb'`` for exclusive creation, or ``'ab'`` for appending. " +"These can equivalently be given as ``'r'``, ``'w'``, ``'x'`` and ``'a'`` " +"respectively." +msgstr "" + +#: ../../library/compression.zstd.rst:107 +msgid "" +"If *file* is a file object (rather than an actual file name), a mode of " +"``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." +msgstr "" + +#: ../../library/compression.zstd.rst:117 +msgid "" +"When writing, the *options* argument can be a dictionary providing advanced " +"decompression parameters; see :class:`CompressionParameter` for detailed " +"information about supported parameters. The *level* argument is the " +"compression level to use when writing compressed data. Only one of *level* " +"or *options* may be passed. The *zstd_dict* argument is a :class:`ZstdDict` " +"instance to be used during compression." +msgstr "" + +#: ../../library/compression.zstd.rst:125 +msgid "" +":class:`!ZstdFile` supports all the members specified " +"by :class:`io.BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` " +"and :meth:`~io.IOBase.truncate`. Iteration and the :keyword:`with` statement " +"are supported." +msgstr "" + +#: ../../library/compression.zstd.rst:130 +msgid "The following method and attributes are also provided:" +msgstr "" + +#: ../../library/compression.zstd.rst:134 +msgid "" +"Return buffered data without advancing the file position. At least one byte " +"of data will be returned, unless EOF has been reached. The exact number of " +"bytes returned is unspecified (the *size* argument is ignored)." +msgstr "" + +#: ../../library/compression.zstd.rst:138 +msgid "" +"While calling :meth:`peek` does not change the file position of " +"the :class:`ZstdFile`, it may change the position of the underlying file " +"object (for example, if the :class:`ZstdFile` was constructed by passing a " +"file object for *file*)." +msgstr "" + +#: ../../library/compression.zstd.rst:145 +msgid "``'rb'`` for reading and ``'wb'`` for writing." +msgstr "" + +#: ../../library/compression.zstd.rst:149 +msgid "" +"The name of the Zstandard file. Equivalent to the :attr:`~io.FileIO.name` " +"attribute of the underlying :term:`file object`." +msgstr "" + +#: ../../library/compression.zstd.rst:154 +msgid "Compressing and decompressing data in memory" +msgstr "" + +#: ../../library/compression.zstd.rst:158 +msgid "" +"Compress *data* (a :term:`bytes-like object`), returning the compressed data " +"as a :class:`bytes` object." +msgstr "" + +#: ../../library/compression.zstd.rst:161 +#: ../../library/compression.zstd.rst:205 +msgid "" +"The *level* argument is an integer controlling the level of compression. " +"*level* is an alternative to " +"setting :attr:`CompressionParameter.compression_level` in *options*. " +"Use :meth:`~CompressionParameter.bounds` " +"on :attr:`~CompressionParameter.compression_level` to get the values that " +"can be passed for *level*. If advanced compression options are needed, the " +"*level* argument must be omitted and in the *options* dictionary the :attr:`!" +"CompressionParameter.compression_level` parameter should be set." +msgstr "" + +#: ../../library/compression.zstd.rst:170 +#: ../../library/compression.zstd.rst:214 +msgid "" +"The *options* argument is a Python dictionary containing advanced " +"compression parameters. The valid keys and values for compression parameters " +"are documented as part of the :class:`CompressionParameter` documentation." +msgstr "" + +#: ../../library/compression.zstd.rst:174 +msgid "" +"The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " +"trained data to improve compression efficiency. The " +"function :func:`train_dict` can be used to generate a Zstandard dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:181 +msgid "" +"Decompress *data* (a :term:`bytes-like object`), returning the uncompressed " +"data as a :class:`bytes` object." +msgstr "" + +#: ../../library/compression.zstd.rst:184 +#: ../../library/compression.zstd.rst:306 +msgid "" +"The *options* argument is a Python dictionary containing advanced " +"decompression parameters. The valid keys and values for compression " +"parameters are documented as part of the :class:`DecompressionParameter` " +"documentation." +msgstr "" + +#: ../../library/compression.zstd.rst:189 +#: ../../library/compression.zstd.rst:311 +msgid "" +"The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " +"trained data used during compression. This must be the same Zstandard " +"dictionary used during compression." +msgstr "" + +#: ../../library/compression.zstd.rst:193 +msgid "" +"If *data* is the concatenation of multiple distinct compressed frames, " +"decompress all of these frames, and return the concatenation of the results." +msgstr "" + +#: ../../library/compression.zstd.rst:199 +msgid "" +"Create a compressor object, which can be used to compress data incrementally." +msgstr "" + +#: ../../library/compression.zstd.rst:202 +msgid "" +"For a more convenient way of compressing a single chunk of data, see the " +"module-level function :func:`compress`." +msgstr "" + +#: ../../library/compression.zstd.rst:218 +msgid "" +"The *zstd_dict* argument is an optional instance of :class:`ZstdDict` " +"containing trained data to improve compression efficiency. The " +"function :func:`train_dict` can be used to generate a Zstandard dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:225 +msgid "" +"Compress *data* (a :term:`bytes-like object`), returning a :class:`bytes` " +"object with compressed data if possible, or otherwise an empty :class:`!" +"bytes` object. Some of *data* may be buffered internally, for use in later " +"calls to :meth:`!compress` and :meth:`~.flush`. The returned data should be " +"concatenated with the output of any previous calls to :meth:`~.compress`." +msgstr "" + +#: ../../library/compression.zstd.rst:232 +msgid "" +"The *mode* argument is a :class:`ZstdCompressor` attribute, " +"either :attr:`~.CONTINUE`, :attr:`~.FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." +msgstr "" + +#: ../../library/compression.zstd.rst:236 +msgid "" +"When all data has been provided to the compressor, call the :meth:`~.flush` " +"method to finish the compression process. If :meth:`~.compress` is called " +"with *mode* set to :attr:`~.FLUSH_FRAME`, :meth:`~.flush` should not be " +"called, as it would write out a new empty frame." +msgstr "" + +#: ../../library/compression.zstd.rst:244 +msgid "" +"Finish the compression process, returning a :class:`bytes` object containing " +"any data stored in the compressor's internal buffers." +msgstr "" + +#: ../../library/compression.zstd.rst:247 +msgid "" +"The *mode* argument is a :class:`ZstdCompressor` attribute, " +"either :attr:`~.FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." +msgstr "" + +#: ../../library/compression.zstd.rst:252 +msgid "" +"Specify the amount of uncompressed data *size* that will be provided for the " +"next frame. *size* will be written into the frame header of the next frame " +"unless :attr:`CompressionParameter.content_size_flag` is ``False`` or ``0``. " +"A size of ``0`` means that the frame is empty. If *size* is ``None``, the " +"frame header will omit the frame size. Frames that include the uncompressed " +"data size require less memory to decompress, especially at higher " +"compression levels." +msgstr "" + +#: ../../library/compression.zstd.rst:260 +msgid "" +"If :attr:`last_mode` is not :attr:`FLUSH_FRAME`, a :exc:`ValueError` is " +"raised as the compressor is not at the start of a frame. If the pledged size " +"does not match the actual size of data provided to :meth:`.compress`, future " +"calls to :meth:`!compress` or :meth:`flush` may raise :exc:`ZstdError` and " +"the last chunk of data may be lost." +msgstr "" + +#: ../../library/compression.zstd.rst:267 +msgid "" +"After :meth:`flush` or :meth:`.compress` are called with " +"mode :attr:`FLUSH_FRAME`, the next frame will not include the frame size " +"into the header unless :meth:`!set_pledged_input_size` is called again." +msgstr "" + +#: ../../library/compression.zstd.rst:273 +msgid "" +"Collect more data for compression, which may or may not generate output " +"immediately. This mode optimizes the compression ratio by maximizing the " +"amount of data per block and frame." +msgstr "" + +#: ../../library/compression.zstd.rst:279 +msgid "" +"Complete and write a block to the data stream. The data returned so far can " +"be immediately decompressed. Past data can still be referenced in future " +"blocks generated by calls to :meth:`~.compress`, improving compression." +msgstr "" + +#: ../../library/compression.zstd.rst:286 +msgid "" +"Complete and write out a frame. Future data provided to :meth:`~.compress` " +"will be written into a new frame and *cannot* reference past data." +msgstr "" + +#: ../../library/compression.zstd.rst:292 +msgid "" +"The last mode passed to either :meth:`~.compress` or :meth:`~.flush`. The " +"value can be one of :attr:`~.CONTINUE`, :attr:`~.FLUSH_BLOCK`, " +"or :attr:`~.FLUSH_FRAME`. The initial value is :attr:`~.FLUSH_FRAME`, " +"signifying that the compressor is at the start of a new frame." +msgstr "" + +#: ../../library/compression.zstd.rst:300 +msgid "" +"Create a decompressor object, which can be used to decompress data " +"incrementally." +msgstr "" + +#: ../../library/compression.zstd.rst:303 +msgid "" +"For a more convenient way of decompressing an entire compressed stream at " +"once, see the module-level function :func:`decompress`." +msgstr "" + +#: ../../library/compression.zstd.rst:316 +msgid "" +"This class does not transparently handle inputs containing multiple " +"compressed frames, unlike the :func:`decompress` function " +"and :class:`ZstdFile` class. To decompress a multi-frame input, you should " +"use :func:`decompress`, :class:`ZstdFile` if working with a :term:`file " +"object`, or multiple :class:`!ZstdDecompressor` instances." +msgstr "" + +#: ../../library/compression.zstd.rst:324 +msgid "" +"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " +"as bytes. Some of *data* may be buffered internally, for use in later calls " +"to :meth:`!decompress`. The returned data should be concatenated with the " +"output of any previous calls to :meth:`!decompress`." +msgstr "" + +#: ../../library/compression.zstd.rst:330 +msgid "" +"If *max_length* is non-negative, the method returns at most *max_length* " +"bytes of decompressed data. If this limit is reached and further output can " +"be produced, the :attr:`~.needs_input` attribute will be set to ``False``. " +"In this case, the next call to :meth:`~.decompress` may provide *data* as " +"``b''`` to obtain more of the output." +msgstr "" + +#: ../../library/compression.zstd.rst:337 +msgid "" +"If all of the input data was decompressed and returned (either because this " +"was less than *max_length* bytes, or because *max_length* was negative), " +"the :attr:`~.needs_input` attribute will be set to ``True``." +msgstr "" + +#: ../../library/compression.zstd.rst:342 +msgid "" +"Attempting to decompress data after the end of a frame will raise " +"a :exc:`ZstdError`. Any data found after the end of the frame is ignored and " +"saved in the :attr:`~.unused_data` attribute." +msgstr "" + +#: ../../library/compression.zstd.rst:348 +msgid "``True`` if the end-of-stream marker has been reached." +msgstr "" + +#: ../../library/compression.zstd.rst:352 +msgid "Data found after the end of the compressed stream." +msgstr "" + +#: ../../library/compression.zstd.rst:354 +msgid "Before the end of the stream is reached, this will be ``b''``." +msgstr "" + +#: ../../library/compression.zstd.rst:358 +msgid "" +"``False`` if the :meth:`.decompress` method can provide more decompressed " +"data before requiring new compressed input." +msgstr "" + +#: ../../library/compression.zstd.rst:363 +msgid "Zstandard dictionaries" +msgstr "" + +#: ../../library/compression.zstd.rst:368 +msgid "" +"Train a Zstandard dictionary, returning a :class:`ZstdDict` instance. " +"Zstandard dictionaries enable more efficient compression of smaller sizes of " +"data, which is traditionally difficult to compress due to less repetition. " +"If you are compressing multiple similar groups of data (such as similar " +"files), Zstandard dictionaries can improve compression ratios and speed " +"significantly." +msgstr "" + +#: ../../library/compression.zstd.rst:375 +msgid "" +"The *samples* argument (an iterable of :class:`bytes` objects), is the " +"population of samples used to train the Zstandard dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:378 +msgid "" +"The *dict_size* argument, an integer, is the maximum size (in bytes) the " +"Zstandard dictionary should be. The Zstandard documentation suggests an " +"absolute maximum of no more than 100 KB, but the maximum can often be " +"smaller depending on the data. Larger dictionaries generally slow down " +"compression, but improve compression ratios. Smaller dictionaries lead to " +"faster compression, but reduce the compression ratio." +msgstr "" + +#: ../../library/compression.zstd.rst:388 +msgid "" +"An advanced function for converting a \"raw content\" Zstandard dictionary " +"into a regular Zstandard dictionary. \"Raw content\" dictionaries are a " +"sequence of bytes that do not need to follow the structure of a normal " +"Zstandard dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:393 +msgid "" +"The *zstd_dict* argument is a :class:`ZstdDict` instance with " +"the :attr:`~ZstdDict.dict_content` containing the raw dictionary contents." +msgstr "" + +#: ../../library/compression.zstd.rst:396 +msgid "" +"The *samples* argument (an iterable of :class:`bytes` objects), contains " +"sample data for generating the Zstandard dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:399 +msgid "" +"The *dict_size* argument, an integer, is the maximum size (in bytes) the " +"Zstandard dictionary should be. See :func:`train_dict` for suggestions on " +"the maximum dictionary size." +msgstr "" + +#: ../../library/compression.zstd.rst:403 +msgid "" +"The *level* argument (an integer) is the compression level expected to be " +"passed to the compressors using this dictionary. The dictionary information " +"varies for each compression level, so tuning for the proper compression " +"level can make compression more efficient." +msgstr "" + +#: ../../library/compression.zstd.rst:411 +msgid "" +"A wrapper around Zstandard dictionaries. Dictionaries can be used to improve " +"the compression of many small chunks of data. Use :func:`train_dict` if you " +"need to train a new dictionary from sample data." +msgstr "" + +#: ../../library/compression.zstd.rst:415 +msgid "" +"The *dict_content* argument (a :term:`bytes-like object`), is the already " +"trained dictionary information." +msgstr "" + +#: ../../library/compression.zstd.rst:418 +msgid "" +"The *is_raw* argument, a boolean, is an advanced parameter controlling the " +"meaning of *dict_content*. ``True`` means *dict_content* is a \"raw " +"content\" dictionary, without any format restrictions. ``False`` means " +"*dict_content* is an ordinary Zstandard dictionary, created from Zstandard " +"functions, for example, :func:`train_dict` or the external :program:`zstd` " +"CLI." +msgstr "" + +#: ../../library/compression.zstd.rst:424 +msgid "" +"When passing a :class:`!ZstdDict` to a function, the :attr:`!" +"as_digested_dict` and :attr:`!as_undigested_dict` attributes can control how " +"the dictionary is loaded by passing them as the ``zstd_dict`` argument, for " +"example, ``compress(data, zstd_dict=zd.as_digested_dict)``. Digesting a " +"dictionary is a costly operation that occurs when loading a Zstandard " +"dictionary. When making multiple calls to compression or decompression, " +"passing a digested dictionary will reduce the overhead of loading the " +"dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:433 +msgid "Difference for compression" +msgstr "" + +#: ../../library/compression.zstd.rst:438 +msgid "Digested dictionary" +msgstr "" + +#: ../../library/compression.zstd.rst:439 +msgid "Undigested dictionary" +msgstr "" + +#: ../../library/compression.zstd.rst:440 +msgid "" +"Advanced parameters of the compressor which may be overridden by the " +"dictionary's parameters" +msgstr "" + +#: ../../library/compression.zstd.rst:442 +msgid "" +"``window_log``, ``hash_log``, ``chain_log``, ``search_log``, ``min_match``, " +"``target_length``, ``strategy``, ``enable_long_distance_matching``, " +"``ldm_hash_log``, ``ldm_min_match``, ``ldm_bucket_size_log``, " +"``ldm_hash_rate_log``, and some non-public parameters." +msgstr "" + +#: ../../library/compression.zstd.rst:447 +msgid "None" +msgstr "" + +#: ../../library/compression.zstd.rst:448 +msgid ":class:`!ZstdDict` internally caches the dictionary" +msgstr "" + +#: ../../library/compression.zstd.rst:449 +msgid "" +"Yes. It's faster when loading a digested dictionary again with the same " +"compression level." +msgstr "" + +#: ../../library/compression.zstd.rst:451 +msgid "" +"No. If you wish to load an undigested dictionary multiple times, consider " +"reusing a compressor object." +msgstr "" + +#: ../../library/compression.zstd.rst:454 +msgid "" +"If passing a :class:`!ZstdDict` without any attribute, an undigested " +"dictionary is passed by default when compressing and a digested dictionary " +"is generated if necessary and passed by default when decompressing." +msgstr "" + +#: ../../library/compression.zstd.rst:460 +msgid "" +"The content of the Zstandard dictionary, a ``bytes`` object. It's the same " +"as the *dict_content* argument in the ``__init__`` method. It can be used " +"with other programs, such as the ``zstd`` CLI program." +msgstr "" + +#: ../../library/compression.zstd.rst:466 +msgid "Identifier of the Zstandard dictionary, a non-negative int value." +msgstr "" + +#: ../../library/compression.zstd.rst:468 +msgid "" +"Non-zero means the dictionary is ordinary, created by Zstandard functions " +"and following the Zstandard format." +msgstr "" + +#: ../../library/compression.zstd.rst:471 +msgid "" +"``0`` means a \"raw content\" dictionary, free of any format restriction, " +"used for advanced users." +msgstr "" + +#: ../../library/compression.zstd.rst:476 +msgid "" +"The meaning of ``0`` for :attr:`!ZstdDict.dict_id` is different from the " +"``dictionary_id`` attribute to the :func:`get_frame_info` function." +msgstr "" + +#: ../../library/compression.zstd.rst:482 +msgid "Load as a digested dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:486 +msgid "Load as an undigested dictionary." +msgstr "" + +#: ../../library/compression.zstd.rst:490 +msgid "Advanced parameter control" +msgstr "" + +#: ../../library/compression.zstd.rst:494 +msgid "" +"An :class:`~enum.IntEnum` containing the advanced compression parameter keys " +"that can be used when compressing data." +msgstr "" + +#: ../../library/compression.zstd.rst:497 +#: ../../library/compression.zstd.rst:731 +msgid "" +"The :meth:`~.bounds` method can be used on any attribute to get the valid " +"values for that parameter." +msgstr "" + +#: ../../library/compression.zstd.rst:500 +msgid "" +"Parameters are optional; any omitted parameter will have it's value selected " +"automatically." +msgstr "" + +#: ../../library/compression.zstd.rst:503 +msgid "" +"Example getting the lower and upper bound of :attr:`~.compression_level`::" +msgstr "" + +#: ../../library/compression.zstd.rst:505 +msgid "lower, upper = CompressionParameter.compression_level.bounds()" +msgstr "" + +#: ../../library/compression.zstd.rst:507 +msgid "Example setting the :attr:`~.window_log` to the maximum size::" +msgstr "" + +#: ../../library/compression.zstd.rst:509 +msgid "" +"_lower, upper = CompressionParameter.window_log.bounds()\n" +"options = {CompressionParameter.window_log: upper}\n" +"compress(b'venezuelan beaver cheese', options=options)" +msgstr "" + +#: ../../library/compression.zstd.rst:515 +msgid "" +"Return the tuple of int bounds, ``(lower, upper)``, of a compression " +"parameter. This method should be called on the attribute you wish to " +"retrieve the bounds of. For example, to get the valid values " +"for :attr:`~.compression_level`, one may check the result of " +"``CompressionParameter.compression_level.bounds()``." +msgstr "" + +#: ../../library/compression.zstd.rst:521 +#: ../../library/compression.zstd.rst:749 +msgid "Both the lower and upper bounds are inclusive." +msgstr "" + +#: ../../library/compression.zstd.rst:525 +msgid "" +"A high-level means of setting other compression parameters that affect the " +"speed and ratio of compressing data." +msgstr "" + +#: ../../library/compression.zstd.rst:528 +msgid "" +"Regular compression levels are greater than ``0``. Values greater than " +"``20`` are considered \"ultra\" compression and require more memory than " +"other levels. Negative values can be used to trade off faster compression " +"for worse compression ratios." +msgstr "" + +#: ../../library/compression.zstd.rst:533 +msgid "Setting the level to zero uses :attr:`COMPRESSION_LEVEL_DEFAULT`." +msgstr "" + +#: ../../library/compression.zstd.rst:537 +msgid "" +"Maximum allowed back-reference distance the compressor can use when " +"compressing data, expressed as power of two, ``1 << window_log`` bytes. This " +"parameter greatly influences the memory usage of compression. Higher values " +"require more memory but gain better compression values." +msgstr "" + +#: ../../library/compression.zstd.rst:542 +#: ../../library/compression.zstd.rst:551 +#: ../../library/compression.zstd.rst:562 +#: ../../library/compression.zstd.rst:570 +#: ../../library/compression.zstd.rst:581 +#: ../../library/compression.zstd.rst:596 +#: ../../library/compression.zstd.rst:627 +#: ../../library/compression.zstd.rst:634 +#: ../../library/compression.zstd.rst:642 +#: ../../library/compression.zstd.rst:650 +#: ../../library/compression.zstd.rst:709 +#: ../../library/compression.zstd.rst:758 +msgid "A value of zero causes the value to be selected automatically." +msgstr "" + +#: ../../library/compression.zstd.rst:546 +msgid "" +"Size of the initial probe table, as a power of two. The resulting memory " +"usage is ``1 << (hash_log+2)`` bytes. Larger tables improve compression " +"ratio of strategies <= :attr:`~Strategy.dfast`, and improve compression " +"speed of strategies > :attr:`~Strategy.dfast`." +msgstr "" + +#: ../../library/compression.zstd.rst:555 +msgid "" +"Size of the multi-probe search table, as a power of two. The resulting " +"memory usage is ``1 << (chain_log+2)`` bytes. Larger tables result in better " +"and slower compression. This parameter has no effect for " +"the :attr:`~Strategy.fast` strategy. It's still useful when " +"using :attr:`~Strategy.dfast` strategy, in which case it defines a secondary " +"probe table." +msgstr "" + +#: ../../library/compression.zstd.rst:566 +msgid "" +"Number of search attempts, as a power of two. More attempts result in better " +"and slower compression. This parameter is useless for :attr:`~Strategy.fast` " +"and :attr:`~Strategy.dfast` strategies." +msgstr "" + +#: ../../library/compression.zstd.rst:574 +msgid "" +"Minimum size of searched matches. Larger values increase compression and " +"decompression speed, but decrease ratio. Note that Zstandard can still find " +"matches of smaller size, it just tweaks its search algorithm to look for " +"this size and larger. For all strategies < :attr:`~Strategy.btopt`, the " +"effective minimum is ``4``; for all strategies > :attr:`~Strategy.fast`, the " +"effective maximum is ``6``." +msgstr "" + +#: ../../library/compression.zstd.rst:585 +msgid "The impact of this field depends on the selected :class:`Strategy`." +msgstr "" + +#: ../../library/compression.zstd.rst:587 +msgid "" +"For strategies :attr:`~Strategy.btopt`, :attr:`~Strategy.btultra` " +"and :attr:`~Strategy.btultra2`, the value is the length of a match " +"considered \"good enough\" to stop searching. Larger values make compression " +"ratios better, but compresses slower." +msgstr "" + +#: ../../library/compression.zstd.rst:592 +msgid "" +"For strategy :attr:`~Strategy.fast`, it is the distance between match " +"sampling. Larger values make compression faster, but with a worse " +"compression ratio." +msgstr "" + +#: ../../library/compression.zstd.rst:600 +msgid "" +"The higher the value of selected strategy, the more complex the compression " +"technique used by zstd, resulting in higher compression ratios but slower " +"compression." +msgstr "" + +#: ../../library/compression.zstd.rst:604 +msgid ":class:`Strategy`" +msgstr "" + +#: ../../library/compression.zstd.rst:608 +msgid "" +"Long distance matching can be used to improve compression for large inputs " +"by finding large matches at greater distances. It increases memory usage and " +"window size." +msgstr "" + +#: ../../library/compression.zstd.rst:612 +msgid "" +"``True`` or ``1`` enable long distance matching while ``False`` or ``0`` " +"disable it." +msgstr "" + +#: ../../library/compression.zstd.rst:615 +msgid "" +"Enabling this parameter increases " +"default :attr:`~CompressionParameter.window_log` to 128 MiB except when " +"expressly set to a different value. This setting is enabled by default " +"if :attr:`!window_log` >= 128 MiB and the compression strategy " +">= :attr:`~Strategy.btopt` (compression level 16+)." +msgstr "" + +#: ../../library/compression.zstd.rst:623 +msgid "" +"Size of the table for long distance matching, as a power of two. Larger " +"values increase memory usage and compression ratio, but decrease compression " +"speed." +msgstr "" + +#: ../../library/compression.zstd.rst:631 +msgid "" +"Minimum match size for long distance matcher. Larger or too small values can " +"often decrease the compression ratio." +msgstr "" + +#: ../../library/compression.zstd.rst:638 +msgid "" +"Log size of each bucket in the long distance matcher hash table for " +"collision resolution. Larger values improve collision resolution but " +"decrease compression speed." +msgstr "" + +#: ../../library/compression.zstd.rst:646 +msgid "" +"Frequency of inserting/looking up entries into the long distance matcher " +"hash table. Larger values improve compression speed. Deviating far from the " +"default value will likely result in a compression ratio decrease." +msgstr "" + +#: ../../library/compression.zstd.rst:654 +msgid "" +"Write the size of the data to be compressed into the Zstandard frame header " +"when known prior to compressing." +msgstr "" + +#: ../../library/compression.zstd.rst:657 +msgid "This flag only takes effect under the following scenarios:" +msgstr "" + +#: ../../library/compression.zstd.rst:659 +msgid "Calling :func:`compress` for one-shot compression" +msgstr "" + +#: ../../library/compression.zstd.rst:660 +msgid "" +"Providing all of the data to be compressed in the frame in a " +"single :meth:`ZstdCompressor.compress` call, with " +"the :attr:`ZstdCompressor.FLUSH_FRAME` mode." +msgstr "" + +#: ../../library/compression.zstd.rst:663 +msgid "" +"Calling :meth:`ZstdCompressor.set_pledged_input_size` with the exact amount " +"of data that will be provided to the compressor prior to any calls " +"to :meth:`ZstdCompressor.compress` for the current frame. :meth:`!" +"ZstdCompressor.set_pledged_input_size` must be called for each new frame." +msgstr "" + +#: ../../library/compression.zstd.rst:669 +msgid "" +"All other compression calls may not write the size information into the " +"frame header." +msgstr "" + +#: ../../library/compression.zstd.rst:672 +msgid "" +"``True`` or ``1`` enable the content size flag while ``False`` or ``0`` " +"disable it." +msgstr "" + +#: ../../library/compression.zstd.rst:677 +msgid "" +"A four-byte checksum using XXHash64 of the uncompressed content is written " +"at the end of each frame. Zstandard's decompression code verifies the " +"checksum. If there is a mismatch a :class:`ZstdError` exception is raised." +msgstr "" + +#: ../../library/compression.zstd.rst:682 +msgid "" +"``True`` or ``1`` enable checksum generation while ``False`` or ``0`` " +"disable it." +msgstr "" + +#: ../../library/compression.zstd.rst:687 +msgid "" +"When compressing with a :class:`ZstdDict`, the dictionary's ID is written " +"into the frame header." +msgstr "" + +#: ../../library/compression.zstd.rst:690 +msgid "" +"``True`` or ``1`` enable storing the dictionary ID while ``False`` or ``0`` " +"disable it." +msgstr "" + +#: ../../library/compression.zstd.rst:695 +msgid "" +"Select how many threads will be spawned to compress in parallel. " +"When :attr:`!nb_workers` > 0, enables multi-threaded compression, a value of " +"``1`` means \"one-thread multi-threaded mode\". More workers improve speed, " +"but also increase memory usage and slightly reduce compression ratio." +msgstr "" + +#: ../../library/compression.zstd.rst:700 +msgid "A value of zero disables multi-threading." +msgstr "" + +#: ../../library/compression.zstd.rst:704 +msgid "" +"Size of a compression job, in bytes. This value is enforced only " +"when :attr:`~CompressionParameter.nb_workers` >= 1. Each compression job is " +"completed in parallel, so this value can indirectly impact the number of " +"active threads." +msgstr "" + +#: ../../library/compression.zstd.rst:713 +msgid "" +"Sets how much data is reloaded from previous jobs (threads) for new jobs to " +"be used by the look behind window during compression. This value is only " +"used when :attr:`~CompressionParameter.nb_workers` >= 1. Acceptable values " +"vary from 0 to 9." +msgstr "" + +#: ../../library/compression.zstd.rst:718 +msgid "0 means dynamically set the overlap amount" +msgstr "" + +#: ../../library/compression.zstd.rst:719 +msgid "1 means no overlap" +msgstr "" + +#: ../../library/compression.zstd.rst:720 +msgid "9 means use a full window size from the previous job" +msgstr "" + +#: ../../library/compression.zstd.rst:722 +msgid "" +"Each increment halves/doubles the overlap size. \"8\" means an overlap of " +"``window_size/2``, \"7\" means an overlap of ``window_size/4``, etc." +msgstr "" + +#: ../../library/compression.zstd.rst:727 +msgid "" +"An :class:`~enum.IntEnum` containing the advanced decompression parameter " +"keys that can be used when decompressing data. Parameters are optional; any " +"omitted parameter will have it's value selected automatically." +msgstr "" + +#: ../../library/compression.zstd.rst:734 +msgid "Example setting the :attr:`~.window_log_max` to the maximum size::" +msgstr "" + +#: ../../library/compression.zstd.rst:736 +msgid "" +"data = compress(b'Some very long buffer of bytes...')\n" +"\n" +"_lower, upper = DecompressionParameter.window_log_max.bounds()\n" +"\n" +"options = {DecompressionParameter.window_log_max: upper}\n" +"decompress(data, options=options)" +msgstr "" + +#: ../../library/compression.zstd.rst:745 +msgid "" +"Return the tuple of int bounds, ``(lower, upper)``, of a decompression " +"parameter. This method should be called on the attribute you wish to " +"retrieve the bounds of." +msgstr "" + +#: ../../library/compression.zstd.rst:753 +msgid "" +"The base-two logarithm of the maximum size of the window used during " +"decompression. This can be useful to limit the amount of memory used when " +"decompressing data. A larger maximum window size leads to faster " +"decompression." +msgstr "" + +#: ../../library/compression.zstd.rst:763 +msgid "" +"An :class:`~enum.IntEnum` containing strategies for compression. Higher-" +"numbered strategies correspond to more complex and slower compression." +msgstr "" + +#: ../../library/compression.zstd.rst:769 +msgid "" +"The values of attributes of :class:`!Strategy` are not necessarily stable " +"across zstd versions. Only the ordering of the attributes may be relied " +"upon. The attributes are listed below in order." +msgstr "" + +#: ../../library/compression.zstd.rst:773 +msgid "The following strategies are available:" +msgstr "" + +#: ../../library/compression.zstd.rst:795 +msgid "Miscellaneous" +msgstr "" + +#: ../../library/compression.zstd.rst:799 +msgid "" +"Retrieve a :class:`FrameInfo` object containing metadata about a Zstandard " +"frame. Frames contain metadata related to the compressed data they hold." +msgstr "" + +#: ../../library/compression.zstd.rst:805 +msgid "Metadata related to a Zstandard frame." +msgstr "" + +#: ../../library/compression.zstd.rst:809 +msgid "The size of the decompressed contents of the frame." +msgstr "" + +#: ../../library/compression.zstd.rst:813 +msgid "" +"An integer representing the Zstandard dictionary ID needed for decompressing " +"the frame. ``0`` means the dictionary ID was not recorded in the frame " +"header. This may mean that a Zstandard dictionary is not needed, or that the " +"ID of a required dictionary was not recorded." +msgstr "" + +#: ../../library/compression.zstd.rst:821 +msgid "The default compression level for Zstandard: ``3``." +msgstr "" + +#: ../../library/compression.zstd.rst:826 +msgid "" +"Version number of the runtime zstd library as a tuple of integers (major, " +"minor, release)." +msgstr "" + +#: ../../library/compression.zstd.rst:831 +msgid "Examples" +msgstr "" + +#: ../../library/compression.zstd.rst:833 +msgid "Reading in a compressed file:" +msgstr "" + +#: ../../library/compression.zstd.rst:835 +msgid "" +"from compression import zstd\n" +"\n" +"with zstd.open(\"file.zst\") as f:\n" +" file_content = f.read()" +msgstr "" + +#: ../../library/compression.zstd.rst:842 +msgid "Creating a compressed file:" +msgstr "" + +#: ../../library/compression.zstd.rst:844 +msgid "" +"from compression import zstd\n" +"\n" +"data = b\"Insert Data Here\"\n" +"with zstd.open(\"file.zst\", \"w\") as f:\n" +" f.write(data)" +msgstr "" + +#: ../../library/compression.zstd.rst:852 +msgid "Compressing data in memory:" +msgstr "" + +#: ../../library/compression.zstd.rst:854 +msgid "" +"from compression import zstd\n" +"\n" +"data_in = b\"Insert Data Here\"\n" +"data_out = zstd.compress(data_in)" +msgstr "" + +#: ../../library/compression.zstd.rst:861 +msgid "Incremental compression:" +msgstr "" + +#: ../../library/compression.zstd.rst:863 +msgid "" +"from compression import zstd\n" +"\n" +"comp = zstd.ZstdCompressor()\n" +"out1 = comp.compress(b\"Some data\\n\")\n" +"out2 = comp.compress(b\"Another piece of data\\n\")\n" +"out3 = comp.compress(b\"Even more data\\n\")\n" +"out4 = comp.flush()\n" +"# Concatenate all the partial results:\n" +"result = b\"\".join([out1, out2, out3, out4])" +msgstr "" + +#: ../../library/compression.zstd.rst:875 +msgid "Writing compressed data to an already-open file:" +msgstr "" + +#: ../../library/compression.zstd.rst:877 +msgid "" +"from compression import zstd\n" +"\n" +"with open(\"myfile\", \"wb\") as f:\n" +" f.write(b\"This data will not be compressed\\n\")\n" +" with zstd.open(f, \"w\") as zstf:\n" +" zstf.write(b\"This *will* be compressed\\n\")\n" +" f.write(b\"Not compressed\\n\")" +msgstr "" + +#: ../../library/compression.zstd.rst:887 +msgid "Creating a compressed file using compression parameters:" +msgstr "" + +#: ../../library/compression.zstd.rst:889 +msgid "" +"from compression import zstd\n" +"\n" +"options = {\n" +" zstd.CompressionParameter.checksum_flag: 1\n" +"}\n" +"with zstd.open(\"file.zst\", \"w\", options=options) as f:\n" +" f.write(b\"Mind if I squeeze in?\")" +msgstr "" diff --git a/library/concurrency.po b/library/concurrency.po new file mode 100644 index 0000000..0b3200b --- /dev/null +++ b/library/concurrency.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/concurrency.rst:5 +msgid "Concurrent Execution" +msgstr "" + +#: ../../library/concurrency.rst:7 +msgid "" +"The modules described in this chapter provide support for concurrent " +"execution of code. The appropriate choice of tool will depend on the task to " +"be executed (CPU bound vs IO bound) and preferred style of development " +"(event driven cooperative multitasking vs preemptive multitasking). Here's " +"an overview:" +msgstr "" + +#: ../../library/concurrency.rst:28 +msgid "The following are support modules for some of the above services:" +msgstr "" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po new file mode 100644 index 0000000..c957eee --- /dev/null +++ b/library/concurrent.futures.po @@ -0,0 +1,925 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/concurrent.futures.rst:2 +msgid ":mod:`!concurrent.futures` --- Launching parallel tasks" +msgstr "" + +#: ../../library/concurrent.futures.rst:9 +msgid "" +"**Source code:** :source:`Lib/concurrent/futures/thread.py`, :source:`Lib/" +"concurrent/futures/process.py`, and :source:`Lib/concurrent/futures/" +"interpreter.py`" +msgstr "" + +#: ../../library/concurrent.futures.rst:15 +msgid "" +"The :mod:`concurrent.futures` module provides a high-level interface for " +"asynchronously executing callables." +msgstr "" + +#: ../../library/concurrent.futures.rst:18 +msgid "" +"The asynchronous execution can be performed with threads, " +"using :class:`ThreadPoolExecutor` or :class:`InterpreterPoolExecutor`, or " +"separate processes, using :class:`ProcessPoolExecutor`. Each implements the " +"same interface, which is defined by the abstract :class:`Executor` class." +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/concurrent.futures.rst:27 +msgid "Executor Objects" +msgstr "" + +#: ../../library/concurrent.futures.rst:31 +msgid "" +"An abstract class that provides methods to execute calls asynchronously. It " +"should not be used directly, but through its concrete subclasses." +msgstr "" + +#: ../../library/concurrent.futures.rst:36 +msgid "" +"Schedules the callable, *fn*, to be executed as ``fn(*args, **kwargs)`` and " +"returns a :class:`Future` object representing the execution of the " +"callable. ::" +msgstr "" + +#: ../../library/concurrent.futures.rst:40 +msgid "" +"with ThreadPoolExecutor(max_workers=1) as executor:\n" +" future = executor.submit(pow, 323, 1235)\n" +" print(future.result())" +msgstr "" + +#: ../../library/concurrent.futures.rst:46 +msgid "Similar to :func:`map(fn, *iterables) ` except:" +msgstr "" + +#: ../../library/concurrent.futures.rst:48 +msgid "" +"The *iterables* are collected immediately rather than lazily, unless a " +"*buffersize* is specified to limit the number of submitted tasks whose " +"results have not yet been yielded. If the buffer is full, iteration over the " +"*iterables* pauses until a result is yielded from the buffer." +msgstr "" + +#: ../../library/concurrent.futures.rst:53 +msgid "" +"*fn* is executed asynchronously and several calls to *fn* may be made " +"concurrently." +msgstr "" + +#: ../../library/concurrent.futures.rst:56 +msgid "" +"The returned iterator raises a :exc:`TimeoutError` " +"if :meth:`~iterator.__next__` is called and the result isn't available after " +"*timeout* seconds from the original call to :meth:`Executor.map`. *timeout* " +"can be an int or a float. If *timeout* is not specified or ``None``, there " +"is no limit to the wait time." +msgstr "" + +#: ../../library/concurrent.futures.rst:62 +msgid "" +"If a *fn* call raises an exception, then that exception will be raised when " +"its value is retrieved from the iterator." +msgstr "" + +#: ../../library/concurrent.futures.rst:65 +msgid "" +"When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " +"a number of chunks which it submits to the pool as separate tasks. The " +"(approximate) size of these chunks can be specified by setting *chunksize* " +"to a positive integer. For very long iterables, using a large value for " +"*chunksize* can significantly improve performance compared to the default " +"size of 1. With :class:`ThreadPoolExecutor` " +"and :class:`InterpreterPoolExecutor`, *chunksize* has no effect." +msgstr "" + +#: ../../library/concurrent.futures.rst:74 +msgid "Added the *chunksize* parameter." +msgstr "" + +#: ../../library/concurrent.futures.rst:77 +msgid "Added the *buffersize* parameter." +msgstr "" + +#: ../../library/concurrent.futures.rst:82 +msgid "" +"Signal the executor that it should free any resources that it is using when " +"the currently pending futures are done executing. Calls " +"to :meth:`Executor.submit` and :meth:`Executor.map` made after shutdown will " +"raise :exc:`RuntimeError`." +msgstr "" + +#: ../../library/concurrent.futures.rst:87 +msgid "" +"If *wait* is ``True`` then this method will not return until all the pending " +"futures are done executing and the resources associated with the executor " +"have been freed. If *wait* is ``False`` then this method will return " +"immediately and the resources associated with the executor will be freed " +"when all pending futures are done executing. Regardless of the value of " +"*wait*, the entire Python program will not exit until all pending futures " +"are done executing." +msgstr "" + +#: ../../library/concurrent.futures.rst:95 +msgid "" +"If *cancel_futures* is ``True``, this method will cancel all pending futures " +"that the executor has not started running. Any futures that are completed or " +"running won't be cancelled, regardless of the value of *cancel_futures*." +msgstr "" + +#: ../../library/concurrent.futures.rst:100 +msgid "" +"If both *cancel_futures* and *wait* are ``True``, all futures that the " +"executor has started running will be completed prior to this method " +"returning. The remaining futures are cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:104 +msgid "" +"You can avoid having to call this method explicitly if you use " +"the :keyword:`with` statement, which will shutdown the :class:`Executor` " +"(waiting as if :meth:`Executor.shutdown` were called with *wait* set to " +"``True``)::" +msgstr "" + +#: ../../library/concurrent.futures.rst:109 +msgid "" +"import shutil\n" +"with ThreadPoolExecutor(max_workers=4) as e:\n" +" e.submit(shutil.copy, 'src1.txt', 'dest1.txt')\n" +" e.submit(shutil.copy, 'src2.txt', 'dest2.txt')\n" +" e.submit(shutil.copy, 'src3.txt', 'dest3.txt')\n" +" e.submit(shutil.copy, 'src4.txt', 'dest4.txt')" +msgstr "" + +#: ../../library/concurrent.futures.rst:116 +msgid "Added *cancel_futures*." +msgstr "" + +#: ../../library/concurrent.futures.rst:121 +msgid "ThreadPoolExecutor" +msgstr "" + +#: ../../library/concurrent.futures.rst:123 +msgid "" +":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a " +"pool of threads to execute calls asynchronously." +msgstr "" + +#: ../../library/concurrent.futures.rst:126 +msgid "" +"Deadlocks can occur when the callable associated with a :class:`Future` " +"waits on the results of another :class:`Future`. For example::" +msgstr "" + +#: ../../library/concurrent.futures.rst:129 +msgid "" +"import time\n" +"def wait_on_b():\n" +" time.sleep(5)\n" +" print(b.result()) # b will never complete because it is waiting on a.\n" +" return 5\n" +"\n" +"def wait_on_a():\n" +" time.sleep(5)\n" +" print(a.result()) # a will never complete because it is waiting on b.\n" +" return 6\n" +"\n" +"\n" +"executor = ThreadPoolExecutor(max_workers=2)\n" +"a = executor.submit(wait_on_b)\n" +"b = executor.submit(wait_on_a)" +msgstr "" + +#: ../../library/concurrent.futures.rst:145 +msgid "And::" +msgstr "" + +#: ../../library/concurrent.futures.rst:147 +msgid "" +"def wait_on_future():\n" +" f = executor.submit(pow, 5, 2)\n" +" # This will never complete because there is only one worker thread and\n" +" # it is executing this function.\n" +" print(f.result())\n" +"\n" +"executor = ThreadPoolExecutor(max_workers=1)\n" +"executor.submit(wait_on_future)" +msgstr "" + +#: ../../library/concurrent.futures.rst:159 +msgid "" +"An :class:`Executor` subclass that uses a pool of at most *max_workers* " +"threads to execute calls asynchronously." +msgstr "" + +#: ../../library/concurrent.futures.rst:162 +msgid "" +"All threads enqueued to ``ThreadPoolExecutor`` will be joined before the " +"interpreter can exit. Note that the exit handler which does this is executed " +"*before* any exit handlers added using ``atexit``. This means exceptions in " +"the main thread must be caught and handled in order to signal threads to " +"exit gracefully. For this reason, it is recommended that " +"``ThreadPoolExecutor`` not be used for long-running tasks." +msgstr "" + +#: ../../library/concurrent.futures.rst:169 +msgid "" +"*initializer* is an optional callable that is called at the start of each " +"worker thread; *initargs* is a tuple of arguments passed to the " +"initializer. Should *initializer* raise an exception, all currently pending " +"jobs will raise a :exc:`~concurrent.futures.thread.BrokenThreadPool`, as " +"well as any attempt to submit more jobs to the pool." +msgstr "" + +#: ../../library/concurrent.futures.rst:175 +msgid "" +"If *max_workers* is ``None`` or not given, it will default to the number of " +"processors on the machine, multiplied by ``5``, assuming " +"that :class:`ThreadPoolExecutor` is often used to overlap I/O instead of CPU " +"work and the number of workers should be higher than the number of workers " +"for :class:`ProcessPoolExecutor`." +msgstr "" + +#: ../../library/concurrent.futures.rst:183 +msgid "" +"Added the *thread_name_prefix* parameter to allow users to control " +"the :class:`threading.Thread` names for worker threads created by the pool " +"for easier debugging." +msgstr "" + +#: ../../library/concurrent.futures.rst:188 +#: ../../library/concurrent.futures.rst:391 +msgid "Added the *initializer* and *initargs* arguments." +msgstr "" + +#: ../../library/concurrent.futures.rst:191 +msgid "" +"Default value of *max_workers* is changed to ``min(32, os.cpu_count() + " +"4)``. This default value preserves at least 5 workers for I/O bound tasks. " +"It utilizes at most 32 CPU cores for CPU bound tasks which release the GIL. " +"And it avoids using very large resources implicitly on many-core machines." +msgstr "" + +#: ../../library/concurrent.futures.rst:197 +msgid "" +"ThreadPoolExecutor now reuses idle worker threads before starting " +"*max_workers* worker threads too." +msgstr "" + +#: ../../library/concurrent.futures.rst:200 +msgid "" +"Default value of *max_workers* is changed to ``min(32, " +"(os.process_cpu_count() or 1) + 4)``." +msgstr "" + +#: ../../library/concurrent.futures.rst:208 +msgid "ThreadPoolExecutor Example" +msgstr "" + +#: ../../library/concurrent.futures.rst:211 +msgid "" +"import concurrent.futures\n" +"import urllib.request\n" +"\n" +"URLS = ['http://www.foxnews.com/',\n" +" 'http://www.cnn.com/',\n" +" 'http://europe.wsj.com/',\n" +" 'http://www.bbc.co.uk/',\n" +" 'http://nonexistent-subdomain.python.org/']\n" +"\n" +"# Retrieve a single page and report the URL and contents\n" +"def load_url(url, timeout):\n" +" with urllib.request.urlopen(url, timeout=timeout) as conn:\n" +" return conn.read()\n" +"\n" +"# We can use a with statement to ensure threads are cleaned up promptly\n" +"with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:\n" +" # Start the load operations and mark each future with its URL\n" +" future_to_url = {executor.submit(load_url, url, 60): url for url in " +"URLS}\n" +" for future in concurrent.futures.as_completed(future_to_url):\n" +" url = future_to_url[future]\n" +" try:\n" +" data = future.result()\n" +" except Exception as exc:\n" +" print('%r generated an exception: %s' % (url, exc))\n" +" else:\n" +" print('%r page is %d bytes' % (url, len(data)))" +msgstr "" + +#: ../../library/concurrent.futures.rst:240 +msgid "InterpreterPoolExecutor" +msgstr "" + +#: ../../library/concurrent.futures.rst:242 +msgid "" +"The :class:`InterpreterPoolExecutor` class uses a pool of interpreters to " +"execute calls asynchronously. It is a :class:`ThreadPoolExecutor` subclass, " +"which means each worker is running in its own thread. The difference here is " +"that each worker has its own interpreter, and runs each task using that " +"interpreter." +msgstr "" + +#: ../../library/concurrent.futures.rst:248 +msgid "" +"The biggest benefit to using interpreters instead of only threads is true " +"multi-core parallelism. Each interpreter has its own :term:`Global " +"Interpreter Lock `, so code running in one " +"interpreter can run on one CPU core, while code in another interpreter runs " +"unblocked on a different core." +msgstr "" + +#: ../../library/concurrent.futures.rst:254 +msgid "" +"The tradeoff is that writing concurrent code for use with multiple " +"interpreters can take extra effort. However, this is because it forces you " +"to be deliberate about how and when interpreters interact, and to be " +"explicit about what data is shared between interpreters. This results in " +"several benefits that help balance the extra effort, including true multi-" +"core parallelism, For example, code written this way can make it easier to " +"reason about concurrency. Another major benefit is that you don't have to " +"deal with several of the big pain points of using threads, like race " +"conditions." +msgstr "" + +#: ../../library/concurrent.futures.rst:264 +msgid "" +"Each worker's interpreter is isolated from all the other interpreters. " +"\"Isolated\" means each interpreter has its own runtime state and operates " +"completely independently. For example, if you redirect :data:`sys.stdout` " +"in one interpreter, it will not be automatically redirected to any other " +"interpreter. If you import a module in one interpreter, it is not " +"automatically imported in any other. You would need to import the module " +"separately in interpreter where you need it. In fact, each module imported " +"in an interpreter is a completely separate object from the same module in a " +"different interpreter, including :mod:`sys`, :mod:`builtins`, and even " +"``__main__``." +msgstr "" + +#: ../../library/concurrent.futures.rst:276 +msgid "" +"Isolation means a mutable object, or other data, cannot be used by more than " +"one interpreter at the same time. That effectively means interpreters " +"cannot actually share such objects or data. Instead, each interpreter must " +"have its own copy, and you will have to synchronize any changes between the " +"copies manually. Immutable objects and data, like the builtin singletons, " +"strings, and tuples of immutable objects, don't have these limitations." +msgstr "" + +#: ../../library/concurrent.futures.rst:284 +msgid "" +"Communicating and synchronizing between interpreters is most effectively " +"done using dedicated tools, like those proposed in :pep:`734`. One less " +"efficient alternative is to serialize with :mod:`pickle` and then send the " +"bytes over a shared :mod:`socket ` or :func:`pipe `." +msgstr "" + +#: ../../library/concurrent.futures.rst:292 +msgid "" +"A :class:`ThreadPoolExecutor` subclass that executes calls asynchronously " +"using a pool of at most *max_workers* threads. Each thread runs tasks in " +"its own interpreter. The worker interpreters are isolated from each other, " +"which means each has its own runtime state and that they can't share any " +"mutable objects or other data. Each interpreter has its own :term:`Global " +"Interpreter Lock `, which means code run with this " +"executor has true multi-core parallelism." +msgstr "" + +#: ../../library/concurrent.futures.rst:300 +msgid "" +"The optional *initializer* and *initargs* arguments have the same meaning as " +"for :class:`!ThreadPoolExecutor`: the initializer is run when each worker is " +"created, though in this case it is run in the worker's interpreter. The " +"executor serializes the *initializer* and *initargs* using :mod:`pickle` " +"when sending them to the worker's interpreter." +msgstr "" + +#: ../../library/concurrent.futures.rst:308 +msgid "" +"The executor may replace uncaught exceptions from *initializer* " +"with :class:`~concurrent.futures.interpreter.ExecutionFailed`." +msgstr "" + +#: ../../library/concurrent.futures.rst:311 +msgid "Other caveats from parent :class:`ThreadPoolExecutor` apply here." +msgstr "" + +#: ../../library/concurrent.futures.rst:313 +msgid "" +":meth:`~Executor.submit` and :meth:`~Executor.map` work like normal, except " +"the worker serializes the callable and arguments using :mod:`pickle` when " +"sending them to its interpreter. The worker likewise serializes the return " +"value when sending it back." +msgstr "" + +#: ../../library/concurrent.futures.rst:318 +msgid "" +"When a worker's current task raises an uncaught exception, the worker always " +"tries to preserve the exception as-is. If that is successful then it also " +"sets the ``__cause__`` to a " +"corresponding :class:`~concurrent.futures.interpreter.ExecutionFailed` " +"instance, which contains a summary of the original exception. In the " +"uncommon case that the worker is not able to preserve the original as-is " +"then it directly preserves the " +"corresponding :class:`~concurrent.futures.interpreter.ExecutionFailed` " +"instance instead." +msgstr "" + +#: ../../library/concurrent.futures.rst:330 +msgid "ProcessPoolExecutor" +msgstr "" + +#: ../../library/concurrent.futures.rst:332 +msgid "" +"The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " +"uses a pool of processes to execute calls " +"asynchronously. :class:`ProcessPoolExecutor` uses the :mod:`multiprocessing` " +"module, which allows it to side-step the :term:`Global Interpreter Lock " +"` but also means that only picklable objects can be " +"executed and returned." +msgstr "" + +#: ../../library/concurrent.futures.rst:339 +msgid "" +"The ``__main__`` module must be importable by worker subprocesses. This " +"means that :class:`ProcessPoolExecutor` will not work in the interactive " +"interpreter." +msgstr "" + +#: ../../library/concurrent.futures.rst:342 +msgid "" +"Calling :class:`Executor` or :class:`Future` methods from a callable " +"submitted to a :class:`ProcessPoolExecutor` will result in deadlock." +msgstr "" + +#: ../../library/concurrent.futures.rst:345 +msgid "" +"Note that the restrictions on functions and arguments needing to picklable " +"as per :class:`multiprocessing.Process` apply when " +"using :meth:`~Executor.submit` and :meth:`~Executor.map` on " +"a :class:`ProcessPoolExecutor`. A function defined in a REPL or a lambda " +"should not be expected to work." +msgstr "" + +#: ../../library/concurrent.futures.rst:352 +msgid "" +"An :class:`Executor` subclass that executes calls asynchronously using a " +"pool of at most *max_workers* processes. If *max_workers* is ``None`` or " +"not given, it will default to :func:`os.process_cpu_count`. If *max_workers* " +"is less than or equal to ``0``, then a :exc:`ValueError` will be raised. On " +"Windows, *max_workers* must be less than or equal to ``61``. If it is not " +"then :exc:`ValueError` will be raised. If *max_workers* is ``None``, then " +"the default chosen will be at most ``61``, even if more processors are " +"available. *mp_context* can be a :mod:`multiprocessing` context or ``None``. " +"It will be used to launch the workers. If *mp_context* is ``None`` or not " +"given, the default :mod:`multiprocessing` context is used. " +"See :ref:`multiprocessing-start-methods`." +msgstr "" + +#: ../../library/concurrent.futures.rst:366 +msgid "" +"*initializer* is an optional callable that is called at the start of each " +"worker process; *initargs* is a tuple of arguments passed to the " +"initializer. Should *initializer* raise an exception, all currently pending " +"jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " +"well as any attempt to submit more jobs to the pool." +msgstr "" + +#: ../../library/concurrent.futures.rst:372 +msgid "" +"*max_tasks_per_child* is an optional argument that specifies the maximum " +"number of tasks a single process can execute before it will exit and be " +"replaced with a fresh worker process. By default *max_tasks_per_child* is " +"``None`` which means worker processes will live as long as the pool. When a " +"max is specified, the \"spawn\" multiprocessing start method will be used by " +"default in absence of a *mp_context* parameter. This feature is incompatible " +"with the \"fork\" start method." +msgstr "" + +#: ../../library/concurrent.futures.rst:380 +msgid "" +"When one of the worker processes terminates abruptly, " +"a :exc:`~concurrent.futures.process.BrokenProcessPool` error is now raised. " +"Previously, behaviour was undefined but operations on the executor or its " +"futures would often freeze or deadlock." +msgstr "" + +#: ../../library/concurrent.futures.rst:387 +msgid "" +"The *mp_context* argument was added to allow users to control the " +"start_method for worker processes created by the pool." +msgstr "" + +#: ../../library/concurrent.futures.rst:393 +msgid "" +"The *max_tasks_per_child* argument was added to allow users to control the " +"lifetime of workers in the pool." +msgstr "" + +#: ../../library/concurrent.futures.rst:397 +msgid "" +"On POSIX systems, if your application has multiple threads and " +"the :mod:`multiprocessing` context uses the ``\"fork\"`` start method: " +"The :func:`os.fork` function called internally to spawn workers may raise " +"a :exc:`DeprecationWarning`. Pass a *mp_context* configured to use a " +"different start method. See the :func:`os.fork` documentation for further " +"explanation." +msgstr "" + +#: ../../library/concurrent.futures.rst:405 +msgid "" +"*max_workers* uses :func:`os.process_cpu_count` by default, instead " +"of :func:`os.cpu_count`." +msgstr "" + +#: ../../library/concurrent.futures.rst:409 +msgid "" +"The default process start method (see :ref:`multiprocessing-start-methods`) " +"changed away from *fork*. If you require the *fork* start method " +"for :class:`ProcessPoolExecutor` you must explicitly pass " +"``mp_context=multiprocessing.get_context(\"fork\")``." +msgstr "" + +#: ../../library/concurrent.futures.rst:417 +msgid "" +"Attempt to terminate all living worker processes immediately by " +"calling :meth:`Process.terminate ` on " +"each of them. Internally, it will also call :meth:`Executor.shutdown` to " +"ensure that all other resources associated with the executor are freed." +msgstr "" + +#: ../../library/concurrent.futures.rst:422 +#: ../../library/concurrent.futures.rst:434 +msgid "" +"After calling this method the caller should no longer submit tasks to the " +"executor." +msgstr "" + +#: ../../library/concurrent.futures.rst:429 +msgid "" +"Attempt to kill all living worker processes immediately by " +"calling :meth:`Process.kill ` on each of them. " +"Internally, it will also call :meth:`Executor.shutdown` to ensure that all " +"other resources associated with the executor are freed." +msgstr "" + +#: ../../library/concurrent.futures.rst:442 +msgid "ProcessPoolExecutor Example" +msgstr "" + +#: ../../library/concurrent.futures.rst:445 +msgid "" +"import concurrent.futures\n" +"import math\n" +"\n" +"PRIMES = [\n" +" 112272535095293,\n" +" 112582705942171,\n" +" 112272535095293,\n" +" 115280095190773,\n" +" 115797848077099,\n" +" 1099726899285419]\n" +"\n" +"def is_prime(n):\n" +" if n < 2:\n" +" return False\n" +" if n == 2:\n" +" return True\n" +" if n % 2 == 0:\n" +" return False\n" +"\n" +" sqrt_n = int(math.floor(math.sqrt(n)))\n" +" for i in range(3, sqrt_n + 1, 2):\n" +" if n % i == 0:\n" +" return False\n" +" return True\n" +"\n" +"def main():\n" +" with concurrent.futures.ProcessPoolExecutor() as executor:\n" +" for number, prime in zip(PRIMES, executor.map(is_prime, PRIMES)):\n" +" print('%d is prime: %s' % (number, prime))\n" +"\n" +"if __name__ == '__main__':\n" +" main()" +msgstr "" + +#: ../../library/concurrent.futures.rst:480 +msgid "Future Objects" +msgstr "" + +#: ../../library/concurrent.futures.rst:482 +msgid "" +"The :class:`Future` class encapsulates the asynchronous execution of a " +"callable. :class:`Future` instances are created by :meth:`Executor.submit`." +msgstr "" + +#: ../../library/concurrent.futures.rst:487 +msgid "" +"Encapsulates the asynchronous execution of a callable. :class:`Future` " +"instances are created by :meth:`Executor.submit` and should not be created " +"directly except for testing." +msgstr "" + +#: ../../library/concurrent.futures.rst:493 +msgid "" +"Attempt to cancel the call. If the call is currently being executed or " +"finished running and cannot be cancelled then the method will return " +"``False``, otherwise the call will be cancelled and the method will return " +"``True``." +msgstr "" + +#: ../../library/concurrent.futures.rst:500 +msgid "Return ``True`` if the call was successfully cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:504 +msgid "" +"Return ``True`` if the call is currently being executed and cannot be " +"cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:509 +msgid "" +"Return ``True`` if the call was successfully cancelled or finished running." +msgstr "" + +#: ../../library/concurrent.futures.rst:514 +msgid "" +"Return the value returned by the call. If the call hasn't yet completed then " +"this method will wait up to *timeout* seconds. If the call hasn't completed " +"in *timeout* seconds, then a :exc:`TimeoutError` will be raised. *timeout* " +"can be an int or float. If *timeout* is not specified or ``None``, there is " +"no limit to the wait time." +msgstr "" + +#: ../../library/concurrent.futures.rst:521 +#: ../../library/concurrent.futures.rst:535 +msgid "" +"If the future is cancelled before completing then :exc:`.CancelledError` " +"will be raised." +msgstr "" + +#: ../../library/concurrent.futures.rst:524 +msgid "" +"If the call raised an exception, this method will raise the same exception." +msgstr "" + +#: ../../library/concurrent.futures.rst:528 +msgid "" +"Return the exception raised by the call. If the call hasn't yet completed " +"then this method will wait up to *timeout* seconds. If the call hasn't " +"completed in *timeout* seconds, then a :exc:`TimeoutError` will be raised. " +"*timeout* can be an int or float. If *timeout* is not specified or " +"``None``, there is no limit to the wait time." +msgstr "" + +#: ../../library/concurrent.futures.rst:538 +msgid "If the call completed without raising, ``None`` is returned." +msgstr "" + +#: ../../library/concurrent.futures.rst:542 +msgid "" +"Attaches the callable *fn* to the future. *fn* will be called, with the " +"future as its only argument, when the future is cancelled or finishes " +"running." +msgstr "" + +#: ../../library/concurrent.futures.rst:546 +msgid "" +"Added callables are called in the order that they were added and are always " +"called in a thread belonging to the process that added them. If the " +"callable raises an :exc:`Exception` subclass, it will be logged and " +"ignored. If the callable raises a :exc:`BaseException` subclass, the " +"behavior is undefined." +msgstr "" + +#: ../../library/concurrent.futures.rst:552 +msgid "" +"If the future has already completed or been cancelled, *fn* will be called " +"immediately." +msgstr "" + +#: ../../library/concurrent.futures.rst:555 +msgid "" +"The following :class:`Future` methods are meant for use in unit tests " +"and :class:`Executor` implementations." +msgstr "" + +#: ../../library/concurrent.futures.rst:560 +msgid "" +"This method should only be called by :class:`Executor` implementations " +"before executing the work associated with the :class:`Future` and by unit " +"tests." +msgstr "" + +#: ../../library/concurrent.futures.rst:564 +msgid "" +"If the method returns ``False`` then the :class:`Future` was cancelled, " +"i.e. :meth:`Future.cancel` was called and returned ``True``. Any threads " +"waiting on the :class:`Future` completing (i.e. through :func:`as_completed` " +"or :func:`wait`) will be woken up." +msgstr "" + +#: ../../library/concurrent.futures.rst:569 +msgid "" +"If the method returns ``True`` then the :class:`Future` was not cancelled " +"and has been put in the running state, i.e. calls to :meth:`Future.running` " +"will return ``True``." +msgstr "" + +#: ../../library/concurrent.futures.rst:573 +msgid "" +"This method can only be called once and cannot be called " +"after :meth:`Future.set_result` or :meth:`Future.set_exception` have been " +"called." +msgstr "" + +#: ../../library/concurrent.futures.rst:579 +msgid "" +"Sets the result of the work associated with the :class:`Future` to *result*." +msgstr "" + +#: ../../library/concurrent.futures.rst:582 +#: ../../library/concurrent.futures.rst:595 +msgid "" +"This method should only be used by :class:`Executor` implementations and " +"unit tests." +msgstr "" + +#: ../../library/concurrent.futures.rst:585 +#: ../../library/concurrent.futures.rst:598 +msgid "" +"This method raises :exc:`concurrent.futures.InvalidStateError` if " +"the :class:`Future` is already done." +msgstr "" + +#: ../../library/concurrent.futures.rst:592 +msgid "" +"Sets the result of the work associated with the :class:`Future` to " +"the :class:`Exception` *exception*." +msgstr "" + +#: ../../library/concurrent.futures.rst:604 +msgid "Module Functions" +msgstr "" + +#: ../../library/concurrent.futures.rst:608 +msgid "" +"Wait for the :class:`Future` instances (possibly created by " +"different :class:`Executor` instances) given by *fs* to complete. Duplicate " +"futures given to *fs* are removed and will be returned only once. Returns a " +"named 2-tuple of sets. The first set, named ``done``, contains the futures " +"that completed (finished or cancelled futures) before the wait completed. " +"The second set, named ``not_done``, contains the futures that did not " +"complete (pending or running futures)." +msgstr "" + +#: ../../library/concurrent.futures.rst:616 +msgid "" +"*timeout* can be used to control the maximum number of seconds to wait " +"before returning. *timeout* can be an int or float. If *timeout* is not " +"specified or ``None``, there is no limit to the wait time." +msgstr "" + +#: ../../library/concurrent.futures.rst:620 +msgid "" +"*return_when* indicates when this function should return. It must be one of " +"the following constants:" +msgstr "" + +#: ../../library/concurrent.futures.rst:626 +msgid "Constant" +msgstr "" + +#: ../../library/concurrent.futures.rst:627 +msgid "Description" +msgstr "" + +#: ../../library/concurrent.futures.rst:630 +msgid "The function will return when any future finishes or is cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:633 +msgid "" +"The function will return when any future finishes by raising an exception. " +"If no future raises an exception then it is equivalent " +"to :const:`ALL_COMPLETED`." +msgstr "" + +#: ../../library/concurrent.futures.rst:638 +msgid "The function will return when all futures finish or are cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:642 +msgid "" +"Returns an iterator over the :class:`Future` instances (possibly created by " +"different :class:`Executor` instances) given by *fs* that yields futures as " +"they complete (finished or cancelled futures). Any futures given by *fs* " +"that are duplicated will be returned once. Any futures that completed " +"before :func:`as_completed` is called will be yielded first. The returned " +"iterator raises a :exc:`TimeoutError` if :meth:`~iterator.__next__` is " +"called and the result isn't available after *timeout* seconds from the " +"original call to :func:`as_completed`. *timeout* can be an int or float. If " +"*timeout* is not specified or ``None``, there is no limit to the wait time." +msgstr "" + +#: ../../library/concurrent.futures.rst:655 +msgid ":pep:`3148` -- futures - execute computations asynchronously" +msgstr "" + +#: ../../library/concurrent.futures.rst:656 +msgid "" +"The proposal which described this feature for inclusion in the Python " +"standard library." +msgstr "" + +#: ../../library/concurrent.futures.rst:661 +msgid "Exception classes" +msgstr "" + +#: ../../library/concurrent.futures.rst:667 +msgid "Raised when a future is cancelled." +msgstr "" + +#: ../../library/concurrent.futures.rst:671 +msgid "" +"A deprecated alias of :exc:`TimeoutError`, raised when a future operation " +"exceeds the given timeout." +msgstr "" + +#: ../../library/concurrent.futures.rst:676 +msgid "This class was made an alias of :exc:`TimeoutError`." +msgstr "" + +#: ../../library/concurrent.futures.rst:681 +msgid "" +"Derived from :exc:`RuntimeError`, this exception class is raised when an " +"executor is broken for some reason, and cannot be used to submit or execute " +"new tasks." +msgstr "" + +#: ../../library/concurrent.futures.rst:689 +msgid "" +"Raised when an operation is performed on a future that is not allowed in the " +"current state." +msgstr "" + +#: ../../library/concurrent.futures.rst:698 +msgid "" +"Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " +"is raised when one of the workers of " +"a :class:`~concurrent.futures.ThreadPoolExecutor` has failed initializing." +msgstr "" + +#: ../../library/concurrent.futures.rst:709 +msgid "" +"Derived from :exc:`~concurrent.futures.thread.BrokenThreadPool`, this " +"exception class is raised when one of the workers of " +"a :class:`~concurrent.futures.InterpreterPoolExecutor` has failed " +"initializing." +msgstr "" + +#: ../../library/concurrent.futures.rst:718 +msgid "" +"Raised from :class:`~concurrent.futures.InterpreterPoolExecutor` when the " +"given initializer fails or from :meth:`~concurrent.futures.Executor.submit` " +"when there's an uncaught exception from the submitted task." +msgstr "" + +#: ../../library/concurrent.futures.rst:729 +msgid "" +"Derived from :exc:`~concurrent.futures.BrokenExecutor` " +"(formerly :exc:`RuntimeError`), this exception class is raised when one of " +"the workers of a :class:`~concurrent.futures.ProcessPoolExecutor` has " +"terminated in a non-clean fashion (for example, if it was killed from the " +"outside)." +msgstr "" diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po new file mode 100644 index 0000000..26b65a7 --- /dev/null +++ b/library/concurrent.interpreters.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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-31 14:20+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/concurrent.interpreters.rst:2 +msgid "" +":mod:`!concurrent.interpreters` --- Multiple interpreters in the same process" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:12 +msgid "**Source code:** :source:`Lib/concurrent/interpreters`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:16 +msgid "" +"The :mod:`!concurrent.interpreters` module constructs higher-level " +"interfaces on top of the lower level :mod:`!_interpreters` module." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:19 +msgid "" +"The module is primarily meant to provide a basic API for managing " +"interpreters (AKA \"subinterpreters\") and running things in them. Running " +"mostly involves switching to an interpreter (in the current thread) and " +"calling a function in that execution context." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:24 +msgid "" +"For concurrency, interpreters themselves (and this module) don't provide " +"much more than isolation, which on its own isn't useful. Actual concurrency " +"is available separately through :mod:`threads ` See `below " +"`_" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:31 +msgid ":class:`~concurrent.futures.InterpreterPoolExecutor`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:32 +msgid "combines threads with interpreters in a familiar interface." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:36 +msgid ":ref:`isolating-extensions-howto`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:37 +msgid "how to update an extension module to support multiple interpreters" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:39 +msgid ":pep:`554`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:41 +msgid ":pep:`734`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:43 +msgid ":pep:`684`" +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:51 +msgid "Key details" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:53 +msgid "" +"Before we dive in further, there are a small number of details to keep in " +"mind about using multiple interpreters:" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:56 +msgid "`isolated `_, by default" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:57 +msgid "no implicit threads" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:58 +msgid "not all PyPI packages support use in multiple interpreters yet" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:66 +msgid "Introduction" +msgstr "Bevezetés" + +#: ../../library/concurrent.interpreters.rst:68 +msgid "" +"An \"interpreter\" is effectively the execution context of the Python " +"runtime. It contains all of the state the runtime needs to execute a " +"program. This includes things like the import state and builtins. (Each " +"thread, even if there's only the main thread, has some extra runtime state, " +"in addition to the current interpreter, related to the current exception and " +"the bytecode eval loop.)" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:75 +msgid "" +"The concept and functionality of the interpreter have been a part of Python " +"since version 2.2, but the feature was only available through the C-API and " +"not well known, and the `isolation `_ was relatively " +"incomplete until version 3.12." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:83 +msgid "Multiple Interpreters and Isolation" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:85 +msgid "" +"A Python implementation may support using multiple interpreters in the same " +"process. CPython has this support. Each interpreter is effectively " +"isolated from the others (with a limited number of carefully managed process-" +"global exceptions to the rule)." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:90 +msgid "" +"That isolation is primarily useful as a strong separation between distinct " +"logical components of a program, where you want to have careful control of " +"how those components interact." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:96 +msgid "" +"Interpreters in the same process can technically never be strictly isolated " +"from one another since there are few restrictions on memory access within " +"the same process. The Python runtime makes a best effort at isolation but " +"extension modules may easily violate that. Therefore, do not use multiple " +"interpreters in security-sensitive situations, where they shouldn't have " +"access to each other's data." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:104 +msgid "Running in an Interpreter" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:106 +msgid "" +"Running in a different interpreter involves switching to it in the current " +"thread and then calling some function. The runtime will execute the " +"function using the current interpreter's state. The :mod:`!" +"concurrent.interpreters` module provides a basic API for creating and " +"managing interpreters, as well as the switch-and-call operation." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:113 +msgid "" +"No other threads are automatically started for the operation. There is `a " +"helper `_ for that though. There is another " +"dedicated helper for calling the builtin :func:`exec` in an interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:118 +msgid "" +"When :func:`exec` (or :func:`eval`) are called in an interpreter, they run " +"using the interpreter's :mod:`!__main__` module as the \"globals\" " +"namespace. The same is true for functions that aren't associated with any " +"module. This is the same as how scripts invoked from the command-line run " +"in the :mod:`!__main__` module." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:128 +msgid "Concurrency and Parallelism" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:130 +msgid "" +"As noted earlier, interpreters do not provide any concurrency on their own. " +"They strictly represent the isolated execution context the runtime will use " +"*in the current thread*. That isolation makes them similar to processes, " +"but they still enjoy in-process efficiency, like threads." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:136 +msgid "" +"All that said, interpreters do naturally support certain flavors of " +"concurrency. There's a powerful side effect of that isolation. It enables a " +"different approach to concurrency than you can take with async or threads. " +"It's a similar concurrency model to CSP or the actor model, a model which is " +"relatively easy to reason about." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:143 +msgid "" +"You can take advantage of that concurrency model in a single thread, " +"switching back and forth between interpreters, Stackless-style. However, " +"this model is more useful when you combine interpreters with multiple " +"threads. This mostly involves starting a new thread, where you switch to " +"another interpreter and run what you want there." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:149 +msgid "" +"Each actual thread in Python, even if you're only running in the main " +"thread, has its own *current* execution context. Multiple threads can use " +"the same interpreter or different ones." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:153 +msgid "" +"At a high level, you can think of the combination of threads and " +"interpreters as threads with opt-in sharing." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:156 +msgid "" +"As a significant bonus, interpreters are sufficiently isolated that they do " +"not share the :term:`GIL`, which means combining threads with multiple " +"interpreters enables full multi-core parallelism. (This has been the case " +"since Python 3.12.)" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:162 +msgid "Communication Between Interpreters" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:164 +msgid "" +"In practice, multiple interpreters are useful only if we have a way to " +"communicate between them. This usually involves some form of message " +"passing, but can even mean sharing data in some carefully managed way." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:169 +msgid "" +"With this in mind, the :mod:`!concurrent.interpreters` module provides " +"a :class:`queue.Queue` implementation, available " +"through :func:`create_queue`." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:176 +msgid "\"Sharing\" Objects" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:178 +msgid "" +"Any data actually shared between interpreters loses the thread-safety " +"provided by the :term:`GIL`. There are various options for dealing with " +"this in extension modules. However, from Python code the lack of thread-" +"safety means objects can't actually be shared, with a few exceptions. " +"Instead, a copy must be created, which means mutable objects won't stay in " +"sync." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:185 +msgid "" +"By default, most objects are copied with :mod:`pickle` when they are passed " +"to another interpreter. Nearly all of the immutable builtin objects are " +"either directly shared or copied efficiently. For example:" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:189 +msgid ":const:`None`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:190 +msgid ":class:`bool` (:const:`True` and :const:`False`)" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:191 +msgid ":class:`bytes`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:192 +msgid ":class:`str`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:193 +msgid ":class:`int`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:194 +msgid ":class:`float`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:195 +msgid ":class:`tuple` (of similarly supported objects)" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:197 +msgid "" +"There is a small number of Python types that actually share mutable data " +"between interpreters:" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:200 +msgid ":class:`memoryview`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:201 +msgid ":class:`Queue`" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:205 +msgid "Reference" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:207 +msgid "This module defines the following functions:" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:211 +msgid "" +"Return a :class:`list` of :class:`Interpreter` objects, one for each " +"existing interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:216 +msgid "" +"Return an :class:`Interpreter` object for the currently running interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:221 +msgid "" +"Return an :class:`Interpreter` object for the main interpreter. This is the " +"interpreter the runtime created to run the :term:`REPL` or the script given " +"at the command-line. It is usually the only one." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:227 +msgid "" +"Initialize a new (idle) Python interpreter and return a :class:`Interpreter` " +"object for it." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:232 +msgid "" +"Initialize a new cross-interpreter queue and return a :class:`Queue` object " +"for it." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:237 +msgid "Interpreter objects" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:241 +msgid "A single interpreter in the current process." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:243 +msgid "" +"Generally, :class:`Interpreter` shouldn't be called directly. Instead, " +"use :func:`create` or one of the other module functions." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:248 +#: ../../library/concurrent.interpreters.rst:254 +#: ../../library/concurrent.interpreters.rst:333 +msgid "(read-only)" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:250 +msgid "The underlying interpreter's ID." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:256 +msgid "A string describing where the interpreter came from." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:260 +msgid "" +"Return ``True`` if the interpreter is currently executing code in its :mod:`!" +"__main__` module and ``False`` otherwise." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:265 +msgid "Finalize and destroy the interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:269 +msgid "Bind objects in the interpreter's :mod:`!__main__` module." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:271 +#: ../../library/concurrent.interpreters.rst:328 +msgid "" +"Some objects are actually shared and some are copied efficiently, but most " +"are copied via :mod:`pickle`. See :ref:`interp-object-sharing`." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:276 +msgid "Run the given source code in the interpreter (in the current thread)." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:280 +msgid "" +"Return the result of calling running the given function in the interpreter " +"(in the current thread)." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:287 +msgid "Run the given function in the interpreter (in a new thread)." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:290 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/concurrent.interpreters.rst:294 +msgid "" +"This exception, a subclass of :exc:`Exception`, is raised when an " +"interpreter-related error happens." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:299 +msgid "" +"This exception, a subclass of :exc:`InterpreterError`, is raised when the " +"targeted interpreter no longer exists." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:304 +msgid "" +"This exception, a subclass of :exc:`InterpreterError`, is raised when the " +"running code raised an uncaught exception." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:309 +msgid "A basic snapshot of the exception raised in the other interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:315 +msgid "" +"This exception, a subclass of :exc:`TypeError`, is raised when an object " +"cannot be sent to another interpreter." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:320 +msgid "Communicating Between Interpreters" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:324 +msgid "" +"A wrapper around a low-level, cross-interpreter queue, which implements " +"the :class:`queue.Queue` interface. The underlying queue can only be " +"created through :func:`create_queue`." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:335 +msgid "The queue's ID." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:340 +msgid "" +"This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!" +"Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:346 +msgid "" +"This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!" +"Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." +msgstr "" + +#: ../../library/concurrent.interpreters.rst:352 +msgid "Basic usage" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:354 +msgid "Creating an interpreter and running code in it::" +msgstr "" + +#: ../../library/concurrent.interpreters.rst:356 +msgid "" +"from concurrent import interpreters\n" +"\n" +"interp = interpreters.create()\n" +"\n" +"# Run in the current OS thread.\n" +"\n" +"interp.exec('print(\"spam!\")')\n" +"\n" +"interp.exec(\"\"\"if True:\n" +" print('spam!')\n" +" \"\"\")\n" +"\n" +"from textwrap import dedent\n" +"interp.exec(dedent(\"\"\"\n" +" print('spam!')\n" +" \"\"\"))\n" +"\n" +"def run(arg):\n" +" return arg\n" +"\n" +"res = interp.call(run, 'spam!')\n" +"print(res)\n" +"\n" +"def run():\n" +" print('spam!')\n" +"\n" +"interp.call(run)\n" +"\n" +"# Run in new OS thread.\n" +"\n" +"t = interp.call_in_thread(run)\n" +"t.join()" +msgstr "" diff --git a/library/concurrent.po b/library/concurrent.po new file mode 100644 index 0000000..d6df494 --- /dev/null +++ b/library/concurrent.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/concurrent.rst:2 +msgid "The :mod:`!concurrent` package" +msgstr "" + +#: ../../library/concurrent.rst:4 +msgid "This package contains the following modules:" +msgstr "" + +#: ../../library/concurrent.rst:6 +msgid ":mod:`concurrent.futures` -- Launching parallel tasks" +msgstr "" + +#: ../../library/concurrent.rst:7 +msgid "" +":mod:`concurrent.interpreters` -- Multiple interpreters in the same process" +msgstr "" diff --git a/library/configparser.po b/library/configparser.po new file mode 100644 index 0000000..3132f0f --- /dev/null +++ b/library/configparser.po @@ -0,0 +1,1814 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/configparser.rst:2 +msgid ":mod:`!configparser` --- Configuration file parser" +msgstr "" + +#: ../../library/configparser.rst:14 +msgid "**Source code:** :source:`Lib/configparser.py`" +msgstr "" + +#: ../../library/configparser.rst:24 +msgid "" +"This module provides the :class:`ConfigParser` class which implements a " +"basic configuration language which provides a structure similar to what's " +"found in Microsoft Windows INI files. You can use this to write Python " +"programs which can be customized by end users easily." +msgstr "" + +#: ../../library/configparser.rst:31 +msgid "" +"This library does *not* interpret or write the value-type prefixes used in " +"the Windows Registry extended version of INI syntax." +msgstr "" + +#: ../../library/configparser.rst:36 +msgid "Module :mod:`tomllib`" +msgstr "" + +#: ../../library/configparser.rst:37 +msgid "" +"TOML is a well-specified format for application configuration files. It is " +"specifically designed to be an improved version of INI." +msgstr "" + +#: ../../library/configparser.rst:40 +msgid "Module :mod:`shlex`" +msgstr "" + +#: ../../library/configparser.rst:41 +msgid "" +"Support for creating Unix shell-like mini-languages which can also be used " +"for application configuration files." +msgstr "" + +#: ../../library/configparser.rst:44 +msgid "Module :mod:`json`" +msgstr "" + +#: ../../library/configparser.rst:45 +msgid "" +"The ``json`` module implements a subset of JavaScript syntax which is " +"sometimes used for configuration, but does not support comments." +msgstr "" + +#: ../../library/configparser.rst:61 +msgid "Quick Start" +msgstr "" + +#: ../../library/configparser.rst:63 +msgid "Let's take a very basic configuration file that looks like this:" +msgstr "" + +#: ../../library/configparser.rst:65 +msgid "" +"[DEFAULT]\n" +"ServerAliveInterval = 45\n" +"Compression = yes\n" +"CompressionLevel = 9\n" +"ForwardX11 = yes\n" +"\n" +"[forge.example]\n" +"User = hg\n" +"\n" +"[topsecret.server.example]\n" +"Port = 50022\n" +"ForwardX11 = no" +msgstr "" + +#: ../../library/configparser.rst:80 +msgid "" +"The structure of INI files is described `in the following section " +"<#supported-ini-file-structure>`_. Essentially, the file consists of " +"sections, each of which contains keys with values. :mod:`configparser` " +"classes can read and write such files. Let's start by creating the above " +"configuration file programmatically." +msgstr "" + +#: ../../library/configparser.rst:86 +msgid "" +">>> import configparser\n" +">>> config = configparser.ConfigParser()\n" +">>> config['DEFAULT'] = {'ServerAliveInterval': '45',\n" +"... 'Compression': 'yes',\n" +"... 'CompressionLevel': '9'}\n" +">>> config['forge.example'] = {}\n" +">>> config['forge.example']['User'] = 'hg'\n" +">>> config['topsecret.server.example'] = {}\n" +">>> topsecret = config['topsecret.server.example']\n" +">>> topsecret['Port'] = '50022' # mutates the parser\n" +">>> topsecret['ForwardX11'] = 'no' # same here\n" +">>> config['DEFAULT']['ForwardX11'] = 'yes'\n" +">>> with open('example.ini', 'w') as configfile:\n" +"... config.write(configfile)\n" +"..." +msgstr "" + +#: ../../library/configparser.rst:104 +msgid "" +"As you can see, we can treat a config parser much like a dictionary. There " +"are differences, `outlined later <#mapping-protocol-access>`_, but the " +"behavior is very close to what you would expect from a dictionary." +msgstr "" + +#: ../../library/configparser.rst:108 +msgid "" +"Now that we have created and saved a configuration file, let's read it back " +"and explore the data it holds." +msgstr "" + +#: ../../library/configparser.rst:111 +msgid "" +">>> config = configparser.ConfigParser()\n" +">>> config.sections()\n" +"[]\n" +">>> config.read('example.ini')\n" +"['example.ini']\n" +">>> config.sections()\n" +"['forge.example', 'topsecret.server.example']\n" +">>> 'forge.example' in config\n" +"True\n" +">>> 'python.org' in config\n" +"False\n" +">>> config['forge.example']['User']\n" +"'hg'\n" +">>> config['DEFAULT']['Compression']\n" +"'yes'\n" +">>> topsecret = config['topsecret.server.example']\n" +">>> topsecret['ForwardX11']\n" +"'no'\n" +">>> topsecret['Port']\n" +"'50022'\n" +">>> for key in config['forge.example']:\n" +"... print(key)\n" +"user\n" +"compressionlevel\n" +"serveraliveinterval\n" +"compression\n" +"forwardx11\n" +">>> config['forge.example']['ForwardX11']\n" +"'yes'" +msgstr "" + +#: ../../library/configparser.rst:143 +msgid "" +"As we can see above, the API is pretty straightforward. The only bit of " +"magic involves the ``DEFAULT`` section which provides default values for all " +"other sections [1]_. Note also that keys in sections are case-insensitive " +"and stored in lowercase [1]_." +msgstr "" + +#: ../../library/configparser.rst:148 ../../library/configparser.rst:1003 +msgid "" +"It is possible to read several configurations into a " +"single :class:`ConfigParser`, where the most recently added configuration " +"has the highest priority. Any conflicting keys are taken from the more " +"recent configuration while the previously existing keys are retained. The " +"example below reads in an ``override.ini`` file, which will override any " +"conflicting keys from the ``example.ini`` file." +msgstr "" + +#: ../../library/configparser.rst:155 ../../library/configparser.rst:1010 +msgid "" +"[DEFAULT]\n" +"ServerAliveInterval = -1" +msgstr "" + +#: ../../library/configparser.rst:160 ../../library/configparser.rst:1015 +msgid "" +">>> config_override = configparser.ConfigParser()\n" +">>> config_override['DEFAULT'] = {'ServerAliveInterval': '-1'}\n" +">>> with open('override.ini', 'w') as configfile:\n" +"... config_override.write(configfile)\n" +"...\n" +">>> config_override = configparser.ConfigParser()\n" +">>> config_override.read(['example.ini', 'override.ini'])\n" +"['example.ini', 'override.ini']\n" +">>> print(config_override.get('DEFAULT', 'ServerAliveInterval'))\n" +"-1" +msgstr "" + +#: ../../library/configparser.rst:174 +msgid "" +"This behaviour is equivalent to a :meth:`ConfigParser.read` call with " +"several files passed to the *filenames* parameter." +msgstr "" + +#: ../../library/configparser.rst:179 +msgid "Supported Datatypes" +msgstr "" + +#: ../../library/configparser.rst:181 +msgid "" +"Config parsers do not guess datatypes of values in configuration files, " +"always storing them internally as strings. This means that if you need " +"other datatypes, you should convert on your own:" +msgstr "" + +#: ../../library/configparser.rst:185 +msgid "" +">>> int(topsecret['Port'])\n" +"50022\n" +">>> float(topsecret['CompressionLevel'])\n" +"9.0" +msgstr "" + +#: ../../library/configparser.rst:192 +msgid "" +"Since this task is so common, config parsers provide a range of handy getter " +"methods to handle integers, floats and booleans. The last one is the most " +"interesting because simply passing the value to ``bool()`` would do no good " +"since ``bool('False')`` is still ``True``. This is why config parsers also " +"provide :meth:`~ConfigParser.getboolean`. This method is case-insensitive " +"and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " +"``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" +msgstr "" + +#: ../../library/configparser.rst:200 +msgid "" +">>> topsecret.getboolean('ForwardX11')\n" +"False\n" +">>> config['forge.example'].getboolean('ForwardX11')\n" +"True\n" +">>> config.getboolean('forge.example', 'Compression')\n" +"True" +msgstr "" + +#: ../../library/configparser.rst:209 +msgid "" +"Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " +"equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " +"methods. You can register your own converters and customize the provided " +"ones. [1]_" +msgstr "" + +#: ../../library/configparser.rst:215 +msgid "Fallback Values" +msgstr "" + +#: ../../library/configparser.rst:217 +msgid "" +"As with a dictionary, you can use a section's :meth:`~ConfigParser.get` " +"method to provide fallback values:" +msgstr "" + +#: ../../library/configparser.rst:220 +msgid "" +">>> topsecret.get('Port')\n" +"'50022'\n" +">>> topsecret.get('CompressionLevel')\n" +"'9'\n" +">>> topsecret.get('Cipher')\n" +">>> topsecret.get('Cipher', '3des-cbc')\n" +"'3des-cbc'" +msgstr "" + +#: ../../library/configparser.rst:230 +msgid "" +"Please note that default values have precedence over fallback values. For " +"instance, in our example the ``'CompressionLevel'`` key was specified only " +"in the ``'DEFAULT'`` section. If we try to get it from the section " +"``'topsecret.server.example'``, we will always get the default, even if we " +"specify a fallback:" +msgstr "" + +#: ../../library/configparser.rst:236 +msgid "" +">>> topsecret.get('CompressionLevel', '3')\n" +"'9'" +msgstr "" + +#: ../../library/configparser.rst:241 +msgid "" +"One more thing to be aware of is that the parser-" +"level :meth:`~ConfigParser.get` method provides a custom, more complex " +"interface, maintained for backwards compatibility. When using this method, " +"a fallback value can be provided via the ``fallback`` keyword-only argument:" +msgstr "" + +#: ../../library/configparser.rst:246 +msgid "" +">>> config.get('forge.example', 'monster',\n" +"... fallback='No such things as monsters')\n" +"'No such things as monsters'" +msgstr "" + +#: ../../library/configparser.rst:252 +msgid "" +"The same ``fallback`` argument can be used with " +"the :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` " +"and :meth:`~ConfigParser.getboolean` methods, for example:" +msgstr "" + +#: ../../library/configparser.rst:256 +msgid "" +">>> 'BatchMode' in topsecret\n" +"False\n" +">>> topsecret.getboolean('BatchMode', fallback=True)\n" +"True\n" +">>> config['DEFAULT']['BatchMode'] = 'no'\n" +">>> topsecret.getboolean('BatchMode', fallback=True)\n" +"False" +msgstr "" + +#: ../../library/configparser.rst:268 +msgid "Supported INI File Structure" +msgstr "" + +#: ../../library/configparser.rst:270 +msgid "" +"A configuration file consists of sections, each led by a ``[section]`` " +"header, followed by key/value entries separated by a specific string (``=`` " +"or ``:`` by default [1]_). By default, section names are case sensitive but " +"keys are not [1]_. Leading and trailing whitespace is removed from keys and " +"values. Values can be omitted if the parser is configured to allow it [1]_, " +"in which case the key/value delimiter may also be left out. Values can also " +"span multiple lines, as long as they are indented deeper than the first line " +"of the value. Depending on the parser's mode, blank lines may be treated as " +"parts of multiline values or ignored." +msgstr "" + +#: ../../library/configparser.rst:280 +msgid "" +"By default, a valid section name can be any string that does not contain '\\" +"\\n'. To change this, see :attr:`ConfigParser.SECTCRE`." +msgstr "" + +#: ../../library/configparser.rst:283 +msgid "" +"The first section name may be omitted if the parser is configured to allow " +"an unnamed top level section with ``allow_unnamed_section=True``. In this " +"case, the keys/values may be retrieved by :const:`UNNAMED_SECTION` as in " +"``config[UNNAMED_SECTION]``." +msgstr "" + +#: ../../library/configparser.rst:288 +msgid "" +"Configuration files may include comments, prefixed by specific characters " +"(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " +"otherwise empty line, possibly indented. [1]_" +msgstr "" + +#: ../../library/configparser.rst:292 ../../library/configparser.rst:376 +msgid "For example:" +msgstr "" + +#: ../../library/configparser.rst:294 +msgid "" +"[Simple Values]\n" +"key=value\n" +"spaces in keys=allowed\n" +"spaces in values=allowed as well\n" +"spaces around the delimiter = obviously\n" +"you can also use : to delimit keys from values\n" +"\n" +"[All Values Are Strings]\n" +"values like this: 1000000\n" +"or this: 3.14159265359\n" +"are they treated as numbers? : no\n" +"integers, floats and booleans are held as: strings\n" +"can use the API to get converted values directly: true\n" +"\n" +"[Multiline Values]\n" +"chorus: I'm a lumberjack, and I'm okay\n" +" I sleep all night and I work all day\n" +"\n" +"[No Values]\n" +"key_without_value\n" +"empty string value here =\n" +"\n" +"[You can use comments]\n" +"# like this\n" +"; or this\n" +"\n" +"# By default only in an empty line.\n" +"# Inline comments can be harmful because they prevent users\n" +"# from using the delimiting characters as parts of values.\n" +"# That being said, this can be customized.\n" +"\n" +" [Sections Can Be Indented]\n" +" can_values_be_as_well = True\n" +" does_that_mean_anything_special = False\n" +" purpose = formatting for readability\n" +" multiline_values = are\n" +" handled just fine as\n" +" long as they are indented\n" +" deeper than the first line\n" +" of a value\n" +" # Did I mention we can indent comments, too?" +msgstr "" + +#: ../../library/configparser.rst:342 +msgid "Unnamed Sections" +msgstr "" + +#: ../../library/configparser.rst:344 +msgid "" +"The name of the first section (or unique) may be omitted and values " +"retrieved by the :const:`UNNAMED_SECTION` attribute." +msgstr "" + +#: ../../library/configparser.rst:347 +msgid "" +">>> config = \"\"\"\n" +"... option = value\n" +"...\n" +"... [ Section 2 ]\n" +"... another = val\n" +"... \"\"\"\n" +">>> unnamed = configparser.ConfigParser(allow_unnamed_section=True)\n" +">>> unnamed.read_string(config)\n" +">>> unnamed.get(configparser.UNNAMED_SECTION, 'option')\n" +"'value'" +msgstr "" + +#: ../../library/configparser.rst:361 +msgid "Interpolation of values" +msgstr "" + +#: ../../library/configparser.rst:363 +msgid "" +"On top of the core functionality, :class:`ConfigParser` supports " +"interpolation. This means values can be preprocessed before returning them " +"from ``get()`` calls." +msgstr "" + +#: ../../library/configparser.rst:371 +msgid "" +"The default implementation used by :class:`ConfigParser`. It enables values " +"to contain format strings which refer to other values in the same section, " +"or values in the special default section [1]_. Additional default values " +"can be provided on initialization." +msgstr "" + +#: ../../library/configparser.rst:378 +msgid "" +"[Paths]\n" +"home_dir: /Users\n" +"my_dir: %(home_dir)s/lumberjack\n" +"my_pictures: %(my_dir)s/Pictures\n" +"\n" +"[Escape]\n" +"# use a %% to escape the % sign (% is the only character that needs to be " +"escaped):\n" +"gain: 80%%" +msgstr "" + +#: ../../library/configparser.rst:389 +msgid "" +"In the example above, :class:`ConfigParser` with *interpolation* set to " +"``BasicInterpolation()`` would resolve ``%(home_dir)s`` to the value of " +"``home_dir`` (``/Users`` in this case). ``%(my_dir)s`` in effect would " +"resolve to ``/Users/lumberjack``. All interpolations are done on demand so " +"keys used in the chain of references do not have to be specified in any " +"specific order in the configuration file." +msgstr "" + +#: ../../library/configparser.rst:396 +msgid "" +"With ``interpolation`` set to ``None``, the parser would simply return ``%" +"(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" +"lumberjack`` as the value of ``my_dir``." +msgstr "" + +#: ../../library/configparser.rst:404 +msgid "" +"An alternative handler for interpolation which implements a more advanced " +"syntax, used for instance in ``zc.buildout``. Extended interpolation is " +"using ``${section:option}`` to denote a value from a foreign section. " +"Interpolation can span multiple levels. For convenience, if the " +"``section:`` part is omitted, interpolation defaults to the current section " +"(and possibly the default values from the special section)." +msgstr "" + +#: ../../library/configparser.rst:411 +msgid "" +"For example, the configuration specified above with basic interpolation, " +"would look like this with extended interpolation:" +msgstr "" + +#: ../../library/configparser.rst:414 +msgid "" +"[Paths]\n" +"home_dir: /Users\n" +"my_dir: ${home_dir}/lumberjack\n" +"my_pictures: ${my_dir}/Pictures\n" +"\n" +"[Escape]\n" +"# use a $$ to escape the $ sign ($ is the only character that needs to be " +"escaped):\n" +"cost: $$80" +msgstr "" + +#: ../../library/configparser.rst:425 +msgid "Values from other sections can be fetched as well:" +msgstr "" + +#: ../../library/configparser.rst:427 +msgid "" +"[Common]\n" +"home_dir: /Users\n" +"library_dir: /Library\n" +"system_dir: /System\n" +"macports_dir: /opt/local\n" +"\n" +"[Frameworks]\n" +"Python: 3.2\n" +"path: ${Common:system_dir}/Library/Frameworks/\n" +"\n" +"[Arthur]\n" +"nickname: Two Sheds\n" +"last_name: Jackson\n" +"my_dir: ${Common:home_dir}/twosheds\n" +"my_pictures: ${my_dir}/Pictures\n" +"python_dir: ${Frameworks:path}/Python/Versions/${Frameworks:Python}" +msgstr "" + +#: ../../library/configparser.rst:447 +msgid "Mapping Protocol Access" +msgstr "" + +#: ../../library/configparser.rst:451 +msgid "" +"Mapping protocol access is a generic name for functionality that enables " +"using custom objects as if they were dictionaries. In case " +"of :mod:`configparser`, the mapping interface implementation is using the " +"``parser['section']['option']`` notation." +msgstr "" + +#: ../../library/configparser.rst:456 +msgid "" +"``parser['section']`` in particular returns a proxy for the section's data " +"in the parser. This means that the values are not copied but they are taken " +"from the original parser on demand. What's even more important is that when " +"values are changed on a section proxy, they are actually mutated in the " +"original parser." +msgstr "" + +#: ../../library/configparser.rst:462 +msgid "" +":mod:`configparser` objects behave as close to actual dictionaries as " +"possible. The mapping interface is complete and adheres to " +"the :class:`~collections.abc.MutableMapping` ABC. However, there are a few " +"differences that should be taken into account:" +msgstr "" + +#: ../../library/configparser.rst:467 +msgid "" +"By default, all keys in sections are accessible in a case-insensitive manner " +"[1]_. E.g. ``for option in parser[\"section\"]`` yields only " +"``optionxform``'ed option key names. This means lowercased keys by " +"default. At the same time, for a section that holds the key ``'a'``, both " +"expressions return ``True``::" +msgstr "" + +#: ../../library/configparser.rst:472 +msgid "" +"\"a\" in parser[\"section\"]\n" +"\"A\" in parser[\"section\"]" +msgstr "" + +#: ../../library/configparser.rst:475 +msgid "" +"All sections include ``DEFAULTSECT`` values as well which means that " +"``.clear()`` on a section may not leave the section visibly empty. This is " +"because default values cannot be deleted from the section (because " +"technically they are not there). If they are overridden in the section, " +"deleting causes the default value to be visible again. Trying to delete a " +"default value causes a :exc:`KeyError`." +msgstr "" + +#: ../../library/configparser.rst:482 +msgid "``DEFAULTSECT`` cannot be removed from the parser:" +msgstr "" + +#: ../../library/configparser.rst:484 +msgid "trying to delete it raises :exc:`ValueError`," +msgstr "" + +#: ../../library/configparser.rst:486 +msgid "``parser.clear()`` leaves it intact," +msgstr "" + +#: ../../library/configparser.rst:488 +msgid "``parser.popitem()`` never returns it." +msgstr "" + +#: ../../library/configparser.rst:490 +msgid "" +"``parser.get(section, option, **kwargs)`` - the second argument is **not** a " +"fallback value. Note however that the section-level ``get()`` methods are " +"compatible both with the mapping protocol and the classic configparser API." +msgstr "" + +#: ../../library/configparser.rst:494 +msgid "" +"``parser.items()`` is compatible with the mapping protocol (returns a list " +"of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " +"However, this method can also be invoked with arguments: " +"``parser.items(section, raw, vars)``. The latter call returns a list of " +"*option*, *value* pairs for a specified ``section``, with all interpolations " +"expanded (unless ``raw=True`` is provided)." +msgstr "" + +#: ../../library/configparser.rst:501 +msgid "" +"The mapping protocol is implemented on top of the existing legacy API so " +"that subclasses overriding the original interface still should have mappings " +"working as expected." +msgstr "" + +#: ../../library/configparser.rst:507 +msgid "Customizing Parser Behaviour" +msgstr "" + +#: ../../library/configparser.rst:509 +msgid "" +"There are nearly as many INI format variants as there are applications using " +"it. :mod:`configparser` goes a long way to provide support for the largest " +"sensible set of INI styles available. The default functionality is mainly " +"dictated by historical background and it's very likely that you will want to " +"customize some of the features." +msgstr "" + +#: ../../library/configparser.rst:515 +msgid "" +"The most common way to change the way a specific config parser works is to " +"use the :meth:`!__init__` options:" +msgstr "" + +#: ../../library/configparser.rst:518 +msgid "*defaults*, default value: ``None``" +msgstr "" + +#: ../../library/configparser.rst:520 +msgid "" +"This option accepts a dictionary of key-value pairs which will be initially " +"put in the ``DEFAULT`` section. This makes for an elegant way to support " +"concise configuration files that don't specify values which are the same as " +"the documented default." +msgstr "" + +#: ../../library/configparser.rst:525 +msgid "" +"Hint: if you want to specify default values for a specific section, " +"use :meth:`~ConfigParser.read_dict` before you read the actual file." +msgstr "" + +#: ../../library/configparser.rst:528 +msgid "*dict_type*, default value: :class:`dict`" +msgstr "" + +#: ../../library/configparser.rst:530 +msgid "" +"This option has a major impact on how the mapping protocol will behave and " +"how the written configuration files look. With the standard dictionary, " +"every section is stored in the order they were added to the parser. Same " +"goes for options within sections." +msgstr "" + +#: ../../library/configparser.rst:535 +msgid "" +"An alternative dictionary type can be used for example to sort sections and " +"options on write-back." +msgstr "" + +#: ../../library/configparser.rst:538 +msgid "" +"Please note: there are ways to add a set of key-value pairs in a single " +"operation. When you use a regular dictionary in those operations, the order " +"of the keys will be ordered. For example:" +msgstr "" + +#: ../../library/configparser.rst:542 +msgid "" +">>> parser = configparser.ConfigParser()\n" +">>> parser.read_dict({'section1': {'key1': 'value1',\n" +"... 'key2': 'value2',\n" +"... 'key3': 'value3'},\n" +"... 'section2': {'keyA': 'valueA',\n" +"... 'keyB': 'valueB',\n" +"... 'keyC': 'valueC'},\n" +"... 'section3': {'foo': 'x',\n" +"... 'bar': 'y',\n" +"... 'baz': 'z'}\n" +"... })\n" +">>> parser.sections()\n" +"['section1', 'section2', 'section3']\n" +">>> [option for option in parser['section3']]\n" +"['foo', 'bar', 'baz']" +msgstr "" + +#: ../../library/configparser.rst:560 +msgid "*allow_no_value*, default value: ``False``" +msgstr "" + +#: ../../library/configparser.rst:562 +msgid "" +"Some configuration files are known to include settings without values, but " +"which otherwise conform to the syntax supported by :mod:`configparser`. The " +"*allow_no_value* parameter to the constructor can be used to indicate that " +"such values should be accepted:" +msgstr "" + +#: ../../library/configparser.rst:567 +msgid "" +">>> import configparser\n" +"\n" +">>> sample_config = \"\"\"\n" +"... [mysqld]\n" +"... user = mysql\n" +"... pid-file = /var/run/mysqld/mysqld.pid\n" +"... skip-external-locking\n" +"... old_passwords = 1\n" +"... skip-bdb\n" +"... # we don't need ACID today\n" +"... skip-innodb\n" +"... \"\"\"\n" +">>> config = configparser.ConfigParser(allow_no_value=True)\n" +">>> config.read_string(sample_config)\n" +"\n" +">>> # Settings with values are treated as before:\n" +">>> config[\"mysqld\"][\"user\"]\n" +"'mysql'\n" +"\n" +">>> # Settings without values provide None:\n" +">>> config[\"mysqld\"][\"skip-bdb\"]\n" +"\n" +">>> # Settings which aren't specified still raise an error:\n" +">>> config[\"mysqld\"][\"does-not-exist\"]\n" +"Traceback (most recent call last):\n" +" ...\n" +"KeyError: 'does-not-exist'" +msgstr "" + +#: ../../library/configparser.rst:597 +msgid "*delimiters*, default value: ``('=', ':')``" +msgstr "" + +#: ../../library/configparser.rst:599 +msgid "" +"Delimiters are substrings that delimit keys from values within a section. " +"The first occurrence of a delimiting substring on a line is considered a " +"delimiter. This means values (but not keys) can contain the delimiters." +msgstr "" + +#: ../../library/configparser.rst:603 +msgid "" +"See also the *space_around_delimiters* argument " +"to :meth:`ConfigParser.write`." +msgstr "" + +#: ../../library/configparser.rst:606 +msgid "*comment_prefixes*, default value: ``('#', ';')``" +msgstr "" + +#: ../../library/configparser.rst:608 +msgid "*inline_comment_prefixes*, default value: ``None``" +msgstr "" + +#: ../../library/configparser.rst:610 +msgid "" +"Comment prefixes are strings that indicate the start of a valid comment " +"within a config file. *comment_prefixes* are used only on otherwise empty " +"lines (optionally indented) whereas *inline_comment_prefixes* can be used " +"after every valid value (e.g. section names, options and empty lines as " +"well). By default inline comments are disabled and ``'#'`` and ``';'`` are " +"used as prefixes for whole line comments." +msgstr "" + +#: ../../library/configparser.rst:617 +msgid "" +"In previous versions of :mod:`configparser` behaviour matched " +"``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." +msgstr "" + +#: ../../library/configparser.rst:621 +msgid "" +"Please note that config parsers don't support escaping of comment prefixes " +"so using *inline_comment_prefixes* may prevent users from specifying option " +"values with characters used as comment prefixes. When in doubt, avoid " +"setting *inline_comment_prefixes*. In any circumstances, the only way of " +"storing comment prefix characters at the beginning of a line in multiline " +"values is to interpolate the prefix, for example::" +msgstr "" + +#: ../../library/configparser.rst:628 +msgid "" +">>> from configparser import ConfigParser, ExtendedInterpolation\n" +">>> parser = ConfigParser(interpolation=ExtendedInterpolation())\n" +">>> # the default BasicInterpolation could be used as well\n" +">>> parser.read_string(\"\"\"\n" +"... [DEFAULT]\n" +"... hash = #\n" +"...\n" +"... [hashes]\n" +"... shebang =\n" +"... ${hash}!/usr/bin/env python\n" +"... ${hash} -*- coding: utf-8 -*-\n" +"...\n" +"... extensions =\n" +"... enabled_extension\n" +"... another_extension\n" +"... #disabled_by_comment\n" +"... yet_another_extension\n" +"...\n" +"... interpolation not necessary = if # is not at line start\n" +"... even in multiline values = line #1\n" +"... line #2\n" +"... line #3\n" +"... \"\"\")\n" +">>> print(parser['hashes']['shebang'])\n" +"\n" +"#!/usr/bin/env python\n" +"# -*- coding: utf-8 -*-\n" +">>> print(parser['hashes']['extensions'])\n" +"\n" +"enabled_extension\n" +"another_extension\n" +"yet_another_extension\n" +">>> print(parser['hashes']['interpolation not necessary'])\n" +"if # is not at line start\n" +">>> print(parser['hashes']['even in multiline values'])\n" +"line #1\n" +"line #2\n" +"line #3" +msgstr "" + +#: ../../library/configparser.rst:667 +msgid "*strict*, default value: ``True``" +msgstr "" + +#: ../../library/configparser.rst:669 +msgid "" +"When set to ``True``, the parser will not allow for any section or option " +"duplicates while reading from a single source " +"(using :meth:`~ConfigParser.read_file`, :meth:`~ConfigParser.read_string` " +"or :meth:`~ConfigParser.read_dict`). It is recommended to use strict " +"parsers in new applications." +msgstr "" + +#: ../../library/configparser.rst:674 +msgid "" +"In previous versions of :mod:`configparser` behaviour matched " +"``strict=False``." +msgstr "" + +#: ../../library/configparser.rst:678 +msgid "*empty_lines_in_values*, default value: ``True``" +msgstr "" + +#: ../../library/configparser.rst:680 +msgid "" +"In config parsers, values can span multiple lines as long as they are " +"indented more than the key that holds them. By default parsers also let " +"empty lines to be parts of values. At the same time, keys can be " +"arbitrarily indented themselves to improve readability. In consequence, " +"when configuration files get big and complex, it is easy for the user to " +"lose track of the file structure. Take for instance:" +msgstr "" + +#: ../../library/configparser.rst:687 +msgid "" +"[Section]\n" +"key = multiline\n" +" value with a gotcha\n" +"\n" +" this = is still a part of the multiline value of 'key'" +msgstr "" + +#: ../../library/configparser.rst:695 +msgid "" +"This can be especially problematic for the user to see if she's using a " +"proportional font to edit the file. That is why when your application does " +"not need values with empty lines, you should consider disallowing them. " +"This will make empty lines split keys every time. In the example above, it " +"would produce two keys, ``key`` and ``this``." +msgstr "" + +#: ../../library/configparser.rst:701 +msgid "" +"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: " +"``\"DEFAULT\"``)" +msgstr "" + +#: ../../library/configparser.rst:704 +msgid "" +"The convention of allowing a special section of default values for other " +"sections or interpolation purposes is a powerful concept of this library, " +"letting users create complex declarative configurations. This section is " +"normally called ``\"DEFAULT\"`` but this can be customized to point to any " +"other valid section name. Some typical values include: ``\"general\"`` or " +"``\"common\"``. The name provided is used for recognizing default sections " +"when reading from any source and is used when writing configuration back to " +"a file. Its current value can be retrieved using the " +"``parser_instance.default_section`` attribute and may be modified at runtime " +"(i.e. to convert files from one format to another)." +msgstr "" + +#: ../../library/configparser.rst:715 +msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" +msgstr "" + +#: ../../library/configparser.rst:717 +msgid "" +"Interpolation behaviour may be customized by providing a custom handler " +"through the *interpolation* argument. ``None`` can be used to turn off " +"interpolation completely, ``ExtendedInterpolation()`` provides a more " +"advanced variant inspired by ``zc.buildout``. More on the subject in the " +"`dedicated documentation section <#interpolation-of-" +"values>`_. :class:`RawConfigParser` has a default value of ``None``." +msgstr "" + +#: ../../library/configparser.rst:724 +msgid "*converters*, default value: not set" +msgstr "" + +#: ../../library/configparser.rst:726 +msgid "" +"Config parsers provide option value getters that perform type conversion. " +"By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " +"and :meth:`~ConfigParser.getboolean` are implemented. Should other getters " +"be desirable, users may define them in a subclass or pass a dictionary where " +"each key is a name of the converter and each value is a callable " +"implementing said conversion. For instance, passing ``{'decimal': " +"decimal.Decimal}`` would add :meth:`!getdecimal` on both the parser object " +"and all section proxies. In other words, it will be possible to write both " +"``parser_instance.getdecimal('section', 'key', fallback=0)`` and " +"``parser_instance['section'].getdecimal('key', 0)``." +msgstr "" + +#: ../../library/configparser.rst:737 +msgid "" +"If the converter needs to access the state of the parser, it can be " +"implemented as a method on a config parser subclass. If the name of this " +"method starts with ``get``, it will be available on all section proxies, in " +"the dict-compatible form (see the ``getdecimal()`` example above)." +msgstr "" + +#: ../../library/configparser.rst:742 +msgid "" +"More advanced customization may be achieved by overriding default values of " +"these parser attributes. The defaults are defined on the classes, so they " +"may be overridden by subclasses or by attribute assignment." +msgstr "" + +#: ../../library/configparser.rst:748 +msgid "" +"By default when using :meth:`~ConfigParser.getboolean`, config parsers " +"consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " +"``'on'`` and the following values ``False``: ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. You can override this by specifying a custom dictionary of " +"strings and their Boolean outcomes. For example:" +msgstr "" + +#: ../../library/configparser.rst:754 +msgid "" +">>> custom = configparser.ConfigParser()\n" +">>> custom['section1'] = {'funky': 'nope'}\n" +">>> custom['section1'].getboolean('funky')\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: Not a boolean: nope\n" +">>> custom.BOOLEAN_STATES = {'sure': True, 'nope': False}\n" +">>> custom['section1'].getboolean('funky')\n" +"False" +msgstr "" + +#: ../../library/configparser.rst:766 +msgid "" +"Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" +"``disabled``." +msgstr "" + +#: ../../library/configparser.rst:772 +msgid "" +"This method transforms option names on every read, get, or set operation. " +"The default converts the name to lowercase. This also means that when a " +"configuration file gets written, all keys will be lowercase. Override this " +"method if that's unsuitable. For example:" +msgstr "" + +#: ../../library/configparser.rst:778 +msgid "" +">>> config = \"\"\"\n" +"... [Section1]\n" +"... Key = Value\n" +"...\n" +"... [Section2]\n" +"... AnotherKey = Value\n" +"... \"\"\"\n" +">>> typical = configparser.ConfigParser()\n" +">>> typical.read_string(config)\n" +">>> list(typical['Section1'].keys())\n" +"['key']\n" +">>> list(typical['Section2'].keys())\n" +"['anotherkey']\n" +">>> custom = configparser.RawConfigParser()\n" +">>> custom.optionxform = lambda option: option\n" +">>> custom.read_string(config)\n" +">>> list(custom['Section1'].keys())\n" +"['Key']\n" +">>> list(custom['Section2'].keys())\n" +"['AnotherKey']" +msgstr "" + +#: ../../library/configparser.rst:802 +msgid "" +"The optionxform function transforms option names to a canonical form. This " +"should be an idempotent function: if the name is already in canonical form, " +"it should be returned unchanged." +msgstr "" + +#: ../../library/configparser.rst:809 +msgid "" +"A compiled regular expression used to parse section headers. The default " +"matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " +"part of the section name, thus ``[ larch ]`` will be read as a section of " +"name ``\" larch \"``. Override this attribute if that's unsuitable. For " +"example:" +msgstr "" + +#: ../../library/configparser.rst:815 +msgid "" +">>> import re\n" +">>> config = \"\"\"\n" +"... [Section 1]\n" +"... option = value\n" +"...\n" +"... [ Section 2 ]\n" +"... another = val\n" +"... \"\"\"\n" +">>> typical = configparser.ConfigParser()\n" +">>> typical.read_string(config)\n" +">>> typical.sections()\n" +"['Section 1', ' Section 2 ']\n" +">>> custom = configparser.ConfigParser()\n" +">>> custom.SECTCRE = re.compile(r\"\\[ *(?P
[^]]+?) *\\]\")\n" +">>> custom.read_string(config)\n" +">>> custom.sections()\n" +"['Section 1', 'Section 2']" +msgstr "" + +#: ../../library/configparser.rst:837 +msgid "" +"While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " +"option lines, it's not recommended to override it because that would " +"interfere with constructor options *allow_no_value* and *delimiters*." +msgstr "" + +#: ../../library/configparser.rst:843 +msgid "Legacy API Examples" +msgstr "" + +#: ../../library/configparser.rst:845 +msgid "" +"Mainly because of backwards compatibility concerns, :mod:`configparser` " +"provides also a legacy API with explicit ``get``/``set`` methods. While " +"there are valid use cases for the methods outlined below, mapping protocol " +"access is preferred for new projects. The legacy API is at times more " +"advanced, low-level and downright counterintuitive." +msgstr "" + +#: ../../library/configparser.rst:851 +msgid "An example of writing to a configuration file::" +msgstr "" + +#: ../../library/configparser.rst:853 +msgid "" +"import configparser\n" +"\n" +"config = configparser.RawConfigParser()\n" +"\n" +"# Please note that using RawConfigParser's set functions, you can assign\n" +"# non-string values to keys internally, but will receive an error when\n" +"# attempting to write to a file or when you get it in non-raw mode. Setting\n" +"# values using the mapping protocol or ConfigParser's set() does not allow\n" +"# such assignments to take place.\n" +"config.add_section('Section1')\n" +"config.set('Section1', 'an_int', '15')\n" +"config.set('Section1', 'a_bool', 'true')\n" +"config.set('Section1', 'a_float', '3.1415')\n" +"config.set('Section1', 'baz', 'fun')\n" +"config.set('Section1', 'bar', 'Python')\n" +"config.set('Section1', 'foo', '%(bar)s is %(baz)s!')\n" +"\n" +"# Writing our configuration file to 'example.cfg'\n" +"with open('example.cfg', 'w') as configfile:\n" +" config.write(configfile)" +msgstr "" + +#: ../../library/configparser.rst:874 +msgid "An example of reading the configuration file again::" +msgstr "" + +#: ../../library/configparser.rst:876 +msgid "" +"import configparser\n" +"\n" +"config = configparser.RawConfigParser()\n" +"config.read('example.cfg')\n" +"\n" +"# getfloat() raises an exception if the value is not a float\n" +"# getint() and getboolean() also do this for their respective types\n" +"a_float = config.getfloat('Section1', 'a_float')\n" +"an_int = config.getint('Section1', 'an_int')\n" +"print(a_float + an_int)\n" +"\n" +"# Notice that the next output does not interpolate '%(bar)s' or '%(baz)s'.\n" +"# This is because we are using a RawConfigParser().\n" +"if config.getboolean('Section1', 'a_bool'):\n" +" print(config.get('Section1', 'foo'))" +msgstr "" + +#: ../../library/configparser.rst:892 +msgid "To get interpolation, use :class:`ConfigParser`::" +msgstr "" + +#: ../../library/configparser.rst:894 +msgid "" +"import configparser\n" +"\n" +"cfg = configparser.ConfigParser()\n" +"cfg.read('example.cfg')\n" +"\n" +"# Set the optional *raw* argument of get() to True if you wish to disable\n" +"# interpolation in a single get operation.\n" +"print(cfg.get('Section1', 'foo', raw=False)) # -> \"Python is fun!\"\n" +"print(cfg.get('Section1', 'foo', raw=True)) # -> \"%(bar)s is %(baz)s!\"\n" +"\n" +"# The optional *vars* argument is a dict with members that will take\n" +"# precedence in interpolation.\n" +"print(cfg.get('Section1', 'foo', vars={'bar': 'Documentation',\n" +" 'baz': 'evil'}))\n" +"\n" +"# The optional *fallback* argument can be used to provide a fallback value\n" +"print(cfg.get('Section1', 'foo'))\n" +" # -> \"Python is fun!\"\n" +"\n" +"print(cfg.get('Section1', 'foo', fallback='Monty is not.'))\n" +" # -> \"Python is fun!\"\n" +"\n" +"print(cfg.get('Section1', 'monster', fallback='No such things as " +"monsters.'))\n" +" # -> \"No such things as monsters.\"\n" +"\n" +"# A bare print(cfg.get('Section1', 'monster')) would raise NoOptionError\n" +"# but we can also use:\n" +"\n" +"print(cfg.get('Section1', 'monster', fallback=None))\n" +" # -> None" +msgstr "" + +#: ../../library/configparser.rst:925 +msgid "" +"Default values are available in both types of ConfigParsers. They are used " +"in interpolation if an option used is not defined elsewhere. ::" +msgstr "" + +#: ../../library/configparser.rst:928 +msgid "" +"import configparser\n" +"\n" +"# New instance with 'bar' and 'baz' defaulting to 'Life' and 'hard' each\n" +"config = configparser.ConfigParser({'bar': 'Life', 'baz': 'hard'})\n" +"config.read('example.cfg')\n" +"\n" +"print(config.get('Section1', 'foo')) # -> \"Python is fun!\"\n" +"config.remove_option('Section1', 'bar')\n" +"config.remove_option('Section1', 'baz')\n" +"print(config.get('Section1', 'foo')) # -> \"Life is hard!\"" +msgstr "" + +#: ../../library/configparser.rst:943 +msgid "ConfigParser Objects" +msgstr "" + +#: ../../library/configparser.rst:953 +msgid "" +"The main configuration parser. When *defaults* is given, it is initialized " +"into the dictionary of intrinsic defaults. When *dict_type* is given, it " +"will be used to create the dictionary objects for the list of sections, for " +"the options within a section, and for the default values." +msgstr "" + +#: ../../library/configparser.rst:958 +msgid "" +"When *delimiters* is given, it is used as the set of substrings that divide " +"keys from values. When *comment_prefixes* is given, it will be used as the " +"set of substrings that prefix comments in otherwise empty lines. Comments " +"can be indented. When *inline_comment_prefixes* is given, it will be used " +"as the set of substrings that prefix comments in non-empty lines." +msgstr "" + +#: ../../library/configparser.rst:964 +msgid "" +"When *strict* is ``True`` (the default), the parser won't allow for any " +"section or option duplicates while reading from a single source (file, " +"string or dictionary), raising :exc:`DuplicateSectionError` " +"or :exc:`DuplicateOptionError`. When *empty_lines_in_values* is ``False`` " +"(default: ``True``), each empty line marks the end of an option. Otherwise, " +"internal empty lines of a multiline option are kept as part of the value. " +"When *allow_no_value* is ``True`` (default: ``False``), options without " +"values are accepted; the value held for these is ``None`` and they are " +"serialized without the trailing delimiter." +msgstr "" + +#: ../../library/configparser.rst:974 +msgid "" +"When *default_section* is given, it specifies the name for the special " +"section holding default values for other sections and interpolation purposes " +"(normally named ``\"DEFAULT\"``). This value can be retrieved and changed " +"at runtime using the ``default_section`` instance attribute. This won't re-" +"evaluate an already parsed config file, but will be used when writing parsed " +"settings to a new config file." +msgstr "" + +#: ../../library/configparser.rst:981 +msgid "" +"Interpolation behaviour may be customized by providing a custom handler " +"through the *interpolation* argument. ``None`` can be used to turn off " +"interpolation completely, ``ExtendedInterpolation()`` provides a more " +"advanced variant inspired by ``zc.buildout``. More on the subject in the " +"`dedicated documentation section <#interpolation-of-values>`_." +msgstr "" + +#: ../../library/configparser.rst:987 +msgid "" +"All option names used in interpolation will be passed through " +"the :meth:`optionxform` method just like any other option name reference. " +"For example, using the default implementation of :meth:`optionxform` (which " +"converts option names to lower case), the values ``foo %(bar)s`` and ``foo %" +"(BAR)s`` are equivalent." +msgstr "" + +#: ../../library/configparser.rst:993 +msgid "" +"When *converters* is given, it should be a dictionary where each key " +"represents the name of a type converter and each value is a callable " +"implementing the conversion from string to the desired datatype. Every " +"converter gets its own corresponding :meth:`!get*` method on the parser " +"object and section proxies." +msgstr "" + +#: ../../library/configparser.rst:999 +msgid "" +"When *allow_unnamed_section* is ``True`` (default: ``False``), the first " +"section name can be omitted. See the `\"Unnamed Sections\" section <#unnamed-" +"sections>`_." +msgstr "" + +#: ../../library/configparser.rst:1028 +msgid "The default *dict_type* is :class:`collections.OrderedDict`." +msgstr "" + +#: ../../library/configparser.rst:1031 ../../library/configparser.rst:1324 +msgid "" +"*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " +"*empty_lines_in_values*, *default_section* and *interpolation* were added." +msgstr "" + +#: ../../library/configparser.rst:1036 ../../library/configparser.rst:1329 +msgid "The *converters* argument was added." +msgstr "" + +#: ../../library/configparser.rst:1039 +msgid "" +"The *defaults* argument is read with :meth:`read_dict`, providing consistent " +"behavior across the parser: non-string keys and values are implicitly " +"converted to strings." +msgstr "" + +#: ../../library/configparser.rst:1044 ../../library/configparser.rst:1332 +msgid "" +"The default *dict_type* is :class:`dict`, since it now preserves insertion " +"order." +msgstr "" + +#: ../../library/configparser.rst:1048 +msgid "" +"Raise a :exc:`MultilineContinuationError` when *allow_no_value* is ``True``, " +"and a key without a value is continued with an indented line." +msgstr "" + +#: ../../library/configparser.rst:1052 ../../library/configparser.rst:1336 +msgid "The *allow_unnamed_section* argument was added." +msgstr "" + +#: ../../library/configparser.rst:1057 +msgid "Return a dictionary containing the instance-wide defaults." +msgstr "" + +#: ../../library/configparser.rst:1062 +msgid "" +"Return a list of the sections available; the *default section* is not " +"included in the list." +msgstr "" + +#: ../../library/configparser.rst:1068 +msgid "" +"Add a section named *section* to the instance. If a section by the given " +"name already exists, :exc:`DuplicateSectionError` is raised. If the " +"*default section* name is passed, :exc:`ValueError` is raised. The name of " +"the section must be a string; if not, :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/configparser.rst:1073 +msgid "Non-string section names raise :exc:`TypeError`." +msgstr "" + +#: ../../library/configparser.rst:1079 +msgid "" +"Indicates whether the named *section* is present in the configuration. The " +"*default section* is not acknowledged." +msgstr "" + +#: ../../library/configparser.rst:1085 +msgid "Return a list of options available in the specified *section*." +msgstr "" + +#: ../../library/configparser.rst:1090 +msgid "" +"If the given *section* exists, and contains the given *option*, " +"return :const:`True`; otherwise return :const:`False`. If the specified " +"*section* is :const:`None` or an empty string, DEFAULT is assumed." +msgstr "" + +#: ../../library/configparser.rst:1097 +msgid "" +"Attempt to read and parse an iterable of filenames, returning a list of " +"filenames which were successfully parsed." +msgstr "" + +#: ../../library/configparser.rst:1100 +msgid "" +"If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " +"object`, it is treated as a single filename. If a file named in *filenames* " +"cannot be opened, that file will be ignored. This is designed so that you " +"can specify an iterable of potential configuration file locations (for " +"example, the current directory, the user's home directory, and some system-" +"wide directory), and all existing configuration files in the iterable will " +"be read." +msgstr "" + +#: ../../library/configparser.rst:1109 +msgid "" +"If none of the named files exist, the :class:`ConfigParser` instance will " +"contain an empty dataset. An application which requires initial values to " +"be loaded from a file should load the required file or files " +"using :meth:`read_file` before calling :meth:`read` for any optional files::" +msgstr "" + +#: ../../library/configparser.rst:1115 +msgid "" +"import configparser, os\n" +"\n" +"config = configparser.ConfigParser()\n" +"config.read_file(open('defaults.cfg'))\n" +"config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')],\n" +" encoding='cp1250')" +msgstr "" + +#: ../../library/configparser.rst:1122 +msgid "" +"Added the *encoding* parameter. Previously, all files were read using the " +"default encoding for :func:`open`." +msgstr "" + +#: ../../library/configparser.rst:1126 +msgid "The *filenames* parameter accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/configparser.rst:1129 +msgid "The *filenames* parameter accepts a :class:`bytes` object." +msgstr "" + +#: ../../library/configparser.rst:1135 +msgid "" +"Read and parse configuration data from *f* which must be an iterable " +"yielding Unicode strings (for example files opened in text mode)." +msgstr "" + +#: ../../library/configparser.rst:1138 +msgid "" +"Optional argument *source* specifies the name of the file being read. If " +"not given and *f* has a :attr:`!name` attribute, that is used for *source*; " +"the default is ``''``." +msgstr "" + +#: ../../library/configparser.rst:1142 +msgid "Replaces :meth:`!readfp`." +msgstr "" + +#: ../../library/configparser.rst:1147 +msgid "Parse configuration data from a string." +msgstr "" + +#: ../../library/configparser.rst:1149 +msgid "" +"Optional argument *source* specifies a context-specific name of the string " +"passed. If not given, ``''`` is used. This should commonly be a " +"filesystem path or a URL." +msgstr "" + +#: ../../library/configparser.rst:1158 +msgid "" +"Load configuration from any object that provides a dict-like ``items()`` " +"method. Keys are section names, values are dictionaries with keys and " +"values that should be present in the section. If the used dictionary type " +"preserves order, sections and their keys will be added in order. Values are " +"automatically converted to strings." +msgstr "" + +#: ../../library/configparser.rst:1164 +msgid "" +"Optional argument *source* specifies a context-specific name of the " +"dictionary passed. If not given, ```` is used." +msgstr "" + +#: ../../library/configparser.rst:1167 +msgid "This method can be used to copy state between parsers." +msgstr "" + +#: ../../library/configparser.rst:1174 +msgid "" +"Get an *option* value for the named *section*. If *vars* is provided, it " +"must be a dictionary. The *option* is looked up in *vars* (if provided), " +"*section*, and in *DEFAULTSECT* in that order. If the key is not found and " +"*fallback* is provided, it is used as a fallback value. ``None`` can be " +"provided as a *fallback* value." +msgstr "" + +#: ../../library/configparser.rst:1180 +msgid "" +"All the ``'%'`` interpolations are expanded in the return values, unless the " +"*raw* argument is true. Values for interpolation keys are looked up in the " +"same manner as the option." +msgstr "" + +#: ../../library/configparser.rst:1184 +msgid "" +"Arguments *raw*, *vars* and *fallback* are keyword only to protect users " +"from trying to use the third argument as the *fallback* fallback (especially " +"when using the mapping protocol)." +msgstr "" + +#: ../../library/configparser.rst:1192 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to an integer. See :meth:`get` for explanation of *raw*, *vars* and " +"*fallback*." +msgstr "" + +#: ../../library/configparser.rst:1199 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to a floating-point number. See :meth:`get` for explanation of *raw*, " +"*vars* and *fallback*." +msgstr "" + +#: ../../library/configparser.rst:1206 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to a Boolean value. Note that the accepted values for the option are " +"``'1'``, ``'yes'``, ``'true'``, and ``'on'``, which cause this method to " +"return ``True``, and ``'0'``, ``'no'``, ``'false'``, and ``'off'``, which " +"cause it to return ``False``. These string values are checked in a case-" +"insensitive manner. Any other value will cause it to " +"raise :exc:`ValueError`. See :meth:`get` for explanation of *raw*, *vars* " +"and *fallback*." +msgstr "" + +#: ../../library/configparser.rst:1219 +msgid "" +"When *section* is not given, return a list of *section_name*, " +"*section_proxy* pairs, including DEFAULTSECT." +msgstr "" + +#: ../../library/configparser.rst:1222 +msgid "" +"Otherwise, return a list of *name*, *value* pairs for the options in the " +"given *section*. Optional arguments have the same meaning as for " +"the :meth:`get` method." +msgstr "" + +#: ../../library/configparser.rst:1226 +msgid "" +"Items present in *vars* no longer appear in the result. The previous " +"behaviour mixed actual parser options with variables provided for " +"interpolation." +msgstr "" + +#: ../../library/configparser.rst:1234 +msgid "" +"If the given section exists, set the given option to the specified value; " +"otherwise raise :exc:`NoSectionError`. *option* and *value* must be " +"strings; if not, :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/configparser.rst:1241 +msgid "" +"Write a representation of the configuration to the specified :term:`file " +"object`, which must be opened in text mode (accepting strings). This " +"representation can be parsed by a future :meth:`read` call. If " +"*space_around_delimiters* is true, delimiters between keys and values are " +"surrounded by spaces." +msgstr "" + +#: ../../library/configparser.rst:1247 +msgid "" +"Raises InvalidWriteError if this would write a representation which cannot " +"be accurately parsed by a future :meth:`read` call from this parser." +msgstr "" + +#: ../../library/configparser.rst:1253 +msgid "" +"Comments in the original configuration file are not preserved when writing " +"the configuration back. What is considered a comment, depends on the given " +"values for *comment_prefix* and *inline_comment_prefix*." +msgstr "" + +#: ../../library/configparser.rst:1261 +msgid "" +"Remove the specified *option* from the specified *section*. If the section " +"does not exist, raise :exc:`NoSectionError`. If the option existed to be " +"removed, return :const:`True`; otherwise return :const:`False`." +msgstr "" + +#: ../../library/configparser.rst:1269 +msgid "" +"Remove the specified *section* from the configuration. If the section in " +"fact existed, return ``True``. Otherwise return ``False``." +msgstr "" + +#: ../../library/configparser.rst:1275 +msgid "" +"Transforms the option name *option* as found in an input file or as passed " +"in by client code to the form that should be used in the internal " +"structures. The default implementation returns a lower-case version of " +"*option*; subclasses may override this or client code can set an attribute " +"of this name on instances to affect this behavior." +msgstr "" + +#: ../../library/configparser.rst:1281 +msgid "" +"You don't need to subclass the parser to use this method, you can also set " +"it on an instance, to a function that takes a string argument and returns a " +"string. Setting it to ``str``, for example, would make option names case " +"sensitive::" +msgstr "" + +#: ../../library/configparser.rst:1286 +msgid "" +"cfgparser = ConfigParser()\n" +"cfgparser.optionxform = str" +msgstr "" + +#: ../../library/configparser.rst:1289 +msgid "" +"Note that when reading configuration files, whitespace around the option " +"names is stripped before :meth:`optionxform` is called." +msgstr "" + +#: ../../library/configparser.rst:1295 +msgid "" +"A special object representing a section name used to reference the unnamed " +"section (see :ref:`unnamed-sections`)." +msgstr "" + +#: ../../library/configparser.rst:1300 +msgid "" +"The maximum depth for recursive interpolation " +"for :meth:`~configparser.ConfigParser.get` when the *raw* parameter is " +"false. This is relevant only when the default *interpolation* is used." +msgstr "" + +#: ../../library/configparser.rst:1308 +msgid "RawConfigParser Objects" +msgstr "" + +#: ../../library/configparser.rst:1319 +msgid "" +"Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " +"by default and allows for non-string section names, option names, and values " +"via its unsafe ``add_section`` and ``set`` methods, as well as the legacy " +"``defaults=`` keyword argument handling." +msgstr "" + +#: ../../library/configparser.rst:1340 +msgid "" +"Consider using :class:`ConfigParser` instead which checks types of the " +"values to be stored internally. If you don't want interpolation, you can " +"use ``ConfigParser(interpolation=None)``." +msgstr "" + +#: ../../library/configparser.rst:1347 +msgid "" +"Add a section named *section* or :const:`UNNAMED_SECTION` to the instance." +msgstr "" + +#: ../../library/configparser.rst:1349 +msgid "" +"If the given section already exists, :exc:`DuplicateSectionError` is raised. " +"If the *default section* name is passed, :exc:`ValueError` is raised. " +"If :const:`UNNAMED_SECTION` is passed and support is " +"disabled, :exc:`UnnamedSectionDisabledError` is raised." +msgstr "" + +#: ../../library/configparser.rst:1354 +msgid "" +"Type of *section* is not checked which lets users create non-string named " +"sections. This behaviour is unsupported and may cause internal errors." +msgstr "" + +#: ../../library/configparser.rst:1357 +msgid "Added support for :const:`UNNAMED_SECTION`." +msgstr "" + +#: ../../library/configparser.rst:1363 +msgid "" +"If the given section exists, set the given option to the specified value; " +"otherwise raise :exc:`NoSectionError`. While it is possible to " +"use :class:`RawConfigParser` (or :class:`ConfigParser` with *raw* parameters " +"set to true) for *internal* storage of non-string values, full functionality " +"(including interpolation and output to files) can only be achieved using " +"string values." +msgstr "" + +#: ../../library/configparser.rst:1370 +msgid "" +"This method lets users assign non-string values to keys internally. This " +"behaviour is unsupported and will cause errors when attempting to write to a " +"file or get it in non-raw mode. **Use the mapping protocol API** which does " +"not allow such assignments to take place." +msgstr "" + +#: ../../library/configparser.rst:1377 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/configparser.rst:1381 +msgid "Base class for all other :mod:`configparser` exceptions." +msgstr "" + +#: ../../library/configparser.rst:1386 +msgid "Exception raised when a specified section is not found." +msgstr "" + +#: ../../library/configparser.rst:1391 +msgid "" +"Exception raised if :meth:`~ConfigParser.add_section` is called with the " +"name of a section that is already present or in strict parsers when a " +"section if found more than once in a single input file, string or dictionary." +msgstr "" + +#: ../../library/configparser.rst:1395 +msgid "" +"Added the optional *source* and *lineno* attributes and parameters " +"to :meth:`!__init__`." +msgstr "" + +#: ../../library/configparser.rst:1402 +msgid "" +"Exception raised by strict parsers if a single option appears twice during " +"reading from a single file, string or dictionary. This catches misspellings " +"and case sensitivity-related errors, e.g. a dictionary may have two keys " +"representing the same case-insensitive configuration key." +msgstr "" + +#: ../../library/configparser.rst:1410 +msgid "" +"Exception raised when a specified option is not found in the specified " +"section." +msgstr "" + +#: ../../library/configparser.rst:1416 +msgid "" +"Base class for exceptions raised when problems occur performing string " +"interpolation." +msgstr "" + +#: ../../library/configparser.rst:1422 +msgid "" +"Exception raised when string interpolation cannot be completed because the " +"number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass " +"of :exc:`InterpolationError`." +msgstr "" + +#: ../../library/configparser.rst:1429 +msgid "" +"Exception raised when an option referenced from a value does not exist. " +"Subclass of :exc:`InterpolationError`." +msgstr "" + +#: ../../library/configparser.rst:1435 +msgid "" +"Exception raised when the source text into which substitutions are made does " +"not conform to the required syntax. Subclass of :exc:`InterpolationError`." +msgstr "" + +#: ../../library/configparser.rst:1441 +msgid "" +"Exception raised when attempting to parse a file which has no section " +"headers." +msgstr "" + +#: ../../library/configparser.rst:1446 +msgid "Exception raised when errors occur attempting to parse a file." +msgstr "" + +#: ../../library/configparser.rst:1448 +msgid "" +"The ``filename`` attribute and :meth:`!__init__` constructor argument were " +"removed. They have been available using the name ``source`` since 3.2." +msgstr "" + +#: ../../library/configparser.rst:1454 +msgid "" +"Exception raised when a key without a corresponding value is continued with " +"an indented line." +msgstr "" + +#: ../../library/configparser.rst:1461 +msgid "" +"Exception raised when attempting to use the :const:`UNNAMED_SECTION` without " +"enabling it." +msgstr "" + +#: ../../library/configparser.rst:1468 +msgid "" +"Exception raised when an attempted :meth:`ConfigParser.write` would not be " +"parsed accurately with a future :meth:`ConfigParser.read` call." +msgstr "" + +#: ../../library/configparser.rst:1471 +msgid "" +"Ex: Writing a key beginning with the :attr:`ConfigParser.SECTCRE` pattern " +"would parse as a section header when read. Attempting to write this will " +"raise this exception." +msgstr "" + +#: ../../library/configparser.rst:1478 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/configparser.rst:1479 +msgid "" +"Config parsers allow for heavy customization. If you are interested in " +"changing the behaviour outlined by the footnote reference, consult the " +"`Customizing Parser Behaviour`_ section." +msgstr "" + +#: ../../library/configparser.rst:16 +msgid ".ini" +msgstr "" + +#: ../../library/configparser.rst:16 +msgid "file" +msgstr "" + +#: ../../library/configparser.rst:16 +msgid "configuration" +msgstr "" + +#: ../../library/configparser.rst:16 +msgid "ini file" +msgstr "" + +#: ../../library/configparser.rst:16 +msgid "Windows ini file" +msgstr "" + +#: ../../library/configparser.rst:367 +msgid "% (percent)" +msgstr "" + +#: ../../library/configparser.rst:367 ../../library/configparser.rst:400 +msgid "interpolation in configuration files" +msgstr "" + +#: ../../library/configparser.rst:400 +msgid "$ (dollar)" +msgstr "" diff --git a/library/constants.po b/library/constants.po new file mode 100644 index 0000000..6e23183 --- /dev/null +++ b/library/constants.po @@ -0,0 +1,160 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/constants.rst:4 +msgid "Built-in Constants" +msgstr "" + +#: ../../library/constants.rst:6 +msgid "A small number of constants live in the built-in namespace. They are:" +msgstr "" + +#: ../../library/constants.rst:10 +msgid "" +"The false value of the :class:`bool` type. Assignments to ``False`` are " +"illegal and raise a :exc:`SyntaxError`." +msgstr "" + +#: ../../library/constants.rst:16 +msgid "" +"The true value of the :class:`bool` type. Assignments to ``True`` are " +"illegal and raise a :exc:`SyntaxError`." +msgstr "" + +#: ../../library/constants.rst:22 +msgid "" +"An object frequently used to represent the absence of a value, as when " +"default arguments are not passed to a function. Assignments to ``None`` are " +"illegal and raise a :exc:`SyntaxError`. ``None`` is the sole instance of " +"the :data:`~types.NoneType` type." +msgstr "" + +#: ../../library/constants.rst:30 +msgid "" +"A special value which should be returned by the binary special methods " +"(e.g. :meth:`~object.__eq__`, :meth:`~object.__lt__`, :meth:`~object.__add__`, :meth:`~object.__rsub__`, " +"etc.) to indicate that the operation is not implemented with respect to the " +"other type; may be returned by the in-place binary special methods " +"(e.g. :meth:`~object.__imul__`, :meth:`~object.__iand__`, etc.) for the same " +"purpose. It should not be evaluated in a boolean context. :data:`!" +"NotImplemented` is the sole instance of the :data:`types.NotImplementedType` " +"type." +msgstr "" + +#: ../../library/constants.rst:40 +msgid "" +"When a binary (or in-place) method returns :data:`!NotImplemented` the " +"interpreter will try the reflected operation on the other type (or some " +"other fallback, depending on the operator). If all attempts return :data:`!" +"NotImplemented`, the interpreter will raise an appropriate exception. " +"Incorrectly returning :data:`!NotImplemented` will result in a misleading " +"error message or the :data:`!NotImplemented` value being returned to Python " +"code." +msgstr "" + +#: ../../library/constants.rst:47 +msgid "See :ref:`implementing-the-arithmetic-operations` for examples." +msgstr "" + +#: ../../library/constants.rst:51 +msgid "" +":data:`!NotImplemented` and :exc:`!NotImplementedError` are not " +"interchangeable. This constant should only be used as described above; " +"see :exc:`NotImplementedError` for details on correct usage of the exception." +msgstr "" + +#: ../../library/constants.rst:56 +msgid "Evaluating :data:`!NotImplemented` in a boolean context was deprecated." +msgstr "" + +#: ../../library/constants.rst:59 +msgid "" +"Evaluating :data:`!NotImplemented` in a boolean context now raises " +"a :exc:`TypeError`. It previously evaluated to :const:`True` and emitted " +"a :exc:`DeprecationWarning` since Python 3.9." +msgstr "" + +#: ../../library/constants.rst:68 +msgid "" +"The same as the ellipsis literal \"``...``\". Special value used mostly in " +"conjunction with extended slicing syntax for user-defined container data " +"types. ``Ellipsis`` is the sole instance of the :data:`types.EllipsisType` " +"type." +msgstr "" + +#: ../../library/constants.rst:75 +msgid "" +"This constant is true if Python was not started with an :option:`-O` option. " +"See also the :keyword:`assert` statement." +msgstr "" + +#: ../../library/constants.rst:81 +msgid "" +"The names :data:`None`, :data:`False`, :data:`True` and :data:`__debug__` " +"cannot be reassigned (assignments to them, even as an attribute name, " +"raise :exc:`SyntaxError`), so they can be considered \"true\" constants." +msgstr "" + +#: ../../library/constants.rst:89 +msgid "Constants added by the :mod:`site` module" +msgstr "" + +#: ../../library/constants.rst:91 +msgid "" +"The :mod:`site` module (which is imported automatically during startup, " +"except if the :option:`-S` command-line option is given) adds several " +"constants to the built-in namespace. They are useful for the interactive " +"interpreter shell and should not be used in programs." +msgstr "" + +#: ../../library/constants.rst:99 +msgid "" +"Objects that when printed, print a message like \"Use quit() or Ctrl-D (i.e. " +"EOF) to exit\", and when called, raise :exc:`SystemExit` with the specified " +"exit code." +msgstr "" + +#: ../../library/constants.rst:106 +msgid "" +"Object that when printed, prints the message \"Type help() for interactive " +"help, or help(object) for help about object.\", and when called, acts as " +"described :func:`elsewhere `." +msgstr "" + +#: ../../library/constants.rst:113 +msgid "" +"Objects that when printed or called, print the text of copyright or credits, " +"respectively." +msgstr "" + +#: ../../library/constants.rst:118 +msgid "" +"Object that when printed, prints the message \"Type license() to see the " +"full license text\", and when called, displays the full license text in a " +"pager-like fashion (one screen at a time)." +msgstr "" + +#: ../../library/constants.rst:65 +msgid "..." +msgstr "" + +#: ../../library/constants.rst:65 +msgid "ellipsis literal" +msgstr "" diff --git a/library/contextlib.po b/library/contextlib.po new file mode 100644 index 0000000..6fc5d64 --- /dev/null +++ b/library/contextlib.po @@ -0,0 +1,1416 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/contextlib.rst:2 +msgid "" +":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" +msgstr "" + +#: ../../library/contextlib.rst:7 +msgid "**Source code:** :source:`Lib/contextlib.py`" +msgstr "" + +#: ../../library/contextlib.rst:11 +msgid "" +"This module provides utilities for common tasks involving " +"the :keyword:`with` statement. For more information see " +"also :ref:`typecontextmanager` and :ref:`context-managers`." +msgstr "" + +#: ../../library/contextlib.rst:17 +msgid "Utilities" +msgstr "" + +#: ../../library/contextlib.rst:19 +msgid "Functions and classes provided:" +msgstr "" + +#: ../../library/contextlib.rst:23 +msgid "" +"An :term:`abstract base class` for classes that " +"implement :meth:`object.__enter__` and :meth:`object.__exit__`. A default " +"implementation for :meth:`object.__enter__` is provided which returns " +"``self`` while :meth:`object.__exit__` is an abstract method which by " +"default returns ``None``. See also the definition " +"of :ref:`typecontextmanager`." +msgstr "" + +#: ../../library/contextlib.rst:34 +msgid "" +"An :term:`abstract base class` for classes that " +"implement :meth:`object.__aenter__` and :meth:`object.__aexit__`. A default " +"implementation for :meth:`object.__aenter__` is provided which returns " +"``self`` while :meth:`object.__aexit__` is an abstract method which by " +"default returns ``None``. See also the definition of :ref:`async-context-" +"managers`." +msgstr "" + +#: ../../library/contextlib.rst:46 +msgid "" +"This function is a :term:`decorator` that can be used to define a factory " +"function for :keyword:`with` statement context managers, without needing to " +"create a class or separate :meth:`~object.__enter__` " +"and :meth:`~object.__exit__` methods." +msgstr "" + +#: ../../library/contextlib.rst:50 +msgid "" +"While many objects natively support use in with statements, sometimes a " +"resource needs to be managed that isn't a context manager in its own right, " +"and doesn't implement a ``close()`` method for use with " +"``contextlib.closing``." +msgstr "" + +#: ../../library/contextlib.rst:54 +msgid "" +"An abstract example would be the following to ensure correct resource " +"management::" +msgstr "" + +#: ../../library/contextlib.rst:57 +msgid "" +"from contextlib import contextmanager\n" +"\n" +"@contextmanager\n" +"def managed_resource(*args, **kwds):\n" +" # Code to acquire resource, e.g.:\n" +" resource = acquire_resource(*args, **kwds)\n" +" try:\n" +" yield resource\n" +" finally:\n" +" # Code to release resource, e.g.:\n" +" release_resource(resource)" +msgstr "" + +#: ../../library/contextlib.rst:69 +msgid "The function can then be used like this::" +msgstr "" + +#: ../../library/contextlib.rst:71 +msgid "" +">>> with managed_resource(timeout=3600) as resource:\n" +"... # Resource is released at the end of this block,\n" +"... # even if code in the block raises an exception" +msgstr "" + +#: ../../library/contextlib.rst:75 +msgid "" +"The function being decorated must return a :term:`generator`-iterator when " +"called. This iterator must yield exactly one value, which will be bound to " +"the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." +msgstr "" + +#: ../../library/contextlib.rst:79 +msgid "" +"At the point where the generator yields, the block nested in " +"the :keyword:`with` statement is executed. The generator is then resumed " +"after the block is exited. If an unhandled exception occurs in the block, it " +"is reraised inside the generator at the point where the yield occurred. " +"Thus, you can use a :keyword:`try`...\\ :keyword:`except`..." +"\\ :keyword:`finally` statement to trap the error (if any), or ensure that " +"some cleanup takes place. If an exception is trapped merely in order to log " +"it or to perform some action (rather than to suppress it entirely), the " +"generator must reraise that exception. Otherwise the generator context " +"manager will indicate to the :keyword:`!with` statement that the exception " +"has been handled, and execution will resume with the statement immediately " +"following the :keyword:`!with` statement." +msgstr "" + +#: ../../library/contextlib.rst:91 +msgid "" +":func:`contextmanager` uses :class:`ContextDecorator` so the context " +"managers it creates can be used as decorators as well as in :keyword:`with` " +"statements. When used as a decorator, a new generator instance is implicitly " +"created on each function call (this allows the otherwise \"one-shot\" " +"context managers created by :func:`contextmanager` to meet the requirement " +"that context managers support multiple invocations in order to be used as " +"decorators)." +msgstr "" + +#: ../../library/contextlib.rst:98 +msgid "Use of :class:`ContextDecorator`." +msgstr "" + +#: ../../library/contextlib.rst:104 +msgid "" +"Similar to :func:`~contextlib.contextmanager`, but creates " +"an :ref:`asynchronous context manager `." +msgstr "" + +#: ../../library/contextlib.rst:107 +msgid "" +"This function is a :term:`decorator` that can be used to define a factory " +"function for :keyword:`async with` statement asynchronous context managers, " +"without needing to create a class or separate :meth:`~object.__aenter__` " +"and :meth:`~object.__aexit__` methods. It must be applied to " +"an :term:`asynchronous generator` function." +msgstr "" + +#: ../../library/contextlib.rst:113 +msgid "A simple example::" +msgstr "" + +#: ../../library/contextlib.rst:115 +msgid "" +"from contextlib import asynccontextmanager\n" +"\n" +"@asynccontextmanager\n" +"async def get_connection():\n" +" conn = await acquire_db_connection()\n" +" try:\n" +" yield conn\n" +" finally:\n" +" await release_db_connection(conn)\n" +"\n" +"async def get_all_users():\n" +" async with get_connection() as conn:\n" +" return conn.query('SELECT ...')" +msgstr "" + +#: ../../library/contextlib.rst:131 +msgid "" +"Context managers defined with :func:`asynccontextmanager` can be used either " +"as decorators or with :keyword:`async with` statements::" +msgstr "" + +#: ../../library/contextlib.rst:134 +msgid "" +"import time\n" +"from contextlib import asynccontextmanager\n" +"\n" +"@asynccontextmanager\n" +"async def timeit():\n" +" now = time.monotonic()\n" +" try:\n" +" yield\n" +" finally:\n" +" print(f'it took {time.monotonic() - now}s to run')\n" +"\n" +"@timeit()\n" +"async def main():\n" +" # ... async code ..." +msgstr "" + +#: ../../library/contextlib.rst:149 +msgid "" +"When used as a decorator, a new generator instance is implicitly created on " +"each function call. This allows the otherwise \"one-shot\" context managers " +"created by :func:`asynccontextmanager` to meet the requirement that context " +"managers support multiple invocations in order to be used as decorators." +msgstr "" + +#: ../../library/contextlib.rst:154 +msgid "" +"Async context managers created with :func:`asynccontextmanager` can be used " +"as decorators." +msgstr "" + +#: ../../library/contextlib.rst:161 +msgid "" +"Return a context manager that closes *thing* upon completion of the block. " +"This is basically equivalent to::" +msgstr "" + +#: ../../library/contextlib.rst:164 +msgid "" +"from contextlib import contextmanager\n" +"\n" +"@contextmanager\n" +"def closing(thing):\n" +" try:\n" +" yield thing\n" +" finally:\n" +" thing.close()" +msgstr "" + +#: ../../library/contextlib.rst:173 +msgid "And lets you write code like this::" +msgstr "" + +#: ../../library/contextlib.rst:175 +msgid "" +"from contextlib import closing\n" +"from urllib.request import urlopen\n" +"\n" +"with closing(urlopen('https://www.python.org')) as page:\n" +" for line in page:\n" +" print(line)" +msgstr "" + +#: ../../library/contextlib.rst:182 +msgid "" +"without needing to explicitly close ``page``. Even if an error occurs, " +"``page.close()`` will be called when the :keyword:`with` block is exited." +msgstr "" + +#: ../../library/contextlib.rst:187 +msgid "" +"Most types managing resources support the :term:`context manager` protocol, " +"which closes *thing* on leaving the :keyword:`with` statement. As " +"such, :func:`!closing` is most useful for third party types that don't " +"support context managers. This example is purely for illustration purposes, " +"as :func:`~urllib.request.urlopen` would normally be used in a context " +"manager." +msgstr "" + +#: ../../library/contextlib.rst:196 +msgid "" +"Return an async context manager that calls the ``aclose()`` method of " +"*thing* upon completion of the block. This is basically equivalent to::" +msgstr "" + +#: ../../library/contextlib.rst:199 +msgid "" +"from contextlib import asynccontextmanager\n" +"\n" +"@asynccontextmanager\n" +"async def aclosing(thing):\n" +" try:\n" +" yield thing\n" +" finally:\n" +" await thing.aclose()" +msgstr "" + +#: ../../library/contextlib.rst:208 +msgid "" +"Significantly, ``aclosing()`` supports deterministic cleanup of async " +"generators when they happen to exit early by :keyword:`break` or an " +"exception. For example::" +msgstr "" + +#: ../../library/contextlib.rst:212 +msgid "" +"from contextlib import aclosing\n" +"\n" +"async with aclosing(my_generator()) as values:\n" +" async for value in values:\n" +" if value == 42:\n" +" break" +msgstr "" + +#: ../../library/contextlib.rst:219 +msgid "" +"This pattern ensures that the generator's async exit code is executed in the " +"same context as its iterations (so that exceptions and context variables " +"work as expected, and the exit code isn't run after the lifetime of some " +"task it depends on)." +msgstr "" + +#: ../../library/contextlib.rst:231 +msgid "" +"Return a context manager that returns *enter_result* from ``__enter__``, but " +"otherwise does nothing. It is intended to be used as a stand-in for an " +"optional context manager, for example::" +msgstr "" + +#: ../../library/contextlib.rst:235 +msgid "" +"def myfunction(arg, ignore_exceptions=False):\n" +" if ignore_exceptions:\n" +" # Use suppress to ignore all exceptions.\n" +" cm = contextlib.suppress(Exception)\n" +" else:\n" +" # Do not ignore any exceptions, cm has no effect.\n" +" cm = contextlib.nullcontext()\n" +" with cm:\n" +" # Do something" +msgstr "" + +#: ../../library/contextlib.rst:245 +msgid "An example using *enter_result*::" +msgstr "" + +#: ../../library/contextlib.rst:247 +msgid "" +"def process_file(file_or_path):\n" +" if isinstance(file_or_path, str):\n" +" # If string, open file\n" +" cm = open(file_or_path)\n" +" else:\n" +" # Caller is responsible for closing file\n" +" cm = nullcontext(file_or_path)\n" +"\n" +" with cm as file:\n" +" # Perform processing on the file" +msgstr "" + +#: ../../library/contextlib.rst:258 +msgid "" +"It can also be used as a stand-in for :ref:`asynchronous context managers " +"`::" +msgstr "" + +#: ../../library/contextlib.rst:261 +msgid "" +"async def send_http(session=None):\n" +" if not session:\n" +" # If no http session, create it with aiohttp\n" +" cm = aiohttp.ClientSession()\n" +" else:\n" +" # Caller is responsible for closing the session\n" +" cm = nullcontext(session)\n" +"\n" +" async with cm as session:\n" +" # Send http requests with session" +msgstr "" + +#: ../../library/contextlib.rst:274 +msgid ":term:`asynchronous context manager` support was added." +msgstr "" + +#: ../../library/contextlib.rst:281 +msgid "" +"Return a context manager that suppresses any of the specified exceptions if " +"they occur in the body of a :keyword:`!with` statement and then resumes " +"execution with the first statement following the end of the :keyword:`!with` " +"statement." +msgstr "" + +#: ../../library/contextlib.rst:286 +msgid "" +"As with any other mechanism that completely suppresses exceptions, this " +"context manager should be used only to cover very specific errors where " +"silently continuing with program execution is known to be the right thing to " +"do." +msgstr "" + +#: ../../library/contextlib.rst:291 +msgid "For example::" +msgstr "" + +#: ../../library/contextlib.rst:293 +msgid "" +"from contextlib import suppress\n" +"\n" +"with suppress(FileNotFoundError):\n" +" os.remove('somefile.tmp')\n" +"\n" +"with suppress(FileNotFoundError):\n" +" os.remove('someotherfile.tmp')" +msgstr "" + +#: ../../library/contextlib.rst:301 +msgid "This code is equivalent to::" +msgstr "" + +#: ../../library/contextlib.rst:303 +msgid "" +"try:\n" +" os.remove('somefile.tmp')\n" +"except FileNotFoundError:\n" +" pass\n" +"\n" +"try:\n" +" os.remove('someotherfile.tmp')\n" +"except FileNotFoundError:\n" +" pass" +msgstr "" + +#: ../../library/contextlib.rst:313 ../../library/contextlib.rst:362 +#: ../../library/contextlib.rst:372 ../../library/contextlib.rst:389 +msgid "This context manager is :ref:`reentrant `." +msgstr "" + +#: ../../library/contextlib.rst:315 +msgid "" +"If the code within the :keyword:`!with` block raises " +"a :exc:`BaseExceptionGroup`, suppressed exceptions are removed from the " +"group. Any exceptions of the group which are not suppressed are re-raised " +"in a new group which is created using the original " +"group's :meth:`~BaseExceptionGroup.derive` method." +msgstr "" + +#: ../../library/contextlib.rst:323 +msgid "" +"``suppress`` now supports suppressing exceptions raised as part of " +"a :exc:`BaseExceptionGroup`." +msgstr "" + +#: ../../library/contextlib.rst:329 +msgid "" +"Context manager for temporarily redirecting :data:`sys.stdout` to another " +"file or file-like object." +msgstr "" + +#: ../../library/contextlib.rst:332 +msgid "" +"This tool adds flexibility to existing functions or classes whose output is " +"hardwired to stdout." +msgstr "" + +#: ../../library/contextlib.rst:335 +msgid "" +"For example, the output of :func:`help` normally is sent to *sys.stdout*. " +"You can capture that output in a string by redirecting the output to " +"an :class:`io.StringIO` object. The replacement stream is returned from the " +"``__enter__`` method and so is available as the target of " +"the :keyword:`with` statement::" +msgstr "" + +#: ../../library/contextlib.rst:341 +msgid "" +"with redirect_stdout(io.StringIO()) as f:\n" +" help(pow)\n" +"s = f.getvalue()" +msgstr "" + +#: ../../library/contextlib.rst:345 +msgid "" +"To send the output of :func:`help` to a file on disk, redirect the output to " +"a regular file::" +msgstr "" + +#: ../../library/contextlib.rst:348 +msgid "" +"with open('help.txt', 'w') as f:\n" +" with redirect_stdout(f):\n" +" help(pow)" +msgstr "" + +#: ../../library/contextlib.rst:352 +msgid "To send the output of :func:`help` to *sys.stderr*::" +msgstr "" + +#: ../../library/contextlib.rst:354 +msgid "" +"with redirect_stdout(sys.stderr):\n" +" help(pow)" +msgstr "" + +#: ../../library/contextlib.rst:357 +msgid "" +"Note that the global side effect on :data:`sys.stdout` means that this " +"context manager is not suitable for use in library code and most threaded " +"applications. It also has no effect on the output of subprocesses. However, " +"it is still a useful approach for many utility scripts." +msgstr "" + +#: ../../library/contextlib.rst:369 +msgid "" +"Similar to :func:`~contextlib.redirect_stdout` but " +"redirecting :data:`sys.stderr` to another file or file-like object." +msgstr "" + +#: ../../library/contextlib.rst:379 +msgid "" +"Non parallel-safe context manager to change the current working directory. " +"As this changes a global state, the working directory, it is not suitable " +"for use in most threaded or async contexts. It is also not suitable for most " +"non-linear code execution, like generators, where the program execution is " +"temporarily relinquished -- unless explicitly desired, you should not yield " +"when this context manager is active." +msgstr "" + +#: ../../library/contextlib.rst:386 +msgid "" +"This is a simple wrapper around :func:`~os.chdir`, it changes the current " +"working directory upon entering and restores the old one on exit." +msgstr "" + +#: ../../library/contextlib.rst:396 +msgid "" +"A base class that enables a context manager to also be used as a decorator." +msgstr "" + +#: ../../library/contextlib.rst:398 +msgid "" +"Context managers inheriting from ``ContextDecorator`` have to implement " +"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " +"exception handling even when used as a decorator." +msgstr "" + +#: ../../library/contextlib.rst:402 +msgid "" +"``ContextDecorator`` is used by :func:`contextmanager`, so you get this " +"functionality automatically." +msgstr "" + +#: ../../library/contextlib.rst:405 +msgid "Example of ``ContextDecorator``::" +msgstr "" + +#: ../../library/contextlib.rst:407 +msgid "" +"from contextlib import ContextDecorator\n" +"\n" +"class mycontext(ContextDecorator):\n" +" def __enter__(self):\n" +" print('Starting')\n" +" return self\n" +"\n" +" def __exit__(self, *exc):\n" +" print('Finishing')\n" +" return False" +msgstr "" + +#: ../../library/contextlib.rst:418 ../../library/contextlib.rst:490 +msgid "The class can then be used like this::" +msgstr "" + +#: ../../library/contextlib.rst:420 +msgid "" +">>> @mycontext()\n" +"... def function():\n" +"... print('The bit in the middle')\n" +"...\n" +">>> function()\n" +"Starting\n" +"The bit in the middle\n" +"Finishing\n" +"\n" +">>> with mycontext():\n" +"... print('The bit in the middle')\n" +"...\n" +"Starting\n" +"The bit in the middle\n" +"Finishing" +msgstr "" + +#: ../../library/contextlib.rst:436 +msgid "" +"This change is just syntactic sugar for any construct of the following form::" +msgstr "" + +#: ../../library/contextlib.rst:438 +msgid "" +"def f():\n" +" with cm():\n" +" # Do stuff" +msgstr "" + +#: ../../library/contextlib.rst:442 +msgid "``ContextDecorator`` lets you instead write::" +msgstr "" + +#: ../../library/contextlib.rst:444 +msgid "" +"@cm()\n" +"def f():\n" +" # Do stuff" +msgstr "" + +#: ../../library/contextlib.rst:448 +msgid "" +"It makes it clear that the ``cm`` applies to the whole function, rather than " +"just a piece of it (and saving an indentation level is nice, too)." +msgstr "" + +#: ../../library/contextlib.rst:451 +msgid "" +"Existing context managers that already have a base class can be extended by " +"using ``ContextDecorator`` as a mixin class::" +msgstr "" + +#: ../../library/contextlib.rst:454 +msgid "" +"from contextlib import ContextDecorator\n" +"\n" +"class mycontext(ContextBaseClass, ContextDecorator):\n" +" def __enter__(self):\n" +" return self\n" +"\n" +" def __exit__(self, *exc):\n" +" return False" +msgstr "" + +#: ../../library/contextlib.rst:464 +msgid "" +"As the decorated function must be able to be called multiple times, the " +"underlying context manager must support use in multiple :keyword:`with` " +"statements. If this is not the case, then the original construct with the " +"explicit :keyword:`!with` statement inside the function should be used." +msgstr "" + +#: ../../library/contextlib.rst:474 +msgid "" +"Similar to :class:`ContextDecorator` but only for asynchronous functions." +msgstr "" + +#: ../../library/contextlib.rst:476 +msgid "Example of ``AsyncContextDecorator``::" +msgstr "" + +#: ../../library/contextlib.rst:478 +msgid "" +"from asyncio import run\n" +"from contextlib import AsyncContextDecorator\n" +"\n" +"class mycontext(AsyncContextDecorator):\n" +" async def __aenter__(self):\n" +" print('Starting')\n" +" return self\n" +"\n" +" async def __aexit__(self, *exc):\n" +" print('Finishing')\n" +" return False" +msgstr "" + +#: ../../library/contextlib.rst:492 +msgid "" +">>> @mycontext()\n" +"... async def function():\n" +"... print('The bit in the middle')\n" +"...\n" +">>> run(function())\n" +"Starting\n" +"The bit in the middle\n" +"Finishing\n" +"\n" +">>> async def function():\n" +"... async with mycontext():\n" +"... print('The bit in the middle')\n" +"...\n" +">>> run(function())\n" +"Starting\n" +"The bit in the middle\n" +"Finishing" +msgstr "" + +#: ../../library/contextlib.rst:515 +msgid "" +"A context manager that is designed to make it easy to programmatically " +"combine other context managers and cleanup functions, especially those that " +"are optional or otherwise driven by input data." +msgstr "" + +#: ../../library/contextlib.rst:519 +msgid "" +"For example, a set of files may easily be handled in a single with statement " +"as follows::" +msgstr "" + +#: ../../library/contextlib.rst:522 +msgid "" +"with ExitStack() as stack:\n" +" files = [stack.enter_context(open(fname)) for fname in filenames]\n" +" # All opened files will automatically be closed at the end of\n" +" # the with statement, even if attempts to open files later\n" +" # in the list raise an exception" +msgstr "" + +#: ../../library/contextlib.rst:528 +msgid "" +"The :meth:`~object.__enter__` method returns the :class:`ExitStack` " +"instance, and performs no additional operations." +msgstr "" + +#: ../../library/contextlib.rst:531 +msgid "" +"Each instance maintains a stack of registered callbacks that are called in " +"reverse order when the instance is closed (either explicitly or implicitly " +"at the end of a :keyword:`with` statement). Note that callbacks are *not* " +"invoked implicitly when the context stack instance is garbage collected." +msgstr "" + +#: ../../library/contextlib.rst:536 +msgid "" +"This stack model is used so that context managers that acquire their " +"resources in their ``__init__`` method (such as file objects) can be handled " +"correctly." +msgstr "" + +#: ../../library/contextlib.rst:540 +msgid "" +"Since registered callbacks are invoked in the reverse order of registration, " +"this ends up behaving as if multiple nested :keyword:`with` statements had " +"been used with the registered set of callbacks. This even extends to " +"exception handling - if an inner callback suppresses or replaces an " +"exception, then outer callbacks will be passed arguments based on that " +"updated state." +msgstr "" + +#: ../../library/contextlib.rst:547 +msgid "" +"This is a relatively low level API that takes care of the details of " +"correctly unwinding the stack of exit callbacks. It provides a suitable " +"foundation for higher level context managers that manipulate the exit stack " +"in application specific ways." +msgstr "" + +#: ../../library/contextlib.rst:556 +msgid "" +"Enters a new context manager and adds its :meth:`~object.__exit__` method to " +"the callback stack. The return value is the result of the context manager's " +"own :meth:`~object.__enter__` method." +msgstr "" + +#: ../../library/contextlib.rst:560 +msgid "" +"These context managers may suppress exceptions just as they normally would " +"if used directly as part of a :keyword:`with` statement." +msgstr "" + +#: ../../library/contextlib.rst:563 +msgid "" +"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not a " +"context manager." +msgstr "" + +#: ../../library/contextlib.rst:569 +msgid "" +"Adds a context manager's :meth:`~object.__exit__` method to the callback " +"stack." +msgstr "" + +#: ../../library/contextlib.rst:571 +msgid "" +"As ``__enter__`` is *not* invoked, this method can be used to cover part of " +"an :meth:`~object.__enter__` implementation with a context manager's " +"own :meth:`~object.__exit__` method." +msgstr "" + +#: ../../library/contextlib.rst:575 +msgid "" +"If passed an object that is not a context manager, this method assumes it is " +"a callback with the same signature as a context " +"manager's :meth:`~object.__exit__` method and adds it directly to the " +"callback stack." +msgstr "" + +#: ../../library/contextlib.rst:579 +msgid "" +"By returning true values, these callbacks can suppress exceptions the same " +"way context manager :meth:`~object.__exit__` methods can." +msgstr "" + +#: ../../library/contextlib.rst:582 +msgid "" +"The passed in object is returned from the function, allowing this method to " +"be used as a function decorator." +msgstr "" + +#: ../../library/contextlib.rst:587 +msgid "" +"Accepts an arbitrary callback function and arguments and adds it to the " +"callback stack." +msgstr "" + +#: ../../library/contextlib.rst:590 +msgid "" +"Unlike the other methods, callbacks added this way cannot suppress " +"exceptions (as they are never passed the exception details)." +msgstr "" + +#: ../../library/contextlib.rst:593 +msgid "" +"The passed in callback is returned from the function, allowing this method " +"to be used as a function decorator." +msgstr "" + +#: ../../library/contextlib.rst:598 +msgid "" +"Transfers the callback stack to a fresh :class:`ExitStack` instance and " +"returns it. No callbacks are invoked by this operation - instead, they will " +"now be invoked when the new stack is closed (either explicitly or implicitly " +"at the end of a :keyword:`with` statement)." +msgstr "" + +#: ../../library/contextlib.rst:603 +msgid "" +"For example, a group of files can be opened as an \"all or nothing\" " +"operation as follows::" +msgstr "" + +#: ../../library/contextlib.rst:606 +msgid "" +"with ExitStack() as stack:\n" +" files = [stack.enter_context(open(fname)) for fname in filenames]\n" +" # Hold onto the close method, but don't call it yet.\n" +" close_files = stack.pop_all().close\n" +" # If opening any file fails, all previously opened files will be\n" +" # closed automatically. If all files are opened successfully,\n" +" # they will remain open even after the with statement ends.\n" +" # close_files() can then be invoked explicitly to close them all." +msgstr "" + +#: ../../library/contextlib.rst:617 +msgid "" +"Immediately unwinds the callback stack, invoking callbacks in the reverse " +"order of registration. For any context managers and exit callbacks " +"registered, the arguments passed in will indicate that no exception occurred." +msgstr "" + +#: ../../library/contextlib.rst:624 +msgid "" +"An :ref:`asynchronous context manager `, similar " +"to :class:`ExitStack`, that supports combining both synchronous and " +"asynchronous context managers, as well as having coroutines for cleanup " +"logic." +msgstr "" + +#: ../../library/contextlib.rst:629 +msgid "" +"The :meth:`~ExitStack.close` method is not implemented; :meth:`aclose` must " +"be used instead." +msgstr "" + +#: ../../library/contextlib.rst:635 +msgid "" +"Similar to :meth:`ExitStack.enter_context` but expects an asynchronous " +"context manager." +msgstr "" + +#: ../../library/contextlib.rst:638 +msgid "" +"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not an " +"asynchronous context manager." +msgstr "" + +#: ../../library/contextlib.rst:644 +msgid "" +"Similar to :meth:`ExitStack.push` but expects either an asynchronous context " +"manager or a coroutine function." +msgstr "" + +#: ../../library/contextlib.rst:649 +msgid "Similar to :meth:`ExitStack.callback` but expects a coroutine function." +msgstr "" + +#: ../../library/contextlib.rst:654 +msgid "Similar to :meth:`ExitStack.close` but properly handles awaitables." +msgstr "" + +#: ../../library/contextlib.rst:656 +msgid "Continuing the example for :func:`asynccontextmanager`::" +msgstr "" + +#: ../../library/contextlib.rst:658 +msgid "" +"async with AsyncExitStack() as stack:\n" +" connections = [await stack.enter_async_context(get_connection())\n" +" for i in range(5)]\n" +" # All opened connections will automatically be released at the end of\n" +" # the async with statement, even if attempts to open a connection\n" +" # later in the list raise an exception." +msgstr "" + +#: ../../library/contextlib.rst:668 +msgid "Examples and Recipes" +msgstr "" + +#: ../../library/contextlib.rst:670 +msgid "" +"This section describes some examples and recipes for making effective use of " +"the tools provided by :mod:`contextlib`." +msgstr "" + +#: ../../library/contextlib.rst:675 +msgid "Supporting a variable number of context managers" +msgstr "" + +#: ../../library/contextlib.rst:677 +msgid "" +"The primary use case for :class:`ExitStack` is the one given in the class " +"documentation: supporting a variable number of context managers and other " +"cleanup operations in a single :keyword:`with` statement. The variability " +"may come from the number of context managers needed being driven by user " +"input (such as opening a user specified collection of files), or from some " +"of the context managers being optional::" +msgstr "" + +#: ../../library/contextlib.rst:684 +msgid "" +"with ExitStack() as stack:\n" +" for resource in resources:\n" +" stack.enter_context(resource)\n" +" if need_special_resource():\n" +" special = acquire_special_resource()\n" +" stack.callback(release_special_resource, special)\n" +" # Perform operations that use the acquired resources" +msgstr "" + +#: ../../library/contextlib.rst:692 +msgid "" +"As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " +"statements to manage arbitrary resources that don't natively support the " +"context management protocol." +msgstr "" + +#: ../../library/contextlib.rst:698 +msgid "Catching exceptions from ``__enter__`` methods" +msgstr "" + +#: ../../library/contextlib.rst:700 +msgid "" +"It is occasionally desirable to catch exceptions from an ``__enter__`` " +"method implementation, *without* inadvertently catching exceptions from " +"the :keyword:`with` statement body or the context manager's ``__exit__`` " +"method. By using :class:`ExitStack` the steps in the context management " +"protocol can be separated slightly in order to allow this::" +msgstr "" + +#: ../../library/contextlib.rst:706 +msgid "" +"stack = ExitStack()\n" +"try:\n" +" x = stack.enter_context(cm)\n" +"except Exception:\n" +" # handle __enter__ exception\n" +"else:\n" +" with stack:\n" +" # Handle normal case" +msgstr "" + +#: ../../library/contextlib.rst:715 +msgid "" +"Actually needing to do this is likely to indicate that the underlying API " +"should be providing a direct resource management interface for use " +"with :keyword:`try`/:keyword:`except`/:keyword:`finally` statements, but not " +"all APIs are well designed in that regard. When a context manager is the " +"only resource management API provided, then :class:`ExitStack` can make it " +"easier to handle various situations that can't be handled directly in " +"a :keyword:`with` statement." +msgstr "" + +#: ../../library/contextlib.rst:725 +msgid "Cleaning up in an ``__enter__`` implementation" +msgstr "" + +#: ../../library/contextlib.rst:727 +msgid "" +"As noted in the documentation of :meth:`ExitStack.push`, this method can be " +"useful in cleaning up an already allocated resource if later steps in " +"the :meth:`~object.__enter__` implementation fail." +msgstr "" + +#: ../../library/contextlib.rst:731 +msgid "" +"Here's an example of doing this for a context manager that accepts resource " +"acquisition and release functions, along with an optional validation " +"function, and maps them to the context management protocol::" +msgstr "" + +#: ../../library/contextlib.rst:735 +msgid "" +"from contextlib import contextmanager, AbstractContextManager, ExitStack\n" +"\n" +"class ResourceManager(AbstractContextManager):\n" +"\n" +" def __init__(self, acquire_resource, release_resource, " +"check_resource_ok=None):\n" +" self.acquire_resource = acquire_resource\n" +" self.release_resource = release_resource\n" +" if check_resource_ok is None:\n" +" def check_resource_ok(resource):\n" +" return True\n" +" self.check_resource_ok = check_resource_ok\n" +"\n" +" @contextmanager\n" +" def _cleanup_on_error(self):\n" +" with ExitStack() as stack:\n" +" stack.push(self)\n" +" yield\n" +" # The validation check passed and didn't raise an exception\n" +" # Accordingly, we want to keep the resource, and pass it\n" +" # back to our caller\n" +" stack.pop_all()\n" +"\n" +" def __enter__(self):\n" +" resource = self.acquire_resource()\n" +" with self._cleanup_on_error():\n" +" if not self.check_resource_ok(resource):\n" +" msg = \"Failed validation for {!r}\"\n" +" raise RuntimeError(msg.format(resource))\n" +" return resource\n" +"\n" +" def __exit__(self, *exc_details):\n" +" # We don't need to duplicate any of our resource release logic\n" +" self.release_resource()" +msgstr "" + +#: ../../library/contextlib.rst:771 +msgid "Replacing any use of ``try-finally`` and flag variables" +msgstr "" + +#: ../../library/contextlib.rst:773 +msgid "" +"A pattern you will sometimes see is a ``try-finally`` statement with a flag " +"variable to indicate whether or not the body of the ``finally`` clause " +"should be executed. In its simplest form (that can't already be handled just " +"by using an ``except`` clause instead), it looks something like this::" +msgstr "" + +#: ../../library/contextlib.rst:778 +msgid "" +"cleanup_needed = True\n" +"try:\n" +" result = perform_operation()\n" +" if result:\n" +" cleanup_needed = False\n" +"finally:\n" +" if cleanup_needed:\n" +" cleanup_resources()" +msgstr "" + +#: ../../library/contextlib.rst:787 +msgid "" +"As with any ``try`` statement based code, this can cause problems for " +"development and review, because the setup code and the cleanup code can end " +"up being separated by arbitrarily long sections of code." +msgstr "" + +#: ../../library/contextlib.rst:791 +msgid "" +":class:`ExitStack` makes it possible to instead register a callback for " +"execution at the end of a ``with`` statement, and then later decide to skip " +"executing that callback::" +msgstr "" + +#: ../../library/contextlib.rst:795 +msgid "" +"from contextlib import ExitStack\n" +"\n" +"with ExitStack() as stack:\n" +" stack.callback(cleanup_resources)\n" +" result = perform_operation()\n" +" if result:\n" +" stack.pop_all()" +msgstr "" + +#: ../../library/contextlib.rst:803 +msgid "" +"This allows the intended cleanup behaviour to be made explicit up front, " +"rather than requiring a separate flag variable." +msgstr "" + +#: ../../library/contextlib.rst:806 +msgid "" +"If a particular application uses this pattern a lot, it can be simplified " +"even further by means of a small helper class::" +msgstr "" + +#: ../../library/contextlib.rst:809 +msgid "" +"from contextlib import ExitStack\n" +"\n" +"class Callback(ExitStack):\n" +" def __init__(self, callback, /, *args, **kwds):\n" +" super().__init__()\n" +" self.callback(callback, *args, **kwds)\n" +"\n" +" def cancel(self):\n" +" self.pop_all()\n" +"\n" +"with Callback(cleanup_resources) as cb:\n" +" result = perform_operation()\n" +" if result:\n" +" cb.cancel()" +msgstr "" + +#: ../../library/contextlib.rst:824 +msgid "" +"If the resource cleanup isn't already neatly bundled into a standalone " +"function, then it is still possible to use the decorator form " +"of :meth:`ExitStack.callback` to declare the resource cleanup in advance::" +msgstr "" + +#: ../../library/contextlib.rst:829 +msgid "" +"from contextlib import ExitStack\n" +"\n" +"with ExitStack() as stack:\n" +" @stack.callback\n" +" def cleanup_resources():\n" +" ...\n" +" result = perform_operation()\n" +" if result:\n" +" stack.pop_all()" +msgstr "" + +#: ../../library/contextlib.rst:839 +msgid "" +"Due to the way the decorator protocol works, a callback function declared " +"this way cannot take any parameters. Instead, any resources to be released " +"must be accessed as closure variables." +msgstr "" + +#: ../../library/contextlib.rst:845 +msgid "Using a context manager as a function decorator" +msgstr "" + +#: ../../library/contextlib.rst:847 +msgid "" +":class:`ContextDecorator` makes it possible to use a context manager in both " +"an ordinary ``with`` statement and also as a function decorator." +msgstr "" + +#: ../../library/contextlib.rst:850 +msgid "" +"For example, it is sometimes useful to wrap functions or groups of " +"statements with a logger that can track the time of entry and time of exit. " +"Rather than writing both a function decorator and a context manager for the " +"task, inheriting from :class:`ContextDecorator` provides both capabilities " +"in a single definition::" +msgstr "" + +#: ../../library/contextlib.rst:856 +msgid "" +"from contextlib import ContextDecorator\n" +"import logging\n" +"\n" +"logging.basicConfig(level=logging.INFO)\n" +"\n" +"class track_entry_and_exit(ContextDecorator):\n" +" def __init__(self, name):\n" +" self.name = name\n" +"\n" +" def __enter__(self):\n" +" logging.info('Entering: %s', self.name)\n" +"\n" +" def __exit__(self, exc_type, exc, exc_tb):\n" +" logging.info('Exiting: %s', self.name)" +msgstr "" + +#: ../../library/contextlib.rst:871 +msgid "Instances of this class can be used as both a context manager::" +msgstr "" + +#: ../../library/contextlib.rst:873 +msgid "" +"with track_entry_and_exit('widget loader'):\n" +" print('Some time consuming activity goes here')\n" +" load_widget()" +msgstr "" + +#: ../../library/contextlib.rst:877 +msgid "And also as a function decorator::" +msgstr "" + +#: ../../library/contextlib.rst:879 +msgid "" +"@track_entry_and_exit('widget loader')\n" +"def activity():\n" +" print('Some time consuming activity goes here')\n" +" load_widget()" +msgstr "" + +#: ../../library/contextlib.rst:884 +msgid "" +"Note that there is one additional limitation when using context managers as " +"function decorators: there's no way to access the return value " +"of :meth:`~object.__enter__`. If that value is needed, then it is still " +"necessary to use an explicit ``with`` statement." +msgstr "" + +#: ../../library/contextlib.rst:891 +msgid ":pep:`343` - The \"with\" statement" +msgstr "" + +#: ../../library/contextlib.rst:892 +msgid "" +"The specification, background, and examples for the Python :keyword:`with` " +"statement." +msgstr "" + +#: ../../library/contextlib.rst:898 +msgid "Single use, reusable and reentrant context managers" +msgstr "" + +#: ../../library/contextlib.rst:900 +msgid "" +"Most context managers are written in a way that means they can only be used " +"effectively in a :keyword:`with` statement once. These single use context " +"managers must be created afresh each time they're used - attempting to use " +"them a second time will trigger an exception or otherwise not work correctly." +msgstr "" + +#: ../../library/contextlib.rst:906 +msgid "" +"This common limitation means that it is generally advisable to create " +"context managers directly in the header of the :keyword:`with` statement " +"where they are used (as shown in all of the usage examples above)." +msgstr "" + +#: ../../library/contextlib.rst:910 +msgid "" +"Files are an example of effectively single use context managers, since the " +"first :keyword:`with` statement will close the file, preventing any further " +"IO operations using that file object." +msgstr "" + +#: ../../library/contextlib.rst:914 +msgid "" +"Context managers created using :func:`contextmanager` are also single use " +"context managers, and will complain about the underlying generator failing " +"to yield if an attempt is made to use them a second time::" +msgstr "" + +#: ../../library/contextlib.rst:918 +msgid "" +">>> from contextlib import contextmanager\n" +">>> @contextmanager\n" +"... def singleuse():\n" +"... print(\"Before\")\n" +"... yield\n" +"... print(\"After\")\n" +"...\n" +">>> cm = singleuse()\n" +">>> with cm:\n" +"... pass\n" +"...\n" +"Before\n" +"After\n" +">>> with cm:\n" +"... pass\n" +"...\n" +"Traceback (most recent call last):\n" +" ...\n" +"RuntimeError: generator didn't yield" +msgstr "" + +#: ../../library/contextlib.rst:942 +msgid "Reentrant context managers" +msgstr "" + +#: ../../library/contextlib.rst:944 +msgid "" +"More sophisticated context managers may be \"reentrant\". These context " +"managers can not only be used in multiple :keyword:`with` statements, but " +"may also be used *inside* a :keyword:`!with` statement that is already using " +"the same context manager." +msgstr "" + +#: ../../library/contextlib.rst:949 +msgid "" +":class:`threading.RLock` is an example of a reentrant context manager, as " +"are :func:`suppress`, :func:`redirect_stdout`, and :func:`chdir`. Here's a " +"very simple example of reentrant use::" +msgstr "" + +#: ../../library/contextlib.rst:953 +msgid "" +">>> from contextlib import redirect_stdout\n" +">>> from io import StringIO\n" +">>> stream = StringIO()\n" +">>> write_to_stream = redirect_stdout(stream)\n" +">>> with write_to_stream:\n" +"... print(\"This is written to the stream rather than stdout\")\n" +"... with write_to_stream:\n" +"... print(\"This is also written to the stream\")\n" +"...\n" +">>> print(\"This is written directly to stdout\")\n" +"This is written directly to stdout\n" +">>> print(stream.getvalue())\n" +"This is written to the stream rather than stdout\n" +"This is also written to the stream" +msgstr "" + +#: ../../library/contextlib.rst:968 +msgid "" +"Real world examples of reentrancy are more likely to involve multiple " +"functions calling each other and hence be far more complicated than this " +"example." +msgstr "" + +#: ../../library/contextlib.rst:972 +msgid "" +"Note also that being reentrant is *not* the same thing as being thread " +"safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " +"as it makes a global modification to the system state by " +"binding :data:`sys.stdout` to a different stream." +msgstr "" + +#: ../../library/contextlib.rst:981 +msgid "Reusable context managers" +msgstr "" + +#: ../../library/contextlib.rst:983 +msgid "" +"Distinct from both single use and reentrant context managers are " +"\"reusable\" context managers (or, to be completely explicit, \"reusable, " +"but not reentrant\" context managers, since reentrant context managers are " +"also reusable). These context managers support being used multiple times, " +"but will fail (or otherwise not work correctly) if the specific context " +"manager instance has already been used in a containing with statement." +msgstr "" + +#: ../../library/contextlib.rst:990 +msgid "" +":class:`threading.Lock` is an example of a reusable, but not reentrant, " +"context manager (for a reentrant lock, it is necessary to " +"use :class:`threading.RLock` instead)." +msgstr "" + +#: ../../library/contextlib.rst:994 +msgid "" +"Another example of a reusable, but not reentrant, context manager " +"is :class:`ExitStack`, as it invokes *all* currently registered callbacks " +"when leaving any with statement, regardless of where those callbacks were " +"added::" +msgstr "" + +#: ../../library/contextlib.rst:999 +msgid "" +">>> from contextlib import ExitStack\n" +">>> stack = ExitStack()\n" +">>> with stack:\n" +"... stack.callback(print, \"Callback: from first context\")\n" +"... print(\"Leaving first context\")\n" +"...\n" +"Leaving first context\n" +"Callback: from first context\n" +">>> with stack:\n" +"... stack.callback(print, \"Callback: from second context\")\n" +"... print(\"Leaving second context\")\n" +"...\n" +"Leaving second context\n" +"Callback: from second context\n" +">>> with stack:\n" +"... stack.callback(print, \"Callback: from outer context\")\n" +"... with stack:\n" +"... stack.callback(print, \"Callback: from inner context\")\n" +"... print(\"Leaving inner context\")\n" +"... print(\"Leaving outer context\")\n" +"...\n" +"Leaving inner context\n" +"Callback: from inner context\n" +"Callback: from outer context\n" +"Leaving outer context" +msgstr "" + +#: ../../library/contextlib.rst:1025 +msgid "" +"As the output from the example shows, reusing a single stack object across " +"multiple with statements works correctly, but attempting to nest them will " +"cause the stack to be cleared at the end of the innermost with statement, " +"which is unlikely to be desirable behaviour." +msgstr "" + +#: ../../library/contextlib.rst:1030 +msgid "" +"Using separate :class:`ExitStack` instances instead of reusing a single " +"instance avoids that problem::" +msgstr "" + +#: ../../library/contextlib.rst:1033 +msgid "" +">>> from contextlib import ExitStack\n" +">>> with ExitStack() as outer_stack:\n" +"... outer_stack.callback(print, \"Callback: from outer context\")\n" +"... with ExitStack() as inner_stack:\n" +"... inner_stack.callback(print, \"Callback: from inner context\")\n" +"... print(\"Leaving inner context\")\n" +"... print(\"Leaving outer context\")\n" +"...\n" +"Leaving inner context\n" +"Callback: from inner context\n" +"Leaving outer context\n" +"Callback: from outer context" +msgstr "" diff --git a/library/contextvars.po b/library/contextvars.po new file mode 100644 index 0000000..d226700 --- /dev/null +++ b/library/contextvars.po @@ -0,0 +1,425 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/contextvars.rst:2 +msgid ":mod:`!contextvars` --- Context Variables" +msgstr "" + +#: ../../library/contextvars.rst:11 +msgid "" +"This module provides APIs to manage, store, and access context-local state. " +"The :class:`~contextvars.ContextVar` class is used to declare and work with " +"*Context Variables*. The :func:`~contextvars.copy_context` function and " +"the :class:`~contextvars.Context` class should be used to manage the current " +"context in asynchronous frameworks." +msgstr "" + +#: ../../library/contextvars.rst:17 +msgid "" +"Context managers that have state should use Context Variables instead " +"of :func:`threading.local` to prevent their state from bleeding to other " +"code unexpectedly, when used in concurrent code." +msgstr "" + +#: ../../library/contextvars.rst:21 +msgid "See also :pep:`567` for additional details." +msgstr "" + +#: ../../library/contextvars.rst:27 +msgid "Context Variables" +msgstr "" + +#: ../../library/contextvars.rst:31 +msgid "This class is used to declare a new Context Variable, e.g.::" +msgstr "" + +#: ../../library/contextvars.rst:33 +msgid "var: ContextVar[int] = ContextVar('var', default=42)" +msgstr "" + +#: ../../library/contextvars.rst:35 +msgid "" +"The required *name* parameter is used for introspection and debug purposes." +msgstr "" + +#: ../../library/contextvars.rst:38 +msgid "" +"The optional keyword-only *default* parameter is returned " +"by :meth:`ContextVar.get` when no value for the variable is found in the " +"current context." +msgstr "" + +#: ../../library/contextvars.rst:42 +msgid "" +"**Important:** Context Variables should be created at the top module level " +"and never in closures. :class:`Context` objects hold strong references to " +"context variables which prevents context variables from being properly " +"garbage collected." +msgstr "" + +#: ../../library/contextvars.rst:49 +msgid "The name of the variable. This is a read-only property." +msgstr "" + +#: ../../library/contextvars.rst:55 +msgid "Return a value for the context variable for the current context." +msgstr "" + +#: ../../library/contextvars.rst:57 +msgid "" +"If there is no value for the variable in the current context, the method " +"will:" +msgstr "" + +#: ../../library/contextvars.rst:60 +msgid "" +"return the value of the *default* argument of the method, if provided; or" +msgstr "" + +#: ../../library/contextvars.rst:63 +msgid "" +"return the default value for the context variable, if it was created with " +"one; or" +msgstr "" + +#: ../../library/contextvars.rst:66 +msgid "raise a :exc:`LookupError`." +msgstr "" + +#: ../../library/contextvars.rst:70 +msgid "" +"Call to set a new value for the context variable in the current context." +msgstr "" + +#: ../../library/contextvars.rst:73 +msgid "" +"The required *value* argument is the new value for the context variable." +msgstr "" + +#: ../../library/contextvars.rst:76 +msgid "" +"Returns a :class:`~contextvars.Token` object that can be used to restore the " +"variable to its previous value via the :meth:`ContextVar.reset` method." +msgstr "" + +#: ../../library/contextvars.rst:82 +msgid "" +"Reset the context variable to the value it had before " +"the :meth:`ContextVar.set` that created the *token* was used." +msgstr "" + +#: ../../library/contextvars.rst:85 +msgid "For example::" +msgstr "" + +#: ../../library/contextvars.rst:87 +msgid "" +"var = ContextVar('var')\n" +"\n" +"token = var.set('new value')\n" +"# code that uses 'var'; var.get() returns 'new value'.\n" +"var.reset(token)\n" +"\n" +"# After the reset call the var has no value again, so\n" +"# var.get() would raise a LookupError." +msgstr "" + +#: ../../library/contextvars.rst:99 +msgid "" +"*Token* objects are returned by the :meth:`ContextVar.set` method. They can " +"be passed to the :meth:`ContextVar.reset` method to revert the value of the " +"variable to what it was before the corresponding *set*." +msgstr "" + +#: ../../library/contextvars.rst:104 +msgid "" +"The token supports :ref:`context manager protocol ` to " +"restore the corresponding context variable value at the exit " +"from :keyword:`with` block::" +msgstr "" + +#: ../../library/contextvars.rst:108 +msgid "" +"var = ContextVar('var', default='default value')\n" +"\n" +"with var.set('new value'):\n" +" assert var.get() == 'new value'\n" +"\n" +"assert var.get() == 'default value'" +msgstr "" + +#: ../../library/contextvars.rst:117 +msgid "Added support for usage as a context manager." +msgstr "" + +#: ../../library/contextvars.rst:121 +msgid "" +"A read-only property. Points to the :class:`ContextVar` object that created " +"the token." +msgstr "" + +#: ../../library/contextvars.rst:126 +msgid "" +"A read-only property. Set to the value the variable had before " +"the :meth:`ContextVar.set` method call that created the token. It points " +"to :attr:`Token.MISSING` if the variable was not set before the call." +msgstr "" + +#: ../../library/contextvars.rst:133 +msgid "A marker object used by :attr:`Token.old_value`." +msgstr "" + +#: ../../library/contextvars.rst:137 +msgid "Manual Context Management" +msgstr "" + +#: ../../library/contextvars.rst:141 +msgid "Returns a copy of the current :class:`~contextvars.Context` object." +msgstr "" + +#: ../../library/contextvars.rst:143 +msgid "" +"The following snippet gets a copy of the current context and prints all " +"variables and their values that are set in it::" +msgstr "" + +#: ../../library/contextvars.rst:146 +msgid "" +"ctx: Context = copy_context()\n" +"print(list(ctx.items()))" +msgstr "" + +#: ../../library/contextvars.rst:149 +msgid "" +"The function has an *O*\\ (1) complexity, i.e. works equally fast for " +"contexts with a few context variables and for contexts that have a lot of " +"them." +msgstr "" + +#: ../../library/contextvars.rst:156 +msgid "A mapping of :class:`ContextVars ` to their values." +msgstr "" + +#: ../../library/contextvars.rst:158 +msgid "" +"``Context()`` creates an empty context with no values in it. To get a copy " +"of the current context use the :func:`~contextvars.copy_context` function." +msgstr "" + +#: ../../library/contextvars.rst:162 +msgid "" +"Each thread has its own effective stack of :class:`!Context` objects. " +"The :term:`current context` is the :class:`!Context` object at the top of " +"the current thread's stack. All :class:`!Context` objects in the stacks are " +"considered to be *entered*." +msgstr "" + +#: ../../library/contextvars.rst:167 +msgid "" +"*Entering* a context, which can be done by calling its :meth:`~Context.run` " +"method, makes the context the current context by pushing it onto the top of " +"the current thread's context stack." +msgstr "" + +#: ../../library/contextvars.rst:171 +msgid "" +"*Exiting* from the current context, which can be done by returning from the " +"callback passed to the :meth:`~Context.run` method, restores the current " +"context to what it was before the context was entered by popping the context " +"off the top of the context stack." +msgstr "" + +#: ../../library/contextvars.rst:176 +msgid "" +"Since each thread has its own context stack, :class:`ContextVar` objects " +"behave in a similar fashion to :func:`threading.local` when values are " +"assigned in different threads." +msgstr "" + +#: ../../library/contextvars.rst:180 +msgid "" +"Attempting to enter an already entered context, including contexts entered " +"in other threads, raises a :exc:`RuntimeError`." +msgstr "" + +#: ../../library/contextvars.rst:183 +msgid "After exiting a context, it can later be re-entered (from any thread)." +msgstr "" + +#: ../../library/contextvars.rst:185 +msgid "" +"Any changes to :class:`ContextVar` values via the :meth:`ContextVar.set` " +"method are recorded in the current context. The :meth:`ContextVar.get` " +"method returns the value associated with the current context. Exiting a " +"context effectively reverts any changes made to context variables while the " +"context was entered (if needed, the values can be restored by re-entering " +"the context)." +msgstr "" + +#: ../../library/contextvars.rst:192 +msgid "Context implements the :class:`collections.abc.Mapping` interface." +msgstr "" + +#: ../../library/contextvars.rst:196 +msgid "" +"Enters the Context, executes ``callable(*args, **kwargs)``, then exits the " +"Context. Returns *callable*'s return value, or propagates an exception if " +"one occurred." +msgstr "" + +#: ../../library/contextvars.rst:200 +msgid "Example:" +msgstr "" + +#: ../../library/contextvars.rst:202 +msgid "" +"import contextvars\n" +"\n" +"var = contextvars.ContextVar('var')\n" +"var.set('spam')\n" +"print(var.get()) # 'spam'\n" +"\n" +"ctx = contextvars.copy_context()\n" +"\n" +"def main():\n" +" # 'var' was set to 'spam' before\n" +" # calling 'copy_context()' and 'ctx.run(main)', so:\n" +" print(var.get()) # 'spam'\n" +" print(ctx[var]) # 'spam'\n" +"\n" +" var.set('ham')\n" +"\n" +" # Now, after setting 'var' to 'ham':\n" +" print(var.get()) # 'ham'\n" +" print(ctx[var]) # 'ham'\n" +"\n" +"# Any changes that the 'main' function makes to 'var'\n" +"# will be contained in 'ctx'.\n" +"ctx.run(main)\n" +"\n" +"# The 'main()' function was run in the 'ctx' context,\n" +"# so changes to 'var' are contained in it:\n" +"print(ctx[var]) # 'ham'\n" +"\n" +"# However, outside of 'ctx', 'var' is still set to 'spam':\n" +"print(var.get()) # 'spam'" +msgstr "" + +#: ../../library/contextvars.rst:248 +msgid "Return a shallow copy of the context object." +msgstr "" + +#: ../../library/contextvars.rst:252 +msgid "" +"Return ``True`` if the *context* has a value for *var* set; return ``False`` " +"otherwise." +msgstr "" + +#: ../../library/contextvars.rst:257 +msgid "" +"Return the value of the *var* :class:`ContextVar` variable. If the variable " +"is not set in the context object, a :exc:`KeyError` is raised." +msgstr "" + +#: ../../library/contextvars.rst:263 +msgid "" +"Return the value for *var* if *var* has the value in the context object. " +"Return *default* otherwise. If *default* is not given, return ``None``." +msgstr "" + +#: ../../library/contextvars.rst:269 +msgid "Return an iterator over the variables stored in the context object." +msgstr "" + +#: ../../library/contextvars.rst:274 +msgid "Return the number of variables set in the context object." +msgstr "" + +#: ../../library/contextvars.rst:278 +msgid "Return a list of all variables in the context object." +msgstr "" + +#: ../../library/contextvars.rst:282 +msgid "Return a list of all variables' values in the context object." +msgstr "" + +#: ../../library/contextvars.rst:287 +msgid "" +"Return a list of 2-tuples containing all variables and their values in the " +"context object." +msgstr "" + +#: ../../library/contextvars.rst:292 +msgid "asyncio support" +msgstr "" + +#: ../../library/contextvars.rst:294 +msgid "" +"Context variables are natively supported in :mod:`asyncio` and are ready to " +"be used without any extra configuration. For example, here is a simple echo " +"server, that uses a context variable to make the address of a remote client " +"available in the Task that handles that client::" +msgstr "" + +#: ../../library/contextvars.rst:300 +msgid "" +"import asyncio\n" +"import contextvars\n" +"\n" +"client_addr_var = contextvars.ContextVar('client_addr')\n" +"\n" +"def render_goodbye():\n" +" # The address of the currently handled client can be accessed\n" +" # without passing it explicitly to this function.\n" +"\n" +" client_addr = client_addr_var.get()\n" +" return f'Good bye, client @ {client_addr}\\r\\n'.encode()\n" +"\n" +"async def handle_request(reader, writer):\n" +" addr = writer.transport.get_extra_info('socket').getpeername()\n" +" client_addr_var.set(addr)\n" +"\n" +" # In any code that we call is now possible to get\n" +" # client's address by calling 'client_addr_var.get()'.\n" +"\n" +" while True:\n" +" line = await reader.readline()\n" +" print(line)\n" +" if not line.strip():\n" +" break\n" +"\n" +" writer.write(b'HTTP/1.1 200 OK\\r\\n') # status line\n" +" writer.write(b'\\r\\n') # headers\n" +" writer.write(render_goodbye()) # body\n" +" writer.close()\n" +"\n" +"async def main():\n" +" srv = await asyncio.start_server(\n" +" handle_request, '127.0.0.1', 8081)\n" +"\n" +" async with srv:\n" +" await srv.serve_forever()\n" +"\n" +"asyncio.run(main())\n" +"\n" +"# To test it you can use telnet or curl:\n" +"# telnet 127.0.0.1 8081\n" +"# curl 127.0.0.1:8081" +msgstr "" diff --git a/library/copy.po b/library/copy.po new file mode 100644 index 0000000..393825c --- /dev/null +++ b/library/copy.po @@ -0,0 +1,200 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/copy.rst:2 +msgid ":mod:`!copy` --- Shallow and deep copy operations" +msgstr "" + +#: ../../library/copy.rst:7 +msgid "**Source code:** :source:`Lib/copy.py`" +msgstr "" + +#: ../../library/copy.rst:11 +msgid "" +"Assignment statements in Python do not copy objects, they create bindings " +"between a target and an object. For collections that are mutable or contain " +"mutable items, a copy is sometimes needed so one can change one copy without " +"changing the other. This module provides generic shallow and deep copy " +"operations (explained below)." +msgstr "" + +#: ../../library/copy.rst:18 +msgid "Interface summary:" +msgstr "" + +#: ../../library/copy.rst:22 +msgid "Return a shallow copy of *obj*." +msgstr "" + +#: ../../library/copy.rst:27 +msgid "Return a deep copy of *obj*." +msgstr "" + +#: ../../library/copy.rst:32 +msgid "" +"Creates a new object of the same type as *obj*, replacing fields with values " +"from *changes*." +msgstr "" + +#: ../../library/copy.rst:40 +msgid "Raised for module specific errors." +msgstr "" + +#: ../../library/copy.rst:44 +msgid "" +"The difference between shallow and deep copying is only relevant for " +"compound objects (objects that contain other objects, like lists or class " +"instances):" +msgstr "" + +#: ../../library/copy.rst:47 +msgid "" +"A *shallow copy* constructs a new compound object and then (to the extent " +"possible) inserts *references* into it to the objects found in the original." +msgstr "" + +#: ../../library/copy.rst:50 +msgid "" +"A *deep copy* constructs a new compound object and then, recursively, " +"inserts *copies* into it of the objects found in the original." +msgstr "" + +#: ../../library/copy.rst:53 +msgid "" +"Two problems often exist with deep copy operations that don't exist with " +"shallow copy operations:" +msgstr "" + +#: ../../library/copy.rst:56 +msgid "" +"Recursive objects (compound objects that, directly or indirectly, contain a " +"reference to themselves) may cause a recursive loop." +msgstr "" + +#: ../../library/copy.rst:59 +msgid "" +"Because deep copy copies everything it may copy too much, such as data which " +"is intended to be shared between copies." +msgstr "" + +#: ../../library/copy.rst:62 +msgid "The :func:`deepcopy` function avoids these problems by:" +msgstr "" + +#: ../../library/copy.rst:64 +msgid "" +"keeping a ``memo`` dictionary of objects already copied during the current " +"copying pass; and" +msgstr "" + +#: ../../library/copy.rst:67 +msgid "" +"letting user-defined classes override the copying operation or the set of " +"components copied." +msgstr "" + +#: ../../library/copy.rst:70 +msgid "" +"This module does not copy types like module, method, stack trace, stack " +"frame, file, socket, window, or any similar types. It does \"copy\" " +"functions and classes (shallow and deeply), by returning the original object " +"unchanged; this is compatible with the way these are treated by " +"the :mod:`pickle` module." +msgstr "" + +#: ../../library/copy.rst:75 +msgid "" +"Shallow copies of dictionaries can be made using :meth:`dict.copy`, and of " +"lists by assigning a slice of the entire list, for example, ``copied_list = " +"original_list[:]``." +msgstr "" + +#: ../../library/copy.rst:81 +msgid "" +"Classes can use the same interfaces to control copying that they use to " +"control pickling. See the description of module :mod:`pickle` for " +"information on these methods. In fact, the :mod:`copy` module uses the " +"registered pickle functions from the :mod:`copyreg` module." +msgstr "" + +#: ../../library/copy.rst:92 +msgid "" +"In order for a class to define its own copy implementation, it can define " +"special methods :meth:`~object.__copy__` and :meth:`~object.__deepcopy__`." +msgstr "" + +#: ../../library/copy.rst:98 +msgid "" +"Called to implement the shallow copy operation; no additional arguments are " +"passed." +msgstr "" + +#: ../../library/copy.rst:104 +msgid "" +"Called to implement the deep copy operation; it is passed one argument, the " +"*memo* dictionary. If the ``__deepcopy__`` implementation needs to make a " +"deep copy of a component, it should call the :func:`~copy.deepcopy` function " +"with the component as first argument and the *memo* dictionary as second " +"argument. The *memo* dictionary should be treated as an opaque object." +msgstr "" + +#: ../../library/copy.rst:114 +msgid "" +"Function :func:`!copy.replace` is more limited than :func:`~copy.copy` " +"and :func:`~copy.deepcopy`, and only supports named tuples created " +"by :func:`~collections.namedtuple`, :mod:`dataclasses`, and other classes " +"which define method :meth:`~object.__replace__`." +msgstr "" + +#: ../../library/copy.rst:122 +msgid "" +"This method should create a new object of the same type, replacing fields " +"with values from *changes*." +msgstr "" + +#: ../../library/copy.rst:130 +msgid "Module :mod:`pickle`" +msgstr "" + +#: ../../library/copy.rst:131 +msgid "" +"Discussion of the special methods used to support object state retrieval and " +"restoration." +msgstr "" + +#: ../../library/copy.rst:79 +msgid "module" +msgstr "" + +#: ../../library/copy.rst:79 +msgid "pickle" +msgstr "" + +#: ../../library/copy.rst:86 +msgid "__copy__() (copy protocol)" +msgstr "" + +#: ../../library/copy.rst:86 +msgid "__deepcopy__() (copy protocol)" +msgstr "" + +#: ../../library/copy.rst:111 +msgid "__replace__() (replace protocol)" +msgstr "" diff --git a/library/copyreg.po b/library/copyreg.po new file mode 100644 index 0000000..e6ad3de --- /dev/null +++ b/library/copyreg.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/copyreg.rst:2 +msgid ":mod:`!copyreg` --- Register :mod:`!pickle` support functions" +msgstr "" + +#: ../../library/copyreg.rst:7 +msgid "**Source code:** :source:`Lib/copyreg.py`" +msgstr "" + +#: ../../library/copyreg.rst:15 +msgid "" +"The :mod:`copyreg` module offers a way to define functions used while " +"pickling specific objects. The :mod:`pickle` and :mod:`copy` modules use " +"those functions when pickling/copying those objects. The module provides " +"configuration information about object constructors which are not classes. " +"Such constructors may be factory functions or class instances." +msgstr "" + +#: ../../library/copyreg.rst:24 +msgid "" +"Declares *object* to be a valid constructor. If *object* is not callable " +"(and hence not valid as a constructor), raises :exc:`TypeError`." +msgstr "" + +#: ../../library/copyreg.rst:30 +msgid "" +"Declares that *function* should be used as a \"reduction\" function for " +"objects of type *type*. *function* must return either a string or a tuple " +"containing between two and six elements. See " +"the :attr:`~pickle.Pickler.dispatch_table` for more details on the interface " +"of *function*." +msgstr "" + +#: ../../library/copyreg.rst:35 +msgid "" +"The *constructor_ob* parameter is a legacy feature and is now ignored, but " +"if passed it must be a callable." +msgstr "" + +#: ../../library/copyreg.rst:38 +msgid "" +"Note that the :attr:`~pickle.Pickler.dispatch_table` attribute of a pickler " +"object or subclass of :class:`pickle.Pickler` can also be used for declaring " +"reduction functions." +msgstr "" + +#: ../../library/copyreg.rst:43 +msgid "Example" +msgstr "" + +#: ../../library/copyreg.rst:45 +msgid "" +"The example below would like to show how to register a pickle function and " +"how it will be used:" +msgstr "" + +#: ../../library/copyreg.rst:9 +msgid "module" +msgstr "" + +#: ../../library/copyreg.rst:9 +msgid "pickle" +msgstr "" + +#: ../../library/copyreg.rst:9 +msgid "copy" +msgstr "" diff --git a/library/crypt.po b/library/crypt.po new file mode 100644 index 0000000..25cc506 --- /dev/null +++ b/library/crypt.po @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/crypt.rst:2 +msgid ":mod:`!crypt` --- Function to check Unix passwords" +msgstr "" + +#: ../../library/crypt.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.13 ` after being " +"deprecated in Python 3.11. The removal was decided in :pep:`594`." +msgstr "" + +#: ../../library/crypt.rst:14 +msgid "" +"Applications can use the :mod:`hashlib` module from the standard library. " +"Other possible replacements are third-party libraries from " +"PyPI: :pypi:`legacycrypt`, :pypi:`bcrypt`, :pypi:`argon2-cffi`, " +"or :pypi:`passlib`. These are not supported or maintained by the Python core " +"team." +msgstr "" + +#: ../../library/crypt.rst:19 +msgid "" +"The last version of Python that provided the :mod:`!crypt` module was " +"`Python 3.12 `_." +msgstr "" diff --git a/library/crypto.po b/library/crypto.po new file mode 100644 index 0000000..60e1c24 --- /dev/null +++ b/library/crypto.po @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/crypto.rst:5 +msgid "Cryptographic Services" +msgstr "" + +#: ../../library/crypto.rst:9 +msgid "" +"The modules described in this chapter implement various algorithms of a " +"cryptographic nature. They are available at the discretion of the " +"installation. Here's an overview:" +msgstr "" + +#: ../../library/crypto.rst:7 +msgid "cryptography" +msgstr "" diff --git a/library/csv.po b/library/csv.po new file mode 100644 index 0000000..4ac48f8 --- /dev/null +++ b/library/csv.po @@ -0,0 +1,825 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/csv.rst:2 +msgid ":mod:`!csv` --- CSV File Reading and Writing" +msgstr "" + +#: ../../library/csv.rst:9 +msgid "**Source code:** :source:`Lib/csv.py`" +msgstr "" + +#: ../../library/csv.rst:17 +msgid "" +"The so-called CSV (Comma Separated Values) format is the most common import " +"and export format for spreadsheets and databases. CSV format was used for " +"many years prior to attempts to describe the format in a standardized way " +"in :rfc:`4180`. The lack of a well-defined standard means that subtle " +"differences often exist in the data produced and consumed by different " +"applications. These differences can make it annoying to process CSV files " +"from multiple sources. Still, while the delimiters and quoting characters " +"vary, the overall format is similar enough that it is possible to write a " +"single module which can efficiently manipulate such data, hiding the details " +"of reading and writing the data from the programmer." +msgstr "" + +#: ../../library/csv.rst:28 +msgid "" +"The :mod:`csv` module implements classes to read and write tabular data in " +"CSV format. It allows programmers to say, \"write this data in the format " +"preferred by Excel,\" or \"read data from this file which was generated by " +"Excel,\" without knowing the precise details of the CSV format used by " +"Excel. Programmers can also describe the CSV formats understood by other " +"applications or define their own special-purpose CSV formats." +msgstr "" + +#: ../../library/csv.rst:35 +msgid "" +"The :mod:`csv` module's :class:`reader` and :class:`writer` objects read and " +"write sequences. Programmers can also read and write data in dictionary " +"form using the :class:`DictReader` and :class:`DictWriter` classes." +msgstr "" + +#: ../../library/csv.rst:41 +msgid ":pep:`305` - CSV File API" +msgstr "" + +#: ../../library/csv.rst:42 +msgid "The Python Enhancement Proposal which proposed this addition to Python." +msgstr "" + +#: ../../library/csv.rst:48 +msgid "Module Contents" +msgstr "" + +#: ../../library/csv.rst:50 +msgid "The :mod:`csv` module defines the following functions:" +msgstr "" + +#: ../../library/csv.rst:58 +msgid "" +"Return a :ref:`reader object ` that will process lines from " +"the given *csvfile*. A csvfile must be an iterable of strings, each in the " +"reader's defined csv format. A csvfile is most commonly a file-like object " +"or list. If *csvfile* is a file object, it should be opened with " +"``newline=''``. [1]_ An optional *dialect* parameter can be given which is " +"used to define a set of parameters specific to a particular CSV dialect. It " +"may be an instance of a subclass of the :class:`Dialect` class or one of the " +"strings returned by the :func:`list_dialects` function. The other optional " +"*fmtparams* keyword arguments can be given to override individual formatting " +"parameters in the current dialect. For full details about the dialect and " +"formatting parameters, see section :ref:`csv-fmt-params`." +msgstr "" + +#: ../../library/csv.rst:72 +msgid "" +"Each row read from the csv file is returned as a list of strings. No " +"automatic data type conversion is performed unless " +"the :data:`QUOTE_NONNUMERIC` format option is specified (in which case " +"unquoted fields are transformed into floats)." +msgstr "" + +#: ../../library/csv.rst:76 ../../library/csv.rst:106 ../../library/csv.rst:181 +#: ../../library/csv.rst:219 +msgid "A short usage example::" +msgstr "" + +#: ../../library/csv.rst:78 +msgid "" +">>> import csv\n" +">>> with open('eggs.csv', newline='') as csvfile:\n" +"... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n" +"... for row in spamreader:\n" +"... print(', '.join(row))\n" +"Spam, Spam, Spam, Spam, Spam, Baked Beans\n" +"Spam, Lovely Spam, Wonderful Spam" +msgstr "" + +#: ../../library/csv.rst:89 +msgid "" +"Return a writer object responsible for converting the user's data into " +"delimited strings on the given file-like object. *csvfile* can be any " +"object with a :meth:`~io.TextIOBase.write` method. If *csvfile* is a file " +"object, it should be opened with ``newline=''`` [1]_. An optional *dialect* " +"parameter can be given which is used to define a set of parameters specific " +"to a particular CSV dialect. It may be an instance of a subclass of " +"the :class:`Dialect` class or one of the strings returned by " +"the :func:`list_dialects` function. The other optional *fmtparams* keyword " +"arguments can be given to override individual formatting parameters in the " +"current dialect. For full details about dialects and formatting parameters, " +"see the :ref:`csv-fmt-params` section. To make it as easy as possible to " +"interface with modules which implement the DB API, the value :const:`None` " +"is written as the empty string. While this isn't a reversible " +"transformation, it makes it easier to dump SQL NULL data values to CSV files " +"without preprocessing the data returned from a ``cursor.fetch*`` call. All " +"other non-string data are stringified with :func:`str` before being written." +msgstr "" + +#: ../../library/csv.rst:108 +msgid "" +"import csv\n" +"with open('eggs.csv', 'w', newline='') as csvfile:\n" +" spamwriter = csv.writer(csvfile, delimiter=' ',\n" +" quotechar='|', quoting=csv.QUOTE_MINIMAL)\n" +" spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])\n" +" spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])" +msgstr "" + +#: ../../library/csv.rst:118 +msgid "" +"Associate *dialect* with *name*. *name* must be a string. The dialect can " +"be specified either by passing a sub-class of :class:`Dialect`, or by " +"*fmtparams* keyword arguments, or both, with keyword arguments overriding " +"parameters of the dialect. For full details about dialects and formatting " +"parameters, see section :ref:`csv-fmt-params`." +msgstr "" + +#: ../../library/csv.rst:127 +msgid "" +"Delete the dialect associated with *name* from the dialect registry. " +"An :exc:`Error` is raised if *name* is not a registered dialect name." +msgstr "" + +#: ../../library/csv.rst:133 +msgid "" +"Return the dialect associated with *name*. An :exc:`Error` is raised if " +"*name* is not a registered dialect name. This function returns an " +"immutable :class:`Dialect`." +msgstr "" + +#: ../../library/csv.rst:139 +msgid "Return the names of all registered dialects." +msgstr "" + +#: ../../library/csv.rst:144 +msgid "" +"Returns the current maximum field size allowed by the parser. If *new_limit* " +"is given, this becomes the new limit." +msgstr "" + +#: ../../library/csv.rst:148 +msgid "The :mod:`csv` module defines the following classes:" +msgstr "" + +#: ../../library/csv.rst:153 +msgid "" +"Create an object that operates like a regular reader but maps the " +"information in each row to a :class:`dict` whose keys are given by the " +"optional *fieldnames* parameter." +msgstr "" + +#: ../../library/csv.rst:157 +msgid "" +"The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is " +"omitted, the values in the first row of file *f* will be used as the " +"fieldnames and will be omitted from the results. If *fieldnames* is " +"provided, they will be used and the first row will be included in the " +"results. Regardless of how the fieldnames are determined, the dictionary " +"preserves their original ordering." +msgstr "" + +#: ../../library/csv.rst:164 +msgid "" +"If a row has more fields than fieldnames, the remaining data is put in a " +"list and stored with the fieldname specified by *restkey* (which defaults to " +"``None``). If a non-blank row has fewer fields than fieldnames, the missing " +"values are filled-in with the value of *restval* (which defaults to " +"``None``)." +msgstr "" + +#: ../../library/csv.rst:170 +msgid "" +"All other optional or keyword arguments are passed to the " +"underlying :class:`reader` instance." +msgstr "" + +#: ../../library/csv.rst:173 ../../library/csv.rst:217 +msgid "" +"If the argument passed to *fieldnames* is an iterator, it will be coerced to " +"a :class:`list`." +msgstr "" + +#: ../../library/csv.rst:175 +msgid "Returned rows are now of type :class:`OrderedDict`." +msgstr "" + +#: ../../library/csv.rst:178 +msgid "Returned rows are now of type :class:`dict`." +msgstr "" + +#: ../../library/csv.rst:183 +msgid "" +">>> import csv\n" +">>> with open('names.csv', newline='') as csvfile:\n" +"... reader = csv.DictReader(csvfile)\n" +"... for row in reader:\n" +"... print(row['first_name'], row['last_name'])\n" +"...\n" +"Eric Idle\n" +"John Cleese\n" +"\n" +">>> print(row)\n" +"{'first_name': 'John', 'last_name': 'Cleese'}" +msgstr "" + +#: ../../library/csv.rst:199 +msgid "" +"Create an object which operates like a regular writer but maps dictionaries " +"onto output rows. The *fieldnames* parameter is a :mod:`sequence " +"` of keys that identify the order in which values in the " +"dictionary passed to the :meth:`~csvwriter.writerow` method are written to " +"file *f*. The optional *restval* parameter specifies the value to be " +"written if the dictionary is missing a key in *fieldnames*. If the " +"dictionary passed to the :meth:`~csvwriter.writerow` method contains a key " +"not found in *fieldnames*, the optional *extrasaction* parameter indicates " +"what action to take. If it is set to ``'raise'``, the default value, " +"a :exc:`ValueError` is raised. If it is set to ``'ignore'``, extra values in " +"the dictionary are ignored. Any other optional or keyword arguments are " +"passed to the underlying :class:`writer` instance." +msgstr "" + +#: ../../library/csv.rst:214 +msgid "" +"Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " +"of the :class:`DictWriter` class is not optional." +msgstr "" + +#: ../../library/csv.rst:221 +msgid "" +"import csv\n" +"\n" +"with open('names.csv', 'w', newline='') as csvfile:\n" +" fieldnames = ['first_name', 'last_name']\n" +" writer = csv.DictWriter(csvfile, fieldnames=fieldnames)\n" +"\n" +" writer.writeheader()\n" +" writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})\n" +" writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})\n" +" writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})" +msgstr "" + +#: ../../library/csv.rst:235 +msgid "" +"The :class:`Dialect` class is a container class whose attributes contain " +"information for how to handle doublequotes, whitespace, delimiters, etc. Due " +"to the lack of a strict CSV specification, different applications produce " +"subtly different CSV data. :class:`Dialect` instances define " +"how :class:`reader` and :class:`writer` instances behave." +msgstr "" + +#: ../../library/csv.rst:241 +msgid "" +"All available :class:`Dialect` names are returned by :func:`list_dialects`, " +"and they can be registered with specific :class:`reader` and :class:`writer` " +"classes through their initializer (``__init__``) functions like this::" +msgstr "" + +#: ../../library/csv.rst:245 +msgid "" +"import csv\n" +"\n" +"with open('students.csv', 'w', newline='') as csvfile:\n" +" writer = csv.writer(csvfile, dialect='unix')" +msgstr "" + +#: ../../library/csv.rst:253 +msgid "" +"The :class:`excel` class defines the usual properties of an Excel-generated " +"CSV file. It is registered with the dialect name ``'excel'``." +msgstr "" + +#: ../../library/csv.rst:259 +msgid "" +"The :class:`excel_tab` class defines the usual properties of an Excel-" +"generated TAB-delimited file. It is registered with the dialect name " +"``'excel-tab'``." +msgstr "" + +#: ../../library/csv.rst:265 +msgid "" +"The :class:`unix_dialect` class defines the usual properties of a CSV file " +"generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " +"quoting all fields. It is registered with the dialect name ``'unix'``." +msgstr "" + +#: ../../library/csv.rst:274 +msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." +msgstr "" + +#: ../../library/csv.rst:276 +msgid "The :class:`Sniffer` class provides two methods:" +msgstr "" + +#: ../../library/csv.rst:280 +msgid "" +"Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " +"the parameters found. If the optional *delimiters* parameter is given, it " +"is interpreted as a string containing possible valid delimiter characters." +msgstr "" + +#: ../../library/csv.rst:288 +msgid "" +"Analyze the sample text (presumed to be in CSV format) and " +"return :const:`True` if the first row appears to be a series of column " +"headers. Inspecting each column, one of two key criteria will be considered " +"to estimate if the sample contains a header:" +msgstr "" + +#: ../../library/csv.rst:293 +msgid "the second through n-th rows contain numeric values" +msgstr "" + +#: ../../library/csv.rst:294 +msgid "" +"the second through n-th rows contain strings where at least one value's " +"length differs from that of the putative header of that column." +msgstr "" + +#: ../../library/csv.rst:297 +msgid "" +"Twenty rows after the first row are sampled; if more than half of columns + " +"rows meet the criteria, :const:`True` is returned." +msgstr "" + +#: ../../library/csv.rst:302 +msgid "" +"This method is a rough heuristic and may produce both false positives and " +"negatives." +msgstr "" + +#: ../../library/csv.rst:305 +msgid "An example for :class:`Sniffer` use::" +msgstr "" + +#: ../../library/csv.rst:307 +msgid "" +"with open('example.csv', newline='') as csvfile:\n" +" dialect = csv.Sniffer().sniff(csvfile.read(1024))\n" +" csvfile.seek(0)\n" +" reader = csv.reader(csvfile, dialect)\n" +" # ... process CSV file contents here ..." +msgstr "" + +#: ../../library/csv.rst:316 +msgid "The :mod:`csv` module defines the following constants:" +msgstr "" + +#: ../../library/csv.rst:320 +msgid "Instructs :class:`writer` objects to quote all fields." +msgstr "" + +#: ../../library/csv.rst:325 +msgid "" +"Instructs :class:`writer` objects to only quote those fields which contain " +"special characters such as *delimiter*, *quotechar*, ``'\\r'``, ``'\\n'`` or " +"any of the characters in *lineterminator*." +msgstr "" + +#: ../../library/csv.rst:332 +msgid "Instructs :class:`writer` objects to quote all non-numeric fields." +msgstr "" + +#: ../../library/csv.rst:334 +msgid "" +"Instructs :class:`reader` objects to convert all non-quoted fields to " +"type :class:`float`." +msgstr "" + +#: ../../library/csv.rst:337 +msgid "" +"Some numeric types, such as :class:`bool`, :class:`~fractions.Fraction`, " +"or :class:`~enum.IntEnum`, have a string representation that cannot be " +"converted to :class:`float`. They cannot be read in " +"the :data:`QUOTE_NONNUMERIC` and :data:`QUOTE_STRINGS` modes." +msgstr "" + +#: ../../library/csv.rst:345 +msgid "" +"Instructs :class:`writer` objects to never quote fields. When the current " +"*delimiter*, *quotechar*, *escapechar*, ``'\\r'``, ``'\\n'`` or any of the " +"characters in *lineterminator* occurs in output data it is preceded by the " +"current *escapechar* character. If *escapechar* is not set, the writer will " +"raise :exc:`Error` if any characters that require escaping are encountered. " +"Set *quotechar* to ``None`` to prevent its escaping." +msgstr "" + +#: ../../library/csv.rst:353 +msgid "" +"Instructs :class:`reader` objects to perform no special processing of quote " +"characters." +msgstr "" + +#: ../../library/csv.rst:357 +msgid "" +"Instructs :class:`writer` objects to quote all fields which are not " +"``None``. This is similar to :data:`QUOTE_ALL`, except that if a field " +"value is ``None`` an empty (unquoted) string is written." +msgstr "" + +#: ../../library/csv.rst:361 +msgid "" +"Instructs :class:`reader` objects to interpret an empty (unquoted) field as " +"``None`` and to otherwise behave as :data:`QUOTE_ALL`." +msgstr "" + +#: ../../library/csv.rst:368 +msgid "" +"Instructs :class:`writer` objects to always place quotes around fields which " +"are strings. This is similar to :data:`QUOTE_NONNUMERIC`, except that if a " +"field value is ``None`` an empty (unquoted) string is written." +msgstr "" + +#: ../../library/csv.rst:372 +msgid "" +"Instructs :class:`reader` objects to interpret an empty (unquoted) string as " +"``None`` and to otherwise behave as :data:`QUOTE_NONNUMERIC`." +msgstr "" + +#: ../../library/csv.rst:377 +msgid "The :mod:`csv` module defines the following exception:" +msgstr "" + +#: ../../library/csv.rst:382 +msgid "Raised by any of the functions when an error is detected." +msgstr "" + +#: ../../library/csv.rst:387 +msgid "Dialects and Formatting Parameters" +msgstr "" + +#: ../../library/csv.rst:389 +msgid "" +"To make it easier to specify the format of input and output records, " +"specific formatting parameters are grouped together into dialects. A " +"dialect is a subclass of the :class:`Dialect` class containing various " +"attributes describing the format of the CSV file. When " +"creating :class:`reader` or :class:`writer` objects, the programmer can " +"specify a string or a subclass of the :class:`Dialect` class as the dialect " +"parameter. In addition to, or instead of, the *dialect* parameter, the " +"programmer can also specify individual formatting parameters, which have the " +"same names as the attributes defined below for the :class:`Dialect` class." +msgstr "" + +#: ../../library/csv.rst:399 +msgid "Dialects support the following attributes:" +msgstr "" + +#: ../../library/csv.rst:404 +msgid "" +"A one-character string used to separate fields. It defaults to ``','``." +msgstr "" + +#: ../../library/csv.rst:409 +msgid "" +"Controls how instances of *quotechar* appearing inside a field should " +"themselves be quoted. When :const:`True`, the character is doubled. " +"When :const:`False`, the *escapechar* is used as a prefix to the " +"*quotechar*. It defaults to :const:`True`." +msgstr "" + +#: ../../library/csv.rst:414 +msgid "" +"On output, if *doublequote* is :const:`False` and no *escapechar* is " +"set, :exc:`Error` is raised if a *quotechar* is found in a field." +msgstr "" + +#: ../../library/csv.rst:420 +msgid "" +"A one-character string used by the writer to escape characters that require " +"escaping:" +msgstr "" + +#: ../../library/csv.rst:423 +msgid "" +"the *delimiter*, the *quotechar*, ``'\\r'``, ``'\\n'`` and any of the " +"characters in *lineterminator* are escaped if *quoting* is set " +"to :const:`QUOTE_NONE`;" +msgstr "" + +#: ../../library/csv.rst:426 +msgid "the *quotechar* is escaped if *doublequote* is :const:`False`;" +msgstr "" + +#: ../../library/csv.rst:427 +msgid "the *escapechar* itself." +msgstr "" + +#: ../../library/csv.rst:429 +msgid "" +"On reading, the *escapechar* removes any special meaning from the following " +"character. It defaults to :const:`None`, which disables escaping." +msgstr "" + +#: ../../library/csv.rst:432 +msgid "An empty *escapechar* is not allowed." +msgstr "" + +#: ../../library/csv.rst:437 +msgid "" +"The string used to terminate lines produced by the :class:`writer`. It " +"defaults to ``'\\r\\n'``." +msgstr "" + +#: ../../library/csv.rst:442 +msgid "" +"The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " +"as end-of-line, and ignores *lineterminator*. This behavior may change in " +"the future." +msgstr "" + +#: ../../library/csv.rst:449 +msgid "" +"A one-character string used to quote fields containing special characters, " +"such as the *delimiter* or the *quotechar*, or which contain new-line " +"characters (``'\\r'``, ``'\\n'`` or any of the characters in " +"*lineterminator*). It defaults to ``'\"'``. Can be set to ``None`` to " +"prevent escaping ``'\"'`` if *quoting* is set to :const:`QUOTE_NONE`." +msgstr "" + +#: ../../library/csv.rst:456 +msgid "An empty *quotechar* is not allowed." +msgstr "" + +#: ../../library/csv.rst:461 +msgid "" +"Controls when quotes should be generated by the writer and recognised by the " +"reader. It can take on any of the :ref:`QUOTE_\\* constants ` and defaults to :const:`QUOTE_MINIMAL` if *quotechar* is not " +"``None``, and :const:`QUOTE_NONE` otherwise." +msgstr "" + +#: ../../library/csv.rst:469 +msgid "" +"When :const:`True`, spaces immediately following the *delimiter* are " +"ignored. The default is :const:`False`." +msgstr "" + +#: ../../library/csv.rst:475 +msgid "" +"When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " +"``False``." +msgstr "" + +#: ../../library/csv.rst:481 +msgid "Reader Objects" +msgstr "" + +#: ../../library/csv.rst:483 +msgid "" +"Reader objects (:class:`DictReader` instances and objects returned by " +"the :func:`reader` function) have the following public methods:" +msgstr "" + +#: ../../library/csv.rst:488 +msgid "" +"Return the next row of the reader's iterable object as a list (if the object " +"was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " +"instance), parsed according to the current :class:`Dialect`. Usually you " +"should call this as ``next(reader)``." +msgstr "" + +#: ../../library/csv.rst:494 +msgid "Reader objects have the following public attributes:" +msgstr "" + +#: ../../library/csv.rst:498 +msgid "A read-only description of the dialect in use by the parser." +msgstr "" + +#: ../../library/csv.rst:503 +msgid "" +"The number of lines read from the source iterator. This is not the same as " +"the number of records returned, as records can span multiple lines." +msgstr "" + +#: ../../library/csv.rst:507 +msgid "DictReader objects have the following public attribute:" +msgstr "" + +#: ../../library/csv.rst:511 +msgid "" +"If not passed as a parameter when creating the object, this attribute is " +"initialized upon first access or when the first record is read from the file." +msgstr "" + +#: ../../library/csv.rst:518 +msgid "Writer Objects" +msgstr "" + +#: ../../library/csv.rst:520 +msgid "" +":class:`writer` objects (:class:`DictWriter` instances and objects returned " +"by the :func:`writer` function) have the following public methods. A *row* " +"must be an iterable of strings or numbers for :class:`writer` objects and a " +"dictionary mapping fieldnames to strings or numbers (by passing them " +"through :func:`str` first) for :class:`DictWriter` objects. Note that " +"complex numbers are written out surrounded by parens. This may cause some " +"problems for other programs which read CSV files (assuming they support " +"complex numbers at all)." +msgstr "" + +#: ../../library/csv.rst:531 +msgid "" +"Write the *row* parameter to the writer's file object, formatted according " +"to the current :class:`Dialect`. Return the return value of the call to the " +"*write* method of the underlying file object." +msgstr "" + +#: ../../library/csv.rst:535 +msgid "Added support of arbitrary iterables." +msgstr "" + +#: ../../library/csv.rst:540 +msgid "" +"Write all elements in *rows* (an iterable of *row* objects as described " +"above) to the writer's file object, formatted according to the current " +"dialect." +msgstr "" + +#: ../../library/csv.rst:544 +msgid "Writer objects have the following public attribute:" +msgstr "" + +#: ../../library/csv.rst:549 +msgid "A read-only description of the dialect in use by the writer." +msgstr "" + +#: ../../library/csv.rst:552 +msgid "DictWriter objects have the following public method:" +msgstr "" + +#: ../../library/csv.rst:557 +msgid "" +"Write a row with the field names (as specified in the constructor) to the " +"writer's file object, formatted according to the current dialect. Return the " +"return value of the :meth:`csvwriter.writerow` call used internally." +msgstr "" + +#: ../../library/csv.rst:562 +msgid "" +":meth:`writeheader` now also returns the value returned by " +"the :meth:`csvwriter.writerow` method it uses internally." +msgstr "" + +#: ../../library/csv.rst:570 +msgid "Examples" +msgstr "" + +#: ../../library/csv.rst:572 +msgid "The simplest example of reading a CSV file::" +msgstr "" + +#: ../../library/csv.rst:574 +msgid "" +"import csv\n" +"with open('some.csv', newline='') as f:\n" +" reader = csv.reader(f)\n" +" for row in reader:\n" +" print(row)" +msgstr "" + +#: ../../library/csv.rst:580 +msgid "Reading a file with an alternate format::" +msgstr "" + +#: ../../library/csv.rst:582 +msgid "" +"import csv\n" +"with open('passwd', newline='') as f:\n" +" reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)\n" +" for row in reader:\n" +" print(row)" +msgstr "" + +#: ../../library/csv.rst:588 +msgid "The corresponding simplest possible writing example is::" +msgstr "" + +#: ../../library/csv.rst:590 +msgid "" +"import csv\n" +"with open('some.csv', 'w', newline='') as f:\n" +" writer = csv.writer(f)\n" +" writer.writerows(someiterable)" +msgstr "" + +#: ../../library/csv.rst:595 +msgid "" +"Since :func:`open` is used to open a CSV file for reading, the file will by " +"default be decoded into unicode using the system default encoding " +"(see :func:`locale.getencoding`). To decode a file using a different " +"encoding, use the ``encoding`` argument of open::" +msgstr "" + +#: ../../library/csv.rst:600 +msgid "" +"import csv\n" +"with open('some.csv', newline='', encoding='utf-8') as f:\n" +" reader = csv.reader(f)\n" +" for row in reader:\n" +" print(row)" +msgstr "" + +#: ../../library/csv.rst:606 +msgid "" +"The same applies to writing in something other than the system default " +"encoding: specify the encoding argument when opening the output file." +msgstr "" + +#: ../../library/csv.rst:609 +msgid "Registering a new dialect::" +msgstr "" + +#: ../../library/csv.rst:611 +msgid "" +"import csv\n" +"csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)\n" +"with open('passwd', newline='') as f:\n" +" reader = csv.reader(f, 'unixpwd')" +msgstr "" + +#: ../../library/csv.rst:616 +msgid "" +"A slightly more advanced use of the reader --- catching and reporting " +"errors::" +msgstr "" + +#: ../../library/csv.rst:618 +msgid "" +"import csv, sys\n" +"filename = 'some.csv'\n" +"with open(filename, newline='') as f:\n" +" reader = csv.reader(f)\n" +" try:\n" +" for row in reader:\n" +" print(row)\n" +" except csv.Error as e:\n" +" sys.exit(f'file {filename}, line {reader.line_num}: {e}')" +msgstr "" + +#: ../../library/csv.rst:628 +msgid "" +"And while the module doesn't directly support parsing strings, it can easily " +"be done::" +msgstr "" + +#: ../../library/csv.rst:631 +msgid "" +"import csv\n" +"for row in csv.reader(['one,two,three']):\n" +" print(row)" +msgstr "" + +#: ../../library/csv.rst:637 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/csv.rst:638 +msgid "" +"If ``newline=''`` is not specified, newlines embedded inside quoted fields " +"will not be interpreted correctly, and on platforms that use ``\\r\\n`` " +"linendings on write an extra ``\\r`` will be added. It should always be " +"safe to specify ``newline=''``, since the csv module does its own " +"(:term:`universal `) newline handling." +msgstr "" + +#: ../../library/csv.rst:11 +msgid "csv" +msgstr "" + +#: ../../library/csv.rst:11 +msgid "data" +msgstr "" + +#: ../../library/csv.rst:11 +msgid "tabular" +msgstr "" + +#: ../../library/csv.rst:53 +msgid "universal newlines" +msgstr "" + +#: ../../library/csv.rst:53 +msgid "csv.reader function" +msgstr "" diff --git a/library/ctypes.po b/library/ctypes.po new file mode 100644 index 0000000..9076553 --- /dev/null +++ b/library/ctypes.po @@ -0,0 +1,4243 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/ctypes.rst:2 +msgid ":mod:`!ctypes` --- A foreign function library for Python" +msgstr "" + +#: ../../library/ctypes.rst:9 +msgid "**Source code:** :source:`Lib/ctypes`" +msgstr "" + +#: ../../library/ctypes.rst:13 +msgid "" +":mod:`ctypes` is a foreign function library for Python. It provides C " +"compatible data types, and allows calling functions in DLLs or shared " +"libraries. It can be used to wrap these libraries in pure Python." +msgstr "" + +#: ../../library/ctypes.rst:21 +msgid "ctypes tutorial" +msgstr "" + +#: ../../library/ctypes.rst:23 +msgid "" +"Note: The code samples in this tutorial use :mod:`doctest` to make sure that " +"they actually work. Since some code samples behave differently under Linux, " +"Windows, or macOS, they contain doctest directives in comments." +msgstr "" + +#: ../../library/ctypes.rst:27 +msgid "" +"Note: Some code samples reference the ctypes :class:`c_int` type. On " +"platforms where ``sizeof(long) == sizeof(int)`` it is an alias " +"to :class:`c_long`. So, you should not be confused if :class:`c_long` is " +"printed if you would expect :class:`c_int` --- they are actually the same " +"type." +msgstr "" + +#: ../../library/ctypes.rst:35 +msgid "Loading dynamic link libraries" +msgstr "" + +#: ../../library/ctypes.rst:37 +msgid "" +":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " +"objects, for loading dynamic link libraries." +msgstr "" + +#: ../../library/ctypes.rst:40 +msgid "" +"You load libraries by accessing them as attributes of these objects. *cdll* " +"loads libraries which export functions using the standard ``cdecl`` calling " +"convention, while *windll* libraries call functions using the ``stdcall`` " +"calling convention. *oledll* also uses the ``stdcall`` calling convention, " +"and assumes the functions return a Windows :c:type:`!HRESULT` error code. " +"The error code is used to automatically raise an :class:`OSError` exception " +"when the function call fails." +msgstr "" + +#: ../../library/ctypes.rst:48 +msgid "" +"Windows errors used to raise :exc:`WindowsError`, which is now an alias " +"of :exc:`OSError`." +msgstr "" + +#: ../../library/ctypes.rst:53 +msgid "" +"Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " +"C library containing most standard C functions, and uses the ``cdecl`` " +"calling convention::" +msgstr "" + +#: ../../library/ctypes.rst:57 +msgid "" +">>> from ctypes import *\n" +">>> print(windll.kernel32)\n" +"\n" +">>> print(cdll.msvcrt)\n" +"\n" +">>> libc = cdll.msvcrt\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:65 +msgid "Windows appends the usual ``.dll`` file suffix automatically." +msgstr "" + +#: ../../library/ctypes.rst:68 +msgid "" +"Accessing the standard C library through ``cdll.msvcrt`` will use an " +"outdated version of the library that may be incompatible with the one being " +"used by Python. Where possible, use native Python functionality, or else " +"import and use the ``msvcrt`` module." +msgstr "" + +#: ../../library/ctypes.rst:73 +msgid "" +"On Linux, it is required to specify the filename *including* the extension " +"to load a library, so attribute access can not be used to load libraries. " +"Either the :meth:`~LibraryLoader.LoadLibrary` method of the dll loaders " +"should be used, or you should load the library by creating an instance of " +"CDLL by calling the constructor::" +msgstr "" + +#: ../../library/ctypes.rst:79 +msgid "" +">>> cdll.LoadLibrary(\"libc.so.6\")\n" +"\n" +">>> libc = CDLL(\"libc.so.6\")\n" +">>> libc\n" +"\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:92 +msgid "Accessing functions from loaded dlls" +msgstr "" + +#: ../../library/ctypes.rst:94 +msgid "Functions are accessed as attributes of dll objects::" +msgstr "" + +#: ../../library/ctypes.rst:96 +msgid "" +">>> libc.printf\n" +"<_FuncPtr object at 0x...>\n" +">>> print(windll.kernel32.GetModuleHandleA)\n" +"<_FuncPtr object at 0x...>\n" +">>> print(windll.kernel32.MyOwnFunction)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" File \"ctypes.py\", line 239, in __getattr__\n" +" func = _StdcallFuncPtr(name, self)\n" +"AttributeError: function 'MyOwnFunction' not found\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:108 +msgid "" +"Note that win32 system dlls like ``kernel32`` and ``user32`` often export " +"ANSI as well as UNICODE versions of a function. The UNICODE version is " +"exported with a ``W`` appended to the name, while the ANSI version is " +"exported with an ``A`` appended to the name. The win32 ``GetModuleHandle`` " +"function, which returns a *module handle* for a given module name, has the " +"following C prototype, and a macro is used to expose one of them as " +"``GetModuleHandle`` depending on whether UNICODE is defined or not::" +msgstr "" + +#: ../../library/ctypes.rst:116 +msgid "" +"/* ANSI version */\n" +"HMODULE GetModuleHandleA(LPCSTR lpModuleName);\n" +"/* UNICODE version */\n" +"HMODULE GetModuleHandleW(LPCWSTR lpModuleName);" +msgstr "" + +#: ../../library/ctypes.rst:121 +msgid "" +"*windll* does not try to select one of them by magic, you must access the " +"version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " +"explicitly, and then call it with bytes or string objects respectively." +msgstr "" + +#: ../../library/ctypes.rst:125 +msgid "" +"Sometimes, dlls export functions with names which aren't valid Python " +"identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to " +"use :func:`getattr` to retrieve the function::" +msgstr "" + +#: ../../library/ctypes.rst:129 +msgid "" +">>> getattr(cdll.msvcrt, \"??2@YAPAXI@Z\")\n" +"<_FuncPtr object at 0x...>\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:133 +msgid "" +"On Windows, some dlls export functions not by name but by ordinal. These " +"functions can be accessed by indexing the dll object with the ordinal " +"number::" +msgstr "" + +#: ../../library/ctypes.rst:136 +msgid "" +">>> cdll.kernel32[1]\n" +"<_FuncPtr object at 0x...>\n" +">>> cdll.kernel32[0]\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" File \"ctypes.py\", line 310, in __getitem__\n" +" func = _StdcallFuncPtr(name, self)\n" +"AttributeError: function ordinal 0 not found\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:150 +msgid "Calling functions" +msgstr "" + +#: ../../library/ctypes.rst:152 +msgid "" +"You can call these functions like any other Python callable. This example " +"uses the ``rand()`` function, which takes no arguments and returns a pseudo-" +"random integer::" +msgstr "" + +#: ../../library/ctypes.rst:155 +msgid "" +">>> print(libc.rand())\n" +"1804289383" +msgstr "" + +#: ../../library/ctypes.rst:158 +msgid "" +"On Windows, you can call the ``GetModuleHandleA()`` function, which returns " +"a win32 module handle (passing ``None`` as single argument to call it with a " +"``NULL`` pointer)::" +msgstr "" + +#: ../../library/ctypes.rst:161 +msgid "" +">>> print(hex(windll.kernel32.GetModuleHandleA(None)))\n" +"0x1d000000\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:165 +msgid "" +":exc:`ValueError` is raised when you call an ``stdcall`` function with the " +"``cdecl`` calling convention, or vice versa::" +msgstr "" + +#: ../../library/ctypes.rst:168 +msgid "" +">>> cdll.kernel32.GetModuleHandleA(None)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ValueError: Procedure probably called with not enough arguments (4 bytes " +"missing)\n" +">>>\n" +"\n" +">>> windll.msvcrt.printf(b\"spam\")\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ValueError: Procedure probably called with too many arguments (4 bytes in " +"excess)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:180 +msgid "" +"To find out the correct calling convention you have to look into the C " +"header file or the documentation for the function you want to call." +msgstr "" + +#: ../../library/ctypes.rst:183 +msgid "" +"On Windows, :mod:`ctypes` uses win32 structured exception handling to " +"prevent crashes from general protection faults when functions are called " +"with invalid argument values::" +msgstr "" + +#: ../../library/ctypes.rst:187 +msgid "" +">>> windll.kernel32.GetModuleHandleA(32)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"OSError: exception: access violation reading 0x00000020\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:193 +msgid "" +"There are, however, enough ways to crash Python with :mod:`ctypes`, so you " +"should be careful anyway. The :mod:`faulthandler` module can be helpful in " +"debugging crashes (e.g. from segmentation faults produced by erroneous C " +"library calls)." +msgstr "" + +#: ../../library/ctypes.rst:198 +msgid "" +"``None``, integers, bytes objects and (unicode) strings are the only native " +"Python objects that can directly be used as parameters in these function " +"calls. ``None`` is passed as a C ``NULL`` pointer, bytes objects and strings " +"are passed as pointer to the memory block that contains their data " +"(:c:expr:`char *` or :c:expr:`wchar_t *`). Python integers are passed as " +"the platform's default C :c:expr:`int` type, their value is masked to fit " +"into the C type." +msgstr "" + +#: ../../library/ctypes.rst:205 +msgid "" +"Before we move on calling functions with other parameter types, we have to " +"learn more about :mod:`ctypes` data types." +msgstr "" + +#: ../../library/ctypes.rst:212 ../../library/ctypes.rst:2430 +msgid "Fundamental data types" +msgstr "" + +#: ../../library/ctypes.rst:214 +msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" +msgstr "" + +#: ../../library/ctypes.rst:217 ../../library/ctypes.rst:289 +msgid "ctypes type" +msgstr "" + +#: ../../library/ctypes.rst:217 ../../library/ctypes.rst:289 +msgid "C type" +msgstr "" + +#: ../../library/ctypes.rst:217 ../../library/ctypes.rst:289 +msgid "Python type" +msgstr "" + +#: ../../library/ctypes.rst:219 +msgid ":class:`c_bool`" +msgstr "" + +#: ../../library/ctypes.rst:219 +msgid ":c:expr:`_Bool`" +msgstr "" + +#: ../../library/ctypes.rst:219 +msgid "bool (1)" +msgstr "" + +#: ../../library/ctypes.rst:221 +msgid ":class:`c_char`" +msgstr "" + +#: ../../library/ctypes.rst:221 ../../library/ctypes.rst:225 +msgid ":c:expr:`char`" +msgstr "" + +#: ../../library/ctypes.rst:221 +msgid "1-character bytes object" +msgstr "" + +#: ../../library/ctypes.rst:223 +msgid ":class:`c_wchar`" +msgstr "" + +#: ../../library/ctypes.rst:223 +msgid ":c:type:`wchar_t`" +msgstr "" + +#: ../../library/ctypes.rst:223 +msgid "1-character string" +msgstr "" + +#: ../../library/ctypes.rst:225 +msgid ":class:`c_byte`" +msgstr "" + +#: ../../library/ctypes.rst:225 ../../library/ctypes.rst:227 +#: ../../library/ctypes.rst:229 ../../library/ctypes.rst:231 +#: ../../library/ctypes.rst:233 ../../library/ctypes.rst:235 +#: ../../library/ctypes.rst:237 ../../library/ctypes.rst:239 +#: ../../library/ctypes.rst:241 ../../library/ctypes.rst:243 +#: ../../library/ctypes.rst:245 ../../library/ctypes.rst:247 +#: ../../library/ctypes.rst:249 ../../library/ctypes.rst:251 +#: ../../library/ctypes.rst:253 ../../library/ctypes.rst:255 +#: ../../library/ctypes.rst:257 ../../library/ctypes.rst:259 +#: ../../library/ctypes.rst:262 ../../library/ctypes.rst:264 +#: ../../library/ctypes.rst:267 +msgid "int" +msgstr "" + +#: ../../library/ctypes.rst:227 +msgid ":class:`c_ubyte`" +msgstr "" + +#: ../../library/ctypes.rst:227 +msgid ":c:expr:`unsigned char`" +msgstr "" + +#: ../../library/ctypes.rst:229 +msgid ":class:`c_short`" +msgstr "" + +#: ../../library/ctypes.rst:229 +msgid ":c:expr:`short`" +msgstr "" + +#: ../../library/ctypes.rst:231 +msgid ":class:`c_ushort`" +msgstr "" + +#: ../../library/ctypes.rst:231 +msgid ":c:expr:`unsigned short`" +msgstr "" + +#: ../../library/ctypes.rst:233 +msgid ":class:`c_int`" +msgstr "" + +#: ../../library/ctypes.rst:233 +msgid ":c:expr:`int`" +msgstr "" + +#: ../../library/ctypes.rst:235 +msgid ":class:`c_int8`" +msgstr "" + +#: ../../library/ctypes.rst:235 +msgid ":c:type:`int8_t`" +msgstr "" + +#: ../../library/ctypes.rst:237 +msgid ":class:`c_int16`" +msgstr "" + +#: ../../library/ctypes.rst:237 +msgid ":c:type:`int16_t`" +msgstr "" + +#: ../../library/ctypes.rst:239 +msgid ":class:`c_int32`" +msgstr "" + +#: ../../library/ctypes.rst:239 +msgid ":c:type:`int32_t`" +msgstr "" + +#: ../../library/ctypes.rst:241 +msgid ":class:`c_int64`" +msgstr "" + +#: ../../library/ctypes.rst:241 +msgid ":c:type:`int64_t`" +msgstr "" + +#: ../../library/ctypes.rst:243 +msgid ":class:`c_uint`" +msgstr "" + +#: ../../library/ctypes.rst:243 +msgid ":c:expr:`unsigned int`" +msgstr "" + +#: ../../library/ctypes.rst:245 +msgid ":class:`c_uint8`" +msgstr "" + +#: ../../library/ctypes.rst:245 +msgid ":c:type:`uint8_t`" +msgstr "" + +#: ../../library/ctypes.rst:247 +msgid ":class:`c_uint16`" +msgstr "" + +#: ../../library/ctypes.rst:247 +msgid ":c:type:`uint16_t`" +msgstr "" + +#: ../../library/ctypes.rst:249 +msgid ":class:`c_uint32`" +msgstr "" + +#: ../../library/ctypes.rst:249 +msgid ":c:type:`uint32_t`" +msgstr "" + +#: ../../library/ctypes.rst:251 +msgid ":class:`c_uint64`" +msgstr "" + +#: ../../library/ctypes.rst:251 +msgid ":c:type:`uint64_t`" +msgstr "" + +#: ../../library/ctypes.rst:253 +msgid ":class:`c_long`" +msgstr "" + +#: ../../library/ctypes.rst:253 +msgid ":c:expr:`long`" +msgstr "" + +#: ../../library/ctypes.rst:255 +msgid ":class:`c_ulong`" +msgstr "" + +#: ../../library/ctypes.rst:255 +msgid ":c:expr:`unsigned long`" +msgstr "" + +#: ../../library/ctypes.rst:257 +msgid ":class:`c_longlong`" +msgstr "" + +#: ../../library/ctypes.rst:257 +msgid ":c:expr:`__int64` or :c:expr:`long long`" +msgstr "" + +#: ../../library/ctypes.rst:259 +msgid ":class:`c_ulonglong`" +msgstr "" + +#: ../../library/ctypes.rst:259 +msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" +msgstr "" + +#: ../../library/ctypes.rst:262 +msgid ":class:`c_size_t`" +msgstr "" + +#: ../../library/ctypes.rst:262 +msgid ":c:type:`size_t`" +msgstr "" + +#: ../../library/ctypes.rst:264 +msgid ":class:`c_ssize_t`" +msgstr "" + +#: ../../library/ctypes.rst:264 +msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" +msgstr "" + +#: ../../library/ctypes.rst:267 +msgid ":class:`c_time_t`" +msgstr "" + +#: ../../library/ctypes.rst:267 +msgid ":c:type:`time_t`" +msgstr "" + +#: ../../library/ctypes.rst:269 +msgid ":class:`c_float`" +msgstr "" + +#: ../../library/ctypes.rst:269 +msgid ":c:expr:`float`" +msgstr "" + +#: ../../library/ctypes.rst:269 ../../library/ctypes.rst:271 +#: ../../library/ctypes.rst:273 +msgid "float" +msgstr "" + +#: ../../library/ctypes.rst:271 +msgid ":class:`c_double`" +msgstr "" + +#: ../../library/ctypes.rst:271 +msgid ":c:expr:`double`" +msgstr "" + +#: ../../library/ctypes.rst:273 +msgid ":class:`c_longdouble`" +msgstr "" + +#: ../../library/ctypes.rst:273 +msgid ":c:expr:`long double`" +msgstr "" + +#: ../../library/ctypes.rst:275 +msgid ":class:`c_char_p`" +msgstr "" + +#: ../../library/ctypes.rst:275 +msgid ":c:expr:`char *` (NUL terminated)" +msgstr "" + +#: ../../library/ctypes.rst:275 +msgid "bytes object or ``None``" +msgstr "" + +#: ../../library/ctypes.rst:277 +msgid ":class:`c_wchar_p`" +msgstr "" + +#: ../../library/ctypes.rst:277 +msgid ":c:expr:`wchar_t *` (NUL terminated)" +msgstr "" + +#: ../../library/ctypes.rst:277 +msgid "string or ``None``" +msgstr "" + +#: ../../library/ctypes.rst:279 +msgid ":class:`c_void_p`" +msgstr "" + +#: ../../library/ctypes.rst:279 +msgid ":c:expr:`void *`" +msgstr "" + +#: ../../library/ctypes.rst:279 +msgid "int or ``None``" +msgstr "" + +#: ../../library/ctypes.rst:283 +msgid "The constructor accepts any object with a truth value." +msgstr "" + +#: ../../library/ctypes.rst:285 +msgid "" +"Additionally, if IEC 60559 compatible complex arithmetic (Annex G) is " +"supported in both C and ``libffi``, the following complex types are " +"available:" +msgstr "" + +#: ../../library/ctypes.rst:291 +msgid ":class:`c_float_complex`" +msgstr "" + +#: ../../library/ctypes.rst:291 +msgid ":c:expr:`float complex`" +msgstr "" + +#: ../../library/ctypes.rst:291 ../../library/ctypes.rst:293 +#: ../../library/ctypes.rst:295 +msgid "complex" +msgstr "" + +#: ../../library/ctypes.rst:293 +msgid ":class:`c_double_complex`" +msgstr "" + +#: ../../library/ctypes.rst:293 +msgid ":c:expr:`double complex`" +msgstr "" + +#: ../../library/ctypes.rst:295 +msgid ":class:`c_longdouble_complex`" +msgstr "" + +#: ../../library/ctypes.rst:295 +msgid ":c:expr:`long double complex`" +msgstr "" + +#: ../../library/ctypes.rst:299 +msgid "" +"All these types can be created by calling them with an optional initializer " +"of the correct type and value::" +msgstr "" + +#: ../../library/ctypes.rst:302 +msgid "" +">>> c_int()\n" +"c_long(0)\n" +">>> c_wchar_p(\"Hello, World\")\n" +"c_wchar_p(140018365411392)\n" +">>> c_ushort(-3)\n" +"c_ushort(65533)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:310 +msgid "" +"Since these types are mutable, their value can also be changed afterwards::" +msgstr "" + +#: ../../library/ctypes.rst:312 +msgid "" +">>> i = c_int(42)\n" +">>> print(i)\n" +"c_long(42)\n" +">>> print(i.value)\n" +"42\n" +">>> i.value = -99\n" +">>> print(i.value)\n" +"-99\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:322 +msgid "" +"Assigning a new value to instances of the pointer " +"types :class:`c_char_p`, :class:`c_wchar_p`, and :class:`c_void_p` changes " +"the *memory location* they point to, *not the contents* of the memory block " +"(of course not, because Python string objects are immutable)::" +msgstr "" + +#: ../../library/ctypes.rst:327 +msgid "" +">>> s = \"Hello, World\"\n" +">>> c_s = c_wchar_p(s)\n" +">>> print(c_s)\n" +"c_wchar_p(139966785747344)\n" +">>> print(c_s.value)\n" +"Hello World\n" +">>> c_s.value = \"Hi, there\"\n" +">>> print(c_s) # the memory location has changed\n" +"c_wchar_p(139966783348904)\n" +">>> print(c_s.value)\n" +"Hi, there\n" +">>> print(s) # first object is unchanged\n" +"Hello, World\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:342 +msgid "" +"You should be careful, however, not to pass them to functions expecting " +"pointers to mutable memory. If you need mutable memory blocks, ctypes has " +"a :func:`create_string_buffer` function which creates these in various " +"ways. The current memory block contents can be accessed (or changed) with " +"the ``raw`` property; if you want to access it as NUL terminated string, use " +"the ``value`` property::" +msgstr "" + +#: ../../library/ctypes.rst:349 +msgid "" +">>> from ctypes import *\n" +">>> p = create_string_buffer(3) # create a 3 byte buffer, " +"initialized to NUL bytes\n" +">>> print(sizeof(p), repr(p.raw))\n" +"3 b'\\x00\\x00\\x00'\n" +">>> p = create_string_buffer(b\"Hello\") # create a buffer containing a " +"NUL terminated string\n" +">>> print(sizeof(p), repr(p.raw))\n" +"6 b'Hello\\x00'\n" +">>> print(repr(p.value))\n" +"b'Hello'\n" +">>> p = create_string_buffer(b\"Hello\", 10) # create a 10 byte buffer\n" +">>> print(sizeof(p), repr(p.raw))\n" +"10 b'Hello\\x00\\x00\\x00\\x00\\x00'\n" +">>> p.value = b\"Hi\"\n" +">>> print(sizeof(p), repr(p.raw))\n" +"10 b'Hi\\x00lo\\x00\\x00\\x00\\x00\\x00'\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:366 +msgid "" +"The :func:`create_string_buffer` function replaces the old :func:`!c_buffer` " +"function (which is still available as an alias). To create a mutable memory " +"block containing unicode characters of the C type :c:type:`wchar_t`, use " +"the :func:`create_unicode_buffer` function." +msgstr "" + +#: ../../library/ctypes.rst:375 +msgid "Calling functions, continued" +msgstr "" + +#: ../../library/ctypes.rst:377 +msgid "" +"Note that printf prints to the real standard output channel, *not* " +"to :data:`sys.stdout`, so these examples will only work at the console " +"prompt, not from within *IDLE* or *PythonWin*::" +msgstr "" + +#: ../../library/ctypes.rst:381 +msgid "" +">>> printf = libc.printf\n" +">>> printf(b\"Hello, %s\\n\", b\"World!\")\n" +"Hello, World!\n" +"14\n" +">>> printf(b\"Hello, %S\\n\", \"World!\")\n" +"Hello, World!\n" +"14\n" +">>> printf(b\"%d bottles of beer\\n\", 42)\n" +"42 bottles of beer\n" +"19\n" +">>> printf(b\"%f bottles of beer\\n\", 42.5)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ctypes.ArgumentError: argument 2: TypeError: Don't know how to convert " +"parameter 2\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:397 +msgid "" +"As has been mentioned before, all Python types except integers, strings, and " +"bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " +"so that they can be converted to the required C data type::" +msgstr "" + +#: ../../library/ctypes.rst:401 +msgid "" +">>> printf(b\"An int %d, a double %f\\n\", 1234, c_double(3.14))\n" +"An int 1234, a double 3.140000\n" +"31\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:409 +msgid "Calling variadic functions" +msgstr "" + +#: ../../library/ctypes.rst:411 +msgid "" +"On a lot of platforms calling variadic functions through ctypes is exactly " +"the same as calling functions with a fixed number of parameters. On some " +"platforms, and in particular ARM64 for Apple Platforms, the calling " +"convention for variadic functions is different than that for regular " +"functions." +msgstr "" + +#: ../../library/ctypes.rst:416 +msgid "" +"On those platforms it is required to specify the :attr:`~_CFuncPtr.argtypes` " +"attribute for the regular, non-variadic, function arguments:" +msgstr "" + +#: ../../library/ctypes.rst:419 +msgid "libc.printf.argtypes = [ctypes.c_char_p]" +msgstr "" + +#: ../../library/ctypes.rst:423 +msgid "" +"Because specifying the attribute does not inhibit portability it is advised " +"to always specify :attr:`~_CFuncPtr.argtypes` for all variadic functions." +msgstr "" + +#: ../../library/ctypes.rst:430 +msgid "Calling functions with your own custom data types" +msgstr "" + +#: ../../library/ctypes.rst:432 +msgid "" +"You can also customize :mod:`ctypes` argument conversion to allow instances " +"of your own classes be used as function arguments. :mod:`ctypes` looks for " +"an :attr:`!_as_parameter_` attribute and uses this as the function argument. " +"The attribute must be an integer, string, bytes, a :mod:`ctypes` instance, " +"or an object with an :attr:`!_as_parameter_` attribute::" +msgstr "" + +#: ../../library/ctypes.rst:438 +msgid "" +">>> class Bottles:\n" +"... def __init__(self, number):\n" +"... self._as_parameter_ = number\n" +"...\n" +">>> bottles = Bottles(42)\n" +">>> printf(b\"%d bottles of beer\\n\", bottles)\n" +"42 bottles of beer\n" +"19\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:448 +msgid "" +"If you don't want to store the instance's data in the :attr:`!" +"_as_parameter_` instance variable, you could define a :class:`property` " +"which makes the attribute available on request." +msgstr "" + +#: ../../library/ctypes.rst:456 +msgid "Specifying the required argument types (function prototypes)" +msgstr "" + +#: ../../library/ctypes.rst:458 +msgid "" +"It is possible to specify the required argument types of functions exported " +"from DLLs by setting the :attr:`~_CFuncPtr.argtypes` attribute." +msgstr "" + +#: ../../library/ctypes.rst:461 +msgid "" +":attr:`~_CFuncPtr.argtypes` must be a sequence of C data types (the :func:`!" +"printf` function is probably not a good example here, because it takes a " +"variable number and different types of parameters depending on the format " +"string, on the other hand this is quite handy to experiment with this " +"feature)::" +msgstr "" + +#: ../../library/ctypes.rst:466 +msgid "" +">>> printf.argtypes = [c_char_p, c_char_p, c_int, c_double]\n" +">>> printf(b\"String '%s', Int %d, Double %f\\n\", b\"Hi\", 10, 2.2)\n" +"String 'Hi', Int 10, Double 2.200000\n" +"37\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:472 +msgid "" +"Specifying a format protects against incompatible argument types (just as a " +"prototype for a C function), and tries to convert the arguments to valid " +"types::" +msgstr "" + +#: ../../library/ctypes.rst:475 +msgid "" +">>> printf(b\"%d %d %d\", 1, 2, 3)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ctypes.ArgumentError: argument 2: TypeError: 'int' object cannot be " +"interpreted as ctypes.c_char_p\n" +">>> printf(b\"%s %d %f\\n\", b\"X\", 2, 3)\n" +"X 2 3.000000\n" +"13\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:484 +msgid "" +"If you have defined your own classes which you pass to function calls, you " +"have to implement a :meth:`~_CData.from_param` class method for them to be " +"able to use them in the :attr:`~_CFuncPtr.argtypes` sequence. " +"The :meth:`~_CData.from_param` class method receives the Python object " +"passed to the function call, it should do a typecheck or whatever is needed " +"to make sure this object is acceptable, and then return the object itself, " +"its :attr:`!_as_parameter_` attribute, or whatever you want to pass as the C " +"function argument in this case. Again, the result should be an integer, " +"string, bytes, a :mod:`ctypes` instance, or an object with an :attr:`!" +"_as_parameter_` attribute." +msgstr "" + +#: ../../library/ctypes.rst:498 +msgid "Return types" +msgstr "" + +#: ../../library/ctypes.rst:508 +msgid "" +"By default functions are assumed to return the C :c:expr:`int` type. Other " +"return types can be specified by setting the :attr:`~_CFuncPtr.restype` " +"attribute of the function object." +msgstr "" + +#: ../../library/ctypes.rst:512 +msgid "" +"The C prototype of :c:func:`time` is ``time_t time(time_t *)``. " +"Because :c:type:`time_t` might be of a different type than the default " +"return type :c:expr:`int`, you should specify the :attr:`!restype` " +"attribute::" +msgstr "" + +#: ../../library/ctypes.rst:516 +msgid ">>> libc.time.restype = c_time_t" +msgstr "" + +#: ../../library/ctypes.rst:518 +msgid "The argument types can be specified using :attr:`~_CFuncPtr.argtypes`::" +msgstr "" + +#: ../../library/ctypes.rst:520 +msgid ">>> libc.time.argtypes = (POINTER(c_time_t),)" +msgstr "" + +#: ../../library/ctypes.rst:522 +msgid "" +"To call the function with a ``NULL`` pointer as first argument, use " +"``None``::" +msgstr "" + +#: ../../library/ctypes.rst:524 +msgid "" +">>> print(libc.time(None))\n" +"1150640792" +msgstr "" + +#: ../../library/ctypes.rst:527 +msgid "" +"Here is a more advanced example, it uses the :func:`!strchr` function, which " +"expects a string pointer and a char, and returns a pointer to a string::" +msgstr "" + +#: ../../library/ctypes.rst:530 +msgid "" +">>> strchr = libc.strchr\n" +">>> strchr(b\"abcdef\", ord(\"d\"))\n" +"8059983\n" +">>> strchr.restype = c_char_p # c_char_p is a pointer to a string\n" +">>> strchr(b\"abcdef\", ord(\"d\"))\n" +"b'def'\n" +">>> print(strchr(b\"abcdef\", ord(\"x\")))\n" +"None\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:540 +msgid "" +"If you want to avoid the :func:`ord(\"x\") ` calls above, you can set " +"the :attr:`~_CFuncPtr.argtypes` attribute, and the second argument will be " +"converted from a single character Python bytes object into a C char:" +msgstr "" + +#: ../../library/ctypes.rst:544 +msgid "" +">>> strchr.restype = c_char_p\n" +">>> strchr.argtypes = [c_char_p, c_char]\n" +">>> strchr(b\"abcdef\", b\"d\")\n" +"b'def'\n" +">>> strchr(b\"abcdef\", b\"def\")\n" +"Traceback (most recent call last):\n" +"ctypes.ArgumentError: argument 2: TypeError: one character bytes, bytearray " +"or integer expected\n" +">>> print(strchr(b\"abcdef\", b\"x\"))\n" +"None\n" +">>> strchr(b\"abcdef\", b\"d\")\n" +"b'def'\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:559 +msgid "" +"You can also use a callable Python object (a function or a class for " +"example) as the :attr:`~_CFuncPtr.restype` attribute, if the foreign " +"function returns an integer. The callable will be called with the *integer* " +"the C function returns, and the result of this call will be used as the " +"result of your function call. This is useful to check for error return " +"values and automatically raise an exception::" +msgstr "" + +#: ../../library/ctypes.rst:565 +msgid "" +">>> GetModuleHandle = windll.kernel32.GetModuleHandleA\n" +">>> def ValidHandle(value):\n" +"... if value == 0:\n" +"... raise WinError()\n" +"... return value\n" +"...\n" +">>>\n" +">>> GetModuleHandle.restype = ValidHandle\n" +">>> GetModuleHandle(None)\n" +"486539264\n" +">>> GetModuleHandle(\"something silly\")\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" File \"\", line 3, in ValidHandle\n" +"OSError: [Errno 126] The specified module could not be found.\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:582 +msgid "" +"``WinError`` is a function which will call Windows ``FormatMessage()`` api " +"to get the string representation of an error code, and *returns* an " +"exception. ``WinError`` takes an optional error code parameter, if no one is " +"used, it calls :func:`GetLastError` to retrieve it." +msgstr "" + +#: ../../library/ctypes.rst:587 +msgid "" +"Please note that a much more powerful error checking mechanism is available " +"through the :attr:`~_CFuncPtr.errcheck` attribute; see the reference manual " +"for details." +msgstr "" + +#: ../../library/ctypes.rst:595 +msgid "Passing pointers (or: passing parameters by reference)" +msgstr "" + +#: ../../library/ctypes.rst:597 +msgid "" +"Sometimes a C api function expects a *pointer* to a data type as parameter, " +"probably to write into the corresponding location, or if the data is too " +"large to be passed by value. This is also known as *passing parameters by " +"reference*." +msgstr "" + +#: ../../library/ctypes.rst:601 +msgid "" +":mod:`ctypes` exports the :func:`byref` function which is used to pass " +"parameters by reference. The same effect can be achieved with " +"the :func:`pointer` function, although :func:`pointer` does a lot more work " +"since it constructs a real pointer object, so it is faster to " +"use :func:`byref` if you don't need the pointer object in Python itself::" +msgstr "" + +#: ../../library/ctypes.rst:607 +msgid "" +">>> i = c_int()\n" +">>> f = c_float()\n" +">>> s = create_string_buffer(b'\\000' * 32)\n" +">>> print(i.value, f.value, repr(s.value))\n" +"0 0.0 b''\n" +">>> libc.sscanf(b\"1 3.14 Hello\", b\"%d %f %s\",\n" +"... byref(i), byref(f), s)\n" +"3\n" +">>> print(i.value, f.value, repr(s.value))\n" +"1 3.1400001049 b'Hello'\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:623 +msgid "Structures and unions" +msgstr "" + +#: ../../library/ctypes.rst:625 +msgid "" +"Structures and unions must derive from the :class:`Structure` " +"and :class:`Union` base classes which are defined in the :mod:`ctypes` " +"module. Each subclass must define a :attr:`~Structure._fields_` " +"attribute. :attr:`!_fields_` must be a list of *2-tuples*, containing a " +"*field name* and a *field type*." +msgstr "" + +#: ../../library/ctypes.rst:630 +msgid "" +"The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " +"other derived :mod:`ctypes` type: structure, union, array, pointer." +msgstr "" + +#: ../../library/ctypes.rst:633 +msgid "" +"Here is a simple example of a POINT structure, which contains two integers " +"named *x* and *y*, and also shows how to initialize a structure in the " +"constructor::" +msgstr "" + +#: ../../library/ctypes.rst:636 +msgid "" +">>> from ctypes import *\n" +">>> class POINT(Structure):\n" +"... _fields_ = [(\"x\", c_int),\n" +"... (\"y\", c_int)]\n" +"...\n" +">>> point = POINT(10, 20)\n" +">>> print(point.x, point.y)\n" +"10 20\n" +">>> point = POINT(y=5)\n" +">>> print(point.x, point.y)\n" +"0 5\n" +">>> POINT(1, 2, 3)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: too many initializers\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:653 +msgid "" +"You can, however, build much more complicated structures. A structure can " +"itself contain other structures by using a structure as a field type." +msgstr "" + +#: ../../library/ctypes.rst:656 +msgid "" +"Here is a RECT structure which contains two POINTs named *upperleft* and " +"*lowerright*::" +msgstr "" + +#: ../../library/ctypes.rst:659 +msgid "" +">>> class RECT(Structure):\n" +"... _fields_ = [(\"upperleft\", POINT),\n" +"... (\"lowerright\", POINT)]\n" +"...\n" +">>> rc = RECT(point)\n" +">>> print(rc.upperleft.x, rc.upperleft.y)\n" +"0 5\n" +">>> print(rc.lowerright.x, rc.lowerright.y)\n" +"0 0\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:670 +msgid "" +"Nested structures can also be initialized in the constructor in several " +"ways::" +msgstr "" + +#: ../../library/ctypes.rst:672 +msgid "" +">>> r = RECT(POINT(1, 2), POINT(3, 4))\n" +">>> r = RECT((1, 2), (3, 4))" +msgstr "" + +#: ../../library/ctypes.rst:675 +msgid "" +"Field :term:`descriptor`\\s can be retrieved from the *class*, they are " +"useful for debugging because they can provide useful information. " +"See :class:`CField`::" +msgstr "" + +#: ../../library/ctypes.rst:679 +msgid "" +">>> POINT.x\n" +"\n" +">>> POINT.y\n" +"\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:690 +msgid "" +":mod:`ctypes` does not support passing unions or structures with bit-fields " +"to functions by value. While this may work on 32-bit x86, it's not " +"guaranteed by the library to work in the general case. Unions and " +"structures with bit-fields should always be passed to functions by pointer." +msgstr "" + +#: ../../library/ctypes.rst:696 +msgid "Structure/union layout, alignment and byte order" +msgstr "" + +#: ../../library/ctypes.rst:698 +msgid "" +"By default, Structure and Union fields are laid out in the same way the C " +"compiler does it. It is possible to override this behavior entirely by " +"specifying a :attr:`~Structure._layout_` class attribute in the subclass " +"definition; see the attribute documentation for details." +msgstr "" + +#: ../../library/ctypes.rst:703 +msgid "" +"It is possible to specify the maximum alignment for the fields by setting " +"the :attr:`~Structure._pack_` class attribute to a positive integer. This " +"matches what ``#pragma pack(n)`` does in MSVC." +msgstr "" + +#: ../../library/ctypes.rst:707 +msgid "" +"It is also possible to set a minimum alignment for how the subclass itself " +"is packed in the same way ``#pragma align(n)`` works in MSVC. This can be " +"achieved by specifying a :attr:`~Structure._align_` class attribute in the " +"subclass definition." +msgstr "" + +#: ../../library/ctypes.rst:712 +msgid "" +":mod:`ctypes` uses the native byte order for Structures and Unions. To " +"build structures with non-native byte order, you can use one of " +"the :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:`BigEndianUnion`, " +"and :class:`LittleEndianUnion` base classes. These classes cannot contain " +"pointer fields." +msgstr "" + +#: ../../library/ctypes.rst:722 +msgid "Bit fields in structures and unions" +msgstr "" + +#: ../../library/ctypes.rst:724 +msgid "" +"It is possible to create structures and unions containing bit fields. Bit " +"fields are only possible for integer fields, the bit width is specified as " +"the third item in the :attr:`~Structure._fields_` tuples::" +msgstr "" + +#: ../../library/ctypes.rst:728 +msgid "" +">>> class Int(Structure):\n" +"... _fields_ = [(\"first_16\", c_int, 16),\n" +"... (\"second_16\", c_int, 16)]\n" +"...\n" +">>> print(Int.first_16)\n" +"\n" +">>> print(Int.second_16)\n" +"" +msgstr "" + +#: ../../library/ctypes.rst:737 +msgid "" +"It is important to note that bit field allocation and layout in memory are " +"not defined as a C standard; their implementation is compiler-specific. By " +"default, Python will attempt to match the behavior of a \"native\" compiler " +"for the current platform. See the :attr:`~Structure._layout_` attribute for " +"details on the default behavior and how to change it." +msgstr "" + +#: ../../library/ctypes.rst:748 +msgid "Arrays" +msgstr "" + +#: ../../library/ctypes.rst:750 +msgid "" +"Arrays are sequences, containing a fixed number of instances of the same " +"type." +msgstr "" + +#: ../../library/ctypes.rst:752 +msgid "" +"The recommended way to create array types is by multiplying a data type with " +"a positive integer::" +msgstr "" + +#: ../../library/ctypes.rst:755 +msgid "TenPointsArrayType = POINT * 10" +msgstr "" + +#: ../../library/ctypes.rst:757 +msgid "" +"Here is an example of a somewhat artificial data type, a structure " +"containing 4 POINTs among other stuff::" +msgstr "" + +#: ../../library/ctypes.rst:760 +msgid "" +">>> from ctypes import *\n" +">>> class POINT(Structure):\n" +"... _fields_ = (\"x\", c_int), (\"y\", c_int)\n" +"...\n" +">>> class MyStruct(Structure):\n" +"... _fields_ = [(\"a\", c_int),\n" +"... (\"b\", c_float),\n" +"... (\"point_array\", POINT * 4)]\n" +">>>\n" +">>> print(len(MyStruct().point_array))\n" +"4\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:773 +msgid "Instances are created in the usual way, by calling the class::" +msgstr "" + +#: ../../library/ctypes.rst:775 +msgid "" +"arr = TenPointsArrayType()\n" +"for pt in arr:\n" +" print(pt.x, pt.y)" +msgstr "" + +#: ../../library/ctypes.rst:779 +msgid "" +"The above code print a series of ``0 0`` lines, because the array contents " +"is initialized to zeros." +msgstr "" + +#: ../../library/ctypes.rst:782 +msgid "Initializers of the correct type can also be specified::" +msgstr "" + +#: ../../library/ctypes.rst:784 +msgid "" +">>> from ctypes import *\n" +">>> TenIntegers = c_int * 10\n" +">>> ii = TenIntegers(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)\n" +">>> print(ii)\n" +"\n" +">>> for i in ii: print(i, end=\" \")\n" +"...\n" +"1 2 3 4 5 6 7 8 9 10\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:798 +msgid "Pointers" +msgstr "" + +#: ../../library/ctypes.rst:800 +msgid "" +"Pointer instances are created by calling the :func:`pointer` function on " +"a :mod:`ctypes` type::" +msgstr "" + +#: ../../library/ctypes.rst:803 +msgid "" +">>> from ctypes import *\n" +">>> i = c_int(42)\n" +">>> pi = pointer(i)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:808 +msgid "" +"Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " +"the object to which the pointer points, the ``i`` object above::" +msgstr "" + +#: ../../library/ctypes.rst:811 +msgid "" +">>> pi.contents\n" +"c_long(42)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:815 +msgid "" +"Note that :mod:`ctypes` does not have OOR (original object return), it " +"constructs a new, equivalent object each time you retrieve an attribute::" +msgstr "" + +#: ../../library/ctypes.rst:818 +msgid "" +">>> pi.contents is i\n" +"False\n" +">>> pi.contents is pi.contents\n" +"False\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:824 +msgid "" +"Assigning another :class:`c_int` instance to the pointer's contents " +"attribute would cause the pointer to point to the memory location where this " +"is stored::" +msgstr "" + +#: ../../library/ctypes.rst:827 +msgid "" +">>> i = c_int(99)\n" +">>> pi.contents = i\n" +">>> pi.contents\n" +"c_long(99)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:836 +msgid "Pointer instances can also be indexed with integers::" +msgstr "" + +#: ../../library/ctypes.rst:838 +msgid "" +">>> pi[0]\n" +"99\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:842 +msgid "Assigning to an integer index changes the pointed to value::" +msgstr "" + +#: ../../library/ctypes.rst:844 +msgid "" +">>> print(i)\n" +"c_long(99)\n" +">>> pi[0] = 22\n" +">>> print(i)\n" +"c_long(22)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:851 +msgid "" +"It is also possible to use indexes different from 0, but you must know what " +"you're doing, just as in C: You can access or change arbitrary memory " +"locations. Generally you only use this feature if you receive a pointer from " +"a C function, and you *know* that the pointer actually points to an array " +"instead of a single item." +msgstr "" + +#: ../../library/ctypes.rst:857 +msgid "" +"Behind the scenes, the :func:`pointer` function does more than simply create " +"pointer instances, it has to create pointer *types* first. This is done with " +"the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " +"returns a new type::" +msgstr "" + +#: ../../library/ctypes.rst:862 +msgid "" +">>> PI = POINTER(c_int)\n" +">>> PI\n" +"\n" +">>> PI(42)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: expected c_long instead of int\n" +">>> PI(c_int(42))\n" +"\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:873 +msgid "" +"Calling the pointer type without an argument creates a ``NULL`` pointer. " +"``NULL`` pointers have a ``False`` boolean value::" +msgstr "" + +#: ../../library/ctypes.rst:876 +msgid "" +">>> null_ptr = POINTER(c_int)()\n" +">>> print(bool(null_ptr))\n" +"False\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:881 +msgid "" +":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " +"dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" +msgstr "" + +#: ../../library/ctypes.rst:884 +msgid "" +">>> null_ptr[0]\n" +"Traceback (most recent call last):\n" +" ....\n" +"ValueError: NULL pointer access\n" +">>>\n" +"\n" +">>> null_ptr[0] = 1234\n" +"Traceback (most recent call last):\n" +" ....\n" +"ValueError: NULL pointer access\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:899 +msgid "Thread safety without the GIL" +msgstr "" + +#: ../../library/ctypes.rst:901 +msgid "" +"From Python 3.13 onward, the :term:`GIL` can be disabled on :term:`free " +"threaded ` builds. In ctypes, reads and writes to a single " +"object concurrently is safe, but not across multiple objects:" +msgstr "" + +#: ../../library/ctypes.rst:904 +msgid "" +">>> number = c_int(42)\n" +">>> pointer_a = pointer(number)\n" +">>> pointer_b = pointer(number)" +msgstr "" + +#: ../../library/ctypes.rst:910 +msgid "" +"In the above, it's only safe for one object to read and write to the address " +"at once if the GIL is disabled. So, ``pointer_a`` can be shared and written " +"to across multiple threads, but only if ``pointer_b`` is not also attempting " +"to do the same. If this is an issue, consider using " +"a :class:`threading.Lock` to synchronize access to memory:" +msgstr "" + +#: ../../library/ctypes.rst:915 +msgid "" +">>> import threading\n" +">>> lock = threading.Lock()\n" +">>> # Thread 1\n" +">>> with lock:\n" +"... pointer_a.contents = 24\n" +">>> # Thread 2\n" +">>> with lock:\n" +"... pointer_b.contents = 42" +msgstr "" + +#: ../../library/ctypes.rst:930 +msgid "Type conversions" +msgstr "" + +#: ../../library/ctypes.rst:932 +msgid "" +"Usually, ctypes does strict type checking. This means, if you have " +"``POINTER(c_int)`` in the :attr:`~_CFuncPtr.argtypes` list of a function or " +"as the type of a member field in a structure definition, only instances of " +"exactly the same type are accepted. There are some exceptions to this rule, " +"where ctypes accepts other objects. For example, you can pass compatible " +"array instances instead of pointer types. So, for ``POINTER(c_int)``, " +"ctypes accepts an array of c_int::" +msgstr "" + +#: ../../library/ctypes.rst:939 +msgid "" +">>> class Bar(Structure):\n" +"... _fields_ = [(\"count\", c_int), (\"values\", POINTER(c_int))]\n" +"...\n" +">>> bar = Bar()\n" +">>> bar.values = (c_int * 3)(1, 2, 3)\n" +">>> bar.count = 3\n" +">>> for i in range(bar.count):\n" +"... print(bar.values[i])\n" +"...\n" +"1\n" +"2\n" +"3\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:953 +msgid "" +"In addition, if a function argument is explicitly declared to be a pointer " +"type (such as ``POINTER(c_int)``) in :attr:`~_CFuncPtr.argtypes`, an object " +"of the pointed type (``c_int`` in this case) can be passed to the function. " +"ctypes will apply the required :func:`byref` conversion in this case " +"automatically." +msgstr "" + +#: ../../library/ctypes.rst:958 +msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" +msgstr "" + +#: ../../library/ctypes.rst:960 +msgid "" +">>> bar.values = None\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:965 +msgid "" +"Sometimes you have instances of incompatible types. In C, you can cast one " +"type into another type. :mod:`ctypes` provides a :func:`cast` function " +"which can be used in the same way. The ``Bar`` structure defined above " +"accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " +"``values`` field, but not instances of other types::" +msgstr "" + +#: ../../library/ctypes.rst:971 +msgid "" +">>> bar.values = (c_byte * 4)()\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: incompatible types, c_byte_Array_4 instance instead of LP_c_long " +"instance\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:977 +msgid "For these cases, the :func:`cast` function is handy." +msgstr "" + +#: ../../library/ctypes.rst:979 +msgid "" +"The :func:`cast` function can be used to cast a ctypes instance into a " +"pointer to a different ctypes data type. :func:`cast` takes two parameters, " +"a ctypes object that is or can be converted to a pointer of some kind, and a " +"ctypes pointer type. It returns an instance of the second argument, which " +"references the same memory block as the first argument::" +msgstr "" + +#: ../../library/ctypes.rst:985 +msgid "" +">>> a = (c_byte * 4)()\n" +">>> cast(a, POINTER(c_int))\n" +"\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:990 +msgid "" +"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " +"the structure::" +msgstr "" + +#: ../../library/ctypes.rst:993 +msgid "" +">>> bar = Bar()\n" +">>> bar.values = cast((c_byte * 4)(), POINTER(c_int))\n" +">>> print(bar.values[0])\n" +"0\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1003 +msgid "Incomplete Types" +msgstr "" + +#: ../../library/ctypes.rst:1005 +msgid "" +"*Incomplete Types* are structures, unions or arrays whose members are not " +"yet specified. In C, they are specified by forward declarations, which are " +"defined later::" +msgstr "" + +#: ../../library/ctypes.rst:1009 +msgid "" +"struct cell; /* forward declaration */\n" +"\n" +"struct cell {\n" +" char *name;\n" +" struct cell *next;\n" +"};" +msgstr "" + +#: ../../library/ctypes.rst:1016 +msgid "" +"The straightforward translation into ctypes code would be this, but it does " +"not work::" +msgstr "" + +#: ../../library/ctypes.rst:1019 +msgid "" +">>> class cell(Structure):\n" +"... _fields_ = [(\"name\", c_char_p),\n" +"... (\"next\", POINTER(cell))]\n" +"...\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" File \"\", line 2, in cell\n" +"NameError: name 'cell' is not defined\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1029 +msgid "" +"because the new ``class cell`` is not available in the class statement " +"itself. In :mod:`ctypes`, we can define the ``cell`` class and set " +"the :attr:`~Structure._fields_` attribute later, after the class statement::" +msgstr "" + +#: ../../library/ctypes.rst:1033 +msgid "" +">>> from ctypes import *\n" +">>> class cell(Structure):\n" +"... pass\n" +"...\n" +">>> cell._fields_ = [(\"name\", c_char_p),\n" +"... (\"next\", POINTER(cell))]\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1041 +msgid "" +"Let's try it. We create two instances of ``cell``, and let them point to " +"each other, and finally follow the pointer chain a few times::" +msgstr "" + +#: ../../library/ctypes.rst:1044 +msgid "" +">>> c1 = cell()\n" +">>> c1.name = b\"foo\"\n" +">>> c2 = cell()\n" +">>> c2.name = b\"bar\"\n" +">>> c1.next = pointer(c2)\n" +">>> c2.next = pointer(c1)\n" +">>> p = c1\n" +">>> for i in range(8):\n" +"... print(p.name, end=\" \")\n" +"... p = p.next[0]\n" +"...\n" +"foo bar foo bar foo bar foo bar\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1062 +msgid "Callback functions" +msgstr "" + +#: ../../library/ctypes.rst:1064 +msgid "" +":mod:`ctypes` allows creating C callable function pointers from Python " +"callables. These are sometimes called *callback functions*." +msgstr "" + +#: ../../library/ctypes.rst:1067 +msgid "" +"First, you must create a class for the callback function. The class knows " +"the calling convention, the return type, and the number and types of " +"arguments this function will receive." +msgstr "" + +#: ../../library/ctypes.rst:1071 +msgid "" +"The :func:`CFUNCTYPE` factory function creates types for callback functions " +"using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " +"factory function creates types for callback functions using the ``stdcall`` " +"calling convention." +msgstr "" + +#: ../../library/ctypes.rst:1076 +msgid "" +"Both of these factory functions are called with the result type as first " +"argument, and the callback functions expected argument types as the " +"remaining arguments." +msgstr "" + +#: ../../library/ctypes.rst:1080 +msgid "" +"I will present an example here which uses the standard C library's :c:func:`!" +"qsort` function, that is used to sort items with the help of a callback " +"function. :c:func:`!qsort` will be used to sort an array of integers::" +msgstr "" + +#: ../../library/ctypes.rst:1084 +msgid "" +">>> IntArray5 = c_int * 5\n" +">>> ia = IntArray5(5, 1, 7, 33, 99)\n" +">>> qsort = libc.qsort\n" +">>> qsort.restype = None\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1090 +msgid "" +":func:`!qsort` must be called with a pointer to the data to sort, the number " +"of items in the data array, the size of one item, and a pointer to the " +"comparison function, the callback. The callback will then be called with two " +"pointers to items, and it must return a negative integer if the first item " +"is smaller than the second, a zero if they are equal, and a positive integer " +"otherwise." +msgstr "" + +#: ../../library/ctypes.rst:1096 +msgid "" +"So our callback function receives pointers to integers, and must return an " +"integer. First we create the ``type`` for the callback function::" +msgstr "" + +#: ../../library/ctypes.rst:1099 +msgid "" +">>> CMPFUNC = CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1102 +msgid "" +"To get started, here is a simple callback that shows the values it gets " +"passed::" +msgstr "" + +#: ../../library/ctypes.rst:1105 +msgid "" +">>> def py_cmp_func(a, b):\n" +"... print(\"py_cmp_func\", a[0], b[0])\n" +"... return 0\n" +"...\n" +">>> cmp_func = CMPFUNC(py_cmp_func)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1112 +msgid "The result::" +msgstr "" + +#: ../../library/ctypes.rst:1114 +msgid "" +">>> qsort(ia, len(ia), sizeof(c_int), cmp_func)\n" +"py_cmp_func 5 1\n" +"py_cmp_func 33 99\n" +"py_cmp_func 7 33\n" +"py_cmp_func 5 7\n" +"py_cmp_func 1 7\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1122 +msgid "Now we can actually compare the two items and return a useful result::" +msgstr "" + +#: ../../library/ctypes.rst:1124 +msgid "" +">>> def py_cmp_func(a, b):\n" +"... print(\"py_cmp_func\", a[0], b[0])\n" +"... return a[0] - b[0]\n" +"...\n" +">>>\n" +">>> qsort(ia, len(ia), sizeof(c_int), CMPFUNC(py_cmp_func))\n" +"py_cmp_func 5 1\n" +"py_cmp_func 33 99\n" +"py_cmp_func 7 33\n" +"py_cmp_func 1 7\n" +"py_cmp_func 5 7\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1137 +msgid "As we can easily check, our array is sorted now::" +msgstr "" + +#: ../../library/ctypes.rst:1139 +msgid "" +">>> for i in ia: print(i, end=\" \")\n" +"...\n" +"1 5 7 33 99\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1144 +msgid "" +"The function factories can be used as decorator factories, so we may as well " +"write::" +msgstr "" + +#: ../../library/ctypes.rst:1147 +msgid "" +">>> @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" +"... def py_cmp_func(a, b):\n" +"... print(\"py_cmp_func\", a[0], b[0])\n" +"... return a[0] - b[0]\n" +"...\n" +">>> qsort(ia, len(ia), sizeof(c_int), py_cmp_func)\n" +"py_cmp_func 5 1\n" +"py_cmp_func 33 99\n" +"py_cmp_func 7 33\n" +"py_cmp_func 1 7\n" +"py_cmp_func 5 7\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1162 +msgid "" +"Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " +"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " +"garbage collected, crashing your program when a callback is made." +msgstr "" + +#: ../../library/ctypes.rst:1166 +msgid "" +"Also, note that if the callback function is called in a thread created " +"outside of Python's control (e.g. by the foreign code that calls the " +"callback), ctypes creates a new dummy Python thread on every invocation. " +"This behavior is correct for most purposes, but it means that values stored " +"with :class:`threading.local` will *not* survive across different callbacks, " +"even when those calls are made from the same C thread." +msgstr "" + +#: ../../library/ctypes.rst:1176 +msgid "Accessing values exported from dlls" +msgstr "" + +#: ../../library/ctypes.rst:1178 +msgid "" +"Some shared libraries not only export functions, they also export variables. " +"An example in the Python library itself is the :c:data:`Py_Version`, Python " +"runtime version number encoded in a single constant integer." +msgstr "" + +#: ../../library/ctypes.rst:1182 +msgid "" +":mod:`ctypes` can access values like this with the :meth:`~_CData.in_dll` " +"class methods of the type. *pythonapi* is a predefined symbol giving access " +"to the Python C api::" +msgstr "" + +#: ../../library/ctypes.rst:1186 +msgid "" +">>> version = ctypes.c_int.in_dll(ctypes.pythonapi, \"Py_Version\")\n" +">>> print(hex(version.value))\n" +"0x30c00a0" +msgstr "" + +#: ../../library/ctypes.rst:1190 +msgid "" +"An extended example which also demonstrates the use of pointers accesses " +"the :c:data:`PyImport_FrozenModules` pointer exported by Python." +msgstr "" + +#: ../../library/ctypes.rst:1193 +msgid "Quoting the docs for that value:" +msgstr "" + +#: ../../library/ctypes.rst:1195 +msgid "" +"This pointer is initialized to point to an array of :c:struct:`_frozen` " +"records, terminated by one whose members are all ``NULL`` or zero. When a " +"frozen module is imported, it is searched in this table. Third-party code " +"could play tricks with this to provide a dynamically created collection of " +"frozen modules." +msgstr "" + +#: ../../library/ctypes.rst:1200 +msgid "" +"So manipulating this pointer could even prove useful. To restrict the " +"example size, we show only how this table can be read with :mod:`ctypes`::" +msgstr "" + +#: ../../library/ctypes.rst:1203 +msgid "" +">>> from ctypes import *\n" +">>>\n" +">>> class struct_frozen(Structure):\n" +"... _fields_ = [(\"name\", c_char_p),\n" +"... (\"code\", POINTER(c_ubyte)),\n" +"... (\"size\", c_int),\n" +"... (\"get_code\", POINTER(c_ubyte)), # Function pointer\n" +"... ]\n" +"...\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1214 +msgid "" +"We have defined the :c:struct:`_frozen` data type, so we can get the pointer " +"to the table::" +msgstr "" + +#: ../../library/ctypes.rst:1217 +msgid "" +">>> FrozenTable = POINTER(struct_frozen)\n" +">>> table = FrozenTable.in_dll(pythonapi, \"_PyImport_FrozenBootstrap\")\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1221 +msgid "" +"Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " +"we can iterate over it, but we just have to make sure that our loop " +"terminates, because pointers have no size. Sooner or later it would probably " +"crash with an access violation or whatever, so it's better to break out of " +"the loop when we hit the ``NULL`` entry::" +msgstr "" + +#: ../../library/ctypes.rst:1227 +msgid "" +">>> for item in table:\n" +"... if item.name is None:\n" +"... break\n" +"... print(item.name.decode(\"ascii\"), item.size)\n" +"...\n" +"_frozen_importlib 31764\n" +"_frozen_importlib_external 41499\n" +"zipimport 12345\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1237 +msgid "" +"The fact that standard Python has a frozen module and a frozen package " +"(indicated by the negative ``size`` member) is not well known, it is only " +"used for testing. Try it out with ``import __hello__`` for example." +msgstr "" + +#: ../../library/ctypes.rst:1245 +msgid "Surprises" +msgstr "" + +#: ../../library/ctypes.rst:1247 +msgid "" +"There are some edges in :mod:`ctypes` where you might expect something other " +"than what actually happens." +msgstr "" + +#: ../../library/ctypes.rst:1250 +msgid "Consider the following example::" +msgstr "" + +#: ../../library/ctypes.rst:1252 +msgid "" +">>> from ctypes import *\n" +">>> class POINT(Structure):\n" +"... _fields_ = (\"x\", c_int), (\"y\", c_int)\n" +"...\n" +">>> class RECT(Structure):\n" +"... _fields_ = (\"a\", POINT), (\"b\", POINT)\n" +"...\n" +">>> p1 = POINT(1, 2)\n" +">>> p2 = POINT(3, 4)\n" +">>> rc = RECT(p1, p2)\n" +">>> print(rc.a.x, rc.a.y, rc.b.x, rc.b.y)\n" +"1 2 3 4\n" +">>> # now swap the two points\n" +">>> rc.a, rc.b = rc.b, rc.a\n" +">>> print(rc.a.x, rc.a.y, rc.b.x, rc.b.y)\n" +"3 4 3 4\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1270 +msgid "" +"Hm. We certainly expected the last statement to print ``3 4 1 2``. What " +"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" +msgstr "" + +#: ../../library/ctypes.rst:1273 +msgid "" +">>> temp0, temp1 = rc.b, rc.a\n" +">>> rc.a = temp0\n" +">>> rc.b = temp1\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1278 +msgid "" +"Note that ``temp0`` and ``temp1`` are objects still using the internal " +"buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " +"buffer contents of ``temp0`` into ``rc`` 's buffer. This, in turn, changes " +"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " +"have the expected effect." +msgstr "" + +#: ../../library/ctypes.rst:1284 +msgid "" +"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " +"doesn't *copy* the sub-object, instead it retrieves a wrapper object " +"accessing the root-object's underlying buffer." +msgstr "" + +#: ../../library/ctypes.rst:1288 +msgid "" +"Another example that may behave differently from what one would expect is " +"this::" +msgstr "" + +#: ../../library/ctypes.rst:1290 +msgid "" +">>> s = c_char_p()\n" +">>> s.value = b\"abc def ghi\"\n" +">>> s.value\n" +"b'abc def ghi'\n" +">>> s.value is s.value\n" +"False\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1300 +msgid "" +"Objects instantiated from :class:`c_char_p` can only have their value set to " +"bytes or integers." +msgstr "" + +#: ../../library/ctypes.rst:1303 +msgid "" +"Why is it printing ``False``? ctypes instances are objects containing a " +"memory block plus some :term:`descriptor`\\s accessing the contents of the " +"memory. Storing a Python object in the memory block does not store the " +"object itself, instead the ``contents`` of the object is stored. Accessing " +"the contents again constructs a new Python object each time!" +msgstr "" + +#: ../../library/ctypes.rst:1313 +msgid "Variable-sized data types" +msgstr "" + +#: ../../library/ctypes.rst:1315 +msgid "" +":mod:`ctypes` provides some support for variable-sized arrays and structures." +msgstr "" + +#: ../../library/ctypes.rst:1317 +msgid "" +"The :func:`resize` function can be used to resize the memory buffer of an " +"existing ctypes object. The function takes the object as first argument, " +"and the requested size in bytes as the second argument. The memory block " +"cannot be made smaller than the natural memory block specified by the " +"objects type, a :exc:`ValueError` is raised if this is tried::" +msgstr "" + +#: ../../library/ctypes.rst:1323 +msgid "" +">>> short_array = (c_short * 4)()\n" +">>> print(sizeof(short_array))\n" +"8\n" +">>> resize(short_array, 4)\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: minimum size is 8\n" +">>> resize(short_array, 32)\n" +">>> sizeof(short_array)\n" +"32\n" +">>> sizeof(type(short_array))\n" +"8\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1337 +msgid "" +"This is nice and fine, but how would one access the additional elements " +"contained in this array? Since the type still only knows about 4 elements, " +"we get errors accessing other elements::" +msgstr "" + +#: ../../library/ctypes.rst:1341 +msgid "" +">>> short_array[:]\n" +"[0, 0, 0, 0]\n" +">>> short_array[7]\n" +"Traceback (most recent call last):\n" +" ...\n" +"IndexError: invalid index\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1349 +msgid "" +"Another way to use variable-sized data types with :mod:`ctypes` is to use " +"the dynamic nature of Python, and (re-)define the data type after the " +"required size is already known, on a case by case basis." +msgstr "" + +#: ../../library/ctypes.rst:1357 +msgid "ctypes reference" +msgstr "" + +#: ../../library/ctypes.rst:1363 +msgid "Finding shared libraries" +msgstr "" + +#: ../../library/ctypes.rst:1365 +msgid "" +"When programming in a compiled language, shared libraries are accessed when " +"compiling/linking a program, and when the program is run." +msgstr "" + +#: ../../library/ctypes.rst:1368 +msgid "" +"The purpose of the :func:`~ctypes.util.find_library` function is to locate a " +"library in a way similar to what the compiler or runtime loader does (on " +"platforms with several versions of a shared library the most recent should " +"be loaded), while the ctypes library loaders act like when a program is run, " +"and call the runtime loader directly." +msgstr "" + +#: ../../library/ctypes.rst:1374 +msgid "" +"The :mod:`!ctypes.util` module provides a function which can help to " +"determine the library to load." +msgstr "" + +#: ../../library/ctypes.rst:1382 +msgid "" +"Try to find a library and return a pathname. *name* is the library name " +"without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version " +"number (this is the form used for the posix linker option :option:`!-l`). " +"If no library can be found, returns ``None``." +msgstr "" + +#: ../../library/ctypes.rst:1387 ../../library/ctypes.rst:2135 +msgid "The exact functionality is system dependent." +msgstr "" + +#: ../../library/ctypes.rst:1389 +msgid "" +"On Linux, :func:`~ctypes.util.find_library` tries to run external programs " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library " +"file. It returns the filename of the library file." +msgstr "" + +#: ../../library/ctypes.rst:1393 +msgid "" +"On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " +"when searching for libraries, if a library cannot be found by any other " +"means." +msgstr "" + +#: ../../library/ctypes.rst:1397 +msgid "Here are some examples::" +msgstr "" + +#: ../../library/ctypes.rst:1399 +msgid "" +">>> from ctypes.util import find_library\n" +">>> find_library(\"m\")\n" +"'libm.so.6'\n" +">>> find_library(\"c\")\n" +"'libc.so.6'\n" +">>> find_library(\"bz2\")\n" +"'libbz2.so.1.0'\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1408 +msgid "" +"On macOS and Android, :func:`~ctypes.util.find_library` uses the system's " +"standard naming schemes and paths to locate the library, and returns a full " +"pathname if successful::" +msgstr "" + +#: ../../library/ctypes.rst:1412 +msgid "" +">>> from ctypes.util import find_library\n" +">>> find_library(\"c\")\n" +"'/usr/lib/libc.dylib'\n" +">>> find_library(\"m\")\n" +"'/usr/lib/libm.dylib'\n" +">>> find_library(\"bz2\")\n" +"'/usr/lib/libbz2.dylib'\n" +">>> find_library(\"AGL\")\n" +"'/System/Library/Frameworks/AGL.framework/AGL'\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1423 +msgid "" +"On Windows, :func:`~ctypes.util.find_library` searches along the system " +"search path, and returns the full pathname, but since there is no predefined " +"naming scheme a call like ``find_library(\"c\")`` will fail and return " +"``None``." +msgstr "" + +#: ../../library/ctypes.rst:1427 +msgid "" +"If wrapping a shared library with :mod:`ctypes`, it *may* be better to " +"determine the shared library name at development time, and hardcode that " +"into the wrapper module instead of using :func:`~ctypes.util.find_library` " +"to locate the library at runtime." +msgstr "" + +#: ../../library/ctypes.rst:1435 +msgid "Listing loaded shared libraries" +msgstr "" + +#: ../../library/ctypes.rst:1437 +msgid "" +"When writing code that relies on code loaded from shared libraries, it can " +"be useful to know which shared libraries have already been loaded into the " +"current process." +msgstr "" + +#: ../../library/ctypes.rst:1441 +msgid "" +"The :mod:`!ctypes.util` module provides the :func:`~ctypes.util.dllist` " +"function, which calls the different APIs provided by the various platforms " +"to help determine which shared libraries have already been loaded into the " +"current process." +msgstr "" + +#: ../../library/ctypes.rst:1445 +msgid "" +"The exact output of this function will be system dependent. On most " +"platforms, the first entry of this list represents the current process " +"itself, which may be an empty string. For example, on glibc-based Linux, the " +"return may look like::" +msgstr "" + +#: ../../library/ctypes.rst:1450 +msgid "" +">>> from ctypes.util import dllist\n" +">>> dllist()\n" +"['', 'linux-vdso.so.1', '/lib/x86_64-linux-gnu/libm.so.6', '/lib/x86_64-" +"linux-gnu/libc.so.6', ... ]" +msgstr "" + +#: ../../library/ctypes.rst:1457 +msgid "Loading shared libraries" +msgstr "" + +#: ../../library/ctypes.rst:1459 +msgid "" +"There are several ways to load shared libraries into the Python process. " +"One way is to instantiate one of the following classes:" +msgstr "" + +#: ../../library/ctypes.rst:1465 +msgid "" +"Instances of this class represent loaded shared libraries. Functions in " +"these libraries use the standard C calling convention, and are assumed to " +"return :c:expr:`int`." +msgstr "" + +#: ../../library/ctypes.rst:1469 +msgid "" +"On Windows creating a :class:`CDLL` instance may fail even if the DLL name " +"exists. When a dependent DLL of the loaded DLL is not found, " +"a :exc:`OSError` error is raised with the message *\"[WinError 126] The " +"specified module could not be found\".* This error message does not contain " +"the name of the missing DLL because the Windows API does not return this " +"information making this error hard to diagnose. To resolve this error and " +"determine which DLL is not found, you need to find the list of dependent " +"DLLs and determine which one is not found using Windows debugging and " +"tracing tools." +msgstr "" + +#: ../../library/ctypes.rst:1481 ../../library/ctypes.rst:1506 +#: ../../library/ctypes.rst:1519 ../../library/ctypes.rst:1537 +msgid "The *name* parameter can now be a :term:`path-like object`." +msgstr "" + +#: ../../library/ctypes.rst:1485 +msgid "" +"`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." +msgstr "" + +#: ../../library/ctypes.rst:1491 +msgid "" +"Instances of this class represent loaded shared libraries, functions in " +"these libraries use the ``stdcall`` calling convention, and are assumed to " +"return the windows specific :class:`HRESULT` code. :class:`HRESULT` values " +"contain information specifying whether the function call failed or " +"succeeded, together with additional error code. If the return value signals " +"a failure, an :class:`OSError` is automatically raised." +msgstr "" + +#: ../../library/ctypes.rst:1498 ../../library/ctypes.rst:1515 +#: ../../library/ctypes.rst:1659 ../../library/ctypes.rst:1667 +#: ../../library/ctypes.rst:1839 ../../library/ctypes.rst:1891 +#: ../../library/ctypes.rst:2043 ../../library/ctypes.rst:2115 +#: ../../library/ctypes.rst:2124 ../../library/ctypes.rst:2149 +#: ../../library/ctypes.rst:2163 ../../library/ctypes.rst:2172 +#: ../../library/ctypes.rst:2181 ../../library/ctypes.rst:2196 +#: ../../library/ctypes.rst:2263 ../../library/ctypes.rst:2290 +#: ../../library/ctypes.rst:2690 ../../library/ctypes.rst:3088 +msgid "Availability" +msgstr "" + +#: ../../library/ctypes.rst:1500 +msgid "" +":exc:`WindowsError` used to be raised, which is now an alias " +"of :exc:`OSError`." +msgstr "" + +#: ../../library/ctypes.rst:1511 +msgid "" +"Instances of this class represent loaded shared libraries, functions in " +"these libraries use the ``stdcall`` calling convention, and are assumed to " +"return :c:expr:`int` by default." +msgstr "" + +#: ../../library/ctypes.rst:1522 +msgid "" +"The Python :term:`global interpreter lock` is released before calling any " +"function exported by these libraries, and reacquired afterwards." +msgstr "" + +#: ../../library/ctypes.rst:1528 +msgid "" +"Instances of this class behave like :class:`CDLL` instances, except that the " +"Python GIL is *not* released during the function call, and after the " +"function execution the Python error flag is checked. If the error flag is " +"set, a Python exception is raised." +msgstr "" + +#: ../../library/ctypes.rst:1533 +msgid "Thus, this is only useful to call Python C api functions directly." +msgstr "" + +#: ../../library/ctypes.rst:1539 +msgid "" +"All these classes can be instantiated by calling them with at least one " +"argument, the pathname of the shared library. If you have an existing " +"handle to an already loaded shared library, it can be passed as the " +"``handle`` named parameter, otherwise the underlying platform's :c:func:`!" +"dlopen` or :c:func:`!LoadLibrary` function is used to load the library into " +"the process, and to get a handle to it." +msgstr "" + +#: ../../library/ctypes.rst:1546 +msgid "" +"The *mode* parameter can be used to specify how the library is loaded. For " +"details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " +"ignored. On posix systems, RTLD_NOW is always added, and is not " +"configurable." +msgstr "" + +#: ../../library/ctypes.rst:1551 +msgid "" +"The *use_errno* parameter, when set to true, enables a ctypes mechanism that " +"allows accessing the system :data:`errno` error number in a safe " +"way. :mod:`ctypes` maintains a thread-local copy of the " +"system's :data:`errno` variable; if you call foreign functions created with " +"``use_errno=True`` then the :data:`errno` value before the function call is " +"swapped with the ctypes private copy, the same happens immediately after the " +"function call." +msgstr "" + +#: ../../library/ctypes.rst:1558 +msgid "" +"The function :func:`ctypes.get_errno` returns the value of the ctypes " +"private copy, and the function :func:`ctypes.set_errno` changes the ctypes " +"private copy to a new value and returns the former value." +msgstr "" + +#: ../../library/ctypes.rst:1562 +msgid "" +"The *use_last_error* parameter, when set to true, enables the same mechanism " +"for the Windows error code which is managed by the :func:`GetLastError` " +"and :func:`!SetLastError` Windows API " +"functions; :func:`ctypes.get_last_error` and :func:`ctypes.set_last_error` " +"are used to request and change the ctypes private copy of the windows error " +"code." +msgstr "" + +#: ../../library/ctypes.rst:1568 +msgid "" +"The *winmode* parameter is used on Windows to specify how the library is " +"loaded (since *mode* is ignored). It takes any value that is valid for the " +"Win32 API ``LoadLibraryEx`` flags parameter. When omitted, the default is to " +"use the flags that result in the most secure DLL load, which avoids issues " +"such as DLL hijacking. Passing the full path to the DLL is the safest way to " +"ensure the correct library and dependencies are loaded." +msgstr "" + +#: ../../library/ctypes.rst:1575 +msgid "Added *winmode* parameter." +msgstr "" + +#: ../../library/ctypes.rst:1582 +msgid "" +"Flag to use as *mode* parameter. On platforms where this flag is not " +"available, it is defined as the integer zero." +msgstr "" + +#: ../../library/ctypes.rst:1589 +msgid "" +"Flag to use as *mode* parameter. On platforms where this is not available, " +"it is the same as *RTLD_GLOBAL*." +msgstr "" + +#: ../../library/ctypes.rst:1596 +msgid "" +"The default mode which is used to load shared libraries. On OSX 10.3, this " +"is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." +msgstr "" + +#: ../../library/ctypes.rst:1599 +msgid "" +"Instances of these classes have no public methods. Functions exported by " +"the shared library can be accessed as attributes or by index. Please note " +"that accessing the function through an attribute caches the result and " +"therefore accessing it repeatedly returns the same object each time. On the " +"other hand, accessing it through an index returns a new object each time::" +msgstr "" + +#: ../../library/ctypes.rst:1605 +msgid "" +">>> from ctypes import CDLL\n" +">>> libc = CDLL(\"libc.so.6\") # On Linux\n" +">>> libc.time == libc.time\n" +"True\n" +">>> libc['time'] == libc['time']\n" +"False" +msgstr "" + +#: ../../library/ctypes.rst:1612 +msgid "" +"The following public attributes are available, their name starts with an " +"underscore to not clash with exported function names:" +msgstr "" + +#: ../../library/ctypes.rst:1618 +msgid "The system handle used to access the library." +msgstr "" + +#: ../../library/ctypes.rst:1623 +msgid "The name of the library passed in the constructor." +msgstr "" + +#: ../../library/ctypes.rst:1625 +msgid "" +"Shared libraries can also be loaded by using one of the prefabricated " +"objects, which are instances of the :class:`LibraryLoader` class, either by " +"calling the :meth:`~LibraryLoader.LoadLibrary` method, or by retrieving the " +"library as attribute of the loader instance." +msgstr "" + +#: ../../library/ctypes.rst:1633 +msgid "" +"Class which loads shared libraries. *dlltype* should be one of " +"the :class:`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." +msgstr "" + +#: ../../library/ctypes.rst:1636 +msgid "" +":meth:`!__getattr__` has special behavior: It allows loading a shared " +"library by accessing it as attribute of a library loader instance. The " +"result is cached, so repeated attribute accesses return the same library " +"each time." +msgstr "" + +#: ../../library/ctypes.rst:1642 +msgid "" +"Load a shared library into the process and return it. This method always " +"returns a new instance of the library." +msgstr "" + +#: ../../library/ctypes.rst:1646 +msgid "These prefabricated library loaders are available:" +msgstr "" + +#: ../../library/ctypes.rst:1651 +msgid "Creates :class:`CDLL` instances." +msgstr "" + +#: ../../library/ctypes.rst:1657 +msgid "Creates :class:`WinDLL` instances." +msgstr "" + +#: ../../library/ctypes.rst:1665 +msgid "Creates :class:`OleDLL` instances." +msgstr "" + +#: ../../library/ctypes.rst:1673 +msgid "Creates :class:`PyDLL` instances." +msgstr "" + +#: ../../library/ctypes.rst:1676 +msgid "" +"For accessing the C Python api directly, a ready-to-use Python shared " +"library object is available:" +msgstr "" + +#: ../../library/ctypes.rst:1682 +msgid "" +"An instance of :class:`PyDLL` that exposes Python C API functions as " +"attributes. Note that all these functions are assumed to return " +"C :c:expr:`int`, which is of course not always the truth, so you have to " +"assign the correct :attr:`!restype` attribute to use these functions." +msgstr "" + +#: ../../library/ctypes.rst:1687 ../../library/ctypes.rst:1689 +msgid "" +"Loading a library through any of these objects raises an :ref:`auditing " +"event ` ``ctypes.dlopen`` with string argument ``name``, the name " +"used to load the library." +msgstr "" + +#: ../../library/ctypes.rst:1693 ../../library/ctypes.rst:1695 +msgid "" +"Accessing a function on a loaded library raises an auditing event " +"``ctypes.dlsym`` with arguments ``library`` (the library object) and " +"``name`` (the symbol's name as a string or integer)." +msgstr "" + +#: ../../library/ctypes.rst:1699 ../../library/ctypes.rst:1701 +msgid "" +"In cases when only the library handle is available rather than the object, " +"accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " +"arguments ``handle`` (the raw library handle) and ``name``." +msgstr "" + +#: ../../library/ctypes.rst:1708 +msgid "Foreign functions" +msgstr "" + +#: ../../library/ctypes.rst:1710 +msgid "" +"As explained in the previous section, foreign functions can be accessed as " +"attributes of loaded shared libraries. The function objects created in this " +"way by default accept any number of arguments, accept any ctypes data " +"instances as arguments, and return the default result type specified by the " +"library loader." +msgstr "" + +#: ../../library/ctypes.rst:1715 +msgid "" +"They are instances of a private local class :class:`!_FuncPtr` (not exposed " +"in :mod:`!ctypes`) which inherits from the private :class:`_CFuncPtr` class:" +msgstr "" + +#: ../../library/ctypes.rst:1718 +msgid "" +">>> import ctypes\n" +">>> lib = ctypes.CDLL(None)\n" +">>> issubclass(lib._FuncPtr, ctypes._CFuncPtr)\n" +"True\n" +">>> lib._FuncPtr is ctypes._CFuncPtr\n" +"False" +msgstr "" + +#: ../../library/ctypes.rst:1729 +msgid "Base class for C callable foreign functions." +msgstr "" + +#: ../../library/ctypes.rst:1731 +msgid "" +"Instances of foreign functions are also C compatible data types; they " +"represent C function pointers." +msgstr "" + +#: ../../library/ctypes.rst:1734 +msgid "" +"This behavior can be customized by assigning to special attributes of the " +"foreign function object." +msgstr "" + +#: ../../library/ctypes.rst:1739 +msgid "" +"Assign a ctypes type to specify the result type of the foreign function. Use " +"``None`` for :c:expr:`void`, a function not returning anything." +msgstr "" + +#: ../../library/ctypes.rst:1742 +msgid "" +"It is possible to assign a callable Python object that is not a ctypes type, " +"in this case the function is assumed to return a C :c:expr:`int`, and the " +"callable will be called with this integer, allowing further processing or " +"error checking. Using this is deprecated, for more flexible post processing " +"or error checking use a ctypes data type as :attr:`!restype` and assign a " +"callable to the :attr:`errcheck` attribute." +msgstr "" + +#: ../../library/ctypes.rst:1751 +msgid "" +"Assign a tuple of ctypes types to specify the argument types that the " +"function accepts. Functions using the ``stdcall`` calling convention can " +"only be called with the same number of arguments as the length of this " +"tuple; functions using the C calling convention accept additional, " +"unspecified arguments as well." +msgstr "" + +#: ../../library/ctypes.rst:1757 +msgid "" +"When a foreign function is called, each actual argument is passed to " +"the :meth:`~_CData.from_param` class method of the items in " +"the :attr:`argtypes` tuple, this method allows adapting the actual argument " +"to an object that the foreign function accepts. For example, " +"a :class:`c_char_p` item in the :attr:`argtypes` tuple will convert a string " +"passed as argument into a bytes object using ctypes conversion rules." +msgstr "" + +#: ../../library/ctypes.rst:1764 +msgid "" +"New: It is now possible to put items in argtypes which are not ctypes types, " +"but each item must have a :meth:`~_CData.from_param` method which returns a " +"value usable as argument (integer, string, ctypes instance). This allows " +"defining adapters that can adapt custom objects as function parameters." +msgstr "" + +#: ../../library/ctypes.rst:1771 +msgid "" +"Assign a Python function or another callable to this attribute. The callable " +"will be called with three or more arguments:" +msgstr "" + +#: ../../library/ctypes.rst:1778 +msgid "" +"*result* is what the foreign function returns, as specified by the :attr:`!" +"restype` attribute." +msgstr "" + +#: ../../library/ctypes.rst:1781 +msgid "" +"*func* is the foreign function object itself, this allows reusing the same " +"callable object to check or post process the results of several functions." +msgstr "" + +#: ../../library/ctypes.rst:1785 +msgid "" +"*arguments* is a tuple containing the parameters originally passed to the " +"function call, this allows specializing the behavior on the arguments used." +msgstr "" + +#: ../../library/ctypes.rst:1789 +msgid "" +"The object that this function returns will be returned from the foreign " +"function call, but it can also check the result value and raise an exception " +"if the foreign function call failed." +msgstr "" + +#: ../../library/ctypes.rst:1794 ../../library/ctypes.rst:1796 +msgid "" +"On Windows, when a foreign function call raises a system exception (for " +"example, due to an access violation), it will be captured and replaced with " +"a suitable Python exception. Further, an auditing event " +"``ctypes.set_exception`` with argument ``code`` will be raised, allowing an " +"audit hook to replace the exception with its own." +msgstr "" + +#: ../../library/ctypes.rst:1802 ../../library/ctypes.rst:1804 +msgid "" +"Some ways to invoke foreign function calls as well as some of the functions " +"in this module may raise an auditing event ``ctypes.call_function`` with " +"arguments ``function pointer`` and ``arguments``." +msgstr "" + +#: ../../library/ctypes.rst:1811 +msgid "Function prototypes" +msgstr "" + +#: ../../library/ctypes.rst:1813 +msgid "" +"Foreign functions can also be created by instantiating function prototypes. " +"Function prototypes are similar to function prototypes in C; they describe a " +"function (return type, argument types, calling convention) without defining " +"an implementation. The factory functions must be called with the desired " +"result type and the argument types of the function, and can be used as " +"decorator factories, and as such, be applied to functions through the " +"``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." +msgstr "" + +#: ../../library/ctypes.rst:1824 +msgid "" +"The returned function prototype creates functions that use the standard C " +"calling convention. The function will release the GIL during the call. If " +"*use_errno* is set to true, the ctypes private copy of the " +"system :data:`errno` variable is exchanged with the real :data:`errno` value " +"before and after the call; *use_last_error* does the same for the Windows " +"error code." +msgstr "" + +#: ../../library/ctypes.rst:1834 +msgid "" +"The returned function prototype creates functions that use the ``stdcall`` " +"calling convention. The function will release the GIL during the call. " +"*use_errno* and *use_last_error* have the same meaning as above." +msgstr "" + +#: ../../library/ctypes.rst:1844 +msgid "" +"The returned function prototype creates functions that use the Python " +"calling convention. The function will *not* release the GIL during the call." +msgstr "" + +#: ../../library/ctypes.rst:1847 +msgid "" +"Function prototypes created by these factory functions can be instantiated " +"in different ways, depending on the type and number of the parameters in the " +"call:" +msgstr "" + +#: ../../library/ctypes.rst:1854 +msgid "" +"Returns a foreign function at the specified address which must be an integer." +msgstr "" + +#: ../../library/ctypes.rst:1861 +msgid "" +"Create a C callable function (a callback function) from a Python *callable*." +msgstr "" + +#: ../../library/ctypes.rst:1868 +msgid "" +"Returns a foreign function exported by a shared library. *func_spec* must be " +"a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " +"exported function as string, or the ordinal of the exported function as " +"small integer. The second item is the shared library instance." +msgstr "" + +#: ../../library/ctypes.rst:1878 +msgid "" +"Returns a foreign function that will call a COM method. *vtbl_index* is the " +"index into the virtual function table, a small non-negative integer. *name* " +"is name of the COM method. *iid* is an optional pointer to the interface " +"identifier which is used in extended error reporting." +msgstr "" + +#: ../../library/ctypes.rst:1883 +msgid "" +"If *iid* is not specified, an :exc:`OSError` is raised if the COM method " +"call fails. If *iid* is specified, a :exc:`~ctypes.COMError` is raised " +"instead." +msgstr "" + +#: ../../library/ctypes.rst:1887 +msgid "" +"COM methods use a special calling convention: They require a pointer to the " +"COM interface as first argument, in addition to those parameters that are " +"specified in the :attr:`!argtypes` tuple." +msgstr "" + +#: ../../library/ctypes.rst:1894 +msgid "" +"The optional *paramflags* parameter creates foreign function wrappers with " +"much more functionality than the features described above." +msgstr "" + +#: ../../library/ctypes.rst:1897 +msgid "" +"*paramflags* must be a tuple of the same length " +"as :attr:`~_CFuncPtr.argtypes`." +msgstr "" + +#: ../../library/ctypes.rst:1899 +msgid "" +"Each item in this tuple contains further information about a parameter, it " +"must be a tuple containing one, two, or three items." +msgstr "" + +#: ../../library/ctypes.rst:1902 +msgid "" +"The first item is an integer containing a combination of direction flags for " +"the parameter:" +msgstr "" + +#: ../../library/ctypes.rst:1905 +msgid "1" +msgstr "1" + +#: ../../library/ctypes.rst:1906 +msgid "Specifies an input parameter to the function." +msgstr "" + +#: ../../library/ctypes.rst:1908 +msgid "2" +msgstr "2" + +#: ../../library/ctypes.rst:1909 +msgid "Output parameter. The foreign function fills in a value." +msgstr "" + +#: ../../library/ctypes.rst:1911 +msgid "4" +msgstr "4" + +#: ../../library/ctypes.rst:1912 +msgid "Input parameter which defaults to the integer zero." +msgstr "" + +#: ../../library/ctypes.rst:1914 +msgid "" +"The optional second item is the parameter name as string. If this is " +"specified, the foreign function can be called with named parameters." +msgstr "" + +#: ../../library/ctypes.rst:1917 +msgid "The optional third item is the default value for this parameter." +msgstr "" + +#: ../../library/ctypes.rst:1920 +msgid "" +"The following example demonstrates how to wrap the Windows ``MessageBoxW`` " +"function so that it supports default parameters and named arguments. The C " +"declaration from the windows header file is this::" +msgstr "" + +#: ../../library/ctypes.rst:1924 +msgid "" +"WINUSERAPI int WINAPI\n" +"MessageBoxW(\n" +" HWND hWnd,\n" +" LPCWSTR lpText,\n" +" LPCWSTR lpCaption,\n" +" UINT uType);" +msgstr "" + +#: ../../library/ctypes.rst:1931 ../../library/ctypes.rst:1954 +msgid "Here is the wrapping with :mod:`ctypes`::" +msgstr "" + +#: ../../library/ctypes.rst:1933 +msgid "" +">>> from ctypes import c_int, WINFUNCTYPE, windll\n" +">>> from ctypes.wintypes import HWND, LPCWSTR, UINT\n" +">>> prototype = WINFUNCTYPE(c_int, HWND, LPCWSTR, LPCWSTR, UINT)\n" +">>> paramflags = (1, \"hwnd\", 0), (1, \"text\", \"Hi\"), (1, \"caption\", " +"\"Hello from ctypes\"), (1, \"flags\", 0)\n" +">>> MessageBox = prototype((\"MessageBoxW\", windll.user32), paramflags)" +msgstr "" + +#: ../../library/ctypes.rst:1939 +msgid "The ``MessageBox`` foreign function can now be called in these ways::" +msgstr "" + +#: ../../library/ctypes.rst:1941 +msgid "" +">>> MessageBox()\n" +">>> MessageBox(text=\"Spam, spam, spam\")\n" +">>> MessageBox(flags=2, text=\"foo bar\")" +msgstr "" + +#: ../../library/ctypes.rst:1945 +msgid "" +"A second example demonstrates output parameters. The win32 " +"``GetWindowRect`` function retrieves the dimensions of a specified window by " +"copying them into ``RECT`` structure that the caller has to supply. Here is " +"the C declaration::" +msgstr "" + +#: ../../library/ctypes.rst:1949 +msgid "" +"WINUSERAPI BOOL WINAPI\n" +"GetWindowRect(\n" +" HWND hWnd,\n" +" LPRECT lpRect);" +msgstr "" + +#: ../../library/ctypes.rst:1956 +msgid "" +">>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError\n" +">>> from ctypes.wintypes import BOOL, HWND, RECT\n" +">>> prototype = WINFUNCTYPE(BOOL, HWND, POINTER(RECT))\n" +">>> paramflags = (1, \"hwnd\"), (2, \"lprect\")\n" +">>> GetWindowRect = prototype((\"GetWindowRect\", windll.user32), " +"paramflags)\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1963 +msgid "" +"Functions with output parameters will automatically return the output " +"parameter value if there is a single one, or a tuple containing the output " +"parameter values when there are more than one, so the GetWindowRect function " +"now returns a RECT instance, when called." +msgstr "" + +#: ../../library/ctypes.rst:1968 +msgid "" +"Output parameters can be combined with the :attr:`~_CFuncPtr.errcheck` " +"protocol to do further output processing and error checking. The win32 " +"``GetWindowRect`` api function returns a ``BOOL`` to signal success or " +"failure, so this function could do the error checking, and raises an " +"exception when the api call failed::" +msgstr "" + +#: ../../library/ctypes.rst:1973 +msgid "" +">>> def errcheck(result, func, args):\n" +"... if not result:\n" +"... raise WinError()\n" +"... return args\n" +"...\n" +">>> GetWindowRect.errcheck = errcheck\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:1981 +msgid "" +"If the :attr:`~_CFuncPtr.errcheck` function returns the argument tuple it " +"receives unchanged, :mod:`ctypes` continues the normal processing it does on " +"the output parameters. If you want to return a tuple of window coordinates " +"instead of a ``RECT`` instance, you can retrieve the fields in the function " +"and return them instead, the normal processing will no longer take place::" +msgstr "" + +#: ../../library/ctypes.rst:1987 +msgid "" +">>> def errcheck(result, func, args):\n" +"... if not result:\n" +"... raise WinError()\n" +"... rc = args[1]\n" +"... return rc.left, rc.top, rc.bottom, rc.right\n" +"...\n" +">>> GetWindowRect.errcheck = errcheck\n" +">>>" +msgstr "" + +#: ../../library/ctypes.rst:2000 +msgid "Utility functions" +msgstr "" + +#: ../../library/ctypes.rst:2004 +msgid "" +"Returns the address of the memory buffer as integer. *obj* must be an " +"instance of a ctypes type." +msgstr "" + +#: ../../library/ctypes.rst:2007 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.addressof`` with " +"argument ``obj``." +msgstr "" + +#: ../../library/ctypes.rst:2012 +msgid "" +"Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " +"ctypes type or instance." +msgstr "" + +#: ../../library/ctypes.rst:2018 +msgid "" +"Returns a light-weight pointer to *obj*, which must be an instance of a " +"ctypes type. *offset* defaults to zero, and must be an integer that will be " +"added to the internal pointer value." +msgstr "" + +#: ../../library/ctypes.rst:2022 +msgid "``byref(obj, offset)`` corresponds to this C code::" +msgstr "" + +#: ../../library/ctypes.rst:2024 +msgid "(((char *)&obj) + offset)" +msgstr "" + +#: ../../library/ctypes.rst:2026 +msgid "" +"The returned object can only be used as a foreign function call parameter. " +"It behaves similar to ``pointer(obj)``, but the construction is a lot faster." +msgstr "" + +#: ../../library/ctypes.rst:2032 +msgid "" +"Copies a COM pointer from *src* to *dst* and returns the Windows " +"specific :c:type:`!HRESULT` value." +msgstr "" + +#: ../../library/ctypes.rst:2035 +msgid "" +"If *src* is not ``NULL``, its ``AddRef`` method is called, incrementing the " +"reference count." +msgstr "" + +#: ../../library/ctypes.rst:2038 +msgid "" +"In contrast, the reference count of *dst* will not be decremented before " +"assigning the new value. Unless *dst* is ``NULL``, the caller is responsible " +"for decrementing the reference count by calling its ``Release`` method when " +"necessary." +msgstr "" + +#: ../../library/ctypes.rst:2050 +msgid "" +"This function is similar to the cast operator in C. It returns a new " +"instance of *type* which points to the same memory block as *obj*. *type* " +"must be a pointer type, and *obj* must be an object that can be interpreted " +"as a pointer." +msgstr "" + +#: ../../library/ctypes.rst:2059 +msgid "" +"This function creates a mutable character buffer. The returned object is a " +"ctypes array of :class:`c_char`." +msgstr "" + +#: ../../library/ctypes.rst:2062 +msgid "" +"If *size* is given (and not ``None``), it must be an :class:`int`. It " +"specifies the size of the returned array." +msgstr "" + +#: ../../library/ctypes.rst:2065 +msgid "" +"If the *init* argument is given, it must be :class:`bytes`. It is used to " +"initialize the array items. Bytes not initialized this way are set to zero " +"(NUL)." +msgstr "" + +#: ../../library/ctypes.rst:2069 +msgid "" +"If *size* is not given (or if it is ``None``), the buffer is made one " +"element larger than *init*, effectively adding a NUL terminator." +msgstr "" + +#: ../../library/ctypes.rst:2072 +msgid "" +"If both arguments are given, *size* must not be less than ``len(init)``." +msgstr "" + +#: ../../library/ctypes.rst:2076 +msgid "" +"If *size* is equal to ``len(init)``, a NUL terminator is not added. Do not " +"treat such a buffer as a C string." +msgstr "" + +#: ../../library/ctypes.rst:2079 +msgid "For example::" +msgstr "" + +#: ../../library/ctypes.rst:2081 +msgid "" +">>> bytes(create_string_buffer(2))\n" +"b'\\x00\\x00'\n" +">>> bytes(create_string_buffer(b'ab'))\n" +"b'ab\\x00'\n" +">>> bytes(create_string_buffer(b'ab', 2))\n" +"b'ab'\n" +">>> bytes(create_string_buffer(b'ab', 4))\n" +"b'ab\\x00\\x00'\n" +">>> bytes(create_string_buffer(b'abcdef', 2))\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: byte string too long" +msgstr "" + +#: ../../library/ctypes.rst:2094 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " +"with arguments ``init``, ``size``." +msgstr "" + +#: ../../library/ctypes.rst:2100 +msgid "" +"This function creates a mutable unicode character buffer. The returned " +"object is a ctypes array of :class:`c_wchar`." +msgstr "" + +#: ../../library/ctypes.rst:2103 +msgid "" +"The function takes the same arguments as :func:`~create_string_buffer` " +"except *init* must be a string and *size* counts :class:`c_wchar`." +msgstr "" + +#: ../../library/ctypes.rst:2106 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " +"with arguments ``init``, ``size``." +msgstr "" + +#: ../../library/ctypes.rst:2111 +msgid "" +"This function is a hook which allows implementing in-process COM servers " +"with ctypes. It is called from the DllCanUnloadNow function that the " +"_ctypes extension dll exports." +msgstr "" + +#: ../../library/ctypes.rst:2120 +msgid "" +"This function is a hook which allows implementing in-process COM servers " +"with ctypes. It is called from the DllGetClassObject function that the " +"``_ctypes`` extension dll exports." +msgstr "" + +#: ../../library/ctypes.rst:2130 +msgid "" +"Try to find a library and return a pathname. *name* is the library name " +"without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " +"number (this is the form used for the posix linker option :option:`!-l`). " +"If no library can be found, returns ``None``." +msgstr "" + +#: ../../library/ctypes.rst:2141 +msgid "" +"Returns the filename of the VC runtime library used by Python, and by the " +"extension modules. If the name of the library cannot be determined, " +"``None`` is returned." +msgstr "" + +#: ../../library/ctypes.rst:2145 +msgid "" +"If you need to free memory, for example, allocated by an extension module " +"with a call to the ``free(void *)``, it is important that you use the " +"function in the same library that allocated the memory." +msgstr "" + +#: ../../library/ctypes.rst:2155 +msgid "" +"Try to provide a list of paths of the shared libraries loaded into the " +"current process. These paths are not normalized or processed in any way. " +"The function can raise :exc:`OSError` if the underlying platform APIs fail. " +"The exact functionality is system dependent." +msgstr "" + +#: ../../library/ctypes.rst:2160 +msgid "" +"On most platforms, the first element of the list represents the current " +"executable file. It may be an empty string." +msgstr "" + +#: ../../library/ctypes.rst:2168 +msgid "" +"Returns a textual description of the error code *code*. If no error code is " +"specified, the last error code is used by calling the Windows API " +"function :func:`GetLastError`." +msgstr "" + +#: ../../library/ctypes.rst:2177 +msgid "" +"Returns the last error code set by Windows in the calling thread. This " +"function calls the Windows ``GetLastError()`` function directly, it does not " +"return the ctypes-private copy of the error code." +msgstr "" + +#: ../../library/ctypes.rst:2186 +msgid "" +"Returns the current value of the ctypes-private copy of the " +"system :data:`errno` variable in the calling thread." +msgstr "" + +#: ../../library/ctypes.rst:2189 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " +"arguments." +msgstr "" + +#: ../../library/ctypes.rst:2193 +msgid "" +"Returns the current value of the ctypes-private copy of the system :data:`!" +"LastError` variable in the calling thread." +msgstr "" + +#: ../../library/ctypes.rst:2198 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " +"arguments." +msgstr "" + +#: ../../library/ctypes.rst:2203 +msgid "" +"Same as the standard C memmove library function: copies *count* bytes from " +"*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " +"can be converted to pointers." +msgstr "" + +#: ../../library/ctypes.rst:2210 +msgid "" +"Same as the standard C memset library function: fills the memory block at " +"address *dst* with *count* bytes of value *c*. *dst* must be an integer " +"specifying an address, or a ctypes instance." +msgstr "" + +#: ../../library/ctypes.rst:2217 +msgid "" +"Create or return a ctypes pointer type. Pointer types are cached and reused " +"internally, so calling this function repeatedly is cheap. *type* must be a " +"ctypes type." +msgstr "" + +#: ../../library/ctypes.rst:2223 +msgid "" +"The resulting pointer type is cached in the ``__pointer_type__`` attribute " +"of *type*. It is possible to set this attribute before the first call to " +"``POINTER`` in order to set a custom pointer type. However, doing this is " +"discouraged: manually creating a suitable pointer type is difficult without " +"relying on implementation details that may change in future Python versions." +msgstr "" + +#: ../../library/ctypes.rst:2234 +msgid "" +"Create a new pointer instance, pointing to *obj*. The returned object is of " +"the type ``POINTER(type(obj))``." +msgstr "" + +#: ../../library/ctypes.rst:2237 +msgid "" +"Note: If you just want to pass a pointer to an object to a foreign function " +"call, you should use ``byref(obj)`` which is much faster." +msgstr "" + +#: ../../library/ctypes.rst:2243 +msgid "" +"This function resizes the internal memory buffer of *obj*, which must be an " +"instance of a ctypes type. It is not possible to make the buffer smaller " +"than the native size of the objects type, as given by ``sizeof(type(obj))``, " +"but it is possible to enlarge the buffer." +msgstr "" + +#: ../../library/ctypes.rst:2251 +msgid "" +"Set the current value of the ctypes-private copy of the system :data:`errno` " +"variable in the calling thread to *value* and return the previous value." +msgstr "" + +#: ../../library/ctypes.rst:2254 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " +"argument ``errno``." +msgstr "" + +#: ../../library/ctypes.rst:2259 +msgid "" +"Sets the current value of the ctypes-private copy of the system :data:`!" +"LastError` variable in the calling thread to *value* and return the previous " +"value." +msgstr "" + +#: ../../library/ctypes.rst:2265 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " +"argument ``error``." +msgstr "" + +#: ../../library/ctypes.rst:2270 +msgid "" +"Returns the size in bytes of a ctypes type or instance memory buffer. Does " +"the same as the C ``sizeof`` operator." +msgstr "" + +#: ../../library/ctypes.rst:2276 +msgid "" +"Return the byte string at *void \\*ptr*. If *size* is specified, it is used " +"as size, otherwise the string is assumed to be zero-terminated." +msgstr "" + +#: ../../library/ctypes.rst:2280 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.string_at`` with " +"arguments ``ptr``, ``size``." +msgstr "" + +#: ../../library/ctypes.rst:2285 +msgid "" +"Creates an instance of :exc:`OSError`. If *code* is not " +"specified, :func:`GetLastError` is called to determine the error code. If " +"*descr* is not specified, :func:`FormatError` is called to get a textual " +"description of the error." +msgstr "" + +#: ../../library/ctypes.rst:2292 +msgid "" +"An instance of :exc:`WindowsError` used to be created, which is now an alias " +"of :exc:`OSError`." +msgstr "" + +#: ../../library/ctypes.rst:2299 +msgid "" +"Return the wide-character string at *void \\*ptr*. If *size* is specified, " +"it is used as the number of characters of the string, otherwise the string " +"is assumed to be zero-terminated." +msgstr "" + +#: ../../library/ctypes.rst:2304 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " +"arguments ``ptr``, ``size``." +msgstr "" + +#: ../../library/ctypes.rst:2309 +msgid "" +"Return a :class:`memoryview` object of length *size* that references memory " +"starting at *void \\*ptr*." +msgstr "" + +#: ../../library/ctypes.rst:2312 +msgid "" +"If *readonly* is true, the returned :class:`!memoryview` object can not be " +"used to modify the underlying memory. (Changes made by other means will " +"still be reflected in the returned object.)" +msgstr "" + +#: ../../library/ctypes.rst:2317 +msgid "" +"This function is similar to :func:`string_at` with the key difference of not " +"making a copy of the specified memory. It is a semantically equivalent (but " +"more efficient) alternative to ``memoryview((c_byte * " +"size).from_address(ptr))``. (While :meth:`~_CData.from_address` only takes " +"integers, *ptr* can also be given as a :class:`ctypes.POINTER` or " +"a :func:`~ctypes.byref` object.)" +msgstr "" + +#: ../../library/ctypes.rst:2324 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.memoryview_at`` with " +"arguments ``address``, ``size``, ``readonly``." +msgstr "" + +#: ../../library/ctypes.rst:2332 +msgid "Data types" +msgstr "" + +#: ../../library/ctypes.rst:2337 +msgid "" +"This non-public class is the common base class of all ctypes data types. " +"Among other things, all ctypes type instances contain a memory block that " +"hold C compatible data; the address of the memory block is returned by " +"the :func:`addressof` helper function. Another instance variable is exposed " +"as :attr:`_objects`; this contains other Python objects that need to be kept " +"alive in case the memory block contains pointers." +msgstr "" + +#: ../../library/ctypes.rst:2344 +msgid "" +"Common methods of ctypes data types, these are all class methods (to be " +"exact, they are methods of the :term:`metaclass`):" +msgstr "" + +#: ../../library/ctypes.rst:2349 +msgid "" +"This method returns a ctypes instance that shares the buffer of the *source* " +"object. The *source* object must support the writeable buffer interface. " +"The optional *offset* parameter specifies an offset into the source buffer " +"in bytes; the default is zero. If the source buffer is not large enough " +"a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/ctypes.rst:2355 ../../library/ctypes.rst:2365 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " +"arguments ``pointer``, ``size``, ``offset``." +msgstr "" + +#: ../../library/ctypes.rst:2359 +msgid "" +"This method creates a ctypes instance, copying the buffer from the *source* " +"object buffer which must be readable. The optional *offset* parameter " +"specifies an offset into the source buffer in bytes; the default is zero. " +"If the source buffer is not large enough a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/ctypes.rst:2369 +msgid "" +"This method returns a ctypes type instance using the memory specified by " +"*address* which must be an integer." +msgstr "" + +#: ../../library/ctypes.rst:2372 ../../library/ctypes.rst:2374 +msgid "" +"This method, and others that indirectly call this method, raises " +"an :ref:`auditing event ` ``ctypes.cdata`` with argument " +"``address``." +msgstr "" + +#: ../../library/ctypes.rst:2380 +msgid "" +"This method adapts *obj* to a ctypes type. It is called with the actual " +"object used in a foreign function call when the type is present in the " +"foreign function's :attr:`~_CFuncPtr.argtypes` tuple; it must return an " +"object that can be used as a function call parameter." +msgstr "" + +#: ../../library/ctypes.rst:2385 +msgid "" +"All ctypes data types have a default implementation of this classmethod that " +"normally returns *obj* if that is an instance of the type. Some types " +"accept other objects as well." +msgstr "" + +#: ../../library/ctypes.rst:2391 +msgid "" +"This method returns a ctypes type instance exported by a shared library. " +"*name* is the name of the symbol that exports the data, *library* is the " +"loaded shared library." +msgstr "" + +#: ../../library/ctypes.rst:2395 +msgid "Common class variables of ctypes data types:" +msgstr "" + +#: ../../library/ctypes.rst:2399 +msgid "" +"The pointer type that was created by calling :func:`POINTER` for " +"corresponding ctypes data type. If a pointer type was not yet created, the " +"attribute is missing." +msgstr "" + +#: ../../library/ctypes.rst:2405 +msgid "Common instance variables of ctypes data types:" +msgstr "" + +#: ../../library/ctypes.rst:2409 +msgid "" +"Sometimes ctypes data instances do not own the memory block they contain, " +"instead they share part of the memory block of a base object. " +"The :attr:`_b_base_` read-only member is the root ctypes object that owns " +"the memory block." +msgstr "" + +#: ../../library/ctypes.rst:2416 +msgid "" +"This read-only variable is true when the ctypes data instance has allocated " +"the memory block itself, false otherwise." +msgstr "" + +#: ../../library/ctypes.rst:2421 +msgid "" +"This member is either ``None`` or a dictionary containing Python objects " +"that need to be kept alive so that the memory block contents is kept valid. " +"This object is only exposed for debugging; never modify the contents of this " +"dictionary." +msgstr "" + +#: ../../library/ctypes.rst:2434 +msgid "" +"This non-public class is the base class of all fundamental ctypes data " +"types. It is mentioned here because it contains the common attributes of the " +"fundamental ctypes data types. :class:`_SimpleCData` is a subclass " +"of :class:`_CData`, so it inherits their methods and attributes. ctypes data " +"types that are not and do not contain pointers can now be pickled." +msgstr "" + +#: ../../library/ctypes.rst:2440 +msgid "Instances have a single attribute:" +msgstr "" + +#: ../../library/ctypes.rst:2444 +msgid "" +"This attribute contains the actual value of the instance. For integer and " +"pointer types, it is an integer, for character types, it is a single " +"character bytes object or string, for character pointer types it is a Python " +"bytes object or string." +msgstr "" + +#: ../../library/ctypes.rst:2449 +msgid "" +"When the ``value`` attribute is retrieved from a ctypes instance, usually a " +"new object is returned each time. :mod:`ctypes` does *not* implement " +"original object return, always a new object is constructed. The same is " +"true for all other ctypes object instances." +msgstr "" + +#: ../../library/ctypes.rst:2455 +msgid "" +"Fundamental data types, when returned as foreign function call results, or, " +"for example, by retrieving structure field members or array items, are " +"transparently converted to native Python types. In other words, if a " +"foreign function has a :attr:`~_CFuncPtr.restype` of :class:`c_char_p`, you " +"will always receive a Python bytes object, *not* a :class:`c_char_p` " +"instance." +msgstr "" + +#: ../../library/ctypes.rst:2463 +msgid "" +"Subclasses of fundamental data types do *not* inherit this behavior. So, if " +"a foreign functions :attr:`!restype` is a subclass of :class:`c_void_p`, you " +"will receive an instance of this subclass from the function call. Of course, " +"you can get the value of the pointer by accessing the ``value`` attribute." +msgstr "" + +#: ../../library/ctypes.rst:2468 +msgid "These are the fundamental ctypes data types:" +msgstr "" + +#: ../../library/ctypes.rst:2472 +msgid "" +"Represents the C :c:expr:`signed char` datatype, and interprets the value as " +"small integer. The constructor accepts an optional integer initializer; no " +"overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2479 +msgid "" +"Represents the C :c:expr:`char` datatype, and interprets the value as a " +"single character. The constructor accepts an optional string initializer, " +"the length of the string must be exactly one character." +msgstr "" + +#: ../../library/ctypes.rst:2486 +msgid "" +"Represents the C :c:expr:`char *` datatype when it points to a zero-" +"terminated string. For a general character pointer that may also point to " +"binary data, ``POINTER(c_char)`` must be used. The constructor accepts an " +"integer address, or a bytes object." +msgstr "" + +#: ../../library/ctypes.rst:2494 +msgid "" +"Represents the C :c:expr:`double` datatype. The constructor accepts an " +"optional float initializer." +msgstr "" + +#: ../../library/ctypes.rst:2500 +msgid "" +"Represents the C :c:expr:`long double` datatype. The constructor accepts an " +"optional float initializer. On platforms where ``sizeof(long double) == " +"sizeof(double)`` it is an alias to :class:`c_double`." +msgstr "" + +#: ../../library/ctypes.rst:2506 +msgid "" +"Represents the C :c:expr:`float` datatype. The constructor accepts an " +"optional float initializer." +msgstr "" + +#: ../../library/ctypes.rst:2512 +msgid "" +"Represents the C :c:expr:`double complex` datatype, if available. The " +"constructor accepts an optional :class:`complex` initializer." +msgstr "" + +#: ../../library/ctypes.rst:2520 +msgid "" +"Represents the C :c:expr:`float complex` datatype, if available. The " +"constructor accepts an optional :class:`complex` initializer." +msgstr "" + +#: ../../library/ctypes.rst:2528 +msgid "" +"Represents the C :c:expr:`long double complex` datatype, if available. The " +"constructor accepts an optional :class:`complex` initializer." +msgstr "" + +#: ../../library/ctypes.rst:2536 +msgid "" +"Represents the C :c:expr:`signed int` datatype. The constructor accepts an " +"optional integer initializer; no overflow checking is done. On platforms " +"where ``sizeof(int) == sizeof(long)`` it is an alias to :class:`c_long`." +msgstr "" + +#: ../../library/ctypes.rst:2543 +msgid "" +"Represents the C 8-bit :c:expr:`signed int` datatype. It is an alias " +"for :class:`c_byte`." +msgstr "" + +#: ../../library/ctypes.rst:2549 +msgid "" +"Represents the C 16-bit :c:expr:`signed int` datatype. Usually an alias " +"for :class:`c_short`." +msgstr "" + +#: ../../library/ctypes.rst:2555 +msgid "" +"Represents the C 32-bit :c:expr:`signed int` datatype. Usually an alias " +"for :class:`c_int`." +msgstr "" + +#: ../../library/ctypes.rst:2561 +msgid "" +"Represents the C 64-bit :c:expr:`signed int` datatype. Usually an alias " +"for :class:`c_longlong`." +msgstr "" + +#: ../../library/ctypes.rst:2567 +msgid "" +"Represents the C :c:expr:`signed long` datatype. The constructor accepts an " +"optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2573 +msgid "" +"Represents the C :c:expr:`signed long long` datatype. The constructor " +"accepts an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2579 +msgid "" +"Represents the C :c:expr:`signed short` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2585 +msgid "Represents the C :c:type:`size_t` datatype." +msgstr "" + +#: ../../library/ctypes.rst:2590 +msgid "Represents the C :c:type:`ssize_t` datatype." +msgstr "" + +#: ../../library/ctypes.rst:2597 +msgid "Represents the C :c:type:`time_t` datatype." +msgstr "" + +#: ../../library/ctypes.rst:2604 +msgid "" +"Represents the C :c:expr:`unsigned char` datatype, it interprets the value " +"as small integer. The constructor accepts an optional integer initializer; " +"no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2611 +msgid "" +"Represents the C :c:expr:`unsigned int` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done. On platforms " +"where ``sizeof(int) == sizeof(long)`` it is an alias for :class:`c_ulong`." +msgstr "" + +#: ../../library/ctypes.rst:2618 +msgid "" +"Represents the C 8-bit :c:expr:`unsigned int` datatype. It is an alias " +"for :class:`c_ubyte`." +msgstr "" + +#: ../../library/ctypes.rst:2624 +msgid "" +"Represents the C 16-bit :c:expr:`unsigned int` datatype. Usually an alias " +"for :class:`c_ushort`." +msgstr "" + +#: ../../library/ctypes.rst:2630 +msgid "" +"Represents the C 32-bit :c:expr:`unsigned int` datatype. Usually an alias " +"for :class:`c_uint`." +msgstr "" + +#: ../../library/ctypes.rst:2636 +msgid "" +"Represents the C 64-bit :c:expr:`unsigned int` datatype. Usually an alias " +"for :class:`c_ulonglong`." +msgstr "" + +#: ../../library/ctypes.rst:2642 +msgid "" +"Represents the C :c:expr:`unsigned long` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2648 +msgid "" +"Represents the C :c:expr:`unsigned long long` datatype. The constructor " +"accepts an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2654 +msgid "" +"Represents the C :c:expr:`unsigned short` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../../library/ctypes.rst:2660 +msgid "" +"Represents the C :c:expr:`void *` type. The value is represented as " +"integer. The constructor accepts an optional integer initializer." +msgstr "" + +#: ../../library/ctypes.rst:2666 +msgid "" +"Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " +"single character unicode string. The constructor accepts an optional string " +"initializer, the length of the string must be exactly one character." +msgstr "" + +#: ../../library/ctypes.rst:2673 +msgid "" +"Represents the C :c:expr:`wchar_t *` datatype, which must be a pointer to a " +"zero-terminated wide character string. The constructor accepts an integer " +"address, or a string." +msgstr "" + +#: ../../library/ctypes.rst:2680 +msgid "" +"Represent the C :c:expr:`bool` datatype (more accurately, :c:expr:`_Bool` " +"from C99). Its value can be ``True`` or ``False``, and the constructor " +"accepts any object that has a truth value." +msgstr "" + +#: ../../library/ctypes.rst:2687 +msgid "" +"Represents a :c:type:`!HRESULT` value, which contains success or error " +"information for a function or method call." +msgstr "" + +#: ../../library/ctypes.rst:2695 +msgid "" +"Represents the C :c:expr:`PyObject *` datatype. Calling this without an " +"argument creates a ``NULL`` :c:expr:`PyObject *` pointer." +msgstr "" + +#: ../../library/ctypes.rst:2698 +msgid ":class:`!py_object` is now a :term:`generic type`." +msgstr "" + +#: ../../library/ctypes.rst:2701 +msgid "" +"The :mod:`!ctypes.wintypes` module provides quite some other Windows " +"specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, " +"or :c:type:`!DWORD`. Some useful structures like :c:type:`!MSG` or :c:type:`!" +"RECT` are also defined." +msgstr "" + +#: ../../library/ctypes.rst:2709 +msgid "Structured data types" +msgstr "" + +#: ../../library/ctypes.rst:2714 +msgid "Abstract base class for unions in native byte order." +msgstr "" + +#: ../../library/ctypes.rst:2716 +msgid "" +"Unions share common attributes and behavior with structures; " +"see :class:`Structure` documentation for details." +msgstr "" + +#: ../../library/ctypes.rst:2721 +msgid "Abstract base class for unions in *big endian* byte order." +msgstr "" + +#: ../../library/ctypes.rst:2727 +msgid "Abstract base class for unions in *little endian* byte order." +msgstr "" + +#: ../../library/ctypes.rst:2733 +msgid "Abstract base class for structures in *big endian* byte order." +msgstr "" + +#: ../../library/ctypes.rst:2738 +msgid "Abstract base class for structures in *little endian* byte order." +msgstr "" + +#: ../../library/ctypes.rst:2740 +msgid "" +"Structures and unions with non-native byte order cannot contain pointer type " +"fields, or any other data types containing pointer type fields." +msgstr "" + +#: ../../library/ctypes.rst:2746 +msgid "Abstract base class for structures in *native* byte order." +msgstr "" + +#: ../../library/ctypes.rst:2748 +msgid "" +"Concrete structure and union types must be created by subclassing one of " +"these types, and at least define a :attr:`_fields_` class " +"variable. :mod:`ctypes` will create :term:`descriptor`\\s which allow " +"reading and writing the fields by direct attribute accesses. These are the" +msgstr "" + +#: ../../library/ctypes.rst:2756 +msgid "" +"A sequence defining the structure fields. The items must be 2-tuples or 3-" +"tuples. The first item is the name of the field, the second item specifies " +"the type of the field; it can be any ctypes data type." +msgstr "" + +#: ../../library/ctypes.rst:2760 +msgid "" +"For integer type fields like :class:`c_int`, a third optional item can be " +"given. It must be a small positive integer defining the bit width of the " +"field." +msgstr "" + +#: ../../library/ctypes.rst:2764 +msgid "" +"Field names must be unique within one structure or union. This is not " +"checked, only one field can be accessed when names are repeated." +msgstr "" + +#: ../../library/ctypes.rst:2767 +msgid "" +"It is possible to define the :attr:`_fields_` class variable *after* the " +"class statement that defines the Structure subclass, this allows creating " +"data types that directly or indirectly reference themselves::" +msgstr "" + +#: ../../library/ctypes.rst:2771 +msgid "" +"class List(Structure):\n" +" pass\n" +"List._fields_ = [(\"pnext\", POINTER(List)),\n" +" ...\n" +" ]" +msgstr "" + +#: ../../library/ctypes.rst:2777 +msgid "" +"The :attr:`!_fields_` class variable can only be set once. Later assignments " +"will raise an :exc:`AttributeError`." +msgstr "" + +#: ../../library/ctypes.rst:2780 +msgid "" +"Additionally, the :attr:`!_fields_` class variable must be defined before " +"the structure or union type is first used: an instance or subclass is " +"created, :func:`sizeof` is called on it, and so on. Later assignments " +"to :attr:`!_fields_` will raise an :exc:`AttributeError`. If :attr:`!" +"_fields_` has not been set before such use, the structure or union will have " +"no own fields, as if :attr:`!_fields_` was empty." +msgstr "" + +#: ../../library/ctypes.rst:2788 +msgid "" +"Sub-subclasses of structure types inherit the fields of the base class plus " +"the :attr:`_fields_` defined in the sub-subclass, if any." +msgstr "" + +#: ../../library/ctypes.rst:2794 +msgid "" +"An optional small integer that allows overriding the alignment of structure " +"fields in the instance. :attr:`_pack_` must already be defined " +"when :attr:`_fields_` is assigned, otherwise it will have no effect. Setting " +"this attribute to 0 is the same as not setting it at all." +msgstr "" + +#: ../../library/ctypes.rst:2799 +msgid "This is only implemented for the MSVC-compatible memory layout." +msgstr "" + +#: ../../library/ctypes.rst:2803 +msgid "" +"For historical reasons, if :attr:`!_pack_` is non-zero, the MSVC-compatible " +"layout will be used by default. On non-Windows platforms, this default is " +"deprecated and is slated to become an error in Python 3.19. If it is " +"intended, set :attr:`~Structure._layout_` to ``'ms'`` explicitly." +msgstr "" + +#: ../../library/ctypes.rst:2812 +msgid "" +"An optional small integer that allows overriding the alignment of the " +"structure when being packed or unpacked to/from memory. Setting this " +"attribute to 0 is the same as not setting it at all." +msgstr "" + +#: ../../library/ctypes.rst:2820 +msgid "" +"An optional string naming the struct/union layout. It can currently be set " +"to:" +msgstr "" + +#: ../../library/ctypes.rst:2823 +msgid "" +"``\"ms\"``: the layout used by the Microsoft compiler (MSVC). On GCC and " +"Clang, this layout can be selected with ``__attribute__((ms_struct))``." +msgstr "" + +#: ../../library/ctypes.rst:2826 +msgid "" +"``\"gcc-sysv\"``: the layout used by GCC with the System V or “SysV-like” " +"data model, as used on Linux and macOS. With this " +"layout, :attr:`~Structure._pack_` must be unset or zero." +msgstr "" + +#: ../../library/ctypes.rst:2830 +msgid "" +"If not set explicitly, ``ctypes`` will use a default that matches the " +"platform conventions. This default may change in future Python releases (for " +"example, when a new platform gains official support, or when a difference " +"between similar platforms is found). Currently the default will be:" +msgstr "" + +#: ../../library/ctypes.rst:2836 +msgid "On Windows: ``\"ms\"``" +msgstr "" + +#: ../../library/ctypes.rst:2837 +msgid "" +"When :attr:`~Structure._pack_` is specified: ``\"ms\"``. (This is " +"deprecated; see :attr:`~Structure._pack_` documentation.)" +msgstr "" + +#: ../../library/ctypes.rst:2839 +msgid "Otherwise: ``\"gcc-sysv\"``" +msgstr "" + +#: ../../library/ctypes.rst:2841 +msgid "" +":attr:`!_layout_` must already be defined when :attr:`~Structure._fields_` " +"is assigned, otherwise it will have no effect." +msgstr "" + +#: ../../library/ctypes.rst:2848 +msgid "" +"An optional sequence that lists the names of unnamed (anonymous) " +"fields. :attr:`_anonymous_` must be already defined when :attr:`_fields_` is " +"assigned, otherwise it will have no effect." +msgstr "" + +#: ../../library/ctypes.rst:2852 +msgid "" +"The fields listed in this variable must be structure or union type " +"fields. :mod:`ctypes` will create descriptors in the structure type that " +"allows accessing the nested fields directly, without the need to create the " +"structure or union field." +msgstr "" + +#: ../../library/ctypes.rst:2857 +msgid "Here is an example type (Windows)::" +msgstr "" + +#: ../../library/ctypes.rst:2859 +msgid "" +"class _U(Union):\n" +" _fields_ = [(\"lptdesc\", POINTER(TYPEDESC)),\n" +" (\"lpadesc\", POINTER(ARRAYDESC)),\n" +" (\"hreftype\", HREFTYPE)]\n" +"\n" +"class TYPEDESC(Structure):\n" +" _anonymous_ = (\"u\",)\n" +" _fields_ = [(\"u\", _U),\n" +" (\"vt\", VARTYPE)]" +msgstr "" + +#: ../../library/ctypes.rst:2870 +msgid "" +"The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " +"specifies which one of the union fields is valid. Since the ``u`` field is " +"defined as anonymous field, it is now possible to access the members " +"directly off the TYPEDESC instance. ``td.lptdesc`` and ``td.u.lptdesc`` are " +"equivalent, but the former is faster since it does not need to create a " +"temporary union instance::" +msgstr "" + +#: ../../library/ctypes.rst:2877 +msgid "" +"td = TYPEDESC()\n" +"td.vt = VT_PTR\n" +"td.lptdesc = POINTER(some_type)\n" +"td.u.lptdesc = POINTER(some_type)" +msgstr "" + +#: ../../library/ctypes.rst:2882 +msgid "" +"It is possible to define sub-subclasses of structures, they inherit the " +"fields of the base class. If the subclass definition has a " +"separate :attr:`_fields_` variable, the fields specified in this are " +"appended to the fields of the base class." +msgstr "" + +#: ../../library/ctypes.rst:2887 +msgid "" +"Structure and union constructors accept both positional and keyword " +"arguments. Positional arguments are used to initialize member fields in the " +"same order as they are appear in :attr:`_fields_`. Keyword arguments in the " +"constructor are interpreted as attribute assignments, so they will " +"initialize :attr:`_fields_` with the same name, or create new attributes for " +"names not present in :attr:`_fields_`." +msgstr "" + +#: ../../library/ctypes.rst:2897 +msgid "" +"Descriptor for fields of a :class:`Structure` and :class:`Union`. For " +"example::" +msgstr "" + +#: ../../library/ctypes.rst:2900 +msgid "" +">>> class Color(Structure):\n" +"... _fields_ = (\n" +"... ('red', c_uint8),\n" +"... ('green', c_uint8),\n" +"... ('blue', c_uint8),\n" +"... ('intense', c_bool, 1),\n" +"... ('blinking', c_bool, 1),\n" +"... )\n" +"...\n" +">>> Color.red\n" +"\n" +">>> Color.green.type\n" +"\n" +">>> Color.blue.byte_offset\n" +"2\n" +">>> Color.intense\n" +"\n" +">>> Color.blinking.bit_offset\n" +"1" +msgstr "" + +#: ../../library/ctypes.rst:2920 +msgid "All attributes are read-only." +msgstr "" + +#: ../../library/ctypes.rst:2922 +msgid "" +":class:`!CField` objects are created via :attr:`~Structure._fields_`; do not " +"instantiate the class directly." +msgstr "" + +#: ../../library/ctypes.rst:2927 +msgid "" +"Previously, descriptors only had ``offset`` and ``size`` attributes and a " +"readable string representation; the :class:`!CField` class was not available " +"directly." +msgstr "" + +#: ../../library/ctypes.rst:2933 +msgid "Name of the field, as a string." +msgstr "" + +#: ../../library/ctypes.rst:2937 +msgid "Type of the field, as a :ref:`ctypes class `." +msgstr "" + +#: ../../library/ctypes.rst:2942 +msgid "Offset of the field, in bytes." +msgstr "" + +#: ../../library/ctypes.rst:2944 +msgid "" +"For bitfields, this is the offset of the underlying byte-aligned *storage " +"unit*; see :attr:`~CField.bit_offset`." +msgstr "" + +#: ../../library/ctypes.rst:2949 +msgid "Size of the field, in bytes." +msgstr "" + +#: ../../library/ctypes.rst:2951 +msgid "" +"For bitfields, this is the size of the underlying *storage unit*. Typically, " +"it has the same size as the bitfield's type." +msgstr "" + +#: ../../library/ctypes.rst:2956 +msgid "For non-bitfields, equivalent to :attr:`~CField.byte_size`." +msgstr "" + +#: ../../library/ctypes.rst:2958 +msgid "" +"For bitfields, this contains a backwards-compatible bit-packed value that " +"combines :attr:`~CField.bit_size` and :attr:`~CField.bit_offset`. Prefer " +"using the explicit attributes instead." +msgstr "" + +#: ../../library/ctypes.rst:2965 +msgid "True if this is a bitfield." +msgstr "" + +#: ../../library/ctypes.rst:2970 +msgid "" +"The location of a bitfield within its *storage unit*, that is, " +"within :attr:`~CField.byte_size` bytes of memory starting " +"at :attr:`~CField.byte_offset`." +msgstr "" + +#: ../../library/ctypes.rst:2974 +msgid "" +"To get the field's value, read the storage unit as an integer, :ref:`shift " +"left ` by :attr:`!bit_offset` and take the :attr:`!bit_size` least " +"significant bits." +msgstr "" + +#: ../../library/ctypes.rst:2978 +msgid "" +"For non-bitfields, :attr:`!bit_offset` is zero and :attr:`!bit_size` is " +"equal to ``byte_size * 8``." +msgstr "" + +#: ../../library/ctypes.rst:2983 +msgid "" +"True if this field is anonymous, that is, it contains nested sub-fields that " +"should be merged into a containing structure or union." +msgstr "" + +#: ../../library/ctypes.rst:2990 +msgid "Arrays and pointers" +msgstr "" + +#: ../../library/ctypes.rst:2994 +msgid "Abstract base class for arrays." +msgstr "" + +#: ../../library/ctypes.rst:2996 +msgid "" +"The recommended way to create concrete array types is by multiplying " +"any :mod:`ctypes` data type with a non-negative integer. Alternatively, you " +"can subclass this type and define :attr:`_length_` and :attr:`_type_` class " +"variables. Array elements can be read and written using standard subscript " +"and slice accesses; for slice reads, the resulting object is *not* itself " +"an :class:`Array`." +msgstr "" + +#: ../../library/ctypes.rst:3006 +msgid "" +"A positive integer specifying the number of elements in the array. Out-of-" +"range subscripts result in an :exc:`IndexError`. Will be returned " +"by :func:`len`." +msgstr "" + +#: ../../library/ctypes.rst:3013 +msgid "Specifies the type of each element in the array." +msgstr "" + +#: ../../library/ctypes.rst:3016 +msgid "" +"Array subclass constructors accept positional arguments, used to initialize " +"the elements in order." +msgstr "" + +#: ../../library/ctypes.rst:3021 +msgid "" +"Create an array. Equivalent to ``type * length``, where *type* is " +"a :mod:`ctypes` data type and *length* an integer." +msgstr "" + +#: ../../library/ctypes.rst:3025 +msgid "" +"This function is :term:`soft deprecated` in favor of multiplication. There " +"are no plans to remove it." +msgstr "" + +#: ../../library/ctypes.rst:3031 +msgid "Private, abstract base class for pointers." +msgstr "" + +#: ../../library/ctypes.rst:3033 +msgid "" +"Concrete pointer types are created by calling :func:`POINTER` with the type " +"that will be pointed to; this is done automatically by :func:`pointer`." +msgstr "" + +#: ../../library/ctypes.rst:3037 +msgid "" +"If a pointer points to an array, its elements can be read and written using " +"standard subscript and slice accesses. Pointer objects have no size, " +"so :func:`len` will raise :exc:`TypeError`. Negative subscripts will read " +"from the memory *before* the pointer (as in C), and out-of-range subscripts " +"will probably crash with an access violation (if you're lucky)." +msgstr "" + +#: ../../library/ctypes.rst:3047 +msgid "Specifies the type pointed to." +msgstr "" + +#: ../../library/ctypes.rst:3051 +msgid "" +"Returns the object to which to pointer points. Assigning to this attribute " +"changes the pointer to point to the assigned object." +msgstr "" + +#: ../../library/ctypes.rst:3058 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/ctypes.rst:3062 +msgid "" +"This exception is raised when a foreign function call cannot convert one of " +"the passed arguments." +msgstr "" + +#: ../../library/ctypes.rst:3068 +msgid "This exception is raised when a COM method call failed." +msgstr "" + +#: ../../library/ctypes.rst:3072 +msgid "The integer value representing the error code." +msgstr "" + +#: ../../library/ctypes.rst:3076 +msgid "The error message." +msgstr "" + +#: ../../library/ctypes.rst:3080 +msgid "The 5-tuple ``(descr, source, helpfile, helpcontext, progid)``." +msgstr "" + +#: ../../library/ctypes.rst:3082 +msgid "" +"*descr* is the textual description. *source* is the language-dependent " +"``ProgID`` for the class or application that raised the error. *helpfile* " +"is the path of the help file. *helpcontext* is the help context " +"identifier. *progid* is the ``ProgID`` of the interface that defined the " +"error." +msgstr "" diff --git a/library/curses.ascii.po b/library/curses.ascii.po new file mode 100644 index 0000000..45e0629 --- /dev/null +++ b/library/curses.ascii.po @@ -0,0 +1,344 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/curses.ascii.rst:2 +msgid ":mod:`!curses.ascii` --- Utilities for ASCII characters" +msgstr "" + +#: ../../library/curses.ascii.rst:10 +msgid "**Source code:** :source:`Lib/curses/ascii.py`" +msgstr "" + +#: ../../library/curses.ascii.rst:14 +msgid "" +"The :mod:`curses.ascii` module supplies name constants for ASCII characters " +"and functions to test membership in various ASCII character classes. The " +"constants supplied are names for control characters as follows:" +msgstr "" + +#: ../../library/curses.ascii.rst:19 +msgid "Name" +msgstr "" + +#: ../../library/curses.ascii.rst:19 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/curses.ascii.rst:23 +msgid "Start of heading, console interrupt" +msgstr "" + +#: ../../library/curses.ascii.rst:25 +msgid "Start of text" +msgstr "" + +#: ../../library/curses.ascii.rst:27 +msgid "End of text" +msgstr "" + +#: ../../library/curses.ascii.rst:29 +msgid "End of transmission" +msgstr "" + +#: ../../library/curses.ascii.rst:31 +msgid "Enquiry, goes with :const:`ACK` flow control" +msgstr "" + +#: ../../library/curses.ascii.rst:33 +msgid "Acknowledgement" +msgstr "" + +#: ../../library/curses.ascii.rst:35 +msgid "Bell" +msgstr "" + +#: ../../library/curses.ascii.rst:37 +msgid "Backspace" +msgstr "" + +#: ../../library/curses.ascii.rst:39 +msgid "Tab" +msgstr "" + +#: ../../library/curses.ascii.rst:41 +msgid "Alias for :const:`TAB`: \"Horizontal tab\"" +msgstr "" + +#: ../../library/curses.ascii.rst:43 +msgid "Line feed" +msgstr "" + +#: ../../library/curses.ascii.rst:45 +msgid "Alias for :const:`LF`: \"New line\"" +msgstr "" + +#: ../../library/curses.ascii.rst:47 +msgid "Vertical tab" +msgstr "" + +#: ../../library/curses.ascii.rst:49 +msgid "Form feed" +msgstr "" + +#: ../../library/curses.ascii.rst:51 +msgid "Carriage return" +msgstr "" + +#: ../../library/curses.ascii.rst:53 +msgid "Shift-out, begin alternate character set" +msgstr "" + +#: ../../library/curses.ascii.rst:55 +msgid "Shift-in, resume default character set" +msgstr "" + +#: ../../library/curses.ascii.rst:57 +msgid "Data-link escape" +msgstr "" + +#: ../../library/curses.ascii.rst:59 +msgid "XON, for flow control" +msgstr "" + +#: ../../library/curses.ascii.rst:61 +msgid "Device control 2, block-mode flow control" +msgstr "" + +#: ../../library/curses.ascii.rst:63 +msgid "XOFF, for flow control" +msgstr "" + +#: ../../library/curses.ascii.rst:65 +msgid "Device control 4" +msgstr "" + +#: ../../library/curses.ascii.rst:67 +msgid "Negative acknowledgement" +msgstr "" + +#: ../../library/curses.ascii.rst:69 +msgid "Synchronous idle" +msgstr "" + +#: ../../library/curses.ascii.rst:71 +msgid "End transmission block" +msgstr "" + +#: ../../library/curses.ascii.rst:73 +msgid "Cancel" +msgstr "" + +#: ../../library/curses.ascii.rst:75 +msgid "End of medium" +msgstr "" + +#: ../../library/curses.ascii.rst:77 +msgid "Substitute" +msgstr "" + +#: ../../library/curses.ascii.rst:79 +msgid "Escape" +msgstr "" + +#: ../../library/curses.ascii.rst:81 +msgid "File separator" +msgstr "" + +#: ../../library/curses.ascii.rst:83 +msgid "Group separator" +msgstr "" + +#: ../../library/curses.ascii.rst:85 +msgid "Record separator, block-mode terminator" +msgstr "" + +#: ../../library/curses.ascii.rst:87 +msgid "Unit separator" +msgstr "" + +#: ../../library/curses.ascii.rst:89 +msgid "Space" +msgstr "" + +#: ../../library/curses.ascii.rst:91 +msgid "Delete" +msgstr "" + +#: ../../library/curses.ascii.rst:94 +msgid "" +"Note that many of these have little practical significance in modern usage. " +"The mnemonics derive from teleprinter conventions that predate digital " +"computers." +msgstr "" + +#: ../../library/curses.ascii.rst:97 +msgid "" +"The module supplies the following functions, patterned on those in the " +"standard C library:" +msgstr "" + +#: ../../library/curses.ascii.rst:103 +msgid "" +"Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) " +"or isdigit(c)``." +msgstr "" + +#: ../../library/curses.ascii.rst:109 +msgid "" +"Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) " +"or islower(c)``." +msgstr "" + +#: ../../library/curses.ascii.rst:115 +msgid "Checks for a character value that fits in the 7-bit ASCII set." +msgstr "" + +#: ../../library/curses.ascii.rst:120 +msgid "Checks for an ASCII whitespace character; space or horizontal tab." +msgstr "" + +#: ../../library/curses.ascii.rst:125 +msgid "" +"Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f)." +msgstr "" + +#: ../../library/curses.ascii.rst:130 +msgid "" +"Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is " +"equivalent to ``c in string.digits``." +msgstr "" + +#: ../../library/curses.ascii.rst:136 +msgid "Checks for ASCII any printable character except space." +msgstr "" + +#: ../../library/curses.ascii.rst:141 +msgid "Checks for an ASCII lower-case character." +msgstr "" + +#: ../../library/curses.ascii.rst:146 +msgid "Checks for any ASCII printable character including space." +msgstr "" + +#: ../../library/curses.ascii.rst:151 +msgid "" +"Checks for any printable ASCII character which is not a space or an " +"alphanumeric character." +msgstr "" + +#: ../../library/curses.ascii.rst:157 +msgid "" +"Checks for ASCII white-space characters; space, line feed, carriage return, " +"form feed, horizontal tab, vertical tab." +msgstr "" + +#: ../../library/curses.ascii.rst:163 +msgid "Checks for an ASCII uppercase letter." +msgstr "" + +#: ../../library/curses.ascii.rst:168 +msgid "" +"Checks for an ASCII hexadecimal digit. This is equivalent to ``c in " +"string.hexdigits``." +msgstr "" + +#: ../../library/curses.ascii.rst:174 +msgid "Checks for an ASCII control character (ordinal values 0 to 31)." +msgstr "" + +#: ../../library/curses.ascii.rst:179 +msgid "Checks for a non-ASCII character (ordinal values 0x80 and above)." +msgstr "" + +#: ../../library/curses.ascii.rst:181 +msgid "" +"These functions accept either integers or single-character strings; when the " +"argument is a string, it is first converted using the built-in " +"function :func:`ord`." +msgstr "" + +#: ../../library/curses.ascii.rst:184 +msgid "" +"Note that all these functions check ordinal bit values derived from the " +"character of the string you pass in; they do not actually know anything " +"about the host machine's character encoding." +msgstr "" + +#: ../../library/curses.ascii.rst:188 +msgid "" +"The following two functions take either a single-character string or integer " +"byte value; they return a value of the same type." +msgstr "" + +#: ../../library/curses.ascii.rst:194 +msgid "Return the ASCII value corresponding to the low 7 bits of *c*." +msgstr "" + +#: ../../library/curses.ascii.rst:199 +msgid "" +"Return the control character corresponding to the given character (the " +"character bit value is bitwise-anded with 0x1f)." +msgstr "" + +#: ../../library/curses.ascii.rst:205 +msgid "" +"Return the 8-bit character corresponding to the given ASCII character (the " +"character bit value is bitwise-ored with 0x80)." +msgstr "" + +#: ../../library/curses.ascii.rst:208 +msgid "" +"The following function takes either a single-character string or integer " +"value; it returns a string." +msgstr "" + +#: ../../library/curses.ascii.rst:218 +msgid "" +"Return a string representation of the ASCII character *c*. If *c* is " +"printable, this string is the character itself. If the character is a " +"control character (0x00--0x1f) the string consists of a caret (``'^'``) " +"followed by the corresponding uppercase letter. If the character is an ASCII " +"delete (0x7f) the string is ``'^?'``. If the character has its meta bit " +"(0x80) set, the meta bit is stripped, the preceding rules applied, and " +"``'!'`` prepended to the result." +msgstr "" + +#: ../../library/curses.ascii.rst:228 +msgid "" +"A 33-element string array that contains the ASCII mnemonics for the thirty-" +"two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " +"mnemonic ``SP`` for the space character." +msgstr "" + +#: ../../library/curses.ascii.rst:212 +msgid "^ (caret)" +msgstr "" + +#: ../../library/curses.ascii.rst:212 +msgid "in curses module" +msgstr "" + +#: ../../library/curses.ascii.rst:212 +msgid "! (exclamation)" +msgstr "" diff --git a/library/curses.panel.po b/library/curses.panel.po new file mode 100644 index 0000000..db6717f --- /dev/null +++ b/library/curses.panel.po @@ -0,0 +1,130 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/curses.panel.rst:2 +msgid ":mod:`!curses.panel` --- A panel stack extension for curses" +msgstr "" + +#: ../../library/curses.panel.rst:11 +msgid "" +"Panels are windows with the added feature of depth, so they can be stacked " +"on top of each other, and only the visible portions of each window will be " +"displayed. Panels can be added, moved up or down in the stack, and removed." +msgstr "" + +#: ../../library/curses.panel.rst:19 +msgid "Functions" +msgstr "" + +#: ../../library/curses.panel.rst:21 +msgid "The module :mod:`curses.panel` defines the following functions:" +msgstr "" + +#: ../../library/curses.panel.rst:26 +msgid "Returns the bottom panel in the panel stack." +msgstr "" + +#: ../../library/curses.panel.rst:31 +msgid "" +"Returns a panel object, associating it with the given window *win*. Be aware " +"that you need to keep the returned panel object referenced explicitly. If " +"you don't, the panel object is garbage collected and removed from the panel " +"stack." +msgstr "" + +#: ../../library/curses.panel.rst:38 +msgid "Returns the top panel in the panel stack." +msgstr "" + +#: ../../library/curses.panel.rst:43 +msgid "" +"Updates the virtual screen after changes in the panel stack. This does not " +"call :func:`curses.doupdate`, so you'll have to do this yourself." +msgstr "" + +#: ../../library/curses.panel.rst:50 +msgid "Panel Objects" +msgstr "" + +#: ../../library/curses.panel.rst:52 +msgid "" +"Panel objects, as returned by :func:`new_panel` above, are windows with a " +"stacking order. There's always a window associated with a panel which " +"determines the content, while the panel methods are responsible for the " +"window's depth in the panel stack." +msgstr "" + +#: ../../library/curses.panel.rst:57 +msgid "Panel objects have the following methods:" +msgstr "" + +#: ../../library/curses.panel.rst:62 +msgid "Returns the panel above the current panel." +msgstr "" + +#: ../../library/curses.panel.rst:67 +msgid "Returns the panel below the current panel." +msgstr "" + +#: ../../library/curses.panel.rst:72 +msgid "Push the panel to the bottom of the stack." +msgstr "" + +#: ../../library/curses.panel.rst:77 +msgid "" +"Returns ``True`` if the panel is hidden (not visible), ``False`` otherwise." +msgstr "" + +#: ../../library/curses.panel.rst:82 +msgid "" +"Hide the panel. This does not delete the object, it just makes the window on " +"screen invisible." +msgstr "" + +#: ../../library/curses.panel.rst:88 +msgid "Move the panel to the screen coordinates ``(y, x)``." +msgstr "" + +#: ../../library/curses.panel.rst:93 +msgid "Change the window associated with the panel to the window *win*." +msgstr "" + +#: ../../library/curses.panel.rst:98 +msgid "" +"Set the panel's user pointer to *obj*. This is used to associate an " +"arbitrary piece of data with the panel, and can be any Python object." +msgstr "" + +#: ../../library/curses.panel.rst:104 +msgid "Display the panel (which might have been hidden)." +msgstr "" + +#: ../../library/curses.panel.rst:109 +msgid "Push panel to the top of the stack." +msgstr "" + +#: ../../library/curses.panel.rst:114 +msgid "" +"Returns the user pointer for the panel. This might be any Python object." +msgstr "" + +#: ../../library/curses.panel.rst:119 +msgid "Returns the window object associated with the panel." +msgstr "" diff --git a/library/curses.po b/library/curses.po new file mode 100644 index 0000000..4ac00f8 --- /dev/null +++ b/library/curses.po @@ -0,0 +1,2610 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/curses.rst:2 +msgid ":mod:`!curses` --- Terminal handling for character-cell displays" +msgstr "" + +#: ../../library/curses.rst:12 +msgid "**Source code:** :source:`Lib/curses`" +msgstr "" + +#: ../../library/curses.rst:16 +msgid "" +"The :mod:`curses` module provides an interface to the curses library, the de-" +"facto standard for portable advanced terminal handling." +msgstr "" + +#: ../../library/curses.rst:19 +msgid "" +"While curses is most widely used in the Unix environment, versions are " +"available for Windows, DOS, and possibly other systems as well. This " +"extension module is designed to match the API of ncurses, an open-source " +"curses library hosted on Linux and the BSD variants of Unix." +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:5 +msgid "" +"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." +msgstr "" + +#: ../../library/curses.rst:28 +msgid "" +"Whenever the documentation mentions a *character* it can be specified as an " +"integer, a one-character Unicode string or a one-byte byte string." +msgstr "" + +#: ../../library/curses.rst:31 +msgid "" +"Whenever the documentation mentions a *character string* it can be specified " +"as a Unicode string or a byte string." +msgstr "" + +#: ../../library/curses.rst:36 +msgid "Module :mod:`curses.ascii`" +msgstr "" + +#: ../../library/curses.rst:37 +msgid "" +"Utilities for working with ASCII characters, regardless of your locale " +"settings." +msgstr "" + +#: ../../library/curses.rst:39 +msgid "Module :mod:`curses.panel`" +msgstr "" + +#: ../../library/curses.rst:40 +msgid "A panel stack extension that adds depth to curses windows." +msgstr "" + +#: ../../library/curses.rst:42 +msgid "Module :mod:`curses.textpad`" +msgstr "" + +#: ../../library/curses.rst:43 +msgid "" +"Editable text widget for curses supporting :program:`Emacs`\\ -like " +"bindings." +msgstr "" + +#: ../../library/curses.rst:45 +msgid ":ref:`curses-howto`" +msgstr "" + +#: ../../library/curses.rst:46 +msgid "" +"Tutorial material on using curses with Python, by Andrew Kuchling and Eric " +"Raymond." +msgstr "" + +#: ../../library/curses.rst:53 +msgid "Functions" +msgstr "" + +#: ../../library/curses.rst:55 +msgid "The module :mod:`curses` defines the following exception:" +msgstr "" + +#: ../../library/curses.rst:60 +msgid "Exception raised when a curses library function returns an error." +msgstr "" + +#: ../../library/curses.rst:64 +msgid "" +"Whenever *x* or *y* arguments to a function or a method are optional, they " +"default to the current cursor location. Whenever *attr* is optional, it " +"defaults to :const:`A_NORMAL`." +msgstr "" + +#: ../../library/curses.rst:68 +msgid "The module :mod:`curses` defines the following functions:" +msgstr "" + +#: ../../library/curses.rst:73 +msgid "" +"Allow use of default values for colors on terminals supporting this feature. " +"Use this to support transparency in your application." +msgstr "" + +#: ../../library/curses.rst:76 +msgid "" +"Assign terminal default foreground/background colors to color number ``-1``. " +"So ``init_pair(x, COLOR_RED, -1)`` will initialize pair *x* as red on " +"default background and ``init_pair(x, -1, COLOR_BLUE)`` will initialize pair " +"*x* as default foreground on blue." +msgstr "" + +#: ../../library/curses.rst:81 +msgid "Change the definition of the color-pair ``0`` to ``(fg, bg)``." +msgstr "" + +#: ../../library/curses.rst:88 +msgid "" +"Return the output speed of the terminal in bits per second. On software " +"terminal emulators it will have a fixed high value. Included for historical " +"reasons; in former times, it was used to write output loops for time delays " +"and occasionally to change interfaces depending on the line speed." +msgstr "" + +#: ../../library/curses.rst:96 +msgid "Emit a short attention sound." +msgstr "" + +#: ../../library/curses.rst:101 +msgid "" +"Return ``True`` or ``False``, depending on whether the programmer can change " +"the colors displayed by the terminal." +msgstr "" + +#: ../../library/curses.rst:107 +msgid "" +"Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " +"tty line buffering is turned off and characters are available to be read one " +"by one. However, unlike raw mode, special characters (interrupt, quit, " +"suspend, and flow control) retain their effects on the tty driver and " +"calling program. Calling first :func:`raw` then :func:`cbreak` leaves the " +"terminal in cbreak mode." +msgstr "" + +#: ../../library/curses.rst:116 +msgid "" +"Return the intensity of the red, green, and blue (RGB) components in the " +"color *color_number*, which must be between ``0`` and ``COLORS - 1``. " +"Return a 3-tuple, containing the R,G,B values for the given color, which " +"will be between ``0`` (no component) and ``1000`` (maximum amount of " +"component)." +msgstr "" + +#: ../../library/curses.rst:124 +msgid "" +"Return the attribute value for displaying text in the specified color pair. " +"Only the first 256 color pairs are supported. This attribute value can be " +"combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the " +"other :const:`!A_\\*` attributes. :func:`pair_number` is the counterpart to " +"this function." +msgstr "" + +#: ../../library/curses.rst:133 +msgid "" +"Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " +"for invisible, normal, or very visible. If the terminal supports the " +"visibility requested, return the previous cursor state; otherwise raise an " +"exception. On many terminals, the \"visible\" mode is an underline cursor " +"and the \"very visible\" mode is a block cursor." +msgstr "" + +#: ../../library/curses.rst:142 +msgid "" +"Save the current terminal mode as the \"program\" mode, the mode when the " +"running program is using curses. (Its counterpart is the \"shell\" mode, " +"for when the program is not in curses.) Subsequent calls " +"to :func:`reset_prog_mode` will restore this mode." +msgstr "" + +#: ../../library/curses.rst:150 +msgid "" +"Save the current terminal mode as the \"shell\" mode, the mode when the " +"running program is not using curses. (Its counterpart is the \"program\" " +"mode, when the program is using curses capabilities.) Subsequent calls " +"to :func:`reset_shell_mode` will restore this mode." +msgstr "" + +#: ../../library/curses.rst:158 +msgid "Insert an *ms* millisecond pause in output." +msgstr "" + +#: ../../library/curses.rst:163 +msgid "" +"Update the physical screen. The curses library keeps two data structures, " +"one representing the current physical screen contents and a virtual screen " +"representing the desired next state. The :func:`doupdate` ground updates " +"the physical screen to match the virtual screen." +msgstr "" + +#: ../../library/curses.rst:168 +msgid "" +"The virtual screen may be updated by a :meth:`~window.noutrefresh` call " +"after write operations such as :meth:`~window.addstr` have been performed on " +"a window. The normal :meth:`~window.refresh` call is simply :meth:`!" +"noutrefresh` followed by :func:`!doupdate`; if you have to update multiple " +"windows, you can speed performance and perhaps reduce screen flicker by " +"issuing :meth:`!noutrefresh` calls on all windows, followed by a " +"single :func:`!doupdate`." +msgstr "" + +#: ../../library/curses.rst:178 +msgid "" +"Enter echo mode. In echo mode, each character input is echoed to the screen " +"as it is entered." +msgstr "" + +#: ../../library/curses.rst:184 +msgid "De-initialize the library, and return terminal to normal status." +msgstr "" + +#: ../../library/curses.rst:189 +msgid "" +"Return the user's current erase character as a one-byte bytes object. Under " +"Unix operating systems this is a property of the controlling tty of the " +"curses program, and is not set by the curses library itself." +msgstr "" + +#: ../../library/curses.rst:196 +msgid "" +"The :func:`.filter` routine, if used, must be called before :func:`initscr` " +"is called. The effect is that, during those calls, :envvar:`LINES` is set " +"to ``1``; the capabilities ``clear``, ``cup``, ``cud``, ``cud1``, ``cuu1``, " +"``cuu``, ``vpa`` are disabled; and the ``home`` string is set to the value " +"of ``cr``. The effect is that the cursor is confined to the current line, " +"and so are screen updates. This may be used for enabling character-at-a-" +"time line editing without touching the rest of the screen." +msgstr "" + +#: ../../library/curses.rst:206 +msgid "" +"Flash the screen. That is, change it to reverse-video and then change it " +"back in a short interval. Some people prefer such as 'visible bell' to the " +"audible attention signal produced by :func:`beep`." +msgstr "" + +#: ../../library/curses.rst:213 +msgid "" +"Flush all input buffers. This throws away any typeahead that has been " +"typed by the user and has not yet been processed by the program." +msgstr "" + +#: ../../library/curses.rst:219 +msgid "" +"After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " +"event, this method should be called to retrieve the queued mouse event, " +"represented as a 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used " +"to distinguish multiple devices, and *x*, *y*, *z* are the event's " +"coordinates. (*z* is currently unused.) *bstate* is an integer value whose " +"bits will be set to indicate the type of event, and will be the bitwise OR " +"of one or more of the following constants, where *n* is the button number " +"from 1 to " +"5: :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:`BUTTONn_CLICKED`, :const:`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`, :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`." +msgstr "" + +#: ../../library/curses.rst:230 ../../library/curses.rst:1797 +msgid "" +"The ``BUTTON5_*`` constants are now exposed if they are provided by the " +"underlying curses library." +msgstr "" + +#: ../../library/curses.rst:237 +msgid "" +"Return the current coordinates of the virtual screen cursor as a tuple ``(y, " +"x)``. If :meth:`leaveok ` is currently ``True``, then " +"return ``(-1, -1)``." +msgstr "" + +#: ../../library/curses.rst:243 +msgid "" +"Read window related data stored in the file by an " +"earlier :func:`window.putwin` call. The routine then creates and initializes " +"a new window using that data, returning the new window object." +msgstr "" + +#: ../../library/curses.rst:250 +msgid "" +"Return ``True`` if the terminal can display colors; otherwise, return " +"``False``." +msgstr "" + +#: ../../library/curses.rst:254 +msgid "" +"Return ``True`` if the module supports extended colors; otherwise, return " +"``False``. Extended color support allows more than 256 color pairs for " +"terminals that support more than 16 colors (e.g. xterm-256color)." +msgstr "" + +#: ../../library/curses.rst:258 +msgid "Extended color support requires ncurses version 6.1 or later." +msgstr "" + +#: ../../library/curses.rst:264 +msgid "" +"Return ``True`` if the terminal has insert- and delete-character " +"capabilities. This function is included for historical reasons only, as all " +"modern software terminal emulators have such capabilities." +msgstr "" + +#: ../../library/curses.rst:271 +msgid "" +"Return ``True`` if the terminal has insert- and delete-line capabilities, or " +"can simulate them using scrolling regions. This function is included for " +"historical reasons only, as all modern software terminal emulators have such " +"capabilities." +msgstr "" + +#: ../../library/curses.rst:279 +msgid "" +"Take a key value *ch*, and return ``True`` if the current terminal type " +"recognizes a key with that value." +msgstr "" + +#: ../../library/curses.rst:285 +msgid "" +"Used for half-delay mode, which is similar to cbreak mode in that characters " +"typed by the user are immediately available to the program. However, after " +"blocking for *tenths* tenths of seconds, raise an exception if nothing has " +"been typed. The value of *tenths* must be a number between ``1`` and " +"``255``. Use :func:`nocbreak` to leave half-delay mode." +msgstr "" + +#: ../../library/curses.rst:294 +msgid "" +"Change the definition of a color, taking the number of the color to be " +"changed followed by three RGB values (for the amounts of red, green, and " +"blue components). The value of *color_number* must be between ``0`` and " +"``COLORS - 1``. Each of *r*, *g*, *b*, must be a value between ``0`` and " +"``1000``. When :func:`init_color` is used, all occurrences of that color on " +"the screen immediately change to the new definition. This function is a no-" +"op on most terminals; it is active only if :func:`can_change_color` returns " +"``True``." +msgstr "" + +#: ../../library/curses.rst:305 +msgid "" +"Change the definition of a color-pair. It takes three arguments: the number " +"of the color-pair to be changed, the foreground color number, and the " +"background color number. The value of *pair_number* must be between ``1`` " +"and ``COLOR_PAIRS - 1`` (the ``0`` color pair can only be changed " +"by :func:`use_default_colors` and :func:`assume_default_colors`). The value " +"of *fg* and *bg* arguments must be between ``0`` and ``COLORS - 1``, or, " +"after calling :func:`!use_default_colors` or :func:`!assume_default_colors`, " +"``-1``. If the color-pair was previously initialized, the screen is " +"refreshed and all occurrences of that color-pair are changed to the new " +"definition." +msgstr "" + +#: ../../library/curses.rst:320 +msgid "" +"Initialize the library. Return a :ref:`window ` " +"object which represents the whole screen." +msgstr "" + +#: ../../library/curses.rst:325 +msgid "" +"If there is an error opening the terminal, the underlying curses library may " +"cause the interpreter to exit." +msgstr "" + +#: ../../library/curses.rst:331 +msgid "" +"Return ``True`` if :func:`resize_term` would modify the window structure, " +"``False`` otherwise." +msgstr "" + +#: ../../library/curses.rst:337 +msgid "" +"Return ``True`` if :func:`endwin` has been called (that is, the curses " +"library has been deinitialized)." +msgstr "" + +#: ../../library/curses.rst:343 +msgid "" +"Return the name of the key numbered *k* as a bytes object. The name of a " +"key generating printable ASCII character is the key's character. The name " +"of a control-key combination is a two-byte bytes object consisting of a " +"caret (``b'^'``) followed by the corresponding printable ASCII character. " +"The name of an alt-key combination (128--255) is a bytes object consisting " +"of the prefix ``b'M-'`` followed by the name of the corresponding ASCII " +"character." +msgstr "" + +#: ../../library/curses.rst:353 +msgid "" +"Return the user's current line kill character as a one-byte bytes object. " +"Under Unix operating systems this is a property of the controlling tty of " +"the curses program, and is not set by the curses library itself." +msgstr "" + +#: ../../library/curses.rst:360 +msgid "" +"Return a bytes object containing the terminfo long name field describing the " +"current terminal. The maximum length of a verbose description is 128 " +"characters. It is defined only after the call to :func:`initscr`." +msgstr "" + +#: ../../library/curses.rst:367 +msgid "" +"If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " +"``False``, allow only 7-bit chars." +msgstr "" + +#: ../../library/curses.rst:373 +msgid "" +"Set the maximum time in milliseconds that can elapse between press and " +"release events in order for them to be recognized as a click, and return the " +"previous interval value. The default value is 200 milliseconds, or one " +"fifth of a second." +msgstr "" + +#: ../../library/curses.rst:380 +msgid "" +"Set the mouse events to be reported, and return a tuple ``(availmask, " +"oldmask)``. *availmask* indicates which of the specified mouse events can " +"be reported; on complete failure it returns ``0``. *oldmask* is the " +"previous value of the given window's mouse event mask. If this function is " +"never called, no mouse events are ever reported." +msgstr "" + +#: ../../library/curses.rst:389 +msgid "Sleep for *ms* milliseconds." +msgstr "" + +#: ../../library/curses.rst:394 +msgid "" +"Create and return a pointer to a new pad data structure with the given " +"number of lines and columns. Return a pad as a window object." +msgstr "" + +#: ../../library/curses.rst:397 +msgid "" +"A pad is like a window, except that it is not restricted by the screen size, " +"and is not necessarily associated with a particular part of the screen. " +"Pads can be used when a large window is needed, and only a part of the " +"window will be on the screen at one time. Automatic refreshes of pads (such " +"as from scrolling or echoing of input) do not occur. " +"The :meth:`~window.refresh` and :meth:`~window.noutrefresh` methods of a pad " +"require 6 arguments to specify the part of the pad to be displayed and the " +"location on the screen to be used for the display. The arguments are " +"*pminrow*, *pmincol*, *sminrow*, *smincol*, *smaxrow*, *smaxcol*; the *p* " +"arguments refer to the upper left corner of the pad region to be displayed " +"and the *s* arguments define a clipping box on the screen within which the " +"pad region is to be displayed." +msgstr "" + +#: ../../library/curses.rst:413 +msgid "" +"Return a new :ref:`window `, whose left-upper corner " +"is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." +msgstr "" + +#: ../../library/curses.rst:416 +msgid "" +"By default, the window will extend from the specified position to the lower " +"right corner of the screen." +msgstr "" + +#: ../../library/curses.rst:422 +msgid "" +"Enter newline mode. This mode translates the return key into newline on " +"input, and translates newline into return and line-feed on output. Newline " +"mode is initially on." +msgstr "" + +#: ../../library/curses.rst:429 +msgid "" +"Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." +msgstr "" + +#: ../../library/curses.rst:434 +msgid "Leave echo mode. Echoing of input characters is turned off." +msgstr "" + +#: ../../library/curses.rst:439 +msgid "" +"Leave newline mode. Disable translation of return into newline on input, " +"and disable low-level translation of newline into newline/return on output " +"(but this does not change the behavior of ``addch('\\n')``, which always " +"does the equivalent of return and line feed on the virtual screen). With " +"translation off, curses can sometimes speed up vertical motion a little; " +"also, it will be able to detect the return key on input." +msgstr "" + +#: ../../library/curses.rst:449 +msgid "" +"When the :func:`!noqiflush` routine is used, normal flush of input and " +"output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " +"will not be done. You may want to call :func:`!noqiflush` in a signal " +"handler if you want output to continue as though the interrupt had not " +"occurred, after the handler exits." +msgstr "" + +#: ../../library/curses.rst:457 +msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." +msgstr "" + +#: ../../library/curses.rst:462 +msgid "" +"Return a tuple ``(fg, bg)`` containing the colors for the requested color " +"pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " +"1``." +msgstr "" + +#: ../../library/curses.rst:468 +msgid "" +"Return the number of the color-pair set by the attribute value " +"*attr*. :func:`color_pair` is the counterpart to this function." +msgstr "" + +#: ../../library/curses.rst:474 +msgid "" +"Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " +"terminfo capability for the current terminal. Note that the output " +"of :func:`putp` always goes to standard output." +msgstr "" + +#: ../../library/curses.rst:481 +msgid "" +"If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " +"If *flag* is ``True``, or no argument is provided, the queues will be " +"flushed when these control characters are read." +msgstr "" + +#: ../../library/curses.rst:488 +msgid "" +"Enter raw mode. In raw mode, normal line buffering and processing of " +"interrupt, quit, suspend, and flow control keys are turned off; characters " +"are presented to curses input functions one by one." +msgstr "" + +#: ../../library/curses.rst:495 +msgid "" +"Restore the terminal to \"program\" mode, as previously saved " +"by :func:`def_prog_mode`." +msgstr "" + +#: ../../library/curses.rst:501 +msgid "" +"Restore the terminal to \"shell\" mode, as previously saved " +"by :func:`def_shell_mode`." +msgstr "" + +#: ../../library/curses.rst:507 +msgid "" +"Restore the state of the terminal modes to what it was at the last call " +"to :func:`savetty`." +msgstr "" + +#: ../../library/curses.rst:513 +msgid "" +"Backend function used by :func:`resizeterm`, performing most of the work; " +"when resizing the windows, :func:`resize_term` blank-fills the areas that " +"are extended. The calling application should fill in these areas with " +"appropriate data. The :func:`!resize_term` function attempts to resize all " +"windows. However, due to the calling convention of pads, it is not possible " +"to resize these without additional interaction with the application." +msgstr "" + +#: ../../library/curses.rst:523 +msgid "" +"Resize the standard and current windows to the specified dimensions, and " +"adjusts other bookkeeping data used by the curses library that record the " +"window dimensions (in particular the SIGWINCH handler)." +msgstr "" + +#: ../../library/curses.rst:530 +msgid "" +"Save the current state of the terminal modes in a buffer, usable " +"by :func:`resetty`." +msgstr "" + +#: ../../library/curses.rst:535 +msgid "Retrieves the value set by :func:`set_escdelay`." +msgstr "" + +#: ../../library/curses.rst:541 +msgid "" +"Sets the number of milliseconds to wait after reading an escape character, " +"to distinguish between an individual escape character entered on the " +"keyboard from escape sequences sent by cursor and function keys." +msgstr "" + +#: ../../library/curses.rst:549 +msgid "Retrieves the value set by :func:`set_tabsize`." +msgstr "" + +#: ../../library/curses.rst:555 +msgid "" +"Sets the number of columns used by the curses library when converting a tab " +"character to spaces as it adds the tab to a window." +msgstr "" + +#: ../../library/curses.rst:562 +msgid "" +"Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " +"then :meth:`leaveok ` is set ``True``." +msgstr "" + +#: ../../library/curses.rst:568 +msgid "" +"Initialize the terminal. *term* is a string giving the terminal name, or " +"``None``; if omitted or ``None``, the value of the :envvar:`TERM` " +"environment variable will be used. *fd* is the file descriptor to which any " +"initialization sequences will be sent; if not supplied or ``-1``, the file " +"descriptor for ``sys.stdout`` will be used." +msgstr "" + +#: ../../library/curses.rst:577 +msgid "" +"Must be called if the programmer wants to use colors, and before any other " +"color manipulation routine is called. It is good practice to call this " +"routine right after :func:`initscr`." +msgstr "" + +#: ../../library/curses.rst:581 +msgid "" +":func:`start_color` initializes eight basic colors (black, red, green, " +"yellow, blue, magenta, cyan, and white), and two global variables in " +"the :mod:`curses` module, :const:`COLORS` and :const:`COLOR_PAIRS`, " +"containing the maximum number of colors and color-pairs the terminal can " +"support. It also restores the colors on the terminal to the values they had " +"when the terminal was just turned on." +msgstr "" + +#: ../../library/curses.rst:590 +msgid "" +"Return a logical OR of all video attributes supported by the terminal. This " +"information is useful when a curses program needs complete control over the " +"appearance of the screen." +msgstr "" + +#: ../../library/curses.rst:597 +msgid "" +"Return the value of the environment variable :envvar:`TERM`, as a bytes " +"object, truncated to 14 characters." +msgstr "" + +#: ../../library/curses.rst:603 +msgid "" +"Return the value of the Boolean capability corresponding to the terminfo " +"capability name *capname* as an integer. Return the value ``-1`` if " +"*capname* is not a Boolean capability, or ``0`` if it is canceled or absent " +"from the terminal description." +msgstr "" + +#: ../../library/curses.rst:611 +msgid "" +"Return the value of the numeric capability corresponding to the terminfo " +"capability name *capname* as an integer. Return the value ``-2`` if " +"*capname* is not a numeric capability, or ``-1`` if it is canceled or absent " +"from the terminal description." +msgstr "" + +#: ../../library/curses.rst:619 +msgid "" +"Return the value of the string capability corresponding to the terminfo " +"capability name *capname* as a bytes object. Return ``None`` if *capname* " +"is not a terminfo \"string capability\", or is canceled or absent from the " +"terminal description." +msgstr "" + +#: ../../library/curses.rst:627 +msgid "" +"Instantiate the bytes object *str* with the supplied parameters, where *str* " +"should be a parameterized string obtained from the terminfo database. E.g. " +"``tparm(tigetstr(\"cup\"), 5, 3)`` could result in ``b'\\033[6;4H'``, the " +"exact result depending on terminal type." +msgstr "" + +#: ../../library/curses.rst:635 +msgid "" +"Specify that the file descriptor *fd* be used for typeahead checking. If " +"*fd* is ``-1``, then no typeahead checking is done." +msgstr "" + +#: ../../library/curses.rst:638 +msgid "" +"The curses library does \"line-breakout optimization\" by looking for " +"typeahead periodically while updating the screen. If input is found, and it " +"is coming from a tty, the current update is postponed until refresh or " +"doupdate is called again, allowing faster response to commands typed in " +"advance. This function allows specifying a different file descriptor for " +"typeahead checking." +msgstr "" + +#: ../../library/curses.rst:647 +msgid "" +"Return a bytes object which is a printable representation of the character " +"*ch*. Control characters are represented as a caret followed by the " +"character, for example as ``b'^C'``. Printing characters are left as they " +"are." +msgstr "" + +#: ../../library/curses.rst:654 +msgid "Push *ch* so the next :meth:`~window.getch` will return it." +msgstr "" + +#: ../../library/curses.rst:658 +msgid "Only one *ch* can be pushed before :meth:`!getch` is called." +msgstr "" + +#: ../../library/curses.rst:663 +msgid "" +"Update the :const:`LINES` and :const:`COLS` module variables. Useful for " +"detecting manual screen resize." +msgstr "" + +#: ../../library/curses.rst:671 +msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." +msgstr "" + +#: ../../library/curses.rst:675 +msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." +msgstr "" + +#: ../../library/curses.rst:682 +msgid "" +"Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " +"state data with it." +msgstr "" + +#: ../../library/curses.rst:688 +msgid "" +"If used, this function should be called before :func:`initscr` or newterm " +"are called. When *flag* is ``False``, the values of lines and columns " +"specified in the terminfo database will be used, even if environment " +"variables :envvar:`LINES` and :envvar:`COLUMNS` (used by default) are set, " +"or if curses is running in a window (in which case default behavior would be " +"to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." +msgstr "" + +#: ../../library/curses.rst:698 +msgid "Equivalent to ``assume_default_colors(-1, -1)``." +msgstr "" + +#: ../../library/curses.rst:703 +msgid "" +"Initialize curses and call another callable object, *func*, which should be " +"the rest of your curses-using application. If the application raises an " +"exception, this function will restore the terminal to a sane state before re-" +"raising the exception and generating a traceback. The callable object " +"*func* is then passed the main window 'stdscr' as its first argument, " +"followed by any other arguments passed to :func:`!wrapper`. Before calling " +"*func*, :func:`!wrapper` turns on cbreak mode, turns off echo, enables the " +"terminal keypad, and initializes colors if the terminal has color support. " +"On exit (whether normally or by exception) it restores cooked mode, turns on " +"echo, and disables the terminal keypad." +msgstr "" + +#: ../../library/curses.rst:717 +msgid "Window Objects" +msgstr "" + +#: ../../library/curses.rst:719 +msgid "" +"Window objects, as returned by :func:`initscr` and :func:`newwin` above, " +"have the following methods and attributes:" +msgstr "" + +#: ../../library/curses.rst:726 +msgid "" +"Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " +"character previously painted at that location. By default, the character " +"position and attributes are the current settings for the window object." +msgstr "" + +#: ../../library/curses.rst:732 +msgid "" +"Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. " +"Attempting to write to the lower right corner of a window, subwindow, or pad " +"will cause an exception to be raised after the character is printed." +msgstr "" + +#: ../../library/curses.rst:740 +msgid "" +"Paint at most *n* characters of the character string *str* at ``(y, x)`` " +"with attributes *attr*, overwriting anything previously on the display." +msgstr "" + +#: ../../library/curses.rst:748 +msgid "" +"Paint the character string *str* at ``(y, x)`` with attributes *attr*, " +"overwriting anything previously on the display." +msgstr "" + +#: ../../library/curses.rst:753 +msgid "" +"Writing outside the window, subwindow, or pad raises :exc:`curses.error`. " +"Attempting to write to the lower right corner of a window, subwindow, or pad " +"will cause an exception to be raised after the string is printed." +msgstr "" + +#: ../../library/curses.rst:757 +msgid "" +"A `bug in ncurses `_, the backend for " +"this Python module, can cause SegFaults when resizing windows. This is fixed " +"in ncurses-6.1-20190511. If you are stuck with an earlier ncurses, you can " +"avoid triggering this if you do not call :func:`addstr` with a *str* that " +"has embedded newlines. Instead, call :func:`addstr` separately for each " +"line." +msgstr "" + +#: ../../library/curses.rst:767 +msgid "" +"Remove attribute *attr* from the \"background\" set applied to all writes to " +"the current window." +msgstr "" + +#: ../../library/curses.rst:773 +msgid "" +"Add attribute *attr* from the \"background\" set applied to all writes to " +"the current window." +msgstr "" + +#: ../../library/curses.rst:779 +msgid "" +"Set the \"background\" set of attributes to *attr*. This set is initially " +"``0`` (no attributes)." +msgstr "" + +#: ../../library/curses.rst:785 +msgid "" +"Set the background property of the window to the character *ch*, with " +"attributes *attr*. The change is then applied to every character position " +"in that window:" +msgstr "" + +#: ../../library/curses.rst:789 +msgid "" +"The attribute of every character in the window is changed to the new " +"background attribute." +msgstr "" + +#: ../../library/curses.rst:792 +msgid "" +"Wherever the former background character appears, it is changed to the new " +"background character." +msgstr "" + +#: ../../library/curses.rst:798 +msgid "" +"Set the window's background. A window's background consists of a character " +"and any combination of attributes. The attribute part of the background is " +"combined (OR'ed) with all non-blank characters that are written into the " +"window. Both the character and attribute parts of the background are " +"combined with the blank characters. The background becomes a property of " +"the character and moves with the character through any scrolling and insert/" +"delete line/character operations." +msgstr "" + +#: ../../library/curses.rst:808 +msgid "" +"Draw a border around the edges of the window. Each parameter specifies the " +"character to use for a specific part of the border; see the table below for " +"more details." +msgstr "" + +#: ../../library/curses.rst:814 +msgid "" +"A ``0`` value for any parameter will cause the default character to be used " +"for that parameter. Keyword parameters can *not* be used. The defaults are " +"listed in this table:" +msgstr "" + +#: ../../library/curses.rst:819 +msgid "Parameter" +msgstr "" + +#: ../../library/curses.rst:819 +msgid "Description" +msgstr "" + +#: ../../library/curses.rst:819 +msgid "Default value" +msgstr "" + +#: ../../library/curses.rst:821 +msgid "*ls*" +msgstr "" + +#: ../../library/curses.rst:821 +msgid "Left side" +msgstr "" + +#: ../../library/curses.rst:821 ../../library/curses.rst:823 +msgid ":const:`ACS_VLINE`" +msgstr "" + +#: ../../library/curses.rst:823 +msgid "*rs*" +msgstr "" + +#: ../../library/curses.rst:823 +msgid "Right side" +msgstr "" + +#: ../../library/curses.rst:825 +msgid "*ts*" +msgstr "" + +#: ../../library/curses.rst:825 +msgid "Top" +msgstr "" + +#: ../../library/curses.rst:825 ../../library/curses.rst:827 +msgid ":const:`ACS_HLINE`" +msgstr "" + +#: ../../library/curses.rst:827 +msgid "*bs*" +msgstr "" + +#: ../../library/curses.rst:827 +msgid "Bottom" +msgstr "" + +#: ../../library/curses.rst:829 +msgid "*tl*" +msgstr "" + +#: ../../library/curses.rst:829 +msgid "Upper-left corner" +msgstr "" + +#: ../../library/curses.rst:829 +msgid ":const:`ACS_ULCORNER`" +msgstr "" + +#: ../../library/curses.rst:831 +msgid "*tr*" +msgstr "" + +#: ../../library/curses.rst:831 +msgid "Upper-right corner" +msgstr "" + +#: ../../library/curses.rst:831 +msgid ":const:`ACS_URCORNER`" +msgstr "" + +#: ../../library/curses.rst:833 +msgid "*bl*" +msgstr "" + +#: ../../library/curses.rst:833 +msgid "Bottom-left corner" +msgstr "" + +#: ../../library/curses.rst:833 +msgid ":const:`ACS_LLCORNER`" +msgstr "" + +#: ../../library/curses.rst:835 +msgid "*br*" +msgstr "" + +#: ../../library/curses.rst:835 +msgid "Bottom-right corner" +msgstr "" + +#: ../../library/curses.rst:835 +msgid ":const:`ACS_LRCORNER`" +msgstr "" + +#: ../../library/curses.rst:841 +msgid "" +"Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* " +"and *bs* are *horch*. The default corner characters are always used by this " +"function." +msgstr "" + +#: ../../library/curses.rst:850 +msgid "" +"Set the attributes of *num* characters at the current cursor position, or at " +"position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, the " +"attribute will be set on all the characters to the end of the line. This " +"function moves cursor to position ``(y, x)`` if supplied. The changed line " +"will be touched using the :meth:`touchline` method so that the contents will " +"be redisplayed by the next window refresh." +msgstr "" + +#: ../../library/curses.rst:860 +msgid "" +"Like :meth:`erase`, but also cause the whole window to be repainted upon " +"next call to :meth:`refresh`." +msgstr "" + +#: ../../library/curses.rst:866 +msgid "" +"If *flag* is ``True``, the next call to :meth:`refresh` will clear the " +"window completely." +msgstr "" + +#: ../../library/curses.rst:872 +msgid "" +"Erase from cursor to the end of the window: all lines below the cursor are " +"deleted, and then the equivalent of :meth:`clrtoeol` is performed." +msgstr "" + +#: ../../library/curses.rst:878 +msgid "Erase from cursor to the end of the line." +msgstr "" + +#: ../../library/curses.rst:883 +msgid "" +"Update the current cursor position of all the ancestors of the window to " +"reflect the current cursor position of the window." +msgstr "" + +#: ../../library/curses.rst:889 +msgid "Delete any character at ``(y, x)``." +msgstr "" + +#: ../../library/curses.rst:894 +msgid "" +"Delete the line under the cursor. All following lines are moved up by one " +"line." +msgstr "" + +#: ../../library/curses.rst:900 +msgid "" +"An abbreviation for \"derive window\", :meth:`derwin` is the same as " +"calling :meth:`subwin`, except that *begin_y* and *begin_x* are relative to " +"the origin of the window, rather than relative to the entire screen. Return " +"a window object for the derived window." +msgstr "" + +#: ../../library/curses.rst:908 +msgid "" +"Add character *ch* with attribute *attr*, and immediately " +"call :meth:`refresh` on the window." +msgstr "" + +#: ../../library/curses.rst:914 +msgid "" +"Test whether the given pair of screen-relative character-cell coordinates " +"are enclosed by the given window, returning ``True`` or ``False``. It is " +"useful for determining what subset of the screen windows enclose the " +"location of a mouse event." +msgstr "" + +#: ../../library/curses.rst:919 +msgid "Previously it returned ``1`` or ``0`` instead of ``True`` or ``False``." +msgstr "" + +#: ../../library/curses.rst:925 +msgid "" +"Encoding used to encode method arguments (Unicode strings and characters). " +"The encoding attribute is inherited from the parent window when a subwindow " +"is created, for example with :meth:`window.subwin`. By default, current " +"locale encoding is used (see :func:`locale.getencoding`)." +msgstr "" + +#: ../../library/curses.rst:935 +msgid "Clear the window." +msgstr "" + +#: ../../library/curses.rst:940 +msgid "Return a tuple ``(y, x)`` of coordinates of upper-left corner." +msgstr "" + +#: ../../library/curses.rst:945 +msgid "Return the given window's current background character/attribute pair." +msgstr "" + +#: ../../library/curses.rst:950 +msgid "" +"Get a character. Note that the integer returned does *not* have to be in " +"ASCII range: function keys, keypad keys and so on are represented by numbers " +"higher than 255. In no-delay mode, return ``-1`` if there is no input, " +"otherwise wait until a key is pressed." +msgstr "" + +#: ../../library/curses.rst:958 +msgid "" +"Get a wide character. Return a character for most keys, or an integer for " +"function keys, keypad keys, and other special keys. In no-delay mode, raise " +"an exception if there is no input." +msgstr "" + +#: ../../library/curses.rst:967 +msgid "" +"Get a character, returning a string instead of an integer, as :meth:`getch` " +"does. Function keys, keypad keys and other special keys return a multibyte " +"string containing the key name. In no-delay mode, raise an exception if " +"there is no input." +msgstr "" + +#: ../../library/curses.rst:975 +msgid "Return a tuple ``(y, x)`` of the height and width of the window." +msgstr "" + +#: ../../library/curses.rst:980 +msgid "" +"Return the beginning coordinates of this window relative to its parent " +"window as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no " +"parent." +msgstr "" + +#: ../../library/curses.rst:990 +msgid "" +"Read a bytes object from the user, with primitive line editing capacity. The " +"maximum value for *n* is 2047." +msgstr "" + +#: ../../library/curses.rst:993 ../../library/curses.rst:1088 +msgid "The maximum value for *n* was increased from 1023 to 2047." +msgstr "" + +#: ../../library/curses.rst:999 +msgid "" +"Return a tuple ``(y, x)`` of current cursor position relative to the " +"window's upper-left corner." +msgstr "" + +#: ../../library/curses.rst:1006 +msgid "" +"Display a horizontal line starting at ``(y, x)`` with length *n* consisting " +"of the character *ch*." +msgstr "" + +#: ../../library/curses.rst:1012 +msgid "" +"If *flag* is ``False``, curses no longer considers using the hardware insert/" +"delete character feature of the terminal; if *flag* is ``True``, use of " +"character insertion and deletion is enabled. When curses is first " +"initialized, use of character insert/delete is enabled by default." +msgstr "" + +#: ../../library/curses.rst:1020 +msgid "" +"If *flag* is ``True``, :mod:`curses` will try and use hardware line editing " +"facilities. Otherwise, line insertion/deletion are disabled." +msgstr "" + +#: ../../library/curses.rst:1026 +msgid "" +"If *flag* is ``True``, any change in the window image automatically causes " +"the window to be refreshed; you no longer have to call :meth:`refresh` " +"yourself. However, it may degrade performance considerably, due to repeated " +"calls to wrefresh. This option is disabled by default." +msgstr "" + +#: ../../library/curses.rst:1034 +msgid "" +"Return the character at the given position in the window. The bottom 8 bits " +"are the character proper, and upper bits are the attributes." +msgstr "" + +#: ../../library/curses.rst:1041 +msgid "" +"Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " +"from position *x* right by one character." +msgstr "" + +#: ../../library/curses.rst:1047 +msgid "" +"Insert *nlines* lines into the specified window above the current line. The " +"*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " +"lines starting with the one under the cursor, and move the remaining lines " +"up. The bottom *nlines* lines are cleared. The current cursor position " +"remains the same." +msgstr "" + +#: ../../library/curses.rst:1056 +msgid "" +"Insert a blank line under the cursor. All following lines are moved down by " +"one line." +msgstr "" + +#: ../../library/curses.rst:1063 +msgid "" +"Insert a character string (as many characters as will fit on the line) " +"before the character under the cursor, up to *n* characters. If *n* is " +"zero or negative, the entire string is inserted. All characters to the right " +"of the cursor are shifted right, with the rightmost characters on the line " +"being lost. The cursor position does not change (after moving to *y*, *x*, " +"if specified)." +msgstr "" + +#: ../../library/curses.rst:1073 +msgid "" +"Insert a character string (as many characters as will fit on the line) " +"before the character under the cursor. All characters to the right of the " +"cursor are shifted right, with the rightmost characters on the line being " +"lost. The cursor position does not change (after moving to *y*, *x*, if " +"specified)." +msgstr "" + +#: ../../library/curses.rst:1082 +msgid "" +"Return a bytes object of characters, extracted from the window starting at " +"the current cursor position, or at *y*, *x* if specified. Attributes are " +"stripped from the characters. If *n* is specified, :meth:`instr` returns a " +"string at most *n* characters long (exclusive of the trailing NUL). The " +"maximum value for *n* is 2047." +msgstr "" + +#: ../../library/curses.rst:1094 +msgid "" +"Return ``True`` if the specified line was modified since the last call " +"to :meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` " +"exception if *line* is not valid for the given window." +msgstr "" + +#: ../../library/curses.rst:1101 +msgid "" +"Return ``True`` if the specified window was modified since the last call " +"to :meth:`refresh`; otherwise return ``False``." +msgstr "" + +#: ../../library/curses.rst:1107 +msgid "" +"If *flag* is ``True``, escape sequences generated by some keys (keypad, " +"function keys) will be interpreted by :mod:`curses`. If *flag* is ``False``, " +"escape sequences will be left as is in the input stream." +msgstr "" + +#: ../../library/curses.rst:1114 +msgid "" +"If *flag* is ``True``, cursor is left where it is on update, instead of " +"being at \"cursor position.\" This reduces cursor movement where possible. " +"If possible the cursor will be made invisible." +msgstr "" + +#: ../../library/curses.rst:1118 +msgid "" +"If *flag* is ``False``, cursor will always be at \"cursor position\" after " +"an update." +msgstr "" + +#: ../../library/curses.rst:1123 +msgid "Move cursor to ``(new_y, new_x)``." +msgstr "" + +#: ../../library/curses.rst:1128 +msgid "" +"Move the window inside its parent window. The screen-relative parameters of " +"the window are not changed. This routine is used to display different parts " +"of the parent window at the same physical position on the screen." +msgstr "" + +#: ../../library/curses.rst:1135 +msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." +msgstr "" + +#: ../../library/curses.rst:1140 +msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." +msgstr "" + +#: ../../library/curses.rst:1145 +msgid "If *flag* is ``True``, escape sequences will not be timed out." +msgstr "" + +#: ../../library/curses.rst:1147 +msgid "" +"If *flag* is ``False``, after a few milliseconds, an escape sequence will " +"not be interpreted, and will be left in the input stream as is." +msgstr "" + +#: ../../library/curses.rst:1153 +msgid "" +"Mark for refresh but wait. This function updates the data structure " +"representing the desired state of the window, but does not force an update " +"of the physical screen. To accomplish that, call :func:`doupdate`." +msgstr "" + +#: ../../library/curses.rst:1160 +msgid "" +"Overlay the window on top of *destwin*. The windows need not be the same " +"size, only the overlapping region is copied. This copy is non-destructive, " +"which means that the current background character does not overwrite the old " +"contents of *destwin*." +msgstr "" + +#: ../../library/curses.rst:1165 +msgid "" +"To get fine-grained control over the copied region, the second form " +"of :meth:`overlay` can be used. *sminrow* and *smincol* are the upper-left " +"coordinates of the source window, and the other variables mark a rectangle " +"in the destination window." +msgstr "" + +#: ../../library/curses.rst:1173 +msgid "" +"Overwrite the window on top of *destwin*. The windows need not be the same " +"size, in which case only the overlapping region is copied. This copy is " +"destructive, which means that the current background character overwrites " +"the old contents of *destwin*." +msgstr "" + +#: ../../library/curses.rst:1178 +msgid "" +"To get fine-grained control over the copied region, the second form " +"of :meth:`overwrite` can be used. *sminrow* and *smincol* are the upper-left " +"coordinates of the source window, the other variables mark a rectangle in " +"the destination window." +msgstr "" + +#: ../../library/curses.rst:1186 +msgid "" +"Write all data associated with the window into the provided file object. " +"This information can be later retrieved using the :func:`getwin` function." +msgstr "" + +#: ../../library/curses.rst:1192 +msgid "" +"Indicate that the *num* screen lines, starting at line *beg*, are corrupted " +"and should be completely redrawn on the next :meth:`refresh` call." +msgstr "" + +#: ../../library/curses.rst:1198 +msgid "" +"Touch the entire window, causing it to be completely redrawn on the " +"next :meth:`refresh` call." +msgstr "" + +#: ../../library/curses.rst:1204 +msgid "" +"Update the display immediately (sync actual screen with previous drawing/" +"deleting methods)." +msgstr "" + +#: ../../library/curses.rst:1207 +msgid "" +"The 6 optional arguments can only be specified when the window is a pad " +"created with :func:`newpad`. The additional parameters are needed to " +"indicate what part of the pad and screen are involved. *pminrow* and " +"*pmincol* specify the upper left-hand corner of the rectangle to be " +"displayed in the pad. *sminrow*, *smincol*, *smaxrow*, and *smaxcol* " +"specify the edges of the rectangle to be displayed on the screen. The lower " +"right-hand corner of the rectangle to be displayed in the pad is calculated " +"from the screen coordinates, since the rectangles must be the same size. " +"Both rectangles must be entirely contained within their respective " +"structures. Negative values of *pminrow*, *pmincol*, *sminrow*, or " +"*smincol* are treated as if they were zero." +msgstr "" + +#: ../../library/curses.rst:1221 +msgid "" +"Reallocate storage for a curses window to adjust its dimensions to the " +"specified values. If either dimension is larger than the current values, " +"the window's data is filled with blanks that have the current background " +"rendition (as set by :meth:`bkgdset`) merged into them." +msgstr "" + +#: ../../library/curses.rst:1229 +msgid "Scroll the screen or scrolling region upward by *lines* lines." +msgstr "" + +#: ../../library/curses.rst:1234 +msgid "" +"Control what happens when the cursor of a window is moved off the edge of " +"the window or scrolling region, either as a result of a newline action on " +"the bottom line, or typing the last character of the last line. If *flag* " +"is ``False``, the cursor is left on the bottom line. If *flag* is ``True``, " +"the window is scrolled up one line. Note that in order to get the physical " +"scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." +msgstr "" + +#: ../../library/curses.rst:1244 +msgid "" +"Set the scrolling region from line *top* to line *bottom*. All scrolling " +"actions will take place in this region." +msgstr "" + +#: ../../library/curses.rst:1250 +msgid "" +"Turn off the standout attribute. On some terminals this has the side effect " +"of turning off all attributes." +msgstr "" + +#: ../../library/curses.rst:1256 +msgid "Turn on attribute *A_STANDOUT*." +msgstr "" + +#: ../../library/curses.rst:1262 ../../library/curses.rst:1269 +msgid "" +"Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " +"and whose width/height is *ncols*/*nlines*." +msgstr "" + +#: ../../library/curses.rst:1272 +msgid "" +"By default, the sub-window will extend from the specified position to the " +"lower right corner of the window." +msgstr "" + +#: ../../library/curses.rst:1278 +msgid "" +"Touch each location in the window that has been touched in any of its " +"ancestor windows. This routine is called by :meth:`refresh`, so it should " +"almost never be necessary to call it manually." +msgstr "" + +#: ../../library/curses.rst:1285 +msgid "" +"If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " +"there is a change in the window." +msgstr "" + +#: ../../library/curses.rst:1291 +msgid "" +"Touch all locations in ancestors of the window that have been changed in " +"the window." +msgstr "" + +#: ../../library/curses.rst:1297 +msgid "" +"Set blocking or non-blocking read behavior for the window. If *delay* is " +"negative, blocking read is used (which will wait indefinitely for input). " +"If *delay* is zero, then non-blocking read is used, and :meth:`getch` will " +"return ``-1`` if no input is waiting. If *delay* is positive, " +"then :meth:`getch` will block for *delay* milliseconds, and return ``-1`` if " +"there is still no input at the end of that time." +msgstr "" + +#: ../../library/curses.rst:1307 +msgid "" +"Pretend *count* lines have been changed, starting with line *start*. If " +"*changed* is supplied, it specifies whether the affected lines are marked as " +"having been changed (*changed*\\ ``=True``) or unchanged (*changed*\\ " +"``=False``)." +msgstr "" + +#: ../../library/curses.rst:1314 +msgid "" +"Pretend the whole window has been changed, for purposes of drawing " +"optimizations." +msgstr "" + +#: ../../library/curses.rst:1320 +msgid "" +"Mark all lines in the window as unchanged since the last call " +"to :meth:`refresh`." +msgstr "" + +#: ../../library/curses.rst:1327 +msgid "" +"Display a vertical line starting at ``(y, x)`` with length *n* consisting of " +"the character *ch* with attributes *attr*." +msgstr "" + +#: ../../library/curses.rst:1332 +msgid "Constants" +msgstr "" + +#: ../../library/curses.rst:1334 +msgid "The :mod:`curses` module defines the following data members:" +msgstr "" + +#: ../../library/curses.rst:1339 +msgid "" +"Some curses routines that return an integer, such " +"as :meth:`~window.getch`, return :const:`ERR` upon failure." +msgstr "" + +#: ../../library/curses.rst:1345 +msgid "" +"Some curses routines that return an integer, such as :func:`napms`, " +"return :const:`OK` upon success." +msgstr "" + +#: ../../library/curses.rst:1352 +msgid "A bytes object representing the current version of the module." +msgstr "" + +#: ../../library/curses.rst:1357 +msgid "" +"A named tuple containing the three components of the ncurses library " +"version: *major*, *minor*, and *patch*. All values are integers. The " +"components can also be accessed by name, so ``curses.ncurses_version[0]`` " +"is equivalent to ``curses.ncurses_version.major`` and so on." +msgstr "" + +#: ../../library/curses.rst:1362 +msgid "Availability: if the ncurses library is used." +msgstr "" + +#: ../../library/curses.rst:1368 +msgid "" +"The maximum number of colors the terminal can support. It is defined only " +"after the call to :func:`start_color`." +msgstr "" + +#: ../../library/curses.rst:1373 +msgid "" +"The maximum number of color pairs the terminal can support. It is defined " +"only after the call to :func:`start_color`." +msgstr "" + +#: ../../library/curses.rst:1378 +msgid "" +"The width of the screen, i.e., the number of columns. It is defined only " +"after the call to :func:`initscr`. Updated " +"by :func:`update_lines_cols`, :func:`resizeterm` and :func:`resize_term`." +msgstr "" + +#: ../../library/curses.rst:1385 +msgid "" +"The height of the screen, i.e., the number of lines. It is defined only " +"after the call to :func:`initscr`. Updated " +"by :func:`update_lines_cols`, :func:`resizeterm` and :func:`resize_term`." +msgstr "" + +#: ../../library/curses.rst:1391 +msgid "" +"Some constants are available to specify character cell attributes. The exact " +"constants available are system dependent." +msgstr "" + +#: ../../library/curses.rst:1395 +msgid "Attribute" +msgstr "" + +#: ../../library/curses.rst:1395 ../../library/curses.rst:1440 +#: ../../library/curses.rst:1686 ../../library/curses.rst:1778 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/curses.rst:1397 +msgid "Alternate character set mode" +msgstr "" + +#: ../../library/curses.rst:1399 +msgid "Blink mode" +msgstr "" + +#: ../../library/curses.rst:1401 +msgid "Bold mode" +msgstr "" + +#: ../../library/curses.rst:1403 +msgid "Dim mode" +msgstr "" + +#: ../../library/curses.rst:1405 +msgid "Invisible or blank mode" +msgstr "" + +#: ../../library/curses.rst:1407 +msgid "Italic mode" +msgstr "" + +#: ../../library/curses.rst:1409 +msgid "Normal attribute" +msgstr "" + +#: ../../library/curses.rst:1411 +msgid "Protected mode" +msgstr "" + +#: ../../library/curses.rst:1413 +msgid "Reverse background and foreground colors" +msgstr "" + +#: ../../library/curses.rst:1416 +msgid "Standout mode" +msgstr "" + +#: ../../library/curses.rst:1418 +msgid "Underline mode" +msgstr "" + +#: ../../library/curses.rst:1420 +msgid "Horizontal highlight" +msgstr "" + +#: ../../library/curses.rst:1422 +msgid "Left highlight" +msgstr "" + +#: ../../library/curses.rst:1424 +msgid "Low highlight" +msgstr "" + +#: ../../library/curses.rst:1426 +msgid "Right highlight" +msgstr "" + +#: ../../library/curses.rst:1428 +msgid "Top highlight" +msgstr "" + +#: ../../library/curses.rst:1430 +msgid "Vertical highlight" +msgstr "" + +#: ../../library/curses.rst:1433 +msgid "``A_ITALIC`` was added." +msgstr "" + +#: ../../library/curses.rst:1436 +msgid "" +"Several constants are available to extract corresponding attributes returned " +"by some methods." +msgstr "" + +#: ../../library/curses.rst:1440 +msgid "Bit-mask" +msgstr "" + +#: ../../library/curses.rst:1442 +msgid "Bit-mask to extract attributes" +msgstr "" + +#: ../../library/curses.rst:1445 +msgid "Bit-mask to extract a character" +msgstr "" + +#: ../../library/curses.rst:1448 +msgid "Bit-mask to extract color-pair field information" +msgstr "" + +#: ../../library/curses.rst:1452 +msgid "" +"Keys are referred to by integer constants with names starting with " +"``KEY_``. The exact keycaps available are system dependent." +msgstr "" + +#: ../../library/curses.rst:1458 +msgid "Key constant" +msgstr "" + +#: ../../library/curses.rst:1458 +msgid "Key" +msgstr "" + +#: ../../library/curses.rst:1460 +msgid "Minimum key value" +msgstr "" + +#: ../../library/curses.rst:1462 +msgid "Break key (unreliable)" +msgstr "" + +#: ../../library/curses.rst:1464 +msgid "Down-arrow" +msgstr "" + +#: ../../library/curses.rst:1466 +msgid "Up-arrow" +msgstr "" + +#: ../../library/curses.rst:1468 +msgid "Left-arrow" +msgstr "" + +#: ../../library/curses.rst:1470 +msgid "Right-arrow" +msgstr "" + +#: ../../library/curses.rst:1472 +msgid "Home key (upward+left arrow)" +msgstr "" + +#: ../../library/curses.rst:1474 +msgid "Backspace (unreliable)" +msgstr "" + +#: ../../library/curses.rst:1476 +msgid "Function keys. Up to 64 function keys are supported." +msgstr "" + +#: ../../library/curses.rst:1479 +msgid "Value of function key *n*" +msgstr "" + +#: ../../library/curses.rst:1481 +msgid "Delete line" +msgstr "" + +#: ../../library/curses.rst:1483 +msgid "Insert line" +msgstr "" + +#: ../../library/curses.rst:1485 +msgid "Delete character" +msgstr "" + +#: ../../library/curses.rst:1487 +msgid "Insert char or enter insert mode" +msgstr "" + +#: ../../library/curses.rst:1489 +msgid "Exit insert char mode" +msgstr "" + +#: ../../library/curses.rst:1491 +msgid "Clear screen" +msgstr "" + +#: ../../library/curses.rst:1493 +msgid "Clear to end of screen" +msgstr "" + +#: ../../library/curses.rst:1495 +msgid "Clear to end of line" +msgstr "" + +#: ../../library/curses.rst:1497 +msgid "Scroll 1 line forward" +msgstr "" + +#: ../../library/curses.rst:1499 +msgid "Scroll 1 line backward (reverse)" +msgstr "" + +#: ../../library/curses.rst:1501 +msgid "Next page" +msgstr "" + +#: ../../library/curses.rst:1503 +msgid "Previous page" +msgstr "" + +#: ../../library/curses.rst:1505 +msgid "Set tab" +msgstr "" + +#: ../../library/curses.rst:1507 +msgid "Clear tab" +msgstr "" + +#: ../../library/curses.rst:1509 +msgid "Clear all tabs" +msgstr "" + +#: ../../library/curses.rst:1511 +msgid "Enter or send (unreliable)" +msgstr "" + +#: ../../library/curses.rst:1513 +msgid "Soft (partial) reset (unreliable)" +msgstr "" + +#: ../../library/curses.rst:1515 +msgid "Reset or hard reset (unreliable)" +msgstr "" + +#: ../../library/curses.rst:1517 +msgid "Print" +msgstr "" + +#: ../../library/curses.rst:1519 +msgid "Home down or bottom (lower left)" +msgstr "" + +#: ../../library/curses.rst:1521 +msgid "Upper left of keypad" +msgstr "" + +#: ../../library/curses.rst:1523 +msgid "Upper right of keypad" +msgstr "" + +#: ../../library/curses.rst:1525 +msgid "Center of keypad" +msgstr "" + +#: ../../library/curses.rst:1527 +msgid "Lower left of keypad" +msgstr "" + +#: ../../library/curses.rst:1529 +msgid "Lower right of keypad" +msgstr "" + +#: ../../library/curses.rst:1531 +msgid "Back tab" +msgstr "" + +#: ../../library/curses.rst:1533 +msgid "Beg (beginning)" +msgstr "" + +#: ../../library/curses.rst:1535 +msgid "Cancel" +msgstr "" + +#: ../../library/curses.rst:1537 +msgid "Close" +msgstr "" + +#: ../../library/curses.rst:1539 +msgid "Cmd (command)" +msgstr "" + +#: ../../library/curses.rst:1541 +msgid "Copy" +msgstr "" + +#: ../../library/curses.rst:1543 +msgid "Create" +msgstr "" + +#: ../../library/curses.rst:1545 +msgid "End" +msgstr "" + +#: ../../library/curses.rst:1547 +msgid "Exit" +msgstr "" + +#: ../../library/curses.rst:1549 +msgid "Find" +msgstr "" + +#: ../../library/curses.rst:1551 +msgid "Help" +msgstr "" + +#: ../../library/curses.rst:1553 +msgid "Mark" +msgstr "" + +#: ../../library/curses.rst:1555 +msgid "Message" +msgstr "" + +#: ../../library/curses.rst:1557 +msgid "Move" +msgstr "" + +#: ../../library/curses.rst:1559 +msgid "Next" +msgstr "" + +#: ../../library/curses.rst:1561 +msgid "Open" +msgstr "" + +#: ../../library/curses.rst:1563 +msgid "Options" +msgstr "" + +#: ../../library/curses.rst:1565 +msgid "Prev (previous)" +msgstr "" + +#: ../../library/curses.rst:1567 +msgid "Redo" +msgstr "" + +#: ../../library/curses.rst:1569 +msgid "Ref (reference)" +msgstr "" + +#: ../../library/curses.rst:1571 +msgid "Refresh" +msgstr "" + +#: ../../library/curses.rst:1573 +msgid "Replace" +msgstr "" + +#: ../../library/curses.rst:1575 +msgid "Restart" +msgstr "" + +#: ../../library/curses.rst:1577 +msgid "Resume" +msgstr "" + +#: ../../library/curses.rst:1579 +msgid "Save" +msgstr "" + +#: ../../library/curses.rst:1581 +msgid "Shifted Beg (beginning)" +msgstr "" + +#: ../../library/curses.rst:1583 +msgid "Shifted Cancel" +msgstr "" + +#: ../../library/curses.rst:1585 +msgid "Shifted Command" +msgstr "" + +#: ../../library/curses.rst:1587 +msgid "Shifted Copy" +msgstr "" + +#: ../../library/curses.rst:1589 +msgid "Shifted Create" +msgstr "" + +#: ../../library/curses.rst:1591 +msgid "Shifted Delete char" +msgstr "" + +#: ../../library/curses.rst:1593 +msgid "Shifted Delete line" +msgstr "" + +#: ../../library/curses.rst:1595 +msgid "Select" +msgstr "" + +#: ../../library/curses.rst:1597 +msgid "Shifted End" +msgstr "" + +#: ../../library/curses.rst:1599 +msgid "Shifted Clear line" +msgstr "" + +#: ../../library/curses.rst:1601 +msgid "Shifted Exit" +msgstr "" + +#: ../../library/curses.rst:1603 +msgid "Shifted Find" +msgstr "" + +#: ../../library/curses.rst:1605 +msgid "Shifted Help" +msgstr "" + +#: ../../library/curses.rst:1607 +msgid "Shifted Home" +msgstr "" + +#: ../../library/curses.rst:1609 +msgid "Shifted Input" +msgstr "" + +#: ../../library/curses.rst:1611 +msgid "Shifted Left arrow" +msgstr "" + +#: ../../library/curses.rst:1613 +msgid "Shifted Message" +msgstr "" + +#: ../../library/curses.rst:1615 +msgid "Shifted Move" +msgstr "" + +#: ../../library/curses.rst:1617 +msgid "Shifted Next" +msgstr "" + +#: ../../library/curses.rst:1619 +msgid "Shifted Options" +msgstr "" + +#: ../../library/curses.rst:1621 +msgid "Shifted Prev" +msgstr "" + +#: ../../library/curses.rst:1623 +msgid "Shifted Print" +msgstr "" + +#: ../../library/curses.rst:1625 +msgid "Shifted Redo" +msgstr "" + +#: ../../library/curses.rst:1627 +msgid "Shifted Replace" +msgstr "" + +#: ../../library/curses.rst:1629 +msgid "Shifted Right arrow" +msgstr "" + +#: ../../library/curses.rst:1631 +msgid "Shifted Resume" +msgstr "" + +#: ../../library/curses.rst:1633 +msgid "Shifted Save" +msgstr "" + +#: ../../library/curses.rst:1635 +msgid "Shifted Suspend" +msgstr "" + +#: ../../library/curses.rst:1637 +msgid "Shifted Undo" +msgstr "" + +#: ../../library/curses.rst:1639 +msgid "Suspend" +msgstr "" + +#: ../../library/curses.rst:1641 +msgid "Undo" +msgstr "" + +#: ../../library/curses.rst:1643 +msgid "Mouse event has occurred" +msgstr "" + +#: ../../library/curses.rst:1645 +msgid "Terminal resize event" +msgstr "" + +#: ../../library/curses.rst:1647 +msgid "Maximum key value" +msgstr "" + +#: ../../library/curses.rst:1650 +msgid "" +"On VT100s and their software emulations, such as X terminal emulators, there " +"are normally at least four function keys (:const:`KEY_F1 " +"`, :const:`KEY_F2 `, :const:`KEY_F3 " +"`, :const:`KEY_F4 `) available, and the arrow keys mapped " +"to :const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` " +"and :const:`KEY_RIGHT` in the obvious way. If your machine has a PC " +"keyboard, it is safe to expect arrow keys and twelve function keys (older PC " +"keyboards may have only ten function keys); also, the following keypad " +"mappings are standard:" +msgstr "" + +#: ../../library/curses.rst:1659 +msgid "Keycap" +msgstr "" + +#: ../../library/curses.rst:1659 ../../library/curses.rst:1804 +#: ../../library/curses.rst:1928 +msgid "Constant" +msgstr "" + +#: ../../library/curses.rst:1661 +msgid ":kbd:`Insert`" +msgstr "" + +#: ../../library/curses.rst:1661 +msgid "KEY_IC" +msgstr "" + +#: ../../library/curses.rst:1663 +msgid ":kbd:`Delete`" +msgstr "" + +#: ../../library/curses.rst:1663 +msgid "KEY_DC" +msgstr "" + +#: ../../library/curses.rst:1665 +msgid ":kbd:`Home`" +msgstr "" + +#: ../../library/curses.rst:1665 +msgid "KEY_HOME" +msgstr "" + +#: ../../library/curses.rst:1667 +msgid ":kbd:`End`" +msgstr "" + +#: ../../library/curses.rst:1667 +msgid "KEY_END" +msgstr "" + +#: ../../library/curses.rst:1669 +msgid ":kbd:`Page Up`" +msgstr "" + +#: ../../library/curses.rst:1669 +msgid "KEY_PPAGE" +msgstr "" + +#: ../../library/curses.rst:1671 +msgid ":kbd:`Page Down`" +msgstr "" + +#: ../../library/curses.rst:1671 +msgid "KEY_NPAGE" +msgstr "" + +#: ../../library/curses.rst:1676 +msgid "" +"The following table lists characters from the alternate character set. These " +"are inherited from the VT100 terminal, and will generally be available on " +"software emulations such as X terminals. When there is no graphic " +"available, curses falls back on a crude printable ASCII approximation." +msgstr "" + +#: ../../library/curses.rst:1683 +msgid "These are available only after :func:`initscr` has been called." +msgstr "" + +#: ../../library/curses.rst:1686 +msgid "ACS code" +msgstr "" + +#: ../../library/curses.rst:1688 +msgid "alternate name for upper right corner" +msgstr "" + +#: ../../library/curses.rst:1690 +msgid "solid square block" +msgstr "" + +#: ../../library/curses.rst:1692 +msgid "board of squares" +msgstr "" + +#: ../../library/curses.rst:1694 +msgid "alternate name for horizontal line" +msgstr "" + +#: ../../library/curses.rst:1696 +msgid "alternate name for upper left corner" +msgstr "" + +#: ../../library/curses.rst:1698 +msgid "alternate name for top tee" +msgstr "" + +#: ../../library/curses.rst:1700 +msgid "bottom tee" +msgstr "" + +#: ../../library/curses.rst:1702 +msgid "bullet" +msgstr "" + +#: ../../library/curses.rst:1704 +msgid "checker board (stipple)" +msgstr "" + +#: ../../library/curses.rst:1706 +msgid "arrow pointing down" +msgstr "" + +#: ../../library/curses.rst:1708 +msgid "degree symbol" +msgstr "" + +#: ../../library/curses.rst:1710 +msgid "diamond" +msgstr "" + +#: ../../library/curses.rst:1712 +msgid "greater-than-or-equal-to" +msgstr "" + +#: ../../library/curses.rst:1714 +msgid "horizontal line" +msgstr "" + +#: ../../library/curses.rst:1716 +msgid "lantern symbol" +msgstr "" + +#: ../../library/curses.rst:1718 +msgid "left arrow" +msgstr "" + +#: ../../library/curses.rst:1720 +msgid "less-than-or-equal-to" +msgstr "" + +#: ../../library/curses.rst:1722 +msgid "lower left-hand corner" +msgstr "" + +#: ../../library/curses.rst:1724 +msgid "lower right-hand corner" +msgstr "" + +#: ../../library/curses.rst:1726 +msgid "left tee" +msgstr "" + +#: ../../library/curses.rst:1728 +msgid "not-equal sign" +msgstr "" + +#: ../../library/curses.rst:1730 +msgid "letter pi" +msgstr "" + +#: ../../library/curses.rst:1732 +msgid "plus-or-minus sign" +msgstr "" + +#: ../../library/curses.rst:1734 +msgid "big plus sign" +msgstr "" + +#: ../../library/curses.rst:1736 +msgid "right arrow" +msgstr "" + +#: ../../library/curses.rst:1738 +msgid "right tee" +msgstr "" + +#: ../../library/curses.rst:1740 +msgid "scan line 1" +msgstr "" + +#: ../../library/curses.rst:1742 +msgid "scan line 3" +msgstr "" + +#: ../../library/curses.rst:1744 +msgid "scan line 7" +msgstr "" + +#: ../../library/curses.rst:1746 +msgid "scan line 9" +msgstr "" + +#: ../../library/curses.rst:1748 +msgid "alternate name for lower right corner" +msgstr "" + +#: ../../library/curses.rst:1750 +msgid "alternate name for vertical line" +msgstr "" + +#: ../../library/curses.rst:1752 +msgid "alternate name for right tee" +msgstr "" + +#: ../../library/curses.rst:1754 +msgid "alternate name for lower left corner" +msgstr "" + +#: ../../library/curses.rst:1756 +msgid "alternate name for bottom tee" +msgstr "" + +#: ../../library/curses.rst:1758 +msgid "alternate name for left tee" +msgstr "" + +#: ../../library/curses.rst:1760 +msgid "alternate name for crossover or big plus" +msgstr "" + +#: ../../library/curses.rst:1762 +msgid "pound sterling" +msgstr "" + +#: ../../library/curses.rst:1764 +msgid "top tee" +msgstr "" + +#: ../../library/curses.rst:1766 +msgid "up arrow" +msgstr "" + +#: ../../library/curses.rst:1768 +msgid "upper left corner" +msgstr "" + +#: ../../library/curses.rst:1770 +msgid "upper right corner" +msgstr "" + +#: ../../library/curses.rst:1772 +msgid "vertical line" +msgstr "" + +#: ../../library/curses.rst:1775 +msgid "" +"The following table lists mouse button constants used by :meth:`getmouse`:" +msgstr "" + +#: ../../library/curses.rst:1778 +msgid "Mouse button constant" +msgstr "" + +#: ../../library/curses.rst:1780 +msgid "Mouse button *n* pressed" +msgstr "" + +#: ../../library/curses.rst:1782 +msgid "Mouse button *n* released" +msgstr "" + +#: ../../library/curses.rst:1784 +msgid "Mouse button *n* clicked" +msgstr "" + +#: ../../library/curses.rst:1786 +msgid "Mouse button *n* double clicked" +msgstr "" + +#: ../../library/curses.rst:1788 +msgid "Mouse button *n* triple clicked" +msgstr "" + +#: ../../library/curses.rst:1790 +msgid "Shift was down during button state change" +msgstr "" + +#: ../../library/curses.rst:1792 ../../library/curses.rst:1794 +msgid "Control was down during button state change" +msgstr "" + +#: ../../library/curses.rst:1801 +msgid "The following table lists the predefined colors:" +msgstr "" + +#: ../../library/curses.rst:1804 +msgid "Color" +msgstr "" + +#: ../../library/curses.rst:1806 +msgid "Black" +msgstr "" + +#: ../../library/curses.rst:1808 +msgid "Blue" +msgstr "" + +#: ../../library/curses.rst:1810 +msgid "Cyan (light greenish blue)" +msgstr "" + +#: ../../library/curses.rst:1812 +msgid "Green" +msgstr "" + +#: ../../library/curses.rst:1814 +msgid "Magenta (purplish red)" +msgstr "" + +#: ../../library/curses.rst:1816 +msgid "Red" +msgstr "" + +#: ../../library/curses.rst:1818 +msgid "White" +msgstr "" + +#: ../../library/curses.rst:1820 +msgid "Yellow" +msgstr "" + +#: ../../library/curses.rst:1825 +msgid ":mod:`curses.textpad` --- Text input widget for curses programs" +msgstr "" + +#: ../../library/curses.rst:1833 +msgid "" +"The :mod:`curses.textpad` module provides a :class:`Textbox` class that " +"handles elementary text editing in a curses window, supporting a set of " +"keybindings resembling those of Emacs (thus, also of Netscape Navigator, " +"BBedit 6.x, FrameMaker, and many other programs). The module also provides " +"a rectangle-drawing function useful for framing text boxes or for other " +"purposes." +msgstr "" + +#: ../../library/curses.rst:1839 +msgid "The module :mod:`curses.textpad` defines the following function:" +msgstr "" + +#: ../../library/curses.rst:1844 +msgid "" +"Draw a rectangle. The first argument must be a window object; the remaining " +"arguments are coordinates relative to that window. The second and third " +"arguments are the y and x coordinates of the upper left hand corner of the " +"rectangle to be drawn; the fourth and fifth arguments are the y and x " +"coordinates of the lower right hand corner. The rectangle will be drawn " +"using VT100/IBM PC forms characters on terminals that make this possible " +"(including xterm and most other software terminal emulators). Otherwise it " +"will be drawn with ASCII dashes, vertical bars, and plus signs." +msgstr "" + +#: ../../library/curses.rst:1857 +msgid "Textbox objects" +msgstr "" + +#: ../../library/curses.rst:1859 +msgid "You can instantiate a :class:`Textbox` object as follows:" +msgstr "" + +#: ../../library/curses.rst:1864 +msgid "" +"Return a textbox widget object. The *win* argument should be a " +"curses :ref:`window ` object in which the textbox is " +"to be contained. The edit cursor of the textbox is initially located at the " +"upper left hand corner of the containing window, with coordinates ``(0, " +"0)``. The instance's :attr:`stripspaces` flag is initially on." +msgstr "" + +#: ../../library/curses.rst:1870 +msgid ":class:`Textbox` objects have the following methods:" +msgstr "" + +#: ../../library/curses.rst:1875 +msgid "" +"This is the entry point you will normally use. It accepts editing " +"keystrokes until one of the termination keystrokes is entered. If " +"*validator* is supplied, it must be a function. It will be called for each " +"keystroke entered with the keystroke as a parameter; command dispatch is " +"done on the result. This method returns the window contents as a string; " +"whether blanks in the window are included is affected by " +"the :attr:`stripspaces` attribute." +msgstr "" + +#: ../../library/curses.rst:1886 +msgid "" +"Process a single command keystroke. Here are the supported special " +"keystrokes:" +msgstr "" + +#: ../../library/curses.rst:1890 ../../library/curses.rst:1928 +msgid "Keystroke" +msgstr "" + +#: ../../library/curses.rst:1890 +msgid "Action" +msgstr "" + +#: ../../library/curses.rst:1892 +msgid ":kbd:`Control-A`" +msgstr "" + +#: ../../library/curses.rst:1892 +msgid "Go to left edge of window." +msgstr "" + +#: ../../library/curses.rst:1894 ../../library/curses.rst:1930 +msgid ":kbd:`Control-B`" +msgstr "" + +#: ../../library/curses.rst:1894 +msgid "Cursor left, wrapping to previous line if appropriate." +msgstr "" + +#: ../../library/curses.rst:1897 +msgid ":kbd:`Control-D`" +msgstr "" + +#: ../../library/curses.rst:1897 +msgid "Delete character under cursor." +msgstr "" + +#: ../../library/curses.rst:1899 +msgid ":kbd:`Control-E`" +msgstr "" + +#: ../../library/curses.rst:1899 +msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." +msgstr "" + +#: ../../library/curses.rst:1902 ../../library/curses.rst:1932 +msgid ":kbd:`Control-F`" +msgstr "" + +#: ../../library/curses.rst:1902 +msgid "Cursor right, wrapping to next line when appropriate." +msgstr "" + +#: ../../library/curses.rst:1905 +msgid ":kbd:`Control-G`" +msgstr "" + +#: ../../library/curses.rst:1905 +msgid "Terminate, returning the window contents." +msgstr "" + +#: ../../library/curses.rst:1907 +msgid ":kbd:`Control-H`" +msgstr "" + +#: ../../library/curses.rst:1907 +msgid "Delete character backward." +msgstr "" + +#: ../../library/curses.rst:1909 +msgid ":kbd:`Control-J`" +msgstr "" + +#: ../../library/curses.rst:1909 +msgid "Terminate if the window is 1 line, otherwise insert newline." +msgstr "" + +#: ../../library/curses.rst:1912 +msgid ":kbd:`Control-K`" +msgstr "" + +#: ../../library/curses.rst:1912 +msgid "If line is blank, delete it, otherwise clear to end of line." +msgstr "" + +#: ../../library/curses.rst:1915 +msgid ":kbd:`Control-L`" +msgstr "" + +#: ../../library/curses.rst:1915 +msgid "Refresh screen." +msgstr "" + +#: ../../library/curses.rst:1917 ../../library/curses.rst:1936 +msgid ":kbd:`Control-N`" +msgstr "" + +#: ../../library/curses.rst:1917 +msgid "Cursor down; move down one line." +msgstr "" + +#: ../../library/curses.rst:1919 +msgid ":kbd:`Control-O`" +msgstr "" + +#: ../../library/curses.rst:1919 +msgid "Insert a blank line at cursor location." +msgstr "" + +#: ../../library/curses.rst:1921 ../../library/curses.rst:1934 +msgid ":kbd:`Control-P`" +msgstr "" + +#: ../../library/curses.rst:1921 +msgid "Cursor up; move up one line." +msgstr "" + +#: ../../library/curses.rst:1924 +msgid "" +"Move operations do nothing if the cursor is at an edge where the movement is " +"not possible. The following synonyms are supported where possible:" +msgstr "" + +#: ../../library/curses.rst:1930 +msgid ":const:`~curses.KEY_LEFT`" +msgstr "" + +#: ../../library/curses.rst:1932 +msgid ":const:`~curses.KEY_RIGHT`" +msgstr "" + +#: ../../library/curses.rst:1934 +msgid ":const:`~curses.KEY_UP`" +msgstr "" + +#: ../../library/curses.rst:1936 +msgid ":const:`~curses.KEY_DOWN`" +msgstr "" + +#: ../../library/curses.rst:1938 +msgid ":const:`~curses.KEY_BACKSPACE`" +msgstr "" + +#: ../../library/curses.rst:1938 +msgid ":kbd:`Control-h`" +msgstr "" + +#: ../../library/curses.rst:1941 +msgid "" +"All other keystrokes are treated as a command to insert the given character " +"and move right (with line wrapping)." +msgstr "" + +#: ../../library/curses.rst:1947 +msgid "" +"Return the window contents as a string; whether blanks in the window are " +"included is affected by the :attr:`stripspaces` member." +msgstr "" + +#: ../../library/curses.rst:1953 +msgid "" +"This attribute is a flag which controls the interpretation of blanks in the " +"window. When it is on, trailing blanks on each line are ignored; any cursor " +"motion that would land the cursor on a trailing blank goes to the end of " +"that line instead, and trailing blanks are stripped when the window contents " +"are gathered." +msgstr "" diff --git a/library/custominterp.po b/library/custominterp.po new file mode 100644 index 0000000..e5dfd19 --- /dev/null +++ b/library/custominterp.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/custominterp.rst:5 +msgid "Custom Python Interpreters" +msgstr "" + +#: ../../library/custominterp.rst:7 +msgid "" +"The modules described in this chapter allow writing interfaces similar to " +"Python's interactive interpreter. If you want a Python interpreter that " +"supports some special feature in addition to the Python language, you should " +"look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, " +"used to support compiling a possibly incomplete chunk of Python code.)" +msgstr "" + +#: ../../library/custominterp.rst:13 +msgid "The full list of modules described in this chapter is:" +msgstr "" diff --git a/library/dataclasses.po b/library/dataclasses.po new file mode 100644 index 0000000..dc2e80e --- /dev/null +++ b/library/dataclasses.po @@ -0,0 +1,1221 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/dataclasses.rst:2 +msgid ":mod:`!dataclasses` --- Data Classes" +msgstr "" + +#: ../../library/dataclasses.rst:10 +msgid "**Source code:** :source:`Lib/dataclasses.py`" +msgstr "" + +#: ../../library/dataclasses.rst:14 +msgid "" +"This module provides a decorator and functions for automatically adding " +"generated :term:`special methods ` such " +"as :meth:`~object.__init__` and :meth:`~object.__repr__` to user-defined " +"classes. It was originally described in :pep:`557`." +msgstr "" + +#: ../../library/dataclasses.rst:19 +msgid "" +"The member variables to use in these generated methods are defined " +"using :pep:`526` type annotations. For example, this code::" +msgstr "" + +#: ../../library/dataclasses.rst:22 +msgid "" +"from dataclasses import dataclass\n" +"\n" +"@dataclass\n" +"class InventoryItem:\n" +" \"\"\"Class for keeping track of an item in inventory.\"\"\"\n" +" name: str\n" +" unit_price: float\n" +" quantity_on_hand: int = 0\n" +"\n" +" def total_cost(self) -> float:\n" +" return self.unit_price * self.quantity_on_hand" +msgstr "" + +#: ../../library/dataclasses.rst:34 +msgid "will add, among other things, a :meth:`!__init__` that looks like::" +msgstr "" + +#: ../../library/dataclasses.rst:36 +msgid "" +"def __init__(self, name: str, unit_price: float, quantity_on_hand: int = " +"0):\n" +" self.name = name\n" +" self.unit_price = unit_price\n" +" self.quantity_on_hand = quantity_on_hand" +msgstr "" + +#: ../../library/dataclasses.rst:41 +msgid "" +"Note that this method is automatically added to the class: it is not " +"directly specified in the :class:`!InventoryItem` definition shown above." +msgstr "" + +#: ../../library/dataclasses.rst:47 +msgid "Module contents" +msgstr "" + +#: ../../library/dataclasses.rst:51 +msgid "" +"This function is a :term:`decorator` that is used to add " +"generated :term:`special methods ` to classes, as described " +"below." +msgstr "" + +#: ../../library/dataclasses.rst:54 +msgid "" +"The ``@dataclass`` decorator examines the class to find ``field``\\s. A " +"``field`` is defined as a class variable that has a :term:`type annotation " +"`. With two exceptions described below, nothing in " +"``@dataclass`` examines the type specified in the variable annotation." +msgstr "" + +#: ../../library/dataclasses.rst:60 +msgid "" +"The order of the fields in all of the generated methods is the order in " +"which they appear in the class definition." +msgstr "" + +#: ../../library/dataclasses.rst:63 +msgid "" +"The ``@dataclass`` decorator will add various \"dunder\" methods to the " +"class, described below. If any of the added methods already exist in the " +"class, the behavior depends on the parameter, as documented below. The " +"decorator returns the same class that it is called on; no new class is " +"created." +msgstr "" + +#: ../../library/dataclasses.rst:69 +msgid "" +"If ``@dataclass`` is used just as a simple decorator with no parameters, it " +"acts as if it has the default values documented in this signature. That is, " +"these three uses of ``@dataclass`` are equivalent::" +msgstr "" + +#: ../../library/dataclasses.rst:74 +msgid "" +"@dataclass\n" +"class C:\n" +" ...\n" +"\n" +"@dataclass()\n" +"class C:\n" +" ...\n" +"\n" +"@dataclass(init=True, repr=True, eq=True, order=False, unsafe_hash=False, " +"frozen=False,\n" +" match_args=True, kw_only=False, slots=False, weakref_slot=False)\n" +"class C:\n" +" ..." +msgstr "" + +#: ../../library/dataclasses.rst:87 +msgid "The parameters to ``@dataclass`` are:" +msgstr "" + +#: ../../library/dataclasses.rst:89 +msgid "" +"*init*: If true (the default), a :meth:`~object.__init__` method will be " +"generated." +msgstr "" + +#: ../../library/dataclasses.rst:92 +msgid "" +"If the class already defines :meth:`!__init__`, this parameter is ignored." +msgstr "" + +#: ../../library/dataclasses.rst:95 +msgid "" +"*repr*: If true (the default), a :meth:`~object.__repr__` method will be " +"generated. The generated repr string will have the class name and the name " +"and repr of each field, in the order they are defined in the class. Fields " +"that are marked as being excluded from the repr are not included. For " +"example: ``InventoryItem(name='widget', unit_price=3.0, " +"quantity_on_hand=10)``." +msgstr "" + +#: ../../library/dataclasses.rst:102 +msgid "" +"If the class already defines :meth:`!__repr__`, this parameter is ignored." +msgstr "" + +#: ../../library/dataclasses.rst:105 +msgid "" +"*eq*: If true (the default), an :meth:`~object.__eq__` method will be " +"generated. This method compares the class as if it were a tuple of its " +"fields, in order. Both instances in the comparison must be of the identical " +"type." +msgstr "" + +#: ../../library/dataclasses.rst:110 +msgid "" +"If the class already defines :meth:`!__eq__`, this parameter is ignored." +msgstr "" + +#: ../../library/dataclasses.rst:113 +msgid "" +"*order*: If true (the default is " +"``False``), :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " +"and :meth:`~object.__ge__` methods will be generated. These compare the " +"class as if it were a tuple of its fields, in order. Both instances in the " +"comparison must be of the identical type. If *order* is true and *eq* is " +"false, a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/dataclasses.rst:120 +msgid "" +"If the class already defines any of :meth:`!__lt__`, :meth:`!" +"__le__`, :meth:`!__gt__`, or :meth:`!__ge__`, then :exc:`TypeError` is " +"raised." +msgstr "" + +#: ../../library/dataclasses.rst:124 +msgid "" +"*unsafe_hash*: If true, force ``dataclasses`` to create " +"a :meth:`~object.__hash__` method, even though it may not be safe to do so. " +"Otherwise, generate a :meth:`~object.__hash__` method according to how *eq* " +"and *frozen* are set. The default value is ``False``." +msgstr "" + +#: ../../library/dataclasses.rst:130 +msgid "" +":meth:`!__hash__` is used by built-in :meth:`hash`, and when objects are " +"added to hashed collections such as dictionaries and sets. Having a :meth:`!" +"__hash__` implies that instances of the class are immutable. Mutability is a " +"complicated property that depends on the programmer's intent, the existence " +"and behavior of :meth:`!__eq__`, and the values of the *eq* and *frozen* " +"flags in the ``@dataclass`` decorator." +msgstr "" + +#: ../../library/dataclasses.rst:137 +msgid "" +"By default, ``@dataclass`` will not implicitly add " +"a :meth:`~object.__hash__` method unless it is safe to do so. Neither will " +"it add or change an existing explicitly defined :meth:`!__hash__` method. " +"Setting the class attribute ``__hash__ = None`` has a specific meaning to " +"Python, as described in the :meth:`!__hash__` documentation." +msgstr "" + +#: ../../library/dataclasses.rst:143 +msgid "" +"If :meth:`!__hash__` is not explicitly defined, or if it is set to ``None``, " +"then ``@dataclass`` *may* add an implicit :meth:`!__hash__` method. Although " +"not recommended, you can force ``@dataclass`` to create a :meth:`!__hash__` " +"method with ``unsafe_hash=True``. This might be the case if your class is " +"logically immutable but can still be mutated. This is a specialized use case " +"and should be considered carefully." +msgstr "" + +#: ../../library/dataclasses.rst:150 +msgid "" +"Here are the rules governing implicit creation of a :meth:`!__hash__` " +"method. Note that you cannot both have an explicit :meth:`!__hash__` method " +"in your dataclass and set ``unsafe_hash=True``; this will result in " +"a :exc:`TypeError`." +msgstr "" + +#: ../../library/dataclasses.rst:155 +msgid "" +"If *eq* and *frozen* are both true, by default ``@dataclass`` will generate " +"a :meth:`!__hash__` method for you. If *eq* is true and *frozen* is " +"false, :meth:`!__hash__` will be set to ``None``, marking it unhashable " +"(which it is, since it is mutable). If *eq* is false, :meth:`!__hash__` " +"will be left untouched meaning the :meth:`!__hash__` method of the " +"superclass will be used (if the superclass is :class:`object`, this means it " +"will fall back to id-based hashing)." +msgstr "" + +#: ../../library/dataclasses.rst:163 +msgid "" +"*frozen*: If true (the default is ``False``), assigning to fields will " +"generate an exception. This emulates read-only frozen instances. " +"If :meth:`~object.__setattr__` or :meth:`~object.__delattr__` is defined in " +"the class, then :exc:`TypeError` is raised. See the discussion below." +msgstr "" + +#: ../../library/dataclasses.rst:168 +msgid "" +"*match_args*: If true (the default is ``True``), " +"the :attr:`~object.__match_args__` tuple will be created from the list of " +"non keyword-only parameters to the generated :meth:`~object.__init__` method " +"(even if :meth:`!__init__` is not generated, see above). If false, or " +"if :attr:`!__match_args__` is already defined in the class, then :attr:`!" +"__match_args__` will not be generated." +msgstr "" + +#: ../../library/dataclasses.rst:177 +msgid "" +"*kw_only*: If true (the default value is ``False``), then all fields will be " +"marked as keyword-only. If a field is marked as keyword-only, then the only " +"effect is that the :meth:`~object.__init__` parameter generated from a " +"keyword-only field must be specified with a keyword when :meth:`!__init__` " +"is called. See the :term:`parameter` glossary entry for details. Also see " +"the :const:`KW_ONLY` section." +msgstr "" + +#: ../../library/dataclasses.rst:185 +msgid "Keyword-only fields are not included in :attr:`!__match_args__`." +msgstr "" + +#: ../../library/dataclasses.rst:189 +msgid "" +"*slots*: If true (the default is ``False``), :attr:`~object.__slots__` " +"attribute will be generated and new class will be returned instead of the " +"original one. If :attr:`!__slots__` is already defined in the class, " +"then :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/dataclasses.rst:195 +msgid "" +"Passing parameters to a base class :meth:`~object.__init_subclass__` when " +"using ``slots=True`` will result in a :exc:`TypeError`. Either use " +"``__init_subclass__`` with no parameters or use default values as a " +"workaround. See :gh:`91126` for full details." +msgstr "" + +#: ../../library/dataclasses.rst:203 +msgid "" +"If a field name is already included in the :attr:`!__slots__` of a base " +"class, it will not be included in the generated :attr:`!__slots__` to " +"prevent :ref:`overriding them `. Therefore, do not " +"use :attr:`!__slots__` to retrieve the field names of a dataclass. " +"Use :func:`fields` instead. To be able to determine inherited slots, base " +"class :attr:`!__slots__` may be any iterable, but *not* an iterator." +msgstr "" + +#: ../../library/dataclasses.rst:213 +msgid "" +"*weakref_slot*: If true (the default is ``False``), add a slot named " +"\"__weakref__\", which is required to make an instance :func:`weakref-able " +"`. It is an error to specify ``weakref_slot=True`` without also " +"specifying ``slots=True``." +msgstr "" + +#: ../../library/dataclasses.rst:221 +msgid "" +"``field``\\s may optionally specify a default value, using normal Python " +"syntax::" +msgstr "" + +#: ../../library/dataclasses.rst:224 +msgid "" +"@dataclass\n" +"class C:\n" +" a: int # 'a' has no default value\n" +" b: int = 0 # assign a default value for 'b'" +msgstr "" + +#: ../../library/dataclasses.rst:229 +msgid "" +"In this example, both :attr:`!a` and :attr:`!b` will be included in the " +"added :meth:`~object.__init__` method, which will be defined as::" +msgstr "" + +#: ../../library/dataclasses.rst:232 +msgid "def __init__(self, a: int, b: int = 0):" +msgstr "" + +#: ../../library/dataclasses.rst:234 +msgid "" +":exc:`TypeError` will be raised if a field without a default value follows a " +"field with a default value. This is true whether this occurs in a single " +"class, or as a result of class inheritance." +msgstr "" + +#: ../../library/dataclasses.rst:240 +msgid "" +"For common and simple use cases, no other functionality is required. There " +"are, however, some dataclass features that require additional per-field " +"information. To satisfy this need for additional information, you can " +"replace the default field value with a call to the provided :func:`!field` " +"function. For example::" +msgstr "" + +#: ../../library/dataclasses.rst:246 +msgid "" +"@dataclass\n" +"class C:\n" +" mylist: list[int] = field(default_factory=list)\n" +"\n" +"c = C()\n" +"c.mylist += [1, 2, 3]" +msgstr "" + +#: ../../library/dataclasses.rst:253 +msgid "" +"As shown above, the :const:`MISSING` value is a sentinel object used to " +"detect if some parameters are provided by the user. This sentinel is used " +"because ``None`` is a valid value for some parameters with a distinct " +"meaning. No code should directly use the :const:`MISSING` value." +msgstr "" + +#: ../../library/dataclasses.rst:258 +msgid "The parameters to :func:`!field` are:" +msgstr "" + +#: ../../library/dataclasses.rst:260 +msgid "" +"*default*: If provided, this will be the default value for this field. This " +"is needed because the :func:`!field` call itself replaces the normal " +"position of the default value." +msgstr "" + +#: ../../library/dataclasses.rst:264 +msgid "" +"*default_factory*: If provided, it must be a zero-argument callable that " +"will be called when a default value is needed for this field. Among other " +"purposes, this can be used to specify fields with mutable default values, as " +"discussed below. It is an error to specify both *default* and " +"*default_factory*." +msgstr "" + +#: ../../library/dataclasses.rst:270 +msgid "" +"*init*: If true (the default), this field is included as a parameter to the " +"generated :meth:`~object.__init__` method." +msgstr "" + +#: ../../library/dataclasses.rst:273 +msgid "" +"*repr*: If true (the default), this field is included in the string returned " +"by the generated :meth:`~object.__repr__` method." +msgstr "" + +#: ../../library/dataclasses.rst:276 +msgid "" +"*hash*: This can be a bool or ``None``. If true, this field is included in " +"the generated :meth:`~object.__hash__` method. If false, this field is " +"excluded from the generated :meth:`~object.__hash__`. If ``None`` (the " +"default), use the value of *compare*: this would normally be the expected " +"behavior, since a field should be included in the hash if it's used for " +"comparisons. Setting this value to anything other than ``None`` is " +"discouraged." +msgstr "" + +#: ../../library/dataclasses.rst:284 +msgid "" +"One possible reason to set ``hash=False`` but ``compare=True`` would be if a " +"field is expensive to compute a hash value for, that field is needed for " +"equality testing, and there are other fields that contribute to the type's " +"hash value. Even if a field is excluded from the hash, it will still be " +"used for comparisons." +msgstr "" + +#: ../../library/dataclasses.rst:290 +msgid "" +"*compare*: If true (the default), this field is included in the generated " +"equality and comparison methods " +"(:meth:`~object.__eq__`, :meth:`~object.__gt__`, et al.)." +msgstr "" + +#: ../../library/dataclasses.rst:294 +msgid "" +"*metadata*: This can be a mapping or ``None``. ``None`` is treated as an " +"empty dict. This value is wrapped in :func:`~types.MappingProxyType` to " +"make it read-only, and exposed on the :class:`Field` object. It is not used " +"at all by Data Classes, and is provided as a third-party extension " +"mechanism. Multiple third-parties can each have their own key, to use as a " +"namespace in the metadata." +msgstr "" + +#: ../../library/dataclasses.rst:302 +msgid "" +"*kw_only*: If true, this field will be marked as keyword-only. This is used " +"when the generated :meth:`~object.__init__` method's parameters are computed." +msgstr "" + +#: ../../library/dataclasses.rst:306 +msgid "Keyword-only fields are also not included in :attr:`!__match_args__`." +msgstr "" + +#: ../../library/dataclasses.rst:310 +msgid "*doc*: optional docstring for this field." +msgstr "" + +#: ../../library/dataclasses.rst:314 +msgid "" +"If the default value of a field is specified by a call to :func:`!field`, " +"then the class attribute for this field will be replaced by the specified " +"*default* value. If *default* is not provided, then the class attribute " +"will be deleted. The intent is that after the :func:`@dataclass " +"` decorator runs, the class attributes will all contain the " +"default values for the fields, just as if the default value itself were " +"specified. For example, after::" +msgstr "" + +#: ../../library/dataclasses.rst:323 +msgid "" +"@dataclass\n" +"class C:\n" +" x: int\n" +" y: int = field(repr=False)\n" +" z: int = field(repr=False, default=10)\n" +" t: int = 20" +msgstr "" + +#: ../../library/dataclasses.rst:330 +msgid "" +"The class attribute :attr:`!C.z` will be ``10``, the class attribute :attr:`!" +"C.t` will be ``20``, and the class attributes :attr:`!C.x` and :attr:`!C.y` " +"will not be set." +msgstr "" + +#: ../../library/dataclasses.rst:336 +msgid "" +":class:`!Field` objects describe each defined field. These objects are " +"created internally, and are returned by the :func:`fields` module-level " +"method (see below). Users should never instantiate a :class:`!Field` object " +"directly. Its documented attributes are:" +msgstr "" + +#: ../../library/dataclasses.rst:341 +msgid ":attr:`!name`: The name of the field." +msgstr "" + +#: ../../library/dataclasses.rst:342 +msgid ":attr:`!type`: The type of the field." +msgstr "" + +#: ../../library/dataclasses.rst:343 +msgid "" +":attr:`!default`, :attr:`!default_factory`, :attr:`!init`, :attr:`!" +"repr`, :attr:`!hash`, :attr:`!compare`, :attr:`!metadata`, and :attr:`!" +"kw_only` have the identical meaning and values as they do in " +"the :func:`field` function." +msgstr "" + +#: ../../library/dataclasses.rst:347 +msgid "" +"Other attributes may exist, but they are private and must not be inspected " +"or relied on." +msgstr "" + +#: ../../library/dataclasses.rst:352 +msgid "" +"``InitVar[T]`` type annotations describe variables that are :ref:`init-only " +"`. Fields annotated with :class:`!InitVar` " +"are considered pseudo-fields, and thus are neither returned by " +"the :func:`fields` function nor used in any way except adding them as " +"parameters to :meth:`~object.__init__` and an optional :meth:`__post_init__`." +msgstr "" + +#: ../../library/dataclasses.rst:361 +msgid "" +"Returns a tuple of :class:`Field` objects that define the fields for this " +"dataclass. Accepts either a dataclass, or an instance of a dataclass. " +"Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " +"not return pseudo-fields which are ``ClassVar`` or ``InitVar``." +msgstr "" + +#: ../../library/dataclasses.rst:368 +msgid "" +"Converts the dataclass *obj* to a dict (by using the factory function " +"*dict_factory*). Each dataclass is converted to a dict of its fields, as " +"``name: value`` pairs. dataclasses, dicts, lists, and tuples are recursed " +"into. Other objects are copied with :func:`copy.deepcopy`." +msgstr "" + +#: ../../library/dataclasses.rst:374 +msgid "Example of using :func:`!asdict` on nested dataclasses::" +msgstr "" + +#: ../../library/dataclasses.rst:376 +msgid "" +"@dataclass\n" +"class Point:\n" +" x: int\n" +" y: int\n" +"\n" +"@dataclass\n" +"class C:\n" +" mylist: list[Point]\n" +"\n" +"p = Point(10, 20)\n" +"assert asdict(p) == {'x': 10, 'y': 20}\n" +"\n" +"c = C([Point(0, 0), Point(10, 4)])\n" +"assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}" +msgstr "" + +#: ../../library/dataclasses.rst:391 ../../library/dataclasses.rst:411 +msgid "To create a shallow copy, the following workaround may be used::" +msgstr "" + +#: ../../library/dataclasses.rst:393 +msgid "{field.name: getattr(obj, field.name) for field in fields(obj)}" +msgstr "" + +#: ../../library/dataclasses.rst:395 +msgid "" +":func:`!asdict` raises :exc:`TypeError` if *obj* is not a dataclass instance." +msgstr "" + +#: ../../library/dataclasses.rst:400 +msgid "" +"Converts the dataclass *obj* to a tuple (by using the factory function " +"*tuple_factory*). Each dataclass is converted to a tuple of its field " +"values. dataclasses, dicts, lists, and tuples are recursed into. Other " +"objects are copied with :func:`copy.deepcopy`." +msgstr "" + +#: ../../library/dataclasses.rst:406 +msgid "Continuing from the previous example::" +msgstr "" + +#: ../../library/dataclasses.rst:408 +msgid "" +"assert astuple(p) == (10, 20)\n" +"assert astuple(c) == ([(0, 0), (10, 4)],)" +msgstr "" + +#: ../../library/dataclasses.rst:413 +msgid "tuple(getattr(obj, field.name) for field in dataclasses.fields(obj))" +msgstr "" + +#: ../../library/dataclasses.rst:415 +msgid "" +":func:`!astuple` raises :exc:`TypeError` if *obj* is not a dataclass " +"instance." +msgstr "" + +#: ../../library/dataclasses.rst:420 +msgid "" +"Creates a new dataclass with name *cls_name*, fields as defined in *fields*, " +"base classes as given in *bases*, and initialized with a namespace as given " +"in *namespace*. *fields* is an iterable whose elements are each either " +"``name``, ``(name, type)``, or ``(name, type, Field)``. If just ``name`` is " +"supplied, :data:`typing.Any` is used for ``type``. The values of *init*, " +"*repr*, *eq*, *order*, *unsafe_hash*, *frozen*, *match_args*, *kw_only*, " +"*slots*, and *weakref_slot* have the same meaning as they do " +"in :func:`@dataclass `." +msgstr "" + +#: ../../library/dataclasses.rst:430 +msgid "" +"If *module* is defined, the :attr:`!__module__` attribute of the dataclass " +"is set to that value. By default, it is set to the module name of the caller." +msgstr "" + +#: ../../library/dataclasses.rst:434 +msgid "" +"The *decorator* parameter is a callable that will be used to create the " +"dataclass. It should take the class object as a first argument and the same " +"keyword arguments as :func:`@dataclass `. By default, " +"the :func:`@dataclass ` function is used." +msgstr "" + +#: ../../library/dataclasses.rst:439 +msgid "" +"This function is not strictly required, because any Python mechanism for " +"creating a new class with :attr:`!__annotations__` can then apply " +"the :func:`@dataclass ` function to convert that class to a " +"dataclass. This function is provided as a convenience. For example::" +msgstr "" + +#: ../../library/dataclasses.rst:445 +msgid "" +"C = make_dataclass('C',\n" +" [('x', int),\n" +" 'y',\n" +" ('z', int, field(default=5))],\n" +" namespace={'add_one': lambda self: self.x + 1})" +msgstr "" + +#: ../../library/dataclasses.rst:451 +msgid "Is equivalent to::" +msgstr "" + +#: ../../library/dataclasses.rst:453 +msgid "" +"@dataclass\n" +"class C:\n" +" x: int\n" +" y: 'typing.Any'\n" +" z: int = 5\n" +"\n" +" def add_one(self):\n" +" return self.x + 1" +msgstr "" + +#: ../../library/dataclasses.rst:462 +msgid "Added the *decorator* parameter." +msgstr "" + +#: ../../library/dataclasses.rst:467 +msgid "" +"Creates a new object of the same type as *obj*, replacing fields with values " +"from *changes*. If *obj* is not a Data Class, raises :exc:`TypeError`. If " +"keys in *changes* are not field names of the given dataclass, " +"raises :exc:`TypeError`." +msgstr "" + +#: ../../library/dataclasses.rst:472 +msgid "" +"The newly returned object is created by calling the :meth:`~object.__init__` " +"method of the dataclass. This ensures that :meth:`__post_init__`, if " +"present, is also called." +msgstr "" + +#: ../../library/dataclasses.rst:476 +msgid "" +"Init-only variables without default values, if any exist, must be specified " +"on the call to :func:`!replace` so that they can be passed to :meth:`!" +"__init__` and :meth:`__post_init__`." +msgstr "" + +#: ../../library/dataclasses.rst:480 +msgid "" +"It is an error for *changes* to contain any fields that are defined as " +"having ``init=False``. A :exc:`ValueError` will be raised in this case." +msgstr "" + +#: ../../library/dataclasses.rst:484 +msgid "" +"Be forewarned about how ``init=False`` fields work during a call to :func:`!" +"replace`. They are not copied from the source object, but rather are " +"initialized in :meth:`__post_init__`, if they're initialized at all. It is " +"expected that ``init=False`` fields will be rarely and judiciously used. If " +"they are used, it might be wise to have alternate class constructors, or " +"perhaps a custom :func:`!replace` (or similarly named) method which handles " +"instance copying." +msgstr "" + +#: ../../library/dataclasses.rst:493 +msgid "" +"Dataclass instances are also supported by generic " +"function :func:`copy.replace`." +msgstr "" + +#: ../../library/dataclasses.rst:497 +msgid "" +"Return ``True`` if its parameter is a dataclass (including subclasses of a " +"dataclass) or an instance of one, otherwise return ``False``." +msgstr "" + +#: ../../library/dataclasses.rst:500 +msgid "" +"If you need to know if a class is an instance of a dataclass (and not a " +"dataclass itself), then add a further check for ``not isinstance(obj, " +"type)``::" +msgstr "" + +#: ../../library/dataclasses.rst:504 +msgid "" +"def is_dataclass_instance(obj):\n" +" return is_dataclass(obj) and not isinstance(obj, type)" +msgstr "" + +#: ../../library/dataclasses.rst:509 +msgid "A sentinel value signifying a missing default or default_factory." +msgstr "" + +#: ../../library/dataclasses.rst:513 +msgid "" +"A sentinel value used as a type annotation. Any fields after a pseudo-field " +"with the type of :const:`!KW_ONLY` are marked as keyword-only fields. Note " +"that a pseudo-field of type :const:`!KW_ONLY` is otherwise completely " +"ignored. This includes the name of such a field. By convention, a name of " +"``_`` is used for a :const:`!KW_ONLY` field. Keyword-only fields " +"signify :meth:`~object.__init__` parameters that must be specified as " +"keywords when the class is instantiated." +msgstr "" + +#: ../../library/dataclasses.rst:522 +msgid "" +"In this example, the fields ``y`` and ``z`` will be marked as keyword-only " +"fields::" +msgstr "" + +#: ../../library/dataclasses.rst:524 +msgid "" +"@dataclass\n" +"class Point:\n" +" x: float\n" +" _: KW_ONLY\n" +" y: float\n" +" z: float\n" +"\n" +"p = Point(0, y=1.5, z=2.0)" +msgstr "" + +#: ../../library/dataclasses.rst:533 +msgid "" +"In a single dataclass, it is an error to specify more than one field whose " +"type is :const:`!KW_ONLY`." +msgstr "" + +#: ../../library/dataclasses.rst:540 +msgid "" +"Raised when an implicitly defined :meth:`~object.__setattr__` " +"or :meth:`~object.__delattr__` is called on a dataclass which was defined " +"with ``frozen=True``. It is a subclass of :exc:`AttributeError`." +msgstr "" + +#: ../../library/dataclasses.rst:547 +msgid "Post-init processing" +msgstr "" + +#: ../../library/dataclasses.rst:551 +msgid "" +"When defined on the class, it will be called by the " +"generated :meth:`~object.__init__`, normally as :meth:`!self.__post_init__`. " +"However, if any ``InitVar`` fields are defined, they will also be passed " +"to :meth:`!__post_init__` in the order they were defined in the class. If " +"no :meth:`!__init__` method is generated, then :meth:`!__post_init__` will " +"not automatically be called." +msgstr "" + +#: ../../library/dataclasses.rst:558 +msgid "" +"Among other uses, this allows for initializing field values that depend on " +"one or more other fields. For example::" +msgstr "" + +#: ../../library/dataclasses.rst:561 +msgid "" +"@dataclass\n" +"class C:\n" +" a: float\n" +" b: float\n" +" c: float = field(init=False)\n" +"\n" +" def __post_init__(self):\n" +" self.c = self.a + self.b" +msgstr "" + +#: ../../library/dataclasses.rst:570 +msgid "" +"The :meth:`~object.__init__` method generated by :func:`@dataclass " +"` does not call base class :meth:`!__init__` methods. If the base " +"class has an :meth:`!__init__` method that has to be called, it is common to " +"call this method in a :meth:`__post_init__` method::" +msgstr "" + +#: ../../library/dataclasses.rst:575 +msgid "" +"class Rectangle:\n" +" def __init__(self, height, width):\n" +" self.height = height\n" +" self.width = width\n" +"\n" +"@dataclass\n" +"class Square(Rectangle):\n" +" side: float\n" +"\n" +" def __post_init__(self):\n" +" super().__init__(self.side, self.side)" +msgstr "" + +#: ../../library/dataclasses.rst:587 +msgid "" +"Note, however, that in general the dataclass-generated :meth:`!__init__` " +"methods don't need to be called, since the derived dataclass will take care " +"of initializing all fields of any base class that is a dataclass itself." +msgstr "" + +#: ../../library/dataclasses.rst:591 +msgid "" +"See the section below on init-only variables for ways to pass parameters " +"to :meth:`!__post_init__`. Also see the warning about how :func:`replace` " +"handles ``init=False`` fields." +msgstr "" + +#: ../../library/dataclasses.rst:598 +msgid "Class variables" +msgstr "" + +#: ../../library/dataclasses.rst:600 +msgid "" +"One of the few places where :func:`@dataclass ` actually inspects " +"the type of a field is to determine if a field is a class variable as " +"defined in :pep:`526`. It does this by checking if the type of the field " +"is :data:`typing.ClassVar`. If a field is a ``ClassVar``, it is excluded " +"from consideration as a field and is ignored by the dataclass mechanisms. " +"Such ``ClassVar`` pseudo-fields are not returned by the module-" +"level :func:`fields` function." +msgstr "" + +#: ../../library/dataclasses.rst:611 +msgid "Init-only variables" +msgstr "" + +#: ../../library/dataclasses.rst:613 +msgid "" +"Another place where :func:`@dataclass ` inspects a type " +"annotation is to determine if a field is an init-only variable. It does " +"this by seeing if the type of a field is of type :class:`InitVar`. If a " +"field is an :class:`InitVar`, it is considered a pseudo-field called an init-" +"only field. As it is not a true field, it is not returned by the module-" +"level :func:`fields` function. Init-only fields are added as parameters to " +"the generated :meth:`~object.__init__` method, and are passed to the " +"optional :meth:`__post_init__` method. They are not otherwise used by " +"dataclasses." +msgstr "" + +#: ../../library/dataclasses.rst:623 +msgid "" +"For example, suppose a field will be initialized from a database, if a value " +"is not provided when creating the class::" +msgstr "" + +#: ../../library/dataclasses.rst:626 +msgid "" +"@dataclass\n" +"class C:\n" +" i: int\n" +" j: int | None = None\n" +" database: InitVar[DatabaseType | None] = None\n" +"\n" +" def __post_init__(self, database):\n" +" if self.j is None and database is not None:\n" +" self.j = database.lookup('j')\n" +"\n" +"c = C(10, database=my_database)" +msgstr "" + +#: ../../library/dataclasses.rst:638 +msgid "" +"In this case, :func:`fields` will return :class:`Field` objects for :attr:`!" +"i` and :attr:`!j`, but not for :attr:`!database`." +msgstr "" + +#: ../../library/dataclasses.rst:644 +msgid "Frozen instances" +msgstr "" + +#: ../../library/dataclasses.rst:646 +msgid "" +"It is not possible to create truly immutable Python objects. However, by " +"passing ``frozen=True`` to the :func:`@dataclass ` decorator you " +"can emulate immutability. In that case, dataclasses will " +"add :meth:`~object.__setattr__` and :meth:`~object.__delattr__` methods to " +"the class. These methods will raise a :exc:`FrozenInstanceError` when " +"invoked." +msgstr "" + +#: ../../library/dataclasses.rst:652 +msgid "" +"There is a tiny performance penalty when using " +"``frozen=True``: :meth:`~object.__init__` cannot use simple assignment to " +"initialize fields, and must use :meth:`!object.__setattr__`." +msgstr "" + +#: ../../library/dataclasses.rst:661 +msgid "Inheritance" +msgstr "Öröklés" + +#: ../../library/dataclasses.rst:663 +msgid "" +"When the dataclass is being created by the :func:`@dataclass ` " +"decorator, it looks through all of the class's base classes in reverse MRO " +"(that is, starting at :class:`object`) and, for each dataclass that it " +"finds, adds the fields from that base class to an ordered mapping of fields. " +"After all of the base class fields are added, it adds its own fields to the " +"ordered mapping. All of the generated methods will use this combined, " +"calculated ordered mapping of fields. Because the fields are in insertion " +"order, derived classes override base classes. An example::" +msgstr "" + +#: ../../library/dataclasses.rst:673 +msgid "" +"@dataclass\n" +"class Base:\n" +" x: Any = 15.0\n" +" y: int = 0\n" +"\n" +"@dataclass\n" +"class C(Base):\n" +" z: int = 10\n" +" x: int = 15" +msgstr "" + +#: ../../library/dataclasses.rst:683 +msgid "" +"The final list of fields is, in order, :attr:`!x`, :attr:`!y`, :attr:`!z`. " +"The final type of :attr:`!x` is :class:`int`, as specified in class :class:`!" +"C`." +msgstr "" + +#: ../../library/dataclasses.rst:686 +msgid "" +"The generated :meth:`~object.__init__` method for :class:`!C` will look " +"like::" +msgstr "" + +#: ../../library/dataclasses.rst:688 +msgid "def __init__(self, x: int = 15, y: int = 0, z: int = 10):" +msgstr "" + +#: ../../library/dataclasses.rst:691 +msgid "Re-ordering of keyword-only parameters in :meth:`!__init__`" +msgstr "" + +#: ../../library/dataclasses.rst:693 +msgid "" +"After the parameters needed for :meth:`~object.__init__` are computed, any " +"keyword-only parameters are moved to come after all regular (non-keyword-" +"only) parameters. This is a requirement of how keyword-only parameters are " +"implemented in Python: they must come after non-keyword-only parameters." +msgstr "" + +#: ../../library/dataclasses.rst:699 +msgid "" +"In this example, :attr:`!Base.y`, :attr:`!Base.w`, and :attr:`!D.t` are " +"keyword-only fields, and :attr:`!Base.x` and :attr:`!D.z` are regular " +"fields::" +msgstr "" + +#: ../../library/dataclasses.rst:702 +msgid "" +"@dataclass\n" +"class Base:\n" +" x: Any = 15.0\n" +" _: KW_ONLY\n" +" y: int = 0\n" +" w: int = 1\n" +"\n" +"@dataclass\n" +"class D(Base):\n" +" z: int = 10\n" +" t: int = field(kw_only=True, default=0)" +msgstr "" + +#: ../../library/dataclasses.rst:714 +msgid "The generated :meth:`!__init__` method for :class:`!D` will look like::" +msgstr "" + +#: ../../library/dataclasses.rst:716 +msgid "" +"def __init__(self, x: Any = 15.0, z: int = 10, *, y: int = 0, w: int = 1, t: " +"int = 0):" +msgstr "" + +#: ../../library/dataclasses.rst:718 +msgid "" +"Note that the parameters have been re-ordered from how they appear in the " +"list of fields: parameters derived from regular fields are followed by " +"parameters derived from keyword-only fields." +msgstr "" + +#: ../../library/dataclasses.rst:722 +msgid "" +"The relative ordering of keyword-only parameters is maintained in the re-" +"ordered :meth:`!__init__` parameter list." +msgstr "" + +#: ../../library/dataclasses.rst:727 +msgid "Default factory functions" +msgstr "" + +#: ../../library/dataclasses.rst:729 +msgid "" +"If a :func:`field` specifies a *default_factory*, it is called with zero " +"arguments when a default value for the field is needed. For example, to " +"create a new instance of a list, use::" +msgstr "" + +#: ../../library/dataclasses.rst:733 +msgid "mylist: list = field(default_factory=list)" +msgstr "" + +#: ../../library/dataclasses.rst:735 +msgid "" +"If a field is excluded from :meth:`~object.__init__` (using ``init=False``) " +"and the field also specifies *default_factory*, then the default factory " +"function will always be called from the generated :meth:`!__init__` " +"function. This happens because there is no other way to give the field an " +"initial value." +msgstr "" + +#: ../../library/dataclasses.rst:742 +msgid "Mutable default values" +msgstr "" + +#: ../../library/dataclasses.rst:744 +msgid "" +"Python stores default member variable values in class attributes. Consider " +"this example, not using dataclasses::" +msgstr "" + +#: ../../library/dataclasses.rst:747 +msgid "" +"class C:\n" +" x = []\n" +" def add(self, element):\n" +" self.x.append(element)\n" +"\n" +"o1 = C()\n" +"o2 = C()\n" +"o1.add(1)\n" +"o2.add(2)\n" +"assert o1.x == [1, 2]\n" +"assert o1.x is o2.x" +msgstr "" + +#: ../../library/dataclasses.rst:759 +msgid "" +"Note that the two instances of class :class:`!C` share the same class " +"variable :attr:`!x`, as expected." +msgstr "" + +#: ../../library/dataclasses.rst:762 +msgid "Using dataclasses, *if* this code was valid::" +msgstr "" + +#: ../../library/dataclasses.rst:764 +msgid "" +"@dataclass\n" +"class D:\n" +" x: list = [] # This code raises ValueError\n" +" def add(self, element):\n" +" self.x.append(element)" +msgstr "" + +#: ../../library/dataclasses.rst:770 +msgid "it would generate code similar to::" +msgstr "" + +#: ../../library/dataclasses.rst:772 +msgid "" +"class D:\n" +" x = []\n" +" def __init__(self, x=x):\n" +" self.x = x\n" +" def add(self, element):\n" +" self.x.append(element)\n" +"\n" +"assert D().x is D().x" +msgstr "" + +#: ../../library/dataclasses.rst:781 +msgid "" +"This has the same issue as the original example using class :class:`!C`. " +"That is, two instances of class :class:`!D` that do not specify a value " +"for :attr:`!x` when creating a class instance will share the same copy " +"of :attr:`!x`. Because dataclasses just use normal Python class creation " +"they also share this behavior. There is no general way for Data Classes to " +"detect this condition. Instead, the :func:`@dataclass ` " +"decorator will raise a :exc:`ValueError` if it detects an unhashable default " +"parameter. The assumption is that if a value is unhashable, it is mutable. " +"This is a partial solution, but it does protect against many common errors." +msgstr "" + +#: ../../library/dataclasses.rst:792 +msgid "" +"Using default factory functions is a way to create new instances of mutable " +"types as default values for fields::" +msgstr "" + +#: ../../library/dataclasses.rst:795 +msgid "" +"@dataclass\n" +"class D:\n" +" x: list = field(default_factory=list)\n" +"\n" +"assert D().x is not D().x" +msgstr "" + +#: ../../library/dataclasses.rst:801 +msgid "" +"Instead of looking for and disallowing objects of " +"type :class:`list`, :class:`dict`, or :class:`set`, unhashable objects are " +"now not allowed as default values. Unhashability is used to approximate " +"mutability." +msgstr "" + +#: ../../library/dataclasses.rst:808 +msgid "Descriptor-typed fields" +msgstr "" + +#: ../../library/dataclasses.rst:810 +msgid "" +"Fields that are assigned :ref:`descriptor objects ` as their " +"default value have the following special behaviors:" +msgstr "" + +#: ../../library/dataclasses.rst:813 +msgid "" +"The value for the field passed to the dataclass's :meth:`~object.__init__` " +"method is passed to the descriptor's :meth:`~object.__set__` method rather " +"than overwriting the descriptor object." +msgstr "" + +#: ../../library/dataclasses.rst:817 +msgid "" +"Similarly, when getting or setting the field, the " +"descriptor's :meth:`~object.__get__` or :meth:`!__set__` method is called " +"rather than returning or overwriting the descriptor object." +msgstr "" + +#: ../../library/dataclasses.rst:821 +msgid "" +"To determine whether a field contains a default value, :func:`@dataclass " +"` will call the descriptor's :meth:`!__get__` method using its " +"class access form: ``descriptor.__get__(obj=None, type=cls)``. If the " +"descriptor returns a value in this case, it will be used as the field's " +"default. On the other hand, if the descriptor raises :exc:`AttributeError` " +"in this situation, no default value will be provided for the field." +msgstr "" + +#: ../../library/dataclasses.rst:831 +msgid "" +"class IntConversionDescriptor:\n" +" def __init__(self, *, default):\n" +" self._default = default\n" +"\n" +" def __set_name__(self, owner, name):\n" +" self._name = \"_\" + name\n" +"\n" +" def __get__(self, obj, type):\n" +" if obj is None:\n" +" return self._default\n" +"\n" +" return getattr(obj, self._name, self._default)\n" +"\n" +" def __set__(self, obj, value):\n" +" setattr(obj, self._name, int(value))\n" +"\n" +"@dataclass\n" +"class InventoryItem:\n" +" quantity_on_hand: IntConversionDescriptor = " +"IntConversionDescriptor(default=100)\n" +"\n" +"i = InventoryItem()\n" +"print(i.quantity_on_hand) # 100\n" +"i.quantity_on_hand = 2.5 # calls __set__ with 2.5\n" +"print(i.quantity_on_hand) # 2" +msgstr "" + +#: ../../library/dataclasses.rst:856 +msgid "" +"Note that if a field is annotated with a descriptor type, but is not " +"assigned a descriptor object as its default value, the field will act like a " +"normal field." +msgstr "" diff --git a/library/datatypes.po b/library/datatypes.po new file mode 100644 index 0000000..66b9fc6 --- /dev/null +++ b/library/datatypes.po @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/datatypes.rst:5 +msgid "Data Types" +msgstr "" + +#: ../../library/datatypes.rst:7 +msgid "" +"The modules described in this chapter provide a variety of specialized data " +"types such as dates and times, fixed-type arrays, heap queues, double-ended " +"queues, and enumerations." +msgstr "" + +#: ../../library/datatypes.rst:11 +msgid "" +"Python also provides some built-in data types, in " +"particular, :class:`dict`, :class:`list`, :class:`set` " +"and :class:`frozenset`, and :class:`tuple`. The :class:`str` class is used " +"to hold Unicode strings, and the :class:`bytes` and :class:`bytearray` " +"classes are used to hold binary data." +msgstr "" + +#: ../../library/datatypes.rst:17 +msgid "The following modules are documented in this chapter:" +msgstr "" diff --git a/library/datetime.po b/library/datetime.po new file mode 100644 index 0000000..00e021e --- /dev/null +++ b/library/datetime.po @@ -0,0 +1,4203 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/datetime.rst:2 +msgid ":mod:`!datetime` --- Basic date and time types" +msgstr "" + +#: ../../library/datetime.rst:11 +msgid "**Source code:** :source:`Lib/datetime.py`" +msgstr "" + +#: ../../library/datetime.rst:17 +msgid "" +"The :mod:`!datetime` module supplies classes for manipulating dates and " +"times." +msgstr "" + +#: ../../library/datetime.rst:19 +msgid "" +"While date and time arithmetic is supported, the focus of the implementation " +"is on efficient attribute extraction for output formatting and manipulation." +msgstr "" + +#: ../../library/datetime.rst:24 +msgid "Skip to :ref:`the format codes `." +msgstr "" + +#: ../../library/datetime.rst:28 +msgid "Module :mod:`calendar`" +msgstr "" + +#: ../../library/datetime.rst:29 +msgid "General calendar related functions." +msgstr "" + +#: ../../library/datetime.rst:31 +msgid "Module :mod:`time`" +msgstr "" + +#: ../../library/datetime.rst:32 +msgid "Time access and conversions." +msgstr "" + +#: ../../library/datetime.rst:34 +msgid "Module :mod:`zoneinfo`" +msgstr "" + +#: ../../library/datetime.rst:35 +msgid "Concrete time zones representing the IANA time zone database." +msgstr "" + +#: ../../library/datetime.rst:37 +msgid "Package `dateutil `_" +msgstr "" + +#: ../../library/datetime.rst:38 +msgid "Third-party library with expanded time zone and parsing support." +msgstr "" + +#: ../../library/datetime.rst:40 +msgid "Package :pypi:`DateType`" +msgstr "" + +#: ../../library/datetime.rst:41 +msgid "" +"Third-party library that introduces distinct static types to e.g. " +"allow :term:`static type checkers ` to differentiate " +"between naive and aware datetimes." +msgstr "" + +#: ../../library/datetime.rst:48 +msgid "Aware and Naive Objects" +msgstr "" + +#: ../../library/datetime.rst:50 +msgid "" +"Date and time objects may be categorized as \"aware\" or \"naive\" depending " +"on whether or not they include time zone information." +msgstr "" + +#: ../../library/datetime.rst:53 +msgid "" +"With sufficient knowledge of applicable algorithmic and political time " +"adjustments, such as time zone and daylight saving time information, an " +"**aware** object can locate itself relative to other aware objects. An aware " +"object represents a specific moment in time that is not open to " +"interpretation. [#]_" +msgstr "" + +#: ../../library/datetime.rst:59 +msgid "" +"A **naive** object does not contain enough information to unambiguously " +"locate itself relative to other date/time objects. Whether a naive object " +"represents Coordinated Universal Time (UTC), local time, or time in some " +"other time zone is purely up to the program, just like it is up to the " +"program whether a particular number represents metres, miles, or mass. Naive " +"objects are easy to understand and to work with, at the cost of ignoring " +"some aspects of reality." +msgstr "" + +#: ../../library/datetime.rst:66 +msgid "" +"For applications requiring aware objects, :class:`.datetime` " +"and :class:`.time` objects have an optional time zone information " +"attribute, :attr:`!tzinfo`, that can be set to an instance of a subclass of " +"the abstract :class:`tzinfo` class. These :class:`tzinfo` objects capture " +"information about the offset from UTC time, the time zone name, and whether " +"daylight saving time is in effect." +msgstr "" + +#: ../../library/datetime.rst:72 +msgid "" +"Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " +"supplied by the :mod:`!datetime` module. The :class:`!timezone` class can " +"represent simple time zones with fixed offsets from UTC, such as UTC itself " +"or North American EST and EDT time zones. Supporting time zones at deeper " +"levels of detail is up to the application. The rules for time adjustment " +"across the world are more political than rational, change frequently, and " +"there is no standard suitable for every application aside from UTC." +msgstr "" + +#: ../../library/datetime.rst:81 +msgid "Constants" +msgstr "" + +#: ../../library/datetime.rst:83 +msgid "The :mod:`!datetime` module exports the following constants:" +msgstr "" + +#: ../../library/datetime.rst:87 +msgid "" +"The smallest year number allowed in a :class:`date` or :class:`.datetime` " +"object. :const:`MINYEAR` is 1." +msgstr "" + +#: ../../library/datetime.rst:93 +msgid "" +"The largest year number allowed in a :class:`date` or :class:`.datetime` " +"object. :const:`MAXYEAR` is 9999." +msgstr "" + +#: ../../library/datetime.rst:98 +msgid "Alias for the UTC time zone singleton :attr:`datetime.timezone.utc`." +msgstr "" + +#: ../../library/datetime.rst:103 +msgid "Available Types" +msgstr "" + +#: ../../library/datetime.rst:108 +msgid "" +"An idealized naive date, assuming the current Gregorian calendar always was, " +"and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, " +"and :attr:`day`." +msgstr "" + +#: ../../library/datetime.rst:116 +msgid "" +"An idealized time, independent of any particular day, assuming that every " +"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " +"seconds\" here.) " +"Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond`, " +"and :attr:`.tzinfo`." +msgstr "" + +#: ../../library/datetime.rst:125 +msgid "" +"A combination of a date and a time. " +"Attributes: :attr:`year`, :attr:`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond`, " +"and :attr:`.tzinfo`." +msgstr "" + +#: ../../library/datetime.rst:133 +msgid "" +"A duration expressing the difference between two :class:`.datetime` " +"or :class:`date` instances to microsecond resolution." +msgstr "" + +#: ../../library/datetime.rst:140 +msgid "" +"An abstract base class for time zone information objects. These are used by " +"the :class:`.datetime` and :class:`.time` classes to provide a customizable " +"notion of time adjustment (for example, to account for time zone and/or " +"daylight saving time)." +msgstr "" + +#: ../../library/datetime.rst:148 +msgid "" +"A class that implements the :class:`tzinfo` abstract base class as a fixed " +"offset from the UTC." +msgstr "" + +#: ../../library/datetime.rst:153 ../../library/datetime.rst:171 +msgid "Objects of these types are immutable." +msgstr "" + +#: ../../library/datetime.rst:155 +msgid "Subclass relationships::" +msgstr "" + +#: ../../library/datetime.rst:157 +msgid "" +"object\n" +" timedelta\n" +" tzinfo\n" +" timezone\n" +" time\n" +" date\n" +" datetime" +msgstr "" + +#: ../../library/datetime.rst:166 +msgid "Common Properties" +msgstr "" + +#: ../../library/datetime.rst:168 +msgid "" +"The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` " +"types share these common features:" +msgstr "" + +#: ../../library/datetime.rst:172 +msgid "" +"Objects of these types are :term:`hashable`, meaning that they can be used " +"as dictionary keys." +msgstr "" + +#: ../../library/datetime.rst:174 +msgid "" +"Objects of these types support efficient pickling via the :mod:`pickle` " +"module." +msgstr "" + +#: ../../library/datetime.rst:177 +msgid "Determining if an Object is Aware or Naive" +msgstr "" + +#: ../../library/datetime.rst:179 +msgid "Objects of the :class:`date` type are always naive." +msgstr "" + +#: ../../library/datetime.rst:181 +msgid "" +"An object of type :class:`.time` or :class:`.datetime` may be aware or naive." +msgstr "" + +#: ../../library/datetime.rst:183 +msgid "" +"A :class:`.datetime` object ``d`` is aware if both of the following hold:" +msgstr "" + +#: ../../library/datetime.rst:185 +msgid "``d.tzinfo`` is not ``None``" +msgstr "" + +#: ../../library/datetime.rst:186 +msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" +msgstr "" + +#: ../../library/datetime.rst:188 +msgid "Otherwise, ``d`` is naive." +msgstr "" + +#: ../../library/datetime.rst:190 +msgid "A :class:`.time` object ``t`` is aware if both of the following hold:" +msgstr "" + +#: ../../library/datetime.rst:192 +msgid "``t.tzinfo`` is not ``None``" +msgstr "" + +#: ../../library/datetime.rst:193 +msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." +msgstr "" + +#: ../../library/datetime.rst:195 +msgid "Otherwise, ``t`` is naive." +msgstr "" + +#: ../../library/datetime.rst:197 +msgid "" +"The distinction between aware and naive doesn't apply to :class:`timedelta` " +"objects." +msgstr "" + +#: ../../library/datetime.rst:203 +msgid ":class:`timedelta` Objects" +msgstr "" + +#: ../../library/datetime.rst:205 +msgid "" +"A :class:`timedelta` object represents a duration, the difference between " +"two :class:`.datetime` or :class:`date` instances." +msgstr "" + +#: ../../library/datetime.rst:210 +msgid "" +"All arguments are optional and default to 0. Arguments may be integers or " +"floats, and may be positive or negative." +msgstr "" + +#: ../../library/datetime.rst:213 +msgid "" +"Only *days*, *seconds* and *microseconds* are stored internally. Arguments " +"are converted to those units:" +msgstr "" + +#: ../../library/datetime.rst:216 +msgid "A millisecond is converted to 1000 microseconds." +msgstr "" + +#: ../../library/datetime.rst:217 +msgid "A minute is converted to 60 seconds." +msgstr "" + +#: ../../library/datetime.rst:218 +msgid "An hour is converted to 3600 seconds." +msgstr "" + +#: ../../library/datetime.rst:219 +msgid "A week is converted to 7 days." +msgstr "" + +#: ../../library/datetime.rst:221 +msgid "" +"and days, seconds and microseconds are then normalized so that the " +"representation is unique, with" +msgstr "" + +#: ../../library/datetime.rst:224 +msgid "``0 <= microseconds < 1000000``" +msgstr "" + +#: ../../library/datetime.rst:225 +msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" +msgstr "" + +#: ../../library/datetime.rst:226 +msgid "``-999999999 <= days <= 999999999``" +msgstr "" + +#: ../../library/datetime.rst:228 +msgid "" +"The following example illustrates how any arguments besides *days*, " +"*seconds* and *microseconds* are \"merged\" and normalized into those three " +"resulting attributes::" +msgstr "" + +#: ../../library/datetime.rst:232 +msgid "" +">>> from datetime import timedelta\n" +">>> delta = timedelta(\n" +"... days=50,\n" +"... seconds=27,\n" +"... microseconds=10,\n" +"... milliseconds=29000,\n" +"... minutes=5,\n" +"... hours=8,\n" +"... weeks=2\n" +"... )\n" +">>> # Only days, seconds, and microseconds remain\n" +">>> delta\n" +"datetime.timedelta(days=64, seconds=29156, microseconds=10)" +msgstr "" + +#: ../../library/datetime.rst:246 +msgid "" +"If any argument is a float and there are fractional microseconds, the " +"fractional microseconds left over from all arguments are combined and their " +"sum is rounded to the nearest microsecond using round-half-to-even " +"tiebreaker. If no argument is a float, the conversion and normalization " +"processes are exact (no information is lost)." +msgstr "" + +#: ../../library/datetime.rst:253 +msgid "" +"If the normalized value of days lies outside the indicated " +"range, :exc:`OverflowError` is raised." +msgstr "" + +#: ../../library/datetime.rst:256 +msgid "" +"Note that normalization of negative values may be surprising at first. For " +"example::" +msgstr "" + +#: ../../library/datetime.rst:259 +msgid "" +">>> from datetime import timedelta\n" +">>> d = timedelta(microseconds=-1)\n" +">>> (d.days, d.seconds, d.microseconds)\n" +"(-1, 86399, 999999)" +msgstr "" + +#: ../../library/datetime.rst:264 +msgid "" +"Since the string representation of :class:`!timedelta` objects can be " +"confusing, use the following recipe to produce a more readable format:" +msgstr "" + +#: ../../library/datetime.rst:267 +msgid "" +">>> def pretty_timedelta(td):\n" +"... if td.days >= 0:\n" +"... return str(td)\n" +"... return f'-({-td!s})'\n" +"...\n" +">>> d = timedelta(hours=-1)\n" +">>> str(d) # not human-friendly\n" +"'-1 day, 23:00:00'\n" +">>> pretty_timedelta(d)\n" +"'-(1:00:00)'" +msgstr "" + +#: ../../library/datetime.rst:281 ../../library/datetime.rst:615 +#: ../../library/datetime.rst:1175 ../../library/datetime.rst:1813 +#: ../../library/datetime.rst:2434 +msgid "Class attributes:" +msgstr "" + +#: ../../library/datetime.rst:285 +msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." +msgstr "" + +#: ../../library/datetime.rst:290 +msgid "" +"The most positive :class:`timedelta` object, ``timedelta(days=999999999, " +"hours=23, minutes=59, seconds=59, microseconds=999999)``." +msgstr "" + +#: ../../library/datetime.rst:296 +msgid "" +"The smallest possible difference between non-equal :class:`timedelta` " +"objects, ``timedelta(microseconds=1)``." +msgstr "" + +#: ../../library/datetime.rst:299 +msgid "" +"Note that, because of normalization, ``timedelta.max`` is greater than ``-" +"timedelta.min``. ``-timedelta.max`` is not representable as " +"a :class:`timedelta` object." +msgstr "" + +#: ../../library/datetime.rst:303 ../../library/datetime.rst:633 +#: ../../library/datetime.rst:1195 ../../library/datetime.rst:1833 +msgid "Instance attributes (read-only):" +msgstr "" + +#: ../../library/datetime.rst:307 +msgid "Between -999,999,999 and 999,999,999 inclusive." +msgstr "" + +#: ../../library/datetime.rst:312 +msgid "Between 0 and 86,399 inclusive." +msgstr "" + +#: ../../library/datetime.rst:316 +msgid "" +"It is a somewhat common bug for code to unintentionally use this attribute " +"when it is actually intended to get a :meth:`~timedelta.total_seconds` value " +"instead:" +msgstr "" + +#: ../../library/datetime.rst:320 +msgid "" +">>> from datetime import timedelta\n" +">>> duration = timedelta(seconds=11235813)\n" +">>> duration.days, duration.seconds\n" +"(130, 3813)\n" +">>> duration.total_seconds()\n" +"11235813.0" +msgstr "" + +#: ../../library/datetime.rst:331 +msgid "Between 0 and 999,999 inclusive." +msgstr "" + +#: ../../library/datetime.rst:334 ../../library/datetime.rst:650 +#: ../../library/datetime.rst:1248 +msgid "Supported operations:" +msgstr "" + +#: ../../library/datetime.rst:339 ../../library/datetime.rst:653 +#: ../../library/datetime.rst:1251 +msgid "Operation" +msgstr "" + +#: ../../library/datetime.rst:339 ../../library/datetime.rst:653 +#: ../../library/datetime.rst:1251 +msgid "Result" +msgstr "" + +#: ../../library/datetime.rst:341 +msgid "``t1 = t2 + t3``" +msgstr "" + +#: ../../library/datetime.rst:341 +msgid "" +"Sum of ``t2`` and ``t3``. Afterwards ``t1 - t2 == t3`` and ``t1 - t3 == t2`` " +"are true. (1)" +msgstr "" + +#: ../../library/datetime.rst:345 +msgid "``t1 = t2 - t3``" +msgstr "" + +#: ../../library/datetime.rst:345 +msgid "" +"Difference of ``t2`` and ``t3``. Afterwards ``t1 == t2 - t3`` and ``t2 == " +"t1 + t3`` are true. (1)(6)" +msgstr "" + +#: ../../library/datetime.rst:349 +msgid "``t1 = t2 * i or t1 = i * t2``" +msgstr "" + +#: ../../library/datetime.rst:349 +msgid "" +"Delta multiplied by an integer. Afterwards ``t1 // i == t2`` is true, " +"provided ``i != 0``." +msgstr "" + +#: ../../library/datetime.rst:353 +msgid "In general, ``t1 * i == t1 * (i-1) + t1`` is true. (1)" +msgstr "" + +#: ../../library/datetime.rst:356 +msgid "``t1 = t2 * f or t1 = f * t2``" +msgstr "" + +#: ../../library/datetime.rst:356 +msgid "" +"Delta multiplied by a float. The result is rounded to the nearest multiple " +"of timedelta.resolution using round-half-to-even." +msgstr "" + +#: ../../library/datetime.rst:360 +msgid "``f = t2 / t3``" +msgstr "" + +#: ../../library/datetime.rst:360 +msgid "" +"Division (3) of overall duration ``t2`` by interval unit ``t3``. Returns " +"a :class:`float` object." +msgstr "" + +#: ../../library/datetime.rst:364 +msgid "``t1 = t2 / f or t1 = t2 / i``" +msgstr "" + +#: ../../library/datetime.rst:364 +msgid "" +"Delta divided by a float or an int. The result is rounded to the nearest " +"multiple of timedelta.resolution using round-half-to-even." +msgstr "" + +#: ../../library/datetime.rst:368 +msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" +msgstr "" + +#: ../../library/datetime.rst:368 +msgid "" +"The floor is computed and the remainder (if any) is thrown away. In the " +"second case, an integer is returned. (3)" +msgstr "" + +#: ../../library/datetime.rst:372 +msgid "``t1 = t2 % t3``" +msgstr "" + +#: ../../library/datetime.rst:372 +msgid "The remainder is computed as a :class:`timedelta` object. (3)" +msgstr "" + +#: ../../library/datetime.rst:375 +msgid "``q, r = divmod(t1, t2)``" +msgstr "" + +#: ../../library/datetime.rst:375 +msgid "" +"Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " +"t2``. ``q`` is an integer and ``r`` is a :class:`timedelta` object." +msgstr "" + +#: ../../library/datetime.rst:380 +msgid "``+t1``" +msgstr "``+t1``" + +#: ../../library/datetime.rst:380 +msgid "Returns a :class:`timedelta` object with the same value. (2)" +msgstr "" + +#: ../../library/datetime.rst:383 +msgid "``-t1``" +msgstr "``-t1``" + +#: ../../library/datetime.rst:383 +msgid "" +"Equivalent to ``timedelta(-t1.days, -t1.seconds, -t1.microseconds)``, and to " +"``t1 * -1``. (1)(4)" +msgstr "" + +#: ../../library/datetime.rst:387 +msgid "``abs(t)``" +msgstr "``abs(t)``" + +#: ../../library/datetime.rst:387 +msgid "" +"Equivalent to ``+t`` when ``t.days >= 0``, and to ``-t`` when ``t.days < " +"0``. (2)" +msgstr "" + +#: ../../library/datetime.rst:390 +msgid "``str(t)``" +msgstr "``str(t)``" + +#: ../../library/datetime.rst:390 +msgid "" +"Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " +"negative for negative ``t``. (5)" +msgstr "" + +#: ../../library/datetime.rst:394 +msgid "``repr(t)``" +msgstr "``repr(t)``" + +#: ../../library/datetime.rst:394 +msgid "" +"Returns a string representation of the :class:`timedelta` object as a " +"constructor call with canonical attribute values." +msgstr "" + +#: ../../library/datetime.rst:400 ../../library/datetime.rst:672 +#: ../../library/datetime.rst:2663 +msgid "Notes:" +msgstr "" + +#: ../../library/datetime.rst:403 +msgid "This is exact but may overflow." +msgstr "" + +#: ../../library/datetime.rst:406 +msgid "This is exact and cannot overflow." +msgstr "" + +#: ../../library/datetime.rst:409 +msgid "Division by zero raises :exc:`ZeroDivisionError`." +msgstr "" + +#: ../../library/datetime.rst:412 +msgid "``-timedelta.max`` is not representable as a :class:`timedelta` object." +msgstr "" + +#: ../../library/datetime.rst:415 +msgid "" +"String representations of :class:`timedelta` objects are normalized " +"similarly to their internal representation. This leads to somewhat unusual " +"results for negative timedeltas. For example::" +msgstr "" + +#: ../../library/datetime.rst:419 +msgid "" +">>> timedelta(hours=-5)\n" +"datetime.timedelta(days=-1, seconds=68400)\n" +">>> print(_)\n" +"-1 day, 19:00:00" +msgstr "" + +#: ../../library/datetime.rst:425 +msgid "" +"The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" +"t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " +"will produce a result while the latter will overflow." +msgstr "" + +#: ../../library/datetime.rst:429 +msgid "" +"In addition to the operations listed above, :class:`timedelta` objects " +"support certain additions and subtractions with :class:`date` " +"and :class:`.datetime` objects (see below)." +msgstr "" + +#: ../../library/datetime.rst:433 +msgid "" +"Floor division and true division of a :class:`timedelta` object by " +"another :class:`timedelta` object are now supported, as are remainder " +"operations and the :func:`divmod` function. True division and multiplication " +"of a :class:`timedelta` object by a :class:`float` object are now supported." +msgstr "" + +#: ../../library/datetime.rst:439 +msgid ":class:`timedelta` objects support equality and order comparisons." +msgstr "" + +#: ../../library/datetime.rst:441 +msgid "" +"In Boolean contexts, a :class:`timedelta` object is considered to be true if " +"and only if it isn't equal to ``timedelta(0)``." +msgstr "" + +#: ../../library/datetime.rst:444 ../../library/datetime.rst:714 +#: ../../library/datetime.rst:1338 ../../library/datetime.rst:1956 +msgid "Instance methods:" +msgstr "" + +#: ../../library/datetime.rst:448 +msgid "" +"Return the total number of seconds contained in the duration. Equivalent to " +"``td / timedelta(seconds=1)``. For interval units other than seconds, use " +"the division form directly (e.g. ``td / timedelta(microseconds=1)``)." +msgstr "" + +#: ../../library/datetime.rst:452 +msgid "" +"Note that for very large time intervals (greater than 270 years on most " +"platforms) this method will lose microsecond accuracy." +msgstr "" + +#: ../../library/datetime.rst:458 +msgid "Examples of usage: :class:`timedelta`" +msgstr "" + +#: ../../library/datetime.rst:460 +msgid "An additional example of normalization::" +msgstr "" + +#: ../../library/datetime.rst:462 +msgid "" +">>> # Components of another_year add up to exactly 365 days\n" +">>> from datetime import timedelta\n" +">>> year = timedelta(days=365)\n" +">>> another_year = timedelta(weeks=40, days=84, hours=23,\n" +"... minutes=50, seconds=600)\n" +">>> year == another_year\n" +"True\n" +">>> year.total_seconds()\n" +"31536000.0" +msgstr "" + +#: ../../library/datetime.rst:472 +msgid "Examples of :class:`timedelta` arithmetic::" +msgstr "" + +#: ../../library/datetime.rst:474 +msgid "" +">>> from datetime import timedelta\n" +">>> year = timedelta(days=365)\n" +">>> ten_years = 10 * year\n" +">>> ten_years\n" +"datetime.timedelta(days=3650)\n" +">>> ten_years.days // 365\n" +"10\n" +">>> nine_years = ten_years - year\n" +">>> nine_years\n" +"datetime.timedelta(days=3285)\n" +">>> three_years = nine_years // 3\n" +">>> three_years, three_years.days // 365\n" +"(datetime.timedelta(days=1095), 3)" +msgstr "" + +#: ../../library/datetime.rst:491 +msgid ":class:`date` Objects" +msgstr "" + +#: ../../library/datetime.rst:493 +msgid "" +"A :class:`date` object represents a date (year, month and day) in an " +"idealized calendar, the current Gregorian calendar indefinitely extended in " +"both directions." +msgstr "" + +#: ../../library/datetime.rst:497 +msgid "" +"January 1 of year 1 is called day number 1, January 2 of year 1 is called " +"day number 2, and so on. [#]_" +msgstr "" + +#: ../../library/datetime.rst:502 +msgid "" +"All arguments are required. Arguments must be integers, in the following " +"ranges:" +msgstr "" + +#: ../../library/datetime.rst:505 +msgid "``MINYEAR <= year <= MAXYEAR``" +msgstr "" + +#: ../../library/datetime.rst:506 +msgid "``1 <= month <= 12``" +msgstr "" + +#: ../../library/datetime.rst:507 +msgid "``1 <= day <= number of days in the given month and year``" +msgstr "" + +#: ../../library/datetime.rst:509 ../../library/datetime.rst:932 +msgid "" +"If an argument outside those ranges is given, :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/datetime.rst:512 ../../library/datetime.rst:937 +msgid "Other constructors, all class methods:" +msgstr "" + +#: ../../library/datetime.rst:516 +msgid "Return the current local date." +msgstr "" + +#: ../../library/datetime.rst:518 +msgid "This is equivalent to ``date.fromtimestamp(time.time())``." +msgstr "" + +#: ../../library/datetime.rst:522 +msgid "" +"Return the local date corresponding to the POSIX timestamp, such as is " +"returned by :func:`time.time`." +msgstr "" + +#: ../../library/datetime.rst:525 +msgid "" +"This may raise :exc:`OverflowError`, if the timestamp is out of the range of " +"values supported by the platform C :c:func:`localtime` function, " +"and :exc:`OSError` on :c:func:`localtime` failure. It's common for this to " +"be restricted to years from 1970 through 2038. Note that on non-POSIX " +"systems that include leap seconds in their notion of a timestamp, leap " +"seconds are ignored by :meth:`fromtimestamp`." +msgstr "" + +#: ../../library/datetime.rst:532 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"function. Raise :exc:`OSError` instead of :exc:`ValueError` " +"on :c:func:`localtime` failure." +msgstr "" + +#: ../../library/datetime.rst:541 +msgid "" +"Return the date corresponding to the proleptic Gregorian ordinal, where " +"January 1 of year 1 has ordinal 1." +msgstr "" + +#: ../../library/datetime.rst:544 +msgid "" +":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " +"For any date ``d``, ``date.fromordinal(d.toordinal()) == d``." +msgstr "" + +#: ../../library/datetime.rst:551 +msgid "" +"Return a :class:`date` corresponding to a *date_string* given in any valid " +"ISO 8601 format, with the following exceptions:" +msgstr "" + +#: ../../library/datetime.rst:554 ../../library/datetime.rst:1097 +msgid "" +"Reduced precision dates are not currently supported (``YYYY-MM``, ``YYYY``)." +msgstr "" + +#: ../../library/datetime.rst:556 ../../library/datetime.rst:1099 +msgid "" +"Extended date representations are not currently supported (``±YYYYYY-MM-" +"DD``)." +msgstr "" + +#: ../../library/datetime.rst:558 ../../library/datetime.rst:1101 +msgid "Ordinal dates are not currently supported (``YYYY-OOO``)." +msgstr "" + +#: ../../library/datetime.rst:560 ../../library/datetime.rst:1103 +#: ../../library/datetime.rst:1569 +msgid "Examples::" +msgstr "Példák::" + +#: ../../library/datetime.rst:562 +msgid "" +">>> from datetime import date\n" +">>> date.fromisoformat('2019-12-04')\n" +"datetime.date(2019, 12, 4)\n" +">>> date.fromisoformat('20191204')\n" +"datetime.date(2019, 12, 4)\n" +">>> date.fromisoformat('2021-W01-1')\n" +"datetime.date(2021, 1, 4)" +msgstr "" + +#: ../../library/datetime.rst:571 +msgid "Previously, this method only supported the format ``YYYY-MM-DD``." +msgstr "" + +#: ../../library/datetime.rst:576 +msgid "" +"Return a :class:`date` corresponding to the ISO calendar date specified by " +"year, week and day. This is the inverse of the " +"function :meth:`date.isocalendar`." +msgstr "" + +#: ../../library/datetime.rst:583 +msgid "" +"Return a :class:`.date` corresponding to *date_string*, parsed according to " +"*format*. This is equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:586 +msgid "date(*(time.strptime(date_string, format)[0:3]))" +msgstr "" + +#: ../../library/datetime.rst:588 +msgid "" +":exc:`ValueError` is raised if the date_string and format can't be parsed " +"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " +"See also :ref:`strftime-strptime-behavior` and :meth:`date.fromisoformat`." +msgstr "" + +#: ../../library/datetime.rst:595 +msgid "" +"If *format* specifies a day of month without a year " +"a :exc:`DeprecationWarning` is emitted. This is to avoid a quadrennial leap " +"year bug in code seeking to parse only a month and day as the default year " +"used in absence of one in the format is not a leap year. Such *format* " +"values may raise an error as of Python 3.15. The workaround is to always " +"include a year in your *format*. If parsing *date_string* values that do " +"not have a year, explicitly add a year that is a leap year before parsing:" +msgstr "" + +#: ../../library/datetime.rst:604 +msgid "" +">>> from datetime import date\n" +">>> date_string = \"02/29\"\n" +">>> when = date.strptime(f\"{date_string};1984\", \"%m/%d;%Y\") # Avoids " +"leap year bug.\n" +">>> when.strftime(\"%B %d\")\n" +"'February 29'" +msgstr "" + +#: ../../library/datetime.rst:619 +msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." +msgstr "" + +#: ../../library/datetime.rst:624 +msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." +msgstr "" + +#: ../../library/datetime.rst:629 +msgid "" +"The smallest possible difference between non-equal date objects, " +"``timedelta(days=1)``." +msgstr "" + +#: ../../library/datetime.rst:637 ../../library/datetime.rst:1199 +msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." +msgstr "" + +#: ../../library/datetime.rst:642 ../../library/datetime.rst:1204 +msgid "Between 1 and 12 inclusive." +msgstr "" + +#: ../../library/datetime.rst:647 ../../library/datetime.rst:1209 +msgid "Between 1 and the number of days in the given month of the given year." +msgstr "" + +#: ../../library/datetime.rst:655 +msgid "``date2 = date1 + timedelta``" +msgstr "" + +#: ../../library/datetime.rst:655 +msgid "``date2`` will be ``timedelta.days`` days after ``date1``. (1)" +msgstr "" + +#: ../../library/datetime.rst:658 +msgid "``date2 = date1 - timedelta``" +msgstr "" + +#: ../../library/datetime.rst:658 +msgid "Computes ``date2`` such that ``date2 + timedelta == date1``. (2)" +msgstr "" + +#: ../../library/datetime.rst:661 +msgid "``timedelta = date1 - date2``" +msgstr "" + +#: ../../library/datetime.rst:661 ../../library/datetime.rst:1257 +msgid "\\(3)" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 == date2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 != date2``" +msgstr "" + +#: ../../library/datetime.rst:663 ../../library/datetime.rst:1259 +msgid "Equality comparison. (4)" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 < date2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 > date2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 <= date2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``date1 >= date2``" +msgstr "" + +#: ../../library/datetime.rst:666 ../../library/datetime.rst:1262 +msgid "Order comparison. (5)" +msgstr "" + +#: ../../library/datetime.rst:675 +msgid "" +"*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " +"``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " +"``timedelta.seconds`` and ``timedelta.microseconds`` are " +"ignored. :exc:`OverflowError` is raised if ``date2.year`` would be smaller " +"than :const:`MINYEAR` or larger than :const:`MAXYEAR`." +msgstr "" + +#: ../../library/datetime.rst:682 +msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." +msgstr "" + +#: ../../library/datetime.rst:685 +msgid "" +"This is exact, and cannot overflow. ``timedelta.seconds`` and " +"``timedelta.microseconds`` are 0, and ``date2 + timedelta == date1`` after." +msgstr "" + +#: ../../library/datetime.rst:689 +msgid ":class:`date` objects are equal if they represent the same date." +msgstr "" + +#: ../../library/datetime.rst:691 +msgid "" +":class:`!date` objects that are not also :class:`.datetime` instances are " +"never equal to :class:`!datetime` objects, even if they represent the same " +"date." +msgstr "" + +#: ../../library/datetime.rst:696 +msgid "" +"*date1* is considered less than *date2* when *date1* precedes *date2* in " +"time. In other words, ``date1 < date2`` if and only if ``date1.toordinal() < " +"date2.toordinal()``." +msgstr "" + +#: ../../library/datetime.rst:700 +msgid "" +"Order comparison between a :class:`!date` object that is not also " +"a :class:`.datetime` instance and a :class:`!datetime` object " +"raises :exc:`TypeError`." +msgstr "" + +#: ../../library/datetime.rst:704 ../../library/datetime.rst:1330 +msgid "" +"Comparison between :class:`.datetime` object and an instance of " +"the :class:`date` subclass that is not a :class:`!datetime` subclass no " +"longer converts the latter to :class:`!date`, ignoring the time part and the " +"time zone. The default behavior can be changed by overriding the special " +"comparison methods in subclasses." +msgstr "" + +#: ../../library/datetime.rst:712 +msgid "" +"In Boolean contexts, all :class:`date` objects are considered to be true." +msgstr "" + +#: ../../library/datetime.rst:718 +msgid "" +"Return a new :class:`date` object with the same values, but with specified " +"parameters updated." +msgstr "" + +#: ../../library/datetime.rst:721 ../../library/datetime.rst:2002 +msgid "Example::" +msgstr "" + +#: ../../library/datetime.rst:723 +msgid "" +">>> from datetime import date\n" +">>> d = date(2002, 12, 31)\n" +">>> d.replace(day=26)\n" +"datetime.date(2002, 12, 26)" +msgstr "" + +#: ../../library/datetime.rst:728 +msgid "" +"The generic function :func:`copy.replace` also supports :class:`date` " +"objects." +msgstr "" + +#: ../../library/datetime.rst:734 ../../library/datetime.rst:1454 +msgid "" +"Return a :class:`time.struct_time` such as returned " +"by :func:`time.localtime`." +msgstr "" + +#: ../../library/datetime.rst:736 +msgid "The hours, minutes and seconds are 0, and the DST flag is -1." +msgstr "" + +#: ../../library/datetime.rst:738 ../../library/datetime.rst:1456 +msgid "``d.timetuple()`` is equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:740 +msgid "" +"time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))" +msgstr "" + +#: ../../library/datetime.rst:742 +msgid "" +"where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " +"day number within the current year starting with 1 for January 1st." +msgstr "" + +#: ../../library/datetime.rst:748 +msgid "" +"Return the proleptic Gregorian ordinal of the date, where January 1 of year " +"1 has ordinal 1. For any :class:`date` object ``d``, " +"``date.fromordinal(d.toordinal()) == d``." +msgstr "" + +#: ../../library/datetime.rst:755 +msgid "" +"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " +"For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See " +"also :meth:`isoweekday`." +msgstr "" + +#: ../../library/datetime.rst:762 +msgid "" +"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " +"For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See " +"also :meth:`weekday`, :meth:`isocalendar`." +msgstr "" + +#: ../../library/datetime.rst:769 +msgid "" +"Return a :term:`named tuple` object with three components: ``year``, " +"``week`` and ``weekday``." +msgstr "" + +#: ../../library/datetime.rst:772 +msgid "" +"The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" +msgstr "" + +#: ../../library/datetime.rst:774 +msgid "" +"The ISO year consists of 52 or 53 full weeks, and where a week starts on a " +"Monday and ends on a Sunday. The first week of an ISO year is the first " +"(Gregorian) calendar week of a year containing a Thursday. This is called " +"week number 1, and the ISO year of that Thursday is the same as its " +"Gregorian year." +msgstr "" + +#: ../../library/datetime.rst:779 +msgid "" +"For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " +"begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" +msgstr "" + +#: ../../library/datetime.rst:782 +msgid "" +">>> from datetime import date\n" +">>> date(2003, 12, 29).isocalendar()\n" +"datetime.IsoCalendarDate(year=2004, week=1, weekday=1)\n" +">>> date(2004, 1, 4).isocalendar()\n" +"datetime.IsoCalendarDate(year=2004, week=1, weekday=7)" +msgstr "" + +#: ../../library/datetime.rst:788 +msgid "Result changed from a tuple to a :term:`named tuple`." +msgstr "" + +#: ../../library/datetime.rst:793 +msgid "" +"Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" +msgstr "" + +#: ../../library/datetime.rst:795 +msgid "" +">>> from datetime import date\n" +">>> date(2002, 12, 4).isoformat()\n" +"'2002-12-04'" +msgstr "" + +#: ../../library/datetime.rst:801 +msgid "For a date ``d``, ``str(d)`` is equivalent to ``d.isoformat()``." +msgstr "" + +#: ../../library/datetime.rst:806 +msgid "Return a string representing the date::" +msgstr "" + +#: ../../library/datetime.rst:808 +msgid "" +">>> from datetime import date\n" +">>> date(2002, 12, 4).ctime()\n" +"'Wed Dec 4 00:00:00 2002'" +msgstr "" + +#: ../../library/datetime.rst:812 ../../library/datetime.rst:1640 +msgid "``d.ctime()`` is equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:814 ../../library/datetime.rst:1642 +msgid "time.ctime(time.mktime(d.timetuple()))" +msgstr "" + +#: ../../library/datetime.rst:816 +msgid "" +"on platforms where the native C :c:func:`ctime` function " +"(which :func:`time.ctime` invokes, but which :meth:`date.ctime` does not " +"invoke) conforms to the C standard." +msgstr "" + +#: ../../library/datetime.rst:823 +msgid "" +"Return a string representing the date, controlled by an explicit format " +"string. Format codes referring to hours, minutes or seconds will see 0 " +"values. See also :ref:`strftime-strptime-behavior` " +"and :meth:`date.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:830 +msgid "" +"Same as :meth:`.date.strftime`. This makes it possible to specify a format " +"string for a :class:`.date` object in :ref:`formatted string literals ` and when using :meth:`str.format`. See also :ref:`strftime-" +"strptime-behavior` and :meth:`date.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:836 +msgid "Examples of Usage: :class:`date`" +msgstr "" + +#: ../../library/datetime.rst:838 +msgid "Example of counting days to an event::" +msgstr "" + +#: ../../library/datetime.rst:840 +msgid "" +">>> import time\n" +">>> from datetime import date\n" +">>> today = date.today()\n" +">>> today\n" +"datetime.date(2007, 12, 5)\n" +">>> today == date.fromtimestamp(time.time())\n" +"True\n" +">>> my_birthday = date(today.year, 6, 24)\n" +">>> if my_birthday < today:\n" +"... my_birthday = my_birthday.replace(year=today.year + 1)\n" +"...\n" +">>> my_birthday\n" +"datetime.date(2008, 6, 24)\n" +">>> time_to_birthday = abs(my_birthday - today)\n" +">>> time_to_birthday.days\n" +"202" +msgstr "" + +#: ../../library/datetime.rst:857 +msgid "More examples of working with :class:`date`:" +msgstr "" + +#: ../../library/datetime.rst:859 +msgid "" +">>> from datetime import date\n" +">>> d = date.fromordinal(730920) # 730920th day after 1. 1. 0001\n" +">>> d\n" +"datetime.date(2002, 3, 11)\n" +"\n" +">>> # Methods related to formatting string output\n" +">>> d.isoformat()\n" +"'2002-03-11'\n" +">>> d.strftime(\"%d/%m/%y\")\n" +"'11/03/02'\n" +">>> d.strftime(\"%A %d. %B %Y\")\n" +"'Monday 11. March 2002'\n" +">>> d.ctime()\n" +"'Mon Mar 11 00:00:00 2002'\n" +">>> 'The {1} is {0:%d}, the {2} is {0:%B}.'.format(d, \"day\", \"month\")\n" +"'The day is 11, the month is March.'\n" +"\n" +">>> # Methods for to extracting 'components' under different calendars\n" +">>> t = d.timetuple()\n" +">>> for i in t:\n" +"... print(i)\n" +"2002 # year\n" +"3 # month\n" +"11 # day\n" +"0\n" +"0\n" +"0\n" +"0 # weekday (0 = Monday)\n" +"70 # 70th day in the year\n" +"-1\n" +">>> ic = d.isocalendar()\n" +">>> for i in ic:\n" +"... print(i)\n" +"2002 # ISO year\n" +"11 # ISO week number\n" +"1 # ISO day number ( 1 = Monday )\n" +"\n" +">>> # A date object is immutable; all operations produce a new object\n" +">>> d.replace(year=2005)\n" +"datetime.date(2005, 3, 11)" +msgstr "" + +#: ../../library/datetime.rst:906 +msgid ":class:`.datetime` Objects" +msgstr "" + +#: ../../library/datetime.rst:908 +msgid "" +"A :class:`.datetime` object is a single object containing all the " +"information from a :class:`date` object and a :class:`.time` object." +msgstr "" + +#: ../../library/datetime.rst:911 +msgid "" +"Like a :class:`date` object, :class:`.datetime` assumes the current " +"Gregorian calendar extended in both directions; like a :class:`.time` " +"object, :class:`.datetime` assumes there are exactly 3600\\*24 seconds in " +"every day." +msgstr "" + +#: ../../library/datetime.rst:915 +msgid "Constructor:" +msgstr "" + +#: ../../library/datetime.rst:919 +msgid "" +"The *year*, *month* and *day* arguments are required. *tzinfo* may be " +"``None``, or an instance of a :class:`tzinfo` subclass. The remaining " +"arguments must be integers in the following ranges:" +msgstr "" + +#: ../../library/datetime.rst:923 +msgid "``MINYEAR <= year <= MAXYEAR``," +msgstr "" + +#: ../../library/datetime.rst:924 +msgid "``1 <= month <= 12``," +msgstr "" + +#: ../../library/datetime.rst:925 +msgid "``1 <= day <= number of days in the given month and year``," +msgstr "" + +#: ../../library/datetime.rst:926 ../../library/datetime.rst:1804 +msgid "``0 <= hour < 24``," +msgstr "" + +#: ../../library/datetime.rst:927 ../../library/datetime.rst:1805 +msgid "``0 <= minute < 60``," +msgstr "" + +#: ../../library/datetime.rst:928 ../../library/datetime.rst:1806 +msgid "``0 <= second < 60``," +msgstr "" + +#: ../../library/datetime.rst:929 ../../library/datetime.rst:1807 +msgid "``0 <= microsecond < 1000000``," +msgstr "" + +#: ../../library/datetime.rst:930 ../../library/datetime.rst:1808 +msgid "``fold in [0, 1]``." +msgstr "" + +#: ../../library/datetime.rst:934 ../../library/datetime.rst:1375 +#: ../../library/datetime.rst:1969 +msgid "Added the *fold* parameter." +msgstr "" + +#: ../../library/datetime.rst:941 +msgid "Return the current local date and time, with :attr:`.tzinfo` ``None``." +msgstr "" + +#: ../../library/datetime.rst:943 +msgid "Equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:945 +msgid "datetime.fromtimestamp(time.time())" +msgstr "" + +#: ../../library/datetime.rst:947 +msgid "See also :meth:`now`, :meth:`fromtimestamp`." +msgstr "" + +#: ../../library/datetime.rst:949 +msgid "" +"This method is functionally equivalent to :meth:`now`, but without a ``tz`` " +"parameter." +msgstr "" + +#: ../../library/datetime.rst:954 +msgid "Return the current local date and time." +msgstr "" + +#: ../../library/datetime.rst:956 +msgid "" +"If optional argument *tz* is ``None`` or not specified, this is " +"like :meth:`today`, but, if possible, supplies more precision than can be " +"gotten from going through a :func:`time.time` timestamp (for example, this " +"may be possible on platforms supplying the C :c:func:`gettimeofday` " +"function)." +msgstr "" + +#: ../../library/datetime.rst:962 +msgid "" +"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " +"subclass, and the current date and time are converted to *tz*’s time zone." +msgstr "" + +#: ../../library/datetime.rst:965 +msgid "This function is preferred over :meth:`today` and :meth:`utcnow`." +msgstr "" + +#: ../../library/datetime.rst:969 +msgid "" +"Subsequent calls to :meth:`!datetime.now` may return the same instant " +"depending on the precision of the underlying clock." +msgstr "" + +#: ../../library/datetime.rst:974 +msgid "Return the current UTC date and time, with :attr:`.tzinfo` ``None``." +msgstr "" + +#: ../../library/datetime.rst:976 +msgid "" +"This is like :meth:`now`, but returns the current UTC date and time, as a " +"naive :class:`.datetime` object. An aware current UTC datetime can be " +"obtained by calling ``datetime.now(timezone.utc)``. See also :meth:`now`." +msgstr "" + +#: ../../library/datetime.rst:982 +msgid "" +"Because naive ``datetime`` objects are treated by many ``datetime`` methods " +"as local times, it is preferred to use aware datetimes to represent times in " +"UTC. As such, the recommended way to create an object representing the " +"current time in UTC is by calling ``datetime.now(timezone.utc)``." +msgstr "" + +#: ../../library/datetime.rst:989 +msgid "Use :meth:`datetime.now` with :const:`UTC` instead." +msgstr "" + +#: ../../library/datetime.rst:994 +msgid "" +"Return the local date and time corresponding to the POSIX timestamp, such as " +"is returned by :func:`time.time`. If optional argument *tz* is ``None`` or " +"not specified, the timestamp is converted to the platform's local date and " +"time, and the returned :class:`.datetime` object is naive." +msgstr "" + +#: ../../library/datetime.rst:999 +msgid "" +"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " +"subclass, and the timestamp is converted to *tz*’s time zone." +msgstr "" + +#: ../../library/datetime.rst:1002 +msgid "" +":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"or :c:func:`gmtime` functions, and :exc:`OSError` on :c:func:`localtime` " +"or :c:func:`gmtime` failure. It's common for this to be restricted to years " +"in 1970 through 2038. Note that on non-POSIX systems that include leap " +"seconds in their notion of a timestamp, leap seconds are ignored " +"by :meth:`fromtimestamp`, and then it's possible to have two timestamps " +"differing by a second that yield identical :class:`.datetime` objects. This " +"method is preferred over :meth:`utcfromtimestamp`." +msgstr "" + +#: ../../library/datetime.rst:1013 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"or :c:func:`gmtime` functions. Raise :exc:`OSError` instead " +"of :exc:`ValueError` on :c:func:`localtime` or :c:func:`gmtime` failure." +msgstr "" + +#: ../../library/datetime.rst:1020 +msgid ":meth:`fromtimestamp` may return instances with :attr:`.fold` set to 1." +msgstr "" + +#: ../../library/datetime.rst:1025 +msgid "" +"Return the UTC :class:`.datetime` corresponding to the POSIX timestamp, " +"with :attr:`.tzinfo` ``None``. (The resulting object is naive.)" +msgstr "" + +#: ../../library/datetime.rst:1028 +msgid "" +"This may raise :exc:`OverflowError`, if the timestamp is out of the range of " +"values supported by the platform C :c:func:`gmtime` function, " +"and :exc:`OSError` on :c:func:`gmtime` failure. It's common for this to be " +"restricted to years in 1970 through 2038." +msgstr "" + +#: ../../library/datetime.rst:1033 +msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" +msgstr "" + +#: ../../library/datetime.rst:1035 +msgid "datetime.fromtimestamp(timestamp, timezone.utc)" +msgstr "" + +#: ../../library/datetime.rst:1037 +msgid "" +"On the POSIX compliant platforms, it is equivalent to the following " +"expression::" +msgstr "" + +#: ../../library/datetime.rst:1040 +msgid "" +"datetime(1970, 1, 1, tzinfo=timezone.utc) + timedelta(seconds=timestamp)" +msgstr "" + +#: ../../library/datetime.rst:1042 +msgid "" +"except the latter formula always supports the full years range: " +"between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." +msgstr "" + +#: ../../library/datetime.rst:1047 +msgid "" +"Because naive ``datetime`` objects are treated by many ``datetime`` methods " +"as local times, it is preferred to use aware datetimes to represent times in " +"UTC. As such, the recommended way to create an object representing a " +"specific timestamp in UTC is by calling ``datetime.fromtimestamp(timestamp, " +"tz=timezone.utc)``." +msgstr "" + +#: ../../library/datetime.rst:1053 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`gmtime` " +"function. Raise :exc:`OSError` instead of :exc:`ValueError` " +"on :c:func:`gmtime` failure." +msgstr "" + +#: ../../library/datetime.rst:1061 +msgid "Use :meth:`datetime.fromtimestamp` with :const:`UTC` instead." +msgstr "" + +#: ../../library/datetime.rst:1066 +msgid "" +"Return the :class:`.datetime` corresponding to the proleptic Gregorian " +"ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " +"raised unless ``1 <= ordinal <= datetime.max.toordinal()``. The hour, " +"minute, second and microsecond of the result are all 0, and :attr:`.tzinfo` " +"is ``None``." +msgstr "" + +#: ../../library/datetime.rst:1074 +msgid "" +"Return a new :class:`.datetime` object whose date components are equal to " +"the given :class:`date` object's, and whose time components are equal to the " +"given :class:`.time` object's. If the *tzinfo* argument is provided, its " +"value is used to set the :attr:`.tzinfo` attribute of the result, otherwise " +"the :attr:`~.time.tzinfo` attribute of the *time* argument is used. If the " +"*date* argument is a :class:`.datetime` object, its time components " +"and :attr:`.tzinfo` attributes are ignored." +msgstr "" + +#: ../../library/datetime.rst:1082 +msgid "" +"For any :class:`.datetime` object ``d``, ``d == datetime.combine(d.date(), " +"d.time(), d.tzinfo)``." +msgstr "" + +#: ../../library/datetime.rst:1085 +msgid "Added the *tzinfo* argument." +msgstr "" + +#: ../../library/datetime.rst:1091 +msgid "" +"Return a :class:`.datetime` corresponding to a *date_string* in any valid " +"ISO 8601 format, with the following exceptions:" +msgstr "" + +#: ../../library/datetime.rst:1094 ../../library/datetime.rst:1904 +msgid "Time zone offsets may have fractional seconds." +msgstr "" + +#: ../../library/datetime.rst:1095 +msgid "The ``T`` separator may be replaced by any single unicode character." +msgstr "" + +#: ../../library/datetime.rst:1096 ../../library/datetime.rst:1909 +msgid "Fractional hours and minutes are not supported." +msgstr "" + +#: ../../library/datetime.rst:1105 +msgid "" +">>> from datetime import datetime\n" +">>> datetime.fromisoformat('2011-11-04')\n" +"datetime.datetime(2011, 11, 4, 0, 0)\n" +">>> datetime.fromisoformat('20111104')\n" +"datetime.datetime(2011, 11, 4, 0, 0)\n" +">>> datetime.fromisoformat('2011-11-04T00:05:23')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23)\n" +">>> datetime.fromisoformat('2011-11-04T00:05:23Z')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23, tzinfo=datetime.timezone.utc)\n" +">>> datetime.fromisoformat('20111104T000523')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23)\n" +">>> datetime.fromisoformat('2011-W01-2T00:05:23.283')\n" +"datetime.datetime(2011, 1, 4, 0, 5, 23, 283000)\n" +">>> datetime.fromisoformat('2011-11-04 00:05:23.283')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23, 283000)\n" +">>> datetime.fromisoformat('2011-11-04 00:05:23.283+00:00')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23, 283000, " +"tzinfo=datetime.timezone.utc)\n" +">>> datetime.fromisoformat('2011-11-04T00:05:23+04:00')\n" +"datetime.datetime(2011, 11, 4, 0, 5, 23,\n" +" tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))" +msgstr "" + +#: ../../library/datetime.rst:1127 +msgid "" +"Previously, this method only supported formats that could be emitted " +"by :meth:`date.isoformat` or :meth:`datetime.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:1134 +msgid "" +"Return a :class:`.datetime` corresponding to the ISO calendar date specified " +"by year, week and day. The non-date components of the datetime are populated " +"with their normal default values. This is the inverse of the " +"function :meth:`datetime.isocalendar`." +msgstr "" + +#: ../../library/datetime.rst:1143 +msgid "" +"Return a :class:`.datetime` corresponding to *date_string*, parsed according " +"to *format*." +msgstr "" + +#: ../../library/datetime.rst:1146 +msgid "" +"If *format* does not contain microseconds or time zone information, this is " +"equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:1148 ../../library/datetime.rst:2643 +msgid "datetime(*(time.strptime(date_string, format)[0:6]))" +msgstr "" + +#: ../../library/datetime.rst:1150 +msgid "" +":exc:`ValueError` is raised if the date_string and format can't be parsed " +"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " +"See also :ref:`strftime-strptime-behavior` " +"and :meth:`datetime.fromisoformat`." +msgstr "" + +#: ../../library/datetime.rst:1157 +msgid "" +"If *format* specifies a day of month without a year " +"a :exc:`DeprecationWarning` is now emitted. This is to avoid a quadrennial " +"leap year bug in code seeking to parse only a month and day as the default " +"year used in absence of one in the format is not a leap year. Such *format* " +"values may raise an error as of Python 3.15. The workaround is to always " +"include a year in your *format*. If parsing *date_string* values that do " +"not have a year, explicitly add a year that is a leap year before parsing:" +msgstr "" + +#: ../../library/datetime.rst:1166 +msgid "" +">>> from datetime import datetime\n" +">>> date_string = \"02/29\"\n" +">>> when = datetime.strptime(f\"{date_string};1984\", \"%m/%d;%Y\") # " +"Avoids leap year bug.\n" +">>> when.strftime(\"%B %d\")\n" +"'February 29'" +msgstr "" + +#: ../../library/datetime.rst:1179 +msgid "" +"The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " +"tzinfo=None)``." +msgstr "" + +#: ../../library/datetime.rst:1185 +msgid "" +"The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " +"59, 59, 999999, tzinfo=None)``." +msgstr "" + +#: ../../library/datetime.rst:1191 +msgid "" +"The smallest possible difference between non-equal :class:`.datetime` " +"objects, ``timedelta(microseconds=1)``." +msgstr "" + +#: ../../library/datetime.rst:1214 ../../library/datetime.rst:1837 +msgid "In ``range(24)``." +msgstr "" + +#: ../../library/datetime.rst:1219 ../../library/datetime.rst:1224 +#: ../../library/datetime.rst:1842 ../../library/datetime.rst:1847 +msgid "In ``range(60)``." +msgstr "" + +#: ../../library/datetime.rst:1229 ../../library/datetime.rst:1852 +msgid "In ``range(1000000)``." +msgstr "" + +#: ../../library/datetime.rst:1234 +msgid "" +"The object passed as the *tzinfo* argument to the :class:`.datetime` " +"constructor, or ``None`` if none was passed." +msgstr "" + +#: ../../library/datetime.rst:1240 ../../library/datetime.rst:1863 +msgid "" +"In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " +"(A repeated interval occurs when clocks are rolled back at the end of " +"daylight saving time or when the UTC offset for the current zone is " +"decreased for political reasons.) The values 0 and 1 represent, " +"respectively, the earlier and later of the two moments with the same wall " +"time representation." +msgstr "" + +#: ../../library/datetime.rst:1253 +msgid "``datetime2 = datetime1 + timedelta``" +msgstr "" + +#: ../../library/datetime.rst:1253 ../../library/datetime.rst:2490 +#: ../../library/datetime.rst:2495 ../../library/datetime.rst:2507 +#: ../../library/datetime.rst:2512 ../../library/datetime.rst:2572 +#: ../../library/datetime.rst:2577 ../../library/datetime.rst:2581 +msgid "\\(1)" +msgstr "" + +#: ../../library/datetime.rst:1255 +msgid "``datetime2 = datetime1 - timedelta``" +msgstr "" + +#: ../../library/datetime.rst:1255 ../../library/datetime.rst:2523 +msgid "\\(2)" +msgstr "" + +#: ../../library/datetime.rst:1257 +msgid "``timedelta = datetime1 - datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 == datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 != datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 < datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 > datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 <= datetime2``" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "``datetime1 >= datetime2``" +msgstr "" + +#: ../../library/datetime.rst:1269 +msgid "" +"``datetime2`` is a duration of ``timedelta`` removed from ``datetime1``, " +"moving forward in time if ``timedelta.days > 0``, or backward if " +"``timedelta.days < 0``. The result has the same :attr:`~.datetime.tzinfo` " +"attribute as the input datetime, and ``datetime2 - datetime1 == timedelta`` " +"after. :exc:`OverflowError` is raised if ``datetime2.year`` would be smaller " +"than :const:`MINYEAR` or larger than :const:`MAXYEAR`. Note that no time " +"zone adjustments are done even if the input is an aware object." +msgstr "" + +#: ../../library/datetime.rst:1278 +msgid "" +"Computes the ``datetime2`` such that ``datetime2 + timedelta == datetime1``. " +"As for addition, the result has the same :attr:`~.datetime.tzinfo` attribute " +"as the input datetime, and no time zone adjustments are done even if the " +"input is aware." +msgstr "" + +#: ../../library/datetime.rst:1283 +msgid "" +"Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " +"only if both operands are naive, or if both are aware. If one is aware and " +"the other is naive, :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/datetime.rst:1287 +msgid "" +"If both are naive, or both are aware and have the " +"same :attr:`~.datetime.tzinfo` attribute, the :attr:`~.datetime.tzinfo` " +"attributes are ignored, and the result is a :class:`timedelta` object ``t`` " +"such that ``datetime2 + t == datetime1``. No time zone adjustments are done " +"in this case." +msgstr "" + +#: ../../library/datetime.rst:1292 +msgid "" +"If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " +"``a-b`` acts as if ``a`` and ``b`` were first converted to naive UTC " +"datetimes. The result is ``(a.replace(tzinfo=None) - a.utcoffset()) - " +"(b.replace(tzinfo=None) - b.utcoffset())`` except that the implementation " +"never overflows." +msgstr "" + +#: ../../library/datetime.rst:1298 +msgid "" +":class:`.datetime` objects are equal if they represent the same date and " +"time, taking into account the time zone." +msgstr "" + +#: ../../library/datetime.rst:1301 +msgid "Naive and aware :class:`!datetime` objects are never equal." +msgstr "" + +#: ../../library/datetime.rst:1303 +msgid "" +"If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " +"the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " +"the base datetimes are compared. If both comparands are aware and have " +"different :attr:`~.datetime.tzinfo` attributes, the comparison acts as " +"comparands were first converted to UTC datetimes except that the " +"implementation never overflows. :class:`!datetime` instances in a repeated " +"interval are never equal to :class:`!datetime` instances in other time zone." +msgstr "" + +#: ../../library/datetime.rst:1313 +msgid "" +"*datetime1* is considered less than *datetime2* when *datetime1* precedes " +"*datetime2* in time, taking into account the time zone." +msgstr "" + +#: ../../library/datetime.rst:1316 +msgid "" +"Order comparison between naive and aware :class:`.datetime` objects " +"raises :exc:`TypeError`." +msgstr "" + +#: ../../library/datetime.rst:1319 +msgid "" +"If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " +"the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " +"the base datetimes are compared. If both comparands are aware and have " +"different :attr:`~.datetime.tzinfo` attributes, the comparison acts as " +"comparands were first converted to UTC datetimes except that the " +"implementation never overflows." +msgstr "" + +#: ../../library/datetime.rst:1326 +msgid "" +"Equality comparisons between aware and naive :class:`.datetime` instances " +"don't raise :exc:`TypeError`." +msgstr "" + +#: ../../library/datetime.rst:1342 +msgid "Return :class:`date` object with same year, month and day." +msgstr "" + +#: ../../library/datetime.rst:1347 +msgid "" +"Return :class:`.time` object with same hour, minute, second, microsecond and " +"fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." +msgstr "" + +#: ../../library/datetime.rst:1350 ../../library/datetime.rst:1359 +msgid "The fold value is copied to the returned :class:`.time` object." +msgstr "" + +#: ../../library/datetime.rst:1356 +msgid "" +"Return :class:`.time` object with same hour, minute, second, microsecond, " +"fold, and tzinfo attributes. See also method :meth:`time`." +msgstr "" + +#: ../../library/datetime.rst:1367 +msgid "" +"Return a new :class:`datetime` object with the same attributes, but with " +"specified parameters updated. Note that ``tzinfo=None`` can be specified to " +"create a naive datetime from an aware datetime with no conversion of date " +"and time data." +msgstr "" + +#: ../../library/datetime.rst:1372 +msgid "" +":class:`.datetime` objects are also supported by generic " +"function :func:`copy.replace`." +msgstr "" + +#: ../../library/datetime.rst:1381 +msgid "" +"Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " +"adjusting the date and time data so the result is the same UTC time as " +"*self*, but in *tz*'s local time." +msgstr "" + +#: ../../library/datetime.rst:1385 +msgid "" +"If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " +"its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " +"*self* is naive, it is presumed to represent time in the system time zone." +msgstr "" + +#: ../../library/datetime.rst:1389 +msgid "" +"If called without arguments (or with ``tz=None``) the system local time zone " +"is assumed for the target time zone. The ``.tzinfo`` attribute of the " +"converted datetime instance will be set to an instance of :class:`timezone` " +"with the zone name and offset obtained from the OS." +msgstr "" + +#: ../../library/datetime.rst:1394 +msgid "" +"If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " +"adjustment of date or time data is performed. Else the result is local time " +"in the time zone *tz*, representing the same UTC time as *self*: after " +"``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` will have the same " +"date and time data as ``dt - dt.utcoffset()``." +msgstr "" + +#: ../../library/datetime.rst:1400 +msgid "" +"If you merely want to attach a :class:`timezone` object *tz* to a datetime " +"*dt* without adjustment of date and time data, use " +"``dt.replace(tzinfo=tz)``. If you merely want to remove the :class:`!" +"timezone` object from an aware datetime *dt* without conversion of date and " +"time data, use ``dt.replace(tzinfo=None)``." +msgstr "" + +#: ../../library/datetime.rst:1405 +msgid "" +"Note that the default :meth:`tzinfo.fromutc` method can be overridden in " +"a :class:`tzinfo` subclass to affect the result returned " +"by :meth:`astimezone`. Ignoring error cases, :meth:`astimezone` acts like::" +msgstr "" + +#: ../../library/datetime.rst:1409 +msgid "" +"def astimezone(self, tz):\n" +" if self.tzinfo is tz:\n" +" return self\n" +" # Convert self to UTC, and attach the new timezone object.\n" +" utc = (self - self.utcoffset()).replace(tzinfo=tz)\n" +" # Convert from UTC to tz's local time.\n" +" return tz.fromutc(utc)" +msgstr "" + +#: ../../library/datetime.rst:1417 +msgid "*tz* now can be omitted." +msgstr "" + +#: ../../library/datetime.rst:1420 +msgid "" +"The :meth:`astimezone` method can now be called on naive instances that are " +"presumed to represent system local time." +msgstr "" + +#: ../../library/datetime.rst:1427 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.utcoffset(self)``, and raises an exception if the latter " +"doesn't return ``None`` or a :class:`timedelta` object with magnitude less " +"than one day." +msgstr "" + +#: ../../library/datetime.rst:1431 ../../library/datetime.rst:2042 +#: ../../library/datetime.rst:2149 ../../library/datetime.rst:2394 +#: ../../library/datetime.rst:2406 ../../library/datetime.rst:2716 +msgid "The UTC offset is not restricted to a whole number of minutes." +msgstr "" + +#: ../../library/datetime.rst:1437 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.dst(self)``, and raises an exception if the latter doesn't " +"return ``None`` or a :class:`timedelta` object with magnitude less than one " +"day." +msgstr "" + +#: ../../library/datetime.rst:1441 ../../library/datetime.rst:2052 +#: ../../library/datetime.rst:2203 +msgid "The DST offset is not restricted to a whole number of minutes." +msgstr "" + +#: ../../library/datetime.rst:1447 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.tzname(self)``, raises an exception if the latter doesn't " +"return ``None`` or a string object," +msgstr "" + +#: ../../library/datetime.rst:1458 +msgid "" +"time.struct_time((d.year, d.month, d.day,\n" +" d.hour, d.minute, d.second,\n" +" d.weekday(), yday, dst))" +msgstr "" + +#: ../../library/datetime.rst:1462 +msgid "" +"where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " +"day number within the current year starting with 1 for January 1st. " +"The :attr:`~time.struct_time.tm_isdst` flag of the result is set according " +"to the :meth:`dst` method: :attr:`.tzinfo` is ``None`` or :meth:`dst` " +"returns ``None``, :attr:`!tm_isdst` is set to ``-1``; else if :meth:`dst` " +"returns a non-zero value, :attr:`!tm_isdst` is set to 1; else :attr:`!" +"tm_isdst` is set to 0." +msgstr "" + +#: ../../library/datetime.rst:1473 +msgid "" +"If :class:`.datetime` instance ``d`` is naive, this is the same as " +"``d.timetuple()`` except that :attr:`~.time.struct_time.tm_isdst` is forced " +"to 0 regardless of what ``d.dst()`` returns. DST is never in effect for a " +"UTC time." +msgstr "" + +#: ../../library/datetime.rst:1477 +msgid "" +"If ``d`` is aware, ``d`` is normalized to UTC time, by subtracting " +"``d.utcoffset()``, and a :class:`time.struct_time` for the normalized time " +"is returned. :attr:`!tm_isdst` is forced to 0. Note that " +"an :exc:`OverflowError` may be raised if ``d.year`` was ``MINYEAR`` or " +"``MAXYEAR`` and UTC adjustment spills over a year boundary." +msgstr "" + +#: ../../library/datetime.rst:1486 +msgid "" +"Because naive ``datetime`` objects are treated by many ``datetime`` methods " +"as local times, it is preferred to use aware datetimes to represent times in " +"UTC; as a result, using :meth:`datetime.utctimetuple` may give misleading " +"results. If you have a naive ``datetime`` representing UTC, use " +"``datetime.replace(tzinfo=timezone.utc)`` to make it aware, at which point " +"you can use :meth:`.datetime.timetuple`." +msgstr "" + +#: ../../library/datetime.rst:1495 +msgid "" +"Return the proleptic Gregorian ordinal of the date. The same as " +"``self.date().toordinal()``." +msgstr "" + +#: ../../library/datetime.rst:1500 +msgid "" +"Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " +"return value is a :class:`float` similar to that returned " +"by :func:`time.time`." +msgstr "" + +#: ../../library/datetime.rst:1504 +msgid "" +"Naive :class:`.datetime` instances are assumed to represent local time and " +"this method relies on the platform C :c:func:`mktime` function to perform " +"the conversion. Since :class:`.datetime` supports wider range of values " +"than :c:func:`mktime` on many platforms, this method may " +"raise :exc:`OverflowError` or :exc:`OSError` for times far in the past or " +"far in the future." +msgstr "" + +#: ../../library/datetime.rst:1511 +msgid "" +"For aware :class:`.datetime` instances, the return value is computed as::" +msgstr "" + +#: ../../library/datetime.rst:1514 +msgid "(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()" +msgstr "" + +#: ../../library/datetime.rst:1518 +msgid "" +"The :meth:`timestamp` method uses the :attr:`.fold` attribute to " +"disambiguate the times during a repeated interval." +msgstr "" + +#: ../../library/datetime.rst:1524 +msgid "" +"There is no method to obtain the POSIX timestamp directly from a " +"naive :class:`.datetime` instance representing UTC time. If your application " +"uses this convention and your system time zone is not set to UTC, you can " +"obtain the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" +msgstr "" + +#: ../../library/datetime.rst:1530 +msgid "timestamp = dt.replace(tzinfo=timezone.utc).timestamp()" +msgstr "" + +#: ../../library/datetime.rst:1532 +msgid "or by calculating the timestamp directly::" +msgstr "" + +#: ../../library/datetime.rst:1534 +msgid "timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)" +msgstr "" + +#: ../../library/datetime.rst:1538 +msgid "" +"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " +"The same as ``self.date().weekday()``. See also :meth:`isoweekday`." +msgstr "" + +#: ../../library/datetime.rst:1544 +msgid "" +"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " +"The same as ``self.date().isoweekday()``. See " +"also :meth:`weekday`, :meth:`isocalendar`." +msgstr "" + +#: ../../library/datetime.rst:1551 +msgid "" +"Return a :term:`named tuple` with three components: ``year``, ``week`` and " +"``weekday``. The same as ``self.date().isocalendar()``." +msgstr "" + +#: ../../library/datetime.rst:1557 +msgid "Return a string representing the date and time in ISO 8601 format:" +msgstr "" + +#: ../../library/datetime.rst:1559 +msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" +msgstr "" + +#: ../../library/datetime.rst:1560 +msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" +msgstr "" + +#: ../../library/datetime.rst:1562 +msgid "" +"If :meth:`utcoffset` does not return ``None``, a string is appended, giving " +"the UTC offset:" +msgstr "" + +#: ../../library/datetime.rst:1565 +msgid "" +"``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " +"is not 0" +msgstr "" + +#: ../../library/datetime.rst:1567 +msgid "" +"``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" +msgstr "" + +#: ../../library/datetime.rst:1571 +msgid "" +">>> from datetime import datetime, timezone\n" +">>> datetime(2019, 5, 18, 15, 17, 8, 132263).isoformat()\n" +"'2019-05-18T15:17:08.132263'\n" +">>> datetime(2019, 5, 18, 15, 17, tzinfo=timezone.utc).isoformat()\n" +"'2019-05-18T15:17:00+00:00'" +msgstr "" + +#: ../../library/datetime.rst:1577 +msgid "" +"The optional argument *sep* (default ``'T'``) is a one-character separator, " +"placed between the date and time portions of the result. For example::" +msgstr "" + +#: ../../library/datetime.rst:1580 +msgid "" +">>> from datetime import tzinfo, timedelta, datetime\n" +">>> class TZ(tzinfo):\n" +"... \"\"\"A time zone with an arbitrary, constant -06:39 offset.\"\"\"\n" +"... def utcoffset(self, dt):\n" +"... return timedelta(hours=-6, minutes=-39)\n" +"...\n" +">>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ')\n" +"'2002-12-25 00:00:00-06:39'\n" +">>> datetime(2009, 11, 27, microsecond=100, tzinfo=TZ()).isoformat()\n" +"'2009-11-27T00:00:00.000100-06:39'" +msgstr "" + +#: ../../library/datetime.rst:1591 ../../library/datetime.rst:1982 +msgid "" +"The optional argument *timespec* specifies the number of additional " +"components of the time to include (the default is ``'auto'``). It can be one " +"of the following:" +msgstr "" + +#: ../../library/datetime.rst:1595 ../../library/datetime.rst:1986 +msgid "" +"``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " +"``'microseconds'`` otherwise." +msgstr "" + +#: ../../library/datetime.rst:1597 ../../library/datetime.rst:1988 +msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." +msgstr "" + +#: ../../library/datetime.rst:1598 ../../library/datetime.rst:1989 +msgid "" +"``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." +msgstr "" + +#: ../../library/datetime.rst:1599 ../../library/datetime.rst:1990 +msgid "" +"``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " +"``HH:MM:SS`` format." +msgstr "" + +#: ../../library/datetime.rst:1601 ../../library/datetime.rst:1992 +msgid "" +"``'milliseconds'``: Include full time, but truncate fractional second part " +"to milliseconds. ``HH:MM:SS.sss`` format." +msgstr "" + +#: ../../library/datetime.rst:1603 ../../library/datetime.rst:1994 +msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." +msgstr "" + +#: ../../library/datetime.rst:1607 ../../library/datetime.rst:1998 +msgid "Excluded time components are truncated, not rounded." +msgstr "" + +#: ../../library/datetime.rst:1609 +msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" +msgstr "" + +#: ../../library/datetime.rst:1612 +msgid "" +">>> from datetime import datetime\n" +">>> datetime.now().isoformat(timespec='minutes')\n" +"'2002-12-25T00:00'\n" +">>> dt = datetime(2015, 1, 1, 12, 30, 59, 0)\n" +">>> dt.isoformat(timespec='microseconds')\n" +"'2015-01-01T12:30:59.000000'" +msgstr "" + +#: ../../library/datetime.rst:1619 ../../library/datetime.rst:2013 +msgid "Added the *timespec* parameter." +msgstr "" + +#: ../../library/datetime.rst:1625 +msgid "" +"For a :class:`.datetime` instance ``d``, ``str(d)`` is equivalent to " +"``d.isoformat(' ')``." +msgstr "" + +#: ../../library/datetime.rst:1631 +msgid "Return a string representing the date and time::" +msgstr "" + +#: ../../library/datetime.rst:1633 +msgid "" +">>> from datetime import datetime\n" +">>> datetime(2002, 12, 4, 20, 30, 40).ctime()\n" +"'Wed Dec 4 20:30:40 2002'" +msgstr "" + +#: ../../library/datetime.rst:1637 +msgid "" +"The output string will *not* include time zone information, regardless of " +"whether the input is aware or naive." +msgstr "" + +#: ../../library/datetime.rst:1644 +msgid "" +"on platforms where the native C :c:func:`ctime` function " +"(which :func:`time.ctime` invokes, but which :meth:`datetime.ctime` does not " +"invoke) conforms to the C standard." +msgstr "" + +#: ../../library/datetime.rst:1651 +msgid "" +"Return a string representing the date and time, controlled by an explicit " +"format string. See also :ref:`strftime-strptime-behavior` " +"and :meth:`datetime.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:1658 +msgid "" +"Same as :meth:`.datetime.strftime`. This makes it possible to specify a " +"format string for a :class:`.datetime` object in :ref:`formatted string " +"literals ` and when using :meth:`str.format`. See " +"also :ref:`strftime-strptime-behavior` and :meth:`datetime.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:1665 +msgid "Examples of Usage: :class:`.datetime`" +msgstr "" + +#: ../../library/datetime.rst:1667 +msgid "Examples of working with :class:`.datetime` objects:" +msgstr "" + +#: ../../library/datetime.rst:1669 +msgid "" +">>> from datetime import datetime, date, time, timezone\n" +"\n" +">>> # Using datetime.combine()\n" +">>> d = date(2005, 7, 14)\n" +">>> t = time(12, 30)\n" +">>> datetime.combine(d, t)\n" +"datetime.datetime(2005, 7, 14, 12, 30)\n" +"\n" +">>> # Using datetime.now()\n" +">>> datetime.now()\n" +"datetime.datetime(2007, 12, 6, 16, 29, 43, 79043) # GMT +1\n" +">>> datetime.now(timezone.utc)\n" +"datetime.datetime(2007, 12, 6, 15, 29, 43, 79060, " +"tzinfo=datetime.timezone.utc)\n" +"\n" +">>> # Using datetime.strptime()\n" +">>> dt = datetime.strptime(\"21/11/06 16:30\", \"%d/%m/%y %H:%M\")\n" +">>> dt\n" +"datetime.datetime(2006, 11, 21, 16, 30)\n" +"\n" +">>> # Using datetime.timetuple() to get tuple of all attributes\n" +">>> tt = dt.timetuple()\n" +">>> for it in tt:\n" +"... print(it)\n" +"...\n" +"2006 # year\n" +"11 # month\n" +"21 # day\n" +"16 # hour\n" +"30 # minute\n" +"0 # second\n" +"1 # weekday (0 = Monday)\n" +"325 # number of days since 1st January\n" +"-1 # dst - method tzinfo.dst() returned None\n" +"\n" +">>> # Date in ISO format\n" +">>> ic = dt.isocalendar()\n" +">>> for it in ic:\n" +"... print(it)\n" +"...\n" +"2006 # ISO year\n" +"47 # ISO week\n" +"2 # ISO weekday\n" +"\n" +">>> # Formatting a datetime\n" +">>> dt.strftime(\"%A, %d. %B %Y %I:%M%p\")\n" +"'Tuesday, 21. November 2006 04:30PM'\n" +">>> 'The {1} is {0:%d}, the {2} is {0:%B}, the {3} is {0:%I:" +"%M%p}.'.format(dt, \"day\", \"month\", \"time\")\n" +"'The day is 21, the month is November, the time is 04:30PM.'" +msgstr "" + +#: ../../library/datetime.rst:1720 +msgid "" +"The example below defines a :class:`tzinfo` subclass capturing time zone " +"information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " +"+4:30 UTC thereafter::" +msgstr "" + +#: ../../library/datetime.rst:1724 +msgid "" +"from datetime import timedelta, datetime, tzinfo, timezone\n" +"\n" +"class KabulTz(tzinfo):\n" +" # Kabul used +4 until 1945, when they moved to +4:30\n" +" UTC_MOVE_DATE = datetime(1944, 12, 31, 20, tzinfo=timezone.utc)\n" +"\n" +" def utcoffset(self, dt):\n" +" if dt.year < 1945:\n" +" return timedelta(hours=4)\n" +" elif (1945, 1, 1, 0, 0) <= dt.timetuple()[:5] < (1945, 1, 1, 0, " +"30):\n" +" # An ambiguous (\"imaginary\") half-hour range representing\n" +" # a 'fold' in time due to the shift from +4 to +4:30.\n" +" # If dt falls in the imaginary range, use fold to decide how\n" +" # to resolve. See PEP495.\n" +" return timedelta(hours=4, minutes=(30 if dt.fold else 0))\n" +" else:\n" +" return timedelta(hours=4, minutes=30)\n" +"\n" +" def fromutc(self, dt):\n" +" # Follow same validations as in datetime.tzinfo\n" +" if not isinstance(dt, datetime):\n" +" raise TypeError(\"fromutc() requires a datetime argument\")\n" +" if dt.tzinfo is not self:\n" +" raise ValueError(\"dt.tzinfo is not self\")\n" +"\n" +" # A custom implementation is required for fromutc as\n" +" # the input to this function is a datetime with utc values\n" +" # but with a tzinfo set to self.\n" +" # See datetime.astimezone or fromtimestamp.\n" +" if dt.replace(tzinfo=timezone.utc) >= self.UTC_MOVE_DATE:\n" +" return dt + timedelta(hours=4, minutes=30)\n" +" else:\n" +" return dt + timedelta(hours=4)\n" +"\n" +" def dst(self, dt):\n" +" # Kabul does not observe daylight saving time.\n" +" return timedelta(0)\n" +"\n" +" def tzname(self, dt):\n" +" if dt >= self.UTC_MOVE_DATE:\n" +" return \"+04:30\"\n" +" return \"+04\"" +msgstr "" + +#: ../../library/datetime.rst:1767 +msgid "Usage of ``KabulTz`` from above::" +msgstr "" + +#: ../../library/datetime.rst:1769 +msgid "" +">>> tz1 = KabulTz()\n" +"\n" +">>> # Datetime before the change\n" +">>> dt1 = datetime(1900, 11, 21, 16, 30, tzinfo=tz1)\n" +">>> print(dt1.utcoffset())\n" +"4:00:00\n" +"\n" +">>> # Datetime after the change\n" +">>> dt2 = datetime(2006, 6, 14, 13, 0, tzinfo=tz1)\n" +">>> print(dt2.utcoffset())\n" +"4:30:00\n" +"\n" +">>> # Convert datetime to another time zone\n" +">>> dt3 = dt2.astimezone(timezone.utc)\n" +">>> dt3\n" +"datetime.datetime(2006, 6, 14, 8, 30, tzinfo=datetime.timezone.utc)\n" +">>> dt2\n" +"datetime.datetime(2006, 6, 14, 13, 0, tzinfo=KabulTz())\n" +">>> dt2 == dt3\n" +"True" +msgstr "" + +#: ../../library/datetime.rst:1793 +msgid ":class:`.time` Objects" +msgstr "" + +#: ../../library/datetime.rst:1795 +msgid "" +"A :class:`.time` object represents a (local) time of day, independent of any " +"particular day, and subject to adjustment via a :class:`tzinfo` object." +msgstr "" + +#: ../../library/datetime.rst:1800 +msgid "" +"All arguments are optional. *tzinfo* may be ``None``, or an instance of " +"a :class:`tzinfo` subclass. The remaining arguments must be integers in the " +"following ranges:" +msgstr "" + +#: ../../library/datetime.rst:1810 +msgid "" +"If an argument outside those ranges is given, :exc:`ValueError` is raised. " +"All default to 0 except *tzinfo*, which defaults to ``None``." +msgstr "" + +#: ../../library/datetime.rst:1818 +msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." +msgstr "" + +#: ../../library/datetime.rst:1823 +msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." +msgstr "" + +#: ../../library/datetime.rst:1828 +msgid "" +"The smallest possible difference between non-equal :class:`.time` objects, " +"``timedelta(microseconds=1)``, although note that arithmetic " +"on :class:`.time` objects is not supported." +msgstr "" + +#: ../../library/datetime.rst:1857 +msgid "" +"The object passed as the tzinfo argument to the :class:`.time` constructor, " +"or ``None`` if none was passed." +msgstr "" + +#: ../../library/datetime.rst:1871 +msgid "" +":class:`.time` objects support equality and order comparisons, where ``a`` " +"is considered less than ``b`` when ``a`` precedes ``b`` in time." +msgstr "" + +#: ../../library/datetime.rst:1874 +msgid "" +"Naive and aware :class:`!time` objects are never equal. Order comparison " +"between naive and aware :class:`!time` objects raises :exc:`TypeError`." +msgstr "" + +#: ../../library/datetime.rst:1878 +msgid "" +"If both comparands are aware, and have the same :attr:`~.time.tzinfo` " +"attribute, the :attr:`!tzinfo` and :attr:`!fold` attributes are ignored and " +"the base times are compared. If both comparands are aware and have " +"different :attr:`!tzinfo` attributes, the comparands are first adjusted by " +"subtracting their UTC offsets (obtained from ``self.utcoffset()``)." +msgstr "" + +#: ../../library/datetime.rst:1884 +msgid "" +"Equality comparisons between aware and naive :class:`.time` instances don't " +"raise :exc:`TypeError`." +msgstr "" + +#: ../../library/datetime.rst:1888 +msgid "" +"In Boolean contexts, a :class:`.time` object is always considered to be true." +msgstr "" + +#: ../../library/datetime.rst:1890 +msgid "" +"Before Python 3.5, a :class:`.time` object was considered to be false if it " +"represented midnight in UTC. This behavior was considered obscure and error-" +"prone and has been removed in Python 3.5. See :issue:`13936` for full " +"details." +msgstr "" + +#: ../../library/datetime.rst:1897 +msgid "Other constructors:" +msgstr "" + +#: ../../library/datetime.rst:1901 +msgid "" +"Return a :class:`.time` corresponding to a *time_string* in any valid ISO " +"8601 format, with the following exceptions:" +msgstr "" + +#: ../../library/datetime.rst:1905 +msgid "" +"The leading ``T``, normally required in cases where there may be ambiguity " +"between a date and a time, is not required." +msgstr "" + +#: ../../library/datetime.rst:1907 +msgid "" +"Fractional seconds may have any number of digits (anything beyond 6 will be " +"truncated)." +msgstr "" + +#: ../../library/datetime.rst:1911 +msgid "Examples:" +msgstr "" + +#: ../../library/datetime.rst:1913 +msgid "" +">>> from datetime import time\n" +">>> time.fromisoformat('04:23:01')\n" +"datetime.time(4, 23, 1)\n" +">>> time.fromisoformat('T04:23:01')\n" +"datetime.time(4, 23, 1)\n" +">>> time.fromisoformat('T042301')\n" +"datetime.time(4, 23, 1)\n" +">>> time.fromisoformat('04:23:01.000384')\n" +"datetime.time(4, 23, 1, 384)\n" +">>> time.fromisoformat('04:23:01,000384')\n" +"datetime.time(4, 23, 1, 384)\n" +">>> time.fromisoformat('04:23:01+04:00')\n" +"datetime.time(4, 23, 1, " +"tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))\n" +">>> time.fromisoformat('04:23:01Z')\n" +"datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)\n" +">>> time.fromisoformat('04:23:01+00:00')\n" +"datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)" +msgstr "" + +#: ../../library/datetime.rst:1935 +msgid "" +"Previously, this method only supported formats that could be emitted " +"by :meth:`time.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:1941 +msgid "" +"Return a :class:`.time` corresponding to *date_string*, parsed according to " +"*format*." +msgstr "" + +#: ../../library/datetime.rst:1944 +msgid "" +"If *format* does not contain microseconds or timezone information, this is " +"equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:1946 +msgid "time(*(time.strptime(date_string, format)[3:6]))" +msgstr "" + +#: ../../library/datetime.rst:1948 +msgid "" +":exc:`ValueError` is raised if the *date_string* and *format* cannot be " +"parsed by :func:`time.strptime` or if it returns a value which is not a time " +"tuple. See also :ref:`strftime-strptime-behavior` " +"and :meth:`time.fromisoformat`." +msgstr "" + +#: ../../library/datetime.rst:1961 +msgid "" +"Return a new :class:`.time` with the same values, but with specified " +"parameters updated. Note that ``tzinfo=None`` can be specified to create a " +"naive :class:`.time` from an aware :class:`.time`, without conversion of the " +"time data." +msgstr "" + +#: ../../library/datetime.rst:1966 +msgid "" +":class:`.time` objects are also supported by generic " +"function :func:`copy.replace`." +msgstr "" + +#: ../../library/datetime.rst:1975 +msgid "Return a string representing the time in ISO 8601 format, one of:" +msgstr "" + +#: ../../library/datetime.rst:1977 +msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" +msgstr "" + +#: ../../library/datetime.rst:1978 +msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" +msgstr "" + +#: ../../library/datetime.rst:1979 +msgid "" +"``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " +"return ``None``" +msgstr "" + +#: ../../library/datetime.rst:1980 +msgid "" +"``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 " +"and :meth:`utcoffset` does not return ``None``" +msgstr "" + +#: ../../library/datetime.rst:2000 +msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." +msgstr "" + +#: ../../library/datetime.rst:2004 +msgid "" +">>> from datetime import time\n" +">>> time(hour=12, minute=34, second=56, " +"microsecond=123456).isoformat(timespec='minutes')\n" +"'12:34'\n" +">>> dt = time(hour=12, minute=34, second=56, microsecond=0)\n" +">>> dt.isoformat(timespec='microseconds')\n" +"'12:34:56.000000'\n" +">>> dt.isoformat(timespec='auto')\n" +"'12:34:56'" +msgstr "" + +#: ../../library/datetime.rst:2019 +msgid "For a time ``t``, ``str(t)`` is equivalent to ``t.isoformat()``." +msgstr "" + +#: ../../library/datetime.rst:2024 +msgid "" +"Return a string representing the time, controlled by an explicit format " +"string. See also :ref:`strftime-strptime-behavior` " +"and :meth:`time.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:2030 +msgid "" +"Same as :meth:`.time.strftime`. This makes it possible to specify a format " +"string for a :class:`.time` object in :ref:`formatted string literals ` and when using :meth:`str.format`. See also :ref:`strftime-" +"strptime-behavior` and :meth:`time.isoformat`." +msgstr "" + +#: ../../library/datetime.rst:2038 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.utcoffset(None)``, and raises an exception if the latter " +"doesn't return ``None`` or a :class:`timedelta` object with magnitude less " +"than one day." +msgstr "" + +#: ../../library/datetime.rst:2048 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.dst(None)``, and raises an exception if the latter doesn't " +"return ``None``, or a :class:`timedelta` object with magnitude less than one " +"day." +msgstr "" + +#: ../../library/datetime.rst:2057 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " +"``self.tzinfo.tzname(None)``, or raises an exception if the latter doesn't " +"return ``None`` or a string object." +msgstr "" + +#: ../../library/datetime.rst:2062 +msgid "Examples of Usage: :class:`.time`" +msgstr "" + +#: ../../library/datetime.rst:2064 +msgid "Examples of working with a :class:`.time` object::" +msgstr "" + +#: ../../library/datetime.rst:2066 +msgid "" +">>> from datetime import time, tzinfo, timedelta\n" +">>> class TZ1(tzinfo):\n" +"... def utcoffset(self, dt):\n" +"... return timedelta(hours=1)\n" +"... def dst(self, dt):\n" +"... return timedelta(0)\n" +"... def tzname(self,dt):\n" +"... return \"+01:00\"\n" +"... def __repr__(self):\n" +"... return f\"{self.__class__.__name__}()\"\n" +"...\n" +">>> t = time(12, 10, 30, tzinfo=TZ1())\n" +">>> t\n" +"datetime.time(12, 10, 30, tzinfo=TZ1())\n" +">>> t.isoformat()\n" +"'12:10:30+01:00'\n" +">>> t.dst()\n" +"datetime.timedelta(0)\n" +">>> t.tzname()\n" +"'+01:00'\n" +">>> t.strftime(\"%H:%M:%S %Z\")\n" +"'12:10:30 +01:00'\n" +">>> 'The {} is {:%H:%M}.'.format(\"time\", t)\n" +"'The time is 12:10.'" +msgstr "" + +#: ../../library/datetime.rst:2095 +msgid ":class:`tzinfo` Objects" +msgstr "" + +#: ../../library/datetime.rst:2099 +msgid "" +"This is an abstract base class, meaning that this class should not be " +"instantiated directly. Define a subclass of :class:`tzinfo` to capture " +"information about a particular time zone." +msgstr "" + +#: ../../library/datetime.rst:2103 +msgid "" +"An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " +"constructors for :class:`.datetime` and :class:`.time` objects. The latter " +"objects view their attributes as being in local time, and " +"the :class:`tzinfo` object supports methods revealing offset of local time " +"from UTC, the name of the time zone, and DST offset, all relative to a date " +"or time object passed to them." +msgstr "" + +#: ../../library/datetime.rst:2109 +msgid "" +"You need to derive a concrete subclass, and (at least) supply " +"implementations of the standard :class:`tzinfo` methods needed by " +"the :class:`.datetime` methods you use. The :mod:`!datetime` module " +"provides :class:`timezone`, a simple concrete subclass of :class:`tzinfo` " +"which can represent time zones with fixed offset from UTC such as UTC itself " +"or North American EST and EDT." +msgstr "" + +#: ../../library/datetime.rst:2116 +msgid "" +"Special requirement for pickling: A :class:`tzinfo` subclass must have " +"an :meth:`~object.__init__` method that can be called with no arguments, " +"otherwise it can be pickled but possibly not unpickled again. This is a " +"technical requirement that may be relaxed in the future." +msgstr "" + +#: ../../library/datetime.rst:2122 +msgid "" +"A concrete subclass of :class:`tzinfo` may need to implement the following " +"methods. Exactly which methods are needed depends on the uses made of " +"aware :mod:`!datetime` objects. If in doubt, simply implement all of them." +msgstr "" + +#: ../../library/datetime.rst:2129 +msgid "" +"Return offset of local time from UTC, as a :class:`timedelta` object that is " +"positive east of UTC. If local time is west of UTC, this should be negative." +msgstr "" + +#: ../../library/datetime.rst:2132 +msgid "" +"This represents the *total* offset from UTC; for example, if " +"a :class:`tzinfo` object represents both time zone and DST " +"adjustments, :meth:`utcoffset` should return their sum. If the UTC offset " +"isn't known, return ``None``. Else the value returned must be " +"a :class:`timedelta` object strictly between ``-timedelta(hours=24)`` and " +"``timedelta(hours=24)`` (the magnitude of the offset must be less than one " +"day). Most implementations of :meth:`utcoffset` will probably look like one " +"of these two::" +msgstr "" + +#: ../../library/datetime.rst:2140 +msgid "" +"return CONSTANT # fixed-offset class\n" +"return CONSTANT + self.dst(dt) # daylight-aware class" +msgstr "" + +#: ../../library/datetime.rst:2143 +msgid "" +"If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " +"``None`` either." +msgstr "" + +#: ../../library/datetime.rst:2146 +msgid "" +"The default implementation of :meth:`utcoffset` " +"raises :exc:`NotImplementedError`." +msgstr "" + +#: ../../library/datetime.rst:2155 +msgid "" +"Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " +"object or ``None`` if DST information isn't known." +msgstr "" + +#: ../../library/datetime.rst:2159 +msgid "" +"Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " +"the offset as a :class:`timedelta` object (see :meth:`utcoffset` for " +"details). Note that DST offset, if applicable, has already been added to the " +"UTC offset returned by :meth:`utcoffset`, so there's no need to " +"consult :meth:`dst` unless you're interested in obtaining DST info " +"separately. For example, :meth:`datetime.timetuple` calls " +"its :attr:`~.datetime.tzinfo` attribute's :meth:`dst` method to determine " +"how the :attr:`~time.struct_time.tm_isdst` flag should be set, " +"and :meth:`tzinfo.fromutc` calls :meth:`dst` to account for DST changes when " +"crossing time zones." +msgstr "" + +#: ../../library/datetime.rst:2169 +msgid "" +"An instance *tz* of a :class:`tzinfo` subclass that models both standard and " +"daylight times must be consistent in this sense:" +msgstr "" + +#: ../../library/datetime.rst:2172 +msgid "``tz.utcoffset(dt) - tz.dst(dt)``" +msgstr "" + +#: ../../library/datetime.rst:2174 +msgid "" +"must return the same result for every :class:`.datetime` *dt* with " +"``dt.tzinfo == tz``. For sane :class:`tzinfo` subclasses, this expression " +"yields the time zone's \"standard offset\", which should not depend on the " +"date or the time, but only on geographic location. The implementation " +"of :meth:`datetime.astimezone` relies on this, but cannot detect violations; " +"it's the programmer's responsibility to ensure it. If a :class:`tzinfo` " +"subclass cannot guarantee this, it may be able to override the default " +"implementation of :meth:`tzinfo.fromutc` to work correctly " +"with :meth:`~.datetime.astimezone` regardless." +msgstr "" + +#: ../../library/datetime.rst:2183 +msgid "" +"Most implementations of :meth:`dst` will probably look like one of these " +"two::" +msgstr "" + +#: ../../library/datetime.rst:2185 +msgid "" +"def dst(self, dt):\n" +" # a fixed-offset class: doesn't account for DST\n" +" return timedelta(0)" +msgstr "" + +#: ../../library/datetime.rst:2189 +msgid "or::" +msgstr "" + +#: ../../library/datetime.rst:2191 +msgid "" +"def dst(self, dt):\n" +" # Code to set dston and dstoff to the time zone's DST\n" +" # transition times based on the input dt.year, and expressed\n" +" # in standard local time.\n" +"\n" +" if dston <= dt.replace(tzinfo=None) < dstoff:\n" +" return timedelta(hours=1)\n" +" else:\n" +" return timedelta(0)" +msgstr "" + +#: ../../library/datetime.rst:2201 +msgid "" +"The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." +msgstr "" + +#: ../../library/datetime.rst:2209 +msgid "" +"Return the time zone name corresponding to the :class:`.datetime` object " +"*dt*, as a string. Nothing about string names is defined by the :mod:`!" +"datetime` module, and there's no requirement that it mean anything in " +"particular. For example, ``\"GMT\"``, ``\"UTC\"``, ``\"-500\"``, " +"``\"-5:00\"``, ``\"EDT\"``, ``\"US/Eastern\"``, ``\"America/New York\"`` are " +"all valid replies. Return ``None`` if a string name isn't known. Note that " +"this is a method rather than a fixed string primarily because " +"some :class:`tzinfo` subclasses will wish to return different names " +"depending on the specific value of *dt* passed, especially if " +"the :class:`tzinfo` class is accounting for daylight time." +msgstr "" + +#: ../../library/datetime.rst:2219 +msgid "" +"The default implementation of :meth:`tzname` " +"raises :exc:`NotImplementedError`." +msgstr "" + +#: ../../library/datetime.rst:2222 +msgid "" +"These methods are called by a :class:`.datetime` or :class:`.time` object, " +"in response to their methods of the same names. A :class:`.datetime` object " +"passes itself as the argument, and a :class:`.time` object passes ``None`` " +"as the argument. A :class:`tzinfo` subclass's methods should therefore be " +"prepared to accept a *dt* argument of ``None``, or of " +"class :class:`.datetime`." +msgstr "" + +#: ../../library/datetime.rst:2228 +msgid "" +"When ``None`` is passed, it's up to the class designer to decide the best " +"response. For example, returning ``None`` is appropriate if the class wishes " +"to say that time objects don't participate in the :class:`tzinfo` protocols. " +"It may be more useful for ``utcoffset(None)`` to return the standard UTC " +"offset, as there is no other convention for discovering the standard offset." +msgstr "" + +#: ../../library/datetime.rst:2234 +msgid "" +"When a :class:`.datetime` object is passed in response to " +"a :class:`.datetime` method, ``dt.tzinfo`` is the same object as " +"*self*. :class:`tzinfo` methods can rely on this, unless user code " +"calls :class:`tzinfo` methods directly. The intent is that " +"the :class:`tzinfo` methods interpret *dt* as being in local time, and not " +"need worry about objects in other time zones." +msgstr "" + +#: ../../library/datetime.rst:2240 +msgid "" +"There is one more :class:`tzinfo` method that a subclass may wish to " +"override:" +msgstr "" + +#: ../../library/datetime.rst:2245 +msgid "" +"This is called from the default :meth:`datetime.astimezone` implementation. " +"When called from that, ``dt.tzinfo`` is *self*, and *dt*'s date and time " +"data are to be viewed as expressing a UTC time. The purpose " +"of :meth:`fromutc` is to adjust the date and time data, returning an " +"equivalent datetime in *self*'s local time." +msgstr "" + +#: ../../library/datetime.rst:2251 +msgid "" +"Most :class:`tzinfo` subclasses should be able to inherit the " +"default :meth:`fromutc` implementation without problems. It's strong enough " +"to handle fixed-offset time zones, and time zones accounting for both " +"standard and daylight time, and the latter even if the DST transition times " +"differ in different years. An example of a time zone the " +"default :meth:`fromutc` implementation may not handle correctly in all cases " +"is one where the standard offset (from UTC) depends on the specific date and " +"time passed, which can happen for political reasons. The default " +"implementations of :meth:`~.datetime.astimezone` and :meth:`fromutc` may not " +"produce the result you want if the result is one of the hours straddling the " +"moment the standard offset changes." +msgstr "" + +#: ../../library/datetime.rst:2262 +msgid "" +"Skipping code for error cases, the default :meth:`fromutc` implementation " +"acts like::" +msgstr "" + +#: ../../library/datetime.rst:2265 +msgid "" +"def fromutc(self, dt):\n" +" # raise ValueError error if dt.tzinfo is not self\n" +" dtoff = dt.utcoffset()\n" +" dtdst = dt.dst()\n" +" # raise ValueError if dtoff is None or dtdst is None\n" +" delta = dtoff - dtdst # this is self's standard offset\n" +" if delta:\n" +" dt += delta # convert to standard local time\n" +" dtdst = dt.dst()\n" +" # raise ValueError if dtdst is None\n" +" if dtdst:\n" +" return dt + dtdst\n" +" else:\n" +" return dt" +msgstr "" + +#: ../../library/datetime.rst:2280 +msgid "" +"In the following :download:`tzinfo_examples.py <../includes/" +"tzinfo_examples.py>` file there are some examples of :class:`tzinfo` classes:" +msgstr "" + +#: ../../library/datetime.rst:2284 +msgid "" +"from datetime import tzinfo, timedelta, datetime\n" +"\n" +"ZERO = timedelta(0)\n" +"HOUR = timedelta(hours=1)\n" +"SECOND = timedelta(seconds=1)\n" +"\n" +"# A class capturing the platform's idea of local time.\n" +"# (May result in wrong values on historical times in\n" +"# timezones where UTC offset and/or the DST rules had\n" +"# changed in the past.)\n" +"import time as _time\n" +"\n" +"STDOFFSET = timedelta(seconds = -_time.timezone)\n" +"if _time.daylight:\n" +" DSTOFFSET = timedelta(seconds = -_time.altzone)\n" +"else:\n" +" DSTOFFSET = STDOFFSET\n" +"\n" +"DSTDIFF = DSTOFFSET - STDOFFSET\n" +"\n" +"class LocalTimezone(tzinfo):\n" +"\n" +" def fromutc(self, dt):\n" +" assert dt.tzinfo is self\n" +" stamp = (dt - datetime(1970, 1, 1, tzinfo=self)) // SECOND\n" +" args = _time.localtime(stamp)[:6]\n" +" dst_diff = DSTDIFF // SECOND\n" +" # Detect fold\n" +" fold = (args == _time.localtime(stamp - dst_diff))\n" +" return datetime(*args, microsecond=dt.microsecond,\n" +" tzinfo=self, fold=fold)\n" +"\n" +" def utcoffset(self, dt):\n" +" if self._isdst(dt):\n" +" return DSTOFFSET\n" +" else:\n" +" return STDOFFSET\n" +"\n" +" def dst(self, dt):\n" +" if self._isdst(dt):\n" +" return DSTDIFF\n" +" else:\n" +" return ZERO\n" +"\n" +" def tzname(self, dt):\n" +" return _time.tzname[self._isdst(dt)]\n" +"\n" +" def _isdst(self, dt):\n" +" tt = (dt.year, dt.month, dt.day,\n" +" dt.hour, dt.minute, dt.second,\n" +" dt.weekday(), 0, 0)\n" +" stamp = _time.mktime(tt)\n" +" tt = _time.localtime(stamp)\n" +" return tt.tm_isdst > 0\n" +"\n" +"Local = LocalTimezone()\n" +"\n" +"\n" +"# A complete implementation of current DST rules for major US time zones.\n" +"\n" +"def first_sunday_on_or_after(dt):\n" +" days_to_go = 6 - dt.weekday()\n" +" if days_to_go:\n" +" dt += timedelta(days_to_go)\n" +" return dt\n" +"\n" +"\n" +"# US DST Rules\n" +"#\n" +"# This is a simplified (i.e., wrong for a few cases) set of rules for US\n" +"# DST start and end times. For a complete and up-to-date set of DST rules\n" +"# and timezone definitions, visit the Olson Database (or try pytz):\n" +"# http://www.twinsun.com/tz/tz-link.htm\n" +"# https://sourceforge.net/projects/pytz/ (might not be up-to-date)\n" +"#\n" +"# In the US, since 2007, DST starts at 2am (standard time) on the second\n" +"# Sunday in March, which is the first Sunday on or after Mar 8.\n" +"DSTSTART_2007 = datetime(1, 3, 8, 2)\n" +"# and ends at 2am (DST time) on the first Sunday of Nov.\n" +"DSTEND_2007 = datetime(1, 11, 1, 2)\n" +"# From 1987 to 2006, DST used to start at 2am (standard time) on the first\n" +"# Sunday in April and to end at 2am (DST time) on the last\n" +"# Sunday of October, which is the first Sunday on or after Oct 25.\n" +"DSTSTART_1987_2006 = datetime(1, 4, 1, 2)\n" +"DSTEND_1987_2006 = datetime(1, 10, 25, 2)\n" +"# From 1967 to 1986, DST used to start at 2am (standard time) on the last\n" +"# Sunday in April (the one on or after April 24) and to end at 2am (DST " +"time)\n" +"# on the last Sunday of October, which is the first Sunday\n" +"# on or after Oct 25.\n" +"DSTSTART_1967_1986 = datetime(1, 4, 24, 2)\n" +"DSTEND_1967_1986 = DSTEND_1987_2006\n" +"\n" +"def us_dst_range(year):\n" +" # Find start and end times for US DST. For years before 1967, return\n" +" # start = end for no DST.\n" +" if 2006 < year:\n" +" dststart, dstend = DSTSTART_2007, DSTEND_2007\n" +" elif 1986 < year < 2007:\n" +" dststart, dstend = DSTSTART_1987_2006, DSTEND_1987_2006\n" +" elif 1966 < year < 1987:\n" +" dststart, dstend = DSTSTART_1967_1986, DSTEND_1967_1986\n" +" else:\n" +" return (datetime(year, 1, 1), ) * 2\n" +"\n" +" start = first_sunday_on_or_after(dststart.replace(year=year))\n" +" end = first_sunday_on_or_after(dstend.replace(year=year))\n" +" return start, end\n" +"\n" +"\n" +"class USTimeZone(tzinfo):\n" +"\n" +" def __init__(self, hours, reprname, stdname, dstname):\n" +" self.stdoffset = timedelta(hours=hours)\n" +" self.reprname = reprname\n" +" self.stdname = stdname\n" +" self.dstname = dstname\n" +"\n" +" def __repr__(self):\n" +" return self.reprname\n" +"\n" +" def tzname(self, dt):\n" +" if self.dst(dt):\n" +" return self.dstname\n" +" else:\n" +" return self.stdname\n" +"\n" +" def utcoffset(self, dt):\n" +" return self.stdoffset + self.dst(dt)\n" +"\n" +" def dst(self, dt):\n" +" if dt is None or dt.tzinfo is None:\n" +" # An exception may be sensible here, in one or both cases.\n" +" # It depends on how you want to treat them. The default\n" +" # fromutc() implementation (called by the default astimezone()\n" +" # implementation) passes a datetime with dt.tzinfo is self.\n" +" return ZERO\n" +" assert dt.tzinfo is self\n" +" start, end = us_dst_range(dt.year)\n" +" # Can't compare naive to aware objects, so strip the timezone from\n" +" # dt first.\n" +" dt = dt.replace(tzinfo=None)\n" +" if start + HOUR <= dt < end - HOUR:\n" +" # DST is in effect.\n" +" return HOUR\n" +" if end - HOUR <= dt < end:\n" +" # Fold (an ambiguous hour): use dt.fold to disambiguate.\n" +" return ZERO if dt.fold else HOUR\n" +" if start <= dt < start + HOUR:\n" +" # Gap (a non-existent hour): reverse the fold rule.\n" +" return HOUR if dt.fold else ZERO\n" +" # DST is off.\n" +" return ZERO\n" +"\n" +" def fromutc(self, dt):\n" +" assert dt.tzinfo is self\n" +" start, end = us_dst_range(dt.year)\n" +" start = start.replace(tzinfo=self)\n" +" end = end.replace(tzinfo=self)\n" +" std_time = dt + self.stdoffset\n" +" dst_time = std_time + HOUR\n" +" if end <= dst_time < end + HOUR:\n" +" # Repeated hour\n" +" return std_time.replace(fold=1)\n" +" if std_time < start or dst_time >= end:\n" +" # Standard time\n" +" return std_time\n" +" if start <= std_time < end - HOUR:\n" +" # Daylight saving time\n" +" return dst_time\n" +"\n" +"\n" +"Eastern = USTimeZone(-5, \"Eastern\", \"EST\", \"EDT\")\n" +"Central = USTimeZone(-6, \"Central\", \"CST\", \"CDT\")\n" +"Mountain = USTimeZone(-7, \"Mountain\", \"MST\", \"MDT\")\n" +"Pacific = USTimeZone(-8, \"Pacific\", \"PST\", \"PDT\")\n" +msgstr "" + +#: ../../library/datetime.rst:2286 +msgid "" +"Note that there are unavoidable subtleties twice per year in " +"a :class:`tzinfo` subclass accounting for both standard and daylight time, " +"at the DST transition points. For concreteness, consider US Eastern (UTC " +"-0500), where EDT begins the minute after 1:59 (EST) on the second Sunday in " +"March, and ends the minute after 1:59 (EDT) on the first Sunday in November::" +msgstr "" + +#: ../../library/datetime.rst:2292 +msgid "" +" UTC 3:MM 4:MM 5:MM 6:MM 7:MM 8:MM\n" +" EST 22:MM 23:MM 0:MM 1:MM 2:MM 3:MM\n" +" EDT 23:MM 0:MM 1:MM 2:MM 3:MM 4:MM\n" +"\n" +"start 22:MM 23:MM 0:MM 1:MM 3:MM 4:MM\n" +"\n" +" end 23:MM 0:MM 1:MM 1:MM 2:MM 3:MM" +msgstr "" + +#: ../../library/datetime.rst:2300 +msgid "" +"When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " +"to 3:00. A wall time of the form 2:MM doesn't really make sense on that day, " +"so ``astimezone(Eastern)`` won't deliver a result with ``hour == 2`` on the " +"day DST begins. For example, at the Spring forward transition of 2016, we " +"get::" +msgstr "" + +#: ../../library/datetime.rst:2305 +msgid "" +">>> from datetime import datetime, timezone\n" +">>> from tzinfo_examples import HOUR, Eastern\n" +">>> u0 = datetime(2016, 3, 13, 5, tzinfo=timezone.utc)\n" +">>> for i in range(4):\n" +"... u = u0 + i*HOUR\n" +"... t = u.astimezone(Eastern)\n" +"... print(u.time(), 'UTC =', t.time(), t.tzname())\n" +"...\n" +"05:00:00 UTC = 00:00:00 EST\n" +"06:00:00 UTC = 01:00:00 EST\n" +"07:00:00 UTC = 03:00:00 EDT\n" +"08:00:00 UTC = 04:00:00 EDT" +msgstr "" + +#: ../../library/datetime.rst:2319 +msgid "" +"When DST ends (the \"end\" line), there's a potentially worse problem: " +"there's an hour that can't be spelled unambiguously in local wall time: the " +"last hour of daylight time. In Eastern, that's times of the form 5:MM UTC on " +"the day daylight time ends. The local wall clock leaps from 1:59 (daylight " +"time) back to 1:00 (standard time) again. Local times of the form 1:MM are " +"ambiguous. :meth:`~.datetime.astimezone` mimics the local clock's behavior " +"by mapping two adjacent UTC hours into the same local hour then. In the " +"Eastern example, UTC times of the form 5:MM and 6:MM both map to 1:MM when " +"converted to Eastern, but earlier times have the :attr:`~.datetime.fold` " +"attribute set to 0 and the later times have it set to 1. For example, at the " +"Fall back transition of 2016, we get::" +msgstr "" + +#: ../../library/datetime.rst:2330 +msgid "" +">>> u0 = datetime(2016, 11, 6, 4, tzinfo=timezone.utc)\n" +">>> for i in range(4):\n" +"... u = u0 + i*HOUR\n" +"... t = u.astimezone(Eastern)\n" +"... print(u.time(), 'UTC =', t.time(), t.tzname(), t.fold)\n" +"...\n" +"04:00:00 UTC = 00:00:00 EDT 0\n" +"05:00:00 UTC = 01:00:00 EDT 0\n" +"06:00:00 UTC = 01:00:00 EST 1\n" +"07:00:00 UTC = 02:00:00 EST 0" +msgstr "" + +#: ../../library/datetime.rst:2341 +msgid "" +"Note that the :class:`.datetime` instances that differ only by the value of " +"the :attr:`~.datetime.fold` attribute are considered equal in comparisons." +msgstr "" + +#: ../../library/datetime.rst:2344 +msgid "" +"Applications that can't bear wall-time ambiguities should explicitly check " +"the value of the :attr:`~.datetime.fold` attribute or avoid using " +"hybrid :class:`tzinfo` subclasses; there are no ambiguities when " +"using :class:`timezone`, or any other fixed-offset :class:`tzinfo` subclass " +"(such as a class representing only EST (fixed offset -5 hours), or only EDT " +"(fixed offset -4 hours))." +msgstr "" + +#: ../../library/datetime.rst:2352 +msgid ":mod:`zoneinfo`" +msgstr "" + +#: ../../library/datetime.rst:2353 +msgid "" +"The :mod:`!datetime` module has a basic :class:`timezone` class (for " +"handling arbitrary fixed offsets from UTC) and its :attr:`timezone.utc` " +"attribute (a UTC :class:`!timezone` instance)." +msgstr "" + +#: ../../library/datetime.rst:2357 +msgid "" +"``zoneinfo`` brings the *IANA time zone database* (also known as the Olson " +"database) to Python, and its usage is recommended." +msgstr "" + +#: ../../library/datetime.rst:2360 +msgid "`IANA time zone database `_" +msgstr "" + +#: ../../library/datetime.rst:2361 +msgid "" +"The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " +"and data that represent the history of local time for many representative " +"locations around the globe. It is updated periodically to reflect changes " +"made by political bodies to time zone boundaries, UTC offsets, and daylight-" +"saving rules." +msgstr "" + +#: ../../library/datetime.rst:2371 +msgid ":class:`timezone` Objects" +msgstr "" + +#: ../../library/datetime.rst:2373 +msgid "" +"The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " +"of which represents a time zone defined by a fixed offset from UTC." +msgstr "" + +#: ../../library/datetime.rst:2377 +msgid "" +"Objects of this class cannot be used to represent time zone information in " +"the locations where different offsets are used in different days of the year " +"or where historical changes have been made to civil time." +msgstr "" + +#: ../../library/datetime.rst:2384 +msgid "" +"The *offset* argument must be specified as a :class:`timedelta` object " +"representing the difference between the local time and UTC. It must be " +"strictly between ``-timedelta(hours=24)`` and ``timedelta(hours=24)``, " +"otherwise :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/datetime.rst:2389 +msgid "" +"The *name* argument is optional. If specified it must be a string that will " +"be used as the value returned by the :meth:`datetime.tzname` method." +msgstr "" + +#: ../../library/datetime.rst:2400 ../../library/datetime.rst:2411 +msgid "" +"Return the fixed value specified when the :class:`timezone` instance is " +"constructed." +msgstr "" + +#: ../../library/datetime.rst:2403 +msgid "" +"The *dt* argument is ignored. The return value is a :class:`timedelta` " +"instance equal to the difference between the local time and UTC." +msgstr "" + +#: ../../library/datetime.rst:2414 +msgid "" +"If *name* is not provided in the constructor, the name returned by " +"``tzname(dt)`` is generated from the value of the ``offset`` as follows. If " +"*offset* is ``timedelta(0)``, the name is \"UTC\", otherwise it is a string " +"in the format ``UTC±HH:MM``, where ± is the sign of ``offset``, HH and MM " +"are two digits of ``offset.hours`` and ``offset.minutes`` respectively." +msgstr "" + +#: ../../library/datetime.rst:2420 +msgid "" +"Name generated from ``offset=timedelta(0)`` is now plain ``'UTC'``, not " +"``'UTC+00:00'``." +msgstr "" + +#: ../../library/datetime.rst:2427 +msgid "Always returns ``None``." +msgstr "" + +#: ../../library/datetime.rst:2431 +msgid "" +"Return ``dt + offset``. The *dt* argument must be an " +"aware :class:`.datetime` instance, with ``tzinfo`` set to ``self``." +msgstr "" + +#: ../../library/datetime.rst:2438 +msgid "The UTC time zone, ``timezone(timedelta(0))``." +msgstr "" + +#: ../../library/datetime.rst:2447 +msgid ":meth:`~.datetime.strftime` and :meth:`~.datetime.strptime` Behavior" +msgstr "" + +#: ../../library/datetime.rst:2449 +msgid "" +":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " +"``strftime(format)`` method, to create a string representing the time under " +"the control of an explicit format string." +msgstr "" + +#: ../../library/datetime.rst:2453 +msgid "" +"Conversely, the :meth:`date.strptime`, :meth:`datetime.strptime` " +"and :meth:`time.strptime` class methods create an object from a string " +"representing the time and a corresponding format string." +msgstr "" + +#: ../../library/datetime.rst:2457 +msgid "" +"The table below provides a high-level comparison " +"of :meth:`~.datetime.strftime` versus :meth:`~.datetime.strptime`:" +msgstr "" + +#: ../../library/datetime.rst:2461 +msgid "``strftime``" +msgstr "``strftime``" + +#: ../../library/datetime.rst:2461 +msgid "``strptime``" +msgstr "``strptime``" + +#: ../../library/datetime.rst:2463 +msgid "Usage" +msgstr "" + +#: ../../library/datetime.rst:2463 +msgid "Convert object to a string according to a given format" +msgstr "" + +#: ../../library/datetime.rst:2463 +msgid "Parse a string into an object given a corresponding format" +msgstr "" + +#: ../../library/datetime.rst:2465 +msgid "Type of method" +msgstr "" + +#: ../../library/datetime.rst:2465 +msgid "Instance method" +msgstr "" + +#: ../../library/datetime.rst:2465 +msgid "Class method" +msgstr "" + +#: ../../library/datetime.rst:2467 +msgid "Signature" +msgstr "" + +#: ../../library/datetime.rst:2467 +msgid "``strftime(format)``" +msgstr "``strftime(format)``" + +#: ../../library/datetime.rst:2467 +msgid "``strptime(date_string, format)``" +msgstr "" + +#: ../../library/datetime.rst:2474 +msgid "" +":meth:`~.datetime.strftime` and :meth:`~.datetime.strptime` Format Codes" +msgstr "" + +#: ../../library/datetime.rst:2476 +msgid "" +"These methods accept format codes that can be used to parse and format " +"dates::" +msgstr "" + +#: ../../library/datetime.rst:2478 +msgid "" +">>> datetime.strptime('31/01/22 23:59:59.999999',\n" +"... '%d/%m/%y %H:%M:%S.%f')\n" +"datetime.datetime(2022, 1, 31, 23, 59, 59, 999999)\n" +">>> _.strftime('%a %d %b %Y, %I:%M%p')\n" +"'Mon 31 Jan 2022, 11:59PM'" +msgstr "" + +#: ../../library/datetime.rst:2484 +msgid "" +"The following is a list of all the format codes that the 1989 C standard " +"requires, and these work on all platforms with a standard C implementation." +msgstr "" + +#: ../../library/datetime.rst:2488 ../../library/datetime.rst:2591 +msgid "Directive" +msgstr "" + +#: ../../library/datetime.rst:2488 ../../library/datetime.rst:2591 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/datetime.rst:2488 ../../library/datetime.rst:2591 +msgid "Example" +msgstr "" + +#: ../../library/datetime.rst:2488 ../../library/datetime.rst:2591 +msgid "Notes" +msgstr "" + +#: ../../library/datetime.rst:2490 +msgid "``%a``" +msgstr "``%a``" + +#: ../../library/datetime.rst:2490 +msgid "Weekday as locale's abbreviated name." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Sun, Mon, ..., Sat (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "So, Mo, ..., Sa (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2495 +msgid "``%A``" +msgstr "``%A``" + +#: ../../library/datetime.rst:2495 +msgid "Weekday as locale's full name." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Sunday, Monday, ..., Saturday (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Sonntag, Montag, ..., Samstag (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2500 +msgid "``%w``" +msgstr "``%w``" + +#: ../../library/datetime.rst:2500 +msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." +msgstr "" + +#: ../../library/datetime.rst:2500 +msgid "0, 1, ..., 6" +msgstr "" + +#: ../../library/datetime.rst:2504 +msgid "``%d``" +msgstr "``%d``" + +#: ../../library/datetime.rst:2504 +msgid "Day of the month as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2504 +msgid "01, 02, ..., 31" +msgstr "" + +#: ../../library/datetime.rst:2504 ../../library/datetime.rst:2517 +#: ../../library/datetime.rst:2520 ../../library/datetime.rst:2526 +#: ../../library/datetime.rst:2529 ../../library/datetime.rst:2535 +#: ../../library/datetime.rst:2553 +msgid "\\(9)" +msgstr "" + +#: ../../library/datetime.rst:2507 +msgid "``%b``" +msgstr "``%b``" + +#: ../../library/datetime.rst:2507 +msgid "Month as locale's abbreviated name." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Jan, Feb, ..., Dec (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Jan, Feb, ..., Dez (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2512 +msgid "``%B``" +msgstr "``%B``" + +#: ../../library/datetime.rst:2512 +msgid "Month as locale's full name." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "January, February, ..., December (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Januar, Februar, ..., Dezember (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2517 +msgid "``%m``" +msgstr "``%m``" + +#: ../../library/datetime.rst:2517 +msgid "Month as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2517 ../../library/datetime.rst:2529 +msgid "01, 02, ..., 12" +msgstr "" + +#: ../../library/datetime.rst:2520 +msgid "``%y``" +msgstr "``%y``" + +#: ../../library/datetime.rst:2520 +msgid "Year without century as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2520 +msgid "00, 01, ..., 99" +msgstr "" + +#: ../../library/datetime.rst:2523 +msgid "``%Y``" +msgstr "``%Y``" + +#: ../../library/datetime.rst:2523 +msgid "Year with century as a decimal number." +msgstr "" + +#: ../../library/datetime.rst:2523 ../../library/datetime.rst:2593 +msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" +msgstr "" + +#: ../../library/datetime.rst:2526 +msgid "``%H``" +msgstr "``%H``" + +#: ../../library/datetime.rst:2526 +msgid "Hour (24-hour clock) as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2526 +msgid "00, 01, ..., 23" +msgstr "" + +#: ../../library/datetime.rst:2529 +msgid "``%I``" +msgstr "``%I``" + +#: ../../library/datetime.rst:2529 +msgid "Hour (12-hour clock) as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2532 +msgid "``%p``" +msgstr "``%p``" + +#: ../../library/datetime.rst:2532 +msgid "Locale's equivalent of either AM or PM." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "AM, PM (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "am, pm (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2532 +msgid "\\(1), \\(3)" +msgstr "" + +#: ../../library/datetime.rst:2535 +msgid "``%M``" +msgstr "``%M``" + +#: ../../library/datetime.rst:2535 +msgid "Minute as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2535 ../../library/datetime.rst:2538 +msgid "00, 01, ..., 59" +msgstr "" + +#: ../../library/datetime.rst:2538 +msgid "``%S``" +msgstr "``%S``" + +#: ../../library/datetime.rst:2538 +msgid "Second as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2538 +msgid "\\(4), \\(9)" +msgstr "" + +#: ../../library/datetime.rst:2541 +msgid "``%f``" +msgstr "``%f``" + +#: ../../library/datetime.rst:2541 +msgid "Microsecond as a decimal number, zero-padded to 6 digits." +msgstr "" + +#: ../../library/datetime.rst:2541 +msgid "000000, 000001, ..., 999999" +msgstr "" + +#: ../../library/datetime.rst:2541 +msgid "\\(5)" +msgstr "" + +#: ../../library/datetime.rst:2545 ../../library/datetime.rst:2704 +msgid "``%z``" +msgstr "``%z``" + +#: ../../library/datetime.rst:2545 +msgid "" +"UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " +"naive)." +msgstr "" + +#: ../../library/datetime.rst:2545 +msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" +msgstr "" + +#: ../../library/datetime.rst:2545 ../../library/datetime.rst:2550 +#: ../../library/datetime.rst:2607 +msgid "\\(6)" +msgstr "" + +#: ../../library/datetime.rst:2550 ../../library/datetime.rst:2730 +msgid "``%Z``" +msgstr "``%Z``" + +#: ../../library/datetime.rst:2550 +msgid "Time zone name (empty string if the object is naive)." +msgstr "" + +#: ../../library/datetime.rst:2550 +msgid "(empty), UTC, GMT" +msgstr "" + +#: ../../library/datetime.rst:2553 +msgid "``%j``" +msgstr "``%j``" + +#: ../../library/datetime.rst:2553 +msgid "Day of the year as a zero-padded decimal number." +msgstr "" + +#: ../../library/datetime.rst:2553 +msgid "001, 002, ..., 366" +msgstr "" + +#: ../../library/datetime.rst:2556 +msgid "``%U``" +msgstr "``%U``" + +#: ../../library/datetime.rst:2556 +msgid "" +"Week number of the year (Sunday as the first day of the week) as a zero-" +"padded decimal number. All days in a new year preceding the first Sunday are " +"considered to be in week 0." +msgstr "" + +#: ../../library/datetime.rst:2556 ../../library/datetime.rst:2564 +msgid "00, 01, ..., 53" +msgstr "" + +#: ../../library/datetime.rst:2556 ../../library/datetime.rst:2564 +msgid "\\(7), \\(9)" +msgstr "" + +#: ../../library/datetime.rst:2564 +msgid "``%W``" +msgstr "``%W``" + +#: ../../library/datetime.rst:2564 +msgid "" +"Week number of the year (Monday as the first day of the week) as a zero-" +"padded decimal number. All days in a new year preceding the first Monday are " +"considered to be in week 0." +msgstr "" + +#: ../../library/datetime.rst:2572 +msgid "``%c``" +msgstr "``%c``" + +#: ../../library/datetime.rst:2572 +msgid "Locale's appropriate date and time representation." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Tue Aug 16 21:30:00 1988 (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "Di 16 Aug 21:30:00 1988 (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2577 +msgid "``%x``" +msgstr "``%x``" + +#: ../../library/datetime.rst:2577 +msgid "Locale's appropriate date representation." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "08/16/88 (None);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "08/16/1988 (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "16.08.1988 (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2581 +msgid "``%X``" +msgstr "``%X``" + +#: ../../library/datetime.rst:2581 +msgid "Locale's appropriate time representation." +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "21:30:00 (en_US);" +msgstr "" + +#: ../../library/datetime.rst:0 +msgid "21:30:00 (de_DE)" +msgstr "" + +#: ../../library/datetime.rst:2584 +msgid "``%%``" +msgstr "``%%``" + +#: ../../library/datetime.rst:2584 +msgid "A literal ``'%'`` character." +msgstr "" + +#: ../../library/datetime.rst:2584 +msgid "%" +msgstr "" + +#: ../../library/datetime.rst:2587 +msgid "" +"Several additional directives not required by the C89 standard are included " +"for convenience. These parameters all correspond to ISO 8601 date values." +msgstr "" + +#: ../../library/datetime.rst:2593 +msgid "``%G``" +msgstr "``%G``" + +#: ../../library/datetime.rst:2593 +msgid "" +"ISO 8601 year with century representing the year that contains the greater " +"part of the ISO week (``%V``)." +msgstr "" + +#: ../../library/datetime.rst:2593 +msgid "\\(8)" +msgstr "" + +#: ../../library/datetime.rst:2598 +msgid "``%u``" +msgstr "``%u``" + +#: ../../library/datetime.rst:2598 +msgid "ISO 8601 weekday as a decimal number where 1 is Monday." +msgstr "" + +#: ../../library/datetime.rst:2598 +msgid "1, 2, ..., 7" +msgstr "" + +#: ../../library/datetime.rst:2601 +msgid "``%V``" +msgstr "``%V``" + +#: ../../library/datetime.rst:2601 +msgid "" +"ISO 8601 week as a decimal number with Monday as the first day of the week. " +"Week 01 is the week containing Jan 4." +msgstr "" + +#: ../../library/datetime.rst:2601 +msgid "01, 02, ..., 53" +msgstr "" + +#: ../../library/datetime.rst:2601 +msgid "\\(8), \\(9)" +msgstr "" + +#: ../../library/datetime.rst:2607 ../../library/datetime.rst:2726 +msgid "``%:z``" +msgstr "``%:z``" + +#: ../../library/datetime.rst:2607 +msgid "" +"UTC offset in the form ``±HH:MM[:SS[.ffffff]]`` (empty string if the object " +"is naive)." +msgstr "" + +#: ../../library/datetime.rst:2607 +msgid "(empty), +00:00, -04:00, +10:30, +06:34:15, -03:07:12.345216" +msgstr "" + +#: ../../library/datetime.rst:2613 +msgid "" +"These may not be available on all platforms when used with " +"the :meth:`~.datetime.strftime` method. The ISO 8601 year and ISO 8601 week " +"directives are not interchangeable with the year and week number directives " +"above. Calling :meth:`~.datetime.strptime` with incomplete or ambiguous ISO " +"8601 directives will raise a :exc:`ValueError`." +msgstr "" + +#: ../../library/datetime.rst:2618 +msgid "" +"The full set of format codes supported varies across platforms, because " +"Python calls the platform C library's :c:func:`strftime` function, and " +"platform variations are common. To see the full set of format codes " +"supported on your platform, consult the :manpage:`strftime(3)` " +"documentation. There are also differences between platforms in handling of " +"unsupported format specifiers." +msgstr "" + +#: ../../library/datetime.rst:2624 +msgid "``%G``, ``%u`` and ``%V`` were added." +msgstr "" + +#: ../../library/datetime.rst:2627 +msgid "``%:z`` was added." +msgstr "" + +#: ../../library/datetime.rst:2631 +msgid "Technical Detail" +msgstr "" + +#: ../../library/datetime.rst:2633 +msgid "" +"Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " +"``time.strftime(fmt, d.timetuple())`` although not all objects support " +"a :meth:`~date.timetuple` method." +msgstr "" + +#: ../../library/datetime.rst:2637 +msgid "" +"For the :meth:`.datetime.strptime` class method, the default value is " +"``1900-01-01T00:00:00.000``: any components not specified in the format " +"string will be pulled from the default value. [#]_" +msgstr "" + +#: ../../library/datetime.rst:2641 +msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" +msgstr "" + +#: ../../library/datetime.rst:2645 +msgid "" +"except when the format includes sub-second components or time zone offset " +"information, which are supported in ``datetime.strptime`` but are discarded " +"by ``time.strptime``." +msgstr "" + +#: ../../library/datetime.rst:2649 +msgid "" +"For :class:`.time` objects, the format codes for year, month, and day should " +"not be used, as :class:`!time` objects have no such values. If they're used " +"anyway, 1900 is substituted for the year, and 1 for the month and day." +msgstr "" + +#: ../../library/datetime.rst:2653 +msgid "" +"For :class:`date` objects, the format codes for hours, minutes, seconds, and " +"microseconds should not be used, as :class:`date` objects have no such " +"values. If they're used anyway, 0 is substituted for them." +msgstr "" + +#: ../../library/datetime.rst:2657 +msgid "" +"For the same reason, handling of format strings containing Unicode code " +"points that can't be represented in the charset of the current locale is " +"also platform-dependent. On some platforms such code points are preserved " +"intact in the output, while on others ``strftime`` may " +"raise :exc:`UnicodeError` or return an empty string instead." +msgstr "" + +#: ../../library/datetime.rst:2666 +msgid "" +"Because the format depends on the current locale, care should be taken when " +"making assumptions about the output value. Field orderings will vary (for " +"example, \"month/day/year\" versus \"day/month/year\"), and the output may " +"contain non-ASCII characters." +msgstr "" + +#: ../../library/datetime.rst:2672 +msgid "" +"The :meth:`~.datetime.strptime` method can parse years in the full [1, 9999] " +"range, but years < 1000 must be zero-filled to 4-digit width." +msgstr "" + +#: ../../library/datetime.rst:2675 +msgid "" +"In previous versions, :meth:`~.datetime.strftime` method was restricted to " +"years >= 1900." +msgstr "" + +#: ../../library/datetime.rst:2679 +msgid "" +"In version 3.2, :meth:`~.datetime.strftime` method was restricted to years " +">= 1000." +msgstr "" + +#: ../../library/datetime.rst:2684 +msgid "" +"When used with the :meth:`~.datetime.strptime` method, the ``%p`` directive " +"only affects the output hour field if the ``%I`` directive is used to parse " +"the hour." +msgstr "" + +#: ../../library/datetime.rst:2688 +msgid "" +"Unlike the :mod:`time` module, the :mod:`!datetime` module does not support " +"leap seconds." +msgstr "" + +#: ../../library/datetime.rst:2692 +msgid "" +"When used with the :meth:`~.datetime.strptime` method, the ``%f`` directive " +"accepts from one to six digits and zero pads on the right. ``%f`` is an " +"extension to the set of format characters in the C standard (but implemented " +"separately in datetime objects, and therefore always available)." +msgstr "" + +#: ../../library/datetime.rst:2699 +msgid "" +"For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced " +"by empty strings." +msgstr "" + +#: ../../library/datetime.rst:2702 +msgid "For an aware object:" +msgstr "" + +#: ../../library/datetime.rst:2705 +msgid "" +":meth:`~.datetime.utcoffset` is transformed into a string of the form " +"``±HHMM[SS[.ffffff]]``, where ``HH`` is a 2-digit string giving the number " +"of UTC offset hours, ``MM`` is a 2-digit string giving the number of UTC " +"offset minutes, ``SS`` is a 2-digit string giving the number of UTC offset " +"seconds and ``ffffff`` is a 6-digit string giving the number of UTC offset " +"microseconds. The ``ffffff`` part is omitted when the offset is a whole " +"number of seconds and both the ``ffffff`` and the ``SS`` part is omitted " +"when the offset is a whole number of minutes. For example, " +"if :meth:`~.datetime.utcoffset` returns ``timedelta(hours=-3, " +"minutes=-30)``, ``%z`` is replaced with the string ``'-0330'``." +msgstr "" + +#: ../../library/datetime.rst:2719 +msgid "" +"When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " +"method, the UTC offsets can have a colon as a separator between hours, " +"minutes and seconds. For example, ``'+01:00:00'`` will be parsed as an " +"offset of one hour. In addition, providing ``'Z'`` is identical to " +"``'+00:00'``." +msgstr "" + +#: ../../library/datetime.rst:2727 +msgid "" +"Behaves exactly as ``%z``, but has a colon separator added between hours, " +"minutes and seconds." +msgstr "" + +#: ../../library/datetime.rst:2731 +msgid "" +"In :meth:`~.datetime.strftime`, ``%Z`` is replaced by an empty string " +"if :meth:`~.datetime.tzname` returns ``None``; otherwise ``%Z`` is replaced " +"by the returned value, which must be a string." +msgstr "" + +#: ../../library/datetime.rst:2735 +msgid ":meth:`~.datetime.strptime` only accepts certain values for ``%Z``:" +msgstr "" + +#: ../../library/datetime.rst:2737 +msgid "any value in ``time.tzname`` for your machine's locale" +msgstr "" + +#: ../../library/datetime.rst:2738 +msgid "the hard-coded values ``UTC`` and ``GMT``" +msgstr "" + +#: ../../library/datetime.rst:2740 +msgid "" +"So someone living in Japan may have ``JST``, ``UTC``, and ``GMT`` as valid " +"values, but probably not ``EST``. It will raise ``ValueError`` for invalid " +"values." +msgstr "" + +#: ../../library/datetime.rst:2744 +msgid "" +"When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " +"method, an aware :class:`.datetime` object will be produced. The ``tzinfo`` " +"of the result will be set to a :class:`timezone` instance." +msgstr "" + +#: ../../library/datetime.rst:2750 +msgid "" +"When used with the :meth:`~.datetime.strptime` method, ``%U`` and ``%W`` are " +"only used in calculations when the day of the week and the calendar year " +"(``%Y``) are specified." +msgstr "" + +#: ../../library/datetime.rst:2755 +msgid "" +"Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " +"day of the week and the ISO year (``%G``) are specified in " +"a :meth:`~.datetime.strptime` format string. Also note that ``%G`` and " +"``%Y`` are not interchangeable." +msgstr "" + +#: ../../library/datetime.rst:2761 +msgid "" +"When used with the :meth:`~.datetime.strptime` method, the leading zero is " +"optional for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, " +"``%j``, ``%U``, ``%W``, and ``%V``. Format ``%y`` does require a leading " +"zero." +msgstr "" + +#: ../../library/datetime.rst:2766 +msgid "" +"When parsing a month and day using :meth:`~.datetime.strptime`, always " +"include a year in the format. If the value you need to parse lacks a year, " +"append an explicit dummy leap year. Otherwise your code will raise an " +"exception when it encounters leap day because the default year used by the " +"parser is not a leap year. Users run into this bug every four years..." +msgstr "" + +#: ../../library/datetime.rst:2772 +msgid "" +">>> month_day = \"02/29\"\n" +">>> datetime.strptime(f\"{month_day};1984\", \"%m/%d;%Y\") # No leap year " +"bug.\n" +"datetime.datetime(1984, 2, 29, 0, 0)" +msgstr "" + +#: ../../library/datetime.rst:2778 +msgid "" +":meth:`~.datetime.strptime` calls using a format string containing a day of " +"month without a year now emit a :exc:`DeprecationWarning`. In 3.15 or later " +"we may change this into an error or change the default year to a leap year. " +"See :gh:`70647`." +msgstr "" + +#: ../../library/datetime.rst:2785 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/datetime.rst:2786 +msgid "If, that is, we ignore the effects of Relativity" +msgstr "" + +#: ../../library/datetime.rst:2788 +msgid "" +"This matches the definition of the \"proleptic Gregorian\" calendar in " +"Dershowitz and Reingold's book *Calendrical Calculations*, where it's the " +"base calendar for all computations. See the book for algorithms for " +"converting between proleptic Gregorian ordinals and many other calendar " +"systems." +msgstr "" + +#: ../../library/datetime.rst:2794 +msgid "" +"See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " +"`_ for a good explanation." +msgstr "" + +#: ../../library/datetime.rst:2798 +msgid "" +"Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since 1900 is not " +"a leap year." +msgstr "" + +#: ../../library/datetime.rst:2441 +msgid "% (percent)" +msgstr "" + +#: ../../library/datetime.rst:2441 +msgid "datetime format" +msgstr "" diff --git a/library/dbm.po b/library/dbm.po new file mode 100644 index 0000000..2032d24 --- /dev/null +++ b/library/dbm.po @@ -0,0 +1,600 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/dbm.rst:2 +msgid ":mod:`!dbm` --- Interfaces to Unix \"databases\"" +msgstr "" + +#: ../../library/dbm.rst:7 +msgid "**Source code:** :source:`Lib/dbm/__init__.py`" +msgstr "" + +#: ../../library/dbm.rst:11 +msgid ":mod:`dbm` is a generic interface to variants of the DBM database:" +msgstr "" + +#: ../../library/dbm.rst:13 +msgid ":mod:`dbm.sqlite3`" +msgstr "" + +#: ../../library/dbm.rst:14 +msgid ":mod:`dbm.gnu`" +msgstr "" + +#: ../../library/dbm.rst:15 +msgid ":mod:`dbm.ndbm`" +msgstr "" + +#: ../../library/dbm.rst:17 +msgid "" +"If none of these modules are installed, the slow-but-simple implementation " +"in module :mod:`dbm.dumb` will be used. There is a `third party interface " +"`_ to the Oracle Berkeley DB." +msgstr "" + +#: ../../library/dbm.rst:24 +msgid "" +"A tuple containing the exceptions that can be raised by each of the " +"supported modules, with a unique exception also named :exc:`dbm.error` as " +"the first item --- the latter is used when :exc:`dbm.error` is raised." +msgstr "" + +#: ../../library/dbm.rst:31 +msgid "" +"This function attempts to guess which of the several simple database modules " +"available --- :mod:`dbm.sqlite3`, :mod:`dbm.gnu`, :mod:`dbm.ndbm`, " +"or :mod:`dbm.dumb` --- should be used to open a given file." +msgstr "" + +#: ../../library/dbm.rst:35 +msgid "Return one of the following values:" +msgstr "" + +#: ../../library/dbm.rst:37 +msgid "" +"``None`` if the file can't be opened because it's unreadable or doesn't exist" +msgstr "" + +#: ../../library/dbm.rst:38 +msgid "the empty string (``''``) if the file's format can't be guessed" +msgstr "" + +#: ../../library/dbm.rst:39 +msgid "" +"a string containing the required module name, such as ``'dbm.ndbm'`` or " +"``'dbm.gnu'``" +msgstr "" + +#: ../../library/dbm.rst:41 ../../library/dbm.rst:250 ../../library/dbm.rst:448 +msgid "*filename* accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/dbm.rst:65 +msgid "Open a database and return the corresponding database object." +msgstr "" + +#: ../../library/dbm.rst:0 +msgid "Parameters" +msgstr "" + +#: ../../library/dbm.rst:67 +msgid "" +"The database file to open. If the database file already exists, " +"the :func:`whichdb` function is used to determine its type and the " +"appropriate module is used; if it does not exist, the first submodule listed " +"above that can be imported is used." +msgstr "" + +#: ../../library/dbm.rst:68 ../../library/dbm.rst:222 +msgid "The database file to open." +msgstr "" + +#: ../../library/dbm.rst:70 +msgid "" +"If the database file already exists, the :func:`whichdb` function is used to " +"determine its type and the appropriate module is used; if it does not exist, " +"the first submodule listed above that can be imported is used." +msgstr "" + +#: ../../library/dbm.rst:75 ../../library/dbm.rst:178 ../../library/dbm.rst:353 +msgid "" +"* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " +"``'n'``: |flag_n|" +msgstr "" + +#: ../../library/dbm.rst:76 ../../library/dbm.rst:180 ../../library/dbm.rst:227 +#: ../../library/dbm.rst:354 +msgid "``'r'`` (default): |flag_r|" +msgstr "" + +#: ../../library/dbm.rst:77 ../../library/dbm.rst:181 ../../library/dbm.rst:228 +#: ../../library/dbm.rst:355 ../../library/dbm.rst:429 +msgid "``'w'``: |flag_w|" +msgstr "" + +#: ../../library/dbm.rst:78 ../../library/dbm.rst:182 ../../library/dbm.rst:229 +#: ../../library/dbm.rst:356 +msgid "``'c'``: |flag_c|" +msgstr "" + +#: ../../library/dbm.rst:79 ../../library/dbm.rst:183 ../../library/dbm.rst:230 +#: ../../library/dbm.rst:357 ../../library/dbm.rst:431 +msgid "``'n'``: |flag_n|" +msgstr "" + +#: ../../library/dbm.rst:81 ../../library/dbm.rst:244 ../../library/dbm.rst:359 +#: ../../library/dbm.rst:433 +msgid "|mode_param_doc|" +msgstr "" + +#: ../../library/dbm.rst:84 +msgid "*file* accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/dbm.rst:87 +msgid "" +"The object returned by :func:`~dbm.open` supports the same basic " +"functionality as a :class:`dict`; keys and their corresponding values can be " +"stored, retrieved, and deleted, and the :keyword:`in` operator and " +"the :meth:`!keys` method are available, as well as :meth:`!get` and :meth:`!" +"setdefault` methods." +msgstr "" + +#: ../../library/dbm.rst:92 +msgid "" +"Key and values are always stored as :class:`bytes`. This means that when " +"strings are used they are implicitly converted to the default encoding " +"before being stored." +msgstr "" + +#: ../../library/dbm.rst:96 +msgid "" +"These objects also support being used in a :keyword:`with` statement, which " +"will automatically close them when done." +msgstr "" + +#: ../../library/dbm.rst:99 +msgid "" +":meth:`!get` and :meth:`!setdefault` methods are now available for " +"all :mod:`dbm` backends." +msgstr "" + +#: ../../library/dbm.rst:103 +msgid "" +"Added native support for the context management protocol to the objects " +"returned by :func:`~dbm.open`." +msgstr "" + +#: ../../library/dbm.rst:107 +msgid "" +"Deleting a key from a read-only database raises a database module specific " +"exception instead of :exc:`KeyError`." +msgstr "" + +#: ../../library/dbm.rst:111 +msgid "" +"The following example records some hostnames and a corresponding title, and " +"then prints out the contents of the database::" +msgstr "" + +#: ../../library/dbm.rst:114 +msgid "" +"import dbm\n" +"\n" +"# Open database, creating it if necessary.\n" +"with dbm.open('cache', 'c') as db:\n" +"\n" +" # Record some values\n" +" db[b'hello'] = b'there'\n" +" db['www.python.org'] = 'Python Website'\n" +" db['www.cnn.com'] = 'Cable News Network'\n" +"\n" +" # Note that the keys are considered bytes now.\n" +" assert db[b'www.python.org'] == b'Python Website'\n" +" # Notice how the value is now in bytes.\n" +" assert db['www.cnn.com'] == b'Cable News Network'\n" +"\n" +" # Often-used methods of the dict interface work too.\n" +" print(db.get('python.org', b'not present'))\n" +"\n" +" # Storing a non-string key or value will raise an exception (most\n" +" # likely a TypeError).\n" +" db['www.yahoo.com'] = 4\n" +"\n" +"# db is automatically closed when leaving the with statement." +msgstr "" + +#: ../../library/dbm.rst:141 +msgid "Module :mod:`shelve`" +msgstr "" + +#: ../../library/dbm.rst:142 +msgid "Persistence module which stores non-string data." +msgstr "" + +#: ../../library/dbm.rst:145 +msgid "The individual submodules are described in the following sections." +msgstr "" + +#: ../../library/dbm.rst:148 +msgid ":mod:`dbm.sqlite3` --- SQLite backend for dbm" +msgstr "" + +#: ../../library/dbm.rst:156 +msgid "**Source code:** :source:`Lib/dbm/sqlite3.py`" +msgstr "" + +#: ../../library/dbm.rst:160 +msgid "" +"This module uses the standard library :mod:`sqlite3` module to provide an " +"SQLite backend for the :mod:`dbm` module. The files created " +"by :mod:`dbm.sqlite3` can thus be opened by :mod:`sqlite3`, or any other " +"SQLite browser, including the SQLite CLI." +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:3 ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/dbm.rst:169 +msgid "" +"Open an SQLite database. The returned object behaves like a :term:`mapping`, " +"implements a :meth:`!close` method, and supports a \"closing\" context " +"manager via the :keyword:`with` keyword." +msgstr "" + +#: ../../library/dbm.rst:174 +msgid "The path to the database to be opened." +msgstr "" + +#: ../../library/dbm.rst:185 +msgid "" +"The Unix file access mode of the file (default: octal ``0o666``), used only " +"when the database has to be created." +msgstr "" + +#: ../../library/dbm.rst:191 +msgid ":mod:`dbm.gnu` --- GNU database manager" +msgstr "" + +#: ../../library/dbm.rst:197 +msgid "**Source code:** :source:`Lib/dbm/gnu.py`" +msgstr "" + +#: ../../library/dbm.rst:201 +msgid "" +"The :mod:`dbm.gnu` module provides an interface to the :abbr:`GDBM (GNU " +"dbm)` library, similar to the :mod:`dbm.ndbm` module, but with additional " +"functionality like crash tolerance." +msgstr "" + +#: ../../library/dbm.rst:207 ../../library/dbm.rst:321 +msgid "" +"The file formats created by :mod:`dbm.gnu` and :mod:`dbm.ndbm` are " +"incompatible and can not be used interchangeably." +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:5 +msgid "" +"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." +msgstr "" + +#: ../../library/dbm.rst:214 +msgid "" +"Raised on :mod:`dbm.gnu`-specific errors, such as I/O " +"errors. :exc:`KeyError` is raised for general mapping errors like specifying " +"an incorrect key." +msgstr "" + +#: ../../library/dbm.rst:220 +msgid "Open a GDBM database and return a :class:`!gdbm` object." +msgstr "" + +#: ../../library/dbm.rst:226 +msgid "" +"* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " +"``'n'``: |flag_n| The following additional characters may be appended to " +"control how the database is opened: * ``'f'``: Open the database in fast " +"mode. Writes to the database will not be synchronized. * ``'s'``: " +"Synchronized mode. Changes to the database will be written immediately to " +"the file. * ``'u'``: Do not lock database. Not all flags are valid for all " +"versions of GDBM. See the :data:`open_flags` member for a list of supported " +"flag characters." +msgstr "" + +#: ../../library/dbm.rst:232 +msgid "" +"The following additional characters may be appended to control how the " +"database is opened:" +msgstr "" + +#: ../../library/dbm.rst:235 +msgid "" +"``'f'``: Open the database in fast mode. Writes to the database will not be " +"synchronized." +msgstr "" + +#: ../../library/dbm.rst:237 +msgid "" +"``'s'``: Synchronized mode. Changes to the database will be written " +"immediately to the file." +msgstr "" + +#: ../../library/dbm.rst:239 +msgid "``'u'``: Do not lock database." +msgstr "" + +#: ../../library/dbm.rst:241 +msgid "" +"Not all flags are valid for all versions of GDBM. See the :data:`open_flags` " +"member for a list of supported flag characters." +msgstr "" + +#: ../../library/dbm.rst:0 +msgid "Raises" +msgstr "" + +#: ../../library/dbm.rst:247 +msgid "If an invalid *flag* argument is passed." +msgstr "" + +#: ../../library/dbm.rst:255 +msgid "" +"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " +"supports." +msgstr "" + +#: ../../library/dbm.rst:257 +msgid "" +":class:`!gdbm` objects behave similar to :term:`mappings `, " +"but :meth:`!items` and :meth:`!values` methods are not supported. The " +"following methods are also provided:" +msgstr "" + +#: ../../library/dbm.rst:263 +msgid "" +"It's possible to loop over every key in the database using this method and " +"the :meth:`nextkey` method. The traversal is ordered by GDBM's internal " +"hash values, and won't be sorted by the key values. This method returns the " +"starting key." +msgstr "" + +#: ../../library/dbm.rst:270 +msgid "" +"Returns the key that follows *key* in the traversal. The following code " +"prints every key in the database ``db``, without having to create a list in " +"memory that contains them all::" +msgstr "" + +#: ../../library/dbm.rst:274 +msgid "" +"k = db.firstkey()\n" +"while k is not None:\n" +" print(k)\n" +" k = db.nextkey(k)" +msgstr "" + +#: ../../library/dbm.rst:281 +msgid "" +"If you have carried out a lot of deletions and would like to shrink the " +"space used by the GDBM file, this routine will reorganize the " +"database. :class:`!gdbm` objects will not shorten the length of a database " +"file except by using this reorganization; otherwise, deleted file space will " +"be kept and reused as new (key, value) pairs are added." +msgstr "" + +#: ../../library/dbm.rst:289 +msgid "" +"When the database has been opened in fast mode, this method forces any " +"unwritten data to be written to the disk." +msgstr "" + +#: ../../library/dbm.rst:294 +msgid "Close the GDBM database." +msgstr "" + +#: ../../library/dbm.rst:298 +msgid "Remove all items from the GDBM database." +msgstr "" + +#: ../../library/dbm.rst:304 +msgid ":mod:`dbm.ndbm` --- New Database Manager" +msgstr "" + +#: ../../library/dbm.rst:310 +msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" +msgstr "" + +#: ../../library/dbm.rst:314 +msgid "" +"The :mod:`dbm.ndbm` module provides an interface to the :abbr:`NDBM (New " +"Database Manager)` library. This module can be used with the \"classic\" " +"NDBM interface or the :abbr:`GDBM (GNU dbm)` compatibility interface." +msgstr "" + +#: ../../library/dbm.rst:326 +msgid "" +"The NDBM library shipped as part of macOS has an undocumented limitation on " +"the size of values, which can result in corrupted database files when " +"storing values larger than this limit. Reading such corrupted files can " +"result in a hard crash (segmentation fault)." +msgstr "" + +#: ../../library/dbm.rst:335 +msgid "" +"Raised on :mod:`dbm.ndbm`-specific errors, such as I/O " +"errors. :exc:`KeyError` is raised for general mapping errors like specifying " +"an incorrect key." +msgstr "" + +#: ../../library/dbm.rst:341 +msgid "Name of the NDBM implementation library used." +msgstr "" + +#: ../../library/dbm.rst:346 +msgid "Open an NDBM database and return an :class:`!ndbm` object." +msgstr "" + +#: ../../library/dbm.rst:348 +msgid "" +"The basename of the database file (without the :file:`.dir` or :file:`.pag` " +"extensions)." +msgstr "" + +#: ../../library/dbm.rst:362 +msgid "" +":class:`!ndbm` objects behave similar to :term:`mappings `, " +"but :meth:`!items` and :meth:`!values` methods are not supported. The " +"following methods are also provided:" +msgstr "" + +#: ../../library/dbm.rst:366 +msgid "Accepts :term:`path-like object` for filename." +msgstr "" + +#: ../../library/dbm.rst:371 +msgid "Close the NDBM database." +msgstr "" + +#: ../../library/dbm.rst:375 +msgid "Remove all items from the NDBM database." +msgstr "" + +#: ../../library/dbm.rst:381 +msgid ":mod:`dbm.dumb` --- Portable DBM implementation" +msgstr "" + +#: ../../library/dbm.rst:386 +msgid "**Source code:** :source:`Lib/dbm/dumb.py`" +msgstr "" + +#: ../../library/dbm.rst:392 +msgid "" +"The :mod:`dbm.dumb` module is intended as a last resort fallback for " +"the :mod:`dbm` module when a more robust module is not available. " +"The :mod:`dbm.dumb` module is not written for speed and is not nearly as " +"heavily used as the other database modules." +msgstr "" + +#: ../../library/dbm.rst:399 +msgid "" +"The :mod:`dbm.dumb` module provides a persistent :class:`dict`-like " +"interface which is written entirely in Python. Unlike other :mod:`dbm` " +"backends, such as :mod:`dbm.gnu`, no external library is required." +msgstr "" + +#: ../../library/dbm.rst:404 +msgid "The :mod:`!dbm.dumb` module defines the following:" +msgstr "" + +#: ../../library/dbm.rst:408 +msgid "" +"Raised on :mod:`dbm.dumb`-specific errors, such as I/O " +"errors. :exc:`KeyError` is raised for general mapping errors like " +"specifying an incorrect key." +msgstr "" + +#: ../../library/dbm.rst:414 +msgid "" +"Open a :mod:`!dbm.dumb` database. The returned database object behaves " +"similar to a :term:`mapping`, in addition to providing :meth:`~dumbdbm.sync` " +"and :meth:`~dumbdbm.close` methods." +msgstr "" + +#: ../../library/dbm.rst:419 +msgid "" +"The basename of the database file (without extensions). A new database " +"creates the following files: - :file:`{filename}.dat` " +"- :file:`{filename}.dir`" +msgstr "" + +#: ../../library/dbm.rst:420 +msgid "" +"The basename of the database file (without extensions). A new database " +"creates the following files:" +msgstr "" + +#: ../../library/dbm.rst:423 +msgid ":file:`{filename}.dat`" +msgstr "" + +#: ../../library/dbm.rst:424 +msgid ":file:`{filename}.dir`" +msgstr "" + +#: ../../library/dbm.rst:427 +msgid "" +"* ``'r'``: |flag_r| * ``'w'``: |flag_w| * ``'c'`` (default): |flag_c| * " +"``'n'``: |flag_n|" +msgstr "" + +#: ../../library/dbm.rst:428 +msgid "``'r'``: |flag_r|" +msgstr "" + +#: ../../library/dbm.rst:430 +msgid "``'c'`` (default): |flag_c|" +msgstr "" + +#: ../../library/dbm.rst:437 +msgid "" +"It is possible to crash the Python interpreter when loading a database with " +"a sufficiently large/complex entry due to stack depth limitations in " +"Python's AST compiler." +msgstr "" + +#: ../../library/dbm.rst:441 +msgid "" +":func:`~dbm.dumb.open` always creates a new database when *flag* is ``'n'``." +msgstr "" + +#: ../../library/dbm.rst:444 +msgid "" +"A database opened read-only if *flag* is ``'r'``. A database is not created " +"if it does not exist if *flag* is ``'r'`` or ``'w'``." +msgstr "" + +#: ../../library/dbm.rst:451 +msgid "" +"In addition to the methods provided by " +"the :class:`collections.abc.MutableMapping` class, the following methods are " +"provided:" +msgstr "" + +#: ../../library/dbm.rst:457 +msgid "" +"Synchronize the on-disk directory and data files. This method is called by " +"the :meth:`shelve.Shelf.sync` method." +msgstr "" + +#: ../../library/dbm.rst:462 +msgid "Close the database." +msgstr "" + +#: ../../library/dbm.rst:388 +msgid "databases" +msgstr "" diff --git a/library/debug.po b/library/debug.po new file mode 100644 index 0000000..a654997 --- /dev/null +++ b/library/debug.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/debug.rst:3 +msgid "Debugging and Profiling" +msgstr "" + +#: ../../library/debug.rst:5 +msgid "" +"These libraries help you with Python development: the debugger enables you " +"to step through code, analyze stack frames and set breakpoints etc., and the " +"profilers run code and give you a detailed breakdown of execution times, " +"allowing you to identify bottlenecks in your programs. Auditing events " +"provide visibility into runtime behaviors that would otherwise require " +"intrusive debugging or patching." +msgstr "" diff --git a/library/decimal.po b/library/decimal.po new file mode 100644 index 0000000..9a57d75 --- /dev/null +++ b/library/decimal.po @@ -0,0 +1,2738 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/decimal.rst:2 +msgid ":mod:`!decimal` --- Decimal fixed-point and floating-point arithmetic" +msgstr "" + +#: ../../library/decimal.rst:15 +msgid "**Source code:** :source:`Lib/decimal.py`" +msgstr "" + +#: ../../library/decimal.rst:33 +msgid "" +"The :mod:`decimal` module provides support for fast correctly rounded " +"decimal floating-point arithmetic. It offers several advantages over " +"the :class:`float` datatype:" +msgstr "" + +#: ../../library/decimal.rst:37 +msgid "" +"Decimal \"is based on a floating-point model which was designed with people " +"in mind, and necessarily has a paramount guiding principle -- computers must " +"provide an arithmetic that works in the same way as the arithmetic that " +"people learn at school.\" -- excerpt from the decimal arithmetic " +"specification." +msgstr "" + +#: ../../library/decimal.rst:42 +msgid "" +"Decimal numbers can be represented exactly. In contrast, numbers like " +"``1.1`` and ``2.2`` do not have exact representations in binary floating " +"point. End users typically would not expect ``1.1 + 2.2`` to display as " +"``3.3000000000000003`` as it does with binary floating point." +msgstr "" + +#: ../../library/decimal.rst:47 +msgid "" +"The exactness carries over into arithmetic. In decimal floating point, " +"``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " +"point, the result is ``5.5511151231257827e-017``. While near to zero, the " +"differences prevent reliable equality testing and differences can " +"accumulate. For this reason, decimal is preferred in accounting applications " +"which have strict equality invariants." +msgstr "" + +#: ../../library/decimal.rst:54 +msgid "" +"The decimal module incorporates a notion of significant places so that " +"``1.30 + 1.20`` is ``2.50``. The trailing zero is kept to indicate " +"significance. This is the customary presentation for monetary applications. " +"For multiplication, the \"schoolbook\" approach uses all the figures in the " +"multiplicands. For instance, ``1.3 * 1.2`` gives ``1.56`` while ``1.30 * " +"1.20`` gives ``1.5600``." +msgstr "" + +#: ../../library/decimal.rst:61 +msgid "" +"Unlike hardware based binary floating point, the decimal module has a user " +"alterable precision (defaulting to 28 places) which can be as large as " +"needed for a given problem:" +msgstr "" + +#: ../../library/decimal.rst:73 +msgid "" +"Both binary and decimal floating point are implemented in terms of published " +"standards. While the built-in float type exposes only a modest portion of " +"its capabilities, the decimal module exposes all required parts of the " +"standard. When needed, the programmer has full control over rounding and " +"signal handling. This includes an option to enforce exact arithmetic by " +"using exceptions to block any inexact operations." +msgstr "" + +#: ../../library/decimal.rst:80 +msgid "" +"The decimal module was designed to support \"without prejudice, both exact " +"unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and " +"rounded floating-point arithmetic.\" -- excerpt from the decimal arithmetic " +"specification." +msgstr "" + +#: ../../library/decimal.rst:85 +msgid "" +"The module design is centered around three concepts: the decimal number, " +"the context for arithmetic, and signals." +msgstr "" + +#: ../../library/decimal.rst:88 +msgid "" +"A decimal number is immutable. It has a sign, coefficient digits, and an " +"exponent. To preserve significance, the coefficient digits do not truncate " +"trailing zeros. Decimals also include special values such as ``Infinity``, " +"``-Infinity``, and ``NaN``. The standard also differentiates ``-0`` from " +"``+0``." +msgstr "" + +#: ../../library/decimal.rst:94 +msgid "" +"The context for arithmetic is an environment specifying precision, rounding " +"rules, limits on exponents, flags indicating the results of operations, and " +"trap enablers which determine whether signals are treated as exceptions. " +"Rounding options " +"include :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:`ROUND_HALF_UP`, :const:`ROUND_UP`, " +"and :const:`ROUND_05UP`." +msgstr "" + +#: ../../library/decimal.rst:101 +msgid "" +"Signals are groups of exceptional conditions arising during the course of " +"computation. Depending on the needs of the application, signals may be " +"ignored, considered as informational, or treated as exceptions. The signals " +"in the decimal module " +"are: :const:`Clamped`, :const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` " +"and :const:`FloatOperation`." +msgstr "" + +#: ../../library/decimal.rst:108 +msgid "" +"For each signal there is a flag and a trap enabler. When a signal is " +"encountered, its flag is set to one, then, if the trap enabler is set to " +"one, an exception is raised. Flags are sticky, so the user needs to reset " +"them before monitoring a calculation." +msgstr "" + +#: ../../library/decimal.rst:116 +msgid "" +"IBM's General Decimal Arithmetic Specification, `The General Decimal " +"Arithmetic Specification `_." +msgstr "" + +#: ../../library/decimal.rst:125 +msgid "Quick-start tutorial" +msgstr "" + +#: ../../library/decimal.rst:127 +msgid "" +"The usual start to using decimals is importing the module, viewing the " +"current context with :func:`getcontext` and, if necessary, setting new " +"values for precision, rounding, or enabled traps::" +msgstr "" + +#: ../../library/decimal.rst:131 +msgid "" +">>> from decimal import *\n" +">>> getcontext()\n" +"Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,\n" +" capitals=1, clamp=0, flags=[], traps=[Overflow, DivisionByZero,\n" +" InvalidOperation])\n" +"\n" +">>> getcontext().prec = 7 # Set a new precision" +msgstr "" + +#: ../../library/decimal.rst:139 +msgid "" +"Decimal instances can be constructed from integers, strings, floats, or " +"tuples. Construction from an integer or a float performs an exact conversion " +"of the value of that integer or float. Decimal numbers include special " +"values such as ``NaN`` which stands for \"Not a number\", positive and " +"negative ``Infinity``, and ``-0``::" +msgstr "" + +#: ../../library/decimal.rst:145 +msgid "" +">>> getcontext().prec = 28\n" +">>> Decimal(10)\n" +"Decimal('10')\n" +">>> Decimal('3.14')\n" +"Decimal('3.14')\n" +">>> Decimal(3.14)\n" +"Decimal('3.140000000000000124344978758017532527446746826171875')\n" +">>> Decimal((0, (3, 1, 4), -2))\n" +"Decimal('3.14')\n" +">>> Decimal(str(2.0 ** 0.5))\n" +"Decimal('1.4142135623730951')\n" +">>> Decimal(2) ** Decimal('0.5')\n" +"Decimal('1.414213562373095048801688724')\n" +">>> Decimal('NaN')\n" +"Decimal('NaN')\n" +">>> Decimal('-Infinity')\n" +"Decimal('-Infinity')" +msgstr "" + +#: ../../library/decimal.rst:163 +msgid "" +"If the :exc:`FloatOperation` signal is trapped, accidental mixing of " +"decimals and floats in constructors or ordering comparisons raises an " +"exception::" +msgstr "" + +#: ../../library/decimal.rst:167 +msgid "" +">>> c = getcontext()\n" +">>> c.traps[FloatOperation] = True\n" +">>> Decimal(3.14)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"decimal.FloatOperation: []\n" +">>> Decimal('3.5') < 3.7\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"decimal.FloatOperation: []\n" +">>> Decimal('3.5') == 3.5\n" +"True" +msgstr "" + +#: ../../library/decimal.rst:182 +msgid "" +"The significance of a new Decimal is determined solely by the number of " +"digits input. Context precision and rounding only come into play during " +"arithmetic operations." +msgstr "" + +#: ../../library/decimal.rst:186 +msgid "" +">>> getcontext().prec = 6\n" +">>> Decimal('3.0')\n" +"Decimal('3.0')\n" +">>> Decimal('3.1415926535')\n" +"Decimal('3.1415926535')\n" +">>> Decimal('3.1415926535') + Decimal('2.7182818285')\n" +"Decimal('5.85987')\n" +">>> getcontext().rounding = ROUND_UP\n" +">>> Decimal('3.1415926535') + Decimal('2.7182818285')\n" +"Decimal('5.85988')" +msgstr "" + +#: ../../library/decimal.rst:199 +msgid "" +"If the internal limits of the C version are exceeded, constructing a decimal " +"raises :class:`InvalidOperation`::" +msgstr "" + +#: ../../library/decimal.rst:202 +msgid "" +">>> Decimal(\"1e9999999999999999999\")\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"decimal.InvalidOperation: []" +msgstr "" + +#: ../../library/decimal.rst:209 +msgid "" +"Decimals interact well with much of the rest of Python. Here is a small " +"decimal floating-point flying circus:" +msgstr "" + +#: ../../library/decimal.rst:212 +msgid "" +">>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split()))\n" +">>> max(data)\n" +"Decimal('9.25')\n" +">>> min(data)\n" +"Decimal('0.03')\n" +">>> sorted(data)\n" +"[Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'),\n" +" Decimal('2.35'), Decimal('3.45'), Decimal('9.25')]\n" +">>> sum(data)\n" +"Decimal('19.29')\n" +">>> a,b,c = data[:3]\n" +">>> str(a)\n" +"'1.34'\n" +">>> float(a)\n" +"1.34\n" +">>> round(a, 1)\n" +"Decimal('1.3')\n" +">>> int(a)\n" +"1\n" +">>> a * 5\n" +"Decimal('6.70')\n" +">>> a * b\n" +"Decimal('2.5058')\n" +">>> c % a\n" +"Decimal('0.77')" +msgstr "" + +#: ../../library/decimal.rst:241 +msgid "And some mathematical functions are also available to Decimal:" +msgstr "" + +#: ../../library/decimal.rst:253 +msgid "" +"The :meth:`~Decimal.quantize` method rounds a number to a fixed exponent. " +"This method is useful for monetary applications that often round results to " +"a fixed number of places:" +msgstr "" + +#: ../../library/decimal.rst:262 +msgid "" +"As shown above, the :func:`getcontext` function accesses the current context " +"and allows the settings to be changed. This approach meets the needs of " +"most applications." +msgstr "" + +#: ../../library/decimal.rst:266 +msgid "" +"For more advanced work, it may be useful to create alternate contexts using " +"the Context() constructor. To make an alternate active, use " +"the :func:`setcontext` function." +msgstr "" + +#: ../../library/decimal.rst:270 +msgid "" +"In accordance with the standard, the :mod:`decimal` module provides two " +"ready to use standard contexts, :const:`BasicContext` " +"and :const:`ExtendedContext`. The former is especially useful for debugging " +"because many of the traps are enabled:" +msgstr "" + +#: ../../library/decimal.rst:275 +msgid "" +">>> myothercontext = Context(prec=60, rounding=ROUND_HALF_DOWN)\n" +">>> setcontext(myothercontext)\n" +">>> Decimal(1) / Decimal(7)\n" +"Decimal('0.142857142857142857142857142857142857142857142857142857142857')\n" +"\n" +">>> ExtendedContext\n" +"Context(prec=9, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,\n" +" capitals=1, clamp=0, flags=[], traps=[])\n" +">>> setcontext(ExtendedContext)\n" +">>> Decimal(1) / Decimal(7)\n" +"Decimal('0.142857143')\n" +">>> Decimal(42) / Decimal(0)\n" +"Decimal('Infinity')\n" +"\n" +">>> setcontext(BasicContext)\n" +">>> Decimal(42) / Decimal(0)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in -toplevel-\n" +" Decimal(42) / Decimal(0)\n" +"DivisionByZero: x / 0" +msgstr "" + +#: ../../library/decimal.rst:299 +msgid "" +"Contexts also have signal flags for monitoring exceptional conditions " +"encountered during computations. The flags remain set until explicitly " +"cleared, so it is best to clear the flags before each set of monitored " +"computations by using the :meth:`~Context.clear_flags` method. ::" +msgstr "" + +#: ../../library/decimal.rst:304 +msgid "" +">>> setcontext(ExtendedContext)\n" +">>> getcontext().clear_flags()\n" +">>> Decimal(355) / Decimal(113)\n" +"Decimal('3.14159292')\n" +">>> getcontext()\n" +"Context(prec=9, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,\n" +" capitals=1, clamp=0, flags=[Inexact, Rounded], traps=[])" +msgstr "" + +#: ../../library/decimal.rst:312 +msgid "" +"The *flags* entry shows that the rational approximation to pi was rounded " +"(digits beyond the context precision were thrown away) and that the result " +"is inexact (some of the discarded digits were non-zero)." +msgstr "" + +#: ../../library/decimal.rst:316 +msgid "" +"Individual traps are set using the dictionary in the :attr:`~Context.traps` " +"attribute of a context:" +msgstr "" + +#: ../../library/decimal.rst:319 +msgid "" +">>> setcontext(ExtendedContext)\n" +">>> Decimal(1) / Decimal(0)\n" +"Decimal('Infinity')\n" +">>> getcontext().traps[DivisionByZero] = 1\n" +">>> Decimal(1) / Decimal(0)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in -toplevel-\n" +" Decimal(1) / Decimal(0)\n" +"DivisionByZero: x / 0" +msgstr "" + +#: ../../library/decimal.rst:331 +msgid "" +"Most programs adjust the current context only once, at the beginning of the " +"program. And, in many applications, data is converted to :class:`Decimal` " +"with a single cast inside a loop. With context set and decimals created, " +"the bulk of the program manipulates the data no differently than with other " +"Python numeric types." +msgstr "" + +#: ../../library/decimal.rst:343 +msgid "Decimal objects" +msgstr "" + +#: ../../library/decimal.rst:348 +msgid "Construct a new :class:`Decimal` object based from *value*." +msgstr "" + +#: ../../library/decimal.rst:350 +msgid "" +"*value* can be an integer, string, tuple, :class:`float`, or " +"another :class:`Decimal` object. If no *value* is given, returns " +"``Decimal('0')``. If *value* is a string, it should conform to the decimal " +"numeric string syntax after leading and trailing whitespace characters, as " +"well as underscores throughout, are removed::" +msgstr "" + +#: ../../library/decimal.rst:355 +msgid "" +"sign ::= '+' | '-'\n" +"digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | " +"'9'\n" +"indicator ::= 'e' | 'E'\n" +"digits ::= digit [digit]...\n" +"decimal-part ::= digits '.' [digits] | ['.'] digits\n" +"exponent-part ::= indicator [sign] digits\n" +"infinity ::= 'Infinity' | 'Inf'\n" +"nan ::= 'NaN' [digits] | 'sNaN' [digits]\n" +"numeric-value ::= decimal-part [exponent-part] | infinity\n" +"numeric-string ::= [sign] numeric-value | [sign] nan" +msgstr "" + +#: ../../library/decimal.rst:366 +msgid "" +"Other Unicode decimal digits are also permitted where ``digit`` appears " +"above. These include decimal digits from various other alphabets (for " +"example, Arabic-Indic and Devanāgarī digits) along with the fullwidth digits " +"``'\\uff10'`` through ``'\\uff19'``. Case is not significant, so, for " +"example, ``inf``, ``Inf``, ``INFINITY``, and ``iNfINity`` are all acceptable " +"spellings for positive infinity." +msgstr "" + +#: ../../library/decimal.rst:373 +msgid "" +"If *value* is a :class:`tuple`, it should have three components, a sign " +"(``0`` for positive or ``1`` for negative), a :class:`tuple` of digits, and " +"an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), -3))`` returns " +"``Decimal('1.414')``." +msgstr "" + +#: ../../library/decimal.rst:378 +msgid "" +"If *value* is a :class:`float`, the binary floating-point value is " +"losslessly converted to its exact decimal equivalent. This conversion can " +"often require 53 or more digits of precision. For example, " +"``Decimal(float('1.1'))`` converts to " +"``Decimal('1.100000000000000088817841970012523233890533447265625')``." +msgstr "" + +#: ../../library/decimal.rst:384 +msgid "" +"The *context* precision does not affect how many digits are stored. That is " +"determined exclusively by the number of digits in *value*. For example, " +"``Decimal('3.00000')`` records all five zeros even if the context precision " +"is only three." +msgstr "" + +#: ../../library/decimal.rst:389 +msgid "" +"The purpose of the *context* argument is determining what to do if *value* " +"is a malformed string. If the context traps :const:`InvalidOperation`, an " +"exception is raised; otherwise, the constructor returns a new Decimal with " +"the value of ``NaN``." +msgstr "" + +#: ../../library/decimal.rst:394 +msgid "Once constructed, :class:`Decimal` objects are immutable." +msgstr "" + +#: ../../library/decimal.rst:396 +msgid "" +"The argument to the constructor is now permitted to be a :class:`float` " +"instance." +msgstr "" + +#: ../../library/decimal.rst:400 +msgid "" +":class:`float` arguments raise an exception if the :exc:`FloatOperation` " +"trap is set. By default the trap is off." +msgstr "" + +#: ../../library/decimal.rst:404 +msgid "" +"Underscores are allowed for grouping, as with integral and floating-point " +"literals in code." +msgstr "" + +#: ../../library/decimal.rst:408 +msgid "" +"Decimal floating-point objects share many properties with the other built-in " +"numeric types such as :class:`float` and :class:`int`. All of the usual " +"math operations and special methods apply. Likewise, decimal objects can be " +"copied, pickled, printed, used as dictionary keys, used as set elements, " +"compared, sorted, and coerced to another type (such as :class:`float` " +"or :class:`int`)." +msgstr "" + +#: ../../library/decimal.rst:415 +msgid "" +"There are some small differences between arithmetic on Decimal objects and " +"arithmetic on integers and floats. When the remainder operator ``%`` is " +"applied to Decimal objects, the sign of the result is the sign of the " +"*dividend* rather than the sign of the divisor::" +msgstr "" + +#: ../../library/decimal.rst:420 +msgid "" +">>> (-7) % 4\n" +"1\n" +">>> Decimal(-7) % Decimal(4)\n" +"Decimal('-3')" +msgstr "" + +#: ../../library/decimal.rst:425 +msgid "" +"The integer division operator ``//`` behaves analogously, returning the " +"integer part of the true quotient (truncating towards zero) rather than its " +"floor, so as to preserve the usual identity ``x == (x // y) * y + x % y``::" +msgstr "" + +#: ../../library/decimal.rst:429 +msgid "" +">>> -7 // 4\n" +"-2\n" +">>> Decimal(-7) // Decimal(4)\n" +"Decimal('-1')" +msgstr "" + +#: ../../library/decimal.rst:434 +msgid "" +"The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" +"integer`` operations (respectively) as described in the specification." +msgstr "" + +#: ../../library/decimal.rst:438 +msgid "" +"Decimal objects cannot generally be combined with floats or instances " +"of :class:`fractions.Fraction` in arithmetic operations: an attempt to add " +"a :class:`Decimal` to a :class:`float`, for example, will raise " +"a :exc:`TypeError`. However, it is possible to use Python's comparison " +"operators to compare a :class:`Decimal` instance ``x`` with another number " +"``y``. This avoids confusing results when doing equality comparisons " +"between numbers of different types." +msgstr "" + +#: ../../library/decimal.rst:446 +msgid "" +"Mixed-type comparisons between :class:`Decimal` instances and other numeric " +"types are now fully supported." +msgstr "" + +#: ../../library/decimal.rst:450 +msgid "" +"In addition to the standard numeric properties, decimal floating-point " +"objects also have a number of specialized methods:" +msgstr "" + +#: ../../library/decimal.rst:456 +msgid "" +"Return the adjusted exponent after shifting out the coefficient's rightmost " +"digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` " +"returns seven. Used for determining the position of the most significant " +"digit with respect to the decimal point." +msgstr "" + +#: ../../library/decimal.rst:463 +msgid "" +"Return a pair ``(n, d)`` of integers that represent the " +"given :class:`Decimal` instance as a fraction, in lowest terms and with a " +"positive denominator::" +msgstr "" + +#: ../../library/decimal.rst:467 +msgid "" +">>> Decimal('-3.14').as_integer_ratio()\n" +"(-157, 50)" +msgstr "" + +#: ../../library/decimal.rst:470 +msgid "" +"The conversion is exact. Raise OverflowError on infinities and ValueError " +"on NaNs." +msgstr "" + +#: ../../library/decimal.rst:477 +msgid "" +"Return a :term:`named tuple` representation of the number: " +"``DecimalTuple(sign, digits, exponent)``." +msgstr "" + +#: ../../library/decimal.rst:483 +msgid "" +"Return the canonical encoding of the argument. Currently, the encoding of " +"a :class:`Decimal` instance is always canonical, so this operation returns " +"its argument unchanged." +msgstr "" + +#: ../../library/decimal.rst:489 +msgid "" +"Compare the values of two Decimal instances. :meth:`compare` returns a " +"Decimal instance, and if either operand is a NaN then the result is a NaN::" +msgstr "" + +#: ../../library/decimal.rst:493 +msgid "" +"a or b is a NaN ==> Decimal('NaN')\n" +"a < b ==> Decimal('-1')\n" +"a == b ==> Decimal('0')\n" +"a > b ==> Decimal('1')" +msgstr "" + +#: ../../library/decimal.rst:500 +msgid "" +"This operation is identical to the :meth:`compare` method, except that all " +"NaNs signal. That is, if neither operand is a signaling NaN then any quiet " +"NaN operand is treated as though it were a signaling NaN." +msgstr "" + +#: ../../library/decimal.rst:506 +msgid "" +"Compare two operands using their abstract representation rather than their " +"numerical value. Similar to the :meth:`compare` method, but the result " +"gives a total ordering on :class:`Decimal` instances. Two :class:`Decimal` " +"instances with the same numeric value but different representations compare " +"unequal in this ordering:" +msgstr "" + +#: ../../library/decimal.rst:515 +msgid "" +"Quiet and signaling NaNs are also included in the total ordering. The " +"result of this function is ``Decimal('0')`` if both operands have the same " +"representation, ``Decimal('-1')`` if the first operand is lower in the total " +"order than the second, and ``Decimal('1')`` if the first operand is higher " +"in the total order than the second operand. See the specification for " +"details of the total order." +msgstr "" + +#: ../../library/decimal.rst:522 ../../library/decimal.rst:533 +#: ../../library/decimal.rst:561 ../../library/decimal.rst:865 +msgid "" +"This operation is unaffected by context and is quiet: no flags are changed " +"and no rounding is performed. As an exception, the C version may raise " +"InvalidOperation if the second operand cannot be converted exactly." +msgstr "" + +#: ../../library/decimal.rst:528 +msgid "" +"Compare two operands using their abstract representation rather than their " +"value as in :meth:`compare_total`, but ignoring the sign of each operand. " +"``x.compare_total_mag(y)`` is equivalent to " +"``x.copy_abs().compare_total(y.copy_abs())``." +msgstr "" + +#: ../../library/decimal.rst:539 +msgid "" +"Just returns self, this method is only to comply with the Decimal " +"Specification." +msgstr "" + +#: ../../library/decimal.rst:544 +msgid "" +"Return the absolute value of the argument. This operation is unaffected by " +"the context and is quiet: no flags are changed and no rounding is performed." +msgstr "" + +#: ../../library/decimal.rst:550 +msgid "" +"Return the negation of the argument. This operation is unaffected by the " +"context and is quiet: no flags are changed and no rounding is performed." +msgstr "" + +#: ../../library/decimal.rst:555 +msgid "" +"Return a copy of the first operand with the sign set to be the same as the " +"sign of the second operand. For example:" +msgstr "" + +#: ../../library/decimal.rst:567 +msgid "" +"Return the value of the (natural) exponential function ``e**x`` at the given " +"number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` " +"rounding mode." +msgstr "" + +#: ../../library/decimal.rst:578 +msgid "" +"Alternative constructor that only accepts instances of :class:`float` " +"or :class:`int`." +msgstr "" + +#: ../../library/decimal.rst:581 +msgid "" +"Note ``Decimal.from_float(0.1)`` is not the same as ``Decimal('0.1')``. " +"Since 0.1 is not exactly representable in binary floating point, the value " +"is stored as the nearest representable value which is " +"``0x1.999999999999ap-4``. That equivalent value in decimal is " +"``0.1000000000000000055511151231257827021181583404541015625``." +msgstr "" + +#: ../../library/decimal.rst:587 +msgid "" +"From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " +"directly from a :class:`float`." +msgstr "" + +#: ../../library/decimal.rst:590 +msgid "" +">>> Decimal.from_float(0.1)\n" +"Decimal('0.1000000000000000055511151231257827021181583404541015625')\n" +">>> Decimal.from_float(float('nan'))\n" +"Decimal('NaN')\n" +">>> Decimal.from_float(float('inf'))\n" +"Decimal('Infinity')\n" +">>> Decimal.from_float(float('-inf'))\n" +"Decimal('-Infinity')" +msgstr "" + +#: ../../library/decimal.rst:605 +msgid "" +"Alternative constructor that only accepts instances " +"of :class:`float`, :class:`int` or :class:`Decimal`, but not strings or " +"tuples." +msgstr "" + +#: ../../library/decimal.rst:609 +msgid "" +">>> Decimal.from_number(314)\n" +"Decimal('314')\n" +">>> Decimal.from_number(0.1)\n" +"Decimal('0.1000000000000000055511151231257827021181583404541015625')\n" +">>> Decimal.from_number(Decimal('3.14'))\n" +"Decimal('3.14')" +msgstr "" + +#: ../../library/decimal.rst:622 +msgid "" +"Fused multiply-add. Return self*other+third with no rounding of the " +"intermediate product self*other." +msgstr "" + +#: ../../library/decimal.rst:630 +msgid "" +"Return :const:`True` if the argument is canonical and :const:`False` " +"otherwise. Currently, a :class:`Decimal` instance is always canonical, so " +"this operation always returns :const:`True`." +msgstr "" + +#: ../../library/decimal.rst:636 +msgid "" +"Return :const:`True` if the argument is a finite number, and :const:`False` " +"if the argument is an infinity or a NaN." +msgstr "" + +#: ../../library/decimal.rst:641 +msgid "" +"Return :const:`True` if the argument is either positive or negative infinity " +"and :const:`False` otherwise." +msgstr "" + +#: ../../library/decimal.rst:646 +msgid "" +"Return :const:`True` if the argument is a (quiet or signaling) NaN " +"and :const:`False` otherwise." +msgstr "" + +#: ../../library/decimal.rst:651 +msgid "" +"Return :const:`True` if the argument is a *normal* finite number. " +"Return :const:`False` if the argument is zero, subnormal, infinite or a NaN." +msgstr "" + +#: ../../library/decimal.rst:656 +msgid "" +"Return :const:`True` if the argument is a quiet NaN, and :const:`False` " +"otherwise." +msgstr "" + +#: ../../library/decimal.rst:661 +msgid "" +"Return :const:`True` if the argument has a negative sign and :const:`False` " +"otherwise. Note that zeros and NaNs can both carry signs." +msgstr "" + +#: ../../library/decimal.rst:666 +msgid "" +"Return :const:`True` if the argument is a signaling NaN and :const:`False` " +"otherwise." +msgstr "" + +#: ../../library/decimal.rst:671 +msgid "" +"Return :const:`True` if the argument is subnormal, and :const:`False` " +"otherwise." +msgstr "" + +#: ../../library/decimal.rst:676 +msgid "" +"Return :const:`True` if the argument is a (positive or negative) zero " +"and :const:`False` otherwise." +msgstr "" + +#: ../../library/decimal.rst:681 +msgid "" +"Return the natural (base e) logarithm of the operand. The result is " +"correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." +msgstr "" + +#: ../../library/decimal.rst:686 +msgid "" +"Return the base ten logarithm of the operand. The result is correctly " +"rounded using the :const:`ROUND_HALF_EVEN` rounding mode." +msgstr "" + +#: ../../library/decimal.rst:691 +msgid "" +"For a nonzero number, return the adjusted exponent of its operand as " +"a :class:`Decimal` instance. If the operand is a zero then ``Decimal('-" +"Infinity')`` is returned and the :const:`DivisionByZero` flag is raised. If " +"the operand is an infinity then ``Decimal('Infinity')`` is returned." +msgstr "" + +#: ../../library/decimal.rst:699 +msgid "" +":meth:`logical_and` is a logical operation which takes two *logical " +"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " +"``and`` of the two operands." +msgstr "" + +#: ../../library/decimal.rst:705 +msgid "" +":meth:`logical_invert` is a logical operation. The result is the digit-wise " +"inversion of the operand." +msgstr "" + +#: ../../library/decimal.rst:710 +msgid "" +":meth:`logical_or` is a logical operation which takes two *logical operands* " +"(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of " +"the two operands." +msgstr "" + +#: ../../library/decimal.rst:716 +msgid "" +":meth:`logical_xor` is a logical operation which takes two *logical " +"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " +"exclusive or of the two operands." +msgstr "" + +#: ../../library/decimal.rst:722 +msgid "" +"Like ``max(self, other)`` except that the context rounding rule is applied " +"before returning and that ``NaN`` values are either signaled or ignored " +"(depending on the context and whether they are signaling or quiet)." +msgstr "" + +#: ../../library/decimal.rst:729 +msgid "" +"Similar to the :meth:`.max` method, but the comparison is done using the " +"absolute values of the operands." +msgstr "" + +#: ../../library/decimal.rst:734 +msgid "" +"Like ``min(self, other)`` except that the context rounding rule is applied " +"before returning and that ``NaN`` values are either signaled or ignored " +"(depending on the context and whether they are signaling or quiet)." +msgstr "" + +#: ../../library/decimal.rst:741 +msgid "" +"Similar to the :meth:`.min` method, but the comparison is done using the " +"absolute values of the operands." +msgstr "" + +#: ../../library/decimal.rst:746 +msgid "" +"Return the largest number representable in the given context (or in the " +"current thread's context if no context is given) that is smaller than the " +"given operand." +msgstr "" + +#: ../../library/decimal.rst:752 +msgid "" +"Return the smallest number representable in the given context (or in the " +"current thread's context if no context is given) that is larger than the " +"given operand." +msgstr "" + +#: ../../library/decimal.rst:758 +msgid "" +"If the two operands are unequal, return the number closest to the first " +"operand in the direction of the second operand. If both operands are " +"numerically equal, return a copy of the first operand with the sign set to " +"be the same as the sign of the second operand." +msgstr "" + +#: ../../library/decimal.rst:765 +msgid "" +"Used for producing canonical values of an equivalence class within either " +"the current context or the specified context." +msgstr "" + +#: ../../library/decimal.rst:768 +msgid "" +"This has the same semantics as the unary plus operation, except that if the " +"final result is finite it is reduced to its simplest form, with all trailing " +"zeros removed and its sign preserved. That is, while the coefficient is non-" +"zero and a multiple of ten the coefficient is divided by ten and the " +"exponent is incremented by 1. Otherwise (the coefficient is zero) the " +"exponent is set to 0. In all cases the sign is unchanged." +msgstr "" + +#: ../../library/decimal.rst:775 +msgid "" +"For example, ``Decimal('32.100')`` and ``Decimal('0.321000e+2')`` both " +"normalize to the equivalent value ``Decimal('32.1')``." +msgstr "" + +#: ../../library/decimal.rst:778 +msgid "Note that rounding is applied *before* reducing to simplest form." +msgstr "" + +#: ../../library/decimal.rst:780 +msgid "" +"In the latest versions of the specification, this operation is also known as " +"``reduce``." +msgstr "" + +#: ../../library/decimal.rst:785 +msgid "" +"Return a string describing the *class* of the operand. The returned value " +"is one of the following ten strings." +msgstr "" + +#: ../../library/decimal.rst:788 +msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." +msgstr "" + +#: ../../library/decimal.rst:789 +msgid "" +"``\"-Normal\"``, indicating that the operand is a negative normal number." +msgstr "" + +#: ../../library/decimal.rst:790 +msgid "" +"``\"-Subnormal\"``, indicating that the operand is negative and subnormal." +msgstr "" + +#: ../../library/decimal.rst:791 +msgid "``\"-Zero\"``, indicating that the operand is a negative zero." +msgstr "" + +#: ../../library/decimal.rst:792 +msgid "``\"+Zero\"``, indicating that the operand is a positive zero." +msgstr "" + +#: ../../library/decimal.rst:793 +msgid "" +"``\"+Subnormal\"``, indicating that the operand is positive and subnormal." +msgstr "" + +#: ../../library/decimal.rst:794 +msgid "" +"``\"+Normal\"``, indicating that the operand is a positive normal number." +msgstr "" + +#: ../../library/decimal.rst:795 +msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." +msgstr "" + +#: ../../library/decimal.rst:796 +msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." +msgstr "" + +#: ../../library/decimal.rst:797 +msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." +msgstr "" + +#: ../../library/decimal.rst:801 +msgid "" +"Return a value equal to the first operand after rounding and having the " +"exponent of the second operand." +msgstr "" + +#: ../../library/decimal.rst:807 +msgid "" +"Unlike other operations, if the length of the coefficient after the quantize " +"operation would be greater than precision, then an :const:`InvalidOperation` " +"is signaled. This guarantees that, unless there is an error condition, the " +"quantized exponent is always equal to that of the right-hand operand." +msgstr "" + +#: ../../library/decimal.rst:813 +msgid "" +"Also unlike other operations, quantize never signals Underflow, even if the " +"result is subnormal and inexact." +msgstr "" + +#: ../../library/decimal.rst:816 +msgid "" +"If the exponent of the second operand is larger than that of the first then " +"rounding may be necessary. In this case, the rounding mode is determined by " +"the ``rounding`` argument if given, else by the given ``context`` argument; " +"if neither argument is given the rounding mode of the current thread's " +"context is used." +msgstr "" + +#: ../../library/decimal.rst:822 +msgid "" +"An error is returned whenever the resulting exponent is greater " +"than :attr:`~Context.Emax` or less than :meth:`~Context.Etiny`." +msgstr "" + +#: ../../library/decimal.rst:827 +msgid "" +"Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " +"does all its arithmetic. Included for compatibility with the specification." +msgstr "" + +#: ../../library/decimal.rst:833 +msgid "" +"Return the remainder from dividing *self* by *other*. This differs from " +"``self % other`` in that the sign of the remainder is chosen so as to " +"minimize its absolute value. More precisely, the return value is ``self - n " +"* other`` where ``n`` is the integer nearest to the exact value of ``self / " +"other``, and if two integers are equally near then the even one is chosen." +msgstr "" + +#: ../../library/decimal.rst:840 +msgid "If the result is zero then its sign will be the sign of *self*." +msgstr "" + +#: ../../library/decimal.rst:851 +msgid "" +"Return the result of rotating the digits of the first operand by an amount " +"specified by the second operand. The second operand must be an integer in " +"the range -precision through precision. The absolute value of the second " +"operand gives the number of places to rotate. If the second operand is " +"positive then rotation is to the left; otherwise rotation is to the right. " +"The coefficient of the first operand is padded on the left with zeros to " +"length precision if necessary. The sign and exponent of the first operand " +"are unchanged." +msgstr "" + +#: ../../library/decimal.rst:862 +msgid "" +"Test whether self and other have the same exponent or whether both are " +"``NaN``." +msgstr "" + +#: ../../library/decimal.rst:871 +msgid "" +"Return the first operand with exponent adjusted by the second. Equivalently, " +"return the first operand multiplied by ``10**other``. The second operand " +"must be an integer." +msgstr "" + +#: ../../library/decimal.rst:877 +msgid "" +"Return the result of shifting the digits of the first operand by an amount " +"specified by the second operand. The second operand must be an integer in " +"the range -precision through precision. The absolute value of the second " +"operand gives the number of places to shift. If the second operand is " +"positive then the shift is to the left; otherwise the shift is to the " +"right. Digits shifted into the coefficient are zeros. The sign and " +"exponent of the first operand are unchanged." +msgstr "" + +#: ../../library/decimal.rst:887 +msgid "Return the square root of the argument to full precision." +msgstr "" + +#: ../../library/decimal.rst:892 ../../library/decimal.rst:1549 +msgid "" +"Convert to a string, using engineering notation if an exponent is needed." +msgstr "" + +#: ../../library/decimal.rst:894 ../../library/decimal.rst:1551 +msgid "" +"Engineering notation has an exponent which is a multiple of 3. This can " +"leave up to 3 digits to the left of the decimal place and may require the " +"addition of either one or two trailing zeros." +msgstr "" + +#: ../../library/decimal.rst:898 +msgid "" +"For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." +msgstr "" + +#: ../../library/decimal.rst:902 +msgid "" +"Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " +"has been kept for compatibility with older versions." +msgstr "" + +#: ../../library/decimal.rst:907 +msgid "" +"Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " +"as appropriate if rounding occurs. The rounding mode is determined by the " +"``rounding`` parameter if given, else by the given ``context``. If neither " +"parameter is given then the rounding mode of the current context is used." +msgstr "" + +#: ../../library/decimal.rst:915 +msgid "" +"Round to the nearest integer without signaling :const:`Inexact` " +"or :const:`Rounded`. If given, applies *rounding*; otherwise, uses the " +"rounding method in either the supplied *context* or the current context." +msgstr "" + +#: ../../library/decimal.rst:919 +msgid "Decimal numbers can be rounded using the :func:`.round` function:" +msgstr "" + +#: ../../library/decimal.rst:924 +msgid "" +"If *ndigits* is not given or ``None``, returns the nearest :class:`int` to " +"*number*, rounding ties to even, and ignoring the rounding mode of " +"the :class:`Decimal` context. Raises :exc:`OverflowError` if *number* is an " +"infinity or :exc:`ValueError` if it is a (quiet or signaling) NaN." +msgstr "" + +#: ../../library/decimal.rst:930 +msgid "" +"If *ndigits* is an :class:`int`, the context's rounding mode is respected " +"and a :class:`Decimal` representing *number* rounded to the nearest multiple " +"of ``Decimal('1E-ndigits')`` is returned; in this case, ``round(number, " +"ndigits)`` is equivalent to ``self.quantize(Decimal('1E-ndigits'))``. " +"Returns ``Decimal('NaN')`` if *number* is a quiet NaN. " +"Raises :class:`InvalidOperation` if *number* is an infinity, a signaling " +"NaN, or if the length of the coefficient after the quantize operation would " +"be greater than the current context's precision. In other words, for the " +"non-corner cases:" +msgstr "" + +#: ../../library/decimal.rst:940 +msgid "" +"if *ndigits* is positive, return *number* rounded to *ndigits* decimal " +"places;" +msgstr "" + +#: ../../library/decimal.rst:942 +msgid "if *ndigits* is zero, return *number* rounded to the nearest integer;" +msgstr "" + +#: ../../library/decimal.rst:943 +msgid "" +"if *ndigits* is negative, return *number* rounded to the nearest multiple of " +"``10**abs(ndigits)``." +msgstr "" + +#: ../../library/decimal.rst:946 +msgid "For example::" +msgstr "" + +#: ../../library/decimal.rst:948 +msgid "" +">>> from decimal import Decimal, getcontext, ROUND_DOWN\n" +">>> getcontext().rounding = ROUND_DOWN\n" +">>> round(Decimal('3.75')) # context rounding ignored\n" +"4\n" +">>> round(Decimal('3.5')) # round-ties-to-even\n" +"4\n" +">>> round(Decimal('3.75'), 0) # uses the context rounding\n" +"Decimal('3')\n" +">>> round(Decimal('3.75'), 1)\n" +"Decimal('3.7')\n" +">>> round(Decimal('3.75'), -1)\n" +"Decimal('0E+1')" +msgstr "" + +#: ../../library/decimal.rst:965 +msgid "Logical operands" +msgstr "" + +#: ../../library/decimal.rst:967 +msgid "" +"The :meth:`~Decimal.logical_and`, :meth:`~Decimal.logical_invert`, :meth:`~Decimal.logical_or`, " +"and :meth:`~Decimal.logical_xor` methods expect their arguments to be " +"*logical operands*. A *logical operand* is a :class:`Decimal` instance " +"whose exponent and sign are both zero, and whose digits are all either ``0`` " +"or ``1``." +msgstr "" + +#: ../../library/decimal.rst:979 +msgid "Context objects" +msgstr "" + +#: ../../library/decimal.rst:981 +msgid "" +"Contexts are environments for arithmetic operations. They govern precision, " +"set rules for rounding, determine which signals are treated as exceptions, " +"and limit the range for exponents." +msgstr "" + +#: ../../library/decimal.rst:985 +msgid "" +"Each thread has its own current context which is accessed or changed using " +"the :func:`getcontext` and :func:`setcontext` functions:" +msgstr "" + +#: ../../library/decimal.rst:991 +msgid "Return the current context for the active thread." +msgstr "" + +#: ../../library/decimal.rst:996 +msgid "Set the current context for the active thread to *c*." +msgstr "" + +#: ../../library/decimal.rst:998 +msgid "" +"You can also use the :keyword:`with` statement and the :func:`localcontext` " +"function to temporarily change the active context." +msgstr "" + +#: ../../library/decimal.rst:1003 +msgid "" +"Return a context manager that will set the current context for the active " +"thread to a copy of *ctx* on entry to the with-statement and restore the " +"previous context when exiting the with-statement. If no context is " +"specified, a copy of the current context is used. The *kwargs* argument is " +"used to set the attributes of the new context." +msgstr "" + +#: ../../library/decimal.rst:1009 +msgid "" +"For example, the following code sets the current decimal precision to 42 " +"places, performs a calculation, and then automatically restores the previous " +"context::" +msgstr "" + +#: ../../library/decimal.rst:1012 +msgid "" +"from decimal import localcontext\n" +"\n" +"with localcontext() as ctx:\n" +" ctx.prec = 42 # Perform a high precision calculation\n" +" s = calculate_something()\n" +"s = +s # Round the final result back to the default precision" +msgstr "" + +#: ../../library/decimal.rst:1019 +msgid "Using keyword arguments, the code would be the following::" +msgstr "" + +#: ../../library/decimal.rst:1021 +msgid "" +"from decimal import localcontext\n" +"\n" +"with localcontext(prec=42) as ctx:\n" +" s = calculate_something()\n" +"s = +s" +msgstr "" + +#: ../../library/decimal.rst:1027 +msgid "" +"Raises :exc:`TypeError` if *kwargs* supplies an attribute " +"that :class:`Context` doesn't support. Raises either :exc:`TypeError` " +"or :exc:`ValueError` if *kwargs* supplies an invalid value for an attribute." +msgstr "" + +#: ../../library/decimal.rst:1031 +msgid "" +":meth:`localcontext` now supports setting context attributes through the use " +"of keyword arguments." +msgstr "" + +#: ../../library/decimal.rst:1036 +msgid "" +"Return a context object initialized to the proper values for one of the IEEE " +"interchange formats. The argument must be a multiple of 32 and less " +"than :const:`IEEE_CONTEXT_MAX_BITS`." +msgstr "" + +#: ../../library/decimal.rst:1042 +msgid "" +"New contexts can also be created using the :class:`Context` constructor " +"described below. In addition, the module provides three pre-made contexts:" +msgstr "" + +#: ../../library/decimal.rst:1048 +msgid "" +"This is a standard context defined by the General Decimal Arithmetic " +"Specification. Precision is set to nine. Rounding is set " +"to :const:`ROUND_HALF_UP`. All flags are cleared. All traps are enabled " +"(treated as exceptions) except :const:`Inexact`, :const:`Rounded`, " +"and :const:`Subnormal`." +msgstr "" + +#: ../../library/decimal.rst:1054 +msgid "" +"Because many of the traps are enabled, this context is useful for debugging." +msgstr "" + +#: ../../library/decimal.rst:1059 +msgid "" +"This is a standard context defined by the General Decimal Arithmetic " +"Specification. Precision is set to nine. Rounding is set " +"to :const:`ROUND_HALF_EVEN`. All flags are cleared. No traps are enabled " +"(so that exceptions are not raised during computations)." +msgstr "" + +#: ../../library/decimal.rst:1064 +msgid "" +"Because the traps are disabled, this context is useful for applications that " +"prefer to have result value of ``NaN`` or ``Infinity`` instead of raising " +"exceptions. This allows an application to complete a run in the presence of " +"conditions that would otherwise halt the program." +msgstr "" + +#: ../../library/decimal.rst:1072 +msgid "" +"This context is used by the :class:`Context` constructor as a prototype for " +"new contexts. Changing a field (such a precision) has the effect of " +"changing the default for new contexts created by the :class:`Context` " +"constructor." +msgstr "" + +#: ../../library/decimal.rst:1076 +msgid "" +"This context is most useful in multi-threaded environments. Changing one of " +"the fields before threads are started has the effect of setting system-wide " +"defaults. Changing the fields after threads have started is not recommended " +"as it would require thread synchronization to prevent race conditions." +msgstr "" + +#: ../../library/decimal.rst:1081 +msgid "" +"In single threaded environments, it is preferable to not use this context at " +"all. Instead, simply create contexts explicitly as described below." +msgstr "" + +#: ../../library/decimal.rst:1084 +msgid "" +"The default values are :attr:`Context.prec`\\ =\\ " +"``28``, :attr:`Context.rounding`\\ =\\ :const:`ROUND_HALF_EVEN`, and enabled " +"traps for :class:`Overflow`, :class:`InvalidOperation`, " +"and :class:`DivisionByZero`." +msgstr "" + +#: ../../library/decimal.rst:1089 +msgid "" +"In addition to the three supplied contexts, new contexts can be created with " +"the :class:`Context` constructor." +msgstr "" + +#: ../../library/decimal.rst:1095 +msgid "" +"Creates a new context. If a field is not specified or is :const:`None`, the " +"default values are copied from the :const:`DefaultContext`. If the *flags* " +"field is not specified or is :const:`None`, all flags are cleared." +msgstr "" + +#: ../../library/decimal.rst:1101 +msgid "" +"An integer in the range [``1``, :const:`MAX_PREC`] that sets the precision " +"for arithmetic operations in the context." +msgstr "" + +#: ../../library/decimal.rst:1106 +msgid "One of the constants listed in the section `Rounding Modes`_." +msgstr "" + +#: ../../library/decimal.rst:1111 +msgid "" +"Lists of any signals to be set. Generally, new contexts should only set " +"traps and leave the flags clear." +msgstr "" + +#: ../../library/decimal.rst:1117 +msgid "" +"Integers specifying the outer limits allowable for exponents. *Emin* must be " +"in the range [:const:`MIN_EMIN`, ``0``], *Emax* in the range " +"[``0``, :const:`MAX_EMAX`]." +msgstr "" + +#: ../../library/decimal.rst:1123 +msgid "" +"Either ``0`` or ``1`` (the default). If set to ``1``, exponents are printed " +"with a capital ``E``; otherwise, a lowercase ``e`` is used: " +"``Decimal('6.02e+23')``." +msgstr "" + +#: ../../library/decimal.rst:1129 +msgid "" +"Either ``0`` (the default) or ``1``. If set to ``1``, the exponent ``e`` of " +"a :class:`Decimal` instance representable in this context is strictly " +"limited to the range ``Emin - prec + 1 <= e <= Emax - prec + 1``. If *clamp* " +"is ``0`` then a weaker condition holds: the adjusted exponent of " +"the :class:`Decimal` instance is at most :attr:`~Context.Emax`. When " +"*clamp* is ``1``, a large normal number will, where possible, have its " +"exponent reduced and a corresponding number of zeros added to its " +"coefficient, in order to fit the exponent constraints; this preserves the " +"value of the number but loses information about significant trailing zeros. " +"For example::" +msgstr "" + +#: ../../library/decimal.rst:1140 +msgid "" +">>> Context(prec=6, Emax=999, clamp=1).create_decimal('1.23e999')\n" +"Decimal('1.23000E+999')" +msgstr "" + +#: ../../library/decimal.rst:1143 +msgid "" +"A *clamp* value of ``1`` allows compatibility with the fixed-width decimal " +"interchange formats specified in IEEE 754." +msgstr "" + +#: ../../library/decimal.rst:1146 +msgid "" +"The :class:`Context` class defines several general purpose methods as well " +"as a large number of methods for doing arithmetic directly in a given " +"context. In addition, for each of the :class:`Decimal` methods described " +"above (with the exception of the :meth:`~Decimal.adjusted` " +"and :meth:`~Decimal.as_tuple` methods) there is a " +"corresponding :class:`Context` method. For example, for a :class:`Context` " +"instance ``C`` and :class:`Decimal` instance ``x``, ``C.exp(x)`` is " +"equivalent to ``x.exp(context=C)``. Each :class:`Context` method accepts a " +"Python integer (an instance of :class:`int`) anywhere that a Decimal " +"instance is accepted." +msgstr "" + +#: ../../library/decimal.rst:1159 +msgid "Resets all of the flags to ``0``." +msgstr "" + +#: ../../library/decimal.rst:1163 +msgid "Resets all of the traps to ``0``." +msgstr "" + +#: ../../library/decimal.rst:1169 +msgid "Return a duplicate of the context." +msgstr "" + +#: ../../library/decimal.rst:1173 +msgid "Return a copy of the Decimal instance num." +msgstr "" + +#: ../../library/decimal.rst:1177 +msgid "" +"Creates a new Decimal instance from *num* but using *self* as context. " +"Unlike the :class:`Decimal` constructor, the context precision, rounding " +"method, flags, and traps are applied to the conversion." +msgstr "" + +#: ../../library/decimal.rst:1181 +msgid "" +"This is useful because constants are often given to a greater precision than " +"is needed by the application. Another benefit is that rounding immediately " +"eliminates unintended effects from digits beyond the current precision. In " +"the following example, using unrounded inputs means that adding zero to a " +"sum can change the result:" +msgstr "" + +#: ../../library/decimal.rst:1187 +msgid "" +">>> getcontext().prec = 3\n" +">>> Decimal('3.4445') + Decimal('1.0023')\n" +"Decimal('4.45')\n" +">>> Decimal('3.4445') + Decimal(0) + Decimal('1.0023')\n" +"Decimal('4.44')" +msgstr "" + +#: ../../library/decimal.rst:1195 +msgid "" +"This method implements the to-number operation of the IBM specification. If " +"the argument is a string, no leading or trailing whitespace or underscores " +"are permitted." +msgstr "" + +#: ../../library/decimal.rst:1201 +msgid "" +"Creates a new Decimal instance from a float *f* but rounding using *self* as " +"the context. Unlike the :meth:`Decimal.from_float` class method, the " +"context precision, rounding method, flags, and traps are applied to the " +"conversion." +msgstr "" + +#: ../../library/decimal.rst:1206 +msgid "" +">>> context = Context(prec=5, rounding=ROUND_DOWN)\n" +">>> context.create_decimal_from_float(math.pi)\n" +"Decimal('3.1415')\n" +">>> context = Context(prec=5, traps=[Inexact])\n" +">>> context.create_decimal_from_float(math.pi)\n" +"Traceback (most recent call last):\n" +" ...\n" +"decimal.Inexact: None" +msgstr "" + +#: ../../library/decimal.rst:1221 +msgid "" +"Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " +"value for subnormal results. When underflow occurs, the exponent is set " +"to :const:`Etiny`." +msgstr "" + +#: ../../library/decimal.rst:1227 +msgid "Returns a value equal to ``Emax - prec + 1``." +msgstr "" + +#: ../../library/decimal.rst:1229 +msgid "" +"The usual approach to working with decimals is to create :class:`Decimal` " +"instances and then apply arithmetic operations which take place within the " +"current context for the active thread. An alternative approach is to use " +"context methods for calculating within a specific context. The methods are " +"similar to those for the :class:`Decimal` class and are only briefly " +"recounted here." +msgstr "" + +#: ../../library/decimal.rst:1239 +msgid "Returns the absolute value of *x*." +msgstr "" + +#: ../../library/decimal.rst:1244 +msgid "Return the sum of *x* and *y*." +msgstr "" + +#: ../../library/decimal.rst:1249 +msgid "Returns the same Decimal object *x*." +msgstr "" + +#: ../../library/decimal.rst:1254 +msgid "Compares *x* and *y* numerically." +msgstr "" + +#: ../../library/decimal.rst:1259 +msgid "Compares the values of the two operands numerically." +msgstr "" + +#: ../../library/decimal.rst:1264 +msgid "Compares two operands using their abstract representation." +msgstr "" + +#: ../../library/decimal.rst:1269 +msgid "" +"Compares two operands using their abstract representation, ignoring sign." +msgstr "" + +#: ../../library/decimal.rst:1274 +msgid "Returns a copy of *x* with the sign set to 0." +msgstr "" + +#: ../../library/decimal.rst:1279 +msgid "Returns a copy of *x* with the sign inverted." +msgstr "" + +#: ../../library/decimal.rst:1284 +msgid "Copies the sign from *y* to *x*." +msgstr "" + +#: ../../library/decimal.rst:1289 +msgid "Return *x* divided by *y*." +msgstr "" + +#: ../../library/decimal.rst:1294 +msgid "Return *x* divided by *y*, truncated to an integer." +msgstr "" + +#: ../../library/decimal.rst:1299 +msgid "Divides two numbers and returns the integer part of the result." +msgstr "" + +#: ../../library/decimal.rst:1304 +msgid "Returns ``e ** x``." +msgstr "" + +#: ../../library/decimal.rst:1309 +msgid "Returns *x* multiplied by *y*, plus *z*." +msgstr "" + +#: ../../library/decimal.rst:1314 +msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1319 +msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1324 +msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1329 +msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1334 +msgid "" +"Returns ``True`` if *x* is a normal number; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1339 +msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1344 +msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1349 +msgid "" +"Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1354 +msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1359 +msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." +msgstr "" + +#: ../../library/decimal.rst:1364 +msgid "Returns the natural (base e) logarithm of *x*." +msgstr "" + +#: ../../library/decimal.rst:1369 +msgid "Returns the base 10 logarithm of *x*." +msgstr "" + +#: ../../library/decimal.rst:1374 +msgid "Returns the exponent of the magnitude of the operand's MSD." +msgstr "" + +#: ../../library/decimal.rst:1379 +msgid "Applies the logical operation *and* between each operand's digits." +msgstr "" + +#: ../../library/decimal.rst:1384 +msgid "Invert all the digits in *x*." +msgstr "" + +#: ../../library/decimal.rst:1389 +msgid "Applies the logical operation *or* between each operand's digits." +msgstr "" + +#: ../../library/decimal.rst:1394 +msgid "Applies the logical operation *xor* between each operand's digits." +msgstr "" + +#: ../../library/decimal.rst:1399 +msgid "Compares two values numerically and returns the maximum." +msgstr "" + +#: ../../library/decimal.rst:1404 ../../library/decimal.rst:1414 +msgid "Compares the values numerically with their sign ignored." +msgstr "" + +#: ../../library/decimal.rst:1409 +msgid "Compares two values numerically and returns the minimum." +msgstr "" + +#: ../../library/decimal.rst:1419 +msgid "Minus corresponds to the unary prefix minus operator in Python." +msgstr "" + +#: ../../library/decimal.rst:1424 +msgid "Return the product of *x* and *y*." +msgstr "" + +#: ../../library/decimal.rst:1429 +msgid "Returns the largest representable number smaller than *x*." +msgstr "" + +#: ../../library/decimal.rst:1434 +msgid "Returns the smallest representable number larger than *x*." +msgstr "" + +#: ../../library/decimal.rst:1439 +msgid "Returns the number closest to *x*, in direction towards *y*." +msgstr "" + +#: ../../library/decimal.rst:1444 +msgid "Reduces *x* to its simplest form." +msgstr "" + +#: ../../library/decimal.rst:1449 +msgid "Returns an indication of the class of *x*." +msgstr "" + +#: ../../library/decimal.rst:1454 +msgid "" +"Plus corresponds to the unary prefix plus operator in Python. This " +"operation applies the context precision and rounding, so it is *not* an " +"identity operation." +msgstr "" + +#: ../../library/decimal.rst:1461 +msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." +msgstr "" + +#: ../../library/decimal.rst:1463 +msgid "" +"With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " +"be integral. The result will be inexact unless ``y`` is integral and the " +"result is finite and can be expressed exactly in 'precision' digits. The " +"rounding mode of the context is used. Results are always correctly rounded " +"in the Python version." +msgstr "" + +#: ../../library/decimal.rst:1469 +msgid "" +"``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " +"``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." +msgstr "" + +#: ../../library/decimal.rst:1472 +msgid "" +"The C module computes :meth:`power` in terms of the correctly " +"rounded :meth:`exp` and :meth:`ln` functions. The result is well-defined but " +"only \"almost always correctly rounded\"." +msgstr "" + +#: ../../library/decimal.rst:1477 +msgid "" +"With three arguments, compute ``(x**y) % modulo``. For the three argument " +"form, the following restrictions on the arguments hold:" +msgstr "" + +#: ../../library/decimal.rst:1480 +msgid "all three arguments must be integral" +msgstr "" + +#: ../../library/decimal.rst:1481 +msgid "``y`` must be nonnegative" +msgstr "" + +#: ../../library/decimal.rst:1482 +msgid "at least one of ``x`` or ``y`` must be nonzero" +msgstr "" + +#: ../../library/decimal.rst:1483 +msgid "``modulo`` must be nonzero and have at most 'precision' digits" +msgstr "" + +#: ../../library/decimal.rst:1485 +msgid "" +"The value resulting from ``Context.power(x, y, modulo)`` is equal to the " +"value that would be obtained by computing ``(x**y) % modulo`` with unbounded " +"precision, but is computed more efficiently. The exponent of the result is " +"zero, regardless of the exponents of ``x``, ``y`` and ``modulo``. The " +"result is always exact." +msgstr "" + +#: ../../library/decimal.rst:1495 +msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." +msgstr "" + +#: ../../library/decimal.rst:1500 +msgid "Just returns 10, as this is Decimal, :)" +msgstr "" + +#: ../../library/decimal.rst:1505 +msgid "Returns the remainder from integer division." +msgstr "" + +#: ../../library/decimal.rst:1507 +msgid "" +"The sign of the result, if non-zero, is the same as that of the original " +"dividend." +msgstr "" + +#: ../../library/decimal.rst:1513 +msgid "" +"Returns ``x - y * n``, where *n* is the integer nearest the exact value of " +"``x / y`` (if the result is 0 then its sign will be the sign of *x*)." +msgstr "" + +#: ../../library/decimal.rst:1519 +msgid "Returns a rotated copy of *x*, *y* times." +msgstr "" + +#: ../../library/decimal.rst:1524 +msgid "Returns ``True`` if the two operands have the same exponent." +msgstr "" + +#: ../../library/decimal.rst:1529 +msgid "Returns the first operand after adding the second value its exp." +msgstr "" + +#: ../../library/decimal.rst:1534 +msgid "Returns a shifted copy of *x*, *y* times." +msgstr "" + +#: ../../library/decimal.rst:1539 +msgid "Square root of a non-negative number to context precision." +msgstr "" + +#: ../../library/decimal.rst:1544 +msgid "Return the difference between *x* and *y*." +msgstr "" + +#: ../../library/decimal.rst:1558 +msgid "Rounds to an integer." +msgstr "" + +#: ../../library/decimal.rst:1563 +msgid "Converts a number to a string using scientific notation." +msgstr "" + +#: ../../library/decimal.rst:1570 +msgid "Constants" +msgstr "" + +#: ../../library/decimal.rst:1572 +msgid "" +"The constants in this section are only relevant for the C module. They are " +"also included in the pure Python version for compatibility." +msgstr "" + +#: ../../library/decimal.rst:1576 +msgid "32-bit" +msgstr "" + +#: ../../library/decimal.rst:1576 +msgid "64-bit" +msgstr "" + +#: ../../library/decimal.rst:1578 ../../library/decimal.rst:1580 +msgid "``425000000``" +msgstr "``425000000``" + +#: ../../library/decimal.rst:1578 ../../library/decimal.rst:1580 +msgid "``999999999999999999``" +msgstr "``999999999999999999``" + +#: ../../library/decimal.rst:1582 +msgid "``-425000000``" +msgstr "``-425000000``" + +#: ../../library/decimal.rst:1582 +msgid "``-999999999999999999``" +msgstr "``-999999999999999999``" + +#: ../../library/decimal.rst:1584 +msgid "``-849999999``" +msgstr "``-849999999``" + +#: ../../library/decimal.rst:1584 +msgid "``-1999999999999999997``" +msgstr "``-1999999999999999997``" + +#: ../../library/decimal.rst:1586 +msgid "``256``" +msgstr "``256``" + +#: ../../library/decimal.rst:1586 +msgid "``512``" +msgstr "``512``" + +#: ../../library/decimal.rst:1591 +msgid "" +"The value is ``True``. Deprecated, because Python now always has threads." +msgstr "" + +#: ../../library/decimal.rst:1597 +msgid "" +"The default value is ``True``. If Python is :option:`configured using the --" +"without-decimal-contextvar option <--without-decimal-contextvar>`, the C " +"version uses a thread-local rather than a coroutine-local context and the " +"value is ``False``. This is slightly faster in some nested context " +"scenarios." +msgstr "" + +#: ../../library/decimal.rst:1606 +msgid "Rounding modes" +msgstr "" + +#: ../../library/decimal.rst:1610 +msgid "Round towards ``Infinity``." +msgstr "" + +#: ../../library/decimal.rst:1614 +msgid "Round towards zero." +msgstr "" + +#: ../../library/decimal.rst:1618 +msgid "Round towards ``-Infinity``." +msgstr "" + +#: ../../library/decimal.rst:1622 +msgid "Round to nearest with ties going towards zero." +msgstr "" + +#: ../../library/decimal.rst:1626 +msgid "Round to nearest with ties going to nearest even integer." +msgstr "" + +#: ../../library/decimal.rst:1630 +msgid "Round to nearest with ties going away from zero." +msgstr "" + +#: ../../library/decimal.rst:1634 +msgid "Round away from zero." +msgstr "" + +#: ../../library/decimal.rst:1638 +msgid "" +"Round away from zero if last digit after rounding towards zero would have " +"been 0 or 5; otherwise round towards zero." +msgstr "" + +#: ../../library/decimal.rst:1645 +msgid "Signals" +msgstr "" + +#: ../../library/decimal.rst:1647 +msgid "" +"Signals represent conditions that arise during computation. Each corresponds " +"to one context flag and one context trap enabler." +msgstr "" + +#: ../../library/decimal.rst:1650 +msgid "" +"The context flag is set whenever the condition is encountered. After the " +"computation, flags may be checked for informational purposes (for instance, " +"to determine whether a computation was exact). After checking the flags, be " +"sure to clear all flags before starting the next computation." +msgstr "" + +#: ../../library/decimal.rst:1655 +msgid "" +"If the context's trap enabler is set for the signal, then the condition " +"causes a Python exception to be raised. For example, if " +"the :class:`DivisionByZero` trap is set, then a :exc:`DivisionByZero` " +"exception is raised upon encountering the condition." +msgstr "" + +#: ../../library/decimal.rst:1663 +msgid "Altered an exponent to fit representation constraints." +msgstr "" + +#: ../../library/decimal.rst:1665 +msgid "" +"Typically, clamping occurs when an exponent falls outside the " +"context's :attr:`~Context.Emin` and :attr:`~Context.Emax` limits. If " +"possible, the exponent is reduced to fit by adding zeros to the coefficient." +msgstr "" + +#: ../../library/decimal.rst:1672 +msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." +msgstr "" + +#: ../../library/decimal.rst:1677 +msgid "Signals the division of a non-infinite number by zero." +msgstr "" + +#: ../../library/decimal.rst:1679 +msgid "" +"Can occur with division, modulo division, or when raising a number to a " +"negative power. If this signal is not trapped, returns ``Infinity`` or ``-" +"Infinity`` with the sign determined by the inputs to the calculation." +msgstr "" + +#: ../../library/decimal.rst:1686 +msgid "Indicates that rounding occurred and the result is not exact." +msgstr "" + +#: ../../library/decimal.rst:1688 +msgid "" +"Signals when non-zero digits were discarded during rounding. The rounded " +"result is returned. The signal flag or trap is used to detect when results " +"are inexact." +msgstr "" + +#: ../../library/decimal.rst:1695 +msgid "An invalid operation was performed." +msgstr "" + +#: ../../library/decimal.rst:1697 +msgid "" +"Indicates that an operation was requested that does not make sense. If not " +"trapped, returns ``NaN``. Possible causes include::" +msgstr "" + +#: ../../library/decimal.rst:1700 +msgid "" +"Infinity - Infinity\n" +"0 * Infinity\n" +"Infinity / Infinity\n" +"x % 0\n" +"Infinity % x\n" +"sqrt(-x) and x > 0\n" +"0 ** 0\n" +"x ** (non-integer)\n" +"x ** Infinity" +msgstr "" + +#: ../../library/decimal.rst:1713 +msgid "Numerical overflow." +msgstr "" + +#: ../../library/decimal.rst:1715 +msgid "" +"Indicates the exponent is larger than :attr:`Context.Emax` after rounding " +"has occurred. If not trapped, the result depends on the rounding mode, " +"either pulling inward to the largest representable finite number or rounding " +"outward to ``Infinity``. In either case, :class:`Inexact` " +"and :class:`Rounded` are also signaled." +msgstr "" + +#: ../../library/decimal.rst:1724 +msgid "Rounding occurred though possibly no information was lost." +msgstr "" + +#: ../../library/decimal.rst:1726 +msgid "" +"Signaled whenever rounding discards digits; even if those digits are zero " +"(such as rounding ``5.00`` to ``5.0``). If not trapped, returns the result " +"unchanged. This signal is used to detect loss of significant digits." +msgstr "" + +#: ../../library/decimal.rst:1734 +msgid "Exponent was lower than :attr:`~Context.Emin` prior to rounding." +msgstr "" + +#: ../../library/decimal.rst:1736 +msgid "" +"Occurs when an operation result is subnormal (the exponent is too small). If " +"not trapped, returns the result unchanged." +msgstr "" + +#: ../../library/decimal.rst:1742 +msgid "Numerical underflow with result rounded to zero." +msgstr "" + +#: ../../library/decimal.rst:1744 +msgid "" +"Occurs when a subnormal result is pushed to zero by " +"rounding. :class:`Inexact` and :class:`Subnormal` are also signaled." +msgstr "" + +#: ../../library/decimal.rst:1750 +msgid "Enable stricter semantics for mixing floats and Decimals." +msgstr "" + +#: ../../library/decimal.rst:1752 +msgid "" +"If the signal is not trapped (default), mixing floats and Decimals is " +"permitted in the :class:`~decimal.Decimal` " +"constructor, :meth:`~decimal.Context.create_decimal` and all comparison " +"operators. Both conversion and comparisons are exact. Any occurrence of a " +"mixed operation is silently recorded by setting :exc:`FloatOperation` in the " +"context flags. Explicit conversions with :meth:`~decimal.Decimal.from_float` " +"or :meth:`~decimal.Context.create_decimal_from_float` do not set the flag." +msgstr "" + +#: ../../library/decimal.rst:1760 +msgid "" +"Otherwise (the signal is trapped), only equality comparisons and explicit " +"conversions are silent. All other mixed operations " +"raise :exc:`FloatOperation`." +msgstr "" + +#: ../../library/decimal.rst:1764 +msgid "The following table summarizes the hierarchy of signals::" +msgstr "" + +#: ../../library/decimal.rst:1766 +msgid "" +"exceptions.ArithmeticError(exceptions.Exception)\n" +" DecimalException\n" +" Clamped\n" +" DivisionByZero(DecimalException, exceptions.ZeroDivisionError)\n" +" Inexact\n" +" Overflow(Inexact, Rounded)\n" +" Underflow(Inexact, Rounded, Subnormal)\n" +" InvalidOperation\n" +" Rounded\n" +" Subnormal\n" +" FloatOperation(DecimalException, exceptions.TypeError)" +msgstr "" + +#: ../../library/decimal.rst:1785 +msgid "Floating-point notes" +msgstr "" + +#: ../../library/decimal.rst:1789 +msgid "Mitigating round-off error with increased precision" +msgstr "" + +#: ../../library/decimal.rst:1791 +msgid "" +"The use of decimal floating point eliminates decimal representation error " +"(making it possible to represent ``0.1`` exactly); however, some operations " +"can still incur round-off error when non-zero digits exceed the fixed " +"precision." +msgstr "" + +#: ../../library/decimal.rst:1795 +msgid "" +"The effects of round-off error can be amplified by the addition or " +"subtraction of nearly offsetting quantities resulting in loss of " +"significance. Knuth provides two instructive examples where rounded " +"floating-point arithmetic with insufficient precision causes the breakdown " +"of the associative and distributive properties of addition:" +msgstr "" + +#: ../../library/decimal.rst:1801 +msgid "" +"# Examples from Seminumerical Algorithms, Section 4.2.2.\n" +">>> from decimal import Decimal, getcontext\n" +">>> getcontext().prec = 8\n" +"\n" +">>> u, v, w = Decimal(11111113), Decimal(-11111111), Decimal('7.51111111')\n" +">>> (u + v) + w\n" +"Decimal('9.5111111')\n" +">>> u + (v + w)\n" +"Decimal('10')\n" +"\n" +">>> u, v, w = Decimal(20000), Decimal(-6), Decimal('6.0000003')\n" +">>> (u*v) + (u*w)\n" +"Decimal('0.01')\n" +">>> u * (v+w)\n" +"Decimal('0.0060000')" +msgstr "" + +#: ../../library/decimal.rst:1819 +msgid "" +"The :mod:`decimal` module makes it possible to restore the identities by " +"expanding the precision sufficiently to avoid loss of significance:" +msgstr "" + +#: ../../library/decimal.rst:1822 +msgid "" +">>> getcontext().prec = 20\n" +">>> u, v, w = Decimal(11111113), Decimal(-11111111), Decimal('7.51111111')\n" +">>> (u + v) + w\n" +"Decimal('9.51111111')\n" +">>> u + (v + w)\n" +"Decimal('9.51111111')\n" +">>>\n" +">>> u, v, w = Decimal(20000), Decimal(-6), Decimal('6.0000003')\n" +">>> (u*v) + (u*w)\n" +"Decimal('0.0060000')\n" +">>> u * (v+w)\n" +"Decimal('0.0060000')" +msgstr "" + +#: ../../library/decimal.rst:1839 +msgid "Special values" +msgstr "" + +#: ../../library/decimal.rst:1841 +msgid "" +"The number system for the :mod:`decimal` module provides special values " +"including ``NaN``, ``sNaN``, ``-Infinity``, ``Infinity``, and two zeros, " +"``+0`` and ``-0``." +msgstr "" + +#: ../../library/decimal.rst:1845 +msgid "" +"Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " +"they can arise from dividing by zero when the :exc:`DivisionByZero` signal " +"is not trapped. Likewise, when the :exc:`Overflow` signal is not trapped, " +"infinity can result from rounding beyond the limits of the largest " +"representable number." +msgstr "" + +#: ../../library/decimal.rst:1850 +msgid "" +"The infinities are signed (affine) and can be used in arithmetic operations " +"where they get treated as very large, indeterminate numbers. For instance, " +"adding a constant to infinity gives another infinite result." +msgstr "" + +#: ../../library/decimal.rst:1854 +msgid "" +"Some operations are indeterminate and return ``NaN``, or if " +"the :exc:`InvalidOperation` signal is trapped, raise an exception. For " +"example, ``0/0`` returns ``NaN`` which means \"not a number\". This variety " +"of ``NaN`` is quiet and, once created, will flow through other computations " +"always resulting in another ``NaN``. This behavior can be useful for a " +"series of computations that occasionally have missing inputs --- it allows " +"the calculation to proceed while flagging specific results as invalid." +msgstr "" + +#: ../../library/decimal.rst:1862 +msgid "" +"A variant is ``sNaN`` which signals rather than remaining quiet after every " +"operation. This is a useful return value when an invalid result needs to " +"interrupt a calculation for special handling." +msgstr "" + +#: ../../library/decimal.rst:1866 +msgid "" +"The behavior of Python's comparison operators can be a little surprising " +"where a ``NaN`` is involved. A test for equality where one of the operands " +"is a quiet or signaling ``NaN`` always returns :const:`False` (even when " +"doing ``Decimal('NaN')==Decimal('NaN')``), while a test for inequality " +"always returns :const:`True`. An attempt to compare two Decimals using any " +"of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise " +"the :exc:`InvalidOperation` signal if either operand is a ``NaN``, and " +"return :const:`False` if this signal is not trapped. Note that the General " +"Decimal Arithmetic specification does not specify the behavior of direct " +"comparisons; these rules for comparisons involving a ``NaN`` were taken from " +"the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict " +"standards-compliance, use the :meth:`~Decimal.compare` " +"and :meth:`~Decimal.compare_signal` methods instead." +msgstr "" + +#: ../../library/decimal.rst:1879 +msgid "" +"The signed zeros can result from calculations that underflow. They keep the " +"sign that would have resulted if the calculation had been carried out to " +"greater precision. Since their magnitude is zero, both positive and " +"negative zeros are treated as equal and their sign is informational." +msgstr "" + +#: ../../library/decimal.rst:1884 +msgid "" +"In addition to the two signed zeros which are distinct yet equal, there are " +"various representations of zero with differing precisions yet equivalent in " +"value. This takes a bit of getting used to. For an eye accustomed to " +"normalized floating-point representations, it is not immediately obvious " +"that the following calculation returns a value equal to zero:" +msgstr "" + +#: ../../library/decimal.rst:1899 +msgid "Working with threads" +msgstr "" + +#: ../../library/decimal.rst:1901 +msgid "" +"The :func:`getcontext` function accesses a different :class:`Context` object " +"for each thread. Having separate thread contexts means that threads may " +"make changes (such as ``getcontext().prec=10``) without interfering with " +"other threads." +msgstr "" + +#: ../../library/decimal.rst:1905 +msgid "" +"Likewise, the :func:`setcontext` function automatically assigns its target " +"to the current thread." +msgstr "" + +#: ../../library/decimal.rst:1908 +msgid "" +"If :func:`setcontext` has not been called before :func:`getcontext`, " +"then :func:`getcontext` will automatically create a new context for use in " +"the current thread. New context objects have default values set from " +"the :data:`decimal.DefaultContext` object." +msgstr "" + +#: ../../library/decimal.rst:1913 +msgid "" +"The :data:`sys.flags.thread_inherit_context` flag affects the context for " +"new threads. If the flag is false, new threads will start with an empty " +"context. In this case, :func:`getcontext` will create a new context object " +"when called and use the default values from *DefaultContext*. If the flag " +"is true, new threads will start with a copy of context from the caller " +"of :meth:`threading.Thread.start`." +msgstr "" + +#: ../../library/decimal.rst:1920 +msgid "" +"To control the defaults so that each thread will use the same values " +"throughout the application, directly modify the *DefaultContext* object. " +"This should be done *before* any threads are started so that there won't be " +"a race condition between threads calling :func:`getcontext`. For example::" +msgstr "" + +#: ../../library/decimal.rst:1925 +msgid "" +"# Set applicationwide defaults for all threads about to be launched\n" +"DefaultContext.prec = 12\n" +"DefaultContext.rounding = ROUND_DOWN\n" +"DefaultContext.traps = ExtendedContext.traps.copy()\n" +"DefaultContext.traps[InvalidOperation] = 1\n" +"setcontext(DefaultContext)\n" +"\n" +"# Afterwards, the threads can be started\n" +"t1.start()\n" +"t2.start()\n" +"t3.start()\n" +" . . ." +msgstr "" + +#: ../../library/decimal.rst:1944 +msgid "Recipes" +msgstr "" + +#: ../../library/decimal.rst:1946 +msgid "" +"Here are a few recipes that serve as utility functions and that demonstrate " +"ways to work with the :class:`Decimal` class::" +msgstr "" + +#: ../../library/decimal.rst:1949 +msgid "" +"def moneyfmt(value, places=2, curr='', sep=',', dp='.',\n" +" pos='', neg='-', trailneg=''):\n" +" \"\"\"Convert Decimal to a money formatted string.\n" +"\n" +" places: required number of places after the decimal point\n" +" curr: optional currency symbol before the sign (may be blank)\n" +" sep: optional grouping separator (comma, period, space, or blank)\n" +" dp: decimal point indicator (comma or period)\n" +" only specify as blank when places is zero\n" +" pos: optional sign for positive numbers: '+', space or blank\n" +" neg: optional sign for negative numbers: '-', '(', space or blank\n" +" trailneg:optional trailing minus indicator: '-', ')', space or blank\n" +"\n" +" >>> d = Decimal('-1234567.8901')\n" +" >>> moneyfmt(d, curr='$')\n" +" '-$1,234,567.89'\n" +" >>> moneyfmt(d, places=0, sep='.', dp='', neg='', trailneg='-')\n" +" '1.234.568-'\n" +" >>> moneyfmt(d, curr='$', neg='(', trailneg=')')\n" +" '($1,234,567.89)'\n" +" >>> moneyfmt(Decimal(123456789), sep=' ')\n" +" '123 456 789.00'\n" +" >>> moneyfmt(Decimal('-0.02'), neg='<', trailneg='>')\n" +" '<0.02>'\n" +"\n" +" \"\"\"\n" +" q = Decimal(10) ** -places # 2 places --> '0.01'\n" +" sign, digits, exp = value.quantize(q).as_tuple()\n" +" result = []\n" +" digits = list(map(str, digits))\n" +" build, next = result.append, digits.pop\n" +" if sign:\n" +" build(trailneg)\n" +" for i in range(places):\n" +" build(next() if digits else '0')\n" +" if places:\n" +" build(dp)\n" +" if not digits:\n" +" build('0')\n" +" i = 0\n" +" while digits:\n" +" build(next())\n" +" i += 1\n" +" if i == 3 and digits:\n" +" i = 0\n" +" build(sep)\n" +" build(curr)\n" +" build(neg if sign else pos)\n" +" return ''.join(reversed(result))\n" +"\n" +"def pi():\n" +" \"\"\"Compute Pi to the current precision.\n" +"\n" +" >>> print(pi())\n" +" 3.141592653589793238462643383\n" +"\n" +" \"\"\"\n" +" getcontext().prec += 2 # extra digits for intermediate steps\n" +" three = Decimal(3) # substitute \"three=3.0\" for regular floats\n" +" lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24\n" +" while s != lasts:\n" +" lasts = s\n" +" n, na = n+na, na+8\n" +" d, da = d+da, da+32\n" +" t = (t * n) / d\n" +" s += t\n" +" getcontext().prec -= 2\n" +" return +s # unary plus applies the new precision\n" +"\n" +"def exp(x):\n" +" \"\"\"Return e raised to the power of x. Result type matches input " +"type.\n" +"\n" +" >>> print(exp(Decimal(1)))\n" +" 2.718281828459045235360287471\n" +" >>> print(exp(Decimal(2)))\n" +" 7.389056098930650227230427461\n" +" >>> print(exp(2.0))\n" +" 7.38905609893\n" +" >>> print(exp(2+0j))\n" +" (7.38905609893+0j)\n" +"\n" +" \"\"\"\n" +" getcontext().prec += 2\n" +" i, lasts, s, fact, num = 0, 0, 1, 1, 1\n" +" while s != lasts:\n" +" lasts = s\n" +" i += 1\n" +" fact *= i\n" +" num *= x\n" +" s += num / fact\n" +" getcontext().prec -= 2\n" +" return +s\n" +"\n" +"def cos(x):\n" +" \"\"\"Return the cosine of x as measured in radians.\n" +"\n" +" The Taylor series approximation works best for a small value of x.\n" +" For larger values, first compute x = x % (2 * pi).\n" +"\n" +" >>> print(cos(Decimal('0.5')))\n" +" 0.8775825618903727161162815826\n" +" >>> print(cos(0.5))\n" +" 0.87758256189\n" +" >>> print(cos(0.5+0j))\n" +" (0.87758256189+0j)\n" +"\n" +" \"\"\"\n" +" getcontext().prec += 2\n" +" i, lasts, s, fact, num, sign = 0, 0, 1, 1, 1, 1\n" +" while s != lasts:\n" +" lasts = s\n" +" i += 2\n" +" fact *= i * (i-1)\n" +" num *= x * x\n" +" sign *= -1\n" +" s += num / fact * sign\n" +" getcontext().prec -= 2\n" +" return +s\n" +"\n" +"def sin(x):\n" +" \"\"\"Return the sine of x as measured in radians.\n" +"\n" +" The Taylor series approximation works best for a small value of x.\n" +" For larger values, first compute x = x % (2 * pi).\n" +"\n" +" >>> print(sin(Decimal('0.5')))\n" +" 0.4794255386042030002732879352\n" +" >>> print(sin(0.5))\n" +" 0.479425538604\n" +" >>> print(sin(0.5+0j))\n" +" (0.479425538604+0j)\n" +"\n" +" \"\"\"\n" +" getcontext().prec += 2\n" +" i, lasts, s, fact, num, sign = 1, 0, x, 1, x, 1\n" +" while s != lasts:\n" +" lasts = s\n" +" i += 2\n" +" fact *= i * (i-1)\n" +" num *= x * x\n" +" sign *= -1\n" +" s += num / fact * sign\n" +" getcontext().prec -= 2\n" +" return +s" +msgstr "" + +#: ../../library/decimal.rst:2101 +msgid "Decimal FAQ" +msgstr "" + +#: ../../library/decimal.rst:2103 +msgid "" +"Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " +"to minimize typing when using the interactive interpreter?" +msgstr "" + +#: ../../library/decimal.rst:2106 +msgid "A. Some users abbreviate the constructor to just a single letter:" +msgstr "" + +#: ../../library/decimal.rst:2112 +msgid "" +"Q. In a fixed-point application with two decimal places, some inputs have " +"many places and need to be rounded. Others are not supposed to have excess " +"digits and need to be validated. What methods should be used?" +msgstr "" + +#: ../../library/decimal.rst:2116 +msgid "" +"A. The :meth:`~Decimal.quantize` method rounds to a fixed number of decimal " +"places. If the :const:`Inexact` trap is set, it is also useful for " +"validation:" +msgstr "" + +#: ../../library/decimal.rst:2134 +msgid "" +"Q. Once I have valid two place inputs, how do I maintain that invariant " +"throughout an application?" +msgstr "" + +#: ../../library/decimal.rst:2137 +msgid "" +"A. Some operations like addition, subtraction, and multiplication by an " +"integer will automatically preserve fixed point. Others operations, like " +"division and non-integer multiplication, will change the number of decimal " +"places and need to be followed-up with a :meth:`~Decimal.quantize` step:" +msgstr "" + +#: ../../library/decimal.rst:2155 +msgid "" +"In developing fixed-point applications, it is convenient to define functions " +"to handle the :meth:`~Decimal.quantize` step:" +msgstr "" + +#: ../../library/decimal.rst:2169 +msgid "" +"Q. There are many ways to express the same value. The numbers ``200``, " +"``200.000``, ``2E2``, and ``.02E+4`` all have the same value at various " +"precisions. Is there a way to transform them to a single recognizable " +"canonical value?" +msgstr "" + +#: ../../library/decimal.rst:2174 +msgid "" +"A. The :meth:`~Decimal.normalize` method maps all equivalent values to a " +"single representative:" +msgstr "" + +#: ../../library/decimal.rst:2181 +msgid "Q. When does rounding occur in a computation?" +msgstr "" + +#: ../../library/decimal.rst:2183 +msgid "" +"A. It occurs *after* the computation. The philosophy of the decimal " +"specification is that numbers are considered exact and are created " +"independent of the current context. They can even have greater precision " +"than current context. Computations process with those exact inputs and then " +"rounding (or other context operations) is applied to the *result* of the " +"computation::" +msgstr "" + +#: ../../library/decimal.rst:2190 +msgid "" +">>> getcontext().prec = 5\n" +">>> pi = Decimal('3.1415926535') # More than 5 digits\n" +">>> pi # All digits are retained\n" +"Decimal('3.1415926535')\n" +">>> pi + 0 # Rounded after an addition\n" +"Decimal('3.1416')\n" +">>> pi - Decimal('0.00005') # Subtract unrounded numbers, then round\n" +"Decimal('3.1415')\n" +">>> pi + 0 - Decimal('0.00005'). # Intermediate values are rounded\n" +"Decimal('3.1416')" +msgstr "" + +#: ../../library/decimal.rst:2201 +msgid "" +"Q. Some decimal values always print with exponential notation. Is there a " +"way to get a non-exponential representation?" +msgstr "" + +#: ../../library/decimal.rst:2204 +msgid "" +"A. For some values, exponential notation is the only way to express the " +"number of significant places in the coefficient. For example, expressing " +"``5.0E+3`` as ``5000`` keeps the value constant but cannot show the " +"original's two-place significance." +msgstr "" + +#: ../../library/decimal.rst:2209 +msgid "" +"If an application does not care about tracking significance, it is easy to " +"remove the exponent and trailing zeroes, losing significance, but keeping " +"the value unchanged:" +msgstr "" + +#: ../../library/decimal.rst:2219 +msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" +msgstr "" + +#: ../../library/decimal.rst:2221 +msgid "" +"A. Yes, any binary floating-point number can be exactly expressed as a " +"Decimal though an exact conversion may take more precision than intuition " +"would suggest:" +msgstr "" + +#: ../../library/decimal.rst:2225 +msgid "" +">>> Decimal(math.pi)\n" +"Decimal('3.141592653589793115997963468544185161590576171875')" +msgstr "" + +#: ../../library/decimal.rst:2230 +msgid "" +"Q. Within a complex calculation, how can I make sure that I haven't gotten a " +"spurious result because of insufficient precision or rounding anomalies." +msgstr "" + +#: ../../library/decimal.rst:2233 +msgid "" +"A. The decimal module makes it easy to test results. A best practice is to " +"re-run calculations using greater precision and with various rounding modes. " +"Widely differing results indicate insufficient precision, rounding mode " +"issues, ill-conditioned inputs, or a numerically unstable algorithm." +msgstr "" + +#: ../../library/decimal.rst:2238 +msgid "" +"Q. I noticed that context precision is applied to the results of operations " +"but not to the inputs. Is there anything to watch out for when mixing " +"values of different precisions?" +msgstr "" + +#: ../../library/decimal.rst:2242 +msgid "" +"A. Yes. The principle is that all values are considered to be exact and so " +"is the arithmetic on those values. Only the results are rounded. The " +"advantage for inputs is that \"what you type is what you get\". A " +"disadvantage is that the results can look odd if you forget that the inputs " +"haven't been rounded:" +msgstr "" + +#: ../../library/decimal.rst:2247 +msgid "" +">>> getcontext().prec = 3\n" +">>> Decimal('3.104') + Decimal('2.104')\n" +"Decimal('5.21')\n" +">>> Decimal('3.104') + Decimal('0.000') + Decimal('2.104')\n" +"Decimal('5.20')" +msgstr "" + +#: ../../library/decimal.rst:2255 +msgid "" +"The solution is either to increase precision or to force rounding of inputs " +"using the unary plus operation:" +msgstr "" + +#: ../../library/decimal.rst:2258 +msgid "" +">>> getcontext().prec = 3\n" +">>> +Decimal('1.23456789') # unary plus triggers rounding\n" +"Decimal('1.23')" +msgstr "" + +#: ../../library/decimal.rst:2264 +msgid "" +"Alternatively, inputs can be rounded upon creation using " +"the :meth:`Context.create_decimal` method:" +msgstr "" + +#: ../../library/decimal.rst:2270 +msgid "Q. Is the CPython implementation fast for large numbers?" +msgstr "" + +#: ../../library/decimal.rst:2272 +msgid "" +"A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " +"the decimal module integrate the high speed `libmpdec `_ library for arbitrary " +"precision correctly rounded decimal floating-point arithmetic [#]_. " +"``libmpdec`` uses `Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic " +"Transform `_ for very " +"large numbers." +msgstr "" + +#: ../../library/decimal.rst:2282 +msgid "" +"The context must be adapted for exact arbitrary precision " +"arithmetic. :attr:`~Context.Emin` and :attr:`~Context.Emax` should always be " +"set to the maximum values, :attr:`~Context.clamp` should always be 0 (the " +"default). Setting :attr:`~Context.prec` requires some care." +msgstr "" + +#: ../../library/decimal.rst:2286 +msgid "" +"The easiest approach for trying out bignum arithmetic is to use the maximum " +"value for :attr:`~Context.prec` as well [#]_::" +msgstr "" + +#: ../../library/decimal.rst:2289 +msgid "" +">>> setcontext(Context(prec=MAX_PREC, Emax=MAX_EMAX, Emin=MIN_EMIN))\n" +">>> x = Decimal(2) ** 256\n" +">>> x / 128\n" +"Decimal('904625697166532776746648320380374280103671755200316906558262375061821325312')" +msgstr "" + +#: ../../library/decimal.rst:2295 +msgid "" +"For inexact results, :const:`MAX_PREC` is far too large on 64-bit platforms " +"and the available memory will be insufficient::" +msgstr "" + +#: ../../library/decimal.rst:2298 +msgid "" +">>> Decimal(1) / 3\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"MemoryError" +msgstr "" + +#: ../../library/decimal.rst:2303 +msgid "" +"On systems with overallocation (e.g. Linux), a more sophisticated approach " +"is to adjust :attr:`~Context.prec` to the amount of available RAM. Suppose " +"that you have 8GB of RAM and expect 10 simultaneous operands using a maximum " +"of 500MB each::" +msgstr "" + +#: ../../library/decimal.rst:2307 +msgid "" +">>> import sys\n" +">>>\n" +">>> # Maximum number of digits for a single operand using 500MB in 8-byte " +"words\n" +">>> # with 19 digits per word (4-byte and 9 digits for the 32-bit build):\n" +">>> maxdigits = 19 * ((500 * 1024**2) // 8)\n" +">>>\n" +">>> # Check that this works:\n" +">>> c = Context(prec=maxdigits, Emax=MAX_EMAX, Emin=MIN_EMIN)\n" +">>> c.traps[Inexact] = True\n" +">>> setcontext(c)\n" +">>>\n" +">>> # Fill the available precision with nines:\n" +">>> x = Decimal(0).logical_invert() * 9\n" +">>> sys.getsizeof(x)\n" +"524288112\n" +">>> x + 2\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" decimal.Inexact: []" +msgstr "" + +#: ../../library/decimal.rst:2327 +msgid "" +"In general (and especially on systems without overallocation), it is " +"recommended to estimate even tighter bounds and set the :attr:`Inexact` trap " +"if all calculations are expected to be exact." +msgstr "" + +#: ../../library/decimal.rst:2336 +msgid "" +"This approach now works for all exact results except for non-integer powers." +msgstr "" diff --git a/library/development.po b/library/development.po new file mode 100644 index 0000000..83390eb --- /dev/null +++ b/library/development.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/development.rst:5 +msgid "Development Tools" +msgstr "" + +#: ../../library/development.rst:7 +msgid "" +"The modules described in this chapter help you write software. For example, " +"the :mod:`pydoc` module takes a module and generates documentation based on " +"the module's contents. The :mod:`doctest` and :mod:`unittest` modules " +"contains frameworks for writing unit tests that automatically exercise code " +"and verify that the expected output is produced." +msgstr "" + +#: ../../library/development.rst:13 +msgid "The list of modules described in this chapter is:" +msgstr "" diff --git a/library/devmode.po b/library/devmode.po new file mode 100644 index 0000000..3ab162e --- /dev/null +++ b/library/devmode.po @@ -0,0 +1,385 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/devmode.rst:4 +msgid "Python Development Mode" +msgstr "" + +#: ../../library/devmode.rst:8 +msgid "" +"The Python Development Mode introduces additional runtime checks that are " +"too expensive to be enabled by default. It should not be more verbose than " +"the default if the code is correct; new warnings are only emitted when an " +"issue is detected." +msgstr "" + +#: ../../library/devmode.rst:13 +msgid "" +"It can be enabled using the :option:`-X dev <-X>` command line option or by " +"setting the :envvar:`PYTHONDEVMODE` environment variable to ``1``." +msgstr "" + +#: ../../library/devmode.rst:16 +msgid "See also :ref:`Python debug build `." +msgstr "" + +#: ../../library/devmode.rst:19 +msgid "Effects of the Python Development Mode" +msgstr "" + +#: ../../library/devmode.rst:21 +msgid "" +"Enabling the Python Development Mode is similar to the following command, " +"but with additional effects described below::" +msgstr "" + +#: ../../library/devmode.rst:24 +msgid "" +"PYTHONMALLOC=debug PYTHONASYNCIODEBUG=1 python -W default -X faulthandler" +msgstr "" + +#: ../../library/devmode.rst:26 +msgid "Effects of the Python Development Mode:" +msgstr "" + +#: ../../library/devmode.rst:28 +msgid "" +"Add ``default`` :ref:`warning filter `. The " +"following warnings are shown:" +msgstr "" + +#: ../../library/devmode.rst:31 +msgid ":exc:`DeprecationWarning`" +msgstr "" + +#: ../../library/devmode.rst:32 +msgid ":exc:`ImportWarning`" +msgstr "" + +#: ../../library/devmode.rst:33 +msgid ":exc:`PendingDeprecationWarning`" +msgstr "" + +#: ../../library/devmode.rst:34 +msgid ":exc:`ResourceWarning`" +msgstr "" + +#: ../../library/devmode.rst:36 +msgid "" +"Normally, the above warnings are filtered by the default :ref:`warning " +"filters `." +msgstr "" + +#: ../../library/devmode.rst:39 +msgid "" +"It behaves as if the :option:`-W default <-W>` command line option is used." +msgstr "" + +#: ../../library/devmode.rst:41 +msgid "" +"Use the :option:`-W error <-W>` command line option or set " +"the :envvar:`PYTHONWARNINGS` environment variable to ``error`` to treat " +"warnings as errors." +msgstr "" + +#: ../../library/devmode.rst:45 +msgid "Install debug hooks on memory allocators to check for:" +msgstr "" + +#: ../../library/devmode.rst:47 +msgid "Buffer underflow" +msgstr "" + +#: ../../library/devmode.rst:48 +msgid "Buffer overflow" +msgstr "" + +#: ../../library/devmode.rst:49 +msgid "Memory allocator API violation" +msgstr "" + +#: ../../library/devmode.rst:50 +msgid "Unsafe usage of the GIL" +msgstr "" + +#: ../../library/devmode.rst:52 +msgid "See the :c:func:`PyMem_SetupDebugHooks` C function." +msgstr "" + +#: ../../library/devmode.rst:54 +msgid "" +"It behaves as if the :envvar:`PYTHONMALLOC` environment variable is set to " +"``debug``." +msgstr "" + +#: ../../library/devmode.rst:57 +msgid "" +"To enable the Python Development Mode without installing debug hooks on " +"memory allocators, set the :envvar:`PYTHONMALLOC` environment variable to " +"``default``." +msgstr "" + +#: ../../library/devmode.rst:61 +msgid "" +"Call :func:`faulthandler.enable` at Python startup to install handlers for " +"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS` " +"and :const:`~signal.SIGILL` signals to dump the Python traceback on a crash." +msgstr "" + +#: ../../library/devmode.rst:66 +msgid "" +"It behaves as if the :option:`-X faulthandler <-X>` command line option is " +"used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to " +"``1``." +msgstr "" + +#: ../../library/devmode.rst:70 +msgid "" +"Enable :ref:`asyncio debug mode `. For " +"example, :mod:`asyncio` checks for coroutines that were not awaited and logs " +"them." +msgstr "" + +#: ../../library/devmode.rst:73 +msgid "" +"It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is " +"set to ``1``." +msgstr "" + +#: ../../library/devmode.rst:76 +msgid "" +"Check the *encoding* and *errors* arguments for string encoding and decoding " +"operations. Examples: :func:`open`, :meth:`str.encode` " +"and :meth:`bytes.decode`." +msgstr "" + +#: ../../library/devmode.rst:80 +msgid "" +"By default, for best performance, the *errors* argument is only checked at " +"the first encoding/decoding error and the *encoding* argument is sometimes " +"ignored for empty strings." +msgstr "" + +#: ../../library/devmode.rst:84 +msgid "The :class:`io.IOBase` destructor logs ``close()`` exceptions." +msgstr "" + +#: ../../library/devmode.rst:85 +msgid "" +"Set the :attr:`~sys.flags.dev_mode` attribute of :data:`sys.flags` to " +"``True``." +msgstr "" + +#: ../../library/devmode.rst:88 +msgid "" +"The Python Development Mode does not enable the :mod:`tracemalloc` module by " +"default, because the overhead cost (to performance and memory) would be too " +"large. Enabling the :mod:`tracemalloc` module provides additional " +"information on the origin of some errors. For " +"example, :exc:`ResourceWarning` logs the traceback where the resource was " +"allocated, and a buffer overflow error logs the traceback where the memory " +"block was allocated." +msgstr "" + +#: ../../library/devmode.rst:95 +msgid "" +"The Python Development Mode does not prevent the :option:`-O` command line " +"option from removing :keyword:`assert` statements nor from " +"setting :const:`__debug__` to ``False``." +msgstr "" + +#: ../../library/devmode.rst:99 +msgid "" +"The Python Development Mode can only be enabled at the Python startup. Its " +"value can be read from :data:`sys.flags.dev_mode `." +msgstr "" + +#: ../../library/devmode.rst:102 +msgid "The :class:`io.IOBase` destructor now logs ``close()`` exceptions." +msgstr "" + +#: ../../library/devmode.rst:105 +msgid "" +"The *encoding* and *errors* arguments are now checked for string encoding " +"and decoding operations." +msgstr "" + +#: ../../library/devmode.rst:111 +msgid "ResourceWarning Example" +msgstr "" + +#: ../../library/devmode.rst:113 +msgid "" +"Example of a script counting the number of lines of the text file specified " +"in the command line::" +msgstr "" + +#: ../../library/devmode.rst:116 +msgid "" +"import sys\n" +"\n" +"def main():\n" +" fp = open(sys.argv[1])\n" +" nlines = len(fp.readlines())\n" +" print(nlines)\n" +" # The file is closed implicitly\n" +"\n" +"if __name__ == \"__main__\":\n" +" main()" +msgstr "" + +#: ../../library/devmode.rst:127 +msgid "" +"The script does not close the file explicitly. By default, Python does not " +"emit any warning. Example using README.txt, which has 269 lines:" +msgstr "" + +#: ../../library/devmode.rst:130 +msgid "" +"$ python script.py README.txt\n" +"269" +msgstr "" + +#: ../../library/devmode.rst:135 +msgid "" +"Enabling the Python Development Mode displays a :exc:`ResourceWarning` " +"warning:" +msgstr "" + +#: ../../library/devmode.rst:137 +msgid "" +"$ python -X dev script.py README.txt\n" +"269\n" +"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper " +"name='README.rst' mode='r' encoding='UTF-8'>\n" +" main()\n" +"ResourceWarning: Enable tracemalloc to get the object allocation traceback" +msgstr "" + +#: ../../library/devmode.rst:145 +msgid "" +"In addition, enabling :mod:`tracemalloc` shows the line where the file was " +"opened:" +msgstr "" + +#: ../../library/devmode.rst:148 +msgid "" +"$ python -X dev -X tracemalloc=5 script.py README.rst\n" +"269\n" +"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper " +"name='README.rst' mode='r' encoding='UTF-8'>\n" +" main()\n" +"Object allocated at (most recent call last):\n" +" File \"script.py\", lineno 10\n" +" main()\n" +" File \"script.py\", lineno 4\n" +" fp = open(sys.argv[1])" +msgstr "" + +#: ../../library/devmode.rst:160 +msgid "" +"The fix is to close explicitly the file. Example using a context manager::" +msgstr "" + +#: ../../library/devmode.rst:162 +msgid "" +"def main():\n" +" # Close the file explicitly when exiting the with block\n" +" with open(sys.argv[1]) as fp:\n" +" nlines = len(fp.readlines())\n" +" print(nlines)" +msgstr "" + +#: ../../library/devmode.rst:168 +msgid "" +"Not closing a resource explicitly can leave a resource open for way longer " +"than expected; it can cause severe issues upon exiting Python. It is bad in " +"CPython, but it is even worse in PyPy. Closing resources explicitly makes an " +"application more deterministic and more reliable." +msgstr "" + +#: ../../library/devmode.rst:175 +msgid "Bad file descriptor error example" +msgstr "" + +#: ../../library/devmode.rst:177 +msgid "Script displaying the first line of itself::" +msgstr "" + +#: ../../library/devmode.rst:179 +msgid "" +"import os\n" +"\n" +"def main():\n" +" fp = open(__file__)\n" +" firstline = fp.readline()\n" +" print(firstline.rstrip())\n" +" os.close(fp.fileno())\n" +" # The file is closed implicitly\n" +"\n" +"main()" +msgstr "" + +#: ../../library/devmode.rst:190 +msgid "By default, Python does not emit any warning:" +msgstr "" + +#: ../../library/devmode.rst:192 +msgid "" +"$ python script.py\n" +"import os" +msgstr "" + +#: ../../library/devmode.rst:197 +msgid "" +"The Python Development Mode shows a :exc:`ResourceWarning` and logs a \"Bad " +"file descriptor\" error when finalizing the file object:" +msgstr "" + +#: ../../library/devmode.rst:200 +msgid "" +"$ python -X dev script.py\n" +"import os\n" +"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper " +"name='script.py' mode='r' encoding='UTF-8'>\n" +" main()\n" +"ResourceWarning: Enable tracemalloc to get the object allocation traceback\n" +"Exception ignored in: <_io.TextIOWrapper name='script.py' mode='r' " +"encoding='UTF-8'>\n" +"Traceback (most recent call last):\n" +" File \"script.py\", line 10, in \n" +" main()\n" +"OSError: [Errno 9] Bad file descriptor" +msgstr "" + +#: ../../library/devmode.rst:213 +msgid "" +"``os.close(fp.fileno())`` closes the file descriptor. When the file object " +"finalizer tries to close the file descriptor again, it fails with the ``Bad " +"file descriptor`` error. A file descriptor must be closed only once. In the " +"worst case scenario, closing it twice can lead to a crash " +"(see :issue:`18748` for an example)." +msgstr "" + +#: ../../library/devmode.rst:219 +msgid "" +"The fix is to remove the ``os.close(fp.fileno())`` line, or open the file " +"with ``closefd=False``." +msgstr "" diff --git a/library/dialog.po b/library/dialog.po new file mode 100644 index 0000000..7789155 --- /dev/null +++ b/library/dialog.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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/dialog.rst:2 +msgid "Tkinter Dialogs" +msgstr "" + +#: ../../library/dialog.rst:5 +msgid ":mod:`tkinter.simpledialog` --- Standard Tkinter input dialogs" +msgstr "" + +#: ../../library/dialog.rst:11 +msgid "**Source code:** :source:`Lib/tkinter/simpledialog.py`" +msgstr "" + +#: ../../library/dialog.rst:15 +msgid "" +"The :mod:`tkinter.simpledialog` module contains convenience classes and " +"functions for creating simple modal dialogs to get a value from the user." +msgstr "" + +#: ../../library/dialog.rst:23 +msgid "" +"The above three functions provide dialogs that prompt the user to enter a " +"value of the desired type." +msgstr "" + +#: ../../library/dialog.rst:28 +msgid "The base class for custom dialogs." +msgstr "" + +#: ../../library/dialog.rst:32 +msgid "" +"Override to construct the dialog's interface and return the widget that " +"should have initial focus." +msgstr "" + +#: ../../library/dialog.rst:37 +msgid "" +"Default behaviour adds OK and Cancel buttons. Override for custom button " +"layouts." +msgstr "" + +#: ../../library/dialog.rst:43 +msgid ":mod:`tkinter.filedialog` --- File selection dialogs" +msgstr "" + +#: ../../library/dialog.rst:49 +msgid "**Source code:** :source:`Lib/tkinter/filedialog.py`" +msgstr "" + +#: ../../library/dialog.rst:53 +msgid "" +"The :mod:`tkinter.filedialog` module provides classes and factory functions " +"for creating file/directory selection windows." +msgstr "" + +#: ../../library/dialog.rst:57 +msgid "Native Load/Save Dialogs" +msgstr "" + +#: ../../library/dialog.rst:59 +msgid "" +"The following classes and functions provide file dialog windows that combine " +"a native look-and-feel with configuration options to customize behaviour. " +"The following keyword arguments are applicable to the classes and functions " +"listed below:" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*parent* - the window to place the dialog on top of" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*title* - the title of the window" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*initialdir* - the directory that the dialog starts in" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*initialfile* - the file selected upon opening of the dialog" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "" +"*filetypes* - a sequence of (label, pattern) tuples, '*' wildcard is allowed" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*defaultextension* - default extension to append to file (save dialogs)" +msgstr "" + +#: ../../library/dialog.rst:0 +msgid "*multiple* - when true, selection of multiple items is allowed" +msgstr "" + +#: ../../library/dialog.rst:79 +msgid "**Static factory functions**" +msgstr "" + +#: ../../library/dialog.rst:81 +msgid "" +"The below functions when called create a modal, native look-and-feel dialog, " +"wait for the user's selection, then return the selected value(s) or ``None`` " +"to the caller." +msgstr "" + +#: ../../library/dialog.rst:88 +msgid "" +"The above two functions create an :class:`Open` dialog and return the opened " +"file object(s) in read-only mode." +msgstr "" + +#: ../../library/dialog.rst:93 +msgid "" +"Create a :class:`SaveAs` dialog and return a file object opened in write-" +"only mode." +msgstr "" + +#: ../../library/dialog.rst:98 +msgid "" +"The above two functions create an :class:`Open` dialog and return the " +"selected filename(s) that correspond to existing file(s)." +msgstr "" + +#: ../../library/dialog.rst:103 +msgid "Create a :class:`SaveAs` dialog and return the selected filename." +msgstr "" + +#: ../../library/dialog.rst:107 +msgid "Prompt user to select a directory." +msgstr "" + +#: ../../library/dialog.rst:108 +msgid "Additional keyword option:" +msgstr "" + +#: ../../library/dialog.rst:109 +msgid "*mustexist* - determines if selection must be an existing directory." +msgstr "" + +#: ../../library/dialog.rst:114 +msgid "" +"The above two classes provide native dialog windows for saving and loading " +"files." +msgstr "" + +#: ../../library/dialog.rst:117 +msgid "**Convenience classes**" +msgstr "" + +#: ../../library/dialog.rst:119 +msgid "" +"The below classes are used for creating file/directory windows from scratch. " +"These do not emulate the native look-and-feel of the platform." +msgstr "" + +#: ../../library/dialog.rst:124 +msgid "Create a dialog prompting the user to select a directory." +msgstr "" + +#: ../../library/dialog.rst:126 +msgid "" +"The *FileDialog* class should be subclassed for custom event handling and " +"behaviour." +msgstr "" + +#: ../../library/dialog.rst:131 +msgid "Create a basic file selection dialog." +msgstr "" + +#: ../../library/dialog.rst:135 +msgid "Trigger the termination of the dialog window." +msgstr "" + +#: ../../library/dialog.rst:139 +msgid "Event handler for double-click event on directory." +msgstr "" + +#: ../../library/dialog.rst:143 +msgid "Event handler for click event on directory." +msgstr "" + +#: ../../library/dialog.rst:147 +msgid "Event handler for double-click event on file." +msgstr "" + +#: ../../library/dialog.rst:151 +msgid "Event handler for single-click event on file." +msgstr "" + +#: ../../library/dialog.rst:155 +msgid "Filter the files by directory." +msgstr "" + +#: ../../library/dialog.rst:159 +msgid "Retrieve the file filter currently in use." +msgstr "" + +#: ../../library/dialog.rst:163 +msgid "Retrieve the currently selected item." +msgstr "" + +#: ../../library/dialog.rst:167 +msgid "Render dialog and start event loop." +msgstr "" + +#: ../../library/dialog.rst:171 +msgid "Exit dialog returning current selection." +msgstr "" + +#: ../../library/dialog.rst:175 +msgid "Exit dialog returning filename, if any." +msgstr "" + +#: ../../library/dialog.rst:179 +msgid "Set the file filter." +msgstr "" + +#: ../../library/dialog.rst:183 +msgid "Update the current file selection to *file*." +msgstr "" + +#: ../../library/dialog.rst:188 +msgid "" +"A subclass of FileDialog that creates a dialog window for selecting an " +"existing file." +msgstr "" + +#: ../../library/dialog.rst:193 +msgid "" +"Test that a file is provided and that the selection indicates an already " +"existing file." +msgstr "" + +#: ../../library/dialog.rst:198 +msgid "" +"A subclass of FileDialog that creates a dialog window for selecting a " +"destination file." +msgstr "" + +#: ../../library/dialog.rst:203 +msgid "" +"Test whether or not the selection points to a valid file that is not a " +"directory. Confirmation is required if an already existing file is selected." +msgstr "" + +#: ../../library/dialog.rst:208 +msgid ":mod:`tkinter.commondialog` --- Dialog window templates" +msgstr "" + +#: ../../library/dialog.rst:214 +msgid "**Source code:** :source:`Lib/tkinter/commondialog.py`" +msgstr "" + +#: ../../library/dialog.rst:218 +msgid "" +"The :mod:`tkinter.commondialog` module provides the :class:`Dialog` class " +"that is the base class for dialogs defined in other supporting modules." +msgstr "" + +#: ../../library/dialog.rst:225 +msgid "Render the Dialog window." +msgstr "" + +#: ../../library/dialog.rst:230 +msgid "Modules :mod:`tkinter.messagebox`, :ref:`tut-files`" +msgstr "" diff --git a/library/difflib.po b/library/difflib.po new file mode 100644 index 0000000..5e9c7be --- /dev/null +++ b/library/difflib.po @@ -0,0 +1,1057 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/difflib.rst:2 +msgid ":mod:`!difflib` --- Helpers for computing deltas" +msgstr "" + +#: ../../library/difflib.rst:11 +msgid "**Source code:** :source:`Lib/difflib.py`" +msgstr "" + +#: ../../library/difflib.rst:20 +msgid "" +"This module provides classes and functions for comparing sequences. It can " +"be used for example, for comparing files, and can produce information about " +"file differences in various formats, including HTML and context and unified " +"diffs. For comparing directories and files, see also, the :mod:`filecmp` " +"module." +msgstr "" + +#: ../../library/difflib.rst:29 +msgid "" +"This is a flexible class for comparing pairs of sequences of any type, so " +"long as the sequence elements are :term:`hashable`. The basic algorithm " +"predates, and is a little fancier than, an algorithm published in the late " +"1980's by Ratcliff and Obershelp under the hyperbolic name \"gestalt pattern " +"matching.\" The idea is to find the longest contiguous matching subsequence " +"that contains no \"junk\" elements; these \"junk\" elements are ones that " +"are uninteresting in some sense, such as blank lines or whitespace. " +"(Handling junk is an extension to the Ratcliff and Obershelp algorithm.) The " +"same idea is then applied recursively to the pieces of the sequences to the " +"left and to the right of the matching subsequence. This does not yield " +"minimal edit sequences, but does tend to yield matches that \"look right\" " +"to people." +msgstr "" + +#: ../../library/difflib.rst:41 +msgid "" +"**Timing:** The basic Ratcliff-Obershelp algorithm is cubic time in the " +"worst case and quadratic time in the expected case. :class:`SequenceMatcher` " +"is quadratic time for the worst case and has expected-case behavior " +"dependent in a complicated way on how many elements the sequences have in " +"common; best case time is linear." +msgstr "" + +#: ../../library/difflib.rst:47 +msgid "" +"**Automatic junk heuristic:** :class:`SequenceMatcher` supports a heuristic " +"that automatically treats certain sequence items as junk. The heuristic " +"counts how many times each individual item appears in the sequence. If an " +"item's duplicates (after the first one) account for more than 1% of the " +"sequence and the sequence is at least 200 items long, this item is marked as " +"\"popular\" and is treated as junk for the purpose of sequence matching. " +"This heuristic can be turned off by setting the ``autojunk`` argument to " +"``False`` when creating the :class:`SequenceMatcher`." +msgstr "" + +#: ../../library/difflib.rst:55 ../../library/difflib.rst:386 +msgid "Added the *autojunk* parameter." +msgstr "" + +#: ../../library/difflib.rst:61 +msgid "" +"This is a class for comparing sequences of lines of text, and producing " +"human-readable differences or deltas. Differ uses :class:`SequenceMatcher` " +"both to compare sequences of lines, and to compare sequences of characters " +"within similar (near-matching) lines." +msgstr "" + +#: ../../library/difflib.rst:66 +msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" +msgstr "" + +#: ../../library/difflib.rst:69 +msgid "Code" +msgstr "" + +#: ../../library/difflib.rst:69 ../../library/difflib.rst:496 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/difflib.rst:71 +msgid "``'- '``" +msgstr "" + +#: ../../library/difflib.rst:71 +msgid "line unique to sequence 1" +msgstr "" + +#: ../../library/difflib.rst:73 +msgid "``'+ '``" +msgstr "" + +#: ../../library/difflib.rst:73 +msgid "line unique to sequence 2" +msgstr "" + +#: ../../library/difflib.rst:75 +msgid "``' '``" +msgstr "" + +#: ../../library/difflib.rst:75 +msgid "line common to both sequences" +msgstr "" + +#: ../../library/difflib.rst:77 +msgid "``'? '``" +msgstr "" + +#: ../../library/difflib.rst:77 +msgid "line not present in either input sequence" +msgstr "" + +#: ../../library/difflib.rst:80 +msgid "" +"Lines beginning with '``?``' attempt to guide the eye to intraline " +"differences, and were not present in either input sequence. These lines can " +"be confusing if the sequences contain whitespace characters, such as spaces, " +"tabs or line breaks." +msgstr "" + +#: ../../library/difflib.rst:87 +msgid "" +"This class can be used to create an HTML table (or a complete HTML file " +"containing the table) showing a side by side, line by line comparison of " +"text with inter-line and intra-line change highlights. The table can be " +"generated in either full or contextual difference mode." +msgstr "" + +#: ../../library/difflib.rst:92 +msgid "The constructor for this class is:" +msgstr "" + +#: ../../library/difflib.rst:97 +msgid "Initializes instance of :class:`HtmlDiff`." +msgstr "" + +#: ../../library/difflib.rst:99 +msgid "" +"*tabsize* is an optional keyword argument to specify tab stop spacing and " +"defaults to ``8``." +msgstr "" + +#: ../../library/difflib.rst:102 +msgid "" +"*wrapcolumn* is an optional keyword to specify column number where lines are " +"broken and wrapped, defaults to ``None`` where lines are not wrapped." +msgstr "" + +#: ../../library/difflib.rst:105 +msgid "" +"*linejunk* and *charjunk* are optional keyword arguments passed " +"into :func:`ndiff` (used by :class:`HtmlDiff` to generate the side by side " +"HTML differences). See :func:`ndiff` documentation for argument default " +"values and descriptions." +msgstr "" + +#: ../../library/difflib.rst:109 +msgid "The following methods are public:" +msgstr "" + +#: ../../library/difflib.rst:114 +msgid "" +"Compares *fromlines* and *tolines* (lists of strings) and returns a string " +"which is a complete HTML file containing a table showing line by line " +"differences with inter-line and intra-line changes highlighted." +msgstr "" + +#: ../../library/difflib.rst:118 +msgid "" +"*fromdesc* and *todesc* are optional keyword arguments to specify from/to " +"file column header strings (both default to an empty string)." +msgstr "" + +#: ../../library/difflib.rst:121 +msgid "" +"*context* and *numlines* are both optional keyword arguments. Set *context* " +"to ``True`` when contextual differences are to be shown, else the default is " +"``False`` to show the full files. *numlines* defaults to ``5``. When " +"*context* is ``True`` *numlines* controls the number of context lines which " +"surround the difference highlights. When *context* is ``False`` *numlines* " +"controls the number of lines which are shown before a difference highlight " +"when using the \"next\" hyperlinks (setting to zero would cause the \"next\" " +"hyperlinks to place the next difference highlight at the top of the browser " +"without any leading context)." +msgstr "" + +#: ../../library/difflib.rst:132 +msgid "" +"*fromdesc* and *todesc* are interpreted as unescaped HTML and should be " +"properly escaped while receiving input from untrusted sources." +msgstr "" + +#: ../../library/difflib.rst:135 +msgid "" +"*charset* keyword-only argument was added. The default charset of HTML " +"document changed from ``'ISO-8859-1'`` to ``'utf-8'``." +msgstr "" + +#: ../../library/difflib.rst:141 +msgid "" +"Compares *fromlines* and *tolines* (lists of strings) and returns a string " +"which is a complete HTML table showing line by line differences with inter-" +"line and intra-line changes highlighted." +msgstr "" + +#: ../../library/difflib.rst:145 +msgid "" +"The arguments for this method are the same as those for " +"the :meth:`make_file` method." +msgstr "" + +#: ../../library/difflib.rst:152 +msgid "" +"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " +"generating the delta lines) in context diff format." +msgstr "" + +#: ../../library/difflib.rst:155 +msgid "" +"Context diffs are a compact way of showing just the lines that have changed " +"plus a few lines of context. The changes are shown in a before/after " +"style. The number of context lines is set by *n* which defaults to three." +msgstr "" + +#: ../../library/difflib.rst:159 +msgid "" +"By default, the diff control lines (those with ``***`` or ``---``) are " +"created with a trailing newline. This is helpful so that inputs created " +"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " +"with :func:`io.IOBase.writelines` since both the inputs and outputs have " +"trailing newlines." +msgstr "" + +#: ../../library/difflib.rst:165 ../../library/difflib.rst:297 +msgid "" +"For inputs that do not have trailing newlines, set the *lineterm* argument " +"to ``\"\"`` so that the output will be uniformly newline free." +msgstr "" + +#: ../../library/difflib.rst:168 +msgid "" +"The context diff format normally has a header for filenames and modification " +"times. Any or all of these may be specified using strings for *fromfile*, " +"*tofile*, *fromfiledate*, and *tofiledate*. The modification times are " +"normally expressed in the ISO 8601 format. If not specified, the strings " +"default to blanks." +msgstr "" + +#: ../../library/difflib.rst:194 ../../library/difflib.rst:320 +msgid "See :ref:`difflib-interface` for a more detailed example." +msgstr "" + +#: ../../library/difflib.rst:199 +msgid "" +"Return a list of the best \"good enough\" matches. *word* is a sequence for " +"which close matches are desired (typically a string), and *possibilities* is " +"a list of sequences against which to match *word* (typically a list of " +"strings)." +msgstr "" + +#: ../../library/difflib.rst:203 +msgid "" +"Optional argument *n* (default ``3``) is the maximum number of close matches " +"to return; *n* must be greater than ``0``." +msgstr "" + +#: ../../library/difflib.rst:206 +msgid "" +"Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " +"Possibilities that don't score at least that similar to *word* are ignored." +msgstr "" + +#: ../../library/difflib.rst:209 +msgid "" +"The best (no more than *n*) matches among the possibilities are returned in " +"a list, sorted by similarity score, most similar first." +msgstr "" + +#: ../../library/difflib.rst:225 +msgid "" +"Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " +"delta (a :term:`generator` generating the delta lines)." +msgstr "" + +#: ../../library/difflib.rst:228 +msgid "" +"Optional keyword parameters *linejunk* and *charjunk* are filtering " +"functions (or ``None``):" +msgstr "" + +#: ../../library/difflib.rst:231 +msgid "" +"*linejunk*: A function that accepts a single string argument, and returns " +"true if the string is junk, or false if not. The default is ``None``. There " +"is also a module-level function :func:`IS_LINE_JUNK`, which filters out " +"lines without visible characters, except for at most one pound character " +"(``'#'``) -- however the underlying :class:`SequenceMatcher` class does a " +"dynamic analysis of which lines are so frequent as to constitute noise, and " +"this usually works better than using this function." +msgstr "" + +#: ../../library/difflib.rst:239 +msgid "" +"*charjunk*: A function that accepts a character (a string of length 1), and " +"returns if the character is junk, or false if not. The default is module-" +"level function :func:`IS_CHARACTER_JUNK`, which filters out whitespace " +"characters (a blank or tab; it's a bad idea to include newline in this!)." +msgstr "" + +#: ../../library/difflib.rst:260 +msgid "Return one of the two sequences that generated a delta." +msgstr "" + +#: ../../library/difflib.rst:262 +msgid "" +"Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " +"extract lines originating from file 1 or 2 (parameter *which*), stripping " +"off line prefixes." +msgstr "" + +#: ../../library/difflib.rst:266 +msgid "Example:" +msgstr "" + +#: ../../library/difflib.rst:283 +msgid "" +"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " +"generating the delta lines) in unified diff format." +msgstr "" + +#: ../../library/difflib.rst:286 +msgid "" +"Unified diffs are a compact way of showing just the lines that have changed " +"plus a few lines of context. The changes are shown in an inline style " +"(instead of separate before/after blocks). The number of context lines is " +"set by *n* which defaults to three." +msgstr "" + +#: ../../library/difflib.rst:291 +msgid "" +"By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " +"are created with a trailing newline. This is helpful so that inputs created " +"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " +"with :func:`io.IOBase.writelines` since both the inputs and outputs have " +"trailing newlines." +msgstr "" + +#: ../../library/difflib.rst:300 +msgid "" +"The unified diff format normally has a header for filenames and modification " +"times. Any or all of these may be specified using strings for *fromfile*, " +"*tofile*, *fromfiledate*, and *tofiledate*. The modification times are " +"normally expressed in the ISO 8601 format. If not specified, the strings " +"default to blanks." +msgstr "" + +#: ../../library/difflib.rst:324 +msgid "" +"Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " +"of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " +"be a callable, typically either :func:`unified_diff` or :func:`context_diff`." +msgstr "" + +#: ../../library/difflib.rst:329 +msgid "" +"Allows you to compare data with unknown or inconsistent encoding. All inputs " +"except *n* must be bytes objects, not str. Works by losslessly converting " +"all inputs (except *n*) to str, and calling ``dfunc(a, b, fromfile, tofile, " +"fromfiledate, tofiledate, n, lineterm)``. The output of *dfunc* is then " +"converted back to bytes, so the delta lines that you receive have the same " +"unknown/inconsistent encodings as *a* and *b*." +msgstr "" + +#: ../../library/difflib.rst:340 +msgid "" +"Return ``True`` for ignorable lines. The line *line* is ignorable if *line* " +"is blank or contains a single ``'#'``, otherwise it is not ignorable. Used " +"as a default for parameter *linejunk* in :func:`ndiff` in older versions." +msgstr "" + +#: ../../library/difflib.rst:347 +msgid "" +"Return ``True`` for ignorable characters. The character *ch* is ignorable " +"if *ch* is a space or tab, otherwise it is not ignorable. Used as a default " +"for parameter *charjunk* in :func:`ndiff`." +msgstr "" + +#: ../../library/difflib.rst:354 +msgid "" +"`Pattern Matching: The Gestalt Approach `_" +msgstr "" + +#: ../../library/difflib.rst:355 +msgid "" +"Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " +"This was published in `Dr. Dobb's Journal `_ in " +"July, 1988." +msgstr "" + +#: ../../library/difflib.rst:362 +msgid "SequenceMatcher Objects" +msgstr "" + +#: ../../library/difflib.rst:364 +msgid "The :class:`SequenceMatcher` class has this constructor:" +msgstr "" + +#: ../../library/difflib.rst:369 +msgid "" +"Optional argument *isjunk* must be ``None`` (the default) or a one-argument " +"function that takes a sequence element and returns true if and only if the " +"element is \"junk\" and should be ignored. Passing ``None`` for *isjunk* is " +"equivalent to passing ``lambda x: False``; in other words, no elements are " +"ignored. For example, pass::" +msgstr "" + +#: ../../library/difflib.rst:375 +msgid "lambda x: x in \" \\t\"" +msgstr "" + +#: ../../library/difflib.rst:377 +msgid "" +"if you're comparing lines as sequences of characters, and don't want to " +"synch up on blanks or hard tabs." +msgstr "" + +#: ../../library/difflib.rst:380 +msgid "" +"The optional arguments *a* and *b* are sequences to be compared; both " +"default to empty strings. The elements of both sequences must " +"be :term:`hashable`." +msgstr "" + +#: ../../library/difflib.rst:383 +msgid "" +"The optional argument *autojunk* can be used to disable the automatic junk " +"heuristic." +msgstr "" + +#: ../../library/difflib.rst:389 +msgid "" +"SequenceMatcher objects get three data attributes: *bjunk* is the set of " +"elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" +"junk elements considered popular by the heuristic (if it is not disabled); " +"*b2j* is a dict mapping the remaining elements of *b* to a list of positions " +"where they occur. All three are reset whenever *b* is reset " +"with :meth:`set_seqs` or :meth:`set_seq2`." +msgstr "" + +#: ../../library/difflib.rst:396 +msgid "The *bjunk* and *bpopular* attributes." +msgstr "" + +#: ../../library/difflib.rst:399 +msgid ":class:`SequenceMatcher` objects have the following methods:" +msgstr "" + +#: ../../library/difflib.rst:403 +msgid "Set the two sequences to be compared." +msgstr "" + +#: ../../library/difflib.rst:405 +msgid "" +":class:`SequenceMatcher` computes and caches detailed information about the " +"second sequence, so if you want to compare one sequence against many " +"sequences, use :meth:`set_seq2` to set the commonly used sequence once and " +"call :meth:`set_seq1` repeatedly, once for each of the other sequences." +msgstr "" + +#: ../../library/difflib.rst:413 +msgid "" +"Set the first sequence to be compared. The second sequence to be compared " +"is not changed." +msgstr "" + +#: ../../library/difflib.rst:419 +msgid "" +"Set the second sequence to be compared. The first sequence to be compared " +"is not changed." +msgstr "" + +#: ../../library/difflib.rst:425 +msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." +msgstr "" + +#: ../../library/difflib.rst:427 +msgid "" +"If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " +"``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " +"<= i <= i+k <= ahi`` and ``blo <= j <= j+k <= bhi``. For all ``(i', j', " +"k')`` meeting those conditions, the additional conditions ``k >= k'``, ``i " +"<= i'``, and if ``i == i'``, ``j <= j'`` are also met. In other words, of " +"all maximal matching blocks, return one that starts earliest in *a*, and of " +"all those maximal matching blocks that start earliest in *a*, return the one " +"that starts earliest in *b*." +msgstr "" + +#: ../../library/difflib.rst:440 +msgid "" +"If *isjunk* was provided, first the longest matching block is determined as " +"above, but with the additional restriction that no junk element appears in " +"the block. Then that block is extended as far as possible by matching " +"(only) junk elements on both sides. So the resulting block never matches on " +"junk except as identical junk happens to be adjacent to an interesting match." +msgstr "" + +#: ../../library/difflib.rst:447 +msgid "" +"Here's the same example as before, but considering blanks to be junk. That " +"prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " +"second sequence directly. Instead only the ``'abcd'`` can match, and " +"matches the leftmost ``'abcd'`` in the second sequence:" +msgstr "" + +#: ../../library/difflib.rst:456 +msgid "If no blocks match, this returns ``(alo, blo, 0)``." +msgstr "" + +#: ../../library/difflib.rst:458 +msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." +msgstr "" + +#: ../../library/difflib.rst:460 +msgid "Added default arguments." +msgstr "" + +#: ../../library/difflib.rst:466 +msgid "" +"Return list of triples describing non-overlapping matching subsequences. " +"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == " +"b[j:j+n]``. The triples are monotonically increasing in *i* and *j*." +msgstr "" + +#: ../../library/difflib.rst:471 +msgid "" +"The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " +"is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " +"are adjacent triples in the list, and the second is not the last triple in " +"the list, then ``i+n < i'`` or ``j+n < j'``; in other words, adjacent " +"triples always describe non-adjacent equal blocks." +msgstr "" + +#: ../../library/difflib.rst:479 +msgid "" +">>> s = SequenceMatcher(None, \"abxcd\", \"abcd\")\n" +">>> s.get_matching_blocks()\n" +"[Match(a=0, b=0, size=2), Match(a=3, b=2, size=2), Match(a=5, b=4, size=0)]" +msgstr "" + +#: ../../library/difflib.rst:488 +msgid "" +"Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " +"of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " +"0``, and remaining tuples have *i1* equal to the *i2* from the preceding " +"tuple, and, likewise, *j1* equal to the previous *j2*." +msgstr "" + +#: ../../library/difflib.rst:493 +msgid "The *tag* values are strings, with these meanings:" +msgstr "" + +#: ../../library/difflib.rst:496 +msgid "Value" +msgstr "" + +#: ../../library/difflib.rst:498 +msgid "``'replace'``" +msgstr "``'replace'``" + +#: ../../library/difflib.rst:498 +msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." +msgstr "" + +#: ../../library/difflib.rst:501 +msgid "``'delete'``" +msgstr "``'delete'``" + +#: ../../library/difflib.rst:501 +msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." +msgstr "" + +#: ../../library/difflib.rst:504 +msgid "``'insert'``" +msgstr "``'insert'``" + +#: ../../library/difflib.rst:504 +msgid "" +"``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " +"this case." +msgstr "" + +#: ../../library/difflib.rst:508 +msgid "``'equal'``" +msgstr "``'equal'``" + +#: ../../library/difflib.rst:508 +msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." +msgstr "" + +#: ../../library/difflib.rst:512 +msgid "For example::" +msgstr "" + +#: ../../library/difflib.rst:514 +msgid "" +">>> a = \"qabxcd\"\n" +">>> b = \"abycdf\"\n" +">>> s = SequenceMatcher(None, a, b)\n" +">>> for tag, i1, i2, j1, j2 in s.get_opcodes():\n" +"... print('{:7} a[{}:{}] --> b[{}:{}] {!r:>8} --> {!r}'.format(\n" +"... tag, i1, i2, j1, j2, a[i1:i2], b[j1:j2]))\n" +"delete a[0:1] --> b[0:0] 'q' --> ''\n" +"equal a[1:3] --> b[0:2] 'ab' --> 'ab'\n" +"replace a[3:4] --> b[2:3] 'x' --> 'y'\n" +"equal a[4:6] --> b[3:5] 'cd' --> 'cd'\n" +"insert a[6:6] --> b[5:6] '' --> 'f'" +msgstr "" + +#: ../../library/difflib.rst:529 +msgid "Return a :term:`generator` of groups with up to *n* lines of context." +msgstr "" + +#: ../../library/difflib.rst:531 +msgid "" +"Starting with the groups returned by :meth:`get_opcodes`, this method splits " +"out smaller change clusters and eliminates intervening ranges which have no " +"changes." +msgstr "" + +#: ../../library/difflib.rst:535 +msgid "The groups are returned in the same format as :meth:`get_opcodes`." +msgstr "" + +#: ../../library/difflib.rst:540 +msgid "" +"Return a measure of the sequences' similarity as a float in the range [0, 1]." +msgstr "" + +#: ../../library/difflib.rst:543 +msgid "" +"Where T is the total number of elements in both sequences, and M is the " +"number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " +"sequences are identical, and ``0.0`` if they have nothing in common." +msgstr "" + +#: ../../library/difflib.rst:547 +msgid "" +"This is expensive to compute if :meth:`get_matching_blocks` " +"or :meth:`get_opcodes` hasn't already been called, in which case you may " +"want to try :meth:`quick_ratio` or :meth:`real_quick_ratio` first to get an " +"upper bound." +msgstr "" + +#: ../../library/difflib.rst:554 +msgid "" +"Caution: The result of a :meth:`ratio` call may depend on the order of the " +"arguments. For instance::" +msgstr "" + +#: ../../library/difflib.rst:557 +msgid "" +">>> SequenceMatcher(None, 'tide', 'diet').ratio()\n" +"0.25\n" +">>> SequenceMatcher(None, 'diet', 'tide').ratio()\n" +"0.5" +msgstr "" + +#: ../../library/difflib.rst:565 +msgid "Return an upper bound on :meth:`ratio` relatively quickly." +msgstr "" + +#: ../../library/difflib.rst:570 +msgid "Return an upper bound on :meth:`ratio` very quickly." +msgstr "" + +#: ../../library/difflib.rst:573 +msgid "" +"The three methods that return the ratio of matching to total characters can " +"give different results due to differing levels of approximation, " +"although :meth:`~SequenceMatcher.quick_ratio` " +"and :meth:`~SequenceMatcher.real_quick_ratio` are always at least as large " +"as :meth:`~SequenceMatcher.ratio`:" +msgstr "" + +#: ../../library/difflib.rst:590 +msgid "SequenceMatcher Examples" +msgstr "" + +#: ../../library/difflib.rst:592 +msgid "This example compares two strings, considering blanks to be \"junk\":" +msgstr "" + +#: ../../library/difflib.rst:598 +msgid "" +":meth:`~SequenceMatcher.ratio` returns a float in [0, 1], measuring the " +"similarity of the sequences. As a rule of thumb, " +"a :meth:`~SequenceMatcher.ratio` value over 0.6 means the sequences are " +"close matches:" +msgstr "" + +#: ../../library/difflib.rst:605 +msgid "" +"If you're only interested in where the sequences " +"match, :meth:`~SequenceMatcher.get_matching_blocks` is handy:" +msgstr "" + +#: ../../library/difflib.rst:614 +msgid "" +"Note that the last tuple returned " +"by :meth:`~SequenceMatcher.get_matching_blocks` is always a dummy, " +"``(len(a), len(b), 0)``, and this is the only case in which the last tuple " +"element (number of elements matched) is ``0``." +msgstr "" + +#: ../../library/difflib.rst:618 +msgid "" +"If you want to know how to change the first sequence into the second, " +"use :meth:`~SequenceMatcher.get_opcodes`:" +msgstr "" + +#: ../../library/difflib.rst:629 +msgid "" +"The :func:`get_close_matches` function in this module which shows how simple " +"code building on :class:`SequenceMatcher` can be used to do useful work." +msgstr "" + +#: ../../library/difflib.rst:633 +msgid "" +"`Simple version control recipe `_ for a small application built " +"with :class:`SequenceMatcher`." +msgstr "" + +#: ../../library/difflib.rst:641 +msgid "Differ Objects" +msgstr "" + +#: ../../library/difflib.rst:643 +msgid "" +"Note that :class:`Differ`\\ -generated deltas make no claim to be " +"**minimal** diffs. To the contrary, minimal diffs are often counter-" +"intuitive, because they synch up anywhere possible, sometimes accidental " +"matches 100 pages apart. Restricting synch points to contiguous matches " +"preserves some notion of locality, at the occasional cost of producing a " +"longer diff." +msgstr "" + +#: ../../library/difflib.rst:649 +msgid "The :class:`Differ` class has this constructor:" +msgstr "" + +#: ../../library/difflib.rst:655 +msgid "" +"Optional keyword parameters *linejunk* and *charjunk* are for filter " +"functions (or ``None``):" +msgstr "" + +#: ../../library/difflib.rst:658 +msgid "" +"*linejunk*: A function that accepts a single string argument, and returns " +"true if the string is junk. The default is ``None``, meaning that no line " +"is considered junk." +msgstr "" + +#: ../../library/difflib.rst:662 +msgid "" +"*charjunk*: A function that accepts a single character argument (a string of " +"length 1), and returns true if the character is junk. The default is " +"``None``, meaning that no character is considered junk." +msgstr "" + +#: ../../library/difflib.rst:666 +msgid "" +"These junk-filtering functions speed up matching to find differences and do " +"not cause any differing lines or characters to be ignored. Read the " +"description of the :meth:`~SequenceMatcher.find_longest_match` method's " +"*isjunk* parameter for an explanation." +msgstr "" + +#: ../../library/difflib.rst:672 +msgid "" +":class:`Differ` objects are used (deltas generated) via a single method:" +msgstr "" + +#: ../../library/difflib.rst:677 +msgid "" +"Compare two sequences of lines, and generate the delta (a sequence of lines)." +msgstr "" + +#: ../../library/difflib.rst:679 +msgid "" +"Each sequence must contain individual single-line strings ending with " +"newlines. Such sequences can be obtained from " +"the :meth:`~io.IOBase.readlines` method of file-like objects. The delta " +"generated also consists of newline-terminated strings, ready to be printed " +"as-is via the :meth:`~io.IOBase.writelines` method of a file-like object." +msgstr "" + +#: ../../library/difflib.rst:690 +msgid "Differ Example" +msgstr "" + +#: ../../library/difflib.rst:692 +msgid "" +"This example compares two texts. First we set up the texts, sequences of " +"individual single-line strings ending with newlines (such sequences can also " +"be obtained from the :meth:`~io.IOBase.readlines` method of file-like " +"objects):" +msgstr "" + +#: ../../library/difflib.rst:711 +msgid "Next we instantiate a Differ object:" +msgstr "" + +#: ../../library/difflib.rst:715 +msgid "" +"Note that when instantiating a :class:`Differ` object we may pass functions " +"to filter out line and character \"junk.\" See the :meth:`Differ` " +"constructor for details." +msgstr "" + +#: ../../library/difflib.rst:719 +msgid "Finally, we compare the two:" +msgstr "" + +#: ../../library/difflib.rst:723 +msgid "``result`` is a list of strings, so let's pretty-print it:" +msgstr "" + +#: ../../library/difflib.rst:738 +msgid "As a single multi-line string it looks like this:" +msgstr "" + +#: ../../library/difflib.rst:757 +msgid "A command-line interface to difflib" +msgstr "" + +#: ../../library/difflib.rst:759 +msgid "" +"This example shows how to use difflib to create a ``diff``-like utility." +msgstr "" + +#: ../../library/difflib.rst:761 +msgid "" +"\"\"\" Command line interface to difflib.py providing diffs in four " +"formats:\n" +"\n" +"* ndiff: lists every line and highlights interline changes.\n" +"* context: highlights clusters of changes in a before/after format.\n" +"* unified: highlights clusters of changes in an inline format.\n" +"* html: generates side by side comparison with change highlights.\n" +"\n" +"\"\"\"\n" +"\n" +"import sys, os, difflib, argparse\n" +"from datetime import datetime, timezone\n" +"\n" +"def file_mtime(path):\n" +" t = datetime.fromtimestamp(os.stat(path).st_mtime,\n" +" timezone.utc)\n" +" return t.astimezone().isoformat()\n" +"\n" +"def main():\n" +"\n" +" parser = argparse.ArgumentParser()\n" +" parser.add_argument('-c', action='store_true', default=False,\n" +" help='Produce a context format diff (default)')\n" +" parser.add_argument('-u', action='store_true', default=False,\n" +" help='Produce a unified format diff')\n" +" parser.add_argument('-m', action='store_true', default=False,\n" +" help='Produce HTML side by side diff '\n" +" '(can use -c and -l in conjunction)')\n" +" parser.add_argument('-n', action='store_true', default=False,\n" +" help='Produce a ndiff format diff')\n" +" parser.add_argument('-l', '--lines', type=int, default=3,\n" +" help='Set number of context lines (default 3)')\n" +" parser.add_argument('fromfile')\n" +" parser.add_argument('tofile')\n" +" options = parser.parse_args()\n" +"\n" +" n = options.lines\n" +" fromfile = options.fromfile\n" +" tofile = options.tofile\n" +"\n" +" fromdate = file_mtime(fromfile)\n" +" todate = file_mtime(tofile)\n" +" with open(fromfile) as ff:\n" +" fromlines = ff.readlines()\n" +" with open(tofile) as tf:\n" +" tolines = tf.readlines()\n" +"\n" +" if options.u:\n" +" diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, " +"fromdate, todate, n=n)\n" +" elif options.n:\n" +" diff = difflib.ndiff(fromlines, tolines)\n" +" elif options.m:\n" +" diff = " +"difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n)\n" +" else:\n" +" diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, " +"fromdate, todate, n=n)\n" +"\n" +" sys.stdout.writelines(diff)\n" +"\n" +"if __name__ == '__main__':\n" +" main()\n" +msgstr "" + +#: ../../library/difflib.rst:764 +msgid "ndiff example" +msgstr "" + +#: ../../library/difflib.rst:766 +msgid "This example shows how to use :func:`difflib.ndiff`." +msgstr "" + +#: ../../library/difflib.rst:768 +msgid "" +"\"\"\"ndiff [-q] file1 file2\n" +" or\n" +"ndiff (-r1 | -r2) < ndiff_output > file1_or_file2\n" +"\n" +"Print a human-friendly file difference report to stdout. Both inter-\n" +"and intra-line differences are noted. In the second form, recreate file1\n" +"(-r1) or file2 (-r2) on stdout, from an ndiff report on stdin.\n" +"\n" +"In the first form, if -q (\"quiet\") is not specified, the first two lines\n" +"of output are\n" +"\n" +"-: file1\n" +"+: file2\n" +"\n" +"Each remaining line begins with a two-letter code:\n" +"\n" +" \"- \" line unique to file1\n" +" \"+ \" line unique to file2\n" +" \" \" line common to both files\n" +" \"? \" line not present in either input file\n" +"\n" +"Lines beginning with \"? \" attempt to guide the eye to intraline\n" +"differences, and were not present in either input file. These lines can be\n" +"confusing if the source files contain tab characters.\n" +"\n" +"The first file can be recovered by retaining only lines that begin with\n" +"\" \" or \"- \", and deleting those 2-character prefixes; use ndiff with " +"-r1.\n" +"\n" +"The second file can be recovered similarly, but by retaining only \" \" " +"and\n" +"\"+ \" lines; use ndiff with -r2; or, on Unix, the second file can be\n" +"recovered by piping the output through\n" +"\n" +" sed -n '/^[+ ] /s/^..//p'\n" +"\"\"\"\n" +"\n" +"__version__ = 1, 7, 0\n" +"\n" +"import difflib, sys\n" +"\n" +"def fail(msg):\n" +" out = sys.stderr.write\n" +" out(msg + \"\\n\\n\")\n" +" out(__doc__)\n" +" return 0\n" +"\n" +"# open a file & return the file object; gripe and return 0 if it\n" +"# couldn't be opened\n" +"def fopen(fname):\n" +" try:\n" +" return open(fname)\n" +" except IOError as detail:\n" +" return fail(\"couldn't open \" + fname + \": \" + str(detail))\n" +"\n" +"# open two files & spray the diff to stdout; return false iff a problem\n" +"def fcompare(f1name, f2name):\n" +" f1 = fopen(f1name)\n" +" f2 = fopen(f2name)\n" +" if not f1 or not f2:\n" +" return 0\n" +"\n" +" a = f1.readlines(); f1.close()\n" +" b = f2.readlines(); f2.close()\n" +" for line in difflib.ndiff(a, b):\n" +" print(line, end=' ')\n" +"\n" +" return 1\n" +"\n" +"# crack args (sys.argv[1:] is normal) & compare;\n" +"# return false iff a problem\n" +"\n" +"def main(args):\n" +" import getopt\n" +" try:\n" +" opts, args = getopt.getopt(args, \"qr:\")\n" +" except getopt.error as detail:\n" +" return fail(str(detail))\n" +" noisy = 1\n" +" qseen = rseen = 0\n" +" for opt, val in opts:\n" +" if opt == \"-q\":\n" +" qseen = 1\n" +" noisy = 0\n" +" elif opt == \"-r\":\n" +" rseen = 1\n" +" whichfile = val\n" +" if qseen and rseen:\n" +" return fail(\"can't specify both -q and -r\")\n" +" if rseen:\n" +" if args:\n" +" return fail(\"no args allowed with -r option\")\n" +" if whichfile in (\"1\", \"2\"):\n" +" restore(whichfile)\n" +" return 1\n" +" return fail(\"-r value must be 1 or 2\")\n" +" if len(args) != 2:\n" +" return fail(\"need 2 filename args\")\n" +" f1name, f2name = args\n" +" if noisy:\n" +" print('-:', f1name)\n" +" print('+:', f2name)\n" +" return fcompare(f1name, f2name)\n" +"\n" +"# read ndiff output from stdin, and print file1 (which=='1') or\n" +"# file2 (which=='2') to stdout\n" +"\n" +"def restore(which):\n" +" restored = difflib.restore(sys.stdin.readlines(), which)\n" +" sys.stdout.writelines(restored)\n" +"\n" +"if __name__ == '__main__':\n" +" main(sys.argv[1:])\n" +msgstr "" diff --git a/library/dis.po b/library/dis.po new file mode 100644 index 0000000..4e60652 --- /dev/null +++ b/library/dis.po @@ -0,0 +1,2321 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/dis.rst:2 +msgid ":mod:`!dis` --- Disassembler for Python bytecode" +msgstr "" + +#: ../../library/dis.rst:7 +msgid "**Source code:** :source:`Lib/dis.py`" +msgstr "" + +#: ../../library/dis.rst:17 +msgid "" +"The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by " +"disassembling it. The CPython bytecode which this module takes as an input " +"is defined in the file :file:`Include/opcode.h` and used by the compiler and " +"the interpreter." +msgstr "" + +#: ../../library/dis.rst:24 +msgid "" +"Bytecode is an implementation detail of the CPython interpreter. No " +"guarantees are made that bytecode will not be added, removed, or changed " +"between versions of Python. Use of this module should not be considered to " +"work across Python VMs or Python releases." +msgstr "" + +#: ../../library/dis.rst:29 +msgid "" +"Use 2 bytes for each instruction. Previously the number of bytes varied by " +"instruction." +msgstr "" + +#: ../../library/dis.rst:33 +msgid "" +"The argument of jump, exception handling and loop instructions is now the " +"instruction offset rather than the byte offset." +msgstr "" + +#: ../../library/dis.rst:37 +msgid "" +"Some instructions are accompanied by one or more inline cache entries, which " +"take the form of :opcode:`CACHE` instructions. These instructions are hidden " +"by default, but can be shown by passing ``show_caches=True`` to " +"any :mod:`dis` utility. Furthermore, the interpreter now adapts the bytecode " +"to specialize it for different runtime conditions. The adaptive bytecode can " +"be shown by passing ``adaptive=True``." +msgstr "" + +#: ../../library/dis.rst:45 +msgid "" +"The argument of a jump is the offset of the target instruction relative to " +"the instruction that appears immediately after the jump " +"instruction's :opcode:`CACHE` entries." +msgstr "" + +#: ../../library/dis.rst:50 +msgid "" +"As a consequence, the presence of the :opcode:`CACHE` instructions is " +"transparent for forward jumps but needs to be taken into account when " +"reasoning about backward jumps." +msgstr "" + +#: ../../library/dis.rst:54 +msgid "" +"The output shows logical labels rather than instruction offsets for jump " +"targets and exception handlers. The ``-O`` command line option and the " +"``show_offsets`` argument were added." +msgstr "" + +#: ../../library/dis.rst:59 +msgid "" +"The :option:`-P ` command-line option and the " +"``show_positions`` argument were added." +msgstr "" + +#: ../../library/dis.rst:63 +msgid "The :option:`-S ` command-line option is added." +msgstr "" + +#: ../../library/dis.rst:65 +msgid "Example: Given the function :func:`!myfunc`::" +msgstr "" + +#: ../../library/dis.rst:67 +msgid "" +"def myfunc(alist):\n" +" return len(alist)" +msgstr "" + +#: ../../library/dis.rst:70 +msgid "" +"the following command can be used to display the disassembly of :func:`!" +"myfunc`:" +msgstr "" + +#: ../../library/dis.rst:73 +msgid "" +">>> dis.dis(myfunc)\n" +" 2 RESUME 0\n" +"\n" +" 3 LOAD_GLOBAL 1 (len + NULL)\n" +" LOAD_FAST_BORROW 0 (alist)\n" +" CALL 1\n" +" RETURN_VALUE" +msgstr "" + +#: ../../library/dis.rst:83 +msgid "(The \"2\" is a line number)." +msgstr "" + +#: ../../library/dis.rst:88 +msgid "Command-line interface" +msgstr "" + +#: ../../library/dis.rst:90 +msgid "The :mod:`dis` module can be invoked as a script from the command line:" +msgstr "" + +#: ../../library/dis.rst:92 +msgid "python -m dis [-h] [-C] [-O] [-P] [-S] [infile]" +msgstr "" + +#: ../../library/dis.rst:96 +msgid "The following options are accepted:" +msgstr "" + +#: ../../library/dis.rst:102 +msgid "Display usage and exit." +msgstr "" + +#: ../../library/dis.rst:106 +msgid "Show inline caches." +msgstr "" + +#: ../../library/dis.rst:112 +msgid "Show offsets of instructions." +msgstr "" + +#: ../../library/dis.rst:118 +msgid "Show positions of instructions in the source code." +msgstr "" + +#: ../../library/dis.rst:124 +msgid "Show specialized bytecode." +msgstr "" + +#: ../../library/dis.rst:128 +msgid "" +"If :file:`infile` is specified, its disassembled code will be written to " +"stdout. Otherwise, disassembly is performed on compiled source code received " +"from stdin." +msgstr "" + +#: ../../library/dis.rst:132 +msgid "Bytecode analysis" +msgstr "" + +#: ../../library/dis.rst:136 +msgid "" +"The bytecode analysis API allows pieces of Python code to be wrapped in " +"a :class:`Bytecode` object that provides easy access to details of the " +"compiled code." +msgstr "" + +#: ../../library/dis.rst:144 +msgid "" +"Analyse the bytecode corresponding to a function, generator, asynchronous " +"generator, coroutine, method, string of source code, or a code object (as " +"returned by :func:`compile`)." +msgstr "" + +#: ../../library/dis.rst:148 +msgid "" +"This is a convenience wrapper around many of the functions listed below, " +"most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " +"instance yields the bytecode operations as :class:`Instruction` instances." +msgstr "" + +#: ../../library/dis.rst:152 ../../library/dis.rst:373 +msgid "" +"If *first_line* is not ``None``, it indicates the line number that should be " +"reported for the first source line in the disassembled code. Otherwise, the " +"source line information (if any) is taken directly from the disassembled " +"code object." +msgstr "" + +#: ../../library/dis.rst:157 +msgid "" +"If *current_offset* is not ``None``, it refers to an instruction offset in " +"the disassembled code. Setting this means :meth:`.dis` will display a " +"\"current instruction\" marker against the specified opcode." +msgstr "" + +#: ../../library/dis.rst:161 +msgid "" +"If *show_caches* is ``True``, :meth:`.dis` will display inline cache entries " +"used by the interpreter to specialize the bytecode." +msgstr "" + +#: ../../library/dis.rst:164 +msgid "" +"If *adaptive* is ``True``, :meth:`.dis` will display specialized bytecode " +"that may be different from the original bytecode." +msgstr "" + +#: ../../library/dis.rst:167 +msgid "" +"If *show_offsets* is ``True``, :meth:`.dis` will include instruction offsets " +"in the output." +msgstr "" + +#: ../../library/dis.rst:170 +msgid "" +"If *show_positions* is ``True``, :meth:`.dis` will include instruction " +"source code positions in the output." +msgstr "" + +#: ../../library/dis.rst:175 +msgid "" +"Construct a :class:`Bytecode` instance from the given traceback, setting " +"*current_offset* to the instruction responsible for the exception." +msgstr "" + +#: ../../library/dis.rst:180 +msgid "The compiled code object." +msgstr "" + +#: ../../library/dis.rst:184 +msgid "The first source line of the code object (if available)" +msgstr "" + +#: ../../library/dis.rst:188 +msgid "" +"Return a formatted view of the bytecode operations (the same as printed " +"by :func:`dis.dis`, but returned as a multi-line string)." +msgstr "" + +#: ../../library/dis.rst:193 +msgid "" +"Return a formatted multi-line string with detailed information about the " +"code object, like :func:`code_info`." +msgstr "" + +#: ../../library/dis.rst:196 ../../library/dis.rst:242 +#: ../../library/dis.rst:295 +msgid "This can now handle coroutine and asynchronous generator objects." +msgstr "" + +#: ../../library/dis.rst:199 ../../library/dis.rst:298 +#: ../../library/dis.rst:320 ../../library/dis.rst:356 +#: ../../library/dis.rst:382 +msgid "Added the *show_caches* and *adaptive* parameters." +msgstr "" + +#: ../../library/dis.rst:202 +msgid "Added the *show_offsets* parameter" +msgstr "" + +#: ../../library/dis.rst:205 ../../library/dis.rst:304 +#: ../../library/dis.rst:326 ../../library/dis.rst:362 +msgid "Added the *show_positions* parameter." +msgstr "" + +#: ../../library/dis.rst:208 +msgid "Example:" +msgstr "" + +#: ../../library/dis.rst:210 +msgid "" +">>> bytecode = dis.Bytecode(myfunc)\n" +">>> for instr in bytecode:\n" +"... print(instr.opname)\n" +"...\n" +"RESUME\n" +"LOAD_GLOBAL\n" +"LOAD_FAST_BORROW\n" +"CALL\n" +"RETURN_VALUE" +msgstr "" + +#: ../../library/dis.rst:224 +msgid "Analysis functions" +msgstr "" + +#: ../../library/dis.rst:226 +msgid "" +"The :mod:`dis` module also defines the following analysis functions that " +"convert the input directly to the desired output. They can be useful if only " +"a single operation is being performed, so the intermediate analysis object " +"isn't useful:" +msgstr "" + +#: ../../library/dis.rst:232 +msgid "" +"Return a formatted multi-line string with detailed code object information " +"for the supplied function, generator, asynchronous generator, coroutine, " +"method, source code string or code object." +msgstr "" + +#: ../../library/dis.rst:236 +msgid "" +"Note that the exact contents of code info strings are highly implementation " +"dependent and they may change arbitrarily across Python VMs or Python " +"releases." +msgstr "" + +#: ../../library/dis.rst:248 +msgid "" +"Print detailed code object information for the supplied function, method, " +"source code string or code object to *file* (or ``sys.stdout`` if *file* is " +"not specified)." +msgstr "" + +#: ../../library/dis.rst:252 +msgid "" +"This is a convenient shorthand for ``print(code_info(x), file=file)``, " +"intended for interactive exploration at the interpreter prompt." +msgstr "" + +#: ../../library/dis.rst:257 ../../library/dis.rst:289 +#: ../../library/dis.rst:317 ../../library/dis.rst:353 +msgid "Added *file* parameter." +msgstr "" + +#: ../../library/dis.rst:264 +msgid "" +"Disassemble the *x* object. *x* can denote either a module, a class, a " +"method, a function, a generator, an asynchronous generator, a coroutine, a " +"code object, a string of source code or a byte sequence of raw bytecode. For " +"a module, it disassembles all functions. For a class, it disassembles all " +"methods (including class and static methods). For a code object or sequence " +"of raw bytecode, it prints one line per bytecode instruction. It also " +"recursively disassembles nested code objects. These can include generator " +"expressions, nested functions, the bodies of nested classes, and the code " +"objects used for :ref:`annotation scopes `. Strings are " +"first compiled to code objects with the :func:`compile` built-in function " +"before being disassembled. If no object is provided, this function " +"disassembles the last traceback." +msgstr "" + +#: ../../library/dis.rst:277 ../../library/dis.rst:314 +#: ../../library/dis.rst:350 +msgid "" +"The disassembly is written as text to the supplied *file* argument if " +"provided and to ``sys.stdout`` otherwise." +msgstr "" + +#: ../../library/dis.rst:280 +msgid "" +"The maximal depth of recursion is limited by *depth* unless it is ``None``. " +"``depth=0`` means no recursion." +msgstr "" + +#: ../../library/dis.rst:283 +msgid "" +"If *show_caches* is ``True``, this function will display inline cache " +"entries used by the interpreter to specialize the bytecode." +msgstr "" + +#: ../../library/dis.rst:286 +msgid "" +"If *adaptive* is ``True``, this function will display specialized bytecode " +"that may be different from the original bytecode." +msgstr "" + +#: ../../library/dis.rst:292 +msgid "Implemented recursive disassembling and added *depth* parameter." +msgstr "" + +#: ../../library/dis.rst:301 ../../library/dis.rst:323 +#: ../../library/dis.rst:359 +msgid "Added the *show_offsets* parameter." +msgstr "" + +#: ../../library/dis.rst:310 +msgid "" +"Disassemble the top-of-stack function of a traceback, using the last " +"traceback if none was passed. The instruction causing the exception is " +"indicated." +msgstr "" + +#: ../../library/dis.rst:334 +msgid "" +"Disassemble a code object, indicating the last instruction if *lasti* was " +"provided. The output is divided in the following columns:" +msgstr "" + +#: ../../library/dis.rst:337 +msgid "" +"the source code location of the instruction. Complete location information " +"is shown if *show_positions* is true. Otherwise (the default) only the line " +"number is displayed." +msgstr "" + +#: ../../library/dis.rst:340 +msgid "the current instruction, indicated as ``-->``," +msgstr "" + +#: ../../library/dis.rst:341 +msgid "a labelled instruction, indicated with ``>>``," +msgstr "" + +#: ../../library/dis.rst:342 +msgid "the address of the instruction," +msgstr "" + +#: ../../library/dis.rst:343 +msgid "the operation code name," +msgstr "" + +#: ../../library/dis.rst:344 +msgid "operation parameters, and" +msgstr "" + +#: ../../library/dis.rst:345 +msgid "interpretation of the parameters in parentheses." +msgstr "" + +#: ../../library/dis.rst:347 +msgid "" +"The parameter interpretation recognizes local and global variable names, " +"constant values, branch targets, and compare operators." +msgstr "" + +#: ../../library/dis.rst:367 +msgid "" +"Return an iterator over the instructions in the supplied function, method, " +"source code string or code object." +msgstr "" + +#: ../../library/dis.rst:370 +msgid "" +"The iterator generates a series of :class:`Instruction` named tuples giving " +"the details of each operation in the supplied code." +msgstr "" + +#: ../../library/dis.rst:378 +msgid "The *adaptive* parameter works as it does in :func:`dis`." +msgstr "" + +#: ../../library/dis.rst:385 +msgid "" +"The *show_caches* parameter is deprecated and has no effect. The iterator " +"generates the :class:`Instruction` instances with the *cache_info* field " +"populated (regardless of the value of *show_caches*) and it no longer " +"generates separate items for the cache entries." +msgstr "" + +#: ../../library/dis.rst:393 +msgid "" +"This generator function uses the :meth:`~codeobject.co_lines` method of " +"the :ref:`code object ` *code* to find the offsets which are " +"starts of lines in the source code. They are generated as ``(offset, " +"lineno)`` pairs." +msgstr "" + +#: ../../library/dis.rst:398 +msgid "Line numbers can be decreasing. Before, they were always increasing." +msgstr "" + +#: ../../library/dis.rst:401 +msgid "" +"The :pep:`626` :meth:`~codeobject.co_lines` method is used instead of " +"the :attr:`~codeobject.co_firstlineno` and :attr:`~codeobject.co_lnotab` " +"attributes of the :ref:`code object `." +msgstr "" + +#: ../../library/dis.rst:406 +msgid "" +"Line numbers can be ``None`` for bytecode that does not map to source lines." +msgstr "" + +#: ../../library/dis.rst:412 +msgid "" +"Detect all offsets in the raw compiled bytecode string *code* which are jump " +"targets, and return a list of these offsets." +msgstr "" + +#: ../../library/dis.rst:418 +msgid "Compute the stack effect of *opcode* with argument *oparg*." +msgstr "" + +#: ../../library/dis.rst:420 +msgid "" +"If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " +"will return the stack effect of jumping. If *jump* is ``False``, it will " +"return the stack effect of not jumping. And if *jump* is ``None`` (default), " +"it will return the maximal stack effect of both cases." +msgstr "" + +#: ../../library/dis.rst:427 +msgid "Added *jump* parameter." +msgstr "" + +#: ../../library/dis.rst:430 +msgid "" +"If ``oparg`` is omitted (or ``None``), the stack effect is now returned for " +"``oparg=0``. Previously this was an error for opcodes that use their arg. It " +"is also no longer an error to pass an integer ``oparg`` when the ``opcode`` " +"does not use it; the ``oparg`` in this case is ignored." +msgstr "" + +#: ../../library/dis.rst:440 +msgid "Python Bytecode Instructions" +msgstr "" + +#: ../../library/dis.rst:442 +msgid "" +"The :func:`get_instructions` function and :class:`Bytecode` class provide " +"details of bytecode instructions as :class:`Instruction` instances:" +msgstr "" + +#: ../../library/dis.rst:447 +msgid "Details for a bytecode operation" +msgstr "" + +#: ../../library/dis.rst:451 +msgid "" +"numeric code for operation, corresponding to the opcode values listed below " +"and the bytecode values in the :ref:`opcode_collections`." +msgstr "" + +#: ../../library/dis.rst:457 +msgid "human readable name for operation" +msgstr "" + +#: ../../library/dis.rst:462 +msgid "" +"numeric code for the base operation if operation is specialized; otherwise " +"equal to :data:`opcode`" +msgstr "" + +#: ../../library/dis.rst:468 +msgid "" +"human readable name for the base operation if operation is specialized; " +"otherwise equal to :data:`opname`" +msgstr "" + +#: ../../library/dis.rst:474 +msgid "numeric argument to operation (if any), otherwise ``None``" +msgstr "" + +#: ../../library/dis.rst:478 +msgid "alias for :data:`arg`" +msgstr "" + +#: ../../library/dis.rst:482 +msgid "resolved arg value (if any), otherwise ``None``" +msgstr "" + +#: ../../library/dis.rst:487 +msgid "" +"human readable description of operation argument (if any), otherwise an " +"empty string." +msgstr "" + +#: ../../library/dis.rst:493 +msgid "start index of operation within bytecode sequence" +msgstr "" + +#: ../../library/dis.rst:498 +msgid "" +"start index of operation within bytecode sequence, including prefixed " +"``EXTENDED_ARG`` operations if present; otherwise equal to :data:`offset`" +msgstr "" + +#: ../../library/dis.rst:504 +msgid "start index of the cache entries following the operation" +msgstr "" + +#: ../../library/dis.rst:509 +msgid "end index of the cache entries following the operation" +msgstr "" + +#: ../../library/dis.rst:514 +msgid "``True`` if this opcode starts a source line, otherwise ``False``" +msgstr "" + +#: ../../library/dis.rst:519 +msgid "" +"source line number associated with this opcode (if any), otherwise ``None``" +msgstr "" + +#: ../../library/dis.rst:524 +msgid "``True`` if other code jumps to here, otherwise ``False``" +msgstr "" + +#: ../../library/dis.rst:529 +msgid "" +"bytecode index of the jump target if this is a jump operation, otherwise " +"``None``" +msgstr "" + +#: ../../library/dis.rst:535 +msgid "" +":class:`dis.Positions` object holding the start and end locations that are " +"covered by this instruction." +msgstr "" + +#: ../../library/dis.rst:540 +msgid "" +"Information about the cache entries of this instruction, as triplets of the " +"form ``(name, size, data)``, where the ``name`` and ``size`` describe the " +"cache format and data is the contents of the cache. ``cache_info`` is " +"``None`` if the instruction does not have caches." +msgstr "" + +#: ../../library/dis.rst:550 +msgid "Field ``positions`` is added." +msgstr "" + +#: ../../library/dis.rst:554 +msgid "Changed field ``starts_line``." +msgstr "" + +#: ../../library/dis.rst:556 +msgid "" +"Added fields ``start_offset``, ``cache_offset``, ``end_offset``, " +"``baseopname``, ``baseopcode``, ``jump_target``, ``oparg``, ``line_number`` " +"and ``cache_info``." +msgstr "" + +#: ../../library/dis.rst:563 +msgid "" +"In case the information is not available, some fields might be ``None``." +msgstr "" + +#: ../../library/dis.rst:573 +msgid "" +"The Python compiler currently generates the following bytecode instructions." +msgstr "" + +#: ../../library/dis.rst:576 +msgid "**General instructions**" +msgstr "" + +#: ../../library/dis.rst:578 +msgid "" +"In the following, We will refer to the interpreter stack as ``STACK`` and " +"describe operations on it as if it was a Python list. The top of the stack " +"corresponds to ``STACK[-1]`` in this language." +msgstr "" + +#: ../../library/dis.rst:584 +msgid "" +"Do nothing code. Used as a placeholder by the bytecode optimizer, and to " +"generate line tracing events." +msgstr "" + +#: ../../library/dis.rst:590 +msgid "Removes the top-of-stack item::" +msgstr "" + +#: ../../library/dis.rst:592 +msgid "STACK.pop()" +msgstr "" + +#: ../../library/dis.rst:597 +msgid "" +"Removes the top-of-stack item. Equivalent to ``POP_TOP``. Used to clean up " +"at the end of loops, hence the name." +msgstr "" + +#: ../../library/dis.rst:606 +msgid "Implements ``del STACK[-2]``. Used to clean up when a generator exits." +msgstr "" + +#: ../../library/dis.rst:614 +msgid "" +"Push the i-th item to the top of the stack without removing it from its " +"original location::" +msgstr "" + +#: ../../library/dis.rst:617 +msgid "" +"assert i > 0\n" +"STACK.append(STACK[-i])" +msgstr "" + +#: ../../library/dis.rst:625 +msgid "Swap the top of the stack with the i-th element::" +msgstr "" + +#: ../../library/dis.rst:627 +msgid "STACK[-i], STACK[-1] = STACK[-1], STACK[-i]" +msgstr "" + +#: ../../library/dis.rst:634 +msgid "" +"Rather than being an actual instruction, this opcode is used to mark extra " +"space for the interpreter to cache useful data directly in the bytecode " +"itself. It is automatically hidden by all ``dis`` utilities, but can be " +"viewed with ``show_caches=True``." +msgstr "" + +#: ../../library/dis.rst:639 +msgid "" +"Logically, this space is part of the preceding instruction. Many opcodes " +"expect to be followed by an exact number of caches, and will instruct the " +"interpreter to skip over them at runtime." +msgstr "" + +#: ../../library/dis.rst:643 +msgid "" +"Populated caches can look like arbitrary instructions, so great care should " +"be taken when reading or modifying raw, adaptive bytecode containing " +"quickened data." +msgstr "" + +#: ../../library/dis.rst:650 +msgid "**Unary operations**" +msgstr "" + +#: ../../library/dis.rst:652 +msgid "" +"Unary operations take the top of the stack, apply the operation, and push " +"the result back on the stack." +msgstr "" + +#: ../../library/dis.rst:658 +msgid "Implements ``STACK[-1] = -STACK[-1]``." +msgstr "" + +#: ../../library/dis.rst:663 +msgid "Implements ``STACK[-1] = not STACK[-1]``." +msgstr "" + +#: ../../library/dis.rst:665 ../../library/dis.rst:1367 +#: ../../library/dis.rst:1383 +msgid "This instruction now requires an exact :class:`bool` operand." +msgstr "" + +#: ../../library/dis.rst:671 +msgid "Implements ``STACK[-1] = ~STACK[-1]``." +msgstr "" + +#: ../../library/dis.rst:676 +msgid "Implements ``STACK[-1] = iter(STACK[-1])``." +msgstr "" + +#: ../../library/dis.rst:681 +msgid "" +"If ``STACK[-1]`` is a :term:`generator iterator` or :term:`coroutine` object " +"it is left as is. Otherwise, implements ``STACK[-1] = iter(STACK[-1])``." +msgstr "" + +#: ../../library/dis.rst:689 +msgid "Implements ``STACK[-1] = bool(STACK[-1])``." +msgstr "" + +#: ../../library/dis.rst:694 +msgid "**Binary and in-place operations**" +msgstr "" + +#: ../../library/dis.rst:696 +msgid "" +"Binary operations remove the top two items from the stack (``STACK[-1]`` and " +"``STACK[-2]``). They perform the operation, then put the result back on the " +"stack." +msgstr "" + +#: ../../library/dis.rst:699 +msgid "" +"In-place operations are like binary operations, but the operation is done in-" +"place when ``STACK[-2]`` supports it, and the resulting ``STACK[-1]`` may be " +"(but does not have to be) the original ``STACK[-2]``." +msgstr "" + +#: ../../library/dis.rst:706 +msgid "" +"Implements the binary and in-place operators (depending on the value of " +"*op*)::" +msgstr "" + +#: ../../library/dis.rst:709 +msgid "" +"rhs = STACK.pop()\n" +"lhs = STACK.pop()\n" +"STACK.append(lhs op rhs)" +msgstr "" + +#: ../../library/dis.rst:714 +msgid "" +"With oparg :``NB_SUBSCR``, implements binary subscript (replaces opcode " +"``BINARY_SUBSCR``)" +msgstr "" + +#: ../../library/dis.rst:720 ../../library/dis.rst:730 +#: ../../library/dis.rst:738 ../../library/dis.rst:750 +#: ../../library/dis.rst:828 ../../library/dis.rst:838 +#: ../../library/dis.rst:848 ../../library/dis.rst:1054 +#: ../../library/dis.rst:1065 ../../library/dis.rst:1210 +#: ../../library/dis.rst:1222 ../../library/dis.rst:1234 +msgid "Implements::" +msgstr "" + +#: ../../library/dis.rst:722 +msgid "" +"key = STACK.pop()\n" +"container = STACK.pop()\n" +"value = STACK.pop()\n" +"container[key] = value" +msgstr "" + +#: ../../library/dis.rst:732 +msgid "" +"key = STACK.pop()\n" +"container = STACK.pop()\n" +"del container[key]" +msgstr "" + +#: ../../library/dis.rst:740 +msgid "" +"end = STACK.pop()\n" +"start = STACK.pop()\n" +"container = STACK.pop()\n" +"STACK.append(container[start:end])" +msgstr "" + +#: ../../library/dis.rst:752 +msgid "" +"end = STACK.pop()\n" +"start = STACK.pop()\n" +"container = STACK.pop()\n" +"values = STACK.pop()\n" +"container[start:end] = value" +msgstr "" + +#: ../../library/dis.rst:761 +msgid "**Coroutine opcodes**" +msgstr "" + +#: ../../library/dis.rst:765 +msgid "" +"Implements ``STACK[-1] = get_awaitable(STACK[-1])``, where " +"``get_awaitable(o)`` returns ``o`` if ``o`` is a coroutine object or a " +"generator object with the :data:`~inspect.CO_ITERABLE_COROUTINE` flag, or " +"resolves ``o.__await__``." +msgstr "" + +#: ../../library/dis.rst:770 +msgid "" +"If the ``where`` operand is nonzero, it indicates where the instruction " +"occurs:" +msgstr "" + +#: ../../library/dis.rst:773 +msgid "``1``: After a call to ``__aenter__``" +msgstr "" + +#: ../../library/dis.rst:774 +msgid "``2``: After a call to ``__aexit__``" +msgstr "" + +#: ../../library/dis.rst:778 +msgid "Previously, this instruction did not have an oparg." +msgstr "" + +#: ../../library/dis.rst:784 +msgid "Implements ``STACK[-1] = STACK[-1].__aiter__()``." +msgstr "" + +#: ../../library/dis.rst:787 +msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." +msgstr "" + +#: ../../library/dis.rst:794 +msgid "" +"Implement ``STACK.append(get_awaitable(STACK[-1].__anext__()))`` to the " +"stack. See ``GET_AWAITABLE`` for details about ``get_awaitable``." +msgstr "" + +#: ../../library/dis.rst:802 +msgid "" +"Terminates an :keyword:`async for` loop. Handles an exception raised when " +"awaiting a next item. The stack contains the async iterable in ``STACK[-2]`` " +"and the raised exception in ``STACK[-1]``. Both are popped. If the exception " +"is not :exc:`StopAsyncIteration`, it is re-raised." +msgstr "" + +#: ../../library/dis.rst:809 ../../library/dis.rst:900 +#: ../../library/dis.rst:911 +msgid "" +"Exception representation on the stack now consist of one, not three, items." +msgstr "" + +#: ../../library/dis.rst:815 +msgid "" +"Handles an exception raised during a :meth:`~generator.throw` " +"or :meth:`~generator.close` call through the current frame. If " +"``STACK[-1]`` is an instance of :exc:`StopIteration`, pop three values from " +"the stack and push its ``value`` member. Otherwise, re-raise ``STACK[-1]``." +msgstr "" + +#: ../../library/dis.rst:824 +msgid "**Miscellaneous opcodes**" +msgstr "" + +#: ../../library/dis.rst:830 +msgid "" +"item = STACK.pop()\n" +"set.add(STACK[-i], item)" +msgstr "" + +#: ../../library/dis.rst:833 +msgid "Used to implement set comprehensions." +msgstr "" + +#: ../../library/dis.rst:840 +msgid "" +"item = STACK.pop()\n" +"list.append(STACK[-i], item)" +msgstr "" + +#: ../../library/dis.rst:843 +msgid "Used to implement list comprehensions." +msgstr "" + +#: ../../library/dis.rst:850 +msgid "" +"value = STACK.pop()\n" +"key = STACK.pop()\n" +"dict.__setitem__(STACK[-i], key, value)" +msgstr "" + +#: ../../library/dis.rst:854 +msgid "Used to implement dict comprehensions." +msgstr "" + +#: ../../library/dis.rst:857 +msgid "" +"Map value is ``STACK[-1]`` and map key is ``STACK[-2]``. Before, those were " +"reversed." +msgstr "" + +#: ../../library/dis.rst:861 +msgid "" +"For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` " +"and :opcode:`MAP_ADD` instructions, while the added value or key/value pair " +"is popped off, the container object remains on the stack so that it is " +"available for further iterations of the loop." +msgstr "" + +#: ../../library/dis.rst:869 +msgid "Returns with ``STACK[-1]`` to the caller of the function." +msgstr "" + +#: ../../library/dis.rst:874 +msgid "Yields ``STACK.pop()`` from a :term:`generator`." +msgstr "" + +#: ../../library/dis.rst:876 +msgid "oparg set to be the stack depth." +msgstr "" + +#: ../../library/dis.rst:879 +msgid "" +"oparg set to be the exception block depth, for efficient closing of " +"generators." +msgstr "" + +#: ../../library/dis.rst:882 +msgid "" +"oparg is ``1`` if this instruction is part of a yield-from or await, and " +"``0`` otherwise." +msgstr "" + +#: ../../library/dis.rst:888 +msgid "" +"Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " +"set up to an empty ``dict``. This opcode is only emitted if a class or " +"module body contains :term:`variable annotations ` " +"statically." +msgstr "" + +#: ../../library/dis.rst:898 +msgid "" +"Pops a value from the stack, which is used to restore the exception state." +msgstr "" + +#: ../../library/dis.rst:905 +msgid "" +"Re-raises the exception currently on top of the stack. If oparg is non-zero, " +"pops an additional value from the stack which is used to " +"set :attr:`~frame.f_lasti` of the current frame." +msgstr "" + +#: ../../library/dis.rst:916 +msgid "" +"Pops a value from the stack. Pushes the current exception to the top of the " +"stack. Pushes the value originally popped back to the stack. Used in " +"exception handlers." +msgstr "" + +#: ../../library/dis.rst:924 +msgid "" +"Performs exception matching for ``except``. Tests whether the ``STACK[-2]`` " +"is an exception matching ``STACK[-1]``. Pops ``STACK[-1]`` and pushes the " +"boolean result of the test." +msgstr "" + +#: ../../library/dis.rst:932 +msgid "" +"Performs exception matching for ``except*``. Applies ``split(STACK[-1])`` on " +"the exception group representing ``STACK[-2]``." +msgstr "" + +#: ../../library/dis.rst:935 +msgid "" +"In case of a match, pops two items from the stack and pushes the non-" +"matching subgroup (``None`` in case of full match) followed by the matching " +"subgroup. When there is no match, pops one item (the match type) and pushes " +"``None``." +msgstr "" + +#: ../../library/dis.rst:944 +msgid "" +"Calls the function in position 4 on the stack with arguments (type, val, tb) " +"representing the exception at the top of the stack. Used to implement the " +"call ``context_manager.__exit__(*exc_info())`` when an exception has " +"occurred in a :keyword:`with` statement." +msgstr "" + +#: ../../library/dis.rst:951 +msgid "" +"The ``__exit__`` function is in position 4 of the stack rather than 7. " +"Exception representation on the stack now consist of one, not three, items." +msgstr "" + +#: ../../library/dis.rst:958 +msgid "" +"Pushes a common constant onto the stack. The interpreter contains a " +"hardcoded list of constants supported by this instruction. Used by " +"the :keyword:`assert` statement to load :exc:`AssertionError`." +msgstr "" + +#: ../../library/dis.rst:967 +msgid "" +"Pushes :func:`!builtins.__build_class__` onto the stack. It is later called " +"to construct a class." +msgstr "" + +#: ../../library/dis.rst:972 +msgid "" +"Perform ``STACK.append(len(STACK[-1]))``. Used in :keyword:`match` " +"statements where comparison with structure of pattern is needed." +msgstr "" + +#: ../../library/dis.rst:980 +msgid "" +"If ``STACK[-1]`` is an instance of :class:`collections.abc.Mapping` (or, " +"more technically: if it has the :c:macro:`Py_TPFLAGS_MAPPING` flag set in " +"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " +"Otherwise, push ``False``." +msgstr "" + +#: ../../library/dis.rst:990 +msgid "" +"If ``STACK[-1]`` is an instance of :class:`collections.abc.Sequence` and is " +"*not* an instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, " +"more technically: if it has the :c:macro:`Py_TPFLAGS_SEQUENCE` flag set in " +"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " +"Otherwise, push ``False``." +msgstr "" + +#: ../../library/dis.rst:1000 +msgid "" +"``STACK[-1]`` is a tuple of mapping keys, and ``STACK[-2]`` is the match " +"subject. If ``STACK[-2]`` contains all of the keys in ``STACK[-1]``, push " +"a :class:`tuple` containing the corresponding values. Otherwise, push " +"``None``." +msgstr "" + +#: ../../library/dis.rst:1006 ../../library/dis.rst:1748 +msgid "" +"Previously, this instruction also pushed a boolean value indicating success " +"(``True``) or failure (``False``)." +msgstr "" + +#: ../../library/dis.rst:1013 +msgid "" +"Implements ``name = STACK.pop()``. *namei* is the index of *name* in the " +"attribute :attr:`~codeobject.co_names` of the :ref:`code object `. The compiler tries to use :opcode:`STORE_FAST` " +"or :opcode:`STORE_GLOBAL` if possible." +msgstr "" + +#: ../../library/dis.rst:1020 +msgid "" +"Implements ``del name``, where *namei* is the index " +"into :attr:`~codeobject.co_names` attribute of the :ref:`code object `." +msgstr "" + +#: ../../library/dis.rst:1026 +msgid "" +"Unpacks ``STACK[-1]`` into *count* individual values, which are put onto the " +"stack right-to-left. Require there to be exactly *count* values.::" +msgstr "" + +#: ../../library/dis.rst:1029 +msgid "" +"assert(len(STACK[-1]) == count)\n" +"STACK.extend(STACK.pop()[:-count-1:-1])" +msgstr "" + +#: ../../library/dis.rst:1035 +msgid "" +"Implements assignment with a starred target: Unpacks an iterable in " +"``STACK[-1]`` into individual values, where the total number of values can " +"be smaller than the number of items in the iterable: one of the new values " +"will be a list of all leftover items." +msgstr "" + +#: ../../library/dis.rst:1040 +msgid "The number of values before and after the list value is limited to 255." +msgstr "" + +#: ../../library/dis.rst:1042 +msgid "" +"The number of values before the list value is encoded in the argument of the " +"opcode. The number of values after the list if any is encoded using an " +"``EXTENDED_ARG``. As a consequence, the argument can be seen as a two bytes " +"values where the low byte of *counts* is the number of values before the " +"list value, the high byte of *counts* the number of values after it." +msgstr "" + +#: ../../library/dis.rst:1048 +msgid "" +"The extracted values are put onto the stack right-to-left, i.e. ``a, *b, c = " +"d`` will be stored after execution as ``STACK.extend((a, b, c))``." +msgstr "" + +#: ../../library/dis.rst:1056 +msgid "" +"obj = STACK.pop()\n" +"value = STACK.pop()\n" +"obj.name = value" +msgstr "" + +#: ../../library/dis.rst:1060 +msgid "" +"where *namei* is the index of name in :attr:`~codeobject.co_names` of " +"the :ref:`code object `." +msgstr "" + +#: ../../library/dis.rst:1067 +msgid "" +"obj = STACK.pop()\n" +"del obj.name" +msgstr "" + +#: ../../library/dis.rst:1070 +msgid "" +"where *namei* is the index of name into :attr:`~codeobject.co_names` of " +"the :ref:`code object `." +msgstr "" + +#: ../../library/dis.rst:1076 +msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." +msgstr "" + +#: ../../library/dis.rst:1081 +msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." +msgstr "" + +#: ../../library/dis.rst:1086 +msgid "Pushes ``co_consts[consti]`` onto the stack." +msgstr "" + +#: ../../library/dis.rst:1091 +msgid "" +"Pushes the integer ``i`` onto the stack. ``i`` must be in ``range(256)``" +msgstr "" + +#: ../../library/dis.rst:1099 +msgid "" +"Pushes the value associated with ``co_names[namei]`` onto the stack. The " +"name is looked up within the locals, then the globals, then the builtins." +msgstr "" + +#: ../../library/dis.rst:1105 +msgid "" +"Pushes a reference to the locals dictionary onto the stack. This is used to " +"prepare namespace dictionaries for :opcode:`LOAD_FROM_DICT_OR_DEREF` " +"and :opcode:`LOAD_FROM_DICT_OR_GLOBALS`." +msgstr "" + +#: ../../library/dis.rst:1114 +msgid "" +"Pops a mapping off the stack and looks up the value for ``co_names[namei]``. " +"If the name is not found there, looks it up in the globals and then the " +"builtins, similar to :opcode:`LOAD_GLOBAL`. This is used for loading global " +"variables in :ref:`annotation scopes ` within class " +"bodies." +msgstr "" + +#: ../../library/dis.rst:1125 +msgid "" +"Constructs a new :class:`~string.templatelib.Template` from a tuple of " +"strings and a tuple of interpolations and pushes the resulting instance onto " +"the stack::" +msgstr "" + +#: ../../library/dis.rst:1129 +msgid "" +"interpolations = STACK.pop()\n" +"strings = STACK.pop()\n" +"STACK.append(_build_template(strings, interpolations))" +msgstr "" + +#: ../../library/dis.rst:1138 +msgid "" +"Constructs a new :class:`~string.templatelib.Interpolation` from a value and " +"its source expression and pushes the resulting instance onto the stack." +msgstr "" + +#: ../../library/dis.rst:1142 +msgid "" +"If no conversion or format specification is present, ``format`` is set to " +"``2``." +msgstr "" + +#: ../../library/dis.rst:1145 +msgid "" +"If the low bit of ``format`` is set, it indicates that the interpolation " +"contains a format specification." +msgstr "" + +#: ../../library/dis.rst:1148 +msgid "" +"If ``format >> 2`` is non-zero, it indicates that the interpolation contains " +"a conversion. The value of ``format >> 2`` is the conversion type (``0`` for " +"no conversion, ``1`` for ``!s``, ``2`` for ``!r``, and ``3`` for ``!a``)::" +msgstr "" + +#: ../../library/dis.rst:1153 +msgid "" +"conversion = format >> 2\n" +"if format & 1:\n" +" format_spec = STACK.pop()\n" +"else:\n" +" format_spec = None\n" +"expression = STACK.pop()\n" +"value = STACK.pop()\n" +"STACK.append(_build_interpolation(value, expression, conversion, " +"format_spec))" +msgstr "" + +#: ../../library/dis.rst:1167 +msgid "" +"Creates a tuple consuming *count* items from the stack, and pushes the " +"resulting tuple onto the stack::" +msgstr "" + +#: ../../library/dis.rst:1170 +msgid "" +"if count == 0:\n" +" value = ()\n" +"else:\n" +" value = tuple(STACK[-count:])\n" +" STACK = STACK[:-count]\n" +"\n" +"STACK.append(value)" +msgstr "" + +#: ../../library/dis.rst:1181 +msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." +msgstr "" + +#: ../../library/dis.rst:1186 +msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." +msgstr "" + +#: ../../library/dis.rst:1191 +msgid "" +"Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " +"that the dictionary holds *count* entries: ``{..., STACK[-4]: STACK[-3], " +"STACK[-2]: STACK[-1]}``." +msgstr "" + +#: ../../library/dis.rst:1195 +msgid "" +"The dictionary is created from stack items instead of creating an empty " +"dictionary pre-sized to hold *count* items." +msgstr "" + +#: ../../library/dis.rst:1202 +msgid "" +"Concatenates *count* strings from the stack and pushes the resulting string " +"onto the stack." +msgstr "" + +#: ../../library/dis.rst:1212 +msgid "" +"seq = STACK.pop()\n" +"list.extend(STACK[-i], seq)" +msgstr "" + +#: ../../library/dis.rst:1215 +msgid "Used to build lists." +msgstr "" + +#: ../../library/dis.rst:1224 +msgid "" +"seq = STACK.pop()\n" +"set.update(STACK[-i], seq)" +msgstr "" + +#: ../../library/dis.rst:1227 +msgid "Used to build sets." +msgstr "" + +#: ../../library/dis.rst:1236 +msgid "" +"map = STACK.pop()\n" +"dict.update(STACK[-i], map)" +msgstr "" + +#: ../../library/dis.rst:1239 +msgid "Used to build dicts." +msgstr "" + +#: ../../library/dis.rst:1246 +msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." +msgstr "" + +#: ../../library/dis.rst:1253 +msgid "" +"If the low bit of ``namei`` is not set, this replaces ``STACK[-1]`` with " +"``getattr(STACK[-1], co_names[namei>>1])``." +msgstr "" + +#: ../../library/dis.rst:1256 +msgid "" +"If the low bit of ``namei`` is set, this will attempt to load a method named " +"``co_names[namei>>1]`` from the ``STACK[-1]`` object. ``STACK[-1]`` is " +"popped. This bytecode distinguishes two cases: if ``STACK[-1]`` has a method " +"with the correct name, the bytecode pushes the unbound method and " +"``STACK[-1]``. ``STACK[-1]`` will be used as the first argument (``self``) " +"by :opcode:`CALL` or :opcode:`CALL_KW` when calling the unbound method. " +"Otherwise, ``NULL`` and the object returned by the attribute lookup are " +"pushed." +msgstr "" + +#: ../../library/dis.rst:1265 +msgid "" +"If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is pushed to " +"the stack before the attribute or unbound method respectively." +msgstr "" + +#: ../../library/dis.rst:1272 +msgid "" +"This opcode implements :func:`super`, both in its zero-argument and two-" +"argument forms (e.g. ``super().method()``, ``super().attr`` and ``super(cls, " +"self).method()``, ``super(cls, self).attr``)." +msgstr "" + +#: ../../library/dis.rst:1276 +msgid "It pops three values from the stack (from top of stack down):" +msgstr "" + +#: ../../library/dis.rst:1278 +msgid "``self``: the first argument to the current method" +msgstr "" + +#: ../../library/dis.rst:1279 +msgid "``cls``: the class within which the current method was defined" +msgstr "" + +#: ../../library/dis.rst:1280 +msgid "the global ``super``" +msgstr "" + +#: ../../library/dis.rst:1282 +msgid "" +"With respect to its argument, it works similarly to :opcode:`LOAD_ATTR`, " +"except that ``namei`` is shifted left by 2 bits instead of 1." +msgstr "" + +#: ../../library/dis.rst:1285 +msgid "" +"The low bit of ``namei`` signals to attempt a method load, as " +"with :opcode:`LOAD_ATTR`, which results in pushing ``NULL`` and the loaded " +"method. When it is unset a single value is pushed to the stack." +msgstr "" + +#: ../../library/dis.rst:1289 +msgid "" +"The second-low bit of ``namei``, if set, means that this was a two-argument " +"call to :func:`super` (unset means zero-argument)." +msgstr "" + +#: ../../library/dis.rst:1297 +msgid "" +"Performs a Boolean operation. The operation name can be found in " +"``cmp_op[opname >> 5]``. If the fifth-lowest bit of ``opname`` is set " +"(``opname & 16``), the result should be coerced to ``bool``." +msgstr "" + +#: ../../library/dis.rst:1301 +msgid "" +"The fifth-lowest bit of the oparg now indicates a forced conversion " +"to :class:`bool`." +msgstr "" + +#: ../../library/dis.rst:1308 +msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." +msgstr "" + +#: ../../library/dis.rst:1315 +msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." +msgstr "" + +#: ../../library/dis.rst:1322 +msgid "" +"Imports the module ``co_names[namei]``. ``STACK[-1]`` and ``STACK[-2]`` are " +"popped and provide the *fromlist* and *level* arguments " +"of :func:`__import__`. The module object is pushed onto the stack. The " +"current namespace is not affected: for a proper import statement, a " +"subsequent :opcode:`STORE_FAST` instruction modifies the namespace." +msgstr "" + +#: ../../library/dis.rst:1330 +msgid "" +"Loads the attribute ``co_names[namei]`` from the module found in " +"``STACK[-1]``. The resulting object is pushed onto the stack, to be " +"subsequently stored by a :opcode:`STORE_FAST` instruction." +msgstr "" + +#: ../../library/dis.rst:1337 +msgid "Increments bytecode counter by *delta*." +msgstr "" + +#: ../../library/dis.rst:1342 +msgid "Decrements bytecode counter by *delta*. Checks for interrupts." +msgstr "" + +#: ../../library/dis.rst:1349 +msgid "Decrements bytecode counter by *delta*. Does not check for interrupts." +msgstr "" + +#: ../../library/dis.rst:1356 +msgid "" +"If ``STACK[-1]`` is true, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." +msgstr "" + +#: ../../library/dis.rst:1359 ../../library/dis.rst:1375 +msgid "" +"The oparg is now a relative delta rather than an absolute target. This " +"opcode is a pseudo-instruction, replaced in final bytecode by the directed " +"versions (forward/backward)." +msgstr "" + +#: ../../library/dis.rst:1364 ../../library/dis.rst:1380 +#: ../../library/dis.rst:1393 ../../library/dis.rst:1404 +msgid "This is no longer a pseudo-instruction." +msgstr "" + +#: ../../library/dis.rst:1372 +msgid "" +"If ``STACK[-1]`` is false, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." +msgstr "" + +#: ../../library/dis.rst:1388 +msgid "" +"If ``STACK[-1]`` is not ``None``, increments the bytecode counter by " +"*delta*. ``STACK[-1]`` is popped." +msgstr "" + +#: ../../library/dis.rst:1399 +msgid "" +"If ``STACK[-1]`` is ``None``, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." +msgstr "" + +#: ../../library/dis.rst:1409 +msgid "" +"``STACK[-1]`` is an :term:`iterator`. Call its :meth:`~iterator.__next__` " +"method. If this yields a new value, push it on the stack (leaving the " +"iterator below it). If the iterator indicates it is exhausted then the byte " +"code counter is incremented by *delta*." +msgstr "" + +#: ../../library/dis.rst:1414 +msgid "Up until 3.11 the iterator was popped when it was exhausted." +msgstr "" + +#: ../../library/dis.rst:1419 +msgid "Loads the global named ``co_names[namei>>1]`` onto the stack." +msgstr "" + +#: ../../library/dis.rst:1421 +msgid "" +"If the low bit of ``namei`` is set, then a ``NULL`` is pushed to the stack " +"before the global variable." +msgstr "" + +#: ../../library/dis.rst:1427 +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." +msgstr "" + +#: ../../library/dis.rst:1429 +msgid "" +"This opcode is now only used in situations where the local variable is " +"guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`." +msgstr "" + +#: ../../library/dis.rst:1435 +msgid "" +"Pushes a borrowed reference to the local ``co_varnames[var_num]`` onto the " +"stack." +msgstr "" + +#: ../../library/dis.rst:1442 +msgid "" +"Pushes references to ``co_varnames[var_nums >> 4]`` and " +"``co_varnames[var_nums & 15]`` onto the stack." +msgstr "" + +#: ../../library/dis.rst:1450 +msgid "" +"Pushes borrowed references to ``co_varnames[var_nums >> 4]`` and " +"``co_varnames[var_nums & 15]`` onto the stack." +msgstr "" + +#: ../../library/dis.rst:1457 +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, " +"raising an :exc:`UnboundLocalError` if the local variable has not been " +"initialized." +msgstr "" + +#: ../../library/dis.rst:1465 +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack (or " +"pushes ``NULL`` onto the stack if the local variable has not been " +"initialized) and sets ``co_varnames[var_num]`` to ``NULL``." +msgstr "" + +#: ../../library/dis.rst:1473 +msgid "Stores ``STACK.pop()`` into the local ``co_varnames[var_num]``." +msgstr "" + +#: ../../library/dis.rst:1477 +msgid "" +"Stores ``STACK[-1]`` into ``co_varnames[var_nums >> 4]`` and ``STACK[-2]`` " +"into ``co_varnames[var_nums & 15]``." +msgstr "" + +#: ../../library/dis.rst:1484 +msgid "" +"Stores ``STACK.pop()`` into the local ``co_varnames[var_nums >> 4]`` and " +"pushes a reference to the local ``co_varnames[var_nums & 15]`` onto the " +"stack." +msgstr "" + +#: ../../library/dis.rst:1492 +msgid "Deletes local ``co_varnames[var_num]``." +msgstr "" + +#: ../../library/dis.rst:1497 +msgid "" +"Creates a new cell in slot ``i``. If that slot is nonempty then that value " +"is stored into the new cell." +msgstr "" + +#: ../../library/dis.rst:1505 +msgid "" +"Loads the cell contained in slot ``i`` of the \"fast locals\" storage. " +"Pushes a reference to the object the cell contains on the stack." +msgstr "" + +#: ../../library/dis.rst:1508 ../../library/dis.rst:1530 +#: ../../library/dis.rst:1541 +msgid "" +"``i`` is no longer offset by the length of :attr:`~codeobject.co_varnames`." +msgstr "" + +#: ../../library/dis.rst:1514 +msgid "" +"Pops a mapping off the stack and looks up the name associated with slot " +"``i`` of the \"fast locals\" storage in this mapping. If the name is not " +"found there, loads it from the cell contained in slot ``i``, similar " +"to :opcode:`LOAD_DEREF`. This is used for loading :term:`closure variables " +"` in class bodies (which previously used :opcode:`!" +"LOAD_CLASSDEREF`) and in :ref:`annotation scopes ` within " +"class bodies." +msgstr "" + +#: ../../library/dis.rst:1527 +msgid "" +"Stores ``STACK.pop()`` into the cell contained in slot ``i`` of the \"fast " +"locals\" storage." +msgstr "" + +#: ../../library/dis.rst:1536 +msgid "" +"Empties the cell contained in slot ``i`` of the \"fast locals\" storage. " +"Used by the :keyword:`del` statement." +msgstr "" + +#: ../../library/dis.rst:1547 +msgid "" +"Copies the ``n`` :term:`free (closure) variables ` from " +"the closure into the frame. Removes the need for special code on the " +"caller's side when calling closures." +msgstr "" + +#: ../../library/dis.rst:1556 +msgid "" +"Raises an exception using one of the 3 forms of the ``raise`` statement, " +"depending on the value of *argc*:" +msgstr "" + +#: ../../library/dis.rst:1559 +msgid "0: ``raise`` (re-raise previous exception)" +msgstr "" + +#: ../../library/dis.rst:1560 +msgid "" +"1: ``raise STACK[-1]`` (raise exception instance or type at ``STACK[-1]``)" +msgstr "" + +#: ../../library/dis.rst:1561 +msgid "" +"2: ``raise STACK[-2] from STACK[-1]`` (raise exception instance or type at " +"``STACK[-2]`` with ``__cause__`` set to ``STACK[-1]``)" +msgstr "" + +#: ../../library/dis.rst:1567 +msgid "" +"Calls a callable object with the number of arguments specified by ``argc``. " +"On the stack are (in ascending order):" +msgstr "" + +#: ../../library/dis.rst:1570 ../../library/dis.rst:1594 +msgid "The callable" +msgstr "" + +#: ../../library/dis.rst:1571 ../../library/dis.rst:1595 +msgid "``self`` or ``NULL``" +msgstr "" + +#: ../../library/dis.rst:1572 ../../library/dis.rst:1596 +msgid "The remaining positional arguments" +msgstr "" + +#: ../../library/dis.rst:1574 +msgid "``argc`` is the total of the positional arguments, excluding ``self``." +msgstr "" + +#: ../../library/dis.rst:1576 +msgid "" +"``CALL`` pops all arguments and the callable object off the stack, calls the " +"callable object with those arguments, and pushes the return value returned " +"by the callable object." +msgstr "" + +#: ../../library/dis.rst:1582 +msgid "The callable now always appears at the same position on the stack." +msgstr "" + +#: ../../library/dis.rst:1585 +msgid "Calls with keyword arguments are now handled by :opcode:`CALL_KW`." +msgstr "" + +#: ../../library/dis.rst:1591 +msgid "" +"Calls a callable object with the number of arguments specified by ``argc``, " +"including one or more named arguments. On the stack are (in ascending order):" +msgstr "" + +#: ../../library/dis.rst:1597 +msgid "The named arguments" +msgstr "" + +#: ../../library/dis.rst:1598 +msgid "A :class:`tuple` of keyword argument names" +msgstr "" + +#: ../../library/dis.rst:1600 +msgid "" +"``argc`` is the total of the positional and named arguments, excluding " +"``self``. The length of the tuple of keyword argument names is the number of " +"named arguments." +msgstr "" + +#: ../../library/dis.rst:1603 +msgid "" +"``CALL_KW`` pops all arguments, the keyword names, and the callable object " +"off the stack, calls the callable object with those arguments, and pushes " +"the return value returned by the callable object." +msgstr "" + +#: ../../library/dis.rst:1612 +msgid "" +"Calls a callable object with variable set of positional and keyword " +"arguments. If the lowest bit of *flags* is set, the top of the stack " +"contains a mapping object containing additional keyword arguments. Before " +"the callable is called, the mapping object and iterable object are each " +"\"unpacked\" and their contents passed in as keyword and positional " +"arguments respectively. ``CALL_FUNCTION_EX`` pops all arguments and the " +"callable object off the stack, calls the callable object with those " +"arguments, and pushes the return value returned by the callable object." +msgstr "" + +#: ../../library/dis.rst:1627 +msgid "" +"Pushes a ``NULL`` to the stack. Used in the call sequence to match the " +"``NULL`` pushed by :opcode:`LOAD_METHOD` for non-method calls." +msgstr "" + +#: ../../library/dis.rst:1636 +msgid "" +"Pushes a new function object on the stack built from the code object at " +"``STACK[-1]``." +msgstr "" + +#: ../../library/dis.rst:1638 +msgid "Flag value ``0x04`` is a tuple of strings instead of dictionary" +msgstr "" + +#: ../../library/dis.rst:1641 +msgid "Qualified name at ``STACK[-1]`` was removed." +msgstr "" + +#: ../../library/dis.rst:1644 +msgid "" +"Extra function attributes on the stack, signaled by oparg flags, were " +"removed. They now use :opcode:`SET_FUNCTION_ATTRIBUTE`." +msgstr "" + +#: ../../library/dis.rst:1651 +msgid "" +"Sets an attribute on a function object. Expects the function at " +"``STACK[-1]`` and the attribute value to set at ``STACK[-2]``; consumes both " +"and leaves the function at ``STACK[-1]``. The flag determines which " +"attribute to set:" +msgstr "" + +#: ../../library/dis.rst:1655 +msgid "" +"``0x01`` a tuple of default values for positional-only and positional-or-" +"keyword parameters in positional order" +msgstr "" + +#: ../../library/dis.rst:1657 +msgid "``0x02`` a dictionary of keyword-only parameters' default values" +msgstr "" + +#: ../../library/dis.rst:1658 +msgid "``0x04`` a tuple of strings containing parameters' annotations" +msgstr "" + +#: ../../library/dis.rst:1659 +msgid "``0x08`` a tuple containing cells for free variables, making a closure" +msgstr "" + +#: ../../library/dis.rst:1668 +msgid "" +"Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " +"implements::" +msgstr "" + +#: ../../library/dis.rst:1670 +msgid "" +"end = STACK.pop()\n" +"start = STACK.pop()\n" +"STACK.append(slice(start, end))" +msgstr "" + +#: ../../library/dis.rst:1674 +msgid "if it is 3, implements::" +msgstr "" + +#: ../../library/dis.rst:1676 +msgid "" +"step = STACK.pop()\n" +"end = STACK.pop()\n" +"start = STACK.pop()\n" +"STACK.append(slice(start, end, step))" +msgstr "" + +#: ../../library/dis.rst:1681 +msgid "See the :func:`slice` built-in function for more information." +msgstr "" + +#: ../../library/dis.rst:1686 +msgid "" +"Prefixes any opcode which has an argument too big to fit into the default " +"one byte. *ext* holds an additional byte which act as higher bits in the " +"argument. For each opcode, at most three prefixal ``EXTENDED_ARG`` are " +"allowed, forming an argument from two-byte to four-byte." +msgstr "" + +#: ../../library/dis.rst:1694 +msgid "Convert value to a string, depending on ``oparg``::" +msgstr "" + +#: ../../library/dis.rst:1696 +msgid "" +"value = STACK.pop()\n" +"result = func(value)\n" +"STACK.append(result)" +msgstr "" + +#: ../../library/dis.rst:1700 +msgid "``oparg == 1``: call :func:`str` on *value*" +msgstr "" + +#: ../../library/dis.rst:1701 +msgid "``oparg == 2``: call :func:`repr` on *value*" +msgstr "" + +#: ../../library/dis.rst:1702 +msgid "``oparg == 3``: call :func:`ascii` on *value*" +msgstr "" + +#: ../../library/dis.rst:1704 ../../library/dis.rst:1717 +#: ../../library/dis.rst:1730 +msgid "Used for implementing formatted string literals (f-strings)." +msgstr "" + +#: ../../library/dis.rst:1711 +msgid "Formats the value on top of stack::" +msgstr "" + +#: ../../library/dis.rst:1713 +msgid "" +"value = STACK.pop()\n" +"result = value.__format__(\"\")\n" +"STACK.append(result)" +msgstr "" + +#: ../../library/dis.rst:1723 +msgid "Formats the given value with the given format spec::" +msgstr "" + +#: ../../library/dis.rst:1725 +msgid "" +"spec = STACK.pop()\n" +"value = STACK.pop()\n" +"result = value.__format__(spec)\n" +"STACK.append(result)" +msgstr "" + +#: ../../library/dis.rst:1737 +msgid "" +"``STACK[-1]`` is a tuple of keyword attribute names, ``STACK[-2]`` is the " +"class being matched against, and ``STACK[-3]`` is the match subject. " +"*count* is the number of positional sub-patterns." +msgstr "" + +#: ../../library/dis.rst:1741 +msgid "" +"Pop ``STACK[-1]``, ``STACK[-2]``, and ``STACK[-3]``. If ``STACK[-3]`` is an " +"instance of ``STACK[-2]`` and has the positional and keyword attributes " +"required by *count* and ``STACK[-1]``, push a tuple of extracted attributes. " +"Otherwise, push ``None``." +msgstr "" + +#: ../../library/dis.rst:1755 +msgid "A no-op. Performs internal tracing, debugging and optimization checks." +msgstr "" + +#: ../../library/dis.rst:1757 +msgid "" +"The ``context`` operand consists of two parts. The lowest two bits indicate " +"where the ``RESUME`` occurs:" +msgstr "" + +#: ../../library/dis.rst:1760 +msgid "" +"``0`` The start of a function, which is neither a generator, coroutine nor " +"an async generator" +msgstr "" + +#: ../../library/dis.rst:1762 +msgid "``1`` After a ``yield`` expression" +msgstr "" + +#: ../../library/dis.rst:1763 +msgid "``2`` After a ``yield from`` expression" +msgstr "" + +#: ../../library/dis.rst:1764 +msgid "``3`` After an ``await`` expression" +msgstr "" + +#: ../../library/dis.rst:1766 +msgid "" +"The next bit is ``1`` if the RESUME is at except-depth ``1``, and ``0`` " +"otherwise." +msgstr "" + +#: ../../library/dis.rst:1771 +msgid "The oparg value changed to include information about except-depth" +msgstr "" + +#: ../../library/dis.rst:1777 +msgid "" +"Create a generator, coroutine, or async generator from the current frame. " +"Used as first opcode of in code object for the above mentioned callables. " +"Clear the current frame and return the newly created generator." +msgstr "" + +#: ../../library/dis.rst:1786 +msgid "" +"Equivalent to ``STACK[-1] = STACK[-2].send(STACK[-1])``. Used in ``yield " +"from`` and ``await`` statements." +msgstr "" + +#: ../../library/dis.rst:1789 +msgid "" +"If the call raises :exc:`StopIteration`, pop the top value from the stack, " +"push the exception's ``value`` attribute, and increment the bytecode counter " +"by *delta*." +msgstr "" + +#: ../../library/dis.rst:1798 +msgid "" +"This is not really an opcode. It identifies the dividing line between " +"opcodes in the range [0,255] which don't use their argument and those that " +"do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." +msgstr "" + +#: ../../library/dis.rst:1802 +msgid "" +"If your application uses pseudo instructions or specialized instructions, " +"use the :data:`hasarg` collection instead." +msgstr "" + +#: ../../library/dis.rst:1805 +msgid "" +"Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " +"ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." +msgstr "" + +#: ../../library/dis.rst:1809 +msgid "" +"Pseudo instructions were added to the :mod:`dis` module, and for them it is " +"not true that comparison with ``HAVE_ARGUMENT`` indicates whether they use " +"their arg." +msgstr "" + +#: ../../library/dis.rst:1814 +msgid "Use :data:`hasarg` instead." +msgstr "" + +#: ../../library/dis.rst:1819 +msgid "" +"Calls an intrinsic function with one argument. Passes ``STACK[-1]`` as the " +"argument and sets ``STACK[-1]`` to the result. Used to implement " +"functionality that is not performance critical." +msgstr "" + +#: ../../library/dis.rst:1823 ../../library/dis.rst:1877 +msgid "The operand determines which intrinsic function is called:" +msgstr "" + +#: ../../library/dis.rst:1826 ../../library/dis.rst:1880 +msgid "Operand" +msgstr "" + +#: ../../library/dis.rst:1826 ../../library/dis.rst:1880 +msgid "Description" +msgstr "" + +#: ../../library/dis.rst:1828 +msgid "``INTRINSIC_1_INVALID``" +msgstr "``INTRINSIC_1_INVALID``" + +#: ../../library/dis.rst:1828 ../../library/dis.rst:1882 +msgid "Not valid" +msgstr "" + +#: ../../library/dis.rst:1830 +msgid "``INTRINSIC_PRINT``" +msgstr "``INTRINSIC_PRINT``" + +#: ../../library/dis.rst:1830 +msgid "Prints the argument to standard out. Used in the REPL." +msgstr "" + +#: ../../library/dis.rst:1833 +msgid "``INTRINSIC_IMPORT_STAR``" +msgstr "``INTRINSIC_IMPORT_STAR``" + +#: ../../library/dis.rst:1833 +msgid "Performs ``import *`` for the named module." +msgstr "" + +#: ../../library/dis.rst:1836 +msgid "``INTRINSIC_STOPITERATION_ERROR``" +msgstr "``INTRINSIC_STOPITERATION_ERROR``" + +#: ../../library/dis.rst:1836 +msgid "Extracts the return value from a ``StopIteration`` exception." +msgstr "" + +#: ../../library/dis.rst:1839 +msgid "``INTRINSIC_ASYNC_GEN_WRAP``" +msgstr "``INTRINSIC_ASYNC_GEN_WRAP``" + +#: ../../library/dis.rst:1839 +msgid "Wraps an async generator value" +msgstr "" + +#: ../../library/dis.rst:1841 +msgid "``INTRINSIC_UNARY_POSITIVE``" +msgstr "``INTRINSIC_UNARY_POSITIVE``" + +#: ../../library/dis.rst:1841 +msgid "Performs the unary ``+`` operation" +msgstr "" + +#: ../../library/dis.rst:1844 +msgid "``INTRINSIC_LIST_TO_TUPLE``" +msgstr "``INTRINSIC_LIST_TO_TUPLE``" + +#: ../../library/dis.rst:1844 +msgid "Converts a list to a tuple" +msgstr "" + +#: ../../library/dis.rst:1846 +msgid "``INTRINSIC_TYPEVAR``" +msgstr "``INTRINSIC_TYPEVAR``" + +#: ../../library/dis.rst:1846 +msgid "Creates a :class:`typing.TypeVar`" +msgstr "" + +#: ../../library/dis.rst:1848 +msgid "``INTRINSIC_PARAMSPEC``" +msgstr "``INTRINSIC_PARAMSPEC``" + +#: ../../library/dis.rst:1848 +msgid "Creates a :class:`typing.ParamSpec`" +msgstr "" + +#: ../../library/dis.rst:1851 +msgid "``INTRINSIC_TYPEVARTUPLE``" +msgstr "``INTRINSIC_TYPEVARTUPLE``" + +#: ../../library/dis.rst:1851 +msgid "Creates a :class:`typing.TypeVarTuple`" +msgstr "" + +#: ../../library/dis.rst:1854 +msgid "``INTRINSIC_SUBSCRIPT_GENERIC``" +msgstr "``INTRINSIC_SUBSCRIPT_GENERIC``" + +#: ../../library/dis.rst:1854 +msgid "Returns :class:`typing.Generic` subscripted with the argument" +msgstr "" + +#: ../../library/dis.rst:1857 +msgid "``INTRINSIC_TYPEALIAS``" +msgstr "``INTRINSIC_TYPEALIAS``" + +#: ../../library/dis.rst:1857 +msgid "" +"Creates a :class:`typing.TypeAliasType`; used in the :keyword:`type` " +"statement. The argument is a tuple of the type alias's name, type " +"parameters, and value." +msgstr "" + +#: ../../library/dis.rst:1869 +msgid "" +"Calls an intrinsic function with two arguments. Used to implement " +"functionality that is not performance critical::" +msgstr "" + +#: ../../library/dis.rst:1872 +msgid "" +"arg2 = STACK.pop()\n" +"arg1 = STACK.pop()\n" +"result = intrinsic2(arg1, arg2)\n" +"STACK.append(result)" +msgstr "" + +#: ../../library/dis.rst:1882 +msgid "``INTRINSIC_2_INVALID``" +msgstr "``INTRINSIC_2_INVALID``" + +#: ../../library/dis.rst:1884 +msgid "``INTRINSIC_PREP_RERAISE_STAR``" +msgstr "``INTRINSIC_PREP_RERAISE_STAR``" + +#: ../../library/dis.rst:1884 +msgid "Calculates the :exc:`ExceptionGroup` to raise from a ``try-except*``." +msgstr "" + +#: ../../library/dis.rst:1888 +msgid "``INTRINSIC_TYPEVAR_WITH_BOUND``" +msgstr "``INTRINSIC_TYPEVAR_WITH_BOUND``" + +#: ../../library/dis.rst:1888 +msgid "Creates a :class:`typing.TypeVar` with a bound." +msgstr "" + +#: ../../library/dis.rst:1891 +msgid "``INTRINSIC_TYPEVAR_WITH_CONSTRAINTS``" +msgstr "``INTRINSIC_TYPEVAR_WITH_CONSTRAINTS``" + +#: ../../library/dis.rst:1891 +msgid "Creates a :class:`typing.TypeVar` with constraints." +msgstr "" + +#: ../../library/dis.rst:1895 +msgid "``INTRINSIC_SET_FUNCTION_TYPE_PARAMS``" +msgstr "``INTRINSIC_SET_FUNCTION_TYPE_PARAMS``" + +#: ../../library/dis.rst:1895 +msgid "Sets the ``__type_params__`` attribute of a function." +msgstr "" + +#: ../../library/dis.rst:1904 +msgid "" +"Performs special method lookup on ``STACK[-1]``. If " +"``type(STACK[-1]).__xxx__`` is a method, leave ``type(STACK[-1]).__xxx__; " +"STACK[-1]`` on the stack. If ``type(STACK[-1]).__xxx__`` is not a method, " +"leave ``STACK[-1].__xxx__; NULL`` on the stack." +msgstr "" + +#: ../../library/dis.rst:1913 +msgid "**Pseudo-instructions**" +msgstr "" + +#: ../../library/dis.rst:1915 +msgid "" +"These opcodes do not appear in Python bytecode. They are used by the " +"compiler but are replaced by real opcodes or removed before bytecode is " +"generated." +msgstr "" + +#: ../../library/dis.rst:1920 +msgid "" +"Set up an exception handler for the following code block. If an exception " +"occurs, the value stack level is restored to its current state and control " +"is transferred to the exception handler at ``target``." +msgstr "" + +#: ../../library/dis.rst:1927 +msgid "" +"Like ``SETUP_FINALLY``, but in case of an exception also pushes the last " +"instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. If " +"an exception occurs, the value stack level and the last instruction on the " +"frame are restored to their current state, and control is transferred to the " +"exception handler at ``target``." +msgstr "" + +#: ../../library/dis.rst:1936 +msgid "" +"Like ``SETUP_CLEANUP``, but in case of an exception one more item is popped " +"from the stack before control is transferred to the exception handler at " +"``target``." +msgstr "" + +#: ../../library/dis.rst:1940 +msgid "" +"This variant is used in :keyword:`with` and :keyword:`async with` " +"constructs, which push the return value of the context " +"manager's :meth:`~object.__enter__` or :meth:`~object.__aenter__` to the " +"stack." +msgstr "" + +#: ../../library/dis.rst:1947 +msgid "" +"Marks the end of the code block associated with the last ``SETUP_FINALLY``, " +"``SETUP_CLEANUP`` or ``SETUP_WITH``." +msgstr "" + +#: ../../library/dis.rst:1953 +msgid "" +"Undirected relative jump instructions which are replaced by their directed " +"(forward/backward) counterparts by the assembler." +msgstr "" + +#: ../../library/dis.rst:1959 +msgid "" +"Conditional jumps which do not impact the stack. Replaced by the sequence " +"``COPY 1``, ``TO_BOOL``, ``POP_JUMP_IF_TRUE/FALSE``." +msgstr "" + +#: ../../library/dis.rst:1964 +msgid "" +"Pushes a reference to the cell contained in slot ``i`` of the \"fast " +"locals\" storage." +msgstr "" + +#: ../../library/dis.rst:1967 +msgid "" +"Note that ``LOAD_CLOSURE`` is replaced with ``LOAD_FAST`` in the assembler." +msgstr "" + +#: ../../library/dis.rst:1969 +msgid "This opcode is now a pseudo-instruction." +msgstr "" + +#: ../../library/dis.rst:1975 +msgid "" +"Optimized unbound method lookup. Emitted as a ``LOAD_ATTR`` opcode with a " +"flag set in the arg." +msgstr "" + +#: ../../library/dis.rst:1982 +msgid "Opcode collections" +msgstr "" + +#: ../../library/dis.rst:1984 +msgid "" +"These collections are provided for automatic introspection of bytecode " +"instructions:" +msgstr "" + +#: ../../library/dis.rst:1987 +msgid "" +"The collections now contain pseudo instructions and instrumented " +"instructions as well. These are opcodes with values ``>= MIN_PSEUDO_OPCODE`` " +"and ``>= MIN_INSTRUMENTED_OPCODE``." +msgstr "" + +#: ../../library/dis.rst:1994 +msgid "Sequence of operation names, indexable using the bytecode." +msgstr "" + +#: ../../library/dis.rst:1999 +msgid "Dictionary mapping operation names to bytecodes." +msgstr "" + +#: ../../library/dis.rst:2004 +msgid "Sequence of all compare operation names." +msgstr "" + +#: ../../library/dis.rst:2009 +msgid "Sequence of bytecodes that use their argument." +msgstr "" + +#: ../../library/dis.rst:2016 +msgid "Sequence of bytecodes that access a constant." +msgstr "" + +#: ../../library/dis.rst:2021 +msgid "" +"Sequence of bytecodes that access a :term:`free (closure) variable `. 'free' in this context refers to names in the current scope that " +"are referenced by inner scopes or names in outer scopes that are referenced " +"from this scope. It does *not* include references to global or builtin " +"scopes." +msgstr "" + +#: ../../library/dis.rst:2029 +msgid "Sequence of bytecodes that access an attribute by name." +msgstr "" + +#: ../../library/dis.rst:2034 +msgid "Sequence of bytecodes that have a jump target. All jumps are relative." +msgstr "" + +#: ../../library/dis.rst:2041 +msgid "Sequence of bytecodes that access a local variable." +msgstr "" + +#: ../../library/dis.rst:2046 +msgid "Sequence of bytecodes of Boolean operations." +msgstr "" + +#: ../../library/dis.rst:2050 +msgid "Sequence of bytecodes that set an exception handler." +msgstr "" + +#: ../../library/dis.rst:2057 +msgid "Sequence of bytecodes that have a relative jump target." +msgstr "" + +#: ../../library/dis.rst:2059 +msgid "All jumps are now relative. Use :data:`hasjump`." +msgstr "" + +#: ../../library/dis.rst:2065 +msgid "Sequence of bytecodes that have an absolute jump target." +msgstr "" + +#: ../../library/dis.rst:2067 +msgid "All jumps are now relative. This list is empty." +msgstr "" + +#: ../../library/dis.rst:1666 +msgid "built-in function" +msgstr "" + +#: ../../library/dis.rst:1666 +msgid "slice" +msgstr "" diff --git a/library/distribution.po b/library/distribution.po new file mode 100644 index 0000000..46a8682 --- /dev/null +++ b/library/distribution.po @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/distribution.rst:3 +msgid "Software Packaging and Distribution" +msgstr "" + +#: ../../library/distribution.rst:5 +msgid "" +"These libraries help you with publishing and installing Python software. " +"While these modules are designed to work in conjunction with the `Python " +"Package Index `__, they can also be used with a local " +"index server, or without any index server at all." +msgstr "" diff --git a/library/distutils.po b/library/distutils.po new file mode 100644 index 0000000..99af784 --- /dev/null +++ b/library/distutils.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/distutils.rst:2 +msgid ":mod:`!distutils` --- Building and installing Python modules" +msgstr "" + +#: ../../library/distutils.rst:10 +msgid "" +"This module is no longer part of the Python standard library. It " +"was :ref:`removed in Python 3.12 ` after " +"being deprecated in Python 3.10. The removal was decided in :pep:`632`, " +"which has `migration advice `_." +msgstr "" + +#: ../../library/distutils.rst:16 +msgid "" +"The last version of Python that provided the :mod:`!distutils` module was " +"`Python 3.11 `_." +msgstr "" diff --git a/library/doctest.po b/library/doctest.po new file mode 100644 index 0000000..4a89808 --- /dev/null +++ b/library/doctest.po @@ -0,0 +1,2679 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/doctest.rst:2 +msgid ":mod:`!doctest` --- Test interactive Python examples" +msgstr "" + +#: ../../library/doctest.rst:12 +msgid "**Source code:** :source:`Lib/doctest.py`" +msgstr "" + +#: ../../library/doctest.rst:16 +msgid "" +"The :mod:`doctest` module searches for pieces of text that look like " +"interactive Python sessions, and then executes those sessions to verify that " +"they work exactly as shown. There are several common ways to use doctest:" +msgstr "" + +#: ../../library/doctest.rst:20 +msgid "" +"To check that a module's docstrings are up-to-date by verifying that all " +"interactive examples still work as documented." +msgstr "" + +#: ../../library/doctest.rst:23 +msgid "" +"To perform regression testing by verifying that interactive examples from a " +"test file or a test object work as expected." +msgstr "" + +#: ../../library/doctest.rst:26 +msgid "" +"To write tutorial documentation for a package, liberally illustrated with " +"input-output examples. Depending on whether the examples or the expository " +"text are emphasized, this has the flavor of \"literate testing\" or " +"\"executable documentation\"." +msgstr "" + +#: ../../library/doctest.rst:31 +msgid "Here's a complete but small example module::" +msgstr "" + +#: ../../library/doctest.rst:33 +msgid "" +"\"\"\"\n" +"This is the \"example\" module.\n" +"\n" +"The example module supplies one function, factorial(). For example,\n" +"\n" +">>> factorial(5)\n" +"120\n" +"\"\"\"\n" +"\n" +"def factorial(n):\n" +" \"\"\"Return the factorial of n, an exact integer >= 0.\n" +"\n" +" >>> [factorial(n) for n in range(6)]\n" +" [1, 1, 2, 6, 24, 120]\n" +" >>> factorial(30)\n" +" 265252859812191058636308480000000\n" +" >>> factorial(-1)\n" +" Traceback (most recent call last):\n" +" ...\n" +" ValueError: n must be >= 0\n" +"\n" +" Factorials of floats are OK, but the float must be an exact integer:\n" +" >>> factorial(30.1)\n" +" Traceback (most recent call last):\n" +" ...\n" +" ValueError: n must be exact integer\n" +" >>> factorial(30.0)\n" +" 265252859812191058636308480000000\n" +"\n" +" It must also not be ridiculously large:\n" +" >>> factorial(1e100)\n" +" Traceback (most recent call last):\n" +" ...\n" +" OverflowError: n too large\n" +" \"\"\"\n" +"\n" +" import math\n" +" if not n >= 0:\n" +" raise ValueError(\"n must be >= 0\")\n" +" if math.floor(n) != n:\n" +" raise ValueError(\"n must be exact integer\")\n" +" if n+1 == n: # catch a value like 1e300\n" +" raise OverflowError(\"n too large\")\n" +" result = 1\n" +" factor = 2\n" +" while factor <= n:\n" +" result *= factor\n" +" factor += 1\n" +" return result\n" +"\n" +"\n" +"if __name__ == \"__main__\":\n" +" import doctest\n" +" doctest.testmod()" +msgstr "" + +#: ../../library/doctest.rst:88 +msgid "" +"If you run :file:`example.py` directly from the command line, :mod:`doctest` " +"works its magic:" +msgstr "" + +#: ../../library/doctest.rst:91 +msgid "" +"$ python example.py\n" +"$" +msgstr "" + +#: ../../library/doctest.rst:96 +msgid "" +"There's no output! That's normal, and it means all the examples worked. " +"Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what " +"it's trying, and prints a summary at the end:" +msgstr "" + +#: ../../library/doctest.rst:100 +msgid "" +"$ python example.py -v\n" +"Trying:\n" +" factorial(5)\n" +"Expecting:\n" +" 120\n" +"ok\n" +"Trying:\n" +" [factorial(n) for n in range(6)]\n" +"Expecting:\n" +" [1, 1, 2, 6, 24, 120]\n" +"ok" +msgstr "" + +#: ../../library/doctest.rst:114 +msgid "And so on, eventually ending with:" +msgstr "" + +#: ../../library/doctest.rst:116 +msgid "" +"Trying:\n" +" factorial(1e100)\n" +"Expecting:\n" +" Traceback (most recent call last):\n" +" ...\n" +" OverflowError: n too large\n" +"ok\n" +"2 items passed all tests:\n" +" 1 test in __main__\n" +" 6 tests in __main__.factorial\n" +"7 tests in 2 items.\n" +"7 passed.\n" +"Test passed.\n" +"$" +msgstr "" + +#: ../../library/doctest.rst:133 +msgid "" +"That's all you need to know to start making productive use " +"of :mod:`doctest`! Jump in. The following sections provide full details. " +"Note that there are many examples of doctests in the standard Python test " +"suite and libraries. Especially useful examples can be found in the standard " +"test file :file:`Lib/test/test_doctest/test_doctest.py`." +msgstr "" + +#: ../../library/doctest.rst:139 +msgid "" +"Output is colorized by default and can be :ref:`controlled using environment " +"variables `." +msgstr "" + +#: ../../library/doctest.rst:147 +msgid "Simple Usage: Checking Examples in Docstrings" +msgstr "" + +#: ../../library/doctest.rst:149 +msgid "" +"The simplest way to start using doctest (but not necessarily the way you'll " +"continue to do it) is to end each module :mod:`!M` with::" +msgstr "" + +#: ../../library/doctest.rst:152 +msgid "" +"if __name__ == \"__main__\":\n" +" import doctest\n" +" doctest.testmod()" +msgstr "" + +#: ../../library/doctest.rst:156 +msgid ":mod:`!doctest` then examines docstrings in module :mod:`!M`." +msgstr "" + +#: ../../library/doctest.rst:158 +msgid "" +"Running the module as a script causes the examples in the docstrings to get " +"executed and verified::" +msgstr "" + +#: ../../library/doctest.rst:161 +msgid "python M.py" +msgstr "" + +#: ../../library/doctest.rst:163 +msgid "" +"This won't display anything unless an example fails, in which case the " +"failing example(s) and the cause(s) of the failure(s) are printed to stdout, " +"and the final line of output is ``***Test Failed*** N failures.``, where *N* " +"is the number of examples that failed." +msgstr "" + +#: ../../library/doctest.rst:168 +msgid "Run it with the ``-v`` switch instead::" +msgstr "" + +#: ../../library/doctest.rst:170 +msgid "python M.py -v" +msgstr "" + +#: ../../library/doctest.rst:172 +msgid "" +"and a detailed report of all examples tried is printed to standard output, " +"along with assorted summaries at the end." +msgstr "" + +#: ../../library/doctest.rst:175 +msgid "" +"You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " +"or prohibit it by passing ``verbose=False``. In either of those " +"cases, :data:`sys.argv` is not examined by :func:`testmod` (so passing ``-" +"v`` or not has no effect)." +msgstr "" + +#: ../../library/doctest.rst:180 +msgid "" +"There is also a command line shortcut for running :func:`testmod`, see " +"section :ref:`doctest-cli`." +msgstr "" + +#: ../../library/doctest.rst:183 +msgid "" +"For more information on :func:`testmod`, see section :ref:`doctest-basic-" +"api`." +msgstr "" + +#: ../../library/doctest.rst:189 +msgid "Simple Usage: Checking Examples in a Text File" +msgstr "" + +#: ../../library/doctest.rst:191 +msgid "" +"Another simple application of doctest is testing interactive examples in a " +"text file. This can be done with the :func:`testfile` function::" +msgstr "" + +#: ../../library/doctest.rst:194 +msgid "" +"import doctest\n" +"doctest.testfile(\"example.txt\")" +msgstr "" + +#: ../../library/doctest.rst:197 +msgid "" +"That short script executes and verifies any interactive Python examples " +"contained in the file :file:`example.txt`. The file content is treated as " +"if it were a single giant docstring; the file doesn't need to contain a " +"Python program! For example, perhaps :file:`example.txt` contains this:" +msgstr "" + +#: ../../library/doctest.rst:202 +msgid "" +"The ``example`` module\n" +"======================\n" +"\n" +"Using ``factorial``\n" +"-------------------\n" +"\n" +"This is an example text file in reStructuredText format. First import\n" +"``factorial`` from the ``example`` module:\n" +"\n" +" >>> from example import factorial\n" +"\n" +"Now use it:\n" +"\n" +" >>> factorial(6)\n" +" 120" +msgstr "" + +#: ../../library/doctest.rst:220 +msgid "" +"Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " +"documentation::" +msgstr "" + +#: ../../library/doctest.rst:223 +msgid "" +"File \"./example.txt\", line 14, in example.txt\n" +"Failed example:\n" +" factorial(6)\n" +"Expected:\n" +" 120\n" +"Got:\n" +" 720" +msgstr "" + +#: ../../library/doctest.rst:231 +msgid "" +"As with :func:`testmod`, :func:`testfile` won't display anything unless an " +"example fails. If an example does fail, then the failing example(s) and the " +"cause(s) of the failure(s) are printed to stdout, using the same format " +"as :func:`!testmod`." +msgstr "" + +#: ../../library/doctest.rst:236 +msgid "" +"By default, :func:`testfile` looks for files in the calling module's " +"directory. See section :ref:`doctest-basic-api` for a description of the " +"optional arguments that can be used to tell it to look for files in other " +"locations." +msgstr "" + +#: ../../library/doctest.rst:240 +msgid "" +"Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" +"v`` command-line switch or with the optional keyword argument *verbose*." +msgstr "" + +#: ../../library/doctest.rst:244 +msgid "" +"There is also a command line shortcut for running :func:`testfile`, see " +"section :ref:`doctest-cli`." +msgstr "" + +#: ../../library/doctest.rst:247 +msgid "" +"For more information on :func:`testfile`, see section :ref:`doctest-basic-" +"api`." +msgstr "" + +#: ../../library/doctest.rst:253 +msgid "Command-line Usage" +msgstr "" + +#: ../../library/doctest.rst:255 +msgid "" +"The :mod:`doctest` module can be invoked as a script from the command line:" +msgstr "" + +#: ../../library/doctest.rst:257 +msgid "python -m doctest [-v] [-o OPTION] [-f] file [file ...]" +msgstr "" + +#: ../../library/doctest.rst:265 +msgid "" +"Detailed report of all examples tried is printed to standard output, along " +"with assorted summaries at the end::" +msgstr "" + +#: ../../library/doctest.rst:268 +msgid "python -m doctest -v example.py" +msgstr "" + +#: ../../library/doctest.rst:270 +msgid "" +"This will import :file:`example.py` as a standalone module and " +"run :func:`testmod` on it. Note that this may not work correctly if the file " +"is part of a package and imports other submodules from that package." +msgstr "" + +#: ../../library/doctest.rst:274 +msgid "" +"If the file name does not end with :file:`.py`, :mod:`!doctest` infers that " +"it must be run with :func:`testfile` instead::" +msgstr "" + +#: ../../library/doctest.rst:277 +msgid "python -m doctest -v example.txt" +msgstr "" + +#: ../../library/doctest.rst:281 +msgid "" +"Option flags control various aspects of doctest's behavior, see " +"section :ref:`doctest-options`." +msgstr "" + +#: ../../library/doctest.rst:288 +msgid "This is shorthand for ``-o FAIL_FAST``." +msgstr "" + +#: ../../library/doctest.rst:296 +msgid "How It Works" +msgstr "" + +#: ../../library/doctest.rst:298 +msgid "" +"This section examines in detail how doctest works: which docstrings it looks " +"at, how it finds interactive examples, what execution context it uses, how " +"it handles exceptions, and how option flags can be used to control its " +"behavior. This is the information that you need to know to write doctest " +"examples; for information about actually running doctest on these examples, " +"see the following sections." +msgstr "" + +#: ../../library/doctest.rst:309 +msgid "Which Docstrings Are Examined?" +msgstr "" + +#: ../../library/doctest.rst:311 +msgid "" +"The module docstring, and all function, class and method docstrings are " +"searched. Objects imported into the module are not searched." +msgstr "" + +#: ../../library/doctest.rst:321 +msgid "" +"In addition, there are cases when you want tests to be part of a module but " +"not part of the help text, which requires that the tests not be included in " +"the docstring. Doctest looks for a module-level variable called ``__test__`` " +"and uses it to locate other tests. If ``M.__test__`` exists, it must be a " +"dict, and each entry maps a (string) name to a function object, class " +"object, or string. Function and class object docstrings found from " +"``M.__test__`` are searched, and strings are treated as if they were " +"docstrings. In output, a key ``K`` in ``M.__test__`` appears with name " +"``M.__test__.K``." +msgstr "" + +#: ../../library/doctest.rst:330 +msgid "For example, place this block of code at the top of :file:`example.py`:" +msgstr "" + +#: ../../library/doctest.rst:332 +msgid "" +"__test__ = {\n" +" 'numbers': \"\"\"\n" +">>> factorial(6)\n" +"720\n" +"\n" +">>> [factorial(n) for n in range(6)]\n" +"[1, 1, 2, 6, 24, 120]\n" +"\"\"\"\n" +"}" +msgstr "" + +#: ../../library/doctest.rst:344 +msgid "" +"The value of ``example.__test__[\"numbers\"]`` will be treated as a " +"docstring and all the tests inside it will be run. It is important to note " +"that the value can be mapped to a function, class object, or module; if " +"so, :mod:`!doctest` searches them recursively for docstrings, which are then " +"scanned for tests." +msgstr "" + +#: ../../library/doctest.rst:350 +msgid "" +"Any classes found are recursively searched similarly, to test docstrings in " +"their contained methods and nested classes." +msgstr "" + +#: ../../library/doctest.rst:357 +msgid "How are Docstring Examples Recognized?" +msgstr "" + +#: ../../library/doctest.rst:359 +msgid "" +"In most cases a copy-and-paste of an interactive console session works fine, " +"but doctest isn't trying to do an exact emulation of any specific Python " +"shell." +msgstr "" + +#: ../../library/doctest.rst:364 +msgid "" +">>> # comments are ignored\n" +">>> x = 12\n" +">>> x\n" +"12\n" +">>> if x == 13:\n" +"... print(\"yes\")\n" +"... else:\n" +"... print(\"no\")\n" +"... print(\"NO\")\n" +"... print(\"NO!!!\")\n" +"...\n" +"no\n" +"NO\n" +"NO!!!\n" +">>>" +msgstr "" + +#: ../../library/doctest.rst:384 +msgid "" +"Any expected output must immediately follow the final ``'>>> '`` or ``'... " +"'`` line containing the code, and the expected output (if any) extends to " +"the next ``'>>> '`` or all-whitespace line." +msgstr "" + +#: ../../library/doctest.rst:388 +msgid "The fine print:" +msgstr "" + +#: ../../library/doctest.rst:390 +msgid "" +"Expected output cannot contain an all-whitespace line, since such a line is " +"taken to signal the end of expected output. If expected output does contain " +"a blank line, put ```` in your doctest example each place a blank " +"line is expected." +msgstr "" + +#: ../../library/doctest.rst:395 +msgid "" +"All hard tab characters are expanded to spaces, using 8-column tab stops. " +"Tabs in output generated by the tested code are not modified. Because any " +"hard tabs in the sample output *are* expanded, this means that if the code " +"output includes hard tabs, the only way the doctest can pass is if " +"the :const:`NORMALIZE_WHITESPACE` option or :ref:`directive ` is in effect. Alternatively, the test can be rewritten to " +"capture the output and compare it to an expected value as part of the test. " +"This handling of tabs in the source was arrived at through trial and error, " +"and has proven to be the least error prone way of handling them. It is " +"possible to use a different algorithm for handling tabs by writing a " +"custom :class:`DocTestParser` class." +msgstr "" + +#: ../../library/doctest.rst:407 +msgid "" +"Output to stdout is captured, but not output to stderr (exception tracebacks " +"are captured via a different means)." +msgstr "" + +#: ../../library/doctest.rst:410 +msgid "" +"If you continue a line via backslashing in an interactive session, or for " +"any other reason use a backslash, you should use a raw docstring, which will " +"preserve your backslashes exactly as you type them::" +msgstr "" + +#: ../../library/doctest.rst:414 +msgid "" +">>> def f(x):\n" +"... r'''Backslashes in a raw docstring: m\\n'''\n" +"...\n" +">>> print(f.__doc__)\n" +"Backslashes in a raw docstring: m\\n" +msgstr "" + +#: ../../library/doctest.rst:420 +msgid "" +"Otherwise, the backslash will be interpreted as part of the string. For " +"example, the ``\\n`` above would be interpreted as a newline character. " +"Alternatively, you can double each backslash in the doctest version (and not " +"use a raw string)::" +msgstr "" + +#: ../../library/doctest.rst:424 +msgid "" +">>> def f(x):\n" +"... '''Backslashes in a raw docstring: m\\\\n'''\n" +"...\n" +">>> print(f.__doc__)\n" +"Backslashes in a raw docstring: m\\n" +msgstr "" + +#: ../../library/doctest.rst:430 +msgid "The starting column doesn't matter::" +msgstr "" + +#: ../../library/doctest.rst:432 +msgid "" +">>> assert \"Easy!\"\n" +" >>> import math\n" +" >>> math.floor(1.9)\n" +" 1" +msgstr "" + +#: ../../library/doctest.rst:437 +msgid "" +"and as many leading whitespace characters are stripped from the expected " +"output as appeared in the initial ``'>>> '`` line that started the example." +msgstr "" + +#: ../../library/doctest.rst:444 +msgid "What's the Execution Context?" +msgstr "" + +#: ../../library/doctest.rst:446 +msgid "" +"By default, each time :mod:`doctest` finds a docstring to test, it uses a " +"*shallow copy* of :mod:`!M`'s globals, so that running tests doesn't change " +"the module's real globals, and so that one test in :mod:`!M` can't leave " +"behind crumbs that accidentally allow another test to work. This means " +"examples can freely use any names defined at top-level in :mod:`!M`, and " +"names defined earlier in the docstring being run. Examples cannot see names " +"defined in other docstrings." +msgstr "" + +#: ../../library/doctest.rst:454 +msgid "" +"You can force use of your own dict as the execution context by passing " +"``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." +msgstr "" + +#: ../../library/doctest.rst:461 +msgid "What About Exceptions?" +msgstr "" + +#: ../../library/doctest.rst:463 +msgid "" +"No problem, provided that the traceback is the only output produced by the " +"example: just paste in the traceback. [#]_ Since tracebacks contain details " +"that are likely to change rapidly (for example, exact file paths and line " +"numbers), this is one case where doctest works hard to be flexible in what " +"it accepts." +msgstr "" + +#: ../../library/doctest.rst:469 +msgid "Simple example::" +msgstr "" + +#: ../../library/doctest.rst:471 +msgid "" +">>> [1, 2, 3].remove(42)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ValueError: list.remove(x): x not in list" +msgstr "" + +#: ../../library/doctest.rst:476 +msgid "" +"That doctest succeeds if :exc:`ValueError` is raised, with the " +"``list.remove(x): x not in list`` detail as shown." +msgstr "" + +#: ../../library/doctest.rst:479 +msgid "" +"The expected output for an exception must start with a traceback header, " +"which may be either of the following two lines, indented the same as the " +"first line of the example::" +msgstr "" + +#: ../../library/doctest.rst:483 +msgid "" +"Traceback (most recent call last):\n" +"Traceback (innermost last):" +msgstr "" + +#: ../../library/doctest.rst:486 +msgid "" +"The traceback header is followed by an optional traceback stack, whose " +"contents are ignored by doctest. The traceback stack is typically omitted, " +"or copied verbatim from an interactive session." +msgstr "" + +#: ../../library/doctest.rst:490 +msgid "" +"The traceback stack is followed by the most interesting part: the line(s) " +"containing the exception type and detail. This is usually the last line of " +"a traceback, but can extend across multiple lines if the exception has a " +"multi-line detail::" +msgstr "" + +#: ../../library/doctest.rst:495 +msgid "" +">>> raise ValueError('multi\\n line\\ndetail')\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ValueError: multi\n" +" line\n" +"detail" +msgstr "" + +#: ../../library/doctest.rst:502 +msgid "" +"The last three lines (starting with :exc:`ValueError`) are compared against " +"the exception's type and detail, and the rest are ignored." +msgstr "" + +#: ../../library/doctest.rst:505 +msgid "" +"Best practice is to omit the traceback stack, unless it adds significant " +"documentation value to the example. So the last example is probably better " +"as::" +msgstr "" + +#: ../../library/doctest.rst:508 +msgid "" +">>> raise ValueError('multi\\n line\\ndetail')\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: multi\n" +" line\n" +"detail" +msgstr "" + +#: ../../library/doctest.rst:515 +msgid "" +"Note that tracebacks are treated very specially. In particular, in the " +"rewritten example, the use of ``...`` is independent of " +"doctest's :const:`ELLIPSIS` option. The ellipsis in that example could be " +"left out, or could just as well be three (or three hundred) commas or " +"digits, or an indented transcript of a Monty Python skit." +msgstr "" + +#: ../../library/doctest.rst:521 +msgid "Some details you should read once, but won't need to remember:" +msgstr "" + +#: ../../library/doctest.rst:523 +msgid "" +"Doctest can't guess whether your expected output came from an exception " +"traceback or from ordinary printing. So, e.g., an example that expects " +"``ValueError: 42 is prime`` will pass whether :exc:`ValueError` is actually " +"raised or if the example merely prints that traceback text. In practice, " +"ordinary output rarely begins with a traceback header line, so this doesn't " +"create real problems." +msgstr "" + +#: ../../library/doctest.rst:530 +msgid "" +"Each line of the traceback stack (if present) must be indented further than " +"the first line of the example, *or* start with a non-alphanumeric character. " +"The first line following the traceback header indented the same and starting " +"with an alphanumeric is taken to be the start of the exception detail. Of " +"course this does the right thing for genuine tracebacks." +msgstr "" + +#: ../../library/doctest.rst:536 +msgid "" +"When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " +"everything following the leftmost colon and any module information in the " +"exception name is ignored." +msgstr "" + +#: ../../library/doctest.rst:540 +msgid "" +"The interactive shell omits the traceback header line for " +"some :exc:`SyntaxError`\\ s. But doctest uses the traceback header line to " +"distinguish exceptions from non-exceptions. So in the rare case where you " +"need to test a :exc:`!SyntaxError` that omits the traceback header, you will " +"need to manually add the traceback header line to your test example." +msgstr "" + +#: ../../library/doctest.rst:548 +msgid "" +"For some exceptions, Python displays the position of the error using ``^`` " +"markers and tildes::" +msgstr "" + +#: ../../library/doctest.rst:551 +msgid "" +">>> 1 + None\n" +" File \"\", line 1\n" +" 1 + None\n" +" ~~^~~~~~\n" +"TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" +msgstr "" + +#: ../../library/doctest.rst:557 +msgid "" +"Since the lines showing the position of the error come before the exception " +"type and detail, they are not checked by doctest. For example, the " +"following test would pass, even though it puts the ``^`` marker in the wrong " +"location::" +msgstr "" + +#: ../../library/doctest.rst:561 +msgid "" +">>> 1 + None\n" +" File \"\", line 1\n" +" 1 + None\n" +" ^~~~~~~~\n" +"TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" +msgstr "" + +#: ../../library/doctest.rst:572 +msgid "Option Flags" +msgstr "" + +#: ../../library/doctest.rst:574 +msgid "" +"A number of option flags control various aspects of doctest's behavior. " +"Symbolic names for the flags are supplied as module constants, which can " +"be :ref:`bitwise ORed ` together and passed to various functions. " +"The names can also be used in :ref:`doctest directives `, and may be passed to the doctest command line interface via " +"the ``-o`` option." +msgstr "" + +#: ../../library/doctest.rst:580 +msgid "" +"The first group of options define test semantics, controlling aspects of how " +"doctest decides whether actual output matches an example's expected output:" +msgstr "" + +#: ../../library/doctest.rst:586 +msgid "" +"By default, if an expected output block contains just ``1``, an actual " +"output block containing just ``1`` or just ``True`` is considered to be a " +"match, and similarly for ``0`` versus ``False``. " +"When :const:`DONT_ACCEPT_TRUE_FOR_1` is specified, neither substitution is " +"allowed. The default behavior caters to that Python changed the return type " +"of many functions from integer to boolean; doctests expecting \"little " +"integer\" output still work in these cases. This option will probably go " +"away, but not for several years." +msgstr "" + +#: ../../library/doctest.rst:598 +msgid "" +"By default, if an expected output block contains a line containing only the " +"string ````, then that line will match a blank line in the actual " +"output. Because a genuinely blank line delimits the expected output, this " +"is the only way to communicate that a blank line is expected. " +"When :const:`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not " +"allowed." +msgstr "" + +#: ../../library/doctest.rst:607 +msgid "" +"When specified, all sequences of whitespace (blanks and newlines) are " +"treated as equal. Any sequence of whitespace within the expected output " +"will match any sequence of whitespace within the actual output. By default, " +"whitespace must match exactly. :const:`NORMALIZE_WHITESPACE` is especially " +"useful when a line of expected output is very long, and you want to wrap it " +"across multiple lines in your source." +msgstr "" + +#: ../../library/doctest.rst:618 +msgid "" +"When specified, an ellipsis marker (``...``) in the expected output can " +"match any substring in the actual output. This includes substrings that " +"span line boundaries, and empty substrings, so it's best to keep usage of " +"this simple. Complicated uses can lead to the same kinds of \"oops, it " +"matched too much!\" surprises that ``.*`` is prone to in regular expressions." +msgstr "" + +#: ../../library/doctest.rst:627 +msgid "" +"When specified, doctests expecting exceptions pass so long as an exception " +"of the expected type is raised, even if the details (message and fully " +"qualified exception name) don't match." +msgstr "" + +#: ../../library/doctest.rst:631 +msgid "" +"For example, an example expecting ``ValueError: 42`` will pass if the actual " +"exception raised is ``ValueError: 3*14``, but will fail if, say, " +"a :exc:`TypeError` is raised instead. It will also ignore any fully " +"qualified name included before the exception class, which can vary between " +"implementations and versions of Python and the code/libraries in use. Hence, " +"all three of these variations will work with the flag specified:" +msgstr "" + +#: ../../library/doctest.rst:639 +msgid "" +">>> raise Exception('message')\n" +"Traceback (most recent call last):\n" +"Exception: message\n" +"\n" +">>> raise Exception('message')\n" +"Traceback (most recent call last):\n" +"builtins.Exception: message\n" +"\n" +">>> raise Exception('message')\n" +"Traceback (most recent call last):\n" +"__main__.Exception: message" +msgstr "" + +#: ../../library/doctest.rst:653 +msgid "" +"Note that :const:`ELLIPSIS` can also be used to ignore the details of the " +"exception message, but such a test may still fail based on whether the " +"module name is present or matches exactly." +msgstr "" + +#: ../../library/doctest.rst:657 +msgid "" +":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " +"to the module containing the exception under test." +msgstr "" + +#: ../../library/doctest.rst:664 +msgid "" +"When specified, do not run the example at all. This can be useful in " +"contexts where doctest examples serve as both documentation and test cases, " +"and an example should be included for documentation purposes, but should not " +"be checked. E.g., the example's output might be random; or the example " +"might depend on resources which would be unavailable to the test driver." +msgstr "" + +#: ../../library/doctest.rst:670 +msgid "" +"The SKIP flag can also be used for temporarily \"commenting out\" examples." +msgstr "" + +#: ../../library/doctest.rst:675 +msgid "A bitmask or'ing together all the comparison flags above." +msgstr "" + +#: ../../library/doctest.rst:677 +msgid "The second group of options controls how test failures are reported:" +msgstr "" + +#: ../../library/doctest.rst:682 +msgid "" +"When specified, failures that involve multi-line expected and actual outputs " +"are displayed using a unified diff." +msgstr "" + +#: ../../library/doctest.rst:688 +msgid "" +"When specified, failures that involve multi-line expected and actual outputs " +"will be displayed using a context diff." +msgstr "" + +#: ../../library/doctest.rst:694 +msgid "" +"When specified, differences are computed by ``difflib.Differ``, using the " +"same algorithm as the popular :file:`ndiff.py` utility. This is the only " +"method that marks differences within lines as well as across lines. For " +"example, if a line of expected output contains digit ``1`` where actual " +"output contains letter ``l``, a line is inserted with a caret marking the " +"mismatching column positions." +msgstr "" + +#: ../../library/doctest.rst:703 +msgid "" +"When specified, display the first failing example in each doctest, but " +"suppress output for all remaining examples. This will prevent doctest from " +"reporting correct examples that break because of earlier failures; but it " +"might also hide incorrect examples that fail independently of the first " +"failure. When :const:`REPORT_ONLY_FIRST_FAILURE` is specified, the " +"remaining examples are still run, and still count towards the total number " +"of failures reported; only the output is suppressed." +msgstr "" + +#: ../../library/doctest.rst:714 +msgid "" +"When specified, exit after the first failing example and don't attempt to " +"run the remaining examples. Thus, the number of failures reported will be at " +"most 1. This flag may be useful during debugging, since examples after the " +"first failure won't even produce debugging output." +msgstr "" + +#: ../../library/doctest.rst:722 +msgid "A bitmask or'ing together all the reporting flags above." +msgstr "" + +#: ../../library/doctest.rst:725 +msgid "" +"There is also a way to register new option flag names, though this isn't " +"useful unless you intend to extend :mod:`doctest` internals via subclassing:" +msgstr "" + +#: ../../library/doctest.rst:731 +msgid "" +"Create a new option flag with a given name, and return the new flag's " +"integer value. :func:`register_optionflag` can be used when " +"subclassing :class:`OutputChecker` or :class:`DocTestRunner` to create new " +"options that are supported by your subclasses. :func:`register_optionflag` " +"should always be called using the following idiom::" +msgstr "" + +#: ../../library/doctest.rst:737 +msgid "MY_FLAG = register_optionflag('MY_FLAG')" +msgstr "" + +#: ../../library/doctest.rst:747 +msgid "Directives" +msgstr "" + +#: ../../library/doctest.rst:749 +msgid "" +"Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " +"comments following an example's source code:" +msgstr "" + +#: ../../library/doctest.rst:760 +msgid "" +"Whitespace is not allowed between the ``+`` or ``-`` and the directive " +"option name. The directive option name can be any of the option flag names " +"explained above." +msgstr "" + +#: ../../library/doctest.rst:764 +msgid "" +"An example's doctest directives modify doctest's behavior for that single " +"example. Use ``+`` to enable the named behavior, or ``-`` to disable it." +msgstr "" + +#: ../../library/doctest.rst:767 +msgid "For example, this test passes:" +msgstr "" + +#: ../../library/doctest.rst:769 +msgid "" +">>> print(list(range(20))) # doctest: +NORMALIZE_WHITESPACE\n" +"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n" +"10, 11, 12, 13, 14, 15, 16, 17, 18, 19]" +msgstr "" + +#: ../../library/doctest.rst:776 +msgid "" +"Without the directive it would fail, both because the actual output doesn't " +"have two blanks before the single-digit list elements, and because the " +"actual output is on a single line. This test also passes, and also requires " +"a directive to do so:" +msgstr "" + +#: ../../library/doctest.rst:781 +msgid "" +">>> print(list(range(20))) # doctest: +ELLIPSIS\n" +"[0, 1, ..., 18, 19]" +msgstr "" + +#: ../../library/doctest.rst:787 +msgid "" +"Multiple directives can be used on a single physical line, separated by " +"commas:" +msgstr "" + +#: ../../library/doctest.rst:790 +msgid "" +">>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE\n" +"[0, 1, ..., 18, 19]" +msgstr "" + +#: ../../library/doctest.rst:796 +msgid "" +"If multiple directive comments are used for a single example, then they are " +"combined:" +msgstr "" + +#: ../../library/doctest.rst:799 +msgid "" +">>> print(list(range(20))) # doctest: +ELLIPSIS\n" +"... # doctest: +NORMALIZE_WHITESPACE\n" +"[0, 1, ..., 18, 19]" +msgstr "" + +#: ../../library/doctest.rst:806 +msgid "" +"As the previous example shows, you can add ``...`` lines to your example " +"containing only directives. This can be useful when an example is too long " +"for a directive to comfortably fit on the same line:" +msgstr "" + +#: ../../library/doctest.rst:810 +msgid "" +">>> print(list(range(5)) + list(range(10, 20)) + list(range(30, 40)))\n" +"... # doctest: +ELLIPSIS\n" +"[0, ..., 4, 10, ..., 19, 30, ..., 39]" +msgstr "" + +#: ../../library/doctest.rst:817 +msgid "" +"Note that since all options are disabled by default, and directives apply " +"only to the example they appear in, enabling options (via ``+`` in a " +"directive) is usually the only meaningful choice. However, option flags can " +"also be passed to functions that run doctests, establishing different " +"defaults. In such cases, disabling an option via ``-`` in a directive can " +"be useful." +msgstr "" + +#: ../../library/doctest.rst:827 +msgid "Warnings" +msgstr "" + +#: ../../library/doctest.rst:829 +msgid "" +":mod:`doctest` is serious about requiring exact matches in expected output. " +"If even a single character doesn't match, the test fails. This will " +"probably surprise you a few times, as you learn exactly what Python does and " +"doesn't guarantee about output. For example, when printing a set, Python " +"doesn't guarantee that the element is printed in any particular order, so a " +"test like ::" +msgstr "" + +#: ../../library/doctest.rst:835 +msgid "" +">>> foo()\n" +"{\"spam\", \"eggs\"}" +msgstr "" + +#: ../../library/doctest.rst:838 +msgid "is vulnerable! One workaround is to do ::" +msgstr "" + +#: ../../library/doctest.rst:840 +msgid "" +">>> foo() == {\"spam\", \"eggs\"}\n" +"True" +msgstr "" + +#: ../../library/doctest.rst:843 +msgid "instead. Another is to do ::" +msgstr "" + +#: ../../library/doctest.rst:845 +msgid "" +">>> d = sorted(foo())\n" +">>> d\n" +"['eggs', 'spam']" +msgstr "" + +#: ../../library/doctest.rst:849 +msgid "There are others, but you get the idea." +msgstr "" + +#: ../../library/doctest.rst:851 +msgid "Another bad idea is to print things that embed an object address, like" +msgstr "" + +#: ../../library/doctest.rst:853 +msgid "" +">>> id(1.0) # certain to fail some of the time\n" +"7948648\n" +">>> class C: pass\n" +">>> C() # the default repr() for instances embeds an address\n" +"" +msgstr "" + +#: ../../library/doctest.rst:861 +msgid "" +"The :const:`ELLIPSIS` directive gives a nice approach for the last example:" +msgstr "" + +#: ../../library/doctest.rst:863 +msgid "" +">>> C() # doctest: +ELLIPSIS\n" +"" +msgstr "" + +#: ../../library/doctest.rst:869 +msgid "" +"Floating-point numbers are also subject to small output variations across " +"platforms, because Python defers to the platform C library for some floating-" +"point calculations, and C libraries vary widely in quality here. ::" +msgstr "" + +#: ../../library/doctest.rst:873 +msgid "" +">>> 1000**0.1 # risky\n" +"1.9952623149688797\n" +">>> round(1000**0.1, 9) # safer\n" +"1.995262315\n" +">>> print(f'{1000**0.1:.4f}') # much safer\n" +"1.9953" +msgstr "" + +#: ../../library/doctest.rst:880 +msgid "" +"Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " +"contrive doctest examples to produce numbers of that form::" +msgstr "" + +#: ../../library/doctest.rst:883 +msgid "" +">>> 3./4 # utterly safe\n" +"0.75" +msgstr "" + +#: ../../library/doctest.rst:886 +msgid "" +"Simple fractions are also easier for people to understand, and that makes " +"for better documentation." +msgstr "" + +#: ../../library/doctest.rst:893 +msgid "Basic API" +msgstr "" + +#: ../../library/doctest.rst:895 +msgid "" +"The functions :func:`testmod` and :func:`testfile` provide a simple " +"interface to doctest that should be sufficient for most basic uses. For a " +"less formal introduction to these two functions, see sections :ref:`doctest-" +"simple-testmod` and :ref:`doctest-simple-testfile`." +msgstr "" + +#: ../../library/doctest.rst:903 +msgid "" +"All arguments except *filename* are optional, and should be specified in " +"keyword form." +msgstr "" + +#: ../../library/doctest.rst:906 +msgid "" +"Test examples in the file named *filename*. Return ``(failure_count, " +"test_count)``." +msgstr "" + +#: ../../library/doctest.rst:909 +msgid "" +"Optional argument *module_relative* specifies how the filename should be " +"interpreted:" +msgstr "" + +#: ../../library/doctest.rst:912 +msgid "" +"If *module_relative* is ``True`` (the default), then *filename* specifies an " +"OS-independent module-relative path. By default, this path is relative to " +"the calling module's directory; but if the *package* argument is specified, " +"then it is relative to that package. To ensure OS-independence, *filename* " +"should use ``/`` characters to separate path segments, and may not be an " +"absolute path (i.e., it may not begin with ``/``)." +msgstr "" + +#: ../../library/doctest.rst:919 +msgid "" +"If *module_relative* is ``False``, then *filename* specifies an OS-specific " +"path. The path may be absolute or relative; relative paths are resolved " +"with respect to the current working directory." +msgstr "" + +#: ../../library/doctest.rst:923 +msgid "" +"Optional argument *name* gives the name of the test; by default, or if " +"``None``, ``os.path.basename(filename)`` is used." +msgstr "" + +#: ../../library/doctest.rst:926 +msgid "" +"Optional argument *package* is a Python package or the name of a Python " +"package whose directory should be used as the base directory for a module-" +"relative filename. If no package is specified, then the calling module's " +"directory is used as the base directory for module-relative filenames. It " +"is an error to specify *package* if *module_relative* is ``False``." +msgstr "" + +#: ../../library/doctest.rst:932 +msgid "" +"Optional argument *globs* gives a dict to be used as the globals when " +"executing examples. A new shallow copy of this dict is created for the " +"doctest, so its examples start with a clean slate. By default, or if " +"``None``, a new empty dict is used." +msgstr "" + +#: ../../library/doctest.rst:937 +msgid "" +"Optional argument *extraglobs* gives a dict merged into the globals used to " +"execute examples. This works like :meth:`dict.update`: if *globs* and " +"*extraglobs* have a common key, the associated value in *extraglobs* appears " +"in the combined dict. By default, or if ``None``, no extra globals are " +"used. This is an advanced feature that allows parameterization of " +"doctests. For example, a doctest can be written for a base class, using a " +"generic name for the class, then reused to test any number of subclasses by " +"passing an *extraglobs* dict mapping the generic name to the subclass to be " +"tested." +msgstr "" + +#: ../../library/doctest.rst:946 +msgid "" +"Optional argument *verbose* prints lots of stuff if true, and prints only " +"failures if false; by default, or if ``None``, it's true if and only if ``'-" +"v'`` is in :data:`sys.argv`." +msgstr "" + +#: ../../library/doctest.rst:950 +msgid "" +"Optional argument *report* prints a summary at the end when true, else " +"prints nothing at the end. In verbose mode, the summary is detailed, else " +"the summary is very brief (in fact, empty if all tests passed)." +msgstr "" + +#: ../../library/doctest.rst:954 +msgid "" +"Optional argument *optionflags* (default value ``0``) takes " +"the :ref:`bitwise OR ` of option flags. See section :ref:`doctest-" +"options`." +msgstr "" + +#: ../../library/doctest.rst:958 +msgid "" +"Optional argument *raise_on_error* defaults to false. If true, an exception " +"is raised upon the first failure or unexpected exception in an example. " +"This allows failures to be post-mortem debugged. Default behavior is to " +"continue running examples." +msgstr "" + +#: ../../library/doctest.rst:963 ../../library/doctest.rst:1106 +msgid "" +"Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " +"that should be used to extract tests from the files. It defaults to a " +"normal parser (i.e., ``DocTestParser()``)." +msgstr "" + +#: ../../library/doctest.rst:967 ../../library/doctest.rst:1110 +msgid "" +"Optional argument *encoding* specifies an encoding that should be used to " +"convert the file to unicode." +msgstr "" + +#: ../../library/doctest.rst:973 +msgid "" +"All arguments are optional, and all except for *m* should be specified in " +"keyword form." +msgstr "" + +#: ../../library/doctest.rst:976 +msgid "" +"Test examples in docstrings in functions and classes reachable from module " +"*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " +"starting with ``m.__doc__``." +msgstr "" + +#: ../../library/doctest.rst:980 +msgid "" +"Also test examples reachable from dict ``m.__test__``, if it exists. " +"``m.__test__`` maps names (strings) to functions, classes and strings; " +"function and class docstrings are searched for examples; strings are " +"searched directly, as if they were docstrings." +msgstr "" + +#: ../../library/doctest.rst:985 +msgid "" +"Only docstrings attached to objects belonging to module *m* are searched." +msgstr "" + +#: ../../library/doctest.rst:987 +msgid "Return ``(failure_count, test_count)``." +msgstr "" + +#: ../../library/doctest.rst:989 +msgid "" +"Optional argument *name* gives the name of the module; by default, or if " +"``None``, ``m.__name__`` is used." +msgstr "" + +#: ../../library/doctest.rst:992 +msgid "" +"Optional argument *exclude_empty* defaults to false. If true, objects for " +"which no doctests are found are excluded from consideration. The default is " +"a backward compatibility hack, so that code still " +"using :meth:`doctest.master.summarize ` in " +"conjunction with :func:`testmod` continues to get output for objects with no " +"tests. The *exclude_empty* argument to the newer :class:`DocTestFinder` " +"constructor defaults to true." +msgstr "" + +#: ../../library/doctest.rst:1000 +msgid "" +"Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " +"*raise_on_error*, and *globs* are the same as for function :func:`testfile` " +"above, except that *globs* defaults to ``m.__dict__``." +msgstr "" + +#: ../../library/doctest.rst:1007 +msgid "" +"Test examples associated with object *f*; for example, *f* may be a string, " +"a module, a function, or a class object." +msgstr "" + +#: ../../library/doctest.rst:1010 +msgid "" +"A shallow copy of dictionary argument *globs* is used for the execution " +"context." +msgstr "" + +#: ../../library/doctest.rst:1012 +msgid "" +"Optional argument *name* is used in failure messages, and defaults to " +"``\"NoName\"``." +msgstr "" + +#: ../../library/doctest.rst:1015 +msgid "" +"If optional argument *verbose* is true, output is generated even if there " +"are no failures. By default, output is generated only in case of an example " +"failure." +msgstr "" + +#: ../../library/doctest.rst:1018 +msgid "" +"Optional argument *compileflags* gives the set of flags that should be used " +"by the Python compiler when running the examples. By default, or if " +"``None``, flags are deduced corresponding to the set of future features " +"found in *globs*." +msgstr "" + +#: ../../library/doctest.rst:1022 +msgid "" +"Optional argument *optionflags* works as for function :func:`testfile` above." +msgstr "" + +#: ../../library/doctest.rst:1028 +msgid "Unittest API" +msgstr "" + +#: ../../library/doctest.rst:1030 +msgid "" +"As your collection of doctest'ed modules grows, you'll want a way to run all " +"their doctests systematically. :mod:`doctest` provides two functions that " +"can be used to create :mod:`unittest` test suites from modules and text " +"files containing doctests. To integrate with :mod:`unittest` test " +"discovery, include a :ref:`load_tests ` function in " +"your test module::" +msgstr "" + +#: ../../library/doctest.rst:1036 +msgid "" +"import unittest\n" +"import doctest\n" +"import my_module_with_doctests\n" +"\n" +"def load_tests(loader, tests, ignore):\n" +" tests.addTests(doctest.DocTestSuite(my_module_with_doctests))\n" +" return tests" +msgstr "" + +#: ../../library/doctest.rst:1044 +msgid "" +"There are two main functions for creating :class:`unittest.TestSuite` " +"instances from text files and modules with doctests:" +msgstr "" + +#: ../../library/doctest.rst:1050 +msgid "" +"Convert doctest tests from one or more text files to " +"a :class:`unittest.TestSuite`." +msgstr "" + +#: ../../library/doctest.rst:1053 +msgid "" +"The returned :class:`unittest.TestSuite` is to be run by the unittest " +"framework and runs the interactive examples in each file. If an example in " +"any file fails, then the synthesized unit test fails, and " +"a :exc:`~unittest.TestCase.failureException` exception is raised showing the " +"name of the file containing the test and a (sometimes approximate) line " +"number. If all the examples in a file are skipped, then the synthesized " +"unit test is also marked as skipped." +msgstr "" + +#: ../../library/doctest.rst:1060 +msgid "Pass one or more paths (as strings) to text files to be examined." +msgstr "" + +#: ../../library/doctest.rst:1062 +msgid "Options may be provided as keyword arguments:" +msgstr "" + +#: ../../library/doctest.rst:1064 +msgid "" +"Optional argument *module_relative* specifies how the filenames in *paths* " +"should be interpreted:" +msgstr "" + +#: ../../library/doctest.rst:1067 +msgid "" +"If *module_relative* is ``True`` (the default), then each filename in " +"*paths* specifies an OS-independent module-relative path. By default, this " +"path is relative to the calling module's directory; but if the *package* " +"argument is specified, then it is relative to that package. To ensure OS-" +"independence, each filename should use ``/`` characters to separate path " +"segments, and may not be an absolute path (i.e., it may not begin with ``/" +"``)." +msgstr "" + +#: ../../library/doctest.rst:1075 +msgid "" +"If *module_relative* is ``False``, then each filename in *paths* specifies " +"an OS-specific path. The path may be absolute or relative; relative paths " +"are resolved with respect to the current working directory." +msgstr "" + +#: ../../library/doctest.rst:1079 +msgid "" +"Optional argument *package* is a Python package or the name of a Python " +"package whose directory should be used as the base directory for module-" +"relative filenames in *paths*. If no package is specified, then the calling " +"module's directory is used as the base directory for module-relative " +"filenames. It is an error to specify *package* if *module_relative* is " +"``False``." +msgstr "" + +#: ../../library/doctest.rst:1086 +msgid "" +"Optional argument *setUp* specifies a set-up function for the test suite. " +"This is called before running the tests in each file. The *setUp* function " +"will be passed a :class:`DocTest` object. The *setUp* function can access " +"the test globals as the :attr:`~DocTest.globs` attribute of the test passed." +msgstr "" + +#: ../../library/doctest.rst:1091 +msgid "" +"Optional argument *tearDown* specifies a tear-down function for the test " +"suite. This is called after running the tests in each file. The *tearDown* " +"function will be passed a :class:`DocTest` object. The *tearDown* function " +"can access the test globals as the :attr:`~DocTest.globs` attribute of the " +"test passed." +msgstr "" + +#: ../../library/doctest.rst:1097 +msgid "" +"Optional argument *globs* is a dictionary containing the initial global " +"variables for the tests. A new copy of this dictionary is created for each " +"test. By default, *globs* is a new empty dictionary." +msgstr "" + +#: ../../library/doctest.rst:1101 +msgid "" +"Optional argument *optionflags* specifies the default doctest options for " +"the tests, created by or-ing together individual option flags. See " +"section :ref:`doctest-options`. See " +"function :func:`set_unittest_reportflags` below for a better way to set " +"reporting options." +msgstr "" + +#: ../../library/doctest.rst:1113 +msgid "" +"The global ``__file__`` is added to the globals provided to doctests loaded " +"from a text file using :func:`DocFileSuite`." +msgstr "" + +#: ../../library/doctest.rst:1119 +msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." +msgstr "" + +#: ../../library/doctest.rst:1121 +msgid "" +"The returned :class:`unittest.TestSuite` is to be run by the unittest " +"framework and runs each doctest in the module. Each docstring is run as a " +"separate unit test. If any of the doctests fail, then the synthesized unit " +"test fails, and a :exc:`unittest.TestCase.failureException` exception is " +"raised showing the name of the file containing the test and a (sometimes " +"approximate) line number. If all the examples in a docstring are skipped, " +"then the" +msgstr "" + +#: ../../library/doctest.rst:1129 +msgid "" +"Optional argument *module* provides the module to be tested. It can be a " +"module object or a (possibly dotted) module name. If not specified, the " +"module calling this function is used." +msgstr "" + +#: ../../library/doctest.rst:1133 +msgid "" +"Optional argument *globs* is a dictionary containing the initial global " +"variables for the tests. A new copy of this dictionary is created for each " +"test. By default, *globs* is the module's :attr:`~module.__dict__`." +msgstr "" + +#: ../../library/doctest.rst:1137 +msgid "" +"Optional argument *extraglobs* specifies an extra set of global variables, " +"which is merged into *globs*. By default, no extra globals are used." +msgstr "" + +#: ../../library/doctest.rst:1140 +msgid "" +"Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " +"drop-in replacement) that is used to extract doctests from the module." +msgstr "" + +#: ../../library/doctest.rst:1143 +msgid "" +"Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " +"for function :func:`DocFileSuite` above, but they are called for each " +"docstring." +msgstr "" + +#: ../../library/doctest.rst:1146 +msgid "This function uses the same search technique as :func:`testmod`." +msgstr "" + +#: ../../library/doctest.rst:1148 +msgid "" +":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " +"*module* contains no docstrings instead of raising :exc:`ValueError`." +msgstr "" + +#: ../../library/doctest.rst:1152 +msgid "" +"Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " +"out of :class:`!doctest.DocTestCase` instances, and :class:`!DocTestCase` is " +"a subclass of :class:`unittest.TestCase`. :class:`!DocTestCase` isn't " +"documented here (it's an internal detail), but studying its code can answer " +"questions about the exact details of :mod:`unittest` integration." +msgstr "" + +#: ../../library/doctest.rst:1158 +msgid "" +"Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " +"of :class:`!doctest.DocFileCase` instances, and :class:`!DocFileCase` is a " +"subclass of :class:`!DocTestCase`." +msgstr "" + +#: ../../library/doctest.rst:1162 +msgid "" +"So both ways of creating a :class:`unittest.TestSuite` run instances " +"of :class:`!DocTestCase`. This is important for a subtle reason: when you " +"run :mod:`doctest` functions yourself, you can control the :mod:`!doctest` " +"options in use directly, by passing option flags to :mod:`!doctest` " +"functions. However, if you're writing a :mod:`unittest` framework, :mod:`!" +"unittest` ultimately controls when and how tests get run. The framework " +"author typically wants to control :mod:`!doctest` reporting options " +"(perhaps, e.g., specified by command line options), but there's no way to " +"pass options through :mod:`!unittest` to :mod:`!doctest` test runners." +msgstr "" + +#: ../../library/doctest.rst:1172 +msgid "" +"For this reason, :mod:`doctest` also supports a notion of :mod:`!doctest` " +"reporting flags specific to :mod:`unittest` support, via this function:" +msgstr "" + +#: ../../library/doctest.rst:1178 +msgid "Set the :mod:`doctest` reporting flags to use." +msgstr "" + +#: ../../library/doctest.rst:1180 +msgid "" +"Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " +"section :ref:`doctest-options`. Only \"reporting flags\" can be used." +msgstr "" + +#: ../../library/doctest.rst:1183 +msgid "" +"This is a module-global setting, and affects all future doctests run by " +"module :mod:`unittest`: the :meth:`!runTest` method of :class:`!" +"DocTestCase` looks at the option flags specified for the test case when " +"the :class:`!DocTestCase` instance was constructed. If no reporting flags " +"were specified (which is the typical and expected case), :mod:`!" +"doctest`'s :mod:`!unittest` reporting flags are :ref:`bitwise ORed " +"` into the option flags, and the option flags so augmented are " +"passed to the :class:`DocTestRunner` instance created to run the doctest. " +"If any reporting flags were specified when the :class:`!DocTestCase` " +"instance was constructed, :mod:`!doctest`'s :mod:`!unittest` reporting flags " +"are ignored." +msgstr "" + +#: ../../library/doctest.rst:1194 +msgid "" +"The value of the :mod:`unittest` reporting flags in effect before the " +"function was called is returned by the function." +msgstr "" + +#: ../../library/doctest.rst:1201 +msgid "Advanced API" +msgstr "" + +#: ../../library/doctest.rst:1203 +msgid "" +"The basic API is a simple wrapper that's intended to make doctest easy to " +"use. It is fairly flexible, and should meet most users' needs; however, if " +"you require more fine-grained control over testing, or wish to extend " +"doctest's capabilities, then you should use the advanced API." +msgstr "" + +#: ../../library/doctest.rst:1208 +msgid "" +"The advanced API revolves around two container classes, which are used to " +"store the interactive examples extracted from doctest cases:" +msgstr "" + +#: ../../library/doctest.rst:1211 +msgid "" +":class:`Example`: A single Python :term:`statement`, paired with its " +"expected output." +msgstr "" + +#: ../../library/doctest.rst:1214 +msgid "" +":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " +"from a single docstring or text file." +msgstr "" + +#: ../../library/doctest.rst:1217 +msgid "" +"Additional processing classes are defined to find, parse, and run, and check " +"doctest examples:" +msgstr "" + +#: ../../library/doctest.rst:1220 +msgid "" +":class:`DocTestFinder`: Finds all docstrings in a given module, and uses " +"a :class:`DocTestParser` to create a :class:`DocTest` from every docstring " +"that contains interactive examples." +msgstr "" + +#: ../../library/doctest.rst:1224 +msgid "" +":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " +"(such as an object's docstring)." +msgstr "" + +#: ../../library/doctest.rst:1227 +msgid "" +":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " +"uses an :class:`OutputChecker` to verify their output." +msgstr "" + +#: ../../library/doctest.rst:1230 +msgid "" +":class:`OutputChecker`: Compares the actual output from a doctest example " +"with the expected output, and decides whether they match." +msgstr "" + +#: ../../library/doctest.rst:1233 +msgid "" +"The relationships among these processing classes are summarized in the " +"following diagram::" +msgstr "" + +#: ../../library/doctest.rst:1236 +msgid "" +" list of:\n" +"+------+ +---------+\n" +"|module| --DocTestFinder-> | DocTest | --DocTestRunner-> results\n" +"+------+ | ^ +---------+ | ^ (printed)\n" +" | | | Example | | |\n" +" v | | ... | v |\n" +" DocTestParser | Example | OutputChecker\n" +" +---------+" +msgstr "" + +#: ../../library/doctest.rst:1249 +msgid "DocTest Objects" +msgstr "" + +#: ../../library/doctest.rst:1254 +msgid "" +"A collection of doctest examples that should be run in a single namespace. " +"The constructor arguments are used to initialize the attributes of the same " +"names." +msgstr "" + +#: ../../library/doctest.rst:1258 +msgid "" +":class:`DocTest` defines the following attributes. They are initialized by " +"the constructor, and should not be modified directly." +msgstr "" + +#: ../../library/doctest.rst:1264 +msgid "" +"A list of :class:`Example` objects encoding the individual interactive " +"Python examples that should be run by this test." +msgstr "" + +#: ../../library/doctest.rst:1270 +msgid "" +"The namespace (aka globals) that the examples should be run in. This is a " +"dictionary mapping names to values. Any changes to the namespace made by " +"the examples (such as binding new variables) will be reflected " +"in :attr:`globs` after the test is run." +msgstr "" + +#: ../../library/doctest.rst:1278 +msgid "" +"A string name identifying the :class:`DocTest`. Typically, this is the name " +"of the object or file that the test was extracted from." +msgstr "" + +#: ../../library/doctest.rst:1284 +msgid "" +"The name of the file that this :class:`DocTest` was extracted from; or " +"``None`` if the filename is unknown, or if the :class:`!DocTest` was not " +"extracted from a file." +msgstr "" + +#: ../../library/doctest.rst:1291 +msgid "" +"The line number within :attr:`filename` where this :class:`DocTest` begins, " +"or ``None`` if the line number is unavailable. This line number is zero-" +"based with respect to the beginning of the file." +msgstr "" + +#: ../../library/doctest.rst:1298 +msgid "" +"The string that the test was extracted from, or ``None`` if the string is " +"unavailable, or if the test was not extracted from a string." +msgstr "" + +#: ../../library/doctest.rst:1305 +msgid "Example Objects" +msgstr "" + +#: ../../library/doctest.rst:1310 +msgid "" +"A single interactive example, consisting of a Python statement and its " +"expected output. The constructor arguments are used to initialize the " +"attributes of the same names." +msgstr "" + +#: ../../library/doctest.rst:1315 +msgid "" +":class:`Example` defines the following attributes. They are initialized by " +"the constructor, and should not be modified directly." +msgstr "" + +#: ../../library/doctest.rst:1321 +msgid "" +"A string containing the example's source code. This source code consists of " +"a single Python statement, and always ends with a newline; the constructor " +"adds a newline when necessary." +msgstr "" + +#: ../../library/doctest.rst:1328 +msgid "" +"The expected output from running the example's source code (either from " +"stdout, or a traceback in case of exception). :attr:`want` ends with a " +"newline unless no output is expected, in which case it's an empty string. " +"The constructor adds a newline when necessary." +msgstr "" + +#: ../../library/doctest.rst:1336 +msgid "" +"The exception message generated by the example, if the example is expected " +"to generate an exception; or ``None`` if it is not expected to generate an " +"exception. This exception message is compared against the return value " +"of :func:`traceback.format_exception_only`. :attr:`exc_msg` ends with a " +"newline unless it's ``None``. The constructor adds a newline if needed." +msgstr "" + +#: ../../library/doctest.rst:1345 +msgid "" +"The line number within the string containing this example where the example " +"begins. This line number is zero-based with respect to the beginning of the " +"containing string." +msgstr "" + +#: ../../library/doctest.rst:1352 +msgid "" +"The example's indentation in the containing string, i.e., the number of " +"space characters that precede the example's first prompt." +msgstr "" + +#: ../../library/doctest.rst:1358 +msgid "" +"A dictionary mapping from option flags to ``True`` or ``False``, which is " +"used to override default options for this example. Any option flags not " +"contained in this dictionary are left at their default value (as specified " +"by the :class:`DocTestRunner`'s :ref:`optionflags `). By " +"default, no options are set." +msgstr "" + +#: ../../library/doctest.rst:1368 +msgid "DocTestFinder objects" +msgstr "" + +#: ../../library/doctest.rst:1373 +msgid "" +"A processing class used to extract the :class:`DocTest`\\ s that are " +"relevant to a given object, from its docstring and the docstrings of its " +"contained objects. :class:`DocTest`\\ s can be extracted from modules, " +"classes, functions, methods, staticmethods, classmethods, and properties." +msgstr "" + +#: ../../library/doctest.rst:1378 +msgid "" +"The optional argument *verbose* can be used to display the objects searched " +"by the finder. It defaults to ``False`` (no output)." +msgstr "" + +#: ../../library/doctest.rst:1381 +msgid "" +"The optional argument *parser* specifies the :class:`DocTestParser` object " +"(or a drop-in replacement) that is used to extract doctests from docstrings." +msgstr "" + +#: ../../library/doctest.rst:1384 +msgid "" +"If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " +"will only examine the given object, and not any contained objects." +msgstr "" + +#: ../../library/doctest.rst:1387 +msgid "" +"If the optional argument *exclude_empty* is false, " +"then :meth:`DocTestFinder.find` will include tests for objects with empty " +"docstrings." +msgstr "" + +#: ../../library/doctest.rst:1391 +msgid ":class:`DocTestFinder` defines the following method:" +msgstr "" + +#: ../../library/doctest.rst:1396 +msgid "" +"Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " +"docstring, or by any of its contained objects' docstrings." +msgstr "" + +#: ../../library/doctest.rst:1399 +msgid "" +"The optional argument *name* specifies the object's name; this name will be " +"used to construct names for the returned :class:`DocTest`\\ s. If *name* is " +"not specified, then ``obj.__name__`` is used." +msgstr "" + +#: ../../library/doctest.rst:1403 +msgid "" +"The optional parameter *module* is the module that contains the given " +"object. If the module is not specified or is ``None``, then the test finder " +"will attempt to automatically determine the correct module. The object's " +"module is used:" +msgstr "" + +#: ../../library/doctest.rst:1407 +msgid "As a default namespace, if *globs* is not specified." +msgstr "" + +#: ../../library/doctest.rst:1409 +msgid "" +"To prevent the DocTestFinder from extracting DocTests from objects that are " +"imported from other modules. (Contained objects with modules other than " +"*module* are ignored.)" +msgstr "" + +#: ../../library/doctest.rst:1413 +msgid "To find the name of the file containing the object." +msgstr "" + +#: ../../library/doctest.rst:1415 +msgid "To help find the line number of the object within its file." +msgstr "" + +#: ../../library/doctest.rst:1417 +msgid "" +"If *module* is ``False``, no attempt to find the module will be made. This " +"is obscure, of use mostly in testing doctest itself: if *module* is " +"``False``, or is ``None`` but cannot be found automatically, then all " +"objects are considered to belong to the (non-existent) module, so all " +"contained objects will (recursively) be searched for doctests." +msgstr "" + +#: ../../library/doctest.rst:1423 +msgid "" +"The globals for each :class:`DocTest` is formed by combining *globs* and " +"*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " +"shallow copy of the globals dictionary is created for each :class:`!" +"DocTest`. If *globs* is not specified, then it defaults to the " +"module's :attr:`~module.__dict__`, if specified, or ``{}`` otherwise. If " +"*extraglobs* is not specified, then it defaults to ``{}``." +msgstr "" + +#: ../../library/doctest.rst:1434 +msgid "DocTestParser objects" +msgstr "" + +#: ../../library/doctest.rst:1439 +msgid "" +"A processing class used to extract interactive examples from a string, and " +"use them to create a :class:`DocTest` object." +msgstr "" + +#: ../../library/doctest.rst:1443 +msgid ":class:`DocTestParser` defines the following methods:" +msgstr "" + +#: ../../library/doctest.rst:1448 +msgid "" +"Extract all doctest examples from the given string, and collect them into " +"a :class:`DocTest` object." +msgstr "" + +#: ../../library/doctest.rst:1451 +msgid "" +"*globs*, *name*, *filename*, and *lineno* are attributes for the " +"new :class:`!DocTest` object. See the documentation for :class:`DocTest` " +"for more information." +msgstr "" + +#: ../../library/doctest.rst:1458 +msgid "" +"Extract all doctest examples from the given string, and return them as a " +"list of :class:`Example` objects. Line numbers are 0-based. The optional " +"argument *name* is a name identifying this string, and is only used for " +"error messages." +msgstr "" + +#: ../../library/doctest.rst:1465 +msgid "" +"Divide the given string into examples and intervening text, and return them " +"as a list of alternating :class:`Example`\\ s and strings. Line numbers for " +"the :class:`!Example`\\ s are 0-based. The optional argument *name* is a " +"name identifying this string, and is only used for error messages." +msgstr "" + +#: ../../library/doctest.rst:1472 +msgid "TestResults objects" +msgstr "" + +#: ../../library/doctest.rst:1479 +msgid "Number of failed tests." +msgstr "" + +#: ../../library/doctest.rst:1483 +msgid "Number of attempted tests." +msgstr "" + +#: ../../library/doctest.rst:1487 +msgid "Number of skipped tests." +msgstr "" + +#: ../../library/doctest.rst:1495 +msgid "DocTestRunner objects" +msgstr "" + +#: ../../library/doctest.rst:1500 +msgid "" +"A processing class used to execute and verify the interactive examples in " +"a :class:`DocTest`." +msgstr "" + +#: ../../library/doctest.rst:1503 +msgid "" +"The comparison between expected outputs and actual outputs is done by " +"an :class:`OutputChecker`. This comparison may be customized with a number " +"of option flags; see section :ref:`doctest-options` for more information. " +"If the option flags are insufficient, then the comparison may also be " +"customized by passing a subclass of :class:`!OutputChecker` to the " +"constructor." +msgstr "" + +#: ../../library/doctest.rst:1509 +msgid "" +"The test runner's display output can be controlled in two ways. First, an " +"output function can be passed to :meth:`run`; this function will be called " +"with strings that should be displayed. It defaults to " +"``sys.stdout.write``. If capturing the output is not sufficient, then the " +"display output can be also customized by subclassing DocTestRunner, and " +"overriding the " +"methods :meth:`report_start`, :meth:`report_success`, :meth:`report_unexpected_exception`, " +"and :meth:`report_failure`." +msgstr "" + +#: ../../library/doctest.rst:1517 +msgid "" +"The optional keyword argument *checker* specifies the :class:`OutputChecker` " +"object (or drop-in replacement) that should be used to compare the expected " +"outputs to the actual outputs of doctest examples." +msgstr "" + +#: ../../library/doctest.rst:1521 +msgid "" +"The optional keyword argument *verbose* controls " +"the :class:`DocTestRunner`'s verbosity. If *verbose* is ``True``, then " +"information is printed about each example, as it is run. If *verbose* is " +"``False``, then only failures are printed. If *verbose* is unspecified, or " +"``None``, then verbose output is used iff the command-line switch ``-v`` is " +"used." +msgstr "" + +#: ../../library/doctest.rst:1527 +msgid "" +"The optional keyword argument *optionflags* can be used to control how the " +"test runner compares expected output to actual output, and how it displays " +"failures. For more information, see section :ref:`doctest-options`." +msgstr "" + +#: ../../library/doctest.rst:1531 +msgid "" +"The test runner accumulates statistics. The aggregated number of attempted, " +"failed and skipped examples is also available via " +"the :attr:`tries`, :attr:`failures` and :attr:`skips` attributes. " +"The :meth:`run` and :meth:`summarize` methods return a :class:`TestResults` " +"instance." +msgstr "" + +#: ../../library/doctest.rst:1536 +msgid ":class:`DocTestRunner` defines the following methods:" +msgstr "" + +#: ../../library/doctest.rst:1541 +msgid "" +"Report that the test runner is about to process the given example. This " +"method is provided to allow subclasses of :class:`DocTestRunner` to " +"customize their output; it should not be called directly." +msgstr "" + +#: ../../library/doctest.rst:1545 +msgid "" +"*example* is the example about to be processed. *test* is the test " +"containing *example*. *out* is the output function that was passed " +"to :meth:`DocTestRunner.run`." +msgstr "" + +#: ../../library/doctest.rst:1552 +msgid "" +"Report that the given example ran successfully. This method is provided to " +"allow subclasses of :class:`DocTestRunner` to customize their output; it " +"should not be called directly." +msgstr "" + +#: ../../library/doctest.rst:1556 ../../library/doctest.rst:1567 +msgid "" +"*example* is the example about to be processed. *got* is the actual output " +"from the example. *test* is the test containing *example*. *out* is the " +"output function that was passed to :meth:`DocTestRunner.run`." +msgstr "" + +#: ../../library/doctest.rst:1563 +msgid "" +"Report that the given example failed. This method is provided to allow " +"subclasses of :class:`DocTestRunner` to customize their output; it should " +"not be called directly." +msgstr "" + +#: ../../library/doctest.rst:1574 +msgid "" +"Report that the given example raised an unexpected exception. This method is " +"provided to allow subclasses of :class:`DocTestRunner` to customize their " +"output; it should not be called directly." +msgstr "" + +#: ../../library/doctest.rst:1578 +msgid "" +"*example* is the example about to be processed. *exc_info* is a tuple " +"containing information about the unexpected exception (as returned " +"by :func:`sys.exc_info`). *test* is the test containing *example*. *out* is " +"the output function that was passed to :meth:`DocTestRunner.run`." +msgstr "" + +#: ../../library/doctest.rst:1586 +msgid "" +"Run the examples in *test* (a :class:`DocTest` object), and display the " +"results using the writer function *out*. Return a :class:`TestResults` " +"instance." +msgstr "" + +#: ../../library/doctest.rst:1590 +msgid "" +"The examples are run in the namespace ``test.globs``. If *clear_globs* is " +"true (the default), then this namespace will be cleared after the test runs, " +"to help with garbage collection. If you would like to examine the namespace " +"after the test completes, then use *clear_globs=False*." +msgstr "" + +#: ../../library/doctest.rst:1595 +msgid "" +"*compileflags* gives the set of flags that should be used by the Python " +"compiler when running the examples. If not specified, then it will default " +"to the set of future-import flags that apply to *globs*." +msgstr "" + +#: ../../library/doctest.rst:1599 +msgid "" +"The output of each example is checked using the :class:`DocTestRunner`'s " +"output checker, and the results are formatted by the :meth:`!" +"DocTestRunner.report_\\*` methods." +msgstr "" + +#: ../../library/doctest.rst:1606 +msgid "" +"Print a summary of all the test cases that have been run by this " +"DocTestRunner, and return a :class:`TestResults` instance." +msgstr "" + +#: ../../library/doctest.rst:1609 +msgid "" +"The optional *verbose* argument controls how detailed the summary is. If " +"the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " +"is used." +msgstr "" + +#: ../../library/doctest.rst:1613 +msgid ":class:`DocTestParser` has the following attributes:" +msgstr "" + +#: ../../library/doctest.rst:1617 +msgid "Number of attempted examples." +msgstr "" + +#: ../../library/doctest.rst:1621 +msgid "Number of failed examples." +msgstr "" + +#: ../../library/doctest.rst:1625 +msgid "Number of skipped examples." +msgstr "" + +#: ../../library/doctest.rst:1633 +msgid "OutputChecker objects" +msgstr "" + +#: ../../library/doctest.rst:1638 +msgid "" +"A class used to check the whether the actual output from a doctest example " +"matches the expected output. :class:`OutputChecker` defines two " +"methods: :meth:`check_output`, which compares a given pair of outputs, and " +"returns ``True`` if they match; and :meth:`output_difference`, which returns " +"a string describing the differences between two outputs." +msgstr "" + +#: ../../library/doctest.rst:1645 +msgid ":class:`OutputChecker` defines the following methods:" +msgstr "" + +#: ../../library/doctest.rst:1649 +msgid "" +"Return ``True`` iff the actual output from an example (*got*) matches the " +"expected output (*want*). These strings are always considered to match if " +"they are identical; but depending on what option flags the test runner is " +"using, several non-exact match types are also possible. See " +"section :ref:`doctest-options` for more information about option flags." +msgstr "" + +#: ../../library/doctest.rst:1658 +msgid "" +"Return a string describing the differences between the expected output for a " +"given example (*example*) and the actual output (*got*). *optionflags* is " +"the set of option flags used to compare *want* and *got*." +msgstr "" + +#: ../../library/doctest.rst:1666 +msgid "Debugging" +msgstr "" + +#: ../../library/doctest.rst:1668 +msgid "Doctest provides several mechanisms for debugging doctest examples:" +msgstr "" + +#: ../../library/doctest.rst:1670 +msgid "" +"Several functions convert doctests to executable Python programs, which can " +"be run under the Python debugger, :mod:`pdb`." +msgstr "" + +#: ../../library/doctest.rst:1673 +msgid "" +"The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " +"raises an exception for the first failing example, containing information " +"about that example. This information can be used to perform post-mortem " +"debugging on the example." +msgstr "" + +#: ../../library/doctest.rst:1678 +msgid "" +"The :mod:`unittest` cases generated by :func:`DocTestSuite` support " +"the :meth:`debug` method defined by :class:`unittest.TestCase`." +msgstr "" + +#: ../../library/doctest.rst:1681 +msgid "" +"You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " +"drop into the Python debugger when that line is executed. Then you can " +"inspect current values of variables, and so on. For example, " +"suppose :file:`a.py` contains just this module docstring::" +msgstr "" + +#: ../../library/doctest.rst:1686 +msgid "" +"\"\"\"\n" +">>> def f(x):\n" +"... g(x*2)\n" +">>> def g(x):\n" +"... print(x+3)\n" +"... import pdb; pdb.set_trace()\n" +">>> f(3)\n" +"9\n" +"\"\"\"" +msgstr "" + +#: ../../library/doctest.rst:1696 +msgid "Then an interactive Python session may look like this::" +msgstr "" + +#: ../../library/doctest.rst:1698 +msgid "" +">>> import a, doctest\n" +">>> doctest.testmod(a)\n" +"--Return--\n" +"> (3)g()->None\n" +"-> import pdb; pdb.set_trace()\n" +"(Pdb) list\n" +" 1 def g(x):\n" +" 2 print(x+3)\n" +" 3 -> import pdb; pdb.set_trace()\n" +"[EOF]\n" +"(Pdb) p x\n" +"6\n" +"(Pdb) step\n" +"--Return--\n" +"> (2)f()->None\n" +"-> g(x*2)\n" +"(Pdb) list\n" +" 1 def f(x):\n" +" 2 -> g(x*2)\n" +"[EOF]\n" +"(Pdb) p x\n" +"3\n" +"(Pdb) step\n" +"--Return--\n" +"> (1)?()->None\n" +"-> f(3)\n" +"(Pdb) cont\n" +"(0, 3)\n" +">>>" +msgstr "" + +#: ../../library/doctest.rst:1729 +msgid "" +"Functions that convert doctests to Python code, and possibly run the " +"synthesized code under the debugger:" +msgstr "" + +#: ../../library/doctest.rst:1735 +msgid "Convert text with examples to a script." +msgstr "" + +#: ../../library/doctest.rst:1737 +msgid "" +"Argument *s* is a string containing doctest examples. The string is " +"converted to a Python script, where doctest examples in *s* are converted to " +"regular code, and everything else is converted to Python comments. The " +"generated script is returned as a string. For example, ::" +msgstr "" + +#: ../../library/doctest.rst:1742 +msgid "" +"import doctest\n" +"print(doctest.script_from_examples(r\"\"\"\n" +" Set x and y to 1 and 2.\n" +" >>> x, y = 1, 2\n" +"\n" +" Print their sum:\n" +" >>> print(x+y)\n" +" 3\n" +"\"\"\"))" +msgstr "" + +#: ../../library/doctest.rst:1752 +msgid "displays::" +msgstr "" + +#: ../../library/doctest.rst:1754 +msgid "" +"# Set x and y to 1 and 2.\n" +"x, y = 1, 2\n" +"#\n" +"# Print their sum:\n" +"print(x+y)\n" +"# Expected:\n" +"## 3" +msgstr "" + +#: ../../library/doctest.rst:1762 +msgid "" +"This function is used internally by other functions (see below), but can " +"also be useful when you want to transform an interactive Python session into " +"a Python script." +msgstr "" + +#: ../../library/doctest.rst:1769 +msgid "Convert the doctest for an object to a script." +msgstr "" + +#: ../../library/doctest.rst:1771 +msgid "" +"Argument *module* is a module object, or dotted name of a module, containing " +"the object whose doctests are of interest. Argument *name* is the name " +"(within the module) of the object with the doctests of interest. The result " +"is a string, containing the object's docstring converted to a Python script, " +"as described for :func:`script_from_examples` above. For example, if " +"module :file:`a.py` contains a top-level function :func:`!f`, then ::" +msgstr "" + +#: ../../library/doctest.rst:1778 +msgid "" +"import a, doctest\n" +"print(doctest.testsource(a, \"a.f\"))" +msgstr "" + +#: ../../library/doctest.rst:1781 +msgid "" +"prints a script version of function :func:`!f`'s docstring, with doctests " +"converted to code, and the rest placed in comments." +msgstr "" + +#: ../../library/doctest.rst:1787 +msgid "Debug the doctests for an object." +msgstr "" + +#: ../../library/doctest.rst:1789 +msgid "" +"The *module* and *name* arguments are the same as for " +"function :func:`testsource` above. The synthesized Python script for the " +"named object's docstring is written to a temporary file, and then that file " +"is run under the control of the Python debugger, :mod:`pdb`." +msgstr "" + +#: ../../library/doctest.rst:1794 +msgid "" +"A shallow copy of ``module.__dict__`` is used for both local and global " +"execution context." +msgstr "" + +#: ../../library/doctest.rst:1797 +msgid "" +"Optional argument *pm* controls whether post-mortem debugging is used. If " +"*pm* has a true value, the script file is run directly, and the debugger " +"gets involved only if the script terminates via raising an unhandled " +"exception. If it does, then post-mortem debugging is invoked, " +"via :func:`pdb.post_mortem`, passing the traceback object from the unhandled " +"exception. If *pm* is not specified, or is false, the script is run under " +"the debugger from the start, via passing an appropriate :func:`exec` call " +"to :func:`pdb.run`." +msgstr "" + +#: ../../library/doctest.rst:1808 +msgid "Debug the doctests in a string." +msgstr "" + +#: ../../library/doctest.rst:1810 +msgid "" +"This is like function :func:`debug` above, except that a string containing " +"doctest examples is specified directly, via the *src* argument." +msgstr "" + +#: ../../library/doctest.rst:1813 +msgid "" +"Optional argument *pm* has the same meaning as in function :func:`debug` " +"above." +msgstr "" + +#: ../../library/doctest.rst:1815 +msgid "" +"Optional argument *globs* gives a dictionary to use as both local and global " +"execution context. If not specified, or ``None``, an empty dictionary is " +"used. If specified, a shallow copy of the dictionary is used." +msgstr "" + +#: ../../library/doctest.rst:1820 +msgid "" +"The :class:`DebugRunner` class, and the special exceptions it may raise, are " +"of most interest to testing framework authors, and will only be sketched " +"here. See the source code, and especially :class:`DebugRunner`'s docstring " +"(which is a doctest!) for more details:" +msgstr "" + +#: ../../library/doctest.rst:1828 +msgid "" +"A subclass of :class:`DocTestRunner` that raises an exception as soon as a " +"failure is encountered. If an unexpected exception occurs, " +"an :exc:`UnexpectedException` exception is raised, containing the test, the " +"example, and the original exception. If the output doesn't match, then " +"a :exc:`DocTestFailure` exception is raised, containing the test, the " +"example, and the actual output." +msgstr "" + +#: ../../library/doctest.rst:1835 +msgid "" +"For information about the constructor parameters and methods, see the " +"documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" +"api`." +msgstr "" + +#: ../../library/doctest.rst:1838 +msgid "" +"There are two exceptions that may be raised by :class:`DebugRunner` " +"instances:" +msgstr "" + +#: ../../library/doctest.rst:1843 +msgid "" +"An exception raised by :class:`DocTestRunner` to signal that a doctest " +"example's actual output did not match its expected output. The constructor " +"arguments are used to initialize the attributes of the same names." +msgstr "" + +#: ../../library/doctest.rst:1847 +msgid ":exc:`DocTestFailure` defines the following attributes:" +msgstr "" + +#: ../../library/doctest.rst:1852 ../../library/doctest.rst:1876 +msgid "The :class:`DocTest` object that was being run when the example failed." +msgstr "" + +#: ../../library/doctest.rst:1857 ../../library/doctest.rst:1881 +msgid "The :class:`Example` that failed." +msgstr "" + +#: ../../library/doctest.rst:1862 +msgid "The example's actual output." +msgstr "" + +#: ../../library/doctest.rst:1867 +msgid "" +"An exception raised by :class:`DocTestRunner` to signal that a doctest " +"example raised an unexpected exception. The constructor arguments are used " +"to initialize the attributes of the same names." +msgstr "" + +#: ../../library/doctest.rst:1871 +msgid ":exc:`UnexpectedException` defines the following attributes:" +msgstr "" + +#: ../../library/doctest.rst:1886 +msgid "" +"A tuple containing information about the unexpected exception, as returned " +"by :func:`sys.exc_info`." +msgstr "" + +#: ../../library/doctest.rst:1893 +msgid "Soapbox" +msgstr "" + +#: ../../library/doctest.rst:1895 +msgid "" +"As mentioned in the introduction, :mod:`doctest` has grown to have three " +"primary uses:" +msgstr "" + +#: ../../library/doctest.rst:1898 +msgid "Checking examples in docstrings." +msgstr "" + +#: ../../library/doctest.rst:1900 +msgid "Regression testing." +msgstr "" + +#: ../../library/doctest.rst:1902 +msgid "Executable documentation / literate testing." +msgstr "" + +#: ../../library/doctest.rst:1904 +msgid "" +"These uses have different requirements, and it is important to distinguish " +"them. In particular, filling your docstrings with obscure test cases makes " +"for bad documentation." +msgstr "" + +#: ../../library/doctest.rst:1908 +msgid "" +"When writing a docstring, choose docstring examples with care. There's an " +"art to this that needs to be learned---it may not be natural at first. " +"Examples should add genuine value to the documentation. A good example can " +"often be worth many words. If done with care, the examples will be " +"invaluable for your users, and will pay back the time it takes to collect " +"them many times over as the years go by and things change. I'm still amazed " +"at how often one of my :mod:`doctest` examples stops working after a " +"\"harmless\" change." +msgstr "" + +#: ../../library/doctest.rst:1916 +msgid "" +"Doctest also makes an excellent tool for regression testing, especially if " +"you don't skimp on explanatory text. By interleaving prose and examples, it " +"becomes much easier to keep track of what's actually being tested, and why. " +"When a test fails, good prose can make it much easier to figure out what the " +"problem is, and how it should be fixed. It's true that you could write " +"extensive comments in code-based testing, but few programmers do. Many have " +"found that using doctest approaches instead leads to much clearer tests. " +"Perhaps this is simply because doctest makes writing prose a little easier " +"than writing code, while writing comments in code is a little harder. I " +"think it goes deeper than just that: the natural attitude when writing a " +"doctest-based test is that you want to explain the fine points of your " +"software, and illustrate them with examples. This in turn naturally leads to " +"test files that start with the simplest features, and logically progress to " +"complications and edge cases. A coherent narrative is the result, instead " +"of a collection of isolated functions that test isolated bits of " +"functionality seemingly at random. It's a different attitude, and produces " +"different results, blurring the distinction between testing and explaining." +msgstr "" + +#: ../../library/doctest.rst:1934 +msgid "" +"Regression testing is best confined to dedicated objects or files. There " +"are several options for organizing tests:" +msgstr "" + +#: ../../library/doctest.rst:1937 +msgid "" +"Write text files containing test cases as interactive examples, and test the " +"files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " +"although is easiest to do for new projects, designed from the start to use " +"doctest." +msgstr "" + +#: ../../library/doctest.rst:1942 +msgid "" +"Define functions named ``_regrtest_topic`` that consist of single " +"docstrings, containing test cases for the named topics. These functions can " +"be included in the same file as the module, or separated out into a separate " +"test file." +msgstr "" + +#: ../../library/doctest.rst:1946 +msgid "" +"Define a :attr:`~module.__test__` dictionary mapping from regression test " +"topics to docstrings containing test cases." +msgstr "" + +#: ../../library/doctest.rst:1949 +msgid "" +"When you have placed your tests in a module, the module can itself be the " +"test runner. When a test fails, you can arrange for your test runner to re-" +"run only the failing doctest while you debug the problem. Here is a minimal " +"example of such a test runner::" +msgstr "" + +#: ../../library/doctest.rst:1954 +msgid "" +"if __name__ == '__main__':\n" +" import doctest\n" +" flags = doctest.REPORT_NDIFF|doctest.FAIL_FAST\n" +" if len(sys.argv) > 1:\n" +" name = sys.argv[1]\n" +" if name in globals():\n" +" obj = globals()[name]\n" +" else:\n" +" obj = __test__[name]\n" +" doctest.run_docstring_examples(obj, globals(), name=name,\n" +" optionflags=flags)\n" +" else:\n" +" fail, total = doctest.testmod(optionflags=flags)\n" +" print(f\"{fail} failures out of {total} tests\")" +msgstr "" + +#: ../../library/doctest.rst:1971 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/doctest.rst:1972 +msgid "" +"Examples containing both expected output and an exception are not supported. " +"Trying to guess where one ends and the other begins is too error-prone, and " +"that also makes for a confusing test." +msgstr "" + +#: ../../library/doctest.rst:380 +msgid ">>>" +msgstr "" + +#: ../../library/doctest.rst:380 +msgid "interpreter prompt" +msgstr "" + +#: ../../library/doctest.rst:380 ../../library/doctest.rst:615 +msgid "..." +msgstr "" + +#: ../../library/doctest.rst:546 +msgid "^ (caret)" +msgstr "" + +#: ../../library/doctest.rst:546 +msgid "marker" +msgstr "" + +#: ../../library/doctest.rst:595 +msgid "" +msgstr "" + +#: ../../library/doctest.rst:615 ../../library/doctest.rst:740 +msgid "in doctests" +msgstr "" + +#: ../../library/doctest.rst:740 +msgid "# (hash)" +msgstr "" + +#: ../../library/doctest.rst:740 +msgid "+ (plus)" +msgstr "" + +#: ../../library/doctest.rst:740 +msgid "- (minus)" +msgstr "" diff --git a/library/email.charset.po b/library/email.charset.po new file mode 100644 index 0000000..b07e8ae --- /dev/null +++ b/library/email.charset.po @@ -0,0 +1,295 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.charset.rst:2 +msgid ":mod:`!email.charset`: Representing character sets" +msgstr "" + +#: ../../library/email.charset.rst:7 +msgid "**Source code:** :source:`Lib/email/charset.py`" +msgstr "" + +#: ../../library/email.charset.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the new API " +"only the aliases table is used." +msgstr "" + +#: ../../library/email.charset.rst:14 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" + +#: ../../library/email.charset.rst:16 +msgid "" +"This module provides a class :class:`Charset` for representing character " +"sets and character set conversions in email messages, as well as a character " +"set registry and several convenience methods for manipulating this registry. " +"Instances of :class:`Charset` are used in several other modules within " +"the :mod:`email` package." +msgstr "" + +#: ../../library/email.charset.rst:22 +msgid "Import this class from the :mod:`email.charset` module." +msgstr "" + +#: ../../library/email.charset.rst:27 +msgid "Map character sets to their email properties." +msgstr "" + +#: ../../library/email.charset.rst:29 +msgid "" +"This class provides information about the requirements imposed on email for " +"a specific character set. It also provides convenience routines for " +"converting between character sets, given the availability of the applicable " +"codecs. Given a character set, it will do its best to provide information " +"on how to use that character set in an email message in an RFC-compliant way." +msgstr "" + +#: ../../library/email.charset.rst:35 +msgid "" +"Certain character sets must be encoded with quoted-printable or base64 when " +"used in email headers or bodies. Certain character sets must be converted " +"outright, and are not allowed in email." +msgstr "" + +#: ../../library/email.charset.rst:39 +msgid "" +"Optional *input_charset* is as described below; it is always coerced to " +"lower case. After being alias normalized it is also used as a lookup into " +"the registry of character sets to find out the header encoding, body " +"encoding, and output conversion codec to be used for the character set. For " +"example, if *input_charset* is ``iso-8859-1``, then headers and bodies will " +"be encoded using quoted-printable and no output conversion codec is " +"necessary. If *input_charset* is ``euc-jp``, then headers will be encoded " +"with base64, bodies will not be encoded, but output text will be converted " +"from the ``euc-jp`` character set to the ``iso-2022-jp`` character set." +msgstr "" + +#: ../../library/email.charset.rst:49 +msgid ":class:`Charset` instances have the following data attributes:" +msgstr "" + +#: ../../library/email.charset.rst:53 +msgid "" +"The initial character set specified. Common aliases are converted to their " +"*official* email names (e.g. ``latin_1`` is converted to ``iso-8859-1``). " +"Defaults to 7-bit ``us-ascii``." +msgstr "" + +#: ../../library/email.charset.rst:60 +msgid "" +"If the character set must be encoded before it can be used in an email " +"header, this attribute will be set to ``charset.QP`` (for quoted-printable), " +"``charset.BASE64`` (for base64 encoding), or ``charset.SHORTEST`` for the " +"shortest of QP or BASE64 encoding. Otherwise, it will be ``None``." +msgstr "" + +#: ../../library/email.charset.rst:69 +msgid "" +"Same as *header_encoding*, but describes the encoding for the mail message's " +"body, which indeed may be different than the header encoding. " +"``charset.SHORTEST`` is not allowed for *body_encoding*." +msgstr "" + +#: ../../library/email.charset.rst:76 +msgid "" +"Some character sets must be converted before they can be used in email " +"headers or bodies. If the *input_charset* is one of them, this attribute " +"will contain the name of the character set output will be converted to. " +"Otherwise, it will be ``None``." +msgstr "" + +#: ../../library/email.charset.rst:84 +msgid "" +"The name of the Python codec used to convert the *input_charset* to " +"Unicode. If no conversion codec is necessary, this attribute will be " +"``None``." +msgstr "" + +#: ../../library/email.charset.rst:91 +msgid "" +"The name of the Python codec used to convert Unicode to the " +"*output_charset*. If no conversion codec is necessary, this attribute will " +"have the same value as the *input_codec*." +msgstr "" + +#: ../../library/email.charset.rst:96 +msgid ":class:`Charset` instances also have the following methods:" +msgstr "" + +#: ../../library/email.charset.rst:100 +msgid "Return the content transfer encoding used for body encoding." +msgstr "" + +#: ../../library/email.charset.rst:102 +msgid "" +"This is either the string ``quoted-printable`` or ``base64`` depending on " +"the encoding used, or it is a function, in which case you should call the " +"function with a single argument, the Message object being encoded. The " +"function should then set the :mailheader:`Content-Transfer-Encoding` header " +"itself to whatever is appropriate." +msgstr "" + +#: ../../library/email.charset.rst:108 +msgid "" +"Returns the string ``quoted-printable`` if *body_encoding* is ``QP``, " +"returns the string ``base64`` if *body_encoding* is ``BASE64``, and returns " +"the string ``7bit`` otherwise." +msgstr "" + +#: ../../library/email.charset.rst:115 +msgid "Return the output character set." +msgstr "" + +#: ../../library/email.charset.rst:117 +msgid "" +"This is the *output_charset* attribute if that is not ``None``, otherwise it " +"is *input_charset*." +msgstr "" + +#: ../../library/email.charset.rst:123 +msgid "Header-encode the string *string*." +msgstr "" + +#: ../../library/email.charset.rst:125 +msgid "" +"The type of encoding (base64 or quoted-printable) will be based on the " +"*header_encoding* attribute." +msgstr "" + +#: ../../library/email.charset.rst:131 +msgid "Header-encode a *string* by converting it first to bytes." +msgstr "" + +#: ../../library/email.charset.rst:133 +msgid "" +"This is similar to :meth:`header_encode` except that the string is fit into " +"maximum line lengths as given by the argument *maxlengths*, which must be an " +"iterator: each element returned from this iterator will provide the next " +"maximum line length." +msgstr "" + +#: ../../library/email.charset.rst:141 +msgid "Body-encode the string *string*." +msgstr "" + +#: ../../library/email.charset.rst:143 +msgid "" +"The type of encoding (base64 or quoted-printable) will be based on the " +"*body_encoding* attribute." +msgstr "" + +#: ../../library/email.charset.rst:146 +msgid "" +"The :class:`Charset` class also provides a number of methods to support " +"standard operations and built-in functions." +msgstr "" + +#: ../../library/email.charset.rst:152 +msgid "" +"Returns *input_charset* as a string coerced to lower case. :meth:`!__repr__` " +"is an alias for :meth:`!__str__`." +msgstr "" + +#: ../../library/email.charset.rst:158 +msgid "" +"This method allows you to compare two :class:`Charset` instances for " +"equality." +msgstr "" + +#: ../../library/email.charset.rst:164 +msgid "" +"This method allows you to compare two :class:`Charset` instances for " +"inequality." +msgstr "" + +#: ../../library/email.charset.rst:167 +msgid "" +"The :mod:`email.charset` module also provides the following functions for " +"adding new entries to the global character set, alias, and codec registries:" +msgstr "" + +#: ../../library/email.charset.rst:173 +msgid "Add character properties to the global registry." +msgstr "" + +#: ../../library/email.charset.rst:175 +msgid "" +"*charset* is the input character set, and must be the canonical name of a " +"character set." +msgstr "" + +#: ../../library/email.charset.rst:178 +msgid "" +"Optional *header_enc* and *body_enc* is either ``charset.QP`` for quoted-" +"printable, ``charset.BASE64`` for base64 encoding, ``charset.SHORTEST`` for " +"the shortest of quoted-printable or base64 encoding, or ``None`` for no " +"encoding. ``SHORTEST`` is only valid for *header_enc*. The default is " +"``None`` for no encoding." +msgstr "" + +#: ../../library/email.charset.rst:184 +msgid "" +"Optional *output_charset* is the character set that the output should be in. " +"Conversions will proceed from input charset, to Unicode, to the output " +"charset when the method :meth:`Charset.convert` is called. The default is " +"to output in the same character set as the input." +msgstr "" + +#: ../../library/email.charset.rst:189 +msgid "" +"Both *input_charset* and *output_charset* must have Unicode codec entries in " +"the module's character set-to-codec mapping; use :func:`add_codec` to add " +"codecs the module does not know about. See the :mod:`codecs` module's " +"documentation for more information." +msgstr "" + +#: ../../library/email.charset.rst:194 +msgid "" +"The global character set registry is kept in the module global dictionary " +"``CHARSETS``." +msgstr "" + +#: ../../library/email.charset.rst:200 +msgid "" +"Add a character set alias. *alias* is the alias name, e.g. ``latin-1``. " +"*canonical* is the character set's canonical name, e.g. ``iso-8859-1``." +msgstr "" + +#: ../../library/email.charset.rst:203 +msgid "" +"The global charset alias registry is kept in the module global dictionary " +"``ALIASES``." +msgstr "" + +#: ../../library/email.charset.rst:209 +msgid "" +"Add a codec that map characters in the given character set to and from " +"Unicode." +msgstr "" + +#: ../../library/email.charset.rst:211 +msgid "" +"*charset* is the canonical name of a character set. *codecname* is the name " +"of a Python codec, as appropriate for the second argument to " +"the :class:`str`'s :meth:`~str.encode` method." +msgstr "" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po new file mode 100644 index 0000000..48febe1 --- /dev/null +++ b/library/email.compat32-message.po @@ -0,0 +1,930 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.compat32-message.rst:4 +msgid "" +":mod:`email.message.Message`: Representing an email message using " +"the :data:`~email.policy.compat32` API" +msgstr "" + +#: ../../library/email.compat32-message.rst:13 +msgid "" +"The :class:`Message` class is very similar to " +"the :class:`~email.message.EmailMessage` class, without the methods added by " +"that class, and with the default behavior of certain other methods being " +"slightly different. We also document here some methods that, while " +"supported by the :class:`~email.message.EmailMessage` class, are not " +"recommended unless you are dealing with legacy code." +msgstr "" + +#: ../../library/email.compat32-message.rst:20 +msgid "The philosophy and structure of the two classes is otherwise the same." +msgstr "" + +#: ../../library/email.compat32-message.rst:22 +msgid "" +"This document describes the behavior under the default " +"(for :class:`Message`) policy :attr:`~email.policy.Compat32`. If you are " +"going to use another policy, you should be using " +"the :class:`~email.message.EmailMessage` class instead." +msgstr "" + +#: ../../library/email.compat32-message.rst:26 +msgid "" +"An email message consists of *headers* and a *payload*. Headers must " +"be :rfc:`5322` style names and values, where the field name and value are " +"separated by a colon. The colon is not part of either the field name or the " +"field value. The payload may be a simple text message, or a binary object, " +"or a structured sequence of sub-messages each with their own set of headers " +"and their own payload. The latter type of payload is indicated by the " +"message having a MIME type such as :mimetype:`multipart/\\*` " +"or :mimetype:`message/rfc822`." +msgstr "" + +#: ../../library/email.compat32-message.rst:35 +msgid "" +"The conceptual model provided by a :class:`Message` object is that of an " +"ordered dictionary of headers with additional methods for accessing both " +"specialized information from the headers, for accessing the payload, for " +"generating a serialized version of the message, and for recursively walking " +"over the object tree. Note that duplicate headers are supported but special " +"methods must be used to access them." +msgstr "" + +#: ../../library/email.compat32-message.rst:42 +msgid "" +"The :class:`Message` pseudo-dictionary is indexed by the header names, which " +"must be ASCII values. The values of the dictionary are strings that are " +"supposed to contain only ASCII characters; there is some special handling " +"for non-ASCII input, but it doesn't always produce the correct results. " +"Headers are stored and returned in case-preserving form, but field names are " +"matched case-insensitively. There may also be a single envelope header, " +"also known as the *Unix-From* header or the ``From_`` header. The *payload* " +"is either a string or bytes, in the case of simple message objects, or a " +"list of :class:`Message` objects, for MIME container documents " +"(e.g. :mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." +msgstr "" + +#: ../../library/email.compat32-message.rst:53 +msgid "Here are the methods of the :class:`Message` class:" +msgstr "" + +#: ../../library/email.compat32-message.rst:58 +msgid "" +"If *policy* is specified (it must be an instance of a :mod:`~email.policy` " +"class) use the rules it specifies to update and serialize the representation " +"of the message. If *policy* is not set, use the :class:`compat32 " +"` policy, which maintains backward compatibility with " +"the Python 3.2 version of the email package. For more information see " +"the :mod:`~email.policy` documentation." +msgstr "" + +#: ../../library/email.compat32-message.rst:65 +msgid "The *policy* keyword argument was added." +msgstr "" + +#: ../../library/email.compat32-message.rst:70 +msgid "" +"Return the entire message flattened as a string. When optional *unixfrom* " +"is true, the envelope header is included in the returned string. *unixfrom* " +"defaults to ``False``. For backward compatibility reasons, *maxheaderlen* " +"defaults to ``0``, so if you want a different value you must override it " +"explicitly (the value specified for *max_line_length* in the policy will be " +"ignored by this method). The *policy* argument may be used to override the " +"default policy obtained from the message instance. This can be used to " +"control some of the formatting produced by the method, since the specified " +"*policy* will be passed to the ``Generator``." +msgstr "" + +#: ../../library/email.compat32-message.rst:80 +#: ../../library/email.compat32-message.rst:122 +msgid "" +"Flattening the message may trigger changes to the :class:`Message` if " +"defaults need to be filled in to complete the transformation to a string " +"(for example, MIME boundaries may be generated or modified)." +msgstr "" + +#: ../../library/email.compat32-message.rst:84 +msgid "" +"Note that this method is provided as a convenience and may not always format " +"the message the way you want. For example, by default it does not do the " +"mangling of lines that begin with ``From`` that is required by the Unix mbox " +"format. For more flexibility, instantiate " +"a :class:`~email.generator.Generator` instance and use " +"its :meth:`~email.generator.Generator.flatten` method directly. For " +"example::" +msgstr "" + +#: ../../library/email.compat32-message.rst:91 +msgid "" +"from io import StringIO\n" +"from email.generator import Generator\n" +"fp = StringIO()\n" +"g = Generator(fp, mangle_from_=True, maxheaderlen=60)\n" +"g.flatten(msg)\n" +"text = fp.getvalue()" +msgstr "" + +#: ../../library/email.compat32-message.rst:98 +msgid "" +"If the message object contains binary data that is not encoded according to " +"RFC standards, the non-compliant data will be replaced by unicode \"unknown " +"character\" code points. (See also :meth:`.as_bytes` " +"and :class:`~email.generator.BytesGenerator`.)" +msgstr "" + +#: ../../library/email.compat32-message.rst:103 +msgid "the *policy* keyword argument was added." +msgstr "" + +#: ../../library/email.compat32-message.rst:108 +msgid "" +"Equivalent to :meth:`.as_string`. Allows ``str(msg)`` to produce a string " +"containing the formatted message." +msgstr "" + +#: ../../library/email.compat32-message.rst:114 +msgid "" +"Return the entire message flattened as a bytes object. When optional " +"*unixfrom* is true, the envelope header is included in the returned string. " +"*unixfrom* defaults to ``False``. The *policy* argument may be used to " +"override the default policy obtained from the message instance. This can be " +"used to control some of the formatting produced by the method, since the " +"specified *policy* will be passed to the ``BytesGenerator``." +msgstr "" + +#: ../../library/email.compat32-message.rst:126 +msgid "" +"Note that this method is provided as a convenience and may not always format " +"the message the way you want. For example, by default it does not do the " +"mangling of lines that begin with ``From`` that is required by the Unix mbox " +"format. For more flexibility, instantiate " +"a :class:`~email.generator.BytesGenerator` instance and use " +"its :meth:`~email.generator.BytesGenerator.flatten` method directly. For " +"example::" +msgstr "" + +#: ../../library/email.compat32-message.rst:134 +msgid "" +"from io import BytesIO\n" +"from email.generator import BytesGenerator\n" +"fp = BytesIO()\n" +"g = BytesGenerator(fp, mangle_from_=True, maxheaderlen=60)\n" +"g.flatten(msg)\n" +"text = fp.getvalue()" +msgstr "" + +#: ../../library/email.compat32-message.rst:146 +msgid "" +"Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a bytes " +"object containing the formatted message." +msgstr "" + +#: ../../library/email.compat32-message.rst:154 +msgid "" +"Return ``True`` if the message's payload is a list of sub-" +"\\ :class:`Message` objects, otherwise return ``False``. " +"When :meth:`is_multipart` returns ``False``, the payload should be a string " +"object (which might be a CTE encoded binary payload). (Note " +"that :meth:`is_multipart` returning ``True`` does not necessarily mean that " +"\"msg.get_content_maintype() == 'multipart'\" will return the ``True``. For " +"example, ``is_multipart`` will return ``True`` when the :class:`Message` is " +"of type ``message/rfc822``.)" +msgstr "" + +#: ../../library/email.compat32-message.rst:166 +msgid "" +"Set the message's envelope header to *unixfrom*, which should be a string." +msgstr "" + +#: ../../library/email.compat32-message.rst:171 +msgid "" +"Return the message's envelope header. Defaults to ``None`` if the envelope " +"header was never set." +msgstr "" + +#: ../../library/email.compat32-message.rst:177 +msgid "" +"Add the given *payload* to the current payload, which must be ``None`` or a " +"list of :class:`Message` objects before the call. After the call, the " +"payload will always be a list of :class:`Message` objects. If you want to " +"set the payload to a scalar object (e.g. a string), use :meth:`set_payload` " +"instead." +msgstr "" + +#: ../../library/email.compat32-message.rst:183 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced " +"by :meth:`~email.message.EmailMessage.set_content` and the related ``make`` " +"and ``add`` methods." +msgstr "" + +#: ../../library/email.compat32-message.rst:191 +msgid "" +"Return the current payload, which will be a list of :class:`Message` objects " +"when :meth:`is_multipart` is ``True``, or a string when :meth:`is_multipart` " +"is ``False``. If the payload is a list and you mutate the list object, you " +"modify the message's payload in place." +msgstr "" + +#: ../../library/email.compat32-message.rst:196 +msgid "" +"With optional argument *i*, :meth:`get_payload` will return the *i*-th " +"element of the payload, counting from zero, if :meth:`is_multipart` is " +"``True``. An :exc:`IndexError` will be raised if *i* is less than 0 or " +"greater than or equal to the number of items in the payload. If the payload " +"is a string (i.e. :meth:`is_multipart` is ``False``) and *i* is given, " +"a :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/email.compat32-message.rst:203 +msgid "" +"Optional *decode* is a flag indicating whether the payload should be decoded " +"or not, according to the :mailheader:`Content-Transfer-Encoding` header. " +"When ``True`` and the message is not a multipart, the payload will be " +"decoded if this header's value is ``quoted-printable`` or ``base64``. If " +"some other encoding is used, or :mailheader:`Content-Transfer-Encoding` " +"header is missing, the payload is returned as-is (undecoded). In all cases " +"the returned value is binary data. If the message is a multipart and the " +"*decode* flag is ``True``, then ``None`` is returned. If the payload is " +"base64 and it was not perfectly formed (missing padding, characters outside " +"the base64 alphabet), then an appropriate defect will be added to the " +"message's defect property (:class:`~email.errors.InvalidBase64PaddingDefect` " +"or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." +msgstr "" + +#: ../../library/email.compat32-message.rst:217 +msgid "" +"When *decode* is ``False`` (the default) the body is returned as a string " +"without decoding the :mailheader:`Content-Transfer-Encoding`. However, for " +"a :mailheader:`Content-Transfer-Encoding` of 8bit, an attempt is made to " +"decode the original bytes using the ``charset`` specified by " +"the :mailheader:`Content-Type` header, using the ``replace`` error handler. " +"If no ``charset`` is specified, or if the ``charset`` given is not " +"recognized by the email package, the body is decoded using the default ASCII " +"charset." +msgstr "" + +#: ../../library/email.compat32-message.rst:226 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced " +"by :meth:`~email.message.EmailMessage.get_content` " +"and :meth:`~email.message.EmailMessage.iter_parts`." +msgstr "" + +#: ../../library/email.compat32-message.rst:234 +msgid "" +"Set the entire message object's payload to *payload*. It is the client's " +"responsibility to ensure the payload invariants. Optional *charset* sets " +"the message's default character set; see :meth:`set_charset` for details." +msgstr "" + +#: ../../library/email.compat32-message.rst:238 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced " +"by :meth:`~email.message.EmailMessage.set_content`." +msgstr "" + +#: ../../library/email.compat32-message.rst:245 +msgid "" +"Set the character set of the payload to *charset*, which can either be " +"a :class:`~email.charset.Charset` instance (see :mod:`email.charset`), a " +"string naming a character set, or ``None``. If it is a string, it will be " +"converted to a :class:`~email.charset.Charset` instance. If *charset* is " +"``None``, the ``charset`` parameter will be removed from " +"the :mailheader:`Content-Type` header (the message will not be otherwise " +"modified). Anything else will generate a :exc:`TypeError`." +msgstr "" + +#: ../../library/email.compat32-message.rst:253 +msgid "" +"If there is no existing :mailheader:`MIME-Version` header one will be " +"added. If there is no existing :mailheader:`Content-Type` header, one will " +"be added with a value of :mimetype:`text/plain`. Whether " +"the :mailheader:`Content-Type` header already exists or not, its ``charset`` " +"parameter will be set to *charset.output_charset*. If " +"*charset.input_charset* and *charset.output_charset* differ, the payload " +"will be re-encoded to the *output_charset*. If there is no " +"existing :mailheader:`Content-Transfer-Encoding` header, then the payload " +"will be transfer-encoded, if needed, using the " +"specified :class:`~email.charset.Charset`, and a header with the appropriate " +"value will be added. If a :mailheader:`Content-Transfer-Encoding` header " +"already exists, the payload is assumed to already be correctly encoded using " +"that :mailheader:`Content-Transfer-Encoding` and is not modified." +msgstr "" + +#: ../../library/email.compat32-message.rst:267 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the *charset* parameter of " +"the :meth:`email.message.EmailMessage.set_content` method." +msgstr "" + +#: ../../library/email.compat32-message.rst:275 +msgid "" +"Return the :class:`~email.charset.Charset` instance associated with the " +"message's payload." +msgstr "" + +#: ../../library/email.compat32-message.rst:278 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"it always returns ``None``." +msgstr "" + +#: ../../library/email.compat32-message.rst:283 +msgid "" +"The following methods implement a mapping-like interface for accessing the " +"message's :rfc:`2822` headers. Note that there are some semantic " +"differences between these methods and a normal mapping (i.e. dictionary) " +"interface. For example, in a dictionary there are no duplicate keys, but " +"here there may be duplicate message headers. Also, in dictionaries there is " +"no guaranteed order to the keys returned by :meth:`keys`, but in " +"a :class:`Message` object, headers are always returned in the order they " +"appeared in the original message, or were added to the message later. Any " +"header deleted and then re-added are always appended to the end of the " +"header list." +msgstr "" + +#: ../../library/email.compat32-message.rst:293 +msgid "" +"These semantic differences are intentional and are biased toward maximal " +"convenience." +msgstr "" + +#: ../../library/email.compat32-message.rst:296 +msgid "" +"Note that in all cases, any envelope header present in the message is not " +"included in the mapping interface." +msgstr "" + +#: ../../library/email.compat32-message.rst:299 +msgid "" +"In a model generated from bytes, any header values that (in contravention of " +"the RFCs) contain non-ASCII bytes will, when retrieved through this " +"interface, be represented as :class:`~email.header.Header` objects with a " +"charset of ``unknown-8bit``." +msgstr "" + +#: ../../library/email.compat32-message.rst:307 +msgid "Return the total number of headers, including duplicates." +msgstr "" + +#: ../../library/email.compat32-message.rst:312 +msgid "" +"Return ``True`` if the message object has a field named *name*. Matching is " +"done case-insensitively and *name* should not include the trailing colon. " +"Used for the ``in`` operator, e.g.::" +msgstr "" + +#: ../../library/email.compat32-message.rst:316 +msgid "" +"if 'message-id' in myMessage:\n" +" print('Message-ID:', myMessage['message-id'])" +msgstr "" + +#: ../../library/email.compat32-message.rst:322 +msgid "" +"Return the value of the named header field. *name* should not include the " +"colon field separator. If the header is missing, ``None`` is returned; " +"a :exc:`KeyError` is never raised." +msgstr "" + +#: ../../library/email.compat32-message.rst:326 +msgid "" +"Note that if the named field appears more than once in the message's " +"headers, exactly which of those field values will be returned is undefined. " +"Use the :meth:`get_all` method to get the values of all the extant named " +"headers." +msgstr "" + +#: ../../library/email.compat32-message.rst:334 +msgid "" +"Add a header to the message with field name *name* and value *val*. The " +"field is appended to the end of the message's existing fields." +msgstr "" + +#: ../../library/email.compat32-message.rst:337 +msgid "" +"Note that this does *not* overwrite or delete any existing header with the " +"same name. If you want to ensure that the new header is the only one " +"present in the message with field name *name*, delete the field first, e.g.::" +msgstr "" + +#: ../../library/email.compat32-message.rst:341 +msgid "" +"del msg['subject']\n" +"msg['subject'] = 'Python roolz!'" +msgstr "" + +#: ../../library/email.compat32-message.rst:347 +msgid "" +"Delete all occurrences of the field with name *name* from the message's " +"headers. No exception is raised if the named field isn't present in the " +"headers." +msgstr "" + +#: ../../library/email.compat32-message.rst:354 +msgid "Return a list of all the message's header field names." +msgstr "" + +#: ../../library/email.compat32-message.rst:359 +msgid "Return a list of all the message's field values." +msgstr "" + +#: ../../library/email.compat32-message.rst:364 +msgid "" +"Return a list of 2-tuples containing all the message's field headers and " +"values." +msgstr "" + +#: ../../library/email.compat32-message.rst:370 +msgid "" +"Return the value of the named header field. This is identical " +"to :meth:`~object.__getitem__` except that optional *failobj* is returned if " +"the named header is missing (defaults to ``None``)." +msgstr "" + +#: ../../library/email.compat32-message.rst:374 +msgid "Here are some additional useful methods:" +msgstr "" + +#: ../../library/email.compat32-message.rst:379 +msgid "" +"Return a list of all the values for the field named *name*. If there are no " +"such named headers in the message, *failobj* is returned (defaults to " +"``None``)." +msgstr "" + +#: ../../library/email.compat32-message.rst:386 +msgid "" +"Extended header setting. This method is similar to :meth:`__setitem__` " +"except that additional header parameters can be provided as keyword " +"arguments. *_name* is the header field to add and *_value* is the *primary* " +"value for the header." +msgstr "" + +#: ../../library/email.compat32-message.rst:391 +msgid "" +"For each item in the keyword argument dictionary *_params*, the key is taken " +"as the parameter name, with underscores converted to dashes (since dashes " +"are illegal in Python identifiers). Normally, the parameter will be added " +"as ``key=\"value\"`` unless the value is ``None``, in which case only the " +"key will be added. If the value contains non-ASCII characters, it can be " +"specified as a three tuple in the format ``(CHARSET, LANGUAGE, VALUE)``, " +"where ``CHARSET`` is a string naming the charset to be used to encode the " +"value, ``LANGUAGE`` can usually be set to ``None`` or the empty string " +"(see :rfc:`2231` for other possibilities), and ``VALUE`` is the string value " +"containing non-ASCII code points. If a three tuple is not passed and the " +"value contains non-ASCII characters, it is automatically encoded " +"in :rfc:`2231` format using a ``CHARSET`` of ``utf-8`` and a ``LANGUAGE`` of " +"``None``." +msgstr "" + +#: ../../library/email.compat32-message.rst:405 +msgid "Here's an example::" +msgstr "" + +#: ../../library/email.compat32-message.rst:407 +msgid "msg.add_header('Content-Disposition', 'attachment', filename='bud.gif')" +msgstr "" + +#: ../../library/email.compat32-message.rst:409 +msgid "This will add a header that looks like ::" +msgstr "" + +#: ../../library/email.compat32-message.rst:411 +msgid "Content-Disposition: attachment; filename=\"bud.gif\"" +msgstr "" + +#: ../../library/email.compat32-message.rst:413 +msgid "An example with non-ASCII characters::" +msgstr "" + +#: ../../library/email.compat32-message.rst:415 +msgid "" +"msg.add_header('Content-Disposition', 'attachment',\n" +" filename=('iso-8859-1', '', 'Fußballer.ppt'))" +msgstr "" + +#: ../../library/email.compat32-message.rst:418 +msgid "Which produces ::" +msgstr "" + +#: ../../library/email.compat32-message.rst:420 +msgid "" +"Content-Disposition: attachment; filename*=\"iso-8859-1''Fu%DFballer.ppt\"" +msgstr "" + +#: ../../library/email.compat32-message.rst:425 +msgid "" +"Replace a header. Replace the first header found in the message that " +"matches *_name*, retaining header order and field name case. If no matching " +"header was found, a :exc:`KeyError` is raised." +msgstr "" + +#: ../../library/email.compat32-message.rst:432 +msgid "" +"Return the message's content type. The returned string is coerced to lower " +"case of the form :mimetype:`maintype/subtype`. If there was " +"no :mailheader:`Content-Type` header in the message the default type as " +"given by :meth:`get_default_type` will be returned. Since according " +"to :rfc:`2045`, messages always have a default " +"type, :meth:`get_content_type` will always return a value." +msgstr "" + +#: ../../library/email.compat32-message.rst:439 +msgid "" +":rfc:`2045` defines a message's default type to be :mimetype:`text/plain` " +"unless it appears inside a :mimetype:`multipart/digest` container, in which " +"case it would be :mimetype:`message/rfc822`. If the :mailheader:`Content-" +"Type` header has an invalid type specification, :rfc:`2045` mandates that " +"the default type be :mimetype:`text/plain`." +msgstr "" + +#: ../../library/email.compat32-message.rst:448 +msgid "" +"Return the message's main content type. This is the :mimetype:`maintype` " +"part of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../../library/email.compat32-message.rst:454 +msgid "" +"Return the message's sub-content type. This is the :mimetype:`subtype` part " +"of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../../library/email.compat32-message.rst:460 +msgid "" +"Return the default content type. Most messages have a default content type " +"of :mimetype:`text/plain`, except for messages that are subparts " +"of :mimetype:`multipart/digest` containers. Such subparts have a default " +"content type of :mimetype:`message/rfc822`." +msgstr "" + +#: ../../library/email.compat32-message.rst:468 +msgid "" +"Set the default content type. *ctype* should either be :mimetype:`text/" +"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " +"default content type is not stored in the :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.compat32-message.rst:476 +msgid "" +"Return the message's :mailheader:`Content-Type` parameters, as a list. The " +"elements of the returned list are 2-tuples of key/value pairs, as split on " +"the ``'='`` sign. The left hand side of the ``'='`` is the key, while the " +"right hand side is the value. If there is no ``'='`` sign in the parameter " +"the value is the empty string, otherwise the value is as described " +"in :meth:`get_param` and is unquoted if optional *unquote* is ``True`` (the " +"default)." +msgstr "" + +#: ../../library/email.compat32-message.rst:484 +msgid "" +"Optional *failobj* is the object to return if there is " +"no :mailheader:`Content-Type` header. Optional *header* is the header to " +"search instead of :mailheader:`Content-Type`." +msgstr "" + +#: ../../library/email.compat32-message.rst:488 +#: ../../library/email.compat32-message.rst:526 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the *params* property of the individual " +"header objects returned by the header access methods." +msgstr "" + +#: ../../library/email.compat32-message.rst:496 +msgid "" +"Return the value of the :mailheader:`Content-Type` header's parameter " +"*param* as a string. If the message has no :mailheader:`Content-Type` " +"header or if there is no such parameter, then *failobj* is returned " +"(defaults to ``None``)." +msgstr "" + +#: ../../library/email.compat32-message.rst:501 +msgid "" +"Optional *header* if given, specifies the message header to use instead " +"of :mailheader:`Content-Type`." +msgstr "" + +#: ../../library/email.compat32-message.rst:504 +msgid "" +"Parameter keys are always compared case insensitively. The return value can " +"either be a string, or a 3-tuple if the parameter was :rfc:`2231` encoded. " +"When it's a 3-tuple, the elements of the value are of the form ``(CHARSET, " +"LANGUAGE, VALUE)``. Note that both ``CHARSET`` and ``LANGUAGE`` can be " +"``None``, in which case you should consider ``VALUE`` to be encoded in the " +"``us-ascii`` charset. You can usually ignore ``LANGUAGE``." +msgstr "" + +#: ../../library/email.compat32-message.rst:512 +msgid "" +"If your application doesn't care whether the parameter was encoded as " +"in :rfc:`2231`, you can collapse the parameter value by " +"calling :func:`email.utils.collapse_rfc2231_value`, passing in the return " +"value from :meth:`get_param`. This will return a suitably decoded Unicode " +"string when the value is a tuple, or the original string unquoted if it " +"isn't. For example::" +msgstr "" + +#: ../../library/email.compat32-message.rst:519 +msgid "" +"rawparam = msg.get_param('foo')\n" +"param = email.utils.collapse_rfc2231_value(rawparam)" +msgstr "" + +#: ../../library/email.compat32-message.rst:522 +msgid "" +"In any case, the parameter value (either the returned string, or the " +"``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " +"to ``False``." +msgstr "" + +#: ../../library/email.compat32-message.rst:535 +msgid "" +"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " +"already exists in the header, its value will be replaced with *value*. If " +"the :mailheader:`Content-Type` header as not yet been defined for this " +"message, it will be set to :mimetype:`text/plain` and the new parameter " +"value will be appended as per :rfc:`2045`." +msgstr "" + +#: ../../library/email.compat32-message.rst:541 +msgid "" +"Optional *header* specifies an alternative header to :mailheader:`Content-" +"Type`, and all parameters will be quoted as necessary unless optional " +"*requote* is ``False`` (the default is ``True``)." +msgstr "" + +#: ../../library/email.compat32-message.rst:545 +msgid "" +"If optional *charset* is specified, the parameter will be encoded according " +"to :rfc:`2231`. Optional *language* specifies the RFC 2231 language, " +"defaulting to the empty string. Both *charset* and *language* should be " +"strings." +msgstr "" + +#: ../../library/email.compat32-message.rst:550 +msgid "" +"If *replace* is ``False`` (the default) the header is moved to the end of " +"the list of headers. If *replace* is ``True``, the header will be updated " +"in place." +msgstr "" + +#: ../../library/email.compat32-message.rst:554 +msgid "``replace`` keyword was added." +msgstr "" + +#: ../../library/email.compat32-message.rst:559 +msgid "" +"Remove the given parameter completely from the :mailheader:`Content-Type` " +"header. The header will be re-written in place without the parameter or its " +"value. All values will be quoted as necessary unless *requote* is ``False`` " +"(the default is ``True``). Optional *header* specifies an alternative " +"to :mailheader:`Content-Type`." +msgstr "" + +#: ../../library/email.compat32-message.rst:568 +msgid "" +"Set the main type and subtype for the :mailheader:`Content-Type` header. " +"*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " +"a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/email.compat32-message.rst:572 +msgid "" +"This method replaces the :mailheader:`Content-Type` header, keeping all the " +"parameters in place. If *requote* is ``False``, this leaves the existing " +"header's quoting as is, otherwise the parameters will be quoted (the " +"default)." +msgstr "" + +#: ../../library/email.compat32-message.rst:577 +msgid "" +"An alternative header can be specified in the *header* argument. When " +"the :mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` " +"header is also added." +msgstr "" + +#: ../../library/email.compat32-message.rst:581 +msgid "" +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the ``make_`` and ``add_`` methods." +msgstr "" + +#: ../../library/email.compat32-message.rst:588 +msgid "" +"Return the value of the ``filename`` parameter of the :mailheader:`Content-" +"Disposition` header of the message. If the header does not have a " +"``filename`` parameter, this method falls back to looking for the ``name`` " +"parameter on the :mailheader:`Content-Type` header. If neither is found, or " +"the header is missing, then *failobj* is returned. The returned string will " +"always be unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../../library/email.compat32-message.rst:599 +msgid "" +"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" +"Type` header of the message, or *failobj* if either the header is missing, " +"or has no ``boundary`` parameter. The returned string will always be " +"unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../../library/email.compat32-message.rst:607 +msgid "" +"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " +"*boundary*. :meth:`set_boundary` will always quote *boundary* if " +"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " +"object has no :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.compat32-message.rst:612 +msgid "" +"Note that using this method is subtly different than deleting the " +"old :mailheader:`Content-Type` header and adding a new one with the new " +"boundary via :meth:`add_header`, because :meth:`set_boundary` preserves the " +"order of the :mailheader:`Content-Type` header in the list of headers. " +"However, it does *not* preserve any continuation lines which may have been " +"present in the original :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.compat32-message.rst:622 +msgid "" +"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " +"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " +"if that header has no ``charset`` parameter, *failobj* is returned." +msgstr "" + +#: ../../library/email.compat32-message.rst:626 +msgid "" +"Note that this method differs from :meth:`get_charset` which returns " +"the :class:`~email.charset.Charset` instance for the default encoding of the " +"message body." +msgstr "" + +#: ../../library/email.compat32-message.rst:632 +msgid "" +"Return a list containing the character set names in the message. If the " +"message is a :mimetype:`multipart`, then the list will contain one element " +"for each subpart in the payload, otherwise, it will be a list of length 1." +msgstr "" + +#: ../../library/email.compat32-message.rst:636 +msgid "" +"Each item in the list will be a string which is the value of the ``charset`` " +"parameter in the :mailheader:`Content-Type` header for the represented " +"subpart. However, if the subpart has no :mailheader:`Content-Type` header, " +"no ``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " +"then that item in the returned list will be *failobj*." +msgstr "" + +#: ../../library/email.compat32-message.rst:646 +msgid "" +"Return the lowercased value (without parameters) of the " +"message's :mailheader:`Content-Disposition` header if it has one, or " +"``None``. The possible values for this method are *inline*, *attachment* or " +"``None`` if the message follows :rfc:`2183`." +msgstr "" + +#: ../../library/email.compat32-message.rst:655 +msgid "" +"The :meth:`walk` method is an all-purpose generator which can be used to " +"iterate over all the parts and subparts of a message object tree, in depth-" +"first traversal order. You will typically use :meth:`walk` as the iterator " +"in a ``for`` loop; each iteration returns the next subpart." +msgstr "" + +#: ../../library/email.compat32-message.rst:660 +msgid "" +"Here's an example that prints the MIME type of every part of a multipart " +"message structure:" +msgstr "" + +#: ../../library/email.compat32-message.rst:674 +msgid "" +">>> for part in msg.walk():\n" +"... print(part.get_content_type())\n" +"multipart/report\n" +"text/plain\n" +"message/delivery-status\n" +"text/plain\n" +"text/plain\n" +"message/rfc822\n" +"text/plain" +msgstr "" + +#: ../../library/email.compat32-message.rst:686 +msgid "" +"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " +"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " +"may return ``False``. We can see this in our example by making use of the " +"``_structure`` debug helper function:" +msgstr "" + +#: ../../library/email.compat32-message.rst:692 +msgid "" +">>> for part in msg.walk():\n" +"... print(part.get_content_maintype() == 'multipart',\n" +"... part.is_multipart())\n" +"True True\n" +"False False\n" +"False True\n" +"False False\n" +"False False\n" +"False True\n" +"False False\n" +">>> _structure(msg)\n" +"multipart/report\n" +" text/plain\n" +" message/delivery-status\n" +" text/plain\n" +" text/plain\n" +" message/rfc822\n" +" text/plain" +msgstr "" + +#: ../../library/email.compat32-message.rst:713 +msgid "" +"Here the ``message`` parts are not ``multiparts``, but they do contain " +"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " +"subparts." +msgstr "" + +#: ../../library/email.compat32-message.rst:718 +msgid "" +":class:`Message` objects can also optionally contain two instance " +"attributes, which can be used when generating the plain text of a MIME " +"message." +msgstr "" + +#: ../../library/email.compat32-message.rst:724 +msgid "" +"The format of a MIME document allows for some text between the blank line " +"following the headers, and the first multipart boundary string. Normally, " +"this text is never visible in a MIME-aware mail reader because it falls " +"outside the standard MIME armor. However, when viewing the raw text of the " +"message, or when viewing the message in a non-MIME aware reader, this text " +"can become visible." +msgstr "" + +#: ../../library/email.compat32-message.rst:731 +msgid "" +"The *preamble* attribute contains this leading extra-armor text for MIME " +"documents. When the :class:`~email.parser.Parser` discovers some text after " +"the headers but before the first boundary string, it assigns this text to " +"the message's *preamble* attribute. When " +"the :class:`~email.generator.Generator` is writing out the plain text " +"representation of a MIME message, and it finds the message has a *preamble* " +"attribute, it will write this text in the area between the headers and the " +"first boundary. See :mod:`email.parser` and :mod:`email.generator` for " +"details." +msgstr "" + +#: ../../library/email.compat32-message.rst:741 +msgid "" +"Note that if the message object has no preamble, the *preamble* attribute " +"will be ``None``." +msgstr "" + +#: ../../library/email.compat32-message.rst:747 +msgid "" +"The *epilogue* attribute acts the same way as the *preamble* attribute, " +"except that it contains text that appears between the last boundary and the " +"end of the message." +msgstr "" + +#: ../../library/email.compat32-message.rst:751 +msgid "" +"You do not need to set the epilogue to the empty string in order for " +"the :class:`~email.generator.Generator` to print a newline at the end of the " +"file." +msgstr "" + +#: ../../library/email.compat32-message.rst:758 +msgid "" +"The *defects* attribute contains a list of all the problems found when " +"parsing this message. See :mod:`email.errors` for a detailed description of " +"the possible parsing defects." +msgstr "" diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po new file mode 100644 index 0000000..b1ec041 --- /dev/null +++ b/library/email.contentmanager.po @@ -0,0 +1,296 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.contentmanager.rst:2 +msgid ":mod:`!email.contentmanager`: Managing MIME Content" +msgstr "" + +#: ../../library/email.contentmanager.rst:10 +msgid "**Source code:** :source:`Lib/email/contentmanager.py`" +msgstr "" + +#: ../../library/email.contentmanager.rst:14 +msgid "[1]_" +msgstr "" + +#: ../../library/email.contentmanager.rst:19 +msgid "" +"Base class for content managers. Provides the standard registry mechanisms " +"to register converters between MIME content and other representations, as " +"well as the ``get_content`` and ``set_content`` dispatch methods." +msgstr "" + +#: ../../library/email.contentmanager.rst:26 +msgid "" +"Look up a handler function based on the ``mimetype`` of *msg* (see next " +"paragraph), call it, passing through all arguments, and return the result of " +"the call. The expectation is that the handler will extract the payload from " +"*msg* and return an object that encodes information about the extracted data." +msgstr "" + +#: ../../library/email.contentmanager.rst:32 +msgid "" +"To find the handler, look for the following keys in the registry, stopping " +"with the first one found:" +msgstr "" + +#: ../../library/email.contentmanager.rst:35 +msgid "the string representing the full MIME type (``maintype/subtype``)" +msgstr "" + +#: ../../library/email.contentmanager.rst:36 +msgid "the string representing the ``maintype``" +msgstr "" + +#: ../../library/email.contentmanager.rst:37 +msgid "the empty string" +msgstr "" + +#: ../../library/email.contentmanager.rst:39 +msgid "" +"If none of these keys produce a handler, raise a :exc:`KeyError` for the " +"full MIME type." +msgstr "" + +#: ../../library/email.contentmanager.rst:45 +msgid "" +"If the ``maintype`` is ``multipart``, raise a :exc:`TypeError`; otherwise " +"look up a handler function based on the type of *obj* (see next paragraph), " +"call :meth:`~email.message.EmailMessage.clear_content` on the *msg*, and " +"call the handler function, passing through all arguments. The expectation " +"is that the handler will transform and store *obj* into *msg*, possibly " +"making other changes to *msg* as well, such as adding various MIME headers " +"to encode information needed to interpret the stored data." +msgstr "" + +#: ../../library/email.contentmanager.rst:54 +msgid "" +"To find the handler, obtain the type of *obj* (``typ = type(obj)``), and " +"look for the following keys in the registry, stopping with the first one " +"found:" +msgstr "" + +#: ../../library/email.contentmanager.rst:58 +msgid "the type itself (``typ``)" +msgstr "" + +#: ../../library/email.contentmanager.rst:59 +msgid "" +"the type's fully qualified name (``typ.__module__ + '.' + " +"typ.__qualname__``)." +msgstr "" + +#: ../../library/email.contentmanager.rst:61 +msgid "the type's :attr:`qualname ` (``typ.__qualname__``)" +msgstr "" + +#: ../../library/email.contentmanager.rst:62 +msgid "the type's :attr:`name ` (``typ.__name__``)." +msgstr "" + +#: ../../library/email.contentmanager.rst:64 +msgid "" +"If none of the above match, repeat all of the checks above for each of the " +"types in the :term:`MRO` (:attr:`typ.__mro__ `). Finally, if " +"no other key yields a handler, check for a handler for the key ``None``. If " +"there is no handler for ``None``, raise a :exc:`KeyError` for the fully " +"qualified name of the type." +msgstr "" + +#: ../../library/email.contentmanager.rst:71 +msgid "" +"Also add a :mailheader:`MIME-Version` header if one is not present (see " +"also :class:`.MIMEPart`)." +msgstr "" + +#: ../../library/email.contentmanager.rst:77 +msgid "" +"Record the function *handler* as the handler for *key*. For the possible " +"values of *key*, see :meth:`get_content`." +msgstr "" + +#: ../../library/email.contentmanager.rst:83 +msgid "" +"Record *handler* as the function to call when an object of a type matching " +"*typekey* is passed to :meth:`set_content`. For the possible values of " +"*typekey*, see :meth:`set_content`." +msgstr "" + +#: ../../library/email.contentmanager.rst:89 +msgid "Content Manager Instances" +msgstr "" + +#: ../../library/email.contentmanager.rst:91 +msgid "" +"Currently the email package provides only one concrete content " +"manager, :data:`raw_data_manager`, although more may be added in the " +"future. :data:`raw_data_manager` is " +"the :attr:`~email.policy.EmailPolicy.content_manager` provided " +"by :attr:`~email.policy.EmailPolicy` and its derivatives." +msgstr "" + +#: ../../library/email.contentmanager.rst:100 +msgid "" +"This content manager provides only a minimum interface beyond that provided " +"by :class:`~email.message.Message` itself: it deals only with text, raw " +"byte strings, and :class:`~email.message.Message` objects. Nevertheless, it " +"provides significant advantages compared to the base API: ``get_content`` on " +"a text part will return a unicode string without the application needing to " +"manually decode it, ``set_content`` provides a rich set of options for " +"controlling the headers added to a part and controlling the content transfer " +"encoding, and it enables the use of the various ``add_`` methods, thereby " +"simplifying the creation of multipart messages." +msgstr "" + +#: ../../library/email.contentmanager.rst:112 +msgid "" +"Return the payload of the part as either a string (for ``text`` parts), " +"an :class:`~email.message.EmailMessage` object (for ``message/rfc822`` " +"parts), or a ``bytes`` object (for all other non-multipart types). Raise " +"a :exc:`KeyError` if called on a ``multipart``. If the part is a ``text`` " +"part and *errors* is specified, use it as the error handler when decoding " +"the payload to unicode. The default error handler is ``replace``." +msgstr "" + +#: ../../library/email.contentmanager.rst:131 +msgid "Add headers and payload to *msg*:" +msgstr "" + +#: ../../library/email.contentmanager.rst:133 +msgid "" +"Add a :mailheader:`Content-Type` header with a ``maintype/subtype`` value." +msgstr "" + +#: ../../library/email.contentmanager.rst:136 +msgid "" +"For ``str``, set the MIME ``maintype`` to ``text``, and set the subtype to " +"*subtype* if it is specified, or ``plain`` if it is not." +msgstr "" + +#: ../../library/email.contentmanager.rst:138 +msgid "" +"For ``bytes``, use the specified *maintype* and *subtype*, or raise " +"a :exc:`TypeError` if they are not specified." +msgstr "" + +#: ../../library/email.contentmanager.rst:140 +msgid "" +"For :class:`~email.message.EmailMessage` objects, set the maintype to " +"``message``, and set the subtype to *subtype* if it is specified or " +"``rfc822`` if it is not. If *subtype* is ``partial``, raise an error " +"(``bytes`` objects must be used to construct ``message/partial`` parts)." +msgstr "" + +#: ../../library/email.contentmanager.rst:146 +msgid "" +"If *charset* is provided (which is valid only for ``str``), encode the " +"string to bytes using the specified character set. The default is " +"``utf-8``. If the specified *charset* is a known alias for a standard MIME " +"charset name, use the standard charset instead." +msgstr "" + +#: ../../library/email.contentmanager.rst:151 +msgid "" +"If *cte* is set, encode the payload using the specified content transfer " +"encoding, and set the :mailheader:`Content-Transfer-Encoding` header to that " +"value. Possible values for *cte* are ``quoted-printable``, ``base64``, " +"``7bit``, ``8bit``, and ``binary``. If the input cannot be encoded in the " +"specified encoding (for example, specifying a *cte* of ``7bit`` for an input " +"that contains non-ASCII values), raise a :exc:`ValueError`." +msgstr "" + +#: ../../library/email.contentmanager.rst:159 +msgid "" +"For ``str`` objects, if *cte* is not set use heuristics to determine the " +"most compact encoding. Prior to encoding, :meth:`str.splitlines` is used to " +"normalize all line boundaries, ensuring that each line of the payload is " +"terminated by the current policy's :data:`~email.policy.Policy.linesep` " +"property (even if the original string did not end with one)." +msgstr "" + +#: ../../library/email.contentmanager.rst:165 +msgid "" +"For ``bytes`` objects, *cte* is taken to be base64 if not set, and the " +"aforementioned newline translation is not performed." +msgstr "" + +#: ../../library/email.contentmanager.rst:167 +msgid "" +"For :class:`~email.message.EmailMessage`, per :rfc:`2046`, raise an error if " +"a *cte* of ``quoted-printable`` or ``base64`` is requested for *subtype* " +"``rfc822``, and for any *cte* other than ``7bit`` for *subtype* ``external-" +"body``. For ``message/rfc822``, use ``8bit`` if *cte* is not specified. " +"For all other values of *subtype*, use ``7bit``." +msgstr "" + +#: ../../library/email.contentmanager.rst:174 +msgid "" +"A *cte* of ``binary`` does not actually work correctly yet. The " +"``EmailMessage`` object as modified by ``set_content`` is correct, " +"but :class:`~email.generator.BytesGenerator` does not serialize it correctly." +msgstr "" + +#: ../../library/email.contentmanager.rst:179 +msgid "" +"If *disposition* is set, use it as the value of the :mailheader:`Content-" +"Disposition` header. If not specified, and *filename* is specified, add the " +"header with the value ``attachment``. If *disposition* is not specified and " +"*filename* is also not specified, do not add the header. The only valid " +"values for *disposition* are ``attachment`` and ``inline``." +msgstr "" + +#: ../../library/email.contentmanager.rst:186 +msgid "" +"If *filename* is specified, use it as the value of the ``filename`` " +"parameter of the :mailheader:`Content-Disposition` header." +msgstr "" + +#: ../../library/email.contentmanager.rst:189 +msgid "" +"If *cid* is specified, add a :mailheader:`Content-ID` header with *cid* as " +"its value." +msgstr "" + +#: ../../library/email.contentmanager.rst:192 +msgid "" +"If *params* is specified, iterate its ``items`` method and use the resulting " +"``(key, value)`` pairs to set additional parameters on " +"the :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.contentmanager.rst:196 +msgid "" +"If *headers* is specified and is a list of strings of the form ``headername: " +"headervalue`` or a list of ``header`` objects (distinguished from strings by " +"having a ``name`` attribute), add the headers to *msg*." +msgstr "" + +#: ../../library/email.contentmanager.rst:203 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.contentmanager.rst:204 +msgid "" +"Originally added in 3.4 as a :term:`provisional module `" +msgstr "" diff --git a/library/email.encoders.po b/library/email.encoders.po new file mode 100644 index 0000000..a04ec72 --- /dev/null +++ b/library/email.encoders.po @@ -0,0 +1,123 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.encoders.rst:2 +msgid ":mod:`!email.encoders`: Encoders" +msgstr "" + +#: ../../library/email.encoders.rst:7 +msgid "**Source code:** :source:`Lib/email/encoders.py`" +msgstr "" + +#: ../../library/email.encoders.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the new API " +"the functionality is provided by the *cte* parameter of " +"the :meth:`~email.message.EmailMessage.set_content` method." +msgstr "" + +#: ../../library/email.encoders.rst:15 +msgid "" +"This module is deprecated in Python 3. The functions provided here should " +"not be called explicitly since the :class:`~email.mime.text.MIMEText` class " +"sets the content type and CTE header using the *_subtype* and *_charset* " +"values passed during the instantiation of that class." +msgstr "" + +#: ../../library/email.encoders.rst:20 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" + +#: ../../library/email.encoders.rst:22 +msgid "" +"When creating :class:`~email.message.Message` objects from scratch, you " +"often need to encode the payloads for transport through compliant mail " +"servers. This is especially true for :mimetype:`image/\\*` " +"and :mimetype:`text/\\*` type messages containing binary data." +msgstr "" + +#: ../../library/email.encoders.rst:27 +msgid "" +"The :mod:`email` package provides some convenient encoders in " +"its :mod:`~email.encoders` module. These encoders are actually used by " +"the :class:`~email.mime.audio.MIMEAudio` " +"and :class:`~email.mime.image.MIMEImage` class constructors to provide " +"default encodings. All encoder functions take exactly one argument, the " +"message object to encode. They usually extract the payload, encode it, and " +"reset the payload to this newly encoded value. They should also set " +"the :mailheader:`Content-Transfer-Encoding` header as appropriate." +msgstr "" + +#: ../../library/email.encoders.rst:35 +msgid "" +"Note that these functions are not meaningful for a multipart message. They " +"must be applied to individual subparts instead, and will raise " +"a :exc:`TypeError` if passed a message whose type is multipart." +msgstr "" + +#: ../../library/email.encoders.rst:39 +msgid "Here are the encoding functions provided:" +msgstr "" + +#: ../../library/email.encoders.rst:44 +msgid "" +"Encodes the payload into quoted-printable form and sets " +"the :mailheader:`Content-Transfer-Encoding` header to ``quoted-printable`` " +"[#]_. This is a good encoding to use when most of your payload is normal " +"printable data, but contains a few unprintable characters." +msgstr "" + +#: ../../library/email.encoders.rst:52 +msgid "" +"Encodes the payload into base64 form and sets the :mailheader:`Content-" +"Transfer-Encoding` header to ``base64``. This is a good encoding to use " +"when most of your payload is unprintable data since it is a more compact " +"form than quoted-printable. The drawback of base64 encoding is that it " +"renders the text non-human readable." +msgstr "" + +#: ../../library/email.encoders.rst:61 +msgid "" +"This doesn't actually modify the message's payload, but it does set " +"the :mailheader:`Content-Transfer-Encoding` header to either ``7bit`` or " +"``8bit`` as appropriate, based on the payload data." +msgstr "" + +#: ../../library/email.encoders.rst:68 +msgid "" +"This does nothing; it doesn't even set the :mailheader:`Content-Transfer-" +"Encoding` header." +msgstr "" + +#: ../../library/email.encoders.rst:72 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.encoders.rst:73 +msgid "" +"Note that encoding with :meth:`encode_quopri` also encodes all tabs and " +"space characters in the data." +msgstr "" diff --git a/library/email.errors.po b/library/email.errors.po new file mode 100644 index 0000000..9973cb9 --- /dev/null +++ b/library/email.errors.po @@ -0,0 +1,183 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.errors.rst:2 +msgid ":mod:`!email.errors`: Exception and Defect classes" +msgstr "" + +#: ../../library/email.errors.rst:7 +msgid "**Source code:** :source:`Lib/email/errors.py`" +msgstr "" + +#: ../../library/email.errors.rst:11 +msgid "" +"The following exception classes are defined in the :mod:`email.errors` " +"module:" +msgstr "" + +#: ../../library/email.errors.rst:16 +msgid "" +"This is the base class for all exceptions that the :mod:`email` package can " +"raise. It is derived from the standard :exc:`Exception` class and defines " +"no additional methods." +msgstr "" + +#: ../../library/email.errors.rst:23 +msgid "" +"This is the base class for exceptions raised by " +"the :class:`~email.parser.Parser` class. It is derived " +"from :exc:`MessageError`. This class is also used internally by the parser " +"used by :mod:`~email.headerregistry`." +msgstr "" + +#: ../../library/email.errors.rst:31 +msgid "" +"Raised under some error conditions when parsing the :rfc:`5322` headers of a " +"message, this class is derived from :exc:`MessageParseError`. " +"The :meth:`~email.message.EmailMessage.set_boundary` method will raise this " +"error if the content type is unknown when the method is " +"called. :class:`~email.header.Header` may raise this error for certain " +"base64 decoding errors, and when an attempt is made to create a header that " +"appears to contain an embedded header (that is, there is what is supposed to " +"be a continuation line that has no leading whitespace and looks like a " +"header)." +msgstr "" + +#: ../../library/email.errors.rst:43 +msgid "Deprecated and no longer used." +msgstr "" + +#: ../../library/email.errors.rst:48 +msgid "" +"Raised if the :meth:`~email.message.Message.attach` method is called on an " +"instance of a class derived " +"from :class:`~email.mime.nonmultipart.MIMENonMultipart` " +"(e.g. :class:`~email.mime.image.MIMEImage`). :exc:`MultipartConversionError` " +"multiply inherits from :exc:`MessageError` and the built-in :exc:`TypeError`." +msgstr "" + +#: ../../library/email.errors.rst:58 +msgid "" +"Raised when an error occurs when the :mod:`~email.generator` outputs headers." +msgstr "" + +#: ../../library/email.errors.rst:64 +msgid "" +"This is the base class for all defects found when parsing email messages. It " +"is derived from :exc:`ValueError`." +msgstr "" + +#: ../../library/email.errors.rst:69 +msgid "" +"This is the base class for all defects found when parsing email headers. It " +"is derived from :exc:`MessageDefect`." +msgstr "" + +#: ../../library/email.errors.rst:72 +msgid "" +"Here is the list of the defects that the :class:`~email.parser.FeedParser` " +"can find while parsing messages. Note that the defects are added to the " +"message where the problem was found, so for example, if a message nested " +"inside a :mimetype:`multipart/alternative` had a malformed header, that " +"nested message object would have a defect, but the containing messages would " +"not." +msgstr "" + +#: ../../library/email.errors.rst:78 +msgid "" +"All defect classes are subclassed from :class:`email.errors.MessageDefect`." +msgstr "" + +#: ../../library/email.errors.rst:82 +msgid "" +"A message claimed to be a multipart, but had no :mimetype:`boundary` " +"parameter." +msgstr "" + +#: ../../library/email.errors.rst:87 +msgid "" +"The start boundary claimed in the :mailheader:`Content-Type` header was " +"never found." +msgstr "" + +#: ../../library/email.errors.rst:92 +msgid "" +"A start boundary was found, but no corresponding close boundary was ever " +"found." +msgstr "" + +#: ../../library/email.errors.rst:99 +msgid "The message had a continuation line as its first header line." +msgstr "" + +#: ../../library/email.errors.rst:103 +msgid "A \"Unix From\" header was found in the middle of a header block." +msgstr "" + +#: ../../library/email.errors.rst:107 +msgid "" +"A line was found while parsing headers that had no leading white space but " +"contained no ':'. Parsing continues assuming that the line represents the " +"first line of the body." +msgstr "" + +#: ../../library/email.errors.rst:115 +msgid "" +"A header was found that was missing a colon, or was otherwise malformed." +msgstr "" + +#: ../../library/email.errors.rst:117 +msgid "This defect has not been used for several Python versions." +msgstr "" + +#: ../../library/email.errors.rst:122 +msgid "" +"A message claimed to be a :mimetype:`multipart`, but no subparts were found. " +"Note that when a message has this defect, " +"its :meth:`~email.message.Message.is_multipart` method may return ``False`` " +"even though its content type claims to be :mimetype:`multipart`." +msgstr "" + +#: ../../library/email.errors.rst:129 +msgid "" +"When decoding a block of base64 encoded bytes, the padding was not correct. " +"Enough padding is added to perform the decode, but the resulting decoded " +"bytes may be invalid." +msgstr "" + +#: ../../library/email.errors.rst:135 +msgid "" +"When decoding a block of base64 encoded bytes, characters outside the base64 " +"alphabet were encountered. The characters are ignored, but the resulting " +"decoded bytes may be invalid." +msgstr "" + +#: ../../library/email.errors.rst:141 +msgid "" +"When decoding a block of base64 encoded bytes, the number of non-padding " +"base64 characters was invalid (1 more than a multiple of 4). The encoded " +"block was kept as-is." +msgstr "" + +#: ../../library/email.errors.rst:147 +msgid "" +"When decoding an invalid or unparsable date field. The original value is " +"kept as-is." +msgstr "" diff --git a/library/email.examples.po b/library/email.examples.po new file mode 100644 index 0000000..02af16f --- /dev/null +++ b/library/email.examples.po @@ -0,0 +1,487 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.examples.rst:4 +msgid ":mod:`email`: Examples" +msgstr "" + +#: ../../library/email.examples.rst:6 +msgid "" +"Here are a few examples of how to use the :mod:`email` package to read, " +"write, and send simple email messages, as well as more complex MIME messages." +msgstr "" + +#: ../../library/email.examples.rst:9 +msgid "" +"First, let's see how to create and send a simple text message (both the text " +"content and the addresses may contain unicode characters):" +msgstr "" + +#: ../../library/email.examples.rst:12 +msgid "" +"# Import smtplib for the actual sending function\n" +"import smtplib\n" +"\n" +"# Import the email modules we'll need\n" +"from email.message import EmailMessage\n" +"\n" +"# Open the plain text file whose name is in textfile for reading.\n" +"with open(textfile) as fp:\n" +" # Create a text/plain message\n" +" msg = EmailMessage()\n" +" msg.set_content(fp.read())\n" +"\n" +"# me == the sender's email address\n" +"# you == the recipient's email address\n" +"msg['Subject'] = f'The contents of {textfile}'\n" +"msg['From'] = me\n" +"msg['To'] = you\n" +"\n" +"# Send the message via our own SMTP server.\n" +"s = smtplib.SMTP('localhost')\n" +"s.send_message(msg)\n" +"s.quit()\n" +msgstr "" + +#: ../../library/email.examples.rst:15 +msgid "" +"Parsing :rfc:`822` headers can easily be done by the using the classes from " +"the :mod:`~email.parser` module:" +msgstr "" + +#: ../../library/email.examples.rst:18 +msgid "" +"# Import the email modules we'll need\n" +"#from email.parser import BytesParser\n" +"from email.parser import Parser\n" +"from email.policy import default\n" +"\n" +"# If the e-mail headers are in a file, uncomment these two lines:\n" +"# with open(messagefile, 'rb') as fp:\n" +"# headers = BytesParser(policy=default).parse(fp)\n" +"\n" +"# Or for parsing headers in a string (this is an uncommon operation), use:\n" +"headers = Parser(policy=default).parsestr(\n" +" 'From: Foo Bar \\n'\n" +" 'To: \\n'\n" +" 'Subject: Test message\\n'\n" +" '\\n'\n" +" 'Body would go here\\n')\n" +"\n" +"# Now the header items can be accessed as a dictionary:\n" +"print('To: {}'.format(headers['to']))\n" +"print('From: {}'.format(headers['from']))\n" +"print('Subject: {}'.format(headers['subject']))\n" +"\n" +"# You can also access the parts of the addresses:\n" +"print('Recipient username: {}'.format(headers['to'].addresses[0].username))\n" +"print('Sender name: {}'.format(headers['from'].addresses[0].display_name))\n" +msgstr "" + +#: ../../library/email.examples.rst:21 +msgid "" +"Here's an example of how to send a MIME message containing a bunch of family " +"pictures that may be residing in a directory:" +msgstr "" + +#: ../../library/email.examples.rst:24 +msgid "" +"# Import smtplib for the actual sending function.\n" +"import smtplib\n" +"\n" +"# Here are the email package modules we'll need.\n" +"from email.message import EmailMessage\n" +"\n" +"# Create the container email message.\n" +"msg = EmailMessage()\n" +"msg['Subject'] = 'Our family reunion'\n" +"# me == the sender's email address\n" +"# family = the list of all recipients' email addresses\n" +"msg['From'] = me\n" +"msg['To'] = ', '.join(family)\n" +"msg.preamble = 'You will not see this in a MIME-aware mail reader.\\n'\n" +"\n" +"# Open the files in binary mode. You can also omit the subtype\n" +"# if you want MIMEImage to guess it.\n" +"for file in pngfiles:\n" +" with open(file, 'rb') as fp:\n" +" img_data = fp.read()\n" +" msg.add_attachment(img_data, maintype='image',\n" +" subtype='png')\n" +"\n" +"# Send the email via our own SMTP server.\n" +"with smtplib.SMTP('localhost') as s:\n" +" s.send_message(msg)\n" +msgstr "" + +#: ../../library/email.examples.rst:27 +msgid "" +"Here's an example of how to send the entire contents of a directory as an " +"email message: [1]_" +msgstr "" + +#: ../../library/email.examples.rst:30 +msgid "" +"#!/usr/bin/env python3\n" +"\n" +"\"\"\"Send the contents of a directory as a MIME message.\"\"\"\n" +"\n" +"import os\n" +"import smtplib\n" +"# For guessing MIME type based on file name extension\n" +"import mimetypes\n" +"\n" +"from argparse import ArgumentParser\n" +"\n" +"from email.message import EmailMessage\n" +"from email.policy import SMTP\n" +"\n" +"\n" +"def main():\n" +" parser = ArgumentParser(description=\"\"\"\\\n" +"Send the contents of a directory as a MIME message.\n" +"Unless the -o option is given, the email is sent by forwarding to your " +"local\n" +"SMTP server, which then does the normal delivery process. Your local " +"machine\n" +"must be running an SMTP server.\n" +"\"\"\")\n" +" parser.add_argument('-d', '--directory',\n" +" help=\"\"\"Mail the contents of the specified " +"directory,\n" +" otherwise use the current directory. Only the " +"regular\n" +" files in the directory are sent, and we don't " +"recurse to\n" +" subdirectories.\"\"\")\n" +" parser.add_argument('-o', '--output',\n" +" metavar='FILE',\n" +" help=\"\"\"Print the composed message to FILE " +"instead of\n" +" sending the message to the SMTP server.\"\"\")\n" +" parser.add_argument('-s', '--sender', required=True,\n" +" help='The value of the From: header (required)')\n" +" parser.add_argument('-r', '--recipient', required=True,\n" +" action='append', metavar='RECIPIENT',\n" +" default=[], dest='recipients',\n" +" help='A To: header value (at least one required)')\n" +" args = parser.parse_args()\n" +" directory = args.directory\n" +" if not directory:\n" +" directory = '.'\n" +" # Create the message\n" +" msg = EmailMessage()\n" +" msg['Subject'] = f'Contents of directory {os.path.abspath(directory)}'\n" +" msg['To'] = ', '.join(args.recipients)\n" +" msg['From'] = args.sender\n" +" msg.preamble = 'You will not see this in a MIME-aware mail reader.\\n'\n" +"\n" +" for filename in os.listdir(directory):\n" +" path = os.path.join(directory, filename)\n" +" if not os.path.isfile(path):\n" +" continue\n" +" # Guess the content type based on the file's extension. Encoding\n" +" # will be ignored, although we should check for simple things like\n" +" # gzip'd or compressed files.\n" +" ctype, encoding = mimetypes.guess_file_type(path)\n" +" if ctype is None or encoding is not None:\n" +" # No guess could be made, or the file is encoded (compressed), " +"so\n" +" # use a generic bag-of-bits type.\n" +" ctype = 'application/octet-stream'\n" +" maintype, subtype = ctype.split('/', 1)\n" +" with open(path, 'rb') as fp:\n" +" msg.add_attachment(fp.read(),\n" +" maintype=maintype,\n" +" subtype=subtype,\n" +" filename=filename)\n" +" # Now send or store the message\n" +" if args.output:\n" +" with open(args.output, 'wb') as fp:\n" +" fp.write(msg.as_bytes(policy=SMTP))\n" +" else:\n" +" with smtplib.SMTP('localhost') as s:\n" +" s.send_message(msg)\n" +"\n" +"\n" +"if __name__ == '__main__':\n" +" main()\n" +msgstr "" + +#: ../../library/email.examples.rst:33 +msgid "" +"Here's an example of how to unpack a MIME message like the one above, into a " +"directory of files:" +msgstr "" + +#: ../../library/email.examples.rst:36 +msgid "" +"#!/usr/bin/env python3\n" +"\n" +"\"\"\"Unpack a MIME message into a directory of files.\"\"\"\n" +"\n" +"import os\n" +"import email\n" +"import mimetypes\n" +"\n" +"from email.policy import default\n" +"\n" +"from argparse import ArgumentParser\n" +"\n" +"\n" +"def main():\n" +" parser = ArgumentParser(description=\"\"\"\\\n" +"Unpack a MIME message into a directory of files.\n" +"\"\"\")\n" +" parser.add_argument('-d', '--directory', required=True,\n" +" help=\"\"\"Unpack the MIME message into the named\n" +" directory, which will be created if it doesn't " +"already\n" +" exist.\"\"\")\n" +" parser.add_argument('msgfile')\n" +" args = parser.parse_args()\n" +"\n" +" with open(args.msgfile, 'rb') as fp:\n" +" msg = email.message_from_binary_file(fp, policy=default)\n" +"\n" +" try:\n" +" os.mkdir(args.directory)\n" +" except FileExistsError:\n" +" pass\n" +"\n" +" counter = 1\n" +" for part in msg.walk():\n" +" # multipart/* are just containers\n" +" if part.get_content_maintype() == 'multipart':\n" +" continue\n" +" # Applications should really sanitize the given filename so that an\n" +" # email message can't be used to overwrite important files\n" +" filename = part.get_filename()\n" +" if not filename:\n" +" ext = mimetypes.guess_extension(part.get_content_type())\n" +" if not ext:\n" +" # Use a generic bag-of-bits extension\n" +" ext = '.bin'\n" +" filename = f'part-{counter:03d}{ext}'\n" +" counter += 1\n" +" with open(os.path.join(args.directory, filename), 'wb') as fp:\n" +" fp.write(part.get_payload(decode=True))\n" +"\n" +"\n" +"if __name__ == '__main__':\n" +" main()\n" +msgstr "" + +#: ../../library/email.examples.rst:39 +msgid "" +"Here's an example of how to create an HTML message with an alternative plain " +"text version. To make things a bit more interesting, we include a related " +"image in the html part, and we save a copy of what we are going to send to " +"disk, as well as sending it." +msgstr "" + +#: ../../library/email.examples.rst:44 +msgid "" +"#!/usr/bin/env python3\n" +"\n" +"import smtplib\n" +"\n" +"from email.message import EmailMessage\n" +"from email.headerregistry import Address\n" +"from email.utils import make_msgid\n" +"\n" +"# Create the base text message.\n" +"msg = EmailMessage()\n" +"msg['Subject'] = \"Pourquoi pas des asperges pour ce midi ?\"\n" +"msg['From'] = Address(\"Pepé Le Pew\", \"pepe\", \"example.com\")\n" +"msg['To'] = (Address(\"Penelope Pussycat\", \"penelope\", \"example.com\"),\n" +" Address(\"Fabrette Pussycat\", \"fabrette\", \"example.com\"))\n" +"msg.set_content(\"\"\"\\\n" +"Salut!\n" +"\n" +"Cette recette [1] sera sûrement un très bon repas.\n" +"\n" +"[1] http://www.yummly.com/recipe/Roasted-Asparagus-Epicurious-203718\n" +"\n" +"--Pepé\n" +"\"\"\")\n" +"\n" +"# Add the html version. This converts the message into a multipart/" +"alternative\n" +"# container, with the original text message as the first part and the new " +"html\n" +"# message as the second part.\n" +"asparagus_cid = make_msgid()\n" +"msg.add_alternative(\"\"\"\\\n" +"\n" +" \n" +" \n" +"

Salut!

\n" +"

Cette\n" +" \n" +" recette\n" +" sera sûrement un très bon repas.\n" +"

\n" +" \n" +" \n" +"\n" +"\"\"\".format(asparagus_cid=asparagus_cid[1:-1]), subtype='html')\n" +"# note that we needed to peel the <> off the msgid for use in the html.\n" +"\n" +"# Now add the related image to the html part.\n" +"with open(\"roasted-asparagus.jpg\", 'rb') as img:\n" +" msg.get_payload()[1].add_related(img.read(), 'image', 'jpeg',\n" +" cid=asparagus_cid)\n" +"\n" +"# Make a local copy of what we are going to send.\n" +"with open('outgoing.msg', 'wb') as f:\n" +" f.write(bytes(msg))\n" +"\n" +"# Send the message via local SMTP server.\n" +"with smtplib.SMTP('localhost') as s:\n" +" s.send_message(msg)\n" +msgstr "" + +#: ../../library/email.examples.rst:47 +msgid "" +"If we were sent the message from the last example, here is one way we could " +"process it:" +msgstr "" + +#: ../../library/email.examples.rst:50 +msgid "" +"import os\n" +"import sys\n" +"import tempfile\n" +"import mimetypes\n" +"import webbrowser\n" +"\n" +"# Import the email modules we'll need\n" +"from email import policy\n" +"from email.parser import BytesParser\n" +"\n" +"\n" +"def magic_html_parser(html_text, partfiles):\n" +" \"\"\"Return safety-sanitized html linked to partfiles.\n" +"\n" +" Rewrite the href=\"cid:....\" attributes to point to the filenames in " +"partfiles.\n" +" Though not trivial, this should be possible using html.parser.\n" +" \"\"\"\n" +" raise NotImplementedError(\"Add the magic needed\")\n" +"\n" +"\n" +"# In a real program you'd get the filename from the arguments.\n" +"with open('outgoing.msg', 'rb') as fp:\n" +" msg = BytesParser(policy=policy.default).parse(fp)\n" +"\n" +"# Now the header items can be accessed as a dictionary, and any non-ASCII " +"will\n" +"# be converted to unicode:\n" +"print('To:', msg['to'])\n" +"print('From:', msg['from'])\n" +"print('Subject:', msg['subject'])\n" +"\n" +"# If we want to print a preview of the message content, we can extract " +"whatever\n" +"# the least formatted payload is and print the first three lines. Of " +"course,\n" +"# if the message has no plain text part printing the first three lines of " +"html\n" +"# is probably useless, but this is just a conceptual example.\n" +"simplest = msg.get_body(preferencelist=('plain', 'html'))\n" +"print()\n" +"print(''.join(simplest.get_content().splitlines(keepends=True)[:3]))\n" +"\n" +"ans = input(\"View full message?\")\n" +"if ans.lower()[0] == 'n':\n" +" sys.exit()\n" +"\n" +"# We can extract the richest alternative in order to display it:\n" +"richest = msg.get_body()\n" +"partfiles = {}\n" +"if richest['content-type'].maintype == 'text':\n" +" if richest['content-type'].subtype == 'plain':\n" +" for line in richest.get_content().splitlines():\n" +" print(line)\n" +" sys.exit()\n" +" elif richest['content-type'].subtype == 'html':\n" +" body = richest\n" +" else:\n" +" print(\"Don't know how to display {}" +"\".format(richest.get_content_type()))\n" +" sys.exit()\n" +"elif richest['content-type'].content_type == 'multipart/related':\n" +" body = richest.get_body(preferencelist=('html'))\n" +" for part in richest.iter_attachments():\n" +" fn = part.get_filename()\n" +" if fn:\n" +" extension = os.path.splitext(part.get_filename())[1]\n" +" else:\n" +" extension = mimetypes.guess_extension(part.get_content_type())\n" +" with tempfile.NamedTemporaryFile(suffix=extension, delete=False) as " +"f:\n" +" f.write(part.get_content())\n" +" # again strip the <> to go from email form of cid to html form.\n" +" partfiles[part['content-id'][1:-1]] = f.name\n" +"else:\n" +" print(\"Don't know how to display {}" +"\".format(richest.get_content_type()))\n" +" sys.exit()\n" +"with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:\n" +" f.write(magic_html_parser(body.get_content(), partfiles))\n" +"webbrowser.open(f.name)\n" +"os.remove(f.name)\n" +"for fn in partfiles.values():\n" +" os.remove(fn)\n" +"\n" +"# Of course, there are lots of email messages that could break this simple\n" +"# minded program, but it will handle the most common ones.\n" +msgstr "" + +#: ../../library/email.examples.rst:52 +msgid "Up to the prompt, the output from the above is:" +msgstr "" + +#: ../../library/email.examples.rst:54 +msgid "" +"To: Penelope Pussycat , Fabrette Pussycat " +"\n" +"From: Pepé Le Pew \n" +"Subject: Pourquoi pas des asperges pour ce midi ?\n" +"\n" +"Salut!\n" +"\n" +"Cette recette [1] sera sûrement un très bon repas." +msgstr "" + +#: ../../library/email.examples.rst:66 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.examples.rst:67 +msgid "" +"Thanks to Matthew Dixon Cowles for the original inspiration and examples." +msgstr "" diff --git a/library/email.generator.po b/library/email.generator.po new file mode 100644 index 0000000..42aae25 --- /dev/null +++ b/library/email.generator.po @@ -0,0 +1,337 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.generator.rst:2 +msgid ":mod:`!email.generator`: Generating MIME documents" +msgstr "" + +#: ../../library/email.generator.rst:7 +msgid "**Source code:** :source:`Lib/email/generator.py`" +msgstr "" + +#: ../../library/email.generator.rst:11 +msgid "" +"One of the most common tasks is to generate the flat (serialized) version of " +"the email message represented by a message object structure. You will need " +"to do this if you want to send your message " +"via :meth:`smtplib.SMTP.sendmail`, or print the message on the console. " +"Taking a message object structure and producing a serialized representation " +"is the job of the generator classes." +msgstr "" + +#: ../../library/email.generator.rst:18 +msgid "" +"As with the :mod:`email.parser` module, you aren't limited to the " +"functionality of the bundled generator; you could write one from scratch " +"yourself. However the bundled generator knows how to generate most email in " +"a standards-compliant way, should handle MIME and non-MIME email messages " +"just fine, and is designed so that the bytes-oriented parsing and generation " +"operations are inverses, assuming the same non-" +"transforming :mod:`~email.policy` is used for both. That is, parsing the " +"serialized byte stream via the :class:`~email.parser.BytesParser` class and " +"then regenerating the serialized byte stream using :class:`BytesGenerator` " +"should produce output identical to the input [#]_. (On the other hand, " +"using the generator on an :class:`~email.message.EmailMessage` constructed " +"by program may result in changes to the :class:`~email.message.EmailMessage` " +"object as defaults are filled in.)" +msgstr "" + +#: ../../library/email.generator.rst:32 +msgid "" +"The :class:`Generator` class can be used to flatten a message into a text " +"(as opposed to binary) serialized representation, but since Unicode cannot " +"represent binary data directly, the message is of necessity transformed into " +"something that contains only ASCII characters, using the standard email RFC " +"Content Transfer Encoding techniques for encoding email messages for " +"transport over channels that are not \"8 bit clean\"." +msgstr "" + +#: ../../library/email.generator.rst:39 +msgid "" +"To accommodate reproducible processing of SMIME-signed " +"messages :class:`Generator` disables header folding for message parts of " +"type ``multipart/signed`` and all subparts." +msgstr "" + +#: ../../library/email.generator.rst:47 +msgid "" +"Return a :class:`BytesGenerator` object that will write any message provided " +"to the :meth:`flatten` method, or any surrogateescape encoded text provided " +"to the :meth:`write` method, to the :term:`file-like object` *outfp*. " +"*outfp* must support a ``write`` method that accepts binary data." +msgstr "" + +#: ../../library/email.generator.rst:52 ../../library/email.generator.rst:153 +msgid "" +"If optional *mangle_from_* is ``True``, put a ``>`` character in front of " +"any line in the body that starts with the exact string ``\"From \"``, that " +"is ``From`` followed by a space at the beginning of a line. *mangle_from_* " +"defaults to the value of the :attr:`~email.policy.Policy.mangle_from_` " +"setting of the *policy* (which is ``True`` for " +"the :data:`~email.policy.compat32` policy and ``False`` for all others). " +"*mangle_from_* is intended for use when messages are stored in Unix mbox " +"format (see :mod:`mailbox` and `WHY THE CONTENT-LENGTH FORMAT IS BAD " +"`_)." +msgstr "" + +#: ../../library/email.generator.rst:62 ../../library/email.generator.rst:163 +msgid "" +"If *maxheaderlen* is not ``None``, refold any header lines that are longer " +"than *maxheaderlen*, or if ``0``, do not rewrap any headers. If " +"*manheaderlen* is ``None`` (the default), wrap headers and other message " +"lines according to the *policy* settings." +msgstr "" + +#: ../../library/email.generator.rst:67 ../../library/email.generator.rst:168 +msgid "" +"If *policy* is specified, use that policy to control message generation. If " +"*policy* is ``None`` (the default), use the policy associated with " +"the :class:`~email.message.Message` or :class:`~email.message.EmailMessage` " +"object passed to ``flatten`` to control the message generation. " +"See :mod:`email.policy` for details on what *policy* controls." +msgstr "" + +#: ../../library/email.generator.rst:75 ../../library/email.generator.rst:174 +msgid "Added the *policy* keyword." +msgstr "" + +#: ../../library/email.generator.rst:77 ../../library/email.generator.rst:176 +msgid "" +"The default behavior of the *mangle_from_* and *maxheaderlen* parameters is " +"to follow the policy." +msgstr "" + +#: ../../library/email.generator.rst:83 +msgid "" +"Print the textual representation of the message object structure rooted at " +"*msg* to the output file specified when the :class:`BytesGenerator` instance " +"was created." +msgstr "" + +#: ../../library/email.generator.rst:87 +msgid "" +"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " +"``8bit`` (the default), copy any headers in the original parsed message that " +"have not been modified to the output with any bytes with the high bit set " +"reproduced as in the original, and preserve the non-" +"ASCII :mailheader:`Content-Transfer-Encoding` of any body parts that have " +"them. If ``cte_type`` is ``7bit``, convert the bytes with the high bit set " +"as needed using an ASCII-compatible :mailheader:`Content-Transfer-Encoding`. " +"That is, transform parts with non-ASCII :mailheader:`Content-Transfer-" +"Encoding` (:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII " +"compatible :mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid " +"non-ASCII bytes in headers using the MIME ``unknown-8bit`` character set, " +"thus rendering them RFC-compliant." +msgstr "" + +#: ../../library/email.generator.rst:104 ../../library/email.generator.rst:197 +msgid "" +"If *unixfrom* is ``True``, print the envelope header delimiter used by the " +"Unix mailbox format (see :mod:`mailbox`) before the first of the :rfc:`5322` " +"headers of the root message object. If the root object has no envelope " +"header, craft a standard one. The default is ``False``. Note that for " +"subparts, no envelope header is ever printed." +msgstr "" + +#: ../../library/email.generator.rst:110 ../../library/email.generator.rst:203 +msgid "" +"If *linesep* is not ``None``, use it as the separator character between all " +"the lines of the flattened message. If *linesep* is ``None`` (the default), " +"use the value specified in the *policy*." +msgstr "" + +#: ../../library/email.generator.rst:119 +msgid "" +"Return an independent clone of this :class:`BytesGenerator` instance with " +"the exact same option settings, and *fp* as the new *outfp*." +msgstr "" + +#: ../../library/email.generator.rst:125 +msgid "" +"Encode *s* using the ``ASCII`` codec and the ``surrogateescape`` error " +"handler, and pass it to the *write* method of the *outfp* passed to " +"the :class:`BytesGenerator`'s constructor." +msgstr "" + +#: ../../library/email.generator.rst:130 +msgid "" +"As a convenience, :class:`~email.message.EmailMessage` provides the " +"methods :meth:`~email.message.EmailMessage.as_bytes` and ``bytes(aMessage)`` " +"(a.k.a. :meth:`~email.message.EmailMessage.__bytes__`), which simplify the " +"generation of a serialized binary representation of a message object. For " +"more detail, see :mod:`email.message`." +msgstr "" + +#: ../../library/email.generator.rst:137 +msgid "" +"Because strings cannot represent binary data, the :class:`Generator` class " +"must convert any binary data in any message it flattens to an ASCII " +"compatible format, by converting them to an ASCII " +"compatible :mailheader:`Content-Transfer_Encoding`. Using the terminology " +"of the email RFCs, you can think of this as :class:`Generator` serializing " +"to an I/O stream that is not \"8 bit clean\". In other words, most " +"applications will want to be using :class:`BytesGenerator`, and " +"not :class:`Generator`." +msgstr "" + +#: ../../library/email.generator.rst:148 +msgid "" +"Return a :class:`Generator` object that will write any message provided to " +"the :meth:`flatten` method, or any text provided to the :meth:`write` " +"method, to the :term:`file-like object` *outfp*. *outfp* must support a " +"``write`` method that accepts string data." +msgstr "" + +#: ../../library/email.generator.rst:182 +msgid "" +"Print the textual representation of the message object structure rooted at " +"*msg* to the output file specified when the :class:`Generator` instance was " +"created." +msgstr "" + +#: ../../library/email.generator.rst:186 +msgid "" +"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " +"``8bit``, generate the message as if the option were set to ``7bit``. (This " +"is required because strings cannot represent non-ASCII bytes.) Convert any " +"bytes with the high bit set as needed using an ASCII-" +"compatible :mailheader:`Content-Transfer-Encoding`. That is, transform " +"parts with non-ASCII :mailheader:`Content-Transfer-Encoding` " +"(:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII " +"compatible :mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid " +"non-ASCII bytes in headers using the MIME ``unknown-8bit`` character set, " +"thus rendering them RFC-compliant." +msgstr "" + +#: ../../library/email.generator.rst:209 +msgid "" +"Added support for re-encoding ``8bit`` message bodies, and the *linesep* " +"argument." +msgstr "" + +#: ../../library/email.generator.rst:216 +msgid "" +"Return an independent clone of this :class:`Generator` instance with the " +"exact same options, and *fp* as the new *outfp*." +msgstr "" + +#: ../../library/email.generator.rst:222 +msgid "" +"Write *s* to the *write* method of the *outfp* passed to " +"the :class:`Generator`'s constructor. This provides just enough file-like " +"API for :class:`Generator` instances to be used in the :func:`print` " +"function." +msgstr "" + +#: ../../library/email.generator.rst:228 +msgid "" +"As a convenience, :class:`~email.message.EmailMessage` provides the " +"methods :meth:`~email.message.EmailMessage.as_string` and ``str(aMessage)`` " +"(a.k.a. :meth:`~email.message.EmailMessage.__str__`), which simplify the " +"generation of a formatted string representation of a message object. For " +"more detail, see :mod:`email.message`." +msgstr "" + +#: ../../library/email.generator.rst:235 +msgid "" +"The :mod:`email.generator` module also provides a derived " +"class, :class:`DecodedGenerator`, which is like the :class:`Generator` base " +"class, except that non-\\ :mimetype:`text` parts are not serialized, but are " +"instead represented in the output stream by a string derived from a template " +"filled in with information about the part." +msgstr "" + +#: ../../library/email.generator.rst:244 +msgid "" +"Act like :class:`Generator`, except that for any subpart of the message " +"passed to :meth:`Generator.flatten`, if the subpart is of main " +"type :mimetype:`text`, print the decoded payload of the subpart, and if the " +"main type is not :mimetype:`text`, instead of printing it fill in the string " +"*fmt* using information from the part and print the resulting filled-in " +"string." +msgstr "" + +#: ../../library/email.generator.rst:251 +msgid "" +"To fill in *fmt*, execute ``fmt % part_info``, where ``part_info`` is a " +"dictionary composed of the following keys and values:" +msgstr "" + +#: ../../library/email.generator.rst:254 +msgid "``type`` -- Full MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../../library/email.generator.rst:256 +msgid "``maintype`` -- Main MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../../library/email.generator.rst:258 +msgid "``subtype`` -- Sub-MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../../library/email.generator.rst:260 +msgid "``filename`` -- Filename of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../../library/email.generator.rst:262 +msgid "" +"``description`` -- Description associated with the non-\\ :mimetype:`text` " +"part" +msgstr "" + +#: ../../library/email.generator.rst:264 +msgid "" +"``encoding`` -- Content transfer encoding of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../../library/email.generator.rst:266 +msgid "If *fmt* is ``None``, use the following default *fmt*:" +msgstr "" + +#: ../../library/email.generator.rst:268 +msgid "" +"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" +msgstr "" + +#: ../../library/email.generator.rst:270 +msgid "" +"Optional *_mangle_from_* and *maxheaderlen* are as with " +"the :class:`Generator` base class." +msgstr "" + +#: ../../library/email.generator.rst:275 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.generator.rst:276 +msgid "" +"This statement assumes that you use the appropriate setting for " +"``unixfrom``, and that there are no :mod:`email.policy` settings calling for " +"automatic adjustments (for " +"example, :attr:`~email.policy.EmailPolicy.refold_source` must be ``none``, " +"which is *not* the default). It is also not 100% true, since if the message " +"does not conform to the RFC standards occasionally information about the " +"exact original text is lost during parsing error recovery. It is a goal to " +"fix these latter edge cases when possible." +msgstr "" diff --git a/library/email.header.po b/library/email.header.po new file mode 100644 index 0000000..fc223a3 --- /dev/null +++ b/library/email.header.po @@ -0,0 +1,336 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.header.rst:2 +msgid ":mod:`!email.header`: Internationalized headers" +msgstr "" + +#: ../../library/email.header.rst:7 +msgid "**Source code:** :source:`Lib/email/header.py`" +msgstr "" + +#: ../../library/email.header.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the current " +"API encoding and decoding of headers is handled transparently by the " +"dictionary-like API of the :class:`~email.message.EmailMessage` class. In " +"addition to uses in legacy code, this module can be useful in applications " +"that need to completely control the character sets used when encoding " +"headers." +msgstr "" + +#: ../../library/email.header.rst:17 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" + +#: ../../library/email.header.rst:19 +msgid "" +":rfc:`2822` is the base standard that describes the format of email " +"messages. It derives from the older :rfc:`822` standard which came into " +"widespread use at a time when most email was composed of ASCII characters " +"only. :rfc:`2822` is a specification written assuming email contains only 7-" +"bit ASCII characters." +msgstr "" + +#: ../../library/email.header.rst:24 +msgid "" +"Of course, as email has been deployed worldwide, it has become " +"internationalized, such that language specific character sets can now be " +"used in email messages. The base standard still requires email messages to " +"be transferred using only 7-bit ASCII characters, so a slew of RFCs have " +"been written describing how to encode email containing non-ASCII characters " +"into :rfc:`2822`\\ -compliant format. These RFCs " +"include :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, and :rfc:`2231`. " +"The :mod:`email` package supports these standards in its :mod:`email.header` " +"and :mod:`email.charset` modules." +msgstr "" + +#: ../../library/email.header.rst:33 +msgid "" +"If you want to include non-ASCII characters in your email headers, say in " +"the :mailheader:`Subject` or :mailheader:`To` fields, you should use " +"the :class:`Header` class and assign the field in " +"the :class:`~email.message.Message` object to an instance of :class:`Header` " +"instead of using a string for the header value. Import the :class:`Header` " +"class from the :mod:`email.header` module. For example::" +msgstr "" + +#: ../../library/email.header.rst:40 +msgid "" +">>> from email.message import Message\n" +">>> from email.header import Header\n" +">>> msg = Message()\n" +">>> h = Header('p\\xf6stal', 'iso-8859-1')\n" +">>> msg['Subject'] = h\n" +">>> msg.as_string()\n" +"'Subject: =?iso-8859-1?q?p=F6stal?=\\n\\n'" +msgstr "" + +#: ../../library/email.header.rst:50 +msgid "" +"Notice here how we wanted the :mailheader:`Subject` field to contain a non-" +"ASCII character? We did this by creating a :class:`Header` instance and " +"passing in the character set that the byte string was encoded in. When the " +"subsequent :class:`~email.message.Message` instance was flattened, " +"the :mailheader:`Subject` field was properly :rfc:`2047` encoded. MIME-" +"aware mail readers would show this header using the embedded ISO-8859-1 " +"character." +msgstr "" + +#: ../../library/email.header.rst:57 +msgid "Here is the :class:`Header` class description:" +msgstr "" + +#: ../../library/email.header.rst:62 +msgid "" +"Create a MIME-compliant header that can contain strings in different " +"character sets." +msgstr "" + +#: ../../library/email.header.rst:65 +msgid "" +"Optional *s* is the initial header value. If ``None`` (the default), the " +"initial header value is not set. You can later append to the header " +"with :meth:`append` method calls. *s* may be an instance of :class:`bytes` " +"or :class:`str`, but see the :meth:`append` documentation for semantics." +msgstr "" + +#: ../../library/email.header.rst:70 +msgid "" +"Optional *charset* serves two purposes: it has the same meaning as the " +"*charset* argument to the :meth:`append` method. It also sets the default " +"character set for all subsequent :meth:`append` calls that omit the " +"*charset* argument. If *charset* is not provided in the constructor (the " +"default), the ``us-ascii`` character set is used both as *s*'s initial " +"charset and as the default for subsequent :meth:`append` calls." +msgstr "" + +#: ../../library/email.header.rst:77 +msgid "" +"The maximum line length can be specified explicitly via *maxlinelen*. For " +"splitting the first line to a shorter value (to account for the field header " +"which isn't included in *s*, e.g. :mailheader:`Subject`) pass in the name of " +"the field in *header_name*. The default *maxlinelen* is 78, and the default " +"value for *header_name* is ``None``, meaning it is not taken into account " +"for the first line of a long, split header." +msgstr "" + +#: ../../library/email.header.rst:84 +msgid "" +"Optional *continuation_ws* must be :rfc:`2822`\\ -compliant folding " +"whitespace, and is usually either a space or a hard tab character. This " +"character will be prepended to continuation lines. *continuation_ws* " +"defaults to a single space character." +msgstr "" + +#: ../../library/email.header.rst:89 +msgid "" +"Optional *errors* is passed straight through to the :meth:`append` method." +msgstr "" + +#: ../../library/email.header.rst:94 +msgid "Append the string *s* to the MIME header." +msgstr "" + +#: ../../library/email.header.rst:96 +msgid "" +"Optional *charset*, if given, should be a :class:`~email.charset.Charset` " +"instance (see :mod:`email.charset`) or the name of a character set, which " +"will be converted to a :class:`~email.charset.Charset` instance. A value of " +"``None`` (the default) means that the *charset* given in the constructor is " +"used." +msgstr "" + +#: ../../library/email.header.rst:102 +msgid "" +"*s* may be an instance of :class:`bytes` or :class:`str`. If it is an " +"instance of :class:`bytes`, then *charset* is the encoding of that byte " +"string, and a :exc:`UnicodeError` will be raised if the string cannot be " +"decoded with that character set." +msgstr "" + +#: ../../library/email.header.rst:107 +msgid "" +"If *s* is an instance of :class:`str`, then *charset* is a hint specifying " +"the character set of the characters in the string." +msgstr "" + +#: ../../library/email.header.rst:110 +msgid "" +"In either case, when producing an :rfc:`2822`\\ -compliant header " +"using :rfc:`2047` rules, the string will be encoded using the output codec " +"of the charset. If the string cannot be encoded using the output codec, a " +"UnicodeError will be raised." +msgstr "" + +#: ../../library/email.header.rst:115 +msgid "" +"Optional *errors* is passed as the errors argument to the decode call if *s* " +"is a byte string." +msgstr "" + +#: ../../library/email.header.rst:121 +msgid "" +"Encode a message header into an RFC-compliant format, possibly wrapping long " +"lines and encapsulating non-ASCII parts in base64 or quoted-printable " +"encodings." +msgstr "" + +#: ../../library/email.header.rst:125 +msgid "" +"Optional *splitchars* is a string containing characters which should be " +"given extra weight by the splitting algorithm during normal header " +"wrapping. This is in very rough support of :RFC:`2822`\\'s 'higher level " +"syntactic breaks': split points preceded by a splitchar are preferred " +"during line splitting, with the characters preferred in the order in which " +"they appear in the string. Space and tab may be included in the string to " +"indicate whether preference should be given to one over the other as a split " +"point when other split chars do not appear in the line being split. " +"Splitchars does not affect :RFC:`2047` encoded lines." +msgstr "" + +#: ../../library/email.header.rst:135 +msgid "" +"*maxlinelen*, if given, overrides the instance's value for the maximum line " +"length." +msgstr "" + +#: ../../library/email.header.rst:138 +msgid "" +"*linesep* specifies the characters used to separate the lines of the folded " +"header. It defaults to the most useful value for Python application code " +"(``\\n``), but ``\\r\\n`` can be specified in order to produce headers with " +"RFC-compliant line separators." +msgstr "" + +#: ../../library/email.header.rst:143 +msgid "Added the *linesep* argument." +msgstr "" + +#: ../../library/email.header.rst:147 +msgid "" +"The :class:`Header` class also provides a number of methods to support " +"standard operators and built-in functions." +msgstr "" + +#: ../../library/email.header.rst:152 +msgid "" +"Returns an approximation of the :class:`Header` as a string, using an " +"unlimited line length. All pieces are converted to unicode using the " +"specified encoding and joined together appropriately. Any pieces with a " +"charset of ``'unknown-8bit'`` are decoded as ASCII using the ``'replace'`` " +"error handler." +msgstr "" + +#: ../../library/email.header.rst:158 +msgid "Added handling for the ``'unknown-8bit'`` charset." +msgstr "" + +#: ../../library/email.header.rst:164 +msgid "" +"This method allows you to compare two :class:`Header` instances for equality." +msgstr "" + +#: ../../library/email.header.rst:170 +msgid "" +"This method allows you to compare two :class:`Header` instances for " +"inequality." +msgstr "" + +#: ../../library/email.header.rst:173 +msgid "" +"The :mod:`email.header` module also provides the following convenient " +"functions." +msgstr "" + +#: ../../library/email.header.rst:178 +msgid "" +"Decode a message header value without converting the character set. The " +"header value is in *header*." +msgstr "" + +#: ../../library/email.header.rst:181 +msgid "For historical reasons, this function may return either:" +msgstr "" + +#: ../../library/email.header.rst:183 +msgid "" +"A list of pairs containing each of the decoded parts of the header, " +"``(decoded_bytes, charset)``, where *decoded_bytes* is always an instance " +"of :class:`bytes`, and *charset* is either:" +msgstr "" + +#: ../../library/email.header.rst:187 +msgid "A lower case string containing the name of the character set specified." +msgstr "" + +#: ../../library/email.header.rst:189 +msgid "``None`` for non-encoded parts of the header." +msgstr "" + +#: ../../library/email.header.rst:191 +msgid "" +"A list of length 1 containing a pair ``(string, None)``, where *string* is " +"always an instance of :class:`str`." +msgstr "" + +#: ../../library/email.header.rst:194 +msgid "" +"An :exc:`email.errors.HeaderParseError` may be raised when certain decoding " +"errors occur (e.g. a base64 decoding exception)." +msgstr "" + +#: ../../library/email.header.rst:197 +msgid "Here are examples:" +msgstr "" + +#: ../../library/email.header.rst:209 +msgid "" +"This function exists for backwards compatibility only. For new code, we " +"recommend using :class:`email.headerregistry.HeaderRegistry`." +msgstr "" + +#: ../../library/email.header.rst:215 +msgid "" +"Create a :class:`Header` instance from a sequence of pairs as returned " +"by :func:`decode_header`." +msgstr "" + +#: ../../library/email.header.rst:218 +msgid "" +":func:`decode_header` takes a header value string and returns a sequence of " +"pairs of the format ``(decoded_string, charset)`` where *charset* is the " +"name of the character set." +msgstr "" + +#: ../../library/email.header.rst:222 +msgid "" +"This function takes one of those sequence of pairs and returns " +"a :class:`Header` instance. Optional *maxlinelen*, *header_name*, and " +"*continuation_ws* are as in the :class:`Header` constructor." +msgstr "" + +#: ../../library/email.header.rst:228 +msgid "" +"This function exists for backwards compatibility only, and is not " +"recommended for use in new code." +msgstr "" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po new file mode 100644 index 0000000..b74eaae --- /dev/null +++ b/library/email.headerregistry.po @@ -0,0 +1,689 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.headerregistry.rst:2 +msgid ":mod:`!email.headerregistry`: Custom Header Objects" +msgstr "" + +#: ../../library/email.headerregistry.rst:10 +msgid "**Source code:** :source:`Lib/email/headerregistry.py`" +msgstr "" + +#: ../../library/email.headerregistry.rst:14 +msgid "[1]_" +msgstr "" + +#: ../../library/email.headerregistry.rst:16 +msgid "" +"Headers are represented by customized subclasses of :class:`str`. The " +"particular class used to represent a given header is determined by " +"the :attr:`~email.policy.EmailPolicy.header_factory` of " +"the :mod:`~email.policy` in effect when the headers are created. This " +"section documents the particular ``header_factory`` implemented by the email " +"package for handling :RFC:`5322` compliant email messages, which not only " +"provides customized header objects for various header types, but also " +"provides an extension mechanism for applications to add their own custom " +"header types." +msgstr "" + +#: ../../library/email.headerregistry.rst:25 +msgid "" +"When using any of the policy objects derived " +"from :data:`~email.policy.EmailPolicy`, all headers are produced " +"by :class:`.HeaderRegistry` and have :class:`.BaseHeader` as their last base " +"class. Each header class has an additional base class that is determined by " +"the type of the header. For example, many headers have the " +"class :class:`.UnstructuredHeader` as their other base class. The " +"specialized second class for a header is determined by the name of the " +"header, using a lookup table stored in the :class:`.HeaderRegistry`. All of " +"this is managed transparently for the typical application program, but " +"interfaces are provided for modifying the default behavior for use by more " +"complex applications." +msgstr "" + +#: ../../library/email.headerregistry.rst:36 +msgid "" +"The sections below first document the header base classes and their " +"attributes, followed by the API for modifying the behavior " +"of :class:`.HeaderRegistry`, and finally the support classes used to " +"represent the data parsed from structured headers." +msgstr "" + +#: ../../library/email.headerregistry.rst:44 +msgid "" +"*name* and *value* are passed to ``BaseHeader`` from " +"the :attr:`~email.policy.EmailPolicy.header_factory` call. The string value " +"of any header object is the *value* fully decoded to unicode." +msgstr "" + +#: ../../library/email.headerregistry.rst:48 +msgid "This base class defines the following read-only properties:" +msgstr "" + +#: ../../library/email.headerregistry.rst:53 +msgid "" +"The name of the header (the portion of the field before the ':'). This is " +"exactly the value passed in " +"the :attr:`~email.policy.EmailPolicy.header_factory` call for *name*; that " +"is, case is preserved." +msgstr "" + +#: ../../library/email.headerregistry.rst:61 +msgid "" +"A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " +"compliance problems found during parsing. The email package tries to be " +"complete about detecting compliance issues. See the :mod:`~email.errors` " +"module for a discussion of the types of defects that may be reported." +msgstr "" + +#: ../../library/email.headerregistry.rst:69 +msgid "" +"The maximum number of headers of this type that can have the same ``name``. " +"A value of ``None`` means unlimited. The ``BaseHeader`` value for this " +"attribute is ``None``; it is expected that specialized header classes will " +"override this value as needed." +msgstr "" + +#: ../../library/email.headerregistry.rst:74 +msgid "" +"``BaseHeader`` also provides the following method, which is called by the " +"email library code and should not in general be called by application " +"programs:" +msgstr "" + +#: ../../library/email.headerregistry.rst:80 +msgid "" +"Return a string containing :attr:`~email.policy.Policy.linesep` characters " +"as required to correctly fold the header according to *policy*. " +"A :attr:`~email.policy.Policy.cte_type` of ``8bit`` will be treated as if it " +"were ``7bit``, since headers may not contain arbitrary binary data. " +"If :attr:`~email.policy.EmailPolicy.utf8` is ``False``, non-ASCII data will " +"be :rfc:`2047` encoded." +msgstr "" + +#: ../../library/email.headerregistry.rst:88 +msgid "" +"``BaseHeader`` by itself cannot be used to create a header object. It " +"defines a protocol that each specialized header cooperates with in order to " +"produce the header object. Specifically, ``BaseHeader`` requires that the " +"specialized class provide a :func:`classmethod` named ``parse``. This " +"method is called as follows::" +msgstr "" + +#: ../../library/email.headerregistry.rst:94 +msgid "parse(string, kwds)" +msgstr "" + +#: ../../library/email.headerregistry.rst:96 +msgid "" +"``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " +"``defects`` is an empty list. The parse method should append any detected " +"defects to this list. On return, the ``kwds`` dictionary *must* contain " +"values for at least the keys ``decoded`` and ``defects``. ``decoded`` " +"should be the string value for the header (that is, the header value fully " +"decoded to unicode). The parse method should assume that *string* may " +"contain content-transfer-encoded parts, but should correctly handle all " +"valid unicode characters as well so that it can parse un-encoded header " +"values." +msgstr "" + +#: ../../library/email.headerregistry.rst:105 +msgid "" +"``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " +"``init`` method. The specialized class only needs to provide an ``init`` " +"method if it wishes to set additional attributes beyond those provided by " +"``BaseHeader`` itself. Such an ``init`` method should look like this::" +msgstr "" + +#: ../../library/email.headerregistry.rst:110 +msgid "" +"def init(self, /, *args, **kw):\n" +" self._myattr = kw.pop('myattr')\n" +" super().init(*args, **kw)" +msgstr "" + +#: ../../library/email.headerregistry.rst:114 +msgid "" +"That is, anything extra that the specialized class puts in to the ``kwds`` " +"dictionary should be removed and handled, and the remaining contents of " +"``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." +msgstr "" + +#: ../../library/email.headerregistry.rst:121 +msgid "" +"An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " +"header that does not have a specified syntax is treated as unstructured. " +"The classic example of an unstructured header is the :mailheader:`Subject` " +"header." +msgstr "" + +#: ../../library/email.headerregistry.rst:126 +msgid "" +"In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " +"ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " +"mechanism for encoding non-ASCII text as ASCII characters within a header " +"value. When a *value* containing encoded words is passed to the " +"constructor, the ``UnstructuredHeader`` parser converts such encoded words " +"into unicode, following the :rfc:`2047` rules for unstructured text. The " +"parser uses heuristics to attempt to decode certain non-compliant encoded " +"words. Defects are registered in such cases, as well as defects for issues " +"such as invalid characters within the encoded words or the non-encoded text." +msgstr "" + +#: ../../library/email.headerregistry.rst:136 +msgid "This header type provides no additional attributes." +msgstr "" + +#: ../../library/email.headerregistry.rst:141 +msgid "" +":rfc:`5322` specifies a very specific format for dates within email headers. " +"The ``DateHeader`` parser recognizes that date format, as well as " +"recognizing a number of variant forms that are sometimes found \"in the " +"wild\"." +msgstr "" + +#: ../../library/email.headerregistry.rst:146 +#: ../../library/email.headerregistry.rst:188 +msgid "This header type provides the following additional attributes:" +msgstr "" + +#: ../../library/email.headerregistry.rst:150 +msgid "" +"If the header value can be recognized as a valid date of one form or " +"another, this attribute will contain a :class:`~datetime.datetime` instance " +"representing that date. If the timezone of the input date is specified as " +"``-0000`` (indicating it is in UTC but contains no information about the " +"source timezone), then :attr:`.datetime` will be a " +"naive :class:`~datetime.datetime`. If a specific timezone offset is found " +"(including ``+0000``), then :attr:`.datetime` will contain an aware " +"``datetime`` that uses :class:`datetime.timezone` to record the timezone " +"offset." +msgstr "" + +#: ../../library/email.headerregistry.rst:160 +msgid "" +"The ``decoded`` value of the header is determined by formatting the " +"``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" +msgstr "" + +#: ../../library/email.headerregistry.rst:163 +msgid "email.utils.format_datetime(self.datetime)" +msgstr "" + +#: ../../library/email.headerregistry.rst:165 +msgid "" +"When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " +"instance. This means, for example, that the following code is valid and " +"does what one would expect::" +msgstr "" + +#: ../../library/email.headerregistry.rst:169 +msgid "msg['Date'] = datetime(2011, 7, 15, 21)" +msgstr "" + +#: ../../library/email.headerregistry.rst:171 +msgid "" +"Because this is a naive ``datetime`` it will be interpreted as a UTC " +"timestamp, and the resulting value will have a timezone of ``-0000``. Much " +"more useful is to use the :func:`~email.utils.localtime` function from " +"the :mod:`~email.utils` module::" +msgstr "" + +#: ../../library/email.headerregistry.rst:176 +msgid "msg['Date'] = utils.localtime()" +msgstr "" + +#: ../../library/email.headerregistry.rst:178 +msgid "" +"This example sets the date header to the current time and date using the " +"current timezone offset." +msgstr "" + +#: ../../library/email.headerregistry.rst:184 +msgid "" +"Address headers are one of the most complex structured header types. The " +"``AddressHeader`` class provides a generic interface to any address header." +msgstr "" + +#: ../../library/email.headerregistry.rst:193 +msgid "" +"A tuple of :class:`.Group` objects encoding the addresses and groups found " +"in the header value. Addresses that are not part of a group are represented " +"in this list as single-address ``Groups`` whose :attr:`~.Group.display_name` " +"is ``None``." +msgstr "" + +#: ../../library/email.headerregistry.rst:201 +msgid "" +"A tuple of :class:`.Address` objects encoding all of the individual " +"addresses from the header value. If the header value contains any groups, " +"the individual addresses from the group are included in the list at the " +"point where the group occurs in the value (that is, the list of addresses is " +"\"flattened\" into a one dimensional list)." +msgstr "" + +#: ../../library/email.headerregistry.rst:207 +msgid "" +"The ``decoded`` value of the header will have all encoded words decoded to " +"unicode. :class:`~encodings.idna` encoded domain names are also decoded to " +"unicode. The ``decoded`` value is set by :ref:`joining ` " +"the :class:`str` value of the elements of the ``groups`` attribute with ``', " +"'``." +msgstr "" + +#: ../../library/email.headerregistry.rst:213 +msgid "" +"A list of :class:`.Address` and :class:`.Group` objects in any combination " +"may be used to set the value of an address header. ``Group`` objects whose " +"``display_name`` is ``None`` will be interpreted as single addresses, which " +"allows an address list to be copied with groups intact by using the list " +"obtained from the ``groups`` attribute of the source header." +msgstr "" + +#: ../../library/email.headerregistry.rst:222 +msgid "" +"A subclass of :class:`.AddressHeader` that adds one additional attribute:" +msgstr "" + +#: ../../library/email.headerregistry.rst:228 +msgid "" +"The single address encoded by the header value. If the header value " +"actually contains more than one address (which would be a violation of the " +"RFC under the default :mod:`~email.policy`), accessing this attribute will " +"result in a :exc:`ValueError`." +msgstr "" + +#: ../../library/email.headerregistry.rst:234 +msgid "" +"Many of the above classes also have a ``Unique`` variant (for example, " +"``UniqueUnstructuredHeader``). The only difference is that in the " +"``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." +msgstr "" + +#: ../../library/email.headerregistry.rst:241 +msgid "" +"There is really only one valid value for the :mailheader:`MIME-Version` " +"header, and that is ``1.0``. For future proofing, this header class " +"supports other valid version numbers. If a version number has a valid value " +"per :rfc:`2045`, then the header object will have non-``None`` values for " +"the following attributes:" +msgstr "" + +#: ../../library/email.headerregistry.rst:249 +msgid "" +"The version number as a string, with any whitespace and/or comments removed." +msgstr "" + +#: ../../library/email.headerregistry.rst:254 +msgid "The major version number as an integer" +msgstr "" + +#: ../../library/email.headerregistry.rst:258 +msgid "The minor version number as an integer" +msgstr "" + +#: ../../library/email.headerregistry.rst:263 +msgid "" +"MIME headers all start with the prefix 'Content-'. Each specific header has " +"a certain value, described under the class for that header. Some can also " +"take a list of supplemental parameters, which have a common format. This " +"class serves as a base for all the MIME headers that take parameters." +msgstr "" + +#: ../../library/email.headerregistry.rst:270 +msgid "A dictionary mapping parameter names to parameter values." +msgstr "" + +#: ../../library/email.headerregistry.rst:275 +msgid "" +"A :class:`ParameterizedMIMEHeader` class that handles " +"the :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.headerregistry.rst:280 +msgid "The content type string, in the form ``maintype/subtype``." +msgstr "" + +#: ../../library/email.headerregistry.rst:289 +msgid "" +"A :class:`ParameterizedMIMEHeader` class that handles " +"the :mailheader:`Content-Disposition` header." +msgstr "" + +#: ../../library/email.headerregistry.rst:294 +msgid "``inline`` and ``attachment`` are the only valid values in common use." +msgstr "" + +#: ../../library/email.headerregistry.rst:299 +msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." +msgstr "" + +#: ../../library/email.headerregistry.rst:303 +msgid "" +"Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " +"See :rfc:`2045` for more information." +msgstr "" + +#: ../../library/email.headerregistry.rst:312 +msgid "" +"This is the factory used by :class:`~email.policy.EmailPolicy` by default. " +"``HeaderRegistry`` builds the class used to create a header instance " +"dynamically, using *base_class* and a specialized class retrieved from a " +"registry that it holds. When a given header name does not appear in the " +"registry, the class specified by *default_class* is used as the specialized " +"class. When *use_default_map* is ``True`` (the default), the standard " +"mapping of header names to classes is copied in to the registry during " +"initialization. *base_class* is always the last class in the generated " +"class's :class:`~type.__bases__` list." +msgstr "" + +#: ../../library/email.headerregistry.rst:322 +msgid "The default mappings are:" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "subject" +msgstr "" + +#: ../../library/email.headerregistry.rst:324 +msgid "UniqueUnstructuredHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "date" +msgstr "" + +#: ../../library/email.headerregistry.rst:325 +#: ../../library/email.headerregistry.rst:327 +msgid "UniqueDateHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-date" +msgstr "" + +#: ../../library/email.headerregistry.rst:326 +msgid "DateHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "orig-date" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "sender" +msgstr "" + +#: ../../library/email.headerregistry.rst:328 +msgid "UniqueSingleAddressHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-sender" +msgstr "" + +#: ../../library/email.headerregistry.rst:329 +msgid "SingleAddressHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "to" +msgstr "" + +#: ../../library/email.headerregistry.rst:330 +#: ../../library/email.headerregistry.rst:332 +#: ../../library/email.headerregistry.rst:334 +#: ../../library/email.headerregistry.rst:336 +#: ../../library/email.headerregistry.rst:338 +msgid "UniqueAddressHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-to" +msgstr "" + +#: ../../library/email.headerregistry.rst:331 +#: ../../library/email.headerregistry.rst:333 +#: ../../library/email.headerregistry.rst:335 +#: ../../library/email.headerregistry.rst:337 +msgid "AddressHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "cc" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-cc" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "bcc" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-bcc" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "from" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "resent-from" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "reply-to" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "mime-version" +msgstr "" + +#: ../../library/email.headerregistry.rst:339 +msgid "MIMEVersionHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "content-type" +msgstr "" + +#: ../../library/email.headerregistry.rst:340 +msgid "ContentTypeHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "content-disposition" +msgstr "" + +#: ../../library/email.headerregistry.rst:341 +msgid "ContentDispositionHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "content-transfer-encoding" +msgstr "" + +#: ../../library/email.headerregistry.rst:342 +msgid "ContentTransferEncodingHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:0 +msgid "message-id" +msgstr "" + +#: ../../library/email.headerregistry.rst:343 +msgid "MessageIDHeader" +msgstr "" + +#: ../../library/email.headerregistry.rst:345 +msgid "``HeaderRegistry`` has the following methods:" +msgstr "" + +#: ../../library/email.headerregistry.rst:350 +msgid "" +"*name* is the name of the header to be mapped. It will be converted to " +"lower case in the registry. *cls* is the specialized class to be used, " +"along with *base_class*, to create the class used to instantiate headers " +"that match *name*." +msgstr "" + +#: ../../library/email.headerregistry.rst:358 +msgid "Construct and return a class to handle creating a *name* header." +msgstr "" + +#: ../../library/email.headerregistry.rst:363 +msgid "" +"Retrieves the specialized header associated with *name* from the registry " +"(using *default_class* if *name* does not appear in the registry) and " +"composes it with *base_class* to produce a class, calls the constructed " +"class's constructor, passing it the same argument list, and finally returns " +"the class instance created thereby." +msgstr "" + +#: ../../library/email.headerregistry.rst:370 +msgid "" +"The following classes are the classes used to represent data parsed from " +"structured headers and can, in general, be used by an application program to " +"construct structured values to assign to specific headers." +msgstr "" + +#: ../../library/email.headerregistry.rst:377 +msgid "" +"The class used to represent an email address. The general form of an " +"address is::" +msgstr "" + +#: ../../library/email.headerregistry.rst:380 +msgid "[display_name] " +msgstr "" + +#: ../../library/email.headerregistry.rst:382 +msgid "or::" +msgstr "" + +#: ../../library/email.headerregistry.rst:384 +msgid "username@domain" +msgstr "" + +#: ../../library/email.headerregistry.rst:386 +msgid "" +"where each part must conform to specific syntax rules spelled out " +"in :rfc:`5322`." +msgstr "" + +#: ../../library/email.headerregistry.rst:389 +msgid "" +"As a convenience *addr_spec* can be specified instead of *username* and " +"*domain*, in which case *username* and *domain* will be parsed from the " +"*addr_spec*. An *addr_spec* must be a properly RFC quoted string; if it is " +"not ``Address`` will raise an error. Unicode characters are allowed and " +"will be property encoded when serialized. However, per the RFCs, unicode is " +"*not* allowed in the username portion of the address." +msgstr "" + +#: ../../library/email.headerregistry.rst:398 +msgid "" +"The display name portion of the address, if any, with all quoting removed. " +"If the address does not have a display name, this attribute will be an empty " +"string." +msgstr "" + +#: ../../library/email.headerregistry.rst:404 +msgid "The ``username`` portion of the address, with all quoting removed." +msgstr "" + +#: ../../library/email.headerregistry.rst:408 +msgid "The ``domain`` portion of the address." +msgstr "" + +#: ../../library/email.headerregistry.rst:412 +msgid "" +"The ``username@domain`` portion of the address, correctly quoted for use as " +"a bare address (the second form shown above). This attribute is not mutable." +msgstr "" + +#: ../../library/email.headerregistry.rst:418 +msgid "" +"The ``str`` value of the object is the address quoted according " +"to :rfc:`5322` rules, but with no Content Transfer Encoding of any non-ASCII " +"characters." +msgstr "" + +#: ../../library/email.headerregistry.rst:422 +msgid "" +"To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " +"``username`` and ``domain`` are both the empty string (or ``None``), then " +"the string value of the ``Address`` is ``<>``." +msgstr "" + +#: ../../library/email.headerregistry.rst:429 +msgid "" +"The class used to represent an address group. The general form of an " +"address group is::" +msgstr "" + +#: ../../library/email.headerregistry.rst:432 +msgid "display_name: [address-list];" +msgstr "" + +#: ../../library/email.headerregistry.rst:434 +msgid "" +"As a convenience for processing lists of addresses that consist of a mixture " +"of groups and single addresses, a ``Group`` may also be used to represent " +"single addresses that are not part of a group by setting *display_name* to " +"``None`` and providing a list of the single address as *addresses*." +msgstr "" + +#: ../../library/email.headerregistry.rst:441 +msgid "" +"The ``display_name`` of the group. If it is ``None`` and there is exactly " +"one ``Address`` in ``addresses``, then the ``Group`` represents a single " +"address that is not in a group." +msgstr "" + +#: ../../library/email.headerregistry.rst:447 +msgid "" +"A possibly empty tuple of :class:`.Address` objects representing the " +"addresses in the group." +msgstr "" + +#: ../../library/email.headerregistry.rst:452 +msgid "" +"The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " +"with no Content Transfer Encoding of any non-ASCII characters. If " +"``display_name`` is none and there is a single ``Address`` in the " +"``addresses`` list, the ``str`` value will be the same as the ``str`` of " +"that single ``Address``." +msgstr "" + +#: ../../library/email.headerregistry.rst:460 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.headerregistry.rst:461 +msgid "" +"Originally added in 3.3 as a :term:`provisional module `" +msgstr "" diff --git a/library/email.iterators.po b/library/email.iterators.po new file mode 100644 index 0000000..1054089 --- /dev/null +++ b/library/email.iterators.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.iterators.rst:2 +msgid ":mod:`!email.iterators`: Iterators" +msgstr "" + +#: ../../library/email.iterators.rst:7 +msgid "**Source code:** :source:`Lib/email/iterators.py`" +msgstr "" + +#: ../../library/email.iterators.rst:11 +msgid "" +"Iterating over a message object tree is fairly easy with " +"the :meth:`Message.walk ` method. " +"The :mod:`email.iterators` module provides some useful higher level " +"iterations over message object trees." +msgstr "" + +#: ../../library/email.iterators.rst:19 +msgid "" +"This iterates over all the payloads in all the subparts of *msg*, returning " +"the string payloads line-by-line. It skips over all the subpart headers, " +"and it skips over any subpart with a payload that isn't a Python string. " +"This is somewhat equivalent to reading the flat text representation of the " +"message from a file using :meth:`~io.TextIOBase.readline`, skipping over all " +"the intervening headers." +msgstr "" + +#: ../../library/email.iterators.rst:26 +msgid "" +"Optional *decode* is passed through to :meth:`Message.get_payload " +"`." +msgstr "" + +#: ../../library/email.iterators.rst:32 +msgid "" +"This iterates over all the subparts of *msg*, returning only those subparts " +"that match the MIME type specified by *maintype* and *subtype*." +msgstr "" + +#: ../../library/email.iterators.rst:35 +msgid "" +"Note that *subtype* is optional; if omitted, then subpart MIME type matching " +"is done only with the main type. *maintype* is optional too; it defaults " +"to :mimetype:`text`." +msgstr "" + +#: ../../library/email.iterators.rst:39 +msgid "" +"Thus, by default :func:`typed_subpart_iterator` returns each subpart that " +"has a MIME type of :mimetype:`text/\\*`." +msgstr "" + +#: ../../library/email.iterators.rst:43 +msgid "" +"The following function has been added as a useful debugging tool. It should " +"*not* be considered part of the supported public interface for the package." +msgstr "" + +#: ../../library/email.iterators.rst:48 +msgid "" +"Prints an indented representation of the content types of the message object " +"structure. For example:" +msgstr "" + +#: ../../library/email.iterators.rst:57 +msgid "" +">>> msg = email.message_from_file(somefile)\n" +">>> _structure(msg)\n" +"multipart/mixed\n" +" text/plain\n" +" text/plain\n" +" multipart/digest\n" +" message/rfc822\n" +" text/plain\n" +" message/rfc822\n" +" text/plain\n" +" message/rfc822\n" +" text/plain\n" +" message/rfc822\n" +" text/plain\n" +" message/rfc822\n" +" text/plain\n" +" text/plain" +msgstr "" + +#: ../../library/email.iterators.rst:81 +msgid "" +"Optional *fp* is a file-like object to print the output to. It must be " +"suitable for Python's :func:`print` function. *level* is used internally. " +"*include_default*, if true, prints the default type as well." +msgstr "" diff --git a/library/email.message.po b/library/email.message.po new file mode 100644 index 0000000..415736c --- /dev/null +++ b/library/email.message.po @@ -0,0 +1,889 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.message.rst:2 +msgid ":mod:`!email.message`: Representing an email message" +msgstr "" + +#: ../../library/email.message.rst:10 +msgid "**Source code:** :source:`Lib/email/message.py`" +msgstr "" + +#: ../../library/email.message.rst:14 +msgid "[1]_" +msgstr "" + +#: ../../library/email.message.rst:16 +msgid "" +"The central class in the :mod:`email` package is the :class:`EmailMessage` " +"class, imported from the :mod:`email.message` module. It is the base class " +"for the :mod:`email` object model. :class:`EmailMessage` provides the core " +"functionality for setting and querying header fields, for accessing message " +"bodies, and for creating or modifying structured messages." +msgstr "" + +#: ../../library/email.message.rst:22 +msgid "" +"An email message consists of *headers* and a *payload* (which is also " +"referred to as the *content*). Headers are :rfc:`5322` or :rfc:`6532` style " +"field names and values, where the field name and value are separated by a " +"colon. The colon is not part of either the field name or the field value. " +"The payload may be a simple text message, or a binary object, or a " +"structured sequence of sub-messages each with their own set of headers and " +"their own payload. The latter type of payload is indicated by the message " +"having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:`message/" +"rfc822`." +msgstr "" + +#: ../../library/email.message.rst:31 +msgid "" +"The conceptual model provided by an :class:`EmailMessage` object is that of " +"an ordered dictionary of headers coupled with a *payload* that represents " +"the :rfc:`5322` body of the message, which might be a list of sub-" +"``EmailMessage`` objects. In addition to the normal dictionary methods for " +"accessing the header names and values, there are methods for accessing " +"specialized information from the headers (for example the MIME content " +"type), for operating on the payload, for generating a serialized version of " +"the message, and for recursively walking over the object tree." +msgstr "" + +#: ../../library/email.message.rst:40 +msgid "" +"The :class:`EmailMessage` dictionary-like interface is indexed by the header " +"names, which must be ASCII values. The values of the dictionary are strings " +"with some extra methods. Headers are stored and returned in case-preserving " +"form, but field names are matched case-insensitively. The keys are ordered, " +"but unlike a real dict, there can be duplicates. Additional methods are " +"provided for working with headers that have duplicate keys." +msgstr "" + +#: ../../library/email.message.rst:47 +msgid "" +"The *payload* is either a string or bytes object, in the case of simple " +"message objects, or a list of :class:`EmailMessage` objects, for MIME " +"container documents such as :mimetype:`multipart/\\*` and :mimetype:`message/" +"rfc822` message objects." +msgstr "" + +#: ../../library/email.message.rst:55 +msgid "" +"If *policy* is specified use the rules it specifies to update and serialize " +"the representation of the message. If *policy* is not set, use " +"the :class:`~email.policy.default` policy, which follows the rules of the " +"email RFCs except for line endings (instead of the RFC mandated ``\\r\\n``, " +"it uses the Python standard ``\\n`` line endings). For more information see " +"the :mod:`~email.policy` documentation." +msgstr "" + +#: ../../library/email.message.rst:64 +msgid "" +"Return the entire message flattened as a string. When optional *unixfrom* " +"is true, the envelope header is included in the returned string. *unixfrom* " +"defaults to ``False``. For backward compatibility with the " +"base :class:`~email.message.Message` class *maxheaderlen* is accepted, but " +"defaults to ``None``, which means that by default the line length is " +"controlled by the :attr:`~email.policy.Policy.max_line_length` of the " +"policy. The *policy* argument may be used to override the default policy " +"obtained from the message instance. This can be used to control some of the " +"formatting produced by the method, since the specified *policy* will be " +"passed to the :class:`~email.generator.Generator`." +msgstr "" + +#: ../../library/email.message.rst:76 ../../library/email.message.rst:114 +msgid "" +"Flattening the message may trigger changes to the :class:`EmailMessage` if " +"defaults need to be filled in to complete the transformation to a string " +"(for example, MIME boundaries may be generated or modified)." +msgstr "" + +#: ../../library/email.message.rst:80 +msgid "" +"Note that this method is provided as a convenience and may not be the most " +"useful way to serialize messages in your application, especially if you are " +"dealing with multiple messages. See :class:`email.generator.Generator` for " +"a more flexible API for serializing messages. Note also that this method is " +"restricted to producing messages serialized as \"7 bit clean\" " +"when :attr:`~email.policy.EmailPolicy.utf8` is ``False``, which is the " +"default." +msgstr "" + +#: ../../library/email.message.rst:88 +msgid "" +"the default behavior when *maxheaderlen* is not specified was changed from " +"defaulting to 0 to defaulting to the value of *max_line_length* from the " +"policy." +msgstr "" + +#: ../../library/email.message.rst:95 +msgid "" +"Equivalent to ``as_string(policy=self.policy.clone(utf8=True))``. Allows " +"``str(msg)`` to produce a string containing the serialized message in a " +"readable format." +msgstr "" + +#: ../../library/email.message.rst:99 +msgid "" +"the method was changed to use ``utf8=True``, thus producing an :rfc:`6531`-" +"like message representation, instead of being a direct alias " +"for :meth:`as_string`." +msgstr "" + +#: ../../library/email.message.rst:106 +msgid "" +"Return the entire message flattened as a bytes object. When optional " +"*unixfrom* is true, the envelope header is included in the returned string. " +"*unixfrom* defaults to ``False``. The *policy* argument may be used to " +"override the default policy obtained from the message instance. This can be " +"used to control some of the formatting produced by the method, since the " +"specified *policy* will be passed to " +"the :class:`~email.generator.BytesGenerator`." +msgstr "" + +#: ../../library/email.message.rst:118 +msgid "" +"Note that this method is provided as a convenience and may not be the most " +"useful way to serialize messages in your application, especially if you are " +"dealing with multiple messages. See :class:`email.generator.BytesGenerator` " +"for a more flexible API for serializing messages." +msgstr "" + +#: ../../library/email.message.rst:127 +msgid "" +"Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a bytes " +"object containing the serialized message." +msgstr "" + +#: ../../library/email.message.rst:133 +msgid "" +"Return ``True`` if the message's payload is a list of sub-" +"\\ :class:`EmailMessage` objects, otherwise return ``False``. " +"When :meth:`is_multipart` returns ``False``, the payload should be a string " +"object (which might be a CTE encoded binary payload). Note " +"that :meth:`is_multipart` returning ``True`` does not necessarily mean that " +"\"msg.get_content_maintype() == 'multipart'\" will return the ``True``. For " +"example, ``is_multipart`` will return ``True`` when " +"the :class:`EmailMessage` is of type ``message/rfc822``." +msgstr "" + +#: ../../library/email.message.rst:145 +msgid "" +"Set the message's envelope header to *unixfrom*, which should be a string. " +"(See :class:`~mailbox.mboxMessage` for a brief description of this header.)" +msgstr "" + +#: ../../library/email.message.rst:152 +msgid "" +"Return the message's envelope header. Defaults to ``None`` if the envelope " +"header was never set." +msgstr "" + +#: ../../library/email.message.rst:156 +msgid "" +"The following methods implement the mapping-like interface for accessing the " +"message's headers. Note that there are some semantic differences between " +"these methods and a normal mapping (i.e. dictionary) interface. For " +"example, in a dictionary there are no duplicate keys, but here there may be " +"duplicate message headers. Also, in dictionaries there is no guaranteed " +"order to the keys returned by :meth:`keys`, but in an :class:`EmailMessage` " +"object, headers are always returned in the order they appeared in the " +"original message, or in which they were added to the message later. Any " +"header deleted and then re-added is always appended to the end of the header " +"list." +msgstr "" + +#: ../../library/email.message.rst:167 +msgid "" +"These semantic differences are intentional and are biased toward convenience " +"in the most common use cases." +msgstr "" + +#: ../../library/email.message.rst:170 +msgid "" +"Note that in all cases, any envelope header present in the message is not " +"included in the mapping interface." +msgstr "" + +#: ../../library/email.message.rst:176 +msgid "Return the total number of headers, including duplicates." +msgstr "" + +#: ../../library/email.message.rst:181 +msgid "" +"Return ``True`` if the message object has a field named *name*. Matching is " +"done without regard to case and *name* does not include the trailing colon. " +"Used for the ``in`` operator. For example::" +msgstr "" + +#: ../../library/email.message.rst:185 +msgid "" +"if 'message-id' in myMessage:\n" +" print('Message-ID:', myMessage['message-id'])" +msgstr "" + +#: ../../library/email.message.rst:191 +msgid "" +"Return the value of the named header field. *name* does not include the " +"colon field separator. If the header is missing, ``None`` is returned; " +"a :exc:`KeyError` is never raised." +msgstr "" + +#: ../../library/email.message.rst:195 +msgid "" +"Note that if the named field appears more than once in the message's " +"headers, exactly which of those field values will be returned is undefined. " +"Use the :meth:`get_all` method to get the values of all the extant headers " +"named *name*." +msgstr "" + +#: ../../library/email.message.rst:200 +msgid "" +"Using the standard (non-``compat32``) policies, the returned value is an " +"instance of a subclass of :class:`email.headerregistry.BaseHeader`." +msgstr "" + +#: ../../library/email.message.rst:206 +msgid "" +"Add a header to the message with field name *name* and value *val*. The " +"field is appended to the end of the message's existing headers." +msgstr "" + +#: ../../library/email.message.rst:209 +msgid "" +"Note that this does *not* overwrite or delete any existing header with the " +"same name. If you want to ensure that the new header is the only one " +"present in the message with field name *name*, delete the field first, e.g.::" +msgstr "" + +#: ../../library/email.message.rst:213 +msgid "" +"del msg['subject']\n" +"msg['subject'] = 'Python roolz!'" +msgstr "" + +#: ../../library/email.message.rst:216 +msgid "" +"If the :mod:`policy ` defines certain headers to be unique (as " +"the standard policies do), this method may raise a :exc:`ValueError` when an " +"attempt is made to assign a value to such a header when one already exists. " +"This behavior is intentional for consistency's sake, but do not depend on it " +"as we may choose to make such assignments do an automatic deletion of the " +"existing header in the future." +msgstr "" + +#: ../../library/email.message.rst:226 +msgid "" +"Delete all occurrences of the field with name *name* from the message's " +"headers. No exception is raised if the named field isn't present in the " +"headers." +msgstr "" + +#: ../../library/email.message.rst:233 +msgid "Return a list of all the message's header field names." +msgstr "" + +#: ../../library/email.message.rst:238 +msgid "Return a list of all the message's field values." +msgstr "" + +#: ../../library/email.message.rst:243 +msgid "" +"Return a list of 2-tuples containing all the message's field headers and " +"values." +msgstr "" + +#: ../../library/email.message.rst:249 +msgid "" +"Return the value of the named header field. This is identical " +"to :meth:`~object.__getitem__` except that optional *failobj* is returned if " +"the named header is missing (*failobj* defaults to ``None``)." +msgstr "" + +#: ../../library/email.message.rst:254 +msgid "Here are some additional useful header related methods:" +msgstr "" + +#: ../../library/email.message.rst:259 +msgid "" +"Return a list of all the values for the field named *name*. If there are no " +"such named headers in the message, *failobj* is returned (defaults to " +"``None``)." +msgstr "" + +#: ../../library/email.message.rst:266 +msgid "" +"Extended header setting. This method is similar to :meth:`__setitem__` " +"except that additional header parameters can be provided as keyword " +"arguments. *_name* is the header field to add and *_value* is the *primary* " +"value for the header." +msgstr "" + +#: ../../library/email.message.rst:271 +msgid "" +"For each item in the keyword argument dictionary *_params*, the key is taken " +"as the parameter name, with underscores converted to dashes (since dashes " +"are illegal in Python identifiers). Normally, the parameter will be added " +"as ``key=\"value\"`` unless the value is ``None``, in which case only the " +"key will be added." +msgstr "" + +#: ../../library/email.message.rst:277 +msgid "" +"If the value contains non-ASCII characters, the charset and language may be " +"explicitly controlled by specifying the value as a three tuple in the format " +"``(CHARSET, LANGUAGE, VALUE)``, where ``CHARSET`` is a string naming the " +"charset to be used to encode the value, ``LANGUAGE`` can usually be set to " +"``None`` or the empty string (see :rfc:`2231` for other possibilities), and " +"``VALUE`` is the string value containing non-ASCII code points. If a three " +"tuple is not passed and the value contains non-ASCII characters, it is " +"automatically encoded in :rfc:`2231` format using a ``CHARSET`` of ``utf-8`` " +"and a ``LANGUAGE`` of ``None``." +msgstr "" + +#: ../../library/email.message.rst:287 +msgid "Here is an example::" +msgstr "" + +#: ../../library/email.message.rst:289 +msgid "msg.add_header('Content-Disposition', 'attachment', filename='bud.gif')" +msgstr "" + +#: ../../library/email.message.rst:291 +msgid "This will add a header that looks like ::" +msgstr "" + +#: ../../library/email.message.rst:293 +msgid "Content-Disposition: attachment; filename=\"bud.gif\"" +msgstr "" + +#: ../../library/email.message.rst:295 +msgid "An example of the extended interface with non-ASCII characters::" +msgstr "" + +#: ../../library/email.message.rst:297 +msgid "" +"msg.add_header('Content-Disposition', 'attachment',\n" +" filename=('iso-8859-1', '', 'Fußballer.ppt'))" +msgstr "" + +#: ../../library/email.message.rst:303 +msgid "" +"Replace a header. Replace the first header found in the message that " +"matches *_name*, retaining header order and field name case of the original " +"header. If no matching header is found, raise a :exc:`KeyError`." +msgstr "" + +#: ../../library/email.message.rst:311 +msgid "" +"Return the message's content type, coerced to lower case of the " +"form :mimetype:`maintype/subtype`. If there is no :mailheader:`Content-" +"Type` header in the message return the value returned " +"by :meth:`get_default_type`. If the :mailheader:`Content-Type` header is " +"invalid, return ``text/plain``." +msgstr "" + +#: ../../library/email.message.rst:317 +msgid "" +"(According to :rfc:`2045`, messages always have a default " +"type, :meth:`get_content_type` will always return a value. :rfc:`2045` " +"defines a message's default type to be :mimetype:`text/plain` unless it " +"appears inside a :mimetype:`multipart/digest` container, in which case it " +"would be :mimetype:`message/rfc822`. If the :mailheader:`Content-Type` " +"header has an invalid type specification, :rfc:`2045` mandates that the " +"default type be :mimetype:`text/plain`.)" +msgstr "" + +#: ../../library/email.message.rst:328 +msgid "" +"Return the message's main content type. This is the :mimetype:`maintype` " +"part of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../../library/email.message.rst:334 +msgid "" +"Return the message's sub-content type. This is the :mimetype:`subtype` part " +"of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../../library/email.message.rst:340 +msgid "" +"Return the default content type. Most messages have a default content type " +"of :mimetype:`text/plain`, except for messages that are subparts " +"of :mimetype:`multipart/digest` containers. Such subparts have a default " +"content type of :mimetype:`message/rfc822`." +msgstr "" + +#: ../../library/email.message.rst:348 +msgid "" +"Set the default content type. *ctype* should either be :mimetype:`text/" +"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " +"default content type is not stored in the :mailheader:`Content-Type` header, " +"so it only affects the return value of the ``get_content_type`` methods when " +"no :mailheader:`Content-Type` header is present in the message." +msgstr "" + +#: ../../library/email.message.rst:359 +msgid "" +"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " +"already exists in the header, replace its value with *value*. When *header* " +"is ``Content-Type`` (the default) and the header does not yet exist in the " +"message, add it, set its value to :mimetype:`text/plain`, and append the new " +"parameter value. Optional *header* specifies an alternative header " +"to :mailheader:`Content-Type`." +msgstr "" + +#: ../../library/email.message.rst:366 +msgid "" +"If the value contains non-ASCII characters, the charset and language may be " +"explicitly specified using the optional *charset* and *language* " +"parameters. Optional *language* specifies the :rfc:`2231` language, " +"defaulting to the empty string. Both *charset* and *language* should be " +"strings. The default is to use the ``utf8`` *charset* and ``None`` for the " +"*language*." +msgstr "" + +#: ../../library/email.message.rst:373 +msgid "" +"If *replace* is ``False`` (the default) the header is moved to the end of " +"the list of headers. If *replace* is ``True``, the header will be updated " +"in place." +msgstr "" + +#: ../../library/email.message.rst:377 ../../library/email.message.rst:394 +msgid "" +"Use of the *requote* parameter with :class:`EmailMessage` objects is " +"deprecated." +msgstr "" + +#: ../../library/email.message.rst:380 +msgid "" +"Note that existing parameter values of headers may be accessed through " +"the :attr:`~email.headerregistry.ParameterizedMIMEHeader.params` attribute " +"of the header value (for example, ``msg['Content-Type'].params['charset']``)." +msgstr "" + +#: ../../library/email.message.rst:384 +msgid "``replace`` keyword was added." +msgstr "" + +#: ../../library/email.message.rst:389 +msgid "" +"Remove the given parameter completely from the :mailheader:`Content-Type` " +"header. The header will be re-written in place without the parameter or its " +"value. Optional *header* specifies an alternative to :mailheader:`Content-" +"Type`." +msgstr "" + +#: ../../library/email.message.rst:400 +msgid "" +"Return the value of the ``filename`` parameter of the :mailheader:`Content-" +"Disposition` header of the message. If the header does not have a " +"``filename`` parameter, this method falls back to looking for the ``name`` " +"parameter on the :mailheader:`Content-Type` header. If neither is found, or " +"the header is missing, then *failobj* is returned. The returned string will " +"always be unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../../library/email.message.rst:411 +msgid "" +"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" +"Type` header of the message, or *failobj* if either the header is missing, " +"or has no ``boundary`` parameter. The returned string will always be " +"unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../../library/email.message.rst:419 +msgid "" +"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " +"*boundary*. :meth:`set_boundary` will always quote *boundary* if " +"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " +"object has no :mailheader:`Content-Type` header." +msgstr "" + +#: ../../library/email.message.rst:424 +msgid "" +"Note that using this method is subtly different from deleting the " +"old :mailheader:`Content-Type` header and adding a new one with the new " +"boundary via :meth:`add_header`, because :meth:`set_boundary` preserves the " +"order of the :mailheader:`Content-Type` header in the list of headers." +msgstr "" + +#: ../../library/email.message.rst:433 +msgid "" +"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " +"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " +"if that header has no ``charset`` parameter, *failobj* is returned." +msgstr "" + +#: ../../library/email.message.rst:440 +msgid "" +"Return a list containing the character set names in the message. If the " +"message is a :mimetype:`multipart`, then the list will contain one element " +"for each subpart in the payload, otherwise, it will be a list of length 1." +msgstr "" + +#: ../../library/email.message.rst:444 +msgid "" +"Each item in the list will be a string which is the value of the ``charset`` " +"parameter in the :mailheader:`Content-Type` header for the represented " +"subpart. If the subpart has no :mailheader:`Content-Type` header, no " +"``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " +"then that item in the returned list will be *failobj*." +msgstr "" + +#: ../../library/email.message.rst:453 +msgid "" +"Return ``True`` if there is a :mailheader:`Content-Disposition` header and " +"its (case insensitive) value is ``attachment``, ``False`` otherwise." +msgstr "" + +#: ../../library/email.message.rst:456 +msgid "" +"is_attachment is now a method instead of a property, for consistency " +"with :meth:`~email.message.Message.is_multipart`." +msgstr "" + +#: ../../library/email.message.rst:463 +msgid "" +"Return the lowercased value (without parameters) of the " +"message's :mailheader:`Content-Disposition` header if it has one, or " +"``None``. The possible values for this method are *inline*, *attachment* or " +"``None`` if the message follows :rfc:`2183`." +msgstr "" + +#: ../../library/email.message.rst:471 +msgid "" +"The following methods relate to interrogating and manipulating the content " +"(payload) of the message." +msgstr "" + +#: ../../library/email.message.rst:477 +msgid "" +"The :meth:`walk` method is an all-purpose generator which can be used to " +"iterate over all the parts and subparts of a message object tree, in depth-" +"first traversal order. You will typically use :meth:`walk` as the iterator " +"in a ``for`` loop; each iteration returns the next subpart." +msgstr "" + +#: ../../library/email.message.rst:482 +msgid "" +"Here's an example that prints the MIME type of every part of a multipart " +"message structure:" +msgstr "" + +#: ../../library/email.message.rst:491 +msgid "" +">>> for part in msg.walk():\n" +"... print(part.get_content_type())\n" +"multipart/report\n" +"text/plain\n" +"message/delivery-status\n" +"text/plain\n" +"text/plain\n" +"message/rfc822\n" +"text/plain" +msgstr "" + +#: ../../library/email.message.rst:503 +msgid "" +"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " +"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " +"may return ``False``. We can see this in our example by making use of the " +"``_structure`` debug helper function:" +msgstr "" + +#: ../../library/email.message.rst:509 +msgid "" +">>> from email.iterators import _structure\n" +">>> for part in msg.walk():\n" +"... print(part.get_content_maintype() == 'multipart',\n" +"... part.is_multipart())\n" +"True True\n" +"False False\n" +"False True\n" +"False False\n" +"False False\n" +"False True\n" +"False False\n" +">>> _structure(msg)\n" +"multipart/report\n" +" text/plain\n" +" message/delivery-status\n" +" text/plain\n" +" text/plain\n" +" message/rfc822\n" +" text/plain" +msgstr "" + +#: ../../library/email.message.rst:531 +msgid "" +"Here the ``message`` parts are not ``multiparts``, but they do contain " +"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " +"subparts." +msgstr "" + +#: ../../library/email.message.rst:538 +msgid "" +"Return the MIME part that is the best candidate to be the \"body\" of the " +"message." +msgstr "" + +#: ../../library/email.message.rst:541 +msgid "" +"*preferencelist* must be a sequence of strings from the set ``related``, " +"``html``, and ``plain``, and indicates the order of preference for the " +"content type of the part returned." +msgstr "" + +#: ../../library/email.message.rst:545 +msgid "" +"Start looking for candidate matches with the object on which the " +"``get_body`` method is called." +msgstr "" + +#: ../../library/email.message.rst:548 +msgid "" +"If ``related`` is not included in *preferencelist*, consider the root part " +"(or subpart of the root part) of any related encountered as a candidate if " +"the (sub-)part matches a preference." +msgstr "" + +#: ../../library/email.message.rst:552 +msgid "" +"When encountering a ``multipart/related``, check the ``start`` parameter and " +"if a part with a matching :mailheader:`Content-ID` is found, consider only " +"it when looking for candidate matches. Otherwise consider only the first " +"(default root) part of the ``multipart/related``." +msgstr "" + +#: ../../library/email.message.rst:557 +msgid "" +"If a part has a :mailheader:`Content-Disposition` header, only consider the " +"part a candidate match if the value of the header is ``inline``." +msgstr "" + +#: ../../library/email.message.rst:560 +msgid "" +"If none of the candidates matches any of the preferences in " +"*preferencelist*, return ``None``." +msgstr "" + +#: ../../library/email.message.rst:563 +msgid "" +"Notes: (1) For most applications the only *preferencelist* combinations that " +"really make sense are ``('plain',)``, ``('html', 'plain')``, and the default " +"``('related', 'html', 'plain')``. (2) Because matching starts with the " +"object on which ``get_body`` is called, calling ``get_body`` on a " +"``multipart/related`` will return the object itself unless *preferencelist* " +"has a non-default value. (3) Messages (or message parts) that do not specify " +"a :mailheader:`Content-Type` or whose :mailheader:`Content-Type` header is " +"invalid will be treated as if they are of type ``text/plain``, which may " +"occasionally cause ``get_body`` to return unexpected results." +msgstr "" + +#: ../../library/email.message.rst:577 +msgid "" +"Return an iterator over all of the immediate sub-parts of the message that " +"are not candidate \"body\" parts. That is, skip the first occurrence of " +"each of ``text/plain``, ``text/html``, ``multipart/related``, or ``multipart/" +"alternative`` (unless they are explicitly marked as attachments " +"via :mailheader:`Content-Disposition: attachment`), and return all remaining " +"parts. When applied directly to a ``multipart/related``, return an iterator " +"over the all the related parts except the root part (ie: the part pointed to " +"by the ``start`` parameter, or the first part if there is no ``start`` " +"parameter or the ``start`` parameter doesn't match the :mailheader:`Content-" +"ID` of any of the parts). When applied directly to a ``multipart/" +"alternative`` or a non-``multipart``, return an empty iterator." +msgstr "" + +#: ../../library/email.message.rst:593 +msgid "" +"Return an iterator over all of the immediate sub-parts of the message, which " +"will be empty for a non-``multipart``. (See " +"also :meth:`~email.message.EmailMessage.walk`.)" +msgstr "" + +#: ../../library/email.message.rst:600 +msgid "" +"Call the :meth:`~email.contentmanager.ContentManager.get_content` method of " +"the *content_manager*, passing self as the message object, and passing along " +"any other arguments or keywords as additional arguments. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`." +msgstr "" + +#: ../../library/email.message.rst:609 +msgid "" +"Call the :meth:`~email.contentmanager.ContentManager.set_content` method of " +"the *content_manager*, passing self as the message object, and passing along " +"any other arguments or keywords as additional arguments. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`." +msgstr "" + +#: ../../library/email.message.rst:618 +msgid "" +"Convert a non-``multipart`` message into a ``multipart/related`` message, " +"moving any existing :mailheader:`Content-` headers and payload into a (new) " +"first part of the ``multipart``. If *boundary* is specified, use it as the " +"boundary string in the multipart, otherwise leave the boundary to be " +"automatically created when it is needed (for example, when the message is " +"serialized)." +msgstr "" + +#: ../../library/email.message.rst:628 +msgid "" +"Convert a non-``multipart`` or a ``multipart/related`` into a ``multipart/" +"alternative``, moving any existing :mailheader:`Content-` headers and " +"payload into a (new) first part of the ``multipart``. If *boundary* is " +"specified, use it as the boundary string in the multipart, otherwise leave " +"the boundary to be automatically created when it is needed (for example, " +"when the message is serialized)." +msgstr "" + +#: ../../library/email.message.rst:638 +msgid "" +"Convert a non-``multipart``, a ``multipart/related``, or a ``multipart-" +"alternative`` into a ``multipart/mixed``, moving any " +"existing :mailheader:`Content-` headers and payload into a (new) first part " +"of the ``multipart``. If *boundary* is specified, use it as the boundary " +"string in the multipart, otherwise leave the boundary to be automatically " +"created when it is needed (for example, when the message is serialized)." +msgstr "" + +#: ../../library/email.message.rst:648 +msgid "" +"If the message is a ``multipart/related``, create a new message object, pass " +"all of the arguments to its :meth:`set_content` method, " +"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " +"message is a non-``multipart``, call :meth:`make_related` and then proceed " +"as above. If the message is any other type of ``multipart``, raise " +"a :exc:`TypeError`. If *content_manager* is not specified, use the " +"``content_manager`` specified by the current :mod:`~email.policy`. If the " +"added part has no :mailheader:`Content-Disposition` header, add one with the " +"value ``inline``." +msgstr "" + +#: ../../library/email.message.rst:661 +msgid "" +"If the message is a ``multipart/alternative``, create a new message object, " +"pass all of the arguments to its :meth:`set_content` method, " +"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " +"message is a non-``multipart`` or ``multipart/related``, " +"call :meth:`make_alternative` and then proceed as above. If the message is " +"any other type of ``multipart``, raise a :exc:`TypeError`. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`." +msgstr "" + +#: ../../library/email.message.rst:673 +msgid "" +"If the message is a ``multipart/mixed``, create a new message object, pass " +"all of the arguments to its :meth:`set_content` method, " +"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " +"message is a non-``multipart``, ``multipart/related``, or ``multipart/" +"alternative``, call :meth:`make_mixed` and then proceed as above. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`. If the added part has " +"no :mailheader:`Content-Disposition` header, add one with the value " +"``attachment``. This method can be used both for explicit attachments " +"(:mailheader:`Content-Disposition: attachment`) and ``inline`` attachments " +"(:mailheader:`Content-Disposition: inline`), by passing appropriate options " +"to the ``content_manager``." +msgstr "" + +#: ../../library/email.message.rst:689 +msgid "Remove the payload and all of the headers." +msgstr "" + +#: ../../library/email.message.rst:694 +msgid "" +"Remove the payload and all of the :mailheader:`!Content-` headers, leaving " +"all other headers intact and in their original order." +msgstr "" + +#: ../../library/email.message.rst:698 +msgid ":class:`EmailMessage` objects have the following instance attributes:" +msgstr "" + +#: ../../library/email.message.rst:703 +msgid "" +"The format of a MIME document allows for some text between the blank line " +"following the headers, and the first multipart boundary string. Normally, " +"this text is never visible in a MIME-aware mail reader because it falls " +"outside the standard MIME armor. However, when viewing the raw text of the " +"message, or when viewing the message in a non-MIME aware reader, this text " +"can become visible." +msgstr "" + +#: ../../library/email.message.rst:710 +msgid "" +"The *preamble* attribute contains this leading extra-armor text for MIME " +"documents. When the :class:`~email.parser.Parser` discovers some text after " +"the headers but before the first boundary string, it assigns this text to " +"the message's *preamble* attribute. When " +"the :class:`~email.generator.Generator` is writing out the plain text " +"representation of a MIME message, and it finds the message has a *preamble* " +"attribute, it will write this text in the area between the headers and the " +"first boundary. See :mod:`email.parser` and :mod:`email.generator` for " +"details." +msgstr "" + +#: ../../library/email.message.rst:720 +msgid "" +"Note that if the message object has no preamble, the *preamble* attribute " +"will be ``None``." +msgstr "" + +#: ../../library/email.message.rst:726 +msgid "" +"The *epilogue* attribute acts the same way as the *preamble* attribute, " +"except that it contains text that appears between the last boundary and the " +"end of the message. As with the :attr:`~EmailMessage.preamble`, if there is " +"no epilog text this attribute will be ``None``." +msgstr "" + +#: ../../library/email.message.rst:734 +msgid "" +"The *defects* attribute contains a list of all the problems found when " +"parsing this message. See :mod:`email.errors` for a detailed description of " +"the possible parsing defects." +msgstr "" + +#: ../../library/email.message.rst:741 +msgid "" +"This class represents a subpart of a MIME message. It is identical " +"to :class:`EmailMessage`, except that no :mailheader:`MIME-Version` headers " +"are added when :meth:`~EmailMessage.set_content` is called, since sub-parts " +"do not need their own :mailheader:`MIME-Version` headers." +msgstr "" + +#: ../../library/email.message.rst:748 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.message.rst:749 +msgid "" +"Originally added in 3.4 as a :term:`provisional module `. Docs for legacy message class moved to :ref:`compat32_message`." +msgstr "" diff --git a/library/email.mime.po b/library/email.mime.po new file mode 100644 index 0000000..fc9a4b7 --- /dev/null +++ b/library/email.mime.po @@ -0,0 +1,310 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.mime.rst:2 +msgid ":mod:`!email.mime`: Creating email and MIME objects from scratch" +msgstr "" + +#: ../../library/email.mime.rst:7 +msgid "**Source code:** :source:`Lib/email/mime/`" +msgstr "" + +#: ../../library/email.mime.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. Its " +"functionality is partially replaced by the :mod:`~email.contentmanager` in " +"the new API, but in certain applications these classes may still be useful, " +"even in non-legacy code." +msgstr "" + +#: ../../library/email.mime.rst:16 +msgid "" +"Ordinarily, you get a message object structure by passing a file or some " +"text to a parser, which parses the text and returns the root message " +"object. However you can also build a complete message structure from " +"scratch, or even individual :class:`~email.message.Message` objects by " +"hand. In fact, you can also take an existing structure and add " +"new :class:`~email.message.Message` objects, move them around, etc. This " +"makes a very convenient interface for slicing-and-dicing MIME messages." +msgstr "" + +#: ../../library/email.mime.rst:24 +msgid "" +"You can create a new object structure by " +"creating :class:`~email.message.Message` instances, adding attachments and " +"all the appropriate headers manually. For MIME messages though, " +"the :mod:`email` package provides some convenient subclasses to make things " +"easier." +msgstr "" + +#: ../../library/email.mime.rst:29 +msgid "Here are the classes:" +msgstr "" + +#: ../../library/email.mime.rst:35 +msgid "Module: :mod:`email.mime.base`" +msgstr "" + +#: ../../library/email.mime.rst:37 +msgid "" +"This is the base class for all the MIME-specific subclasses " +"of :class:`~email.message.Message`. Ordinarily you won't create instances " +"specifically of :class:`MIMEBase`, although you could. :class:`MIMEBase` is " +"provided primarily as a convenient base class for more specific MIME-aware " +"subclasses." +msgstr "" + +#: ../../library/email.mime.rst:43 +msgid "" +"*_maintype* is the :mailheader:`Content-Type` major type " +"(e.g. :mimetype:`text` or :mimetype:`image`), and *_subtype* is " +"the :mailheader:`Content-Type` minor type (e.g. :mimetype:`plain` " +"or :mimetype:`gif`). *_params* is a parameter key/value dictionary and is " +"passed directly to :meth:`Message.add_header " +"`." +msgstr "" + +#: ../../library/email.mime.rst:49 +msgid "" +"If *policy* is specified, (defaults to the :class:`compat32 " +"` policy) it will be passed " +"to :class:`~email.message.Message`." +msgstr "" + +#: ../../library/email.mime.rst:53 +msgid "" +"The :class:`MIMEBase` class always adds a :mailheader:`Content-Type` header " +"(based on *_maintype*, *_subtype*, and *_params*), and a :mailheader:`MIME-" +"Version` header (always set to ``1.0``)." +msgstr "" + +#: ../../library/email.mime.rst:57 ../../library/email.mime.rst:104 +#: ../../library/email.mime.rst:135 ../../library/email.mime.rst:169 +#: ../../library/email.mime.rst:205 ../../library/email.mime.rst:225 +#: ../../library/email.mime.rst:259 +msgid "Added *policy* keyword-only parameter." +msgstr "" + +#: ../../library/email.mime.rst:65 +msgid "Module: :mod:`email.mime.nonmultipart`" +msgstr "" + +#: ../../library/email.mime.rst:67 +msgid "" +"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " +"base class for MIME messages that are not :mimetype:`multipart`. The " +"primary purpose of this class is to prevent the use of " +"the :meth:`~email.message.Message.attach` method, which only makes sense " +"for :mimetype:`multipart` messages. " +"If :meth:`~email.message.Message.attach` is called, " +"a :exc:`~email.errors.MultipartConversionError` exception is raised." +msgstr "" + +#: ../../library/email.mime.rst:80 +msgid "Module: :mod:`email.mime.multipart`" +msgstr "" + +#: ../../library/email.mime.rst:82 +msgid "" +"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " +"base class for MIME messages that are :mimetype:`multipart`. Optional " +"*_subtype* defaults to :mimetype:`mixed`, but can be used to specify the " +"subtype of the message. A :mailheader:`Content-Type` header " +"of :mimetype:`multipart/_subtype` will be added to the message object. " +"A :mailheader:`MIME-Version` header will also be added." +msgstr "" + +#: ../../library/email.mime.rst:89 +msgid "" +"Optional *boundary* is the multipart boundary string. When ``None`` (the " +"default), the boundary is calculated when needed (for example, when the " +"message is serialized)." +msgstr "" + +#: ../../library/email.mime.rst:93 +msgid "" +"*_subparts* is a sequence of initial subparts for the payload. It must be " +"possible to convert this sequence to a list. You can always attach new " +"subparts to the message by using the :meth:`Message.attach " +"` method." +msgstr "" + +#: ../../library/email.mime.rst:98 ../../library/email.mime.rst:131 +#: ../../library/email.mime.rst:165 ../../library/email.mime.rst:200 +#: ../../library/email.mime.rst:223 ../../library/email.mime.rst:254 +msgid "" +"Optional *policy* argument defaults to :class:`compat32 " +"`." +msgstr "" + +#: ../../library/email.mime.rst:100 +msgid "" +"Additional parameters for the :mailheader:`Content-Type` header are taken " +"from the keyword arguments, or passed into the *_params* argument, which is " +"a keyword dictionary." +msgstr "" + +#: ../../library/email.mime.rst:113 +msgid "Module: :mod:`email.mime.application`" +msgstr "" + +#: ../../library/email.mime.rst:115 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " +"the :class:`MIMEApplication` class is used to represent MIME message objects " +"of major type :mimetype:`application`. *_data* contains the bytes for the " +"raw application data. Optional *_subtype* specifies the MIME subtype and " +"defaults to :mimetype:`octet-stream`." +msgstr "" + +#: ../../library/email.mime.rst:121 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the data for transport. This callable takes one " +"argument, which is the :class:`MIMEApplication` instance. It should " +"use :meth:`~email.message.Message.get_payload` " +"and :meth:`~email.message.Message.set_payload` to change the payload to " +"encoded form. It should also add any :mailheader:`Content-Transfer-" +"Encoding` or other headers to the message object as necessary. The default " +"encoding is base64. See the :mod:`email.encoders` module for a list of the " +"built-in encoders." +msgstr "" + +#: ../../library/email.mime.rst:133 ../../library/email.mime.rst:167 +msgid "*_params* are passed straight through to the base class constructor." +msgstr "" + +#: ../../library/email.mime.rst:144 +msgid "Module: :mod:`email.mime.audio`" +msgstr "" + +#: ../../library/email.mime.rst:146 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " +"the :class:`MIMEAudio` class is used to create MIME message objects of major " +"type :mimetype:`audio`. *_audiodata* contains the bytes for the raw audio " +"data. If this data can be decoded as au, wav, aiff, or aifc, then the " +"subtype will be automatically included in the :mailheader:`Content-Type` " +"header. Otherwise you can explicitly specify the audio subtype via the " +"*_subtype* argument. If the minor type could not be guessed and *_subtype* " +"was not given, then :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/email.mime.rst:155 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the audio data for transport. This callable takes one " +"argument, which is the :class:`MIMEAudio` instance. It should " +"use :meth:`~email.message.Message.get_payload` " +"and :meth:`~email.message.Message.set_payload` to change the payload to " +"encoded form. It should also add any :mailheader:`Content-Transfer-" +"Encoding` or other headers to the message object as necessary. The default " +"encoding is base64. See the :mod:`email.encoders` module for a list of the " +"built-in encoders." +msgstr "" + +#: ../../library/email.mime.rst:178 +msgid "Module: :mod:`email.mime.image`" +msgstr "" + +#: ../../library/email.mime.rst:180 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " +"the :class:`MIMEImage` class is used to create MIME message objects of major " +"type :mimetype:`image`. *_imagedata* contains the bytes for the raw image " +"data. If this data type can be detected (jpeg, png, gif, tiff, rgb, pbm, " +"pgm, ppm, rast, xbm, bmp, webp, and exr attempted), then the subtype will be " +"automatically included in the :mailheader:`Content-Type` header. Otherwise " +"you can explicitly specify the image subtype via the *_subtype* argument. If " +"the minor type could not be guessed and *_subtype* was not given, " +"then :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/email.mime.rst:190 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the image data for transport. This callable takes one " +"argument, which is the :class:`MIMEImage` instance. It should " +"use :meth:`~email.message.Message.get_payload` " +"and :meth:`~email.message.Message.set_payload` to change the payload to " +"encoded form. It should also add any :mailheader:`Content-Transfer-" +"Encoding` or other headers to the message object as necessary. The default " +"encoding is base64. See the :mod:`email.encoders` module for a list of the " +"built-in encoders." +msgstr "" + +#: ../../library/email.mime.rst:202 +msgid "" +"*_params* are passed straight through to " +"the :class:`~email.mime.base.MIMEBase` constructor." +msgstr "" + +#: ../../library/email.mime.rst:212 +msgid "Module: :mod:`email.mime.message`" +msgstr "" + +#: ../../library/email.mime.rst:214 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " +"the :class:`MIMEMessage` class is used to create MIME objects of main " +"type :mimetype:`message`. *_msg* is used as the payload, and must be an " +"instance of class :class:`~email.message.Message` (or a subclass thereof), " +"otherwise a :exc:`TypeError` is raised." +msgstr "" + +#: ../../library/email.mime.rst:220 +msgid "" +"Optional *_subtype* sets the subtype of the message; it defaults " +"to :mimetype:`rfc822`." +msgstr "" + +#: ../../library/email.mime.rst:232 +msgid "Module: :mod:`email.mime.text`" +msgstr "" + +#: ../../library/email.mime.rst:234 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " +"the :class:`MIMEText` class is used to create MIME objects of major " +"type :mimetype:`text`. *_text* is the string for the payload. *_subtype* is " +"the minor type and defaults to :mimetype:`plain`. *_charset* is the " +"character set of the text and is passed as an argument to " +"the :class:`~email.mime.nonmultipart.MIMENonMultipart` constructor; it " +"defaults to ``us-ascii`` if the string contains only ``ascii`` code points, " +"and ``utf-8`` otherwise. The *_charset* parameter accepts either a string " +"or a :class:`~email.charset.Charset` instance." +msgstr "" + +#: ../../library/email.mime.rst:244 +msgid "" +"Unless the *_charset* argument is explicitly set to ``None``, the MIMEText " +"object created will have both a :mailheader:`Content-Type` header with a " +"``charset`` parameter, and a :mailheader:`Content-Transfer-Encoding` " +"header. This means that a subsequent ``set_payload`` call will not result " +"in an encoded payload, even if a charset is passed in the ``set_payload`` " +"command. You can \"reset\" this behavior by deleting the ``Content-Transfer-" +"Encoding`` header, after which a ``set_payload`` call will automatically " +"encode the new payload (and add a new :mailheader:`Content-Transfer-" +"Encoding` header)." +msgstr "" + +#: ../../library/email.mime.rst:256 +msgid "*_charset* also accepts :class:`~email.charset.Charset` instances." +msgstr "" diff --git a/library/email.parser.po b/library/email.parser.po new file mode 100644 index 0000000..52d7619 --- /dev/null +++ b/library/email.parser.po @@ -0,0 +1,383 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.parser.rst:2 +msgid ":mod:`!email.parser`: Parsing email messages" +msgstr "" + +#: ../../library/email.parser.rst:7 +msgid "**Source code:** :source:`Lib/email/parser.py`" +msgstr "" + +#: ../../library/email.parser.rst:11 +msgid "" +"Message object structures can be created in one of two ways: they can be " +"created from whole cloth by creating an :class:`~email.message.EmailMessage` " +"object, adding headers using the dictionary interface, and adding payload(s) " +"using :meth:`~email.message.EmailMessage.set_content` and related methods, " +"or they can be created by parsing a serialized representation of the email " +"message." +msgstr "" + +#: ../../library/email.parser.rst:18 +msgid "" +"The :mod:`email` package provides a standard parser that understands most " +"email document structures, including MIME documents. You can pass the " +"parser a bytes, string or file object, and the parser will return to you the " +"root :class:`~email.message.EmailMessage` instance of the object structure. " +"For simple, non-MIME messages the payload of this root object will likely be " +"a string containing the text of the message. For MIME messages, the root " +"object will return ``True`` from " +"its :meth:`~email.message.EmailMessage.is_multipart` method, and the " +"subparts can be accessed via the payload manipulation methods, such " +"as :meth:`~email.message.EmailMessage.get_body`, :meth:`~email.message.EmailMessage.iter_parts`, " +"and :meth:`~email.message.EmailMessage.walk`." +msgstr "" + +#: ../../library/email.parser.rst:30 +msgid "" +"There are actually two parser interfaces available for use, " +"the :class:`Parser` API and the incremental :class:`FeedParser` API. " +"The :class:`Parser` API is most useful if you have the entire text of the " +"message in memory, or if the entire message lives in a file on the file " +"system. :class:`FeedParser` is more appropriate when you are reading the " +"message from a stream which might block waiting for more input (such as " +"reading an email message from a socket). The :class:`FeedParser` can " +"consume and parse the message incrementally, and only returns the root " +"object when you close the parser." +msgstr "" + +#: ../../library/email.parser.rst:39 +msgid "" +"Note that the parser can be extended in limited ways, and of course you can " +"implement your own parser completely from scratch. All of the logic that " +"connects the :mod:`email` package's bundled parser and " +"the :class:`~email.message.EmailMessage` class is embodied in " +"the :class:`~email.policy.Policy` class, so a custom parser can create " +"message object trees any way it finds necessary by implementing custom " +"versions of the appropriate :class:`!Policy` methods." +msgstr "" + +#: ../../library/email.parser.rst:49 +msgid "FeedParser API" +msgstr "" + +#: ../../library/email.parser.rst:51 +msgid "" +"The :class:`BytesFeedParser`, imported from the :mod:`email.feedparser` " +"module, provides an API that is conducive to incremental parsing of email " +"messages, such as would be necessary when reading the text of an email " +"message from a source that can block (such as a socket). " +"The :class:`BytesFeedParser` can of course be used to parse an email message " +"fully contained in a :term:`bytes-like object`, string, or file, but " +"the :class:`BytesParser` API may be more convenient for such use cases. The " +"semantics and results of the two parser APIs are identical." +msgstr "" + +#: ../../library/email.parser.rst:60 +msgid "" +"The :class:`BytesFeedParser`'s API is simple; you create an instance, feed " +"it a bunch of bytes until there's no more to feed it, then close the parser " +"to retrieve the root message object. The :class:`BytesFeedParser` is " +"extremely accurate when parsing standards-compliant messages, and it does a " +"very good job of parsing non-compliant messages, providing information about " +"how a message was deemed broken. It will populate a message " +"object's :attr:`~email.message.EmailMessage.defects` attribute with a list " +"of any problems it found in a message. See the :mod:`email.errors` module " +"for the list of defects that it can find." +msgstr "" + +#: ../../library/email.parser.rst:70 +msgid "Here is the API for the :class:`BytesFeedParser`:" +msgstr "" + +#: ../../library/email.parser.rst:75 +msgid "" +"Create a :class:`BytesFeedParser` instance. Optional *_factory* is a no-" +"argument callable; if not specified use " +"the :attr:`~email.policy.Policy.message_factory` from the *policy*. Call " +"*_factory* whenever a new message object is needed." +msgstr "" + +#: ../../library/email.parser.rst:80 +msgid "" +"If *policy* is specified use the rules it specifies to update the " +"representation of the message. If *policy* is not set, use " +"the :class:`compat32 ` policy, which maintains " +"backward compatibility with the Python 3.2 version of the email package and " +"provides :class:`~email.message.Message` as the default factory. All other " +"policies provide :class:`~email.message.EmailMessage` as the default " +"*_factory*. For more information on what else *policy* controls, see " +"the :mod:`~email.policy` documentation." +msgstr "" + +#: ../../library/email.parser.rst:89 ../../library/email.parser.rst:145 +msgid "" +"Note: **The policy keyword should always be specified**; The default will " +"change to :data:`email.policy.default` in a future version of Python." +msgstr "" + +#: ../../library/email.parser.rst:94 ../../library/email.parser.rst:122 +msgid "Added the *policy* keyword." +msgstr "" + +#: ../../library/email.parser.rst:95 +msgid "*_factory* defaults to the policy ``message_factory``." +msgstr "" + +#: ../../library/email.parser.rst:100 +msgid "" +"Feed the parser some more data. *data* should be a :term:`bytes-like " +"object` containing one or more lines. The lines can be partial and the " +"parser will stitch such partial lines together properly. The lines can have " +"any of the three common line endings: carriage return, newline, or carriage " +"return and newline (they can even be mixed)." +msgstr "" + +#: ../../library/email.parser.rst:109 +msgid "" +"Complete the parsing of all previously fed data and return the root message " +"object. It is undefined what happens if :meth:`~feed` is called after this " +"method has been called." +msgstr "" + +#: ../../library/email.parser.rst:116 +msgid "" +"Works like :class:`BytesFeedParser` except that the input to " +"the :meth:`~BytesFeedParser.feed` method must be a string. This is of " +"limited utility, since the only way for such a message to be valid is for it " +"to contain only ASCII text or, if :attr:`~email.policy.EmailPolicy.utf8` is " +"``True``, no binary attachments." +msgstr "" + +#: ../../library/email.parser.rst:126 +msgid "Parser API" +msgstr "" + +#: ../../library/email.parser.rst:128 +msgid "" +"The :class:`BytesParser` class, imported from the :mod:`email.parser` " +"module, provides an API that can be used to parse a message when the " +"complete contents of the message are available in a :term:`bytes-like " +"object` or file. The :mod:`email.parser` module also " +"provides :class:`Parser` for parsing strings, and header-only " +"parsers, :class:`BytesHeaderParser` and :class:`HeaderParser`, which can be " +"used if you're only interested in the headers of the " +"message. :class:`BytesHeaderParser` and :class:`HeaderParser` can be much " +"faster in these situations, since they do not attempt to parse the message " +"body, instead setting the payload to the raw body." +msgstr "" + +#: ../../library/email.parser.rst:141 +msgid "" +"Create a :class:`BytesParser` instance. The *_class* and *policy* arguments " +"have the same meaning and semantics as the *_factory* and *policy* arguments " +"of :class:`BytesFeedParser`." +msgstr "" + +#: ../../library/email.parser.rst:148 +msgid "" +"Removed the *strict* argument that was deprecated in 2.4. Added the " +"*policy* keyword." +msgstr "" + +#: ../../library/email.parser.rst:151 ../../library/email.parser.rst:200 +#: ../../library/email.parser.rst:280 +msgid "*_class* defaults to the policy ``message_factory``." +msgstr "" + +#: ../../library/email.parser.rst:156 +msgid "" +"Read all the data from the binary file-like object *fp*, parse the resulting " +"bytes, and return the message object. *fp* must support both " +"the :meth:`~io.IOBase.readline` and the :meth:`~io.IOBase.read` methods." +msgstr "" + +#: ../../library/email.parser.rst:161 +msgid "" +"The bytes contained in *fp* must be formatted as a block of :rfc:`5322` (or, " +"if :attr:`~email.policy.EmailPolicy.utf8` is ``True``, :rfc:`6532`) style " +"headers and header continuation lines, optionally preceded by an envelope " +"header. The header block is terminated either by the end of the data or by " +"a blank line. Following the header block is the body of the message (which " +"may contain MIME-encoded subparts, including subparts with " +"a :mailheader:`Content-Transfer-Encoding` of ``8bit``)." +msgstr "" + +#: ../../library/email.parser.rst:169 +msgid "" +"Optional *headersonly* is a flag specifying whether to stop parsing after " +"reading the headers or not. The default is ``False``, meaning it parses the " +"entire contents of the file." +msgstr "" + +#: ../../library/email.parser.rst:176 +msgid "" +"Similar to the :meth:`parse` method, except it takes a :term:`bytes-like " +"object` instead of a file-like object. Calling this method on " +"a :term:`bytes-like object` is equivalent to wrapping *bytes* in " +"a :class:`~io.BytesIO` instance first and calling :meth:`parse`." +msgstr "" + +#: ../../library/email.parser.rst:181 ../../library/email.parser.rst:221 +msgid "Optional *headersonly* is as with the :meth:`parse` method." +msgstr "" + +#: ../../library/email.parser.rst:188 +msgid "" +"Exactly like :class:`BytesParser`, except that *headersonly* defaults to " +"``True``." +msgstr "" + +#: ../../library/email.parser.rst:196 +msgid "" +"This class is parallel to :class:`BytesParser`, but handles string input." +msgstr "" + +#: ../../library/email.parser.rst:198 ../../library/email.parser.rst:245 +#: ../../library/email.parser.rst:258 ../../library/email.parser.rst:268 +#: ../../library/email.parser.rst:278 +msgid "Removed the *strict* argument. Added the *policy* keyword." +msgstr "" + +#: ../../library/email.parser.rst:205 +msgid "" +"Read all the data from the text-mode file-like object *fp*, parse the " +"resulting text, and return the root message object. *fp* must support both " +"the :meth:`~io.TextIOBase.readline` and the :meth:`~io.TextIOBase.read` " +"methods on file-like objects." +msgstr "" + +#: ../../library/email.parser.rst:210 +msgid "" +"Other than the text mode requirement, this method operates " +"like :meth:`BytesParser.parse`." +msgstr "" + +#: ../../library/email.parser.rst:216 +msgid "" +"Similar to the :meth:`parse` method, except it takes a string object instead " +"of a file-like object. Calling this method on a string is equivalent to " +"wrapping *text* in a :class:`~io.StringIO` instance first and " +"calling :meth:`parse`." +msgstr "" + +#: ../../library/email.parser.rst:226 +msgid "" +"Exactly like :class:`Parser`, except that *headersonly* defaults to ``True``." +msgstr "" + +#: ../../library/email.parser.rst:230 +msgid "" +"Since creating a message object structure from a string or a file object is " +"such a common task, four functions are provided as a convenience. They are " +"available in the top-level :mod:`email` package namespace." +msgstr "" + +#: ../../library/email.parser.rst:239 +msgid "" +"Return a message object structure from a :term:`bytes-like object`. This is " +"equivalent to ``BytesParser().parsebytes(s)``. Optional *_class* and " +"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " +"class constructor." +msgstr "" + +#: ../../library/email.parser.rst:252 +msgid "" +"Return a message object structure tree from an open binary :term:`file " +"object`. This is equivalent to ``BytesParser().parse(fp)``. *_class* and " +"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " +"class constructor." +msgstr "" + +#: ../../library/email.parser.rst:264 +msgid "" +"Return a message object structure from a string. This is equivalent to " +"``Parser().parsestr(s)``. *_class* and *policy* are interpreted as with " +"the :class:`~email.parser.Parser` class constructor." +msgstr "" + +#: ../../library/email.parser.rst:274 +msgid "" +"Return a message object structure tree from an open :term:`file object`. " +"This is equivalent to ``Parser().parse(fp)``. *_class* and *policy* are " +"interpreted as with the :class:`~email.parser.Parser` class constructor." +msgstr "" + +#: ../../library/email.parser.rst:283 +msgid "" +"Here's an example of how you might use :func:`message_from_bytes` at an " +"interactive Python prompt::" +msgstr "" + +#: ../../library/email.parser.rst:286 +msgid "" +">>> import email\n" +">>> msg = email.message_from_bytes(myBytes)" +msgstr "" + +#: ../../library/email.parser.rst:291 +msgid "Additional notes" +msgstr "" + +#: ../../library/email.parser.rst:293 +msgid "Here are some notes on the parsing semantics:" +msgstr "" + +#: ../../library/email.parser.rst:295 +msgid "" +"Most non-\\ :mimetype:`multipart` type messages are parsed as a single " +"message object with a string payload. These objects will return ``False`` " +"for :meth:`~email.message.EmailMessage.is_multipart`, " +"and :meth:`~email.message.EmailMessage.iter_parts` will yield an empty list." +msgstr "" + +#: ../../library/email.parser.rst:300 +msgid "" +"All :mimetype:`multipart` type messages will be parsed as a container " +"message object with a list of sub-message objects for their payload. The " +"outer container message will return ``True`` " +"for :meth:`~email.message.EmailMessage.is_multipart`, " +"and :meth:`~email.message.EmailMessage.iter_parts` will yield a list of " +"subparts." +msgstr "" + +#: ../../library/email.parser.rst:306 +msgid "" +"Most messages with a content type of :mimetype:`message/\\*` (such " +"as :mimetype:`message/delivery-status` and :mimetype:`message/rfc822`) will " +"also be parsed as container object containing a list payload of length 1. " +"Their :meth:`~email.message.EmailMessage.is_multipart` method will return " +"``True``. The single element yielded " +"by :meth:`~email.message.EmailMessage.iter_parts` will be a sub-message " +"object." +msgstr "" + +#: ../../library/email.parser.rst:313 +msgid "" +"Some non-standards-compliant messages may not be internally consistent about " +"their :mimetype:`multipart`\\ -edness. Such messages may have " +"a :mailheader:`Content-Type` header of type :mimetype:`multipart`, but " +"their :meth:`~email.message.EmailMessage.is_multipart` method may return " +"``False``. If such messages were parsed with " +"the :class:`~email.parser.FeedParser`, they will have an instance of " +"the :class:`~email.errors.MultipartInvariantViolationDefect` class in their " +"*defects* attribute list. See :mod:`email.errors` for details." +msgstr "" diff --git a/library/email.po b/library/email.po new file mode 100644 index 0000000..33cb74a --- /dev/null +++ b/library/email.po @@ -0,0 +1,193 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:48+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.rst:2 +msgid ":mod:`!email` --- An email and MIME handling package" +msgstr "" + +#: ../../library/email.rst:11 +msgid "**Source code:** :source:`Lib/email/__init__.py`" +msgstr "" + +#: ../../library/email.rst:15 +msgid "" +"The :mod:`email` package is a library for managing email messages. It is " +"specifically *not* designed to do any sending of email messages to SMTP " +"(:rfc:`2821`), NNTP, or other servers; those are functions of modules such " +"as :mod:`smtplib`. The :mod:`email` package attempts to be as RFC-compliant " +"as possible, supporting :rfc:`5322` and :rfc:`6532`, as well as such MIME-" +"related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :rfc:`2183`, " +"and :rfc:`2231`." +msgstr "" + +#: ../../library/email.rst:23 +msgid "" +"The overall structure of the email package can be divided into three major " +"components, plus a fourth component that controls the behavior of the other " +"components." +msgstr "" + +#: ../../library/email.rst:27 +msgid "" +"The central component of the package is an \"object model\" that represents " +"email messages. An application interacts with the package primarily through " +"the object model interface defined in the :mod:`~email.message` sub-module. " +"The application can use this API to ask questions about an existing email, " +"to construct a new email, or to add or remove email subcomponents that " +"themselves use the same object model interface. That is, following the " +"nature of email messages and their MIME subcomponents, the email object " +"model is a tree structure of objects that all provide " +"the :class:`~email.message.EmailMessage` API." +msgstr "" + +#: ../../library/email.rst:37 +msgid "" +"The other two major components of the package are the :mod:`~email.parser` " +"and the :mod:`~email.generator`. The parser takes the serialized version of " +"an email message (a stream of bytes) and converts it into a tree " +"of :class:`~email.message.EmailMessage` objects. The generator takes " +"an :class:`~email.message.EmailMessage` and turns it back into a serialized " +"byte stream. (The parser and generator also handle streams of text " +"characters, but this usage is discouraged as it is too easy to end up with " +"messages that are not valid in one way or another.)" +msgstr "" + +#: ../../library/email.rst:46 +msgid "" +"The control component is the :mod:`~email.policy` module. " +"Every :class:`~email.message.EmailMessage`, every :mod:`~email.generator`, " +"and every :mod:`~email.parser` has an associated :mod:`~email.policy` object " +"that controls its behavior. Usually an application only needs to specify " +"the policy when an :class:`~email.message.EmailMessage` is created, either " +"by directly instantiating an :class:`~email.message.EmailMessage` to create " +"a new email, or by parsing an input stream using a :mod:`~email.parser`. " +"But the policy can be changed when the message is serialized using " +"a :mod:`~email.generator`. This allows, for example, a generic email message " +"to be parsed from disk, but to serialize it using standard SMTP settings " +"when sending it to an email server." +msgstr "" + +#: ../../library/email.rst:58 +msgid "" +"The email package does its best to hide the details of the various governing " +"RFCs from the application. Conceptually the application should be able to " +"treat the email message as a structured tree of unicode text and binary " +"attachments, without having to worry about how these are represented when " +"serialized. In practice, however, it is often necessary to be aware of at " +"least some of the rules governing MIME messages and their structure, " +"specifically the names and nature of the MIME \"content types\" and how they " +"identify multipart documents. For the most part this knowledge should only " +"be required for more complex applications, and even then it should only be " +"the high level structure in question, and not the details of how those " +"structures are represented. Since MIME content types are used widely in " +"modern internet software (not just email), this will be a familiar concept " +"to many programmers." +msgstr "" + +#: ../../library/email.rst:71 +msgid "" +"The following sections describe the functionality of the :mod:`email` " +"package. We start with the :mod:`~email.message` object model, which is the " +"primary interface an application will use, and follow that with " +"the :mod:`~email.parser` and :mod:`~email.generator` components. Then we " +"cover the :mod:`~email.policy` controls, which completes the treatment of " +"the main components of the library." +msgstr "" + +#: ../../library/email.rst:78 +msgid "" +"The next three sections cover the exceptions the package may raise and the " +"defects (non-compliance with the RFCs) that the :mod:`~email.parser` may " +"detect. Then we cover the :mod:`~email.headerregistry` and " +"the :mod:`~email.contentmanager` sub-components, which provide tools for " +"doing more detailed manipulation of headers and payloads, respectively. " +"Both of these components contain features relevant to consuming and " +"producing non-trivial messages, but also document their extensibility APIs, " +"which will be of interest to advanced applications." +msgstr "" + +#: ../../library/email.rst:87 +msgid "" +"Following those is a set of examples of using the fundamental parts of the " +"APIs covered in the preceding sections." +msgstr "" + +#: ../../library/email.rst:90 +msgid "" +"The foregoing represent the modern (unicode friendly) API of the email " +"package. The remaining sections, starting with " +"the :class:`~email.message.Message` class, cover the " +"legacy :data:`~email.policy.compat32` API that deals much more directly with " +"the details of how email messages are represented. " +"The :data:`~email.policy.compat32` API does *not* hide the details of the " +"RFCs from the application, but for applications that need to operate at that " +"level, they can be useful tools. This documentation is also relevant for " +"applications that are still using the :mod:`~email.policy.compat32` API for " +"backward compatibility reasons." +msgstr "" + +#: ../../library/email.rst:100 +msgid "" +"Docs reorganized and rewritten to promote the " +"new :class:`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy` " +"API." +msgstr "" + +#: ../../library/email.rst:105 +msgid "Contents of the :mod:`email` package documentation:" +msgstr "" + +#: ../../library/email.rst:120 +msgid "Legacy API:" +msgstr "" + +#: ../../library/email.rst:135 +msgid "Module :mod:`smtplib`" +msgstr "" + +#: ../../library/email.rst:136 +msgid "SMTP (Simple Mail Transport Protocol) client" +msgstr "" + +#: ../../library/email.rst:138 +msgid "Module :mod:`poplib`" +msgstr "" + +#: ../../library/email.rst:139 +msgid "POP (Post Office Protocol) client" +msgstr "" + +#: ../../library/email.rst:141 +msgid "Module :mod:`imaplib`" +msgstr "" + +#: ../../library/email.rst:142 +msgid "IMAP (Internet Message Access Protocol) client" +msgstr "" + +#: ../../library/email.rst:144 +msgid "Module :mod:`mailbox`" +msgstr "" + +#: ../../library/email.rst:145 +msgid "" +"Tools for creating, reading, and managing collections of messages on disk " +"using a variety standard formats." +msgstr "" diff --git a/library/email.policy.po b/library/email.policy.po new file mode 100644 index 0000000..6f13d50 --- /dev/null +++ b/library/email.policy.po @@ -0,0 +1,807 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.policy.rst:2 +msgid ":mod:`!email.policy`: Policy Objects" +msgstr "" + +#: ../../library/email.policy.rst:12 +msgid "**Source code:** :source:`Lib/email/policy.py`" +msgstr "" + +#: ../../library/email.policy.rst:16 +msgid "" +"The :mod:`email` package's prime focus is the handling of email messages as " +"described by the various email and MIME RFCs. However, the general format " +"of email messages (a block of header fields each consisting of a name " +"followed by a colon followed by a value, the whole block followed by a blank " +"line and an arbitrary 'body'), is a format that has found utility outside of " +"the realm of email. Some of these uses conform fairly closely to the main " +"email RFCs, some do not. Even when working with email, there are times when " +"it is desirable to break strict compliance with the RFCs, such as generating " +"emails that interoperate with email servers that do not themselves follow " +"the standards, or that implement extensions you want to use in ways that " +"violate the standards." +msgstr "" + +#: ../../library/email.policy.rst:28 +msgid "" +"Policy objects give the email package the flexibility to handle all these " +"disparate use cases." +msgstr "" + +#: ../../library/email.policy.rst:31 +msgid "" +"A :class:`Policy` object encapsulates a set of attributes and methods that " +"control the behavior of various components of the email package during " +"use. :class:`Policy` instances can be passed to various classes and methods " +"in the email package to alter the default behavior. The settable values and " +"their defaults are described below." +msgstr "" + +#: ../../library/email.policy.rst:37 +msgid "" +"There is a default policy used by all classes in the email package. For all " +"of the :mod:`~email.parser` classes and the related convenience functions, " +"and for the :class:`~email.message.Message` class, this is " +"the :class:`Compat32` policy, via its corresponding pre-defined " +"instance :const:`compat32`. This policy provides for complete backward " +"compatibility (in some cases, including bug compatibility) with the pre-" +"Python3.3 version of the email package." +msgstr "" + +#: ../../library/email.policy.rst:44 +msgid "" +"This default value for the *policy* keyword " +"to :class:`~email.message.EmailMessage` is the :class:`EmailPolicy` policy, " +"via its pre-defined instance :data:`~default`." +msgstr "" + +#: ../../library/email.policy.rst:48 +msgid "" +"When a :class:`~email.message.Message` " +"or :class:`~email.message.EmailMessage` object is created, it acquires a " +"policy. If the message is created by a :mod:`~email.parser`, a policy " +"passed to the parser will be the policy used by the message it creates. If " +"the message is created by the program, then the policy can be specified when " +"it is created. When a message is passed to a :mod:`~email.generator`, the " +"generator uses the policy from the message by default, but you can also pass " +"a specific policy to the generator that will override the one stored on the " +"message object." +msgstr "" + +#: ../../library/email.policy.rst:57 +msgid "" +"The default value for the *policy* keyword for the :mod:`email.parser` " +"classes and the parser convenience functions **will be changing** in a " +"future version of Python. Therefore you should **always specify explicitly " +"which policy you want to use** when calling any of the classes and functions " +"described in the :mod:`~email.parser` module." +msgstr "" + +#: ../../library/email.policy.rst:63 +msgid "" +"The first part of this documentation covers the features of :class:`Policy`, " +"an :term:`abstract base class` that defines the features that are common to " +"all policy objects, including :const:`compat32`. This includes certain hook " +"methods that are called internally by the email package, which a custom " +"policy could override to obtain different behavior. The second part " +"describes the concrete classes :class:`EmailPolicy` and :class:`Compat32`, " +"which implement the hooks that provide the standard behavior and the " +"backward compatible behavior and features, respectively." +msgstr "" + +#: ../../library/email.policy.rst:72 +msgid "" +":class:`Policy` instances are immutable, but they can be cloned, accepting " +"the same keyword arguments as the class constructor and returning a " +"new :class:`Policy` instance that is a copy of the original but with the " +"specified attributes values changed." +msgstr "" + +#: ../../library/email.policy.rst:77 +msgid "" +"As an example, the following code could be used to read an email message " +"from a file on disk and pass it to the system ``sendmail`` program on a Unix " +"system:" +msgstr "" + +#: ../../library/email.policy.rst:92 +msgid "" +">>> from email import message_from_binary_file\n" +">>> from email.generator import BytesGenerator\n" +">>> from email import policy\n" +">>> from subprocess import Popen, PIPE\n" +">>> with open('mymsg.txt', 'rb') as f:\n" +"... msg = message_from_binary_file(f, policy=policy.default)\n" +"...\n" +">>> p = Popen(['sendmail', msg['To'].addresses[0]], stdin=PIPE)\n" +">>> g = BytesGenerator(p.stdin, policy=msg.policy.clone(linesep='\\r\\n'))\n" +">>> g.flatten(msg)\n" +">>> p.stdin.close()\n" +">>> rc = p.wait()" +msgstr "" + +#: ../../library/email.policy.rst:114 +msgid "" +"Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " +"correct line separator characters when creating the binary string to feed " +"into ``sendmail's`` ``stdin``, where the default policy would use ``\\n`` " +"line separators." +msgstr "" + +#: ../../library/email.policy.rst:119 +msgid "" +"Some email package methods accept a *policy* keyword argument, allowing the " +"policy to be overridden for that method. For example, the following code " +"uses the :meth:`~email.message.Message.as_bytes` method of the *msg* object " +"from the previous example and writes the message to a file using the native " +"line separators for the platform on which it is running::" +msgstr "" + +#: ../../library/email.policy.rst:125 +msgid "" +">>> import os\n" +">>> with open('converted.txt', 'wb') as f:\n" +"... f.write(msg.as_bytes(policy=msg.policy.clone(linesep=os.linesep)))\n" +"17" +msgstr "" + +#: ../../library/email.policy.rst:130 +msgid "" +"Policy objects can also be combined using the addition operator, producing a " +"policy object whose settings are a combination of the non-default values of " +"the summed objects::" +msgstr "" + +#: ../../library/email.policy.rst:134 +msgid "" +">>> compat_SMTP = policy.compat32.clone(linesep='\\r\\n')\n" +">>> compat_strict = policy.compat32.clone(raise_on_defect=True)\n" +">>> compat_strict_SMTP = compat_SMTP + compat_strict" +msgstr "" + +#: ../../library/email.policy.rst:138 +msgid "" +"This operation is not commutative; that is, the order in which the objects " +"are added matters. To illustrate::" +msgstr "" + +#: ../../library/email.policy.rst:141 +msgid "" +">>> policy100 = policy.compat32.clone(max_line_length=100)\n" +">>> policy80 = policy.compat32.clone(max_line_length=80)\n" +">>> apolicy = policy100 + policy80\n" +">>> apolicy.max_line_length\n" +"80\n" +">>> apolicy = policy80 + policy100\n" +">>> apolicy.max_line_length\n" +"100" +msgstr "" + +#: ../../library/email.policy.rst:153 +msgid "" +"This is the :term:`abstract base class` for all policy classes. It provides " +"default implementations for a couple of trivial methods, as well as the " +"implementation of the immutability property, the :meth:`clone` method, and " +"the constructor semantics." +msgstr "" + +#: ../../library/email.policy.rst:158 +msgid "" +"The constructor of a policy class can be passed various keyword arguments. " +"The arguments that may be specified are any non-method properties on this " +"class, plus any additional non-method properties on the concrete class. A " +"value specified in the constructor will override the default value for the " +"corresponding attribute." +msgstr "" + +#: ../../library/email.policy.rst:164 +msgid "" +"This class defines the following properties, and thus values for the " +"following may be passed in the constructor of any policy class:" +msgstr "" + +#: ../../library/email.policy.rst:170 +msgid "" +"The maximum length of any line in the serialized output, not counting the " +"end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " +"or :const:`None` indicates that no line wrapping should be done at all." +msgstr "" + +#: ../../library/email.policy.rst:178 +msgid "" +"The string to be used to terminate lines in serialized output. The default " +"is ``\\n`` because that's the internal end-of-line discipline used by " +"Python, though ``\\r\\n`` is required by the RFCs." +msgstr "" + +#: ../../library/email.policy.rst:185 +msgid "" +"Controls the type of Content Transfer Encodings that may be or are required " +"to be used. The possible values are:" +msgstr "" + +#: ../../library/email.policy.rst:191 +msgid "``7bit``" +msgstr "``7bit``" + +#: ../../library/email.policy.rst:191 +msgid "" +"all data must be \"7 bit clean\" (ASCII-only). This means that where " +"necessary data will be encoded using either quoted-printable or base64 " +"encoding." +msgstr "" + +#: ../../library/email.policy.rst:195 +msgid "``8bit``" +msgstr "``8bit``" + +#: ../../library/email.policy.rst:195 +msgid "" +"data is not constrained to be 7 bit clean. Data in headers is still " +"required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " +"and :attr:`~EmailPolicy.utf8` below for exceptions), but body parts may use " +"the ``8bit`` CTE." +msgstr "" + +#: ../../library/email.policy.rst:201 +msgid "" +"A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " +"``Generator``, because strings cannot contain binary data. If a " +"``Generator`` is operating under a policy that specifies ``cte_type=8bit``, " +"it will act as if ``cte_type`` is ``7bit``." +msgstr "" + +#: ../../library/email.policy.rst:209 +msgid "" +"If :const:`True`, any defects encountered will be raised as errors. " +"If :const:`False` (the default), defects will be passed to " +"the :meth:`register_defect` method." +msgstr "" + +#: ../../library/email.policy.rst:216 +msgid "" +"If :const:`True`, lines starting with *\"From \"* in the body are escaped by " +"putting a ``>`` in front of them. This parameter is used when the message is " +"being serialized by a generator. Default: :const:`False`." +msgstr "" + +#: ../../library/email.policy.rst:226 +msgid "" +"A factory function for constructing a new empty message object. Used by the " +"parser when building messages. Defaults to ``None``, in which " +"case :class:`~email.message.Message` is used." +msgstr "" + +#: ../../library/email.policy.rst:235 +msgid "" +"If ``True`` (the default), the generator will " +"raise :exc:`~email.errors.HeaderWriteError` instead of writing a header that " +"is improperly folded or delimited, such that it would be parsed as multiple " +"headers or joined with adjacent data. Such headers can be generated by " +"custom header classes or bugs in the ``email`` module." +msgstr "" + +#: ../../library/email.policy.rst:242 +msgid "" +"As it's a security feature, this defaults to ``True`` even in " +"the :class:`~email.policy.Compat32` policy. For backwards compatible, but " +"unsafe, behavior, it must be set to ``False`` explicitly." +msgstr "" + +#: ../../library/email.policy.rst:250 +msgid "" +"The following :class:`Policy` method is intended to be called by code using " +"the email library to create policy instances with custom settings:" +msgstr "" + +#: ../../library/email.policy.rst:256 +msgid "" +"Return a new :class:`Policy` instance whose attributes have the same values " +"as the current instance, except where those attributes are given new values " +"by the keyword arguments." +msgstr "" + +#: ../../library/email.policy.rst:261 +msgid "" +"The remaining :class:`Policy` methods are called by the email package code, " +"and are not intended to be called by an application using the email package. " +"A custom policy must implement all of these methods." +msgstr "" + +#: ../../library/email.policy.rst:268 +msgid "" +"Handle a *defect* found on *obj*. When the email package calls this method, " +"*defect* will always be a subclass of :class:`~email.errors.MessageDefect`." +msgstr "" + +#: ../../library/email.policy.rst:272 +msgid "" +"The default implementation checks the :attr:`raise_on_defect` flag. If it " +"is ``True``, *defect* is raised as an exception. If it is ``False`` (the " +"default), *obj* and *defect* are passed to :meth:`register_defect`." +msgstr "" + +#: ../../library/email.policy.rst:279 +msgid "" +"Register a *defect* on *obj*. In the email package, *defect* will always be " +"a subclass of :class:`~email.errors.MessageDefect`." +msgstr "" + +#: ../../library/email.policy.rst:282 +msgid "" +"The default implementation calls the ``append`` method of the ``defects`` " +"attribute of *obj*. When the email package calls :attr:`handle_defect`, " +"*obj* will normally have a ``defects`` attribute that has an ``append`` " +"method. Custom object types used with the email package (for example, " +"custom ``Message`` objects) should also provide such an attribute, otherwise " +"defects in parsed messages will raise unexpected errors." +msgstr "" + +#: ../../library/email.policy.rst:292 +msgid "Return the maximum allowed number of headers named *name*." +msgstr "" + +#: ../../library/email.policy.rst:294 +msgid "" +"Called when a header is added to an :class:`~email.message.EmailMessage` " +"or :class:`~email.message.Message` object. If the returned value is not " +"``0`` or ``None``, and there are already a number of headers with the name " +"*name* greater than or equal to the value returned, a :exc:`ValueError` is " +"raised." +msgstr "" + +#: ../../library/email.policy.rst:300 +msgid "" +"Because the default behavior of ``Message.__setitem__`` is to append the " +"value to the list of headers, it is easy to create duplicate headers without " +"realizing it. This method allows certain headers to be limited in the " +"number of instances of that header that may be added to a ``Message`` " +"programmatically. (The limit is not observed by the parser, which will " +"faithfully produce as many headers as exist in the message being parsed.)" +msgstr "" + +#: ../../library/email.policy.rst:308 +msgid "The default implementation returns ``None`` for all header names." +msgstr "" + +#: ../../library/email.policy.rst:313 +msgid "" +"The email package calls this method with a list of strings, each string " +"ending with the line separation characters found in the source being " +"parsed. The first line includes the field header name and separator. All " +"whitespace in the source is preserved. The method should return the " +"``(name, value)`` tuple that is to be stored in the ``Message`` to represent " +"the parsed header." +msgstr "" + +#: ../../library/email.policy.rst:320 +msgid "" +"If an implementation wishes to retain compatibility with the existing email " +"package policies, *name* should be the case preserved name (all characters " +"up to the '``:``' separator), while *value* should be the unfolded value " +"(all line separator characters removed, but whitespace kept intact), " +"stripped of leading whitespace." +msgstr "" + +#: ../../library/email.policy.rst:326 +msgid "*sourcelines* may contain surrogateescaped binary data." +msgstr "" + +#: ../../library/email.policy.rst:328 ../../library/email.policy.rst:344 +#: ../../library/email.policy.rst:360 +msgid "There is no default implementation" +msgstr "" + +#: ../../library/email.policy.rst:333 +msgid "" +"The email package calls this method with the name and value provided by the " +"application program when the application program is modifying a ``Message`` " +"programmatically (as opposed to a ``Message`` created by a parser). The " +"method should return the ``(name, value)`` tuple that is to be stored in the " +"``Message`` to represent the header." +msgstr "" + +#: ../../library/email.policy.rst:339 +msgid "" +"If an implementation wishes to retain compatibility with the existing email " +"package policies, the *name* and *value* should be strings or string " +"subclasses that do not change the content of the passed in arguments." +msgstr "" + +#: ../../library/email.policy.rst:349 +msgid "" +"The email package calls this method with the *name* and *value* currently " +"stored in the ``Message`` when that header is requested by the application " +"program, and whatever the method returns is what is passed back to the " +"application as the value of the header being retrieved. Note that there may " +"be more than one header with the same name stored in the ``Message``; the " +"method is passed the specific name and value of the header destined to be " +"returned to the application." +msgstr "" + +#: ../../library/email.policy.rst:357 +msgid "" +"*value* may contain surrogateescaped binary data. There should be no " +"surrogateescaped binary data in the value returned by the method." +msgstr "" + +#: ../../library/email.policy.rst:365 +msgid "" +"The email package calls this method with the *name* and *value* currently " +"stored in the ``Message`` for a given header. The method should return a " +"string that represents that header \"folded\" correctly (according to the " +"policy settings) by composing the *name* with the *value* and " +"inserting :attr:`linesep` characters at the appropriate places. " +"See :rfc:`5322` for a discussion of the rules for folding email headers." +msgstr "" + +#: ../../library/email.policy.rst:372 +msgid "" +"*value* may contain surrogateescaped binary data. There should be no " +"surrogateescaped binary data in the string returned by the method." +msgstr "" + +#: ../../library/email.policy.rst:378 +msgid "" +"The same as :meth:`fold`, except that the returned value should be a bytes " +"object rather than a string." +msgstr "" + +#: ../../library/email.policy.rst:381 +msgid "" +"*value* may contain surrogateescaped binary data. These could be converted " +"back into binary data in the returned bytes object." +msgstr "" + +#: ../../library/email.policy.rst:388 +msgid "" +"This concrete :class:`Policy` provides behavior that is intended to be fully " +"compliant with the current email RFCs. These include (but are not limited " +"to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." +msgstr "" + +#: ../../library/email.policy.rst:392 +msgid "" +"This policy adds new header parsing and folding algorithms. Instead of " +"simple strings, headers are ``str`` subclasses with attributes that depend " +"on the type of the field. The parsing and folding algorithm fully " +"implement :rfc:`2047` and :rfc:`5322`." +msgstr "" + +#: ../../library/email.policy.rst:397 +msgid "" +"The default value for the :attr:`~email.policy.Policy.message_factory` " +"attribute is :class:`~email.message.EmailMessage`." +msgstr "" + +#: ../../library/email.policy.rst:400 +msgid "" +"In addition to the settable attributes listed above that apply to all " +"policies, this policy adds the following additional attributes:" +msgstr "" + +#: ../../library/email.policy.rst:403 +msgid "[1]_" +msgstr "" + +#: ../../library/email.policy.rst:408 +msgid "" +"If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " +"by encoding them as \"encoded words\". If ``True``, follow :rfc:`6532` and " +"use ``utf-8`` encoding for headers. Messages formatted in this way may be " +"passed to SMTP servers that support the ``SMTPUTF8`` extension (:rfc:`6531`)." +msgstr "" + +#: ../../library/email.policy.rst:417 +msgid "" +"If the value for a header in the ``Message`` object originated from " +"a :mod:`~email.parser` (as opposed to being set by a program), this " +"attribute indicates whether or not a generator should refold that value when " +"transforming the message back into serialized form. The possible values are:" +msgstr "" + +#: ../../library/email.policy.rst:424 +msgid "``none``" +msgstr "``none``" + +#: ../../library/email.policy.rst:424 +msgid "all source values use original folding" +msgstr "" + +#: ../../library/email.policy.rst:426 +msgid "``long``" +msgstr "``long``" + +#: ../../library/email.policy.rst:426 +msgid "" +"source values that have any line that is longer than ``max_line_length`` " +"will be refolded" +msgstr "" + +#: ../../library/email.policy.rst:429 +msgid "``all``" +msgstr "``all``" + +#: ../../library/email.policy.rst:429 +msgid "all values are refolded." +msgstr "" + +#: ../../library/email.policy.rst:432 +msgid "The default is ``long``." +msgstr "" + +#: ../../library/email.policy.rst:437 +msgid "" +"A callable that takes two arguments, ``name`` and ``value``, where ``name`` " +"is a header field name and ``value`` is an unfolded header field value, and " +"returns a string subclass that represents that header. A default " +"``header_factory`` (see :mod:`~email.headerregistry`) is provided that " +"supports custom parsing for the various address and date :RFC:`5322` header " +"field types, and the major MIME header field stypes. Support for additional " +"custom parsing will be added in the future." +msgstr "" + +#: ../../library/email.policy.rst:448 +msgid "" +"An object with at least two methods: get_content and set_content. When " +"the :meth:`~email.message.EmailMessage.get_content` " +"or :meth:`~email.message.EmailMessage.set_content` method of " +"an :class:`~email.message.EmailMessage` object is called, it calls the " +"corresponding method of this object, passing it the message object as its " +"first argument, and any arguments or keywords that were passed to it as " +"additional arguments. By default ``content_manager`` is set " +"to :data:`~email.contentmanager.raw_data_manager`." +msgstr "" + +#: ../../library/email.policy.rst:460 ../../library/email.policy.rst:618 +msgid "" +"The class provides the following concrete implementations of the abstract " +"methods of :class:`Policy`:" +msgstr "" + +#: ../../library/email.policy.rst:466 +msgid "" +"Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " +"attribute of the specialized class used to represent the header with the " +"given name." +msgstr "" + +#: ../../library/email.policy.rst:474 ../../library/email.policy.rst:624 +msgid "" +"The name is parsed as everything up to the '``:``' and returned unmodified. " +"The value is determined by stripping leading whitespace off the remainder of " +"the first line, joining all subsequent lines together, and stripping any " +"trailing carriage return or linefeed characters." +msgstr "" + +#: ../../library/email.policy.rst:482 +msgid "" +"The name is returned unchanged. If the input value has a ``name`` attribute " +"and it matches *name* ignoring case, the value is returned unchanged. " +"Otherwise the *name* and *value* are passed to ``header_factory``, and the " +"resulting header object is returned as the value. In this case a " +"``ValueError`` is raised if the input value contains CR or LF characters." +msgstr "" + +#: ../../library/email.policy.rst:492 +msgid "" +"If the value has a ``name`` attribute, it is returned to unmodified. " +"Otherwise the *name*, and the *value* with any CR or LF characters removed, " +"are passed to the ``header_factory``, and the resulting header object is " +"returned. Any surrogateescaped bytes get turned into the unicode unknown-" +"character glyph." +msgstr "" + +#: ../../library/email.policy.rst:501 +msgid "" +"Header folding is controlled by the :attr:`refold_source` policy setting. A " +"value is considered to be a 'source value' if and only if it does not have a " +"``name`` attribute (having a ``name`` attribute means it is a header object " +"of some sort). If a source value needs to be refolded according to the " +"policy, it is converted into a header object by passing the *name* and the " +"*value* with any CR and LF characters removed to the ``header_factory``. " +"Folding of a header object is done by calling its ``fold`` method with the " +"current policy." +msgstr "" + +#: ../../library/email.policy.rst:510 +msgid "" +"Source values are split into lines using :meth:`~str.splitlines`. If the " +"value is not to be refolded, the lines are rejoined using the ``linesep`` " +"from the policy and returned. The exception is lines containing non-ascii " +"binary data. In that case the value is refolded regardless of the " +"``refold_source`` setting, which causes the binary data to be CTE encoded " +"using the ``unknown-8bit`` charset." +msgstr "" + +#: ../../library/email.policy.rst:520 +msgid "" +"The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " +"that the returned value is bytes." +msgstr "" + +#: ../../library/email.policy.rst:523 +msgid "" +"If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " +"back into bytes. Headers with binary data are not refolded, regardless of " +"the ``refold_header`` setting, since there is no way to know whether the " +"binary data consists of single byte characters or multibyte characters." +msgstr "" + +#: ../../library/email.policy.rst:530 +msgid "" +"The following instances of :class:`EmailPolicy` provide defaults suitable " +"for specific application domains. Note that in the future the behavior of " +"these instances (in particular the ``HTTP`` instance) may be adjusted to " +"conform even more closely to the RFCs relevant to their domains." +msgstr "" + +#: ../../library/email.policy.rst:538 +msgid "" +"An instance of ``EmailPolicy`` with all defaults unchanged. This policy " +"uses the standard Python ``\\n`` line endings rather than the RFC-correct " +"``\\r\\n``." +msgstr "" + +#: ../../library/email.policy.rst:545 +msgid "" +"Suitable for serializing messages in conformance with the email RFCs. Like " +"``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." +msgstr "" + +#: ../../library/email.policy.rst:552 +msgid "" +"The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " +"Useful for serializing messages to a message store without using encoded " +"words in the headers. Should only be used for SMTP transmission if the " +"sender or recipient addresses have non-ASCII characters " +"(the :meth:`smtplib.SMTP.send_message` method handles this automatically)." +msgstr "" + +#: ../../library/email.policy.rst:561 +msgid "" +"Suitable for serializing headers with for use in HTTP traffic. Like " +"``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." +msgstr "" + +#: ../../library/email.policy.rst:567 +msgid "" +"Convenience instance. The same as ``default`` except that " +"``raise_on_defect`` is set to ``True``. This allows any policy to be made " +"strict by writing::" +msgstr "" + +#: ../../library/email.policy.rst:571 +msgid "somepolicy + policy.strict" +msgstr "" + +#: ../../library/email.policy.rst:574 +msgid "" +"With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " +"of the email package is changed from the Python 3.2 API in the following " +"ways:" +msgstr "" + +#: ../../library/email.policy.rst:577 +msgid "" +"Setting a header on a :class:`~email.message.Message` results in that header " +"being parsed and a header object created." +msgstr "" + +#: ../../library/email.policy.rst:580 +msgid "" +"Fetching a header value from a :class:`~email.message.Message` results in " +"that header being parsed and a header object created and returned." +msgstr "" + +#: ../../library/email.policy.rst:584 +msgid "" +"Any header object, or any header that is refolded due to the policy " +"settings, is folded using an algorithm that fully implements the RFC folding " +"algorithms, including knowing where encoded words are required and allowed." +msgstr "" + +#: ../../library/email.policy.rst:589 +msgid "" +"From the application view, this means that any header obtained through " +"the :class:`~email.message.EmailMessage` is a header object with extra " +"attributes, whose string value is the fully decoded unicode value of the " +"header. Likewise, a header may be assigned a new value, or a new header " +"created, using a unicode string, and the policy will take care of converting " +"the unicode string into the correct RFC encoded form." +msgstr "" + +#: ../../library/email.policy.rst:596 +msgid "" +"The header objects and their attributes are described " +"in :mod:`~email.headerregistry`." +msgstr "" + +#: ../../library/email.policy.rst:603 +msgid "" +"This concrete :class:`Policy` is the backward compatibility policy. It " +"replicates the behavior of the email package in Python 3.2. " +"The :mod:`~email.policy` module also defines an instance of this " +"class, :const:`compat32`, that is used as the default policy. Thus the " +"default behavior of the email package is to maintain compatibility with " +"Python 3.2." +msgstr "" + +#: ../../library/email.policy.rst:609 +msgid "" +"The following attributes have values that are different from " +"the :class:`Policy` default:" +msgstr "" + +#: ../../library/email.policy.rst:615 +msgid "The default is ``True``." +msgstr "" + +#: ../../library/email.policy.rst:632 +msgid "The name and value are returned unmodified." +msgstr "" + +#: ../../library/email.policy.rst:637 +msgid "" +"If the value contains binary data, it is converted into " +"a :class:`~email.header.Header` object using the ``unknown-8bit`` charset. " +"Otherwise it is returned unmodified." +msgstr "" + +#: ../../library/email.policy.rst:644 +msgid "" +"Headers are folded using the :class:`~email.header.Header` folding " +"algorithm, which preserves existing line breaks in the value, and wraps each " +"resulting line to the ``max_line_length``. Non-ASCII binary data are CTE " +"encoded using the ``unknown-8bit`` charset." +msgstr "" + +#: ../../library/email.policy.rst:652 +msgid "" +"Headers are folded using the :class:`~email.header.Header` folding " +"algorithm, which preserves existing line breaks in the value, and wraps each " +"resulting line to the ``max_line_length``. If ``cte_type`` is ``7bit``, non-" +"ascii binary data is CTE encoded using the ``unknown-8bit`` charset. " +"Otherwise the original source header is used, with its existing line breaks " +"and any (RFC invalid) binary data it may contain." +msgstr "" + +#: ../../library/email.policy.rst:662 +msgid "" +"An instance of :class:`Compat32`, providing backward compatibility with the " +"behavior of the email package in Python 3.2." +msgstr "" + +#: ../../library/email.policy.rst:667 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.policy.rst:668 +msgid "" +"Originally added in 3.3 as a :term:`provisional feature `." +msgstr "" diff --git a/library/email.utils.po b/library/email.utils.po new file mode 100644 index 0000000..12815e0 --- /dev/null +++ b/library/email.utils.po @@ -0,0 +1,279 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/email.utils.rst:2 +msgid ":mod:`!email.utils`: Miscellaneous utilities" +msgstr "" + +#: ../../library/email.utils.rst:7 +msgid "**Source code:** :source:`Lib/email/utils.py`" +msgstr "" + +#: ../../library/email.utils.rst:11 +msgid "" +"There are a couple of useful utilities provided in the :mod:`email.utils` " +"module:" +msgstr "" + +#: ../../library/email.utils.rst:16 +msgid "" +"Return local time as an aware datetime object. If called without arguments, " +"return current time. Otherwise *dt* argument should be " +"a :class:`~datetime.datetime` instance, and it is converted to the local " +"time zone according to the system time zone database. If *dt* is naive " +"(that is, ``dt.tzinfo`` is ``None``), it is assumed to be in local time." +msgstr "" + +#: ../../library/email.utils.rst:24 +msgid "The *isdst* parameter." +msgstr "" + +#: ../../library/email.utils.rst:29 +msgid "" +"Returns a string suitable for an :rfc:`2822`\\ " +"-compliant :mailheader:`Message-ID` header. Optional *idstring* if given, " +"is a string used to strengthen the uniqueness of the message id. Optional " +"*domain* if given provides the portion of the msgid after the '@'. The " +"default is the local hostname. It is not normally necessary to override " +"this default, but may be useful certain cases, such as a constructing " +"distributed system that uses a consistent domain name across multiple hosts." +msgstr "" + +#: ../../library/email.utils.rst:37 +msgid "Added the *domain* keyword." +msgstr "" + +#: ../../library/email.utils.rst:41 +msgid "" +"The remaining functions are part of the legacy (``Compat32``) email API. " +"There is no need to directly use these with the new API, since the parsing " +"and formatting they provide is done automatically by the header parsing " +"machinery of the new API." +msgstr "" + +#: ../../library/email.utils.rst:49 +msgid "" +"Return a new string with backslashes in *str* replaced by two backslashes, " +"and double quotes replaced by backslash-double quote." +msgstr "" + +#: ../../library/email.utils.rst:55 +msgid "" +"Return a new string which is an *unquoted* version of *str*. If *str* ends " +"and begins with double quotes, they are stripped off. Likewise if *str* " +"ends and begins with angle brackets, they are stripped off." +msgstr "" + +#: ../../library/email.utils.rst:62 +msgid "" +"Parse address -- which should be the value of some address-containing field " +"such as :mailheader:`To` or :mailheader:`Cc` -- into its constituent " +"*realname* and *email address* parts. Returns a tuple of that information, " +"unless the parse fails, in which case a 2-tuple of ``('', '')`` is returned." +msgstr "" + +#: ../../library/email.utils.rst:67 ../../library/email.utils.rst:95 +msgid "" +"If *strict* is true, use a strict parser which rejects malformed inputs." +msgstr "" + +#: ../../library/email.utils.rst:69 ../../library/email.utils.rst:107 +msgid "Add *strict* optional parameter and reject malformed inputs by default." +msgstr "" + +#: ../../library/email.utils.rst:75 +msgid "" +"The inverse of :meth:`parseaddr`, this takes a 2-tuple of the form " +"``(realname, email_address)`` and returns the string value suitable for " +"a :mailheader:`To` or :mailheader:`Cc` header. If the first element of " +"*pair* is false, then the second element is returned unmodified." +msgstr "" + +#: ../../library/email.utils.rst:80 +msgid "" +"Optional *charset* is the character set that will be used in the :rfc:`2047` " +"encoding of the ``realname`` if the ``realname`` contains non-ASCII " +"characters. Can be an instance of :class:`str` or " +"a :class:`~email.charset.Charset`. Defaults to ``utf-8``." +msgstr "" + +#: ../../library/email.utils.rst:85 +msgid "Added the *charset* option." +msgstr "" + +#: ../../library/email.utils.rst:91 +msgid "" +"This method returns a list of 2-tuples of the form returned by " +"``parseaddr()``. *fieldvalues* is a sequence of header field values as might " +"be returned by :meth:`Message.get_all `." +msgstr "" + +#: ../../library/email.utils.rst:97 +msgid "Here's a simple example that gets all the recipients of a message::" +msgstr "" + +#: ../../library/email.utils.rst:99 +msgid "" +"from email.utils import getaddresses\n" +"\n" +"tos = msg.get_all('to', [])\n" +"ccs = msg.get_all('cc', [])\n" +"resent_tos = msg.get_all('resent-to', [])\n" +"resent_ccs = msg.get_all('resent-cc', [])\n" +"all_recipients = getaddresses(tos + ccs + resent_tos + resent_ccs)" +msgstr "" + +#: ../../library/email.utils.rst:113 +msgid "" +"Attempts to parse a date according to the rules in :rfc:`2822`. however, " +"some mailers don't follow that format as specified, so :func:`parsedate` " +"tries to guess correctly in such cases. *date* is a string containing " +"an :rfc:`2822` date, such as ``\"Mon, 20 Nov 1995 19:12:08 -0500\"``. If " +"it succeeds in parsing the date, :func:`parsedate` returns a 9-tuple that " +"can be passed directly to :func:`time.mktime`; otherwise ``None`` will be " +"returned. Note that indexes 6, 7, and 8 of the result tuple are not usable." +msgstr "" + +#: ../../library/email.utils.rst:124 +msgid "" +"Performs the same function as :func:`parsedate`, but returns either ``None`` " +"or a 10-tuple; the first 9 elements make up a tuple that can be passed " +"directly to :func:`time.mktime`, and the tenth is the offset of the date's " +"timezone from UTC (which is the official term for Greenwich Mean Time) " +"[#]_. If the input string has no timezone, the last element of the tuple " +"returned is ``0``, which represents UTC. Note that indexes 6, 7, and 8 of " +"the result tuple are not usable." +msgstr "" + +#: ../../library/email.utils.rst:134 +msgid "" +"The inverse of :func:`format_datetime`. Performs the same function " +"as :func:`parsedate`, but on success returns a :mod:`~datetime.datetime`; " +"otherwise ``ValueError`` is raised if *date* contains an invalid value such " +"as an hour greater than 23 or a timezone offset not between -24 and 24 " +"hours. If the input date has a timezone of ``-0000``, the ``datetime`` will " +"be a naive ``datetime``, and if the date is conforming to the RFCs it will " +"represent a time in UTC but with no indication of the actual source timezone " +"of the message the date comes from. If the input date has any other valid " +"timezone offset, the ``datetime`` will be an aware ``datetime`` with the " +"corresponding a :class:`~datetime.timezone` :class:`~datetime.tzinfo`." +msgstr "" + +#: ../../library/email.utils.rst:150 +msgid "" +"Turn a 10-tuple as returned by :func:`parsedate_tz` into a UTC timestamp " +"(seconds since the Epoch). If the timezone item in the tuple is ``None``, " +"assume local time." +msgstr "" + +#: ../../library/email.utils.rst:157 +msgid "Returns a date string as per :rfc:`2822`, e.g.::" +msgstr "" + +#: ../../library/email.utils.rst:159 +msgid "Fri, 09 Nov 2001 01:08:47 -0000" +msgstr "" + +#: ../../library/email.utils.rst:161 +msgid "" +"Optional *timeval* if given is a floating-point time value as accepted " +"by :func:`time.gmtime` and :func:`time.localtime`, otherwise the current " +"time is used." +msgstr "" + +#: ../../library/email.utils.rst:165 +msgid "" +"Optional *localtime* is a flag that when ``True``, interprets *timeval*, and " +"returns a date relative to the local timezone instead of UTC, properly " +"taking daylight savings time into account. The default is ``False`` meaning " +"UTC is used." +msgstr "" + +#: ../../library/email.utils.rst:170 +msgid "" +"Optional *usegmt* is a flag that when ``True``, outputs a date string with " +"the timezone as an ascii string ``GMT``, rather than a numeric ``-0000``. " +"This is needed for some protocols (such as HTTP). This only applies when " +"*localtime* is ``False``. The default is ``False``." +msgstr "" + +#: ../../library/email.utils.rst:178 +msgid "" +"Like ``formatdate``, but the input is a :mod:`datetime` instance. If it is " +"a naive datetime, it is assumed to be \"UTC with no information about the " +"source timezone\", and the conventional ``-0000`` is used for the timezone. " +"If it is an aware ``datetime``, then the numeric timezone offset is used. If " +"it is an aware timezone with offset zero, then *usegmt* may be set to " +"``True``, in which case the string ``GMT`` is used instead of the numeric " +"timezone offset. This provides a way to generate standards conformant HTTP " +"date headers." +msgstr "" + +#: ../../library/email.utils.rst:192 +msgid "Decode the string *s* according to :rfc:`2231`." +msgstr "" + +#: ../../library/email.utils.rst:197 +msgid "" +"Encode the string *s* according to :rfc:`2231`. Optional *charset* and " +"*language*, if given is the character set name and language name to use. If " +"neither is given, *s* is returned as-is. If *charset* is given but " +"*language* is not, the string is encoded using the empty string for " +"*language*." +msgstr "" + +#: ../../library/email.utils.rst:205 +msgid "" +"When a header parameter is encoded in :rfc:`2231` " +"format, :meth:`Message.get_param ` may " +"return a 3-tuple containing the character set, language, and " +"value. :func:`collapse_rfc2231_value` turns this into a unicode string. " +"Optional *errors* is passed to the *errors* argument " +"of :class:`str`'s :func:`~str.encode` method; it defaults to ``'replace'``. " +"Optional *fallback_charset* specifies the character set to use if the one in " +"the :rfc:`2231` header is not known by Python; it defaults to ``'us-ascii'``." +msgstr "" + +#: ../../library/email.utils.rst:214 +msgid "" +"For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " +"not a tuple, it should be a string and it is returned unquoted." +msgstr "" + +#: ../../library/email.utils.rst:220 +msgid "" +"Decode parameters list according to :rfc:`2231`. *params* is a sequence of " +"2-tuples containing elements of the form ``(content-type, string-value)``." +msgstr "" + +#: ../../library/email.utils.rst:225 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/email.utils.rst:226 +msgid "" +"Note that the sign of the timezone offset is the opposite of the sign of the " +"``time.timezone`` variable for the same timezone; the latter variable " +"follows the POSIX standard while this module follows :rfc:`2822`." +msgstr "" diff --git a/library/ensurepip.po b/library/ensurepip.po new file mode 100644 index 0000000..2951b12 --- /dev/null +++ b/library/ensurepip.po @@ -0,0 +1,237 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/ensurepip.rst:2 +msgid ":mod:`!ensurepip` --- Bootstrapping the ``pip`` installer" +msgstr "" + +#: ../../library/ensurepip.rst:10 +msgid "**Source code:** :source:`Lib/ensurepip`" +msgstr "" + +#: ../../library/ensurepip.rst:14 +msgid "" +"The :mod:`ensurepip` package provides support for bootstrapping the ``pip`` " +"installer into an existing Python installation or virtual environment. This " +"bootstrapping approach reflects the fact that ``pip`` is an independent " +"project with its own release cycle, and the latest available stable version " +"is bundled with maintenance and feature releases of the CPython reference " +"interpreter." +msgstr "" + +#: ../../library/ensurepip.rst:21 +msgid "" +"In most cases, end users of Python shouldn't need to invoke this module " +"directly (as ``pip`` should be bootstrapped by default), but it may be " +"needed if installing ``pip`` was skipped when installing Python (or when " +"creating a virtual environment) or after explicitly uninstalling ``pip``." +msgstr "" + +#: ../../library/ensurepip.rst:29 +msgid "" +"This module *does not* access the internet. All of the components needed to " +"bootstrap ``pip`` are included as internal parts of the package." +msgstr "" + +#: ../../library/ensurepip.rst:35 +msgid ":ref:`installing-index`" +msgstr "" + +#: ../../library/ensurepip.rst:36 +msgid "The end user guide for installing Python packages" +msgstr "" + +#: ../../library/ensurepip.rst:38 +msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" +msgstr "" + +#: ../../library/ensurepip.rst:39 +msgid "The original rationale and specification for this module." +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-mobile-notavail.rst:5 +msgid "" +"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." +msgstr "" + +#: ../../library/ensurepip.rst:44 +msgid "Command line interface" +msgstr "" + +#: ../../library/ensurepip.rst:48 +msgid "" +"The command line interface is invoked using the interpreter's ``-m`` switch." +msgstr "" + +#: ../../library/ensurepip.rst:50 +msgid "The simplest possible invocation is::" +msgstr "" + +#: ../../library/ensurepip.rst:52 +msgid "python -m ensurepip" +msgstr "" + +#: ../../library/ensurepip.rst:54 +msgid "" +"This invocation will install ``pip`` if it is not already installed, but " +"otherwise does nothing. To ensure the installed version of ``pip`` is at " +"least as recent as the one available in ``ensurepip``, pass the ``--" +"upgrade`` option::" +msgstr "" + +#: ../../library/ensurepip.rst:59 +msgid "python -m ensurepip --upgrade" +msgstr "" + +#: ../../library/ensurepip.rst:61 +msgid "" +"By default, ``pip`` is installed into the current virtual environment (if " +"one is active) or into the system site packages (if there is no active " +"virtual environment). The installation location can be controlled through " +"two additional command line options:" +msgstr "" + +#: ../../library/ensurepip.rst:68 +msgid "" +"Installs ``pip`` relative to the given root directory rather than the root " +"of the currently active virtual environment (if any) or the default root for " +"the current Python installation." +msgstr "" + +#: ../../library/ensurepip.rst:74 +msgid "" +"Installs ``pip`` into the user site packages directory rather than globally " +"for the current Python installation (this option is not permitted inside an " +"active virtual environment)." +msgstr "" + +#: ../../library/ensurepip.rst:78 +msgid "" +"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " +"stands for the version of Python used to invoke ``ensurepip``). The scripts " +"installed can be controlled through two additional command line options:" +msgstr "" + +#: ../../library/ensurepip.rst:85 +msgid "" +"If an alternate installation is requested, the ``pipX`` script will *not* be " +"installed." +msgstr "" + +#: ../../library/ensurepip.rst:90 +msgid "" +"If a \"default pip\" installation is requested, the ``pip`` script will be " +"installed in addition to the two regular scripts." +msgstr "" + +#: ../../library/ensurepip.rst:93 +msgid "" +"Providing both of the script selection options will trigger an exception." +msgstr "" + +#: ../../library/ensurepip.rst:96 +msgid "Module API" +msgstr "" + +#: ../../library/ensurepip.rst:98 +msgid ":mod:`ensurepip` exposes two functions for programmatic use:" +msgstr "" + +#: ../../library/ensurepip.rst:102 +msgid "" +"Returns a string specifying the available version of pip that will be " +"installed when bootstrapping an environment." +msgstr "" + +#: ../../library/ensurepip.rst:109 +msgid "Bootstraps ``pip`` into the current or designated environment." +msgstr "" + +#: ../../library/ensurepip.rst:111 +msgid "" +"*root* specifies an alternative root directory to install relative to. If " +"*root* is ``None``, then installation uses the default install location for " +"the current environment." +msgstr "" + +#: ../../library/ensurepip.rst:115 +msgid "" +"*upgrade* indicates whether or not to upgrade an existing installation of an " +"earlier version of ``pip`` to the available version." +msgstr "" + +#: ../../library/ensurepip.rst:118 +msgid "" +"*user* indicates whether to use the user scheme rather than installing " +"globally." +msgstr "" + +#: ../../library/ensurepip.rst:121 +msgid "" +"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " +"stands for the current version of Python)." +msgstr "" + +#: ../../library/ensurepip.rst:124 +msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." +msgstr "" + +#: ../../library/ensurepip.rst:126 +msgid "" +"If *default_pip* is set, then ``pip`` will be installed in addition to the " +"two regular scripts." +msgstr "" + +#: ../../library/ensurepip.rst:129 +msgid "" +"Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." +msgstr "" + +#: ../../library/ensurepip.rst:132 +msgid "" +"*verbosity* controls the level of output to :data:`sys.stdout` from the " +"bootstrapping operation." +msgstr "" + +#: ../../library/ensurepip.rst:135 +msgid "" +"Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " +"argument ``root``." +msgstr "" + +#: ../../library/ensurepip.rst:139 +msgid "" +"The bootstrapping process has side effects on both ``sys.path`` and " +"``os.environ``. Invoking the command line interface in a subprocess instead " +"allows these side effects to be avoided." +msgstr "" + +#: ../../library/ensurepip.rst:145 +msgid "" +"The bootstrapping process may install additional modules required by " +"``pip``, but other software should not assume those dependencies will always " +"be present by default (as the dependencies may be removed in a future " +"version of ``pip``)." +msgstr "" diff --git a/library/enum.po b/library/enum.po new file mode 100644 index 0000000..88d2630 --- /dev/null +++ b/library/enum.po @@ -0,0 +1,1484 @@ +# 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: +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/enum.rst:2 +msgid ":mod:`!enum` --- Support for enumerations" +msgstr "" + +#: ../../library/enum.rst:14 +msgid "**Source code:** :source:`Lib/enum.py`" +msgstr "" + +#: ../../library/enum.rst:18 +msgid "" +"This page contains the API reference information. For tutorial information " +"and discussion of more advanced topics, see" +msgstr "" + +#: ../../library/enum.rst:21 +msgid ":ref:`Basic Tutorial `" +msgstr "" + +#: ../../library/enum.rst:22 +msgid ":ref:`Advanced Tutorial `" +msgstr "" + +#: ../../library/enum.rst:23 +msgid ":ref:`Enum Cookbook `" +msgstr "" + +#: ../../library/enum.rst:27 +msgid "An enumeration:" +msgstr "" + +#: ../../library/enum.rst:29 +msgid "is a set of symbolic names (members) bound to unique values" +msgstr "" + +#: ../../library/enum.rst:30 +msgid "" +"can be iterated over to return its canonical (i.e. non-alias) members in " +"definition order" +msgstr "" + +#: ../../library/enum.rst:32 +msgid "uses *call* syntax to return members by value" +msgstr "" + +#: ../../library/enum.rst:33 +msgid "uses *index* syntax to return members by name" +msgstr "" + +#: ../../library/enum.rst:35 +msgid "" +"Enumerations are created either by using :keyword:`class` syntax, or by " +"using function-call syntax::" +msgstr "" + +#: ../../library/enum.rst:38 +msgid "" +">>> from enum import Enum\n" +"\n" +">>> # class syntax\n" +">>> class Color(Enum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 3\n" +"\n" +">>> # functional syntax\n" +">>> Color = Enum('Color', [('RED', 1), ('GREEN', 2), ('BLUE', 3)])" +msgstr "" + +#: ../../library/enum.rst:49 +msgid "" +"Even though we can use :keyword:`class` syntax to create Enums, Enums are " +"not normal Python classes. See :ref:`How are Enums different? ` for more details." +msgstr "" + +#: ../../library/enum.rst:53 +msgid "Nomenclature" +msgstr "" + +#: ../../library/enum.rst:55 +msgid "The class :class:`!Color` is an *enumeration* (or *enum*)" +msgstr "" + +#: ../../library/enum.rst:56 +msgid "" +"The attributes :attr:`!Color.RED`, :attr:`!Color.GREEN`, etc., are " +"*enumeration members* (or *members*) and are functionally constants." +msgstr "" + +#: ../../library/enum.rst:58 +msgid "" +"The enum members have *names* and *values* (the name of :attr:`!Color.RED` " +"is ``RED``, the value of :attr:`!Color.BLUE` is ``3``, etc.)" +msgstr "" + +#: ../../library/enum.rst:65 +msgid "Module Contents" +msgstr "" + +#: ../../library/enum.rst:67 +msgid ":class:`EnumType`" +msgstr "" + +#: ../../library/enum.rst:69 +msgid "The ``type`` for Enum and its subclasses." +msgstr "" + +#: ../../library/enum.rst:71 +msgid ":class:`Enum`" +msgstr "" + +#: ../../library/enum.rst:73 +msgid "Base class for creating enumerated constants." +msgstr "" + +#: ../../library/enum.rst:75 +msgid ":class:`IntEnum`" +msgstr "" + +#: ../../library/enum.rst:77 +msgid "" +"Base class for creating enumerated constants that are also subclasses " +"of :class:`int`. (`Notes`_)" +msgstr "" + +#: ../../library/enum.rst:80 +msgid ":class:`StrEnum`" +msgstr "" + +#: ../../library/enum.rst:82 +msgid "" +"Base class for creating enumerated constants that are also subclasses " +"of :class:`str`. (`Notes`_)" +msgstr "" + +#: ../../library/enum.rst:85 +msgid ":class:`Flag`" +msgstr "" + +#: ../../library/enum.rst:87 +msgid "" +"Base class for creating enumerated constants that can be combined using the " +"bitwise operations without losing their :class:`Flag` membership." +msgstr "" + +#: ../../library/enum.rst:90 +msgid ":class:`IntFlag`" +msgstr "" + +#: ../../library/enum.rst:92 +msgid "" +"Base class for creating enumerated constants that can be combined using the " +"bitwise operators without losing their :class:`IntFlag` " +"membership. :class:`IntFlag` members are also subclasses of :class:`int`. " +"(`Notes`_)" +msgstr "" + +#: ../../library/enum.rst:96 +msgid ":class:`ReprEnum`" +msgstr "" + +#: ../../library/enum.rst:98 +msgid "" +"Used by :class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag` to keep " +"the :class:`str() ` of the mixed-in type." +msgstr "" + +#: ../../library/enum.rst:101 +msgid ":class:`EnumCheck`" +msgstr "" + +#: ../../library/enum.rst:103 +msgid "" +"An enumeration with the values ``CONTINUOUS``, ``NAMED_FLAGS``, and " +"``UNIQUE``, for use with :func:`verify` to ensure various constraints are " +"met by a given enumeration." +msgstr "" + +#: ../../library/enum.rst:107 +msgid ":class:`FlagBoundary`" +msgstr "" + +#: ../../library/enum.rst:109 +msgid "" +"An enumeration with the values ``STRICT``, ``CONFORM``, ``EJECT``, and " +"``KEEP`` which allows for more fine-grained control over how invalid values " +"are dealt with in an enumeration." +msgstr "" + +#: ../../library/enum.rst:113 +msgid ":class:`EnumDict`" +msgstr "" + +#: ../../library/enum.rst:115 +msgid "A subclass of :class:`dict` for use when subclassing :class:`EnumType`." +msgstr "" + +#: ../../library/enum.rst:117 +msgid ":class:`auto`" +msgstr "" + +#: ../../library/enum.rst:119 +msgid "" +"Instances are replaced with an appropriate value for Enum " +"members. :class:`StrEnum` defaults to the lower-cased version of the member " +"name, while other Enums default to 1 and increase from there." +msgstr "" + +#: ../../library/enum.rst:123 +msgid ":func:`~enum.property`" +msgstr "" + +#: ../../library/enum.rst:125 +msgid "" +"Allows :class:`Enum` members to have attributes without conflicting with " +"member names. The ``value`` and ``name`` attributes are implemented this " +"way." +msgstr "" + +#: ../../library/enum.rst:129 +msgid ":func:`unique`" +msgstr "" + +#: ../../library/enum.rst:131 +msgid "" +"Enum class decorator that ensures only one name is bound to any one value." +msgstr "" + +#: ../../library/enum.rst:133 +msgid ":func:`verify`" +msgstr "" + +#: ../../library/enum.rst:135 +msgid "" +"Enum class decorator that checks user-selectable constraints on an " +"enumeration." +msgstr "" + +#: ../../library/enum.rst:138 +msgid ":func:`member`" +msgstr "" + +#: ../../library/enum.rst:140 +msgid "Make ``obj`` a member. Can be used as a decorator." +msgstr "" + +#: ../../library/enum.rst:142 +msgid ":func:`nonmember`" +msgstr "" + +#: ../../library/enum.rst:144 +msgid "Do not make ``obj`` a member. Can be used as a decorator." +msgstr "" + +#: ../../library/enum.rst:146 +msgid ":func:`global_enum`" +msgstr "" + +#: ../../library/enum.rst:148 +msgid "" +"Modify the :class:`str() ` and :func:`repr` of an enum to show its " +"members as belonging to the module instead of its class, and export the enum " +"members to the global namespace." +msgstr "" + +#: ../../library/enum.rst:152 +msgid ":func:`show_flag_values`" +msgstr "" + +#: ../../library/enum.rst:154 +msgid "Return a list of all power-of-two integers contained in a flag." +msgstr "" + +#: ../../library/enum.rst:157 +msgid "``Flag``, ``IntFlag``, ``auto``" +msgstr "" + +#: ../../library/enum.rst:158 +msgid "" +"``StrEnum``, ``EnumCheck``, ``ReprEnum``, ``FlagBoundary``, ``property``, " +"``member``, ``nonmember``, ``global_enum``, ``show_flag_values``" +msgstr "" + +#: ../../library/enum.rst:159 +msgid "``EnumDict``" +msgstr "``EnumDict``" + +#: ../../library/enum.rst:164 +msgid "Data Types" +msgstr "" + +#: ../../library/enum.rst:169 +msgid "" +"*EnumType* is the :term:`metaclass` for *enum* enumerations. It is possible " +"to subclass *EnumType* -- see :ref:`Subclassing EnumType ` for details." +msgstr "" + +#: ../../library/enum.rst:173 +msgid "" +"``EnumType`` is responsible for setting the correct :meth:`!" +"__repr__`, :meth:`!__str__`, :meth:`!__format__`, and :meth:`!__reduce__` " +"methods on the final *enum*, as well as creating the enum members, properly " +"handling duplicates, providing iteration over the enum class, etc." +msgstr "" + +#: ../../library/enum.rst:180 +msgid "This method is called in two different ways:" +msgstr "" + +#: ../../library/enum.rst:182 +msgid "to look up an existing member:" +msgstr "" + +#: ../../library/enum.rst:0 +msgid "cls" +msgstr "" + +#: ../../library/enum.rst:184 ../../library/enum.rst:190 +msgid "The enum class being called." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "value" +msgstr "" + +#: ../../library/enum.rst:185 +msgid "The value to lookup." +msgstr "" + +#: ../../library/enum.rst:187 +msgid "" +"to use the ``cls`` enum to create a new enum (only if the existing enum does " +"not have any members):" +msgstr "" + +#: ../../library/enum.rst:191 +msgid "The name of the new Enum to create." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "names" +msgstr "" + +#: ../../library/enum.rst:192 +msgid "The names/values of the members for the new Enum." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "module" +msgstr "" + +#: ../../library/enum.rst:193 +msgid "The name of the module the new Enum is created in." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "qualname" +msgstr "" + +#: ../../library/enum.rst:194 +msgid "The actual location in the module where this Enum can be found." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "type" +msgstr "" + +#: ../../library/enum.rst:195 +msgid "A mix-in type for the new Enum." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "start" +msgstr "" + +#: ../../library/enum.rst:196 +msgid "The first integer value for the Enum (used by :class:`auto`)." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "boundary" +msgstr "" + +#: ../../library/enum.rst:197 +msgid "" +"How to handle out-of-range values from bit operations (:class:`Flag` only)." +msgstr "" + +#: ../../library/enum.rst:201 +msgid "Returns ``True`` if member belongs to the ``cls``::" +msgstr "" + +#: ../../library/enum.rst:203 +msgid "" +">>> some_var = Color.RED\n" +">>> some_var in Color\n" +"True\n" +">>> Color.RED.value in Color\n" +"True" +msgstr "" + +#: ../../library/enum.rst:211 +msgid "" +"Before Python 3.12, a ``TypeError`` is raised if a non-Enum-member is used " +"in a containment check." +msgstr "" + +#: ../../library/enum.rst:216 +msgid "" +"Returns ``['__class__', '__doc__', '__members__', '__module__']`` and the " +"names of the members in *cls*::" +msgstr "" + +#: ../../library/enum.rst:219 +msgid "" +">>> dir(Color)\n" +"['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', " +"'__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', " +"'__module__', '__name__', '__qualname__']" +msgstr "" + +#: ../../library/enum.rst:224 +msgid "" +"Returns the Enum member in *cls* matching *name*, or raises " +"a :exc:`KeyError`::" +msgstr "" + +#: ../../library/enum.rst:226 +msgid "" +">>> Color['BLUE']\n" +"" +msgstr "" + +#: ../../library/enum.rst:231 +msgid "Returns each member in *cls* in definition order::" +msgstr "" + +#: ../../library/enum.rst:233 +msgid "" +">>> list(Color)\n" +"[, , ]" +msgstr "" + +#: ../../library/enum.rst:238 +msgid "Returns the number of member in *cls*::" +msgstr "" + +#: ../../library/enum.rst:240 +msgid "" +">>> len(Color)\n" +"3" +msgstr "" + +#: ../../library/enum.rst:245 +msgid "Returns a mapping of every enum name to its member, including aliases" +msgstr "" + +#: ../../library/enum.rst:249 +msgid "Returns each member in *cls* in reverse definition order::" +msgstr "" + +#: ../../library/enum.rst:251 +msgid "" +">>> list(reversed(Color))\n" +"[, , ]" +msgstr "" + +#: ../../library/enum.rst:256 +msgid "" +"Adds a new name as an alias to an existing member. Raises " +"a :exc:`NameError` if the name is already assigned to a different member." +msgstr "" + +#: ../../library/enum.rst:261 +msgid "" +"Adds a new value as an alias to an existing member. Raises " +"a :exc:`ValueError` if the value is already linked with a different member." +msgstr "" + +#: ../../library/enum.rst:266 +msgid "" +"Before 3.11 ``EnumType`` was called ``EnumMeta``, which is still available " +"as an alias." +msgstr "" + +#: ../../library/enum.rst:271 +msgid "*Enum* is the base class for all *enum* enumerations." +msgstr "" + +#: ../../library/enum.rst:275 +msgid "The name used to define the ``Enum`` member::" +msgstr "" + +#: ../../library/enum.rst:277 +msgid "" +">>> Color.BLUE.name\n" +"'BLUE'" +msgstr "" + +#: ../../library/enum.rst:282 +msgid "The value given to the ``Enum`` member::" +msgstr "" + +#: ../../library/enum.rst:284 +msgid "" +">>> Color.RED.value\n" +"1" +msgstr "" + +#: ../../library/enum.rst:287 ../../library/enum.rst:307 +msgid "Value of the member, can be set in :meth:`~Enum.__new__`." +msgstr "" + +#: ../../library/enum.rst:289 +msgid "Enum member values" +msgstr "" + +#: ../../library/enum.rst:291 +msgid "" +"Member values can be anything: :class:`int`, :class:`str`, etc. If the " +"exact value is unimportant you may use :class:`auto` instances and an " +"appropriate value will be chosen for you. See :class:`auto` for the details." +msgstr "" + +#: ../../library/enum.rst:296 +msgid "" +"While mutable/unhashable values, such as :class:`dict`, :class:`list` or a " +"mutable :class:`~dataclasses.dataclass`, can be used, they will have a " +"quadratic performance impact during creation relative to the total number of " +"mutable/unhashable values in the enum." +msgstr "" + +#: ../../library/enum.rst:303 +msgid "Name of the member." +msgstr "" + +#: ../../library/enum.rst:311 +msgid "" +"No longer used, kept for backward compatibility. (class attribute, removed " +"during class creation)." +msgstr "" + +#: ../../library/enum.rst:316 +msgid "" +"``_ignore_`` is only used during creation and is removed from the " +"enumeration once creation is complete." +msgstr "" + +#: ../../library/enum.rst:319 +msgid "" +"``_ignore_`` is a list of names that will not become members, and whose " +"names will also be removed from the completed enumeration. " +"See :ref:`TimePeriod ` for an example." +msgstr "" + +#: ../../library/enum.rst:325 +msgid "" +"Returns ``['__class__', '__doc__', '__module__', 'name', 'value']`` and any " +"public methods defined on *self.__class__*::" +msgstr "" + +#: ../../library/enum.rst:328 +msgid "" +">>> from datetime import date\n" +">>> class Weekday(Enum):\n" +"... MONDAY = 1\n" +"... TUESDAY = 2\n" +"... WEDNESDAY = 3\n" +"... THURSDAY = 4\n" +"... FRIDAY = 5\n" +"... SATURDAY = 6\n" +"... SUNDAY = 7\n" +"... @classmethod\n" +"... def today(cls):\n" +"... print('today is %s' % cls(date.today().isoweekday()).name)\n" +"...\n" +">>> dir(Weekday.SATURDAY)\n" +"['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', " +"'today', 'value']" +msgstr "" + +#: ../../library/enum.rst:0 +msgid "name" +msgstr "" + +#: ../../library/enum.rst:346 +msgid "The name of the member being defined (e.g. 'RED')." +msgstr "" + +#: ../../library/enum.rst:347 +msgid "The start value for the Enum; the default is 1." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "count" +msgstr "" + +#: ../../library/enum.rst:348 +msgid "The number of members currently defined, not including this one." +msgstr "" + +#: ../../library/enum.rst:0 +msgid "last_values" +msgstr "" + +#: ../../library/enum.rst:349 +msgid "A list of the previous values." +msgstr "" + +#: ../../library/enum.rst:351 +msgid "" +"A *staticmethod* that is used to determine the next value returned " +"by :class:`auto`::" +msgstr "" + +#: ../../library/enum.rst:354 +msgid "" +">>> from enum import auto\n" +">>> class PowersOfThree(Enum):\n" +"... @staticmethod\n" +"... def _generate_next_value_(name, start, count, last_values):\n" +"... return 3 ** (count + 1)\n" +"... FIRST = auto()\n" +"... SECOND = auto()\n" +"...\n" +">>> PowersOfThree.SECOND.value\n" +"9" +msgstr "" + +#: ../../library/enum.rst:367 +msgid "" +"By default, does nothing. If multiple values are given in the member " +"assignment, those values become separate arguments to ``__init__``; e.g." +msgstr "" + +#: ../../library/enum.rst:374 +msgid "" +"``Weekday.__init__()`` would be called as ``Weekday.__init__(self, 1, " +"'Mon')``" +msgstr "" + +#: ../../library/enum.rst:378 +msgid "" +"A *classmethod* that is used to further configure subsequent subclasses. By " +"default, does nothing." +msgstr "" + +#: ../../library/enum.rst:383 +msgid "" +"A *classmethod* for looking up values not found in *cls*. By default it " +"does nothing, but can be overridden to implement custom search behavior::" +msgstr "" + +#: ../../library/enum.rst:386 +msgid "" +">>> from enum import StrEnum\n" +">>> class Build(StrEnum):\n" +"... DEBUG = auto()\n" +"... OPTIMIZED = auto()\n" +"... @classmethod\n" +"... def _missing_(cls, value):\n" +"... value = value.lower()\n" +"... for member in cls:\n" +"... if member.value == value:\n" +"... return member\n" +"... return None\n" +"...\n" +">>> Build.DEBUG.value\n" +"'debug'\n" +">>> Build('deBUG')\n" +"" +msgstr "" + +#: ../../library/enum.rst:405 +msgid "" +"By default, doesn't exist. If specified, either in the enum class " +"definition or in a mixin class (such as ``int``), all values given in the " +"member assignment will be passed; e.g." +msgstr "" + +#: ../../library/enum.rst:413 +msgid "" +"results in the call ``int('1a', 16)`` and a value of ``26`` for the member." +msgstr "" + +#: ../../library/enum.rst:417 +msgid "" +"When writing a custom ``__new__``, do not use ``super().__new__`` -- call " +"the appropriate ``__new__`` instead." +msgstr "" + +#: ../../library/enum.rst:422 +msgid "" +"Returns the string used for *repr()* calls. By default, returns the *Enum* " +"name, member name, and value, but can be overridden::" +msgstr "" + +#: ../../library/enum.rst:425 +msgid "" +">>> class OtherStyle(Enum):\n" +"... ALTERNATE = auto()\n" +"... OTHER = auto()\n" +"... SOMETHING_ELSE = auto()\n" +"... def __repr__(self):\n" +"... cls_name = self.__class__.__name__\n" +"... return f'{cls_name}.{self.name}'\n" +"...\n" +">>> OtherStyle.ALTERNATE, str(OtherStyle.ALTERNATE), " +"f\"{OtherStyle.ALTERNATE}\"\n" +"(OtherStyle.ALTERNATE, 'OtherStyle.ALTERNATE', 'OtherStyle.ALTERNATE')" +msgstr "" + +#: ../../library/enum.rst:438 +msgid "" +"Returns the string used for *str()* calls. By default, returns the *Enum* " +"name and member name, but can be overridden::" +msgstr "" + +#: ../../library/enum.rst:441 +msgid "" +">>> class OtherStyle(Enum):\n" +"... ALTERNATE = auto()\n" +"... OTHER = auto()\n" +"... SOMETHING_ELSE = auto()\n" +"... def __str__(self):\n" +"... return f'{self.name}'\n" +"...\n" +">>> OtherStyle.ALTERNATE, str(OtherStyle.ALTERNATE), " +"f\"{OtherStyle.ALTERNATE}\"\n" +"(, 'ALTERNATE', 'ALTERNATE')" +msgstr "" + +#: ../../library/enum.rst:453 +msgid "" +"Returns the string used for *format()* and *f-string* calls. By default, " +"returns :meth:`__str__` return value, but can be overridden::" +msgstr "" + +#: ../../library/enum.rst:456 +msgid "" +">>> class OtherStyle(Enum):\n" +"... ALTERNATE = auto()\n" +"... OTHER = auto()\n" +"... SOMETHING_ELSE = auto()\n" +"... def __format__(self, spec):\n" +"... return f'{self.name}'\n" +"...\n" +">>> OtherStyle.ALTERNATE, str(OtherStyle.ALTERNATE), " +"f\"{OtherStyle.ALTERNATE}\"\n" +"(, 'OtherStyle.ALTERNATE', 'ALTERNATE')" +msgstr "" + +#: ../../library/enum.rst:468 +msgid "" +"Using :class:`auto` with :class:`Enum` results in integers of increasing " +"value, starting with ``1``." +msgstr "" + +#: ../../library/enum.rst:471 +msgid "Added :ref:`enum-dataclass-support`" +msgstr "" + +#: ../../library/enum.rst:476 +msgid "" +"*IntEnum* is the same as :class:`Enum`, but its members are also integers " +"and can be used anywhere that an integer can be used. If any integer " +"operation is performed with an *IntEnum* member, the resulting value loses " +"its enumeration status." +msgstr "" + +#: ../../library/enum.rst:497 +msgid "" +"Using :class:`auto` with :class:`IntEnum` results in integers of increasing " +"value, starting with ``1``." +msgstr "" + +#: ../../library/enum.rst:500 +msgid "" +":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` was " +"already :meth:`!int.__format__` for that same reason." +msgstr "" + +#: ../../library/enum.rst:507 +msgid "" +"*StrEnum* is the same as :class:`Enum`, but its members are also strings and " +"can be used in most of the same places that a string can be used. The result " +"of any string operation performed on or with a *StrEnum* member is not part " +"of the enumeration." +msgstr "" + +#: ../../library/enum.rst:528 +msgid "" +"There are places in the stdlib that check for an exact :class:`str` instead " +"of a :class:`str` subclass (i.e. ``type(unknown) == str`` instead of " +"``isinstance(unknown, str)``), and in those locations you will need to use " +"``str(MyStrEnum.MY_MEMBER)``." +msgstr "" + +#: ../../library/enum.rst:535 +msgid "" +"Using :class:`auto` with :class:`StrEnum` results in the lower-cased member " +"name as the value." +msgstr "" + +#: ../../library/enum.rst:540 +msgid "" +":meth:`~object.__str__` is :meth:`!str.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` is " +"likewise :meth:`!str.__format__` for that same reason." +msgstr "" + +#: ../../library/enum.rst:548 +msgid "" +"``Flag`` is the same as :class:`Enum`, but its members support the bitwise " +"operators ``&`` (*AND*), ``|`` (*OR*), ``^`` (*XOR*), and ``~`` (*INVERT*); " +"the results of those operations are (aliases of) members of the enumeration." +msgstr "" + +#: ../../library/enum.rst:554 +msgid "Returns *True* if value is in self::" +msgstr "" + +#: ../../library/enum.rst:556 +msgid "" +">>> from enum import Flag, auto\n" +">>> class Color(Flag):\n" +"... RED = auto()\n" +"... GREEN = auto()\n" +"... BLUE = auto()\n" +"...\n" +">>> purple = Color.RED | Color.BLUE\n" +">>> white = Color.RED | Color.GREEN | Color.BLUE\n" +">>> Color.GREEN in purple\n" +"False\n" +">>> Color.GREEN in white\n" +"True\n" +">>> purple in white\n" +"True\n" +">>> white in purple\n" +"False" +msgstr "" + +#: ../../library/enum.rst:575 +msgid "Returns all contained non-alias members::" +msgstr "" + +#: ../../library/enum.rst:577 +msgid "" +">>> list(Color.RED)\n" +"[]\n" +">>> list(purple)\n" +"[, ]" +msgstr "" + +#: ../../library/enum.rst:586 +msgid "Returns number of members in flag::" +msgstr "" + +#: ../../library/enum.rst:588 +msgid "" +">>> len(Color.GREEN)\n" +"1\n" +">>> len(white)\n" +"3" +msgstr "" + +#: ../../library/enum.rst:597 +msgid "Returns *True* if any members in flag, *False* otherwise::" +msgstr "" + +#: ../../library/enum.rst:599 +msgid "" +">>> bool(Color.GREEN)\n" +"True\n" +">>> bool(white)\n" +"True\n" +">>> black = Color(0)\n" +">>> bool(black)\n" +"False" +msgstr "" + +#: ../../library/enum.rst:609 +msgid "Returns current flag binary or'ed with other::" +msgstr "" + +#: ../../library/enum.rst:611 +msgid "" +">>> Color.RED | Color.GREEN\n" +"" +msgstr "" + +#: ../../library/enum.rst:616 +msgid "Returns current flag binary and'ed with other::" +msgstr "" + +#: ../../library/enum.rst:618 +msgid "" +">>> purple & white\n" +"\n" +">>> purple & Color.GREEN\n" +"" +msgstr "" + +#: ../../library/enum.rst:625 +msgid "Returns current flag binary xor'ed with other::" +msgstr "" + +#: ../../library/enum.rst:627 +msgid "" +">>> purple ^ white\n" +"\n" +">>> purple ^ Color.GREEN\n" +"" +msgstr "" + +#: ../../library/enum.rst:634 +msgid "Returns all the flags in *type(self)* that are not in *self*::" +msgstr "" + +#: ../../library/enum.rst:636 +msgid "" +">>> ~white\n" +"\n" +">>> ~purple\n" +"\n" +">>> ~Color.RED\n" +"" +msgstr "" + +#: ../../library/enum.rst:645 +msgid "" +"Function used to format any remaining unnamed numeric values. Default is " +"the value's repr; common choices are :func:`hex` and :func:`oct`." +msgstr "" + +#: ../../library/enum.rst:650 +msgid "" +"Using :class:`auto` with :class:`Flag` results in integers that are powers " +"of two, starting with ``1``." +msgstr "" + +#: ../../library/enum.rst:653 +msgid "The *repr()* of zero-valued flags has changed. It is now:" +msgstr "" + +#: ../../library/enum.rst:661 +msgid "" +"``IntFlag`` is the same as :class:`Flag`, but its members are also integers " +"and can be used anywhere that an integer can be used." +msgstr "" + +#: ../../library/enum.rst:675 +msgid "" +"If any integer operation is performed with an *IntFlag* member, the result " +"is not an *IntFlag*::" +msgstr "" + +#: ../../library/enum.rst:678 +msgid "" +">>> Color.RED + 2\n" +"3" +msgstr "" + +#: ../../library/enum.rst:681 +msgid "If a :class:`Flag` operation is performed with an *IntFlag* member and:" +msgstr "" + +#: ../../library/enum.rst:683 +msgid "the result is a valid *IntFlag*: an *IntFlag* is returned" +msgstr "" + +#: ../../library/enum.rst:684 +msgid "" +"the result is not a valid *IntFlag*: the result depends on " +"the :class:`FlagBoundary` setting" +msgstr "" + +#: ../../library/enum.rst:686 +msgid "The :func:`repr` of unnamed zero-valued flags has changed. It is now::" +msgstr "" + +#: ../../library/enum.rst:688 +msgid "" +">>> Color(0)\n" +"" +msgstr "" + +#: ../../library/enum.rst:693 +msgid "" +"Using :class:`auto` with :class:`IntFlag` results in integers that are " +"powers of two, starting with ``1``." +msgstr "" + +#: ../../library/enum.rst:698 +msgid "" +":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` " +"was already :meth:`!int.__format__` for that same reason." +msgstr "" + +#: ../../library/enum.rst:702 +msgid "" +"Inversion of an :class:`!IntFlag` now returns a positive value that is the " +"union of all flags not in the given flag, rather than a negative value. This " +"matches the existing :class:`Flag` behavior." +msgstr "" + +#: ../../library/enum.rst:708 +msgid "" +":class:`!ReprEnum` uses the :meth:`repr() ` of :class:`Enum`, " +"but the :class:`str() ` of the mixed-in data type:" +msgstr "" + +#: ../../library/enum.rst:711 +msgid ":meth:`!int.__str__` for :class:`IntEnum` and :class:`IntFlag`" +msgstr "" + +#: ../../library/enum.rst:712 +msgid ":meth:`!str.__str__` for :class:`StrEnum`" +msgstr "" + +#: ../../library/enum.rst:714 +msgid "" +"Inherit from :class:`!ReprEnum` to keep the :class:`str() " +"` / :func:`format` of the mixed-in data type instead of using " +"the :class:`Enum`-default :meth:`str() `." +msgstr "" + +#: ../../library/enum.rst:723 +msgid "" +"*EnumCheck* contains the options used by the :func:`verify` decorator to " +"ensure various constraints; failed constraints result in a :exc:`ValueError`." +msgstr "" + +#: ../../library/enum.rst:728 +msgid "Ensure that each value has only one name::" +msgstr "" + +#: ../../library/enum.rst:730 +msgid "" +">>> from enum import Enum, verify, UNIQUE\n" +">>> @verify(UNIQUE)\n" +"... class Color(Enum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 3\n" +"... CRIMSON = 1\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: aliases found in : CRIMSON -> RED" +msgstr "" + +#: ../../library/enum.rst:744 +msgid "" +"Ensure that there are no missing values between the lowest-valued member and " +"the highest-valued member::" +msgstr "" + +#: ../../library/enum.rst:747 +msgid "" +">>> from enum import Enum, verify, CONTINUOUS\n" +">>> @verify(CONTINUOUS)\n" +"... class Color(Enum):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 5\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: invalid enum 'Color': missing values 3, 4" +msgstr "" + +#: ../../library/enum.rst:759 +msgid "" +"Ensure that any flag groups/masks contain only named flags -- useful when " +"values are specified instead of being generated by :func:`auto`::" +msgstr "" + +#: ../../library/enum.rst:762 +msgid "" +">>> from enum import Flag, verify, NAMED_FLAGS\n" +">>> @verify(NAMED_FLAGS)\n" +"... class Color(Flag):\n" +"... RED = 1\n" +"... GREEN = 2\n" +"... BLUE = 4\n" +"... WHITE = 15\n" +"... NEON = 31\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: invalid Flag 'Color': aliases WHITE and NEON are missing " +"combined values of 0x18 [use enum.show_flag_values(value) for details]" +msgstr "" + +#: ../../library/enum.rst:776 +msgid "" +"CONTINUOUS and NAMED_FLAGS are designed to work with integer-valued members." +msgstr "" + +#: ../../library/enum.rst:782 +msgid "" +"``FlagBoundary`` controls how out-of-range values are handled " +"in :class:`Flag` and its subclasses." +msgstr "" + +#: ../../library/enum.rst:787 +msgid "" +"Out-of-range values cause a :exc:`ValueError` to be raised. This is the " +"default for :class:`Flag`::" +msgstr "" + +#: ../../library/enum.rst:790 +msgid "" +">>> from enum import Flag, STRICT, auto\n" +">>> class StrictFlag(Flag, boundary=STRICT):\n" +"... RED = auto()\n" +"... GREEN = auto()\n" +"... BLUE = auto()\n" +"...\n" +">>> StrictFlag(2**2 + 2**4)\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: invalid value 20\n" +" given 0b0 10100\n" +" allowed 0b0 00111" +msgstr "" + +#: ../../library/enum.rst:805 +msgid "" +"Out-of-range values have invalid values removed, leaving a " +"valid :class:`Flag` value::" +msgstr "" + +#: ../../library/enum.rst:808 +msgid "" +">>> from enum import Flag, CONFORM, auto\n" +">>> class ConformFlag(Flag, boundary=CONFORM):\n" +"... RED = auto()\n" +"... GREEN = auto()\n" +"... BLUE = auto()\n" +"...\n" +">>> ConformFlag(2**2 + 2**4)\n" +"" +msgstr "" + +#: ../../library/enum.rst:819 +msgid "" +"Out-of-range values lose their :class:`Flag` membership and revert " +"to :class:`int`." +msgstr "" + +#: ../../library/enum.rst:832 +msgid "" +"Out-of-range values are kept, and the :class:`Flag` membership is kept. This " +"is the default for :class:`IntFlag`::" +msgstr "" + +#: ../../library/enum.rst:835 +msgid "" +">>> from enum import Flag, KEEP, auto\n" +">>> class KeepFlag(Flag, boundary=KEEP):\n" +"... RED = auto()\n" +"... GREEN = auto()\n" +"... BLUE = auto()\n" +"...\n" +">>> KeepFlag(2**2 + 2**4)\n" +"" +msgstr "" + +#: ../../library/enum.rst:848 +msgid "" +"*EnumDict* is a subclass of :class:`dict` that is used as the namespace for " +"defining enum classes (see :ref:`prepare`). It is exposed to allow " +"subclasses of :class:`EnumType` with advanced behavior like having multiple " +"values per member. It should be called with the name of the enum class being " +"created, otherwise private names and internal classes will not be handled " +"correctly." +msgstr "" + +#: ../../library/enum.rst:855 +msgid "" +"Note that only the :class:`~collections.abc.MutableMapping` interface " +"(:meth:`~object.__setitem__` and :meth:`~dict.update`) is overridden. It may " +"be possible to bypass the checks using other :class:`!dict` operations " +"like :meth:`|= `." +msgstr "" + +#: ../../library/enum.rst:862 +msgid "A list of member names." +msgstr "" + +#: ../../library/enum.rst:869 +msgid "Supported ``__dunder__`` names" +msgstr "" + +#: ../../library/enum.rst:871 +msgid "" +":attr:`~EnumType.__members__` is a read-only ordered mapping of " +"``member_name``:``member`` items. It is only available on the class." +msgstr "" + +#: ../../library/enum.rst:874 +msgid "" +":meth:`~Enum.__new__`, if specified, must create and return the enum " +"members; it is also a very good idea to set the member's :attr:`!_value_` " +"appropriately. Once all the members are created it is no longer used." +msgstr "" + +#: ../../library/enum.rst:880 +msgid "Supported ``_sunder_`` names" +msgstr "" + +#: ../../library/enum.rst:882 +msgid "" +":meth:`~EnumType._add_alias_` -- adds a new name as an alias to an existing " +"member." +msgstr "" + +#: ../../library/enum.rst:884 +msgid "" +":meth:`~EnumType._add_value_alias_` -- adds a new value as an alias to an " +"existing member." +msgstr "" + +#: ../../library/enum.rst:886 +msgid ":attr:`~Enum._name_` -- name of the member" +msgstr "" + +#: ../../library/enum.rst:887 +msgid ":attr:`~Enum._value_` -- value of the member; can be set in ``__new__``" +msgstr "" + +#: ../../library/enum.rst:888 +msgid "" +":meth:`~Enum._missing_` -- a lookup function used when a value is not found; " +"may be overridden" +msgstr "" + +#: ../../library/enum.rst:890 +msgid "" +":attr:`~Enum._ignore_` -- a list of names, either as a :class:`list` or " +"a :class:`str`, that will not be transformed into members, and will be " +"removed from the final class" +msgstr "" + +#: ../../library/enum.rst:893 +msgid "" +":attr:`~Enum._order_` -- no longer used, kept for backward compatibility " +"(class attribute, removed during class creation)" +msgstr "" + +#: ../../library/enum.rst:895 +msgid "" +":meth:`~Enum._generate_next_value_` -- used to get an appropriate value for " +"an enum member; may be overridden" +msgstr "" + +#: ../../library/enum.rst:900 +msgid "" +"For standard :class:`Enum` classes the next value chosen is the highest " +"value seen incremented by one." +msgstr "" + +#: ../../library/enum.rst:903 +msgid "" +"For :class:`Flag` classes the next value chosen will be the next highest " +"power-of-two." +msgstr "" + +#: ../../library/enum.rst:906 +msgid "" +"While ``_sunder_`` names are generally reserved for the further development " +"of the :class:`Enum` class and can not be used, some are explicitly allowed:" +msgstr "" + +#: ../../library/enum.rst:909 +msgid "" +"``_repr_*`` (e.g. ``_repr_html_``), as used in `IPython's rich display`_" +msgstr "" + +#: ../../library/enum.rst:911 +msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" +msgstr "" + +#: ../../library/enum.rst:912 +msgid "``_ignore_``" +msgstr "``_ignore_``" + +#: ../../library/enum.rst:913 +msgid "``_add_alias_``, ``_add_value_alias_``, ``_repr_*``" +msgstr "" + +#: ../../library/enum.rst:919 +msgid "Utilities and Decorators" +msgstr "" + +#: ../../library/enum.rst:923 +msgid "" +"*auto* can be used in place of a value. If used, the *Enum* machinery will " +"call an :class:`Enum`'s :meth:`~Enum._generate_next_value_` to get an " +"appropriate value. For :class:`Enum` and :class:`IntEnum` that appropriate " +"value will be the last value plus one; for :class:`Flag` " +"and :class:`IntFlag` it will be the first power-of-two greater than the " +"highest value; for :class:`StrEnum` it will be the lower-cased version of " +"the member's name. Care must be taken if mixing *auto()* with manually " +"specified values." +msgstr "" + +#: ../../library/enum.rst:931 +msgid "" +"*auto* instances are only resolved when at the top level of an assignment:" +msgstr "" + +#: ../../library/enum.rst:933 +msgid "``FIRST = auto()`` will work (auto() is replaced with ``1``);" +msgstr "" + +#: ../../library/enum.rst:934 +msgid "" +"``SECOND = auto(), -2`` will work (auto is replaced with ``2``, so ``2, -2`` " +"is used to create the ``SECOND`` enum member;" +msgstr "" + +#: ../../library/enum.rst:936 +msgid "" +"``THREE = [auto(), -3]`` will *not* work (``, -3`` is used to " +"create the ``THREE`` enum member)" +msgstr "" + +#: ../../library/enum.rst:941 +msgid "" +"In prior versions, ``auto()`` had to be the only thing on the assignment " +"line to work properly." +msgstr "" + +#: ../../library/enum.rst:944 +msgid "" +"``_generate_next_value_`` can be overridden to customize the values used by " +"*auto*." +msgstr "" + +#: ../../library/enum.rst:947 +msgid "" +"in 3.13 the default ``_generate_next_value_`` will always return the highest " +"member value incremented by 1, and will fail if any member is an " +"incompatible type." +msgstr "" + +#: ../../library/enum.rst:953 +msgid "" +"A decorator similar to the built-in *property*, but specifically for " +"enumerations. It allows member attributes to have the same names as members " +"themselves." +msgstr "" + +#: ../../library/enum.rst:957 +msgid "" +"the *property* and the member must be defined in separate classes; for " +"example, the *value* and *name* attributes are defined in the *Enum* class, " +"and *Enum* subclasses can define members with the names ``value`` and " +"``name``." +msgstr "" + +#: ../../library/enum.rst:966 +msgid "" +"A :keyword:`class` decorator specifically for enumerations. It searches an " +"enumeration's :attr:`~EnumType.__members__`, gathering any aliases it finds; " +"if any are found :exc:`ValueError` is raised with the details::" +msgstr "" + +#: ../../library/enum.rst:970 +msgid "" +">>> from enum import Enum, unique\n" +">>> @unique\n" +"... class Mistake(Enum):\n" +"... ONE = 1\n" +"... TWO = 2\n" +"... THREE = 3\n" +"... FOUR = 3\n" +"...\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: duplicate values found in : FOUR -> THREE" +msgstr "" + +#: ../../library/enum.rst:984 +msgid "" +"A :keyword:`class` decorator specifically for enumerations. Members " +"from :class:`EnumCheck` are used to specify which constraints should be " +"checked on the decorated enumeration." +msgstr "" + +#: ../../library/enum.rst:992 +msgid "A decorator for use in enums: its target will become a member." +msgstr "" + +#: ../../library/enum.rst:998 +msgid "A decorator for use in enums: its target will not become a member." +msgstr "" + +#: ../../library/enum.rst:1004 +msgid "" +"A decorator to change the :class:`str() ` and :func:`repr` of an enum " +"to show its members as belonging to the module instead of its class. Should " +"only be used when the enum members are exported to the module global " +"namespace (see :class:`re.RegexFlag` for an example)." +msgstr "" + +#: ../../library/enum.rst:1014 +msgid "Return a list of all power-of-two integers contained in a flag *value*." +msgstr "" + +#: ../../library/enum.rst:1021 +msgid "Notes" +msgstr "" + +#: ../../library/enum.rst:1023 +msgid ":class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag`" +msgstr "" + +#: ../../library/enum.rst:1025 +msgid "" +"These three enum types are designed to be drop-in replacements for existing " +"integer- and string-based values; as such, they have extra limitations:" +msgstr "" + +#: ../../library/enum.rst:1028 +msgid "``__str__`` uses the value and not the name of the enum member" +msgstr "" + +#: ../../library/enum.rst:1030 +msgid "" +"``__format__``, because it uses ``__str__``, will also use the value of the " +"enum member instead of its name" +msgstr "" + +#: ../../library/enum.rst:1033 +msgid "" +"If you do not need/want those limitations, you can either create your own " +"base class by mixing in the ``int`` or ``str`` type yourself::" +msgstr "" + +#: ../../library/enum.rst:1036 +msgid "" +">>> from enum import Enum\n" +">>> class MyIntEnum(int, Enum):\n" +"... pass" +msgstr "" + +#: ../../library/enum.rst:1040 +msgid "or you can reassign the appropriate :meth:`str`, etc., in your enum::" +msgstr "" + +#: ../../library/enum.rst:1042 +msgid "" +">>> from enum import Enum, IntEnum\n" +">>> class MyIntEnum(IntEnum):\n" +"... __str__ = Enum.__str__" +msgstr "" diff --git a/library/errno.po b/library/errno.po new file mode 100644 index 0000000..7d3dcfd --- /dev/null +++ b/library/errno.po @@ -0,0 +1,712 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/errno.rst:2 +msgid ":mod:`!errno` --- Standard errno system symbols" +msgstr "" + +#: ../../library/errno.rst:9 +msgid "" +"This module makes available standard ``errno`` system symbols. The value of " +"each symbol is the corresponding integer value. The names and descriptions " +"are borrowed from :file:`linux/include/errno.h`, which should be all-" +"inclusive." +msgstr "" + +#: ../../library/errno.rst:17 +msgid "" +"Dictionary providing a mapping from the errno value to the string name in " +"the underlying system. For instance, ``errno.errorcode[errno.EPERM]`` maps " +"to ``'EPERM'``." +msgstr "" + +#: ../../library/errno.rst:21 +msgid "" +"To translate a numeric error code to an error message, " +"use :func:`os.strerror`." +msgstr "" + +#: ../../library/errno.rst:23 +msgid "" +"Of the following list, symbols that are not used on the current platform are " +"not defined by the module. The specific list of defined symbols is " +"available as ``errno.errorcode.keys()``. Symbols available can include:" +msgstr "" + +#: ../../library/errno.rst:30 +msgid "" +"Operation not permitted. This error is mapped to the " +"exception :exc:`PermissionError`." +msgstr "" + +#: ../../library/errno.rst:36 +msgid "" +"No such file or directory. This error is mapped to the " +"exception :exc:`FileNotFoundError`." +msgstr "" + +#: ../../library/errno.rst:42 +msgid "" +"No such process. This error is mapped to the " +"exception :exc:`ProcessLookupError`." +msgstr "" + +#: ../../library/errno.rst:48 +msgid "" +"Interrupted system call. This error is mapped to the " +"exception :exc:`InterruptedError`." +msgstr "" + +#: ../../library/errno.rst:54 +msgid "I/O error" +msgstr "" + +#: ../../library/errno.rst:59 +msgid "No such device or address" +msgstr "" + +#: ../../library/errno.rst:64 +msgid "Arg list too long" +msgstr "" + +#: ../../library/errno.rst:69 +msgid "Exec format error" +msgstr "" + +#: ../../library/errno.rst:74 +msgid "Bad file number" +msgstr "" + +#: ../../library/errno.rst:79 +msgid "" +"No child processes. This error is mapped to the " +"exception :exc:`ChildProcessError`." +msgstr "" + +#: ../../library/errno.rst:85 +msgid "" +"Try again. This error is mapped to the exception :exc:`BlockingIOError`." +msgstr "" + +#: ../../library/errno.rst:90 +msgid "Out of memory" +msgstr "" + +#: ../../library/errno.rst:95 +msgid "" +"Permission denied. This error is mapped to the " +"exception :exc:`PermissionError`." +msgstr "" + +#: ../../library/errno.rst:101 +msgid "Bad address" +msgstr "" + +#: ../../library/errno.rst:106 +msgid "Block device required" +msgstr "" + +#: ../../library/errno.rst:111 +msgid "Device or resource busy" +msgstr "" + +#: ../../library/errno.rst:116 +msgid "" +"File exists. This error is mapped to the exception :exc:`FileExistsError`." +msgstr "" + +#: ../../library/errno.rst:122 +msgid "Cross-device link" +msgstr "" + +#: ../../library/errno.rst:127 +msgid "No such device" +msgstr "" + +#: ../../library/errno.rst:132 +msgid "" +"Not a directory. This error is mapped to the " +"exception :exc:`NotADirectoryError`." +msgstr "" + +#: ../../library/errno.rst:138 +msgid "" +"Is a directory. This error is mapped to the " +"exception :exc:`IsADirectoryError`." +msgstr "" + +#: ../../library/errno.rst:144 +msgid "Invalid argument" +msgstr "" + +#: ../../library/errno.rst:149 +msgid "File table overflow" +msgstr "" + +#: ../../library/errno.rst:154 +msgid "Too many open files" +msgstr "" + +#: ../../library/errno.rst:159 +msgid "Not a typewriter" +msgstr "" + +#: ../../library/errno.rst:164 +msgid "Text file busy" +msgstr "" + +#: ../../library/errno.rst:169 +msgid "File too large" +msgstr "" + +#: ../../library/errno.rst:174 +msgid "No space left on device" +msgstr "" + +#: ../../library/errno.rst:179 +msgid "Illegal seek" +msgstr "" + +#: ../../library/errno.rst:184 +msgid "Read-only file system" +msgstr "" + +#: ../../library/errno.rst:189 +msgid "Too many links" +msgstr "" + +#: ../../library/errno.rst:194 +msgid "" +"Broken pipe. This error is mapped to the exception :exc:`BrokenPipeError`." +msgstr "" + +#: ../../library/errno.rst:200 +msgid "Math argument out of domain of func" +msgstr "" + +#: ../../library/errno.rst:205 +msgid "Math result not representable" +msgstr "" + +#: ../../library/errno.rst:210 +msgid "Resource deadlock would occur" +msgstr "" + +#: ../../library/errno.rst:215 +msgid "File name too long" +msgstr "" + +#: ../../library/errno.rst:220 +msgid "No record locks available" +msgstr "" + +#: ../../library/errno.rst:225 +msgid "Function not implemented" +msgstr "" + +#: ../../library/errno.rst:230 +msgid "Directory not empty" +msgstr "" + +#: ../../library/errno.rst:235 +msgid "Too many symbolic links encountered" +msgstr "" + +#: ../../library/errno.rst:240 +msgid "" +"Operation would block. This error is mapped to the " +"exception :exc:`BlockingIOError`." +msgstr "" + +#: ../../library/errno.rst:246 +msgid "No message of desired type" +msgstr "" + +#: ../../library/errno.rst:251 +msgid "Identifier removed" +msgstr "" + +#: ../../library/errno.rst:256 +msgid "Channel number out of range" +msgstr "" + +#: ../../library/errno.rst:261 +msgid "Level 2 not synchronized" +msgstr "" + +#: ../../library/errno.rst:266 +msgid "Level 3 halted" +msgstr "" + +#: ../../library/errno.rst:271 +msgid "Level 3 reset" +msgstr "" + +#: ../../library/errno.rst:276 +msgid "Link number out of range" +msgstr "" + +#: ../../library/errno.rst:281 +msgid "Protocol driver not attached" +msgstr "" + +#: ../../library/errno.rst:286 +msgid "No CSI structure available" +msgstr "" + +#: ../../library/errno.rst:291 +msgid "Level 2 halted" +msgstr "" + +#: ../../library/errno.rst:296 +msgid "Invalid exchange" +msgstr "" + +#: ../../library/errno.rst:301 +msgid "Invalid request descriptor" +msgstr "" + +#: ../../library/errno.rst:306 +msgid "Exchange full" +msgstr "" + +#: ../../library/errno.rst:311 +msgid "No anode" +msgstr "" + +#: ../../library/errno.rst:316 +msgid "Invalid request code" +msgstr "" + +#: ../../library/errno.rst:321 +msgid "Invalid slot" +msgstr "" + +#: ../../library/errno.rst:326 +msgid "File locking deadlock error" +msgstr "" + +#: ../../library/errno.rst:331 +msgid "Bad font file format" +msgstr "" + +#: ../../library/errno.rst:336 +msgid "Device not a stream" +msgstr "" + +#: ../../library/errno.rst:341 +msgid "No data available" +msgstr "" + +#: ../../library/errno.rst:346 +msgid "Timer expired" +msgstr "" + +#: ../../library/errno.rst:351 +msgid "Out of streams resources" +msgstr "" + +#: ../../library/errno.rst:356 +msgid "Machine is not on the network" +msgstr "" + +#: ../../library/errno.rst:361 +msgid "Package not installed" +msgstr "" + +#: ../../library/errno.rst:366 +msgid "Object is remote" +msgstr "" + +#: ../../library/errno.rst:371 +msgid "Link has been severed" +msgstr "" + +#: ../../library/errno.rst:376 +msgid "Advertise error" +msgstr "" + +#: ../../library/errno.rst:381 +msgid "Srmount error" +msgstr "" + +#: ../../library/errno.rst:386 +msgid "Communication error on send" +msgstr "" + +#: ../../library/errno.rst:391 +msgid "Protocol error" +msgstr "" + +#: ../../library/errno.rst:396 +msgid "Multihop attempted" +msgstr "" + +#: ../../library/errno.rst:401 +msgid "RFS specific error" +msgstr "" + +#: ../../library/errno.rst:406 +msgid "Not a data message" +msgstr "" + +#: ../../library/errno.rst:411 +msgid "Value too large for defined data type" +msgstr "" + +#: ../../library/errno.rst:416 +msgid "Name not unique on network" +msgstr "" + +#: ../../library/errno.rst:421 +msgid "File descriptor in bad state" +msgstr "" + +#: ../../library/errno.rst:426 +msgid "Remote address changed" +msgstr "" + +#: ../../library/errno.rst:431 +msgid "Can not access a needed shared library" +msgstr "" + +#: ../../library/errno.rst:436 +msgid "Accessing a corrupted shared library" +msgstr "" + +#: ../../library/errno.rst:441 +msgid ".lib section in a.out corrupted" +msgstr "" + +#: ../../library/errno.rst:446 +msgid "Attempting to link in too many shared libraries" +msgstr "" + +#: ../../library/errno.rst:451 +msgid "Cannot exec a shared library directly" +msgstr "" + +#: ../../library/errno.rst:456 +msgid "Illegal byte sequence" +msgstr "" + +#: ../../library/errno.rst:461 +msgid "Interrupted system call should be restarted" +msgstr "" + +#: ../../library/errno.rst:466 +msgid "Streams pipe error" +msgstr "" + +#: ../../library/errno.rst:471 +msgid "Too many users" +msgstr "" + +#: ../../library/errno.rst:476 +msgid "Socket operation on non-socket" +msgstr "" + +#: ../../library/errno.rst:481 +msgid "Destination address required" +msgstr "" + +#: ../../library/errno.rst:486 +msgid "Message too long" +msgstr "" + +#: ../../library/errno.rst:491 +msgid "Protocol wrong type for socket" +msgstr "" + +#: ../../library/errno.rst:496 +msgid "Protocol not available" +msgstr "" + +#: ../../library/errno.rst:501 +msgid "Protocol not supported" +msgstr "" + +#: ../../library/errno.rst:506 +msgid "Socket type not supported" +msgstr "" + +#: ../../library/errno.rst:511 +msgid "Operation not supported on transport endpoint" +msgstr "" + +#: ../../library/errno.rst:516 +msgid "Operation not supported" +msgstr "" + +#: ../../library/errno.rst:523 +msgid "Protocol family not supported" +msgstr "" + +#: ../../library/errno.rst:528 +msgid "Address family not supported by protocol" +msgstr "" + +#: ../../library/errno.rst:533 +msgid "Address already in use" +msgstr "" + +#: ../../library/errno.rst:538 +msgid "Cannot assign requested address" +msgstr "" + +#: ../../library/errno.rst:543 +msgid "Network is down" +msgstr "" + +#: ../../library/errno.rst:548 +msgid "Network is unreachable" +msgstr "" + +#: ../../library/errno.rst:553 +msgid "Network dropped connection because of reset" +msgstr "" + +#: ../../library/errno.rst:558 +msgid "" +"Software caused connection abort. This error is mapped to the " +"exception :exc:`ConnectionAbortedError`." +msgstr "" + +#: ../../library/errno.rst:564 +msgid "" +"Connection reset by peer. This error is mapped to the " +"exception :exc:`ConnectionResetError`." +msgstr "" + +#: ../../library/errno.rst:570 +msgid "No buffer space available" +msgstr "" + +#: ../../library/errno.rst:575 +msgid "Transport endpoint is already connected" +msgstr "" + +#: ../../library/errno.rst:580 +msgid "Transport endpoint is not connected" +msgstr "" + +#: ../../library/errno.rst:585 +msgid "" +"Cannot send after transport endpoint shutdown. This error is mapped to the " +"exception :exc:`BrokenPipeError`." +msgstr "" + +#: ../../library/errno.rst:591 +msgid "Too many references: cannot splice" +msgstr "" + +#: ../../library/errno.rst:596 +msgid "" +"Connection timed out. This error is mapped to the " +"exception :exc:`TimeoutError`." +msgstr "" + +#: ../../library/errno.rst:602 +msgid "" +"Connection refused. This error is mapped to the " +"exception :exc:`ConnectionRefusedError`." +msgstr "" + +#: ../../library/errno.rst:608 +msgid "Host is down" +msgstr "" + +#: ../../library/errno.rst:613 +msgid "No route to host" +msgstr "" + +#: ../../library/errno.rst:618 +msgid "Memory page has hardware error." +msgstr "" + +#: ../../library/errno.rst:625 +msgid "" +"Operation already in progress. This error is mapped to the " +"exception :exc:`BlockingIOError`." +msgstr "" + +#: ../../library/errno.rst:631 +msgid "" +"Operation now in progress. This error is mapped to the " +"exception :exc:`BlockingIOError`." +msgstr "" + +#: ../../library/errno.rst:637 +msgid "Stale NFS file handle" +msgstr "" + +#: ../../library/errno.rst:642 +msgid "Structure needs cleaning" +msgstr "" + +#: ../../library/errno.rst:647 +msgid "Not a XENIX named type file" +msgstr "" + +#: ../../library/errno.rst:652 +msgid "No XENIX semaphores available" +msgstr "" + +#: ../../library/errno.rst:657 +msgid "Is a named type file" +msgstr "" + +#: ../../library/errno.rst:662 +msgid "Remote I/O error" +msgstr "" + +#: ../../library/errno.rst:667 +msgid "Quota exceeded" +msgstr "" + +#: ../../library/errno.rst:671 +msgid "Interface output queue is full" +msgstr "" + +#: ../../library/errno.rst:678 +msgid "No medium found" +msgstr "" + +#: ../../library/errno.rst:683 +msgid "Wrong medium type" +msgstr "" + +#: ../../library/errno.rst:688 +msgid "Required key not available" +msgstr "" + +#: ../../library/errno.rst:693 +msgid "Key has expired" +msgstr "" + +#: ../../library/errno.rst:698 +msgid "Key has been revoked" +msgstr "" + +#: ../../library/errno.rst:703 +msgid "Key was rejected by service" +msgstr "" + +#: ../../library/errno.rst:708 +msgid "Operation not possible due to RF-kill" +msgstr "" + +#: ../../library/errno.rst:713 +msgid "Locked lock was unmapped" +msgstr "" + +#: ../../library/errno.rst:718 +msgid "Facility is not active" +msgstr "" + +#: ../../library/errno.rst:723 +msgid "Authentication error" +msgstr "" + +#: ../../library/errno.rst:730 +msgid "Bad CPU type in executable" +msgstr "" + +#: ../../library/errno.rst:737 +msgid "Bad executable (or shared library)" +msgstr "" + +#: ../../library/errno.rst:744 +msgid "Malformed Mach-o file" +msgstr "" + +#: ../../library/errno.rst:751 +msgid "Device error" +msgstr "" + +#: ../../library/errno.rst:758 +msgid "Inappropriate file type or format" +msgstr "" + +#: ../../library/errno.rst:765 +msgid "Need authenticator" +msgstr "" + +#: ../../library/errno.rst:772 +msgid "Attribute not found" +msgstr "" + +#: ../../library/errno.rst:779 +msgid "Policy not found" +msgstr "" + +#: ../../library/errno.rst:786 +msgid "Too many processes" +msgstr "" + +#: ../../library/errno.rst:793 +msgid "Bad procedure for program" +msgstr "" + +#: ../../library/errno.rst:800 +msgid "Program version wrong" +msgstr "" + +#: ../../library/errno.rst:807 +msgid "RPC prog. not avail" +msgstr "" + +#: ../../library/errno.rst:814 +msgid "Device power is off" +msgstr "" + +#: ../../library/errno.rst:821 +msgid "RPC struct is bad" +msgstr "" + +#: ../../library/errno.rst:828 +msgid "RPC version wrong" +msgstr "" + +#: ../../library/errno.rst:835 +msgid "Shared library version mismatch" +msgstr "" + +#: ../../library/errno.rst:842 +msgid "" +"Capabilities insufficient. This error is mapped to the " +"exception :exc:`PermissionError`." +msgstr "" + +#: ../../library/errno.rst:845 +msgid "Availability" +msgstr "" + +#: ../../library/errno.rst:852 +msgid "Operation canceled" +msgstr "" + +#: ../../library/errno.rst:859 +msgid "Owner died" +msgstr "" + +#: ../../library/errno.rst:866 +msgid "State not recoverable" +msgstr "" diff --git a/library/exceptions.po b/library/exceptions.po new file mode 100644 index 0000000..a01a5ac --- /dev/null +++ b/library/exceptions.po @@ -0,0 +1,1377 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/exceptions.rst:4 +msgid "Built-in Exceptions" +msgstr "" + +#: ../../library/exceptions.rst:10 +msgid "" +"In Python, all exceptions must be instances of a class that derives " +"from :class:`BaseException`. In a :keyword:`try` statement with " +"an :keyword:`except` clause that mentions a particular class, that clause " +"also handles any exception classes derived from that class (but not " +"exception classes from which *it* is derived). Two exception classes that " +"are not related via subclassing are never equivalent, even if they have the " +"same name." +msgstr "" + +#: ../../library/exceptions.rst:19 +msgid "" +"The built-in exceptions listed in this chapter can be generated by the " +"interpreter or built-in functions. Except where mentioned, they have an " +"\"associated value\" indicating the detailed cause of the error. This may " +"be a string or a tuple of several items of information (e.g., an error code " +"and a string explaining the code). The associated value is usually passed " +"as arguments to the exception class's constructor." +msgstr "" + +#: ../../library/exceptions.rst:26 +msgid "" +"User code can raise built-in exceptions. This can be used to test an " +"exception handler or to report an error condition \"just like\" the " +"situation in which the interpreter raises the same exception; but beware " +"that there is nothing to prevent user code from raising an inappropriate " +"error." +msgstr "" + +#: ../../library/exceptions.rst:31 +msgid "" +"The built-in exception classes can be subclassed to define new exceptions; " +"programmers are encouraged to derive new exceptions from " +"the :exc:`Exception` class or one of its subclasses, and not " +"from :exc:`BaseException`. More information on defining exceptions is " +"available in the Python Tutorial under :ref:`tut-userexceptions`." +msgstr "" + +#: ../../library/exceptions.rst:39 +msgid "Exception context" +msgstr "" + +#: ../../library/exceptions.rst:46 +msgid "" +"Three attributes on exception objects provide information about the context " +"in which the exception was raised:" +msgstr "" + +#: ../../library/exceptions.rst:53 +msgid "" +"When raising a new exception while another exception is already being " +"handled, the new exception's :attr:`!__context__` attribute is automatically " +"set to the handled exception. An exception may be handled when " +"an :keyword:`except` or :keyword:`finally` clause, or a :keyword:`with` " +"statement, is used." +msgstr "" + +#: ../../library/exceptions.rst:59 +msgid "" +"This implicit exception context can be supplemented with an explicit cause " +"by using :keyword:`!from` with :keyword:`raise`::" +msgstr "" + +#: ../../library/exceptions.rst:63 +msgid "raise new_exc from original_exc" +msgstr "" + +#: ../../library/exceptions.rst:65 +msgid "" +"The expression following :keyword:`from` must be an exception or " +"``None``. It will be set as :attr:`!__cause__` on the raised exception. " +"Setting :attr:`!__cause__` also implicitly sets the :attr:`!" +"__suppress_context__` attribute to ``True``, so that using ``raise new_exc " +"from None`` effectively replaces the old exception with the new one for " +"display purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`), " +"while leaving the old exception available in :attr:`!__context__` for " +"introspection when debugging." +msgstr "" + +#: ../../library/exceptions.rst:74 +msgid "" +"The default traceback display code shows these chained exceptions in " +"addition to the traceback for the exception itself. An explicitly chained " +"exception in :attr:`!__cause__` is always shown when present. An implicitly " +"chained exception in :attr:`!__context__` is shown only if :attr:`!" +"__cause__` is :const:`None` and :attr:`!__suppress_context__` is false." +msgstr "" + +#: ../../library/exceptions.rst:80 +msgid "" +"In either case, the exception itself is always shown after any chained " +"exceptions so that the final line of the traceback always shows the last " +"exception that was raised." +msgstr "" + +#: ../../library/exceptions.rst:86 +msgid "Inheriting from built-in exceptions" +msgstr "" + +#: ../../library/exceptions.rst:88 +msgid "" +"User code can create subclasses that inherit from an exception type. It's " +"recommended to only subclass one exception type at a time to avoid any " +"possible conflicts between how the bases handle the ``args`` attribute, as " +"well as due to possible memory layout incompatibilities." +msgstr "" + +#: ../../library/exceptions.rst:95 +msgid "" +"Most built-in exceptions are implemented in C for efficiency, " +"see: :source:`Objects/exceptions.c`. Some have custom memory layouts which " +"makes it impossible to create a subclass that inherits from multiple " +"exception types. The memory layout of a type is an implementation detail and " +"might change between Python versions, leading to new conflicts in the " +"future. Therefore, it's recommended to avoid subclassing multiple exception " +"types altogether." +msgstr "" + +#: ../../library/exceptions.rst:105 +msgid "Base classes" +msgstr "" + +#: ../../library/exceptions.rst:107 +msgid "" +"The following exceptions are used mostly as base classes for other " +"exceptions." +msgstr "" + +#: ../../library/exceptions.rst:111 +msgid "" +"The base class for all built-in exceptions. It is not meant to be directly " +"inherited by user-defined classes (for that, use :exc:`Exception`). " +"If :func:`str` is called on an instance of this class, the representation of " +"the argument(s) to the instance are returned, or the empty string when there " +"were no arguments." +msgstr "" + +#: ../../library/exceptions.rst:119 +msgid "" +"The tuple of arguments given to the exception constructor. Some built-in " +"exceptions (like :exc:`OSError`) expect a certain number of arguments and " +"assign a special meaning to the elements of this tuple, while others are " +"usually called only with a single string giving an error message." +msgstr "" + +#: ../../library/exceptions.rst:126 +msgid "" +"This method sets *tb* as the new traceback for the exception and returns the " +"exception object. It was more commonly used before the exception chaining " +"features of :pep:`3134` became available. The following example shows how " +"we can convert an instance of ``SomeException`` into an instance of " +"``OtherException`` while preserving the traceback. Once raised, the current " +"frame is pushed onto the traceback of the ``OtherException``, as would have " +"happened to the traceback of the original ``SomeException`` had we allowed " +"it to propagate to the caller. ::" +msgstr "" + +#: ../../library/exceptions.rst:135 +msgid "" +"try:\n" +" ...\n" +"except SomeException:\n" +" tb = sys.exception().__traceback__\n" +" raise OtherException(...).with_traceback(tb)" +msgstr "" + +#: ../../library/exceptions.rst:143 +msgid "" +"A writable field that holds the :ref:`traceback object ` " +"associated with this exception. See also: :ref:`raise`." +msgstr "" + +#: ../../library/exceptions.rst:149 +msgid "" +"Add the string ``note`` to the exception's notes which appear in the " +"standard traceback after the exception string. A :exc:`TypeError` is raised " +"if ``note`` is not a string." +msgstr "" + +#: ../../library/exceptions.rst:157 +msgid "" +"A list of the notes of this exception, which were added " +"with :meth:`add_note`. This attribute is created when :meth:`add_note` is " +"called." +msgstr "" + +#: ../../library/exceptions.rst:165 +msgid "" +"All built-in, non-system-exiting exceptions are derived from this class. " +"All user-defined exceptions should also be derived from this class." +msgstr "" + +#: ../../library/exceptions.rst:171 +msgid "" +"The base class for those built-in exceptions that are raised for various " +"arithmetic " +"errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:`FloatingPointError`." +msgstr "" + +#: ../../library/exceptions.rst:178 +msgid "" +"Raised when a :ref:`buffer ` related operation cannot be " +"performed." +msgstr "" + +#: ../../library/exceptions.rst:184 +msgid "" +"The base class for the exceptions that are raised when a key or index used " +"on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " +"This can be raised directly by :func:`codecs.lookup`." +msgstr "" + +#: ../../library/exceptions.rst:190 +msgid "Concrete exceptions" +msgstr "" + +#: ../../library/exceptions.rst:192 +msgid "The following exceptions are the exceptions that are usually raised." +msgstr "" + +#: ../../library/exceptions.rst:198 +msgid "Raised when an :keyword:`assert` statement fails." +msgstr "" + +#: ../../library/exceptions.rst:203 +msgid "" +"Raised when an attribute reference (see :ref:`attribute-references`) or " +"assignment fails. (When an object does not support attribute references or " +"attribute assignments at all, :exc:`TypeError` is raised.)" +msgstr "" + +#: ../../library/exceptions.rst:207 +msgid "" +"The optional *name* and *obj* keyword-only arguments set the corresponding " +"attributes:" +msgstr "" + +#: ../../library/exceptions.rst:212 +msgid "The name of the attribute that was attempted to be accessed." +msgstr "" + +#: ../../library/exceptions.rst:216 +msgid "The object that was accessed for the named attribute." +msgstr "" + +#: ../../library/exceptions.rst:218 +msgid "Added the :attr:`name` and :attr:`obj` attributes." +msgstr "" + +#: ../../library/exceptions.rst:223 +msgid "" +"Raised when the :func:`input` function hits an end-of-file condition (EOF) " +"without reading any data. (Note: the :meth:`!io.IOBase.read` " +"and :meth:`io.IOBase.readline` methods return an empty string when they hit " +"EOF.)" +msgstr "" + +#: ../../library/exceptions.rst:230 +msgid "Not currently used." +msgstr "" + +#: ../../library/exceptions.rst:235 +msgid "" +"Raised when a :term:`generator` or :term:`coroutine` is closed; " +"see :meth:`generator.close` and :meth:`coroutine.close`. It directly " +"inherits from :exc:`BaseException` instead of :exc:`Exception` since it is " +"technically not an error." +msgstr "" + +#: ../../library/exceptions.rst:243 +msgid "" +"Raised when the :keyword:`import` statement has troubles trying to load a " +"module. Also raised when the \"from list\" in ``from ... import`` has a " +"name that cannot be found." +msgstr "" + +#: ../../library/exceptions.rst:247 +msgid "" +"The optional *name* and *path* keyword-only arguments set the corresponding " +"attributes:" +msgstr "" + +#: ../../library/exceptions.rst:252 +msgid "The name of the module that was attempted to be imported." +msgstr "" + +#: ../../library/exceptions.rst:256 +msgid "The path to any file which triggered the exception." +msgstr "" + +#: ../../library/exceptions.rst:258 +msgid "Added the :attr:`name` and :attr:`path` attributes." +msgstr "" + +#: ../../library/exceptions.rst:263 +msgid "" +"A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " +"module could not be located. It is also raised when ``None`` is found " +"in :data:`sys.modules`." +msgstr "" + +#: ../../library/exceptions.rst:272 +msgid "" +"Raised when a sequence subscript is out of range. (Slice indices are " +"silently truncated to fall in the allowed range; if an index is not an " +"integer, :exc:`TypeError` is raised.)" +msgstr "" + +#: ../../library/exceptions.rst:281 +msgid "" +"Raised when a mapping (dictionary) key is not found in the set of existing " +"keys." +msgstr "" + +#: ../../library/exceptions.rst:288 +msgid "" +"Raised when the user hits the interrupt key (normally :kbd:`Control-C` " +"or :kbd:`Delete`). During execution, a check for interrupts is made " +"regularly. The exception inherits from :exc:`BaseException` so as to not be " +"accidentally caught by code that catches :exc:`Exception` and thus prevent " +"the interpreter from exiting." +msgstr "" + +#: ../../library/exceptions.rst:296 +msgid "" +"Catching a :exc:`KeyboardInterrupt` requires special consideration. Because " +"it can be raised at unpredictable points, it may, in some circumstances, " +"leave the running program in an inconsistent state. It is generally best to " +"allow :exc:`KeyboardInterrupt` to end the program as quickly as possible or " +"avoid raising it entirely. (See :ref:`handlers-and-exceptions`.)" +msgstr "" + +#: ../../library/exceptions.rst:306 +msgid "" +"Raised when an operation runs out of memory but the situation may still be " +"rescued (by deleting some objects). The associated value is a string " +"indicating what kind of (internal) operation ran out of memory. Note that " +"because of the underlying memory management architecture " +"(C's :c:func:`malloc` function), the interpreter may not always be able to " +"completely recover from this situation; it nevertheless raises an exception " +"so that a stack traceback can be printed, in case a run-away program was the " +"cause." +msgstr "" + +#: ../../library/exceptions.rst:317 +msgid "" +"Raised when a local or global name is not found. This applies only to " +"unqualified names. The associated value is an error message that includes " +"the name that could not be found." +msgstr "" + +#: ../../library/exceptions.rst:321 +msgid "The optional *name* keyword-only argument sets the attribute:" +msgstr "" + +#: ../../library/exceptions.rst:325 +msgid "The name of the variable that was attempted to be accessed." +msgstr "" + +#: ../../library/exceptions.rst:327 +msgid "Added the :attr:`name` attribute." +msgstr "" + +#: ../../library/exceptions.rst:333 +msgid "" +"This exception is derived from :exc:`RuntimeError`. In user defined base " +"classes, abstract methods should raise this exception when they require " +"derived classes to override the method, or while the class is being " +"developed to indicate that the real implementation still needs to be added." +msgstr "" + +#: ../../library/exceptions.rst:340 +msgid "" +"It should not be used to indicate that an operator or method is not meant to " +"be supported at all -- in that case either leave the operator / method " +"undefined or, if a subclass, set it to :data:`None`." +msgstr "" + +#: ../../library/exceptions.rst:346 +msgid "" +":exc:`!NotImplementedError` and :data:`!NotImplemented` are not " +"interchangeable. This exception should only be used as described above; " +"see :data:`NotImplemented` for details on correct usage of the built-in " +"constant." +msgstr "" + +#: ../../library/exceptions.rst:357 +msgid "" +"This exception is raised when a system function returns a system-related " +"error, including I/O failures such as \"file not found\" or \"disk full\" " +"(not for illegal argument types or other incidental errors)." +msgstr "" + +#: ../../library/exceptions.rst:361 +msgid "" +"The second form of the constructor sets the corresponding attributes, " +"described below. The attributes default to :const:`None` if not specified. " +"For backwards compatibility, if three arguments are passed, " +"the :attr:`~BaseException.args` attribute contains only a 2-tuple of the " +"first two constructor arguments." +msgstr "" + +#: ../../library/exceptions.rst:367 +msgid "" +"The constructor often actually returns a subclass of :exc:`OSError`, as " +"described in `OS exceptions`_ below. The particular subclass depends on the " +"final :attr:`.errno` value. This behaviour only occurs when " +"constructing :exc:`OSError` directly or via an alias, and is not inherited " +"when subclassing." +msgstr "" + +#: ../../library/exceptions.rst:375 +msgid "A numeric error code from the C variable :c:data:`errno`." +msgstr "" + +#: ../../library/exceptions.rst:379 +msgid "" +"Under Windows, this gives you the native Windows error code. " +"The :attr:`.errno` attribute is then an approximate translation, in POSIX " +"terms, of that native error code." +msgstr "" + +#: ../../library/exceptions.rst:383 +msgid "" +"Under Windows, if the *winerror* constructor argument is an integer, " +"the :attr:`.errno` attribute is determined from the Windows error code, and " +"the *errno* argument is ignored. On other platforms, the *winerror* " +"argument is ignored, and the :attr:`winerror` attribute does not exist." +msgstr "" + +#: ../../library/exceptions.rst:391 +msgid "" +"The corresponding error message, as provided by the operating system. It is " +"formatted by the C functions :c:func:`!perror` under POSIX, and :c:func:`!" +"FormatMessage` under Windows." +msgstr "" + +#: ../../library/exceptions.rst:399 +msgid "" +"For exceptions that involve a file system path (such as :func:`open` " +"or :func:`os.unlink`), :attr:`filename` is the file name passed to the " +"function. For functions that involve two file system paths (such " +"as :func:`os.rename`), :attr:`filename2` corresponds to the second file name " +"passed to the function." +msgstr "" + +#: ../../library/exceptions.rst:406 +msgid "" +":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket.error`, :exc:`select.error` " +"and :exc:`!mmap.error` have been merged into :exc:`OSError`, and the " +"constructor may return a subclass." +msgstr "" + +#: ../../library/exceptions.rst:412 +msgid "" +"The :attr:`filename` attribute is now the original file name passed to the " +"function, instead of the name encoded to or decoded from " +"the :term:`filesystem encoding and error handler`. Also, the *filename2* " +"constructor argument and attribute was added." +msgstr "" + +#: ../../library/exceptions.rst:421 +msgid "" +"Raised when the result of an arithmetic operation is too large to be " +"represented. This cannot occur for integers (which would rather " +"raise :exc:`MemoryError` than give up). However, for historical reasons, " +"OverflowError is sometimes raised for integers that are outside a required " +"range. Because of the lack of standardization of floating-point exception " +"handling in C, most floating-point operations are not checked." +msgstr "" + +#: ../../library/exceptions.rst:431 +msgid "" +"This exception is derived from :exc:`RuntimeError`. It is raised when an " +"operation is blocked during interpreter shutdown also known as :term:`Python " +"finalization `." +msgstr "" + +#: ../../library/exceptions.rst:435 +msgid "" +"Examples of operations which can be blocked with " +"a :exc:`PythonFinalizationError` during the Python finalization:" +msgstr "" + +#: ../../library/exceptions.rst:438 +msgid "Creating a new Python thread." +msgstr "" + +#: ../../library/exceptions.rst:439 +msgid ":meth:`Joining ` a running daemon thread." +msgstr "" + +#: ../../library/exceptions.rst:440 +msgid ":func:`os.fork`." +msgstr "" + +#: ../../library/exceptions.rst:442 +msgid "See also the :func:`sys.is_finalizing` function." +msgstr "" + +#: ../../library/exceptions.rst:444 ../../library/exceptions.rst:457 +msgid "Previously, a plain :exc:`RuntimeError` was raised." +msgstr "" + +#: ../../library/exceptions.rst:449 +msgid ":meth:`threading.Thread.join` can now raise this exception." +msgstr "" + +#: ../../library/exceptions.rst:453 +msgid "" +"This exception is derived from :exc:`RuntimeError`. It is raised when the " +"interpreter detects that the maximum recursion depth " +"(see :func:`sys.getrecursionlimit`) is exceeded." +msgstr "" + +#: ../../library/exceptions.rst:463 +msgid "" +"This exception is raised when a weak reference proxy, created by " +"the :func:`weakref.proxy` function, is used to access an attribute of the " +"referent after it has been garbage collected. For more information on weak " +"references, see the :mod:`weakref` module." +msgstr "" + +#: ../../library/exceptions.rst:471 +msgid "" +"Raised when an error is detected that doesn't fall in any of the other " +"categories. The associated value is a string indicating what precisely went " +"wrong." +msgstr "" + +#: ../../library/exceptions.rst:478 +msgid "" +"Raised by built-in function :func:`next` and " +"an :term:`iterator`\\'s :meth:`~iterator.__next__` method to signal that " +"there are no further items produced by the iterator." +msgstr "" + +#: ../../library/exceptions.rst:484 +msgid "" +"The exception object has a single attribute :attr:`!value`, which is given " +"as an argument when constructing the exception, and defaults " +"to :const:`None`." +msgstr "" + +#: ../../library/exceptions.rst:488 +msgid "" +"When a :term:`generator` or :term:`coroutine` function returns, a " +"new :exc:`StopIteration` instance is raised, and the value returned by the " +"function is used as the :attr:`value` parameter to the constructor of the " +"exception." +msgstr "" + +#: ../../library/exceptions.rst:493 +msgid "" +"If a generator code directly or indirectly raises :exc:`StopIteration`, it " +"is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " +"as the new exception's cause)." +msgstr "" + +#: ../../library/exceptions.rst:497 +msgid "" +"Added ``value`` attribute and the ability for generator functions to use it " +"to return a value." +msgstr "" + +#: ../../library/exceptions.rst:501 +msgid "" +"Introduced the RuntimeError transformation via ``from __future__ import " +"generator_stop``, see :pep:`479`." +msgstr "" + +#: ../../library/exceptions.rst:505 +msgid "" +"Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " +"raised in a generator is transformed into a :exc:`RuntimeError`." +msgstr "" + +#: ../../library/exceptions.rst:511 +msgid "" +"Must be raised by :meth:`~object.__anext__` method of an :term:`asynchronous " +"iterator` object to stop the iteration." +msgstr "" + +#: ../../library/exceptions.rst:518 +msgid "" +"Raised when the parser encounters a syntax error. This may occur in " +"an :keyword:`import` statement, in a call to the built-in " +"functions :func:`compile`, :func:`exec`, or :func:`eval`, or when reading " +"the initial script or standard input (also interactively)." +msgstr "" + +#: ../../library/exceptions.rst:524 +msgid "" +"The :func:`str` of the exception instance returns only the error message. " +"Details is a tuple whose members are also available as separate attributes." +msgstr "" + +#: ../../library/exceptions.rst:529 +msgid "The name of the file the syntax error occurred in." +msgstr "" + +#: ../../library/exceptions.rst:533 +msgid "" +"Which line number in the file the error occurred in. This is 1-indexed: the " +"first line in the file has a ``lineno`` of 1." +msgstr "" + +#: ../../library/exceptions.rst:538 +msgid "" +"The column in the line where the error occurred. This is 1-indexed: the " +"first character in the line has an ``offset`` of 1." +msgstr "" + +#: ../../library/exceptions.rst:543 +msgid "The source code text involved in the error." +msgstr "" + +#: ../../library/exceptions.rst:547 +msgid "" +"Which line number in the file the error occurred ends in. This is 1-indexed: " +"the first line in the file has a ``lineno`` of 1." +msgstr "" + +#: ../../library/exceptions.rst:552 +msgid "" +"The column in the end line where the error occurred finishes. This is 1-" +"indexed: the first character in the line has an ``offset`` of 1." +msgstr "" + +#: ../../library/exceptions.rst:555 +msgid "" +"For errors in f-string fields, the message is prefixed by \"f-string: \" and " +"the offsets are offsets in a text constructed from the replacement " +"expression. For example, compiling f'Bad {a b} field' results in this args " +"attribute: ('f-string: ...', ('', 1, 2, '(a b)\\n', 1, 5))." +msgstr "" + +#: ../../library/exceptions.rst:560 +msgid "Added the :attr:`end_lineno` and :attr:`end_offset` attributes." +msgstr "" + +#: ../../library/exceptions.rst:565 +msgid "" +"Base class for syntax errors related to incorrect indentation. This is a " +"subclass of :exc:`SyntaxError`." +msgstr "" + +#: ../../library/exceptions.rst:571 +msgid "" +"Raised when indentation contains an inconsistent use of tabs and spaces. " +"This is a subclass of :exc:`IndentationError`." +msgstr "" + +#: ../../library/exceptions.rst:577 +msgid "" +"Raised when the interpreter finds an internal error, but the situation does " +"not look so serious to cause it to abandon all hope. The associated value is " +"a string indicating what went wrong (in low-level terms). " +"In :term:`CPython`, this could be raised by incorrectly using Python's C " +"API, such as returning a ``NULL`` value without an exception set." +msgstr "" + +#: ../../library/exceptions.rst:583 +msgid "" +"If you're confident that this exception wasn't your fault, or the fault of a " +"package you're using, you should report this to the author or maintainer of " +"your Python interpreter. Be sure to report the version of the Python " +"interpreter (``sys.version``; it is also printed at the start of an " +"interactive Python session), the exact error message (the exception's " +"associated value) and if possible the source of the program that triggered " +"the error." +msgstr "" + +#: ../../library/exceptions.rst:594 +msgid "" +"This exception is raised by the :func:`sys.exit` function. It inherits " +"from :exc:`BaseException` instead of :exc:`Exception` so that it is not " +"accidentally caught by code that catches :exc:`Exception`. This allows the " +"exception to properly propagate up and cause the interpreter to exit. When " +"it is not handled, the Python interpreter exits; no stack traceback is " +"printed. The constructor accepts the same optional argument passed " +"to :func:`sys.exit`. If the value is an integer, it specifies the system " +"exit status (passed to C's :c:func:`!exit` function); if it is ``None``, the " +"exit status is zero; if it has another type (such as a string), the object's " +"value is printed and the exit status is one." +msgstr "" + +#: ../../library/exceptions.rst:605 +msgid "" +"A call to :func:`sys.exit` is translated into an exception so that clean-up " +"handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " +"executed, and so that a debugger can execute a script without running the " +"risk of losing control. The :func:`os._exit` function can be used if it is " +"absolutely positively necessary to exit immediately (for example, in the " +"child process after a call to :func:`os.fork`)." +msgstr "" + +#: ../../library/exceptions.rst:614 +msgid "" +"The exit status or error message that is passed to the constructor. " +"(Defaults to ``None``.)" +msgstr "" + +#: ../../library/exceptions.rst:620 +msgid "" +"Raised when an operation or function is applied to an object of " +"inappropriate type. The associated value is a string giving details about " +"the type mismatch." +msgstr "" + +#: ../../library/exceptions.rst:623 +msgid "" +"This exception may be raised by user code to indicate that an attempted " +"operation on an object is not supported, and is not meant to be. If an " +"object is meant to support a given operation but has not yet provided an " +"implementation, :exc:`NotImplementedError` is the proper exception to raise." +msgstr "" + +#: ../../library/exceptions.rst:628 +msgid "" +"Passing arguments of the wrong type (e.g. passing a :class:`list` when " +"an :class:`int` is expected) should result in a :exc:`TypeError`, but " +"passing arguments with the wrong value (e.g. a number outside expected " +"boundaries) should result in a :exc:`ValueError`." +msgstr "" + +#: ../../library/exceptions.rst:635 +msgid "" +"Raised when a reference is made to a local variable in a function or method, " +"but no value has been bound to that variable. This is a subclass " +"of :exc:`NameError`." +msgstr "" + +#: ../../library/exceptions.rst:642 +msgid "" +"Raised when a Unicode-related encoding or decoding error occurs. It is a " +"subclass of :exc:`ValueError`." +msgstr "" + +#: ../../library/exceptions.rst:645 +msgid "" +":exc:`UnicodeError` has attributes that describe the encoding or decoding " +"error. For example, ``err.object[err.start:err.end]`` gives the particular " +"invalid input that the codec failed on." +msgstr "" + +#: ../../library/exceptions.rst:651 +msgid "The name of the encoding that raised the error." +msgstr "" + +#: ../../library/exceptions.rst:655 +msgid "A string describing the specific codec error." +msgstr "" + +#: ../../library/exceptions.rst:659 +msgid "The object the codec was attempting to encode or decode." +msgstr "" + +#: ../../library/exceptions.rst:663 +msgid "The first index of invalid data in :attr:`object`." +msgstr "" + +#: ../../library/exceptions.rst:665 ../../library/exceptions.rst:672 +msgid "" +"This value should not be negative as it is interpreted as an absolute offset " +"but this constraint is not enforced at runtime." +msgstr "" + +#: ../../library/exceptions.rst:670 +msgid "The index after the last invalid data in :attr:`object`." +msgstr "" + +#: ../../library/exceptions.rst:678 +msgid "" +"Raised when a Unicode-related error occurs during encoding. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" + +#: ../../library/exceptions.rst:684 +msgid "" +"Raised when a Unicode-related error occurs during decoding. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" + +#: ../../library/exceptions.rst:690 +msgid "" +"Raised when a Unicode-related error occurs during translating. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" + +#: ../../library/exceptions.rst:696 +msgid "" +"Raised when an operation or function receives an argument that has the right " +"type but an inappropriate value, and the situation is not described by a " +"more precise exception such as :exc:`IndexError`." +msgstr "" + +#: ../../library/exceptions.rst:703 +msgid "" +"Raised when the second argument of a division or modulo operation is zero. " +"The associated value is a string indicating the type of the operands and the " +"operation." +msgstr "" + +#: ../../library/exceptions.rst:708 +msgid "" +"The following exceptions are kept for compatibility with previous versions; " +"starting from Python 3.3, they are aliases of :exc:`OSError`." +msgstr "" + +#: ../../library/exceptions.rst:717 +msgid "Only available on Windows." +msgstr "" + +#: ../../library/exceptions.rst:721 +msgid "OS exceptions" +msgstr "" + +#: ../../library/exceptions.rst:723 +msgid "" +"The following exceptions are subclasses of :exc:`OSError`, they get raised " +"depending on the system error code." +msgstr "" + +#: ../../library/exceptions.rst:728 +msgid "" +"Raised when an operation would block on an object (e.g. socket) set for non-" +"blocking operation. Corresponds " +"to :c:data:`errno` :py:const:`~errno.EAGAIN`, :py:const:`~errno.EALREADY`, :py:const:`~errno.EWOULDBLOCK` " +"and :py:const:`~errno.EINPROGRESS`." +msgstr "" + +#: ../../library/exceptions.rst:733 +msgid "" +"In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " +"more attribute:" +msgstr "" + +#: ../../library/exceptions.rst:738 +msgid "" +"An integer containing the number of characters written to the stream before " +"it blocked. This attribute is available when using the buffered I/O classes " +"from the :mod:`io` module." +msgstr "" + +#: ../../library/exceptions.rst:744 +msgid "" +"Raised when an operation on a child process failed. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ECHILD`." +msgstr "" + +#: ../../library/exceptions.rst:749 +msgid "A base class for connection-related issues." +msgstr "" + +#: ../../library/exceptions.rst:751 +msgid "" +"Subclasses " +"are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:`ConnectionRefusedError` " +"and :exc:`ConnectionResetError`." +msgstr "" + +#: ../../library/exceptions.rst:756 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " +"while the other end has been closed, or trying to write on a socket which " +"has been shutdown for writing. Corresponds " +"to :c:data:`errno` :py:const:`~errno.EPIPE` and :py:const:`~errno.ESHUTDOWN`." +msgstr "" + +#: ../../library/exceptions.rst:763 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " +"aborted by the peer. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ECONNABORTED`." +msgstr "" + +#: ../../library/exceptions.rst:769 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " +"refused by the peer. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ECONNREFUSED`." +msgstr "" + +#: ../../library/exceptions.rst:775 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection is reset by " +"the peer. Corresponds to :c:data:`errno` :py:const:`~errno.ECONNRESET`." +msgstr "" + +#: ../../library/exceptions.rst:781 +msgid "" +"Raised when trying to create a file or directory which already exists. " +"Corresponds to :c:data:`errno` :py:const:`~errno.EEXIST`." +msgstr "" + +#: ../../library/exceptions.rst:786 +msgid "" +"Raised when a file or directory is requested but doesn't exist. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ENOENT`." +msgstr "" + +#: ../../library/exceptions.rst:791 +msgid "" +"Raised when a system call is interrupted by an incoming signal. Corresponds " +"to :c:data:`errno` :py:const:`~errno.EINTR`." +msgstr "" + +#: ../../library/exceptions.rst:794 +msgid "" +"Python now retries system calls when a syscall is interrupted by a signal, " +"except if the signal handler raises an exception (see :pep:`475` for the " +"rationale), instead of raising :exc:`InterruptedError`." +msgstr "" + +#: ../../library/exceptions.rst:801 +msgid "" +"Raised when a file operation (such as :func:`os.remove`) is requested on a " +"directory. Corresponds to :c:data:`errno` :py:const:`~errno.EISDIR`." +msgstr "" + +#: ../../library/exceptions.rst:807 +msgid "" +"Raised when a directory operation (such as :func:`os.listdir`) is requested " +"on something which is not a directory. On most POSIX platforms, it may also " +"be raised if an operation attempts to open or traverse a non-directory file " +"as if it were a directory. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ENOTDIR`." +msgstr "" + +#: ../../library/exceptions.rst:815 +msgid "" +"Raised when trying to run an operation without the adequate access rights - " +"for example filesystem permissions. Corresponds " +"to :c:data:`errno` :py:const:`~errno.EACCES`, :py:const:`~errno.EPERM`, " +"and :py:const:`~errno.ENOTCAPABLE`." +msgstr "" + +#: ../../library/exceptions.rst:820 +msgid "" +"WASI's :py:const:`~errno.ENOTCAPABLE` is now mapped " +"to :exc:`PermissionError`." +msgstr "" + +#: ../../library/exceptions.rst:826 +msgid "" +"Raised when a given process doesn't exist. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ESRCH`." +msgstr "" + +#: ../../library/exceptions.rst:831 +msgid "" +"Raised when a system function timed out at the system level. Corresponds " +"to :c:data:`errno` :py:const:`~errno.ETIMEDOUT`." +msgstr "" + +#: ../../library/exceptions.rst:834 +msgid "All the above :exc:`OSError` subclasses were added." +msgstr "" + +#: ../../library/exceptions.rst:840 +msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" +msgstr "" + +#: ../../library/exceptions.rst:846 +msgid "Warnings" +msgstr "" + +#: ../../library/exceptions.rst:848 +msgid "" +"The following exceptions are used as warning categories; see " +"the :ref:`warning-categories` documentation for more details." +msgstr "" + +#: ../../library/exceptions.rst:853 +msgid "Base class for warning categories." +msgstr "" + +#: ../../library/exceptions.rst:858 +msgid "Base class for warnings generated by user code." +msgstr "" + +#: ../../library/exceptions.rst:863 +msgid "" +"Base class for warnings about deprecated features when those warnings are " +"intended for other Python developers." +msgstr "" + +#: ../../library/exceptions.rst:866 +msgid "" +"Ignored by the default warning filters, except in the ``__main__`` module " +"(:pep:`565`). Enabling the :ref:`Python Development Mode ` shows " +"this warning." +msgstr "" + +#: ../../library/exceptions.rst:870 ../../library/exceptions.rst:886 +msgid "The deprecation policy is described in :pep:`387`." +msgstr "" + +#: ../../library/exceptions.rst:875 +msgid "" +"Base class for warnings about features which are obsolete and expected to be " +"deprecated in the future, but are not deprecated at the moment." +msgstr "" + +#: ../../library/exceptions.rst:879 +msgid "" +"This class is rarely used as emitting a warning about a possible upcoming " +"deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " +"already active deprecations." +msgstr "" + +#: ../../library/exceptions.rst:883 ../../library/exceptions.rst:909 +#: ../../library/exceptions.rst:936 +msgid "" +"Ignored by the default warning filters. Enabling the :ref:`Python " +"Development Mode ` shows this warning." +msgstr "" + +#: ../../library/exceptions.rst:891 +msgid "Base class for warnings about dubious syntax." +msgstr "" + +#: ../../library/exceptions.rst:896 +msgid "Base class for warnings about dubious runtime behavior." +msgstr "" + +#: ../../library/exceptions.rst:901 +msgid "" +"Base class for warnings about deprecated features when those warnings are " +"intended for end users of applications that are written in Python." +msgstr "" + +#: ../../library/exceptions.rst:907 +msgid "Base class for warnings about probable mistakes in module imports." +msgstr "" + +#: ../../library/exceptions.rst:915 +msgid "Base class for warnings related to Unicode." +msgstr "" + +#: ../../library/exceptions.rst:920 +msgid "Base class for warnings related to encodings." +msgstr "" + +#: ../../library/exceptions.rst:922 +msgid "See :ref:`io-encoding-warning` for details." +msgstr "" + +#: ../../library/exceptions.rst:929 +msgid "" +"Base class for warnings related to :class:`bytes` and :class:`bytearray`." +msgstr "" + +#: ../../library/exceptions.rst:934 +msgid "Base class for warnings related to resource usage." +msgstr "" + +#: ../../library/exceptions.rst:945 +msgid "Exception groups" +msgstr "" + +#: ../../library/exceptions.rst:947 +msgid "" +"The following are used when it is necessary to raise multiple unrelated " +"exceptions. They are part of the exception hierarchy so they can be handled " +"with :keyword:`except` like all other exceptions. In addition, they are " +"recognised by :keyword:`except*`, which matches their subgroups " +"based on the types of the contained exceptions." +msgstr "" + +#: ../../library/exceptions.rst:956 +msgid "" +"Both of these exception types wrap the exceptions in the sequence ``excs``. " +"The ``msg`` parameter must be a string. The difference between the two " +"classes is that :exc:`BaseExceptionGroup` extends :exc:`BaseException` and " +"it can wrap any exception, while :exc:`ExceptionGroup` " +"extends :exc:`Exception` and it can only wrap subclasses " +"of :exc:`Exception`. This design is so that ``except Exception`` catches " +"an :exc:`ExceptionGroup` but not :exc:`BaseExceptionGroup`." +msgstr "" + +#: ../../library/exceptions.rst:964 +msgid "" +"The :exc:`BaseExceptionGroup` constructor returns an :exc:`ExceptionGroup` " +"rather than a :exc:`BaseExceptionGroup` if all contained exceptions " +"are :exc:`Exception` instances, so it can be used to make the selection " +"automatic. The :exc:`ExceptionGroup` constructor, on the other hand, raises " +"a :exc:`TypeError` if any contained exception is not an :exc:`Exception` " +"subclass." +msgstr "" + +#: ../../library/exceptions.rst:973 +msgid "The ``msg`` argument to the constructor. This is a read-only attribute." +msgstr "" + +#: ../../library/exceptions.rst:977 +msgid "" +"A tuple of the exceptions in the ``excs`` sequence given to the constructor. " +"This is a read-only attribute." +msgstr "" + +#: ../../library/exceptions.rst:982 +msgid "" +"Returns an exception group that contains only the exceptions from the " +"current group that match *condition*, or ``None`` if the result is empty." +msgstr "" + +#: ../../library/exceptions.rst:985 +msgid "" +"The condition can be an exception type or tuple of exception types, in which " +"case each exception is checked for a match using the same check that is used " +"in an ``except`` clause. The condition can also be a callable (other than a " +"type object) that accepts an exception as its single argument and returns " +"true for the exceptions that should be in the subgroup." +msgstr "" + +#: ../../library/exceptions.rst:991 +msgid "" +"The nesting structure of the current exception is preserved in the result, " +"as are the values of " +"its :attr:`message`, :attr:`~BaseException.__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException.__context__` " +"and :attr:`~BaseException.__notes__` fields. Empty nested groups are omitted " +"from the result." +msgstr "" + +#: ../../library/exceptions.rst:998 +msgid "" +"The condition is checked for all exceptions in the nested exception group, " +"including the top-level and any nested exception groups. If the condition is " +"true for such an exception group, it is included in the result in full." +msgstr "" + +#: ../../library/exceptions.rst:1002 +msgid "``condition`` can be any callable which is not a type object." +msgstr "" + +#: ../../library/exceptions.rst:1007 +msgid "" +"Like :meth:`subgroup`, but returns the pair ``(match, rest)`` where " +"``match`` is ``subgroup(condition)`` and ``rest`` is the remaining non-" +"matching part." +msgstr "" + +#: ../../library/exceptions.rst:1013 +msgid "" +"Returns an exception group with the same :attr:`message`, but which wraps " +"the exceptions in ``excs``." +msgstr "" + +#: ../../library/exceptions.rst:1016 +msgid "" +"This method is used by :meth:`subgroup` and :meth:`split`, which are used in " +"various contexts to break up an exception group. A subclass needs to " +"override it in order to make :meth:`subgroup` and :meth:`split` return " +"instances of the subclass rather than :exc:`ExceptionGroup`." +msgstr "" + +#: ../../library/exceptions.rst:1022 +msgid "" +":meth:`subgroup` and :meth:`split` copy " +"the :attr:`~BaseException.__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException.__context__` " +"and :attr:`~BaseException.__notes__` fields from the original exception " +"group to the one returned by :meth:`derive`, so these fields do not need to " +"be updated by :meth:`derive`." +msgstr "" + +#: ../../library/exceptions.rst:1029 +msgid "" +">>> class MyGroup(ExceptionGroup):\n" +"... def derive(self, excs):\n" +"... return MyGroup(self.message, excs)\n" +"...\n" +">>> e = MyGroup(\"eg\", [ValueError(1), TypeError(2)])\n" +">>> e.add_note(\"a note\")\n" +">>> e.__context__ = Exception(\"context\")\n" +">>> e.__cause__ = Exception(\"cause\")\n" +">>> try:\n" +"... raise e\n" +"... except Exception as e:\n" +"... exc = e\n" +"...\n" +">>> match, rest = exc.split(ValueError)\n" +">>> exc, exc.__context__, exc.__cause__, exc.__notes__\n" +"(MyGroup('eg', [ValueError(1), TypeError(2)]), Exception('context'), " +"Exception('cause'), ['a note'])\n" +">>> match, match.__context__, match.__cause__, match.__notes__\n" +"(MyGroup('eg', [ValueError(1)]), Exception('context'), Exception('cause'), " +"['a note'])\n" +">>> rest, rest.__context__, rest.__cause__, rest.__notes__\n" +"(MyGroup('eg', [TypeError(2)]), Exception('context'), Exception('cause'), " +"['a note'])\n" +">>> exc.__traceback__ is match.__traceback__ is rest.__traceback__\n" +"True" +msgstr "" + +#: ../../library/exceptions.rst:1055 +msgid "" +"Note that :exc:`BaseExceptionGroup` defines :meth:`~object.__new__`, so " +"subclasses that need a different constructor signature need to override that " +"rather than :meth:`~object.__init__`. For example, the following defines an " +"exception group subclass which accepts an exit_code and constructs the " +"group's message from it. ::" +msgstr "" + +#: ../../library/exceptions.rst:1061 +msgid "" +"class Errors(ExceptionGroup):\n" +" def __new__(cls, errors, exit_code):\n" +" self = super().__new__(Errors, f\"exit code: {exit_code}\", errors)\n" +" self.exit_code = exit_code\n" +" return self\n" +"\n" +" def derive(self, excs):\n" +" return Errors(excs, self.exit_code)" +msgstr "" + +#: ../../library/exceptions.rst:1070 +msgid "" +"Like :exc:`ExceptionGroup`, any subclass of :exc:`BaseExceptionGroup` which " +"is also a subclass of :exc:`Exception` can only wrap instances " +"of :exc:`Exception`." +msgstr "" + +#: ../../library/exceptions.rst:1078 +msgid "Exception hierarchy" +msgstr "" + +#: ../../library/exceptions.rst:1080 +msgid "The class hierarchy for built-in exceptions is:" +msgstr "" + +#: ../../library/exceptions.rst:1082 +msgid "" +"BaseException\n" +" ├── BaseExceptionGroup\n" +" ├── GeneratorExit\n" +" ├── KeyboardInterrupt\n" +" ├── SystemExit\n" +" └── Exception\n" +" ├── ArithmeticError\n" +" │ ├── FloatingPointError\n" +" │ ├── OverflowError\n" +" │ └── ZeroDivisionError\n" +" ├── AssertionError\n" +" ├── AttributeError\n" +" ├── BufferError\n" +" ├── EOFError\n" +" ├── ExceptionGroup [BaseExceptionGroup]\n" +" ├── ImportError\n" +" │ └── ModuleNotFoundError\n" +" ├── LookupError\n" +" │ ├── IndexError\n" +" │ └── KeyError\n" +" ├── MemoryError\n" +" ├── NameError\n" +" │ └── UnboundLocalError\n" +" ├── OSError\n" +" │ ├── BlockingIOError\n" +" │ ├── ChildProcessError\n" +" │ ├── ConnectionError\n" +" │ │ ├── BrokenPipeError\n" +" │ │ ├── ConnectionAbortedError\n" +" │ │ ├── ConnectionRefusedError\n" +" │ │ └── ConnectionResetError\n" +" │ ├── FileExistsError\n" +" │ ├── FileNotFoundError\n" +" │ ├── InterruptedError\n" +" │ ├── IsADirectoryError\n" +" │ ├── NotADirectoryError\n" +" │ ├── PermissionError\n" +" │ ├── ProcessLookupError\n" +" │ └── TimeoutError\n" +" ├── ReferenceError\n" +" ├── RuntimeError\n" +" │ ├── NotImplementedError\n" +" │ ├── PythonFinalizationError\n" +" │ └── RecursionError\n" +" ├── StopAsyncIteration\n" +" ├── StopIteration\n" +" ├── SyntaxError\n" +" │ └── IndentationError\n" +" │ └── TabError\n" +" ├── SystemError\n" +" ├── TypeError\n" +" ├── ValueError\n" +" │ └── UnicodeError\n" +" │ ├── UnicodeDecodeError\n" +" │ ├── UnicodeEncodeError\n" +" │ └── UnicodeTranslateError\n" +" └── Warning\n" +" ├── BytesWarning\n" +" ├── DeprecationWarning\n" +" ├── EncodingWarning\n" +" ├── FutureWarning\n" +" ├── ImportWarning\n" +" ├── PendingDeprecationWarning\n" +" ├── ResourceWarning\n" +" ├── RuntimeWarning\n" +" ├── SyntaxWarning\n" +" ├── UnicodeWarning\n" +" └── UserWarning\n" +msgstr "" + +#: ../../library/exceptions.rst:6 ../../library/exceptions.rst:17 +#: ../../library/exceptions.rst:196 +msgid "statement" +msgstr "" + +#: ../../library/exceptions.rst:6 +msgid "try" +msgstr "" + +#: ../../library/exceptions.rst:6 +msgid "except" +msgstr "" + +#: ../../library/exceptions.rst:17 +msgid "raise" +msgstr "" + +#: ../../library/exceptions.rst:41 +msgid "exception" +msgstr "" + +#: ../../library/exceptions.rst:41 +msgid "chaining" +msgstr "" + +#: ../../library/exceptions.rst:41 +msgid "__cause__ (exception attribute)" +msgstr "" + +#: ../../library/exceptions.rst:41 +msgid "__context__ (exception attribute)" +msgstr "" + +#: ../../library/exceptions.rst:41 +msgid "__suppress_context__ (exception attribute)" +msgstr "" + +#: ../../library/exceptions.rst:196 +msgid "assert" +msgstr "" + +#: ../../library/exceptions.rst:355 +msgid "module" +msgstr "" + +#: ../../library/exceptions.rst:355 +msgid "errno" +msgstr "" diff --git a/library/faulthandler.po b/library/faulthandler.po new file mode 100644 index 0000000..bdf1d97 --- /dev/null +++ b/library/faulthandler.po @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/faulthandler.rst:2 +msgid ":mod:`!faulthandler` --- Dump the Python traceback" +msgstr "" + +#: ../../library/faulthandler.rst:11 +msgid "" +"This module contains functions to dump Python tracebacks explicitly, on a " +"fault, after a timeout, or on a user signal. " +"Call :func:`faulthandler.enable` to install fault handlers for " +"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS`, " +"and :const:`~signal.SIGILL` signals. You can also enable them at startup by " +"setting the :envvar:`PYTHONFAULTHANDLER` environment variable or by using " +"the :option:`-X` ``faulthandler`` command line option." +msgstr "" + +#: ../../library/faulthandler.rst:19 +msgid "" +"The fault handler is compatible with system fault handlers like Apport or " +"the Windows fault handler. The module uses an alternative stack for signal " +"handlers if the :c:func:`!sigaltstack` function is available. This allows it " +"to dump the traceback even on a stack overflow." +msgstr "" + +#: ../../library/faulthandler.rst:24 +msgid "" +"The fault handler is called on catastrophic cases and therefore can only use " +"signal-safe functions (e.g. it cannot allocate memory on the heap). Because " +"of this limitation traceback dumping is minimal compared to normal Python " +"tracebacks:" +msgstr "" + +#: ../../library/faulthandler.rst:29 +msgid "" +"Only ASCII is supported. The ``backslashreplace`` error handler is used on " +"encoding." +msgstr "" + +#: ../../library/faulthandler.rst:31 +msgid "Each string is limited to 500 characters." +msgstr "" + +#: ../../library/faulthandler.rst:32 +msgid "" +"Only the filename, the function name and the line number are displayed. (no " +"source code)" +msgstr "" + +#: ../../library/faulthandler.rst:34 +msgid "It is limited to 100 frames and 100 threads." +msgstr "" + +#: ../../library/faulthandler.rst:35 +msgid "The order is reversed: the most recent call is shown first." +msgstr "" + +#: ../../library/faulthandler.rst:37 +msgid "" +"By default, the Python traceback is written to :data:`sys.stderr`. To see " +"tracebacks, applications must be run in the terminal. A log file can " +"alternatively be passed to :func:`faulthandler.enable`." +msgstr "" + +#: ../../library/faulthandler.rst:41 +msgid "" +"The module is implemented in C, so tracebacks can be dumped on a crash or " +"when Python is deadlocked." +msgstr "" + +#: ../../library/faulthandler.rst:44 +msgid "" +"The :ref:`Python Development Mode ` " +"calls :func:`faulthandler.enable` at Python startup." +msgstr "" + +#: ../../library/faulthandler.rst:49 +msgid "Module :mod:`pdb`" +msgstr "" + +#: ../../library/faulthandler.rst:50 +msgid "Interactive source code debugger for Python programs." +msgstr "" + +#: ../../library/faulthandler.rst:52 +msgid "Module :mod:`traceback`" +msgstr "" + +#: ../../library/faulthandler.rst:53 +msgid "" +"Standard interface to extract, format and print stack traces of Python " +"programs." +msgstr "" + +#: ../../library/faulthandler.rst:56 +msgid "Dumping the traceback" +msgstr "" + +#: ../../library/faulthandler.rst:60 +msgid "" +"Dump the tracebacks of all threads into *file*. If *all_threads* is " +"``False``, dump only the current thread." +msgstr "" + +#: ../../library/faulthandler.rst:63 +msgid "" +":func:`traceback.print_tb`, which can be used to print a traceback object." +msgstr "" + +#: ../../library/faulthandler.rst:65 ../../library/faulthandler.rst:119 +#: ../../library/faulthandler.rst:165 ../../library/faulthandler.rst:190 +msgid "Added support for passing file descriptor to this function." +msgstr "" + +#: ../../library/faulthandler.rst:70 +msgid "Dumping the C stack" +msgstr "" + +#: ../../library/faulthandler.rst:76 +msgid "Dump the C stack trace of the current thread into *file*." +msgstr "" + +#: ../../library/faulthandler.rst:78 +msgid "" +"If the Python build does not support it or the operating system does not " +"provide a stack trace, then this prints an error in place of a dumped C " +"stack." +msgstr "" + +#: ../../library/faulthandler.rst:85 +msgid "C Stack Compatibility" +msgstr "" + +#: ../../library/faulthandler.rst:87 +msgid "" +"If the system does not support the C-level :manpage:`backtrace(3)` " +"or :manpage:`dladdr1(3)`, then C stack dumps will not work. An error will be " +"printed instead of the stack." +msgstr "" + +#: ../../library/faulthandler.rst:91 +msgid "" +"Additionally, some compilers do not support :term:`CPython's ` " +"implementation of C stack dumps. As a result, a different error may be " +"printed instead of the stack, even if the operating system supports dumping " +"stacks." +msgstr "" + +#: ../../library/faulthandler.rst:97 +msgid "" +"Dumping C stacks can be arbitrarily slow, depending on the DWARF level of " +"the binaries in the call stack." +msgstr "" + +#: ../../library/faulthandler.rst:101 +msgid "Fault handler state" +msgstr "" + +#: ../../library/faulthandler.rst:105 +msgid "" +"Enable the fault handler: install handlers for " +"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS` " +"and :const:`~signal.SIGILL` signals to dump the Python traceback. If " +"*all_threads* is ``True``, produce tracebacks for every running thread. " +"Otherwise, dump only the current thread." +msgstr "" + +#: ../../library/faulthandler.rst:112 +msgid "" +"The *file* must be kept open until the fault handler is disabled: " +"see :ref:`issue with file descriptors `." +msgstr "" + +#: ../../library/faulthandler.rst:115 +msgid "" +"If *c_stack* is ``True``, then the C stack trace is printed after the Python " +"traceback, unless the system does not support it. See :func:`dump_c_stack` " +"for more information on compatibility." +msgstr "" + +#: ../../library/faulthandler.rst:122 +msgid "On Windows, a handler for Windows exception is also installed." +msgstr "" + +#: ../../library/faulthandler.rst:125 +msgid "" +"The dump now mentions if a garbage collector collection is running if " +"*all_threads* is true." +msgstr "" + +#: ../../library/faulthandler.rst:129 +msgid "" +"Only the current thread is dumped if the :term:`GIL` is disabled to prevent " +"the risk of data races." +msgstr "" + +#: ../../library/faulthandler.rst:133 +msgid "The dump now displays the C stack trace if *c_stack* is true." +msgstr "" + +#: ../../library/faulthandler.rst:138 +msgid "" +"Disable the fault handler: uninstall the signal handlers installed " +"by :func:`enable`." +msgstr "" + +#: ../../library/faulthandler.rst:143 +msgid "Check if the fault handler is enabled." +msgstr "" + +#: ../../library/faulthandler.rst:147 +msgid "Dumping the tracebacks after a timeout" +msgstr "" + +#: ../../library/faulthandler.rst:151 +msgid "" +"Dump the tracebacks of all threads, after a timeout of *timeout* seconds, or " +"every *timeout* seconds if *repeat* is ``True``. If *exit* is ``True``, " +"call :c:func:`!_exit` with status=1 after dumping the tracebacks. " +"(Note :c:func:`!_exit` exits the process immediately, which means it doesn't " +"do any cleanup like flushing file buffers.) If the function is called twice, " +"the new call replaces previous parameters and resets the timeout. The timer " +"has a sub-second resolution." +msgstr "" + +#: ../../library/faulthandler.rst:159 +msgid "" +"The *file* must be kept open until the traceback is dumped " +"or :func:`cancel_dump_traceback_later` is called: see :ref:`issue with file " +"descriptors `." +msgstr "" + +#: ../../library/faulthandler.rst:163 +msgid "This function is implemented using a watchdog thread." +msgstr "" + +#: ../../library/faulthandler.rst:168 +msgid "This function is now always available." +msgstr "" + +#: ../../library/faulthandler.rst:173 +msgid "Cancel the last call to :func:`dump_traceback_later`." +msgstr "" + +#: ../../library/faulthandler.rst:177 +msgid "Dumping the traceback on a user signal" +msgstr "" + +#: ../../library/faulthandler.rst:181 +msgid "" +"Register a user signal: install a handler for the *signum* signal to dump " +"the traceback of all threads, or of the current thread if *all_threads* is " +"``False``, into *file*. Call the previous handler if chain is ``True``." +msgstr "" + +#: ../../library/faulthandler.rst:185 +msgid "" +"The *file* must be kept open until the signal is unregistered " +"by :func:`unregister`: see :ref:`issue with file descriptors `." +msgstr "" + +#: ../../library/faulthandler.rst:188 ../../library/faulthandler.rst:199 +msgid "Not available on Windows." +msgstr "" + +#: ../../library/faulthandler.rst:195 +msgid "" +"Unregister a user signal: uninstall the handler of the *signum* signal " +"installed by :func:`register`. Return ``True`` if the signal was registered, " +"``False`` otherwise." +msgstr "" + +#: ../../library/faulthandler.rst:205 +msgid "Issue with file descriptors" +msgstr "" + +#: ../../library/faulthandler.rst:207 +msgid "" +":func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the " +"file descriptor of their *file* argument. If the file is closed and its file " +"descriptor is reused by a new file, or if :func:`os.dup2` is used to replace " +"the file descriptor, the traceback will be written into a different file. " +"Call these functions again each time that the file is replaced." +msgstr "" + +#: ../../library/faulthandler.rst:215 +msgid "Example" +msgstr "" + +#: ../../library/faulthandler.rst:217 +msgid "" +"Example of a segmentation fault on Linux with and without enabling the fault " +"handler:" +msgstr "" + +#: ../../library/faulthandler.rst:220 +msgid "" +"$ python -c \"import ctypes; ctypes.string_at(0)\"\n" +"Segmentation fault\n" +"\n" +"$ python -q -X faulthandler\n" +">>> import ctypes\n" +">>> ctypes.string_at(0)\n" +"Fatal Python error: Segmentation fault\n" +"\n" +"Current thread 0x00007fb899f39700 (most recent call first):\n" +" File \"/opt/python/Lib/ctypes/__init__.py\", line 486 in string_at\n" +" File \"\", line 1 in \n" +"\n" +"Current thread's C stack trace (most recent call first):\n" +" Binary file \"/opt/python/python\", at _Py_DumpStack+0x42 " +"[0x5b27f7d7147e]\n" +" Binary file \"/opt/python/python\", at +0x32dcbd [0x5b27f7d85cbd]\n" +" Binary file \"/opt/python/python\", at +0x32df8a [0x5b27f7d85f8a]\n" +" Binary file \"/usr/lib/libc.so.6\", at +0x3def0 [0x77b73226bef0]\n" +" Binary file \"/usr/lib/libc.so.6\", at +0x17ef9c [0x77b7323acf9c]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0xcdf6 [0x77b7315dddf6]\n" +" Binary file \"/usr/lib/libffi.so.8\", at +0x7976 [0x77b73158f976]\n" +" Binary file \"/usr/lib/libffi.so.8\", at +0x413c [0x77b73158c13c]\n" +" Binary file \"/usr/lib/libffi.so.8\", at ffi_call+0x12e [0x77b73158ef0e]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0x15a33 [0x77b7315e6a33]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0x164fa [0x77b7315e74fa]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0xc624 [0x77b7315dd624]\n" +" Binary file \"/opt/python/python\", at _PyObject_MakeTpCall+0xce " +"[0x5b27f7b73883]\n" +" Binary file \"/opt/python/python\", at +0x11bab6 [0x5b27f7b73ab6]\n" +" Binary file \"/opt/python/python\", at PyObject_Vectorcall+0x23 " +"[0x5b27f7b73b04]\n" +" Binary file \"/opt/python/python\", at _PyEval_EvalFrameDefault+0x490c " +"[0x5b27f7cbb302]\n" +" Binary file \"/opt/python/python\", at +0x2818e6 [0x5b27f7cd98e6]\n" +" Binary file \"/opt/python/python\", at +0x281aab [0x5b27f7cd9aab]\n" +" Binary file \"/opt/python/python\", at PyEval_EvalCode+0xc5 " +"[0x5b27f7cd9ba3]\n" +" Binary file \"/opt/python/python\", at +0x255957 [0x5b27f7cad957]\n" +" Binary file \"/opt/python/python\", at +0x255ab4 [0x5b27f7cadab4]\n" +" Binary file \"/opt/python/python\", at _PyEval_EvalFrameDefault+0x6c3e " +"[0x5b27f7cbd634]\n" +" Binary file \"/opt/python/python\", at +0x2818e6 [0x5b27f7cd98e6]\n" +" Binary file \"/opt/python/python\", at +0x281aab [0x5b27f7cd9aab]\n" +" Binary file \"/opt/python/python\", at +0x11b6e1 [0x5b27f7b736e1]\n" +" Binary file \"/opt/python/python\", at +0x11d348 [0x5b27f7b75348]\n" +" Binary file \"/opt/python/python\", at +0x11d626 [0x5b27f7b75626]\n" +" Binary file \"/opt/python/python\", at PyObject_Call+0x20 " +"[0x5b27f7b7565e]\n" +" Binary file \"/opt/python/python\", at +0x32a67a [0x5b27f7d8267a]\n" +" Binary file \"/opt/python/python\", at +0x32a7f8 [0x5b27f7d827f8]\n" +" Binary file \"/opt/python/python\", at +0x32ac1b [0x5b27f7d82c1b]\n" +" Binary file \"/opt/python/python\", at Py_RunMain+0x31 [0x5b27f7d82ebe]\n" +" \n" +"Segmentation fault" +msgstr "" diff --git a/library/fcntl.po b/library/fcntl.po new file mode 100644 index 0000000..8d60e1a --- /dev/null +++ b/library/fcntl.po @@ -0,0 +1,390 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/fcntl.rst:2 +msgid ":mod:`!fcntl` --- The ``fcntl`` and ``ioctl`` system calls" +msgstr "" + +#: ../../library/fcntl.rst:16 +msgid "" +"This module performs file and I/O control on file descriptors. It is an " +"interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines. See " +"the :manpage:`fcntl(2)` and :manpage:`ioctl(2)` Unix manual pages for full " +"details." +msgstr "" + +#: ../../library/fcntl.rst:21 +msgid "Availability" +msgstr "" + +#: ../../library/fcntl.rst:23 +msgid "" +"All functions in this module take a file descriptor *fd* as their first " +"argument. This can be an integer file descriptor, such as returned by " +"``sys.stdin.fileno()``, or an :class:`io.IOBase` object, such as " +"``sys.stdin`` itself, which provides a :meth:`~io.IOBase.fileno` that " +"returns a genuine file descriptor." +msgstr "" + +#: ../../library/fcntl.rst:29 +msgid "" +"Operations in this module used to raise an :exc:`IOError` where they now " +"raise an :exc:`OSError`." +msgstr "" + +#: ../../library/fcntl.rst:33 +msgid "" +"The :mod:`!fcntl` module now contains ``F_ADD_SEALS``, ``F_GET_SEALS``, and " +"``F_SEAL_*`` constants for sealing of :func:`os.memfd_create` file " +"descriptors." +msgstr "" + +#: ../../library/fcntl.rst:38 +msgid "" +"On macOS, the :mod:`!fcntl` module exposes the ``F_GETPATH`` constant, which " +"obtains the path of a file from a file descriptor. On Linux(>=3.15), " +"the :mod:`!fcntl` module exposes the ``F_OFD_GETLK``, ``F_OFD_SETLK`` and " +"``F_OFD_SETLKW`` constants, which are used when working with open file " +"description locks." +msgstr "" + +#: ../../library/fcntl.rst:45 +msgid "" +"On Linux >= 2.6.11, the :mod:`!fcntl` module exposes the ``F_GETPIPE_SZ`` " +"and ``F_SETPIPE_SZ`` constants, which allow to check and modify a pipe's " +"size respectively." +msgstr "" + +#: ../../library/fcntl.rst:50 +msgid "" +"On FreeBSD, the :mod:`!fcntl` module exposes the ``F_DUP2FD`` and " +"``F_DUP2FD_CLOEXEC`` constants, which allow to duplicate a file descriptor, " +"the latter setting ``FD_CLOEXEC`` flag in addition." +msgstr "" + +#: ../../library/fcntl.rst:55 +msgid "" +"On Linux >= 4.5, the :mod:`fcntl` module exposes the ``FICLONE`` and " +"``FICLONERANGE`` constants, which allow to share some data of one file with " +"another file by reflinking on some filesystems (e.g., btrfs, OCFS2, and " +"XFS). This behavior is commonly referred to as \"copy-on-write\"." +msgstr "" + +#: ../../library/fcntl.rst:61 +msgid "" +"On Linux >= 2.6.32, the :mod:`!fcntl` module exposes the ``F_GETOWN_EX``, " +"``F_SETOWN_EX``, ``F_OWNER_TID``, ``F_OWNER_PID``, ``F_OWNER_PGRP`` " +"constants, which allow to direct I/O availability signals to a specific " +"thread, process, or process group. On Linux >= 4.13, the :mod:`!fcntl` " +"module exposes the ``F_GET_RW_HINT``, ``F_SET_RW_HINT``, " +"``F_GET_FILE_RW_HINT``, ``F_SET_FILE_RW_HINT``, and ``RWH_WRITE_LIFE_*`` " +"constants, which allow to inform the kernel about the relative expected " +"lifetime of writes on a given inode or via a particular open file " +"description. On Linux >= 5.1 and NetBSD, the :mod:`!fcntl` module exposes " +"the ``F_SEAL_FUTURE_WRITE`` constant for use with ``F_ADD_SEALS`` and " +"``F_GET_SEALS`` operations. On FreeBSD, the :mod:`!fcntl` module exposes the " +"``F_READAHEAD``, ``F_ISUNIONSTACK``, and ``F_KINFO`` constants. On macOS and " +"FreeBSD, the :mod:`!fcntl` module exposes the ``F_RDAHEAD`` constant. On " +"NetBSD and AIX, the :mod:`!fcntl` module exposes the ``F_CLOSEM`` constant. " +"On NetBSD, the :mod:`!fcntl` module exposes the ``F_MAXFD`` constant. On " +"macOS and NetBSD, the :mod:`!fcntl` module exposes the ``F_GETNOSIGPIPE`` " +"and ``F_SETNOSIGPIPE`` constant." +msgstr "" + +#: ../../library/fcntl.rst:82 +msgid "" +"On Linux >= 6.1, the :mod:`!fcntl` module exposes the ``F_DUPFD_QUERY`` to " +"query a file descriptor pointing to the same file." +msgstr "" + +#: ../../library/fcntl.rst:86 +msgid "The module defines the following functions:" +msgstr "" + +#: ../../library/fcntl.rst:91 +msgid "" +"Perform the operation *cmd* on file descriptor *fd* (file objects providing " +"a :meth:`~io.IOBase.fileno` method are accepted as well). The values used " +"for *cmd* are operating system dependent, and are available as constants in " +"the :mod:`fcntl` module, using the same names as used in the relevant C " +"header files. The argument *arg* can either be an integer value, " +"a :term:`bytes-like object`, or a string. The type and size of *arg* must " +"match the type and size of the argument of the operation as specified in the " +"relevant C documentation." +msgstr "" + +#: ../../library/fcntl.rst:100 +msgid "" +"When *arg* is an integer, the function returns the integer return value of " +"the C :c:func:`fcntl` call." +msgstr "" + +#: ../../library/fcntl.rst:103 +msgid "" +"When the argument is bytes-like object, it represents a binary structure, " +"for example, created by :func:`struct.pack`. A string value is encoded to " +"binary using the UTF-8 encoding. The binary data is copied to a buffer whose " +"address is passed to the C :c:func:`fcntl` call. The return value after a " +"successful call is the contents of the buffer, converted to a :class:`bytes` " +"object. The length of the returned object will be the same as the length of " +"the *arg* argument. This is limited to 1024 bytes." +msgstr "" + +#: ../../library/fcntl.rst:112 +msgid "If the :c:func:`fcntl` call fails, an :exc:`OSError` is raised." +msgstr "" + +#: ../../library/fcntl.rst:115 +msgid "" +"If the type or the size of *arg* does not match the type or size of the " +"argument of the operation (for example, if an integer is passed when a " +"pointer is expected, or the information returned in the buffer by the " +"operating system is larger than 1024 bytes), this is most likely to result " +"in a segmentation violation or a more subtle data corruption." +msgstr "" + +#: ../../library/fcntl.rst:122 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.fcntl`` with arguments " +"``fd``, ``cmd``, ``arg``." +msgstr "" + +#: ../../library/fcntl.rst:124 +msgid "" +"Add support of arbitrary :term:`bytes-like objects `, not " +"only :class:`bytes`." +msgstr "" + +#: ../../library/fcntl.rst:131 +msgid "" +"This function is identical to the :func:`~fcntl.fcntl` function, except that " +"the argument handling is even more complicated." +msgstr "" + +#: ../../library/fcntl.rst:134 +msgid "" +"The *request* parameter is limited to values that can fit in 32-bits or 64-" +"bits, depending on the platform. Additional constants of interest for use as " +"the *request* argument can be found in the :mod:`termios` module, under the " +"same names as used in the relevant C header files." +msgstr "" + +#: ../../library/fcntl.rst:140 +msgid "" +"The parameter *arg* can be an integer, a :term:`bytes-like object`, or a " +"string. The type and size of *arg* must match the type and size of the " +"argument of the operation as specified in the relevant C documentation." +msgstr "" + +#: ../../library/fcntl.rst:145 +msgid "" +"If *arg* does not support the read-write buffer interface or the " +"*mutate_flag* is false, behavior is as for the :func:`~fcntl.fcntl` function." +msgstr "" + +#: ../../library/fcntl.rst:149 +msgid "" +"If *arg* supports the read-write buffer interface (like :class:`bytearray`) " +"and *mutate_flag* is true (the default), then the buffer is (in effect) " +"passed to the underlying :c:func:`!ioctl` system call, the latter's return " +"code is passed back to the calling Python, and the buffer's new contents " +"reflect the action of the :c:func:`ioctl`. This is a slight simplification, " +"because if the supplied buffer is less than 1024 bytes long it is first " +"copied into a static buffer 1024 bytes long which is then passed " +"to :func:`ioctl` and copied back into the supplied buffer." +msgstr "" + +#: ../../library/fcntl.rst:158 +msgid "" +"If the :c:func:`ioctl` call fails, an :exc:`OSError` exception is raised." +msgstr "" + +#: ../../library/fcntl.rst:161 +msgid "" +"If the type or size of *arg* does not match the type or size of the " +"operation's argument (for example, if an integer is passed when a pointer is " +"expected, or the information returned in the buffer by the operating system " +"is larger than 1024 bytes, or the size of the mutable bytes-like object is " +"too small), this is most likely to result in a segmentation violation or a " +"more subtle data corruption." +msgstr "" + +#: ../../library/fcntl.rst:169 +msgid "An example::" +msgstr "" + +#: ../../library/fcntl.rst:171 +msgid "" +">>> import array, fcntl, struct, termios, os\n" +">>> os.getpgrp()\n" +"13341\n" +">>> struct.unpack('h', fcntl.ioctl(0, termios.TIOCGPGRP, \" \"))[0]\n" +"13341\n" +">>> buf = array.array('h', [0])\n" +">>> fcntl.ioctl(0, termios.TIOCGPGRP, buf, 1)\n" +"0\n" +">>> buf\n" +"array('h', [13341])" +msgstr "" + +#: ../../library/fcntl.rst:182 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.ioctl`` with arguments " +"``fd``, ``request``, ``arg``." +msgstr "" + +#: ../../library/fcntl.rst:184 +msgid "" +"The GIL is always released during a system call. System calls failing with " +"EINTR are automatically retried." +msgstr "" + +#: ../../library/fcntl.rst:190 +msgid "" +"Perform the lock operation *operation* on file descriptor *fd* (file objects " +"providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " +"Unix manual :manpage:`flock(2)` for details. (On some systems, this " +"function is emulated using :c:func:`fcntl`.)" +msgstr "" + +#: ../../library/fcntl.rst:195 +msgid "" +"If the :c:func:`flock` call fails, an :exc:`OSError` exception is raised." +msgstr "" + +#: ../../library/fcntl.rst:197 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.flock`` with arguments " +"``fd``, ``operation``." +msgstr "" + +#: ../../library/fcntl.rst:202 +msgid "" +"This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " +"*fd* is the file descriptor (file objects providing " +"a :meth:`~io.IOBase.fileno` method are accepted as well) of the file to lock " +"or unlock, and *cmd* is one of the following values:" +msgstr "" + +#: ../../library/fcntl.rst:209 +msgid "Release an existing lock." +msgstr "" + +#: ../../library/fcntl.rst:213 +msgid "Acquire a shared lock." +msgstr "" + +#: ../../library/fcntl.rst:217 +msgid "Acquire an exclusive lock." +msgstr "" + +#: ../../library/fcntl.rst:221 +msgid "" +"Bitwise OR with any of the other three ``LOCK_*`` constants to make the " +"request non-blocking." +msgstr "" + +#: ../../library/fcntl.rst:224 +msgid "" +"If :const:`!LOCK_NB` is used and the lock cannot be acquired, " +"an :exc:`OSError` will be raised and the exception will have an *errno* " +"attribute set to :const:`~errno.EACCES` or :const:`~errno.EAGAIN` (depending " +"on the operating system; for portability, check for both values). On at " +"least some systems, :const:`!LOCK_EX` can only be used if the file " +"descriptor refers to a file opened for writing." +msgstr "" + +#: ../../library/fcntl.rst:231 +msgid "" +"*len* is the number of bytes to lock, *start* is the byte offset at which " +"the lock starts, relative to *whence*, and *whence* is as " +"with :func:`io.IOBase.seek`, specifically:" +msgstr "" + +#: ../../library/fcntl.rst:235 +msgid "``0`` -- relative to the start of the file (:const:`os.SEEK_SET`)" +msgstr "" + +#: ../../library/fcntl.rst:236 +msgid "``1`` -- relative to the current buffer position (:const:`os.SEEK_CUR`)" +msgstr "" + +#: ../../library/fcntl.rst:237 +msgid "``2`` -- relative to the end of the file (:const:`os.SEEK_END`)" +msgstr "" + +#: ../../library/fcntl.rst:239 +msgid "" +"The default for *start* is 0, which means to start at the beginning of the " +"file. The default for *len* is 0 which means to lock to the end of the " +"file. The default for *whence* is also 0." +msgstr "" + +#: ../../library/fcntl.rst:243 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.lockf`` with arguments " +"``fd``, ``cmd``, ``len``, ``start``, ``whence``." +msgstr "" + +#: ../../library/fcntl.rst:245 +msgid "Examples (all on a SVR4 compliant system)::" +msgstr "" + +#: ../../library/fcntl.rst:247 +msgid "" +"import struct, fcntl, os\n" +"\n" +"f = open(...)\n" +"rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NDELAY)\n" +"\n" +"lockdata = struct.pack('hhllhh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)\n" +"rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata)" +msgstr "" + +#: ../../library/fcntl.rst:255 +msgid "" +"Note that in the first example the return value variable *rv* will hold an " +"integer value; in the second example it will hold a :class:`bytes` object. " +"The structure lay-out for the *lockdata* variable is system dependent --- " +"therefore using the :func:`flock` call may be better." +msgstr "" + +#: ../../library/fcntl.rst:263 +msgid "Module :mod:`os`" +msgstr "" + +#: ../../library/fcntl.rst:264 +msgid "" +"If the locking flags :const:`~os.O_SHLOCK` and :const:`~os.O_EXLOCK` are " +"present in the :mod:`os` module (on BSD only), the :func:`os.open` function " +"provides an alternative to the :func:`lockf` and :func:`flock` functions." +msgstr "" + +#: ../../library/fcntl.rst:10 +msgid "UNIX" +msgstr "" + +#: ../../library/fcntl.rst:10 +msgid "file control" +msgstr "" + +#: ../../library/fcntl.rst:10 +msgid "I/O control" +msgstr "" diff --git a/library/filecmp.po b/library/filecmp.po new file mode 100644 index 0000000..f83774d --- /dev/null +++ b/library/filecmp.po @@ -0,0 +1,256 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/filecmp.rst:2 +msgid ":mod:`!filecmp` --- File and Directory Comparisons" +msgstr "" + +#: ../../library/filecmp.rst:9 +msgid "**Source code:** :source:`Lib/filecmp.py`" +msgstr "" + +#: ../../library/filecmp.rst:13 +msgid "" +"The :mod:`filecmp` module defines functions to compare files and " +"directories, with various optional time/correctness trade-offs. For " +"comparing files, see also the :mod:`difflib` module." +msgstr "" + +#: ../../library/filecmp.rst:17 +msgid "The :mod:`filecmp` module defines the following functions:" +msgstr "" + +#: ../../library/filecmp.rst:22 +msgid "" +"Compare the files named *f1* and *f2*, returning ``True`` if they seem " +"equal, ``False`` otherwise." +msgstr "" + +#: ../../library/filecmp.rst:25 +msgid "" +"If *shallow* is true and the :func:`os.stat` signatures (file type, size, " +"and modification time) of both files are identical, the files are taken to " +"be equal." +msgstr "" + +#: ../../library/filecmp.rst:29 +msgid "" +"Otherwise, the files are treated as different if their sizes or contents " +"differ." +msgstr "" + +#: ../../library/filecmp.rst:31 +msgid "" +"Note that no external programs are called from this function, giving it " +"portability and efficiency." +msgstr "" + +#: ../../library/filecmp.rst:34 +msgid "" +"This function uses a cache for past comparisons and the results, with cache " +"entries invalidated if the :func:`os.stat` information for the file " +"changes. The entire cache may be cleared using :func:`clear_cache`." +msgstr "" + +#: ../../library/filecmp.rst:41 +msgid "" +"Compare the files in the two directories *dir1* and *dir2* whose names are " +"given by *common*." +msgstr "" + +#: ../../library/filecmp.rst:44 +msgid "" +"Returns three lists of file names: *match*, *mismatch*, *errors*. *match* " +"contains the list of files that match, *mismatch* contains the names of " +"those that don't, and *errors* lists the names of files which could not be " +"compared. Files are listed in *errors* if they don't exist in one of the " +"directories, the user lacks permission to read them or if the comparison " +"could not be done for some other reason." +msgstr "" + +#: ../../library/filecmp.rst:51 +msgid "" +"The *shallow* parameter has the same meaning and default value as " +"for :func:`filecmp.cmp`." +msgstr "" + +#: ../../library/filecmp.rst:54 +msgid "" +"For example, ``cmpfiles('a', 'b', ['c', 'd/e'])`` will compare ``a/c`` with " +"``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in " +"one of the three returned lists." +msgstr "" + +#: ../../library/filecmp.rst:61 +msgid "" +"Clear the filecmp cache. This may be useful if a file is compared so quickly " +"after it is modified that it is within the mtime resolution of the " +"underlying filesystem." +msgstr "" + +#: ../../library/filecmp.rst:71 +msgid "The :class:`dircmp` class" +msgstr "" + +#: ../../library/filecmp.rst:75 +msgid "" +"Construct a new directory comparison object, to compare the directories *a* " +"and *b*. *ignore* is a list of names to ignore, and defaults " +"to :const:`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and " +"defaults to ``[os.curdir, os.pardir]``." +msgstr "" + +#: ../../library/filecmp.rst:80 +msgid "" +"The :class:`dircmp` class compares files by doing *shallow* comparisons as " +"described for :func:`filecmp.cmp` by default using the *shallow* parameter." +msgstr "" + +#: ../../library/filecmp.rst:86 +msgid "Added the *shallow* parameter." +msgstr "" + +#: ../../library/filecmp.rst:88 +msgid "The :class:`dircmp` class provides the following methods:" +msgstr "" + +#: ../../library/filecmp.rst:92 +msgid "Print (to :data:`sys.stdout`) a comparison between *a* and *b*." +msgstr "" + +#: ../../library/filecmp.rst:96 +msgid "" +"Print a comparison between *a* and *b* and common immediate subdirectories." +msgstr "" + +#: ../../library/filecmp.rst:101 +msgid "" +"Print a comparison between *a* and *b* and common subdirectories " +"(recursively)." +msgstr "" + +#: ../../library/filecmp.rst:104 +msgid "" +"The :class:`dircmp` class offers a number of interesting attributes that may " +"be used to get various bits of information about the directory trees being " +"compared." +msgstr "" + +#: ../../library/filecmp.rst:108 +msgid "" +"Note that via :meth:`~object.__getattr__` hooks, all attributes are computed " +"lazily, so there is no speed penalty if only those attributes which are " +"lightweight to compute are used." +msgstr "" + +#: ../../library/filecmp.rst:115 +msgid "The directory *a*." +msgstr "" + +#: ../../library/filecmp.rst:120 +msgid "The directory *b*." +msgstr "" + +#: ../../library/filecmp.rst:125 +msgid "Files and subdirectories in *a*, filtered by *hide* and *ignore*." +msgstr "" + +#: ../../library/filecmp.rst:130 +msgid "Files and subdirectories in *b*, filtered by *hide* and *ignore*." +msgstr "" + +#: ../../library/filecmp.rst:135 +msgid "Files and subdirectories in both *a* and *b*." +msgstr "" + +#: ../../library/filecmp.rst:140 +msgid "Files and subdirectories only in *a*." +msgstr "" + +#: ../../library/filecmp.rst:145 +msgid "Files and subdirectories only in *b*." +msgstr "" + +#: ../../library/filecmp.rst:150 +msgid "Subdirectories in both *a* and *b*." +msgstr "" + +#: ../../library/filecmp.rst:155 +msgid "Files in both *a* and *b*." +msgstr "" + +#: ../../library/filecmp.rst:160 +msgid "" +"Names in both *a* and *b*, such that the type differs between the " +"directories, or names for which :func:`os.stat` reports an error." +msgstr "" + +#: ../../library/filecmp.rst:166 +msgid "" +"Files which are identical in both *a* and *b*, using the class's file " +"comparison operator." +msgstr "" + +#: ../../library/filecmp.rst:172 +msgid "" +"Files which are in both *a* and *b*, whose contents differ according to the " +"class's file comparison operator." +msgstr "" + +#: ../../library/filecmp.rst:178 +msgid "Files which are in both *a* and *b*, but could not be compared." +msgstr "" + +#: ../../library/filecmp.rst:183 +msgid "" +"A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp` " +"instances (or MyDirCmp instances if this instance is of type MyDirCmp, a " +"subclass of :class:`dircmp`)." +msgstr "" + +#: ../../library/filecmp.rst:187 +msgid "" +"Previously entries were always :class:`dircmp` instances. Now entries are " +"the same type as *self*, if *self* is a subclass of :class:`dircmp`." +msgstr "" + +#: ../../library/filecmp.rst:196 +msgid "List of directories ignored by :class:`dircmp` by default." +msgstr "" + +#: ../../library/filecmp.rst:199 +msgid "" +"Here is a simplified example of using the ``subdirs`` attribute to search " +"recursively through two directories to show common different files::" +msgstr "" + +#: ../../library/filecmp.rst:202 +msgid "" +">>> from filecmp import dircmp\n" +">>> def print_diff_files(dcmp):\n" +"... for name in dcmp.diff_files:\n" +"... print(\"diff_file %s found in %s and %s\" % (name, dcmp.left,\n" +"... dcmp.right))\n" +"... for sub_dcmp in dcmp.subdirs.values():\n" +"... print_diff_files(sub_dcmp)\n" +"...\n" +">>> dcmp = dircmp('dir1', 'dir2')\n" +">>> print_diff_files(dcmp)" +msgstr "" diff --git a/library/fileformats.po b/library/fileformats.po new file mode 100644 index 0000000..f06c55e --- /dev/null +++ b/library/fileformats.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/fileformats.rst:5 +msgid "File Formats" +msgstr "" + +#: ../../library/fileformats.rst:7 +msgid "" +"The modules described in this chapter parse various miscellaneous file " +"formats that aren't markup languages and are not related to e-mail." +msgstr "" diff --git a/library/fileinput.po b/library/fileinput.po new file mode 100644 index 0000000..267721d --- /dev/null +++ b/library/fileinput.po @@ -0,0 +1,318 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/fileinput.rst:2 +msgid ":mod:`!fileinput` --- Iterate over lines from multiple input streams" +msgstr "" + +#: ../../library/fileinput.rst:10 +msgid "**Source code:** :source:`Lib/fileinput.py`" +msgstr "" + +#: ../../library/fileinput.rst:14 +msgid "" +"This module implements a helper class and functions to quickly write a loop " +"over standard input or a list of files. If you just want to read or write " +"one file see :func:`open`." +msgstr "" + +#: ../../library/fileinput.rst:18 +msgid "The typical use is::" +msgstr "" + +#: ../../library/fileinput.rst:20 +msgid "" +"import fileinput\n" +"for line in fileinput.input(encoding=\"utf-8\"):\n" +" process(line)" +msgstr "" + +#: ../../library/fileinput.rst:24 +msgid "" +"This iterates over the lines of all files listed in ``sys.argv[1:]``, " +"defaulting to ``sys.stdin`` if the list is empty. If a filename is ``'-'``, " +"it is also replaced by ``sys.stdin`` and the optional arguments *mode* and " +"*openhook* are ignored. To specify an alternative list of filenames, pass " +"it as the first argument to :func:`.input`. A single file name is also " +"allowed." +msgstr "" + +#: ../../library/fileinput.rst:30 +msgid "" +"All files are opened in text mode by default, but you can override this by " +"specifying the *mode* parameter in the call to :func:`.input` " +"or :class:`FileInput`. If an I/O error occurs during opening or reading a " +"file, :exc:`OSError` is raised." +msgstr "" + +#: ../../library/fileinput.rst:35 +msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." +msgstr "" + +#: ../../library/fileinput.rst:38 +msgid "" +"If ``sys.stdin`` is used more than once, the second and further use will " +"return no lines, except perhaps for interactive use, or if it has been " +"explicitly reset (e.g. using ``sys.stdin.seek(0)``)." +msgstr "" + +#: ../../library/fileinput.rst:42 +msgid "" +"Empty files are opened and immediately closed; the only time their presence " +"in the list of filenames is noticeable at all is when the last file opened " +"is empty." +msgstr "" + +#: ../../library/fileinput.rst:46 +msgid "" +"Lines are returned with any newlines intact, which means that the last line " +"in a file may not have one." +msgstr "" + +#: ../../library/fileinput.rst:49 +msgid "" +"You can control how files are opened by providing an opening hook via the " +"*openhook* parameter to :func:`fileinput.input` or :func:`FileInput`. The " +"hook must be a function that takes two arguments, *filename* and *mode*, and " +"returns an accordingly opened file-like object. If *encoding* and/or " +"*errors* are specified, they will be passed to the hook as additional " +"keyword arguments. This module provides a :func:`hook_compressed` to support " +"compressed files." +msgstr "" + +#: ../../library/fileinput.rst:56 +msgid "The following function is the primary interface of this module:" +msgstr "" + +#: ../../library/fileinput.rst:61 +msgid "" +"Create an instance of the :class:`FileInput` class. The instance will be " +"used as global state for the functions of this module, and is also returned " +"to use during iteration. The parameters to this function will be passed " +"along to the constructor of the :class:`FileInput` class." +msgstr "" + +#: ../../library/fileinput.rst:66 +msgid "" +"The :class:`FileInput` instance can be used as a context manager in " +"the :keyword:`with` statement. In this example, *input* is closed after " +"the :keyword:`!with` statement is exited, even if an exception occurs::" +msgstr "" + +#: ../../library/fileinput.rst:70 +msgid "" +"with fileinput.input(files=('spam.txt', 'eggs.txt'), encoding=\"utf-8\") as " +"f:\n" +" for line in f:\n" +" process(line)" +msgstr "" + +#: ../../library/fileinput.rst:74 ../../library/fileinput.rst:170 +msgid "Can be used as a context manager." +msgstr "" + +#: ../../library/fileinput.rst:77 +msgid "The keyword parameters *mode* and *openhook* are now keyword-only." +msgstr "" + +#: ../../library/fileinput.rst:80 ../../library/fileinput.rst:176 +#: ../../library/fileinput.rst:210 +msgid "The keyword-only parameter *encoding* and *errors* are added." +msgstr "" + +#: ../../library/fileinput.rst:84 +msgid "" +"The following functions use the global state created " +"by :func:`fileinput.input`; if there is no active state, :exc:`RuntimeError` " +"is raised." +msgstr "" + +#: ../../library/fileinput.rst:90 +msgid "" +"Return the name of the file currently being read. Before the first line has " +"been read, returns ``None``." +msgstr "" + +#: ../../library/fileinput.rst:96 +msgid "" +"Return the integer \"file descriptor\" for the current file. When no file is " +"opened (before the first line and between files), returns ``-1``." +msgstr "" + +#: ../../library/fileinput.rst:102 +msgid "" +"Return the cumulative line number of the line that has just been read. " +"Before the first line has been read, returns ``0``. After the last line of " +"the last file has been read, returns the line number of that line." +msgstr "" + +#: ../../library/fileinput.rst:109 +msgid "" +"Return the line number in the current file. Before the first line has been " +"read, returns ``0``. After the last line of the last file has been read, " +"returns the line number of that line within the file." +msgstr "" + +#: ../../library/fileinput.rst:116 +msgid "" +"Return ``True`` if the line just read is the first line of its file, " +"otherwise return ``False``." +msgstr "" + +#: ../../library/fileinput.rst:122 +msgid "" +"Return ``True`` if the last line was read from ``sys.stdin``, otherwise " +"return ``False``." +msgstr "" + +#: ../../library/fileinput.rst:128 +msgid "" +"Close the current file so that the next iteration will read the first line " +"from the next file (if any); lines not read from the file will not count " +"towards the cumulative line count. The filename is not changed until after " +"the first line of the next file has been read. Before the first line has " +"been read, this function has no effect; it cannot be used to skip the first " +"file. After the last line of the last file has been read, this function has " +"no effect." +msgstr "" + +#: ../../library/fileinput.rst:138 +msgid "Close the sequence." +msgstr "" + +#: ../../library/fileinput.rst:140 +msgid "" +"The class which implements the sequence behavior provided by the module is " +"available for subclassing as well:" +msgstr "" + +#: ../../library/fileinput.rst:146 +msgid "" +"Class :class:`FileInput` is the implementation; its " +"methods :meth:`filename`, :meth:`fileno`, :meth:`lineno`, :meth:`filelineno`, :meth:`isfirstline`, :meth:`isstdin`, :meth:`nextfile` " +"and :meth:`close` correspond to the functions of the same name in the " +"module. In addition it is :term:`iterable` and has " +"a :meth:`~io.TextIOBase.readline` method which returns the next input line. " +"The sequence must be accessed in strictly sequential order; random access " +"and :meth:`~io.TextIOBase.readline` cannot be mixed." +msgstr "" + +#: ../../library/fileinput.rst:154 +msgid "" +"With *mode* you can specify which file mode will be passed to :func:`open`. " +"It must be one of ``'r'`` and ``'rb'``." +msgstr "" + +#: ../../library/fileinput.rst:157 +msgid "" +"The *openhook*, when given, must be a function that takes two arguments, " +"*filename* and *mode*, and returns an accordingly opened file-like object. " +"You cannot use *inplace* and *openhook* together." +msgstr "" + +#: ../../library/fileinput.rst:161 +msgid "" +"You can specify *encoding* and *errors* that is passed to :func:`open` or " +"*openhook*." +msgstr "" + +#: ../../library/fileinput.rst:163 +msgid "" +"A :class:`FileInput` instance can be used as a context manager in " +"the :keyword:`with` statement. In this example, *input* is closed after " +"the :keyword:`!with` statement is exited, even if an exception occurs::" +msgstr "" + +#: ../../library/fileinput.rst:167 +msgid "" +"with FileInput(files=('spam.txt', 'eggs.txt')) as input:\n" +" process(input)" +msgstr "" + +#: ../../library/fileinput.rst:173 +msgid "The keyword parameter *mode* and *openhook* are now keyword-only." +msgstr "" + +#: ../../library/fileinput.rst:179 +msgid "" +"The ``'rU'`` and ``'U'`` modes and the :meth:`!__getitem__` method have been " +"removed." +msgstr "" + +#: ../../library/fileinput.rst:184 +msgid "" +"**Optional in-place filtering:** if the keyword argument ``inplace=True`` is " +"passed to :func:`fileinput.input` or to the :class:`FileInput` constructor, " +"the file is moved to a backup file and standard output is directed to the " +"input file (if a file of the same name as the backup file already exists, it " +"will be replaced silently). This makes it possible to write a filter that " +"rewrites its input file in place. If the *backup* parameter is given " +"(typically as ``backup='.'``), it specifies the extension " +"for the backup file, and the backup file remains around; by default, the " +"extension is ``'.bak'`` and it is deleted when the output file is closed. " +"In-place filtering is disabled when standard input is read." +msgstr "" + +#: ../../library/fileinput.rst:196 +msgid "The two following opening hooks are provided by this module:" +msgstr "" + +#: ../../library/fileinput.rst:200 +msgid "" +"Transparently opens files compressed with gzip and bzip2 (recognized by the " +"extensions ``'.gz'`` and ``'.bz2'``) using the :mod:`gzip` and :mod:`bz2` " +"modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " +"is opened normally (ie, using :func:`open` without any decompression)." +msgstr "" + +#: ../../library/fileinput.rst:205 +msgid "" +"The *encoding* and *errors* values are passed to :class:`io.TextIOWrapper` " +"for compressed files and open for normal files." +msgstr "" + +#: ../../library/fileinput.rst:208 +msgid "" +"Usage example: ``fi = " +"fileinput.FileInput(openhook=fileinput.hook_compressed, encoding=\"utf-8\")``" +msgstr "" + +#: ../../library/fileinput.rst:216 +msgid "" +"Returns a hook which opens each file with :func:`open`, using the given " +"*encoding* and *errors* to read the file." +msgstr "" + +#: ../../library/fileinput.rst:219 +msgid "" +"Usage example: ``fi = " +"fileinput.FileInput(openhook=fileinput.hook_encoded(\"utf-8\", " +"\"surrogateescape\"))``" +msgstr "" + +#: ../../library/fileinput.rst:223 +msgid "Added the optional *errors* parameter." +msgstr "" + +#: ../../library/fileinput.rst:226 +msgid "" +"This function is deprecated since :func:`fileinput.input` " +"and :class:`FileInput` now have *encoding* and *errors* parameters." +msgstr "" diff --git a/library/filesys.po b/library/filesys.po new file mode 100644 index 0000000..9cfafe9 --- /dev/null +++ b/library/filesys.po @@ -0,0 +1,59 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/filesys.rst:5 +msgid "File and Directory Access" +msgstr "" + +#: ../../library/filesys.rst:7 +msgid "" +"The modules described in this chapter deal with disk files and directories. " +"For example, there are modules for reading the properties of files, " +"manipulating paths in a portable way, and creating temporary files. The " +"full list of modules in this chapter is:" +msgstr "" + +#: ../../library/filesys.rst:28 +msgid "Module :mod:`os`" +msgstr "" + +#: ../../library/filesys.rst:29 +msgid "" +"Operating system interfaces, including functions to work with files at a " +"lower level than Python :term:`file objects `." +msgstr "" + +#: ../../library/filesys.rst:32 +msgid "Module :mod:`io`" +msgstr "" + +#: ../../library/filesys.rst:33 +msgid "" +"Python's built-in I/O library, including both abstract classes and some " +"concrete classes such as file I/O." +msgstr "" + +#: ../../library/filesys.rst:36 +msgid "Built-in function :func:`open`" +msgstr "" + +#: ../../library/filesys.rst:37 +msgid "The standard way to open files for reading and writing with Python." +msgstr "" diff --git a/library/fnmatch.po b/library/fnmatch.po new file mode 100644 index 0000000..6f7c2fa --- /dev/null +++ b/library/fnmatch.po @@ -0,0 +1,218 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/fnmatch.rst:2 +msgid ":mod:`!fnmatch` --- Unix filename pattern matching" +msgstr "" + +#: ../../library/fnmatch.rst:7 +msgid "**Source code:** :source:`Lib/fnmatch.py`" +msgstr "" + +#: ../../library/fnmatch.rst:15 +msgid "" +"This module provides support for Unix shell-style wildcards, which are *not* " +"the same as regular expressions (which are documented in the :mod:`re` " +"module). The special characters used in shell-style wildcards are:" +msgstr "" + +#: ../../library/fnmatch.rst:27 +msgid "Pattern" +msgstr "" + +#: ../../library/fnmatch.rst:27 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/fnmatch.rst:29 +msgid "``*``" +msgstr "``*``" + +#: ../../library/fnmatch.rst:29 +msgid "matches everything" +msgstr "" + +#: ../../library/fnmatch.rst:31 +msgid "``?``" +msgstr "``?``" + +#: ../../library/fnmatch.rst:31 +msgid "matches any single character" +msgstr "" + +#: ../../library/fnmatch.rst:33 +msgid "``[seq]``" +msgstr "``[seq]``" + +#: ../../library/fnmatch.rst:33 +msgid "matches any character in *seq*" +msgstr "" + +#: ../../library/fnmatch.rst:35 +msgid "``[!seq]``" +msgstr "``[!seq]``" + +#: ../../library/fnmatch.rst:35 +msgid "matches any character not in *seq*" +msgstr "" + +#: ../../library/fnmatch.rst:38 +msgid "" +"For a literal match, wrap the meta-characters in brackets. For example, " +"``'[?]'`` matches the character ``'?'``." +msgstr "" + +#: ../../library/fnmatch.rst:43 +msgid "" +"Note that the filename separator (``'/'`` on Unix) is *not* special to this " +"module. See module :mod:`glob` for pathname expansion (:mod:`glob` " +"uses :func:`.filter` to match pathname segments). Similarly, filenames " +"starting with a period are not special for this module, and are matched by " +"the ``*`` and ``?`` patterns." +msgstr "" + +#: ../../library/fnmatch.rst:49 +msgid "" +"Unless stated otherwise, \"filename string\" and \"pattern string\" either " +"refer to :class:`str` or ``ISO-8859-1`` encoded :class:`bytes` objects. Note " +"that the functions documented below do not allow to mix a :class:`!bytes` " +"pattern with a :class:`!str` filename, and vice-versa." +msgstr "" + +#: ../../library/fnmatch.rst:54 +msgid "" +"Finally, note that :func:`functools.lru_cache` with a *maxsize* of 32768 is " +"used to cache the (typed) compiled regex patterns in the following " +"functions: :func:`fnmatch`, :func:`fnmatchcase`, :func:`.filter`, :func:`.filterfalse`." +msgstr "" + +#: ../../library/fnmatch.rst:61 +msgid "" +"Test whether the filename string *name* matches the pattern string *pat*, " +"returning ``True`` or ``False``. Both parameters are case-normalized " +"using :func:`os.path.normcase`. :func:`fnmatchcase` can be used to perform a " +"case-sensitive comparison, regardless of whether that's standard for the " +"operating system." +msgstr "" + +#: ../../library/fnmatch.rst:67 +msgid "" +"This example will print all file names in the current directory with the " +"extension ``.txt``::" +msgstr "" + +#: ../../library/fnmatch.rst:70 +msgid "" +"import fnmatch\n" +"import os\n" +"\n" +"for file in os.listdir('.'):\n" +" if fnmatch.fnmatch(file, '*.txt'):\n" +" print(file)" +msgstr "" + +#: ../../library/fnmatch.rst:80 +msgid "" +"Test whether the filename string *name* matches the pattern string *pat*, " +"returning ``True`` or ``False``; the comparison is case-sensitive and does " +"not apply :func:`os.path.normcase`." +msgstr "" + +#: ../../library/fnmatch.rst:87 +msgid "" +"Construct a list from those elements of the :term:`iterable` of filename " +"strings *names* that match the pattern string *pat*. It is the same as ``[n " +"for n in names if fnmatch(n, pat)]``, but implemented more efficiently." +msgstr "" + +#: ../../library/fnmatch.rst:95 +msgid "" +"Construct a list from those elements of the :term:`iterable` of filename " +"strings *names* that do not match the pattern string *pat*. It is the same " +"as ``[n for n in names if not fnmatch(n, pat)]``, but implemented more " +"efficiently." +msgstr "" + +#: ../../library/fnmatch.rst:105 +msgid "" +"Return the shell-style pattern *pat* converted to a regular expression for " +"using with :func:`re.match`. The pattern is expected to be a :class:`str`." +msgstr "" + +#: ../../library/fnmatch.rst:108 +msgid "Example:" +msgstr "" + +#: ../../library/fnmatch.rst:122 +msgid "Module :mod:`glob`" +msgstr "" + +#: ../../library/fnmatch.rst:123 +msgid "Unix shell-style path expansion." +msgstr "" + +#: ../../library/fnmatch.rst:9 +msgid "filenames" +msgstr "" + +#: ../../library/fnmatch.rst:9 +msgid "wildcard expansion" +msgstr "" + +#: ../../library/fnmatch.rst:11 ../../library/fnmatch.rst:41 +msgid "module" +msgstr "" + +#: ../../library/fnmatch.rst:11 +msgid "re" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "* (asterisk)" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "in glob-style wildcards" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "? (question mark)" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "[] (square brackets)" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "! (exclamation)" +msgstr "" + +#: ../../library/fnmatch.rst:19 +msgid "- (minus)" +msgstr "" + +#: ../../library/fnmatch.rst:41 +msgid "glob" +msgstr "" diff --git a/library/fractions.po b/library/fractions.po new file mode 100644 index 0000000..c79bca7 --- /dev/null +++ b/library/fractions.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/fractions.rst:2 +msgid ":mod:`!fractions` --- Rational numbers" +msgstr "" + +#: ../../library/fractions.rst:10 +msgid "**Source code:** :source:`Lib/fractions.py`" +msgstr "" + +#: ../../library/fractions.rst:14 +msgid "" +"The :mod:`fractions` module provides support for rational number arithmetic." +msgstr "" + +#: ../../library/fractions.rst:17 +msgid "" +"A Fraction instance can be constructed from a pair of integers, from another " +"rational number, or from a string." +msgstr "" + +#: ../../library/fractions.rst:26 +msgid "" +"The first version requires that *numerator* and *denominator* are instances " +"of :class:`numbers.Rational` and returns a new :class:`Fraction` instance " +"with value ``numerator/denominator``. If *denominator* is ``0``, it raises " +"a :exc:`ZeroDivisionError`." +msgstr "" + +#: ../../library/fractions.rst:31 +msgid "" +"The second version requires that *number* is an instance " +"of :class:`numbers.Rational` or has the :meth:`!as_integer_ratio` method " +"(this includes :class:`float` and :class:`decimal.Decimal`). It returns " +"a :class:`Fraction` instance with exactly the same value. Assumed, that " +"the :meth:`!as_integer_ratio` method returns a pair of coprime integers and " +"last one is positive. Note that due to the usual issues with binary point " +"(see :ref:`tut-fp-issues`), the argument to ``Fraction(1.1)`` is not exactly " +"equal to 11/10, and so ``Fraction(1.1)`` does *not* return ``Fraction(11, " +"10)`` as one might expect. (But see the documentation for " +"the :meth:`limit_denominator` method below.)" +msgstr "" + +#: ../../library/fractions.rst:43 +msgid "" +"The last version of the constructor expects a string. The usual form for " +"this instance is::" +msgstr "" + +#: ../../library/fractions.rst:46 +msgid "[sign] numerator ['/' denominator]" +msgstr "" + +#: ../../library/fractions.rst:48 +msgid "" +"where the optional ``sign`` may be either '+' or '-' and ``numerator`` and " +"``denominator`` (if present) are strings of decimal digits (underscores may " +"be used to delimit digits as with integral literals in code). In addition, " +"any string that represents a finite value and is accepted by " +"the :class:`float` constructor is also accepted by the :class:`Fraction` " +"constructor. In either form the input string may also have leading and/or " +"trailing whitespace. Here are some examples::" +msgstr "" + +#: ../../library/fractions.rst:57 +msgid "" +">>> from fractions import Fraction\n" +">>> Fraction(16, -10)\n" +"Fraction(-8, 5)\n" +">>> Fraction(123)\n" +"Fraction(123, 1)\n" +">>> Fraction()\n" +"Fraction(0, 1)\n" +">>> Fraction('3/7')\n" +"Fraction(3, 7)\n" +">>> Fraction(' -3/7 ')\n" +"Fraction(-3, 7)\n" +">>> Fraction('1.414213 \\t\\n')\n" +"Fraction(1414213, 1000000)\n" +">>> Fraction('-.125')\n" +"Fraction(-1, 8)\n" +">>> Fraction('7e-6')\n" +"Fraction(7, 1000000)\n" +">>> Fraction(2.25)\n" +"Fraction(9, 4)\n" +">>> Fraction(1.1)\n" +"Fraction(2476979795053773, 2251799813685248)\n" +">>> from decimal import Decimal\n" +">>> Fraction(Decimal('1.1'))\n" +"Fraction(11, 10)" +msgstr "" + +#: ../../library/fractions.rst:83 +msgid "" +"The :class:`Fraction` class inherits from the abstract base " +"class :class:`numbers.Rational`, and implements all of the methods and " +"operations from that class. :class:`Fraction` instances " +"are :term:`hashable`, and should be treated as immutable. In " +"addition, :class:`Fraction` has the following properties and methods:" +msgstr "" + +#: ../../library/fractions.rst:89 +msgid "" +"The :class:`Fraction` constructor now accepts :class:`float` " +"and :class:`decimal.Decimal` instances." +msgstr "" + +#: ../../library/fractions.rst:93 +msgid "" +"The :func:`math.gcd` function is now used to normalize the *numerator* and " +"*denominator*. :func:`math.gcd` always returns an :class:`int` type. " +"Previously, the GCD type depended on *numerator* and *denominator*." +msgstr "" + +#: ../../library/fractions.rst:98 +msgid "" +"Underscores are now permitted when creating a :class:`Fraction` instance " +"from a string, following :PEP:`515` rules." +msgstr "" + +#: ../../library/fractions.rst:102 +msgid "" +":class:`Fraction` implements ``__int__`` now to satisfy " +"``typing.SupportsInt`` instance checks." +msgstr "" + +#: ../../library/fractions.rst:106 +msgid "" +"Space is allowed around the slash for string inputs: ``Fraction('2 / 3')``." +msgstr "" + +#: ../../library/fractions.rst:109 +msgid "" +":class:`Fraction` instances now support float-style formatting, with " +"presentation types ``\"e\"``, ``\"E\"``, ``\"f\"``, ``\"F\"``, ``\"g\"``, " +"``\"G\"`` and ``\"%\"\"``." +msgstr "" + +#: ../../library/fractions.rst:114 +msgid "" +"Formatting of :class:`Fraction` instances without a presentation type now " +"supports fill, alignment, sign handling, minimum width and grouping." +msgstr "" + +#: ../../library/fractions.rst:118 +msgid "" +"The :class:`Fraction` constructor now accepts any objects with the :meth:`!" +"as_integer_ratio` method." +msgstr "" + +#: ../../library/fractions.rst:124 +msgid "Numerator of the Fraction in lowest term." +msgstr "" + +#: ../../library/fractions.rst:128 +msgid "Denominator of the Fraction in lowest term." +msgstr "" + +#: ../../library/fractions.rst:133 +msgid "" +"Return a tuple of two integers, whose ratio is equal to the original " +"Fraction. The ratio is in lowest terms and has a positive denominator." +msgstr "" + +#: ../../library/fractions.rst:141 +msgid "Return ``True`` if the Fraction is an integer." +msgstr "" + +#: ../../library/fractions.rst:147 +msgid "" +"Alternative constructor which only accepts instances of :class:`float` " +"or :class:`numbers.Integral`. Beware that ``Fraction.from_float(0.3)`` is " +"not the same value as ``Fraction(3, 10)``." +msgstr "" + +#: ../../library/fractions.rst:153 +msgid "" +"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " +"directly from a :class:`float`." +msgstr "" + +#: ../../library/fractions.rst:159 +msgid "" +"Alternative constructor which only accepts instances " +"of :class:`decimal.Decimal` or :class:`numbers.Integral`." +msgstr "" + +#: ../../library/fractions.rst:164 +msgid "" +"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " +"directly from a :class:`decimal.Decimal` instance." +msgstr "" + +#: ../../library/fractions.rst:171 +msgid "" +"Alternative constructor which only accepts instances " +"of :class:`numbers.Integral`, :class:`numbers.Rational`, :class:`float` " +"or :class:`decimal.Decimal`, and objects with the :meth:`!as_integer_ratio` " +"method, but not strings." +msgstr "" + +#: ../../library/fractions.rst:181 +msgid "" +"Finds and returns the closest :class:`Fraction` to ``self`` that has " +"denominator at most max_denominator. This method is useful for finding " +"rational approximations to a given floating-point number:" +msgstr "" + +#: ../../library/fractions.rst:189 +msgid "or for recovering a rational number that's represented as a float:" +msgstr "" + +#: ../../library/fractions.rst:202 +msgid "" +"Returns the greatest :class:`int` ``<= self``. This method can also be " +"accessed through the :func:`math.floor` function:" +msgstr "" + +#: ../../library/fractions.rst:212 +msgid "" +"Returns the least :class:`int` ``>= self``. This method can also be " +"accessed through the :func:`math.ceil` function." +msgstr "" + +#: ../../library/fractions.rst:219 +msgid "" +"The first version returns the nearest :class:`int` to ``self``, rounding " +"half to even. The second version rounds ``self`` to the nearest multiple of " +"``Fraction(1, 10**ndigits)`` (logically, if ``ndigits`` is negative), again " +"rounding half toward even. This method can also be accessed through " +"the :func:`round` function." +msgstr "" + +#: ../../library/fractions.rst:227 +msgid "" +"Provides support for formatting of :class:`Fraction` instances via " +"the :meth:`str.format` method, the :func:`format` built-in function, " +"or :ref:`Formatted string literals `." +msgstr "" + +#: ../../library/fractions.rst:231 +msgid "" +"If the ``format_spec`` format specification string does not end with one of " +"the presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` " +"or ``'%'`` then formatting follows the general rules for fill, alignment, " +"sign handling, minimum width, and grouping as described in the :ref:`format " +"specification mini-language `. The \"alternate form\" flag " +"``'#'`` is supported: if present, it forces the output string to always " +"include an explicit denominator, even when the value being formatted is an " +"exact integer. The zero-fill flag ``'0'`` is not supported." +msgstr "" + +#: ../../library/fractions.rst:241 +msgid "" +"If the ``format_spec`` format specification string ends with one of the " +"presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` or " +"``'%'`` then formatting follows the rules outlined for the :class:`float` " +"type in the :ref:`formatspec` section." +msgstr "" + +#: ../../library/fractions.rst:246 +msgid "Here are some examples::" +msgstr "" + +#: ../../library/fractions.rst:248 +msgid "" +">>> from fractions import Fraction\n" +">>> format(Fraction(103993, 33102), '_')\n" +"'103_993/33_102'\n" +">>> format(Fraction(1, 7), '.^+10')\n" +"'...+1/7...'\n" +">>> format(Fraction(3, 1), '')\n" +"'3'\n" +">>> format(Fraction(3, 1), '#')\n" +"'3/1'\n" +">>> format(Fraction(1, 7), '.40g')\n" +"'0.1428571428571428571428571428571428571429'\n" +">>> format(Fraction('1234567.855'), '_.2f')\n" +"'1_234_567.86'\n" +">>> f\"{Fraction(355, 113):*>20.6e}\"\n" +"'********3.141593e+00'\n" +">>> old_price, new_price = 499, 672\n" +">>> \"{:.2%} price increase\".format(Fraction(new_price, old_price) - 1)\n" +"'34.67% price increase'" +msgstr "" + +#: ../../library/fractions.rst:270 +msgid "Module :mod:`numbers`" +msgstr "" + +#: ../../library/fractions.rst:271 +msgid "The abstract base classes making up the numeric tower." +msgstr "" + +#: ../../library/fractions.rst:20 +msgid "as_integer_ratio()" +msgstr "" diff --git a/library/frameworks.po b/library/frameworks.po new file mode 100644 index 0000000..e50678d --- /dev/null +++ b/library/frameworks.po @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/frameworks.rst:5 +msgid "Program Frameworks" +msgstr "" + +#: ../../library/frameworks.rst:7 +msgid "" +"The modules described in this chapter are frameworks that will largely " +"dictate the structure of your program. Currently the modules described " +"here are all oriented toward writing command-line interfaces." +msgstr "" + +#: ../../library/frameworks.rst:11 +msgid "The full list of modules described in this chapter is:" +msgstr "" diff --git a/library/ftplib.po b/library/ftplib.po new file mode 100644 index 0000000..9d738b0 --- /dev/null +++ b/library/ftplib.po @@ -0,0 +1,621 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/ftplib.rst:2 +msgid ":mod:`!ftplib` --- FTP protocol client" +msgstr "" + +#: ../../library/ftplib.rst:7 +msgid "**Source code:** :source:`Lib/ftplib.py`" +msgstr "" + +#: ../../library/ftplib.rst:15 +msgid "" +"This module defines the class :class:`FTP` and a few related items. " +"The :class:`FTP` class implements the client side of the FTP protocol. You " +"can use this to write Python programs that perform a variety of automated " +"FTP jobs, such as mirroring other FTP servers. It is also used by the " +"module :mod:`urllib.request` to handle URLs that use FTP. For more " +"information on FTP (File Transfer Protocol), see internet :rfc:`959`." +msgstr "" + +#: ../../library/ftplib.rst:22 +msgid "The default encoding is UTF-8, following :rfc:`2640`." +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/ftplib.rst:26 +msgid "Here's a sample session using the :mod:`ftplib` module::" +msgstr "" + +#: ../../library/ftplib.rst:28 +msgid "" +">>> from ftplib import FTP\n" +">>> ftp = FTP('ftp.us.debian.org') # connect to host, default port\n" +">>> ftp.login() # user anonymous, passwd anonymous@\n" +"'230 Login successful.'\n" +">>> ftp.cwd('debian') # change into \"debian\" directory\n" +"'250 Directory successfully changed.'\n" +">>> ftp.retrlines('LIST') # list directory contents\n" +"-rw-rw-r-- 1 1176 1176 1063 Jun 15 10:18 README\n" +"...\n" +"drwxr-sr-x 5 1176 1176 4096 Dec 19 2000 pool\n" +"drwxr-sr-x 4 1176 1176 4096 Nov 17 2008 project\n" +"drwxr-xr-x 3 1176 1176 4096 Oct 10 2012 tools\n" +"'226 Directory send OK.'\n" +">>> with open('README', 'wb') as fp:\n" +">>> ftp.retrbinary('RETR README', fp.write)\n" +"'226 Transfer complete.'\n" +">>> ftp.quit()\n" +"'221 Goodbye.'" +msgstr "" + +#: ../../library/ftplib.rst:51 +msgid "Reference" +msgstr "" + +#: ../../library/ftplib.rst:56 +msgid "FTP objects" +msgstr "" + +#: ../../library/ftplib.rst:87 +msgid "Return a new instance of the :class:`FTP` class." +msgstr "" + +#: ../../library/ftplib.rst:0 +msgid "Parameters" +msgstr "" + +#: ../../library/ftplib.rst:89 ../../library/ftplib.rst:461 +msgid "" +"The hostname to connect to. If given, :code:`connect(host)` is implicitly " +"called by the constructor." +msgstr "" + +#: ../../library/ftplib.rst:93 ../../library/ftplib.rst:465 +msgid "" +"|param_doc_user| If given, :code:`login(host, passwd, acct)` is implicitly " +"called by the constructor." +msgstr "" + +#: ../../library/ftplib.rst:98 ../../library/ftplib.rst:212 +#: ../../library/ftplib.rst:470 +msgid "|param_doc_passwd|" +msgstr "" + +#: ../../library/ftplib.rst:101 ../../library/ftplib.rst:215 +#: ../../library/ftplib.rst:473 +msgid "|param_doc_acct|" +msgstr "" + +#: ../../library/ftplib.rst:104 +msgid "" +"A timeout in seconds for blocking operations like :meth:`connect` (default: " +"the global default timeout setting)." +msgstr "" + +#: ../../library/ftplib.rst:109 ../../library/ftplib.rst:183 +#: ../../library/ftplib.rst:488 +msgid "|param_doc_source_address|" +msgstr "" + +#: ../../library/ftplib.rst:113 ../../library/ftplib.rst:492 +msgid "|param_doc_encoding|" +msgstr "" + +#: ../../library/ftplib.rst:116 +msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" +msgstr "" + +#: ../../library/ftplib.rst:130 +msgid "Support for the :keyword:`with` statement was added." +msgstr "" + +#: ../../library/ftplib.rst:133 ../../library/ftplib.rst:189 +msgid "*source_address* parameter was added." +msgstr "" + +#: ../../library/ftplib.rst:136 ../../library/ftplib.rst:505 +msgid "" +"If the *timeout* parameter is set to be zero, it will raise " +"a :class:`ValueError` to prevent the creation of a non-blocking socket. The " +"*encoding* parameter was added, and the default was changed from Latin-1 to " +"UTF-8 to follow :rfc:`2640`." +msgstr "" + +#: ../../library/ftplib.rst:142 +msgid "" +"Several :class:`!FTP` methods are available in two flavors: one for handling " +"text files and another for binary files. The methods are named for the " +"command which is used followed by ``lines`` for the text version or " +"``binary`` for the binary version." +msgstr "" + +#: ../../library/ftplib.rst:147 +msgid ":class:`FTP` instances have the following methods:" +msgstr "" + +#: ../../library/ftplib.rst:151 +msgid "" +"Set the instance's debugging level as an :class:`int`. This controls the " +"amount of debugging output printed. The debug levels are:" +msgstr "" + +#: ../../library/ftplib.rst:155 +msgid "``0`` (default): No debug output." +msgstr "" + +#: ../../library/ftplib.rst:156 +msgid "" +"``1``: Produce a moderate amount of debug output, generally a single line " +"per request." +msgstr "" + +#: ../../library/ftplib.rst:158 +msgid "" +"``2`` or higher: Produce the maximum amount of debugging output, logging " +"each line sent and received on the control connection." +msgstr "" + +#: ../../library/ftplib.rst:163 +msgid "" +"Connect to the given host and port. This function should be called only once " +"for each instance; it should not be called if a *host* argument was given " +"when the :class:`FTP` instance was created. All other :class:`!FTP` methods " +"can only be called after a connection has successfully been made." +msgstr "" + +#: ../../library/ftplib.rst:170 +msgid "The host to connect to." +msgstr "" + +#: ../../library/ftplib.rst:173 +msgid "" +"The TCP port to connect to (default: ``21``, as specified by the FTP " +"protocol specification). It is rarely needed to specify a different port " +"number." +msgstr "" + +#: ../../library/ftplib.rst:178 +msgid "" +"A timeout in seconds for the connection attempt (default: the global default " +"timeout setting)." +msgstr "" + +#: ../../library/ftplib.rst:187 +msgid "" +"Raises an :ref:`auditing event ` ``ftplib.connect`` with arguments " +"``self``, ``host``, ``port``." +msgstr "" + +#: ../../library/ftplib.rst:195 +msgid "" +"Return the welcome message sent by the server in reply to the initial " +"connection. (This message sometimes contains disclaimers or help " +"information that may be relevant to the user.)" +msgstr "" + +#: ../../library/ftplib.rst:202 +msgid "" +"Log on to the connected FTP server. This function should be called only once " +"for each instance, after a connection has been established; it should not be " +"called if the *host* and *user* arguments were given when the :class:`FTP` " +"instance was created. Most FTP commands are only allowed after the client " +"has logged in." +msgstr "" + +#: ../../library/ftplib.rst:209 +msgid "|param_doc_user|" +msgstr "" + +#: ../../library/ftplib.rst:221 +msgid "" +"Abort a file transfer that is in progress. Using this does not always work, " +"but it's worth a try." +msgstr "" + +#: ../../library/ftplib.rst:227 +msgid "" +"Send a simple command string to the server and return the response string." +msgstr "" + +#: ../../library/ftplib.rst:229 ../../library/ftplib.rst:238 +msgid "" +"Raises an :ref:`auditing event ` ``ftplib.sendcmd`` with arguments " +"``self``, ``cmd``." +msgstr "" + +#: ../../library/ftplib.rst:234 +msgid "" +"Send a simple command string to the server and handle the response. Return " +"the response string if the response code corresponds to success (codes in " +"the range 200--299). Raise :exc:`error_reply` otherwise." +msgstr "" + +#: ../../library/ftplib.rst:243 +msgid "Retrieve a file in binary transfer mode." +msgstr "" + +#: ../../library/ftplib.rst:245 +msgid "An appropriate ``RETR`` command: :samp:`\"RETR {filename}\"`." +msgstr "" + +#: ../../library/ftplib.rst:248 +msgid "" +"A single parameter callable that is called for each block of data received, " +"with its single argument being the data as :class:`bytes`." +msgstr "" + +#: ../../library/ftplib.rst:254 +msgid "" +"The maximum chunk size to read on the low-level :class:`~socket.socket` " +"object created to do the actual transfer. This also corresponds to the " +"largest size of data that will be passed to *callback*. Defaults to ``8192``." +msgstr "" + +#: ../../library/ftplib.rst:261 ../../library/ftplib.rst:308 +msgid "" +"A ``REST`` command to be sent to the server. See the documentation for the " +"*rest* parameter of the :meth:`transfercmd` method." +msgstr "" + +#: ../../library/ftplib.rst:268 +msgid "" +"Retrieve a file or directory listing in the encoding specified by the " +"*encoding* parameter at initialization. *cmd* should be an appropriate " +"``RETR`` command (see :meth:`retrbinary`) or a command such as ``LIST`` or " +"``NLST`` (usually just the string ``'LIST'``). ``LIST`` retrieves a list of " +"files and information about those files. ``NLST`` retrieves a list of file " +"names. The *callback* function is called for each line with a string " +"argument containing the line with the trailing CRLF stripped. The default " +"*callback* prints the line to :data:`sys.stdout`." +msgstr "" + +#: ../../library/ftplib.rst:281 +msgid "" +"Enable \"passive\" mode if *val* is true, otherwise disable passive mode. " +"Passive mode is on by default." +msgstr "" + +#: ../../library/ftplib.rst:287 +msgid "Store a file in binary transfer mode." +msgstr "" + +#: ../../library/ftplib.rst:289 +msgid "An appropriate ``STOR`` command: :samp:`\"STOR {filename}\"`." +msgstr "" + +#: ../../library/ftplib.rst:292 +msgid "" +"A file object (opened in binary mode) which is read until EOF, using " +"its :meth:`~io.RawIOBase.read` method in blocks of size *blocksize* to " +"provide the data to be stored." +msgstr "" + +#: ../../library/ftplib.rst:298 +msgid "The read block size. Defaults to ``8192``." +msgstr "" + +#: ../../library/ftplib.rst:302 +msgid "" +"A single parameter callable that is called for each block of data sent, with " +"its single argument being the data as :class:`bytes`." +msgstr "" + +#: ../../library/ftplib.rst:312 +msgid "The *rest* parameter was added." +msgstr "" + +#: ../../library/ftplib.rst:318 +msgid "" +"Store a file in line mode. *cmd* should be an appropriate ``STOR`` command " +"(see :meth:`storbinary`). Lines are read until EOF from the :term:`file " +"object` *fp* (opened in binary mode) using its :meth:`~io.IOBase.readline` " +"method to provide the data to be stored. *callback* is an optional single " +"parameter callable that is called on each line after it is sent." +msgstr "" + +#: ../../library/ftplib.rst:327 +msgid "" +"Initiate a transfer over the data connection. If the transfer is active, " +"send an ``EPRT`` or ``PORT`` command and the transfer command specified by " +"*cmd*, and accept the connection. If the server is passive, send an " +"``EPSV`` or ``PASV`` command, connect to it, and start the transfer " +"command. Either way, return the socket for the connection." +msgstr "" + +#: ../../library/ftplib.rst:333 +msgid "" +"If optional *rest* is given, a ``REST`` command is sent to the server, " +"passing *rest* as an argument. *rest* is usually a byte offset into the " +"requested file, telling the server to restart sending the file's bytes at " +"the requested offset, skipping over the initial bytes. Note however that " +"the :meth:`transfercmd` method converts *rest* to a string with the " +"*encoding* parameter specified at initialization, but no check is performed " +"on the string's contents. If the server does not recognize the ``REST`` " +"command, an :exc:`error_reply` exception will be raised. If this happens, " +"simply call :meth:`transfercmd` without a *rest* argument." +msgstr "" + +#: ../../library/ftplib.rst:346 +msgid "" +"Like :meth:`transfercmd`, but returns a tuple of the data connection and the " +"expected size of the data. If the expected size could not be computed, " +"``None`` will be returned as the expected size. *cmd* and *rest* means the " +"same thing as in :meth:`transfercmd`." +msgstr "" + +#: ../../library/ftplib.rst:354 +msgid "" +"List a directory in a standardized format by using ``MLSD`` command " +"(:rfc:`3659`). If *path* is omitted the current directory is assumed. " +"*facts* is a list of strings representing the type of information desired " +"(e.g. ``[\"type\", \"size\", \"perm\"]``). Return a generator object " +"yielding a tuple of two elements for every file found in path. First " +"element is the file name, the second one is a dictionary containing facts " +"about the file name. Content of this dictionary might be limited by the " +"*facts* argument but server is not guaranteed to return all requested facts." +msgstr "" + +#: ../../library/ftplib.rst:368 +msgid "" +"Return a list of file names as returned by the ``NLST`` command. The " +"optional *argument* is a directory to list (default is the current server " +"directory). Multiple arguments can be used to pass non-standard options to " +"the ``NLST`` command." +msgstr "" + +#: ../../library/ftplib.rst:373 ../../library/ftplib.rst:385 +msgid "If your server supports the command, :meth:`mlsd` offers a better API." +msgstr "" + +#: ../../library/ftplib.rst:378 +msgid "" +"Produce a directory listing as returned by the ``LIST`` command, printing it " +"to standard output. The optional *argument* is a directory to list (default " +"is the current server directory). Multiple arguments can be used to pass " +"non-standard options to the ``LIST`` command. If the last argument is a " +"function, it is used as a *callback* function as for :meth:`retrlines`; the " +"default prints to :data:`sys.stdout`. This method returns ``None``." +msgstr "" + +#: ../../library/ftplib.rst:390 +msgid "Rename file *fromname* on the server to *toname*." +msgstr "" + +#: ../../library/ftplib.rst:395 +msgid "" +"Remove the file named *filename* from the server. If successful, returns " +"the text of the response, otherwise raises :exc:`error_perm` on permission " +"errors or :exc:`error_reply` on other errors." +msgstr "" + +#: ../../library/ftplib.rst:402 +msgid "Set the current directory on the server." +msgstr "" + +#: ../../library/ftplib.rst:407 +msgid "Create a new directory on the server." +msgstr "" + +#: ../../library/ftplib.rst:412 +msgid "Return the pathname of the current directory on the server." +msgstr "" + +#: ../../library/ftplib.rst:417 +msgid "Remove the directory named *dirname* on the server." +msgstr "" + +#: ../../library/ftplib.rst:422 +msgid "" +"Request the size of the file named *filename* on the server. On success, " +"the size of the file is returned as an integer, otherwise ``None`` is " +"returned. Note that the ``SIZE`` command is not standardized, but is " +"supported by many common server implementations." +msgstr "" + +#: ../../library/ftplib.rst:430 +msgid "" +"Send a ``QUIT`` command to the server and close the connection. This is the " +"\"polite\" way to close a connection, but it may raise an exception if the " +"server responds with an error to the ``QUIT`` command. This implies a call " +"to the :meth:`close` method which renders the :class:`FTP` instance useless " +"for subsequent calls (see below)." +msgstr "" + +#: ../../library/ftplib.rst:439 +msgid "" +"Close the connection unilaterally. This should not be applied to an already " +"closed connection such as after a successful call to :meth:`~FTP.quit`. " +"After this call the :class:`FTP` instance should not be used any more (after " +"a call to :meth:`close` or :meth:`~FTP.quit` you cannot reopen the " +"connection by issuing another :meth:`login` method)." +msgstr "" + +#: ../../library/ftplib.rst:447 +msgid "FTP_TLS objects" +msgstr "" + +#: ../../library/ftplib.rst:452 +msgid "" +"An :class:`FTP` subclass which adds TLS support to FTP as described " +"in :rfc:`4217`. Connect to port 21 implicitly securing the FTP control " +"connection before authenticating." +msgstr "" + +#: ../../library/ftplib.rst:458 +msgid "" +"The user must explicitly secure the data connection by calling " +"the :meth:`prot_p` method." +msgstr "" + +#: ../../library/ftplib.rst:476 +msgid "" +"An SSL context object which allows bundling SSL configuration options, " +"certificates and private keys into a single, potentially long-lived, " +"structure. Please read :ref:`ssl-security` for best practices." +msgstr "" + +#: ../../library/ftplib.rst:483 +msgid "" +"A timeout in seconds for blocking operations like :meth:`~FTP.connect` " +"(default: the global default timeout setting)." +msgstr "" + +#: ../../library/ftplib.rst:497 +msgid "Added the *source_address* parameter." +msgstr "" + +#: ../../library/ftplib.rst:500 +msgid "" +"The class now supports hostname check " +"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " +"(see :const:`ssl.HAS_SNI`)." +msgstr "" + +#: ../../library/ftplib.rst:511 +msgid "The deprecated *keyfile* and *certfile* parameters have been removed." +msgstr "" + +#: ../../library/ftplib.rst:514 +msgid "Here's a sample session using the :class:`FTP_TLS` class::" +msgstr "" + +#: ../../library/ftplib.rst:516 +msgid "" +">>> ftps = FTP_TLS('ftp.pureftpd.org')\n" +">>> ftps.login()\n" +"'230 Anonymous user logged in'\n" +">>> ftps.prot_p()\n" +"'200 Data protection level set to \"private\"'\n" +">>> ftps.nlst()\n" +"['6jack', 'OpenBSD', 'antilink', 'blogbench', 'bsdcam', 'clockspeed', " +"'djbdns-jedi', 'docs', 'eaccelerator-jedi', 'favicon.ico', 'francotone', " +"'fugu', 'ignore', 'libpuzzle', 'metalog', 'minidentd', 'misc', 'mysql-udf-" +"global-user-variables', 'php-jenkins-hash', 'php-skein-hash', 'php-webdav', " +"'phpaudit', 'phpbench', 'pincaster', 'ping', 'posto', 'pub', 'public', " +"'public_keys', 'pure-ftpd', 'qscan', 'qtc', 'sharedance', 'skycache', " +"'sound', 'tmp', 'ucarp']" +msgstr "" + +#: ../../library/ftplib.rst:524 +msgid "" +":class:`!FTP_TLS` class inherits from :class:`FTP`, defining these " +"additional methods and attributes:" +msgstr "" + +#: ../../library/ftplib.rst:529 +msgid "The SSL version to use (defaults to :data:`ssl.PROTOCOL_SSLv23`)." +msgstr "" + +#: ../../library/ftplib.rst:533 +msgid "" +"Set up a secure control connection by using TLS or SSL, depending on what is " +"specified in the :attr:`ssl_version` attribute." +msgstr "" + +#: ../../library/ftplib.rst:536 +msgid "" +"The method now supports hostname check " +"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " +"(see :const:`ssl.HAS_SNI`)." +msgstr "" + +#: ../../library/ftplib.rst:543 +msgid "" +"Revert control channel back to plaintext. This can be useful to take " +"advantage of firewalls that know how to handle NAT with non-secure FTP " +"without opening fixed ports." +msgstr "" + +#: ../../library/ftplib.rst:551 +msgid "Set up secure data connection." +msgstr "" + +#: ../../library/ftplib.rst:555 +msgid "Set up clear text data connection." +msgstr "" + +#: ../../library/ftplib.rst:559 +msgid "Module variables" +msgstr "" + +#: ../../library/ftplib.rst:563 +msgid "Exception raised when an unexpected reply is received from the server." +msgstr "" + +#: ../../library/ftplib.rst:568 +msgid "" +"Exception raised when an error code signifying a temporary error (response " +"codes in the range 400--499) is received." +msgstr "" + +#: ../../library/ftplib.rst:574 +msgid "" +"Exception raised when an error code signifying a permanent error (response " +"codes in the range 500--599) is received." +msgstr "" + +#: ../../library/ftplib.rst:580 +msgid "" +"Exception raised when a reply is received from the server that does not fit " +"the response specifications of the File Transfer Protocol, i.e. begin with a " +"digit in the range 1--5." +msgstr "" + +#: ../../library/ftplib.rst:587 +msgid "" +"The set of all exceptions (as a tuple) that methods of :class:`FTP` " +"instances may raise as a result of problems with the FTP connection (as " +"opposed to programming errors made by the caller). This set includes the " +"four exceptions listed above as well as :exc:`OSError` and :exc:`EOFError`." +msgstr "" + +#: ../../library/ftplib.rst:595 +msgid "Module :mod:`netrc`" +msgstr "" + +#: ../../library/ftplib.rst:596 +msgid "" +"Parser for the :file:`.netrc` file format. The file :file:`.netrc` is " +"typically used by FTP clients to load user authentication information before " +"prompting the user." +msgstr "" + +#: ../../library/ftplib.rst:9 +msgid "FTP" +msgstr "" + +#: ../../library/ftplib.rst:9 +msgid "protocol" +msgstr "" + +#: ../../library/ftplib.rst:9 +msgid "ftplib (standard module)" +msgstr "" diff --git a/library/functional.po b/library/functional.po new file mode 100644 index 0000000..85237a1 --- /dev/null +++ b/library/functional.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/functional.rst:3 +msgid "Functional Programming Modules" +msgstr "" + +#: ../../library/functional.rst:5 +msgid "" +"The modules described in this chapter provide functions and classes that " +"support a functional programming style, and general operations on callables." +msgstr "" + +#: ../../library/functional.rst:8 +msgid "The following modules are documented in this chapter:" +msgstr "" diff --git a/library/functions.po b/library/functions.po new file mode 100644 index 0000000..19346d7 --- /dev/null +++ b/library/functions.po @@ -0,0 +1,3309 @@ +# 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 , 2025 +# Stan Ulbrych, 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Stan Ulbrych, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/functions.rst:5 ../../library/functions.rst:11 +msgid "Built-in Functions" +msgstr "" + +#: ../../library/functions.rst:7 +msgid "" +"The Python interpreter has a number of functions and types built into it " +"that are always available. They are listed here in alphabetical order." +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**A**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`abs`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`aiter`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`all`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`anext`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`any`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`ascii`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**B**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`bin`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`bool`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`breakpoint`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-bytearray|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-bytes|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**C**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`callable`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`chr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`classmethod`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`compile`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`complex`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**D**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`delattr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-dict|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`dir`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`divmod`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**E**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`enumerate`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`eval`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`exec`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**F**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`filter`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`float`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`format`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-frozenset|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**G**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`getattr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`globals`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**H**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`hasattr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`hash`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`help`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`hex`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**I**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`id`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`input`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`int`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`isinstance`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`issubclass`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`iter`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**L**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`len`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-list|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`locals`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**M**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`map`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`max`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-memoryview|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`min`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**N**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`next`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**O**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`object`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`oct`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`open`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`ord`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**P**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`pow`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`print`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`property`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**R**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-range|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`repr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`reversed`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`round`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**S**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-set|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`setattr`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`slice`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`sorted`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`staticmethod`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-str|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`sum`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`super`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**T**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "|func-tuple|_" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`type`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**V**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`vars`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**Z**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`zip`" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "**_**" +msgstr "" + +#: ../../library/functions.rst:0 +msgid ":func:`__import__`" +msgstr "" + +#: ../../library/functions.rst:59 +msgid "" +"Return the absolute value of a number. The argument may be an integer, a " +"floating-point number, or an object implementing :meth:`~object.__abs__`. If " +"the argument is a complex number, its magnitude is returned." +msgstr "" + +#: ../../library/functions.rst:67 +msgid "" +"Return an :term:`asynchronous iterator` for an :term:`asynchronous " +"iterable`. Equivalent to calling ``x.__aiter__()``." +msgstr "" + +#: ../../library/functions.rst:70 +msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." +msgstr "" + +#: ../../library/functions.rst:76 +msgid "" +"Return ``True`` if all elements of the *iterable* are true (or if the " +"iterable is empty). Equivalent to::" +msgstr "" + +#: ../../library/functions.rst:79 +msgid "" +"def all(iterable):\n" +" for element in iterable:\n" +" if not element:\n" +" return False\n" +" return True" +msgstr "" + +#: ../../library/functions.rst:89 +msgid "" +"When awaited, return the next item from the given :term:`asynchronous " +"iterator`, or *default* if given and the iterator is exhausted." +msgstr "" + +#: ../../library/functions.rst:92 +msgid "" +"This is the async variant of the :func:`next` builtin, and behaves similarly." +msgstr "" + +#: ../../library/functions.rst:95 +msgid "" +"This calls the :meth:`~object.__anext__` method of *async_iterator*, " +"returning an :term:`awaitable`. Awaiting this returns the next value of the " +"iterator. If *default* is given, it is returned if the iterator is " +"exhausted, otherwise :exc:`StopAsyncIteration` is raised." +msgstr "" + +#: ../../library/functions.rst:104 +msgid "" +"Return ``True`` if any element of the *iterable* is true. If the iterable " +"is empty, return ``False``. Equivalent to::" +msgstr "" + +#: ../../library/functions.rst:107 +msgid "" +"def any(iterable):\n" +" for element in iterable:\n" +" if element:\n" +" return True\n" +" return False" +msgstr "" + +#: ../../library/functions.rst:116 +msgid "" +"As :func:`repr`, return a string containing a printable representation of an " +"object, but escape the non-ASCII characters in the string returned " +"by :func:`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates " +"a string similar to that returned by :func:`repr` in Python 2." +msgstr "" + +#: ../../library/functions.rst:124 +msgid "" +"Convert an integer number to a binary string prefixed with \"0b\". The " +"result is a valid Python expression. If *x* is not a Python :class:`int` " +"object, it has to define an :meth:`~object.__index__` method that returns an " +"integer. Some examples:" +msgstr "" + +#: ../../library/functions.rst:134 +msgid "" +"If the prefix \"0b\" is desired or not, you can use either of the following " +"ways." +msgstr "" + +#: ../../library/functions.rst:141 ../../library/functions.rst:950 +#: ../../library/functions.rst:1335 +msgid "See also :func:`format` for more information." +msgstr "" + +#: ../../library/functions.rst:146 +msgid "" +"Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " +"converted using the standard :ref:`truth testing procedure `. If the " +"argument is false or omitted, this returns ``False``; otherwise, it returns " +"``True``. The :class:`bool` class is a subclass of :class:`int` " +"(see :ref:`typesnumeric`). It cannot be subclassed further. Its only " +"instances are ``False`` and ``True`` (see :ref:`typebool`)." +msgstr "" + +#: ../../library/functions.rst:156 ../../library/functions.rst:815 +msgid "The parameter is now positional-only." +msgstr "" + +#: ../../library/functions.rst:161 +msgid "" +"This function drops you into the debugger at the call site. Specifically, " +"it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " +"through. By default, ``sys.breakpointhook()`` calls :func:`pdb.set_trace` " +"expecting no arguments. In this case, it is purely a convenience function " +"so you don't have to explicitly import :mod:`pdb` or type as much code to " +"enter the debugger. However, :func:`sys.breakpointhook` can be set to some " +"other function and :func:`breakpoint` will automatically call that, allowing " +"you to drop into the debugger of choice. If :func:`sys.breakpointhook` is " +"not accessible, this function will raise :exc:`RuntimeError`." +msgstr "" + +#: ../../library/functions.rst:173 +msgid "" +"By default, the behavior of :func:`breakpoint` can be changed with " +"the :envvar:`PYTHONBREAKPOINT` environment variable. " +"See :func:`sys.breakpointhook` for usage details." +msgstr "" + +#: ../../library/functions.rst:177 +msgid "" +"Note that this is not guaranteed if :func:`sys.breakpointhook` has been " +"replaced." +msgstr "" + +#: ../../library/functions.rst:180 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " +"argument ``breakpointhook``." +msgstr "" + +#: ../../library/functions.rst:190 +msgid "" +"Return a new array of bytes. The :class:`bytearray` class is a mutable " +"sequence of integers in the range 0 <= x < 256. It has most of the usual " +"methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " +"as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." +msgstr "" + +#: ../../library/functions.rst:195 +msgid "" +"The optional *source* parameter can be used to initialize the array in a few " +"different ways:" +msgstr "" + +#: ../../library/functions.rst:198 +msgid "" +"If it is a *string*, you must also give the *encoding* (and optionally, " +"*errors*) parameters; :func:`bytearray` then converts the string to bytes " +"using :meth:`str.encode`." +msgstr "" + +#: ../../library/functions.rst:202 +msgid "" +"If it is an *integer*, the array will have that size and will be initialized " +"with null bytes." +msgstr "" + +#: ../../library/functions.rst:205 +msgid "" +"If it is an object conforming to the :ref:`buffer interface " +"`, a read-only buffer of the object will be used to " +"initialize the bytes array." +msgstr "" + +#: ../../library/functions.rst:208 +msgid "" +"If it is an *iterable*, it must be an iterable of integers in the range ``0 " +"<= x < 256``, which are used as the initial contents of the array." +msgstr "" + +#: ../../library/functions.rst:211 +msgid "Without an argument, an array of size 0 is created." +msgstr "" + +#: ../../library/functions.rst:213 +msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." +msgstr "" + +#: ../../library/functions.rst:222 +msgid "" +"Return a new \"bytes\" object which is an immutable sequence of integers in " +"the range ``0 <= x < 256``. :class:`bytes` is an immutable version " +"of :class:`bytearray` -- it has the same non-mutating methods and the same " +"indexing and slicing behavior." +msgstr "" + +#: ../../library/functions.rst:227 +msgid "" +"Accordingly, constructor arguments are interpreted as for :func:`bytearray`." +msgstr "" + +#: ../../library/functions.rst:229 +msgid "Bytes objects can also be created with literals, see :ref:`strings`." +msgstr "" + +#: ../../library/functions.rst:231 +msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." +msgstr "" + +#: ../../library/functions.rst:236 +msgid "" +"Return :const:`True` if the *object* argument appears " +"callable, :const:`False` if not. If this returns ``True``, it is still " +"possible that a call fails, but if it is ``False``, calling *object* will " +"never succeed. Note that classes are callable (calling a class returns a new " +"instance); instances are callable if their class has " +"a :meth:`~object.__call__` method." +msgstr "" + +#: ../../library/functions.rst:242 +msgid "" +"This function was first removed in Python 3.0 and then brought back in " +"Python 3.2." +msgstr "" + +#: ../../library/functions.rst:249 +msgid "" +"Return the string representing a character whose Unicode code point is the " +"integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " +"``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." +msgstr "" + +#: ../../library/functions.rst:253 +msgid "" +"The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " +"base 16). :exc:`ValueError` will be raised if *i* is outside that range." +msgstr "" + +#: ../../library/functions.rst:259 +msgid "Transform a method into a class method." +msgstr "" + +#: ../../library/functions.rst:261 +msgid "" +"A class method receives the class as an implicit first argument, just like " +"an instance method receives the instance. To declare a class method, use " +"this idiom::" +msgstr "" + +#: ../../library/functions.rst:265 +msgid "" +"class C:\n" +" @classmethod\n" +" def f(cls, arg1, arg2): ..." +msgstr "" + +#: ../../library/functions.rst:269 +msgid "" +"The ``@classmethod`` form is a function :term:`decorator` -- " +"see :ref:`function` for details." +msgstr "" + +#: ../../library/functions.rst:272 +msgid "" +"A class method can be called either on the class (such as ``C.f()``) or on " +"an instance (such as ``C().f()``). The instance is ignored except for its " +"class. If a class method is called for a derived class, the derived class " +"object is passed as the implied first argument." +msgstr "" + +#: ../../library/functions.rst:277 +msgid "" +"Class methods are different than C++ or Java static methods. If you want " +"those, see :func:`staticmethod` in this section. For more information on " +"class methods, see :ref:`types`." +msgstr "" + +#: ../../library/functions.rst:281 +msgid "" +"Class methods can now wrap other :term:`descriptors ` such " +"as :func:`property`." +msgstr "" + +#: ../../library/functions.rst:285 +msgid "" +"Class methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"and :attr:`~function.__annotations__`) and have a new ``__wrapped__`` " +"attribute." +msgstr "" + +#: ../../library/functions.rst:292 +msgid "" +"Class methods can no longer wrap other :term:`descriptors ` such " +"as :func:`property`." +msgstr "" + +#: ../../library/functions.rst:299 +msgid "" +"Compile the *source* into a code or AST object. Code objects can be " +"executed by :func:`exec` or :func:`eval`. *source* can either be a normal " +"string, a byte string, or an AST object. Refer to the :mod:`ast` module " +"documentation for information on how to work with AST objects." +msgstr "" + +#: ../../library/functions.rst:304 +msgid "" +"The *filename* argument should give the file from which the code was read; " +"pass some recognizable value if it wasn't read from a file (``''`` " +"is commonly used)." +msgstr "" + +#: ../../library/functions.rst:308 +msgid "" +"The *mode* argument specifies what kind of code must be compiled; it can be " +"``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " +"it consists of a single expression, or ``'single'`` if it consists of a " +"single interactive statement (in the latter case, expression statements that " +"evaluate to something other than ``None`` will be printed)." +msgstr "" + +#: ../../library/functions.rst:314 +msgid "" +"The optional arguments *flags* and *dont_inherit* control " +"which :ref:`compiler options ` should be activated and " +"which :ref:`future features ` should be allowed. If neither is " +"present (or both are zero) the code is compiled with the same flags that " +"affect the code that is calling :func:`compile`. If the *flags* argument is " +"given and *dont_inherit* is not (or is zero) then the compiler options and " +"the future statements specified by the *flags* argument are used in addition " +"to those that would be used anyway. If *dont_inherit* is a non-zero integer " +"then the *flags* argument is it -- the flags (future features and compiler " +"options) in the surrounding code are ignored." +msgstr "" + +#: ../../library/functions.rst:325 +msgid "" +"Compiler options and future statements are specified by bits which can be " +"bitwise ORed together to specify multiple options. The bitfield required to " +"specify a given future feature can be found as " +"the :attr:`~__future__._Feature.compiler_flag` attribute on " +"the :class:`~__future__._Feature` instance in the :mod:`__future__` " +"module. :ref:`Compiler flags ` can be found " +"in :mod:`ast` module, with ``PyCF_`` prefix." +msgstr "" + +#: ../../library/functions.rst:333 +msgid "" +"The argument *optimize* specifies the optimization level of the compiler; " +"the default value of ``-1`` selects the optimization level of the " +"interpreter as given by :option:`-O` options. Explicit levels are ``0`` (no " +"optimization; ``__debug__`` is true), ``1`` (asserts are removed, " +"``__debug__`` is false) or ``2`` (docstrings are removed too)." +msgstr "" + +#: ../../library/functions.rst:339 +msgid "" +"This function raises :exc:`SyntaxError` if the compiled source is invalid, " +"and :exc:`ValueError` if the source contains null bytes." +msgstr "" + +#: ../../library/functions.rst:342 +msgid "" +"If you want to parse Python code into its AST representation, " +"see :func:`ast.parse`." +msgstr "" + +#: ../../library/functions.rst:345 ../../library/functions.rst:347 +msgid "" +"Raises an :ref:`auditing event ` ``compile`` with arguments " +"``source`` and ``filename``. This event may also be raised by implicit " +"compilation." +msgstr "" + +#: ../../library/functions.rst:353 +msgid "" +"When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " +"mode, input must be terminated by at least one newline character. This is " +"to facilitate detection of incomplete and complete statements in " +"the :mod:`code` module." +msgstr "" + +#: ../../library/functions.rst:360 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string when compiling to an AST object due to stack depth " +"limitations in Python's AST compiler." +msgstr "" + +#: ../../library/functions.rst:364 +msgid "" +"Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " +"does not have to end in a newline anymore. Added the *optimize* parameter." +msgstr "" + +#: ../../library/functions.rst:368 +msgid "" +"Previously, :exc:`TypeError` was raised when null bytes were encountered in " +"*source*." +msgstr "" + +#: ../../library/functions.rst:372 +msgid "" +"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " +"support for top-level ``await``, ``async for``, and ``async with``." +msgstr "" + +#: ../../library/functions.rst:381 +msgid "" +"Convert a single string or number to a complex number, or create a complex " +"number from real and imaginary parts." +msgstr "" + +#: ../../library/functions.rst:384 ../../library/functions.rst:758 +#: ../../library/functions.rst:1006 +msgid "Examples:" +msgstr "" + +#: ../../library/functions.rst:386 +msgid "" +">>> complex('+1.23')\n" +"(1.23+0j)\n" +">>> complex('-4.5j')\n" +"-4.5j\n" +">>> complex('-1.23+4.5j')\n" +"(-1.23+4.5j)\n" +">>> complex('\\t( -1.23+4.5J )\\n')\n" +"(-1.23+4.5j)\n" +">>> complex('-Infinity+NaNj')\n" +"(-inf+nanj)\n" +">>> complex(1.23)\n" +"(1.23+0j)\n" +">>> complex(imag=-4.5)\n" +"-4.5j\n" +">>> complex(-1.23, 4.5)\n" +"(-1.23+4.5j)" +msgstr "" + +#: ../../library/functions.rst:405 +msgid "" +"If the argument is a string, it must contain either a real part (in the same " +"format as for :func:`float`) or an imaginary part (in the same format but " +"with a ``'j'`` or ``'J'`` suffix), or both real and imaginary parts (the " +"sign of the imaginary part is mandatory in this case). The string can " +"optionally be surrounded by whitespaces and the round parentheses ``'('`` " +"and ``')'``, which are ignored. The string must not contain whitespace " +"between ``'+'``, ``'-'``, the ``'j'`` or ``'J'`` suffix, and the decimal " +"number. For example, ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " +"raises :exc:`ValueError`. More precisely, the input must conform to " +"the :token:`~float:complexvalue` production rule in the following grammar, " +"after parentheses and leading and trailing whitespace characters are removed:" +msgstr "" + +#: ../../library/functions.rst:424 +msgid "" +"If the argument is a number, the constructor serves as a numeric conversion " +"like :class:`int` and :class:`float`. For a general Python object ``x``, " +"``complex(x)`` delegates to ``x.__complex__()``. " +"If :meth:`~object.__complex__` is not defined then it falls back " +"to :meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." +msgstr "" + +#: ../../library/functions.rst:433 +msgid "" +"If two arguments are provided or keyword arguments are used, each argument " +"may be any numeric type (including complex). If both arguments are real " +"numbers, return a complex number with the real component *real* and the " +"imaginary component *imag*. If both arguments are complex numbers, return a " +"complex number with the real component ``real.real-imag.imag`` and the " +"imaginary component ``real.imag+imag.real``. If one of arguments is a real " +"number, only its real component is used in the above expressions." +msgstr "" + +#: ../../library/functions.rst:443 +msgid "" +"See also :meth:`complex.from_number` which only accepts a single numeric " +"argument." +msgstr "" + +#: ../../library/functions.rst:445 +msgid "If all arguments are omitted, returns ``0j``." +msgstr "" + +#: ../../library/functions.rst:447 +msgid "The complex type is described in :ref:`typesnumeric`." +msgstr "" + +#: ../../library/functions.rst:449 ../../library/functions.rst:812 +#: ../../library/functions.rst:1054 +msgid "Grouping digits with underscores as in code literals is allowed." +msgstr "" + +#: ../../library/functions.rst:452 +msgid "" +"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` " +"and :meth:`~object.__float__` are not defined." +msgstr "" + +#: ../../library/functions.rst:456 +msgid "" +"Passing a complex number as the *real* or *imag* argument is now deprecated; " +"it should only be passed as a single positional argument." +msgstr "" + +#: ../../library/functions.rst:463 +msgid "" +"This is a relative of :func:`setattr`. The arguments are an object and a " +"string. The string must be the name of one of the object's attributes. The " +"function deletes the named attribute, provided the object allows it. For " +"example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " +"need not be a Python identifier (see :func:`setattr`)." +msgstr "" + +#: ../../library/functions.rst:476 +msgid "" +"Create a new dictionary. The :class:`dict` object is the dictionary class. " +"See :class:`dict` and :ref:`typesmapping` for documentation about this class." +msgstr "" + +#: ../../library/functions.rst:479 +msgid "" +"For other containers see the built-in :class:`list`, :class:`set`, " +"and :class:`tuple` classes, as well as the :mod:`collections` module." +msgstr "" + +#: ../../library/functions.rst:486 +msgid "" +"Without arguments, return the list of names in the current local scope. " +"With an argument, attempt to return a list of valid attributes for that " +"object." +msgstr "" + +#: ../../library/functions.rst:489 +msgid "" +"If the object has a method named :meth:`~object.__dir__`, this method will " +"be called and must return the list of attributes. This allows objects that " +"implement a custom :func:`~object.__getattr__` " +"or :func:`~object.__getattribute__` function to customize the " +"way :func:`dir` reports their attributes." +msgstr "" + +#: ../../library/functions.rst:496 +msgid "" +"If the object does not provide :meth:`~object.__dir__`, the function tries " +"its best to gather information from the object's :attr:`~object.__dict__` " +"attribute, if defined, and from its type object. The resulting list is not " +"necessarily complete and may be inaccurate when the object has a " +"custom :func:`~object.__getattr__`." +msgstr "" + +#: ../../library/functions.rst:502 +msgid "" +"The default :func:`dir` mechanism behaves differently with different types " +"of objects, as it attempts to produce the most relevant, rather than " +"complete, information:" +msgstr "" + +#: ../../library/functions.rst:506 +msgid "" +"If the object is a module object, the list contains the names of the " +"module's attributes." +msgstr "" + +#: ../../library/functions.rst:509 +msgid "" +"If the object is a type or class object, the list contains the names of its " +"attributes, and recursively of the attributes of its bases." +msgstr "" + +#: ../../library/functions.rst:512 +msgid "" +"Otherwise, the list contains the object's attributes' names, the names of " +"its class's attributes, and recursively of the attributes of its class's " +"base classes." +msgstr "" + +#: ../../library/functions.rst:516 +msgid "The resulting list is sorted alphabetically. For example:" +msgstr "" + +#: ../../library/functions.rst:536 +msgid "" +"Because :func:`dir` is supplied primarily as a convenience for use at an " +"interactive prompt, it tries to supply an interesting set of names more than " +"it tries to supply a rigorously or consistently defined set of names, and " +"its detailed behavior may change across releases. For example, metaclass " +"attributes are not in the result list when the argument is a class." +msgstr "" + +#: ../../library/functions.rst:546 +msgid "" +"Take two (non-complex) numbers as arguments and return a pair of numbers " +"consisting of their quotient and remainder when using integer division. " +"With mixed operand types, the rules for binary arithmetic operators apply. " +"For integers, the result is the same as ``(a // b, a % b)``. For floating-" +"point numbers the result is ``(q, a % b)``, where *q* is usually " +"``math.floor(a / b)`` but may be 1 less than that. In any case ``q * b + a " +"% b`` is very close to *a*, if ``a % b`` is non-zero it has the same sign as " +"*b*, and ``0 <= abs(a % b) < abs(b)``." +msgstr "" + +#: ../../library/functions.rst:558 +msgid "" +"Return an enumerate object. *iterable* must be a sequence, " +"an :term:`iterator`, or some other object which supports iteration. " +"The :meth:`~iterator.__next__` method of the iterator returned " +"by :func:`enumerate` returns a tuple containing a count (from *start* which " +"defaults to 0) and the values obtained from iterating over *iterable*." +msgstr "" + +#: ../../library/functions.rst:570 +msgid "Equivalent to::" +msgstr "" + +#: ../../library/functions.rst:572 +msgid "" +"def enumerate(iterable, start=0):\n" +" n = start\n" +" for elem in iterable:\n" +" yield n, elem\n" +" n += 1" +msgstr "" + +#: ../../library/functions.rst:0 +msgid "Parameters" +msgstr "" + +#: ../../library/functions.rst:582 +msgid "A Python expression." +msgstr "" + +#: ../../library/functions.rst:586 +msgid "The global namespace (default: ``None``)." +msgstr "" + +#: ../../library/functions.rst:590 +msgid "The local namespace (default: ``None``)." +msgstr "" + +#: ../../library/functions.rst:0 +msgid "Returns" +msgstr "" + +#: ../../library/functions.rst:594 +msgid "The result of the evaluated expression." +msgstr "" + +#: ../../library/functions.rst:0 +msgid "raises" +msgstr "" + +#: ../../library/functions.rst:595 +msgid "Syntax errors are reported as exceptions." +msgstr "" + +#: ../../library/functions.rst:599 ../../library/functions.rst:660 +msgid "" +"This function executes arbitrary code. Calling it with user-supplied input " +"may lead to security vulnerabilities." +msgstr "" + +#: ../../library/functions.rst:602 +msgid "" +"The *expression* argument is parsed and evaluated as a Python expression " +"(technically speaking, a condition list) using the *globals* and *locals* " +"mappings as global and local namespace. If the *globals* dictionary is " +"present and does not contain a value for the key ``__builtins__``, a " +"reference to the dictionary of the built-in module :mod:`builtins` is " +"inserted under that key before *expression* is parsed. That way you can " +"control what builtins are available to the executed code by inserting your " +"own ``__builtins__`` dictionary into *globals* before passing it " +"to :func:`eval`. If the *locals* mapping is omitted it defaults to the " +"*globals* dictionary. If both mappings are omitted, the expression is " +"executed with the *globals* and *locals* in the environment " +"where :func:`eval` is called. Note, *eval()* will only have access to " +"the :term:`nested scopes ` (non-locals) in the enclosing " +"environment if they are already referenced in the scope that is " +"calling :func:`eval` (e.g. via a :keyword:`nonlocal` statement)." +msgstr "" + +#: ../../library/functions.rst:618 +msgid "Example:" +msgstr "" + +#: ../../library/functions.rst:624 +msgid "" +"This function can also be used to execute arbitrary code objects (such as " +"those created by :func:`compile`). In this case, pass a code object instead " +"of a string. If the code object has been compiled with ``'exec'`` as the " +"*mode* argument, :func:`eval`\\'s return value will be ``None``." +msgstr "" + +#: ../../library/functions.rst:629 +msgid "" +"Hints: dynamic execution of statements is supported by the :func:`exec` " +"function. The :func:`globals` and :func:`locals` functions return the " +"current global and local dictionary, respectively, which may be useful to " +"pass around for use by :func:`eval` or :func:`exec`." +msgstr "" + +#: ../../library/functions.rst:634 +msgid "" +"If the given source is a string, then leading and trailing spaces and tabs " +"are stripped." +msgstr "" + +#: ../../library/functions.rst:637 +msgid "" +"See :func:`ast.literal_eval` for a function that can safely evaluate strings " +"with expressions containing only literals." +msgstr "" + +#: ../../library/functions.rst:640 ../../library/functions.rst:642 +#: ../../library/functions.rst:702 ../../library/functions.rst:704 +msgid "" +"Raises an :ref:`auditing event ` ``exec`` with the code object as " +"the argument. Code compilation events may also be raised." +msgstr "" + +#: ../../library/functions.rst:647 ../../library/functions.rst:724 +msgid "The *globals* and *locals* arguments can now be passed as keywords." +msgstr "" + +#: ../../library/functions.rst:651 ../../library/functions.rst:728 +msgid "" +"The semantics of the default *locals* namespace have been adjusted as " +"described for the :func:`locals` builtin." +msgstr "" + +#: ../../library/functions.rst:663 +msgid "" +"This function supports dynamic execution of Python code. *source* must be " +"either a string or a code object. If it is a string, the string is parsed " +"as a suite of Python statements which is then executed (unless a syntax " +"error occurs). [#]_ If it is a code object, it is simply executed. In all " +"cases, the code that's executed is expected to be valid as file input (see " +"the section :ref:`file-input` in the Reference Manual). Be aware that " +"the :keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements " +"may not be used outside of function definitions even within the context of " +"code passed to the :func:`exec` function. The return value is ``None``." +msgstr "" + +#: ../../library/functions.rst:674 +msgid "" +"In all cases, if the optional parts are omitted, the code is executed in the " +"current scope. If only *globals* is provided, it must be a dictionary (and " +"not a subclass of dictionary), which will be used for both the global and " +"the local variables. If *globals* and *locals* are given, they are used for " +"the global and local variables, respectively. If provided, *locals* can be " +"any mapping object. Remember that at the module level, globals and locals " +"are the same dictionary." +msgstr "" + +#: ../../library/functions.rst:684 +msgid "" +"When ``exec`` gets two separate objects as *globals* and *locals*, the code " +"will be executed as if it were embedded in a class definition. This means " +"functions and classes defined in the executed code will not be able to " +"access variables assigned at the top level (as the \"top level\" variables " +"are treated as class variables in a class definition)." +msgstr "" + +#: ../../library/functions.rst:690 +msgid "" +"If the *globals* dictionary does not contain a value for the key " +"``__builtins__``, a reference to the dictionary of the built-in " +"module :mod:`builtins` is inserted under that key. That way you can control " +"what builtins are available to the executed code by inserting your own " +"``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." +msgstr "" + +#: ../../library/functions.rst:696 +msgid "" +"The *closure* argument specifies a closure--a tuple of cellvars. It's only " +"valid when the *object* is a code object containing :term:`free (closure) " +"variables `. The length of the tuple must exactly match " +"the length of the code object's :attr:`~codeobject.co_freevars` attribute." +msgstr "" + +#: ../../library/functions.rst:709 +msgid "" +"The built-in functions :func:`globals` and :func:`locals` return the current " +"global and local namespace, respectively, which may be useful to pass around " +"for use as the second and third argument to :func:`exec`." +msgstr "" + +#: ../../library/functions.rst:715 +msgid "" +"The default *locals* act as described for function :func:`locals` below. " +"Pass an explicit *locals* dictionary if you need to see effects of the code " +"on *locals* after function :func:`exec` returns." +msgstr "" + +#: ../../library/functions.rst:719 +msgid "Added the *closure* parameter." +msgstr "" + +#: ../../library/functions.rst:734 +msgid "" +"Construct an iterator from those elements of *iterable* for which *function* " +"is true. *iterable* may be either a sequence, a container which supports " +"iteration, or an iterator. If *function* is ``None``, the identity function " +"is assumed, that is, all elements of *iterable* that are false are removed." +msgstr "" + +#: ../../library/functions.rst:740 +msgid "" +"Note that ``filter(function, iterable)`` is equivalent to the generator " +"expression ``(item for item in iterable if function(item))`` if function is " +"not ``None`` and ``(item for item in iterable if item)`` if function is " +"``None``." +msgstr "" + +#: ../../library/functions.rst:745 +msgid "" +"See :func:`itertools.filterfalse` for the complementary function that " +"returns elements of *iterable* for which *function* is false." +msgstr "" + +#: ../../library/functions.rst:756 +msgid "Return a floating-point number constructed from a number or a string." +msgstr "" + +#: ../../library/functions.rst:760 +msgid "" +">>> float('+1.23')\n" +"1.23\n" +">>> float(' -12345\\n')\n" +"-12345.0\n" +">>> float('1e-003')\n" +"0.001\n" +">>> float('+1E6')\n" +"1000000.0\n" +">>> float('-Infinity')\n" +"-inf" +msgstr "" + +#: ../../library/functions.rst:773 +msgid "" +"If the argument is a string, it should contain a decimal number, optionally " +"preceded by a sign, and optionally embedded in whitespace. The optional " +"sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value " +"produced. The argument may also be a string representing a NaN (not-a-" +"number), or positive or negative infinity. More precisely, the input must " +"conform to the :token:`~float:floatvalue` production rule in the following " +"grammar, after leading and trailing whitespace characters are removed:" +msgstr "" + +#: ../../library/functions.rst:794 +msgid "" +"Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " +"and \"iNfINity\" are all acceptable spellings for positive infinity." +msgstr "" + +#: ../../library/functions.rst:797 +msgid "" +"Otherwise, if the argument is an integer or a floating-point number, a " +"floating-point number with the same value (within Python's floating-point " +"precision) is returned. If the argument is outside the range of a Python " +"float, an :exc:`OverflowError` will be raised." +msgstr "" + +#: ../../library/functions.rst:802 +msgid "" +"For a general Python object ``x``, ``float(x)`` delegates to " +"``x.__float__()``. If :meth:`~object.__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." +msgstr "" + +#: ../../library/functions.rst:806 +msgid "" +"See also :meth:`float.from_number` which only accepts a numeric argument." +msgstr "" + +#: ../../library/functions.rst:808 +msgid "If no argument is given, ``0.0`` is returned." +msgstr "" + +#: ../../library/functions.rst:810 +msgid "The float type is described in :ref:`typesnumeric`." +msgstr "" + +#: ../../library/functions.rst:818 +msgid "" +"Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " +"defined." +msgstr "" + +#: ../../library/functions.rst:828 +msgid "" +"Convert a *value* to a \"formatted\" representation, as controlled by " +"*format_spec*. The interpretation of *format_spec* will depend on the type " +"of the *value* argument; however, there is a standard formatting syntax that " +"is used by most built-in types: :ref:`formatspec`." +msgstr "" + +#: ../../library/functions.rst:833 +msgid "" +"The default *format_spec* is an empty string which usually gives the same " +"effect as calling :func:`str(value) `." +msgstr "" + +#: ../../library/functions.rst:836 +msgid "" +"A call to ``format(value, format_spec)`` is translated to " +"``type(value).__format__(value, format_spec)`` which bypasses the instance " +"dictionary when searching for the value's :meth:`~object.__format__` method. " +"A :exc:`TypeError` exception is raised if the method search " +"reaches :mod:`object` and the *format_spec* is non-empty, or if either the " +"*format_spec* or the return value are not strings." +msgstr "" + +#: ../../library/functions.rst:843 +msgid "" +"``object().__format__(format_spec)`` raises :exc:`TypeError` if " +"*format_spec* is not an empty string." +msgstr "" + +#: ../../library/functions.rst:852 +msgid "" +"Return a new :class:`frozenset` object, optionally with elements taken from " +"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` " +"and :ref:`types-set` for documentation about this class." +msgstr "" + +#: ../../library/functions.rst:856 +msgid "" +"For other containers see the built-" +"in :class:`set`, :class:`list`, :class:`tuple`, and :class:`dict` classes, " +"as well as the :mod:`collections` module." +msgstr "" + +#: ../../library/functions.rst:864 +msgid "" +"Return the value of the named attribute of *object*. *name* must be a " +"string. If the string is the name of one of the object's attributes, the " +"result is the value of that attribute. For example, ``getattr(x, " +"'foobar')`` is equivalent to ``x.foobar``. If the named attribute does not " +"exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " +"raised. *name* need not be a Python identifier (see :func:`setattr`)." +msgstr "" + +#: ../../library/functions.rst:873 +msgid "" +"Since :ref:`private name mangling ` happens at " +"compilation time, one must manually mangle a private attribute's (attributes " +"with two leading underscores) name in order to retrieve it " +"with :func:`getattr`." +msgstr "" + +#: ../../library/functions.rst:881 +msgid "" +"Return the dictionary implementing the current module namespace. For code " +"within functions, this is set when the function is defined and remains the " +"same regardless of where the function is called." +msgstr "" + +#: ../../library/functions.rst:888 +msgid "" +"The arguments are an object and a string. The result is ``True`` if the " +"string is the name of one of the object's attributes, ``False`` if not. " +"(This is implemented by calling ``getattr(object, name)`` and seeing whether " +"it raises an :exc:`AttributeError` or not.)" +msgstr "" + +#: ../../library/functions.rst:896 +msgid "" +"Return the hash value of the object (if it has one). Hash values are " +"integers. They are used to quickly compare dictionary keys during a " +"dictionary lookup. Numeric values that compare equal have the same hash " +"value (even if they are of different types, as is the case for 1 and 1.0)." +msgstr "" + +#: ../../library/functions.rst:903 +msgid "" +"For objects with custom :meth:`~object.__hash__` methods, note " +"that :func:`hash` truncates the return value based on the bit width of the " +"host machine." +msgstr "" + +#: ../../library/functions.rst:910 +msgid "" +"Invoke the built-in help system. (This function is intended for interactive " +"use.) If no argument is given, the interactive help system starts on the " +"interpreter console. If the argument is a string, then the string is looked " +"up as the name of a module, function, class, method, keyword, or " +"documentation topic, and a help page is printed on the console. If the " +"argument is any other kind of object, a help page on the object is generated." +msgstr "" + +#: ../../library/functions.rst:917 +msgid "" +"Note that if a slash(/) appears in the parameter list of a function when " +"invoking :func:`help`, it means that the parameters prior to the slash are " +"positional-only. For more info, see :ref:`the FAQ entry on positional-only " +"parameters `." +msgstr "" + +#: ../../library/functions.rst:922 +msgid "" +"This function is added to the built-in namespace by the :mod:`site` module." +msgstr "" + +#: ../../library/functions.rst:924 +msgid "" +"Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " +"for callables are now more comprehensive and consistent." +msgstr "" + +#: ../../library/functions.rst:931 +msgid "" +"Convert an integer number to a lowercase hexadecimal string prefixed with " +"\"0x\". If *x* is not a Python :class:`int` object, it has to define " +"an :meth:`~object.__index__` method that returns an integer. Some examples:" +msgstr "" + +#: ../../library/functions.rst:940 +msgid "" +"If you want to convert an integer number to an uppercase or lower " +"hexadecimal string with prefix or not, you can use either of the following " +"ways:" +msgstr "" + +#: ../../library/functions.rst:952 +msgid "" +"See also :func:`int` for converting a hexadecimal string to an integer using " +"a base of 16." +msgstr "" + +#: ../../library/functions.rst:957 +msgid "" +"To obtain a hexadecimal string representation for a float, use " +"the :meth:`float.hex` method." +msgstr "" + +#: ../../library/functions.rst:963 +msgid "" +"Return the \"identity\" of an object. This is an integer which is " +"guaranteed to be unique and constant for this object during its lifetime. " +"Two objects with non-overlapping lifetimes may have the same :func:`id` " +"value." +msgstr "" + +#: ../../library/functions.rst:968 +msgid "This is the address of the object in memory." +msgstr "" + +#: ../../library/functions.rst:970 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.id`` with argument " +"``id``." +msgstr "" + +#: ../../library/functions.rst:976 +msgid "" +"If the *prompt* argument is present, it is written to standard output " +"without a trailing newline. The function then reads a line from input, " +"converts it to a string (stripping a trailing newline), and returns that. " +"When EOF is read, :exc:`EOFError` is raised. Example::" +msgstr "" + +#: ../../library/functions.rst:981 +msgid "" +">>> s = input('--> ')\n" +"--> Monty Python's Flying Circus\n" +">>> s\n" +"\"Monty Python's Flying Circus\"" +msgstr "" + +#: ../../library/functions.rst:986 +msgid "" +"If the :mod:`readline` module was loaded, then :func:`input` will use it to " +"provide elaborate line editing and history features." +msgstr "" + +#: ../../library/functions.rst:989 ../../library/functions.rst:991 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.input`` with argument " +"``prompt`` before reading input" +msgstr "" + +#: ../../library/functions.rst:994 ../../library/functions.rst:996 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.input/result`` with " +"the result after successfully reading input." +msgstr "" + +#: ../../library/functions.rst:1003 +msgid "" +"Return an integer object constructed from a number or a string, or return " +"``0`` if no arguments are given." +msgstr "" + +#: ../../library/functions.rst:1008 +msgid "" +">>> int(123.45)\n" +"123\n" +">>> int('123')\n" +"123\n" +">>> int(' -12_345\\n')\n" +"-12345\n" +">>> int('FACE', 16)\n" +"64206\n" +">>> int('0xface', 0)\n" +"64206\n" +">>> int('01110011', base=2)\n" +"115" +msgstr "" + +#: ../../library/functions.rst:1023 +msgid "" +"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns " +"``x.__int__()``. If the argument defines :meth:`~object.__index__`, it " +"returns ``x.__index__()``. For floating-point numbers, this truncates " +"towards zero." +msgstr "" + +#: ../../library/functions.rst:1028 +msgid "" +"If the argument is not a number or if *base* is given, then it must be a " +"string, :class:`bytes`, or :class:`bytearray` instance representing an " +"integer in radix *base*. Optionally, the string can be preceded by ``+`` or " +"``-`` (with no space in between), have leading zeros, be surrounded by " +"whitespace, and have single underscores interspersed between digits." +msgstr "" + +#: ../../library/functions.rst:1034 +msgid "" +"A base-n integer string contains digits, each representing a value from 0 to " +"n-1. The values 0--9 can be represented by any Unicode decimal digit. The " +"values 10--35 can be represented by ``a`` to ``z`` (or ``A`` to ``Z``). The " +"default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16 " +"strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or " +"``0x``/``0X``, as with integer literals in code. For base 0, the string is " +"interpreted in a similar way to an :ref:`integer literal in code " +"`, in that the actual base is 2, 8, 10, or 16 as determined by the " +"prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, " +"while ``int('010')`` and ``int('010', 8)`` are." +msgstr "" + +#: ../../library/functions.rst:1045 +msgid "The integer type is described in :ref:`typesnumeric`." +msgstr "" + +#: ../../library/functions.rst:1047 +msgid "" +"If *base* is not an instance of :class:`int` and the *base* object has " +"a :meth:`base.__index__ ` method, that method is called to " +"obtain an integer for the base. Previous versions used :meth:`base.__int__ " +"` instead of :meth:`base.__index__ `." +msgstr "" + +#: ../../library/functions.rst:1057 +msgid "The first parameter is now positional-only." +msgstr "" + +#: ../../library/functions.rst:1060 +msgid "" +"Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " +"defined." +msgstr "" + +#: ../../library/functions.rst:1063 +msgid "" +":class:`int` string inputs and string representations can be limited to help " +"avoid denial of service attacks. A :exc:`ValueError` is raised when the " +"limit is exceeded while converting a string to an :class:`int` or when " +"converting an :class:`int` into a string would exceed the limit. See " +"the :ref:`integer string conversion length limitation ` " +"documentation." +msgstr "" + +#: ../../library/functions.rst:1071 +msgid "" +":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." +msgstr "" + +#: ../../library/functions.rst:1076 +msgid "" +"Return ``True`` if the *object* argument is an instance of the *classinfo* " +"argument, or of a (direct, indirect, or :term:`virtual `) subclass thereof. If *object* is not an object of the given type, " +"the function always returns ``False``. If *classinfo* is a tuple of type " +"objects (or recursively, other such tuples) or a :ref:`types-union` of " +"multiple types, return ``True`` if *object* is an instance of any of the " +"types. If *classinfo* is not a type or tuple of types and such tuples, " +"a :exc:`TypeError` exception is raised. :exc:`TypeError` may not be raised " +"for an invalid type if an earlier check succeeds." +msgstr "" + +#: ../../library/functions.rst:1087 ../../library/functions.rst:1101 +msgid "*classinfo* can be a :ref:`types-union`." +msgstr "" + +#: ../../library/functions.rst:1093 +msgid "" +"Return ``True`` if *class* is a subclass (direct, indirect, " +"or :term:`virtual `) of *classinfo*. A class is " +"considered a subclass of itself. *classinfo* may be a tuple of class objects " +"(or recursively, other such tuples) or a :ref:`types-union`, in which case " +"return ``True`` if *class* is a subclass of any entry in *classinfo*. In " +"any other case, a :exc:`TypeError` exception is raised." +msgstr "" + +#: ../../library/functions.rst:1108 +msgid "" +"Return an :term:`iterator` object. The first argument is interpreted very " +"differently depending on the presence of the second argument. Without a " +"second argument, *object* must be a collection object which supports " +"the :term:`iterable` protocol (the :meth:`~object.__iter__` method), or it " +"must support the sequence protocol (the :meth:`~object.__getitem__` method " +"with integer arguments starting at ``0``). If it does not support either of " +"those protocols, :exc:`TypeError` is raised. If the second argument, " +"*sentinel*, is given, then *object* must be a callable object. The iterator " +"created in this case will call *object* with no arguments for each call to " +"its :meth:`~iterator.__next__` method; if the value returned is equal to " +"*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be " +"returned." +msgstr "" + +#: ../../library/functions.rst:1122 +msgid "See also :ref:`typeiter`." +msgstr "" + +#: ../../library/functions.rst:1124 +msgid "" +"One useful application of the second form of :func:`iter` is to build a " +"block-reader. For example, reading fixed-width blocks from a binary database " +"file until the end of file is reached::" +msgstr "" + +#: ../../library/functions.rst:1128 +msgid "" +"from functools import partial\n" +"with open('mydata.db', 'rb') as f:\n" +" for block in iter(partial(f.read, 64), b''):\n" +" process_block(block)" +msgstr "" + +#: ../../library/functions.rst:1136 +msgid "" +"Return the length (the number of items) of an object. The argument may be a " +"sequence (such as a string, bytes, tuple, list, or range) or a collection " +"(such as a dictionary, set, or frozen set)." +msgstr "" + +#: ../../library/functions.rst:1142 +msgid "" +"``len`` raises :exc:`OverflowError` on lengths larger " +"than :data:`sys.maxsize`, such as :class:`range(2 ** 100) `." +msgstr "" + +#: ../../library/functions.rst:1151 +msgid "" +"Rather than being a function, :class:`list` is actually a mutable sequence " +"type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." +msgstr "" + +#: ../../library/functions.rst:1157 +msgid "" +"Return a mapping object representing the current local symbol table, with " +"variable names as the keys, and their currently bound references as the " +"values." +msgstr "" + +#: ../../library/functions.rst:1161 +msgid "" +"At module scope, as well as when using :func:`exec` or :func:`eval` with a " +"single namespace, this function returns the same namespace " +"as :func:`globals`." +msgstr "" + +#: ../../library/functions.rst:1165 +msgid "" +"At class scope, it returns the namespace that will be passed to the " +"metaclass constructor." +msgstr "" + +#: ../../library/functions.rst:1168 +msgid "" +"When using ``exec()`` or ``eval()`` with separate local and global " +"arguments, it returns the local namespace passed in to the function call." +msgstr "" + +#: ../../library/functions.rst:1171 +msgid "" +"In all of the above cases, each call to ``locals()`` in a given frame of " +"execution will return the *same* mapping object. Changes made through the " +"mapping object returned from ``locals()`` will be visible as assigned, " +"reassigned, or deleted local variables, and assigning, reassigning, or " +"deleting local variables will immediately affect the contents of the " +"returned mapping object." +msgstr "" + +#: ../../library/functions.rst:1178 +msgid "" +"In an :term:`optimized scope` (including functions, generators, and " +"coroutines), each call to ``locals()`` instead returns a fresh dictionary " +"containing the current bindings of the function's local variables and any " +"nonlocal cell references. In this case, name binding changes made via the " +"returned dict are *not* written back to the corresponding local variables or " +"nonlocal cell references, and assigning, reassigning, or deleting local " +"variables and nonlocal cell references does *not* affect the contents of " +"previously returned dictionaries." +msgstr "" + +#: ../../library/functions.rst:1187 +msgid "" +"Calling ``locals()`` as part of a comprehension in a function, generator, or " +"coroutine is equivalent to calling it in the containing scope, except that " +"the comprehension's initialised iteration variables will be included. In " +"other scopes, it behaves as if the comprehension were running as a nested " +"function." +msgstr "" + +#: ../../library/functions.rst:1193 +msgid "" +"Calling ``locals()`` as part of a generator expression is equivalent to " +"calling it in a nested generator function." +msgstr "" + +#: ../../library/functions.rst:1196 +msgid "" +"The behaviour of ``locals()`` in a comprehension has been updated as " +"described in :pep:`709`." +msgstr "" + +#: ../../library/functions.rst:1200 +msgid "" +"As part of :pep:`667`, the semantics of mutating the mapping objects " +"returned from this function are now defined. The behavior " +"in :term:`optimized scopes ` is now as described above. " +"Aside from being defined, the behaviour in other scopes remains unchanged " +"from previous versions." +msgstr "" + +#: ../../library/functions.rst:1210 +msgid "" +"Return an iterator that applies *function* to every item of *iterable*, " +"yielding the results. If additional *iterables* arguments are passed, " +"*function* must take that many arguments and is applied to the items from " +"all iterables in parallel. With multiple iterables, the iterator stops when " +"the shortest iterable is exhausted. If *strict* is ``True`` and one of the " +"iterables is exhausted before the others, a :exc:`ValueError` is raised. For " +"cases where the function inputs are already arranged into argument tuples, " +"see :func:`itertools.starmap`." +msgstr "" + +#: ../../library/functions.rst:1219 +msgid "Added the *strict* parameter." +msgstr "" + +#: ../../library/functions.rst:1227 +msgid "" +"Return the largest item in an iterable or the largest of two or more " +"arguments." +msgstr "" + +#: ../../library/functions.rst:1230 +msgid "" +"If one positional argument is provided, it should be an :term:`iterable`. " +"The largest item in the iterable is returned. If two or more positional " +"arguments are provided, the largest of the positional arguments is returned." +msgstr "" + +#: ../../library/functions.rst:1235 ../../library/functions.rst:1273 +msgid "" +"There are two optional keyword-only arguments. The *key* argument specifies " +"a one-argument ordering function like that used for :meth:`list.sort`. The " +"*default* argument specifies an object to return if the provided iterable is " +"empty. If the iterable is empty and *default* is not provided, " +"a :exc:`ValueError` is raised." +msgstr "" + +#: ../../library/functions.rst:1241 +msgid "" +"If multiple items are maximal, the function returns the first one " +"encountered. This is consistent with other sort-stability preserving tools " +"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " +"``heapq.nlargest(1, iterable, key=keyfunc)``." +msgstr "" + +#: ../../library/functions.rst:1246 ../../library/functions.rst:1284 +msgid "Added the *default* keyword-only parameter." +msgstr "" + +#: ../../library/functions.rst:1249 ../../library/functions.rst:1287 +msgid "The *key* can be ``None``." +msgstr "" + +#: ../../library/functions.rst:1257 +msgid "" +"Return a \"memory view\" object created from the given argument. " +"See :ref:`typememoryview` for more information." +msgstr "" + +#: ../../library/functions.rst:1265 +msgid "" +"Return the smallest item in an iterable or the smallest of two or more " +"arguments." +msgstr "" + +#: ../../library/functions.rst:1268 +msgid "" +"If one positional argument is provided, it should be an :term:`iterable`. " +"The smallest item in the iterable is returned. If two or more positional " +"arguments are provided, the smallest of the positional arguments is returned." +msgstr "" + +#: ../../library/functions.rst:1279 +msgid "" +"If multiple items are minimal, the function returns the first one " +"encountered. This is consistent with other sort-stability preserving tools " +"such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " +"iterable, key=keyfunc)``." +msgstr "" + +#: ../../library/functions.rst:1294 +msgid "" +"Retrieve the next item from the :term:`iterator` by calling " +"its :meth:`~iterator.__next__` method. If *default* is given, it is " +"returned if the iterator is exhausted, otherwise :exc:`StopIteration` is " +"raised." +msgstr "" + +#: ../../library/functions.rst:1301 +msgid "" +"This is the ultimate base class of all other classes. It has methods that " +"are common to all instances of Python classes. When the constructor is " +"called, it returns a new featureless object. The constructor does not accept " +"any arguments." +msgstr "" + +#: ../../library/functions.rst:1308 +msgid "" +":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " +"so you can't assign arbitrary attributes to an instance of :class:`object`." +msgstr "" + +#: ../../library/functions.rst:1315 +msgid "" +"Convert an integer number to an octal string prefixed with \"0o\". The " +"result is a valid Python expression. If *x* is not a Python :class:`int` " +"object, it has to define an :meth:`~object.__index__` method that returns an " +"integer. For example:" +msgstr "" + +#: ../../library/functions.rst:1325 +msgid "" +"If you want to convert an integer number to an octal string either with the " +"prefix \"0o\" or not, you can use either of the following ways." +msgstr "" + +#: ../../library/functions.rst:1342 +msgid "" +"Open *file* and return a corresponding :term:`file object`. If the file " +"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " +"examples of how to use this function." +msgstr "" + +#: ../../library/functions.rst:1346 +msgid "" +"*file* is a :term:`path-like object` giving the pathname (absolute or " +"relative to the current working directory) of the file to be opened or an " +"integer file descriptor of the file to be wrapped. (If a file descriptor is " +"given, it is closed when the returned I/O object is closed unless *closefd* " +"is set to ``False``.)" +msgstr "" + +#: ../../library/functions.rst:1352 +msgid "" +"*mode* is an optional string that specifies the mode in which the file is " +"opened. It defaults to ``'r'`` which means open for reading in text mode. " +"Other common values are ``'w'`` for writing (truncating the file if it " +"already exists), ``'x'`` for exclusive creation, and ``'a'`` for appending " +"(which on *some* Unix systems, means that *all* writes append to the end of " +"the file regardless of the current seek position). In text mode, if " +"*encoding* is not specified the encoding used is platform-" +"dependent: :func:`locale.getencoding` is called to get the current locale " +"encoding. (For reading and writing raw bytes use binary mode and leave " +"*encoding* unspecified.) The available modes are:" +msgstr "" + +#: ../../library/functions.rst:1369 +msgid "Character" +msgstr "" + +#: ../../library/functions.rst:1369 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/functions.rst:1371 +msgid "``'r'``" +msgstr "``'r'``" + +#: ../../library/functions.rst:1371 +msgid "open for reading (default)" +msgstr "" + +#: ../../library/functions.rst:1372 +msgid "``'w'``" +msgstr "``'w'``" + +#: ../../library/functions.rst:1372 +msgid "open for writing, truncating the file first" +msgstr "" + +#: ../../library/functions.rst:1373 +msgid "``'x'``" +msgstr "``'x'``" + +#: ../../library/functions.rst:1373 +msgid "open for exclusive creation, failing if the file already exists" +msgstr "" + +#: ../../library/functions.rst:1374 +msgid "``'a'``" +msgstr "``'a'``" + +#: ../../library/functions.rst:1374 +msgid "open for writing, appending to the end of file if it exists" +msgstr "" + +#: ../../library/functions.rst:1375 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../../library/functions.rst:1375 ../../library/functions.rst:1519 +msgid "binary mode" +msgstr "" + +#: ../../library/functions.rst:1376 +msgid "``'t'``" +msgstr "``'t'``" + +#: ../../library/functions.rst:1376 +msgid "text mode (default)" +msgstr "" + +#: ../../library/functions.rst:1377 +msgid "``'+'``" +msgstr "``'+'``" + +#: ../../library/functions.rst:1377 +msgid "open for updating (reading and writing)" +msgstr "" + +#: ../../library/functions.rst:1380 +msgid "" +"The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " +"Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " +"``'r+b'`` open the file with no truncation." +msgstr "" + +#: ../../library/functions.rst:1384 +msgid "" +"As mentioned in the :ref:`io-overview`, Python distinguishes between binary " +"and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " +"argument) return contents as :class:`bytes` objects without any decoding. " +"In text mode (the default, or when ``'t'`` is included in the *mode* " +"argument), the contents of the file are returned as :class:`str`, the bytes " +"having been first decoded using a platform-dependent encoding or using the " +"specified *encoding* if given." +msgstr "" + +#: ../../library/functions.rst:1394 +msgid "" +"Python doesn't depend on the underlying operating system's notion of text " +"files; all the processing is done by Python itself, and is therefore " +"platform-independent." +msgstr "" + +#: ../../library/functions.rst:1398 +msgid "" +"*buffering* is an optional integer used to set the buffering policy. Pass 0 " +"to switch buffering off (only allowed in binary mode), 1 to select line " +"buffering (only usable when writing in text mode), and an integer > 1 to " +"indicate the size in bytes of a fixed-size chunk buffer. Note that " +"specifying a buffer size this way applies for binary buffered I/O, but " +"``TextIOWrapper`` (i.e., files opened with ``mode='r+'``) would have another " +"buffering. To disable buffering in ``TextIOWrapper``, consider using the " +"``write_through`` flag for :func:`io.TextIOWrapper.reconfigure`. When no " +"*buffering* argument is given, the default buffering policy works as follows:" +msgstr "" + +#: ../../library/functions.rst:1408 +msgid "" +"Binary files are buffered in fixed-size chunks; the size of the buffer is " +"``max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE)`` when the device block " +"size is available. On most systems, the buffer will typically be 128 " +"kilobytes long." +msgstr "" + +#: ../../library/functions.rst:1413 +msgid "" +"\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " +"returns ``True``) use line buffering. Other text files use the policy " +"described above for binary files." +msgstr "" + +#: ../../library/functions.rst:1417 +msgid "" +"*encoding* is the name of the encoding used to decode or encode the file. " +"This should only be used in text mode. The default encoding is platform " +"dependent (whatever :func:`locale.getencoding` returns), but any :term:`text " +"encoding` supported by Python can be used. See the :mod:`codecs` module for " +"the list of supported encodings." +msgstr "" + +#: ../../library/functions.rst:1423 +msgid "" +"*errors* is an optional string that specifies how encoding and decoding " +"errors are to be handled—this cannot be used in binary mode. A variety of " +"standard error handlers are available (listed under :ref:`error-handlers`), " +"though any error handling name that has been registered " +"with :func:`codecs.register_error` is also valid. The standard names " +"include:" +msgstr "" + +#: ../../library/functions.rst:1431 +msgid "" +"``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " +"error. The default value of ``None`` has the same effect." +msgstr "" + +#: ../../library/functions.rst:1435 +msgid "" +"``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " +"data loss." +msgstr "" + +#: ../../library/functions.rst:1438 +msgid "" +"``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " +"where there is malformed data." +msgstr "" + +#: ../../library/functions.rst:1441 +msgid "" +"``'surrogateescape'`` will represent any incorrect bytes as low surrogate " +"code units ranging from U+DC80 to U+DCFF. These surrogate code units will " +"then be turned back into the same bytes when the ``surrogateescape`` error " +"handler is used when writing data. This is useful for processing files in " +"an unknown encoding." +msgstr "" + +#: ../../library/functions.rst:1448 +msgid "" +"``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " +"not supported by the encoding are replaced with the appropriate XML " +"character reference :samp:`&#{nnn};`." +msgstr "" + +#: ../../library/functions.rst:1452 +msgid "" +"``'backslashreplace'`` replaces malformed data by Python's backslashed " +"escape sequences." +msgstr "" + +#: ../../library/functions.rst:1455 +msgid "" +"``'namereplace'`` (also only supported when writing) replaces unsupported " +"characters with ``\\N{...}`` escape sequences." +msgstr "" + +#: ../../library/functions.rst:1463 +msgid "" +"*newline* determines how to parse newline characters from the stream. It can " +"be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " +"follows:" +msgstr "" + +#: ../../library/functions.rst:1467 +msgid "" +"When reading input from the stream, if *newline* is ``None``, universal " +"newlines mode is enabled. Lines in the input can end in ``'\\n'``, " +"``'\\r'``, or ``'\\r\\n'``, and these are translated into ``'\\n'`` before " +"being returned to the caller. If it is ``''``, universal newlines mode is " +"enabled, but line endings are returned to the caller untranslated. If it " +"has any of the other legal values, input lines are only terminated by the " +"given string, and the line ending is returned to the caller untranslated." +msgstr "" + +#: ../../library/functions.rst:1475 +msgid "" +"When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " +"characters written are translated to the system default line " +"separator, :data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no " +"translation takes place. If *newline* is any of the other legal values, any " +"``'\\n'`` characters written are translated to the given string." +msgstr "" + +#: ../../library/functions.rst:1481 +msgid "" +"If *closefd* is ``False`` and a file descriptor rather than a filename was " +"given, the underlying file descriptor will be kept open when the file is " +"closed. If a filename is given *closefd* must be ``True`` (the default); " +"otherwise, an error will be raised." +msgstr "" + +#: ../../library/functions.rst:1486 +msgid "" +"A custom opener can be used by passing a callable as *opener*. The " +"underlying file descriptor for the file object is then obtained by calling " +"*opener* with (*file*, *flags*). *opener* must return an open file " +"descriptor (passing :mod:`os.open` as *opener* results in functionality " +"similar to passing ``None``)." +msgstr "" + +#: ../../library/functions.rst:1492 +msgid "The newly created file is :ref:`non-inheritable `." +msgstr "" + +#: ../../library/functions.rst:1494 +msgid "" +"The following example uses the :ref:`dir_fd ` parameter of " +"the :func:`os.open` function to open a file relative to a given directory::" +msgstr "" + +#: ../../library/functions.rst:1497 +msgid "" +">>> import os\n" +">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" +">>> def opener(path, flags):\n" +"... return os.open(path, flags, dir_fd=dir_fd)\n" +"...\n" +">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" +"... print('This will be written to somedir/spamspam.txt', file=f)\n" +"...\n" +">>> os.close(dir_fd) # don't leak a file descriptor" +msgstr "" + +#: ../../library/functions.rst:1507 +msgid "" +"The type of :term:`file object` returned by the :func:`open` function " +"depends on the mode. When :func:`open` is used to open a file in a text " +"mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass " +"of :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When " +"used to open a file in a binary mode with buffering, the returned class is a " +"subclass of :class:`io.BufferedIOBase`. The exact class varies: in read " +"binary mode, it returns an :class:`io.BufferedReader`; in write binary and " +"append binary modes, it returns an :class:`io.BufferedWriter`, and in read/" +"write mode, it returns an :class:`io.BufferedRandom`. When buffering is " +"disabled, the raw stream, a subclass " +"of :class:`io.RawIOBase`, :class:`io.FileIO`, is returned." +msgstr "" + +#: ../../library/functions.rst:1528 +msgid "" +"See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " +"(where :func:`open` is " +"declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`, and :mod:`shutil`." +msgstr "" + +#: ../../library/functions.rst:1532 +msgid "" +"Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " +"``mode``, ``flags``." +msgstr "" + +#: ../../library/functions.rst:1534 +msgid "" +"The ``mode`` and ``flags`` arguments may have been modified or inferred from " +"the original call." +msgstr "" + +#: ../../library/functions.rst:1539 +msgid "The *opener* parameter was added." +msgstr "" + +#: ../../library/functions.rst:1540 +msgid "The ``'x'`` mode was added." +msgstr "" + +#: ../../library/functions.rst:1541 +msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." +msgstr "" + +#: ../../library/functions.rst:1542 +msgid "" +":exc:`FileExistsError` is now raised if the file opened in exclusive " +"creation mode (``'x'``) already exists." +msgstr "" + +#: ../../library/functions.rst:1547 +msgid "The file is now non-inheritable." +msgstr "" + +#: ../../library/functions.rst:1551 +msgid "" +"If the system call is interrupted and the signal handler does not raise an " +"exception, the function now retries the system call instead of raising " +"an :exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +msgstr "" + +#: ../../library/functions.rst:1554 +msgid "The ``'namereplace'`` error handler was added." +msgstr "" + +#: ../../library/functions.rst:1558 +msgid "Support added to accept objects implementing :class:`os.PathLike`." +msgstr "" + +#: ../../library/functions.rst:1559 +msgid "" +"On Windows, opening a console buffer may return a subclass " +"of :class:`io.RawIOBase` other than :class:`io.FileIO`." +msgstr "" + +#: ../../library/functions.rst:1562 +msgid "The ``'U'`` mode has been removed." +msgstr "" + +#: ../../library/functions.rst:1567 +msgid "" +"Given a string representing one Unicode character, return an integer " +"representing the Unicode code point of that character. For example, " +"``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns " +"``8364``. This is the inverse of :func:`chr`." +msgstr "" + +#: ../../library/functions.rst:1575 +msgid "" +"Return *base* to the power *exp*; if *mod* is present, return *base* to the " +"power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " +"mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " +"power operator: ``base**exp``." +msgstr "" + +#: ../../library/functions.rst:1580 +msgid "" +"The arguments must have numeric types. With mixed operand types, the " +"coercion rules for binary arithmetic operators apply. For :class:`int` " +"operands, the result has the same type as the operands (after coercion) " +"unless the second argument is negative; in that case, all arguments are " +"converted to float and a float result is delivered. For example, ``pow(10, " +"2)`` returns ``100``, but ``pow(10, -2)`` returns ``0.01``. For a negative " +"base of type :class:`int` or :class:`float` and a non-integral exponent, a " +"complex result is delivered. For example, ``pow(-9, 0.5)`` returns a value " +"close to ``3j``. Whereas, for a negative base of type :class:`int` " +"or :class:`float` with an integral exponent, a float result is delivered. " +"For example, ``pow(-9, 2.0)`` returns ``81.0``." +msgstr "" + +#: ../../library/functions.rst:1592 +msgid "" +"For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " +"also be of integer type and *mod* must be nonzero. If *mod* is present and " +"*exp* is negative, *base* must be relatively prime to *mod*. In that case, " +"``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " +"*base* modulo *mod*." +msgstr "" + +#: ../../library/functions.rst:1598 +msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" +msgstr "" + +#: ../../library/functions.rst:1600 +msgid "" +">>> pow(38, -1, mod=97)\n" +"23\n" +">>> 23 * 38 % 97 == 1\n" +"True" +msgstr "" + +#: ../../library/functions.rst:1605 +msgid "" +"For :class:`int` operands, the three-argument form of ``pow`` now allows the " +"second argument to be negative, permitting computation of modular inverses." +msgstr "" + +#: ../../library/functions.rst:1610 +msgid "" +"Allow keyword arguments. Formerly, only positional arguments were supported." +msgstr "" + +#: ../../library/functions.rst:1617 +msgid "" +"Print *objects* to the text stream *file*, separated by *sep* and followed " +"by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " +"keyword arguments." +msgstr "" + +#: ../../library/functions.rst:1621 +msgid "" +"All non-keyword arguments are converted to strings like :func:`str` does and " +"written to the stream, separated by *sep* and followed by *end*. Both *sep* " +"and *end* must be strings; they can also be ``None``, which means to use the " +"default values. If no *objects* are given, :func:`print` will just write " +"*end*." +msgstr "" + +#: ../../library/functions.rst:1627 +msgid "" +"The *file* argument must be an object with a ``write(string)`` method; if it " +"is not present or ``None``, :data:`sys.stdout` will be used. Since printed " +"arguments are converted to text strings, :func:`print` cannot be used with " +"binary mode file objects. For these, use ``file.write(...)`` instead." +msgstr "" + +#: ../../library/functions.rst:1632 +msgid "" +"Output buffering is usually determined by *file*. However, if *flush* is " +"true, the stream is forcibly flushed." +msgstr "" + +#: ../../library/functions.rst:1636 +msgid "Added the *flush* keyword argument." +msgstr "" + +#: ../../library/functions.rst:1642 +msgid "Return a property attribute." +msgstr "" + +#: ../../library/functions.rst:1644 +msgid "" +"*fget* is a function for getting an attribute value. *fset* is a function " +"for setting an attribute value. *fdel* is a function for deleting an " +"attribute value. And *doc* creates a docstring for the attribute." +msgstr "" + +#: ../../library/functions.rst:1648 +msgid "A typical use is to define a managed attribute ``x``::" +msgstr "" + +#: ../../library/functions.rst:1650 +msgid "" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" +"\n" +" def getx(self):\n" +" return self._x\n" +"\n" +" def setx(self, value):\n" +" self._x = value\n" +"\n" +" def delx(self):\n" +" del self._x\n" +"\n" +" x = property(getx, setx, delx, \"I'm the 'x' property.\")" +msgstr "" + +#: ../../library/functions.rst:1665 +msgid "" +"If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " +"value`` will invoke the setter, and ``del c.x`` the deleter." +msgstr "" + +#: ../../library/functions.rst:1668 +msgid "" +"If given, *doc* will be the docstring of the property attribute. Otherwise, " +"the property will copy *fget*'s docstring (if it exists). This makes it " +"possible to create read-only properties easily using :func:`property` as " +"a :term:`decorator`::" +msgstr "" + +#: ../../library/functions.rst:1672 +msgid "" +"class Parrot:\n" +" def __init__(self):\n" +" self._voltage = 100000\n" +"\n" +" @property\n" +" def voltage(self):\n" +" \"\"\"Get the current voltage.\"\"\"\n" +" return self._voltage" +msgstr "" + +#: ../../library/functions.rst:1681 +msgid "" +"The ``@property`` decorator turns the :meth:`!voltage` method into a " +"\"getter\" for a read-only attribute with the same name, and it sets the " +"docstring for *voltage* to \"Get the current voltage.\"" +msgstr "" + +#: ../../library/functions.rst:1689 +msgid "" +"A property object has ``getter``, ``setter``, and ``deleter`` methods usable " +"as decorators that create a copy of the property with the corresponding " +"accessor function set to the decorated function. This is best explained " +"with an example:" +msgstr "" + +#: ../../library/functions.rst:1694 +msgid "" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" +"\n" +" @property\n" +" def x(self):\n" +" \"\"\"I'm the 'x' property.\"\"\"\n" +" return self._x\n" +"\n" +" @x.setter\n" +" def x(self, value):\n" +" self._x = value\n" +"\n" +" @x.deleter\n" +" def x(self):\n" +" del self._x" +msgstr "" + +#: ../../library/functions.rst:1713 +msgid "" +"This code is exactly equivalent to the first example. Be sure to give the " +"additional functions the same name as the original property (``x`` in this " +"case.)" +msgstr "" + +#: ../../library/functions.rst:1717 +msgid "" +"The returned property object also has the attributes ``fget``, ``fset``, and " +"``fdel`` corresponding to the constructor arguments." +msgstr "" + +#: ../../library/functions.rst:1720 +msgid "The docstrings of property objects are now writeable." +msgstr "" + +#: ../../library/functions.rst:1725 +msgid "" +"Attribute holding the name of the property. The name of the property can be " +"changed at runtime." +msgstr "" + +#: ../../library/functions.rst:1736 +msgid "" +"Rather than being a function, :class:`range` is actually an immutable " +"sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." +msgstr "" + +#: ../../library/functions.rst:1742 +msgid "" +"Return a string containing a printable representation of an object. For " +"many types, this function makes an attempt to return a string that would " +"yield an object with the same value when passed to :func:`eval`; otherwise, " +"the representation is a string enclosed in angle brackets that contains the " +"name of the type of the object together with additional information often " +"including the name and address of the object. A class can control what this " +"function returns for its instances by defining a :meth:`~object.__repr__` " +"method. If :func:`sys.displayhook` is not accessible, this function will " +"raise :exc:`RuntimeError`." +msgstr "" + +#: ../../library/functions.rst:1753 +msgid "This class has a custom representation that can be evaluated::" +msgstr "" + +#: ../../library/functions.rst:1755 +msgid "" +"class Person:\n" +" def __init__(self, name, age):\n" +" self.name = name\n" +" self.age = age\n" +"\n" +" def __repr__(self):\n" +" return f\"Person('{self.name}', {self.age})\"" +msgstr "" + +#: ../../library/functions.rst:1766 +msgid "" +"Return a reverse :term:`iterator`. *seq* must be an object which has " +"a :meth:`~object.__reversed__` method or supports the sequence protocol " +"(the :meth:`~object.__len__` method and the :meth:`~object.__getitem__` " +"method with integer arguments starting at ``0``)." +msgstr "" + +#: ../../library/functions.rst:1774 +msgid "" +"Return *number* rounded to *ndigits* precision after the decimal point. If " +"*ndigits* is omitted or is ``None``, it returns the nearest integer to its " +"input." +msgstr "" + +#: ../../library/functions.rst:1778 +msgid "" +"For the built-in types supporting :func:`round`, values are rounded to the " +"closest multiple of 10 to the power minus *ndigits*; if two multiples are " +"equally close, rounding is done toward the even choice (so, for example, " +"both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is " +"``2``). Any integer value is valid for *ndigits* (positive, zero, or " +"negative). The return value is an integer if *ndigits* is omitted or " +"``None``. Otherwise, the return value has the same type as *number*." +msgstr "" + +#: ../../library/functions.rst:1787 +msgid "" +"For a general Python object ``number``, ``round`` delegates to " +"``number.__round__``." +msgstr "" + +#: ../../library/functions.rst:1792 +msgid "" +"The behavior of :func:`round` for floats can be surprising: for example, " +"``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " +"not a bug: it's a result of the fact that most decimal fractions can't be " +"represented exactly as a float. See :ref:`tut-fp-issues` for more " +"information." +msgstr "" + +#: ../../library/functions.rst:1804 +msgid "" +"Return a new :class:`set` object, optionally with elements taken from " +"*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" +"set` for documentation about this class." +msgstr "" + +#: ../../library/functions.rst:1808 +msgid "" +"For other containers see the built-" +"in :class:`frozenset`, :class:`list`, :class:`tuple`, and :class:`dict` " +"classes, as well as the :mod:`collections` module." +msgstr "" + +#: ../../library/functions.rst:1815 +msgid "" +"This is the counterpart of :func:`getattr`. The arguments are an object, a " +"string, and an arbitrary value. The string may name an existing attribute " +"or a new attribute. The function assigns the value to the attribute, " +"provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " +"is equivalent to ``x.foobar = 123``." +msgstr "" + +#: ../../library/functions.rst:1821 +msgid "" +"*name* need not be a Python identifier as defined in :ref:`identifiers` " +"unless the object chooses to enforce that, for example in a " +"custom :meth:`~object.__getattribute__` or via :attr:`~object.__slots__`. An " +"attribute whose name is not an identifier will not be accessible using the " +"dot notation, but is accessible through :func:`getattr` etc.." +msgstr "" + +#: ../../library/functions.rst:1829 +msgid "" +"Since :ref:`private name mangling ` happens at " +"compilation time, one must manually mangle a private attribute's (attributes " +"with two leading underscores) name in order to set it with :func:`setattr`." +msgstr "" + +#: ../../library/functions.rst:1838 +msgid "" +"Return a :term:`slice` object representing the set of indices specified by " +"``range(start, stop, step)``. The *start* and *step* arguments default to " +"``None``." +msgstr "" + +#: ../../library/functions.rst:1842 +msgid "" +"Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " +"and :attr:`!step` which merely return the argument values (or their " +"default). They have no other explicit functionality; however, they are used " +"by NumPy and other third-party packages." +msgstr "" + +#: ../../library/functions.rst:1851 +msgid "" +"Slice objects are also generated when extended indexing syntax is used. For " +"example: ``a[start:stop:step]`` or ``a[start:stop, i]``. " +"See :func:`itertools.islice` for an alternate version that returns " +"an :term:`iterator`." +msgstr "" + +#: ../../library/functions.rst:1856 +msgid "" +"Slice objects are now :term:`hashable` " +"(provided :attr:`~slice.start`, :attr:`~slice.stop`, and :attr:`~slice.step` " +"are hashable)." +msgstr "" + +#: ../../library/functions.rst:1862 +msgid "Return a new sorted list from the items in *iterable*." +msgstr "" + +#: ../../library/functions.rst:1864 +msgid "" +"Has two optional arguments which must be specified as keyword arguments." +msgstr "" + +#: ../../library/functions.rst:1866 +msgid "" +"*key* specifies a function of one argument that is used to extract a " +"comparison key from each element in *iterable* (for example, " +"``key=str.lower``). The default value is ``None`` (compare the elements " +"directly)." +msgstr "" + +#: ../../library/functions.rst:1870 +msgid "" +"*reverse* is a boolean value. If set to ``True``, then the list elements " +"are sorted as if each comparison were reversed." +msgstr "" + +#: ../../library/functions.rst:1873 +msgid "" +"Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " +"*key* function." +msgstr "" + +#: ../../library/functions.rst:1876 +msgid "" +"The built-in :func:`sorted` function is guaranteed to be stable. A sort is " +"stable if it guarantees not to change the relative order of elements that " +"compare equal --- this is helpful for sorting in multiple passes (for " +"example, sort by department, then by salary grade)." +msgstr "" + +#: ../../library/functions.rst:1881 +msgid "" +"The sort algorithm uses only ``<`` comparisons between items. While " +"defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " +"recommends that all six :ref:`rich comparisons ` be " +"implemented. This will help avoid bugs when using the same data with other " +"ordering tools such as :func:`max` that rely on a different underlying " +"method. Implementing all six comparisons also helps avoid confusion for " +"mixed type comparisons which can call reflected the :meth:`~object.__gt__` " +"method." +msgstr "" + +#: ../../library/functions.rst:1890 +msgid "" +"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." +msgstr "" + +#: ../../library/functions.rst:1894 +msgid "Transform a method into a static method." +msgstr "" + +#: ../../library/functions.rst:1896 +msgid "" +"A static method does not receive an implicit first argument. To declare a " +"static method, use this idiom::" +msgstr "" + +#: ../../library/functions.rst:1899 +msgid "" +"class C:\n" +" @staticmethod\n" +" def f(arg1, arg2, argN): ..." +msgstr "" + +#: ../../library/functions.rst:1903 +msgid "" +"The ``@staticmethod`` form is a function :term:`decorator` -- " +"see :ref:`function` for details." +msgstr "" + +#: ../../library/functions.rst:1906 +msgid "" +"A static method can be called either on the class (such as ``C.f()``) or on " +"an instance (such as ``C().f()``). Moreover, the static " +"method :term:`descriptor` is also callable, so it can be used in the class " +"definition (such as ``f()``)." +msgstr "" + +#: ../../library/functions.rst:1911 +msgid "" +"Static methods in Python are similar to those found in Java or C++. Also, " +"see :func:`classmethod` for a variant that is useful for creating alternate " +"class constructors." +msgstr "" + +#: ../../library/functions.rst:1915 +msgid "" +"Like all decorators, it is also possible to call ``staticmethod`` as a " +"regular function and do something with its result. This is needed in some " +"cases where you need a reference to a function from a class body and you " +"want to avoid the automatic transformation to instance method. For these " +"cases, use this idiom::" +msgstr "" + +#: ../../library/functions.rst:1921 +msgid "" +"def regular_function():\n" +" ...\n" +"\n" +"class C:\n" +" method = staticmethod(regular_function)" +msgstr "" + +#: ../../library/functions.rst:1927 +msgid "For more information on static methods, see :ref:`types`." +msgstr "" + +#: ../../library/functions.rst:1929 +msgid "" +"Static methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"and :attr:`~function.__annotations__`), have a new ``__wrapped__`` " +"attribute, and are now callable as regular functions." +msgstr "" + +#: ../../library/functions.rst:1945 +msgid "" +"Return a :class:`str` version of *object*. See :func:`str` for details." +msgstr "" + +#: ../../library/functions.rst:1947 +msgid "" +"``str`` is the built-in string :term:`class`. For general information about " +"strings, see :ref:`textseq`." +msgstr "" + +#: ../../library/functions.rst:1953 +msgid "" +"Sums *start* and the items of an *iterable* from left to right and returns " +"the total. The *iterable*'s items are normally numbers, and the start value " +"is not allowed to be a string." +msgstr "" + +#: ../../library/functions.rst:1957 +msgid "" +"For some use cases, there are good alternatives to :func:`sum`. The " +"preferred, fast way to concatenate a sequence of strings is by calling " +"``''.join(sequence)``. To add floating-point values with extended " +"precision, see :func:`math.fsum`\\. To concatenate a series of iterables, " +"consider using :func:`itertools.chain`." +msgstr "" + +#: ../../library/functions.rst:1963 +msgid "The *start* parameter can be specified as a keyword argument." +msgstr "" + +#: ../../library/functions.rst:1966 +msgid "" +"Summation of floats switched to an algorithm that gives higher accuracy and " +"better commutativity on most builds." +msgstr "" + +#: ../../library/functions.rst:1969 +msgid "" +"Added specialization for summation of complexes, using same algorithm as for " +"summation of floats." +msgstr "" + +#: ../../library/functions.rst:1977 +msgid "" +"Return a proxy object that delegates method calls to a parent or sibling " +"class of *type*. This is useful for accessing inherited methods that have " +"been overridden in a class." +msgstr "" + +#: ../../library/functions.rst:1981 +msgid "" +"The *object_or_type* determines the :term:`method resolution order` to be " +"searched. The search starts from the class right after the *type*." +msgstr "" + +#: ../../library/functions.rst:1985 +msgid "" +"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C " +"-> A -> object`` and the value of *type* is ``B``, then :func:`super` " +"searches ``C -> A -> object``." +msgstr "" + +#: ../../library/functions.rst:1989 +msgid "" +"The :attr:`~type.__mro__` attribute of the class corresponding to " +"*object_or_type* lists the method resolution search order used by " +"both :func:`getattr` and :func:`super`. The attribute is dynamic and can " +"change whenever the inheritance hierarchy is updated." +msgstr "" + +#: ../../library/functions.rst:1994 +msgid "" +"If the second argument is omitted, the super object returned is unbound. If " +"the second argument is an object, ``isinstance(obj, type)`` must be true. " +"If the second argument is a type, ``issubclass(type2, type)`` must be true " +"(this is useful for classmethods)." +msgstr "" + +#: ../../library/functions.rst:1999 +msgid "" +"When called directly within an ordinary method of a class, both arguments " +"may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will " +"be the enclosing class, and *obj* will be the first argument of the " +"immediately enclosing function (typically ``self``). (This means that zero-" +"argument :func:`!super` will not work as expected within nested functions, " +"including generator expressions, which implicitly create nested functions.)" +msgstr "" + +#: ../../library/functions.rst:2006 +msgid "" +"There are two typical use cases for *super*. In a class hierarchy with " +"single inheritance, *super* can be used to refer to parent classes without " +"naming them explicitly, thus making the code more maintainable. This use " +"closely parallels the use of *super* in other programming languages." +msgstr "" + +#: ../../library/functions.rst:2011 +msgid "" +"The second use case is to support cooperative multiple inheritance in a " +"dynamic execution environment. This use case is unique to Python and is not " +"found in statically compiled languages or languages that only support single " +"inheritance. This makes it possible to implement \"diamond diagrams\" where " +"multiple base classes implement the same method. Good design dictates that " +"such implementations have the same calling signature in every case (because " +"the order of calls is determined at runtime, because that order adapts to " +"changes in the class hierarchy, and because that order can include sibling " +"classes that are unknown prior to runtime)." +msgstr "" + +#: ../../library/functions.rst:2021 +msgid "For both use cases, a typical superclass call looks like this::" +msgstr "" + +#: ../../library/functions.rst:2023 +msgid "" +"class C(B):\n" +" def method(self, arg):\n" +" super().method(arg) # This does the same thing as:\n" +" # super(C, self).method(arg)" +msgstr "" + +#: ../../library/functions.rst:2028 +msgid "" +"In addition to method lookups, :func:`super` also works for attribute " +"lookups. One possible use case for this is calling :term:`descriptors " +"` in a parent or sibling class." +msgstr "" + +#: ../../library/functions.rst:2032 +msgid "" +"Note that :func:`super` is implemented as part of the binding process for " +"explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " +"does so by implementing its own :meth:`~object.__getattribute__` method for " +"searching classes in a predictable order that supports cooperative multiple " +"inheritance. Accordingly, :func:`super` is undefined for implicit lookups " +"using statements or operators such as ``super()[name]``." +msgstr "" + +#: ../../library/functions.rst:2040 +msgid "" +"Also note that, aside from the zero argument form, :func:`super` is not " +"limited to use inside methods. The two argument form specifies the " +"arguments exactly and makes the appropriate references. The zero argument " +"form only works inside a class definition, as the compiler fills in the " +"necessary details to correctly retrieve the class being defined, as well as " +"accessing the current instance for ordinary methods." +msgstr "" + +#: ../../library/functions.rst:2047 +msgid "" +"For practical suggestions on how to design cooperative classes " +"using :func:`super`, see `guide to using super() `_." +msgstr "" + +#: ../../library/functions.rst:2051 +msgid "" +":class:`super` objects are now :mod:`pickleable ` " +"and :mod:`copyable `." +msgstr "" + +#: ../../library/functions.rst:2061 +msgid "" +"Rather than being a function, :class:`tuple` is actually an immutable " +"sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." +msgstr "" + +#: ../../library/functions.rst:2070 +msgid "" +"With one argument, return the type of an *object*. The return value is a " +"type object and generally the same object as returned " +"by :attr:`object.__class__`." +msgstr "" + +#: ../../library/functions.rst:2074 +msgid "" +"The :func:`isinstance` built-in function is recommended for testing the type " +"of an object, because it takes subclasses into account." +msgstr "" + +#: ../../library/functions.rst:2077 +msgid "" +"With three arguments, return a new type object. This is essentially a " +"dynamic form of the :keyword:`class` statement. The *name* string is the " +"class name and becomes the :attr:`~type.__name__` attribute. The *bases* " +"tuple contains the base classes and becomes the :attr:`~type.__bases__` " +"attribute; if empty, :class:`object`, the ultimate base of all classes, is " +"added. The *dict* dictionary contains attribute and method definitions for " +"the class body; it may be copied or wrapped before becoming " +"the :attr:`~type.__dict__` attribute. The following two statements create " +"identical :class:`!type` objects:" +msgstr "" + +#: ../../library/functions.rst:2092 +msgid "See also:" +msgstr "" + +#: ../../library/functions.rst:2094 +msgid "" +":ref:`Documentation on attributes and methods on classes `." +msgstr "" + +#: ../../library/functions.rst:2095 +msgid ":ref:`bltin-type-objects`" +msgstr "" + +#: ../../library/functions.rst:2097 +msgid "" +"Keyword arguments provided to the three argument form are passed to the " +"appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " +"in the same way that keywords in a class definition (besides *metaclass*) " +"would." +msgstr "" + +#: ../../library/functions.rst:2102 +msgid "See also :ref:`class-customization`." +msgstr "" + +#: ../../library/functions.rst:2104 +msgid "" +"Subclasses of :class:`!type` which don't override ``type.__new__`` may no " +"longer use the one-argument form to get the type of an object." +msgstr "" + +#: ../../library/functions.rst:2111 +msgid "" +"Return the :attr:`~object.__dict__` attribute for a module, class, instance, " +"or any other object with a :attr:`!__dict__` attribute." +msgstr "" + +#: ../../library/functions.rst:2114 +msgid "" +"Objects such as modules and instances have an " +"updateable :attr:`~object.__dict__` attribute; however, other objects may " +"have write restrictions on their :attr:`!__dict__` attributes (for example, " +"classes use a :class:`types.MappingProxyType` to prevent direct dictionary " +"updates)." +msgstr "" + +#: ../../library/functions.rst:2119 +msgid "Without an argument, :func:`vars` acts like :func:`locals`." +msgstr "" + +#: ../../library/functions.rst:2121 +msgid "" +"A :exc:`TypeError` exception is raised if an object is specified but it " +"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " +"defines the :attr:`~object.__slots__` attribute)." +msgstr "" + +#: ../../library/functions.rst:2127 +msgid "" +"The result of calling this function without an argument has been updated as " +"described for the :func:`locals` builtin." +msgstr "" + +#: ../../library/functions.rst:2133 +msgid "" +"Iterate over several iterables in parallel, producing tuples with an item " +"from each one." +msgstr "" + +#: ../../library/functions.rst:2136 +msgid "Example::" +msgstr "" + +#: ../../library/functions.rst:2138 +msgid "" +">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" +"... print(item)\n" +"...\n" +"(1, 'sugar')\n" +"(2, 'spice')\n" +"(3, 'everything nice')" +msgstr "" + +#: ../../library/functions.rst:2145 +msgid "" +"More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " +"tuple contains the *i*-th element from each of the argument iterables." +msgstr "" + +#: ../../library/functions.rst:2148 +msgid "" +"Another way to think of :func:`zip` is that it turns rows into columns, and " +"columns into rows. This is similar to `transposing a matrix `_." +msgstr "" + +#: ../../library/functions.rst:2152 +msgid "" +":func:`zip` is lazy: The elements won't be processed until the iterable is " +"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in " +"a :class:`list`." +msgstr "" + +#: ../../library/functions.rst:2156 +msgid "" +"One thing to consider is that the iterables passed to :func:`zip` could have " +"different lengths; sometimes by design, and sometimes because of a bug in " +"the code that prepared these iterables. Python offers three different " +"approaches to dealing with this issue:" +msgstr "" + +#: ../../library/functions.rst:2161 +msgid "" +"By default, :func:`zip` stops when the shortest iterable is exhausted. It " +"will ignore the remaining items in the longer iterables, cutting off the " +"result to the length of the shortest iterable::" +msgstr "" + +#: ../../library/functions.rst:2165 +msgid "" +">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" +"[(0, 'fee'), (1, 'fi'), (2, 'fo')]" +msgstr "" + +#: ../../library/functions.rst:2168 +msgid "" +":func:`zip` is often used in cases where the iterables are assumed to be of " +"equal length. In such cases, it's recommended to use the ``strict=True`` " +"option. Its output is the same as regular :func:`zip`::" +msgstr "" + +#: ../../library/functions.rst:2172 +msgid "" +">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" +"[('a', 1), ('b', 2), ('c', 3)]" +msgstr "" + +#: ../../library/functions.rst:2175 +msgid "" +"Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " +"is exhausted before the others:" +msgstr "" + +#: ../../library/functions.rst:2193 +msgid "" +"Without the ``strict=True`` argument, any bug that results in iterables of " +"different lengths will be silenced, possibly manifesting as a hard-to-find " +"bug in another part of the program." +msgstr "" + +#: ../../library/functions.rst:2197 +msgid "" +"Shorter iterables can be padded with a constant value to make all the " +"iterables have the same length. This is done " +"by :func:`itertools.zip_longest`." +msgstr "" + +#: ../../library/functions.rst:2201 +msgid "" +"Edge cases: With a single iterable argument, :func:`zip` returns an iterator " +"of 1-tuples. With no arguments, it returns an empty iterator." +msgstr "" + +#: ../../library/functions.rst:2204 +msgid "Tips and tricks:" +msgstr "" + +#: ../../library/functions.rst:2206 +msgid "" +"The left-to-right evaluation order of the iterables is guaranteed. This " +"makes possible an idiom for clustering a data series into n-length groups " +"using ``zip(*[iter(s)]*n, strict=True)``. This repeats the *same* iterator " +"``n`` times so that each output tuple has the result of ``n`` calls to the " +"iterator. This has the effect of dividing the input into n-length chunks." +msgstr "" + +#: ../../library/functions.rst:2212 +msgid "" +":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " +"list::" +msgstr "" + +#: ../../library/functions.rst:2215 +msgid "" +">>> x = [1, 2, 3]\n" +">>> y = [4, 5, 6]\n" +">>> list(zip(x, y))\n" +"[(1, 4), (2, 5), (3, 6)]\n" +">>> x2, y2 = zip(*zip(x, y))\n" +">>> x == list(x2) and y == list(y2)\n" +"True" +msgstr "" + +#: ../../library/functions.rst:2223 +msgid "Added the ``strict`` argument." +msgstr "" + +#: ../../library/functions.rst:2235 +msgid "" +"This is an advanced function that is not needed in everyday Python " +"programming, unlike :func:`importlib.import_module`." +msgstr "" + +#: ../../library/functions.rst:2238 +msgid "" +"This function is invoked by the :keyword:`import` statement. It can be " +"replaced (by importing the :mod:`builtins` module and assigning to " +"``builtins.__import__``) in order to change semantics of the :keyword:`!" +"import` statement, but doing so is **strongly** discouraged as it is usually " +"simpler to use import hooks (see :pep:`302`) to attain the same goals and " +"does not cause issues with code which assumes the default import " +"implementation is in use. Direct use of :func:`__import__` is also " +"discouraged in favor of :func:`importlib.import_module`." +msgstr "" + +#: ../../library/functions.rst:2247 +msgid "" +"The function imports the module *name*, potentially using the given " +"*globals* and *locals* to determine how to interpret the name in a package " +"context. The *fromlist* gives the names of objects or submodules that should " +"be imported from the module given by *name*. The standard implementation " +"does not use its *locals* argument at all and uses its *globals* only to " +"determine the package context of the :keyword:`import` statement." +msgstr "" + +#: ../../library/functions.rst:2254 +msgid "" +"*level* specifies whether to use absolute or relative imports. ``0`` (the " +"default) means only perform absolute imports. Positive values for *level* " +"indicate the number of parent directories to search relative to the " +"directory of the module calling :func:`__import__` (see :pep:`328` for the " +"details)." +msgstr "" + +#: ../../library/functions.rst:2260 +msgid "" +"When the *name* variable is of the form ``package.module``, normally, the " +"top-level package (the name up till the first dot) is returned, *not* the " +"module named by *name*. However, when a non-empty *fromlist* argument is " +"given, the module named by *name* is returned." +msgstr "" + +#: ../../library/functions.rst:2265 +msgid "" +"For example, the statement ``import spam`` results in bytecode resembling " +"the following code::" +msgstr "" + +#: ../../library/functions.rst:2268 +msgid "spam = __import__('spam', globals(), locals(), [], 0)" +msgstr "" + +#: ../../library/functions.rst:2270 +msgid "The statement ``import spam.ham`` results in this call::" +msgstr "" + +#: ../../library/functions.rst:2272 +msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" +msgstr "" + +#: ../../library/functions.rst:2274 +msgid "" +"Note how :func:`__import__` returns the toplevel module here because this is " +"the object that is bound to a name by the :keyword:`import` statement." +msgstr "" + +#: ../../library/functions.rst:2277 +msgid "" +"On the other hand, the statement ``from spam.ham import eggs, sausage as " +"saus`` results in ::" +msgstr "" + +#: ../../library/functions.rst:2280 +msgid "" +"_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" +"eggs = _temp.eggs\n" +"saus = _temp.sausage" +msgstr "" + +#: ../../library/functions.rst:2284 +msgid "" +"Here, the ``spam.ham`` module is returned from :func:`__import__`. From " +"this object, the names to import are retrieved and assigned to their " +"respective names." +msgstr "" + +#: ../../library/functions.rst:2288 +msgid "" +"If you simply want to import a module (potentially within a package) by " +"name, use :func:`importlib.import_module`." +msgstr "" + +#: ../../library/functions.rst:2291 +msgid "" +"Negative values for *level* are no longer supported (which also changes the " +"default value to 0)." +msgstr "" + +#: ../../library/functions.rst:2295 +msgid "" +"When the command line options :option:`-E` or :option:`-I` are being used, " +"the environment variable :envvar:`PYTHONCASEOK` is now ignored." +msgstr "" + +#: ../../library/functions.rst:2300 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/functions.rst:2301 +msgid "" +"Note that the parser only accepts the Unix-style end of line convention. If " +"you are reading the code from a file, make sure to use newline conversion " +"mode to convert Windows or Mac-style newlines." +msgstr "" + +#: ../../library/functions.rst:154 +msgid "Boolean" +msgstr "" + +#: ../../library/functions.rst:154 ../../library/functions.rst:2068 +msgid "type" +msgstr "" + +#: ../../library/functions.rst:654 +msgid "built-in function" +msgstr "" + +#: ../../library/functions.rst:654 +msgid "exec" +msgstr "" + +#: ../../library/functions.rst:752 +msgid "NaN" +msgstr "" + +#: ../../library/functions.rst:752 +msgid "Infinity" +msgstr "" + +#: ../../library/functions.rst:822 +msgid "__format__" +msgstr "" + +#: ../../library/functions.rst:822 ../../library/functions.rst:1937 +msgid "string" +msgstr "" + +#: ../../library/functions.rst:822 +msgid "format() (built-in function)" +msgstr "" + +#: ../../library/functions.rst:1337 +msgid "file object" +msgstr "" + +#: ../../library/functions.rst:1337 ../../library/functions.rst:1458 +msgid "open() built-in function" +msgstr "" + +#: ../../library/functions.rst:1365 +msgid "file" +msgstr "" + +#: ../../library/functions.rst:1365 +msgid "modes" +msgstr "" + +#: ../../library/functions.rst:1458 +msgid "universal newlines" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "line-buffered I/O" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "unbuffered I/O" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "buffer size, I/O" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "I/O control" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "buffering" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "text mode" +msgstr "" + +#: ../../library/functions.rst:1519 ../../library/functions.rst:2229 +msgid "module" +msgstr "" + +#: ../../library/functions.rst:1519 +msgid "sys" +msgstr "" + +#: ../../library/functions.rst:1937 +msgid "str() (built-in function)" +msgstr "" + +#: ../../library/functions.rst:2068 +msgid "object" +msgstr "" + +#: ../../library/functions.rst:2229 +msgid "statement" +msgstr "" + +#: ../../library/functions.rst:2229 +msgid "import" +msgstr "" + +#: ../../library/functions.rst:2229 +msgid "builtins" +msgstr "" diff --git a/library/functools.po b/library/functools.po new file mode 100644 index 0000000..3f1c970 --- /dev/null +++ b/library/functools.po @@ -0,0 +1,1089 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/functools.rst:2 +msgid "" +":mod:`!functools` --- Higher-order functions and operations on callable " +"objects" +msgstr "" + +#: ../../library/functools.rst:14 +msgid "**Source code:** :source:`Lib/functools.py`" +msgstr "" + +#: ../../library/functools.rst:23 +msgid "" +"The :mod:`functools` module is for higher-order functions: functions that " +"act on or return other functions. In general, any callable object can be " +"treated as a function for the purposes of this module." +msgstr "" + +#: ../../library/functools.rst:27 +msgid "The :mod:`functools` module defines the following functions:" +msgstr "" + +#: ../../library/functools.rst:31 +msgid "" +"Simple lightweight unbounded function cache. Sometimes called `\"memoize\" " +"`_." +msgstr "" + +#: ../../library/functools.rst:34 +msgid "" +"Returns the same as ``lru_cache(maxsize=None)``, creating a thin wrapper " +"around a dictionary lookup for the function arguments. Because it never " +"needs to evict old values, this is smaller and faster than :func:`lru_cache` " +"with a size limit." +msgstr "" + +#: ../../library/functools.rst:39 ../../library/functools.rst:297 +msgid "For example::" +msgstr "" + +#: ../../library/functools.rst:41 +msgid "" +"@cache\n" +"def factorial(n):\n" +" return n * factorial(n-1) if n else 1\n" +"\n" +">>> factorial(10) # no previously cached result, makes 11 recursive " +"calls\n" +"3628800\n" +">>> factorial(5) # just looks up cached value result\n" +"120\n" +">>> factorial(12) # makes two new recursive calls, the other 10 are " +"cached\n" +"479001600" +msgstr "" + +#: ../../library/functools.rst:52 ../../library/functools.rst:158 +msgid "" +"The cache is threadsafe so that the wrapped function can be used in multiple " +"threads. This means that the underlying data structure will remain coherent " +"during concurrent updates." +msgstr "" + +#: ../../library/functools.rst:56 ../../library/functools.rst:162 +msgid "" +"It is possible for the wrapped function to be called more than once if " +"another thread makes an additional call before the initial call has been " +"completed and cached." +msgstr "" + +#: ../../library/functools.rst:65 +msgid "" +"Transform a method of a class into a property whose value is computed once " +"and then cached as a normal attribute for the life of the instance. Similar " +"to :func:`property`, with the addition of caching. Useful for expensive " +"computed properties of instances that are otherwise effectively immutable." +msgstr "" + +#: ../../library/functools.rst:70 ../../library/functools.rst:142 +#: ../../library/functools.rst:438 +msgid "Example::" +msgstr "" + +#: ../../library/functools.rst:72 +msgid "" +"class DataSet:\n" +"\n" +" def __init__(self, sequence_of_numbers):\n" +" self._data = tuple(sequence_of_numbers)\n" +"\n" +" @cached_property\n" +" def stdev(self):\n" +" return statistics.stdev(self._data)" +msgstr "" + +#: ../../library/functools.rst:81 +msgid "" +"The mechanics of :func:`cached_property` are somewhat different " +"from :func:`property`. A regular property blocks attribute writes unless a " +"setter is defined. In contrast, a *cached_property* allows writes." +msgstr "" + +#: ../../library/functools.rst:85 +msgid "" +"The *cached_property* decorator only runs on lookups and only when an " +"attribute of the same name doesn't exist. When it does run, the " +"*cached_property* writes to the attribute with the same name. Subsequent " +"attribute reads and writes take precedence over the *cached_property* method " +"and it works like a normal attribute." +msgstr "" + +#: ../../library/functools.rst:91 +msgid "" +"The cached value can be cleared by deleting the attribute. This allows the " +"*cached_property* method to run again." +msgstr "" + +#: ../../library/functools.rst:94 +msgid "" +"The *cached_property* does not prevent a possible race condition in multi-" +"threaded usage. The getter function could run more than once on the same " +"instance, with the latest run setting the cached value. If the cached " +"property is idempotent or otherwise not harmful to run more than once on an " +"instance, this is fine. If synchronization is needed, implement the " +"necessary locking inside the decorated getter function or around the cached " +"property access." +msgstr "" + +#: ../../library/functools.rst:102 +msgid "" +"Note, this decorator interferes with the operation of :pep:`412` key-sharing " +"dictionaries. This means that instance dictionaries can take more space " +"than usual." +msgstr "" + +#: ../../library/functools.rst:106 +msgid "" +"Also, this decorator requires that the ``__dict__`` attribute on each " +"instance be a mutable mapping. This means it will not work with some types, " +"such as metaclasses (since the ``__dict__`` attributes on type instances are " +"read-only proxies for the class namespace), and those that specify " +"``__slots__`` without including ``__dict__`` as one of the defined slots (as " +"such classes don't provide a ``__dict__`` attribute at all)." +msgstr "" + +#: ../../library/functools.rst:113 +msgid "" +"If a mutable mapping is not available or if space-efficient key sharing is " +"desired, an effect similar to :func:`cached_property` can also be achieved " +"by stacking :func:`property` on top of :func:`lru_cache`. See :ref:`faq-" +"cache-method-calls` for more details on how this differs " +"from :func:`cached_property`." +msgstr "" + +#: ../../library/functools.rst:120 +msgid "" +"Prior to Python 3.12, ``cached_property`` included an undocumented lock to " +"ensure that in multi-threaded usage the getter function was guaranteed to " +"run only once per instance. However, the lock was per-property, not per-" +"instance, which could result in unacceptably high lock contention. In Python " +"3.12+ this locking is removed." +msgstr "" + +#: ../../library/functools.rst:130 +msgid "" +"Transform an old-style comparison function to a :term:`key function`. Used " +"with tools that accept key functions (such " +"as :func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq.nsmallest`, :func:`itertools.groupby`). " +"This function is primarily used as a transition tool for programs being " +"converted from Python 2 which supported the use of comparison functions." +msgstr "" + +#: ../../library/functools.rst:137 +msgid "" +"A comparison function is any callable that accepts two arguments, compares " +"them, and returns a negative number for less-than, zero for equality, or a " +"positive number for greater-than. A key function is a callable that accepts " +"one argument and returns another value to be used as the sort key." +msgstr "" + +#: ../../library/functools.rst:144 +msgid "" +"sorted(iterable, key=cmp_to_key(locale.strcoll)) # locale-aware sort order" +msgstr "" + +#: ../../library/functools.rst:146 +msgid "" +"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." +msgstr "" + +#: ../../library/functools.rst:154 +msgid "" +"Decorator to wrap a function with a memoizing callable that saves up to the " +"*maxsize* most recent calls. It can save time when an expensive or I/O " +"bound function is periodically called with the same arguments." +msgstr "" + +#: ../../library/functools.rst:166 +msgid "" +"Since a dictionary is used to cache results, the positional and keyword " +"arguments to the function must be :term:`hashable`." +msgstr "" + +#: ../../library/functools.rst:169 +msgid "" +"Distinct argument patterns may be considered to be distinct calls with " +"separate cache entries. For example, ``f(a=1, b=2)`` and ``f(b=2, a=1)`` " +"differ in their keyword argument order and may have two separate cache " +"entries." +msgstr "" + +#: ../../library/functools.rst:174 +msgid "" +"If *user_function* is specified, it must be a callable. This allows the " +"*lru_cache* decorator to be applied directly to a user function, leaving the " +"*maxsize* at its default value of 128::" +msgstr "" + +#: ../../library/functools.rst:178 +msgid "" +"@lru_cache\n" +"def count_vowels(sentence):\n" +" return sum(sentence.count(vowel) for vowel in 'AEIOUaeiou')" +msgstr "" + +#: ../../library/functools.rst:182 +msgid "" +"If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " +"can grow without bound." +msgstr "" + +#: ../../library/functools.rst:185 +msgid "" +"If *typed* is set to true, function arguments of different types will be " +"cached separately. If *typed* is false, the implementation will usually " +"regard them as equivalent calls and only cache a single result. (Some types " +"such as *str* and *int* may be cached separately even when *typed* is false.)" +msgstr "" + +#: ../../library/functools.rst:191 +msgid "" +"Note, type specificity applies only to the function's immediate arguments " +"rather than their contents. The scalar arguments, ``Decimal(42)`` and " +"``Fraction(42)`` are be treated as distinct calls with distinct results. In " +"contrast, the tuple arguments ``('answer', Decimal(42))`` and ``('answer', " +"Fraction(42))`` are treated as equivalent." +msgstr "" + +#: ../../library/functools.rst:197 +msgid "" +"The wrapped function is instrumented with a :func:`!cache_parameters` " +"function that returns a new :class:`dict` showing the values for *maxsize* " +"and *typed*. This is for information purposes only. Mutating the values " +"has no effect." +msgstr "" + +#: ../../library/functools.rst:205 +msgid "" +"To help measure the effectiveness of the cache and tune the *maxsize* " +"parameter, the wrapped function is instrumented with a :func:`!cache_info` " +"function that returns a :term:`named tuple` showing *hits*, *misses*, " +"*maxsize* and *currsize*." +msgstr "" + +#: ../../library/functools.rst:213 +msgid "" +"The decorator also provides a :func:`!cache_clear` function for clearing or " +"invalidating the cache." +msgstr "" + +#: ../../library/functools.rst:216 +msgid "" +"The original underlying function is accessible through " +"the :attr:`__wrapped__` attribute. This is useful for introspection, for " +"bypassing the cache, or for rewrapping the function with a different cache." +msgstr "" + +#: ../../library/functools.rst:220 +msgid "" +"The cache keeps references to the arguments and return values until they age " +"out of the cache or until the cache is cleared." +msgstr "" + +#: ../../library/functools.rst:223 +msgid "" +"If a method is cached, the ``self`` instance argument is included in the " +"cache. See :ref:`faq-cache-method-calls`" +msgstr "" + +#: ../../library/functools.rst:226 +msgid "" +"An `LRU (least recently used) cache `_ works best when the " +"most recent calls are the best predictors of upcoming calls (for example, " +"the most popular articles on a news server tend to change each day). The " +"cache's size limit assures that the cache does not grow without bound on " +"long-running processes such as web servers." +msgstr "" + +#: ../../library/functools.rst:233 +msgid "" +"In general, the LRU cache should only be used when you want to reuse " +"previously computed values. Accordingly, it doesn't make sense to cache " +"functions with side-effects, functions that need to create distinct mutable " +"objects on each call (such as generators and async functions), or impure " +"functions such as time() or random()." +msgstr "" + +#: ../../library/functools.rst:239 +msgid "Example of an LRU cache for static web content::" +msgstr "" + +#: ../../library/functools.rst:241 +msgid "" +"@lru_cache(maxsize=32)\n" +"def get_pep(num):\n" +" 'Retrieve text of a Python Enhancement Proposal'\n" +" resource = f'https://peps.python.org/pep-{num:04d}'\n" +" try:\n" +" with urllib.request.urlopen(resource) as s:\n" +" return s.read()\n" +" except urllib.error.HTTPError:\n" +" return 'Not Found'\n" +"\n" +">>> for n in 8, 290, 308, 320, 8, 218, 320, 279, 289, 320, 9991:\n" +"... pep = get_pep(n)\n" +"... print(n, len(pep))\n" +"\n" +">>> get_pep.cache_info()\n" +"CacheInfo(hits=3, misses=8, maxsize=32, currsize=8)" +msgstr "" + +#: ../../library/functools.rst:258 +msgid "" +"Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a " +"`dynamic programming `_ " +"technique::" +msgstr "" + +#: ../../library/functools.rst:264 +msgid "" +"@lru_cache(maxsize=None)\n" +"def fib(n):\n" +" if n < 2:\n" +" return n\n" +" return fib(n-1) + fib(n-2)\n" +"\n" +">>> [fib(n) for n in range(16)]\n" +"[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]\n" +"\n" +">>> fib.cache_info()\n" +"CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)" +msgstr "" + +#: ../../library/functools.rst:278 +msgid "Added the *typed* option." +msgstr "" + +#: ../../library/functools.rst:281 +msgid "Added the *user_function* option." +msgstr "" + +#: ../../library/functools.rst:284 +msgid "Added the function :func:`!cache_parameters`" +msgstr "" + +#: ../../library/functools.rst:289 +msgid "" +"Given a class defining one or more rich comparison ordering methods, this " +"class decorator supplies the rest. This simplifies the effort involved in " +"specifying all of the possible rich comparison operations:" +msgstr "" + +#: ../../library/functools.rst:293 +msgid "" +"The class must define one " +"of :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " +"or :meth:`~object.__ge__`. In addition, the class should supply " +"an :meth:`~object.__eq__` method." +msgstr "" + +#: ../../library/functools.rst:299 +msgid "" +"@total_ordering\n" +"class Student:\n" +" def _is_valid_operand(self, other):\n" +" return (hasattr(other, \"lastname\") and\n" +" hasattr(other, \"firstname\"))\n" +" def __eq__(self, other):\n" +" if not self._is_valid_operand(other):\n" +" return NotImplemented\n" +" return ((self.lastname.lower(), self.firstname.lower()) ==\n" +" (other.lastname.lower(), other.firstname.lower()))\n" +" def __lt__(self, other):\n" +" if not self._is_valid_operand(other):\n" +" return NotImplemented\n" +" return ((self.lastname.lower(), self.firstname.lower()) <\n" +" (other.lastname.lower(), other.firstname.lower()))" +msgstr "" + +#: ../../library/functools.rst:317 +msgid "" +"While this decorator makes it easy to create well behaved totally ordered " +"types, it *does* come at the cost of slower execution and more complex stack " +"traces for the derived comparison methods. If performance benchmarking " +"indicates this is a bottleneck for a given application, implementing all six " +"rich comparison methods instead is likely to provide an easy speed boost." +msgstr "" + +#: ../../library/functools.rst:326 +msgid "" +"This decorator makes no attempt to override methods that have been declared " +"in the class *or its superclasses*. Meaning that if a superclass defines a " +"comparison operator, *total_ordering* will not implement it again, even if " +"the original method is abstract." +msgstr "" + +#: ../../library/functools.rst:333 +msgid "" +"Returning ``NotImplemented`` from the underlying comparison function for " +"unrecognised types is now supported." +msgstr "" + +#: ../../library/functools.rst:339 +msgid "" +"A singleton object used as a sentinel to reserve a place for positional " +"arguments when calling :func:`partial` and :func:`partialmethod`." +msgstr "" + +#: ../../library/functools.rst:347 +msgid "" +"Return a new :ref:`partial object` which when called will " +"behave like *func* called with the positional arguments *args* and keyword " +"arguments *keywords*. If more arguments are supplied to the call, they are " +"appended to *args*. If additional keyword arguments are supplied, they " +"extend and override *keywords*. Roughly equivalent to::" +msgstr "" + +#: ../../library/functools.rst:354 +msgid "" +"def partial(func, /, *args, **keywords):\n" +" def newfunc(*more_args, **more_keywords):\n" +" return func(*args, *more_args, **(keywords | more_keywords))\n" +" newfunc.func = func\n" +" newfunc.args = args\n" +" newfunc.keywords = keywords\n" +" return newfunc" +msgstr "" + +#: ../../library/functools.rst:362 +msgid "" +"The :func:`!partial` function is used for partial function application which " +"\"freezes\" some portion of a function's arguments and/or keywords resulting " +"in a new object with a simplified signature. For example, :func:`partial` " +"can be used to create a callable that behaves like the :func:`int` function " +"where the *base* argument defaults to ``2``:" +msgstr "" + +#: ../../library/functools.rst:368 +msgid "" +">>> basetwo = partial(int, base=2)\n" +">>> basetwo.__doc__ = 'Convert base 2 string to an int.'\n" +">>> basetwo('10010')\n" +"18" +msgstr "" + +#: ../../library/functools.rst:375 +msgid "" +"If :data:`Placeholder` sentinels are present in *args*, they will be filled " +"first when :func:`!partial` is called. This makes it possible to pre-fill " +"any positional argument with a call to :func:`!partial`; without :data:`!" +"Placeholder`, only the chosen number of leading positional arguments can be " +"pre-filled." +msgstr "" + +#: ../../library/functools.rst:380 +msgid "" +"If any :data:`!Placeholder` sentinels are present, all must be filled at " +"call time:" +msgstr "" + +#: ../../library/functools.rst:382 +msgid "" +">>> say_to_world = partial(print, Placeholder, Placeholder, \"world!\")\n" +">>> say_to_world('Hello', 'dear')\n" +"Hello dear world!" +msgstr "" + +#: ../../library/functools.rst:388 +msgid "" +"Calling ``say_to_world('Hello')`` raises a :exc:`TypeError`, because only " +"one positional argument is provided, but there are two placeholders that " +"must be filled in." +msgstr "" + +#: ../../library/functools.rst:392 +msgid "" +"If :func:`!partial` is applied to an existing :func:`!partial` " +"object, :data:`!Placeholder` sentinels of the input object are filled in " +"with new positional arguments. A placeholder can be retained by inserting a " +"new :data:`!Placeholder` sentinel to the place held by a previous :data:`!" +"Placeholder`:" +msgstr "" + +#: ../../library/functools.rst:398 +msgid "" +">>> from functools import partial, Placeholder as _\n" +">>> remove = partial(str.replace, _, _, '')\n" +">>> message = 'Hello, dear dear world!'\n" +">>> remove(message, ' dear')\n" +"'Hello, world!'\n" +">>> remove_dear = partial(remove, _, ' dear')\n" +">>> remove_dear(message)\n" +"'Hello, world!'\n" +">>> remove_first_dear = partial(remove_dear, _, 1)\n" +">>> remove_first_dear(message)\n" +"'Hello, dear world!'" +msgstr "" + +#: ../../library/functools.rst:412 +msgid "" +":data:`!Placeholder` cannot be passed to :func:`!partial` as a keyword " +"argument." +msgstr "" + +#: ../../library/functools.rst:414 +msgid "Added support for :data:`Placeholder` in positional arguments." +msgstr "" + +#: ../../library/functools.rst:419 +msgid "" +"Return a new :class:`partialmethod` descriptor which behaves " +"like :class:`partial` except that it is designed to be used as a method " +"definition rather than being directly callable." +msgstr "" + +#: ../../library/functools.rst:423 +msgid "" +"*func* must be a :term:`descriptor` or a callable (objects which are both, " +"like normal functions, are handled as descriptors)." +msgstr "" + +#: ../../library/functools.rst:426 +msgid "" +"When *func* is a descriptor (such as a normal Python " +"function, :func:`classmethod`, :func:`staticmethod`, :func:`~abc.abstractmethod` " +"or another instance of :class:`partialmethod`), calls to ``__get__`` are " +"delegated to the underlying descriptor, and an appropriate :ref:`partial " +"object` returned as the result." +msgstr "" + +#: ../../library/functools.rst:432 +msgid "" +"When *func* is a non-descriptor callable, an appropriate bound method is " +"created dynamically. This behaves like a normal Python function when used as " +"a method: the *self* argument will be inserted as the first positional " +"argument, even before the *args* and *keywords* supplied to " +"the :class:`partialmethod` constructor." +msgstr "" + +#: ../../library/functools.rst:440 +msgid "" +">>> class Cell:\n" +"... def __init__(self):\n" +"... self._alive = False\n" +"... @property\n" +"... def alive(self):\n" +"... return self._alive\n" +"... def set_state(self, state):\n" +"... self._alive = bool(state)\n" +"... set_alive = partialmethod(set_state, True)\n" +"... set_dead = partialmethod(set_state, False)\n" +"...\n" +">>> c = Cell()\n" +">>> c.alive\n" +"False\n" +">>> c.set_alive()\n" +">>> c.alive\n" +"True" +msgstr "" + +#: ../../library/functools.rst:463 +msgid "" +"Apply *function* of two arguments cumulatively to the items of *iterable*, " +"from left to right, so as to reduce the iterable to a single value. For " +"example, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calculates " +"``((((1+2)+3)+4)+5)``. The left argument, *x*, is the accumulated value and " +"the right argument, *y*, is the update value from the *iterable*. If the " +"optional *initial* is present, it is placed before the items of the iterable " +"in the calculation, and serves as a default when the iterable is empty. If " +"*initial* is not given and *iterable* contains only one item, the first item " +"is returned." +msgstr "" + +#: ../../library/functools.rst:472 +msgid "Roughly equivalent to::" +msgstr "" + +#: ../../library/functools.rst:474 +msgid "" +"initial_missing = object()\n" +"\n" +"def reduce(function, iterable, /, initial=initial_missing):\n" +" it = iter(iterable)\n" +" if initial is initial_missing:\n" +" value = next(it)\n" +" else:\n" +" value = initial\n" +" for element in it:\n" +" value = function(value, element)\n" +" return value" +msgstr "" + +#: ../../library/functools.rst:486 +msgid "" +"See :func:`itertools.accumulate` for an iterator that yields all " +"intermediate values." +msgstr "" + +#: ../../library/functools.rst:489 +msgid "*initial* is now supported as a keyword argument." +msgstr "" + +#: ../../library/functools.rst:494 +msgid "" +"Transform a function into a :term:`single-dispatch ` :term:`generic function`." +msgstr "" + +#: ../../library/functools.rst:497 +msgid "" +"To define a generic function, decorate it with the ``@singledispatch`` " +"decorator. When defining a function using ``@singledispatch``, note that the " +"dispatch happens on the type of the first argument::" +msgstr "" + +#: ../../library/functools.rst:501 +msgid "" +">>> from functools import singledispatch\n" +">>> @singledispatch\n" +"... def fun(arg, verbose=False):\n" +"... if verbose:\n" +"... print(\"Let me just say,\", end=\" \")\n" +"... print(arg)" +msgstr "" + +#: ../../library/functools.rst:511 +msgid "" +"To add overloaded implementations to the function, use the :func:`!register` " +"attribute of the generic function, which can be used as a decorator. For " +"functions annotated with types, the decorator will infer the type of the " +"first argument automatically::" +msgstr "" + +#: ../../library/functools.rst:516 +msgid "" +">>> @fun.register\n" +"... def _(arg: int, verbose=False):\n" +"... if verbose:\n" +"... print(\"Strength in numbers, eh?\", end=\" \")\n" +"... print(arg)\n" +"...\n" +">>> @fun.register\n" +"... def _(arg: list, verbose=False):\n" +"... if verbose:\n" +"... print(\"Enumerate this:\")\n" +"... for i, elem in enumerate(arg):\n" +"... print(i, elem)" +msgstr "" + +#: ../../library/functools.rst:529 +msgid ":class:`typing.Union` can also be used::" +msgstr "" + +#: ../../library/functools.rst:531 +msgid "" +">>> @fun.register\n" +"... def _(arg: int | float, verbose=False):\n" +"... if verbose:\n" +"... print(\"Strength in numbers, eh?\", end=\" \")\n" +"... print(arg)\n" +"...\n" +">>> from typing import Union\n" +">>> @fun.register\n" +"... def _(arg: Union[list, set], verbose=False):\n" +"... if verbose:\n" +"... print(\"Enumerate this:\")\n" +"... for i, elem in enumerate(arg):\n" +"... print(i, elem)\n" +"..." +msgstr "" + +#: ../../library/functools.rst:546 +msgid "" +"For code which doesn't use type annotations, the appropriate type argument " +"can be passed explicitly to the decorator itself::" +msgstr "" + +#: ../../library/functools.rst:549 +msgid "" +">>> @fun.register(complex)\n" +"... def _(arg, verbose=False):\n" +"... if verbose:\n" +"... print(\"Better than complicated.\", end=\" \")\n" +"... print(arg.real, arg.imag)\n" +"..." +msgstr "" + +#: ../../library/functools.rst:556 +msgid "" +"For code that dispatches on a collections type (e.g., ``list``), but wants " +"to typehint the items of the collection (e.g., ``list[int]``), the dispatch " +"type should be passed explicitly to the decorator itself with the typehint " +"going into the function definition::" +msgstr "" + +#: ../../library/functools.rst:561 +msgid "" +">>> @fun.register(list)\n" +"... def _(arg: list[int], verbose=False):\n" +"... if verbose:\n" +"... print(\"Enumerate this:\")\n" +"... for i, elem in enumerate(arg):\n" +"... print(i, elem)" +msgstr "" + +#: ../../library/functools.rst:570 +msgid "" +"At runtime the function will dispatch on an instance of a list regardless of " +"the type contained within the list i.e. ``[1,2,3]`` will be dispatched the " +"same as ``[\"foo\", \"bar\", \"baz\"]``. The annotation provided in this " +"example is for static type checkers only and has no runtime impact." +msgstr "" + +#: ../../library/functools.rst:576 +msgid "" +"To enable registering :term:`lambdas` and pre-existing functions, " +"the :func:`~singledispatch.register` attribute can also be used in a " +"functional form::" +msgstr "" + +#: ../../library/functools.rst:579 +msgid "" +">>> def nothing(arg, verbose=False):\n" +"... print(\"Nothing.\")\n" +"...\n" +">>> fun.register(type(None), nothing)" +msgstr "" + +#: ../../library/functools.rst:584 +msgid "" +"The :func:`~singledispatch.register` attribute returns the undecorated " +"function. This enables decorator stacking, :mod:`pickling`, and the " +"creation of unit tests for each variant independently::" +msgstr "" + +#: ../../library/functools.rst:588 +msgid "" +">>> @fun.register(float)\n" +"... @fun.register(Decimal)\n" +"... def fun_num(arg, verbose=False):\n" +"... if verbose:\n" +"... print(\"Half of your number:\", end=\" \")\n" +"... print(arg / 2)\n" +"...\n" +">>> fun_num is fun\n" +"False" +msgstr "" + +#: ../../library/functools.rst:598 +msgid "" +"When called, the generic function dispatches on the type of the first " +"argument::" +msgstr "" + +#: ../../library/functools.rst:601 +msgid "" +">>> fun(\"Hello, world.\")\n" +"Hello, world.\n" +">>> fun(\"test.\", verbose=True)\n" +"Let me just say, test.\n" +">>> fun(42, verbose=True)\n" +"Strength in numbers, eh? 42\n" +">>> fun(['spam', 'spam', 'eggs', 'spam'], verbose=True)\n" +"Enumerate this:\n" +"0 spam\n" +"1 spam\n" +"2 eggs\n" +"3 spam\n" +">>> fun(None)\n" +"Nothing.\n" +">>> fun(1.23)\n" +"0.615" +msgstr "" + +#: ../../library/functools.rst:618 +msgid "" +"Where there is no registered implementation for a specific type, its method " +"resolution order is used to find a more generic implementation. The original " +"function decorated with ``@singledispatch`` is registered for the " +"base :class:`object` type, which means it is used if no better " +"implementation is found." +msgstr "" + +#: ../../library/functools.rst:624 +msgid "" +"If an implementation is registered to an :term:`abstract base class`, " +"virtual subclasses of the base class will be dispatched to that " +"implementation::" +msgstr "" + +#: ../../library/functools.rst:628 +msgid "" +">>> from collections.abc import Mapping\n" +">>> @fun.register\n" +"... def _(arg: Mapping, verbose=False):\n" +"... if verbose:\n" +"... print(\"Keys & Values\")\n" +"... for key, value in arg.items():\n" +"... print(key, \"=>\", value)\n" +"...\n" +">>> fun({\"a\": \"b\"})\n" +"a => b" +msgstr "" + +#: ../../library/functools.rst:639 +msgid "" +"To check which implementation the generic function will choose for a given " +"type, use the ``dispatch()`` attribute::" +msgstr "" + +#: ../../library/functools.rst:642 +msgid "" +">>> fun.dispatch(float)\n" +"\n" +">>> fun.dispatch(dict) # note: default implementation\n" +"" +msgstr "" + +#: ../../library/functools.rst:647 +msgid "" +"To access all registered implementations, use the read-only ``registry`` " +"attribute::" +msgstr "" + +#: ../../library/functools.rst:650 +msgid "" +">>> fun.registry.keys()\n" +"dict_keys([, , ,\n" +" , ,\n" +" ])\n" +">>> fun.registry[float]\n" +"\n" +">>> fun.registry[object]\n" +"" +msgstr "" + +#: ../../library/functools.rst:661 +msgid "" +"The :func:`~singledispatch.register` attribute now supports using type " +"annotations." +msgstr "" + +#: ../../library/functools.rst:664 +msgid "" +"The :func:`~singledispatch.register` attribute now " +"supports :class:`typing.Union` as a type annotation." +msgstr "" + +#: ../../library/functools.rst:671 +msgid "" +"Transform a method into a :term:`single-dispatch ` :term:`generic function`." +msgstr "" + +#: ../../library/functools.rst:674 +msgid "" +"To define a generic method, decorate it with the ``@singledispatchmethod`` " +"decorator. When defining a function using ``@singledispatchmethod``, note " +"that the dispatch happens on the type of the first non-*self* or non-*cls* " +"argument::" +msgstr "" + +#: ../../library/functools.rst:679 +msgid "" +"class Negator:\n" +" @singledispatchmethod\n" +" def neg(self, arg):\n" +" raise NotImplementedError(\"Cannot negate a\")\n" +"\n" +" @neg.register\n" +" def _(self, arg: int):\n" +" return -arg\n" +"\n" +" @neg.register\n" +" def _(self, arg: bool):\n" +" return not arg" +msgstr "" + +#: ../../library/functools.rst:692 +msgid "" +"``@singledispatchmethod`` supports nesting with other decorators such " +"as :func:`@classmethod`. Note that to allow for " +"``dispatcher.register``, ``singledispatchmethod`` must be the *outer most* " +"decorator. Here is the ``Negator`` class with the ``neg`` methods bound to " +"the class, rather than an instance of the class::" +msgstr "" + +#: ../../library/functools.rst:698 +msgid "" +"class Negator:\n" +" @singledispatchmethod\n" +" @classmethod\n" +" def neg(cls, arg):\n" +" raise NotImplementedError(\"Cannot negate a\")\n" +"\n" +" @neg.register\n" +" @classmethod\n" +" def _(cls, arg: int):\n" +" return -arg\n" +"\n" +" @neg.register\n" +" @classmethod\n" +" def _(cls, arg: bool):\n" +" return not arg" +msgstr "" + +#: ../../library/functools.rst:714 +msgid "" +"The same pattern can be used for other similar " +"decorators: :func:`@staticmethod`, :func:`@abstractmethod`, " +"and others." +msgstr "" + +#: ../../library/functools.rst:723 +msgid "" +"Update a *wrapper* function to look like the *wrapped* function. The " +"optional arguments are tuples to specify which attributes of the original " +"function are assigned directly to the matching attributes on the wrapper " +"function and which attributes of the wrapper function are updated with the " +"corresponding attributes from the original function. The default values for " +"these arguments are the module level constants ``WRAPPER_ASSIGNMENTS`` " +"(which assigns to the wrapper " +"function's :attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__annotations__`, :attr:`~function.__type_params__`, " +"and :attr:`~function.__doc__`, the documentation string) and " +"``WRAPPER_UPDATES`` (which updates the wrapper " +"function's :attr:`~function.__dict__`, i.e. the instance dictionary)." +msgstr "" + +#: ../../library/functools.rst:735 +msgid "" +"To allow access to the original function for introspection and other " +"purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " +"this function automatically adds a ``__wrapped__`` attribute to the wrapper " +"that refers to the function being wrapped." +msgstr "" + +#: ../../library/functools.rst:740 +msgid "" +"The main intended use for this function is in :term:`decorator` functions " +"which wrap the decorated function and return the wrapper. If the wrapper " +"function is not updated, the metadata of the returned function will reflect " +"the wrapper definition rather than the original function definition, which " +"is typically less than helpful." +msgstr "" + +#: ../../library/functools.rst:746 +msgid "" +":func:`update_wrapper` may be used with callables other than functions. Any " +"attributes named in *assigned* or *updated* that are missing from the object " +"being wrapped are ignored (i.e. this function will not attempt to set them " +"on the wrapper function). :exc:`AttributeError` is still raised if the " +"wrapper function itself is missing any attributes named in *updated*." +msgstr "" + +#: ../../library/functools.rst:752 +msgid "" +"The ``__wrapped__`` attribute is now automatically added. " +"The :attr:`~function.__annotations__` attribute is now copied by default. " +"Missing attributes no longer trigger an :exc:`AttributeError`." +msgstr "" + +#: ../../library/functools.rst:757 +msgid "" +"The ``__wrapped__`` attribute now always refers to the wrapped function, " +"even if that function defined a ``__wrapped__`` attribute. " +"(see :issue:`17482`)" +msgstr "" + +#: ../../library/functools.rst:762 +msgid "" +"The :attr:`~function.__type_params__` attribute is now copied by default." +msgstr "" + +#: ../../library/functools.rst:768 +msgid "" +"This is a convenience function for invoking :func:`update_wrapper` as a " +"function decorator when defining a wrapper function. It is equivalent to " +"``partial(update_wrapper, wrapped=wrapped, assigned=assigned, " +"updated=updated)``. For example::" +msgstr "" + +#: ../../library/functools.rst:773 +msgid "" +">>> from functools import wraps\n" +">>> def my_decorator(f):\n" +"... @wraps(f)\n" +"... def wrapper(*args, **kwds):\n" +"... print('Calling decorated function')\n" +"... return f(*args, **kwds)\n" +"... return wrapper\n" +"...\n" +">>> @my_decorator\n" +"... def example():\n" +"... \"\"\"Docstring\"\"\"\n" +"... print('Called example function')\n" +"...\n" +">>> example()\n" +"Calling decorated function\n" +"Called example function\n" +">>> example.__name__\n" +"'example'\n" +">>> example.__doc__\n" +"'Docstring'" +msgstr "" + +#: ../../library/functools.rst:794 +msgid "" +"Without the use of this decorator factory, the name of the example function " +"would have been ``'wrapper'``, and the docstring of the original :func:`!" +"example` would have been lost." +msgstr "" + +#: ../../library/functools.rst:802 +msgid ":class:`partial` Objects" +msgstr "" + +#: ../../library/functools.rst:804 +msgid "" +":class:`partial` objects are callable objects created by :func:`partial`. " +"They have three read-only attributes:" +msgstr "" + +#: ../../library/functools.rst:810 +msgid "" +"A callable object or function. Calls to the :class:`partial` object will be " +"forwarded to :attr:`func` with new arguments and keywords." +msgstr "" + +#: ../../library/functools.rst:816 +msgid "" +"The leftmost positional arguments that will be prepended to the positional " +"arguments provided to a :class:`partial` object call." +msgstr "" + +#: ../../library/functools.rst:822 +msgid "" +"The keyword arguments that will be supplied when the :class:`partial` object " +"is called." +msgstr "" + +#: ../../library/functools.rst:825 +msgid "" +":class:`partial` objects are like :ref:`function objects ` in that they are callable, weak referenceable, and can have " +"attributes. There are some important differences. For instance, " +"the :attr:`~definition.__name__` and :attr:`~definition.__doc__` attributes " +"are not created automatically." +msgstr "" diff --git a/library/gc.po b/library/gc.po new file mode 100644 index 0000000..fa25038 --- /dev/null +++ b/library/gc.po @@ -0,0 +1,484 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/gc.rst:2 +msgid ":mod:`!gc` --- Garbage Collector interface" +msgstr "" + +#: ../../library/gc.rst:12 +msgid "" +"This module provides an interface to the optional garbage collector. It " +"provides the ability to disable the collector, tune the collection " +"frequency, and set debugging options. It also provides access to " +"unreachable objects that the collector found but cannot free. Since the " +"collector supplements the reference counting already used in Python, you can " +"disable the collector if you are sure your program does not create reference " +"cycles. Automatic collection can be disabled by calling ``gc.disable()``. " +"To debug a leaking program call ``gc.set_debug(gc.DEBUG_LEAK)``. Notice that " +"this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " +"saved in gc.garbage for inspection." +msgstr "" + +#: ../../library/gc.rst:23 +msgid "The :mod:`gc` module provides the following functions:" +msgstr "" + +#: ../../library/gc.rst:28 +msgid "Enable automatic garbage collection." +msgstr "" + +#: ../../library/gc.rst:33 +msgid "Disable automatic garbage collection." +msgstr "" + +#: ../../library/gc.rst:38 +msgid "Return ``True`` if automatic collection is enabled." +msgstr "" + +#: ../../library/gc.rst:43 +msgid "" +"Perform a collection. The optional argument *generation* may be an integer " +"specifying which generation to collect (from 0 to 2). A :exc:`ValueError` " +"is raised if the generation number is invalid. The sum of collected objects " +"and uncollectable objects is returned." +msgstr "" + +#: ../../library/gc.rst:48 +msgid "" +"Calling ``gc.collect(0)`` will perform a GC collection on the young " +"generation." +msgstr "" + +#: ../../library/gc.rst:50 +msgid "" +"Calling ``gc.collect(1)`` will perform a GC collection on the young " +"generation and an increment of the old generation." +msgstr "" + +#: ../../library/gc.rst:53 +msgid "" +"Calling ``gc.collect(2)`` or ``gc.collect()`` performs a full collection" +msgstr "" + +#: ../../library/gc.rst:55 +msgid "" +"The free lists maintained for a number of built-in types are cleared " +"whenever a full collection or collection of the highest generation (2) is " +"run. Not all items in some free lists may be freed due to the particular " +"implementation, in particular :class:`float`." +msgstr "" + +#: ../../library/gc.rst:60 +msgid "" +"The effect of calling ``gc.collect()`` while the interpreter is already " +"performing a collection is undefined." +msgstr "" + +#: ../../library/gc.rst:63 +msgid "``generation=1`` performs an increment of collection." +msgstr "" + +#: ../../library/gc.rst:69 +msgid "" +"Set the garbage collection debugging flags. Debugging information will be " +"written to ``sys.stderr``. See below for a list of debugging flags which " +"can be combined using bit operations to control debugging." +msgstr "" + +#: ../../library/gc.rst:76 +msgid "Return the debugging flags currently set." +msgstr "" + +#: ../../library/gc.rst:82 +msgid "" +"Returns a list of all objects tracked by the collector, excluding the list " +"returned. If *generation* is not ``None``, return only the objects as " +"follows:" +msgstr "" + +#: ../../library/gc.rst:85 +msgid "0: All objects in the young generation" +msgstr "" + +#: ../../library/gc.rst:86 +msgid "1: No objects, as there is no generation 1 (as of Python 3.14)" +msgstr "" + +#: ../../library/gc.rst:87 +msgid "2: All objects in the old generation" +msgstr "" + +#: ../../library/gc.rst:89 +msgid "New *generation* parameter." +msgstr "" + +#: ../../library/gc.rst:92 +msgid "Generation 1 is removed" +msgstr "" + +#: ../../library/gc.rst:95 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " +"``generation``." +msgstr "" + +#: ../../library/gc.rst:99 +msgid "" +"Return a list of three per-generation dictionaries containing collection " +"statistics since interpreter start. The number of keys may change in the " +"future, but currently each dictionary will contain the following items:" +msgstr "" + +#: ../../library/gc.rst:104 +msgid "``collections`` is the number of times this generation was collected;" +msgstr "" + +#: ../../library/gc.rst:106 +msgid "" +"``collected`` is the total number of objects collected inside this " +"generation;" +msgstr "" + +#: ../../library/gc.rst:109 +msgid "" +"``uncollectable`` is the total number of objects which were found to be " +"uncollectable (and were therefore moved to the :data:`garbage` list) inside " +"this generation." +msgstr "" + +#: ../../library/gc.rst:118 +msgid "" +"Set the garbage collection thresholds (the collection frequency). Setting " +"*threshold0* to zero disables collection." +msgstr "" + +#: ../../library/gc.rst:121 +msgid "" +"The GC classifies objects into two generations depending on whether they " +"have survived a collection. New objects are placed in the young generation. " +"If an object survives a collection it is moved into the old generation." +msgstr "" + +#: ../../library/gc.rst:125 +msgid "" +"In order to decide when to run, the collector keeps track of the number of " +"object allocations and deallocations since the last collection. When the " +"number of allocations minus the number of deallocations exceeds " +"*threshold0*, collection starts. For each collection, all the objects in the " +"young generation and some fraction of the old generation is collected." +msgstr "" + +#: ../../library/gc.rst:131 +msgid "" +"In the free-threaded build, the increase in process memory usage is also " +"checked before running the collector. If the memory usage has not increased " +"by 10% since the last collection and the net number of object allocations " +"has not exceeded 40 times *threshold0*, the collection is not run." +msgstr "" + +#: ../../library/gc.rst:136 +msgid "" +"The fraction of the old generation that is collected is **inversely** " +"proportional to *threshold1*. The larger *threshold1* is, the slower objects " +"in the old generation are collected. For the default value of 10, 1% of the " +"old generation is scanned during each collection." +msgstr "" + +#: ../../library/gc.rst:141 +msgid "*threshold2* is ignored." +msgstr "" + +#: ../../library/gc.rst:143 +msgid "" +"See `Garbage collector design `_ for more information." +msgstr "" + +#: ../../library/gc.rst:145 +msgid "*threshold2* is ignored" +msgstr "" + +#: ../../library/gc.rst:151 +msgid "" +"Return the current collection counts as a tuple of ``(count0, count1, " +"count2)``." +msgstr "" + +#: ../../library/gc.rst:157 +msgid "" +"Return the current collection thresholds as a tuple of ``(threshold0, " +"threshold1, threshold2)``." +msgstr "" + +#: ../../library/gc.rst:163 +msgid "" +"Return the list of objects that directly refer to any of objs. This function " +"will only locate those containers which support garbage collection; " +"extension types which do refer to other objects but do not support garbage " +"collection will not be found." +msgstr "" + +#: ../../library/gc.rst:168 +msgid "" +"Note that objects which have already been dereferenced, but which live in " +"cycles and have not yet been collected by the garbage collector can be " +"listed among the resulting referrers. To get only currently live objects, " +"call :func:`collect` before calling :func:`get_referrers`." +msgstr "" + +#: ../../library/gc.rst:174 +msgid "" +"Care must be taken when using objects returned by :func:`get_referrers` " +"because some of them could still be under construction and hence in a " +"temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " +"other than debugging." +msgstr "" + +#: ../../library/gc.rst:179 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referrers`` with " +"argument ``objs``." +msgstr "" + +#: ../../library/gc.rst:184 +msgid "" +"Return a list of objects directly referred to by any of the arguments. The " +"referents returned are those objects visited by the arguments' C-" +"level :c:member:`~PyTypeObject.tp_traverse` methods (if any), and may not be " +"all objects actually directly " +"reachable. :c:member:`~PyTypeObject.tp_traverse` methods are supported only " +"by objects that support garbage collection, and are only required to visit " +"objects that may be involved in a cycle. So, for example, if an integer is " +"directly reachable from an argument, that integer object may or may not " +"appear in the result list." +msgstr "" + +#: ../../library/gc.rst:192 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referents`` with " +"argument ``objs``." +msgstr "" + +#: ../../library/gc.rst:196 +msgid "" +"Returns ``True`` if the object is currently tracked by the garbage " +"collector, ``False`` otherwise. As a general rule, instances of atomic " +"types aren't tracked and instances of non-atomic types (containers, user-" +"defined objects...) are. However, some type-specific optimizations can be " +"present in order to suppress the garbage collector footprint of simple " +"instances (e.g. dicts containing only atomic keys and values)::" +msgstr "" + +#: ../../library/gc.rst:203 +msgid "" +">>> gc.is_tracked(0)\n" +"False\n" +">>> gc.is_tracked(\"a\")\n" +"False\n" +">>> gc.is_tracked([])\n" +"True\n" +">>> gc.is_tracked({})\n" +"False\n" +">>> gc.is_tracked({\"a\": 1})\n" +"True" +msgstr "" + +#: ../../library/gc.rst:219 +msgid "" +"Returns ``True`` if the given object has been finalized by the garbage " +"collector, ``False`` otherwise. ::" +msgstr "" + +#: ../../library/gc.rst:222 +msgid "" +">>> x = None\n" +">>> class Lazarus:\n" +"... def __del__(self):\n" +"... global x\n" +"... x = self\n" +"...\n" +">>> lazarus = Lazarus()\n" +">>> gc.is_finalized(lazarus)\n" +"False\n" +">>> del lazarus\n" +">>> gc.is_finalized(x)\n" +"True" +msgstr "" + +#: ../../library/gc.rst:240 +msgid "" +"Freeze all the objects tracked by the garbage collector; move them to a " +"permanent generation and ignore them in all the future collections." +msgstr "" + +#: ../../library/gc.rst:243 +msgid "" +"If a process will ``fork()`` without ``exec()``, avoiding unnecessary copy-" +"on-write in child processes will maximize memory sharing and reduce overall " +"memory usage. This requires both avoiding creation of freed \"holes\" in " +"memory pages in the parent process and ensuring that GC collections in child " +"processes won't touch the ``gc_refs`` counter of long-lived objects " +"originating in the parent process. To accomplish both, call ``gc.disable()`` " +"early in the parent process, ``gc.freeze()`` right before ``fork()``, and " +"``gc.enable()`` early in child processes." +msgstr "" + +#: ../../library/gc.rst:257 +msgid "" +"Unfreeze the objects in the permanent generation, put them back into the " +"oldest generation." +msgstr "" + +#: ../../library/gc.rst:265 +msgid "Return the number of objects in the permanent generation." +msgstr "" + +#: ../../library/gc.rst:270 +msgid "" +"The following variables are provided for read-only access (you can mutate " +"the values but should not rebind them):" +msgstr "" + +#: ../../library/gc.rst:275 +msgid "" +"A list of objects which the collector found to be unreachable but could not " +"be freed (uncollectable objects). Starting with Python 3.4, this list " +"should be empty most of the time, except when using instances of C extension " +"types with a non-``NULL`` ``tp_del`` slot." +msgstr "" + +#: ../../library/gc.rst:280 +msgid "" +"If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " +"to this list rather than freed." +msgstr "" + +#: ../../library/gc.rst:283 +msgid "" +"If this list is non-empty at :term:`interpreter shutdown`, " +"a :exc:`ResourceWarning` is emitted, which is silent by default. " +"If :const:`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable " +"objects are printed." +msgstr "" + +#: ../../library/gc.rst:289 +msgid "" +"Following :pep:`442`, objects with a :meth:`~object.__del__` method don't " +"end up in :data:`gc.garbage` anymore." +msgstr "" + +#: ../../library/gc.rst:295 +msgid "" +"A list of callbacks that will be invoked by the garbage collector before and " +"after collection. The callbacks will be called with two arguments, *phase* " +"and *info*." +msgstr "" + +#: ../../library/gc.rst:299 +msgid "*phase* can be one of two values:" +msgstr "" + +#: ../../library/gc.rst:301 +msgid "\"start\": The garbage collection is about to start." +msgstr "" + +#: ../../library/gc.rst:303 +msgid "\"stop\": The garbage collection has finished." +msgstr "" + +#: ../../library/gc.rst:305 +msgid "" +"*info* is a dict providing more information for the callback. The following " +"keys are currently defined:" +msgstr "" + +#: ../../library/gc.rst:308 +msgid "\"generation\": The oldest generation being collected." +msgstr "" + +#: ../../library/gc.rst:310 +msgid "" +"\"collected\": When *phase* is \"stop\", the number of objects successfully " +"collected." +msgstr "" + +#: ../../library/gc.rst:313 +msgid "" +"\"uncollectable\": When *phase* is \"stop\", the number of objects that " +"could not be collected and were put in :data:`garbage`." +msgstr "" + +#: ../../library/gc.rst:316 +msgid "" +"Applications can add their own callbacks to this list. The primary use " +"cases are:" +msgstr "" + +#: ../../library/gc.rst:319 +msgid "" +"Gathering statistics about garbage collection, such as how often various " +"generations are collected, and how long the collection takes." +msgstr "" + +#: ../../library/gc.rst:323 +msgid "" +"Allowing applications to identify and clear their own uncollectable types " +"when they appear in :data:`garbage`." +msgstr "" + +#: ../../library/gc.rst:329 +msgid "The following constants are provided for use with :func:`set_debug`:" +msgstr "" + +#: ../../library/gc.rst:334 +msgid "" +"Print statistics during collection. This information can be useful when " +"tuning the collection frequency." +msgstr "" + +#: ../../library/gc.rst:340 +msgid "Print information on collectable objects found." +msgstr "" + +#: ../../library/gc.rst:345 +msgid "" +"Print information of uncollectable objects found (objects which are not " +"reachable but cannot be freed by the collector). These objects will be " +"added to the ``garbage`` list." +msgstr "" + +#: ../../library/gc.rst:349 +msgid "" +"Also print the contents of the :data:`garbage` list at :term:`interpreter " +"shutdown`, if it isn't empty." +msgstr "" + +#: ../../library/gc.rst:355 +msgid "" +"When set, all unreachable objects found will be appended to *garbage* rather " +"than being freed. This can be useful for debugging a leaking program." +msgstr "" + +#: ../../library/gc.rst:361 +msgid "" +"The debugging flags necessary for the collector to print information about a " +"leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " +"DEBUG_SAVEALL``)." +msgstr "" diff --git a/library/getopt.po b/library/getopt.po new file mode 100644 index 0000000..4167d63 --- /dev/null +++ b/library/getopt.po @@ -0,0 +1,321 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/getopt.rst:2 +msgid ":mod:`!getopt` --- C-style parser for command line options" +msgstr "" + +#: ../../library/getopt.rst:8 +msgid "**Source code:** :source:`Lib/getopt.py`" +msgstr "" + +#: ../../library/getopt.rst:12 +msgid "" +"This module is considered feature complete. A more declarative and " +"extensible alternative to this API is provided in the :mod:`optparse` " +"module. Further functional enhancements for command line parameter " +"processing are provided either as third party modules on PyPI, or else as " +"features in the :mod:`argparse` module." +msgstr "" + +#: ../../library/getopt.rst:20 +msgid "" +"This module helps scripts to parse the command line arguments in " +"``sys.argv``. It supports the same conventions as the Unix :c:func:`!getopt` " +"function (including the special meanings of arguments of the form '``-``' " +"and '``--``'). Long options similar to those supported by GNU software may " +"be used as well via an optional third argument." +msgstr "" + +#: ../../library/getopt.rst:26 +msgid "" +"Users who are unfamiliar with the Unix :c:func:`!getopt` function should " +"consider using the :mod:`argparse` module instead. Users who are familiar " +"with the Unix :c:func:`!getopt` function, but would like to get equivalent " +"behavior while writing less code and getting better help and error messages " +"should consider using the :mod:`optparse` module. See :ref:`choosing-an-" +"argument-parser` for additional details." +msgstr "" + +#: ../../library/getopt.rst:33 +msgid "This module provides two functions and an exception:" +msgstr "" + +#: ../../library/getopt.rst:39 +msgid "" +"Parses command line options and parameter list. *args* is the argument list " +"to be parsed, without the leading reference to the running program. " +"Typically, this means ``sys.argv[1:]``. *shortopts* is the string of option " +"letters that the script wants to recognize, with options that require an " +"argument followed by a colon (``':'``) and options that accept an optional " +"argument followed by two colons (``'::'``); i.e., the same format that " +"Unix :c:func:`!getopt` uses." +msgstr "" + +#: ../../library/getopt.rst:48 +msgid "" +"Unlike GNU :c:func:`!getopt`, after a non-option argument, all further " +"arguments are considered also non-options. This is similar to the way non-" +"GNU Unix systems work." +msgstr "" + +#: ../../library/getopt.rst:52 +msgid "" +"*longopts*, if specified, must be a list of strings with the names of the " +"long options which should be supported. The leading ``'--'`` characters " +"should not be included in the option name. Long options which require an " +"argument should be followed by an equal sign (``'='``). Long options which " +"accept an optional argument should be followed by an equal sign and question " +"mark (``'=?'``). To accept only long options, *shortopts* should be an empty " +"string. Long options on the command line can be recognized so long as they " +"provide a prefix of the option name that matches exactly one of the accepted " +"options. For example, if *longopts* is ``['foo', 'frob']``, the option ``--" +"fo`` will match as ``--foo``, but ``--f`` will not match uniquely, " +"so :exc:`GetoptError` will be raised." +msgstr "" + +#: ../../library/getopt.rst:65 +msgid "" +"The return value consists of two elements: the first is a list of ``(option, " +"value)`` pairs; the second is the list of program arguments left after the " +"option list was stripped (this is a trailing slice of *args*). Each option-" +"and-value pair returned has the option as its first element, prefixed with a " +"hyphen for short options (e.g., ``'-x'``) or two hyphens for long options " +"(e.g., ``'--long-option'``), and the option argument as its second element, " +"or an empty string if the option has no argument. The options occur in the " +"list in the same order in which they were found, thus allowing multiple " +"occurrences. Long and short options may be mixed." +msgstr "" + +#: ../../library/getopt.rst:75 +msgid "Optional arguments are supported." +msgstr "" + +#: ../../library/getopt.rst:81 +msgid "" +"This function works like :func:`getopt`, except that GNU style scanning mode " +"is used by default. This means that option and non-option arguments may be " +"intermixed. The :func:`getopt` function stops processing options as soon as " +"a non-option argument is encountered." +msgstr "" + +#: ../../library/getopt.rst:86 +msgid "" +"If the first character of the option string is ``'+'``, or if the " +"environment variable :envvar:`!POSIXLY_CORRECT` is set, then option " +"processing stops as soon as a non-option argument is encountered." +msgstr "" + +#: ../../library/getopt.rst:90 +msgid "" +"If the first character of the option string is ``'-'``, non-option arguments " +"that are followed by options are added to the list of option-and-value pairs " +"as a pair that has ``None`` as its first element and the list of non-option " +"arguments as its second element. The second element of the :func:`!" +"gnu_getopt` result is a list of program arguments after the last option." +msgstr "" + +#: ../../library/getopt.rst:97 +msgid "" +"Support for returning intermixed options and non-option arguments in order." +msgstr "" + +#: ../../library/getopt.rst:103 +msgid "" +"This is raised when an unrecognized option is found in the argument list or " +"when an option requiring an argument is given none. The argument to the " +"exception is a string indicating the cause of the error. For long options, " +"an argument given to an option which does not require one will also cause " +"this exception to be raised. The attributes :attr:`!msg` and :attr:`!opt` " +"give the error message and related option; if there is no specific option to " +"which the exception relates, :attr:`!opt` is an empty string." +msgstr "" + +#: ../../library/getopt.rst:114 +msgid "Alias for :exc:`GetoptError`; for backward compatibility." +msgstr "" + +#: ../../library/getopt.rst:116 +msgid "An example using only Unix style options:" +msgstr "" + +#: ../../library/getopt.rst:118 +msgid "" +">>> import getopt\n" +">>> args = '-a -b -cfoo -d bar a1 a2'.split()\n" +">>> args\n" +"['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']\n" +">>> optlist, args = getopt.getopt(args, 'abc:d:')\n" +">>> optlist\n" +"[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]\n" +">>> args\n" +"['a1', 'a2']" +msgstr "" + +#: ../../library/getopt.rst:130 +msgid "Using long option names is equally easy:" +msgstr "" + +#: ../../library/getopt.rst:132 +msgid "" +">>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'\n" +">>> args = s.split()\n" +">>> args\n" +"['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', " +"'a2']\n" +">>> optlist, args = getopt.getopt(args, 'x', [\n" +"... 'condition=', 'output-file=', 'testing'])\n" +">>> optlist\n" +"[('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-" +"x', '')]\n" +">>> args\n" +"['a1', 'a2']" +msgstr "" + +#: ../../library/getopt.rst:145 +msgid "Optional arguments should be specified explicitly:" +msgstr "" + +#: ../../library/getopt.rst:147 +msgid "" +">>> s = '-Con -C --color=off --color a1 a2'\n" +">>> args = s.split()\n" +">>> args\n" +"['-Con', '-C', '--color=off', '--color', 'a1', 'a2']\n" +">>> optlist, args = getopt.getopt(args, 'C::', ['color=?'])\n" +">>> optlist\n" +"[('-C', 'on'), ('-C', ''), ('--color', 'off'), ('--color', '')]\n" +">>> args\n" +"['a1', 'a2']" +msgstr "" + +#: ../../library/getopt.rst:159 +msgid "The order of options and non-option arguments can be preserved:" +msgstr "" + +#: ../../library/getopt.rst:161 +msgid "" +">>> s = 'a1 -x a2 a3 a4 --long a5 a6'\n" +">>> args = s.split()\n" +">>> args\n" +"['a1', '-x', 'a2', 'a3', 'a4', '--long', 'a5', 'a6']\n" +">>> optlist, args = getopt.gnu_getopt(args, '-x:', ['long='])\n" +">>> optlist\n" +"[(None, ['a1']), ('-x', 'a2'), (None, ['a3', 'a4']), ('--long', 'a5')]\n" +">>> args\n" +"['a6']" +msgstr "" + +#: ../../library/getopt.rst:173 +msgid "In a script, typical usage is something like this:" +msgstr "" + +#: ../../library/getopt.rst:175 +msgid "" +"import getopt, sys\n" +"\n" +"def main():\n" +" try:\n" +" opts, args = getopt.getopt(sys.argv[1:], \"ho:v\", [\"help\", " +"\"output=\"])\n" +" except getopt.GetoptError as err:\n" +" # print help information and exit:\n" +" print(err) # will print something like \"option -a not " +"recognized\"\n" +" usage()\n" +" sys.exit(2)\n" +" output = None\n" +" verbose = False\n" +" for o, a in opts:\n" +" if o == \"-v\":\n" +" verbose = True\n" +" elif o in (\"-h\", \"--help\"):\n" +" usage()\n" +" sys.exit()\n" +" elif o in (\"-o\", \"--output\"):\n" +" output = a\n" +" else:\n" +" assert False, \"unhandled option\"\n" +" process(args, output=output, verbose=verbose)\n" +"\n" +"if __name__ == \"__main__\":\n" +" main()" +msgstr "" + +#: ../../library/getopt.rst:204 +msgid "" +"Note that an equivalent command line interface could be produced with less " +"code and more informative help and error messages by using " +"the :mod:`optparse` module:" +msgstr "" + +#: ../../library/getopt.rst:207 +msgid "" +"import optparse\n" +"\n" +"if __name__ == '__main__':\n" +" parser = optparse.OptionParser()\n" +" parser.add_option('-o', '--output')\n" +" parser.add_option('-v', dest='verbose', action='store_true')\n" +" opts, args = parser.parse_args()\n" +" process(args, output=opts.output, verbose=opts.verbose)" +msgstr "" + +#: ../../library/getopt.rst:218 +msgid "" +"A roughly equivalent command line interface for this case can also be " +"produced by using the :mod:`argparse` module:" +msgstr "" + +#: ../../library/getopt.rst:221 +msgid "" +"import argparse\n" +"\n" +"if __name__ == '__main__':\n" +" parser = argparse.ArgumentParser()\n" +" parser.add_argument('-o', '--output')\n" +" parser.add_argument('-v', dest='verbose', action='store_true')\n" +" parser.add_argument('rest', nargs='*')\n" +" args = parser.parse_args()\n" +" process(args.rest, output=args.output, verbose=args.verbose)" +msgstr "" + +#: ../../library/getopt.rst:233 +msgid "" +"See :ref:`choosing-an-argument-parser` for details on how the ``argparse`` " +"version of this code differs in behaviour from the ``optparse`` (and " +"``getopt``) version." +msgstr "" + +#: ../../library/getopt.rst:239 +msgid "Module :mod:`optparse`" +msgstr "" + +#: ../../library/getopt.rst:240 +msgid "Declarative command line option parsing." +msgstr "" + +#: ../../library/getopt.rst:242 +msgid "Module :mod:`argparse`" +msgstr "" + +#: ../../library/getopt.rst:243 +msgid "More opinionated command line option and argument parsing library." +msgstr "" diff --git a/library/getpass.po b/library/getpass.po new file mode 100644 index 0000000..92870a9 --- /dev/null +++ b/library/getpass.po @@ -0,0 +1,103 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/getpass.rst:2 +msgid ":mod:`!getpass` --- Portable password input" +msgstr "" + +#: ../../library/getpass.rst:11 +msgid "**Source code:** :source:`Lib/getpass.py`" +msgstr "" + +#: ../../includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: ../../includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: ../../library/getpass.rst:17 +msgid "The :mod:`getpass` module provides two functions:" +msgstr "" + +#: ../../library/getpass.rst:21 +msgid "" +"Prompt the user for a password without echoing. The user is prompted using " +"the string *prompt*, which defaults to ``'Password: '``. On Unix, the " +"prompt is written to the file-like object *stream* using the replace error " +"handler if needed. *stream* defaults to the controlling terminal (:file:`/" +"dev/tty`) or if that is unavailable to ``sys.stderr`` (this argument is " +"ignored on Windows)." +msgstr "" + +#: ../../library/getpass.rst:28 +msgid "" +"The *echo_char* argument controls how user input is displayed while typing. " +"If *echo_char* is ``None`` (default), input remains hidden. Otherwise, " +"*echo_char* must be a printable ASCII string and each typed character is " +"replaced by it. For example, ``echo_char='*'`` will display asterisks " +"instead of the actual input." +msgstr "" + +#: ../../library/getpass.rst:34 +msgid "" +"If echo free input is unavailable getpass() falls back to printing a warning " +"message to *stream* and reading from ``sys.stdin`` and issuing " +"a :exc:`GetPassWarning`." +msgstr "" + +#: ../../library/getpass.rst:39 +msgid "" +"If you call getpass from within IDLE, the input may be done in the terminal " +"you launched IDLE from rather than the idle window itself." +msgstr "" + +#: ../../library/getpass.rst:42 +msgid "Added the *echo_char* parameter for keyboard feedback." +msgstr "" + +#: ../../library/getpass.rst:47 +msgid "A :exc:`UserWarning` subclass issued when password input may be echoed." +msgstr "" + +#: ../../library/getpass.rst:52 +msgid "Return the \"login name\" of the user." +msgstr "" + +#: ../../library/getpass.rst:54 +msgid "" +"This function checks the environment " +"variables :envvar:`LOGNAME`, :envvar:`USER`, :envvar:`!LNAME` " +"and :envvar:`USERNAME`, in order, and returns the value of the first one " +"which is set to a non-empty string. If none are set, the login name from " +"the password database is returned on systems which support the :mod:`pwd` " +"module, otherwise, an :exc:`OSError` is raised." +msgstr "" + +#: ../../library/getpass.rst:61 +msgid "In general, this function should be preferred over :func:`os.getlogin`." +msgstr "" + +#: ../../library/getpass.rst:63 +msgid "Previously, various exceptions beyond just :exc:`OSError` were raised." +msgstr "" diff --git a/library/gettext.po b/library/gettext.po new file mode 100644 index 0000000..aa401db --- /dev/null +++ b/library/gettext.po @@ -0,0 +1,905 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/gettext.rst:2 +msgid ":mod:`!gettext` --- Multilingual internationalization services" +msgstr "" + +#: ../../library/gettext.rst:10 +msgid "**Source code:** :source:`Lib/gettext.py`" +msgstr "" + +#: ../../library/gettext.rst:14 +msgid "" +"The :mod:`gettext` module provides internationalization (I18N) and " +"localization (L10N) services for your Python modules and applications. It " +"supports both the GNU :program:`gettext` message catalog API and a higher " +"level, class-based API that may be more appropriate for Python files. The " +"interface described below allows you to write your module and application " +"messages in one natural language, and provide a catalog of translated " +"messages for running under different natural languages." +msgstr "" + +#: ../../library/gettext.rst:22 +msgid "" +"Some hints on localizing your Python modules and applications are also given." +msgstr "" + +#: ../../library/gettext.rst:26 +msgid "GNU :program:`gettext` API" +msgstr "" + +#: ../../library/gettext.rst:28 +msgid "" +"The :mod:`gettext` module defines the following API, which is very similar " +"to the GNU :program:`gettext` API. If you use this API you will affect the " +"translation of your entire application globally. Often this is what you " +"want if your application is monolingual, with the choice of language " +"dependent on the locale of your user. If you are localizing a Python " +"module, or if your application needs to switch languages on the fly, you " +"probably want to use the class-based API instead." +msgstr "" + +#: ../../library/gettext.rst:39 +msgid "" +"Bind the *domain* to the locale directory *localedir*. More " +"concretely, :mod:`gettext` will look for binary :file:`.mo` files for the " +"given domain using the path (on Unix): :file:`{localedir}/{language}/" +"LC_MESSAGES/{domain}.mo`, where *language* is searched for in the " +"environment " +"variables :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, " +"and :envvar:`LANG` respectively." +msgstr "" + +#: ../../library/gettext.rst:45 +msgid "" +"If *localedir* is omitted or ``None``, then the current binding for *domain* " +"is returned. [#]_" +msgstr "" + +#: ../../library/gettext.rst:51 +msgid "" +"Change or query the current global domain. If *domain* is ``None``, then " +"the current global domain is returned, otherwise the global domain is set to " +"*domain*, which is returned." +msgstr "" + +#: ../../library/gettext.rst:59 +msgid "" +"Return the localized translation of *message*, based on the current global " +"domain, language, and locale directory. This function is usually aliased " +"as :func:`!_` in the local namespace (see examples below)." +msgstr "" + +#: ../../library/gettext.rst:66 +msgid "" +"Like :func:`.gettext`, but look the message up in the specified *domain*." +msgstr "" + +#: ../../library/gettext.rst:71 +msgid "" +"Like :func:`.gettext`, but consider plural forms. If a translation is found, " +"apply the plural formula to *n*, and return the resulting message (some " +"languages have more than two plural forms). If no translation is found, " +"return *singular* if *n* is 1; return *plural* otherwise." +msgstr "" + +#: ../../library/gettext.rst:76 +msgid "" +"The Plural formula is taken from the catalog header. It is a C or Python " +"expression that has a free variable *n*; the expression evaluates to the " +"index of the plural in the catalog. See `the GNU gettext documentation " +"`__ for the " +"precise syntax to be used in :file:`.po` files and the formulas for a " +"variety of languages." +msgstr "" + +#: ../../library/gettext.rst:86 +msgid "" +"Like :func:`ngettext`, but look the message up in the specified *domain*." +msgstr "" + +#: ../../library/gettext.rst:94 +msgid "" +"Similar to the corresponding functions without the ``p`` in the prefix (that " +"is, :func:`gettext`, :func:`dgettext`, :func:`ngettext`, :func:`dngettext`), " +"but the translation is restricted to the given message *context*." +msgstr "" + +#: ../../library/gettext.rst:101 +msgid "" +"Note that GNU :program:`gettext` also defines a :func:`!dcgettext` method, " +"but this was deemed not useful and so it is currently unimplemented." +msgstr "" + +#: ../../library/gettext.rst:104 +msgid "Here's an example of typical usage for this API::" +msgstr "" + +#: ../../library/gettext.rst:106 +msgid "" +"import gettext\n" +"gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')\n" +"gettext.textdomain('myapplication')\n" +"_ = gettext.gettext\n" +"# ...\n" +"print(_('This is a translatable string.'))" +msgstr "" + +#: ../../library/gettext.rst:115 +msgid "Class-based API" +msgstr "" + +#: ../../library/gettext.rst:117 +msgid "" +"The class-based API of the :mod:`gettext` module gives you more flexibility " +"and greater convenience than the GNU :program:`gettext` API. It is the " +"recommended way of localizing your Python applications and modules. :mod:`!" +"gettext` defines a :class:`GNUTranslations` class which implements the " +"parsing of GNU :file:`.mo` format files, and has methods for returning " +"strings. Instances of this class can also install themselves in the built-in " +"namespace as the function :func:`!_`." +msgstr "" + +#: ../../library/gettext.rst:127 +msgid "" +"This function implements the standard :file:`.mo` file search algorithm. It " +"takes a *domain*, identical to what :func:`textdomain` takes. Optional " +"*localedir* is as in :func:`bindtextdomain`. Optional *languages* is a list " +"of strings, where each string is a language code." +msgstr "" + +#: ../../library/gettext.rst:132 +msgid "" +"If *localedir* is not given, then the default system locale directory is " +"used. [#]_ If *languages* is not given, then the following environment " +"variables are " +"searched: :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, " +"and :envvar:`LANG`. The first one returning a non-empty value is used for " +"the *languages* variable. The environment variables should contain a colon " +"separated list of languages, which will be split on the colon to produce the " +"expected list of language code strings." +msgstr "" + +#: ../../library/gettext.rst:140 +msgid "" +":func:`find` then expands and normalizes the languages, and then iterates " +"through them, searching for an existing file built of these components:" +msgstr "" + +#: ../../library/gettext.rst:143 +msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" +msgstr "" + +#: ../../library/gettext.rst:145 +msgid "" +"The first such file name that exists is returned by :func:`find`. If no such " +"file is found, then ``None`` is returned. If *all* is given, it returns a " +"list of all file names, in the order in which they appear in the languages " +"list or the environment variables." +msgstr "" + +#: ../../library/gettext.rst:153 +msgid "" +"Return a ``*Translations`` instance based on the *domain*, *localedir*, and " +"*languages*, which are first passed to :func:`find` to get a list of the " +"associated :file:`.mo` file paths. Instances with identical :file:`.mo` " +"file names are cached. The actual class instantiated is *class_* if " +"provided, otherwise :class:`GNUTranslations`. The class's constructor must " +"take a single :term:`file object` argument." +msgstr "" + +#: ../../library/gettext.rst:160 +msgid "" +"If multiple files are found, later files are used as fallbacks for earlier " +"ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " +"translation object from the cache; the actual instance data is still shared " +"with the cache." +msgstr "" + +#: ../../library/gettext.rst:165 +msgid "" +"If no :file:`.mo` file is found, this function raises :exc:`OSError` if " +"*fallback* is false (which is the default), and returns " +"a :class:`NullTranslations` instance if *fallback* is true." +msgstr "" + +#: ../../library/gettext.rst:169 +msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." +msgstr "" + +#: ../../library/gettext.rst:172 +msgid "*codeset* parameter is removed." +msgstr "" + +#: ../../library/gettext.rst:177 +msgid "" +"This installs the function :func:`!_` in Python's builtins namespace, based " +"on *domain* and *localedir* which are passed to the " +"function :func:`translation`." +msgstr "" + +#: ../../library/gettext.rst:180 +msgid "" +"For the *names* parameter, please see the description of the translation " +"object's :meth:`~NullTranslations.install` method." +msgstr "" + +#: ../../library/gettext.rst:183 +msgid "" +"As seen below, you usually mark the strings in your application that are " +"candidates for translation, by wrapping them in a call to the :func:`!_` " +"function, like this::" +msgstr "" + +#: ../../library/gettext.rst:187 +msgid "print(_('This string will be translated.'))" +msgstr "" + +#: ../../library/gettext.rst:189 +msgid "" +"For convenience, you want the :func:`!_` function to be installed in " +"Python's builtins namespace, so it is easily accessible in all modules of " +"your application." +msgstr "" + +#: ../../library/gettext.rst:193 +msgid "*names* is now a keyword-only parameter." +msgstr "" + +#: ../../library/gettext.rst:197 +msgid "The :class:`NullTranslations` class" +msgstr "" + +#: ../../library/gettext.rst:199 +msgid "" +"Translation classes are what actually implement the translation of original " +"source file message strings to translated message strings. The base class " +"used by all translation classes is :class:`NullTranslations`; this provides " +"the basic interface you can use to write your own specialized translation " +"classes. Here are the methods of :class:`!NullTranslations`:" +msgstr "" + +#: ../../library/gettext.rst:208 +msgid "" +"Takes an optional :term:`file object` *fp*, which is ignored by the base " +"class. Initializes \"protected\" instance variables *_info* and *_charset* " +"which are set by derived classes, as well as *_fallback*, which is set " +"through :meth:`add_fallback`. It then calls ``self._parse(fp)`` if *fp* is " +"not ``None``." +msgstr "" + +#: ../../library/gettext.rst:216 +msgid "" +"No-op in the base class, this method takes file object *fp*, and reads the " +"data from the file, initializing its message catalog. If you have an " +"unsupported message catalog file format, you should override this method to " +"parse your format." +msgstr "" + +#: ../../library/gettext.rst:224 +msgid "" +"Add *fallback* as the fallback object for the current translation object. A " +"translation object should consult the fallback if it cannot provide a " +"translation for a given message." +msgstr "" + +#: ../../library/gettext.rst:231 +msgid "" +"If a fallback has been set, forward :meth:`!gettext` to the fallback. " +"Otherwise, return *message*. Overridden in derived classes." +msgstr "" + +#: ../../library/gettext.rst:237 +msgid "" +"If a fallback has been set, forward :meth:`!ngettext` to the fallback. " +"Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " +"Overridden in derived classes." +msgstr "" + +#: ../../library/gettext.rst:244 +msgid "" +"If a fallback has been set, forward :meth:`pgettext` to the fallback. " +"Otherwise, return the translated message. Overridden in derived classes." +msgstr "" + +#: ../../library/gettext.rst:252 +msgid "" +"If a fallback has been set, forward :meth:`npgettext` to the fallback. " +"Otherwise, return the translated message. Overridden in derived classes." +msgstr "" + +#: ../../library/gettext.rst:260 +msgid "" +"Return a dictionary containing the metadata found in the message catalog " +"file." +msgstr "" + +#: ../../library/gettext.rst:266 +msgid "Return the encoding of the message catalog file." +msgstr "" + +#: ../../library/gettext.rst:271 +msgid "" +"This method installs :meth:`.gettext` into the built-in namespace, binding " +"it to ``_``." +msgstr "" + +#: ../../library/gettext.rst:274 +msgid "" +"If the *names* parameter is given, it must be a sequence containing the " +"names of functions you want to install in the builtins namespace in addition " +"to :func:`!_`. Supported names are ``'gettext'``, ``'ngettext'``, " +"``'pgettext'``, and ``'npgettext'``." +msgstr "" + +#: ../../library/gettext.rst:279 +msgid "" +"Note that this is only one way, albeit the most convenient way, to make " +"the :func:`!_` function available to your application. Because it affects " +"the entire application globally, and specifically the built-in namespace, " +"localized modules should never install :func:`!_`. Instead, they should use " +"this code to make :func:`!_` available to their module::" +msgstr "" + +#: ../../library/gettext.rst:285 +msgid "" +"import gettext\n" +"t = gettext.translation('mymodule', ...)\n" +"_ = t.gettext" +msgstr "" + +#: ../../library/gettext.rst:289 +msgid "" +"This puts :func:`!_` only in the module's global namespace and so only " +"affects calls within this module." +msgstr "" + +#: ../../library/gettext.rst:292 +msgid "Added ``'pgettext'`` and ``'npgettext'``." +msgstr "" + +#: ../../library/gettext.rst:297 +msgid "The :class:`GNUTranslations` class" +msgstr "" + +#: ../../library/gettext.rst:299 +msgid "" +"The :mod:`!gettext` module provides one additional class derived " +"from :class:`NullTranslations`: :class:`GNUTranslations`. This class " +"overrides :meth:`!_parse` to enable reading GNU :program:`gettext` " +"format :file:`.mo` files in both big-endian and little-endian format." +msgstr "" + +#: ../../library/gettext.rst:304 +msgid "" +":class:`GNUTranslations` parses optional metadata out of the translation " +"catalog. It is convention with GNU :program:`gettext` to include metadata as " +"the translation for the empty string. This metadata is in :rfc:`822`\\ " +"-style ``key: value`` pairs, and should contain the ``Project-Id-Version`` " +"key. If the key ``Content-Type`` is found, then the ``charset`` property is " +"used to initialize the \"protected\" :attr:`!_charset` instance variable, " +"defaulting to ``None`` if not found. If the charset encoding is specified, " +"then all message ids and message strings read from the catalog are converted " +"to Unicode using this encoding, else ASCII is assumed." +msgstr "" + +#: ../../library/gettext.rst:314 +msgid "" +"Since message ids are read as Unicode strings too, all ``*gettext()`` " +"methods will assume message ids as Unicode strings, not byte strings." +msgstr "" + +#: ../../library/gettext.rst:317 +msgid "" +"The entire set of key/value pairs are placed into a dictionary and set as " +"the \"protected\" :attr:`!_info` instance variable." +msgstr "" + +#: ../../library/gettext.rst:320 +msgid "" +"If the :file:`.mo` file's magic number is invalid, the major version number " +"is unexpected, or if other problems occur while reading the file, " +"instantiating a :class:`GNUTranslations` class can raise :exc:`OSError`." +msgstr "" + +#: ../../library/gettext.rst:326 +msgid "" +"The following methods are overridden from the base class implementation:" +msgstr "" + +#: ../../library/gettext.rst:330 +msgid "" +"Look up the *message* id in the catalog and return the corresponding message " +"string, as a Unicode string. If there is no entry in the catalog for the " +"*message* id, and a fallback has been set, the look up is forwarded to the " +"fallback's :meth:`~NullTranslations.gettext` method. Otherwise, the " +"*message* id is returned." +msgstr "" + +#: ../../library/gettext.rst:339 +msgid "" +"Do a plural-forms lookup of a message id. *singular* is used as the message " +"id for purposes of lookup in the catalog, while *n* is used to determine " +"which plural form to use. The returned message string is a Unicode string." +msgstr "" + +#: ../../library/gettext.rst:343 +msgid "" +"If the message id is not found in the catalog, and a fallback is specified, " +"the request is forwarded to the " +"fallback's :meth:`~NullTranslations.ngettext` method. Otherwise, when *n* " +"is 1 *singular* is returned, and *plural* is returned in all other cases." +msgstr "" + +#: ../../library/gettext.rst:348 +msgid "Here is an example::" +msgstr "" + +#: ../../library/gettext.rst:350 +msgid "" +"n = len(os.listdir('.'))\n" +"cat = GNUTranslations(somefile)\n" +"message = cat.ngettext(\n" +" 'There is %(num)d file in this directory',\n" +" 'There are %(num)d files in this directory',\n" +" n) % {'num': n}" +msgstr "" + +#: ../../library/gettext.rst:360 +msgid "" +"Look up the *context* and *message* id in the catalog and return the " +"corresponding message string, as a Unicode string. If there is no entry in " +"the catalog for the *message* id and *context*, and a fallback has been set, " +"the look up is forwarded to the fallback's :meth:`pgettext` method. " +"Otherwise, the *message* id is returned." +msgstr "" + +#: ../../library/gettext.rst:371 +msgid "" +"Do a plural-forms lookup of a message id. *singular* is used as the message " +"id for purposes of lookup in the catalog, while *n* is used to determine " +"which plural form to use." +msgstr "" + +#: ../../library/gettext.rst:375 +msgid "" +"If the message id for *context* is not found in the catalog, and a fallback " +"is specified, the request is forwarded to the fallback's :meth:`npgettext` " +"method. Otherwise, when *n* is 1 *singular* is returned, and *plural* is " +"returned in all other cases." +msgstr "" + +#: ../../library/gettext.rst:384 +msgid "Solaris message catalog support" +msgstr "" + +#: ../../library/gettext.rst:386 +msgid "" +"The Solaris operating system defines its own binary :file:`.mo` file format, " +"but since no documentation can be found on this format, it is not supported " +"at this time." +msgstr "" + +#: ../../library/gettext.rst:392 +msgid "The Catalog constructor" +msgstr "" + +#: ../../library/gettext.rst:396 +msgid "" +"GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " +"this version has a slightly different API. Its documented usage was::" +msgstr "" + +#: ../../library/gettext.rst:399 +msgid "" +"import gettext\n" +"cat = gettext.Catalog(domain, localedir)\n" +"_ = cat.gettext\n" +"print(_('hello world'))" +msgstr "" + +#: ../../library/gettext.rst:404 +msgid "" +"For compatibility with this older module, the function :func:`!Catalog` is " +"an alias for the :func:`translation` function described above." +msgstr "" + +#: ../../library/gettext.rst:407 +msgid "" +"One difference between this module and Henstridge's: his catalog objects " +"supported access through a mapping API, but this appears to be unused and so " +"is not currently supported." +msgstr "" + +#: ../../library/gettext.rst:414 +msgid "Internationalizing your programs and modules" +msgstr "" + +#: ../../library/gettext.rst:416 +msgid "" +"Internationalization (I18N) refers to the operation by which a program is " +"made aware of multiple languages. Localization (L10N) refers to the " +"adaptation of your program, once internationalized, to the local language " +"and cultural habits. In order to provide multilingual messages for your " +"Python programs, you need to take the following steps:" +msgstr "" + +#: ../../library/gettext.rst:422 +msgid "" +"prepare your program or module by specially marking translatable strings" +msgstr "" + +#: ../../library/gettext.rst:424 +msgid "" +"run a suite of tools over your marked files to generate raw messages catalogs" +msgstr "" + +#: ../../library/gettext.rst:426 +msgid "create language-specific translations of the message catalogs" +msgstr "" + +#: ../../library/gettext.rst:428 +msgid "" +"use the :mod:`gettext` module so that message strings are properly translated" +msgstr "" + +#: ../../library/gettext.rst:430 +msgid "" +"In order to prepare your code for I18N, you need to look at all the strings " +"in your files. Any string that needs to be translated should be marked by " +"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_ " +"`. For example::" +msgstr "" + +#: ../../library/gettext.rst:434 +msgid "" +"filename = 'mylog.txt'\n" +"message = _('writing a log message')\n" +"with open(filename, 'w') as fp:\n" +" fp.write(message)" +msgstr "" + +#: ../../library/gettext.rst:439 +msgid "" +"In this example, the string ``'writing a log message'`` is marked as a " +"candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " +"not." +msgstr "" + +#: ../../library/gettext.rst:442 +msgid "" +"There are a few tools to extract the strings meant for translation. The " +"original GNU :program:`gettext` only supported C or C++ source code but its " +"extended version :program:`xgettext` scans code written in a number of " +"languages, including Python, to find strings marked as translatable. `Babel " +"`__ is a Python internationalization library that " +"includes a :file:`pybabel` script to extract and compile message catalogs. " +"François Pinard's program called :program:`xpot` does a similar job and is " +"available as part of his `po-utils package `__." +msgstr "" + +#: ../../library/gettext.rst:452 +msgid "" +"(Python also includes pure-Python versions of these programs, " +"called :program:`pygettext.py` and :program:`msgfmt.py`; some Python " +"distributions will install them for you. :program:`pygettext.py` is similar " +"to :program:`xgettext`, but only understands Python source code and cannot " +"handle other programming languages such as C or C++. :program:`pygettext.py` " +"supports a command-line interface similar to :program:`xgettext`; for " +"details on its use, run ``pygettext.py --help``. :program:`msgfmt.py` is " +"binary compatible with GNU :program:`msgfmt`. With these two programs, you " +"may not need the GNU :program:`gettext` package to internationalize your " +"Python applications.)" +msgstr "" + +#: ../../library/gettext.rst:464 +msgid "" +":program:`xgettext`, :program:`pygettext`, and similar tools " +"generate :file:`.po` files that are message catalogs. They are structured " +"human-readable files that contain every marked string in the source code, " +"along with a placeholder for the translated versions of these strings." +msgstr "" + +#: ../../library/gettext.rst:470 +msgid "" +"Copies of these :file:`.po` files are then handed over to the individual " +"human translators who write translations for every supported natural " +"language. They send back the completed language-specific versions as " +"a :file:`.po` file that's compiled into a machine-" +"readable :file:`.mo` binary catalog file using the :program:`msgfmt` " +"program. The :file:`.mo` files are used by the :mod:`gettext` module for " +"the actual translation processing at run-time." +msgstr "" + +#: ../../library/gettext.rst:479 +msgid "" +"How you use the :mod:`gettext` module in your code depends on whether you " +"are internationalizing a single module or your entire application. The next " +"two sections will discuss each case." +msgstr "" + +#: ../../library/gettext.rst:485 +msgid "Localizing your module" +msgstr "" + +#: ../../library/gettext.rst:487 +msgid "" +"If you are localizing your module, you must take care not to make global " +"changes, e.g. to the built-in namespace. You should not use the " +"GNU :program:`gettext` API but instead the class-based API." +msgstr "" + +#: ../../library/gettext.rst:491 +msgid "" +"Let's say your module is called \"spam\" and the module's various natural " +"language translation :file:`.mo` files reside in :file:`/usr/share/locale` " +"in GNU :program:`gettext` format. Here's what you would put at the top of " +"your module::" +msgstr "" + +#: ../../library/gettext.rst:496 +msgid "" +"import gettext\n" +"t = gettext.translation('spam', '/usr/share/locale')\n" +"_ = t.gettext" +msgstr "" + +#: ../../library/gettext.rst:502 +msgid "Localizing your application" +msgstr "" + +#: ../../library/gettext.rst:504 +msgid "" +"If you are localizing your application, you can install the :func:`!_` " +"function globally into the built-in namespace, usually in the main driver " +"file of your application. This will let all your application-specific files " +"just use ``_('...')`` without having to explicitly install it in each file." +msgstr "" + +#: ../../library/gettext.rst:509 +msgid "" +"In the simple case then, you need only add the following bit of code to the " +"main driver file of your application::" +msgstr "" + +#: ../../library/gettext.rst:512 +msgid "" +"import gettext\n" +"gettext.install('myapplication')" +msgstr "" + +#: ../../library/gettext.rst:515 +msgid "" +"If you need to set the locale directory, you can pass it into " +"the :func:`install` function::" +msgstr "" + +#: ../../library/gettext.rst:518 +msgid "" +"import gettext\n" +"gettext.install('myapplication', '/usr/share/locale')" +msgstr "" + +#: ../../library/gettext.rst:523 +msgid "Changing languages on the fly" +msgstr "" + +#: ../../library/gettext.rst:525 +msgid "" +"If your program needs to support many languages at the same time, you may " +"want to create multiple translation instances and then switch between them " +"explicitly, like so::" +msgstr "" + +#: ../../library/gettext.rst:529 +msgid "" +"import gettext\n" +"\n" +"lang1 = gettext.translation('myapplication', languages=['en'])\n" +"lang2 = gettext.translation('myapplication', languages=['fr'])\n" +"lang3 = gettext.translation('myapplication', languages=['de'])\n" +"\n" +"# start by using language1\n" +"lang1.install()\n" +"\n" +"# ... time goes by, user selects language 2\n" +"lang2.install()\n" +"\n" +"# ... more time goes by, user selects language 3\n" +"lang3.install()" +msgstr "" + +#: ../../library/gettext.rst:546 +msgid "Deferred translations" +msgstr "" + +#: ../../library/gettext.rst:548 +msgid "" +"In most coding situations, strings are translated where they are coded. " +"Occasionally however, you need to mark strings for translation, but defer " +"actual translation until later. A classic example is::" +msgstr "" + +#: ../../library/gettext.rst:552 +msgid "" +"animals = ['mollusk',\n" +" 'albatross',\n" +" 'rat',\n" +" 'penguin',\n" +" 'python', ]\n" +"# ...\n" +"for a in animals:\n" +" print(a)" +msgstr "" + +#: ../../library/gettext.rst:561 +msgid "" +"Here, you want to mark the strings in the ``animals`` list as being " +"translatable, but you don't actually want to translate them until they are " +"printed." +msgstr "" + +#: ../../library/gettext.rst:565 +msgid "Here is one way you can handle this situation::" +msgstr "" + +#: ../../library/gettext.rst:567 +msgid "" +"def _(message): return message\n" +"\n" +"animals = [_('mollusk'),\n" +" _('albatross'),\n" +" _('rat'),\n" +" _('penguin'),\n" +" _('python'), ]\n" +"\n" +"del _\n" +"\n" +"# ...\n" +"for a in animals:\n" +" print(_(a))" +msgstr "" + +#: ../../library/gettext.rst:581 +msgid "" +"This works because the dummy definition of :func:`!_` simply returns the " +"string unchanged. And this dummy definition will temporarily override any " +"definition of :func:`!_` in the built-in namespace (until the :keyword:`del` " +"command). Take care, though if you have a previous definition of :func:`!_` " +"in the local namespace." +msgstr "" + +#: ../../library/gettext.rst:587 +msgid "" +"Note that the second use of :func:`!_` will not identify \"a\" as being " +"translatable to the :program:`gettext` program, because the parameter is not " +"a string literal." +msgstr "" + +#: ../../library/gettext.rst:591 +msgid "Another way to handle this is with the following example::" +msgstr "" + +#: ../../library/gettext.rst:593 +msgid "" +"def N_(message): return message\n" +"\n" +"animals = [N_('mollusk'),\n" +" N_('albatross'),\n" +" N_('rat'),\n" +" N_('penguin'),\n" +" N_('python'), ]\n" +"\n" +"# ...\n" +"for a in animals:\n" +" print(_(a))" +msgstr "" + +#: ../../library/gettext.rst:605 +msgid "" +"In this case, you are marking translatable strings with the function :func:`!" +"N_`, which won't conflict with any definition of :func:`!_`. However, you " +"will need to teach your message extraction program to look for translatable " +"strings marked with :func:`!N_`. :program:`xgettext`, :program:`pygettext`, " +"``pybabel extract``, and :program:`xpot` all support this through the use of " +"the :option:`!-k` command-line switch. The choice of :func:`!N_` here is " +"totally arbitrary; it could have just as easily been :func:`!" +"MarkThisStringForTranslation`." +msgstr "" + +#: ../../library/gettext.rst:616 +msgid "Acknowledgements" +msgstr "" + +#: ../../library/gettext.rst:618 +msgid "" +"The following people contributed code, feedback, design suggestions, " +"previous implementations, and valuable experience to the creation of this " +"module:" +msgstr "" + +#: ../../library/gettext.rst:621 +msgid "Peter Funk" +msgstr "" + +#: ../../library/gettext.rst:623 +msgid "James Henstridge" +msgstr "" + +#: ../../library/gettext.rst:625 +msgid "Juan David Ibáñez Palomar" +msgstr "" + +#: ../../library/gettext.rst:627 +msgid "Marc-André Lemburg" +msgstr "" + +#: ../../library/gettext.rst:629 +msgid "Martin von Löwis" +msgstr "" + +#: ../../library/gettext.rst:631 +msgid "François Pinard" +msgstr "" + +#: ../../library/gettext.rst:633 +msgid "Barry Warsaw" +msgstr "" + +#: ../../library/gettext.rst:635 +msgid "Gustavo Niemeyer" +msgstr "" + +#: ../../library/gettext.rst:638 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/gettext.rst:639 +msgid "" +"The default locale directory is system dependent; for example, on Red Hat " +"Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" +"locale`. The :mod:`!gettext` module does not try to support these system " +"dependent defaults; instead its default is :file:`{sys.base_prefix}/share/" +"locale` (see :data:`sys.base_prefix`). For this reason, it is always best to " +"call :func:`bindtextdomain` with an explicit absolute path at the start of " +"your application." +msgstr "" + +#: ../../library/gettext.rst:647 +msgid "See the footnote for :func:`bindtextdomain` above." +msgstr "" + +#: ../../library/gettext.rst:56 +msgid "_ (underscore)" +msgstr "" + +#: ../../library/gettext.rst:56 +msgid "gettext" +msgstr "" + +#: ../../library/gettext.rst:394 +msgid "GNOME" +msgstr "" diff --git a/library/glob.po b/library/glob.po new file mode 100644 index 0000000..19dc7d7 --- /dev/null +++ b/library/glob.po @@ -0,0 +1,281 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/glob.rst:2 +msgid ":mod:`!glob` --- Unix style pathname pattern expansion" +msgstr "" + +#: ../../library/glob.rst:7 +msgid "**Source code:** :source:`Lib/glob.py`" +msgstr "" + +#: ../../library/glob.rst:21 +msgid "" +"The :mod:`glob` module finds all the pathnames matching a specified pattern " +"according to the rules used by the Unix shell, although results are returned " +"in arbitrary order. No tilde expansion is done, but ``*``, ``?``, and " +"character ranges expressed with ``[]`` will be correctly matched. This is " +"done by using the :func:`os.scandir` and :func:`fnmatch.fnmatch` functions " +"in concert, and not by actually invoking a subshell." +msgstr "" + +#: ../../library/glob.rst:28 +msgid "" +"Note that files beginning with a dot (``.``) can only be matched by patterns " +"that also start with a dot, unlike :func:`fnmatch.fnmatch` " +"or :func:`pathlib.Path.glob`. (For tilde and shell variable expansion, " +"use :func:`os.path.expanduser` and :func:`os.path.expandvars`.)" +msgstr "" + +#: ../../library/glob.rst:34 +msgid "" +"For a literal match, wrap the meta-characters in brackets. For example, " +"``'[?]'`` matches the character ``'?'``." +msgstr "" + +#: ../../library/glob.rst:37 +msgid "The :mod:`glob` module defines the following functions:" +msgstr "" + +#: ../../library/glob.rst:43 +msgid "" +"Return a possibly empty list of path names that match *pathname*, which must " +"be a string containing a path specification. *pathname* can be either " +"absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative " +"(like :file:`../../Tools/\\*/\\*.gif`), and can contain shell-style " +"wildcards. Broken symlinks are included in the results (as in the shell). " +"Whether or not the results are sorted depends on the file system. If a file " +"that satisfies conditions is removed or added during the call of this " +"function, whether a path name for that file will be included is unspecified." +msgstr "" + +#: ../../library/glob.rst:52 +msgid "" +"If *root_dir* is not ``None``, it should be a :term:`path-like object` " +"specifying the root directory for searching. It has the same effect " +"on :func:`glob` as changing the current directory before calling it. If " +"*pathname* is relative, the result will contain paths relative to *root_dir*." +msgstr "" + +#: ../../library/glob.rst:58 +msgid "" +"This function can support :ref:`paths relative to directory descriptors " +"` with the *dir_fd* parameter." +msgstr "" + +#: ../../library/glob.rst:64 +msgid "" +"If *recursive* is true, the pattern \"``**``\" will match any files and zero " +"or more directories, subdirectories and symbolic links to directories. If " +"the pattern is followed by an :data:`os.sep` or :data:`os.altsep` then files " +"will not match." +msgstr "" + +#: ../../library/glob.rst:69 +msgid "" +"If *include_hidden* is true, \"``**``\" pattern will match hidden " +"directories." +msgstr "" + +#: ../../library/glob.rst:71 ../../library/glob.rst:98 +msgid "" +"Raises an :ref:`auditing event ` ``glob.glob`` with arguments " +"``pathname``, ``recursive``." +msgstr "" + +#: ../../library/glob.rst:72 ../../library/glob.rst:99 +msgid "" +"Raises an :ref:`auditing event ` ``glob.glob/2`` with arguments " +"``pathname``, ``recursive``, ``root_dir``, ``dir_fd``." +msgstr "" + +#: ../../library/glob.rst:75 +msgid "" +"Using the \"``**``\" pattern in large directory trees may consume an " +"inordinate amount of time." +msgstr "" + +#: ../../library/glob.rst:79 ../../library/glob.rst:102 +msgid "" +"This function may return duplicate path names if *pathname* contains " +"multiple \"``**``\" patterns and *recursive* is true." +msgstr "" + +#: ../../library/glob.rst:82 ../../library/glob.rst:105 +msgid "Support for recursive globs using \"``**``\"." +msgstr "" + +#: ../../library/glob.rst:85 ../../library/glob.rst:108 +msgid "Added the *root_dir* and *dir_fd* parameters." +msgstr "" + +#: ../../library/glob.rst:88 ../../library/glob.rst:111 +msgid "Added the *include_hidden* parameter." +msgstr "" + +#: ../../library/glob.rst:95 +msgid "" +"Return an :term:`iterator` which yields the same values as :func:`glob` " +"without actually storing them all simultaneously." +msgstr "" + +#: ../../library/glob.rst:117 +msgid "" +"Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " +"if you want to match an arbitrary literal string that may have special " +"characters in it. Special characters in drive/UNC sharepoints are not " +"escaped, e.g. on Windows ``escape('//?/c:/Quo vadis?.txt')`` returns ``'//?/" +"c:/Quo vadis[?].txt'``." +msgstr "" + +#: ../../library/glob.rst:128 +msgid "" +"Convert the given path specification to a regular expression for use " +"with :func:`re.match`. The path specification can contain shell-style " +"wildcards." +msgstr "" + +#: ../../library/glob.rst:131 +msgid "For example:" +msgstr "" + +#: ../../library/glob.rst:142 +msgid "" +"Path separators and segments are meaningful to this function, " +"unlike :func:`fnmatch.translate`. By default wildcards do not match path " +"separators, and ``*`` pattern segments match precisely one path segment." +msgstr "" + +#: ../../library/glob.rst:146 +msgid "" +"If *recursive* is true, the pattern segment \"``**``\" will match any number " +"of path segments." +msgstr "" + +#: ../../library/glob.rst:149 +msgid "" +"If *include_hidden* is true, wildcards can match path segments that start " +"with a dot (``.``)." +msgstr "" + +#: ../../library/glob.rst:152 +msgid "" +"A sequence of path separators may be supplied to the *seps* argument. If not " +"given, :data:`os.sep` and :data:`~os.altsep` (if available) are used." +msgstr "" + +#: ../../library/glob.rst:157 +msgid "" +":meth:`pathlib.PurePath.full_match` and :meth:`pathlib.Path.glob` methods, " +"which call this function to implement pattern matching and globbing." +msgstr "" + +#: ../../library/glob.rst:165 +msgid "Examples" +msgstr "" + +#: ../../library/glob.rst:167 +msgid "" +"Consider a directory containing the following " +"files: :file:`1.gif`, :file:`2.txt`, :file:`card.gif` and a " +"subdirectory :file:`sub` which contains only the " +"file :file:`3.txt`. :func:`glob` will produce the following results. " +"Notice how any leading components of the path are preserved. ::" +msgstr "" + +#: ../../library/glob.rst:173 +msgid "" +">>> import glob\n" +">>> glob.glob('./[0-9].*')\n" +"['./1.gif', './2.txt']\n" +">>> glob.glob('*.gif')\n" +"['1.gif', 'card.gif']\n" +">>> glob.glob('?.gif')\n" +"['1.gif']\n" +">>> glob.glob('**/*.txt', recursive=True)\n" +"['2.txt', 'sub/3.txt']\n" +">>> glob.glob('./**/', recursive=True)\n" +"['./', './sub/']" +msgstr "" + +#: ../../library/glob.rst:185 +msgid "" +"If the directory contains files starting with ``.`` they won't be matched by " +"default. For example, consider a directory containing :file:`card.gif` " +"and :file:`.card.gif`::" +msgstr "" + +#: ../../library/glob.rst:189 +msgid "" +">>> import glob\n" +">>> glob.glob('*.gif')\n" +"['card.gif']\n" +">>> glob.glob('.c*')\n" +"['.card.gif']" +msgstr "" + +#: ../../library/glob.rst:196 +msgid "" +"The :mod:`fnmatch` module offers shell-style filename (not path) expansion." +msgstr "" + +#: ../../library/glob.rst:199 +msgid "The :mod:`pathlib` module offers high-level path objects." +msgstr "" + +#: ../../library/glob.rst:9 +msgid "filenames" +msgstr "" + +#: ../../library/glob.rst:9 +msgid "pathname expansion" +msgstr "" + +#: ../../library/glob.rst:13 +msgid "* (asterisk)" +msgstr "" + +#: ../../library/glob.rst:13 ../../library/glob.rst:61 +msgid "in glob-style wildcards" +msgstr "" + +#: ../../library/glob.rst:13 +msgid "? (question mark)" +msgstr "" + +#: ../../library/glob.rst:13 +msgid "[] (square brackets)" +msgstr "" + +#: ../../library/glob.rst:13 +msgid "! (exclamation)" +msgstr "" + +#: ../../library/glob.rst:13 +msgid "- (minus)" +msgstr "" + +#: ../../library/glob.rst:13 +msgid ". (dot)" +msgstr "" + +#: ../../library/glob.rst:61 +msgid "**" +msgstr "" diff --git a/library/graphlib.po b/library/graphlib.po new file mode 100644 index 0000000..15b4d0c --- /dev/null +++ b/library/graphlib.po @@ -0,0 +1,318 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/graphlib.rst:2 +msgid "" +":mod:`!graphlib` --- Functionality to operate with graph-like structures" +msgstr "" + +#: ../../library/graphlib.rst:8 +msgid "**Source code:** :source:`Lib/graphlib.py`" +msgstr "" + +#: ../../library/graphlib.rst:20 +msgid "" +"Provides functionality to topologically sort a graph of :term:`hashable` " +"nodes." +msgstr "" + +#: ../../library/graphlib.rst:22 +msgid "" +"A topological order is a linear ordering of the vertices in a graph such " +"that for every directed edge u -> v from vertex u to vertex v, vertex u " +"comes before vertex v in the ordering. For instance, the vertices of the " +"graph may represent tasks to be performed, and the edges may represent " +"constraints that one task must be performed before another; in this example, " +"a topological ordering is just a valid sequence for the tasks. A complete " +"topological ordering is possible if and only if the graph has no directed " +"cycles, that is, if it is a directed acyclic graph." +msgstr "" + +#: ../../library/graphlib.rst:31 +msgid "" +"If the optional *graph* argument is provided it must be a dictionary " +"representing a directed acyclic graph where the keys are nodes and the " +"values are iterables of all predecessors of that node in the graph (the " +"nodes that have edges that point to the value in the key). Additional nodes " +"can be added to the graph using the :meth:`~TopologicalSorter.add` method." +msgstr "" + +#: ../../library/graphlib.rst:37 +msgid "" +"In the general case, the steps required to perform the sorting of a given " +"graph are as follows:" +msgstr "" + +#: ../../library/graphlib.rst:40 +msgid "" +"Create an instance of the :class:`TopologicalSorter` with an optional " +"initial graph." +msgstr "" + +#: ../../library/graphlib.rst:42 +msgid "Add additional nodes to the graph." +msgstr "" + +#: ../../library/graphlib.rst:43 +msgid "Call :meth:`~TopologicalSorter.prepare` on the graph." +msgstr "" + +#: ../../library/graphlib.rst:44 +msgid "" +"While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over the " +"nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. " +"Call :meth:`~TopologicalSorter.done` on each node as it finishes processing." +msgstr "" + +#: ../../library/graphlib.rst:49 +msgid "" +"In case just an immediate sorting of the nodes in the graph is required and " +"no parallelism is involved, the convenience " +"method :meth:`TopologicalSorter.static_order` can be used directly:" +msgstr "" + +#: ../../library/graphlib.rst:53 +msgid "" +">>> graph = {\"D\": {\"B\", \"C\"}, \"C\": {\"A\"}, \"B\": {\"A\"}}\n" +">>> ts = TopologicalSorter(graph)\n" +">>> tuple(ts.static_order())\n" +"('A', 'C', 'B', 'D')" +msgstr "" + +#: ../../library/graphlib.rst:60 +msgid "" +"The class is designed to easily support parallel processing of the nodes as " +"they become ready. For instance::" +msgstr "" + +#: ../../library/graphlib.rst:63 +msgid "" +"topological_sorter = TopologicalSorter()\n" +"\n" +"# Add nodes to 'topological_sorter'...\n" +"\n" +"topological_sorter.prepare()\n" +"while topological_sorter.is_active():\n" +" for node in topological_sorter.get_ready():\n" +" # Worker threads or processes take nodes to work on off the\n" +" # 'task_queue' queue.\n" +" task_queue.put(node)\n" +"\n" +" # When the work for a node is done, workers put the node in\n" +" # 'finalized_tasks_queue' so we can get more nodes to work on.\n" +" # The definition of 'is_active()' guarantees that, at this point, at\n" +" # least one node has been placed on 'task_queue' that hasn't yet\n" +" # been passed to 'done()', so this blocking 'get()' must (eventually)\n" +" # succeed. After calling 'done()', we loop back to call 'get_ready()'\n" +" # again, so put newly freed nodes on 'task_queue' as soon as\n" +" # logically possible.\n" +" node = finalized_tasks_queue.get()\n" +" topological_sorter.done(node)" +msgstr "" + +#: ../../library/graphlib.rst:87 +msgid "" +"Add a new node and its predecessors to the graph. Both the *node* and all " +"elements in *predecessors* must be :term:`hashable`." +msgstr "" + +#: ../../library/graphlib.rst:90 +msgid "" +"If called multiple times with the same node argument, the set of " +"dependencies will be the union of all dependencies passed in." +msgstr "" + +#: ../../library/graphlib.rst:93 +msgid "" +"It is possible to add a node with no dependencies (*predecessors* is not " +"provided) or to provide a dependency twice. If a node that has not been " +"provided before is included among *predecessors* it will be automatically " +"added to the graph with no predecessors of its own." +msgstr "" + +#: ../../library/graphlib.rst:98 +msgid "" +"Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`." +msgstr "" + +#: ../../library/graphlib.rst:102 +msgid "" +"Mark the graph as finished and check for cycles in the graph. If any cycle " +"is detected, :exc:`CycleError` will be raised, " +"but :meth:`~TopologicalSorter.get_ready` can still be used to obtain as many " +"nodes as possible until cycles block more progress. After a call to this " +"function, the graph cannot be modified, and therefore no more nodes can be " +"added using :meth:`~TopologicalSorter.add`." +msgstr "" + +#: ../../library/graphlib.rst:109 +msgid "" +"A :exc:`ValueError` will be raised if the sort has been started " +"by :meth:`~.static_order` or :meth:`~.get_ready`." +msgstr "" + +#: ../../library/graphlib.rst:114 +msgid "" +"``prepare()`` can now be called more than once as long as the sort has not " +"started. Previously this raised :exc:`ValueError`." +msgstr "" + +#: ../../library/graphlib.rst:119 +msgid "" +"Returns ``True`` if more progress can be made and ``False`` otherwise. " +"Progress can be made if cycles do not block the resolution and either there " +"are still nodes ready that haven't yet been returned " +"by :meth:`TopologicalSorter.get_ready` or the number of nodes " +"marked :meth:`TopologicalSorter.done` is less than the number that have been " +"returned by :meth:`TopologicalSorter.get_ready`." +msgstr "" + +#: ../../library/graphlib.rst:126 +msgid "" +"The :meth:`~object.__bool__` method of this class defers to this function, " +"so instead of::" +msgstr "" + +#: ../../library/graphlib.rst:129 +msgid "" +"if ts.is_active():\n" +" ..." +msgstr "" + +#: ../../library/graphlib.rst:132 +msgid "it is possible to simply do::" +msgstr "" + +#: ../../library/graphlib.rst:134 +msgid "" +"if ts:\n" +" ..." +msgstr "" + +#: ../../library/graphlib.rst:137 ../../library/graphlib.rst:160 +msgid "" +"Raises :exc:`ValueError` if called without " +"calling :meth:`~TopologicalSorter.prepare` previously." +msgstr "" + +#: ../../library/graphlib.rst:142 +msgid "" +"Marks a set of nodes returned by :meth:`TopologicalSorter.get_ready` as " +"processed, unblocking any successor of each node in *nodes* for being " +"returned in the future by a call to :meth:`TopologicalSorter.get_ready`." +msgstr "" + +#: ../../library/graphlib.rst:146 +msgid "" +"Raises :exc:`ValueError` if any node in *nodes* has already been marked as " +"processed by a previous call to this method or if a node was not added to " +"the graph by using :meth:`TopologicalSorter.add`, if called without " +"calling :meth:`~TopologicalSorter.prepare` or if node has not yet been " +"returned by :meth:`~TopologicalSorter.get_ready`." +msgstr "" + +#: ../../library/graphlib.rst:154 +msgid "" +"Returns a ``tuple`` with all the nodes that are ready. Initially it returns " +"all nodes with no predecessors, and once those are marked as processed by " +"calling :meth:`TopologicalSorter.done`, further calls will return all new " +"nodes that have all their predecessors already processed. Once no more " +"progress can be made, empty tuples are returned." +msgstr "" + +#: ../../library/graphlib.rst:165 +msgid "" +"Returns an iterator object which will iterate over nodes in a topological " +"order. When using this method, :meth:`~TopologicalSorter.prepare` " +"and :meth:`~TopologicalSorter.done` should not be called. This method is " +"equivalent to::" +msgstr "" + +#: ../../library/graphlib.rst:170 +msgid "" +"def static_order(self):\n" +" self.prepare()\n" +" while self.is_active():\n" +" node_group = self.get_ready()\n" +" yield from node_group\n" +" self.done(*node_group)" +msgstr "" + +#: ../../library/graphlib.rst:177 +msgid "" +"The particular order that is returned may depend on the specific order in " +"which the items were inserted in the graph. For example:" +msgstr "" + +#: ../../library/graphlib.rst:180 +msgid "" +">>> ts = TopologicalSorter()\n" +">>> ts.add(3, 2, 1)\n" +">>> ts.add(1, 0)\n" +">>> print([*ts.static_order()])\n" +"[2, 0, 1, 3]\n" +"\n" +">>> ts2 = TopologicalSorter()\n" +">>> ts2.add(1, 0)\n" +">>> ts2.add(3, 2, 1)\n" +">>> print([*ts2.static_order()])\n" +"[0, 2, 1, 3]" +msgstr "" + +#: ../../library/graphlib.rst:194 +msgid "" +"This is due to the fact that \"0\" and \"2\" are in the same level in the " +"graph (they would have been returned in the same call " +"to :meth:`~TopologicalSorter.get_ready`) and the order between them is " +"determined by the order of insertion." +msgstr "" + +#: ../../library/graphlib.rst:200 +msgid "If any cycle is detected, :exc:`CycleError` will be raised." +msgstr "" + +#: ../../library/graphlib.rst:206 +msgid "Exceptions" +msgstr "Kivételek" + +#: ../../library/graphlib.rst:207 +msgid "The :mod:`graphlib` module defines the following exception classes:" +msgstr "" + +#: ../../library/graphlib.rst:211 +msgid "" +"Subclass of :exc:`ValueError` raised by :meth:`TopologicalSorter.prepare` if " +"cycles exist in the working graph. If multiple cycles exist, only one " +"undefined choice among them will be reported and included in the exception." +msgstr "" + +#: ../../library/graphlib.rst:215 +msgid "" +"The detected cycle can be accessed via the second element in " +"the :attr:`~BaseException.args` attribute of the exception instance and " +"consists in a list of nodes, such that each node is, in the graph, an " +"immediate predecessor of the next node in the list. In the reported list, " +"the first and the last node will be the same, to make it clear that it is " +"cyclic." +msgstr "" diff --git a/library/grp.po b/library/grp.po new file mode 100644 index 0000000..e3ebec2 --- /dev/null +++ b/library/grp.po @@ -0,0 +1,148 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/grp.rst:2 +msgid ":mod:`!grp` --- The group database" +msgstr "" + +#: ../../library/grp.rst:10 +msgid "" +"This module provides access to the Unix group database. It is available on " +"all Unix versions." +msgstr "" + +#: ../../library/grp.rst:13 +msgid "Availability" +msgstr "" + +#: ../../library/grp.rst:15 +msgid "" +"Group database entries are reported as a tuple-like object, whose attributes " +"correspond to the members of the ``group`` structure (Attribute field below, " +"see ````):" +msgstr "" + +#: ../../library/grp.rst:20 +msgid "Index" +msgstr "" + +#: ../../library/grp.rst:20 +msgid "Attribute" +msgstr "" + +#: ../../library/grp.rst:20 +msgid "Meaning" +msgstr "Jelentés" + +#: ../../library/grp.rst:22 +msgid "0" +msgstr "" + +#: ../../library/grp.rst:22 +msgid "gr_name" +msgstr "" + +#: ../../library/grp.rst:22 +msgid "the name of the group" +msgstr "" + +#: ../../library/grp.rst:24 +msgid "1" +msgstr "1" + +#: ../../library/grp.rst:24 +msgid "gr_passwd" +msgstr "" + +#: ../../library/grp.rst:24 +msgid "the (encrypted) group password; often empty" +msgstr "" + +#: ../../library/grp.rst:27 +msgid "2" +msgstr "2" + +#: ../../library/grp.rst:27 +msgid "gr_gid" +msgstr "" + +#: ../../library/grp.rst:27 +msgid "the numerical group ID" +msgstr "" + +#: ../../library/grp.rst:29 +msgid "3" +msgstr "3" + +#: ../../library/grp.rst:29 +msgid "gr_mem" +msgstr "" + +#: ../../library/grp.rst:29 +msgid "all the group member's user names" +msgstr "" + +#: ../../library/grp.rst:33 +msgid "" +"The gid is an integer, name and password are strings, and the member list is " +"a list of strings. (Note that most users are not explicitly listed as " +"members of the group they are in according to the password database. Check " +"both databases to get complete membership information. Also note that a " +"``gr_name`` that starts with a ``+`` or ``-`` is likely to be a YP/NIS " +"reference and may not be accessible via :func:`getgrnam` " +"or :func:`getgrgid`.)" +msgstr "" + +#: ../../library/grp.rst:40 +msgid "It defines the following items:" +msgstr "" + +#: ../../library/grp.rst:45 +msgid "" +"Return the group database entry for the given numeric group " +"ID. :exc:`KeyError` is raised if the entry asked for cannot be found." +msgstr "" + +#: ../../library/grp.rst:48 +msgid "" +":exc:`TypeError` is raised for non-integer arguments like floats or strings." +msgstr "" + +#: ../../library/grp.rst:53 +msgid "" +"Return the group database entry for the given group name. :exc:`KeyError` is " +"raised if the entry asked for cannot be found." +msgstr "" + +#: ../../library/grp.rst:59 +msgid "Return a list of all available group entries, in arbitrary order." +msgstr "" + +#: ../../library/grp.rst:64 +msgid "Module :mod:`pwd`" +msgstr "" + +#: ../../library/grp.rst:65 +msgid "An interface to the user database, similar to this." +msgstr "" diff --git a/library/gzip.po b/library/gzip.po new file mode 100644 index 0000000..a2bcf99 --- /dev/null +++ b/library/gzip.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/gzip.rst:2 +msgid ":mod:`!gzip` --- Support for :program:`gzip` files" +msgstr "" + +#: ../../library/gzip.rst:7 +msgid "**Source code:** :source:`Lib/gzip.py`" +msgstr "" + +#: ../../library/gzip.rst:11 +msgid "" +"This module provides a simple interface to compress and decompress files " +"just like the GNU programs :program:`gzip` and :program:`gunzip` would." +msgstr "" + +#: ../../library/gzip.rst:14 +msgid "The data compression is provided by the :mod:`zlib` module." +msgstr "" + +#: ../../library/gzip.rst:16 +msgid "" +"The :mod:`gzip` module provides the :class:`GzipFile` class, as well as " +"the :func:`.open`, :func:`compress` and :func:`decompress` convenience " +"functions. The :class:`GzipFile` class reads and writes :program:`gzip`\\ " +"-format files, automatically compressing or decompressing the data so that " +"it looks like an ordinary :term:`file object`." +msgstr "" + +#: ../../library/gzip.rst:22 +msgid "" +"Note that additional file formats which can be decompressed by " +"the :program:`gzip` and :program:`gunzip` programs, such as those produced " +"by :program:`compress` and :program:`pack`, are not supported by this module." +msgstr "" + +#: ../../library/gzip.rst:26 +msgid "The module defines the following items:" +msgstr "" + +#: ../../library/gzip.rst:31 +msgid "" +"Open a gzip-compressed file in binary or text mode, returning a :term:`file " +"object`." +msgstr "" + +#: ../../library/gzip.rst:34 +msgid "" +"The *filename* argument can be an actual filename (a :class:`str` " +"or :class:`bytes` object), or an existing file object to read from or write " +"to." +msgstr "" + +#: ../../library/gzip.rst:37 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " +"``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " +"``'at'``, ``'wt'``, or ``'xt'`` for text mode. The default is ``'rb'``." +msgstr "" + +#: ../../library/gzip.rst:41 +msgid "" +"The *compresslevel* argument is an integer from 0 to 9, as for " +"the :class:`GzipFile` constructor." +msgstr "" + +#: ../../library/gzip.rst:44 +msgid "" +"For binary mode, this function is equivalent to the :class:`GzipFile` " +"constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " +"*encoding*, *errors* and *newline* arguments must not be provided." +msgstr "" + +#: ../../library/gzip.rst:48 +msgid "" +"For text mode, a :class:`GzipFile` object is created, and wrapped in " +"an :class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line ending(s)." +msgstr "" + +#: ../../library/gzip.rst:52 +msgid "" +"Added support for *filename* being a file object, support for text mode, and " +"the *encoding*, *errors* and *newline* arguments." +msgstr "" + +#: ../../library/gzip.rst:56 +msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." +msgstr "" + +#: ../../library/gzip.rst:59 ../../library/gzip.rst:173 +msgid "Accepts a :term:`path-like object`." +msgstr "" + +#: ../../library/gzip.rst:64 +msgid "" +"An exception raised for invalid gzip files. It inherits " +"from :exc:`OSError`. :exc:`EOFError` and :exc:`zlib.error` can also be " +"raised for invalid gzip files." +msgstr "" + +#: ../../library/gzip.rst:72 +msgid "" +"Constructor for the :class:`GzipFile` class, which simulates most of the " +"methods of a :term:`file object`, with the exception of " +"the :meth:`~io.IOBase.truncate` method. At least one of *fileobj* and " +"*filename* must be given a non-trivial value." +msgstr "" + +#: ../../library/gzip.rst:77 +msgid "" +"The new class instance is based on *fileobj*, which can be a regular file, " +"an :class:`io.BytesIO` object, or any other object which simulates a file. " +"It defaults to ``None``, in which case *filename* is opened to provide a " +"file object." +msgstr "" + +#: ../../library/gzip.rst:82 +msgid "" +"When *fileobj* is not ``None``, the *filename* argument is only used to be " +"included in the :program:`gzip` file header, which may include the original " +"filename of the uncompressed file. It defaults to the filename of " +"*fileobj*, if discernible; otherwise, it defaults to the empty string, and " +"in this case the original filename is not included in the header." +msgstr "" + +#: ../../library/gzip.rst:88 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " +"``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, depending on whether the file will " +"be read or written. The default is the mode of *fileobj* if discernible; " +"otherwise, the default is ``'rb'``. In future Python releases the mode of " +"*fileobj* will not be used. It is better to always specify *mode* for " +"writing." +msgstr "" + +#: ../../library/gzip.rst:94 +msgid "" +"Note that the file is always opened in binary mode. To open a compressed " +"file in text mode, use :func:`.open` (or wrap your :class:`GzipFile` with " +"an :class:`io.TextIOWrapper`)." +msgstr "" + +#: ../../library/gzip.rst:98 +msgid "" +"The *compresslevel* argument is an integer from ``0`` to ``9`` controlling " +"the level of compression; ``1`` is fastest and produces the least " +"compression, and ``9`` is slowest and produces the most compression. ``0`` " +"is no compression. The default is ``9``." +msgstr "" + +#: ../../library/gzip.rst:103 +msgid "" +"The optional *mtime* argument is the timestamp requested by gzip. The time " +"is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. If " +"*mtime* is omitted or ``None``, the current time is used. Use *mtime* = 0 to " +"generate a compressed stream that does not depend on creation time." +msgstr "" + +#: ../../library/gzip.rst:108 +msgid "" +"See below for the :attr:`mtime` attribute that is set when decompressing." +msgstr "" + +#: ../../library/gzip.rst:110 +msgid "" +"Calling a :class:`GzipFile` object's :meth:`!close` method does not close " +"*fileobj*, since you might wish to append more material after the compressed " +"data. This also allows you to pass an :class:`io.BytesIO` object opened for " +"writing as *fileobj*, and retrieve the resulting memory buffer using " +"the :class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method." +msgstr "" + +#: ../../library/gzip.rst:116 +msgid "" +":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " +"including iteration and the :keyword:`with` statement. Only " +"the :meth:`~io.IOBase.truncate` method isn't implemented." +msgstr "" + +#: ../../library/gzip.rst:120 +msgid ":class:`GzipFile` also provides the following method and attribute:" +msgstr "" + +#: ../../library/gzip.rst:124 +msgid "" +"Read *n* uncompressed bytes without advancing the file position. The number " +"of bytes returned may be more or less than requested." +msgstr "" + +#: ../../library/gzip.rst:127 +msgid "" +"While calling :meth:`peek` does not change the file position of " +"the :class:`GzipFile`, it may change the position of the underlying file " +"object (e.g. if the :class:`GzipFile` was constructed with the *fileobj* " +"parameter)." +msgstr "" + +#: ../../library/gzip.rst:136 +msgid "``'rb'`` for reading and ``'wb'`` for writing." +msgstr "" + +#: ../../library/gzip.rst:138 +msgid "In previous versions it was an integer ``1`` or ``2``." +msgstr "" + +#: ../../library/gzip.rst:143 +msgid "" +"When decompressing, this attribute is set to the last timestamp in the most " +"recently read header. It is an integer, holding the number of seconds since " +"the Unix epoch (00:00:00 UTC, January 1, 1970). The initial value before " +"reading any headers is ``None``." +msgstr "" + +#: ../../library/gzip.rst:150 +msgid "" +"The path to the gzip file on disk, as a :class:`str` or :class:`bytes`. " +"Equivalent to the output of :func:`os.fspath` on the original input path, " +"with no other normalization, resolution or expansion." +msgstr "" + +#: ../../library/gzip.rst:154 +msgid "" +"Support for the :keyword:`with` statement was added, along with the *mtime* " +"constructor argument and :attr:`mtime` attribute." +msgstr "" + +#: ../../library/gzip.rst:158 +msgid "Support for zero-padded and unseekable files was added." +msgstr "" + +#: ../../library/gzip.rst:161 +msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." +msgstr "" + +#: ../../library/gzip.rst:164 +msgid "Added support for the ``'x'`` and ``'xb'`` modes." +msgstr "" + +#: ../../library/gzip.rst:167 +msgid "" +"Added support for writing arbitrary :term:`bytes-like objects `. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " +"of ``None``." +msgstr "" + +#: ../../library/gzip.rst:176 +msgid "" +"Opening :class:`GzipFile` for writing without specifying the *mode* argument " +"is deprecated." +msgstr "" + +#: ../../library/gzip.rst:180 +msgid "" +"Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` attribute " +"instead." +msgstr "" + +#: ../../library/gzip.rst:187 +msgid "" +"Compress the *data*, returning a :class:`bytes` object containing the " +"compressed data. *compresslevel* and *mtime* have the same meaning as in " +"the :class:`GzipFile` constructor above, but *mtime* defaults to 0 for " +"reproducible output." +msgstr "" + +#: ../../library/gzip.rst:193 +msgid "Added the *mtime* parameter for reproducible output." +msgstr "" + +#: ../../library/gzip.rst:195 +msgid "" +"Speed is improved by compressing all data at once instead of in a streamed " +"fashion. Calls with *mtime* set to ``0`` are delegated " +"to :func:`zlib.compress` for better speed. In this situation the output may " +"contain a gzip header \"OS\" byte value other than 255 \"unknown\" as " +"supplied by the underlying zlib implementation." +msgstr "" + +#: ../../library/gzip.rst:202 +msgid "" +"The gzip header OS byte is guaranteed to be set to 255 when this function is " +"used as was the case in 3.10 and earlier." +msgstr "" + +#: ../../library/gzip.rst:205 +msgid "" +"The *mtime* parameter now defaults to 0 for reproducible output. For the " +"previous behaviour of using the current time, pass ``None`` to *mtime*." +msgstr "" + +#: ../../library/gzip.rst:212 +msgid "" +"Decompress the *data*, returning a :class:`bytes` object containing the " +"uncompressed data. This function is capable of decompressing multi-member " +"gzip data (multiple gzip blocks concatenated together). When the data is " +"certain to contain only one member the :func:`zlib.decompress` function with " +"*wbits* set to 31 is faster." +msgstr "" + +#: ../../library/gzip.rst:219 +msgid "" +"Speed is improved by decompressing members at once in memory instead of in a " +"streamed fashion." +msgstr "" + +#: ../../library/gzip.rst:226 +msgid "Examples of usage" +msgstr "" + +#: ../../library/gzip.rst:228 +msgid "Example of how to read a compressed file::" +msgstr "" + +#: ../../library/gzip.rst:230 +msgid "" +"import gzip\n" +"with gzip.open('/home/joe/file.txt.gz', 'rb') as f:\n" +" file_content = f.read()" +msgstr "" + +#: ../../library/gzip.rst:234 +msgid "Example of how to create a compressed GZIP file::" +msgstr "" + +#: ../../library/gzip.rst:236 +msgid "" +"import gzip\n" +"content = b\"Lots of content here\"\n" +"with gzip.open('/home/joe/file.txt.gz', 'wb') as f:\n" +" f.write(content)" +msgstr "" + +#: ../../library/gzip.rst:241 +msgid "Example of how to GZIP compress an existing file::" +msgstr "" + +#: ../../library/gzip.rst:243 +msgid "" +"import gzip\n" +"import shutil\n" +"with open('/home/joe/file.txt', 'rb') as f_in:\n" +" with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out:\n" +" shutil.copyfileobj(f_in, f_out)" +msgstr "" + +#: ../../library/gzip.rst:249 +msgid "Example of how to GZIP compress a binary string::" +msgstr "" + +#: ../../library/gzip.rst:251 +msgid "" +"import gzip\n" +"s_in = b\"Lots of content here\"\n" +"s_out = gzip.compress(s_in)" +msgstr "" + +#: ../../library/gzip.rst:257 +msgid "Module :mod:`zlib`" +msgstr "" + +#: ../../library/gzip.rst:258 +msgid "" +"The basic data compression module needed to support the :program:`gzip` file " +"format." +msgstr "" + +#: ../../library/gzip.rst:261 +msgid "" +"In case gzip (de)compression is a bottleneck, the `python-isal`_ package " +"speeds up (de)compression with a mostly compatible API." +msgstr "" + +#: ../../library/gzip.rst:271 +msgid "Command Line Interface" +msgstr "" + +#: ../../library/gzip.rst:273 +msgid "" +"The :mod:`gzip` module provides a simple command line interface to compress " +"or decompress files." +msgstr "" + +#: ../../library/gzip.rst:276 +msgid "Once executed the :mod:`gzip` module keeps the input file(s)." +msgstr "" + +#: ../../library/gzip.rst:280 +msgid "" +"Add a new command line interface with a usage. By default, when you will " +"execute the CLI, the default compression level is 6." +msgstr "" + +#: ../../library/gzip.rst:284 +msgid "Command line options" +msgstr "" + +#: ../../library/gzip.rst:288 +msgid "If *file* is not specified, read from :data:`sys.stdin`." +msgstr "" + +#: ../../library/gzip.rst:292 +msgid "Indicates the fastest compression method (less compression)." +msgstr "" + +#: ../../library/gzip.rst:296 +msgid "Indicates the slowest compression method (best compression)." +msgstr "" + +#: ../../library/gzip.rst:300 +msgid "Decompress the given file." +msgstr "" + +#: ../../library/gzip.rst:304 +msgid "Show the help message." +msgstr "" diff --git a/library/hashlib.po b/library/hashlib.po new file mode 100644 index 0000000..881089a --- /dev/null +++ b/library/hashlib.po @@ -0,0 +1,1051 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/hashlib.rst:2 +msgid ":mod:`!hashlib` --- Secure hashes and message digests" +msgstr "" + +#: ../../library/hashlib.rst:10 +msgid "**Source code:** :source:`Lib/hashlib.py`" +msgstr "" + +#: ../../library/hashlib.rst:23 +msgid "" +"This module implements a common interface to many different hash algorithms. " +"Included are the FIPS secure hash algorithms SHA224, SHA256, SHA384, SHA512, " +"(defined in `the FIPS 180-4 standard`_), the SHA-3 series (defined in `the " +"FIPS 202 standard`_) as well as the legacy algorithms SHA1 (`formerly part " +"of FIPS`_) and the MD5 algorithm (defined in internet :rfc:`1321`)." +msgstr "" + +#: ../../library/hashlib.rst:31 +msgid "" +"If you want the adler32 or crc32 hash functions, they are available in " +"the :mod:`zlib` module." +msgstr "" + +#: ../../library/hashlib.rst:38 +msgid "Hash algorithms" +msgstr "" + +#: ../../library/hashlib.rst:40 +msgid "" +"There is one constructor method named for each type of :dfn:`hash`. All " +"return a hash object with the same simple interface. For example: " +"use :func:`sha256` to create a SHA-256 hash object. You can now feed this " +"object with :term:`bytes-like objects ` " +"(normally :class:`bytes`) using the :meth:`update` method. At " +"any point you can ask it for the :dfn:`digest` of the concatenation of the " +"data fed to it so far using the :meth:`digest()` " +"or :meth:`hexdigest()` methods." +msgstr "" + +#: ../../library/hashlib.rst:48 +msgid "" +"To allow multithreading, the Python :term:`GIL` is released while computing " +"a hash supplied more than 2047 bytes of data at once in its constructor " +"or :meth:`.update` method." +msgstr "" + +#: ../../library/hashlib.rst:55 +msgid "" +"Constructors for hash algorithms that are always present in this module " +"are :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:`sha512`, :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`, :func:`blake2b`, " +"and :func:`blake2s`. :func:`md5` is normally available as well, though it " +"may be missing or blocked if you are using a rare \"FIPS compliant\" build " +"of Python. These correspond to :data:`algorithms_guaranteed`." +msgstr "" + +#: ../../library/hashlib.rst:63 +msgid "" +"Additional algorithms may also be available if your Python " +"distribution's :mod:`hashlib` was linked against a build of OpenSSL that " +"provides others. Others *are not guaranteed available* on all installations " +"and will only be accessible by name via :func:`new`. " +"See :data:`algorithms_available`." +msgstr "" + +#: ../../library/hashlib.rst:70 +msgid "" +"Some algorithms have known hash collision weaknesses (including MD5 and " +"SHA1). Refer to `Attacks on cryptographic hash algorithms`_ and the `hashlib-" +"seealso`_ section at the end of this document." +msgstr "" + +#: ../../library/hashlib.rst:74 +msgid "" +"SHA3 (Keccak) and SHAKE " +"constructors :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` " +"were added. :func:`blake2b` and :func:`blake2s` were added." +msgstr "" + +#: ../../library/hashlib.rst:82 +msgid "" +"All hashlib constructors take a keyword-only argument *usedforsecurity* with " +"default value ``True``. A false value allows the use of insecure and blocked " +"hashing algorithms in restricted environments. ``False`` indicates that the " +"hashing algorithm is not used in a security context, e.g. as a non-" +"cryptographic one-way compression function." +msgstr "" + +#: ../../library/hashlib.rst:89 +msgid "Hashlib now uses SHA3 and SHAKE from OpenSSL if it provides it." +msgstr "" + +#: ../../library/hashlib.rst:92 +msgid "" +"For any of the MD5, SHA1, SHA2, or SHA3 algorithms that the linked OpenSSL " +"does not provide we fall back to a verified implementation from the `HACL\\* " +"project`_." +msgstr "" + +#: ../../library/hashlib.rst:98 +msgid "Usage" +msgstr "" + +#: ../../library/hashlib.rst:100 +msgid "" +"To obtain the digest of the byte string ``b\"Nobody inspects the spammish " +"repetition\"``::" +msgstr "" + +#: ../../library/hashlib.rst:103 +msgid "" +">>> import hashlib\n" +">>> m = hashlib.sha256()\n" +">>> m.update(b\"Nobody inspects\")\n" +">>> m.update(b\" the spammish repetition\")\n" +">>> m.digest()\n" +"b'\\x03\\x1e\\xdd}Ae\\x15\\x93\\xc5\\xfe\\\\" +"\\x00o\\xa5u+7\\xfd\\xdf\\xf7\\xbcN\\x84:\\xa6\\xaf\\x0c\\x95\\x0fK\\x94\\x06'\n" +">>> m.hexdigest()\n" +"'031edd7d41651593c5fe5c006fa5752b37fddff7bc4e843aa6af0c950f4b9406'" +msgstr "" + +#: ../../library/hashlib.rst:112 +msgid "More condensed:" +msgstr "" + +#: ../../library/hashlib.rst:118 +msgid "Constructors" +msgstr "" + +#: ../../library/hashlib.rst:122 +msgid "" +"Is a generic constructor that takes the string *name* of the desired " +"algorithm as its first parameter. It also exists to allow access to the " +"above listed hashes as well as any other algorithms that your OpenSSL " +"library may offer." +msgstr "" + +#: ../../library/hashlib.rst:127 +msgid "Using :func:`new` with an algorithm name:" +msgstr "" + +#: ../../library/hashlib.rst:146 +msgid "" +"Named constructors such as these are faster than passing an algorithm name " +"to :func:`new`." +msgstr "" + +#: ../../library/hashlib.rst:150 +msgid "Attributes" +msgstr "" + +#: ../../library/hashlib.rst:152 +msgid "Hashlib provides the following constant module attributes:" +msgstr "" + +#: ../../library/hashlib.rst:156 +msgid "" +"A set containing the names of the hash algorithms guaranteed to be supported " +"by this module on all platforms. Note that 'md5' is in this list despite " +"some upstream vendors offering an odd \"FIPS compliant\" Python build that " +"excludes it." +msgstr "" + +#: ../../library/hashlib.rst:165 +msgid "" +"A set containing the names of the hash algorithms that are available in the " +"running Python interpreter. These names will be recognized when passed " +"to :func:`new`. :attr:`algorithms_guaranteed` will always be a subset. The " +"same algorithm may appear multiple times in this set under different names " +"(thanks to OpenSSL)." +msgstr "" + +#: ../../library/hashlib.rst:174 +msgid "Hash Objects" +msgstr "" + +#: ../../library/hashlib.rst:176 +msgid "" +"The following values are provided as constant attributes of the hash objects " +"returned by the constructors:" +msgstr "" + +#: ../../library/hashlib.rst:181 +msgid "The size of the resulting hash in bytes." +msgstr "" + +#: ../../library/hashlib.rst:185 +msgid "The internal block size of the hash algorithm in bytes." +msgstr "" + +#: ../../library/hashlib.rst:187 +msgid "A hash object has the following attributes:" +msgstr "" + +#: ../../library/hashlib.rst:191 +msgid "" +"The canonical name of this hash, always lowercase and always suitable as a " +"parameter to :func:`new` to create another hash of this type." +msgstr "" + +#: ../../library/hashlib.rst:194 +msgid "" +"The name attribute has been present in CPython since its inception, but " +"until Python 3.4 was not formally specified, so may not exist on some " +"platforms." +msgstr "" + +#: ../../library/hashlib.rst:199 +msgid "A hash object has the following methods:" +msgstr "" + +#: ../../library/hashlib.rst:204 +msgid "" +"Update the hash object with the :term:`bytes-like object`. Repeated calls " +"are equivalent to a single call with the concatenation of all the arguments: " +"``m.update(a); m.update(b)`` is equivalent to ``m.update(a+b)``." +msgstr "" + +#: ../../library/hashlib.rst:212 +msgid "" +"Return the digest of the data passed to the :meth:`update` method so far. " +"This is a bytes object of size :attr:`digest_size` which may contain bytes " +"in the whole range from 0 to 255." +msgstr "" + +#: ../../library/hashlib.rst:219 +msgid "" +"Like :meth:`digest` except the digest is returned as a string object of " +"double length, containing only hexadecimal digits. This may be used to " +"exchange the value safely in email or other non-binary environments." +msgstr "" + +#: ../../library/hashlib.rst:226 +msgid "" +"Return a copy (\"clone\") of the hash object. This can be used to " +"efficiently compute the digests of data sharing a common initial substring." +msgstr "" + +#: ../../library/hashlib.rst:231 +msgid "SHAKE variable length digests" +msgstr "" + +#: ../../library/hashlib.rst:236 +msgid "" +"The :func:`shake_128` and :func:`shake_256` algorithms provide variable " +"length digests with length_in_bits//2 up to 128 or 256 bits of security. As " +"such, their digest methods require a length. Maximum length is not limited " +"by the SHAKE algorithm." +msgstr "" + +#: ../../library/hashlib.rst:243 +msgid "" +"Return the digest of the data passed to the :meth:`~hash.update` method so " +"far. This is a bytes object of size *length* which may contain bytes in the " +"whole range from 0 to 255." +msgstr "" + +#: ../../library/hashlib.rst:250 +msgid "" +"Like :meth:`digest` except the digest is returned as a string object of " +"double length, containing only hexadecimal digits. This may be used to " +"exchange the value in email or other non-binary environments." +msgstr "" + +#: ../../library/hashlib.rst:254 +msgid "Example use:" +msgstr "" + +#: ../../library/hashlib.rst:261 +msgid "File hashing" +msgstr "" + +#: ../../library/hashlib.rst:263 +msgid "" +"The hashlib module provides a helper function for efficient hashing of a " +"file or file-like object." +msgstr "" + +#: ../../library/hashlib.rst:268 +msgid "" +"Return a digest object that has been updated with contents of file object." +msgstr "" + +#: ../../library/hashlib.rst:270 +msgid "" +"*fileobj* must be a file-like object opened for reading in binary mode. It " +"accepts file objects from builtin :func:`open`, :class:`~io.BytesIO` " +"instances, SocketIO objects from :meth:`socket.socket.makefile`, and " +"similar. *fileobj* must be opened in blocking mode, otherwise " +"a :exc:`BlockingIOError` may be raised." +msgstr "" + +#: ../../library/hashlib.rst:276 +msgid "" +"The function may bypass Python's I/O and use the file descriptor " +"from :meth:`~io.IOBase.fileno` directly. *fileobj* must be assumed to be in " +"an unknown state after this function returns or raises. It is up to the " +"caller to close *fileobj*." +msgstr "" + +#: ../../library/hashlib.rst:281 +msgid "" +"*digest* must either be a hash algorithm name as a *str*, a hash " +"constructor, or a callable that returns a hash object." +msgstr "" + +#: ../../library/hashlib.rst:284 +msgid "Example:" +msgstr "" + +#: ../../library/hashlib.rst:305 +msgid "" +"Now raises a :exc:`BlockingIOError` if the file is opened in blocking mode. " +"Previously, spurious null bytes were added to the digest." +msgstr "" + +#: ../../library/hashlib.rst:311 +msgid "Key derivation" +msgstr "" + +#: ../../library/hashlib.rst:313 +msgid "" +"Key derivation and key stretching algorithms are designed for secure " +"password hashing. Naive algorithms such as ``sha1(password)`` are not " +"resistant against brute-force attacks. A good password hashing function must " +"be tunable, slow, and include a `salt `_." +msgstr "" + +#: ../../library/hashlib.rst:321 +msgid "" +"The function provides PKCS#5 password-based key derivation function 2. It " +"uses HMAC as pseudorandom function." +msgstr "" + +#: ../../library/hashlib.rst:324 +msgid "" +"The string *hash_name* is the desired name of the hash digest algorithm for " +"HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " +"buffers of bytes. Applications and libraries should limit *password* to a " +"sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " +"proper source, e.g. :func:`os.urandom`." +msgstr "" + +#: ../../library/hashlib.rst:330 +msgid "" +"The number of *iterations* should be chosen based on the hash algorithm and " +"computing power. As of 2022, hundreds of thousands of iterations of SHA-256 " +"are suggested. For rationale as to why and how to choose what is best for " +"your application, read *Appendix A.2.2* of NIST-SP-800-132_. The answers on " +"the `stackexchange pbkdf2 iterations question`_ explain in detail." +msgstr "" + +#: ../../library/hashlib.rst:336 +msgid "" +"*dklen* is the length of the derived key in bytes. If *dklen* is ``None`` " +"then the digest size of the hash algorithm *hash_name* is used, e.g. 64 for " +"SHA-512." +msgstr "" + +#: ../../library/hashlib.rst:345 +msgid "Function only available when Python is compiled with OpenSSL." +msgstr "" + +#: ../../library/hashlib.rst:349 +msgid "" +"Function now only available when Python is built with OpenSSL. The slow pure " +"Python implementation has been removed." +msgstr "" + +#: ../../library/hashlib.rst:355 +msgid "" +"The function provides scrypt password-based key derivation function as " +"defined in :rfc:`7914`." +msgstr "" + +#: ../../library/hashlib.rst:358 +msgid "" +"*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " +"length (e.g. 1024). *salt* should be about 16 or more bytes from a proper " +"source, e.g. :func:`os.urandom`." +msgstr "" + +#: ../../library/hashlib.rst:363 +msgid "" +"*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " +"factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " +"*dklen* is the length of the derived key in bytes." +msgstr "" + +#: ../../library/hashlib.rst:373 +msgid "BLAKE2" +msgstr "" + +#: ../../library/hashlib.rst:380 +msgid "" +"BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " +"in two flavors:" +msgstr "" + +#: ../../library/hashlib.rst:383 +msgid "" +"**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " +"between 1 and 64 bytes," +msgstr "" + +#: ../../library/hashlib.rst:386 +msgid "" +"**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " +"any size between 1 and 32 bytes." +msgstr "" + +#: ../../library/hashlib.rst:389 +msgid "" +"BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " +"**salted hashing**, **personalization**, and **tree hashing**." +msgstr "" + +#: ../../library/hashlib.rst:392 +msgid "" +"Hash objects from this module follow the API of standard " +"library's :mod:`hashlib` objects." +msgstr "" + +#: ../../library/hashlib.rst:397 +msgid "Creating hash objects" +msgstr "" + +#: ../../library/hashlib.rst:399 +msgid "New hash objects are created by calling constructor functions:" +msgstr "" + +#: ../../library/hashlib.rst:413 +msgid "" +"These functions return the corresponding hash objects for calculating " +"BLAKE2b or BLAKE2s. They optionally take these general parameters:" +msgstr "" + +#: ../../library/hashlib.rst:416 +msgid "" +"*data*: initial chunk of data to hash, which must be :term:`bytes-like " +"object`. It can be passed only as positional argument." +msgstr "" + +#: ../../library/hashlib.rst:419 +msgid "*digest_size*: size of output digest in bytes." +msgstr "" + +#: ../../library/hashlib.rst:421 +msgid "" +"*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " +"BLAKE2s)." +msgstr "" + +#: ../../library/hashlib.rst:424 +msgid "" +"*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " +"bytes for BLAKE2s)." +msgstr "" + +#: ../../library/hashlib.rst:427 +msgid "" +"*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " +"for BLAKE2s)." +msgstr "" + +#: ../../library/hashlib.rst:430 +msgid "The following table shows limits for general parameters (in bytes):" +msgstr "" + +#: ../../library/hashlib.rst:433 +msgid "Hash" +msgstr "" + +#: ../../library/hashlib.rst:433 +msgid "digest_size" +msgstr "" + +#: ../../library/hashlib.rst:433 +msgid "len(key)" +msgstr "" + +#: ../../library/hashlib.rst:433 +msgid "len(salt)" +msgstr "" + +#: ../../library/hashlib.rst:433 +msgid "len(person)" +msgstr "" + +#: ../../library/hashlib.rst:435 +msgid "BLAKE2b" +msgstr "" + +#: ../../library/hashlib.rst:435 +msgid "64" +msgstr "" + +#: ../../library/hashlib.rst:435 +msgid "16" +msgstr "" + +#: ../../library/hashlib.rst:436 +msgid "BLAKE2s" +msgstr "" + +#: ../../library/hashlib.rst:436 +msgid "32" +msgstr "" + +#: ../../library/hashlib.rst:436 +msgid "8" +msgstr "" + +#: ../../library/hashlib.rst:441 +msgid "" +"BLAKE2 specification defines constant lengths for salt and personalization " +"parameters, however, for convenience, this implementation accepts byte " +"strings of any size up to the specified length. If the length of the " +"parameter is less than specified, it is padded with zeros, thus, for " +"example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " +"the case for *key*.)" +msgstr "" + +#: ../../library/hashlib.rst:448 +msgid "These sizes are available as module `constants`_ described below." +msgstr "" + +#: ../../library/hashlib.rst:450 +msgid "" +"Constructor functions also accept the following tree hashing parameters:" +msgstr "" + +#: ../../library/hashlib.rst:452 +msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:454 +msgid "" +"*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " +"mode)." +msgstr "" + +#: ../../library/hashlib.rst:457 +msgid "" +"*leaf_size*: maximal byte length of leaf (0 to ``2**32-1``, 0 if unlimited " +"or in sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:460 +msgid "" +"*node_offset*: node offset (0 to ``2**64-1`` for BLAKE2b, 0 to ``2**48-1`` " +"for BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:463 +msgid "" +"*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:465 +msgid "" +"*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " +"in sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:468 +msgid "" +"*last_node*: boolean indicating whether the processed node is the last one " +"(``False`` for sequential mode)." +msgstr "" + +#: ../../library/hashlib.rst:471 +msgid "Explanation of tree mode parameters." +msgstr "" + +#: ../../library/hashlib.rst:475 +msgid "" +"See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." +msgstr "" + +#: ../../library/hashlib.rst:481 +msgid "Constants" +msgstr "" + +#: ../../library/hashlib.rst:486 +msgid "Salt length (maximum length accepted by constructors)." +msgstr "" + +#: ../../library/hashlib.rst:492 +msgid "" +"Personalization string length (maximum length accepted by constructors)." +msgstr "" + +#: ../../library/hashlib.rst:498 +msgid "Maximum key size." +msgstr "" + +#: ../../library/hashlib.rst:504 +msgid "Maximum digest size that the hash function can output." +msgstr "" + +#: ../../library/hashlib.rst:508 +msgid "Examples" +msgstr "" + +#: ../../library/hashlib.rst:511 +msgid "Simple hashing" +msgstr "" + +#: ../../library/hashlib.rst:513 +msgid "" +"To calculate hash of some data, you should first construct a hash object by " +"calling the appropriate constructor function (:func:`blake2b` " +"or :func:`blake2s`), then update it with the data by " +"calling :meth:`~hash.update` on the object, and, finally, get the digest out " +"of the object by calling :meth:`~hash.digest` (or :meth:`~hash.hexdigest` " +"for hex-encoded string)." +msgstr "" + +#: ../../library/hashlib.rst:526 +msgid "" +"As a shortcut, you can pass the first chunk of data to update directly to " +"the constructor as the positional argument:" +msgstr "" + +#: ../../library/hashlib.rst:533 +msgid "" +"You can call :meth:`hash.update` as many times as you need to iteratively " +"update the hash:" +msgstr "" + +#: ../../library/hashlib.rst:547 +msgid "Using different digest sizes" +msgstr "" + +#: ../../library/hashlib.rst:549 +msgid "" +"BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " +"32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " +"changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" +msgstr "" + +#: ../../library/hashlib.rst:563 +msgid "" +"Hash objects with different digest sizes have completely different outputs " +"(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " +"produce different outputs even if the output length is the same:" +msgstr "" + +#: ../../library/hashlib.rst:579 +msgid "Keyed hashing" +msgstr "" + +#: ../../library/hashlib.rst:581 +msgid "" +"Keyed hashing can be used for authentication as a faster and simpler " +"replacement for `Hash-based message authentication code `_ (HMAC). BLAKE2 can be securely used in prefix-" +"MAC mode thanks to the indifferentiability property inherited from BLAKE." +msgstr "" + +#: ../../library/hashlib.rst:587 +msgid "" +"This example shows how to get a (hex-encoded) 128-bit authentication code " +"for message ``b'message data'`` with key ``b'pseudorandom key'``::" +msgstr "" + +#: ../../library/hashlib.rst:590 +msgid "" +">>> from hashlib import blake2b\n" +">>> h = blake2b(key=b'pseudorandom key', digest_size=16)\n" +">>> h.update(b'message data')\n" +">>> h.hexdigest()\n" +"'3d363ff7401e02026f4a4687d4863ced'" +msgstr "" + +#: ../../library/hashlib.rst:597 +msgid "" +"As a practical example, a web application can symmetrically sign cookies " +"sent to users and later verify them to make sure they weren't tampered with::" +msgstr "" + +#: ../../library/hashlib.rst:600 +msgid "" +">>> from hashlib import blake2b\n" +">>> from hmac import compare_digest\n" +">>>\n" +">>> SECRET_KEY = b'pseudorandomly generated server secret key'\n" +">>> AUTH_SIZE = 16\n" +">>>\n" +">>> def sign(cookie):\n" +"... h = blake2b(digest_size=AUTH_SIZE, key=SECRET_KEY)\n" +"... h.update(cookie)\n" +"... return h.hexdigest().encode('utf-8')\n" +">>>\n" +">>> def verify(cookie, sig):\n" +"... good_sig = sign(cookie)\n" +"... return compare_digest(good_sig, sig)\n" +">>>\n" +">>> cookie = b'user-alice'\n" +">>> sig = sign(cookie)\n" +">>> print(\"{0},{1}\".format(cookie.decode('utf-8'), sig))\n" +"user-alice,b'43b3c982cf697e0c5ab22172d1ca7421'\n" +">>> verify(cookie, sig)\n" +"True\n" +">>> verify(b'user-bob', sig)\n" +"False\n" +">>> verify(cookie, b'0102030405060708090a0b0c0d0e0f00')\n" +"False" +msgstr "" + +#: ../../library/hashlib.rst:626 +msgid "" +"Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " +"used in HMAC construction with :mod:`hmac` module::" +msgstr "" + +#: ../../library/hashlib.rst:629 +msgid "" +">>> import hmac, hashlib\n" +">>> m = hmac.new(b'secret key', digestmod=hashlib.blake2s)\n" +">>> m.update(b'message')\n" +">>> m.hexdigest()\n" +"'e3c8102868d28b5ff85fc35dda07329970d1a01e273c37481326fe0c861c8142'" +msgstr "" + +#: ../../library/hashlib.rst:637 +msgid "Randomized hashing" +msgstr "" + +#: ../../library/hashlib.rst:639 +msgid "" +"By setting *salt* parameter users can introduce randomization to the hash " +"function. Randomized hashing is useful for protecting against collision " +"attacks on the hash function used in digital signatures." +msgstr "" + +#: ../../library/hashlib.rst:643 +msgid "" +"Randomized hashing is designed for situations where one party, the message " +"preparer, generates all or part of a message to be signed by a second party, " +"the message signer. If the message preparer is able to find cryptographic " +"hash function collisions (i.e., two messages producing the same hash value), " +"then they might prepare meaningful versions of the message that would " +"produce the same hash value and digital signature, but with different " +"results (e.g., transferring $1,000,000 to an account, rather than $10). " +"Cryptographic hash functions have been designed with collision resistance as " +"a major goal, but the current concentration on attacking cryptographic hash " +"functions may result in a given cryptographic hash function providing less " +"collision resistance than expected. Randomized hashing offers the signer " +"additional protection by reducing the likelihood that a preparer can " +"generate two or more messages that ultimately yield the same hash value " +"during the digital signature generation process --- even if it is practical " +"to find collisions for the hash function. However, the use of randomized " +"hashing may reduce the amount of security provided by a digital signature " +"when all portions of the message are prepared by the signer." +msgstr "" + +#: ../../library/hashlib.rst:662 +msgid "" +"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" +msgstr "" + +#: ../../library/hashlib.rst:665 +msgid "" +"In BLAKE2 the salt is processed as a one-time input to the hash function " +"during initialization, rather than as an input to each compression function." +msgstr "" + +#: ../../library/hashlib.rst:670 +msgid "" +"*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " +"cryptographic hash function, such as SHA-256, is not suitable for hashing " +"passwords. See `BLAKE2 FAQ `_ for more " +"information." +msgstr "" + +#: ../../library/hashlib.rst:693 +msgid "Personalization" +msgstr "" + +#: ../../library/hashlib.rst:695 +msgid "" +"Sometimes it is useful to force hash function to produce different digests " +"for the same input for different purposes. Quoting the authors of the Skein " +"hash function:" +msgstr "" + +#: ../../library/hashlib.rst:699 +msgid "" +"We recommend that all application designers seriously consider doing this; " +"we have seen many protocols where a hash that is computed in one part of the " +"protocol can be used in an entirely different part because two hash " +"computations were done on similar or related data, and the attacker can " +"force the application to make the hash inputs the same. Personalizing each " +"hash function used in the protocol summarily stops this type of attack." +msgstr "" + +#: ../../library/hashlib.rst:706 +msgid "" +"(`The Skein Hash Function Family `_, p. 21)" +msgstr "" + +#: ../../library/hashlib.rst:710 +msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" +msgstr "" + +#: ../../library/hashlib.rst:712 +msgid "" +">>> from hashlib import blake2b\n" +">>> FILES_HASH_PERSON = b'MyApp Files Hash'\n" +">>> BLOCK_HASH_PERSON = b'MyApp Block Hash'\n" +">>> h = blake2b(digest_size=32, person=FILES_HASH_PERSON)\n" +">>> h.update(b'the same content')\n" +">>> h.hexdigest()\n" +"'20d9cd024d4fb086aae819a1432dd2466de12947831b75c5a30cf2676095d3b4'\n" +">>> h = blake2b(digest_size=32, person=BLOCK_HASH_PERSON)\n" +">>> h.update(b'the same content')\n" +">>> h.hexdigest()\n" +"'cf68fb5761b9c44e7878bfb2c4c9aea52264a80b75005e65619778de59f383a3'" +msgstr "" + +#: ../../library/hashlib.rst:724 +msgid "" +"Personalization together with the keyed mode can also be used to derive " +"different keys from a single one." +msgstr "" + +#: ../../library/hashlib.rst:738 +msgid "Tree mode" +msgstr "" + +#: ../../library/hashlib.rst:740 +msgid "Here's an example of hashing a minimal tree with two leaf nodes::" +msgstr "" + +#: ../../library/hashlib.rst:742 +msgid "" +" 10\n" +" / \\\n" +"00 01" +msgstr "" + +#: ../../library/hashlib.rst:746 +msgid "" +"This example uses 64-byte internal digests, and returns the 32-byte final " +"digest::" +msgstr "" + +#: ../../library/hashlib.rst:749 +msgid "" +">>> from hashlib import blake2b\n" +">>>\n" +">>> FANOUT = 2\n" +">>> DEPTH = 2\n" +">>> LEAF_SIZE = 4096\n" +">>> INNER_SIZE = 64\n" +">>>\n" +">>> buf = bytearray(6000)\n" +">>>\n" +">>> # Left leaf\n" +"... h00 = blake2b(buf[0:LEAF_SIZE], fanout=FANOUT, depth=DEPTH,\n" +"... leaf_size=LEAF_SIZE, inner_size=INNER_SIZE,\n" +"... node_offset=0, node_depth=0, last_node=False)\n" +">>> # Right leaf\n" +"... h01 = blake2b(buf[LEAF_SIZE:], fanout=FANOUT, depth=DEPTH,\n" +"... leaf_size=LEAF_SIZE, inner_size=INNER_SIZE,\n" +"... node_offset=1, node_depth=0, last_node=True)\n" +">>> # Root node\n" +"... h10 = blake2b(digest_size=32, fanout=FANOUT, depth=DEPTH,\n" +"... leaf_size=LEAF_SIZE, inner_size=INNER_SIZE,\n" +"... node_offset=0, node_depth=1, last_node=True)\n" +">>> h10.update(h00.digest())\n" +">>> h10.update(h01.digest())\n" +">>> h10.hexdigest()\n" +"'3ad2a9b37c6070e374c7a8c508fe20ca86b6ed54e286e93a0318e95e881db5aa'" +msgstr "" + +#: ../../library/hashlib.rst:776 +msgid "Credits" +msgstr "" + +#: ../../library/hashlib.rst:778 +msgid "" +"BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " +"created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " +"*Raphael C.-W. Phan*." +msgstr "" + +#: ../../library/hashlib.rst:783 +msgid "" +"It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " +"Bernstein*." +msgstr "" + +#: ../../library/hashlib.rst:785 +msgid "" +"The stdlib implementation is based on pyblake2_ module. It was written by " +"*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " +"documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." +msgstr "" + +#: ../../library/hashlib.rst:789 +msgid "The C code was partly rewritten for Python by *Christian Heimes*." +msgstr "" + +#: ../../library/hashlib.rst:791 +msgid "" +"The following public domain dedication applies for both C hash function " +"implementation, extension code, and this documentation:" +msgstr "" + +#: ../../library/hashlib.rst:794 +msgid "" +"To the extent possible under law, the author(s) have dedicated all copyright " +"and related and neighboring rights to this software to the public domain " +"worldwide. This software is distributed without any warranty." +msgstr "" + +#: ../../library/hashlib.rst:798 +msgid "" +"You should have received a copy of the CC0 Public Domain Dedication along " +"with this software. If not, see https://creativecommons.org/publicdomain/" +"zero/1.0/." +msgstr "" + +#: ../../library/hashlib.rst:802 +msgid "" +"The following people have helped with development or contributed their " +"changes to the project and the public domain according to the Creative " +"Commons Public Domain Dedication 1.0 Universal:" +msgstr "" + +#: ../../library/hashlib.rst:806 +msgid "*Alexandr Sokolovskiy*" +msgstr "" + +#: ../../library/hashlib.rst:827 +msgid "Module :mod:`hmac`" +msgstr "" + +#: ../../library/hashlib.rst:828 +msgid "A module to generate message authentication codes using hashes." +msgstr "" + +#: ../../library/hashlib.rst:830 +msgid "Module :mod:`base64`" +msgstr "" + +#: ../../library/hashlib.rst:831 +msgid "Another way to encode binary hashes for non-binary environments." +msgstr "" + +#: ../../library/hashlib.rst:833 +msgid "https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf" +msgstr "" + +#: ../../library/hashlib.rst:834 +msgid "The FIPS 180-4 publication on Secure Hash Algorithms." +msgstr "" + +#: ../../library/hashlib.rst:836 +msgid "https://csrc.nist.gov/pubs/fips/202/final" +msgstr "" + +#: ../../library/hashlib.rst:837 +msgid "The FIPS 202 publication on the SHA-3 Standard." +msgstr "" + +#: ../../library/hashlib.rst:839 +msgid "https://www.blake2.net/" +msgstr "" + +#: ../../library/hashlib.rst:840 +msgid "Official BLAKE2 website." +msgstr "" + +#: ../../library/hashlib.rst:842 +msgid "https://en.wikipedia.org/wiki/Cryptographic_hash_function" +msgstr "" + +#: ../../library/hashlib.rst:843 +msgid "" +"Wikipedia article with information on which algorithms have known issues and " +"what that means regarding their use." +msgstr "" + +#: ../../library/hashlib.rst:846 +msgid "https://www.ietf.org/rfc/rfc8018.txt" +msgstr "" + +#: ../../library/hashlib.rst:847 +msgid "PKCS #5: Password-Based Cryptography Specification Version 2.1" +msgstr "" + +#: ../../library/hashlib.rst:849 +msgid "" +"https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" +msgstr "" + +#: ../../library/hashlib.rst:850 +msgid "NIST Recommendation for Password-Based Key Derivation." +msgstr "" + +#: ../../library/hashlib.rst:12 +msgid "message digest, MD5" +msgstr "" + +#: ../../library/hashlib.rst:12 +msgid "" +"secure hash algorithm, SHA1, SHA2, SHA224, SHA256, SHA384, SHA512, SHA3, " +"Shake, Blake2" +msgstr "" + +#: ../../library/hashlib.rst:53 +msgid "OpenSSL" +msgstr "" + +#: ../../library/hashlib.rst:53 +msgid "(use in module hashlib)" +msgstr "" + +#: ../../library/hashlib.rst:377 +msgid "blake2b, blake2s" +msgstr "" diff --git a/library/heapq.po b/library/heapq.po new file mode 100644 index 0000000..4b2d0b3 --- /dev/null +++ b/library/heapq.po @@ -0,0 +1,537 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/heapq.rst:2 +msgid ":mod:`!heapq` --- Heap queue algorithm" +msgstr "" + +#: ../../library/heapq.rst:12 +msgid "**Source code:** :source:`Lib/heapq.py`" +msgstr "" + +#: ../../library/heapq.rst:16 +msgid "" +"This module provides an implementation of the heap queue algorithm, also " +"known as the priority queue algorithm." +msgstr "" + +#: ../../library/heapq.rst:19 +msgid "" +"Min-heaps are binary trees for which every parent node has a value less than " +"or equal to any of its children. We refer to this condition as the heap " +"invariant." +msgstr "" + +#: ../../library/heapq.rst:23 +msgid "" +"For min-heaps, this implementation uses lists for which ``heap[k] <= " +"heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]`` for all *k* for which the " +"compared elements exist. Elements are counted from zero. The interesting " +"property of a min-heap is that its smallest element is always the root, " +"``heap[0]``." +msgstr "" + +#: ../../library/heapq.rst:29 +msgid "" +"Max-heaps satisfy the reverse invariant: every parent node has a value " +"*greater* than any of its children. These are implemented as lists for " +"which ``maxheap[2*k+1] <= maxheap[k]`` and ``maxheap[2*k+2] <= maxheap[k]`` " +"for all *k* for which the compared elements exist. The root, ``maxheap[0]``, " +"contains the *largest* element; ``heap.sort(reverse=True)`` maintains the " +"max-heap invariant." +msgstr "" + +#: ../../library/heapq.rst:36 +msgid "" +"The :mod:`!heapq` API differs from textbook heap algorithms in two aspects: " +"(a) We use zero-based indexing. This makes the relationship between the " +"index for a node and the indexes for its children slightly less obvious, but " +"is more suitable since Python uses zero-based indexing. (b) Textbooks often " +"focus on max-heaps, due to their suitability for in-place sorting. Our " +"implementation favors min-heaps as they better correspond to " +"Python :class:`lists `." +msgstr "" + +#: ../../library/heapq.rst:43 +msgid "" +"These two aspects make it possible to view the heap as a regular Python list " +"without surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` " +"maintains the heap invariant!" +msgstr "" + +#: ../../library/heapq.rst:47 +msgid "" +"Like :meth:`list.sort`, this implementation uses only the ``<`` operator for " +"comparisons, for both min-heaps and max-heaps." +msgstr "" + +#: ../../library/heapq.rst:50 +msgid "" +"In the API below, and in this documentation, the unqualified term *heap* " +"generally refers to a min-heap. The API for max-heaps is named using a " +"``_max`` suffix." +msgstr "" + +#: ../../library/heapq.rst:54 +msgid "" +"To create a heap, use a list initialized as ``[]``, or transform an existing " +"list into a min-heap or max-heap using the :func:`heapify` " +"or :func:`heapify_max` functions, respectively." +msgstr "" + +#: ../../library/heapq.rst:58 +msgid "The following functions are provided for min-heaps:" +msgstr "" + +#: ../../library/heapq.rst:63 +msgid "" +"Push the value *item* onto the *heap*, maintaining the min-heap invariant." +msgstr "" + +#: ../../library/heapq.rst:68 +msgid "" +"Pop and return the smallest item from the *heap*, maintaining the min-heap " +"invariant. If the heap is empty, :exc:`IndexError` is raised. To access " +"the smallest item without popping it, use ``heap[0]``." +msgstr "" + +#: ../../library/heapq.rst:75 +msgid "" +"Push *item* on the heap, then pop and return the smallest item from the " +"*heap*. The combined action runs more efficiently than :func:`heappush` " +"followed by a separate call to :func:`heappop`." +msgstr "" + +#: ../../library/heapq.rst:82 +msgid "Transform list *x* into a min-heap, in-place, in linear time." +msgstr "" + +#: ../../library/heapq.rst:87 +msgid "" +"Pop and return the smallest item from the *heap*, and also push the new " +"*item*. The heap size doesn't change. If the heap is " +"empty, :exc:`IndexError` is raised." +msgstr "" + +#: ../../library/heapq.rst:90 +msgid "" +"This one step operation is more efficient than a :func:`heappop` followed " +"by :func:`heappush` and can be more appropriate when using a fixed-size " +"heap. The pop/push combination always returns an element from the heap and " +"replaces it with *item*." +msgstr "" + +#: ../../library/heapq.rst:95 +msgid "" +"The value returned may be larger than the *item* added. If that isn't " +"desired, consider using :func:`heappushpop` instead. Its push/pop " +"combination returns the smaller of the two values, leaving the larger value " +"on the heap." +msgstr "" + +#: ../../library/heapq.rst:101 +msgid "For max-heaps, the following functions are provided:" +msgstr "" + +#: ../../library/heapq.rst:106 +msgid "Transform list *x* into a max-heap, in-place, in linear time." +msgstr "" + +#: ../../library/heapq.rst:113 +msgid "" +"Push the value *item* onto the max-heap *heap*, maintaining the max-heap " +"invariant." +msgstr "" + +#: ../../library/heapq.rst:121 +msgid "" +"Pop and return the largest item from the max-heap *heap*, maintaining the " +"max-heap invariant. If the max-heap is empty, :exc:`IndexError` is raised. " +"To access the largest item without popping it, use ``maxheap[0]``." +msgstr "" + +#: ../../library/heapq.rst:130 +msgid "" +"Push *item* on the max-heap *heap*, then pop and return the largest item " +"from *heap*. The combined action runs more efficiently " +"than :func:`heappush_max` followed by a separate call to :func:`heappop_max`." +msgstr "" + +#: ../../library/heapq.rst:140 +msgid "" +"Pop and return the largest item from the max-heap *heap* and also push the " +"new *item*. The max-heap size doesn't change. If the max-heap is " +"empty, :exc:`IndexError` is raised." +msgstr "" + +#: ../../library/heapq.rst:145 +msgid "" +"The value returned may be smaller than the *item* added. Refer to the " +"analogous function :func:`heapreplace` for detailed usage notes." +msgstr "" + +#: ../../library/heapq.rst:151 +msgid "The module also offers three general purpose functions based on heaps." +msgstr "" + +#: ../../library/heapq.rst:156 +msgid "" +"Merge multiple sorted inputs into a single sorted output (for example, merge " +"timestamped entries from multiple log files). Returns an :term:`iterator` " +"over the sorted values." +msgstr "" + +#: ../../library/heapq.rst:160 +msgid "" +"Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, " +"does not pull the data into memory all at once, and assumes that each of the " +"input streams is already sorted (smallest to largest)." +msgstr "" + +#: ../../library/heapq.rst:164 +msgid "" +"Has two optional arguments which must be specified as keyword arguments." +msgstr "" + +#: ../../library/heapq.rst:166 +msgid "" +"*key* specifies a :term:`key function` of one argument that is used to " +"extract a comparison key from each input element. The default value is " +"``None`` (compare the elements directly)." +msgstr "" + +#: ../../library/heapq.rst:170 +msgid "" +"*reverse* is a boolean value. If set to ``True``, then the input elements " +"are merged as if each comparison were reversed. To achieve behavior similar " +"to ``sorted(itertools.chain(*iterables), reverse=True)``, all iterables must " +"be sorted from largest to smallest." +msgstr "" + +#: ../../library/heapq.rst:175 +msgid "Added the optional *key* and *reverse* parameters." +msgstr "" + +#: ../../library/heapq.rst:181 +msgid "" +"Return a list with the *n* largest elements from the dataset defined by " +"*iterable*. *key*, if provided, specifies a function of one argument that " +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, " +"reverse=True)[:n]``." +msgstr "" + +#: ../../library/heapq.rst:190 +msgid "" +"Return a list with the *n* smallest elements from the dataset defined by " +"*iterable*. *key*, if provided, specifies a function of one argument that " +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)" +"[:n]``." +msgstr "" + +#: ../../library/heapq.rst:196 +msgid "" +"The latter two functions perform best for smaller values of *n*. For larger " +"values, it is more efficient to use the :func:`sorted` function. Also, when " +"``n==1``, it is more efficient to use the built-in :func:`min` " +"and :func:`max` functions. If repeated usage of these functions is " +"required, consider turning the iterable into an actual heap." +msgstr "" + +#: ../../library/heapq.rst:204 +msgid "Basic Examples" +msgstr "" + +#: ../../library/heapq.rst:206 +msgid "" +"A `heapsort `_ can be implemented by " +"pushing all values onto a heap and then popping off the smallest values one " +"at a time::" +msgstr "" + +#: ../../library/heapq.rst:210 +msgid "" +">>> def heapsort(iterable):\n" +"... h = []\n" +"... for value in iterable:\n" +"... heappush(h, value)\n" +"... return [heappop(h) for i in range(len(h))]\n" +"...\n" +">>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])\n" +"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" +msgstr "" + +#: ../../library/heapq.rst:219 +msgid "" +"This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " +"implementation is not stable." +msgstr "" + +#: ../../library/heapq.rst:222 +msgid "" +"Heap elements can be tuples. This is useful for assigning comparison values " +"(such as task priorities) alongside the main record being tracked::" +msgstr "" + +#: ../../library/heapq.rst:225 +msgid "" +">>> h = []\n" +">>> heappush(h, (5, 'write code'))\n" +">>> heappush(h, (7, 'release product'))\n" +">>> heappush(h, (1, 'write spec'))\n" +">>> heappush(h, (3, 'create tests'))\n" +">>> heappop(h)\n" +"(1, 'write spec')" +msgstr "" + +#: ../../library/heapq.rst:235 +msgid "Priority Queue Implementation Notes" +msgstr "" + +#: ../../library/heapq.rst:237 +msgid "" +"A `priority queue `_ is common " +"use for a heap, and it presents several implementation challenges:" +msgstr "" + +#: ../../library/heapq.rst:240 +msgid "" +"Sort stability: how do you get two tasks with equal priorities to be " +"returned in the order they were originally added?" +msgstr "" + +#: ../../library/heapq.rst:243 +msgid "" +"Tuple comparison breaks for (priority, task) pairs if the priorities are " +"equal and the tasks do not have a default comparison order." +msgstr "" + +#: ../../library/heapq.rst:246 +msgid "" +"If the priority of a task changes, how do you move it to a new position in " +"the heap?" +msgstr "" + +#: ../../library/heapq.rst:249 +msgid "" +"Or if a pending task needs to be deleted, how do you find it and remove it " +"from the queue?" +msgstr "" + +#: ../../library/heapq.rst:252 +msgid "" +"A solution to the first two challenges is to store entries as 3-element list " +"including the priority, an entry count, and the task. The entry count " +"serves as a tie-breaker so that two tasks with the same priority are " +"returned in the order they were added. And since no two entry counts are the " +"same, the tuple comparison will never attempt to directly compare two tasks." +msgstr "" + +#: ../../library/heapq.rst:258 +msgid "" +"Another solution to the problem of non-comparable tasks is to create a " +"wrapper class that ignores the task item and only compares the priority " +"field::" +msgstr "" + +#: ../../library/heapq.rst:261 +msgid "" +"from dataclasses import dataclass, field\n" +"from typing import Any\n" +"\n" +"@dataclass(order=True)\n" +"class PrioritizedItem:\n" +" priority: int\n" +" item: Any=field(compare=False)" +msgstr "" + +#: ../../library/heapq.rst:269 +msgid "" +"The remaining challenges revolve around finding a pending task and making " +"changes to its priority or removing it entirely. Finding a task can be done " +"with a dictionary pointing to an entry in the queue." +msgstr "" + +#: ../../library/heapq.rst:273 +msgid "" +"Removing the entry or changing its priority is more difficult because it " +"would break the heap structure invariants. So, a possible solution is to " +"mark the entry as removed and add a new entry with the revised priority::" +msgstr "" + +#: ../../library/heapq.rst:277 +msgid "" +"pq = [] # list of entries arranged in a heap\n" +"entry_finder = {} # mapping of tasks to entries\n" +"REMOVED = '' # placeholder for a removed task\n" +"counter = itertools.count() # unique sequence count\n" +"\n" +"def add_task(task, priority=0):\n" +" 'Add a new task or update the priority of an existing task'\n" +" if task in entry_finder:\n" +" remove_task(task)\n" +" count = next(counter)\n" +" entry = [priority, count, task]\n" +" entry_finder[task] = entry\n" +" heappush(pq, entry)\n" +"\n" +"def remove_task(task):\n" +" 'Mark an existing task as REMOVED. Raise KeyError if not found.'\n" +" entry = entry_finder.pop(task)\n" +" entry[-1] = REMOVED\n" +"\n" +"def pop_task():\n" +" 'Remove and return the lowest priority task. Raise KeyError if empty.'\n" +" while pq:\n" +" priority, count, task = heappop(pq)\n" +" if task is not REMOVED:\n" +" del entry_finder[task]\n" +" return task\n" +" raise KeyError('pop from an empty priority queue')" +msgstr "" + +#: ../../library/heapq.rst:307 +msgid "Theory" +msgstr "" + +#: ../../library/heapq.rst:309 +msgid "" +"Heaps are arrays for which ``a[k] <= a[2*k+1]`` and ``a[k] <= a[2*k+2]`` for " +"all *k*, counting elements from 0. For the sake of comparison, non-existing " +"elements are considered to be infinite. The interesting property of a heap " +"is that ``a[0]`` is always its smallest element." +msgstr "" + +#: ../../library/heapq.rst:314 +msgid "" +"The strange invariant above is meant to be an efficient memory " +"representation for a tournament. The numbers below are *k*, not ``a[k]``::" +msgstr "" + +#: ../../library/heapq.rst:317 +msgid "" +" 0\n" +"\n" +" 1 2\n" +"\n" +" 3 4 5 6\n" +"\n" +" 7 8 9 10 11 12 13 14\n" +"\n" +"15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30" +msgstr "" + +#: ../../library/heapq.rst:327 +msgid "" +"In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a " +"usual binary tournament we see in sports, each cell is the winner over the " +"two cells it tops, and we can trace the winner down the tree to see all " +"opponents s/he had. However, in many computer applications of such " +"tournaments, we do not need to trace the history of a winner. To be more " +"memory efficient, when a winner is promoted, we try to replace it by " +"something else at a lower level, and the rule becomes that a cell and the " +"two cells it tops contain three different items, but the top cell \"wins\" " +"over the two topped cells." +msgstr "" + +#: ../../library/heapq.rst:336 +msgid "" +"If this heap invariant is protected at all time, index 0 is clearly the " +"overall winner. The simplest algorithmic way to remove it and find the " +"\"next\" winner is to move some loser (let's say cell 30 in the diagram " +"above) into the 0 position, and then percolate this new 0 down the tree, " +"exchanging values, until the invariant is re-established. This is clearly " +"logarithmic on the total number of items in the tree. By iterating over all " +"items, you get an *O*\\ (*n* log *n*) sort." +msgstr "" + +#: ../../library/heapq.rst:343 +msgid "" +"A nice feature of this sort is that you can efficiently insert new items " +"while the sort is going on, provided that the inserted items are not " +"\"better\" than the last 0'th element you extracted. This is especially " +"useful in simulation contexts, where the tree holds all incoming events, and " +"the \"win\" condition means the smallest scheduled time. When an event " +"schedules other events for execution, they are scheduled into the future, so " +"they can easily go into the heap. So, a heap is a good structure for " +"implementing schedulers (this is what I used for my MIDI sequencer :-)." +msgstr "" + +#: ../../library/heapq.rst:352 +msgid "" +"Various structures for implementing schedulers have been extensively " +"studied, and heaps are good for this, as they are reasonably speedy, the " +"speed is almost constant, and the worst case is not much different than the " +"average case. However, there are other representations which are more " +"efficient overall, yet the worst cases might be terrible." +msgstr "" + +#: ../../library/heapq.rst:358 +msgid "" +"Heaps are also very useful in big disk sorts. You most probably all know " +"that a big sort implies producing \"runs\" (which are pre-sorted sequences, " +"whose size is usually related to the amount of CPU memory), followed by a " +"merging passes for these runs, which merging is often very cleverly " +"organised [#]_. It is very important that the initial sort produces the " +"longest runs possible. Tournaments are a good way to achieve that. If, " +"using all the memory available to hold a tournament, you replace and " +"percolate items that happen to fit the current run, you'll produce runs " +"which are twice the size of the memory for random input, and much better for " +"input fuzzily ordered." +msgstr "" + +#: ../../library/heapq.rst:368 +msgid "" +"Moreover, if you output the 0'th item on disk and get an input which may not " +"fit in the current tournament (because the value \"wins\" over the last " +"output value), it cannot fit in the heap, so the size of the heap " +"decreases. The freed memory could be cleverly reused immediately for " +"progressively building a second heap, which grows at exactly the same rate " +"the first heap is melting. When the first heap completely vanishes, you " +"switch heaps and start a new run. Clever and quite effective!" +msgstr "" + +#: ../../library/heapq.rst:376 +msgid "" +"In a word, heaps are useful memory structures to know. I use them in a few " +"applications, and I think it is good to keep a 'heap' module around. :-)" +msgstr "" + +#: ../../library/heapq.rst:380 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/heapq.rst:381 +msgid "" +"The disk balancing algorithms which are current, nowadays, are more annoying " +"than clever, and this is a consequence of the seeking capabilities of the " +"disks. On devices which cannot seek, like big tape drives, the story was " +"quite different, and one had to be very clever to ensure (far in advance) " +"that each tape movement will be the most effective possible (that is, will " +"best participate at \"progressing\" the merge). Some tapes were even able " +"to read backwards, and this was also used to avoid the rewinding time. " +"Believe me, real good tape sorts were quite spectacular to watch! From all " +"times, sorting has always been a Great Art! :-)" +msgstr "" diff --git a/library/hmac.po b/library/hmac.po new file mode 100644 index 0000000..add6f00 --- /dev/null +++ b/library/hmac.po @@ -0,0 +1,181 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/hmac.rst:2 +msgid ":mod:`!hmac` --- Keyed-Hashing for Message Authentication" +msgstr "" + +#: ../../library/hmac.rst:10 +msgid "**Source code:** :source:`Lib/hmac.py`" +msgstr "" + +#: ../../library/hmac.rst:14 +msgid "" +"This module implements the HMAC algorithm as described by :rfc:`2104`. The " +"interface allows to use any hash function with a *fixed* digest size. In " +"particular, extendable output functions such as SHAKE-128 or SHAKE-256 " +"cannot be used with HMAC." +msgstr "" + +#: ../../library/hmac.rst:22 +msgid "" +"Return a new hmac object. *key* is a bytes or bytearray object giving the " +"secret key. If *msg* is present, the method call ``update(msg)`` is made. " +"*digestmod* is the digest name, digest constructor or module for the HMAC " +"object to use. It may be any name suitable to :func:`hashlib.new`. Despite " +"its argument position, it is required." +msgstr "" + +#: ../../library/hmac.rst:28 +msgid "" +"Parameter *key* can be a bytes or bytearray object. Parameter *msg* can be " +"of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " +"name of a hash algorithm." +msgstr "" + +#: ../../library/hmac.rst:33 +msgid "" +"The *digestmod* argument is now required. Pass it as a keyword argument to " +"avoid awkwardness when you do not have an initial *msg*." +msgstr "" + +#: ../../library/hmac.rst:40 +msgid "" +"Return digest of *msg* for given secret *key* and *digest*. The function is " +"equivalent to ``HMAC(key, msg, digest).digest()``, but uses an optimized C " +"or inline implementation, which is faster for messages that fit into memory. " +"The parameters *key*, *msg*, and *digest* have the same meaning as " +"in :func:`~hmac.new`." +msgstr "" + +#: ../../library/hmac.rst:46 +msgid "" +"CPython implementation detail, the optimized C implementation is only used " +"when *digest* is a string and name of a digest algorithm, which is supported " +"by OpenSSL." +msgstr "" + +#: ../../library/hmac.rst:53 +msgid "An HMAC object has the following methods:" +msgstr "" + +#: ../../library/hmac.rst:57 +msgid "" +"Update the hmac object with *msg*. Repeated calls are equivalent to a " +"single call with the concatenation of all the arguments: ``m.update(a); " +"m.update(b)`` is equivalent to ``m.update(a + b)``." +msgstr "" + +#: ../../library/hmac.rst:61 +msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." +msgstr "" + +#: ../../library/hmac.rst:67 +msgid "" +"Return the digest of the bytes passed to the :meth:`update` method so far. " +"This bytes object will be the same length as the *digest_size* of the digest " +"given to the constructor. It may contain non-ASCII bytes, including NUL " +"bytes." +msgstr "" + +#: ../../library/hmac.rst:74 +msgid "" +"When comparing the output of :meth:`digest` to an externally supplied digest " +"during a verification routine, it is recommended to use " +"the :func:`compare_digest` function instead of the ``==`` operator to reduce " +"the vulnerability to timing attacks." +msgstr "" + +#: ../../library/hmac.rst:82 +msgid "" +"Like :meth:`digest` except the digest is returned as a string twice the " +"length containing only hexadecimal digits. This may be used to exchange the " +"value safely in email or other non-binary environments." +msgstr "" + +#: ../../library/hmac.rst:88 +msgid "" +"When comparing the output of :meth:`hexdigest` to an externally supplied " +"digest during a verification routine, it is recommended to use " +"the :func:`compare_digest` function instead of the ``==`` operator to reduce " +"the vulnerability to timing attacks." +msgstr "" + +#: ../../library/hmac.rst:96 +msgid "" +"Return a copy (\"clone\") of the hmac object. This can be used to " +"efficiently compute the digests of strings that share a common initial " +"substring." +msgstr "" + +#: ../../library/hmac.rst:100 +msgid "A hash object has the following attributes:" +msgstr "" + +#: ../../library/hmac.rst:104 +msgid "The size of the resulting HMAC digest in bytes." +msgstr "" + +#: ../../library/hmac.rst:108 +msgid "The internal block size of the hash algorithm in bytes." +msgstr "" + +#: ../../library/hmac.rst:114 +msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." +msgstr "" + +#: ../../library/hmac.rst:119 +msgid "" +"Removed the undocumented attributes ``HMAC.digest_cons``, ``HMAC.inner``, " +"and ``HMAC.outer``." +msgstr "" + +#: ../../library/hmac.rst:123 +msgid "This module also provides the following helper function:" +msgstr "" + +#: ../../library/hmac.rst:127 +msgid "" +"Return ``a == b``. This function uses an approach designed to prevent " +"timing analysis by avoiding content-based short circuiting behaviour, making " +"it appropriate for cryptography. *a* and *b* must both be of the same type: " +"either :class:`str` (ASCII only, as e.g. returned " +"by :meth:`HMAC.hexdigest`), or a :term:`bytes-like object`." +msgstr "" + +#: ../../library/hmac.rst:135 +msgid "" +"If *a* and *b* are of different lengths, or if an error occurs, a timing " +"attack could theoretically reveal information about the types and lengths of " +"*a* and *b*—but not their values." +msgstr "" + +#: ../../library/hmac.rst:143 +msgid "" +"The function uses OpenSSL's ``CRYPTO_memcmp()`` internally when available." +msgstr "" + +#: ../../library/hmac.rst:149 +msgid "Module :mod:`hashlib`" +msgstr "" + +#: ../../library/hmac.rst:150 +msgid "The Python module providing secure hash functions." +msgstr "" diff --git a/library/html.entities.po b/library/html.entities.po new file mode 100644 index 0000000..a7e7e08 --- /dev/null +++ b/library/html.entities.po @@ -0,0 +1,72 @@ +# 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 , 2025 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-25 14:21+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/html.entities.rst:2 +msgid ":mod:`!html.entities` --- Definitions of HTML general entities" +msgstr "" + +#: ../../library/html.entities.rst:9 +msgid "**Source code:** :source:`Lib/html/entities.py`" +msgstr "" + +#: ../../library/html.entities.rst:13 +msgid "" +"This module defines four " +"dictionaries, :data:`html5`, :data:`name2codepoint`, :data:`codepoint2name`, " +"and :data:`entitydefs`." +msgstr "" + +#: ../../library/html.entities.rst:19 +msgid "" +"A dictionary that maps HTML5 named character references [#]_ to the " +"equivalent Unicode character(s), e.g. ``html5['gt;'] == '>'``. Note that the " +"trailing semicolon is included in the name (e.g. ``'gt;'``), however some of " +"the names are accepted by the standard even without the semicolon: in this " +"case the name is present with and without the ``';'``. See " +"also :func:`html.unescape`." +msgstr "" + +#: ../../library/html.entities.rst:31 +msgid "" +"A dictionary mapping XHTML 1.0 entity definitions to their replacement text " +"in ISO Latin-1." +msgstr "" + +#: ../../library/html.entities.rst:37 +msgid "A dictionary that maps HTML4 entity names to the Unicode code points." +msgstr "" + +#: ../../library/html.entities.rst:42 +msgid "A dictionary that maps Unicode code points to HTML4 entity names." +msgstr "" + +#: ../../library/html.entities.rst:46 +msgid "Footnotes" +msgstr "Lábjegyzet" + +#: ../../library/html.entities.rst:47 +msgid "" +"See https://html.spec.whatwg.org/multipage/named-characters.html#named-" +"character-references" +msgstr "" diff --git a/library/html.parser.po b/library/html.parser.po new file mode 100644 index 0000000..f71b3ba --- /dev/null +++ b/library/html.parser.po @@ -0,0 +1,468 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-07 14:23+0000\n" +"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" +"hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../library/html.parser.rst:2 +msgid ":mod:`!html.parser` --- Simple HTML and XHTML parser" +msgstr "" + +#: ../../library/html.parser.rst:7 +msgid "**Source code:** :source:`Lib/html/parser.py`" +msgstr "" + +#: ../../library/html.parser.rst:15 +msgid "" +"This module defines a class :class:`HTMLParser` which serves as the basis " +"for parsing text files formatted in HTML (HyperText Mark-up Language) and " +"XHTML." +msgstr "" + +#: ../../library/html.parser.rst:20 +msgid "Create a parser instance able to parse invalid markup." +msgstr "" + +#: ../../library/html.parser.rst:22 +msgid "" +"If *convert_charrefs* is ``True`` (the default), all character references " +"(except the ones in ``script``/``style`` elements) are automatically " +"converted to the corresponding Unicode characters." +msgstr "" + +#: ../../library/html.parser.rst:26 +msgid "" +"An :class:`.HTMLParser` instance is fed HTML data and calls handler methods " +"when start tags, end tags, text, comments, and other markup elements are " +"encountered. The user should subclass :class:`.HTMLParser` and override its " +"methods to implement the desired behavior." +msgstr "" + +#: ../../library/html.parser.rst:31 +msgid "" +"This parser does not check that end tags match start tags or call the end-" +"tag handler for elements which are closed implicitly by closing an outer " +"element." +msgstr "" + +#: ../../library/html.parser.rst:34 +msgid "*convert_charrefs* keyword argument added." +msgstr "" + +#: ../../library/html.parser.rst:37 +msgid "The default value for argument *convert_charrefs* is now ``True``." +msgstr "" + +#: ../../library/html.parser.rst:42 +msgid "Example HTML Parser Application" +msgstr "" + +#: ../../library/html.parser.rst:44 +msgid "" +"As a basic example, below is a simple HTML parser that uses " +"the :class:`HTMLParser` class to print out start tags, end tags, and data as " +"they are encountered:" +msgstr "" + +#: ../../library/html.parser.rst:48 +msgid "" +"from html.parser import HTMLParser\n" +"\n" +"class MyHTMLParser(HTMLParser):\n" +" def handle_starttag(self, tag, attrs):\n" +" print(\"Encountered a start tag:\", tag)\n" +"\n" +" def handle_endtag(self, tag):\n" +" print(\"Encountered an end tag :\", tag)\n" +"\n" +" def handle_data(self, data):\n" +" print(\"Encountered some data :\", data)\n" +"\n" +"parser = MyHTMLParser()\n" +"parser.feed('Test'\n" +" '

Parse me!

')" +msgstr "" + +#: ../../library/html.parser.rst:66 +msgid "The output will then be:" +msgstr "" + +#: ../../library/html.parser.rst:68 +msgid "" +"Encountered a start tag: html\n" +"Encountered a start tag: head\n" +"Encountered a start tag: title\n" +"Encountered some data : Test\n" +"Encountered an end tag : title\n" +"Encountered an end tag : head\n" +"Encountered a start tag: body\n" +"Encountered a start tag: h1\n" +"Encountered some data : Parse me!\n" +"Encountered an end tag : h1\n" +"Encountered an end tag : body\n" +"Encountered an end tag : html" +msgstr "" + +#: ../../library/html.parser.rst:85 +msgid ":class:`.HTMLParser` Methods" +msgstr "" + +#: ../../library/html.parser.rst:87 +msgid ":class:`HTMLParser` instances have the following methods:" +msgstr "" + +#: ../../library/html.parser.rst:92 +msgid "" +"Feed some text to the parser. It is processed insofar as it consists of " +"complete elements; incomplete data is buffered until more data is fed " +"or :meth:`close` is called. *data* must be :class:`str`." +msgstr "" + +#: ../../library/html.parser.rst:99 +msgid "" +"Force processing of all buffered data as if it were followed by an end-of-" +"file mark. This method may be redefined by a derived class to define " +"additional processing at the end of the input, but the redefined version " +"should always call the :class:`HTMLParser` base class method :meth:`close`." +msgstr "" + +#: ../../library/html.parser.rst:107 +msgid "" +"Reset the instance. Loses all unprocessed data. This is called implicitly " +"at instantiation time." +msgstr "" + +#: ../../library/html.parser.rst:113 +msgid "Return current line number and offset." +msgstr "" + +#: ../../library/html.parser.rst:118 +msgid "" +"Return the text of the most recently opened start tag. This should not " +"normally be needed for structured processing, but may be useful in dealing " +"with HTML \"as deployed\" or for re-generating input with minimal changes " +"(whitespace between attributes can be preserved, etc.)." +msgstr "" + +#: ../../library/html.parser.rst:124 +msgid "" +"The following methods are called when data or markup elements are " +"encountered and they are meant to be overridden in a subclass. The base " +"class implementations do nothing (except " +"for :meth:`~HTMLParser.handle_startendtag`):" +msgstr "" + +#: ../../library/html.parser.rst:131 +msgid "" +"This method is called to handle the start tag of an element (e.g. ``
``)." +msgstr "" + +#: ../../library/html.parser.rst:133 +msgid "" +"The *tag* argument is the name of the tag converted to lower case. The " +"*attrs* argument is a list of ``(name, value)`` pairs containing the " +"attributes found inside the tag's ``<>`` brackets. The *name* will be " +"translated to lower case, and quotes in the *value* have been removed, and " +"character and entity references have been replaced." +msgstr "" + +#: ../../library/html.parser.rst:139 +msgid "" +"For instance, for the tag ````, this method " +"would be called as ``handle_starttag('a', [('href', 'https://" +"www.cwi.nl/')])``." +msgstr "" + +#: ../../library/html.parser.rst:142 +msgid "" +"All entity references from :mod:`html.entities` are replaced in the " +"attribute values." +msgstr "" + +#: ../../library/html.parser.rst:148 +msgid "" +"This method is called to handle the end tag of an element (e.g. ``
``)." +msgstr "" + +#: ../../library/html.parser.rst:150 +msgid "The *tag* argument is the name of the tag converted to lower case." +msgstr "" + +#: ../../library/html.parser.rst:155 +msgid "" +"Similar to :meth:`handle_starttag`, but called when the parser encounters an " +"XHTML-style empty tag (````). This method may be overridden by " +"subclasses which require this particular lexical information; the default " +"implementation simply calls :meth:`handle_starttag` " +"and :meth:`handle_endtag`." +msgstr "" + +#: ../../library/html.parser.rst:163 +msgid "" +"This method is called to process arbitrary data (e.g. text nodes and the " +"content of ```` and ````)." +msgstr "" + +#: ../../library/html.parser.rst:169 +msgid "" +"This method is called to process a named character reference of the form " +"``&name;`` (e.g. ``>``), where *name* is a general entity reference (e.g. " +"``'gt'``). This method is never called if *convert_charrefs* is ``True``." +msgstr "" + +#: ../../library/html.parser.rst:177 +msgid "" +"This method is called to process decimal and hexadecimal numeric character " +"references of the form :samp:`&#{NNN};` and :samp:`&#x{NNN};`. For example, " +"the decimal equivalent for ``>`` is ``>``, whereas the hexadecimal is " +"``>``; in this case the method will receive ``'62'`` or ``'x3E'``. " +"This method is never called if *convert_charrefs* is ``True``." +msgstr "" + +#: ../../library/html.parser.rst:186 +msgid "" +"This method is called when a comment is encountered (e.g. ```` will cause this method to be " +"called with the argument ``' comment '``." +msgstr "" + +#: ../../library/html.parser.rst:191 +msgid "" +"The content of Internet Explorer conditional comments (condcoms) will also " +"be sent to this method, so, for ````, this method will receive ``'[if IE 9]>IE9-specific content``)." +msgstr "" + +#: ../../library/html.parser.rst:201 +msgid "" +"The *decl* parameter will be the entire contents of the declaration inside " +"the ```` markup (e.g. ``'DOCTYPE html'``)." +msgstr "" + +#: ../../library/html.parser.rst:207 +msgid "" +"Method called when a processing instruction is encountered. The *data* " +"parameter will contain the entire processing instruction. For example, for " +"the processing instruction ````, this method would be " +"called as ``handle_pi(\"proc color='red'\")``. It is intended to be " +"overridden by a derived class; the base class implementation does nothing." +msgstr "" + +#: ../../library/html.parser.rst:215 +msgid "" +"The :class:`HTMLParser` class uses the SGML syntactic rules for processing " +"instructions. An XHTML processing instruction using the trailing ``'?'`` " +"will cause the ``'?'`` to be included in *data*." +msgstr "" + +#: ../../library/html.parser.rst:222 +msgid "" +"This method is called when an unrecognized declaration is read by the parser." +msgstr "" + +#: ../../library/html.parser.rst:224 +msgid "" +"The *data* parameter will be the entire contents of the declaration inside " +"the ```` markup. It is sometimes useful to be overridden by a " +"derived class. The base class implementation does nothing." +msgstr "" + +#: ../../library/html.parser.rst:232 +msgid "Examples" +msgstr "" + +#: ../../library/html.parser.rst:234 +msgid "" +"The following class implements a parser that will be used to illustrate more " +"examples:" +msgstr "" + +#: ../../library/html.parser.rst:237 +msgid "" +"from html.parser import HTMLParser\n" +"from html.entities import name2codepoint\n" +"\n" +"class MyHTMLParser(HTMLParser):\n" +" def handle_starttag(self, tag, attrs):\n" +" print(\"Start tag:\", tag)\n" +" for attr in attrs:\n" +" print(\" attr:\", attr)\n" +"\n" +" def handle_endtag(self, tag):\n" +" print(\"End tag :\", tag)\n" +"\n" +" def handle_data(self, data):\n" +" print(\"Data :\", data)\n" +"\n" +" def handle_comment(self, data):\n" +" print(\"Comment :\", data)\n" +"\n" +" def handle_entityref(self, name):\n" +" c = chr(name2codepoint[name])\n" +" print(\"Named ent:\", c)\n" +"\n" +" def handle_charref(self, name):\n" +" if name.startswith('x'):\n" +" c = chr(int(name[1:], 16))\n" +" else:\n" +" c = chr(int(name))\n" +" print(\"Num ent :\", c)\n" +"\n" +" def handle_decl(self, data):\n" +" print(\"Decl :\", data)\n" +"\n" +"parser = MyHTMLParser()" +msgstr "" + +#: ../../library/html.parser.rst:273 +msgid "Parsing a doctype:" +msgstr "" + +#: ../../library/html.parser.rst:275 +msgid "" +">>> parser.feed('')\n" +"Decl : DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://" +"www.w3.org/TR/html4/strict.dtd\"" +msgstr "" + +#: ../../library/html.parser.rst:281 +msgid "Parsing an element with a few attributes and a title:" +msgstr "" + +#: ../../library/html.parser.rst:283 +msgid "" +">>> parser.feed('\"The')\n" +"Start tag: img\n" +" attr: ('src', 'python-logo.png')\n" +" attr: ('alt', 'The Python logo')\n" +">>>\n" +">>> parser.feed('

Python

')\n" +"Start tag: h1\n" +"Data : Python\n" +"End tag : h1" +msgstr "" + +#: ../../library/html.parser.rst:295 +msgid "" +"The content of ``script`` and ``style`` elements is returned as is, without " +"further parsing:" +msgstr "" + +#: ../../library/html.parser.rst:298 +msgid "" +">>> parser.feed('``)." msgstr "" -#: ../../library/html.parser.rst:169 msgid "" "This method is called to process a named character reference of the form " "``&name;`` (e.g. ``>``), where *name* is a general entity reference (e.g. " "``'gt'``). This method is never called if *convert_charrefs* is ``True``." msgstr "" -#: ../../library/html.parser.rst:177 msgid "" "This method is called to process decimal and hexadecimal numeric character " "references of the form :samp:`&#{NNN};` and :samp:`&#x{NNN};`. For example, " @@ -234,19 +202,16 @@ msgid "" "This method is never called if *convert_charrefs* is ``True``." msgstr "" -#: ../../library/html.parser.rst:186 msgid "" "This method is called when a comment is encountered (e.g. ```` will cause this method to be " "called with the argument ``' comment '``." msgstr "" -#: ../../library/html.parser.rst:191 msgid "" "The content of Internet Explorer conditional comments (condcoms) will also " "be sent to this method, so, for ``'\n" "... '')\n" @@ -405,13 +353,11 @@ msgid "" "Comment : [if IE 9]>IE-specific content'``):" msgstr "" -#: ../../library/html.parser.rst:325 msgid "" ">>> parser = MyHTMLParser()\n" ">>> parser.feed('>>>')\n" @@ -424,14 +370,12 @@ msgid "" "Num ent : >" msgstr "" -#: ../../library/html.parser.rst:337 msgid "" -"Feeding incomplete chunks to :meth:`~HTMLParser.feed` works, " -"but :meth:`~HTMLParser.handle_data` might be called more than once (unless " +"Feeding incomplete chunks to :meth:`~HTMLParser.feed` works, but :meth:" +"`~HTMLParser.handle_data` might be called more than once (unless " "*convert_charrefs* is set to ``True``):" msgstr "" -#: ../../library/html.parser.rst:341 msgid "" ">>> for chunk in ['buff', 'ered', ' text']:\n" "... parser.feed(chunk)\n" @@ -443,11 +387,9 @@ msgid "" "End tag : span" msgstr "" -#: ../../library/html.parser.rst:352 msgid "Parsing invalid HTML (e.g. unquoted attributes) also works:" msgstr "" -#: ../../library/html.parser.rst:354 msgid "" ">>> parser.feed('

tag soup

')\n" "Start tag: p\n" @@ -459,10 +401,8 @@ msgid "" "End tag : a" msgstr "" -#: ../../library/html.parser.rst:9 msgid "HTML" msgstr "" -#: ../../library/html.parser.rst:9 msgid "XHTML" msgstr "" diff --git a/library/html.po b/library/html.po index fa13f76..df6086e 100644 --- a/library/html.po +++ b/library/html.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,19 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/html.rst:2 msgid ":mod:`!html` --- HyperText Markup Language support" msgstr "" -#: ../../library/html.rst:7 msgid "**Source code:** :source:`Lib/html/__init__.py`" msgstr "" -#: ../../library/html.rst:11 msgid "This module defines utilities to manipulate HTML." msgstr "" -#: ../../library/html.rst:15 msgid "" "Convert the characters ``&``, ``<`` and ``>`` in string *s* to HTML-safe " "sequences. Use this if you need to display text that might contain such " @@ -39,23 +35,19 @@ msgid "" "HTML attribute value delimited by quotes, as in ````." msgstr "" -#: ../../library/html.rst:26 msgid "" -"Convert all named and numeric character references (e.g. ``>``, " -"``>``, ``>``) in the string *s* to the corresponding Unicode " -"characters. This function uses the rules defined by the HTML 5 standard for " -"both valid and invalid character references, and the :data:`list of HTML 5 " -"named character references `." +"Convert all named and numeric character references (e.g. ``>``, ``>" +"``, ``>``) in the string *s* to the corresponding Unicode characters. " +"This function uses the rules defined by the HTML 5 standard for both valid " +"and invalid character references, and the :data:`list of HTML 5 named " +"character references `." msgstr "" -#: ../../library/html.rst:36 msgid "Submodules in the ``html`` package are:" msgstr "" -#: ../../library/html.rst:38 msgid ":mod:`html.parser` -- HTML/XHTML parser with lenient parsing mode" msgstr "" -#: ../../library/html.rst:39 msgid ":mod:`html.entities` -- HTML entity definitions" msgstr "" diff --git a/library/http.client.po b/library/http.client.po index 9896123..3d8ba93 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,48 +18,39 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/http.client.rst:2 msgid ":mod:`!http.client` --- HTTP protocol client" msgstr "" -#: ../../library/http.client.rst:7 msgid "**Source code:** :source:`Lib/http/client.py`" msgstr "" -#: ../../library/http.client.rst:17 msgid "" "This module defines classes that implement the client side of the HTTP and " -"HTTPS protocols. It is normally not used directly --- the " -"module :mod:`urllib.request` uses it to handle URLs that use HTTP and HTTPS." +"HTTPS protocols. It is normally not used directly --- the module :mod:" +"`urllib.request` uses it to handle URLs that use HTTP and HTTPS." msgstr "" -#: ../../library/http.client.rst:23 msgid "" "The `Requests package `_ is " "recommended for a higher-level HTTP client interface." msgstr "" -#: ../../library/http.client.rst:28 msgid "" "HTTPS support is only available if Python was compiled with SSL support " "(through the :mod:`ssl` module)." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/http.client.rst:33 msgid "The module provides the following classes:" msgstr "" -#: ../../library/http.client.rst:39 msgid "" "An :class:`HTTPConnection` instance represents one transaction with an HTTP " "server. It should be instantiated by passing it a host and optional port " @@ -73,13 +64,11 @@ msgid "" "parameter sets the buffer size in bytes for sending a file-like message body." msgstr "" -#: ../../library/http.client.rst:51 msgid "" "For example, the following calls all create instances that connect to the " "server at the same host and port::" msgstr "" -#: ../../library/http.client.rst:54 msgid "" ">>> h1 = http.client.HTTPConnection('www.python.org')\n" ">>> h2 = http.client.HTTPConnection('www.python.org:80')\n" @@ -87,21 +76,17 @@ msgid "" ">>> h4 = http.client.HTTPConnection('www.python.org', 80, timeout=10)" msgstr "" -#: ../../library/http.client.rst:59 msgid "*source_address* was added." msgstr "" -#: ../../library/http.client.rst:62 msgid "" "The *strict* parameter was removed. HTTP 0.9-style \"Simple Responses\" are " "no longer supported." msgstr "" -#: ../../library/http.client.rst:66 msgid "*blocksize* parameter was added." msgstr "" -#: ../../library/http.client.rst:74 msgid "" "A subclass of :class:`HTTPConnection` that uses SSL for communication with " "secure servers. Default port is ``443``. If *context* is specified, it " @@ -109,86 +94,71 @@ msgid "" "options." msgstr "" -#: ../../library/http.client.rst:79 msgid "Please read :ref:`ssl-security` for more information on best practices." msgstr "" -#: ../../library/http.client.rst:81 msgid "*source_address*, *context* and *check_hostname* were added." msgstr "" -#: ../../library/http.client.rst:84 msgid "" -"This class now supports HTTPS virtual hosts if possible (that is, " -"if :const:`ssl.HAS_SNI` is true)." +"This class now supports HTTPS virtual hosts if possible (that is, if :const:" +"`ssl.HAS_SNI` is true)." msgstr "" -#: ../../library/http.client.rst:88 msgid "" "The *strict* parameter was removed. HTTP 0.9-style \"Simple Responses\" are " "no longer supported." msgstr "" -#: ../../library/http.client.rst:92 msgid "" "This class now performs all the necessary certificate and hostname checks by " -"default. To revert to the previous, unverified, behavior :func:`!" -"ssl._create_unverified_context` can be passed to the *context* parameter." +"default. To revert to the previous, unverified, behavior :func:`!ssl." +"_create_unverified_context` can be passed to the *context* parameter." msgstr "" -#: ../../library/http.client.rst:98 msgid "" "This class now enables TLS 1.3 :attr:`ssl.SSLContext.post_handshake_auth` " "for the default *context* or when *cert_file* is passed with a custom " "*context*." msgstr "" -#: ../../library/http.client.rst:103 msgid "" "This class now sends an ALPN extension with protocol indicator ``http/1.1`` " -"when no *context* is given. Custom *context* should set ALPN protocols " -"with :meth:`~ssl.SSLContext.set_alpn_protocols`." +"when no *context* is given. Custom *context* should set ALPN protocols with :" +"meth:`~ssl.SSLContext.set_alpn_protocols`." msgstr "" -#: ../../library/http.client.rst:108 msgid "" "The deprecated *key_file*, *cert_file* and *check_hostname* parameters have " "been removed." msgstr "" -#: ../../library/http.client.rst:115 msgid "" "Class whose instances are returned upon successful connection. Not " "instantiated directly by user." msgstr "" -#: ../../library/http.client.rst:118 msgid "" "The *strict* parameter was removed. HTTP 0.9 style \"Simple Responses\" are " "no longer supported." msgstr "" -#: ../../library/http.client.rst:122 msgid "This module provides the following function:" msgstr "" -#: ../../library/http.client.rst:126 msgid "" "Parse the headers from a file pointer *fp* representing a HTTP request/" "response. The file has to be a :class:`~io.BufferedIOBase` reader (i.e. not " "text) and must provide a valid :rfc:`2822` style header." msgstr "" -#: ../../library/http.client.rst:130 msgid "" "This function returns an instance of :class:`http.client.HTTPMessage` that " -"holds the header fields, but no payload (the same " -"as :attr:`HTTPResponse.msg` " -"and :attr:`http.server.BaseHTTPRequestHandler.headers`). After returning, " -"the file pointer *fp* is ready to read the HTTP body." +"holds the header fields, but no payload (the same as :attr:`HTTPResponse." +"msg` and :attr:`http.server.BaseHTTPRequestHandler.headers`). After " +"returning, the file pointer *fp* is ready to read the HTTP body." msgstr "" -#: ../../library/http.client.rst:137 msgid "" ":meth:`parse_headers` does not parse the start-line of a HTTP message; it " "only parses the ``Name: value`` lines. The file has to be ready to read " @@ -196,46 +166,35 @@ msgid "" "calling the function." msgstr "" -#: ../../library/http.client.rst:142 msgid "The following exceptions are raised as appropriate:" msgstr "" -#: ../../library/http.client.rst:147 msgid "" -"The base class of the other exceptions in this module. It is a subclass " -"of :exc:`Exception`." +"The base class of the other exceptions in this module. It is a subclass of :" +"exc:`Exception`." msgstr "" -#: ../../library/http.client.rst:153 ../../library/http.client.rst:164 -#: ../../library/http.client.rst:169 ../../library/http.client.rst:174 -#: ../../library/http.client.rst:179 ../../library/http.client.rst:184 msgid "A subclass of :exc:`HTTPException`." msgstr "" -#: ../../library/http.client.rst:158 msgid "" "A subclass of :exc:`HTTPException`, raised if a port is given and is either " "non-numeric or empty." msgstr "" -#: ../../library/http.client.rst:189 ../../library/http.client.rst:194 -#: ../../library/http.client.rst:199 msgid "A subclass of :exc:`ImproperConnectionState`." msgstr "" -#: ../../library/http.client.rst:204 msgid "" "A subclass of :exc:`HTTPException`. Raised if a server responds with a HTTP " "status code that we don't understand." msgstr "" -#: ../../library/http.client.rst:210 msgid "" "A subclass of :exc:`HTTPException`. Raised if an excessively long line is " "received in the HTTP protocol from the server." msgstr "" -#: ../../library/http.client.rst:216 msgid "" "A subclass of :exc:`ConnectionResetError` and :exc:`BadStatusLine`. Raised " "by :meth:`HTTPConnection.getresponse` when the attempt to read the response " @@ -243,46 +202,36 @@ msgid "" "has closed the connection." msgstr "" -#: ../../library/http.client.rst:221 msgid "Previously, :exc:`BadStatusLine`\\ ``('')`` was raised." msgstr "" -#: ../../library/http.client.rst:225 msgid "The constants defined in this module are:" msgstr "" -#: ../../library/http.client.rst:229 msgid "The default port for the HTTP protocol (always ``80``)." msgstr "" -#: ../../library/http.client.rst:233 msgid "The default port for the HTTPS protocol (always ``443``)." msgstr "" -#: ../../library/http.client.rst:237 msgid "This dictionary maps the HTTP 1.1 status codes to the W3C names." msgstr "" -#: ../../library/http.client.rst:239 msgid "" "Example: ``http.client.responses[http.client.NOT_FOUND]`` is ``'Not Found'``." msgstr "" -#: ../../library/http.client.rst:241 msgid "" "See :ref:`http-status-codes` for a list of HTTP status codes that are " "available in this module as constants." msgstr "" -#: ../../library/http.client.rst:248 msgid "HTTPConnection Objects" msgstr "" -#: ../../library/http.client.rst:250 msgid ":class:`HTTPConnection` instances have the following methods:" msgstr "" -#: ../../library/http.client.rst:256 msgid "" "This will send a request to the server using the HTTP request method " "*method* and the request URI *url*. The provided *url* must be an absolute " @@ -291,22 +240,20 @@ msgid "" "methods)." msgstr "" -#: ../../library/http.client.rst:262 msgid "" "If *body* is specified, the specified data is sent after the headers are " -"finished. It may be a :class:`str`, a :term:`bytes-like object`, an " -"open :term:`file object`, or an iterable of :class:`bytes`. If *body* is a " +"finished. It may be a :class:`str`, a :term:`bytes-like object`, an open :" +"term:`file object`, or an iterable of :class:`bytes`. If *body* is a " "string, it is encoded as ISO-8859-1, the default for HTTP. If it is a bytes-" "like object, the bytes are sent as is. If it is a :term:`file object`, the " "contents of the file is sent; this file object should support at least the " -"``read()`` method. If the file object is an instance " -"of :class:`io.TextIOBase`, the data returned by the ``read()`` method will " -"be encoded as ISO-8859-1, otherwise the data returned by ``read()`` is sent " -"as is. If *body* is an iterable, the elements of the iterable are sent as " -"is until the iterable is exhausted." +"``read()`` method. If the file object is an instance of :class:`io." +"TextIOBase`, the data returned by the ``read()`` method will be encoded as " +"ISO-8859-1, otherwise the data returned by ``read()`` is sent as is. If " +"*body* is an iterable, the elements of the iterable are sent as is until the " +"iterable is exhausted." msgstr "" -#: ../../library/http.client.rst:274 msgid "" "The *headers* argument should be a mapping of extra HTTP headers to send " "with the request. A :rfc:`Host header <2616#section-14.23>` must be provided " @@ -315,7 +262,6 @@ msgid "" "methods)." msgstr "" -#: ../../library/http.client.rst:280 msgid "" "If *headers* contains neither Content-Length nor Transfer-Encoding, but " "there is a request body, one of those header fields will be added " @@ -328,7 +274,6 @@ msgid "" "Length." msgstr "" -#: ../../library/http.client.rst:292 msgid "" "The *encode_chunked* argument is only relevant if Transfer-Encoding is " "specified in *headers*. If *encode_chunked* is ``False``, the " @@ -336,12 +281,10 @@ msgid "" "code. If it is ``True``, the body will be chunk-encoded." msgstr "" -#: ../../library/http.client.rst:297 msgid "" "For example, to perform a ``GET`` request to ``https://docs.python.org/3/``::" msgstr "" -#: ../../library/http.client.rst:299 msgid "" ">>> import http.client\n" ">>> host = \"docs.python.org\"\n" @@ -352,7 +295,6 @@ msgid "" "200 OK" msgstr "" -#: ../../library/http.client.rst:308 msgid "" "Chunked transfer encoding has been added to the HTTP protocol version 1.1. " "Unless the HTTP server is known to handle HTTP 1.1, the caller must either " @@ -360,11 +302,9 @@ msgid "" "that is not also a file as the body representation." msgstr "" -#: ../../library/http.client.rst:314 msgid "*body* can now be an iterable." msgstr "" -#: ../../library/http.client.rst:317 msgid "" "If neither Content-Length nor Transfer-Encoding are set in *headers*, file " "and iterable *body* objects are now chunk-encoded. The *encode_chunked* " @@ -372,26 +312,22 @@ msgid "" "file objects." msgstr "" -#: ../../library/http.client.rst:326 msgid "" "Should be called after a request is sent to get the response from the " "server. Returns an :class:`HTTPResponse` instance." msgstr "" -#: ../../library/http.client.rst:331 msgid "" "Note that you must have read the whole response before you can send a new " "request to the server." msgstr "" -#: ../../library/http.client.rst:334 msgid "" -"If a :exc:`ConnectionError` or subclass is raised, " -"the :class:`HTTPConnection` object will be ready to reconnect when a new " -"request is sent." +"If a :exc:`ConnectionError` or subclass is raised, the :class:" +"`HTTPConnection` object will be ready to reconnect when a new request is " +"sent." msgstr "" -#: ../../library/http.client.rst:342 msgid "" "Set the debugging level. The default debug level is ``0``, meaning no " "debugging output is printed. Any value greater than ``0`` will cause all " @@ -399,26 +335,22 @@ msgid "" "is passed to any new :class:`HTTPResponse` objects that are created." msgstr "" -#: ../../library/http.client.rst:352 msgid "" "Set the host and the port for HTTP Connect Tunnelling. This allows running " "the connection through a proxy server." msgstr "" -#: ../../library/http.client.rst:355 msgid "" "The *host* and *port* arguments specify the endpoint of the tunneled " "connection (i.e. the address included in the CONNECT request, *not* the " "address of the proxy server)." msgstr "" -#: ../../library/http.client.rst:359 msgid "" "The *headers* argument should be a mapping of extra HTTP headers to send " "with the CONNECT request." msgstr "" -#: ../../library/http.client.rst:362 msgid "" "As HTTP/1.1 is used for HTTP CONNECT tunnelling request, `as per the RFC " "`_, a HTTP " @@ -428,7 +360,6 @@ msgid "" "generated and transmitted automatically." msgstr "" -#: ../../library/http.client.rst:369 msgid "" "For example, to tunnel through a HTTPS proxy server running locally on port " "8080, we would pass the address of the proxy to the :class:`HTTPSConnection` " @@ -436,7 +367,6 @@ msgid "" "the :meth:`~HTTPConnection.set_tunnel` method::" msgstr "" -#: ../../library/http.client.rst:374 msgid "" ">>> import http.client\n" ">>> conn = http.client.HTTPSConnection(\"localhost\", 8080)\n" @@ -444,7 +374,6 @@ msgid "" ">>> conn.request(\"HEAD\",\"/index.html\")" msgstr "" -#: ../../library/http.client.rst:381 msgid "" "HTTP CONNECT tunnelling requests use protocol HTTP/1.1, upgraded from " "protocol HTTP/1.0. ``Host:`` HTTP headers are mandatory for HTTP/1.1, so one " @@ -452,45 +381,37 @@ msgid "" "headers argument." msgstr "" -#: ../../library/http.client.rst:390 msgid "" "Returns a dictionary with the headers of the response received from the " "proxy server to the CONNECT request." msgstr "" -#: ../../library/http.client.rst:393 msgid "If the CONNECT request was not sent, the method returns ``None``." msgstr "" -#: ../../library/http.client.rst:400 msgid "" "Connect to the server specified when the object was created. By default, " "this is called automatically when making a request if the client does not " "already have a connection." msgstr "" -#: ../../library/http.client.rst:404 msgid "" "Raises an :ref:`auditing event ` ``http.client.connect`` with " "arguments ``self``, ``host``, ``port``." msgstr "" -#: ../../library/http.client.rst:409 msgid "Close the connection to the server." msgstr "" -#: ../../library/http.client.rst:414 msgid "Buffer size in bytes for sending a file-like message body." msgstr "" -#: ../../library/http.client.rst:419 msgid "" "As an alternative to using the :meth:`~HTTPConnection.request` method " "described above, you can also send your request step by step, by using the " "four functions below." msgstr "" -#: ../../library/http.client.rst:426 msgid "" "This should be the first call after the connection to the server has been " "made. It sends a line to the server consisting of the *method* string, the " @@ -500,7 +421,6 @@ msgid "" "with non-False values." msgstr "" -#: ../../library/http.client.rst:436 msgid "" "Send an :rfc:`822`\\ -style header to the server. It sends a line to the " "server consisting of the header, a colon and a space, and the first " @@ -508,27 +428,24 @@ msgid "" "consisting of a tab and an argument." msgstr "" -#: ../../library/http.client.rst:444 msgid "" "Send a blank line to the server, signalling the end of the headers. The " "optional *message_body* argument can be used to pass a message body " "associated with the request." msgstr "" -#: ../../library/http.client.rst:448 msgid "" "If *encode_chunked* is ``True``, the result of each iteration of " "*message_body* will be chunk-encoded as specified in :rfc:`7230`, Section " "3.3.1. How the data is encoded is dependent on the type of *message_body*. " "If *message_body* implements the :ref:`buffer interface ` the " -"encoding will result in a single chunk. If *message_body* is " -"a :class:`collections.abc.Iterable`, each iteration of *message_body* will " -"result in a chunk. If *message_body* is a :term:`file object`, each call to " -"``.read()`` will result in a chunk. The method automatically signals the end " -"of the chunk-encoded data immediately after *message_body*." +"encoding will result in a single chunk. If *message_body* is a :class:" +"`collections.abc.Iterable`, each iteration of *message_body* will result in " +"a chunk. If *message_body* is a :term:`file object`, each call to ``." +"read()`` will result in a chunk. The method automatically signals the end of " +"the chunk-encoded data immediately after *message_body*." msgstr "" -#: ../../library/http.client.rst:459 msgid "" "Due to the chunked encoding specification, empty chunks yielded by an " "iterator body will be ignored by the chunk-encoder. This is to avoid " @@ -536,51 +453,41 @@ msgid "" "malformed encoding." msgstr "" -#: ../../library/http.client.rst:464 msgid "Added chunked encoding support and the *encode_chunked* parameter." msgstr "" -#: ../../library/http.client.rst:470 msgid "" -"Send data to the server. This should be used directly only after " -"the :meth:`endheaders` method has been called and before :meth:`getresponse` " -"is called." +"Send data to the server. This should be used directly only after the :meth:" +"`endheaders` method has been called and before :meth:`getresponse` is called." msgstr "" -#: ../../library/http.client.rst:474 msgid "" "Raises an :ref:`auditing event ` ``http.client.send`` with " "arguments ``self``, ``data``." msgstr "" -#: ../../library/http.client.rst:480 msgid "HTTPResponse Objects" msgstr "" -#: ../../library/http.client.rst:482 msgid "" "An :class:`HTTPResponse` instance wraps the HTTP response from the server. " "It provides access to the request headers and the entity body. The response " "is an iterable object and can be used in a with statement." msgstr "" -#: ../../library/http.client.rst:487 msgid "" "The :class:`io.BufferedIOBase` interface is now implemented and all of its " "reader operations are supported." msgstr "" -#: ../../library/http.client.rst:494 msgid "Reads and returns the response body, or up to the next *amt* bytes." msgstr "" -#: ../../library/http.client.rst:498 msgid "" "Reads up to the next len(b) bytes of the response body into the buffer *b*. " "Returns the number of bytes read." msgstr "" -#: ../../library/http.client.rst:505 msgid "" "Return the value of the header *name*, or *default* if there is no header " "matching *name*. If there is more than one header with the name *name*, " @@ -588,77 +495,61 @@ msgid "" "than a single string, its elements are similarly returned joined by commas." msgstr "" -#: ../../library/http.client.rst:512 msgid "Return a list of (header, value) tuples." msgstr "" -#: ../../library/http.client.rst:516 msgid "Return the ``fileno`` of the underlying socket." msgstr "" -#: ../../library/http.client.rst:520 msgid "" "A :class:`http.client.HTTPMessage` instance containing the response " -"headers. :class:`http.client.HTTPMessage` is a subclass " -"of :class:`email.message.Message`." +"headers. :class:`http.client.HTTPMessage` is a subclass of :class:`email." +"message.Message`." msgstr "" -#: ../../library/http.client.rst:526 msgid "" "HTTP protocol version used by server. 10 for HTTP/1.0, 11 for HTTP/1.1." msgstr "" -#: ../../library/http.client.rst:530 msgid "" "URL of the resource retrieved, commonly used to determine if a redirect was " "followed." msgstr "" -#: ../../library/http.client.rst:534 msgid "" -"Headers of the response in the form of " -"an :class:`email.message.EmailMessage` instance." +"Headers of the response in the form of an :class:`email.message." +"EmailMessage` instance." msgstr "" -#: ../../library/http.client.rst:538 msgid "Status code returned by server." msgstr "" -#: ../../library/http.client.rst:542 msgid "Reason phrase returned by server." msgstr "" -#: ../../library/http.client.rst:546 msgid "" "A debugging hook. If :attr:`debuglevel` is greater than zero, messages will " "be printed to stdout as the response is read and parsed." msgstr "" -#: ../../library/http.client.rst:551 msgid "Is ``True`` if the stream is closed." msgstr "" -#: ../../library/http.client.rst:555 msgid "Deprecated in favor of :attr:`~HTTPResponse.url`." msgstr "" -#: ../../library/http.client.rst:560 msgid "Deprecated in favor of :attr:`~HTTPResponse.headers`." msgstr "" -#: ../../library/http.client.rst:565 msgid "Deprecated in favor of :attr:`~HTTPResponse.status`." msgstr "" -#: ../../library/http.client.rst:569 msgid "Examples" msgstr "" -#: ../../library/http.client.rst:571 msgid "Here is an example session that uses the ``GET`` method::" msgstr "" -#: ../../library/http.client.rst:573 msgid "" ">>> import http.client\n" ">>> conn = http.client.HTTPSConnection(\"www.python.org\")\n" @@ -684,13 +575,11 @@ msgid "" ">>> conn.close()" msgstr "" -#: ../../library/http.client.rst:596 msgid "" "Here is an example session that uses the ``HEAD`` method. Note that the " "``HEAD`` method never returns any data. ::" msgstr "" -#: ../../library/http.client.rst:599 msgid "" ">>> import http.client\n" ">>> conn = http.client.HTTPSConnection(\"www.python.org\")\n" @@ -705,11 +594,9 @@ msgid "" "True" msgstr "" -#: ../../library/http.client.rst:611 msgid "Here is an example session that uses the ``POST`` method::" msgstr "" -#: ../../library/http.client.rst:613 msgid "" ">>> import http.client, urllib.parse\n" ">>> params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', " @@ -723,12 +610,11 @@ msgid "" "302 Found\n" ">>> data = response.read()\n" ">>> data\n" -"b'Redirecting to https://" -"bugs.python.org/issue12524'\n" +"b'Redirecting to https://bugs." +"python.org/issue12524'\n" ">>> conn.close()" msgstr "" -#: ../../library/http.client.rst:627 msgid "" "Client side HTTP ``PUT`` requests are very similar to ``POST`` requests. The " "difference lies only on the server side where HTTP servers will allow " @@ -738,7 +624,6 @@ msgid "" "``PUT`` method::" msgstr "" -#: ../../library/http.client.rst:633 msgid "" ">>> # This creates an HTTP request\n" ">>> # with the content of BODY as the enclosed representation\n" @@ -753,32 +638,25 @@ msgid "" "200, OK" msgstr "" -#: ../../library/http.client.rst:648 msgid "HTTPMessage Objects" msgstr "" -#: ../../library/http.client.rst:652 msgid "" "An :class:`http.client.HTTPMessage` instance holds the headers from an HTTP " "response. It is implemented using the :class:`email.message.Message` class." msgstr "" -#: ../../library/http.client.rst:9 msgid "HTTP" msgstr "" -#: ../../library/http.client.rst:9 msgid "protocol" msgstr "" -#: ../../library/http.client.rst:9 msgid "http.client (standard module)" msgstr "" -#: ../../library/http.client.rst:13 msgid "module" msgstr "" -#: ../../library/http.client.rst:13 msgid "urllib.request" msgstr "" diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po index 7646d12..d48584c 100644 --- a/library/http.cookiejar.po +++ b/library/http.cookiejar.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/http.cookiejar.rst:2 msgid ":mod:`!http.cookiejar` --- Cookie handling for HTTP clients" msgstr "" -#: ../../library/http.cookiejar.rst:10 msgid "**Source code:** :source:`Lib/http/cookiejar.py`" msgstr "" -#: ../../library/http.cookiejar.rst:14 msgid "" "The :mod:`http.cookiejar` module defines classes for automatic handling of " "HTTP cookies. It is useful for accessing web sites that require small " @@ -35,53 +32,45 @@ msgid "" "HTTP requests." msgstr "" -#: ../../library/http.cookiejar.rst:19 msgid "" -"Both the regular Netscape cookie protocol and the protocol defined " -"by :rfc:`2965` are handled. RFC 2965 handling is switched off by " -"default. :rfc:`2109` cookies are parsed as Netscape cookies and subsequently " -"treated either as Netscape or RFC 2965 cookies according to the 'policy' in " -"effect. Note that the great majority of cookies on the internet are Netscape " +"Both the regular Netscape cookie protocol and the protocol defined by :rfc:" +"`2965` are handled. RFC 2965 handling is switched off by default. :rfc:" +"`2109` cookies are parsed as Netscape cookies and subsequently treated " +"either as Netscape or RFC 2965 cookies according to the 'policy' in effect. " +"Note that the great majority of cookies on the internet are Netscape " "cookies. :mod:`http.cookiejar` attempts to follow the de-facto Netscape " "cookie protocol (which differs substantially from that set out in the " "original Netscape specification), including taking note of the ``max-age`` " "and ``port`` cookie-attributes introduced with RFC 2965." msgstr "" -#: ../../library/http.cookiejar.rst:31 msgid "" -"The various named parameters found in :mailheader:`Set-Cookie` " -"and :mailheader:`Set-Cookie2` headers (eg. ``domain`` and ``expires``) are " +"The various named parameters found in :mailheader:`Set-Cookie` and :" +"mailheader:`Set-Cookie2` headers (eg. ``domain`` and ``expires``) are " "conventionally referred to as :dfn:`attributes`. To distinguish them from " -"Python attributes, the documentation for this module uses the " -"term :dfn:`cookie-attribute` instead." +"Python attributes, the documentation for this module uses the term :dfn:" +"`cookie-attribute` instead." msgstr "" -#: ../../library/http.cookiejar.rst:38 msgid "The module defines the following exception:" msgstr "" -#: ../../library/http.cookiejar.rst:43 msgid "" "Instances of :class:`FileCookieJar` raise this exception on failure to load " "cookies from a file. :exc:`LoadError` is a subclass of :exc:`OSError`." msgstr "" -#: ../../library/http.cookiejar.rst:46 msgid "" ":exc:`LoadError` used to be a subtype of :exc:`IOError`, which is now an " "alias of :exc:`OSError`." msgstr "" -#: ../../library/http.cookiejar.rst:51 msgid "The following classes are provided:" msgstr "" -#: ../../library/http.cookiejar.rst:56 msgid "*policy* is an object implementing the :class:`CookiePolicy` interface." msgstr "" -#: ../../library/http.cookiejar.rst:58 msgid "" "The :class:`CookieJar` class stores HTTP cookies. It extracts cookies from " "HTTP requests, and returns them in HTTP responses. :class:`CookieJar` " @@ -90,13 +79,11 @@ msgid "" "database." msgstr "" -#: ../../library/http.cookiejar.rst:66 msgid "" "*policy* is an object implementing the :class:`CookiePolicy` interface. For " "the other arguments, see the documentation for the corresponding attributes." msgstr "" -#: ../../library/http.cookiejar.rst:69 msgid "" "A :class:`CookieJar` which can load cookies from, and perhaps save cookies " "to, a file on disk. Cookies are **NOT** loaded from the named file until " @@ -104,22 +91,18 @@ msgid "" "this class are documented in section :ref:`file-cookie-jar-classes`." msgstr "" -#: ../../library/http.cookiejar.rst:74 msgid "" "This should not be initialized directly – use its subclasses below instead." msgstr "" -#: ../../library/http.cookiejar.rst:78 ../../library/http.cookiejar.rst:351 msgid "The filename parameter supports a :term:`path-like object`." msgstr "" -#: ../../library/http.cookiejar.rst:83 msgid "" "This class is responsible for deciding whether each cookie should be " "accepted from / returned to the server." msgstr "" -#: ../../library/http.cookiejar.rst:89 msgid "" "Constructor arguments should be passed as keyword arguments only. " "*blocked_domains* is a sequence of domain names that we never accept cookies " @@ -127,11 +110,10 @@ msgid "" "a sequence of the only domains for which we accept and return cookies. " "*secure_protocols* is a sequence of protocols for which secure cookies can " "be added to. By default *https* and *wss* (secure websocket) are considered " -"secure protocols. For all other arguments, see the documentation " -"for :class:`CookiePolicy` and :class:`DefaultCookiePolicy` objects." +"secure protocols. For all other arguments, see the documentation for :class:" +"`CookiePolicy` and :class:`DefaultCookiePolicy` objects." msgstr "" -#: ../../library/http.cookiejar.rst:98 msgid "" ":class:`DefaultCookiePolicy` implements the standard accept / reject rules " "for Netscape and :rfc:`2965` cookies. By default, :rfc:`2109` cookies (ie. " @@ -139,43 +121,35 @@ msgid "" "attribute of 1) are treated according to the RFC 2965 rules. However, if " "RFC 2965 handling is turned off or :attr:`rfc2109_as_netscape` is ``True``, " "RFC 2109 cookies are 'downgraded' by the :class:`CookieJar` instance to " -"Netscape cookies, by setting the :attr:`version` attribute of " -"the :class:`Cookie` instance to 0. :class:`DefaultCookiePolicy` also " -"provides some parameters to allow some fine-tuning of policy." +"Netscape cookies, by setting the :attr:`version` attribute of the :class:" +"`Cookie` instance to 0. :class:`DefaultCookiePolicy` also provides some " +"parameters to allow some fine-tuning of policy." msgstr "" -#: ../../library/http.cookiejar.rst:111 msgid "" "This class represents Netscape, :rfc:`2109` and :rfc:`2965` cookies. It is " -"not expected that users of :mod:`http.cookiejar` construct their " -"own :class:`Cookie` instances. Instead, if necessary, " -"call :meth:`make_cookies` on a :class:`CookieJar` instance." +"not expected that users of :mod:`http.cookiejar` construct their own :class:" +"`Cookie` instances. Instead, if necessary, call :meth:`make_cookies` on a :" +"class:`CookieJar` instance." msgstr "" -#: ../../library/http.cookiejar.rst:119 msgid "Module :mod:`urllib.request`" msgstr "" -#: ../../library/http.cookiejar.rst:120 msgid "URL opening with automatic cookie handling." msgstr "" -#: ../../library/http.cookiejar.rst:122 msgid "Module :mod:`http.cookies`" msgstr "" -#: ../../library/http.cookiejar.rst:123 msgid "" -"HTTP cookie classes, principally useful for server-side code. " -"The :mod:`http.cookiejar` and :mod:`http.cookies` modules do not depend on " -"each other." +"HTTP cookie classes, principally useful for server-side code. The :mod:" +"`http.cookiejar` and :mod:`http.cookies` modules do not depend on each other." msgstr "" -#: ../../library/http.cookiejar.rst:127 msgid "https://curl.se/rfc/cookie_spec.html" msgstr "" -#: ../../library/http.cookiejar.rst:128 msgid "" "The specification of the original Netscape cookie protocol. Though this is " "still the dominant protocol, the 'Netscape cookie protocol' implemented by " @@ -183,55 +157,43 @@ msgid "" "resemblance to the one sketched out in ``cookie_spec.html``." msgstr "" -#: ../../library/http.cookiejar.rst:133 msgid ":rfc:`2109` - HTTP State Management Mechanism" msgstr "" -#: ../../library/http.cookiejar.rst:134 msgid "Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1." msgstr "" -#: ../../library/http.cookiejar.rst:136 msgid ":rfc:`2965` - HTTP State Management Mechanism" msgstr "" -#: ../../library/http.cookiejar.rst:137 msgid "" "The Netscape protocol with the bugs fixed. Uses :mailheader:`Set-Cookie2` " "in place of :mailheader:`Set-Cookie`. Not widely used." msgstr "" -#: ../../library/http.cookiejar.rst:140 msgid "https://kristol.org/cookie/errata.html" msgstr "" -#: ../../library/http.cookiejar.rst:141 msgid "Unfinished errata to :rfc:`2965`." msgstr "" -#: ../../library/http.cookiejar.rst:143 msgid ":rfc:`2964` - Use of HTTP State Management" msgstr "" -#: ../../library/http.cookiejar.rst:148 msgid "CookieJar and FileCookieJar Objects" msgstr "" -#: ../../library/http.cookiejar.rst:150 msgid "" ":class:`CookieJar` objects support the :term:`iterator` protocol for " "iterating over contained :class:`Cookie` objects." msgstr "" -#: ../../library/http.cookiejar.rst:153 msgid ":class:`CookieJar` has the following methods:" msgstr "" -#: ../../library/http.cookiejar.rst:158 msgid "Add correct :mailheader:`Cookie` header to *request*." msgstr "" -#: ../../library/http.cookiejar.rst:160 msgid "" "If policy allows (ie. the :attr:`rfc2965` and :attr:`hide_cookie2` " "attributes of the :class:`CookieJar`'s :class:`CookiePolicy` instance are " @@ -239,83 +201,68 @@ msgid "" "when appropriate." msgstr "" -#: ../../library/http.cookiejar.rst:164 msgid "" "The *request* object (usually a :class:`urllib.request.Request` instance) " -"must support the " -"methods :meth:`get_full_url`, :meth:`has_header`, :meth:`get_header`, :meth:`header_items`, :meth:`add_unredirected_header` " -"and the attributes :attr:`host`, :attr:`!type`, :attr:`unverifiable` " -"and :attr:`origin_req_host` as documented by :mod:`urllib.request`." +"must support the methods :meth:`get_full_url`, :meth:`has_header`, :meth:" +"`get_header`, :meth:`header_items`, :meth:`add_unredirected_header` and the " +"attributes :attr:`host`, :attr:`!type`, :attr:`unverifiable` and :attr:" +"`origin_req_host` as documented by :mod:`urllib.request`." msgstr "" -#: ../../library/http.cookiejar.rst:172 ../../library/http.cookiejar.rst:198 msgid "" "*request* object needs :attr:`origin_req_host` attribute. Dependency on a " "deprecated method :meth:`get_origin_req_host` has been removed." msgstr "" -#: ../../library/http.cookiejar.rst:178 msgid "" -"Extract cookies from HTTP *response* and store them in " -"the :class:`CookieJar`, where allowed by policy." +"Extract cookies from HTTP *response* and store them in the :class:" +"`CookieJar`, where allowed by policy." msgstr "" -#: ../../library/http.cookiejar.rst:181 msgid "" -"The :class:`CookieJar` will look for allowable :mailheader:`Set-Cookie` " -"and :mailheader:`Set-Cookie2` headers in the *response* argument, and store " +"The :class:`CookieJar` will look for allowable :mailheader:`Set-Cookie` and :" +"mailheader:`Set-Cookie2` headers in the *response* argument, and store " "cookies as appropriate (subject to the :meth:`CookiePolicy.set_ok` method's " "approval)." msgstr "" -#: ../../library/http.cookiejar.rst:185 msgid "" -"The *response* object (usually the result of a call " -"to :meth:`urllib.request.urlopen`, or similar) should support " -"an :meth:`info` method, which returns an :class:`email.message.Message` " -"instance." +"The *response* object (usually the result of a call to :meth:`urllib.request." +"urlopen`, or similar) should support an :meth:`info` method, which returns " +"an :class:`email.message.Message` instance." msgstr "" -#: ../../library/http.cookiejar.rst:189 msgid "" "The *request* object (usually a :class:`urllib.request.Request` instance) " -"must support the method :meth:`get_full_url` and the " -"attributes :attr:`host`, :attr:`unverifiable` and :attr:`origin_req_host`, " -"as documented by :mod:`urllib.request`. The request is used to set default " -"values for cookie-attributes as well as for checking that the cookie is " -"allowed to be set." +"must support the method :meth:`get_full_url` and the attributes :attr:" +"`host`, :attr:`unverifiable` and :attr:`origin_req_host`, as documented by :" +"mod:`urllib.request`. The request is used to set default values for cookie-" +"attributes as well as for checking that the cookie is allowed to be set." msgstr "" -#: ../../library/http.cookiejar.rst:203 msgid "Set the :class:`CookiePolicy` instance to be used." msgstr "" -#: ../../library/http.cookiejar.rst:208 msgid "" "Return sequence of :class:`Cookie` objects extracted from *response* object." msgstr "" -#: ../../library/http.cookiejar.rst:210 msgid "" "See the documentation for :meth:`extract_cookies` for the interfaces " "required of the *response* and *request* arguments." msgstr "" -#: ../../library/http.cookiejar.rst:216 msgid "Set a :class:`Cookie` if policy says it's OK to do so." msgstr "" -#: ../../library/http.cookiejar.rst:221 msgid "" "Set a :class:`Cookie`, without checking with policy to see whether or not it " "should be set." msgstr "" -#: ../../library/http.cookiejar.rst:227 msgid "Clear some cookies." msgstr "" -#: ../../library/http.cookiejar.rst:229 msgid "" "If invoked without arguments, clear all cookies. If given a single " "argument, only cookies belonging to that *domain* will be removed. If given " @@ -324,15 +271,12 @@ msgid "" "*domain*, *path* and *name* is removed." msgstr "" -#: ../../library/http.cookiejar.rst:235 msgid "Raises :exc:`KeyError` if no matching cookie exists." msgstr "" -#: ../../library/http.cookiejar.rst:240 msgid "Discard all session cookies." msgstr "" -#: ../../library/http.cookiejar.rst:242 msgid "" "Discards all contained cookies that have a true :attr:`discard` attribute " "(usually because they had either no ``max-age`` or ``expires`` cookie-" @@ -341,91 +285,74 @@ msgid "" "window." msgstr "" -#: ../../library/http.cookiejar.rst:247 msgid "" "Note that the :meth:`save` method won't save session cookies anyway, unless " "you ask otherwise by passing a true *ignore_discard* argument." msgstr "" -#: ../../library/http.cookiejar.rst:250 msgid ":class:`FileCookieJar` implements the following additional methods:" msgstr "" -#: ../../library/http.cookiejar.rst:255 msgid "Save cookies to a file." msgstr "" -#: ../../library/http.cookiejar.rst:257 msgid "" "This base class raises :exc:`NotImplementedError`. Subclasses may leave " "this method unimplemented." msgstr "" -#: ../../library/http.cookiejar.rst:260 msgid "" "*filename* is the name of file in which to save cookies. If *filename* is " "not specified, :attr:`self.filename` is used (whose default is the value " -"passed to the constructor, if any); if :attr:`self.filename` " -"is :const:`None`, :exc:`ValueError` is raised." +"passed to the constructor, if any); if :attr:`self.filename` is :const:" +"`None`, :exc:`ValueError` is raised." msgstr "" -#: ../../library/http.cookiejar.rst:265 msgid "" "*ignore_discard*: save even cookies set to be discarded. *ignore_expires*: " "save even cookies that have expired" msgstr "" -#: ../../library/http.cookiejar.rst:268 msgid "" "The file is overwritten if it already exists, thus wiping all the cookies it " -"contains. Saved cookies can be restored later using the :meth:`load` " -"or :meth:`revert` methods." +"contains. Saved cookies can be restored later using the :meth:`load` or :" +"meth:`revert` methods." msgstr "" -#: ../../library/http.cookiejar.rst:275 msgid "Load cookies from a file." msgstr "" -#: ../../library/http.cookiejar.rst:277 msgid "Old cookies are kept unless overwritten by newly loaded ones." msgstr "" -#: ../../library/http.cookiejar.rst:279 msgid "Arguments are as for :meth:`save`." msgstr "" -#: ../../library/http.cookiejar.rst:281 msgid "" -"The named file must be in the format understood by the class, " -"or :exc:`LoadError` will be raised. Also, :exc:`OSError` may be raised, for " -"example if the file does not exist." +"The named file must be in the format understood by the class, or :exc:" +"`LoadError` will be raised. Also, :exc:`OSError` may be raised, for example " +"if the file does not exist." msgstr "" -#: ../../library/http.cookiejar.rst:285 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" -#: ../../library/http.cookiejar.rst:291 msgid "Clear all cookies and reload cookies from a saved file." msgstr "" -#: ../../library/http.cookiejar.rst:293 msgid "" ":meth:`revert` can raise the same exceptions as :meth:`load`. If there is a " "failure, the object's state will not be altered." msgstr "" -#: ../../library/http.cookiejar.rst:296 msgid ":class:`FileCookieJar` instances have the following public attributes:" msgstr "" -#: ../../library/http.cookiejar.rst:301 msgid "" "Filename of default file in which to keep cookies. This attribute may be " "assigned to." msgstr "" -#: ../../library/http.cookiejar.rst:307 msgid "" "If true, load cookies lazily from disk. This attribute should not be " "assigned to. This is only a hint, since this only affects performance, not " @@ -434,43 +361,36 @@ msgid "" "in the standard library lazily loads cookies." msgstr "" -#: ../../library/http.cookiejar.rst:317 msgid "FileCookieJar subclasses and co-operation with web browsers" msgstr "" -#: ../../library/http.cookiejar.rst:319 msgid "" "The following :class:`CookieJar` subclasses are provided for reading and " "writing." msgstr "" -#: ../../library/http.cookiejar.rst:324 msgid "" "A :class:`FileCookieJar` that can load from and save cookies to disk in the " "Mozilla ``cookies.txt`` file format (which is also used by curl and the Lynx " "and Netscape browsers)." msgstr "" -#: ../../library/http.cookiejar.rst:330 msgid "" "This loses information about :rfc:`2965` cookies, and also about newer or " "non-standard cookie-attributes such as ``port``." msgstr "" -#: ../../library/http.cookiejar.rst:335 msgid "" "Back up your cookies before saving if you have cookies whose loss / " "corruption would be inconvenient (there are some subtleties which may lead " "to slight changes in the file over a load / save round-trip)." msgstr "" -#: ../../library/http.cookiejar.rst:339 msgid "" "Also note that cookies saved while Mozilla is running will get clobbered by " "Mozilla." msgstr "" -#: ../../library/http.cookiejar.rst:345 msgid "" "A :class:`FileCookieJar` that can load from and save cookies to disk in " "format compatible with the libwww-perl library's ``Set-Cookie3`` file " @@ -478,47 +398,39 @@ msgid "" "file." msgstr "" -#: ../../library/http.cookiejar.rst:356 msgid "CookiePolicy Objects" msgstr "" -#: ../../library/http.cookiejar.rst:358 msgid "" "Objects implementing the :class:`CookiePolicy` interface have the following " "methods:" msgstr "" -#: ../../library/http.cookiejar.rst:364 msgid "" "Return boolean value indicating whether cookie should be accepted from " "server." msgstr "" -#: ../../library/http.cookiejar.rst:366 msgid "" "*cookie* is a :class:`Cookie` instance. *request* is an object implementing " -"the interface defined by the documentation " -"for :meth:`CookieJar.extract_cookies`." +"the interface defined by the documentation for :meth:`CookieJar." +"extract_cookies`." msgstr "" -#: ../../library/http.cookiejar.rst:373 msgid "" "Return boolean value indicating whether cookie should be returned to server." msgstr "" -#: ../../library/http.cookiejar.rst:375 msgid "" "*cookie* is a :class:`Cookie` instance. *request* is an object implementing " -"the interface defined by the documentation " -"for :meth:`CookieJar.add_cookie_header`." +"the interface defined by the documentation for :meth:`CookieJar." +"add_cookie_header`." msgstr "" -#: ../../library/http.cookiejar.rst:382 msgid "" "Return ``False`` if cookies should not be returned, given cookie domain." msgstr "" -#: ../../library/http.cookiejar.rst:384 msgid "" "This method is an optimization. It removes the need for checking every " "cookie with a particular domain (which might involve reading many files). " @@ -526,18 +438,15 @@ msgid "" "leaves all the work to :meth:`return_ok`." msgstr "" -#: ../../library/http.cookiejar.rst:389 msgid "" -"If :meth:`domain_return_ok` returns true for the cookie " -"domain, :meth:`path_return_ok` is called for the cookie path. " -"Otherwise, :meth:`path_return_ok` and :meth:`return_ok` are never called for " -"that cookie domain. If :meth:`path_return_ok` returns " -"true, :meth:`return_ok` is called with the :class:`Cookie` object itself for " -"a full check. Otherwise, :meth:`return_ok` is never called for that cookie " -"path." +"If :meth:`domain_return_ok` returns true for the cookie domain, :meth:" +"`path_return_ok` is called for the cookie path. Otherwise, :meth:" +"`path_return_ok` and :meth:`return_ok` are never called for that cookie " +"domain. If :meth:`path_return_ok` returns true, :meth:`return_ok` is called " +"with the :class:`Cookie` object itself for a full check. Otherwise, :meth:" +"`return_ok` is never called for that cookie path." msgstr "" -#: ../../library/http.cookiejar.rst:396 msgid "" "Note that :meth:`domain_return_ok` is called for every *cookie* domain, not " "just for the *request* domain. For example, the function might be called " @@ -545,41 +454,33 @@ msgid "" "domain is ``\"www.example.com\"``. The same goes for :meth:`path_return_ok`." msgstr "" -#: ../../library/http.cookiejar.rst:401 msgid "The *request* argument is as documented for :meth:`return_ok`." msgstr "" -#: ../../library/http.cookiejar.rst:406 msgid "Return ``False`` if cookies should not be returned, given cookie path." msgstr "" -#: ../../library/http.cookiejar.rst:408 msgid "See the documentation for :meth:`domain_return_ok`." msgstr "" -#: ../../library/http.cookiejar.rst:410 msgid "" -"In addition to implementing the methods above, implementations of " -"the :class:`CookiePolicy` interface must also supply the following " -"attributes, indicating which protocols should be used, and how. All of " -"these attributes may be assigned to." +"In addition to implementing the methods above, implementations of the :class:" +"`CookiePolicy` interface must also supply the following attributes, " +"indicating which protocols should be used, and how. All of these attributes " +"may be assigned to." msgstr "" -#: ../../library/http.cookiejar.rst:418 msgid "Implement Netscape protocol." msgstr "" -#: ../../library/http.cookiejar.rst:423 msgid "Implement :rfc:`2965` protocol." msgstr "" -#: ../../library/http.cookiejar.rst:428 msgid "" "Don't add :mailheader:`Cookie2` header to requests (the presence of this " "header indicates to the server that we understand :rfc:`2965` cookies)." msgstr "" -#: ../../library/http.cookiejar.rst:431 msgid "" "The most useful way to define a :class:`CookiePolicy` class is by " "subclassing from :class:`DefaultCookiePolicy` and overriding some or all of " @@ -588,28 +489,23 @@ msgid "" "to be useful)." msgstr "" -#: ../../library/http.cookiejar.rst:440 msgid "DefaultCookiePolicy Objects" msgstr "" -#: ../../library/http.cookiejar.rst:442 msgid "Implements the standard rules for accepting and returning cookies." msgstr "" -#: ../../library/http.cookiejar.rst:444 msgid "" "Both :rfc:`2965` and Netscape cookies are covered. RFC 2965 handling is " "switched off by default." msgstr "" -#: ../../library/http.cookiejar.rst:447 msgid "" "The easiest way to provide your own policy is to override this class and " "call its methods in your overridden implementations before adding your own " "additional checks::" msgstr "" -#: ../../library/http.cookiejar.rst:451 msgid "" "import http.cookiejar\n" "class MyCookiePolicy(http.cookiejar.DefaultCookiePolicy):\n" @@ -622,7 +518,6 @@ msgid "" " return True" msgstr "" -#: ../../library/http.cookiejar.rst:460 msgid "" "In addition to the features required to implement the :class:`CookiePolicy` " "interface, this class allows you to block and allow domains from setting and " @@ -631,98 +526,82 @@ msgid "" "cost of blocking some benign cookies)." msgstr "" -#: ../../library/http.cookiejar.rst:466 msgid "" "A domain blocklist and allowlist is provided (both off by default). Only " "domains not in the blocklist and present in the allowlist (if the allowlist " "is active) participate in cookie setting and returning. Use the " -"*blocked_domains* constructor argument, and :meth:`blocked_domains` " -"and :meth:`set_blocked_domains` methods (and the corresponding argument and " +"*blocked_domains* constructor argument, and :meth:`blocked_domains` and :" +"meth:`set_blocked_domains` methods (and the corresponding argument and " "methods for *allowed_domains*). If you set an allowlist, you can turn it " "off again by setting it to :const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:474 msgid "" "Domains in block or allow lists that do not start with a dot must equal the " "cookie domain to be matched. For example, ``\"example.com\"`` matches a " "blocklist entry of ``\"example.com\"``, but ``\"www.example.com\"`` does " "not. Domains that do start with a dot are matched by more specific domains " -"too. For example, both ``\"www.example.com\"`` and " -"``\"www.coyote.example.com\"`` match ``\".example.com\"`` (but " -"``\"example.com\"`` itself does not). IP addresses are an exception, and " -"must match exactly. For example, if blocked_domains contains " -"``\"192.168.1.2\"`` and ``\".168.1.2\"``, 192.168.1.2 is blocked, but " -"193.168.1.2 is not." +"too. For example, both ``\"www.example.com\"`` and ``\"www.coyote.example." +"com\"`` match ``\".example.com\"`` (but ``\"example.com\"`` itself does " +"not). IP addresses are an exception, and must match exactly. For example, " +"if blocked_domains contains ``\"192.168.1.2\"`` and ``\".168.1.2\"``, " +"192.168.1.2 is blocked, but 193.168.1.2 is not." msgstr "" -#: ../../library/http.cookiejar.rst:483 msgid "" ":class:`DefaultCookiePolicy` implements the following additional methods:" msgstr "" -#: ../../library/http.cookiejar.rst:488 msgid "Return the sequence of blocked domains (as a tuple)." msgstr "" -#: ../../library/http.cookiejar.rst:493 msgid "Set the sequence of blocked domains." msgstr "" -#: ../../library/http.cookiejar.rst:498 msgid "" "Return ``True`` if *domain* is on the blocklist for setting or receiving " "cookies." msgstr "" -#: ../../library/http.cookiejar.rst:504 msgid "Return :const:`None`, or the sequence of allowed domains (as a tuple)." msgstr "" -#: ../../library/http.cookiejar.rst:509 msgid "Set the sequence of allowed domains, or :const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:514 msgid "" "Return ``True`` if *domain* is not on the allowlist for setting or receiving " "cookies." msgstr "" -#: ../../library/http.cookiejar.rst:517 msgid "" ":class:`DefaultCookiePolicy` instances have the following attributes, which " "are all initialised from the constructor arguments of the same name, and " "which may all be assigned to." msgstr "" -#: ../../library/http.cookiejar.rst:524 msgid "" "If true, request that the :class:`CookieJar` instance downgrade :rfc:`2109` " "cookies (ie. cookies received in a :mailheader:`Set-Cookie` header with a " "version cookie-attribute of 1) to Netscape cookies by setting the version " -"attribute of the :class:`Cookie` instance to 0. The default value " -"is :const:`None`, in which case RFC 2109 cookies are downgraded if and only " -"if :rfc:`2965` handling is turned off. Therefore, RFC 2109 cookies are " -"downgraded by default." +"attribute of the :class:`Cookie` instance to 0. The default value is :const:" +"`None`, in which case RFC 2109 cookies are downgraded if and only if :rfc:" +"`2965` handling is turned off. Therefore, RFC 2109 cookies are downgraded " +"by default." msgstr "" -#: ../../library/http.cookiejar.rst:532 msgid "General strictness switches:" msgstr "" -#: ../../library/http.cookiejar.rst:536 msgid "" "Don't allow sites to set two-component domains with country-code top-level " "domains like ``.co.uk``, ``.gov.uk``, ``.co.nz``.etc. This is far from " "perfect and isn't guaranteed to work!" msgstr "" -#: ../../library/http.cookiejar.rst:541 msgid ":rfc:`2965` protocol strictness switches:" msgstr "" -#: ../../library/http.cookiejar.rst:545 msgid "" "Follow :rfc:`2965` rules on unverifiable transactions (usually, an " "unverifiable transaction is one resulting from a redirect or a request for " @@ -730,46 +609,38 @@ msgid "" "blocked on the basis of verifiability" msgstr "" -#: ../../library/http.cookiejar.rst:551 msgid "Netscape protocol strictness switches:" msgstr "" -#: ../../library/http.cookiejar.rst:555 msgid "" "Apply :rfc:`2965` rules on unverifiable transactions even to Netscape " "cookies." msgstr "" -#: ../../library/http.cookiejar.rst:560 msgid "" "Flags indicating how strict to be with domain-matching rules for Netscape " "cookies. See below for acceptable values." msgstr "" -#: ../../library/http.cookiejar.rst:566 msgid "" "Ignore cookies in Set-Cookie: headers that have names starting with ``'$'``." msgstr "" -#: ../../library/http.cookiejar.rst:571 msgid "Don't allow setting cookies whose path doesn't path-match request URI." msgstr "" -#: ../../library/http.cookiejar.rst:573 msgid "" ":attr:`~DefaultCookiePolicy.strict_ns_domain` is a collection of flags. Its " "value is constructed by or-ing together (for example, ``DomainStrictNoDots|" "DomainStrictNonDomain`` means both flags are set)." msgstr "" -#: ../../library/http.cookiejar.rst:580 msgid "" -"When setting cookies, the 'host prefix' must not contain a dot (eg. " -"``www.foo.bar.com`` can't set a cookie for ``.bar.com``, because ``www.foo`` " +"When setting cookies, the 'host prefix' must not contain a dot (eg. ``www." +"foo.bar.com`` can't set a cookie for ``.bar.com``, because ``www.foo`` " "contains a dot)." msgstr "" -#: ../../library/http.cookiejar.rst:587 msgid "" "Cookies that did not explicitly specify a ``domain`` cookie-attribute can " "only be returned to a domain equal to the domain that set the cookie (eg. " @@ -777,31 +648,25 @@ msgid "" "no ``domain`` cookie-attribute)." msgstr "" -#: ../../library/http.cookiejar.rst:595 msgid "When setting cookies, require a full :rfc:`2965` domain-match." msgstr "" -#: ../../library/http.cookiejar.rst:597 msgid "" "The following attributes are provided for convenience, and are the most " "useful combinations of the above flags:" msgstr "" -#: ../../library/http.cookiejar.rst:603 msgid "" "Equivalent to 0 (ie. all of the above Netscape domain strictness flags " "switched off)." msgstr "" -#: ../../library/http.cookiejar.rst:609 msgid "Equivalent to ``DomainStrictNoDots|DomainStrictNonDomain``." msgstr "" -#: ../../library/http.cookiejar.rst:613 msgid "Cookie Objects" msgstr "" -#: ../../library/http.cookiejar.rst:615 msgid "" ":class:`Cookie` instances have Python attributes roughly corresponding to " "the standard cookie-attributes specified in the various cookie standards. " @@ -812,70 +677,57 @@ msgid "" "(Netscape) cookies." msgstr "" -#: ../../library/http.cookiejar.rst:623 msgid "" "Assignment to these attributes should not be necessary other than in rare " "circumstances in a :class:`CookiePolicy` method. The class does not enforce " "internal consistency, so you should know what you're doing if you do that." msgstr "" -#: ../../library/http.cookiejar.rst:630 msgid "" -"Integer or :const:`None`. Netscape cookies have :attr:`version` " -"0. :rfc:`2965` and :rfc:`2109` cookies have a ``version`` cookie-attribute " -"of 1. However, note that :mod:`http.cookiejar` may 'downgrade' RFC 2109 " -"cookies to Netscape cookies, in which case :attr:`version` is 0." +"Integer or :const:`None`. Netscape cookies have :attr:`version` 0. :rfc:" +"`2965` and :rfc:`2109` cookies have a ``version`` cookie-attribute of 1. " +"However, note that :mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to " +"Netscape cookies, in which case :attr:`version` is 0." msgstr "" -#: ../../library/http.cookiejar.rst:638 msgid "Cookie name (a string)." msgstr "" -#: ../../library/http.cookiejar.rst:643 msgid "Cookie value (a string), or :const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:648 msgid "" -"String representing a port or a set of ports (eg. '80', or '80,8080'), " -"or :const:`None`." +"String representing a port or a set of ports (eg. '80', or '80,8080'), or :" +"const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:654 msgid "Cookie domain (a string)." msgstr "" -#: ../../library/http.cookiejar.rst:659 msgid "Cookie path (a string, eg. ``'/acme/rocket_launchers'``)." msgstr "" -#: ../../library/http.cookiejar.rst:664 msgid "``True`` if cookie should only be returned over a secure connection." msgstr "" -#: ../../library/http.cookiejar.rst:669 msgid "" -"Integer expiry date in seconds since epoch, or :const:`None`. See also " -"the :meth:`is_expired` method." +"Integer expiry date in seconds since epoch, or :const:`None`. See also the :" +"meth:`is_expired` method." msgstr "" -#: ../../library/http.cookiejar.rst:675 msgid "``True`` if this is a session cookie." msgstr "" -#: ../../library/http.cookiejar.rst:680 msgid "" -"String comment from the server explaining the function of this cookie, " -"or :const:`None`." +"String comment from the server explaining the function of this cookie, or :" +"const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:686 msgid "" "URL linking to a comment from the server explaining the function of this " "cookie, or :const:`None`." msgstr "" -#: ../../library/http.cookiejar.rst:692 msgid "" "``True`` if this cookie was received as an :rfc:`2109` cookie (ie. the " "cookie arrived in a :mailheader:`Set-Cookie` header, and the value of the " @@ -884,90 +736,75 @@ msgid "" "cookies, in which case :attr:`version` is 0." msgstr "" -#: ../../library/http.cookiejar.rst:701 msgid "" "``True`` if a port or set of ports was explicitly specified by the server " "(in the :mailheader:`Set-Cookie` / :mailheader:`Set-Cookie2` header)." msgstr "" -#: ../../library/http.cookiejar.rst:707 msgid "``True`` if a domain was explicitly specified by the server." msgstr "" -#: ../../library/http.cookiejar.rst:712 msgid "" "``True`` if the domain explicitly specified by the server began with a dot " "(``'.'``)." msgstr "" -#: ../../library/http.cookiejar.rst:715 msgid "" "Cookies may have additional non-standard cookie-attributes. These may be " "accessed using the following methods:" msgstr "" -#: ../../library/http.cookiejar.rst:721 msgid "Return ``True`` if cookie has the named cookie-attribute." msgstr "" -#: ../../library/http.cookiejar.rst:726 msgid "" "If cookie has the named cookie-attribute, return its value. Otherwise, " "return *default*." msgstr "" -#: ../../library/http.cookiejar.rst:732 msgid "Set the value of the named cookie-attribute." msgstr "" -#: ../../library/http.cookiejar.rst:734 msgid "The :class:`Cookie` class also defines the following method:" msgstr "" -#: ../../library/http.cookiejar.rst:739 msgid "" "``True`` if cookie has passed the time at which the server requested it " "should expire. If *now* is given (in seconds since the epoch), return " "whether the cookie has expired at the specified time." msgstr "" -#: ../../library/http.cookiejar.rst:745 msgid "Examples" msgstr "" -#: ../../library/http.cookiejar.rst:747 msgid "" "The first example shows the most common usage of :mod:`http.cookiejar`::" msgstr "" -#: ../../library/http.cookiejar.rst:749 msgid "" "import http.cookiejar, urllib.request\n" "cj = http.cookiejar.CookieJar()\n" -"opener = " -"urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))\n" +"opener = urllib.request.build_opener(urllib.request." +"HTTPCookieProcessor(cj))\n" "r = opener.open(\"http://example.com/\")" msgstr "" -#: ../../library/http.cookiejar.rst:754 msgid "" "This example illustrates how to open a URL using your Netscape, Mozilla, or " "Lynx cookies (assumes Unix/Netscape convention for location of the cookies " "file)::" msgstr "" -#: ../../library/http.cookiejar.rst:757 msgid "" "import os, http.cookiejar, urllib.request\n" "cj = http.cookiejar.MozillaCookieJar()\n" -"cj.load(os.path.join(os.path.expanduser(\"~\"), \".netscape\", " -"\"cookies.txt\"))\n" -"opener = " -"urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))\n" +"cj.load(os.path.join(os.path.expanduser(\"~\"), \".netscape\", \"cookies." +"txt\"))\n" +"opener = urllib.request.build_opener(urllib.request." +"HTTPCookieProcessor(cj))\n" "r = opener.open(\"http://example.com/\")" msgstr "" -#: ../../library/http.cookiejar.rst:763 msgid "" "The next example illustrates the use of :class:`DefaultCookiePolicy`. Turn " "on :rfc:`2965` cookies, be more strict about domains when setting and " @@ -975,7 +812,6 @@ msgid "" "having them returned::" msgstr "" -#: ../../library/http.cookiejar.rst:768 msgid "" "import urllib.request\n" "from http.cookiejar import CookieJar, DefaultCookiePolicy\n" @@ -983,7 +819,7 @@ msgid "" " rfc2965=True, strict_ns_domain=Policy.DomainStrict,\n" " blocked_domains=[\"ads.net\", \".ads.net\"])\n" "cj = CookieJar(policy)\n" -"opener = " -"urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))\n" +"opener = urllib.request.build_opener(urllib.request." +"HTTPCookieProcessor(cj))\n" "r = opener.open(\"http://example.com/\")" msgstr "" diff --git a/library/http.cookies.po b/library/http.cookies.po index cd21d27..5c6d0c1 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/http.cookies.rst:2 msgid ":mod:`!http.cookies` --- HTTP state management" msgstr "" -#: ../../library/http.cookies.rst:10 msgid "**Source code:** :source:`Lib/http/cookies.py`" msgstr "" -#: ../../library/http.cookies.rst:14 msgid "" "The :mod:`http.cookies` module defines classes for abstracting the concept " "of cookies, an HTTP state management mechanism. It supports both simple " @@ -34,41 +31,35 @@ msgid "" "data-type as cookie value." msgstr "" -#: ../../library/http.cookies.rst:19 msgid "" -"The module formerly strictly applied the parsing rules described in " -"the :rfc:`2109` and :rfc:`2068` specifications. It has since been " -"discovered that MSIE 3.0x didn't follow the character rules outlined in " -"those specs; many current-day browsers and servers have also relaxed parsing " -"rules when it comes to cookie handling. As a result, this module now uses " -"parsing rules that are a bit less strict than they once were." +"The module formerly strictly applied the parsing rules described in the :rfc:" +"`2109` and :rfc:`2068` specifications. It has since been discovered that " +"MSIE 3.0x didn't follow the character rules outlined in those specs; many " +"current-day browsers and servers have also relaxed parsing rules when it " +"comes to cookie handling. As a result, this module now uses parsing rules " +"that are a bit less strict than they once were." msgstr "" -#: ../../library/http.cookies.rst:26 msgid "" "The character set, :data:`string.ascii_letters`, :data:`string.digits` and " "``!#$%&'*+-.^_`|~:`` denote the set of valid characters allowed by this " "module in a cookie name (as :attr:`~Morsel.key`)." msgstr "" -#: ../../library/http.cookies.rst:30 msgid "Allowed ':' as a valid cookie name character." msgstr "" -#: ../../library/http.cookies.rst:36 msgid "" "On encountering an invalid cookie, :exc:`CookieError` is raised, so if your " "cookie data comes from a browser you should always prepare for invalid data " "and catch :exc:`CookieError` on parsing." msgstr "" -#: ../../library/http.cookies.rst:43 msgid "" "Exception failing because of :rfc:`2109` invalidity: incorrect attributes, " "incorrect :mailheader:`Set-Cookie` header, etc." msgstr "" -#: ../../library/http.cookies.rst:49 msgid "" "This class is a dictionary-like object whose keys are strings and whose " "values are :class:`Morsel` instances. Note that upon setting a key to a " @@ -76,63 +67,51 @@ msgid "" "and the value." msgstr "" -#: ../../library/http.cookies.rst:53 msgid "If *input* is given, it is passed to the :meth:`load` method." msgstr "" -#: ../../library/http.cookies.rst:58 msgid "" -"This class derives from :class:`BaseCookie` and " -"overrides :meth:`~BaseCookie.value_decode` " -"and :meth:`~BaseCookie.value_encode`. :class:`!SimpleCookie` supports " -"strings as cookie values. When setting the value, :class:`!SimpleCookie` " -"calls the builtin :func:`str` to convert the value to a string. Values " -"received from HTTP are kept as strings." +"This class derives from :class:`BaseCookie` and overrides :meth:`~BaseCookie." +"value_decode` and :meth:`~BaseCookie.value_encode`. :class:`!SimpleCookie` " +"supports strings as cookie values. When setting the value, :class:`!" +"SimpleCookie` calls the builtin :func:`str` to convert the value to a " +"string. Values received from HTTP are kept as strings." msgstr "" -#: ../../library/http.cookies.rst:66 msgid "Module :mod:`http.cookiejar`" msgstr "" -#: ../../library/http.cookies.rst:67 msgid "" -"HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` " -"and :mod:`http.cookies` modules do not depend on each other." +"HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` and :mod:" +"`http.cookies` modules do not depend on each other." msgstr "" -#: ../../library/http.cookies.rst:70 msgid ":rfc:`2109` - HTTP State Management Mechanism" msgstr "" -#: ../../library/http.cookies.rst:71 msgid "This is the state management specification implemented by this module." msgstr "" -#: ../../library/http.cookies.rst:77 msgid "Cookie Objects" msgstr "" -#: ../../library/http.cookies.rst:82 msgid "" "Return a tuple ``(real_value, coded_value)`` from a string representation. " -"``real_value`` can be any type. This method does no decoding " -"in :class:`BaseCookie` --- it exists so it can be overridden." +"``real_value`` can be any type. This method does no decoding in :class:" +"`BaseCookie` --- it exists so it can be overridden." msgstr "" -#: ../../library/http.cookies.rst:89 msgid "" "Return a tuple ``(real_value, coded_value)``. *val* can be any type, but " "``coded_value`` will always be converted to a string. This method does no " "encoding in :class:`BaseCookie` --- it exists so it can be overridden." msgstr "" -#: ../../library/http.cookies.rst:94 msgid "" -"In general, it should be the case that :meth:`value_encode` " -"and :meth:`value_decode` are inverses on the range of *value_decode*." +"In general, it should be the case that :meth:`value_encode` and :meth:" +"`value_decode` are inverses on the range of *value_decode*." msgstr "" -#: ../../library/http.cookies.rst:100 msgid "" "Return a string representation suitable to be sent as HTTP headers. *attrs* " "and *header* are sent to each :class:`Morsel`'s :meth:`~Morsel.output` " @@ -140,52 +119,42 @@ msgid "" "combination ``'\\r\\n'`` (CRLF)." msgstr "" -#: ../../library/http.cookies.rst:108 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP headers was sent." msgstr "" -#: ../../library/http.cookies.rst:111 ../../library/http.cookies.rst:227 -#: ../../library/http.cookies.rst:235 msgid "The meaning for *attrs* is the same as in :meth:`output`." msgstr "" -#: ../../library/http.cookies.rst:116 msgid "" "If *rawdata* is a string, parse it as an ``HTTP_COOKIE`` and add the values " "found there as :class:`Morsel`\\ s. If it is a dictionary, it is equivalent " "to::" msgstr "" -#: ../../library/http.cookies.rst:119 msgid "" "for k, v in rawdata.items():\n" " cookie[k] = v" msgstr "" -#: ../../library/http.cookies.rst:126 msgid "Morsel Objects" msgstr "" -#: ../../library/http.cookies.rst:131 msgid "Abstract a key/value pair, which has some :rfc:`2109` attributes." msgstr "" -#: ../../library/http.cookies.rst:133 msgid "" "Morsels are dictionary-like objects, whose set of keys is constant --- the " "valid :rfc:`2109` attributes, which are:" msgstr "" -#: ../../library/http.cookies.rst:147 msgid "" "The attribute :attr:`httponly` specifies that the cookie is only transferred " "in HTTP requests, and is not accessible through JavaScript. This is intended " "to mitigate some forms of cross-site scripting." msgstr "" -#: ../../library/http.cookies.rst:151 msgid "" "The attribute :attr:`samesite` controls when the browser sends the cookie " "with cross-site requests. This helps to mitigate CSRF attacks. Valid values " @@ -195,7 +164,6 @@ msgid "" "also be set, as required by modern browsers." msgstr "" -#: ../../library/http.cookies.rst:158 msgid "" "The attribute :attr:`partitioned` indicates to user agents that these cross-" "site cookies *should* only be available in the same top-level context that " @@ -203,7 +171,6 @@ msgid "" "**must** also set ``Secure``." msgstr "" -#: ../../library/http.cookies.rst:163 msgid "" "In addition, it is recommended to use the ``__Host`` prefix when setting " "partitioned cookies to make them bound to the hostname and not the " @@ -211,52 +178,40 @@ msgid "" "State)`_ for full details and examples." msgstr "" -#: ../../library/http.cookies.rst:171 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" -#: ../../library/http.cookies.rst:173 msgid "" ":meth:`!__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel.value` into " "account." msgstr "" -#: ../../library/http.cookies.rst:177 msgid "" -"Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` " -"and :attr:`~Morsel.coded_value` are read-only. Use :meth:`~Morsel.set` for " -"setting them." +"Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and :attr:`~Morsel." +"coded_value` are read-only. Use :meth:`~Morsel.set` for setting them." msgstr "" -#: ../../library/http.cookies.rst:182 msgid "Added support for the :attr:`samesite` attribute." msgstr "" -#: ../../library/http.cookies.rst:185 msgid "Added support for the :attr:`partitioned` attribute." msgstr "" -#: ../../library/http.cookies.rst:191 msgid "The value of the cookie." msgstr "" -#: ../../library/http.cookies.rst:196 msgid "The encoded value of the cookie --- this is what should be sent." msgstr "" -#: ../../library/http.cookies.rst:201 msgid "The name of the cookie." msgstr "" -#: ../../library/http.cookies.rst:206 msgid "Set the *key*, *value* and *coded_value* attributes." msgstr "" -#: ../../library/http.cookies.rst:211 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." msgstr "" -#: ../../library/http.cookies.rst:216 msgid "" "Return a string representation of the Morsel, suitable to be sent as an HTTP " "header. By default, all the attributes are included, unless *attrs* is " @@ -264,53 +219,43 @@ msgid "" "by default ``\"Set-Cookie:\"``." msgstr "" -#: ../../library/http.cookies.rst:224 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP header was sent." msgstr "" -#: ../../library/http.cookies.rst:232 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" -#: ../../library/http.cookies.rst:240 msgid "" "Update the values in the Morsel dictionary with the values in the dictionary " "*values*. Raise an error if any of the keys in the *values* dict is not a " "valid :rfc:`2109` attribute." msgstr "" -#: ../../library/http.cookies.rst:244 msgid "an error is raised for invalid keys." msgstr "" -#: ../../library/http.cookies.rst:250 msgid "Return a shallow copy of the Morsel object." msgstr "" -#: ../../library/http.cookies.rst:252 msgid "return a Morsel object instead of a dict." msgstr "" -#: ../../library/http.cookies.rst:258 msgid "" "Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " "the same as :meth:`dict.setdefault`." msgstr "" -#: ../../library/http.cookies.rst:265 msgid "Example" msgstr "" -#: ../../library/http.cookies.rst:267 msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" -#: ../../library/http.cookies.rst:269 msgid "" ">>> from http import cookies\n" ">>> C = cookies.SimpleCookie()\n" diff --git a/library/http.po b/library/http.po index 1957111..651f05a 100644 --- a/library/http.po +++ b/library/http.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,60 +18,48 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/http.rst:2 msgid ":mod:`!http` --- HTTP modules" msgstr "" -#: ../../library/http.rst:7 msgid "**Source code:** :source:`Lib/http/__init__.py`" msgstr "" -#: ../../library/http.rst:15 msgid "" ":mod:`http` is a package that collects several modules for working with the " "HyperText Transfer Protocol:" msgstr "" -#: ../../library/http.rst:18 msgid "" ":mod:`http.client` is a low-level HTTP protocol client; for high-level URL " "opening use :mod:`urllib.request`" msgstr "" -#: ../../library/http.rst:20 msgid "" -":mod:`http.server` contains basic HTTP server classes based " -"on :mod:`socketserver`" +":mod:`http.server` contains basic HTTP server classes based on :mod:" +"`socketserver`" msgstr "" -#: ../../library/http.rst:21 msgid "" ":mod:`http.cookies` has utilities for implementing state management with " "cookies" msgstr "" -#: ../../library/http.rst:22 msgid ":mod:`http.cookiejar` provides persistence of cookies" msgstr "" -#: ../../library/http.rst:25 msgid "" "The :mod:`http` module also defines the following enums that help you work " "with http related code:" msgstr "" -#: ../../library/http.rst:31 msgid "" "A subclass of :class:`enum.IntEnum` that defines a set of HTTP status codes, " "reason phrases and long descriptions written in English." msgstr "" -#: ../../library/http.rst:34 ../../library/http.rst:161 -#: ../../library/http.rst:175 msgid "Usage::" msgstr "" -#: ../../library/http.rst:36 msgid "" ">>> from http import HTTPStatus\n" ">>> HTTPStatus.OK\n" @@ -92,770 +76,578 @@ msgid "" "[HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]" msgstr "" -#: ../../library/http.rst:53 msgid "HTTP status codes" msgstr "" -#: ../../library/http.rst:55 msgid "" "Supported, `IANA-registered status codes `_ available " -"in :class:`http.HTTPStatus` are:" +"http-status-codes/http-status-codes.xhtml>`_ available in :class:`http." +"HTTPStatus` are:" msgstr "" -#: ../../library/http.rst:60 msgid "Code" msgstr "" -#: ../../library/http.rst:60 ../../library/http.rst:208 msgid "Enum Name" msgstr "" -#: ../../library/http.rst:60 ../../library/http.rst:152 -#: ../../library/http.rst:208 msgid "Details" msgstr "" -#: ../../library/http.rst:62 msgid "``100``" -msgstr "``100``" +msgstr "" -#: ../../library/http.rst:62 msgid "``CONTINUE``" -msgstr "``CONTINUE``" +msgstr "" -#: ../../library/http.rst:62 msgid "HTTP Semantics :rfc:`9110`, Section 15.2.1" msgstr "" -#: ../../library/http.rst:63 msgid "``101``" -msgstr "``101``" +msgstr "" -#: ../../library/http.rst:63 msgid "``SWITCHING_PROTOCOLS``" -msgstr "``SWITCHING_PROTOCOLS``" +msgstr "" -#: ../../library/http.rst:63 msgid "HTTP Semantics :rfc:`9110`, Section 15.2.2" msgstr "" -#: ../../library/http.rst:64 msgid "``102``" -msgstr "``102``" +msgstr "" -#: ../../library/http.rst:64 msgid "``PROCESSING``" -msgstr "``PROCESSING``" +msgstr "" -#: ../../library/http.rst:64 msgid "WebDAV :rfc:`2518`, Section 10.1" msgstr "" -#: ../../library/http.rst:65 msgid "``103``" -msgstr "``103``" +msgstr "" -#: ../../library/http.rst:65 msgid "``EARLY_HINTS``" -msgstr "``EARLY_HINTS``" +msgstr "" -#: ../../library/http.rst:65 msgid "An HTTP Status Code for Indicating Hints :rfc:`8297`" msgstr "" -#: ../../library/http.rst:66 msgid "``200``" -msgstr "``200``" +msgstr "" -#: ../../library/http.rst:66 msgid "``OK``" -msgstr "``OK``" +msgstr "" -#: ../../library/http.rst:66 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.1" msgstr "" -#: ../../library/http.rst:67 msgid "``201``" -msgstr "``201``" +msgstr "" -#: ../../library/http.rst:67 msgid "``CREATED``" -msgstr "``CREATED``" +msgstr "" -#: ../../library/http.rst:67 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.2" msgstr "" -#: ../../library/http.rst:68 msgid "``202``" -msgstr "``202``" +msgstr "" -#: ../../library/http.rst:68 msgid "``ACCEPTED``" -msgstr "``ACCEPTED``" +msgstr "" -#: ../../library/http.rst:68 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.3" msgstr "" -#: ../../library/http.rst:69 msgid "``203``" -msgstr "``203``" +msgstr "" -#: ../../library/http.rst:69 msgid "``NON_AUTHORITATIVE_INFORMATION``" -msgstr "``NON_AUTHORITATIVE_INFORMATION``" +msgstr "" -#: ../../library/http.rst:69 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.4" msgstr "" -#: ../../library/http.rst:70 msgid "``204``" -msgstr "``204``" +msgstr "" -#: ../../library/http.rst:70 msgid "``NO_CONTENT``" -msgstr "``NO_CONTENT``" +msgstr "" -#: ../../library/http.rst:70 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.5" msgstr "" -#: ../../library/http.rst:71 msgid "``205``" -msgstr "``205``" +msgstr "" -#: ../../library/http.rst:71 msgid "``RESET_CONTENT``" -msgstr "``RESET_CONTENT``" +msgstr "" -#: ../../library/http.rst:71 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.6" msgstr "" -#: ../../library/http.rst:72 msgid "``206``" -msgstr "``206``" +msgstr "" -#: ../../library/http.rst:72 msgid "``PARTIAL_CONTENT``" -msgstr "``PARTIAL_CONTENT``" +msgstr "" -#: ../../library/http.rst:72 msgid "HTTP Semantics :rfc:`9110`, Section 15.3.7" msgstr "" -#: ../../library/http.rst:73 msgid "``207``" -msgstr "``207``" +msgstr "" -#: ../../library/http.rst:73 msgid "``MULTI_STATUS``" -msgstr "``MULTI_STATUS``" +msgstr "" -#: ../../library/http.rst:73 msgid "WebDAV :rfc:`4918`, Section 11.1" msgstr "" -#: ../../library/http.rst:74 msgid "``208``" -msgstr "``208``" +msgstr "" -#: ../../library/http.rst:74 msgid "``ALREADY_REPORTED``" -msgstr "``ALREADY_REPORTED``" +msgstr "" -#: ../../library/http.rst:74 msgid "WebDAV Binding Extensions :rfc:`5842`, Section 7.1 (Experimental)" msgstr "" -#: ../../library/http.rst:75 msgid "``226``" -msgstr "``226``" +msgstr "" -#: ../../library/http.rst:75 msgid "``IM_USED``" -msgstr "``IM_USED``" +msgstr "" -#: ../../library/http.rst:75 msgid "Delta Encoding in HTTP :rfc:`3229`, Section 10.4.1" msgstr "" -#: ../../library/http.rst:76 msgid "``300``" -msgstr "``300``" +msgstr "" -#: ../../library/http.rst:76 msgid "``MULTIPLE_CHOICES``" -msgstr "``MULTIPLE_CHOICES``" +msgstr "" -#: ../../library/http.rst:76 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.1" msgstr "" -#: ../../library/http.rst:77 msgid "``301``" -msgstr "``301``" +msgstr "" -#: ../../library/http.rst:77 msgid "``MOVED_PERMANENTLY``" -msgstr "``MOVED_PERMANENTLY``" +msgstr "" -#: ../../library/http.rst:77 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.2" msgstr "" -#: ../../library/http.rst:78 msgid "``302``" -msgstr "``302``" +msgstr "" -#: ../../library/http.rst:78 msgid "``FOUND``" -msgstr "``FOUND``" +msgstr "" -#: ../../library/http.rst:78 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.3" msgstr "" -#: ../../library/http.rst:79 msgid "``303``" -msgstr "``303``" +msgstr "" -#: ../../library/http.rst:79 msgid "``SEE_OTHER``" -msgstr "``SEE_OTHER``" +msgstr "" -#: ../../library/http.rst:79 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.4" msgstr "" -#: ../../library/http.rst:80 msgid "``304``" -msgstr "``304``" +msgstr "" -#: ../../library/http.rst:80 msgid "``NOT_MODIFIED``" -msgstr "``NOT_MODIFIED``" +msgstr "" -#: ../../library/http.rst:80 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.5" msgstr "" -#: ../../library/http.rst:81 msgid "``305``" -msgstr "``305``" +msgstr "" -#: ../../library/http.rst:81 msgid "``USE_PROXY``" -msgstr "``USE_PROXY``" +msgstr "" -#: ../../library/http.rst:81 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.6" msgstr "" -#: ../../library/http.rst:82 msgid "``307``" -msgstr "``307``" +msgstr "" -#: ../../library/http.rst:82 msgid "``TEMPORARY_REDIRECT``" -msgstr "``TEMPORARY_REDIRECT``" +msgstr "" -#: ../../library/http.rst:82 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.8" msgstr "" -#: ../../library/http.rst:83 msgid "``308``" -msgstr "``308``" +msgstr "" -#: ../../library/http.rst:83 msgid "``PERMANENT_REDIRECT``" -msgstr "``PERMANENT_REDIRECT``" +msgstr "" -#: ../../library/http.rst:83 msgid "HTTP Semantics :rfc:`9110`, Section 15.4.9" msgstr "" -#: ../../library/http.rst:84 msgid "``400``" -msgstr "``400``" +msgstr "" -#: ../../library/http.rst:84 msgid "``BAD_REQUEST``" -msgstr "``BAD_REQUEST``" +msgstr "" -#: ../../library/http.rst:84 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.1" msgstr "" -#: ../../library/http.rst:85 msgid "``401``" -msgstr "``401``" +msgstr "" -#: ../../library/http.rst:85 msgid "``UNAUTHORIZED``" -msgstr "``UNAUTHORIZED``" +msgstr "" -#: ../../library/http.rst:85 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.2" msgstr "" -#: ../../library/http.rst:86 msgid "``402``" -msgstr "``402``" +msgstr "" -#: ../../library/http.rst:86 msgid "``PAYMENT_REQUIRED``" -msgstr "``PAYMENT_REQUIRED``" +msgstr "" -#: ../../library/http.rst:86 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.3" msgstr "" -#: ../../library/http.rst:87 msgid "``403``" -msgstr "``403``" +msgstr "" -#: ../../library/http.rst:87 msgid "``FORBIDDEN``" -msgstr "``FORBIDDEN``" +msgstr "" -#: ../../library/http.rst:87 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.4" msgstr "" -#: ../../library/http.rst:88 msgid "``404``" -msgstr "``404``" +msgstr "" -#: ../../library/http.rst:88 msgid "``NOT_FOUND``" -msgstr "``NOT_FOUND``" +msgstr "" -#: ../../library/http.rst:88 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.5" msgstr "" -#: ../../library/http.rst:89 msgid "``405``" -msgstr "``405``" +msgstr "" -#: ../../library/http.rst:89 msgid "``METHOD_NOT_ALLOWED``" -msgstr "``METHOD_NOT_ALLOWED``" +msgstr "" -#: ../../library/http.rst:89 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.6" msgstr "" -#: ../../library/http.rst:90 msgid "``406``" -msgstr "``406``" +msgstr "" -#: ../../library/http.rst:90 msgid "``NOT_ACCEPTABLE``" -msgstr "``NOT_ACCEPTABLE``" +msgstr "" -#: ../../library/http.rst:90 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.7" msgstr "" -#: ../../library/http.rst:91 msgid "``407``" -msgstr "``407``" +msgstr "" -#: ../../library/http.rst:91 msgid "``PROXY_AUTHENTICATION_REQUIRED``" -msgstr "``PROXY_AUTHENTICATION_REQUIRED``" +msgstr "" -#: ../../library/http.rst:91 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.8" msgstr "" -#: ../../library/http.rst:92 msgid "``408``" -msgstr "``408``" +msgstr "" -#: ../../library/http.rst:92 msgid "``REQUEST_TIMEOUT``" -msgstr "``REQUEST_TIMEOUT``" +msgstr "" -#: ../../library/http.rst:92 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.9" msgstr "" -#: ../../library/http.rst:93 msgid "``409``" -msgstr "``409``" +msgstr "" -#: ../../library/http.rst:93 msgid "``CONFLICT``" -msgstr "``CONFLICT``" +msgstr "" -#: ../../library/http.rst:93 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.10" msgstr "" -#: ../../library/http.rst:94 msgid "``410``" -msgstr "``410``" +msgstr "" -#: ../../library/http.rst:94 msgid "``GONE``" -msgstr "``GONE``" +msgstr "" -#: ../../library/http.rst:94 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.11" msgstr "" -#: ../../library/http.rst:95 msgid "``411``" -msgstr "``411``" +msgstr "" -#: ../../library/http.rst:95 msgid "``LENGTH_REQUIRED``" -msgstr "``LENGTH_REQUIRED``" +msgstr "" -#: ../../library/http.rst:95 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.12" msgstr "" -#: ../../library/http.rst:96 msgid "``412``" -msgstr "``412``" +msgstr "" -#: ../../library/http.rst:96 msgid "``PRECONDITION_FAILED``" -msgstr "``PRECONDITION_FAILED``" +msgstr "" -#: ../../library/http.rst:96 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.13" msgstr "" -#: ../../library/http.rst:97 msgid "``413``" -msgstr "``413``" +msgstr "" -#: ../../library/http.rst:97 msgid "``CONTENT_TOO_LARGE``" -msgstr "``CONTENT_TOO_LARGE``" +msgstr "" -#: ../../library/http.rst:97 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.14" msgstr "" -#: ../../library/http.rst:98 msgid "``414``" -msgstr "``414``" +msgstr "" -#: ../../library/http.rst:98 msgid "``URI_TOO_LONG``" -msgstr "``URI_TOO_LONG``" +msgstr "" -#: ../../library/http.rst:98 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.15" msgstr "" -#: ../../library/http.rst:99 msgid "``415``" -msgstr "``415``" +msgstr "" -#: ../../library/http.rst:99 msgid "``UNSUPPORTED_MEDIA_TYPE``" -msgstr "``UNSUPPORTED_MEDIA_TYPE``" +msgstr "" -#: ../../library/http.rst:99 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.16" msgstr "" -#: ../../library/http.rst:100 msgid "``416``" -msgstr "``416``" +msgstr "" -#: ../../library/http.rst:100 msgid "``RANGE_NOT_SATISFIABLE``" -msgstr "``RANGE_NOT_SATISFIABLE``" +msgstr "" -#: ../../library/http.rst:100 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.17" msgstr "" -#: ../../library/http.rst:101 msgid "``417``" -msgstr "``417``" +msgstr "" -#: ../../library/http.rst:101 msgid "``EXPECTATION_FAILED``" -msgstr "``EXPECTATION_FAILED``" +msgstr "" -#: ../../library/http.rst:101 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.18" msgstr "" -#: ../../library/http.rst:102 msgid "``418``" -msgstr "``418``" +msgstr "" -#: ../../library/http.rst:102 msgid "``IM_A_TEAPOT``" -msgstr "``IM_A_TEAPOT``" +msgstr "" -#: ../../library/http.rst:102 msgid "HTCPCP/1.0 :rfc:`2324`, Section 2.3.2" msgstr "" -#: ../../library/http.rst:103 msgid "``421``" -msgstr "``421``" +msgstr "" -#: ../../library/http.rst:103 msgid "``MISDIRECTED_REQUEST``" -msgstr "``MISDIRECTED_REQUEST``" +msgstr "" -#: ../../library/http.rst:103 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.20" msgstr "" -#: ../../library/http.rst:104 msgid "``422``" -msgstr "``422``" +msgstr "" -#: ../../library/http.rst:104 msgid "``UNPROCESSABLE_CONTENT``" -msgstr "``UNPROCESSABLE_CONTENT``" +msgstr "" -#: ../../library/http.rst:104 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.21" msgstr "" -#: ../../library/http.rst:105 msgid "``423``" -msgstr "``423``" +msgstr "" -#: ../../library/http.rst:105 msgid "``LOCKED``" -msgstr "``LOCKED``" +msgstr "" -#: ../../library/http.rst:105 msgid "WebDAV :rfc:`4918`, Section 11.3" msgstr "" -#: ../../library/http.rst:106 msgid "``424``" -msgstr "``424``" +msgstr "" -#: ../../library/http.rst:106 msgid "``FAILED_DEPENDENCY``" -msgstr "``FAILED_DEPENDENCY``" +msgstr "" -#: ../../library/http.rst:106 msgid "WebDAV :rfc:`4918`, Section 11.4" msgstr "" -#: ../../library/http.rst:107 msgid "``425``" -msgstr "``425``" +msgstr "" -#: ../../library/http.rst:107 msgid "``TOO_EARLY``" -msgstr "``TOO_EARLY``" +msgstr "" -#: ../../library/http.rst:107 msgid "Using Early Data in HTTP :rfc:`8470`" msgstr "" -#: ../../library/http.rst:108 msgid "``426``" -msgstr "``426``" +msgstr "" -#: ../../library/http.rst:108 msgid "``UPGRADE_REQUIRED``" -msgstr "``UPGRADE_REQUIRED``" +msgstr "" -#: ../../library/http.rst:108 msgid "HTTP Semantics :rfc:`9110`, Section 15.5.22" msgstr "" -#: ../../library/http.rst:109 msgid "``428``" -msgstr "``428``" +msgstr "" -#: ../../library/http.rst:109 msgid "``PRECONDITION_REQUIRED``" -msgstr "``PRECONDITION_REQUIRED``" +msgstr "" -#: ../../library/http.rst:109 ../../library/http.rst:110 -#: ../../library/http.rst:111 msgid "Additional HTTP Status Codes :rfc:`6585`" msgstr "" -#: ../../library/http.rst:110 msgid "``429``" -msgstr "``429``" +msgstr "" -#: ../../library/http.rst:110 msgid "``TOO_MANY_REQUESTS``" -msgstr "``TOO_MANY_REQUESTS``" +msgstr "" -#: ../../library/http.rst:111 msgid "``431``" -msgstr "``431``" +msgstr "" -#: ../../library/http.rst:111 msgid "``REQUEST_HEADER_FIELDS_TOO_LARGE``" -msgstr "``REQUEST_HEADER_FIELDS_TOO_LARGE``" +msgstr "" -#: ../../library/http.rst:112 msgid "``451``" -msgstr "``451``" +msgstr "" -#: ../../library/http.rst:112 msgid "``UNAVAILABLE_FOR_LEGAL_REASONS``" -msgstr "``UNAVAILABLE_FOR_LEGAL_REASONS``" +msgstr "" -#: ../../library/http.rst:112 msgid "An HTTP Status Code to Report Legal Obstacles :rfc:`7725`" msgstr "" -#: ../../library/http.rst:113 msgid "``500``" -msgstr "``500``" +msgstr "" -#: ../../library/http.rst:113 msgid "``INTERNAL_SERVER_ERROR``" -msgstr "``INTERNAL_SERVER_ERROR``" +msgstr "" -#: ../../library/http.rst:113 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.1" msgstr "" -#: ../../library/http.rst:114 msgid "``501``" -msgstr "``501``" +msgstr "" -#: ../../library/http.rst:114 msgid "``NOT_IMPLEMENTED``" -msgstr "``NOT_IMPLEMENTED``" +msgstr "" -#: ../../library/http.rst:114 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.2" msgstr "" -#: ../../library/http.rst:115 msgid "``502``" -msgstr "``502``" +msgstr "" -#: ../../library/http.rst:115 msgid "``BAD_GATEWAY``" -msgstr "``BAD_GATEWAY``" +msgstr "" -#: ../../library/http.rst:115 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.3" msgstr "" -#: ../../library/http.rst:116 msgid "``503``" -msgstr "``503``" +msgstr "" -#: ../../library/http.rst:116 msgid "``SERVICE_UNAVAILABLE``" -msgstr "``SERVICE_UNAVAILABLE``" +msgstr "" -#: ../../library/http.rst:116 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.4" msgstr "" -#: ../../library/http.rst:117 msgid "``504``" -msgstr "``504``" +msgstr "" -#: ../../library/http.rst:117 msgid "``GATEWAY_TIMEOUT``" -msgstr "``GATEWAY_TIMEOUT``" +msgstr "" -#: ../../library/http.rst:117 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.5" msgstr "" -#: ../../library/http.rst:118 msgid "``505``" -msgstr "``505``" +msgstr "" -#: ../../library/http.rst:118 msgid "``HTTP_VERSION_NOT_SUPPORTED``" -msgstr "``HTTP_VERSION_NOT_SUPPORTED``" +msgstr "" -#: ../../library/http.rst:118 msgid "HTTP Semantics :rfc:`9110`, Section 15.6.6" msgstr "" -#: ../../library/http.rst:119 msgid "``506``" -msgstr "``506``" +msgstr "" -#: ../../library/http.rst:119 msgid "``VARIANT_ALSO_NEGOTIATES``" -msgstr "``VARIANT_ALSO_NEGOTIATES``" +msgstr "" -#: ../../library/http.rst:119 msgid "" "Transparent Content Negotiation in HTTP :rfc:`2295`, Section 8.1 " "(Experimental)" msgstr "" -#: ../../library/http.rst:120 msgid "``507``" -msgstr "``507``" +msgstr "" -#: ../../library/http.rst:120 msgid "``INSUFFICIENT_STORAGE``" -msgstr "``INSUFFICIENT_STORAGE``" +msgstr "" -#: ../../library/http.rst:120 msgid "WebDAV :rfc:`4918`, Section 11.5" msgstr "" -#: ../../library/http.rst:121 msgid "``508``" -msgstr "``508``" +msgstr "" -#: ../../library/http.rst:121 msgid "``LOOP_DETECTED``" -msgstr "``LOOP_DETECTED``" +msgstr "" -#: ../../library/http.rst:121 msgid "WebDAV Binding Extensions :rfc:`5842`, Section 7.2 (Experimental)" msgstr "" -#: ../../library/http.rst:122 msgid "``510``" -msgstr "``510``" +msgstr "" -#: ../../library/http.rst:122 msgid "``NOT_EXTENDED``" -msgstr "``NOT_EXTENDED``" +msgstr "" -#: ../../library/http.rst:122 msgid "An HTTP Extension Framework :rfc:`2774`, Section 7 (Experimental)" msgstr "" -#: ../../library/http.rst:123 msgid "``511``" -msgstr "``511``" +msgstr "" -#: ../../library/http.rst:123 msgid "``NETWORK_AUTHENTICATION_REQUIRED``" -msgstr "``NETWORK_AUTHENTICATION_REQUIRED``" +msgstr "" -#: ../../library/http.rst:123 msgid "Additional HTTP Status Codes :rfc:`6585`, Section 6" msgstr "" -#: ../../library/http.rst:126 msgid "" "In order to preserve backwards compatibility, enum values are also present " "in the :mod:`http.client` module in the form of constants. The enum name is " @@ -863,90 +655,68 @@ msgid "" "``http.client.OK``)." msgstr "" -#: ../../library/http.rst:131 msgid "Added ``421 MISDIRECTED_REQUEST`` status code." msgstr "" -#: ../../library/http.rst:134 msgid "Added ``451 UNAVAILABLE_FOR_LEGAL_REASONS`` status code." msgstr "" -#: ../../library/http.rst:137 msgid "" "Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status " "codes." msgstr "" -#: ../../library/http.rst:140 msgid "" "Implemented RFC9110 naming for status constants. Old constant names are " "preserved for backwards compatibility." msgstr "" -#: ../../library/http.rst:145 msgid "HTTP status category" msgstr "" -#: ../../library/http.rst:149 msgid "" "The enum values have several properties to indicate the HTTP status category:" msgstr "" -#: ../../library/http.rst:152 msgid "Property" msgstr "" -#: ../../library/http.rst:152 msgid "Indicates that" msgstr "" -#: ../../library/http.rst:154 msgid "``is_informational``" -msgstr "``is_informational``" +msgstr "" -#: ../../library/http.rst:154 msgid "``100 <= status <= 199``" msgstr "" -#: ../../library/http.rst:154 ../../library/http.rst:155 -#: ../../library/http.rst:156 ../../library/http.rst:157 -#: ../../library/http.rst:158 msgid "HTTP Semantics :rfc:`9110`, Section 15" msgstr "" -#: ../../library/http.rst:155 msgid "``is_success``" -msgstr "``is_success``" +msgstr "" -#: ../../library/http.rst:155 msgid "``200 <= status <= 299``" msgstr "" -#: ../../library/http.rst:156 msgid "``is_redirection``" -msgstr "``is_redirection``" +msgstr "" -#: ../../library/http.rst:156 msgid "``300 <= status <= 399``" msgstr "" -#: ../../library/http.rst:157 msgid "``is_client_error``" -msgstr "``is_client_error``" +msgstr "" -#: ../../library/http.rst:157 msgid "``400 <= status <= 499``" msgstr "" -#: ../../library/http.rst:158 msgid "``is_server_error``" -msgstr "``is_server_error``" +msgstr "" -#: ../../library/http.rst:158 msgid "``500 <= status <= 599``" msgstr "" -#: ../../library/http.rst:163 msgid "" ">>> from http import HTTPStatus\n" ">>> HTTPStatus.OK.is_success\n" @@ -955,13 +725,11 @@ msgid "" "False" msgstr "" -#: ../../library/http.rst:173 msgid "" "A subclass of :class:`enum.StrEnum` that defines a set of HTTP methods and " "descriptions written in English." msgstr "" -#: ../../library/http.rst:177 msgid "" ">>> from http import HTTPMethod\n" ">>>\n" @@ -985,100 +753,76 @@ msgid "" " ]" msgstr "" -#: ../../library/http.rst:201 msgid "HTTP methods" msgstr "" -#: ../../library/http.rst:203 msgid "" "Supported, `IANA-registered methods `_ available in :class:`http.HTTPMethod` are:" msgstr "" -#: ../../library/http.rst:208 msgid "Method" msgstr "" -#: ../../library/http.rst:210 msgid "``GET``" -msgstr "``GET``" +msgstr "" -#: ../../library/http.rst:210 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.1" msgstr "" -#: ../../library/http.rst:211 msgid "``HEAD``" -msgstr "``HEAD``" +msgstr "" -#: ../../library/http.rst:211 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.2" msgstr "" -#: ../../library/http.rst:212 msgid "``POST``" -msgstr "``POST``" +msgstr "" -#: ../../library/http.rst:212 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.3" msgstr "" -#: ../../library/http.rst:213 msgid "``PUT``" -msgstr "``PUT``" +msgstr "" -#: ../../library/http.rst:213 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.4" msgstr "" -#: ../../library/http.rst:214 msgid "``DELETE``" -msgstr "``DELETE``" +msgstr "" -#: ../../library/http.rst:214 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.5" msgstr "" -#: ../../library/http.rst:215 msgid "``CONNECT``" -msgstr "``CONNECT``" +msgstr "" -#: ../../library/http.rst:215 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.6" msgstr "" -#: ../../library/http.rst:216 msgid "``OPTIONS``" -msgstr "``OPTIONS``" +msgstr "" -#: ../../library/http.rst:216 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.7" msgstr "" -#: ../../library/http.rst:217 msgid "``TRACE``" -msgstr "``TRACE``" +msgstr "" -#: ../../library/http.rst:217 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.8" msgstr "" -#: ../../library/http.rst:218 msgid "``PATCH``" -msgstr "``PATCH``" +msgstr "" -#: ../../library/http.rst:218 msgid "HTTP/1.1 :rfc:`5789`" msgstr "" -#: ../../library/http.rst:9 msgid "HTTP" msgstr "" -#: ../../library/http.rst:9 msgid "protocol" msgstr "" -#: ../../library/http.rst:9 msgid "http (standard module)" msgstr "" diff --git a/library/http.server.po b/library/http.server.po index cb86ce4..95b1886 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,42 +18,34 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/http.server.rst:2 msgid ":mod:`!http.server` --- HTTP servers" msgstr "" -#: ../../library/http.server.rst:7 msgid "**Source code:** :source:`Lib/http/server.py`" msgstr "" -#: ../../library/http.server.rst:17 msgid "This module defines classes for implementing HTTP servers." msgstr "" -#: ../../library/http.server.rst:22 msgid "" -":mod:`http.server` is not recommended for production. It only " -"implements :ref:`basic security checks `." +":mod:`http.server` is not recommended for production. It only implements :" +"ref:`basic security checks `." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/http.server.rst:27 msgid "" "One class, :class:`HTTPServer`, is a :class:`socketserver.TCPServer` " "subclass. It creates and listens at the HTTP socket, dispatching the " "requests to a handler. Code to create and run the server looks like this::" msgstr "" -#: ../../library/http.server.rst:31 msgid "" "def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):\n" " server_address = ('', 8000)\n" @@ -61,15 +53,13 @@ msgid "" " httpd.serve_forever()" msgstr "" -#: ../../library/http.server.rst:39 msgid "" "This class builds on the :class:`~socketserver.TCPServer` class by storing " -"the server address as instance variables named :attr:`server_name` " -"and :attr:`server_port`. The server is accessible by the handler, typically " -"through the handler's :attr:`server` instance variable." +"the server address as instance variables named :attr:`server_name` and :attr:" +"`server_port`. The server is accessible by the handler, typically through " +"the handler's :attr:`server` instance variable." msgstr "" -#: ../../library/http.server.rst:46 msgid "" "This class is identical to HTTPServer but uses threads to handle requests by " "using the :class:`~socketserver.ThreadingMixIn`. This is useful to handle " @@ -77,32 +67,27 @@ msgid "" "indefinitely." msgstr "" -#: ../../library/http.server.rst:58 msgid "" "Subclass of :class:`HTTPServer` with a wrapped socket using the :mod:`ssl` " "module. If the :mod:`ssl` module is not available, instantiating a :class:`!" "HTTPSServer` object fails with a :exc:`RuntimeError`." msgstr "" -#: ../../library/http.server.rst:62 msgid "" "The *certfile* argument is the path to the SSL certificate chain file, and " "the *keyfile* is the path to file containing the private key." msgstr "" -#: ../../library/http.server.rst:65 msgid "" "A *password* can be specified for files protected and wrapped with PKCS#8, " "but beware that this could possibly expose hardcoded passwords in clear." msgstr "" -#: ../../library/http.server.rst:70 msgid "" "See :meth:`ssl.SSLContext.load_cert_chain` for additional information on the " "accepted values for *certfile*, *keyfile* and *password*." msgstr "" -#: ../../library/http.server.rst:74 msgid "" "When specified, the *alpn_protocols* argument must be a sequence of strings " "specifying the \"Application-Layer Protocol Negotiation\" (ALPN) protocols " @@ -110,36 +95,31 @@ msgid "" "the application protocol during the TLS handshake." msgstr "" -#: ../../library/http.server.rst:79 msgid "" "By default, it is set to ``[\"http/1.1\"]``, meaning the server supports " "HTTP/1.1." msgstr "" -#: ../../library/http.server.rst:87 msgid "" "This class is identical to :class:`HTTPSServer` but uses threads to handle " "requests by inheriting from :class:`~socketserver.ThreadingMixIn`. This is " "analogous to :class:`ThreadingHTTPServer` only using :class:`HTTPSServer`." msgstr "" -#: ../../library/http.server.rst:94 msgid "" "The :class:`HTTPServer`, :class:`ThreadingHTTPServer`, :class:`HTTPSServer` " "and :class:`ThreadingHTTPSServer` must be given a *RequestHandlerClass* on " "instantiation, of which this module provides three different variants:" msgstr "" -#: ../../library/http.server.rst:100 msgid "" "This class is used to handle the HTTP requests that arrive at the server. " "By itself, it cannot respond to any actual HTTP requests; it must be " -"subclassed to handle each request method (e.g. GET or " -"POST). :class:`BaseHTTPRequestHandler` provides a number of class and " -"instance variables, and methods for use by subclasses." +"subclassed to handle each request method (e.g. GET or POST). :class:" +"`BaseHTTPRequestHandler` provides a number of class and instance variables, " +"and methods for use by subclasses." msgstr "" -#: ../../library/http.server.rst:106 msgid "" "The handler will parse the request and the headers, then call a method " "specific to the request type. The method name is constructed from the " @@ -149,52 +129,43 @@ msgid "" "override or extend the :meth:`!__init__` method." msgstr "" -#: ../../library/http.server.rst:113 msgid ":class:`BaseHTTPRequestHandler` has the following instance variables:" msgstr "" -#: ../../library/http.server.rst:117 msgid "" "Contains a tuple of the form ``(host, port)`` referring to the client's " "address." msgstr "" -#: ../../library/http.server.rst:122 msgid "Contains the server instance." msgstr "" -#: ../../library/http.server.rst:126 msgid "" "Boolean that should be set before :meth:`handle_one_request` returns, " "indicating if another request may be expected, or if the connection should " "be shut down." msgstr "" -#: ../../library/http.server.rst:132 msgid "" "Contains the string representation of the HTTP request line. The terminating " -"CRLF is stripped. This attribute should be set " -"by :meth:`handle_one_request`. If no valid request line was processed, it " -"should be set to the empty string." +"CRLF is stripped. This attribute should be set by :meth:" +"`handle_one_request`. If no valid request line was processed, it should be " +"set to the empty string." msgstr "" -#: ../../library/http.server.rst:139 msgid "Contains the command (request type). For example, ``'GET'``." msgstr "" -#: ../../library/http.server.rst:143 msgid "" "Contains the request path. If query component of the URL is present, then " "``path`` includes the query. Using the terminology of :rfc:`3986`, ``path`` " "here includes ``hier-part`` and the ``query``." msgstr "" -#: ../../library/http.server.rst:149 msgid "" "Contains the version string from the request. For example, ``'HTTP/1.0'``." msgstr "" -#: ../../library/http.server.rst:153 msgid "" "Holds an instance of the class specified by the :attr:`MessageClass` class " "variable. This instance parses and manages the headers in the HTTP request. " @@ -203,42 +174,35 @@ msgid "" "valid :rfc:`2822` style header." msgstr "" -#: ../../library/http.server.rst:161 msgid "" "An :class:`io.BufferedIOBase` input stream, ready to read from the start of " "the optional input data." msgstr "" -#: ../../library/http.server.rst:166 msgid "" "Contains the output stream for writing a response back to the client. Proper " "adherence to the HTTP protocol must be used when writing to this stream in " "order to achieve successful interoperation with HTTP clients." msgstr "" -#: ../../library/http.server.rst:171 msgid "This is an :class:`io.BufferedIOBase` stream." msgstr "" -#: ../../library/http.server.rst:174 msgid ":class:`BaseHTTPRequestHandler` has the following attributes:" msgstr "" -#: ../../library/http.server.rst:178 msgid "" "Specifies the server software version. You may want to override this. The " "format is multiple whitespace-separated strings, where each string is of the " "form name[/version]. For example, ``'BaseHTTP/0.2'``." msgstr "" -#: ../../library/http.server.rst:184 msgid "" -"Contains the Python system version, in a form usable by " -"the :attr:`version_string` method and the :attr:`server_version` class " -"variable. For example, ``'Python/1.4'``." +"Contains the Python system version, in a form usable by the :attr:" +"`version_string` method and the :attr:`server_version` class variable. For " +"example, ``'Python/1.4'``." msgstr "" -#: ../../library/http.server.rst:190 msgid "" "Specifies a format string that should be used by :meth:`send_error` method " "for building an error response to the client. The string is filled by " @@ -246,13 +210,11 @@ msgid "" "passed to :meth:`send_error`." msgstr "" -#: ../../library/http.server.rst:197 msgid "" "Specifies the Content-Type HTTP header of error responses sent to the " "client. The default value is ``'text/html'``." msgstr "" -#: ../../library/http.server.rst:202 msgid "" "Specifies the HTTP version to which the server is conformant. It is sent in " "responses to let the client know the server's communication capabilities for " @@ -263,14 +225,12 @@ msgid "" "``'HTTP/1.0'``." msgstr "" -#: ../../library/http.server.rst:212 msgid "" "Specifies an :class:`email.message.Message`\\ -like class to parse HTTP " -"headers. Typically, this is not overridden, and it defaults " -"to :class:`http.client.HTTPMessage`." +"headers. Typically, this is not overridden, and it defaults to :class:`http." +"client.HTTPMessage`." msgstr "" -#: ../../library/http.server.rst:218 msgid "" "This attribute contains a mapping of error code integers to two-element " "tuples containing a short and long message. For example, ``{code: " @@ -279,24 +239,20 @@ msgid "" "It is used by :meth:`send_response_only` and :meth:`send_error` methods." msgstr "" -#: ../../library/http.server.rst:224 msgid "A :class:`BaseHTTPRequestHandler` instance has the following methods:" msgstr "" -#: ../../library/http.server.rst:228 msgid "" "Calls :meth:`handle_one_request` once (or, if persistent connections are " "enabled, multiple times) to handle incoming HTTP requests. You should never " "need to override it; instead, implement appropriate :meth:`!do_\\*` methods." msgstr "" -#: ../../library/http.server.rst:235 msgid "" "This method will parse and dispatch the request to the appropriate :meth:`!" "do_\\*` method. You should never need to override it." msgstr "" -#: ../../library/http.server.rst:240 msgid "" "When an HTTP/1.1 conformant server receives an ``Expect: 100-continue`` " "request header it responds back with a ``100 Continue`` followed by ``200 " @@ -305,7 +261,6 @@ msgid "" "``417 Expectation Failed`` as a response header and ``return False``." msgstr "" -#: ../../library/http.server.rst:251 msgid "" "Sends and logs a complete error reply to the client. The numeric *code* " "specifies the HTTP error code, with *message* as an optional, short, human " @@ -320,13 +275,11 @@ msgid "" "``205 Reset Content``, ``304 Not Modified``." msgstr "" -#: ../../library/http.server.rst:263 msgid "" "The error response includes a Content-Length header. Added the *explain* " "argument." msgstr "" -#: ../../library/http.server.rst:269 msgid "" "Adds a response header to the headers buffer and logs the accepted request. " "The HTTP response line is written to the internal buffer, followed by " @@ -337,26 +290,22 @@ msgid "" "followed by an :meth:`end_headers` call." msgstr "" -#: ../../library/http.server.rst:278 msgid "" "Headers are stored to an internal buffer and :meth:`end_headers` needs to be " "called explicitly." msgstr "" -#: ../../library/http.server.rst:284 msgid "" "Adds the HTTP header to an internal buffer which will be written to the " "output stream when either :meth:`end_headers` or :meth:`flush_headers` is " "invoked. *keyword* should specify the header keyword, with *value* " -"specifying its value. Note that, after the send_header calls are " -"done, :meth:`end_headers` MUST BE called in order to complete the operation." +"specifying its value. Note that, after the send_header calls are done, :meth:" +"`end_headers` MUST BE called in order to complete the operation." msgstr "" -#: ../../library/http.server.rst:290 msgid "Headers are stored in an internal buffer." msgstr "" -#: ../../library/http.server.rst:295 msgid "" "Sends the response header only, used for the purposes when ``100 Continue`` " "response is sent by the server to the client. The headers not buffered and " @@ -364,152 +313,127 @@ msgid "" "message corresponding the response *code* is sent." msgstr "" -#: ../../library/http.server.rst:304 msgid "" "Adds a blank line (indicating the end of the HTTP headers in the response) " "to the headers buffer and calls :meth:`flush_headers`." msgstr "" -#: ../../library/http.server.rst:308 msgid "The buffered headers are written to the output stream." msgstr "" -#: ../../library/http.server.rst:313 msgid "" "Finally send the headers to the output stream and flush the internal headers " "buffer." msgstr "" -#: ../../library/http.server.rst:320 msgid "" "Logs an accepted (successful) request. *code* should specify the numeric " "HTTP code associated with the response. If a size of the response is " "available, then it should be passed as the *size* parameter." msgstr "" -#: ../../library/http.server.rst:326 msgid "" "Logs an error when a request cannot be fulfilled. By default, it passes the " "message to :meth:`log_message`, so it takes the same arguments (*format* and " "additional values)." msgstr "" -#: ../../library/http.server.rst:333 msgid "" "Logs an arbitrary message to ``sys.stderr``. This is typically overridden to " "create custom error logging mechanisms. The *format* argument is a standard " -"printf-style format string, where the additional arguments " -"to :meth:`log_message` are applied as inputs to the formatting. The client " -"ip address and current date and time are prefixed to every message logged." +"printf-style format string, where the additional arguments to :meth:" +"`log_message` are applied as inputs to the formatting. The client ip address " +"and current date and time are prefixed to every message logged." msgstr "" -#: ../../library/http.server.rst:341 msgid "" -"Returns the server software's version string. This is a combination of " -"the :attr:`server_version` and :attr:`sys_version` attributes." +"Returns the server software's version string. This is a combination of the :" +"attr:`server_version` and :attr:`sys_version` attributes." msgstr "" -#: ../../library/http.server.rst:346 msgid "" "Returns the date and time given by *timestamp* (which must be ``None`` or in " "the format returned by :func:`time.time`), formatted for a message header. " "If *timestamp* is omitted, it uses the current date and time." msgstr "" -#: ../../library/http.server.rst:350 msgid "The result looks like ``'Sun, 06 Nov 1994 08:49:37 GMT'``." msgstr "" -#: ../../library/http.server.rst:354 msgid "Returns the current date and time, formatted for logging." msgstr "" -#: ../../library/http.server.rst:358 msgid "Returns the client address." msgstr "" -#: ../../library/http.server.rst:360 msgid "" "Previously, a name lookup was performed. To avoid name resolution delays, it " "now always returns the IP address." msgstr "" -#: ../../library/http.server.rst:367 msgid "" "This class serves files from the directory *directory* and below, or the " "current directory if *directory* is not provided, directly mapping the " "directory structure to HTTP requests." msgstr "" -#: ../../library/http.server.rst:371 msgid "Added the *directory* parameter." msgstr "" -#: ../../library/http.server.rst:374 msgid "The *directory* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/http.server.rst:377 msgid "" -"A lot of the work, such as parsing the request, is done by the base " -"class :class:`BaseHTTPRequestHandler`. This class implements " -"the :func:`do_GET` and :func:`do_HEAD` functions." +"A lot of the work, such as parsing the request, is done by the base class :" +"class:`BaseHTTPRequestHandler`. This class implements the :func:`do_GET` " +"and :func:`do_HEAD` functions." msgstr "" -#: ../../library/http.server.rst:381 msgid "" -"The following are defined as class-level attributes " -"of :class:`SimpleHTTPRequestHandler`:" +"The following are defined as class-level attributes of :class:" +"`SimpleHTTPRequestHandler`:" msgstr "" -#: ../../library/http.server.rst:386 msgid "" "This will be ``\"SimpleHTTP/\" + __version__``, where ``__version__`` is " "defined at the module level." msgstr "" -#: ../../library/http.server.rst:391 msgid "" "A dictionary mapping suffixes into MIME types, contains custom overrides for " "the default system mappings. The mapping is used case-insensitively, and so " "should contain only lower-cased keys." msgstr "" -#: ../../library/http.server.rst:395 msgid "" "This dictionary is no longer filled with the default system mappings, but " "only contains overrides." msgstr "" -#: ../../library/http.server.rst:399 msgid "" "The :class:`SimpleHTTPRequestHandler` class defines the following methods:" msgstr "" -#: ../../library/http.server.rst:403 msgid "" "This method serves the ``'HEAD'`` request type: it sends the headers it " "would send for the equivalent ``GET`` request. See the :meth:`do_GET` method " "for a more complete explanation of the possible headers." msgstr "" -#: ../../library/http.server.rst:409 msgid "" "The request is mapped to a local file by interpreting the request as a path " "relative to the current working directory." msgstr "" -#: ../../library/http.server.rst:412 msgid "" "If the request was mapped to a directory, the directory is checked for a " "file named ``index.html`` or ``index.htm`` (in that order). If found, the " "file's contents are returned; otherwise a directory listing is generated by " -"calling the :meth:`list_directory` method. This method " -"uses :func:`os.listdir` to scan the directory, and returns a ``404`` error " -"response if the :func:`~os.listdir` fails." +"calling the :meth:`list_directory` method. This method uses :func:`os." +"listdir` to scan the directory, and returns a ``404`` error response if the :" +"func:`~os.listdir` fails." msgstr "" -#: ../../library/http.server.rst:419 msgid "" "If the request was mapped to a file, it is opened. Any :exc:`OSError` " "exception in opening the requested file is mapped to a ``404``, ``'File not " @@ -520,37 +444,31 @@ msgid "" "*extensions_map* variable, and the file contents are returned." msgstr "" -#: ../../library/http.server.rst:427 msgid "" "A ``'Content-type:'`` header with the guessed content type is output, " "followed by a ``'Content-Length:'`` header with the file's size and a " "``'Last-Modified:'`` header with the file's modification time." msgstr "" -#: ../../library/http.server.rst:431 msgid "" "Then follows a blank line signifying the end of the headers, and then the " "contents of the file are output." msgstr "" -#: ../../library/http.server.rst:434 msgid "" -"For example usage, see the implementation of the ``test`` function " -"in :source:`Lib/http/server.py`." +"For example usage, see the implementation of the ``test`` function in :" +"source:`Lib/http/server.py`." msgstr "" -#: ../../library/http.server.rst:437 msgid "Support of the ``'If-Modified-Since'`` header." msgstr "" -#: ../../library/http.server.rst:440 msgid "" "The :class:`SimpleHTTPRequestHandler` class can be used in the following " "manner in order to create a very basic webserver serving files relative to " "the current directory::" msgstr "" -#: ../../library/http.server.rst:444 msgid "" "import http.server\n" "import socketserver\n" @@ -564,28 +482,24 @@ msgid "" " httpd.serve_forever()" msgstr "" -#: ../../library/http.server.rst:456 msgid "" ":class:`SimpleHTTPRequestHandler` can also be subclassed to enhance " "behavior, such as using different index file names by overriding the class " "attribute :attr:`index_pages`." msgstr "" -#: ../../library/http.server.rst:463 msgid "" "This class is used to serve either files or output of CGI scripts from the " "current directory and below. Note that mapping HTTP hierarchic structure to " "local directory structure is exactly as in :class:`SimpleHTTPRequestHandler`." msgstr "" -#: ../../library/http.server.rst:469 msgid "" "CGI scripts run by the :class:`CGIHTTPRequestHandler` class cannot execute " "redirects (HTTP code 302), because code 200 (script output follows) is sent " "prior to execution of the CGI script. This pre-empts the status code." msgstr "" -#: ../../library/http.server.rst:474 msgid "" "The class will however, run the CGI script, instead of serving it as a file, " "if it guesses it to be a CGI script. Only directory-based CGI are used --- " @@ -593,79 +507,65 @@ msgid "" "denoting CGI scripts." msgstr "" -#: ../../library/http.server.rst:479 msgid "" "The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI " "scripts and serve the output, instead of serving files, if the request leads " "to somewhere below the ``cgi_directories`` path." msgstr "" -#: ../../library/http.server.rst:483 msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" msgstr "" -#: ../../library/http.server.rst:487 msgid "" "This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " "treat as containing CGI scripts." msgstr "" -#: ../../library/http.server.rst:490 msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" msgstr "" -#: ../../library/http.server.rst:494 msgid "" "This method serves the ``'POST'`` request type, only allowed for CGI " "scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " "to POST to a non-CGI url." msgstr "" -#: ../../library/http.server.rst:498 msgid "" "Note that CGI scripts will be run with UID of user nobody, for security " "reasons. Problems with the CGI script will be translated to error 403." msgstr "" -#: ../../library/http.server.rst:503 msgid "" ":class:`CGIHTTPRequestHandler` is being removed in 3.15. CGI has not been " "considered a good way to do things for well over a decade. This code has " "been unmaintained for a while now and sees very little practical use. " -"Retaining it could lead to further :ref:`security considerations " -"`." +"Retaining it could lead to further :ref:`security considerations `." msgstr "" -#: ../../library/http.server.rst:513 msgid "Command-line interface" msgstr "" -#: ../../library/http.server.rst:515 msgid "" ":mod:`http.server` can also be invoked directly using the :option:`-m` " "switch of the interpreter. The following example illustrates how to serve " "files relative to the current directory::" msgstr "" -#: ../../library/http.server.rst:519 msgid "python -m http.server [OPTIONS] [port]" msgstr "" -#: ../../library/http.server.rst:521 msgid "The following options are accepted:" msgstr "" -#: ../../library/http.server.rst:527 msgid "" "The server listens to port 8000 by default. The default can be overridden by " "passing the desired port number as an argument::" msgstr "" -#: ../../library/http.server.rst:530 msgid "python -m http.server 9000" msgstr "" -#: ../../library/http.server.rst:534 msgid "" "Specifies a specific address to which it should bind. Both IPv4 and IPv6 " "addresses are supported. By default, the server binds itself to all " @@ -673,80 +573,64 @@ msgid "" "localhost only::" msgstr "" -#: ../../library/http.server.rst:539 msgid "python -m http.server --bind 127.0.0.1" msgstr "" -#: ../../library/http.server.rst:543 msgid "Support IPv6 in the ``--bind`` option." msgstr "" -#: ../../library/http.server.rst:548 msgid "" "Specifies a directory to which it should serve the files. By default, the " "server uses the current directory. For example, the following command uses a " "specific directory::" msgstr "" -#: ../../library/http.server.rst:552 msgid "python -m http.server --directory /tmp/" msgstr "" -#: ../../library/http.server.rst:558 msgid "" "Specifies the HTTP version to which the server is conformant. By default, " "the server is conformant to HTTP/1.0. For example, the following command " "runs an HTTP/1.1 conformant server::" msgstr "" -#: ../../library/http.server.rst:562 msgid "python -m http.server --protocol HTTP/1.1" msgstr "" -#: ../../library/http.server.rst:568 msgid "" ":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " "the ``--cgi`` option::" msgstr "" -#: ../../library/http.server.rst:571 msgid "python -m http.server --cgi" msgstr "" -#: ../../library/http.server.rst:575 msgid "" -":mod:`http.server` command line ``--cgi`` support is being removed " -"because :class:`CGIHTTPRequestHandler` is being removed." +":mod:`http.server` command line ``--cgi`` support is being removed because :" +"class:`CGIHTTPRequestHandler` is being removed." msgstr "" -#: ../../library/http.server.rst:580 msgid "" ":class:`CGIHTTPRequestHandler` and the ``--cgi`` command-line option are not " "intended for use by untrusted clients and may be vulnerable to exploitation. " "Always use within a secure environment." msgstr "" -#: ../../library/http.server.rst:586 msgid "Specifies a TLS certificate chain for HTTPS connections::" msgstr "" -#: ../../library/http.server.rst:588 msgid "python -m http.server --tls-cert fullchain.pem" msgstr "" -#: ../../library/http.server.rst:594 msgid "Specifies a private key file for HTTPS connections." msgstr "" -#: ../../library/http.server.rst:596 msgid "This option requires ``--tls-cert`` to be specified." msgstr "" -#: ../../library/http.server.rst:602 msgid "Specifies the password file for password-protected private keys::" msgstr "" -#: ../../library/http.server.rst:604 msgid "" "python -m http.server \\\n" " --tls-cert cert.pem \\\n" @@ -754,62 +638,49 @@ msgid "" " --tls-password-file password.txt" msgstr "" -#: ../../library/http.server.rst:609 msgid "This option requires `--tls-cert`` to be specified." msgstr "" -#: ../../library/http.server.rst:617 msgid "Security considerations" msgstr "" -#: ../../library/http.server.rst:621 msgid "" ":class:`SimpleHTTPRequestHandler` will follow symbolic links when handling " "requests, this makes it possible for files outside of the specified " "directory to be served." msgstr "" -#: ../../library/http.server.rst:625 msgid "" "Earlier versions of Python did not scrub control characters from the log " -"messages emitted to stderr from ``python -m http.server`` or the " -"default :class:`BaseHTTPRequestHandler` ``.log_message`` implementation. " -"This could allow remote clients connecting to your server to send nefarious " -"control codes to your terminal." +"messages emitted to stderr from ``python -m http.server`` or the default :" +"class:`BaseHTTPRequestHandler` ``.log_message`` implementation. This could " +"allow remote clients connecting to your server to send nefarious control " +"codes to your terminal." msgstr "" -#: ../../library/http.server.rst:631 msgid "Control characters are scrubbed in stderr logs." msgstr "" -#: ../../library/http.server.rst:9 msgid "WWW" msgstr "" -#: ../../library/http.server.rst:9 msgid "server" msgstr "" -#: ../../library/http.server.rst:9 msgid "HTTP" msgstr "" -#: ../../library/http.server.rst:9 msgid "protocol" msgstr "" -#: ../../library/http.server.rst:9 msgid "URL" msgstr "" -#: ../../library/http.server.rst:9 msgid "httpd" msgstr "" -#: ../../library/http.server.rst:619 msgid "http.server" msgstr "" -#: ../../library/http.server.rst:619 msgid "security" msgstr "" diff --git a/library/i18n.po b/library/i18n.po index 91cd43d..1f9521c 100644 --- a/library/i18n.po +++ b/library/i18n.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/i18n.rst:5 msgid "Internationalization" msgstr "" -#: ../../library/i18n.rst:7 msgid "" "The modules described in this chapter help you write software that is " "independent of language and locale by providing mechanisms for selecting a " @@ -30,6 +28,5 @@ msgid "" "local conventions." msgstr "" -#: ../../library/i18n.rst:12 msgid "The list of modules described in this chapter is:" msgstr "" diff --git a/library/idle.po b/library/idle.po index 4cecc00..ee9f045 100644 --- a/library/idle.po +++ b/library/idle.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,59 +18,47 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/idle.rst:4 msgid "IDLE --- Python editor and shell" msgstr "" -#: ../../library/idle.rst:8 msgid "**Source code:** :source:`Lib/idlelib/`" msgstr "" -#: ../../library/idle.rst:20 msgid "IDLE is Python's Integrated Development and Learning Environment." msgstr "" -#: ../../library/idle.rst:22 msgid "IDLE has the following features:" msgstr "" -#: ../../library/idle.rst:24 msgid "cross-platform: works mostly the same on Windows, Unix, and macOS" msgstr "" -#: ../../library/idle.rst:26 msgid "" "Python shell window (interactive interpreter) with colorizing of code input, " "output, and error messages" msgstr "" -#: ../../library/idle.rst:29 msgid "" "multi-window text editor with multiple undo, Python colorizing, smart " "indent, call tips, auto completion, and other features" msgstr "" -#: ../../library/idle.rst:32 msgid "" "search within any window, replace within editor windows, and search through " "multiple files (grep)" msgstr "" -#: ../../library/idle.rst:35 msgid "" "debugger with persistent breakpoints, stepping, and viewing of global and " "local namespaces" msgstr "" -#: ../../library/idle.rst:38 msgid "configuration, browsers, and other dialogs" msgstr "" -#: ../../library/idle.rst:41 msgid "Menus" msgstr "" -#: ../../library/idle.rst:43 msgid "" "IDLE has two main window types, the Shell window and the Editor window. It " "is possible to have multiple editor windows simultaneously. On Windows and " @@ -78,81 +66,64 @@ msgid "" "which window type it is associated with." msgstr "" -#: ../../library/idle.rst:48 msgid "" "Output windows, such as used for Edit => Find in Files, are a subtype of " "editor window. They currently have the same top menu but a different " "default title and context menu." msgstr "" -#: ../../library/idle.rst:52 msgid "" "On macOS, there is one application menu. It dynamically changes according " "to the window currently selected. It has an IDLE menu, and some entries " "described below are moved around to conform to Apple guidelines." msgstr "" -#: ../../library/idle.rst:57 msgid "File menu (Shell and Editor)" msgstr "" -#: ../../library/idle.rst:59 msgid "New File" msgstr "" -#: ../../library/idle.rst:60 msgid "Create a new file editing window." msgstr "" -#: ../../library/idle.rst:62 msgid "Open..." msgstr "" -#: ../../library/idle.rst:63 msgid "Open an existing file with an Open dialog." msgstr "" -#: ../../library/idle.rst:65 msgid "Open Module..." msgstr "" -#: ../../library/idle.rst:66 msgid "Open an existing module (searches sys.path)." msgstr "" -#: ../../library/idle.rst:68 msgid "Recent Files" msgstr "" -#: ../../library/idle.rst:69 msgid "Open a list of recent files. Click one to open it." msgstr "" -#: ../../library/idle.rst:75 msgid "Module Browser" msgstr "" -#: ../../library/idle.rst:76 msgid "" "Show functions, classes, and methods in the current Editor file in a tree " "structure. In the shell, open a module first." msgstr "" -#: ../../library/idle.rst:79 msgid "Path Browser" msgstr "" -#: ../../library/idle.rst:80 msgid "" "Show sys.path directories, modules, functions, classes and methods in a tree " "structure." msgstr "" -#: ../../library/idle.rst:83 msgid "Save" msgstr "" -#: ../../library/idle.rst:84 msgid "" "Save the current window to the associated file, if there is one. Windows " "that have been changed since being opened or last saved have a \\* before " @@ -160,11 +131,9 @@ msgid "" "instead." msgstr "" -#: ../../library/idle.rst:89 msgid "Save As..." msgstr "" -#: ../../library/idle.rst:90 msgid "" "Save the current window with a Save As dialog. The file saved becomes the " "new associated file for the window. (If your file namager is set to hide " @@ -173,284 +142,217 @@ msgid "" "text files, except that on macOS Aqua,'.py' is added for all files.)" msgstr "" -#: ../../library/idle.rst:96 msgid "Save Copy As..." msgstr "" -#: ../../library/idle.rst:97 msgid "" "Save the current window to different file without changing the associated " "file. (See Save As note above about filename extensions.)" msgstr "" -#: ../../library/idle.rst:100 msgid "Print Window" msgstr "" -#: ../../library/idle.rst:101 msgid "Print the current window to the default printer." msgstr "" -#: ../../library/idle.rst:103 msgid "Close Window" msgstr "" -#: ../../library/idle.rst:104 msgid "" "Close the current window (if an unsaved editor, ask to save; if an unsaved " "Shell, ask to quit execution). Calling ``exit()`` or ``close()`` in the " "Shell window also closes Shell. If this is the only window, also exit IDLE." msgstr "" -#: ../../library/idle.rst:108 msgid "Exit IDLE" msgstr "" -#: ../../library/idle.rst:109 msgid "Close all windows and quit IDLE (ask to save unsaved edit windows)." msgstr "" -#: ../../library/idle.rst:112 msgid "Edit menu (Shell and Editor)" msgstr "" -#: ../../library/idle.rst:114 msgid "Undo" msgstr "" -#: ../../library/idle.rst:115 msgid "" "Undo the last change to the current window. A maximum of 1000 changes may " "be undone." msgstr "" -#: ../../library/idle.rst:118 msgid "Redo" msgstr "" -#: ../../library/idle.rst:119 msgid "Redo the last undone change to the current window." msgstr "" -#: ../../library/idle.rst:121 msgid "Select All" msgstr "" -#: ../../library/idle.rst:122 msgid "Select the entire contents of the current window." msgstr "" -#: ../../library/idle.rst:124 ../../library/idle.rst:356 -#: ../../library/idle.rst:370 msgid "Cut" msgstr "" -#: ../../library/idle.rst:125 ../../library/idle.rst:371 msgid "" "Copy selection into the system-wide clipboard; then delete the selection." msgstr "" -#: ../../library/idle.rst:127 ../../library/idle.rst:356 -#: ../../library/idle.rst:373 msgid "Copy" msgstr "" -#: ../../library/idle.rst:128 ../../library/idle.rst:374 msgid "Copy selection into the system-wide clipboard." msgstr "" -#: ../../library/idle.rst:130 ../../library/idle.rst:356 -#: ../../library/idle.rst:376 msgid "Paste" msgstr "" -#: ../../library/idle.rst:131 ../../library/idle.rst:377 msgid "Insert contents of the system-wide clipboard into the current window." msgstr "" -#: ../../library/idle.rst:133 msgid "The clipboard functions are also available in context menus." msgstr "" -#: ../../library/idle.rst:135 msgid "Find..." msgstr "" -#: ../../library/idle.rst:136 msgid "Open a search dialog with many options" msgstr "" -#: ../../library/idle.rst:138 msgid "Find Again" msgstr "" -#: ../../library/idle.rst:139 msgid "Repeat the last search, if there is one." msgstr "" -#: ../../library/idle.rst:141 msgid "Find Selection" msgstr "" -#: ../../library/idle.rst:142 msgid "Search for the currently selected string, if there is one." msgstr "" -#: ../../library/idle.rst:144 msgid "Find in Files..." msgstr "" -#: ../../library/idle.rst:145 msgid "Open a file search dialog. Put results in a new output window." msgstr "" -#: ../../library/idle.rst:147 msgid "Replace..." msgstr "" -#: ../../library/idle.rst:148 msgid "Open a search-and-replace dialog." msgstr "" -#: ../../library/idle.rst:150 msgid "Go to Line" msgstr "" -#: ../../library/idle.rst:151 msgid "" "Move the cursor to the beginning of the line requested and make that line " "visible. A request past the end of the file goes to the end. Clear any " "selection and update the line and column status." msgstr "" -#: ../../library/idle.rst:155 msgid "Show Completions" msgstr "" -#: ../../library/idle.rst:156 msgid "" -"Open a scrollable list allowing selection of existing names. " -"See :ref:`Completions ` in the Editing and navigation section " -"below." +"Open a scrollable list allowing selection of existing names. See :ref:" +"`Completions ` in the Editing and navigation section below." msgstr "" -#: ../../library/idle.rst:159 msgid "Expand Word" msgstr "" -#: ../../library/idle.rst:160 msgid "" "Expand a prefix you have typed to match a full word in the same window; " "repeat to get a different expansion." msgstr "" -#: ../../library/idle.rst:163 msgid "Show Call Tip" msgstr "" -#: ../../library/idle.rst:164 msgid "" "After an unclosed parenthesis for a function, open a small window with " "function parameter hints. See :ref:`Calltips ` in the Editing and " "navigation section below." msgstr "" -#: ../../library/idle.rst:168 msgid "Show Surrounding Parens" msgstr "" -#: ../../library/idle.rst:169 msgid "Highlight the surrounding parenthesis." msgstr "" -#: ../../library/idle.rst:174 msgid "Format menu (Editor window only)" msgstr "" -#: ../../library/idle.rst:176 msgid "Format Paragraph" msgstr "" -#: ../../library/idle.rst:177 msgid "" "Reformat the current blank-line-delimited paragraph in comment block or " "multiline string or selected line in a string. All lines in the paragraph " "will be formatted to less than N columns, where N defaults to 72." msgstr "" -#: ../../library/idle.rst:181 msgid "Indent Region" msgstr "" -#: ../../library/idle.rst:182 msgid "Shift selected lines right by the indent width (default 4 spaces)." msgstr "" -#: ../../library/idle.rst:184 msgid "Dedent Region" msgstr "" -#: ../../library/idle.rst:185 msgid "Shift selected lines left by the indent width (default 4 spaces)." msgstr "" -#: ../../library/idle.rst:187 msgid "Comment Out Region" msgstr "" -#: ../../library/idle.rst:188 msgid "Insert ## in front of selected lines." msgstr "" -#: ../../library/idle.rst:190 msgid "Uncomment Region" msgstr "" -#: ../../library/idle.rst:191 msgid "Remove leading # or ## from selected lines." msgstr "" -#: ../../library/idle.rst:193 msgid "Tabify Region" msgstr "" -#: ../../library/idle.rst:194 msgid "" "Turn *leading* stretches of spaces into tabs. (Note: We recommend using 4 " "space blocks to indent Python code.)" msgstr "" -#: ../../library/idle.rst:197 msgid "Untabify Region" msgstr "" -#: ../../library/idle.rst:198 msgid "Turn *all* tabs into the correct number of spaces." msgstr "" -#: ../../library/idle.rst:200 msgid "Toggle Tabs" msgstr "" -#: ../../library/idle.rst:201 msgid "Open a dialog to switch between indenting with spaces and tabs." msgstr "" -#: ../../library/idle.rst:203 msgid "New Indent Width" msgstr "" -#: ../../library/idle.rst:204 msgid "" "Open a dialog to change indent width. The accepted default by the Python " "community is 4 spaces." msgstr "" -#: ../../library/idle.rst:207 msgid "Strip Trailing Chitespace" msgstr "" -#: ../../library/idle.rst:208 msgid "" "Remove trailing space and other whitespace characters after the last non-" "whitespace character of a line by applying str.rstrip to each line, " @@ -458,15 +360,12 @@ msgid "" "extra newlines at the end of the file." msgstr "" -#: ../../library/idle.rst:217 msgid "Run menu (Editor window only)" msgstr "" -#: ../../library/idle.rst:221 msgid "Run Module" msgstr "" -#: ../../library/idle.rst:222 msgid "" "Do :ref:`Check Module `. If no error, restart the shell to " "clean the environment, then execute the module. Output is displayed in the " @@ -476,22 +375,18 @@ msgid "" "similar to executing a file with ``python -i file`` at a command line." msgstr "" -#: ../../library/idle.rst:232 msgid "Run... Customized" msgstr "" -#: ../../library/idle.rst:233 msgid "" "Same as :ref:`Run Module `, but run the module with customized " "settings. *Command Line Arguments* extend :data:`sys.argv` as if passed on " "a command line. The module can be run in the Shell without restarting." msgstr "" -#: ../../library/idle.rst:239 msgid "Check Module" msgstr "" -#: ../../library/idle.rst:240 msgid "" "Check the syntax of the module currently open in the Editor window. If the " "module has not been saved IDLE will either prompt the user to save or " @@ -500,70 +395,54 @@ msgid "" "window." msgstr "" -#: ../../library/idle.rst:248 msgid "Python Shell" msgstr "" -#: ../../library/idle.rst:249 msgid "Open or wake up the Python Shell window." msgstr "" -#: ../../library/idle.rst:253 msgid "Shell menu (Shell window only)" msgstr "" -#: ../../library/idle.rst:255 msgid "View Last Restart" msgstr "" -#: ../../library/idle.rst:256 msgid "Scroll the shell window to the last Shell restart." msgstr "" -#: ../../library/idle.rst:258 msgid "Restart Shell" msgstr "" -#: ../../library/idle.rst:259 msgid "" "Restart the shell to clean the environment and reset display and exception " "handling." msgstr "" -#: ../../library/idle.rst:261 msgid "Previous History" msgstr "" -#: ../../library/idle.rst:262 msgid "" "Cycle through earlier commands in history which match the current entry." msgstr "" -#: ../../library/idle.rst:264 msgid "Next History" msgstr "" -#: ../../library/idle.rst:265 msgid "Cycle through later commands in history which match the current entry." msgstr "" -#: ../../library/idle.rst:267 msgid "Interrupt Execution" msgstr "" -#: ../../library/idle.rst:268 msgid "Stop a running program." msgstr "" -#: ../../library/idle.rst:271 msgid "Debug menu (Shell window only)" msgstr "" -#: ../../library/idle.rst:273 msgid "Go to File/Line" msgstr "" -#: ../../library/idle.rst:274 msgid "" "Look on the current line. with the cursor, and the line above for a filename " "and line number. If found, open the file if not already open, and show the " @@ -572,45 +451,36 @@ msgid "" "Shell window and Output windows." msgstr "" -#: ../../library/idle.rst:284 msgid "Debugger (toggle)" msgstr "" -#: ../../library/idle.rst:285 msgid "" "When activated, code entered in the Shell or run from an Editor will run " "under the debugger. In the Editor, breakpoints can be set with the context " "menu. This feature is still incomplete and somewhat experimental." msgstr "" -#: ../../library/idle.rst:289 msgid "Stack Viewer" msgstr "" -#: ../../library/idle.rst:290 msgid "" "Show the stack traceback of the last exception in a tree widget, with access " "to locals and globals." msgstr "" -#: ../../library/idle.rst:293 msgid "Auto-open Stack Viewer" msgstr "" -#: ../../library/idle.rst:294 msgid "" "Toggle automatically opening the stack viewer on an unhandled exception." msgstr "" -#: ../../library/idle.rst:297 msgid "Options menu (Shell and Editor)" msgstr "" -#: ../../library/idle.rst:299 msgid "Configure IDLE" msgstr "" -#: ../../library/idle.rst:300 msgid "" "Open a configuration dialog and change preferences for the following: fonts, " "indentation, keybindings, text color themes, startup windows and size, " @@ -619,39 +489,32 @@ msgid "" "see :ref:`Setting preferences ` under Help and preferences." msgstr "" -#: ../../library/idle.rst:307 msgid "" "Most configuration options apply to all windows or all future windows. The " "option items below only apply to the active window." msgstr "" -#: ../../library/idle.rst:310 msgid "Show/Hide Code Context (Editor Window only)" msgstr "" -#: ../../library/idle.rst:311 msgid "" "Open a pane at the top of the edit window which shows the block context of " "the code which has scrolled above the top of the window. See :ref:`Code " "Context ` in the Editing and Navigation section below." msgstr "" -#: ../../library/idle.rst:316 msgid "Show/Hide Line Numbers (Editor Window only)" msgstr "" -#: ../../library/idle.rst:317 msgid "" "Open a column to the left of the edit window which shows the number of each " "line of text. The default is off, which may be changed in the preferences " "(see :ref:`Setting preferences `)." msgstr "" -#: ../../library/idle.rst:321 msgid "Zoom/Restore Height" msgstr "" -#: ../../library/idle.rst:322 msgid "" "Toggles the window between normal size and maximum height. The initial size " "defaults to 40 lines by 80 chars unless changed on the General tab of the " @@ -661,74 +524,59 @@ msgid "" "no effect when a window is maximized." msgstr "" -#: ../../library/idle.rst:330 msgid "Window menu (Shell and Editor)" msgstr "" -#: ../../library/idle.rst:332 msgid "" "Lists the names of all open windows; select one to bring it to the " "foreground (deiconifying it if necessary)." msgstr "" -#: ../../library/idle.rst:336 msgid "Help menu (Shell and Editor)" msgstr "" -#: ../../library/idle.rst:338 msgid "About IDLE" msgstr "" -#: ../../library/idle.rst:339 msgid "Display version, copyright, license, credits, and more." msgstr "" -#: ../../library/idle.rst:341 msgid "IDLE Help" msgstr "" -#: ../../library/idle.rst:342 msgid "" "Display this IDLE document, detailing the menu options, basic editing and " "navigation, and other tips." msgstr "" -#: ../../library/idle.rst:345 msgid "Python Docs" msgstr "" -#: ../../library/idle.rst:346 msgid "" "Access local Python documentation, if installed, or start a web browser and " "open docs.python.org showing the latest Python documentation." msgstr "" -#: ../../library/idle.rst:349 msgid "Turtle Demo" msgstr "" -#: ../../library/idle.rst:350 msgid "Run the turtledemo module with example Python code and turtle drawings." msgstr "" -#: ../../library/idle.rst:352 msgid "" "Additional help sources may be added here with the Configure IDLE dialog " "under the General tab. See the :ref:`Help sources ` subsection " "below for more on Help menu choices." msgstr "" -#: ../../library/idle.rst:365 msgid "Context menus" msgstr "" -#: ../../library/idle.rst:367 msgid "" "Open a context menu by right-clicking in a window (Control-click on macOS). " "Context menus have the standard clipboard functions also on the Edit menu." msgstr "" -#: ../../library/idle.rst:379 msgid "" "Editor windows also have breakpoint functions. Lines with a breakpoint set " "are specially marked. Breakpoints only have an effect when running under " @@ -736,66 +584,52 @@ msgid "" "directory." msgstr "" -#: ../../library/idle.rst:356 ../../library/idle.rst:384 msgid "Set Breakpoint" msgstr "" -#: ../../library/idle.rst:385 msgid "Set a breakpoint on the current line." msgstr "" -#: ../../library/idle.rst:356 ../../library/idle.rst:387 msgid "Clear Breakpoint" msgstr "" -#: ../../library/idle.rst:388 msgid "Clear the breakpoint on that line." msgstr "" -#: ../../library/idle.rst:390 msgid "Shell and Output windows also have the following." msgstr "" -#: ../../library/idle.rst:392 msgid "Go to file/line" msgstr "" -#: ../../library/idle.rst:393 msgid "Same as in Debug menu." msgstr "" -#: ../../library/idle.rst:395 msgid "" "The Shell window also has an output squeezing facility explained in the " "*Python Shell window* subsection below." msgstr "" -#: ../../library/idle.rst:398 msgid "Squeeze" msgstr "" -#: ../../library/idle.rst:399 msgid "" "If the cursor is over an output line, squeeze all the output between the " "code above and the prompt below down to a 'Squeezed text' label." msgstr "" -#: ../../library/idle.rst:406 msgid "Editing and Navigation" msgstr "" -#: ../../library/idle.rst:409 msgid "Editor windows" msgstr "" -#: ../../library/idle.rst:411 msgid "" "IDLE may open editor windows when it starts, depending on settings and how " "you start IDLE. Thereafter, use the File menu. There can be only one open " "editor window for a given file." msgstr "" -#: ../../library/idle.rst:415 msgid "" "The title bar contains the name of the file, the full path, and the version " "of Python and IDLE running the window. The status bar contains the line " @@ -803,17 +637,14 @@ msgid "" "numbers with 0." msgstr "" -#: ../../library/idle.rst:420 msgid "" "IDLE assumes that files with a known .py* extension contain Python code and " "that other files do not. Run Python code with the Run menu." msgstr "" -#: ../../library/idle.rst:424 msgid "Key bindings" msgstr "" -#: ../../library/idle.rst:426 msgid "" "The IDLE insertion cursor is a thin vertical bar between character " "positions. When characters are entered, the insertion cursor and everything " @@ -821,7 +652,6 @@ msgid "" "the new space." msgstr "" -#: ../../library/idle.rst:431 msgid "" "Several non-character keys move the cursor and possibly delete characters. " "Deletion does not puts text on the clipboard, but IDLE has an undo list. " @@ -830,52 +660,41 @@ msgid "" "discussions assume that the keys have not been re-bound to something else.)" msgstr "" -#: ../../library/idle.rst:438 msgid "Arrow keys move the cursor one character or line." msgstr "" -#: ../../library/idle.rst:440 msgid "" ":kbd:`C-LeftArrow` and :kbd:`C-RightArrow` moves left or right one word." msgstr "" -#: ../../library/idle.rst:442 msgid ":kbd:`Home` and :kbd:`End` go to the beginning or end of the line." msgstr "" -#: ../../library/idle.rst:444 msgid ":kbd:`Page Up` and :kbd:`Page Down` go up or down one screen." msgstr "" -#: ../../library/idle.rst:446 msgid ":kbd:`C-Home` and :kbd:`C-End` go to beginning or end of the file." msgstr "" -#: ../../library/idle.rst:448 msgid "" ":kbd:`Backspace` and :kbd:`Del` (or :kbd:`C-d`) delete the previous or next " "character." msgstr "" -#: ../../library/idle.rst:451 msgid ":kbd:`C-Backspace` and :kbd:`C-Del` delete one word left or right." msgstr "" -#: ../../library/idle.rst:453 msgid ":kbd:`C-k` deletes ('kills') everything to the right." msgstr "" -#: ../../library/idle.rst:455 msgid "" "Standard keybindings (like :kbd:`C-c` to copy and :kbd:`C-v` to paste) may " "work. Keybindings are selected in the Configure IDLE dialog." msgstr "" -#: ../../library/idle.rst:459 msgid "Automatic indentation" msgstr "" -#: ../../library/idle.rst:461 msgid "" "After a block-opening statement, the next line is indented by 4 spaces (in " "the Python Shell window by one tab). After certain keywords (break, return " @@ -885,17 +704,14 @@ msgid "" "tabs are restricted to four spaces due to Tcl/Tk limitations." msgstr "" -#: ../../library/idle.rst:468 msgid "" "See also the indent/dedent region commands on the :ref:`Format menu `." msgstr "" -#: ../../library/idle.rst:472 msgid "Search and Replace" msgstr "" -#: ../../library/idle.rst:474 msgid "" "Any selection becomes a search target. However, only selections within a " "line work because searches are only performed within lines with the terminal " @@ -903,47 +719,42 @@ msgid "" "interpreted according to the Python re module." msgstr "" -#: ../../library/idle.rst:482 msgid "Completions" msgstr "" -#: ../../library/idle.rst:484 msgid "" "Completions are supplied, when requested and available, for module names, " "attributes of classes or functions, or filenames. Each request method " "displays a completion box with existing names. (See tab completions below " "for an exception.) For any box, change the name being completed and the item " -"highlighted in the box by typing and deleting characters; by " -"hitting :kbd:`Up`, :kbd:`Down`, :kbd:`PageUp`, :kbd:`PageDown`, :kbd:`Home`, " -"and :kbd:`End` keys; and by a single click within the box. Close the box " -"with :kbd:`Escape`, :kbd:`Enter`, and double :kbd:`Tab` keys or clicks " -"outside the box. A double click within the box selects and closes." +"highlighted in the box by typing and deleting characters; by hitting :kbd:" +"`Up`, :kbd:`Down`, :kbd:`PageUp`, :kbd:`PageDown`, :kbd:`Home`, and :kbd:" +"`End` keys; and by a single click within the box. Close the box with :kbd:" +"`Escape`, :kbd:`Enter`, and double :kbd:`Tab` keys or clicks outside the " +"box. A double click within the box selects and closes." msgstr "" -#: ../../library/idle.rst:495 msgid "" "One way to open a box is to type a key character and wait for a predefined " "interval. This defaults to 2 seconds; customize it in the settings dialog. " "(To prevent auto popups, set the delay to a large number of milliseconds, " "such as 100000000.) For imported module names or class or function " -"attributes, type '.'. For filenames in the root directory, " -"type :data:`os.sep` or :data:`os.altsep` immediately after an opening " -"quote. (On Windows, one can specify a drive first.) Move into " -"subdirectories by typing a directory name and a separator." +"attributes, type '.'. For filenames in the root directory, type :data:`os." +"sep` or :data:`os.altsep` immediately after an opening quote. (On Windows, " +"one can specify a drive first.) Move into subdirectories by typing a " +"directory name and a separator." msgstr "" -#: ../../library/idle.rst:505 msgid "" "Instead of waiting, or after a box is closed, open a completion box " -"immediately with Show Completions on the Edit menu. The default hot key " -"is :kbd:`C-space`. If one types a prefix for the desired name before " -"opening the box, the first match or near miss is made visible. The result is " -"the same as if one enters a prefix after the box is displayed. Show " -"Completions after a quote completes filenames in the current directory " -"instead of a root directory." +"immediately with Show Completions on the Edit menu. The default hot key is :" +"kbd:`C-space`. If one types a prefix for the desired name before opening " +"the box, the first match or near miss is made visible. The result is the " +"same as if one enters a prefix after the box is displayed. Show Completions " +"after a quote completes filenames in the current directory instead of a root " +"directory." msgstr "" -#: ../../library/idle.rst:513 msgid "" "Hitting :kbd:`Tab` after a prefix usually has the same effect as Show " "Completions. (With no prefix, it indents.) However, if there is only one " @@ -951,14 +762,12 @@ msgid "" "without opening a box." msgstr "" -#: ../../library/idle.rst:518 msgid "" "Invoking 'Show Completions', or hitting :kbd:`Tab` after a prefix, outside " "of a string and without a preceding '.' opens a box with keywords, builtin " "names, and available module-level names." msgstr "" -#: ../../library/idle.rst:522 msgid "" "When editing code in an editor (as oppose to Shell), increase the available " "module-level names by running your code and not restarting the Shell " @@ -966,18 +775,15 @@ msgid "" "file. This also increases possible attribute completions." msgstr "" -#: ../../library/idle.rst:528 msgid "" "Completion boxes initially exclude names beginning with '_' or, for modules, " "not included in '__all__'. The hidden names can be accessed by typing '_' " "after '.', either before or after the box is opened." msgstr "" -#: ../../library/idle.rst:535 msgid "Calltips" msgstr "" -#: ../../library/idle.rst:537 msgid "" "A calltip is shown automatically when one types :kbd:`(` after the name of " "an *accessible* function. A function name expression may include dots and " @@ -987,7 +793,6 @@ msgid "" "or enter its shortcut to display a calltip." msgstr "" -#: ../../library/idle.rst:544 msgid "" "The calltip consists of the function's signature and docstring up to the " "latter's first blank line or the fifth non-blank line. (Some builtin " @@ -996,14 +801,12 @@ msgid "" "or name (keyword) only. Details are subject to change." msgstr "" -#: ../../library/idle.rst:550 msgid "" "In Shell, the accessible functions depends on what modules have been " "imported into the user process, including those imported by Idle itself, and " "which definitions have been run, all since the last restart." msgstr "" -#: ../../library/idle.rst:554 msgid "" "For example, restart the Shell and enter ``itertools.count(``. A calltip " "appears because Idle imports itertools into the user process for its own " @@ -1013,18 +816,15 @@ msgid "" "display a calltip." msgstr "" -#: ../../library/idle.rst:561 msgid "" "In an editor, import statements have no effect until one runs the file. One " "might want to run a file after writing import statements, after adding " "function definitions, or after opening an existing file." msgstr "" -#: ../../library/idle.rst:568 msgid "Code Context" msgstr "" -#: ../../library/idle.rst:570 msgid "" "Within an editor window containing Python code, code context can be toggled " "in order to show or hide a pane at the top of the window. When shown, this " @@ -1038,31 +838,26 @@ msgid "" "the top of the editor." msgstr "" -#: ../../library/idle.rst:581 msgid "" "The text and background colors for the context pane can be configured under " "the Highlights tab in the Configure IDLE dialog." msgstr "" -#: ../../library/idle.rst:585 msgid "Shell window" msgstr "" -#: ../../library/idle.rst:587 msgid "" "In IDLE's Shell, enter, edit, and recall complete statements. (Most consoles " "and terminals only work with a single physical line at a time)." msgstr "" -#: ../../library/idle.rst:590 msgid "" "Submit a single-line statement for execution by hitting :kbd:`Return` with " -"the cursor anywhere on the line. If a line is extended with Backslash " -"(:kbd:`\\\\`), the cursor must be on the last physical line. Submit a multi-" -"line compound statement by entering a blank line after the statement." +"the cursor anywhere on the line. If a line is extended with Backslash (:kbd:" +"`\\\\`), the cursor must be on the last physical line. Submit a multi-line " +"compound statement by entering a blank line after the statement." msgstr "" -#: ../../library/idle.rst:596 msgid "" "When one pastes code into Shell, it is not compiled and possibly executed " "until one hits :kbd:`Return`, as specified above. One may edit pasted code " @@ -1071,7 +866,6 @@ msgid "" "one." msgstr "" -#: ../../library/idle.rst:602 msgid "" "Lines containing ``RESTART`` mean that the user execution process has been " "re-started. This occurs when the user execution process has crashed, when " @@ -1079,38 +873,31 @@ msgid "" "window." msgstr "" -#: ../../library/idle.rst:607 msgid "" "The editing features described in previous subsections work when entering " "code interactively. IDLE's Shell window also responds to the following:" msgstr "" -#: ../../library/idle.rst:610 msgid ":kbd:`C-c` attempts to interrupt statement execution (but may fail)." msgstr "" -#: ../../library/idle.rst:612 msgid ":kbd:`C-d` closes Shell if typed at a ``>>>`` prompt." msgstr "" -#: ../../library/idle.rst:614 msgid "" ":kbd:`Alt-p` and :kbd:`Alt-n` (:kbd:`C-p` and :kbd:`C-n` on macOS) retrieve " "to the current prompt the previous or next previously entered statement that " "matches anything already typed." msgstr "" -#: ../../library/idle.rst:618 msgid "" ":kbd:`Return` while the cursor is on any previous statement appends the " "latter to anything already typed at the prompt." msgstr "" -#: ../../library/idle.rst:622 msgid "Text colors" msgstr "" -#: ../../library/idle.rst:624 msgid "" "Idle defaults to black on white text, but colors text with special meanings. " "For the shell, these are shell output, shell error, user output, and user " @@ -1120,16 +907,14 @@ msgid "" "(when present), found text (when possible), and selected text." msgstr "" -#: ../../library/idle.rst:631 msgid "" -"IDLE also highlights the :ref:`soft keywords ` :keyword:`match`, :keyword:`case `, and :keyword:`_ " -"` in pattern-matching statements. However, this " -"highlighting is not perfect and will be incorrect in some rare cases, " -"including some ``_``-s in ``case`` patterns." +"IDLE also highlights the :ref:`soft keywords ` :keyword:" +"`match`, :keyword:`case `, and :keyword:`_ ` in " +"pattern-matching statements. However, this highlighting is not perfect and " +"will be incorrect in some rare cases, including some ``_``-s in ``case`` " +"patterns." msgstr "" -#: ../../library/idle.rst:637 msgid "" "Text coloring is done in the background, so uncolorized text is occasionally " "visible. To change the color scheme, use the Configure IDLE dialog " @@ -1137,23 +922,20 @@ msgid "" "and text in popups and dialogs is not user-configurable." msgstr "" -#: ../../library/idle.rst:644 msgid "Startup and Code Execution" msgstr "" -#: ../../library/idle.rst:646 msgid "" "Upon startup with the ``-s`` option, IDLE will execute the file referenced " -"by the environment variables :envvar:`IDLESTARTUP` " -"or :envvar:`PYTHONSTARTUP`. IDLE first checks for ``IDLESTARTUP``; if " -"``IDLESTARTUP`` is present the file referenced is run. If ``IDLESTARTUP`` " -"is not present, IDLE checks for ``PYTHONSTARTUP``. Files referenced by " -"these environment variables are convenient places to store functions that " -"are used frequently from the IDLE shell, or for executing import statements " -"to import common modules." +"by the environment variables :envvar:`IDLESTARTUP` or :envvar:" +"`PYTHONSTARTUP`. IDLE first checks for ``IDLESTARTUP``; if ``IDLESTARTUP`` " +"is present the file referenced is run. If ``IDLESTARTUP`` is not present, " +"IDLE checks for ``PYTHONSTARTUP``. Files referenced by these environment " +"variables are convenient places to store functions that are used frequently " +"from the IDLE shell, or for executing import statements to import common " +"modules." msgstr "" -#: ../../library/idle.rst:654 msgid "" "In addition, ``Tk`` also loads a startup file if it is present. Note that " "the Tk file is loaded unconditionally. This additional file is ``.Idle.py`` " @@ -1162,91 +944,72 @@ msgid "" "importing functions to be used from IDLE's Python shell." msgstr "" -#: ../../library/idle.rst:661 msgid "Command line usage" msgstr "" -#: ../../library/idle.rst:665 msgid "" "IDLE can be invoked from the command line with various options. The general " "syntax is:" msgstr "" -#: ../../library/idle.rst:667 msgid "python -m idlelib [options] [file ...]" msgstr "" -#: ../../library/idle.rst:671 msgid "The following options are available:" msgstr "" -#: ../../library/idle.rst:675 msgid "" "Run the specified Python command in the shell window. For example, pass ``-c " "\"print('Hello, World!')\"``. On Windows, the outer quotes must be double " "quotes as shown." msgstr "" -#: ../../library/idle.rst:681 msgid "Enable the debugger and open the shell window." msgstr "" -#: ../../library/idle.rst:685 msgid "Open an editor window." msgstr "" -#: ../../library/idle.rst:689 msgid "Print a help message with legal combinations of options and exit." msgstr "" -#: ../../library/idle.rst:693 msgid "Open a shell window." msgstr "" -#: ../../library/idle.rst:697 msgid "Run the specified file in the shell window." msgstr "" -#: ../../library/idle.rst:701 msgid "" -"Run the startup file (as defined by the environment " -"variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`) before opening " -"the shell window." +"Run the startup file (as defined by the environment variables :envvar:" +"`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`) before opening the shell window." msgstr "" -#: ../../library/idle.rst:705 msgid "Set the title of the shell window." msgstr "" -#: ../../library/idle.rst:709 msgid "" "Read and execute standard input in the shell window. This option must be the " "last one before any arguments." msgstr "" -#: ../../library/idle.rst:711 msgid "If arguments are provided:" msgstr "" -#: ../../library/idle.rst:713 msgid "" -"If ``-``, ``-c``, or ``-r`` is used, all arguments are placed in " -"``sys.argv[1:]``, and ``sys.argv[0]`` is set to ``''``, ``'-c'``, or ``'-" -"r'`` respectively. No editor window is opened, even if that is the default " -"set in the *Options* dialog." +"If ``-``, ``-c``, or ``-r`` is used, all arguments are placed in ``sys." +"argv[1:]``, and ``sys.argv[0]`` is set to ``''``, ``'-c'``, or ``'-r'`` " +"respectively. No editor window is opened, even if that is the default set in " +"the *Options* dialog." msgstr "" -#: ../../library/idle.rst:716 msgid "" "Otherwise, arguments are treated as files to be opened for editing, and " "``sys.argv`` reflects the arguments passed to IDLE itself." msgstr "" -#: ../../library/idle.rst:720 msgid "Startup failure" msgstr "" -#: ../../library/idle.rst:722 msgid "" "IDLE uses a socket to communicate between the IDLE GUI process and the user " "code execution process. A connection must be established whenever the Shell " @@ -1256,7 +1019,6 @@ msgid "" "directs the user here. It then exits." msgstr "" -#: ../../library/idle.rst:729 msgid "" "One specific connection failure on Unix systems results from misconfigured " "masquerading rules somewhere in a system's network setup. When IDLE is " @@ -1266,7 +1028,6 @@ msgid "" "``tcplisten `` in another." msgstr "" -#: ../../library/idle.rst:737 msgid "" "A common cause of failure is a user-written file with the same name as a " "standard library module, such as *random.py* and *tkinter.py*. When such a " @@ -1275,7 +1036,6 @@ msgid "" "file." msgstr "" -#: ../../library/idle.rst:743 msgid "" "Though less common than in the past, an antivirus or firewall program may " "stop the connection. If the program cannot be taught to allow the " @@ -1285,7 +1045,6 @@ msgid "" "connections." msgstr "" -#: ../../library/idle.rst:750 msgid "" "Python installation issues occasionally stop IDLE: multiple versions can " "clash, or a single installation might need admin access. If one undo the " @@ -1293,7 +1052,6 @@ msgid "" "completely remove Python and start over." msgstr "" -#: ../../library/idle.rst:755 msgid "" "A zombie pythonw.exe process could be a problem. On Windows, use Task " "Manager to check for one and stop it if there is. Sometimes a restart " @@ -1302,10 +1060,9 @@ msgid "" "may fix a temporary problem." msgstr "" -#: ../../library/idle.rst:761 msgid "" -"When IDLE first starts, it attempts to read user configuration files in " -"``~/.idlerc/`` (~ is one's home directory). If there is a problem, an error " +"When IDLE first starts, it attempts to read user configuration files in ``~/." +"idlerc/`` (~ is one's home directory). If there is a problem, an error " "message should be displayed. Leaving aside random disk glitches, this can " "be prevented by never editing the files by hand. Instead, use the " "configuration dialog, under Options. Once there is an error in a user " @@ -1313,14 +1070,12 @@ msgid "" "with the settings dialog." msgstr "" -#: ../../library/idle.rst:769 msgid "" "If IDLE quits with no message, and it was not started from a console, try " "starting it from a console or terminal (``python -m idlelib``) and see if " "this results in an error message." msgstr "" -#: ../../library/idle.rst:773 msgid "" "On Unix-based systems with tcl/tk older than ``8.6.11`` (see ``About IDLE``) " "certain characters of certain fonts can cause a tk failure with a message to " @@ -1329,11 +1084,9 @@ msgid "" "upgrade tcl/tk, then re-configure IDLE to use a font that works better." msgstr "" -#: ../../library/idle.rst:781 msgid "Running user code" msgstr "" -#: ../../library/idle.rst:783 msgid "" "With rare exceptions, the result of executing Python code with IDLE is " "intended to be the same as executing the same code by the default method, " @@ -1343,17 +1096,15 @@ msgid "" "``threading.active_count()`` returns 2 instead of 1." msgstr "" -#: ../../library/idle.rst:790 msgid "" "By default, IDLE runs user code in a separate OS process rather than in the " "user interface process that runs the shell and editor. In the execution " "process, it replaces ``sys.stdin``, ``sys.stdout``, and ``sys.stderr`` with " "objects that get input from and send output to the Shell window. The " -"original values stored in ``sys.__stdin__``, ``sys.__stdout__``, and " -"``sys.__stderr__`` are not touched, but may be ``None``." +"original values stored in ``sys.__stdin__``, ``sys.__stdout__``, and ``sys." +"__stderr__`` are not touched, but may be ``None``." msgstr "" -#: ../../library/idle.rst:797 msgid "" "Sending print output from one process to a text widget in another is slower " "than printing to a system terminal in the same process. This has the most " @@ -1365,25 +1116,22 @@ msgid "" "fields and lines." msgstr "" -#: ../../library/idle.rst:806 msgid "" "IDLE's standard stream replacements are not inherited by subprocesses " "created in the execution process, whether directly by user code or by " -"modules such as multiprocessing. If such subprocess use ``input`` from " -"sys.stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, IDLE should " -"be started in a command line window. (On Windows, use ``python`` or ``py`` " +"modules such as multiprocessing. If such subprocess use ``input`` from sys." +"stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, IDLE should be " +"started in a command line window. (On Windows, use ``python`` or ``py`` " "rather than ``pythonw`` or ``pyw``.) The secondary subprocess will then be " "attached to that window for input and output." msgstr "" -#: ../../library/idle.rst:815 msgid "" "If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``, " "IDLE's changes are lost and input from the keyboard and output to the screen " "will not work correctly." msgstr "" -#: ../../library/idle.rst:819 msgid "" "When Shell has the focus, it controls the keyboard and screen. This is " "normally transparent, but functions that directly access the keyboard and " @@ -1391,7 +1139,6 @@ msgid "" "determine whether a key has been pressed and if so, which." msgstr "" -#: ../../library/idle.rst:824 msgid "" "The IDLE code running in the execution process adds frames to the call stack " "that would not be there otherwise. IDLE wraps ``sys.getrecursionlimit`` and " @@ -1399,27 +1146,23 @@ msgid "" "frames." msgstr "" -#: ../../library/idle.rst:829 msgid "" "When user code raises SystemExit either directly or by calling sys.exit, " "IDLE returns to a Shell prompt instead of exiting." msgstr "" -#: ../../library/idle.rst:833 msgid "User output in Shell" msgstr "" -#: ../../library/idle.rst:835 msgid "" "When a program outputs text, the result is determined by the corresponding " -"output device. When IDLE executes user code, ``sys.stdout`` and " -"``sys.stderr`` are connected to the display area of IDLE's Shell. Some of " -"its features are inherited from the underlying Tk Text widget. Others are " +"output device. When IDLE executes user code, ``sys.stdout`` and ``sys." +"stderr`` are connected to the display area of IDLE's Shell. Some of its " +"features are inherited from the underlying Tk Text widget. Others are " "programmed additions. Where it matters, Shell is designed for development " "rather than production runs." msgstr "" -#: ../../library/idle.rst:842 msgid "" "For instance, Shell never throws away output. A program that sends " "unlimited output to Shell will eventually fill memory, resulting in a memory " @@ -1428,7 +1171,6 @@ msgid "" "lines, with 300 the default." msgstr "" -#: ../../library/idle.rst:848 msgid "" "A Tk Text widget, and hence IDLE's Shell, displays characters (codepoints) " "in the BMP (Basic Multilingual Plane) subset of Unicode. Which characters " @@ -1442,7 +1184,6 @@ msgid "" "spacing behavior.) ::" msgstr "" -#: ../../library/idle.rst:858 msgid "" ">>> s = 'a\\tb\\a<\\x02><\\r>\\bc\\nd' # Enter 22 chars.\n" ">>> len(s)\n" @@ -1453,7 +1194,6 @@ msgid "" "# Result varies by OS and font. Try it." msgstr "" -#: ../../library/idle.rst:866 msgid "" "The ``repr`` function is used for interactive echo of expression values. It " "returns an altered version of the input string in which control codes, some " @@ -1462,13 +1202,11 @@ msgid "" "regardless of how they are displayed." msgstr "" -#: ../../library/idle.rst:872 msgid "" "Normal and error output are generally kept separate (on separate lines) from " "code input and each other. They each get different highlight colors." msgstr "" -#: ../../library/idle.rst:875 msgid "" "For SyntaxError tracebacks, the normal '^' marking where the error was " "detected is replaced by coloring the text with an error highlight. When code " @@ -1477,7 +1215,6 @@ msgid "" "opened if necessary." msgstr "" -#: ../../library/idle.rst:881 msgid "" "Shell has a special facility for squeezing output lines down to a 'Squeezed " "text' label. This is done automatically for output over N lines (N = 50 by " @@ -1486,30 +1223,26 @@ msgid "" "on the output. This can be useful lines long enough to slow down scrolling." msgstr "" -#: ../../library/idle.rst:889 msgid "" "Squeezed output is expanded in place by double-clicking the label. It can " "also be sent to the clipboard or a separate view window by right-clicking " "the label." msgstr "" -#: ../../library/idle.rst:894 msgid "Developing tkinter applications" msgstr "" -#: ../../library/idle.rst:896 msgid "" "IDLE is intentionally different from standard Python in order to facilitate " -"development of tkinter programs. Enter ``import tkinter as tk; root = " -"tk.Tk()`` in standard Python and nothing appears. Enter the same in IDLE " -"and a tk window appears. In standard Python, one must also enter " -"``root.update()`` to see the window. IDLE does the equivalent in the " -"background, about 20 times a second, which is about every 50 milliseconds. " -"Next enter ``b = tk.Button(root, text='button'); b.pack()``. Again, nothing " -"visibly changes in standard Python until one enters ``root.update()``." +"development of tkinter programs. Enter ``import tkinter as tk; root = tk." +"Tk()`` in standard Python and nothing appears. Enter the same in IDLE and a " +"tk window appears. In standard Python, one must also enter ``root." +"update()`` to see the window. IDLE does the equivalent in the background, " +"about 20 times a second, which is about every 50 milliseconds. Next enter " +"``b = tk.Button(root, text='button'); b.pack()``. Again, nothing visibly " +"changes in standard Python until one enters ``root.update()``." msgstr "" -#: ../../library/idle.rst:905 msgid "" "Most tkinter programs run ``root.mainloop()``, which usually does not return " "until the tk app is destroyed. If the program is run with ``python -i`` or " @@ -1517,7 +1250,6 @@ msgid "" "``mainloop()`` returns, at which time there is nothing left to interact with." msgstr "" -#: ../../library/idle.rst:911 msgid "" "When running a tkinter program from an IDLE editor, one can comment out the " "mainloop call. One then gets a shell prompt immediately and can interact " @@ -1525,11 +1257,9 @@ msgid "" "mainloop call when running in standard Python." msgstr "" -#: ../../library/idle.rst:917 msgid "Running without a subprocess" msgstr "" -#: ../../library/idle.rst:919 msgid "" "By default, IDLE executes user code in a separate subprocess via a socket, " "which uses the internal loopback interface. This connection is not " @@ -1537,7 +1267,6 @@ msgid "" "firewall software complains anyway, you can ignore it." msgstr "" -#: ../../library/idle.rst:924 msgid "" "If the attempt to make the socket connection fails, Idle will notify you. " "Such failures are sometimes transient, but if persistent, the problem may be " @@ -1546,7 +1275,6 @@ msgid "" "command line switch." msgstr "" -#: ../../library/idle.rst:930 msgid "" "If IDLE is started with the -n command line switch it will run in a single " "process and will not create the subprocess which runs the RPC Python " @@ -1560,15 +1288,12 @@ msgid "" "at all possible." msgstr "" -#: ../../library/idle.rst:945 msgid "Help and Preferences" msgstr "" -#: ../../library/idle.rst:950 msgid "Help sources" msgstr "" -#: ../../library/idle.rst:952 msgid "" "Help menu entry \"IDLE Help\" displays a formatted html version of the IDLE " "chapter of the Library Reference. The result, in a read-only tkinter text " @@ -1578,7 +1303,6 @@ msgid "" "the opened box." msgstr "" -#: ../../library/idle.rst:960 msgid "" "Help menu entry \"Python Docs\" opens the extensive sources of help, " "including tutorials, available at ``docs.python.org/x.y``, where 'x.y' is " @@ -1587,17 +1311,14 @@ msgid "" "instead." msgstr "" -#: ../../library/idle.rst:966 msgid "" "Selected URLs can be added or removed from the help menu at any time using " "the General tab of the Configure IDLE dialog." msgstr "" -#: ../../library/idle.rst:972 msgid "Setting preferences" msgstr "" -#: ../../library/idle.rst:974 msgid "" "The font preferences, highlighting, keys, and general preferences can be " "changed via Configure IDLE on the Option menu. Non-default user settings are " @@ -1606,7 +1327,6 @@ msgid "" "or more of the files in ``.idlerc``." msgstr "" -#: ../../library/idle.rst:980 msgid "" "On the Font tab, see the text sample for the effect of font face and size on " "multiple characters in multiple languages. Edit the sample to add other " @@ -1615,7 +1335,6 @@ msgid "" "them to the top of the sample and try changing first size and then font." msgstr "" -#: ../../library/idle.rst:987 msgid "" "On the Highlights and Keys tab, select a built-in or custom color theme and " "key set. To use a newer built-in color theme or key set with older IDLEs, " @@ -1623,22 +1342,18 @@ msgid "" "IDLEs." msgstr "" -#: ../../library/idle.rst:993 msgid "IDLE on macOS" msgstr "" -#: ../../library/idle.rst:995 msgid "" "Under System Preferences: Dock, one can set \"Prefer tabs when opening " "documents\" to \"Always\". This setting is not compatible with the tk/" "tkinter GUI framework used by IDLE, and it breaks a few IDLE features." msgstr "" -#: ../../library/idle.rst:1000 msgid "Extensions" msgstr "" -#: ../../library/idle.rst:1002 msgid "" "IDLE contains an extension facility. Preferences for extensions can be " "changed with the Extensions tab of the preferences dialog. See the beginning " @@ -1647,21 +1362,17 @@ msgid "" "testing." msgstr "" -#: ../../library/idle.rst:1010 msgid "idlelib --- implementation of IDLE application" msgstr "" -#: ../../library/idle.rst:1015 msgid "**Source code:** :source:`Lib/idlelib`" msgstr "" -#: ../../library/idle.rst:1019 msgid "" "The Lib/idlelib package implements the IDLE application. See the rest of " "this page for how to use IDLE." msgstr "" -#: ../../library/idle.rst:1022 msgid "" "The files in idlelib are described in idlelib/README.txt. Access it either " "in idlelib or click Help => About IDLE on the IDLE menu. This file also " @@ -1670,38 +1381,29 @@ msgid "" "changes can be backported (see :pep:`434`)." msgstr "" -#: ../../library/idle.rst:10 msgid "IDLE" msgstr "" -#: ../../library/idle.rst:10 msgid "Python Editor" msgstr "" -#: ../../library/idle.rst:10 msgid "Integrated Development Environment" msgstr "" -#: ../../library/idle.rst:71 msgid "Module browser" msgstr "" -#: ../../library/idle.rst:71 msgid "Path browser" msgstr "" -#: ../../library/idle.rst:213 msgid "Run script" msgstr "" -#: ../../library/idle.rst:280 msgid "debugger" msgstr "" -#: ../../library/idle.rst:280 msgid "stack viewer" msgstr "" -#: ../../library/idle.rst:356 msgid "breakpoints" msgstr "" diff --git a/library/imaplib.po b/library/imaplib.po index 372b49b..0dc3fd7 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,40 +18,33 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/imaplib.rst:2 msgid ":mod:`!imaplib` --- IMAP4 protocol client" msgstr "" -#: ../../library/imaplib.rst:15 msgid "**Source code:** :source:`Lib/imaplib.py`" msgstr "" -#: ../../library/imaplib.rst:24 msgid "" -"This module defines three classes, :class:`IMAP4`, :class:`IMAP4_SSL` " -"and :class:`IMAP4_stream`, which encapsulate a connection to an IMAP4 server " -"and implement a large subset of the IMAP4rev1 client protocol as defined " -"in :rfc:`2060`. It is backward compatible with IMAP4 (:rfc:`1730`) servers, " -"but note that the ``STATUS`` command is not supported in IMAP4." +"This module defines three classes, :class:`IMAP4`, :class:`IMAP4_SSL` and :" +"class:`IMAP4_stream`, which encapsulate a connection to an IMAP4 server and " +"implement a large subset of the IMAP4rev1 client protocol as defined in :rfc:" +"`2060`. It is backward compatible with IMAP4 (:rfc:`1730`) servers, but note " +"that the ``STATUS`` command is not supported in IMAP4." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/imaplib.rst:32 msgid "" "Three classes are provided by the :mod:`imaplib` module, :class:`IMAP4` is " "the base class:" msgstr "" -#: ../../library/imaplib.rst:38 msgid "" "This class implements the actual IMAP4 protocol. The connection is created " "and protocol version (IMAP4 or IMAP4rev1) is determined when the instance is " @@ -62,14 +55,12 @@ msgid "" "timeout is used." msgstr "" -#: ../../library/imaplib.rst:45 msgid "" "The :class:`IMAP4` class supports the :keyword:`with` statement. When used " -"like this, the IMAP4 ``LOGOUT`` command is issued automatically when " -"the :keyword:`!with` statement exits. E.g.::" +"like this, the IMAP4 ``LOGOUT`` command is issued automatically when the :" +"keyword:`!with` statement exits. E.g.::" msgstr "" -#: ../../library/imaplib.rst:49 msgid "" ">>> from imaplib import IMAP4\n" ">>> with IMAP4(\"domain.org\") as M:\n" @@ -78,32 +69,26 @@ msgid "" "('OK', [b'Nothing Accomplished. d25if65hy903weo.87'])" msgstr "" -#: ../../library/imaplib.rst:55 msgid "Support for the :keyword:`with` statement was added." msgstr "" -#: ../../library/imaplib.rst:58 ../../library/imaplib.rst:112 msgid "The optional *timeout* parameter was added." msgstr "" -#: ../../library/imaplib.rst:61 msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" msgstr "" -#: ../../library/imaplib.rst:66 msgid "" "Exception raised on any errors. The reason for the exception is passed to " "the constructor as a string." msgstr "" -#: ../../library/imaplib.rst:72 msgid "" "IMAP4 server errors cause this exception to be raised. This is a sub-class " "of :exc:`IMAP4.error`. Note that closing the instance and instantiating a " "new one will usually allow recovery from this exception." msgstr "" -#: ../../library/imaplib.rst:79 msgid "" "This exception is raised when a writable mailbox has its status changed by " "the server. This is a sub-class of :exc:`IMAP4.error`. Some other client " @@ -111,11 +96,9 @@ msgid "" "obtain write permission." msgstr "" -#: ../../library/imaplib.rst:85 msgid "There's also a subclass for secure connections:" msgstr "" -#: ../../library/imaplib.rst:91 msgid "" "This is a subclass derived from :class:`IMAP4` that connects over an SSL " "encrypted socket (to use this class you need a socket module that was " @@ -127,73 +110,60 @@ msgid "" "for best practices." msgstr "" -#: ../../library/imaplib.rst:100 msgid "" "The optional *timeout* parameter specifies a timeout in seconds for the " "connection attempt. If timeout is not given or is ``None``, the global " "default socket timeout is used." msgstr "" -#: ../../library/imaplib.rst:104 msgid "*ssl_context* parameter was added." msgstr "" -#: ../../library/imaplib.rst:107 msgid "" -"The class now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: ../../library/imaplib.rst:115 msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -#: ../../library/imaplib.rst:118 msgid "The second subclass allows for connections created by a child process:" msgstr "" -#: ../../library/imaplib.rst:123 msgid "" "This is a subclass derived from :class:`IMAP4` that connects to the ``stdin/" -"stdout`` file descriptors created by passing *command* to " -"``subprocess.Popen()``." +"stdout`` file descriptors created by passing *command* to ``subprocess." +"Popen()``." msgstr "" -#: ../../library/imaplib.rst:128 msgid "The following utility functions are defined:" msgstr "" -#: ../../library/imaplib.rst:133 msgid "" "Parse an IMAP4 ``INTERNALDATE`` string and return corresponding local time. " "The return value is a :class:`time.struct_time` tuple or ``None`` if the " "string has wrong format." msgstr "" -#: ../../library/imaplib.rst:139 msgid "" "Converts an integer into a bytes representation using characters from the " "set [``A`` .. ``P``]." msgstr "" -#: ../../library/imaplib.rst:145 msgid "Converts an IMAP4 ``FLAGS`` response to a tuple of individual flags." msgstr "" -#: ../../library/imaplib.rst:150 msgid "" "Convert *date_time* to an IMAP4 ``INTERNALDATE`` representation. The return " "value is a string in the form: ``\"DD-Mmm-YYYY HH:MM:SS +HHMM\"`` (including " "double-quotes). The *date_time* argument can be a number (int or float) " "representing seconds since epoch (as returned by :func:`time.time`), a 9-" "tuple representing local time an instance of :class:`time.struct_time` (as " -"returned by :func:`time.localtime`), an aware instance " -"of :class:`datetime.datetime`, or a double-quoted string. In the last case, " -"it is assumed to already be in the correct format." +"returned by :func:`time.localtime`), an aware instance of :class:`datetime." +"datetime`, or a double-quoted string. In the last case, it is assumed to " +"already be in the correct format." msgstr "" -#: ../../library/imaplib.rst:160 msgid "" "Note that IMAP4 message numbers change as the mailbox changes; in " "particular, after an ``EXPUNGE`` command performs deletions the remaining " @@ -201,30 +171,25 @@ msgid "" "the UID command." msgstr "" -#: ../../library/imaplib.rst:164 msgid "" "At the end of the module, there is a test section that contains a more " "extensive example of usage." msgstr "" -#: ../../library/imaplib.rst:170 msgid "" "Documents describing the protocol, sources for servers implementing it, by " "the University of Washington's IMAP Information Center can all be found at " "(**Source Code**) https://github.com/uw-imap/imap (**Not Maintained**)." msgstr "" -#: ../../library/imaplib.rst:178 msgid "IMAP4 Objects" msgstr "" -#: ../../library/imaplib.rst:180 msgid "" "All IMAP4rev1 commands are represented by methods of the same name, either " "uppercase or lowercase." msgstr "" -#: ../../library/imaplib.rst:183 msgid "" "All arguments to commands are converted to strings, except for " "``AUTHENTICATE``, and the last argument to ``APPEND`` which is passed as an " @@ -236,7 +201,6 @@ msgid "" "(eg: ``r'(\\Deleted)'``)." msgstr "" -#: ../../library/imaplib.rst:191 msgid "" "Most commands return a tuple: ``(type, [data, ...])`` where *type* is " "usually ``'OK'`` or ``'NO'``, and *data* is either the text from the command " @@ -245,7 +209,6 @@ msgid "" "response, and the second part contains the data (ie: 'literal' value)." msgstr "" -#: ../../library/imaplib.rst:197 msgid "" "The *message_set* options to commands below is a string specifying one or " "more messages to be acted upon. It may be a simple message number " @@ -254,34 +217,27 @@ msgid "" "an asterisk to indicate an infinite upper bound (``'3:*'``)." msgstr "" -#: ../../library/imaplib.rst:203 msgid "An :class:`IMAP4` instance has the following methods:" msgstr "" -#: ../../library/imaplib.rst:208 msgid "Append *message* to named mailbox." msgstr "" -#: ../../library/imaplib.rst:213 msgid "Authenticate command --- requires response processing." msgstr "" -#: ../../library/imaplib.rst:215 msgid "" "*mechanism* specifies which authentication mechanism is to be used - it " "should appear in the instance variable ``capabilities`` in the form " "``AUTH=mechanism``." msgstr "" -#: ../../library/imaplib.rst:218 msgid "*authobject* must be a callable object::" msgstr "" -#: ../../library/imaplib.rst:220 msgid "data = authobject(response)" msgstr "" -#: ../../library/imaplib.rst:222 msgid "" "It will be called to process server continuation responses; the *response* " "argument it is passed will be ``bytes``. It should return ``bytes`` *data* " @@ -289,101 +245,83 @@ msgid "" "``None`` if the client abort response ``*`` should be sent instead." msgstr "" -#: ../../library/imaplib.rst:227 msgid "" "string usernames and passwords are now encoded to ``utf-8`` instead of being " "limited to ASCII." msgstr "" -#: ../../library/imaplib.rst:234 msgid "Checkpoint mailbox on server." msgstr "" -#: ../../library/imaplib.rst:239 msgid "" "Close currently selected mailbox. Deleted messages are removed from writable " "mailbox. This is the recommended command before ``LOGOUT``." msgstr "" -#: ../../library/imaplib.rst:245 msgid "Copy *message_set* messages onto end of *new_mailbox*." msgstr "" -#: ../../library/imaplib.rst:250 msgid "Create new mailbox named *mailbox*." msgstr "" -#: ../../library/imaplib.rst:255 msgid "Delete old mailbox named *mailbox*." msgstr "" -#: ../../library/imaplib.rst:260 msgid "Delete the ACLs (remove any rights) set for who on mailbox." msgstr "" -#: ../../library/imaplib.rst:265 msgid "" "Enable *capability* (see :rfc:`5161`). Most capabilities do not need to be " -"enabled. Currently only the ``UTF8=ACCEPT`` capability is supported " -"(see :RFC:`6855`)." +"enabled. Currently only the ``UTF8=ACCEPT`` capability is supported (see :" +"RFC:`6855`)." msgstr "" -#: ../../library/imaplib.rst:269 msgid "The :meth:`enable` method itself, and :RFC:`6855` support." msgstr "" -#: ../../library/imaplib.rst:275 msgid "" "Permanently remove deleted items from selected mailbox. Generates an " "``EXPUNGE`` response for each deleted message. Returned data contains a list " "of ``EXPUNGE`` message numbers in order received." msgstr "" -#: ../../library/imaplib.rst:282 msgid "" "Fetch (parts of) messages. *message_parts* should be a string of message " "part names enclosed within parentheses, eg: ``\"(UID BODY[TEXT])\"``. " "Returned data are tuples of message part envelope and data." msgstr "" -#: ../../library/imaplib.rst:289 msgid "" "Get the ``ACL``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." msgstr "" -#: ../../library/imaplib.rst:295 msgid "" "Retrieve the specified ``ANNOTATION``\\ s for *mailbox*. The method is non-" "standard, but is supported by the ``Cyrus`` server." msgstr "" -#: ../../library/imaplib.rst:301 msgid "" "Get the ``quota`` *root*'s resource usage and limits. This method is part of " "the IMAP4 QUOTA extension defined in rfc2087." msgstr "" -#: ../../library/imaplib.rst:307 msgid "" "Get the list of ``quota`` ``roots`` for the named *mailbox*. This method is " "part of the IMAP4 QUOTA extension defined in rfc2087." msgstr "" -#: ../../library/imaplib.rst:313 msgid "" "Return an :class:`!Idler`: an iterable context manager implementing the " "IMAP4 ``IDLE`` command as defined in :rfc:`2177`." msgstr "" -#: ../../library/imaplib.rst:316 msgid "" -"The returned object sends the ``IDLE`` command when activated by " -"the :keyword:`with` statement, produces IMAP untagged responses via " -"the :term:`iterator` protocol, and sends ``DONE`` upon context exit." +"The returned object sends the ``IDLE`` command when activated by the :" +"keyword:`with` statement, produces IMAP untagged responses via the :term:" +"`iterator` protocol, and sends ``DONE`` upon context exit." msgstr "" -#: ../../library/imaplib.rst:320 msgid "" "All untagged responses that arrive after sending the ``IDLE`` command " "(including any that arrive before the server acknowledges the command) will " @@ -392,23 +330,20 @@ msgid "" "``IDLE`` ends, using :meth:`IMAP4.response`." msgstr "" -#: ../../library/imaplib.rst:326 msgid "" "Responses are represented as ``(type, [data, ...])`` tuples, as described " "in :ref:`IMAP4 Objects `." msgstr "" -#: ../../library/imaplib.rst:329 msgid "" "The *duration* argument sets a maximum duration (in seconds) to keep idling, " -"after which any ongoing iteration will stop. It can be an :class:`int` " -"or :class:`float`, or ``None`` for no time limit. Callers wishing to avoid " +"after which any ongoing iteration will stop. It can be an :class:`int` or :" +"class:`float`, or ``None`` for no time limit. Callers wishing to avoid " "inactivity timeouts on servers that impose them should keep this at most 29 " "minutes (1740 seconds). Requires a socket connection; *duration* must be " "``None`` on :class:`IMAP4_stream` connections." msgstr "" -#: ../../library/imaplib.rst:337 msgid "" ">>> with M.idle(duration=29 * 60) as idler:\n" "... for typ, data in idler:\n" @@ -418,13 +353,11 @@ msgid "" "RECENT [b'1']" msgstr "" -#: ../../library/imaplib.rst:349 msgid "" "Yield a burst of responses no more than *interval* seconds apart (expressed " "as an :class:`int` or :class:`float`)." msgstr "" -#: ../../library/imaplib.rst:352 msgid "" "This :term:`generator` is an alternative to iterating one response at a " "time, intended to aid in efficient batch processing. It retrieves the next " @@ -432,13 +365,11 @@ msgid "" "example, a rapid series of ``EXPUNGE`` responses after a bulk delete.)" msgstr "" -#: ../../library/imaplib.rst:358 msgid "" "Requires a socket connection; does not work on :class:`IMAP4_stream` " "connections." msgstr "" -#: ../../library/imaplib.rst:361 msgid "" ">>> with M.idle() as idler:\n" "... # get a response and any others following by < 0.1 seconds\n" @@ -450,7 +381,6 @@ msgid "" "[('EXPUNGE', [b'2']), ('EXPUNGE', [b'1']), ('RECENT', [b'0'])]" msgstr "" -#: ../../library/imaplib.rst:374 msgid "" "The ``IDLE`` context's maximum duration, as passed to :meth:`IMAP4.idle`, is " "respected when waiting for the first response in a burst. Therefore, an " @@ -459,15 +389,13 @@ msgid "" "loop." msgstr "" -#: ../../library/imaplib.rst:383 msgid "" -"The iterator returned by :meth:`IMAP4.idle` is usable only within " -"a :keyword:`with` statement. Before or after that context, unsolicited " -"responses are collected internally whenever a command finishes, and can be " -"retrieved with :meth:`IMAP4.response`." +"The iterator returned by :meth:`IMAP4.idle` is usable only within a :keyword:" +"`with` statement. Before or after that context, unsolicited responses are " +"collected internally whenever a command finishes, and can be retrieved with :" +"meth:`IMAP4.response`." msgstr "" -#: ../../library/imaplib.rst:390 msgid "" "The :class:`!Idler` class name and structure are internal interfaces, " "subject to change. Calling code can rely on its context management, " @@ -475,128 +403,109 @@ msgid "" "instantiate, compare, or otherwise directly reference the class." msgstr "" -#: ../../library/imaplib.rst:400 msgid "" "List mailbox names in *directory* matching *pattern*. *directory* defaults " "to the top-level mail folder, and *pattern* defaults to match anything. " "Returned data contains a list of ``LIST`` responses." msgstr "" -#: ../../library/imaplib.rst:407 msgid "" "Identify the client using a plaintext password. The *password* will be " "quoted." msgstr "" -#: ../../library/imaplib.rst:412 msgid "" "Force use of ``CRAM-MD5`` authentication when identifying the client to " "protect the password. Will only work if the server ``CAPABILITY`` response " "includes the phrase ``AUTH=CRAM-MD5``." msgstr "" -#: ../../library/imaplib.rst:419 +msgid "An :exc:`IMAP4.error` is raised if MD5 support is not available." +msgstr "" + msgid "Shutdown connection to server. Returns server ``BYE`` response." msgstr "" -#: ../../library/imaplib.rst:421 msgid "The method no longer ignores silently arbitrary exceptions." msgstr "" -#: ../../library/imaplib.rst:427 msgid "" "List subscribed mailbox names in directory matching pattern. *directory* " "defaults to the top level directory and *pattern* defaults to match any " "mailbox. Returned data are tuples of message part envelope and data." msgstr "" -#: ../../library/imaplib.rst:434 msgid "Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)." msgstr "" -#: ../../library/imaplib.rst:439 msgid "Returns IMAP namespaces as defined in :rfc:`2342`." msgstr "" -#: ../../library/imaplib.rst:444 msgid "Send ``NOOP`` to server." msgstr "" -#: ../../library/imaplib.rst:449 msgid "" "Opens socket to *port* at *host*. The optional *timeout* parameter specifies " "a timeout in seconds for the connection attempt. If timeout is not given or " "is ``None``, the global default socket timeout is used. Also note that if " -"the *timeout* parameter is set to be zero, it will raise " -"a :class:`ValueError` to reject creating a non-blocking socket. This method " -"is implicitly called by the :class:`IMAP4` constructor. The connection " -"objects established by this method will be used in " -"the :meth:`IMAP4.read`, :meth:`IMAP4.readline`, :meth:`IMAP4.send`, " -"and :meth:`IMAP4.shutdown` methods. You may override this method." +"the *timeout* parameter is set to be zero, it will raise a :class:" +"`ValueError` to reject creating a non-blocking socket. This method is " +"implicitly called by the :class:`IMAP4` constructor. The connection objects " +"established by this method will be used in the :meth:`IMAP4.read`, :meth:" +"`IMAP4.readline`, :meth:`IMAP4.send`, and :meth:`IMAP4.shutdown` methods. " +"You may override this method." msgstr "" -#: ../../library/imaplib.rst:459 msgid "" "Raises an :ref:`auditing event ` ``imaplib.open`` with arguments " "``self``, ``host``, ``port``." msgstr "" -#: ../../library/imaplib.rst:461 msgid "The *timeout* parameter was added." msgstr "" -#: ../../library/imaplib.rst:466 msgid "" "Fetch truncated part of a message. Returned data is a tuple of message part " "envelope and data." msgstr "" -#: ../../library/imaplib.rst:472 msgid "" "Assume authentication as *user*. Allows an authorised administrator to proxy " "into any user's mailbox." msgstr "" -#: ../../library/imaplib.rst:478 msgid "" "Reads *size* bytes from the remote server. You may override this method." msgstr "" -#: ../../library/imaplib.rst:483 msgid "Reads one line from the remote server. You may override this method." msgstr "" -#: ../../library/imaplib.rst:488 msgid "" "Prompt server for an update. Returned data is ``None`` if no new messages, " "else value of ``RECENT`` response." msgstr "" -#: ../../library/imaplib.rst:494 msgid "Rename mailbox named *oldmailbox* to *newmailbox*." msgstr "" -#: ../../library/imaplib.rst:499 msgid "" "Return data for response *code* if received, or ``None``. Returns the given " "code, instead of the usual type." msgstr "" -#: ../../library/imaplib.rst:505 msgid "" "Search mailbox for matching messages. *charset* may be ``None``, in which " "case no ``CHARSET`` will be specified in the request to the server. The " "IMAP protocol requires that at least one criterion be specified; an " "exception will be raised when the server returns an error. *charset* must " -"be ``None`` if the ``UTF8=ACCEPT`` capability was enabled using " -"the :meth:`enable` command." +"be ``None`` if the ``UTF8=ACCEPT`` capability was enabled using the :meth:" +"`enable` command." msgstr "" -#: ../../library/imaplib.rst:512 msgid "Example::" msgstr "" -#: ../../library/imaplib.rst:514 msgid "" "# M is a connected IMAP4 instance...\n" "typ, msgnums = M.search(None, 'FROM', '\"LDJ\"')\n" @@ -605,59 +514,49 @@ msgid "" "typ, msgnums = M.search(None, '(FROM \"LDJ\")')" msgstr "" -#: ../../library/imaplib.rst:523 msgid "" "Select a mailbox. Returned data is the count of messages in *mailbox* " "(``EXISTS`` response). The default *mailbox* is ``'INBOX'``. If the " "*readonly* flag is set, modifications to the mailbox are not allowed." msgstr "" -#: ../../library/imaplib.rst:530 msgid "Sends ``data`` to the remote server. You may override this method." msgstr "" -#: ../../library/imaplib.rst:532 msgid "" "Raises an :ref:`auditing event ` ``imaplib.send`` with arguments " "``self``, ``data``." msgstr "" -#: ../../library/imaplib.rst:537 msgid "" "Set an ``ACL`` for *mailbox*. The method is non-standard, but is supported " "by the ``Cyrus`` server." msgstr "" -#: ../../library/imaplib.rst:543 msgid "" "Set ``ANNOTATION``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." msgstr "" -#: ../../library/imaplib.rst:549 msgid "" "Set the ``quota`` *root*'s resource *limits*. This method is part of the " "IMAP4 QUOTA extension defined in rfc2087." msgstr "" -#: ../../library/imaplib.rst:555 msgid "" "Close connection established in ``open``. This method is implicitly called " "by :meth:`IMAP4.logout`. You may override this method." msgstr "" -#: ../../library/imaplib.rst:561 msgid "Returns socket instance used to connect to server." msgstr "" -#: ../../library/imaplib.rst:566 msgid "" "The ``sort`` command is a variant of ``search`` with sorting semantics for " "the results. Returned data contains a space separated list of matching " "message numbers." msgstr "" -#: ../../library/imaplib.rst:570 msgid "" "Sort has two arguments before the *search_criterion* argument(s); a " "parenthesized list of *sort_criteria*, and the searching *charset*. Note " @@ -669,40 +568,32 @@ msgid "" "searching criteria. It then returns the numbers of matching messages." msgstr "" -#: ../../library/imaplib.rst:579 ../../library/imaplib.rst:650 msgid "This is an ``IMAP4rev1`` extension command." msgstr "" -#: ../../library/imaplib.rst:584 msgid "" "Send a ``STARTTLS`` command. The *ssl_context* argument is optional and " "should be a :class:`ssl.SSLContext` object. This will enable encryption on " "the IMAP connection. Please read :ref:`ssl-security` for best practices." msgstr "" -#: ../../library/imaplib.rst:591 msgid "" -"The method now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." +"The method now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: ../../library/imaplib.rst:599 msgid "Request named status conditions for *mailbox*." msgstr "" -#: ../../library/imaplib.rst:604 msgid "" "Alters flag dispositions for messages in mailbox. *command* is specified by " "section 6.4.6 of :rfc:`2060` as being one of \"FLAGS\", \"+FLAGS\", or \"-" "FLAGS\", optionally with a suffix of \".SILENT\"." msgstr "" -#: ../../library/imaplib.rst:608 msgid "For example, to set the delete flag on all messages::" msgstr "" -#: ../../library/imaplib.rst:610 msgid "" "typ, data = M.search(None, 'ALL')\n" "for num in data[0].split():\n" @@ -710,7 +601,6 @@ msgid "" "M.expunge()" msgstr "" -#: ../../library/imaplib.rst:617 msgid "" "Creating flags containing ']' (for example: \"[test]\") violates :rfc:`3501` " "(the IMAP protocol). However, imaplib has historically allowed creation of " @@ -722,24 +612,20 @@ msgid "" "are sent from the server, since this improves real-world compatibility." msgstr "" -#: ../../library/imaplib.rst:629 msgid "Subscribe to new mailbox." msgstr "" -#: ../../library/imaplib.rst:634 msgid "" "The ``thread`` command is a variant of ``search`` with threading semantics " "for the results. Returned data contains a space separated list of thread " "members." msgstr "" -#: ../../library/imaplib.rst:637 msgid "" "Thread members consist of zero or more messages numbers, delimited by " "spaces, indicating successive parent and child." msgstr "" -#: ../../library/imaplib.rst:640 msgid "" "Thread has two arguments before the *search_criterion* argument(s); a " "*threading_algorithm*, and the searching *charset*. Note that unlike " @@ -752,7 +638,6 @@ msgid "" "specified threading algorithm." msgstr "" -#: ../../library/imaplib.rst:655 msgid "" "Execute command args with messages identified by UID, rather than message " "number. Returns response appropriate to command. At least one argument " @@ -760,11 +645,9 @@ msgid "" "an exception will be raised." msgstr "" -#: ../../library/imaplib.rst:663 msgid "Unsubscribe from old mailbox." msgstr "" -#: ../../library/imaplib.rst:667 msgid "" ":meth:`imaplib.IMAP4.unselect` frees server's resources associated with the " "selected mailbox and returns the server to the authenticated state. This " @@ -772,47 +655,38 @@ msgid "" "that no messages are permanently removed from the currently selected mailbox." msgstr "" -#: ../../library/imaplib.rst:677 msgid "" "Allow simple extension commands notified by server in ``CAPABILITY`` " "response." msgstr "" -#: ../../library/imaplib.rst:680 msgid "The following attributes are defined on instances of :class:`IMAP4`:" msgstr "" -#: ../../library/imaplib.rst:684 msgid "" "The most recent supported protocol in the ``CAPABILITY`` response from the " "server." msgstr "" -#: ../../library/imaplib.rst:690 msgid "" "Integer value to control debugging output. The initialize value is taken " "from the module variable ``Debug``. Values greater than three trace each " "command." msgstr "" -#: ../../library/imaplib.rst:696 msgid "" -"Boolean value that is normally ``False``, but is set to ``True`` if " -"an :meth:`enable` command is successfully issued for the ``UTF8=ACCEPT`` " -"capability." +"Boolean value that is normally ``False``, but is set to ``True`` if an :meth:" +"`enable` command is successfully issued for the ``UTF8=ACCEPT`` capability." msgstr "" -#: ../../library/imaplib.rst:706 msgid "IMAP4 Example" msgstr "" -#: ../../library/imaplib.rst:708 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" msgstr "" -#: ../../library/imaplib.rst:711 msgid "" "import getpass, imaplib\n" "\n" @@ -827,18 +701,14 @@ msgid "" "M.logout()" msgstr "" -#: ../../library/imaplib.rst:17 msgid "IMAP4" msgstr "" -#: ../../library/imaplib.rst:17 msgid "protocol" msgstr "" -#: ../../library/imaplib.rst:17 msgid "IMAP4_SSL" msgstr "" -#: ../../library/imaplib.rst:17 msgid "IMAP4_stream" msgstr "" diff --git a/library/imghdr.po b/library/imghdr.po index ee03803..ac4a486 100644 --- a/library/imghdr.po +++ b/library/imghdr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/imghdr.rst:2 msgid ":mod:`!imghdr` --- Determine the type of an image" msgstr "" -#: ../../library/imghdr.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/imghdr.rst:14 msgid "" -"Possible replacements are third-party libraries from " -"PyPI: :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-magic`. These " -"are not supported or maintained by the Python core team." +"Possible replacements are third-party libraries from PyPI: :pypi:" +"`filetype`, :pypi:`puremagic`, or :pypi:`python-magic`. These are not " +"supported or maintained by the Python core team." msgstr "" -#: ../../library/imghdr.rst:18 msgid "" "The last version of Python that provided the :mod:`!imghdr` module was " "`Python 3.12 `_." diff --git a/library/imp.po b/library/imp.po index 788bbfb..4067c4e 100644 --- a/library/imp.po +++ b/library/imp.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,24 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/imp.rst:2 msgid ":mod:`!imp` --- Access the import internals" msgstr "" -#: ../../library/imp.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.12 ` after being " -"deprecated in Python 3.4." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.12 ` after being deprecated in " +"Python 3.4." msgstr "" -#: ../../library/imp.rst:14 msgid "" "The :ref:`removal notice ` includes guidance for " "migrating code from :mod:`!imp` to :mod:`importlib`." msgstr "" -#: ../../library/imp.rst:17 msgid "" "The last version of Python that provided the :mod:`!imp` module was `Python " "3.11 `_." diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index 10a91b7..fe99fba 100644 --- a/library/importlib.metadata.po +++ b/library/importlib.metadata.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,19 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/importlib.metadata.rst:5 msgid ":mod:`!importlib.metadata` -- Accessing package metadata" msgstr "" -#: ../../library/importlib.metadata.rst:11 msgid "``importlib.metadata`` is no longer provisional." msgstr "" -#: ../../library/importlib.metadata.rst:14 msgid "**Source code:** :source:`Lib/importlib/metadata/__init__.py`" msgstr "" -#: ../../library/importlib.metadata.rst:16 msgid "" "``importlib.metadata`` is a library that provides access to the metadata of " "an installed `Distribution Package `_." msgstr "" -#: ../../library/importlib.metadata.rst:36 msgid "" "These are *not* necessarily equivalent to or correspond 1:1 with the top-" "level *import package* names that can be imported inside Python code. One " "*distribution package* can contain multiple *import packages* (and single " "modules), and one top-level *import package* may map to multiple " -"*distribution packages* if it is a namespace package. You can " -"use :ref:`packages_distributions() ` to get a mapping " -"between them." +"*distribution packages* if it is a namespace package. You can use :ref:" +"`packages_distributions() ` to get a mapping between " +"them." msgstr "" -#: ../../library/importlib.metadata.rst:47 msgid "" "By default, distribution metadata can live on the file system or in zip " "archives on :data:`sys.path`. Through an extension mechanism, the metadata " "can live almost anywhere." msgstr "" -#: ../../library/importlib.metadata.rst:55 msgid "https://importlib-metadata.readthedocs.io/" msgstr "" -#: ../../library/importlib.metadata.rst:56 msgid "" "The documentation for ``importlib_metadata``, which supplies a backport of " "``importlib.metadata``. This includes an `API reference `__ for this module's classes and " -"functions, as well as a `migration guide `__ for existing users of " +"functions, as well as a `migration guide `__ for existing users of " "``pkg_resources``." msgstr "" -#: ../../library/importlib.metadata.rst:67 msgid "Overview" msgstr "" -#: ../../library/importlib.metadata.rst:69 msgid "" "Let's say you wanted to get the version string for a `Distribution Package " ">> from importlib.metadata import version\n" @@ -117,19 +103,16 @@ msgid "" "'0.32.3'" msgstr "" -#: ../../library/importlib.metadata.rst:89 msgid "" "You can also get a collection of entry points selectable by properties of " "the EntryPoint (typically 'group' or 'name'), such as ``console_scripts``, " -"``distutils.commands`` and others. Each group contains a collection " -"of :ref:`EntryPoint ` objects." +"``distutils.commands`` and others. Each group contains a collection of :ref:" +"`EntryPoint ` objects." msgstr "" -#: ../../library/importlib.metadata.rst:93 msgid "You can get the :ref:`metadata for a distribution `::" msgstr "" -#: ../../library/importlib.metadata.rst:95 msgid "" ">>> list(metadata('wheel'))\n" "['Metadata-Version', 'Name', 'Version', 'Summary', 'Home-page', 'Author', " @@ -141,33 +124,27 @@ msgid "" "'Requires-Dist']" msgstr "" -#: ../../library/importlib.metadata.rst:98 msgid "" -"You can also get a :ref:`distribution's version number `, list " -"its :ref:`constituent files `, and get a list of the " -"distribution's :ref:`requirements`." +"You can also get a :ref:`distribution's version number `, list its :" +"ref:`constituent files `, and get a list of the distribution's :ref:" +"`requirements`." msgstr "" -#: ../../library/importlib.metadata.rst:105 msgid "" "Subclass of :class:`ModuleNotFoundError` raised by several functions in this " "module when queried for a distribution package which is not installed in the " "current Python environment." msgstr "" -#: ../../library/importlib.metadata.rst:111 msgid "Functional API" msgstr "" -#: ../../library/importlib.metadata.rst:113 msgid "This package provides the following functionality via its public API." msgstr "" -#: ../../library/importlib.metadata.rst:119 msgid "Entry points" msgstr "" -#: ../../library/importlib.metadata.rst:123 msgid "" "Returns a :class:`EntryPoints` instance describing entry points for the " "current environment. Any given keyword parameters are passed to the :meth:`!" @@ -175,108 +152,89 @@ msgid "" "point definitions." msgstr "" -#: ../../library/importlib.metadata.rst:128 msgid "" -"Note: it is not currently possible to query for entry points based on " -"their :attr:`!EntryPoint.dist` attribute (as different :class:`!" -"Distribution` instances do not currently compare equal, even if they have " -"the same attributes)" +"Note: it is not currently possible to query for entry points based on their :" +"attr:`!EntryPoint.dist` attribute (as different :class:`!Distribution` " +"instances do not currently compare equal, even if they have the same " +"attributes)" msgstr "" -#: ../../library/importlib.metadata.rst:134 msgid "Details of a collection of installed entry points." msgstr "" -#: ../../library/importlib.metadata.rst:136 msgid "" "Also provides a ``.groups`` attribute that reports all identified entry " "point groups, and a ``.names`` attribute that reports all identified entry " "point names." msgstr "" -#: ../../library/importlib.metadata.rst:142 msgid "Details of an installed entry point." msgstr "" -#: ../../library/importlib.metadata.rst:144 msgid "" "Each :class:`!EntryPoint` instance has ``.name``, ``.group``, and ``.value`` " -"attributes and a ``.load()`` method to resolve the value. There are also " -"``.module``, ``.attr``, and ``.extras`` attributes for getting the " -"components of the ``.value`` attribute, and ``.dist`` for obtaining " -"information regarding the distribution package that provides the entry point." +"attributes and a ``.load()`` method to resolve the value. There are also ``." +"module``, ``.attr``, and ``.extras`` attributes for getting the components " +"of the ``.value`` attribute, and ``.dist`` for obtaining information " +"regarding the distribution package that provides the entry point." msgstr "" -#: ../../library/importlib.metadata.rst:150 msgid "Query all entry points::" msgstr "" -#: ../../library/importlib.metadata.rst:152 msgid ">>> eps = entry_points()" msgstr "" -#: ../../library/importlib.metadata.rst:154 msgid "" "The :func:`!entry_points` function returns a :class:`!EntryPoints` object, a " "collection of all :class:`!EntryPoint` objects with ``names`` and ``groups`` " "attributes for convenience::" msgstr "" -#: ../../library/importlib.metadata.rst:158 msgid "" ">>> sorted(eps.groups)\n" "['console_scripts', 'distutils.commands', 'distutils.setup_keywords', " "'egg_info.writers', 'setuptools.installation']" msgstr "" -#: ../../library/importlib.metadata.rst:161 msgid "" ":class:`!EntryPoints` has a :meth:`!select` method to select entry points " "matching specific properties. Select entry points in the ``console_scripts`` " "group::" msgstr "" -#: ../../library/importlib.metadata.rst:165 msgid ">>> scripts = eps.select(group='console_scripts')" msgstr "" -#: ../../library/importlib.metadata.rst:167 msgid "" "Equivalently, since :func:`!entry_points` passes keyword arguments through " "to select::" msgstr "" -#: ../../library/importlib.metadata.rst:170 msgid ">>> scripts = entry_points(group='console_scripts')" msgstr "" -#: ../../library/importlib.metadata.rst:172 msgid "" "Pick out a specific script named \"wheel\" (found in the wheel project)::" msgstr "" -#: ../../library/importlib.metadata.rst:174 msgid "" ">>> 'wheel' in scripts.names\n" "True\n" ">>> wheel = scripts['wheel']" msgstr "" -#: ../../library/importlib.metadata.rst:178 msgid "Equivalently, query for that entry point during selection::" msgstr "" -#: ../../library/importlib.metadata.rst:180 msgid "" ">>> (wheel,) = entry_points(group='console_scripts', name='wheel')\n" ">>> (wheel,) = entry_points().select(group='console_scripts', name='wheel')" msgstr "" -#: ../../library/importlib.metadata.rst:183 msgid "Inspect the resolved entry point::" msgstr "" -#: ../../library/importlib.metadata.rst:185 msgid "" ">>> wheel\n" "EntryPoint(name='wheel', value='wheel.cli:main', group='console_scripts')\n" @@ -291,7 +249,6 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:197 msgid "" "The ``group`` and ``name`` are arbitrary values defined by the package " "author and usually a client will wish to resolve all entry points for a " @@ -300,164 +257,133 @@ msgid "" "their definition, and usage." msgstr "" -#: ../../library/importlib.metadata.rst:203 msgid "" "The \"selectable\" entry points were introduced in ``importlib_metadata`` " "3.6 and Python 3.10. Prior to those changes, ``entry_points`` accepted no " "parameters and always returned a dictionary of entry points, keyed by group. " "With ``importlib_metadata`` 5.0 and Python 3.12, ``entry_points`` always " -"returns an ``EntryPoints`` object. " -"See :pypi:`backports.entry_points_selectable` for compatibility options." +"returns an ``EntryPoints`` object. See :pypi:`backports." +"entry_points_selectable` for compatibility options." msgstr "" -#: ../../library/importlib.metadata.rst:212 msgid "" -"``EntryPoint`` objects no longer present a tuple-like interface " -"(:meth:`~object.__getitem__`)." +"``EntryPoint`` objects no longer present a tuple-like interface (:meth:" +"`~object.__getitem__`)." msgstr "" -#: ../../library/importlib.metadata.rst:219 msgid "Distribution metadata" msgstr "" -#: ../../library/importlib.metadata.rst:223 msgid "" "Return the distribution metadata corresponding to the named distribution " "package as a :class:`PackageMetadata` instance." msgstr "" -#: ../../library/importlib.metadata.rst:226 -#: ../../library/importlib.metadata.rst:275 -#: ../../library/importlib.metadata.rst:296 -#: ../../library/importlib.metadata.rst:359 -#: ../../library/importlib.metadata.rst:410 msgid "" "Raises :exc:`PackageNotFoundError` if the named distribution package is not " "installed in the current Python environment." msgstr "" -#: ../../library/importlib.metadata.rst:231 msgid "" "A concrete implementation of the `PackageMetadata protocol `_." +"importlib-metadata.readthedocs.io/en/latest/api.html#importlib_metadata." +"PackageMetadata>`_." msgstr "" -#: ../../library/importlib.metadata.rst:234 msgid "" "In addition to providing the defined protocol methods and attributes, " "subscripting the instance is equivalent to calling the :meth:`!get` method." msgstr "" -#: ../../library/importlib.metadata.rst:237 msgid "" "Every `Distribution Package `_ includes some metadata, which you can extract " "using the :func:`!metadata` function::" msgstr "" -#: ../../library/importlib.metadata.rst:240 msgid ">>> wheel_metadata = metadata('wheel')" msgstr "" -#: ../../library/importlib.metadata.rst:242 msgid "" "The keys of the returned data structure name the metadata keywords, and the " "values are returned unparsed from the distribution metadata::" msgstr "" -#: ../../library/importlib.metadata.rst:245 msgid "" ">>> wheel_metadata['Requires-Python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'" msgstr "" -#: ../../library/importlib.metadata.rst:248 msgid "" ":class:`PackageMetadata` also presents a :attr:`!json` attribute that " "returns all the metadata in a JSON-compatible form per :PEP:`566`::" msgstr "" -#: ../../library/importlib.metadata.rst:251 msgid "" ">>> wheel_metadata.json['requires_python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'" msgstr "" -#: ../../library/importlib.metadata.rst:254 -#: ../../library/importlib.metadata.rst:453 msgid "" "The full set of available metadata is not described here. See the PyPA `Core " "metadata specification `_ for additional details." msgstr "" -#: ../../library/importlib.metadata.rst:257 msgid "" "The ``Description`` is now included in the metadata when presented through " "the payload. Line continuation characters have been removed." msgstr "" -#: ../../library/importlib.metadata.rst:261 msgid "The ``json`` attribute was added." msgstr "" -#: ../../library/importlib.metadata.rst:267 msgid "Distribution versions" msgstr "" -#: ../../library/importlib.metadata.rst:271 msgid "" -"Return the installed distribution package `version `__ for " -"the named distribution package." +"Return the installed distribution package `version `__ for the named " +"distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:278 msgid "" "The :func:`!version` function is the quickest way to get a `Distribution " "Package `_'s version number, as a string::" msgstr "" -#: ../../library/importlib.metadata.rst:282 msgid "" ">>> version('wheel')\n" "'0.32.3'" msgstr "" -#: ../../library/importlib.metadata.rst:289 msgid "Distribution files" msgstr "" -#: ../../library/importlib.metadata.rst:293 msgid "" "Return the full set of files contained within the named distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:299 msgid "" "Returns :const:`None` if the distribution is found but the installation " "database records reporting the files associated with the distribution " "package are missing." msgstr "" -#: ../../library/importlib.metadata.rst:305 msgid "" "A :class:`pathlib.PurePath` derived object with additional ``dist``, " "``size``, and ``hash`` properties corresponding to the distribution " "package's installation metadata for that file." msgstr "" -#: ../../library/importlib.metadata.rst:309 msgid "" -"The :func:`!files` function takes a `Distribution Package `_ name " -"and returns all of the files installed by this distribution. Each file is " -"reported as a :class:`PackagePath` instance. For example::" +"The :func:`!files` function takes a `Distribution Package `_ name and returns " +"all of the files installed by this distribution. Each file is reported as a :" +"class:`PackagePath` instance. For example::" msgstr "" -#: ../../library/importlib.metadata.rst:314 msgid "" ">>> util = [p for p in files('wheel') if 'util.py' in str(p)][0]\n" ">>> util\n" @@ -470,11 +396,9 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:324 msgid "Once you have the file, you can also read its contents::" msgstr "" -#: ../../library/importlib.metadata.rst:326 msgid "" ">>> print(util.read_text())\n" "import base64\n" @@ -486,125 +410,105 @@ msgid "" " return s" msgstr "" -#: ../../library/importlib.metadata.rst:335 msgid "" "You can also use the :meth:`!locate` method to get the absolute path to the " "file::" msgstr "" -#: ../../library/importlib.metadata.rst:338 msgid "" ">>> util.locate()\n" "PosixPath('/home/gustav/example/lib/site-packages/wheel/util.py')" msgstr "" -#: ../../library/importlib.metadata.rst:341 msgid "" -"In the case where the metadata file listing files (``RECORD`` or " -"``SOURCES.txt``) is missing, :func:`!files` will return :const:`None`. The " -"caller may wish to wrap calls to :func:`!files` in `always_iterable `_ or otherwise guard against this " -"condition if the target distribution is not known to have the metadata " -"present." +"In the case where the metadata file listing files (``RECORD`` or ``SOURCES." +"txt``) is missing, :func:`!files` will return :const:`None`. The caller may " +"wish to wrap calls to :func:`!files` in `always_iterable `_ or otherwise guard against this condition if the target " +"distribution is not known to have the metadata present." msgstr "" -#: ../../library/importlib.metadata.rst:352 msgid "Distribution requirements" msgstr "" -#: ../../library/importlib.metadata.rst:356 msgid "" "Return the declared dependency specifiers for the named distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:362 msgid "" "To get the full set of requirements for a `Distribution Package `_, use " "the :func:`!requires` function::" msgstr "" -#: ../../library/importlib.metadata.rst:366 msgid "" ">>> requires('wheel')\n" "[\"pytest (>=3.0.0) ; extra == 'test'\", \"pytest-cov ; extra == 'test'\"]" msgstr "" -#: ../../library/importlib.metadata.rst:374 msgid "Mapping import to distribution packages" msgstr "" -#: ../../library/importlib.metadata.rst:378 msgid "" "Return a mapping from the top level module and import package names found " "via :data:`sys.meta_path` to the names of the distribution packages (if any) " "that provide the corresponding files." msgstr "" -#: ../../library/importlib.metadata.rst:382 msgid "" "To allow for namespace packages (which may have members provided by multiple " "distribution packages), each top level import name maps to a list of " "distribution names rather than mapping directly to a single name." msgstr "" -#: ../../library/importlib.metadata.rst:386 msgid "" -"A convenience method to resolve the `Distribution Package `_ name " -"(or names, in the case of a namespace package) that provide each importable " -"top-level Python module or `Import Package `_::" +"A convenience method to resolve the `Distribution Package `_ name (or names, " +"in the case of a namespace package) that provide each importable top-level " +"Python module or `Import Package `_::" msgstr "" -#: ../../library/importlib.metadata.rst:391 msgid "" ">>> packages_distributions()\n" "{'importlib_metadata': ['importlib-metadata'], 'yaml': ['PyYAML'], 'jaraco': " "['jaraco.classes', 'jaraco.functools'], ...}" msgstr "" -#: ../../library/importlib.metadata.rst:394 msgid "" "Some editable installs, `do not supply top-level names `_, and thus this function is not " "reliable with such installs." msgstr "" -#: ../../library/importlib.metadata.rst:403 msgid "Distributions" msgstr "" -#: ../../library/importlib.metadata.rst:407 msgid "" "Return a :class:`Distribution` instance describing the named distribution " "package." msgstr "" -#: ../../library/importlib.metadata.rst:415 msgid "Details of an installed distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:417 msgid "" "Note: different :class:`!Distribution` instances do not currently compare " "equal, even if they relate to the same installed distribution and " "accordingly have the same attributes." msgstr "" -#: ../../library/importlib.metadata.rst:421 msgid "" "While the module level API described above is the most common and convenient " "usage, you can get all of that information from the :class:`!Distribution` " "class. :class:`!Distribution` is an abstract object that represents the " "metadata for a Python `Distribution Package `_. You can get the " -"concrete :class:`!Distribution` subclass instance for an installed " -"distribution package by calling the :func:`distribution` function::" +"latest/glossary/#term-Distribution-Package>`_. You can get the concrete :" +"class:`!Distribution` subclass instance for an installed distribution " +"package by calling the :func:`distribution` function::" msgstr "" -#: ../../library/importlib.metadata.rst:428 msgid "" ">>> from importlib.metadata import distribution\n" ">>> dist = distribution('wheel')\n" @@ -612,25 +516,21 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:433 msgid "" "Thus, an alternative way to get the version number is through the :class:`!" "Distribution` instance::" msgstr "" -#: ../../library/importlib.metadata.rst:436 msgid "" ">>> dist.version\n" "'0.32.3'" msgstr "" -#: ../../library/importlib.metadata.rst:439 msgid "" "There are all kinds of additional metadata available on :class:`!" "Distribution` instances::" msgstr "" -#: ../../library/importlib.metadata.rst:442 msgid "" ">>> dist.metadata['Requires-Python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'\n" @@ -638,52 +538,42 @@ msgid "" "'MIT'" msgstr "" -#: ../../library/importlib.metadata.rst:447 msgid "" "For editable packages, an ``origin`` property may present :pep:`610` " "metadata::" msgstr "" -#: ../../library/importlib.metadata.rst:450 msgid "" ">>> dist.origin.url\n" "'file:///path/to/wheel-0.32.3.editable-py3-none-any.whl'" msgstr "" -#: ../../library/importlib.metadata.rst:456 msgid "The ``.origin`` property was added." msgstr "" -#: ../../library/importlib.metadata.rst:460 msgid "Distribution Discovery" msgstr "" -#: ../../library/importlib.metadata.rst:462 msgid "" "By default, this package provides built-in support for discovery of metadata " -"for file system and zip file `Distribution Package `_\\s. " -"This metadata finder search defaults to ``sys.path``, but varies slightly in " -"how it interprets those values from how other import machinery does. In " -"particular:" +"for file system and zip file `Distribution Package `_\\s. This metadata " +"finder search defaults to ``sys.path``, but varies slightly in how it " +"interprets those values from how other import machinery does. In particular:" msgstr "" -#: ../../library/importlib.metadata.rst:466 msgid "" "``importlib.metadata`` does not honor :class:`bytes` objects on ``sys.path``." msgstr "" -#: ../../library/importlib.metadata.rst:467 msgid "" "``importlib.metadata`` will incidentally honor :py:class:`pathlib.Path` " "objects on ``sys.path`` even though such values will be ignored for imports." msgstr "" -#: ../../library/importlib.metadata.rst:471 msgid "Implementing Custom Providers" msgstr "" -#: ../../library/importlib.metadata.rst:473 msgid "" "``importlib.metadata`` address two API surfaces, one for *consumers* and " "another for *providers*. Most users are consumers, consuming metadata " @@ -692,34 +582,30 @@ msgid "" "custom importer. Such a use case calls for a *custom provider*." msgstr "" -#: ../../library/importlib.metadata.rst:480 msgid "" "Because `Distribution Package `_ metadata is not available " -"through :data:`sys.path` searches, or package loaders directly, the metadata " -"for a distribution is found through import system :ref:`finders `_ metadata is not available through :" +"data:`sys.path` searches, or package loaders directly, the metadata for a " +"distribution is found through import system :ref:`finders `. To find a distribution package's metadata, ``importlib.metadata`` " -"queries the list of :term:`meta path finders ` " -"on :data:`sys.meta_path`." +"queries the list of :term:`meta path finders ` on :data:" +"`sys.meta_path`." msgstr "" -#: ../../library/importlib.metadata.rst:488 msgid "" "The implementation has hooks integrated into the ``PathFinder``, serving " "metadata for distribution packages found on the file system." msgstr "" -#: ../../library/importlib.metadata.rst:491 msgid "" "The abstract class :py:class:`importlib.abc.MetaPathFinder` defines the " -"interface expected of finders by Python's import system. " -"``importlib.metadata`` extends this protocol by looking for an optional " +"interface expected of finders by Python's import system. ``importlib." +"metadata`` extends this protocol by looking for an optional " "``find_distributions`` callable on the finders from :data:`sys.meta_path` " "and presents this extended interface as the ``DistributionFinder`` abstract " "base class, which defines this abstract method::" msgstr "" -#: ../../library/importlib.metadata.rst:499 msgid "" "@abc.abstractmethod\n" "def find_distributions(context=DistributionFinder.Context()) -> " @@ -729,14 +615,12 @@ msgid "" " \"\"\"" msgstr "" -#: ../../library/importlib.metadata.rst:505 msgid "" "The ``DistributionFinder.Context`` object provides ``.path`` and ``.name`` " "properties indicating the path to search and name to match and may supply " "other relevant context sought by the consumer." msgstr "" -#: ../../library/importlib.metadata.rst:509 msgid "" "In practice, to support finding distribution package metadata in locations " "other than the file system, subclass ``Distribution`` and implement the " @@ -744,15 +628,12 @@ msgid "" "derived ``Distribution`` in the ``find_distributions()`` method." msgstr "" -#: ../../library/importlib.metadata.rst:516 msgid "Example" msgstr "" -#: ../../library/importlib.metadata.rst:518 msgid "Imagine a custom finder that loads Python modules from a database::" msgstr "" -#: ../../library/importlib.metadata.rst:520 msgid "" "class DatabaseImporter(importlib.abc.MetaPathFinder):\n" " def __init__(self, db):\n" @@ -764,14 +645,12 @@ msgid "" "sys.meta_path.append(DatabaseImporter(connect_db(...)))" msgstr "" -#: ../../library/importlib.metadata.rst:529 msgid "" "That importer now presumably provides importable modules from a database, " "but it provides no metadata or entry points. For this custom importer to " "provide metadata, it would also need to implement ``DistributionFinder``::" msgstr "" -#: ../../library/importlib.metadata.rst:534 msgid "" "from importlib.metadata import DistributionFinder\n" "\n" @@ -784,7 +663,6 @@ msgid "" " yield DatabaseDistribution(dist_record)" msgstr "" -#: ../../library/importlib.metadata.rst:544 msgid "" "In this way, ``query_distributions`` would return records for each " "distribution served by the database matching the query. For example, if " @@ -793,7 +671,6 @@ msgid "" "``Context(name=None)``." msgstr "" -#: ../../library/importlib.metadata.rst:550 msgid "" "For the sake of simplicity, this example ignores ``context.path``\\. The " "``path`` attribute defaults to ``sys.path`` and is the set of import paths " @@ -806,11 +683,9 @@ msgid "" "``context.path`` and only yield ``Distribution``\\ s pertinent to that path." msgstr "" -#: ../../library/importlib.metadata.rst:561 msgid "``DatabaseDistribution``, then, would look something like::" msgstr "" -#: ../../library/importlib.metadata.rst:563 msgid "" "class DatabaseDistribution(importlib.metadata.Distribution):\n" " def __init__(self, record):\n" @@ -833,14 +708,12 @@ msgid "" " raise RuntimeError(\"This distribution has no file system\")" msgstr "" -#: ../../library/importlib.metadata.rst:583 msgid "" "This basic implementation should provide metadata and entry points for " "packages served by the ``DatabaseImporter``, assuming that the ``record`` " "supplies suitable ``.name``, ``.version``, and ``.entry_points`` attributes." msgstr "" -#: ../../library/importlib.metadata.rst:588 msgid "" "The ``DatabaseDistribution`` may also provide other metadata files, like " "``RECORD`` (required for ``Distribution.files``) or override the " diff --git a/library/importlib.po b/library/importlib.po index 8c9b09d..06738bf 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,23 +22,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/importlib.rst:2 msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" msgstr "" -#: ../../library/importlib.rst:12 msgid "**Source code:** :source:`Lib/importlib/__init__.py`" msgstr "" -#: ../../library/importlib.rst:18 msgid "Introduction" msgstr "Bevezetés" -#: ../../library/importlib.rst:20 msgid "The purpose of the :mod:`importlib` package is three-fold." msgstr "" -#: ../../library/importlib.rst:22 msgid "" "One is to provide the implementation of the :keyword:`import` statement (and " "thus, by extension, the :func:`__import__` function) in Python source code. " @@ -48,7 +43,6 @@ msgid "" "Python." msgstr "" -#: ../../library/importlib.rst:29 msgid "" "Two, the components to implement :keyword:`import` are exposed in this " "package, making it easier for users to create their own custom objects " @@ -56,171 +50,132 @@ msgid "" "process." msgstr "" -#: ../../library/importlib.rst:33 msgid "" "Three, the package contains modules exposing additional functionality for " "managing aspects of Python packages:" msgstr "" -#: ../../library/importlib.rst:36 msgid "" ":mod:`importlib.metadata` presents access to metadata from third-party " "distributions." msgstr "" -#: ../../library/importlib.rst:38 msgid "" ":mod:`importlib.resources` provides routines for accessing non-code " "\"resources\" from Python packages." msgstr "" -#: ../../library/importlib.rst:43 msgid ":ref:`import`" msgstr "" -#: ../../library/importlib.rst:44 msgid "The language reference for the :keyword:`import` statement." msgstr "" -#: ../../library/importlib.rst:46 msgid "" "`Packages specification `__" msgstr "" -#: ../../library/importlib.rst:47 msgid "" "Original specification of packages. Some semantics have changed since the " -"writing of this document (e.g. redirecting based on ``None`` " -"in :data:`sys.modules`)." +"writing of this document (e.g. redirecting based on ``None`` in :data:`sys." +"modules`)." msgstr "" -#: ../../library/importlib.rst:51 msgid "The :func:`.__import__` function" msgstr "" -#: ../../library/importlib.rst:52 msgid "The :keyword:`import` statement is syntactic sugar for this function." msgstr "" -#: ../../library/importlib.rst:54 msgid ":ref:`sys-path-init`" msgstr "" -#: ../../library/importlib.rst:55 msgid "The initialization of :data:`sys.path`." msgstr "" -#: ../../library/importlib.rst:57 msgid ":pep:`235`" msgstr "" -#: ../../library/importlib.rst:58 msgid "Import on Case-Insensitive Platforms" msgstr "" -#: ../../library/importlib.rst:60 msgid ":pep:`263`" msgstr "" -#: ../../library/importlib.rst:61 msgid "Defining Python Source Code Encodings" msgstr "" -#: ../../library/importlib.rst:63 msgid ":pep:`302`" msgstr "" -#: ../../library/importlib.rst:64 msgid "New Import Hooks" msgstr "" -#: ../../library/importlib.rst:66 msgid ":pep:`328`" msgstr "" -#: ../../library/importlib.rst:67 msgid "Imports: Multi-Line and Absolute/Relative" msgstr "" -#: ../../library/importlib.rst:69 msgid ":pep:`366`" msgstr "" -#: ../../library/importlib.rst:70 msgid "Main module explicit relative imports" msgstr "" -#: ../../library/importlib.rst:72 msgid ":pep:`420`" msgstr "" -#: ../../library/importlib.rst:73 msgid "Implicit namespace packages" msgstr "" -#: ../../library/importlib.rst:75 msgid ":pep:`451`" msgstr "" -#: ../../library/importlib.rst:76 msgid "A ModuleSpec Type for the Import System" msgstr "" -#: ../../library/importlib.rst:78 msgid ":pep:`488`" msgstr "" -#: ../../library/importlib.rst:79 msgid "Elimination of PYO files" msgstr "" -#: ../../library/importlib.rst:81 msgid ":pep:`489`" msgstr "" -#: ../../library/importlib.rst:82 msgid "Multi-phase extension module initialization" msgstr "" -#: ../../library/importlib.rst:84 msgid ":pep:`552`" msgstr "" -#: ../../library/importlib.rst:85 msgid "Deterministic pycs" msgstr "" -#: ../../library/importlib.rst:87 msgid ":pep:`3120`" msgstr "" -#: ../../library/importlib.rst:88 msgid "Using UTF-8 as the Default Source Encoding" msgstr "" -#: ../../library/importlib.rst:90 msgid ":pep:`3147`" msgstr "" -#: ../../library/importlib.rst:91 msgid "PYC Repository Directories" msgstr "" -#: ../../library/importlib.rst:95 msgid "Functions" msgstr "" -#: ../../library/importlib.rst:99 msgid "An implementation of the built-in :func:`__import__` function." msgstr "" -#: ../../library/importlib.rst:102 msgid "" "Programmatic importing of modules should use :func:`import_module` instead " "of this function." msgstr "" -#: ../../library/importlib.rst:107 msgid "" "Import a module. The *name* argument specifies what module to import in " "absolute or relative terms (e.g. either ``pkg.mod`` or ``..mod``). If the " @@ -230,17 +185,15 @@ msgid "" "``pkg.mod``)." msgstr "" -#: ../../library/importlib.rst:115 msgid "" -"The :func:`import_module` function acts as a simplifying wrapper " -"around :func:`importlib.__import__`. This means all semantics of the " -"function are derived from :func:`importlib.__import__`. The most important " -"difference between these two functions is that :func:`import_module` returns " -"the specified package or module (e.g. ``pkg.mod``), while :func:`__import__` " +"The :func:`import_module` function acts as a simplifying wrapper around :" +"func:`importlib.__import__`. This means all semantics of the function are " +"derived from :func:`importlib.__import__`. The most important difference " +"between these two functions is that :func:`import_module` returns the " +"specified package or module (e.g. ``pkg.mod``), while :func:`__import__` " "returns the top-level package or module (e.g. ``pkg``)." msgstr "" -#: ../../library/importlib.rst:122 msgid "" "If you are dynamically importing a module that was created since the " "interpreter began execution (e.g., created a Python source file), you may " @@ -248,11 +201,9 @@ msgid "" "noticed by the import system." msgstr "" -#: ../../library/importlib.rst:127 msgid "Parent packages are automatically imported." msgstr "" -#: ../../library/importlib.rst:132 msgid "" "Invalidate the internal caches of finders stored at :data:`sys.meta_path`. " "If a finder implements ``invalidate_caches()`` then it will be called to " @@ -261,13 +212,11 @@ msgid "" "will notice the new module's existence." msgstr "" -#: ../../library/importlib.rst:140 msgid "" "Namespace packages created/installed in a different :data:`sys.path` " "location after the same namespace was already imported are noticed." msgstr "" -#: ../../library/importlib.rst:146 msgid "" "Reload a previously imported *module*. The argument must be a module " "object, so it must have been successfully imported before. This is useful " @@ -277,11 +226,9 @@ msgid "" "causes a different object to be placed in :data:`sys.modules`)." msgstr "" -#: ../../library/importlib.rst:153 msgid "When :func:`reload` is executed:" msgstr "" -#: ../../library/importlib.rst:155 msgid "" "Python module's code is recompiled and the module-level code re-executed, " "defining a new set of objects which are bound to names in the module's " @@ -290,30 +237,25 @@ msgid "" "time." msgstr "" -#: ../../library/importlib.rst:161 msgid "" "As with all other objects in Python the old objects are only reclaimed after " "their reference counts drop to zero." msgstr "" -#: ../../library/importlib.rst:164 msgid "" "The names in the module namespace are updated to point to any new or changed " "objects." msgstr "" -#: ../../library/importlib.rst:167 msgid "" "Other references to the old objects (such as names external to the module) " "are not rebound to refer to the new objects and must be updated in each " "namespace where they occur if that is desired." msgstr "" -#: ../../library/importlib.rst:171 msgid "There are a number of other caveats:" msgstr "" -#: ../../library/importlib.rst:173 msgid "" "When a module is reloaded, its dictionary (containing the module's global " "variables) is retained. Redefinitions of names will override the old " @@ -325,7 +267,6 @@ msgid "" "if desired::" msgstr "" -#: ../../library/importlib.rst:182 msgid "" "try:\n" " cache\n" @@ -333,7 +274,6 @@ msgid "" " cache = {}" msgstr "" -#: ../../library/importlib.rst:187 msgid "" "It is generally not very useful to reload built-in or dynamically loaded " "modules. Reloading :mod:`sys`, :mod:`__main__`, :mod:`builtins` and other " @@ -342,16 +282,14 @@ msgid "" "when reloaded." msgstr "" -#: ../../library/importlib.rst:193 msgid "" -"If a module imports objects from another module " -"using :keyword:`from` ... :keyword:`import` ..., calling :func:`reload` for " -"the other module does not redefine the objects imported from it --- one way " -"around this is to re-execute the :keyword:`!from` statement, another is to " -"use :keyword:`!import` and qualified names (*module.name*) instead." +"If a module imports objects from another module using :keyword:`from` ... :" +"keyword:`import` ..., calling :func:`reload` for the other module does not " +"redefine the objects imported from it --- one way around this is to re-" +"execute the :keyword:`!from` statement, another is to use :keyword:`!import` " +"and qualified names (*module.name*) instead." msgstr "" -#: ../../library/importlib.rst:199 msgid "" "If a module instantiates instances of a class, reloading the module that " "defines the class does not affect the method definitions of the instances " @@ -359,40 +297,32 @@ msgid "" "derived classes." msgstr "" -#: ../../library/importlib.rst:205 msgid "" -":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks " -"a :class:`~importlib.machinery.ModuleSpec`." +":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks a :" +"class:`~importlib.machinery.ModuleSpec`." msgstr "" -#: ../../library/importlib.rst:210 msgid "" "This function is not thread-safe. Calling it from multiple threads can " -"result in unexpected behavior. It's recommended to use " -"the :class:`threading.Lock` or other synchronization primitives for thread-" -"safe module reloading." +"result in unexpected behavior. It's recommended to use the :class:`threading." +"Lock` or other synchronization primitives for thread-safe module reloading." msgstr "" -#: ../../library/importlib.rst:215 msgid ":mod:`importlib.abc` -- Abstract base classes related to import" msgstr "" -#: ../../library/importlib.rst:220 msgid "**Source code:** :source:`Lib/importlib/abc.py`" msgstr "" -#: ../../library/importlib.rst:225 msgid "" "The :mod:`importlib.abc` module contains all of the core abstract base " "classes used by :keyword:`import`. Some subclasses of the core abstract base " "classes are also provided to help in implementing the core ABCs." msgstr "" -#: ../../library/importlib.rst:229 msgid "ABC hierarchy::" msgstr "" -#: ../../library/importlib.rst:231 msgid "" "object\n" " +-- MetaPathFinder\n" @@ -405,15 +335,12 @@ msgid "" " +-- SourceLoader" msgstr "" -#: ../../library/importlib.rst:244 msgid "An abstract base class representing a :term:`meta path finder`." msgstr "" -#: ../../library/importlib.rst:248 ../../library/importlib.rst:284 msgid "No longer a subclass of :class:`!Finder`." msgstr "" -#: ../../library/importlib.rst:253 msgid "" "An abstract method for finding a :term:`spec ` for the " "specified module. If this is a top-level import, *path* will be ``None``. " @@ -425,92 +352,76 @@ msgid "" "for implementing concrete ``MetaPathFinders``." msgstr "" -#: ../../library/importlib.rst:267 msgid "" "An optional method which, when called, should invalidate any internal cache " "used by the finder. Used by :func:`importlib.invalidate_caches` when " "invalidating the caches of all finders on :data:`sys.meta_path`." msgstr "" -#: ../../library/importlib.rst:271 msgid "Returns ``None`` when called instead of :data:`NotImplemented`." msgstr "" -#: ../../library/importlib.rst:277 msgid "" "An abstract base class representing a :term:`path entry finder`. Though it " "bears some similarities to :class:`MetaPathFinder`, ``PathEntryFinder`` is " -"meant for use only within the path-based import subsystem provided " -"by :class:`importlib.machinery.PathFinder`." +"meant for use only within the path-based import subsystem provided by :class:" +"`importlib.machinery.PathFinder`." msgstr "" -#: ../../library/importlib.rst:289 msgid "" "An abstract method for finding a :term:`spec ` for the " -"specified module. The finder will search for the module only within " -"the :term:`path entry` to which it is assigned. If a spec cannot be found, " +"specified module. The finder will search for the module only within the :" +"term:`path entry` to which it is assigned. If a spec cannot be found, " "``None`` is returned. When passed in, ``target`` is a module object that " -"the finder may use to make a more educated guess about what spec to " -"return. :func:`importlib.util.spec_from_loader` may be useful for " -"implementing concrete ``PathEntryFinders``." +"the finder may use to make a more educated guess about what spec to return. :" +"func:`importlib.util.spec_from_loader` may be useful for implementing " +"concrete ``PathEntryFinders``." msgstr "" -#: ../../library/importlib.rst:301 msgid "" "An optional method which, when called, should invalidate any internal cache " -"used by the finder. Used " -"by :meth:`importlib.machinery.PathFinder.invalidate_caches` when " -"invalidating the caches of all cached finders." +"used by the finder. Used by :meth:`importlib.machinery.PathFinder." +"invalidate_caches` when invalidating the caches of all cached finders." msgstr "" -#: ../../library/importlib.rst:309 msgid "" "An abstract base class for a :term:`loader`. See :pep:`302` for the exact " "definition for a loader." msgstr "" -#: ../../library/importlib.rst:312 msgid "" -"Loaders that wish to support resource reading should implement " -"a :meth:`get_resource_reader` method as specified " -"by :class:`importlib.resources.abc.ResourceReader`." +"Loaders that wish to support resource reading should implement a :meth:" +"`get_resource_reader` method as specified by :class:`importlib.resources.abc." +"ResourceReader`." msgstr "" -#: ../../library/importlib.rst:316 msgid "Introduced the optional :meth:`get_resource_reader` method." msgstr "" -#: ../../library/importlib.rst:321 msgid "" "A method that returns the module object to use when importing a module. " "This method may return ``None``, indicating that default module creation " "semantics should take place." msgstr "" -#: ../../library/importlib.rst:327 msgid "This method is no longer optional when :meth:`exec_module` is defined." msgstr "" -#: ../../library/importlib.rst:333 msgid "" "An abstract method that executes the module in its own namespace when a " "module is imported or reloaded. The module should already be initialized " -"when :meth:`exec_module` is called. When this method " -"exists, :meth:`create_module` must be defined." +"when :meth:`exec_module` is called. When this method exists, :meth:" +"`create_module` must be defined." msgstr "" -#: ../../library/importlib.rst:340 msgid ":meth:`create_module` must also be defined." msgstr "" -#: ../../library/importlib.rst:345 msgid "" -"A legacy method for loading a module. If the module cannot be " -"loaded, :exc:`ImportError` is raised, otherwise the loaded module is " -"returned." +"A legacy method for loading a module. If the module cannot be loaded, :exc:" +"`ImportError` is raised, otherwise the loaded module is returned." msgstr "" -#: ../../library/importlib.rst:349 msgid "" "If the requested module already exists in :data:`sys.modules`, that module " "should be used and reloaded. Otherwise the loader should create a new module " @@ -521,113 +432,92 @@ msgid "" "left alone." msgstr "" -#: ../../library/importlib.rst:358 msgid "" "The loader should set several attributes on the module (note that some of " "these attributes can change when a module is reloaded):" msgstr "" -#: ../../library/importlib.rst:362 msgid ":attr:`module.__name__`" msgstr "" -#: ../../library/importlib.rst:363 msgid ":attr:`module.__file__`" msgstr "" -#: ../../library/importlib.rst:364 msgid ":attr:`module.__cached__` *(deprecated)*" msgstr "" -#: ../../library/importlib.rst:365 msgid ":attr:`module.__path__`" msgstr "" -#: ../../library/importlib.rst:366 msgid ":attr:`module.__package__` *(deprecated)*" msgstr "" -#: ../../library/importlib.rst:367 msgid ":attr:`module.__loader__` *(deprecated)*" msgstr "" -#: ../../library/importlib.rst:369 msgid "" "When :meth:`exec_module` is available then backwards-compatible " "functionality is provided." msgstr "" -#: ../../library/importlib.rst:372 msgid "" "Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " "Functionality provided when :meth:`exec_module` is available." msgstr "" -#: ../../library/importlib.rst:377 msgid "" -"The recommended API for loading a module is :meth:`exec_module` " -"(and :meth:`create_module`). Loaders should implement it instead " -"of :meth:`load_module`. The import machinery takes care of all the other " +"The recommended API for loading a module is :meth:`exec_module` (and :meth:" +"`create_module`). Loaders should implement it instead of :meth:" +"`load_module`. The import machinery takes care of all the other " "responsibilities of :meth:`load_module` when :meth:`exec_module` is " "implemented." msgstr "" -#: ../../library/importlib.rst:387 ../../library/importlib.rst:640 msgid "*Superseded by TraversableResources*" msgstr "" -#: ../../library/importlib.rst:389 msgid "" -"An abstract base class for a :term:`loader` which implements the " -"optional :pep:`302` protocol for loading arbitrary resources from the " -"storage back-end." +"An abstract base class for a :term:`loader` which implements the optional :" +"pep:`302` protocol for loading arbitrary resources from the storage back-end." msgstr "" -#: ../../library/importlib.rst:393 msgid "" -"This ABC is deprecated in favour of supporting resource loading " -"through :class:`importlib.resources.abc.TraversableResources`." +"This ABC is deprecated in favour of supporting resource loading through :" +"class:`importlib.resources.abc.TraversableResources`. This class exists for " +"backwards compatibility only with other ABCs in this module." msgstr "" -#: ../../library/importlib.rst:400 msgid "" "An abstract method to return the bytes for the data located at *path*. " "Loaders that have a file-like storage back-end that allows storing arbitrary " "data can implement this abstract method to give direct access to the data " "stored. :exc:`OSError` is to be raised if the *path* cannot be found. The " -"*path* is expected to be constructed using a " -"module's :attr:`~module.__file__` attribute or an item from a " -"package's :attr:`~module.__path__`." +"*path* is expected to be constructed using a module's :attr:`~module." +"__file__` attribute or an item from a package's :attr:`~module.__path__`." msgstr "" -#: ../../library/importlib.rst:409 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: ../../library/importlib.rst:415 msgid "" -"An abstract base class for a :term:`loader` which implements the " -"optional :pep:`302` protocol for loaders that inspect modules." +"An abstract base class for a :term:`loader` which implements the optional :" +"pep:`302` protocol for loaders that inspect modules." msgstr "" -#: ../../library/importlib.rst:420 msgid "" "Return the code object for a module, or ``None`` if the module does not have " "a code object (as would be the case, for example, for a built-in module). " "Raise an :exc:`ImportError` if loader cannot find the requested module." msgstr "" -#: ../../library/importlib.rst:426 msgid "" "While the method has a default implementation, it is suggested that it be " "overridden if possible for performance." msgstr "" -#: ../../library/importlib.rst:432 msgid "No longer abstract and a concrete implementation is provided." msgstr "" -#: ../../library/importlib.rst:438 msgid "" "An abstract method to return the source of a module. It is returned as a " "text string using :term:`universal newlines`, translating all recognized " @@ -636,234 +526,189 @@ msgid "" "cannot find the module specified." msgstr "" -#: ../../library/importlib.rst:444 ../../library/importlib.rst:453 -#: ../../library/importlib.rst:504 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." msgstr "" -#: ../../library/importlib.rst:449 msgid "" "An optional method to return a true value if the module is a package, a " "false value otherwise. :exc:`ImportError` is raised if the :term:`loader` " "cannot find the module." msgstr "" -#: ../../library/importlib.rst:458 msgid "Create a code object from Python source." msgstr "" -#: ../../library/importlib.rst:460 msgid "" -"The *data* argument can be whatever the :func:`compile` function supports " -"(i.e. string or bytes). The *path* argument should be the \"path\" to where " -"the source code originated from, which can be an abstract concept (e.g. " -"location in a zip file)." +"The *data* argument can be whatever the :func:`compile` function supports (i." +"e. string or bytes). The *path* argument should be the \"path\" to where the " +"source code originated from, which can be an abstract concept (e.g. location " +"in a zip file)." msgstr "" -#: ../../library/importlib.rst:465 msgid "" "With the subsequent code object one can execute it in a module by running " "``exec(code, module.__dict__)``." msgstr "" -#: ../../library/importlib.rst:470 msgid "Made the method static." msgstr "" -#: ../../library/importlib.rst:475 msgid "Implementation of :meth:`Loader.exec_module`." msgstr "" -#: ../../library/importlib.rst:481 msgid "Implementation of :meth:`Loader.load_module`." msgstr "" -#: ../../library/importlib.rst:483 msgid "use :meth:`exec_module` instead." msgstr "" -#: ../../library/importlib.rst:489 msgid "" "An abstract base class which inherits from :class:`InspectLoader` that, when " "implemented, helps a module to be executed as a script. The ABC represents " "an optional :pep:`302` protocol." msgstr "" -#: ../../library/importlib.rst:496 msgid "" "An abstract method that is to return the value of :attr:`~module.__file__` " "for the specified module. If no path is available, :exc:`ImportError` is " "raised." msgstr "" -#: ../../library/importlib.rst:500 msgid "" "If source code is available, then the method should return the path to the " "source file, regardless of whether a bytecode was used to load the module." msgstr "" -#: ../../library/importlib.rst:510 msgid "" -"An abstract base class which inherits from :class:`ResourceLoader` " -"and :class:`ExecutionLoader`, providing concrete implementations " -"of :meth:`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`." +"An abstract base class which inherits from :class:`ResourceLoader` and :" +"class:`ExecutionLoader`, providing concrete implementations of :meth:" +"`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`." msgstr "" -#: ../../library/importlib.rst:514 msgid "" "The *fullname* argument is a fully resolved name of the module the loader is " "to handle. The *path* argument is the path to the file for the module." msgstr "" -#: ../../library/importlib.rst:521 msgid "The name of the module the loader can handle." msgstr "" -#: ../../library/importlib.rst:525 msgid "Path to the file of the module." msgstr "" -#: ../../library/importlib.rst:529 msgid "Calls super's ``load_module()``." msgstr "" -#: ../../library/importlib.rst:531 msgid "Use :meth:`Loader.exec_module` instead." msgstr "" -#: ../../library/importlib.rst:537 ../../library/importlib.rst:1144 msgid "Returns :attr:`path`." msgstr "" -#: ../../library/importlib.rst:542 msgid "Reads *path* as a binary file and returns the bytes from it." msgstr "" -#: ../../library/importlib.rst:547 msgid "" "An abstract base class for implementing source (and optionally bytecode) " -"file loading. The class inherits from both :class:`ResourceLoader` " -"and :class:`ExecutionLoader`, requiring the implementation of:" +"file loading. The class inherits from both :class:`ResourceLoader` and :" +"class:`ExecutionLoader`, requiring the implementation of:" msgstr "" -#: ../../library/importlib.rst:551 msgid ":meth:`ResourceLoader.get_data`" msgstr "" -#: ../../library/importlib.rst:552 msgid ":meth:`ExecutionLoader.get_filename`" msgstr "" -#: ../../library/importlib.rst:553 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." msgstr "" -#: ../../library/importlib.rst:556 msgid "" "The abstract methods defined by this class are to add optional bytecode file " -"support. Not implementing these optional methods (or causing them to " -"raise :exc:`NotImplementedError`) causes the loader to only work with source " -"code. Implementing the methods allows the loader to work with source *and* " +"support. Not implementing these optional methods (or causing them to raise :" +"exc:`NotImplementedError`) causes the loader to only work with source code. " +"Implementing the methods allows the loader to work with source *and* " "bytecode files; it does not allow for *sourceless* loading where only " "bytecode is provided. Bytecode files are an optimization to speed up " "loading by removing the parsing step of Python's compiler, and so no " "bytecode-specific API is exposed." msgstr "" -#: ../../library/importlib.rst:567 msgid "" "Optional abstract method which returns a :class:`dict` containing metadata " "about the specified path. Supported dictionary keys are:" msgstr "" -#: ../../library/importlib.rst:570 msgid "" "``'mtime'`` (mandatory): an integer or floating-point number representing " "the modification time of the source code;" msgstr "" -#: ../../library/importlib.rst:572 msgid "``'size'`` (optional): the size in bytes of the source code." msgstr "" -#: ../../library/importlib.rst:574 msgid "" "Any other keys in the dictionary are ignored, to allow for future " "extensions. If the path cannot be handled, :exc:`OSError` is raised." msgstr "" -#: ../../library/importlib.rst:579 ../../library/importlib.rst:592 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: ../../library/importlib.rst:584 msgid "" "Optional abstract method which returns the modification time for the " "specified path." msgstr "" -#: ../../library/importlib.rst:587 msgid "" "This method is deprecated in favour of :meth:`path_stats`. You don't have " "to implement it, but it is still available for compatibility purposes. " "Raise :exc:`OSError` if the path cannot be handled." msgstr "" -#: ../../library/importlib.rst:597 msgid "" "Optional abstract method which writes the specified bytes to a file path. " "Any intermediate directories which do not exist are to be created " "automatically." msgstr "" -#: ../../library/importlib.rst:601 msgid "" -"When writing to the path fails because the path is read-only " -"(:const:`errno.EACCES`/:exc:`PermissionError`), do not propagate the " -"exception." +"When writing to the path fails because the path is read-only (:const:`errno." +"EACCES`/:exc:`PermissionError`), do not propagate the exception." msgstr "" -#: ../../library/importlib.rst:605 msgid "No longer raises :exc:`NotImplementedError` when called." msgstr "" -#: ../../library/importlib.rst:610 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." msgstr "" -#: ../../library/importlib.rst:614 msgid "Concrete implementation of :meth:`Loader.exec_module`." msgstr "" -#: ../../library/importlib.rst:620 msgid "Concrete implementation of :meth:`Loader.load_module`." msgstr "" -#: ../../library/importlib.rst:622 msgid "Use :meth:`exec_module` instead." msgstr "" -#: ../../library/importlib.rst:627 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." msgstr "" -#: ../../library/importlib.rst:631 msgid "" "Concrete implementation of :meth:`InspectLoader.is_package`. A module is " -"determined to be a package if its file path (as provided " -"by :meth:`ExecutionLoader.get_filename`) is a file named ``__init__`` when " -"the file extension is removed **and** the module name itself does not end in " +"determined to be a package if its file path (as provided by :meth:" +"`ExecutionLoader.get_filename`) is a file named ``__init__`` when the file " +"extension is removed **and** the module name itself does not end in " "``__init__``." msgstr "" -#: ../../library/importlib.rst:642 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" -#: ../../library/importlib.rst:645 msgid "" "From the perspective of this ABC, a *resource* is a binary artifact that is " "shipped within a package. Typically this is something like a data file that " @@ -873,11 +718,10 @@ msgid "" "file versus on the file system." msgstr "" -#: ../../library/importlib.rst:653 msgid "" -"For any of methods of this class, a *resource* argument is expected to be " -"a :term:`path-like object` which represents conceptually just a file name. " -"This means that no subdirectory paths should be included in the *resource* " +"For any of methods of this class, a *resource* argument is expected to be a :" +"term:`path-like object` which represents conceptually just a file name. This " +"means that no subdirectory paths should be included in the *resource* " "argument. This is because the location of the package the reader is for, " "acts as the \"directory\". Hence the metaphor for directories and file names " "is packages and resources, respectively. This is also why instances of this " @@ -885,7 +729,6 @@ msgid "" "potentially representing multiple packages or a module)." msgstr "" -#: ../../library/importlib.rst:664 msgid "" "Loaders that wish to support resource reading are expected to provide a " "method called ``get_resource_reader(fullname)`` which returns an object " @@ -894,45 +737,37 @@ msgid "" "with this ABC should only be returned when the specified module is a package." msgstr "" -#: ../../library/importlib.rst:673 ../../library/importlib.rst:793 msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." msgstr "" -#: ../../library/importlib.rst:679 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" -#: ../../library/importlib.rst:682 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" -#: ../../library/importlib.rst:688 msgid "Returns the file system path to the *resource*." msgstr "" -#: ../../library/importlib.rst:690 msgid "" -"If the resource does not concretely exist on the file system, " -"raise :exc:`FileNotFoundError`." +"If the resource does not concretely exist on the file system, raise :exc:" +"`FileNotFoundError`." msgstr "" -#: ../../library/importlib.rst:696 msgid "" -"Returns ``True`` if the named *name* is considered a " -"resource. :exc:`FileNotFoundError` is raised if *name* does not exist." +"Returns ``True`` if the named *name* is considered a resource. :exc:" +"`FileNotFoundError` is raised if *name* does not exist." msgstr "" -#: ../../library/importlib.rst:702 msgid "" "Returns an :term:`iterable` of strings over the contents of the package. Do " "note that it is not required that all names returned by the iterator be " -"actual resources, e.g. it is acceptable to return names for " -"which :meth:`is_resource` would be false." +"actual resources, e.g. it is acceptable to return names for which :meth:" +"`is_resource` would be false." msgstr "" -#: ../../library/importlib.rst:708 msgid "" "Allowing non-resource names to be returned is to allow for situations where " "how a package and its resources are stored are known a priori and the non-" @@ -941,258 +776,209 @@ msgid "" "stored on the file system then those subdirectory names can be used directly." msgstr "" -#: ../../library/importlib.rst:716 msgid "The abstract method returns an iterable of no items." msgstr "" -#: ../../library/importlib.rst:721 msgid "" "An object with a subset of :class:`pathlib.Path` methods suitable for " "traversing directories and opening files." msgstr "" -#: ../../library/importlib.rst:724 msgid "" -"For a representation of the object on the file-system, " -"use :meth:`importlib.resources.as_file`." +"For a representation of the object on the file-system, use :meth:`importlib." +"resources.as_file`." msgstr "" -#: ../../library/importlib.rst:729 msgid "Use :class:`importlib.resources.abc.Traversable` instead." msgstr "" -#: ../../library/importlib.rst:734 msgid "Abstract. The base name of this object without any parent references." msgstr "" -#: ../../library/importlib.rst:739 msgid "Yield ``Traversable`` objects in ``self``." msgstr "" -#: ../../library/importlib.rst:744 msgid "Return ``True`` if ``self`` is a directory." msgstr "" -#: ../../library/importlib.rst:749 msgid "Return ``True`` if ``self`` is a file." msgstr "" -#: ../../library/importlib.rst:754 msgid "Return Traversable child in ``self``." msgstr "" -#: ../../library/importlib.rst:759 msgid "Return ``Traversable`` child in ``self``." msgstr "" -#: ../../library/importlib.rst:764 msgid "" "*mode* may be 'r' or 'rb' to open as text or binary. Return a handle " "suitable for reading (same as :attr:`pathlib.Path.open`)." msgstr "" -#: ../../library/importlib.rst:767 msgid "" -"When opening as text, accepts encoding parameters such as those accepted " -"by :class:`io.TextIOWrapper`." +"When opening as text, accepts encoding parameters such as those accepted by :" +"class:`io.TextIOWrapper`." msgstr "" -#: ../../library/importlib.rst:772 msgid "Read contents of ``self`` as bytes." msgstr "" -#: ../../library/importlib.rst:776 msgid "Read contents of ``self`` as text." msgstr "" -#: ../../library/importlib.rst:781 msgid "" -"An abstract base class for resource readers capable of serving " -"the :meth:`importlib.resources.files` interface. " -"Subclasses :class:`importlib.resources.abc.ResourceReader` and provides " -"concrete implementations of " -"the :class:`importlib.resources.abc.ResourceReader`'s abstract methods. " +"An abstract base class for resource readers capable of serving the :meth:" +"`importlib.resources.files` interface. Subclasses :class:`importlib." +"resources.abc.ResourceReader` and provides concrete implementations of the :" +"class:`importlib.resources.abc.ResourceReader`'s abstract methods. " "Therefore, any loader supplying :class:`importlib.abc.TraversableResources` " "also supplies ResourceReader." msgstr "" -#: ../../library/importlib.rst:788 msgid "" "Loaders that wish to support resource reading are expected to implement this " "interface." msgstr "" -#: ../../library/importlib.rst:799 msgid "" "Returns a :class:`importlib.resources.abc.Traversable` object for the loaded " "package." msgstr "" -#: ../../library/importlib.rst:805 msgid ":mod:`importlib.machinery` -- Importers and path hooks" msgstr "" -#: ../../library/importlib.rst:810 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" msgstr "" -#: ../../library/importlib.rst:814 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." msgstr "" -#: ../../library/importlib.rst:819 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." msgstr "" -#: ../../library/importlib.rst:826 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." msgstr "" -#: ../../library/importlib.rst:831 ../../library/importlib.rst:841 msgid "Use :const:`BYTECODE_SUFFIXES` instead." msgstr "" -#: ../../library/importlib.rst:836 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." msgstr "" -#: ../../library/importlib.rst:846 msgid "" "A list of strings representing the recognized file suffixes for bytecode " "modules (including the leading dot)." msgstr "" -#: ../../library/importlib.rst:851 msgid "The value is no longer dependent on ``__debug__``." msgstr "" -#: ../../library/importlib.rst:856 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." msgstr "" -#: ../../library/importlib.rst:863 msgid "" "Returns a combined list of strings representing all file suffixes for " "modules recognized by the standard import machinery. This is a helper for " "code which simply needs to know if a filesystem path potentially refers to a " -"module without needing any details on the kind of module (for " -"example, :func:`inspect.getmodulename`)." +"module without needing any details on the kind of module (for example, :func:" +"`inspect.getmodulename`)." msgstr "" -#: ../../library/importlib.rst:874 msgid "" "An :term:`importer` for built-in modules. All known built-in modules are " -"listed in :data:`sys.builtin_module_names`. This class implements " -"the :class:`importlib.abc.MetaPathFinder` " -"and :class:`importlib.abc.InspectLoader` ABCs." +"listed in :data:`sys.builtin_module_names`. This class implements the :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" -#: ../../library/importlib.rst:879 ../../library/importlib.rst:893 -#: ../../library/importlib.rst:906 ../../library/importlib.rst:921 msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." msgstr "" -#: ../../library/importlib.rst:882 msgid "" -"As part of :pep:`489`, the builtin importer now " -"implements :meth:`Loader.create_module` and :meth:`Loader.exec_module`" +"As part of :pep:`489`, the builtin importer now implements :meth:`Loader." +"create_module` and :meth:`Loader.exec_module`" msgstr "" -#: ../../library/importlib.rst:889 msgid "" -"An :term:`importer` for frozen modules. This class implements " -"the :class:`importlib.abc.MetaPathFinder` " -"and :class:`importlib.abc.InspectLoader` ABCs." +"An :term:`importer` for frozen modules. This class implements the :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" -#: ../../library/importlib.rst:896 msgid "" "Gained :meth:`~Loader.create_module` and :meth:`~Loader.exec_module` methods." msgstr "" -#: ../../library/importlib.rst:903 msgid "" ":term:`Finder ` for modules declared in the Windows registry. This " "class implements the :class:`importlib.abc.MetaPathFinder` ABC." msgstr "" -#: ../../library/importlib.rst:911 msgid "" "Use :mod:`site` configuration instead. Future versions of Python may not " "enable this finder by default." msgstr "" -#: ../../library/importlib.rst:918 msgid "" "A :term:`Finder ` for :data:`sys.path` and package ``__path__`` " "attributes. This class implements the :class:`importlib.abc.MetaPathFinder` " "ABC." msgstr "" -#: ../../library/importlib.rst:926 msgid "" "Class method that attempts to find a :term:`spec ` for the " "module specified by *fullname* on :data:`sys.path` or, if defined, on " -"*path*. For each path entry that is " -"searched, :data:`sys.path_importer_cache` is checked. If a non-false object " -"is found then it is used as the :term:`path entry finder` to look for the " -"module being searched for. If no entry is found " -"in :data:`sys.path_importer_cache`, then :data:`sys.path_hooks` is searched " -"for a finder for the path entry and, if found, is stored " -"in :data:`sys.path_importer_cache` along with being queried about the " -"module. If no finder is ever found then ``None`` is both stored in the cache " -"and returned." +"*path*. For each path entry that is searched, :data:`sys." +"path_importer_cache` is checked. If a non-false object is found then it is " +"used as the :term:`path entry finder` to look for the module being searched " +"for. If no entry is found in :data:`sys.path_importer_cache`, then :data:" +"`sys.path_hooks` is searched for a finder for the path entry and, if found, " +"is stored in :data:`sys.path_importer_cache` along with being queried about " +"the module. If no finder is ever found then ``None`` is both stored in the " +"cache and returned." msgstr "" -#: ../../library/importlib.rst:940 msgid "" "If the current working directory -- represented by an empty string -- is no " -"longer valid then ``None`` is returned but no value is cached " -"in :data:`sys.path_importer_cache`." +"longer valid then ``None`` is returned but no value is cached in :data:`sys." +"path_importer_cache`." msgstr "" -#: ../../library/importlib.rst:947 msgid "" "Calls :meth:`importlib.abc.PathEntryFinder.invalidate_caches` on all finders " "stored in :data:`sys.path_importer_cache` that define the method. Otherwise " "entries in :data:`sys.path_importer_cache` set to ``None`` are deleted." msgstr "" -#: ../../library/importlib.rst:952 msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." msgstr "" -#: ../../library/importlib.rst:955 msgid "" "Calls objects in :data:`sys.path_hooks` with the current working directory " "for ``''`` (i.e. the empty string)." msgstr "" -#: ../../library/importlib.rst:962 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." msgstr "" -#: ../../library/importlib.rst:965 msgid "" "The *path* argument is the directory for which the finder is in charge of " "searching." msgstr "" -#: ../../library/importlib.rst:968 msgid "" "The *loader_details* argument is a variable number of 2-item tuples each " "containing a loader and a sequence of file suffixes the loader recognizes. " @@ -1200,7 +986,6 @@ msgid "" "module's name and the path to the file found." msgstr "" -#: ../../library/importlib.rst:973 msgid "" "The finder will cache the directory contents as necessary, making stat calls " "for each module search to verify the cache is not outdated. Because cache " @@ -1213,166 +998,133 @@ msgid "" "to call :func:`importlib.invalidate_caches`." msgstr "" -#: ../../library/importlib.rst:987 msgid "The path the finder will search in." msgstr "" -#: ../../library/importlib.rst:991 msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." msgstr "" -#: ../../library/importlib.rst:997 msgid "Clear out the internal cache." msgstr "" -#: ../../library/importlib.rst:1001 msgid "" "A class method which returns a closure for use on :data:`sys.path_hooks`. An " "instance of :class:`FileFinder` is returned by the closure using the path " "argument given to the closure directly and *loader_details* indirectly." msgstr "" -#: ../../library/importlib.rst:1006 msgid "" -"If the argument to the closure is not an existing " -"directory, :exc:`ImportError` is raised." +"If the argument to the closure is not an existing directory, :exc:" +"`ImportError` is raised." msgstr "" -#: ../../library/importlib.rst:1012 msgid "" "A concrete implementation of :class:`importlib.abc.SourceLoader` by " "subclassing :class:`importlib.abc.FileLoader` and providing some concrete " "implementations of other methods." msgstr "" -#: ../../library/importlib.rst:1020 msgid "The name of the module that this loader will handle." msgstr "" -#: ../../library/importlib.rst:1024 msgid "The path to the source file." msgstr "" -#: ../../library/importlib.rst:1028 msgid "Return ``True`` if :attr:`path` appears to be for a package." msgstr "" -#: ../../library/importlib.rst:1032 msgid "" "Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." msgstr "" -#: ../../library/importlib.rst:1036 msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." msgstr "" -#: ../../library/importlib.rst:1040 ../../library/importlib.rst:1083 msgid "" "Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " "specifying the name of the module to load is optional." msgstr "" -#: ../../library/importlib.rst:1045 ../../library/importlib.rst:1088 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." msgstr "" -#: ../../library/importlib.rst:1050 msgid "" "A concrete implementation of :class:`importlib.abc.FileLoader` which can " "import bytecode files (i.e. no source code files exist)." msgstr "" -#: ../../library/importlib.rst:1053 msgid "" "Please note that direct use of bytecode files (and thus not source code " "files) inhibits your modules from being usable by all Python implementations " "or new versions of Python which change the bytecode format." msgstr "" -#: ../../library/importlib.rst:1062 msgid "The name of the module the loader will handle." msgstr "" -#: ../../library/importlib.rst:1066 msgid "The path to the bytecode file." msgstr "" -#: ../../library/importlib.rst:1070 msgid "Determines if the module is a package based on :attr:`path`." msgstr "" -#: ../../library/importlib.rst:1074 msgid "Returns the code object for :attr:`name` created from :attr:`path`." msgstr "" -#: ../../library/importlib.rst:1078 msgid "" "Returns ``None`` as bytecode files have no source when this loader is used." msgstr "" -#: ../../library/importlib.rst:1093 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." msgstr "" -#: ../../library/importlib.rst:1096 msgid "" "The *fullname* argument specifies the name of the module the loader is to " "support. The *path* argument is the path to the extension module's file." msgstr "" -#: ../../library/importlib.rst:1099 msgid "" "Note that, by default, importing an extension module will fail in " "subinterpreters if it doesn't implement multi-phase init (see :pep:`489`), " "even if it would otherwise import successfully." msgstr "" -#: ../../library/importlib.rst:1105 msgid "Multi-phase init is now required for use in subinterpreters." msgstr "" -#: ../../library/importlib.rst:1110 ../../library/importlib.rst:1296 msgid "Name of the module the loader supports." msgstr "" -#: ../../library/importlib.rst:1114 msgid "Path to the extension module." msgstr "" -#: ../../library/importlib.rst:1118 msgid "" -"Creates the module object from the given specification in accordance " -"with :pep:`489`." +"Creates the module object from the given specification in accordance with :" +"pep:`489`." msgstr "" -#: ../../library/importlib.rst:1125 msgid "Initializes the given module object in accordance with :pep:`489`." msgstr "" -#: ../../library/importlib.rst:1131 msgid "" "Returns ``True`` if the file path points to a package's ``__init__`` module " "based on :const:`EXTENSION_SUFFIXES`." msgstr "" -#: ../../library/importlib.rst:1136 msgid "Returns ``None`` as extension modules lack a code object." msgstr "" -#: ../../library/importlib.rst:1140 msgid "Returns ``None`` as extension modules do not have source code." msgstr "" -#: ../../library/importlib.rst:1151 msgid "" "A concrete implementation of :class:`importlib.abc.InspectLoader` for " "namespace packages. This is an alias for a private class and is only made " "public for introspecting the ``__loader__`` attribute on namespace packages::" msgstr "" -#: ../../library/importlib.rst:1156 msgid "" ">>> from importlib.machinery import NamespaceLoader\n" ">>> import my_namespace\n" @@ -1383,7 +1135,6 @@ msgid "" "True" msgstr "" -#: ../../library/importlib.rst:1169 msgid "" "A specification for a module's import-system-related state. This is " "typically exposed as the module's :attr:`~module.__spec__` attribute. Many " @@ -1392,40 +1143,34 @@ msgid "" "the *values* are usually equivalent, they can differ since there is no " "synchronization between the two objects. For example, it is possible to " "update the module's :attr:`~module.__file__` at runtime and this will not be " -"automatically reflected in the module's :attr:`__spec__.origin " -"`, and vice versa." +"automatically reflected in the module's :attr:`__spec__.origin `, and vice versa." msgstr "" -#: ../../library/importlib.rst:1183 msgid "" -"The module's fully qualified name (see :attr:`module.__name__`). " -"The :term:`finder` should always set this attribute to a non-empty string." +"The module's fully qualified name (see :attr:`module.__name__`). The :term:" +"`finder` should always set this attribute to a non-empty string." msgstr "" -#: ../../library/importlib.rst:1188 msgid "" "The :term:`loader` used to load the module (see :attr:`module.__loader__`). " "The :term:`finder` should always set this attribute." msgstr "" -#: ../../library/importlib.rst:1193 msgid "" -"The location the :term:`loader` should use to load the module " -"(see :attr:`module.__file__`). For example, for modules loaded from a " -"``.py`` file this is the filename. The :term:`finder` should always set this " -"attribute to a meaningful value for the :term:`loader` to use. In the " -"uncommon case that there is not one (like for namespace packages), it should " -"be set to ``None``." +"The location the :term:`loader` should use to load the module (see :attr:" +"`module.__file__`). For example, for modules loaded from a ``.py`` file this " +"is the filename. The :term:`finder` should always set this attribute to a " +"meaningful value for the :term:`loader` to use. In the uncommon case that " +"there is not one (like for namespace packages), it should be set to ``None``." msgstr "" -#: ../../library/importlib.rst:1202 msgid "" "A (possibly empty) :term:`sequence` of strings enumerating the locations in " "which a package's submodules will be found (see :attr:`module.__path__`). " "Most of the time there will only be a single directory in this list." msgstr "" -#: ../../library/importlib.rst:1207 msgid "" "The :term:`finder` should set this attribute to a sequence, even an empty " "one, to indicate to the import system that the module is a package. It " @@ -1433,42 +1178,35 @@ msgid "" "later to a special object for namespace packages." msgstr "" -#: ../../library/importlib.rst:1215 msgid "" "The :term:`finder` may set this attribute to an object containing " "additional, module-specific data to use when loading the module. Otherwise " "it should be set to ``None``." msgstr "" -#: ../../library/importlib.rst:1221 msgid "" -"The filename of a compiled version of the module's code " -"(see :attr:`module.__cached__`). The :term:`finder` should always set this " -"attribute but it may be ``None`` for modules that do not need compiled code " -"stored." +"The filename of a compiled version of the module's code (see :attr:`module." +"__cached__`). The :term:`finder` should always set this attribute but it may " +"be ``None`` for modules that do not need compiled code stored." msgstr "" -#: ../../library/importlib.rst:1228 msgid "" "(Read-only) The fully qualified name of the package the module is in (or the " "empty string for a top-level module). See :attr:`module.__package__`. If the " "module is a package then this is the same as :attr:`name`." msgstr "" -#: ../../library/importlib.rst:1235 msgid "" "``True`` if the spec's :attr:`origin` refers to a loadable location, " "``False`` otherwise. This value impacts how :attr:`!origin` is interpreted " "and how the module's :attr:`~module.__file__` is populated." msgstr "" -#: ../../library/importlib.rst:1242 msgid "" "A specialization of :class:`importlib.machinery.ExtensionFileLoader` that is " "able to load extension modules in Framework format." msgstr "" -#: ../../library/importlib.rst:1245 msgid "" "For compatibility with the iOS App Store, *all* binary modules in an iOS app " "must be dynamic libraries, contained in a framework with appropriate " @@ -1477,37 +1215,34 @@ msgid "" "material outside the Frameworks folder." msgstr "" -#: ../../library/importlib.rst:1251 msgid "" "To accommodate this requirement, when running on iOS, extension module " "binaries are *not* packaged as ``.so`` files on ``sys.path``, but as " "individual standalone frameworks. To discover those frameworks, this loader " "is be registered against the ``.fwork`` file extension, with a ``.fwork`` " -"file acting as a placeholder in the original location of the binary on " -"``sys.path``. The ``.fwork`` file contains the path of the actual binary in " -"the ``Frameworks`` folder, relative to the app bundle. To allow for " -"resolving a framework-packaged binary back to the original location, the " -"framework is expected to contain a ``.origin`` file that contains the " -"location of the ``.fwork`` file, relative to the app bundle." +"file acting as a placeholder in the original location of the binary on ``sys." +"path``. The ``.fwork`` file contains the path of the actual binary in the " +"``Frameworks`` folder, relative to the app bundle. To allow for resolving a " +"framework-packaged binary back to the original location, the framework is " +"expected to contain a ``.origin`` file that contains the location of the ``." +"fwork`` file, relative to the app bundle." msgstr "" -#: ../../library/importlib.rst:1262 msgid "" "For example, consider the case of an import ``from foo.bar import _whiz``, " "where ``_whiz`` is implemented with the binary module ``sources/foo/bar/" -"_whiz.abi3.so``, with ``sources`` being the location registered on " -"``sys.path``, relative to the application bundle. This module *must* be " +"_whiz.abi3.so``, with ``sources`` being the location registered on ``sys." +"path``, relative to the application bundle. This module *must* be " "distributed as ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz`` " "(creating the framework name from the full import path of the module), with " "an ``Info.plist`` file in the ``.framework`` directory identifying the " "binary as a framework. The ``foo.bar._whiz`` module would be represented in " "the original location with a ``sources/foo/bar/_whiz.abi3.fwork`` marker " "file, containing the path ``Frameworks/foo.bar._whiz/foo.bar._whiz``. The " -"framework would also contain ``Frameworks/foo.bar._whiz.framework/" -"foo.bar._whiz.origin``, containing the path to the ``.fwork`` file." +"framework would also contain ``Frameworks/foo.bar._whiz.framework/foo.bar." +"_whiz.origin``, containing the path to the ``.fwork`` file." msgstr "" -#: ../../library/importlib.rst:1276 msgid "" "When a module is loaded with this loader, the ``__file__`` for the module " "will report as the location of the ``.fwork`` file. This allows code to use " @@ -1516,7 +1251,6 @@ msgid "" "in the ``.framework`` folder." msgstr "" -#: ../../library/importlib.rst:1282 msgid "" "The Xcode project building the app is responsible for converting any ``.so`` " "files from wherever they exist in the ``PYTHONPATH`` into frameworks in the " @@ -1527,45 +1261,37 @@ msgid "" "details on how to construct this build step." msgstr "" -#: ../../library/importlib.rst:1292 msgid "Availability" msgstr "" -#: ../../library/importlib.rst:1300 msgid "Path to the ``.fwork`` file for the extension module." msgstr "" -#: ../../library/importlib.rst:1304 msgid ":mod:`importlib.util` -- Utility code for importers" msgstr "" -#: ../../library/importlib.rst:1310 msgid "**Source code:** :source:`Lib/importlib/util.py`" msgstr "" -#: ../../library/importlib.rst:1314 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." msgstr "" -#: ../../library/importlib.rst:1319 msgid "" "The bytes which represent the bytecode version number. If you need help with " "loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." msgstr "" -#: ../../library/importlib.rst:1326 msgid "" "Return the :pep:`3147`/:pep:`488` path to the byte-compiled file associated " "with the source *path*. For example, if *path* is ``/foo/bar/baz.py`` the " "return value would be ``/foo/bar/__pycache__/baz.cpython-32.pyc`` for Python " -"3.2. The ``cpython-32`` string comes from the current magic tag " -"(see :func:`get_tag`; if :attr:`sys.implementation.cache_tag` is not defined " -"then :exc:`NotImplementedError` will be raised)." +"3.2. The ``cpython-32`` string comes from the current magic tag (see :func:" +"`get_tag`; if :attr:`sys.implementation.cache_tag` is not defined then :exc:" +"`NotImplementedError` will be raised)." msgstr "" -#: ../../library/importlib.rst:1333 msgid "" "The *optimization* parameter is used to specify the optimization level of " "the bytecode file. An empty string represents no optimization, so ``/foo/bar/" @@ -1573,12 +1299,11 @@ msgid "" "``/foo/bar/__pycache__/baz.cpython-32.pyc``. ``None`` causes the " "interpreter's optimization level to be used. Any other value's string " "representation is used, so ``/foo/bar/baz.py`` with an *optimization* of " -"``2`` will lead to the bytecode path of ``/foo/bar/__pycache__/" -"baz.cpython-32.opt-2.pyc``. The string representation of *optimization* can " -"only be alphanumeric, else :exc:`ValueError` is raised." +"``2`` will lead to the bytecode path of ``/foo/bar/__pycache__/baz." +"cpython-32.opt-2.pyc``. The string representation of *optimization* can only " +"be alphanumeric, else :exc:`ValueError` is raised." msgstr "" -#: ../../library/importlib.rst:1343 msgid "" "The *debug_override* parameter is deprecated and can be used to override the " "system's value for ``__debug__``. A ``True`` value is the equivalent of " @@ -1587,63 +1312,50 @@ msgid "" "are not ``None`` then :exc:`TypeError` is raised." msgstr "" -#: ../../library/importlib.rst:1351 msgid "" "The *optimization* parameter was added and the *debug_override* parameter " "was deprecated." msgstr "" -#: ../../library/importlib.rst:1355 ../../library/importlib.rst:1371 -#: ../../library/importlib.rst:1460 msgid "Accepts a :term:`path-like object`." msgstr "" -#: ../../library/importlib.rst:1361 msgid "" "Given the *path* to a :pep:`3147` file name, return the associated source " -"code file path. For example, if *path* is ``/foo/bar/__pycache__/" -"baz.cpython-32.pyc`` the returned path would be ``/foo/bar/baz.py``. *path* " +"code file path. For example, if *path* is ``/foo/bar/__pycache__/baz." +"cpython-32.pyc`` the returned path would be ``/foo/bar/baz.py``. *path* " "need not exist, however if it does not conform to :pep:`3147` or :pep:`488` " -"format, a :exc:`ValueError` is raised. " -"If :attr:`sys.implementation.cache_tag` is not " -"defined, :exc:`NotImplementedError` is raised." +"format, a :exc:`ValueError` is raised. If :attr:`sys.implementation." +"cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" -#: ../../library/importlib.rst:1376 msgid "" "Decode the given bytes representing source code and return it as a string " -"with universal newlines (as required " -"by :meth:`importlib.abc.InspectLoader.get_source`)." +"with universal newlines (as required by :meth:`importlib.abc.InspectLoader." +"get_source`)." msgstr "" -#: ../../library/importlib.rst:1384 msgid "Resolve a relative module name to an absolute one." msgstr "" -#: ../../library/importlib.rst:1386 msgid "" "If **name** has no leading dots, then **name** is simply returned. This " -"allows for usage such as ``importlib.util.resolve_name('sys', " -"__spec__.parent)`` without doing a check to see if the **package** argument " -"is needed." +"allows for usage such as ``importlib.util.resolve_name('sys', __spec__." +"parent)`` without doing a check to see if the **package** argument is needed." msgstr "" -#: ../../library/importlib.rst:1391 msgid "" ":exc:`ImportError` is raised if **name** is a relative module name but " -"**package** is a false value (e.g. ``None`` or the empty " -"string). :exc:`ImportError` is also raised if a relative name would escape " -"its containing package (e.g. requesting ``..bacon`` from within the ``spam`` " -"package)." +"**package** is a false value (e.g. ``None`` or the empty string). :exc:" +"`ImportError` is also raised if a relative name would escape its containing " +"package (e.g. requesting ``..bacon`` from within the ``spam`` package)." msgstr "" -#: ../../library/importlib.rst:1399 msgid "" "To improve consistency with import statements, raise :exc:`ImportError` " "instead of :exc:`ValueError` for invalid relative import attempts." msgstr "" -#: ../../library/importlib.rst:1406 msgid "" "Find the :term:`spec ` for a module, optionally relative to the " "specified **package** name. If the module is in :data:`sys.modules`, then " @@ -1653,30 +1365,25 @@ msgid "" "if no spec is found." msgstr "" -#: ../../library/importlib.rst:1413 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." msgstr "" -#: ../../library/importlib.rst:1416 msgid "**name** and **package** work the same as for :func:`import_module`." msgstr "" -#: ../../library/importlib.rst:1420 msgid "" "Raises :exc:`ModuleNotFoundError` instead of :exc:`AttributeError` if " "**package** is in fact not a package (i.e. lacks a :attr:`~module.__path__` " "attribute)." msgstr "" -#: ../../library/importlib.rst:1427 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." msgstr "" -#: ../../library/importlib.rst:1430 msgid "" "If :meth:`spec.loader.create_module ` " "does not return ``None``, then any pre-existing attributes will not be " @@ -1684,23 +1391,20 @@ msgid "" "accessing **spec** or setting an attribute on the module." msgstr "" -#: ../../library/importlib.rst:1435 msgid "" "This function is preferred over using :class:`types.ModuleType` to create a " "new module as **spec** is used to set as many import-controlled attributes " "on the module as possible." msgstr "" -#: ../../library/importlib.rst:1443 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on a loader. The parameters have the same meaning as they do " -"for ModuleSpec. The function uses available :term:`loader` APIs, such " -"as :meth:`InspectLoader.is_package`, to fill in any missing information on " -"the spec." +"for ModuleSpec. The function uses available :term:`loader` APIs, such as :" +"meth:`InspectLoader.is_package`, to fill in any missing information on the " +"spec." msgstr "" -#: ../../library/importlib.rst:1453 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on the path to a file. Missing information will be filled in " @@ -1708,14 +1412,12 @@ msgid "" "module will be file-based." msgstr "" -#: ../../library/importlib.rst:1465 msgid "" "Return the hash of *source_bytes* as bytes. A hash-based ``.pyc`` file " "embeds the :func:`source_hash` of the corresponding source file's contents " "in its header." msgstr "" -#: ../../library/importlib.rst:1473 msgid "" "A context manager that can temporarily skip the compatibility check for " "extension modules. By default the check is enabled and will fail when a " @@ -1724,47 +1426,40 @@ msgid "" "interpreter GIL, when imported in an interpreter with its own GIL." msgstr "" -#: ../../library/importlib.rst:1480 msgid "" "Note that this function is meant to accommodate an unusual case; one which " "is likely to eventually go away. There's is a pretty good chance this is " "not what you were looking for." msgstr "" -#: ../../library/importlib.rst:1484 msgid "" "You can get the same effect as this function by implementing the basic " "interface of multi-phase init (:pep:`489`) and lying about support for " "multiple interpreters (or per-interpreter GIL)." msgstr "" -#: ../../library/importlib.rst:1489 msgid "" "Using this function to disable the check can lead to unexpected behavior and " "even crashes. It should only be used during extension module development." msgstr "" -#: ../../library/importlib.rst:1497 msgid "" "A class which postpones the execution of the loader of a module until the " "module has an attribute accessed." msgstr "" -#: ../../library/importlib.rst:1500 msgid "" -"This class **only** works with loaders that " -"define :meth:`~importlib.abc.Loader.exec_module` as control over what module " -"type is used for the module is required. For those same reasons, the " -"loader's :meth:`~importlib.abc.Loader.create_module` method must return " -"``None`` or a type for which its ``__class__`` attribute can be mutated " -"along with not using :term:`slots <__slots__>`. Finally, modules which " -"substitute the object placed into :data:`sys.modules` will not work as there " -"is no way to properly replace the module references throughout the " -"interpreter safely; :exc:`ValueError` is raised if such a substitution is " -"detected." +"This class **only** works with loaders that define :meth:`~importlib.abc." +"Loader.exec_module` as control over what module type is used for the module " +"is required. For those same reasons, the loader's :meth:`~importlib.abc." +"Loader.create_module` method must return ``None`` or a type for which its " +"``__class__`` attribute can be mutated along with not using :term:`slots " +"<__slots__>`. Finally, modules which substitute the object placed into :data:" +"`sys.modules` will not work as there is no way to properly replace the " +"module references throughout the interpreter safely; :exc:`ValueError` is " +"raised if such a substitution is detected." msgstr "" -#: ../../library/importlib.rst:1511 msgid "" "For projects where startup time is critical, this class allows for " "potentially minimizing the cost of loading a module if it is never used. For " @@ -1773,21 +1468,18 @@ msgid "" "postponed and thus occurring out of context." msgstr "" -#: ../../library/importlib.rst:1519 msgid "" "Began calling :meth:`~importlib.abc.Loader.create_module`, removing the " -"compatibility warning for :class:`importlib.machinery.BuiltinImporter` " -"and :class:`importlib.machinery.ExtensionFileLoader`." +"compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" +"class:`importlib.machinery.ExtensionFileLoader`." msgstr "" -#: ../../library/importlib.rst:1526 msgid "" "A class method which returns a callable that creates a lazy loader. This is " "meant to be used in situations where the loader is passed by class instead " "of by instance. ::" msgstr "" -#: ../../library/importlib.rst:1531 msgid "" "suffixes = importlib.machinery.SOURCE_SUFFIXES\n" "loader = importlib.machinery.SourceFileLoader\n" @@ -1795,43 +1487,35 @@ msgid "" "finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))" msgstr "" -#: ../../library/importlib.rst:1539 msgid "Examples" msgstr "" -#: ../../library/importlib.rst:1542 msgid "Importing programmatically" msgstr "" -#: ../../library/importlib.rst:1544 msgid "" "To programmatically import a module, use :func:`importlib.import_module`. ::" msgstr "" -#: ../../library/importlib.rst:1547 msgid "" "import importlib\n" "\n" "itertools = importlib.import_module('itertools')" msgstr "" -#: ../../library/importlib.rst:1553 msgid "Checking if a module can be imported" msgstr "" -#: ../../library/importlib.rst:1555 msgid "" "If you need to find out if a module can be imported without actually doing " "the import, then you should use :func:`importlib.util.find_spec`." msgstr "" -#: ../../library/importlib.rst:1558 msgid "" -"Note that if ``name`` is a submodule (contains a " -"dot), :func:`importlib.util.find_spec` will import the parent module. ::" +"Note that if ``name`` is a submodule (contains a dot), :func:`importlib.util." +"find_spec` will import the parent module. ::" msgstr "" -#: ../../library/importlib.rst:1562 msgid "" "import importlib.util\n" "import sys\n" @@ -1851,27 +1535,23 @@ msgid "" " print(f\"can't find the {name!r} module\")" msgstr "" -#: ../../library/importlib.rst:1581 msgid "Importing a source file directly" msgstr "" -#: ../../library/importlib.rst:1583 msgid "" "This recipe should be used with caution: it is an approximation of an import " -"statement where the file path is specified directly, rather " -"than :data:`sys.path` being searched. Alternatives should first be " -"considered first, such as modifying :data:`sys.path` when a proper module is " -"required, or using :func:`runpy.run_path` when the global namespace " -"resulting from running a Python file is appropriate." +"statement where the file path is specified directly, rather than :data:`sys." +"path` being searched. Alternatives should first be considered first, such as " +"modifying :data:`sys.path` when a proper module is required, or using :func:" +"`runpy.run_path` when the global namespace resulting from running a Python " +"file is appropriate." msgstr "" -#: ../../library/importlib.rst:1590 msgid "" "To import a Python source file directly from a path, use the following " "recipe::" msgstr "" -#: ../../library/importlib.rst:1592 msgid "" "import importlib.util\n" "import sys\n" @@ -1894,15 +1574,12 @@ msgid "" "json = import_from_path(module_name, file_path)" msgstr "" -#: ../../library/importlib.rst:1614 msgid "Implementing lazy imports" msgstr "" -#: ../../library/importlib.rst:1616 msgid "The example below shows how to implement lazy imports::" msgstr "" -#: ../../library/importlib.rst:1618 msgid "" ">>> import importlib.util\n" ">>> import sys\n" @@ -1922,26 +1599,22 @@ msgid "" "False" msgstr "" -#: ../../library/importlib.rst:1637 msgid "Setting up an importer" msgstr "" -#: ../../library/importlib.rst:1639 msgid "" -"For deep customizations of import, you typically want to implement " -"an :term:`importer`. This means managing both the :term:`finder` " -"and :term:`loader` side of things. For finders there are two flavours to " -"choose from depending on your needs: a :term:`meta path finder` or " -"a :term:`path entry finder`. The former is what you would put " -"on :data:`sys.meta_path` while the latter is what you create using " -"a :term:`path entry hook` on :data:`sys.path_hooks` which works " -"with :data:`sys.path` entries to potentially create a finder. This example " -"will show you how to register your own importers so that import will use " -"them (for creating an importer for yourself, read the documentation for the " -"appropriate classes defined within this package)::" +"For deep customizations of import, you typically want to implement an :term:" +"`importer`. This means managing both the :term:`finder` and :term:`loader` " +"side of things. For finders there are two flavours to choose from depending " +"on your needs: a :term:`meta path finder` or a :term:`path entry finder`. " +"The former is what you would put on :data:`sys.meta_path` while the latter " +"is what you create using a :term:`path entry hook` on :data:`sys.path_hooks` " +"which works with :data:`sys.path` entries to potentially create a finder. " +"This example will show you how to register your own importers so that import " +"will use them (for creating an importer for yourself, read the documentation " +"for the appropriate classes defined within this package)::" msgstr "" -#: ../../library/importlib.rst:1650 msgid "" "import importlib.machinery\n" "import sys\n" @@ -1965,11 +1638,9 @@ msgid "" "sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))" msgstr "" -#: ../../library/importlib.rst:1671 msgid "Approximating :func:`importlib.import_module`" msgstr "" -#: ../../library/importlib.rst:1673 msgid "" "Import itself is implemented in Python code, making it possible to expose " "most of the import machinery through importlib. The following helps " @@ -1977,7 +1648,6 @@ msgid "" "approximate implementation of :func:`importlib.import_module`::" msgstr "" -#: ../../library/importlib.rst:1679 msgid "" "import importlib.util\n" "import sys\n" @@ -2010,10 +1680,8 @@ msgid "" " return module" msgstr "" -#: ../../library/importlib.rst:429 msgid "universal newlines" msgstr "" -#: ../../library/importlib.rst:429 msgid "importlib.abc.InspectLoader.get_source method" msgstr "" diff --git a/library/importlib.resources.abc.po b/library/importlib.resources.abc.po index ec283c0..bfeaa19 100644 --- a/library/importlib.resources.abc.po +++ b/library/importlib.resources.abc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,24 +18,19 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/importlib.resources.abc.rst:2 msgid ":mod:`!importlib.resources.abc` -- Abstract base classes for resources" msgstr "" -#: ../../library/importlib.resources.abc.rst:7 msgid "**Source code:** :source:`Lib/importlib/resources/abc.py`" msgstr "" -#: ../../library/importlib.resources.abc.rst:15 msgid "*Superseded by TraversableResources*" msgstr "" -#: ../../library/importlib.resources.abc.rst:17 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" -#: ../../library/importlib.resources.abc.rst:20 msgid "" "From the perspective of this ABC, a *resource* is a binary artifact that is " "shipped within a package. Typically this is something like a data file that " @@ -45,11 +40,10 @@ msgid "" "file versus on the file system." msgstr "" -#: ../../library/importlib.resources.abc.rst:28 msgid "" -"For any of methods of this class, a *resource* argument is expected to be " -"a :term:`path-like object` which represents conceptually just a file name. " -"This means that no subdirectory paths should be included in the *resource* " +"For any of methods of this class, a *resource* argument is expected to be a :" +"term:`path-like object` which represents conceptually just a file name. This " +"means that no subdirectory paths should be included in the *resource* " "argument. This is because the location of the package the reader is for, " "acts as the \"directory\". Hence the metaphor for directories and file names " "is packages and resources, respectively. This is also why instances of this " @@ -57,7 +51,6 @@ msgid "" "potentially representing multiple packages or a module)." msgstr "" -#: ../../library/importlib.resources.abc.rst:39 msgid "" "Loaders that wish to support resource reading are expected to provide a " "method called ``get_resource_reader(fullname)`` which returns an object " @@ -66,45 +59,37 @@ msgid "" "with this ABC should only be returned when the specified module is a package." msgstr "" -#: ../../library/importlib.resources.abc.rst:46 msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." msgstr "" -#: ../../library/importlib.resources.abc.rst:52 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" -#: ../../library/importlib.resources.abc.rst:55 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" -#: ../../library/importlib.resources.abc.rst:61 msgid "Returns the file system path to the *resource*." msgstr "" -#: ../../library/importlib.resources.abc.rst:63 msgid "" -"If the resource does not concretely exist on the file system, " -"raise :exc:`FileNotFoundError`." +"If the resource does not concretely exist on the file system, raise :exc:" +"`FileNotFoundError`." msgstr "" -#: ../../library/importlib.resources.abc.rst:69 msgid "" -"Returns ``True`` if the named *name* is considered a " -"resource. :exc:`FileNotFoundError` is raised if *name* does not exist." +"Returns ``True`` if the named *name* is considered a resource. :exc:" +"`FileNotFoundError` is raised if *name* does not exist." msgstr "" -#: ../../library/importlib.resources.abc.rst:75 msgid "" "Returns an :term:`iterable` of strings over the contents of the package. Do " "note that it is not required that all names returned by the iterator be " -"actual resources, e.g. it is acceptable to return names for " -"which :meth:`is_resource` would be false." +"actual resources, e.g. it is acceptable to return names for which :meth:" +"`is_resource` would be false." msgstr "" -#: ../../library/importlib.resources.abc.rst:81 msgid "" "Allowing non-resource names to be returned is to allow for situations where " "how a package and its resources are stored are known a priori and the non-" @@ -113,58 +98,47 @@ msgid "" "stored on the file system then those subdirectory names can be used directly." msgstr "" -#: ../../library/importlib.resources.abc.rst:89 msgid "The abstract method returns an iterable of no items." msgstr "" -#: ../../library/importlib.resources.abc.rst:94 msgid "" "An object with a subset of :class:`pathlib.Path` methods suitable for " "traversing directories and opening files." msgstr "" -#: ../../library/importlib.resources.abc.rst:97 msgid "" -"For a representation of the object on the file-system, " -"use :meth:`importlib.resources.as_file`." +"For a representation of the object on the file-system, use :meth:`importlib." +"resources.as_file`." msgstr "" -#: ../../library/importlib.resources.abc.rst:102 msgid "Abstract. The base name of this object without any parent references." msgstr "" -#: ../../library/importlib.resources.abc.rst:107 msgid "Yield Traversable objects in self." msgstr "" -#: ../../library/importlib.resources.abc.rst:112 msgid "Return ``True`` if self is a directory." msgstr "" -#: ../../library/importlib.resources.abc.rst:117 msgid "Return ``True`` if self is a file." msgstr "" -#: ../../library/importlib.resources.abc.rst:122 msgid "" -"Traverse directories according to *pathsegments* and return the result " -"as :class:`!Traversable`." +"Traverse directories according to *pathsegments* and return the result as :" +"class:`!Traversable`." msgstr "" -#: ../../library/importlib.resources.abc.rst:125 msgid "" "Each *pathsegments* argument may contain multiple names separated by forward " "slashes (``/``, ``posixpath.sep`` ). For example, the following are " "equivalent::" msgstr "" -#: ../../library/importlib.resources.abc.rst:129 msgid "" "files.joinpath('subdir', 'subsuddir', 'file.txt')\n" "files.joinpath('subdir/subsuddir/file.txt')" msgstr "" -#: ../../library/importlib.resources.abc.rst:132 msgid "" "Note that some :class:`!Traversable` implementations might not be updated to " "the latest version of the protocol. For compatibility with such " @@ -172,58 +146,47 @@ msgid "" "call to ``joinpath``. For example::" msgstr "" -#: ../../library/importlib.resources.abc.rst:137 msgid "files.joinpath('subdir').joinpath('subsubdir').joinpath('file.txt')" msgstr "" -#: ../../library/importlib.resources.abc.rst:141 msgid "" "``joinpath`` accepts multiple *pathsegments*, and these segments may contain " "forward slashes as path separators. Previously, only a single *child* " "argument was accepted." msgstr "" -#: ../../library/importlib.resources.abc.rst:148 msgid "Return Traversable child in self. Equivalent to ``joinpath(child)``." msgstr "" -#: ../../library/importlib.resources.abc.rst:154 msgid "" "*mode* may be 'r' or 'rb' to open as text or binary. Return a handle " "suitable for reading (same as :attr:`pathlib.Path.open`)." msgstr "" -#: ../../library/importlib.resources.abc.rst:157 msgid "" -"When opening as text, accepts encoding parameters such as those accepted " -"by :class:`io.TextIOWrapper`." +"When opening as text, accepts encoding parameters such as those accepted by :" +"class:`io.TextIOWrapper`." msgstr "" -#: ../../library/importlib.resources.abc.rst:162 msgid "Read contents of self as bytes." msgstr "" -#: ../../library/importlib.resources.abc.rst:166 msgid "Read contents of self as text." msgstr "" -#: ../../library/importlib.resources.abc.rst:171 msgid "" -"An abstract base class for resource readers capable of serving " -"the :meth:`importlib.resources.files` interface. " -"Subclasses :class:`ResourceReader` and provides concrete implementations of " -"the :class:`!ResourceReader`'s abstract methods. Therefore, any loader " -"supplying :class:`!TraversableResources` also supplies :class:`!" -"ResourceReader`." +"An abstract base class for resource readers capable of serving the :meth:" +"`importlib.resources.files` interface. Subclasses :class:`ResourceReader` " +"and provides concrete implementations of the :class:`!ResourceReader`'s " +"abstract methods. Therefore, any loader supplying :class:`!" +"TraversableResources` also supplies :class:`!ResourceReader`." msgstr "" -#: ../../library/importlib.resources.abc.rst:178 msgid "" "Loaders that wish to support resource reading are expected to implement this " "interface." msgstr "" -#: ../../library/importlib.resources.abc.rst:184 msgid "" "Returns a :class:`importlib.resources.abc.Traversable` object for the loaded " "package." diff --git a/library/importlib.resources.po b/library/importlib.resources.po index 585444a..7677c13 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,22 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/importlib.resources.rst:2 msgid "" ":mod:`!importlib.resources` -- Package resource reading, opening and access" msgstr "" -#: ../../library/importlib.resources.rst:7 msgid "**Source code:** :source:`Lib/importlib/resources/__init__.py`" msgstr "" -#: ../../library/importlib.resources.rst:13 msgid "" "This module leverages Python's import system to provide access to " "*resources* within *packages*." msgstr "" -#: ../../library/importlib.resources.rst:16 msgid "" "\"Resources\" are file-like resources associated with a module or package in " "Python. The resources may be contained directly in a package, within a " @@ -45,11 +41,9 @@ msgid "" "author." msgstr "" -#: ../../library/importlib.resources.rst:25 msgid "Resources can be opened or read in either binary or text mode." msgstr "" -#: ../../library/importlib.resources.rst:27 msgid "" "Resources are roughly akin to files inside directories, though it's " "important to keep in mind that this is just a metaphor. Resources and " @@ -58,7 +52,6 @@ msgid "" "zip file using :py:mod:`zipimport`." msgstr "" -#: ../../library/importlib.resources.rst:35 msgid "" "This module provides functionality similar to `pkg_resources `_ `Basic Resource " @@ -68,7 +61,6 @@ msgid "" "consistent semantics." msgstr "" -#: ../../library/importlib.resources.rst:43 msgid "" "The standalone backport of this module provides more information on `using " "importlib.resources `_." msgstr "" -#: ../../library/importlib.resources.rst:49 msgid "" ":class:`Loaders ` that wish to support resource " "reading should implement a ``get_resource_reader(fullname)`` method as " "specified by :class:`importlib.resources.abc.ResourceReader`." msgstr "" -#: ../../library/importlib.resources.rst:55 msgid "" -"Represents an anchor for resources, either a :class:`module object " -"` or a module name as a string. Defined as ``Union[str, " +"Represents an anchor for resources, either a :class:`module object ` or a module name as a string. Defined as ``Union[str, " "ModuleType]``." msgstr "" -#: ../../library/importlib.resources.rst:61 msgid "" "Returns a :class:`~importlib.resources.abc.Traversable` object representing " "the resource container (think directory) and its resources (think files). A " "Traversable may contain other containers (think subdirectories)." msgstr "" -#: ../../library/importlib.resources.rst:66 msgid "" "*anchor* is an optional :class:`Anchor`. If the anchor is a package, " "resources are resolved from that package. If a module, resources are " @@ -105,17 +93,14 @@ msgid "" "If the anchor is omitted, the caller's module is used." msgstr "" -#: ../../library/importlib.resources.rst:74 msgid "" "*package* parameter was renamed to *anchor*. *anchor* can now be a non-" "package module and if omitted will default to the caller's module. *package* " -"is still accepted for compatibility but will raise " -"a :exc:`DeprecationWarning`. Consider passing the anchor positionally or " -"using ``importlib_resources >= 5.10`` for a compatible interface on older " -"Pythons." +"is still accepted for compatibility but will raise a :exc:" +"`DeprecationWarning`. Consider passing the anchor positionally or using " +"``importlib_resources >= 5.10`` for a compatible interface on older Pythons." msgstr "" -#: ../../library/importlib.resources.rst:84 msgid "" "Given a :class:`~importlib.resources.abc.Traversable` object representing a " "file or directory, typically from :func:`importlib.resources.files`, return " @@ -123,217 +108,163 @@ msgid "" "manager provides a :class:`pathlib.Path` object." msgstr "" -#: ../../library/importlib.resources.rst:89 msgid "" "Exiting the context manager cleans up any temporary file or directory " "created when the resource was extracted from e.g. a zip file." msgstr "" -#: ../../library/importlib.resources.rst:92 msgid "" "Use ``as_file`` when the Traversable methods (``read_text``, etc) are " "insufficient and an actual file or directory on the file system is required." msgstr "" -#: ../../library/importlib.resources.rst:98 msgid "Added support for *traversable* representing a directory." msgstr "" -#: ../../library/importlib.resources.rst:105 msgid "Functional API" msgstr "" -#: ../../library/importlib.resources.rst:107 msgid "" "A set of simplified, backwards-compatible helpers is available. These allow " "common operations in a single function call." msgstr "" -#: ../../library/importlib.resources.rst:110 msgid "For all the following functions:" msgstr "" -#: ../../library/importlib.resources.rst:112 msgid "" -"*anchor* is an :class:`~importlib.resources.Anchor`, as " -"in :func:`~importlib.resources.files`. Unlike in ``files``, it may not be " -"omitted." +"*anchor* is an :class:`~importlib.resources.Anchor`, as in :func:`~importlib." +"resources.files`. Unlike in ``files``, it may not be omitted." msgstr "" -#: ../../library/importlib.resources.rst:116 msgid "" "*path_names* are components of a resource's path name, relative to the " "anchor. For example, to get the text of resource named ``info.txt``, use::" msgstr "" -#: ../../library/importlib.resources.rst:120 msgid "importlib.resources.read_text(my_module, \"info.txt\")" msgstr "" -#: ../../library/importlib.resources.rst:122 msgid "" "Like :meth:`Traversable.joinpath `, The " "individual components should use forward slashes (``/``) as path separators. " "For example, the following are equivalent::" msgstr "" -#: ../../library/importlib.resources.rst:127 msgid "" "importlib.resources.read_binary(my_module, \"pics/painting.png\")\n" "importlib.resources.read_binary(my_module, \"pics\", \"painting.png\")" msgstr "" -#: ../../library/importlib.resources.rst:130 msgid "" "For backward compatibility reasons, functions that read text require an " "explicit *encoding* argument if multiple *path_names* are given. For " "example, to get the text of ``info/chapter1.txt``, use::" msgstr "" -#: ../../library/importlib.resources.rst:134 msgid "" "importlib.resources.read_text(my_module, \"info\", \"chapter1.txt\",\n" " encoding='utf-8')" msgstr "" -#: ../../library/importlib.resources.rst:139 msgid "Open the named resource for binary reading." msgstr "" -#: ../../library/importlib.resources.rst:141 -#: ../../library/importlib.resources.rst:184 -#: ../../library/importlib.resources.rst:232 -#: ../../library/importlib.resources.rst:249 -#: ../../library/importlib.resources.rst:267 msgid "" "See :ref:`the introduction ` for details on " "*anchor* and *path_names*." msgstr "" -#: ../../library/importlib.resources.rst:144 msgid "" "This function returns a :class:`~typing.BinaryIO` object, that is, a binary " "stream open for reading." msgstr "" -#: ../../library/importlib.resources.rst:147 -#: ../../library/importlib.resources.rst:171 -#: ../../library/importlib.resources.rst:187 -#: ../../library/importlib.resources.rst:208 -#: ../../library/importlib.resources.rst:235 -#: ../../library/importlib.resources.rst:252 -#: ../../library/importlib.resources.rst:270 msgid "This function is roughly equivalent to::" msgstr "" -#: ../../library/importlib.resources.rst:149 msgid "files(anchor).joinpath(*path_names).open('rb')" msgstr "" -#: ../../library/importlib.resources.rst:151 -#: ../../library/importlib.resources.rst:191 -#: ../../library/importlib.resources.rst:256 msgid "Multiple *path_names* are accepted." msgstr "" -#: ../../library/importlib.resources.rst:157 msgid "" "Open the named resource for text reading. By default, the contents are read " "as strict UTF-8." msgstr "" -#: ../../library/importlib.resources.rst:160 -#: ../../library/importlib.resources.rst:200 msgid "" "See :ref:`the introduction ` for details on " "*anchor* and *path_names*. *encoding* and *errors* have the same meaning as " "in built-in :func:`open`." msgstr "" -#: ../../library/importlib.resources.rst:164 -#: ../../library/importlib.resources.rst:204 msgid "" "For backward compatibility reasons, the *encoding* argument must be given " "explicitly if there are multiple *path_names*. This limitation is scheduled " "to be removed in Python 3.15." msgstr "" -#: ../../library/importlib.resources.rst:168 msgid "" "This function returns a :class:`~typing.TextIO` object, that is, a text " "stream open for reading." msgstr "" -#: ../../library/importlib.resources.rst:173 msgid "files(anchor).joinpath(*path_names).open('r', encoding=encoding)" msgstr "" -#: ../../library/importlib.resources.rst:175 -#: ../../library/importlib.resources.rst:212 -#: ../../library/importlib.resources.rst:239 msgid "" "Multiple *path_names* are accepted. *encoding* and *errors* must be given as " "keyword arguments." msgstr "" -#: ../../library/importlib.resources.rst:182 msgid "Read and return the contents of the named resource as :class:`bytes`." msgstr "" -#: ../../library/importlib.resources.rst:189 msgid "files(anchor).joinpath(*path_names).read_bytes()" msgstr "" -#: ../../library/importlib.resources.rst:197 msgid "" "Read and return the contents of the named resource as :class:`str`. By " "default, the contents are read as strict UTF-8." msgstr "" -#: ../../library/importlib.resources.rst:210 msgid "files(anchor).joinpath(*path_names).read_text(encoding=encoding)" msgstr "" -#: ../../library/importlib.resources.rst:219 msgid "" "Provides the path to the *resource* as an actual file system path. This " "function returns a context manager for use in a :keyword:`with` statement. " "The context manager provides a :class:`pathlib.Path` object." msgstr "" -#: ../../library/importlib.resources.rst:223 msgid "" "Exiting the context manager cleans up any temporary files created, e.g. when " "the resource needs to be extracted from a zip file." msgstr "" -#: ../../library/importlib.resources.rst:226 msgid "" "For example, the :meth:`~pathlib.Path.stat` method requires an actual file " "system path; it can be used like this::" msgstr "" -#: ../../library/importlib.resources.rst:229 msgid "" "with importlib.resources.path(anchor, \"resource.txt\") as fspath:\n" " result = fspath.stat()" msgstr "" -#: ../../library/importlib.resources.rst:237 msgid "as_file(files(anchor).joinpath(*path_names))" msgstr "" -#: ../../library/importlib.resources.rst:246 msgid "" "Return ``True`` if the named resource exists, otherwise ``False``. This " "function does not consider directories to be resources." msgstr "" -#: ../../library/importlib.resources.rst:254 msgid "files(anchor).joinpath(*path_names).is_file()" msgstr "" -#: ../../library/importlib.resources.rst:262 msgid "" "Return an iterable over the named items within the package or path. The " "iterable returns names of resources (e.g. files) and non-resources (e.g. " @@ -341,13 +272,11 @@ msgid "" "subdirectories." msgstr "" -#: ../../library/importlib.resources.rst:272 msgid "" "for resource in files(anchor).joinpath(*path_names).iterdir():\n" " yield resource.name" msgstr "" -#: ../../library/importlib.resources.rst:275 msgid "" "Prefer ``iterdir()`` as above, which offers more control over the results " "and richer functionality." diff --git a/library/index.po b/library/index.po index ce47442..cf80e66 100644 --- a/library/index.po +++ b/library/index.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/index.rst:5 msgid "The Python Standard Library" msgstr "" -#: ../../library/index.rst:7 msgid "" "While :ref:`reference-index` describes the exact syntax and semantics of the " "Python language, this library reference manual describes the standard " @@ -30,7 +28,6 @@ msgid "" "optional components that are commonly included in Python distributions." msgstr "" -#: ../../library/index.rst:13 msgid "" "Python's standard library is very extensive, offering a wide range of " "facilities as indicated by the long table of contents listed below. The " @@ -43,7 +40,6 @@ msgid "" "platform-neutral APIs." msgstr "" -#: ../../library/index.rst:23 msgid "" "The Python installers for the Windows platform usually include the entire " "standard library and often also include many additional components. For Unix-" @@ -52,7 +48,6 @@ msgid "" "the operating system to obtain some or all of the optional components." msgstr "" -#: ../../library/index.rst:30 msgid "" "In addition to the standard library, there is an active collection of " "hundreds of thousands of components (from individual programs and modules to " diff --git a/library/inspect.po b/library/inspect.po index e21d6d0..df06d07 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/inspect.rst:2 msgid ":mod:`!inspect` --- Inspect live objects" msgstr "" -#: ../../library/inspect.rst:15 msgid "**Source code:** :source:`Lib/inspect.py`" msgstr "" -#: ../../library/inspect.rst:19 msgid "" "The :mod:`inspect` module provides several useful functions to help get " "information about live objects such as modules, classes, methods, functions, " @@ -40,618 +37,459 @@ msgid "" "information you need to display a detailed traceback." msgstr "" -#: ../../library/inspect.rst:26 msgid "" "There are four main kinds of services provided by this module: type " "checking, getting source code, inspecting classes and functions, and " "examining the interpreter stack." msgstr "" -#: ../../library/inspect.rst:34 msgid "Types and members" msgstr "" -#: ../../library/inspect.rst:36 msgid "" "The :func:`getmembers` function retrieves the members of an object such as a " "class or module. The functions whose names begin with \"is\" are mainly " -"provided as convenient choices for the second argument " -"to :func:`getmembers`. They also help you determine when you can expect to " -"find the following special attributes (see :ref:`import-mod-attrs` for " -"module attributes):" +"provided as convenient choices for the second argument to :func:" +"`getmembers`. They also help you determine when you can expect to find the " +"following special attributes (see :ref:`import-mod-attrs` for module " +"attributes):" msgstr "" -#: ../../library/inspect.rst:46 msgid "Type" msgstr "" -#: ../../library/inspect.rst:46 msgid "Attribute" msgstr "" -#: ../../library/inspect.rst:46 msgid "Description" msgstr "" -#: ../../library/inspect.rst:48 msgid "class" msgstr "" -#: ../../library/inspect.rst:48 ../../library/inspect.rst:63 -#: ../../library/inspect.rst:81 ../../library/inspect.rst:292 msgid "__doc__" msgstr "" -#: ../../library/inspect.rst:48 ../../library/inspect.rst:63 -#: ../../library/inspect.rst:81 ../../library/inspect.rst:292 msgid "documentation string" msgstr "" -#: ../../library/inspect.rst:50 ../../library/inspect.rst:65 -#: ../../library/inspect.rst:83 ../../library/inspect.rst:248 -#: ../../library/inspect.rst:262 ../../library/inspect.rst:275 -#: ../../library/inspect.rst:294 msgid "__name__" msgstr "" -#: ../../library/inspect.rst:50 msgid "name with which this class was defined" msgstr "" -#: ../../library/inspect.rst:53 ../../library/inspect.rst:68 -#: ../../library/inspect.rst:86 ../../library/inspect.rst:250 -#: ../../library/inspect.rst:264 ../../library/inspect.rst:277 -#: ../../library/inspect.rst:297 msgid "__qualname__" msgstr "" -#: ../../library/inspect.rst:53 ../../library/inspect.rst:68 -#: ../../library/inspect.rst:86 ../../library/inspect.rst:250 -#: ../../library/inspect.rst:264 ../../library/inspect.rst:277 -#: ../../library/inspect.rst:297 msgid "qualified name" msgstr "" -#: ../../library/inspect.rst:55 ../../library/inspect.rst:78 -#: ../../library/inspect.rst:116 msgid "__module__" msgstr "" -#: ../../library/inspect.rst:55 msgid "name of module in which this class was defined" msgstr "" -#: ../../library/inspect.rst:58 ../../library/inspect.rst:111 msgid "__type_params__" msgstr "" -#: ../../library/inspect.rst:58 msgid "" "A tuple containing the :ref:`type parameters ` of a generic " "class" msgstr "" -#: ../../library/inspect.rst:63 msgid "method" msgstr "" -#: ../../library/inspect.rst:65 msgid "name with which this method was defined" msgstr "" -#: ../../library/inspect.rst:70 msgid "__func__" msgstr "" -#: ../../library/inspect.rst:70 msgid "function object containing implementation of method" msgstr "" -#: ../../library/inspect.rst:74 ../../library/inspect.rst:299 msgid "__self__" msgstr "" -#: ../../library/inspect.rst:74 msgid "instance to which this method is bound, or ``None``" msgstr "" -#: ../../library/inspect.rst:78 msgid "name of module in which this method was defined" msgstr "" -#: ../../library/inspect.rst:81 msgid "function" msgstr "" -#: ../../library/inspect.rst:83 msgid "name with which this function was defined" msgstr "" -#: ../../library/inspect.rst:88 msgid "__code__" msgstr "" -#: ../../library/inspect.rst:88 msgid "code object containing compiled function :term:`bytecode`" msgstr "" -#: ../../library/inspect.rst:92 msgid "__defaults__" msgstr "" -#: ../../library/inspect.rst:92 msgid "tuple of any default values for positional or keyword parameters" msgstr "" -#: ../../library/inspect.rst:96 msgid "__kwdefaults__" msgstr "" -#: ../../library/inspect.rst:96 msgid "mapping of any default values for keyword-only parameters" msgstr "" -#: ../../library/inspect.rst:100 msgid "__globals__" msgstr "" -#: ../../library/inspect.rst:100 msgid "global namespace in which this function was defined" msgstr "" -#: ../../library/inspect.rst:103 msgid "__builtins__" msgstr "" -#: ../../library/inspect.rst:103 msgid "builtins namespace" msgstr "" -#: ../../library/inspect.rst:105 msgid "__annotations__" msgstr "" -#: ../../library/inspect.rst:105 msgid "" "mapping of parameters names to annotations; ``\"return\"`` key is reserved " "for return annotations." msgstr "" -#: ../../library/inspect.rst:111 msgid "" "A tuple containing the :ref:`type parameters ` of a generic " "function" msgstr "" -#: ../../library/inspect.rst:116 msgid "name of module in which this function was defined" msgstr "" -#: ../../library/inspect.rst:119 msgid "traceback" msgstr "" -#: ../../library/inspect.rst:119 msgid "tb_frame" msgstr "" -#: ../../library/inspect.rst:119 msgid "frame object at this level" msgstr "" -#: ../../library/inspect.rst:122 msgid "tb_lasti" msgstr "" -#: ../../library/inspect.rst:122 ../../library/inspect.rst:144 msgid "index of last attempted instruction in bytecode" msgstr "" -#: ../../library/inspect.rst:125 msgid "tb_lineno" msgstr "" -#: ../../library/inspect.rst:125 ../../library/inspect.rst:147 msgid "current line number in Python source code" msgstr "" -#: ../../library/inspect.rst:128 msgid "tb_next" msgstr "" -#: ../../library/inspect.rst:128 msgid "next inner traceback object (called by this level)" msgstr "" -#: ../../library/inspect.rst:132 ../../library/inspect.rst:252 -#: ../../library/inspect.rst:269 ../../library/inspect.rst:282 msgid "frame" msgstr "" -#: ../../library/inspect.rst:132 msgid "f_back" msgstr "" -#: ../../library/inspect.rst:132 msgid "next outer frame object (this frame's caller)" msgstr "" -#: ../../library/inspect.rst:135 msgid "f_builtins" msgstr "" -#: ../../library/inspect.rst:135 msgid "builtins namespace seen by this frame" msgstr "" -#: ../../library/inspect.rst:138 msgid "f_code" msgstr "" -#: ../../library/inspect.rst:138 msgid "code object being executed in this frame" msgstr "" -#: ../../library/inspect.rst:141 msgid "f_globals" msgstr "" -#: ../../library/inspect.rst:141 msgid "global namespace seen by this frame" msgstr "" -#: ../../library/inspect.rst:144 msgid "f_lasti" msgstr "" -#: ../../library/inspect.rst:147 msgid "f_lineno" msgstr "" -#: ../../library/inspect.rst:150 msgid "f_locals" msgstr "" -#: ../../library/inspect.rst:150 msgid "local namespace seen by this frame" msgstr "" -#: ../../library/inspect.rst:153 msgid "f_generator" msgstr "" -#: ../../library/inspect.rst:153 msgid "" "returns the generator or coroutine object that owns this frame, or ``None`` " "if the frame is of a regular function" msgstr "" -#: ../../library/inspect.rst:159 msgid "f_trace" msgstr "" -#: ../../library/inspect.rst:159 msgid "tracing function for this frame, or ``None``" msgstr "" -#: ../../library/inspect.rst:162 msgid "f_trace_lines" msgstr "" -#: ../../library/inspect.rst:162 msgid "" "indicate whether a tracing event is triggered for each source source line" msgstr "" -#: ../../library/inspect.rst:167 msgid "f_trace_opcodes" msgstr "" -#: ../../library/inspect.rst:167 msgid "indicate whether per-opcode events are requested" msgstr "" -#: ../../library/inspect.rst:171 msgid "clear()" msgstr "" -#: ../../library/inspect.rst:171 msgid "used to clear all references to local variables" msgstr "" -#: ../../library/inspect.rst:175 ../../library/inspect.rst:256 -#: ../../library/inspect.rst:273 ../../library/inspect.rst:286 msgid "code" msgstr "" -#: ../../library/inspect.rst:175 msgid "co_argcount" msgstr "" -#: ../../library/inspect.rst:175 msgid "" "number of arguments (not including keyword only arguments, \\* or \\*\\* " "args)" msgstr "" -#: ../../library/inspect.rst:180 msgid "co_code" msgstr "" -#: ../../library/inspect.rst:180 msgid "string of raw compiled bytecode" msgstr "" -#: ../../library/inspect.rst:183 msgid "co_cellvars" msgstr "" -#: ../../library/inspect.rst:183 msgid "tuple of names of cell variables (referenced by containing scopes)" msgstr "" -#: ../../library/inspect.rst:187 msgid "co_consts" msgstr "" -#: ../../library/inspect.rst:187 msgid "tuple of constants used in the bytecode" msgstr "" -#: ../../library/inspect.rst:190 msgid "co_filename" msgstr "" -#: ../../library/inspect.rst:190 msgid "name of file in which this code object was created" msgstr "" -#: ../../library/inspect.rst:194 msgid "co_firstlineno" msgstr "" -#: ../../library/inspect.rst:194 msgid "number of first line in Python source code" msgstr "" -#: ../../library/inspect.rst:197 msgid "co_flags" msgstr "" -#: ../../library/inspect.rst:197 msgid "" "bitmap of ``CO_*`` flags, read more :ref:`here `" msgstr "" -#: ../../library/inspect.rst:201 msgid "co_lnotab" msgstr "" -#: ../../library/inspect.rst:201 msgid "encoded mapping of line numbers to bytecode indices" msgstr "" -#: ../../library/inspect.rst:205 msgid "co_freevars" msgstr "" -#: ../../library/inspect.rst:205 msgid "tuple of names of free variables (referenced via a function's closure)" msgstr "" -#: ../../library/inspect.rst:209 msgid "co_posonlyargcount" msgstr "" -#: ../../library/inspect.rst:209 msgid "number of positional only arguments" msgstr "" -#: ../../library/inspect.rst:212 msgid "co_kwonlyargcount" msgstr "" -#: ../../library/inspect.rst:212 msgid "number of keyword only arguments (not including \\*\\* arg)" msgstr "" -#: ../../library/inspect.rst:216 msgid "co_name" msgstr "" -#: ../../library/inspect.rst:216 msgid "name with which this code object was defined" msgstr "" -#: ../../library/inspect.rst:219 msgid "co_qualname" msgstr "" -#: ../../library/inspect.rst:219 msgid "fully qualified name with which this code object was defined" msgstr "" -#: ../../library/inspect.rst:223 msgid "co_names" msgstr "" -#: ../../library/inspect.rst:223 msgid "tuple of names other than arguments and function locals" msgstr "" -#: ../../library/inspect.rst:227 msgid "co_nlocals" msgstr "" -#: ../../library/inspect.rst:227 msgid "number of local variables" msgstr "" -#: ../../library/inspect.rst:229 msgid "co_stacksize" msgstr "" -#: ../../library/inspect.rst:229 msgid "virtual machine stack space required" msgstr "" -#: ../../library/inspect.rst:232 msgid "co_varnames" msgstr "" -#: ../../library/inspect.rst:232 msgid "tuple of names of arguments and local variables" msgstr "" -#: ../../library/inspect.rst:236 msgid "co_lines()" msgstr "" -#: ../../library/inspect.rst:236 msgid "returns an iterator that yields successive bytecode ranges" msgstr "" -#: ../../library/inspect.rst:240 msgid "co_positions()" msgstr "" -#: ../../library/inspect.rst:240 msgid "" "returns an iterator of source code positions for each bytecode instruction" msgstr "" -#: ../../library/inspect.rst:244 msgid "replace()" msgstr "" -#: ../../library/inspect.rst:244 msgid "returns a copy of the code object with new values" msgstr "" -#: ../../library/inspect.rst:248 msgid "generator" msgstr "" -#: ../../library/inspect.rst:248 ../../library/inspect.rst:262 -#: ../../library/inspect.rst:275 msgid "name" msgstr "" -#: ../../library/inspect.rst:252 msgid "gi_frame" msgstr "" -#: ../../library/inspect.rst:254 msgid "gi_running" msgstr "" -#: ../../library/inspect.rst:254 ../../library/inspect.rst:271 msgid "is the generator running?" msgstr "" -#: ../../library/inspect.rst:256 msgid "gi_code" msgstr "" -#: ../../library/inspect.rst:258 msgid "gi_yieldfrom" msgstr "" -#: ../../library/inspect.rst:258 msgid "object being iterated by ``yield from``, or ``None``" msgstr "" -#: ../../library/inspect.rst:262 msgid "async generator" msgstr "" -#: ../../library/inspect.rst:266 msgid "ag_await" msgstr "" -#: ../../library/inspect.rst:266 ../../library/inspect.rst:279 msgid "object being awaited on, or ``None``" msgstr "" -#: ../../library/inspect.rst:269 msgid "ag_frame" msgstr "" -#: ../../library/inspect.rst:271 msgid "ag_running" msgstr "" -#: ../../library/inspect.rst:273 msgid "ag_code" msgstr "" -#: ../../library/inspect.rst:275 msgid "coroutine" msgstr "" -#: ../../library/inspect.rst:279 msgid "cr_await" msgstr "" -#: ../../library/inspect.rst:282 msgid "cr_frame" msgstr "" -#: ../../library/inspect.rst:284 msgid "cr_running" msgstr "" -#: ../../library/inspect.rst:284 msgid "is the coroutine running?" msgstr "" -#: ../../library/inspect.rst:286 msgid "cr_code" msgstr "" -#: ../../library/inspect.rst:288 msgid "cr_origin" msgstr "" -#: ../../library/inspect.rst:288 msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" msgstr "" -#: ../../library/inspect.rst:292 msgid "builtin" msgstr "" -#: ../../library/inspect.rst:294 msgid "original name of this function or method" msgstr "" -#: ../../library/inspect.rst:299 msgid "instance to which a method is bound, or ``None``" msgstr "" -#: ../../library/inspect.rst:306 msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "" -#: ../../library/inspect.rst:308 msgid "" "The ``__name__`` attribute of generators is now set from the function name, " "instead of the code name, and it can now be modified." msgstr "" -#: ../../library/inspect.rst:313 msgid "Add ``cr_origin`` attribute to coroutines." msgstr "" -#: ../../library/inspect.rst:317 msgid "Add ``__builtins__`` attribute to functions." msgstr "" -#: ../../library/inspect.rst:321 msgid "Add ``f_generator`` attribute to frames." msgstr "" -#: ../../library/inspect.rst:325 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name. If the optional *predicate* argument—which will be called " @@ -659,14 +497,12 @@ msgid "" "the predicate returns a true value are included." msgstr "" -#: ../../library/inspect.rst:332 msgid "" ":func:`getmembers` will only return class attributes defined in the " "metaclass when the argument is a class and those attributes have been listed " "in the metaclass' custom :meth:`~object.__dir__`." msgstr "" -#: ../../library/inspect.rst:339 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name without triggering dynamic lookup via the descriptor " @@ -674,7 +510,6 @@ msgid "" "that satisfy a given predicate." msgstr "" -#: ../../library/inspect.rst:346 msgid "" ":func:`getmembers_static` may not be able to retrieve all members that " "getmembers can fetch (like dynamically created attributes) and may find " @@ -683,7 +518,6 @@ msgid "" "cases." msgstr "" -#: ../../library/inspect.rst:357 msgid "" "Return the name of the module named by the file *path*, without including " "the names of enclosing packages. The file extension is checked against all " @@ -692,123 +526,101 @@ msgid "" "``None`` is returned." msgstr "" -#: ../../library/inspect.rst:363 msgid "" "Note that this function *only* returns a meaningful name for actual Python " "modules - paths that potentially refer to Python packages will still return " "``None``." msgstr "" -#: ../../library/inspect.rst:367 msgid "The function is based directly on :mod:`importlib`." msgstr "" -#: ../../library/inspect.rst:373 msgid "Return ``True`` if the object is a module." msgstr "" -#: ../../library/inspect.rst:378 msgid "" "Return ``True`` if the object is a class, whether built-in or created in " "Python code." msgstr "" -#: ../../library/inspect.rst:384 msgid "Return ``True`` if the object is a bound method written in Python." msgstr "" -#: ../../library/inspect.rst:389 msgid "Return ``True`` if the object is a :term:`package`." msgstr "" -#: ../../library/inspect.rst:396 msgid "" "Return ``True`` if the object is a Python function, which includes functions " "created by a :term:`lambda` expression." msgstr "" -#: ../../library/inspect.rst:402 msgid "Return ``True`` if the object is a Python generator function." msgstr "" -#: ../../library/inspect.rst:404 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a Python generator function." msgstr "" -#: ../../library/inspect.rst:408 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a Python generator function." msgstr "" -#: ../../library/inspect.rst:414 msgid "Return ``True`` if the object is a generator." msgstr "" -#: ../../library/inspect.rst:419 msgid "" "Return ``True`` if the object is a :term:`coroutine function` (a function " "defined with an :keyword:`async def` syntax), a :func:`functools.partial` " -"wrapping a :term:`coroutine function`, or a sync function marked " -"with :func:`markcoroutinefunction`." +"wrapping a :term:`coroutine function`, or a sync function marked with :func:" +"`markcoroutinefunction`." msgstr "" -#: ../../library/inspect.rst:426 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a :term:`coroutine function`." msgstr "" -#: ../../library/inspect.rst:430 msgid "" "Sync functions marked with :func:`markcoroutinefunction` now return ``True``." msgstr "" -#: ../../library/inspect.rst:434 ../../library/inspect.rst:504 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a :term:`coroutine function`." msgstr "" -#: ../../library/inspect.rst:441 msgid "" "Decorator to mark a callable as a :term:`coroutine function` if it would not " "otherwise be detected by :func:`iscoroutinefunction`." msgstr "" -#: ../../library/inspect.rst:444 msgid "" "This may be of use for sync functions that return a :term:`coroutine`, if " "the function is passed to an API that requires :func:`iscoroutinefunction`." msgstr "" -#: ../../library/inspect.rst:447 msgid "" "When possible, using an :keyword:`async def` function is preferred. Also " -"acceptable is calling the function and testing the return " -"with :func:`iscoroutine`." +"acceptable is calling the function and testing the return with :func:" +"`iscoroutine`." msgstr "" -#: ../../library/inspect.rst:456 msgid "" -"Return ``True`` if the object is a :term:`coroutine` created by " -"an :keyword:`async def` function." +"Return ``True`` if the object is a :term:`coroutine` created by an :keyword:" +"`async def` function." msgstr "" -#: ../../library/inspect.rst:464 msgid "" "Return ``True`` if the object can be used in :keyword:`await` expression." msgstr "" -#: ../../library/inspect.rst:466 msgid "" "Can also be used to distinguish generator-based coroutines from regular " "generators:" msgstr "" -#: ../../library/inspect.rst:469 msgid "" "import types\n" "\n" @@ -822,13 +634,11 @@ msgid "" "assert isawaitable(gen_coro())" msgstr "" -#: ../../library/inspect.rst:487 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator` function, " "for example:" msgstr "" -#: ../../library/inspect.rst:490 msgid "" ">>> async def agen():\n" "... yield 1\n" @@ -837,66 +647,53 @@ msgid "" "True" msgstr "" -#: ../../library/inspect.rst:500 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is an :term:`asynchronous generator` function." msgstr "" -#: ../../library/inspect.rst:510 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator iterator` " "created by an :term:`asynchronous generator` function." msgstr "" -#: ../../library/inspect.rst:517 msgid "Return ``True`` if the object is a traceback." msgstr "" -#: ../../library/inspect.rst:522 msgid "Return ``True`` if the object is a frame." msgstr "" -#: ../../library/inspect.rst:527 msgid "Return ``True`` if the object is a code." msgstr "" -#: ../../library/inspect.rst:532 msgid "" "Return ``True`` if the object is a built-in function or a bound built-in " "method." msgstr "" -#: ../../library/inspect.rst:537 msgid "" "Return ``True`` if the type of object is a :class:`~types.MethodWrapperType`." msgstr "" -#: ../../library/inspect.rst:539 msgid "" -"These are instances of :class:`~types.MethodWrapperType`, such " -"as :meth:`~object.__str__`, :meth:`~object.__eq__` " -"and :meth:`~object.__repr__`." +"These are instances of :class:`~types.MethodWrapperType`, such as :meth:" +"`~object.__str__`, :meth:`~object.__eq__` and :meth:`~object.__repr__`." msgstr "" -#: ../../library/inspect.rst:547 msgid "" "Return ``True`` if the object is a user-defined or built-in function or " "method." msgstr "" -#: ../../library/inspect.rst:552 msgid "Return ``True`` if the object is an abstract base class." msgstr "" -#: ../../library/inspect.rst:557 msgid "" -"Return ``True`` if the object is a method descriptor, but not " -"if :func:`ismethod`, :func:`isclass`, :func:`isfunction` " -"or :func:`isbuiltin` are true." +"Return ``True`` if the object is a method descriptor, but not if :func:" +"`ismethod`, :func:`isclass`, :func:`isfunction` or :func:`isbuiltin` are " +"true." msgstr "" -#: ../../library/inspect.rst:561 msgid "" "This, for example, is true of ``int.__add__``. An object passing this test " "has a :meth:`~object.__get__` method, but not a :meth:`~object.__set__` " @@ -905,79 +702,65 @@ msgid "" "sensible, and :attr:`~definition.__doc__` often is." msgstr "" -#: ../../library/inspect.rst:567 msgid "" "Methods implemented via descriptors that also pass one of the other tests " "return ``False`` from the :func:`ismethoddescriptor` test, simply because " -"the other tests promise more -- you can, e.g., count on having " -"the :attr:`~method.__func__` attribute (etc) when an object " -"passes :func:`ismethod`." +"the other tests promise more -- you can, e.g., count on having the :attr:" +"`~method.__func__` attribute (etc) when an object passes :func:`ismethod`." msgstr "" -#: ../../library/inspect.rst:573 msgid "" -"This function no longer incorrectly reports objects " -"with :meth:`~object.__get__` and :meth:`~object.__delete__`, but " -"not :meth:`~object.__set__`, as being method descriptors (such objects are " -"data descriptors, not method descriptors)." +"This function no longer incorrectly reports objects with :meth:`~object." +"__get__` and :meth:`~object.__delete__`, but not :meth:`~object.__set__`, as " +"being method descriptors (such objects are data descriptors, not method " +"descriptors)." msgstr "" -#: ../../library/inspect.rst:581 msgid "Return ``True`` if the object is a data descriptor." msgstr "" -#: ../../library/inspect.rst:583 msgid "" -"Data descriptors have a :attr:`~object.__set__` or " -"a :attr:`~object.__delete__` method. Examples are properties (defined in " -"Python), getsets, and members. The latter two are defined in C and there " -"are more specific tests available for those types, which is robust across " -"Python implementations. Typically, data descriptors will also " -"have :attr:`~definition.__name__` and :attr:`!__doc__` attributes " -"(properties, getsets, and members have both of these attributes), but this " -"is not guaranteed." +"Data descriptors have a :attr:`~object.__set__` or a :attr:`~object." +"__delete__` method. Examples are properties (defined in Python), getsets, " +"and members. The latter two are defined in C and there are more specific " +"tests available for those types, which is robust across Python " +"implementations. Typically, data descriptors will also have :attr:" +"`~definition.__name__` and :attr:`!__doc__` attributes (properties, getsets, " +"and members have both of these attributes), but this is not guaranteed." msgstr "" -#: ../../library/inspect.rst:594 msgid "Return ``True`` if the object is a getset descriptor." msgstr "" -#: ../../library/inspect.rst:598 msgid "" -"getsets are attributes defined in extension modules " -"via :c:type:`PyGetSetDef` structures. For Python implementations without " -"such types, this method will always return ``False``." +"getsets are attributes defined in extension modules via :c:type:" +"`PyGetSetDef` structures. For Python implementations without such types, " +"this method will always return ``False``." msgstr "" -#: ../../library/inspect.rst:605 msgid "Return ``True`` if the object is a member descriptor." msgstr "" -#: ../../library/inspect.rst:609 msgid "" -"Member descriptors are attributes defined in extension modules " -"via :c:type:`PyMemberDef` structures. For Python implementations without " -"such types, this method will always return ``False``." +"Member descriptors are attributes defined in extension modules via :c:type:" +"`PyMemberDef` structures. For Python implementations without such types, " +"this method will always return ``False``." msgstr "" -#: ../../library/inspect.rst:617 msgid "Retrieving source code" msgstr "" -#: ../../library/inspect.rst:621 msgid "" -"Get the documentation string for an object, cleaned up " -"with :func:`cleandoc`. If the documentation string for an object is not " -"provided and the object is a class, a method, a property or a descriptor, " -"retrieve the documentation string from the inheritance hierarchy. Return " -"``None`` if the documentation string is invalid or missing." +"Get the documentation string for an object, cleaned up with :func:" +"`cleandoc`. If the documentation string for an object is not provided and " +"the object is a class, a method, a property or a descriptor, retrieve the " +"documentation string from the inheritance hierarchy. Return ``None`` if the " +"documentation string is invalid or missing." msgstr "" -#: ../../library/inspect.rst:627 msgid "Documentation strings are now inherited if not overridden." msgstr "" -#: ../../library/inspect.rst:633 msgid "" "Return in a single string any lines of comments immediately preceding the " "object's source code (for a class, function, or method), or at the top of " @@ -986,27 +769,23 @@ msgid "" "been defined in C or the interactive shell." msgstr "" -#: ../../library/inspect.rst:642 msgid "" "Return the name of the (text or binary) file in which an object was defined. " "This will fail with a :exc:`TypeError` if the object is a built-in module, " "class, or function." msgstr "" -#: ../../library/inspect.rst:649 msgid "" "Try to guess which module an object was defined in. Return ``None`` if the " "module cannot be determined." msgstr "" -#: ../../library/inspect.rst:655 msgid "" "Return the name of the Python source file in which an object was defined or " "``None`` if no way can be identified to get the source. This will fail with " "a :exc:`TypeError` if the object is a built-in module, class, or function." msgstr "" -#: ../../library/inspect.rst:663 msgid "" "Return a list of source lines and starting line number for an object. The " "argument may be a module, class, method, function, traceback, frame, or code " @@ -1017,13 +796,11 @@ msgid "" "built-in module, class, or function." msgstr "" -#: ../../library/inspect.rst:672 ../../library/inspect.rst:686 msgid "" ":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " "former." msgstr "" -#: ../../library/inspect.rst:679 msgid "" "Return the text of the source code for an object. The argument may be a " "module, class, method, function, traceback, frame, or code object. The " @@ -1032,13 +809,11 @@ msgid "" "object is a built-in module, class, or function." msgstr "" -#: ../../library/inspect.rst:693 msgid "" "Clean up indentation from docstrings that are indented to line up with " "blocks of code." msgstr "" -#: ../../library/inspect.rst:696 msgid "" "All leading whitespace is removed from the first line. Any leading " "whitespace that can be uniformly removed from the second line onwards is " @@ -1046,22 +821,18 @@ msgid "" "Also, all tabs are expanded to spaces." msgstr "" -#: ../../library/inspect.rst:705 msgid "Introspecting callables with the Signature object" msgstr "" -#: ../../library/inspect.rst:709 msgid "" "The :class:`Signature` object represents the call signature of a callable " "object and its return annotation. To retrieve a :class:`!Signature` object, " "use the :func:`!signature` function." msgstr "" -#: ../../library/inspect.rst:716 msgid "Return a :class:`Signature` object for the given *callable*:" msgstr "" -#: ../../library/inspect.rst:718 msgid "" ">>> from inspect import signature\n" ">>> def foo(a, *, b:int, **kwargs):\n" @@ -1079,68 +850,57 @@ msgid "" "" msgstr "" -#: ../../library/inspect.rst:735 msgid "" "Accepts a wide range of Python callables, from plain functions and classes " "to :func:`functools.partial` objects." msgstr "" -#: ../../library/inspect.rst:738 msgid "" "If some of the annotations are strings (e.g., because ``from __future__ " "import annotations`` was used), :func:`signature` will attempt to " -"automatically un-stringize the annotations " -"using :func:`annotationlib.get_annotations`. The *globals*, *locals*, and " -"*eval_str* parameters are passed into :func:`!annotationlib.get_annotations` " -"when resolving the annotations; see the documentation for :func:`!" -"annotationlib.get_annotations` for instructions on how to use these " -"parameters. A member of the :class:`annotationlib.Format` enum can be passed " -"to the *annotation_format* parameter to control the format of the returned " -"annotations. For example, use " -"``annotation_format=annotationlib.Format.STRING`` to return annotations in " -"string format." -msgstr "" - -#: ../../library/inspect.rst:752 -msgid "" -"Raises :exc:`ValueError` if no signature can be provided, " -"and :exc:`TypeError` if that type of object is not supported. Also, if the " +"automatically un-stringize the annotations using :func:`annotationlib." +"get_annotations`. The *globals*, *locals*, and *eval_str* parameters are " +"passed into :func:`!annotationlib.get_annotations` when resolving the " +"annotations; see the documentation for :func:`!annotationlib." +"get_annotations` for instructions on how to use these parameters. A member " +"of the :class:`annotationlib.Format` enum can be passed to the " +"*annotation_format* parameter to control the format of the returned " +"annotations. For example, use ``annotation_format=annotationlib.Format." +"STRING`` to return annotations in string format." +msgstr "" + +msgid "" +"Raises :exc:`ValueError` if no signature can be provided, and :exc:" +"`TypeError` if that type of object is not supported. Also, if the " "annotations are stringized, and *eval_str* is not false, the ``eval()`` " -"call(s) to un-stringize the annotations " -"in :func:`annotationlib.get_annotations` could potentially raise any kind of " -"exception." +"call(s) to un-stringize the annotations in :func:`annotationlib." +"get_annotations` could potentially raise any kind of exception." msgstr "" -#: ../../library/inspect.rst:758 msgid "" "A slash (/) in the signature of a function denotes that the parameters prior " "to it are positional-only. For more info, see :ref:`the FAQ entry on " "positional-only parameters `." msgstr "" -#: ../../library/inspect.rst:762 msgid "" "The *follow_wrapped* parameter was added. Pass ``False`` to get a signature " "of *callable* specifically (``callable.__wrapped__`` will not be used to " "unwrap decorated callables.)" msgstr "" -#: ../../library/inspect.rst:768 ../../library/inspect.rst:904 msgid "The *globals*, *locals*, and *eval_str* parameters were added." msgstr "" -#: ../../library/inspect.rst:771 msgid "The *annotation_format* parameter was added." msgstr "" -#: ../../library/inspect.rst:776 msgid "" "Some callables may not be introspectable in certain implementations of " "Python. For example, in CPython, some built-in functions defined in C " "provide no metadata about their arguments." msgstr "" -#: ../../library/inspect.rst:782 msgid "" "If the passed object has a :attr:`!__signature__` attribute, we may use it " "to create the signature. The exact semantics are an implementation detail " @@ -1148,14 +908,12 @@ msgid "" "semantics." msgstr "" -#: ../../library/inspect.rst:790 msgid "" "A :class:`!Signature` object represents the call signature of a function and " "its return annotation. For each parameter accepted by the function it " "stores a :class:`Parameter` object in its :attr:`parameters` collection." msgstr "" -#: ../../library/inspect.rst:795 msgid "" "The optional *parameters* argument is a sequence of :class:`Parameter` " "objects, which is validated to check that there are no parameters with " @@ -1164,54 +922,45 @@ msgid "" "defaults follow parameters without defaults." msgstr "" -#: ../../library/inspect.rst:801 msgid "" "The optional *return_annotation* argument can be an arbitrary Python object. " "It represents the \"return\" annotation of the callable." msgstr "" -#: ../../library/inspect.rst:804 msgid "" ":class:`!Signature` objects are *immutable*. Use :meth:`Signature.replace` " "or :func:`copy.replace` to make a modified copy." msgstr "" -#: ../../library/inspect.rst:807 msgid ":class:`!Signature` objects are now picklable and :term:`hashable`." msgstr "" -#: ../../library/inspect.rst:812 msgid "A special class-level marker to specify absence of a return annotation." msgstr "" -#: ../../library/inspect.rst:816 msgid "" -"An ordered mapping of parameters' names to the " -"corresponding :class:`Parameter` objects. Parameters appear in strict " -"definition order, including keyword-only parameters." +"An ordered mapping of parameters' names to the corresponding :class:" +"`Parameter` objects. Parameters appear in strict definition order, " +"including keyword-only parameters." msgstr "" -#: ../../library/inspect.rst:820 ../../library/inspect.rst:1184 msgid "" "Python only explicitly guaranteed that it preserved the declaration order of " "keyword-only parameters as of version 3.7, although in practice this order " "had always been preserved in Python 3." msgstr "" -#: ../../library/inspect.rst:827 msgid "" "The \"return\" annotation for the callable. If the callable has no " "\"return\" annotation, this attribute is set to :attr:`Signature.empty`." msgstr "" -#: ../../library/inspect.rst:832 msgid "" "Create a mapping from positional and keyword arguments to parameters. " "Returns :class:`BoundArguments` if ``*args`` and ``**kwargs`` match the " "signature, or raises a :exc:`TypeError`." msgstr "" -#: ../../library/inspect.rst:838 msgid "" "Works the same way as :meth:`Signature.bind`, but allows the omission of " "some required arguments (mimics :func:`functools.partial` behavior.) " @@ -1219,16 +968,14 @@ msgid "" "arguments do not match the signature." msgstr "" -#: ../../library/inspect.rst:845 msgid "" -"Create a new :class:`Signature` instance based on the " -"instance :meth:`replace` was invoked on. It is possible to pass different " -"*parameters* and/or *return_annotation* to override the corresponding " -"properties of the base signature. To remove ``return_annotation`` from the " -"copied :class:`!Signature`, pass in :attr:`Signature.empty`." +"Create a new :class:`Signature` instance based on the instance :meth:" +"`replace` was invoked on. It is possible to pass different *parameters* and/" +"or *return_annotation* to override the corresponding properties of the base " +"signature. To remove ``return_annotation`` from the copied :class:`!" +"Signature`, pass in :attr:`Signature.empty`." msgstr "" -#: ../../library/inspect.rst:853 msgid "" ">>> def test(a, b):\n" "... pass\n" @@ -1239,47 +986,39 @@ msgid "" "\"(a, b) -> 'new return anno'\"" msgstr "" -#: ../../library/inspect.rst:863 msgid "" -":class:`Signature` objects are also supported by the generic " -"function :func:`copy.replace`." +":class:`Signature` objects are also supported by the generic function :func:" +"`copy.replace`." msgstr "" -#: ../../library/inspect.rst:868 msgid "Create a string representation of the :class:`Signature` object." msgstr "" -#: ../../library/inspect.rst:870 msgid "" "If *max_width* is passed, the method will attempt to fit the signature into " "lines of at most *max_width* characters. If the signature is longer than " "*max_width*, all parameters will be on separate lines." msgstr "" -#: ../../library/inspect.rst:875 msgid "" "If *quote_annotation_strings* is False, :term:`annotations ` in " "the signature are displayed without opening and closing quotation marks if " -"they are strings. This is useful if the signature was created with " -"the :attr:`~annotationlib.Format.STRING` format or if ``from __future__ " -"import annotations`` was used." +"they are strings. This is useful if the signature was created with the :attr:" +"`~annotationlib.Format.STRING` format or if ``from __future__ import " +"annotations`` was used." msgstr "" -#: ../../library/inspect.rst:883 msgid "The *unquote_annotations* parameter was added." msgstr "" -#: ../../library/inspect.rst:888 msgid "" "Return a :class:`Signature` (or its subclass) object for a given callable " "*obj*." msgstr "" -#: ../../library/inspect.rst:891 msgid "This method simplifies subclassing of :class:`Signature`:" msgstr "" -#: ../../library/inspect.rst:893 msgid "" "class MySignature(Signature):\n" " pass\n" @@ -1287,130 +1026,105 @@ msgid "" "assert isinstance(sig, MySignature)" msgstr "" -#: ../../library/inspect.rst:900 msgid "Its behavior is otherwise identical to that of :func:`signature`." msgstr "" -#: ../../library/inspect.rst:910 msgid "" ":class:`!Parameter` objects are *immutable*. Instead of modifying a :class:`!" -"Parameter` object, you can use :meth:`Parameter.replace` " -"or :func:`copy.replace` to create a modified copy." +"Parameter` object, you can use :meth:`Parameter.replace` or :func:`copy." +"replace` to create a modified copy." msgstr "" -#: ../../library/inspect.rst:914 msgid "Parameter objects are now picklable and :term:`hashable`." msgstr "" -#: ../../library/inspect.rst:919 msgid "" "A special class-level marker to specify absence of default values and " "annotations." msgstr "" -#: ../../library/inspect.rst:924 msgid "" "The name of the parameter as a string. The name must be a valid Python " "identifier." msgstr "" -#: ../../library/inspect.rst:929 msgid "" "CPython generates implicit parameter names of the form ``.0`` on the code " "objects used to implement comprehensions and generator expressions." msgstr "" -#: ../../library/inspect.rst:933 msgid "" "These parameter names are now exposed by this module as names like " "``implicit0``." msgstr "" -#: ../../library/inspect.rst:939 msgid "" "The default value for the parameter. If the parameter has no default value, " "this attribute is set to :attr:`Parameter.empty`." msgstr "" -#: ../../library/inspect.rst:944 msgid "" "The annotation for the parameter. If the parameter has no annotation, this " "attribute is set to :attr:`Parameter.empty`." msgstr "" -#: ../../library/inspect.rst:949 msgid "" "Describes how argument values are bound to the parameter. The possible " -"values are accessible via :class:`Parameter` (like " -"``Parameter.KEYWORD_ONLY``), and support comparison and ordering, in the " -"following order:" +"values are accessible via :class:`Parameter` (like ``Parameter." +"KEYWORD_ONLY``), and support comparison and ordering, in the following order:" msgstr "" -#: ../../library/inspect.rst:956 msgid "Name" msgstr "" -#: ../../library/inspect.rst:956 msgid "Meaning" msgstr "Jelentés" -#: ../../library/inspect.rst:958 msgid "*POSITIONAL_ONLY*" msgstr "" -#: ../../library/inspect.rst:958 msgid "" "Value must be supplied as a positional argument. Positional only parameters " "are those which appear before a ``/`` entry (if present) in a Python " "function definition." msgstr "" -#: ../../library/inspect.rst:963 msgid "*POSITIONAL_OR_KEYWORD*" msgstr "" -#: ../../library/inspect.rst:963 msgid "" "Value may be supplied as either a keyword or positional argument (this is " "the standard binding behaviour for functions implemented in Python.)" msgstr "" -#: ../../library/inspect.rst:968 msgid "*VAR_POSITIONAL*" msgstr "" -#: ../../library/inspect.rst:968 msgid "" "A tuple of positional arguments that aren't bound to any other parameter. " "This corresponds to a ``*args`` parameter in a Python function definition." msgstr "" -#: ../../library/inspect.rst:973 msgid "*KEYWORD_ONLY*" msgstr "" -#: ../../library/inspect.rst:973 msgid "" "Value must be supplied as a keyword argument. Keyword only parameters are " "those which appear after a ``*`` or ``*args`` entry in a Python function " "definition." msgstr "" -#: ../../library/inspect.rst:978 msgid "*VAR_KEYWORD*" msgstr "" -#: ../../library/inspect.rst:978 msgid "" "A dict of keyword arguments that aren't bound to any other parameter. This " "corresponds to a ``**kwargs`` parameter in a Python function definition." msgstr "" -#: ../../library/inspect.rst:984 msgid "Example: print all keyword-only arguments without default values:" msgstr "" -#: ../../library/inspect.rst:986 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1423,15 +1137,12 @@ msgid "" "Parameter: c" msgstr "" -#: ../../library/inspect.rst:1000 msgid "Describes an enum value of :attr:`Parameter.kind`." msgstr "" -#: ../../library/inspect.rst:1004 msgid "Example: print all descriptions of arguments:" msgstr "" -#: ../../library/inspect.rst:1006 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1445,7 +1156,6 @@ msgid "" "keyword-only" msgstr "" -#: ../../library/inspect.rst:1021 msgid "" "Create a new :class:`Parameter` instance based on the instance replaced was " "invoked on. To override a :class:`!Parameter` attribute, pass the " @@ -1453,7 +1163,6 @@ msgid "" "a :class:`!Parameter`, pass :attr:`Parameter.empty`." msgstr "" -#: ../../library/inspect.rst:1026 msgid "" ">>> from inspect import Parameter\n" ">>> param = Parameter('foo', Parameter.KEYWORD_ONLY, default=42)\n" @@ -1467,83 +1176,69 @@ msgid "" "\"foo: 'spam'\"" msgstr "" -#: ../../library/inspect.rst:1039 msgid "" -":class:`Parameter` objects are also supported by the generic " -"function :func:`copy.replace`." +":class:`Parameter` objects are also supported by the generic function :func:" +"`copy.replace`." msgstr "" -#: ../../library/inspect.rst:1042 msgid "" "In Python 3.3 :class:`Parameter` objects were allowed to have ``name`` set " "to ``None`` if their ``kind`` was set to ``POSITIONAL_ONLY``. This is no " "longer permitted." msgstr "" -#: ../../library/inspect.rst:1049 msgid "" "Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call. " "Holds the mapping of arguments to the function's parameters." msgstr "" -#: ../../library/inspect.rst:1054 msgid "" "A mutable mapping of parameters' names to arguments' values. Contains only " -"explicitly bound arguments. Changes in :attr:`arguments` will reflect " -"in :attr:`args` and :attr:`kwargs`." +"explicitly bound arguments. Changes in :attr:`arguments` will reflect in :" +"attr:`args` and :attr:`kwargs`." msgstr "" -#: ../../library/inspect.rst:1058 msgid "" "Should be used in conjunction with :attr:`Signature.parameters` for any " "argument processing purposes." msgstr "" -#: ../../library/inspect.rst:1063 msgid "" "Arguments for which :meth:`Signature.bind` or :meth:`Signature.bind_partial` " -"relied on a default value are skipped. However, if needed, " -"use :meth:`BoundArguments.apply_defaults` to add them." +"relied on a default value are skipped. However, if needed, use :meth:" +"`BoundArguments.apply_defaults` to add them." msgstr "" -#: ../../library/inspect.rst:1068 msgid "" -":attr:`arguments` is now of type :class:`dict`. Formerly, it was of " -"type :class:`collections.OrderedDict`." +":attr:`arguments` is now of type :class:`dict`. Formerly, it was of type :" +"class:`collections.OrderedDict`." msgstr "" -#: ../../library/inspect.rst:1074 msgid "" -"A tuple of positional arguments values. Dynamically computed from " -"the :attr:`arguments` attribute." +"A tuple of positional arguments values. Dynamically computed from the :attr:" +"`arguments` attribute." msgstr "" -#: ../../library/inspect.rst:1079 msgid "" -"A dict of keyword arguments values. Dynamically computed from " -"the :attr:`arguments` attribute. Arguments that can be passed positionally " -"are included in :attr:`args` instead." +"A dict of keyword arguments values. Dynamically computed from the :attr:" +"`arguments` attribute. Arguments that can be passed positionally are " +"included in :attr:`args` instead." msgstr "" -#: ../../library/inspect.rst:1085 msgid "A reference to the parent :class:`Signature` object." msgstr "" -#: ../../library/inspect.rst:1089 msgid "Set default values for missing arguments." msgstr "" -#: ../../library/inspect.rst:1091 msgid "" "For variable-positional arguments (``*args``) the default is an empty tuple." msgstr "" -#: ../../library/inspect.rst:1094 msgid "" "For variable-keyword arguments (``**kwargs``) the default is an empty dict." msgstr "" -#: ../../library/inspect.rst:1097 msgid "" ">>> def foo(a, b='ham', *args): pass\n" ">>> ba = inspect.signature(foo).bind('spam')\n" @@ -1552,13 +1247,11 @@ msgid "" "{'a': 'spam', 'b': 'ham', 'args': ()}" msgstr "" -#: ../../library/inspect.rst:1107 msgid "" "The :attr:`args` and :attr:`kwargs` properties can be used to invoke " "functions:" msgstr "" -#: ../../library/inspect.rst:1110 msgid "" "def test(a, *, b):\n" " ...\n" @@ -1568,19 +1261,15 @@ msgid "" "test(*ba.args, **ba.kwargs)" msgstr "" -#: ../../library/inspect.rst:1122 msgid ":pep:`362` - Function Signature Object." msgstr "" -#: ../../library/inspect.rst:1123 msgid "The detailed specification, implementation details and examples." msgstr "" -#: ../../library/inspect.rst:1129 msgid "Classes and functions" msgstr "" -#: ../../library/inspect.rst:1133 msgid "" "Arrange the given list of classes into a hierarchy of nested lists. Where a " "nested list appears, it contains classes derived from the class whose entry " @@ -1591,19 +1280,16 @@ msgid "" "will appear multiple times." msgstr "" -#: ../../library/inspect.rst:1144 msgid "" -"Get the names and default values of a Python function's parameters. " -"A :term:`named tuple` is returned:" +"Get the names and default values of a Python function's parameters. A :term:" +"`named tuple` is returned:" msgstr "" -#: ../../library/inspect.rst:1147 msgid "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" msgstr "" -#: ../../library/inspect.rst:1150 msgid "" "*args* is a list of the positional parameter names. *varargs* is the name of " "the ``*`` parameter or ``None`` if arbitrary positional arguments are not " @@ -1618,7 +1304,6 @@ msgid "" "report the function return value annotation (if any)." msgstr "" -#: ../../library/inspect.rst:1165 msgid "" "Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " @@ -1628,43 +1313,36 @@ msgid "" "``inspect`` module API." msgstr "" -#: ../../library/inspect.rst:1172 msgid "" "This function is now based on :func:`signature`, but still ignores " "``__wrapped__`` attributes and includes the already bound first parameter in " "the signature output for bound methods." msgstr "" -#: ../../library/inspect.rst:1177 msgid "" -"This method was previously documented as deprecated in favour " -"of :func:`signature` in Python 3.5, but that decision has been reversed in " -"order to restore a clearly supported standard interface for single-source " -"Python 2/3 code migrating away from the legacy :func:`getargspec` API." +"This method was previously documented as deprecated in favour of :func:" +"`signature` in Python 3.5, but that decision has been reversed in order to " +"restore a clearly supported standard interface for single-source Python 2/3 " +"code migrating away from the legacy :func:`!getargspec` API." msgstr "" -#: ../../library/inspect.rst:1192 msgid "" -"Get information about arguments passed into a particular frame. " -"A :term:`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is " -"returned. *args* is a list of the argument names. *varargs* and *keywords* " -"are the names of the ``*`` and ``**`` arguments or ``None``. *locals* is " -"the locals dictionary of the given frame." +"Get information about arguments passed into a particular frame. A :term:" +"`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " +"*args* is a list of the argument names. *varargs* and *keywords* are the " +"names of the ``*`` and ``**`` arguments or ``None``. *locals* is the locals " +"dictionary of the given frame." msgstr "" -#: ../../library/inspect.rst:1199 ../../library/inspect.rst:1209 msgid "This function was inadvertently marked as deprecated in Python 3.5." msgstr "" -#: ../../library/inspect.rst:1204 msgid "" -"Format a pretty argument spec from the four values returned " -"by :func:`getargvalues`. The format\\* arguments are the corresponding " -"optional formatting functions that are called to turn names and values into " -"strings." +"Format a pretty argument spec from the four values returned by :func:" +"`getargvalues`. The format\\* arguments are the corresponding optional " +"formatting functions that are called to turn names and values into strings." msgstr "" -#: ../../library/inspect.rst:1214 msgid "" "Return a tuple of class cls's base classes, including cls, in method " "resolution order. No class appears more than once in this tuple. Note that " @@ -1672,7 +1350,6 @@ msgid "" "user-defined metatype is in use, cls will be the first element of the tuple." msgstr "" -#: ../../library/inspect.rst:1222 msgid "" "Bind the *args* and *kwds* to the argument names of the Python function or " "method *func*, as if it was called with them. For bound methods, bind also " @@ -1685,7 +1362,6 @@ msgid "" "example:" msgstr "" -#: ../../library/inspect.rst:1231 msgid "" ">>> from inspect import getcallargs\n" ">>> def f(a, b=1, *pos, **named):\n" @@ -1702,11 +1378,9 @@ msgid "" "TypeError: f() missing 1 required positional argument: 'a'" msgstr "" -#: ../../library/inspect.rst:1248 msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." msgstr "" -#: ../../library/inspect.rst:1254 msgid "" "Get the mapping of external name references in a Python function or method " "*func* to their current values. A :term:`named tuple` " @@ -1718,52 +1392,48 @@ msgid "" "builtins." msgstr "" -#: ../../library/inspect.rst:1263 msgid "" ":exc:`TypeError` is raised if *func* is not a Python function or method." msgstr "" -#: ../../library/inspect.rst:1270 msgid "" -"Get the object wrapped by *func*. It follows the chain " -"of :attr:`__wrapped__` attributes returning the last object in the chain." +"Get the object wrapped by *func*. It follows the chain of :attr:" +"`__wrapped__` attributes returning the last object in the chain." msgstr "" -#: ../../library/inspect.rst:1273 msgid "" "*stop* is an optional callback accepting an object in the wrapper chain as " "its sole argument that allows the unwrapping to be terminated early if the " "callback returns a true value. If the callback never returns a true value, " -"the last object in the chain is returned as usual. For " -"example, :func:`signature` uses this to stop unwrapping if any object in the " -"chain has a ``__signature__`` attribute defined." +"the last object in the chain is returned as usual. For example, :func:" +"`signature` uses this to stop unwrapping if any object in the chain has a " +"``__signature__`` attribute defined." msgstr "" -#: ../../library/inspect.rst:1280 msgid ":exc:`ValueError` is raised if a cycle is encountered." msgstr "" -#: ../../library/inspect.rst:1287 msgid "Compute the annotations dict for an object." msgstr "" -#: ../../library/inspect.rst:1289 msgid "" "This is an alias for :func:`annotationlib.get_annotations`; see the " "documentation of that function for more information." msgstr "" -#: ../../library/inspect.rst:1294 +msgid "" +"This function may execute arbitrary code contained in annotations. See :ref:" +"`annotationlib-security` for more information." +msgstr "" + msgid "" "This function is now an alias for :func:`annotationlib.get_annotations`. " "Calling it as ``inspect.get_annotations`` will continue to work." msgstr "" -#: ../../library/inspect.rst:1302 msgid "The interpreter stack" msgstr "" -#: ../../library/inspect.rst:1304 msgid "" "Some of the following functions return :class:`FrameInfo` objects. For " "backwards compatibility these objects allow tuple-like operations on all " @@ -1771,95 +1441,79 @@ msgid "" "may be removed in the future." msgstr "" -#: ../../library/inspect.rst:1313 msgid "The :ref:`frame object ` that the record corresponds to." msgstr "" -#: ../../library/inspect.rst:1317 msgid "" "The file name associated with the code being executed by the frame this " "record corresponds to." msgstr "" -#: ../../library/inspect.rst:1322 msgid "" "The line number of the current line associated with the code being executed " "by the frame this record corresponds to." msgstr "" -#: ../../library/inspect.rst:1327 msgid "" "The function name that is being executed by the frame this record " "corresponds to." msgstr "" -#: ../../library/inspect.rst:1331 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this record corresponds to." msgstr "" -#: ../../library/inspect.rst:1336 ../../library/inspect.rst:1375 msgid "" "The index of the current line being executed in the :attr:`code_context` " "list." msgstr "" -#: ../../library/inspect.rst:1340 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " "instruction being executed by the frame this record corresponds to." msgstr "" -#: ../../library/inspect.rst:1344 msgid "Return a :term:`named tuple` instead of a :class:`tuple`." msgstr "" -#: ../../library/inspect.rst:1347 msgid "" ":class:`!FrameInfo` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: ../../library/inspect.rst:1356 msgid "" "The file name associated with the code being executed by the frame this " "traceback corresponds to." msgstr "" -#: ../../library/inspect.rst:1361 msgid "" "The line number of the current line associated with the code being executed " "by the frame this traceback corresponds to." msgstr "" -#: ../../library/inspect.rst:1366 msgid "" "The function name that is being executed by the frame this traceback " "corresponds to." msgstr "" -#: ../../library/inspect.rst:1370 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this traceback corresponds to." msgstr "" -#: ../../library/inspect.rst:1379 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " "instruction being executed by the frame this traceback corresponds to." msgstr "" -#: ../../library/inspect.rst:1384 msgid "" ":class:`!Traceback` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: ../../library/inspect.rst:1391 msgid "" "Keeping references to frame objects, as found in the first element of the " "frame records these functions return, can cause your program to create " @@ -1871,16 +1525,13 @@ msgid "" "consumption which occurs." msgstr "" -#: ../../library/inspect.rst:1399 msgid "" "Though the cycle detector will catch these, destruction of the frames (and " -"local variables) can be made deterministic by removing the cycle in " -"a :keyword:`finally` clause. This is also important if the cycle detector " -"was disabled when Python was compiled or using :func:`gc.disable`. For " -"example::" +"local variables) can be made deterministic by removing the cycle in a :" +"keyword:`finally` clause. This is also important if the cycle detector was " +"disabled when Python was compiled or using :func:`gc.disable`. For example::" msgstr "" -#: ../../library/inspect.rst:1404 msgid "" "def handle_stackframe_without_leak():\n" " frame = inspect.currentframe()\n" @@ -1890,31 +1541,26 @@ msgid "" " del frame" msgstr "" -#: ../../library/inspect.rst:1411 msgid "" "If you want to keep the frame around (for example to print a traceback " "later), you can also break reference cycles by using the :meth:`frame.clear` " "method." msgstr "" -#: ../../library/inspect.rst:1415 msgid "" "The optional *context* argument supported by most of these functions " "specifies the number of lines of context to return, which are centered " "around the current line." msgstr "" -#: ../../library/inspect.rst:1422 msgid "" "Get information about a frame or traceback object. A :class:`Traceback` " "object is returned." msgstr "" -#: ../../library/inspect.rst:1425 msgid "A :class:`Traceback` object is returned instead of a named tuple." msgstr "" -#: ../../library/inspect.rst:1430 msgid "" "Get a list of :class:`FrameInfo` objects for a frame and all outer frames. " "These frames represent the calls that lead to the creation of *frame*. The " @@ -1922,19 +1568,14 @@ msgid "" "represents the outermost call on *frame*'s stack." msgstr "" -#: ../../library/inspect.rst:1435 ../../library/inspect.rst:1450 -#: ../../library/inspect.rst:1476 ../../library/inspect.rst:1491 msgid "" "A list of :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` is returned." msgstr "" -#: ../../library/inspect.rst:1440 ../../library/inspect.rst:1455 -#: ../../library/inspect.rst:1481 ../../library/inspect.rst:1496 msgid "A list of :class:`FrameInfo` objects is returned." msgstr "" -#: ../../library/inspect.rst:1445 msgid "" "Get a list of :class:`FrameInfo` objects for a traceback's frame and all " "inner frames. These frames represent calls made as a consequence of " @@ -1942,11 +1583,9 @@ msgid "" "represents where the exception was raised." msgstr "" -#: ../../library/inspect.rst:1460 msgid "Return the frame object for the caller's stack frame." msgstr "" -#: ../../library/inspect.rst:1464 msgid "" "This function relies on Python stack frame support in the interpreter, which " "isn't guaranteed to exist in all implementations of Python. If running in " @@ -1954,14 +1593,12 @@ msgid "" "``None``." msgstr "" -#: ../../library/inspect.rst:1472 msgid "" "Return a list of :class:`FrameInfo` objects for the caller's stack. The " "first entry in the returned list represents the caller; the last entry " "represents the outermost call on the stack." msgstr "" -#: ../../library/inspect.rst:1486 msgid "" "Return a list of :class:`FrameInfo` objects for the stack between the " "current frame and the frame in which an exception currently being handled " @@ -1969,32 +1606,27 @@ msgid "" "entry represents where the exception was raised." msgstr "" -#: ../../library/inspect.rst:1500 msgid "Fetching attributes statically" msgstr "" -#: ../../library/inspect.rst:1502 msgid "" "Both :func:`getattr` and :func:`hasattr` can trigger code execution when " "fetching or checking for the existence of attributes. Descriptors, like " -"properties, will be invoked and :meth:`~object.__getattr__` " -"and :meth:`~object.__getattribute__` may be called." +"properties, will be invoked and :meth:`~object.__getattr__` and :meth:" +"`~object.__getattribute__` may be called." msgstr "" -#: ../../library/inspect.rst:1508 msgid "" "For cases where you want passive introspection, like documentation tools, " -"this can be inconvenient. :func:`getattr_static` has the same signature " -"as :func:`getattr` but avoids executing code when it fetches attributes." +"this can be inconvenient. :func:`getattr_static` has the same signature as :" +"func:`getattr` but avoids executing code when it fetches attributes." msgstr "" -#: ../../library/inspect.rst:1514 msgid "" "Retrieve attributes without triggering dynamic lookup via the descriptor " "protocol, :meth:`~object.__getattr__` or :meth:`~object.__getattribute__`." msgstr "" -#: ../../library/inspect.rst:1518 msgid "" "Note: this function may not be able to retrieve all attributes that getattr " "can fetch (like dynamically created attributes) and may find attributes that " @@ -2002,27 +1634,23 @@ msgid "" "return descriptors objects instead of instance members." msgstr "" -#: ../../library/inspect.rst:1524 msgid "" "If the instance :attr:`~object.__dict__` is shadowed by another member (for " "example a property) then this function will be unable to find instance " "members." msgstr "" -#: ../../library/inspect.rst:1530 msgid "" ":func:`getattr_static` does not resolve descriptors, for example slot " "descriptors or getset descriptors on objects implemented in C. The " "descriptor object is returned instead of the underlying attribute." msgstr "" -#: ../../library/inspect.rst:1534 msgid "" "You can handle these with code like the following. Note that for arbitrary " "getset descriptors invoking these may trigger code execution::" msgstr "" -#: ../../library/inspect.rst:1538 msgid "" "# example code for resolving the builtin descriptor types\n" "class _foo:\n" @@ -2045,11 +1673,9 @@ msgid "" " pass" msgstr "" -#: ../../library/inspect.rst:1560 msgid "Current State of Generators, Coroutines, and Asynchronous Generators" msgstr "" -#: ../../library/inspect.rst:1562 msgid "" "When implementing coroutine schedulers and for other advanced uses of " "generators, it is useful to determine whether a generator is currently " @@ -2058,32 +1684,24 @@ msgid "" "generator to be determined easily." msgstr "" -#: ../../library/inspect.rst:1570 msgid "Get current state of a generator-iterator." msgstr "" -#: ../../library/inspect.rst:1572 ../../library/inspect.rst:1588 -#: ../../library/inspect.rst:1605 msgid "Possible states are:" msgstr "" -#: ../../library/inspect.rst:1574 msgid "GEN_CREATED: Waiting to start execution." msgstr "" -#: ../../library/inspect.rst:1575 msgid "GEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: ../../library/inspect.rst:1576 msgid "GEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: ../../library/inspect.rst:1577 msgid "GEN_CLOSED: Execution has completed." msgstr "" -#: ../../library/inspect.rst:1583 msgid "" "Get current state of a coroutine object. The function is intended to be " "used with coroutine objects created by :keyword:`async def` functions, but " @@ -2091,55 +1709,44 @@ msgid "" "``cr_frame`` attributes." msgstr "" -#: ../../library/inspect.rst:1590 msgid "CORO_CREATED: Waiting to start execution." msgstr "" -#: ../../library/inspect.rst:1591 msgid "CORO_RUNNING: Currently being executed by the interpreter." msgstr "" -#: ../../library/inspect.rst:1592 msgid "CORO_SUSPENDED: Currently suspended at an await expression." msgstr "" -#: ../../library/inspect.rst:1593 msgid "CORO_CLOSED: Execution has completed." msgstr "" -#: ../../library/inspect.rst:1599 msgid "" "Get current state of an asynchronous generator object. The function is " -"intended to be used with asynchronous iterator objects created " -"by :keyword:`async def` functions which use the :keyword:`yield` statement, " -"but will accept any asynchronous generator-like object that has " -"``ag_running`` and ``ag_frame`` attributes." +"intended to be used with asynchronous iterator objects created by :keyword:" +"`async def` functions which use the :keyword:`yield` statement, but will " +"accept any asynchronous generator-like object that has ``ag_running`` and " +"``ag_frame`` attributes." msgstr "" -#: ../../library/inspect.rst:1607 msgid "AGEN_CREATED: Waiting to start execution." msgstr "" -#: ../../library/inspect.rst:1608 msgid "AGEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: ../../library/inspect.rst:1609 msgid "AGEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: ../../library/inspect.rst:1610 msgid "AGEN_CLOSED: Execution has completed." msgstr "" -#: ../../library/inspect.rst:1614 msgid "" "The current internal state of the generator can also be queried. This is " "mostly useful for testing purposes, to ensure that internal state is being " "updated as expected:" msgstr "" -#: ../../library/inspect.rst:1620 msgid "" "Get the mapping of live local variables in *generator* to their current " "values. A dictionary is returned that maps from variable names to values. " @@ -2147,14 +1754,12 @@ msgid "" "generator, and all the same caveats apply." msgstr "" -#: ../../library/inspect.rst:1625 msgid "" "If *generator* is a :term:`generator` with no currently associated frame, " "then an empty dictionary is returned. :exc:`TypeError` is raised if " "*generator* is not a Python generator object." msgstr "" -#: ../../library/inspect.rst:1631 msgid "" "This function relies on the generator exposing a Python stack frame for " "introspection, which isn't guaranteed to be the case in all implementations " @@ -2162,90 +1767,74 @@ msgid "" "dictionary." msgstr "" -#: ../../library/inspect.rst:1640 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for coroutine objects created by :keyword:`async def` functions." msgstr "" -#: ../../library/inspect.rst:1647 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for asynchronous generator objects created by :keyword:`async def` functions " "which use the :keyword:`yield` statement." msgstr "" -#: ../../library/inspect.rst:1657 msgid "Code Objects Bit Flags" msgstr "" -#: ../../library/inspect.rst:1659 msgid "" "Python code objects have a :attr:`~codeobject.co_flags` attribute, which is " "a bitmap of the following flags:" msgstr "" -#: ../../library/inspect.rst:1664 msgid "The code object is optimized, using fast locals." msgstr "" -#: ../../library/inspect.rst:1668 msgid "" "If set, a new dict will be created for the frame's :attr:`~frame.f_locals` " "when the code object is executed." msgstr "" -#: ../../library/inspect.rst:1673 msgid "The code object has a variable positional parameter (``*args``-like)." msgstr "" -#: ../../library/inspect.rst:1677 msgid "The code object has a variable keyword parameter (``**kwargs``-like)." msgstr "" -#: ../../library/inspect.rst:1681 msgid "The flag is set when the code object is a nested function." msgstr "" -#: ../../library/inspect.rst:1685 msgid "" "The flag is set when the code object is a generator function, i.e. a " "generator object is returned when the code object is executed." msgstr "" -#: ../../library/inspect.rst:1690 msgid "" "The flag is set when the code object is a coroutine function. When the code " "object is executed it returns a coroutine object. See :pep:`492` for more " "details." msgstr "" -#: ../../library/inspect.rst:1698 msgid "" "The flag is used to transform generators into generator-based coroutines. " "Generator objects with this flag can be used in ``await`` expression, and " "can ``yield from`` coroutine objects. See :pep:`492` for more details." msgstr "" -#: ../../library/inspect.rst:1707 msgid "" "The flag is set when the code object is an asynchronous generator function. " "When the code object is executed it returns an asynchronous generator " "object. See :pep:`525` for more details." msgstr "" -#: ../../library/inspect.rst:1715 msgid "" "The flag is set when there is a docstring for the code object in the source " "code. If set, it will be the first item in :attr:`~codeobject.co_consts`." msgstr "" -#: ../../library/inspect.rst:1723 msgid "" "The flag is set when the code object is a function defined in class scope." msgstr "" -#: ../../library/inspect.rst:1729 msgid "" "The flags are specific to CPython, and may not be defined in other Python " "implementations. Furthermore, the flags are an implementation detail, and " @@ -2253,39 +1842,32 @@ msgid "" "use public APIs from the :mod:`inspect` module for any introspection needs." msgstr "" -#: ../../library/inspect.rst:1737 msgid "Buffer flags" msgstr "" -#: ../../library/inspect.rst:1741 msgid "" "This is an :class:`enum.IntFlag` that represents the flags that can be " -"passed to the :meth:`~object.__buffer__` method of objects implementing " -"the :ref:`buffer protocol `." +"passed to the :meth:`~object.__buffer__` method of objects implementing the :" +"ref:`buffer protocol `." msgstr "" -#: ../../library/inspect.rst:1745 msgid "The meaning of the flags is explained at :ref:`buffer-request-types`." msgstr "" -#: ../../library/inspect.rst:1772 msgid "Command Line Interface" msgstr "" -#: ../../library/inspect.rst:1774 msgid "" "The :mod:`inspect` module also provides a basic introspection capability " "from the command line." msgstr "" -#: ../../library/inspect.rst:1779 msgid "" "By default, accepts the name of a module and prints the source of that " "module. A class or function within the module can be printed instead by " "appended a colon and the qualified name of the target object." msgstr "" -#: ../../library/inspect.rst:1785 msgid "" "Print information about the specified object rather than the source code" msgstr "" diff --git a/library/internet.po b/library/internet.po index 8f037fc..13f0567 100644 --- a/library/internet.po +++ b/library/internet.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/internet.rst:5 msgid "Internet Protocols and Support" msgstr "" -#: ../../library/internet.rst:14 msgid "" "The modules described in this chapter implement internet protocols and " "support for related technology. They are all implemented in Python. Most of " -"these modules require the presence of the system-dependent " -"module :mod:`socket`, which is currently supported on most popular " -"platforms. Here is an overview:" +"these modules require the presence of the system-dependent module :mod:" +"`socket`, which is currently supported on most popular platforms. Here is " +"an overview:" msgstr "" -#: ../../library/internet.rst:7 msgid "WWW" msgstr "" -#: ../../library/internet.rst:7 msgid "Internet" msgstr "" -#: ../../library/internet.rst:7 msgid "World Wide Web" msgstr "" -#: ../../library/internet.rst:12 msgid "module" msgstr "" -#: ../../library/internet.rst:12 msgid "socket" msgstr "" diff --git a/library/intro.po b/library/intro.po index f711cb5..82c9fe6 100644 --- a/library/intro.po +++ b/library/intro.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/intro.rst:5 msgid "Introduction" msgstr "Bevezetés" -#: ../../library/intro.rst:7 msgid "The \"Python library\" contains several different kinds of components." msgstr "" -#: ../../library/intro.rst:9 msgid "" "It contains data types that would normally be considered part of the " "\"core\" of a language, such as numbers and lists. For these types, the " @@ -40,7 +37,6 @@ msgid "" "the spelling and priorities of operators.)" msgstr "" -#: ../../library/intro.rst:15 msgid "" "The library also contains built-in functions and exceptions --- objects that " "can be used by all Python code without the need of an :keyword:`import` " @@ -48,7 +44,6 @@ msgid "" "essential for the core semantics and are only described here." msgstr "" -#: ../../library/intro.rst:20 msgid "" "The bulk of the library, however, consists of a collection of modules. There " "are many ways to dissect this collection. Some modules are written in C and " @@ -64,14 +59,12 @@ msgid "" "when Python was compiled and installed." msgstr "" -#: ../../library/intro.rst:32 msgid "" "This manual is organized \"from the inside out:\" it first describes the " "built-in functions, data types and exceptions, and finally the modules, " "grouped in chapters of related modules." msgstr "" -#: ../../library/intro.rst:36 msgid "" "This means that if you start reading this manual from the start, and skip to " "the next chapter when you get bored, you will get a reasonable overview of " @@ -86,28 +79,23 @@ msgid "" "familiarity with this material." msgstr "" -#: ../../library/intro.rst:48 msgid "Let the show begin!" msgstr "" -#: ../../library/intro.rst:54 msgid "Notes on availability" msgstr "" -#: ../../library/intro.rst:56 msgid "" "An \"Availability: Unix\" note means that this function is commonly found on " "Unix systems. It does not make any claims about its existence on a specific " "operating system." msgstr "" -#: ../../library/intro.rst:60 msgid "" "If not separately noted, all functions that claim \"Availability: Unix\" are " "supported on macOS, iOS and Android, all of which build on a Unix core." msgstr "" -#: ../../library/intro.rst:63 msgid "" "If an availability note contains both a minimum Kernel version and a minimum " "libc version, then both conditions must hold. For example a feature with " @@ -115,11 +103,9 @@ msgid "" "3.17 or newer and glibc 2.27 or newer." msgstr "" -#: ../../library/intro.rst:71 msgid "WebAssembly platforms" msgstr "" -#: ../../library/intro.rst:73 msgid "" "The `WebAssembly`_ platforms ``wasm32-emscripten`` (`Emscripten`_) and " "``wasm32-wasi`` (`WASI`_) provide a subset of POSIX APIs. WebAssembly " @@ -133,7 +119,6 @@ msgid "" "loop." msgstr "" -#: ../../library/intro.rst:83 msgid "" "The properties and behavior of Python on WebAssembly platforms depend on the " "`Emscripten`_-SDK or `WASI`_-SDK version, WASM runtimes (browser, NodeJS, " @@ -142,7 +127,6 @@ msgid "" "the future." msgstr "" -#: ../../library/intro.rst:89 msgid "" "For Python in the browser, users should consider `Pyodide`_ or `PyScript`_. " "PyScript is built on top of Pyodide, which itself is built on top of CPython " @@ -151,17 +135,14 @@ msgid "" "``XMLHttpRequest`` and ``Fetch`` APIs." msgstr "" -#: ../../library/intro.rst:95 msgid "" "Process-related APIs are not available or always fail with an error. That " -"includes APIs that spawn new processes " -"(:func:`~os.fork`, :func:`~os.execve`), wait for processes " -"(:func:`~os.waitpid`), send signals (:func:`~os.kill`), or otherwise " -"interact with processes. The :mod:`subprocess` is importable but does not " -"work." +"includes APIs that spawn new processes (:func:`~os.fork`, :func:`~os." +"execve`), wait for processes (:func:`~os.waitpid`), send signals (:func:`~os." +"kill`), or otherwise interact with processes. The :mod:`subprocess` is " +"importable but does not work." msgstr "" -#: ../../library/intro.rst:101 msgid "" "The :mod:`socket` module is available, but is limited and behaves " "differently from other platforms. On Emscripten, sockets are always non-" @@ -171,52 +152,44 @@ msgid "" "file descriptor." msgstr "" -#: ../../library/intro.rst:108 msgid "" "Some functions are stubs that either don't do anything and always return " "hardcoded values." msgstr "" -#: ../../library/intro.rst:111 msgid "" "Functions related to file descriptors, file permissions, file ownership, and " "links are limited and don't support some operations. For example, WASI does " "not permit symlinks with absolute file names." msgstr "" -#: ../../library/intro.rst:127 msgid "Mobile platforms" msgstr "" -#: ../../library/intro.rst:129 msgid "" "Android and iOS are, in most respects, POSIX operating systems. File I/O, " "socket handling, and threading all behave as they would on any POSIX " "operating system. However, there are several major differences:" msgstr "" -#: ../../library/intro.rst:133 msgid "" "Mobile platforms can only use Python in \"embedded\" mode. There is no " -"Python REPL, and no ability to use separate executables such " -"as :program:`python` or :program:`pip`. To add Python code to your mobile " -"app, you must use the :ref:`Python embedding API `. For more " -"details, see :ref:`using-android` and :ref:`using-ios`." +"Python REPL, and no ability to use separate executables such as :program:" +"`python` or :program:`pip`. To add Python code to your mobile app, you must " +"use the :ref:`Python embedding API `. For more details, see :ref:" +"`using-android` and :ref:`using-ios`." msgstr "" -#: ../../library/intro.rst:139 msgid "Subprocesses:" msgstr "" -#: ../../library/intro.rst:141 msgid "" "On Android, creating subprocesses is possible but `officially unsupported " "`__. In " -"particular, Android does not support any part of the System V IPC API, " -"so :mod:`multiprocessing` is not available." +"particular, Android does not support any part of the System V IPC API, so :" +"mod:`multiprocessing` is not available." msgstr "" -#: ../../library/intro.rst:146 msgid "" "An iOS app cannot use any form of subprocessing, multiprocessing, or inter-" "process communication. If an iOS app attempts to create a subprocess, the " @@ -226,26 +199,22 @@ msgid "" "APIs that exist for this purpose." msgstr "" -#: ../../library/intro.rst:153 msgid "" "Mobile apps have limited access to modify system resources (such as the " "system clock). These resources will often be *readable*, but attempts to " "modify those resources will usually fail." msgstr "" -#: ../../library/intro.rst:157 msgid "Console input and output:" msgstr "" -#: ../../library/intro.rst:159 msgid "" "On Android, the native ``stdout`` and ``stderr`` are not connected to " "anything, so Python installs its own streams which redirect messages to the " -"system log. These can be seen under the tags ``python.stdout`` and " -"``python.stderr`` respectively." +"system log. These can be seen under the tags ``python.stdout`` and ``python." +"stderr`` respectively." msgstr "" -#: ../../library/intro.rst:164 msgid "" "iOS apps have a limited concept of console output. ``stdout`` and ``stderr`` " "*exist*, and content written to ``stdout`` and ``stderr`` will be visible in " @@ -255,15 +224,13 @@ msgid "" "``stderr``." msgstr "" -#: ../../library/intro.rst:171 msgid "" "Mobile apps have no usable ``stdin`` at all. While apps can display an on-" "screen keyboard, this is a software feature, not something that is attached " "to ``stdin``." msgstr "" -#: ../../library/intro.rst:175 msgid "" -"As a result, Python modules that involve console manipulation (such " -"as :mod:`curses` and :mod:`readline`) are not available on mobile platforms." +"As a result, Python modules that involve console manipulation (such as :mod:" +"`curses` and :mod:`readline`) are not available on mobile platforms." msgstr "" diff --git a/library/io.po b/library/io.po index 9e16b8f..7b94037 100644 --- a/library/io.po +++ b/library/io.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,19 +22,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/io.rst:2 msgid ":mod:`!io` --- Core tools for working with streams" msgstr "" -#: ../../library/io.rst:15 msgid "**Source code:** :source:`Lib/io.py`" msgstr "" -#: ../../library/io.rst:22 msgid "Overview" msgstr "" -#: ../../library/io.rst:27 msgid "" "The :mod:`io` module provides Python's main facilities for dealing with " "various types of I/O. There are three main types of I/O: *text I/O*, " @@ -44,7 +40,6 @@ msgid "" "are *stream* and *file-like object*." msgstr "" -#: ../../library/io.rst:34 msgid "" "Independent of its category, each concrete stream object will also have " "various capabilities: it can be read-only, write-only, or read-write. It can " @@ -53,25 +48,21 @@ msgid "" "pipe)." msgstr "" -#: ../../library/io.rst:40 msgid "" "All streams are careful about the type of data you give to them. For " "example giving a :class:`str` object to the :meth:`!write` method of a " -"binary stream will raise a :exc:`TypeError`. So will giving " -"a :class:`bytes` object to the :meth:`!write` method of a text stream." +"binary stream will raise a :exc:`TypeError`. So will giving a :class:" +"`bytes` object to the :meth:`!write` method of a text stream." msgstr "" -#: ../../library/io.rst:45 msgid "" "Operations that used to raise :exc:`IOError` now raise :exc:`OSError`, " "since :exc:`IOError` is now an alias of :exc:`OSError`." msgstr "" -#: ../../library/io.rst:51 ../../library/io.rst:867 ../../library/io.rst:1217 msgid "Text I/O" msgstr "" -#: ../../library/io.rst:53 msgid "" "Text I/O expects and produces :class:`str` objects. This means that " "whenever the backing store is natively made of bytes (such as in the case of " @@ -79,43 +70,35 @@ msgid "" "optional translation of platform-specific newline characters." msgstr "" -#: ../../library/io.rst:58 msgid "" "The easiest way to create a text stream is with :meth:`open`, optionally " "specifying an encoding::" msgstr "" -#: ../../library/io.rst:61 msgid "f = open(\"myfile.txt\", \"r\", encoding=\"utf-8\")" msgstr "" -#: ../../library/io.rst:63 msgid "" "In-memory text streams are also available as :class:`StringIO` objects::" msgstr "" -#: ../../library/io.rst:65 msgid "f = io.StringIO(\"some initial text data\")" msgstr "" -#: ../../library/io.rst:69 msgid "" "When working with a non-blocking stream, be aware that read operations on " "text I/O objects might raise a :exc:`BlockingIOError` if the stream cannot " "perform the operation immediately." msgstr "" -#: ../../library/io.rst:73 msgid "" -"The text stream API is described in detail in the documentation " -"of :class:`TextIOBase`." +"The text stream API is described in detail in the documentation of :class:" +"`TextIOBase`." msgstr "" -#: ../../library/io.rst:78 ../../library/io.rst:1205 msgid "Binary I/O" msgstr "" -#: ../../library/io.rst:80 msgid "" "Binary I/O (also called *buffered I/O*) expects :term:`bytes-like objects " "` and produces :class:`bytes` objects. No encoding, " @@ -124,42 +107,34 @@ msgid "" "the handling of text data is desired." msgstr "" -#: ../../library/io.rst:86 msgid "" "The easiest way to create a binary stream is with :meth:`open` with ``'b'`` " "in the mode string::" msgstr "" -#: ../../library/io.rst:89 msgid "f = open(\"myfile.jpg\", \"rb\")" msgstr "" -#: ../../library/io.rst:91 msgid "" "In-memory binary streams are also available as :class:`BytesIO` objects::" msgstr "" -#: ../../library/io.rst:93 msgid "f = io.BytesIO(b\"some initial binary data: \\x00\\x01\")" msgstr "" -#: ../../library/io.rst:95 msgid "" -"The binary stream API is described in detail in the docs " -"of :class:`BufferedIOBase`." +"The binary stream API is described in detail in the docs of :class:" +"`BufferedIOBase`." msgstr "" -#: ../../library/io.rst:98 msgid "" "Other library modules may provide additional ways to create text or binary " "streams. See :meth:`socket.socket.makefile` for example." msgstr "" -#: ../../library/io.rst:103 msgid "Raw I/O" msgstr "" -#: ../../library/io.rst:105 msgid "" "Raw I/O (also called *unbuffered I/O*) is generally used as a low-level " "building-block for binary and text streams; it is rarely useful to directly " @@ -167,26 +142,21 @@ msgid "" "stream by opening a file in binary mode with buffering disabled::" msgstr "" -#: ../../library/io.rst:110 msgid "f = open(\"myfile.jpg\", \"rb\", buffering=0)" msgstr "" -#: ../../library/io.rst:112 msgid "" "The raw stream API is described in detail in the docs of :class:`RawIOBase`." msgstr "" -#: ../../library/io.rst:118 msgid "Text Encoding" msgstr "" -#: ../../library/io.rst:120 msgid "" "The default encoding of :class:`TextIOWrapper` and :func:`open` is locale-" "specific (:func:`locale.getencoding`)." msgstr "" -#: ../../library/io.rst:123 msgid "" "However, many developers forget to specify the encoding when opening text " "files encoded in UTF-8 (e.g. JSON, TOML, Markdown, etc...) since most Unix " @@ -194,14 +164,12 @@ msgid "" "encoding is not UTF-8 for most Windows users. For example::" msgstr "" -#: ../../library/io.rst:128 msgid "" "# May not work on Windows when non-ASCII characters in the file.\n" "with open(\"README.md\") as f:\n" " long_description = f.read()" msgstr "" -#: ../../library/io.rst:132 msgid "" "Accordingly, it is highly recommended that you specify the encoding " "explicitly when opening text files. If you want to use UTF-8, pass " @@ -209,113 +177,92 @@ msgid "" "``encoding=\"locale\"`` is supported since Python 3.10." msgstr "" -#: ../../library/io.rst:139 msgid ":ref:`utf8-mode`" msgstr "" -#: ../../library/io.rst:140 msgid "" "Python UTF-8 Mode can be used to change the default encoding to UTF-8 from " "locale-specific encoding." msgstr "" -#: ../../library/io.rst:143 msgid ":pep:`686`" msgstr "" -#: ../../library/io.rst:144 msgid "Python 3.15 will make :ref:`utf8-mode` default." msgstr "" -#: ../../library/io.rst:149 msgid "Opt-in EncodingWarning" msgstr "" -#: ../../library/io.rst:151 msgid "See :pep:`597` for more details." msgstr "" -#: ../../library/io.rst:154 msgid "" -"To find where the default locale encoding is used, you can enable " -"the :option:`-X warn_default_encoding <-X>` command line option or set " -"the :envvar:`PYTHONWARNDEFAULTENCODING` environment variable, which will " -"emit an :exc:`EncodingWarning` when the default encoding is used." +"To find where the default locale encoding is used, you can enable the :" +"option:`-X warn_default_encoding <-X>` command line option or set the :" +"envvar:`PYTHONWARNDEFAULTENCODING` environment variable, which will emit an :" +"exc:`EncodingWarning` when the default encoding is used." msgstr "" -#: ../../library/io.rst:159 msgid "" "If you are providing an API that uses :func:`open` or :class:`TextIOWrapper` " -"and passes ``encoding=None`` as a parameter, you can " -"use :func:`text_encoding` so that callers of the API will emit " -"an :exc:`EncodingWarning` if they don't pass an ``encoding``. However, " -"please consider using UTF-8 by default (i.e. ``encoding=\"utf-8\"``) for new " -"APIs." +"and passes ``encoding=None`` as a parameter, you can use :func:" +"`text_encoding` so that callers of the API will emit an :exc:" +"`EncodingWarning` if they don't pass an ``encoding``. However, please " +"consider using UTF-8 by default (i.e. ``encoding=\"utf-8\"``) for new APIs." msgstr "" -#: ../../library/io.rst:168 msgid "High-level Module Interface" msgstr "" -#: ../../library/io.rst:172 msgid "" "An int containing the default buffer size used by the module's buffered I/O " -"classes. :func:`open` uses the file's blksize (as obtained " -"by :func:`os.stat`) if possible." +"classes. :func:`open` uses the file's blksize (as obtained by :func:`os." +"stat`) if possible." msgstr "" -#: ../../library/io.rst:179 msgid "This is an alias for the builtin :func:`open` function." msgstr "" -#: ../../library/io.rst:181 ../../library/io.rst:183 msgid "" "This function raises an :ref:`auditing event ` ``open`` with " "arguments *path*, *mode* and *flags*. The *mode* and *flags* arguments may " "have been modified or inferred from the original call." msgstr "" -#: ../../library/io.rst:190 msgid "" "Opens the provided file with mode ``'rb'``. This function should be used " "when the intent is to treat the contents as executable code." msgstr "" -#: ../../library/io.rst:193 msgid "*path* should be a :class:`str` and an absolute path." msgstr "" -#: ../../library/io.rst:195 msgid "" -"The behavior of this function may be overridden by an earlier call to " -"the :c:func:`PyFile_SetOpenCodeHook`. However, assuming that *path* is " -"a :class:`str` and an absolute path, ``open_code(path)`` should always " -"behave the same as ``open(path, 'rb')``. Overriding the behavior is intended " -"for additional validation or preprocessing of the file." +"The behavior of this function may be overridden by an earlier call to the :c:" +"func:`PyFile_SetOpenCodeHook`. However, assuming that *path* is a :class:" +"`str` and an absolute path, ``open_code(path)`` should always behave the " +"same as ``open(path, 'rb')``. Overriding the behavior is intended for " +"additional validation or preprocessing of the file." msgstr "" -#: ../../library/io.rst:206 msgid "" -"This is a helper function for callables that use :func:`open` " -"or :class:`TextIOWrapper` and have an ``encoding=None`` parameter." +"This is a helper function for callables that use :func:`open` or :class:" +"`TextIOWrapper` and have an ``encoding=None`` parameter." msgstr "" -#: ../../library/io.rst:209 msgid "" "This function returns *encoding* if it is not ``None``. Otherwise, it " "returns ``\"locale\"`` or ``\"utf-8\"`` depending on :ref:`UTF-8 Mode `." msgstr "" -#: ../../library/io.rst:213 msgid "" -"This function emits an :class:`EncodingWarning` " -"if :data:`sys.flags.warn_default_encoding ` is true and " -"*encoding* is ``None``. *stacklevel* specifies where the warning is emitted. " -"For example::" +"This function emits an :class:`EncodingWarning` if :data:`sys.flags." +"warn_default_encoding ` is true and *encoding* is ``None``. " +"*stacklevel* specifies where the warning is emitted. For example::" msgstr "" -#: ../../library/io.rst:218 msgid "" "def read_text(path, encoding=None):\n" " encoding = io.text_encoding(encoding) # stacklevel=2\n" @@ -323,49 +270,40 @@ msgid "" " return f.read()" msgstr "" -#: ../../library/io.rst:223 msgid "" "In this example, an :class:`EncodingWarning` is emitted for the caller of " "``read_text()``." msgstr "" -#: ../../library/io.rst:226 msgid "See :ref:`io-text-encoding` for more information." msgstr "" -#: ../../library/io.rst:230 msgid "" ":func:`text_encoding` returns \"utf-8\" when UTF-8 mode is enabled and " "*encoding* is ``None``." msgstr "" -#: ../../library/io.rst:237 msgid "" "This is a compatibility alias for the builtin :exc:`BlockingIOError` " "exception." msgstr "" -#: ../../library/io.rst:243 msgid "" "An exception inheriting :exc:`OSError` and :exc:`ValueError` that is raised " "when an unsupported operation is called on a stream." msgstr "" -#: ../../library/io.rst:249 msgid ":mod:`sys`" msgstr "" -#: ../../library/io.rst:250 msgid "" "contains the standard IO streams: :data:`sys.stdin`, :data:`sys.stdout`, " "and :data:`sys.stderr`." msgstr "" -#: ../../library/io.rst:255 msgid "Class hierarchy" msgstr "" -#: ../../library/io.rst:257 msgid "" "The implementation of I/O streams is organized as a hierarchy of classes. " "First :term:`abstract base classes ` (ABCs), which are " @@ -373,15 +311,13 @@ msgid "" "providing the standard stream implementations." msgstr "" -#: ../../library/io.rst:264 msgid "" "The abstract base classes also provide default implementations of some " "methods in order to help implementation of concrete stream classes. For " -"example, :class:`BufferedIOBase` provides unoptimized implementations " -"of :meth:`!readinto` and :meth:`!readline`." +"example, :class:`BufferedIOBase` provides unoptimized implementations of :" +"meth:`!readinto` and :meth:`!readline`." msgstr "" -#: ../../library/io.rst:269 msgid "" "At the top of the I/O hierarchy is the abstract base class :class:`IOBase`. " "It defines the basic interface to a stream. Note, however, that there is no " @@ -390,27 +326,22 @@ msgid "" "operation." msgstr "" -#: ../../library/io.rst:274 msgid "" "The :class:`RawIOBase` ABC extends :class:`IOBase`. It deals with the " -"reading and writing of bytes to a stream. :class:`FileIO` " -"subclasses :class:`RawIOBase` to provide an interface to files in the " -"machine's file system." +"reading and writing of bytes to a stream. :class:`FileIO` subclasses :class:" +"`RawIOBase` to provide an interface to files in the machine's file system." msgstr "" -#: ../../library/io.rst:278 msgid "" "The :class:`BufferedIOBase` ABC extends :class:`IOBase`. It deals with " -"buffering on a raw binary stream (:class:`RawIOBase`). Its " -"subclasses, :class:`BufferedWriter`, :class:`BufferedReader`, " -"and :class:`BufferedRWPair` buffer raw binary streams that are writable, " -"readable, and both readable and writable, " -"respectively. :class:`BufferedRandom` provides a buffered interface to " -"seekable streams. Another :class:`BufferedIOBase` " -"subclass, :class:`BytesIO`, is a stream of in-memory bytes." +"buffering on a raw binary stream (:class:`RawIOBase`). Its subclasses, :" +"class:`BufferedWriter`, :class:`BufferedReader`, and :class:`BufferedRWPair` " +"buffer raw binary streams that are writable, readable, and both readable and " +"writable, respectively. :class:`BufferedRandom` provides a buffered " +"interface to seekable streams. Another :class:`BufferedIOBase` subclass, :" +"class:`BytesIO`, is a stream of in-memory bytes." msgstr "" -#: ../../library/io.rst:286 msgid "" "The :class:`TextIOBase` ABC extends :class:`IOBase`. It deals with streams " "whose bytes represent text, and handles encoding and decoding to and from " @@ -419,102 +350,79 @@ msgid "" "Finally, :class:`StringIO` is an in-memory stream for text." msgstr "" -#: ../../library/io.rst:292 msgid "" -"Argument names are not part of the specification, and only the arguments " -"of :func:`open` are intended to be used as keyword arguments." +"Argument names are not part of the specification, and only the arguments of :" +"func:`open` are intended to be used as keyword arguments." msgstr "" -#: ../../library/io.rst:295 msgid "" "The following table summarizes the ABCs provided by the :mod:`io` module:" msgstr "" -#: ../../library/io.rst:300 msgid "ABC" msgstr "" -#: ../../library/io.rst:300 msgid "Inherits" msgstr "" -#: ../../library/io.rst:300 msgid "Stub Methods" msgstr "" -#: ../../library/io.rst:300 msgid "Mixin Methods and Properties" msgstr "" -#: ../../library/io.rst:302 ../../library/io.rst:307 ../../library/io.rst:309 -#: ../../library/io.rst:311 msgid ":class:`IOBase`" msgstr "" -#: ../../library/io.rst:302 msgid "``fileno``, ``seek``, and ``truncate``" msgstr "" -#: ../../library/io.rst:302 msgid "" "``close``, ``closed``, ``__enter__``, ``__exit__``, ``flush``, ``isatty``, " "``__iter__``, ``__next__``, ``readable``, ``readline``, ``readlines``, " "``seekable``, ``tell``, ``writable``, and ``writelines``" msgstr "" -#: ../../library/io.rst:307 msgid ":class:`RawIOBase`" msgstr "" -#: ../../library/io.rst:307 msgid "``readinto`` and ``write``" msgstr "" -#: ../../library/io.rst:307 msgid "Inherited :class:`IOBase` methods, ``read``, and ``readall``" msgstr "" -#: ../../library/io.rst:309 msgid ":class:`BufferedIOBase`" msgstr "" -#: ../../library/io.rst:309 msgid "``detach``, ``read``, ``read1``, and ``write``" msgstr "" -#: ../../library/io.rst:309 msgid "Inherited :class:`IOBase` methods, ``readinto``, and ``readinto1``" msgstr "" -#: ../../library/io.rst:311 msgid ":class:`TextIOBase`" msgstr "" -#: ../../library/io.rst:311 msgid "``detach``, ``read``, ``readline``, and ``write``" msgstr "" -#: ../../library/io.rst:311 msgid "" "Inherited :class:`IOBase` methods, ``encoding``, ``errors``, and ``newlines``" msgstr "" -#: ../../library/io.rst:318 msgid "I/O Base Classes" msgstr "" -#: ../../library/io.rst:322 msgid "The abstract base class for all I/O classes." msgstr "" -#: ../../library/io.rst:324 msgid "" "This class provides empty abstract implementations for many methods that " "derived classes can override selectively; the default implementations " "represent a file that cannot be read, written or seeked." msgstr "" -#: ../../library/io.rst:329 msgid "" "Even though :class:`IOBase` does not declare :meth:`!read` or :meth:`!write` " "because their signatures will vary, implementations and clients should " @@ -523,21 +431,17 @@ msgid "" "they do not support are called." msgstr "" -#: ../../library/io.rst:335 msgid "" -"The basic type used for binary data read from or written to a file " -"is :class:`bytes`. Other :term:`bytes-like objects ` are " -"accepted as method arguments too. Text I/O classes work with :class:`str` " -"data." +"The basic type used for binary data read from or written to a file is :class:" +"`bytes`. Other :term:`bytes-like objects ` are accepted " +"as method arguments too. Text I/O classes work with :class:`str` data." msgstr "" -#: ../../library/io.rst:339 msgid "" "Note that calling any method (even inquiries) on a closed stream is " "undefined. Implementations may raise :exc:`ValueError` in this case." msgstr "" -#: ../../library/io.rst:342 msgid "" ":class:`IOBase` (and its subclasses) supports the iterator protocol, meaning " "that an :class:`IOBase` object can be iterated over yielding the lines in a " @@ -546,145 +450,119 @@ msgid "" "character strings). See :meth:`~IOBase.readline` below." msgstr "" -#: ../../library/io.rst:348 msgid "" -":class:`IOBase` is also a context manager and therefore supports " -"the :keyword:`with` statement. In this example, *file* is closed after " -"the :keyword:`!with` statement's suite is finished---even if an exception " -"occurs::" +":class:`IOBase` is also a context manager and therefore supports the :" +"keyword:`with` statement. In this example, *file* is closed after the :" +"keyword:`!with` statement's suite is finished---even if an exception occurs::" msgstr "" -#: ../../library/io.rst:352 msgid "" "with open('spam.txt', 'w') as file:\n" " file.write('Spam and eggs!')" msgstr "" -#: ../../library/io.rst:355 msgid ":class:`IOBase` provides these data attributes and methods:" msgstr "" -#: ../../library/io.rst:359 msgid "" "Flush and close this stream. This method has no effect if the file is " "already closed. Once the file is closed, any operation on the file (e.g. " "reading or writing) will raise a :exc:`ValueError`." msgstr "" -#: ../../library/io.rst:363 msgid "" "As a convenience, it is allowed to call this method more than once; only the " "first call, however, will have an effect." msgstr "" -#: ../../library/io.rst:368 msgid "``True`` if the stream is closed." msgstr "" -#: ../../library/io.rst:372 msgid "" "Return the underlying file descriptor (an integer) of the stream if it " "exists. An :exc:`OSError` is raised if the IO object does not use a file " "descriptor." msgstr "" -#: ../../library/io.rst:378 msgid "" "Flush the write buffers of the stream if applicable. This does nothing for " "read-only and non-blocking streams." msgstr "" -#: ../../library/io.rst:383 msgid "" "Return ``True`` if the stream is interactive (i.e., connected to a terminal/" "tty device)." msgstr "" -#: ../../library/io.rst:388 msgid "" "Return ``True`` if the stream can be read from. If ``False``, :meth:`!read` " "will raise :exc:`OSError`." msgstr "" -#: ../../library/io.rst:393 msgid "" "Read and return one line from the stream. If *size* is specified, at most " "*size* bytes will be read." msgstr "" -#: ../../library/io.rst:396 msgid "" "The line terminator is always ``b'\\n'`` for binary files; for text files, " "the *newline* argument to :func:`open` can be used to select the line " "terminator(s) recognized." msgstr "" -#: ../../library/io.rst:402 msgid "" "Read and return a list of lines from the stream. *hint* can be specified to " "control the number of lines read: no more lines will be read if the total " "size (in bytes/characters) of all lines so far exceeds *hint*." msgstr "" -#: ../../library/io.rst:406 msgid "" "*hint* values of ``0`` or less, as well as ``None``, are treated as no hint." msgstr "" -#: ../../library/io.rst:409 msgid "" "Note that it's already possible to iterate on file objects using ``for line " "in file: ...`` without calling :meth:`!file.readlines`." msgstr "" -#: ../../library/io.rst:414 msgid "" "Change the stream position to the given byte *offset*, interpreted relative " "to the position indicated by *whence*, and return the new absolute position. " "Values for *whence* are:" msgstr "" -#: ../../library/io.rst:419 msgid "" ":data:`os.SEEK_SET` or ``0`` -- start of the stream (the default); *offset* " "should be zero or positive" msgstr "" -#: ../../library/io.rst:421 msgid "" ":data:`os.SEEK_CUR` or ``1`` -- current stream position; *offset* may be " "negative" msgstr "" -#: ../../library/io.rst:423 msgid "" ":data:`os.SEEK_END` or ``2`` -- end of the stream; *offset* is usually " "negative" msgstr "" -#: ../../library/io.rst:426 ../../library/io.rst:943 msgid "The :data:`!SEEK_*` constants." msgstr "" -#: ../../library/io.rst:429 msgid "" -"Some operating systems could support additional values, " -"like :const:`os.SEEK_HOLE` or :const:`os.SEEK_DATA`. The valid values for a " -"file could depend on it being open in text or binary mode." +"Some operating systems could support additional values, like :const:`os." +"SEEK_HOLE` or :const:`os.SEEK_DATA`. The valid values for a file could " +"depend on it being open in text or binary mode." msgstr "" -#: ../../library/io.rst:436 msgid "" -"Return ``True`` if the stream supports random access. If " -"``False``, :meth:`seek`, :meth:`tell` and :meth:`truncate` will " -"raise :exc:`OSError`." +"Return ``True`` if the stream supports random access. If ``False``, :meth:" +"`seek`, :meth:`tell` and :meth:`truncate` will raise :exc:`OSError`." msgstr "" -#: ../../library/io.rst:441 msgid "Return the current stream position." msgstr "" -#: ../../library/io.rst:445 msgid "" "Resize the stream to the given *size* in bytes (or the current position if " "*size* is not specified). The current stream position isn't changed. This " @@ -693,34 +571,28 @@ msgid "" "additional bytes are zero-filled). The new file size is returned." msgstr "" -#: ../../library/io.rst:452 msgid "Windows will now zero-fill files when extending." msgstr "" -#: ../../library/io.rst:457 msgid "" "Return ``True`` if the stream supports writing. If ``False``, :meth:`!" "write` and :meth:`truncate` will raise :exc:`OSError`." msgstr "" -#: ../../library/io.rst:462 msgid "" "Write a list of lines to the stream. Line separators are not added, so it " "is usual for each of the lines provided to have a line separator at the end." msgstr "" -#: ../../library/io.rst:468 msgid "" "Prepare for object destruction. :class:`IOBase` provides a default " -"implementation of this method that calls the " -"instance's :meth:`~IOBase.close` method." +"implementation of this method that calls the instance's :meth:`~IOBase." +"close` method." msgstr "" -#: ../../library/io.rst:475 msgid "Base class for raw binary streams. It inherits from :class:`IOBase`." msgstr "" -#: ../../library/io.rst:477 msgid "" "Raw binary streams typically provide low-level access to an underlying OS " "device or API, and do not try to encapsulate it in high-level primitives " @@ -728,13 +600,11 @@ msgid "" "text streams, described later in this page)." msgstr "" -#: ../../library/io.rst:482 msgid "" -":class:`RawIOBase` provides these methods in addition to those " -"from :class:`IOBase`:" +":class:`RawIOBase` provides these methods in addition to those from :class:" +"`IOBase`:" msgstr "" -#: ../../library/io.rst:487 msgid "" "Read up to *size* bytes from the object and return them. As a convenience, " "if *size* is unspecified or -1, all bytes until EOF are returned. Otherwise, " @@ -742,33 +612,28 @@ msgid "" "if the operating system call returns fewer than *size* bytes." msgstr "" -#: ../../library/io.rst:492 msgid "" "If 0 bytes are returned, and *size* was not 0, this indicates end of file. " "If the object is in non-blocking mode and no bytes are available, ``None`` " "is returned." msgstr "" -#: ../../library/io.rst:496 msgid "" "The default implementation defers to :meth:`readall` and :meth:`readinto`." msgstr "" -#: ../../library/io.rst:501 msgid "" "Read and return all the bytes from the stream until EOF, using multiple " "calls to the stream if necessary." msgstr "" -#: ../../library/io.rst:506 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, and " -"return the number of bytes read. For example, *b* might be " -"a :class:`bytearray`. If the object is in non-blocking mode and no bytes are " +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`. If the object is in non-blocking mode and no bytes are " "available, ``None`` is returned." msgstr "" -#: ../../library/io.rst:514 msgid "" "Write the given :term:`bytes-like object`, *b*, to the underlying raw " "stream, and return the number of bytes written. This can be less than the " @@ -779,21 +644,17 @@ msgid "" "the implementation should only access *b* during the method call." msgstr "" -#: ../../library/io.rst:527 msgid "" "Base class for binary streams that support some kind of buffering. It " "inherits from :class:`IOBase`." msgstr "" -#: ../../library/io.rst:530 msgid "" -"The main difference with :class:`RawIOBase` is that " -"methods :meth:`read`, :meth:`readinto` and :meth:`write` will try " -"(respectively) to read as much input as requested or to emit all provided " -"data." +"The main difference with :class:`RawIOBase` is that methods :meth:`read`, :" +"meth:`readinto` and :meth:`write` will try (respectively) to read as much " +"input as requested or to emit all provided data." msgstr "" -#: ../../library/io.rst:534 msgid "" "In addition, if the underlying raw stream is in non-blocking mode, when the " "system returns would block :meth:`write` will raise :exc:`BlockingIOError` " @@ -801,80 +662,67 @@ msgid "" "data read so far or ``None`` if no data is available." msgstr "" -#: ../../library/io.rst:539 msgid "" "Besides, the :meth:`read` method does not have a default implementation that " "defers to :meth:`readinto`." msgstr "" -#: ../../library/io.rst:542 msgid "" -"A typical :class:`BufferedIOBase` implementation should not inherit from " -"a :class:`RawIOBase` implementation, but wrap one, " -"like :class:`BufferedWriter` and :class:`BufferedReader` do." +"A typical :class:`BufferedIOBase` implementation should not inherit from a :" +"class:`RawIOBase` implementation, but wrap one, like :class:`BufferedWriter` " +"and :class:`BufferedReader` do." msgstr "" -#: ../../library/io.rst:546 msgid "" ":class:`BufferedIOBase` provides or overrides these data attributes and " "methods in addition to those from :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:551 msgid "" -"The underlying raw stream (a :class:`RawIOBase` instance) " -"that :class:`BufferedIOBase` deals with. This is not part of " -"the :class:`BufferedIOBase` API and may not exist on some implementations." +"The underlying raw stream (a :class:`RawIOBase` instance) that :class:" +"`BufferedIOBase` deals with. This is not part of the :class:" +"`BufferedIOBase` API and may not exist on some implementations." msgstr "" -#: ../../library/io.rst:557 msgid "Separate the underlying raw stream from the buffer and return it." msgstr "" -#: ../../library/io.rst:559 msgid "" "After the raw stream has been detached, the buffer is in an unusable state." msgstr "" -#: ../../library/io.rst:562 msgid "" "Some buffers, like :class:`BytesIO`, do not have the concept of a single raw " "stream to return from this method. They raise :exc:`UnsupportedOperation`." msgstr "" -#: ../../library/io.rst:570 msgid "" "Read and return up to *size* bytes. If the argument is omitted, ``None``, or " "negative read as much as possible." msgstr "" -#: ../../library/io.rst:573 msgid "" "Fewer bytes may be returned than requested. An empty :class:`bytes` object " "is returned if the stream is already at EOF. More than one read may be made " -"and calls may be retried if specific errors are encountered, " -"see :meth:`os.read` and :pep:`475` for more details. Less than size bytes " -"being returned does not imply that EOF is imminent." +"and calls may be retried if specific errors are encountered, see :meth:`os." +"read` and :pep:`475` for more details. Less than size bytes being returned " +"does not imply that EOF is imminent." msgstr "" -#: ../../library/io.rst:579 msgid "" -"When reading as much as possible the default implementation will use " -"``raw.readall`` if available (which should " -"implement :meth:`RawIOBase.readall`), otherwise will read in a loop until " -"read returns ``None``, an empty :class:`bytes`, or a non-retryable error. " -"For most streams this is to EOF, but for non-blocking streams more data may " -"become available." +"When reading as much as possible the default implementation will use ``raw." +"readall`` if available (which should implement :meth:`RawIOBase.readall`), " +"otherwise will read in a loop until read returns ``None``, an empty :class:" +"`bytes`, or a non-retryable error. For most streams this is to EOF, but for " +"non-blocking streams more data may become available." msgstr "" -#: ../../library/io.rst:588 ../../library/io.rst:601 msgid "" "When the underlying raw stream is non-blocking, implementations may either " -"raise :exc:`BlockingIOError` or return ``None`` if no data is " -"available. :mod:`io` implementations return ``None``." +"raise :exc:`BlockingIOError` or return ``None`` if no data is available. :" +"mod:`io` implementations return ``None``." msgstr "" -#: ../../library/io.rst:594 msgid "" "Read and return up to *size* bytes, calling :meth:`~RawIOBase.readinto` " "which may retry if :py:const:`~errno.EINTR` is encountered per :pep:`475`. " @@ -882,34 +730,29 @@ msgid "" "arbitrary value for *size*." msgstr "" -#: ../../library/io.rst:607 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b* and " -"return the number of bytes read. For example, *b* might be " -"a :class:`bytearray`." +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`." msgstr "" -#: ../../library/io.rst:611 msgid "" "Like :meth:`read`, multiple reads may be issued to the underlying raw " "stream, unless the latter is interactive." msgstr "" -#: ../../library/io.rst:614 ../../library/io.rst:624 msgid "" "A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " "blocking-mode, and has no data available at the moment." msgstr "" -#: ../../library/io.rst:619 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, " -"using at most one call to the underlying raw " -"stream's :meth:`~RawIOBase.read` (or :meth:`~RawIOBase.readinto`) method. " -"Return the number of bytes read." +"using at most one call to the underlying raw stream's :meth:`~RawIOBase." +"read` (or :meth:`~RawIOBase.readinto`) method. Return the number of bytes " +"read." msgstr "" -#: ../../library/io.rst:631 msgid "" "Write the given :term:`bytes-like object`, *b*, and return the number of " "bytes written (always equal to the length of *b* in bytes, since if the " @@ -918,41 +761,34 @@ msgid "" "or held in a buffer for performance and latency reasons." msgstr "" -#: ../../library/io.rst:638 msgid "" "When in non-blocking mode, a :exc:`BlockingIOError` is raised if the data " "needed to be written to the raw stream but it couldn't accept all the data " "without blocking." msgstr "" -#: ../../library/io.rst:642 msgid "" "The caller may release or mutate *b* after this method returns, so the " "implementation should only access *b* during the method call." msgstr "" -#: ../../library/io.rst:647 msgid "Raw File I/O" msgstr "" -#: ../../library/io.rst:651 msgid "" "A raw binary stream representing an OS-level file containing bytes data. It " "inherits from :class:`RawIOBase`." msgstr "" -#: ../../library/io.rst:654 msgid "The *name* can be one of two things:" msgstr "" -#: ../../library/io.rst:656 msgid "" "a character string or :class:`bytes` object representing the path to the " "file which will be opened. In this case closefd must be ``True`` (the " "default) otherwise an error will be raised." msgstr "" -#: ../../library/io.rst:659 msgid "" "an integer representing the number of an existing OS-level file descriptor " "to which the resulting :class:`FileIO` object will give access. When the " @@ -960,7 +796,6 @@ msgid "" "set to ``False``." msgstr "" -#: ../../library/io.rst:664 msgid "" "The *mode* can be ``'r'``, ``'w'``, ``'x'`` or ``'a'`` for reading " "(default), writing, exclusive creation or appending. The file will be " @@ -971,14 +806,12 @@ msgid "" "``'+'`` to the mode to allow simultaneous reading and writing." msgstr "" -#: ../../library/io.rst:672 msgid "" -"The :meth:`~RawIOBase.read` (when called with a positive " -"argument), :meth:`~RawIOBase.readinto` and :meth:`~RawIOBase.write` methods " -"on this class will only make one system call." +"The :meth:`~RawIOBase.read` (when called with a positive argument), :meth:" +"`~RawIOBase.readinto` and :meth:`~RawIOBase.write` methods on this class " +"will only make one system call." msgstr "" -#: ../../library/io.rst:676 msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -987,77 +820,63 @@ msgid "" "similar to passing ``None``)." msgstr "" -#: ../../library/io.rst:682 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" -#: ../../library/io.rst:684 msgid "" "See the :func:`open` built-in function for examples on using the *opener* " "parameter." msgstr "" -#: ../../library/io.rst:687 msgid "The *opener* parameter was added. The ``'x'`` mode was added." msgstr "" -#: ../../library/io.rst:691 msgid "The file is now non-inheritable." msgstr "" -#: ../../library/io.rst:694 msgid "" -":class:`FileIO` provides these data attributes in addition to those " -"from :class:`RawIOBase` and :class:`IOBase`:" +":class:`FileIO` provides these data attributes in addition to those from :" +"class:`RawIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:699 msgid "The mode as given in the constructor." msgstr "" -#: ../../library/io.rst:703 msgid "" "The file name. This is the file descriptor of the file when no name is " "given in the constructor." msgstr "" -#: ../../library/io.rst:708 msgid "Buffered Streams" msgstr "" -#: ../../library/io.rst:710 msgid "" "Buffered I/O streams provide a higher-level interface to an I/O device than " "raw I/O does." msgstr "" -#: ../../library/io.rst:715 msgid "" -"A binary stream using an in-memory bytes buffer. It inherits " -"from :class:`BufferedIOBase`. The buffer is discarded when " -"the :meth:`~IOBase.close` method is called." +"A binary stream using an in-memory bytes buffer. It inherits from :class:" +"`BufferedIOBase`. The buffer is discarded when the :meth:`~IOBase.close` " +"method is called." msgstr "" -#: ../../library/io.rst:719 msgid "" "The optional argument *initial_bytes* is a :term:`bytes-like object` that " "contains initial data." msgstr "" -#: ../../library/io.rst:722 msgid "" ":class:`BytesIO` provides or overrides these methods in addition to those " "from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:727 msgid "" "Return a readable and writable view over the contents of the buffer without " "copying them. Also, mutating the view will transparently update the " "contents of the buffer::" msgstr "" -#: ../../library/io.rst:731 msgid "" ">>> b = io.BytesIO(b\"abcdef\")\n" ">>> view = b.getbuffer()\n" @@ -1066,303 +885,252 @@ msgid "" "b'ab56ef'" msgstr "" -#: ../../library/io.rst:738 msgid "" "As long as the view exists, the :class:`BytesIO` object cannot be resized or " "closed." msgstr "" -#: ../../library/io.rst:745 msgid "Return :class:`bytes` containing the entire contents of the buffer." msgstr "" -#: ../../library/io.rst:750 msgid "In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.read`." msgstr "" -#: ../../library/io.rst:752 ../../library/io.rst:792 msgid "The *size* argument is now optional." msgstr "" -#: ../../library/io.rst:757 msgid "" "In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.readinto`." msgstr "" -#: ../../library/io.rst:763 msgid "" "A buffered binary stream providing higher-level access to a readable, non " -"seekable :class:`RawIOBase` raw binary stream. It inherits " -"from :class:`BufferedIOBase`." +"seekable :class:`RawIOBase` raw binary stream. It inherits from :class:" +"`BufferedIOBase`." msgstr "" -#: ../../library/io.rst:767 msgid "" "When reading data from this object, a larger amount of data may be requested " "from the underlying raw stream, and kept in an internal buffer. The buffered " "data can then be returned directly on subsequent reads." msgstr "" -#: ../../library/io.rst:771 msgid "" "The constructor creates a :class:`BufferedReader` for the given readable " -"*raw* stream and *buffer_size*. If *buffer_size* is " -"omitted, :data:`DEFAULT_BUFFER_SIZE` is used." +"*raw* stream and *buffer_size*. If *buffer_size* is omitted, :data:" +"`DEFAULT_BUFFER_SIZE` is used." msgstr "" -#: ../../library/io.rst:775 msgid "" ":class:`BufferedReader` provides or overrides these methods in addition to " "those from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:780 msgid "" "Return bytes from the stream without advancing the position. The number of " "bytes returned may be less or more than requested. If the underlying raw " "stream is non-blocking and the operation would block, returns empty bytes." msgstr "" -#: ../../library/io.rst:786 msgid "" "In :class:`BufferedReader` this is the same as :meth:`io.BufferedIOBase.read`" msgstr "" -#: ../../library/io.rst:790 msgid "" -"In :class:`BufferedReader` this is the same " -"as :meth:`io.BufferedIOBase.read1`" +"In :class:`BufferedReader` this is the same as :meth:`io.BufferedIOBase." +"read1`" msgstr "" -#: ../../library/io.rst:797 msgid "" "A buffered binary stream providing higher-level access to a writeable, non " -"seekable :class:`RawIOBase` raw binary stream. It inherits " -"from :class:`BufferedIOBase`." +"seekable :class:`RawIOBase` raw binary stream. It inherits from :class:" +"`BufferedIOBase`." msgstr "" -#: ../../library/io.rst:801 msgid "" "When writing to this object, data is normally placed into an internal " "buffer. The buffer will be written out to the underlying :class:`RawIOBase` " "object under various conditions, including:" msgstr "" -#: ../../library/io.rst:805 msgid "when the buffer gets too small for all pending data;" msgstr "" -#: ../../library/io.rst:806 msgid "when :meth:`flush` is called;" msgstr "" -#: ../../library/io.rst:807 msgid "" "when a :meth:`~IOBase.seek` is requested (for :class:`BufferedRandom` " "objects);" msgstr "" -#: ../../library/io.rst:808 msgid "when the :class:`BufferedWriter` object is closed or destroyed." msgstr "" -#: ../../library/io.rst:810 msgid "" "The constructor creates a :class:`BufferedWriter` for the given writeable " -"*raw* stream. If the *buffer_size* is not given, it defaults " -"to :data:`DEFAULT_BUFFER_SIZE`." +"*raw* stream. If the *buffer_size* is not given, it defaults to :data:" +"`DEFAULT_BUFFER_SIZE`." msgstr "" -#: ../../library/io.rst:814 msgid "" ":class:`BufferedWriter` provides or overrides these methods in addition to " "those from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:819 msgid "" -"Force bytes held in the buffer into the raw stream. " -"A :exc:`BlockingIOError` should be raised if the raw stream blocks." +"Force bytes held in the buffer into the raw stream. A :exc:" +"`BlockingIOError` should be raised if the raw stream blocks." msgstr "" -#: ../../library/io.rst:824 msgid "" "Write the :term:`bytes-like object`, *b*, and return the number of bytes " -"written. When in non-blocking mode, a :exc:`BlockingIOError` " -"with :attr:`BlockingIOError.characters_written` set is raised if the buffer " -"needs to be written out but the raw stream blocks." +"written. When in non-blocking mode, a :exc:`BlockingIOError` with :attr:" +"`BlockingIOError.characters_written` set is raised if the buffer needs to be " +"written out but the raw stream blocks." msgstr "" -#: ../../library/io.rst:832 msgid "" -"A buffered binary stream providing higher-level access to a " -"seekable :class:`RawIOBase` raw binary stream. It inherits " -"from :class:`BufferedReader` and :class:`BufferedWriter`." +"A buffered binary stream providing higher-level access to a seekable :class:" +"`RawIOBase` raw binary stream. It inherits from :class:`BufferedReader` " +"and :class:`BufferedWriter`." msgstr "" -#: ../../library/io.rst:836 msgid "" "The constructor creates a reader and writer for a seekable raw stream, given " -"in the first argument. If the *buffer_size* is omitted it defaults " -"to :data:`DEFAULT_BUFFER_SIZE`." +"in the first argument. If the *buffer_size* is omitted it defaults to :data:" +"`DEFAULT_BUFFER_SIZE`." msgstr "" -#: ../../library/io.rst:840 msgid "" -":class:`BufferedRandom` is capable of anything :class:`BufferedReader` " -"or :class:`BufferedWriter` can do. In addition, :meth:`~IOBase.seek` " -"and :meth:`~IOBase.tell` are guaranteed to be implemented." +":class:`BufferedRandom` is capable of anything :class:`BufferedReader` or :" +"class:`BufferedWriter` can do. In addition, :meth:`~IOBase.seek` and :meth:" +"`~IOBase.tell` are guaranteed to be implemented." msgstr "" -#: ../../library/io.rst:847 msgid "" -"A buffered binary stream providing higher-level access to two non " -"seekable :class:`RawIOBase` raw binary streams---one readable, the other " -"writeable. It inherits from :class:`BufferedIOBase`." +"A buffered binary stream providing higher-level access to two non seekable :" +"class:`RawIOBase` raw binary streams---one readable, the other writeable. It " +"inherits from :class:`BufferedIOBase`." msgstr "" -#: ../../library/io.rst:851 msgid "" "*reader* and *writer* are :class:`RawIOBase` objects that are readable and " -"writeable respectively. If the *buffer_size* is omitted it defaults " -"to :data:`DEFAULT_BUFFER_SIZE`." +"writeable respectively. If the *buffer_size* is omitted it defaults to :" +"data:`DEFAULT_BUFFER_SIZE`." msgstr "" -#: ../../library/io.rst:855 msgid "" ":class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\\'s " -"methods except for :meth:`~BufferedIOBase.detach`, which " -"raises :exc:`UnsupportedOperation`." +"methods except for :meth:`~BufferedIOBase.detach`, which raises :exc:" +"`UnsupportedOperation`." msgstr "" -#: ../../library/io.rst:861 msgid "" ":class:`BufferedRWPair` does not attempt to synchronize accesses to its " "underlying raw streams. You should not pass it the same object as reader " "and writer; use :class:`BufferedRandom` instead." msgstr "" -#: ../../library/io.rst:871 msgid "" "Base class for text streams. This class provides a character and line based " "interface to stream I/O. It inherits from :class:`IOBase`." msgstr "" -#: ../../library/io.rst:874 msgid "" ":class:`TextIOBase` provides or overrides these data attributes and methods " "in addition to those from :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:879 msgid "" "The name of the encoding used to decode the stream's bytes into strings, and " "to encode strings into bytes." msgstr "" -#: ../../library/io.rst:884 msgid "The error setting of the decoder or encoder." msgstr "" -#: ../../library/io.rst:888 msgid "" "A string, a tuple of strings, or ``None``, indicating the newlines " "translated so far. Depending on the implementation and the initial " "constructor flags, this may not be available." msgstr "" -#: ../../library/io.rst:894 msgid "" -"The underlying binary buffer (a :class:`BufferedIOBase` " -"or :class:`RawIOBase` instance) that :class:`TextIOBase` deals with. This is " -"not part of the :class:`TextIOBase` API and may not exist in some " -"implementations." +"The underlying binary buffer (a :class:`BufferedIOBase` or :class:" +"`RawIOBase` instance) that :class:`TextIOBase` deals with. This is not part " +"of the :class:`TextIOBase` API and may not exist in some implementations." msgstr "" -#: ../../library/io.rst:901 msgid "" "Separate the underlying binary buffer from the :class:`TextIOBase` and " "return it." msgstr "" -#: ../../library/io.rst:904 msgid "" "After the underlying buffer has been detached, the :class:`TextIOBase` is in " "an unusable state." msgstr "" -#: ../../library/io.rst:907 msgid "" "Some :class:`TextIOBase` implementations, like :class:`StringIO`, may not " -"have the concept of an underlying buffer and calling this method will " -"raise :exc:`UnsupportedOperation`." +"have the concept of an underlying buffer and calling this method will raise :" +"exc:`UnsupportedOperation`." msgstr "" -#: ../../library/io.rst:915 msgid "" -"Read and return at most *size* characters from the stream as a " -"single :class:`str`. If *size* is negative or ``None``, reads until EOF." +"Read and return at most *size* characters from the stream as a single :class:" +"`str`. If *size* is negative or ``None``, reads until EOF." msgstr "" -#: ../../library/io.rst:920 msgid "" "Read until newline or EOF and return a single :class:`str`. If the stream " "is already at EOF, an empty string is returned." msgstr "" -#: ../../library/io.rst:923 msgid "If *size* is specified, at most *size* characters will be read." msgstr "" -#: ../../library/io.rst:927 msgid "" "Change the stream position to the given *offset*. Behaviour depends on the " "*whence* parameter. The default value for *whence* is :data:`!SEEK_SET`." msgstr "" -#: ../../library/io.rst:931 msgid "" ":data:`!SEEK_SET` or ``0``: seek from the start of the stream (the default); " "*offset* must either be a number returned by :meth:`TextIOBase.tell`, or " "zero. Any other *offset* value produces undefined behaviour." msgstr "" -#: ../../library/io.rst:935 msgid "" ":data:`!SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " "be zero, which is a no-operation (all other values are unsupported)." msgstr "" -#: ../../library/io.rst:938 msgid "" ":data:`!SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " "zero (all other values are unsupported)." msgstr "" -#: ../../library/io.rst:941 msgid "Return the new absolute position as an opaque number." msgstr "" -#: ../../library/io.rst:948 msgid "" "Return the current stream position as an opaque number. The number does not " "usually represent a number of bytes in the underlying binary storage." msgstr "" -#: ../../library/io.rst:954 msgid "" "Write the string *s* to the stream and return the number of characters " "written." msgstr "" -#: ../../library/io.rst:961 msgid "" -"A buffered text stream providing higher-level access to " -"a :class:`BufferedIOBase` buffered binary stream. It inherits " -"from :class:`TextIOBase`." +"A buffered text stream providing higher-level access to a :class:" +"`BufferedIOBase` buffered binary stream. It inherits from :class:" +"`TextIOBase`." msgstr "" -#: ../../library/io.rst:965 msgid "" "*encoding* gives the name of the encoding that the stream will be decoded or " "encoded with. In :ref:`UTF-8 Mode `, this defaults to UTF-8. " @@ -1371,7 +1139,6 @@ msgid "" "explicitly. See :ref:`io-text-encoding` for more information." msgstr "" -#: ../../library/io.rst:971 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled. Pass ``'strict'`` to raise a :exc:`ValueError` " @@ -1386,52 +1153,45 @@ msgid "" "that has been registered with :func:`codecs.register_error` is also valid." msgstr "" -#: ../../library/io.rst:987 msgid "" "*newline* controls how line endings are handled. It can be ``None``, " "``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as follows:" msgstr "" -#: ../../library/io.rst:990 msgid "" -"When reading input from the stream, if *newline* is " -"``None``, :term:`universal newlines` mode is enabled. Lines in the input " -"can end in ``'\\n'``, ``'\\r'``, or ``'\\r\\n'``, and these are translated " -"into ``'\\n'`` before being returned to the caller. If *newline* is ``''``, " +"When reading input from the stream, if *newline* is ``None``, :term:" +"`universal newlines` mode is enabled. Lines in the input can end in " +"``'\\n'``, ``'\\r'``, or ``'\\r\\n'``, and these are translated into " +"``'\\n'`` before being returned to the caller. If *newline* is ``''``, " "universal newlines mode is enabled, but line endings are returned to the " "caller untranslated. If *newline* has any of the other legal values, input " "lines are only terminated by the given string, and the line ending is " "returned to the caller untranslated." msgstr "" -#: ../../library/io.rst:999 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " -"characters written are translated to the system default line " -"separator, :data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no " -"translation takes place. If *newline* is any of the other legal values, any " -"``'\\n'`` characters written are translated to the given string." +"characters written are translated to the system default line separator, :" +"data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no translation " +"takes place. If *newline* is any of the other legal values, any ``'\\n'`` " +"characters written are translated to the given string." msgstr "" -#: ../../library/io.rst:1005 msgid "" "If *line_buffering* is ``True``, :meth:`~IOBase.flush` is implied when a " "call to write contains a newline character or a carriage return." msgstr "" -#: ../../library/io.rst:1008 msgid "" "If *write_through* is ``True``, calls to :meth:`~BufferedIOBase.write` are " -"guaranteed not to be buffered: any data written on " -"the :class:`TextIOWrapper` object is immediately handled to its underlying " -"binary *buffer*." +"guaranteed not to be buffered: any data written on the :class:" +"`TextIOWrapper` object is immediately handled to its underlying binary " +"*buffer*." msgstr "" -#: ../../library/io.rst:1012 msgid "The *write_through* argument has been added." msgstr "" -#: ../../library/io.rst:1015 msgid "" "The default *encoding* is now ``locale.getpreferredencoding(False)`` instead " "of ``locale.getpreferredencoding()``. Don't change temporary the locale " @@ -1439,150 +1199,123 @@ msgid "" "instead of the user preferred encoding." msgstr "" -#: ../../library/io.rst:1021 msgid "" "The *encoding* argument now supports the ``\"locale\"`` dummy encoding name." msgstr "" -#: ../../library/io.rst:1026 msgid "" "When the underlying raw stream is non-blocking, a :exc:`BlockingIOError` may " "be raised if a read operation cannot be completed immediately." msgstr "" -#: ../../library/io.rst:1029 msgid "" ":class:`TextIOWrapper` provides these data attributes and methods in " "addition to those from :class:`TextIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:1034 msgid "Whether line buffering is enabled." msgstr "" -#: ../../library/io.rst:1038 msgid "Whether writes are passed immediately to the underlying binary buffer." msgstr "" -#: ../../library/io.rst:1046 msgid "" "Reconfigure this text stream using new settings for *encoding*, *errors*, " "*newline*, *line_buffering* and *write_through*." msgstr "" -#: ../../library/io.rst:1049 msgid "" "Parameters not specified keep current settings, except ``errors='strict'`` " "is used when *encoding* is specified but *errors* is not specified." msgstr "" -#: ../../library/io.rst:1053 msgid "" "It is not possible to change the encoding or newline if some data has " "already been read from the stream. On the other hand, changing encoding " "after write is possible." msgstr "" -#: ../../library/io.rst:1057 msgid "" "This method does an implicit stream flush before setting the new parameters." msgstr "" -#: ../../library/io.rst:1062 msgid "The method supports ``encoding=\"locale\"`` option." msgstr "" -#: ../../library/io.rst:1067 msgid "" "Set the stream position. Return the new stream position as an :class:`int`." msgstr "" -#: ../../library/io.rst:1070 msgid "" "Four operations are supported, given by the following argument combinations:" msgstr "" -#: ../../library/io.rst:1073 msgid "``seek(0, SEEK_SET)``: Rewind to the start of the stream." msgstr "" -#: ../../library/io.rst:1074 msgid "" "``seek(cookie, SEEK_SET)``: Restore a previous position; *cookie* **must " "be** a number returned by :meth:`tell`." msgstr "" -#: ../../library/io.rst:1076 msgid "``seek(0, SEEK_END)``: Fast-forward to the end of the stream." msgstr "" -#: ../../library/io.rst:1077 msgid "``seek(0, SEEK_CUR)``: Leave the current stream position unchanged." msgstr "" -#: ../../library/io.rst:1079 msgid "Any other argument combinations are invalid, and may raise exceptions." msgstr "" -#: ../../library/io.rst:1084 msgid ":data:`os.SEEK_SET`, :data:`os.SEEK_CUR`, and :data:`os.SEEK_END`." msgstr "" -#: ../../library/io.rst:1088 msgid "" "Return the stream position as an opaque number. The return value of :meth:`!" "tell` can be given as input to :meth:`seek`, to restore a previous stream " "position." msgstr "" -#: ../../library/io.rst:1095 msgid "" -"A text stream using an in-memory text buffer. It inherits " -"from :class:`TextIOBase`." +"A text stream using an in-memory text buffer. It inherits from :class:" +"`TextIOBase`." msgstr "" -#: ../../library/io.rst:1098 msgid "" "The text buffer is discarded when the :meth:`~IOBase.close` method is called." msgstr "" -#: ../../library/io.rst:1101 msgid "" "The initial value of the buffer can be set by providing *initial_value*. If " -"newline translation is enabled, newlines will be encoded as if " -"by :meth:`~TextIOBase.write`. The stream is positioned at the start of the " -"buffer which emulates opening an existing file in a ``w+`` mode, making it " -"ready for an immediate write from the beginning or for a write that would " +"newline translation is enabled, newlines will be encoded as if by :meth:" +"`~TextIOBase.write`. The stream is positioned at the start of the buffer " +"which emulates opening an existing file in a ``w+`` mode, making it ready " +"for an immediate write from the beginning or for a write that would " "overwrite the initial value. To emulate opening a file in an ``a+`` mode " "ready for appending, use ``f.seek(0, io.SEEK_END)`` to reposition the stream " "at the end of the buffer." msgstr "" -#: ../../library/io.rst:1110 msgid "" "The *newline* argument works like that of :class:`TextIOWrapper`, except " "that when writing output to the stream, if *newline* is ``None``, newlines " "are written as ``\\n`` on all platforms." msgstr "" -#: ../../library/io.rst:1114 msgid "" -":class:`StringIO` provides this method in addition to those " -"from :class:`TextIOBase` and :class:`IOBase`:" +":class:`StringIO` provides this method in addition to those from :class:" +"`TextIOBase` and :class:`IOBase`:" msgstr "" -#: ../../library/io.rst:1119 msgid "" "Return a :class:`str` containing the entire contents of the buffer. Newlines " "are decoded as if by :meth:`~TextIOBase.read`, although the stream position " "is not changed." msgstr "" -#: ../../library/io.rst:1123 msgid "Example usage::" msgstr "" -#: ../../library/io.rst:1125 msgid "" "import io\n" "\n" @@ -1599,84 +1332,70 @@ msgid "" "output.close()" msgstr "" -#: ../../library/io.rst:1145 msgid "" "A helper codec that decodes newlines for :term:`universal newlines` mode. It " "inherits from :class:`codecs.IncrementalDecoder`." msgstr "" -#: ../../library/io.rst:1150 msgid "Static Typing" msgstr "" -#: ../../library/io.rst:1152 msgid "" "The following protocols can be used for annotating function and method " "arguments for simple stream reading or writing operations. They are " "decorated with :deco:`typing.runtime_checkable`." msgstr "" -#: ../../library/io.rst:1158 msgid "" "Generic protocol for reading from a file or other input stream. ``T`` will " "usually be :class:`str` or :class:`bytes`, but can be any type that is read " "from the stream." msgstr "" -#: ../../library/io.rst:1167 msgid "" "Read data from the input stream and return it. If *size* is specified, it " "should be an integer, and at most *size* items (bytes/characters) will be " "read." msgstr "" -#: ../../library/io.rst:1171 ../../library/io.rst:1190 msgid "For example::" msgstr "" -#: ../../library/io.rst:1173 msgid "" "def read_it(reader: Reader[str]):\n" " data = reader.read(11)\n" " assert isinstance(data, str)" msgstr "" -#: ../../library/io.rst:1179 msgid "" "Generic protocol for writing to a file or other output stream. ``T`` will " "usually be :class:`str` or :class:`bytes`, but can be any type that can be " "written to the stream." msgstr "" -#: ../../library/io.rst:1187 msgid "" "Write *data* to the output stream and return the number of items (bytes/" "characters) written." msgstr "" -#: ../../library/io.rst:1192 msgid "" "def write_binary(writer: Writer[bytes]):\n" " writer.write(b\"Hello world!\\n\")" msgstr "" -#: ../../library/io.rst:1195 msgid "" "See :ref:`typing-io` for other I/O related protocols and classes that can be " "used for static type checking." msgstr "" -#: ../../library/io.rst:1199 msgid "Performance" msgstr "" -#: ../../library/io.rst:1201 msgid "" "This section discusses the performance of the provided concrete I/O " "implementations." msgstr "" -#: ../../library/io.rst:1207 msgid "" "By reading and writing only large chunks of data even when the user asks for " "a single byte, buffered I/O hides any inefficiency in calling and executing " @@ -1689,61 +1408,52 @@ msgid "" "data." msgstr "" -#: ../../library/io.rst:1219 msgid "" "Text I/O over a binary storage (such as a file) is significantly slower than " "binary I/O over the same storage, because it requires conversions between " "unicode and binary data using a character codec. This can become noticeable " -"handling huge amounts of text data like large log files. " -"Also, :meth:`~TextIOBase.tell` and :meth:`~TextIOBase.seek` are both quite " -"slow due to the reconstruction algorithm used." +"handling huge amounts of text data like large log files. Also, :meth:" +"`~TextIOBase.tell` and :meth:`~TextIOBase.seek` are both quite slow due to " +"the reconstruction algorithm used." msgstr "" -#: ../../library/io.rst:1226 msgid "" ":class:`StringIO`, however, is a native in-memory unicode container and will " "exhibit similar speed to :class:`BytesIO`." msgstr "" -#: ../../library/io.rst:1230 msgid "Multi-threading" msgstr "Többszálúság" -#: ../../library/io.rst:1232 msgid "" ":class:`FileIO` objects are thread-safe to the extent that the operating " "system calls (such as :manpage:`read(2)` under Unix) they wrap are thread-" "safe too." msgstr "" -#: ../../library/io.rst:1235 msgid "" -"Binary buffered objects (instances " -"of :class:`BufferedReader`, :class:`BufferedWriter`, :class:`BufferedRandom` " -"and :class:`BufferedRWPair`) protect their internal structures using a lock; " -"it is therefore safe to call them from multiple threads at once." +"Binary buffered objects (instances of :class:`BufferedReader`, :class:" +"`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) " +"protect their internal structures using a lock; it is therefore safe to call " +"them from multiple threads at once." msgstr "" -#: ../../library/io.rst:1240 msgid ":class:`TextIOWrapper` objects are not thread-safe." msgstr "" -#: ../../library/io.rst:1243 msgid "Reentrancy" msgstr "" -#: ../../library/io.rst:1245 msgid "" -"Binary buffered objects (instances " -"of :class:`BufferedReader`, :class:`BufferedWriter`, :class:`BufferedRandom` " -"and :class:`BufferedRWPair`) are not reentrant. While reentrant calls will " -"not happen in normal situations, they can arise from doing I/O in " -"a :mod:`signal` handler. If a thread tries to re-enter a buffered object " -"which it is already accessing, a :exc:`RuntimeError` is raised. Note this " -"doesn't prohibit a different thread from entering the buffered object." +"Binary buffered objects (instances of :class:`BufferedReader`, :class:" +"`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) are " +"not reentrant. While reentrant calls will not happen in normal situations, " +"they can arise from doing I/O in a :mod:`signal` handler. If a thread tries " +"to re-enter a buffered object which it is already accessing, a :exc:" +"`RuntimeError` is raised. Note this doesn't prohibit a different thread " +"from entering the buffered object." msgstr "" -#: ../../library/io.rst:1253 msgid "" "The above implicitly extends to text files, since the :func:`open` function " "will wrap a buffered object inside a :class:`TextIOWrapper`. This includes " @@ -1751,22 +1461,17 @@ msgid "" "as well." msgstr "" -#: ../../library/io.rst:24 msgid "file object" msgstr "" -#: ../../library/io.rst:24 msgid "io module" msgstr "" -#: ../../library/io.rst:984 ../../library/io.rst:1140 msgid "universal newlines" msgstr "" -#: ../../library/io.rst:984 msgid "io.TextIOWrapper class" msgstr "" -#: ../../library/io.rst:1140 msgid "io.IncrementalNewlineDecoder class" msgstr "" diff --git a/library/ipaddress.po b/library/ipaddress.po index 6cd2e7a..94e3f92 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/ipaddress.rst:2 msgid ":mod:`!ipaddress` --- IPv4/IPv6 manipulation library" msgstr "" -#: ../../library/ipaddress.rst:9 msgid "**Source code:** :source:`Lib/ipaddress.py`" msgstr "" -#: ../../library/ipaddress.rst:13 msgid "" ":mod:`ipaddress` provides the capabilities to create, manipulate and operate " "on IPv4 and IPv6 addresses and networks." msgstr "" -#: ../../library/ipaddress.rst:16 msgid "" "The functions and classes in this module make it straightforward to handle " "various tasks related to IP addresses, including checking whether or not two " @@ -41,23 +37,19 @@ msgid "" "network definition, and so on." msgstr "" -#: ../../library/ipaddress.rst:22 msgid "" -"This is the full module API reference—for an overview and introduction, " -"see :ref:`ipaddress-howto`." +"This is the full module API reference—for an overview and introduction, see :" +"ref:`ipaddress-howto`." msgstr "" -#: ../../library/ipaddress.rst:35 msgid "Convenience factory functions" msgstr "" -#: ../../library/ipaddress.rst:37 msgid "" "The :mod:`ipaddress` module provides factory functions to conveniently " "create IP addresses, networks and interfaces:" msgstr "" -#: ../../library/ipaddress.rst:42 msgid "" "Return an :class:`IPv4Address` or :class:`IPv6Address` object depending on " "the IP address passed as argument. Either IPv4 or IPv6 addresses may be " @@ -66,7 +58,6 @@ msgid "" "valid IPv4 or IPv6 address." msgstr "" -#: ../../library/ipaddress.rst:56 msgid "" "Return an :class:`IPv4Network` or :class:`IPv6Network` object depending on " "the IP address passed as argument. *address* is a string or integer " @@ -77,17 +68,15 @@ msgid "" "a valid IPv4 or IPv6 address, or if the network has host bits set." msgstr "" -#: ../../library/ipaddress.rst:70 msgid "" "Return an :class:`IPv4Interface` or :class:`IPv6Interface` object depending " "on the IP address passed as argument. *address* is a string or integer " "representing the IP address. Either IPv4 or IPv6 addresses may be supplied; " -"integers less than ``2**32`` will be considered to be IPv4 by default. " -"A :exc:`ValueError` is raised if *address* does not represent a valid IPv4 " -"or IPv6 address." +"integers less than ``2**32`` will be considered to be IPv4 by default. A :" +"exc:`ValueError` is raised if *address* does not represent a valid IPv4 or " +"IPv6 address." msgstr "" -#: ../../library/ipaddress.rst:77 msgid "" "One downside of these convenience functions is that the need to handle both " "IPv4 and IPv6 formats means that error messages provide minimal information " @@ -96,15 +85,12 @@ msgid "" "calling the appropriate version specific class constructors directly." msgstr "" -#: ../../library/ipaddress.rst:86 msgid "IP Addresses" msgstr "" -#: ../../library/ipaddress.rst:89 msgid "Address objects" msgstr "" -#: ../../library/ipaddress.rst:91 msgid "" "The :class:`IPv4Address` and :class:`IPv6Address` objects share a lot of " "common attributes. Some attributes that are only meaningful for IPv6 " @@ -114,17 +100,14 @@ msgid "" "dictionaries." msgstr "" -#: ../../library/ipaddress.rst:99 msgid "" "Construct an IPv4 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv4 address." msgstr "" -#: ../../library/ipaddress.rst:102 msgid "The following constitutes a valid IPv4 address:" msgstr "" -#: ../../library/ipaddress.rst:104 msgid "" "A string in decimal-dot notation, consisting of four decimal integers in the " "inclusive range 0--255, separated by dots (e.g. ``192.168.0.1``). Each " @@ -132,55 +115,45 @@ msgid "" "tolerated to prevent confusion with octal notation." msgstr "" -#: ../../library/ipaddress.rst:108 msgid "An integer that fits into 32 bits." msgstr "" -#: ../../library/ipaddress.rst:109 msgid "" "An integer packed into a :class:`bytes` object of length 4 (most significant " "octet first)." msgstr "" -#: ../../library/ipaddress.rst:121 msgid "" "Leading zeros are tolerated, even in ambiguous cases that look like octal " "notation." msgstr "" -#: ../../library/ipaddress.rst:126 msgid "" "Leading zeros are no longer tolerated and are treated as an error. IPv4 " "address strings are now parsed as strict as glibc :func:`~socket.inet_pton`." msgstr "" -#: ../../library/ipaddress.rst:132 msgid "The appropriate version number: ``4`` for IPv4, ``6`` for IPv6." msgstr "" -#: ../../library/ipaddress.rst:136 ../../library/ipaddress.rst:149 msgid "Made available on the class." msgstr "" -#: ../../library/ipaddress.rst:140 msgid "" "The total number of bits in the address representation for this version: " "``32`` for IPv4, ``128`` for IPv6." msgstr "" -#: ../../library/ipaddress.rst:143 msgid "" "The prefix defines the number of leading bits in an address that are " "compared to determine whether or not an address is part of a network." msgstr "" -#: ../../library/ipaddress.rst:154 msgid "" "The string representation in dotted decimal notation. Leading zeroes are " "never included in the representation." msgstr "" -#: ../../library/ipaddress.rst:157 msgid "" "As IPv4 does not define a shorthand notation for addresses with octets set " "to zero, these two attributes are always the same as ``str(addr)`` for IPv4 " @@ -188,18 +161,15 @@ msgid "" "that can handle both IPv4 and IPv6 addresses." msgstr "" -#: ../../library/ipaddress.rst:164 msgid "" "The binary representation of this address - a :class:`bytes` object of the " "appropriate length (most significant octet first). This is 4 bytes for IPv4 " "and 16 bytes for IPv6." msgstr "" -#: ../../library/ipaddress.rst:170 msgid "The name of the reverse DNS PTR record for the IP address, e.g.::" msgstr "" -#: ../../library/ipaddress.rst:172 msgid "" ">>> ipaddress.ip_address(\"127.0.0.1\").reverse_pointer\n" "'1.0.0.127.in-addr.arpa'\n" @@ -207,67 +177,55 @@ msgid "" "'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'" msgstr "" -#: ../../library/ipaddress.rst:177 msgid "" "This is the name that could be used for performing a PTR lookup, not the " "resolved hostname itself." msgstr "" -#: ../../library/ipaddress.rst:184 msgid "" "``True`` if the address is reserved for multicast use. See :RFC:`3171` (for " "IPv4) or :RFC:`2373` (for IPv6)." msgstr "" -#: ../../library/ipaddress.rst:189 msgid "" "``True`` if the address is defined as not globally reachable by iana-ipv4-" "special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6) with " "the following exceptions:" msgstr "" -#: ../../library/ipaddress.rst:193 msgid "" "``is_private`` is ``False`` for the shared address space (``100.64.0.0/10``)" msgstr "" -#: ../../library/ipaddress.rst:194 ../../library/ipaddress.rst:221 msgid "" "For IPv4-mapped IPv6-addresses the ``is_private`` value is determined by the " "semantics of the underlying IPv4 addresses and the following condition holds " "(see :attr:`IPv6Address.ipv4_mapped`)::" msgstr "" -#: ../../library/ipaddress.rst:198 msgid "address.is_private == address.ipv4_mapped.is_private" msgstr "" -#: ../../library/ipaddress.rst:200 msgid "" "``is_private`` has value opposite to :attr:`is_global`, except for the " "shared address space (``100.64.0.0/10`` range) where they are both ``False``." msgstr "" -#: ../../library/ipaddress.rst:205 msgid "Fixed some false positives and false negatives." msgstr "" -#: ../../library/ipaddress.rst:207 msgid "" "``192.0.0.0/24`` is considered private with the exception of " "``192.0.0.9/32`` and ``192.0.0.10/32`` (previously: only the " "``192.0.0.0/29`` sub-range was considered private)." msgstr "" -#: ../../library/ipaddress.rst:209 msgid "``64:ff9b:1::/48`` is considered private." msgstr "" -#: ../../library/ipaddress.rst:210 msgid "``2002::/16`` is considered private." msgstr "" -#: ../../library/ipaddress.rst:211 msgid "" "There are exceptions within ``2001::/23`` (otherwise considered private): " "``2001:1::1/128``, ``2001:1::2/128``, ``2001:3::/32``, ``2001:4:112::/48``, " @@ -275,36 +233,30 @@ msgid "" "private." msgstr "" -#: ../../library/ipaddress.rst:217 msgid "" "``True`` if the address is defined as globally reachable by iana-ipv4-" "special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6) with " "the following exception:" msgstr "" -#: ../../library/ipaddress.rst:225 msgid "address.is_global == address.ipv4_mapped.is_global" msgstr "" -#: ../../library/ipaddress.rst:227 msgid "" "``is_global`` has value opposite to :attr:`is_private`, except for the " "shared address space (``100.64.0.0/10`` range) where they are both ``False``." msgstr "" -#: ../../library/ipaddress.rst:234 msgid "" "Fixed some false positives and false negatives, see :attr:`is_private` for " "details." msgstr "" -#: ../../library/ipaddress.rst:238 msgid "" -"``True`` if the address is unspecified. See :RFC:`5735` (for IPv4) " -"or :RFC:`2373` (for IPv6)." +"``True`` if the address is unspecified. See :RFC:`5735` (for IPv4) or :RFC:" +"`2373` (for IPv6)." msgstr "" -#: ../../library/ipaddress.rst:243 msgid "" "``True`` if the address is noted as reserved by the IETF. For IPv4, this is " "only ``240.0.0.0/4``, the ``Reserved`` address block. For IPv6, this is all " @@ -312,37 +264,31 @@ msgid "" "for future use." msgstr "" -#: ../../library/ipaddress.rst:248 msgid "" "For IPv4, ``is_reserved`` is not related to the address block value of the " "``Reserved-by-Protocol`` column in iana-ipv4-special-registry_." msgstr "" -#: ../../library/ipaddress.rst:251 msgid "" "For IPv6, ``fec0::/10`` a former Site-Local scoped address prefix is " -"currently excluded from that list (see :attr:`~IPv6Address.is_site_local` " -"& :rfc:`3879`)." +"currently excluded from that list (see :attr:`~IPv6Address.is_site_local` & :" +"rfc:`3879`)." msgstr "" -#: ../../library/ipaddress.rst:256 msgid "" -"``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) " -"or :RFC:`2373` (for IPv6)." +"``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) or :RFC:" +"`2373` (for IPv6)." msgstr "" -#: ../../library/ipaddress.rst:261 msgid "" "``True`` if the address is reserved for link-local usage. See :RFC:`3927`." msgstr "" -#: ../../library/ipaddress.rst:266 msgid "" -":class:`IPv4Address` object representing the IPv4-mapped IPv6 address. " -"See :RFC:`4291`." +":class:`IPv4Address` object representing the IPv4-mapped IPv6 address. See :" +"RFC:`4291`." msgstr "" -#: ../../library/ipaddress.rst:277 msgid "" "Returns a string representation of the IP address, controlled by an explicit " "format string. *fmt* can be one of the following: ``'s'``, the default " @@ -354,17 +300,14 @@ msgid "" "used by ``format``, ``str.format`` and f-strings." msgstr "" -#: ../../library/ipaddress.rst:304 msgid "" "Construct an IPv6 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv6 address." msgstr "" -#: ../../library/ipaddress.rst:307 msgid "The following constitutes a valid IPv6 address:" msgstr "" -#: ../../library/ipaddress.rst:309 msgid "" "A string consisting of eight groups of four hexadecimal digits, each group " "representing 16 bits. The groups are separated by colons. This describes an " @@ -374,7 +317,6 @@ msgid "" "to ``\"::abc:7:def\"``." msgstr "" -#: ../../library/ipaddress.rst:317 msgid "" "Optionally, the string may also have a scope zone ID, expressed with a " "suffix ``%scope_id``. If present, the scope ID must be non-empty, and may " @@ -383,61 +325,51 @@ msgid "" "the node." msgstr "" -#: ../../library/ipaddress.rst:322 msgid "An integer that fits into 128 bits." msgstr "" -#: ../../library/ipaddress.rst:323 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian." msgstr "" -#: ../../library/ipaddress.rst:333 msgid "" "The short form of the address representation, with leading zeroes in groups " "omitted and the longest sequence of groups consisting entirely of zeroes " "collapsed to a single empty group." msgstr "" -#: ../../library/ipaddress.rst:337 msgid "This is also the value returned by ``str(addr)`` for IPv6 addresses." msgstr "" -#: ../../library/ipaddress.rst:341 msgid "" "The long form of the address representation, with all leading zeroes and " "groups consisting entirely of zeroes included." msgstr "" -#: ../../library/ipaddress.rst:345 msgid "" "For the following attributes and methods, see the corresponding " "documentation of the :class:`IPv4Address` class:" msgstr "" -#: ../../library/ipaddress.rst:365 msgid "" "``True`` if the address is reserved for site-local usage. Note that the " -"site-local address space has been deprecated by :RFC:`3879`. " -"Use :attr:`~IPv4Address.is_private` to test if this address is in the space " -"of unique local addresses as defined by :RFC:`4193`." +"site-local address space has been deprecated by :RFC:`3879`. Use :attr:" +"`~IPv4Address.is_private` to test if this address is in the space of unique " +"local addresses as defined by :RFC:`4193`." msgstr "" -#: ../../library/ipaddress.rst:372 msgid "" -"For addresses that appear to be IPv4 mapped addresses (starting with " -"``::FFFF/96``), this property will report the embedded IPv4 address. For any " +"For addresses that appear to be IPv4 mapped addresses (starting with ``::" +"FFFF/96``), this property will report the embedded IPv4 address. For any " "other address, this property will be ``None``." msgstr "" -#: ../../library/ipaddress.rst:378 msgid "" "For scoped addresses as defined by :RFC:`4007`, this property identifies the " "particular zone of the address's scope that the address belongs to, as a " "string. When no scope zone is specified, this property will be ``None``." msgstr "" -#: ../../library/ipaddress.rst:384 msgid "" "For addresses that appear to be 6to4 addresses (starting with " "``2002::/16``) as defined by :RFC:`3056`, this property will report the " @@ -445,7 +377,6 @@ msgid "" "``None``." msgstr "" -#: ../../library/ipaddress.rst:391 msgid "" "For addresses that appear to be Teredo addresses (starting with " "``2001::/32``) as defined by :RFC:`4380`, this property will report the " @@ -453,23 +384,19 @@ msgid "" "property will be ``None``." msgstr "" -#: ../../library/ipaddress.rst:398 msgid "" "Refer to the corresponding method documentation in :class:`IPv4Address`." msgstr "" -#: ../../library/ipaddress.rst:404 msgid "Conversion to Strings and Integers" msgstr "" -#: ../../library/ipaddress.rst:406 msgid "" "To interoperate with networking interfaces such as the socket module, " "addresses must be converted to strings or integers. This is handled using " "the :func:`str` and :func:`int` builtin functions::" msgstr "" -#: ../../library/ipaddress.rst:410 msgid "" ">>> str(ipaddress.IPv4Address('192.168.0.1'))\n" "'192.168.0.1'\n" @@ -481,36 +408,29 @@ msgid "" "1" msgstr "" -#: ../../library/ipaddress.rst:419 msgid "" "Note that IPv6 scoped addresses are converted to integers without scope zone " "ID." msgstr "" -#: ../../library/ipaddress.rst:423 ../../library/ipaddress.rst:807 -#: ../../library/ipaddress.rst:943 msgid "Operators" msgstr "" -#: ../../library/ipaddress.rst:425 msgid "" "Address objects support some operators. Unless stated otherwise, operators " "can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " "with IPv6)." msgstr "" -#: ../../library/ipaddress.rst:431 msgid "Comparison operators" msgstr "" -#: ../../library/ipaddress.rst:433 msgid "" "Address objects can be compared with the usual set of comparison operators. " "Same IPv6 addresses with different scope zone IDs are not equal. Some " "examples::" msgstr "" -#: ../../library/ipaddress.rst:437 msgid "" ">>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')\n" "True\n" @@ -524,16 +444,13 @@ msgid "" "True" msgstr "" -#: ../../library/ipaddress.rst:450 msgid "Arithmetic operators" msgstr "" -#: ../../library/ipaddress.rst:452 msgid "" "Integers can be added to or subtracted from address objects. Some examples::" msgstr "" -#: ../../library/ipaddress.rst:454 msgid "" ">>> IPv4Address('127.0.0.2') + 3\n" "IPv4Address('127.0.0.5')\n" @@ -546,11 +463,9 @@ msgid "" "IPv4 address" msgstr "" -#: ../../library/ipaddress.rst:465 msgid "IP Network definitions" msgstr "" -#: ../../library/ipaddress.rst:467 msgid "" "The :class:`IPv4Network` and :class:`IPv6Network` objects provide a " "mechanism for defining and inspecting IP network definitions. A network " @@ -561,11 +476,9 @@ msgid "" "addresses in the inclusive range ``192.168.1.0`` to ``192.168.1.255``." msgstr "" -#: ../../library/ipaddress.rst:477 msgid "Prefix, net mask and host mask" msgstr "" -#: ../../library/ipaddress.rst:479 msgid "" "There are several equivalent ways to specify IP network masks. A *prefix* " "``/`` is a notation that denotes how many high-order bits are set in " @@ -577,26 +490,22 @@ msgid "" "mask equivalent to ``/24`` in IPv4 is ``0.0.0.255``." msgstr "" -#: ../../library/ipaddress.rst:490 msgid "Network objects" msgstr "" -#: ../../library/ipaddress.rst:492 msgid "" "All attributes implemented by address objects are implemented by network " "objects as well. In addition, network objects implement additional " -"attributes. All of these are common between :class:`IPv4Network` " -"and :class:`IPv6Network`, so to avoid duplication they are only documented " -"for :class:`IPv4Network`. Network objects are :term:`hashable`, so they can " -"be used as keys in dictionaries." +"attributes. All of these are common between :class:`IPv4Network` and :class:" +"`IPv6Network`, so to avoid duplication they are only documented for :class:" +"`IPv4Network`. Network objects are :term:`hashable`, so they can be used as " +"keys in dictionaries." msgstr "" -#: ../../library/ipaddress.rst:501 msgid "" "Construct an IPv4 network definition. *address* can be one of the following:" msgstr "" -#: ../../library/ipaddress.rst:503 msgid "" "A string consisting of an IP address and an optional mask, separated by a " "slash (``/``). The IP address is the network address, and the mask can be " @@ -608,26 +517,22 @@ msgid "" "it's considered to be ``/32``." msgstr "" -#: ../../library/ipaddress.rst:512 msgid "" "For example, the following *address* specifications are equivalent: " "``192.168.1.0/24``, ``192.168.1.0/255.255.255.0`` and " "``192.168.1.0/0.0.0.255``." msgstr "" -#: ../../library/ipaddress.rst:516 msgid "" "An integer that fits into 32 bits. This is equivalent to a single-address " "network, with the network address being *address* and the mask being ``/32``." msgstr "" -#: ../../library/ipaddress.rst:520 msgid "" "An integer packed into a :class:`bytes` object of length 4, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: ../../library/ipaddress.rst:523 msgid "" "A two-tuple of an address description and a netmask, where the address " "description is either a string, a 32-bits integer, a 4-bytes packed integer, " @@ -636,92 +541,75 @@ msgid "" "representing the prefix mask (e.g. ``255.255.255.0``)." msgstr "" -#: ../../library/ipaddress.rst:529 msgid "" "An :exc:`AddressValueError` is raised if *address* is not a valid IPv4 " "address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " "an IPv4 address." msgstr "" -#: ../../library/ipaddress.rst:533 ../../library/ipaddress.rst:753 msgid "" -"If *strict* is ``True`` and host bits are set in the supplied address, " -"then :exc:`ValueError` is raised. Otherwise, the host bits are masked out " -"to determine the appropriate network address." +"If *strict* is ``True`` and host bits are set in the supplied address, then :" +"exc:`ValueError` is raised. Otherwise, the host bits are masked out to " +"determine the appropriate network address." msgstr "" -#: ../../library/ipaddress.rst:537 msgid "" "Unless stated otherwise, all network methods accepting other network/address " "objects will raise :exc:`TypeError` if the argument's IP version is " "incompatible to ``self``." msgstr "" -#: ../../library/ipaddress.rst:543 ../../library/ipaddress.rst:759 msgid "Added the two-tuple form for the *address* constructor parameter." msgstr "" -#: ../../library/ipaddress.rst:548 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Address`." msgstr "" -#: ../../library/ipaddress.rst:558 msgid "" "These attributes are true for the network as a whole if they are true for " "both the network address and the broadcast address." msgstr "" -#: ../../library/ipaddress.rst:563 msgid "" "The network address for the network. The network address and the prefix " "length together uniquely define a network." msgstr "" -#: ../../library/ipaddress.rst:568 msgid "" "The broadcast address for the network. Packets sent to the broadcast address " "should be received by every host on the network." msgstr "" -#: ../../library/ipaddress.rst:573 msgid "The host mask, as an :class:`IPv4Address` object." msgstr "" -#: ../../library/ipaddress.rst:577 msgid "The net mask, as an :class:`IPv4Address` object." msgstr "" -#: ../../library/ipaddress.rst:583 msgid "" "A string representation of the network, with the mask in prefix notation." msgstr "" -#: ../../library/ipaddress.rst:586 msgid "" "``with_prefixlen`` and ``compressed`` are always the same as " "``str(network)``. ``exploded`` uses the exploded form the network address." msgstr "" -#: ../../library/ipaddress.rst:592 msgid "" "A string representation of the network, with the mask in net mask notation." msgstr "" -#: ../../library/ipaddress.rst:597 msgid "" "A string representation of the network, with the mask in host mask notation." msgstr "" -#: ../../library/ipaddress.rst:602 msgid "The total number of addresses in the network." msgstr "" -#: ../../library/ipaddress.rst:606 msgid "Length of the network prefix, in bits." msgstr "" -#: ../../library/ipaddress.rst:610 msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the network " @@ -731,21 +619,17 @@ msgid "" "containing the single host address." msgstr "" -#: ../../library/ipaddress.rst:628 msgid "" "``True`` if this network is partly or wholly contained in *other* or *other* " "is wholly contained in this network." msgstr "" -#: ../../library/ipaddress.rst:633 msgid "" "Computes the network definitions resulting from removing the given *network* " -"from this one. Returns an iterator of network objects. " -"Raises :exc:`ValueError` if *network* is not completely contained in this " -"network." +"from this one. Returns an iterator of network objects. Raises :exc:" +"`ValueError` if *network* is not completely contained in this network." msgstr "" -#: ../../library/ipaddress.rst:646 msgid "" "The subnets that join to make the current network definition, depending on " "the argument values. *prefixlen_diff* is the amount our prefix length " @@ -755,7 +639,6 @@ msgid "" "network objects." msgstr "" -#: ../../library/ipaddress.rst:671 msgid "" "The supernet containing this network definition, depending on the argument " "values. *prefixlen_diff* is the amount our prefix length should be " @@ -764,33 +647,27 @@ msgid "" "*new_prefix* must be set. Returns a single network object." msgstr "" -#: ../../library/ipaddress.rst:687 msgid "Return ``True`` if this network is a subnet of *other*." msgstr "" -#: ../../library/ipaddress.rst:698 msgid "Return ``True`` if this network is a supernet of *other*." msgstr "" -#: ../../library/ipaddress.rst:709 msgid "" "Compare this network to *other*. In this comparison only the network " "addresses are considered; host bits aren't. Returns either ``-1``, ``0`` or " "``1``." msgstr "" -#: ../../library/ipaddress.rst:720 msgid "" "It uses the same ordering and comparison algorithm as \"<\", \"==\", and " "\">\"" msgstr "" -#: ../../library/ipaddress.rst:726 msgid "" "Construct an IPv6 network definition. *address* can be one of the following:" msgstr "" -#: ../../library/ipaddress.rst:728 msgid "" "A string consisting of an IP address and an optional prefix length, " "separated by a slash (``/``). The IP address is the network address, and " @@ -798,27 +675,22 @@ msgid "" "length is provided, it's considered to be ``/128``." msgstr "" -#: ../../library/ipaddress.rst:733 msgid "" -"Note that currently expanded netmasks are not supported. That means " -"``2001:db00::0/24`` is a valid argument while ``2001:db00::0/ffff:ff00::`` " -"is not." +"Note that currently expanded netmasks are not supported. That means ``2001:" +"db00::0/24`` is a valid argument while ``2001:db00::0/ffff:ff00::`` is not." msgstr "" -#: ../../library/ipaddress.rst:737 msgid "" "An integer that fits into 128 bits. This is equivalent to a single-address " -"network, with the network address being *address* and the mask being ``/" -"128``." +"network, with the network address being *address* and the mask being " +"``/128``." msgstr "" -#: ../../library/ipaddress.rst:741 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: ../../library/ipaddress.rst:744 msgid "" "A two-tuple of an address description and a netmask, where the address " "description is either a string, a 128-bits integer, a 16-bytes packed " @@ -826,14 +698,12 @@ msgid "" "integer representing the prefix length." msgstr "" -#: ../../library/ipaddress.rst:749 msgid "" "An :exc:`AddressValueError` is raised if *address* is not a valid IPv6 " "address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " "an IPv6 address." msgstr "" -#: ../../library/ipaddress.rst:782 msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the Subnet-" @@ -842,46 +712,38 @@ msgid "" "of 128 will return a list containing the single host address." msgstr "" -#: ../../library/ipaddress.rst:797 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Network`." msgstr "" -#: ../../library/ipaddress.rst:802 msgid "" "This attribute is true for the network as a whole if it is true for both the " "network address and the broadcast address." msgstr "" -#: ../../library/ipaddress.rst:809 msgid "" "Network objects support some operators. Unless stated otherwise, operators " "can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " "with IPv6)." msgstr "" -#: ../../library/ipaddress.rst:815 ../../library/ipaddress.rst:951 msgid "Logical operators" msgstr "" -#: ../../library/ipaddress.rst:817 msgid "" "Network objects can be compared with the usual set of logical operators. " "Network objects are ordered first by network address, then by net mask." msgstr "" -#: ../../library/ipaddress.rst:822 msgid "Iteration" msgstr "" -#: ../../library/ipaddress.rst:824 msgid "" "Network objects can be iterated to list all the addresses belonging to the " "network. For iteration, *all* hosts are returned, including unusable hosts " "(for usable hosts, use the :meth:`~IPv4Network.hosts` method). An example::" msgstr "" -#: ../../library/ipaddress.rst:829 msgid "" ">>> for addr in IPv4Network('192.0.2.0/28'):\n" "... addr\n" @@ -904,15 +766,12 @@ msgid "" "IPv4Address('192.0.2.15')" msgstr "" -#: ../../library/ipaddress.rst:851 msgid "Networks as containers of addresses" msgstr "" -#: ../../library/ipaddress.rst:853 msgid "Network objects can act as containers of addresses. Some examples::" msgstr "" -#: ../../library/ipaddress.rst:855 msgid "" ">>> IPv4Network('192.0.2.0/28')[0]\n" "IPv4Address('192.0.2.0')\n" @@ -924,92 +783,76 @@ msgid "" "False" msgstr "" -#: ../../library/ipaddress.rst:866 msgid "Interface objects" msgstr "" -#: ../../library/ipaddress.rst:868 msgid "" "Interface objects are :term:`hashable`, so they can be used as keys in " "dictionaries." msgstr "" -#: ../../library/ipaddress.rst:873 msgid "" "Construct an IPv4 interface. The meaning of *address* is as in the " "constructor of :class:`IPv4Network`, except that arbitrary host addresses " "are always accepted." msgstr "" -#: ../../library/ipaddress.rst:877 msgid "" ":class:`IPv4Interface` is a subclass of :class:`IPv4Address`, so it inherits " "all the attributes from that class. In addition, the following attributes " "are available:" msgstr "" -#: ../../library/ipaddress.rst:883 msgid "The address (:class:`IPv4Address`) without network information." msgstr "" -#: ../../library/ipaddress.rst:891 msgid "The network (:class:`IPv4Network`) this interface belongs to." msgstr "" -#: ../../library/ipaddress.rst:899 msgid "" "A string representation of the interface with the mask in prefix notation." msgstr "" -#: ../../library/ipaddress.rst:907 msgid "" "A string representation of the interface with the network as a net mask." msgstr "" -#: ../../library/ipaddress.rst:915 msgid "" "A string representation of the interface with the network as a host mask." msgstr "" -#: ../../library/ipaddress.rst:924 msgid "" "Construct an IPv6 interface. The meaning of *address* is as in the " "constructor of :class:`IPv6Network`, except that arbitrary host addresses " "are always accepted." msgstr "" -#: ../../library/ipaddress.rst:928 msgid "" ":class:`IPv6Interface` is a subclass of :class:`IPv6Address`, so it inherits " "all the attributes from that class. In addition, the following attributes " "are available:" msgstr "" -#: ../../library/ipaddress.rst:938 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Interface`." msgstr "" -#: ../../library/ipaddress.rst:945 msgid "" "Interface objects support some operators. Unless stated otherwise, " "operators can only be applied between compatible objects (i.e. IPv4 with " "IPv4, IPv6 with IPv6)." msgstr "" -#: ../../library/ipaddress.rst:953 msgid "" "Interface objects can be compared with the usual set of logical operators." msgstr "" -#: ../../library/ipaddress.rst:955 msgid "" "For equality comparison (``==`` and ``!=``), both the IP address and network " "must be the same for the objects to be equal. An interface will not compare " "equal to any address or network object." msgstr "" -#: ../../library/ipaddress.rst:959 msgid "" "For ordering (``<``, ``>``, etc) the rules are different. Interface and " "address objects with the same IP version can be compared, and the address " @@ -1018,85 +861,71 @@ msgid "" "then by their IP addresses." msgstr "" -#: ../../library/ipaddress.rst:967 msgid "Other Module Level Functions" msgstr "" -#: ../../library/ipaddress.rst:969 msgid "The module also provides the following module level functions:" msgstr "" -#: ../../library/ipaddress.rst:973 msgid "" "Represent an address as 4 packed bytes in network (big-endian) order. " -"*address* is an integer representation of an IPv4 IP address. " -"A :exc:`ValueError` is raised if the integer is negative or too large to be " -"an IPv4 IP address." +"*address* is an integer representation of an IPv4 IP address. A :exc:" +"`ValueError` is raised if the integer is negative or too large to be an IPv4 " +"IP address." msgstr "" -#: ../../library/ipaddress.rst:986 msgid "" "Represent an address as 16 packed bytes in network (big-endian) order. " -"*address* is an integer representation of an IPv6 IP address. " -"A :exc:`ValueError` is raised if the integer is negative or too large to be " -"an IPv6 IP address." +"*address* is an integer representation of an IPv6 IP address. A :exc:" +"`ValueError` is raised if the integer is negative or too large to be an IPv6 " +"IP address." msgstr "" -#: ../../library/ipaddress.rst:994 msgid "" "Return an iterator of the summarized network range given the first and last " -"IP addresses. *first* is the first :class:`IPv4Address` " -"or :class:`IPv6Address` in the range and *last* is the " -"last :class:`IPv4Address` or :class:`IPv6Address` in the range. " -"A :exc:`TypeError` is raised if *first* or *last* are not IP addresses or " -"are not of the same version. A :exc:`ValueError` is raised if *last* is not " -"greater than *first* or if *first* address version is not 4 or 6." +"IP addresses. *first* is the first :class:`IPv4Address` or :class:" +"`IPv6Address` in the range and *last* is the last :class:`IPv4Address` or :" +"class:`IPv6Address` in the range. A :exc:`TypeError` is raised if *first* " +"or *last* are not IP addresses or are not of the same version. A :exc:" +"`ValueError` is raised if *last* is not greater than *first* or if *first* " +"address version is not 4 or 6." msgstr "" -#: ../../library/ipaddress.rst:1010 msgid "" -"Return an iterator of the collapsed :class:`IPv4Network` " -"or :class:`IPv6Network` objects. *addresses* is an :term:`iterable` " -"of :class:`IPv4Network` or :class:`IPv6Network` objects. A :exc:`TypeError` " -"is raised if *addresses* contains mixed version objects." +"Return an iterator of the collapsed :class:`IPv4Network` or :class:" +"`IPv6Network` objects. *addresses* is an :term:`iterable` of :class:" +"`IPv4Network` or :class:`IPv6Network` objects. A :exc:`TypeError` is raised " +"if *addresses* contains mixed version objects." msgstr "" -#: ../../library/ipaddress.rst:1023 msgid "" "Return a key suitable for sorting between networks and addresses. Address " "and Network objects are not sortable by default; they're fundamentally " "different, so the expression::" msgstr "" -#: ../../library/ipaddress.rst:1027 msgid "IPv4Address('192.0.2.0') <= IPv4Network('192.0.2.0/24')" msgstr "" -#: ../../library/ipaddress.rst:1029 msgid "" "doesn't make sense. There are some times however, where you may wish to " "have :mod:`ipaddress` sort these anyway. If you need to do this, you can " "use this function as the *key* argument to :func:`sorted`." msgstr "" -#: ../../library/ipaddress.rst:1033 msgid "*obj* is either a network or address object." msgstr "" -#: ../../library/ipaddress.rst:1037 msgid "Custom Exceptions" msgstr "" -#: ../../library/ipaddress.rst:1039 msgid "" "To support more specific error reporting from class constructors, the module " "defines the following exceptions:" msgstr "" -#: ../../library/ipaddress.rst:1044 msgid "Any value error related to the address." msgstr "" -#: ../../library/ipaddress.rst:1049 msgid "Any value error related to the net mask." msgstr "" diff --git a/library/ipc.po b/library/ipc.po index 73d0854..bdfc797 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,23 +18,19 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/ipc.rst:5 msgid "Networking and Interprocess Communication" msgstr "" -#: ../../library/ipc.rst:7 msgid "" "The modules described in this chapter provide mechanisms for networking and " "inter-processes communication." msgstr "" -#: ../../library/ipc.rst:10 msgid "" -"Some modules only work for two processes that are on the same machine, " -"e.g. :mod:`signal` and :mod:`mmap`. Other modules support networking " -"protocols that two or more processes can use to communicate across machines." +"Some modules only work for two processes that are on the same machine, e.g. :" +"mod:`signal` and :mod:`mmap`. Other modules support networking protocols " +"that two or more processes can use to communicate across machines." msgstr "" -#: ../../library/ipc.rst:14 msgid "The list of modules described in this chapter is:" msgstr "" diff --git a/library/itertools.po b/library/itertools.po index c5582fa..aba2bb2 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,19 +18,16 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/itertools.rst:2 msgid "" ":mod:`!itertools` --- Functions creating iterators for efficient looping" msgstr "" -#: ../../library/itertools.rst:20 msgid "" "This module implements a number of :term:`iterator` building blocks inspired " "by constructs from APL, Haskell, and SML. Each has been recast in a form " "suitable for Python." msgstr "" -#: ../../library/itertools.rst:24 msgid "" "The module standardizes a core set of fast, memory efficient tools that are " "useful by themselves or in combination. Together, they form an \"iterator " @@ -38,415 +35,309 @@ msgid "" "efficiently in pure Python." msgstr "" -#: ../../library/itertools.rst:29 msgid "" "For instance, SML provides a tabulation tool: ``tabulate(f)`` which produces " "a sequence ``f(0), f(1), ...``. The same effect can be achieved in Python " "by combining :func:`map` and :func:`count` to form ``map(f, count())``." msgstr "" -#: ../../library/itertools.rst:34 msgid "**Infinite iterators:**" msgstr "" -#: ../../library/itertools.rst:37 ../../library/itertools.rst:47 -#: ../../library/itertools.rst:68 msgid "Iterator" msgstr "" -#: ../../library/itertools.rst:37 ../../library/itertools.rst:47 -#: ../../library/itertools.rst:68 msgid "Arguments" msgstr "" -#: ../../library/itertools.rst:37 ../../library/itertools.rst:47 -#: ../../library/itertools.rst:68 ../../library/itertools.rst:77 msgid "Results" msgstr "" -#: ../../library/itertools.rst:37 ../../library/itertools.rst:47 msgid "Example" msgstr "" -#: ../../library/itertools.rst:39 msgid ":func:`count`" msgstr "" -#: ../../library/itertools.rst:39 msgid "[start[, step]]" msgstr "" -#: ../../library/itertools.rst:39 msgid "start, start+step, start+2*step, ..." msgstr "" -#: ../../library/itertools.rst:39 msgid "``count(10) → 10 11 12 13 14 ...``" msgstr "" -#: ../../library/itertools.rst:40 msgid ":func:`cycle`" msgstr "" -#: ../../library/itertools.rst:40 msgid "p" msgstr "" -#: ../../library/itertools.rst:40 msgid "p0, p1, ... plast, p0, p1, ..." msgstr "" -#: ../../library/itertools.rst:40 msgid "``cycle('ABCD') → A B C D A B C D ...``" msgstr "" -#: ../../library/itertools.rst:41 msgid ":func:`repeat`" msgstr "" -#: ../../library/itertools.rst:41 msgid "elem [,n]" msgstr "" -#: ../../library/itertools.rst:41 msgid "elem, elem, elem, ... endlessly or up to n times" msgstr "" -#: ../../library/itertools.rst:41 msgid "``repeat(10, 3) → 10 10 10``" msgstr "" -#: ../../library/itertools.rst:44 msgid "**Iterators terminating on the shortest input sequence:**" msgstr "" -#: ../../library/itertools.rst:49 msgid ":func:`accumulate`" msgstr "" -#: ../../library/itertools.rst:49 msgid "p [,func]" msgstr "" -#: ../../library/itertools.rst:49 msgid "p0, p0+p1, p0+p1+p2, ..." msgstr "" -#: ../../library/itertools.rst:49 msgid "``accumulate([1,2,3,4,5]) → 1 3 6 10 15``" msgstr "" -#: ../../library/itertools.rst:50 msgid ":func:`batched`" msgstr "" -#: ../../library/itertools.rst:50 msgid "p, n" msgstr "" -#: ../../library/itertools.rst:50 msgid "(p0, p1, ..., p_n-1), ..." msgstr "" -#: ../../library/itertools.rst:50 msgid "``batched('ABCDEFG', n=2) → AB CD EF G``" msgstr "" -#: ../../library/itertools.rst:51 msgid ":func:`chain`" msgstr "" -#: ../../library/itertools.rst:51 ../../library/itertools.rst:62 msgid "p, q, ..." msgstr "" -#: ../../library/itertools.rst:51 ../../library/itertools.rst:52 msgid "p0, p1, ... plast, q0, q1, ..." msgstr "" -#: ../../library/itertools.rst:51 msgid "``chain('ABC', 'DEF') → A B C D E F``" msgstr "" -#: ../../library/itertools.rst:52 msgid ":func:`chain.from_iterable`" msgstr "" -#: ../../library/itertools.rst:52 ../../library/itertools.rst:58 msgid "iterable" msgstr "" -#: ../../library/itertools.rst:52 msgid "``chain.from_iterable(['ABC', 'DEF']) → A B C D E F``" msgstr "" -#: ../../library/itertools.rst:53 msgid ":func:`compress`" msgstr "" -#: ../../library/itertools.rst:53 msgid "data, selectors" msgstr "" -#: ../../library/itertools.rst:53 msgid "(d[0] if s[0]), (d[1] if s[1]), ..." msgstr "" -#: ../../library/itertools.rst:53 msgid "``compress('ABCDEF', [1,0,1,0,1,1]) → A C E F``" msgstr "" -#: ../../library/itertools.rst:54 msgid ":func:`dropwhile`" msgstr "" -#: ../../library/itertools.rst:54 ../../library/itertools.rst:55 -#: ../../library/itertools.rst:60 msgid "predicate, seq" msgstr "" -#: ../../library/itertools.rst:54 msgid "seq[n], seq[n+1], starting when predicate fails" msgstr "" -#: ../../library/itertools.rst:54 msgid "``dropwhile(lambda x: x<5, [1,4,6,3,8]) → 6 3 8``" msgstr "" -#: ../../library/itertools.rst:55 msgid ":func:`filterfalse`" msgstr "" -#: ../../library/itertools.rst:55 msgid "elements of seq where predicate(elem) fails" msgstr "" -#: ../../library/itertools.rst:55 msgid "``filterfalse(lambda x: x<5, [1,4,6,3,8]) → 6 8``" msgstr "" -#: ../../library/itertools.rst:56 msgid ":func:`groupby`" msgstr "" -#: ../../library/itertools.rst:56 msgid "iterable[, key]" msgstr "" -#: ../../library/itertools.rst:56 msgid "sub-iterators grouped by value of key(v)" msgstr "" -#: ../../library/itertools.rst:56 msgid "``groupby(['A','B','DEF'], len) → (1, A B) (3, DEF)``" msgstr "" -#: ../../library/itertools.rst:57 msgid ":func:`islice`" msgstr "" -#: ../../library/itertools.rst:57 msgid "seq, [start,] stop [, step]" msgstr "" -#: ../../library/itertools.rst:57 msgid "elements from seq[start:stop:step]" msgstr "" -#: ../../library/itertools.rst:57 msgid "``islice('ABCDEFG', 2, None) → C D E F G``" msgstr "" -#: ../../library/itertools.rst:58 msgid ":func:`pairwise`" msgstr "" -#: ../../library/itertools.rst:58 msgid "(p[0], p[1]), (p[1], p[2])" msgstr "" -#: ../../library/itertools.rst:58 msgid "``pairwise('ABCDEFG') → AB BC CD DE EF FG``" msgstr "" -#: ../../library/itertools.rst:59 msgid ":func:`starmap`" msgstr "" -#: ../../library/itertools.rst:59 msgid "func, seq" msgstr "" -#: ../../library/itertools.rst:59 msgid "func(\\*seq[0]), func(\\*seq[1]), ..." msgstr "" -#: ../../library/itertools.rst:59 msgid "``starmap(pow, [(2,5), (3,2), (10,3)]) → 32 9 1000``" msgstr "" -#: ../../library/itertools.rst:60 msgid ":func:`takewhile`" msgstr "" -#: ../../library/itertools.rst:60 msgid "seq[0], seq[1], until predicate fails" msgstr "" -#: ../../library/itertools.rst:60 msgid "``takewhile(lambda x: x<5, [1,4,6,3,8]) → 1 4``" msgstr "" -#: ../../library/itertools.rst:61 msgid ":func:`tee`" msgstr "" -#: ../../library/itertools.rst:61 msgid "it, n" msgstr "" -#: ../../library/itertools.rst:61 msgid "it1, it2, ... itn splits one iterator into n" msgstr "" -#: ../../library/itertools.rst:61 msgid "``tee('ABC', 2) → A B C, A B C``" msgstr "" -#: ../../library/itertools.rst:62 msgid ":func:`zip_longest`" msgstr "" -#: ../../library/itertools.rst:62 msgid "(p[0], q[0]), (p[1], q[1]), ..." msgstr "" -#: ../../library/itertools.rst:62 msgid "``zip_longest('ABCD', 'xy', fillvalue='-') → Ax By C- D-``" msgstr "" -#: ../../library/itertools.rst:65 msgid "**Combinatoric iterators:**" msgstr "" -#: ../../library/itertools.rst:70 msgid ":func:`product`" msgstr "" -#: ../../library/itertools.rst:70 msgid "p, q, ... [repeat=1]" msgstr "" -#: ../../library/itertools.rst:70 msgid "cartesian product, equivalent to a nested for-loop" msgstr "" -#: ../../library/itertools.rst:71 msgid ":func:`permutations`" msgstr "" -#: ../../library/itertools.rst:71 msgid "p[, r]" msgstr "" -#: ../../library/itertools.rst:71 msgid "r-length tuples, all possible orderings, no repeated elements" msgstr "" -#: ../../library/itertools.rst:72 msgid ":func:`combinations`" msgstr "" -#: ../../library/itertools.rst:72 ../../library/itertools.rst:73 msgid "p, r" msgstr "" -#: ../../library/itertools.rst:72 msgid "r-length tuples, in sorted order, no repeated elements" msgstr "" -#: ../../library/itertools.rst:73 msgid ":func:`combinations_with_replacement`" msgstr "" -#: ../../library/itertools.rst:73 msgid "r-length tuples, in sorted order, with repeated elements" msgstr "" -#: ../../library/itertools.rst:77 msgid "Examples" msgstr "" -#: ../../library/itertools.rst:79 msgid "``product('ABCD', repeat=2)``" msgstr "" -#: ../../library/itertools.rst:79 msgid "``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``" msgstr "" -#: ../../library/itertools.rst:80 msgid "``permutations('ABCD', 2)``" msgstr "" -#: ../../library/itertools.rst:80 msgid "``AB AC AD BA BC BD CA CB CD DA DB DC``" msgstr "" -#: ../../library/itertools.rst:81 msgid "``combinations('ABCD', 2)``" msgstr "" -#: ../../library/itertools.rst:81 msgid "``AB AC AD BC BD CD``" msgstr "" -#: ../../library/itertools.rst:82 msgid "``combinations_with_replacement('ABCD', 2)``" msgstr "" -#: ../../library/itertools.rst:82 msgid "``AA AB AC AD BB BC BD CC CD DD``" msgstr "" -#: ../../library/itertools.rst:89 msgid "Itertool Functions" msgstr "" -#: ../../library/itertools.rst:91 msgid "" "The following functions all construct and return iterators. Some provide " "streams of infinite length, so they should only be accessed by functions or " "loops that truncate the stream." msgstr "" -#: ../../library/itertools.rst:98 msgid "" "Make an iterator that returns accumulated sums or accumulated results from " "other binary functions." msgstr "" -#: ../../library/itertools.rst:101 msgid "" "The *function* defaults to addition. The *function* should accept two " "arguments, an accumulated total and a value from the *iterable*." msgstr "" -#: ../../library/itertools.rst:104 msgid "" "If an *initial* value is provided, the accumulation will start with that " "value and the output will have one more element than the input iterable." msgstr "" -#: ../../library/itertools.rst:108 ../../library/itertools.rst:181 -#: ../../library/itertools.rst:240 ../../library/itertools.rst:283 -#: ../../library/itertools.rst:484 ../../library/itertools.rst:519 -#: ../../library/itertools.rst:556 ../../library/itertools.rst:632 -#: ../../library/itertools.rst:693 ../../library/itertools.rst:774 msgid "Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:110 msgid "" "def accumulate(iterable, function=operator.add, *, initial=None):\n" " 'Return running totals'\n" @@ -468,7 +359,6 @@ msgid "" " yield total" msgstr "" -#: ../../library/itertools.rst:129 msgid "" "To compute a running minimum, set *function* to :func:`min`. For a running " "maximum, set *function* to :func:`max`. Or for a running product, set " @@ -477,7 +367,6 @@ msgid "" "interest and apply payments:" msgstr "" -#: ../../library/itertools.rst:136 msgid "" ">>> data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]\n" ">>> list(accumulate(data, max)) # running maximum\n" @@ -491,33 +380,27 @@ msgid "" "[1000, 960, 918, 874, 828, 779, 728, 674, 618, 559, 497]" msgstr "" -#: ../../library/itertools.rst:149 msgid "" "See :func:`functools.reduce` for a similar function that returns only the " "final accumulated value." msgstr "" -#: ../../library/itertools.rst:154 msgid "Added the optional *function* parameter." msgstr "" -#: ../../library/itertools.rst:157 msgid "Added the optional *initial* parameter." msgstr "" -#: ../../library/itertools.rst:163 msgid "" "Batch data from the *iterable* into tuples of length *n*. The last batch may " "be shorter than *n*." msgstr "" -#: ../../library/itertools.rst:166 msgid "" "If *strict* is true, will raise a :exc:`ValueError` if the final batch is " "shorter than *n*." msgstr "" -#: ../../library/itertools.rst:169 msgid "" "Loops over the input iterable and accumulates data into tuples up to size " "*n*. The input is consumed lazily, just enough to fill a batch. The result " @@ -525,7 +408,6 @@ msgid "" "exhausted:" msgstr "" -#: ../../library/itertools.rst:174 msgid "" ">>> flattened_data = ['roses', 'red', 'violets', 'blue', 'sugar', 'sweet']\n" ">>> unflattened = list(batched(flattened_data, 2))\n" @@ -533,7 +415,6 @@ msgid "" "[('roses', 'red'), ('violets', 'blue'), ('sugar', 'sweet')]" msgstr "" -#: ../../library/itertools.rst:183 msgid "" "def batched(iterable, n, *, strict=False):\n" " # batched('ABCDEFG', 2) → AB CD EF G\n" @@ -546,11 +427,9 @@ msgid "" " yield batch" msgstr "" -#: ../../library/itertools.rst:195 msgid "Added the *strict* option." msgstr "" -#: ../../library/itertools.rst:201 msgid "" "Make an iterator that returns elements from the first iterable until it is " "exhausted, then proceeds to the next iterable, until all of the iterables " @@ -558,7 +437,6 @@ msgid "" "Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:206 msgid "" "def chain(*iterables):\n" " # chain('ABC', 'DEF') → A B C D E F\n" @@ -566,13 +444,11 @@ msgid "" " yield from iterable" msgstr "" -#: ../../library/itertools.rst:214 msgid "" "Alternate constructor for :func:`chain`. Gets chained inputs from a single " "iterable argument that is evaluated lazily. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:217 msgid "" "def from_iterable(iterables):\n" " # chain.from_iterable(['ABC', 'DEF']) → A B C D E F\n" @@ -580,33 +456,28 @@ msgid "" " yield from iterable" msgstr "" -#: ../../library/itertools.rst:225 msgid "Return *r* length subsequences of elements from the input *iterable*." msgstr "" -#: ../../library/itertools.rst:227 msgid "" "The output is a subsequence of :func:`product` keeping only entries that are " -"subsequences of the *iterable*. The length of the output is given " -"by :func:`math.comb` which computes ``n! / r! / (n - r)!`` when ``0 ≤ r ≤ " -"n`` or zero when ``r > n``." +"subsequences of the *iterable*. The length of the output is given by :func:" +"`math.comb` which computes ``n! / r! / (n - r)!`` when ``0 ≤ r ≤ n`` or zero " +"when ``r > n``." msgstr "" -#: ../../library/itertools.rst:232 msgid "" "The combination tuples are emitted in lexicographic order according to the " "order of the input *iterable*. If the input *iterable* is sorted, the output " "tuples will be produced in sorted order." msgstr "" -#: ../../library/itertools.rst:236 msgid "" "Elements are treated as unique based on their position, not on their value. " "If the input elements are unique, there will be no repeated values within " "each combination." msgstr "" -#: ../../library/itertools.rst:242 msgid "" "def combinations(iterable, r):\n" " # combinations('ABCD', 2) → AB AC AD BC BD CD\n" @@ -631,13 +502,11 @@ msgid "" " yield tuple(pool[i] for i in indices)" msgstr "" -#: ../../library/itertools.rst:267 msgid "" "Return *r* length subsequences of elements from the input *iterable* " "allowing individual elements to be repeated more than once." msgstr "" -#: ../../library/itertools.rst:270 msgid "" "The output is a subsequence of :func:`product` that keeps only entries that " "are subsequences (with possible repeated elements) of the *iterable*. The " @@ -645,21 +514,18 @@ msgid "" "> 0``." msgstr "" -#: ../../library/itertools.rst:275 msgid "" "The combination tuples are emitted in lexicographic order according to the " "order of the input *iterable*. if the input *iterable* is sorted, the output " "tuples will be produced in sorted order." msgstr "" -#: ../../library/itertools.rst:279 msgid "" "Elements are treated as unique based on their position, not on their value. " "If the input elements are unique, the generated combinations will also be " "unique." msgstr "" -#: ../../library/itertools.rst:285 msgid "" "def combinations_with_replacement(iterable, r):\n" " # combinations_with_replacement('ABC', 2) → AA AB AC BB BC CC\n" @@ -681,28 +547,24 @@ msgid "" " yield tuple(pool[i] for i in indices)" msgstr "" -#: ../../library/itertools.rst:309 msgid "" "Make an iterator that returns elements from *data* where the corresponding " "element in *selectors* is true. Stops when either the *data* or *selectors* " "iterables have been exhausted. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:314 msgid "" "def compress(data, selectors):\n" " # compress('ABCDEF', [1,0,1,0,1,1]) → A C E F\n" " return (datum for datum, selector in zip(data, selectors) if selector)" msgstr "" -#: ../../library/itertools.rst:323 msgid "" "Make an iterator that returns evenly spaced values beginning with *start*. " -"Can be used with :func:`map` to generate consecutive data points or " -"with :func:`zip` to add sequence numbers. Roughly equivalent to::" +"Can be used with :func:`map` to generate consecutive data points or with :" +"func:`zip` to add sequence numbers. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:328 msgid "" "def count(start=0, step=1):\n" " # count(10) → 10 11 12 13 14 ...\n" @@ -713,25 +575,21 @@ msgid "" " n += step" msgstr "" -#: ../../library/itertools.rst:336 msgid "" "When counting with floating-point numbers, better accuracy can sometimes be " "achieved by substituting multiplicative code such as: ``(start + step * i " "for i in count())``." msgstr "" -#: ../../library/itertools.rst:340 msgid "Added *step* argument and allowed non-integer arguments." msgstr "" -#: ../../library/itertools.rst:346 msgid "" "Make an iterator returning elements from the *iterable* and saving a copy of " "each. When the iterable is exhausted, return elements from the saved copy. " "Repeats indefinitely. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:350 msgid "" "def cycle(iterable):\n" " # cycle('ABCD') → A B C D A B C D A B C D ...\n" @@ -746,20 +604,17 @@ msgid "" " yield element" msgstr "" -#: ../../library/itertools.rst:362 msgid "" "This itertool may require significant auxiliary storage (depending on the " "length of the iterable)." msgstr "" -#: ../../library/itertools.rst:368 msgid "" "Make an iterator that drops elements from the *iterable* while the " "*predicate* is true and afterwards returns every element. Roughly " "equivalent to::" msgstr "" -#: ../../library/itertools.rst:372 msgid "" "def dropwhile(predicate, iterable):\n" " # dropwhile(lambda x: x<5, [1,4,6,3,8]) → 6 3 8\n" @@ -774,20 +629,17 @@ msgid "" " yield x" msgstr "" -#: ../../library/itertools.rst:384 msgid "" "Note this does not produce *any* output until the predicate first becomes " "false, so this itertool may have a lengthy start-up time." msgstr "" -#: ../../library/itertools.rst:390 msgid "" "Make an iterator that filters elements from the *iterable* returning only " "those for which the *predicate* returns a false value. If *predicate* is " "``None``, returns the items that are false. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:395 msgid "" "def filterfalse(predicate, iterable):\n" " # filterfalse(lambda x: x<5, [1,4,6,3,8]) → 6 8\n" @@ -800,7 +652,6 @@ msgid "" " yield x" msgstr "" -#: ../../library/itertools.rst:408 msgid "" "Make an iterator that returns consecutive keys and groups from the " "*iterable*. The *key* is a function computing a key value for each element. " @@ -809,7 +660,6 @@ msgid "" "sorted on the same key function." msgstr "" -#: ../../library/itertools.rst:414 msgid "" "The operation of :func:`groupby` is similar to the ``uniq`` filter in Unix. " "It generates a break or new group every time the value of the key function " @@ -818,15 +668,13 @@ msgid "" "aggregates common elements regardless of their input order." msgstr "" -#: ../../library/itertools.rst:420 msgid "" "The returned group is itself an iterator that shares the underlying iterable " -"with :func:`groupby`. Because the source is shared, when " -"the :func:`groupby` object is advanced, the previous group is no longer " -"visible. So, if that data is needed later, it should be stored as a list::" +"with :func:`groupby`. Because the source is shared, when the :func:" +"`groupby` object is advanced, the previous group is no longer visible. So, " +"if that data is needed later, it should be stored as a list::" msgstr "" -#: ../../library/itertools.rst:425 msgid "" "groups = []\n" "uniquekeys = []\n" @@ -836,11 +684,9 @@ msgid "" " uniquekeys.append(k)" msgstr "" -#: ../../library/itertools.rst:432 msgid ":func:`groupby` is roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:434 msgid "" "def groupby(iterable, key=None):\n" " # [k for k, g in groupby('AAAABBBCCDAABBB')] → A B C D A B\n" @@ -875,33 +721,28 @@ msgid "" " pass" msgstr "" -#: ../../library/itertools.rst:470 msgid "" "Make an iterator that returns selected elements from the iterable. Works " "like sequence slicing but does not support negative values for *start*, " "*stop*, or *step*." msgstr "" -#: ../../library/itertools.rst:474 msgid "" "If *start* is zero or ``None``, iteration starts at zero. Otherwise, " "elements from the iterable are skipped until *start* is reached." msgstr "" -#: ../../library/itertools.rst:477 msgid "" "If *stop* is ``None``, iteration continues until the input is exhausted, if " "at all. Otherwise, it stops at the specified position." msgstr "" -#: ../../library/itertools.rst:480 msgid "" "If *step* is ``None``, the step defaults to one. Elements are returned " "consecutively unless *step* is set higher than one which results in items " "being skipped." msgstr "" -#: ../../library/itertools.rst:486 msgid "" "def islice(iterable, *args):\n" " # islice('ABCDEFG', 2) → A B\n" @@ -924,24 +765,20 @@ msgid "" " next_i += step" msgstr "" -#: ../../library/itertools.rst:506 msgid "" "If the input is an iterator, then fully consuming the *islice* advances the " "input iterator by ``max(start, stop)`` steps regardless of the *step* value." msgstr "" -#: ../../library/itertools.rst:513 msgid "Return successive overlapping pairs taken from the input *iterable*." msgstr "" -#: ../../library/itertools.rst:515 msgid "" "The number of 2-tuples in the output iterator will be one fewer than the " "number of inputs. It will be empty if the input iterable has fewer than two " "values." msgstr "" -#: ../../library/itertools.rst:521 msgid "" "def pairwise(iterable):\n" " # pairwise('ABCDEFG') → AB BC CD DE EF FG\n" @@ -954,41 +791,35 @@ msgid "" " a = b" msgstr "" -#: ../../library/itertools.rst:536 msgid "" -"Return successive *r* length `permutations of elements `_ from the *iterable*." +"Return successive *r* length `permutations of elements `_ from the *iterable*." msgstr "" -#: ../../library/itertools.rst:539 msgid "" "If *r* is not specified or is ``None``, then *r* defaults to the length of " "the *iterable* and all possible full-length permutations are generated." msgstr "" -#: ../../library/itertools.rst:543 msgid "" "The output is a subsequence of :func:`product` where entries with repeated " -"elements have been filtered out. The length of the output is given " -"by :func:`math.perm` which computes ``n! / (n - r)!`` when ``0 ≤ r ≤ n`` or " -"zero when ``r > n``." +"elements have been filtered out. The length of the output is given by :func:" +"`math.perm` which computes ``n! / (n - r)!`` when ``0 ≤ r ≤ n`` or zero when " +"``r > n``." msgstr "" -#: ../../library/itertools.rst:548 msgid "" "The permutation tuples are emitted in lexicographic order according to the " "order of the input *iterable*. If the input *iterable* is sorted, the " "output tuples will be produced in sorted order." msgstr "" -#: ../../library/itertools.rst:552 msgid "" "Elements are treated as unique based on their position, not on their value. " "If the input elements are unique, there will be no repeated values within a " "permutation." msgstr "" -#: ../../library/itertools.rst:558 msgid "" "def permutations(iterable, r=None):\n" " # permutations('ABCD', 2) → AB AC AD BA BC BD CA CB CD DA DB DC\n" @@ -1019,20 +850,17 @@ msgid "" " return" msgstr "" -#: ../../library/itertools.rst:589 msgid "" "`Cartesian product `_ of " "the input iterables." msgstr "" -#: ../../library/itertools.rst:592 msgid "" "Roughly equivalent to nested for-loops in a generator expression. For " "example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " "B)``." msgstr "" -#: ../../library/itertools.rst:595 msgid "" "The nested loops cycle like an odometer with the rightmost element advancing " "on every iteration. This pattern creates a lexicographic ordering so that " @@ -1040,20 +868,17 @@ msgid "" "sorted order." msgstr "" -#: ../../library/itertools.rst:600 msgid "" "To compute the product of an iterable with itself, specify the number of " "repetitions with the optional *repeat* keyword argument. For example, " "``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``." msgstr "" -#: ../../library/itertools.rst:604 msgid "" "This function is roughly equivalent to the following code, except that the " "actual implementation does not build up intermediate results in memory::" msgstr "" -#: ../../library/itertools.rst:607 msgid "" "def product(*iterables, repeat=1):\n" " # product('ABCD', 'xy') → Ax Ay Bx By Cx Cy Dx Dy\n" @@ -1071,20 +896,17 @@ msgid "" " yield tuple(prod)" msgstr "" -#: ../../library/itertools.rst:622 msgid "" "Before :func:`product` runs, it completely consumes the input iterables, " "keeping pools of values in memory to generate the products. Accordingly, it " "is only useful with finite inputs." msgstr "" -#: ../../library/itertools.rst:629 msgid "" "Make an iterator that returns *object* over and over again. Runs " "indefinitely unless the *times* argument is specified." msgstr "" -#: ../../library/itertools.rst:634 msgid "" "def repeat(object, times=None):\n" " # repeat(10, 3) → 10 10 10\n" @@ -1096,33 +918,28 @@ msgid "" " yield object" msgstr "" -#: ../../library/itertools.rst:643 msgid "" "A common use for *repeat* is to supply a stream of constant values to *map* " "or *zip*:" msgstr "" -#: ../../library/itertools.rst:646 msgid "" ">>> list(map(pow, range(10), repeat(2)))\n" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" msgstr "" -#: ../../library/itertools.rst:654 msgid "" "Make an iterator that computes the *function* using arguments obtained from " "the *iterable*. Used instead of :func:`map` when argument parameters have " "already been \"pre-zipped\" into tuples." msgstr "" -#: ../../library/itertools.rst:658 msgid "" "The difference between :func:`map` and :func:`starmap` parallels the " "distinction between ``function(a,b)`` and ``function(*c)``. Roughly " "equivalent to::" msgstr "" -#: ../../library/itertools.rst:662 msgid "" "def starmap(function, iterable):\n" " # starmap(pow, [(2,5), (3,2), (10,3)]) → 32 9 1000\n" @@ -1130,13 +947,11 @@ msgid "" " yield function(*args)" msgstr "" -#: ../../library/itertools.rst:670 msgid "" "Make an iterator that returns elements from the *iterable* as long as the " "*predicate* is true. Roughly equivalent to::" msgstr "" -#: ../../library/itertools.rst:673 msgid "" "def takewhile(predicate, iterable):\n" " # takewhile(lambda x: x<5, [1,4,6,3,8]) → 1 4\n" @@ -1146,22 +961,18 @@ msgid "" " yield x" msgstr "" -#: ../../library/itertools.rst:680 msgid "" "Note, the element that first fails the predicate condition is consumed from " "the input iterator and there is no way to access it. This could be an issue " "if an application wants to further consume the input iterator after " "*takewhile* has been run to exhaustion. To work around this problem, " -"consider using `more-itertools before_and_after() `_ instead." +"consider using `more-itertools before_and_after() `_ instead." msgstr "" -#: ../../library/itertools.rst:691 msgid "Return *n* independent iterators from a single iterable." msgstr "" -#: ../../library/itertools.rst:695 msgid "" "def tee(iterable, n=2):\n" " if n < 0:\n" @@ -1197,20 +1008,17 @@ msgid "" " return value" msgstr "" -#: ../../library/itertools.rst:728 msgid "" "When the input *iterable* is already a tee iterator object, all members of " "the return tuple are constructed as if they had been produced by the " -"upstream :func:`tee` call. This \"flattening step\" allows " -"nested :func:`tee` calls to share the same underlying data chain and to have " -"a single update step rather than a chain of calls." +"upstream :func:`tee` call. This \"flattening step\" allows nested :func:" +"`tee` calls to share the same underlying data chain and to have a single " +"update step rather than a chain of calls." msgstr "" -#: ../../library/itertools.rst:734 msgid "The flattening property makes tee iterators efficiently peekable:" msgstr "" -#: ../../library/itertools.rst:736 msgid "" "def lookahead(tee_iterator):\n" " \"Return the next value without moving the input forward\"\n" @@ -1218,7 +1026,6 @@ msgid "" " return next(forked_iterator)" msgstr "" -#: ../../library/itertools.rst:743 msgid "" ">>> iterator = iter('abcdef')\n" ">>> [iterator] = tee(iterator, 1) # Make the input peekable\n" @@ -1230,36 +1037,30 @@ msgid "" "'b'" msgstr "" -#: ../../library/itertools.rst:754 msgid "" "``tee`` iterators are not threadsafe. A :exc:`RuntimeError` may be raised " "when simultaneously using iterators returned by the same :func:`tee` call, " "even if the original *iterable* is threadsafe." msgstr "" -#: ../../library/itertools.rst:758 msgid "" "This itertool may require significant auxiliary storage (depending on how " "much temporary data needs to be stored). In general, if one iterator uses " -"most or all of the data before another iterator starts, it is faster to " -"use :func:`list` instead of :func:`tee`." +"most or all of the data before another iterator starts, it is faster to use :" +"func:`list` instead of :func:`tee`." msgstr "" -#: ../../library/itertools.rst:766 msgid "Make an iterator that aggregates elements from each of the *iterables*." msgstr "" -#: ../../library/itertools.rst:769 msgid "" "If the iterables are of uneven length, missing values are filled-in with " "*fillvalue*. If not specified, *fillvalue* defaults to ``None``." msgstr "" -#: ../../library/itertools.rst:772 msgid "Iteration continues until the longest iterable is exhausted." msgstr "" -#: ../../library/itertools.rst:776 msgid "" "def zip_longest(*iterables, fillvalue=None):\n" " # zip_longest('ABCD', 'xy', fillvalue='-') → Ax By C- D-\n" @@ -1284,36 +1085,31 @@ msgid "" " yield tuple(values)" msgstr "" -#: ../../library/itertools.rst:798 msgid "" -"If one of the iterables is potentially infinite, then " -"the :func:`zip_longest` function should be wrapped with something that " -"limits the number of calls (for example :func:`islice` or :func:`takewhile`)." +"If one of the iterables is potentially infinite, then the :func:" +"`zip_longest` function should be wrapped with something that limits the " +"number of calls (for example :func:`islice` or :func:`takewhile`)." msgstr "" -#: ../../library/itertools.rst:806 msgid "Itertools Recipes" msgstr "" -#: ../../library/itertools.rst:808 msgid "" "This section shows recipes for creating an extended toolset using the " "existing itertools as building blocks." msgstr "" -#: ../../library/itertools.rst:811 msgid "" "The primary purpose of the itertools recipes is educational. The recipes " "show various ways of thinking about individual tools — for example, that " "``chain.from_iterable`` is related to the concept of flattening. The " "recipes also give ideas about ways that the tools can be combined — for " "example, how ``starmap()`` and ``repeat()`` can work together. The recipes " -"also show patterns for using itertools with the :mod:`operator` " -"and :mod:`collections` modules as well as with the built-in itertools such " -"as ``map()``, ``filter()``, ``reversed()``, and ``enumerate()``." +"also show patterns for using itertools with the :mod:`operator` and :mod:" +"`collections` modules as well as with the built-in itertools such as " +"``map()``, ``filter()``, ``reversed()``, and ``enumerate()``." msgstr "" -#: ../../library/itertools.rst:820 msgid "" "A secondary purpose of the recipes is to serve as an incubator. The " "``accumulate()``, ``compress()``, and ``pairwise()`` itertools started out " @@ -1321,17 +1117,14 @@ msgid "" "``sieve()`` recipes are being tested to see whether they prove their worth." msgstr "" -#: ../../library/itertools.rst:825 msgid "" "Substantially all of these recipes and many, many others can be installed " "from the :pypi:`more-itertools` project found on the Python Package Index::" msgstr "" -#: ../../library/itertools.rst:829 msgid "python -m pip install more-itertools" msgstr "" -#: ../../library/itertools.rst:831 msgid "" "Many of the recipes offer the same high performance as the underlying " "toolset. Superior memory performance is kept by processing elements one at a " @@ -1343,7 +1136,6 @@ msgid "" "overhead." msgstr "" -#: ../../library/itertools.rst:839 msgid "" "from collections import Counter, deque\n" "from contextlib import suppress\n" @@ -1516,11 +1308,9 @@ msgid "" " yield function()" msgstr "" -#: ../../library/itertools.rst:1008 msgid "The following recipes have a more mathematical flavor:" msgstr "" -#: ../../library/itertools.rst:1010 msgid "" "def multinomial(*counts):\n" " \"Number of distinct arrangements of a multiset.\"\n" diff --git a/library/json.po b/library/json.po index 35cea0f..f1fcd86 100644 --- a/library/json.po +++ b/library/json.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,49 +22,41 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/json.rst:2 msgid ":mod:`!json` --- JSON encoder and decoder" msgstr "" -#: ../../library/json.rst:10 msgid "**Source code:** :source:`Lib/json/__init__.py`" msgstr "" -#: ../../library/json.rst:14 msgid "" -"`JSON (JavaScript Object Notation) `_, specified " -"by :rfc:`7159` (which obsoletes :rfc:`4627`) and by `ECMA-404 `_, specified by :rfc:" +"`7159` (which obsoletes :rfc:`4627`) and by `ECMA-404 `_, is a " -"lightweight data interchange format inspired by `JavaScript `_ object literal syntax (although it is " -"not a strict subset of JavaScript [#rfc-errata]_ )." +"lightweight data interchange format inspired by `JavaScript `_ object literal syntax (although it is not a " +"strict subset of JavaScript [#rfc-errata]_ )." msgstr "" -#: ../../library/json.rst:22 msgid "" "The term \"object\" in the context of JSON processing in Python can be " "ambiguous. All values in Python are objects. In JSON, an object refers to " "any data wrapped in curly braces, similar to a Python dictionary." msgstr "" -#: ../../library/json.rst:27 msgid "" "Be cautious when parsing JSON data from untrusted sources. A malicious JSON " "string may cause the decoder to consume considerable CPU and memory " "resources. Limiting the size of data to be parsed is recommended." msgstr "" -#: ../../library/json.rst:31 msgid "" -"This module exposes an API familiar to users of the standard " -"library :mod:`marshal` and :mod:`pickle` modules." +"This module exposes an API familiar to users of the standard library :mod:" +"`marshal` and :mod:`pickle` modules." msgstr "" -#: ../../library/json.rst:34 msgid "Encoding basic Python object hierarchies::" msgstr "" -#: ../../library/json.rst:36 msgid "" ">>> import json\n" ">>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])\n" @@ -84,22 +76,18 @@ msgid "" "'[\"streaming API\"]'" msgstr "" -#: ../../library/json.rst:53 msgid "Compact encoding::" msgstr "" -#: ../../library/json.rst:55 msgid "" ">>> import json\n" ">>> json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':'))\n" "'[1,2,3,{\"4\":5,\"6\":7}]'" msgstr "" -#: ../../library/json.rst:59 msgid "Pretty printing::" msgstr "" -#: ../../library/json.rst:61 msgid "" ">>> import json\n" ">>> print(json.dumps({'6': 7, '4': 5}, sort_keys=True, indent=4))\n" @@ -109,28 +97,24 @@ msgid "" "}" msgstr "" -#: ../../library/json.rst:68 msgid "Customizing JSON object encoding::" msgstr "" -#: ../../library/json.rst:70 msgid "" ">>> import json\n" ">>> def custom_json(obj):\n" "... if isinstance(obj, complex):\n" -"... return {'__complex__': True, 'real': obj.real, 'imag': " -"obj.imag}\n" +"... return {'__complex__': True, 'real': obj.real, 'imag': obj." +"imag}\n" "... raise TypeError(f'Cannot serialize object of {type(obj)}')\n" "...\n" ">>> json.dumps(1 + 2j, default=custom_json)\n" "'{\"__complex__\": true, \"real\": 1.0, \"imag\": 2.0}'" msgstr "" -#: ../../library/json.rst:79 msgid "Decoding JSON::" msgstr "" -#: ../../library/json.rst:81 msgid "" ">>> import json\n" ">>> json.loads('[\"foo\", {\"bar\":[\"baz\", null, 1.0, 2]}]')\n" @@ -143,11 +127,9 @@ msgid "" "['streaming API']" msgstr "" -#: ../../library/json.rst:91 msgid "Customizing JSON object decoding::" msgstr "" -#: ../../library/json.rst:93 msgid "" ">>> import json\n" ">>> def as_complex(dct):\n" @@ -163,11 +145,9 @@ msgid "" "Decimal('1.1')" msgstr "" -#: ../../library/json.rst:106 msgid "Extending :class:`JSONEncoder`::" msgstr "" -#: ../../library/json.rst:108 msgid "" ">>> import json\n" ">>> class ComplexEncoder(json.JSONEncoder):\n" @@ -185,11 +165,9 @@ msgid "" "['[2.0', ', 1.0', ']']" msgstr "" -#: ../../library/json.rst:124 msgid "Using :mod:`json` from the shell to validate and pretty-print:" msgstr "" -#: ../../library/json.rst:126 msgid "" "$ echo '{\"json\":\"obj\"}' | python -m json\n" "{\n" @@ -199,11 +177,9 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: ../../library/json.rst:135 msgid "See :ref:`json-commandline` for detailed documentation." msgstr "" -#: ../../library/json.rst:139 msgid "" "JSON is a subset of `YAML `_ 1.2. The JSON produced by " "this module's default settings (in particular, the default *separators* " @@ -211,67 +187,56 @@ msgid "" "used as a YAML serializer." msgstr "" -#: ../../library/json.rst:146 msgid "" "This module's encoders and decoders preserve input and output order by " "default. Order is only lost if the underlying containers are unordered." msgstr "" -#: ../../library/json.rst:151 msgid "Basic Usage" msgstr "" -#: ../../library/json.rst:158 msgid "" "Serialize *obj* as a JSON formatted stream to *fp* (a ``.write()``-" "supporting :term:`file-like object`) using this :ref:`Python-to-JSON " "conversion table `." msgstr "" -#: ../../library/json.rst:164 msgid "" "Unlike :mod:`pickle` and :mod:`marshal`, JSON is not a framed protocol, so " "trying to serialize multiple objects with repeated calls to :func:`dump` " "using the same *fp* will result in an invalid JSON file." msgstr "" -#: ../../library/json.rst:0 msgid "Parameters" msgstr "" -#: ../../library/json.rst:168 msgid "The Python object to be serialized." msgstr "" -#: ../../library/json.rst:171 msgid "" "The file-like object *obj* will be serialized to. The :mod:`!json` module " "always produces :class:`str` objects, not :class:`bytes` objects, therefore " "``fp.write()`` must support :class:`str` input." msgstr "" -#: ../../library/json.rst:178 msgid "" -"If ``True``, keys that are not of a basic type " -"(:class:`str`, :class:`int`, :class:`float`, :class:`bool`, ``None``) will " -"be skipped instead of raising a :exc:`TypeError`. Default ``False``." +"If ``True``, keys that are not of a basic type (:class:`str`, :class:`int`, :" +"class:`float`, :class:`bool`, ``None``) will be skipped instead of raising " +"a :exc:`TypeError`. Default ``False``." msgstr "" -#: ../../library/json.rst:184 msgid "" "If ``True`` (the default), the output is guaranteed to have all incoming non-" "ASCII characters escaped. If ``False``, these characters will be outputted " "as-is." msgstr "" -#: ../../library/json.rst:189 msgid "" "If ``False``, the circular reference check for container types is skipped " "and a circular reference will result in a :exc:`RecursionError` (or worse). " "Default ``True``." msgstr "" -#: ../../library/json.rst:194 msgid "" "If ``False``, serialization of out-of-range :class:`float` values (``nan``, " "``inf``, ``-inf``) will result in a :exc:`ValueError`, in strict compliance " @@ -279,14 +244,12 @@ msgid "" "equivalents (``NaN``, ``Infinity``, ``-Infinity``) are used." msgstr "" -#: ../../library/json.rst:201 msgid "" "If set, a custom JSON encoder with the :meth:`~JSONEncoder.default` method " "overridden, for serializing into custom datatypes. If ``None`` (the " "default), :class:`!JSONEncoder` is used." msgstr "" -#: ../../library/json.rst:208 msgid "" "If a positive integer or string, JSON array elements and object members will " "be pretty-printed with that indent level. A positive integer indents that " @@ -295,7 +258,6 @@ msgid "" "inserted. If ``None`` (the default), the most compact representation is used." msgstr "" -#: ../../library/json.rst:218 msgid "" "A two-tuple: ``(item_separator, key_separator)``. If ``None`` (the default), " "*separators* defaults to ``(', ', ': ')`` if *indent* is ``None``, and " @@ -303,39 +265,32 @@ msgid "" "to eliminate whitespace." msgstr "" -#: ../../library/json.rst:227 msgid "" "A function that is called for objects that can't otherwise be serialized. It " -"should return a JSON encodable version of the object or raise " -"a :exc:`TypeError`. If ``None`` (the default), :exc:`!TypeError` is raised." +"should return a JSON encodable version of the object or raise a :exc:" +"`TypeError`. If ``None`` (the default), :exc:`!TypeError` is raised." msgstr "" -#: ../../library/json.rst:234 msgid "" "If ``True``, dictionaries will be outputted sorted by key. Default ``False``." msgstr "" -#: ../../library/json.rst:238 ../../library/json.rst:523 msgid "Allow strings for *indent* in addition to integers." msgstr "" -#: ../../library/json.rst:241 ../../library/json.rst:531 msgid "Use ``(',', ': ')`` as default if *indent* is not ``None``." msgstr "" -#: ../../library/json.rst:244 ../../library/json.rst:343 msgid "" "All optional parameters are now :ref:`keyword-only `." msgstr "" -#: ../../library/json.rst:253 msgid "" "Serialize *obj* to a JSON formatted :class:`str` using this :ref:`conversion " -"table `. The arguments have the same meaning as " -"in :func:`dump`." +"table `. The arguments have the same meaning as in :func:" +"`dump`." msgstr "" -#: ../../library/json.rst:259 msgid "" "Keys in key/value pairs of JSON are always of the type :class:`str`. When a " "dictionary is converted into JSON, all the keys of the dictionary are " @@ -344,26 +299,22 @@ msgid "" "original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys." msgstr "" -#: ../../library/json.rst:270 msgid "" "Deserialize *fp* to a Python object using the :ref:`JSON-to-Python " "conversion table `." msgstr "" -#: ../../library/json.rst:273 msgid "" "A ``.read()``-supporting :term:`text file` or :term:`binary file` containing " "the JSON document to be deserialized." msgstr "" -#: ../../library/json.rst:278 msgid "" "If set, a custom JSON decoder. Additional keyword arguments to :func:`!load` " -"will be passed to the constructor of *cls*. If ``None`` (the " -"default), :class:`!JSONDecoder` is used." +"will be passed to the constructor of *cls*. If ``None`` (the default), :" +"class:`!JSONDecoder` is used." msgstr "" -#: ../../library/json.rst:285 msgid "" "If set, a function that is called with the result of any JSON object literal " "decoded (a :class:`dict`). The return value of this function will be used " @@ -372,7 +323,6 @@ msgid "" "Default ``None``." msgstr "" -#: ../../library/json.rst:295 msgid "" "If set, a function that is called with the result of any JSON object literal " "decoded with an ordered list of pairs. The return value of this function " @@ -381,65 +331,54 @@ msgid "" "takes priority. Default ``None``." msgstr "" -#: ../../library/json.rst:305 msgid "" "If set, a function that is called with the string of every JSON float to be " "decoded. If ``None`` (the default), it is equivalent to ``float(num_str)``. " -"This can be used to parse JSON floats into custom datatypes, for " -"example :class:`decimal.Decimal`." +"This can be used to parse JSON floats into custom datatypes, for example :" +"class:`decimal.Decimal`." msgstr "" -#: ../../library/json.rst:313 msgid "" "If set, a function that is called with the string of every JSON int to be " "decoded. If ``None`` (the default), it is equivalent to ``int(num_str)``. " -"This can be used to parse JSON integers into custom datatypes, for " -"example :class:`float`." +"This can be used to parse JSON integers into custom datatypes, for example :" +"class:`float`." msgstr "" -#: ../../library/json.rst:321 msgid "" "If set, a function that is called with one of the following strings: ``'-" "Infinity'``, ``'Infinity'``, or ``'NaN'``. This can be used to raise an " "exception if invalid JSON numbers are encountered. Default ``None``." msgstr "" -#: ../../library/json.rst:0 msgid "Raises" msgstr "" -#: ../../library/json.rst:329 msgid "When the data being deserialized is not a valid JSON document." msgstr "" -#: ../../library/json.rst:332 msgid "" "When the data being deserialized does not contain UTF-8, UTF-16 or UTF-32 " "encoded data." msgstr "" -#: ../../library/json.rst:338 msgid "Added the optional *object_pairs_hook* parameter." msgstr "" -#: ../../library/json.rst:339 msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." msgstr "" -#: ../../library/json.rst:344 msgid "" "*fp* can now be a :term:`binary file`. The input encoding should be UTF-8, " "UTF-16 or UTF-32." msgstr "" -#: ../../library/json.rst:347 msgid "" "The default *parse_int* of :func:`int` now limits the maximum length of the " "integer string via the interpreter's :ref:`integer string conversion length " "limitation ` to help avoid denial of service attacks." msgstr "" -#: ../../library/json.rst:355 msgid "" "Identical to :func:`load`, but instead of a file-like object, deserialize " "*s* (a :class:`str`, :class:`bytes` or :class:`bytearray` instance " @@ -447,128 +386,100 @@ msgid "" "table `." msgstr "" -#: ../../library/json.rst:360 msgid "" "*s* can now be of type :class:`bytes` or :class:`bytearray`. The input " "encoding should be UTF-8, UTF-16 or UTF-32." msgstr "" -#: ../../library/json.rst:364 msgid "The keyword argument *encoding* has been removed." msgstr "" -#: ../../library/json.rst:369 msgid "Encoders and Decoders" msgstr "" -#: ../../library/json.rst:373 msgid "Simple JSON decoder." msgstr "" -#: ../../library/json.rst:375 msgid "Performs the following translations in decoding by default:" msgstr "" -#: ../../library/json.rst:380 ../../library/json.rst:468 msgid "JSON" msgstr "" -#: ../../library/json.rst:380 ../../library/json.rst:468 msgid "Python" msgstr "" -#: ../../library/json.rst:382 ../../library/json.rst:470 msgid "object" msgstr "" -#: ../../library/json.rst:382 ../../library/json.rst:470 msgid "dict" msgstr "" -#: ../../library/json.rst:384 ../../library/json.rst:472 msgid "array" msgstr "" -#: ../../library/json.rst:384 msgid "list" msgstr "" -#: ../../library/json.rst:386 ../../library/json.rst:474 msgid "string" msgstr "" -#: ../../library/json.rst:386 ../../library/json.rst:474 msgid "str" msgstr "" -#: ../../library/json.rst:388 msgid "number (int)" msgstr "" -#: ../../library/json.rst:388 msgid "int" msgstr "" -#: ../../library/json.rst:390 msgid "number (real)" msgstr "" -#: ../../library/json.rst:390 msgid "float" msgstr "" -#: ../../library/json.rst:392 ../../library/json.rst:478 msgid "true" msgstr "" -#: ../../library/json.rst:392 ../../library/json.rst:478 msgid "True" msgstr "" -#: ../../library/json.rst:394 ../../library/json.rst:480 msgid "false" msgstr "" -#: ../../library/json.rst:394 ../../library/json.rst:480 msgid "False" msgstr "" -#: ../../library/json.rst:396 ../../library/json.rst:482 msgid "null" msgstr "" -#: ../../library/json.rst:396 ../../library/json.rst:482 msgid "None" msgstr "" -#: ../../library/json.rst:399 msgid "" "It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their " "corresponding ``float`` values, which is outside the JSON spec." msgstr "" -#: ../../library/json.rst:402 msgid "" "*object_hook* is an optional function that will be called with the result of " "every JSON object decoded and its return value will be used in place of the " -"given :class:`dict`. This can be used to provide custom deserializations " -"(e.g. to support `JSON-RPC `_ class hinting)." +"given :class:`dict`. This can be used to provide custom deserializations (e." +"g. to support `JSON-RPC `_ class hinting)." msgstr "" -#: ../../library/json.rst:407 msgid "" "*object_pairs_hook* is an optional function that will be called with the " "result of every JSON object decoded with an ordered list of pairs. The " -"return value of *object_pairs_hook* will be used instead of " -"the :class:`dict`. This feature can be used to implement custom decoders. " -"If *object_hook* is also defined, the *object_pairs_hook* takes priority." +"return value of *object_pairs_hook* will be used instead of the :class:" +"`dict`. This feature can be used to implement custom decoders. If " +"*object_hook* is also defined, the *object_pairs_hook* takes priority." msgstr "" -#: ../../library/json.rst:413 msgid "Added support for *object_pairs_hook*." msgstr "" -#: ../../library/json.rst:416 msgid "" "*parse_float* is an optional function that will be called with the string of " "every JSON float to be decoded. By default, this is equivalent to " @@ -576,7 +487,6 @@ msgid "" "JSON floats (e.g. :class:`decimal.Decimal`)." msgstr "" -#: ../../library/json.rst:421 msgid "" "*parse_int* is an optional function that will be called with the string of " "every JSON int to be decoded. By default, this is equivalent to " @@ -584,14 +494,12 @@ msgid "" "JSON integers (e.g. :class:`float`)." msgstr "" -#: ../../library/json.rst:426 msgid "" "*parse_constant* is an optional function that will be called with one of the " "following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. This can be " "used to raise an exception if invalid JSON numbers are encountered." msgstr "" -#: ../../library/json.rst:430 msgid "" "If *strict* is false (``True`` is the default), then control characters will " "be allowed inside strings. Control characters in this context are those " @@ -599,89 +507,73 @@ msgid "" "``'\\n'``, ``'\\r'`` and ``'\\0'``." msgstr "" -#: ../../library/json.rst:435 msgid "" -"If the data being deserialized is not a valid JSON document, " -"a :exc:`JSONDecodeError` will be raised." +"If the data being deserialized is not a valid JSON document, a :exc:" +"`JSONDecodeError` will be raised." msgstr "" -#: ../../library/json.rst:438 ../../library/json.rst:539 msgid "All parameters are now :ref:`keyword-only `." msgstr "" -#: ../../library/json.rst:443 msgid "" "Return the Python representation of *s* (a :class:`str` instance containing " "a JSON document)." msgstr "" -#: ../../library/json.rst:446 msgid "" ":exc:`JSONDecodeError` will be raised if the given JSON document is not " "valid." msgstr "" -#: ../../library/json.rst:451 msgid "" "Decode a JSON document from *s* (a :class:`str` beginning with a JSON " "document) and return a 2-tuple of the Python representation and the index in " "*s* where the document ended." msgstr "" -#: ../../library/json.rst:455 msgid "" "This can be used to decode a JSON document from a string that may have " "extraneous data at the end." msgstr "" -#: ../../library/json.rst:461 msgid "Extensible JSON encoder for Python data structures." msgstr "" -#: ../../library/json.rst:463 msgid "Supports the following objects and types by default:" msgstr "" -#: ../../library/json.rst:472 msgid "list, tuple" msgstr "" -#: ../../library/json.rst:476 msgid "int, float, int- & float-derived Enums" msgstr "" -#: ../../library/json.rst:476 msgid "number" msgstr "" -#: ../../library/json.rst:485 msgid "Added support for int- and float-derived Enum classes." msgstr "" -#: ../../library/json.rst:488 msgid "" -"To extend this to recognize other objects, subclass and implement " -"a :meth:`~JSONEncoder.default` method with another method that returns a " +"To extend this to recognize other objects, subclass and implement a :meth:" +"`~JSONEncoder.default` method with another method that returns a " "serializable object for ``o`` if possible, otherwise it should call the " "superclass implementation (to raise :exc:`TypeError`)." msgstr "" -#: ../../library/json.rst:493 msgid "" "If *skipkeys* is false (the default), a :exc:`TypeError` will be raised when " -"trying to encode keys that are " -"not :class:`str`, :class:`int`, :class:`float`, :class:`bool` or ``None``. " -"If *skipkeys* is true, such items are simply skipped." +"trying to encode keys that are not :class:`str`, :class:`int`, :class:" +"`float`, :class:`bool` or ``None``. If *skipkeys* is true, such items are " +"simply skipped." msgstr "" -#: ../../library/json.rst:497 msgid "" "If *ensure_ascii* is true (the default), the output is guaranteed to have " "all incoming non-ASCII characters escaped. If *ensure_ascii* is false, " "these characters will be output as-is." msgstr "" -#: ../../library/json.rst:501 msgid "" "If *check_circular* is true (the default), then lists, dicts, and custom " "encoded objects will be checked for circular references during encoding to " @@ -689,7 +581,6 @@ msgid "" "Otherwise, no such check takes place." msgstr "" -#: ../../library/json.rst:506 msgid "" "If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and ``-" "Infinity`` will be encoded as such. This behavior is not JSON specification " @@ -697,14 +588,12 @@ msgid "" "decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats." msgstr "" -#: ../../library/json.rst:512 msgid "" "If *sort_keys* is true (default: ``False``), then the output of dictionaries " "will be sorted by key; this is useful for regression tests to ensure that " "JSON serializations can be compared on a day-to-day basis." msgstr "" -#: ../../library/json.rst:516 msgid "" "If *indent* is a non-negative integer or string, then JSON array elements " "and object members will be pretty-printed with that indent level. An indent " @@ -714,7 +603,6 @@ msgid "" "``\"\\t\"``), that string is used to indent each level." msgstr "" -#: ../../library/json.rst:526 msgid "" "If specified, *separators* should be an ``(item_separator, key_separator)`` " "tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', " @@ -722,28 +610,24 @@ msgid "" "specify ``(',', ':')`` to eliminate whitespace." msgstr "" -#: ../../library/json.rst:534 msgid "" "If specified, *default* should be a function that gets called for objects " "that can't otherwise be serialized. It should return a JSON encodable " -"version of the object or raise a :exc:`TypeError`. If not " -"specified, :exc:`TypeError` is raised." +"version of the object or raise a :exc:`TypeError`. If not specified, :exc:" +"`TypeError` is raised." msgstr "" -#: ../../library/json.rst:545 msgid "" "Implement this method in a subclass such that it returns a serializable " -"object for *o*, or calls the base implementation (to raise " -"a :exc:`TypeError`)." +"object for *o*, or calls the base implementation (to raise a :exc:" +"`TypeError`)." msgstr "" -#: ../../library/json.rst:549 msgid "" -"For example, to support arbitrary iterators, you could " -"implement :meth:`~JSONEncoder.default` like this::" +"For example, to support arbitrary iterators, you could implement :meth:" +"`~JSONEncoder.default` like this::" msgstr "" -#: ../../library/json.rst:552 msgid "" "def default(self, o):\n" " try:\n" @@ -756,63 +640,50 @@ msgid "" " return super().default(o)" msgstr "" -#: ../../library/json.rst:565 msgid "" "Return a JSON string representation of a Python data structure, *o*. For " "example::" msgstr "" -#: ../../library/json.rst:568 msgid "" ">>> json.JSONEncoder().encode({\"foo\": [\"bar\", \"baz\"]})\n" "'{\"foo\": [\"bar\", \"baz\"]}'" msgstr "" -#: ../../library/json.rst:574 msgid "" "Encode the given object, *o*, and yield each string representation as " "available. For example::" msgstr "" -#: ../../library/json.rst:577 msgid "" "for chunk in json.JSONEncoder().iterencode(bigobject):\n" " mysocket.write(chunk)" msgstr "" -#: ../../library/json.rst:582 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/json.rst:586 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" msgstr "" -#: ../../library/json.rst:590 msgid "The unformatted error message." msgstr "" -#: ../../library/json.rst:594 msgid "The JSON document being parsed." msgstr "" -#: ../../library/json.rst:598 msgid "The start index of *doc* where parsing failed." msgstr "" -#: ../../library/json.rst:602 msgid "The line corresponding to *pos*." msgstr "" -#: ../../library/json.rst:606 msgid "The column corresponding to *pos*." msgstr "" -#: ../../library/json.rst:612 msgid "Standard Compliance and Interoperability" msgstr "" -#: ../../library/json.rst:614 msgid "" "The JSON format is specified by :rfc:`7159` and by `ECMA-404 `_. This " @@ -821,48 +692,40 @@ msgid "" "parameters other than those explicitly mentioned, are not considered." msgstr "" -#: ../../library/json.rst:620 msgid "" "This module does not comply with the RFC in a strict fashion, implementing " "some extensions that are valid JavaScript but not valid JSON. In particular:" msgstr "" -#: ../../library/json.rst:623 msgid "Infinite and NaN number values are accepted and output;" msgstr "" -#: ../../library/json.rst:624 msgid "" "Repeated names within an object are accepted, and only the value of the last " "name-value pair is used." msgstr "" -#: ../../library/json.rst:627 msgid "" "Since the RFC permits RFC-compliant parsers to accept input texts that are " "not RFC-compliant, this module's deserializer is technically RFC-compliant " "under default settings." msgstr "" -#: ../../library/json.rst:632 msgid "Character Encodings" msgstr "" -#: ../../library/json.rst:634 msgid "" "The RFC requires that JSON be represented using either UTF-8, UTF-16, or " "UTF-32, with UTF-8 being the recommended default for maximum " "interoperability." msgstr "" -#: ../../library/json.rst:637 msgid "" "As permitted, though not required, by the RFC, this module's serializer sets " "*ensure_ascii=True* by default, thus escaping the output so that the " "resulting strings only contain ASCII characters." msgstr "" -#: ../../library/json.rst:641 msgid "" "Other than the *ensure_ascii* parameter, this module is defined strictly in " "terms of conversion between Python objects and :class:`Unicode strings " @@ -870,7 +733,6 @@ msgid "" "encodings." msgstr "" -#: ../../library/json.rst:646 msgid "" "The RFC prohibits adding a byte order mark (BOM) to the start of a JSON " "text, and this module's serializer does not add a BOM to its output. The RFC " @@ -879,27 +741,23 @@ msgid "" "an initial BOM is present." msgstr "" -#: ../../library/json.rst:652 msgid "" "The RFC does not explicitly forbid JSON strings which contain byte sequences " "that don't correspond to valid Unicode characters (e.g. unpaired UTF-16 " "surrogates), but it does note that they may cause interoperability problems. " -"By default, this module accepts and outputs (when present in the " -"original :class:`str`) code points for such sequences." +"By default, this module accepts and outputs (when present in the original :" +"class:`str`) code points for such sequences." msgstr "" -#: ../../library/json.rst:660 msgid "Infinite and NaN Number Values" msgstr "" -#: ../../library/json.rst:662 msgid "" "The RFC does not permit the representation of infinite or NaN number values. " "Despite that, by default, this module accepts and outputs ``Infinity``, ``-" "Infinity``, and ``NaN`` as if they were valid JSON number literal values::" msgstr "" -#: ../../library/json.rst:666 msgid "" ">>> # Neither of these calls raises an exception, but the results are not " "valid JSON\n" @@ -914,18 +772,15 @@ msgid "" "nan" msgstr "" -#: ../../library/json.rst:677 msgid "" "In the serializer, the *allow_nan* parameter can be used to alter this " "behavior. In the deserializer, the *parse_constant* parameter can be used " "to alter this behavior." msgstr "" -#: ../../library/json.rst:683 msgid "Repeated Names Within an Object" msgstr "" -#: ../../library/json.rst:685 msgid "" "The RFC specifies that the names within a JSON object should be unique, but " "does not mandate how repeated names in JSON objects should be handled. By " @@ -933,22 +788,18 @@ msgid "" "but the last name-value pair for a given name::" msgstr "" -#: ../../library/json.rst:690 msgid "" ">>> weird_json = '{\"x\": 1, \"x\": 2, \"x\": 3}'\n" ">>> json.loads(weird_json)\n" "{'x': 3}" msgstr "" -#: ../../library/json.rst:694 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." msgstr "" -#: ../../library/json.rst:698 msgid "Top-level Non-Object, Non-Array Values" msgstr "" -#: ../../library/json.rst:700 msgid "" "The old version of JSON specified by the obsolete :rfc:`4627` required that " "the top-level value of a JSON text must be either a JSON object or array " @@ -958,43 +809,34 @@ msgid "" "its serializer or its deserializer." msgstr "" -#: ../../library/json.rst:707 msgid "" "Regardless, for maximum interoperability, you may wish to voluntarily adhere " "to the restriction yourself." msgstr "" -#: ../../library/json.rst:712 msgid "Implementation Limitations" msgstr "" -#: ../../library/json.rst:714 msgid "Some JSON deserializer implementations may set limits on:" msgstr "" -#: ../../library/json.rst:716 msgid "the size of accepted JSON texts" msgstr "" -#: ../../library/json.rst:717 msgid "the maximum level of nesting of JSON objects and arrays" msgstr "" -#: ../../library/json.rst:718 msgid "the range and precision of JSON numbers" msgstr "" -#: ../../library/json.rst:719 msgid "the content and maximum length of JSON strings" msgstr "" -#: ../../library/json.rst:721 msgid "" "This module does not impose any such limits beyond those of the relevant " "Python datatypes themselves or the Python interpreter itself." msgstr "" -#: ../../library/json.rst:724 msgid "" "When serializing to JSON, beware any such limitations in applications that " "may consume your JSON. In particular, it is common for JSON numbers to be " @@ -1005,29 +847,23 @@ msgid "" "as :class:`decimal.Decimal`." msgstr "" -#: ../../library/json.rst:737 msgid "Command-line interface" msgstr "" -#: ../../library/json.rst:742 msgid "**Source code:** :source:`Lib/json/tool.py`" msgstr "" -#: ../../library/json.rst:746 msgid "" "The :mod:`json` module can be invoked as a script via ``python -m json`` to " "validate and pretty-print JSON objects. The :mod:`json.tool` submodule " "implements this interface." msgstr "" -#: ../../library/json.rst:750 msgid "" -"If the optional ``infile`` and ``outfile`` arguments are not " -"specified, :data:`sys.stdin` and :data:`sys.stdout` will be used " -"respectively:" +"If the optional ``infile`` and ``outfile`` arguments are not specified, :" +"data:`sys.stdin` and :data:`sys.stdout` will be used respectively:" msgstr "" -#: ../../library/json.rst:753 msgid "" "$ echo '{\"json\": \"obj\"}' | python -m json\n" "{\n" @@ -1037,28 +873,23 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: ../../library/json.rst:762 msgid "" "The output is now in the same order as the input. Use the :option:`--sort-" "keys` option to sort the output of dictionaries alphabetically by key." msgstr "" -#: ../../library/json.rst:767 msgid "" "The :mod:`json` module may now be directly executed as ``python -m json``. " "For backwards compatibility, invoking the CLI as ``python -m json.tool`` " "remains supported." msgstr "" -#: ../../library/json.rst:774 msgid "Command-line options" msgstr "" -#: ../../library/json.rst:778 msgid "The JSON file to be validated or pretty-printed:" msgstr "" -#: ../../library/json.rst:780 msgid "" "$ python -m json mp_films.json\n" "[\n" @@ -1073,43 +904,34 @@ msgid "" "]" msgstr "" -#: ../../library/json.rst:794 msgid "If *infile* is not specified, read from :data:`sys.stdin`." msgstr "" -#: ../../library/json.rst:798 msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " "to :data:`sys.stdout`." msgstr "" -#: ../../library/json.rst:803 msgid "Sort the output of dictionaries alphabetically by key." msgstr "" -#: ../../library/json.rst:809 msgid "" "Disable escaping of non-ascii characters, see :func:`json.dumps` for more " "information." msgstr "" -#: ../../library/json.rst:815 msgid "Parse every input line as separate JSON object." msgstr "" -#: ../../library/json.rst:821 msgid "Mutually exclusive options for whitespace control." msgstr "" -#: ../../library/json.rst:827 msgid "Show the help message." msgstr "" -#: ../../library/json.rst:831 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/json.rst:832 msgid "" "As noted in `the errata for RFC 7159 `_, JSON permits literal U+2028 (LINE SEPARATOR) " diff --git a/library/keyword.po b/library/keyword.po index ee334fc..e9aea4b 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,37 +18,29 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/keyword.rst:2 msgid ":mod:`!keyword` --- Testing for Python keywords" msgstr "" -#: ../../library/keyword.rst:7 msgid "**Source code:** :source:`Lib/keyword.py`" msgstr "" -#: ../../library/keyword.rst:11 msgid "" -"This module allows a Python program to determine if a string is " -"a :ref:`keyword ` or :ref:`soft keyword `." +"This module allows a Python program to determine if a string is a :ref:" +"`keyword ` or :ref:`soft keyword `." msgstr "" -#: ../../library/keyword.rst:17 msgid "Return ``True`` if *s* is a Python :ref:`keyword `." msgstr "" -#: ../../library/keyword.rst:22 msgid "" "Sequence containing all the :ref:`keywords ` defined for the " -"interpreter. If any keywords are defined to only be active when " -"particular :mod:`__future__` statements are in effect, these will be " -"included as well." +"interpreter. If any keywords are defined to only be active when particular :" +"mod:`__future__` statements are in effect, these will be included as well." msgstr "" -#: ../../library/keyword.rst:29 msgid "Return ``True`` if *s* is a Python :ref:`soft keyword `." msgstr "" -#: ../../library/keyword.rst:36 msgid "" "Sequence containing all the :ref:`soft keywords ` defined for " "the interpreter. If any soft keywords are defined to only be active when " diff --git a/library/language.po b/library/language.po index 11b81b8..3b4eee3 100644 --- a/library/language.po +++ b/library/language.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,17 +18,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/language.rst:5 msgid "Python Language Services" msgstr "" -#: ../../library/language.rst:7 msgid "" "Python provides a number of modules to assist in working with the Python " "language. These modules support tokenizing, parsing, syntax analysis, " "bytecode disassembly, and various other facilities." msgstr "" -#: ../../library/language.rst:11 msgid "These modules include:" msgstr "" diff --git a/library/linecache.po b/library/linecache.po index 21c559b..f55f2b9 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,76 +18,64 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/linecache.rst:2 msgid ":mod:`!linecache` --- Random access to text lines" msgstr "" -#: ../../library/linecache.rst:9 msgid "**Source code:** :source:`Lib/linecache.py`" msgstr "" -#: ../../library/linecache.rst:13 msgid "" "The :mod:`linecache` module allows one to get any line from a Python source " "file, while attempting to optimize internally, using a cache, the common " -"case where many lines are read from a single file. This is used by " -"the :mod:`traceback` module to retrieve source lines for inclusion in the " -"formatted traceback." +"case where many lines are read from a single file. This is used by the :mod:" +"`traceback` module to retrieve source lines for inclusion in the formatted " +"traceback." msgstr "" -#: ../../library/linecache.rst:18 msgid "" "The :func:`tokenize.open` function is used to open files. This function " "uses :func:`tokenize.detect_encoding` to get the encoding of the file; in " "the absence of an encoding token, the file encoding defaults to UTF-8." msgstr "" -#: ../../library/linecache.rst:22 msgid "The :mod:`linecache` module defines the following functions:" msgstr "" -#: ../../library/linecache.rst:27 msgid "" "Get line *lineno* from file named *filename*. This function will never raise " "an exception --- it will return ``''`` on errors (the terminating newline " "character will be included for lines that are found)." msgstr "" -#: ../../library/linecache.rst:33 msgid "" "If *filename* indicates a frozen module (starting with ``'>> import linecache\n" ">>> linecache.getline(linecache.__file__, 8)\n" "'import sys\\n'" msgstr "" -#: ../../library/linecache.rst:31 msgid "module" msgstr "" -#: ../../library/linecache.rst:31 msgid "search" msgstr "" -#: ../../library/linecache.rst:31 msgid "path" msgstr "" diff --git a/library/locale.po b/library/locale.po index b50d603..b03e018 100644 --- a/library/locale.po +++ b/library/locale.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/locale.rst:2 msgid ":mod:`!locale` --- Internationalization services" msgstr "" -#: ../../library/locale.rst:10 msgid "**Source code:** :source:`Lib/locale.py`" msgstr "" -#: ../../library/locale.rst:14 msgid "" "The :mod:`locale` module opens access to the POSIX locale database and " "functionality. The POSIX locale mechanism allows programmers to deal with " @@ -39,53 +35,50 @@ msgid "" "to know all the specifics of each country where the software is executed." msgstr "" -#: ../../library/locale.rst:21 msgid "" "The :mod:`locale` module is implemented on top of the :mod:`!_locale` " "module, which in turn uses an ANSI C locale implementation if available." msgstr "" -#: ../../library/locale.rst:24 msgid "The :mod:`locale` module defines the following exception and functions:" msgstr "" -#: ../../library/locale.rst:29 msgid "" "Exception raised when the locale passed to :func:`setlocale` is not " "recognized." msgstr "" -#: ../../library/locale.rst:35 msgid "" "If *locale* is given and not ``None``, :func:`setlocale` modifies the locale " "setting for the *category*. The available categories are listed in the data " -"description below. *locale* may be a string, or an iterable of two strings " -"(language code and encoding). If it's an iterable, it's converted to a " -"locale name using the locale aliasing engine. An empty string specifies the " -"user's default settings. If the modification of the locale fails, the " -"exception :exc:`Error` is raised. If successful, the new locale setting is " -"returned." +"description below. *locale* may be a :ref:`string `, or a pair, " +"language code and encoding. An empty string specifies the user's default " +"settings. If the modification of the locale fails, the exception :exc:" +"`Error` is raised. If successful, the new locale setting is returned." +msgstr "" + +msgid "" +"If *locale* is a pair, it is converted to a locale name using the locale " +"aliasing engine. The language code has the same format as a :ref:`locale " +"name `, but without encoding and ``@``-modifier. The language " +"code and encoding can be ``None``." msgstr "" -#: ../../library/locale.rst:43 msgid "" "If *locale* is omitted or ``None``, the current setting for *category* is " "returned." msgstr "" -#: ../../library/locale.rst:46 msgid "" ":func:`setlocale` is not thread-safe on most systems. Applications typically " "start with a call of ::" msgstr "" -#: ../../library/locale.rst:49 msgid "" "import locale\n" "locale.setlocale(locale.LC_ALL, '')" msgstr "" -#: ../../library/locale.rst:52 msgid "" "This sets the locale for all categories to the user's default setting " "(typically specified in the :envvar:`LANG` environment variable). If the " @@ -93,246 +86,191 @@ msgid "" "problems." msgstr "" -#: ../../library/locale.rst:59 msgid "" "Returns the database of the local conventions as a dictionary. This " "dictionary has the following strings as keys:" msgstr "" -#: ../../library/locale.rst:65 msgid "Category" msgstr "" -#: ../../library/locale.rst:65 msgid "Key" msgstr "" -#: ../../library/locale.rst:65 msgid "Meaning" msgstr "Jelentés" -#: ../../library/locale.rst:67 msgid ":const:`LC_NUMERIC`" msgstr "" -#: ../../library/locale.rst:67 msgid "``'decimal_point'``" msgstr "" -#: ../../library/locale.rst:67 msgid "Decimal point character." msgstr "" -#: ../../library/locale.rst:69 msgid "``'grouping'``" msgstr "" -#: ../../library/locale.rst:69 msgid "" "Sequence of numbers specifying which relative positions the " -"``'thousands_sep'`` is expected. If the sequence is terminated " -"with :const:`CHAR_MAX`, no further grouping is performed. If the sequence " -"terminates with a ``0``, the last group size is repeatedly used." +"``'thousands_sep'`` is expected. If the sequence is terminated with :const:" +"`CHAR_MAX`, no further grouping is performed. If the sequence terminates " +"with a ``0``, the last group size is repeatedly used." msgstr "" -#: ../../library/locale.rst:80 msgid "``'thousands_sep'``" msgstr "" -#: ../../library/locale.rst:80 msgid "Character used between groups." msgstr "" -#: ../../library/locale.rst:82 msgid ":const:`LC_MONETARY`" msgstr "" -#: ../../library/locale.rst:82 msgid "``'int_curr_symbol'``" msgstr "" -#: ../../library/locale.rst:82 msgid "International currency symbol." msgstr "" -#: ../../library/locale.rst:84 msgid "``'currency_symbol'``" msgstr "" -#: ../../library/locale.rst:84 msgid "Local currency symbol." msgstr "" -#: ../../library/locale.rst:86 msgid "``'p_cs_precedes/n_cs_precedes'``" msgstr "" -#: ../../library/locale.rst:86 msgid "" "Whether the currency symbol precedes the value (for positive resp. negative " "values)." msgstr "" -#: ../../library/locale.rst:91 msgid "``'p_sep_by_space/n_sep_by_space'``" msgstr "" -#: ../../library/locale.rst:91 msgid "" "Whether the currency symbol is separated from the value by a space (for " "positive resp. negative values)." msgstr "" -#: ../../library/locale.rst:96 msgid "``'mon_decimal_point'``" msgstr "" -#: ../../library/locale.rst:96 msgid "Decimal point used for monetary values." msgstr "" -#: ../../library/locale.rst:99 msgid "``'frac_digits'``" msgstr "" -#: ../../library/locale.rst:99 msgid "" "Number of fractional digits used in local formatting of monetary values." msgstr "" -#: ../../library/locale.rst:103 msgid "``'int_frac_digits'``" msgstr "" -#: ../../library/locale.rst:103 msgid "" "Number of fractional digits used in international formatting of monetary " "values." msgstr "" -#: ../../library/locale.rst:107 msgid "``'mon_thousands_sep'``" msgstr "" -#: ../../library/locale.rst:107 msgid "Group separator used for monetary values." msgstr "" -#: ../../library/locale.rst:110 msgid "``'mon_grouping'``" msgstr "" -#: ../../library/locale.rst:110 msgid "Equivalent to ``'grouping'``, used for monetary values." msgstr "" -#: ../../library/locale.rst:113 msgid "``'positive_sign'``" msgstr "" -#: ../../library/locale.rst:113 msgid "Symbol used to annotate a positive monetary value." msgstr "" -#: ../../library/locale.rst:116 msgid "``'negative_sign'``" msgstr "" -#: ../../library/locale.rst:116 msgid "Symbol used to annotate a negative monetary value." msgstr "" -#: ../../library/locale.rst:119 msgid "``'p_sign_posn/n_sign_posn'``" msgstr "" -#: ../../library/locale.rst:119 msgid "" "The position of the sign (for positive resp. negative values), see below." msgstr "" -#: ../../library/locale.rst:124 msgid "" "All numeric values can be set to :const:`CHAR_MAX` to indicate that there is " "no value specified in this locale." msgstr "" -#: ../../library/locale.rst:127 msgid "" "The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given " "below." msgstr "" -#: ../../library/locale.rst:130 msgid "Value" msgstr "" -#: ../../library/locale.rst:130 msgid "Explanation" msgstr "" -#: ../../library/locale.rst:132 msgid "``0``" -msgstr "``0``" +msgstr "" -#: ../../library/locale.rst:132 msgid "Currency and value are surrounded by parentheses." msgstr "" -#: ../../library/locale.rst:135 msgid "``1``" msgstr "``1``" -#: ../../library/locale.rst:135 msgid "The sign should precede the value and currency symbol." msgstr "" -#: ../../library/locale.rst:138 msgid "``2``" msgstr "``2``" -#: ../../library/locale.rst:138 msgid "The sign should follow the value and currency symbol." msgstr "" -#: ../../library/locale.rst:141 msgid "``3``" msgstr "``3``" -#: ../../library/locale.rst:141 msgid "The sign should immediately precede the value." msgstr "" -#: ../../library/locale.rst:144 msgid "``4``" msgstr "``4``" -#: ../../library/locale.rst:144 msgid "The sign should immediately follow the value." msgstr "" -#: ../../library/locale.rst:147 msgid "``CHAR_MAX``" -msgstr "``CHAR_MAX``" +msgstr "" -#: ../../library/locale.rst:147 msgid "Nothing is specified in this locale." msgstr "" -#: ../../library/locale.rst:150 msgid "" "The function temporarily sets the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " "locale or the ``LC_MONETARY`` locale if locales are different and numeric or " "monetary strings are non-ASCII. This temporary change affects other threads." msgstr "" -#: ../../library/locale.rst:154 msgid "" "The function now temporarily sets the ``LC_CTYPE`` locale to the " "``LC_NUMERIC`` locale in some cases." msgstr "" -#: ../../library/locale.rst:161 msgid "" "Return some locale-specific information as a string. This function is not " "available on all systems, and the set of possible options might also vary " @@ -340,106 +278,87 @@ msgid "" "symbolic constants are available in the locale module." msgstr "" -#: ../../library/locale.rst:166 msgid "" "The :func:`nl_langinfo` function accepts one of the following keys. Most " "descriptions are taken from the corresponding description in the GNU C " "library." msgstr "" -#: ../../library/locale.rst:172 msgid "" "Get a string with the name of the character encoding used in the selected " "locale." msgstr "" -#: ../../library/locale.rst:177 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent date and time in a locale-specific way." msgstr "" -#: ../../library/locale.rst:182 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a date in a locale-specific way." msgstr "" -#: ../../library/locale.rst:187 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a time in a locale-specific way." msgstr "" -#: ../../library/locale.rst:192 msgid "" "Get a format string for :func:`time.strftime` to represent time in the am/pm " "format." msgstr "" -#: ../../library/locale.rst:203 msgid "Get the name of the n-th day of the week." msgstr "" -#: ../../library/locale.rst:207 msgid "" "This follows the US convention of :const:`DAY_1` being Sunday, not the " "international convention (ISO 8601) that Monday is the first day of the week." msgstr "" -#: ../../library/locale.rst:219 msgid "Get the abbreviated name of the n-th day of the week." msgstr "" -#: ../../library/locale.rst:234 msgid "Get the name of the n-th month." msgstr "" -#: ../../library/locale.rst:249 msgid "Get the abbreviated name of the n-th month." msgstr "" -#: ../../library/locale.rst:253 msgid "Get the radix character (decimal dot, decimal comma, etc.)." msgstr "" -#: ../../library/locale.rst:257 msgid "Get the separator character for thousands (groups of three digits)." msgstr "" -#: ../../library/locale.rst:261 msgid "" "Get a regular expression that can be used with the regex function to " "recognize a positive response to a yes/no question." msgstr "" -#: ../../library/locale.rst:266 msgid "" "Get a regular expression that can be used with the ``regex(3)`` function to " "recognize a negative response to a yes/no question." msgstr "" -#: ../../library/locale.rst:271 msgid "" "The regular expressions for :const:`YESEXPR` and :const:`NOEXPR` use syntax " "suitable for the ``regex`` function from the C library, which might differ " "from the syntax used in :mod:`re`." msgstr "" -#: ../../library/locale.rst:278 msgid "" "Get the currency symbol, preceded by \"-\" if the symbol should appear " "before the value, \"+\" if the symbol should appear after the value, or \"." "\" if the symbol should replace the radix character." msgstr "" -#: ../../library/locale.rst:284 msgid "" "Get a string which describes how years are counted and displayed for each " "era in a locale." msgstr "" -#: ../../library/locale.rst:287 msgid "" "Most locales do not define this value. An example of a locale which does " "define this value is the Japanese one. In Japan, the traditional " @@ -447,42 +366,36 @@ msgid "" "then-emperor's reign." msgstr "" -#: ../../library/locale.rst:292 msgid "" "Normally it should not be necessary to use this value directly. Specifying " "the ``E`` modifier in their format strings causes the :func:`time.strftime` " "function to use this information. The format of the returned string is " "specified in *The Open Group Base Specifications Issue 8*, paragraph " -"`7.3.5.2 LC_TIME C-Language Access `_." +"`7.3.5.2 LC_TIME C-Language Access `_." msgstr "" -#: ../../library/locale.rst:301 msgid "" "Get a format string for :func:`time.strftime` to represent date and time in " "a locale-specific era-based way." msgstr "" -#: ../../library/locale.rst:306 msgid "" "Get a format string for :func:`time.strftime` to represent a date in a " "locale-specific era-based way." msgstr "" -#: ../../library/locale.rst:311 msgid "" "Get a format string for :func:`time.strftime` to represent a time in a " "locale-specific era-based way." msgstr "" -#: ../../library/locale.rst:316 msgid "" "Get a string consisting of up to 100 semicolon-separated symbols used to " "represent the values 0 to 99 in a locale-specific way. In most locales this " "is an empty string." msgstr "" -#: ../../library/locale.rst:320 msgid "" "The function temporarily sets the ``LC_CTYPE`` locale to the locale of the " "category that determines the requested value (``LC_TIME``, ``LC_NUMERIC``, " @@ -490,18 +403,15 @@ msgid "" "resulting string is non-ASCII. This temporary change affects other threads." msgstr "" -#: ../../library/locale.rst:326 msgid "" "The function now temporarily sets the ``LC_CTYPE`` locale in some cases." msgstr "" -#: ../../library/locale.rst:332 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." msgstr "" -#: ../../library/locale.rst:335 msgid "" "According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " "runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " @@ -510,7 +420,6 @@ msgid "" "emulate the behavior in the way described above." msgstr "" -#: ../../library/locale.rst:341 msgid "" "To maintain compatibility with other platforms, not only the :envvar:`LANG` " "variable is tested, but a list of variables given as envvars parameter. The " @@ -520,22 +429,20 @@ msgid "" "``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." msgstr "" -#: ../../library/locale.rst:348 ../../library/locale.rst:361 msgid "" -"Except for the code ``'C'``, the language code corresponds to :rfc:`1766`. " -"*language code* and *encoding* may be ``None`` if their values cannot be " -"determined." +"The language code has the same format as a :ref:`locale name `, " +"but without encoding and ``@``-modifier. The language code and encoding may " +"be ``None`` if their values cannot be determined. The \"C\" locale is " +"represented as ``(None, None)``." msgstr "" -#: ../../library/locale.rst:357 msgid "" -"Returns the current setting for the given locale category as sequence " -"containing *language code*, *encoding*. *category* may be one of " -"the :const:`!LC_\\*` values except :const:`LC_ALL`. It defaults " -"to :const:`LC_CTYPE`." +"Returns the current setting for the given locale category as a tuple " +"containing the language code and encoding. *category* may be one of the :" +"const:`!LC_\\*` values except :const:`LC_ALL`. It defaults to :const:" +"`LC_CTYPE`." msgstr "" -#: ../../library/locale.rst:368 msgid "" "Return the :term:`locale encoding` used for text data, according to user " "preferences. User preferences are expressed differently on different " @@ -543,72 +450,60 @@ msgid "" "this function only returns a guess." msgstr "" -#: ../../library/locale.rst:373 msgid "" "On some systems, it is necessary to invoke :func:`setlocale` to obtain the " "user preferences, so this function is not thread-safe. If invoking setlocale " "is not necessary or desired, *do_setlocale* should be set to ``False``." msgstr "" -#: ../../library/locale.rst:377 msgid "" "On Android or if the :ref:`Python UTF-8 Mode ` is enabled, always " "return ``'utf-8'``, the :term:`locale encoding` and the *do_setlocale* " "argument are ignored." msgstr "" -#: ../../library/locale.rst:381 ../../library/locale.rst:399 msgid "" "The :ref:`Python preinitialization ` configures the LC_CTYPE " "locale. See also the :term:`filesystem encoding and error handler`." msgstr "" -#: ../../library/locale.rst:384 msgid "" -"The function now always returns ``\"utf-8\"`` on Android or if " -"the :ref:`Python UTF-8 Mode ` is enabled." +"The function now always returns ``\"utf-8\"`` on Android or if the :ref:" +"`Python UTF-8 Mode ` is enabled." msgstr "" -#: ../../library/locale.rst:391 msgid "Get the current :term:`locale encoding`:" msgstr "" -#: ../../library/locale.rst:393 msgid "On Android and VxWorks, return ``\"utf-8\"``." msgstr "" -#: ../../library/locale.rst:394 msgid "" "On Unix, return the encoding of the current :data:`LC_CTYPE` locale. Return " "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string: for " "example, if the current LC_CTYPE locale is not supported." msgstr "" -#: ../../library/locale.rst:397 msgid "On Windows, return the ANSI code page." msgstr "" -#: ../../library/locale.rst:402 msgid "" "This function is similar to :func:`getpreferredencoding(False) " "` except this function ignores the :ref:`Python UTF-8 " "Mode `." msgstr "" -#: ../../library/locale.rst:411 msgid "" "Returns a normalized locale code for the given locale name. The returned " "locale code is formatted for use with :func:`setlocale`. If normalization " "fails, the original name is returned unchanged." msgstr "" -#: ../../library/locale.rst:415 msgid "" "If the given encoding is not known, the function defaults to the default " "encoding for the locale code just like :func:`setlocale`." msgstr "" -#: ../../library/locale.rst:421 msgid "" "Compares two strings according to the current :const:`LC_COLLATE` setting. " "As any other compare function, returns a negative, or a positive value, or " @@ -616,7 +511,6 @@ msgid "" "is equal to it." msgstr "" -#: ../../library/locale.rst:429 msgid "" "Transforms a string to one that can be used in locale-aware comparisons. " "For example, ``strxfrm(s1) < strxfrm(s2)`` is equivalent to ``strcoll(s1, " @@ -624,7 +518,6 @@ msgid "" "repeatedly, e.g. when collating a sequence of strings." msgstr "" -#: ../../library/locale.rst:438 msgid "" "Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " "The format follows the conventions of the ``%`` operator. For floating-" @@ -632,29 +525,24 @@ msgid "" "is ``True``, also takes the grouping into account." msgstr "" -#: ../../library/locale.rst:443 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." msgstr "" -#: ../../library/locale.rst:446 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." msgstr "" -#: ../../library/locale.rst:449 msgid "The *monetary* keyword parameter was added." msgstr "" -#: ../../library/locale.rst:455 msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" -#: ../../library/locale.rst:457 msgid "" "The returned string includes the currency symbol if *symbol* is true, which " "is the default. If *grouping* is ``True`` (which is not the default), " @@ -662,43 +550,36 @@ msgid "" "not the default), the international currency symbol is used." msgstr "" -#: ../../library/locale.rst:464 msgid "" "This function will not work with the 'C' locale, so you have to set a locale " "via :func:`setlocale` first." msgstr "" -#: ../../library/locale.rst:470 msgid "" "Formats a floating-point number using the same format as the built-in " "function ``str(float)``, but takes the decimal point into account." msgstr "" -#: ../../library/locale.rst:476 msgid "" -"Converts a string into a normalized number string, following " -"the :const:`LC_NUMERIC` settings." +"Converts a string into a normalized number string, following the :const:" +"`LC_NUMERIC` settings." msgstr "" -#: ../../library/locale.rst:484 msgid "" -"Converts a normalized number string into a formatted string following " -"the :const:`LC_NUMERIC` settings." +"Converts a normalized number string into a formatted string following the :" +"const:`LC_NUMERIC` settings." msgstr "" -#: ../../library/locale.rst:492 msgid "" "Converts a string to a number, following the :const:`LC_NUMERIC` settings, " "by calling *func* on the result of calling :func:`delocalize` on *string*." msgstr "" -#: ../../library/locale.rst:498 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." msgstr "" -#: ../../library/locale.rst:503 msgid "" "Locale category for the character type functions. Most importantly, this " "category defines the text encoding, i.e. how bytes are interpreted as " @@ -708,32 +589,27 @@ msgid "" "SSH connections." msgstr "" -#: ../../library/locale.rst:510 msgid "" "Python doesn't internally use locale-dependent character transformation " "functions from ``ctype.h``. Instead, an internal ``pyctype.h`` provides " "locale-independent equivalents like :c:macro:`!Py_TOLOWER`." msgstr "" -#: ../../library/locale.rst:517 msgid "" -"Locale category for sorting strings. The functions :func:`strcoll` " -"and :func:`strxfrm` of the :mod:`locale` module are affected." +"Locale category for sorting strings. The functions :func:`strcoll` and :" +"func:`strxfrm` of the :mod:`locale` module are affected." msgstr "" -#: ../../library/locale.rst:523 msgid "" -"Locale category for the formatting of time. The " -"function :func:`time.strftime` follows these conventions." +"Locale category for the formatting of time. The function :func:`time." +"strftime` follows these conventions." msgstr "" -#: ../../library/locale.rst:529 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." msgstr "" -#: ../../library/locale.rst:535 msgid "" "Locale category for message display. Python currently does not support " "application specific locale-aware messages. Messages displayed by the " @@ -741,21 +617,18 @@ msgid "" "affected by this category." msgstr "" -#: ../../library/locale.rst:540 msgid "" "This value may not be available on operating systems not conforming to the " "POSIX standard, most notably Windows." msgstr "" -#: ../../library/locale.rst:546 msgid "" -"Locale category for formatting numbers. The " -"functions :func:`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` " -"of the :mod:`locale` module are affected by that category. All other " -"numeric formatting operations are not affected." +"Locale category for formatting numbers. The functions :func:" +"`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:" +"`locale` module are affected by that category. All other numeric formatting " +"operations are not affected." msgstr "" -#: ../../library/locale.rst:554 msgid "" "Combination of all locale settings. If this flag is used when the locale is " "changed, setting the locale for all categories is attempted. If that fails " @@ -765,17 +638,14 @@ msgid "" "settings." msgstr "" -#: ../../library/locale.rst:563 msgid "" -"This is a symbolic constant used for different values returned " -"by :func:`localeconv`." +"This is a symbolic constant used for different values returned by :func:" +"`localeconv`." msgstr "" -#: ../../library/locale.rst:567 msgid "Example::" msgstr "" -#: ../../library/locale.rst:569 msgid "" ">>> import locale\n" ">>> loc = locale.getlocale() # get current locale\n" @@ -788,11 +658,9 @@ msgid "" ">>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale" msgstr "" -#: ../../library/locale.rst:580 msgid "Background, details, hints, tips and caveats" msgstr "" -#: ../../library/locale.rst:582 msgid "" "The C standard defines the locale as a program-wide property that may be " "relatively expensive to change. On top of that, some implementations are " @@ -800,17 +668,15 @@ msgid "" "This makes the locale somewhat painful to use correctly." msgstr "" -#: ../../library/locale.rst:587 msgid "" "Initially, when a program is started, the locale is the ``C`` locale, no " -"matter what the user's preferred locale is. There is one exception: " -"the :data:`LC_CTYPE` category is changed at startup to set the current " -"locale encoding to the user's preferred locale encoding. The program must " +"matter what the user's preferred locale is. There is one exception: the :" +"data:`LC_CTYPE` category is changed at startup to set the current locale " +"encoding to the user's preferred locale encoding. The program must " "explicitly say that it wants the user's preferred locale settings for other " "categories by calling ``setlocale(LC_ALL, '')``." msgstr "" -#: ../../library/locale.rst:594 msgid "" "It is generally a bad idea to call :func:`setlocale` in some library " "routine, since as a side effect it affects the entire program. Saving and " @@ -818,7 +684,6 @@ msgid "" "that happen to run before the settings have been restored." msgstr "" -#: ../../library/locale.rst:599 msgid "" "If, when coding a module for general use, you need a locale independent " "version of an operation that is affected by the locale (such as certain " @@ -829,14 +694,12 @@ msgid "" "settings." msgstr "" -#: ../../library/locale.rst:606 msgid "" "The only way to perform numeric operations according to the locale is to use " -"the special functions defined by this " -"module: :func:`atof`, :func:`atoi`, :func:`format_string`, :func:`.str`." +"the special functions defined by this module: :func:`atof`, :func:`atoi`, :" +"func:`format_string`, :func:`.str`." msgstr "" -#: ../../library/locale.rst:610 msgid "" "There is no way to perform case conversions and character classifications " "according to the locale. For (Unicode) text strings these are done " @@ -847,11 +710,71 @@ msgid "" "whitespace." msgstr "" -#: ../../library/locale.rst:621 +msgid "Locale names" +msgstr "" + +msgid "" +"The format of the locale name is platform dependent, and the set of " +"supported locales can depend on the system configuration." +msgstr "" + +msgid "On Posix platforms, it usually has the format [1]_:" +msgstr "" + +msgid "" +"where *language* is a two- or three-letter language code from `ISO 639`_, " +"*territory* is a two-letter country or region code from `ISO 3166`_, " +"*charset* is a locale encoding, and *modifier* is a script name, a language " +"subtag, a sort order identifier, or other locale modifier (for example, " +"\"latin\", \"valencia\", \"stroke\" and \"euro\")." +msgstr "" + +msgid "" +"On Windows, several formats are supported. [2]_ [3]_ A subset of `IETF BCP " +"47`_ tags:" +msgstr "" + +msgid "" +"where *language* and *territory* have the same meaning as in Posix, *script* " +"is a four-letter script code from `ISO 15924`_, and *modifier* is a language " +"subtag, a sort order identifier or custom modifier (for example, " +"\"valencia\", \"stroke\" or \"x-python\"). Both hyphen (``'-'``) and " +"underscore (``'_'``) separators are supported. Only UTF-8 encoding is " +"allowed for BCP 47 tags." +msgstr "" + +msgid "Windows also supports locale names in the format:" +msgstr "" + +msgid "" +"where *language* and *territory* are full names, such as \"English\" and " +"\"United States\", and *charset* is either a code page number (for example, " +"\"1252\") or UTF-8. Only the underscore separator is supported in this " +"format." +msgstr "" + +msgid "The \"C\" locale is supported on all platforms." +msgstr "" + +msgid "" +"`IEEE Std 1003.1-2024; 8.2 Internationalization Variables `_" +msgstr "" + +msgid "" +"`UCRT Locale names, Languages, and Country/Region strings `_" +msgstr "" + +msgid "" +"`Locale Names `_" +msgstr "" + msgid "For extension writers and programs that embed Python" msgstr "" -#: ../../library/locale.rst:623 msgid "" "Extension modules should never call :func:`setlocale`, except to find out " "what the current locale is. But since the return value can only be used " @@ -859,32 +782,28 @@ msgid "" "whether or not the locale is ``C``)." msgstr "" -#: ../../library/locale.rst:628 msgid "" "When Python code uses the :mod:`locale` module to change the locale, this " "also affects the embedding application. If the embedding application " "doesn't want this to happen, it should remove the :mod:`!_locale` extension " -"module (which does all the work) from the table of built-in modules in " -"the :file:`config.c` file, and make sure that the :mod:`!_locale` module is " -"not accessible as a shared library." +"module (which does all the work) from the table of built-in modules in the :" +"file:`config.c` file, and make sure that the :mod:`!_locale` module is not " +"accessible as a shared library." msgstr "" -#: ../../library/locale.rst:639 msgid "Access to message catalogs" msgstr "" -#: ../../library/locale.rst:648 msgid "" "The locale module exposes the C library's gettext interface on systems that " -"provide this interface. It consists of the " -"functions :func:`gettext`, :func:`dgettext`, :func:`dcgettext`, :func:`textdomain`, :func:`bindtextdomain`, " +"provide this interface. It consists of the functions :func:`gettext`, :func:" +"`dgettext`, :func:`dcgettext`, :func:`textdomain`, :func:`bindtextdomain`, " "and :func:`bind_textdomain_codeset`. These are similar to the same " "functions in the :mod:`gettext` module, but use the C library's binary " "format for message catalogs, and the C library's search algorithms for " "locating message catalogs." msgstr "" -#: ../../library/locale.rst:655 msgid "" "Python applications should normally find no need to invoke these functions, " "and should use :mod:`gettext` instead. A known exception to this rule are " @@ -894,10 +813,8 @@ msgid "" "their message catalogs." msgstr "" -#: ../../library/locale.rst:19 msgid "module" msgstr "" -#: ../../library/locale.rst:19 msgid "_locale" msgstr "" diff --git a/library/logging.config.po b/library/logging.config.po index a5e96c1..8b53b82 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,40 +18,31 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/logging.config.rst:2 msgid ":mod:`!logging.config` --- Logging configuration" msgstr "" -#: ../../library/logging.config.rst:10 msgid "**Source code:** :source:`Lib/logging/config.py`" msgstr "" -#: ../../library/logging.config.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" -#: ../../library/logging.config.rst:17 msgid ":ref:`Basic Tutorial `" msgstr "" -#: ../../library/logging.config.rst:18 msgid ":ref:`Advanced Tutorial `" msgstr "" -#: ../../library/logging.config.rst:19 msgid ":ref:`Logging Cookbook `" msgstr "" -#: ../../library/logging.config.rst:23 msgid "This section describes the API for configuring the logging module." msgstr "" -#: ../../library/logging.config.rst:28 msgid "Configuration functions" msgstr "" -#: ../../library/logging.config.rst:30 msgid "" "The following functions configure the logging module. They are located in " "the :mod:`logging.config` module. Their use is optional --- you can " @@ -64,80 +51,67 @@ msgid "" "declared either in :mod:`logging` or :mod:`logging.handlers`." msgstr "" -#: ../../library/logging.config.rst:38 msgid "" "Takes the logging configuration from a dictionary. The contents of this " "dictionary are described in :ref:`logging-config-dictschema` below." msgstr "" -#: ../../library/logging.config.rst:42 msgid "" -"If an error is encountered during configuration, this function will raise " -"a :exc:`ValueError`, :exc:`TypeError`, :exc:`AttributeError` " -"or :exc:`ImportError` with a suitably descriptive message. The following is " -"a (possibly incomplete) list of conditions which will raise an error:" +"If an error is encountered during configuration, this function will raise a :" +"exc:`ValueError`, :exc:`TypeError`, :exc:`AttributeError` or :exc:" +"`ImportError` with a suitably descriptive message. The following is a " +"(possibly incomplete) list of conditions which will raise an error:" msgstr "" -#: ../../library/logging.config.rst:48 msgid "" "A ``level`` which is not a string or which is a string not corresponding to " "an actual logging level." msgstr "" -#: ../../library/logging.config.rst:50 msgid "A ``propagate`` value which is not a boolean." msgstr "" -#: ../../library/logging.config.rst:51 msgid "An id which does not have a corresponding destination." msgstr "" -#: ../../library/logging.config.rst:52 msgid "A non-existent handler id found during an incremental call." msgstr "" -#: ../../library/logging.config.rst:53 msgid "An invalid logger name." msgstr "" -#: ../../library/logging.config.rst:54 msgid "Inability to resolve to an internal or external object." msgstr "" -#: ../../library/logging.config.rst:56 msgid "" "Parsing is performed by the :class:`DictConfigurator` class, whose " -"constructor is passed the dictionary used for configuration, and has " -"a :meth:`configure` method. The :mod:`logging.config` module has a callable " -"attribute :attr:`dictConfigClass` which is initially set " -"to :class:`DictConfigurator`. You can replace the value " -"of :attr:`dictConfigClass` with a suitable implementation of your own." +"constructor is passed the dictionary used for configuration, and has a :meth:" +"`configure` method. The :mod:`logging.config` module has a callable " +"attribute :attr:`dictConfigClass` which is initially set to :class:" +"`DictConfigurator`. You can replace the value of :attr:`dictConfigClass` " +"with a suitable implementation of your own." msgstr "" -#: ../../library/logging.config.rst:64 msgid "" ":func:`dictConfig` calls :attr:`dictConfigClass` passing the specified " "dictionary, and then calls the :meth:`configure` method on the returned " "object to put the configuration into effect::" msgstr "" -#: ../../library/logging.config.rst:68 msgid "" "def dictConfig(config):\n" " dictConfigClass(config).configure()" msgstr "" -#: ../../library/logging.config.rst:71 msgid "" "For example, a subclass of :class:`DictConfigurator` could call " "``DictConfigurator.__init__()`` in its own :meth:`__init__`, then set up " "custom prefixes which would be usable in the subsequent :meth:`configure` " -"call. :attr:`dictConfigClass` would be bound to this new subclass, and " -"then :func:`dictConfig` could be called exactly as in the default, " -"uncustomized state." +"call. :attr:`dictConfigClass` would be bound to this new subclass, and then :" +"func:`dictConfig` could be called exactly as in the default, uncustomized " +"state." msgstr "" -#: ../../library/logging.config.rst:82 msgid "" "Reads the logging configuration from a :mod:`configparser`\\-format file. " "The format of the file should be as described in :ref:`logging-config-" @@ -147,35 +121,30 @@ msgid "" "chosen configuration)." msgstr "" -#: ../../library/logging.config.rst:90 msgid "" -"It will raise :exc:`FileNotFoundError` if the file doesn't exist " -"and :exc:`RuntimeError` if the file is invalid or empty." +"It will raise :exc:`FileNotFoundError` if the file doesn't exist and :exc:" +"`RuntimeError` if the file is invalid or empty." msgstr "" -#: ../../library/logging.config.rst:0 msgid "Parameters" msgstr "" -#: ../../library/logging.config.rst:94 msgid "" -"A filename, or a file-like object, or an instance derived " -"from :class:`~configparser.RawConfigParser`. If a :class:`!RawConfigParser`-" -"derived instance is passed, it is used as is. Otherwise, " -"a :class:`~configparser.ConfigParser` is instantiated, and the configuration " -"read by it from the object passed in ``fname``. If that has " -"a :meth:`readline` method, it is assumed to be a file-like object and read " -"using :meth:`~configparser.ConfigParser.read_file`; otherwise, it is assumed " -"to be a filename and passed to :meth:`~configparser.ConfigParser.read`." +"A filename, or a file-like object, or an instance derived from :class:" +"`~configparser.RawConfigParser`. If a :class:`!RawConfigParser`-derived " +"instance is passed, it is used as is. Otherwise, a :class:`~configparser." +"ConfigParser` is instantiated, and the configuration read by it from the " +"object passed in ``fname``. If that has a :meth:`readline` method, it is " +"assumed to be a file-like object and read using :meth:`~configparser." +"ConfigParser.read_file`; otherwise, it is assumed to be a filename and " +"passed to :meth:`~configparser.ConfigParser.read`." msgstr "" -#: ../../library/logging.config.rst:106 msgid "" "Defaults to be passed to the :class:`!ConfigParser` can be specified in this " "argument." msgstr "" -#: ../../library/logging.config.rst:109 msgid "" "If specified as ``False``, loggers which exist when this call is made are " "left enabled. The default is ``True`` because this enables old behaviour in " @@ -184,52 +153,44 @@ msgid "" "logging configuration." msgstr "" -#: ../../library/logging.config.rst:118 msgid "The encoding used to open file when *fname* is filename." msgstr "" -#: ../../library/logging.config.rst:120 msgid "" "An instance of a subclass of :class:`~configparser.RawConfigParser` is now " "accepted as a value for ``fname``. This facilitates:" msgstr "" -#: ../../library/logging.config.rst:124 msgid "" "Use of a configuration file where logging configuration is just part of the " "overall application configuration." msgstr "" -#: ../../library/logging.config.rst:126 msgid "" "Use of a configuration read from a file, and then modified by the using " "application (e.g. based on command-line parameters or other aspects of the " "runtime environment) before being passed to ``fileConfig``." msgstr "" -#: ../../library/logging.config.rst:130 msgid "Added the *encoding* parameter." msgstr "" -#: ../../library/logging.config.rst:133 msgid "" "An exception will be thrown if the provided file doesn't exist or is invalid " "or empty." msgstr "" -#: ../../library/logging.config.rst:139 msgid "" "Starts up a socket server on the specified port, and listens for new " -"configurations. If no port is specified, the module's " -"default :const:`DEFAULT_LOGGING_CONFIG_PORT` is used. Logging configurations " -"will be sent as a file suitable for processing by :func:`dictConfig` " -"or :func:`fileConfig`. Returns a :class:`~threading.Thread` instance on " -"which you can call :meth:`~threading.Thread.start` to start the server, and " -"which you can :meth:`~threading.Thread.join` when appropriate. To stop the " -"server, call :func:`stopListening`." +"configurations. If no port is specified, the module's default :const:" +"`DEFAULT_LOGGING_CONFIG_PORT` is used. Logging configurations will be sent " +"as a file suitable for processing by :func:`dictConfig` or :func:" +"`fileConfig`. Returns a :class:`~threading.Thread` instance on which you can " +"call :meth:`~threading.Thread.start` to start the server, and which you can :" +"meth:`~threading.Thread.join` when appropriate. To stop the server, call :" +"func:`stopListening`." msgstr "" -#: ../../library/logging.config.rst:148 msgid "" "The ``verify`` argument, if specified, should be a callable which should " "verify whether bytes received across the socket are valid and should be " @@ -243,14 +204,12 @@ msgid "" "(perhaps if decryption were performed)." msgstr "" -#: ../../library/logging.config.rst:159 msgid "" "To send a configuration to the socket, read in the configuration file and " "send it to the socket as a sequence of bytes preceded by a four-byte length " "string packed in binary using ``struct.pack('>L', n)``." msgstr "" -#: ../../library/logging.config.rst:167 msgid "" "Because portions of the configuration are passed through :func:`eval`, use " "of this function may open its users to a security risk. While the function " @@ -268,11 +227,9 @@ msgid "" "from being applied." msgstr "" -#: ../../library/logging.config.rst:183 msgid "The ``verify`` argument was added." msgstr "" -#: ../../library/logging.config.rst:188 msgid "" "If you want to send configurations to the listener which don't disable " "existing loggers, you will need to use a JSON format for the configuration, " @@ -281,18 +238,15 @@ msgid "" "you send." msgstr "" -#: ../../library/logging.config.rst:197 msgid "" "Stops the listening server which was created with a call to :func:`listen`. " "This is typically called before calling :meth:`join` on the return value " "from :func:`listen`." msgstr "" -#: ../../library/logging.config.rst:203 msgid "Security considerations" msgstr "" -#: ../../library/logging.config.rst:205 msgid "" "The logging configuration functionality tries to offer convenience, and in " "part this is done by offering the ability to convert text in configuration " @@ -305,11 +259,9 @@ msgid "" "bad can happen if you load them, before actually loading them." msgstr "" -#: ../../library/logging.config.rst:219 msgid "Configuration dictionary schema" msgstr "" -#: ../../library/logging.config.rst:221 msgid "" "Describing a logging configuration requires listing the various objects to " "create and the connections between them; for example, you may create a " @@ -322,131 +274,108 @@ msgid "" "connections` below." msgstr "" -#: ../../library/logging.config.rst:233 msgid "Dictionary Schema Details" msgstr "" -#: ../../library/logging.config.rst:235 msgid "" "The dictionary passed to :func:`dictConfig` must contain the following keys:" msgstr "" -#: ../../library/logging.config.rst:238 msgid "" "*version* - to be set to an integer value representing the schema version. " "The only valid value at present is 1, but having this key allows the schema " "to evolve while still preserving backwards compatibility." msgstr "" -#: ../../library/logging.config.rst:243 msgid "" "All other keys are optional, but if present they will be interpreted as " "described below. In all cases below where a 'configuring dict' is " "mentioned, it will be checked for the special ``'()'`` key to see if a " -"custom instantiation is required. If so, the mechanism described " -"in :ref:`logging-config-dict-userdef` below is used to create an instance; " +"custom instantiation is required. If so, the mechanism described in :ref:" +"`logging-config-dict-userdef` below is used to create an instance; " "otherwise, the context is used to determine what to instantiate." msgstr "" -#: ../../library/logging.config.rst:252 msgid "" "*formatters* - the corresponding value will be a dict in which each key is a " "formatter id and each value is a dict describing how to configure the " "corresponding :class:`~logging.Formatter` instance." msgstr "" -#: ../../library/logging.config.rst:256 msgid "" "The configuring dict is searched for the following optional keys which " "correspond to the arguments passed to create a :class:`~logging.Formatter` " "object:" msgstr "" -#: ../../library/logging.config.rst:260 msgid "``format``" -msgstr "``format``" +msgstr "" -#: ../../library/logging.config.rst:261 msgid "``datefmt``" -msgstr "``datefmt``" +msgstr "" -#: ../../library/logging.config.rst:262 msgid "``style``" -msgstr "``style``" +msgstr "" -#: ../../library/logging.config.rst:263 msgid "``validate`` (since version >=3.8)" msgstr "" -#: ../../library/logging.config.rst:264 msgid "``defaults`` (since version >=3.12)" msgstr "" -#: ../../library/logging.config.rst:266 msgid "" "An optional ``class`` key indicates the name of the formatter's class (as a " -"dotted module and class name). The instantiation arguments are as " -"for :class:`~logging.Formatter`, thus this key is most useful for " -"instantiating a customised subclass of :class:`~logging.Formatter`. For " -"example, the alternative class might present exception tracebacks in an " -"expanded or condensed format. If your formatter requires different or extra " +"dotted module and class name). The instantiation arguments are as for :" +"class:`~logging.Formatter`, thus this key is most useful for instantiating a " +"customised subclass of :class:`~logging.Formatter`. For example, the " +"alternative class might present exception tracebacks in an expanded or " +"condensed format. If your formatter requires different or extra " "configuration keys, you should use :ref:`logging-config-dict-userdef`." msgstr "" -#: ../../library/logging.config.rst:275 msgid "" "*filters* - the corresponding value will be a dict in which each key is a " "filter id and each value is a dict describing how to configure the " "corresponding Filter instance." msgstr "" -#: ../../library/logging.config.rst:279 msgid "" "The configuring dict is searched for the key ``name`` (defaulting to the " "empty string) and this is used to construct a :class:`logging.Filter` " "instance." msgstr "" -#: ../../library/logging.config.rst:283 msgid "" "*handlers* - the corresponding value will be a dict in which each key is a " "handler id and each value is a dict describing how to configure the " "corresponding Handler instance." msgstr "" -#: ../../library/logging.config.rst:287 ../../library/logging.config.rst:332 msgid "The configuring dict is searched for the following keys:" msgstr "" -#: ../../library/logging.config.rst:289 msgid "" "``class`` (mandatory). This is the fully qualified name of the handler " "class." msgstr "" -#: ../../library/logging.config.rst:292 msgid "``level`` (optional). The level of the handler." msgstr "" -#: ../../library/logging.config.rst:294 msgid "``formatter`` (optional). The id of the formatter for this handler." msgstr "" -#: ../../library/logging.config.rst:297 msgid "``filters`` (optional). A list of ids of the filters for this handler." msgstr "" -#: ../../library/logging.config.rst:300 ../../library/logging.config.rst:341 msgid "``filters`` can take filter instances in addition to ids." msgstr "" -#: ../../library/logging.config.rst:303 msgid "" "All *other* keys are passed through as keyword arguments to the handler's " "constructor. For example, given the snippet:" msgstr "" -#: ../../library/logging.config.rst:306 msgid "" "handlers:\n" " console:\n" @@ -463,80 +392,67 @@ msgid "" " backupCount: 3" msgstr "" -#: ../../library/logging.config.rst:322 msgid "" -"the handler with id ``console`` is instantiated as " -"a :class:`logging.StreamHandler`, using ``sys.stdout`` as the underlying " -"stream. The handler with id ``file`` is instantiated as " -"a :class:`logging.handlers.RotatingFileHandler` with the keyword arguments " -"``filename='logconfig.log', maxBytes=1024, backupCount=3``." +"the handler with id ``console`` is instantiated as a :class:`logging." +"StreamHandler`, using ``sys.stdout`` as the underlying stream. The handler " +"with id ``file`` is instantiated as a :class:`logging.handlers." +"RotatingFileHandler` with the keyword arguments ``filename='logconfig.log', " +"maxBytes=1024, backupCount=3``." msgstr "" -#: ../../library/logging.config.rst:328 msgid "" "*loggers* - the corresponding value will be a dict in which each key is a " "logger name and each value is a dict describing how to configure the " "corresponding Logger instance." msgstr "" -#: ../../library/logging.config.rst:334 msgid "``level`` (optional). The level of the logger." msgstr "" -#: ../../library/logging.config.rst:336 msgid "``propagate`` (optional). The propagation setting of the logger." msgstr "" -#: ../../library/logging.config.rst:338 msgid "``filters`` (optional). A list of ids of the filters for this logger." msgstr "" -#: ../../library/logging.config.rst:344 msgid "" "``handlers`` (optional). A list of ids of the handlers for this logger." msgstr "" -#: ../../library/logging.config.rst:347 msgid "" "The specified loggers will be configured according to the level, " "propagation, filters and handlers specified." msgstr "" -#: ../../library/logging.config.rst:350 msgid "" "*root* - this will be the configuration for the root logger. Processing of " "the configuration will be as for any logger, except that the ``propagate`` " "setting will not be applicable." msgstr "" -#: ../../library/logging.config.rst:354 msgid "" "*incremental* - whether the configuration is to be interpreted as " "incremental to the existing configuration. This value defaults to " "``False``, which means that the specified configuration replaces the " -"existing configuration with the same semantics as used by the " -"existing :func:`fileConfig` API." +"existing configuration with the same semantics as used by the existing :func:" +"`fileConfig` API." msgstr "" -#: ../../library/logging.config.rst:360 msgid "" "If the specified value is ``True``, the configuration is processed as " "described in the section on :ref:`logging-config-dict-incremental`." msgstr "" -#: ../../library/logging.config.rst:363 msgid "" "*disable_existing_loggers* - whether any existing non-root loggers are to be " -"disabled. This setting mirrors the parameter of the same name " -"in :func:`fileConfig`. If absent, this parameter defaults to ``True``. This " -"value is ignored if *incremental* is ``True``." +"disabled. This setting mirrors the parameter of the same name in :func:" +"`fileConfig`. If absent, this parameter defaults to ``True``. This value is " +"ignored if *incremental* is ``True``." msgstr "" -#: ../../library/logging.config.rst:371 msgid "Incremental Configuration" msgstr "" -#: ../../library/logging.config.rst:373 msgid "" "It is difficult to provide complete flexibility for incremental " "configuration. For example, because objects such as filters and formatters " @@ -544,7 +460,6 @@ msgid "" "to such anonymous objects when augmenting a configuration." msgstr "" -#: ../../library/logging.config.rst:379 msgid "" "Furthermore, there is not a compelling case for arbitrarily altering the " "object graph of loggers, handlers, filters, formatters at run-time, once a " @@ -555,7 +470,6 @@ msgid "" "worth the complexity it adds to the implementation." msgstr "" -#: ../../library/logging.config.rst:388 msgid "" "Thus, when the ``incremental`` key of a configuration dict is present and is " "``True``, the system will completely ignore any ``formatters`` and " @@ -564,7 +478,6 @@ msgid "" "``loggers`` and ``root`` entries." msgstr "" -#: ../../library/logging.config.rst:394 msgid "" "Using a value in the configuration dict lets configurations to be sent over " "the wire as pickled dicts to a socket listener. Thus, the logging verbosity " @@ -572,11 +485,9 @@ msgid "" "and restart the application." msgstr "" -#: ../../library/logging.config.rst:402 msgid "Object connections" msgstr "" -#: ../../library/logging.config.rst:404 msgid "" "The schema describes a set of logging objects - loggers, handlers, " "formatters, filters - which are connected to each other in an object graph. " @@ -592,11 +503,9 @@ msgid "" "source and the destination object with that id." msgstr "" -#: ../../library/logging.config.rst:418 msgid "So, for example, consider the following YAML snippet:" msgstr "" -#: ../../library/logging.config.rst:420 msgid "" "formatters:\n" " brief:\n" @@ -616,24 +525,21 @@ msgid "" " handlers: [h1, h2]" msgstr "" -#: ../../library/logging.config.rst:439 msgid "" "(Note: YAML used here because it's a little more readable than the " "equivalent Python source form for the dictionary.)" msgstr "" -#: ../../library/logging.config.rst:442 msgid "" "The ids for loggers are the logger names which would be used " -"programmatically to obtain a reference to those loggers, e.g. " -"``foo.bar.baz``. The ids for Formatters and Filters can be any string value " -"(such as ``brief``, ``precise`` above) and they are transient, in that they " -"are only meaningful for processing the configuration dictionary and used to " -"determine connections between objects, and are not persisted anywhere when " -"the configuration call is complete." +"programmatically to obtain a reference to those loggers, e.g. ``foo.bar." +"baz``. The ids for Formatters and Filters can be any string value (such as " +"``brief``, ``precise`` above) and they are transient, in that they are only " +"meaningful for processing the configuration dictionary and used to determine " +"connections between objects, and are not persisted anywhere when the " +"configuration call is complete." msgstr "" -#: ../../library/logging.config.rst:450 msgid "" "The above snippet indicates that logger named ``foo.bar.baz`` should have " "two handlers attached to it, which are described by the handler ids ``h1`` " @@ -641,11 +547,9 @@ msgid "" "the formatter for ``h2`` is that described by id ``precise``." msgstr "" -#: ../../library/logging.config.rst:460 msgid "User-defined objects" msgstr "" -#: ../../library/logging.config.rst:462 msgid "" "The schema supports user-defined objects for handlers, filters and " "formatters. (Loggers do not need to have different types for different " @@ -653,7 +557,6 @@ msgid "" "defined logger classes.)" msgstr "" -#: ../../library/logging.config.rst:467 msgid "" "Objects to be configured are described by dictionaries which detail their " "configuration. In some places, the logging system will be able to infer " @@ -666,7 +569,6 @@ msgid "" "made available under the special key ``'()'``. Here's a concrete example:" msgstr "" -#: ../../library/logging.config.rst:479 msgid "" "formatters:\n" " brief:\n" @@ -681,29 +583,25 @@ msgid "" " answer: 42" msgstr "" -#: ../../library/logging.config.rst:493 msgid "" "The above YAML snippet defines three formatters. The first, with id " "``brief``, is a standard :class:`logging.Formatter` instance with the " "specified format string. The second, with id ``default``, has a longer " -"format and also defines the time format explicitly, and will result in " -"a :class:`logging.Formatter` initialized with those two format strings. " -"Shown in Python source form, the ``brief`` and ``default`` formatters have " +"format and also defines the time format explicitly, and will result in a :" +"class:`logging.Formatter` initialized with those two format strings. Shown " +"in Python source form, the ``brief`` and ``default`` formatters have " "configuration sub-dictionaries::" msgstr "" -#: ../../library/logging.config.rst:501 msgid "" "{\n" " 'format' : '%(message)s'\n" "}" msgstr "" -#: ../../library/logging.config.rst:505 msgid "and::" msgstr "" -#: ../../library/logging.config.rst:507 msgid "" "{\n" " 'format' : '%(asctime)s %(levelname)-8s %(name)-15s %(message)s',\n" @@ -711,7 +609,6 @@ msgid "" "}" msgstr "" -#: ../../library/logging.config.rst:512 msgid "" "respectively, and as these dictionaries do not contain the special key " "``'()'``, the instantiation is inferred from the context: as a result, " @@ -720,7 +617,6 @@ msgid "" "is::" msgstr "" -#: ../../library/logging.config.rst:518 msgid "" "{\n" " '()' : 'my.package.customFormatterFactory',\n" @@ -730,7 +626,6 @@ msgid "" "}" msgstr "" -#: ../../library/logging.config.rst:525 msgid "" "and this contains the special key ``'()'``, which means that user-defined " "instantiation is wanted. In this case, the specified factory callable will " @@ -742,11 +637,9 @@ msgid "" "assumed to be returned by the call::" msgstr "" -#: ../../library/logging.config.rst:535 msgid "my.package.customFormatterFactory(bar='baz', spam=99.9, answer=42)" msgstr "" -#: ../../library/logging.config.rst:537 msgid "" "The values for keys such as ``bar``, ``spam`` and ``answer`` in the above " "example should not be configuration dictionaries or references such as " @@ -754,7 +647,6 @@ msgid "" "configuration machinery, but passed to the callable as-is." msgstr "" -#: ../../library/logging.config.rst:542 msgid "" "The key ``'()'`` has been used as the special key because it is not a valid " "keyword parameter name, and so will not clash with the names of the keyword " @@ -762,13 +654,11 @@ msgid "" "corresponding value is a callable." msgstr "" -#: ../../library/logging.config.rst:547 msgid "" "The ``filters`` member of ``handlers`` and ``loggers`` can take filter " "instances in addition to ids." msgstr "" -#: ../../library/logging.config.rst:551 msgid "" "You can also specify a special key ``'.'`` whose value is a mapping of " "attribute names to values. If found, the specified attributes will be set on " @@ -776,7 +666,6 @@ msgid "" "configuration::" msgstr "" -#: ../../library/logging.config.rst:556 msgid "" "{\n" " '()' : 'my.package.customFormatterFactory',\n" @@ -790,13 +679,11 @@ msgid "" "}" msgstr "" -#: ../../library/logging.config.rst:567 msgid "" "the returned formatter will have attribute ``foo`` set to ``'bar'`` and " "attribute ``baz`` set to ``'bozz'``." msgstr "" -#: ../../library/logging.config.rst:570 msgid "" "The values for attributes such as ``foo`` and ``baz`` in the above example " "should not be configuration dictionaries or references such as ``cfg://foo`` " @@ -804,11 +691,9 @@ msgid "" "machinery, but set as attribute values as-is." msgstr "" -#: ../../library/logging.config.rst:579 msgid "Handler configuration order" msgstr "" -#: ../../library/logging.config.rst:581 msgid "" "Handlers are configured in alphabetical order of their keys, and a " "configured handler replaces the configuration dictionary in (a working copy " @@ -824,16 +709,14 @@ msgid "" "named ``bar``, problems would result, because the configuration of ``bar`` " "would be attempted before that of ``foo``, and ``foo`` would not yet have " "been configured. However, if the dependent handler were named ``foobar``, it " -"would be configured after ``foo``, with the result that ``cfg://" -"handlers.foo`` would resolve to configured handler ``foo``, and not its " -"configuration dictionary." +"would be configured after ``foo``, with the result that ``cfg://handlers." +"foo`` would resolve to configured handler ``foo``, and not its configuration " +"dictionary." msgstr "" -#: ../../library/logging.config.rst:602 msgid "Access to external objects" msgstr "" -#: ../../library/logging.config.rst:604 msgid "" "There are times where a configuration needs to refer to objects external to " "the configuration, for example ``sys.stderr``. If the configuration dict is " @@ -842,13 +725,12 @@ msgid "" "text file, there is no standard way to distinguish ``sys.stderr`` from the " "literal string ``'sys.stderr'``. To facilitate this distinction, the " "configuration system looks for certain special prefixes in string values and " -"treat them specially. For example, if the literal string ``'ext://" -"sys.stderr'`` is provided as a value in the configuration, then the ``ext://" -"`` will be stripped off and the remainder of the value processed using " -"normal import mechanisms." +"treat them specially. For example, if the literal string ``'ext://sys." +"stderr'`` is provided as a value in the configuration, then the ``ext://`` " +"will be stripped off and the remainder of the value processed using normal " +"import mechanisms." msgstr "" -#: ../../library/logging.config.rst:617 msgid "" "The handling of such prefixes is done in a way analogous to protocol " "handling: there is a generic mechanism to look for prefixes which match the " @@ -858,11 +740,9 @@ msgid "" "prefix is not recognised, then the string value will be left as-is." msgstr "" -#: ../../library/logging.config.rst:629 msgid "Access to internal objects" msgstr "" -#: ../../library/logging.config.rst:631 msgid "" "As well as external objects, there is sometimes also a need to refer to " "objects in the configuration. This will be done implicitly by the " @@ -873,22 +753,19 @@ msgid "" "and resolve to the appropriate destination object." msgstr "" -#: ../../library/logging.config.rst:639 msgid "" "However, a more generic mechanism is needed for user-defined objects which " -"are not known to the :mod:`logging` module. For example, " -"consider :class:`logging.handlers.MemoryHandler`, which takes a ``target`` " -"argument which is another handler to delegate to. Since the system already " -"knows about this class, then in the configuration, the given ``target`` just " -"needs to be the object id of the relevant target handler, and the system " -"will resolve to the handler from the id. If, however, a user defines a " -"``my.package.MyHandler`` which has an ``alternate`` handler, the " -"configuration system would not know that the ``alternate`` referred to a " -"handler. To cater for this, a generic resolution system allows the user to " -"specify:" +"are not known to the :mod:`logging` module. For example, consider :class:" +"`logging.handlers.MemoryHandler`, which takes a ``target`` argument which is " +"another handler to delegate to. Since the system already knows about this " +"class, then in the configuration, the given ``target`` just needs to be the " +"object id of the relevant target handler, and the system will resolve to the " +"handler from the id. If, however, a user defines a ``my.package.MyHandler`` " +"which has an ``alternate`` handler, the configuration system would not know " +"that the ``alternate`` referred to a handler. To cater for this, a generic " +"resolution system allows the user to specify:" msgstr "" -#: ../../library/logging.config.rst:651 msgid "" "handlers:\n" " file:\n" @@ -899,16 +776,14 @@ msgid "" " alternate: cfg://handlers.file" msgstr "" -#: ../../library/logging.config.rst:661 msgid "" "The literal string ``'cfg://handlers.file'`` will be resolved in an " "analogous way to strings with the ``ext://`` prefix, but looking in the " "configuration itself rather than the import namespace. The mechanism allows " -"access by dot or by index, in a similar way to that provided by " -"``str.format``. Thus, given the following snippet:" +"access by dot or by index, in a similar way to that provided by ``str." +"format``. Thus, given the following snippet:" msgstr "" -#: ../../library/logging.config.rst:667 msgid "" "handlers:\n" " email:\n" @@ -921,24 +796,22 @@ msgid "" " subject: Houston, we have a problem." msgstr "" -#: ../../library/logging.config.rst:679 msgid "" "in the configuration, the string ``'cfg://handlers'`` would resolve to the " "dict with key ``handlers``, the string ``'cfg://handlers.email`` would " "resolve to the dict with key ``email`` in the ``handlers`` dict, and so on. " "The string ``'cfg://handlers.email.toaddrs[1]`` would resolve to " -"``'dev_team@domain.tld'`` and the string ``'cfg://" -"handlers.email.toaddrs[0]'`` would resolve to the value " -"``'support_team@domain.tld'``. The ``subject`` value could be accessed using " -"either ``'cfg://handlers.email.subject'`` or, equivalently, ``'cfg://" -"handlers.email[subject]'``. The latter form only needs to be used if the " -"key contains spaces or non-alphanumeric characters. Please note that the " -"characters ``[`` and ``]`` are not allowed in the keys. If an index value " -"consists only of decimal digits, access will be attempted using the " -"corresponding integer value, falling back to the string value if needed." +"``'dev_team@domain.tld'`` and the string ``'cfg://handlers.email." +"toaddrs[0]'`` would resolve to the value ``'support_team@domain.tld'``. The " +"``subject`` value could be accessed using either ``'cfg://handlers.email." +"subject'`` or, equivalently, ``'cfg://handlers.email[subject]'``. The " +"latter form only needs to be used if the key contains spaces or non-" +"alphanumeric characters. Please note that the characters ``[`` and ``]`` are " +"not allowed in the keys. If an index value consists only of decimal digits, " +"access will be attempted using the corresponding integer value, falling back " +"to the string value if needed." msgstr "" -#: ../../library/logging.config.rst:694 msgid "" "Given a string ``cfg://handlers.myhandler.mykey.123``, this will resolve to " "``config_dict['handlers']['myhandler']['mykey']['123']``. If the string is " @@ -948,24 +821,20 @@ msgid "" "['mykey']['123']`` if that fails." msgstr "" -#: ../../library/logging.config.rst:706 msgid "Import resolution and custom importers" msgstr "" -#: ../../library/logging.config.rst:708 msgid "" "Import resolution, by default, uses the builtin :func:`__import__` function " "to do its importing. You may want to replace this with your own importing " -"mechanism: if so, you can replace the :attr:`importer` attribute of " -"the :class:`DictConfigurator` or its superclass, " -"the :class:`BaseConfigurator` class. However, you need to be careful because " -"of the way functions are accessed from classes via descriptors. If you are " -"using a Python callable to do your imports, and you want to define it at " -"class level rather than instance level, you need to wrap it " -"with :func:`staticmethod`. For example::" +"mechanism: if so, you can replace the :attr:`importer` attribute of the :" +"class:`DictConfigurator` or its superclass, the :class:`BaseConfigurator` " +"class. However, you need to be careful because of the way functions are " +"accessed from classes via descriptors. If you are using a Python callable to " +"do your imports, and you want to define it at class level rather than " +"instance level, you need to wrap it with :func:`staticmethod`. For example::" msgstr "" -#: ../../library/logging.config.rst:718 msgid "" "from importlib import import_module\n" "from logging.config import BaseConfigurator\n" @@ -973,30 +842,26 @@ msgid "" "BaseConfigurator.importer = staticmethod(import_module)" msgstr "" -#: ../../library/logging.config.rst:723 msgid "" "You don't need to wrap with :func:`staticmethod` if you're setting the " "import callable on a configurator *instance*." msgstr "" -#: ../../library/logging.config.rst:729 msgid "Configuring QueueHandler and QueueListener" msgstr "" -#: ../../library/logging.config.rst:731 msgid "" "If you want to configure a :class:`~logging.handlers.QueueHandler`, noting " -"that this is normally used in conjunction with " -"a :class:`~logging.handlers.QueueListener`, you can configure both together. " -"After the configuration, the ``QueueListener`` instance will be available as " -"the :attr:`~logging.handlers.QueueHandler.listener` attribute of the created " -"handler, and that in turn will be available to you " -"using :func:`~logging.getHandlerByName` and passing the name you have used " -"for the ``QueueHandler`` in your configuration. The dictionary schema for " -"configuring the pair is shown in the example YAML snippet below." +"that this is normally used in conjunction with a :class:`~logging.handlers." +"QueueListener`, you can configure both together. After the configuration, " +"the ``QueueListener`` instance will be available as the :attr:`~logging." +"handlers.QueueHandler.listener` attribute of the created handler, and that " +"in turn will be available to you using :func:`~logging.getHandlerByName` and " +"passing the name you have used for the ``QueueHandler`` in your " +"configuration. The dictionary schema for configuring the pair is shown in " +"the example YAML snippet below." msgstr "" -#: ../../library/logging.config.rst:740 msgid "" "handlers:\n" " qhand:\n" @@ -1009,17 +874,14 @@ msgid "" " ..." msgstr "" -#: ../../library/logging.config.rst:752 msgid "The ``queue`` and ``listener`` keys are optional." msgstr "" -#: ../../library/logging.config.rst:754 msgid "" "If the ``queue`` key is present, the corresponding value can be one of the " "following:" msgstr "" -#: ../../library/logging.config.rst:756 msgid "" "An object implementing the :meth:`Queue.put_nowait ` " "and :meth:`Queue.get ` public API. For instance, this may " @@ -1027,53 +889,45 @@ msgid "" "proxy obtained by :meth:`multiprocessing.managers.SyncManager.Queue`." msgstr "" -#: ../../library/logging.config.rst:761 msgid "" "This is of course only possible if you are constructing or modifying the " "configuration dictionary in code." msgstr "" -#: ../../library/logging.config.rst:764 msgid "" "A string that resolves to a callable which, when called with no arguments, " -"returns the queue instance to use. That callable could be " -"a :class:`queue.Queue` subclass or a function which returns a suitable queue " -"instance, such as ``my.module.queue_factory()``." +"returns the queue instance to use. That callable could be a :class:`queue." +"Queue` subclass or a function which returns a suitable queue instance, such " +"as ``my.module.queue_factory()``." msgstr "" -#: ../../library/logging.config.rst:769 msgid "" "A dict with a ``'()'`` key which is constructed in the usual way as " "discussed in :ref:`logging-config-dict-userdef`. The result of this " "construction should be a :class:`queue.Queue` instance." msgstr "" -#: ../../library/logging.config.rst:773 msgid "" "If the ``queue`` key is absent, a standard unbounded :class:`queue.Queue` " "instance is created and used." msgstr "" -#: ../../library/logging.config.rst:776 msgid "" "If the ``listener`` key is present, the corresponding value can be one of " "the following:" msgstr "" -#: ../../library/logging.config.rst:778 msgid "" "A subclass of :class:`logging.handlers.QueueListener`. This is of course " "only possible if you are constructing or modifying the configuration " "dictionary in code." msgstr "" -#: ../../library/logging.config.rst:782 msgid "" "A string which resolves to a class which is a subclass of ``QueueListener``, " "such as ``'my.package.CustomListener'``." msgstr "" -#: ../../library/logging.config.rst:785 msgid "" "A dict with a ``'()'`` key which is constructed in the usual way as " "discussed in :ref:`logging-config-dict-userdef`. The result of this " @@ -1081,35 +935,29 @@ msgid "" "``QueueListener`` initializer." msgstr "" -#: ../../library/logging.config.rst:789 msgid "" "If the ``listener`` key is absent, :class:`logging.handlers.QueueListener` " "is used." msgstr "" -#: ../../library/logging.config.rst:791 msgid "" "The values under the ``handlers`` key are the names of other handlers in the " "configuration (not shown in the above snippet) which will be passed to the " "queue listener." msgstr "" -#: ../../library/logging.config.rst:795 msgid "" "Any custom queue handler and listener classes will need to be defined with " -"the same initialization signatures " -"as :class:`~logging.handlers.QueueHandler` " -"and :class:`~logging.handlers.QueueListener`." +"the same initialization signatures as :class:`~logging.handlers." +"QueueHandler` and :class:`~logging.handlers.QueueListener`." msgstr "" -#: ../../library/logging.config.rst:804 msgid "Configuration file format" msgstr "" -#: ../../library/logging.config.rst:806 msgid "" -"The configuration file format understood by :func:`fileConfig` is based " -"on :mod:`configparser` functionality. The file must contain sections called " +"The configuration file format understood by :func:`fileConfig` is based on :" +"mod:`configparser` functionality. The file must contain sections called " "``[loggers]``, ``[handlers]`` and ``[formatters]`` which identify by name " "the entities of each type which are defined in the file. For each such " "entity, there is a separate section which identifies how that entity is " @@ -1123,24 +971,21 @@ msgid "" "specified in a section called ``[logger_root]``." msgstr "" -#: ../../library/logging.config.rst:821 msgid "" "The :func:`fileConfig` API is older than the :func:`dictConfig` API and does " "not provide functionality to cover certain aspects of logging. For example, " "you cannot configure :class:`~logging.Filter` objects, which provide for " -"filtering of messages beyond simple integer levels, " -"using :func:`fileConfig`. If you need to have instances " -"of :class:`~logging.Filter` in your logging configuration, you will need to " -"use :func:`dictConfig`. Note that future enhancements to configuration " -"functionality will be added to :func:`dictConfig`, so it's worth considering " -"transitioning to this newer API when it's convenient to do so." +"filtering of messages beyond simple integer levels, using :func:" +"`fileConfig`. If you need to have instances of :class:`~logging.Filter` in " +"your logging configuration, you will need to use :func:`dictConfig`. Note " +"that future enhancements to configuration functionality will be added to :" +"func:`dictConfig`, so it's worth considering transitioning to this newer API " +"when it's convenient to do so." msgstr "" -#: ../../library/logging.config.rst:831 msgid "Examples of these sections in the file are given below." msgstr "" -#: ../../library/logging.config.rst:833 msgid "" "[loggers]\n" "keys=root,log02,log03,log04,log05,log06,log07\n" @@ -1152,20 +997,17 @@ msgid "" "keys=form01,form02,form03,form04,form05,form06,form07,form08,form09" msgstr "" -#: ../../library/logging.config.rst:844 msgid "" "The root logger must specify a level and a list of handlers. An example of a " "root logger section is given below." msgstr "" -#: ../../library/logging.config.rst:847 msgid "" "[logger_root]\n" "level=NOTSET\n" "handlers=hand01" msgstr "" -#: ../../library/logging.config.rst:853 msgid "" "The ``level`` entry can be one of ``DEBUG, INFO, WARNING, ERROR, CRITICAL`` " "or ``NOTSET``. For the root logger only, ``NOTSET`` means that all messages " @@ -1173,7 +1015,6 @@ msgid "" "of the ``logging`` package's namespace." msgstr "" -#: ../../library/logging.config.rst:858 msgid "" "The ``handlers`` entry is a comma-separated list of handler names, which " "must appear in the ``[handlers]`` section. These names must appear in the " @@ -1181,13 +1022,11 @@ msgid "" "file." msgstr "" -#: ../../library/logging.config.rst:863 msgid "" "For loggers other than the root logger, some additional information is " "required. This is illustrated by the following example." msgstr "" -#: ../../library/logging.config.rst:866 msgid "" "[logger_parser]\n" "level=DEBUG\n" @@ -1196,7 +1035,6 @@ msgid "" "qualname=compiler.parser" msgstr "" -#: ../../library/logging.config.rst:874 msgid "" "The ``level`` and ``handlers`` entries are interpreted as for the root " "logger, except that if a non-root logger's level is specified as ``NOTSET``, " @@ -1209,13 +1047,11 @@ msgid "" "application to get the logger." msgstr "" -#: ../../library/logging.config.rst:883 msgid "" "Sections which specify handler configuration are exemplified by the " "following." msgstr "" -#: ../../library/logging.config.rst:885 msgid "" "[handler_hand01]\n" "class=StreamHandler\n" @@ -1224,14 +1060,12 @@ msgid "" "args=(sys.stdout,)" msgstr "" -#: ../../library/logging.config.rst:893 msgid "" -"The ``class`` entry indicates the handler's class (as determined " -"by :func:`eval` in the ``logging`` package's namespace). The ``level`` is " -"interpreted as for loggers, and ``NOTSET`` is taken to mean 'log everything'." +"The ``class`` entry indicates the handler's class (as determined by :func:" +"`eval` in the ``logging`` package's namespace). The ``level`` is interpreted " +"as for loggers, and ``NOTSET`` is taken to mean 'log everything'." msgstr "" -#: ../../library/logging.config.rst:897 msgid "" "The ``formatter`` entry indicates the key name of the formatter for this " "handler. If blank, a default formatter (``logging._defaultFormatter``) is " @@ -1239,7 +1073,6 @@ msgid "" "and have a corresponding section in the configuration file." msgstr "" -#: ../../library/logging.config.rst:902 msgid "" "The ``args`` entry, when :ref:`evaluated ` in the context of the " "``logging`` package's namespace, is the list of arguments to the constructor " @@ -1248,7 +1081,6 @@ msgid "" "provided, it defaults to ``()``." msgstr "" -#: ../../library/logging.config.rst:908 msgid "" "The optional ``kwargs`` entry, when :ref:`evaluated ` in the " "context of the ``logging`` package's namespace, is the keyword argument dict " @@ -1256,7 +1088,6 @@ msgid "" "``{}``." msgstr "" -#: ../../library/logging.config.rst:912 msgid "" "[handler_hand02]\n" "class=FileHandler\n" @@ -1280,8 +1111,8 @@ msgid "" "class=handlers.SysLogHandler\n" "level=ERROR\n" "formatter=form05\n" -"args=(('localhost', handlers.SYSLOG_UDP_PORT), " -"handlers.SysLogHandler.LOG_USER)\n" +"args=(('localhost', handlers.SYSLOG_UDP_PORT), handlers.SysLogHandler." +"LOG_USER)\n" "\n" "[handler_hand06]\n" "class=handlers.NTEventLogHandler\n" @@ -1312,12 +1143,10 @@ msgid "" "kwargs={'secure': True}" msgstr "" -#: ../../library/logging.config.rst:965 msgid "" "Sections which specify formatter configuration are typified by the following." msgstr "" -#: ../../library/logging.config.rst:967 msgid "" "[formatter_form01]\n" "format=F1 %(asctime)s %(levelname)s %(message)s %(customfield)s\n" @@ -1328,41 +1157,34 @@ msgid "" "class=logging.Formatter" msgstr "" -#: ../../library/logging.config.rst:977 msgid "" "The arguments for the formatter configuration are the same as the keys in " "the dictionary schema :ref:`formatters section `." msgstr "" -#: ../../library/logging.config.rst:981 msgid "" "The ``defaults`` entry, when :ref:`evaluated ` in the context of " "the ``logging`` package's namespace, is a dictionary of default values for " "custom formatting fields. If not provided, it defaults to ``None``." msgstr "" -#: ../../library/logging.config.rst:988 msgid "" "Due to the use of :func:`eval` as described above, there are potential " "security risks which result from using the :func:`listen` to send and " "receive configurations via sockets. The risks are limited to where multiple " -"users with no mutual trust run code on the same machine; see " -"the :func:`listen` documentation for more information." +"users with no mutual trust run code on the same machine; see the :func:" +"`listen` documentation for more information." msgstr "" -#: ../../library/logging.config.rst:996 msgid "Module :mod:`logging`" msgstr "" -#: ../../library/logging.config.rst:997 msgid "API reference for the logging module." msgstr "" -#: ../../library/logging.config.rst:999 msgid "Module :mod:`logging.handlers`" msgstr "" -#: ../../library/logging.config.rst:1000 msgid "Useful handlers included with the logging module." msgstr "" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 6a8c85f..af4b57f 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,123 +18,100 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/logging.handlers.rst:2 msgid ":mod:`!logging.handlers` --- Logging handlers" msgstr "" -#: ../../library/logging.handlers.rst:10 msgid "**Source code:** :source:`Lib/logging/handlers.py`" msgstr "" -#: ../../library/logging.handlers.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" -#: ../../library/logging.handlers.rst:17 msgid ":ref:`Basic Tutorial `" msgstr "" -#: ../../library/logging.handlers.rst:18 msgid ":ref:`Advanced Tutorial `" msgstr "" -#: ../../library/logging.handlers.rst:19 msgid ":ref:`Logging Cookbook `" msgstr "" -#: ../../library/logging.handlers.rst:25 msgid "" "The following useful handlers are provided in the package. Note that three " -"of the handlers (:class:`StreamHandler`, :class:`FileHandler` " -"and :class:`NullHandler`) are actually defined in the :mod:`logging` module " -"itself, but have been documented here along with the other handlers." +"of the handlers (:class:`StreamHandler`, :class:`FileHandler` and :class:" +"`NullHandler`) are actually defined in the :mod:`logging` module itself, but " +"have been documented here along with the other handlers." msgstr "" -#: ../../library/logging.handlers.rst:33 msgid "StreamHandler" msgstr "" -#: ../../library/logging.handlers.rst:35 msgid "" "The :class:`StreamHandler` class, located in the core :mod:`logging` " "package, sends logging output to streams such as *sys.stdout*, *sys.stderr* " -"or any file-like object (or, more precisely, any object which " -"supports :meth:`write` and :meth:`flush` methods)." +"or any file-like object (or, more precisely, any object which supports :meth:" +"`write` and :meth:`flush` methods)." msgstr "" -#: ../../library/logging.handlers.rst:43 msgid "" "Returns a new instance of the :class:`StreamHandler` class. If *stream* is " -"specified, the instance will use it for logging output; otherwise, " -"*sys.stderr* will be used." +"specified, the instance will use it for logging output; otherwise, *sys." +"stderr* will be used." msgstr "" -#: ../../library/logging.handlers.rst:50 msgid "" "If a formatter is specified, it is used to format the record. The record is " "then written to the stream followed by :attr:`terminator`. If exception " -"information is present, it is formatted " -"using :func:`traceback.print_exception` and appended to the stream." +"information is present, it is formatted using :func:`traceback." +"print_exception` and appended to the stream." msgstr "" -#: ../../library/logging.handlers.rst:58 msgid "" -"Flushes the stream by calling its :meth:`flush` method. Note that " -"the :meth:`close` method is inherited from :class:`~logging.Handler` and so " -"does no output, so an explicit :meth:`flush` call may be needed at times." +"Flushes the stream by calling its :meth:`flush` method. Note that the :meth:" +"`close` method is inherited from :class:`~logging.Handler` and so does no " +"output, so an explicit :meth:`flush` call may be needed at times." msgstr "" -#: ../../library/logging.handlers.rst:64 msgid "" "Sets the instance's stream to the specified value, if it is different. The " "old stream is flushed before the new stream is set." msgstr "" -#: ../../library/logging.handlers.rst:0 msgid "Parameters" msgstr "" -#: ../../library/logging.handlers.rst:67 msgid "The stream that the handler should use." msgstr "" -#: ../../library/logging.handlers.rst:0 msgid "Returns" msgstr "" -#: ../../library/logging.handlers.rst:69 msgid "the old stream, if the stream was changed, or ``None`` if it wasn't." msgstr "" -#: ../../library/logging.handlers.rst:75 msgid "" "String used as the terminator when writing a formatted record to a stream. " "Default value is ``'\\n'``." msgstr "" -#: ../../library/logging.handlers.rst:78 msgid "" "If you don't want a newline termination, you can set the handler instance's " "``terminator`` attribute to the empty string." msgstr "" -#: ../../library/logging.handlers.rst:81 msgid "In earlier versions, the terminator was hardcoded as ``'\\n'``." msgstr "" -#: ../../library/logging.handlers.rst:89 msgid "FileHandler" msgstr "" -#: ../../library/logging.handlers.rst:91 msgid "" "The :class:`FileHandler` class, located in the core :mod:`logging` package, " "sends logging output to a disk file. It inherits the output functionality " "from :class:`StreamHandler`." msgstr "" -#: ../../library/logging.handlers.rst:98 msgid "" "Returns a new instance of the :class:`FileHandler` class. The specified file " "is opened and used as the stream for logging. If *mode* is not specified, " @@ -149,81 +122,60 @@ msgid "" "handled." msgstr "" -#: ../../library/logging.handlers.rst:105 -#: ../../library/logging.handlers.rst:190 -#: ../../library/logging.handlers.rst:338 -#: ../../library/logging.handlers.rst:448 msgid "" "As well as string values, :class:`~pathlib.Path` objects are also accepted " "for the *filename* argument." msgstr "" -#: ../../library/logging.handlers.rst:109 -#: ../../library/logging.handlers.rst:194 -#: ../../library/logging.handlers.rst:342 -#: ../../library/logging.handlers.rst:452 msgid "The *errors* parameter was added." msgstr "" -#: ../../library/logging.handlers.rst:114 msgid "Closes the file." msgstr "" -#: ../../library/logging.handlers.rst:118 msgid "Outputs the record to the file." msgstr "" -#: ../../library/logging.handlers.rst:120 msgid "" "Note that if the file was closed due to logging shutdown at exit and the " "file mode is 'w', the record will not be emitted (see :issue:`42378`)." msgstr "" -#: ../../library/logging.handlers.rst:127 msgid "NullHandler" msgstr "" -#: ../../library/logging.handlers.rst:131 msgid "" "The :class:`NullHandler` class, located in the core :mod:`logging` package, " "does not do any formatting or output. It is essentially a 'no-op' handler " "for use by library developers." msgstr "" -#: ../../library/logging.handlers.rst:137 msgid "Returns a new instance of the :class:`NullHandler` class." msgstr "" -#: ../../library/logging.handlers.rst:141 -#: ../../library/logging.handlers.rst:145 msgid "This method does nothing." msgstr "" -#: ../../library/logging.handlers.rst:149 msgid "" "This method returns ``None`` for the lock, since there is no underlying I/O " "to which access needs to be serialized." msgstr "" -#: ../../library/logging.handlers.rst:153 msgid "" -"See :ref:`library-config` for more information on how to " -"use :class:`NullHandler`." +"See :ref:`library-config` for more information on how to use :class:" +"`NullHandler`." msgstr "" -#: ../../library/logging.handlers.rst:159 msgid "WatchedFileHandler" msgstr "" -#: ../../library/logging.handlers.rst:163 msgid "" -"The :class:`WatchedFileHandler` class, located in " -"the :mod:`logging.handlers` module, is a :class:`FileHandler` which watches " -"the file it is logging to. If the file changes, it is closed and reopened " -"using the file name." +"The :class:`WatchedFileHandler` class, located in the :mod:`logging." +"handlers` module, is a :class:`FileHandler` which watches the file it is " +"logging to. If the file changes, it is closed and reopened using the file " +"name." msgstr "" -#: ../../library/logging.handlers.rst:167 msgid "" "A file change can happen because of usage of programs such as *newsyslog* " "and *logrotate* which perform log file rotation. This handler, intended for " @@ -233,7 +185,6 @@ msgid "" "file opened to get a new stream." msgstr "" -#: ../../library/logging.handlers.rst:174 msgid "" "This handler is not appropriate for use under Windows, because under Windows " "open log files cannot be moved or renamed - logging opens the files with " @@ -242,7 +193,6 @@ msgid "" "zero for this value." msgstr "" -#: ../../library/logging.handlers.rst:183 msgid "" "Returns a new instance of the :class:`WatchedFileHandler` class. The " "specified file is opened and used as the stream for logging. If *mode* is " @@ -253,44 +203,37 @@ msgid "" "errors are handled." msgstr "" -#: ../../library/logging.handlers.rst:199 msgid "" "Checks to see if the file has changed. If it has, the existing stream is " "flushed and closed and the file opened again, typically as a precursor to " "outputting the record to the file." msgstr "" -#: ../../library/logging.handlers.rst:208 msgid "" "Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to " "reopen the file if it has changed." msgstr "" -#: ../../library/logging.handlers.rst:214 msgid "BaseRotatingHandler" msgstr "" -#: ../../library/logging.handlers.rst:216 msgid "" -"The :class:`BaseRotatingHandler` class, located in " -"the :mod:`logging.handlers` module, is the base class for the rotating file " -"handlers, :class:`RotatingFileHandler` " -"and :class:`TimedRotatingFileHandler`. You should not need to instantiate " -"this class, but it has attributes and methods you may need to override." +"The :class:`BaseRotatingHandler` class, located in the :mod:`logging." +"handlers` module, is the base class for the rotating file handlers, :class:" +"`RotatingFileHandler` and :class:`TimedRotatingFileHandler`. You should not " +"need to instantiate this class, but it has attributes and methods you may " +"need to override." msgstr "" -#: ../../library/logging.handlers.rst:224 msgid "The parameters are as for :class:`FileHandler`. The attributes are:" msgstr "" -#: ../../library/logging.handlers.rst:228 msgid "" "If this attribute is set to a callable, the :meth:`rotation_filename` method " "delegates to this callable. The parameters passed to the callable are those " "passed to :meth:`rotation_filename`." msgstr "" -#: ../../library/logging.handlers.rst:232 msgid "" "The namer function is called quite a few times during rollover, so it should " "be as simple and as fast as possible. It should also return the same output " @@ -298,7 +241,6 @@ msgid "" "as expected." msgstr "" -#: ../../library/logging.handlers.rst:237 msgid "" "It's also worth noting that care should be taken when using a namer to " "preserve certain attributes in the filename which are used during rotation. " @@ -309,43 +251,36 @@ msgid "" "determining the oldest files to delete. For this to happen, the filenames " "should be sortable using the date/time portion of the filename, and a namer " "needs to respect this. (If a namer is wanted that doesn't respect this " -"scheme, it will need to be used in a subclass " -"of :class:`TimedRotatingFileHandler` which overrides " -"the :meth:`~TimedRotatingFileHandler.getFilesToDelete` method to fit in with " -"the custom naming scheme.)" +"scheme, it will need to be used in a subclass of :class:" +"`TimedRotatingFileHandler` which overrides the :meth:" +"`~TimedRotatingFileHandler.getFilesToDelete` method to fit in with the " +"custom naming scheme.)" msgstr "" -#: ../../library/logging.handlers.rst:255 msgid "" "If this attribute is set to a callable, the :meth:`rotate` method delegates " "to this callable. The parameters passed to the callable are those passed " "to :meth:`rotate`." msgstr "" -#: ../../library/logging.handlers.rst:263 msgid "Modify the filename of a log file when rotating." msgstr "" -#: ../../library/logging.handlers.rst:265 msgid "This is provided so that a custom filename can be provided." msgstr "" -#: ../../library/logging.handlers.rst:267 msgid "" "The default implementation calls the 'namer' attribute of the handler, if " "it's callable, passing the default name to it. If the attribute isn't " "callable (the default is ``None``), the name is returned unchanged." msgstr "" -#: ../../library/logging.handlers.rst:271 msgid "The default name for the log file." msgstr "" -#: ../../library/logging.handlers.rst:278 msgid "When rotating, rotate the current log." msgstr "" -#: ../../library/logging.handlers.rst:280 msgid "" "The default implementation calls the 'rotator' attribute of the handler, if " "it's callable, passing the source and dest arguments to it. If the attribute " @@ -353,48 +288,40 @@ msgid "" "the destination." msgstr "" -#: ../../library/logging.handlers.rst:285 msgid "" "The source filename. This is normally the base filename, e.g. 'test.log'." msgstr "" -#: ../../library/logging.handlers.rst:287 msgid "" -"The destination filename. This is normally what the source is rotated to, " -"e.g. 'test.log.1'." +"The destination filename. This is normally what the source is rotated to, e." +"g. 'test.log.1'." msgstr "" -#: ../../library/logging.handlers.rst:292 msgid "" "The reason the attributes exist is to save you having to subclass - you can " -"use the same callables for instances of :class:`RotatingFileHandler` " -"and :class:`TimedRotatingFileHandler`. If either the namer or rotator " -"callable raises an exception, this will be handled in the same way as any " -"other exception during an :meth:`emit` call, i.e. via " -"the :meth:`handleError` method of the handler." +"use the same callables for instances of :class:`RotatingFileHandler` and :" +"class:`TimedRotatingFileHandler`. If either the namer or rotator callable " +"raises an exception, this will be handled in the same way as any other " +"exception during an :meth:`emit` call, i.e. via the :meth:`handleError` " +"method of the handler." msgstr "" -#: ../../library/logging.handlers.rst:299 msgid "" "If you need to make more significant changes to rotation processing, you can " "override the methods." msgstr "" -#: ../../library/logging.handlers.rst:302 msgid "For an example, see :ref:`cookbook-rotator-namer`." msgstr "" -#: ../../library/logging.handlers.rst:308 msgid "RotatingFileHandler" msgstr "" -#: ../../library/logging.handlers.rst:310 msgid "" -"The :class:`RotatingFileHandler` class, located in " -"the :mod:`logging.handlers` module, supports rotation of disk log files." +"The :class:`RotatingFileHandler` class, located in the :mod:`logging." +"handlers` module, supports rotation of disk log files." msgstr "" -#: ../../library/logging.handlers.rst:316 msgid "" "Returns a new instance of the :class:`RotatingFileHandler` class. The " "specified file is opened and used as the stream for logging. If *mode* is " @@ -405,54 +332,45 @@ msgid "" "errors are handled." msgstr "" -#: ../../library/logging.handlers.rst:323 msgid "" -"You can use the *maxBytes* and *backupCount* values to allow the file " -"to :dfn:`rollover` at a predetermined size. When the size is about to be " +"You can use the *maxBytes* and *backupCount* values to allow the file to :" +"dfn:`rollover` at a predetermined size. When the size is about to be " "exceeded, the file is closed and a new file is silently opened for output. " "Rollover occurs whenever the current log file is nearly *maxBytes* in " "length; but if either of *maxBytes* or *backupCount* is zero, rollover never " "occurs, so you generally want to set *backupCount* to at least 1, and have a " "non-zero *maxBytes*. When *backupCount* is non-zero, the system will save " "old log files by appending the extensions '.1', '.2' etc., to the filename. " -"For example, with a *backupCount* of 5 and a base file name " -"of :file:`app.log`, you would " -"get :file:`app.log`, :file:`app.log.1`, :file:`app.log.2`, up " -"to :file:`app.log.5`. The file being written to is always :file:`app.log`. " -"When this file is filled, it is closed and renamed to :file:`app.log.1`, and " -"if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then they are " -"renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." +"For example, with a *backupCount* of 5 and a base file name of :file:`app." +"log`, you would get :file:`app.log`, :file:`app.log.1`, :file:`app.log.2`, " +"up to :file:`app.log.5`. The file being written to is always :file:`app." +"log`. When this file is filled, it is closed and renamed to :file:`app." +"log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then " +"they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." msgstr "" -#: ../../library/logging.handlers.rst:347 -#: ../../library/logging.handlers.rst:457 msgid "Does a rollover, as described above." msgstr "" -#: ../../library/logging.handlers.rst:352 msgid "" "Outputs the record to the file, catering for rollover as described " "previously." msgstr "" -#: ../../library/logging.handlers.rst:357 msgid "" "See if the supplied record would cause the file to exceed the configured " "size limit." msgstr "" -#: ../../library/logging.handlers.rst:362 msgid "TimedRotatingFileHandler" msgstr "" -#: ../../library/logging.handlers.rst:364 msgid "" -"The :class:`TimedRotatingFileHandler` class, located in " -"the :mod:`logging.handlers` module, supports rotation of disk log files at " -"certain timed intervals." +"The :class:`TimedRotatingFileHandler` class, located in the :mod:`logging." +"handlers` module, supports rotation of disk log files at certain timed " +"intervals." msgstr "" -#: ../../library/logging.handlers.rst:371 msgid "" "Returns a new instance of the :class:`TimedRotatingFileHandler` class. The " "specified file is opened and used as the stream for logging. On rotating it " @@ -460,92 +378,68 @@ msgid "" "*when* and *interval*." msgstr "" -#: ../../library/logging.handlers.rst:376 msgid "" "You can use the *when* to specify the type of *interval*. The list of " "possible values is below. Note that they are not case sensitive." msgstr "" -#: ../../library/logging.handlers.rst:380 msgid "Value" msgstr "" -#: ../../library/logging.handlers.rst:380 msgid "Type of interval" msgstr "" -#: ../../library/logging.handlers.rst:380 msgid "If/how *atTime* is used" msgstr "" -#: ../../library/logging.handlers.rst:382 msgid "``'S'``" -msgstr "``'S'``" +msgstr "" -#: ../../library/logging.handlers.rst:382 msgid "Seconds" msgstr "" -#: ../../library/logging.handlers.rst:382 -#: ../../library/logging.handlers.rst:384 -#: ../../library/logging.handlers.rst:386 -#: ../../library/logging.handlers.rst:388 msgid "Ignored" msgstr "" -#: ../../library/logging.handlers.rst:384 msgid "``'M'``" -msgstr "``'M'``" +msgstr "" -#: ../../library/logging.handlers.rst:384 msgid "Minutes" msgstr "" -#: ../../library/logging.handlers.rst:386 msgid "``'H'``" -msgstr "``'H'``" +msgstr "" -#: ../../library/logging.handlers.rst:386 msgid "Hours" msgstr "" -#: ../../library/logging.handlers.rst:388 msgid "``'D'``" -msgstr "``'D'``" +msgstr "" -#: ../../library/logging.handlers.rst:388 msgid "Days" msgstr "" -#: ../../library/logging.handlers.rst:390 msgid "``'W0'-'W6'``" -msgstr "``'W0'-'W6'``" +msgstr "" -#: ../../library/logging.handlers.rst:390 msgid "Weekday (0=Monday)" msgstr "" -#: ../../library/logging.handlers.rst:390 -#: ../../library/logging.handlers.rst:393 msgid "Used to compute initial rollover time" msgstr "" -#: ../../library/logging.handlers.rst:393 msgid "``'midnight'``" msgstr "" -#: ../../library/logging.handlers.rst:393 msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" msgstr "" -#: ../../library/logging.handlers.rst:398 msgid "" "When using weekday-based rotation, specify 'W0' for Monday, 'W1' for " "Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " "*interval* isn't used." msgstr "" -#: ../../library/logging.handlers.rst:402 msgid "" "The system will save old log files by appending extensions to the filename. " "The extensions are date-and-time based, using the strftime format ``%Y-%m-" @@ -553,20 +447,17 @@ msgid "" "interval." msgstr "" -#: ../../library/logging.handlers.rst:407 msgid "" "When computing the next rollover time for the first time (when the handler " "is created), the last modification time of an existing log file, or else the " "current time, is used to compute when the next rotation will occur." msgstr "" -#: ../../library/logging.handlers.rst:411 msgid "" "If the *utc* argument is true, times in UTC will be used; otherwise local " "time is used." msgstr "" -#: ../../library/logging.handlers.rst:414 msgid "" "If *backupCount* is nonzero, at most *backupCount* files will be kept, and " "if more would be created when rollover occurs, the oldest one is deleted. " @@ -574,13 +465,11 @@ msgid "" "changing the interval may leave old files lying around." msgstr "" -#: ../../library/logging.handlers.rst:419 msgid "" -"If *delay* is true, then file opening is deferred until the first call " -"to :meth:`emit`." +"If *delay* is true, then file opening is deferred until the first call to :" +"meth:`emit`." msgstr "" -#: ../../library/logging.handlers.rst:422 msgid "" "If *atTime* is not ``None``, it must be a ``datetime.time`` instance which " "specifies the time of day when rollover occurs, for the cases where rollover " @@ -590,13 +479,11 @@ msgid "" "normal interval calculation." msgstr "" -#: ../../library/logging.handlers.rst:429 msgid "" "If *errors* is specified, it's used to determine how encoding errors are " "handled." msgstr "" -#: ../../library/logging.handlers.rst:432 msgid "" "Calculation of the initial rollover time is done when the handler is " "initialised. Calculation of subsequent rollover times is done only when " @@ -611,94 +498,78 @@ msgid "" "to the minutes where no output (and hence no rollover) occurred." msgstr "" -#: ../../library/logging.handlers.rst:445 msgid "*atTime* parameter was added." msgstr "" -#: ../../library/logging.handlers.rst:461 msgid "" "Outputs the record to the file, catering for rollover as described above." msgstr "" -#: ../../library/logging.handlers.rst:465 msgid "" "Returns a list of filenames which should be deleted as part of rollover. " "These" msgstr "" -#: ../../library/logging.handlers.rst:469 msgid "" "See if enough time has passed for a rollover to occur and if it has, compute " "the next rollover time." msgstr "" -#: ../../library/logging.handlers.rst:475 msgid "SocketHandler" msgstr "" -#: ../../library/logging.handlers.rst:477 msgid "" "The :class:`SocketHandler` class, located in the :mod:`logging.handlers` " "module, sends logging output to a network socket. The base class uses a TCP " "socket." msgstr "" -#: ../../library/logging.handlers.rst:483 msgid "" "Returns a new instance of the :class:`SocketHandler` class intended to " "communicate with a remote machine whose address is given by *host* and " "*port*." msgstr "" -#: ../../library/logging.handlers.rst:486 msgid "" "If ``port`` is specified as ``None``, a Unix domain socket is created using " "the value in ``host`` - otherwise, a TCP socket is created." msgstr "" -#: ../../library/logging.handlers.rst:492 msgid "Closes the socket." msgstr "" -#: ../../library/logging.handlers.rst:497 msgid "" "Pickles the record's attribute dictionary and writes it to the socket in " "binary format. If there is an error with the socket, silently drops the " "packet. If the connection was previously lost, re-establishes the " -"connection. To unpickle the record at the receiving end into " -"a :class:`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` " -"function." +"connection. To unpickle the record at the receiving end into a :class:" +"`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: ../../library/logging.handlers.rst:507 msgid "" "Handles an error which has occurred during :meth:`emit`. The most likely " "cause is a lost connection. Closes the socket so that we can retry on the " "next event." msgstr "" -#: ../../library/logging.handlers.rst:514 msgid "" "This is a factory method which allows subclasses to define the precise type " -"of socket they want. The default implementation creates a TCP socket " -"(:const:`socket.SOCK_STREAM`)." +"of socket they want. The default implementation creates a TCP socket (:const:" +"`socket.SOCK_STREAM`)." msgstr "" -#: ../../library/logging.handlers.rst:521 msgid "" "Pickles the record's attribute dictionary in binary format with a length " "prefix, and returns it ready for transmission across the socket. The details " "of this operation are equivalent to::" msgstr "" -#: ../../library/logging.handlers.rst:525 msgid "" "data = pickle.dumps(record_attr_dict, 1)\n" "datalen = struct.pack('>L', len(data))\n" "return datalen + data" msgstr "" -#: ../../library/logging.handlers.rst:529 msgid "" "Note that pickles aren't completely secure. If you are concerned about " "security, you may want to override this method to implement a more secure " @@ -707,20 +578,17 @@ msgid "" "objects on the receiving end." msgstr "" -#: ../../library/logging.handlers.rst:538 msgid "" "Send a pickled byte-string *packet* to the socket. The format of the sent " -"byte-string is as described in the documentation " -"for :meth:`~SocketHandler.makePickle`." +"byte-string is as described in the documentation for :meth:`~SocketHandler." +"makePickle`." msgstr "" -#: ../../library/logging.handlers.rst:542 msgid "" "This function allows for partial sends, which can happen when the network is " "busy." msgstr "" -#: ../../library/logging.handlers.rst:548 msgid "" "Tries to create a socket; on failure, uses an exponential back-off " "algorithm. On initial failure, the handler will drop the message it was " @@ -731,23 +599,18 @@ msgid "" "each time up to a maximum of 30 seconds." msgstr "" -#: ../../library/logging.handlers.rst:556 msgid "This behaviour is controlled by the following handler attributes:" msgstr "" -#: ../../library/logging.handlers.rst:558 msgid "``retryStart`` (initial delay, defaulting to 1.0 seconds)." msgstr "" -#: ../../library/logging.handlers.rst:559 msgid "``retryFactor`` (multiplier, defaulting to 2.0)." msgstr "" -#: ../../library/logging.handlers.rst:560 msgid "``retryMax`` (maximum delay, defaulting to 30.0 seconds)." msgstr "" -#: ../../library/logging.handlers.rst:562 msgid "" "This means that if the remote listener starts up *after* the handler has " "been used, you could lose messages (since the handler won't even attempt a " @@ -755,25 +618,21 @@ msgid "" "during the delay period)." msgstr "" -#: ../../library/logging.handlers.rst:571 msgid "DatagramHandler" msgstr "" -#: ../../library/logging.handlers.rst:573 msgid "" "The :class:`DatagramHandler` class, located in the :mod:`logging.handlers` " "module, inherits from :class:`SocketHandler` to support sending logging " "messages over UDP sockets." msgstr "" -#: ../../library/logging.handlers.rst:580 msgid "" "Returns a new instance of the :class:`DatagramHandler` class intended to " "communicate with a remote machine whose address is given by *host* and " "*port*." msgstr "" -#: ../../library/logging.handlers.rst:583 msgid "" "As UDP is not a streaming protocol, there is no persistent connection " "between an instance of this handler and *host*. For this reason, when using " @@ -783,44 +642,36 @@ msgid "" "looked-up IP address rather than the hostname." msgstr "" -#: ../../library/logging.handlers.rst:590 msgid "" "If ``port`` is specified as ``None``, a Unix domain socket is created using " "the value in ``host`` - otherwise, a UDP socket is created." msgstr "" -#: ../../library/logging.handlers.rst:596 msgid "" "Pickles the record's attribute dictionary and writes it to the socket in " "binary format. If there is an error with the socket, silently drops the " -"packet. To unpickle the record at the receiving end into " -"a :class:`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` " -"function." +"packet. To unpickle the record at the receiving end into a :class:`~logging." +"LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: ../../library/logging.handlers.rst:605 msgid "" "The factory method of :class:`SocketHandler` is here overridden to create a " "UDP socket (:const:`socket.SOCK_DGRAM`)." msgstr "" -#: ../../library/logging.handlers.rst:611 msgid "" "Send a pickled byte-string to a socket. The format of the sent byte-string " "is as described in the documentation for :meth:`SocketHandler.makePickle`." msgstr "" -#: ../../library/logging.handlers.rst:618 msgid "SysLogHandler" msgstr "" -#: ../../library/logging.handlers.rst:620 msgid "" "The :class:`SysLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a remote or local Unix syslog." msgstr "" -#: ../../library/logging.handlers.rst:626 msgid "" "Returns a new instance of the :class:`SysLogHandler` class intended to " "communicate with a remote Unix machine whose address is given by *address* " @@ -828,53 +679,45 @@ msgid "" "``('localhost', 514)`` is used. The address is used to open a socket. An " "alternative to providing a ``(host, port)`` tuple is providing an address as " "a string, for example '/dev/log'. In this case, a Unix domain socket is used " -"to send the message to the syslog. If *facility* is not " -"specified, :const:`LOG_USER` is used. The type of socket opened depends on " -"the *socktype* argument, which defaults to :const:`socket.SOCK_DGRAM` and " -"thus opens a UDP socket. To open a TCP socket (for use with the newer syslog " -"daemons such as rsyslog), specify a value of :const:`socket.SOCK_STREAM`. If " -"*timeout* is specified, it sets a timeout (in seconds) for the socket " -"operations. This can help prevent the program from hanging indefinitely if " -"the syslog server is unreachable. By default, *timeout* is ``None``, meaning " -"no timeout is applied." +"to send the message to the syslog. If *facility* is not specified, :const:" +"`LOG_USER` is used. The type of socket opened depends on the *socktype* " +"argument, which defaults to :const:`socket.SOCK_DGRAM` and thus opens a UDP " +"socket. To open a TCP socket (for use with the newer syslog daemons such as " +"rsyslog), specify a value of :const:`socket.SOCK_STREAM`. If *timeout* is " +"specified, it sets a timeout (in seconds) for the socket operations. This " +"can help prevent the program from hanging indefinitely if the syslog server " +"is unreachable. By default, *timeout* is ``None``, meaning no timeout is " +"applied." msgstr "" -#: ../../library/logging.handlers.rst:643 msgid "" -"Note that if your server is not listening on UDP port " -"514, :class:`SysLogHandler` may appear not to work. In that case, check what " -"address you should be using for a domain socket - it's system dependent. For " -"example, on Linux it's usually '/dev/log' but on OS/X it's '/var/run/" -"syslog'. You'll need to check your platform and use the appropriate address " -"(you may need to do this check at runtime if your application needs to run " -"on several platforms). On Windows, you pretty much have to use the UDP " -"option." +"Note that if your server is not listening on UDP port 514, :class:" +"`SysLogHandler` may appear not to work. In that case, check what address you " +"should be using for a domain socket - it's system dependent. For example, on " +"Linux it's usually '/dev/log' but on OS/X it's '/var/run/syslog'. You'll " +"need to check your platform and use the appropriate address (you may need to " +"do this check at runtime if your application needs to run on several " +"platforms). On Windows, you pretty much have to use the UDP option." msgstr "" -#: ../../library/logging.handlers.rst:652 msgid "" "On macOS 12.x (Monterey), Apple has changed the behaviour of their syslog " "daemon - it no longer listens on a domain socket. Therefore, you cannot " "expect :class:`SysLogHandler` to work on this system." msgstr "" -#: ../../library/logging.handlers.rst:656 msgid "See :gh:`91070` for more information." msgstr "" -#: ../../library/logging.handlers.rst:658 msgid "*socktype* was added." msgstr "" -#: ../../library/logging.handlers.rst:661 msgid "*timeout* was added." msgstr "" -#: ../../library/logging.handlers.rst:666 msgid "Closes the socket to the remote host." msgstr "" -#: ../../library/logging.handlers.rst:670 msgid "" "Tries to create a socket and, if it's not a datagram socket, connect it to " "the other end. This method is called during handler initialization, but it's " @@ -883,13 +726,11 @@ msgid "" "socket at that point." msgstr "" -#: ../../library/logging.handlers.rst:680 msgid "" "The record is formatted, and then sent to the syslog server. If exception " "information is present, it is *not* sent to the server." msgstr "" -#: ../../library/logging.handlers.rst:683 msgid "" "(See: :issue:`12168`.) In earlier versions, the message sent to the syslog " "daemons was always terminated with a NUL byte, because early versions of " @@ -900,7 +741,6 @@ msgid "" "byte on as part of the message." msgstr "" -#: ../../library/logging.handlers.rst:692 msgid "" "To enable easier handling of syslog messages in the face of all these " "differing daemon behaviours, the appending of the NUL byte has been made " @@ -910,7 +750,6 @@ msgid "" "*not* append the NUL terminator." msgstr "" -#: ../../library/logging.handlers.rst:699 msgid "" "(See: :issue:`12419`.) In earlier versions, there was no facility for an " "\"ident\" or \"tag\" prefix to identify the source of the message. This can " @@ -921,262 +760,197 @@ msgid "" "bytes, and is prepended to the message exactly as is." msgstr "" -#: ../../library/logging.handlers.rst:710 msgid "" "Encodes the facility and priority into an integer. You can pass in strings " "or integers - if strings are passed, internal mapping dictionaries are used " "to convert them to integers." msgstr "" -#: ../../library/logging.handlers.rst:714 msgid "" "The symbolic ``LOG_`` values are defined in :class:`SysLogHandler` and " "mirror the values defined in the ``sys/syslog.h`` header file." msgstr "" -#: ../../library/logging.handlers.rst:717 msgid "**Priorities**" msgstr "" -#: ../../library/logging.handlers.rst:720 -#: ../../library/logging.handlers.rst:742 msgid "Name (string)" msgstr "" -#: ../../library/logging.handlers.rst:720 -#: ../../library/logging.handlers.rst:742 msgid "Symbolic value" msgstr "" -#: ../../library/logging.handlers.rst:722 msgid "``alert``" msgstr "" -#: ../../library/logging.handlers.rst:722 msgid "LOG_ALERT" msgstr "" -#: ../../library/logging.handlers.rst:724 msgid "``crit`` or ``critical``" msgstr "" -#: ../../library/logging.handlers.rst:724 msgid "LOG_CRIT" msgstr "" -#: ../../library/logging.handlers.rst:726 msgid "``debug``" msgstr "" -#: ../../library/logging.handlers.rst:726 msgid "LOG_DEBUG" msgstr "" -#: ../../library/logging.handlers.rst:728 msgid "``emerg`` or ``panic``" msgstr "" -#: ../../library/logging.handlers.rst:728 msgid "LOG_EMERG" msgstr "" -#: ../../library/logging.handlers.rst:730 msgid "``err`` or ``error``" msgstr "" -#: ../../library/logging.handlers.rst:730 msgid "LOG_ERR" msgstr "" -#: ../../library/logging.handlers.rst:732 msgid "``info``" msgstr "" -#: ../../library/logging.handlers.rst:732 msgid "LOG_INFO" msgstr "" -#: ../../library/logging.handlers.rst:734 msgid "``notice``" msgstr "" -#: ../../library/logging.handlers.rst:734 msgid "LOG_NOTICE" msgstr "" -#: ../../library/logging.handlers.rst:736 msgid "``warn`` or ``warning``" msgstr "" -#: ../../library/logging.handlers.rst:736 msgid "LOG_WARNING" msgstr "" -#: ../../library/logging.handlers.rst:739 msgid "**Facilities**" msgstr "" -#: ../../library/logging.handlers.rst:744 msgid "``auth``" msgstr "" -#: ../../library/logging.handlers.rst:744 msgid "LOG_AUTH" msgstr "" -#: ../../library/logging.handlers.rst:746 msgid "``authpriv``" msgstr "" -#: ../../library/logging.handlers.rst:746 msgid "LOG_AUTHPRIV" msgstr "" -#: ../../library/logging.handlers.rst:748 msgid "``cron``" -msgstr "``cron``" +msgstr "" -#: ../../library/logging.handlers.rst:748 msgid "LOG_CRON" msgstr "" -#: ../../library/logging.handlers.rst:750 msgid "``daemon``" -msgstr "``daemon``" +msgstr "" -#: ../../library/logging.handlers.rst:750 msgid "LOG_DAEMON" msgstr "" -#: ../../library/logging.handlers.rst:752 msgid "``ftp``" -msgstr "``ftp``" +msgstr "" -#: ../../library/logging.handlers.rst:752 msgid "LOG_FTP" msgstr "" -#: ../../library/logging.handlers.rst:754 msgid "``kern``" -msgstr "``kern``" +msgstr "" -#: ../../library/logging.handlers.rst:754 msgid "LOG_KERN" msgstr "" -#: ../../library/logging.handlers.rst:756 msgid "``lpr``" msgstr "" -#: ../../library/logging.handlers.rst:756 msgid "LOG_LPR" msgstr "" -#: ../../library/logging.handlers.rst:758 msgid "``mail``" msgstr "" -#: ../../library/logging.handlers.rst:758 msgid "LOG_MAIL" msgstr "" -#: ../../library/logging.handlers.rst:760 msgid "``news``" msgstr "" -#: ../../library/logging.handlers.rst:760 msgid "LOG_NEWS" msgstr "" -#: ../../library/logging.handlers.rst:762 msgid "``syslog``" msgstr "" -#: ../../library/logging.handlers.rst:762 msgid "LOG_SYSLOG" msgstr "" -#: ../../library/logging.handlers.rst:764 msgid "``user``" msgstr "" -#: ../../library/logging.handlers.rst:764 msgid "LOG_USER" msgstr "" -#: ../../library/logging.handlers.rst:766 msgid "``uucp``" msgstr "" -#: ../../library/logging.handlers.rst:766 msgid "LOG_UUCP" msgstr "" -#: ../../library/logging.handlers.rst:768 msgid "``local0``" msgstr "" -#: ../../library/logging.handlers.rst:768 msgid "LOG_LOCAL0" msgstr "" -#: ../../library/logging.handlers.rst:770 msgid "``local1``" msgstr "" -#: ../../library/logging.handlers.rst:770 msgid "LOG_LOCAL1" msgstr "" -#: ../../library/logging.handlers.rst:772 msgid "``local2``" msgstr "" -#: ../../library/logging.handlers.rst:772 msgid "LOG_LOCAL2" msgstr "" -#: ../../library/logging.handlers.rst:774 msgid "``local3``" msgstr "" -#: ../../library/logging.handlers.rst:774 msgid "LOG_LOCAL3" msgstr "" -#: ../../library/logging.handlers.rst:776 msgid "``local4``" msgstr "" -#: ../../library/logging.handlers.rst:776 msgid "LOG_LOCAL4" msgstr "" -#: ../../library/logging.handlers.rst:778 msgid "``local5``" msgstr "" -#: ../../library/logging.handlers.rst:778 msgid "LOG_LOCAL5" msgstr "" -#: ../../library/logging.handlers.rst:780 msgid "``local6``" msgstr "" -#: ../../library/logging.handlers.rst:780 msgid "LOG_LOCAL6" msgstr "" -#: ../../library/logging.handlers.rst:782 msgid "``local7``" msgstr "" -#: ../../library/logging.handlers.rst:782 msgid "LOG_LOCAL7" msgstr "" -#: ../../library/logging.handlers.rst:787 msgid "" "Maps a logging level name to a syslog priority name. You may need to " "override this if you are using custom levels, or if the default algorithm is " @@ -1185,11 +959,9 @@ msgid "" "all other level names to 'warning'." msgstr "" -#: ../../library/logging.handlers.rst:797 msgid "NTEventLogHandler" msgstr "" -#: ../../library/logging.handlers.rst:799 msgid "" "The :class:`NTEventLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a local Windows NT, Windows " @@ -1197,23 +969,21 @@ msgid "" "Win32 extensions for Python installed." msgstr "" -#: ../../library/logging.handlers.rst:807 msgid "" "Returns a new instance of the :class:`NTEventLogHandler` class. The " "*appname* is used to define the application name as it appears in the event " "log. An appropriate registry entry is created using this name. The *dllname* " "should give the fully qualified pathname of a .dll or .exe which contains " -"message definitions to hold in the log (if not specified, " -"``'win32service.pyd'`` is used - this is installed with the Win32 extensions " -"and contains some basic placeholder message definitions. Note that use of " -"these placeholders will make your event logs big, as the entire message " -"source is held in the log. If you want slimmer logs, you have to pass in the " -"name of your own .dll or .exe which contains the message definitions you " -"want to use in the event log). The *logtype* is one of ``'Application'``, " -"``'System'`` or ``'Security'``, and defaults to ``'Application'``." +"message definitions to hold in the log (if not specified, ``'win32service." +"pyd'`` is used - this is installed with the Win32 extensions and contains " +"some basic placeholder message definitions. Note that use of these " +"placeholders will make your event logs big, as the entire message source is " +"held in the log. If you want slimmer logs, you have to pass in the name of " +"your own .dll or .exe which contains the message definitions you want to use " +"in the event log). The *logtype* is one of ``'Application'``, ``'System'`` " +"or ``'Security'``, and defaults to ``'Application'``." msgstr "" -#: ../../library/logging.handlers.rst:823 msgid "" "At this point, you can remove the application name from the registry as a " "source of event log entries. However, if you do this, you will not be able " @@ -1222,31 +992,26 @@ msgid "" "not do this." msgstr "" -#: ../../library/logging.handlers.rst:832 msgid "" "Determines the message ID, event category and event type, and then logs the " "message in the NT event log." msgstr "" -#: ../../library/logging.handlers.rst:838 msgid "" "Returns the event category for the record. Override this if you want to " "specify your own categories. This version returns 0." msgstr "" -#: ../../library/logging.handlers.rst:844 msgid "" "Returns the event type for the record. Override this if you want to specify " "your own types. This version does a mapping using the handler's typemap " "attribute, which is set up in :meth:`__init__` to a dictionary which " -"contains mappings " -"for :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR` " -"and :const:`CRITICAL`. If you are using your own levels, you will either " -"need to override this method or place a suitable dictionary in the handler's " -"*typemap* attribute." +"contains mappings for :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :" +"const:`ERROR` and :const:`CRITICAL`. If you are using your own levels, you " +"will either need to override this method or place a suitable dictionary in " +"the handler's *typemap* attribute." msgstr "" -#: ../../library/logging.handlers.rst:855 msgid "" "Returns the message ID for the record. If you are using your own messages, " "you could do this by having the *msg* passed to the logger being an ID " @@ -1255,17 +1020,14 @@ msgid "" "message ID in :file:`win32service.pyd`." msgstr "" -#: ../../library/logging.handlers.rst:864 msgid "SMTPHandler" msgstr "" -#: ../../library/logging.handlers.rst:866 msgid "" "The :class:`SMTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to an email address via SMTP." msgstr "" -#: ../../library/logging.handlers.rst:872 msgid "" "Returns a new instance of the :class:`SMTPHandler` class. The instance is " "initialized with the from and to addresses and subject line of the email. " @@ -1276,41 +1038,34 @@ msgid "" "*credentials* argument." msgstr "" -#: ../../library/logging.handlers.rst:879 msgid "" "To specify the use of a secure protocol (TLS), pass in a tuple to the " "*secure* argument. This will only be used when authentication credentials " "are supplied. The tuple should be either an empty tuple, or a single-value " "tuple with the name of a keyfile, or a 2-value tuple with the names of the " -"keyfile and certificate file. (This tuple is passed to " -"the :meth:`smtplib.SMTP.starttls` method.)" +"keyfile and certificate file. (This tuple is passed to the :meth:`smtplib." +"SMTP.starttls` method.)" msgstr "" -#: ../../library/logging.handlers.rst:886 msgid "" "A timeout can be specified for communication with the SMTP server using the " "*timeout* argument." msgstr "" -#: ../../library/logging.handlers.rst:889 msgid "Added the *timeout* parameter." msgstr "" -#: ../../library/logging.handlers.rst:894 msgid "Formats the record and sends it to the specified addressees." msgstr "" -#: ../../library/logging.handlers.rst:899 msgid "" "If you want to specify a subject line which is record-dependent, override " "this method." msgstr "" -#: ../../library/logging.handlers.rst:905 msgid "MemoryHandler" msgstr "" -#: ../../library/logging.handlers.rst:907 msgid "" "The :class:`MemoryHandler` class, located in the :mod:`logging.handlers` " "module, supports buffering of logging records in memory, periodically " @@ -1318,41 +1073,35 @@ msgid "" "buffer is full, or when an event of a certain severity or greater is seen." msgstr "" -#: ../../library/logging.handlers.rst:912 msgid "" -":class:`MemoryHandler` is a subclass of the more " -"general :class:`BufferingHandler`, which is an abstract class. This buffers " -"logging records in memory. Whenever each record is added to the buffer, a " -"check is made by calling :meth:`shouldFlush` to see if the buffer should be " -"flushed. If it should, then :meth:`flush` is expected to do the flushing." +":class:`MemoryHandler` is a subclass of the more general :class:" +"`BufferingHandler`, which is an abstract class. This buffers logging records " +"in memory. Whenever each record is added to the buffer, a check is made by " +"calling :meth:`shouldFlush` to see if the buffer should be flushed. If it " +"should, then :meth:`flush` is expected to do the flushing." msgstr "" -#: ../../library/logging.handlers.rst:921 msgid "" "Initializes the handler with a buffer of the specified capacity. Here, " "*capacity* means the number of logging records buffered." msgstr "" -#: ../../library/logging.handlers.rst:927 msgid "" -"Append the record to the buffer. If :meth:`shouldFlush` returns true, " -"call :meth:`flush` to process the buffer." +"Append the record to the buffer. If :meth:`shouldFlush` returns true, call :" +"meth:`flush` to process the buffer." msgstr "" -#: ../../library/logging.handlers.rst:933 msgid "" "For a :class:`BufferingHandler` instance, flushing means that it sets the " "buffer to an empty list. This method can be overwritten to implement more " "useful flushing behavior." msgstr "" -#: ../../library/logging.handlers.rst:940 msgid "" "Return ``True`` if the buffer is up to capacity. This method can be " "overridden to implement custom flushing strategies." msgstr "" -#: ../../library/logging.handlers.rst:946 msgid "" "Returns a new instance of the :class:`MemoryHandler` class. The instance is " "initialized with a buffer size of *capacity* (number of records buffered). " @@ -1364,15 +1113,12 @@ msgid "" "the buffer will occur when the handler is closed." msgstr "" -#: ../../library/logging.handlers.rst:955 msgid "The *flushOnClose* parameter was added." msgstr "" -#: ../../library/logging.handlers.rst:961 msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." msgstr "" -#: ../../library/logging.handlers.rst:967 msgid "" "For a :class:`MemoryHandler` instance, flushing means just sending the " "buffered records to the target, if there is one. The buffer is also cleared " @@ -1380,60 +1126,51 @@ msgid "" "behavior." msgstr "" -#: ../../library/logging.handlers.rst:974 msgid "Sets the target handler for this handler." msgstr "" -#: ../../library/logging.handlers.rst:979 msgid "Checks for buffer full or a record at the *flushLevel* or higher." msgstr "" -#: ../../library/logging.handlers.rst:985 msgid "HTTPHandler" msgstr "" -#: ../../library/logging.handlers.rst:987 msgid "" "The :class:`HTTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a web server, using either " "``GET`` or ``POST`` semantics." msgstr "" -#: ../../library/logging.handlers.rst:994 msgid "" "Returns a new instance of the :class:`HTTPHandler` class. The *host* can be " "of the form ``host:port``, should you need to use a specific port number. " "If no *method* is specified, ``GET`` is used. If *secure* is true, a HTTPS " -"connection will be used. The *context* parameter may be set to " -"a :class:`ssl.SSLContext` instance to configure the SSL settings used for " -"the HTTPS connection. If *credentials* is specified, it should be a 2-tuple " -"consisting of userid and password, which will be placed in a HTTP " -"'Authorization' header using Basic authentication. If you specify " -"credentials, you should also specify secure=True so that your userid and " -"password are not passed in cleartext across the wire." +"connection will be used. The *context* parameter may be set to a :class:`ssl." +"SSLContext` instance to configure the SSL settings used for the HTTPS " +"connection. If *credentials* is specified, it should be a 2-tuple consisting " +"of userid and password, which will be placed in a HTTP 'Authorization' " +"header using Basic authentication. If you specify credentials, you should " +"also specify secure=True so that your userid and password are not passed in " +"cleartext across the wire." msgstr "" -#: ../../library/logging.handlers.rst:1005 msgid "The *context* parameter was added." msgstr "" -#: ../../library/logging.handlers.rst:1010 msgid "" "Provides a dictionary, based on ``record``, which is to be URL-encoded and " -"sent to the web server. The default implementation just returns " -"``record.__dict__``. This method can be overridden if e.g. only a subset " -"of :class:`~logging.LogRecord` is to be sent to the web server, or if more " -"specific customization of what's sent to the server is required." +"sent to the web server. The default implementation just returns ``record." +"__dict__``. This method can be overridden if e.g. only a subset of :class:" +"`~logging.LogRecord` is to be sent to the web server, or if more specific " +"customization of what's sent to the server is required." msgstr "" -#: ../../library/logging.handlers.rst:1018 msgid "" -"Sends the record to the web server as a URL-encoded dictionary. " -"The :meth:`mapLogRecord` method is used to convert the record to the " -"dictionary to be sent." +"Sends the record to the web server as a URL-encoded dictionary. The :meth:" +"`mapLogRecord` method is used to convert the record to the dictionary to be " +"sent." msgstr "" -#: ../../library/logging.handlers.rst:1022 msgid "" "Since preparing a record for sending it to a web server is not the same as a " "generic formatting operation, using :meth:`~logging.Handler.setFormatter` to " @@ -1443,18 +1180,15 @@ msgid "" "the dictionary in a form suitable for sending to a web server." msgstr "" -#: ../../library/logging.handlers.rst:1035 msgid "QueueHandler" msgstr "" -#: ../../library/logging.handlers.rst:1039 msgid "" "The :class:`QueueHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a queue, such as those " "implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" -#: ../../library/logging.handlers.rst:1043 msgid "" "Along with the :class:`QueueListener` class, :class:`QueueHandler` can be " "used to let handlers do their work on a separate thread from the one which " @@ -1464,7 +1198,6 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: ../../library/logging.handlers.rst:1052 msgid "" "Returns a new instance of the :class:`QueueHandler` class. The instance is " "initialized with the queue to send messages to. The *queue* can be any queue-" @@ -1474,66 +1207,55 @@ msgid "" "instances for *queue*." msgstr "" -#: ../../library/logging.handlers.rst:1059 -#: ../../library/logging.handlers.rst:1157 msgid "" -"If you are using :mod:`multiprocessing`, you should avoid " -"using :class:`~queue.SimpleQueue` and instead " -"use :class:`multiprocessing.Queue`." +"If you are using :mod:`multiprocessing`, you should avoid using :class:" +"`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`." msgstr "" -#: ../../library/logging.handlers.rst:1064 msgid "" "The :mod:`multiprocessing` module uses an internal logger created and " -"accessed " -"via :meth:`~multiprocessing.get_logger`. :class:`multiprocessing.Queue` will " -"log ``DEBUG`` level messages upon items being queued. If those log messages " -"are processed by a :class:`QueueHandler` using the " -"same :class:`multiprocessing.Queue` instance, it will cause a deadlock or " -"infinite recursion." +"accessed via :meth:`~multiprocessing.get_logger`. :class:`multiprocessing." +"Queue` will log ``DEBUG`` level messages upon items being queued. If those " +"log messages are processed by a :class:`QueueHandler` using the same :class:" +"`multiprocessing.Queue` instance, it will cause a deadlock or infinite " +"recursion." msgstr "" -#: ../../library/logging.handlers.rst:1073 msgid "" -"Enqueues the result of preparing the LogRecord. Should an exception occur " -"(e.g. because a bounded queue has filled up), " -"the :meth:`~logging.Handler.handleError` method is called to handle the " -"error. This can result in the record silently being dropped " -"(if :data:`logging.raiseExceptions` is ``False``) or a message printed to " -"``sys.stderr`` (if :data:`logging.raiseExceptions` is ``True``)." +"Enqueues the result of preparing the LogRecord. Should an exception occur (e." +"g. because a bounded queue has filled up), the :meth:`~logging.Handler." +"handleError` method is called to handle the error. This can result in the " +"record silently being dropped (if :data:`logging.raiseExceptions` is " +"``False``) or a message printed to ``sys.stderr`` (if :data:`logging." +"raiseExceptions` is ``True``)." msgstr "" -#: ../../library/logging.handlers.rst:1082 msgid "" "Prepares a record for queuing. The object returned by this method is " "enqueued." msgstr "" -#: ../../library/logging.handlers.rst:1085 msgid "" "The base implementation formats the record to merge the message, arguments, " "exception and stack information, if present. It also removes unpickleable " -"items from the record in-place. Specifically, it overwrites the " -"record's :attr:`msg` and :attr:`message` attributes with the merged message " -"(obtained by calling the handler's :meth:`format` method), and sets " -"the :attr:`args`, :attr:`exc_info` and :attr:`exc_text` attributes to " -"``None``." +"items from the record in-place. Specifically, it overwrites the record's :" +"attr:`msg` and :attr:`message` attributes with the merged message (obtained " +"by calling the handler's :meth:`format` method), and sets the :attr:`args`, :" +"attr:`exc_info` and :attr:`exc_text` attributes to ``None``." msgstr "" -#: ../../library/logging.handlers.rst:1093 msgid "" "You might want to override this method if you want to convert the record to " "a dict or JSON string, or send a modified copy of the record while leaving " "the original intact." msgstr "" -#: ../../library/logging.handlers.rst:1097 msgid "" "The base implementation formats the message with arguments, sets the " "``message`` and ``msg`` attributes to the formatted message and sets the " "``args`` and ``exc_text`` attributes to ``None`` to allow pickling and to " -"prevent further attempts at formatting. This means that a handler on " -"the :class:`QueueListener` side won't have the information to do custom " +"prevent further attempts at formatting. This means that a handler on the :" +"class:`QueueListener` side won't have the information to do custom " "formatting, e.g. of exceptions. You may wish to subclass ``QueueHandler`` " "and override this method to e.g. avoid setting ``exc_text`` to ``None``. " "Note that the ``message`` / ``msg`` / ``args`` changes are related to " @@ -1543,36 +1265,31 @@ msgid "" "libraries that you use.)" msgstr "" -#: ../../library/logging.handlers.rst:1113 msgid "" "Enqueues the record on the queue using ``put_nowait()``; you may want to " "override this if you want to use blocking behaviour, or a timeout, or a " "customized queue implementation." msgstr "" -#: ../../library/logging.handlers.rst:1119 msgid "" "When created via configuration using :func:`~logging.config.dictConfig`, " "this attribute will contain a :class:`QueueListener` instance for use with " "this handler. Otherwise, it will be ``None``." msgstr "" -#: ../../library/logging.handlers.rst:1128 msgid "QueueListener" msgstr "" -#: ../../library/logging.handlers.rst:1132 msgid "" "The :class:`QueueListener` class, located in the :mod:`logging.handlers` " "module, supports receiving logging messages from a queue, such as those " "implemented in the :mod:`queue` or :mod:`multiprocessing` modules. The " "messages are received from a queue in an internal thread and passed, on the " -"same thread, to one or more handlers for processing. " -"While :class:`QueueListener` is not itself a handler, it is documented here " -"because it works hand-in-hand with :class:`QueueHandler`." +"same thread, to one or more handlers for processing. While :class:" +"`QueueListener` is not itself a handler, it is documented here because it " +"works hand-in-hand with :class:`QueueHandler`." msgstr "" -#: ../../library/logging.handlers.rst:1140 msgid "" "Along with the :class:`QueueHandler` class, :class:`QueueListener` can be " "used to let handlers do their work on a separate thread from the one which " @@ -1582,18 +1299,16 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: ../../library/logging.handlers.rst:1149 msgid "" "Returns a new instance of the :class:`QueueListener` class. The instance is " "initialized with the queue to send messages to and a list of handlers which " "will handle entries placed on the queue. The queue can be any queue-like " "object; it's passed as-is to the :meth:`dequeue` method, which needs to know " "how to get messages from it. The queue is not *required* to have the task " -"tracking API (though it's used if available), which means that you can " -"use :class:`~queue.SimpleQueue` instances for *queue*." +"tracking API (though it's used if available), which means that you can use :" +"class:`~queue.SimpleQueue` instances for *queue*." msgstr "" -#: ../../library/logging.handlers.rst:1160 msgid "" "If ``respect_handler_level`` is ``True``, a handler's level is respected " "(compared with the level for the message) when deciding whether to pass " @@ -1601,96 +1316,77 @@ msgid "" "versions - to always pass each message to each handler." msgstr "" -#: ../../library/logging.handlers.rst:1165 msgid "The ``respect_handler_level`` argument was added." msgstr "" -#: ../../library/logging.handlers.rst:1168 msgid "" -":class:`QueueListener` can now be used as a context manager " -"via :keyword:`with`. When entering the context, the listener is started. " -"When exiting the context, the listener is " -"stopped. :meth:`~contextmanager.__enter__` returns " +":class:`QueueListener` can now be used as a context manager via :keyword:" +"`with`. When entering the context, the listener is started. When exiting the " +"context, the listener is stopped. :meth:`~contextmanager.__enter__` returns " "the :class:`QueueListener` object." msgstr "" -#: ../../library/logging.handlers.rst:1177 msgid "Dequeues a record and return it, optionally blocking." msgstr "" -#: ../../library/logging.handlers.rst:1179 msgid "" "The base implementation uses ``get()``. You may want to override this method " "if you want to use timeouts or work with custom queue implementations." msgstr "" -#: ../../library/logging.handlers.rst:1185 msgid "Prepare a record for handling." msgstr "" -#: ../../library/logging.handlers.rst:1187 msgid "" "This implementation just returns the passed-in record. You may want to " "override this method if you need to do any custom marshalling or " "manipulation of the record before passing it to the handlers." msgstr "" -#: ../../library/logging.handlers.rst:1193 msgid "Handle a record." msgstr "" -#: ../../library/logging.handlers.rst:1195 msgid "" "This just loops through the handlers offering them the record to handle. The " -"actual object passed to the handlers is that which is returned " -"from :meth:`prepare`." +"actual object passed to the handlers is that which is returned from :meth:" +"`prepare`." msgstr "" -#: ../../library/logging.handlers.rst:1201 msgid "Starts the listener." msgstr "" -#: ../../library/logging.handlers.rst:1203 msgid "" "This starts up a background thread to monitor the queue for LogRecords to " "process." msgstr "" -#: ../../library/logging.handlers.rst:1206 msgid "" "Raises :exc:`RuntimeError` if called and the listener is already running." msgstr "" -#: ../../library/logging.handlers.rst:1212 msgid "Stops the listener." msgstr "" -#: ../../library/logging.handlers.rst:1214 msgid "" "This asks the thread to terminate, and then waits for it to do so. Note that " "if you don't call this before your application exits, there may be some " "records still left on the queue, which won't be processed." msgstr "" -#: ../../library/logging.handlers.rst:1220 msgid "" "Writes a sentinel to the queue to tell the listener to quit. This " "implementation uses ``put_nowait()``. You may want to override this method " "if you want to use timeouts or work with custom queue implementations." msgstr "" -#: ../../library/logging.handlers.rst:1230 msgid "Module :mod:`logging`" msgstr "" -#: ../../library/logging.handlers.rst:1231 msgid "API reference for the logging module." msgstr "" -#: ../../library/logging.handlers.rst:1233 msgid "Module :mod:`logging.config`" msgstr "" -#: ../../library/logging.handlers.rst:1234 msgid "Configuration API for the logging module." msgstr "" diff --git a/library/logging.po b/library/logging.po index f9c5b08..4d1b38f 100644 --- a/library/logging.po +++ b/library/logging.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,39 +18,31 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/logging.rst:2 msgid ":mod:`!logging` --- Logging facility for Python" msgstr "" -#: ../../library/logging.rst:10 msgid "**Source code:** :source:`Lib/logging/__init__.py`" msgstr "" -#: ../../library/logging.rst:16 msgid "" "This page contains the API reference information. For tutorial information " "and discussion of more advanced topics, see" msgstr "" -#: ../../library/logging.rst:19 msgid ":ref:`Basic Tutorial `" msgstr "" -#: ../../library/logging.rst:20 msgid ":ref:`Advanced Tutorial `" msgstr "" -#: ../../library/logging.rst:21 msgid ":ref:`Logging Cookbook `" msgstr "" -#: ../../library/logging.rst:25 msgid "" "This module defines functions and classes which implement a flexible event " "logging system for applications and libraries." msgstr "" -#: ../../library/logging.rst:28 msgid "" "The key benefit of having the logging API provided by a standard library " "module is that all Python modules can participate in logging, so your " @@ -62,11 +50,9 @@ msgid "" "third-party modules." msgstr "" -#: ../../library/logging.rst:33 msgid "Here's a simple example of idiomatic usage: ::" msgstr "" -#: ../../library/logging.rst:35 msgid "" "# myapp.py\n" "import logging\n" @@ -83,7 +69,6 @@ msgid "" " main()" msgstr "" -#: ../../library/logging.rst:51 msgid "" "# mylib.py\n" "import logging\n" @@ -93,18 +78,15 @@ msgid "" " logger.info('Doing something')" msgstr "" -#: ../../library/logging.rst:58 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" msgstr "" -#: ../../library/logging.rst:60 msgid "" "INFO:__main__:Started\n" "INFO:mylib:Doing something\n" "INFO:__main__:Finished" msgstr "" -#: ../../library/logging.rst:66 msgid "" "The key feature of this idiomatic usage is that the majority of code is " "simply creating a module level logger with ``getLogger(__name__)``, and " @@ -115,7 +97,6 @@ msgid "" "logger; this approach is known as hierarchical logging." msgstr "" -#: ../../library/logging.rst:74 msgid "" "For logging to be useful, it needs to be configured: setting the levels and " "destinations for each logger, potentially changing how specific modules log, " @@ -126,44 +107,36 @@ msgid "" "to configure the root logger that handles many use cases." msgstr "" -#: ../../library/logging.rst:82 msgid "" "The module provides a lot of functionality and flexibility. If you are " "unfamiliar with logging, the best way to get to grips with it is to view the " "tutorials (**see the links above and on the right**)." msgstr "" -#: ../../library/logging.rst:86 msgid "" "The basic classes defined by the module, together with their attributes and " "methods, are listed in the sections below." msgstr "" -#: ../../library/logging.rst:89 msgid "Loggers expose the interface that application code directly uses." msgstr "" -#: ../../library/logging.rst:90 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" -#: ../../library/logging.rst:92 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" -#: ../../library/logging.rst:94 msgid "Formatters specify the layout of log records in the final output." msgstr "" -#: ../../library/logging.rst:100 msgid "Logger Objects" msgstr "" -#: ../../library/logging.rst:102 msgid "" "Loggers have the following attributes and methods. Note that Loggers should " "*NEVER* be instantiated directly, but always through the module-level " @@ -171,7 +144,6 @@ msgid "" "with the same name will always return a reference to the same Logger object." msgstr "" -#: ../../library/logging.rst:107 msgid "" "The ``name`` is potentially a period-separated hierarchical value, like " "``foo.bar.baz`` (though it could also be just plain ``foo``, for example). " @@ -181,42 +153,35 @@ msgid "" "are all descendants of ``foo``. In addition, all loggers are descendants of " "the root logger. The logger name hierarchy is analogous to the Python " "package hierarchy, and identical to it if you organise your loggers on a per-" -"module basis using the recommended construction " -"``logging.getLogger(__name__)``. That's because in a module, ``__name__`` " -"is the module's name in the Python package namespace." +"module basis using the recommended construction ``logging." +"getLogger(__name__)``. That's because in a module, ``__name__`` is the " +"module's name in the Python package namespace." msgstr "" -#: ../../library/logging.rst:123 msgid "" -"This is the logger's name, and is the value that was passed " -"to :func:`getLogger` to obtain the logger." +"This is the logger's name, and is the value that was passed to :func:" +"`getLogger` to obtain the logger." msgstr "" -#: ../../library/logging.rst:126 ../../library/logging.rst:186 msgid "This attribute should be treated as read-only." msgstr "" -#: ../../library/logging.rst:130 msgid "The threshold of this logger, as set by the :meth:`setLevel` method." msgstr "" -#: ../../library/logging.rst:132 msgid "" "Do not set this attribute directly - always use :meth:`setLevel`, which has " "checks for the level passed to it." msgstr "" -#: ../../library/logging.rst:137 msgid "" "The parent logger of this logger. It may change based on later instantiation " "of loggers which are higher up in the namespace hierarchy." msgstr "" -#: ../../library/logging.rst:140 msgid "This value should be treated as read-only." msgstr "" -#: ../../library/logging.rst:144 msgid "" "If this attribute evaluates to true, events logged to this logger will be " "passed to the handlers of higher level (ancestor) loggers, in addition to " @@ -225,13 +190,11 @@ msgid "" "loggers in question are considered." msgstr "" -#: ../../library/logging.rst:150 msgid "" "If this evaluates to false, logging messages are not passed to the handlers " "of ancestor loggers." msgstr "" -#: ../../library/logging.rst:153 msgid "" "Spelling it out with an example: If the propagate attribute of the logger " "named ``A.B.C`` evaluates to true, any event logged to ``A.B.C`` via a " @@ -244,11 +207,9 @@ msgid "" "handle, and propagation stops at that point." msgstr "" -#: ../../library/logging.rst:162 msgid "The constructor sets this attribute to ``True``." msgstr "" -#: ../../library/logging.rst:164 msgid "" "If you attach a handler to a logger *and* one or more of its ancestors, it " "may emit the same record multiple times. In general, you should not need to " @@ -260,24 +221,20 @@ msgid "" "rest." msgstr "" -#: ../../library/logging.rst:175 msgid "The list of handlers directly attached to this logger instance." msgstr "" -#: ../../library/logging.rst:177 msgid "" "This attribute should be treated as read-only; it is normally changed via " "the :meth:`addHandler` and :meth:`removeHandler` methods, which use locks to " "ensure thread-safe operation." msgstr "" -#: ../../library/logging.rst:183 msgid "" "This attribute disables handling of any events. It is set to ``False`` in " "the initializer, and only changed by logging configuration code." msgstr "" -#: ../../library/logging.rst:190 msgid "" "Sets the threshold for this logger to *level*. Logging messages which are " "less severe than *level* will be ignored; logging messages which have " @@ -286,7 +243,6 @@ msgid "" "severity level than *level*." msgstr "" -#: ../../library/logging.rst:195 msgid "" "When a logger is created, the level is set to :const:`NOTSET` (which causes " "all messages to be processed when the logger is the root logger, or " @@ -294,32 +250,27 @@ msgid "" "the root logger is created with level :const:`WARNING`." msgstr "" -#: ../../library/logging.rst:200 msgid "" "The term 'delegation to the parent' means that if a logger has a level of " "NOTSET, its chain of ancestor loggers is traversed until either an ancestor " "with a level other than NOTSET is found, or the root is reached." msgstr "" -#: ../../library/logging.rst:204 msgid "" "If an ancestor is found with a level other than NOTSET, then that ancestor's " "level is treated as the effective level of the logger where the ancestor " "search began, and is used to determine how a logging event is handled." msgstr "" -#: ../../library/logging.rst:208 msgid "" "If the root is reached, and it has a level of NOTSET, then all messages will " "be processed. Otherwise, the root's level will be used as the effective " "level." msgstr "" -#: ../../library/logging.rst:211 ../../library/logging.rst:555 msgid "See :ref:`levels` for a list of levels." msgstr "" -#: ../../library/logging.rst:213 msgid "" "The *level* parameter now accepts a string representation of the level such " "as 'INFO' as an alternative to the integer constants such as :const:`INFO`. " @@ -328,35 +279,29 @@ msgid "" "expect to be passed integers." msgstr "" -#: ../../library/logging.rst:223 msgid "" "Indicates if a message of severity *level* would be processed by this " -"logger. This method checks first the module-level level set by " -"``logging.disable(level)`` and then the logger's effective level as " -"determined by :meth:`getEffectiveLevel`." +"logger. This method checks first the module-level level set by ``logging." +"disable(level)`` and then the logger's effective level as determined by :" +"meth:`getEffectiveLevel`." msgstr "" -#: ../../library/logging.rst:231 msgid "" -"Indicates the effective level for this logger. If a value other " -"than :const:`NOTSET` has been set using :meth:`setLevel`, it is returned. " -"Otherwise, the hierarchy is traversed towards the root until a value other " -"than :const:`NOTSET` is found, and that value is returned. The value " -"returned is an integer, typically one " -"of :const:`logging.DEBUG`, :const:`logging.INFO` etc." +"Indicates the effective level for this logger. If a value other than :const:" +"`NOTSET` has been set using :meth:`setLevel`, it is returned. Otherwise, the " +"hierarchy is traversed towards the root until a value other than :const:" +"`NOTSET` is found, and that value is returned. The value returned is an " +"integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc." msgstr "" -#: ../../library/logging.rst:241 msgid "" "Returns a logger which is a descendant to this logger, as determined by the " "suffix. Thus, ``logging.getLogger('abc').getChild('def.ghi')`` would return " -"the same logger as would be returned by " -"``logging.getLogger('abc.def.ghi')``. This is a convenience method, useful " -"when the parent logger is named using e.g. ``__name__`` rather than a " -"literal string." +"the same logger as would be returned by ``logging.getLogger('abc.def." +"ghi')``. This is a convenience method, useful when the parent logger is " +"named using e.g. ``__name__`` rather than a literal string." msgstr "" -#: ../../library/logging.rst:252 msgid "" "Returns a set of loggers which are immediate children of this logger. So for " "example ``logging.getLogger().getChildren()`` might return a set containing " @@ -366,7 +311,6 @@ msgid "" "include one named ``foo.bar.baz``." msgstr "" -#: ../../library/logging.rst:264 msgid "" "Logs a message with level :const:`DEBUG` on this logger. The *msg* is the " "message format string, and the *args* are the arguments which are merged " @@ -376,13 +320,11 @@ msgid "" "are supplied." msgstr "" -#: ../../library/logging.rst:270 msgid "" "There are four keyword arguments in *kwargs* which are inspected: " "*exc_info*, *stack_info*, *stacklevel* and *extra*." msgstr "" -#: ../../library/logging.rst:273 msgid "" "If *exc_info* does not evaluate as false, it causes exception information to " "be added to the logging message. If an exception tuple (in the format " @@ -391,7 +333,6 @@ msgid "" "information." msgstr "" -#: ../../library/logging.rst:278 msgid "" "The second optional keyword argument is *stack_info*, which defaults to " "``False``. If true, stack information is added to the logging message, " @@ -403,45 +344,39 @@ msgid "" "handlers." msgstr "" -#: ../../library/logging.rst:287 msgid "" "You can specify *stack_info* independently of *exc_info*, e.g. to just show " "how you got to a certain point in your code, even when no exceptions were " "raised. The stack frames are printed following a header line which says:" msgstr "" -#: ../../library/logging.rst:291 msgid "Stack (most recent call last):" msgstr "" -#: ../../library/logging.rst:295 msgid "" "This mimics the ``Traceback (most recent call last):`` which is used when " "displaying exception frames." msgstr "" -#: ../../library/logging.rst:298 msgid "" "The third optional keyword argument is *stacklevel*, which defaults to " "``1``. If greater than 1, the corresponding number of stack frames are " -"skipped when computing the line number and function name set in " -"the :class:`LogRecord` created for the logging event. This can be used in " -"logging helpers so that the function name, filename and line number recorded " -"are not the information for the helper function/method, but rather its " -"caller. The name of this parameter mirrors the equivalent one in " -"the :mod:`warnings` module." +"skipped when computing the line number and function name set in the :class:" +"`LogRecord` created for the logging event. This can be used in logging " +"helpers so that the function name, filename and line number recorded are not " +"the information for the helper function/method, but rather its caller. The " +"name of this parameter mirrors the equivalent one in the :mod:`warnings` " +"module." msgstr "" -#: ../../library/logging.rst:306 msgid "" "The fourth keyword argument is *extra* which can be used to pass a " -"dictionary which is used to populate the :attr:`~object.__dict__` of " -"the :class:`LogRecord` created for the logging event with user-defined " +"dictionary which is used to populate the :attr:`~object.__dict__` of the :" +"class:`LogRecord` created for the logging event with user-defined " "attributes. These custom attributes can then be used as you like. For " "example, they could be incorporated into logged messages. For example::" msgstr "" -#: ../../library/logging.rst:313 msgid "" "FORMAT = '%(asctime)s %(clientip)-15s %(user)-8s %(message)s'\n" "logging.basicConfig(format=FORMAT)\n" @@ -450,35 +385,30 @@ msgid "" "logger.warning('Protocol problem: %s', 'connection reset', extra=d)" msgstr "" -#: ../../library/logging.rst:319 msgid "would print something like" msgstr "" -#: ../../library/logging.rst:321 msgid "" "2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection " "reset" msgstr "" -#: ../../library/logging.rst:325 msgid "" "The keys in the dictionary passed in *extra* should not clash with the keys " "used by the logging system. (See the section on :ref:`logrecord-attributes` " "for more information on which keys are used by the logging system.)" msgstr "" -#: ../../library/logging.rst:329 msgid "" "If you choose to use these attributes in logged messages, you need to " -"exercise some care. In the above example, for instance, " -"the :class:`Formatter` has been set up with a format string which expects " -"'clientip' and 'user' in the attribute dictionary of the :class:`LogRecord`. " -"If these are missing, the message will not be logged because a string " -"formatting exception will occur. So in this case, you always need to pass " -"the *extra* dictionary with these keys." +"exercise some care. In the above example, for instance, the :class:" +"`Formatter` has been set up with a format string which expects 'clientip' " +"and 'user' in the attribute dictionary of the :class:`LogRecord`. If these " +"are missing, the message will not be logged because a string formatting " +"exception will occur. So in this case, you always need to pass the *extra* " +"dictionary with these keys." msgstr "" -#: ../../library/logging.rst:336 msgid "" "While this might be annoying, this feature is intended for use in " "specialized circumstances, such as multi-threaded servers where the same " @@ -489,78 +419,64 @@ msgid "" "particular :class:`Handler`\\ s." msgstr "" -#: ../../library/logging.rst:343 msgid "" "If no handler is attached to this logger (or any of its ancestors, taking " "into account the relevant :attr:`Logger.propagate` attributes), the message " "will be sent to the handler set on :data:`lastResort`." msgstr "" -#: ../../library/logging.rst:347 msgid "The *stack_info* parameter was added." msgstr "" -#: ../../library/logging.rst:350 msgid "The *exc_info* parameter can now accept exception instances." msgstr "" -#: ../../library/logging.rst:353 msgid "The *stacklevel* parameter was added." msgstr "" -#: ../../library/logging.rst:359 msgid "" "Logs a message with level :const:`INFO` on this logger. The arguments are " "interpreted as for :meth:`debug`." msgstr "" -#: ../../library/logging.rst:365 msgid "" "Logs a message with level :const:`WARNING` on this logger. The arguments are " "interpreted as for :meth:`debug`." msgstr "" -#: ../../library/logging.rst:368 msgid "" "There is an obsolete method ``warn`` which is functionally identical to " "``warning``. As ``warn`` is deprecated, please do not use it - use " "``warning`` instead." msgstr "" -#: ../../library/logging.rst:374 msgid "" "Logs a message with level :const:`ERROR` on this logger. The arguments are " "interpreted as for :meth:`debug`." msgstr "" -#: ../../library/logging.rst:380 msgid "" "Logs a message with level :const:`CRITICAL` on this logger. The arguments " "are interpreted as for :meth:`debug`." msgstr "" -#: ../../library/logging.rst:386 msgid "" "Logs a message with integer level *level* on this logger. The other " "arguments are interpreted as for :meth:`debug`." msgstr "" -#: ../../library/logging.rst:392 msgid "" "Logs a message with level :const:`ERROR` on this logger. The arguments are " "interpreted as for :meth:`debug`. Exception info is added to the logging " "message. This method should only be called from an exception handler." msgstr "" -#: ../../library/logging.rst:399 msgid "Adds the specified filter *filter* to this logger." msgstr "" -#: ../../library/logging.rst:404 msgid "Removes the specified filter *filter* from this logger." msgstr "" -#: ../../library/logging.rst:409 msgid "" "Apply this logger's filters to the record and return ``True`` if the record " "is to be processed. The filters are consulted in turn, until one of them " @@ -569,22 +485,18 @@ msgid "" "processing of the record occurs." msgstr "" -#: ../../library/logging.rst:418 msgid "Adds the specified handler *hdlr* to this logger." msgstr "" -#: ../../library/logging.rst:423 msgid "Removes the specified handler *hdlr* from this logger." msgstr "" -#: ../../library/logging.rst:428 msgid "" "Finds the caller's source filename and line number. Returns the filename, " "line number, function name and stack information as a 4-element tuple. The " "stack information is returned as ``None`` unless *stack_info* is ``True``." msgstr "" -#: ../../library/logging.rst:432 msgid "" "The *stacklevel* parameter is passed from code calling the :meth:`debug` and " "other APIs. If greater than 1, the excess is used to skip stack frames " @@ -594,22 +506,19 @@ msgid "" "calls it." msgstr "" -#: ../../library/logging.rst:442 msgid "" "Handles a record by passing it to all handlers associated with this logger " "and its ancestors (until a false value of *propagate* is found). This method " "is used for unpickled records received from a socket, as well as those " -"created locally. Logger-level filtering is applied " -"using :meth:`~Logger.filter`." +"created locally. Logger-level filtering is applied using :meth:`~Logger." +"filter`." msgstr "" -#: ../../library/logging.rst:450 msgid "" "This is a factory method which can be overridden in subclasses to create " "specialized :class:`LogRecord` instances." msgstr "" -#: ../../library/logging.rst:455 msgid "" "Checks to see if this logger has any handlers configured. This is done by " "looking for handlers in this logger and its parents in the logger hierarchy. " @@ -619,15 +528,12 @@ msgid "" "the existence of handlers." msgstr "" -#: ../../library/logging.rst:464 msgid "Loggers can now be pickled and unpickled." msgstr "" -#: ../../library/logging.rst:470 msgid "Logging Levels" msgstr "" -#: ../../library/logging.rst:472 msgid "" "The numeric values of logging levels are given in the following table. These " "are primarily of interest if you want to define your own levels, and need " @@ -636,139 +542,112 @@ msgid "" "value; the predefined name is lost." msgstr "" -#: ../../library/logging.rst:479 msgid "Level" msgstr "" -#: ../../library/logging.rst:479 msgid "Numeric value" msgstr "" -#: ../../library/logging.rst:479 msgid "What it means / When to use it" msgstr "" -#: ../../library/logging.rst:481 msgid "0" msgstr "" -#: ../../library/logging.rst:481 msgid "" "When set on a logger, indicates that ancestor loggers are to be consulted to " "determine the effective level. If that still resolves to :const:`!NOTSET`, " "then all events are logged. When set on a handler, all events are handled." msgstr "" -#: ../../library/logging.rst:489 msgid "10" msgstr "" -#: ../../library/logging.rst:489 msgid "" "Detailed information, typically only of interest to a developer trying to " "diagnose a problem." msgstr "" -#: ../../library/logging.rst:493 msgid "20" msgstr "" -#: ../../library/logging.rst:493 msgid "Confirmation that things are working as expected." msgstr "" -#: ../../library/logging.rst:496 msgid "30" msgstr "" -#: ../../library/logging.rst:496 msgid "" "An indication that something unexpected happened, or that a problem might " "occur in the near future (e.g. 'disk space low'). The software is still " "working as expected." msgstr "" -#: ../../library/logging.rst:503 msgid "40" msgstr "" -#: ../../library/logging.rst:503 msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." msgstr "" -#: ../../library/logging.rst:507 msgid "50" msgstr "" -#: ../../library/logging.rst:507 msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." msgstr "" -#: ../../library/logging.rst:516 msgid "Handler Objects" msgstr "" -#: ../../library/logging.rst:518 msgid "" -"Handlers have the following attributes and methods. Note " -"that :class:`Handler` is never instantiated directly; this class acts as a " -"base for more useful subclasses. However, the :meth:`!__init__` method in " -"subclasses needs to call :meth:`Handler.__init__`." +"Handlers have the following attributes and methods. Note that :class:" +"`Handler` is never instantiated directly; this class acts as a base for more " +"useful subclasses. However, the :meth:`!__init__` method in subclasses needs " +"to call :meth:`Handler.__init__`." msgstr "" -#: ../../library/logging.rst:527 msgid "" "Initializes the :class:`Handler` instance by setting its level, setting the " -"list of filters to the empty list and creating a lock " -"(using :meth:`createLock`) for serializing access to an I/O mechanism." +"list of filters to the empty list and creating a lock (using :meth:" +"`createLock`) for serializing access to an I/O mechanism." msgstr "" -#: ../../library/logging.rst:534 msgid "" "Initializes a thread lock which can be used to serialize access to " "underlying I/O functionality which may not be threadsafe." msgstr "" -#: ../../library/logging.rst:540 msgid "Acquires the thread lock created with :meth:`createLock`." msgstr "" -#: ../../library/logging.rst:545 msgid "Releases the thread lock acquired with :meth:`acquire`." msgstr "" -#: ../../library/logging.rst:550 msgid "" "Sets the threshold for this handler to *level*. Logging messages which are " "less severe than *level* will be ignored. When a handler is created, the " "level is set to :const:`NOTSET` (which causes all messages to be processed)." msgstr "" -#: ../../library/logging.rst:557 msgid "" "The *level* parameter now accepts a string representation of the level such " "as 'INFO' as an alternative to the integer constants such as :const:`INFO`." msgstr "" -#: ../../library/logging.rst:565 msgid "" -"Sets the formatter for this handler to *fmt*. The *fmt* argument must be " -"a :class:`Formatter` instance or ``None``." +"Sets the formatter for this handler to *fmt*. The *fmt* argument must be a :" +"class:`Formatter` instance or ``None``." msgstr "" -#: ../../library/logging.rst:571 msgid "Adds the specified filter *filter* to this handler." msgstr "" -#: ../../library/logging.rst:576 msgid "Removes the specified filter *filter* from this handler." msgstr "" -#: ../../library/logging.rst:581 msgid "" "Apply this handler's filters to the record and return ``True`` if the record " "is to be processed. The filters are consulted in turn, until one of them " @@ -777,60 +656,51 @@ msgid "" "record." msgstr "" -#: ../../library/logging.rst:590 msgid "" "Ensure all logging output has been flushed. This version does nothing and is " "intended to be implemented by subclasses." msgstr "" -#: ../../library/logging.rst:596 msgid "" "Tidy up any resources used by the handler. This version does no output but " "removes the handler from an internal map of handlers, which is used for " "handler lookup by name." msgstr "" -#: ../../library/logging.rst:600 msgid "" "Subclasses should ensure that this gets called from overridden :meth:`close` " "methods." msgstr "" -#: ../../library/logging.rst:606 msgid "" "Conditionally emits the specified logging record, depending on filters which " "may have been added to the handler. Wraps the actual emission of the record " "with acquisition/release of the I/O thread lock." msgstr "" -#: ../../library/logging.rst:613 msgid "" "This method should be called from handlers when an exception is encountered " -"during an :meth:`emit` call. If the module-level " -"attribute :data:`raiseExceptions` is ``False``, exceptions get silently " -"ignored. This is what is mostly wanted for a logging system - most users " -"will not care about errors in the logging system, they are more interested " -"in application errors. You could, however, replace this with a custom " -"handler if you wish. The specified record is the one which was being " -"processed when the exception occurred. (The default value " -"of :data:`raiseExceptions` is ``True``, as that is more useful during " -"development)." +"during an :meth:`emit` call. If the module-level attribute :data:" +"`raiseExceptions` is ``False``, exceptions get silently ignored. This is " +"what is mostly wanted for a logging system - most users will not care about " +"errors in the logging system, they are more interested in application " +"errors. You could, however, replace this with a custom handler if you wish. " +"The specified record is the one which was being processed when the exception " +"occurred. (The default value of :data:`raiseExceptions` is ``True``, as that " +"is more useful during development)." msgstr "" -#: ../../library/logging.rst:626 msgid "" "Do formatting for a record - if a formatter is set, use it. Otherwise, use " "the default formatter for the module." msgstr "" -#: ../../library/logging.rst:632 msgid "" "Do whatever it takes to actually log the specified logging record. This " -"version is intended to be implemented by subclasses and so raises " -"a :exc:`NotImplementedError`." +"version is intended to be implemented by subclasses and so raises a :exc:" +"`NotImplementedError`." msgstr "" -#: ../../library/logging.rst:636 msgid "" "This method is called after a handler-level lock is acquired, which is " "released after this method returns. When you override this method, note that " @@ -839,13 +709,11 @@ msgid "" "Specifically:" msgstr "" -#: ../../library/logging.rst:642 msgid "" "Logging configuration APIs acquire the module-level lock, and then " "individual handler-level locks as those handlers are configured." msgstr "" -#: ../../library/logging.rst:645 msgid "" "Many logging APIs lock the module-level lock. If such an API is called from " "this method, it could cause a deadlock if a configuration call is made on " @@ -855,41 +723,34 @@ msgid "" "method, the handler-level lock has already been acquired)." msgstr "" -#: ../../library/logging.rst:652 msgid "" "For a list of handlers included as standard, see :mod:`logging.handlers`." msgstr "" -#: ../../library/logging.rst:657 msgid "Formatter Objects" msgstr "" -#: ../../library/logging.rst:663 msgid "" "Responsible for converting a :class:`LogRecord` to an output string to be " "interpreted by a human or external system." msgstr "" -#: ../../library/logging.rst:0 msgid "Parameters" msgstr "" -#: ../../library/logging.rst:666 msgid "" "A format string in the given *style* for the logged output as a whole. The " -"possible mapping keys are drawn from the :class:`LogRecord` " -"object's :ref:`logrecord-attributes`. If not specified, ``'%(message)s'`` is " -"used, which is just the logged message." +"possible mapping keys are drawn from the :class:`LogRecord` object's :ref:" +"`logrecord-attributes`. If not specified, ``'%(message)s'`` is used, which " +"is just the logged message." msgstr "" -#: ../../library/logging.rst:674 msgid "" "A format string in the given *style* for the date/time portion of the logged " "output. If not specified, the default described in :meth:`formatTime` is " "used." msgstr "" -#: ../../library/logging.rst:679 msgid "" "Can be one of ``'%'``, ``'{'`` or ``'$'`` and determines how the format " "string will be merged with its data: using one of :ref:`old-string-" @@ -900,43 +761,37 @@ msgid "" "use ``{``- and ``$``-formatting for log messages." msgstr "" -#: ../../library/logging.rst:689 msgid "" "If ``True`` (the default), incorrect or mismatched *fmt* and *style* will " -"raise a :exc:`ValueError`; for example, ``logging.Formatter('%(asctime)s - %" -"(message)s', style='{')``." +"raise a :exc:`ValueError`; for example, ``logging.Formatter('%(asctime)s - " +"%(message)s', style='{')``." msgstr "" -#: ../../library/logging.rst:694 msgid "" "A dictionary with default values to use in custom fields. For example, " "``logging.Formatter('%(ip)s %(message)s', defaults={\"ip\": None})``" msgstr "" -#: ../../library/logging.rst:699 msgid "Added the *style* parameter." msgstr "" -#: ../../library/logging.rst:702 msgid "Added the *validate* parameter." msgstr "" -#: ../../library/logging.rst:705 msgid "Added the *defaults* parameter." msgstr "" -#: ../../library/logging.rst:711 msgid "" "The record's attribute dictionary is used as the operand to a string " "formatting operation. Returns the resulting string. Before formatting the " "dictionary, a couple of preparatory steps are carried out. The *message* " "attribute of the record is computed using *msg* % *args*. If the formatting " "string contains ``'(asctime)'``, :meth:`formatTime` is called to format the " -"event time. If there is exception information, it is formatted " -"using :meth:`formatException` and appended to the message. Note that the " -"formatted exception information is cached in attribute *exc_text*. This is " -"useful because the exception information can be pickled and sent across the " -"wire, but you should be careful if you have more than one :class:`Formatter` " +"event time. If there is exception information, it is formatted using :meth:" +"`formatException` and appended to the message. Note that the formatted " +"exception information is cached in attribute *exc_text*. This is useful " +"because the exception information can be pickled and sent across the wire, " +"but you should be careful if you have more than one :class:`Formatter` " "subclass which customizes the formatting of exception information. In this " "case, you will have to clear the cached value (by setting the *exc_text* " "attribute to ``None``) after a formatter has done its formatting, so that " @@ -944,26 +799,23 @@ msgid "" "recalculates it afresh." msgstr "" -#: ../../library/logging.rst:727 msgid "" "If stack information is available, it's appended after the exception " "information, using :meth:`formatStack` to transform it if necessary." msgstr "" -#: ../../library/logging.rst:733 msgid "" "This method should be called from :meth:`format` by a formatter which wants " "to make use of a formatted time. This method can be overridden in formatters " "to provide for any specific requirement, but the basic behavior is as " -"follows: if *datefmt* (a string) is specified, it is used " -"with :func:`time.strftime` to format the creation time of the record. " -"Otherwise, the format '%Y-%m-%d %H:%M:%S,uuu' is used, where the uuu part is " -"a millisecond value and the other letters are as per " -"the :func:`time.strftime` documentation. An example time in this format is " -"``2003-01-23 00:29:50,411``. The resulting string is returned." +"follows: if *datefmt* (a string) is specified, it is used with :func:`time." +"strftime` to format the creation time of the record. Otherwise, the format " +"'%Y-%m-%d %H:%M:%S,uuu' is used, where the uuu part is a millisecond value " +"and the other letters are as per the :func:`time.strftime` documentation. " +"An example time in this format is ``2003-01-23 00:29:50,411``. The " +"resulting string is returned." msgstr "" -#: ../../library/logging.rst:743 msgid "" "This function uses a user-configurable function to convert the creation time " "to a tuple. By default, :func:`time.localtime` is used; to change this for a " @@ -973,7 +825,6 @@ msgid "" "be shown in GMT, set the ``converter`` attribute in the ``Formatter`` class." msgstr "" -#: ../../library/logging.rst:751 msgid "" "Previously, the default format was hard-coded as in this example: " "``2010-09-06 22:38:15,292`` where the part before the comma is handled by a " @@ -988,11 +839,9 @@ msgid "" "the millisecond value)." msgstr "" -#: ../../library/logging.rst:764 msgid "The ``default_msec_format`` can be ``None``." msgstr "" -#: ../../library/logging.rst:769 msgid "" "Formats the specified exception information (a standard exception tuple as " "returned by :func:`sys.exc_info`) as a string. This default implementation " @@ -1000,14 +849,12 @@ msgid "" "returned." msgstr "" -#: ../../library/logging.rst:776 msgid "" -"Formats the specified stack information (a string as returned " -"by :func:`traceback.print_stack`, but with the last newline removed) as a " -"string. This default implementation just returns the input value." +"Formats the specified stack information (a string as returned by :func:" +"`traceback.print_stack`, but with the last newline removed) as a string. " +"This default implementation just returns the input value." msgstr "" -#: ../../library/logging.rst:782 msgid "" "A base formatter class suitable for subclassing when you want to format a " "number of records. You can pass a :class:`Formatter` instance which you want " @@ -1016,7 +863,6 @@ msgid "" "used as the line formatter." msgstr "" -#: ../../library/logging.rst:790 msgid "" "Return a header for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " @@ -1024,14 +870,12 @@ msgid "" "separator line." msgstr "" -#: ../../library/logging.rst:797 msgid "" "Return a footer for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " "specific behaviour, e.g. to show the count of records or a separator line." msgstr "" -#: ../../library/logging.rst:804 msgid "" "Return formatted text for a list of *records*. The base implementation just " "returns the empty string if there are no records; otherwise, it returns the " @@ -1039,11 +883,9 @@ msgid "" "and the footer." msgstr "" -#: ../../library/logging.rst:812 msgid "Filter Objects" msgstr "" -#: ../../library/logging.rst:814 msgid "" "``Filters`` can be used by ``Handlers`` and ``Loggers`` for more " "sophisticated filtering than is provided by levels. The base filter class " @@ -1053,7 +895,6 @@ msgid "" "If initialized with the empty string, all events are passed." msgstr "" -#: ../../library/logging.rst:824 msgid "" "Returns an instance of the :class:`Filter` class. If *name* is specified, it " "names a logger which, together with its children, will have its events " @@ -1061,7 +902,6 @@ msgid "" "event." msgstr "" -#: ../../library/logging.rst:831 msgid "" "Is the specified record to be logged? Returns false for no, true for yes. " "Filters can either modify log records in-place or return a completely " @@ -1069,7 +909,6 @@ msgid "" "future processing of the event." msgstr "" -#: ../../library/logging.rst:836 msgid "" "Note that filters attached to handlers are consulted before an event is " "emitted by the handler, whereas filters attached to loggers are consulted " @@ -1079,24 +918,21 @@ msgid "" "setting, unless the filter has also been applied to those descendant loggers." msgstr "" -#: ../../library/logging.rst:843 msgid "" "You don't actually need to subclass ``Filter``: you can pass any instance " "which has a ``filter`` method with the same semantics." msgstr "" -#: ../../library/logging.rst:846 msgid "" "You don't need to create specialized ``Filter`` classes, or use other " "classes with a ``filter`` method: you can use a function (or other callable) " "as a filter. The filtering logic will check to see if the filter object has " -"a ``filter`` attribute: if it does, it's assumed to be a ``Filter`` and " -"its :meth:`~Filter.filter` method is called. Otherwise, it's assumed to be a " +"a ``filter`` attribute: if it does, it's assumed to be a ``Filter`` and its :" +"meth:`~Filter.filter` method is called. Otherwise, it's assumed to be a " "callable and called with the record as the single parameter. The returned " "value should conform to that returned by :meth:`~Filter.filter`." msgstr "" -#: ../../library/logging.rst:856 msgid "" "You can now return a :class:`LogRecord` instance from filters to replace the " "log record rather than modifying it in place. This allows filters attached " @@ -1104,7 +940,6 @@ msgid "" "having side effects on other handlers." msgstr "" -#: ../../library/logging.rst:862 msgid "" "Although filters are used primarily to filter records based on more " "sophisticated criteria than levels, they get to see every record which is " @@ -1116,29 +951,24 @@ msgid "" "contextual information into logs (see :ref:`filters-contextual`)." msgstr "" -#: ../../library/logging.rst:875 msgid "LogRecord Objects" msgstr "" -#: ../../library/logging.rst:877 msgid "" -":class:`LogRecord` instances are created automatically by " -"the :class:`Logger` every time something is logged, and can be created " -"manually via :func:`makeLogRecord` (for example, from a pickled event " -"received over the wire)." +":class:`LogRecord` instances are created automatically by the :class:" +"`Logger` every time something is logged, and can be created manually via :" +"func:`makeLogRecord` (for example, from a pickled event received over the " +"wire)." msgstr "" -#: ../../library/logging.rst:885 msgid "Contains all the information pertinent to the event being logged." msgstr "" -#: ../../library/logging.rst:887 msgid "" "The primary information is passed in *msg* and *args*, which are combined " "using ``msg % args`` to create the :attr:`!message` attribute of the record." msgstr "" -#: ../../library/logging.rst:891 msgid "" "The name of the logger used to log the event represented by this :class:`!" "LogRecord`. Note that the logger name in the :class:`!LogRecord` will always " @@ -1146,55 +976,45 @@ msgid "" "different (ancestor) logger." msgstr "" -#: ../../library/logging.rst:899 msgid "" "The :ref:`numeric level ` of the logging event (such as ``10`` for " "``DEBUG``, ``20`` for ``INFO``, etc). Note that this is converted to *two* " -"attributes of the LogRecord: :attr:`!levelno` for the numeric value " -"and :attr:`!levelname` for the corresponding level name." +"attributes of the LogRecord: :attr:`!levelno` for the numeric value and :" +"attr:`!levelname` for the corresponding level name." msgstr "" -#: ../../library/logging.rst:906 msgid "" "The full string path of the source file where the logging call was made." msgstr "" -#: ../../library/logging.rst:910 msgid "The line number in the source file where the logging call was made." msgstr "" -#: ../../library/logging.rst:914 msgid "" "The event description message, which can be a %-format string with " "placeholders for variable data, or an arbitrary object (see :ref:`arbitrary-" "object-messages`)." msgstr "" -#: ../../library/logging.rst:919 msgid "" "Variable data to merge into the *msg* argument to obtain the event " "description." msgstr "" -#: ../../library/logging.rst:923 msgid "" -"An exception tuple with the current exception information, as returned " -"by :func:`sys.exc_info`, or ``None`` if no exception information is " -"available." +"An exception tuple with the current exception information, as returned by :" +"func:`sys.exc_info`, or ``None`` if no exception information is available." msgstr "" -#: ../../library/logging.rst:928 msgid "" "The name of the function or method from which the logging call was invoked." msgstr "" -#: ../../library/logging.rst:932 msgid "" "A text string representing stack information from the base of the stack in " "the current thread, up to the logging call." msgstr "" -#: ../../library/logging.rst:939 msgid "" "Returns the message for this :class:`LogRecord` instance after merging any " "user-supplied arguments with the message. If the user-supplied message " @@ -1203,7 +1023,6 @@ msgid "" "whose ``__str__`` method can return the actual format string to be used." msgstr "" -#: ../../library/logging.rst:946 msgid "" "The creation of a :class:`LogRecord` has been made more configurable by " "providing a factory which is used to create the record. The factory can be " @@ -1211,13 +1030,11 @@ msgid "" "this for the factory's signature)." msgstr "" -#: ../../library/logging.rst:952 msgid "" -"This functionality can be used to inject your own values into " -"a :class:`LogRecord` at creation time. You can use the following pattern::" +"This functionality can be used to inject your own values into a :class:" +"`LogRecord` at creation time. You can use the following pattern::" msgstr "" -#: ../../library/logging.rst:955 msgid "" "old_factory = logging.getLogRecordFactory()\n" "\n" @@ -1229,18 +1046,15 @@ msgid "" "logging.setLogRecordFactory(record_factory)" msgstr "" -#: ../../library/logging.rst:964 msgid "" "With this pattern, multiple factories could be chained, and as long as they " "don't overwrite each other's attributes or unintentionally overwrite the " "standard attributes listed above, there should be no surprises." msgstr "" -#: ../../library/logging.rst:973 msgid "LogRecord attributes" msgstr "" -#: ../../library/logging.rst:975 msgid "" "The LogRecord has a number of attributes, most of which are derived from the " "parameters to the constructor. (Note that the names do not always correspond " @@ -1251,15 +1065,13 @@ msgid "" "style format string." msgstr "" -#: ../../library/logging.rst:983 msgid "" "If you are using {}-formatting (:func:`str.format`), you can use ``{attrname}" -"`` as the placeholder in the format string. If you are using $-formatting " -"(:class:`string.Template`), use the form ``${attrname}``. In both cases, of " +"`` as the placeholder in the format string. If you are using $-formatting (:" +"class:`string.Template`), use the form ``${attrname}``. In both cases, of " "course, replace ``attrname`` with the actual attribute name you want to use." msgstr "" -#: ../../library/logging.rst:989 msgid "" "In the case of {}-formatting, you can specify formatting flags by placing " "them after the attribute name, separated from it with a colon. For example: " @@ -1268,319 +1080,246 @@ msgid "" "on the options available to you." msgstr "" -#: ../../library/logging.rst:996 msgid "Attribute name" msgstr "" -#: ../../library/logging.rst:996 ../../library/logging.rst:1366 msgid "Format" msgstr "" -#: ../../library/logging.rst:996 ../../library/logging.rst:1366 msgid "Description" msgstr "" -#: ../../library/logging.rst:0 ../../library/logging.rst:998 msgid "args" msgstr "" -#: ../../library/logging.rst:998 ../../library/logging.rst:1012 -#: ../../library/logging.rst:1040 ../../library/logging.rst:1058 msgid "You shouldn't need to format this yourself." msgstr "" -#: ../../library/logging.rst:998 msgid "" "The tuple of arguments merged into ``msg`` to produce ``message``, or a dict " "whose values are used for the merge (when there is only one argument, and it " "is a dictionary)." msgstr "" -#: ../../library/logging.rst:1003 msgid "asctime" msgstr "" -#: ../../library/logging.rst:1003 msgid "``%(asctime)s``" -msgstr "``%(asctime)s``" +msgstr "" -#: ../../library/logging.rst:1003 msgid "" "Human-readable time when the :class:`LogRecord` was created. By default " "this is of the form '2003-07-08 16:49:45,896' (the numbers after the comma " "are millisecond portion of the time)." msgstr "" -#: ../../library/logging.rst:1009 msgid "created" msgstr "" -#: ../../library/logging.rst:1009 msgid "``%(created)f``" -msgstr "``%(created)f``" +msgstr "" -#: ../../library/logging.rst:1009 msgid "" -"Time when the :class:`LogRecord` was created (as returned " -"by :func:`time.time_ns` / 1e9)." +"Time when the :class:`LogRecord` was created (as returned by :func:`time." +"time_ns` / 1e9)." msgstr "" -#: ../../library/logging.rst:0 ../../library/logging.rst:1012 msgid "exc_info" msgstr "" -#: ../../library/logging.rst:1012 msgid "" "Exception tuple (à la ``sys.exc_info``) or, if no exception has occurred, " "``None``." msgstr "" -#: ../../library/logging.rst:1015 msgid "filename" msgstr "" -#: ../../library/logging.rst:1015 msgid "``%(filename)s``" -msgstr "``%(filename)s``" +msgstr "" -#: ../../library/logging.rst:1015 msgid "Filename portion of ``pathname``." msgstr "" -#: ../../library/logging.rst:1017 msgid "funcName" msgstr "" -#: ../../library/logging.rst:1017 msgid "``%(funcName)s``" -msgstr "``%(funcName)s``" +msgstr "" -#: ../../library/logging.rst:1017 msgid "Name of function containing the logging call." msgstr "" -#: ../../library/logging.rst:1019 msgid "levelname" msgstr "" -#: ../../library/logging.rst:1019 msgid "``%(levelname)s``" -msgstr "``%(levelname)s``" +msgstr "" -#: ../../library/logging.rst:1019 msgid "" "Text logging level for the message (``'DEBUG'``, ``'INFO'``, ``'WARNING'``, " "``'ERROR'``, ``'CRITICAL'``)." msgstr "" -#: ../../library/logging.rst:1023 msgid "levelno" msgstr "" -#: ../../library/logging.rst:1023 msgid "``%(levelno)s``" -msgstr "``%(levelno)s``" +msgstr "" -#: ../../library/logging.rst:1023 msgid "" -"Numeric logging level for the message " -"(:const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." +"Numeric logging level for the message (:const:`DEBUG`, :const:`INFO`, :const:" +"`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." msgstr "" -#: ../../library/logging.rst:1028 msgid "lineno" msgstr "" -#: ../../library/logging.rst:1028 msgid "``%(lineno)d``" -msgstr "``%(lineno)d``" +msgstr "" -#: ../../library/logging.rst:1028 msgid "Source line number where the logging call was issued (if available)." msgstr "" -#: ../../library/logging.rst:1031 msgid "message" msgstr "" -#: ../../library/logging.rst:1031 msgid "``%(message)s``" -msgstr "``%(message)s``" +msgstr "" -#: ../../library/logging.rst:1031 msgid "" -"The logged message, computed as ``msg % args``. This is set " -"when :meth:`Formatter.format` is invoked." +"The logged message, computed as ``msg % args``. This is set when :meth:" +"`Formatter.format` is invoked." msgstr "" -#: ../../library/logging.rst:1035 msgid "module" msgstr "" -#: ../../library/logging.rst:1035 msgid "``%(module)s``" -msgstr "``%(module)s``" +msgstr "" -#: ../../library/logging.rst:1035 msgid "Module (name portion of ``filename``)." msgstr "" -#: ../../library/logging.rst:1037 msgid "msecs" msgstr "" -#: ../../library/logging.rst:1037 msgid "``%(msecs)d``" -msgstr "``%(msecs)d``" +msgstr "" -#: ../../library/logging.rst:1037 msgid "" "Millisecond portion of the time when the :class:`LogRecord` was created." msgstr "" -#: ../../library/logging.rst:0 ../../library/logging.rst:1040 msgid "msg" msgstr "" -#: ../../library/logging.rst:1040 msgid "" "The format string passed in the original logging call. Merged with ``args`` " "to produce ``message``, or an arbitrary object (see :ref:`arbitrary-object-" "messages`)." msgstr "" -#: ../../library/logging.rst:0 ../../library/logging.rst:1045 msgid "name" msgstr "" -#: ../../library/logging.rst:1045 msgid "``%(name)s``" -msgstr "``%(name)s``" +msgstr "" -#: ../../library/logging.rst:1045 msgid "Name of the logger used to log the call." msgstr "" -#: ../../library/logging.rst:1047 msgid "pathname" msgstr "" -#: ../../library/logging.rst:1047 msgid "``%(pathname)s``" -msgstr "``%(pathname)s``" +msgstr "" -#: ../../library/logging.rst:1047 msgid "" "Full pathname of the source file where the logging call was issued (if " "available)." msgstr "" -#: ../../library/logging.rst:1050 msgid "process" msgstr "" -#: ../../library/logging.rst:1050 msgid "``%(process)d``" -msgstr "``%(process)d``" +msgstr "" -#: ../../library/logging.rst:1050 msgid "Process ID (if available)." msgstr "" -#: ../../library/logging.rst:1052 msgid "processName" msgstr "" -#: ../../library/logging.rst:1052 msgid "``%(processName)s``" -msgstr "``%(processName)s``" +msgstr "" -#: ../../library/logging.rst:1052 msgid "Process name (if available)." msgstr "" -#: ../../library/logging.rst:1054 msgid "relativeCreated" msgstr "" -#: ../../library/logging.rst:1054 msgid "``%(relativeCreated)d``" -msgstr "``%(relativeCreated)d``" +msgstr "" -#: ../../library/logging.rst:1054 msgid "" "Time in milliseconds when the LogRecord was created, relative to the time " "the logging module was loaded." msgstr "" -#: ../../library/logging.rst:1058 msgid "stack_info" msgstr "" -#: ../../library/logging.rst:1058 msgid "" "Stack frame information (where available) from the bottom of the stack in " "the current thread, up to and including the stack frame of the logging call " "which resulted in the creation of this record." msgstr "" -#: ../../library/logging.rst:1064 msgid "thread" msgstr "" -#: ../../library/logging.rst:1064 msgid "``%(thread)d``" -msgstr "``%(thread)d``" +msgstr "" -#: ../../library/logging.rst:1064 msgid "Thread ID (if available)." msgstr "" -#: ../../library/logging.rst:1066 msgid "threadName" msgstr "" -#: ../../library/logging.rst:1066 msgid "``%(threadName)s``" -msgstr "``%(threadName)s``" +msgstr "" -#: ../../library/logging.rst:1066 msgid "Thread name (if available)." msgstr "" -#: ../../library/logging.rst:1068 msgid "taskName" msgstr "" -#: ../../library/logging.rst:1068 msgid "``%(taskName)s``" -msgstr "``%(taskName)s``" +msgstr "" -#: ../../library/logging.rst:1068 msgid ":class:`asyncio.Task` name (if available)." msgstr "" -#: ../../library/logging.rst:1071 msgid "*processName* was added." msgstr "" -#: ../../library/logging.rst:1074 msgid "*taskName* was added." msgstr "" -#: ../../library/logging.rst:1080 msgid "LoggerAdapter Objects" msgstr "" -#: ../../library/logging.rst:1082 msgid "" ":class:`LoggerAdapter` instances are used to conveniently pass contextual " -"information into logging calls. For a usage example, see the section " -"on :ref:`adding contextual information to your logging output `." +"information into logging calls. For a usage example, see the section on :ref:" +"`adding contextual information to your logging output `." msgstr "" -#: ../../library/logging.rst:1088 msgid "" "Returns an instance of :class:`LoggerAdapter` initialized with an " "underlying :class:`Logger` instance, a dict-like object (*extra*), and a " @@ -1590,7 +1329,6 @@ msgid "" "calls and only use the one of the :class:`LoggerAdapter` instance" msgstr "" -#: ../../library/logging.rst:1097 msgid "" "Modifies the message and/or keyword arguments passed to a logging call in " "order to insert contextual information. This implementation takes the object " @@ -1599,55 +1337,48 @@ msgid "" "(possibly modified) versions of the arguments passed in." msgstr "" -#: ../../library/logging.rst:1105 msgid "Delegates to the underlying :attr:`!manager` on *logger*." msgstr "" -#: ../../library/logging.rst:1109 msgid "Delegates to the underlying :meth:`!_log` method on *logger*." msgstr "" -#: ../../library/logging.rst:1111 msgid "" "In addition to the above, :class:`LoggerAdapter` supports the following " -"methods " -"of :class:`Logger`: :meth:`~Logger.debug`, :meth:`~Logger.info`, :meth:`~Logger.warning`, :meth:`~Logger.error`, :meth:`~Logger.exception`, :meth:`~Logger.critical`, :meth:`~Logger.log`, :meth:`~Logger.isEnabledFor`, :meth:`~Logger.getEffectiveLevel`, :meth:`~Logger.setLevel` " -"and :meth:`~Logger.hasHandlers`. These methods have the same signatures as " -"their counterparts in :class:`Logger`, so you can use the two types of " -"instances interchangeably." +"methods of :class:`Logger`: :meth:`~Logger.debug`, :meth:`~Logger.info`, :" +"meth:`~Logger.warning`, :meth:`~Logger.error`, :meth:`~Logger.exception`, :" +"meth:`~Logger.critical`, :meth:`~Logger.log`, :meth:`~Logger.isEnabledFor`, :" +"meth:`~Logger.getEffectiveLevel`, :meth:`~Logger.setLevel` and :meth:" +"`~Logger.hasHandlers`. These methods have the same signatures as their " +"counterparts in :class:`Logger`, so you can use the two types of instances " +"interchangeably." msgstr "" -#: ../../library/logging.rst:1122 msgid "" -"The :meth:`~Logger.isEnabledFor`, :meth:`~Logger.getEffectiveLevel`, :meth:`~Logger.setLevel` " -"and :meth:`~Logger.hasHandlers` methods were added " -"to :class:`LoggerAdapter`. These methods delegate to the underlying logger." +"The :meth:`~Logger.isEnabledFor`, :meth:`~Logger.getEffectiveLevel`, :meth:" +"`~Logger.setLevel` and :meth:`~Logger.hasHandlers` methods were added to :" +"class:`LoggerAdapter`. These methods delegate to the underlying logger." msgstr "" -#: ../../library/logging.rst:1128 msgid "" "Attribute :attr:`!manager` and method :meth:`!_log` were added, which " "delegate to the underlying logger and allow adapters to be nested." msgstr "" -#: ../../library/logging.rst:1133 msgid "The *merge_extra* argument was added." msgstr "" -#: ../../library/logging.rst:1137 msgid "Thread Safety" msgstr "" -#: ../../library/logging.rst:1139 msgid "" "The logging module is intended to be thread-safe without any special work " -"needing to be done by its clients. It achieves this though using threading " +"needing to be done by its clients. It achieves this through using threading " "locks; there is one lock to serialize access to the module's shared data, " "and each handler also creates a lock to serialize access to its underlying I/" "O." msgstr "" -#: ../../library/logging.rst:1144 msgid "" "If you are implementing asynchronous signal handlers using the :mod:`signal` " "module, you may not be able to use logging from within such handlers. This " @@ -1655,17 +1386,14 @@ msgid "" "always re-entrant, and so cannot be invoked from such signal handlers." msgstr "" -#: ../../library/logging.rst:1151 msgid "Module-Level Functions" msgstr "" -#: ../../library/logging.rst:1153 msgid "" "In addition to the classes described above, there are a number of module-" "level functions." msgstr "" -#: ../../library/logging.rst:1159 msgid "" "Return a logger with the specified name or, if name is ``None``, return the " "root logger of the hierarchy. If specified, the name is typically a dot-" @@ -1675,14 +1403,12 @@ msgid "" "for not doing that, as mentioned in :ref:`logger`." msgstr "" -#: ../../library/logging.rst:1166 msgid "" "All calls to this function with a given name return the same logger " "instance. This means that logger instances never need to be passed between " "different parts of an application." msgstr "" -#: ../../library/logging.rst:1173 msgid "" "Return either the standard :class:`Logger` class, or the last class passed " "to :func:`setLoggerClass`. This function may be called from within a new " @@ -1691,44 +1417,36 @@ msgid "" "example::" msgstr "" -#: ../../library/logging.rst:1178 msgid "" "class MyLogger(logging.getLoggerClass()):\n" " # ... override behaviour here" msgstr "" -#: ../../library/logging.rst:1184 msgid "Return a callable which is used to create a :class:`LogRecord`." msgstr "" -#: ../../library/logging.rst:1186 msgid "" "This function has been provided, along with :func:`setLogRecordFactory`, to " "allow developers more control over how the :class:`LogRecord` representing a " "logging event is constructed." msgstr "" -#: ../../library/logging.rst:1191 msgid "" "See :func:`setLogRecordFactory` for more information about the how the " "factory is called." msgstr "" -#: ../../library/logging.rst:1196 msgid "" "This is a convenience function that calls :meth:`Logger.debug`, on the root " "logger. The handling of the arguments is in every way identical to what is " "described in that method." msgstr "" -#: ../../library/logging.rst:1200 msgid "" -"The only difference is that if the root logger has no handlers, " -"then :func:`basicConfig` is called, prior to calling ``debug`` on the root " -"logger." +"The only difference is that if the root logger has no handlers, then :func:" +"`basicConfig` is called, prior to calling ``debug`` on the root logger." msgstr "" -#: ../../library/logging.rst:1203 msgid "" "For very short scripts or quick demonstrations of ``logging`` facilities, " "``debug`` and the other module-level functions may be convenient. However, " @@ -1738,38 +1456,32 @@ msgid "" "described at the beginning of this documentation." msgstr "" -#: ../../library/logging.rst:1213 msgid "" "Logs a message with level :const:`INFO` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: ../../library/logging.rst:1219 msgid "" "Logs a message with level :const:`WARNING` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: ../../library/logging.rst:1222 msgid "" "There is an obsolete function ``warn`` which is functionally identical to " "``warning``. As ``warn`` is deprecated, please do not use it - use " "``warning`` instead." msgstr "" -#: ../../library/logging.rst:1229 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: ../../library/logging.rst:1235 msgid "" "Logs a message with level :const:`CRITICAL` on the root logger. The " "arguments and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: ../../library/logging.rst:1241 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`. Exception info is " @@ -1777,13 +1489,11 @@ msgid "" "exception handler." msgstr "" -#: ../../library/logging.rst:1247 msgid "" "Logs a message with level *level* on the root logger. The arguments and " "behavior are otherwise the same as for :func:`debug`." msgstr "" -#: ../../library/logging.rst:1252 msgid "" "Provides an overriding level *level* for all loggers which takes precedence " "over the logger's own level. When the need arises to temporarily throttle " @@ -1791,13 +1501,12 @@ msgid "" "useful. Its effect is to disable all logging calls of severity *level* and " "below, so that if you call it with a value of INFO, then all INFO and DEBUG " "events would be discarded, whereas those of severity WARNING and above would " -"be processed according to the logger's effective level. If " -"``logging.disable(logging.NOTSET)`` is called, it effectively removes this " -"overriding level, so that logging output again depends on the effective " -"levels of individual loggers." +"be processed according to the logger's effective level. If ``logging." +"disable(logging.NOTSET)`` is called, it effectively removes this overriding " +"level, so that logging output again depends on the effective levels of " +"individual loggers." msgstr "" -#: ../../library/logging.rst:1263 msgid "" "Note that if you have defined any custom logging level higher than " "``CRITICAL`` (this is not recommended), you won't be able to rely on the " @@ -1805,13 +1514,11 @@ msgid "" "a suitable value." msgstr "" -#: ../../library/logging.rst:1268 msgid "" -"The *level* parameter was defaulted to level ``CRITICAL``. " -"See :issue:`28524` for more information about this change." +"The *level* parameter was defaulted to level ``CRITICAL``. See :issue:" +"`28524` for more information about this change." msgstr "" -#: ../../library/logging.rst:1274 msgid "" "Associates level *level* with text *levelName* in an internal dictionary, " "which is used to map numeric levels to a textual representation, for example " @@ -1821,57 +1528,48 @@ msgid "" "and they should increase in increasing order of severity." msgstr "" -#: ../../library/logging.rst:1281 msgid "" -"If you are thinking of defining your own levels, please see the section " -"on :ref:`custom-levels`." +"If you are thinking of defining your own levels, please see the section on :" +"ref:`custom-levels`." msgstr "" -#: ../../library/logging.rst:1286 msgid "" "Returns a mapping from level names to their corresponding logging levels. " "For example, the string \"CRITICAL\" maps to :const:`CRITICAL`. The returned " "mapping is copied from an internal mapping on each call to this function." msgstr "" -#: ../../library/logging.rst:1294 msgid "Returns the textual or numeric representation of logging level *level*." msgstr "" -#: ../../library/logging.rst:1296 msgid "" -"If *level* is one of the predefined " -"levels :const:`CRITICAL`, :const:`ERROR`, :const:`WARNING`, :const:`INFO` " -"or :const:`DEBUG` then you get the corresponding string. If you have " -"associated levels with names using :func:`addLevelName` then the name you " -"have associated with *level* is returned. If a numeric value corresponding " -"to one of the defined levels is passed in, the corresponding string " -"representation is returned." +"If *level* is one of the predefined levels :const:`CRITICAL`, :const:" +"`ERROR`, :const:`WARNING`, :const:`INFO` or :const:`DEBUG` then you get the " +"corresponding string. If you have associated levels with names using :func:" +"`addLevelName` then the name you have associated with *level* is returned. " +"If a numeric value corresponding to one of the defined levels is passed in, " +"the corresponding string representation is returned." msgstr "" -#: ../../library/logging.rst:1303 msgid "" "The *level* parameter also accepts a string representation of the level such " "as 'INFO'. In such cases, this functions returns the corresponding numeric " "value of the level." msgstr "" -#: ../../library/logging.rst:1307 msgid "" "If no matching numeric or string value is passed in, the string 'Level %s' % " "level is returned." msgstr "" -#: ../../library/logging.rst:1310 msgid "" "Levels are internally integers (as they need to be compared in the logging " "logic). This function is used to convert between an integer level and the " -"level name displayed in the formatted log output by means of the ``%" -"(levelname)s`` format specifier (see :ref:`logrecord-attributes`), and vice " -"versa." +"level name displayed in the formatted log output by means of the " +"``%(levelname)s`` format specifier (see :ref:`logrecord-attributes`), and " +"vice versa." msgstr "" -#: ../../library/logging.rst:1316 msgid "" "In Python versions earlier than 3.4, this function could also be passed a " "text level, and would return the corresponding numeric value of the level. " @@ -1879,41 +1577,34 @@ msgid "" "Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility." msgstr "" -#: ../../library/logging.rst:1324 msgid "" "Returns a handler with the specified *name*, or ``None`` if there is no " "handler with that name." msgstr "" -#: ../../library/logging.rst:1331 msgid "Returns an immutable set of all known handler names." msgstr "" -#: ../../library/logging.rst:1337 msgid "" "Creates and returns a new :class:`LogRecord` instance whose attributes are " -"defined by *attrdict*. This function is useful for taking a " -"pickled :class:`LogRecord` attribute dictionary, sent over a socket, and " -"reconstituting it as a :class:`LogRecord` instance at the receiving end." +"defined by *attrdict*. This function is useful for taking a pickled :class:" +"`LogRecord` attribute dictionary, sent over a socket, and reconstituting it " +"as a :class:`LogRecord` instance at the receiving end." msgstr "" -#: ../../library/logging.rst:1345 msgid "" -"Does basic configuration for the logging system by creating " -"a :class:`StreamHandler` with a default :class:`Formatter` and adding it to " -"the root logger. The " -"functions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"and :func:`critical` will call :func:`basicConfig` automatically if no " -"handlers are defined for the root logger." +"Does basic configuration for the logging system by creating a :class:" +"`StreamHandler` with a default :class:`Formatter` and adding it to the root " +"logger. The functions :func:`debug`, :func:`info`, :func:`warning`, :func:" +"`error` and :func:`critical` will call :func:`basicConfig` automatically if " +"no handlers are defined for the root logger." msgstr "" -#: ../../library/logging.rst:1351 msgid "" "This function does nothing if the root logger already has handlers " "configured, unless the keyword argument *force* is set to ``True``." msgstr "" -#: ../../library/logging.rst:1354 msgid "" "This function should be called from the main thread before other threads are " "started. In versions of Python prior to 2.7.1 and 3.2, if this function is " @@ -1922,54 +1613,43 @@ msgid "" "unexpected results such as messages being duplicated in the log." msgstr "" -#: ../../library/logging.rst:1361 msgid "The following keyword arguments are supported." msgstr "" -#: ../../library/logging.rst:1368 msgid "*filename*" msgstr "" -#: ../../library/logging.rst:1368 msgid "" "Specifies that a :class:`FileHandler` be created, using the specified " "filename, rather than a :class:`StreamHandler`." msgstr "" -#: ../../library/logging.rst:1372 msgid "*filemode*" msgstr "" -#: ../../library/logging.rst:1372 msgid "" "If *filename* is specified, open the file in this :ref:`mode `. " "Defaults to ``'a'``." msgstr "" -#: ../../library/logging.rst:1376 msgid "*format*" msgstr "" -#: ../../library/logging.rst:1376 msgid "" "Use the specified format string for the handler. Defaults to attributes " "``levelname``, ``name`` and ``message`` separated by colons." msgstr "" -#: ../../library/logging.rst:1381 msgid "*datefmt*" msgstr "" -#: ../../library/logging.rst:1381 msgid "" "Use the specified date/time format, as accepted by :func:`time.strftime`." msgstr "" -#: ../../library/logging.rst:1384 msgid "*style*" msgstr "" -#: ../../library/logging.rst:1384 msgid "" "If *format* is specified, use this style for the format string. One of " "``'%'``, ``'{'`` or ``'$'`` for :ref:`printf-style `." msgstr "" -#: ../../library/logging.rst:1395 msgid "*stream*" msgstr "" -#: ../../library/logging.rst:1395 msgid "" "Use the specified stream to initialize the :class:`StreamHandler`. Note that " "this argument is incompatible with *filename* - if both are present, a " "``ValueError`` is raised." msgstr "" -#: ../../library/logging.rst:1401 msgid "*handlers*" msgstr "" -#: ../../library/logging.rst:1401 msgid "" "If specified, this should be an iterable of already created handlers to add " "to the root logger. Any handlers which don't already have a formatter set " @@ -2009,201 +1683,161 @@ msgid "" "present, a ``ValueError`` is raised." msgstr "" -#: ../../library/logging.rst:1410 msgid "*force*" msgstr "" -#: ../../library/logging.rst:1410 msgid "" "If this keyword argument is specified as true, any existing handlers " "attached to the root logger are removed and closed, before carrying out the " "configuration as specified by the other arguments." msgstr "" -#: ../../library/logging.rst:1416 msgid "*encoding*" msgstr "" -#: ../../library/logging.rst:1416 msgid "" "If this keyword argument is specified along with *filename*, its value is " "used when the :class:`FileHandler` is created, and thus used when opening " "the output file." msgstr "" -#: ../../library/logging.rst:1421 msgid "*errors*" msgstr "" -#: ../../library/logging.rst:1421 msgid "" "If this keyword argument is specified along with *filename*, its value is " "used when the :class:`FileHandler` is created, and thus used when opening " "the output file. If not specified, the value 'backslashreplace' is used. " -"Note that if ``None`` is specified, it will be passed as such " -"to :func:`open`, which means that it will be treated the same as passing " -"'errors'." +"Note that if ``None`` is specified, it will be passed as such to :func:" +"`open`, which means that it will be treated the same as passing 'errors'." msgstr "" -#: ../../library/logging.rst:1432 msgid "The *style* argument was added." msgstr "" -#: ../../library/logging.rst:1435 msgid "" "The *handlers* argument was added. Additional checks were added to catch " "situations where incompatible arguments are specified (e.g. *handlers* " "together with *stream* or *filename*, or *stream* together with *filename*)." msgstr "" -#: ../../library/logging.rst:1441 msgid "The *force* argument was added." msgstr "" -#: ../../library/logging.rst:1444 msgid "The *encoding* and *errors* arguments were added." msgstr "" -#: ../../library/logging.rst:1449 msgid "" "Informs the logging system to perform an orderly shutdown by flushing and " "closing all handlers. This should be called at application exit and no " "further use of the logging system should be made after this call." msgstr "" -#: ../../library/logging.rst:1453 msgid "" "When the logging module is imported, it registers this function as an exit " "handler (see :mod:`atexit`), so normally there's no need to do that manually." msgstr "" -#: ../../library/logging.rst:1460 msgid "" "Tells the logging system to use the class *klass* when instantiating a " "logger. The class should define :meth:`!__init__` such that only a name " -"argument is required, and the :meth:`!__init__` should call :meth:`!" -"Logger.__init__`. This function is typically called before any loggers are " +"argument is required, and the :meth:`!__init__` should call :meth:`!Logger." +"__init__`. This function is typically called before any loggers are " "instantiated by applications which need to use custom logger behavior. After " "this call, as at any other time, do not instantiate loggers directly using " "the subclass: continue to use the :func:`logging.getLogger` API to get your " "loggers." msgstr "" -#: ../../library/logging.rst:1471 msgid "Set a callable which is used to create a :class:`LogRecord`." msgstr "" -#: ../../library/logging.rst:1473 msgid "The factory callable to be used to instantiate a log record." msgstr "" -#: ../../library/logging.rst:1475 msgid "" "This function has been provided, along with :func:`getLogRecordFactory`, to " "allow developers more control over how the :class:`LogRecord` representing a " "logging event is constructed." msgstr "" -#: ../../library/logging.rst:1480 msgid "The factory has the following signature:" msgstr "" -#: ../../library/logging.rst:1482 msgid "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" msgstr "" -#: ../../library/logging.rst:1484 msgid "The logger name." msgstr "" -#: ../../library/logging.rst:0 msgid "level" msgstr "" -#: ../../library/logging.rst:1485 msgid "The logging level (numeric)." msgstr "" -#: ../../library/logging.rst:0 msgid "fn" msgstr "" -#: ../../library/logging.rst:1486 msgid "The full pathname of the file where the logging call was made." msgstr "" -#: ../../library/logging.rst:0 msgid "lno" msgstr "" -#: ../../library/logging.rst:1487 msgid "The line number in the file where the logging call was made." msgstr "" -#: ../../library/logging.rst:1488 msgid "The logging message." msgstr "" -#: ../../library/logging.rst:1489 msgid "The arguments for the logging message." msgstr "" -#: ../../library/logging.rst:1490 msgid "An exception tuple, or ``None``." msgstr "" -#: ../../library/logging.rst:0 msgid "func" msgstr "" -#: ../../library/logging.rst:1491 msgid "The name of the function or method which invoked the logging call." msgstr "" -#: ../../library/logging.rst:0 msgid "sinfo" msgstr "" -#: ../../library/logging.rst:1493 msgid "" "A stack traceback such as is provided by :func:`traceback.print_stack`, " "showing the call hierarchy." msgstr "" -#: ../../library/logging.rst:0 msgid "kwargs" msgstr "" -#: ../../library/logging.rst:1495 msgid "Additional keyword arguments." msgstr "" -#: ../../library/logging.rst:1499 msgid "Module-Level Attributes" msgstr "" -#: ../../library/logging.rst:1503 msgid "" -"A \"handler of last resort\" is available through this attribute. This is " -"a :class:`StreamHandler` writing to ``sys.stderr`` with a level of " -"``WARNING``, and is used to handle logging events in the absence of any " -"logging configuration. The end result is to just print the message to " -"``sys.stderr``. This replaces the earlier error message saying that \"no " -"handlers could be found for logger XYZ\". If you need the earlier behaviour " -"for some reason, ``lastResort`` can be set to ``None``." +"A \"handler of last resort\" is available through this attribute. This is a :" +"class:`StreamHandler` writing to ``sys.stderr`` with a level of ``WARNING``, " +"and is used to handle logging events in the absence of any logging " +"configuration. The end result is to just print the message to ``sys." +"stderr``. This replaces the earlier error message saying that \"no handlers " +"could be found for logger XYZ\". If you need the earlier behaviour for some " +"reason, ``lastResort`` can be set to ``None``." msgstr "" -#: ../../library/logging.rst:1515 msgid "Used to see if exceptions during handling should be propagated." msgstr "" -#: ../../library/logging.rst:1517 msgid "Default: ``True``." msgstr "" -#: ../../library/logging.rst:1519 msgid "" "If :data:`raiseExceptions` is ``False``, exceptions get silently ignored. " "This is what is mostly wanted for a logging system - most users will not " @@ -2211,70 +1845,57 @@ msgid "" "application errors." msgstr "" -#: ../../library/logging.rst:1526 msgid "Integration with the warnings module" msgstr "" -#: ../../library/logging.rst:1528 msgid "" "The :func:`captureWarnings` function can be used to integrate :mod:`logging` " "with the :mod:`warnings` module." msgstr "" -#: ../../library/logging.rst:1533 msgid "" "This function is used to turn the capture of warnings by logging on and off." msgstr "" -#: ../../library/logging.rst:1536 msgid "" "If *capture* is ``True``, warnings issued by the :mod:`warnings` module will " "be redirected to the logging system. Specifically, a warning will be " "formatted using :func:`warnings.formatwarning` and the resulting string " -"logged to a logger named ``'py.warnings'`` with a severity " -"of :const:`WARNING`." +"logged to a logger named ``'py.warnings'`` with a severity of :const:" +"`WARNING`." msgstr "" -#: ../../library/logging.rst:1541 msgid "" "If *capture* is ``False``, the redirection of warnings to the logging system " -"will stop, and warnings will be redirected to their original destinations " -"(i.e. those in effect before ``captureWarnings(True)`` was called)." +"will stop, and warnings will be redirected to their original destinations (i." +"e. those in effect before ``captureWarnings(True)`` was called)." msgstr "" -#: ../../library/logging.rst:1548 msgid "Module :mod:`logging.config`" msgstr "" -#: ../../library/logging.rst:1549 msgid "Configuration API for the logging module." msgstr "" -#: ../../library/logging.rst:1551 msgid "Module :mod:`logging.handlers`" msgstr "" -#: ../../library/logging.rst:1552 msgid "Useful handlers included with the logging module." msgstr "" -#: ../../library/logging.rst:1554 msgid ":pep:`282` - A Logging System" msgstr "" -#: ../../library/logging.rst:1555 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: ../../library/logging.rst:1558 msgid "" -"`Original Python logging package `_" +"`Original Python logging package `_" msgstr "" -#: ../../library/logging.rst:1559 msgid "" "This is the original source for the :mod:`logging` package. The version of " "the package available from this site is suitable for use with Python 1.5.2, " @@ -2282,10 +1903,8 @@ msgid "" "standard library." msgstr "" -#: ../../library/logging.rst:12 msgid "Errors" msgstr "" -#: ../../library/logging.rst:12 msgid "logging" msgstr "" diff --git a/library/lzma.po b/library/lzma.po index cde4d4d..51cc283 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/lzma.rst:2 msgid ":mod:`!lzma` --- Compression using the LZMA algorithm" msgstr "" -#: ../../library/lzma.rst:12 msgid "**Source code:** :source:`Lib/lzma.py`" msgstr "" -#: ../../library/lzma.rst:16 msgid "" "This module provides classes and convenience functions for compressing and " "decompressing data using the LZMA compression algorithm. Also included is a " @@ -34,39 +31,33 @@ msgid "" "by the :program:`xz` utility, as well as raw compressed streams." msgstr "" -#: ../../library/lzma.rst:21 msgid "" -"The interface provided by this module is very similar to that of " -"the :mod:`bz2` module. Note that :class:`LZMAFile` and :class:`bz2.BZ2File` " -"are *not* thread-safe, so if you need to use a single :class:`LZMAFile` " -"instance from multiple threads, it is necessary to protect it with a lock." +"The interface provided by this module is very similar to that of the :mod:" +"`bz2` module. Note that :class:`LZMAFile` and :class:`bz2.BZ2File` are *not* " +"thread-safe, so if you need to use a single :class:`LZMAFile` instance from " +"multiple threads, it is necessary to protect it with a lock." msgstr "" -#: ../../library/lzma.rst:29 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the compressor/decompressor state." msgstr "" -#: ../../library/lzma.rst:34 msgid "Reading and writing compressed files" msgstr "" -#: ../../library/lzma.rst:38 msgid "" "Open an LZMA-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" -#: ../../library/lzma.rst:41 msgid "" -"The *filename* argument can be either an actual file name (given as " -"a :class:`str`, :class:`bytes` or :term:`path-like ` " -"object), in which case the named file is opened, or it can be an existing " -"file object to read from or write to." +"The *filename* argument can be either an actual file name (given as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object), in " +"which case the named file is opened, or it can be an existing file object to " +"read from or write to." msgstr "" -#: ../../library/lzma.rst:46 msgid "" "The *mode* argument can be any of ``\"r\"``, ``\"rb\"``, ``\"w\"``, " "``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` or ``\"ab\"`` for binary mode, " @@ -74,56 +65,47 @@ msgid "" "default is ``\"rb\"``." msgstr "" -#: ../../library/lzma.rst:50 ../../library/lzma.rst:95 msgid "" "When opening a file for reading, the *format* and *filters* arguments have " "the same meanings as for :class:`LZMADecompressor`. In this case, the " "*check* and *preset* arguments should not be used." msgstr "" -#: ../../library/lzma.rst:54 ../../library/lzma.rst:99 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" -#: ../../library/lzma.rst:57 msgid "" "For binary mode, this function is equivalent to the :class:`LZMAFile` " "constructor: ``LZMAFile(filename, mode, ...)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" -#: ../../library/lzma.rst:61 msgid "" -"For text mode, a :class:`LZMAFile` object is created, and wrapped in " -"an :class:`io.TextIOWrapper` instance with the specified encoding, error " +"For text mode, a :class:`LZMAFile` object is created, and wrapped in an :" +"class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" -#: ../../library/lzma.rst:65 msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." msgstr "" -#: ../../library/lzma.rst:68 ../../library/lzma.rst:141 msgid "Accepts a :term:`path-like object`." msgstr "" -#: ../../library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." msgstr "" -#: ../../library/lzma.rst:76 msgid "" "An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " "operate directly on a named file. The *filename* argument specifies either " -"the file object to wrap, or the name of the file to open (as " -"a :class:`str`, :class:`bytes` or :term:`path-like ` " -"object). When wrapping an existing file object, the wrapped file will not be " -"closed when the :class:`LZMAFile` is closed." +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." msgstr "" -#: ../../library/lzma.rst:83 msgid "" "The *mode* argument can be either ``\"r\"`` for reading (default), ``\"w\"`` " "for overwriting, ``\"x\"`` for exclusive creation, or ``\"a\"`` for " @@ -131,110 +113,89 @@ msgid "" "``\"xb\"`` and ``\"ab\"`` respectively." msgstr "" -#: ../../library/lzma.rst:88 msgid "" "If *filename* is a file object (rather than an actual file name), a mode of " "``\"w\"`` does not truncate the file, and is instead equivalent to ``\"a\"``." msgstr "" -#: ../../library/lzma.rst:91 msgid "" "When opening a file for reading, the input file may be the concatenation of " "multiple separate compressed streams. These are transparently decoded as a " "single logical stream." msgstr "" -#: ../../library/lzma.rst:102 msgid "" -":class:`LZMAFile` supports all the members specified " -"by :class:`io.BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` " -"and :meth:`~io.IOBase.truncate`. Iteration and the :keyword:`with` statement " -"are supported." +":class:`LZMAFile` supports all the members specified by :class:`io." +"BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." +"IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" -#: ../../library/lzma.rst:107 msgid "The following method and attributes are also provided:" msgstr "" -#: ../../library/lzma.rst:111 msgid "" "Return buffered data without advancing the file position. At least one byte " "of data will be returned, unless EOF has been reached. The exact number of " "bytes returned is unspecified (the *size* argument is ignored)." msgstr "" -#: ../../library/lzma.rst:115 msgid "" -"While calling :meth:`peek` does not change the file position of " -"the :class:`LZMAFile`, it may change the position of the underlying file " -"object (e.g. if the :class:`LZMAFile` was constructed by passing a file " -"object for *filename*)." +"While calling :meth:`peek` does not change the file position of the :class:" +"`LZMAFile`, it may change the position of the underlying file object (e.g. " +"if the :class:`LZMAFile` was constructed by passing a file object for " +"*filename*)." msgstr "" -#: ../../library/lzma.rst:122 msgid "``'rb'`` for reading and ``'wb'`` for writing." msgstr "" -#: ../../library/lzma.rst:128 msgid "" "The lzma file name. Equivalent to the :attr:`~io.FileIO.name` attribute of " "the underlying :term:`file object`." msgstr "" -#: ../../library/lzma.rst:134 msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." msgstr "" -#: ../../library/lzma.rst:137 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" -#: ../../library/lzma.rst:146 msgid "Compressing and decompressing data in memory" msgstr "" -#: ../../library/lzma.rst:150 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" -#: ../../library/lzma.rst:152 msgid "" -"For a more convenient way of compressing a single chunk of data, " -"see :func:`compress`." +"For a more convenient way of compressing a single chunk of data, see :func:" +"`compress`." msgstr "" -#: ../../library/lzma.rst:155 msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" msgstr "" -#: ../../library/lzma.rst:158 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." msgstr "" -#: ../../library/lzma.rst:159 msgid "This is the default format." msgstr "" -#: ../../library/lzma.rst:161 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." msgstr "" -#: ../../library/lzma.rst:162 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" -#: ../../library/lzma.rst:165 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" -#: ../../library/lzma.rst:166 msgid "" "This format specifier does not support integrity checks, and requires that " "you always specify a custom filter chain (for both compression and " @@ -242,110 +203,92 @@ msgid "" "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" -#: ../../library/lzma.rst:171 msgid "" "The *check* argument specifies the type of integrity check to include in the " "compressed data. This check is used when decompressing, to ensure that the " "data has not been corrupted. Possible values are:" msgstr "" -#: ../../library/lzma.rst:175 msgid "" ":const:`CHECK_NONE`: No integrity check. This is the default (and the only " "acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." msgstr "" -#: ../../library/lzma.rst:179 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr "" -#: ../../library/lzma.rst:181 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." msgstr "" -#: ../../library/lzma.rst:184 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr "" -#: ../../library/lzma.rst:186 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" -#: ../../library/lzma.rst:188 msgid "" "The compression settings can be specified either as a preset compression " "level (with the *preset* argument), or in detail as a custom filter chain " "(with the *filters* argument)." msgstr "" -#: ../../library/lzma.rst:192 msgid "" "The *preset* argument (if provided) should be an integer between ``0`` and " -"``9`` (inclusive), optionally OR-ed with the " -"constant :const:`PRESET_EXTREME`. If neither *preset* nor *filters* are " -"given, the default behavior is to use :const:`PRESET_DEFAULT` (preset level " -"``6``). Higher presets produce smaller output, but make the compression " -"process slower." +"``9`` (inclusive), optionally OR-ed with the constant :const:" +"`PRESET_EXTREME`. If neither *preset* nor *filters* are given, the default " +"behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher " +"presets produce smaller output, but make the compression process slower." msgstr "" -#: ../../library/lzma.rst:201 msgid "" "In addition to being more CPU-intensive, compression with higher presets " "also requires much more memory (and produces output that needs more memory " -"to decompress). With preset ``9`` for example, the overhead for " -"an :class:`LZMACompressor` object can be as high as 800 MiB. For this " -"reason, it is generally best to stick with the default preset." +"to decompress). With preset ``9`` for example, the overhead for an :class:" +"`LZMACompressor` object can be as high as 800 MiB. For this reason, it is " +"generally best to stick with the default preset." msgstr "" -#: ../../library/lzma.rst:207 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." msgstr "" -#: ../../library/lzma.rst:212 msgid "" "Compress *data* (a :class:`bytes` object), returning a :class:`bytes` object " "containing compressed data for at least part of the input. Some of *data* " -"may be buffered internally, for use in later calls to :meth:`compress` " -"and :meth:`flush`. The returned data should be concatenated with the output " -"of any previous calls to :meth:`compress`." +"may be buffered internally, for use in later calls to :meth:`compress` and :" +"meth:`flush`. The returned data should be concatenated with the output of " +"any previous calls to :meth:`compress`." msgstr "" -#: ../../library/lzma.rst:220 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" -#: ../../library/lzma.rst:223 msgid "The compressor cannot be used after this method has been called." msgstr "" -#: ../../library/lzma.rst:228 msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" -#: ../../library/lzma.rst:231 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." msgstr "" -#: ../../library/lzma.rst:234 msgid "" "The *format* argument specifies the container format that should be used. " "The default is :const:`FORMAT_AUTO`, which can decompress both ``.xz`` and " -"``.lzma`` files. Other possible values " -"are :const:`FORMAT_XZ`, :const:`FORMAT_ALONE`, and :const:`FORMAT_RAW`." +"``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:" +"`FORMAT_ALONE`, and :const:`FORMAT_RAW`." msgstr "" -#: ../../library/lzma.rst:239 msgid "" "The *memlimit* argument specifies a limit (in bytes) on the amount of memory " "that the decompressor can use. When this argument is used, decompression " @@ -353,15 +296,13 @@ msgid "" "input within the given memory limit." msgstr "" -#: ../../library/lzma.rst:244 msgid "" "The *filters* argument specifies the filter chain that was used to create " -"the stream being decompressed. This argument is required if *format* " -"is :const:`FORMAT_RAW`, but should not be used for other formats. " -"See :ref:`filter-chain-specs` for more information about filter chains." +"the stream being decompressed. This argument is required if *format* is :" +"const:`FORMAT_RAW`, but should not be used for other formats. See :ref:" +"`filter-chain-specs` for more information about filter chains." msgstr "" -#: ../../library/lzma.rst:250 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`LZMAFile`. To " @@ -369,7 +310,6 @@ msgid "" "create a new decompressor for each stream." msgstr "" -#: ../../library/lzma.rst:257 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " "as bytes. Some of *data* may be buffered internally, for use in later calls " @@ -377,7 +317,6 @@ msgid "" "output of any previous calls to :meth:`decompress`." msgstr "" -#: ../../library/lzma.rst:263 msgid "" "If *max_length* is nonnegative, returns at most *max_length* bytes of " "decompressed data. If this limit is reached and further output can be " @@ -386,101 +325,82 @@ msgid "" "``b''`` to obtain more of the output." msgstr "" -#: ../../library/lzma.rst:270 msgid "" "If all of the input data was decompressed and returned (either because this " "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" -#: ../../library/lzma.rst:275 msgid "" -"Attempting to decompress data after the end of stream is reached raises " -"an :exc:`EOFError`. Any data found after the end of the stream is ignored " -"and saved in the :attr:`~.unused_data` attribute." +"Attempting to decompress data after the end of stream is reached raises an :" +"exc:`EOFError`. Any data found after the end of the stream is ignored and " +"saved in the :attr:`~.unused_data` attribute." msgstr "" -#: ../../library/lzma.rst:279 msgid "Added the *max_length* parameter." msgstr "" -#: ../../library/lzma.rst:284 msgid "" -"The ID of the integrity check used by the input stream. This may " -"be :const:`CHECK_UNKNOWN` until enough of the input has been decoded to " -"determine what integrity check it uses." +"The ID of the integrity check used by the input stream. This may be :const:" +"`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " +"integrity check it uses." msgstr "" -#: ../../library/lzma.rst:290 msgid "``True`` if the end-of-stream marker has been reached." msgstr "" -#: ../../library/lzma.rst:294 msgid "Data found after the end of the compressed stream." msgstr "" -#: ../../library/lzma.rst:296 msgid "Before the end of the stream is reached, this will be ``b\"\"``." msgstr "" -#: ../../library/lzma.rst:300 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" -#: ../../library/lzma.rst:307 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." msgstr "" -#: ../../library/lzma.rst:310 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." msgstr "" -#: ../../library/lzma.rst:316 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." msgstr "" -#: ../../library/lzma.rst:319 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." msgstr "" -#: ../../library/lzma.rst:322 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." msgstr "" -#: ../../library/lzma.rst:327 msgid "Miscellaneous" msgstr "" -#: ../../library/lzma.rst:331 msgid "" "Return ``True`` if the given integrity check is supported on this system." msgstr "" -#: ../../library/lzma.rst:333 msgid "" -":const:`CHECK_NONE` and :const:`CHECK_CRC32` are always " -"supported. :const:`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable " -"if you are using a version of :program:`liblzma` that was compiled with a " -"limited feature set." +":const:`CHECK_NONE` and :const:`CHECK_CRC32` are always supported. :const:" +"`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " +"a version of :program:`liblzma` that was compiled with a limited feature set." msgstr "" -#: ../../library/lzma.rst:342 msgid "Specifying custom filter chains" msgstr "" -#: ../../library/lzma.rst:344 msgid "" "A filter chain specifier is a sequence of dictionaries, where each " "dictionary contains the ID and options for a single filter. Each dictionary " @@ -488,119 +408,94 @@ msgid "" "filter-dependent options. Valid filter IDs are as follows:" msgstr "" -#: ../../library/lzma.rst:349 msgid "Compression filters:" msgstr "" -#: ../../library/lzma.rst:351 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" msgstr "" -#: ../../library/lzma.rst:352 msgid "" -":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` " -"and :const:`FORMAT_RAW`)" +":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" +"`FORMAT_RAW`)" msgstr "" -#: ../../library/lzma.rst:354 msgid "Delta filter:" msgstr "" -#: ../../library/lzma.rst:356 msgid ":const:`FILTER_DELTA`" msgstr "" -#: ../../library/lzma.rst:358 msgid "Branch-Call-Jump (BCJ) filters:" msgstr "" -#: ../../library/lzma.rst:360 msgid ":const:`FILTER_X86`" msgstr "" -#: ../../library/lzma.rst:361 msgid ":const:`FILTER_IA64`" msgstr "" -#: ../../library/lzma.rst:362 msgid ":const:`FILTER_ARM`" msgstr "" -#: ../../library/lzma.rst:363 msgid ":const:`FILTER_ARMTHUMB`" msgstr "" -#: ../../library/lzma.rst:364 msgid ":const:`FILTER_POWERPC`" msgstr "" -#: ../../library/lzma.rst:365 msgid ":const:`FILTER_SPARC`" msgstr "" -#: ../../library/lzma.rst:367 msgid "" "A filter chain can consist of up to 4 filters, and cannot be empty. The last " "filter in the chain must be a compression filter, and any other filters must " "be delta or BCJ filters." msgstr "" -#: ../../library/lzma.rst:371 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" msgstr "" -#: ../../library/lzma.rst:374 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." msgstr "" -#: ../../library/lzma.rst:376 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." msgstr "" -#: ../../library/lzma.rst:378 msgid "``lc``: Number of literal context bits." msgstr "" -#: ../../library/lzma.rst:379 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." msgstr "" -#: ../../library/lzma.rst:381 msgid "``pb``: Number of position bits; must be at most 4." msgstr "" -#: ../../library/lzma.rst:382 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." msgstr "" -#: ../../library/lzma.rst:383 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." msgstr "" -#: ../../library/lzma.rst:385 msgid "" -"``mf``: What match finder to use " -"-- :const:`MF_HC3`, :const:`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, " -"or :const:`MF_BT4`." +"``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" +"`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." msgstr "" -#: ../../library/lzma.rst:387 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." msgstr "" -#: ../../library/lzma.rst:390 msgid "" "The delta filter stores the differences between bytes, producing more " "repetitive input for the compressor in certain circumstances. It supports " @@ -609,7 +504,6 @@ msgid "" "bytes." msgstr "" -#: ../../library/lzma.rst:395 msgid "" "The BCJ filters are intended to be applied to machine code. They convert " "relative branches, calls and jumps in the code to use absolute addressing, " @@ -619,26 +513,21 @@ msgid "" "data. The default is 0." msgstr "" -#: ../../library/lzma.rst:403 msgid "Examples" msgstr "" -#: ../../library/lzma.rst:405 msgid "Reading in a compressed file::" msgstr "" -#: ../../library/lzma.rst:407 msgid "" "import lzma\n" "with lzma.open(\"file.xz\") as f:\n" " file_content = f.read()" msgstr "" -#: ../../library/lzma.rst:411 msgid "Creating a compressed file::" msgstr "" -#: ../../library/lzma.rst:413 msgid "" "import lzma\n" "data = b\"Insert Data Here\"\n" @@ -646,22 +535,18 @@ msgid "" " f.write(data)" msgstr "" -#: ../../library/lzma.rst:418 msgid "Compressing data in memory::" msgstr "" -#: ../../library/lzma.rst:420 msgid "" "import lzma\n" "data_in = b\"Insert Data Here\"\n" "data_out = lzma.compress(data_in)" msgstr "" -#: ../../library/lzma.rst:424 msgid "Incremental compression::" msgstr "" -#: ../../library/lzma.rst:426 msgid "" "import lzma\n" "lzc = lzma.LZMACompressor()\n" @@ -673,11 +558,9 @@ msgid "" "result = b\"\".join([out1, out2, out3, out4])" msgstr "" -#: ../../library/lzma.rst:435 msgid "Writing compressed data to an already-open file::" msgstr "" -#: ../../library/lzma.rst:437 msgid "" "import lzma\n" "with open(\"file.xz\", \"wb\") as f:\n" @@ -687,11 +570,9 @@ msgid "" " f.write(b\"Not compressed\\n\")" msgstr "" -#: ../../library/lzma.rst:444 msgid "Creating a compressed file using a custom filter chain::" msgstr "" -#: ../../library/lzma.rst:446 msgid "" "import lzma\n" "my_filters = [\n" diff --git a/library/mailbox.po b/library/mailbox.po index 39cb2b3..71fd24a 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,50 +22,39 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/mailbox.rst:2 msgid ":mod:`!mailbox` --- Manipulate mailboxes in various formats" msgstr "" -#: ../../library/mailbox.rst:10 msgid "**Source code:** :source:`Lib/mailbox.py`" msgstr "" -#: ../../library/mailbox.rst:14 msgid "" "This module defines two classes, :class:`Mailbox` and :class:`Message`, for " -"accessing and manipulating on-disk mailboxes and the messages they " -"contain. :class:`!Mailbox` offers a dictionary-like mapping from keys to " -"messages. :class:`!Message` extends the :mod:`email.message` " -"module's :class:`~email.message.Message` class with format-specific state " -"and behavior. Supported mailbox formats are Maildir, mbox, MH, Babyl, and " -"MMDF." +"accessing and manipulating on-disk mailboxes and the messages they contain. :" +"class:`!Mailbox` offers a dictionary-like mapping from keys to messages. :" +"class:`!Message` extends the :mod:`email.message` module's :class:`~email." +"message.Message` class with format-specific state and behavior. Supported " +"mailbox formats are Maildir, mbox, MH, Babyl, and MMDF." msgstr "" -#: ../../library/mailbox.rst:24 msgid "Module :mod:`email`" msgstr "" -#: ../../library/mailbox.rst:25 msgid "Represent and manipulate messages." msgstr "" -#: ../../library/mailbox.rst:31 msgid ":class:`!Mailbox` objects" msgstr "" -#: ../../library/mailbox.rst:35 msgid "A mailbox, which may be inspected and modified." msgstr "" -#: ../../library/mailbox.rst:37 msgid "" "The :class:`!Mailbox` class defines an interface and is not intended to be " -"instantiated. Instead, format-specific subclasses should inherit " -"from :class:`!Mailbox` and your code should instantiate a particular " -"subclass." +"instantiated. Instead, format-specific subclasses should inherit from :" +"class:`!Mailbox` and your code should instantiate a particular subclass." msgstr "" -#: ../../library/mailbox.rst:41 msgid "" "The :class:`!Mailbox` interface is dictionary-like, with small keys " "corresponding to messages. Keys are issued by the :class:`!Mailbox` instance " @@ -75,14 +64,12 @@ msgid "" "message." msgstr "" -#: ../../library/mailbox.rst:47 msgid "" "Messages may be added to a :class:`!Mailbox` instance using the set-like " "method :meth:`add` and removed using a ``del`` statement or the set-like " "methods :meth:`remove` and :meth:`discard`." msgstr "" -#: ../../library/mailbox.rst:51 msgid "" ":class:`!Mailbox` interface semantics differ from dictionary semantics in " "some noteworthy ways. Each time a message is requested, a new representation " @@ -93,7 +80,6 @@ msgid "" "the :class:`!Mailbox` instance." msgstr "" -#: ../../library/mailbox.rst:59 msgid "" "The default :class:`!Mailbox` :term:`iterator` iterates over message " "representations, not keys as the default :class:`dictionary ` iterator " @@ -105,62 +91,53 @@ msgid "" "message is subsequently removed." msgstr "" -#: ../../library/mailbox.rst:71 msgid "" "Be very cautious when modifying mailboxes that might be simultaneously " "changed by some other process. The safest mailbox format to use for such " -"tasks is :class:`Maildir`; try to avoid using single-file formats such " -"as :class:`mbox` for concurrent writing. If you're modifying a mailbox, you " +"tasks is :class:`Maildir`; try to avoid using single-file formats such as :" +"class:`mbox` for concurrent writing. If you're modifying a mailbox, you " "*must* lock it by calling the :meth:`lock` and :meth:`unlock` methods " "*before* reading any messages in the file or making any changes by adding or " "deleting a message. Failing to lock the mailbox runs the risk of losing " "messages or corrupting the entire mailbox." msgstr "" -#: ../../library/mailbox.rst:81 msgid ":class:`!Mailbox` instances have the following methods:" msgstr "" -#: ../../library/mailbox.rst:86 msgid "" "Add *message* to the mailbox and return the key that has been assigned to it." msgstr "" -#: ../../library/mailbox.rst:89 msgid "" -"Parameter *message* may be a :class:`Message` instance, " -"an :class:`email.message.Message` instance, a string, a byte string, or a " -"file-like object (which should be open in binary mode). If *message* is an " -"instance of the appropriate format-specific :class:`Message` subclass (e.g., " -"if it's an :class:`mboxMessage` instance and this is an :class:`mbox` " -"instance), its format-specific information is used. Otherwise, reasonable " -"defaults for format-specific information are used." +"Parameter *message* may be a :class:`Message` instance, an :class:`email." +"message.Message` instance, a string, a byte string, or a file-like object " +"(which should be open in binary mode). If *message* is an instance of the " +"appropriate format-specific :class:`Message` subclass (e.g., if it's an :" +"class:`mboxMessage` instance and this is an :class:`mbox` instance), its " +"format-specific information is used. Otherwise, reasonable defaults for " +"format-specific information are used." msgstr "" -#: ../../library/mailbox.rst:98 msgid "Support for binary input was added." msgstr "" -#: ../../library/mailbox.rst:106 msgid "Delete the message corresponding to *key* from the mailbox." msgstr "" -#: ../../library/mailbox.rst:108 msgid "" "If no such message exists, a :exc:`KeyError` exception is raised if the " "method was called as :meth:`remove` or :meth:`__delitem__` but no exception " -"is raised if the method was called as :meth:`discard`. The behavior " -"of :meth:`discard` may be preferred if the underlying mailbox format " -"supports concurrent modification by other processes." +"is raised if the method was called as :meth:`discard`. The behavior of :meth:" +"`discard` may be preferred if the underlying mailbox format supports " +"concurrent modification by other processes." msgstr "" -#: ../../library/mailbox.rst:117 msgid "" -"Replace the message corresponding to *key* with *message*. Raise " -"a :exc:`KeyError` exception if no message already corresponds to *key*." +"Replace the message corresponding to *key* with *message*. Raise a :exc:" +"`KeyError` exception if no message already corresponds to *key*." msgstr "" -#: ../../library/mailbox.rst:120 msgid "" "As with :meth:`add`, parameter *message* may be a :class:`Message` instance, " "an :class:`email.message.Message` instance, a string, a byte string, or a " @@ -172,37 +149,31 @@ msgid "" "left unchanged." msgstr "" -#: ../../library/mailbox.rst:133 msgid "Return an :term:`iterator` over all keys" msgstr "" -#: ../../library/mailbox.rst:138 msgid "" "The same as :meth:`iterkeys`, except that a :class:`list` is returned rather " "than an :term:`iterator`" msgstr "" -#: ../../library/mailbox.rst:145 msgid "" "Return an :term:`iterator` over representations of all messages. The " -"messages are represented as instances of the appropriate format-" -"specific :class:`Message` subclass unless a custom message factory was " -"specified when the :class:`!Mailbox` instance was initialized." +"messages are represented as instances of the appropriate format-specific :" +"class:`Message` subclass unless a custom message factory was specified when " +"the :class:`!Mailbox` instance was initialized." msgstr "" -#: ../../library/mailbox.rst:153 msgid "" "The behavior of :meth:`__iter__` is unlike that of dictionaries, which " "iterate over keys." msgstr "" -#: ../../library/mailbox.rst:159 msgid "" "The same as :meth:`itervalues`, except that a :class:`list` is returned " "rather than an :term:`iterator`" msgstr "" -#: ../../library/mailbox.rst:165 msgid "" "Return an :term:`iterator` over (*key*, *message*) pairs, where *key* is a " "key and *message* is a message representation. The messages are represented " @@ -211,37 +182,32 @@ msgid "" "instance was initialized." msgstr "" -#: ../../library/mailbox.rst:174 msgid "" "The same as :meth:`iteritems`, except that a :class:`list` of pairs is " "returned rather than an :term:`iterator` of pairs." msgstr "" -#: ../../library/mailbox.rst:181 msgid "" "Return a representation of the message corresponding to *key*. If no such " -"message exists, *default* is returned if the method was called " -"as :meth:`get` and a :exc:`KeyError` exception is raised if the method was " -"called as :meth:`!__getitem__`. The message is represented as an instance of " -"the appropriate format-specific :class:`Message` subclass unless a custom " +"message exists, *default* is returned if the method was called as :meth:" +"`get` and a :exc:`KeyError` exception is raised if the method was called as :" +"meth:`!__getitem__`. The message is represented as an instance of the " +"appropriate format-specific :class:`Message` subclass unless a custom " "message factory was specified when the :class:`!Mailbox` instance was " "initialized." msgstr "" -#: ../../library/mailbox.rst:192 msgid "" "Return a representation of the message corresponding to *key* as an instance " -"of the appropriate format-specific :class:`Message` subclass, or raise " -"a :exc:`KeyError` exception if no such message exists." +"of the appropriate format-specific :class:`Message` subclass, or raise a :" +"exc:`KeyError` exception if no such message exists." msgstr "" -#: ../../library/mailbox.rst:199 msgid "" "Return a byte representation of the message corresponding to *key*, or raise " "a :exc:`KeyError` exception if no such message exists." msgstr "" -#: ../../library/mailbox.rst:207 msgid "" "Return a string representation of the message corresponding to *key*, or " "raise a :exc:`KeyError` exception if no such message exists. The message is " @@ -249,7 +215,6 @@ msgid "" "clean representation." msgstr "" -#: ../../library/mailbox.rst:215 msgid "" "Return a :term:`file-like ` representation of the message " "corresponding to *key*, or raise a :exc:`KeyError` exception if no such " @@ -257,7 +222,6 @@ msgid "" "This file should be closed once it is no longer needed." msgstr "" -#: ../../library/mailbox.rst:221 msgid "" "The file object really is a :term:`binary file`; previously it was " "incorrectly returned in text mode. Also, the :term:`file-like object` now " @@ -265,7 +229,6 @@ msgid "" "statement to automatically close it." msgstr "" -#: ../../library/mailbox.rst:229 msgid "" "Unlike other representations of messages, :term:`file-like ` representations are not necessarily independent of the :class:`!" @@ -273,60 +236,51 @@ msgid "" "specific documentation is provided by each subclass." msgstr "" -#: ../../library/mailbox.rst:238 msgid "Return ``True`` if *key* corresponds to a message, ``False`` otherwise." msgstr "" -#: ../../library/mailbox.rst:243 msgid "Return a count of messages in the mailbox." msgstr "" -#: ../../library/mailbox.rst:248 msgid "Delete all messages from the mailbox." msgstr "" -#: ../../library/mailbox.rst:253 msgid "" "Return a representation of the message corresponding to *key* and delete the " "message. If no such message exists, return *default*. The message is " -"represented as an instance of the appropriate format-" -"specific :class:`Message` subclass unless a custom message factory was " -"specified when the :class:`!Mailbox` instance was initialized." +"represented as an instance of the appropriate format-specific :class:" +"`Message` subclass unless a custom message factory was specified when the :" +"class:`!Mailbox` instance was initialized." msgstr "" -#: ../../library/mailbox.rst:262 msgid "" "Return an arbitrary (*key*, *message*) pair, where *key* is a key and " "*message* is a message representation, and delete the corresponding message. " "If the mailbox is empty, raise a :exc:`KeyError` exception. The message is " -"represented as an instance of the appropriate format-" -"specific :class:`Message` subclass unless a custom message factory was " -"specified when the :class:`!Mailbox` instance was initialized." +"represented as an instance of the appropriate format-specific :class:" +"`Message` subclass unless a custom message factory was specified when the :" +"class:`!Mailbox` instance was initialized." msgstr "" -#: ../../library/mailbox.rst:272 msgid "" "Parameter *arg* should be a *key*-to-*message* mapping or an iterable of " "(*key*, *message*) pairs. Updates the mailbox so that, for each given *key* " "and *message*, the message corresponding to *key* is set to *message* as if " "by using :meth:`__setitem__`. As with :meth:`__setitem__`, each *key* must " "already correspond to a message in the mailbox or else a :exc:`KeyError` " -"exception will be raised, so in general it is incorrect for *arg* to be " -"a :class:`!Mailbox` instance." +"exception will be raised, so in general it is incorrect for *arg* to be a :" +"class:`!Mailbox` instance." msgstr "" -#: ../../library/mailbox.rst:282 msgid "Unlike with dictionaries, keyword arguments are not supported." msgstr "" -#: ../../library/mailbox.rst:287 msgid "" "Write any pending changes to the filesystem. For some :class:`Mailbox` " "subclasses, changes are always written immediately and :meth:`!flush` does " "nothing, but you should still make a habit of calling this method." msgstr "" -#: ../../library/mailbox.rst:294 msgid "" "Acquire an exclusive advisory lock on the mailbox so that other processes " "know not to modify it. An :exc:`ExternalClashError` is raised if the lock is " @@ -335,21 +289,17 @@ msgid "" "modifications to its contents." msgstr "" -#: ../../library/mailbox.rst:303 msgid "Release the lock on the mailbox, if any." msgstr "" -#: ../../library/mailbox.rst:308 msgid "" "Flush the mailbox, unlock it if necessary, and close any open files. For " "some :class:`!Mailbox` subclasses, this method does nothing." msgstr "" -#: ../../library/mailbox.rst:315 msgid ":class:`!Maildir` objects" msgstr "" -#: ../../library/mailbox.rst:320 msgid "" "A subclass of :class:`Mailbox` for mailboxes in Maildir format. Parameter " "*factory* is a callable object that accepts a file-like message " @@ -359,19 +309,16 @@ msgid "" "mailbox is created if it does not exist." msgstr "" -#: ../../library/mailbox.rst:327 msgid "" "If *create* is ``True`` and the *dirname* path exists, it will be treated as " "an existing maildir without attempting to verify its directory layout." msgstr "" -#: ../../library/mailbox.rst:330 msgid "" "It is for historical reasons that *dirname* is named as such rather than " "*path*." msgstr "" -#: ../../library/mailbox.rst:332 msgid "" "Maildir is a directory-based mailbox format invented for the qmail mail " "transfer agent and now widely supported by other programs. Messages in a " @@ -381,29 +328,25 @@ msgid "" "unnecessary." msgstr "" -#: ../../library/mailbox.rst:339 msgid "" -"Maildir mailboxes contain three subdirectories, " -"namely: :file:`tmp`, :file:`new`, and :file:`cur`. Messages are created " -"momentarily in the :file:`tmp` subdirectory and then moved to " -"the :file:`new` subdirectory to finalize delivery. A mail user agent may " -"subsequently move the message to the :file:`cur` subdirectory and store " -"information about the state of the message in a special \"info\" section " -"appended to its file name." +"Maildir mailboxes contain three subdirectories, namely: :file:`tmp`, :file:" +"`new`, and :file:`cur`. Messages are created momentarily in the :file:`tmp` " +"subdirectory and then moved to the :file:`new` subdirectory to finalize " +"delivery. A mail user agent may subsequently move the message to the :file:" +"`cur` subdirectory and store information about the state of the message in a " +"special \"info\" section appended to its file name." msgstr "" -#: ../../library/mailbox.rst:346 msgid "" "Folders of the style introduced by the Courier mail transfer agent are also " "supported. Any subdirectory of the main mailbox is considered a folder if " -"``'.'`` is the first character in its name. Folder names are represented " -"by :class:`!Maildir` without the leading ``'.'``. Each folder is itself a " +"``'.'`` is the first character in its name. Folder names are represented by :" +"class:`!Maildir` without the leading ``'.'``. Each folder is itself a " "Maildir mailbox but should not contain other folders. Instead, a logical " "nesting is indicated using ``'.'`` to delimit levels, e.g., " "\"Archived.2005.07\"." msgstr "" -#: ../../library/mailbox.rst:355 msgid "" "The Maildir specification requires the use of a colon (``':'``) in certain " "message file names. However, some operating systems do not permit this " @@ -412,58 +355,48 @@ msgid "" "exclamation point (``'!'``) is a popular choice. For example::" msgstr "" -#: ../../library/mailbox.rst:362 msgid "" "import mailbox\n" "mailbox.Maildir.colon = '!'" msgstr "" -#: ../../library/mailbox.rst:365 msgid "The :attr:`!colon` attribute may also be set on a per-instance basis." msgstr "" -#: ../../library/mailbox.rst:367 msgid ":class:`Maildir` now ignores files with a leading dot." msgstr "" -#: ../../library/mailbox.rst:370 msgid "" ":class:`!Maildir` instances have all of the methods of :class:`Mailbox` in " "addition to the following:" msgstr "" -#: ../../library/mailbox.rst:376 ../../library/mailbox.rst:669 msgid "Return a list of the names of all folders." msgstr "" -#: ../../library/mailbox.rst:381 msgid "" "Return a :class:`!Maildir` instance representing the folder whose name is " "*folder*. A :exc:`NoSuchMailboxError` exception is raised if the folder does " "not exist." msgstr "" -#: ../../library/mailbox.rst:388 msgid "" "Create a folder whose name is *folder* and return a :class:`!Maildir` " "instance representing it." msgstr "" -#: ../../library/mailbox.rst:394 ../../library/mailbox.rst:687 msgid "" "Delete the folder whose name is *folder*. If the folder contains any " "messages, a :exc:`NotEmptyError` exception will be raised and the folder " "will not be deleted." msgstr "" -#: ../../library/mailbox.rst:401 msgid "" "Delete temporary files from the mailbox that have not been accessed in the " "last 36 hours. The Maildir specification says that mail-reading programs " "should do this occasionally." msgstr "" -#: ../../library/mailbox.rst:408 msgid "" "Return as a string the flags that are set on the message corresponding to " "*key*. This is the same as ``get_message(key).get_flags()`` but much faster, " @@ -471,71 +404,60 @@ msgid "" "over the keys to determine which messages are interesting to get." msgstr "" -#: ../../library/mailbox.rst:415 msgid "" -"If you do have a :class:`MaildirMessage` object, use " -"its :meth:`~MaildirMessage.get_flags` method instead, because changes made " -"by the " -"message's :meth:`~MaildirMessage.set_flags`, :meth:`~MaildirMessage.add_flag` " -"and :meth:`~MaildirMessage.remove_flag` methods are not reflected here until " -"the mailbox's :meth:`__setitem__` method is called." +"If you do have a :class:`MaildirMessage` object, use its :meth:" +"`~MaildirMessage.get_flags` method instead, because changes made by the " +"message's :meth:`~MaildirMessage.set_flags`, :meth:`~MaildirMessage." +"add_flag` and :meth:`~MaildirMessage.remove_flag` methods are not reflected " +"here until the mailbox's :meth:`__setitem__` method is called." msgstr "" -#: ../../library/mailbox.rst:427 msgid "" "On the message corresponding to *key*, set the flags specified by *flags* " "and unset all others. Calling ``some_mailbox.set_flags(key, flags)`` is " "similar to ::" msgstr "" -#: ../../library/mailbox.rst:431 msgid "" "one_message = some_mailbox.get_message(key)\n" "one_message.set_flags(flags)\n" "some_mailbox[key] = one_message" msgstr "" -#: ../../library/mailbox.rst:435 ../../library/mailbox.rst:498 msgid "but faster, because it does not open the message file." msgstr "" -#: ../../library/mailbox.rst:437 msgid "" -"If you do have a :class:`MaildirMessage` object, use " -"its :meth:`~MaildirMessage.set_flags` method instead, because changes made " -"with this mailbox method will not be visible to the message object's " -"method, :meth:`~MaildirMessage.get_flags`." +"If you do have a :class:`MaildirMessage` object, use its :meth:" +"`~MaildirMessage.set_flags` method instead, because changes made with this " +"mailbox method will not be visible to the message object's method, :meth:" +"`~MaildirMessage.get_flags`." msgstr "" -#: ../../library/mailbox.rst:447 msgid "" "On the message corresponding to *key*, set the flags specified by *flag* " "without changing other flags. To add more than one flag at a time, *flag* " "may be a string of more than one character." msgstr "" -#: ../../library/mailbox.rst:451 msgid "" -"Considerations for using this method versus the message " -"object's :meth:`~MaildirMessage.add_flag` method are similar to those " -"for :meth:`set_flags`; see the discussion there." +"Considerations for using this method versus the message object's :meth:" +"`~MaildirMessage.add_flag` method are similar to those for :meth:" +"`set_flags`; see the discussion there." msgstr "" -#: ../../library/mailbox.rst:460 msgid "" "On the message corresponding to *key*, unset the flags specified by *flag* " "without changing other flags. To remove more than one flag at a time, *flag* " "may be a string of more than one character." msgstr "" -#: ../../library/mailbox.rst:464 msgid "" -"Considerations for using this method versus the message " -"object's :meth:`~MaildirMessage.remove_flag` method are similar to those " -"for :meth:`set_flags`; see the discussion there." +"Considerations for using this method versus the message object's :meth:" +"`~MaildirMessage.remove_flag` method are similar to those for :meth:" +"`set_flags`; see the discussion there." msgstr "" -#: ../../library/mailbox.rst:473 msgid "" "Return a string containing the info for the message corresponding to *key*. " "This is the same as ``get_message(key).get_info()`` but much faster, because " @@ -543,42 +465,36 @@ msgid "" "keys to determine which messages are interesting to get." msgstr "" -#: ../../library/mailbox.rst:480 msgid "" -"If you do have a :class:`MaildirMessage` object, use " -"its :meth:`~MaildirMessage.get_info` method instead, because changes made by " -"the message's :meth:`~MaildirMessage.set_info` method are not reflected here " +"If you do have a :class:`MaildirMessage` object, use its :meth:" +"`~MaildirMessage.get_info` method instead, because changes made by the " +"message's :meth:`~MaildirMessage.set_info` method are not reflected here " "until the mailbox's :meth:`__setitem__` method is called." msgstr "" -#: ../../library/mailbox.rst:491 msgid "" "Set the info of the message corresponding to *key* to *info*. Calling " "``some_mailbox.set_info(key, flags)`` is similar to ::" msgstr "" -#: ../../library/mailbox.rst:494 msgid "" "one_message = some_mailbox.get_message(key)\n" "one_message.set_info(info)\n" "some_mailbox[key] = one_message" msgstr "" -#: ../../library/mailbox.rst:500 msgid "" -"If you do have a :class:`MaildirMessage` object, use " -"its :meth:`~MaildirMessage.set_info` method instead, because changes made " -"with this mailbox method will not be visible to the message object's " -"method, :meth:`~MaildirMessage.get_info`." +"If you do have a :class:`MaildirMessage` object, use its :meth:" +"`~MaildirMessage.set_info` method instead, because changes made with this " +"mailbox method will not be visible to the message object's method, :meth:" +"`~MaildirMessage.get_info`." msgstr "" -#: ../../library/mailbox.rst:507 msgid "" "Some :class:`Mailbox` methods implemented by :class:`!Maildir` deserve " "special remarks:" msgstr "" -#: ../../library/mailbox.rst:517 msgid "" "These methods generate unique file names based upon the current process ID. " "When using multiple threads, undetected name clashes may occur and cause " @@ -586,56 +502,46 @@ msgid "" "these methods to manipulate the same mailbox simultaneously." msgstr "" -#: ../../library/mailbox.rst:525 msgid "" "All changes to Maildir mailboxes are immediately applied, so this method " "does nothing." msgstr "" -#: ../../library/mailbox.rst:532 msgid "" "Maildir mailboxes do not support (or require) locking, so these methods do " "nothing." msgstr "" -#: ../../library/mailbox.rst:538 msgid "" ":class:`!Maildir` instances do not keep any open files and the underlying " "mailboxes do not support locking, so this method does nothing." msgstr "" -#: ../../library/mailbox.rst:544 msgid "" "Depending upon the host platform, it may not be possible to modify or remove " "the underlying message while the returned file remains open." msgstr "" -#: ../../library/mailbox.rst:550 msgid "" "`maildir man page from Courier `_" msgstr "" -#: ../../library/mailbox.rst:551 msgid "" "A specification of the format. Describes a common extension for supporting " "folders." msgstr "" -#: ../../library/mailbox.rst:554 msgid "`Using maildir format `_" msgstr "" -#: ../../library/mailbox.rst:555 msgid "" "Notes on Maildir by its inventor. Includes an updated name-creation scheme " "and details on \"info\" semantics." msgstr "" -#: ../../library/mailbox.rst:562 msgid ":class:`!mbox` objects" msgstr "" -#: ../../library/mailbox.rst:567 msgid "" "A subclass of :class:`Mailbox` for mailboxes in mbox format. Parameter " "*factory* is a callable object that accepts a file-like message " @@ -645,7 +551,6 @@ msgid "" "mailbox is created if it does not exist." msgstr "" -#: ../../library/mailbox.rst:574 msgid "" "The mbox format is the classic format for storing mail on Unix systems. All " "messages in an mbox mailbox are stored in a single file with the beginning " @@ -653,82 +558,66 @@ msgid "" "\"." msgstr "" -#: ../../library/mailbox.rst:578 msgid "" "Several variations of the mbox format exist to address perceived " "shortcomings in the original. In the interest of compatibility, :class:`!" -"mbox` implements the original format, which is sometimes referred to " -"as :dfn:`mboxo`. This means that the :mailheader:`Content-Length` header, if " +"mbox` implements the original format, which is sometimes referred to as :dfn:" +"`mboxo`. This means that the :mailheader:`Content-Length` header, if " "present, is ignored and that any occurrences of \"From \" at the beginning " "of a line in a message body are transformed to \">From \" when storing the " "message, although occurrences of \">From \" are not transformed to \"From \" " "when reading the message." msgstr "" -#: ../../library/mailbox.rst:586 msgid "" "Some :class:`Mailbox` methods implemented by :class:`!mbox` deserve special " "remarks:" msgstr "" -#: ../../library/mailbox.rst:592 ../../library/mailbox.rst:602 -#: ../../library/mailbox.rst:608 ../../library/mailbox.rst:871 -#: ../../library/mailbox.rst:881 msgid "" "Note: This method has an extra parameter (*from_*) compared with other " "classes. The first line of an mbox file entry is the Unix \"From \" line. If " "*from_* is False, the first line of the file is dropped." msgstr "" -#: ../../library/mailbox.rst:598 msgid "" -"Using the file after calling :meth:`~Mailbox.flush` " -"or :meth:`~Mailbox.close` on the :class:`!mbox` instance may yield " -"unpredictable results or raise an exception." +"Using the file after calling :meth:`~Mailbox.flush` or :meth:`~Mailbox." +"close` on the :class:`!mbox` instance may yield unpredictable results or " +"raise an exception." msgstr "" -#: ../../library/mailbox.rst:615 ../../library/mailbox.rst:828 -#: ../../library/mailbox.rst:889 msgid "" -"Three locking mechanisms are used---dot locking and, if available, " -"the :c:func:`!flock` and :c:func:`!lockf` system calls." +"Three locking mechanisms are used---dot locking and, if available, the :c:" +"func:`!flock` and :c:func:`!lockf` system calls." msgstr "" -#: ../../library/mailbox.rst:621 msgid "" "`mbox man page from tin `_" msgstr "" -#: ../../library/mailbox.rst:622 msgid "A specification of the format, with details on locking." msgstr "" -#: ../../library/mailbox.rst:624 msgid "" "`Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad " "`_" msgstr "" -#: ../../library/mailbox.rst:625 msgid "An argument for using the original mbox format rather than a variation." msgstr "" -#: ../../library/mailbox.rst:627 msgid "" "`\"mbox\" is a family of several mutually incompatible mailbox formats " "`_" msgstr "" -#: ../../library/mailbox.rst:628 msgid "A history of mbox variations." msgstr "" -#: ../../library/mailbox.rst:634 msgid ":class:`!MH` objects" msgstr "" -#: ../../library/mailbox.rst:639 msgid "" "A subclass of :class:`Mailbox` for mailboxes in MH format. Parameter " "*factory* is a callable object that accepts a file-like message " @@ -738,7 +627,6 @@ msgid "" "is created if it does not exist." msgstr "" -#: ../../library/mailbox.rst:646 msgid "" "MH is a directory-based mailbox format invented for the MH Message Handling " "System, a mail user agent. Each message in an MH mailbox resides in its own " @@ -749,7 +637,6 @@ msgid "" "called :file:`.mh_sequences` in each folder." msgstr "" -#: ../../library/mailbox.rst:654 msgid "" "The :class:`!MH` class manipulates MH mailboxes, but it does not attempt to " "emulate all of :program:`mh`'s behaviors. In particular, it does not modify " @@ -757,120 +644,100 @@ msgid "" "are used by :program:`mh` to store its state and configuration." msgstr "" -#: ../../library/mailbox.rst:659 msgid "" ":class:`!MH` instances have all of the methods of :class:`Mailbox` in " "addition to the following:" msgstr "" -#: ../../library/mailbox.rst:664 msgid "Supported folders that don't contain a :file:`.mh_sequences` file." msgstr "" -#: ../../library/mailbox.rst:674 msgid "" "Return an :class:`!MH` instance representing the folder whose name is " "*folder*. A :exc:`NoSuchMailboxError` exception is raised if the folder does " "not exist." msgstr "" -#: ../../library/mailbox.rst:681 msgid "" "Create a folder whose name is *folder* and return an :class:`!MH` instance " "representing it." msgstr "" -#: ../../library/mailbox.rst:694 msgid "" "Return a dictionary of sequence names mapped to key lists. If there are no " "sequences, the empty dictionary is returned." msgstr "" -#: ../../library/mailbox.rst:700 msgid "" "Re-define the sequences that exist in the mailbox based upon *sequences*, a " -"dictionary of names mapped to key lists, like returned " -"by :meth:`get_sequences`." +"dictionary of names mapped to key lists, like returned by :meth:" +"`get_sequences`." msgstr "" -#: ../../library/mailbox.rst:707 msgid "" "Rename messages in the mailbox as necessary to eliminate gaps in numbering. " "Entries in the sequences list are updated correspondingly." msgstr "" -#: ../../library/mailbox.rst:712 msgid "" "Already-issued keys are invalidated by this operation and should not be " "subsequently used." msgstr "" -#: ../../library/mailbox.rst:715 msgid "" "Some :class:`Mailbox` methods implemented by :class:`!MH` deserve special " "remarks:" msgstr "" -#: ../../library/mailbox.rst:723 msgid "" "These methods immediately delete the message. The MH convention of marking a " "message for deletion by prepending a comma to its name is not used." msgstr "" -#: ../../library/mailbox.rst:730 msgid "" -"Three locking mechanisms are used---dot locking and, if available, " -"the :c:func:`!flock` and :c:func:`!lockf` system calls. For MH mailboxes, " -"locking the mailbox means locking the :file:`.mh_sequences` file and, only " -"for the duration of any operations that affect them, locking individual " -"message files." +"Three locking mechanisms are used---dot locking and, if available, the :c:" +"func:`!flock` and :c:func:`!lockf` system calls. For MH mailboxes, locking " +"the mailbox means locking the :file:`.mh_sequences` file and, only for the " +"duration of any operations that affect them, locking individual message " +"files." msgstr "" -#: ../../library/mailbox.rst:739 msgid "" "Depending upon the host platform, it may not be possible to remove the " "underlying message while the returned file remains open." msgstr "" -#: ../../library/mailbox.rst:745 msgid "" "All changes to MH mailboxes are immediately applied, so this method does " "nothing." msgstr "" -#: ../../library/mailbox.rst:751 msgid "" ":class:`!MH` instances do not keep any open files, so this method is " "equivalent to :meth:`unlock`." msgstr "" -#: ../../library/mailbox.rst:757 msgid "`nmh - Message Handling System `_" msgstr "" -#: ../../library/mailbox.rst:758 msgid "" -"Home page of :program:`nmh`, an updated version of the " -"original :program:`mh`." +"Home page of :program:`nmh`, an updated version of the original :program:" +"`mh`." msgstr "" -#: ../../library/mailbox.rst:760 msgid "" "`MH & nmh: Email for Users & Programmers `_" msgstr "" -#: ../../library/mailbox.rst:761 msgid "" "A GPL-licensed book on :program:`mh` and :program:`nmh`, with some " "information on the mailbox format." msgstr "" -#: ../../library/mailbox.rst:768 msgid ":class:`!Babyl` objects" msgstr "" -#: ../../library/mailbox.rst:773 msgid "" "A subclass of :class:`Mailbox` for mailboxes in Babyl format. Parameter " "*factory* is a callable object that accepts a file-like message " @@ -880,7 +747,6 @@ msgid "" "mailbox is created if it does not exist." msgstr "" -#: ../../library/mailbox.rst:780 msgid "" "Babyl is a single-file mailbox format used by the Rmail mail user agent " "included with Emacs. The beginning of a message is indicated by a line " @@ -890,7 +756,6 @@ msgid "" "Underscore (``'\\037'``) character." msgstr "" -#: ../../library/mailbox.rst:787 msgid "" "Messages in a Babyl mailbox have two sets of headers, original headers and " "so-called visible headers. Visible headers are typically a subset of the " @@ -901,31 +766,26 @@ msgid "" "in the Babyl options section." msgstr "" -#: ../../library/mailbox.rst:795 msgid "" ":class:`!Babyl` instances have all of the methods of :class:`Mailbox` in " "addition to the following:" msgstr "" -#: ../../library/mailbox.rst:801 msgid "" "Return a list of the names of all user-defined labels used in the mailbox." msgstr "" -#: ../../library/mailbox.rst:805 msgid "" "The actual messages are inspected to determine which labels exist in the " "mailbox rather than consulting the list of labels in the Babyl options " "section, but the Babyl section is updated whenever the mailbox is modified." msgstr "" -#: ../../library/mailbox.rst:810 msgid "" "Some :class:`Mailbox` methods implemented by :class:`!Babyl` deserve special " "remarks:" msgstr "" -#: ../../library/mailbox.rst:816 msgid "" "In Babyl mailboxes, the headers of a message are not stored contiguously " "with the body of the message. To generate a file-like representation, the " @@ -935,30 +795,24 @@ msgid "" "memory compared to a string representation." msgstr "" -#: ../../library/mailbox.rst:834 msgid "" "`Format of Version 5 Babyl Files `_" msgstr "" -#: ../../library/mailbox.rst:835 msgid "A specification of the Babyl format." msgstr "" -#: ../../library/mailbox.rst:837 msgid "" "`Reading Mail with Rmail `_" msgstr "" -#: ../../library/mailbox.rst:838 msgid "The Rmail manual, with some information on Babyl semantics." msgstr "" -#: ../../library/mailbox.rst:844 msgid ":class:`!MMDF` objects" msgstr "" -#: ../../library/mailbox.rst:849 msgid "" "A subclass of :class:`Mailbox` for mailboxes in MMDF format. Parameter " "*factory* is a callable object that accepts a file-like message " @@ -968,7 +822,6 @@ msgid "" "mailbox is created if it does not exist." msgstr "" -#: ../../library/mailbox.rst:856 msgid "" "MMDF is a single-file mailbox format invented for the Multichannel " "Memorandum Distribution Facility, a mail transfer agent. Each message is in " @@ -981,64 +834,54 @@ msgid "" "subsequent messages." msgstr "" -#: ../../library/mailbox.rst:865 msgid "" "Some :class:`Mailbox` methods implemented by :class:`!MMDF` deserve special " "remarks:" msgstr "" -#: ../../library/mailbox.rst:877 msgid "" -"Using the file after calling :meth:`~Mailbox.flush` " -"or :meth:`~Mailbox.close` on the :class:`!MMDF` instance may yield " -"unpredictable results or raise an exception." +"Using the file after calling :meth:`~Mailbox.flush` or :meth:`~Mailbox." +"close` on the :class:`!MMDF` instance may yield unpredictable results or " +"raise an exception." msgstr "" -#: ../../library/mailbox.rst:895 msgid "" "`mmdf man page from tin `_" msgstr "" -#: ../../library/mailbox.rst:896 msgid "" "A specification of MMDF format from the documentation of tin, a newsreader." msgstr "" -#: ../../library/mailbox.rst:898 msgid "`MMDF `_" msgstr "" -#: ../../library/mailbox.rst:899 msgid "" "A Wikipedia article describing the Multichannel Memorandum Distribution " "Facility." msgstr "" -#: ../../library/mailbox.rst:906 msgid ":class:`!Message` objects" msgstr "" -#: ../../library/mailbox.rst:911 msgid "" -"A subclass of the :mod:`email.message` " -"module's :class:`~email.message.Message`. Subclasses of :class:`!" -"mailbox.Message` add mailbox-format-specific state and behavior." +"A subclass of the :mod:`email.message` module's :class:`~email.message." +"Message`. Subclasses of :class:`!mailbox.Message` add mailbox-format-" +"specific state and behavior." msgstr "" -#: ../../library/mailbox.rst:915 msgid "" "If *message* is omitted, the new instance is created in a default, empty " "state. If *message* is an :class:`email.message.Message` instance, its " "contents are copied; furthermore, any format-specific information is " "converted insofar as possible if *message* is a :class:`!Message` instance. " -"If *message* is a string, a byte string, or a file, it should contain " -"an :rfc:`2822`\\ -compliant message, which is read and parsed. Files should " -"be open in binary mode, but text mode files are accepted for backward " +"If *message* is a string, a byte string, or a file, it should contain an :" +"rfc:`2822`\\ -compliant message, which is read and parsed. Files should be " +"open in binary mode, but text mode files are accepted for backward " "compatibility." msgstr "" -#: ../../library/mailbox.rst:924 msgid "" "The format-specific state and behaviors offered by subclasses vary, but in " "general it is only the properties that are not specific to a particular " @@ -1050,7 +893,6 @@ msgid "" "important is retained, because it applies to the message itself." msgstr "" -#: ../../library/mailbox.rst:933 msgid "" "There is no requirement that :class:`!Message` instances be used to " "represent messages retrieved using :class:`Mailbox` instances. In some " @@ -1061,152 +903,110 @@ msgid "" "initialized." msgstr "" -#: ../../library/mailbox.rst:944 msgid ":class:`!MaildirMessage` objects" msgstr "" -#: ../../library/mailbox.rst:949 msgid "" "A message with Maildir-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" -#: ../../library/mailbox.rst:952 msgid "" -"Typically, a mail user agent application moves all of the messages in " -"the :file:`new` subdirectory to the :file:`cur` subdirectory after the first " -"time the user opens and closes the mailbox, recording that the messages are " -"old whether or not they've actually been read. Each message in :file:`cur` " -"has an \"info\" section added to its file name to store information about " -"its state. (Some mail readers may also add an \"info\" section to messages " -"in :file:`new`.) The \"info\" section may take one of two forms: it may " -"contain \"2,\" followed by a list of standardized flags (e.g., \"2,FR\") or " -"it may contain \"1,\" followed by so-called experimental information. " -"Standard flags for Maildir messages are as follows:" +"Typically, a mail user agent application moves all of the messages in the :" +"file:`new` subdirectory to the :file:`cur` subdirectory after the first time " +"the user opens and closes the mailbox, recording that the messages are old " +"whether or not they've actually been read. Each message in :file:`cur` has " +"an \"info\" section added to its file name to store information about its " +"state. (Some mail readers may also add an \"info\" section to messages in :" +"file:`new`.) The \"info\" section may take one of two forms: it may contain " +"\"2,\" followed by a list of standardized flags (e.g., \"2,FR\") or it may " +"contain \"1,\" followed by so-called experimental information. Standard " +"flags for Maildir messages are as follows:" msgstr "" -#: ../../library/mailbox.rst:964 ../../library/mailbox.rst:1131 -#: ../../library/mailbox.rst:1502 msgid "Flag" msgstr "" -#: ../../library/mailbox.rst:964 ../../library/mailbox.rst:1131 -#: ../../library/mailbox.rst:1502 msgid "Meaning" msgstr "Jelentés" -#: ../../library/mailbox.rst:964 ../../library/mailbox.rst:1131 -#: ../../library/mailbox.rst:1282 ../../library/mailbox.rst:1369 -#: ../../library/mailbox.rst:1502 msgid "Explanation" msgstr "" -#: ../../library/mailbox.rst:966 ../../library/mailbox.rst:1137 -#: ../../library/mailbox.rst:1508 msgid "D" msgstr "" -#: ../../library/mailbox.rst:966 msgid "Draft" msgstr "" -#: ../../library/mailbox.rst:966 msgid "Under composition" msgstr "" -#: ../../library/mailbox.rst:968 ../../library/mailbox.rst:1139 -#: ../../library/mailbox.rst:1510 msgid "F" msgstr "" -#: ../../library/mailbox.rst:968 ../../library/mailbox.rst:1139 -#: ../../library/mailbox.rst:1510 msgid "Flagged" msgstr "" -#: ../../library/mailbox.rst:968 ../../library/mailbox.rst:1139 -#: ../../library/mailbox.rst:1288 ../../library/mailbox.rst:1510 msgid "Marked as important" msgstr "" -#: ../../library/mailbox.rst:970 msgid "P" msgstr "" -#: ../../library/mailbox.rst:970 msgid "Passed" msgstr "" -#: ../../library/mailbox.rst:970 msgid "Forwarded, resent, or bounced" msgstr "" -#: ../../library/mailbox.rst:972 ../../library/mailbox.rst:1133 -#: ../../library/mailbox.rst:1504 msgid "R" msgstr "" -#: ../../library/mailbox.rst:972 msgid "Replied" msgstr "" -#: ../../library/mailbox.rst:972 ../../library/mailbox.rst:1141 -#: ../../library/mailbox.rst:1286 ../../library/mailbox.rst:1377 -#: ../../library/mailbox.rst:1512 msgid "Replied to" msgstr "" -#: ../../library/mailbox.rst:974 msgid "S" msgstr "" -#: ../../library/mailbox.rst:974 msgid "Seen" msgstr "" -#: ../../library/mailbox.rst:974 ../../library/mailbox.rst:1133 -#: ../../library/mailbox.rst:1504 msgid "Read" msgstr "" -#: ../../library/mailbox.rst:976 msgid "T" msgstr "" -#: ../../library/mailbox.rst:976 msgid "Trashed" msgstr "" -#: ../../library/mailbox.rst:976 ../../library/mailbox.rst:1137 -#: ../../library/mailbox.rst:1373 ../../library/mailbox.rst:1508 msgid "Marked for subsequent deletion" msgstr "" -#: ../../library/mailbox.rst:979 msgid ":class:`!MaildirMessage` instances offer the following methods:" msgstr "" -#: ../../library/mailbox.rst:984 msgid "" "Return either \"new\" (if the message should be stored in the :file:`new` " "subdirectory) or \"cur\" (if the message should be stored in the :file:`cur` " "subdirectory)." msgstr "" -#: ../../library/mailbox.rst:990 msgid "" "A message is typically moved from :file:`new` to :file:`cur` after its " "mailbox has been accessed, whether or not the message has been read. A " "message ``msg`` has been read if ``\"S\" in msg.get_flags()`` is ``True``." msgstr "" -#: ../../library/mailbox.rst:998 msgid "" "Set the subdirectory the message should be stored in. Parameter *subdir* " "must be either \"new\" or \"cur\"." msgstr "" -#: ../../library/mailbox.rst:1004 msgid "" "Return a string specifying the flags that are currently set. If the message " "complies with the standard Maildir format, the result is the concatenation " @@ -1215,11 +1015,9 @@ msgid "" "flags are set or if \"info\" contains experimental semantics." msgstr "" -#: ../../library/mailbox.rst:1014 msgid "Set the flags specified by *flags* and unset all others." msgstr "" -#: ../../library/mailbox.rst:1019 msgid "" "Set the flag(s) specified by *flag* without changing other flags. To add " "more than one flag at a time, *flag* may be a string of more than one " @@ -1227,7 +1025,6 @@ msgid "" "experimental information rather than flags." msgstr "" -#: ../../library/mailbox.rst:1027 msgid "" "Unset the flag(s) specified by *flag* without changing other flags. To " "remove more than one flag at a time, *flag* maybe a string of more than one " @@ -1235,207 +1032,119 @@ msgid "" "the current \"info\" is not modified." msgstr "" -#: ../../library/mailbox.rst:1035 msgid "" "Return the delivery date of the message as a floating-point number " "representing seconds since the epoch." msgstr "" -#: ../../library/mailbox.rst:1041 msgid "" "Set the delivery date of the message to *date*, a floating-point number " "representing seconds since the epoch." msgstr "" -#: ../../library/mailbox.rst:1047 msgid "" "Return a string containing the \"info\" for a message. This is useful for " "accessing and modifying \"info\" that is experimental (i.e., not a list of " "flags)." msgstr "" -#: ../../library/mailbox.rst:1054 msgid "Set \"info\" to *info*, which should be a string." msgstr "" -#: ../../library/mailbox.rst:1056 msgid "" -"When a :class:`!MaildirMessage` instance is created based upon " -"an :class:`mboxMessage` or :class:`MMDFMessage` instance, " -"the :mailheader:`Status` and :mailheader:`X-Status` headers are omitted and " -"the following conversions take place:" +"When a :class:`!MaildirMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" msgstr "" -#: ../../library/mailbox.rst:1062 ../../library/mailbox.rst:1080 -#: ../../library/mailbox.rst:1095 ../../library/mailbox.rst:1202 -#: ../../library/mailbox.rst:1219 ../../library/mailbox.rst:1234 -#: ../../library/mailbox.rst:1250 ../../library/mailbox.rst:1317 -#: ../../library/mailbox.rst:1332 ../../library/mailbox.rst:1346 -#: ../../library/mailbox.rst:1443 ../../library/mailbox.rst:1460 -#: ../../library/mailbox.rst:1474 ../../library/mailbox.rst:1574 -#: ../../library/mailbox.rst:1591 ../../library/mailbox.rst:1606 -#: ../../library/mailbox.rst:1622 msgid "Resulting state" msgstr "" -#: ../../library/mailbox.rst:1062 ../../library/mailbox.rst:1332 -#: ../../library/mailbox.rst:1460 msgid ":class:`mboxMessage` or :class:`MMDFMessage` state" msgstr "" -#: ../../library/mailbox.rst:1065 ../../library/mailbox.rst:1082 -#: ../../library/mailbox.rst:1097 ../../library/mailbox.rst:1206 -#: ../../library/mailbox.rst:1578 msgid "\"cur\" subdirectory" msgstr "" -#: ../../library/mailbox.rst:1065 ../../library/mailbox.rst:1206 -#: ../../library/mailbox.rst:1223 ../../library/mailbox.rst:1238 -#: ../../library/mailbox.rst:1254 ../../library/mailbox.rst:1578 -#: ../../library/mailbox.rst:1595 ../../library/mailbox.rst:1610 -#: ../../library/mailbox.rst:1626 msgid "O flag" msgstr "" -#: ../../library/mailbox.rst:1067 ../../library/mailbox.rst:1086 -#: ../../library/mailbox.rst:1210 ../../library/mailbox.rst:1225 -#: ../../library/mailbox.rst:1258 ../../library/mailbox.rst:1323 -#: ../../library/mailbox.rst:1339 ../../library/mailbox.rst:1582 -#: ../../library/mailbox.rst:1597 ../../library/mailbox.rst:1630 msgid "F flag" msgstr "" -#: ../../library/mailbox.rst:1069 ../../library/mailbox.rst:1071 -#: ../../library/mailbox.rst:1088 ../../library/mailbox.rst:1103 -#: ../../library/mailbox.rst:1204 ../../library/mailbox.rst:1212 -#: ../../library/mailbox.rst:1252 ../../library/mailbox.rst:1321 -#: ../../library/mailbox.rst:1449 ../../library/mailbox.rst:1576 -#: ../../library/mailbox.rst:1584 ../../library/mailbox.rst:1624 msgid "R flag" msgstr "" -#: ../../library/mailbox.rst:1069 ../../library/mailbox.rst:1212 -#: ../../library/mailbox.rst:1227 ../../library/mailbox.rst:1242 -#: ../../library/mailbox.rst:1260 ../../library/mailbox.rst:1337 -#: ../../library/mailbox.rst:1467 ../../library/mailbox.rst:1584 -#: ../../library/mailbox.rst:1599 ../../library/mailbox.rst:1614 -#: ../../library/mailbox.rst:1632 msgid "A flag" msgstr "" -#: ../../library/mailbox.rst:1071 ../../library/mailbox.rst:1204 -#: ../../library/mailbox.rst:1576 msgid "S flag" msgstr "" -#: ../../library/mailbox.rst:1073 ../../library/mailbox.rst:1105 -#: ../../library/mailbox.rst:1208 ../../library/mailbox.rst:1447 -#: ../../library/mailbox.rst:1580 msgid "T flag" msgstr "" -#: ../../library/mailbox.rst:1073 ../../library/mailbox.rst:1208 -#: ../../library/mailbox.rst:1240 ../../library/mailbox.rst:1256 -#: ../../library/mailbox.rst:1465 ../../library/mailbox.rst:1580 -#: ../../library/mailbox.rst:1612 ../../library/mailbox.rst:1628 msgid "D flag" msgstr "" -#: ../../library/mailbox.rst:1076 msgid "" -"When a :class:`!MaildirMessage` instance is created based upon " -"an :class:`MHMessage` instance, the following conversions take place:" +"When a :class:`!MaildirMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1080 ../../library/mailbox.rst:1219 -#: ../../library/mailbox.rst:1474 ../../library/mailbox.rst:1591 msgid ":class:`MHMessage` state" msgstr "" -#: ../../library/mailbox.rst:1082 ../../library/mailbox.rst:1223 -#: ../../library/mailbox.rst:1319 ../../library/mailbox.rst:1335 -#: ../../library/mailbox.rst:1348 ../../library/mailbox.rst:1476 -#: ../../library/mailbox.rst:1595 msgid "\"unseen\" sequence" msgstr "" -#: ../../library/mailbox.rst:1084 ../../library/mailbox.rst:1099 msgid "\"cur\" subdirectory and S flag" msgstr "" -#: ../../library/mailbox.rst:1084 ../../library/mailbox.rst:1221 -#: ../../library/mailbox.rst:1593 msgid "no \"unseen\" sequence" msgstr "" -#: ../../library/mailbox.rst:1086 ../../library/mailbox.rst:1225 -#: ../../library/mailbox.rst:1323 ../../library/mailbox.rst:1339 -#: ../../library/mailbox.rst:1597 msgid "\"flagged\" sequence" msgstr "" -#: ../../library/mailbox.rst:1088 ../../library/mailbox.rst:1227 -#: ../../library/mailbox.rst:1321 ../../library/mailbox.rst:1337 -#: ../../library/mailbox.rst:1350 ../../library/mailbox.rst:1478 -#: ../../library/mailbox.rst:1599 msgid "\"replied\" sequence" msgstr "" -#: ../../library/mailbox.rst:1091 msgid "" -"When a :class:`!MaildirMessage` instance is created based upon " -"a :class:`BabylMessage` instance, the following conversions take place:" +"When a :class:`!MaildirMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1095 ../../library/mailbox.rst:1234 -#: ../../library/mailbox.rst:1346 ../../library/mailbox.rst:1606 msgid ":class:`BabylMessage` state" msgstr "" -#: ../../library/mailbox.rst:1097 ../../library/mailbox.rst:1238 -#: ../../library/mailbox.rst:1348 ../../library/mailbox.rst:1445 -#: ../../library/mailbox.rst:1463 ../../library/mailbox.rst:1476 -#: ../../library/mailbox.rst:1610 msgid "\"unseen\" label" msgstr "" -#: ../../library/mailbox.rst:1099 ../../library/mailbox.rst:1236 -#: ../../library/mailbox.rst:1608 msgid "no \"unseen\" label" msgstr "" -#: ../../library/mailbox.rst:1101 ../../library/mailbox.rst:1451 msgid "P flag" msgstr "" -#: ../../library/mailbox.rst:1101 msgid "\"forwarded\" or \"resent\" label" msgstr "" -#: ../../library/mailbox.rst:1103 ../../library/mailbox.rst:1242 -#: ../../library/mailbox.rst:1350 ../../library/mailbox.rst:1449 -#: ../../library/mailbox.rst:1467 ../../library/mailbox.rst:1478 -#: ../../library/mailbox.rst:1614 msgid "\"answered\" label" msgstr "" -#: ../../library/mailbox.rst:1105 ../../library/mailbox.rst:1240 -#: ../../library/mailbox.rst:1447 ../../library/mailbox.rst:1465 -#: ../../library/mailbox.rst:1612 msgid "\"deleted\" label" msgstr "" -#: ../../library/mailbox.rst:1112 msgid ":class:`!mboxMessage` objects" msgstr "" -#: ../../library/mailbox.rst:1117 msgid "" "A message with mbox-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" -#: ../../library/mailbox.rst:1120 msgid "" "Messages in an mbox mailbox are stored together in a single file. The " "sender's envelope address and the time of delivery are typically stored in a " @@ -1446,63 +1155,51 @@ msgid "" "typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." msgstr "" -#: ../../library/mailbox.rst:1128 msgid "Conventional flags for mbox messages are as follows:" msgstr "" -#: ../../library/mailbox.rst:1135 ../../library/mailbox.rst:1506 msgid "O" msgstr "" -#: ../../library/mailbox.rst:1135 ../../library/mailbox.rst:1506 msgid "Old" msgstr "" -#: ../../library/mailbox.rst:1135 ../../library/mailbox.rst:1506 msgid "Previously detected by MUA" msgstr "" -#: ../../library/mailbox.rst:1137 ../../library/mailbox.rst:1508 msgid "Deleted" msgstr "" -#: ../../library/mailbox.rst:1141 ../../library/mailbox.rst:1512 msgid "A" msgstr "" -#: ../../library/mailbox.rst:1141 ../../library/mailbox.rst:1512 msgid "Answered" msgstr "" -#: ../../library/mailbox.rst:1144 ../../library/mailbox.rst:1515 msgid "" "The \"R\" and \"O\" flags are stored in the :mailheader:`Status` header, and " "the \"D\", \"F\", and \"A\" flags are stored in the :mailheader:`X-Status` " "header. The flags and headers typically appear in the order mentioned." msgstr "" -#: ../../library/mailbox.rst:1148 msgid ":class:`!mboxMessage` instances offer the following methods:" msgstr "" -#: ../../library/mailbox.rst:1153 ../../library/mailbox.rst:1525 msgid "" "Return a string representing the \"From \" line that marks the start of the " "message in an mbox mailbox. The leading \"From \" and the trailing newline " "are excluded." msgstr "" -#: ../../library/mailbox.rst:1160 ../../library/mailbox.rst:1532 msgid "" "Set the \"From \" line to *from_*, which should be specified without a " "leading \"From \" or trailing newline. For convenience, *time_* may be " "specified and will be formatted appropriately and appended to *from_*. If " "*time_* is specified, it should be a :class:`time.struct_time` instance, a " -"tuple suitable for passing to :func:`time.strftime`, or ``True`` (to " -"use :func:`time.gmtime`)." +"tuple suitable for passing to :func:`time.strftime`, or ``True`` (to use :" +"func:`time.gmtime`)." msgstr "" -#: ../../library/mailbox.rst:1170 ../../library/mailbox.rst:1542 msgid "" "Return a string specifying the flags that are currently set. If the message " "complies with the conventional format, the result is the concatenation in " @@ -1510,304 +1207,244 @@ msgid "" "``'D'``, ``'F'``, and ``'A'``." msgstr "" -#: ../../library/mailbox.rst:1178 ../../library/mailbox.rst:1550 msgid "" "Set the flags specified by *flags* and unset all others. Parameter *flags* " "should be the concatenation in any order of zero or more occurrences of each " "of ``'R'``, ``'O'``, ``'D'``, ``'F'``, and ``'A'``." msgstr "" -#: ../../library/mailbox.rst:1185 ../../library/mailbox.rst:1557 msgid "" "Set the flag(s) specified by *flag* without changing other flags. To add " "more than one flag at a time, *flag* may be a string of more than one " "character." msgstr "" -#: ../../library/mailbox.rst:1192 ../../library/mailbox.rst:1564 msgid "" "Unset the flag(s) specified by *flag* without changing other flags. To " "remove more than one flag at a time, *flag* maybe a string of more than one " "character." msgstr "" -#: ../../library/mailbox.rst:1196 msgid "" -"When an :class:`!mboxMessage` instance is created based upon " -"a :class:`MaildirMessage` instance, a \"From \" line is generated based upon " -"the :class:`MaildirMessage` instance's delivery date, and the following " +"When an :class:`!mboxMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, a \"From \" line is generated based upon the :" +"class:`MaildirMessage` instance's delivery date, and the following " "conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1202 ../../library/mailbox.rst:1317 -#: ../../library/mailbox.rst:1443 ../../library/mailbox.rst:1574 msgid ":class:`MaildirMessage` state" msgstr "" -#: ../../library/mailbox.rst:1215 msgid "" -"When an :class:`!mboxMessage` instance is created based upon " -"an :class:`MHMessage` instance, the following conversions take place:" +"When an :class:`!mboxMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1221 ../../library/mailbox.rst:1236 -#: ../../library/mailbox.rst:1593 ../../library/mailbox.rst:1608 msgid "R flag and O flag" msgstr "" -#: ../../library/mailbox.rst:1230 msgid "" -"When an :class:`!mboxMessage` instance is created based upon " -"a :class:`BabylMessage` instance, the following conversions take place:" +"When an :class:`!mboxMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1245 msgid "" -"When a :class:`!mboxMessage` instance is created based upon " -"an :class:`MMDFMessage` instance, the \"From \" line is copied and all flags " -"directly correspond:" +"When a :class:`!mboxMessage` instance is created based upon an :class:" +"`MMDFMessage` instance, the \"From \" line is copied and all flags directly " +"correspond:" msgstr "" -#: ../../library/mailbox.rst:1250 msgid ":class:`MMDFMessage` state" msgstr "" -#: ../../library/mailbox.rst:1267 msgid ":class:`!MHMessage` objects" msgstr "" -#: ../../library/mailbox.rst:1272 msgid "" "A message with MH-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" -#: ../../library/mailbox.rst:1275 msgid "" "MH messages do not support marks or flags in the traditional sense, but they " "do support sequences, which are logical groupings of arbitrary messages. " -"Some mail reading programs (although not the standard :program:`mh` " -"and :program:`nmh`) use sequences in much the same way flags are used with " -"other formats, as follows:" +"Some mail reading programs (although not the standard :program:`mh` and :" +"program:`nmh`) use sequences in much the same way flags are used with other " +"formats, as follows:" msgstr "" -#: ../../library/mailbox.rst:1282 msgid "Sequence" msgstr "" -#: ../../library/mailbox.rst:1284 ../../library/mailbox.rst:1371 msgid "unseen" msgstr "" -#: ../../library/mailbox.rst:1284 ../../library/mailbox.rst:1371 msgid "Not read, but previously detected by MUA" msgstr "" -#: ../../library/mailbox.rst:1286 msgid "replied" msgstr "" -#: ../../library/mailbox.rst:1288 msgid "flagged" msgstr "" -#: ../../library/mailbox.rst:1291 msgid ":class:`!MHMessage` instances offer the following methods:" msgstr "" -#: ../../library/mailbox.rst:1296 msgid "Return a list of the names of sequences that include this message." msgstr "" -#: ../../library/mailbox.rst:1301 msgid "Set the list of sequences that include this message." msgstr "" -#: ../../library/mailbox.rst:1306 msgid "Add *sequence* to the list of sequences that include this message." msgstr "" -#: ../../library/mailbox.rst:1311 msgid "Remove *sequence* from the list of sequences that include this message." msgstr "" -#: ../../library/mailbox.rst:1313 msgid "" -"When an :class:`!MHMessage` instance is created based upon " -"a :class:`MaildirMessage` instance, the following conversions take place:" +"When an :class:`!MHMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1319 ../../library/mailbox.rst:1445 msgid "no S flag" msgstr "" -#: ../../library/mailbox.rst:1326 msgid "" -"When an :class:`!MHMessage` instance is created based upon " -"an :class:`mboxMessage` or :class:`MMDFMessage` instance, " -"the :mailheader:`Status` and :mailheader:`X-Status` headers are omitted and " -"the following conversions take place:" +"When an :class:`!MHMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" msgstr "" -#: ../../library/mailbox.rst:1335 ../../library/mailbox.rst:1463 msgid "no R flag" msgstr "" -#: ../../library/mailbox.rst:1342 msgid "" -"When an :class:`!MHMessage` instance is created based upon " -"a :class:`BabylMessage` instance, the following conversions take place:" +"When an :class:`!MHMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1357 msgid ":class:`!BabylMessage` objects" msgstr "" -#: ../../library/mailbox.rst:1362 msgid "" "A message with Babyl-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" -#: ../../library/mailbox.rst:1365 msgid "" "Certain message labels, called :dfn:`attributes`, are defined by convention " "to have special meanings. The attributes are as follows:" msgstr "" -#: ../../library/mailbox.rst:1369 msgid "Label" msgstr "" -#: ../../library/mailbox.rst:1373 msgid "deleted" msgstr "" -#: ../../library/mailbox.rst:1375 msgid "filed" msgstr "" -#: ../../library/mailbox.rst:1375 msgid "Copied to another file or mailbox" msgstr "" -#: ../../library/mailbox.rst:1377 msgid "answered" msgstr "" -#: ../../library/mailbox.rst:1379 msgid "forwarded" msgstr "" -#: ../../library/mailbox.rst:1379 msgid "Forwarded" msgstr "" -#: ../../library/mailbox.rst:1381 msgid "edited" msgstr "" -#: ../../library/mailbox.rst:1381 msgid "Modified by the user" msgstr "" -#: ../../library/mailbox.rst:1383 msgid "resent" msgstr "" -#: ../../library/mailbox.rst:1383 msgid "Resent" msgstr "" -#: ../../library/mailbox.rst:1386 msgid "" "By default, Rmail displays only visible headers. The :class:`!BabylMessage` " "class, though, uses the original headers because they are more complete. " "Visible headers may be accessed explicitly if desired." msgstr "" -#: ../../library/mailbox.rst:1390 msgid ":class:`!BabylMessage` instances offer the following methods:" msgstr "" -#: ../../library/mailbox.rst:1395 msgid "Return a list of labels on the message." msgstr "" -#: ../../library/mailbox.rst:1400 msgid "Set the list of labels on the message to *labels*." msgstr "" -#: ../../library/mailbox.rst:1405 msgid "Add *label* to the list of labels on the message." msgstr "" -#: ../../library/mailbox.rst:1410 msgid "Remove *label* from the list of labels on the message." msgstr "" -#: ../../library/mailbox.rst:1415 msgid "" "Return a :class:`Message` instance whose headers are the message's visible " "headers and whose body is empty." msgstr "" -#: ../../library/mailbox.rst:1421 msgid "" "Set the message's visible headers to be the same as the headers in " -"*message*. Parameter *visible* should be a :class:`Message` instance, " -"an :class:`email.message.Message` instance, a string, or a file-like object " +"*message*. Parameter *visible* should be a :class:`Message` instance, an :" +"class:`email.message.Message` instance, a string, or a file-like object " "(which should be open in text mode)." msgstr "" -#: ../../library/mailbox.rst:1429 msgid "" "When a :class:`!BabylMessage` instance's original headers are modified, the " "visible headers are not automatically modified to correspond. This method " "updates the visible headers as follows: each visible header with a " "corresponding original header is set to the value of the original header, " "each visible header without a corresponding original header is removed, and " -"any of :mailheader:`Date`, :mailheader:`From`, :mailheader:`Reply-" -"To`, :mailheader:`To`, :mailheader:`CC`, and :mailheader:`Subject` that are " +"any of :mailheader:`Date`, :mailheader:`From`, :mailheader:`Reply-To`, :" +"mailheader:`To`, :mailheader:`CC`, and :mailheader:`Subject` that are " "present in the original headers but not the visible headers are added to the " "visible headers." msgstr "" -#: ../../library/mailbox.rst:1439 msgid "" -"When a :class:`!BabylMessage` instance is created based upon " -"a :class:`MaildirMessage` instance, the following conversions take place:" +"When a :class:`!BabylMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1451 msgid "\"forwarded\" label" msgstr "" -#: ../../library/mailbox.rst:1454 msgid "" -"When a :class:`!BabylMessage` instance is created based upon " -"an :class:`mboxMessage` or :class:`MMDFMessage` instance, " -"the :mailheader:`Status` and :mailheader:`X-Status` headers are omitted and " -"the following conversions take place:" +"When a :class:`!BabylMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" msgstr "" -#: ../../library/mailbox.rst:1470 msgid "" -"When a :class:`!BabylMessage` instance is created based upon " -"an :class:`MHMessage` instance, the following conversions take place:" +"When a :class:`!BabylMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1485 msgid ":class:`!MMDFMessage` objects" msgstr "" -#: ../../library/mailbox.rst:1490 msgid "" "A message with MMDF-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" -#: ../../library/mailbox.rst:1493 msgid "" "As with message in an mbox mailbox, MMDF messages are stored with the " "sender's address and the delivery date in an initial line beginning with " @@ -1815,63 +1452,52 @@ msgid "" "typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." msgstr "" -#: ../../library/mailbox.rst:1498 msgid "" "Conventional flags for MMDF messages are identical to those of mbox message " "and are as follows:" msgstr "" -#: ../../library/mailbox.rst:1519 msgid "" ":class:`!MMDFMessage` instances offer the following methods, which are " "identical to those offered by :class:`mboxMessage`:" msgstr "" -#: ../../library/mailbox.rst:1568 msgid "" -"When an :class:`!MMDFMessage` instance is created based upon " -"a :class:`MaildirMessage` instance, a \"From \" line is generated based upon " -"the :class:`MaildirMessage` instance's delivery date, and the following " +"When an :class:`!MMDFMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, a \"From \" line is generated based upon the :" +"class:`MaildirMessage` instance's delivery date, and the following " "conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1587 msgid "" -"When an :class:`!MMDFMessage` instance is created based upon " -"an :class:`MHMessage` instance, the following conversions take place:" +"When an :class:`!MMDFMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1602 msgid "" -"When an :class:`!MMDFMessage` instance is created based upon " -"a :class:`BabylMessage` instance, the following conversions take place:" +"When an :class:`!MMDFMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" msgstr "" -#: ../../library/mailbox.rst:1617 msgid "" -"When an :class:`!MMDFMessage` instance is created based upon " -"an :class:`mboxMessage` instance, the \"From \" line is copied and all flags " -"directly correspond:" +"When an :class:`!MMDFMessage` instance is created based upon an :class:" +"`mboxMessage` instance, the \"From \" line is copied and all flags directly " +"correspond:" msgstr "" -#: ../../library/mailbox.rst:1622 msgid ":class:`mboxMessage` state" msgstr "" -#: ../../library/mailbox.rst:1637 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/mailbox.rst:1639 msgid "" "The following exception classes are defined in the :mod:`!mailbox` module:" msgstr "" -#: ../../library/mailbox.rst:1644 msgid "The based class for all other module-specific exceptions." msgstr "" -#: ../../library/mailbox.rst:1649 msgid "" "Raised when a mailbox is expected but is not found, such as when " "instantiating a :class:`Mailbox` subclass with a path that does not exist " @@ -1879,13 +1505,11 @@ msgid "" "that does not exist." msgstr "" -#: ../../library/mailbox.rst:1656 msgid "" "Raised when a mailbox is not empty but is expected to be, such as when " "deleting a folder that contains messages." msgstr "" -#: ../../library/mailbox.rst:1662 msgid "" "Raised when some mailbox-related condition beyond the control of the program " "causes it to be unable to proceed, such as when failing to acquire a lock " @@ -1893,23 +1517,19 @@ msgid "" "name already exists." msgstr "" -#: ../../library/mailbox.rst:1670 msgid "" "Raised when the data in a file cannot be parsed, such as when an :class:`MH` " "instance attempts to read a corrupted :file:`.mh_sequences` file." msgstr "" -#: ../../library/mailbox.rst:1677 msgid "Examples" msgstr "" -#: ../../library/mailbox.rst:1679 msgid "" "A simple example of printing the subjects of all messages in a mailbox that " "seem interesting::" msgstr "" -#: ../../library/mailbox.rst:1682 msgid "" "import mailbox\n" "for message in mailbox.mbox('~/mbox'):\n" @@ -1918,13 +1538,11 @@ msgid "" " print(subject)" msgstr "" -#: ../../library/mailbox.rst:1688 msgid "" "To copy all mail from a Babyl mailbox to an MH mailbox, converting all of " "the format-specific information that can be converted::" msgstr "" -#: ../../library/mailbox.rst:1691 msgid "" "import mailbox\n" "destination = mailbox.MH('~/Mail')\n" @@ -1935,7 +1553,6 @@ msgid "" "destination.unlock()" msgstr "" -#: ../../library/mailbox.rst:1699 msgid "" "This example sorts mail from several mailing lists into different mailboxes, " "being careful to avoid mail corruption due to concurrent modification by " @@ -1943,7 +1560,6 @@ msgid "" "termination due to malformed messages in the mailbox::" msgstr "" -#: ../../library/mailbox.rst:1704 msgid "" "import mailbox\n" "import email.errors\n" diff --git a/library/mailcap.po b/library/mailcap.po index 5f5c996..f8f7cc3 100644 --- a/library/mailcap.po +++ b/library/mailcap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/mailcap.rst:2 msgid ":mod:`!mailcap` --- Mailcap file handling" msgstr "" -#: ../../library/mailcap.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/mailcap.rst:14 msgid "" "The last version of Python that provided the :mod:`!mailcap` module was " "`Python 3.12 `_." diff --git a/library/markup.po b/library/markup.po index 4538be7..da3c82d 100644 --- a/library/markup.po +++ b/library/markup.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/markup.rst:5 msgid "Structured Markup Processing Tools" msgstr "" -#: ../../library/markup.rst:7 msgid "" "Python supports a variety of modules to work with various forms of " "structured data markup. This includes modules to work with the Standard " diff --git a/library/marshal.po b/library/marshal.po index 24f823f..db71e77 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:00+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/marshal.rst:2 msgid ":mod:`!marshal` --- Internal Python object serialization" msgstr "" -#: ../../library/marshal.rst:10 msgid "" "This module contains functions that can read and write Python values in a " "binary format. The format is specific to Python, but independent of machine " @@ -36,55 +34,47 @@ msgid "" "it rarely does). [#]_" msgstr "" -#: ../../library/marshal.rst:21 msgid "" "This is not a general \"persistence\" module. For general persistence and " "transfer of Python objects through RPC calls, see the modules :mod:`pickle` " "and :mod:`shelve`. The :mod:`marshal` module exists mainly to support " -"reading and writing the \"pseudo-compiled\" code for Python modules " -"of :file:`.pyc` files. Therefore, the Python maintainers reserve the right " -"to modify the marshal format in backward incompatible ways should the need " -"arise. The format of code objects is not compatible between Python versions, " -"even if the version of the format is the same. De-serializing a code object " -"in the incorrect Python version has undefined behavior. If you're " -"serializing and de-serializing Python objects, use the :mod:`pickle` module " -"instead -- the performance is comparable, version independence is " -"guaranteed, and pickle supports a substantially wider range of objects than " -"marshal." -msgstr "" - -#: ../../library/marshal.rst:37 +"reading and writing the \"pseudo-compiled\" code for Python modules of :file:" +"`.pyc` files. Therefore, the Python maintainers reserve the right to modify " +"the marshal format in backward incompatible ways should the need arise. The " +"format of code objects is not compatible between Python versions, even if " +"the version of the format is the same. De-serializing a code object in the " +"incorrect Python version has undefined behavior. If you're serializing and " +"de-serializing Python objects, use the :mod:`pickle` module instead -- the " +"performance is comparable, version independence is guaranteed, and pickle " +"supports a substantially wider range of objects than marshal." +msgstr "" + msgid "" "The :mod:`marshal` module is not intended to be secure against erroneous or " "maliciously constructed data. Never unmarshal data received from an " "untrusted or unauthenticated source." msgstr "" -#: ../../library/marshal.rst:41 msgid "" "There are functions that read/write files as well as functions operating on " "bytes-like objects." msgstr "" -#: ../../library/marshal.rst:46 msgid "" "Not all Python object types are supported; in general, only objects whose " "value is independent from a particular invocation of Python can be written " "and read by this module. The following types are supported:" msgstr "" -#: ../../library/marshal.rst:50 msgid "" "Numeric types: :class:`int`, :class:`bool`, :class:`float`, :class:`complex`." msgstr "" -#: ../../library/marshal.rst:51 msgid "" "Strings (:class:`str`) and :class:`bytes`. :term:`Bytes-like objects ` like :class:`bytearray` are marshalled as :class:`!bytes`." msgstr "" -#: ../../library/marshal.rst:54 msgid "" "Containers: :class:`tuple`, :class:`list`, :class:`set`, :class:`frozenset`, " "and (since :data:`version` 5), :class:`slice`. It should be understood that " @@ -92,98 +82,80 @@ msgid "" "supported. Recursive containers are supported since :data:`version` 3." msgstr "" -#: ../../library/marshal.rst:59 msgid "" "The singletons :const:`None`, :const:`Ellipsis` and :exc:`StopIteration`." msgstr "" -#: ../../library/marshal.rst:60 msgid "" ":class:`code` objects, if *allow_code* is true. See note above about version " "dependence." msgstr "" -#: ../../library/marshal.rst:65 msgid "" "Added format version 3, which supports marshalling recursive lists, sets and " "dictionaries." msgstr "" -#: ../../library/marshal.rst:67 msgid "" "Added format version 4, which supports efficient representations of short " "strings." msgstr "" -#: ../../library/marshal.rst:72 msgid "Added format version 5, which allows marshalling slices." msgstr "" -#: ../../library/marshal.rst:75 msgid "The module defines these functions:" msgstr "" -#: ../../library/marshal.rst:80 msgid "" "Write the value on the open file. The value must be a supported type. The " "file must be a writeable :term:`binary file`." msgstr "" -#: ../../library/marshal.rst:83 msgid "" -"If the value has (or contains an object that has) an unsupported type, " -"a :exc:`ValueError` exception is raised --- but garbage data will also be " -"written to the file. The object will not be properly read back " -"by :func:`load`. :ref:`Code objects ` are only supported if " +"If the value has (or contains an object that has) an unsupported type, a :" +"exc:`ValueError` exception is raised --- but garbage data will also be " +"written to the file. The object will not be properly read back by :func:" +"`load`. :ref:`Code objects ` are only supported if " "*allow_code* is true." msgstr "" -#: ../../library/marshal.rst:88 msgid "" "The *version* argument indicates the data format that ``dump`` should use " "(see below)." msgstr "" -#: ../../library/marshal.rst:91 ../../library/marshal.rst:131 msgid "" "Raises an :ref:`auditing event ` ``marshal.dumps`` with arguments " "``value``, ``version``." msgstr "" -#: ../../library/marshal.rst:93 ../../library/marshal.rst:117 -#: ../../library/marshal.rst:133 ../../library/marshal.rst:151 msgid "Added the *allow_code* parameter." msgstr "" -#: ../../library/marshal.rst:99 msgid "" "Read one value from the open file and return it. If no valid value is read " "(e.g. because the data has a different Python version's incompatible marshal " -"format), raise :exc:`EOFError`, :exc:`ValueError` " -"or :exc:`TypeError`. :ref:`Code objects ` are only supported " -"if *allow_code* is true. The file must be a readable :term:`binary file`." +"format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. :ref:" +"`Code objects ` are only supported if *allow_code* is true. " +"The file must be a readable :term:`binary file`." msgstr "" -#: ../../library/marshal.rst:105 msgid "" "Raises an :ref:`auditing event ` ``marshal.load`` with no " "arguments." msgstr "" -#: ../../library/marshal.rst:109 msgid "" -"If an object containing an unsupported type was marshalled " -"with :func:`dump`, :func:`load` will substitute ``None`` for the " -"unmarshallable type." +"If an object containing an unsupported type was marshalled with :func:" +"`dump`, :func:`load` will substitute ``None`` for the unmarshallable type." msgstr "" -#: ../../library/marshal.rst:114 msgid "" "This call used to raise a ``code.__new__`` audit event for each code object. " "Now it raises a single ``marshal.load`` event for the entire load operation." msgstr "" -#: ../../library/marshal.rst:123 msgid "" "Return the bytes object that would be written to a file by ``dump(value, " "file)``. The value must be a supported type. Raise a :exc:`ValueError` " @@ -192,116 +164,91 @@ msgid "" "is true." msgstr "" -#: ../../library/marshal.rst:128 msgid "" "The *version* argument indicates the data format that ``dumps`` should use " "(see below)." msgstr "" -#: ../../library/marshal.rst:139 msgid "" "Convert the :term:`bytes-like object` to a value. If no valid value is " -"found, raise :exc:`EOFError`, :exc:`ValueError` " -"or :exc:`TypeError`. :ref:`Code objects ` are only supported " -"if *allow_code* is true. Extra bytes in the input are ignored." +"found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. :ref:" +"`Code objects ` are only supported if *allow_code* is true. " +"Extra bytes in the input are ignored." msgstr "" -#: ../../library/marshal.rst:144 msgid "" "Raises an :ref:`auditing event ` ``marshal.loads`` with argument " "``bytes``." msgstr "" -#: ../../library/marshal.rst:148 msgid "" "This call used to raise a ``code.__new__`` audit event for each code object. " "Now it raises a single ``marshal.loads`` event for the entire load operation." msgstr "" -#: ../../library/marshal.rst:155 msgid "In addition, the following constants are defined:" msgstr "" -#: ../../library/marshal.rst:159 msgid "" "Indicates the format that the module uses. Version 0 is the historical first " "version; subsequent versions add new features. Generally, a new version " "becomes the default when it is introduced." msgstr "" -#: ../../library/marshal.rst:165 msgid "Version" msgstr "" -#: ../../library/marshal.rst:165 msgid "Available since" msgstr "" -#: ../../library/marshal.rst:165 msgid "New features" msgstr "" -#: ../../library/marshal.rst:167 msgid "1" msgstr "1" -#: ../../library/marshal.rst:167 msgid "Python 2.4" msgstr "" -#: ../../library/marshal.rst:167 msgid "Sharing interned strings" msgstr "" -#: ../../library/marshal.rst:169 msgid "2" msgstr "2" -#: ../../library/marshal.rst:169 msgid "Python 2.5" msgstr "" -#: ../../library/marshal.rst:169 msgid "Binary representation of floats" msgstr "" -#: ../../library/marshal.rst:171 msgid "3" msgstr "3" -#: ../../library/marshal.rst:171 ../../library/marshal.rst:173 msgid "Python 3.4" msgstr "" -#: ../../library/marshal.rst:171 msgid "Support for object instancing and recursion" msgstr "" -#: ../../library/marshal.rst:173 msgid "4" msgstr "4" -#: ../../library/marshal.rst:173 msgid "Efficient representation of short strings" msgstr "" -#: ../../library/marshal.rst:175 msgid "5" msgstr "" -#: ../../library/marshal.rst:175 msgid "Python 3.14" msgstr "" -#: ../../library/marshal.rst:175 msgid "Support for :class:`slice` objects" msgstr "" -#: ../../library/marshal.rst:180 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/marshal.rst:181 msgid "" "The name of this module stems from a bit of terminology used by the " "designers of Modula-3 (amongst others), who use the term \"marshalling\" for " @@ -310,26 +257,20 @@ msgid "" "RPC buffer for instance) and \"unmarshalling\" for the reverse process." msgstr "" -#: ../../library/marshal.rst:17 msgid "module" msgstr "" -#: ../../library/marshal.rst:17 msgid "pickle" msgstr "" -#: ../../library/marshal.rst:17 msgid "shelve" msgstr "" -#: ../../library/marshal.rst:44 msgid "object" msgstr "" -#: ../../library/marshal.rst:44 msgid "code" msgstr "" -#: ../../library/marshal.rst:44 msgid "code object" msgstr "" diff --git a/library/math.po b/library/math.po index 290b235..c33d29d 100644 --- a/library/math.po +++ b/library/math.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,17 +18,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/math.rst:2 msgid ":mod:`!math` --- Mathematical functions" msgstr "" -#: ../../library/math.rst:13 msgid "" "This module provides access to common mathematical functions and constants, " "including those defined by the C standard." msgstr "" -#: ../../library/math.rst:16 msgid "" "These functions cannot be used with complex numbers; use the functions of " "the same name from the :mod:`cmath` module if you require support for " @@ -40,595 +37,452 @@ msgid "" "can determine how and why it was generated in the first place." msgstr "" -#: ../../library/math.rst:25 msgid "" "The following functions are provided by this module. Except when explicitly " "noted otherwise, all return values are floats." msgstr "" -#: ../../library/math.rst:30 msgid "**Number-theoretic functions**" msgstr "" -#: ../../library/math.rst:32 msgid ":func:`comb(n, k) `" msgstr "" -#: ../../library/math.rst:32 msgid "" "Number of ways to choose *k* items from *n* items without repetition and " "without order" msgstr "" -#: ../../library/math.rst:33 msgid ":func:`factorial(n) `" msgstr "" -#: ../../library/math.rst:33 msgid "*n* factorial" msgstr "" -#: ../../library/math.rst:34 msgid ":func:`gcd(*integers) `" msgstr "" -#: ../../library/math.rst:34 msgid "Greatest common divisor of the integer arguments" msgstr "" -#: ../../library/math.rst:35 msgid ":func:`isqrt(n) `" msgstr "" -#: ../../library/math.rst:35 msgid "Integer square root of a nonnegative integer *n*" msgstr "" -#: ../../library/math.rst:36 msgid ":func:`lcm(*integers) `" msgstr "" -#: ../../library/math.rst:36 msgid "Least common multiple of the integer arguments" msgstr "" -#: ../../library/math.rst:37 msgid ":func:`perm(n, k) `" msgstr "" -#: ../../library/math.rst:37 msgid "" "Number of ways to choose *k* items from *n* items without repetition and " "with order" msgstr "" -#: ../../library/math.rst:39 msgid "**Floating point arithmetic**" msgstr "" -#: ../../library/math.rst:41 msgid ":func:`ceil(x) `" msgstr "" -#: ../../library/math.rst:41 msgid "Ceiling of *x*, the smallest integer greater than or equal to *x*" msgstr "" -#: ../../library/math.rst:42 msgid ":func:`fabs(x) `" msgstr "" -#: ../../library/math.rst:42 msgid "Absolute value of *x*" msgstr "" -#: ../../library/math.rst:43 msgid ":func:`floor(x) `" msgstr "" -#: ../../library/math.rst:43 msgid "Floor of *x*, the largest integer less than or equal to *x*" msgstr "" -#: ../../library/math.rst:44 msgid ":func:`fma(x, y, z) `" msgstr "" -#: ../../library/math.rst:44 msgid "Fused multiply-add operation: ``(x * y) + z``" msgstr "" -#: ../../library/math.rst:45 msgid ":func:`fmod(x, y) `" msgstr "" -#: ../../library/math.rst:45 msgid "Remainder of division ``x / y``" msgstr "" -#: ../../library/math.rst:46 msgid ":func:`modf(x) `" msgstr "" -#: ../../library/math.rst:46 msgid "Fractional and integer parts of *x*" msgstr "" -#: ../../library/math.rst:47 msgid ":func:`remainder(x, y) `" msgstr "" -#: ../../library/math.rst:47 msgid "Remainder of *x* with respect to *y*" msgstr "" -#: ../../library/math.rst:48 msgid ":func:`trunc(x) `" msgstr "" -#: ../../library/math.rst:48 msgid "Integer part of *x*" msgstr "" -#: ../../library/math.rst:50 msgid "**Floating point manipulation functions**" msgstr "" -#: ../../library/math.rst:52 msgid ":func:`copysign(x, y) `" msgstr "" -#: ../../library/math.rst:52 msgid "Magnitude (absolute value) of *x* with the sign of *y*" msgstr "" -#: ../../library/math.rst:53 msgid ":func:`frexp(x) `" msgstr "" -#: ../../library/math.rst:53 msgid "Mantissa and exponent of *x*" msgstr "" -#: ../../library/math.rst:54 msgid ":func:`isclose(a, b, rel_tol, abs_tol) `" msgstr "" -#: ../../library/math.rst:54 msgid "Check if the values *a* and *b* are close to each other" msgstr "" -#: ../../library/math.rst:55 msgid ":func:`isfinite(x) `" msgstr "" -#: ../../library/math.rst:55 msgid "Check if *x* is neither an infinity nor a NaN" msgstr "" -#: ../../library/math.rst:56 msgid ":func:`isinf(x) `" msgstr "" -#: ../../library/math.rst:56 msgid "Check if *x* is a positive or negative infinity" msgstr "" -#: ../../library/math.rst:57 msgid ":func:`isnan(x) `" msgstr "" -#: ../../library/math.rst:57 msgid "Check if *x* is a NaN (not a number)" msgstr "" -#: ../../library/math.rst:58 msgid ":func:`ldexp(x, i) `" msgstr "" -#: ../../library/math.rst:58 msgid "``x * (2**i)``, inverse of function :func:`frexp`" msgstr "" -#: ../../library/math.rst:59 msgid ":func:`nextafter(x, y, steps) `" msgstr "" -#: ../../library/math.rst:59 msgid "Floating-point value *steps* steps after *x* towards *y*" msgstr "" -#: ../../library/math.rst:60 msgid ":func:`ulp(x) `" msgstr "" -#: ../../library/math.rst:60 msgid "Value of the least significant bit of *x*" msgstr "" -#: ../../library/math.rst:62 msgid "**Power, exponential and logarithmic functions**" msgstr "" -#: ../../library/math.rst:64 msgid ":func:`cbrt(x) `" msgstr "" -#: ../../library/math.rst:64 msgid "Cube root of *x*" msgstr "" -#: ../../library/math.rst:65 msgid ":func:`exp(x) `" msgstr "" -#: ../../library/math.rst:65 msgid "*e* raised to the power *x*" msgstr "" -#: ../../library/math.rst:66 msgid ":func:`exp2(x) `" msgstr "" -#: ../../library/math.rst:66 msgid "*2* raised to the power *x*" msgstr "" -#: ../../library/math.rst:67 msgid ":func:`expm1(x) `" msgstr "" -#: ../../library/math.rst:67 msgid "*e* raised to the power *x*, minus 1" msgstr "" -#: ../../library/math.rst:68 msgid ":func:`log(x, base) `" msgstr "" -#: ../../library/math.rst:68 msgid "Logarithm of *x* to the given base (*e* by default)" msgstr "" -#: ../../library/math.rst:69 msgid ":func:`log1p(x) `" msgstr "" -#: ../../library/math.rst:69 msgid "Natural logarithm of *1+x* (base *e*)" msgstr "" -#: ../../library/math.rst:70 msgid ":func:`log2(x) `" msgstr "" -#: ../../library/math.rst:70 msgid "Base-2 logarithm of *x*" msgstr "" -#: ../../library/math.rst:71 msgid ":func:`log10(x) `" msgstr "" -#: ../../library/math.rst:71 msgid "Base-10 logarithm of *x*" msgstr "" -#: ../../library/math.rst:72 msgid ":func:`pow(x, y) `" msgstr "" -#: ../../library/math.rst:72 msgid "*x* raised to the power *y*" msgstr "" -#: ../../library/math.rst:73 msgid ":func:`sqrt(x) `" msgstr "" -#: ../../library/math.rst:73 msgid "Square root of *x*" msgstr "" -#: ../../library/math.rst:75 msgid "**Summation and product functions**" msgstr "" -#: ../../library/math.rst:77 msgid ":func:`dist(p, q) `" msgstr "" -#: ../../library/math.rst:77 msgid "" "Euclidean distance between two points *p* and *q* given as an iterable of " "coordinates" msgstr "" -#: ../../library/math.rst:78 msgid ":func:`fsum(iterable) `" msgstr "" -#: ../../library/math.rst:78 msgid "Sum of values in the input *iterable*" msgstr "" -#: ../../library/math.rst:79 msgid ":func:`hypot(*coordinates) `" msgstr "" -#: ../../library/math.rst:79 msgid "Euclidean norm of an iterable of coordinates" msgstr "" -#: ../../library/math.rst:80 msgid ":func:`prod(iterable, start) `" msgstr "" -#: ../../library/math.rst:80 msgid "Product of elements in the input *iterable* with a *start* value" msgstr "" -#: ../../library/math.rst:81 msgid ":func:`sumprod(p, q) `" msgstr "" -#: ../../library/math.rst:81 msgid "Sum of products from two iterables *p* and *q*" msgstr "" -#: ../../library/math.rst:83 msgid "**Angular conversion**" msgstr "" -#: ../../library/math.rst:85 msgid ":func:`degrees(x) `" msgstr "" -#: ../../library/math.rst:85 msgid "Convert angle *x* from radians to degrees" msgstr "" -#: ../../library/math.rst:86 msgid ":func:`radians(x) `" msgstr "" -#: ../../library/math.rst:86 msgid "Convert angle *x* from degrees to radians" msgstr "" -#: ../../library/math.rst:88 msgid "**Trigonometric functions**" msgstr "" -#: ../../library/math.rst:90 msgid ":func:`acos(x) `" msgstr "" -#: ../../library/math.rst:90 msgid "Arc cosine of *x*" msgstr "" -#: ../../library/math.rst:91 msgid ":func:`asin(x) `" msgstr "" -#: ../../library/math.rst:91 msgid "Arc sine of *x*" msgstr "" -#: ../../library/math.rst:92 msgid ":func:`atan(x) `" msgstr "" -#: ../../library/math.rst:92 msgid "Arc tangent of *x*" msgstr "" -#: ../../library/math.rst:93 msgid ":func:`atan2(y, x) `" msgstr "" -#: ../../library/math.rst:93 msgid "``atan(y / x)``" msgstr "" -#: ../../library/math.rst:94 msgid ":func:`cos(x) `" msgstr "" -#: ../../library/math.rst:94 msgid "Cosine of *x*" msgstr "" -#: ../../library/math.rst:95 msgid ":func:`sin(x) `" msgstr "" -#: ../../library/math.rst:95 msgid "Sine of *x*" msgstr "" -#: ../../library/math.rst:96 msgid ":func:`tan(x) `" msgstr "" -#: ../../library/math.rst:96 msgid "Tangent of *x*" msgstr "" -#: ../../library/math.rst:98 msgid "**Hyperbolic functions**" msgstr "" -#: ../../library/math.rst:100 msgid ":func:`acosh(x) `" msgstr "" -#: ../../library/math.rst:100 msgid "Inverse hyperbolic cosine of *x*" msgstr "" -#: ../../library/math.rst:101 msgid ":func:`asinh(x) `" msgstr "" -#: ../../library/math.rst:101 msgid "Inverse hyperbolic sine of *x*" msgstr "" -#: ../../library/math.rst:102 msgid ":func:`atanh(x) `" msgstr "" -#: ../../library/math.rst:102 msgid "Inverse hyperbolic tangent of *x*" msgstr "" -#: ../../library/math.rst:103 msgid ":func:`cosh(x) `" msgstr "" -#: ../../library/math.rst:103 msgid "Hyperbolic cosine of *x*" msgstr "" -#: ../../library/math.rst:104 msgid ":func:`sinh(x) `" msgstr "" -#: ../../library/math.rst:104 msgid "Hyperbolic sine of *x*" msgstr "" -#: ../../library/math.rst:105 msgid ":func:`tanh(x) `" msgstr "" -#: ../../library/math.rst:105 msgid "Hyperbolic tangent of *x*" msgstr "" -#: ../../library/math.rst:107 msgid "**Special functions**" msgstr "" -#: ../../library/math.rst:109 msgid ":func:`erf(x) `" msgstr "" -#: ../../library/math.rst:109 msgid "`Error function `_ at *x*" msgstr "" -#: ../../library/math.rst:110 msgid ":func:`erfc(x) `" msgstr "" -#: ../../library/math.rst:110 msgid "" "`Complementary error function `_ at *x*" msgstr "" -#: ../../library/math.rst:111 msgid ":func:`gamma(x) `" msgstr "" -#: ../../library/math.rst:111 msgid "`Gamma function `_ at *x*" msgstr "" -#: ../../library/math.rst:112 msgid ":func:`lgamma(x) `" msgstr "" -#: ../../library/math.rst:112 msgid "" -"Natural logarithm of the absolute value of the `Gamma function `_ at *x*" +"Natural logarithm of the absolute value of the `Gamma function `_ at *x*" msgstr "" -#: ../../library/math.rst:114 msgid "**Constants**" msgstr "" -#: ../../library/math.rst:116 msgid ":data:`pi`" msgstr "" -#: ../../library/math.rst:116 msgid "*π* = 3.141592..." msgstr "" -#: ../../library/math.rst:117 msgid ":data:`e`" msgstr "" -#: ../../library/math.rst:117 msgid "*e* = 2.718281..." msgstr "" -#: ../../library/math.rst:118 msgid ":data:`tau`" msgstr "" -#: ../../library/math.rst:118 msgid "*τ* = 2\\ *π* = 6.283185..." msgstr "" -#: ../../library/math.rst:119 msgid ":data:`inf`" msgstr "" -#: ../../library/math.rst:119 msgid "Positive infinity" msgstr "" -#: ../../library/math.rst:120 msgid ":data:`nan`" msgstr "" -#: ../../library/math.rst:120 msgid "\"Not a number\" (NaN)" msgstr "" -#: ../../library/math.rst:125 msgid "Number-theoretic functions" msgstr "" -#: ../../library/math.rst:129 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and without order." msgstr "" -#: ../../library/math.rst:132 msgid "" "Evaluates to ``n! / (k! * (n - k)!)`` when ``k <= n`` and evaluates to zero " "when ``k > n``." msgstr "" -#: ../../library/math.rst:135 msgid "" "Also called the binomial coefficient because it is equivalent to the " "coefficient of k-th term in polynomial expansion of ``(1 + x)ⁿ``." msgstr "" -#: ../../library/math.rst:139 ../../library/math.rst:204 msgid "" -"Raises :exc:`TypeError` if either of the arguments are not integers. " -"Raises :exc:`ValueError` if either of the arguments are negative." +"Raises :exc:`TypeError` if either of the arguments are not integers. Raises :" +"exc:`ValueError` if either of the arguments are negative." msgstr "" -#: ../../library/math.rst:147 msgid "Return factorial of the nonnegative integer *n*." msgstr "" -#: ../../library/math.rst:149 msgid "Floats with integral values (like ``5.0``) are no longer accepted." msgstr "" -#: ../../library/math.rst:155 msgid "" "Return the greatest common divisor of the specified integer arguments. If " "any of the arguments is nonzero, then the returned value is the largest " @@ -637,20 +491,17 @@ msgid "" "``0``." msgstr "" -#: ../../library/math.rst:163 msgid "" "Added support for an arbitrary number of arguments. Formerly, only two " "arguments were supported." msgstr "" -#: ../../library/math.rst:170 msgid "" "Return the integer square root of the nonnegative integer *n*. This is the " "floor of the exact square root of *n*, or equivalently the greatest integer " "*a* such that *a*\\ ² |nbsp| ≤ |nbsp| *n*." msgstr "" -#: ../../library/math.rst:174 msgid "" "For some applications, it may be more convenient to have the least integer " "*a* such that *n* |nbsp| ≤ |nbsp| *a*\\ ², or in other words the ceiling of " @@ -658,7 +509,6 @@ msgid "" "``a = 1 + isqrt(n - 1)``." msgstr "" -#: ../../library/math.rst:184 msgid "" "Return the least common multiple of the specified integer arguments. If all " "arguments are nonzero, then the returned value is the smallest positive " @@ -667,47 +517,39 @@ msgid "" "``1``." msgstr "" -#: ../../library/math.rst:195 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and with order." msgstr "" -#: ../../library/math.rst:198 msgid "" "Evaluates to ``n! / (n - k)!`` when ``k <= n`` and evaluates to zero when " "``k > n``." msgstr "" -#: ../../library/math.rst:201 msgid "" "If *k* is not specified or is ``None``, then *k* defaults to *n* and the " "function returns ``n!``." msgstr "" -#: ../../library/math.rst:211 msgid "Floating point arithmetic" msgstr "" -#: ../../library/math.rst:215 msgid "" "Return the ceiling of *x*, the smallest integer greater than or equal to " -"*x*. If *x* is not a float, delegates to :meth:`x.__ceil__ " -"`, which should return an :class:`~numbers.Integral` value." +"*x*. If *x* is not a float, delegates to :meth:`x.__ceil__ `, which should return an :class:`~numbers.Integral` value." msgstr "" -#: ../../library/math.rst:222 msgid "Return the absolute value of *x*." msgstr "" -#: ../../library/math.rst:227 msgid "" "Return the floor of *x*, the largest integer less than or equal to *x*. If " "*x* is not a float, delegates to :meth:`x.__floor__ `, " "which should return an :class:`~numbers.Integral` value." msgstr "" -#: ../../library/math.rst:234 msgid "" "Fused multiply-add operation. Return ``(x * y) + z``, computed as though " "with infinite precision and range followed by a single round to the " @@ -715,7 +557,6 @@ msgid "" "direct expression ``(x * y) + z``." msgstr "" -#: ../../library/math.rst:239 msgid "" "This function follows the specification of the fusedMultiplyAdd operation " "described in the IEEE 754 standard. The standard leaves one case " @@ -724,7 +565,6 @@ msgid "" "not raise any exception." msgstr "" -#: ../../library/math.rst:250 msgid "" "Return the floating-point remainder of ``x / y``, as defined by the platform " "C library function ``fmod(x, y)``. Note that the Python expression ``x % y`` " @@ -740,13 +580,11 @@ msgid "" "floats, while Python's ``x % y`` is preferred when working with integers." msgstr "" -#: ../../library/math.rst:266 msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." msgstr "" -#: ../../library/math.rst:269 msgid "" "Note that :func:`modf` has a different call/return pattern than its C " "equivalents: it takes a single argument and return a pair of values, rather " @@ -754,7 +592,6 @@ msgid "" "is no such thing in Python)." msgstr "" -#: ../../library/math.rst:277 msgid "" "Return the IEEE 754-style remainder of *x* with respect to *y*. For finite " "*x* and finite nonzero *y*, this is the difference ``x - n*y``, where ``n`` " @@ -764,7 +601,6 @@ msgid "" "thus always satisfies ``abs(r) <= 0.5 * abs(y)``." msgstr "" -#: ../../library/math.rst:284 msgid "" "Special cases follow IEEE 754: in particular, ``remainder(x, math.inf)`` is " "*x* for any finite *x*, and ``remainder(x, 0)`` and ``remainder(math.inf, " @@ -772,22 +608,19 @@ msgid "" "remainder operation is zero, that zero will have the same sign as *x*." msgstr "" -#: ../../library/math.rst:290 msgid "" "On platforms using IEEE 754 binary floating point, the result of this " "operation is always exactly representable: no rounding error is introduced." msgstr "" -#: ../../library/math.rst:298 msgid "" "Return *x* with the fractional part removed, leaving the integer part. This " "rounds toward 0: ``trunc()`` is equivalent to :func:`floor` for positive " "*x*, and equivalent to :func:`ceil` for negative *x*. If *x* is not a float, " -"delegates to :meth:`x.__trunc__ `, which should return " -"an :class:`~numbers.Integral` value." +"delegates to :meth:`x.__trunc__ `, which should return an :" +"class:`~numbers.Integral` value." msgstr "" -#: ../../library/math.rst:305 msgid "" "For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that " "*all* floating-point numbers of sufficiently large magnitude are exact " @@ -796,18 +629,15 @@ msgid "" "``abs(x) >= 2**52`` necessarily has no fractional bits." msgstr "" -#: ../../library/math.rst:313 msgid "Floating point manipulation functions" msgstr "" -#: ../../library/math.rst:317 msgid "" "Return a float with the magnitude (absolute value) of *x* but the sign of " "*y*. On platforms that support signed zeros, ``copysign(1.0, -0.0)`` " "returns *-1.0*." msgstr "" -#: ../../library/math.rst:324 msgid "" "Return the mantissa and exponent of *x* as the pair ``(m, e)``. *m* is a " "float and *e* is an integer such that ``x == m * 2**e`` exactly. If *x* is " @@ -815,7 +645,6 @@ msgid "" "to \"pick apart\" the internal representation of a float in a portable way." msgstr "" -#: ../../library/math.rst:329 msgid "" "Note that :func:`frexp` has a different call/return pattern than its C " "equivalents: it takes a single argument and return a pair of values, rather " @@ -823,20 +652,17 @@ msgid "" "is no such thing in Python)." msgstr "" -#: ../../library/math.rst:336 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." msgstr "" -#: ../../library/math.rst:339 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances. If no errors occur, the result will " "be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``." msgstr "" -#: ../../library/math.rst:343 msgid "" "*rel_tol* is the relative tolerance -- it is the maximum allowed difference " "between *a* and *b*, relative to the larger absolute value of *a* or *b*. " @@ -846,7 +672,6 @@ msgid "" "``1.0``." msgstr "" -#: ../../library/math.rst:350 msgid "" "*abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be " "nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed " @@ -855,7 +680,6 @@ msgid "" "argument to the call." msgstr "" -#: ../../library/math.rst:356 msgid "" "The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " "handled according to IEEE rules. Specifically, ``NaN`` is not considered " @@ -863,136 +687,108 @@ msgid "" "considered close to themselves." msgstr "" -#: ../../library/math.rst:365 msgid ":pep:`485` -- A function for testing approximate equality" msgstr "" -#: ../../library/math.rst:370 msgid "" "Return ``True`` if *x* is neither an infinity nor a NaN, and ``False`` " "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" -#: ../../library/math.rst:378 msgid "" "Return ``True`` if *x* is a positive or negative infinity, and ``False`` " "otherwise." msgstr "" -#: ../../library/math.rst:384 msgid "" "Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise." msgstr "" -#: ../../library/math.rst:389 msgid "" -"Return ``x * (2**i)``. This is essentially the inverse of " -"function :func:`frexp`." +"Return ``x * (2**i)``. This is essentially the inverse of function :func:" +"`frexp`." msgstr "" -#: ../../library/math.rst:395 msgid "Return the floating-point value *steps* steps after *x* towards *y*." msgstr "" -#: ../../library/math.rst:397 msgid "If *x* is equal to *y*, return *y*, unless *steps* is zero." msgstr "" -#: ../../library/math.rst:399 msgid "Examples:" msgstr "" -#: ../../library/math.rst:401 msgid "``math.nextafter(x, math.inf)`` goes up: towards positive infinity." msgstr "" -#: ../../library/math.rst:402 msgid "``math.nextafter(x, -math.inf)`` goes down: towards minus infinity." msgstr "" -#: ../../library/math.rst:403 msgid "``math.nextafter(x, 0.0)`` goes towards zero." msgstr "" -#: ../../library/math.rst:404 msgid "``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero." msgstr "" -#: ../../library/math.rst:406 msgid "See also :func:`math.ulp`." msgstr "" -#: ../../library/math.rst:410 msgid "Added the *steps* argument." msgstr "" -#: ../../library/math.rst:416 msgid "Return the value of the least significant bit of the float *x*:" msgstr "" -#: ../../library/math.rst:418 msgid "If *x* is a NaN (not a number), return *x*." msgstr "" -#: ../../library/math.rst:419 msgid "If *x* is negative, return ``ulp(-x)``." msgstr "" -#: ../../library/math.rst:420 msgid "If *x* is a positive infinity, return *x*." msgstr "" -#: ../../library/math.rst:421 msgid "" "If *x* is equal to zero, return the smallest positive *denormalized* " -"representable float (smaller than the minimum positive *normalized* " -"float, :data:`sys.float_info.min `)." +"representable float (smaller than the minimum positive *normalized* float, :" +"data:`sys.float_info.min `)." msgstr "" -#: ../../library/math.rst:424 msgid "" "If *x* is equal to the largest positive representable float, return the " "value of the least significant bit of *x*, such that the first float smaller " "than *x* is ``x - ulp(x)``." msgstr "" -#: ../../library/math.rst:427 msgid "" "Otherwise (*x* is a positive finite number), return the value of the least " "significant bit of *x*, such that the first float bigger than *x* is ``x + " "ulp(x)``." msgstr "" -#: ../../library/math.rst:431 msgid "ULP stands for \"Unit in the Last Place\"." msgstr "" -#: ../../library/math.rst:433 msgid "" -"See also :func:`math.nextafter` and :data:`sys.float_info.epsilon " -"`." +"See also :func:`math.nextafter` and :data:`sys.float_info.epsilon `." msgstr "" -#: ../../library/math.rst:440 msgid "Power, exponential and logarithmic functions" msgstr "" -#: ../../library/math.rst:444 msgid "Return the cube root of *x*." msgstr "" -#: ../../library/math.rst:451 msgid "" "Return *e* raised to the power *x*, where *e* = 2.718281... is the base of " "natural logarithms. This is usually more accurate than ``math.e ** x`` or " "``pow(math.e, x)``." msgstr "" -#: ../../library/math.rst:458 msgid "Return *2* raised to the power *x*." msgstr "" -#: ../../library/math.rst:465 msgid "" "Return *e* raised to the power *x*, minus 1. Here *e* is the base of " "natural logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` " @@ -1001,41 +797,34 @@ msgid "" "compute this quantity to full precision:" msgstr "" -#: ../../library/math.rst:482 msgid "With one argument, return the natural logarithm of *x* (to base *e*)." msgstr "" -#: ../../library/math.rst:484 msgid "" "With two arguments, return the logarithm of *x* to the given *base*, " "calculated as ``log(x)/log(base)``." msgstr "" -#: ../../library/math.rst:490 msgid "" "Return the natural logarithm of *1+x* (base *e*). The result is calculated " "in a way which is accurate for *x* near zero." msgstr "" -#: ../../library/math.rst:496 msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" -#: ../../library/math.rst:503 msgid "" ":meth:`int.bit_length` returns the number of bits necessary to represent an " "integer in binary, excluding the sign and leading zeros." msgstr "" -#: ../../library/math.rst:509 msgid "" "Return the base-10 logarithm of *x*. This is usually more accurate than " "``log(x, 10)``." msgstr "" -#: ../../library/math.rst:515 msgid "" "Return *x* raised to the power *y*. Exceptional cases follow the IEEE 754 " "standard as far as possible. In particular, ``pow(1.0, x)`` and ``pow(x, " @@ -1044,50 +833,41 @@ msgid "" "y)`` is undefined, and raises :exc:`ValueError`." msgstr "" -#: ../../library/math.rst:522 msgid "" "Unlike the built-in ``**`` operator, :func:`math.pow` converts both its " "arguments to type :class:`float`. Use ``**`` or the built-in :func:`pow` " "function for computing exact integer powers." msgstr "" -#: ../../library/math.rst:526 msgid "" "The special cases ``pow(0.0, -inf)`` and ``pow(-0.0, -inf)`` were changed to " "return ``inf`` instead of raising :exc:`ValueError`, for consistency with " "IEEE 754." msgstr "" -#: ../../library/math.rst:534 msgid "Return the square root of *x*." msgstr "" -#: ../../library/math.rst:538 msgid "Summation and product functions" msgstr "" -#: ../../library/math.rst:542 msgid "" "Return the Euclidean distance between two points *p* and *q*, each given as " "a sequence (or iterable) of coordinates. The two points must have the same " "dimension." msgstr "" -#: ../../library/math.rst:546 ../../library/math.rst:607 msgid "Roughly equivalent to::" msgstr "" -#: ../../library/math.rst:548 msgid "sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))" msgstr "" -#: ../../library/math.rst:555 msgid "" "Return an accurate floating-point sum of values in the iterable. Avoids " "loss of precision by tracking multiple intermediate partial sums." msgstr "" -#: ../../library/math.rst:558 msgid "" "The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the " "typical case where the rounding mode is half-even. On some non-Windows " @@ -1096,188 +876,153 @@ msgid "" "least significant bit." msgstr "" -#: ../../library/math.rst:564 msgid "" "For further discussion and two alternative approaches, see the `ASPN " -"cookbook recipes for accurate floating-point summation `_\\." +"cookbook recipes for accurate floating-point summation `_\\." msgstr "" -#: ../../library/math.rst:571 msgid "" "Return the Euclidean norm, ``sqrt(sum(x**2 for x in coordinates))``. This is " "the length of the vector from the origin to the point given by the " "coordinates." msgstr "" -#: ../../library/math.rst:575 msgid "" "For a two dimensional point ``(x, y)``, this is equivalent to computing the " "hypotenuse of a right triangle using the Pythagorean theorem, ``sqrt(x*x + " "y*y)``." msgstr "" -#: ../../library/math.rst:579 msgid "" "Added support for n-dimensional points. Formerly, only the two dimensional " "case was supported." msgstr "" -#: ../../library/math.rst:583 msgid "" "Improved the algorithm's accuracy so that the maximum error is under 1 ulp " "(unit in the last place). More typically, the result is almost always " "correctly rounded to within 1/2 ulp." msgstr "" -#: ../../library/math.rst:591 msgid "" "Calculate the product of all the elements in the input *iterable*. The " "default *start* value for the product is ``1``." msgstr "" -#: ../../library/math.rst:594 msgid "" "When the iterable is empty, return the start value. This function is " "intended specifically for use with numeric values and may reject non-numeric " "types." msgstr "" -#: ../../library/math.rst:603 msgid "Return the sum of products of values from two iterables *p* and *q*." msgstr "" -#: ../../library/math.rst:605 msgid "Raises :exc:`ValueError` if the inputs do not have the same length." msgstr "" -#: ../../library/math.rst:609 msgid "sum(map(operator.mul, p, q, strict=True))" msgstr "" -#: ../../library/math.rst:611 msgid "" "For float and mixed int/float inputs, the intermediate products and sums are " "computed with extended precision." msgstr "" -#: ../../library/math.rst:618 msgid "Angular conversion" msgstr "" -#: ../../library/math.rst:622 msgid "Convert angle *x* from radians to degrees." msgstr "" -#: ../../library/math.rst:627 msgid "Convert angle *x* from degrees to radians." msgstr "" -#: ../../library/math.rst:631 msgid "Trigonometric functions" msgstr "" -#: ../../library/math.rst:635 msgid "" "Return the arc cosine of *x*, in radians. The result is between ``0`` and " "``pi``." msgstr "" -#: ../../library/math.rst:641 msgid "" "Return the arc sine of *x*, in radians. The result is between ``-pi/2`` and " "``pi/2``." msgstr "" -#: ../../library/math.rst:647 msgid "" "Return the arc tangent of *x*, in radians. The result is between ``-pi/2`` " "and ``pi/2``." msgstr "" -#: ../../library/math.rst:653 msgid "" "Return ``atan(y / x)``, in radians. The result is between ``-pi`` and " "``pi``. The vector in the plane from the origin to point ``(x, y)`` makes " "this angle with the positive X axis. The point of :func:`atan2` is that the " "signs of both inputs are known to it, so it can compute the correct quadrant " -"for the angle. For example, ``atan(1)`` and ``atan2(1, 1)`` are both ``pi/" -"4``, but ``atan2(-1, -1)`` is ``-3*pi/4``." +"for the angle. For example, ``atan(1)`` and ``atan2(1, 1)`` are both " +"``pi/4``, but ``atan2(-1, -1)`` is ``-3*pi/4``." msgstr "" -#: ../../library/math.rst:663 msgid "Return the cosine of *x* radians." msgstr "" -#: ../../library/math.rst:668 msgid "Return the sine of *x* radians." msgstr "" -#: ../../library/math.rst:673 msgid "Return the tangent of *x* radians." msgstr "" -#: ../../library/math.rst:677 msgid "Hyperbolic functions" msgstr "" -#: ../../library/math.rst:679 msgid "" "`Hyperbolic functions `_ " "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" -#: ../../library/math.rst:685 msgid "Return the inverse hyperbolic cosine of *x*." msgstr "" -#: ../../library/math.rst:690 msgid "Return the inverse hyperbolic sine of *x*." msgstr "" -#: ../../library/math.rst:695 msgid "Return the inverse hyperbolic tangent of *x*." msgstr "" -#: ../../library/math.rst:700 msgid "Return the hyperbolic cosine of *x*." msgstr "" -#: ../../library/math.rst:705 msgid "Return the hyperbolic sine of *x*." msgstr "" -#: ../../library/math.rst:710 msgid "Return the hyperbolic tangent of *x*." msgstr "" -#: ../../library/math.rst:714 msgid "Special functions" msgstr "" -#: ../../library/math.rst:718 msgid "" "Return the `error function `_ " "at *x*." msgstr "" -#: ../../library/math.rst:721 msgid "" "The :func:`erf` function can be used to compute traditional statistical " -"functions such as the `cumulative standard normal distribution `_::" +"functions such as the `cumulative standard normal distribution `_::" msgstr "" -#: ../../library/math.rst:725 msgid "" "def phi(x):\n" " 'Cumulative distribution function for the standard normal distribution'\n" " return (1.0 + erf(x / sqrt(2.0))) / 2.0" msgstr "" -#: ../../library/math.rst:734 msgid "" "Return the complementary error function at *x*. The `complementary error " "function `_ is defined as " @@ -1286,31 +1031,25 @@ msgid "" "Loss_of_significance>`_\\." msgstr "" -#: ../../library/math.rst:745 msgid "" "Return the `Gamma function `_ " "at *x*." msgstr "" -#: ../../library/math.rst:753 msgid "" "Return the natural logarithm of the absolute value of the Gamma function at " "*x*." msgstr "" -#: ../../library/math.rst:760 msgid "Constants" msgstr "" -#: ../../library/math.rst:764 msgid "The mathematical constant *π* = 3.141592..., to available precision." msgstr "" -#: ../../library/math.rst:769 msgid "The mathematical constant *e* = 2.718281..., to available precision." msgstr "" -#: ../../library/math.rst:774 msgid "" "The mathematical constant *τ* = 6.283185..., to available precision. Tau is " "a circle constant equal to 2\\ *π*, the ratio of a circle's circumference to " @@ -1319,13 +1058,11 @@ msgid "" "day `_ by eating twice as much pie!" msgstr "" -#: ../../library/math.rst:785 msgid "" -"A floating-point positive infinity. (For negative infinity, use ``-" -"math.inf``.) Equivalent to the output of ``float('inf')``." +"A floating-point positive infinity. (For negative infinity, use ``-math." +"inf``.) Equivalent to the output of ``float('inf')``." msgstr "" -#: ../../library/math.rst:793 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to the output of " "``float('nan')``. Due to the requirements of the `IEEE-754 standard >> import mimetypes\n" ">>> mimetypes.init()\n" @@ -236,51 +204,42 @@ msgid "" "'application/x-tar-gz'" msgstr "" -#: ../../library/mimetypes.rst:195 msgid "MimeTypes objects" msgstr "" -#: ../../library/mimetypes.rst:197 msgid "" "The :class:`MimeTypes` class may be useful for applications which may want " "more than one MIME-type database; it provides an interface similar to the " "one of the :mod:`mimetypes` module." msgstr "" -#: ../../library/mimetypes.rst:204 msgid "" "This class represents a MIME-types database. By default, it provides access " "to the same database as the rest of this module. The initial database is a " "copy of that provided by the module, and may be extended by loading " -"additional :file:`mime.types`\\ -style files into the database using " -"the :meth:`read` or :meth:`readfp` methods. The mapping dictionaries may " -"also be cleared before loading additional data if the default data is not " -"desired." +"additional :file:`mime.types`\\ -style files into the database using the :" +"meth:`read` or :meth:`readfp` methods. The mapping dictionaries may also be " +"cleared before loading additional data if the default data is not desired." msgstr "" -#: ../../library/mimetypes.rst:211 msgid "" "The optional *filenames* parameter can be used to cause additional files to " "be loaded \"on top\" of the default database." msgstr "" -#: ../../library/mimetypes.rst:217 msgid "" "Dictionary mapping suffixes to suffixes. This is used to allow recognition " "of encoded files for which the encoding and the type are indicated by the " -"same extension. For example, the :file:`.tgz` extension is mapped " -"to :file:`.tar.gz` to allow the encoding and type to be recognized " -"separately. This is initially a copy of the global :data:`suffix_map` " -"defined in the module." +"same extension. For example, the :file:`.tgz` extension is mapped to :file:" +"`.tar.gz` to allow the encoding and type to be recognized separately. This " +"is initially a copy of the global :data:`suffix_map` defined in the module." msgstr "" -#: ../../library/mimetypes.rst:226 msgid "" "Dictionary mapping filename extensions to encoding types. This is initially " "a copy of the global :data:`encodings_map` defined in the module." msgstr "" -#: ../../library/mimetypes.rst:232 msgid "" "Tuple containing two dictionaries, mapping filename extensions to MIME " "types: the first dictionary is for the non-standards types and the second " @@ -288,71 +247,59 @@ msgid "" "and :data:`types_map`." msgstr "" -#: ../../library/mimetypes.rst:240 msgid "" "Tuple containing two dictionaries, mapping MIME types to a list of filename " "extensions: the first dictionary is for the non-standards types and the " -"second one is for the standard types. They are initialized " -"by :data:`common_types` and :data:`types_map`." +"second one is for the standard types. They are initialized by :data:" +"`common_types` and :data:`types_map`." msgstr "" -#: ../../library/mimetypes.rst:248 msgid "" "Similar to the :func:`guess_extension` function, using the tables stored as " "part of the object." msgstr "" -#: ../../library/mimetypes.rst:254 msgid "" "Similar to the :func:`guess_type` function, using the tables stored as part " "of the object." msgstr "" -#: ../../library/mimetypes.rst:260 msgid "" "Similar to the :func:`guess_file_type` function, using the tables stored as " "part of the object." msgstr "" -#: ../../library/mimetypes.rst:268 msgid "" "Similar to the :func:`guess_all_extensions` function, using the tables " "stored as part of the object." msgstr "" -#: ../../library/mimetypes.rst:274 msgid "" -"Load MIME information from a file named *filename*. This " -"uses :meth:`readfp` to parse the file." +"Load MIME information from a file named *filename*. This uses :meth:" +"`readfp` to parse the file." msgstr "" -#: ../../library/mimetypes.rst:277 msgid "" "If *strict* is ``True``, information will be added to list of standard " "types, else to the list of non-standard types." msgstr "" -#: ../../library/mimetypes.rst:283 msgid "" "Load MIME type information from an open file *fp*. The file must have the " "format of the standard :file:`mime.types` files." msgstr "" -#: ../../library/mimetypes.rst:286 ../../library/mimetypes.rst:296 msgid "" "If *strict* is ``True``, information will be added to the list of standard " "types, else to the list of non-standard types." msgstr "" -#: ../../library/mimetypes.rst:292 msgid "Load MIME type information from the Windows registry." msgstr "" -#: ../../library/mimetypes.rst:294 msgid "Availability" msgstr "" -#: ../../library/mimetypes.rst:304 msgid "" "Add a mapping from the MIME type *type* to the extension *ext*. Valid " "extensions start with a '.' or are empty. When the extension is already " @@ -360,65 +307,52 @@ msgid "" "the extension will be added to the list of known extensions." msgstr "" -#: ../../library/mimetypes.rst:312 msgid "" "Invalid, undotted extensions will raise a :exc:`ValueError` in Python 3.16." msgstr "" -#: ../../library/mimetypes.rst:320 msgid "Command-line usage" msgstr "" -#: ../../library/mimetypes.rst:322 msgid "" "The :mod:`!mimetypes` module can be executed as a script from the command " "line." msgstr "" -#: ../../library/mimetypes.rst:324 msgid "python -m mimetypes [-h] [-e] [-l] type [type ...]" msgstr "" -#: ../../library/mimetypes.rst:328 msgid "The following options are accepted:" msgstr "" -#: ../../library/mimetypes.rst:335 msgid "Show the help message and exit." msgstr "" -#: ../../library/mimetypes.rst:340 msgid "Guess extension instead of type." msgstr "" -#: ../../library/mimetypes.rst:345 msgid "Additionally search for some common, but non-standard types." msgstr "" -#: ../../library/mimetypes.rst:347 msgid "" "By default the script converts MIME types to file extensions. However, if " "``--extension`` is specified, it converts file extensions to MIME types." msgstr "" -#: ../../library/mimetypes.rst:351 msgid "" "For each ``type`` entry, the script writes a line into the standard output " "stream. If an unknown type occurs, it writes an error message into the " "standard error stream and exits with the return code ``1``." msgstr "" -#: ../../library/mimetypes.rst:359 msgid "Command-line example" msgstr "" -#: ../../library/mimetypes.rst:361 msgid "" "Here are some examples of typical usage of the :mod:`!mimetypes` command-" "line interface:" msgstr "" -#: ../../library/mimetypes.rst:364 msgid "" "$ # get a MIME type by a file name\n" "$ python -m mimetypes filename.png\n" @@ -466,23 +400,17 @@ msgid "" "error: unknown type audio/future" msgstr "" -#: ../../library/mimetypes.rst:11 ../../library/mimetypes.rst:31 -#: ../../library/mimetypes.rst:66 msgid "MIME" msgstr "" -#: ../../library/mimetypes.rst:11 msgid "content type" msgstr "" -#: ../../library/mimetypes.rst:31 ../../library/mimetypes.rst:66 msgid "headers" msgstr "" -#: ../../library/mimetypes.rst:147 msgid "file" msgstr "" -#: ../../library/mimetypes.rst:147 msgid "mime.types" msgstr "" diff --git a/library/mm.po b/library/mm.po index 9148abc..a3a3f5f 100644 --- a/library/mm.po +++ b/library/mm.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/mm.rst:5 msgid "Multimedia Services" msgstr "" -#: ../../library/mm.rst:7 msgid "" "The modules described in this chapter implement various algorithms or " "interfaces that are mainly useful for multimedia applications. They are " diff --git a/library/mmap.po b/library/mmap.po index 33124b0..9734cdf 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,33 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/mmap.rst:2 msgid ":mod:`!mmap` --- Memory-mapped file support" msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/mmap.rst:11 msgid "" -"Memory-mapped file objects behave like both :class:`bytearray` and " -"like :term:`file objects `. You can use mmap objects in most " -"places where :class:`bytearray` are expected; for example, you can use " -"the :mod:`re` module to search through a memory-mapped file. You can also " -"change a single byte by doing ``obj[index] = 97``, or change a subsequence " -"by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and " -"write data starting at the current file position, and :meth:`seek` through " -"the file to different positions." +"Memory-mapped file objects behave like both :class:`bytearray` and like :" +"term:`file objects `. You can use mmap objects in most places " +"where :class:`bytearray` are expected; for example, you can use the :mod:" +"`re` module to search through a memory-mapped file. You can also change a " +"single byte by doing ``obj[index] = 97``, or change a subsequence by " +"assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write " +"data starting at the current file position, and :meth:`seek` through the " +"file to different positions." msgstr "" -#: ../../library/mmap.rst:19 msgid "" "A memory-mapped file is created by the :class:`~mmap.mmap` constructor, " "which is different on Unix and on Windows. In either case you must provide " @@ -55,7 +50,6 @@ msgid "" "descriptor directly (the file still needs to be closed when done)." msgstr "" -#: ../../library/mmap.rst:28 msgid "" "If you want to create a memory-mapping for a writable, buffered file, you " "should :func:`~io.IOBase.flush` the file first. This is necessary to ensure " @@ -63,7 +57,6 @@ msgid "" "mapping." msgstr "" -#: ../../library/mmap.rst:33 msgid "" "For both the Unix and Windows versions of the constructor, *access* may be " "specified as an optional keyword parameter. *access* accepts one of four " @@ -73,23 +66,20 @@ msgid "" "Unix and Windows. If *access* is not specified, Windows mmap returns a " "write-through mapping. The initial memory values for all three access types " "are taken from the specified file. Assignment to an :const:`ACCESS_READ` " -"memory map raises a :exc:`TypeError` exception. Assignment to " -"an :const:`ACCESS_WRITE` memory map affects both memory and the underlying " -"file. Assignment to an :const:`ACCESS_COPY` memory map affects memory but " -"does not update the underlying file." +"memory map raises a :exc:`TypeError` exception. Assignment to an :const:" +"`ACCESS_WRITE` memory map affects both memory and the underlying file. " +"Assignment to an :const:`ACCESS_COPY` memory map affects memory but does not " +"update the underlying file." msgstr "" -#: ../../library/mmap.rst:46 msgid "Added :const:`ACCESS_DEFAULT` constant." msgstr "" -#: ../../library/mmap.rst:49 msgid "" "To map anonymous memory, -1 should be passed as the fileno along with the " "length." msgstr "" -#: ../../library/mmap.rst:53 msgid "" "**(Windows version)** Maps *length* bytes from the file specified by the " "file handle *fileno*, and creates a mmap object. If *length* is larger than " @@ -99,7 +89,6 @@ msgid "" "exception (you cannot create an empty mapping on Windows)." msgstr "" -#: ../../library/mmap.rst:60 msgid "" "*tagname*, if specified and not ``None``, is a string giving a tag name for " "the mapping. Windows allows you to have many different mappings against the " @@ -110,29 +99,25 @@ msgid "" "and Windows." msgstr "" -#: ../../library/mmap.rst:68 msgid "" "*offset* may be specified as a non-negative integer offset. mmap references " "will be relative to the offset from the beginning of the file. *offset* " -"defaults to 0. *offset* must be a multiple of " -"the :const:`ALLOCATIONGRANULARITY`." +"defaults to 0. *offset* must be a multiple of the :const:" +"`ALLOCATIONGRANULARITY`." msgstr "" -#: ../../library/mmap.rst:72 ../../library/mmap.rst:174 msgid "" "Raises an :ref:`auditing event ` ``mmap.__new__`` with arguments " "``fileno``, ``length``, ``access``, ``offset``." msgstr "" -#: ../../library/mmap.rst:78 msgid "" "**(Unix version)** Maps *length* bytes from the file specified by the file " "descriptor *fileno*, and returns a mmap object. If *length* is ``0``, the " -"maximum length of the map will be the current size of the file " -"when :class:`~mmap.mmap` is called." +"maximum length of the map will be the current size of the file when :class:" +"`~mmap.mmap` is called." msgstr "" -#: ../../library/mmap.rst:83 msgid "" "*flags* specifies the nature of the mapping. :const:`MAP_PRIVATE` creates a " "private copy-on-write mapping, so changes to the contents of the mmap object " @@ -143,7 +128,6 @@ msgid "" "constants>`." msgstr "" -#: ../../library/mmap.rst:91 msgid "" "*prot*, if specified, gives the desired memory protection; the two most " "useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify " @@ -151,7 +135,6 @@ msgid "" "\\| PROT_WRITE`." msgstr "" -#: ../../library/mmap.rst:96 msgid "" "*access* may be specified in lieu of *flags* and *prot* as an optional " "keyword parameter. It is an error to specify both *flags*, *prot* and " @@ -159,7 +142,6 @@ msgid "" "use this parameter." msgstr "" -#: ../../library/mmap.rst:101 msgid "" "*offset* may be specified as a non-negative integer offset. mmap references " "will be relative to the offset from the beginning of the file. *offset* " @@ -167,31 +149,26 @@ msgid "" "which is equal to :const:`PAGESIZE` on Unix systems." msgstr "" -#: ../../library/mmap.rst:106 msgid "" "If *trackfd* is ``False``, the file descriptor specified by *fileno* will " "not be duplicated, and the resulting :class:`!mmap` object will not be " -"associated with the map's underlying file. This means that " -"the :meth:`~mmap.mmap.size` and :meth:`~mmap.mmap.resize` methods will fail. " -"This mode is useful to limit the number of open file descriptors." +"associated with the map's underlying file. This means that the :meth:`~mmap." +"mmap.size` and :meth:`~mmap.mmap.resize` methods will fail. This mode is " +"useful to limit the number of open file descriptors." msgstr "" -#: ../../library/mmap.rst:113 msgid "" "To ensure validity of the created memory mapping the file specified by the " "descriptor *fileno* is internally automatically synchronized with the " "physical backing store on macOS." msgstr "" -#: ../../library/mmap.rst:117 msgid "The *trackfd* parameter was added." msgstr "" -#: ../../library/mmap.rst:120 msgid "This example shows a simple way of using :class:`~mmap.mmap`::" msgstr "" -#: ../../library/mmap.rst:122 msgid "" "import mmap\n" "\n" @@ -216,13 +193,11 @@ msgid "" " mm.close()" msgstr "" -#: ../../library/mmap.rst:145 msgid "" -":class:`~mmap.mmap` can also be used as a context manager in " -"a :keyword:`with` statement::" +":class:`~mmap.mmap` can also be used as a context manager in a :keyword:" +"`with` statement::" msgstr "" -#: ../../library/mmap.rst:148 msgid "" "import mmap\n" "\n" @@ -230,17 +205,14 @@ msgid "" " mm.write(b\"Hello world!\")" msgstr "" -#: ../../library/mmap.rst:153 msgid "Context manager support." msgstr "" -#: ../../library/mmap.rst:157 msgid "" "The next example demonstrates how to create an anonymous map and exchange " "data between the parent and child processes::" msgstr "" -#: ../../library/mmap.rst:160 msgid "" "import mmap\n" "import os\n" @@ -257,21 +229,17 @@ msgid "" " mm.close()" msgstr "" -#: ../../library/mmap.rst:176 msgid "Memory-mapped file objects support the following methods:" msgstr "" -#: ../../library/mmap.rst:180 msgid "" "Closes the mmap. Subsequent calls to other methods of the object will result " "in a ValueError exception being raised. This will not close the open file." msgstr "" -#: ../../library/mmap.rst:187 msgid "``True`` if the file is closed." msgstr "" -#: ../../library/mmap.rst:194 msgid "" "Returns the lowest index in the object where the subsequence *sub* is found, " "such that *sub* is contained in the range [*start*, *end*]. Optional " @@ -279,56 +247,46 @@ msgid "" "``-1`` on failure." msgstr "" -#: ../../library/mmap.rst:199 ../../library/mmap.rst:291 -#: ../../library/mmap.rst:331 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "" -#: ../../library/mmap.rst:205 msgid "" "Flushes changes made to the in-memory copy of a file back to disk. Without " "use of this call there is no guarantee that changes are written back before " "the object is destroyed. If *offset* and *size* are specified, only changes " "to the given range of bytes will be flushed to disk; otherwise, the whole " -"extent of the mapping is flushed. *offset* must be a multiple of " -"the :const:`PAGESIZE` or :const:`ALLOCATIONGRANULARITY`." +"extent of the mapping is flushed. *offset* must be a multiple of the :const:" +"`PAGESIZE` or :const:`ALLOCATIONGRANULARITY`." msgstr "" -#: ../../library/mmap.rst:212 msgid "" "``None`` is returned to indicate success. An exception is raised when the " "call failed." msgstr "" -#: ../../library/mmap.rst:215 msgid "" "Previously, a nonzero value was returned on success; zero was returned on " "error under Windows. A zero value was returned on success; an exception was " "raised on error under Unix." msgstr "" -#: ../../library/mmap.rst:223 msgid "" "Send advice *option* to the kernel about the memory region beginning at " -"*start* and extending *length* bytes. *option* must be one of " -"the :ref:`MADV_* constants ` available on the system. If " -"*start* and *length* are omitted, the entire mapping is spanned. On some " -"systems (including Linux), *start* must be a multiple of " -"the :const:`PAGESIZE`." +"*start* and extending *length* bytes. *option* must be one of the :ref:" +"`MADV_* constants ` available on the system. If *start* " +"and *length* are omitted, the entire mapping is spanned. On some systems " +"(including Linux), *start* must be a multiple of the :const:`PAGESIZE`." msgstr "" -#: ../../library/mmap.rst:230 msgid "Availability: Systems with the ``madvise()`` system call." msgstr "" -#: ../../library/mmap.rst:237 msgid "" "Copy the *count* bytes starting at offset *src* to the destination index " "*dest*. If the mmap was created with :const:`ACCESS_READ`, then calls to " "move will raise a :exc:`TypeError` exception." msgstr "" -#: ../../library/mmap.rst:244 msgid "" "Return a :class:`bytes` containing up to *n* bytes starting from the current " "file position. If the argument is omitted, ``None`` or negative, return all " @@ -336,36 +294,30 @@ msgid "" "position is updated to point after the bytes that were returned." msgstr "" -#: ../../library/mmap.rst:250 msgid "Argument can be omitted or ``None``." msgstr "" -#: ../../library/mmap.rst:255 msgid "" "Returns a byte at the current file position as an integer, and advances the " "file position by 1." msgstr "" -#: ../../library/mmap.rst:261 msgid "" "Returns a single line, starting at the current file position and up to the " "next newline. The file position is updated to point after the bytes that " "were returned." msgstr "" -#: ../../library/mmap.rst:268 msgid "Resizes the map and the underlying file, if any." msgstr "" -#: ../../library/mmap.rst:270 msgid "" -"Resizing a map created with *access* of :const:`ACCESS_READ` " -"or :const:`ACCESS_COPY`, will raise a :exc:`TypeError` exception. Resizing a " -"map created with *trackfd* set to ``False``, will raise a :exc:`ValueError` " +"Resizing a map created with *access* of :const:`ACCESS_READ` or :const:" +"`ACCESS_COPY`, will raise a :exc:`TypeError` exception. Resizing a map " +"created with *trackfd* set to ``False``, will raise a :exc:`ValueError` " "exception." msgstr "" -#: ../../library/mmap.rst:275 msgid "" "**On Windows**: Resizing the map will raise an :exc:`OSError` if there are " "other maps against the same named file. Resizing an anonymous map (ie " @@ -373,13 +325,11 @@ msgid "" "copied over up to the length of the new size." msgstr "" -#: ../../library/mmap.rst:280 msgid "" "Correctly fails if attempting to resize when another map is held Allows " "resize against an anonymous map on Windows" msgstr "" -#: ../../library/mmap.rst:286 msgid "" "Returns the highest index in the object where the subsequence *sub* is " "found, such that *sub* is contained in the range [*start*, *end*]. Optional " @@ -387,35 +337,29 @@ msgid "" "``-1`` on failure." msgstr "" -#: ../../library/mmap.rst:297 msgid "" "Set the file's current position. *whence* argument is optional and defaults " "to ``os.SEEK_SET`` or ``0`` (absolute file positioning); other values are " -"``os.SEEK_CUR`` or ``1`` (seek relative to the current position) and " -"``os.SEEK_END`` or ``2`` (seek relative to the file's end)." +"``os.SEEK_CUR`` or ``1`` (seek relative to the current position) and ``os." +"SEEK_END`` or ``2`` (seek relative to the file's end)." msgstr "" -#: ../../library/mmap.rst:302 msgid "Return the new absolute position instead of ``None``." msgstr "" -#: ../../library/mmap.rst:307 msgid "" "Return whether the file supports seeking, and the return value is always " "``True``." msgstr "" -#: ../../library/mmap.rst:313 msgid "" "Return the length of the file, which can be larger than the size of the " "memory-mapped area." msgstr "" -#: ../../library/mmap.rst:319 msgid "Returns the current position of the file pointer." msgstr "" -#: ../../library/mmap.rst:324 msgid "" "Write the bytes in *bytes* into memory at the current position of the file " "pointer and return the number of bytes written (never less than " @@ -425,11 +369,9 @@ msgid "" "it will raise a :exc:`TypeError` exception." msgstr "" -#: ../../library/mmap.rst:334 msgid "The number of bytes written is now returned." msgstr "" -#: ../../library/mmap.rst:340 msgid "" "Write the integer *byte* into memory at the current position of the file " "pointer; the file position is advanced by ``1``. If the mmap was created " @@ -437,46 +379,39 @@ msgid "" "exception." msgstr "" -#: ../../library/mmap.rst:348 msgid "MADV_* Constants" msgstr "" -#: ../../library/mmap.rst:375 msgid "" "These options can be passed to :meth:`mmap.madvise`. Not every option will " "be present on every system." msgstr "" -#: ../../library/mmap.rst:378 msgid "Availability: Systems with the madvise() system call." msgstr "" -#: ../../library/mmap.rst:385 msgid "MAP_* Constants" msgstr "" -#: ../../library/mmap.rst:409 msgid "" -"These are the various flags that can be passed " -"to :meth:`mmap.mmap`. :data:`MAP_ALIGNED_SUPER` is only available at " -"FreeBSD and :data:`MAP_CONCEAL` is only available at OpenBSD. Note that " -"some options might not be present on some systems." +"These are the various flags that can be passed to :meth:`mmap.mmap`. :data:" +"`MAP_ALIGNED_SUPER` is only available at FreeBSD and :data:`MAP_CONCEAL` is " +"only available at OpenBSD. Note that some options might not be present on " +"some systems." msgstr "" -#: ../../library/mmap.rst:413 msgid "Added :data:`MAP_POPULATE` constant." msgstr "" -#: ../../library/mmap.rst:416 msgid "Added :data:`MAP_STACK` constant." msgstr "" -#: ../../library/mmap.rst:419 msgid "Added :data:`MAP_ALIGNED_SUPER` and :data:`MAP_CONCEAL` constants." msgstr "" -#: ../../library/mmap.rst:422 msgid "" -"Added :data:`MAP_32BIT`, :data:`MAP_HASSEMAPHORE`, :data:`MAP_JIT`, :data:`MAP_NOCACHE`, :data:`MAP_NOEXTEND`, :data:`MAP_NORESERVE`, :data:`MAP_RESILIENT_CODESIGN`, :data:`MAP_RESILIENT_MEDIA`, :data:`MAP_TPRO`, :data:`MAP_TRANSLATED_ALLOW_EXECUTE`, " -"and :data:`MAP_UNIX03` constants." +"Added :data:`MAP_32BIT`, :data:`MAP_HASSEMAPHORE`, :data:`MAP_JIT`, :data:" +"`MAP_NOCACHE`, :data:`MAP_NOEXTEND`, :data:`MAP_NORESERVE`, :data:" +"`MAP_RESILIENT_CODESIGN`, :data:`MAP_RESILIENT_MEDIA`, :data:`MAP_TPRO`, :" +"data:`MAP_TRANSLATED_ALLOW_EXECUTE`, and :data:`MAP_UNIX03` constants." msgstr "" diff --git a/library/modulefinder.po b/library/modulefinder.po index fcaeb51..c150448 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/modulefinder.rst:2 msgid ":mod:`!modulefinder` --- Find modules used by a script" msgstr "" -#: ../../library/modulefinder.rst:9 msgid "**Source code:** :source:`Lib/modulefinder.py`" msgstr "" -#: ../../library/modulefinder.rst:13 msgid "" "This module provides a :class:`ModuleFinder` class that can be used to " "determine the set of modules imported by a script. ``modulefinder.py`` can " @@ -34,19 +31,16 @@ msgid "" "argument, after which a report of the imported modules will be printed." msgstr "" -#: ../../library/modulefinder.rst:21 msgid "" "Record that the package named *pkg_name* can be found in the specified " "*path*." msgstr "" -#: ../../library/modulefinder.rst:26 msgid "" "Allows specifying that the module named *oldname* is in fact the package " "named *newname*." msgstr "" -#: ../../library/modulefinder.rst:32 msgid "" "This class provides :meth:`run_script` and :meth:`report` methods to " "determine the set of modules imported by a script. *path* can be a list of " @@ -57,33 +51,27 @@ msgid "" "newpath)`` tuples that will be replaced in module paths." msgstr "" -#: ../../library/modulefinder.rst:43 msgid "" "Print a report to standard output that lists the modules imported by the " "script and their paths, as well as modules that are missing or seem to be " "missing." msgstr "" -#: ../../library/modulefinder.rst:49 msgid "" "Analyze the contents of the *pathname* file, which must contain Python code." msgstr "" -#: ../../library/modulefinder.rst:54 msgid "" "A dictionary mapping module names to modules. See :ref:`modulefinder-" "example`." msgstr "" -#: ../../library/modulefinder.rst:61 msgid "Example usage of :class:`ModuleFinder`" msgstr "" -#: ../../library/modulefinder.rst:63 msgid "The script that is going to get analyzed later on (bacon.py)::" msgstr "" -#: ../../library/modulefinder.rst:65 msgid "" "import re, itertools\n" "\n" @@ -98,11 +86,9 @@ msgid "" " pass" msgstr "" -#: ../../library/modulefinder.rst:78 msgid "The script that will output the report of bacon.py::" msgstr "" -#: ../../library/modulefinder.rst:80 msgid "" "from modulefinder import ModuleFinder\n" "\n" @@ -119,11 +105,9 @@ msgid "" "print('\\n'.join(finder.badmodules.keys()))" msgstr "" -#: ../../library/modulefinder.rst:94 msgid "Sample output (may vary depending on the architecture)::" msgstr "" -#: ../../library/modulefinder.rst:96 msgid "" "Loaded modules:\n" "_types:\n" diff --git a/library/modules.po b/library/modules.po index 5b5ba28..b05b636 100644 --- a/library/modules.po +++ b/library/modules.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,16 +18,13 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/modules.rst:5 msgid "Importing Modules" msgstr "" -#: ../../library/modules.rst:7 msgid "" "The modules described in this chapter provide new ways to import other " "Python modules and hooks for customizing the import process." msgstr "" -#: ../../library/modules.rst:10 msgid "The full list of modules described in this chapter is:" msgstr "" diff --git a/library/msilib.po b/library/msilib.po index c70b913..8213f45 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/msilib.rst:2 msgid ":mod:`!msilib` --- Read and write Microsoft Installer files" msgstr "" -#: ../../library/msilib.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/msilib.rst:14 msgid "" "The last version of Python that provided the :mod:`!msilib` module was " "`Python 3.12 `_." diff --git a/library/msvcrt.po b/library/msvcrt.po index 035e0f5..0fdd6bb 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/msvcrt.rst:2 msgid ":mod:`!msvcrt` --- Useful routines from the MS VC++ runtime" msgstr "" -#: ../../library/msvcrt.rst:12 msgid "" "These functions provide access to some useful capabilities on Windows " "platforms. Some higher-level modules use these functions to build the " @@ -30,13 +28,11 @@ msgid "" "module uses this in the implementation of the :func:`getpass` function." msgstr "" -#: ../../library/msvcrt.rst:17 msgid "" "Further documentation on these functions can be found in the Platform API " "documentation." msgstr "" -#: ../../library/msvcrt.rst:20 msgid "" "The module implements both the normal and wide char variants of the console " "I/O api. The normal API deals only with ASCII characters and is of limited " @@ -44,17 +40,14 @@ msgid "" "where ever possible." msgstr "" -#: ../../library/msvcrt.rst:25 msgid "" "Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " "raised." msgstr "" -#: ../../library/msvcrt.rst:33 msgid "File Operations" msgstr "" -#: ../../library/msvcrt.rst:38 msgid "" "Lock part of a file based on file descriptor *fd* from the C runtime. " "Raises :exc:`OSError` on failure. The locked region of the file extends from " @@ -65,80 +58,67 @@ msgid "" "individually." msgstr "" -#: ../../library/msvcrt.rst:45 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.locking`` with arguments " "``fd``, ``mode``, ``nbytes``." msgstr "" -#: ../../library/msvcrt.rst:51 msgid "" "Locks the specified bytes. If the bytes cannot be locked, the program " "immediately tries again after 1 second. If, after 10 attempts, the bytes " "cannot be locked, :exc:`OSError` is raised." msgstr "" -#: ../../library/msvcrt.rst:59 msgid "" "Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is " "raised." msgstr "" -#: ../../library/msvcrt.rst:65 msgid "Unlocks the specified bytes, which must have been previously locked." msgstr "" -#: ../../library/msvcrt.rst:70 msgid "" "Set the line-end translation mode for the file descriptor *fd*. To set it to " -"text mode, *flags* should be :const:`os.O_TEXT`; for binary, it should " -"be :const:`os.O_BINARY`." +"text mode, *flags* should be :const:`os.O_TEXT`; for binary, it should be :" +"const:`os.O_BINARY`." msgstr "" -#: ../../library/msvcrt.rst:77 msgid "" "Create a C runtime file descriptor from the file handle *handle*. The " -"*flags* parameter should be a bitwise OR " -"of :const:`os.O_APPEND`, :const:`os.O_RDONLY`, :const:`os.O_TEXT` " -"and :const:`os.O_NOINHERIT`. The returned file descriptor may be used as a " -"parameter to :func:`os.fdopen` to create a file object." +"*flags* parameter should be a bitwise OR of :const:`os.O_APPEND`, :const:`os." +"O_RDONLY`, :const:`os.O_TEXT` and :const:`os.O_NOINHERIT`. The returned file " +"descriptor may be used as a parameter to :func:`os.fdopen` to create a file " +"object." msgstr "" -#: ../../library/msvcrt.rst:83 msgid "" "The file descriptor is inheritable by default. Pass :const:`os.O_NOINHERIT` " "flag to make it non inheritable." msgstr "" -#: ../../library/msvcrt.rst:86 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.open_osfhandle`` with " "arguments ``handle``, ``flags``." msgstr "" -#: ../../library/msvcrt.rst:91 msgid "" "Return the file handle for the file descriptor *fd*. Raises :exc:`OSError` " "if *fd* is not recognized." msgstr "" -#: ../../library/msvcrt.rst:94 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.get_osfhandle`` with " "argument ``fd``." msgstr "" -#: ../../library/msvcrt.rst:100 msgid "Console I/O" msgstr "" -#: ../../library/msvcrt.rst:105 msgid "" "Returns a nonzero value if a keypress is waiting to be read. Otherwise, " "return 0." msgstr "" -#: ../../library/msvcrt.rst:111 msgid "" "Read a keypress and return the resulting character as a byte string. Nothing " "is echoed to the console. This call will block if a keypress is not already " @@ -148,49 +128,39 @@ msgid "" "be read with this function." msgstr "" -#: ../../library/msvcrt.rst:121 msgid "Wide char variant of :func:`getch`, returning a Unicode value." msgstr "" -#: ../../library/msvcrt.rst:126 msgid "" "Similar to :func:`getch`, but the keypress will be echoed if it represents a " "printable character." msgstr "" -#: ../../library/msvcrt.rst:132 msgid "Wide char variant of :func:`getche`, returning a Unicode value." msgstr "" -#: ../../library/msvcrt.rst:137 msgid "Print the byte string *char* to the console without buffering." msgstr "" -#: ../../library/msvcrt.rst:142 msgid "Wide char variant of :func:`putch`, accepting a Unicode value." msgstr "" -#: ../../library/msvcrt.rst:147 msgid "" "Cause the byte string *char* to be \"pushed back\" into the console buffer; " "it will be the next character read by :func:`getch` or :func:`getche`." msgstr "" -#: ../../library/msvcrt.rst:153 msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value." msgstr "" -#: ../../library/msvcrt.rst:159 msgid "Other Functions" msgstr "" -#: ../../library/msvcrt.rst:164 msgid "" "Force the :c:func:`malloc` heap to clean itself up and return unused blocks " "to the operating system. On failure, this raises :exc:`OSError`." msgstr "" -#: ../../library/msvcrt.rst:170 msgid "" "Changes the location where the C runtime writes an error message for an " "error that might end the program. *mode* must be one of the :const:`!" @@ -199,40 +169,34 @@ msgid "" "Python `." msgstr "" -#: ../../library/msvcrt.rst:179 msgid "" "Error sink is determined by the app's type. Only available in :ref:`debug " "build of Python `." msgstr "" -#: ../../library/msvcrt.rst:185 msgid "" "Error sink is a standard error. Only available in :ref:`debug build of " "Python `." msgstr "" -#: ../../library/msvcrt.rst:191 msgid "" "Error sink is a message box. Only available in :ref:`debug build of Python " "`." msgstr "" -#: ../../library/msvcrt.rst:197 msgid "" "Report the current error mode value. Only available in :ref:`debug build of " "Python `." msgstr "" -#: ../../library/msvcrt.rst:203 msgid "" "Specifies the destination or destinations for a specific report type " "generated by :c:func:`!_CrtDbgReport` in the MS VC++ runtime. *type* must be " "one of the :const:`!CRT_\\*` constants listed below. *mode* must be one of " -"the :const:`!CRTDBG_\\*` constants listed below. Only available " -"in :ref:`debug build of Python `." +"the :const:`!CRTDBG_\\*` constants listed below. Only available in :ref:" +"`debug build of Python `." msgstr "" -#: ../../library/msvcrt.rst:212 msgid "" "After you use :func:`CrtSetReportMode` to specify :const:`CRTDBG_MODE_FILE`, " "you can specify the file handle to receive the message text. *type* must be " @@ -241,51 +205,41 @@ msgid "" "Python `." msgstr "" -#: ../../library/msvcrt.rst:221 msgid "" "Warnings, messages, and information that doesn't need immediate attention." msgstr "" -#: ../../library/msvcrt.rst:226 msgid "" "Errors, unrecoverable problems, and issues that require immediate attention." msgstr "" -#: ../../library/msvcrt.rst:231 msgid "Assertion failures." msgstr "" -#: ../../library/msvcrt.rst:236 msgid "Writes the message to the debugger's output window." msgstr "" -#: ../../library/msvcrt.rst:241 msgid "" "Writes the message to a user-supplied file handle. :func:`CrtSetReportFile` " "should be called to define the specific file or stream to use as the " "destination." msgstr "" -#: ../../library/msvcrt.rst:248 msgid "" "Creates a message box to display the message along with the ``Abort``, " "``Retry``, and ``Ignore`` buttons." msgstr "" -#: ../../library/msvcrt.rst:254 msgid "Returns current *mode* for the specified *type*." msgstr "" -#: ../../library/msvcrt.rst:259 msgid "The CRT Assembly version, from the :file:`crtassem.h` header file." msgstr "" -#: ../../library/msvcrt.rst:264 msgid "" "The VC Assembly public key token, from the :file:`crtassem.h` header file." msgstr "" -#: ../../library/msvcrt.rst:269 msgid "" "The Libraries Assembly name prefix, from the :file:`crtassem.h` header file." msgstr "" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index eea1526..b70f7b0 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Rafael Fontenelle , 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,29 +18,23 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/multiprocessing.rst:2 msgid ":mod:`!multiprocessing` --- Process-based parallelism" msgstr "" -#: ../../library/multiprocessing.rst:7 msgid "**Source code:** :source:`Lib/multiprocessing/`" msgstr "" -#: ../../includes/wasm-mobile-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-mobile-notavail.rst:5 msgid "" "This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." msgstr "" -#: ../../library/multiprocessing.rst:14 msgid "Introduction" -msgstr "Bevezetés" +msgstr "" -#: ../../library/multiprocessing.rst:16 msgid "" ":mod:`multiprocessing` is a package that supports spawning processes using " "an API similar to the :mod:`threading` module. The :mod:`multiprocessing` " @@ -55,20 +45,18 @@ msgid "" "given machine. It runs on both POSIX and Windows." msgstr "" -#: ../../library/multiprocessing.rst:25 msgid "" "The :mod:`multiprocessing` module also introduces APIs which do not have " -"analogs in the :mod:`threading` module. A prime example of this is " -"the :class:`~multiprocessing.pool.Pool` object which offers a convenient " -"means of parallelizing the execution of a function across multiple input " -"values, distributing the input data across processes (data parallelism). " -"The following example demonstrates the common practice of defining such " +"analogs in the :mod:`threading` module. A prime example of this is the :" +"class:`~multiprocessing.pool.Pool` object which offers a convenient means of " +"parallelizing the execution of a function across multiple input values, " +"distributing the input data across processes (data parallelism). The " +"following example demonstrates the common practice of defining such " "functions in a module so that child processes can successfully import that " -"module. This basic example of data parallelism " -"using :class:`~multiprocessing.pool.Pool`, ::" +"module. This basic example of data parallelism using :class:" +"`~multiprocessing.pool.Pool`, ::" msgstr "" -#: ../../library/multiprocessing.rst:34 msgid "" "from multiprocessing import Pool\n" "\n" @@ -80,37 +68,31 @@ msgid "" " print(p.map(f, [1, 2, 3]))" msgstr "" -#: ../../library/multiprocessing.rst:43 msgid "will print to standard output ::" msgstr "" -#: ../../library/multiprocessing.rst:45 msgid "[1, 4, 9]" msgstr "" -#: ../../library/multiprocessing.rst:50 msgid "" ":class:`concurrent.futures.ProcessPoolExecutor` offers a higher level " "interface to push tasks to a background process without blocking execution " -"of the calling process. Compared to using " -"the :class:`~multiprocessing.pool.Pool` interface directly, " -"the :mod:`concurrent.futures` API more readily allows the submission of work " -"to the underlying process pool to be separated from waiting for the results." +"of the calling process. Compared to using the :class:`~multiprocessing.pool." +"Pool` interface directly, the :mod:`concurrent.futures` API more readily " +"allows the submission of work to the underlying process pool to be separated " +"from waiting for the results." msgstr "" -#: ../../library/multiprocessing.rst:59 msgid "The :class:`Process` class" msgstr "" -#: ../../library/multiprocessing.rst:61 msgid "" -"In :mod:`multiprocessing`, processes are spawned by creating " -"a :class:`Process` object and then calling its :meth:`~Process.start` " -"method. :class:`Process` follows the API of :class:`threading.Thread`. A " -"trivial example of a multiprocess program is ::" +"In :mod:`multiprocessing`, processes are spawned by creating a :class:" +"`Process` object and then calling its :meth:`~Process.start` method. :class:" +"`Process` follows the API of :class:`threading.Thread`. A trivial example " +"of a multiprocess program is ::" msgstr "" -#: ../../library/multiprocessing.rst:66 msgid "" "from multiprocessing import Process\n" "\n" @@ -123,12 +105,10 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:76 msgid "" "To show the individual process IDs involved, here is an expanded example::" msgstr "" -#: ../../library/multiprocessing.rst:78 msgid "" "from multiprocessing import Process\n" "import os\n" @@ -150,13 +130,11 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:97 msgid "" "For an explanation of why the ``if __name__ == '__main__'`` part is " "necessary, see :ref:`multiprocessing-programming`." msgstr "" -#: ../../library/multiprocessing.rst:100 msgid "" "The arguments to :class:`Process` usually need to be unpickleable from " "within the child process. If you tried typing the above example directly " @@ -164,21 +142,17 @@ msgid "" "trying to locate the *f* function in the ``__main__`` module." msgstr "" -#: ../../library/multiprocessing.rst:109 msgid "Contexts and start methods" msgstr "" -#: ../../library/multiprocessing.rst:111 msgid "" "Depending on the platform, :mod:`multiprocessing` supports three ways to " "start a process. These *start methods* are" msgstr "" -#: ../../library/multiprocessing.rst:116 msgid "*spawn*" msgstr "" -#: ../../library/multiprocessing.rst:117 msgid "" "The parent process starts a fresh Python interpreter process. The child " "process will only inherit those resources necessary to run the process " @@ -188,16 +162,13 @@ msgid "" "or *forkserver*." msgstr "" -#: ../../library/multiprocessing.rst:124 msgid "" "Available on POSIX and Windows platforms. The default on Windows and macOS." msgstr "" -#: ../../library/multiprocessing.rst:128 msgid "*fork*" msgstr "" -#: ../../library/multiprocessing.rst:129 msgid "" "The parent process uses :func:`os.fork` to fork the Python interpreter. The " "child process, when it begins, is effectively identical to the parent " @@ -205,30 +176,25 @@ msgid "" "Note that safely forking a multithreaded process is problematic." msgstr "" -#: ../../library/multiprocessing.rst:135 msgid "Available on POSIX systems." msgstr "" -#: ../../library/multiprocessing.rst:137 msgid "" "This is no longer the default start method on any platform. Code that " -"requires *fork* must explicitly specify that via :func:`get_context` " -"or :func:`set_start_method`." +"requires *fork* must explicitly specify that via :func:`get_context` or :" +"func:`set_start_method`." msgstr "" -#: ../../library/multiprocessing.rst:142 msgid "" -"If Python is able to detect that your process has multiple threads, " -"the :func:`os.fork` function that this start method calls internally will " -"raise a :exc:`DeprecationWarning`. Use a different start method. See " -"the :func:`os.fork` documentation for further explanation." +"If Python is able to detect that your process has multiple threads, the :" +"func:`os.fork` function that this start method calls internally will raise " +"a :exc:`DeprecationWarning`. Use a different start method. See the :func:`os." +"fork` documentation for further explanation." msgstr "" -#: ../../library/multiprocessing.rst:150 msgid "*forkserver*" msgstr "" -#: ../../library/multiprocessing.rst:151 msgid "" "When the program starts and selects the *forkserver* start method, a server " "process is spawned. From then on, whenever a new process is needed, the " @@ -238,59 +204,51 @@ msgid "" "for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" -#: ../../library/multiprocessing.rst:159 msgid "" "Available on POSIX platforms which support passing file descriptors over " "Unix pipes such as Linux. The default on those." msgstr "" -#: ../../library/multiprocessing.rst:162 msgid "This became the default start method on POSIX platforms." msgstr "" -#: ../../library/multiprocessing.rst:165 msgid "" "*spawn* added on all POSIX platforms, and *forkserver* added for some POSIX " "platforms. Child processes no longer inherit all of the parents inheritable " "handles on Windows." msgstr "" -#: ../../library/multiprocessing.rst:173 msgid "" "On macOS, the *spawn* start method is now the default. The *fork* start " "method should be considered unsafe as it can lead to crashes of the " "subprocess as macOS system libraries may start threads. See :issue:`33725`." msgstr "" -#: ../../library/multiprocessing.rst:179 msgid "" "On POSIX platforms the default start method was changed from *fork* to " "*forkserver* to retain the performance but avoid common multithreaded " "process incompatibilities. See :gh:`84559`." msgstr "" -#: ../../library/multiprocessing.rst:184 msgid "" "On POSIX using the *spawn* or *forkserver* start methods will also start a " "*resource tracker* process which tracks the unlinked named system resources " -"(such as named semaphores " -"or :class:`~multiprocessing.shared_memory.SharedMemory` objects) created by " -"processes of the program. When all processes have exited the resource " -"tracker unlinks any remaining tracked object. Usually there should be none, " -"but if a process was killed by a signal there may be some \"leaked\" " -"resources. (Neither leaked semaphores nor shared memory segments will be " -"automatically unlinked until the next reboot. This is problematic for both " -"objects because the system allows only a limited number of named semaphores, " -"and shared memory segments occupy some space in the main memory.)" +"(such as named semaphores or :class:`~multiprocessing.shared_memory." +"SharedMemory` objects) created by processes of the program. When all " +"processes have exited the resource tracker unlinks any remaining tracked " +"object. Usually there should be none, but if a process was killed by a " +"signal there may be some \"leaked\" resources. (Neither leaked semaphores " +"nor shared memory segments will be automatically unlinked until the next " +"reboot. This is problematic for both objects because the system allows only " +"a limited number of named semaphores, and shared memory segments occupy some " +"space in the main memory.)" msgstr "" -#: ../../library/multiprocessing.rst:197 msgid "" "To select a start method you use the :func:`set_start_method` in the ``if " "__name__ == '__main__'`` clause of the main module. For example::" msgstr "" -#: ../../library/multiprocessing.rst:201 msgid "" "import multiprocessing as mp\n" "\n" @@ -306,19 +264,16 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:214 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" -#: ../../library/multiprocessing.rst:217 msgid "" "Alternatively, you can use :func:`get_context` to obtain a context object. " "Context objects have the same API as the multiprocessing module, and allow " "one to use multiple start methods in the same program. ::" msgstr "" -#: ../../library/multiprocessing.rst:222 msgid "" "import multiprocessing as mp\n" "\n" @@ -334,7 +289,6 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:235 msgid "" "Note that objects related to one context may not be compatible with " "processes for a different context. In particular, locks created using the " @@ -342,17 +296,15 @@ msgid "" "*forkserver* start methods." msgstr "" -#: ../../library/multiprocessing.rst:240 msgid "" -"Libraries using :mod:`multiprocessing` " -"or :class:`~concurrent.futures.ProcessPoolExecutor` should be designed to " -"allow their users to provide their own multiprocessing context. Using a " -"specific context of your own within a library can lead to incompatibilities " -"with the rest of the library user's application. Always document if your " -"library requires a specific start method." +"Libraries using :mod:`multiprocessing` or :class:`~concurrent.futures." +"ProcessPoolExecutor` should be designed to allow their users to provide " +"their own multiprocessing context. Using a specific context of your own " +"within a library can lead to incompatibilities with the rest of the library " +"user's application. Always document if your library requires a specific " +"start method." msgstr "" -#: ../../library/multiprocessing.rst:249 msgid "" "The ``'spawn'`` and ``'forkserver'`` start methods generally cannot be used " "with \"frozen\" executables (i.e., binaries produced by packages like " @@ -360,27 +312,22 @@ msgid "" "method may work if code does not use threads." msgstr "" -#: ../../library/multiprocessing.rst:256 msgid "Exchanging objects between processes" msgstr "" -#: ../../library/multiprocessing.rst:258 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" msgstr "" -#: ../../library/multiprocessing.rst:261 msgid "**Queues**" msgstr "" -#: ../../library/multiprocessing.rst:263 msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" msgstr "" -#: ../../library/multiprocessing.rst:266 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -395,23 +342,19 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:278 msgid "" -"Queues are thread and process safe. Any object put into " -"a :mod:`~multiprocessing` queue will be serialized." +"Queues are thread and process safe. Any object put into a :mod:" +"`~multiprocessing` queue will be serialized." msgstr "" -#: ../../library/multiprocessing.rst:281 msgid "**Pipes**" msgstr "" -#: ../../library/multiprocessing.rst:283 msgid "" "The :func:`Pipe` function returns a pair of connection objects connected by " "a pipe which by default is duplex (two-way). For example::" msgstr "" -#: ../../library/multiprocessing.rst:286 msgid "" "from multiprocessing import Process, Pipe\n" "\n" @@ -427,35 +370,29 @@ msgid "" " p.join()" msgstr "" -#: ../../library/multiprocessing.rst:299 msgid "" "The two connection objects returned by :func:`Pipe` represent the two ends " -"of the pipe. Each connection object has :meth:`~Connection.send` " -"and :meth:`~Connection.recv` methods (among others). Note that data in a " -"pipe may become corrupted if two processes (or threads) try to read from or " -"write to the *same* end of the pipe at the same time. Of course there is no " -"risk of corruption from processes using different ends of the pipe at the " -"same time." +"of the pipe. Each connection object has :meth:`~Connection.send` and :meth:" +"`~Connection.recv` methods (among others). Note that data in a pipe may " +"become corrupted if two processes (or threads) try to read from or write to " +"the *same* end of the pipe at the same time. Of course there is no risk of " +"corruption from processes using different ends of the pipe at the same time." msgstr "" -#: ../../library/multiprocessing.rst:307 msgid "" -"The :meth:`~Connection.send` method serializes the object " -"and :meth:`~Connection.recv` re-creates the object." +"The :meth:`~Connection.send` method serializes the object and :meth:" +"`~Connection.recv` re-creates the object." msgstr "" -#: ../../library/multiprocessing.rst:311 msgid "Synchronization between processes" msgstr "" -#: ../../library/multiprocessing.rst:313 msgid "" ":mod:`multiprocessing` contains equivalents of all the synchronization " "primitives from :mod:`threading`. For instance one can use a lock to ensure " "that only one process prints to standard output at a time::" msgstr "" -#: ../../library/multiprocessing.rst:317 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -473,40 +410,33 @@ msgid "" " Process(target=f, args=(lock, num)).start()" msgstr "" -#: ../../library/multiprocessing.rst:332 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." msgstr "" -#: ../../library/multiprocessing.rst:337 msgid "Sharing state between processes" msgstr "" -#: ../../library/multiprocessing.rst:339 msgid "" "As mentioned above, when doing concurrent programming it is usually best to " "avoid using shared state as far as possible. This is particularly true when " "using multiple processes." msgstr "" -#: ../../library/multiprocessing.rst:343 msgid "" -"However, if you really do need to use some shared data " -"then :mod:`multiprocessing` provides a couple of ways of doing so." +"However, if you really do need to use some shared data then :mod:" +"`multiprocessing` provides a couple of ways of doing so." msgstr "" -#: ../../library/multiprocessing.rst:346 msgid "**Shared memory**" msgstr "" -#: ../../library/multiprocessing.rst:348 msgid "" -"Data can be stored in a shared memory map using :class:`Value` " -"or :class:`Array`. For example, the following code ::" +"Data can be stored in a shared memory map using :class:`Value` or :class:" +"`Array`. For example, the following code ::" msgstr "" -#: ../../library/multiprocessing.rst:351 msgid "" "from multiprocessing import Process, Value, Array\n" "\n" @@ -527,17 +457,14 @@ msgid "" " print(arr[:])" msgstr "" -#: ../../library/multiprocessing.rst:369 ../../library/multiprocessing.rst:419 msgid "will print ::" msgstr "" -#: ../../library/multiprocessing.rst:371 msgid "" "3.1415927\n" "[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]" msgstr "" -#: ../../library/multiprocessing.rst:374 msgid "" "The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are " "typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a " @@ -545,32 +472,29 @@ msgid "" "objects will be process and thread-safe." msgstr "" -#: ../../library/multiprocessing.rst:379 msgid "" -"For more flexibility in using shared memory one can use " -"the :mod:`multiprocessing.sharedctypes` module which supports the creation " -"of arbitrary ctypes objects allocated from shared memory." +"For more flexibility in using shared memory one can use the :mod:" +"`multiprocessing.sharedctypes` module which supports the creation of " +"arbitrary ctypes objects allocated from shared memory." msgstr "" -#: ../../library/multiprocessing.rst:383 msgid "**Server process**" msgstr "" -#: ../../library/multiprocessing.rst:385 msgid "" "A manager object returned by :func:`Manager` controls a server process which " "holds Python objects and allows other processes to manipulate them using " "proxies." msgstr "" -#: ../../library/multiprocessing.rst:389 msgid "" -"A manager returned by :func:`Manager` will support " -"types :class:`list`, :class:`dict`, :class:`set`, :class:`~managers.Namespace`, :class:`Lock`, :class:`RLock`, :class:`Semaphore`, :class:`BoundedSemaphore`, :class:`Condition`, :class:`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` " -"and :class:`Array`. For example, ::" +"A manager returned by :func:`Manager` will support types :class:`list`, :" +"class:`dict`, :class:`set`, :class:`~managers.Namespace`, :class:`Lock`, :" +"class:`RLock`, :class:`Semaphore`, :class:`BoundedSemaphore`, :class:" +"`Condition`, :class:`Event`, :class:`Barrier`, :class:`Queue`, :class:" +"`Value` and :class:`Array`. For example, ::" msgstr "" -#: ../../library/multiprocessing.rst:395 msgid "" "from multiprocessing import Process, Manager\n" "\n" @@ -597,14 +521,12 @@ msgid "" " print(s)" msgstr "" -#: ../../library/multiprocessing.rst:421 msgid "" "{0.25: None, 1: '1', '2': 2}\n" "[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]\n" "{'a', 'b'}" msgstr "" -#: ../../library/multiprocessing.rst:425 msgid "" "Server process managers are more flexible than using shared memory objects " "because they can be made to support arbitrary object types. Also, a single " @@ -612,22 +534,18 @@ msgid "" "They are, however, slower than using shared memory." msgstr "" -#: ../../library/multiprocessing.rst:432 msgid "Using a pool of workers" msgstr "" -#: ../../library/multiprocessing.rst:434 msgid "" "The :class:`~multiprocessing.pool.Pool` class represents a pool of worker " "processes. It has methods which allows tasks to be offloaded to the worker " "processes in a few different ways." msgstr "" -#: ../../library/multiprocessing.rst:438 msgid "For example::" msgstr "" -#: ../../library/multiprocessing.rst:440 msgid "" "from multiprocessing import Pool, TimeoutError\n" "import time\n" @@ -667,8 +585,8 @@ msgid "" " try:\n" " print(res.get(timeout=1))\n" " except TimeoutError:\n" -" print(\"We lacked patience and got a " -"multiprocessing.TimeoutError\")\n" +" print(\"We lacked patience and got a multiprocessing." +"TimeoutError\")\n" "\n" " print(\"For the moment, the pool remains available for more work\")\n" "\n" @@ -676,13 +594,11 @@ msgid "" " print(\"Now the pool is closed and no longer available\")" msgstr "" -#: ../../library/multiprocessing.rst:482 msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." msgstr "" -#: ../../library/multiprocessing.rst:487 msgid "" "Functionality within this package requires that the ``__main__`` module be " "importable by the children. This is covered in :ref:`multiprocessing-" @@ -691,7 +607,6 @@ msgid "" "work in the interactive interpreter. For example::" msgstr "" -#: ../../library/multiprocessing.rst:493 msgid "" ">>> from multiprocessing import Pool\n" ">>> p = Pool(5)\n" @@ -714,71 +629,61 @@ msgid "" "'_frozen_importlib.BuiltinImporter'>)>" msgstr "" -#: ../../library/multiprocessing.rst:510 msgid "" "(If you try this it will actually output three full tracebacks interleaved " "in a semi-random fashion, and then you may have to stop the parent process " "somehow.)" msgstr "" -#: ../../library/multiprocessing.rst:516 msgid "Reference" msgstr "" -#: ../../library/multiprocessing.rst:518 msgid "" -"The :mod:`multiprocessing` package mostly replicates the API of " -"the :mod:`threading` module." +"The :mod:`multiprocessing` package mostly replicates the API of the :mod:" +"`threading` module." msgstr "" -#: ../../library/multiprocessing.rst:523 msgid ":class:`Process` and exceptions" msgstr "" -#: ../../library/multiprocessing.rst:528 msgid "" -"Process objects represent activity that is run in a separate process. " -"The :class:`Process` class has equivalents of all the methods " -"of :class:`threading.Thread`." +"Process objects represent activity that is run in a separate process. The :" +"class:`Process` class has equivalents of all the methods of :class:" +"`threading.Thread`." msgstr "" -#: ../../library/multiprocessing.rst:532 msgid "" "The constructor should always be called with keyword arguments. *group* " -"should always be ``None``; it exists solely for compatibility " -"with :class:`threading.Thread`. *target* is the callable object to be " -"invoked by the :meth:`run` method. It defaults to ``None``, meaning nothing " -"is called. *name* is the process name (see :attr:`name` for more details). " -"*args* is the argument tuple for the target invocation. *kwargs* is a " -"dictionary of keyword arguments for the target invocation. If provided, the " -"keyword-only *daemon* argument sets the process :attr:`daemon` flag to " -"``True`` or ``False``. If ``None`` (the default), this flag will be " -"inherited from the creating process." +"should always be ``None``; it exists solely for compatibility with :class:" +"`threading.Thread`. *target* is the callable object to be invoked by the :" +"meth:`run` method. It defaults to ``None``, meaning nothing is called. " +"*name* is the process name (see :attr:`name` for more details). *args* is " +"the argument tuple for the target invocation. *kwargs* is a dictionary of " +"keyword arguments for the target invocation. If provided, the keyword-only " +"*daemon* argument sets the process :attr:`daemon` flag to ``True`` or " +"``False``. If ``None`` (the default), this flag will be inherited from the " +"creating process." msgstr "" -#: ../../library/multiprocessing.rst:543 msgid "" "By default, no arguments are passed to *target*. The *args* argument, which " "defaults to ``()``, can be used to specify a list or tuple of the arguments " "to pass to *target*." msgstr "" -#: ../../library/multiprocessing.rst:547 msgid "" "If a subclass overrides the constructor, it must make sure it invokes the " "base class constructor (``super().__init__()``) before doing anything else " "to the process." msgstr "" -#: ../../library/multiprocessing.rst:553 msgid "" "In general, all arguments to :class:`Process` must be picklable. This is " -"frequently observed when trying to create a :class:`Process` or use " -"a :class:`concurrent.futures.ProcessPoolExecutor` from a REPL with a locally " -"defined *target* function." +"frequently observed when trying to create a :class:`Process` or use a :class:" +"`concurrent.futures.ProcessPoolExecutor` from a REPL with a locally defined " +"*target* function." msgstr "" -#: ../../library/multiprocessing.rst:558 msgid "" "Passing a callable object defined in the current REPL session causes the " "child process to die via an uncaught :exc:`AttributeError` exception when " @@ -786,11 +691,9 @@ msgid "" "order to be loaded during unpickling." msgstr "" -#: ../../library/multiprocessing.rst:563 msgid "Example of this uncatchable error from the child::" msgstr "" -#: ../../library/multiprocessing.rst:565 msgid "" ">>> import multiprocessing as mp\n" ">>> def knigit():\n" @@ -807,7 +710,6 @@ msgid "" "exitcode=1>" msgstr "" -#: ../../library/multiprocessing.rst:578 msgid "" "See :ref:`multiprocessing-programming-spawn`. While this restriction is not " "true if using the ``\"fork\"`` start method, as of Python ``3.14`` that is " @@ -815,15 +717,12 @@ msgid "" "methods`. See also :gh:`132898`." msgstr "" -#: ../../library/multiprocessing.rst:584 msgid "Added the *daemon* parameter." msgstr "" -#: ../../library/multiprocessing.rst:589 msgid "Method representing the process's activity." msgstr "" -#: ../../library/multiprocessing.rst:591 msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the target " @@ -831,17 +730,14 @@ msgid "" "*args* and *kwargs* arguments, respectively." msgstr "" -#: ../../library/multiprocessing.rst:596 msgid "" "Using a list or tuple as the *args* argument passed to :class:`Process` " "achieves the same effect." msgstr "" -#: ../../library/multiprocessing.rst:599 msgid "Example::" msgstr "" -#: ../../library/multiprocessing.rst:601 msgid "" ">>> from multiprocessing import Process\n" ">>> p = Process(target=print, args=[1])\n" @@ -852,17 +748,14 @@ msgid "" "1" msgstr "" -#: ../../library/multiprocessing.rst:611 msgid "Start the process's activity." msgstr "" -#: ../../library/multiprocessing.rst:613 msgid "" "This must be called at most once per process object. It arranges for the " "object's :meth:`run` method to be invoked in a separate process." msgstr "" -#: ../../library/multiprocessing.rst:618 msgid "" "If the optional argument *timeout* is ``None`` (the default), the method " "blocks until the process whose :meth:`join` method is called terminates. If " @@ -872,57 +765,47 @@ msgid "" "terminated." msgstr "" -#: ../../library/multiprocessing.rst:625 msgid "A process can be joined many times." msgstr "" -#: ../../library/multiprocessing.rst:627 msgid "" "A process cannot join itself because this would cause a deadlock. It is an " "error to attempt to join a process before it has been started." msgstr "" -#: ../../library/multiprocessing.rst:632 msgid "" "The process's name. The name is a string used for identification purposes " "only. It has no semantics. Multiple processes may be given the same name." msgstr "" -#: ../../library/multiprocessing.rst:636 msgid "" "The initial name is set by the constructor. If no explicit name is provided " -"to the constructor, a name of the form 'Process-" -"N\\ :sub:`1`:N\\ :sub:`2`:...:N\\ :sub:`k`' is constructed, where each " -"N\\ :sub:`k` is the N-th child of its parent." +"to the constructor, a name of the form 'Process-N\\ :sub:`1`:N\\ :sub:" +"`2`:...:N\\ :sub:`k`' is constructed, where each N\\ :sub:`k` is the N-th " +"child of its parent." msgstr "" -#: ../../library/multiprocessing.rst:643 msgid "Return whether the process is alive." msgstr "" -#: ../../library/multiprocessing.rst:645 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." msgstr "" -#: ../../library/multiprocessing.rst:650 msgid "" -"The process's daemon flag, a Boolean value. This must be set " -"before :meth:`start` is called." +"The process's daemon flag, a Boolean value. This must be set before :meth:" +"`start` is called." msgstr "" -#: ../../library/multiprocessing.rst:653 msgid "The initial value is inherited from the creating process." msgstr "" -#: ../../library/multiprocessing.rst:655 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." msgstr "" -#: ../../library/multiprocessing.rst:658 msgid "" "Note that a daemonic process is not allowed to create child processes. " "Otherwise a daemonic process would leave its children orphaned if it gets " @@ -931,121 +814,101 @@ msgid "" "(and not joined) if non-daemonic processes have exited." msgstr "" -#: ../../library/multiprocessing.rst:664 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" msgstr "" -#: ../../library/multiprocessing.rst:669 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" -#: ../../library/multiprocessing.rst:674 msgid "" "The child's exit code. This will be ``None`` if the process has not yet " "terminated." msgstr "" -#: ../../library/multiprocessing.rst:677 msgid "" "If the child's :meth:`run` method returned normally, the exit code will be " "0. If it terminated via :func:`sys.exit` with an integer argument *N*, the " "exit code will be *N*." msgstr "" -#: ../../library/multiprocessing.rst:681 msgid "" "If the child terminated due to an exception not caught within :meth:`run`, " "the exit code will be 1. If it was terminated by signal *N*, the exit code " "will be the negative value *-N*." msgstr "" -#: ../../library/multiprocessing.rst:687 msgid "The process's authentication key (a byte string)." msgstr "" -#: ../../library/multiprocessing.rst:689 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." msgstr "" -#: ../../library/multiprocessing.rst:692 msgid "" "When a :class:`Process` object is created, it will inherit the " "authentication key of its parent process, although this may be changed by " "setting :attr:`authkey` to another byte string." msgstr "" -#: ../../library/multiprocessing.rst:696 msgid "See :ref:`multiprocessing-auth-keys`." msgstr "" -#: ../../library/multiprocessing.rst:700 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." msgstr "" -#: ../../library/multiprocessing.rst:703 msgid "" -"You can use this value if you want to wait on several events at once " -"using :func:`multiprocessing.connection.wait`. Otherwise " -"calling :meth:`join` is simpler." +"You can use this value if you want to wait on several events at once using :" +"func:`multiprocessing.connection.wait`. Otherwise calling :meth:`join` is " +"simpler." msgstr "" -#: ../../library/multiprocessing.rst:707 msgid "" "On Windows, this is an OS handle usable with the ``WaitForSingleObject`` and " "``WaitForMultipleObjects`` family of API calls. On POSIX, this is a file " "descriptor usable with primitives from the :mod:`select` module." msgstr "" -#: ../../library/multiprocessing.rst:715 msgid "" "Terminate the process. Works on POSIX using the :py:const:`~signal.SIGINT` " "signal. Behavior on Windows is undefined." msgstr "" -#: ../../library/multiprocessing.rst:718 msgid "" -"By default, this terminates the child process by " -"raising :exc:`KeyboardInterrupt`. This behavior can be altered by setting " -"the respective signal handler in the child process :func:`signal.signal` " -"for :py:const:`~signal.SIGINT`." +"By default, this terminates the child process by raising :exc:" +"`KeyboardInterrupt`. This behavior can be altered by setting the respective " +"signal handler in the child process :func:`signal.signal` for :py:const:" +"`~signal.SIGINT`." msgstr "" -#: ../../library/multiprocessing.rst:722 msgid "" "Note: if the child process catches and discards :exc:`KeyboardInterrupt`, " "the process will not be terminated." msgstr "" -#: ../../library/multiprocessing.rst:725 msgid "" "Note: the default behavior will also set :attr:`exitcode` to ``1`` as if an " -"uncaught exception was raised in the child process. To have a " -"different :attr:`exitcode` you may simply catch :exc:`KeyboardInterrupt` and " -"call ``exit(your_code)``." +"uncaught exception was raised in the child process. To have a different :" +"attr:`exitcode` you may simply catch :exc:`KeyboardInterrupt` and call " +"``exit(your_code)``." msgstr "" -#: ../../library/multiprocessing.rst:734 msgid "" -"Terminate the process. On POSIX this is done using " -"the :py:const:`~signal.SIGTERM` signal; on Windows :c:func:`!" -"TerminateProcess` is used. Note that exit handlers and finally clauses, " -"etc., will not be executed." +"Terminate the process. On POSIX this is done using the :py:const:`~signal." +"SIGTERM` signal; on Windows :c:func:`!TerminateProcess` is used. Note that " +"exit handlers and finally clauses, etc., will not be executed." msgstr "" -#: ../../library/multiprocessing.rst:738 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." msgstr "" -#: ../../library/multiprocessing.rst:743 msgid "" "If this method is used when the associated process is using a pipe or queue " "then the pipe or queue is liable to become corrupted and may become unusable " @@ -1054,11 +917,9 @@ msgid "" "deadlock." msgstr "" -#: ../../library/multiprocessing.rst:751 msgid "Same as :meth:`terminate` but using the ``SIGKILL`` signal on POSIX." msgstr "" -#: ../../library/multiprocessing.rst:757 msgid "" "Close the :class:`Process` object, releasing all resources associated with " "it. :exc:`ValueError` is raised if the underlying process is still " @@ -1066,19 +927,15 @@ msgid "" "attributes of the :class:`Process` object will raise :exc:`ValueError`." msgstr "" -#: ../../library/multiprocessing.rst:765 msgid "" -"Note that " -"the :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:`terminate` " -"and :attr:`exitcode` methods should only be called by the process that " -"created the process object." +"Note that the :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" +"`terminate` and :attr:`exitcode` methods should only be called by the " +"process that created the process object." msgstr "" -#: ../../library/multiprocessing.rst:769 msgid "Example usage of some of the methods of :class:`Process`:" msgstr "" -#: ../../library/multiprocessing.rst:771 msgid "" ">>> import multiprocessing, time, signal\n" ">>> mp_context = multiprocessing.get_context('spawn')\n" @@ -1096,88 +953,73 @@ msgid "" "True" msgstr "" -#: ../../library/multiprocessing.rst:790 msgid "The base class of all :mod:`multiprocessing` exceptions." msgstr "" -#: ../../library/multiprocessing.rst:794 msgid "" "Exception raised by :meth:`Connection.recv_bytes_into` when the supplied " "buffer object is too small for the message read." msgstr "" -#: ../../library/multiprocessing.rst:797 msgid "" "If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " "give the message as a byte string." msgstr "" -#: ../../library/multiprocessing.rst:802 msgid "Raised when there is an authentication error." msgstr "" -#: ../../library/multiprocessing.rst:806 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" -#: ../../library/multiprocessing.rst:809 msgid "Pipes and Queues" msgstr "" -#: ../../library/multiprocessing.rst:811 msgid "" "When using multiple processes, one generally uses message passing for " "communication between processes and avoids having to use any synchronization " "primitives like locks." msgstr "" -#: ../../library/multiprocessing.rst:815 msgid "" "For passing messages one can use :func:`Pipe` (for a connection between two " "processes) or a queue (which allows multiple producers and consumers)." msgstr "" -#: ../../library/multiprocessing.rst:818 msgid "" "The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " "are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " "modelled on the :class:`queue.Queue` class in the standard library. They " -"differ in that :class:`Queue` lacks the :meth:`~queue.Queue.task_done` " -"and :meth:`~queue.Queue.join` methods introduced into Python " -"2.5's :class:`queue.Queue` class." +"differ in that :class:`Queue` lacks the :meth:`~queue.Queue.task_done` and :" +"meth:`~queue.Queue.join` methods introduced into Python 2.5's :class:`queue." +"Queue` class." msgstr "" -#: ../../library/multiprocessing.rst:825 msgid "" -"If you use :class:`JoinableQueue` then you **must** " -"call :meth:`JoinableQueue.task_done` for each task removed from the queue or " -"else the semaphore used to count the number of unfinished tasks may " -"eventually overflow, raising an exception." +"If you use :class:`JoinableQueue` then you **must** call :meth:" +"`JoinableQueue.task_done` for each task removed from the queue or else the " +"semaphore used to count the number of unfinished tasks may eventually " +"overflow, raising an exception." msgstr "" -#: ../../library/multiprocessing.rst:830 msgid "" -"One difference from other Python queue implementations, is " -"that :mod:`multiprocessing` queues serializes all objects that are put into " -"them using :mod:`pickle`. The object return by the get method is a re-" -"created object that does not share memory with the original object." +"One difference from other Python queue implementations, is that :mod:" +"`multiprocessing` queues serializes all objects that are put into them " +"using :mod:`pickle`. The object return by the get method is a re-created " +"object that does not share memory with the original object." msgstr "" -#: ../../library/multiprocessing.rst:835 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." msgstr "" -#: ../../library/multiprocessing.rst:840 msgid "" -":mod:`multiprocessing` uses the usual :exc:`queue.Empty` " -"and :exc:`queue.Full` exceptions to signal a timeout. They are not " -"available in the :mod:`multiprocessing` namespace so you need to import them " -"from :mod:`queue`." +":mod:`multiprocessing` uses the usual :exc:`queue.Empty` and :exc:`queue." +"Full` exceptions to signal a timeout. They are not available in the :mod:" +"`multiprocessing` namespace so you need to import them from :mod:`queue`." msgstr "" -#: ../../library/multiprocessing.rst:847 msgid "" "When an object is put on a queue, the object is pickled and a background " "thread later flushes the pickled data to an underlying pipe. This has some " @@ -1186,14 +1028,12 @@ msgid "" "a queue created with a :ref:`manager `." msgstr "" -#: ../../library/multiprocessing.rst:854 msgid "" "After putting an object on an empty queue there may be an infinitesimal " "delay before the queue's :meth:`~Queue.empty` method returns :const:`False` " "and :meth:`~Queue.get_nowait` can return without raising :exc:`queue.Empty`." msgstr "" -#: ../../library/multiprocessing.rst:859 msgid "" "If multiple processes are enqueuing objects, it is possible for the objects " "to be received at the other end out-of-order. However, objects enqueued by " @@ -1201,7 +1041,6 @@ msgid "" "other." msgstr "" -#: ../../library/multiprocessing.rst:866 msgid "" "If a process is killed using :meth:`Process.terminate` or :func:`os.kill` " "while it is trying to use a :class:`Queue`, then the data in the queue is " @@ -1209,15 +1048,13 @@ msgid "" "exception when it tries to use the queue later on." msgstr "" -#: ../../library/multiprocessing.rst:873 msgid "" "As mentioned above, if a child process has put items on a queue (and it has " -"not used :meth:`JoinableQueue.cancel_join_thread " -"`), then that process will not " -"terminate until all buffered items have been flushed to the pipe." +"not used :meth:`JoinableQueue.cancel_join_thread `), then that process will not terminate until all " +"buffered items have been flushed to the pipe." msgstr "" -#: ../../library/multiprocessing.rst:878 msgid "" "This means that if you try joining that process you may get a deadlock " "unless you are sure that all items which have been put on the queue have " @@ -1226,26 +1063,21 @@ msgid "" "children." msgstr "" -#: ../../library/multiprocessing.rst:883 msgid "" -"Note that a queue created using a manager does not have this issue. " -"See :ref:`multiprocessing-programming`." +"Note that a queue created using a manager does not have this issue. See :" +"ref:`multiprocessing-programming`." msgstr "" -#: ../../library/multiprocessing.rst:886 msgid "" -"For an example of the usage of queues for interprocess communication " -"see :ref:`multiprocessing-examples`." +"For an example of the usage of queues for interprocess communication see :" +"ref:`multiprocessing-examples`." msgstr "" -#: ../../library/multiprocessing.rst:892 msgid "" -"Returns a pair ``(conn1, conn2)`` " -"of :class:`~multiprocessing.connection.Connection` objects representing the " -"ends of a pipe." +"Returns a pair ``(conn1, conn2)`` of :class:`~multiprocessing.connection." +"Connection` objects representing the ends of a pipe." msgstr "" -#: ../../library/multiprocessing.rst:896 msgid "" "If *duplex* is ``True`` (the default) then the pipe is bidirectional. If " "*duplex* is ``False`` then the pipe is unidirectional: ``conn1`` can only be " @@ -1253,61 +1085,51 @@ msgid "" "messages." msgstr "" -#: ../../library/multiprocessing.rst:901 msgid "" "The :meth:`~multiprocessing.Connection.send` method serializes the object " "using :mod:`pickle` and the :meth:`~multiprocessing.Connection.recv` re-" "creates the object." msgstr "" -#: ../../library/multiprocessing.rst:906 msgid "" "Returns a process shared queue implemented using a pipe and a few locks/" "semaphores. When a process first puts an item on the queue a feeder thread " "is started which transfers objects from a buffer into the pipe." msgstr "" -#: ../../library/multiprocessing.rst:910 msgid "" "The usual :exc:`queue.Empty` and :exc:`queue.Full` exceptions from the " "standard library's :mod:`queue` module are raised to signal timeouts." msgstr "" -#: ../../library/multiprocessing.rst:913 msgid "" ":class:`Queue` implements all the methods of :class:`queue.Queue` except " "for :meth:`~queue.Queue.task_done` and :meth:`~queue.Queue.join`." msgstr "" -#: ../../library/multiprocessing.rst:918 msgid "" "Return the approximate size of the queue. Because of multithreading/" "multiprocessing semantics, this number is not reliable." msgstr "" -#: ../../library/multiprocessing.rst:921 msgid "" "Note that this may raise :exc:`NotImplementedError` on platforms like macOS " "where ``sem_getvalue()`` is not implemented." msgstr "" -#: ../../library/multiprocessing.rst:926 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" -#: ../../library/multiprocessing.rst:929 msgid "May raise an :exc:`OSError` on closed queues. (not guaranteed)" msgstr "" -#: ../../library/multiprocessing.rst:933 msgid "" "Return ``True`` if the queue is full, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" -#: ../../library/multiprocessing.rst:938 msgid "" "Put obj into the queue. If the optional argument *block* is ``True`` (the " "default) and *timeout* is ``None`` (the default), block if necessary until a " @@ -1318,83 +1140,69 @@ msgid "" "the :exc:`queue.Full` exception (*timeout* is ignored in that case)." msgstr "" -#: ../../library/multiprocessing.rst:947 msgid "" -"If the queue is closed, :exc:`ValueError` is raised instead " -"of :exc:`AssertionError`." +"If the queue is closed, :exc:`ValueError` is raised instead of :exc:" +"`AssertionError`." msgstr "" -#: ../../library/multiprocessing.rst:953 msgid "Equivalent to ``put(obj, False)``." msgstr "" -#: ../../library/multiprocessing.rst:957 msgid "" "Remove and return an item from the queue. If optional args *block* is " "``True`` (the default) and *timeout* is ``None`` (the default), block if " "necessary until an item is available. If *timeout* is a positive number, it " "blocks at most *timeout* seconds and raises the :exc:`queue.Empty` exception " "if no item was available within that time. Otherwise (block is ``False``), " -"return an item if one is immediately available, else raise " -"the :exc:`queue.Empty` exception (*timeout* is ignored in that case)." +"return an item if one is immediately available, else raise the :exc:`queue." +"Empty` exception (*timeout* is ignored in that case)." msgstr "" -#: ../../library/multiprocessing.rst:965 msgid "" -"If the queue is closed, :exc:`ValueError` is raised instead " -"of :exc:`OSError`." +"If the queue is closed, :exc:`ValueError` is raised instead of :exc:" +"`OSError`." msgstr "" -#: ../../library/multiprocessing.rst:971 msgid "Equivalent to ``get(False)``." msgstr "" -#: ../../library/multiprocessing.rst:973 msgid "" -":class:`multiprocessing.Queue` has a few additional methods not found " -"in :class:`queue.Queue`. These methods are usually unnecessary for most " -"code:" +":class:`multiprocessing.Queue` has a few additional methods not found in :" +"class:`queue.Queue`. These methods are usually unnecessary for most code:" msgstr "" -#: ../../library/multiprocessing.rst:979 ../../library/multiprocessing.rst:1027 msgid "Close the queue: release internal resources." msgstr "" -#: ../../library/multiprocessing.rst:981 msgid "" -"A queue must not be used anymore after it is closed. For " -"example, :meth:`~Queue.get`, :meth:`~Queue.put` and :meth:`~Queue.empty` " -"methods must no longer be called." +"A queue must not be used anymore after it is closed. For example, :meth:" +"`~Queue.get`, :meth:`~Queue.put` and :meth:`~Queue.empty` methods must no " +"longer be called." msgstr "" -#: ../../library/multiprocessing.rst:985 msgid "" "The background thread will quit once it has flushed all buffered data to the " "pipe. This is called automatically when the queue is garbage collected." msgstr "" -#: ../../library/multiprocessing.rst:991 msgid "" "Join the background thread. This can only be used after :meth:`close` has " "been called. It blocks until the background thread exits, ensuring that all " "data in the buffer has been flushed to the pipe." msgstr "" -#: ../../library/multiprocessing.rst:995 msgid "" "By default if a process is not the creator of the queue then on exit it will " -"attempt to join the queue's background thread. The process can " -"call :meth:`cancel_join_thread` to make :meth:`join_thread` do nothing." +"attempt to join the queue's background thread. The process can call :meth:" +"`cancel_join_thread` to make :meth:`join_thread` do nothing." msgstr "" -#: ../../library/multiprocessing.rst:1001 msgid "" "Prevent :meth:`join_thread` from blocking. In particular, this prevents the " "background thread from being joined automatically when the process exits -- " "see :meth:`join_thread`." msgstr "" -#: ../../library/multiprocessing.rst:1005 msgid "" "A better name for this method might be ``allow_exit_without_flush()``. It " "is likely to cause enqueued data to be lost, and you almost certainly will " @@ -1403,7 +1211,6 @@ msgid "" "pipe, and you don't care about lost data." msgstr "" -#: ../../library/multiprocessing.rst:1014 msgid "" "This class's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the functionality " @@ -1413,41 +1220,32 @@ msgid "" "listed below." msgstr "" -#: ../../library/multiprocessing.rst:1023 msgid "" "It is a simplified :class:`Queue` type, very close to a locked :class:`Pipe`." msgstr "" -#: ../../library/multiprocessing.rst:1029 msgid "" -"A queue must not be used anymore after it is closed. For " -"example, :meth:`get`, :meth:`put` and :meth:`empty` methods must no longer " -"be called." +"A queue must not be used anymore after it is closed. For example, :meth:" +"`get`, :meth:`put` and :meth:`empty` methods must no longer be called." msgstr "" -#: ../../library/multiprocessing.rst:1037 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." msgstr "" -#: ../../library/multiprocessing.rst:1039 msgid "Always raises an :exc:`OSError` if the SimpleQueue is closed." msgstr "" -#: ../../library/multiprocessing.rst:1043 msgid "Remove and return an item from the queue." msgstr "" -#: ../../library/multiprocessing.rst:1047 msgid "Put *item* into the queue." msgstr "" -#: ../../library/multiprocessing.rst:1052 msgid "" ":class:`JoinableQueue`, a :class:`Queue` subclass, is a queue which " "additionally has :meth:`task_done` and :meth:`join` methods." msgstr "" -#: ../../library/multiprocessing.rst:1057 msgid "" "Indicate that a formerly enqueued task is complete. Used by queue " "consumers. For each :meth:`~Queue.get` used to fetch a task, a subsequent " @@ -1455,24 +1253,20 @@ msgid "" "complete." msgstr "" -#: ../../library/multiprocessing.rst:1062 msgid "" "If a :meth:`~queue.Queue.join` is currently blocking, it will resume when " "all items have been processed (meaning that a :meth:`task_done` call was " "received for every item that had been :meth:`~Queue.put` into the queue)." msgstr "" -#: ../../library/multiprocessing.rst:1066 msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" -#: ../../library/multiprocessing.rst:1072 msgid "Block until all items in the queue have been gotten and processed." msgstr "" -#: ../../library/multiprocessing.rst:1074 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer calls :meth:`task_done` to " @@ -1481,78 +1275,64 @@ msgid "" "unblocks." msgstr "" -#: ../../library/multiprocessing.rst:1082 msgid "Miscellaneous" msgstr "" -#: ../../library/multiprocessing.rst:1086 msgid "Return list of all live children of the current process." msgstr "" -#: ../../library/multiprocessing.rst:1088 msgid "" "Calling this has the side effect of \"joining\" any processes which have " "already finished." msgstr "" -#: ../../library/multiprocessing.rst:1093 msgid "Return the number of CPUs in the system." msgstr "" -#: ../../library/multiprocessing.rst:1095 msgid "" "This number is not equivalent to the number of CPUs the current process can " -"use. The number of usable CPUs can be obtained " -"with :func:`os.process_cpu_count` (or ``len(os.sched_getaffinity(0))``)." +"use. The number of usable CPUs can be obtained with :func:`os." +"process_cpu_count` (or ``len(os.sched_getaffinity(0))``)." msgstr "" -#: ../../library/multiprocessing.rst:1099 msgid "" "When the number of CPUs cannot be determined a :exc:`NotImplementedError` is " "raised." msgstr "" -#: ../../library/multiprocessing.rst:1103 msgid ":func:`os.cpu_count` :func:`os.process_cpu_count`" msgstr "" -#: ../../library/multiprocessing.rst:1108 msgid "" "The return value can also be overridden using the :option:`-X cpu_count <-" "X>` flag or :envvar:`PYTHON_CPU_COUNT` as this is merely a wrapper around " "the :mod:`os` cpu count APIs." msgstr "" -#: ../../library/multiprocessing.rst:1114 msgid "" "Return the :class:`Process` object corresponding to the current process." msgstr "" -#: ../../library/multiprocessing.rst:1116 msgid "An analogue of :func:`threading.current_thread`." msgstr "" -#: ../../library/multiprocessing.rst:1120 msgid "" "Return the :class:`Process` object corresponding to the parent process of " "the :func:`current_process`. For the main process, ``parent_process`` will " "be ``None``." msgstr "" -#: ../../library/multiprocessing.rst:1128 msgid "" "Add support for when a program which uses :mod:`multiprocessing` has been " "frozen to produce an executable. (Has been tested with **py2exe**, " "**PyInstaller** and **cx_Freeze**.)" msgstr "" -#: ../../library/multiprocessing.rst:1132 msgid "" "One needs to call this function straight after the ``if __name__ == " "'__main__'`` line of the main module. For example::" msgstr "" -#: ../../library/multiprocessing.rst:1135 msgid "" "from multiprocessing import Process, freeze_support\n" "\n" @@ -1564,13 +1344,11 @@ msgid "" " Process(target=f).start()" msgstr "" -#: ../../library/multiprocessing.rst:1144 msgid "" "If the ``freeze_support()`` line is omitted then trying to run the frozen " "executable will raise :exc:`RuntimeError`." msgstr "" -#: ../../library/multiprocessing.rst:1147 msgid "" "Calling ``freeze_support()`` has no effect when the start method is not " "*spawn*. In addition, if the module is being run normally by the Python " @@ -1578,21 +1356,18 @@ msgid "" "no effect." msgstr "" -#: ../../library/multiprocessing.rst:1154 msgid "" "Returns a list of the supported start methods, the first of which is the " "default. The possible start methods are ``'fork'``, ``'spawn'`` and " -"``'forkserver'``. Not all platforms support all methods. " -"See :ref:`multiprocessing-start-methods`." +"``'forkserver'``. Not all platforms support all methods. See :ref:" +"`multiprocessing-start-methods`." msgstr "" -#: ../../library/multiprocessing.rst:1163 msgid "" -"Return a context object which has the same attributes as " -"the :mod:`multiprocessing` module." +"Return a context object which has the same attributes as the :mod:" +"`multiprocessing` module." msgstr "" -#: ../../library/multiprocessing.rst:1166 msgid "" "If *method* is ``None`` then the default context is returned. Note that if " "the global start method has not been set, this will set it to the default " @@ -1601,11 +1376,9 @@ msgid "" "is not available. See :ref:`multiprocessing-start-methods`." msgstr "" -#: ../../library/multiprocessing.rst:1177 msgid "Return the name of start method used for starting processes." msgstr "" -#: ../../library/multiprocessing.rst:1179 msgid "" "If the global start method has not been set and *allow_none* is ``False``, " "then the start method is set to the default and the name is returned. If the " @@ -1613,43 +1386,35 @@ msgid "" "returned." msgstr "" -#: ../../library/multiprocessing.rst:1184 msgid "" "The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'`` or " "``None``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: ../../library/multiprocessing.rst:1191 msgid "" "On macOS, the *spawn* start method is now the default. The *fork* start " "method should be considered unsafe as it can lead to crashes of the " "subprocess. See :issue:`33725`." msgstr "" -#: ../../library/multiprocessing.rst:1197 msgid "" "Set the path of the Python interpreter to use when starting a child process. " "(By default :data:`sys.executable` is used). Embedders will probably need " "to do some thing like ::" msgstr "" -#: ../../library/multiprocessing.rst:1201 msgid "set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))" msgstr "" -#: ../../library/multiprocessing.rst:1203 msgid "before they can create child processes." msgstr "" -#: ../../library/multiprocessing.rst:1205 msgid "Now supported on POSIX when the ``'spawn'`` start method is used." msgstr "" -#: ../../library/multiprocessing.rst:1208 msgid "Accepts a :term:`path-like object`." msgstr "" -#: ../../library/multiprocessing.rst:1213 msgid "" "Set a list of module names for the forkserver main process to attempt to " "import so that their already imported state is inherited by forked " @@ -1658,143 +1423,119 @@ msgid "" "process." msgstr "" -#: ../../library/multiprocessing.rst:1219 msgid "" "For this to work, it must be called before the forkserver process has been " "launched (before creating a :class:`Pool` or starting a :class:`Process`)." msgstr "" -#: ../../library/multiprocessing.rst:1222 msgid "" -"Only meaningful when using the ``'forkserver'`` start method. " -"See :ref:`multiprocessing-start-methods`." +"Only meaningful when using the ``'forkserver'`` start method. See :ref:" +"`multiprocessing-start-methods`." msgstr "" -#: ../../library/multiprocessing.rst:1229 msgid "" "Set the method which should be used to start child processes. The *method* " -"argument can be ``'fork'``, ``'spawn'`` or ``'forkserver'``. " -"Raises :exc:`RuntimeError` if the start method has already been set and " -"*force* is not ``True``. If *method* is ``None`` and *force* is ``True`` " -"then the start method is set to ``None``. If *method* is ``None`` and " -"*force* is ``False`` then the context is set to the default context." +"argument can be ``'fork'``, ``'spawn'`` or ``'forkserver'``. Raises :exc:" +"`RuntimeError` if the start method has already been set and *force* is not " +"``True``. If *method* is ``None`` and *force* is ``True`` then the start " +"method is set to ``None``. If *method* is ``None`` and *force* is ``False`` " +"then the context is set to the default context." msgstr "" -#: ../../library/multiprocessing.rst:1236 msgid "" "Note that this should be called at most once, and it should be protected " "inside the ``if __name__ == '__main__'`` clause of the main module." msgstr "" -#: ../../library/multiprocessing.rst:1240 msgid "See :ref:`multiprocessing-start-methods`." msgstr "" -#: ../../library/multiprocessing.rst:1246 msgid "" -":mod:`multiprocessing` contains no analogues " -"of :func:`threading.active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :func:`threading.setprofile`, :class:`threading.Timer`, " -"or :class:`threading.local`." +":mod:`multiprocessing` contains no analogues of :func:`threading." +"active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" +"func:`threading.setprofile`, :class:`threading.Timer`, or :class:`threading." +"local`." msgstr "" -#: ../../library/multiprocessing.rst:1253 msgid "Connection Objects" msgstr "" -#: ../../library/multiprocessing.rst:1257 msgid "" "Connection objects allow the sending and receiving of picklable objects or " "strings. They can be thought of as message oriented connected sockets." msgstr "" -#: ../../library/multiprocessing.rst:1260 msgid "" -"Connection objects are usually created using :func:`Pipe " -"` -- see also :ref:`multiprocessing-listeners-clients`." +"Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." msgstr "" -#: ../../library/multiprocessing.rst:1268 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." msgstr "" -#: ../../library/multiprocessing.rst:1271 msgid "" "The object must be picklable. Very large pickles (approximately 32 MiB+, " "though it depends on the OS) may raise a :exc:`ValueError` exception." msgstr "" -#: ../../library/multiprocessing.rst:1276 msgid "" -"Return an object sent from the other end of the connection " -"using :meth:`send`. Blocks until there is something to receive. " -"Raises :exc:`EOFError` if there is nothing left to receive and the other end " -"was closed." +"Return an object sent from the other end of the connection using :meth:" +"`send`. Blocks until there is something to receive. Raises :exc:`EOFError` " +"if there is nothing left to receive and the other end was closed." msgstr "" -#: ../../library/multiprocessing.rst:1283 msgid "Return the file descriptor or handle used by the connection." msgstr "" -#: ../../library/multiprocessing.rst:1287 msgid "Close the connection." msgstr "" -#: ../../library/multiprocessing.rst:1289 msgid "This is called automatically when the connection is garbage collected." msgstr "" -#: ../../library/multiprocessing.rst:1293 msgid "Return whether there is any data available to be read." msgstr "" -#: ../../library/multiprocessing.rst:1295 msgid "" "If *timeout* is not specified then it will return immediately. If *timeout* " "is a number then this specifies the maximum time in seconds to block. If " "*timeout* is ``None`` then an infinite timeout is used." msgstr "" -#: ../../library/multiprocessing.rst:1299 msgid "" -"Note that multiple connection objects may be polled at once by " -"using :func:`multiprocessing.connection.wait`." +"Note that multiple connection objects may be polled at once by using :func:" +"`multiprocessing.connection.wait`." msgstr "" -#: ../../library/multiprocessing.rst:1304 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" -#: ../../library/multiprocessing.rst:1306 msgid "" "If *offset* is given then data is read from that position in *buffer*. If " "*size* is given then that many bytes will be read from buffer. Very large " -"buffers (approximately 32 MiB+, though it depends on the OS) may raise " -"a :exc:`ValueError` exception" +"buffers (approximately 32 MiB+, though it depends on the OS) may raise a :" +"exc:`ValueError` exception" msgstr "" -#: ../../library/multiprocessing.rst:1313 msgid "" "Return a complete message of byte data sent from the other end of the " -"connection as a string. Blocks until there is something to receive. " -"Raises :exc:`EOFError` if there is nothing left to receive and the other end " -"has closed." +"connection as a string. Blocks until there is something to receive. Raises :" +"exc:`EOFError` if there is nothing left to receive and the other end has " +"closed." msgstr "" -#: ../../library/multiprocessing.rst:1318 msgid "" -"If *maxlength* is specified and the message is longer than *maxlength* " -"then :exc:`OSError` is raised and the connection will no longer be readable." +"If *maxlength* is specified and the message is longer than *maxlength* then :" +"exc:`OSError` is raised and the connection will no longer be readable." msgstr "" -#: ../../library/multiprocessing.rst:1322 msgid "" -"This function used to raise :exc:`IOError`, which is now an alias " -"of :exc:`OSError`." +"This function used to raise :exc:`IOError`, which is now an alias of :exc:" +"`OSError`." msgstr "" -#: ../../library/multiprocessing.rst:1329 msgid "" "Read into *buffer* a complete message of byte data sent from the other end " "of the connection and return the number of bytes in the message. Blocks " @@ -1802,39 +1543,32 @@ msgid "" "nothing left to receive and the other end was closed." msgstr "" -#: ../../library/multiprocessing.rst:1335 msgid "" "*buffer* must be a writable :term:`bytes-like object`. If *offset* is given " "then the message will be written into the buffer from that position. Offset " "must be a non-negative integer less than the length of *buffer* (in bytes)." msgstr "" -#: ../../library/multiprocessing.rst:1340 msgid "" "If the buffer is too short then a :exc:`BufferTooShort` exception is raised " "and the complete message is available as ``e.args[0]`` where ``e`` is the " "exception instance." msgstr "" -#: ../../library/multiprocessing.rst:1344 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." msgstr "" -#: ../../library/multiprocessing.rst:1348 msgid "" -"Connection objects also now support the context management protocol -- " -"see :ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` returns " -"the connection object, and :meth:`~contextmanager.__exit__` " -"calls :meth:`close`." +"Connection objects also now support the context management protocol -- see :" +"ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " +"connection object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" -#: ../../library/multiprocessing.rst:1352 msgid "For example:" msgstr "" -#: ../../library/multiprocessing.rst:1354 msgid "" ">>> from multiprocessing import Pipe\n" ">>> a, b = Pipe()\n" @@ -1854,117 +1588,95 @@ msgid "" "array('i', [0, 1, 2, 3, 4, 0, 0, 0, 0, 0])" msgstr "" -#: ../../library/multiprocessing.rst:1377 msgid "" "The :meth:`Connection.recv` method automatically unpickles the data it " "receives, which can be a security risk unless you can trust the process " "which sent the message." msgstr "" -#: ../../library/multiprocessing.rst:1381 msgid "" "Therefore, unless the connection object was produced using :func:`Pipe` you " "should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " -"methods after performing some sort of authentication. " -"See :ref:`multiprocessing-auth-keys`." +"methods after performing some sort of authentication. See :ref:" +"`multiprocessing-auth-keys`." msgstr "" -#: ../../library/multiprocessing.rst:1388 msgid "" "If a process is killed while it is trying to read or write to a pipe then " "the data in the pipe is likely to become corrupted, because it may become " "impossible to be sure where the message boundaries lie." msgstr "" -#: ../../library/multiprocessing.rst:1394 msgid "Synchronization primitives" msgstr "" -#: ../../library/multiprocessing.rst:1398 msgid "" "Generally synchronization primitives are not as necessary in a multiprocess " -"program as they are in a multithreaded program. See the documentation " -"for :mod:`threading` module." +"program as they are in a multithreaded program. See the documentation for :" +"mod:`threading` module." msgstr "" -#: ../../library/multiprocessing.rst:1402 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." msgstr "" -#: ../../library/multiprocessing.rst:1407 msgid "A barrier object: a clone of :class:`threading.Barrier`." msgstr "" -#: ../../library/multiprocessing.rst:1413 msgid "" -"A bounded semaphore object: a close analog " -"of :class:`threading.BoundedSemaphore`." +"A bounded semaphore object: a close analog of :class:`threading." +"BoundedSemaphore`." msgstr "" -#: ../../library/multiprocessing.rst:1416 -#: ../../library/multiprocessing.rst:1568 msgid "" "A solitary difference from its close analog exists: its ``acquire`` method's " "first argument is named *block*, as is consistent with :meth:`Lock.acquire`." msgstr "" -#: ../../library/multiprocessing.rst:1420 msgid "" "On macOS, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." msgstr "" -#: ../../library/multiprocessing.rst:1425 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" -#: ../../library/multiprocessing.rst:1427 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." msgstr "" -#: ../../library/multiprocessing.rst:1430 -#: ../../library/multiprocessing.rst:1982 msgid "The :meth:`~threading.Condition.wait_for` method was added." msgstr "" -#: ../../library/multiprocessing.rst:1435 msgid "A clone of :class:`threading.Event`." msgstr "" -#: ../../library/multiprocessing.rst:1440 msgid "" "A non-recursive lock object: a close analog of :class:`threading.Lock`. Once " "a process or thread has acquired a lock, subsequent attempts to acquire it " "from any process or thread will block until it is released; any process or " -"thread may release it. The concepts and behaviors " -"of :class:`threading.Lock` as it applies to threads are replicated here " -"in :class:`multiprocessing.Lock` as it applies to either processes or " -"threads, except as noted." +"thread may release it. The concepts and behaviors of :class:`threading." +"Lock` as it applies to threads are replicated here in :class:" +"`multiprocessing.Lock` as it applies to either processes or threads, except " +"as noted." msgstr "" -#: ../../library/multiprocessing.rst:1448 msgid "" "Note that :class:`Lock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.Lock`` initialized with a default " "context." msgstr "" -#: ../../library/multiprocessing.rst:1452 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: ../../library/multiprocessing.rst:1457 -#: ../../library/multiprocessing.rst:1515 msgid "Acquire a lock, blocking or non-blocking." msgstr "" -#: ../../library/multiprocessing.rst:1459 msgid "" "With the *block* argument set to ``True`` (the default), the method call " "will block until the lock is in an unlocked state, then set it to locked and " @@ -1972,14 +1684,12 @@ msgid "" "that in :meth:`threading.Lock.acquire`." msgstr "" -#: ../../library/multiprocessing.rst:1464 msgid "" "With the *block* argument set to ``False``, the method call does not block. " "If the lock is currently in a locked state, return ``False``; otherwise set " "the lock to a locked state and return ``True``." msgstr "" -#: ../../library/multiprocessing.rst:1468 msgid "" "When invoked with a positive, floating-point value for *timeout*, block for " "at most the number of seconds specified by *timeout* as long as the lock can " @@ -1993,24 +1703,19 @@ msgid "" "acquired or ``False`` if the timeout period has elapsed." msgstr "" -#: ../../library/multiprocessing.rst:1483 msgid "" "Release a lock. This can be called from any process or thread, not only the " "process or thread which originally acquired the lock." msgstr "" -#: ../../library/multiprocessing.rst:1486 msgid "" "Behavior is the same as in :meth:`threading.Lock.release` except that when " "invoked on an unlocked lock, a :exc:`ValueError` is raised." msgstr "" -#: ../../library/multiprocessing.rst:1492 -#: ../../library/multiprocessing.rst:1559 msgid "Return a boolean indicating whether this object is locked right now." msgstr "" -#: ../../library/multiprocessing.rst:1499 msgid "" "A recursive lock object: a close analog of :class:`threading.RLock`. A " "recursive lock must be released by the process or thread that acquired it. " @@ -2019,20 +1724,17 @@ msgid "" "release it once for each time it has been acquired." msgstr "" -#: ../../library/multiprocessing.rst:1505 msgid "" "Note that :class:`RLock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.RLock`` initialized with a default " "context." msgstr "" -#: ../../library/multiprocessing.rst:1509 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: ../../library/multiprocessing.rst:1517 msgid "" "When invoked with the *block* argument set to ``True``, block until the lock " "is in an unlocked state (not owned by any process or thread) unless the lock " @@ -2045,7 +1747,6 @@ msgid "" "itself." msgstr "" -#: ../../library/multiprocessing.rst:1527 msgid "" "When invoked with the *block* argument set to ``False``, do not block. If " "the lock has already been acquired (and thus is owned) by another process or " @@ -2056,14 +1757,12 @@ msgid "" "a return value of ``True``." msgstr "" -#: ../../library/multiprocessing.rst:1535 msgid "" -"Use and behaviors of the *timeout* argument are the same as " -"in :meth:`Lock.acquire`. Note that some of these behaviors of *timeout* " -"differ from the implemented behaviors in :meth:`threading.RLock.acquire`." +"Use and behaviors of the *timeout* argument are the same as in :meth:`Lock." +"acquire`. Note that some of these behaviors of *timeout* differ from the " +"implemented behaviors in :meth:`threading.RLock.acquire`." msgstr "" -#: ../../library/multiprocessing.rst:1542 msgid "" "Release a lock, decrementing the recursion level. If after the decrement " "the recursion level is zero, reset the lock to unlocked (not owned by any " @@ -2073,61 +1772,50 @@ msgid "" "locked and owned by the calling process or thread." msgstr "" -#: ../../library/multiprocessing.rst:1550 msgid "" -"Only call this method when the calling process or thread owns the lock. " -"An :exc:`AssertionError` is raised if this method is called by a process or " +"Only call this method when the calling process or thread owns the lock. An :" +"exc:`AssertionError` is raised if this method is called by a process or " "thread other than the owner or if the lock is in an unlocked (unowned) " "state. Note that the type of exception raised in this situation differs " "from the implemented behavior in :meth:`threading.RLock.release`." msgstr "" -#: ../../library/multiprocessing.rst:1566 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." msgstr "" -#: ../../library/multiprocessing.rst:1573 msgid "" "On macOS, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with a " "timeout will emulate that function's behavior using a sleeping loop." msgstr "" -#: ../../library/multiprocessing.rst:1578 msgid "" "Some of this package's functionality requires a functioning shared semaphore " -"implementation on the host operating system. Without one, " -"the :mod:`multiprocessing.synchronize` module will be disabled, and attempts " -"to import it will result in an :exc:`ImportError`. See :issue:`3770` for " +"implementation on the host operating system. Without one, the :mod:" +"`multiprocessing.synchronize` module will be disabled, and attempts to " +"import it will result in an :exc:`ImportError`. See :issue:`3770` for " "additional information." msgstr "" -#: ../../library/multiprocessing.rst:1586 msgid "Shared :mod:`ctypes` Objects" msgstr "" -#: ../../library/multiprocessing.rst:1588 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." msgstr "" -#: ../../library/multiprocessing.rst:1593 msgid "" "Return a :mod:`ctypes` object allocated from shared memory. By default the " "return value is actually a synchronized wrapper for the object. The object " "itself can be accessed via the *value* attribute of a :class:`Value`." msgstr "" -#: ../../library/multiprocessing.rst:1597 -#: ../../library/multiprocessing.rst:1684 msgid "" "*typecode_or_type* determines the type of the returned object: it is either " -"a ctypes type or a one character typecode of the kind used by " -"the :mod:`array` module. *\\*args* is passed on to the constructor for the " -"type." +"a ctypes type or a one character typecode of the kind used by the :mod:" +"`array` module. *\\*args* is passed on to the constructor for the type." msgstr "" -#: ../../library/multiprocessing.rst:1601 msgid "" "If *lock* is ``True`` (the default) then a new recursive lock object is " "created to synchronize access to the value. If *lock* is a :class:`Lock` " @@ -2137,42 +1825,33 @@ msgid "" "\"process-safe\"." msgstr "" -#: ../../library/multiprocessing.rst:1608 msgid "" "Operations like ``+=`` which involve a read and write are not atomic. So " "if, for instance, you want to atomically increment a shared value it is " "insufficient to just do ::" msgstr "" -#: ../../library/multiprocessing.rst:1612 msgid "counter.value += 1" msgstr "" -#: ../../library/multiprocessing.rst:1614 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" msgstr "" -#: ../../library/multiprocessing.rst:1617 msgid "" "with counter.get_lock():\n" " counter.value += 1" msgstr "" -#: ../../library/multiprocessing.rst:1620 -#: ../../library/multiprocessing.rst:1710 -#: ../../library/multiprocessing.rst:1725 msgid "Note that *lock* is a keyword-only argument." msgstr "" -#: ../../library/multiprocessing.rst:1624 msgid "" "Return a ctypes array allocated from shared memory. By default the return " "value is actually a synchronized wrapper for the array." msgstr "" -#: ../../library/multiprocessing.rst:1627 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -2182,38 +1861,32 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: ../../library/multiprocessing.rst:1634 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " -"synchronize access to the value. If *lock* is a :class:`Lock` " -"or :class:`RLock` object then that will be used to synchronize access to the " -"value. If *lock* is ``False`` then access to the returned object will not " -"be automatically protected by a lock, so it will not necessarily be " -"\"process-safe\"." +"synchronize access to the value. If *lock* is a :class:`Lock` or :class:" +"`RLock` object then that will be used to synchronize access to the value. " +"If *lock* is ``False`` then access to the returned object will not be " +"automatically protected by a lock, so it will not necessarily be \"process-" +"safe\"." msgstr "" -#: ../../library/multiprocessing.rst:1641 msgid "Note that *lock* is a keyword only argument." msgstr "" -#: ../../library/multiprocessing.rst:1643 msgid "" "Note that an array of :data:`ctypes.c_char` has *value* and *raw* attributes " "which allow one to use it to store and retrieve strings." msgstr "" -#: ../../library/multiprocessing.rst:1648 msgid "The :mod:`multiprocessing.sharedctypes` module" msgstr "" -#: ../../library/multiprocessing.rst:1653 msgid "" "The :mod:`multiprocessing.sharedctypes` module provides functions for " "allocating :mod:`ctypes` objects from shared memory which can be inherited " "by child processes." msgstr "" -#: ../../library/multiprocessing.rst:1659 msgid "" "Although it is possible to store a pointer in shared memory remember that " "this will refer to a location in the address space of a specific process. " @@ -2222,11 +1895,9 @@ msgid "" "may cause a crash." msgstr "" -#: ../../library/multiprocessing.rst:1667 msgid "Return a ctypes array allocated from shared memory." msgstr "" -#: ../../library/multiprocessing.rst:1669 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -2236,156 +1907,126 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: ../../library/multiprocessing.rst:1676 msgid "" -"Note that setting and getting an element is potentially non-atomic -- " -"use :func:`Array` instead to make sure that access is automatically " -"synchronized using a lock." +"Note that setting and getting an element is potentially non-atomic -- use :" +"func:`Array` instead to make sure that access is automatically synchronized " +"using a lock." msgstr "" -#: ../../library/multiprocessing.rst:1682 msgid "Return a ctypes object allocated from shared memory." msgstr "" -#: ../../library/multiprocessing.rst:1688 msgid "" -"Note that setting and getting the value is potentially non-atomic -- " -"use :func:`Value` instead to make sure that access is automatically " -"synchronized using a lock." +"Note that setting and getting the value is potentially non-atomic -- use :" +"func:`Value` instead to make sure that access is automatically synchronized " +"using a lock." msgstr "" -#: ../../library/multiprocessing.rst:1692 msgid "" "Note that an array of :data:`ctypes.c_char` has ``value`` and ``raw`` " "attributes which allow one to use it to store and retrieve strings -- see " "documentation for :mod:`ctypes`." msgstr "" -#: ../../library/multiprocessing.rst:1698 msgid "" "The same as :func:`RawArray` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " "array." msgstr "" -#: ../../library/multiprocessing.rst:1702 -#: ../../library/multiprocessing.rst:1718 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " -"synchronize access to the value. If *lock* is " -"a :class:`~multiprocessing.Lock` or :class:`~multiprocessing.RLock` object " -"then that will be used to synchronize access to the value. If *lock* is " -"``False`` then access to the returned object will not be automatically " -"protected by a lock, so it will not necessarily be \"process-safe\"." +"synchronize access to the value. If *lock* is a :class:`~multiprocessing." +"Lock` or :class:`~multiprocessing.RLock` object then that will be used to " +"synchronize access to the value. If *lock* is ``False`` then access to the " +"returned object will not be automatically protected by a lock, so it will " +"not necessarily be \"process-safe\"." msgstr "" -#: ../../library/multiprocessing.rst:1714 msgid "" "The same as :func:`RawValue` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " "object." msgstr "" -#: ../../library/multiprocessing.rst:1729 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." msgstr "" -#: ../../library/multiprocessing.rst:1734 msgid "" "Return a process-safe wrapper object for a ctypes object which uses *lock* " -"to synchronize access. If *lock* is ``None`` (the default) then " -"a :class:`multiprocessing.RLock` object is created automatically." +"to synchronize access. If *lock* is ``None`` (the default) then a :class:" +"`multiprocessing.RLock` object is created automatically." msgstr "" -#: ../../library/multiprocessing.rst:1738 msgid "" "A synchronized wrapper will have two methods in addition to those of the " -"object it wraps: :meth:`get_obj` returns the wrapped object " -"and :meth:`get_lock` returns the lock object used for synchronization." +"object it wraps: :meth:`get_obj` returns the wrapped object and :meth:" +"`get_lock` returns the lock object used for synchronization." msgstr "" -#: ../../library/multiprocessing.rst:1742 msgid "" "Note that accessing the ctypes object through the wrapper can be a lot " "slower than accessing the raw ctypes object." msgstr "" -#: ../../library/multiprocessing.rst:1745 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" -#: ../../library/multiprocessing.rst:1749 msgid "" "The table below compares the syntax for creating shared ctypes objects from " "shared memory with the normal ctypes syntax. (In the table ``MyStruct`` is " "some subclass of :class:`ctypes.Structure`.)" msgstr "" -#: ../../library/multiprocessing.rst:1754 msgid "ctypes" msgstr "" -#: ../../library/multiprocessing.rst:1754 msgid "sharedctypes using type" msgstr "" -#: ../../library/multiprocessing.rst:1754 msgid "sharedctypes using typecode" msgstr "" -#: ../../library/multiprocessing.rst:1756 msgid "c_double(2.4)" msgstr "" -#: ../../library/multiprocessing.rst:1756 msgid "RawValue(c_double, 2.4)" msgstr "" -#: ../../library/multiprocessing.rst:1756 msgid "RawValue('d', 2.4)" msgstr "" -#: ../../library/multiprocessing.rst:1757 msgid "MyStruct(4, 6)" msgstr "" -#: ../../library/multiprocessing.rst:1757 msgid "RawValue(MyStruct, 4, 6)" msgstr "" -#: ../../library/multiprocessing.rst:1758 msgid "(c_short * 7)()" msgstr "" -#: ../../library/multiprocessing.rst:1758 msgid "RawArray(c_short, 7)" msgstr "" -#: ../../library/multiprocessing.rst:1758 msgid "RawArray('h', 7)" msgstr "" -#: ../../library/multiprocessing.rst:1759 msgid "(c_int * 3)(9, 2, 8)" msgstr "" -#: ../../library/multiprocessing.rst:1759 msgid "RawArray(c_int, (9, 2, 8))" msgstr "" -#: ../../library/multiprocessing.rst:1759 msgid "RawArray('i', (9, 2, 8))" msgstr "" -#: ../../library/multiprocessing.rst:1763 msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" msgstr "" -#: ../../library/multiprocessing.rst:1766 msgid "" "from multiprocessing import Process, Lock\n" "from multiprocessing.sharedctypes import Value, Array\n" @@ -2420,11 +2061,9 @@ msgid "" " print([(a.x, a.y) for a in A])" msgstr "" -#: ../../library/multiprocessing.rst:1801 msgid "The results printed are ::" msgstr "" -#: ../../library/multiprocessing.rst:1803 msgid "" "49\n" "0.1111111111111111\n" @@ -2432,11 +2071,9 @@ msgid "" "[(3.515625, 39.0625), (33.0625, 4.0), (5.640625, 90.25)]" msgstr "" -#: ../../library/multiprocessing.rst:1814 msgid "Managers" msgstr "" -#: ../../library/multiprocessing.rst:1816 msgid "" "Managers provide a way to create data which can be shared between different " "processes, including sharing over a network between processes running on " @@ -2445,7 +2082,6 @@ msgid "" "proxies." msgstr "" -#: ../../library/multiprocessing.rst:1825 msgid "" "Returns a started :class:`~multiprocessing.managers.SyncManager` object " "which can be used for sharing objects between processes. The returned " @@ -2453,31 +2089,26 @@ msgid "" "will create shared objects and return corresponding proxies." msgstr "" -#: ../../library/multiprocessing.rst:1833 msgid "" "Manager processes will be shutdown as soon as they are garbage collected or " -"their parent process exits. The manager classes are defined in " -"the :mod:`multiprocessing.managers` module:" +"their parent process exits. The manager classes are defined in the :mod:" +"`multiprocessing.managers` module:" msgstr "" -#: ../../library/multiprocessing.rst:1839 msgid "Create a BaseManager object." msgstr "" -#: ../../library/multiprocessing.rst:1841 msgid "" -"Once created one should call :meth:`start` or " -"``get_server().serve_forever()`` to ensure that the manager object refers to " -"a started manager process." +"Once created one should call :meth:`start` or ``get_server()." +"serve_forever()`` to ensure that the manager object refers to a started " +"manager process." msgstr "" -#: ../../library/multiprocessing.rst:1844 msgid "" "*address* is the address on which the manager process listens for new " "connections. If *address* is ``None`` then an arbitrary one is chosen." msgstr "" -#: ../../library/multiprocessing.rst:1847 msgid "" "*authkey* is the authentication key which will be used to check the validity " "of incoming connections to the server process. If *authkey* is ``None`` " @@ -2485,19 +2116,16 @@ msgid "" "it must be a byte string." msgstr "" -#: ../../library/multiprocessing.rst:1852 msgid "" "*serializer* must be ``'pickle'`` (use :mod:`pickle` serialization) or " "``'xmlrpclib'`` (use :mod:`xmlrpc.client` serialization)." msgstr "" -#: ../../library/multiprocessing.rst:1855 msgid "" -"*ctx* is a context object, or ``None`` (use the current context). See " -"the :func:`get_context` function." +"*ctx* is a context object, or ``None`` (use the current context). See the :" +"func:`get_context` function." msgstr "" -#: ../../library/multiprocessing.rst:1858 msgid "" "*shutdown_timeout* is a timeout in seconds used to wait until the process " "used by the manager completes in the :meth:`shutdown` method. If the " @@ -2505,24 +2133,20 @@ msgid "" "also times out, the process is killed." msgstr "" -#: ../../library/multiprocessing.rst:1863 msgid "Added the *shutdown_timeout* parameter." msgstr "" -#: ../../library/multiprocessing.rst:1868 msgid "" "Start a subprocess to start the manager. If *initializer* is not ``None`` " "then the subprocess will call ``initializer(*initargs)`` when it starts." msgstr "" -#: ../../library/multiprocessing.rst:1873 msgid "" "Returns a :class:`Server` object which represents the actual server under " -"the control of the Manager. The :class:`Server` object supports " -"the :meth:`serve_forever` method::" +"the control of the Manager. The :class:`Server` object supports the :meth:" +"`serve_forever` method::" msgstr "" -#: ../../library/multiprocessing.rst:1877 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> manager = BaseManager(address=('', 50000), authkey=b'abc')\n" @@ -2530,44 +2154,36 @@ msgid "" ">>> server.serve_forever()" msgstr "" -#: ../../library/multiprocessing.rst:1882 msgid ":class:`Server` additionally has an :attr:`address` attribute." msgstr "" -#: ../../library/multiprocessing.rst:1886 msgid "Connect a local manager object to a remote manager process::" msgstr "" -#: ../../library/multiprocessing.rst:1888 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> m = BaseManager(address=('127.0.0.1', 50000), authkey=b'abc')\n" ">>> m.connect()" msgstr "" -#: ../../library/multiprocessing.rst:1894 msgid "" -"Stop the process used by the manager. This is only available " -"if :meth:`start` has been used to start the server process." +"Stop the process used by the manager. This is only available if :meth:" +"`start` has been used to start the server process." msgstr "" -#: ../../library/multiprocessing.rst:1897 msgid "This can be called multiple times." msgstr "" -#: ../../library/multiprocessing.rst:1901 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." msgstr "" -#: ../../library/multiprocessing.rst:1904 msgid "" "*typeid* is a \"type identifier\" which is used to identify a particular " "type of shared object. This must be a string." msgstr "" -#: ../../library/multiprocessing.rst:1907 msgid "" "*callable* is a callable used for creating objects for this type " "identifier. If a manager instance will be connected to the server using " @@ -2575,181 +2191,149 @@ msgid "" "then this can be left as ``None``." msgstr "" -#: ../../library/multiprocessing.rst:1913 msgid "" "*proxytype* is a subclass of :class:`BaseProxy` which is used to create " "proxies for shared objects with this *typeid*. If ``None`` then a proxy " "class is created automatically." msgstr "" -#: ../../library/multiprocessing.rst:1917 msgid "" "*exposed* is used to specify a sequence of method names which proxies for " -"this typeid should be allowed to access " -"using :meth:`BaseProxy._callmethod`. (If *exposed* is ``None`` " -"then :attr:`proxytype._exposed_` is used instead if it exists.) In the case " -"where no exposed list is specified, all \"public methods\" of the shared " -"object will be accessible. (Here a \"public method\" means any attribute " -"which has a :meth:`~object.__call__` method and whose name does not begin " -"with ``'_'``.)" +"this typeid should be allowed to access using :meth:`BaseProxy." +"_callmethod`. (If *exposed* is ``None`` then :attr:`proxytype._exposed_` is " +"used instead if it exists.) In the case where no exposed list is specified, " +"all \"public methods\" of the shared object will be accessible. (Here a " +"\"public method\" means any attribute which has a :meth:`~object.__call__` " +"method and whose name does not begin with ``'_'``.)" msgstr "" -#: ../../library/multiprocessing.rst:1926 msgid "" "*method_to_typeid* is a mapping used to specify the return type of those " "exposed methods which should return a proxy. It maps method names to typeid " -"strings. (If *method_to_typeid* is ``None`` " -"then :attr:`proxytype._method_to_typeid_` is used instead if it exists.) If " -"a method's name is not a key of this mapping or if the mapping is ``None`` " -"then the object returned by the method will be copied by value." +"strings. (If *method_to_typeid* is ``None`` then :attr:`proxytype." +"_method_to_typeid_` is used instead if it exists.) If a method's name is " +"not a key of this mapping or if the mapping is ``None`` then the object " +"returned by the method will be copied by value." msgstr "" -#: ../../library/multiprocessing.rst:1933 msgid "" "*create_method* determines whether a method should be created with name " "*typeid* which can be used to tell the server process to create a new shared " "object and return a proxy for it. By default it is ``True``." msgstr "" -#: ../../library/multiprocessing.rst:1937 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" -#: ../../library/multiprocessing.rst:1941 msgid "The address used by the manager." msgstr "" -#: ../../library/multiprocessing.rst:1943 msgid "" -"Manager objects support the context management protocol -- " -"see :ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the " -"server process (if it has not already started) and then returns the manager " +"Manager objects support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " +"process (if it has not already started) and then returns the manager " "object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." msgstr "" -#: ../../library/multiprocessing.rst:1949 msgid "" "In previous versions :meth:`~contextmanager.__enter__` did not start the " "manager's server process if it was not already started." msgstr "" -#: ../../library/multiprocessing.rst:1954 msgid "" "A subclass of :class:`BaseManager` which can be used for the synchronization " -"of processes. Objects of this type are returned " -"by :func:`multiprocessing.Manager`." +"of processes. Objects of this type are returned by :func:`multiprocessing." +"Manager`." msgstr "" -#: ../../library/multiprocessing.rst:1958 msgid "" "Its methods create and return :ref:`multiprocessing-proxy_objects` for a " "number of commonly used data types to be synchronized across processes. This " "notably includes shared lists and dictionaries." msgstr "" -#: ../../library/multiprocessing.rst:1964 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:1971 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:1976 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." msgstr "" -#: ../../library/multiprocessing.rst:1979 msgid "" -"If *lock* is supplied then it should be a proxy for " -"a :class:`threading.Lock` or :class:`threading.RLock` object." +"If *lock* is supplied then it should be a proxy for a :class:`threading." +"Lock` or :class:`threading.RLock` object." msgstr "" -#: ../../library/multiprocessing.rst:1987 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:1991 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:1995 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:1999 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2003 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2007 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." msgstr "" -#: ../../library/multiprocessing.rst:2012 msgid "Create an array and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2016 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." msgstr "" -#: ../../library/multiprocessing.rst:2023 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2028 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2034 msgid "Create a shared :class:`set` object and return a proxy for it." msgstr "" -#: ../../library/multiprocessing.rst:2036 msgid ":class:`set` support was added." msgstr "" -#: ../../library/multiprocessing.rst:2039 msgid "" "Shared objects are capable of being nested. For example, a shared container " "object such as a shared list can contain other shared objects which will all " "be managed and synchronized by the :class:`SyncManager`." msgstr "" -#: ../../library/multiprocessing.rst:2046 msgid "A type that can register with :class:`SyncManager`." msgstr "" -#: ../../library/multiprocessing.rst:2048 msgid "" "A namespace object has no public methods, but does have writable attributes. " "Its representation shows the values of its attributes." msgstr "" -#: ../../library/multiprocessing.rst:2051 msgid "" "However, when using a proxy for a namespace object, an attribute beginning " "with ``'_'`` will be an attribute of the proxy and not an attribute of the " "referent:" msgstr "" -#: ../../library/multiprocessing.rst:2055 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2761,18 +2345,15 @@ msgid "" "Namespace(x=10, y='hello')" msgstr "" -#: ../../library/multiprocessing.rst:2068 msgid "Customized managers" msgstr "" -#: ../../library/multiprocessing.rst:2070 msgid "" "To create one's own manager, one creates a subclass of :class:`BaseManager` " "and uses the :meth:`~BaseManager.register` classmethod to register new types " "or callables with the manager class. For example::" msgstr "" -#: ../../library/multiprocessing.rst:2074 msgid "" "from multiprocessing.managers import BaseManager\n" "\n" @@ -2794,23 +2375,19 @@ msgid "" " print(maths.mul(7, 8)) # prints 56" msgstr "" -#: ../../library/multiprocessing.rst:2095 msgid "Using a remote manager" msgstr "" -#: ../../library/multiprocessing.rst:2097 msgid "" "It is possible to run a manager server on one machine and have clients use " "it from other machines (assuming that the firewalls involved allow it)." msgstr "" -#: ../../library/multiprocessing.rst:2100 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" msgstr "" -#: ../../library/multiprocessing.rst:2103 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> from queue import Queue\n" @@ -2822,11 +2399,9 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: ../../library/multiprocessing.rst:2112 msgid "One client can access the server as follows::" msgstr "" -#: ../../library/multiprocessing.rst:2114 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2838,11 +2413,9 @@ msgid "" ">>> queue.put('hello')" msgstr "" -#: ../../library/multiprocessing.rst:2122 msgid "Another client can also use it::" msgstr "" -#: ../../library/multiprocessing.rst:2124 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2855,13 +2428,11 @@ msgid "" "'hello'" msgstr "" -#: ../../library/multiprocessing.rst:2133 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" msgstr "" -#: ../../library/multiprocessing.rst:2136 msgid "" ">>> from multiprocessing import Process, Queue\n" ">>> from multiprocessing.managers import BaseManager\n" @@ -2883,18 +2454,15 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: ../../library/multiprocessing.rst:2158 msgid "Proxy Objects" msgstr "" -#: ../../library/multiprocessing.rst:2160 msgid "" "A proxy is an object which *refers* to a shared object which lives " "(presumably) in a different process. The shared object is said to be the " "*referent* of the proxy. Multiple proxy objects may have the same referent." msgstr "" -#: ../../library/multiprocessing.rst:2164 msgid "" "A proxy object has methods which invoke corresponding methods of its " "referent (although not every method of the referent will necessarily be " @@ -2902,7 +2470,6 @@ msgid "" "its referent can:" msgstr "" -#: ../../library/multiprocessing.rst:2168 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2917,22 +2484,19 @@ msgid "" "[4, 9, 16]" msgstr "" -#: ../../library/multiprocessing.rst:2182 msgid "" "Notice that applying :func:`str` to a proxy will return the representation " "of the referent, whereas applying :func:`repr` will return the " "representation of the proxy." msgstr "" -#: ../../library/multiprocessing.rst:2186 msgid "" "An important feature of proxy objects is that they are picklable so they can " -"be passed between processes. As such, a referent can " -"contain :ref:`multiprocessing-proxy_objects`. This permits nesting of these " -"managed lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" +"be passed between processes. As such, a referent can contain :ref:" +"`multiprocessing-proxy_objects`. This permits nesting of these managed " +"lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" msgstr "" -#: ../../library/multiprocessing.rst:2191 msgid "" ">>> a = manager.list()\n" ">>> b = manager.list()\n" @@ -2944,11 +2508,9 @@ msgid "" "['hello'] ['hello']" msgstr "" -#: ../../library/multiprocessing.rst:2202 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" -#: ../../library/multiprocessing.rst:2204 msgid "" ">>> l_outer = manager.list([ manager.dict() for i in range(2) ])\n" ">>> d_first_inner = l_outer[0]\n" @@ -2962,7 +2524,6 @@ msgid "" "{'c': 3, 'z': 26}" msgstr "" -#: ../../library/multiprocessing.rst:2215 msgid "" "If standard (non-proxy) :class:`list` or :class:`dict` objects are contained " "in a referent, modifications to those mutable values will not be propagated " @@ -2973,7 +2534,6 @@ msgid "" "assign the modified value to the container proxy::" msgstr "" -#: ../../library/multiprocessing.rst:2223 msgid "" "# create a list proxy and append a mutable object (a dictionary)\n" "lproxy = manager.list()\n" @@ -2987,85 +2547,69 @@ msgid "" "lproxy[0] = d" msgstr "" -#: ../../library/multiprocessing.rst:2234 msgid "" -"This approach is perhaps less convenient than employing " -"nested :ref:`multiprocessing-proxy_objects` for most use cases but also " -"demonstrates a level of control over the synchronization." +"This approach is perhaps less convenient than employing nested :ref:" +"`multiprocessing-proxy_objects` for most use cases but also demonstrates a " +"level of control over the synchronization." msgstr "" -#: ../../library/multiprocessing.rst:2240 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" msgstr "" -#: ../../library/multiprocessing.rst:2243 msgid "" ">>> manager.list([1,2,3]) == [1,2,3]\n" "False" msgstr "" -#: ../../library/multiprocessing.rst:2248 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" -#: ../../library/multiprocessing.rst:2252 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "" -#: ../../library/multiprocessing.rst:2256 msgid "Call and return the result of a method of the proxy's referent." msgstr "" -#: ../../library/multiprocessing.rst:2258 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" -#: ../../library/multiprocessing.rst:2260 msgid "proxy._callmethod(methodname, args, kwds)" msgstr "" -#: ../../library/multiprocessing.rst:2262 msgid "will evaluate the expression ::" msgstr "" -#: ../../library/multiprocessing.rst:2264 msgid "getattr(obj, methodname)(*args, **kwds)" msgstr "" -#: ../../library/multiprocessing.rst:2266 msgid "in the manager's process." msgstr "" -#: ../../library/multiprocessing.rst:2268 msgid "" "The returned value will be a copy of the result of the call or a proxy to a " "new shared object -- see documentation for the *method_to_typeid* argument " "of :meth:`BaseManager.register`." msgstr "" -#: ../../library/multiprocessing.rst:2272 msgid "" -"If an exception is raised by the call, then is re-raised " -"by :meth:`_callmethod`. If some other exception is raised in the manager's " -"process then this is converted into a :exc:`RemoteError` exception and is " -"raised by :meth:`_callmethod`." +"If an exception is raised by the call, then is re-raised by :meth:" +"`_callmethod`. If some other exception is raised in the manager's process " +"then this is converted into a :exc:`RemoteError` exception and is raised by :" +"meth:`_callmethod`." msgstr "" -#: ../../library/multiprocessing.rst:2277 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." msgstr "" -#: ../../library/multiprocessing.rst:2280 msgid "An example of the usage of :meth:`_callmethod`:" msgstr "" -#: ../../library/multiprocessing.rst:2282 msgid "" ">>> l = manager.list(range(10))\n" ">>> l._callmethod('__len__')\n" @@ -3078,69 +2622,55 @@ msgid "" "IndexError: list index out of range" msgstr "" -#: ../../library/multiprocessing.rst:2296 msgid "Return a copy of the referent." msgstr "" -#: ../../library/multiprocessing.rst:2298 msgid "If the referent is unpicklable then this will raise an exception." msgstr "" -#: ../../library/multiprocessing.rst:2302 msgid "Return a representation of the proxy object." msgstr "" -#: ../../library/multiprocessing.rst:2306 msgid "Return the representation of the referent." msgstr "" -#: ../../library/multiprocessing.rst:2310 msgid "Cleanup" msgstr "" -#: ../../library/multiprocessing.rst:2312 msgid "" "A proxy object uses a weakref callback so that when it gets garbage " "collected it deregisters itself from the manager which owns its referent." msgstr "" -#: ../../library/multiprocessing.rst:2315 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." msgstr "" -#: ../../library/multiprocessing.rst:2320 msgid "Process Pools" msgstr "" -#: ../../library/multiprocessing.rst:2325 msgid "" "One can create a pool of processes which will carry out tasks submitted to " "it with the :class:`Pool` class." msgstr "" -#: ../../library/multiprocessing.rst:2330 msgid "" "A process pool object which controls a pool of worker processes to which " "jobs can be submitted. It supports asynchronous results with timeouts and " "callbacks and has a parallel map implementation." msgstr "" -#: ../../library/multiprocessing.rst:2334 msgid "" "*processes* is the number of worker processes to use. If *processes* is " "``None`` then the number returned by :func:`os.process_cpu_count` is used." msgstr "" -#: ../../library/multiprocessing.rst:2337 -#: ../../library/multiprocessing.rst:2901 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." msgstr "" -#: ../../library/multiprocessing.rst:2340 msgid "" "*maxtasksperchild* is the number of tasks a worker process can complete " "before it will exit and be replaced with a fresh worker process, to enable " @@ -3148,21 +2678,18 @@ msgid "" "which means worker processes will live as long as the pool." msgstr "" -#: ../../library/multiprocessing.rst:2345 msgid "" "*context* can be used to specify the context used for starting the worker " -"processes. Usually a pool is created using the " -"function :func:`multiprocessing.Pool` or the :meth:`Pool` method of a " -"context object. In both cases *context* is set appropriately." +"processes. Usually a pool is created using the function :func:" +"`multiprocessing.Pool` or the :meth:`Pool` method of a context object. In " +"both cases *context* is set appropriately." msgstr "" -#: ../../library/multiprocessing.rst:2351 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." msgstr "" -#: ../../library/multiprocessing.rst:2355 msgid "" ":class:`multiprocessing.pool` objects have internal resources that need to " "be properly managed (like any other resource) by using the pool as a context " @@ -3170,28 +2697,23 @@ msgid "" "to do this can lead to the process hanging on finalization." msgstr "" -#: ../../library/multiprocessing.rst:2360 msgid "" "Note that it is **not correct** to rely on the garbage collector to destroy " "the pool as CPython does not assure that the finalizer of the pool will be " "called (see :meth:`object.__del__` for more information)." msgstr "" -#: ../../library/multiprocessing.rst:2364 msgid "Added the *maxtasksperchild* parameter." msgstr "" -#: ../../library/multiprocessing.rst:2367 msgid "Added the *context* parameter." msgstr "" -#: ../../library/multiprocessing.rst:2370 msgid "" -"*processes* uses :func:`os.process_cpu_count` by default, instead " -"of :func:`os.cpu_count`." +"*processes* uses :func:`os.process_cpu_count` by default, instead of :func:" +"`os.cpu_count`." msgstr "" -#: ../../library/multiprocessing.rst:2376 msgid "" "Worker processes within a :class:`Pool` typically live for the complete " "duration of the Pool's work queue. A frequent pattern found in other systems " @@ -3202,7 +2724,6 @@ msgid "" "ability to the end user." msgstr "" -#: ../../library/multiprocessing.rst:2386 msgid "" "Call *func* with arguments *args* and keyword arguments *kwds*. It blocks " "until the result is ready. Given this blocks, :meth:`apply_async` is better " @@ -3210,14 +2731,11 @@ msgid "" "executed in one of the workers of the pool." msgstr "" -#: ../../library/multiprocessing.rst:2393 msgid "" -"A variant of the :meth:`apply` method which returns " -"a :class:`~multiprocessing.pool.AsyncResult` object." +"A variant of the :meth:`apply` method which returns a :class:" +"`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: ../../library/multiprocessing.rst:2396 -#: ../../library/multiprocessing.rst:2427 msgid "" "If *callback* is specified then it should be a callable which accepts a " "single argument. When the result becomes ready *callback* is applied to it, " @@ -3225,60 +2743,49 @@ msgid "" "applied instead." msgstr "" -#: ../../library/multiprocessing.rst:2401 -#: ../../library/multiprocessing.rst:2432 msgid "" "If *error_callback* is specified then it should be a callable which accepts " "a single argument. If the target function fails, then the *error_callback* " "is called with the exception instance." msgstr "" -#: ../../library/multiprocessing.rst:2405 -#: ../../library/multiprocessing.rst:2436 msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." msgstr "" -#: ../../library/multiprocessing.rst:2410 msgid "" "A parallel equivalent of the :func:`map` built-in function (it supports only " "one *iterable* argument though, for multiple iterables see :meth:`starmap`). " "It blocks until the result is ready." msgstr "" -#: ../../library/multiprocessing.rst:2414 msgid "" "This method chops the iterable into a number of chunks which it submits to " "the process pool as separate tasks. The (approximate) size of these chunks " "can be specified by setting *chunksize* to a positive integer." msgstr "" -#: ../../library/multiprocessing.rst:2418 msgid "" "Note that it may cause high memory usage for very long iterables. Consider " "using :meth:`imap` or :meth:`imap_unordered` with explicit *chunksize* " "option for better efficiency." msgstr "" -#: ../../library/multiprocessing.rst:2424 msgid "" -"A variant of the :meth:`.map` method which returns " -"a :class:`~multiprocessing.pool.AsyncResult` object." +"A variant of the :meth:`.map` method which returns a :class:" +"`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: ../../library/multiprocessing.rst:2441 msgid "A lazier version of :meth:`.map`." msgstr "" -#: ../../library/multiprocessing.rst:2443 msgid "" "The *chunksize* argument is the same as the one used by the :meth:`.map` " "method. For very long iterables using a large value for *chunksize* can " "make the job complete **much** faster than using the default value of ``1``." msgstr "" -#: ../../library/multiprocessing.rst:2448 msgid "" "Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator " "returned by the :meth:`imap` method has an optional *timeout* parameter: " @@ -3286,98 +2793,81 @@ msgid "" "result cannot be returned within *timeout* seconds." msgstr "" -#: ../../library/multiprocessing.rst:2455 msgid "" "The same as :meth:`imap` except that the ordering of the results from the " "returned iterator should be considered arbitrary. (Only when there is only " "one worker process is the order guaranteed to be \"correct\".)" msgstr "" -#: ../../library/multiprocessing.rst:2461 msgid "" "Like :meth:`~multiprocessing.pool.Pool.map` except that the elements of the " "*iterable* are expected to be iterables that are unpacked as arguments." msgstr "" -#: ../../library/multiprocessing.rst:2465 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." msgstr "" -#: ../../library/multiprocessing.rst:2472 msgid "" "A combination of :meth:`starmap` and :meth:`map_async` that iterates over " "*iterable* of iterables and calls *func* with the iterables unpacked. " "Returns a result object." msgstr "" -#: ../../library/multiprocessing.rst:2480 msgid "" "Prevents any more tasks from being submitted to the pool. Once all the " "tasks have been completed the worker processes will exit." msgstr "" -#: ../../library/multiprocessing.rst:2485 msgid "" "Stops the worker processes immediately without completing outstanding work. " "When the pool object is garbage collected :meth:`terminate` will be called " "immediately." msgstr "" -#: ../../library/multiprocessing.rst:2491 msgid "" -"Wait for the worker processes to exit. One must call :meth:`close` " -"or :meth:`terminate` before using :meth:`join`." +"Wait for the worker processes to exit. One must call :meth:`close` or :meth:" +"`terminate` before using :meth:`join`." msgstr "" -#: ../../library/multiprocessing.rst:2494 msgid "" -"Pool objects now support the context management protocol -- " -"see :ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` returns " -"the pool object, and :meth:`~contextmanager.__exit__` " -"calls :meth:`terminate`." +"Pool objects now support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the pool " +"object, and :meth:`~contextmanager.__exit__` calls :meth:`terminate`." msgstr "" -#: ../../library/multiprocessing.rst:2502 msgid "" -"The class of the result returned by :meth:`Pool.apply_async` " -"and :meth:`Pool.map_async`." +"The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." +"map_async`." msgstr "" -#: ../../library/multiprocessing.rst:2507 msgid "" "Return the result when it arrives. If *timeout* is not ``None`` and the " -"result does not arrive within *timeout* seconds " -"then :exc:`multiprocessing.TimeoutError` is raised. If the remote call " -"raised an exception then that exception will be reraised by :meth:`get`." +"result does not arrive within *timeout* seconds then :exc:`multiprocessing." +"TimeoutError` is raised. If the remote call raised an exception then that " +"exception will be reraised by :meth:`get`." msgstr "" -#: ../../library/multiprocessing.rst:2514 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" -#: ../../library/multiprocessing.rst:2518 msgid "Return whether the call has completed." msgstr "" -#: ../../library/multiprocessing.rst:2522 msgid "" -"Return whether the call completed without raising an exception. Will " -"raise :exc:`ValueError` if the result is not ready." +"Return whether the call completed without raising an exception. Will raise :" +"exc:`ValueError` if the result is not ready." msgstr "" -#: ../../library/multiprocessing.rst:2525 msgid "" -"If the result is not ready, :exc:`ValueError` is raised instead " -"of :exc:`AssertionError`." +"If the result is not ready, :exc:`ValueError` is raised instead of :exc:" +"`AssertionError`." msgstr "" -#: ../../library/multiprocessing.rst:2529 msgid "The following example demonstrates the use of a pool::" msgstr "" -#: ../../library/multiprocessing.rst:2531 msgid "" "from multiprocessing import Pool\n" "import time\n" @@ -3401,21 +2891,18 @@ msgid "" "computer is *very* slow\n" "\n" " result = pool.apply_async(time.sleep, (10,))\n" -" print(result.get(timeout=1)) # raises " -"multiprocessing.TimeoutError" +" print(result.get(timeout=1)) # raises multiprocessing." +"TimeoutError" msgstr "" -#: ../../library/multiprocessing.rst:2556 msgid "Listeners and Clients" msgstr "" -#: ../../library/multiprocessing.rst:2561 msgid "" -"Usually message passing between processes is done using queues or by " -"using :class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." +"Usually message passing between processes is done using queues or by using :" +"class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." msgstr "" -#: ../../library/multiprocessing.rst:2565 msgid "" "However, the :mod:`multiprocessing.connection` module allows some extra " "flexibility. It basically gives a high level message oriented API for " @@ -3424,74 +2911,62 @@ msgid "" "multiple connections at the same time." msgstr "" -#: ../../library/multiprocessing.rst:2574 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." msgstr "" -#: ../../library/multiprocessing.rst:2577 msgid "" "If the reply matches the digest of the message using *authkey* as the key " "then a welcome message is sent to the other end of the connection. " "Otherwise :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" -#: ../../library/multiprocessing.rst:2583 msgid "" "Receive a message, calculate the digest of the message using *authkey* as " "the key, and then send the digest back." msgstr "" -#: ../../library/multiprocessing.rst:2586 msgid "" -"If a welcome message is not received, " -"then :exc:`~multiprocessing.AuthenticationError` is raised." +"If a welcome message is not received, then :exc:`~multiprocessing." +"AuthenticationError` is raised." msgstr "" -#: ../../library/multiprocessing.rst:2591 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." msgstr "" -#: ../../library/multiprocessing.rst:2594 msgid "" "The type of the connection is determined by *family* argument, but this can " "generally be omitted since it can usually be inferred from the format of " "*address*. (See :ref:`multiprocessing-address-formats`)" msgstr "" -#: ../../library/multiprocessing.rst:2598 -#: ../../library/multiprocessing.rst:2633 msgid "" "If *authkey* is given and not ``None``, it should be a byte string and will " "be used as the secret key for an HMAC-based authentication challenge. No " -"authentication is done if *authkey* is " -"``None``. :exc:`~multiprocessing.AuthenticationError` is raised if " -"authentication fails. See :ref:`multiprocessing-auth-keys`." +"authentication is done if *authkey* is ``None``. :exc:`~multiprocessing." +"AuthenticationError` is raised if authentication fails. See :ref:" +"`multiprocessing-auth-keys`." msgstr "" -#: ../../library/multiprocessing.rst:2606 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" -#: ../../library/multiprocessing.rst:2609 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" -#: ../../library/multiprocessing.rst:2614 msgid "" "If an address of '0.0.0.0' is used, the address will not be a connectable " "end point on Windows. If you require a connectable end-point, you should use " "'127.0.0.1'." msgstr "" -#: ../../library/multiprocessing.rst:2618 msgid "" "*family* is the type of socket (or named pipe) to use. This can be one of " "the strings ``'AF_INET'`` (for a TCP socket), ``'AF_UNIX'`` (for a Unix " @@ -3505,50 +2980,41 @@ msgid "" "using :func:`tempfile.mkstemp`." msgstr "" -#: ../../library/multiprocessing.rst:2629 msgid "" "If the listener object uses a socket then *backlog* (1 by default) is passed " "to the :meth:`~socket.socket.listen` method of the socket once it has been " "bound." msgstr "" -#: ../../library/multiprocessing.rst:2641 msgid "" "Accept a connection on the bound socket or named pipe of the listener object " "and return a :class:`~Connection` object. If authentication is attempted and " "fails, then :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" -#: ../../library/multiprocessing.rst:2648 msgid "" "Close the bound socket or named pipe of the listener object. This is called " "automatically when the listener is garbage collected. However it is " "advisable to call it explicitly." msgstr "" -#: ../../library/multiprocessing.rst:2652 msgid "Listener objects have the following read-only properties:" msgstr "" -#: ../../library/multiprocessing.rst:2656 msgid "The address which is being used by the Listener object." msgstr "" -#: ../../library/multiprocessing.rst:2660 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." msgstr "" -#: ../../library/multiprocessing.rst:2663 msgid "" -"Listener objects now support the context management protocol -- " -"see :ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` returns " -"the listener object, and :meth:`~contextmanager.__exit__` " -"calls :meth:`close`." +"Listener objects now support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " +"listener object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" -#: ../../library/multiprocessing.rst:2670 msgid "" "Wait till an object in *object_list* is ready. Returns the list of those " "objects in *object_list* which are ready. If *timeout* is a float then the " @@ -3557,62 +3023,51 @@ msgid "" "zero timeout." msgstr "" -#: ../../library/multiprocessing.rst:2676 msgid "" "For both POSIX and Windows, an object can appear in *object_list* if it is" msgstr "" -#: ../../library/multiprocessing.rst:2679 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "" -#: ../../library/multiprocessing.rst:2680 msgid "a connected and readable :class:`socket.socket` object; or" msgstr "" -#: ../../library/multiprocessing.rst:2681 msgid "" -"the :attr:`~multiprocessing.Process.sentinel` attribute of " -"a :class:`~multiprocessing.Process` object." +"the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" +"`~multiprocessing.Process` object." msgstr "" -#: ../../library/multiprocessing.rst:2684 msgid "" "A connection or socket object is ready when there is data available to be " "read from it, or the other end has been closed." msgstr "" -#: ../../library/multiprocessing.rst:2687 msgid "" -"**POSIX**: ``wait(object_list, timeout)`` almost equivalent " -"``select.select(object_list, [], [], timeout)``. The difference is that, " -"if :func:`select.select` is interrupted by a signal, it can " -"raise :exc:`OSError` with an error number of ``EINTR``, whereas :func:`wait` " -"will not." +"**POSIX**: ``wait(object_list, timeout)`` almost equivalent ``select." +"select(object_list, [], [], timeout)``. The difference is that, if :func:" +"`select.select` is interrupted by a signal, it can raise :exc:`OSError` with " +"an error number of ``EINTR``, whereas :func:`wait` will not." msgstr "" -#: ../../library/multiprocessing.rst:2693 msgid "" "**Windows**: An item in *object_list* must either be an integer handle which " "is waitable (according to the definition used by the documentation of the " -"Win32 function ``WaitForMultipleObjects()``) or it can be an object with " -"a :meth:`~io.IOBase.fileno` method which returns a socket handle or pipe " +"Win32 function ``WaitForMultipleObjects()``) or it can be an object with a :" +"meth:`~io.IOBase.fileno` method which returns a socket handle or pipe " "handle. (Note that pipe handles and socket handles are **not** waitable " "handles.)" msgstr "" -#: ../../library/multiprocessing.rst:2703 msgid "**Examples**" msgstr "" -#: ../../library/multiprocessing.rst:2705 msgid "" "The following server code creates a listener which uses ``'secret " "password'`` as an authentication key. It then waits for a connection and " "sends some data to the client::" msgstr "" -#: ../../library/multiprocessing.rst:2709 msgid "" "from multiprocessing.connection import Listener\n" "from array import array\n" @@ -3630,13 +3085,11 @@ msgid "" " conn.send_bytes(array('i', [42, 1729]))" msgstr "" -#: ../../library/multiprocessing.rst:2724 msgid "" "The following code connects to the server and receives some data from the " "server::" msgstr "" -#: ../../library/multiprocessing.rst:2727 msgid "" "from multiprocessing.connection import Client\n" "from array import array\n" @@ -3653,13 +3106,11 @@ msgid "" " print(arr) # => array('i', [42, 1729, 0, 0, 0])" msgstr "" -#: ../../library/multiprocessing.rst:2741 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" msgstr "" -#: ../../library/multiprocessing.rst:2744 msgid "" "from multiprocessing import Process, Pipe, current_process\n" "from multiprocessing.connection import wait\n" @@ -3693,23 +3144,19 @@ msgid "" " print(msg)" msgstr "" -#: ../../library/multiprocessing.rst:2779 msgid "Address Formats" msgstr "" -#: ../../library/multiprocessing.rst:2781 msgid "" "An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " "*hostname* is a string and *port* is an integer." msgstr "" -#: ../../library/multiprocessing.rst:2784 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" -#: ../../library/multiprocessing.rst:2787 msgid "" "An ``'AF_PIPE'`` address is a string of the form :samp:`r'\\\\\\\\\\\\.\\" "\\pipe\\\\\\\\{PipeName}'`. To use :func:`Client` to connect to a named " @@ -3718,17 +3165,14 @@ msgid "" "instead." msgstr "" -#: ../../library/multiprocessing.rst:2792 msgid "" "Note that any string beginning with two backslashes is assumed by default to " "be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." msgstr "" -#: ../../library/multiprocessing.rst:2799 msgid "Authentication keys" msgstr "" -#: ../../library/multiprocessing.rst:2801 msgid "" "When one uses :meth:`Connection.recv `, the data received " "is automatically unpickled. Unfortunately unpickling data from an untrusted " @@ -3736,7 +3180,6 @@ msgid "" "use the :mod:`hmac` module to provide digest authentication." msgstr "" -#: ../../library/multiprocessing.rst:2807 msgid "" "An authentication key is a byte string which can be thought of as a " "password: once a connection is established both ends will demand proof that " @@ -3744,56 +3187,48 @@ msgid "" "using the same key does **not** involve sending the key over the connection.)" msgstr "" -#: ../../library/multiprocessing.rst:2813 msgid "" "If authentication is requested but no authentication key is specified then " -"the return value of ``current_process().authkey`` is used " -"(see :class:`~multiprocessing.Process`). This value will be automatically " -"inherited by any :class:`~multiprocessing.Process` object that the current " -"process creates. This means that (by default) all processes of a multi-" -"process program will share a single authentication key which can be used " -"when setting up connections between themselves." +"the return value of ``current_process().authkey`` is used (see :class:" +"`~multiprocessing.Process`). This value will be automatically inherited by " +"any :class:`~multiprocessing.Process` object that the current process " +"creates. This means that (by default) all processes of a multi-process " +"program will share a single authentication key which can be used when " +"setting up connections between themselves." msgstr "" -#: ../../library/multiprocessing.rst:2821 msgid "" -"Suitable authentication keys can also be generated by " -"using :func:`os.urandom`." +"Suitable authentication keys can also be generated by using :func:`os." +"urandom`." msgstr "" -#: ../../library/multiprocessing.rst:2825 msgid "Logging" -msgstr "Naplózás" +msgstr "" -#: ../../library/multiprocessing.rst:2827 msgid "" -"Some support for logging is available. Note, however, that " -"the :mod:`logging` package does not use process shared locks so it is " -"possible (depending on the handler type) for messages from different " -"processes to get mixed up." +"Some support for logging is available. Note, however, that the :mod:" +"`logging` package does not use process shared locks so it is possible " +"(depending on the handler type) for messages from different processes to get " +"mixed up." msgstr "" -#: ../../library/multiprocessing.rst:2834 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." msgstr "" -#: ../../library/multiprocessing.rst:2837 msgid "" "When first created the logger has level :const:`logging.NOTSET` and no " "default handler. Messages sent to this logger will not by default propagate " "to the root logger." msgstr "" -#: ../../library/multiprocessing.rst:2841 msgid "" "Note that on Windows child processes will only inherit the level of the " "parent process's logger -- any other customization of the logger will not be " "inherited." msgstr "" -#: ../../library/multiprocessing.rst:2848 msgid "" "This function performs a call to :func:`get_logger` but in addition to " "returning the logger created by get_logger, it adds a handler which sends " @@ -3802,11 +3237,9 @@ msgid "" "``level`` argument." msgstr "" -#: ../../library/multiprocessing.rst:2854 msgid "Below is an example session with logging turned on::" msgstr "" -#: ../../library/multiprocessing.rst:2856 msgid "" ">>> import multiprocessing, logging\n" ">>> logger = multiprocessing.log_to_stderr()\n" @@ -3822,160 +3255,133 @@ msgid "" "[INFO/SyncManager-...] manager exiting with exitcode 0" msgstr "" -#: ../../library/multiprocessing.rst:2869 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" -#: ../../library/multiprocessing.rst:2873 msgid "The :mod:`multiprocessing.dummy` module" msgstr "" -#: ../../library/multiprocessing.rst:2878 msgid "" ":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " "but is no more than a wrapper around the :mod:`threading` module." msgstr "" -#: ../../library/multiprocessing.rst:2883 msgid "" -"In particular, the ``Pool`` function provided " -"by :mod:`multiprocessing.dummy` returns an instance of :class:`ThreadPool`, " -"which is a subclass of :class:`Pool` that supports all the same method calls " -"but uses a pool of worker threads rather than worker processes." +"In particular, the ``Pool`` function provided by :mod:`multiprocessing." +"dummy` returns an instance of :class:`ThreadPool`, which is a subclass of :" +"class:`Pool` that supports all the same method calls but uses a pool of " +"worker threads rather than worker processes." msgstr "" -#: ../../library/multiprocessing.rst:2891 msgid "" "A thread pool object which controls a pool of worker threads to which jobs " "can be submitted. :class:`ThreadPool` instances are fully interface " "compatible with :class:`Pool` instances, and their resources must also be " "properly managed, either by using the pool as a context manager or by " -"calling :meth:`~multiprocessing.pool.Pool.close` " -"and :meth:`~multiprocessing.pool.Pool.terminate` manually." +"calling :meth:`~multiprocessing.pool.Pool.close` and :meth:`~multiprocessing." +"pool.Pool.terminate` manually." msgstr "" -#: ../../library/multiprocessing.rst:2898 msgid "" "*processes* is the number of worker threads to use. If *processes* is " "``None`` then the number returned by :func:`os.process_cpu_count` is used." msgstr "" -#: ../../library/multiprocessing.rst:2904 msgid "" "Unlike :class:`Pool`, *maxtasksperchild* and *context* cannot be provided." msgstr "" -#: ../../library/multiprocessing.rst:2908 msgid "" "A :class:`ThreadPool` shares the same interface as :class:`Pool`, which is " -"designed around a pool of processes and predates the introduction of " -"the :class:`concurrent.futures` module. As such, it inherits some " -"operations that don't make sense for a pool backed by threads, and it has " -"its own type for representing the status of asynchronous " -"jobs, :class:`AsyncResult`, that is not understood by any other libraries." +"designed around a pool of processes and predates the introduction of the :" +"class:`concurrent.futures` module. As such, it inherits some operations " +"that don't make sense for a pool backed by threads, and it has its own type " +"for representing the status of asynchronous jobs, :class:`AsyncResult`, that " +"is not understood by any other libraries." msgstr "" -#: ../../library/multiprocessing.rst:2915 msgid "" -"Users should generally prefer to " -"use :class:`concurrent.futures.ThreadPoolExecutor`, which has a simpler " -"interface that was designed around threads from the start, and which " -"returns :class:`concurrent.futures.Future` instances that are compatible " -"with many other libraries, including :mod:`asyncio`." +"Users should generally prefer to use :class:`concurrent.futures." +"ThreadPoolExecutor`, which has a simpler interface that was designed around " +"threads from the start, and which returns :class:`concurrent.futures.Future` " +"instances that are compatible with many other libraries, including :mod:" +"`asyncio`." msgstr "" -#: ../../library/multiprocessing.rst:2925 msgid "Programming guidelines" msgstr "" -#: ../../library/multiprocessing.rst:2927 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." msgstr "" -#: ../../library/multiprocessing.rst:2932 msgid "All start methods" msgstr "" -#: ../../library/multiprocessing.rst:2934 msgid "The following applies to all start methods." msgstr "" -#: ../../library/multiprocessing.rst:2936 msgid "Avoid shared state" msgstr "" -#: ../../library/multiprocessing.rst:2938 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." msgstr "" -#: ../../library/multiprocessing.rst:2941 msgid "" "It is probably best to stick to using queues or pipes for communication " "between processes rather than using the lower level synchronization " "primitives." msgstr "" -#: ../../library/multiprocessing.rst:2945 msgid "Picklability" msgstr "" -#: ../../library/multiprocessing.rst:2947 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" -#: ../../library/multiprocessing.rst:2949 msgid "Thread safety of proxies" msgstr "" -#: ../../library/multiprocessing.rst:2951 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." msgstr "" -#: ../../library/multiprocessing.rst:2954 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" -#: ../../library/multiprocessing.rst:2956 msgid "Joining zombie processes" msgstr "" -#: ../../library/multiprocessing.rst:2958 msgid "" "On POSIX when a process finishes but has not been joined it becomes a " "zombie. There should never be very many because each time a new process " "starts (or :func:`~multiprocessing.active_children` is called) all completed " "processes which have not yet been joined will be joined. Also calling a " -"finished process's :meth:`Process.is_alive " -"` will join the process. Even so it is " -"probably good practice to explicitly join all the processes that you start." +"finished process's :meth:`Process.is_alive ` will join the process. Even so it is probably good practice to " +"explicitly join all the processes that you start." msgstr "" -#: ../../library/multiprocessing.rst:2966 msgid "Better to inherit than pickle/unpickle" msgstr "" -#: ../../library/multiprocessing.rst:2968 msgid "" -"When using the *spawn* or *forkserver* start methods many types " -"from :mod:`multiprocessing` need to be picklable so that child processes can " -"use them. However, one should generally avoid sending shared objects to " -"other processes using pipes or queues. Instead you should arrange the " -"program so that a process which needs access to a shared resource created " -"elsewhere can inherit it from an ancestor process." +"When using the *spawn* or *forkserver* start methods many types from :mod:" +"`multiprocessing` need to be picklable so that child processes can use " +"them. However, one should generally avoid sending shared objects to other " +"processes using pipes or queues. Instead you should arrange the program so " +"that a process which needs access to a shared resource created elsewhere can " +"inherit it from an ancestor process." msgstr "" -#: ../../library/multiprocessing.rst:2976 msgid "Avoid terminating processes" msgstr "" -#: ../../library/multiprocessing.rst:2978 msgid "" "Using the :meth:`Process.terminate ` " "method to stop a process is liable to cause any shared resources (such as " @@ -3983,28 +3389,23 @@ msgid "" "become broken or unavailable to other processes." msgstr "" -#: ../../library/multiprocessing.rst:2984 msgid "" -"Therefore it is probably best to only consider " -"using :meth:`Process.terminate ` on " -"processes which never use any shared resources." +"Therefore it is probably best to only consider using :meth:`Process." +"terminate ` on processes which never use " +"any shared resources." msgstr "" -#: ../../library/multiprocessing.rst:2988 msgid "Joining processes that use queues" msgstr "" -#: ../../library/multiprocessing.rst:2990 msgid "" "Bear in mind that a process that has put items in a queue will wait before " "terminating until all the buffered items are fed by the \"feeder\" thread to " -"the underlying pipe. (The child process can call " -"the :meth:`Queue.cancel_join_thread " -"` method of the queue to avoid " -"this behaviour.)" +"the underlying pipe. (The child process can call the :meth:`Queue." +"cancel_join_thread ` method of the " +"queue to avoid this behaviour.)" msgstr "" -#: ../../library/multiprocessing.rst:2996 msgid "" "This means that whenever you use a queue you need to make sure that all " "items which have been put on the queue will eventually be removed before the " @@ -4013,11 +3414,9 @@ msgid "" "processes will be joined automatically." msgstr "" -#: ../../library/multiprocessing.rst:3002 msgid "An example which will deadlock is the following::" msgstr "" -#: ../../library/multiprocessing.rst:3004 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -4032,17 +3431,14 @@ msgid "" " obj = queue.get()" msgstr "" -#: ../../library/multiprocessing.rst:3016 msgid "" -"A fix here would be to swap the last two lines (or simply remove the " -"``p.join()`` line)." +"A fix here would be to swap the last two lines (or simply remove the ``p." +"join()`` line)." msgstr "" -#: ../../library/multiprocessing.rst:3019 msgid "Explicitly pass resources to child processes" msgstr "" -#: ../../library/multiprocessing.rst:3021 msgid "" "On POSIX using the *fork* start method, a child process can make use of a " "shared resource created in a parent process using a global resource. " @@ -4050,7 +3446,6 @@ msgid "" "for the child process." msgstr "" -#: ../../library/multiprocessing.rst:3026 msgid "" "Apart from making the code (potentially) compatible with Windows and the " "other start methods this also ensures that as long as the child process is " @@ -4059,11 +3454,9 @@ msgid "" "collected in the parent process." msgstr "" -#: ../../library/multiprocessing.rst:3033 msgid "So for instance ::" msgstr "" -#: ../../library/multiprocessing.rst:3035 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -4076,11 +3469,9 @@ msgid "" " Process(target=f).start()" msgstr "" -#: ../../library/multiprocessing.rst:3045 msgid "should be rewritten as ::" msgstr "" -#: ../../library/multiprocessing.rst:3047 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -4093,49 +3484,40 @@ msgid "" " Process(target=f, args=(lock,)).start()" msgstr "" -#: ../../library/multiprocessing.rst:3057 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" -#: ../../library/multiprocessing.rst:3059 msgid ":mod:`multiprocessing` originally unconditionally called::" msgstr "" -#: ../../library/multiprocessing.rst:3061 msgid "os.close(sys.stdin.fileno())" msgstr "" -#: ../../library/multiprocessing.rst:3063 msgid "" "in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " "in issues with processes-in-processes. This has been changed to::" msgstr "" -#: ../../library/multiprocessing.rst:3066 msgid "" "sys.stdin.close()\n" "sys.stdin = open(os.open(os.devnull, os.O_RDONLY), closefd=False)" msgstr "" -#: ../../library/multiprocessing.rst:3069 msgid "" "Which solves the fundamental issue of processes colliding with each other " "resulting in a bad file descriptor error, but introduces a potential danger " "to applications which replace :func:`sys.stdin` with a \"file-like object\" " -"with output buffering. This danger is that if multiple processes " -"call :meth:`~io.IOBase.close` on this file-like object, it could result in " -"the same data being flushed to the object multiple times, resulting in " -"corruption." +"with output buffering. This danger is that if multiple processes call :meth:" +"`~io.IOBase.close` on this file-like object, it could result in the same " +"data being flushed to the object multiple times, resulting in corruption." msgstr "" -#: ../../library/multiprocessing.rst:3076 msgid "" "If you write a file-like object and implement your own caching, you can make " "it fork-safe by storing the pid whenever you append to the cache, and " "discarding the cache when the pid changes. For example::" msgstr "" -#: ../../library/multiprocessing.rst:3080 msgid "" "@property\n" "def cache(self):\n" @@ -4146,26 +3528,21 @@ msgid "" " return self._cache" msgstr "" -#: ../../library/multiprocessing.rst:3088 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" -#: ../../library/multiprocessing.rst:3094 msgid "The *spawn* and *forkserver* start methods" msgstr "" -#: ../../library/multiprocessing.rst:3096 msgid "" "There are a few extra restrictions which don't apply to the *fork* start " "method." msgstr "" -#: ../../library/multiprocessing.rst:3099 msgid "More picklability" msgstr "" -#: ../../library/multiprocessing.rst:3101 msgid "" "Ensure that all arguments to :class:`~multiprocessing.Process` are " "picklable. Also, if you subclass ``Process.__init__``, you must make sure " @@ -4173,42 +3550,35 @@ msgid "" "` method is called." msgstr "" -#: ../../library/multiprocessing.rst:3106 msgid "Global variables" msgstr "" -#: ../../library/multiprocessing.rst:3108 msgid "" "Bear in mind that if code run in a child process tries to access a global " "variable, then the value it sees (if any) may not be the same as the value " -"in the parent process at the time that :meth:`Process.start " -"` was called." +"in the parent process at the time that :meth:`Process.start ` was called." msgstr "" -#: ../../library/multiprocessing.rst:3113 msgid "" "However, global variables which are just module level constants cause no " "problems." msgstr "" -#: ../../library/multiprocessing.rst:3118 msgid "Safe importing of main module" msgstr "" -#: ../../library/multiprocessing.rst:3120 msgid "" "Make sure that the main module can be safely imported by a new Python " "interpreter without causing unintended side effects (such as starting a new " "process)." msgstr "" -#: ../../library/multiprocessing.rst:3124 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" msgstr "" -#: ../../library/multiprocessing.rst:3128 msgid "" "from multiprocessing import Process\n" "\n" @@ -4219,13 +3589,11 @@ msgid "" "p.start()" msgstr "" -#: ../../library/multiprocessing.rst:3136 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" msgstr "" -#: ../../library/multiprocessing.rst:3139 msgid "" "from multiprocessing import Process, freeze_support, set_start_method\n" "\n" @@ -4239,33 +3607,27 @@ msgid "" " p.start()" msgstr "" -#: ../../library/multiprocessing.rst:3150 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" msgstr "" -#: ../../library/multiprocessing.rst:3153 msgid "" "This allows the newly spawned Python interpreter to safely import the module " "and then run the module's ``foo()`` function." msgstr "" -#: ../../library/multiprocessing.rst:3156 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." msgstr "" -#: ../../library/multiprocessing.rst:3163 msgid "Examples" msgstr "" -#: ../../library/multiprocessing.rst:3165 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "" -#: ../../library/multiprocessing.rst:3167 msgid "" "from multiprocessing import freeze_support\n" "from multiprocessing.managers import BaseManager, BaseProxy\n" @@ -4359,11 +3721,9 @@ msgid "" " test()\n" msgstr "" -#: ../../library/multiprocessing.rst:3171 msgid "Using :class:`~multiprocessing.pool.Pool`:" msgstr "" -#: ../../library/multiprocessing.rst:3173 msgid "" "import multiprocessing\n" "import time\n" @@ -4465,8 +3825,8 @@ msgid "" " try:\n" " print(list(pool.imap(f, list(range(10)))))\n" " except ZeroDivisionError:\n" -" print('\\tGot ZeroDivisionError as expected from " -"list(pool.imap())')\n" +" print('\\tGot ZeroDivisionError as expected from list(pool." +"imap())')\n" " else:\n" " raise AssertionError('expected ZeroDivisionError')\n" "\n" @@ -4484,8 +3844,8 @@ msgid "" " raise AssertionError('expected ZeroDivisionError')\n" "\n" " assert i == 9\n" -" print('\\tGot ZeroDivisionError as expected from " -"IMapIterator.next()')\n" +" print('\\tGot ZeroDivisionError as expected from IMapIterator." +"next()')\n" " print()\n" "\n" " #\n" @@ -4523,13 +3883,11 @@ msgid "" " test()\n" msgstr "" -#: ../../library/multiprocessing.rst:3177 msgid "" "An example showing how to use queues to feed tasks to a collection of worker " "processes and collect the results:" msgstr "" -#: ../../library/multiprocessing.rst:3180 msgid "" "import time\n" "import random\n" diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index 12ddb14..3987a84 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/multiprocessing.shared_memory.rst:2 msgid "" ":mod:`!multiprocessing.shared_memory` --- Shared memory for direct access " "across processes" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:7 msgid "**Source code:** :source:`Lib/multiprocessing/shared_memory.py`" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:18 msgid "" "This module provides a class, :class:`SharedMemory`, for the allocation and " "management of shared memory to be accessed by one or more processes on a " "multicore or symmetric multiprocessor (SMP) machine. To assist with the " "life-cycle management of shared memory especially across distinct processes, " -"a :class:`~multiprocessing.managers.BaseManager` " -"subclass, :class:`~multiprocessing.managers.SharedMemoryManager`, is also " -"provided in the :mod:`multiprocessing.managers` module." +"a :class:`~multiprocessing.managers.BaseManager` subclass, :class:" +"`~multiprocessing.managers.SharedMemoryManager`, is also provided in the :" +"mod:`multiprocessing.managers` module." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:26 msgid "" "In this module, shared memory refers to \"POSIX style\" shared memory blocks " "(though is not necessarily implemented explicitly as such) and does not " @@ -54,7 +50,6 @@ msgid "" "deserialization and copying of data." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:41 msgid "" "Create an instance of the :class:`!SharedMemory` class for either creating a " "new shared memory block or attaching to an existing shared memory block. " @@ -63,7 +58,6 @@ msgid "" "process can attach to that same shared memory block using that same name." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:48 msgid "" "As a resource for sharing data across processes, shared memory blocks may " "outlive the original process that created them. When one process no longer " @@ -73,24 +67,20 @@ msgid "" "be called to ensure proper cleanup." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:0 msgid "Parameters" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:55 msgid "" "The unique name for the requested shared memory, specified as a string. When " "creating a new shared memory block, if ``None`` (the default) is supplied " "for the name, a novel name will be generated." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:61 msgid "" "Control whether a new shared memory block is created (``True``) or an " "existing shared memory block is attached (``False``)." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:65 msgid "" "The requested number of bytes when creating a new shared memory block. " "Because some platforms choose to allocate chunks of memory based upon that " @@ -99,7 +89,6 @@ msgid "" "shared memory block, the *size* parameter is ignored." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:73 msgid "" "When ``True``, register the shared memory block with a resource tracker " "process on platforms where the OS does not do this automatically. The " @@ -118,55 +107,44 @@ msgid "" "shared memory when all handles to it have been closed." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:91 msgid "Added the *track* parameter." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:96 msgid "" -"Close the file descriptor/handle to the shared memory from this " -"instance. :meth:`close` should be called once access to the shared memory " -"block from this instance is no longer needed. Depending on operating " -"system, the underlying memory may or may not be freed even if all handles to " -"it have been closed. To ensure proper cleanup, use the :meth:`unlink` " -"method." +"Close the file descriptor/handle to the shared memory from this instance. :" +"meth:`close` should be called once access to the shared memory block from " +"this instance is no longer needed. Depending on operating system, the " +"underlying memory may or may not be freed even if all handles to it have " +"been closed. To ensure proper cleanup, use the :meth:`unlink` method." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:105 msgid "" "Delete the underlying shared memory block. This should be called only once " "per shared memory block regardless of the number of handles to it, even in " "other processes. :meth:`unlink` and :meth:`close` can be called in any " -"order, but trying to access data inside a shared memory block " -"after :meth:`unlink` may result in memory access errors, depending on " -"platform." +"order, but trying to access data inside a shared memory block after :meth:" +"`unlink` may result in memory access errors, depending on platform." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:112 msgid "" "This method has no effect on Windows, where the only way to delete a shared " "memory block is to close all handles." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:117 msgid "A memoryview of contents of the shared memory block." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:121 msgid "Read-only access to the unique name of the shared memory block." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:125 msgid "Read-only access to size in bytes of the shared memory block." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:128 msgid "" "The following example demonstrates low-level use of :class:`SharedMemory` " "instances::" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:131 msgid "" ">>> from multiprocessing import shared_memory\n" ">>> shm_a = shared_memory.SharedMemory(create=True, size=10)\n" @@ -191,14 +169,12 @@ msgid "" ">>> shm_a.unlink() # Call unlink only once to release the shared memory" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:154 msgid "" -"The following example demonstrates a practical use of " -"the :class:`SharedMemory` class with `NumPy arrays `_, " -"accessing the same :class:`!numpy.ndarray` from two distinct Python shells:" +"The following example demonstrates a practical use of the :class:" +"`SharedMemory` class with `NumPy arrays `_, accessing " +"the same :class:`!numpy.ndarray` from two distinct Python shells:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:158 msgid "" ">>> # In the first Python interactive shell\n" ">>> import numpy as np\n" @@ -244,35 +220,31 @@ msgid "" ">>> shm.unlink() # Free and release the shared memory block at the very end" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:208 msgid "" "A subclass of :class:`multiprocessing.managers.BaseManager` which can be " "used for the management of shared memory blocks across processes." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:211 msgid "" "A call to :meth:`~multiprocessing.managers.BaseManager.start` on a :class:`!" "SharedMemoryManager` instance causes a new process to be started. This new " "process's sole purpose is to manage the life cycle of all shared memory " "blocks created through it. To trigger the release of all shared memory " -"blocks managed by that process, " -"call :meth:`~multiprocessing.managers.BaseManager.shutdown` on the instance. " -"This triggers a :meth:`~multiprocessing.shared_memory.SharedMemory.unlink` " -"call on all of the :class:`SharedMemory` objects managed by that process and " -"then stops the process itself. By creating :class:`!SharedMemory` instances " -"through a :class:`!SharedMemoryManager`, we avoid the need to manually track " -"and trigger the freeing of shared memory resources." +"blocks managed by that process, call :meth:`~multiprocessing.managers." +"BaseManager.shutdown` on the instance. This triggers a :meth:" +"`~multiprocessing.shared_memory.SharedMemory.unlink` call on all of the :" +"class:`SharedMemory` objects managed by that process and then stops the " +"process itself. By creating :class:`!SharedMemory` instances through a :" +"class:`!SharedMemoryManager`, we avoid the need to manually track and " +"trigger the freeing of shared memory resources." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:223 msgid "" "This class provides methods for creating and returning :class:`SharedMemory` " "instances and for creating a list-like object (:class:`ShareableList`) " "backed by shared memory." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:227 msgid "" "Refer to :class:`~multiprocessing.managers.BaseManager` for a description of " "the inherited *address* and *authkey* optional input arguments and how they " @@ -280,25 +252,21 @@ msgid "" "from other processes." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:234 msgid "" "Create and return a new :class:`SharedMemory` object with the specified " "*size* in bytes." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:239 msgid "" "Create and return a new :class:`ShareableList` object, initialized by the " "values from the input *sequence*." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:243 msgid "" -"The following example demonstrates the basic mechanisms of " -"a :class:`~multiprocessing.managers.SharedMemoryManager`:" +"The following example demonstrates the basic mechanisms of a :class:" +"`~multiprocessing.managers.SharedMemoryManager`:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:246 msgid "" ">>> from multiprocessing.managers import SharedMemoryManager\n" ">>> smm = SharedMemoryManager()\n" @@ -313,7 +281,6 @@ msgid "" ">>> smm.shutdown() # Calls unlink() on sl, raw_shm, and another_sl" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:261 msgid "" "The following example depicts a potentially more convenient pattern for " "using :class:`~multiprocessing.managers.SharedMemoryManager` objects via " @@ -321,7 +288,6 @@ msgid "" "released after they are no longer needed:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:266 msgid "" ">>> with SharedMemoryManager() as smm:\n" "... sl = smm.ShareableList(range(2000))\n" @@ -336,46 +302,37 @@ msgid "" "... total_result = sum(sl) # Consolidate the partial results now in sl" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:280 msgid "" -"When using a :class:`~multiprocessing.managers.SharedMemoryManager` in " -"a :keyword:`with` statement, the shared memory blocks created using that " +"When using a :class:`~multiprocessing.managers.SharedMemoryManager` in a :" +"keyword:`with` statement, the shared memory blocks created using that " "manager are all released when the :keyword:`!with` statement's code block " "finishes execution." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:288 msgid "" "Provide a mutable list-like object where all values stored within are stored " "in a shared memory block. This constrains storable values to the following " "built-in data types:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:292 msgid ":class:`int` (signed 64-bit)" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:293 msgid ":class:`float`" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:294 msgid ":class:`bool`" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:295 msgid ":class:`str` (less than 10M bytes each when encoded as UTF-8)" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:296 msgid ":class:`bytes` (less than 10M bytes each)" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:297 msgid "``None``" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:299 msgid "" "It also notably differs from the built-in :class:`list` type in that these " "lists can not change their overall length (i.e. no :meth:`!append`, :meth:`!" @@ -383,38 +340,33 @@ msgid "" "ShareableList` instances via slicing." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:305 msgid "" "*sequence* is used in populating a new :class:`!ShareableList` full of " "values. Set to ``None`` to instead attach to an already existing :class:`!" "ShareableList` by its unique shared memory name." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:309 msgid "" "*name* is the unique name for the requested shared memory, as described in " -"the definition for :class:`SharedMemory`. When attaching to an " -"existing :class:`!ShareableList`, specify its shared memory block's unique " -"name while leaving *sequence* set to ``None``." +"the definition for :class:`SharedMemory`. When attaching to an existing :" +"class:`!ShareableList`, specify its shared memory block's unique name while " +"leaving *sequence* set to ``None``." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:316 msgid "" "A known issue exists for :class:`bytes` and :class:`str` values. If they end " "with ``\\x00`` nul bytes or characters, those may be *silently stripped* " -"when fetching them by index from the :class:`!ShareableList`. This " -"``.rstrip(b'\\x00')`` behavior is considered a bug and may go away in the " +"when fetching them by index from the :class:`!ShareableList`. This ``." +"rstrip(b'\\x00')`` behavior is considered a bug and may go away in the " "future. See :gh:`106939`." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:322 msgid "" "For applications where rstripping of trailing nulls is a problem, work " "around it by always unconditionally appending an extra non-0 byte to the end " "of such values when storing and unconditionally removing it when fetching:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:327 msgid "" ">>> from multiprocessing import shared_memory\n" ">>> nul_bug_demo = shared_memory.ShareableList(['?\\x00', " @@ -433,40 +385,33 @@ msgid "" ">>> padded.shm.unlink()" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:345 msgid "Return the number of occurrences of *value*." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:349 msgid "" "Return first index position of *value*. Raise :exc:`ValueError` if *value* " "is not present." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:354 msgid "" "Read-only attribute containing the :mod:`struct` packing format used by all " "currently stored values." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:359 msgid "The :class:`SharedMemory` instance where the values are stored." msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:362 msgid "" "The following example demonstrates basic use of a :class:`ShareableList` " "instance:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:395 msgid "" "The following example depicts how one, two, or many processes may access the " "same :class:`ShareableList` by supplying the name of the shared memory block " "behind it:" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:410 msgid "" "The following examples demonstrates that :class:`ShareableList` (and " "underlying :class:`SharedMemory`) objects can be pickled and unpickled if " @@ -476,14 +421,11 @@ msgid "" "alive):" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:11 msgid "Shared Memory" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:11 msgid "POSIX Shared Memory" msgstr "" -#: ../../library/multiprocessing.shared_memory.rst:11 msgid "Named Shared Memory" msgstr "" diff --git a/library/netdata.po b/library/netdata.po index e8b93af..b917d5d 100644 --- a/library/netdata.po +++ b/library/netdata.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/netdata.rst:6 msgid "Internet Data Handling" msgstr "" -#: ../../library/netdata.rst:8 msgid "" "This chapter describes modules which support handling data formats commonly " "used on the internet." diff --git a/library/netrc.po b/library/netrc.po index 96a08e5..da67b78 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/netrc.rst:2 msgid ":mod:`!netrc` --- netrc file processing" msgstr "" -#: ../../library/netrc.rst:10 msgid "**Source code:** :source:`Lib/netrc.py`" msgstr "" -#: ../../library/netrc.rst:14 msgid "" "The :class:`~netrc.netrc` class parses and encapsulates the netrc file " "format used by the Unix :program:`ftp` program and other FTP clients." msgstr "" -#: ../../library/netrc.rst:20 msgid "" "A :class:`~netrc.netrc` instance or subclass instance encapsulates data " "from a netrc file. The initialization argument, if present, specifies the " @@ -43,7 +39,6 @@ msgid "" "including the file name, line number, and terminating token." msgstr "" -#: ../../library/netrc.rst:28 msgid "" "If no argument is specified on a POSIX system, the presence of passwords in " "the :file:`.netrc` file will raise a :exc:`NetrcParseError` if the file " @@ -54,17 +49,14 @@ msgid "" "platforms that do not support :func:`os.getuid`." msgstr "" -#: ../../library/netrc.rst:36 msgid "Added the POSIX permission check." msgstr "" -#: ../../library/netrc.rst:38 msgid "" -":func:`os.path.expanduser` is used to find the location of " -"the :file:`.netrc` file when *file* is not passed as argument." +":func:`os.path.expanduser` is used to find the location of the :file:`." +"netrc` file when *file* is not passed as argument." msgstr "" -#: ../../library/netrc.rst:42 msgid "" ":class:`netrc` try UTF-8 encoding before using locale specific encoding. The " "entry in the netrc file no longer needs to contain all tokens. The missing " @@ -74,34 +66,27 @@ msgid "" "check." msgstr "" -#: ../../library/netrc.rst:53 msgid "" "Exception raised by the :class:`~netrc.netrc` class when syntactical errors " "are encountered in source text. Instances of this exception provide three " "interesting attributes:" msgstr "" -#: ../../library/netrc.rst:59 msgid "Textual explanation of the error." msgstr "" -#: ../../library/netrc.rst:63 msgid "The name of the source file." msgstr "" -#: ../../library/netrc.rst:67 msgid "The line number on which the error was found." msgstr "" -#: ../../library/netrc.rst:73 msgid "netrc Objects" msgstr "" -#: ../../library/netrc.rst:75 msgid "A :class:`~netrc.netrc` instance has the following methods:" msgstr "" -#: ../../library/netrc.rst:80 msgid "" "Return a 3-tuple ``(login, account, password)`` of authenticators for " "*host*. If the netrc file did not contain an entry for the given host, " @@ -109,22 +94,18 @@ msgid "" "host nor default entry is available, return ``None``." msgstr "" -#: ../../library/netrc.rst:88 msgid "" "Dump the class data as a string in the format of a netrc file. (This " "discards comments and may reorder the entries.)" msgstr "" -#: ../../library/netrc.rst:91 msgid "Instances of :class:`~netrc.netrc` have public instance variables:" msgstr "" -#: ../../library/netrc.rst:96 msgid "" "Dictionary mapping host names to ``(login, account, password)`` tuples. The " "'default' entry, if any, is represented as a pseudo-host by that name." msgstr "" -#: ../../library/netrc.rst:102 msgid "Dictionary mapping macro names to string lists." msgstr "" diff --git a/library/nis.po b/library/nis.po index cc9e48a..0958bbd 100644 --- a/library/nis.po +++ b/library/nis.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/nis.rst:2 msgid ":mod:`!nis` --- Interface to Sun’s NIS (Yellow Pages)" msgstr "" -#: ../../library/nis.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/nis.rst:14 msgid "" "The last version of Python that provided the :mod:`!nis` module was `Python " "3.12 `_." diff --git a/library/nntplib.po b/library/nntplib.po index 480e90c..fac5d74 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/nntplib.rst:2 msgid ":mod:`!nntplib` --- NNTP protocol client" msgstr "" -#: ../../library/nntplib.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/nntplib.rst:14 msgid "" "The last version of Python that provided the :mod:`!nntplib` module was " "`Python 3.12 `_." diff --git a/library/numbers.po b/library/numbers.po index b84ba2d..4d60394 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,115 +18,94 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/numbers.rst:2 msgid ":mod:`!numbers` --- Numeric abstract base classes" msgstr "" -#: ../../library/numbers.rst:7 msgid "**Source code:** :source:`Lib/numbers.py`" msgstr "" -#: ../../library/numbers.rst:11 msgid "" -"The :mod:`!numbers` module (:pep:`3141`) defines a hierarchy of " -"numeric :term:`abstract base classes ` which " -"progressively define more operations. None of the types defined in this " -"module are intended to be instantiated." +"The :mod:`!numbers` module (:pep:`3141`) defines a hierarchy of numeric :" +"term:`abstract base classes ` which progressively " +"define more operations. None of the types defined in this module are " +"intended to be instantiated." msgstr "" -#: ../../library/numbers.rst:18 msgid "" "The root of the numeric hierarchy. If you just want to check if an argument " "*x* is a number, without caring what kind, use ``isinstance(x, Number)``." msgstr "" -#: ../../library/numbers.rst:23 msgid "The numeric tower" msgstr "" -#: ../../library/numbers.rst:27 msgid "" "Subclasses of this type describe complex numbers and include the operations " -"that work on the built-in :class:`complex` type. These are: conversions " -"to :class:`complex` and :class:`bool`, :attr:`.real`, :attr:`.imag`, ``+``, " -"``-``, ``*``, ``/``, ``**``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!" +"that work on the built-in :class:`complex` type. These are: conversions to :" +"class:`complex` and :class:`bool`, :attr:`.real`, :attr:`.imag`, ``+``, ``-" +"``, ``*``, ``/``, ``**``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!" "=``. All except ``-`` and ``!=`` are abstract." msgstr "" -#: ../../library/numbers.rst:35 msgid "Abstract. Retrieves the real component of this number." msgstr "" -#: ../../library/numbers.rst:39 msgid "Abstract. Retrieves the imaginary component of this number." msgstr "" -#: ../../library/numbers.rst:44 msgid "" "Abstract. Returns the complex conjugate. For example, ``(1+3j).conjugate() " "== (1-3j)``." msgstr "" -#: ../../library/numbers.rst:49 msgid "" "To :class:`Complex`, :class:`!Real` adds the operations that work on real " "numbers." msgstr "" -#: ../../library/numbers.rst:52 msgid "" -"In short, those are: a conversion " -"to :class:`float`, :func:`math.trunc`, :func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, " -"``//``, ``%``, ``<``, ``<=``, ``>``, and ``>=``." +"In short, those are: a conversion to :class:`float`, :func:`math.trunc`, :" +"func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``, " +"``%``, ``<``, ``<=``, ``>``, and ``>=``." msgstr "" -#: ../../library/numbers.rst:56 msgid "" -"Real also provides defaults " -"for :func:`complex`, :attr:`~Complex.real`, :attr:`~Complex.imag`, " -"and :meth:`~Complex.conjugate`." +"Real also provides defaults for :func:`complex`, :attr:`~Complex.real`, :" +"attr:`~Complex.imag`, and :meth:`~Complex.conjugate`." msgstr "" -#: ../../library/numbers.rst:62 msgid "" -"Subtypes :class:`Real` and adds :attr:`~Rational.numerator` " -"and :attr:`~Rational.denominator` properties. It also provides a default " -"for :func:`float`." +"Subtypes :class:`Real` and adds :attr:`~Rational.numerator` and :attr:" +"`~Rational.denominator` properties. It also provides a default for :func:" +"`float`." msgstr "" -#: ../../library/numbers.rst:66 msgid "" "The :attr:`~Rational.numerator` and :attr:`~Rational.denominator` values " -"should be instances of :class:`Integral` and should be in lowest terms " -"with :attr:`~Rational.denominator` positive." +"should be instances of :class:`Integral` and should be in lowest terms with :" +"attr:`~Rational.denominator` positive." msgstr "" -#: ../../library/numbers.rst:72 ../../library/numbers.rst:76 msgid "Abstract." msgstr "" -#: ../../library/numbers.rst:81 msgid "" "Subtypes :class:`Rational` and adds a conversion to :class:`int`. Provides " -"defaults for :func:`float`, :attr:`~Rational.numerator`, " -"and :attr:`~Rational.denominator`. Adds abstract methods for :func:`pow` " -"with modulus and bit-string operations: ``<<``, ``>>``, ``&``, ``^``, ``|``, " -"``~``." +"defaults for :func:`float`, :attr:`~Rational.numerator`, and :attr:" +"`~Rational.denominator`. Adds abstract methods for :func:`pow` with modulus " +"and bit-string operations: ``<<``, ``>>``, ``&``, ``^``, ``|``, ``~``." msgstr "" -#: ../../library/numbers.rst:89 msgid "Notes for type implementers" msgstr "" -#: ../../library/numbers.rst:91 msgid "" "Implementers should be careful to make equal numbers equal and hash them to " "the same values. This may be subtle if there are two different extensions of " -"the real numbers. For example, :class:`fractions.Fraction` " -"implements :func:`hash` as follows::" +"the real numbers. For example, :class:`fractions.Fraction` implements :func:" +"`hash` as follows::" msgstr "" -#: ../../library/numbers.rst:96 msgid "" "def __hash__(self):\n" " if self.denominator == 1:\n" @@ -141,38 +120,31 @@ msgid "" " return hash((self.numerator, self.denominator))" msgstr "" -#: ../../library/numbers.rst:110 msgid "Adding More Numeric ABCs" msgstr "" -#: ../../library/numbers.rst:112 msgid "" "There are, of course, more possible ABCs for numbers, and this would be a " "poor hierarchy if it precluded the possibility of adding those. You can add " "``MyFoo`` between :class:`Complex` and :class:`Real` with::" msgstr "" -#: ../../library/numbers.rst:117 msgid "" "class MyFoo(Complex): ...\n" "MyFoo.register(Real)" msgstr "" -#: ../../library/numbers.rst:124 msgid "Implementing the arithmetic operations" msgstr "" -#: ../../library/numbers.rst:126 msgid "" "We want to implement the arithmetic operations so that mixed-mode operations " "either call an implementation whose author knew about the types of both " "arguments, or convert both to the nearest built in type and do the operation " -"there. For subtypes of :class:`Integral`, this means " -"that :meth:`~object.__add__` and :meth:`~object.__radd__` should be defined " -"as::" +"there. For subtypes of :class:`Integral`, this means that :meth:`~object." +"__add__` and :meth:`~object.__radd__` should be defined as::" msgstr "" -#: ../../library/numbers.rst:133 msgid "" "class MyIntegral(Integral):\n" "\n" @@ -199,65 +171,56 @@ msgid "" " return NotImplemented" msgstr "" -#: ../../library/numbers.rst:158 msgid "" -"There are 5 different cases for a mixed-type operation on subclasses " -"of :class:`Complex`. I'll refer to all of the above code that doesn't refer " -"to ``MyIntegral`` and ``OtherTypeIKnowAbout`` as \"boilerplate\". ``a`` will " -"be an instance of ``A``, which is a subtype of :class:`Complex` (``a : A <: " +"There are 5 different cases for a mixed-type operation on subclasses of :" +"class:`Complex`. I'll refer to all of the above code that doesn't refer to " +"``MyIntegral`` and ``OtherTypeIKnowAbout`` as \"boilerplate\". ``a`` will be " +"an instance of ``A``, which is a subtype of :class:`Complex` (``a : A <: " "Complex``), and ``b : B <: Complex``. I'll consider ``a + b``:" msgstr "" -#: ../../library/numbers.rst:165 msgid "" "If ``A`` defines an :meth:`~object.__add__` which accepts ``b``, all is well." msgstr "" -#: ../../library/numbers.rst:167 msgid "" "If ``A`` falls back to the boilerplate code, and it were to return a value " "from :meth:`~object.__add__`, we'd miss the possibility that ``B`` defines a " -"more intelligent :meth:`~object.__radd__`, so the boilerplate should " -"return :data:`NotImplemented` from :meth:`!__add__`. (Or ``A`` may not " -"implement :meth:`!__add__` at all.)" +"more intelligent :meth:`~object.__radd__`, so the boilerplate should return :" +"data:`NotImplemented` from :meth:`!__add__`. (Or ``A`` may not implement :" +"meth:`!__add__` at all.)" msgstr "" -#: ../../library/numbers.rst:173 msgid "" "Then ``B``'s :meth:`~object.__radd__` gets a chance. If it accepts ``a``, " "all is well." msgstr "" -#: ../../library/numbers.rst:175 msgid "" "If it falls back to the boilerplate, there are no more possible methods to " "try, so this is where the default implementation should live." msgstr "" -#: ../../library/numbers.rst:178 msgid "" "If ``B <: A``, Python tries ``B.__radd__`` before ``A.__add__``. This is ok, " "because it was implemented with knowledge of ``A``, so it can handle those " "instances before delegating to :class:`Complex`." msgstr "" -#: ../../library/numbers.rst:183 msgid "" "If ``A <: Complex`` and ``B <: Real`` without sharing any other knowledge, " -"then the appropriate shared operation is the one involving the built " -"in :class:`complex`, and both :meth:`~object.__radd__` s land there, so " -"``a+b == b+a``." +"then the appropriate shared operation is the one involving the built in :" +"class:`complex`, and both :meth:`~object.__radd__` s land there, so ``a+b == " +"b+a``." msgstr "" -#: ../../library/numbers.rst:188 msgid "" "Because most of the operations on any given type will be very similar, it " "can be useful to define a helper function which generates the forward and " -"reverse instances of any given operator. For " -"example, :class:`fractions.Fraction` uses::" +"reverse instances of any given operator. For example, :class:`fractions." +"Fraction` uses::" msgstr "" -#: ../../library/numbers.rst:193 msgid "" "def _operator_fallbacks(monomorphic_operator, fallback_operator):\n" " def forward(a, b):\n" diff --git a/library/numeric.po b/library/numeric.po index 2e646e5..103acf6 100644 --- a/library/numeric.po +++ b/library/numeric.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/numeric.rst:6 msgid "Numeric and Mathematical Modules" msgstr "" -#: ../../library/numeric.rst:8 msgid "" "The modules described in this chapter provide numeric and math-related " "functions and data types. The :mod:`numbers` module defines an abstract " "hierarchy of numeric types. The :mod:`math` and :mod:`cmath` modules contain " -"various mathematical functions for floating-point and complex numbers. " -"The :mod:`decimal` module supports exact representations of decimal numbers, " +"various mathematical functions for floating-point and complex numbers. The :" +"mod:`decimal` module supports exact representations of decimal numbers, " "using arbitrary precision arithmetic." msgstr "" -#: ../../library/numeric.rst:15 msgid "The following modules are documented in this chapter:" msgstr "" diff --git a/library/operator.po b/library/operator.po index f59d429..36f144c 100644 --- a/library/operator.po +++ b/library/operator.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,220 +18,175 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/operator.rst:2 msgid ":mod:`!operator` --- Standard operators as functions" msgstr "" -#: ../../library/operator.rst:9 msgid "**Source code:** :source:`Lib/operator.py`" msgstr "" -#: ../../library/operator.rst:18 msgid "" "The :mod:`operator` module exports a set of efficient functions " -"corresponding to the intrinsic operators of Python. For example, " -"``operator.add(x, y)`` is equivalent to the expression ``x+y``. Many " -"function names are those used for special methods, without the double " -"underscores. For backward compatibility, many of these have a variant with " -"the double underscores kept. The variants without the double underscores are " -"preferred for clarity." +"corresponding to the intrinsic operators of Python. For example, ``operator." +"add(x, y)`` is equivalent to the expression ``x+y``. Many function names are " +"those used for special methods, without the double underscores. For " +"backward compatibility, many of these have a variant with the double " +"underscores kept. The variants without the double underscores are preferred " +"for clarity." msgstr "" -#: ../../library/operator.rst:25 msgid "" "The functions fall into categories that perform object comparisons, logical " "operations, mathematical operations and sequence operations." msgstr "" -#: ../../library/operator.rst:28 msgid "" "The object comparison functions are useful for all objects, and are named " "after the rich comparison operators they support:" msgstr "" -#: ../../library/operator.rst:45 msgid "" "Perform \"rich comparisons\" between *a* and *b*. Specifically, ``lt(a, b)`` " "is equivalent to ``a < b``, ``le(a, b)`` is equivalent to ``a <= b``, " "``eq(a, b)`` is equivalent to ``a == b``, ``ne(a, b)`` is equivalent to ``a !" "= b``, ``gt(a, b)`` is equivalent to ``a > b`` and ``ge(a, b)`` is " "equivalent to ``a >= b``. Note that these functions can return any value, " -"which may or may not be interpretable as a Boolean value. " -"See :ref:`comparisons` for more information about rich comparisons." +"which may or may not be interpretable as a Boolean value. See :ref:" +"`comparisons` for more information about rich comparisons." msgstr "" -#: ../../library/operator.rst:54 msgid "" "The logical operations are also generally applicable to all objects, and " "support truth tests, identity tests, and boolean operations:" msgstr "" -#: ../../library/operator.rst:61 msgid "" "Return the outcome of :keyword:`not` *obj*. (Note that there is no :meth:`!" "__not__` method for object instances; only the interpreter core defines this " -"operation. The result is affected by the :meth:`~object.__bool__` " -"and :meth:`~object.__len__` methods.)" +"operation. The result is affected by the :meth:`~object.__bool__` and :meth:" +"`~object.__len__` methods.)" msgstr "" -#: ../../library/operator.rst:69 msgid "" "Return :const:`True` if *obj* is true, and :const:`False` otherwise. This " "is equivalent to using the :class:`bool` constructor." msgstr "" -#: ../../library/operator.rst:75 msgid "Return ``a is b``. Tests object identity." msgstr "" -#: ../../library/operator.rst:80 msgid "Return ``a is not b``. Tests object identity." msgstr "" -#: ../../library/operator.rst:85 msgid "Return ``a is None``. Tests object identity." msgstr "" -#: ../../library/operator.rst:92 msgid "Return ``a is not None``. Tests object identity." msgstr "" -#: ../../library/operator.rst:97 msgid "The mathematical and bitwise operations are the most numerous:" msgstr "" -#: ../../library/operator.rst:103 msgid "Return the absolute value of *obj*." msgstr "" -#: ../../library/operator.rst:109 msgid "Return ``a + b``, for *a* and *b* numbers." msgstr "" -#: ../../library/operator.rst:115 msgid "Return the bitwise and of *a* and *b*." msgstr "" -#: ../../library/operator.rst:121 msgid "Return ``a // b``." msgstr "" -#: ../../library/operator.rst:127 msgid "Return *a* converted to an integer. Equivalent to ``a.__index__()``." msgstr "" -#: ../../library/operator.rst:129 msgid "" "The result always has exact type :class:`int`. Previously, the result could " "have been an instance of a subclass of ``int``." msgstr "" -#: ../../library/operator.rst:139 msgid "" "Return the bitwise inverse of the number *obj*. This is equivalent to " "``~obj``." msgstr "" -#: ../../library/operator.rst:145 msgid "Return *a* shifted left by *b*." msgstr "" -#: ../../library/operator.rst:151 msgid "Return ``a % b``." msgstr "" -#: ../../library/operator.rst:157 msgid "Return ``a * b``, for *a* and *b* numbers." msgstr "" -#: ../../library/operator.rst:163 msgid "Return ``a @ b``." msgstr "" -#: ../../library/operator.rst:171 msgid "Return *obj* negated (``-obj``)." msgstr "" -#: ../../library/operator.rst:177 msgid "Return the bitwise or of *a* and *b*." msgstr "" -#: ../../library/operator.rst:183 msgid "Return *obj* positive (``+obj``)." msgstr "" -#: ../../library/operator.rst:189 msgid "Return ``a ** b``, for *a* and *b* numbers." msgstr "" -#: ../../library/operator.rst:195 msgid "Return *a* shifted right by *b*." msgstr "" -#: ../../library/operator.rst:201 msgid "Return ``a - b``." msgstr "" -#: ../../library/operator.rst:207 msgid "" "Return ``a / b`` where 2/3 is .66 rather than 0. This is also known as " "\"true\" division." msgstr "" -#: ../../library/operator.rst:214 msgid "Return the bitwise exclusive or of *a* and *b*." msgstr "" -#: ../../library/operator.rst:217 msgid "" "Operations which work with sequences (some of them with mappings too) " "include:" msgstr "" -#: ../../library/operator.rst:222 msgid "Return ``a + b`` for *a* and *b* sequences." msgstr "" -#: ../../library/operator.rst:228 msgid "Return the outcome of the test ``b in a``. Note the reversed operands." msgstr "" -#: ../../library/operator.rst:233 msgid "Return the number of occurrences of *b* in *a*." msgstr "" -#: ../../library/operator.rst:239 msgid "Remove the value of *a* at index *b*." msgstr "" -#: ../../library/operator.rst:245 msgid "Return the value of *a* at index *b*." msgstr "" -#: ../../library/operator.rst:250 msgid "Return the index of the first of occurrence of *b* in *a*." msgstr "" -#: ../../library/operator.rst:256 msgid "Set the value of *a* at index *b* to *c*." msgstr "" -#: ../../library/operator.rst:261 msgid "" "Return an estimated length for the object *obj*. First try to return its " "actual length, then an estimate using :meth:`object.__length_hint__`, and " "finally return the default value." msgstr "" -#: ../../library/operator.rst:268 msgid "The following operation works with callables:" msgstr "" -#: ../../library/operator.rst:273 msgid "Return ``obj(*args, **kwargs)``." msgstr "" -#: ../../library/operator.rst:278 msgid "" "The :mod:`operator` module also defines tools for generalized attribute and " "item lookups. These are useful for making fast field extractors as " @@ -243,35 +194,28 @@ msgid "" "other functions that expect a function argument." msgstr "" -#: ../../library/operator.rst:287 msgid "" "Return a callable object that fetches *attr* from its operand. If more than " "one attribute is requested, returns a tuple of attributes. The attribute " "names can also contain dots. For example:" msgstr "" -#: ../../library/operator.rst:291 msgid "After ``f = attrgetter('name')``, the call ``f(b)`` returns ``b.name``." msgstr "" -#: ../../library/operator.rst:293 msgid "" -"After ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns " -"``(b.name, b.date)``." +"After ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns ``(b." +"name, b.date)``." msgstr "" -#: ../../library/operator.rst:296 msgid "" "After ``f = attrgetter('name.first', 'name.last')``, the call ``f(b)`` " "returns ``(b.name.first, b.name.last)``." msgstr "" -#: ../../library/operator.rst:299 ../../library/operator.rst:331 -#: ../../library/operator.rst:379 msgid "Equivalent to::" msgstr "" -#: ../../library/operator.rst:301 msgid "" "def attrgetter(*items):\n" " if any(not isinstance(item, str) for item in items):\n" @@ -291,24 +235,20 @@ msgid "" " return obj" msgstr "" -#: ../../library/operator.rst:322 msgid "" "Return a callable object that fetches *item* from its operand using the " "operand's :meth:`~object.__getitem__` method. If multiple items are " "specified, returns a tuple of lookup values. For example:" msgstr "" -#: ../../library/operator.rst:326 msgid "After ``f = itemgetter(2)``, the call ``f(r)`` returns ``r[2]``." msgstr "" -#: ../../library/operator.rst:328 msgid "" "After ``g = itemgetter(2, 5, 3)``, the call ``g(r)`` returns ``(r[2], r[5], " "r[3])``." msgstr "" -#: ../../library/operator.rst:333 msgid "" "def itemgetter(*items):\n" " if len(items) == 1:\n" @@ -321,39 +261,32 @@ msgid "" " return g" msgstr "" -#: ../../library/operator.rst:343 msgid "" -"The items can be any type accepted by the " -"operand's :meth:`~object.__getitem__` method. Dictionaries accept " -"any :term:`hashable` value. Lists, tuples, and strings accept an index or a " -"slice:" +"The items can be any type accepted by the operand's :meth:`~object." +"__getitem__` method. Dictionaries accept any :term:`hashable` value. " +"Lists, tuples, and strings accept an index or a slice:" msgstr "" -#: ../../library/operator.rst:357 msgid "" "Example of using :func:`itemgetter` to retrieve specific fields from a tuple " "record:" msgstr "" -#: ../../library/operator.rst:370 msgid "" "Return a callable object that calls the method *name* on its operand. If " "additional arguments and/or keyword arguments are given, they will be given " "to the method as well. For example:" msgstr "" -#: ../../library/operator.rst:374 msgid "" "After ``f = methodcaller('name')``, the call ``f(b)`` returns ``b.name()``." msgstr "" -#: ../../library/operator.rst:376 msgid "" "After ``f = methodcaller('name', 'foo', bar=1)``, the call ``f(b)`` returns " "``b.name('foo', bar=1)``." msgstr "" -#: ../../library/operator.rst:381 msgid "" "def methodcaller(name, /, *args, **kwargs):\n" " def caller(obj):\n" @@ -361,451 +294,338 @@ msgid "" " return caller" msgstr "" -#: ../../library/operator.rst:390 msgid "Mapping Operators to Functions" msgstr "" -#: ../../library/operator.rst:392 msgid "" "This table shows how abstract operations correspond to operator symbols in " "the Python syntax and the functions in the :mod:`operator` module." msgstr "" -#: ../../library/operator.rst:396 msgid "Operation" msgstr "" -#: ../../library/operator.rst:396 msgid "Syntax" msgstr "" -#: ../../library/operator.rst:396 msgid "Function" msgstr "" -#: ../../library/operator.rst:398 msgid "Addition" msgstr "" -#: ../../library/operator.rst:398 msgid "``a + b``" msgstr "" -#: ../../library/operator.rst:398 msgid "``add(a, b)``" msgstr "" -#: ../../library/operator.rst:400 msgid "Concatenation" msgstr "" -#: ../../library/operator.rst:400 msgid "``seq1 + seq2``" msgstr "" -#: ../../library/operator.rst:400 msgid "``concat(seq1, seq2)``" msgstr "" -#: ../../library/operator.rst:402 msgid "Containment Test" msgstr "" -#: ../../library/operator.rst:402 msgid "``obj in seq``" msgstr "" -#: ../../library/operator.rst:402 msgid "``contains(seq, obj)``" msgstr "" -#: ../../library/operator.rst:404 ../../library/operator.rst:406 msgid "Division" msgstr "" -#: ../../library/operator.rst:404 msgid "``a / b``" msgstr "" -#: ../../library/operator.rst:404 msgid "``truediv(a, b)``" msgstr "" -#: ../../library/operator.rst:406 msgid "``a // b``" msgstr "" -#: ../../library/operator.rst:406 msgid "``floordiv(a, b)``" msgstr "" -#: ../../library/operator.rst:408 msgid "Bitwise And" msgstr "" -#: ../../library/operator.rst:408 msgid "``a & b``" msgstr "" -#: ../../library/operator.rst:408 msgid "``and_(a, b)``" msgstr "" -#: ../../library/operator.rst:410 msgid "Bitwise Exclusive Or" msgstr "" -#: ../../library/operator.rst:410 msgid "``a ^ b``" msgstr "" -#: ../../library/operator.rst:410 msgid "``xor(a, b)``" msgstr "" -#: ../../library/operator.rst:412 msgid "Bitwise Inversion" msgstr "" -#: ../../library/operator.rst:412 msgid "``~ a``" msgstr "" -#: ../../library/operator.rst:412 msgid "``invert(a)``" msgstr "" -#: ../../library/operator.rst:414 msgid "Bitwise Or" msgstr "" -#: ../../library/operator.rst:414 msgid "``a | b``" msgstr "" -#: ../../library/operator.rst:414 msgid "``or_(a, b)``" msgstr "" -#: ../../library/operator.rst:416 msgid "Exponentiation" msgstr "" -#: ../../library/operator.rst:416 msgid "``a ** b``" msgstr "" -#: ../../library/operator.rst:416 msgid "``pow(a, b)``" msgstr "" -#: ../../library/operator.rst:418 ../../library/operator.rst:420 -#: ../../library/operator.rst:422 ../../library/operator.rst:424 msgid "Identity" msgstr "" -#: ../../library/operator.rst:418 msgid "``a is b``" msgstr "" -#: ../../library/operator.rst:418 msgid "``is_(a, b)``" msgstr "" -#: ../../library/operator.rst:420 msgid "``a is not b``" msgstr "" -#: ../../library/operator.rst:420 msgid "``is_not(a, b)``" msgstr "" -#: ../../library/operator.rst:422 msgid "``a is None``" msgstr "" -#: ../../library/operator.rst:422 msgid "``is_none(a)``" msgstr "" -#: ../../library/operator.rst:424 msgid "``a is not None``" msgstr "" -#: ../../library/operator.rst:424 msgid "``is_not_none(a)``" msgstr "" -#: ../../library/operator.rst:426 msgid "Indexed Assignment" msgstr "" -#: ../../library/operator.rst:426 msgid "``obj[k] = v``" msgstr "" -#: ../../library/operator.rst:426 msgid "``setitem(obj, k, v)``" msgstr "" -#: ../../library/operator.rst:428 msgid "Indexed Deletion" msgstr "" -#: ../../library/operator.rst:428 msgid "``del obj[k]``" msgstr "" -#: ../../library/operator.rst:428 msgid "``delitem(obj, k)``" msgstr "" -#: ../../library/operator.rst:430 msgid "Indexing" msgstr "" -#: ../../library/operator.rst:430 msgid "``obj[k]``" msgstr "" -#: ../../library/operator.rst:430 msgid "``getitem(obj, k)``" msgstr "" -#: ../../library/operator.rst:432 msgid "Left Shift" msgstr "" -#: ../../library/operator.rst:432 msgid "``a << b``" msgstr "" -#: ../../library/operator.rst:432 msgid "``lshift(a, b)``" msgstr "" -#: ../../library/operator.rst:434 msgid "Modulo" msgstr "" -#: ../../library/operator.rst:434 msgid "``a % b``" msgstr "" -#: ../../library/operator.rst:434 msgid "``mod(a, b)``" msgstr "" -#: ../../library/operator.rst:436 msgid "Multiplication" msgstr "" -#: ../../library/operator.rst:436 msgid "``a * b``" msgstr "" -#: ../../library/operator.rst:436 msgid "``mul(a, b)``" msgstr "" -#: ../../library/operator.rst:438 msgid "Matrix Multiplication" msgstr "" -#: ../../library/operator.rst:438 msgid "``a @ b``" msgstr "" -#: ../../library/operator.rst:438 msgid "``matmul(a, b)``" msgstr "" -#: ../../library/operator.rst:440 msgid "Negation (Arithmetic)" msgstr "" -#: ../../library/operator.rst:440 msgid "``- a``" msgstr "" -#: ../../library/operator.rst:440 msgid "``neg(a)``" msgstr "" -#: ../../library/operator.rst:442 msgid "Negation (Logical)" msgstr "" -#: ../../library/operator.rst:442 msgid "``not a``" msgstr "" -#: ../../library/operator.rst:442 msgid "``not_(a)``" msgstr "" -#: ../../library/operator.rst:444 msgid "Positive" msgstr "" -#: ../../library/operator.rst:444 msgid "``+ a``" msgstr "" -#: ../../library/operator.rst:444 msgid "``pos(a)``" msgstr "" -#: ../../library/operator.rst:446 msgid "Right Shift" msgstr "" -#: ../../library/operator.rst:446 msgid "``a >> b``" msgstr "" -#: ../../library/operator.rst:446 msgid "``rshift(a, b)``" msgstr "" -#: ../../library/operator.rst:448 msgid "Slice Assignment" msgstr "" -#: ../../library/operator.rst:448 msgid "``seq[i:j] = values``" msgstr "" -#: ../../library/operator.rst:448 msgid "``setitem(seq, slice(i, j), values)``" msgstr "" -#: ../../library/operator.rst:450 msgid "Slice Deletion" msgstr "" -#: ../../library/operator.rst:450 msgid "``del seq[i:j]``" msgstr "" -#: ../../library/operator.rst:450 msgid "``delitem(seq, slice(i, j))``" msgstr "" -#: ../../library/operator.rst:452 msgid "Slicing" msgstr "" -#: ../../library/operator.rst:452 msgid "``seq[i:j]``" msgstr "" -#: ../../library/operator.rst:452 msgid "``getitem(seq, slice(i, j))``" msgstr "" -#: ../../library/operator.rst:454 msgid "String Formatting" msgstr "" -#: ../../library/operator.rst:454 msgid "``s % obj``" msgstr "" -#: ../../library/operator.rst:454 msgid "``mod(s, obj)``" msgstr "" -#: ../../library/operator.rst:456 msgid "Subtraction" msgstr "" -#: ../../library/operator.rst:456 msgid "``a - b``" msgstr "" -#: ../../library/operator.rst:456 msgid "``sub(a, b)``" msgstr "" -#: ../../library/operator.rst:458 msgid "Truth Test" msgstr "" -#: ../../library/operator.rst:458 msgid "``obj``" -msgstr "``obj``" +msgstr "" -#: ../../library/operator.rst:458 msgid "``truth(obj)``" msgstr "" -#: ../../library/operator.rst:460 ../../library/operator.rst:462 -#: ../../library/operator.rst:468 ../../library/operator.rst:470 msgid "Ordering" msgstr "" -#: ../../library/operator.rst:460 msgid "``a < b``" -msgstr "``a < b``" +msgstr "" -#: ../../library/operator.rst:460 msgid "``lt(a, b)``" msgstr "" -#: ../../library/operator.rst:462 msgid "``a <= b``" -msgstr "``a <= b``" +msgstr "" -#: ../../library/operator.rst:462 msgid "``le(a, b)``" msgstr "" -#: ../../library/operator.rst:464 msgid "Equality" msgstr "" -#: ../../library/operator.rst:464 msgid "``a == b``" msgstr "" -#: ../../library/operator.rst:464 msgid "``eq(a, b)``" msgstr "" -#: ../../library/operator.rst:466 msgid "Difference" msgstr "" -#: ../../library/operator.rst:466 msgid "``a != b``" msgstr "" -#: ../../library/operator.rst:466 msgid "``ne(a, b)``" msgstr "" -#: ../../library/operator.rst:468 msgid "``a >= b``" -msgstr "``a >= b``" +msgstr "" -#: ../../library/operator.rst:468 msgid "``ge(a, b)``" msgstr "" -#: ../../library/operator.rst:470 msgid "``a > b``" -msgstr "``a > b``" +msgstr "" -#: ../../library/operator.rst:470 msgid "``gt(a, b)``" msgstr "" -#: ../../library/operator.rst:474 msgid "In-place Operators" msgstr "" -#: ../../library/operator.rst:476 msgid "" "Many operations have an \"in-place\" version. Listed below are functions " "providing a more primitive access to in-place operators than the usual " @@ -815,7 +635,6 @@ msgid "" "y``." msgstr "" -#: ../../library/operator.rst:483 msgid "" "In those examples, note that when an in-place method is called, the " "computation and assignment are performed in two separate steps. The in-" @@ -823,71 +642,55 @@ msgid "" "method. The second step, assignment, is not handled." msgstr "" -#: ../../library/operator.rst:488 msgid "" "For immutable targets such as strings, numbers, and tuples, the updated " "value is computed, but not assigned back to the input variable:" msgstr "" -#: ../../library/operator.rst:497 msgid "" "For mutable targets such as lists and dictionaries, the in-place method will " "perform the update, so no subsequent assignment is necessary:" msgstr "" -#: ../../library/operator.rst:509 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." msgstr "" -#: ../../library/operator.rst:515 msgid "``a = iand(a, b)`` is equivalent to ``a &= b``." msgstr "" -#: ../../library/operator.rst:521 msgid "" "``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." msgstr "" -#: ../../library/operator.rst:527 msgid "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." msgstr "" -#: ../../library/operator.rst:533 msgid "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." msgstr "" -#: ../../library/operator.rst:539 msgid "``a = imod(a, b)`` is equivalent to ``a %= b``." msgstr "" -#: ../../library/operator.rst:545 msgid "``a = imul(a, b)`` is equivalent to ``a *= b``." msgstr "" -#: ../../library/operator.rst:551 msgid "``a = imatmul(a, b)`` is equivalent to ``a @= b``." msgstr "" -#: ../../library/operator.rst:559 msgid "``a = ior(a, b)`` is equivalent to ``a |= b``." msgstr "" -#: ../../library/operator.rst:565 msgid "``a = ipow(a, b)`` is equivalent to ``a **= b``." msgstr "" -#: ../../library/operator.rst:571 msgid "``a = irshift(a, b)`` is equivalent to ``a >>= b``." msgstr "" -#: ../../library/operator.rst:577 msgid "``a = isub(a, b)`` is equivalent to ``a -= b``." msgstr "" -#: ../../library/operator.rst:583 msgid "``a = itruediv(a, b)`` is equivalent to ``a /= b``." msgstr "" -#: ../../library/operator.rst:589 msgid "``a = ixor(a, b)`` is equivalent to ``a ^= b``." msgstr "" diff --git a/library/optparse.po b/library/optparse.po index 4759084..b52e93c 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,30 +22,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/optparse.rst:2 msgid ":mod:`!optparse` --- Parser for command line options" msgstr "" -#: ../../library/optparse.rst:10 msgid "**Source code:** :source:`Lib/optparse.py`" msgstr "" -#: ../../library/optparse.rst:17 msgid "Choosing an argument parsing library" msgstr "" -#: ../../library/optparse.rst:19 msgid "The standard library includes three argument parsing libraries:" msgstr "" -#: ../../library/optparse.rst:21 msgid "" ":mod:`getopt`: a module that closely mirrors the procedural C ``getopt`` " "API. Included in the standard library since before the initial Python 1.0 " "release." msgstr "" -#: ../../library/optparse.rst:23 msgid "" ":mod:`optparse`: a declarative replacement for ``getopt`` that provides " "equivalent functionality without requiring each application to implement its " @@ -53,7 +47,6 @@ msgid "" "the Python 2.3 release." msgstr "" -#: ../../library/optparse.rst:27 msgid "" ":mod:`argparse`: a more opinionated alternative to ``optparse`` that " "provides more functionality by default, at the expense of reduced " @@ -62,15 +55,13 @@ msgid "" "releases." msgstr "" -#: ../../library/optparse.rst:32 msgid "" -"In the absence of more specific argument parsing design " -"constraints, :mod:`argparse` is the recommended choice for implementing " -"command line applications, as it offers the highest level of baseline " -"functionality with the least application level code." +"In the absence of more specific argument parsing design constraints, :mod:" +"`argparse` is the recommended choice for implementing command line " +"applications, as it offers the highest level of baseline functionality with " +"the least application level code." msgstr "" -#: ../../library/optparse.rst:36 msgid "" ":mod:`getopt` is retained almost entirely for backwards compatibility " "reasons. However, it also serves a niche use case as a tool for prototyping " @@ -78,61 +69,52 @@ msgid "" "applications." msgstr "" -#: ../../library/optparse.rst:40 msgid "" ":mod:`optparse` should be considered as an alternative to :mod:`argparse` in " "the following cases:" msgstr "" -#: ../../library/optparse.rst:43 msgid "" "an application is already using :mod:`optparse` and doesn't want to risk the " "subtle behavioural changes that may arise when migrating to :mod:`argparse`" msgstr "" -#: ../../library/optparse.rst:45 msgid "" "the application requires additional control over the way options and " "positional parameters are interleaved on the command line (including the " "ability to disable the interleaving feature completely)" msgstr "" -#: ../../library/optparse.rst:48 msgid "" "the application requires additional control over the incremental parsing of " "command line elements (while ``argparse`` does support this, the exact way " "it works in practice is undesirable for some use cases)" msgstr "" -#: ../../library/optparse.rst:51 msgid "" "the application requires additional control over the handling of options " "which accept parameter values that may start with ``-`` (such as delegated " "options to be passed to invoked subprocesses)" msgstr "" -#: ../../library/optparse.rst:54 msgid "" "the application requires some other command line parameter processing " "behavior which ``argparse`` does not support, but which can be implemented " "in terms of the lower level interface offered by ``optparse``" msgstr "" -#: ../../library/optparse.rst:58 msgid "" "These considerations also mean that :mod:`optparse` is likely to provide a " "better foundation for library authors writing third party command line " "argument processing libraries." msgstr "" -#: ../../library/optparse.rst:62 msgid "" "As a concrete example, consider the following two command line argument " "parsing configurations, the first using ``optparse``, and the second using " "``argparse``:" msgstr "" -#: ../../library/optparse.rst:66 msgid "" "import optparse\n" "\n" @@ -144,7 +126,6 @@ msgid "" " process(args, output=opts.output, verbose=opts.verbose)" msgstr "" -#: ../../library/optparse.rst:77 msgid "" "import argparse\n" "\n" @@ -157,7 +138,6 @@ msgid "" " process(args.rest, output=args.output, verbose=args.verbose)" msgstr "" -#: ../../library/optparse.rst:89 msgid "" "The most obvious difference is that in the ``optparse`` version, the non-" "option arguments are processed separately by the application after the " @@ -165,14 +145,12 @@ msgid "" "arguments are declared and processed in the same way as the named options." msgstr "" -#: ../../library/optparse.rst:94 msgid "" "However, the ``argparse`` version will also handle some parameter " "combination differently from the way the ``optparse`` version would handle " "them. For example (amongst other differences):" msgstr "" -#: ../../library/optparse.rst:98 msgid "" "supplying ``-o -v`` gives ``output=\"-v\"`` and ``verbose=False`` when using " "``optparse``, but a usage error with ``argparse`` (complaining that no value " @@ -180,7 +158,6 @@ msgid "" "meaning the verbosity flag)" msgstr "" -#: ../../library/optparse.rst:102 msgid "" "similarly, supplying ``-o --`` gives ``output=\"--\"`` and ``args=()`` when " "using ``optparse``, but a usage error with ``argparse`` (also complaining " @@ -189,54 +166,46 @@ msgid "" "values as positional arguments)" msgstr "" -#: ../../library/optparse.rst:107 msgid "" "supplying ``-o=foo`` gives ``output=\"=foo\"`` when using ``optparse``, but " "gives ``output=\"foo\"`` with ``argparse`` (since ``=`` is special cased as " "an alternative separator for option parameter values)" msgstr "" -#: ../../library/optparse.rst:111 msgid "" "Whether these differing behaviors in the ``argparse`` version are considered " "desirable or a problem will depend on the specific command line application " "use case." msgstr "" -#: ../../library/optparse.rst:117 msgid "" ":pypi:`click` is a third party argument processing library (originally based " "on ``optparse``), which allows command line applications to be developed as " "a set of decorated command implementation functions." msgstr "" -#: ../../library/optparse.rst:121 msgid "" "Other third party libraries, such as :pypi:`typer` or :pypi:`msgspec-click`, " "allow command line interfaces to be specified in ways that more effectively " "integrate with static checking of Python type annotations." msgstr "" -#: ../../library/optparse.rst:127 msgid "Introduction" -msgstr "Bevezetés" +msgstr "" -#: ../../library/optparse.rst:129 msgid "" ":mod:`optparse` is a more convenient, flexible, and powerful library for " -"parsing command-line options than the minimalist :mod:`getopt` " -"module. :mod:`optparse` uses a more declarative style of command-line " -"parsing: you create an instance of :class:`OptionParser`, populate it with " -"options, and parse the command line. :mod:`optparse` allows users to specify " -"options in the conventional GNU/POSIX syntax, and additionally generates " -"usage and help messages for you." +"parsing command-line options than the minimalist :mod:`getopt` module. :mod:" +"`optparse` uses a more declarative style of command-line parsing: you create " +"an instance of :class:`OptionParser`, populate it with options, and parse " +"the command line. :mod:`optparse` allows users to specify options in the " +"conventional GNU/POSIX syntax, and additionally generates usage and help " +"messages for you." msgstr "" -#: ../../library/optparse.rst:137 msgid "Here's an example of using :mod:`optparse` in a simple script::" msgstr "" -#: ../../library/optparse.rst:139 msgid "" "from optparse import OptionParser\n" "...\n" @@ -250,17 +219,14 @@ msgid "" "(options, args) = parser.parse_args()" msgstr "" -#: ../../library/optparse.rst:150 msgid "" "With these few lines of code, users of your script can now do the \"usual " "thing\" on the command-line, for example::" msgstr "" -#: ../../library/optparse.rst:153 msgid " --file=outfile -q" msgstr "" -#: ../../library/optparse.rst:155 msgid "" "As it parses the command line, :mod:`optparse` sets attributes of the " "``options`` object returned by :meth:`~OptionParser.parse_args` based on " @@ -273,7 +239,6 @@ msgid "" "the above example::" msgstr "" -#: ../../library/optparse.rst:164 msgid "" " -f outfile --quiet\n" " --quiet --file outfile\n" @@ -281,22 +246,18 @@ msgid "" " -qfoutfile" msgstr "" -#: ../../library/optparse.rst:169 msgid "Additionally, users can run one of the following ::" msgstr "" -#: ../../library/optparse.rst:171 msgid "" " -h\n" " --help" msgstr "" -#: ../../library/optparse.rst:174 msgid "" "and :mod:`optparse` will print out a brief summary of your script's options:" msgstr "" -#: ../../library/optparse.rst:176 msgid "" "Usage: [options]\n" "\n" @@ -306,17 +267,14 @@ msgid "" " -q, --quiet don't print status messages to stdout" msgstr "" -#: ../../library/optparse.rst:185 msgid "" "where the value of *yourscript* is determined at runtime (normally from " "``sys.argv[0]``)." msgstr "" -#: ../../library/optparse.rst:192 msgid "Background" msgstr "" -#: ../../library/optparse.rst:194 msgid "" ":mod:`optparse` was explicitly designed to encourage the creation of " "programs with straightforward command-line interfaces that follow the " @@ -327,15 +285,12 @@ msgid "" "to acquaint yourself with them." msgstr "" -#: ../../library/optparse.rst:205 msgid "Terminology" msgstr "" -#: ../../library/optparse.rst:207 msgid "argument" msgstr "" -#: ../../library/optparse.rst:208 msgid "" "a string entered on the command-line, and passed by the shell to ``execl()`` " "or ``execv()``. In Python, arguments are elements of ``sys.argv[1:]`` " @@ -343,60 +298,51 @@ msgid "" "also use the term \"word\"." msgstr "" -#: ../../library/optparse.rst:213 msgid "" -"It is occasionally desirable to substitute an argument list other than " -"``sys.argv[1:]``, so you should read \"argument\" as \"an element of " -"``sys.argv[1:]``, or of some other list provided as a substitute for " -"``sys.argv[1:]``\"." +"It is occasionally desirable to substitute an argument list other than ``sys." +"argv[1:]``, so you should read \"argument\" as \"an element of ``sys." +"argv[1:]``, or of some other list provided as a substitute for ``sys." +"argv[1:]``\"." msgstr "" -#: ../../library/optparse.rst:218 msgid "option" msgstr "" -#: ../../library/optparse.rst:219 msgid "" "an argument used to supply extra information to guide or customize the " "execution of a program. There are many different syntaxes for options; the " -"traditional Unix syntax is a hyphen (\"-\") followed by a single letter, " -"e.g. ``-x`` or ``-F``. Also, traditional Unix syntax allows multiple " -"options to be merged into a single argument, e.g. ``-x -F`` is equivalent to " -"``-xF``. The GNU project introduced ``--`` followed by a series of hyphen-" +"traditional Unix syntax is a hyphen (\"-\") followed by a single letter, e." +"g. ``-x`` or ``-F``. Also, traditional Unix syntax allows multiple options " +"to be merged into a single argument, e.g. ``-x -F`` is equivalent to ``-" +"xF``. The GNU project introduced ``--`` followed by a series of hyphen-" "separated words, e.g. ``--file`` or ``--dry-run``. These are the only two " "option syntaxes provided by :mod:`optparse`." msgstr "" -#: ../../library/optparse.rst:228 msgid "Some other option syntaxes that the world has seen include:" msgstr "" -#: ../../library/optparse.rst:230 msgid "" "a hyphen followed by a few letters, e.g. ``-pf`` (this is *not* the same as " "multiple options merged into a single argument)" msgstr "" -#: ../../library/optparse.rst:233 msgid "" "a hyphen followed by a whole word, e.g. ``-file`` (this is technically " "equivalent to the previous syntax, but they aren't usually seen in the same " "program)" msgstr "" -#: ../../library/optparse.rst:237 msgid "" "a plus sign followed by a single letter, or a few letters, or a word, e.g. " "``+f``, ``+rgb``" msgstr "" -#: ../../library/optparse.rst:240 msgid "" "a slash followed by a letter, or a few letters, or a word, e.g. ``/f``, ``/" "file``" msgstr "" -#: ../../library/optparse.rst:243 msgid "" "These option syntaxes are not supported by :mod:`optparse`, and they never " "will be. This is deliberate: the first three are non-standard on any " @@ -404,35 +350,29 @@ msgid "" "Windows or certain legacy platforms (e.g. VMS, MS-DOS)." msgstr "" -#: ../../library/optparse.rst:248 msgid "option argument" msgstr "" -#: ../../library/optparse.rst:249 msgid "" "an argument that follows an option, is closely associated with that option, " -"and is consumed from the argument list when that option is. " -"With :mod:`optparse`, option arguments may either be in a separate argument " -"from their option:" +"and is consumed from the argument list when that option is. With :mod:" +"`optparse`, option arguments may either be in a separate argument from their " +"option:" msgstr "" -#: ../../library/optparse.rst:254 msgid "" "-f foo\n" "--file foo" msgstr "" -#: ../../library/optparse.rst:259 msgid "or included in the same argument:" msgstr "" -#: ../../library/optparse.rst:261 msgid "" "-ffoo\n" "--file=foo" msgstr "" -#: ../../library/optparse.rst:266 msgid "" "Typically, a given option either takes an argument or it doesn't. Lots of " "people want an \"optional option arguments\" feature, meaning that some " @@ -443,22 +383,18 @@ msgid "" "support this feature." msgstr "" -#: ../../library/optparse.rst:274 msgid "positional argument" msgstr "" -#: ../../library/optparse.rst:275 msgid "" "something leftover in the argument list after options have been parsed, i.e. " "after options and their arguments have been parsed and removed from the " "argument list." msgstr "" -#: ../../library/optparse.rst:279 msgid "required option" msgstr "" -#: ../../library/optparse.rst:280 msgid "" "an option that must be supplied on the command-line; note that the phrase " "\"required option\" is self-contradictory in English. :mod:`optparse` " @@ -466,26 +402,21 @@ msgid "" "much help at it either." msgstr "" -#: ../../library/optparse.rst:285 msgid "For example, consider this hypothetical command-line::" msgstr "" -#: ../../library/optparse.rst:287 msgid "prog -v --report report.txt foo bar" msgstr "" -#: ../../library/optparse.rst:289 msgid "" "``-v`` and ``--report`` are both options. Assuming that ``--report`` takes " "one argument, ``report.txt`` is an option argument. ``foo`` and ``bar`` are " "positional arguments." msgstr "" -#: ../../library/optparse.rst:297 msgid "What are options for?" msgstr "" -#: ../../library/optparse.rst:299 msgid "" "Options are used to provide extra information to tune or customize the " "execution of a program. In case it wasn't clear, options are usually " @@ -497,7 +428,6 @@ msgid "" "interfaces.)" msgstr "" -#: ../../library/optparse.rst:307 msgid "" "Lots of people want their programs to have \"required options\". Think " "about it. If it's required, then it's *not optional*! If there is a piece " @@ -505,7 +435,6 @@ msgid "" "successfully, that's what positional arguments are for." msgstr "" -#: ../../library/optparse.rst:312 msgid "" "As an example of good command-line interface design, consider the humble " "``cp`` utility, for copying files. It doesn't make much sense to try to " @@ -514,13 +443,11 @@ msgid "" "useful syntax that does not require any options at all::" msgstr "" -#: ../../library/optparse.rst:318 msgid "" "cp SOURCE DEST\n" "cp SOURCE ... DEST-DIR" msgstr "" -#: ../../library/optparse.rst:321 msgid "" "You can get pretty far with just that. Most ``cp`` implementations provide " "a bunch of options to tweak exactly how the files are copied: you can " @@ -530,17 +457,14 @@ msgid "" "files to another directory." msgstr "" -#: ../../library/optparse.rst:332 msgid "What are positional arguments for?" msgstr "" -#: ../../library/optparse.rst:334 msgid "" "Positional arguments are for those pieces of information that your program " "absolutely, positively requires to run." msgstr "" -#: ../../library/optparse.rst:337 msgid "" "A good user interface should have as few absolute requirements as possible. " "If your program requires 17 distinct pieces of information in order to run " @@ -551,7 +475,6 @@ msgid "" "most of them will simply give up." msgstr "" -#: ../../library/optparse.rst:345 msgid "" "In short, try to minimize the amount of information that users are " "absolutely required to supply---use sensible defaults whenever possible. Of " @@ -564,95 +487,78 @@ msgid "" "make your code much harder to maintain." msgstr "" -#: ../../library/optparse.rst:358 msgid "Tutorial" msgstr "" -#: ../../library/optparse.rst:360 msgid "" "While :mod:`optparse` is quite flexible and powerful, it's also " "straightforward to use in most cases. This section covers the code patterns " "that are common to any :mod:`optparse`\\ -based program." msgstr "" -#: ../../library/optparse.rst:364 msgid "" "First, you need to import the OptionParser class; then, early in the main " "program, create an OptionParser instance::" msgstr "" -#: ../../library/optparse.rst:367 msgid "" "from optparse import OptionParser\n" "...\n" "parser = OptionParser()" msgstr "" -#: ../../library/optparse.rst:371 msgid "Then you can start defining options. The basic syntax is::" msgstr "" -#: ../../library/optparse.rst:373 msgid "" "parser.add_option(opt_str, ...,\n" " attr=value, ...)" msgstr "" -#: ../../library/optparse.rst:376 msgid "" "Each option has one or more option strings, such as ``-f`` or ``--file``, " "and several option attributes that tell :mod:`optparse` what to expect and " "what to do when it encounters that option on the command line." msgstr "" -#: ../../library/optparse.rst:380 msgid "" "Typically, each option will have one short option string and one long option " "string, e.g.::" msgstr "" -#: ../../library/optparse.rst:383 msgid "parser.add_option(\"-f\", \"--file\", ...)" msgstr "" -#: ../../library/optparse.rst:385 msgid "" "You're free to define as many short option strings and as many long option " "strings as you like (including zero), as long as there is at least one " "option string overall." msgstr "" -#: ../../library/optparse.rst:389 msgid "" "The option strings passed to :meth:`OptionParser.add_option` are effectively " "labels for the option defined by that call. For brevity, we will frequently " -"refer to *encountering an option* on the command line; in " -"reality, :mod:`optparse` encounters *option strings* and looks up options " -"from them." +"refer to *encountering an option* on the command line; in reality, :mod:" +"`optparse` encounters *option strings* and looks up options from them." msgstr "" -#: ../../library/optparse.rst:395 msgid "" "Once all of your options are defined, instruct :mod:`optparse` to parse your " "program's command line::" msgstr "" -#: ../../library/optparse.rst:398 msgid "(options, args) = parser.parse_args()" msgstr "" -#: ../../library/optparse.rst:400 msgid "" -"(If you like, you can pass a custom argument list " -"to :meth:`~OptionParser.parse_args`, but that's rarely necessary: by default " -"it uses ``sys.argv[1:]``.)" +"(If you like, you can pass a custom argument list to :meth:`~OptionParser." +"parse_args`, but that's rarely necessary: by default it uses ``sys." +"argv[1:]``.)" msgstr "" -#: ../../library/optparse.rst:403 msgid ":meth:`~OptionParser.parse_args` returns two values:" msgstr "" -#: ../../library/optparse.rst:405 msgid "" "``options``, an object containing values for all of your options---e.g. if " "``--file`` takes a single string argument, then ``options.file`` will be the " @@ -660,71 +566,59 @@ msgid "" "option" msgstr "" -#: ../../library/optparse.rst:410 msgid "" "``args``, the list of positional arguments leftover after parsing options" msgstr "" -#: ../../library/optparse.rst:412 msgid "" "This tutorial section only covers the four most important option " -"attributes: :attr:`~Option.action`, :attr:`~Option.type`, :attr:`~Option.dest` " -"(destination), and :attr:`~Option.help`. Of these, :attr:`~Option.action` is " -"the most fundamental." +"attributes: :attr:`~Option.action`, :attr:`~Option.type`, :attr:`~Option." +"dest` (destination), and :attr:`~Option.help`. Of these, :attr:`~Option." +"action` is the most fundamental." msgstr "" -#: ../../library/optparse.rst:421 msgid "Understanding option actions" msgstr "" -#: ../../library/optparse.rst:423 msgid "" "Actions tell :mod:`optparse` what to do when it encounters an option on the " -"command line. There is a fixed set of actions hard-coded " -"into :mod:`optparse`; adding new actions is an advanced topic covered in " -"section :ref:`optparse-extending-optparse`. Most actions " -"tell :mod:`optparse` to store a value in some variable---for example, take a " -"string from the command line and store it in an attribute of ``options``." +"command line. There is a fixed set of actions hard-coded into :mod:" +"`optparse`; adding new actions is an advanced topic covered in section :ref:" +"`optparse-extending-optparse`. Most actions tell :mod:`optparse` to store a " +"value in some variable---for example, take a string from the command line " +"and store it in an attribute of ``options``." msgstr "" -#: ../../library/optparse.rst:430 msgid "" "If you don't specify an option action, :mod:`optparse` defaults to ``store``." msgstr "" -#: ../../library/optparse.rst:436 msgid "The store action" msgstr "" -#: ../../library/optparse.rst:438 msgid "" "The most common option action is ``store``, which tells :mod:`optparse` to " "take the next argument (or the remainder of the current argument), ensure " "that it is of the correct type, and store it to your chosen destination." msgstr "" -#: ../../library/optparse.rst:442 msgid "For example::" msgstr "" -#: ../../library/optparse.rst:444 msgid "" "parser.add_option(\"-f\", \"--file\",\n" " action=\"store\", type=\"string\", dest=\"filename\")" msgstr "" -#: ../../library/optparse.rst:447 msgid "" "Now let's make up a fake command line and ask :mod:`optparse` to parse it::" msgstr "" -#: ../../library/optparse.rst:449 msgid "" "args = [\"-f\", \"foo.txt\"]\n" "(options, args) = parser.parse_args(args)" msgstr "" -#: ../../library/optparse.rst:452 msgid "" "When :mod:`optparse` sees the option string ``-f``, it consumes the next " "argument, ``foo.txt``, and stores it in ``options.filename``. So, after " @@ -732,51 +626,42 @@ msgid "" "``\"foo.txt\"``." msgstr "" -#: ../../library/optparse.rst:456 msgid "" "Some other option types supported by :mod:`optparse` are ``int`` and " "``float``. Here's an option that expects an integer argument::" msgstr "" -#: ../../library/optparse.rst:459 msgid "parser.add_option(\"-n\", type=\"int\", dest=\"num\")" msgstr "" -#: ../../library/optparse.rst:461 msgid "" "Note that this option has no long option string, which is perfectly " "acceptable. Also, there's no explicit action, since the default is ``store``." msgstr "" -#: ../../library/optparse.rst:464 msgid "" "Let's parse another fake command-line. This time, we'll jam the option " "argument right up against the option: since ``-n42`` (one argument) is " "equivalent to ``-n 42`` (two arguments), the code ::" msgstr "" -#: ../../library/optparse.rst:468 msgid "" "(options, args) = parser.parse_args([\"-n42\"])\n" "print(options.num)" msgstr "" -#: ../../library/optparse.rst:471 msgid "will print ``42``." msgstr "" -#: ../../library/optparse.rst:473 msgid "" "If you don't specify a type, :mod:`optparse` assumes ``string``. Combined " "with the fact that the default action is ``store``, that means our first " "example can be a lot shorter::" msgstr "" -#: ../../library/optparse.rst:477 msgid "parser.add_option(\"-f\", \"--file\", dest=\"filename\")" msgstr "" -#: ../../library/optparse.rst:479 msgid "" "If you don't supply a destination, :mod:`optparse` figures out a sensible " "default from the option strings: if the first long option string is ``--foo-" @@ -785,17 +670,14 @@ msgid "" "default destination for ``-f`` is ``f``." msgstr "" -#: ../../library/optparse.rst:485 msgid "" ":mod:`optparse` also includes the built-in ``complex`` type. Adding types " "is covered in section :ref:`optparse-extending-optparse`." msgstr "" -#: ../../library/optparse.rst:492 msgid "Handling boolean (flag) options" msgstr "" -#: ../../library/optparse.rst:494 msgid "" "Flag options---set a variable to true or false when a particular option is " "seen---are quite common. :mod:`optparse` supports them with two separate " @@ -803,77 +685,61 @@ msgid "" "``verbose`` flag that is turned on with ``-v`` and off with ``-q``::" msgstr "" -#: ../../library/optparse.rst:499 msgid "" "parser.add_option(\"-v\", action=\"store_true\", dest=\"verbose\")\n" "parser.add_option(\"-q\", action=\"store_false\", dest=\"verbose\")" msgstr "" -#: ../../library/optparse.rst:502 msgid "" "Here we have two different options with the same destination, which is " "perfectly OK. (It just means you have to be a bit careful when setting " "default values---see below.)" msgstr "" -#: ../../library/optparse.rst:506 msgid "" "When :mod:`optparse` encounters ``-v`` on the command line, it sets " -"``options.verbose`` to ``True``; when it encounters ``-q``, " -"``options.verbose`` is set to ``False``." +"``options.verbose`` to ``True``; when it encounters ``-q``, ``options." +"verbose`` is set to ``False``." msgstr "" -#: ../../library/optparse.rst:514 msgid "Other actions" msgstr "" -#: ../../library/optparse.rst:516 msgid "Some other actions supported by :mod:`optparse` are:" msgstr "" -#: ../../library/optparse.rst:518 ../../library/optparse.rst:1040 msgid "``\"store_const\"``" msgstr "" -#: ../../library/optparse.rst:519 ../../library/optparse.rst:1041 msgid "store a constant value, pre-set via :attr:`Option.const`" msgstr "" -#: ../../library/optparse.rst:521 ../../library/optparse.rst:1049 msgid "``\"append\"``" msgstr "" -#: ../../library/optparse.rst:522 ../../library/optparse.rst:1050 msgid "append this option's argument to a list" msgstr "" -#: ../../library/optparse.rst:524 ../../library/optparse.rst:1055 msgid "``\"count\"``" msgstr "" -#: ../../library/optparse.rst:525 ../../library/optparse.rst:1056 msgid "increment a counter by one" msgstr "" -#: ../../library/optparse.rst:527 ../../library/optparse.rst:1058 msgid "``\"callback\"``" msgstr "" -#: ../../library/optparse.rst:528 ../../library/optparse.rst:1059 msgid "call a specified function" msgstr "" -#: ../../library/optparse.rst:530 msgid "" -"These are covered in section :ref:`optparse-reference-guide`, and " -"section :ref:`optparse-option-callbacks`." +"These are covered in section :ref:`optparse-reference-guide`, and section :" +"ref:`optparse-option-callbacks`." msgstr "" -#: ../../library/optparse.rst:537 msgid "Default values" msgstr "" -#: ../../library/optparse.rst:539 msgid "" "All of the above examples involve setting some variable (the " "\"destination\") when certain command-line options are seen. What happens " @@ -883,38 +749,32 @@ msgid "" "destination, which is assigned before the command line is parsed." msgstr "" -#: ../../library/optparse.rst:546 msgid "" "First, consider the verbose/quiet example. If we want :mod:`optparse` to " "set ``verbose`` to ``True`` unless ``-q`` is seen, then we can do this::" msgstr "" -#: ../../library/optparse.rst:549 msgid "" "parser.add_option(\"-v\", action=\"store_true\", dest=\"verbose\", " "default=True)\n" "parser.add_option(\"-q\", action=\"store_false\", dest=\"verbose\")" msgstr "" -#: ../../library/optparse.rst:552 msgid "" "Since default values apply to the *destination* rather than to any " "particular option, and these two options happen to have the same " "destination, this is exactly equivalent::" msgstr "" -#: ../../library/optparse.rst:556 msgid "" "parser.add_option(\"-v\", action=\"store_true\", dest=\"verbose\")\n" "parser.add_option(\"-q\", action=\"store_false\", dest=\"verbose\", " "default=True)" msgstr "" -#: ../../library/optparse.rst:559 msgid "Consider this::" msgstr "" -#: ../../library/optparse.rst:561 msgid "" "parser.add_option(\"-v\", action=\"store_true\", dest=\"verbose\", " "default=False)\n" @@ -922,38 +782,32 @@ msgid "" "default=True)" msgstr "" -#: ../../library/optparse.rst:564 msgid "" "Again, the default value for ``verbose`` will be ``True``: the last default " "value supplied for any particular destination is the one that counts." msgstr "" -#: ../../library/optparse.rst:567 msgid "" "A clearer way to specify default values is the :meth:`set_defaults` method " -"of OptionParser, which you can call at any time before " -"calling :meth:`~OptionParser.parse_args`::" +"of OptionParser, which you can call at any time before calling :meth:" +"`~OptionParser.parse_args`::" msgstr "" -#: ../../library/optparse.rst:571 msgid "" "parser.set_defaults(verbose=True)\n" "parser.add_option(...)\n" "(options, args) = parser.parse_args()" msgstr "" -#: ../../library/optparse.rst:575 msgid "" "As before, the last value specified for a given option destination is the " "one that counts. For clarity, try to use one method or the other of setting " "default values, not both." msgstr "" -#: ../../library/optparse.rst:583 msgid "Generating help" msgstr "" -#: ../../library/optparse.rst:585 msgid "" ":mod:`optparse`'s ability to generate help and usage text automatically is " "useful for creating user-friendly command-line interfaces. All you have to " @@ -962,7 +816,6 @@ msgid "" "populated with user-friendly (documented) options::" msgstr "" -#: ../../library/optparse.rst:591 msgid "" "usage = \"usage: %prog [options] arg1 arg2\"\n" "parser = OptionParser(usage=usage)\n" @@ -980,14 +833,12 @@ msgid "" " \"or expert [default: %default]\")" msgstr "" -#: ../../library/optparse.rst:606 msgid "" "If :mod:`optparse` encounters either ``-h`` or ``--help`` on the command-" "line, or if you just call :meth:`parser.print_help`, it prints the following " "to standard output:" msgstr "" -#: ../../library/optparse.rst:610 msgid "" "Usage: [options] arg1 arg2\n" "\n" @@ -1001,72 +852,60 @@ msgid "" " expert [default: intermediate]" msgstr "" -#: ../../library/optparse.rst:623 msgid "" "(If the help output is triggered by a help option, :mod:`optparse` exits " "after printing the help text.)" msgstr "" -#: ../../library/optparse.rst:626 msgid "" "There's a lot going on here to help :mod:`optparse` generate the best " "possible help message:" msgstr "" -#: ../../library/optparse.rst:629 msgid "the script defines its own usage message::" msgstr "" -#: ../../library/optparse.rst:631 msgid "usage = \"usage: %prog [options] arg1 arg2\"" msgstr "" -#: ../../library/optparse.rst:633 msgid "" ":mod:`optparse` expands ``%prog`` in the usage string to the name of the " "current program, i.e. ``os.path.basename(sys.argv[0])``. The expanded " "string is then printed before the detailed option help." msgstr "" -#: ../../library/optparse.rst:637 msgid "" "If you don't supply a usage string, :mod:`optparse` uses a bland but " "sensible default: ``\"Usage: %prog [options]\"``, which is fine if your " "script doesn't take any positional arguments." msgstr "" -#: ../../library/optparse.rst:641 msgid "" "every option defines a help string, and doesn't worry about line-wrapping---" "\\ :mod:`optparse` takes care of wrapping lines and making the help output " "look good." msgstr "" -#: ../../library/optparse.rst:645 msgid "" "options that take a value indicate this fact in their automatically " "generated help message, e.g. for the \"mode\" option::" msgstr "" -#: ../../library/optparse.rst:648 msgid "-m MODE, --mode=MODE" msgstr "" -#: ../../library/optparse.rst:650 msgid "" "Here, \"MODE\" is called the meta-variable: it stands for the argument that " -"the user is expected to supply to ``-m``/``--mode``. By " -"default, :mod:`optparse` converts the destination variable name to uppercase " -"and uses that for the meta-variable. Sometimes, that's not what you want---" -"for example, the ``--filename`` option explicitly sets ``metavar=\"FILE\"``, " -"resulting in this automatically generated option description::" +"the user is expected to supply to ``-m``/``--mode``. By default, :mod:" +"`optparse` converts the destination variable name to uppercase and uses that " +"for the meta-variable. Sometimes, that's not what you want---for example, " +"the ``--filename`` option explicitly sets ``metavar=\"FILE\"``, resulting in " +"this automatically generated option description::" msgstr "" -#: ../../library/optparse.rst:657 msgid "-f FILE, --filename=FILE" msgstr "" -#: ../../library/optparse.rst:659 msgid "" "This is important for more than just saving space, though: the manually " "written help text uses the meta-variable ``FILE`` to clue the user in that " @@ -1076,7 +915,6 @@ msgid "" "users." msgstr "" -#: ../../library/optparse.rst:665 msgid "" "options that have a default value can include ``%default`` in the help " "string---\\ :mod:`optparse` will replace it with :func:`str` of the option's " @@ -1084,59 +922,47 @@ msgid "" "``None``), ``%default`` expands to ``none``." msgstr "" -#: ../../library/optparse.rst:671 msgid "Grouping Options" msgstr "" -#: ../../library/optparse.rst:673 msgid "" "When dealing with many options, it is convenient to group these options for " "better help output. An :class:`OptionParser` can contain several option " "groups, each of which can contain several options." msgstr "" -#: ../../library/optparse.rst:677 msgid "An option group is obtained using the class :class:`OptionGroup`:" msgstr "" -#: ../../library/optparse.rst:681 ../../library/optparse.rst:1752 msgid "where" msgstr "" -#: ../../library/optparse.rst:683 msgid "" "parser is the :class:`OptionParser` instance the group will be inserted in to" msgstr "" -#: ../../library/optparse.rst:685 msgid "title is the group title" msgstr "" -#: ../../library/optparse.rst:686 msgid "description, optional, is a long description of the group" msgstr "" -#: ../../library/optparse.rst:688 msgid "" -":class:`OptionGroup` inherits from :class:`OptionContainer` " -"(like :class:`OptionParser`) and so the :meth:`add_option` method can be " -"used to add an option to the group." +":class:`OptionGroup` inherits from :class:`OptionContainer` (like :class:" +"`OptionParser`) and so the :meth:`add_option` method can be used to add an " +"option to the group." msgstr "" -#: ../../library/optparse.rst:692 msgid "" -"Once all the options are declared, using the :class:`OptionParser` " -"method :meth:`add_option_group` the group is added to the previously defined " -"parser." +"Once all the options are declared, using the :class:`OptionParser` method :" +"meth:`add_option_group` the group is added to the previously defined parser." msgstr "" -#: ../../library/optparse.rst:695 msgid "" -"Continuing with the parser defined in the previous section, adding " -"an :class:`OptionGroup` to a parser is easy::" +"Continuing with the parser defined in the previous section, adding an :class:" +"`OptionGroup` to a parser is easy::" msgstr "" -#: ../../library/optparse.rst:698 msgid "" "group = OptionGroup(parser, \"Dangerous Options\",\n" " \"Caution: use these options at your own risk. \"\n" @@ -1145,11 +971,9 @@ msgid "" "parser.add_option_group(group)" msgstr "" -#: ../../library/optparse.rst:704 msgid "This would result in the following help output:" msgstr "" -#: ../../library/optparse.rst:706 msgid "" "Usage: [options] arg1 arg2\n" "\n" @@ -1169,13 +993,11 @@ msgid "" " -g Group option." msgstr "" -#: ../../library/optparse.rst:725 msgid "" "A bit more complete example might involve using more than one group: still " "extending the previous example::" msgstr "" -#: ../../library/optparse.rst:728 msgid "" "group = OptionGroup(parser, \"Dangerous Options\",\n" " \"Caution: use these options at your own risk. \"\n" @@ -1193,11 +1015,9 @@ msgid "" "parser.add_option_group(group)" msgstr "" -#: ../../library/optparse.rst:742 msgid "that results in the following output:" msgstr "" -#: ../../library/optparse.rst:744 msgid "" "Usage: [options] arg1 arg2\n" "\n" @@ -1222,60 +1042,50 @@ msgid "" " -e Print every action done" msgstr "" -#: ../../library/optparse.rst:768 msgid "" "Another interesting method, in particular when working programmatically with " "option groups is:" msgstr "" -#: ../../library/optparse.rst:773 msgid "" "Return the :class:`OptionGroup` to which the short or long option string " -"*opt_str* (e.g. ``'-o'`` or ``'--option'``) belongs. If there's no " -"such :class:`OptionGroup`, return ``None``." +"*opt_str* (e.g. ``'-o'`` or ``'--option'``) belongs. If there's no such :" +"class:`OptionGroup`, return ``None``." msgstr "" -#: ../../library/optparse.rst:780 msgid "Printing a version string" msgstr "" -#: ../../library/optparse.rst:782 msgid "" "Similar to the brief usage string, :mod:`optparse` can also print a version " "string for your program. You have to supply the string as the ``version`` " "argument to OptionParser::" msgstr "" -#: ../../library/optparse.rst:786 msgid "parser = OptionParser(usage=\"%prog [-f] [-q]\", version=\"%prog 1.0\")" msgstr "" -#: ../../library/optparse.rst:788 msgid "" "``%prog`` is expanded just like it is in ``usage``. Apart from that, " -"``version`` can contain anything you like. When you supply " -"it, :mod:`optparse` automatically adds a ``--version`` option to your " -"parser. If it encounters this option on the command line, it expands your " -"``version`` string (by replacing ``%prog``), prints it to stdout, and exits." +"``version`` can contain anything you like. When you supply it, :mod:" +"`optparse` automatically adds a ``--version`` option to your parser. If it " +"encounters this option on the command line, it expands your ``version`` " +"string (by replacing ``%prog``), prints it to stdout, and exits." msgstr "" -#: ../../library/optparse.rst:794 msgid "For example, if your script is called ``/usr/bin/foo``:" msgstr "" -#: ../../library/optparse.rst:796 msgid "" "$ /usr/bin/foo --version\n" "foo 1.0" msgstr "" -#: ../../library/optparse.rst:801 msgid "" "The following two methods can be used to print and get the ``version`` " "string:" msgstr "" -#: ../../library/optparse.rst:805 msgid "" "Print the version message for the current program (``self.version``) to " "*file* (default stdout). As with :meth:`print_usage`, any occurrence of " @@ -1283,28 +1093,23 @@ msgid "" "program. Does nothing if ``self.version`` is empty or undefined." msgstr "" -#: ../../library/optparse.rst:812 msgid "" "Same as :meth:`print_version` but returns the version string instead of " "printing it." msgstr "" -#: ../../library/optparse.rst:819 msgid "How :mod:`optparse` handles errors" msgstr "" -#: ../../library/optparse.rst:821 msgid "" "There are two broad classes of errors that :mod:`optparse` has to worry " "about: programmer errors and user errors. Programmer errors are usually " "erroneous calls to :func:`OptionParser.add_option`, e.g. invalid option " "strings, unknown option attributes, missing option attributes, etc. These " -"are dealt with in the usual way: raise an exception " -"(either :exc:`optparse.OptionError` or :exc:`TypeError`) and let the program " -"crash." +"are dealt with in the usual way: raise an exception (either :exc:`optparse." +"OptionError` or :exc:`TypeError`) and let the program crash." msgstr "" -#: ../../library/optparse.rst:828 msgid "" "Handling user errors is much more important, since they are guaranteed to " "happen no matter how stable your code is. :mod:`optparse` can automatically " @@ -1315,7 +1120,6 @@ msgid "" "error condition::" msgstr "" -#: ../../library/optparse.rst:836 msgid "" "(options, args) = parser.parse_args()\n" "...\n" @@ -1323,20 +1127,17 @@ msgid "" " parser.error(\"options -a and -b are mutually exclusive\")" msgstr "" -#: ../../library/optparse.rst:841 msgid "" "In either case, :mod:`optparse` handles the error the same way: it prints " "the program's usage message and an error message to standard error and exits " "with error status 2." msgstr "" -#: ../../library/optparse.rst:845 msgid "" "Consider the first example above, where the user passes ``4x`` to an option " "that takes an integer:" msgstr "" -#: ../../library/optparse.rst:848 msgid "" "$ /usr/bin/foo -n 4x\n" "Usage: foo [options]\n" @@ -1344,11 +1145,9 @@ msgid "" "foo: error: option -n: invalid integer value: '4x'" msgstr "" -#: ../../library/optparse.rst:855 msgid "Or, where the user fails to pass a value at all:" msgstr "" -#: ../../library/optparse.rst:857 msgid "" "$ /usr/bin/foo -n\n" "Usage: foo [options]\n" @@ -1356,29 +1155,24 @@ msgid "" "foo: error: -n option requires an argument" msgstr "" -#: ../../library/optparse.rst:864 msgid "" ":mod:`optparse`\\ -generated error messages take care always to mention the " -"option involved in the error; be sure to do the same when " -"calling :func:`OptionParser.error` from your application code." +"option involved in the error; be sure to do the same when calling :func:" +"`OptionParser.error` from your application code." msgstr "" -#: ../../library/optparse.rst:868 msgid "" "If :mod:`optparse`'s default error-handling behaviour does not suit your " -"needs, you'll need to subclass OptionParser and override " -"its :meth:`~OptionParser.exit` and/or :meth:`~OptionParser.error` methods." +"needs, you'll need to subclass OptionParser and override its :meth:" +"`~OptionParser.exit` and/or :meth:`~OptionParser.error` methods." msgstr "" -#: ../../library/optparse.rst:876 msgid "Putting it all together" msgstr "" -#: ../../library/optparse.rst:878 msgid "Here's what :mod:`optparse`\\ -based scripts usually look like::" msgstr "" -#: ../../library/optparse.rst:880 msgid "" "from optparse import OptionParser\n" "...\n" @@ -1403,32 +1197,26 @@ msgid "" " main()" msgstr "" -#: ../../library/optparse.rst:906 msgid "Reference Guide" msgstr "" -#: ../../library/optparse.rst:912 msgid "Creating the parser" msgstr "" -#: ../../library/optparse.rst:914 msgid "" "The first step in using :mod:`optparse` is to create an OptionParser " "instance." msgstr "" -#: ../../library/optparse.rst:918 msgid "" "The OptionParser constructor has no required arguments, but a number of " "optional keyword arguments. You should always pass them as keyword " "arguments, i.e. do not rely on the order in which the arguments are declared." msgstr "" -#: ../../library/optparse.rst:922 msgid "``usage`` (default: ``\"%prog [options]\"``)" msgstr "" -#: ../../library/optparse.rst:923 msgid "" "The usage summary to print when your program is run incorrectly or with a " "help option. When :mod:`optparse` prints the usage string, it expands " @@ -1437,11 +1225,9 @@ msgid "" "value :const:`optparse.SUPPRESS_USAGE`." msgstr "" -#: ../../library/optparse.rst:929 msgid "``option_list`` (default: ``[]``)" msgstr "" -#: ../../library/optparse.rst:930 msgid "" "A list of Option objects to populate the parser with. The options in " "``option_list`` are added after any options in ``standard_option_list`` (a " @@ -1450,19 +1236,15 @@ msgid "" "the parser instead." msgstr "" -#: ../../library/optparse.rst:936 msgid "``option_class`` (default: optparse.Option)" msgstr "" -#: ../../library/optparse.rst:937 msgid "Class to use when adding options to the parser in :meth:`add_option`." msgstr "" -#: ../../library/optparse.rst:939 msgid "``version`` (default: ``None``)" msgstr "" -#: ../../library/optparse.rst:940 msgid "" "A version string to print when the user supplies a version option. If you " "supply a true value for ``version``, :mod:`optparse` automatically adds a " @@ -1470,21 +1252,17 @@ msgid "" "``%prog`` is expanded the same as for ``usage``." msgstr "" -#: ../../library/optparse.rst:945 msgid "``conflict_handler`` (default: ``\"error\"``)" msgstr "" -#: ../../library/optparse.rst:946 msgid "" "Specifies what to do when options with conflicting option strings are added " "to the parser; see section :ref:`optparse-conflicts-between-options`." msgstr "" -#: ../../library/optparse.rst:950 msgid "``description`` (default: ``None``)" msgstr "" -#: ../../library/optparse.rst:951 msgid "" "A paragraph of text giving a brief overview of your program. :mod:`optparse` " "reformats this paragraph to fit the current terminal width and prints it " @@ -1492,75 +1270,60 @@ msgid "" "options)." msgstr "" -#: ../../library/optparse.rst:956 msgid "``formatter`` (default: a new :class:`IndentedHelpFormatter`)" msgstr "" -#: ../../library/optparse.rst:957 msgid "" "An instance of optparse.HelpFormatter that will be used for printing help " "text. :mod:`optparse` provides two concrete classes for this purpose: " "IndentedHelpFormatter and TitledHelpFormatter." msgstr "" -#: ../../library/optparse.rst:961 msgid "``add_help_option`` (default: ``True``)" msgstr "" -#: ../../library/optparse.rst:962 msgid "" "If true, :mod:`optparse` will add a help option (with option strings ``-h`` " "and ``--help``) to the parser." msgstr "" -#: ../../library/optparse.rst:965 msgid "``prog``" msgstr "" -#: ../../library/optparse.rst:966 msgid "" "The string to use when expanding ``%prog`` in ``usage`` and ``version`` " "instead of ``os.path.basename(sys.argv[0])``." msgstr "" -#: ../../library/optparse.rst:969 msgid "``epilog`` (default: ``None``)" msgstr "" -#: ../../library/optparse.rst:970 msgid "A paragraph of help text to print after the option help." msgstr "" -#: ../../library/optparse.rst:975 msgid "Populating the parser" msgstr "" -#: ../../library/optparse.rst:977 msgid "" "There are several ways to populate the parser with options. The preferred " -"way is by using :meth:`OptionParser.add_option`, as shown in " -"section :ref:`optparse-tutorial`. :meth:`add_option` can be called in one " -"of two ways:" +"way is by using :meth:`OptionParser.add_option`, as shown in section :ref:" +"`optparse-tutorial`. :meth:`add_option` can be called in one of two ways:" msgstr "" -#: ../../library/optparse.rst:981 msgid "pass it an Option instance (as returned by :func:`make_option`)" msgstr "" -#: ../../library/optparse.rst:983 msgid "" "pass it any combination of positional and keyword arguments that are " "acceptable to :func:`make_option` (i.e., to the Option constructor), and it " "will create the Option instance for you" msgstr "" -#: ../../library/optparse.rst:987 msgid "" "The other alternative is to pass a list of pre-constructed Option instances " "to the OptionParser constructor, as in::" msgstr "" -#: ../../library/optparse.rst:990 msgid "" "option_list = [\n" " make_option(\"-f\", \"--filename\",\n" @@ -1571,49 +1334,40 @@ msgid "" "parser = OptionParser(option_list=option_list)" msgstr "" -#: ../../library/optparse.rst:998 msgid "" "(:func:`make_option` is a factory function for creating Option instances; " -"currently it is an alias for the Option constructor. A future version " -"of :mod:`optparse` may split Option into several classes, " -"and :func:`make_option` will pick the right class to instantiate. Do not " -"instantiate Option directly.)" +"currently it is an alias for the Option constructor. A future version of :" +"mod:`optparse` may split Option into several classes, and :func:" +"`make_option` will pick the right class to instantiate. Do not instantiate " +"Option directly.)" msgstr "" -#: ../../library/optparse.rst:1007 msgid "Defining options" msgstr "" -#: ../../library/optparse.rst:1009 msgid "" "Each Option instance represents a set of synonymous command-line option " "strings, e.g. ``-f`` and ``--file``. You can specify any number of short or " "long option strings, but you must specify at least one overall option string." msgstr "" -#: ../../library/optparse.rst:1013 msgid "" -"The canonical way to create an :class:`Option` instance is with " -"the :meth:`add_option` method of :class:`OptionParser`." +"The canonical way to create an :class:`Option` instance is with the :meth:" +"`add_option` method of :class:`OptionParser`." msgstr "" -#: ../../library/optparse.rst:1019 msgid "To define an option with only a short option string::" msgstr "" -#: ../../library/optparse.rst:1021 msgid "parser.add_option(\"-f\", attr=value, ...)" msgstr "" -#: ../../library/optparse.rst:1023 msgid "And to define an option with only a long option string::" msgstr "" -#: ../../library/optparse.rst:1025 msgid "parser.add_option(\"--foo\", attr=value, ...)" msgstr "" -#: ../../library/optparse.rst:1027 msgid "" "The keyword arguments define attributes of the new Option object. The most " "important option attribute is :attr:`~Option.action`, and it largely " @@ -1622,117 +1376,93 @@ msgid "" "raises an :exc:`OptionError` exception explaining your mistake." msgstr "" -#: ../../library/optparse.rst:1033 msgid "" "An option's *action* determines what :mod:`optparse` does when it encounters " "this option on the command-line. The standard option actions hard-coded " "into :mod:`optparse` are:" msgstr "" -#: ../../library/optparse.rst:1037 msgid "``\"store\"``" msgstr "" -#: ../../library/optparse.rst:1038 msgid "store this option's argument (default)" msgstr "" -#: ../../library/optparse.rst:1043 msgid "``\"store_true\"``" msgstr "" -#: ../../library/optparse.rst:1044 msgid "store ``True``" msgstr "" -#: ../../library/optparse.rst:1046 msgid "``\"store_false\"``" msgstr "" -#: ../../library/optparse.rst:1047 msgid "store ``False``" msgstr "" -#: ../../library/optparse.rst:1052 msgid "``\"append_const\"``" msgstr "" -#: ../../library/optparse.rst:1053 msgid "append a constant value to a list, pre-set via :attr:`Option.const`" msgstr "" -#: ../../library/optparse.rst:1061 ../../library/optparse.rst:1356 msgid "``\"help\"``" msgstr "" -#: ../../library/optparse.rst:1062 msgid "" "print a usage message including all options and the documentation for them" msgstr "" -#: ../../library/optparse.rst:1064 msgid "" "(If you don't supply an action, the default is ``\"store\"``. For this " "action, you may also supply :attr:`~Option.type` and :attr:`~Option.dest` " "option attributes; see :ref:`optparse-standard-option-actions`.)" msgstr "" -#: ../../library/optparse.rst:1068 msgid "" -"As you can see, most actions involve storing or updating a value " -"somewhere. :mod:`optparse` always creates a special object for this, " -"conventionally called ``options``, which is an instance " -"of :class:`optparse.Values`." +"As you can see, most actions involve storing or updating a value somewhere. :" +"mod:`optparse` always creates a special object for this, conventionally " +"called ``options``, which is an instance of :class:`optparse.Values`." msgstr "" -#: ../../library/optparse.rst:1074 msgid "" "An object holding parsed argument names and values as attributes. Normally " "created by calling when calling :meth:`OptionParser.parse_args`, and can be " -"overridden by a custom subclass passed to the *values* argument " -"of :meth:`OptionParser.parse_args` (as described in :ref:`optparse-parsing-" +"overridden by a custom subclass passed to the *values* argument of :meth:" +"`OptionParser.parse_args` (as described in :ref:`optparse-parsing-" "arguments`)." msgstr "" -#: ../../library/optparse.rst:1079 msgid "" "Option arguments (and various other values) are stored as attributes of this " "object, according to the :attr:`~Option.dest` (destination) option attribute." msgstr "" -#: ../../library/optparse.rst:1083 msgid "For example, when you call ::" msgstr "" -#: ../../library/optparse.rst:1085 msgid "parser.parse_args()" msgstr "" -#: ../../library/optparse.rst:1087 msgid "" "one of the first things :mod:`optparse` does is create the ``options`` " "object::" msgstr "" -#: ../../library/optparse.rst:1089 msgid "options = Values()" msgstr "" -#: ../../library/optparse.rst:1091 msgid "If one of the options in this parser is defined with ::" msgstr "" -#: ../../library/optparse.rst:1093 msgid "" "parser.add_option(\"-f\", \"--file\", action=\"store\", type=\"string\", " "dest=\"filename\")" msgstr "" -#: ../../library/optparse.rst:1095 msgid "and the command-line being parsed includes any of the following::" msgstr "" -#: ../../library/optparse.rst:1097 msgid "" "-ffoo\n" "-f foo\n" @@ -1740,27 +1470,22 @@ msgid "" "--file foo" msgstr "" -#: ../../library/optparse.rst:1102 msgid "" "then :mod:`optparse`, on seeing this option, will do the equivalent of ::" msgstr "" -#: ../../library/optparse.rst:1104 msgid "options.filename = \"foo\"" msgstr "" -#: ../../library/optparse.rst:1106 msgid "" "The :attr:`~Option.type` and :attr:`~Option.dest` option attributes are " "almost as important as :attr:`~Option.action`, but :attr:`~Option.action` is " "the only one that makes sense for *all* options." msgstr "" -#: ../../library/optparse.rst:1114 msgid "Option attributes" msgstr "" -#: ../../library/optparse.rst:1118 msgid "" "A single command line argument, with various attributes passed by keyword to " "the constructor. Normally created with :meth:`OptionParser.add_option` " @@ -1768,41 +1493,34 @@ msgid "" "*option_class* argument to :class:`OptionParser`." msgstr "" -#: ../../library/optparse.rst:1124 msgid "" -"The following option attributes may be passed as keyword arguments " -"to :meth:`OptionParser.add_option`. If you pass an option attribute that is " -"not relevant to a particular option, or fail to pass a required option " +"The following option attributes may be passed as keyword arguments to :meth:" +"`OptionParser.add_option`. If you pass an option attribute that is not " +"relevant to a particular option, or fail to pass a required option " "attribute, :mod:`optparse` raises :exc:`OptionError`." msgstr "" -#: ../../library/optparse.rst:1131 msgid "(default: ``\"store\"``)" msgstr "" -#: ../../library/optparse.rst:1133 msgid "" "Determines :mod:`optparse`'s behaviour when this option is seen on the " "command line; the available options are documented :ref:`here `." msgstr "" -#: ../../library/optparse.rst:1139 msgid "(default: ``\"string\"``)" msgstr "" -#: ../../library/optparse.rst:1141 msgid "" "The argument type expected by this option (e.g., ``\"string\"`` or " "``\"int\"``); the available option types are documented :ref:`here `." msgstr "" -#: ../../library/optparse.rst:1147 ../../library/optparse.rst:1197 msgid "(default: derived from option strings)" msgstr "" -#: ../../library/optparse.rst:1149 msgid "" "If the option's action implies writing or modifying a value somewhere, this " "tells :mod:`optparse` where to write it: :attr:`~Option.dest` names an " @@ -1810,47 +1528,39 @@ msgid "" "the command line." msgstr "" -#: ../../library/optparse.rst:1156 msgid "" "The value to use for this option's destination if the option is not seen on " "the command line. See also :meth:`OptionParser.set_defaults`." msgstr "" -#: ../../library/optparse.rst:1161 msgid "(default: 1)" msgstr "" -#: ../../library/optparse.rst:1163 msgid "" "How many arguments of type :attr:`~Option.type` should be consumed when this " -"option is seen. If > 1, :mod:`optparse` will store a tuple of values " -"to :attr:`~Option.dest`." +"option is seen. If > 1, :mod:`optparse` will store a tuple of values to :" +"attr:`~Option.dest`." msgstr "" -#: ../../library/optparse.rst:1169 msgid "For actions that store a constant value, the constant value to store." msgstr "" -#: ../../library/optparse.rst:1173 msgid "" "For options of type ``\"choice\"``, the list of strings the user may choose " "from." msgstr "" -#: ../../library/optparse.rst:1178 msgid "" "For options with action ``\"callback\"``, the callable to call when this " "option is seen. See section :ref:`optparse-option-callbacks` for detail on " "the arguments passed to the callable." msgstr "" -#: ../../library/optparse.rst:1185 msgid "" "Additional positional and keyword arguments to pass to ``callback`` after " "the four standard callback arguments." msgstr "" -#: ../../library/optparse.rst:1190 msgid "" "Help text to print for this option when listing all available options after " "the user supplies a :attr:`~Option.help` option (such as ``--help``). If no " @@ -1858,17 +1568,14 @@ msgid "" "this option, use the special value :const:`optparse.SUPPRESS_HELP`." msgstr "" -#: ../../library/optparse.rst:1199 msgid "" "Stand-in for the option argument(s) to use when printing help text. See " "section :ref:`optparse-tutorial` for an example." msgstr "" -#: ../../library/optparse.rst:1206 msgid "Standard option actions" msgstr "" -#: ../../library/optparse.rst:1208 msgid "" "The various option actions all have slightly different requirements and " "effects. Most actions have several relevant option attributes which you may " @@ -1876,33 +1583,28 @@ msgid "" "attributes, which you must specify for any option using that action." msgstr "" -#: ../../library/optparse.rst:1213 msgid "" -"``\"store\"`` " -"[relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:`~Option.nargs`, :attr:`~Option.choices`]" +"``\"store\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" +"`~Option.nargs`, :attr:`~Option.choices`]" msgstr "" -#: ../../library/optparse.rst:1216 msgid "" "The option must be followed by an argument, which is converted to a value " -"according to :attr:`~Option.type` and stored in :attr:`~Option.dest`. " -"If :attr:`~Option.nargs` > 1, multiple arguments will be consumed from the " +"according to :attr:`~Option.type` and stored in :attr:`~Option.dest`. If :" +"attr:`~Option.nargs` > 1, multiple arguments will be consumed from the " "command line; all will be converted according to :attr:`~Option.type` and " "stored to :attr:`~Option.dest` as a tuple. See the :ref:`optparse-standard-" "option-types` section." msgstr "" -#: ../../library/optparse.rst:1223 msgid "" "If :attr:`~Option.choices` is supplied (a list or tuple of strings), the " "type defaults to ``\"choice\"``." msgstr "" -#: ../../library/optparse.rst:1226 msgid "If :attr:`~Option.type` is not supplied, it defaults to ``\"string\"``." msgstr "" -#: ../../library/optparse.rst:1228 msgid "" "If :attr:`~Option.dest` is not supplied, :mod:`optparse` derives a " "destination from the first long option string (e.g., ``--foo-bar`` implies " @@ -1910,48 +1612,37 @@ msgid "" "destination from the first short option string (e.g., ``-f`` implies ``f``)." msgstr "" -#: ../../library/optparse.rst:1233 ../../library/optparse.rst:1253 -#: ../../library/optparse.rst:1275 ../../library/optparse.rst:1293 -#: ../../library/optparse.rst:1332 ../../library/optparse.rst:1370 msgid "Example::" msgstr "" -#: ../../library/optparse.rst:1235 msgid "" "parser.add_option(\"-f\")\n" "parser.add_option(\"-p\", type=\"float\", nargs=3, dest=\"point\")" msgstr "" -#: ../../library/optparse.rst:1238 msgid "As it parses the command line ::" msgstr "" -#: ../../library/optparse.rst:1240 msgid "-f foo.txt -p 1 -3.5 4 -fbar.txt" msgstr "" -#: ../../library/optparse.rst:1242 msgid ":mod:`optparse` will set ::" msgstr "" -#: ../../library/optparse.rst:1244 msgid "" "options.f = \"foo.txt\"\n" "options.point = (1.0, -3.5, 4.0)\n" "options.f = \"bar.txt\"" msgstr "" -#: ../../library/optparse.rst:1248 msgid "" -"``\"store_const\"`` [required: :attr:`~Option.const`; " -"relevant: :attr:`~Option.dest`]" +"``\"store_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" +"`~Option.dest`]" msgstr "" -#: ../../library/optparse.rst:1251 msgid "The value :attr:`~Option.const` is stored in :attr:`~Option.dest`." msgstr "" -#: ../../library/optparse.rst:1255 msgid "" "parser.add_option(\"-q\", \"--quiet\",\n" " action=\"store_const\", const=0, dest=\"verbose\")\n" @@ -1961,45 +1652,36 @@ msgid "" " action=\"store_const\", const=2, dest=\"verbose\")" msgstr "" -#: ../../library/optparse.rst:1262 msgid "If ``--noisy`` is seen, :mod:`optparse` will set ::" msgstr "" -#: ../../library/optparse.rst:1264 msgid "options.verbose = 2" msgstr "" -#: ../../library/optparse.rst:1266 msgid "``\"store_true\"`` [relevant: :attr:`~Option.dest`]" msgstr "" -#: ../../library/optparse.rst:1268 msgid "" -"A special case of ``\"store_const\"`` that stores ``True`` " -"to :attr:`~Option.dest`." +"A special case of ``\"store_const\"`` that stores ``True`` to :attr:`~Option." +"dest`." msgstr "" -#: ../../library/optparse.rst:1271 msgid "``\"store_false\"`` [relevant: :attr:`~Option.dest`]" msgstr "" -#: ../../library/optparse.rst:1273 msgid "Like ``\"store_true\"``, but stores ``False``." msgstr "" -#: ../../library/optparse.rst:1277 msgid "" "parser.add_option(\"--clobber\", action=\"store_true\", dest=\"clobber\")\n" "parser.add_option(\"--no-clobber\", action=\"store_false\", dest=\"clobber\")" msgstr "" -#: ../../library/optparse.rst:1280 msgid "" -"``\"append\"`` " -"[relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:`~Option.nargs`, :attr:`~Option.choices`]" +"``\"append\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" +"`~Option.nargs`, :attr:`~Option.choices`]" msgstr "" -#: ../../library/optparse.rst:1283 msgid "" "The option must be followed by an argument, which is appended to the list " "in :attr:`~Option.dest`. If no default value for :attr:`~Option.dest` is " @@ -2009,38 +1691,31 @@ msgid "" "is appended to :attr:`~Option.dest`." msgstr "" -#: ../../library/optparse.rst:1290 msgid "" "The defaults for :attr:`~Option.type` and :attr:`~Option.dest` are the same " "as for the ``\"store\"`` action." msgstr "" -#: ../../library/optparse.rst:1295 msgid "" "parser.add_option(\"-t\", \"--tracks\", action=\"append\", type=\"int\")" msgstr "" -#: ../../library/optparse.rst:1297 msgid "" "If ``-t3`` is seen on the command-line, :mod:`optparse` does the equivalent " "of::" msgstr "" -#: ../../library/optparse.rst:1300 msgid "" "options.tracks = []\n" "options.tracks.append(int(\"3\"))" msgstr "" -#: ../../library/optparse.rst:1303 msgid "If, a little later on, ``--tracks=4`` is seen, it does::" msgstr "" -#: ../../library/optparse.rst:1305 msgid "options.tracks.append(int(\"4\"))" msgstr "" -#: ../../library/optparse.rst:1307 msgid "" "The ``append`` action calls the ``append`` method on the current value of " "the option. This means that any default value specified must have an " @@ -2049,7 +1724,6 @@ msgid "" "with any values from the command line appended after those default values::" msgstr "" -#: ../../library/optparse.rst:1313 msgid "" ">>> parser.add_option(\"--files\", action=\"append\", default=['~/.mypkg/" "defaults'])\n" @@ -2058,13 +1732,11 @@ msgid "" "['~/.mypkg/defaults', 'overrides.mypkg']" msgstr "" -#: ../../library/optparse.rst:1318 msgid "" -"``\"append_const\"`` [required: :attr:`~Option.const`; " -"relevant: :attr:`~Option.dest`]" +"``\"append_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" +"`~Option.dest`]" msgstr "" -#: ../../library/optparse.rst:1321 msgid "" "Like ``\"store_const\"``, but the value :attr:`~Option.const` is appended " "to :attr:`~Option.dest`; as with ``\"append\"``, :attr:`~Option.dest` " @@ -2072,62 +1744,51 @@ msgid "" "time the option is encountered." msgstr "" -#: ../../library/optparse.rst:1326 msgid "``\"count\"`` [relevant: :attr:`~Option.dest`]" msgstr "" -#: ../../library/optparse.rst:1328 msgid "" "Increment the integer stored at :attr:`~Option.dest`. If no default value " "is supplied, :attr:`~Option.dest` is set to zero before being incremented " "the first time." msgstr "" -#: ../../library/optparse.rst:1334 msgid "parser.add_option(\"-v\", action=\"count\", dest=\"verbosity\")" msgstr "" -#: ../../library/optparse.rst:1336 msgid "" "The first time ``-v`` is seen on the command line, :mod:`optparse` does the " "equivalent of::" msgstr "" -#: ../../library/optparse.rst:1339 msgid "" "options.verbosity = 0\n" "options.verbosity += 1" msgstr "" -#: ../../library/optparse.rst:1342 msgid "Every subsequent occurrence of ``-v`` results in ::" msgstr "" -#: ../../library/optparse.rst:1344 msgid "options.verbosity += 1" msgstr "" -#: ../../library/optparse.rst:1346 msgid "" -"``\"callback\"`` [required: :attr:`~Option.callback`; " -"relevant: :attr:`~Option.type`, :attr:`~Option.nargs`, :attr:`~Option.callback_args`, :attr:`~Option.callback_kwargs`]" +"``\"callback\"`` [required: :attr:`~Option.callback`; relevant: :attr:" +"`~Option.type`, :attr:`~Option.nargs`, :attr:`~Option.callback_args`, :attr:" +"`~Option.callback_kwargs`]" msgstr "" -#: ../../library/optparse.rst:1350 msgid "" "Call the function specified by :attr:`~Option.callback`, which is called " "as ::" msgstr "" -#: ../../library/optparse.rst:1352 ../../library/optparse.rst:1750 msgid "func(option, opt_str, value, parser, *args, **kwargs)" msgstr "" -#: ../../library/optparse.rst:1354 msgid "See section :ref:`optparse-option-callbacks` for more detail." msgstr "" -#: ../../library/optparse.rst:1358 msgid "" "Prints a complete help message for all the options in the current option " "parser. The help message is constructed from the ``usage`` string passed to " @@ -2135,20 +1796,17 @@ msgid "" "every option." msgstr "" -#: ../../library/optparse.rst:1363 msgid "" "If no :attr:`~Option.help` string is supplied for an option, it will still " "be listed in the help message. To omit an option entirely, use the special " "value :const:`optparse.SUPPRESS_HELP`." msgstr "" -#: ../../library/optparse.rst:1367 msgid "" ":mod:`optparse` automatically adds a :attr:`~Option.help` option to all " "OptionParsers, so you do not normally need to create one." msgstr "" -#: ../../library/optparse.rst:1372 msgid "" "from optparse import OptionParser, SUPPRESS_HELP\n" "\n" @@ -2164,14 +1822,12 @@ msgid "" "parser.add_option(\"--secret\", help=SUPPRESS_HELP)" msgstr "" -#: ../../library/optparse.rst:1385 msgid "" "If :mod:`optparse` sees either ``-h`` or ``--help`` on the command line, it " "will print something like the following help message to stdout (assuming " "``sys.argv[0]`` is ``\"foo.py\"``):" msgstr "" -#: ../../library/optparse.rst:1389 msgid "" "Usage: foo.py [options]\n" "\n" @@ -2181,143 +1837,115 @@ msgid "" " --file=FILENAME Input file to read data from" msgstr "" -#: ../../library/optparse.rst:1398 msgid "" "After printing the help message, :mod:`optparse` terminates your process " "with ``sys.exit(0)``." msgstr "" -#: ../../library/optparse.rst:1401 msgid "``\"version\"``" msgstr "" -#: ../../library/optparse.rst:1403 msgid "" "Prints the version number supplied to the OptionParser to stdout and exits. " "The version number is actually formatted and printed by the " "``print_version()`` method of OptionParser. Generally only relevant if the " -"``version`` argument is supplied to the OptionParser constructor. As " -"with :attr:`~Option.help` options, you will rarely create ``version`` " -"options, since :mod:`optparse` automatically adds them when needed." +"``version`` argument is supplied to the OptionParser constructor. As with :" +"attr:`~Option.help` options, you will rarely create ``version`` options, " +"since :mod:`optparse` automatically adds them when needed." msgstr "" -#: ../../library/optparse.rst:1414 msgid "Standard option types" msgstr "" -#: ../../library/optparse.rst:1416 msgid "" ":mod:`optparse` has five built-in option types: ``\"string\"``, ``\"int\"``, " "``\"choice\"``, ``\"float\"`` and ``\"complex\"``. If you need to add new " "option types, see section :ref:`optparse-extending-optparse`." msgstr "" -#: ../../library/optparse.rst:1420 msgid "" "Arguments to string options are not checked or converted in any way: the " "text on the command line is stored in the destination (or passed to the " "callback) as-is." msgstr "" -#: ../../library/optparse.rst:1423 msgid "Integer arguments (type ``\"int\"``) are parsed as follows:" msgstr "" -#: ../../library/optparse.rst:1425 msgid "if the number starts with ``0x``, it is parsed as a hexadecimal number" msgstr "" -#: ../../library/optparse.rst:1427 msgid "if the number starts with ``0``, it is parsed as an octal number" msgstr "" -#: ../../library/optparse.rst:1429 msgid "if the number starts with ``0b``, it is parsed as a binary number" msgstr "" -#: ../../library/optparse.rst:1431 msgid "otherwise, the number is parsed as a decimal number" msgstr "" -#: ../../library/optparse.rst:1434 msgid "" "The conversion is done by calling :func:`int` with the appropriate base (2, " "8, 10, or 16). If this fails, so will :mod:`optparse`, although with a more " "useful error message." msgstr "" -#: ../../library/optparse.rst:1438 msgid "" "``\"float\"`` and ``\"complex\"`` option arguments are converted directly " "with :func:`float` and :func:`complex`, with similar error-handling." msgstr "" -#: ../../library/optparse.rst:1441 msgid "" -"``\"choice\"`` options are a subtype of ``\"string\"`` options. " -"The :attr:`~Option.choices` option attribute (a sequence of strings) defines " -"the set of allowed option arguments. :func:`optparse.check_choice` compares " -"user-supplied option arguments against this master list and " -"raises :exc:`OptionValueError` if an invalid string is given." +"``\"choice\"`` options are a subtype of ``\"string\"`` options. The :attr:" +"`~Option.choices` option attribute (a sequence of strings) defines the set " +"of allowed option arguments. :func:`optparse.check_choice` compares user-" +"supplied option arguments against this master list and raises :exc:" +"`OptionValueError` if an invalid string is given." msgstr "" -#: ../../library/optparse.rst:1451 msgid "Parsing arguments" msgstr "" -#: ../../library/optparse.rst:1453 msgid "" -"The whole point of creating and populating an OptionParser is to call " -"its :meth:`~OptionParser.parse_args` method." +"The whole point of creating and populating an OptionParser is to call its :" +"meth:`~OptionParser.parse_args` method." msgstr "" -#: ../../library/optparse.rst:1458 msgid "Parse the command-line options found in *args*." msgstr "" -#: ../../library/optparse.rst:1460 msgid "The input parameters are" msgstr "" -#: ../../library/optparse.rst:1462 ../../library/optparse.rst:1476 -#: ../../library/optparse.rst:1794 msgid "``args``" msgstr "" -#: ../../library/optparse.rst:1463 msgid "the list of arguments to process (default: ``sys.argv[1:]``)" msgstr "" -#: ../../library/optparse.rst:1465 msgid "``values``" msgstr "" -#: ../../library/optparse.rst:1466 msgid "" "a :class:`Values` object to store option arguments in (default: a new " "instance of :class:`Values`) -- if you give an existing object, the option " "defaults will not be initialized on it" msgstr "" -#: ../../library/optparse.rst:1470 msgid "and the return value is a pair ``(options, args)`` where" msgstr "" -#: ../../library/optparse.rst:1472 msgid "``options``" msgstr "" -#: ../../library/optparse.rst:1473 msgid "" "the same object that was passed in as *values*, or the ``optparse.Values`` " "instance created by :mod:`optparse`" msgstr "" -#: ../../library/optparse.rst:1477 msgid "the leftover positional arguments after all options have been processed" msgstr "" -#: ../../library/optparse.rst:1479 msgid "" "The most common usage is to supply neither keyword argument. If you supply " "``values``, it will be modified with repeated :func:`setattr` calls (roughly " @@ -2325,7 +1953,6 @@ msgid "" "by :meth:`~OptionParser.parse_args`." msgstr "" -#: ../../library/optparse.rst:1484 msgid "" "If :meth:`~OptionParser.parse_args` encounters any errors in the argument " "list, it calls the OptionParser's :meth:`error` method with an appropriate " @@ -2333,69 +1960,57 @@ msgid "" "status of 2 (the traditional Unix exit status for command-line errors)." msgstr "" -#: ../../library/optparse.rst:1493 msgid "Querying and manipulating your option parser" msgstr "" -#: ../../library/optparse.rst:1495 msgid "" "The default behavior of the option parser can be customized slightly, and " "you can also poke around your option parser and see what's there. " "OptionParser provides several methods to help you out:" msgstr "" -#: ../../library/optparse.rst:1501 msgid "" "Set parsing to stop on the first non-option. For example, if ``-a`` and ``-" "b`` are both simple options that take no arguments, :mod:`optparse` normally " "accepts this syntax::" msgstr "" -#: ../../library/optparse.rst:1505 msgid "prog -a arg1 -b arg2" msgstr "" -#: ../../library/optparse.rst:1507 msgid "and treats it as equivalent to ::" msgstr "" -#: ../../library/optparse.rst:1509 msgid "prog -a -b arg1 arg2" msgstr "" -#: ../../library/optparse.rst:1511 msgid "" "To disable this feature, call :meth:`disable_interspersed_args`. This " "restores traditional Unix syntax, where option parsing stops with the first " "non-option argument." msgstr "" -#: ../../library/optparse.rst:1515 msgid "" "Use this if you have a command processor which runs another command which " "has options of its own and you want to make sure these options don't get " "confused. For example, each command might have a different set of options." msgstr "" -#: ../../library/optparse.rst:1521 msgid "" "Set parsing to not stop on the first non-option, allowing interspersing " "switches with command arguments. This is the default behavior." msgstr "" -#: ../../library/optparse.rst:1526 msgid "" "Returns the Option instance with the option string *opt_str*, or ``None`` if " "no options have that option string." msgstr "" -#: ../../library/optparse.rst:1531 msgid "" "Return ``True`` if the OptionParser has an option with option string " "*opt_str* (e.g., ``-q`` or ``--verbose``)." msgstr "" -#: ../../library/optparse.rst:1536 msgid "" "If the :class:`OptionParser` has an option corresponding to *opt_str*, that " "option is removed. If that option provided any other option strings, all of " @@ -2403,30 +2018,25 @@ msgid "" "option belonging to this :class:`OptionParser`, raises :exc:`ValueError`." msgstr "" -#: ../../library/optparse.rst:1545 msgid "Conflicts between options" msgstr "" -#: ../../library/optparse.rst:1547 msgid "" "If you're not careful, it's easy to define options with conflicting option " "strings::" msgstr "" -#: ../../library/optparse.rst:1550 msgid "" "parser.add_option(\"-n\", \"--dry-run\", ...)\n" "...\n" "parser.add_option(\"-n\", \"--noisy\", ...)" msgstr "" -#: ../../library/optparse.rst:1554 msgid "" "(This is particularly true if you've defined your own OptionParser subclass " "with some standard options.)" msgstr "" -#: ../../library/optparse.rst:1557 msgid "" "Every time you add an option, :mod:`optparse` checks for conflicts with " "existing options. If it finds any, it invokes the current conflict-handling " @@ -2434,54 +2044,43 @@ msgid "" "constructor::" msgstr "" -#: ../../library/optparse.rst:1561 msgid "parser = OptionParser(..., conflict_handler=handler)" msgstr "" -#: ../../library/optparse.rst:1563 msgid "or with a separate call::" msgstr "" -#: ../../library/optparse.rst:1565 msgid "parser.set_conflict_handler(handler)" msgstr "" -#: ../../library/optparse.rst:1567 msgid "The available conflict handlers are:" msgstr "" -#: ../../library/optparse.rst:1569 msgid "``\"error\"`` (default)" msgstr "" -#: ../../library/optparse.rst:1570 msgid "" -"assume option conflicts are a programming error and " -"raise :exc:`OptionConflictError`" +"assume option conflicts are a programming error and raise :exc:" +"`OptionConflictError`" msgstr "" -#: ../../library/optparse.rst:1573 msgid "``\"resolve\"``" msgstr "" -#: ../../library/optparse.rst:1574 msgid "resolve option conflicts intelligently (see below)" msgstr "" -#: ../../library/optparse.rst:1577 msgid "" "As an example, let's define an :class:`OptionParser` that resolves conflicts " "intelligently and add conflicting options to it::" msgstr "" -#: ../../library/optparse.rst:1580 msgid "" "parser = OptionParser(conflict_handler=\"resolve\")\n" "parser.add_option(\"-n\", \"--dry-run\", ..., help=\"do no harm\")\n" "parser.add_option(\"-n\", \"--noisy\", ..., help=\"be noisy\")" msgstr "" -#: ../../library/optparse.rst:1584 msgid "" "At this point, :mod:`optparse` detects that a previously added option is " "already using the ``-n`` option string. Since ``conflict_handler`` is " @@ -2491,7 +2090,6 @@ msgid "" "message will reflect that::" msgstr "" -#: ../../library/optparse.rst:1590 msgid "" "Options:\n" " --dry-run do no harm\n" @@ -2499,7 +2097,6 @@ msgid "" " -n, --noisy be noisy" msgstr "" -#: ../../library/optparse.rst:1595 msgid "" "It's possible to whittle away the option strings for a previously added " "option until there are none left, and the user has no way of invoking that " @@ -2508,17 +2105,14 @@ msgid "" "Carrying on with our existing OptionParser::" msgstr "" -#: ../../library/optparse.rst:1601 msgid "parser.add_option(\"--dry-run\", ..., help=\"new dry-run option\")" msgstr "" -#: ../../library/optparse.rst:1603 msgid "" "At this point, the original ``-n``/``--dry-run`` option is no longer " "accessible, so :mod:`optparse` removes it, leaving this help text::" msgstr "" -#: ../../library/optparse.rst:1606 msgid "" "Options:\n" " ...\n" @@ -2526,11 +2120,9 @@ msgid "" " --dry-run new dry-run option" msgstr "" -#: ../../library/optparse.rst:1615 msgid "Cleanup" msgstr "" -#: ../../library/optparse.rst:1617 msgid "" "OptionParser instances have several cyclic references. This should not be a " "problem for Python's garbage collector, but you may wish to break the cyclic " @@ -2540,15 +2132,12 @@ msgid "" "OptionParser." msgstr "" -#: ../../library/optparse.rst:1628 msgid "Other methods" msgstr "" -#: ../../library/optparse.rst:1630 msgid "OptionParser supports several other public methods:" msgstr "" -#: ../../library/optparse.rst:1634 msgid "" "Set the usage string according to the rules described above for the " "``usage`` constructor keyword argument. Passing ``None`` sets the default " @@ -2556,30 +2145,26 @@ msgid "" "message." msgstr "" -#: ../../library/optparse.rst:1640 msgid "" "Print the usage message for the current program (``self.usage``) to *file* " "(default stdout). Any occurrence of the string ``%prog`` in ``self.usage`` " -"is replaced with the name of the current program. Does nothing if " -"``self.usage`` is empty or not defined." +"is replaced with the name of the current program. Does nothing if ``self." +"usage`` is empty or not defined." msgstr "" -#: ../../library/optparse.rst:1647 msgid "" "Same as :meth:`print_usage` but returns the usage string instead of printing " "it." msgstr "" -#: ../../library/optparse.rst:1652 msgid "" -"Set default values for several option destinations at once. " -"Using :meth:`set_defaults` is the preferred way to set default values for " -"options, since multiple options can share the same destination. For " -"example, if several \"mode\" options all set the same destination, any one " -"of them can set the default, and the last one wins::" +"Set default values for several option destinations at once. Using :meth:" +"`set_defaults` is the preferred way to set default values for options, since " +"multiple options can share the same destination. For example, if several " +"\"mode\" options all set the same destination, any one of them can set the " +"default, and the last one wins::" msgstr "" -#: ../../library/optparse.rst:1658 msgid "" "parser.add_option(\"--advanced\", action=\"store_const\",\n" " dest=\"mode\", const=\"advanced\",\n" @@ -2589,11 +2174,9 @@ msgid "" " default=\"advanced\") # overrides above setting" msgstr "" -#: ../../library/optparse.rst:1665 msgid "To avoid this confusion, use :meth:`set_defaults`::" msgstr "" -#: ../../library/optparse.rst:1667 msgid "" "parser.set_defaults(mode=\"advanced\")\n" "parser.add_option(\"--advanced\", action=\"store_const\",\n" @@ -2602,11 +2185,9 @@ msgid "" " dest=\"mode\", const=\"novice\")" msgstr "" -#: ../../library/optparse.rst:1677 msgid "Option Callbacks" msgstr "" -#: ../../library/optparse.rst:1679 msgid "" "When :mod:`optparse`'s built-in actions and types aren't quite enough for " "your needs, you have two choices: extend :mod:`optparse` or define a " @@ -2614,37 +2195,30 @@ msgid "" "a lot of simple cases. Quite often a simple callback is all you need." msgstr "" -#: ../../library/optparse.rst:1684 msgid "There are two steps to defining a callback option:" msgstr "" -#: ../../library/optparse.rst:1686 msgid "define the option itself using the ``\"callback\"`` action" msgstr "" -#: ../../library/optparse.rst:1688 msgid "" "write the callback; this is a function (or method) that takes at least four " "arguments, as described below" msgstr "" -#: ../../library/optparse.rst:1695 msgid "Defining a callback option" msgstr "" -#: ../../library/optparse.rst:1697 msgid "" -"As always, the easiest way to define a callback option is by using " -"the :meth:`OptionParser.add_option` method. Apart " -"from :attr:`~Option.action`, the only option attribute you must specify is " -"``callback``, the function to call::" +"As always, the easiest way to define a callback option is by using the :meth:" +"`OptionParser.add_option` method. Apart from :attr:`~Option.action`, the " +"only option attribute you must specify is ``callback``, the function to " +"call::" msgstr "" -#: ../../library/optparse.rst:1701 msgid "parser.add_option(\"-c\", action=\"callback\", callback=my_callback)" msgstr "" -#: ../../library/optparse.rst:1703 msgid "" "``callback`` is a function (or other callable object), so you must have " "already defined ``my_callback()`` when you create this callback option. In " @@ -2656,45 +2230,37 @@ msgid "" "tricky; it's covered later in this section." msgstr "" -#: ../../library/optparse.rst:1712 msgid "" ":mod:`optparse` always passes four particular arguments to your callback, " -"and it will only pass additional arguments if you specify them " -"via :attr:`~Option.callback_args` and :attr:`~Option.callback_kwargs`. " -"Thus, the minimal callback function signature is::" +"and it will only pass additional arguments if you specify them via :attr:" +"`~Option.callback_args` and :attr:`~Option.callback_kwargs`. Thus, the " +"minimal callback function signature is::" msgstr "" -#: ../../library/optparse.rst:1717 msgid "def my_callback(option, opt, value, parser):" msgstr "" -#: ../../library/optparse.rst:1719 msgid "The four arguments to a callback are described below." msgstr "" -#: ../../library/optparse.rst:1721 msgid "" "There are several other option attributes that you can supply when you " "define a callback option:" msgstr "" -#: ../../library/optparse.rst:1724 msgid ":attr:`~Option.type`" msgstr "" -#: ../../library/optparse.rst:1725 msgid "" "has its usual meaning: as with the ``\"store\"`` or ``\"append\"`` actions, " -"it instructs :mod:`optparse` to consume one argument and convert it " -"to :attr:`~Option.type`. Rather than storing the converted value(s) " -"anywhere, though, :mod:`optparse` passes it to your callback function." +"it instructs :mod:`optparse` to consume one argument and convert it to :attr:" +"`~Option.type`. Rather than storing the converted value(s) anywhere, " +"though, :mod:`optparse` passes it to your callback function." msgstr "" -#: ../../library/optparse.rst:1730 msgid ":attr:`~Option.nargs`" msgstr "" -#: ../../library/optparse.rst:1731 msgid "" "also has its usual meaning: if it is supplied and > 1, :mod:`optparse` will " "consume :attr:`~Option.nargs` arguments, each of which must be convertible " @@ -2702,43 +2268,33 @@ msgid "" "callback." msgstr "" -#: ../../library/optparse.rst:1736 msgid ":attr:`~Option.callback_args`" msgstr "" -#: ../../library/optparse.rst:1737 msgid "a tuple of extra positional arguments to pass to the callback" msgstr "" -#: ../../library/optparse.rst:1739 msgid ":attr:`~Option.callback_kwargs`" msgstr "" -#: ../../library/optparse.rst:1740 msgid "a dictionary of extra keyword arguments to pass to the callback" msgstr "" -#: ../../library/optparse.rst:1746 msgid "How callbacks are called" msgstr "" -#: ../../library/optparse.rst:1748 msgid "All callbacks are called as follows::" msgstr "" -#: ../../library/optparse.rst:1754 msgid "``option``" msgstr "" -#: ../../library/optparse.rst:1755 msgid "is the Option instance that's calling the callback" msgstr "" -#: ../../library/optparse.rst:1757 msgid "``opt_str``" msgstr "" -#: ../../library/optparse.rst:1758 msgid "" "is the option string seen on the command-line that's triggering the " "callback. (If an abbreviated long option was used, ``opt_str`` will be the " @@ -2747,59 +2303,49 @@ msgid "" "``\"--foobar\"``.)" msgstr "" -#: ../../library/optparse.rst:1764 msgid "``value``" msgstr "" -#: ../../library/optparse.rst:1765 msgid "" "is the argument to this option seen on the command-line. :mod:`optparse` " "will only expect an argument if :attr:`~Option.type` is set; the type of " -"``value`` will be the type implied by the option's type. " -"If :attr:`~Option.type` for this option is ``None`` (no argument expected), " -"then ``value`` will be ``None``. If :attr:`~Option.nargs` > 1, ``value`` " -"will be a tuple of values of the appropriate type." +"``value`` will be the type implied by the option's type. If :attr:`~Option." +"type` for this option is ``None`` (no argument expected), then ``value`` " +"will be ``None``. If :attr:`~Option.nargs` > 1, ``value`` will be a tuple " +"of values of the appropriate type." msgstr "" -#: ../../library/optparse.rst:1771 msgid "``parser``" msgstr "" -#: ../../library/optparse.rst:1772 msgid "" "is the OptionParser instance driving the whole thing, mainly useful because " "you can access some other interesting data through its instance attributes:" msgstr "" -#: ../../library/optparse.rst:1775 msgid "``parser.largs``" msgstr "" -#: ../../library/optparse.rst:1776 msgid "" "the current list of leftover arguments, ie. arguments that have been " "consumed but are neither options nor option arguments. Feel free to modify " "``parser.largs``, e.g. by adding more arguments to it. (This list will " -"become ``args``, the second return value " -"of :meth:`~OptionParser.parse_args`.)" +"become ``args``, the second return value of :meth:`~OptionParser." +"parse_args`.)" msgstr "" -#: ../../library/optparse.rst:1781 msgid "``parser.rargs``" msgstr "" -#: ../../library/optparse.rst:1782 msgid "" "the current list of remaining arguments, ie. with ``opt_str`` and ``value`` " "(if applicable) removed, and only the arguments following them still there. " "Feel free to modify ``parser.rargs``, e.g. by consuming more arguments." msgstr "" -#: ../../library/optparse.rst:1787 msgid "``parser.values``" msgstr "" -#: ../../library/optparse.rst:1788 msgid "" "the object where option values are by default stored (an instance of " "optparse.OptionValues). This lets callbacks use the same mechanism as the " @@ -2808,27 +2354,22 @@ msgid "" "of any options already encountered on the command-line." msgstr "" -#: ../../library/optparse.rst:1795 msgid "" -"is a tuple of arbitrary positional arguments supplied via " -"the :attr:`~Option.callback_args` option attribute." +"is a tuple of arbitrary positional arguments supplied via the :attr:`~Option." +"callback_args` option attribute." msgstr "" -#: ../../library/optparse.rst:1798 msgid "``kwargs``" msgstr "" -#: ../../library/optparse.rst:1799 msgid "" -"is a dictionary of arbitrary keyword arguments supplied " -"via :attr:`~Option.callback_kwargs`." +"is a dictionary of arbitrary keyword arguments supplied via :attr:`~Option." +"callback_kwargs`." msgstr "" -#: ../../library/optparse.rst:1806 msgid "Raising errors in a callback" msgstr "" -#: ../../library/optparse.rst:1808 msgid "" "The callback function should raise :exc:`OptionValueError` if there are any " "problems with the option or its argument(s). :mod:`optparse` catches this " @@ -2838,17 +2379,14 @@ msgid "" "they did wrong." msgstr "" -#: ../../library/optparse.rst:1818 msgid "Callback example 1: trivial callback" msgstr "" -#: ../../library/optparse.rst:1820 msgid "" "Here's an example of a callback option that takes no arguments, and simply " "records that the option was seen::" msgstr "" -#: ../../library/optparse.rst:1823 msgid "" "def record_foo_seen(option, opt_str, value, parser):\n" " parser.values.saw_foo = True\n" @@ -2856,21 +2394,17 @@ msgid "" "parser.add_option(\"--foo\", action=\"callback\", callback=record_foo_seen)" msgstr "" -#: ../../library/optparse.rst:1828 msgid "Of course, you could do that with the ``\"store_true\"`` action." msgstr "" -#: ../../library/optparse.rst:1834 msgid "Callback example 2: check option order" msgstr "" -#: ../../library/optparse.rst:1836 msgid "" "Here's a slightly more interesting example: record the fact that ``-a`` is " "seen, but blow up if it comes after ``-b`` in the command-line. ::" msgstr "" -#: ../../library/optparse.rst:1839 msgid "" "def check_order(option, opt_str, value, parser):\n" " if parser.values.b:\n" @@ -2881,18 +2415,15 @@ msgid "" "parser.add_option(\"-b\", action=\"store_true\", dest=\"b\")" msgstr "" -#: ../../library/optparse.rst:1851 msgid "Callback example 3: check option order (generalized)" msgstr "" -#: ../../library/optparse.rst:1853 msgid "" "If you want to reuse this callback for several similar options (set a flag, " "but blow up if ``-b`` has already been seen), it needs a bit of work: the " "error message and the flag that it sets must be generalized. ::" msgstr "" -#: ../../library/optparse.rst:1857 msgid "" "def check_order(option, opt_str, value, parser):\n" " if parser.values.b:\n" @@ -2906,11 +2437,9 @@ msgid "" "dest='c')" msgstr "" -#: ../../library/optparse.rst:1870 msgid "Callback example 4: check arbitrary condition" msgstr "" -#: ../../library/optparse.rst:1872 msgid "" "Of course, you could put any condition in there---you're not limited to " "checking the values of already-defined options. For example, if you have " @@ -2918,7 +2447,6 @@ msgid "" "is this::" msgstr "" -#: ../../library/optparse.rst:1876 msgid "" "def check_moon(option, opt_str, value, parser):\n" " if is_moon_full():\n" @@ -2930,32 +2458,26 @@ msgid "" " action=\"callback\", callback=check_moon, dest=\"foo\")" msgstr "" -#: ../../library/optparse.rst:1885 msgid "" "(The definition of ``is_moon_full()`` is left as an exercise for the reader.)" msgstr "" -#: ../../library/optparse.rst:1891 msgid "Callback example 5: fixed arguments" msgstr "" -#: ../../library/optparse.rst:1893 msgid "" "Things get slightly more interesting when you define callback options that " "take a fixed number of arguments. Specifying that a callback option takes " "arguments is similar to defining a ``\"store\"`` or ``\"append\"`` option: " "if you define :attr:`~Option.type`, then the option takes one argument that " -"must be convertible to that type; if you further " -"define :attr:`~Option.nargs`, then the option takes :attr:`~Option.nargs` " -"arguments." +"must be convertible to that type; if you further define :attr:`~Option." +"nargs`, then the option takes :attr:`~Option.nargs` arguments." msgstr "" -#: ../../library/optparse.rst:1900 msgid "" "Here's an example that just emulates the standard ``\"store\"`` action::" msgstr "" -#: ../../library/optparse.rst:1902 msgid "" "def store_value(option, opt_str, value, parser):\n" " setattr(parser.values, option.dest, value)\n" @@ -2965,44 +2487,37 @@ msgid "" " type=\"int\", nargs=3, dest=\"foo\")" msgstr "" -#: ../../library/optparse.rst:1909 msgid "" "Note that :mod:`optparse` takes care of consuming 3 arguments and converting " "them to integers for you; all you have to do is store them. (Or whatever; " "obviously you don't need a callback for this example.)" msgstr "" -#: ../../library/optparse.rst:1917 msgid "Callback example 6: variable arguments" msgstr "" -#: ../../library/optparse.rst:1919 msgid "" "Things get hairy when you want an option to take a variable number of " "arguments. For this case, you must write a callback, as :mod:`optparse` " "doesn't provide any built-in capabilities for it. And you have to deal with " -"certain intricacies of conventional Unix command-line parsing " -"that :mod:`optparse` normally handles for you. In particular, callbacks " -"should implement the conventional rules for bare ``--`` and ``-`` arguments:" +"certain intricacies of conventional Unix command-line parsing that :mod:" +"`optparse` normally handles for you. In particular, callbacks should " +"implement the conventional rules for bare ``--`` and ``-`` arguments:" msgstr "" -#: ../../library/optparse.rst:1926 msgid "either ``--`` or ``-`` can be option arguments" msgstr "" -#: ../../library/optparse.rst:1928 msgid "" "bare ``--`` (if not the argument to some option): halt command-line " "processing and discard the ``--``" msgstr "" -#: ../../library/optparse.rst:1931 msgid "" "bare ``-`` (if not the argument to some option): halt command-line " "processing but keep the ``-`` (append it to ``parser.largs``)" msgstr "" -#: ../../library/optparse.rst:1934 msgid "" "If you want an option that takes a variable number of arguments, there are " "several subtle, tricky issues to worry about. The exact implementation you " @@ -3011,13 +2526,11 @@ msgid "" "directly)." msgstr "" -#: ../../library/optparse.rst:1940 msgid "" "Nevertheless, here's a stab at a callback for an option with variable " "arguments::" msgstr "" -#: ../../library/optparse.rst:1943 msgid "" "def vararg_callback(option, opt_str, value, parser):\n" " assert value is None\n" @@ -3047,46 +2560,38 @@ msgid "" " action=\"callback\", callback=vararg_callback)" msgstr "" -#: ../../library/optparse.rst:1974 msgid "Extending :mod:`optparse`" msgstr "" -#: ../../library/optparse.rst:1976 msgid "" "Since the two major controlling factors in how :mod:`optparse` interprets " "command-line options are the action and type of each option, the most likely " "direction of extension is to add new actions and new types." msgstr "" -#: ../../library/optparse.rst:1984 msgid "Adding new types" msgstr "" -#: ../../library/optparse.rst:1986 msgid "" -"To add new types, you need to define your own subclass " -"of :mod:`optparse`'s :class:`Option` class. This class has a couple of " -"attributes that define :mod:`optparse`'s types: :attr:`~Option.TYPES` " -"and :attr:`~Option.TYPE_CHECKER`." +"To add new types, you need to define your own subclass of :mod:`optparse`'s :" +"class:`Option` class. This class has a couple of attributes that define :" +"mod:`optparse`'s types: :attr:`~Option.TYPES` and :attr:`~Option." +"TYPE_CHECKER`." msgstr "" -#: ../../library/optparse.rst:1992 msgid "" -"A tuple of type names; in your subclass, simply define a new " -"tuple :attr:`TYPES` that builds on the standard one." +"A tuple of type names; in your subclass, simply define a new tuple :attr:" +"`TYPES` that builds on the standard one." msgstr "" -#: ../../library/optparse.rst:1997 msgid "" "A dictionary mapping type names to type-checking functions. A type-checking " "function has the following signature::" msgstr "" -#: ../../library/optparse.rst:2000 msgid "def check_mytype(option, opt, value)" msgstr "" -#: ../../library/optparse.rst:2002 msgid "" "where ``option`` is an :class:`Option` instance, ``opt`` is an option string " "(e.g., ``-f``), and ``value`` is the string from the command line that must " @@ -3097,7 +2602,6 @@ msgid "" "``value`` parameter." msgstr "" -#: ../../library/optparse.rst:2010 msgid "" "Your type-checking function should raise :exc:`OptionValueError` if it " "encounters any problems. :exc:`OptionValueError` takes a single string " @@ -3106,7 +2610,6 @@ msgid "" "\"`` and prints everything to stderr before terminating the process." msgstr "" -#: ../../library/optparse.rst:2016 msgid "" "Here's a silly example that demonstrates adding a ``\"complex\"`` option " "type to parse Python-style complex numbers on the command line. (This is " @@ -3114,23 +2617,19 @@ msgid "" "support for complex numbers, but never mind.)" msgstr "" -#: ../../library/optparse.rst:2021 msgid "First, the necessary imports::" msgstr "" -#: ../../library/optparse.rst:2023 msgid "" "from copy import copy\n" "from optparse import Option, OptionValueError" msgstr "" -#: ../../library/optparse.rst:2026 msgid "" "You need to define your type-checker first, since it's referred to later (in " "the :attr:`~Option.TYPE_CHECKER` class attribute of your Option subclass)::" msgstr "" -#: ../../library/optparse.rst:2029 msgid "" "def check_complex(option, opt, value):\n" " try:\n" @@ -3140,11 +2639,9 @@ msgid "" " \"option %s: invalid complex value: %r\" % (opt, value))" msgstr "" -#: ../../library/optparse.rst:2036 msgid "Finally, the Option subclass::" msgstr "" -#: ../../library/optparse.rst:2038 msgid "" "class MyOption (Option):\n" " TYPES = Option.TYPES + (\"complex\",)\n" @@ -3152,67 +2649,56 @@ msgid "" " TYPE_CHECKER[\"complex\"] = check_complex" msgstr "" -#: ../../library/optparse.rst:2043 msgid "" "(If we didn't make a :func:`copy` of :attr:`Option.TYPE_CHECKER`, we would " -"end up modifying the :attr:`~Option.TYPE_CHECKER` attribute " -"of :mod:`optparse`'s Option class. This being Python, nothing stops you " -"from doing that except good manners and common sense.)" +"end up modifying the :attr:`~Option.TYPE_CHECKER` attribute of :mod:" +"`optparse`'s Option class. This being Python, nothing stops you from doing " +"that except good manners and common sense.)" msgstr "" -#: ../../library/optparse.rst:2048 msgid "" "That's it! Now you can write a script that uses the new option type just " "like any other :mod:`optparse`\\ -based script, except you have to instruct " "your OptionParser to use MyOption instead of Option::" msgstr "" -#: ../../library/optparse.rst:2052 msgid "" "parser = OptionParser(option_class=MyOption)\n" "parser.add_option(\"-c\", type=\"complex\")" msgstr "" -#: ../../library/optparse.rst:2055 msgid "" "Alternately, you can build your own option list and pass it to OptionParser; " "if you don't use :meth:`add_option` in the above way, you don't need to tell " "OptionParser which option class to use::" msgstr "" -#: ../../library/optparse.rst:2059 msgid "" "option_list = [MyOption(\"-c\", action=\"store\", type=\"complex\", " "dest=\"c\")]\n" "parser = OptionParser(option_list=option_list)" msgstr "" -#: ../../library/optparse.rst:2066 msgid "Adding new actions" msgstr "" -#: ../../library/optparse.rst:2068 msgid "" -"Adding new actions is a bit trickier, because you have to understand " -"that :mod:`optparse` has a couple of classifications for actions:" +"Adding new actions is a bit trickier, because you have to understand that :" +"mod:`optparse` has a couple of classifications for actions:" msgstr "" -#: ../../library/optparse.rst:2071 msgid "\"store\" actions" msgstr "" -#: ../../library/optparse.rst:2072 msgid "" "actions that result in :mod:`optparse` storing a value to an attribute of " -"the current OptionValues instance; these options require " -"a :attr:`~Option.dest` attribute to be supplied to the Option constructor." +"the current OptionValues instance; these options require a :attr:`~Option." +"dest` attribute to be supplied to the Option constructor." msgstr "" -#: ../../library/optparse.rst:2076 msgid "\"typed\" actions" msgstr "" -#: ../../library/optparse.rst:2077 msgid "" "actions that take a value from the command line and expect it to be of a " "certain type; or rather, a string that can be converted to a certain type. " @@ -3220,7 +2706,6 @@ msgid "" "constructor." msgstr "" -#: ../../library/optparse.rst:2082 msgid "" "These are overlapping sets: some default \"store\" actions are " "``\"store\"``, ``\"store_const\"``, ``\"append\"``, and ``\"count\"``, while " @@ -3228,25 +2713,20 @@ msgid "" "``\"callback\"``." msgstr "" -#: ../../library/optparse.rst:2086 msgid "" "When you add an action, you need to categorize it by listing it in at least " "one of the following class attributes of Option (all are lists of strings):" msgstr "" -#: ../../library/optparse.rst:2091 msgid "All actions must be listed in ACTIONS." msgstr "" -#: ../../library/optparse.rst:2095 msgid "\"store\" actions are additionally listed here." msgstr "" -#: ../../library/optparse.rst:2099 msgid "\"typed\" actions are additionally listed here." msgstr "" -#: ../../library/optparse.rst:2103 msgid "" "Actions that always take a type (i.e. whose options always take a value) are " "additionally listed here. The only effect of this is that :mod:`optparse` " @@ -3254,14 +2734,11 @@ msgid "" "whose action is listed in :attr:`ALWAYS_TYPED_ACTIONS`." msgstr "" -#: ../../library/optparse.rst:2108 msgid "" -"In order to actually implement your new action, you must override " -"Option's :meth:`take_action` method and add a case that recognizes your " -"action." +"In order to actually implement your new action, you must override Option's :" +"meth:`take_action` method and add a case that recognizes your action." msgstr "" -#: ../../library/optparse.rst:2111 msgid "" "For example, let's add an ``\"extend\"`` action. This is similar to the " "standard ``\"append\"`` action, but instead of taking a single value from " @@ -3271,23 +2748,18 @@ msgid "" "option of type ``\"string\"``, the command line ::" msgstr "" -#: ../../library/optparse.rst:2118 msgid "--names=foo,bar --names blah --names ding,dong" msgstr "" -#: ../../library/optparse.rst:2120 msgid "would result in a list ::" msgstr "" -#: ../../library/optparse.rst:2122 msgid "[\"foo\", \"bar\", \"blah\", \"ding\", \"dong\"]" msgstr "" -#: ../../library/optparse.rst:2124 msgid "Again we define a subclass of Option::" msgstr "" -#: ../../library/optparse.rst:2126 msgid "" "class MyOption(Option):\n" "\n" @@ -3305,43 +2777,36 @@ msgid "" " self, action, dest, opt, value, values, parser)" msgstr "" -#: ../../library/optparse.rst:2141 msgid "Features of note:" msgstr "" -#: ../../library/optparse.rst:2143 msgid "" "``\"extend\"`` both expects a value on the command-line and stores that " -"value somewhere, so it goes in both :attr:`~Option.STORE_ACTIONS` " -"and :attr:`~Option.TYPED_ACTIONS`." +"value somewhere, so it goes in both :attr:`~Option.STORE_ACTIONS` and :attr:" +"`~Option.TYPED_ACTIONS`." msgstr "" -#: ../../library/optparse.rst:2147 msgid "" "to ensure that :mod:`optparse` assigns the default type of ``\"string\"`` to " -"``\"extend\"`` actions, we put the ``\"extend\"`` action " -"in :attr:`~Option.ALWAYS_TYPED_ACTIONS` as well." +"``\"extend\"`` actions, we put the ``\"extend\"`` action in :attr:`~Option." +"ALWAYS_TYPED_ACTIONS` as well." msgstr "" -#: ../../library/optparse.rst:2151 msgid "" ":meth:`MyOption.take_action` implements just this one new action, and passes " "control back to :meth:`Option.take_action` for the standard :mod:`optparse` " "actions." msgstr "" -#: ../../library/optparse.rst:2155 msgid "" "``values`` is an instance of the optparse_parser.Values class, which " "provides the very useful :meth:`ensure_value` method. :meth:`ensure_value` " "is essentially :func:`getattr` with a safety valve; it is called as ::" msgstr "" -#: ../../library/optparse.rst:2159 msgid "values.ensure_value(attr, value)" msgstr "" -#: ../../library/optparse.rst:2161 msgid "" "If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then " "ensure_value() first sets it to ``value``, and then returns ``value``. This " @@ -3350,32 +2815,26 @@ msgid "" "variable to be of a certain type (a list for the first two, an integer for " "the latter). Using :meth:`ensure_value` means that scripts using your " "action don't have to worry about setting a default value for the option " -"destinations in question; they can just leave the default as ``None`` " -"and :meth:`ensure_value` will take care of getting it right when it's needed." +"destinations in question; they can just leave the default as ``None`` and :" +"meth:`ensure_value` will take care of getting it right when it's needed." msgstr "" -#: ../../library/optparse.rst:2172 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/optparse.rst:2176 msgid "" "Raised if an :class:`Option` instance is created with invalid or " "inconsistent arguments." msgstr "" -#: ../../library/optparse.rst:2181 msgid "Raised if conflicting options are added to an :class:`OptionParser`." msgstr "" -#: ../../library/optparse.rst:2185 msgid "Raised if an invalid option value is encountered on the command line." msgstr "" -#: ../../library/optparse.rst:2189 msgid "Raised if an invalid option is passed on the command line." msgstr "" -#: ../../library/optparse.rst:2193 msgid "Raised if an ambiguous option is passed on the command line." msgstr "" diff --git a/library/os.path.po b/library/os.path.po index 46a7fc8..0f7c5cf 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,17 +18,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/os.path.rst:2 msgid ":mod:`!os.path` --- Common pathname manipulations" msgstr "" -#: ../../library/os.path.rst:7 msgid "" "**Source code:** :source:`Lib/genericpath.py`, :source:`Lib/posixpath.py` " "(for POSIX) and :source:`Lib/ntpath.py` (for Windows)." msgstr "" -#: ../../library/os.path.rst:14 msgid "" "This module implements some useful functions on pathnames. To read or write " "files see :func:`open`, and for accessing the filesystem see the :mod:`os` " @@ -36,7 +33,6 @@ msgid "" "object implementing the :class:`os.PathLike` protocol." msgstr "" -#: ../../library/os.path.rst:19 msgid "" "Unlike a Unix shell, Python does not do any *automatic* path expansions. " "Functions such as :func:`expanduser` and :func:`expandvars` can be invoked " @@ -44,67 +40,47 @@ msgid "" "the :mod:`glob` module.)" msgstr "" -#: ../../library/os.path.rst:26 msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "" -#: ../../library/os.path.rst:31 msgid "" "All of these functions accept either only bytes or only string objects as " "their parameters. The result is an object of the same type, if a path or " "file name is returned." msgstr "" -#: ../../library/os.path.rst:37 msgid "" "Since different operating systems have different path name conventions, " -"there are several versions of this module in the standard library. " -"The :mod:`os.path` module is always the path module suitable for the " -"operating system Python is running on, and therefore usable for local " -"paths. However, you can also import and use the individual modules if you " -"want to manipulate a path that is *always* in one of the different formats. " -"They all have the same interface:" +"there are several versions of this module in the standard library. The :mod:" +"`os.path` module is always the path module suitable for the operating system " +"Python is running on, and therefore usable for local paths. However, you " +"can also import and use the individual modules if you want to manipulate a " +"path that is *always* in one of the different formats. They all have the " +"same interface:" msgstr "" -#: ../../library/os.path.rst:45 -msgid ":mod:`posixpath` for UNIX-style paths" +msgid ":mod:`!posixpath` for UNIX-style paths" msgstr "" -#: ../../library/os.path.rst:46 -msgid ":mod:`ntpath` for Windows paths" +msgid ":mod:`!ntpath` for Windows paths" msgstr "" -#: ../../library/os.path.rst:51 msgid "" -":func:`exists`, :func:`lexists`, :func:`isdir`, :func:`isfile`, :func:`islink`, " -"and :func:`ismount` now return ``False`` instead of raising an exception for " -"paths that contain characters or bytes unrepresentable at the OS level." +":func:`exists`, :func:`lexists`, :func:`isdir`, :func:`isfile`, :func:" +"`islink`, and :func:`ismount` now return ``False`` instead of raising an " +"exception for paths that contain characters or bytes unrepresentable at the " +"OS level." msgstr "" -#: ../../library/os.path.rst:59 msgid "" "Return a normalized absolutized version of the pathname *path*. On most " "platforms, this is equivalent to calling the function :func:`normpath` as " "follows: ``normpath(join(os.getcwd(), path))``." msgstr "" -#: ../../library/os.path.rst:63 ../../library/os.path.rst:76 -#: ../../library/os.path.rst:117 ../../library/os.path.rst:126 -#: ../../library/os.path.rst:142 ../../library/os.path.rst:152 -#: ../../library/os.path.rst:178 ../../library/os.path.rst:198 -#: ../../library/os.path.rst:215 ../../library/os.path.rst:227 -#: ../../library/os.path.rst:236 ../../library/os.path.rst:246 -#: ../../library/os.path.rst:260 ../../library/os.path.rst:270 -#: ../../library/os.path.rst:289 ../../library/os.path.rst:309 -#: ../../library/os.path.rst:381 ../../library/os.path.rst:401 -#: ../../library/os.path.rst:441 ../../library/os.path.rst:470 -#: ../../library/os.path.rst:486 ../../library/os.path.rst:497 -#: ../../library/os.path.rst:524 ../../library/os.path.rst:549 -#: ../../library/os.path.rst:613 msgid "Accepts a :term:`path-like object`." msgstr "" -#: ../../library/os.path.rst:69 msgid "" "Return the base name of pathname *path*. This is the second element of the " "pair returned by passing *path* to the function :func:`split`. Note that " @@ -113,7 +89,6 @@ msgid "" "the :func:`basename` function returns an empty string (``''``)." msgstr "" -#: ../../library/os.path.rst:82 msgid "" "Return the longest common sub-path of each pathname in the iterable " "*paths*. Raise :exc:`ValueError` if *paths* contain both absolute and " @@ -121,28 +96,23 @@ msgid "" "empty. Unlike :func:`commonprefix`, this returns a valid path." msgstr "" -#: ../../library/os.path.rst:90 msgid "Accepts a sequence of :term:`path-like objects `." msgstr "" -#: ../../library/os.path.rst:93 msgid "Any iterable can now be passed, rather than just sequences." msgstr "" -#: ../../library/os.path.rst:99 msgid "" "Return the longest path prefix (taken character-by-character) that is a " "prefix of all paths in *list*. If *list* is empty, return the empty string " "(``''``)." msgstr "" -#: ../../library/os.path.rst:105 msgid "" "This function may return invalid paths because it works a character at a " "time. To obtain a valid path, see :func:`commonpath`." msgstr "" -#: ../../library/os.path.rst:111 msgid "" ">>> os.path.commonprefix(['/usr/lib', '/usr/local/lib'])\n" "'/usr/l'\n" @@ -151,13 +121,11 @@ msgid "" "'/usr'" msgstr "" -#: ../../library/os.path.rst:123 msgid "" "Return the directory name of pathname *path*. This is the first element of " "the pair returned by passing *path* to the function :func:`split`." msgstr "" -#: ../../library/os.path.rst:132 msgid "" "Return ``True`` if *path* refers to an existing path or an open file " "descriptor. Returns ``False`` for broken symbolic links. On some " @@ -166,35 +134,29 @@ msgid "" "physically exists." msgstr "" -#: ../../library/os.path.rst:138 msgid "" "*path* can now be an integer: ``True`` is returned if it is an open file " "descriptor, ``False`` otherwise." msgstr "" -#: ../../library/os.path.rst:148 msgid "" "Return ``True`` if *path* refers to an existing path, including broken " -"symbolic links. Equivalent to :func:`exists` on platforms " -"lacking :func:`os.lstat`." +"symbolic links. Equivalent to :func:`exists` on platforms lacking :func:" +"`os.lstat`." msgstr "" -#: ../../library/os.path.rst:160 msgid "" "On Unix and Windows, return the argument with an initial component of ``~`` " "or ``~user`` replaced by that *user*'s home directory." msgstr "" -#: ../../library/os.path.rst:165 msgid "" -"On Unix, an initial ``~`` is replaced by the environment " -"variable :envvar:`HOME` if it is set; otherwise the current user's home " -"directory is looked up in the password directory through the built-in " -"module :mod:`pwd`. An initial ``~user`` is looked up directly in the " -"password directory." +"On Unix, an initial ``~`` is replaced by the environment variable :envvar:" +"`HOME` if it is set; otherwise the current user's home directory is looked " +"up in the password directory through the built-in module :mod:`pwd`. An " +"initial ``~user`` is looked up directly in the password directory." msgstr "" -#: ../../library/os.path.rst:170 msgid "" "On Windows, :envvar:`USERPROFILE` will be used if set, otherwise a " "combination of :envvar:`HOMEPATH` and :envvar:`HOMEDRIVE` will be used. An " @@ -203,17 +165,14 @@ msgid "" "replacing it if so." msgstr "" -#: ../../library/os.path.rst:175 msgid "" "If the expansion fails or if the path does not begin with a tilde, the path " "is returned unchanged." msgstr "" -#: ../../library/os.path.rst:181 msgid "No longer uses :envvar:`HOME` on Windows." msgstr "" -#: ../../library/os.path.rst:190 msgid "" "Return the argument with environment variables expanded. Substrings of the " "form ``$name`` or ``${name}`` are replaced by the value of environment " @@ -221,21 +180,18 @@ msgid "" "variables are left unchanged." msgstr "" -#: ../../library/os.path.rst:195 msgid "" "On Windows, ``%name%`` expansions are supported in addition to ``$name`` and " "``${name}``." msgstr "" -#: ../../library/os.path.rst:204 msgid "" "Return the time of last access of *path*. The return value is a floating-" -"point number giving the number of seconds since the epoch (see " -"the :mod:`time` module). Raise :exc:`OSError` if the file does not exist " -"or is inaccessible." +"point number giving the number of seconds since the epoch (see the :mod:" +"`time` module). Raise :exc:`OSError` if the file does not exist or is " +"inaccessible." msgstr "" -#: ../../library/os.path.rst:211 msgid "" "Return the time of last modification of *path*. The return value is a " "floating-point number giving the number of seconds since the epoch (see " @@ -243,7 +199,6 @@ msgid "" "is inaccessible." msgstr "" -#: ../../library/os.path.rst:221 msgid "" "Return the system's ctime which, on some systems (like Unix) is the time of " "the last metadata change, and, on others (like Windows), is the creation " @@ -252,54 +207,46 @@ msgid "" "file does not exist or is inaccessible." msgstr "" -#: ../../library/os.path.rst:233 msgid "" "Return the size, in bytes, of *path*. Raise :exc:`OSError` if the file does " "not exist or is inaccessible." msgstr "" -#: ../../library/os.path.rst:242 msgid "" "Return ``True`` if *path* is an absolute pathname. On Unix, that means it " "begins with a slash, on Windows that it begins with two (back)slashes, or a " "drive letter, colon, and (back)slash together." msgstr "" -#: ../../library/os.path.rst:249 msgid "" "On Windows, returns ``False`` if the given path starts with exactly one " "(back)slash." msgstr "" -#: ../../library/os.path.rst:256 msgid "" "Return ``True`` if *path* is an :func:`existing ` regular file. This " "follows symbolic links, so both :func:`islink` and :func:`isfile` can be " "true for the same path." msgstr "" -#: ../../library/os.path.rst:266 msgid "" "Return ``True`` if *path* is an :func:`existing ` directory. This " "follows symbolic links, so both :func:`islink` and :func:`isdir` can be true " "for the same path." msgstr "" -#: ../../library/os.path.rst:276 msgid "" "Return ``True`` if *path* refers to an :func:`existing ` directory " "entry that is a junction. Always return ``False`` if junctions are not " "supported on the current platform." msgstr "" -#: ../../library/os.path.rst:285 msgid "" "Return ``True`` if *path* refers to an :func:`existing ` directory " "entry that is a symbolic link. Always ``False`` if symbolic links are not " "supported by the Python runtime." msgstr "" -#: ../../library/os.path.rst:295 msgid "" "Return ``True`` if pathname *path* is a :dfn:`mount point`: a point in a " "file system where a different file system has been mounted. On POSIX, the " @@ -314,11 +261,9 @@ msgid "" "the input path." msgstr "" -#: ../../library/os.path.rst:306 msgid "Added support for detecting non-root mount points on Windows." msgstr "" -#: ../../library/os.path.rst:315 msgid "" "Return ``True`` if pathname *path* is located on a Windows Dev Drive. A Dev " "Drive is optimized for developer scenarios, and offers faster performance " @@ -327,7 +272,6 @@ msgid "" "operations." msgstr "" -#: ../../library/os.path.rst:321 msgid "" "May raise an error for an invalid path, for example, one without a " "recognizable drive, but returns ``False`` on platforms that do not support " @@ -335,17 +279,14 @@ msgid "" "windows/dev-drive/>`_ for information on enabling and creating Dev Drives." msgstr "" -#: ../../library/os.path.rst:328 msgid "" "The function is now available on all platforms, and will always return " "``False`` on those that have no support for Dev Drives" msgstr "" -#: ../../library/os.path.rst:334 msgid "Return ``True`` if *path* is a reserved pathname on the current system." msgstr "" -#: ../../library/os.path.rst:336 msgid "" "On Windows, reserved filenames include those that end with a space or dot; " "those that contain colons (i.e. file streams such as \"name:stream\"), " @@ -354,7 +295,6 @@ msgid "" "\", \"AUX\", \"PRN\", \"COM1\", and \"LPT1\"." msgstr "" -#: ../../library/os.path.rst:344 msgid "" "This function approximates rules for reserved paths on most Windows systems. " "These rules change over time in various Windows releases. This function may " @@ -362,11 +302,9 @@ msgid "" "available." msgstr "" -#: ../../library/os.path.rst:349 msgid "Availability" msgstr "" -#: ../../library/os.path.rst:356 msgid "" "Join one or more path segments intelligently. The return value is the " "concatenation of *path* and all members of *\\*paths*, with exactly one " @@ -377,28 +315,24 @@ msgid "" "and joining continues from the absolute path segment." msgstr "" -#: ../../library/os.path.rst:364 msgid "" "On Windows, the drive is not reset when a rooted path segment (e.g., " "``r'\\foo'``) is encountered. If a segment is on a different drive or is an " "absolute path, all previous segments are ignored and the drive is reset. " -"Note that since there is a current directory for each drive, " -"``os.path.join(\"c:\", \"foo\")`` represents a path relative to the current " -"directory on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." +"Note that since there is a current directory for each drive, ``os.path." +"join(\"c:\", \"foo\")`` represents a path relative to the current directory " +"on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." msgstr "" -#: ../../library/os.path.rst:371 msgid "Accepts a :term:`path-like object` for *path* and *paths*." msgstr "" -#: ../../library/os.path.rst:377 msgid "" "Normalize the case of a pathname. On Windows, convert all characters in the " "pathname to lowercase, and also convert forward slashes to backward slashes. " "On other operating systems, return the path unchanged." msgstr "" -#: ../../library/os.path.rst:387 msgid "" "Normalize a pathname by collapsing redundant separators and up-level " "references so that ``A//B``, ``A/B/``, ``A/./B`` and ``A/foo/../B`` all " @@ -407,7 +341,6 @@ msgid "" "backward slashes. To normalize case, use :func:`normcase`." msgstr "" -#: ../../library/os.path.rst:394 msgid "" "On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 " "Pathname Resolution >> splitdrive(\"c:/dir\")\n" "(\"c:\", \"/dir\")" msgstr "" -#: ../../library/os.path.rst:543 msgid "" "If the path contains a UNC path, drive will contain the host name and share::" msgstr "" -#: ../../library/os.path.rst:546 msgid "" ">>> splitdrive(\"//host/computer/dir\")\n" "(\"//host/computer\", \"/dir\")" msgstr "" -#: ../../library/os.path.rst:555 msgid "" "Split the pathname *path* into a 3-item tuple ``(drive, root, tail)`` where " "*drive* is a device name or mount point, *root* is a string of separators " @@ -594,7 +498,6 @@ msgid "" "same as *path*." msgstr "" -#: ../../library/os.path.rst:561 msgid "" "On POSIX systems, *drive* is always empty. The *root* may be empty (if " "*path* is relative), a single forward slash (if *path* is absolute), or two " @@ -603,7 +506,6 @@ msgid "" "basedefs/V1_chap04.html#tag_04_13>`_.) For example::" msgstr "" -#: ../../library/os.path.rst:567 msgid "" ">>> splitroot('/home/sam')\n" "('', '/', 'home/sam')\n" @@ -613,14 +515,12 @@ msgid "" "('', '/', '//home/sam')" msgstr "" -#: ../../library/os.path.rst:574 msgid "" "On Windows, *drive* may be empty, a drive-letter name, a UNC share, or a " "device name. The *root* may be empty, a forward slash, or a backward slash. " "For example::" msgstr "" -#: ../../library/os.path.rst:578 msgid "" ">>> splitroot('C:/Users/Sam')\n" "('C:', '/', 'Users/Sam')\n" @@ -628,30 +528,25 @@ msgid "" "('//Server/Share', '/', 'Users/Sam')" msgstr "" -#: ../../library/os.path.rst:588 msgid "" "Split the pathname *path* into a pair ``(root, ext)`` such that ``root + " "ext == path``, and the extension, *ext*, is empty or begins with a period " "and contains at most one period." msgstr "" -#: ../../library/os.path.rst:592 msgid "If the path contains no extension, *ext* will be ``''``::" msgstr "" -#: ../../library/os.path.rst:594 msgid "" ">>> splitext('bar')\n" "('bar', '')" msgstr "" -#: ../../library/os.path.rst:597 msgid "" "If the path contains an extension, then *ext* will be set to this extension, " "including the leading period. Note that previous periods will be ignored::" msgstr "" -#: ../../library/os.path.rst:600 msgid "" ">>> splitext('foo.bar.exe')\n" "('foo.bar', '.exe')\n" @@ -659,13 +554,11 @@ msgid "" "('/foo/bar', '.exe')" msgstr "" -#: ../../library/os.path.rst:605 msgid "" "Leading periods of the last component of the path are considered to be part " "of the root::" msgstr "" -#: ../../library/os.path.rst:608 msgid "" ">>> splitext('.cshrc')\n" "('.cshrc', '')\n" @@ -673,48 +566,37 @@ msgid "" "('/foo/....jpg', '')" msgstr "" -#: ../../library/os.path.rst:619 msgid "" "``True`` if arbitrary Unicode strings can be used as file names (within " "limitations imposed by the file system)." msgstr "" -#: ../../library/os.path.rst:10 msgid "path" msgstr "" -#: ../../library/os.path.rst:10 msgid "operations" msgstr "" -#: ../../library/os.path.rst:156 msgid "~ (tilde)" msgstr "" -#: ../../library/os.path.rst:156 msgid "home directory expansion" msgstr "" -#: ../../library/os.path.rst:163 msgid "module" msgstr "" -#: ../../library/os.path.rst:163 msgid "pwd" msgstr "" -#: ../../library/os.path.rst:184 msgid "$ (dollar)" msgstr "" -#: ../../library/os.path.rst:184 msgid "environment variables expansion" msgstr "" -#: ../../library/os.path.rst:184 msgid "% (percent)" msgstr "" -#: ../../library/os.path.rst:184 msgid "environment variables expansion (Windows)" msgstr "" diff --git a/library/os.po b/library/os.po index a730c14..f80799e 100644 --- a/library/os.po +++ b/library/os.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,30 +18,25 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/os.rst:2 msgid ":mod:`!os` --- Miscellaneous operating system interfaces" msgstr "" -#: ../../library/os.rst:7 msgid "**Source code:** :source:`Lib/os.py`" msgstr "" -#: ../../library/os.rst:11 msgid "" "This module provides a portable way of using operating system dependent " "functionality. If you just want to read or write a file see :func:`open`, " "if you want to manipulate paths, see the :mod:`os.path` module, and if you " -"want to read all the lines in all the files on the command line see " -"the :mod:`fileinput` module. For creating temporary files and directories " -"see the :mod:`tempfile` module, and for high-level file and directory " -"handling see the :mod:`shutil` module." +"want to read all the lines in all the files on the command line see the :mod:" +"`fileinput` module. For creating temporary files and directories see the :" +"mod:`tempfile` module, and for high-level file and directory handling see " +"the :mod:`shutil` module." msgstr "" -#: ../../library/os.rst:19 msgid "Notes on the availability of these functions:" msgstr "" -#: ../../library/os.rst:21 msgid "" "The design of all built-in operating system dependent modules of Python is " "such that as long as the same functionality is available, it uses the same " @@ -50,69 +45,58 @@ msgid "" "originated with the POSIX interface)." msgstr "" -#: ../../library/os.rst:27 msgid "" "Extensions peculiar to a particular operating system are also available " "through the :mod:`os` module, but using them is of course a threat to " "portability." msgstr "" -#: ../../library/os.rst:31 msgid "" "All functions accepting path or file names accept both bytes and string " "objects, and result in an object of the same type, if a path or file name is " "returned." msgstr "" -#: ../../library/os.rst:35 msgid "" "On VxWorks, os.popen, os.fork, os.execv and os.spawn*p* are not supported." msgstr "" -#: ../../library/os.rst:37 msgid "" "On WebAssembly platforms, Android and iOS, large parts of the :mod:`os` " -"module are not available or behave differently. APIs related to processes " -"(e.g. :func:`~os.fork`, :func:`~os.execve`) and resources " -"(e.g. :func:`~os.nice`) are not available. Others like :func:`~os.getuid` " -"and :func:`~os.getpid` are emulated or stubs. WebAssembly platforms also " -"lack support for signals (e.g. :func:`~os.kill`, :func:`~os.wait`)." +"module are not available or behave differently. APIs related to processes (e." +"g. :func:`~os.fork`, :func:`~os.execve`) and resources (e.g. :func:`~os." +"nice`) are not available. Others like :func:`~os.getuid` and :func:`~os." +"getpid` are emulated or stubs. WebAssembly platforms also lack support for " +"signals (e.g. :func:`~os.kill`, :func:`~os.wait`)." msgstr "" -#: ../../library/os.rst:47 msgid "" "All functions in this module raise :exc:`OSError` (or subclasses thereof) in " "the case of invalid or inaccessible file names and paths, or other arguments " "that have the correct type, but are not accepted by the operating system." msgstr "" -#: ../../library/os.rst:53 msgid "An alias for the built-in :exc:`OSError` exception." msgstr "" -#: ../../library/os.rst:58 msgid "" "The name of the operating system dependent module imported. The following " "names have currently been registered: ``'posix'``, ``'nt'``, ``'java'``." msgstr "" -#: ../../library/os.rst:63 msgid "" ":data:`sys.platform` has a finer granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" -#: ../../library/os.rst:66 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." msgstr "" -#: ../../library/os.rst:74 msgid "File Names, Command Line Arguments, and Environment Variables" msgstr "" -#: ../../library/os.rst:76 msgid "" "In Python, file names, command line arguments, and environment variables are " "represented using the string type. On some systems, decoding these strings " @@ -121,15 +105,13 @@ msgid "" "this conversion (see :func:`sys.getfilesystemencoding`)." msgstr "" -#: ../../library/os.rst:82 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " -"startup by the :c:func:`PyConfig_Read` function: " -"see :c:member:`~PyConfig.filesystem_encoding` " -"and :c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." +"startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." +"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" +"c:type:`PyConfig`." msgstr "" -#: ../../library/os.rst:87 msgid "" "On some systems, conversion using the file system encoding may fail. In this " "case, Python uses the :ref:`surrogateescape encoding error handler " @@ -138,49 +120,40 @@ msgid "" "the original byte on encoding." msgstr "" -#: ../../library/os.rst:95 msgid "" "The :term:`file system encoding ` " "must guarantee to successfully decode all bytes below 128. If the file " -"system encoding fails to provide this guarantee, API functions can " -"raise :exc:`UnicodeError`." +"system encoding fails to provide this guarantee, API functions can raise :" +"exc:`UnicodeError`." msgstr "" -#: ../../library/os.rst:100 msgid "See also the :term:`locale encoding`." msgstr "" -#: ../../library/os.rst:106 msgid "Python UTF-8 Mode" msgstr "" -#: ../../library/os.rst:108 msgid "See :pep:`540` for more details." msgstr "" -#: ../../library/os.rst:111 msgid "" "The Python UTF-8 Mode ignores the :term:`locale encoding` and forces the " "usage of the UTF-8 encoding:" msgstr "" -#: ../../library/os.rst:114 msgid "" "Use UTF-8 as the :term:`filesystem encoding `." msgstr "" -#: ../../library/os.rst:116 msgid ":func:`sys.getfilesystemencoding` returns ``'utf-8'``." msgstr "" -#: ../../library/os.rst:117 msgid "" ":func:`locale.getpreferredencoding` returns ``'utf-8'`` (the *do_setlocale* " "argument has no effect)." msgstr "" -#: ../../library/os.rst:119 msgid "" ":data:`sys.stdin`, :data:`sys.stdout`, and :data:`sys.stderr` all use UTF-8 " "as their text encoding, with the ``surrogateescape`` :ref:`error handler " @@ -189,36 +162,30 @@ msgid "" "default locale-aware mode)" msgstr "" -#: ../../library/os.rst:124 msgid "" "On Unix, :func:`os.device_encoding` returns ``'utf-8'`` rather than the " "device encoding." msgstr "" -#: ../../library/os.rst:127 msgid "" -"Note that the standard stream settings in UTF-8 mode can be overridden " -"by :envvar:`PYTHONIOENCODING` (just as they can be in the default locale-" -"aware mode)." +"Note that the standard stream settings in UTF-8 mode can be overridden by :" +"envvar:`PYTHONIOENCODING` (just as they can be in the default locale-aware " +"mode)." msgstr "" -#: ../../library/os.rst:131 msgid "" "As a consequence of the changes in those lower level APIs, other higher " "level APIs also exhibit different default behaviours:" msgstr "" -#: ../../library/os.rst:134 msgid "" "Command line arguments, environment variables and filenames are decoded to " "text using the UTF-8 encoding." msgstr "" -#: ../../library/os.rst:136 msgid ":func:`os.fsdecode` and :func:`os.fsencode` use the UTF-8 encoding." msgstr "" -#: ../../library/os.rst:137 msgid "" ":func:`open`, :func:`io.open`, and :func:`codecs.open` use the UTF-8 " "encoding by default. However, they still use the strict error handler by " @@ -226,20 +193,17 @@ msgid "" "raise an exception rather than producing nonsense data." msgstr "" -#: ../../library/os.rst:142 msgid "" "The :ref:`Python UTF-8 Mode ` is enabled if the LC_CTYPE locale " "is ``C`` or ``POSIX`` at Python startup (see the :c:func:`PyConfig_Read` " "function)." msgstr "" -#: ../../library/os.rst:146 msgid "" "It can be enabled or disabled using the :option:`-X utf8 <-X>` command line " "option and the :envvar:`PYTHONUTF8` environment variable." msgstr "" -#: ../../library/os.rst:149 msgid "" "If the :envvar:`PYTHONUTF8` environment variable is not set at all, then the " "interpreter defaults to using the current locale settings, *unless* the " @@ -249,132 +213,37 @@ msgid "" "UTF-8 mode unless explicitly instructed not to do so." msgstr "" -#: ../../library/os.rst:156 msgid "" "The Python UTF-8 Mode can only be enabled at the Python startup. Its value " "can be read from :data:`sys.flags.utf8_mode `." msgstr "" -#: ../../library/os.rst:159 msgid "" -"See also the :ref:`UTF-8 mode on Windows ` and " -"the :term:`filesystem encoding and error handler`." +"See also the :ref:`UTF-8 mode on Windows ` and the :term:" +"`filesystem encoding and error handler`." msgstr "" -#: ../../library/os.rst:164 msgid ":pep:`686`" msgstr "" -#: ../../library/os.rst:165 msgid "Python 3.15 will make :ref:`utf8-mode` default." msgstr "" -#: ../../library/os.rst:171 msgid "Process Parameters" msgstr "" -#: ../../library/os.rst:173 msgid "" "These functions and data items provide information and operate on the " "current process and user." msgstr "" -#: ../../library/os.rst:179 msgid "" "Return the filename corresponding to the controlling terminal of the process." msgstr "" -#: ../../library/os.rst:181 ../../library/os.rst:345 ../../library/os.rst:360 -#: ../../library/os.rst:381 ../../library/os.rst:390 ../../library/os.rst:399 -#: ../../library/os.rst:412 ../../library/os.rst:421 ../../library/os.rst:449 -#: ../../library/os.rst:457 ../../library/os.rst:465 ../../library/os.rst:485 -#: ../../library/os.rst:503 ../../library/os.rst:514 ../../library/os.rst:526 -#: ../../library/os.rst:535 ../../library/os.rst:545 ../../library/os.rst:556 -#: ../../library/os.rst:568 ../../library/os.rst:604 ../../library/os.rst:611 -#: ../../library/os.rst:618 ../../library/os.rst:627 ../../library/os.rst:664 -#: ../../library/os.rst:677 ../../library/os.rst:686 ../../library/os.rst:703 -#: ../../library/os.rst:712 ../../library/os.rst:719 ../../library/os.rst:728 -#: ../../library/os.rst:737 ../../library/os.rst:744 ../../library/os.rst:751 -#: ../../library/os.rst:760 ../../library/os.rst:817 ../../library/os.rst:858 -#: ../../library/os.rst:980 ../../library/os.rst:1006 ../../library/os.rst:1019 -#: ../../library/os.rst:1036 ../../library/os.rst:1054 -#: ../../library/os.rst:1065 ../../library/os.rst:1088 -#: ../../library/os.rst:1109 ../../library/os.rst:1121 -#: ../../library/os.rst:1132 ../../library/os.rst:1145 -#: ../../library/os.rst:1166 ../../library/os.rst:1187 -#: ../../library/os.rst:1199 ../../library/os.rst:1210 -#: ../../library/os.rst:1271 ../../library/os.rst:1394 -#: ../../library/os.rst:1406 ../../library/os.rst:1420 -#: ../../library/os.rst:1430 ../../library/os.rst:1445 -#: ../../library/os.rst:1460 ../../library/os.rst:1473 -#: ../../library/os.rst:1490 ../../library/os.rst:1516 -#: ../../library/os.rst:1533 ../../library/os.rst:1547 -#: ../../library/os.rst:1562 ../../library/os.rst:1574 -#: ../../library/os.rst:1601 ../../library/os.rst:1613 -#: ../../library/os.rst:1623 ../../library/os.rst:1637 -#: ../../library/os.rst:1716 ../../library/os.rst:1736 -#: ../../library/os.rst:1745 ../../library/os.rst:1757 -#: ../../library/os.rst:1811 ../../library/os.rst:1835 -#: ../../library/os.rst:1845 ../../library/os.rst:1853 -#: ../../library/os.rst:1862 ../../library/os.rst:1873 -#: ../../library/os.rst:1910 ../../library/os.rst:1937 -#: ../../library/os.rst:1988 ../../library/os.rst:1994 -#: ../../library/os.rst:2160 ../../library/os.rst:2237 -#: ../../library/os.rst:2254 ../../library/os.rst:2268 -#: ../../library/os.rst:2294 ../../library/os.rst:2312 -#: ../../library/os.rst:2328 ../../library/os.rst:2345 -#: ../../library/os.rst:2408 ../../library/os.rst:2432 -#: ../../library/os.rst:2452 ../../library/os.rst:2588 -#: ../../library/os.rst:2610 ../../library/os.rst:2654 -#: ../../library/os.rst:2666 ../../library/os.rst:2688 -#: ../../library/os.rst:3396 ../../library/os.rst:3530 -#: ../../library/os.rst:3553 ../../library/os.rst:3567 -#: ../../library/os.rst:3787 ../../library/os.rst:3812 -#: ../../library/os.rst:3837 ../../library/os.rst:3891 -#: ../../library/os.rst:3900 ../../library/os.rst:3909 -#: ../../library/os.rst:3917 ../../library/os.rst:3926 -#: ../../library/os.rst:3935 ../../library/os.rst:4007 -#: ../../library/os.rst:4070 ../../library/os.rst:4080 -#: ../../library/os.rst:4098 ../../library/os.rst:4107 -#: ../../library/os.rst:4117 ../../library/os.rst:4127 -#: ../../library/os.rst:4137 ../../library/os.rst:4148 -#: ../../library/os.rst:4293 ../../library/os.rst:4362 -#: ../../library/os.rst:4397 ../../library/os.rst:4405 -#: ../../library/os.rst:4412 ../../library/os.rst:4419 -#: ../../library/os.rst:4426 ../../library/os.rst:4433 -#: ../../library/os.rst:4440 ../../library/os.rst:4447 -#: ../../library/os.rst:4455 ../../library/os.rst:4463 -#: ../../library/os.rst:4470 ../../library/os.rst:4477 -#: ../../library/os.rst:4486 ../../library/os.rst:4494 -#: ../../library/os.rst:4502 ../../library/os.rst:4509 -#: ../../library/os.rst:4516 ../../library/os.rst:4565 -#: ../../library/os.rst:4592 ../../library/os.rst:4615 -#: ../../library/os.rst:4631 ../../library/os.rst:4638 -#: ../../library/os.rst:4649 ../../library/os.rst:4659 -#: ../../library/os.rst:4668 ../../library/os.rst:4700 -#: ../../library/os.rst:4812 ../../library/os.rst:4828 -#: ../../library/os.rst:4861 ../../library/os.rst:4930 -#: ../../library/os.rst:4953 ../../library/os.rst:4964 -#: ../../library/os.rst:4976 ../../library/os.rst:5021 -#: ../../library/os.rst:5058 ../../library/os.rst:5081 -#: ../../library/os.rst:5102 ../../library/os.rst:5136 -#: ../../library/os.rst:5177 ../../library/os.rst:5197 -#: ../../library/os.rst:5211 ../../library/os.rst:5228 -#: ../../library/os.rst:5243 ../../library/os.rst:5254 -#: ../../library/os.rst:5266 ../../library/os.rst:5279 -#: ../../library/os.rst:5288 ../../library/os.rst:5298 -#: ../../library/os.rst:5311 ../../library/os.rst:5346 -#: ../../library/os.rst:5362 ../../library/os.rst:5373 -#: ../../library/os.rst:5385 ../../library/os.rst:5392 -#: ../../library/os.rst:5401 ../../library/os.rst:5410 -#: ../../library/os.rst:5419 ../../library/os.rst:5428 -#: ../../library/os.rst:5592 ../../library/os.rst:5601 -#: ../../library/os.rst:5625 ../../library/os.rst:5652 -#: ../../library/os.rst:5661 ../../library/os.rst:5784 msgid "Availability" msgstr "" -#: ../../library/os.rst:186 msgid "" "A :term:`mapping` object where keys and values are strings that represent " "the process environment. For example, ``environ['HOME']`` is the pathname " @@ -382,80 +251,68 @@ msgid "" "``getenv(\"HOME\")`` in C." msgstr "" -#: ../../library/os.rst:191 msgid "" "This mapping is captured the first time the :mod:`os` module is imported, " "typically during Python startup as part of processing :file:`site.py`. " -"Changes to the environment made after this time are not reflected " -"in :data:`os.environ`, except for changes made by " -"modifying :data:`os.environ` directly." +"Changes to the environment made after this time are not reflected in :data:" +"`os.environ`, except for changes made by modifying :data:`os.environ` " +"directly." msgstr "" -#: ../../library/os.rst:196 msgid "" "This mapping may be used to modify the environment as well as query the " "environment. :func:`putenv` will be called automatically when the mapping " "is modified." msgstr "" -#: ../../library/os.rst:200 msgid "" "On Unix, keys and values use :func:`sys.getfilesystemencoding` and " "``'surrogateescape'`` error handler. Use :data:`environb` if you would like " "to use a different encoding." msgstr "" -#: ../../library/os.rst:204 msgid "" "On Windows, the keys are converted to uppercase. This also applies when " "getting, setting, or deleting an item. For example, ``environ['monty'] = " "'python'`` maps the key ``'MONTY'`` to the value ``'python'``." msgstr "" -#: ../../library/os.rst:211 msgid "" "Calling :func:`putenv` directly does not change :data:`os.environ`, so it's " "better to modify :data:`os.environ`." msgstr "" -#: ../../library/os.rst:216 msgid "" "On some platforms, including FreeBSD and macOS, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for :c:func:`!putenv`." msgstr "" -#: ../../library/os.rst:220 msgid "" -"You can delete items in this mapping to unset environment " -"variables. :func:`unsetenv` will be called automatically when an item is " -"deleted from :data:`os.environ`, and when one of the :meth:`pop` " -"or :meth:`clear` methods is called." +"You can delete items in this mapping to unset environment variables. :func:" +"`unsetenv` will be called automatically when an item is deleted from :data:" +"`os.environ`, and when one of the :meth:`pop` or :meth:`clear` methods is " +"called." msgstr "" -#: ../../library/os.rst:227 msgid "The :func:`os.reload_environ` function." msgstr "" -#: ../../library/os.rst:229 ../../library/os.rst:245 msgid "" "Updated to support :pep:`584`'s merge (``|``) and update (``|=``) operators." msgstr "" -#: ../../library/os.rst:235 msgid "" "Bytes version of :data:`environ`: a :term:`mapping` object where both keys " -"and values are :class:`bytes` objects representing the process " -"environment. :data:`environ` and :data:`environb` are synchronized " -"(modifying :data:`environb` updates :data:`environ`, and vice versa)." +"and values are :class:`bytes` objects representing the process environment. :" +"data:`environ` and :data:`environb` are synchronized (modifying :data:" +"`environb` updates :data:`environ`, and vice versa)." msgstr "" -#: ../../library/os.rst:240 msgid "" ":data:`environb` is only available if :const:`supports_bytes_environ` is " "``True``." msgstr "" -#: ../../library/os.rst:251 msgid "" "The :data:`os.environ` and :data:`os.environb` mappings are a cache of " "environment variables at the time that Python started. As such, changes to " @@ -465,51 +322,40 @@ msgid "" "to the current process environment." msgstr "" -#: ../../library/os.rst:259 msgid "" "This function is not thread-safe. Calling it while the environment is being " -"modified in an other thread is an undefined behavior. Reading " -"from :data:`os.environ` or :data:`os.environb`, or calling :func:`os.getenv` " -"while reloading, may return an empty result." +"modified in an other thread is an undefined behavior. Reading from :data:`os." +"environ` or :data:`os.environb`, or calling :func:`os.getenv` while " +"reloading, may return an empty result." msgstr "" -#: ../../library/os.rst:272 msgid "These functions are described in :ref:`os-file-dir`." msgstr "" -#: ../../library/os.rst:277 msgid "" -"Encode :term:`path-like ` *filename* to " -"the :term:`filesystem encoding and error handler`; return :class:`bytes` " -"unchanged." +"Encode :term:`path-like ` *filename* to the :term:" +"`filesystem encoding and error handler`; return :class:`bytes` unchanged." msgstr "" -#: ../../library/os.rst:281 msgid ":func:`fsdecode` is the reverse function." msgstr "" -#: ../../library/os.rst:285 ../../library/os.rst:300 msgid "" "Support added to accept objects implementing the :class:`os.PathLike` " "interface." msgstr "" -#: ../../library/os.rst:292 msgid "" -"Decode the :term:`path-like ` *filename* from " -"the :term:`filesystem encoding and error handler`; return :class:`str` " -"unchanged." +"Decode the :term:`path-like ` *filename* from the :term:" +"`filesystem encoding and error handler`; return :class:`str` unchanged." msgstr "" -#: ../../library/os.rst:296 msgid ":func:`fsencode` is the reverse function." msgstr "" -#: ../../library/os.rst:307 msgid "Return the file system representation of the path." msgstr "" -#: ../../library/os.rst:309 msgid "" "If :class:`str` or :class:`bytes` is passed in, it is returned unchanged. " "Otherwise :meth:`~os.PathLike.__fspath__` is called and its value is " @@ -517,54 +363,46 @@ msgid "" "other cases, :exc:`TypeError` is raised." msgstr "" -#: ../../library/os.rst:319 msgid "" "An :term:`abstract base class` for objects representing a file system path, " "e.g. :class:`pathlib.PurePath`." msgstr "" -#: ../../library/os.rst:327 msgid "Return the file system path representation of the object." msgstr "" -#: ../../library/os.rst:329 msgid "" "The method should only return a :class:`str` or :class:`bytes` object, with " "the preference being for :class:`str`." msgstr "" -#: ../../library/os.rst:335 msgid "" "Return the value of the environment variable *key* as a string if it exists, " -"or *default* if it doesn't. *key* is a string. Note that " -"since :func:`getenv` uses :data:`os.environ`, the mapping of :func:`getenv` " -"is similarly also captured on import, and the function may not reflect " -"future environment changes." +"or *default* if it doesn't. *key* is a string. Note that since :func:" +"`getenv` uses :data:`os.environ`, the mapping of :func:`getenv` is similarly " +"also captured on import, and the function may not reflect future environment " +"changes." msgstr "" -#: ../../library/os.rst:341 msgid "" "On Unix, keys and values are decoded with :func:`sys.getfilesystemencoding` " "and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would " "like to use a different encoding." msgstr "" -#: ../../library/os.rst:350 msgid "" "Return the value of the environment variable *key* as bytes if it exists, or " -"*default* if it doesn't. *key* must be bytes. Note that " -"since :func:`getenvb` uses :data:`os.environb`, the mapping " -"of :func:`getenvb` is similarly also captured on import, and the function " -"may not reflect future environment changes." +"*default* if it doesn't. *key* must be bytes. Note that since :func:" +"`getenvb` uses :data:`os.environb`, the mapping of :func:`getenvb` is " +"similarly also captured on import, and the function may not reflect future " +"environment changes." msgstr "" -#: ../../library/os.rst:357 msgid "" ":func:`getenvb` is only available if :const:`supports_bytes_environ` is " "``True``." msgstr "" -#: ../../library/os.rst:367 msgid "" "Returns the list of directories that will be searched for a named " "executable, similar to a shell, when launching a process. *env*, when " @@ -572,28 +410,22 @@ msgid "" "in. By default, when *env* is ``None``, :data:`environ` is used." msgstr "" -#: ../../library/os.rst:378 msgid "" "Return the effective group id of the current process. This corresponds to " "the \"set id\" bit on the file being executed in the current process." msgstr "" -#: ../../library/os.rst:388 msgid "Return the current process's effective user id." msgstr "" -#: ../../library/os.rst:397 msgid "Return the real group id of the current process." msgstr "" -#: ../../library/os.rst:401 ../../library/os.rst:474 ../../library/os.rst:558 -#: ../../library/os.rst:783 msgid "" "The function is a stub on WASI, see :ref:`wasm-availability` for more " "information." msgstr "" -#: ../../library/os.rst:407 msgid "" "Return list of group ids that *user* belongs to. If *group* is not in the " "list, it is included; typically, *group* is specified as the group ID field " @@ -601,12 +433,10 @@ msgid "" "potentially omitted." msgstr "" -#: ../../library/os.rst:419 msgid "" "Return list of supplemental group ids associated with the current process." msgstr "" -#: ../../library/os.rst:425 msgid "" "On macOS, :func:`getgroups` behavior differs somewhat from other Unix " "platforms. If the Python interpreter was built with a deployment target of " @@ -618,135 +448,112 @@ msgid "" "access list for the user associated with the effective user id of the " "process; the group access list may change over the lifetime of the process, " "it is not affected by calls to :func:`setgroups`, and its length is not " -"limited to 16. The deployment target " -"value, :const:`MACOSX_DEPLOYMENT_TARGET`, can be obtained " -"with :func:`sysconfig.get_config_var`." +"limited to 16. The deployment target value, :const:" +"`MACOSX_DEPLOYMENT_TARGET`, can be obtained with :func:`sysconfig." +"get_config_var`." msgstr "" -#: ../../library/os.rst:442 msgid "" "Return the name of the user logged in on the controlling terminal of the " -"process. For most purposes, it is more useful to " -"use :func:`getpass.getuser` since the latter checks the environment " -"variables :envvar:`LOGNAME` or :envvar:`USERNAME` to find out who the user " -"is, and falls back to ``pwd.getpwuid(os.getuid())[0]`` to get the login name " -"of the current real user id." +"process. For most purposes, it is more useful to use :func:`getpass." +"getuser` since the latter checks the environment variables :envvar:`LOGNAME` " +"or :envvar:`USERNAME` to find out who the user is, and falls back to ``pwd." +"getpwuid(os.getuid())[0]`` to get the login name of the current real user id." msgstr "" -#: ../../library/os.rst:454 msgid "" "Return the process group id of the process with process id *pid*. If *pid* " "is 0, the process group id of the current process is returned." msgstr "" -#: ../../library/os.rst:463 msgid "Return the id of the current process group." msgstr "" -#: ../../library/os.rst:472 msgid "Return the current process id." msgstr "" -#: ../../library/os.rst:481 msgid "" "Return the parent's process id. When the parent process has exited, on Unix " "the id returned is the one of the init process (1), on Windows it is still " "the same id, which may be already reused by another process." msgstr "" -#: ../../library/os.rst:487 msgid "Added support for Windows." msgstr "" -#: ../../library/os.rst:495 msgid "" -"Get program scheduling priority. The value *which* is one " -"of :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and " -"*who* is interpreted relative to *which* (a process identifier " -"for :const:`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, " -"and a user ID for :const:`PRIO_USER`). A zero value for *who* denotes " -"(respectively) the calling process, the process group of the calling " -"process, or the real user ID of the calling process." +"Get program scheduling priority. The value *which* is one of :const:" +"`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " +"interpreted relative to *which* (a process identifier for :const:" +"`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, and a user " +"ID for :const:`PRIO_USER`). A zero value for *who* denotes (respectively) " +"the calling process, the process group of the calling process, or the real " +"user ID of the calling process." msgstr "" -#: ../../library/os.rst:512 ../../library/os.rst:524 msgid "" "Parameters for the :func:`getpriority` and :func:`setpriority` functions." msgstr "" -#: ../../library/os.rst:532 msgid "" "Return a tuple (ruid, euid, suid) denoting the current process's real, " "effective, and saved user ids." msgstr "" -#: ../../library/os.rst:542 msgid "" "Return a tuple (rgid, egid, sgid) denoting the current process's real, " "effective, and saved group ids." msgstr "" -#: ../../library/os.rst:554 msgid "Return the current process's real user id." msgstr "" -#: ../../library/os.rst:564 msgid "" "Call the system initgroups() to initialize the group access list with all of " "the groups of which the specified username is a member, plus the specified " "group id." msgstr "" -#: ../../library/os.rst:577 msgid "" "Set the environment variable named *key* to the string *value*. Such " -"changes to the environment affect subprocesses started " -"with :func:`os.system`, :func:`popen` or :func:`fork` and :func:`execv`." +"changes to the environment affect subprocesses started with :func:`os." +"system`, :func:`popen` or :func:`fork` and :func:`execv`." msgstr "" -#: ../../library/os.rst:581 msgid "" "Assignments to items in :data:`os.environ` are automatically translated into " "corresponding calls to :func:`putenv`; however, calls to :func:`putenv` " "don't update :data:`os.environ`, so it is actually preferable to assign to " -"items of :data:`os.environ`. This also applies to :func:`getenv` " -"and :func:`getenvb`, which respectively use :data:`os.environ` " -"and :data:`os.environb` in their implementations." +"items of :data:`os.environ`. This also applies to :func:`getenv` and :func:" +"`getenvb`, which respectively use :data:`os.environ` and :data:`os.environb` " +"in their implementations." msgstr "" -#: ../../library/os.rst:587 ../../library/os.rst:837 msgid "See also the :func:`os.reload_environ` function." msgstr "" -#: ../../library/os.rst:591 msgid "" "On some platforms, including FreeBSD and macOS, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for :c:func:`!putenv`." msgstr "" -#: ../../library/os.rst:594 msgid "" "Raises an :ref:`auditing event ` ``os.putenv`` with arguments " "``key``, ``value``." msgstr "" -#: ../../library/os.rst:596 msgid "The function is now always available." msgstr "" -#: ../../library/os.rst:602 msgid "Set the current process's effective group id." msgstr "" -#: ../../library/os.rst:609 msgid "Set the current process's effective user id." msgstr "" -#: ../../library/os.rst:616 msgid "Set the current process' group id." msgstr "" -#: ../../library/os.rst:623 msgid "" "Set the list of supplemental group ids associated with the current process " "to *groups*. *groups* must be a sequence, and each element must be an " @@ -754,22 +561,18 @@ msgid "" "the superuser." msgstr "" -#: ../../library/os.rst:629 msgid "" "On macOS, the length of *groups* may not exceed the system-defined maximum " -"number of effective group ids, typically 16. See the documentation " -"for :func:`getgroups` for cases where it may not return the same group list " -"set by calling setgroups()." +"number of effective group ids, typically 16. See the documentation for :func:" +"`getgroups` for cases where it may not return the same group list set by " +"calling setgroups()." msgstr "" -#: ../../library/os.rst:636 msgid "" -"Reassociate the current thread with a Linux namespace. See " -"the :manpage:`setns(2)` and :manpage:`namespaces(7)` man pages for more " -"details." +"Reassociate the current thread with a Linux namespace. See the :manpage:" +"`setns(2)` and :manpage:`namespaces(7)` man pages for more details." msgstr "" -#: ../../library/os.rst:640 msgid "" "If *fd* refers to a :file:`/proc/{pid}/ns/` link, ``setns()`` reassociates " "the calling thread with the namespace associated with that link, and " @@ -778,180 +581,148 @@ msgid "" "constraints)." msgstr "" -#: ../../library/os.rst:647 msgid "" -"Since Linux 5.8, *fd* may refer to a PID file descriptor obtained " -"from :func:`~os.pidfd_open`. In this case, ``setns()`` reassociates the " -"calling thread into one or more of the same namespaces as the thread " -"referred to by *fd*. This is subject to any constraints imposed by *nstype*, " -"which is a bit mask combining one or more of the :ref:`CLONE_NEW* constants " -"`, e.g. ``setns(fd, os.CLONE_NEWUTS | " -"os.CLONE_NEWPID)``. The caller's memberships in unspecified namespaces are " -"left unchanged." +"Since Linux 5.8, *fd* may refer to a PID file descriptor obtained from :func:" +"`~os.pidfd_open`. In this case, ``setns()`` reassociates the calling thread " +"into one or more of the same namespaces as the thread referred to by *fd*. " +"This is subject to any constraints imposed by *nstype*, which is a bit mask " +"combining one or more of the :ref:`CLONE_NEW* constants `, e.g. ``setns(fd, os.CLONE_NEWUTS | os.CLONE_NEWPID)``. The caller's " +"memberships in unspecified namespaces are left unchanged." msgstr "" -#: ../../library/os.rst:656 msgid "" "*fd* can be any object with a :meth:`~io.IOBase.fileno` method, or a raw " "file descriptor." msgstr "" -#: ../../library/os.rst:658 msgid "" "This example reassociates the thread with the ``init`` process's network " "namespace::" msgstr "" -#: ../../library/os.rst:660 msgid "" "fd = os.open(\"/proc/1/ns/net\", os.O_RDONLY)\n" "os.setns(fd, os.CLONE_NEWNET)\n" "os.close(fd)" msgstr "" -#: ../../library/os.rst:670 msgid "The :func:`~os.unshare` function." msgstr "" -#: ../../library/os.rst:674 msgid "" "Call the system call :c:func:`!setpgrp` or ``setpgrp(0, 0)`` depending on " "which version is implemented (if any). See the Unix manual for the " "semantics." msgstr "" -#: ../../library/os.rst:682 msgid "" "Call the system call :c:func:`!setpgid` to set the process group id of the " "process with id *pid* to the process group with id *pgrp*. See the Unix " "manual for the semantics." msgstr "" -#: ../../library/os.rst:693 msgid "" -"Set program scheduling priority. The value *which* is one " -"of :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and " -"*who* is interpreted relative to *which* (a process identifier " -"for :const:`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, " -"and a user ID for :const:`PRIO_USER`). A zero value for *who* denotes " -"(respectively) the calling process, the process group of the calling " -"process, or the real user ID of the calling process. *priority* is a value " -"in the range -20 to 19. The default priority is 0; lower priorities cause " -"more favorable scheduling." +"Set program scheduling priority. The value *which* is one of :const:" +"`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " +"interpreted relative to *which* (a process identifier for :const:" +"`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, and a user " +"ID for :const:`PRIO_USER`). A zero value for *who* denotes (respectively) " +"the calling process, the process group of the calling process, or the real " +"user ID of the calling process. *priority* is a value in the range -20 to " +"19. The default priority is 0; lower priorities cause more favorable " +"scheduling." msgstr "" -#: ../../library/os.rst:710 msgid "Set the current process's real and effective group ids." msgstr "" -#: ../../library/os.rst:717 msgid "Set the current process's real, effective, and saved group ids." msgstr "" -#: ../../library/os.rst:726 msgid "Set the current process's real, effective, and saved user ids." msgstr "" -#: ../../library/os.rst:735 msgid "Set the current process's real and effective user ids." msgstr "" -#: ../../library/os.rst:742 msgid "" "Call the system call :c:func:`!getsid`. See the Unix manual for the " "semantics." msgstr "" -#: ../../library/os.rst:749 msgid "" "Call the system call :c:func:`!setsid`. See the Unix manual for the " "semantics." msgstr "" -#: ../../library/os.rst:758 msgid "Set the current process's user id." msgstr "" -#: ../../library/os.rst:766 msgid "" "Return the error message corresponding to the error code in *code*. On " "platforms where :c:func:`!strerror` returns ``NULL`` when given an unknown " "error number, :exc:`ValueError` is raised." msgstr "" -#: ../../library/os.rst:773 msgid "" "``True`` if the native OS type of the environment is bytes (eg. ``False`` on " "Windows)." msgstr "" -#: ../../library/os.rst:781 msgid "Set the current numeric umask and return the previous umask." msgstr "" -#: ../../library/os.rst:793 msgid "" "Returns information identifying the current operating system. The return " "value is an object with five attributes:" msgstr "" -#: ../../library/os.rst:796 msgid ":attr:`sysname` - operating system name" msgstr "" -#: ../../library/os.rst:797 msgid ":attr:`nodename` - name of machine on network (implementation-defined)" msgstr "" -#: ../../library/os.rst:798 msgid ":attr:`release` - operating system release" msgstr "" -#: ../../library/os.rst:799 msgid ":attr:`version` - operating system version" msgstr "" -#: ../../library/os.rst:800 msgid ":attr:`machine` - hardware identifier" msgstr "" -#: ../../library/os.rst:802 msgid "" "For backwards compatibility, this object is also iterable, behaving like a " -"five-tuple " -"containing :attr:`sysname`, :attr:`nodename`, :attr:`release`, :attr:`version`, " -"and :attr:`machine` in that order." +"five-tuple containing :attr:`sysname`, :attr:`nodename`, :attr:`release`, :" +"attr:`version`, and :attr:`machine` in that order." msgstr "" -#: ../../library/os.rst:807 msgid "" "Some systems truncate :attr:`nodename` to 8 characters or to the leading " "component; a better way to get the hostname is :func:`socket.gethostname` " "or even ``socket.gethostbyaddr(socket.gethostname())``." msgstr "" -#: ../../library/os.rst:812 msgid "" "On macOS, iOS and Android, this returns the *kernel* name and version (i.e., " -"``'Darwin'`` on macOS and iOS; ``'Linux'`` on " -"Android). :func:`platform.uname` can be used to get the user-facing " -"operating system name and version on iOS and Android." +"``'Darwin'`` on macOS and iOS; ``'Linux'`` on Android). :func:`platform." +"uname` can be used to get the user-facing operating system name and version " +"on iOS and Android." msgstr "" -#: ../../library/os.rst:819 ../../library/os.rst:5083 msgid "" "Return type changed from a tuple to a tuple-like object with named " "attributes." msgstr "" -#: ../../library/os.rst:828 msgid "" "Unset (delete) the environment variable named *key*. Such changes to the " -"environment affect subprocesses started " -"with :func:`os.system`, :func:`popen` or :func:`fork` and :func:`execv`." +"environment affect subprocesses started with :func:`os.system`, :func:" +"`popen` or :func:`fork` and :func:`execv`." msgstr "" -#: ../../library/os.rst:832 msgid "" "Deletion of items in :data:`os.environ` is automatically translated into a " "corresponding call to :func:`unsetenv`; however, calls to :func:`unsetenv` " @@ -959,49 +730,41 @@ msgid "" "items of :data:`os.environ`." msgstr "" -#: ../../library/os.rst:839 msgid "" "Raises an :ref:`auditing event ` ``os.unsetenv`` with argument " "``key``." msgstr "" -#: ../../library/os.rst:841 msgid "The function is now always available and is also available on Windows." msgstr "" -#: ../../library/os.rst:847 msgid "" "Disassociate parts of the process execution context, and move them into a " "newly created namespace. See the :manpage:`unshare(2)` man page for more " -"details. The *flags* argument is a bit mask, combining zero or more of " -"the :ref:`CLONE_* constants `, that specifies which " -"parts of the execution context should be unshared from their existing " -"associations and moved to a new namespace. If the *flags* argument is ``0``, " -"no changes are made to the calling process's execution context." +"details. The *flags* argument is a bit mask, combining zero or more of the :" +"ref:`CLONE_* constants `, that specifies which parts " +"of the execution context should be unshared from their existing associations " +"and moved to a new namespace. If the *flags* argument is ``0``, no changes " +"are made to the calling process's execution context." msgstr "" -#: ../../library/os.rst:864 msgid "The :func:`~os.setns` function." msgstr "" -#: ../../library/os.rst:868 msgid "" "Flags to the :func:`unshare` function, if the implementation supports them. " "See :manpage:`unshare(2)` in the Linux manual for their exact effect and " "availability." msgstr "" -#: ../../library/os.rst:891 msgid "File Object Creation" msgstr "" -#: ../../library/os.rst:893 msgid "" -"These functions create new :term:`file objects `. (See " -"also :func:`~os.open` for opening file descriptors.)" +"These functions create new :term:`file objects `. (See also :" +"func:`~os.open` for opening file descriptors.)" msgstr "" -#: ../../library/os.rst:899 msgid "" "Return an open file object connected to the file descriptor *fd*. This is " "an alias of the :func:`open` built-in function and accepts the same " @@ -1009,16 +772,13 @@ msgid "" "must always be an integer." msgstr "" -#: ../../library/os.rst:908 msgid "File Descriptor Operations" msgstr "" -#: ../../library/os.rst:910 msgid "" "These functions operate on I/O streams referenced using file descriptors." msgstr "" -#: ../../library/os.rst:912 msgid "" "File descriptors are small integers corresponding to a file that has been " "opened by the current process. For example, standard input is usually file " @@ -1028,7 +788,6 @@ msgid "" "pipes are also referenced by file descriptors." msgstr "" -#: ../../library/os.rst:919 msgid "" "The :meth:`~io.IOBase.fileno` method can be used to obtain the file " "descriptor associated with a :term:`file object` when required. Note that " @@ -1036,25 +795,21 @@ msgid "" "ignoring aspects such as internal buffering of data." msgstr "" -#: ../../library/os.rst:927 msgid "Close file descriptor *fd*." msgstr "" -#: ../../library/os.rst:931 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To close a " -"\"file object\" returned by the built-in function :func:`open` or " -"by :func:`popen` or :func:`fdopen`, use its :meth:`~io.IOBase.close` method." +"\"file object\" returned by the built-in function :func:`open` or by :func:" +"`popen` or :func:`fdopen`, use its :meth:`~io.IOBase.close` method." msgstr "" -#: ../../library/os.rst:939 msgid "" "Close all file descriptors from *fd_low* (inclusive) to *fd_high* " "(exclusive), ignoring errors. Equivalent to (but much faster than)::" msgstr "" -#: ../../library/os.rst:942 msgid "" "for fd in range(fd_low, fd_high):\n" " try:\n" @@ -1063,7 +818,6 @@ msgid "" " pass" msgstr "" -#: ../../library/os.rst:951 msgid "" "Copy *count* bytes from file descriptor *src*, starting from offset " "*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*. " @@ -1071,14 +825,12 @@ msgid "" "respectively for *offset_dst*." msgstr "" -#: ../../library/os.rst:956 msgid "" "In Linux kernel older than 5.3, the files pointed to by *src* and *dst* must " -"reside in the same filesystem, otherwise an :exc:`OSError` is raised " -"with :attr:`~OSError.errno` set to :const:`errno.EXDEV`." +"reside in the same filesystem, otherwise an :exc:`OSError` is raised with :" +"attr:`~OSError.errno` set to :const:`errno.EXDEV`." msgstr "" -#: ../../library/os.rst:960 msgid "" "This copy is done without the additional cost of transferring data from the " "kernel to user space and then back into the kernel. Additionally, some " @@ -1088,19 +840,16 @@ msgid "" "(in the case of NFS)." msgstr "" -#: ../../library/os.rst:967 msgid "" "The function copies bytes between two file descriptors. Text options, like " "the encoding and the line ending, are ignored." msgstr "" -#: ../../library/os.rst:970 msgid "" "The return value is the amount of bytes copied. This could be less than the " "amount requested." msgstr "" -#: ../../library/os.rst:975 msgid "" "On Linux, :func:`os.copy_file_range` should not be used for copying a range " "of a pseudo file from a special filesystem like procfs and sysfs. It will " @@ -1108,39 +857,32 @@ msgid "" "known Linux kernel issue." msgstr "" -#: ../../library/os.rst:987 msgid "" "Return a string describing the encoding of the device associated with *fd* " "if it is connected to a terminal; else return :const:`None`." msgstr "" -#: ../../library/os.rst:990 msgid "" "On Unix, if the :ref:`Python UTF-8 Mode ` is enabled, return " "``'UTF-8'`` rather than the device encoding." msgstr "" -#: ../../library/os.rst:993 msgid "On Unix, the function now implements the Python UTF-8 Mode." msgstr "" -#: ../../library/os.rst:999 msgid "" -"Return a duplicate of file descriptor *fd*. The new file descriptor " -"is :ref:`non-inheritable `." +"Return a duplicate of file descriptor *fd*. The new file descriptor is :ref:" +"`non-inheritable `." msgstr "" -#: ../../library/os.rst:1002 msgid "" "On Windows, when duplicating a standard stream (0: stdin, 1: stdout, 2: " "stderr), the new file descriptor is :ref:`inheritable `." msgstr "" -#: ../../library/os.rst:1008 ../../library/os.rst:1293 msgid "The new file descriptor is now non-inheritable." msgstr "" -#: ../../library/os.rst:1014 msgid "" "Duplicate file descriptor *fd* to *fd2*, closing the latter first if " "necessary. Return *fd2*. The new file descriptor is :ref:`inheritable " @@ -1148,67 +890,50 @@ msgid "" "``False``." msgstr "" -#: ../../library/os.rst:1021 msgid "Add the optional *inheritable* parameter." msgstr "" -#: ../../library/os.rst:1024 msgid "Return *fd2* on success. Previously, ``None`` was always returned." msgstr "" -#: ../../library/os.rst:1030 msgid "" "Change the mode of the file given by *fd* to the numeric *mode*. See the " "docs for :func:`chmod` for possible values of *mode*. As of Python 3.3, " "this is equivalent to ``os.chmod(fd, mode)``." msgstr "" -#: ../../library/os.rst:1034 ../../library/os.rst:2209 -#: ../../library/os.rst:2310 msgid "" "Raises an :ref:`auditing event ` ``os.chmod`` with arguments " "``path``, ``mode``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:1038 ../../library/os.rst:1056 -#: ../../library/os.rst:1147 ../../library/os.rst:1759 -#: ../../library/os.rst:2206 ../../library/os.rst:2239 -#: ../../library/os.rst:3532 msgid "" "The function is limited on WASI, see :ref:`wasm-availability` for more " "information." msgstr "" -#: ../../library/os.rst:1041 ../../library/os.rst:2317 msgid "Added support on Windows." msgstr "" -#: ../../library/os.rst:1047 msgid "" "Change the owner and group id of the file given by *fd* to the numeric *uid* " -"and *gid*. To leave one of the ids unchanged, set it to -1. " -"See :func:`chown`. As of Python 3.3, this is equivalent to ``os.chown(fd, " -"uid, gid)``." +"and *gid*. To leave one of the ids unchanged, set it to -1. See :func:" +"`chown`. As of Python 3.3, this is equivalent to ``os.chown(fd, uid, gid)``." msgstr "" -#: ../../library/os.rst:1052 ../../library/os.rst:2235 -#: ../../library/os.rst:2326 msgid "" "Raises an :ref:`auditing event ` ``os.chown`` with arguments " "``path``, ``uid``, ``gid``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:1062 msgid "" "Force write of file with filedescriptor *fd* to disk. Does not force update " "of metadata." msgstr "" -#: ../../library/os.rst:1068 msgid "This function is not available on MacOS." msgstr "" -#: ../../library/os.rst:1073 msgid "" "Return system configuration information relevant to an open file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -1219,232 +944,188 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: ../../library/os.rst:1081 ../../library/os.rst:2646 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " -"included in ``pathconf_names``, an :exc:`OSError` is raised " -"with :const:`errno.EINVAL` for the error number." +"included in ``pathconf_names``, an :exc:`OSError` is raised with :const:" +"`errno.EINVAL` for the error number." msgstr "" -#: ../../library/os.rst:1086 msgid "As of Python 3.3, this is equivalent to ``os.pathconf(fd, name)``." msgstr "" -#: ../../library/os.rst:1093 msgid "" "Get the status of the file descriptor *fd*. Return a :class:`stat_result` " "object." msgstr "" -#: ../../library/os.rst:1096 msgid "As of Python 3.3, this is equivalent to ``os.stat(fd)``." msgstr "" -#: ../../library/os.rst:1100 ../../library/os.rst:2474 msgid "The :func:`.stat` function." msgstr "" -#: ../../library/os.rst:1105 msgid "" "Return information about the filesystem containing the file associated with " "file descriptor *fd*, like :func:`statvfs`. As of Python 3.3, this is " "equivalent to ``os.statvfs(fd)``." msgstr "" -#: ../../library/os.rst:1114 msgid "" "Force write of file with filedescriptor *fd* to disk. On Unix, this calls " "the native :c:func:`!fsync` function; on Windows, the MS :c:func:`!_commit` " "function." msgstr "" -#: ../../library/os.rst:1117 msgid "" "If you're starting with a buffered Python :term:`file object` *f*, first do " "``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all " "internal buffers associated with *f* are written to disk." msgstr "" -#: ../../library/os.rst:1126 msgid "" "Truncate the file corresponding to file descriptor *fd*, so that it is at " -"most *length* bytes in size. As of Python 3.3, this is equivalent to " -"``os.truncate(fd, length)``." +"most *length* bytes in size. As of Python 3.3, this is equivalent to ``os." +"truncate(fd, length)``." msgstr "" -#: ../../library/os.rst:1130 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``fd``, ``length``." msgstr "" -#: ../../library/os.rst:1134 ../../library/os.rst:3571 msgid "Added support for Windows" msgstr "" -#: ../../library/os.rst:1140 msgid "" -"Get the blocking mode of the file descriptor: ``False`` if " -"the :data:`O_NONBLOCK` flag is set, ``True`` if the flag is cleared." +"Get the blocking mode of the file descriptor: ``False`` if the :data:" +"`O_NONBLOCK` flag is set, ``True`` if the flag is cleared." msgstr "" -#: ../../library/os.rst:1143 msgid "See also :func:`set_blocking` and :meth:`socket.socket.setblocking`." msgstr "" -#: ../../library/os.rst:1150 ../../library/os.rst:1762 msgid "On Windows, this function is limited to pipes." msgstr "" -#: ../../library/os.rst:1154 ../../library/os.rst:1766 msgid "Added support for pipes on Windows." msgstr "" -#: ../../library/os.rst:1160 msgid "" "Grant access to the slave pseudo-terminal device associated with the master " "pseudo-terminal device to which the file descriptor *fd* refers. The file " "descriptor *fd* is not closed upon failure." msgstr "" -#: ../../library/os.rst:1164 msgid "Calls the C standard library function :c:func:`grantpt`." msgstr "" -#: ../../library/os.rst:1173 msgid "" "Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" "like) device, else ``False``." msgstr "" -#: ../../library/os.rst:1179 msgid "" "Apply, test or remove a POSIX lock on an open file descriptor. *fd* is an " -"open file descriptor. *cmd* specifies the command to use - one " -"of :data:`F_LOCK`, :data:`F_TLOCK`, :data:`F_ULOCK` or :data:`F_TEST`. *len* " +"open file descriptor. *cmd* specifies the command to use - one of :data:" +"`F_LOCK`, :data:`F_TLOCK`, :data:`F_ULOCK` or :data:`F_TEST`. *len* " "specifies the section of the file to lock." msgstr "" -#: ../../library/os.rst:1185 msgid "" "Raises an :ref:`auditing event ` ``os.lockf`` with arguments " "``fd``, ``cmd``, ``len``." msgstr "" -#: ../../library/os.rst:1197 msgid "Flags that specify what action :func:`lockf` will take." msgstr "" -#: ../../library/os.rst:1206 msgid "" "Prepare the tty of which fd is a file descriptor for a new login session. " "Make the calling process a session leader; make the tty the controlling tty, " "the stdin, the stdout, and the stderr of the calling process; close fd." msgstr "" -#: ../../library/os.rst:1217 msgid "" "Set the current position of file descriptor *fd* to position *pos*, modified " "by *whence*, and return the new position in bytes relative to the start of " "the file. Valid values for *whence* are:" msgstr "" -#: ../../library/os.rst:1222 msgid "" ":const:`SEEK_SET` or ``0`` -- set *pos* relative to the beginning of the file" msgstr "" -#: ../../library/os.rst:1223 msgid "" ":const:`SEEK_CUR` or ``1`` -- set *pos* relative to the current file position" msgstr "" -#: ../../library/os.rst:1224 msgid ":const:`SEEK_END` or ``2`` -- set *pos* relative to the end of the file" msgstr "" -#: ../../library/os.rst:1225 msgid "" ":const:`SEEK_HOLE` -- set *pos* to the next data location, relative to *pos*" msgstr "" -#: ../../library/os.rst:1226 msgid "" ":const:`SEEK_DATA` -- set *pos* to the next data hole, relative to *pos*" msgstr "" -#: ../../library/os.rst:1230 msgid "Add support for :const:`!SEEK_HOLE` and :const:`!SEEK_DATA`." msgstr "" -#: ../../library/os.rst:1237 msgid "" "Parameters to the :func:`lseek` function and the :meth:`~io.IOBase.seek` " "method on :term:`file-like objects `, for whence to adjust the " "file position indicator." msgstr "" -#: ../../library/os.rst:1241 msgid ":const:`SEEK_SET`" msgstr "" -#: ../../library/os.rst:1242 msgid "Adjust the file position relative to the beginning of the file." msgstr "" -#: ../../library/os.rst:1243 msgid ":const:`SEEK_CUR`" msgstr "" -#: ../../library/os.rst:1244 msgid "Adjust the file position relative to the current file position." msgstr "" -#: ../../library/os.rst:1245 msgid ":const:`SEEK_END`" msgstr "" -#: ../../library/os.rst:1246 msgid "Adjust the file position relative to the end of the file." msgstr "" -#: ../../library/os.rst:1248 msgid "Their values are 0, 1, and 2, respectively." msgstr "" -#: ../../library/os.rst:1254 msgid "" "Parameters to the :func:`lseek` function and the :meth:`~io.IOBase.seek` " "method on :term:`file-like objects `, for seeking file data and " "holes on sparsely allocated files." msgstr "" -#: ../../library/os.rst:1258 msgid ":data:`!SEEK_DATA`" msgstr "" -#: ../../library/os.rst:1259 msgid "" "Adjust the file offset to the next location containing data, relative to the " "seek position." msgstr "" -#: ../../library/os.rst:1262 msgid ":data:`!SEEK_HOLE`" msgstr "" -#: ../../library/os.rst:1263 msgid "" "Adjust the file offset to the next location containing a hole, relative to " "the seek position. A hole is defined as a sequence of zeros." msgstr "" -#: ../../library/os.rst:1269 msgid "These operations only make sense for filesystems that support them." msgstr "" -#: ../../library/os.rst:1278 msgid "" "Open the file *path* and set various flags according to *flags* and possibly " "its mode according to *mode*. When computing *mode*, the current umask " @@ -1452,117 +1133,81 @@ msgid "" "file. The new file descriptor is :ref:`non-inheritable `." msgstr "" -#: ../../library/os.rst:1283 msgid "" "For a description of the flag and mode values, see the C run-time " "documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) " -"are defined in the :mod:`os` module. In particular, on Windows " -"adding :const:`O_BINARY` is needed to open files in binary mode." +"are defined in the :mod:`os` module. In particular, on Windows adding :" +"const:`O_BINARY` is needed to open files in binary mode." msgstr "" -#: ../../library/os.rst:1288 msgid "" "This function can support :ref:`paths relative to directory descriptors " "` with the *dir_fd* parameter." msgstr "" -#: ../../library/os.rst:1291 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " "``mode``, ``flags``." msgstr "" -#: ../../library/os.rst:1298 msgid "" "This function is intended for low-level I/O. For normal usage, use the " -"built-in function :func:`open`, which returns a :term:`file object` " -"with :meth:`~file.read` and :meth:`~file.write` methods (and many more). To " -"wrap a file descriptor in a file object, use :func:`fdopen`." +"built-in function :func:`open`, which returns a :term:`file object` with :" +"meth:`~file.read` and :meth:`~file.write` methods (and many more). To wrap " +"a file descriptor in a file object, use :func:`fdopen`." msgstr "" -#: ../../library/os.rst:1303 ../../library/os.rst:2479 -#: ../../library/os.rst:2519 ../../library/os.rst:2590 -#: ../../library/os.rst:2612 ../../library/os.rst:2693 -#: ../../library/os.rst:2723 ../../library/os.rst:2830 -#: ../../library/os.rst:3587 msgid "Added the *dir_fd* parameter." msgstr "" -#: ../../library/os.rst:1306 ../../library/os.rst:1657 -#: ../../library/os.rst:1892 ../../library/os.rst:5179 msgid "" "If the system call is interrupted and the signal handler does not raise an " -"exception, the function now retries the system call instead of raising " -"an :exc:`InterruptedError` exception (see :pep:`475` for the rationale)." -msgstr "" - -#: ../../library/os.rst:1311 ../../library/os.rst:2102 -#: ../../library/os.rst:2134 ../../library/os.rst:2165 -#: ../../library/os.rst:2215 ../../library/os.rst:2256 -#: ../../library/os.rst:2296 ../../library/os.rst:2314 -#: ../../library/os.rst:2330 ../../library/os.rst:2390 -#: ../../library/os.rst:2482 ../../library/os.rst:2522 -#: ../../library/os.rst:2566 ../../library/os.rst:2593 -#: ../../library/os.rst:2615 ../../library/os.rst:2656 -#: ../../library/os.rst:2726 ../../library/os.rst:2745 -#: ../../library/os.rst:2833 ../../library/os.rst:3123 -#: ../../library/os.rst:3410 ../../library/os.rst:3574 -#: ../../library/os.rst:3590 ../../library/os.rst:3630 -#: ../../library/os.rst:3730 ../../library/os.rst:3791 -#: ../../library/os.rst:4188 ../../library/os.rst:4368 -#: ../../library/os.rst:4937 +"exception, the function now retries the system call instead of raising an :" +"exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +msgstr "" + msgid "Accepts a :term:`path-like object`." msgstr "" -#: ../../library/os.rst:1314 msgid "" -"The following constants are options for the *flags* parameter to " -"the :func:`~os.open` function. They can be combined using the bitwise OR " -"operator ``|``. Some of them are not available on all platforms. For " -"descriptions of their availability and use, consult the :manpage:`open(2)` " -"manual page on Unix or `the MSDN `_ on Windows." +"The following constants are options for the *flags* parameter to the :func:" +"`~os.open` function. They can be combined using the bitwise OR operator ``|" +"``. Some of them are not available on all platforms. For descriptions of " +"their availability and use, consult the :manpage:`open(2)` manual page on " +"Unix or `the MSDN `_ " +"on Windows." msgstr "" -#: ../../library/os.rst:1329 msgid "The above constants are available on Unix and Windows." msgstr "" -#: ../../library/os.rst:1340 msgid "The above constants are only available on Unix." msgstr "" -#: ../../library/os.rst:1342 msgid "Add :data:`O_CLOEXEC` constant." msgstr "" -#: ../../library/os.rst:1353 msgid "The above constants are only available on Windows." msgstr "" -#: ../../library/os.rst:1360 msgid "The above constants are only available on macOS." msgstr "" -#: ../../library/os.rst:1362 msgid "" -"Add :data:`O_EVTONLY`, :data:`O_FSYNC`, :data:`O_SYMLINK` " -"and :data:`O_NOFOLLOW_ANY` constants." +"Add :data:`O_EVTONLY`, :data:`O_FSYNC`, :data:`O_SYMLINK` and :data:" +"`O_NOFOLLOW_ANY` constants." msgstr "" -#: ../../library/os.rst:1376 msgid "" "The above constants are extensions and not present if they are not defined " "by the C library." msgstr "" -#: ../../library/os.rst:1379 msgid "" "Add :data:`O_PATH` on systems that support it. Add :data:`O_TMPFILE`, only " "available on Linux Kernel 3.11 or newer." msgstr "" -#: ../../library/os.rst:1389 msgid "" "Open a new pseudo-terminal pair. Return a pair of file descriptors " "``(master, slave)`` for the pty and the tty, respectively. The new file " @@ -1570,213 +1215,176 @@ msgid "" "more portable approach, use the :mod:`pty` module." msgstr "" -#: ../../library/os.rst:1396 ../../library/os.rst:1408 msgid "The new file descriptors are now non-inheritable." msgstr "" -#: ../../library/os.rst:1402 msgid "" "Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for " "reading and writing, respectively. The new file descriptor is :ref:`non-" "inheritable `." msgstr "" -#: ../../library/os.rst:1414 msgid "" "Create a pipe with *flags* set atomically. *flags* can be constructed by " -"ORing together one or more of these " -"values: :data:`O_NONBLOCK`, :data:`O_CLOEXEC`. Return a pair of file " -"descriptors ``(r, w)`` usable for reading and writing, respectively." +"ORing together one or more of these values: :data:`O_NONBLOCK`, :data:" +"`O_CLOEXEC`. Return a pair of file descriptors ``(r, w)`` usable for reading " +"and writing, respectively." msgstr "" -#: ../../library/os.rst:1427 msgid "" "Ensures that enough disk space is allocated for the file specified by *fd* " "starting from *offset* and continuing for *len* bytes." msgstr "" -#: ../../library/os.rst:1437 msgid "" "Announces an intention to access data in a specific pattern thus allowing " "the kernel to make optimizations. The advice applies to the region of the " "file specified by *fd* starting at *offset* and continuing for *len* bytes. " -"*advice* is one " -"of :data:`POSIX_FADV_NORMAL`, :data:`POSIX_FADV_SEQUENTIAL`, :data:`POSIX_FADV_RANDOM`, :data:`POSIX_FADV_NOREUSE`, :data:`POSIX_FADV_WILLNEED` " -"or :data:`POSIX_FADV_DONTNEED`." +"*advice* is one of :data:`POSIX_FADV_NORMAL`, :data:" +"`POSIX_FADV_SEQUENTIAL`, :data:`POSIX_FADV_RANDOM`, :data:" +"`POSIX_FADV_NOREUSE`, :data:`POSIX_FADV_WILLNEED` or :data:" +"`POSIX_FADV_DONTNEED`." msgstr "" -#: ../../library/os.rst:1457 msgid "" "Flags that can be used in *advice* in :func:`posix_fadvise` that specify the " "access pattern that is likely to be used." msgstr "" -#: ../../library/os.rst:1467 msgid "" "Read at most *n* bytes from file descriptor *fd* at a position of *offset*, " "leaving the file offset unchanged." msgstr "" -#: ../../library/os.rst:1470 ../../library/os.rst:1646 msgid "" "Return a bytestring containing the bytes read. If the end of the file " "referred to by *fd* has been reached, an empty bytes object is returned." msgstr "" -#: ../../library/os.rst:1480 msgid "Open and return a file descriptor for a master pseudo-terminal device." msgstr "" -#: ../../library/os.rst:1482 msgid "" "Calls the C standard library function :c:func:`posix_openpt`. The *oflag* " "argument is used to set file status flags and file access modes as specified " "in the manual page of :c:func:`posix_openpt` of your system." msgstr "" -#: ../../library/os.rst:1486 msgid "" "The returned file descriptor is :ref:`non-inheritable `. If " "the value :data:`O_CLOEXEC` is available on the system, it is added to " "*oflag*." msgstr "" -#: ../../library/os.rst:1497 msgid "" -"Read from a file descriptor *fd* at a position of *offset* into " -"mutable :term:`bytes-like objects ` *buffers*, leaving " -"the file offset unchanged. Transfer data into each buffer until it is full " -"and then move on to the next buffer in the sequence to hold the rest of the " -"data." +"Read from a file descriptor *fd* at a position of *offset* into mutable :" +"term:`bytes-like objects ` *buffers*, leaving the file " +"offset unchanged. Transfer data into each buffer until it is full and then " +"move on to the next buffer in the sequence to hold the rest of the data." msgstr "" -#: ../../library/os.rst:1502 ../../library/os.rst:1587 msgid "" "The flags argument contains a bitwise OR of zero or more of the following " "flags:" msgstr "" -#: ../../library/os.rst:1505 msgid ":data:`RWF_HIPRI`" msgstr "" -#: ../../library/os.rst:1506 msgid ":data:`RWF_NOWAIT`" msgstr "" -#: ../../library/os.rst:1508 ../../library/os.rst:1829 msgid "" "Return the total number of bytes actually read which can be less than the " "total capacity of all the objects." msgstr "" -#: ../../library/os.rst:1511 ../../library/os.rst:1596 -#: ../../library/os.rst:1832 ../../library/os.rst:1907 msgid "" "The operating system may set a limit (:func:`sysconf` value " "``'SC_IOV_MAX'``) on the number of buffers that can be used." msgstr "" -#: ../../library/os.rst:1514 msgid "Combine the functionality of :func:`os.readv` and :func:`os.pread`." msgstr "" -#: ../../library/os.rst:1518 ../../library/os.rst:1603 msgid "Using flags requires Linux >= 4.6." msgstr "" -#: ../../library/os.rst:1525 msgid "" "Do not wait for data which is not immediately available. If this flag is " "specified, the system call will return instantly if it would have to read " "data from the backing storage or wait for a lock." msgstr "" -#: ../../library/os.rst:1529 msgid "" "If some data was successfully read, it will return the number of bytes read. " -"If no bytes were read, it will return ``-1`` and set errno " -"to :const:`errno.EAGAIN`." +"If no bytes were read, it will return ``-1`` and set errno to :const:`errno." +"EAGAIN`." msgstr "" -#: ../../library/os.rst:1540 msgid "" "High priority read/write. Allows block-based filesystems to use polling of " "the device, which provides lower latency, but may use additional resources." msgstr "" -#: ../../library/os.rst:1544 msgid "" "Currently, on Linux, this feature is usable only on a file descriptor opened " "using the :data:`O_DIRECT` flag." msgstr "" -#: ../../library/os.rst:1554 msgid "" "Return the name of the slave pseudo-terminal device associated with the " "master pseudo-terminal device to which the file descriptor *fd* refers. The " "file descriptor *fd* is not closed upon failure." msgstr "" -#: ../../library/os.rst:1558 msgid "" "Calls the reentrant C standard library function :c:func:`ptsname_r` if it is " "available; otherwise, the C standard library function :c:func:`ptsname`, " "which is not guaranteed to be thread-safe, is called." msgstr "" -#: ../../library/os.rst:1569 msgid "" "Write the bytestring in *str* to file descriptor *fd* at position of " "*offset*, leaving the file offset unchanged." msgstr "" -#: ../../library/os.rst:1572 ../../library/os.rst:1882 msgid "Return the number of bytes actually written." msgstr "" -#: ../../library/os.rst:1581 msgid "" "Write the *buffers* contents to file descriptor *fd* at an offset *offset*, " -"leaving the file offset unchanged. *buffers* must be a sequence " -"of :term:`bytes-like objects `. Buffers are processed in " -"array order. Entire contents of the first buffer is written before " -"proceeding to the second, and so on." +"leaving the file offset unchanged. *buffers* must be a sequence of :term:" +"`bytes-like objects `. Buffers are processed in array " +"order. Entire contents of the first buffer is written before proceeding to " +"the second, and so on." msgstr "" -#: ../../library/os.rst:1590 msgid ":data:`RWF_DSYNC`" msgstr "" -#: ../../library/os.rst:1591 msgid ":data:`RWF_SYNC`" msgstr "" -#: ../../library/os.rst:1592 msgid ":data:`RWF_APPEND`" msgstr "" -#: ../../library/os.rst:1594 msgid "Return the total number of bytes actually written." msgstr "" -#: ../../library/os.rst:1599 msgid "Combine the functionality of :func:`os.writev` and :func:`os.pwrite`." msgstr "" -#: ../../library/os.rst:1610 msgid "" "Provide a per-write equivalent of the :data:`O_DSYNC` :func:`os.open` flag. " "This flag effect applies only to the data range written by the system call." msgstr "" -#: ../../library/os.rst:1620 msgid "" "Provide a per-write equivalent of the :data:`O_SYNC` :func:`os.open` flag. " "This flag effect applies only to the data range written by the system call." msgstr "" -#: ../../library/os.rst:1630 msgid "" "Provide a per-write equivalent of the :data:`O_APPEND` :func:`os.open` flag. " "This flag is meaningful only for :func:`os.pwritev`, and its effect applies " @@ -1786,26 +1394,22 @@ msgid "" "*offset* is updated." msgstr "" -#: ../../library/os.rst:1644 msgid "Read at most *n* bytes from file descriptor *fd*." msgstr "" -#: ../../library/os.rst:1651 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To read a \"file " "object\" returned by the built-in function :func:`open` or by :func:`popen` " -"or :func:`fdopen`, or :data:`sys.stdin`, use its :meth:`~file.read` " -"or :meth:`~file.readline` methods." +"or :func:`fdopen`, or :data:`sys.stdin`, use its :meth:`~file.read` or :meth:" +"`~file.readline` methods." msgstr "" -#: ../../library/os.rst:1665 msgid "" "Read from a file descriptor *fd* into a mutable :ref:`buffer object " "` *buffer*." msgstr "" -#: ../../library/os.rst:1668 msgid "" "The *buffer* should be mutable and :term:`bytes-like `. " "On success, returns the number of bytes read. Less bytes may be read than " @@ -1814,43 +1418,36 @@ msgid "" "Other errors will not be retried and an error will be raised." msgstr "" -#: ../../library/os.rst:1674 msgid "" "Returns 0 if *fd* is at end of file or if the provided *buffer* has length 0 " "(which can be used to check for errors without reading data). Never returns " "negative." msgstr "" -#: ../../library/os.rst:1680 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`os.pipe`. To read a " -"\"file object\" returned by the built-in function :func:`open`, " -"or :data:`sys.stdin`, use its member functions, for " -"example :meth:`io.BufferedIOBase.readinto`, :meth:`io.BufferedIOBase.read`, " -"or :meth:`io.TextIOBase.read`" +"\"file object\" returned by the built-in function :func:`open`, or :data:" +"`sys.stdin`, use its member functions, for example :meth:`io.BufferedIOBase." +"readinto`, :meth:`io.BufferedIOBase.read`, or :meth:`io.TextIOBase.read`" msgstr "" -#: ../../library/os.rst:1693 msgid "" "Copy *count* bytes from file descriptor *in_fd* to file descriptor *out_fd* " "starting at *offset*. Return the number of bytes sent. When EOF is reached " "return ``0``." msgstr "" -#: ../../library/os.rst:1697 msgid "" -"The first function notation is supported by all platforms that " -"define :func:`sendfile`." +"The first function notation is supported by all platforms that define :func:" +"`sendfile`." msgstr "" -#: ../../library/os.rst:1700 msgid "" "On Linux, if *offset* is given as ``None``, the bytes are read from the " "current position of *in_fd* and the position of *in_fd* is updated." msgstr "" -#: ../../library/os.rst:1703 msgid "" "The second case may be used on macOS and FreeBSD where *headers* and " "*trailers* are arbitrary sequences of buffers that are written before and " @@ -1858,102 +1455,85 @@ msgid "" "case." msgstr "" -#: ../../library/os.rst:1707 msgid "" "On macOS and FreeBSD, a value of ``0`` for *count* specifies to send until " "the end of *in_fd* is reached." msgstr "" -#: ../../library/os.rst:1710 msgid "" "All platforms support sockets as *out_fd* file descriptor, and some " "platforms allow other types (e.g. regular file, pipe) as well." msgstr "" -#: ../../library/os.rst:1713 msgid "" "Cross-platform applications should not use *headers*, *trailers* and *flags* " "arguments." msgstr "" -#: ../../library/os.rst:1720 msgid "" -"For a higher-level wrapper of :func:`sendfile`, " -"see :meth:`socket.socket.sendfile`." +"For a higher-level wrapper of :func:`sendfile`, see :meth:`socket.socket." +"sendfile`." msgstr "" -#: ../../library/os.rst:1725 msgid "Parameters *out* and *in* was renamed to *out_fd* and *in_fd*." msgstr "" -#: ../../library/os.rst:1733 msgid "" "Parameters to the :func:`sendfile` function, if the implementation supports " "them." msgstr "" -#: ../../library/os.rst:1742 msgid "" "Parameter to the :func:`sendfile` function, if the implementation supports " "it. The data won't be cached in the virtual memory and will be freed " "afterwards." msgstr "" -#: ../../library/os.rst:1752 msgid "" -"Set the blocking mode of the specified file descriptor. Set " -"the :data:`O_NONBLOCK` flag if blocking is ``False``, clear the flag " -"otherwise." +"Set the blocking mode of the specified file descriptor. Set the :data:" +"`O_NONBLOCK` flag if blocking is ``False``, clear the flag otherwise." msgstr "" -#: ../../library/os.rst:1755 msgid "See also :func:`get_blocking` and :meth:`socket.socket.setblocking`." msgstr "" -#: ../../library/os.rst:1772 msgid "" "Transfer *count* bytes from file descriptor *src*, starting from offset " "*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*." msgstr "" -#: ../../library/os.rst:1775 msgid "" "The splicing behaviour can be modified by specifying a *flags* value. Any of " "the following variables may used, combined using bitwise OR (the ``|`` " "operator):" msgstr "" -#: ../../library/os.rst:1779 msgid "" "If :const:`SPLICE_F_MOVE` is specified, the kernel is asked to move pages " "instead of copying, but pages may still be copied if the kernel cannot move " "the pages from the pipe." msgstr "" -#: ../../library/os.rst:1783 msgid "" "If :const:`SPLICE_F_NONBLOCK` is specified, the kernel is asked to not block " "on I/O. This makes the splice pipe operations nonblocking, but splice may " "nevertheless block because the spliced file descriptors may block." msgstr "" -#: ../../library/os.rst:1788 msgid "" "If :const:`SPLICE_F_MORE` is specified, it hints to the kernel that more " "data will be coming in a subsequent splice." msgstr "" -#: ../../library/os.rst:1791 msgid "" "At least one of the file descriptors must refer to a pipe. If *offset_src* " "is ``None``, then *src* is read from the current position; respectively for " "*offset_dst*. The offset associated to the file descriptor that refers to a " "pipe must be ``None``. The files pointed to by *src* and *dst* must reside " -"in the same filesystem, otherwise an :exc:`OSError` is raised " -"with :attr:`~OSError.errno` set to :const:`errno.EXDEV`." +"in the same filesystem, otherwise an :exc:`OSError` is raised with :attr:" +"`~OSError.errno` set to :const:`errno.EXDEV`." msgstr "" -#: ../../library/os.rst:1798 msgid "" "This copy is done without the additional cost of transferring data from the " "kernel to user space and then back into the kernel. Additionally, some " @@ -1961,7 +1541,6 @@ msgid "" "files are opened as binary." msgstr "" -#: ../../library/os.rst:1803 msgid "" "Upon successful completion, returns the number of bytes spliced to or from " "the pipe. A return value of 0 means end of input. If *src* refers to a pipe, " @@ -1970,11 +1549,9 @@ msgid "" "the pipe." msgstr "" -#: ../../library/os.rst:1809 msgid "The :manpage:`splice(2)` man page." msgstr "" -#: ../../library/os.rst:1824 msgid "" "Read from a file descriptor *fd* into a number of mutable :term:`bytes-like " "objects ` *buffers*. Transfer data into each buffer until " @@ -1982,50 +1559,42 @@ msgid "" "rest of the data." msgstr "" -#: ../../library/os.rst:1842 msgid "" "Return the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`)." msgstr "" -#: ../../library/os.rst:1850 msgid "" "Set the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`) to *pg*." msgstr "" -#: ../../library/os.rst:1858 msgid "" "Return a string which specifies the terminal device associated with file " "descriptor *fd*. If *fd* is not associated with a terminal device, an " "exception is raised." msgstr "" -#: ../../library/os.rst:1867 msgid "" "Unlock the slave pseudo-terminal device associated with the master pseudo-" "terminal device to which the file descriptor *fd* refers. The file " "descriptor *fd* is not closed upon failure." msgstr "" -#: ../../library/os.rst:1871 msgid "Calls the C standard library function :c:func:`unlockpt`." msgstr "" -#: ../../library/os.rst:1880 msgid "Write the bytestring in *str* to file descriptor *fd*." msgstr "" -#: ../../library/os.rst:1886 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To write a " -"\"file object\" returned by the built-in function :func:`open` or " -"by :func:`popen` or :func:`fdopen`, or :data:`sys.stdout` " -"or :data:`sys.stderr`, use its :meth:`~file.write` method." +"\"file object\" returned by the built-in function :func:`open` or by :func:" +"`popen` or :func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use " +"its :meth:`~file.write` method." msgstr "" -#: ../../library/os.rst:1900 msgid "" "Write the contents of *buffers* to file descriptor *fd*. *buffers* must be a " "sequence of :term:`bytes-like objects `. Buffers are " @@ -2033,70 +1602,57 @@ msgid "" "before proceeding to the second, and so on." msgstr "" -#: ../../library/os.rst:1905 msgid "Returns the total number of bytes actually written." msgstr "" -#: ../../library/os.rst:1918 msgid "Querying the size of a terminal" msgstr "" -#: ../../library/os.rst:1924 msgid "" "Return the size of the terminal window as ``(columns, lines)``, tuple of " "type :class:`terminal_size`." msgstr "" -#: ../../library/os.rst:1927 msgid "" "The optional argument ``fd`` (default ``STDOUT_FILENO``, or standard output) " "specifies which file descriptor should be queried." msgstr "" -#: ../../library/os.rst:1930 msgid "" "If the file descriptor is not connected to a terminal, an :exc:`OSError` is " "raised." msgstr "" -#: ../../library/os.rst:1933 msgid "" ":func:`shutil.get_terminal_size` is the high-level function which should " "normally be used, ``os.get_terminal_size`` is the low-level implementation." msgstr "" -#: ../../library/os.rst:1941 msgid "" "A subclass of tuple, holding ``(columns, lines)`` of the terminal window " "size." msgstr "" -#: ../../library/os.rst:1945 msgid "Width of the terminal window in characters." msgstr "" -#: ../../library/os.rst:1949 msgid "Height of the terminal window in characters." msgstr "" -#: ../../library/os.rst:1955 msgid "Inheritance of File Descriptors" msgstr "" -#: ../../library/os.rst:1959 msgid "" "A file descriptor has an \"inheritable\" flag which indicates if the file " "descriptor can be inherited by child processes. Since Python 3.4, file " "descriptors created by Python are non-inheritable by default." msgstr "" -#: ../../library/os.rst:1963 msgid "" "On UNIX, non-inheritable file descriptors are closed in child processes at " "the execution of a new program, other file descriptors are inherited." msgstr "" -#: ../../library/os.rst:1966 msgid "" "On Windows, non-inheritable handles and file descriptors are closed in child " "processes, except for standard streams (file descriptors 0, 1 and 2: stdin, " @@ -2107,38 +1663,30 @@ msgid "" "only inherited if the *close_fds* parameter is ``False``." msgstr "" -#: ../../library/os.rst:1974 msgid "On WebAssembly platforms, the file descriptor cannot be modified." msgstr "" -#: ../../library/os.rst:1978 msgid "" "Get the \"inheritable\" flag of the specified file descriptor (a boolean)." msgstr "" -#: ../../library/os.rst:1982 msgid "Set the \"inheritable\" flag of the specified file descriptor." msgstr "" -#: ../../library/os.rst:1986 msgid "Get the \"inheritable\" flag of the specified handle (a boolean)." msgstr "" -#: ../../library/os.rst:1992 msgid "Set the \"inheritable\" flag of the specified handle." msgstr "" -#: ../../library/os.rst:2000 msgid "Files and Directories" msgstr "" -#: ../../library/os.rst:2002 msgid "" "On some Unix platforms, many of these functions support one or more of these " "features:" msgstr "" -#: ../../library/os.rst:2007 msgid "" "**specifying a file descriptor:** Normally the *path* argument provided to " "functions in the :mod:`os` module must be a string specifying a file path. " @@ -2149,21 +1697,18 @@ msgid "" "``chdir``).)" msgstr "" -#: ../../library/os.rst:2015 msgid "" "You can check whether or not *path* can be specified as a file descriptor " "for a particular function on your platform using :data:`os.supports_fd`. If " -"this functionality is unavailable, using it will raise " -"a :exc:`NotImplementedError`." +"this functionality is unavailable, using it will raise a :exc:" +"`NotImplementedError`." msgstr "" -#: ../../library/os.rst:2020 msgid "" "If the function also supports *dir_fd* or *follow_symlinks* arguments, it's " "an error to specify one of those when supplying *path* as a file descriptor." msgstr "" -#: ../../library/os.rst:2025 msgid "" "**paths relative to directory descriptors:** If *dir_fd* is not ``None``, it " "should be a file descriptor referring to a directory, and the path to " @@ -2174,14 +1719,12 @@ msgid "" "``access``)." msgstr "" -#: ../../library/os.rst:2032 msgid "" "You can check whether or not *dir_fd* is supported for a particular function " "on your platform using :data:`os.supports_dir_fd`. If it's unavailable, " "using it will raise a :exc:`NotImplementedError`." msgstr "" -#: ../../library/os.rst:2038 msgid "" "**not following symlinks:** If *follow_symlinks* is ``False``, and the last " "element of the path to operate on is a symbolic link, the function will " @@ -2190,32 +1733,28 @@ msgid "" "function.)" msgstr "" -#: ../../library/os.rst:2044 msgid "" "You can check whether or not *follow_symlinks* is supported for a particular " "function on your platform using :data:`os.supports_follow_symlinks`. If it's " "unavailable, using it will raise a :exc:`NotImplementedError`." msgstr "" -#: ../../library/os.rst:2052 msgid "" "Use the real uid/gid to test for access to *path*. Note that most " "operations will use the effective uid/gid, therefore this routine can be " "used in a suid/sgid environment to test if the invoking user has the " "specified access to *path*. *mode* should be :const:`F_OK` to test the " -"existence of *path*, or it can be the inclusive OR of one or more " -"of :const:`R_OK`, :const:`W_OK`, and :const:`X_OK` to test permissions. " -"Return :const:`True` if access is allowed, :const:`False` if not. See the " -"Unix man page :manpage:`access(2)` for more information." +"existence of *path*, or it can be the inclusive OR of one or more of :const:" +"`R_OK`, :const:`W_OK`, and :const:`X_OK` to test permissions. Return :const:" +"`True` if access is allowed, :const:`False` if not. See the Unix man page :" +"manpage:`access(2)` for more information." msgstr "" -#: ../../library/os.rst:2061 msgid "" "This function can support specifying :ref:`paths relative to directory " "descriptors ` and :ref:`not following symlinks `." msgstr "" -#: ../../library/os.rst:2064 msgid "" "If *effective_ids* is ``True``, :func:`access` will perform its access " "checks using the effective uid/gid instead of the real uid/gid. " @@ -2224,7 +1763,6 @@ msgid "" "unavailable, using it will raise a :exc:`NotImplementedError`." msgstr "" -#: ../../library/os.rst:2072 msgid "" "Using :func:`access` to check if a user is authorized to e.g. open a file " "before actually doing so using :func:`open` creates a security hole, because " @@ -2233,7 +1771,6 @@ msgid "" "For example::" msgstr "" -#: ../../library/os.rst:2078 msgid "" "if os.access(\"myfile\", os.R_OK):\n" " with open(\"myfile\") as fp:\n" @@ -2241,11 +1778,9 @@ msgid "" "return \"some default data\"" msgstr "" -#: ../../library/os.rst:2083 msgid "is better written as::" msgstr "" -#: ../../library/os.rst:2085 msgid "" "try:\n" " fp = open(\"myfile\")\n" @@ -2256,214 +1791,166 @@ msgid "" " return fp.read()" msgstr "" -#: ../../library/os.rst:2095 msgid "" "I/O operations may fail even when :func:`access` indicates that they would " "succeed, particularly for operations on network filesystems which may have " "permissions semantics beyond the usual POSIX permission-bit model." msgstr "" -#: ../../library/os.rst:2099 msgid "Added the *dir_fd*, *effective_ids*, and *follow_symlinks* parameters." msgstr "" -#: ../../library/os.rst:2111 msgid "" "Values to pass as the *mode* parameter of :func:`access` to test the " "existence, readability, writability and executability of *path*, " "respectively." msgstr "" -#: ../../library/os.rst:2120 msgid "Change the current working directory to *path*." msgstr "" -#: ../../library/os.rst:2122 msgid "" "This function can support :ref:`specifying a file descriptor `. " "The descriptor must refer to an opened directory, not an open file." msgstr "" -#: ../../library/os.rst:2125 msgid "" -"This function can raise :exc:`OSError` and subclasses such " -"as :exc:`FileNotFoundError`, :exc:`PermissionError`, " -"and :exc:`NotADirectoryError`." +"This function can raise :exc:`OSError` and subclasses such as :exc:" +"`FileNotFoundError`, :exc:`PermissionError`, and :exc:`NotADirectoryError`." msgstr "" -#: ../../library/os.rst:2128 ../../library/os.rst:2266 msgid "" "Raises an :ref:`auditing event ` ``os.chdir`` with argument " "``path``." msgstr "" -#: ../../library/os.rst:2130 msgid "" "Added support for specifying *path* as a file descriptor on some platforms." msgstr "" -#: ../../library/os.rst:2140 msgid "" "Set the flags of *path* to the numeric *flags*. *flags* may take a " -"combination (bitwise OR) of the following values (as defined in " -"the :mod:`stat` module):" +"combination (bitwise OR) of the following values (as defined in the :mod:" +"`stat` module):" msgstr "" -#: ../../library/os.rst:2143 msgid ":const:`stat.UF_NODUMP`" msgstr "" -#: ../../library/os.rst:2144 msgid ":const:`stat.UF_IMMUTABLE`" msgstr "" -#: ../../library/os.rst:2145 msgid ":const:`stat.UF_APPEND`" msgstr "" -#: ../../library/os.rst:2146 msgid ":const:`stat.UF_OPAQUE`" msgstr "" -#: ../../library/os.rst:2147 msgid ":const:`stat.UF_NOUNLINK`" msgstr "" -#: ../../library/os.rst:2148 msgid ":const:`stat.UF_COMPRESSED`" msgstr "" -#: ../../library/os.rst:2149 msgid ":const:`stat.UF_HIDDEN`" msgstr "" -#: ../../library/os.rst:2150 msgid ":const:`stat.SF_ARCHIVED`" msgstr "" -#: ../../library/os.rst:2151 msgid ":const:`stat.SF_IMMUTABLE`" msgstr "" -#: ../../library/os.rst:2152 msgid ":const:`stat.SF_APPEND`" msgstr "" -#: ../../library/os.rst:2153 msgid ":const:`stat.SF_NOUNLINK`" msgstr "" -#: ../../library/os.rst:2154 msgid ":const:`stat.SF_SNAPSHOT`" msgstr "" -#: ../../library/os.rst:2156 msgid "" "This function can support :ref:`not following symlinks `." msgstr "" -#: ../../library/os.rst:2158 ../../library/os.rst:2292 msgid "" "Raises an :ref:`auditing event ` ``os.chflags`` with arguments " "``path``, ``flags``." msgstr "" -#: ../../library/os.rst:2162 msgid "Added the *follow_symlinks* parameter." msgstr "" -#: ../../library/os.rst:2171 msgid "" "Change the mode of *path* to the numeric *mode*. *mode* may take one of the " "following values (as defined in the :mod:`stat` module) or bitwise ORed " "combinations of them:" msgstr "" -#: ../../library/os.rst:2175 msgid ":const:`stat.S_ISUID`" msgstr "" -#: ../../library/os.rst:2176 msgid ":const:`stat.S_ISGID`" msgstr "" -#: ../../library/os.rst:2177 msgid ":const:`stat.S_ENFMT`" msgstr "" -#: ../../library/os.rst:2178 msgid ":const:`stat.S_ISVTX`" msgstr "" -#: ../../library/os.rst:2179 msgid ":const:`stat.S_IREAD`" msgstr "" -#: ../../library/os.rst:2180 msgid ":const:`stat.S_IWRITE`" msgstr "" -#: ../../library/os.rst:2181 msgid ":const:`stat.S_IEXEC`" msgstr "" -#: ../../library/os.rst:2182 msgid ":const:`stat.S_IRWXU`" msgstr "" -#: ../../library/os.rst:2183 msgid ":const:`stat.S_IRUSR`" msgstr "" -#: ../../library/os.rst:2184 msgid ":const:`stat.S_IWUSR`" msgstr "" -#: ../../library/os.rst:2185 msgid ":const:`stat.S_IXUSR`" msgstr "" -#: ../../library/os.rst:2186 msgid ":const:`stat.S_IRWXG`" msgstr "" -#: ../../library/os.rst:2187 msgid ":const:`stat.S_IRGRP`" msgstr "" -#: ../../library/os.rst:2188 msgid ":const:`stat.S_IWGRP`" msgstr "" -#: ../../library/os.rst:2189 msgid ":const:`stat.S_IXGRP`" msgstr "" -#: ../../library/os.rst:2190 msgid ":const:`stat.S_IRWXO`" msgstr "" -#: ../../library/os.rst:2191 msgid ":const:`stat.S_IROTH`" msgstr "" -#: ../../library/os.rst:2192 msgid ":const:`stat.S_IWOTH`" msgstr "" -#: ../../library/os.rst:2193 msgid ":const:`stat.S_IXOTH`" msgstr "" -#: ../../library/os.rst:2195 ../../library/os.rst:2228 -#: ../../library/os.rst:3620 msgid "" -"This function can support :ref:`specifying a file descriptor " -"`, :ref:`paths relative to directory descriptors ` " -"and :ref:`not following symlinks `." +"This function can support :ref:`specifying a file descriptor `, :" +"ref:`paths relative to directory descriptors ` and :ref:`not " +"following symlinks `." msgstr "" -#: ../../library/os.rst:2201 msgid "" "Although Windows supports :func:`chmod`, you can only set the file's read-" "only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants " @@ -2471,120 +1958,98 @@ msgid "" "value of *follow_symlinks* is ``False`` on Windows." msgstr "" -#: ../../library/os.rst:2211 ../../library/os.rst:2242 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd* and *follow_symlinks* arguments." msgstr "" -#: ../../library/os.rst:2218 msgid "" "Added support for a file descriptor and the *follow_symlinks* argument on " "Windows." msgstr "" -#: ../../library/os.rst:2225 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. To " "leave one of the ids unchanged, set it to -1." msgstr "" -#: ../../library/os.rst:2232 msgid "" "See :func:`shutil.chown` for a higher-level function that accepts names in " "addition to numeric ids." msgstr "" -#: ../../library/os.rst:2246 msgid "Supports a :term:`path-like object`." msgstr "" -#: ../../library/os.rst:2252 msgid "Change the root directory of the current process to *path*." msgstr "" -#: ../../library/os.rst:2262 msgid "" "Change the current working directory to the directory represented by the " "file descriptor *fd*. The descriptor must refer to an opened directory, not " "an open file. As of Python 3.3, this is equivalent to ``os.chdir(fd)``." msgstr "" -#: ../../library/os.rst:2273 msgid "Return a string representing the current working directory." msgstr "" -#: ../../library/os.rst:2278 msgid "Return a bytestring representing the current working directory." msgstr "" -#: ../../library/os.rst:2280 msgid "" "The function now uses the UTF-8 encoding on Windows, rather than the ANSI " "code page: see :pep:`529` for the rationale. The function is no longer " "deprecated on Windows." msgstr "" -#: ../../library/os.rst:2288 msgid "" "Set the flags of *path* to the numeric *flags*, like :func:`chflags`, but do " -"not follow symbolic links. As of Python 3.3, this is equivalent to " -"``os.chflags(path, flags, follow_symlinks=False)``." +"not follow symbolic links. As of Python 3.3, this is equivalent to ``os." +"chflags(path, flags, follow_symlinks=False)``." msgstr "" -#: ../../library/os.rst:2302 msgid "" "Change the mode of *path* to the numeric *mode*. If path is a symlink, this " "affects the symlink rather than the target. See the docs for :func:`chmod` " -"for possible values of *mode*. As of Python 3.3, this is equivalent to " -"``os.chmod(path, mode, follow_symlinks=False)``." +"for possible values of *mode*. As of Python 3.3, this is equivalent to ``os." +"chmod(path, mode, follow_symlinks=False)``." msgstr "" -#: ../../library/os.rst:2307 msgid "" "``lchmod()`` is not part of POSIX, but Unix implementations may have it if " "changing the mode of symbolic links is supported." msgstr "" -#: ../../library/os.rst:2322 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. " "This function will not follow symbolic links. As of Python 3.3, this is " "equivalent to ``os.chown(path, uid, gid, follow_symlinks=False)``." msgstr "" -#: ../../library/os.rst:2336 msgid "Create a hard link pointing to *src* named *dst*." msgstr "" -#: ../../library/os.rst:2338 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " -"supply :ref:`paths relative to directory descriptors `, " -"and :ref:`not following symlinks `. The default value of " +"supply :ref:`paths relative to directory descriptors `, and :ref:" +"`not following symlinks `. The default value of " "*follow_symlinks* is ``False`` on Windows." msgstr "" -#: ../../library/os.rst:2343 msgid "" "Raises an :ref:`auditing event ` ``os.link`` with arguments " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." msgstr "" -#: ../../library/os.rst:2347 ../../library/os.rst:4617 msgid "Added Windows support." msgstr "" -#: ../../library/os.rst:2350 msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* parameters." msgstr "" -#: ../../library/os.rst:2353 ../../library/os.rst:2777 -#: ../../library/os.rst:2814 ../../library/os.rst:3542 msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "" -#: ../../library/os.rst:2359 msgid "" "Return a list containing the names of the entries in the directory given by " "*path*. The list is in arbitrary order, and does not include the special " @@ -2593,7 +2058,6 @@ msgid "" "function, whether a name for that file be included is unspecified." msgstr "" -#: ../../library/os.rst:2365 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the " @@ -2601,41 +2065,33 @@ msgid "" "circumstances, they will be of type ``str``." msgstr "" -#: ../../library/os.rst:2370 ../../library/os.rst:2862 msgid "" "This function can also support :ref:`specifying a file descriptor " "`; the file descriptor must refer to a directory." msgstr "" -#: ../../library/os.rst:2373 msgid "" "Raises an :ref:`auditing event ` ``os.listdir`` with argument " "``path``." msgstr "" -#: ../../library/os.rst:2376 msgid "To encode ``str`` filenames to ``bytes``, use :func:`~os.fsencode`." msgstr "" -#: ../../library/os.rst:2380 msgid "" "The :func:`scandir` function returns directory entries along with file " "attribute information, giving better performance for many common use cases." msgstr "" -#: ../../library/os.rst:2384 msgid "The *path* parameter became optional." msgstr "" -#: ../../library/os.rst:2387 ../../library/os.rst:3401 msgid "Added support for specifying *path* as an open file descriptor." msgstr "" -#: ../../library/os.rst:2396 msgid "Return a list containing the names of drives on a Windows system." msgstr "" -#: ../../library/os.rst:2398 msgid "" "A drive name typically looks like ``'C:\\\\'``. Not every drive name will be " "associated with a volume, and some may be inaccessible for a variety of " @@ -2643,52 +2099,43 @@ msgid "" "function does not test for access." msgstr "" -#: ../../library/os.rst:2403 msgid "May raise :exc:`OSError` if an error occurs collecting the drive names." msgstr "" -#: ../../library/os.rst:2406 msgid "" "Raises an :ref:`auditing event ` ``os.listdrives`` with no " "arguments." msgstr "" -#: ../../library/os.rst:2415 msgid "" "Return a list containing the mount points for a volume on a Windows system." msgstr "" -#: ../../library/os.rst:2418 msgid "" -"*volume* must be represented as a GUID path, like those returned " -"by :func:`os.listvolumes`. Volumes may be mounted in multiple locations or " -"not at all. In the latter case, the list will be empty. Mount points that " -"are not associated with a volume will not be returned by this function." +"*volume* must be represented as a GUID path, like those returned by :func:" +"`os.listvolumes`. Volumes may be mounted in multiple locations or not at " +"all. In the latter case, the list will be empty. Mount points that are not " +"associated with a volume will not be returned by this function." msgstr "" -#: ../../library/os.rst:2424 msgid "" "The mount points return by this function will be absolute paths, and may be " "longer than the drive name." msgstr "" -#: ../../library/os.rst:2427 msgid "" "Raises :exc:`OSError` if the volume is not recognized or if an error occurs " "collecting the paths." msgstr "" -#: ../../library/os.rst:2430 msgid "" "Raises an :ref:`auditing event ` ``os.listmounts`` with argument " "``volume``." msgstr "" -#: ../../library/os.rst:2439 msgid "Return a list containing the volumes in the system." msgstr "" -#: ../../library/os.rst:2441 msgid "" "Volumes are typically represented as a GUID path that looks like ``\\\\?" "\\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\\``. Files can usually be " @@ -2697,68 +2144,54 @@ msgid "" "function is to retrieve mount points using :func:`os.listmounts`." msgstr "" -#: ../../library/os.rst:2448 msgid "May raise :exc:`OSError` if an error occurs collecting the volumes." msgstr "" -#: ../../library/os.rst:2450 msgid "" "Raises an :ref:`auditing event ` ``os.listvolumes`` with no " "arguments." msgstr "" -#: ../../library/os.rst:2459 msgid "" "Perform the equivalent of an :c:func:`!lstat` system call on the given path. " -"Similar to :func:`~os.stat`, but does not follow symbolic links. Return " -"a :class:`stat_result` object." +"Similar to :func:`~os.stat`, but does not follow symbolic links. Return a :" +"class:`stat_result` object." msgstr "" -#: ../../library/os.rst:2463 msgid "" -"On platforms that do not support symbolic links, this is an alias " -"for :func:`~os.stat`." +"On platforms that do not support symbolic links, this is an alias for :func:" +"`~os.stat`." msgstr "" -#: ../../library/os.rst:2466 msgid "" "As of Python 3.3, this is equivalent to ``os.stat(path, dir_fd=dir_fd, " "follow_symlinks=False)``." msgstr "" -#: ../../library/os.rst:2469 ../../library/os.rst:2511 -#: ../../library/os.rst:2579 ../../library/os.rst:2607 -#: ../../library/os.rst:2681 msgid "" "This function can also support :ref:`paths relative to directory descriptors " "`." msgstr "" -#: ../../library/os.rst:2476 ../../library/os.rst:2690 -#: ../../library/os.rst:3535 msgid "Added support for Windows 6.0 (Vista) symbolic links." msgstr "" -#: ../../library/os.rst:2485 msgid "" "On Windows, now opens reparse points that represent another path (name " "surrogates), including symbolic links and directory junctions. Other kinds " -"of reparse points are resolved by the operating system as " -"for :func:`~os.stat`." +"of reparse points are resolved by the operating system as for :func:`~os." +"stat`." msgstr "" -#: ../../library/os.rst:2494 msgid "Create a directory named *path* with numeric mode *mode*." msgstr "" -#: ../../library/os.rst:2496 msgid "" "If the directory already exists, :exc:`FileExistsError` is raised. If a " "parent directory in the path does not exist, :exc:`FileNotFoundError` is " "raised." msgstr "" -#: ../../library/os.rst:2501 msgid "" "On some systems, *mode* is ignored. Where it is used, the current umask " "value is first masked out. If bits other than the last 9 (i.e. the last 3 " @@ -2767,36 +2200,30 @@ msgid "" "call :func:`chmod` explicitly to set them." msgstr "" -#: ../../library/os.rst:2507 msgid "" "On Windows, a *mode* of ``0o700`` is specifically handled to apply access " "control to the new directory such that only the current user and " "administrators have access. Other values of *mode* are ignored." msgstr "" -#: ../../library/os.rst:2514 msgid "" "It is also possible to create temporary directories; see the :mod:`tempfile` " "module's :func:`tempfile.mkdtemp` function." msgstr "" -#: ../../library/os.rst:2517 ../../library/os.rst:2554 msgid "" "Raises an :ref:`auditing event ` ``os.mkdir`` with arguments " "``path``, ``mode``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:2525 msgid "Windows now handles a *mode* of ``0o700``." msgstr "" -#: ../../library/os.rst:2535 msgid "" "Recursive directory creation function. Like :func:`mkdir`, but makes all " "intermediate-level directories needed to contain the leaf directory." msgstr "" -#: ../../library/os.rst:2538 msgid "" "The *mode* parameter is passed to :func:`mkdir` for creating the leaf " "directory; see :ref:`the mkdir() description ` for how it is " @@ -2805,47 +2232,39 @@ msgid "" "file permission bits of existing parent directories are not changed." msgstr "" -#: ../../library/os.rst:2544 msgid "" "If *exist_ok* is ``False`` (the default), a :exc:`FileExistsError` is raised " "if the target directory already exists." msgstr "" -#: ../../library/os.rst:2549 msgid "" ":func:`makedirs` will become confused if the path elements to create " "include :data:`pardir` (eg. \"..\" on UNIX systems)." msgstr "" -#: ../../library/os.rst:2552 msgid "This function handles UNC paths correctly." msgstr "" -#: ../../library/os.rst:2556 msgid "Added the *exist_ok* parameter." msgstr "" -#: ../../library/os.rst:2561 msgid "" -"Before Python 3.4.1, if *exist_ok* was ``True`` and the directory " -"existed, :func:`makedirs` would still raise an error if *mode* did not match " -"the mode of the existing directory. Since this behavior was impossible to " -"implement safely, it was removed in Python 3.4.1. See :issue:`21082`." +"Before Python 3.4.1, if *exist_ok* was ``True`` and the directory existed, :" +"func:`makedirs` would still raise an error if *mode* did not match the mode " +"of the existing directory. Since this behavior was impossible to implement " +"safely, it was removed in Python 3.4.1. See :issue:`21082`." msgstr "" -#: ../../library/os.rst:2569 msgid "" "The *mode* argument no longer affects the file permission bits of newly " "created intermediate-level directories." msgstr "" -#: ../../library/os.rst:2576 msgid "" "Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The " "current umask value is first masked out from the mode." msgstr "" -#: ../../library/os.rst:2582 msgid "" "FIFOs are pipes that can be accessed like regular files. FIFOs exist until " "they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are " @@ -2855,34 +2274,29 @@ msgid "" "rendezvous point." msgstr "" -#: ../../library/os.rst:2599 msgid "" "Create a filesystem node (file, device special file or named pipe) named " "*path*. *mode* specifies both the permissions to use and the type of node to " -"be created, being combined (bitwise OR) with one of ``stat.S_IFREG``, " -"``stat.S_IFCHR``, ``stat.S_IFBLK``, and ``stat.S_IFIFO`` (those constants " -"are available in :mod:`stat`). For ``stat.S_IFCHR`` and ``stat.S_IFBLK``, " -"*device* defines the newly created device special file (probably " -"using :func:`os.makedev`), otherwise it is ignored." +"be created, being combined (bitwise OR) with one of ``stat.S_IFREG``, ``stat." +"S_IFCHR``, ``stat.S_IFBLK``, and ``stat.S_IFIFO`` (those constants are " +"available in :mod:`stat`). For ``stat.S_IFCHR`` and ``stat.S_IFBLK``, " +"*device* defines the newly created device special file (probably using :func:" +"`os.makedev`), otherwise it is ignored." msgstr "" -#: ../../library/os.rst:2621 msgid "" -"Extract the device major number from a raw device number (usually " -"the :attr:`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." +"Extract the device major number from a raw device number (usually the :attr:" +"`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." msgstr "" -#: ../../library/os.rst:2627 msgid "" -"Extract the device minor number from a raw device number (usually " -"the :attr:`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." +"Extract the device minor number from a raw device number (usually the :attr:" +"`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." msgstr "" -#: ../../library/os.rst:2633 msgid "Compose a raw device number from the major and minor device numbers." msgstr "" -#: ../../library/os.rst:2638 msgid "" "Return system configuration information relevant to a named file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -2893,72 +2307,58 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: ../../library/os.rst:2651 ../../library/os.rst:3394 -#: ../../library/os.rst:3563 msgid "" "This function can support :ref:`specifying a file descriptor `." msgstr "" -#: ../../library/os.rst:2662 msgid "" "Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` " "to the integer values defined for those names by the host operating system. " "This can be used to determine the set of names known to the system." msgstr "" -#: ../../library/os.rst:2671 msgid "" "Return a string representing the path to which the symbolic link points. " "The result may be either an absolute or relative pathname; if it is " -"relative, it may be converted to an absolute pathname using " -"``os.path.join(os.path.dirname(path), result)``." +"relative, it may be converted to an absolute pathname using ``os.path." +"join(os.path.dirname(path), result)``." msgstr "" -#: ../../library/os.rst:2676 msgid "" -"If the *path* is a string object (directly or indirectly through " -"a :class:`PathLike` interface), the result will also be a string object, and " -"the call may raise a UnicodeDecodeError. If the *path* is a bytes object " -"(direct or indirectly), the result will be a bytes object." +"If the *path* is a string object (directly or indirectly through a :class:" +"`PathLike` interface), the result will also be a string object, and the call " +"may raise a UnicodeDecodeError. If the *path* is a bytes object (direct or " +"indirectly), the result will be a bytes object." msgstr "" -#: ../../library/os.rst:2684 msgid "" -"When trying to resolve a path that may contain links, " -"use :func:`~os.path.realpath` to properly handle recursion and platform " -"differences." +"When trying to resolve a path that may contain links, use :func:`~os.path." +"realpath` to properly handle recursion and platform differences." msgstr "" -#: ../../library/os.rst:2696 msgid "Accepts a :term:`path-like object` on Unix." msgstr "" -#: ../../library/os.rst:2699 msgid "Accepts a :term:`path-like object` and a bytes object on Windows." msgstr "" -#: ../../library/os.rst:2702 msgid "" "Added support for directory junctions, and changed to return the " "substitution path (which typically includes ``\\\\?\\`` prefix) rather than " "the optional \"print name\" field that was previously returned." msgstr "" -#: ../../library/os.rst:2708 msgid "" -"Remove (delete) the file *path*. If *path* is a directory, " -"an :exc:`OSError` is raised. Use :func:`rmdir` to remove directories. If " -"the file does not exist, a :exc:`FileNotFoundError` is raised." +"Remove (delete) the file *path*. If *path* is a directory, an :exc:" +"`OSError` is raised. Use :func:`rmdir` to remove directories. If the file " +"does not exist, a :exc:`FileNotFoundError` is raised." msgstr "" -#: ../../library/os.rst:2712 ../../library/os.rst:2825 -#: ../../library/os.rst:3514 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." msgstr "" -#: ../../library/os.rst:2715 msgid "" "On Windows, attempting to remove a file that is in use causes an exception " "to be raised; on Unix, the directory entry is removed but the storage " @@ -2966,18 +2366,14 @@ msgid "" "longer in use." msgstr "" -#: ../../library/os.rst:2719 msgid "This function is semantically identical to :func:`unlink`." msgstr "" -#: ../../library/os.rst:2721 ../../library/os.rst:2743 -#: ../../library/os.rst:3585 msgid "" "Raises an :ref:`auditing event ` ``os.remove`` with arguments " "``path``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:2734 msgid "" "Remove directories recursively. Works like :func:`rmdir` except that, if " "the leaf directory is successfully removed, :func:`removedirs` tries to " @@ -2989,23 +2385,20 @@ msgid "" "could not be successfully removed." msgstr "" -#: ../../library/os.rst:2751 msgid "" "Rename the file or directory *src* to *dst*. If *dst* exists, the operation " "will fail with an :exc:`OSError` subclass in a number of cases:" msgstr "" -#: ../../library/os.rst:2754 msgid "" "On Windows, if *dst* exists a :exc:`FileExistsError` is always raised. The " -"operation may fail if *src* and *dst* are on different filesystems. " -"Use :func:`shutil.move` to support moves to a different filesystem." +"operation may fail if *src* and *dst* are on different filesystems. Use :" +"func:`shutil.move` to support moves to a different filesystem." msgstr "" -#: ../../library/os.rst:2758 msgid "" -"On Unix, if *src* is a file and *dst* is a directory or vice-versa, " -"an :exc:`IsADirectoryError` or a :exc:`NotADirectoryError` will be raised " +"On Unix, if *src* is a file and *dst* is a directory or vice-versa, an :exc:" +"`IsADirectoryError` or a :exc:`NotADirectoryError` will be raised " "respectively. If both are directories and *dst* is empty, *dst* will be " "silently replaced. If *dst* is a non-empty directory, an :exc:`OSError` is " "raised. If both are files, *dst* will be replaced silently if the user has " @@ -3014,30 +2407,24 @@ msgid "" "operation (this is a POSIX requirement)." msgstr "" -#: ../../library/os.rst:2767 ../../library/os.rst:2807 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " "supply :ref:`paths relative to directory descriptors `." msgstr "" -#: ../../library/os.rst:2770 msgid "" -"If you want cross-platform overwriting of the destination, " -"use :func:`replace`." +"If you want cross-platform overwriting of the destination, use :func:" +"`replace`." msgstr "" -#: ../../library/os.rst:2772 ../../library/os.rst:2793 -#: ../../library/os.rst:2810 msgid "" "Raises an :ref:`auditing event ` ``os.rename`` with arguments " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." msgstr "" -#: ../../library/os.rst:2774 msgid "Added the *src_dir_fd* and *dst_dir_fd* parameters." msgstr "" -#: ../../library/os.rst:2783 msgid "" "Recursive directory or file renaming function. Works like :func:`rename`, " "except creation of any intermediate directories needed to make the new " @@ -3046,17 +2433,14 @@ msgid "" "using :func:`removedirs`." msgstr "" -#: ../../library/os.rst:2790 msgid "" "This function can fail with the new directory structure made if you lack " "permissions needed to remove the leaf directory or file." msgstr "" -#: ../../library/os.rst:2795 msgid "Accepts a :term:`path-like object` for *old* and *new*." msgstr "" -#: ../../library/os.rst:2801 msgid "" "Rename the file or directory *src* to *dst*. If *dst* is a non-empty " "directory, :exc:`OSError` will be raised. If *dst* exists and is a file, it " @@ -3065,21 +2449,18 @@ msgid "" "renaming will be an atomic operation (this is a POSIX requirement)." msgstr "" -#: ../../library/os.rst:2820 msgid "" "Remove (delete) the directory *path*. If the directory does not exist or is " "not empty, a :exc:`FileNotFoundError` or an :exc:`OSError` is raised " -"respectively. In order to remove whole directory " -"trees, :func:`shutil.rmtree` can be used." +"respectively. In order to remove whole directory trees, :func:`shutil." +"rmtree` can be used." msgstr "" -#: ../../library/os.rst:2828 msgid "" "Raises an :ref:`auditing event ` ``os.rmdir`` with arguments " "``path``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:2839 msgid "" "Return an iterator of :class:`os.DirEntry` objects corresponding to the " "entries in the directory given by *path*. The entries are yielded in " @@ -3089,20 +2470,17 @@ msgid "" "unspecified." msgstr "" -#: ../../library/os.rst:2846 msgid "" "Using :func:`scandir` instead of :func:`listdir` can significantly increase " "the performance of code that also needs file type or file attribute " "information, because :class:`os.DirEntry` objects expose this information if " -"the operating system provides it when scanning a directory. " -"All :class:`os.DirEntry` methods may perform a system call, " -"but :func:`~os.DirEntry.is_dir` and :func:`~os.DirEntry.is_file` usually " -"only require a system call for symbolic links; :func:`os.DirEntry.stat` " -"always requires a system call on Unix but only requires one for symbolic " -"links on Windows." +"the operating system provides it when scanning a directory. All :class:`os." +"DirEntry` methods may perform a system call, but :func:`~os.DirEntry.is_dir` " +"and :func:`~os.DirEntry.is_file` usually only require a system call for " +"symbolic links; :func:`os.DirEntry.stat` always requires a system call on " +"Unix but only requires one for symbolic links on Windows." msgstr "" -#: ../../library/os.rst:2856 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the type " @@ -3111,30 +2489,25 @@ msgid "" "they will be of type ``str``." msgstr "" -#: ../../library/os.rst:2865 msgid "" "Raises an :ref:`auditing event ` ``os.scandir`` with argument " "``path``." msgstr "" -#: ../../library/os.rst:2867 msgid "" "The :func:`scandir` iterator supports the :term:`context manager` protocol " "and has the following method:" msgstr "" -#: ../../library/os.rst:2872 msgid "Close the iterator and free acquired resources." msgstr "" -#: ../../library/os.rst:2874 msgid "" "This is called automatically when the iterator is exhausted or garbage " "collected, or when an error happens during iterating. However it is " "advisable to call it explicitly or use the :keyword:`with` statement." msgstr "" -#: ../../library/os.rst:2881 msgid "" "The following example shows a simple use of :func:`scandir` to display all " "the files (excluding directories) in the given *path* that don't start with " @@ -3142,7 +2515,6 @@ msgid "" "system call::" msgstr "" -#: ../../library/os.rst:2886 msgid "" "with os.scandir(path) as it:\n" " for entry in it:\n" @@ -3150,47 +2522,40 @@ msgid "" " print(entry.name)" msgstr "" -#: ../../library/os.rst:2893 msgid "" "On Unix-based systems, :func:`scandir` uses the system's `opendir() `_ and " "`readdir() `_ functions. On Windows, it uses the Win32 `FindFirstFileW " -"`_ and `FindNextFileW `_ functions." +"`_ and `FindNextFileW `_ functions." msgstr "" -#: ../../library/os.rst:2905 msgid "" -"Added support for the :term:`context manager` protocol and " -"the :func:`~scandir.close` method. If a :func:`scandir` iterator is neither " -"exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted in " -"its destructor." +"Added support for the :term:`context manager` protocol and the :func:" +"`~scandir.close` method. If a :func:`scandir` iterator is neither exhausted " +"nor explicitly closed a :exc:`ResourceWarning` will be emitted in its " +"destructor." msgstr "" -#: ../../library/os.rst:2911 msgid "The function accepts a :term:`path-like object`." msgstr "" -#: ../../library/os.rst:2913 msgid "Added support for :ref:`file descriptors ` on Unix." msgstr "" -#: ../../library/os.rst:2919 msgid "" "Object yielded by :func:`scandir` to expose the file path and other file " "attributes of a directory entry." msgstr "" -#: ../../library/os.rst:2922 msgid "" ":func:`scandir` will provide as much of this information as possible without " "making additional system calls. When a ``stat()`` or ``lstat()`` system call " "is made, the ``os.DirEntry`` object will cache the result." msgstr "" -#: ../../library/os.rst:2926 msgid "" "``os.DirEntry`` instances are not intended to be stored in long-lived data " "structures; if you know the file metadata has changed or if a long time has " @@ -3198,7 +2563,6 @@ msgid "" "up-to-date information." msgstr "" -#: ../../library/os.rst:2931 msgid "" "Because the ``os.DirEntry`` methods can make operating system calls, they " "may also raise :exc:`OSError`. If you need very fine-grained control over " @@ -3206,84 +2570,70 @@ msgid "" "methods and handle as appropriate." msgstr "" -#: ../../library/os.rst:2936 msgid "" "To be directly usable as a :term:`path-like object`, ``os.DirEntry`` " "implements the :class:`PathLike` interface." msgstr "" -#: ../../library/os.rst:2939 msgid "Attributes and methods on a ``os.DirEntry`` instance are as follows:" msgstr "" -#: ../../library/os.rst:2943 msgid "" "The entry's base filename, relative to the :func:`scandir` *path* argument." msgstr "" -#: ../../library/os.rst:2946 msgid "" "The :attr:`name` attribute will be ``bytes`` if the :func:`scandir` *path* " -"argument is of type ``bytes`` and ``str`` otherwise. " -"Use :func:`~os.fsdecode` to decode byte filenames." +"argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." +"fsdecode` to decode byte filenames." msgstr "" -#: ../../library/os.rst:2952 msgid "" -"The entry's full path name: equivalent to ``os.path.join(scandir_path, " -"entry.name)`` where *scandir_path* is the :func:`scandir` *path* argument. " -"The path is only absolute if the :func:`scandir` *path* argument was " -"absolute. If the :func:`scandir` *path* argument was a :ref:`file " -"descriptor `, the :attr:`path` attribute is the same as " -"the :attr:`name` attribute." +"The entry's full path name: equivalent to ``os.path.join(scandir_path, entry." +"name)`` where *scandir_path* is the :func:`scandir` *path* argument. The " +"path is only absolute if the :func:`scandir` *path* argument was absolute. " +"If the :func:`scandir` *path* argument was a :ref:`file descriptor " +"`, the :attr:`path` attribute is the same as the :attr:`name` " +"attribute." msgstr "" -#: ../../library/os.rst:2959 msgid "" "The :attr:`path` attribute will be ``bytes`` if the :func:`scandir` *path* " -"argument is of type ``bytes`` and ``str`` otherwise. " -"Use :func:`~os.fsdecode` to decode byte filenames." +"argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." +"fsdecode` to decode byte filenames." msgstr "" -#: ../../library/os.rst:2965 msgid "Return the inode number of the entry." msgstr "" -#: ../../library/os.rst:2967 msgid "" -"The result is cached on the ``os.DirEntry`` object. Use " -"``os.stat(entry.path, follow_symlinks=False).st_ino`` to fetch up-to-date " -"information." +"The result is cached on the ``os.DirEntry`` object. Use ``os.stat(entry." +"path, follow_symlinks=False).st_ino`` to fetch up-to-date information." msgstr "" -#: ../../library/os.rst:2971 msgid "" "On the first, uncached call, a system call is required on Windows but not on " "Unix." msgstr "" -#: ../../library/os.rst:2976 msgid "" "Return ``True`` if this entry is a directory or a symbolic link pointing to " "a directory; return ``False`` if the entry is or points to any other kind of " "file, or if it doesn't exist anymore." msgstr "" -#: ../../library/os.rst:2980 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "directory (without following symlinks); return ``False`` if the entry is any " "other kind of file or if it doesn't exist anymore." msgstr "" -#: ../../library/os.rst:2984 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` along " "with :func:`stat.S_ISDIR` to fetch up-to-date information." msgstr "" -#: ../../library/os.rst:2988 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, for non-symlinks, neither Windows or Unix require a system " @@ -3293,46 +2643,39 @@ msgid "" "is ``False``." msgstr "" -#: ../../library/os.rst:2995 ../../library/os.rst:3025 msgid "" -"This method can raise :exc:`OSError`, such as :exc:`PermissionError`, " -"but :exc:`FileNotFoundError` is caught and not raised." +"This method can raise :exc:`OSError`, such as :exc:`PermissionError`, but :" +"exc:`FileNotFoundError` is caught and not raised." msgstr "" -#: ../../library/os.rst:3000 msgid "" "Return ``True`` if this entry is a file or a symbolic link pointing to a " "file; return ``False`` if the entry is or points to a directory or other non-" "file entry, or if it doesn't exist anymore." msgstr "" -#: ../../library/os.rst:3004 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "file (without following symlinks); return ``False`` if the entry is a " "directory or other non-file entry, or if it doesn't exist anymore." msgstr "" -#: ../../library/os.rst:3008 msgid "" "The result is cached on the ``os.DirEntry`` object. Caching, system calls " "made, and exceptions raised are as per :func:`~os.DirEntry.is_dir`." msgstr "" -#: ../../library/os.rst:3013 msgid "" "Return ``True`` if this entry is a symbolic link (even if broken); return " "``False`` if the entry points to a directory or any kind of file, or if it " "doesn't exist anymore." msgstr "" -#: ../../library/os.rst:3017 msgid "" -"The result is cached on the ``os.DirEntry`` object. " -"Call :func:`os.path.islink` to fetch up-to-date information." +"The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." +"islink` to fetch up-to-date information." msgstr "" -#: ../../library/os.rst:3020 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, neither Windows or Unix require a system call, except on " @@ -3340,48 +2683,41 @@ msgid "" "``dirent.d_type == DT_UNKNOWN``." msgstr "" -#: ../../library/os.rst:3030 msgid "" "Return ``True`` if this entry is a junction (even if broken); return " "``False`` if the entry points to a regular directory, any kind of file, a " "symlink, or if it doesn't exist anymore." msgstr "" -#: ../../library/os.rst:3034 msgid "" -"The result is cached on the ``os.DirEntry`` object. " -"Call :func:`os.path.isjunction` to fetch up-to-date information." +"The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." +"isjunction` to fetch up-to-date information." msgstr "" -#: ../../library/os.rst:3041 msgid "" "Return a :class:`stat_result` object for this entry. This method follows " "symbolic links by default; to stat a symbolic link add the " "``follow_symlinks=False`` argument." msgstr "" -#: ../../library/os.rst:3045 msgid "" "On Unix, this method always requires a system call. On Windows, it only " "requires a system call if *follow_symlinks* is ``True`` and the entry is a " "reparse point (for example, a symbolic link or directory junction)." msgstr "" -#: ../../library/os.rst:3050 msgid "" -"On Windows, the ``st_ino``, ``st_dev`` and ``st_nlink`` attributes of " -"the :class:`stat_result` are always set to zero. Call :func:`os.stat` to get " +"On Windows, the ``st_ino``, ``st_dev`` and ``st_nlink`` attributes of the :" +"class:`stat_result` are always set to zero. Call :func:`os.stat` to get " "these attributes." msgstr "" -#: ../../library/os.rst:3054 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` to fetch " "up-to-date information." msgstr "" -#: ../../library/os.rst:3058 msgid "" "Note that there is a nice correspondence between several attributes and " "methods of ``os.DirEntry`` and of :class:`pathlib.Path`. In particular, the " @@ -3389,13 +2725,11 @@ msgid "" "``is_file()``, ``is_symlink()``, ``is_junction()``, and ``stat()`` methods." msgstr "" -#: ../../library/os.rst:3066 msgid "" -"Added support for the :class:`~os.PathLike` interface. Added support " -"for :class:`bytes` paths on Windows." +"Added support for the :class:`~os.PathLike` interface. Added support for :" +"class:`bytes` paths on Windows." msgstr "" -#: ../../library/os.rst:3070 msgid "" "The ``st_ctime`` attribute of a stat result is deprecated on Windows. The " "file creation time is properly available as ``st_birthtime``, and in the " @@ -3403,30 +2737,24 @@ msgid "" "time, if available." msgstr "" -#: ../../library/os.rst:3079 msgid "" -"Get the status of a file or a file descriptor. Perform the equivalent of " -"a :c:func:`stat` system call on the given path. *path* may be specified as " -"either a string or bytes -- directly or indirectly through " -"the :class:`PathLike` interface -- or as an open file descriptor. Return " -"a :class:`stat_result` object." +"Get the status of a file or a file descriptor. Perform the equivalent of a :" +"c:func:`stat` system call on the given path. *path* may be specified as " +"either a string or bytes -- directly or indirectly through the :class:" +"`PathLike` interface -- or as an open file descriptor. Return a :class:" +"`stat_result` object." msgstr "" -#: ../../library/os.rst:3085 msgid "" "This function normally follows symlinks; to stat a symlink add the argument " "``follow_symlinks=False``, or use :func:`lstat`." msgstr "" -#: ../../library/os.rst:3088 ../../library/os.rst:4167 -#: ../../library/os.rst:4183 ../../library/os.rst:4199 -#: ../../library/os.rst:4219 msgid "" -"This function can support :ref:`specifying a file descriptor ` " -"and :ref:`not following symlinks `." +"This function can support :ref:`specifying a file descriptor ` and :" +"ref:`not following symlinks `." msgstr "" -#: ../../library/os.rst:3091 msgid "" "On Windows, passing ``follow_symlinks=False`` will disable following all " "name-surrogate reparse points, which includes symlinks and directory " @@ -3434,17 +2762,15 @@ msgid "" "the operating system is unable to follow will be opened directly. When " "following a chain of multiple links, this may result in the original link " "being returned instead of the non-link that prevented full traversal. To " -"obtain stat results for the final path in this case, use " -"the :func:`os.path.realpath` function to resolve the path name as far as " -"possible and call :func:`lstat` on the result. This does not apply to " -"dangling symlinks or junction points, which will raise the usual exceptions." +"obtain stat results for the final path in this case, use the :func:`os.path." +"realpath` function to resolve the path name as far as possible and call :" +"func:`lstat` on the result. This does not apply to dangling symlinks or " +"junction points, which will raise the usual exceptions." msgstr "" -#: ../../library/os.rst:3104 ../../library/os.rst:3874 msgid "Example::" msgstr "" -#: ../../library/os.rst:3106 msgid "" ">>> import os\n" ">>> statinfo = os.stat('somefile.txt')\n" @@ -3456,17 +2782,14 @@ msgid "" "264" msgstr "" -#: ../../library/os.rst:3117 msgid ":func:`fstat` and :func:`lstat` functions." msgstr "" -#: ../../library/os.rst:3119 msgid "" "Added the *dir_fd* and *follow_symlinks* parameters, specifying a file " "descriptor instead of a path." msgstr "" -#: ../../library/os.rst:3126 msgid "" "On Windows, all reparse points that can be resolved by the operating system " "are now followed, and passing ``follow_symlinks=False`` disables following " @@ -3476,297 +2799,246 @@ msgid "" "of raising an error." msgstr "" -#: ../../library/os.rst:3137 msgid "" -"Object whose attributes correspond roughly to the members of " -"the :c:struct:`stat` structure. It is used for the result " -"of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat`." +"Object whose attributes correspond roughly to the members of the :c:struct:" +"`stat` structure. It is used for the result of :func:`os.stat`, :func:`os." +"fstat` and :func:`os.lstat`." msgstr "" -#: ../../library/os.rst:3141 msgid "Attributes:" msgstr "" -#: ../../library/os.rst:3145 msgid "File mode: file type and file mode bits (permissions)." msgstr "" -#: ../../library/os.rst:3149 msgid "" "Platform dependent, but if non-zero, uniquely identifies the file for a " "given value of ``st_dev``. Typically:" msgstr "" -#: ../../library/os.rst:3152 msgid "the inode number on Unix," msgstr "" -#: ../../library/os.rst:3153 msgid "" "the `file index `_ on " "Windows" msgstr "" -#: ../../library/os.rst:3159 msgid "Identifier of the device on which this file resides." msgstr "" -#: ../../library/os.rst:3163 msgid "Number of hard links." msgstr "" -#: ../../library/os.rst:3167 msgid "User identifier of the file owner." msgstr "" -#: ../../library/os.rst:3171 msgid "Group identifier of the file owner." msgstr "" -#: ../../library/os.rst:3175 msgid "" "Size of the file in bytes, if it is a regular file or a symbolic link. The " "size of a symbolic link is the length of the pathname it contains, without a " "terminating null byte." msgstr "" -#: ../../library/os.rst:3179 msgid "Timestamps:" msgstr "" -#: ../../library/os.rst:3183 msgid "Time of most recent access expressed in seconds." msgstr "" -#: ../../library/os.rst:3187 msgid "Time of most recent content modification expressed in seconds." msgstr "" -#: ../../library/os.rst:3191 msgid "Time of most recent metadata change expressed in seconds." msgstr "" -#: ../../library/os.rst:3193 msgid "" "``st_ctime`` is deprecated on Windows. Use ``st_birthtime`` for the file " "creation time. In the future, ``st_ctime`` will contain the time of the most " "recent metadata change, as for other platforms." msgstr "" -#: ../../library/os.rst:3200 msgid "Time of most recent access expressed in nanoseconds as an integer." msgstr "" -#: ../../library/os.rst:3206 msgid "" "Time of most recent content modification expressed in nanoseconds as an " "integer." msgstr "" -#: ../../library/os.rst:3213 msgid "" "Time of most recent metadata change expressed in nanoseconds as an integer." msgstr "" -#: ../../library/os.rst:3218 msgid "" "``st_ctime_ns`` is deprecated on Windows. Use ``st_birthtime_ns`` for the " "file creation time. In the future, ``st_ctime`` will contain the time of the " "most recent metadata change, as for other platforms." msgstr "" -#: ../../library/os.rst:3225 msgid "" "Time of file creation expressed in seconds. This attribute is not always " "available, and may raise :exc:`AttributeError`." msgstr "" -#: ../../library/os.rst:3228 msgid "``st_birthtime`` is now available on Windows." msgstr "" -#: ../../library/os.rst:3233 msgid "" "Time of file creation expressed in nanoseconds as an integer. This attribute " "is not always available, and may raise :exc:`AttributeError`." msgstr "" -#: ../../library/os.rst:3241 msgid "" -"The exact meaning and resolution of " -"the :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime` " -"and :attr:`st_birthtime` attributes depend on the operating system and the " -"file system. For example, on Windows systems using the FAT32 file " -"systems, :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` has " -"only 1-day resolution. See your operating system documentation for details." +"The exact meaning and resolution of the :attr:`st_atime`, :attr:`st_mtime`, :" +"attr:`st_ctime` and :attr:`st_birthtime` attributes depend on the operating " +"system and the file system. For example, on Windows systems using the FAT32 " +"file systems, :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` " +"has only 1-day resolution. See your operating system documentation for " +"details." msgstr "" -#: ../../library/os.rst:3248 msgid "" -"Similarly, " -"although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, :attr:`st_ctime_ns` " -"and :attr:`st_birthtime_ns` are always expressed in nanoseconds, many " -"systems do not provide nanosecond precision. On systems that do provide " -"nanosecond precision, the floating-point object used to " -"store :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime` " -"and :attr:`st_birthtime` cannot preserve all of it, and as such will be " -"slightly inexact. If you need the exact timestamps you should always " -"use :attr:`st_atime_ns`, :attr:`st_mtime_ns`, :attr:`st_ctime_ns` " -"and :attr:`st_birthtime_ns`." +"Similarly, although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, :attr:" +"`st_ctime_ns` and :attr:`st_birthtime_ns` are always expressed in " +"nanoseconds, many systems do not provide nanosecond precision. On systems " +"that do provide nanosecond precision, the floating-point object used to " +"store :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime` and :attr:" +"`st_birthtime` cannot preserve all of it, and as such will be slightly " +"inexact. If you need the exact timestamps you should always use :attr:" +"`st_atime_ns`, :attr:`st_mtime_ns`, :attr:`st_ctime_ns` and :attr:" +"`st_birthtime_ns`." msgstr "" -#: ../../library/os.rst:3258 msgid "" "On some Unix systems (such as Linux), the following attributes may also be " "available:" msgstr "" -#: ../../library/os.rst:3263 msgid "" -"Number of 512-byte blocks allocated for file. This may be smaller " -"than :attr:`st_size`/512 when the file has holes." +"Number of 512-byte blocks allocated for file. This may be smaller than :attr:" +"`st_size`/512 when the file has holes." msgstr "" -#: ../../library/os.rst:3268 msgid "" "\"Preferred\" blocksize for efficient file system I/O. Writing to a file in " "smaller chunks may cause an inefficient read-modify-rewrite." msgstr "" -#: ../../library/os.rst:3273 msgid "Type of device if an inode device." msgstr "" -#: ../../library/os.rst:3277 msgid "User defined flags for file." msgstr "" -#: ../../library/os.rst:3279 msgid "" "On other Unix systems (such as FreeBSD), the following attributes may be " "available (but may be only filled out if root tries to use them):" msgstr "" -#: ../../library/os.rst:3284 msgid "File generation number." msgstr "" -#: ../../library/os.rst:3286 msgid "" "On Solaris and derivatives, the following attributes may also be available:" msgstr "" -#: ../../library/os.rst:3291 msgid "" "String that uniquely identifies the type of the filesystem that contains the " "file." msgstr "" -#: ../../library/os.rst:3294 msgid "On macOS systems, the following attributes may also be available:" msgstr "" -#: ../../library/os.rst:3298 msgid "Real size of the file." msgstr "" -#: ../../library/os.rst:3302 msgid "Creator of the file." msgstr "" -#: ../../library/os.rst:3306 msgid "File type." msgstr "" -#: ../../library/os.rst:3308 msgid "On Windows systems, the following attributes are also available:" msgstr "" -#: ../../library/os.rst:3312 msgid "" "Windows file attributes: ``dwFileAttributes`` member of the " "``BY_HANDLE_FILE_INFORMATION`` structure returned by :c:func:`!" -"GetFileInformationByHandle`. See the :const:`!FILE_ATTRIBUTE_* " -"` constants in the :mod:`stat` module." +"GetFileInformationByHandle`. See the :const:`!FILE_ATTRIBUTE_* ` constants in the :mod:`stat` module." msgstr "" -#: ../../library/os.rst:3322 msgid "" -"When :attr:`st_file_attributes` has " -"the :const:`~stat.FILE_ATTRIBUTE_REPARSE_POINT` set, this field contains the " -"tag identifying the type of reparse point. See the :const:`IO_REPARSE_TAG_* " -"` constants in the :mod:`stat` module." +"When :attr:`st_file_attributes` has the :const:`~stat." +"FILE_ATTRIBUTE_REPARSE_POINT` set, this field contains the tag identifying " +"the type of reparse point. See the :const:`IO_REPARSE_TAG_* ` constants in the :mod:`stat` module." msgstr "" -#: ../../library/os.rst:3327 msgid "" "The standard module :mod:`stat` defines functions and constants that are " "useful for extracting information from a :c:struct:`stat` structure. (On " "Windows, some items are filled with dummy values.)" msgstr "" -#: ../../library/os.rst:3331 msgid "" "For backward compatibility, a :class:`stat_result` instance is also " "accessible as a tuple of at least 10 integers giving the most important (and " -"portable) members of the :c:struct:`stat` structure, in the " -"order :attr:`st_mode`, :attr:`st_ino`, :attr:`st_dev`, :attr:`st_nlink`, :attr:`st_uid`, :attr:`st_gid`, :attr:`st_size`, :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime`. " -"More items may be added at the end by some implementations. For " -"compatibility with older Python versions, accessing :class:`stat_result` as " -"a tuple always returns integers." +"portable) members of the :c:struct:`stat` structure, in the order :attr:" +"`st_mode`, :attr:`st_ino`, :attr:`st_dev`, :attr:`st_nlink`, :attr:" +"`st_uid`, :attr:`st_gid`, :attr:`st_size`, :attr:`st_atime`, :attr:" +"`st_mtime`, :attr:`st_ctime`. More items may be added at the end by some " +"implementations. For compatibility with older Python versions, accessing :" +"class:`stat_result` as a tuple always returns integers." msgstr "" -#: ../../library/os.rst:3340 msgid "Windows now returns the file index as :attr:`st_ino` when available." msgstr "" -#: ../../library/os.rst:3344 msgid "Added the :attr:`st_fstype` member to Solaris/derivatives." msgstr "" -#: ../../library/os.rst:3347 msgid "Added the :attr:`st_reparse_tag` member on Windows." msgstr "" -#: ../../library/os.rst:3350 msgid "" -"On Windows, the :attr:`st_mode` member now identifies special files " -"as :const:`S_IFCHR`, :const:`S_IFIFO` or :const:`S_IFBLK` as appropriate." +"On Windows, the :attr:`st_mode` member now identifies special files as :" +"const:`S_IFCHR`, :const:`S_IFIFO` or :const:`S_IFBLK` as appropriate." msgstr "" -#: ../../library/os.rst:3355 msgid "" "On Windows, :attr:`st_ctime` is deprecated. Eventually, it will contain the " "last metadata change time, for consistency with other platforms, but for now " "still contains creation time. Use :attr:`st_birthtime` for the creation time." msgstr "" -#: ../../library/os.rst:3361 msgid "" "On Windows, :attr:`st_ino` may now be up to 128 bits, depending on the file " "system. Previously it would not be above 64 bits, and larger file " "identifiers would be arbitrarily packed." msgstr "" -#: ../../library/os.rst:3365 msgid "" "On Windows, :attr:`st_rdev` no longer returns a value. Previously it would " "contain the same as :attr:`st_dev`, which was incorrect." msgstr "" -#: ../../library/os.rst:3368 msgid "Added the :attr:`st_birthtime` member on Windows." msgstr "" -#: ../../library/os.rst:3373 msgid "" "Perform a :c:func:`!statvfs` system call on the given path. The return " "value is an object whose attributes describe the filesystem on the given " "path, and correspond to the members of the :c:struct:`statvfs` structure, " -"namely: :attr:`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:`f_bfree`, :attr:`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." +"namely: :attr:`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:" +"`f_bfree`, :attr:`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:" +"`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." msgstr "" -#: ../../library/os.rst:3380 msgid "" "Two module-level constants are defined for the :attr:`f_flag` attribute's " "bit-flags: if :const:`ST_RDONLY` is set, the filesystem is mounted read-" @@ -3774,35 +3046,31 @@ msgid "" "are disabled or not supported." msgstr "" -#: ../../library/os.rst:3385 msgid "" "Additional module-level constants are defined for GNU/glibc based systems. " -"These are :const:`ST_NODEV` (disallow access to device special " -"files), :const:`ST_NOEXEC` (disallow program " -"execution), :const:`ST_SYNCHRONOUS` (writes are synced at " -"once), :const:`ST_MANDLOCK` (allow mandatory locks on an " -"FS), :const:`ST_WRITE` (write on file/directory/symlink), :const:`ST_APPEND` " -"(append-only file), :const:`ST_IMMUTABLE` (immutable " -"file), :const:`ST_NOATIME` (do not update access " -"times), :const:`ST_NODIRATIME` (do not update directory access " -"times), :const:`ST_RELATIME` (update atime relative to mtime/ctime)." -msgstr "" - -#: ../../library/os.rst:3398 +"These are :const:`ST_NODEV` (disallow access to device special files), :" +"const:`ST_NOEXEC` (disallow program execution), :const:`ST_SYNCHRONOUS` " +"(writes are synced at once), :const:`ST_MANDLOCK` (allow mandatory locks on " +"an FS), :const:`ST_WRITE` (write on file/directory/symlink), :const:" +"`ST_APPEND` (append-only file), :const:`ST_IMMUTABLE` (immutable file), :" +"const:`ST_NOATIME` (do not update access times), :const:`ST_NODIRATIME` (do " +"not update directory access times), :const:`ST_RELATIME` (update atime " +"relative to mtime/ctime)." +msgstr "" + msgid "The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added." msgstr "" -#: ../../library/os.rst:3404 msgid "" -"The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`, :const:`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`, :const:`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:`ST_NODIRATIME`, " -"and :const:`ST_RELATIME` constants were added." +"The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`, :const:" +"`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`, :const:" +"`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:`ST_NODIRATIME`, and :const:" +"`ST_RELATIME` constants were added." msgstr "" -#: ../../library/os.rst:3413 msgid "Added the :attr:`f_fsid` attribute." msgstr "" -#: ../../library/os.rst:3419 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "accept an open file descriptor for their *dir_fd* parameter. Different " @@ -3814,7 +3082,6 @@ msgid "" "(Specifying ``None`` for *dir_fd* is always supported on all platforms.)" msgstr "" -#: ../../library/os.rst:3429 msgid "" "To check whether a particular function accepts an open file descriptor for " "its *dir_fd* parameter, use the ``in`` operator on ``supports_dir_fd``. As " @@ -3822,42 +3089,35 @@ msgid "" "open file descriptors for *dir_fd* on the local platform::" msgstr "" -#: ../../library/os.rst:3434 msgid "os.stat in os.supports_dir_fd" msgstr "" -#: ../../library/os.rst:3436 msgid "" "Currently *dir_fd* parameters only work on Unix platforms; none of them work " "on Windows." msgstr "" -#: ../../library/os.rst:3444 msgid "" "A :class:`set` object indicating whether :func:`os.access` permits " "specifying ``True`` for its *effective_ids* parameter on the local platform. " "(Specifying ``False`` for *effective_ids* is always supported on all " -"platforms.) If the local platform supports it, the collection will " -"contain :func:`os.access`; otherwise it will be empty." +"platforms.) If the local platform supports it, the collection will contain :" +"func:`os.access`; otherwise it will be empty." msgstr "" -#: ../../library/os.rst:3450 msgid "" "This expression evaluates to ``True`` if :func:`os.access` supports " "``effective_ids=True`` on the local platform::" msgstr "" -#: ../../library/os.rst:3453 msgid "os.access in os.supports_effective_ids" msgstr "" -#: ../../library/os.rst:3455 msgid "" "Currently *effective_ids* is only supported on Unix platforms; it does not " "work on Windows." msgstr "" -#: ../../library/os.rst:3463 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "permit specifying their *path* parameter as an open file descriptor on the " @@ -3866,20 +3126,17 @@ msgid "" "*path* arguments is not available on all platforms Python supports." msgstr "" -#: ../../library/os.rst:3470 msgid "" "To determine whether a particular function permits specifying an open file " "descriptor for its *path* parameter, use the ``in`` operator on " -"``supports_fd``. As an example, this expression evaluates to ``True`` " -"if :func:`os.chdir` accepts open file descriptors for *path* on your local " +"``supports_fd``. As an example, this expression evaluates to ``True`` if :" +"func:`os.chdir` accepts open file descriptors for *path* on your local " "platform::" msgstr "" -#: ../../library/os.rst:3476 msgid "os.chdir in os.supports_fd" msgstr "" -#: ../../library/os.rst:3483 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "accept ``False`` for their *follow_symlinks* parameter on the local " @@ -3892,24 +3149,20 @@ msgid "" "on all platforms.)" msgstr "" -#: ../../library/os.rst:3493 msgid "" "To check whether a particular function accepts ``False`` for its " "*follow_symlinks* parameter, use the ``in`` operator on " "``supports_follow_symlinks``. As an example, this expression evaluates to " -"``True`` if you may specify ``follow_symlinks=False`` when " -"calling :func:`os.stat` on the local platform::" +"``True`` if you may specify ``follow_symlinks=False`` when calling :func:`os." +"stat` on the local platform::" msgstr "" -#: ../../library/os.rst:3499 msgid "os.stat in os.supports_follow_symlinks" msgstr "" -#: ../../library/os.rst:3506 msgid "Create a symbolic link pointing to *src* named *dst*." msgstr "" -#: ../../library/os.rst:3508 msgid "" "On Windows, a symlink represents either a file or a directory, and does not " "morph to the target dynamically. If the target is present, the type of the " @@ -3919,7 +3172,6 @@ msgid "" "ignored." msgstr "" -#: ../../library/os.rst:3519 msgid "" "On newer versions of Windows 10, unprivileged accounts can create symlinks " "if Developer Mode is enabled. When Developer Mode is not available/enabled, " @@ -3927,105 +3179,87 @@ msgid "" "must be run as an administrator." msgstr "" -#: ../../library/os.rst:3525 msgid "" ":exc:`OSError` is raised when the function is called by an unprivileged user." msgstr "" -#: ../../library/os.rst:3528 msgid "" "Raises an :ref:`auditing event ` ``os.symlink`` with arguments " "``src``, ``dst``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:3538 msgid "" "Added the *dir_fd* parameter, and now allow *target_is_directory* on non-" "Windows platforms." msgstr "" -#: ../../library/os.rst:3545 msgid "Added support for unelevated symlinks on Windows with Developer Mode." msgstr "" -#: ../../library/os.rst:3551 msgid "Force write of everything to disk." msgstr "" -#: ../../library/os.rst:3560 msgid "" "Truncate the file corresponding to *path*, so that it is at most *length* " "bytes in size." msgstr "" -#: ../../library/os.rst:3565 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``path``, ``length``." msgstr "" -#: ../../library/os.rst:3580 msgid "" "Remove (delete) the file *path*. This function is semantically identical " "to :func:`remove`; the ``unlink`` name is its traditional Unix name. Please " "see the documentation for :func:`remove` for further information." msgstr "" -#: ../../library/os.rst:3596 msgid "Set the access and modified times of the file specified by *path*." msgstr "" -#: ../../library/os.rst:3598 msgid "" ":func:`utime` takes two optional parameters, *times* and *ns*. These specify " "the times set on *path* and are used as follows:" msgstr "" -#: ../../library/os.rst:3601 msgid "" "If *ns* is specified, it must be a 2-tuple of the form ``(atime_ns, " "mtime_ns)`` where each member is an int expressing nanoseconds." msgstr "" -#: ../../library/os.rst:3604 msgid "" "If *times* is not ``None``, it must be a 2-tuple of the form ``(atime, " "mtime)`` where each member is an int or float expressing seconds." msgstr "" -#: ../../library/os.rst:3607 msgid "" "If *times* is ``None`` and *ns* is unspecified, this is equivalent to " "specifying ``ns=(atime_ns, mtime_ns)`` where both times are the current time." msgstr "" -#: ../../library/os.rst:3611 msgid "It is an error to specify tuples for both *times* and *ns*." msgstr "" -#: ../../library/os.rst:3613 msgid "" -"Note that the exact times you set here may not be returned by a " -"subsequent :func:`~os.stat` call, depending on the resolution with which " -"your operating system records access and modification times; " -"see :func:`~os.stat`. The best way to preserve exact times is to use the " -"*st_atime_ns* and *st_mtime_ns* fields from the :func:`os.stat` result " -"object with the *ns* parameter to :func:`utime`." +"Note that the exact times you set here may not be returned by a subsequent :" +"func:`~os.stat` call, depending on the resolution with which your operating " +"system records access and modification times; see :func:`~os.stat`. The best " +"way to preserve exact times is to use the *st_atime_ns* and *st_mtime_ns* " +"fields from the :func:`os.stat` result object with the *ns* parameter to :" +"func:`utime`." msgstr "" -#: ../../library/os.rst:3624 msgid "" "Raises an :ref:`auditing event ` ``os.utime`` with arguments " "``path``, ``times``, ``ns``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:3626 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd*, *follow_symlinks*, and *ns* parameters." msgstr "" -#: ../../library/os.rst:3640 msgid "" "Generate the file names in a directory tree by walking the tree either top-" "down or bottom-up. For each directory in the tree rooted at directory *top* " @@ -4033,7 +3267,6 @@ msgid "" "filenames)``." msgstr "" -#: ../../library/os.rst:3645 msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (including symlinks to " @@ -4047,7 +3280,6 @@ msgid "" "unspecified." msgstr "" -#: ../../library/os.rst:3656 msgid "" "If optional argument *topdown* is ``True`` or not specified, the triple for " "a directory is generated before the triples for any of its subdirectories " @@ -4058,7 +3290,6 @@ msgid "" "its subdirectories are generated." msgstr "" -#: ../../library/os.rst:3664 msgid "" "When *topdown* is ``True``, the caller can modify the *dirnames* list in-" "place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " @@ -4071,7 +3302,6 @@ msgid "" "itself is generated." msgstr "" -#: ../../library/os.rst:3673 msgid "" "By default, errors from the :func:`scandir` call are ignored. If optional " "argument *onerror* is specified, it should be a function; it will be called " @@ -4081,35 +3311,30 @@ msgid "" "object." msgstr "" -#: ../../library/os.rst:3679 msgid "" "By default, :func:`walk` will not walk down into symbolic links that resolve " "to directories. Set *followlinks* to ``True`` to visit directories pointed " "to by symlinks, on systems that support them." msgstr "" -#: ../../library/os.rst:3685 msgid "" "Be aware that setting *followlinks* to ``True`` can lead to infinite " "recursion if a link points to a parent directory of itself. :func:`walk` " "does not keep track of the directories it visited already." msgstr "" -#: ../../library/os.rst:3691 msgid "" "If you pass a relative pathname, don't change the current working directory " "between resumptions of :func:`walk`. :func:`walk` never changes the current " "directory, and assumes that its caller doesn't either." msgstr "" -#: ../../library/os.rst:3695 ../../library/os.rst:3757 msgid "" "This example displays the number of bytes taken by non-directory files in " "each directory under the starting directory, except that it doesn't look " "under any ``__pycache__`` subdirectory::" msgstr "" -#: ../../library/os.rst:3699 msgid "" "import os\n" "from os.path import join, getsize\n" @@ -4121,14 +3346,12 @@ msgid "" " dirs.remove('__pycache__') # don't visit __pycache__ directories" msgstr "" -#: ../../library/os.rst:3708 msgid "" "In the next example (simple implementation of :func:`shutil.rmtree`), " "walking the tree bottom-up is essential, :func:`rmdir` doesn't allow " "deleting a directory before the directory is empty::" msgstr "" -#: ../../library/os.rst:3712 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -4143,31 +3366,26 @@ msgid "" "os.rmdir(top)" msgstr "" -#: ../../library/os.rst:3724 msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." msgstr "" -#: ../../library/os.rst:3726 msgid "" "This function now calls :func:`os.scandir` instead of :func:`os.listdir`, " "making it faster by reducing the number of calls to :func:`os.stat`." msgstr "" -#: ../../library/os.rst:3740 msgid "" "This behaves exactly like :func:`walk`, except that it yields a 4-tuple " "``(dirpath, dirnames, filenames, dirfd)``, and it supports ``dir_fd``." msgstr "" -#: ../../library/os.rst:3743 msgid "" "*dirpath*, *dirnames* and *filenames* are identical to :func:`walk` output, " "and *dirfd* is a file descriptor referring to the directory *dirpath*." msgstr "" -#: ../../library/os.rst:3746 msgid "" "This function always supports :ref:`paths relative to directory descriptors " "` and :ref:`not following symlinks `. Note however " @@ -4175,32 +3393,28 @@ msgid "" "*follow_symlinks* is ``False``." msgstr "" -#: ../../library/os.rst:3753 msgid "" "Since :func:`fwalk` yields file descriptors, those are only valid until the " "next iteration step, so you should duplicate them (e.g. with :func:`dup`) if " "you want to keep them longer." msgstr "" -#: ../../library/os.rst:3761 msgid "" "import os\n" "for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'):\n" -" print(root, \"consumes\", end=\"\")\n" +" print(root, \"consumes\", end=\" \")\n" " print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]),\n" -" end=\"\")\n" +" end=\" \")\n" " print(\"bytes in\", len(files), \"non-directory files\")\n" " if '__pycache__' in dirs:\n" " dirs.remove('__pycache__') # don't visit __pycache__ directories" msgstr "" -#: ../../library/os.rst:3770 msgid "" "In the next example, walking the tree bottom-up is essential: :func:`rmdir` " "doesn't allow deleting a directory before the directory is empty::" msgstr "" -#: ../../library/os.rst:3774 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -4214,17 +3428,14 @@ msgid "" " os.rmdir(name, dir_fd=rootfd)" msgstr "" -#: ../../library/os.rst:3785 msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." msgstr "" -#: ../../library/os.rst:3794 msgid "Added support for :class:`bytes` paths." msgstr "" -#: ../../library/os.rst:3800 msgid "" "Create an anonymous file and return a file descriptor that refers to it. " "*flags* must be one of the ``os.MFD_*`` constants available on the system " @@ -4232,7 +3443,6 @@ msgid "" "descriptor is :ref:`non-inheritable `." msgstr "" -#: ../../library/os.rst:3805 msgid "" "The name supplied in *name* is used as a filename and will be displayed as " "the target of the corresponding symbolic link in the directory ``/proc/self/" @@ -4242,24 +3452,20 @@ msgid "" "side effects." msgstr "" -#: ../../library/os.rst:3835 msgid "These flags can be passed to :func:`memfd_create`." msgstr "" -#: ../../library/os.rst:3839 msgid "The ``MFD_HUGE*`` flags are only available since Linux 4.14." msgstr "" -#: ../../library/os.rst:3846 msgid "" "Create and return an event file descriptor. The file descriptors supports " -"raw :func:`read` and :func:`write` with a buffer size of " -"8, :func:`~select.select`, :func:`~select.poll` and similar. See man " -"page :manpage:`eventfd(2)` for more information. By default, the new file " -"descriptor is :ref:`non-inheritable `." +"raw :func:`read` and :func:`write` with a buffer size of 8, :func:`~select." +"select`, :func:`~select.poll` and similar. See man page :manpage:" +"`eventfd(2)` for more information. By default, the new file descriptor is :" +"ref:`non-inheritable `." msgstr "" -#: ../../library/os.rst:3852 msgid "" "*initval* is the initial value of the event counter. The initial value must " "be a 32 bit unsigned integer. Please note that the initial value is limited " @@ -4267,39 +3473,33 @@ msgid "" "integer with a maximum value of 2\\ :sup:`64`\\ -\\ 2." msgstr "" -#: ../../library/os.rst:3857 msgid "" "*flags* can be constructed from :const:`EFD_CLOEXEC`, :const:`EFD_NONBLOCK`, " "and :const:`EFD_SEMAPHORE`." msgstr "" -#: ../../library/os.rst:3860 msgid "" -"If :const:`EFD_SEMAPHORE` is specified and the event counter is non-" -"zero, :func:`eventfd_read` returns 1 and decrements the counter by one." +"If :const:`EFD_SEMAPHORE` is specified and the event counter is non-zero, :" +"func:`eventfd_read` returns 1 and decrements the counter by one." msgstr "" -#: ../../library/os.rst:3863 msgid "" "If :const:`EFD_SEMAPHORE` is not specified and the event counter is non-" "zero, :func:`eventfd_read` returns the current event counter value and " "resets the counter to zero." msgstr "" -#: ../../library/os.rst:3867 msgid "" -"If the event counter is zero and :const:`EFD_NONBLOCK` is not " -"specified, :func:`eventfd_read` blocks." +"If the event counter is zero and :const:`EFD_NONBLOCK` is not specified, :" +"func:`eventfd_read` blocks." msgstr "" -#: ../../library/os.rst:3870 msgid "" ":func:`eventfd_write` increments the event counter. Write blocks if the " -"write operation would increment the counter to a value larger than " -"2\\ :sup:`64`\\ -\\ 2." +"write operation would increment the counter to a value larger than 2\\ :sup:" +"`64`\\ -\\ 2." msgstr "" -#: ../../library/os.rst:3876 msgid "" "import os\n" "\n" @@ -4317,134 +3517,108 @@ msgid "" " os.close(fd)" msgstr "" -#: ../../library/os.rst:3897 msgid "" "Read value from an :func:`eventfd` file descriptor and return a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." msgstr "" -#: ../../library/os.rst:3906 msgid "" "Add value to an :func:`eventfd` file descriptor. *value* must be a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." msgstr "" -#: ../../library/os.rst:3915 msgid "Set close-on-exec flag for new :func:`eventfd` file descriptor." msgstr "" -#: ../../library/os.rst:3923 msgid "" "Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor." msgstr "" -#: ../../library/os.rst:3932 msgid "" "Provide semaphore-like semantics for reads from an :func:`eventfd` file " "descriptor. On read the internal counter is decremented by one." msgstr "" -#: ../../library/os.rst:3943 msgid "Timer File Descriptors" msgstr "" -#: ../../library/os.rst:3947 msgid "" "These functions provide support for Linux's *timer file descriptor* API. " "Naturally, they are all only available on Linux." msgstr "" -#: ../../library/os.rst:3952 msgid "Create and return a timer file descriptor (*timerfd*)." msgstr "" -#: ../../library/os.rst:3954 msgid "The file descriptor returned by :func:`timerfd_create` supports:" msgstr "" -#: ../../library/os.rst:3956 msgid ":func:`read`" msgstr "" -#: ../../library/os.rst:3957 msgid ":func:`~select.select`" msgstr "" -#: ../../library/os.rst:3958 msgid ":func:`~select.poll`" msgstr "" -#: ../../library/os.rst:3960 msgid "" "The file descriptor's :func:`read` method can be called with a buffer size " "of 8. If the timer has already expired one or more times, :func:`read` " "returns the number of expirations with the host's endianness, which may be " -"converted to an :class:`int` by ``int.from_bytes(x, " -"byteorder=sys.byteorder)``." +"converted to an :class:`int` by ``int.from_bytes(x, byteorder=sys." +"byteorder)``." msgstr "" -#: ../../library/os.rst:3965 msgid "" ":func:`~select.select` and :func:`~select.poll` can be used to wait until " "timer expires and the file descriptor is readable." msgstr "" -#: ../../library/os.rst:3968 msgid "" "*clockid* must be a valid :ref:`clock ID `, as " "defined in the :py:mod:`time` module:" msgstr "" -#: ../../library/os.rst:3971 msgid ":const:`time.CLOCK_REALTIME`" msgstr "" -#: ../../library/os.rst:3972 msgid ":const:`time.CLOCK_MONOTONIC`" msgstr "" -#: ../../library/os.rst:3973 msgid ":const:`time.CLOCK_BOOTTIME` (Since Linux 3.15 for timerfd_create)" msgstr "" -#: ../../library/os.rst:3975 msgid "" "If *clockid* is :const:`time.CLOCK_REALTIME`, a settable system-wide real-" "time clock is used. If system clock is changed, timer setting need to be " -"updated. To cancel timer when system clock is changed, " -"see :const:`TFD_TIMER_CANCEL_ON_SET`." +"updated. To cancel timer when system clock is changed, see :const:" +"`TFD_TIMER_CANCEL_ON_SET`." msgstr "" -#: ../../library/os.rst:3980 msgid "" "If *clockid* is :const:`time.CLOCK_MONOTONIC`, a non-settable monotonically " "increasing clock is used. Even if the system clock is changed, the timer " "setting will not be affected." msgstr "" -#: ../../library/os.rst:3984 msgid "" -"If *clockid* is :const:`time.CLOCK_BOOTTIME`, same " -"as :const:`time.CLOCK_MONOTONIC` except it includes any time that the system " -"is suspended." +"If *clockid* is :const:`time.CLOCK_BOOTTIME`, same as :const:`time." +"CLOCK_MONOTONIC` except it includes any time that the system is suspended." msgstr "" -#: ../../library/os.rst:3987 msgid "" "The file descriptor's behaviour can be modified by specifying a *flags* " "value. Any of the following variables may used, combined using bitwise OR " "(the ``|`` operator):" msgstr "" -#: ../../library/os.rst:3991 msgid ":const:`TFD_NONBLOCK`" msgstr "" -#: ../../library/os.rst:3992 msgid ":const:`TFD_CLOEXEC`" msgstr "" -#: ../../library/os.rst:3994 msgid "" "If :const:`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks until the " "timer expires. If it is set as a flag, :func:`read` doesn't block, but If " @@ -4452,165 +3626,136 @@ msgid "" "raises :class:`OSError` with ``errno`` is set to :const:`errno.EAGAIN`." msgstr "" -#: ../../library/os.rst:4000 msgid ":const:`TFD_CLOEXEC` is always set by Python automatically." msgstr "" -#: ../../library/os.rst:4002 msgid "" "The file descriptor must be closed with :func:`os.close` when it is no " "longer needed, or else the file descriptor will be leaked." msgstr "" -#: ../../library/os.rst:4005 msgid "The :manpage:`timerfd_create(2)` man page." msgstr "" -#: ../../library/os.rst:4014 msgid "" "Alter a timer file descriptor's internal timer. This function operates the " "same interval timer as :func:`timerfd_settime_ns`." msgstr "" -#: ../../library/os.rst:4017 msgid "*fd* must be a valid timer file descriptor." msgstr "" -#: ../../library/os.rst:4019 msgid "" "The timer's behaviour can be modified by specifying a *flags* value. Any of " "the following variables may used, combined using bitwise OR (the ``|`` " "operator):" msgstr "" -#: ../../library/os.rst:4023 msgid ":const:`TFD_TIMER_ABSTIME`" msgstr "" -#: ../../library/os.rst:4024 msgid ":const:`TFD_TIMER_CANCEL_ON_SET`" msgstr "" -#: ../../library/os.rst:4026 msgid "" "The timer is disabled by setting *initial* to zero (``0``). If *initial* is " "equal to or greater than zero, the timer is enabled. If *initial* is less " -"than zero, it raises an :class:`OSError` exception with ``errno`` set " -"to :const:`errno.EINVAL`" +"than zero, it raises an :class:`OSError` exception with ``errno`` set to :" +"const:`errno.EINVAL`" msgstr "" -#: ../../library/os.rst:4031 msgid "" "By default the timer will fire when *initial* seconds have elapsed. (If " "*initial* is zero, timer will fire immediately.)" msgstr "" -#: ../../library/os.rst:4034 msgid "" "However, if the :const:`TFD_TIMER_ABSTIME` flag is set, the timer will fire " "when the timer's clock (set by *clockid* in :func:`timerfd_create`) reaches " "*initial* seconds." msgstr "" -#: ../../library/os.rst:4038 msgid "" "The timer's interval is set by the *interval* :py:class:`float`. If " "*interval* is zero, the timer only fires once, on the initial expiration. If " "*interval* is greater than zero, the timer fires every time *interval* " "seconds have elapsed since the previous expiration. If *interval* is less " -"than zero, it raises :class:`OSError` with ``errno`` set " -"to :const:`errno.EINVAL`" +"than zero, it raises :class:`OSError` with ``errno`` set to :const:`errno." +"EINVAL`" msgstr "" -#: ../../library/os.rst:4045 msgid "" -"If the :const:`TFD_TIMER_CANCEL_ON_SET` flag is set along " -"with :const:`TFD_TIMER_ABSTIME` and the clock for this timer " -"is :const:`time.CLOCK_REALTIME`, the timer is marked as cancelable if the " -"real-time clock is changed discontinuously. Reading the descriptor is " -"aborted with the error ECANCELED." +"If the :const:`TFD_TIMER_CANCEL_ON_SET` flag is set along with :const:" +"`TFD_TIMER_ABSTIME` and the clock for this timer is :const:`time." +"CLOCK_REALTIME`, the timer is marked as cancelable if the real-time clock is " +"changed discontinuously. Reading the descriptor is aborted with the error " +"ECANCELED." msgstr "" -#: ../../library/os.rst:4051 msgid "" "Linux manages system clock as UTC. A daylight-savings time transition is " "done by changing time offset only and doesn't cause discontinuous system " "clock change." msgstr "" -#: ../../library/os.rst:4055 msgid "" "Discontinuous system clock change will be caused by the following events:" msgstr "" -#: ../../library/os.rst:4057 msgid "``settimeofday``" msgstr "" -#: ../../library/os.rst:4058 msgid "``clock_settime``" msgstr "" -#: ../../library/os.rst:4059 msgid "set the system date and time by ``date`` command" msgstr "" -#: ../../library/os.rst:4061 msgid "" "Return a two-item tuple of (``next_expiration``, ``interval``) from the " "previous timer state, before this function executed." msgstr "" -#: ../../library/os.rst:4066 msgid "" -":manpage:`timerfd_create(2)`, :manpage:`timerfd_settime(2)`, :manpage:`settimeofday(2)`, :manpage:`clock_settime(2)`, " -"and :manpage:`date(1)`." +":manpage:`timerfd_create(2)`, :manpage:`timerfd_settime(2)`, :manpage:" +"`settimeofday(2)`, :manpage:`clock_settime(2)`, and :manpage:`date(1)`." msgstr "" -#: ../../library/os.rst:4077 msgid "" "Similar to :func:`timerfd_settime`, but use time as nanoseconds. This " "function operates the same interval timer as :func:`timerfd_settime`." msgstr "" -#: ../../library/os.rst:4087 msgid "Return a two-item tuple of floats (``next_expiration``, ``interval``)." msgstr "" -#: ../../library/os.rst:4089 msgid "" "``next_expiration`` denotes the relative time until next the timer next " "fires, regardless of if the :const:`TFD_TIMER_ABSTIME` flag is set." msgstr "" -#: ../../library/os.rst:4092 msgid "" "``interval`` denotes the timer's interval. If zero, the timer will only fire " "once, after ``next_expiration`` seconds have elapsed." msgstr "" -#: ../../library/os.rst:4096 msgid ":manpage:`timerfd_gettime(2)`" msgstr "" -#: ../../library/os.rst:4105 msgid "Similar to :func:`timerfd_gettime`, but return time as nanoseconds." msgstr "" -#: ../../library/os.rst:4113 msgid "" -"A flag for the :func:`timerfd_create` function, which sets " -"the :const:`O_NONBLOCK` status flag for the new timer file descriptor. " -"If :const:`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks." +"A flag for the :func:`timerfd_create` function, which sets the :const:" +"`O_NONBLOCK` status flag for the new timer file descriptor. If :const:" +"`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks." msgstr "" -#: ../../library/os.rst:4123 msgid "" "A flag for the :func:`timerfd_create` function, If :const:`TFD_CLOEXEC` is " "set as a flag, set close-on-exec flag for new file descriptor." msgstr "" -#: ../../library/os.rst:4133 msgid "" "A flag for the :func:`timerfd_settime` and :func:`timerfd_settime_ns` " "functions. If this flag is set, *initial* is interpreted as an absolute " @@ -4618,41 +3763,33 @@ msgid "" "Epoch)." msgstr "" -#: ../../library/os.rst:4143 msgid "" "A flag for the :func:`timerfd_settime` and :func:`timerfd_settime_ns` " "functions along with :const:`TFD_TIMER_ABSTIME`. The timer is cancelled when " "the time of the underlying clock changes discontinuously." msgstr "" -#: ../../library/os.rst:4154 msgid "Linux extended attributes" msgstr "" -#: ../../library/os.rst:4158 msgid "These functions are all available on Linux only." msgstr "" -#: ../../library/os.rst:4162 msgid "" "Return the value of the extended filesystem attribute *attribute* for " -"*path*. *attribute* can be bytes or str (directly or indirectly through " -"the :class:`PathLike` interface). If it is str, it is encoded with the " -"filesystem encoding." +"*path*. *attribute* can be bytes or str (directly or indirectly through the :" +"class:`PathLike` interface). If it is str, it is encoded with the filesystem " +"encoding." msgstr "" -#: ../../library/os.rst:4170 msgid "" "Raises an :ref:`auditing event ` ``os.getxattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: ../../library/os.rst:4172 ../../library/os.rst:4204 -#: ../../library/os.rst:4229 msgid "Accepts a :term:`path-like object` for *path* and *attribute*." msgstr "" -#: ../../library/os.rst:4178 msgid "" "Return a list of the extended filesystem attributes on *path*. The " "attributes in the list are represented as strings decoded with the " @@ -4660,77 +3797,65 @@ msgid "" "the current directory." msgstr "" -#: ../../library/os.rst:4186 msgid "" "Raises an :ref:`auditing event ` ``os.listxattr`` with argument " "``path``." msgstr "" -#: ../../library/os.rst:4194 msgid "" "Removes the extended filesystem attribute *attribute* from *path*. " -"*attribute* should be bytes or str (directly or indirectly through " -"the :class:`PathLike` interface). If it is a string, it is encoded with " -"the :term:`filesystem encoding and error handler`." +"*attribute* should be bytes or str (directly or indirectly through the :" +"class:`PathLike` interface). If it is a string, it is encoded with the :term:" +"`filesystem encoding and error handler`." msgstr "" -#: ../../library/os.rst:4202 msgid "" "Raises an :ref:`auditing event ` ``os.removexattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: ../../library/os.rst:4210 msgid "" "Set the extended filesystem attribute *attribute* on *path* to *value*. " "*attribute* must be a bytes or str with no embedded NULs (directly or " "indirectly through the :class:`PathLike` interface). If it is a str, it is " "encoded with the :term:`filesystem encoding and error handler`. *flags* may " "be :data:`XATTR_REPLACE` or :data:`XATTR_CREATE`. If :data:`XATTR_REPLACE` " -"is given and the attribute does not exist, ``ENODATA`` will be raised. " -"If :data:`XATTR_CREATE` is given and the attribute already exists, the " -"attribute will not be created and ``EEXISTS`` will be raised." +"is given and the attribute does not exist, ``ENODATA`` will be raised. If :" +"data:`XATTR_CREATE` is given and the attribute already exists, the attribute " +"will not be created and ``EEXISTS`` will be raised." msgstr "" -#: ../../library/os.rst:4224 msgid "" "A bug in Linux kernel versions less than 2.6.39 caused the flags argument to " "be ignored on some filesystems." msgstr "" -#: ../../library/os.rst:4227 msgid "" "Raises an :ref:`auditing event ` ``os.setxattr`` with arguments " "``path``, ``attribute``, ``value``, ``flags``." msgstr "" -#: ../../library/os.rst:4235 msgid "" "The maximum size the value of an extended attribute can be. Currently, this " "is 64 KiB on Linux." msgstr "" -#: ../../library/os.rst:4241 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must create an attribute." msgstr "" -#: ../../library/os.rst:4247 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must replace an existing attribute." msgstr "" -#: ../../library/os.rst:4254 msgid "Process Management" msgstr "" -#: ../../library/os.rst:4256 msgid "These functions may be used to create and manage processes." msgstr "" -#: ../../library/os.rst:4258 msgid "" "The various :func:`exec\\* ` functions take a list of arguments for " "the new program loaded into the process. In each case, the first of these " @@ -4741,46 +3866,39 @@ msgid "" "standard output; ``foo`` will seem to be ignored." msgstr "" -#: ../../library/os.rst:4269 msgid "" "Generate a :const:`SIGABRT` signal to the current process. On Unix, the " "default behavior is to produce a core dump; on Windows, the process " "immediately returns an exit code of ``3``. Be aware that calling this " -"function will not call the Python signal handler registered " -"for :const:`SIGABRT` with :func:`signal.signal`." +"function will not call the Python signal handler registered for :const:" +"`SIGABRT` with :func:`signal.signal`." msgstr "" -#: ../../library/os.rst:4278 msgid "Add a path to the DLL search path." msgstr "" -#: ../../library/os.rst:4280 msgid "" "This search path is used when resolving dependencies for imported extension " "modules (the module itself is resolved through :data:`sys.path`), and also " "by :mod:`ctypes`." msgstr "" -#: ../../library/os.rst:4284 msgid "" "Remove the directory by calling **close()** on the returned object or using " "it in a :keyword:`with` statement." msgstr "" -#: ../../library/os.rst:4287 msgid "" -"See the `Microsoft documentation `_ for more information about how DLLs " -"are loaded." +"See the `Microsoft documentation `_ for more information about how " +"DLLs are loaded." msgstr "" -#: ../../library/os.rst:4291 msgid "" "Raises an :ref:`auditing event ` ``os.add_dll_directory`` with " "argument ``path``." msgstr "" -#: ../../library/os.rst:4295 msgid "" "Previous versions of CPython would resolve DLLs using the default behavior " "for the current process. This led to inconsistencies, such as only sometimes " @@ -4788,14 +3906,12 @@ msgid "" "such as ``AddDllDirectory`` having no effect." msgstr "" -#: ../../library/os.rst:4302 msgid "" "In 3.8, the two primary ways DLLs are loaded now explicitly override the " "process-wide behavior to ensure consistency. See the :ref:`porting notes " "` for information on updating libraries." msgstr "" -#: ../../library/os.rst:4317 msgid "" "These functions all execute a new program, replacing the current process; " "they do not return. On Unix, the new executable is loaded into the current " @@ -4803,15 +3919,13 @@ msgid "" "reported as :exc:`OSError` exceptions." msgstr "" -#: ../../library/os.rst:4322 msgid "" "The current process is replaced immediately. Open file objects and " "descriptors are not flushed, so if there may be data buffered on these open " -"files, you should flush them using :func:`sys.stdout.flush` " -"or :func:`os.fsync` before calling an :func:`exec\\* ` function." +"files, you should flush them using :func:`sys.stdout.flush` or :func:`os." +"fsync` before calling an :func:`exec\\* ` function." msgstr "" -#: ../../library/os.rst:4328 msgid "" "The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " "in how command-line arguments are passed. The \"l\" variants are perhaps " @@ -4824,65 +3938,56 @@ msgid "" "is not enforced." msgstr "" -#: ../../library/os.rst:4337 msgid "" -"The variants which include a \"p\" near the end " -"(:func:`execlp`, :func:`execlpe`, :func:`execvp`, and :func:`execvpe`) will " -"use the :envvar:`PATH` environment variable to locate the program *file*. " -"When the environment is being replaced (using one of the :func:`exec\\*e " -"` variants, discussed in the next paragraph), the new environment is " -"used as the source of the :envvar:`PATH` variable. The other " -"variants, :func:`execl`, :func:`execle`, :func:`execv`, and :func:`execve`, " -"will not use the :envvar:`PATH` variable to locate the executable; *path* " -"must contain an appropriate absolute or relative path. Relative paths must " -"include at least one slash, even on Windows, as plain names will not be " -"resolved." +"The variants which include a \"p\" near the end (:func:`execlp`, :func:" +"`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " +"environment variable to locate the program *file*. When the environment is " +"being replaced (using one of the :func:`exec\\*e ` variants, " +"discussed in the next paragraph), the new environment is used as the source " +"of the :envvar:`PATH` variable. The other variants, :func:`execl`, :func:" +"`execle`, :func:`execv`, and :func:`execve`, will not use the :envvar:`PATH` " +"variable to locate the executable; *path* must contain an appropriate " +"absolute or relative path. Relative paths must include at least one slash, " +"even on Windows, as plain names will not be resolved." msgstr "" -#: ../../library/os.rst:4348 msgid "" "For :func:`execle`, :func:`execlpe`, :func:`execve`, and :func:`execvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " "which is used to define the environment variables for the new process (these " -"are used instead of the current process' environment); the " -"functions :func:`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` " -"all cause the new process to inherit the environment of the current process." +"are used instead of the current process' environment); the functions :func:" +"`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new " +"process to inherit the environment of the current process." msgstr "" -#: ../../library/os.rst:4355 msgid "" "For :func:`execve` on some platforms, *path* may also be specified as an " "open file descriptor. This functionality may not be supported on your " -"platform; you can check whether or not it is available " -"using :data:`os.supports_fd`. If it is unavailable, using it will raise " -"a :exc:`NotImplementedError`." +"platform; you can check whether or not it is available using :data:`os." +"supports_fd`. If it is unavailable, using it will raise a :exc:" +"`NotImplementedError`." msgstr "" -#: ../../library/os.rst:4360 msgid "" "Raises an :ref:`auditing event ` ``os.exec`` with arguments " "``path``, ``args``, ``env``." msgstr "" -#: ../../library/os.rst:4364 msgid "" -"Added support for specifying *path* as an open file descriptor " -"for :func:`execve`." +"Added support for specifying *path* as an open file descriptor for :func:" +"`execve`." msgstr "" -#: ../../library/os.rst:4373 msgid "" "Exit the process with status *n*, without calling cleanup handlers, flushing " "stdio buffers, etc." msgstr "" -#: ../../library/os.rst:4378 msgid "" "The standard way to exit is :func:`sys.exit(n) `. :func:`!_exit` " "should normally only be used in the child process after a :func:`fork`." msgstr "" -#: ../../library/os.rst:4381 msgid "" "The following exit codes are defined and can be used with :func:`_exit`, " "although they are not required. These are typically used for system " @@ -4890,139 +3995,113 @@ msgid "" "delivery program." msgstr "" -#: ../../library/os.rst:4387 msgid "" "Some of these may not be available on all Unix platforms, since there is " "some variation. These constants are defined where they are defined by the " "underlying platform." msgstr "" -#: ../../library/os.rst:4394 msgid "" "Exit code that means no error occurred. May be taken from the defined value " "of ``EXIT_SUCCESS`` on some platforms. Generally has a value of zero." msgstr "" -#: ../../library/os.rst:4402 msgid "" "Exit code that means the command was used incorrectly, such as when the " "wrong number of arguments are given." msgstr "" -#: ../../library/os.rst:4410 msgid "Exit code that means the input data was incorrect." msgstr "" -#: ../../library/os.rst:4417 msgid "Exit code that means an input file did not exist or was not readable." msgstr "" -#: ../../library/os.rst:4424 msgid "Exit code that means a specified user did not exist." msgstr "" -#: ../../library/os.rst:4431 msgid "Exit code that means a specified host did not exist." msgstr "" -#: ../../library/os.rst:4438 msgid "Exit code that means that a required service is unavailable." msgstr "" -#: ../../library/os.rst:4445 msgid "Exit code that means an internal software error was detected." msgstr "" -#: ../../library/os.rst:4452 msgid "" "Exit code that means an operating system error was detected, such as the " "inability to fork or create a pipe." msgstr "" -#: ../../library/os.rst:4460 msgid "" "Exit code that means some system file did not exist, could not be opened, or " "had some other kind of error." msgstr "" -#: ../../library/os.rst:4468 msgid "Exit code that means a user specified output file could not be created." msgstr "" -#: ../../library/os.rst:4475 msgid "" "Exit code that means that an error occurred while doing I/O on some file." msgstr "" -#: ../../library/os.rst:4482 msgid "" "Exit code that means a temporary failure occurred. This indicates something " "that may not really be an error, such as a network connection that couldn't " "be made during a retryable operation." msgstr "" -#: ../../library/os.rst:4491 msgid "" "Exit code that means that a protocol exchange was illegal, invalid, or not " "understood." msgstr "" -#: ../../library/os.rst:4499 msgid "" "Exit code that means that there were insufficient permissions to perform the " "operation (but not intended for file system problems)." msgstr "" -#: ../../library/os.rst:4507 msgid "Exit code that means that some kind of configuration error occurred." msgstr "" -#: ../../library/os.rst:4514 msgid "Exit code that means something like \"an entry was not found\"." msgstr "" -#: ../../library/os.rst:4521 msgid "" "Fork a child process. Return ``0`` in the child and the child's process id " "in the parent. If an error occurs :exc:`OSError` is raised." msgstr "" -#: ../../library/os.rst:4524 msgid "" "Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " "issues when using ``fork()`` from a thread." msgstr "" -#: ../../library/os.rst:4527 msgid "" "Raises an :ref:`auditing event ` ``os.fork`` with no arguments." msgstr "" -#: ../../library/os.rst:4531 msgid "" "If you use TLS sockets in an application calling ``fork()``, see the warning " "in the :mod:`ssl` documentation." msgstr "" -#: ../../library/os.rst:4536 ../../library/os.rst:4580 msgid "" "On macOS the use of this function is unsafe when mixed with using higher-" "level system APIs, and that includes using :mod:`urllib.request`." msgstr "" -#: ../../library/os.rst:4539 msgid "" -"Calling ``fork()`` in a subinterpreter is no longer supported " -"(:exc:`RuntimeError` is raised)." +"Calling ``fork()`` in a subinterpreter is no longer supported (:exc:" +"`RuntimeError` is raised)." msgstr "" -#: ../../library/os.rst:4543 msgid "" -"If Python is able to detect that your process has multiple " -"threads, :func:`os.fork` now raises a :exc:`DeprecationWarning`." +"If Python is able to detect that your process has multiple threads, :func:" +"`os.fork` now raises a :exc:`DeprecationWarning`." msgstr "" -#: ../../library/os.rst:4547 msgid "" "We chose to surface this as a warning, when detectable, to better inform " "developers of a design problem that the POSIX platform specifically notes as " @@ -5033,21 +4112,18 @@ msgid "" "``free``)." msgstr "" -#: ../../library/os.rst:4556 msgid "" "Users of macOS or users of libc or malloc implementations other than those " "typically found in glibc to date are among those already more likely to " "experience deadlocks running such code." msgstr "" -#: ../../library/os.rst:4560 msgid "" "See `this discussion on fork being incompatible with threads `_ for technical details of why we're surfacing " "this longstanding platform compatibility problem to developers." msgstr "" -#: ../../library/os.rst:4570 msgid "" "Fork a child process, using a new pseudo-terminal as the child's controlling " "terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, " @@ -5056,77 +4132,64 @@ msgid "" "the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." msgstr "" -#: ../../library/os.rst:4576 msgid "" "Raises an :ref:`auditing event ` ``os.forkpty`` with no arguments." msgstr "" -#: ../../library/os.rst:4583 msgid "" -"Calling ``forkpty()`` in a subinterpreter is no longer supported " -"(:exc:`RuntimeError` is raised)." +"Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:" +"`RuntimeError` is raised)." msgstr "" -#: ../../library/os.rst:4587 msgid "" "If Python is able to detect that your process has multiple threads, this now " -"raises a :exc:`DeprecationWarning`. See the longer explanation " -"on :func:`os.fork`." +"raises a :exc:`DeprecationWarning`. See the longer explanation on :func:`os." +"fork`." msgstr "" -#: ../../library/os.rst:4601 msgid "" "Send signal *sig* to the process *pid*. Constants for the specific signals " "available on the host platform are defined in the :mod:`signal` module." msgstr "" -#: ../../library/os.rst:4604 msgid "" -"Windows: The :const:`signal.CTRL_C_EVENT` " -"and :const:`signal.CTRL_BREAK_EVENT` signals are special signals which can " -"only be sent to console processes which share a common console window, e.g., " -"some subprocesses. Any other value for *sig* will cause the process to be " +"Windows: The :const:`signal.CTRL_C_EVENT` and :const:`signal." +"CTRL_BREAK_EVENT` signals are special signals which can only be sent to " +"console processes which share a common console window, e.g., some " +"subprocesses. Any other value for *sig* will cause the process to be " "unconditionally killed by the TerminateProcess API, and the exit code will " "be set to *sig*." msgstr "" -#: ../../library/os.rst:4611 msgid "See also :func:`signal.pthread_kill`." msgstr "" -#: ../../library/os.rst:4613 msgid "" "Raises an :ref:`auditing event ` ``os.kill`` with arguments " "``pid``, ``sig``." msgstr "" -#: ../../library/os.rst:4627 msgid "Send the signal *sig* to the process group *pgid*." msgstr "" -#: ../../library/os.rst:4629 msgid "" "Raises an :ref:`auditing event ` ``os.killpg`` with arguments " "``pgid``, ``sig``." msgstr "" -#: ../../library/os.rst:4636 msgid "" "Add *increment* to the process's \"niceness\". Return the new niceness." msgstr "" -#: ../../library/os.rst:4643 msgid "" "Return a file descriptor referring to the process *pid* with *flags* set. " "This descriptor can be used to perform process management without races and " "signals." msgstr "" -#: ../../library/os.rst:4647 msgid "See the :manpage:`pidfd_open(2)` man page for more details." msgstr "" -#: ../../library/os.rst:4654 msgid "" "This flag indicates that the file descriptor will be non-blocking. If the " "process referred to by the file descriptor has not yet terminated, then an " @@ -5134,23 +4197,20 @@ msgid "" "immediately return the error :const:`~errno.EAGAIN` rather than blocking." msgstr "" -#: ../../library/os.rst:4665 msgid "" "Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." msgstr "" -#: ../../library/os.rst:4673 msgid "" "Open a pipe to or from command *cmd*. The return value is an open file " "object connected to the pipe, which can be read or written depending on " "whether *mode* is ``'r'`` (default) or ``'w'``. The *buffering* argument " -"have the same meaning as the corresponding argument to the built-" -"in :func:`open` function. The returned file object reads or writes text " -"strings rather than bytes." +"have the same meaning as the corresponding argument to the built-in :func:" +"`open` function. The returned file object reads or writes text strings " +"rather than bytes." msgstr "" -#: ../../library/os.rst:4681 msgid "" "The ``close`` method returns :const:`None` if the subprocess exited " "successfully, or the subprocess's return code if there was an error. On " @@ -5162,63 +4222,53 @@ msgid "" "contains the signed integer return code from the child process." msgstr "" -#: ../../library/os.rst:4691 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the ``close`` " "method result (exit status) into an exit code if it is not ``None``. On " "Windows, the ``close`` method result is directly the exit code (or ``None``)." msgstr "" -#: ../../library/os.rst:4696 msgid "" "This is implemented using :class:`subprocess.Popen`; see that class's " "documentation for more powerful ways to manage and communicate with " "subprocesses." msgstr "" -#: ../../library/os.rst:4703 msgid "" "The :ref:`Python UTF-8 Mode ` affects encodings used for *cmd* " "and pipe contents." msgstr "" -#: ../../library/os.rst:4706 msgid "" -":func:`popen` is a simple wrapper around :class:`subprocess.Popen`. " -"Use :class:`subprocess.Popen` or :func:`subprocess.run` to control options " -"like encodings." +":func:`popen` is a simple wrapper around :class:`subprocess.Popen`. Use :" +"class:`subprocess.Popen` or :func:`subprocess.run` to control options like " +"encodings." msgstr "" -#: ../../library/os.rst:4710 msgid "" "The function is :term:`soft deprecated` and should no longer be used to " "write new code. The :mod:`subprocess` module is recommended instead." msgstr "" -#: ../../library/os.rst:4719 msgid "Wraps the :c:func:`!posix_spawn` C library API for use from Python." msgstr "" -#: ../../library/os.rst:4721 msgid "" "Most users should use :func:`subprocess.run` instead of :func:`posix_spawn`." msgstr "" -#: ../../library/os.rst:4723 msgid "" -"The positional-only arguments *path*, *args*, and *env* are similar " -"to :func:`execve`. *env* is allowed to be ``None``, in which case current " -"process' environment is used." +"The positional-only arguments *path*, *args*, and *env* are similar to :func:" +"`execve`. *env* is allowed to be ``None``, in which case current process' " +"environment is used." msgstr "" -#: ../../library/os.rst:4727 msgid "" "The *path* parameter is the path to the executable file. The *path* should " "contain a directory. Use :func:`posix_spawnp` to pass an executable file " "without directory." msgstr "" -#: ../../library/os.rst:4731 msgid "" "The *file_actions* argument may be a sequence of tuples describing actions " "to take on specific file descriptors in the child process between the C " @@ -5227,49 +4277,39 @@ msgid "" "describing the remaining tuple elements:" msgstr "" -#: ../../library/os.rst:4739 msgid "(``os.POSIX_SPAWN_OPEN``, *fd*, *path*, *flags*, *mode*)" msgstr "" -#: ../../library/os.rst:4741 msgid "Performs ``os.dup2(os.open(path, flags, mode), fd)``." msgstr "" -#: ../../library/os.rst:4745 msgid "(``os.POSIX_SPAWN_CLOSE``, *fd*)" msgstr "" -#: ../../library/os.rst:4747 msgid "Performs ``os.close(fd)``." msgstr "" -#: ../../library/os.rst:4751 msgid "(``os.POSIX_SPAWN_DUP2``, *fd*, *new_fd*)" msgstr "" -#: ../../library/os.rst:4753 msgid "Performs ``os.dup2(fd, new_fd)``." msgstr "" -#: ../../library/os.rst:4757 msgid "(``os.POSIX_SPAWN_CLOSEFROM``, *fd*)" msgstr "" -#: ../../library/os.rst:4759 msgid "Performs ``os.closerange(fd, INF)``." msgstr "" -#: ../../library/os.rst:4761 msgid "" "These tuples correspond to the C library :c:func:`!" "posix_spawn_file_actions_addopen`, :c:func:`!" "posix_spawn_file_actions_addclose`, :c:func:`!" "posix_spawn_file_actions_adddup2`, and :c:func:`!" -"posix_spawn_file_actions_addclosefrom_np` API calls used to prepare for " -"the :c:func:`!posix_spawn` call itself." +"posix_spawn_file_actions_addclosefrom_np` API calls used to prepare for the :" +"c:func:`!posix_spawn` call itself." msgstr "" -#: ../../library/os.rst:4768 msgid "" "The *setpgroup* argument will set the process group of the child to the " "value specified. If the value specified is 0, the child's process group ID " @@ -5278,7 +4318,6 @@ msgid "" "corresponds to the C library :c:macro:`!POSIX_SPAWN_SETPGROUP` flag." msgstr "" -#: ../../library/os.rst:4774 msgid "" "If the *resetids* argument is ``True`` it will reset the effective UID and " "GID of the child to the real UID and GID of the parent process. If the " @@ -5289,15 +4328,13 @@ msgid "" "library :c:macro:`!POSIX_SPAWN_RESETIDS` flag." msgstr "" -#: ../../library/os.rst:4782 msgid "" "If the *setsid* argument is ``True``, it will create a new session ID for " -"``posix_spawn``. *setsid* requires :c:macro:`!POSIX_SPAWN_SETSID` " -"or :c:macro:`!POSIX_SPAWN_SETSID_NP` flag. " -"Otherwise, :exc:`NotImplementedError` is raised." +"``posix_spawn``. *setsid* requires :c:macro:`!POSIX_SPAWN_SETSID` or :c:" +"macro:`!POSIX_SPAWN_SETSID_NP` flag. Otherwise, :exc:`NotImplementedError` " +"is raised." msgstr "" -#: ../../library/os.rst:4787 msgid "" "The *setsigmask* argument will set the signal mask to the signal set " "specified. If the parameter is not used, then the child inherits the " @@ -5305,14 +4342,12 @@ msgid "" "POSIX_SPAWN_SETSIGMASK` flag." msgstr "" -#: ../../library/os.rst:4792 msgid "" "The *sigdef* argument will reset the disposition of all signals in the set " "specified. This argument corresponds to the C library :c:macro:`!" "POSIX_SPAWN_SETSIGDEF` flag." msgstr "" -#: ../../library/os.rst:4796 msgid "" "The *scheduler* argument must be a tuple containing the (optional) scheduler " "policy and an instance of :class:`sched_param` with the scheduler " @@ -5322,94 +4357,77 @@ msgid "" "POSIX_SPAWN_SETSCHEDULER` flags." msgstr "" -#: ../../library/os.rst:4803 ../../library/os.rst:4824 msgid "" "Raises an :ref:`auditing event ` ``os.posix_spawn`` with arguments " "``path``, ``argv``, ``env``." msgstr "" -#: ../../library/os.rst:4807 msgid "" "*env* parameter accepts ``None``. ``os.POSIX_SPAWN_CLOSEFROM`` is available " "on platforms where :c:func:`!posix_spawn_file_actions_addclosefrom_np` " "exists." msgstr "" -#: ../../library/os.rst:4818 msgid "Wraps the :c:func:`!posix_spawnp` C library API for use from Python." msgstr "" -#: ../../library/os.rst:4820 msgid "" "Similar to :func:`posix_spawn` except that the system searches for the " "*executable* file in the list of directories specified by the :envvar:`PATH` " "environment variable (in the same way as for ``execvp(3)``)." msgstr "" -#: ../../library/os.rst:4830 msgid "See :func:`posix_spawn` documentation." msgstr "" -#: ../../library/os.rst:4836 msgid "" -"Register callables to be executed when a new child process is forked " -"using :func:`os.fork` or similar process cloning APIs. The parameters are " -"optional and keyword-only. Each specifies a different call point." +"Register callables to be executed when a new child process is forked using :" +"func:`os.fork` or similar process cloning APIs. The parameters are optional " +"and keyword-only. Each specifies a different call point." msgstr "" -#: ../../library/os.rst:4841 msgid "*before* is a function called before forking a child process." msgstr "" -#: ../../library/os.rst:4842 msgid "" "*after_in_parent* is a function called from the parent process after forking " "a child process." msgstr "" -#: ../../library/os.rst:4844 msgid "*after_in_child* is a function called from the child process." msgstr "" -#: ../../library/os.rst:4846 msgid "" "These calls are only made if control is expected to return to the Python " "interpreter. A typical :mod:`subprocess` launch will not trigger them as " "the child is not going to re-enter the interpreter." msgstr "" -#: ../../library/os.rst:4850 msgid "" "Functions registered for execution before forking are called in reverse " "registration order. Functions registered for execution after forking " "(either in the parent or in the child) are called in registration order." msgstr "" -#: ../../library/os.rst:4855 msgid "" "Note that :c:func:`fork` calls made by third-party C code may not call those " -"functions, unless it explicitly " -"calls :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` " -"and :c:func:`PyOS_AfterFork_Child`." +"functions, unless it explicitly calls :c:func:`PyOS_BeforeFork`, :c:func:" +"`PyOS_AfterFork_Parent` and :c:func:`PyOS_AfterFork_Child`." msgstr "" -#: ../../library/os.rst:4859 msgid "There is no way to unregister a function." msgstr "" -#: ../../library/os.rst:4875 msgid "Execute the program *path* in a new process." msgstr "" -#: ../../library/os.rst:4877 msgid "" "(Note that the :mod:`subprocess` module provides more powerful facilities " "for spawning new processes and retrieving their results; using that module " -"is preferable to using these functions. Check especially " -"the :ref:`subprocess-replacements` section.)" +"is preferable to using these functions. Check especially the :ref:" +"`subprocess-replacements` section.)" msgstr "" -#: ../../library/os.rst:4882 msgid "" "If *mode* is :const:`P_NOWAIT`, this function returns the process id of the " "new process; if *mode* is :const:`P_WAIT`, returns the process's exit code " @@ -5418,13 +4436,11 @@ msgid "" "handle, so can be used with the :func:`waitpid` function." msgstr "" -#: ../../library/os.rst:4888 msgid "" "Note on VxWorks, this function doesn't return ``-signal`` when the new " "process is killed. Instead it raises OSError exception." msgstr "" -#: ../../library/os.rst:4891 msgid "" "The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " "differ in how command-line arguments are passed. The \"l\" variants are " @@ -5436,39 +4452,34 @@ msgid "" "to the child process must start with the name of the command being run." msgstr "" -#: ../../library/os.rst:4900 msgid "" -"The variants which include a second \"p\" near the end " -"(:func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) " -"will use the :envvar:`PATH` environment variable to locate the program " -"*file*. When the environment is being replaced (using one of " -"the :func:`spawn\\*e ` variants, discussed in the next paragraph), " -"the new environment is used as the source of the :envvar:`PATH` variable. " -"The other variants, :func:`spawnl`, :func:`spawnle`, :func:`spawnv`, " -"and :func:`spawnve`, will not use the :envvar:`PATH` variable to locate the " -"executable; *path* must contain an appropriate absolute or relative path." +"The variants which include a second \"p\" near the end (:func:`spawnlp`, :" +"func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" +"`PATH` environment variable to locate the program *file*. When the " +"environment is being replaced (using one of the :func:`spawn\\*e ` " +"variants, discussed in the next paragraph), the new environment is used as " +"the source of the :envvar:`PATH` variable. The other variants, :func:" +"`spawnl`, :func:`spawnle`, :func:`spawnv`, and :func:`spawnve`, will not use " +"the :envvar:`PATH` variable to locate the executable; *path* must contain an " +"appropriate absolute or relative path." msgstr "" -#: ../../library/os.rst:4910 msgid "" "For :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, and :func:`spawnvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " "which is used to define the environment variables for the new process (they " -"are used instead of the current process' environment); the " -"functions :func:`spawnl`, :func:`spawnlp`, :func:`spawnv`, " -"and :func:`spawnvp` all cause the new process to inherit the environment of " -"the current process. Note that keys and values in the *env* dictionary must " -"be strings; invalid keys or values will cause the function to fail, with a " -"return value of ``127``." +"are used instead of the current process' environment); the functions :func:" +"`spawnl`, :func:`spawnlp`, :func:`spawnv`, and :func:`spawnvp` all cause the " +"new process to inherit the environment of the current process. Note that " +"keys and values in the *env* dictionary must be strings; invalid keys or " +"values will cause the function to fail, with a return value of ``127``." msgstr "" -#: ../../library/os.rst:4919 msgid "" "As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " "are equivalent::" msgstr "" -#: ../../library/os.rst:4922 msgid "" "import os\n" "os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')\n" @@ -5477,13 +4488,11 @@ msgid "" "os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)" msgstr "" -#: ../../library/os.rst:4928 msgid "" "Raises an :ref:`auditing event ` ``os.spawn`` with arguments " "``mode``, ``path``, ``args``, ``env``." msgstr "" -#: ../../library/os.rst:4932 msgid "" ":func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are " "not available on Windows. :func:`spawnle` and :func:`spawnve` are not " @@ -5491,21 +4500,18 @@ msgid "" "instead." msgstr "" -#: ../../library/os.rst:4940 msgid "" "These functions are :term:`soft deprecated` and should no longer be used to " "write new code. The :mod:`subprocess` module is recommended instead." msgstr "" -#: ../../library/os.rst:4948 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " -"family of functions. If either of these values is given, " -"the :func:`spawn\\* ` functions will return as soon as the new " -"process has been created, with the process id as the return value." +"family of functions. If either of these values is given, the :func:" +"`spawn\\* ` functions will return as soon as the new process has " +"been created, with the process id as the return value." msgstr "" -#: ../../library/os.rst:4958 msgid "" "Possible value for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If this is given as *mode*, the :func:`spawn\\* " @@ -5514,29 +4520,25 @@ msgid "" "successful, or ``-signal`` if a signal kills the process." msgstr "" -#: ../../library/os.rst:4970 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " -"family of functions. These are less portable than those listed " -"above. :const:`P_DETACH` is similar to :const:`P_NOWAIT`, but the new " -"process is detached from the console of the calling process. " -"If :const:`P_OVERLAY` is used, the current process will be replaced; " -"the :func:`spawn\\* ` function will not return." +"family of functions. These are less portable than those listed above. :" +"const:`P_DETACH` is similar to :const:`P_NOWAIT`, but the new process is " +"detached from the console of the calling process. If :const:`P_OVERLAY` is " +"used, the current process will be replaced; the :func:`spawn\\* ` " +"function will not return." msgstr "" -#: ../../library/os.rst:4981 msgid "Start a file with its associated application." msgstr "" -#: ../../library/os.rst:4983 msgid "" "When *operation* is not specified, this acts like double-clicking the file " -"in Windows Explorer, or giving the file name as an argument to " -"the :program:`start` command from the interactive command shell: the file is " -"opened with whatever application (if any) its extension is associated." +"in Windows Explorer, or giving the file name as an argument to the :program:" +"`start` command from the interactive command shell: the file is opened with " +"whatever application (if any) its extension is associated." msgstr "" -#: ../../library/os.rst:4988 msgid "" "When another *operation* is given, it must be a \"command verb\" that " "specifies what should be done with the file. Common verbs documented by " @@ -5544,28 +4546,24 @@ msgid "" "as well as ``'explore'`` and ``'find'`` (to be used on directories)." msgstr "" -#: ../../library/os.rst:4993 msgid "" "When launching an application, specify *arguments* to be passed as a single " "string. This argument may have no effect when using this function to launch " "a document." msgstr "" -#: ../../library/os.rst:4997 msgid "" "The default working directory is inherited, but may be overridden by the " "*cwd* argument. This should be an absolute path. A relative *path* will be " "resolved against this argument." msgstr "" -#: ../../library/os.rst:5001 msgid "" "Use *show_cmd* to override the default window style. Whether this has any " "effect will depend on the application being launched. Values are integers as " "supported by the Win32 :c:func:`!ShellExecute` function." msgstr "" -#: ../../library/os.rst:5005 msgid "" ":func:`startfile` returns as soon as the associated application is launched. " "There is no option to wait for the application to close, and no way to " @@ -5576,32 +4574,27 @@ msgid "" "encoded for Win32." msgstr "" -#: ../../library/os.rst:5013 msgid "" "To reduce interpreter startup overhead, the Win32 :c:func:`!ShellExecute` " "function is not resolved until this function is first called. If the " "function cannot be resolved, :exc:`NotImplementedError` will be raised." msgstr "" -#: ../../library/os.rst:5017 msgid "" "Raises an :ref:`auditing event ` ``os.startfile`` with arguments " "``path``, ``operation``." msgstr "" -#: ../../library/os.rst:5019 msgid "" "Raises an :ref:`auditing event ` ``os.startfile/2`` with arguments " "``path``, ``operation``, ``arguments``, ``cwd``, ``show_cmd``." msgstr "" -#: ../../library/os.rst:5023 msgid "" -"Added the *arguments*, *cwd* and *show_cmd* arguments, and the " -"``os.startfile/2`` audit event." +"Added the *arguments*, *cwd* and *show_cmd* arguments, and the ``os." +"startfile/2`` audit event." msgstr "" -#: ../../library/os.rst:5030 msgid "" "Execute the command (a string) in a subshell. This is implemented by " "calling the Standard C function :c:func:`system`, and has the same " @@ -5612,22 +4605,19 @@ msgid "" "value of the Python function is system-dependent." msgstr "" -#: ../../library/os.rst:5038 msgid "" "On Unix, the return value is the exit status of the process encoded in the " "format specified for :func:`wait`." msgstr "" -#: ../../library/os.rst:5041 msgid "" "On Windows, the return value is that returned by the system shell after " -"running *command*. The shell is given by the Windows environment " -"variable :envvar:`COMSPEC`: it is usually :program:`cmd.exe`, which returns " -"the exit status of the command run; on systems using a non-native shell, " -"consult your shell documentation." +"running *command*. The shell is given by the Windows environment variable :" +"envvar:`COMSPEC`: it is usually :program:`cmd.exe`, which returns the exit " +"status of the command run; on systems using a non-native shell, consult your " +"shell documentation." msgstr "" -#: ../../library/os.rst:5047 msgid "" "The :mod:`subprocess` module provides more powerful facilities for spawning " "new processes and retrieving their results; using that module is recommended " @@ -5635,63 +4625,52 @@ msgid "" "the :mod:`subprocess` documentation for some helpful recipes." msgstr "" -#: ../../library/os.rst:5052 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the result " "(exit status) into an exit code. On Windows, the result is directly the exit " "code." msgstr "" -#: ../../library/os.rst:5056 msgid "" "Raises an :ref:`auditing event ` ``os.system`` with argument " "``command``." msgstr "" -#: ../../library/os.rst:5063 msgid "" "Returns the current global process times. The return value is an object with " "five attributes:" msgstr "" -#: ../../library/os.rst:5066 msgid ":attr:`!user` - user time" msgstr "" -#: ../../library/os.rst:5067 msgid ":attr:`!system` - system time" msgstr "" -#: ../../library/os.rst:5068 msgid ":attr:`!children_user` - user time of all child processes" msgstr "" -#: ../../library/os.rst:5069 msgid ":attr:`!children_system` - system time of all child processes" msgstr "" -#: ../../library/os.rst:5070 msgid ":attr:`!elapsed` - elapsed real time since a fixed point in the past" msgstr "" -#: ../../library/os.rst:5072 msgid "" "For backwards compatibility, this object also behaves like a five-tuple " "containing :attr:`!user`, :attr:`!system`, :attr:`!children_user`, :attr:`!" "children_system`, and :attr:`!elapsed` in that order." msgstr "" -#: ../../library/os.rst:5076 msgid "" -"See the Unix manual page :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the " +"See the Unix manual page :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the " "GetProcessTimes MSDN `_ on Windows. On " "Windows, only :attr:`!user` and :attr:`!system` are known; the other " "attributes are zero." msgstr "" -#: ../../library/os.rst:5090 msgid "" "Wait for completion of a child process, and return a tuple containing its " "pid and exit status indication: a 16-bit number, whose low byte is the " @@ -5700,87 +4679,71 @@ msgid "" "if a core file was produced." msgstr "" -#: ../../library/os.rst:5096 msgid "" "If there are no children that could be waited for, :exc:`ChildProcessError` " "is raised." msgstr "" -#: ../../library/os.rst:5099 ../../library/os.rst:5174 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" -#: ../../library/os.rst:5106 msgid "" "The other :func:`!wait*` functions documented below can be used to wait for " -"the completion of a specific child process and have more " -"options. :func:`waitpid` is the only one also available on Windows." +"the completion of a specific child process and have more options. :func:" +"`waitpid` is the only one also available on Windows." msgstr "" -#: ../../library/os.rst:5113 msgid "Wait for the completion of a child process." msgstr "" -#: ../../library/os.rst:5115 msgid "" -"*idtype* can be :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or (on " -"Linux) :data:`P_PIDFD`. The interpretation of *id* depends on it; see their " +"*idtype* can be :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or (on Linux) :" +"data:`P_PIDFD`. The interpretation of *id* depends on it; see their " "individual descriptions." msgstr "" -#: ../../library/os.rst:5118 msgid "" -"*options* is an OR combination of flags. At least one " -"of :data:`WEXITED`, :data:`WSTOPPED` or :data:`WCONTINUED` is " -"required; :data:`WNOHANG` and :data:`WNOWAIT` are additional optional flags." +"*options* is an OR combination of flags. At least one of :data:`WEXITED`, :" +"data:`WSTOPPED` or :data:`WCONTINUED` is required; :data:`WNOHANG` and :data:" +"`WNOWAIT` are additional optional flags." msgstr "" -#: ../../library/os.rst:5122 msgid "" -"The return value is an object representing the data contained in " -"the :c:type:`siginfo_t` structure with the following attributes:" +"The return value is an object representing the data contained in the :c:type:" +"`siginfo_t` structure with the following attributes:" msgstr "" -#: ../../library/os.rst:5125 msgid ":attr:`!si_pid` (process ID)" msgstr "" -#: ../../library/os.rst:5126 msgid ":attr:`!si_uid` (real user ID of the child)" msgstr "" -#: ../../library/os.rst:5127 msgid ":attr:`!si_signo` (always :const:`~signal.SIGCHLD`)" msgstr "" -#: ../../library/os.rst:5128 msgid "" ":attr:`!si_status` (the exit status or signal number, depending on :attr:`!" "si_code`)" msgstr "" -#: ../../library/os.rst:5129 msgid ":attr:`!si_code` (see :data:`CLD_EXITED` for possible values)" msgstr "" -#: ../../library/os.rst:5131 msgid "" "If :data:`WNOHANG` is specified and there are no matching children in the " "requested state, ``None`` is returned. Otherwise, if there are no matching " "children that could be waited for, :exc:`ChildProcessError` is raised." msgstr "" -#: ../../library/os.rst:5140 msgid "This function is now available on macOS as well." msgstr "" -#: ../../library/os.rst:5146 msgid "The details of this function differ on Unix and Windows." msgstr "" -#: ../../library/os.rst:5148 msgid "" "On Unix: Wait for completion of a child process given by process id *pid*, " "and return a tuple containing its process id and exit status indication " @@ -5789,7 +4752,6 @@ msgid "" "operation." msgstr "" -#: ../../library/os.rst:5153 msgid "" "If *pid* is greater than ``0``, :func:`waitpid` requests status information " "for that specific process. If *pid* is ``0``, the request is for the status " @@ -5799,7 +4761,6 @@ msgid "" "group ``-pid`` (the absolute value of *pid*)." msgstr "" -#: ../../library/os.rst:5160 msgid "" "*options* is an OR combination of flags. If it contains :data:`WNOHANG` and " "there are no matching children in the requested state, ``(0, 0)`` is " @@ -5808,19 +4769,17 @@ msgid "" "are :data:`WUNTRACED` and :data:`WCONTINUED`." msgstr "" -#: ../../library/os.rst:5166 msgid "" "On Windows: Wait for completion of a process given by process handle *pid*, " "and return a tuple containing *pid*, and its exit status shifted left by 8 " "bits (shifting makes cross-platform use of the function easier). A *pid* " "less than or equal to ``0`` has no special meaning on Windows, and raises an " "exception. The value of integer *options* has no effect. *pid* can refer to " -"any process whose id is known, not necessarily a child process. " -"The :func:`spawn\\* ` functions called with :const:`P_NOWAIT` return " -"suitable process handles." +"any process whose id is known, not necessarily a child process. The :func:" +"`spawn\\* ` functions called with :const:`P_NOWAIT` return suitable " +"process handles." msgstr "" -#: ../../library/os.rst:5187 msgid "" "Similar to :func:`waitpid`, except no process id argument is given and a 3-" "element tuple containing the child's process id, exit status indication, and " @@ -5829,13 +4788,11 @@ msgid "" "same as that provided to :func:`waitpid` and :func:`wait4`." msgstr "" -#: ../../library/os.rst:5194 ../../library/os.rst:5208 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." msgstr "" -#: ../../library/os.rst:5202 msgid "" "Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " "process id, exit status indication, and resource usage information is " @@ -5844,118 +4801,96 @@ msgid "" "to :func:`waitpid`." msgstr "" -#: ../../library/os.rst:5219 msgid "" "These are the possible values for *idtype* in :func:`waitid`. They affect " "how *id* is interpreted:" msgstr "" -#: ../../library/os.rst:5222 msgid ":data:`!P_PID` - wait for the child whose PID is *id*." msgstr "" -#: ../../library/os.rst:5223 msgid ":data:`!P_PGID` - wait for any child whose progress group ID is *id*." msgstr "" -#: ../../library/os.rst:5224 msgid ":data:`!P_ALL` - wait for any child; *id* is ignored." msgstr "" -#: ../../library/os.rst:5225 msgid "" ":data:`!P_PIDFD` - wait for the child identified by the file descriptor *id* " "(a process file descriptor created with :func:`pidfd_open`)." msgstr "" -#: ../../library/os.rst:5230 msgid ":data:`!P_PIDFD` is only available on Linux >= 5.4." msgstr "" -#: ../../library/os.rst:5233 msgid "The :data:`!P_PIDFD` constant." msgstr "" -#: ../../library/os.rst:5239 msgid "" -"This *options* flag for :func:`waitpid`, :func:`wait3`, :func:`wait4`, " -"and :func:`waitid` causes child processes to be reported if they have been " +"This *options* flag for :func:`waitpid`, :func:`wait3`, :func:`wait4`, and :" +"func:`waitid` causes child processes to be reported if they have been " "continued from a job control stop since they were last reported." msgstr "" -#: ../../library/os.rst:5248 msgid "" "This *options* flag for :func:`waitid` causes child processes that have " "terminated to be reported." msgstr "" -#: ../../library/os.rst:5251 msgid "" "The other ``wait*`` functions always report children that have terminated, " "so this option is not available for them." msgstr "" -#: ../../library/os.rst:5261 msgid "" "This *options* flag for :func:`waitid` causes child processes that have been " "stopped by the delivery of a signal to be reported." msgstr "" -#: ../../library/os.rst:5264 ../../library/os.rst:5296 msgid "This option is not available for the other ``wait*`` functions." msgstr "" -#: ../../library/os.rst:5273 msgid "" "This *options* flag for :func:`waitpid`, :func:`wait3`, and :func:`wait4` " "causes child processes to also be reported if they have been stopped but " "their current state has not been reported since they were stopped." msgstr "" -#: ../../library/os.rst:5277 msgid "This option is not available for :func:`waitid`." msgstr "" -#: ../../library/os.rst:5284 msgid "" "This *options* flag causes :func:`waitpid`, :func:`wait3`, :func:`wait4`, " "and :func:`waitid` to return right away if no child process status is " "available immediately." msgstr "" -#: ../../library/os.rst:5293 msgid "" "This *options* flag causes :func:`waitid` to leave the child in a waitable " "state, so that a later :func:`!wait*` call can be used to retrieve the child " "status information again." msgstr "" -#: ../../library/os.rst:5308 msgid "" "These are the possible values for :attr:`!si_code` in the result returned " "by :func:`waitid`." msgstr "" -#: ../../library/os.rst:5315 msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." msgstr "" -#: ../../library/os.rst:5321 msgid "Convert a wait status to an exit code." msgstr "" -#: ../../library/os.rst:5323 msgid "On Unix:" msgstr "" -#: ../../library/os.rst:5325 msgid "" "If the process exited normally (if ``WIFEXITED(status)`` is true), return " "the process exit status (return ``WEXITSTATUS(status)``): result greater " "than or equal to 0." msgstr "" -#: ../../library/os.rst:5328 msgid "" "If the process was terminated by a signal (if ``WIFSIGNALED(status)`` is " "true), return ``-signum`` where *signum* is the number of the signal that " @@ -5963,15 +4898,12 @@ msgid "" "than 0." msgstr "" -#: ../../library/os.rst:5332 msgid "Otherwise, raise a :exc:`ValueError`." msgstr "" -#: ../../library/os.rst:5334 msgid "On Windows, return *status* shifted right by 8 bits." msgstr "" -#: ../../library/os.rst:5336 msgid "" "On Unix, if the process is being traced or if :func:`waitpid` was called " "with :data:`WUNTRACED` option, the caller must first check if " @@ -5979,234 +4911,190 @@ msgid "" "``WIFSTOPPED(status)`` is true." msgstr "" -#: ../../library/os.rst:5343 msgid "" -":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` " -"functions." +":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" +"`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." msgstr "" -#: ../../library/os.rst:5351 msgid "" -"The following functions take a process status code as returned " -"by :func:`system`, :func:`wait`, or :func:`waitpid` as a parameter. They " -"may be used to determine the disposition of a process." +"The following functions take a process status code as returned by :func:" +"`system`, :func:`wait`, or :func:`waitpid` as a parameter. They may be used " +"to determine the disposition of a process." msgstr "" -#: ../../library/os.rst:5357 msgid "" "Return ``True`` if a core dump was generated for the process, otherwise " "return ``False``." msgstr "" -#: ../../library/os.rst:5360 ../../library/os.rst:5426 msgid "This function should be employed only if :func:`WIFSIGNALED` is true." msgstr "" -#: ../../library/os.rst:5367 msgid "" -"Return ``True`` if a stopped child has been resumed by delivery " -"of :const:`~signal.SIGCONT` (if the process has been continued from a job " -"control stop), otherwise return ``False``." +"Return ``True`` if a stopped child has been resumed by delivery of :const:" +"`~signal.SIGCONT` (if the process has been continued from a job control " +"stop), otherwise return ``False``." msgstr "" -#: ../../library/os.rst:5371 msgid "See :data:`WCONTINUED` option." msgstr "" -#: ../../library/os.rst:5378 msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." msgstr "" -#: ../../library/os.rst:5381 msgid "" ":func:`WIFSTOPPED` only returns ``True`` if the :func:`waitpid` call was " "done using :data:`WUNTRACED` option or when the process is being traced " "(see :manpage:`ptrace(2)`)." msgstr "" -#: ../../library/os.rst:5389 msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." msgstr "" -#: ../../library/os.rst:5397 msgid "" "Return ``True`` if the process exited terminated normally, that is, by " "calling ``exit()`` or ``_exit()``, or by returning from ``main()``; " "otherwise return ``False``." msgstr "" -#: ../../library/os.rst:5406 msgid "Return the process exit status." msgstr "" -#: ../../library/os.rst:5408 msgid "This function should be employed only if :func:`WIFEXITED` is true." msgstr "" -#: ../../library/os.rst:5415 msgid "Return the signal which caused the process to stop." msgstr "" -#: ../../library/os.rst:5417 msgid "This function should be employed only if :func:`WIFSTOPPED` is true." msgstr "" -#: ../../library/os.rst:5424 msgid "Return the number of the signal that caused the process to terminate." msgstr "" -#: ../../library/os.rst:5432 msgid "Interface to the scheduler" msgstr "" -#: ../../library/os.rst:5434 msgid "" "These functions control how a process is allocated CPU time by the operating " "system. They are only available on some Unix platforms. For more detailed " "information, consult your Unix manpages." msgstr "" -#: ../../library/os.rst:5440 msgid "" "The following scheduling policies are exposed if they are supported by the " "operating system." msgstr "" -#: ../../library/os.rst:5447 msgid "The default scheduling policy." msgstr "" -#: ../../library/os.rst:5451 msgid "" "Scheduling policy for CPU-intensive processes that tries to preserve " "interactivity on the rest of the computer." msgstr "" -#: ../../library/os.rst:5456 msgid "Scheduling policy for tasks with deadline constraints." msgstr "" -#: ../../library/os.rst:5462 msgid "Scheduling policy for extremely low priority background tasks." msgstr "" -#: ../../library/os.rst:5466 msgid "Alias for :data:`SCHED_OTHER`." msgstr "" -#: ../../library/os.rst:5472 msgid "Scheduling policy for sporadic server programs." msgstr "" -#: ../../library/os.rst:5476 msgid "A First In First Out scheduling policy." msgstr "" -#: ../../library/os.rst:5480 msgid "A round-robin scheduling policy." msgstr "" -#: ../../library/os.rst:5484 msgid "" "This flag can be OR'ed with any other scheduling policy. When a process with " "this flag set forks, its child's scheduling policy and priority are reset to " "the default." msgstr "" -#: ../../library/os.rst:5491 msgid "" -"This class represents tunable scheduling parameters used " -"in :func:`sched_setparam`, :func:`sched_setscheduler`, " -"and :func:`sched_getparam`. It is immutable." +"This class represents tunable scheduling parameters used in :func:" +"`sched_setparam`, :func:`sched_setscheduler`, and :func:`sched_getparam`. It " +"is immutable." msgstr "" -#: ../../library/os.rst:5495 msgid "At the moment, there is only one possible parameter:" msgstr "" -#: ../../library/os.rst:5499 msgid "The scheduling priority for a scheduling policy." msgstr "" -#: ../../library/os.rst:5504 msgid "" "Get the minimum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: ../../library/os.rst:5510 msgid "" "Get the maximum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: ../../library/os.rst:5516 msgid "" "Set the scheduling policy for the process with PID *pid*. A *pid* of 0 means " "the calling process. *policy* is one of the scheduling policy constants " "above. *param* is a :class:`sched_param` instance." msgstr "" -#: ../../library/os.rst:5523 msgid "" "Return the scheduling policy for the process with PID *pid*. A *pid* of 0 " "means the calling process. The result is one of the scheduling policy " "constants above." msgstr "" -#: ../../library/os.rst:5530 msgid "" "Set the scheduling parameters for the process with PID *pid*. A *pid* of 0 " "means the calling process. *param* is a :class:`sched_param` instance." msgstr "" -#: ../../library/os.rst:5536 msgid "" "Return the scheduling parameters as a :class:`sched_param` instance for the " "process with PID *pid*. A *pid* of 0 means the calling process." msgstr "" -#: ../../library/os.rst:5542 msgid "" "Return the round-robin quantum in seconds for the process with PID *pid*. A " "*pid* of 0 means the calling process." msgstr "" -#: ../../library/os.rst:5548 msgid "" "Voluntarily relinquish the CPU. See :manpage:`sched_yield(2)` for details." msgstr "" -#: ../../library/os.rst:5553 msgid "" "Restrict the process with PID *pid* (or the current process if zero) to a " "set of CPUs. *mask* is an iterable of integers representing the set of CPUs " "to which the process should be restricted." msgstr "" -#: ../../library/os.rst:5560 msgid "Return the set of CPUs the process with PID *pid* is restricted to." msgstr "" -#: ../../library/os.rst:5562 msgid "" "If *pid* is zero, return the set of CPUs the calling thread of the current " "process is restricted to." msgstr "" -#: ../../library/os.rst:5565 msgid "See also the :func:`process_cpu_count` function." msgstr "" -#: ../../library/os.rst:5571 msgid "Miscellaneous System Information" msgstr "" -#: ../../library/os.rst:5576 msgid "" "Return string-valued system configuration values. *name* specifies the " "configuration value to retrieve; it may be a string which is the name of a " @@ -6217,76 +5105,64 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: ../../library/os.rst:5584 msgid "" "If the configuration value specified by *name* isn't defined, ``None`` is " "returned." msgstr "" -#: ../../library/os.rst:5587 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " -"included in ``confstr_names``, an :exc:`OSError` is raised " -"with :const:`errno.EINVAL` for the error number." +"included in ``confstr_names``, an :exc:`OSError` is raised with :const:" +"`errno.EINVAL` for the error number." msgstr "" -#: ../../library/os.rst:5597 msgid "" "Dictionary mapping names accepted by :func:`confstr` to the integer values " "defined for those names by the host operating system. This can be used to " "determine the set of names known to the system." msgstr "" -#: ../../library/os.rst:5606 msgid "" "Return the number of logical CPUs in the **system**. Returns ``None`` if " "undetermined." msgstr "" -#: ../../library/os.rst:5609 msgid "" "The :func:`process_cpu_count` function can be used to get the number of " "logical CPUs usable by the calling thread of the **current process**." msgstr "" -#: ../../library/os.rst:5614 msgid "" "If :option:`-X cpu_count <-X>` is given or :envvar:`PYTHON_CPU_COUNT` is " "set, :func:`cpu_count` returns the overridden value *n*." msgstr "" -#: ../../library/os.rst:5621 msgid "" "Return the number of processes in the system run queue averaged over the " "last 1, 5, and 15 minutes or raises :exc:`OSError` if the load average was " "unobtainable." msgstr "" -#: ../../library/os.rst:5630 msgid "" "Get the number of logical CPUs usable by the calling thread of the **current " -"process**. Returns ``None`` if undetermined. It can be less " -"than :func:`cpu_count` depending on the CPU affinity." +"process**. Returns ``None`` if undetermined. It can be less than :func:" +"`cpu_count` depending on the CPU affinity." msgstr "" -#: ../../library/os.rst:5634 msgid "" "The :func:`cpu_count` function can be used to get the number of logical CPUs " "in the **system**." msgstr "" -#: ../../library/os.rst:5637 msgid "" "If :option:`-X cpu_count <-X>` is given or :envvar:`PYTHON_CPU_COUNT` is " "set, :func:`process_cpu_count` returns the overridden value *n*." msgstr "" -#: ../../library/os.rst:5640 msgid "See also the :func:`sched_getaffinity` function." msgstr "" -#: ../../library/os.rst:5647 msgid "" "Return integer-valued system configuration values. If the configuration " "value specified by *name* isn't defined, ``-1`` is returned. The comments " @@ -6295,53 +5171,45 @@ msgid "" "``sysconf_names``." msgstr "" -#: ../../library/os.rst:5657 msgid "" "Dictionary mapping names accepted by :func:`sysconf` to the integer values " "defined for those names by the host operating system. This can be used to " "determine the set of names known to the system." msgstr "" -#: ../../library/os.rst:5663 msgid "Add ``'SC_MINSIGSTKSZ'`` name." msgstr "" -#: ../../library/os.rst:5666 msgid "" "The following data values are used to support path manipulation operations. " "These are defined for all platforms." msgstr "" -#: ../../library/os.rst:5669 msgid "" "Higher-level operations on pathnames are defined in the :mod:`os.path` " "module." msgstr "" -#: ../../library/os.rst:5675 msgid "" "The constant string used by the operating system to refer to the current " -"directory. This is ``'.'`` for Windows and POSIX. Also available " -"via :mod:`os.path`." +"directory. This is ``'.'`` for Windows and POSIX. Also available via :mod:" +"`os.path`." msgstr "" -#: ../../library/os.rst:5683 msgid "" "The constant string used by the operating system to refer to the parent " -"directory. This is ``'..'`` for Windows and POSIX. Also available " -"via :mod:`os.path`." +"directory. This is ``'..'`` for Windows and POSIX. Also available via :mod:" +"`os.path`." msgstr "" -#: ../../library/os.rst:5692 msgid "" "The character used by the operating system to separate pathname components. " "This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " -"this is not sufficient to be able to parse or concatenate pathnames --- " -"use :func:`os.path.split` and :func:`os.path.join` --- but it is " -"occasionally useful. Also available via :mod:`os.path`." +"this is not sufficient to be able to parse or concatenate pathnames --- use :" +"func:`os.path.split` and :func:`os.path.join` --- but it is occasionally " +"useful. Also available via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5702 msgid "" "An alternative character used by the operating system to separate pathname " "components, or ``None`` if only one separator character exists. This is set " @@ -6349,65 +5217,55 @@ msgid "" "via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5711 msgid "" "The character which separates the base filename from the extension; for " "example, the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5719 msgid "" "The character conventionally used by the operating system to separate search " "path components (as in :envvar:`PATH`), such as ``':'`` for POSIX or ``';'`` " "for Windows. Also available via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5726 msgid "" -"The default search path used by :func:`exec\\*p\\* ` " -"and :func:`spawn\\*p\\* ` if the environment doesn't have a " -"``'PATH'`` key. Also available via :mod:`os.path`." +"The default search path used by :func:`exec\\*p\\* ` and :func:" +"`spawn\\*p\\* ` if the environment doesn't have a ``'PATH'`` key. " +"Also available via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5733 msgid "" "The string used to separate (or, rather, terminate) lines on the current " "platform. This may be a single character, such as ``'\\n'`` for POSIX, or " -"multiple characters, for example, ``'\\r\\n'`` for Windows. Do not use " -"*os.linesep* as a line terminator when writing files opened in text mode " -"(the default); use a single ``'\\n'`` instead, on all platforms." +"multiple characters, for example, ``'\\r\\n'`` for Windows. Do not use *os." +"linesep* as a line terminator when writing files opened in text mode (the " +"default); use a single ``'\\n'`` instead, on all platforms." msgstr "" -#: ../../library/os.rst:5742 msgid "" "The file path of the null device. For example: ``'/dev/null'`` for POSIX, " "``'nul'`` for Windows. Also available via :mod:`os.path`." msgstr "" -#: ../../library/os.rst:5753 msgid "" -"Flags for use with the :func:`~sys.setdlopenflags` " -"and :func:`~sys.getdlopenflags` functions. See the Unix manual " -"page :manpage:`dlopen(3)` for what the different flags mean." +"Flags for use with the :func:`~sys.setdlopenflags` and :func:`~sys." +"getdlopenflags` functions. See the Unix manual page :manpage:`dlopen(3)` " +"for what the different flags mean." msgstr "" -#: ../../library/os.rst:5761 msgid "Random numbers" msgstr "" -#: ../../library/os.rst:5766 msgid "" "Get up to *size* random bytes. The function can return less bytes than " "requested." msgstr "" -#: ../../library/os.rst:5769 msgid "" "These bytes can be used to seed user-space random number generators or for " "cryptographic purposes." msgstr "" -#: ../../library/os.rst:5772 msgid "" "``getrandom()`` relies on entropy gathered from device drivers and other " "sources of environmental noise. Unnecessarily reading large quantities of " @@ -6415,32 +5273,27 @@ msgid "" "``/dev/urandom`` devices." msgstr "" -#: ../../library/os.rst:5777 msgid "" "The flags argument is a bit mask that can contain zero or more of the " -"following values ORed together: :py:const:`os.GRND_RANDOM` " -"and :py:data:`GRND_NONBLOCK`." +"following values ORed together: :py:const:`os.GRND_RANDOM` and :py:data:" +"`GRND_NONBLOCK`." msgstr "" -#: ../../library/os.rst:5781 msgid "" "See also the `Linux getrandom() manual page `_." msgstr "" -#: ../../library/os.rst:5790 msgid "" "Return a bytestring of *size* random bytes suitable for cryptographic use." msgstr "" -#: ../../library/os.rst:5792 msgid "" "This function returns random bytes from an OS-specific randomness source. " "The returned data should be unpredictable enough for cryptographic " "applications, though its exact quality depends on the OS implementation." msgstr "" -#: ../../library/os.rst:5796 msgid "" "On Linux, if the ``getrandom()`` syscall is available, it is used in " "blocking mode: block until the system urandom entropy pool is initialized " @@ -6450,206 +5303,156 @@ msgid "" "to poll until the system urandom entropy pool is initialized." msgstr "" -#: ../../library/os.rst:5803 msgid "" "On a Unix-like system, random bytes are read from the ``/dev/urandom`` " "device. If the ``/dev/urandom`` device is not available or not readable, " "the :exc:`NotImplementedError` exception is raised." msgstr "" -#: ../../library/os.rst:5807 msgid "On Windows, it will use ``BCryptGenRandom()``." msgstr "" -#: ../../library/os.rst:5810 msgid "" "The :mod:`secrets` module provides higher level functions. For an easy-to-" "use interface to the random number generator provided by your platform, " "please see :class:`random.SystemRandom`." msgstr "" -#: ../../library/os.rst:5814 msgid "" "On Linux 3.17 and newer, the ``getrandom()`` syscall is now used when " "available. On OpenBSD 5.6 and newer, the C ``getentropy()`` function is now " "used. These functions avoid the usage of an internal file descriptor." msgstr "" -#: ../../library/os.rst:5820 msgid "" "On Linux, if the ``getrandom()`` syscall blocks (the urandom entropy pool is " "not initialized yet), fall back on reading ``/dev/urandom``." msgstr "" -#: ../../library/os.rst:5824 msgid "" "On Linux, ``getrandom()`` is now used in blocking mode to increase the " "security." msgstr "" -#: ../../library/os.rst:5828 msgid "" "On Windows, ``BCryptGenRandom()`` is used instead of ``CryptGenRandom()`` " "which is deprecated." msgstr "" -#: ../../library/os.rst:5834 msgid "" "By default, when reading from ``/dev/random``, :func:`getrandom` blocks if " "no random bytes are available, and when reading from ``/dev/urandom``, it " "blocks if the entropy pool has not yet been initialized." msgstr "" -#: ../../library/os.rst:5838 msgid "" "If the :py:data:`GRND_NONBLOCK` flag is set, then :func:`getrandom` does not " "block in these cases, but instead immediately raises :exc:`BlockingIOError`." msgstr "" -#: ../../library/os.rst:5845 msgid "" "If this bit is set, then random bytes are drawn from the ``/dev/" "random`` pool instead of the ``/dev/urandom`` pool." msgstr "" -#: ../../library/os.rst:386 ../../library/os.rst:552 ../../library/os.rst:756 msgid "user" msgstr "" -#: ../../library/os.rst:386 msgid "effective id" msgstr "" -#: ../../library/os.rst:395 ../../library/os.rst:461 ../../library/os.rst:470 -#: ../../library/os.rst:479 ../../library/os.rst:493 ../../library/os.rst:691 -#: ../../library/os.rst:4597 ../../library/os.rst:4623 msgid "process" msgstr "" -#: ../../library/os.rst:395 ../../library/os.rst:461 msgid "group" msgstr "" -#: ../../library/os.rst:470 ../../library/os.rst:552 msgid "id" msgstr "" -#: ../../library/os.rst:479 msgid "id of parent" msgstr "" -#: ../../library/os.rst:493 ../../library/os.rst:691 msgid "scheduling priority" msgstr "" -#: ../../library/os.rst:575 ../../library/os.rst:826 msgid "environment variables" msgstr "" -#: ../../library/os.rst:575 msgid "setting" msgstr "" -#: ../../library/os.rst:756 msgid "id, setting" msgstr "" -#: ../../library/os.rst:789 msgid "gethostname() (in module socket)" msgstr "" -#: ../../library/os.rst:789 msgid "gethostbyaddr() (in module socket)" msgstr "" -#: ../../library/os.rst:826 ../../library/os.rst:2732 msgid "deleting" msgstr "" -#: ../../library/os.rst:1387 ../../library/os.rst:3102 msgid "module" msgstr "" -#: ../../library/os.rst:1387 msgid "pty" msgstr "" -#: ../../library/os.rst:2118 ../../library/os.rst:2531 -#: ../../library/os.rst:2732 ../../library/os.rst:3636 -#: ../../library/os.rst:3736 msgid "directory" msgstr "" -#: ../../library/os.rst:2118 msgid "changing" msgstr "" -#: ../../library/os.rst:2531 msgid "creating" msgstr "" -#: ../../library/os.rst:2531 msgid "UNC paths" msgstr "" -#: ../../library/os.rst:2531 msgid "and os.makedirs()" msgstr "" -#: ../../library/os.rst:3102 msgid "stat" msgstr "" -#: ../../library/os.rst:3636 ../../library/os.rst:3736 msgid "walking" msgstr "" -#: ../../library/os.rst:3636 ../../library/os.rst:3736 msgid "traversal" msgstr "" -#: ../../library/os.rst:4597 ../../library/os.rst:4623 msgid "killing" msgstr "" -#: ../../library/os.rst:4597 ../../library/os.rst:4623 msgid "signalling" msgstr "" -#: ../../library/os.rst:5672 ../../library/os.rst:5708 msgid ". (dot)" msgstr "" -#: ../../library/os.rst:5672 ../../library/os.rst:5680 -#: ../../library/os.rst:5688 ../../library/os.rst:5699 -#: ../../library/os.rst:5708 msgid "in pathnames" msgstr "" -#: ../../library/os.rst:5680 msgid ".." msgstr "" -#: ../../library/os.rst:5688 ../../library/os.rst:5699 msgid "/ (slash)" msgstr "" -#: ../../library/os.rst:5689 msgid "\\ (backslash)" msgstr "" -#: ../../library/os.rst:5689 msgid "in pathnames (Windows)" msgstr "" -#: ../../library/os.rst:5715 msgid ": (colon)" msgstr "" -#: ../../library/os.rst:5715 msgid "path separator (POSIX)" msgstr "" -#: ../../library/os.rst:5715 msgid "; (semicolon)" msgstr "" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index c6e1167..a4f5405 100644 --- a/library/ossaudiodev.po +++ b/library/ossaudiodev.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/ossaudiodev.rst:2 msgid ":mod:`!ossaudiodev` --- Access to OSS-compatible audio devices" msgstr "" -#: ../../library/ossaudiodev.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/ossaudiodev.rst:14 msgid "" "The last version of Python that provided the :mod:`!ossaudiodev` module was " "`Python 3.12 `_." diff --git a/library/pathlib.po b/library/pathlib.po index 1c55be1..c5c0b69 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -3,18 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pathlib.rst:2 msgid ":mod:`!pathlib` --- Object-oriented filesystem paths" msgstr "" -#: ../../library/pathlib.rst:9 msgid "**Source code:** :source:`Lib/pathlib/`" msgstr "" -#: ../../library/pathlib.rst:15 msgid "" "This module offers classes representing filesystem paths with semantics " "appropriate for different operating systems. Path classes are divided " @@ -40,7 +32,6 @@ msgid "" "inherit from pure paths but also provide I/O operations." msgstr "" -#: ../../library/pathlib.rst:21 msgid "" "Inheritance diagram showing the classes available in pathlib. The\n" "most basic class is PurePath, which has three direct subclasses:\n" @@ -50,7 +41,6 @@ msgid "" "subclasses PureWindowsPath and Path." msgstr "" -#: ../../library/pathlib.rst:31 msgid "" "If you've never used this module before or just aren't sure which class is " "right for your task, :class:`Path` is most likely what you need. It " @@ -58,51 +48,41 @@ msgid "" "code is running on." msgstr "" -#: ../../library/pathlib.rst:35 msgid "Pure paths are useful in some special cases; for example:" msgstr "" -#: ../../library/pathlib.rst:37 msgid "" "If you want to manipulate Windows paths on a Unix machine (or vice versa). " "You cannot instantiate a :class:`WindowsPath` when running on Unix, but you " "can instantiate :class:`PureWindowsPath`." msgstr "" -#: ../../library/pathlib.rst:40 msgid "" "You want to make sure that your code only manipulates paths without actually " "accessing the OS. In this case, instantiating one of the pure classes may be " "useful since those simply don't have any OS-accessing operations." msgstr "" -#: ../../library/pathlib.rst:45 msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." msgstr "" -#: ../../library/pathlib.rst:48 msgid "" -"For low-level path manipulation on strings, you can also use " -"the :mod:`os.path` module." +"For low-level path manipulation on strings, you can also use the :mod:`os." +"path` module." msgstr "" -#: ../../library/pathlib.rst:53 msgid "Basic use" msgstr "" -#: ../../library/pathlib.rst:55 msgid "Importing the main class::" msgstr "" -#: ../../library/pathlib.rst:57 msgid ">>> from pathlib import Path" msgstr "" -#: ../../library/pathlib.rst:59 msgid "Listing subdirectories::" msgstr "" -#: ../../library/pathlib.rst:61 msgid "" ">>> p = Path('.')\n" ">>> [x for x in p.iterdir() if x.is_dir()]\n" @@ -110,11 +90,9 @@ msgid "" " PosixPath('__pycache__'), PosixPath('build')]" msgstr "" -#: ../../library/pathlib.rst:66 msgid "Listing Python source files in this directory tree::" msgstr "" -#: ../../library/pathlib.rst:68 msgid "" ">>> list(p.glob('**/*.py'))\n" "[PosixPath('test_pathlib.py'), PosixPath('setup.py'),\n" @@ -122,11 +100,9 @@ msgid "" " PosixPath('build/lib/pathlib.py')]" msgstr "" -#: ../../library/pathlib.rst:73 msgid "Navigating inside a directory tree::" msgstr "" -#: ../../library/pathlib.rst:75 msgid "" ">>> p = Path('/etc')\n" ">>> q = p / 'init.d' / 'reboot'\n" @@ -136,11 +112,9 @@ msgid "" "PosixPath('/etc/rc.d/init.d/halt')" msgstr "" -#: ../../library/pathlib.rst:82 msgid "Querying path properties::" msgstr "" -#: ../../library/pathlib.rst:84 msgid "" ">>> q.exists()\n" "True\n" @@ -148,51 +122,42 @@ msgid "" "False" msgstr "" -#: ../../library/pathlib.rst:89 msgid "Opening a file::" msgstr "" -#: ../../library/pathlib.rst:91 msgid "" ">>> with q.open() as f: f.readline()\n" "...\n" "'#!/bin/bash\\n'" msgstr "" -#: ../../library/pathlib.rst:97 msgid "Exceptions" -msgstr "Kivételek" +msgstr "" -#: ../../library/pathlib.rst:101 msgid "" "An exception inheriting :exc:`NotImplementedError` that is raised when an " "unsupported operation is called on a path object." msgstr "" -#: ../../library/pathlib.rst:110 msgid "Pure paths" msgstr "" -#: ../../library/pathlib.rst:112 msgid "" "Pure path objects provide path-handling operations which don't actually " "access a filesystem. There are three ways to access these classes, which we " "also call *flavours*:" msgstr "" -#: ../../library/pathlib.rst:118 msgid "" "A generic class that represents the system's path flavour (instantiating it " "creates either a :class:`PurePosixPath` or a :class:`PureWindowsPath`)::" msgstr "" -#: ../../library/pathlib.rst:121 msgid "" ">>> PurePath('setup.py') # Running on a Unix machine\n" "PurePosixPath('setup.py')" msgstr "" -#: ../../library/pathlib.rst:124 msgid "" "Each element of *pathsegments* can be either a string representing a path " "segment, or an object implementing the :class:`os.PathLike` interface where " @@ -200,7 +165,6 @@ msgid "" "path object::" msgstr "" -#: ../../library/pathlib.rst:129 msgid "" ">>> PurePath('foo', 'some/path', 'bar')\n" "PurePosixPath('foo/some/path/bar')\n" @@ -208,23 +172,19 @@ msgid "" "PurePosixPath('foo/bar')" msgstr "" -#: ../../library/pathlib.rst:134 msgid "When *pathsegments* is empty, the current directory is assumed::" msgstr "" -#: ../../library/pathlib.rst:136 msgid "" ">>> PurePath()\n" "PurePosixPath('.')" msgstr "" -#: ../../library/pathlib.rst:139 msgid "" -"If a segment is an absolute path, all previous segments are ignored " -"(like :func:`os.path.join`)::" +"If a segment is an absolute path, all previous segments are ignored (like :" +"func:`os.path.join`)::" msgstr "" -#: ../../library/pathlib.rst:142 msgid "" ">>> PurePath('/etc', '/usr', 'lib64')\n" "PurePosixPath('/usr/lib64')\n" @@ -232,26 +192,22 @@ msgid "" "PureWindowsPath('d:bar')" msgstr "" -#: ../../library/pathlib.rst:147 msgid "" -"On Windows, the drive is not reset when a rooted relative path segment " -"(e.g., ``r'\\foo'``) is encountered::" +"On Windows, the drive is not reset when a rooted relative path segment (e." +"g., ``r'\\foo'``) is encountered::" msgstr "" -#: ../../library/pathlib.rst:150 msgid "" ">>> PureWindowsPath('c:/Windows', '/Program Files')\n" "PureWindowsPath('c:/Program Files')" msgstr "" -#: ../../library/pathlib.rst:153 msgid "" "Spurious slashes and single dots are collapsed, but double dots (``'..'``) " "and leading double slashes (``'//'``) are not, since this would change the " "meaning of a path for various reasons (e.g. symbolic links, UNC paths)::" msgstr "" -#: ../../library/pathlib.rst:157 msgid "" ">>> PurePath('foo//bar')\n" "PurePosixPath('foo/bar')\n" @@ -263,48 +219,38 @@ msgid "" "PurePosixPath('foo/../bar')" msgstr "" -#: ../../library/pathlib.rst:166 msgid "" "(a naïve approach would make ``PurePosixPath('foo/../bar')`` equivalent to " "``PurePosixPath('bar')``, which is wrong if ``foo`` is a symbolic link to " "another directory)" msgstr "" -#: ../../library/pathlib.rst:170 msgid "" "Pure path objects implement the :class:`os.PathLike` interface, allowing " "them to be used anywhere the interface is accepted." msgstr "" -#: ../../library/pathlib.rst:173 msgid "Added support for the :class:`os.PathLike` interface." msgstr "" -#: ../../library/pathlib.rst:178 msgid "" "A subclass of :class:`PurePath`, this path flavour represents non-Windows " "filesystem paths::" msgstr "" -#: ../../library/pathlib.rst:181 msgid "" ">>> PurePosixPath('/etc/hosts')\n" "PurePosixPath('/etc/hosts')" msgstr "" -#: ../../library/pathlib.rst:184 ../../library/pathlib.rst:196 -#: ../../library/pathlib.rst:779 ../../library/pathlib.rst:789 -#: ../../library/pathlib.rst:804 msgid "*pathsegments* is specified similarly to :class:`PurePath`." msgstr "" -#: ../../library/pathlib.rst:188 msgid "" "A subclass of :class:`PurePath`, this path flavour represents Windows " "filesystem paths, including `UNC paths`_::" msgstr "" -#: ../../library/pathlib.rst:191 msgid "" ">>> PureWindowsPath('c:/', 'Users', 'Ximénez')\n" "PureWindowsPath('c:/Users/Ximénez')\n" @@ -312,24 +258,20 @@ msgid "" "PureWindowsPath('//server/share/file')" msgstr "" -#: ../../library/pathlib.rst:200 msgid "" "Regardless of the system you're running on, you can instantiate all of these " "classes, since they don't provide any operation that does system calls." msgstr "" -#: ../../library/pathlib.rst:205 msgid "General properties" msgstr "" -#: ../../library/pathlib.rst:207 msgid "" "Paths are immutable and :term:`hashable`. Paths of a same flavour are " "comparable and orderable. These properties respect the flavour's case-" "folding semantics::" msgstr "" -#: ../../library/pathlib.rst:211 msgid "" ">>> PurePosixPath('foo') == PurePosixPath('FOO')\n" "False\n" @@ -341,11 +283,9 @@ msgid "" "True" msgstr "" -#: ../../library/pathlib.rst:220 msgid "Paths of a different flavour compare unequal and cannot be ordered::" msgstr "" -#: ../../library/pathlib.rst:222 msgid "" ">>> PureWindowsPath('foo') == PurePosixPath('foo')\n" "False\n" @@ -356,11 +296,9 @@ msgid "" "'PurePosixPath'" msgstr "" -#: ../../library/pathlib.rst:231 msgid "Operators" msgstr "" -#: ../../library/pathlib.rst:233 msgid "" "The slash operator helps create child paths, like :func:`os.path.join`. If " "the argument is an absolute path, the previous path is ignored. On Windows, " @@ -368,7 +306,6 @@ msgid "" "``r'\\foo'``)::" msgstr "" -#: ../../library/pathlib.rst:238 msgid "" ">>> p = PurePath('/etc')\n" ">>> p\n" @@ -384,13 +321,11 @@ msgid "" "PureWindowsPath('c:/Program Files')" msgstr "" -#: ../../library/pathlib.rst:251 msgid "" -"A path object can be used anywhere an object " -"implementing :class:`os.PathLike` is accepted::" +"A path object can be used anywhere an object implementing :class:`os." +"PathLike` is accepted::" msgstr "" -#: ../../library/pathlib.rst:254 msgid "" ">>> import os\n" ">>> p = PurePath('/etc')\n" @@ -398,14 +333,12 @@ msgid "" "'/etc'" msgstr "" -#: ../../library/pathlib.rst:259 msgid "" "The string representation of a path is the raw filesystem path itself (in " "native form, e.g. with backslashes under Windows), which you can pass to any " "function taking a file path as a string::" msgstr "" -#: ../../library/pathlib.rst:263 msgid "" ">>> p = PurePath('/etc')\n" ">>> str(p)\n" @@ -415,39 +348,32 @@ msgid "" "'c:\\\\Program Files'" msgstr "" -#: ../../library/pathlib.rst:270 msgid "" "Similarly, calling :class:`bytes` on a path gives the raw filesystem path as " "a bytes object, as encoded by :func:`os.fsencode`::" msgstr "" -#: ../../library/pathlib.rst:273 msgid "" ">>> bytes(p)\n" "b'/etc'" msgstr "" -#: ../../library/pathlib.rst:277 msgid "" "Calling :class:`bytes` is only recommended under Unix. Under Windows, the " "unicode form is the canonical representation of filesystem paths." msgstr "" -#: ../../library/pathlib.rst:282 msgid "Accessing individual parts" msgstr "" -#: ../../library/pathlib.rst:284 msgid "" "To access the individual \"parts\" (components) of a path, use the following " "property:" msgstr "" -#: ../../library/pathlib.rst:289 msgid "A tuple giving access to the path's various components::" msgstr "" -#: ../../library/pathlib.rst:291 msgid "" ">>> p = PurePath('/usr/bin/python3')\n" ">>> p.parts\n" @@ -458,29 +384,23 @@ msgid "" "('c:\\\\', 'Program Files', 'PSF')" msgstr "" -#: ../../library/pathlib.rst:299 msgid "(note how the drive and local root are regrouped in a single part)" msgstr "" -#: ../../library/pathlib.rst:303 msgid "Methods and properties" msgstr "" -#: ../../library/pathlib.rst:309 msgid "Pure paths provide the following methods and properties:" msgstr "" -#: ../../library/pathlib.rst:313 msgid "" "The implementation of the :mod:`os.path` module used for low-level path " -"parsing and joining: either :mod:`posixpath` or :mod:`ntpath`." +"parsing and joining: either :mod:`!posixpath` or :mod:`!ntpath`." msgstr "" -#: ../../library/pathlib.rst:320 msgid "A string representing the drive letter or name, if any::" msgstr "" -#: ../../library/pathlib.rst:322 msgid "" ">>> PureWindowsPath('c:/Program Files/').drive\n" "'c:'\n" @@ -490,21 +410,17 @@ msgid "" "''" msgstr "" -#: ../../library/pathlib.rst:329 msgid "UNC shares are also considered drives::" msgstr "" -#: ../../library/pathlib.rst:331 msgid "" ">>> PureWindowsPath('//host/share/foo.txt').drive\n" "'\\\\\\\\host\\\\share'" msgstr "" -#: ../../library/pathlib.rst:336 msgid "A string representing the (local or global) root, if any::" msgstr "" -#: ../../library/pathlib.rst:338 msgid "" ">>> PureWindowsPath('c:/Program Files/').root\n" "'\\\\'\n" @@ -514,23 +430,19 @@ msgid "" "'/'" msgstr "" -#: ../../library/pathlib.rst:345 msgid "UNC shares always have a root::" msgstr "" -#: ../../library/pathlib.rst:347 msgid "" ">>> PureWindowsPath('//host/share').root\n" "'\\\\'" msgstr "" -#: ../../library/pathlib.rst:350 msgid "" -"If the path starts with more than two successive " -"slashes, :class:`~pathlib.PurePosixPath` collapses them::" +"If the path starts with more than two successive slashes, :class:`~pathlib." +"PurePosixPath` collapses them::" msgstr "" -#: ../../library/pathlib.rst:353 msgid "" ">>> PurePosixPath('//etc').root\n" "'//'\n" @@ -540,25 +452,21 @@ msgid "" "'/'" msgstr "" -#: ../../library/pathlib.rst:362 msgid "" "This behavior conforms to *The Open Group Base Specifications Issue 6*, " -"paragraph `4.11 Pathname Resolution `_:" +"paragraph `4.11 Pathname Resolution `_:" msgstr "" -#: ../../library/pathlib.rst:366 msgid "" "*\"A pathname that begins with two successive slashes may be interpreted in " "an implementation-defined manner, although more than two leading slashes " "shall be treated as a single slash.\"*" msgstr "" -#: ../../library/pathlib.rst:372 msgid "The concatenation of the drive and root::" msgstr "" -#: ../../library/pathlib.rst:374 msgid "" ">>> PureWindowsPath('c:/Program Files/').anchor\n" "'c:\\\\'\n" @@ -570,12 +478,10 @@ msgid "" "'\\\\\\\\host\\\\share\\\\'" msgstr "" -#: ../../library/pathlib.rst:386 msgid "" "An immutable sequence providing access to the logical ancestors of the path::" msgstr "" -#: ../../library/pathlib.rst:389 msgid "" ">>> p = PureWindowsPath('c:/foo/bar/setup.py')\n" ">>> p.parents[0]\n" @@ -586,28 +492,23 @@ msgid "" "PureWindowsPath('c:/')" msgstr "" -#: ../../library/pathlib.rst:397 msgid "" "The parents sequence now supports :term:`slices ` and negative index " "values." msgstr "" -#: ../../library/pathlib.rst:402 msgid "The logical parent of the path::" msgstr "" -#: ../../library/pathlib.rst:404 msgid "" ">>> p = PurePosixPath('/a/b/c/d')\n" ">>> p.parent\n" "PurePosixPath('/a/b/c')" msgstr "" -#: ../../library/pathlib.rst:408 msgid "You cannot go past an anchor, or empty path::" msgstr "" -#: ../../library/pathlib.rst:410 msgid "" ">>> p = PurePosixPath('/')\n" ">>> p.parent\n" @@ -617,41 +518,34 @@ msgid "" "PurePosixPath('.')" msgstr "" -#: ../../library/pathlib.rst:418 msgid "This is a purely lexical operation, hence the following behaviour::" msgstr "" -#: ../../library/pathlib.rst:420 msgid "" ">>> p = PurePosixPath('foo/..')\n" ">>> p.parent\n" "PurePosixPath('foo')" msgstr "" -#: ../../library/pathlib.rst:424 msgid "" "If you want to walk an arbitrary filesystem path upwards, it is recommended " "to first call :meth:`Path.resolve` so as to resolve symlinks and eliminate " "``\"..\"`` components." msgstr "" -#: ../../library/pathlib.rst:431 msgid "" "A string representing the final path component, excluding the drive and " "root, if any::" msgstr "" -#: ../../library/pathlib.rst:434 msgid "" ">>> PurePosixPath('my/library/setup.py').name\n" "'setup.py'" msgstr "" -#: ../../library/pathlib.rst:437 msgid "UNC drive names are not considered::" msgstr "" -#: ../../library/pathlib.rst:439 msgid "" ">>> PureWindowsPath('//some/share/setup.py').name\n" "'setup.py'\n" @@ -659,11 +553,9 @@ msgid "" "''" msgstr "" -#: ../../library/pathlib.rst:447 msgid "The last dot-separated portion of the final component, if any::" msgstr "" -#: ../../library/pathlib.rst:449 msgid "" ">>> PurePosixPath('my/library/setup.py').suffix\n" "'.py'\n" @@ -673,19 +565,15 @@ msgid "" "''" msgstr "" -#: ../../library/pathlib.rst:456 msgid "This is commonly called the file extension." msgstr "" -#: ../../library/pathlib.rst:460 ../../library/pathlib.rst:475 msgid "A single dot (\"``.``\") is considered a valid suffix." msgstr "" -#: ../../library/pathlib.rst:464 msgid "A list of the path's suffixes, often called file extensions::" msgstr "" -#: ../../library/pathlib.rst:466 msgid "" ">>> PurePosixPath('my/library.tar.gar').suffixes\n" "['.tar', '.gar']\n" @@ -695,11 +583,9 @@ msgid "" "[]" msgstr "" -#: ../../library/pathlib.rst:480 msgid "The final path component, without its suffix::" msgstr "" -#: ../../library/pathlib.rst:482 msgid "" ">>> PurePosixPath('my/library.tar.gz').stem\n" "'library.tar'\n" @@ -709,12 +595,10 @@ msgid "" "'library'" msgstr "" -#: ../../library/pathlib.rst:492 msgid "" "Return a string representation of the path with forward slashes (``/``)::" msgstr "" -#: ../../library/pathlib.rst:494 msgid "" ">>> p = PureWindowsPath('c:\\\\windows')\n" ">>> str(p)\n" @@ -723,13 +607,11 @@ msgid "" "'c:/windows'" msgstr "" -#: ../../library/pathlib.rst:503 msgid "" "Return whether the path is absolute or not. A path is considered absolute " "if it has both a root and (if the flavour allows) a drive::" msgstr "" -#: ../../library/pathlib.rst:506 msgid "" ">>> PurePosixPath('/a/b').is_absolute()\n" "True\n" @@ -746,48 +628,40 @@ msgid "" "True" msgstr "" -#: ../../library/pathlib.rst:523 msgid "Return whether or not this path is relative to the *other* path." msgstr "" -#: ../../library/pathlib.rst:531 msgid "" "This method is string-based; it neither accesses the filesystem nor treats " "\"``..``\" segments specially. The following code is equivalent:" msgstr "" -#: ../../library/pathlib.rst:542 msgid "" "Passing additional arguments is deprecated; if supplied, they are joined " "with *other*." msgstr "" -#: ../../library/pathlib.rst:547 msgid "" "With :class:`PureWindowsPath`, return ``True`` if the path is considered " "reserved under Windows, ``False`` otherwise. With :class:`PurePosixPath`, " "``False`` is always returned." msgstr "" -#: ../../library/pathlib.rst:551 msgid "" "Windows path names that contain a colon, or end with a dot or a space, are " "considered reserved. UNC paths may be reserved." msgstr "" -#: ../../library/pathlib.rst:555 msgid "" "This method is deprecated; use :func:`os.path.isreserved` to detect reserved " "paths on Windows." msgstr "" -#: ../../library/pathlib.rst:561 msgid "" "Calling this method is equivalent to combining the path with each of the " "given *pathsegments* in turn::" msgstr "" -#: ../../library/pathlib.rst:564 msgid "" ">>> PurePosixPath('/etc').joinpath('passwd')\n" "PurePosixPath('/etc/passwd')\n" @@ -799,13 +673,11 @@ msgid "" "PureWindowsPath('c:/Program Files')" msgstr "" -#: ../../library/pathlib.rst:576 msgid "" "Match this path against the provided glob-style pattern. Return ``True`` if " "matching is successful, ``False`` otherwise. For example::" msgstr "" -#: ../../library/pathlib.rst:579 msgid "" ">>> PurePath('a/b.py').full_match('a/*.py')\n" "True\n" @@ -817,15 +689,12 @@ msgid "" "True" msgstr "" -#: ../../library/pathlib.rst:589 ../../library/pathlib.rst:1349 msgid ":ref:`pathlib-pattern-language` documentation." msgstr "" -#: ../../library/pathlib.rst:591 msgid "As with other methods, case-sensitivity follows platform defaults::" msgstr "" -#: ../../library/pathlib.rst:593 msgid "" ">>> PurePosixPath('b.py').full_match('*.PY')\n" "False\n" @@ -833,18 +702,15 @@ msgid "" "True" msgstr "" -#: ../../library/pathlib.rst:598 msgid "" "Set *case_sensitive* to ``True`` or ``False`` to override this behaviour." msgstr "" -#: ../../library/pathlib.rst:605 msgid "" "Match this path against the provided non-recursive glob-style pattern. " "Return ``True`` if matching is successful, ``False`` otherwise." msgstr "" -#: ../../library/pathlib.rst:608 msgid "" "This method is similar to :meth:`~PurePath.full_match`, but empty patterns " "aren't allowed (:exc:`ValueError` is raised), the recursive wildcard " @@ -852,7 +718,6 @@ msgid "" "relative pattern is provided, then matching is done from the right::" msgstr "" -#: ../../library/pathlib.rst:613 msgid "" ">>> PurePath('a/b.py').match('*.py')\n" "True\n" @@ -862,23 +727,17 @@ msgid "" "False" msgstr "" -#: ../../library/pathlib.rst:620 ../../library/pathlib.rst:1368 -#: ../../library/pathlib.rst:1393 msgid "The *pattern* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/pathlib.rst:623 ../../library/pathlib.rst:1362 -#: ../../library/pathlib.rst:1387 msgid "The *case_sensitive* parameter was added." msgstr "" -#: ../../library/pathlib.rst:629 msgid "" "Compute a version of this path relative to the path represented by *other*. " "If it's impossible, :exc:`ValueError` is raised::" msgstr "" -#: ../../library/pathlib.rst:632 msgid "" ">>> p = PurePosixPath('/etc/passwd')\n" ">>> p.relative_to('/')\n" @@ -894,15 +753,13 @@ msgid "" "relative and the other is absolute." msgstr "" -#: ../../library/pathlib.rst:644 msgid "" "When *walk_up* is false (the default), the path must start with *other*. " "When the argument is true, ``..`` entries may be added to form the relative " -"path. In all other cases, such as the paths referencing different " -"drives, :exc:`ValueError` is raised.::" +"path. In all other cases, such as the paths referencing different drives, :" +"exc:`ValueError` is raised.::" msgstr "" -#: ../../library/pathlib.rst:649 msgid "" ">>> p.relative_to('/usr', walk_up=True)\n" "PurePosixPath('../etc/passwd')\n" @@ -915,7 +772,6 @@ msgid "" "relative and the other is absolute." msgstr "" -#: ../../library/pathlib.rst:659 msgid "" "This function is part of :class:`PurePath` and works with strings. It does " "not check or access the underlying file structure. This can impact the " @@ -923,25 +779,21 @@ msgid "" "call :meth:`~Path.resolve` first if necessary to resolve symlinks." msgstr "" -#: ../../library/pathlib.rst:665 msgid "" "The *walk_up* parameter was added (old behavior is the same as " "``walk_up=False``)." msgstr "" -#: ../../library/pathlib.rst:670 msgid "" "Passing additional positional arguments is deprecated; if supplied, they are " "joined with *other*." msgstr "" -#: ../../library/pathlib.rst:675 msgid "" "Return a new path with the :attr:`name` changed. If the original path " "doesn't have a name, ValueError is raised::" msgstr "" -#: ../../library/pathlib.rst:678 msgid "" ">>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')\n" ">>> p.with_name('setup.py')\n" @@ -956,13 +808,11 @@ msgid "" "ValueError: PureWindowsPath('c:/') has an empty name" msgstr "" -#: ../../library/pathlib.rst:692 msgid "" "Return a new path with the :attr:`stem` changed. If the original path " "doesn't have a name, ValueError is raised::" msgstr "" -#: ../../library/pathlib.rst:695 msgid "" ">>> p = PureWindowsPath('c:/Downloads/draft.txt')\n" ">>> p.with_stem('final')\n" @@ -983,14 +833,12 @@ msgid "" "ValueError: PureWindowsPath('c:/') has an empty name" msgstr "" -#: ../../library/pathlib.rst:716 msgid "" "Return a new path with the :attr:`suffix` changed. If the original path " "doesn't have a suffix, the new *suffix* is appended instead. If the " "*suffix* is an empty string, the original suffix is removed::" msgstr "" -#: ../../library/pathlib.rst:720 msgid "" ">>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')\n" ">>> p.with_suffix('.bz2')\n" @@ -1003,13 +851,11 @@ msgid "" "PureWindowsPath('README')" msgstr "" -#: ../../library/pathlib.rst:732 msgid "" "A single dot (\"``.``\") is considered a valid suffix. In previous " "versions, :exc:`ValueError` is raised if a single dot is supplied." msgstr "" -#: ../../library/pathlib.rst:738 msgid "" "Create a new path object of the same type by combining the given " "*pathsegments*. This method is called whenever a derivative path is created, " @@ -1017,7 +863,6 @@ msgid "" "this method to pass information to derivative paths, for example::" msgstr "" -#: ../../library/pathlib.rst:743 msgid "" "from pathlib import PurePosixPath\n" "\n" @@ -1034,74 +879,62 @@ msgid "" "print(hosts.session_id) # 42" msgstr "" -#: ../../library/pathlib.rst:764 msgid "Concrete paths" msgstr "" -#: ../../library/pathlib.rst:766 msgid "" "Concrete paths are subclasses of the pure path classes. In addition to " "operations provided by the latter, they also provide methods to do system " "calls on path objects. There are three ways to instantiate concrete paths:" msgstr "" -#: ../../library/pathlib.rst:772 msgid "" "A subclass of :class:`PurePath`, this class represents concrete paths of the " "system's path flavour (instantiating it creates either a :class:`PosixPath` " "or a :class:`WindowsPath`)::" msgstr "" -#: ../../library/pathlib.rst:776 msgid "" ">>> Path('setup.py')\n" "PosixPath('setup.py')" msgstr "" -#: ../../library/pathlib.rst:783 msgid "" "A subclass of :class:`Path` and :class:`PurePosixPath`, this class " "represents concrete non-Windows filesystem paths::" msgstr "" -#: ../../library/pathlib.rst:786 msgid "" ">>> PosixPath('/etc/hosts')\n" "PosixPath('/etc/hosts')" msgstr "" -#: ../../library/pathlib.rst:791 msgid "" -"Raises :exc:`UnsupportedOperation` on Windows. In previous " -"versions, :exc:`NotImplementedError` was raised instead." +"Raises :exc:`UnsupportedOperation` on Windows. In previous versions, :exc:" +"`NotImplementedError` was raised instead." msgstr "" -#: ../../library/pathlib.rst:798 msgid "" "A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " "represents concrete Windows filesystem paths::" msgstr "" -#: ../../library/pathlib.rst:801 msgid "" ">>> WindowsPath('c:/', 'Users', 'Ximénez')\n" "WindowsPath('c:/Users/Ximénez')" msgstr "" -#: ../../library/pathlib.rst:806 msgid "" "Raises :exc:`UnsupportedOperation` on non-Windows platforms. In previous " "versions, :exc:`NotImplementedError` was raised instead." msgstr "" -#: ../../library/pathlib.rst:811 msgid "" "You can only instantiate the class flavour that corresponds to your system " "(allowing system calls on non-compatible path flavours could lead to bugs or " "failures in your application)::" msgstr "" -#: ../../library/pathlib.rst:815 msgid "" ">>> import os\n" ">>> os.name\n" @@ -1118,43 +951,35 @@ msgid "" "UnsupportedOperation: cannot instantiate 'WindowsPath' on your system" msgstr "" -#: ../../library/pathlib.rst:829 msgid "" "Some concrete path methods can raise an :exc:`OSError` if a system call " "fails (for example because the path doesn't exist)." msgstr "" -#: ../../library/pathlib.rst:834 msgid "Parsing and generating URIs" msgstr "" -#: ../../library/pathlib.rst:836 msgid "" "Concrete path objects can be created from, and represented as, 'file' URIs " "conforming to :rfc:`8089`." msgstr "" -#: ../../library/pathlib.rst:841 msgid "" "File URIs are not portable across machines with different :ref:`filesystem " "encodings `." msgstr "" -#: ../../library/pathlib.rst:846 msgid "Return a new path object from parsing a 'file' URI. For example::" msgstr "" -#: ../../library/pathlib.rst:848 msgid "" ">>> p = Path.from_uri('file:///etc/hosts')\n" "PosixPath('/etc/hosts')" msgstr "" -#: ../../library/pathlib.rst:851 msgid "On Windows, DOS device and UNC paths may be parsed from URIs::" msgstr "" -#: ../../library/pathlib.rst:853 msgid "" ">>> p = Path.from_uri('file:///c:/windows')\n" "WindowsPath('c:/windows')\n" @@ -1162,11 +987,9 @@ msgid "" "WindowsPath('//server/share')" msgstr "" -#: ../../library/pathlib.rst:858 msgid "Several variant forms are supported::" msgstr "" -#: ../../library/pathlib.rst:860 msgid "" ">>> p = Path.from_uri('file:////server/share')\n" "WindowsPath('//server/share')\n" @@ -1178,26 +1001,22 @@ msgid "" "WindowsPath('c:/windows')" msgstr "" -#: ../../library/pathlib.rst:869 msgid "" ":exc:`ValueError` is raised if the URI does not start with ``file:``, or the " "parsed path isn't absolute." msgstr "" -#: ../../library/pathlib.rst:874 msgid "" "The URL authority is discarded if it matches the local hostname. Otherwise, " "if the authority isn't empty or ``localhost``, then on Windows a UNC path is " "returned (as before), and on other platforms a :exc:`ValueError` is raised." msgstr "" -#: ../../library/pathlib.rst:883 msgid "" "Represent the path as a 'file' URI. :exc:`ValueError` is raised if the path " "isn't absolute." msgstr "" -#: ../../library/pathlib.rst:886 msgid "" ">>> p = PosixPath('/etc/passwd')\n" ">>> p.as_uri()\n" @@ -1207,63 +1026,53 @@ msgid "" "'file:///c:/Windows'" msgstr "" -#: ../../library/pathlib.rst:897 msgid "" "Calling this method from :class:`PurePath` rather than :class:`Path` is " "possible but deprecated. The method's use of :func:`os.fsencode` makes it " "strictly impure." msgstr "" -#: ../../library/pathlib.rst:903 msgid "Expanding and resolving paths" msgstr "" -#: ../../library/pathlib.rst:907 msgid "" "Return a new path object representing the user's home directory (as returned " "by :func:`os.path.expanduser` with ``~`` construct). If the home directory " "can't be resolved, :exc:`RuntimeError` is raised." msgstr "" -#: ../../library/pathlib.rst:913 msgid "" ">>> Path.home()\n" "PosixPath('/home/antoine')" msgstr "" -#: ../../library/pathlib.rst:921 msgid "" "Return a new path with expanded ``~`` and ``~user`` constructs, as returned " -"by :meth:`os.path.expanduser`. If a home directory can't be " -"resolved, :exc:`RuntimeError` is raised." +"by :meth:`os.path.expanduser`. If a home directory can't be resolved, :exc:" +"`RuntimeError` is raised." msgstr "" -#: ../../library/pathlib.rst:927 msgid "" ">>> p = PosixPath('~/films/Monty Python')\n" ">>> p.expanduser()\n" "PosixPath('/home/eric/films/Monty Python')" msgstr "" -#: ../../library/pathlib.rst:936 msgid "" -"Return a new path object representing the current directory (as returned " -"by :func:`os.getcwd`)::" +"Return a new path object representing the current directory (as returned by :" +"func:`os.getcwd`)::" msgstr "" -#: ../../library/pathlib.rst:939 msgid "" ">>> Path.cwd()\n" "PosixPath('/home/antoine/pathlib')" msgstr "" -#: ../../library/pathlib.rst:945 msgid "" "Make the path absolute, without normalization or resolving symlinks. Returns " "a new path object::" msgstr "" -#: ../../library/pathlib.rst:948 msgid "" ">>> p = Path('tests')\n" ">>> p\n" @@ -1272,13 +1081,11 @@ msgid "" "PosixPath('/home/antoine/pathlib/tests')" msgstr "" -#: ../../library/pathlib.rst:957 msgid "" "Make the path absolute, resolving any symlinks. A new path object is " "returned::" msgstr "" -#: ../../library/pathlib.rst:960 msgid "" ">>> p = Path()\n" ">>> p\n" @@ -1287,20 +1094,17 @@ msgid "" "PosixPath('/home/antoine/pathlib')" msgstr "" -#: ../../library/pathlib.rst:966 msgid "" "\"``..``\" components are also eliminated (this is the only method to do " "so)::" msgstr "" -#: ../../library/pathlib.rst:968 msgid "" ">>> p = Path('docs/../setup.py')\n" ">>> p.resolve()\n" "PosixPath('/home/antoine/pathlib/setup.py')" msgstr "" -#: ../../library/pathlib.rst:972 msgid "" "If a path doesn't exist or a symlink loop is encountered, and *strict* is " "``True``, :exc:`OSError` is raised. If *strict* is ``False``, the path is " @@ -1308,24 +1112,20 @@ msgid "" "whether it exists." msgstr "" -#: ../../library/pathlib.rst:977 msgid "The *strict* parameter was added (pre-3.6 behavior is strict)." msgstr "" -#: ../../library/pathlib.rst:980 msgid "" "Symlink loops are treated like other errors: :exc:`OSError` is raised in " "strict mode, and no exception is raised in non-strict mode. In previous " "versions, :exc:`RuntimeError` is raised no matter the value of *strict*." msgstr "" -#: ../../library/pathlib.rst:988 msgid "" -"Return the path to which the symbolic link points (as returned " -"by :func:`os.readlink`)::" +"Return the path to which the symbolic link points (as returned by :func:`os." +"readlink`)::" msgstr "" -#: ../../library/pathlib.rst:991 msgid "" ">>> p = Path('mylink')\n" ">>> p.symlink_to('setup.py')\n" @@ -1333,48 +1133,42 @@ msgid "" "PosixPath('setup.py')" msgstr "" -#: ../../library/pathlib.rst:998 msgid "" "Raises :exc:`UnsupportedOperation` if :func:`os.readlink` is not available. " "In previous versions, :exc:`NotImplementedError` was raised." msgstr "" -#: ../../library/pathlib.rst:1004 msgid "Querying file type and status" msgstr "" -#: ../../library/pathlib.rst:1008 msgid "" -":meth:`~Path.exists`, :meth:`~Path.is_dir`, :meth:`~Path.is_file`, :meth:`~Path.is_mount`, :meth:`~Path.is_symlink`, :meth:`~Path.is_block_device`, :meth:`~Path.is_char_device`, :meth:`~Path.is_fifo`, :meth:`~Path.is_socket` " +":meth:`~Path.exists`, :meth:`~Path.is_dir`, :meth:`~Path.is_file`, :meth:" +"`~Path.is_mount`, :meth:`~Path.is_symlink`, :meth:`~Path.is_block_device`, :" +"meth:`~Path.is_char_device`, :meth:`~Path.is_fifo`, :meth:`~Path.is_socket` " "now return ``False`` instead of raising an exception for paths that contain " "characters unrepresentable at the OS level." msgstr "" -#: ../../library/pathlib.rst:1017 msgid "" -"The methods given above now return ``False`` instead of raising " -"any :exc:`OSError` exception from the operating system. In previous " -"versions, some kinds of :exc:`OSError` exception are raised, and others " -"suppressed. The new behaviour is consistent " -"with :func:`os.path.exists`, :func:`os.path.isdir`, etc. " -"Use :meth:`~Path.stat` to retrieve the file status without suppressing " +"The methods given above now return ``False`` instead of raising any :exc:" +"`OSError` exception from the operating system. In previous versions, some " +"kinds of :exc:`OSError` exception are raised, and others suppressed. The new " +"behaviour is consistent with :func:`os.path.exists`, :func:`os.path.isdir`, " +"etc. Use :meth:`~Path.stat` to retrieve the file status without suppressing " "exceptions." msgstr "" -#: ../../library/pathlib.rst:1027 msgid "" "Return an :class:`os.stat_result` object containing information about this " "path, like :func:`os.stat`. The result is looked up at each call to this " "method." msgstr "" -#: ../../library/pathlib.rst:1030 msgid "" "This method normally follows symlinks; to stat a symlink add the argument " "``follow_symlinks=False``, or use :meth:`~Path.lstat`." msgstr "" -#: ../../library/pathlib.rst:1035 msgid "" ">>> p = Path('setup.py')\n" ">>> p.stat().st_size\n" @@ -1383,33 +1177,25 @@ msgid "" "1327883547.852554" msgstr "" -#: ../../library/pathlib.rst:1041 ../../library/pathlib.rst:1071 -#: ../../library/pathlib.rst:1085 ../../library/pathlib.rst:1099 -#: ../../library/pathlib.rst:1720 ../../library/pathlib.rst:1736 -#: ../../library/pathlib.rst:1757 msgid "The *follow_symlinks* parameter was added." msgstr "" -#: ../../library/pathlib.rst:1047 msgid "" "Like :meth:`Path.stat` but, if the path points to a symbolic link, return " "the symbolic link's information rather than its target's." msgstr "" -#: ../../library/pathlib.rst:1053 msgid "" "Return ``True`` if the path points to an existing file or directory. " "``False`` will be returned if the path is invalid, inaccessible or missing. " "Use :meth:`Path.stat` to distinguish between these cases." msgstr "" -#: ../../library/pathlib.rst:1057 msgid "" "This method normally follows symlinks; to check if a symlink exists, add the " "argument ``follow_symlinks=False``." msgstr "" -#: ../../library/pathlib.rst:1062 msgid "" ">>> Path('.').exists()\n" "True\n" @@ -1421,7 +1207,6 @@ msgid "" "False" msgstr "" -#: ../../library/pathlib.rst:1077 msgid "" "Return ``True`` if the path points to a regular file. ``False`` will be " "returned if the path is invalid, inaccessible or missing, or if it points to " @@ -1429,13 +1214,11 @@ msgid "" "between these cases." msgstr "" -#: ../../library/pathlib.rst:1082 msgid "" "This method normally follows symlinks; to exclude symlinks, add the argument " "``follow_symlinks=False``." msgstr "" -#: ../../library/pathlib.rst:1091 msgid "" "Return ``True`` if the path points to a directory. ``False`` will be " "returned if the path is invalid, inaccessible or missing, or if it points to " @@ -1443,27 +1226,23 @@ msgid "" "between these cases." msgstr "" -#: ../../library/pathlib.rst:1096 msgid "" "This method normally follows symlinks; to exclude symlinks to directories, " "add the argument ``follow_symlinks=False``." msgstr "" -#: ../../library/pathlib.rst:1105 msgid "" "Return ``True`` if the path points to a symbolic link, even if that symlink " "is broken. ``False`` will be returned if the path is invalid, inaccessible " -"or missing, or if it points to something other than a symbolic link. " -"Use :meth:`Path.stat` to distinguish between these cases." +"or missing, or if it points to something other than a symbolic link. Use :" +"meth:`Path.stat` to distinguish between these cases." msgstr "" -#: ../../library/pathlib.rst:1113 msgid "" "Return ``True`` if the path points to a junction, and ``False`` for any " "other type of file. Currently only Windows supports junctions." msgstr "" -#: ../../library/pathlib.rst:1121 msgid "" "Return ``True`` if the path is a :dfn:`mount point`: a point in a file " "system where a different file system has been mounted. On POSIX, the " @@ -1475,11 +1254,9 @@ msgid "" "mounted filesystem directory." msgstr "" -#: ../../library/pathlib.rst:1132 msgid "Windows support was added." msgstr "" -#: ../../library/pathlib.rst:1137 msgid "" "Return ``True`` if the path points to a Unix socket. ``False`` will be " "returned if the path is invalid, inaccessible or missing, or if it points to " @@ -1487,14 +1264,12 @@ msgid "" "between these cases." msgstr "" -#: ../../library/pathlib.rst:1145 msgid "" "Return ``True`` if the path points to a FIFO. ``False`` will be returned if " "the path is invalid, inaccessible or missing, or if it points to something " "other than a FIFO. Use :meth:`Path.stat` to distinguish between these cases." msgstr "" -#: ../../library/pathlib.rst:1153 msgid "" "Return ``True`` if the path points to a block device. ``False`` will be " "returned if the path is invalid, inaccessible or missing, or if it points to " @@ -1502,7 +1277,6 @@ msgid "" "between these cases." msgstr "" -#: ../../library/pathlib.rst:1161 msgid "" "Return ``True`` if the path points to a character device. ``False`` will be " "returned if the path is invalid, inaccessible or missing, or if it points to " @@ -1510,20 +1284,17 @@ msgid "" "distinguish between these cases." msgstr "" -#: ../../library/pathlib.rst:1169 msgid "" "Return whether this path points to the same file as *other_path*, which can " -"be either a Path object, or a string. The semantics are similar " -"to :func:`os.path.samefile` and :func:`os.path.samestat`." +"be either a Path object, or a string. The semantics are similar to :func:" +"`os.path.samefile` and :func:`os.path.samestat`." msgstr "" -#: ../../library/pathlib.rst:1173 msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." msgstr "" -#: ../../library/pathlib.rst:1178 msgid "" ">>> p = Path('spam')\n" ">>> q = Path('eggs')\n" @@ -1533,7 +1304,6 @@ msgid "" "True" msgstr "" -#: ../../library/pathlib.rst:1190 msgid "" "A :class:`~pathlib.types.PathInfo` object that supports querying file type " "information. The object exposes methods that cache their results, which can " @@ -1541,7 +1311,6 @@ msgid "" "For example::" msgstr "" -#: ../../library/pathlib.rst:1195 msgid "" ">>> p = Path('src')\n" ">>> if p.info.is_symlink():\n" @@ -1556,7 +1325,6 @@ msgid "" "directory" msgstr "" -#: ../../library/pathlib.rst:1207 msgid "" "If the path was generated from :meth:`Path.iterdir` then this attribute is " "initialized with some information about the file type gleaned from scanning " @@ -1564,26 +1332,21 @@ msgid "" "any filesystem queries." msgstr "" -#: ../../library/pathlib.rst:1212 msgid "" -"To fetch up-to-date information, it's best to " -"call :meth:`Path.is_dir`, :meth:`~Path.is_file` and :meth:`~Path.is_symlink` " -"rather than methods of this attribute. There is no way to reset the cache; " -"instead you can create a new path object with an empty info cache via ``p = " -"Path(p)``." +"To fetch up-to-date information, it's best to call :meth:`Path.is_dir`, :" +"meth:`~Path.is_file` and :meth:`~Path.is_symlink` rather than methods of " +"this attribute. There is no way to reset the cache; instead you can create a " +"new path object with an empty info cache via ``p = Path(p)``." msgstr "" -#: ../../library/pathlib.rst:1221 msgid "Reading and writing files" msgstr "" -#: ../../library/pathlib.rst:1226 msgid "" "Open the file pointed to by the path, like the built-in :func:`open` " "function does::" msgstr "" -#: ../../library/pathlib.rst:1229 msgid "" ">>> p = Path('setup.py')\n" ">>> with p.open() as f:\n" @@ -1592,11 +1355,9 @@ msgid "" "'#!/usr/bin/env python3\\n'" msgstr "" -#: ../../library/pathlib.rst:1238 msgid "Return the decoded contents of the pointed-to file as a string::" msgstr "" -#: ../../library/pathlib.rst:1240 ../../library/pathlib.rst:1273 msgid "" ">>> p = Path('my_text_file')\n" ">>> p.write_text('Text file contents')\n" @@ -1605,21 +1366,17 @@ msgid "" "'Text file contents'" msgstr "" -#: ../../library/pathlib.rst:1246 msgid "" "The file is opened and then closed. The optional parameters have the same " "meaning as in :func:`open`." msgstr "" -#: ../../library/pathlib.rst:1251 ../../library/pathlib.rst:1284 msgid "The *newline* parameter was added." msgstr "" -#: ../../library/pathlib.rst:1257 msgid "Return the binary contents of the pointed-to file as a bytes object::" msgstr "" -#: ../../library/pathlib.rst:1259 ../../library/pathlib.rst:1293 msgid "" ">>> p = Path('my_binary_file')\n" ">>> p.write_bytes(b'Binary file contents')\n" @@ -1628,39 +1385,32 @@ msgid "" "b'Binary file contents'" msgstr "" -#: ../../library/pathlib.rst:1270 msgid "" "Open the file pointed to in text mode, write *data* to it, and close the " "file::" msgstr "" -#: ../../library/pathlib.rst:1279 msgid "" "An existing file of the same name is overwritten. The optional parameters " "have the same meaning as in :func:`open`." msgstr "" -#: ../../library/pathlib.rst:1290 msgid "" "Open the file pointed to in bytes mode, write *data* to it, and close the " "file::" msgstr "" -#: ../../library/pathlib.rst:1299 msgid "An existing file of the same name is overwritten." msgstr "" -#: ../../library/pathlib.rst:1305 msgid "Reading directories" msgstr "" -#: ../../library/pathlib.rst:1309 msgid "" "When the path points to a directory, yield path objects of the directory " "contents::" msgstr "" -#: ../../library/pathlib.rst:1312 msgid "" ">>> p = Path('docs')\n" ">>> for child in p.iterdir(): child\n" @@ -1674,7 +1424,6 @@ msgid "" "PosixPath('docs/Makefile')" msgstr "" -#: ../../library/pathlib.rst:1323 msgid "" "The children are yielded in arbitrary order, and the special entries ``'.'`` " "and ``'..'`` are not included. If a file is removed from or added to the " @@ -1682,23 +1431,20 @@ msgid "" "object for that file is included." msgstr "" -#: ../../library/pathlib.rst:1328 msgid "" "If the path is not a directory or otherwise inaccessible, :exc:`OSError` is " "raised." msgstr "" -#: ../../library/pathlib.rst:1334 msgid "" "Glob the given relative *pattern* in the directory represented by this path, " "yielding all matching files (of any kind)::" msgstr "" -#: ../../library/pathlib.rst:1337 msgid "" ">>> sorted(Path('.').glob('*.py'))\n" -"[PosixPath('pathlib.py'), PosixPath('setup.py'), " -"PosixPath('test_pathlib.py')]\n" +"[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib." +"py')]\n" ">>> sorted(Path('.').glob('*/*.py'))\n" "[PosixPath('docs/conf.py')]\n" ">>> sorted(Path('.').glob('**/*.py'))\n" @@ -1709,7 +1455,6 @@ msgid "" " PosixPath('test_pathlib.py')]" msgstr "" -#: ../../library/pathlib.rst:1351 msgid "" "By default, or when the *case_sensitive* keyword-only argument is set to " "``None``, this method matches paths using platform-specific casing rules: " @@ -1717,60 +1462,50 @@ msgid "" "*case_sensitive* to ``True`` or ``False`` to override this behaviour." msgstr "" -#: ../../library/pathlib.rst:1356 msgid "" "By default, or when the *recurse_symlinks* keyword-only argument is set to " "``False``, this method follows symlinks except when expanding \"``**``\" " "wildcards. Set *recurse_symlinks* to ``True`` to always follow symlinks." msgstr "" -#: ../../library/pathlib.rst:1360 msgid "" "Raises an :ref:`auditing event ` ``pathlib.Path.glob`` with " "arguments ``self``, ``pattern``." msgstr "" -#: ../../library/pathlib.rst:1365 ../../library/pathlib.rst:1390 msgid "The *recurse_symlinks* parameter was added." msgstr "" -#: ../../library/pathlib.rst:1371 msgid "" "Any :exc:`OSError` exceptions raised from scanning the filesystem are " "suppressed. In previous versions, such exceptions are suppressed in many " "cases, but not all." msgstr "" -#: ../../library/pathlib.rst:1379 msgid "" -"Glob the given relative *pattern* recursively. This is like " -"calling :func:`Path.glob` with \"``**/``\" added in front of the *pattern*." +"Glob the given relative *pattern* recursively. This is like calling :func:" +"`Path.glob` with \"``**/``\" added in front of the *pattern*." msgstr "" -#: ../../library/pathlib.rst:1383 msgid ":ref:`pathlib-pattern-language` and :meth:`Path.glob` documentation." msgstr "" -#: ../../library/pathlib.rst:1385 msgid "" "Raises an :ref:`auditing event ` ``pathlib.Path.rglob`` with " "arguments ``self``, ``pattern``." msgstr "" -#: ../../library/pathlib.rst:1399 msgid "" "Generate the file names in a directory tree by walking the tree either top-" "down or bottom-up." msgstr "" -#: ../../library/pathlib.rst:1402 msgid "" "For each directory in the directory tree rooted at *self* (including *self* " "but excluding '.' and '..'), the method yields a 3-tuple of ``(dirpath, " "dirnames, filenames)``." msgstr "" -#: ../../library/pathlib.rst:1406 msgid "" "*dirpath* is a :class:`Path` to the directory currently being walked, " "*dirnames* is a list of strings for the names of subdirectories in *dirpath* " @@ -1780,7 +1515,6 @@ msgid "" "name``. Whether or not the lists are sorted is file system-dependent." msgstr "" -#: ../../library/pathlib.rst:1414 msgid "" "If the optional argument *top_down* is true (which is the default), the " "triple for a directory is generated before the triples for any of its " @@ -1791,21 +1525,18 @@ msgid "" "the directory and its subdirectories are walked." msgstr "" -#: ../../library/pathlib.rst:1422 msgid "" "When *top_down* is true, the caller can modify the *dirnames* list in-place " -"(for example, using :keyword:`del` or slice assignment), " -"and :meth:`Path.walk` will only recurse into the subdirectories whose names " -"remain in *dirnames*. This can be used to prune the search, or to impose a " -"specific order of visiting, or even to inform :meth:`Path.walk` about " -"directories the caller creates or renames before it " -"resumes :meth:`Path.walk` again. Modifying *dirnames* when *top_down* is " -"false has no effect on the behavior of :meth:`Path.walk` since the " -"directories in *dirnames* have already been generated by the time *dirnames* " -"is yielded to the caller." +"(for example, using :keyword:`del` or slice assignment), and :meth:`Path." +"walk` will only recurse into the subdirectories whose names remain in " +"*dirnames*. This can be used to prune the search, or to impose a specific " +"order of visiting, or even to inform :meth:`Path.walk` about directories the " +"caller creates or renames before it resumes :meth:`Path.walk` again. " +"Modifying *dirnames* when *top_down* is false has no effect on the behavior " +"of :meth:`Path.walk` since the directories in *dirnames* have already been " +"generated by the time *dirnames* is yielded to the caller." msgstr "" -#: ../../library/pathlib.rst:1432 msgid "" "By default, errors from :func:`os.scandir` are ignored. If the optional " "argument *on_error* is specified, it should be a callable; it will be called " @@ -1814,7 +1545,6 @@ msgid "" "filename is available as the ``filename`` attribute of the exception object." msgstr "" -#: ../../library/pathlib.rst:1438 msgid "" "By default, :meth:`Path.walk` does not follow symbolic links, and instead " "adds them to the *filenames* list. Set *follow_symlinks* to true to resolve " @@ -1823,15 +1553,12 @@ msgid "" "(where supported)." msgstr "" -#: ../../library/pathlib.rst:1445 msgid "" "Be aware that setting *follow_symlinks* to true can lead to infinite " -"recursion if a link points to a parent directory of " -"itself. :meth:`Path.walk` does not keep track of the directories it has " -"already visited." +"recursion if a link points to a parent directory of itself. :meth:`Path." +"walk` does not keep track of the directories it has already visited." msgstr "" -#: ../../library/pathlib.rst:1450 msgid "" ":meth:`Path.walk` assumes the directories it walks are not modified during " "execution. For example, if a directory from *dirnames* has been replaced " @@ -1840,23 +1567,20 @@ msgid "" "*dirnames* as appropriate." msgstr "" -#: ../../library/pathlib.rst:1458 msgid "" "Unlike :func:`os.walk`, :meth:`Path.walk` lists symlinks to directories in " "*filenames* if *follow_symlinks* is false." msgstr "" -#: ../../library/pathlib.rst:1461 msgid "" "This example displays the number of bytes used by all files in each " "directory, while ignoring ``__pycache__`` directories::" msgstr "" -#: ../../library/pathlib.rst:1464 msgid "" "from pathlib import Path\n" -"for root, dirs, files in Path(\"cpython/Lib/" -"concurrent\").walk(on_error=print):\n" +"for root, dirs, files in Path(\"cpython/Lib/concurrent\")." +"walk(on_error=print):\n" " print(\n" " root,\n" " \"consumes\",\n" @@ -1869,14 +1593,12 @@ msgid "" " dirs.remove('__pycache__')" msgstr "" -#: ../../library/pathlib.rst:1477 msgid "" "This next example is a simple implementation of :func:`shutil.rmtree`. " "Walking the tree bottom-up is essential as :func:`rmdir` doesn't allow " "deleting a directory before it is empty::" msgstr "" -#: ../../library/pathlib.rst:1481 msgid "" "# Delete everything reachable from the directory \"top\".\n" "# CAUTION: This is dangerous! For example, if top == Path('/'),\n" @@ -1888,67 +1610,56 @@ msgid "" " (root / name).rmdir()" msgstr "" -#: ../../library/pathlib.rst:1494 msgid "Creating files and directories" msgstr "" -#: ../../library/pathlib.rst:1498 msgid "" "Create a file at this given path. If *mode* is given, it is combined with " "the process's ``umask`` value to determine the file mode and access flags. " "If the file already exists, the function succeeds when *exist_ok* is true " -"(and its modification time is updated to the current time), " -"otherwise :exc:`FileExistsError` is raised." +"(and its modification time is updated to the current time), otherwise :exc:" +"`FileExistsError` is raised." msgstr "" -#: ../../library/pathlib.rst:1505 msgid "" -"The :meth:`~Path.open`, :meth:`~Path.write_text` " -"and :meth:`~Path.write_bytes` methods are often used to create files." +"The :meth:`~Path.open`, :meth:`~Path.write_text` and :meth:`~Path." +"write_bytes` methods are often used to create files." msgstr "" -#: ../../library/pathlib.rst:1511 msgid "" "Create a new directory at this given path. If *mode* is given, it is " "combined with the process's ``umask`` value to determine the file mode and " "access flags. If the path already exists, :exc:`FileExistsError` is raised." msgstr "" -#: ../../library/pathlib.rst:1516 msgid "" "If *parents* is true, any missing parents of this path are created as " "needed; they are created with the default permissions without taking *mode* " "into account (mimicking the POSIX ``mkdir -p`` command)." msgstr "" -#: ../../library/pathlib.rst:1520 msgid "" -"If *parents* is false (the default), a missing parent " -"raises :exc:`FileNotFoundError`." +"If *parents* is false (the default), a missing parent raises :exc:" +"`FileNotFoundError`." msgstr "" -#: ../../library/pathlib.rst:1523 msgid "" "If *exist_ok* is false (the default), :exc:`FileExistsError` is raised if " "the target directory already exists." msgstr "" -#: ../../library/pathlib.rst:1526 msgid "" "If *exist_ok* is true, :exc:`FileExistsError` will not be raised unless the " "given path already exists in the file system and is not a directory (same " "behavior as the POSIX ``mkdir -p`` command)." msgstr "" -#: ../../library/pathlib.rst:1530 msgid "The *exist_ok* parameter was added." msgstr "" -#: ../../library/pathlib.rst:1536 msgid "Make this path a symbolic link pointing to *target*." msgstr "" -#: ../../library/pathlib.rst:1538 msgid "" "On Windows, a symlink represents either a file or a directory, and does not " "morph to the target dynamically. If the target is present, the type of the " @@ -1957,7 +1668,6 @@ msgid "" "otherwise. On non-Windows platforms, *target_is_directory* is ignored." msgstr "" -#: ../../library/pathlib.rst:1546 msgid "" ">>> p = Path('mylink')\n" ">>> p.symlink_to('setup.py')\n" @@ -1969,43 +1679,35 @@ msgid "" "8" msgstr "" -#: ../../library/pathlib.rst:1556 msgid "" "The order of arguments (link, target) is the reverse of :func:`os.symlink`'s." msgstr "" -#: ../../library/pathlib.rst:1559 msgid "" "Raises :exc:`UnsupportedOperation` if :func:`os.symlink` is not available. " "In previous versions, :exc:`NotImplementedError` was raised." msgstr "" -#: ../../library/pathlib.rst:1566 msgid "Make this path a hard link to the same file as *target*." msgstr "" -#: ../../library/pathlib.rst:1569 msgid "" "The order of arguments (link, target) is the reverse of :func:`os.link`'s." msgstr "" -#: ../../library/pathlib.rst:1574 msgid "" "Raises :exc:`UnsupportedOperation` if :func:`os.link` is not available. In " "previous versions, :exc:`NotImplementedError` was raised." msgstr "" -#: ../../library/pathlib.rst:1580 msgid "Copying, moving and deleting" msgstr "" -#: ../../library/pathlib.rst:1584 msgid "" -"Copy this file or directory tree to the given *target*, and return a " -"new :class:`!Path` instance pointing to *target*." +"Copy this file or directory tree to the given *target*, and return a new :" +"class:`!Path` instance pointing to *target*." msgstr "" -#: ../../library/pathlib.rst:1587 msgid "" "If the source is a file, the target will be replaced if it is an existing " "file. If the source is a symlink and *follow_symlinks* is true (the " @@ -2013,7 +1715,6 @@ msgid "" "recreated at the destination." msgstr "" -#: ../../library/pathlib.rst:1592 msgid "" "If *preserve_metadata* is false (the default), only directory structures and " "file data are guaranteed to be copied. Set *preserve_metadata* to true to " @@ -2023,31 +1724,26 @@ msgid "" "always preserved)." msgstr "" -#: ../../library/pathlib.rst:1600 msgid "" "Where supported by the operating system and file system, this method " "performs a lightweight copy, where data blocks are only copied when " "modified. This is known as copy-on-write." msgstr "" -#: ../../library/pathlib.rst:1610 msgid "" "Copy this file or directory tree into the given *target_dir*, which should " -"be an existing directory. Other arguments are handled identically " -"to :meth:`Path.copy`. Returns a new :class:`!Path` instance pointing to the " -"copy." +"be an existing directory. Other arguments are handled identically to :meth:" +"`Path.copy`. Returns a new :class:`!Path` instance pointing to the copy." msgstr "" -#: ../../library/pathlib.rst:1620 msgid "" -"Rename this file or directory to the given *target*, and return a " -"new :class:`!Path` instance pointing to *target*. On Unix, if *target* " -"exists and is a file, it will be replaced silently if the user has " -"permission. On Windows, if *target* exists, :exc:`FileExistsError` will be " -"raised. *target* can be either a string or another path object::" +"Rename this file or directory to the given *target*, and return a new :class:" +"`!Path` instance pointing to *target*. On Unix, if *target* exists and is a " +"file, it will be replaced silently if the user has permission. On Windows, " +"if *target* exists, :exc:`FileExistsError` will be raised. *target* can be " +"either a string or another path object::" msgstr "" -#: ../../library/pathlib.rst:1626 msgid "" ">>> p = Path('foo')\n" ">>> p.open('w').write('some text')\n" @@ -2059,37 +1755,31 @@ msgid "" "'some text'" msgstr "" -#: ../../library/pathlib.rst:1635 ../../library/pathlib.rst:1651 msgid "" "The target path may be absolute or relative. Relative paths are interpreted " -"relative to the current working directory, *not* the directory of " -"the :class:`!Path` object." +"relative to the current working directory, *not* the directory of the :class:" +"`!Path` object." msgstr "" -#: ../../library/pathlib.rst:1639 msgid "" "It is implemented in terms of :func:`os.rename` and gives the same " "guarantees." msgstr "" -#: ../../library/pathlib.rst:1641 ../../library/pathlib.rst:1655 msgid "Added return value, return the new :class:`!Path` instance." msgstr "" -#: ../../library/pathlib.rst:1647 msgid "" -"Rename this file or directory to the given *target*, and return a " -"new :class:`!Path` instance pointing to *target*. If *target* points to an " -"existing file or empty directory, it will be unconditionally replaced." +"Rename this file or directory to the given *target*, and return a new :class:" +"`!Path` instance pointing to *target*. If *target* points to an existing " +"file or empty directory, it will be unconditionally replaced." msgstr "" -#: ../../library/pathlib.rst:1661 msgid "" -"Move this file or directory tree to the given *target*, and return a " -"new :class:`!Path` instance pointing to *target*." +"Move this file or directory tree to the given *target*, and return a new :" +"class:`!Path` instance pointing to *target*." msgstr "" -#: ../../library/pathlib.rst:1664 msgid "" "If the *target* doesn't exist it will be created. If both this path and the " "*target* are existing files, then the target is overwritten. If both paths " @@ -2097,98 +1787,81 @@ msgid "" "directory, then :exc:`OSError` is raised." msgstr "" -#: ../../library/pathlib.rst:1669 msgid "" -"If both paths are on the same filesystem, the move is performed " -"with :func:`os.replace`. Otherwise, this path is copied (preserving metadata " -"and symlinks) and then deleted." +"If both paths are on the same filesystem, the move is performed with :func:" +"`os.replace`. Otherwise, this path is copied (preserving metadata and " +"symlinks) and then deleted." msgstr "" -#: ../../library/pathlib.rst:1678 msgid "" "Move this file or directory tree into the given *target_dir*, which should " "be an existing directory. Returns a new :class:`!Path` instance pointing to " "the moved path." msgstr "" -#: ../../library/pathlib.rst:1687 msgid "" -"Remove this file or symbolic link. If the path points to a directory, " -"use :func:`Path.rmdir` instead." +"Remove this file or symbolic link. If the path points to a directory, use :" +"func:`Path.rmdir` instead." msgstr "" -#: ../../library/pathlib.rst:1690 msgid "" "If *missing_ok* is false (the default), :exc:`FileNotFoundError` is raised " "if the path does not exist." msgstr "" -#: ../../library/pathlib.rst:1693 msgid "" "If *missing_ok* is true, :exc:`FileNotFoundError` exceptions will be ignored " "(same behavior as the POSIX ``rm -f`` command)." msgstr "" -#: ../../library/pathlib.rst:1696 msgid "The *missing_ok* parameter was added." msgstr "" -#: ../../library/pathlib.rst:1702 msgid "Remove this directory. The directory must be empty." msgstr "" -#: ../../library/pathlib.rst:1706 msgid "Permissions and ownership" msgstr "" -#: ../../library/pathlib.rst:1710 msgid "" "Return the name of the user owning the file. :exc:`KeyError` is raised if " "the file's user identifier (UID) isn't found in the system database." msgstr "" -#: ../../library/pathlib.rst:1713 msgid "" "This method normally follows symlinks; to get the owner of the symlink, add " "the argument ``follow_symlinks=False``." msgstr "" -#: ../../library/pathlib.rst:1716 msgid "" "Raises :exc:`UnsupportedOperation` if the :mod:`pwd` module is not " "available. In earlier versions, :exc:`NotImplementedError` was raised." msgstr "" -#: ../../library/pathlib.rst:1726 msgid "" "Return the name of the group owning the file. :exc:`KeyError` is raised if " "the file's group identifier (GID) isn't found in the system database." msgstr "" -#: ../../library/pathlib.rst:1729 msgid "" "This method normally follows symlinks; to get the group of the symlink, add " "the argument ``follow_symlinks=False``." msgstr "" -#: ../../library/pathlib.rst:1732 msgid "" "Raises :exc:`UnsupportedOperation` if the :mod:`grp` module is not " "available. In earlier versions, :exc:`NotImplementedError` was raised." msgstr "" -#: ../../library/pathlib.rst:1742 msgid "Change the file mode and permissions, like :func:`os.chmod`." msgstr "" -#: ../../library/pathlib.rst:1744 msgid "" "This method normally follows symlinks. Some Unix flavours support changing " "permissions on the symlink itself; on these platforms you may add the " "argument ``follow_symlinks=False``, or use :meth:`~Path.lchmod`." msgstr "" -#: ../../library/pathlib.rst:1750 msgid "" ">>> p = Path('setup.py')\n" ">>> p.stat().st_mode\n" @@ -2198,59 +1871,46 @@ msgid "" "33060" msgstr "" -#: ../../library/pathlib.rst:1763 msgid "" "Like :meth:`Path.chmod` but, if the path points to a symbolic link, the " "symbolic link's mode is changed rather than its target's." msgstr "" -#: ../../library/pathlib.rst:1770 msgid "Pattern language" msgstr "" -#: ../../library/pathlib.rst:1772 msgid "" -"The following wildcards are supported in patterns " -"for :meth:`~PurePath.full_match`, :meth:`~Path.glob` and :meth:`~Path.rglob`:" +"The following wildcards are supported in patterns for :meth:`~PurePath." +"full_match`, :meth:`~Path.glob` and :meth:`~Path.rglob`:" msgstr "" -#: ../../library/pathlib.rst:1775 msgid "``**`` (entire segment)" msgstr "" -#: ../../library/pathlib.rst:1776 msgid "Matches any number of file or directory segments, including zero." msgstr "" -#: ../../library/pathlib.rst:1777 msgid "``*`` (entire segment)" msgstr "" -#: ../../library/pathlib.rst:1778 msgid "Matches one file or directory segment." msgstr "" -#: ../../library/pathlib.rst:1779 msgid "``*`` (part of a segment)" msgstr "" -#: ../../library/pathlib.rst:1780 msgid "Matches any number of non-separator characters, including zero." msgstr "" -#: ../../library/pathlib.rst:1781 msgid "``?``" -msgstr "``?``" +msgstr "" -#: ../../library/pathlib.rst:1782 msgid "Matches one non-separator character." msgstr "" -#: ../../library/pathlib.rst:1783 msgid "``[seq]``" -msgstr "``[seq]``" +msgstr "" -#: ../../library/pathlib.rst:1784 msgid "" "Matches one character in *seq*, where *seq* is a sequence of characters. " "Range expressions are supported; for example, ``[a-z]`` matches any " @@ -2258,134 +1918,108 @@ msgid "" "matches any ASCII letter, digit, or underscore." msgstr "" -#: ../../library/pathlib.rst:1788 msgid "``[!seq]``" -msgstr "``[!seq]``" +msgstr "" -#: ../../library/pathlib.rst:1789 msgid "" "Matches one character not in *seq*, where *seq* follows the same rules as " "above." msgstr "" -#: ../../library/pathlib.rst:1791 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``\"[?]\"`` matches the character ``\"?\"``." msgstr "" -#: ../../library/pathlib.rst:1794 msgid "The \"``**``\" wildcard enables recursive globbing. A few examples:" msgstr "" -#: ../../library/pathlib.rst:1797 msgid "Pattern" msgstr "" -#: ../../library/pathlib.rst:1797 msgid "Meaning" -msgstr "Jelentés" +msgstr "" -#: ../../library/pathlib.rst:1799 msgid "\"``**/*``\"" msgstr "" -#: ../../library/pathlib.rst:1799 msgid "Any path with at least one segment." msgstr "" -#: ../../library/pathlib.rst:1800 msgid "\"``**/*.py``\"" msgstr "" -#: ../../library/pathlib.rst:1800 msgid "Any path with a final segment ending \"``.py``\"." msgstr "" -#: ../../library/pathlib.rst:1801 msgid "\"``assets/**``\"" msgstr "" -#: ../../library/pathlib.rst:1801 msgid "Any path starting with \"``assets/``\"." msgstr "" -#: ../../library/pathlib.rst:1802 msgid "\"``assets/**/*``\"" msgstr "" -#: ../../library/pathlib.rst:1802 msgid "" "Any path starting with \"``assets/``\", excluding \"``assets/``\" itself." msgstr "" -#: ../../library/pathlib.rst:1806 msgid "" "Globbing with the \"``**``\" wildcard visits every directory in the tree. " "Large directory trees may take a long time to search." msgstr "" -#: ../../library/pathlib.rst:1809 msgid "" "Globbing with a pattern that ends with \"``**``\" returns both files and " "directories. In previous versions, only directories were returned." msgstr "" -#: ../../library/pathlib.rst:1813 msgid "" "In :meth:`Path.glob` and :meth:`~Path.rglob`, a trailing slash may be added " "to the pattern to match only directories." msgstr "" -#: ../../library/pathlib.rst:1816 msgid "" -"Globbing with a pattern that ends with a pathname components separator " -"(:data:`~os.sep` or :data:`~os.altsep`) returns only directories." +"Globbing with a pattern that ends with a pathname components separator (:" +"data:`~os.sep` or :data:`~os.altsep`) returns only directories." msgstr "" -#: ../../library/pathlib.rst:1822 msgid "Comparison to the :mod:`glob` module" msgstr "" -#: ../../library/pathlib.rst:1824 msgid "" -"The patterns accepted and results generated by :meth:`Path.glob` " -"and :meth:`Path.rglob` differ slightly from those by the :mod:`glob` module:" +"The patterns accepted and results generated by :meth:`Path.glob` and :meth:" +"`Path.rglob` differ slightly from those by the :mod:`glob` module:" msgstr "" -#: ../../library/pathlib.rst:1827 msgid "" "Files beginning with a dot are not special in pathlib. This is like passing " "``include_hidden=True`` to :func:`glob.glob`." msgstr "" -#: ../../library/pathlib.rst:1829 msgid "" "\"``**``\" pattern components are always recursive in pathlib. This is like " "passing ``recursive=True`` to :func:`glob.glob`." msgstr "" -#: ../../library/pathlib.rst:1831 msgid "" "\"``**``\" pattern components do not follow symlinks by default in pathlib. " "This behaviour has no equivalent in :func:`glob.glob`, but you can pass " "``recurse_symlinks=True`` to :meth:`Path.glob` for compatible behaviour." msgstr "" -#: ../../library/pathlib.rst:1834 msgid "" "Like all :class:`PurePath` and :class:`Path` objects, the values returned " "from :meth:`Path.glob` and :meth:`Path.rglob` don't include trailing slashes." msgstr "" -#: ../../library/pathlib.rst:1837 msgid "" "The values returned from pathlib's ``path.glob()`` and ``path.rglob()`` " -"include the *path* as a prefix, unlike the results of " -"``glob.glob(root_dir=path)``." +"include the *path* as a prefix, unlike the results of ``glob." +"glob(root_dir=path)``." msgstr "" -#: ../../library/pathlib.rst:1840 msgid "" "The values returned from pathlib's ``path.glob()`` and ``path.rglob()`` may " "include *path* itself, for example when globbing \"``**``\", whereas the " @@ -2393,34 +2027,29 @@ msgid "" "would correspond to *path*." msgstr "" -#: ../../library/pathlib.rst:1847 msgid "Comparison to the :mod:`os` and :mod:`os.path` modules" msgstr "" -#: ../../library/pathlib.rst:1849 msgid "" "pathlib implements path operations using :class:`PurePath` and :class:`Path` " -"objects, and so it's said to be *object-oriented*. On the other hand, " -"the :mod:`os` and :mod:`os.path` modules supply functions that work with low-" +"objects, and so it's said to be *object-oriented*. On the other hand, the :" +"mod:`os` and :mod:`os.path` modules supply functions that work with low-" "level ``str`` and ``bytes`` objects, which is a more *procedural* approach. " "Some users consider the object-oriented style to be more readable." msgstr "" -#: ../../library/pathlib.rst:1855 msgid "" -"Many functions in :mod:`os` and :mod:`os.path` support ``bytes`` paths " -"and :ref:`paths relative to directory descriptors `. These features " +"Many functions in :mod:`os` and :mod:`os.path` support ``bytes`` paths and :" +"ref:`paths relative to directory descriptors `. These features " "aren't available in pathlib." msgstr "" -#: ../../library/pathlib.rst:1859 msgid "" -"Python's ``str`` and ``bytes`` types, and portions of the :mod:`os` " -"and :mod:`os.path` modules, are written in C and are very speedy. pathlib is " -"written in pure Python and is often slower, but rarely slow enough to matter." +"Python's ``str`` and ``bytes`` types, and portions of the :mod:`os` and :mod:" +"`os.path` modules, are written in C and are very speedy. pathlib is written " +"in pure Python and is often slower, but rarely slow enough to matter." msgstr "" -#: ../../library/pathlib.rst:1863 msgid "" "pathlib's path normalization is slightly more opinionated and consistent " "than :mod:`os.path`. For example, whereas :func:`os.path.abspath` eliminates " @@ -2429,12 +2058,10 @@ msgid "" "safety." msgstr "" -#: ../../library/pathlib.rst:1868 msgid "" "pathlib's path normalization may render it unsuitable for some applications:" msgstr "" -#: ../../library/pathlib.rst:1870 msgid "" "pathlib normalizes ``Path(\"my_folder/\")`` to ``Path(\"my_folder\")``, " "which changes a path's meaning when supplied to various operating system " @@ -2443,7 +2070,6 @@ msgid "" "rather than a directory only." msgstr "" -#: ../../library/pathlib.rst:1875 msgid "" "pathlib normalizes ``Path(\"./my_program\")`` to ``Path(\"my_program\")``, " "which changes a path's meaning when used as an executable search path, such " @@ -2452,283 +2078,214 @@ msgid "" "rather than the current directory." msgstr "" -#: ../../library/pathlib.rst:1881 msgid "" "As a consequence of these differences, pathlib is not a drop-in replacement " "for :mod:`os.path`." msgstr "" -#: ../../library/pathlib.rst:1886 msgid "Corresponding tools" msgstr "" -#: ../../library/pathlib.rst:1888 msgid "" -"Below is a table mapping various :mod:`os` functions to their " -"corresponding :class:`PurePath`/:class:`Path` equivalent." +"Below is a table mapping various :mod:`os` functions to their corresponding :" +"class:`PurePath`/:class:`Path` equivalent." msgstr "" -#: ../../library/pathlib.rst:1892 msgid ":mod:`os` and :mod:`os.path`" msgstr "" -#: ../../library/pathlib.rst:1892 msgid ":mod:`pathlib`" msgstr "" -#: ../../library/pathlib.rst:1894 msgid ":func:`os.path.dirname`" msgstr "" -#: ../../library/pathlib.rst:1894 msgid ":attr:`PurePath.parent`" msgstr "" -#: ../../library/pathlib.rst:1895 msgid ":func:`os.path.basename`" msgstr "" -#: ../../library/pathlib.rst:1895 msgid ":attr:`PurePath.name`" msgstr "" -#: ../../library/pathlib.rst:1896 msgid ":func:`os.path.splitext`" msgstr "" -#: ../../library/pathlib.rst:1896 msgid ":attr:`PurePath.stem`, :attr:`PurePath.suffix`" msgstr "" -#: ../../library/pathlib.rst:1897 msgid ":func:`os.path.join`" msgstr "" -#: ../../library/pathlib.rst:1897 msgid ":meth:`PurePath.joinpath`" msgstr "" -#: ../../library/pathlib.rst:1898 msgid ":func:`os.path.isabs`" msgstr "" -#: ../../library/pathlib.rst:1898 msgid ":meth:`PurePath.is_absolute`" msgstr "" -#: ../../library/pathlib.rst:1899 msgid ":func:`os.path.relpath`" msgstr "" -#: ../../library/pathlib.rst:1899 msgid ":meth:`PurePath.relative_to` [1]_" msgstr "" -#: ../../library/pathlib.rst:1900 msgid ":func:`os.path.expanduser`" msgstr "" -#: ../../library/pathlib.rst:1900 msgid ":meth:`Path.expanduser` [2]_" msgstr "" -#: ../../library/pathlib.rst:1901 msgid ":func:`os.path.realpath`" msgstr "" -#: ../../library/pathlib.rst:1901 msgid ":meth:`Path.resolve`" msgstr "" -#: ../../library/pathlib.rst:1902 msgid ":func:`os.path.abspath`" msgstr "" -#: ../../library/pathlib.rst:1902 msgid ":meth:`Path.absolute` [3]_" msgstr "" -#: ../../library/pathlib.rst:1903 msgid ":func:`os.path.exists`" msgstr "" -#: ../../library/pathlib.rst:1903 msgid ":meth:`Path.exists`" msgstr "" -#: ../../library/pathlib.rst:1904 msgid ":func:`os.path.isfile`" msgstr "" -#: ../../library/pathlib.rst:1904 msgid ":meth:`Path.is_file`" msgstr "" -#: ../../library/pathlib.rst:1905 msgid ":func:`os.path.isdir`" msgstr "" -#: ../../library/pathlib.rst:1905 msgid ":meth:`Path.is_dir`" msgstr "" -#: ../../library/pathlib.rst:1906 msgid ":func:`os.path.islink`" msgstr "" -#: ../../library/pathlib.rst:1906 msgid ":meth:`Path.is_symlink`" msgstr "" -#: ../../library/pathlib.rst:1907 msgid ":func:`os.path.isjunction`" msgstr "" -#: ../../library/pathlib.rst:1907 msgid ":meth:`Path.is_junction`" msgstr "" -#: ../../library/pathlib.rst:1908 msgid ":func:`os.path.ismount`" msgstr "" -#: ../../library/pathlib.rst:1908 msgid ":meth:`Path.is_mount`" msgstr "" -#: ../../library/pathlib.rst:1909 msgid ":func:`os.path.samefile`" msgstr "" -#: ../../library/pathlib.rst:1909 msgid ":meth:`Path.samefile`" msgstr "" -#: ../../library/pathlib.rst:1910 msgid ":func:`os.getcwd`" msgstr "" -#: ../../library/pathlib.rst:1910 msgid ":meth:`Path.cwd`" msgstr "" -#: ../../library/pathlib.rst:1911 msgid ":func:`os.stat`" msgstr "" -#: ../../library/pathlib.rst:1911 msgid ":meth:`Path.stat`" msgstr "" -#: ../../library/pathlib.rst:1912 msgid ":func:`os.lstat`" msgstr "" -#: ../../library/pathlib.rst:1912 msgid ":meth:`Path.lstat`" msgstr "" -#: ../../library/pathlib.rst:1913 msgid ":func:`os.listdir`" msgstr "" -#: ../../library/pathlib.rst:1913 msgid ":meth:`Path.iterdir`" msgstr "" -#: ../../library/pathlib.rst:1914 msgid ":func:`os.walk`" msgstr "" -#: ../../library/pathlib.rst:1914 msgid ":meth:`Path.walk` [4]_" msgstr "" -#: ../../library/pathlib.rst:1915 msgid ":func:`os.mkdir`, :func:`os.makedirs`" msgstr "" -#: ../../library/pathlib.rst:1915 msgid ":meth:`Path.mkdir`" msgstr "" -#: ../../library/pathlib.rst:1916 msgid ":func:`os.link`" msgstr "" -#: ../../library/pathlib.rst:1916 msgid ":meth:`Path.hardlink_to`" msgstr "" -#: ../../library/pathlib.rst:1917 msgid ":func:`os.symlink`" msgstr "" -#: ../../library/pathlib.rst:1917 msgid ":meth:`Path.symlink_to`" msgstr "" -#: ../../library/pathlib.rst:1918 msgid ":func:`os.readlink`" msgstr "" -#: ../../library/pathlib.rst:1918 msgid ":meth:`Path.readlink`" msgstr "" -#: ../../library/pathlib.rst:1919 msgid ":func:`os.rename`" msgstr "" -#: ../../library/pathlib.rst:1919 msgid ":meth:`Path.rename`" msgstr "" -#: ../../library/pathlib.rst:1920 msgid ":func:`os.replace`" msgstr "" -#: ../../library/pathlib.rst:1920 msgid ":meth:`Path.replace`" msgstr "" -#: ../../library/pathlib.rst:1921 msgid ":func:`os.remove`, :func:`os.unlink`" msgstr "" -#: ../../library/pathlib.rst:1921 msgid ":meth:`Path.unlink`" msgstr "" -#: ../../library/pathlib.rst:1922 msgid ":func:`os.rmdir`" msgstr "" -#: ../../library/pathlib.rst:1922 msgid ":meth:`Path.rmdir`" msgstr "" -#: ../../library/pathlib.rst:1923 msgid ":func:`os.chmod`" msgstr "" -#: ../../library/pathlib.rst:1923 msgid ":meth:`Path.chmod`" msgstr "" -#: ../../library/pathlib.rst:1924 msgid ":func:`os.lchmod`" msgstr "" -#: ../../library/pathlib.rst:1924 msgid ":meth:`Path.lchmod`" msgstr "" -#: ../../library/pathlib.rst:1928 msgid "Footnotes" -msgstr "Lábjegyzet" +msgstr "" -#: ../../library/pathlib.rst:1929 msgid "" ":func:`os.path.relpath` calls :func:`~os.path.abspath` to make paths " "absolute and remove \"``..``\" parts, whereas :meth:`PurePath.relative_to` " @@ -2736,94 +2293,79 @@ msgid "" "anchors differ (e.g. if one path is absolute and the other relative.)" msgstr "" -#: ../../library/pathlib.rst:1933 msgid "" ":func:`os.path.expanduser` returns the path unchanged if the home directory " -"can't be resolved, whereas :meth:`Path.expanduser` " -"raises :exc:`RuntimeError`." +"can't be resolved, whereas :meth:`Path.expanduser` raises :exc:" +"`RuntimeError`." msgstr "" -#: ../../library/pathlib.rst:1936 msgid "" ":func:`os.path.abspath` removes \"``..``\" components without resolving " -"symlinks, which may change the meaning of the path, " -"whereas :meth:`Path.absolute` leaves any \"``..``\" components in the path." +"symlinks, which may change the meaning of the path, whereas :meth:`Path." +"absolute` leaves any \"``..``\" components in the path." msgstr "" -#: ../../library/pathlib.rst:1939 msgid "" ":func:`os.walk` always follows symlinks when categorizing paths into " "*dirnames* and *filenames*, whereas :meth:`Path.walk` categorizes all " "symlinks into *filenames* when *follow_symlinks* is false (the default.)" msgstr "" -#: ../../library/pathlib.rst:1945 msgid "Protocols" msgstr "" -#: ../../library/pathlib.rst:1951 msgid "" "The :mod:`pathlib.types` module provides types for static type checking." msgstr "" -#: ../../library/pathlib.rst:1958 msgid "" -"A :class:`typing.Protocol` describing the :attr:`Path.info " -"` attribute. Implementations may return cached results " -"from their methods." +"A :class:`typing.Protocol` describing the :attr:`Path.info ` attribute. Implementations may return cached results from their " +"methods." msgstr "" -#: ../../library/pathlib.rst:1964 msgid "" "Return ``True`` if the path is an existing file or directory, or any other " "kind of file; return ``False`` if the path doesn't exist." msgstr "" -#: ../../library/pathlib.rst:1967 msgid "" "If *follow_symlinks* is ``False``, return ``True`` for symlinks without " "checking if their targets exist." msgstr "" -#: ../../library/pathlib.rst:1972 msgid "" "Return ``True`` if the path is a directory, or a symbolic link pointing to a " "directory; return ``False`` if the path is (or points to) any other kind of " "file, or if it doesn't exist." msgstr "" -#: ../../library/pathlib.rst:1976 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if the path is a " "directory (without following symlinks); return ``False`` if the path is any " "other kind of file, or if it doesn't exist." msgstr "" -#: ../../library/pathlib.rst:1982 msgid "" "Return ``True`` if the path is a file, or a symbolic link pointing to a " "file; return ``False`` if the path is (or points to) a directory or other " "non-file, or if it doesn't exist." msgstr "" -#: ../../library/pathlib.rst:1986 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if the path is a " "file (without following symlinks); return ``False`` if the path is a " "directory or other non-file, or if it doesn't exist." msgstr "" -#: ../../library/pathlib.rst:1992 msgid "" "Return ``True`` if the path is a symbolic link (even if broken); return " "``False`` if the path is a directory or any kind of file, or if it doesn't " "exist." msgstr "" -#: ../../library/pathlib.rst:11 msgid "path" msgstr "" -#: ../../library/pathlib.rst:11 msgid "operations" msgstr "" diff --git a/library/pdb.po b/library/pdb.po index 7408a06..c7493c2 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pdb.rst:4 msgid ":mod:`pdb` --- The Python Debugger" msgstr "" -#: ../../library/pdb.rst:9 msgid "**Source code:** :source:`Lib/pdb.py`" msgstr "" -#: ../../library/pdb.rst:15 msgid "" "The module :mod:`pdb` defines an interactive source code debugger for Python " "programs. It supports setting (conditional) breakpoints and single stepping " @@ -40,64 +37,51 @@ msgid "" "control." msgstr "" -#: ../../library/pdb.rst:26 msgid "" -"The debugger is extensible -- it is actually defined as the " -"class :class:`Pdb`. This is currently undocumented but easily understood by " -"reading the source. The extension interface uses the modules :mod:`bdb` " -"and :mod:`cmd`." +"The debugger is extensible -- it is actually defined as the class :class:" +"`Pdb`. This is currently undocumented but easily understood by reading the " +"source. The extension interface uses the modules :mod:`bdb` and :mod:`cmd`." msgstr "" -#: ../../library/pdb.rst:32 msgid "Module :mod:`faulthandler`" msgstr "" -#: ../../library/pdb.rst:33 msgid "" "Used to dump Python tracebacks explicitly, on a fault, after a timeout, or " "on a user signal." msgstr "" -#: ../../library/pdb.rst:36 msgid "Module :mod:`traceback`" msgstr "" -#: ../../library/pdb.rst:37 msgid "" "Standard interface to extract, format and print stack traces of Python " "programs." msgstr "" -#: ../../library/pdb.rst:39 msgid "The typical usage to break into the debugger is to insert::" msgstr "" -#: ../../library/pdb.rst:41 msgid "import pdb; pdb.set_trace()" msgstr "" -#: ../../library/pdb.rst:43 msgid "Or::" msgstr "" -#: ../../library/pdb.rst:45 msgid "breakpoint()" msgstr "" -#: ../../library/pdb.rst:47 msgid "" "at the location you want to break into the debugger, and then run the " "program. You can then step through the code following this statement, and " "continue running without the debugger using the :pdbcmd:`continue` command." msgstr "" -#: ../../library/pdb.rst:51 msgid "" "The built-in :func:`breakpoint`, when called with defaults, can be used " "instead of ``import pdb; pdb.set_trace()``." msgstr "" -#: ../../library/pdb.rst:57 msgid "" "def double(x):\n" " breakpoint()\n" @@ -106,13 +90,11 @@ msgid "" "print(f\"{val} * 2 is {double(val)}\")" msgstr "" -#: ../../library/pdb.rst:63 msgid "" "The debugger's prompt is ``(Pdb)``, which is the indicator that you are in " "debug mode::" msgstr "" -#: ../../library/pdb.rst:65 msgid "" "> ...(2)double()\n" "-> breakpoint()\n" @@ -122,24 +104,20 @@ msgid "" "3 * 2 is 6" msgstr "" -#: ../../library/pdb.rst:72 msgid "" "Tab-completion via the :mod:`readline` module is available for commands and " "command arguments, e.g. the current global and local names are offered as " "arguments of the ``p`` command." msgstr "" -#: ../../library/pdb.rst:80 msgid "" "You can also invoke :mod:`pdb` from the command line to debug other " "scripts. For example::" msgstr "" -#: ../../library/pdb.rst:83 msgid "python -m pdb [-c command] (-m module | -p pid | pyfile) [args ...]" msgstr "" -#: ../../library/pdb.rst:85 msgid "" "When invoked as a module, pdb will automatically enter post-mortem debugging " "if the program being debugged exits abnormally. After post-mortem debugging " @@ -148,52 +126,42 @@ msgid "" "cases is more useful than quitting the debugger upon program's exit." msgstr "" -#: ../../library/pdb.rst:93 msgid "" "To execute commands as if given in a :file:`.pdbrc` file; see :ref:`debugger-" "commands`." msgstr "" -#: ../../library/pdb.rst:96 msgid "Added the ``-c`` option." msgstr "" -#: ../../library/pdb.rst:101 msgid "" "To execute modules similar to the way ``python -m`` does. As with a script, " "the debugger will pause execution just before the first line of the module." msgstr "" -#: ../../library/pdb.rst:104 msgid "Added the ``-m`` option." msgstr "" -#: ../../library/pdb.rst:109 msgid "Attach to the process with the specified PID." msgstr "" -#: ../../library/pdb.rst:114 msgid "" "To attach to a running Python process for remote debugging, use the ``-p`` " "or ``--pid`` option with the target process's PID::" msgstr "" -#: ../../library/pdb.rst:117 msgid "python -m pdb -p 1234" msgstr "" -#: ../../library/pdb.rst:121 msgid "" "Attaching to a process that is blocked in a system call or waiting for I/O " "will only work once the next bytecode instruction is executed or when the " "process receives a signal." msgstr "" -#: ../../library/pdb.rst:125 msgid "Typical usage to execute a statement under control of the debugger is::" msgstr "" -#: ../../library/pdb.rst:127 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -205,11 +173,9 @@ msgid "" ">>>" msgstr "" -#: ../../library/pdb.rst:136 msgid "The typical usage to inspect a crashed program is::" msgstr "" -#: ../../library/pdb.rst:138 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -227,20 +193,17 @@ msgid "" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:153 msgid "" "The implementation of :pep:`667` means that name assignments made via " "``pdb`` will immediately affect the active scope, even when running inside " "an :term:`optimized scope`." msgstr "" -#: ../../library/pdb.rst:159 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" msgstr "" -#: ../../library/pdb.rst:164 msgid "" "Execute the *statement* (given as a string or a code object) under debugger " "control. The debugger prompt appears before any code is executed; you can " @@ -248,18 +211,16 @@ msgid "" "statement using :pdbcmd:`step` or :pdbcmd:`next` (all these commands are " "explained below). The optional *globals* and *locals* arguments specify the " "environment in which the code is executed; by default the dictionary of the " -"module :mod:`__main__` is used. (See the explanation of the built-" -"in :func:`exec` or :func:`eval` functions.)" +"module :mod:`__main__` is used. (See the explanation of the built-in :func:" +"`exec` or :func:`eval` functions.)" msgstr "" -#: ../../library/pdb.rst:176 msgid "" "Evaluate the *expression* (given as a string or a code object) under " "debugger control. When :func:`runeval` returns, it returns the value of the " "*expression*. Otherwise this function is similar to :func:`run`." msgstr "" -#: ../../library/pdb.rst:183 msgid "" "Call the *function* (a function or method object, not a string) with the " "given arguments. When :func:`runcall` returns, it returns whatever the " @@ -267,7 +228,6 @@ msgid "" "is entered." msgstr "" -#: ../../library/pdb.rst:191 msgid "" "Enter the debugger at the calling stack frame. This is useful to hard-code " "a breakpoint at a given point in a program, even if the code is not " @@ -277,55 +237,45 @@ msgid "" "starts." msgstr "" -#: ../../library/pdb.rst:199 msgid "The keyword-only argument *header*." msgstr "" -#: ../../library/pdb.rst:202 msgid "" ":func:`set_trace` will enter the debugger immediately, rather than on the " "next line of code to be executed." msgstr "" -#: ../../library/pdb.rst:206 msgid "The *commands* argument." msgstr "" -#: ../../library/pdb.rst:212 msgid "" "async version of :func:`set_trace`. This function should be used inside an " "async function with :keyword:`await`." msgstr "" -#: ../../library/pdb.rst:215 msgid "" "async def f():\n" " await pdb.set_trace_async()" msgstr "" -#: ../../library/pdb.rst:220 msgid "" ":keyword:`await` statements are supported if the debugger is invoked by this " "function." msgstr "" -#: ../../library/pdb.rst:226 msgid "" "Enter post-mortem debugging of the given exception or :ref:`traceback object " "`. If no value is given, it uses the exception that is " "currently being handled, or raises ``ValueError`` if there isn’t one." msgstr "" -#: ../../library/pdb.rst:231 msgid "Support for exception objects was added." msgstr "" -#: ../../library/pdb.rst:236 msgid "" "Enter post-mortem debugging of the exception found in :data:`sys.last_exc`." msgstr "" -#: ../../library/pdb.rst:241 msgid "" "There are two supported backends for pdb: ``'settrace'`` and " "``'monitoring'``. See :class:`bdb.Bdb` for details. The user can set the " @@ -333,56 +283,47 @@ msgid "" "If no backend is specified, the default is ``'settrace'``." msgstr "" -#: ../../library/pdb.rst:248 msgid "" ":func:`breakpoint` and :func:`set_trace` will not be affected by this " "function. They always use ``'monitoring'`` backend." msgstr "" -#: ../../library/pdb.rst:255 msgid "Returns the default backend for pdb." msgstr "" -#: ../../library/pdb.rst:259 msgid "" "The ``run*`` functions and :func:`set_trace` are aliases for instantiating " "the :class:`Pdb` class and calling the method of the same name. If you want " "to access further features, you have to do this yourself:" msgstr "" -#: ../../library/pdb.rst:266 msgid ":class:`Pdb` is the debugger class." msgstr "" -#: ../../library/pdb.rst:268 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." msgstr "" -#: ../../library/pdb.rst:271 msgid "" "The *skip* argument, if given, must be an iterable of glob-style module name " "patterns. The debugger will not step into frames that originate in a module " "that matches one of these patterns. [1]_" msgstr "" -#: ../../library/pdb.rst:275 msgid "" "By default, Pdb sets a handler for the SIGINT signal (which is sent when the " -"user presses :kbd:`Ctrl-C` on the console) when you give " -"a :pdbcmd:`continue` command. This allows you to break into the debugger " -"again by pressing :kbd:`Ctrl-C`. If you want Pdb not to touch the SIGINT " -"handler, set *nosigint* to true." +"user presses :kbd:`Ctrl-C` on the console) when you give a :pdbcmd:" +"`continue` command. This allows you to break into the debugger again by " +"pressing :kbd:`Ctrl-C`. If you want Pdb not to touch the SIGINT handler, " +"set *nosigint* to true." msgstr "" -#: ../../library/pdb.rst:280 msgid "" -"The *readrc* argument defaults to true and controls whether Pdb will " -"load .pdbrc files from the filesystem." +"The *readrc* argument defaults to true and controls whether Pdb will load ." +"pdbrc files from the filesystem." msgstr "" -#: ../../library/pdb.rst:283 msgid "" "The *mode* argument specifies how the debugger was invoked. It impacts the " "workings of some debugger commands. Valid values are ``'inline'`` (used by " @@ -391,76 +332,61 @@ msgid "" "argument was added)." msgstr "" -#: ../../library/pdb.rst:290 msgid "" "The *backend* argument specifies the backend to use for the debugger. If " -"``None`` is passed, the default backend will be used. " -"See :func:`set_default_backend`. Otherwise the supported backends are " -"``'settrace'`` and ``'monitoring'``." +"``None`` is passed, the default backend will be used. See :func:" +"`set_default_backend`. Otherwise the supported backends are ``'settrace'`` " +"and ``'monitoring'``." msgstr "" -#: ../../library/pdb.rst:294 msgid "" "The *colorize* argument, if set to ``True``, will enable colorized output in " "the debugger, if color is supported. This will highlight source code " "displayed in pdb." msgstr "" -#: ../../library/pdb.rst:297 msgid "Example call to enable tracing with *skip*::" msgstr "" -#: ../../library/pdb.rst:299 msgid "import pdb; pdb.Pdb(skip=['django.*']).set_trace()" msgstr "" -#: ../../library/pdb.rst:301 msgid "" "Raises an :ref:`auditing event ` ``pdb.Pdb`` with no arguments." msgstr "" -#: ../../library/pdb.rst:303 msgid "Added the *skip* parameter." msgstr "" -#: ../../library/pdb.rst:306 msgid "" "Added the *nosigint* parameter. Previously, a SIGINT handler was never set " "by Pdb." msgstr "" -#: ../../library/pdb.rst:310 msgid "The *readrc* argument." msgstr "" -#: ../../library/pdb.rst:313 msgid "Added the *mode* argument." msgstr "" -#: ../../library/pdb.rst:316 msgid "Added the *backend* argument." msgstr "" -#: ../../library/pdb.rst:319 msgid "Added the *colorize* argument." msgstr "" -#: ../../library/pdb.rst:322 msgid "" "Inline breakpoints like :func:`breakpoint` or :func:`pdb.set_trace` will " "always stop the program at calling frame, ignoring the *skip* pattern (if " "any)." msgstr "" -#: ../../library/pdb.rst:331 msgid "See the documentation for the functions explained above." msgstr "" -#: ../../library/pdb.rst:337 msgid "Debugger Commands" msgstr "" -#: ../../library/pdb.rst:339 msgid "" "The commands recognized by the debugger are listed below. Most commands can " "be abbreviated to one or two letters as indicated; e.g. ``h(elp)`` means " @@ -472,13 +398,11 @@ msgid "" "are separated by a vertical bar (``|``)." msgstr "" -#: ../../library/pdb.rst:348 msgid "" "Entering a blank line repeats the last command entered. Exception: if the " "last command was a :pdbcmd:`list` command, the next 11 lines are listed." msgstr "" -#: ../../library/pdb.rst:351 msgid "" "Commands that the debugger doesn't recognize are assumed to be Python " "statements and are executed in the context of the program being debugged. " @@ -489,20 +413,17 @@ msgid "" "is not changed." msgstr "" -#: ../../library/pdb.rst:359 msgid "" "Expressions/Statements whose prefix is a pdb command are now correctly " "identified and executed." msgstr "" -#: ../../library/pdb.rst:363 msgid "" "The debugger supports :ref:`aliases `. Aliases can have " "parameters which allows one a certain level of adaptability to the context " "under examination." msgstr "" -#: ../../library/pdb.rst:367 msgid "" "Multiple commands may be entered on a single line, separated by ``;;``. (A " "single ``;`` is not used as it is the separator for multiple commands in a " @@ -513,7 +434,6 @@ msgid "" "\"\";\"``." msgstr "" -#: ../../library/pdb.rst:374 msgid "" "To set a temporary global variable, use a *convenience variable*. A " "*convenience variable* is a variable whose name starts with ``$``. For " @@ -523,35 +443,27 @@ msgid "" "compared to using normal variables like ``foo = 1``." msgstr "" -#: ../../library/pdb.rst:381 msgid "There are four preset *convenience variables*:" msgstr "" -#: ../../library/pdb.rst:383 msgid "``$_frame``: the current frame you are debugging" msgstr "" -#: ../../library/pdb.rst:384 msgid "``$_retval``: the return value if the frame is returning" msgstr "" -#: ../../library/pdb.rst:385 msgid "``$_exception``: the exception if the frame is raising an exception" msgstr "" -#: ../../library/pdb.rst:386 msgid "``$_asynctask``: the asyncio task if pdb stops in an async function" msgstr "" -#: ../../library/pdb.rst:390 msgid "Added the *convenience variable* feature." msgstr "" -#: ../../library/pdb.rst:392 msgid "Added the ``$_asynctask`` convenience variable." msgstr "" -#: ../../library/pdb.rst:399 msgid "" "If a file :file:`.pdbrc` exists in the user's home directory or in the " "current directory, it is read with ``'utf-8'`` encoding and executed as if " @@ -561,20 +473,17 @@ msgid "" "read first and aliases defined there can be overridden by the local file." msgstr "" -#: ../../library/pdb.rst:406 msgid "" -":file:`.pdbrc` can now contain commands that continue debugging, such " -"as :pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " +":file:`.pdbrc` can now contain commands that continue debugging, such as :" +"pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " "effect." msgstr "" -#: ../../library/pdb.rst:411 msgid "" ":file:`.pdbrc` is now read with ``'utf-8'`` encoding. Previously, it was " "read with the system locale encoding." msgstr "" -#: ../../library/pdb.rst:418 msgid "" "Without argument, print the list of available commands. With a *command* as " "argument, print help about that command. ``help pdb`` displays the full " @@ -583,7 +492,6 @@ msgid "" "the ``!`` command." msgstr "" -#: ../../library/pdb.rst:426 msgid "" "Print a stack trace, with the most recent frame at the bottom. if *count* " "is 0, print the current frame entry. If *count* is negative, print the least " @@ -592,23 +500,19 @@ msgid "" "determines the context of most commands." msgstr "" -#: ../../library/pdb.rst:432 msgid "*count* argument is added." msgstr "" -#: ../../library/pdb.rst:437 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." msgstr "" -#: ../../library/pdb.rst:442 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." msgstr "" -#: ../../library/pdb.rst:447 msgid "" "With a *lineno* argument, set a break at line *lineno* in the current file. " "The line number may be prefixed with a *filename* and a colon, to specify a " @@ -617,46 +521,39 @@ msgid "" "abspath/to/file.py``, ``relpath/file.py``, ``module`` and ``package.module``." msgstr "" -#: ../../library/pdb.rst:454 msgid "" "With a *function* argument, set a break at the first executable statement " "within that function. *function* can be any expression that evaluates to a " "function in the current namespace." msgstr "" -#: ../../library/pdb.rst:458 msgid "" "If a second argument is present, it is an expression which must evaluate to " "true before the breakpoint is honored." msgstr "" -#: ../../library/pdb.rst:461 msgid "" "Without argument, list all breaks, including for each breakpoint, the number " "of times that breakpoint has been hit, the current ignore count, and the " "associated condition if any." msgstr "" -#: ../../library/pdb.rst:465 msgid "" "Each breakpoint is assigned a number to which all the other breakpoint " "commands refer." msgstr "" -#: ../../library/pdb.rst:470 msgid "" "Temporary breakpoint, which is removed automatically when it is first hit. " "The arguments are the same as for :pdbcmd:`break`." msgstr "" -#: ../../library/pdb.rst:475 msgid "" "With a *filename:lineno* argument, clear all the breakpoints at this line. " "With a space separated list of breakpoint numbers, clear those breakpoints. " "Without argument, clear all breaks (but first ask confirmation)." msgstr "" -#: ../../library/pdb.rst:481 msgid "" "Disable the breakpoints given as a space separated list of breakpoint " "numbers. Disabling a breakpoint means it cannot cause the program to stop " @@ -664,11 +561,9 @@ msgid "" "breakpoints and can be (re-)enabled." msgstr "" -#: ../../library/pdb.rst:488 msgid "Enable the breakpoints specified." msgstr "" -#: ../../library/pdb.rst:492 msgid "" "Set the ignore count for the given breakpoint number. If *count* is " "omitted, the ignore count is set to 0. A breakpoint becomes active when the " @@ -677,21 +572,18 @@ msgid "" "associated condition evaluates to true." msgstr "" -#: ../../library/pdb.rst:500 msgid "" "Set a new *condition* for the breakpoint, an expression which must evaluate " "to true before the breakpoint is honored. If *condition* is absent, any " "existing condition is removed; i.e., the breakpoint is made unconditional." msgstr "" -#: ../../library/pdb.rst:506 msgid "" "Specify a list of commands for breakpoint number *bpnumber*. The commands " "themselves appear on the following lines. Type a line containing just " "``end`` to terminate the commands. An example::" msgstr "" -#: ../../library/pdb.rst:510 msgid "" "(Pdb) commands 1\n" "(com) p some_variable\n" @@ -699,55 +591,47 @@ msgid "" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:515 msgid "" "To remove all commands from a breakpoint, type ``commands`` and follow it " "immediately with ``end``; that is, give no commands." msgstr "" -#: ../../library/pdb.rst:518 msgid "" "With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." msgstr "" -#: ../../library/pdb.rst:520 msgid "" "You can use breakpoint commands to start your program up again. Simply use " "the :pdbcmd:`continue` command, or :pdbcmd:`step`, or any other command that " "resumes execution." msgstr "" -#: ../../library/pdb.rst:524 msgid "" -"Specifying any command resuming execution " -"(currently :pdbcmd:`continue`, :pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`until`, :pdbcmd:`jump`, :pdbcmd:`quit` " -"and their abbreviations) terminates the command list (as if that command was " -"immediately followed by end). This is because any time you resume execution " -"(even with a simple next or step), you may encounter another breakpoint—" -"which could have its own command list, leading to ambiguities about which " -"list to execute." +"Specifying any command resuming execution (currently :pdbcmd:`continue`, :" +"pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`until`, :pdbcmd:" +"`jump`, :pdbcmd:`quit` and their abbreviations) terminates the command list " +"(as if that command was immediately followed by end). This is because any " +"time you resume execution (even with a simple next or step), you may " +"encounter another breakpoint—which could have its own command list, leading " +"to ambiguities about which list to execute." msgstr "" -#: ../../library/pdb.rst:533 msgid "" "If the list of commands contains the ``silent`` command, or a command that " "resumes execution, then the breakpoint message containing information about " "the frame is not displayed." msgstr "" -#: ../../library/pdb.rst:537 msgid "" "Frame information will not be displayed if a command that resumes execution " "is present in the command list." msgstr "" -#: ../../library/pdb.rst:543 msgid "" "Execute the current line, stop at the first possible occasion (either in a " "function that is called or on the next line in the current function)." msgstr "" -#: ../../library/pdb.rst:548 msgid "" "Continue execution until the next line in the current function is reached or " "it returns. (The difference between :pdbcmd:`next` and :pdbcmd:`step` is " @@ -756,46 +640,38 @@ msgid "" "line in the current function.)" msgstr "" -#: ../../library/pdb.rst:556 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." msgstr "" -#: ../../library/pdb.rst:559 msgid "" "With *lineno*, continue execution until a line with a number greater or " "equal to *lineno* is reached. In both cases, also stop when the current " "frame returns." msgstr "" -#: ../../library/pdb.rst:563 msgid "Allow giving an explicit line number." msgstr "" -#: ../../library/pdb.rst:568 msgid "Continue execution until the current function returns." msgstr "" -#: ../../library/pdb.rst:572 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" -#: ../../library/pdb.rst:576 msgid "" "Set the next line that will be executed. Only available in the bottom-most " "frame. This lets you jump back and execute code again, or jump forward to " "skip code that you don't want to run." msgstr "" -#: ../../library/pdb.rst:580 msgid "" "It should be noted that not all jumps are allowed -- for instance it is not " -"possible to jump into the middle of a :keyword:`for` loop or out of " -"a :keyword:`finally` clause." +"possible to jump into the middle of a :keyword:`for` loop or out of a :" +"keyword:`finally` clause." msgstr "" -#: ../../library/pdb.rst:586 msgid "" "List source code for the current file. Without arguments, list 11 lines " "around the current line or continue the previous listing. With ``.`` as " @@ -804,7 +680,6 @@ msgid "" "second argument is less than the first, it is interpreted as a count." msgstr "" -#: ../../library/pdb.rst:592 msgid "" "The current line in the current frame is indicated by ``->``. If an " "exception is being debugged, the line where the exception was originally " @@ -812,67 +687,54 @@ msgid "" "line." msgstr "" -#: ../../library/pdb.rst:597 msgid "Added the ``>>`` marker." msgstr "" -#: ../../library/pdb.rst:602 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." msgstr "" -#: ../../library/pdb.rst:609 msgid "Print the arguments of the current function and their current values." msgstr "" -#: ../../library/pdb.rst:613 msgid "Evaluate *expression* in the current context and print its value." msgstr "" -#: ../../library/pdb.rst:617 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." msgstr "" -#: ../../library/pdb.rst:623 msgid "" "Like the :pdbcmd:`p` command, except the value of *expression* is pretty-" "printed using the :mod:`pprint` module." msgstr "" -#: ../../library/pdb.rst:628 msgid "Print the type of *expression*." msgstr "" -#: ../../library/pdb.rst:632 msgid "Try to get source code of *expression* and display it." msgstr "" -#: ../../library/pdb.rst:638 msgid "" "Display the value of *expression* if it changed, each time execution stops " "in the current frame." msgstr "" -#: ../../library/pdb.rst:641 msgid "" "Without *expression*, list all display expressions for the current frame." msgstr "" -#: ../../library/pdb.rst:645 msgid "" "Display evaluates *expression* and compares to the result of the previous " "evaluation of *expression*, so when the result is mutable, display may not " "be able to pick up the changes." msgstr "" -#: ../../library/pdb.rst:649 ../../library/pdb.rst:814 msgid "Example::" msgstr "" -#: ../../library/pdb.rst:651 msgid "" "lst = []\n" "breakpoint()\n" @@ -881,13 +743,11 @@ msgid "" "print(lst)" msgstr "" -#: ../../library/pdb.rst:657 msgid "" "Display won't realize ``lst`` has been changed because the result of " "evaluation is modified in place by ``lst.append(1)`` before being compared::" msgstr "" -#: ../../library/pdb.rst:660 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -902,11 +762,9 @@ msgid "" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:672 msgid "You can do some tricks with copy mechanism to make it work::" msgstr "" -#: ../../library/pdb.rst:674 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -922,13 +780,11 @@ msgid "" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:691 msgid "" "Do not display *expression* anymore in the current frame. Without " "*expression*, clear all display expressions for the current frame." msgstr "" -#: ../../library/pdb.rst:698 msgid "" "Start an interactive interpreter (using the :mod:`code` module) in a new " "global namespace initialised from the local and global namespaces for the " @@ -936,7 +792,6 @@ msgid "" "return to the debugger." msgstr "" -#: ../../library/pdb.rst:705 msgid "" "As ``interact`` creates a new dedicated namespace for code execution, " "assignments to variables will not affect the original namespaces. However, " @@ -944,18 +799,15 @@ msgid "" "original namespaces as usual." msgstr "" -#: ../../library/pdb.rst:712 msgid "" "``exit()`` and ``quit()`` can be used to exit the :pdbcmd:`interact` command." msgstr "" -#: ../../library/pdb.rst:716 msgid "" ":pdbcmd:`interact` directs its output to the debugger's output channel " "rather than :data:`sys.stderr`." msgstr "" -#: ../../library/pdb.rst:724 msgid "" "Create an alias called *name* that executes *command*. The *command* must " "*not* be enclosed in quotes. Replaceable parameters can be indicated by " @@ -964,7 +816,6 @@ msgid "" "If no arguments are given, all aliases are listed." msgstr "" -#: ../../library/pdb.rst:730 msgid "" "Aliases may be nested and can contain anything that can be legally typed at " "the pdb prompt. Note that internal pdb commands *can* be overridden by " @@ -973,13 +824,11 @@ msgid "" "other words in the line are left alone." msgstr "" -#: ../../library/pdb.rst:736 msgid "" -"As an example, here are two useful aliases (especially when placed in " -"the :file:`.pdbrc` file)::" +"As an example, here are two useful aliases (especially when placed in the :" +"file:`.pdbrc` file)::" msgstr "" -#: ../../library/pdb.rst:739 msgid "" "# Print instance variables (usage \"pi classInst\")\n" "alias pi for k in %1.__dict__.keys(): print(f\"%1.{k} = {%1.__dict__[k]}\")\n" @@ -987,85 +836,71 @@ msgid "" "alias ps pi self" msgstr "" -#: ../../library/pdb.rst:746 msgid "Delete the specified alias *name*." msgstr "" -#: ../../library/pdb.rst:750 msgid "" "Execute the (one-line) *statement* in the context of the current stack " "frame. The exclamation point can be omitted unless the first word of the " "statement resembles a debugger command, e.g.:" msgstr "" -#: ../../library/pdb.rst:754 msgid "" "(Pdb) ! n=42\n" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:759 msgid "" -"To set a global variable, you can prefix the assignment command with " -"a :keyword:`global` statement on the same line, e.g.:" +"To set a global variable, you can prefix the assignment command with a :" +"keyword:`global` statement on the same line, e.g.:" msgstr "" -#: ../../library/pdb.rst:762 msgid "" "(Pdb) global list_options; list_options = ['-l']\n" "(Pdb)" msgstr "" -#: ../../library/pdb.rst:770 msgid "" "Restart the debugged Python program. If *args* is supplied, it is split " "with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " -"History, breakpoints, actions and debugger options are " -"preserved. :pdbcmd:`restart` is an alias for :pdbcmd:`run`." +"History, breakpoints, actions and debugger options are preserved. :pdbcmd:" +"`restart` is an alias for :pdbcmd:`run`." msgstr "" -#: ../../library/pdb.rst:775 msgid "" ":pdbcmd:`run` and :pdbcmd:`restart` commands are disabled when the debugger " "is invoked in ``'inline'`` mode." msgstr "" -#: ../../library/pdb.rst:781 msgid "" "Quit from the debugger. The program being executed is aborted. An end-of-" "file input is equivalent to :pdbcmd:`quit`." msgstr "" -#: ../../library/pdb.rst:784 msgid "" "A confirmation prompt will be shown if the debugger is invoked in " "``'inline'`` mode. Either ``y``, ``Y``, ```` or ``EOF`` will confirm " "the quit." msgstr "" -#: ../../library/pdb.rst:788 msgid "" "A confirmation prompt will be shown if the debugger is invoked in " -"``'inline'`` mode. After the confirmation, the debugger will " -"call :func:`sys.exit` immediately, instead of raising :exc:`bdb.BdbQuit` in " -"the next trace event." +"``'inline'`` mode. After the confirmation, the debugger will call :func:`sys." +"exit` immediately, instead of raising :exc:`bdb.BdbQuit` in the next trace " +"event." msgstr "" -#: ../../library/pdb.rst:796 msgid "" "Enter a recursive debugger that steps through *code* (which is an arbitrary " "expression or statement to be executed in the current environment)." msgstr "" -#: ../../library/pdb.rst:802 msgid "Print the return value for the last return of the current function." msgstr "" -#: ../../library/pdb.rst:806 msgid "List or jump between chained exceptions." msgstr "" -#: ../../library/pdb.rst:808 msgid "" "When using ``pdb.pm()`` or ``Pdb.post_mortem(...)`` with a chained " "exception instead of a traceback, it allows the user to move between the " @@ -1073,7 +908,6 @@ msgid "" "``exceptions `` to switch to that exception." msgstr "" -#: ../../library/pdb.rst:816 msgid "" "def out():\n" " try:\n" @@ -1093,11 +927,9 @@ msgid "" " out()" msgstr "" -#: ../../library/pdb.rst:833 msgid "calling ``pdb.pm()`` will allow to move between exceptions::" msgstr "" -#: ../../library/pdb.rst:835 msgid "" "> example.py(5)out()\n" "-> raise ValueError(\"reraise middle() error\") from e\n" @@ -1116,48 +948,37 @@ msgid "" "-> return inner(0)" msgstr "" -#: ../../library/pdb.rst:854 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/pdb.rst:855 msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." msgstr "" -#: ../../library/pdb.rst:11 msgid "debugging" msgstr "" -#: ../../library/pdb.rst:21 msgid "Pdb (class in pdb)" msgstr "" -#: ../../library/pdb.rst:21 msgid "module" msgstr "" -#: ../../library/pdb.rst:21 msgid "bdb" msgstr "" -#: ../../library/pdb.rst:21 msgid "cmd" msgstr "" -#: ../../library/pdb.rst:395 msgid ".pdbrc" msgstr "" -#: ../../library/pdb.rst:395 msgid "file" msgstr "" -#: ../../library/pdb.rst:395 msgid "debugger" msgstr "" -#: ../../library/pdb.rst:395 msgid "configuration" msgstr "" diff --git a/library/persistence.po b/library/persistence.po index 622fcfa..9518c87 100644 --- a/library/persistence.po +++ b/library/persistence.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/persistence.rst:5 msgid "Data Persistence" msgstr "" -#: ../../library/persistence.rst:7 msgid "" "The modules described in this chapter support storing Python data in a " "persistent form on disk. The :mod:`pickle` and :mod:`marshal` modules can " @@ -31,6 +29,5 @@ msgid "" "hash-based file formats that store a mapping of strings to other strings." msgstr "" -#: ../../library/persistence.rst:13 msgid "The list of modules described in this chapter is:" msgstr "" diff --git a/library/pickle.po b/library/pickle.po index dd42cae..956abee 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,79 +22,66 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pickle.rst:2 msgid ":mod:`!pickle` --- Python object serialization" msgstr "" -#: ../../library/pickle.rst:10 msgid "**Source code:** :source:`Lib/pickle.py`" msgstr "" -#: ../../library/pickle.rst:22 msgid "" "The :mod:`pickle` module implements binary protocols for serializing and de-" "serializing a Python object structure. *\"Pickling\"* is the process " "whereby a Python object hierarchy is converted into a byte stream, and " -"*\"unpickling\"* is the inverse operation, whereby a byte stream (from " -"a :term:`binary file` or :term:`bytes-like object`) is converted back into " -"an object hierarchy. Pickling (and unpickling) is alternatively known as " +"*\"unpickling\"* is the inverse operation, whereby a byte stream (from a :" +"term:`binary file` or :term:`bytes-like object`) is converted back into an " +"object hierarchy. Pickling (and unpickling) is alternatively known as " "\"serialization\", \"marshalling,\" [#]_ or \"flattening\"; however, to " "avoid confusion, the terms used here are \"pickling\" and \"unpickling\"." msgstr "" -#: ../../library/pickle.rst:33 msgid "The ``pickle`` module **is not secure**. Only unpickle data you trust." msgstr "" -#: ../../library/pickle.rst:35 msgid "" "It is possible to construct malicious pickle data which will **execute " "arbitrary code during unpickling**. Never unpickle data that could have come " "from an untrusted source, or that could have been tampered with." msgstr "" -#: ../../library/pickle.rst:39 msgid "" "Consider signing data with :mod:`hmac` if you need to ensure that it has not " "been tampered with." msgstr "" -#: ../../library/pickle.rst:42 msgid "" "Safer serialization formats such as :mod:`json` may be more appropriate if " "you are processing untrusted data. See :ref:`comparison-with-json`." msgstr "" -#: ../../library/pickle.rst:47 msgid "Relationship to other Python modules" msgstr "" -#: ../../library/pickle.rst:50 msgid "Comparison with ``marshal``" msgstr "" -#: ../../library/pickle.rst:52 msgid "" "Python has a more primitive serialization module called :mod:`marshal`, but " "in general :mod:`pickle` should always be the preferred way to serialize " -"Python objects. :mod:`marshal` exists primarily to support " -"Python's :file:`.pyc` files." +"Python objects. :mod:`marshal` exists primarily to support Python's :file:`." +"pyc` files." msgstr "" -#: ../../library/pickle.rst:57 msgid "" "The :mod:`pickle` module differs from :mod:`marshal` in several significant " "ways:" msgstr "" -#: ../../library/pickle.rst:59 msgid "" "The :mod:`pickle` module keeps track of the objects it has already " "serialized, so that later references to the same object won't be serialized " "again. :mod:`marshal` doesn't do this." msgstr "" -#: ../../library/pickle.rst:63 msgid "" "This has implications both for recursive objects and object sharing. " "Recursive objects are objects that contain references to themselves. These " @@ -107,7 +94,6 @@ msgid "" "objects." msgstr "" -#: ../../library/pickle.rst:72 msgid "" ":mod:`marshal` cannot be used to serialize user-defined classes and their " "instances. :mod:`pickle` can save and restore class instances " @@ -115,72 +101,61 @@ msgid "" "the same module as when the object was stored." msgstr "" -#: ../../library/pickle.rst:77 msgid "" "The :mod:`marshal` serialization format is not guaranteed to be portable " -"across Python versions. Because its primary job in life is to " -"support :file:`.pyc` files, the Python implementers reserve the right to " -"change the serialization format in non-backwards compatible ways should the " -"need arise. The :mod:`pickle` serialization format is guaranteed to be " -"backwards compatible across Python releases provided a compatible pickle " -"protocol is chosen and pickling and unpickling code deals with Python 2 to " -"Python 3 type differences if your data is crossing that unique breaking " -"change language boundary." +"across Python versions. Because its primary job in life is to support :file:" +"`.pyc` files, the Python implementers reserve the right to change the " +"serialization format in non-backwards compatible ways should the need arise. " +"The :mod:`pickle` serialization format is guaranteed to be backwards " +"compatible across Python releases provided a compatible pickle protocol is " +"chosen and pickling and unpickling code deals with Python 2 to Python 3 type " +"differences if your data is crossing that unique breaking change language " +"boundary." msgstr "" -#: ../../library/pickle.rst:90 msgid "Comparison with ``json``" msgstr "" -#: ../../library/pickle.rst:92 msgid "" "There are fundamental differences between the pickle protocols and `JSON " "(JavaScript Object Notation) `_:" msgstr "" -#: ../../library/pickle.rst:95 msgid "" "JSON is a text serialization format (it outputs unicode text, although most " "of the time it is then encoded to ``utf-8``), while pickle is a binary " "serialization format;" msgstr "" -#: ../../library/pickle.rst:99 msgid "JSON is human-readable, while pickle is not;" msgstr "" -#: ../../library/pickle.rst:101 msgid "" "JSON is interoperable and widely used outside of the Python ecosystem, while " "pickle is Python-specific;" msgstr "" -#: ../../library/pickle.rst:104 msgid "" "JSON, by default, can only represent a subset of the Python built-in types, " "and no custom classes; pickle can represent an extremely large number of " "Python types (many of them automatically, by clever usage of Python's " -"introspection facilities; complex cases can be tackled by " -"implementing :ref:`specific object APIs `);" +"introspection facilities; complex cases can be tackled by implementing :ref:" +"`specific object APIs `);" msgstr "" -#: ../../library/pickle.rst:110 msgid "" "Unlike pickle, deserializing untrusted JSON does not in itself create an " "arbitrary code execution vulnerability." msgstr "" -#: ../../library/pickle.rst:114 msgid "" "The :mod:`json` module: a standard library module allowing JSON " "serialization and deserialization." msgstr "" -#: ../../library/pickle.rst:121 msgid "Data stream format" msgstr "" -#: ../../library/pickle.rst:126 msgid "" "The data format used by :mod:`pickle` is Python-specific. This has the " "advantage that there are no restrictions imposed by external standards such " @@ -188,62 +163,53 @@ msgid "" "Python programs may not be able to reconstruct pickled Python objects." msgstr "" -#: ../../library/pickle.rst:131 msgid "" "By default, the :mod:`pickle` data format uses a relatively compact binary " "representation. If you need optimal size characteristics, you can " "efficiently :doc:`compress ` pickled data." msgstr "" -#: ../../library/pickle.rst:135 msgid "" "The module :mod:`pickletools` contains tools for analyzing data streams " "generated by :mod:`pickle`. :mod:`pickletools` source code has extensive " "comments about opcodes used by pickle protocols." msgstr "" -#: ../../library/pickle.rst:139 msgid "" "There are currently 6 different protocols which can be used for pickling. " "The higher the protocol used, the more recent the version of Python needed " "to read the pickle produced." msgstr "" -#: ../../library/pickle.rst:143 msgid "" "Protocol version 0 is the original \"human-readable\" protocol and is " "backwards compatible with earlier versions of Python." msgstr "" -#: ../../library/pickle.rst:146 msgid "" "Protocol version 1 is an old binary format which is also compatible with " "earlier versions of Python." msgstr "" -#: ../../library/pickle.rst:149 msgid "" "Protocol version 2 was introduced in Python 2.3. It provides much more " "efficient pickling of :term:`new-style classes `. Refer " "to :pep:`307` for information about improvements brought by protocol 2." msgstr "" -#: ../../library/pickle.rst:153 msgid "" -"Protocol version 3 was added in Python 3.0. It has explicit support " -"for :class:`bytes` objects and cannot be unpickled by Python 2.x. This was " -"the default protocol in Python 3.0--3.7." +"Protocol version 3 was added in Python 3.0. It has explicit support for :" +"class:`bytes` objects and cannot be unpickled by Python 2.x. This was the " +"default protocol in Python 3.0--3.7." msgstr "" -#: ../../library/pickle.rst:157 msgid "" "Protocol version 4 was added in Python 3.4. It adds support for very large " "objects, pickling more kinds of objects, and some data format " -"optimizations. This was the default protocol in Python 3.8--3.13. Refer " -"to :pep:`3154` for information about improvements brought by protocol 4." +"optimizations. This was the default protocol in Python 3.8--3.13. Refer to :" +"pep:`3154` for information about improvements brought by protocol 4." msgstr "" -#: ../../library/pickle.rst:163 msgid "" "Protocol version 5 was added in Python 3.8. It adds support for out-of-band " "data and speedup for in-band data. It is the default protocol starting with " @@ -251,11 +217,10 @@ msgid "" "by protocol 5." msgstr "" -#: ../../library/pickle.rst:169 msgid "" -"Serialization is a more primitive notion than persistence; " -"although :mod:`pickle` reads and writes file objects, it does not handle the " -"issue of naming persistent objects, nor the (even more complicated) issue of " +"Serialization is a more primitive notion than persistence; although :mod:" +"`pickle` reads and writes file objects, it does not handle the issue of " +"naming persistent objects, nor the (even more complicated) issue of " "concurrent access to persistent objects. The :mod:`pickle` module can " "transform a complex object into a byte stream and it can transform the byte " "stream into an object with the same internal structure. Perhaps the most " @@ -265,171 +230,139 @@ msgid "" "and unpickle objects on DBM-style database files." msgstr "" -#: ../../library/pickle.rst:182 msgid "Module Interface" msgstr "" -#: ../../library/pickle.rst:184 msgid "" "To serialize an object hierarchy, you simply call the :func:`dumps` " -"function. Similarly, to de-serialize a data stream, you call " -"the :func:`loads` function. However, if you want more control over " -"serialization and de-serialization, you can create a :class:`Pickler` or " -"an :class:`Unpickler` object, respectively." +"function. Similarly, to de-serialize a data stream, you call the :func:" +"`loads` function. However, if you want more control over serialization and " +"de-serialization, you can create a :class:`Pickler` or an :class:`Unpickler` " +"object, respectively." msgstr "" -#: ../../library/pickle.rst:189 msgid "The :mod:`pickle` module provides the following constants:" msgstr "" -#: ../../library/pickle.rst:194 msgid "" "An integer, the highest :ref:`protocol version ` " -"available. This value can be passed as a *protocol* value to " -"functions :func:`dump` and :func:`dumps` as well as the :class:`Pickler` " -"constructor." +"available. This value can be passed as a *protocol* value to functions :" +"func:`dump` and :func:`dumps` as well as the :class:`Pickler` constructor." msgstr "" -#: ../../library/pickle.rst:201 msgid "" "An integer, the default :ref:`protocol version ` used for " "pickling. May be less than :data:`HIGHEST_PROTOCOL`. Currently the default " "protocol is 5, introduced in Python 3.8 and incompatible with previous " -"versions. This version introduces support for out-of-band buffers, " -"where :pep:`3118`-compatible data can be transmitted separately from the " -"main pickle stream." +"versions. This version introduces support for out-of-band buffers, where :" +"pep:`3118`-compatible data can be transmitted separately from the main " +"pickle stream." msgstr "" -#: ../../library/pickle.rst:210 msgid "The default protocol is 3." msgstr "" -#: ../../library/pickle.rst:214 msgid "The default protocol is 4." msgstr "" -#: ../../library/pickle.rst:218 msgid "The default protocol is 5." msgstr "" -#: ../../library/pickle.rst:220 msgid "" "The :mod:`pickle` module provides the following functions to make the " "pickling process more convenient:" msgstr "" -#: ../../library/pickle.rst:225 msgid "" "Write the pickled representation of the object *obj* to the open :term:`file " "object` *file*. This is equivalent to ``Pickler(file, protocol).dump(obj)``." msgstr "" -#: ../../library/pickle.rst:229 msgid "" "Arguments *file*, *protocol*, *fix_imports* and *buffer_callback* have the " "same meaning as in the :class:`Pickler` constructor." msgstr "" -#: ../../library/pickle.rst:232 ../../library/pickle.rst:243 -#: ../../library/pickle.rst:335 msgid "The *buffer_callback* argument was added." msgstr "" -#: ../../library/pickle.rst:237 msgid "" "Return the pickled representation of the object *obj* as a :class:`bytes` " "object, instead of writing it to a file." msgstr "" -#: ../../library/pickle.rst:240 msgid "" "Arguments *protocol*, *fix_imports* and *buffer_callback* have the same " "meaning as in the :class:`Pickler` constructor." msgstr "" -#: ../../library/pickle.rst:248 msgid "" "Read the pickled representation of an object from the open :term:`file " "object` *file* and return the reconstituted object hierarchy specified " "therein. This is equivalent to ``Unpickler(file).load()``." msgstr "" -#: ../../library/pickle.rst:252 ../../library/pickle.rst:267 msgid "" "The protocol version of the pickle is detected automatically, so no protocol " "argument is needed. Bytes past the pickled representation of the object are " "ignored." msgstr "" -#: ../../library/pickle.rst:256 msgid "" "Arguments *file*, *fix_imports*, *encoding*, *errors*, *strict* and " "*buffers* have the same meaning as in the :class:`Unpickler` constructor." msgstr "" -#: ../../library/pickle.rst:259 ../../library/pickle.rst:274 -#: ../../library/pickle.rst:449 msgid "The *buffers* argument was added." msgstr "" -#: ../../library/pickle.rst:264 msgid "" "Return the reconstituted object hierarchy of the pickled representation " "*data* of an object. *data* must be a :term:`bytes-like object`." msgstr "" -#: ../../library/pickle.rst:271 msgid "" "Arguments *fix_imports*, *encoding*, *errors*, *strict* and *buffers* have " "the same meaning as in the :class:`Unpickler` constructor." msgstr "" -#: ../../library/pickle.rst:278 msgid "The :mod:`pickle` module defines three exceptions:" msgstr "" -#: ../../library/pickle.rst:282 msgid "" -"Common base class for the other pickling exceptions. It inherits " -"from :exc:`Exception`." +"Common base class for the other pickling exceptions. It inherits from :exc:" +"`Exception`." msgstr "" -#: ../../library/pickle.rst:287 msgid "" "Error raised when an unpicklable object is encountered by :class:`Pickler`. " "It inherits from :exc:`PickleError`." msgstr "" -#: ../../library/pickle.rst:290 msgid "" "Refer to :ref:`pickle-picklable` to learn what kinds of objects can be " "pickled." msgstr "" -#: ../../library/pickle.rst:295 msgid "" "Error raised when there is a problem unpickling an object, such as a data " "corruption or a security violation. It inherits from :exc:`PickleError`." msgstr "" -#: ../../library/pickle.rst:298 msgid "" "Note that other exceptions may also be raised during unpickling, including " "(but not necessarily limited to) AttributeError, EOFError, ImportError, and " "IndexError." msgstr "" -#: ../../library/pickle.rst:303 msgid "" -"The :mod:`pickle` module exports three " -"classes, :class:`Pickler`, :class:`Unpickler` and :class:`PickleBuffer`:" +"The :mod:`pickle` module exports three classes, :class:`Pickler`, :class:" +"`Unpickler` and :class:`PickleBuffer`:" msgstr "" -#: ../../library/pickle.rst:308 msgid "This takes a binary file for writing a pickle data stream." msgstr "" -#: ../../library/pickle.rst:310 msgid "" "The optional *protocol* argument, an integer, tells the pickler to use the " "given protocol; supported protocols are 0 to :data:`HIGHEST_PROTOCOL`. If " @@ -437,28 +370,24 @@ msgid "" "number is specified, :data:`HIGHEST_PROTOCOL` is selected." msgstr "" -#: ../../library/pickle.rst:315 msgid "" "The *file* argument must have a write() method that accepts a single bytes " -"argument. It can thus be an on-disk file opened for binary writing, " -"an :class:`io.BytesIO` instance, or any other custom object that meets this " +"argument. It can thus be an on-disk file opened for binary writing, an :" +"class:`io.BytesIO` instance, or any other custom object that meets this " "interface." msgstr "" -#: ../../library/pickle.rst:320 msgid "" "If *fix_imports* is true and *protocol* is less than 3, pickle will try to " "map the new Python 3 names to the old module names used in Python 2, so that " "the pickle data stream is readable with Python 2." msgstr "" -#: ../../library/pickle.rst:324 msgid "" "If *buffer_callback* is ``None`` (the default), buffer views are serialized " "into *file* as part of the pickle stream." msgstr "" -#: ../../library/pickle.rst:327 msgid "" "If *buffer_callback* is not ``None``, then it can be called any number of " "times with a buffer view. If the callback returns a false value (such as " @@ -466,23 +395,19 @@ msgid "" "the buffer is serialized in-band, i.e. inside the pickle stream." msgstr "" -#: ../../library/pickle.rst:332 msgid "" "It is an error if *buffer_callback* is not ``None`` and *protocol* is " "``None`` or smaller than 5." msgstr "" -#: ../../library/pickle.rst:340 msgid "" "Write the pickled representation of *obj* to the open file object given in " "the constructor." msgstr "" -#: ../../library/pickle.rst:345 msgid "Do nothing by default. This exists so a subclass can override it." msgstr "" -#: ../../library/pickle.rst:347 msgid "" "If :meth:`persistent_id` returns ``None``, *obj* is pickled as usual. Any " "other value causes :class:`Pickler` to emit the returned value as a " @@ -491,17 +416,14 @@ msgid "" "by :meth:`persistent_id` cannot itself have a persistent ID." msgstr "" -#: ../../library/pickle.rst:353 ../../library/pickle.rst:467 msgid "See :ref:`pickle-persistent` for details and examples of uses." msgstr "" -#: ../../library/pickle.rst:355 msgid "" -"Add the default implementation of this method in the C implementation " -"of :class:`!Pickler`." +"Add the default implementation of this method in the C implementation of :" +"class:`!Pickler`." msgstr "" -#: ../../library/pickle.rst:361 msgid "" "A pickler object's dispatch table is a registry of *reduction functions* of " "the kind which can be declared using :func:`copyreg.pickle`. It is a " @@ -510,35 +432,30 @@ msgid "" "should conform to the same interface as a :meth:`~object.__reduce__` method." msgstr "" -#: ../../library/pickle.rst:369 msgid "" "By default, a pickler object will not have a :attr:`dispatch_table` " -"attribute, and it will instead use the global dispatch table managed by " -"the :mod:`copyreg` module. However, to customize the pickling for a specific " +"attribute, and it will instead use the global dispatch table managed by the :" +"mod:`copyreg` module. However, to customize the pickling for a specific " "pickler object one can set the :attr:`dispatch_table` attribute to a dict-" -"like object. Alternatively, if a subclass of :class:`Pickler` has " -"a :attr:`dispatch_table` attribute then this will be used as the default " -"dispatch table for instances of that class." +"like object. Alternatively, if a subclass of :class:`Pickler` has a :attr:" +"`dispatch_table` attribute then this will be used as the default dispatch " +"table for instances of that class." msgstr "" -#: ../../library/pickle.rst:378 msgid "See :ref:`pickle-dispatch` for usage examples." msgstr "" -#: ../../library/pickle.rst:384 msgid "" "Special reducer that can be defined in :class:`Pickler` subclasses. This " "method has priority over any reducer in the :attr:`dispatch_table`. It " "should conform to the same interface as a :meth:`~object.__reduce__` method, " -"and can optionally return :data:`NotImplemented` to fallback " -"on :attr:`dispatch_table`-registered reducers to pickle ``obj``." +"and can optionally return :data:`NotImplemented` to fallback on :attr:" +"`dispatch_table`-registered reducers to pickle ``obj``." msgstr "" -#: ../../library/pickle.rst:390 msgid "For a detailed example, see :ref:`reducer_override`." msgstr "" -#: ../../library/pickle.rst:396 msgid "" "Deprecated. Enable fast mode if set to a true value. The fast mode disables " "the usage of memo, therefore speeding the pickling process by not generating " @@ -546,42 +463,35 @@ msgid "" "objects, doing otherwise will cause :class:`Pickler` to recurse infinitely." msgstr "" -#: ../../library/pickle.rst:402 msgid "Use :func:`pickletools.optimize` if you need more compact pickles." msgstr "" -#: ../../library/pickle.rst:406 msgid "Clears the pickler's \"memo\"." msgstr "" -#: ../../library/pickle.rst:408 msgid "" "The memo is the data structure that remembers which objects the pickler has " "already seen, so that shared or recursive objects are pickled by reference " "and not by value. This method is useful when re-using picklers." msgstr "" -#: ../../library/pickle.rst:416 msgid "This takes a binary file for reading a pickle data stream." msgstr "" -#: ../../library/pickle.rst:418 msgid "" "The protocol version of the pickle is detected automatically, so no protocol " "argument is needed." msgstr "" -#: ../../library/pickle.rst:421 msgid "" "The argument *file* must have three methods, a read() method that takes an " "integer argument, a readinto() method that takes a buffer argument and a " -"readline() method that requires no arguments, as in " -"the :class:`io.BufferedIOBase` interface. Thus *file* can be an on-disk " -"file opened for binary reading, an :class:`io.BytesIO` object, or any other " -"custom object that meets this interface." +"readline() method that requires no arguments, as in the :class:`io." +"BufferedIOBase` interface. Thus *file* can be an on-disk file opened for " +"binary reading, an :class:`io.BytesIO` object, or any other custom object " +"that meets this interface." msgstr "" -#: ../../library/pickle.rst:428 msgid "" "The optional arguments *fix_imports*, *encoding* and *errors* are used to " "control compatibility support for pickle stream generated by Python 2. If " @@ -590,12 +500,11 @@ msgid "" "decode 8-bit string instances pickled by Python 2; these default to 'ASCII' " "and 'strict', respectively. The *encoding* can be 'bytes' to read these 8-" "bit string instances as bytes objects. Using ``encoding='latin1'`` is " -"required for unpickling NumPy arrays and instances " -"of :class:`~datetime.datetime`, :class:`~datetime.date` " -"and :class:`~datetime.time` pickled by Python 2." +"required for unpickling NumPy arrays and instances of :class:`~datetime." +"datetime`, :class:`~datetime.date` and :class:`~datetime.time` pickled by " +"Python 2." msgstr "" -#: ../../library/pickle.rst:439 msgid "" "If *buffers* is ``None`` (the default), then all data necessary for " "deserialization must be contained in the pickle stream. This means that the " @@ -603,7 +512,6 @@ msgid "" "instantiated (or when :func:`dump` or :func:`dumps` was called)." msgstr "" -#: ../../library/pickle.rst:444 msgid "" "If *buffers* is not ``None``, it should be an iterable of buffer-enabled " "objects that is consumed each time the pickle stream references an :ref:`out-" @@ -611,31 +519,26 @@ msgid "" "the *buffer_callback* of a Pickler object." msgstr "" -#: ../../library/pickle.rst:454 msgid "" "Read the pickled representation of an object from the open file object given " "in the constructor, and return the reconstituted object hierarchy specified " "therein. Bytes past the pickled representation of the object are ignored." msgstr "" -#: ../../library/pickle.rst:461 msgid "Raise an :exc:`UnpicklingError` by default." msgstr "" -#: ../../library/pickle.rst:463 msgid "" "If defined, :meth:`persistent_load` should return the object specified by " -"the persistent ID *pid*. If an invalid persistent ID is encountered, " -"an :exc:`UnpicklingError` should be raised." +"the persistent ID *pid*. If an invalid persistent ID is encountered, an :" +"exc:`UnpicklingError` should be raised." msgstr "" -#: ../../library/pickle.rst:469 msgid "" -"Add the default implementation of this method in the C implementation " -"of :class:`!Unpickler`." +"Add the default implementation of this method in the C implementation of :" +"class:`!Unpickler`." msgstr "" -#: ../../library/pickle.rst:475 msgid "" "Import *module* if necessary and return the object called *name* from it, " "where the *module* and *name* arguments are :class:`str` objects. Note, " @@ -643,41 +546,35 @@ msgid "" "functions." msgstr "" -#: ../../library/pickle.rst:480 msgid "" "Subclasses may override this to gain control over what type of objects and " -"how they can be loaded, potentially reducing security risks. Refer " -"to :ref:`pickle-restrict` for details." +"how they can be loaded, potentially reducing security risks. Refer to :ref:" +"`pickle-restrict` for details." msgstr "" -#: ../../library/pickle.rst:484 msgid "" "Raises an :ref:`auditing event ` ``pickle.find_class`` with " "arguments ``module``, ``name``." msgstr "" -#: ../../library/pickle.rst:488 msgid "" -"A wrapper for a buffer representing picklable data. *buffer* must be " -"a :ref:`buffer-providing ` object, such as a :term:`bytes-" -"like object` or a N-dimensional array." +"A wrapper for a buffer representing picklable data. *buffer* must be a :ref:" +"`buffer-providing ` object, such as a :term:`bytes-like " +"object` or a N-dimensional array." msgstr "" -#: ../../library/pickle.rst:492 msgid "" ":class:`PickleBuffer` is itself a buffer provider, therefore it is possible " -"to pass it to other APIs expecting a buffer-providing object, such " -"as :class:`memoryview`." +"to pass it to other APIs expecting a buffer-providing object, such as :class:" +"`memoryview`." msgstr "" -#: ../../library/pickle.rst:496 msgid "" ":class:`PickleBuffer` objects can only be serialized using pickle protocol 5 " "or higher. They are eligible for :ref:`out-of-band serialization `." msgstr "" -#: ../../library/pickle.rst:504 msgid "" "Return a :class:`memoryview` of the memory area underlying this buffer. The " "returned object is a one-dimensional, C-contiguous memoryview with format " @@ -685,76 +582,62 @@ msgid "" "neither C- nor Fortran-contiguous." msgstr "" -#: ../../library/pickle.rst:511 msgid "Release the underlying buffer exposed by the PickleBuffer object." msgstr "" -#: ../../library/pickle.rst:517 msgid "What can be pickled and unpickled?" msgstr "" -#: ../../library/pickle.rst:519 msgid "The following types can be pickled:" msgstr "" -#: ../../library/pickle.rst:521 msgid "" -"built-in constants (``None``, ``True``, ``False``, ``Ellipsis``, " -"and :data:`NotImplemented`);" +"built-in constants (``None``, ``True``, ``False``, ``Ellipsis``, and :data:" +"`NotImplemented`);" msgstr "" -#: ../../library/pickle.rst:524 msgid "integers, floating-point numbers, complex numbers;" msgstr "" -#: ../../library/pickle.rst:526 msgid "strings, bytes, bytearrays;" msgstr "" -#: ../../library/pickle.rst:528 msgid "" "tuples, lists, sets, and dictionaries containing only picklable objects;" msgstr "" -#: ../../library/pickle.rst:530 msgid "" "functions (built-in and user-defined) accessible from the top level of a " "module (using :keyword:`def`, not :keyword:`lambda`);" msgstr "" -#: ../../library/pickle.rst:533 msgid "classes accessible from the top level of a module;" msgstr "" -#: ../../library/pickle.rst:535 msgid "" -"instances of such classes whose the result of " -"calling :meth:`~object.__getstate__` is picklable (see section :ref:`pickle-" -"inst` for details)." +"instances of such classes whose the result of calling :meth:`~object." +"__getstate__` is picklable (see section :ref:`pickle-inst` for details)." msgstr "" -#: ../../library/pickle.rst:538 msgid "" "Attempts to pickle unpicklable objects will raise the :exc:`PicklingError` " "exception; when this happens, an unspecified number of bytes may have " "already been written to the underlying file. Trying to pickle a highly " -"recursive data structure may exceed the maximum recursion depth, " -"a :exc:`RecursionError` will be raised in this case. You can carefully " -"raise this limit with :func:`sys.setrecursionlimit`." +"recursive data structure may exceed the maximum recursion depth, a :exc:" +"`RecursionError` will be raised in this case. You can carefully raise this " +"limit with :func:`sys.setrecursionlimit`." msgstr "" -#: ../../library/pickle.rst:545 msgid "" -"Note that functions (built-in and user-defined) are pickled by " -"fully :term:`qualified name`, not by value. [#]_ This means that only the " -"function name is pickled, along with the name of the containing module and " -"classes. Neither the function's code, nor any of its function attributes " -"are pickled. Thus the defining module must be importable in the unpickling " +"Note that functions (built-in and user-defined) are pickled by fully :term:" +"`qualified name`, not by value. [#]_ This means that only the function name " +"is pickled, along with the name of the containing module and classes. " +"Neither the function's code, nor any of its function attributes are " +"pickled. Thus the defining module must be importable in the unpickling " "environment, and the module must contain the named object, otherwise an " "exception will be raised. [#]_" msgstr "" -#: ../../library/pickle.rst:552 msgid "" "Similarly, classes are pickled by fully qualified name, so the same " "restrictions in the unpickling environment apply. Note that none of the " @@ -762,7 +645,6 @@ msgid "" "attribute ``attr`` is not restored in the unpickling environment::" msgstr "" -#: ../../library/pickle.rst:557 msgid "" "class Foo:\n" " attr = 'A class attribute'\n" @@ -770,13 +652,11 @@ msgid "" "picklestring = pickle.dumps(Foo)" msgstr "" -#: ../../library/pickle.rst:562 msgid "" "These restrictions are why picklable functions and classes must be defined " "at the top level of a module." msgstr "" -#: ../../library/pickle.rst:565 msgid "" "Similarly, when class instances are pickled, their class's code and data are " "not pickled along with them. Only the instance data are pickled. This is " @@ -784,32 +664,27 @@ msgid "" "and still load objects that were created with an earlier version of the " "class. If you plan to have long-lived objects that will see many versions " "of a class, it may be worthwhile to put a version number in the objects so " -"that suitable conversions can be made by the " -"class's :meth:`~object.__setstate__` method." +"that suitable conversions can be made by the class's :meth:`~object." +"__setstate__` method." msgstr "" -#: ../../library/pickle.rst:577 msgid "Pickling Class Instances" msgstr "" -#: ../../library/pickle.rst:581 msgid "" "In this section, we describe the general mechanisms available to you to " "define, customize, and control how class instances are pickled and unpickled." msgstr "" -#: ../../library/pickle.rst:584 msgid "" "In most cases, no additional code is needed to make instances picklable. By " "default, pickle will retrieve the class and the attributes of an instance " -"via introspection. When a class instance is unpickled, " -"its :meth:`~object.__init__` method is usually *not* invoked. The default " -"behaviour first creates an uninitialized instance and then restores the " -"saved attributes. The following code shows an implementation of this " -"behaviour::" +"via introspection. When a class instance is unpickled, its :meth:`~object." +"__init__` method is usually *not* invoked. The default behaviour first " +"creates an uninitialized instance and then restores the saved attributes. " +"The following code shows an implementation of this behaviour::" msgstr "" -#: ../../library/pickle.rst:591 msgid "" "def save(obj):\n" " return (obj.__class__, obj.__dict__)\n" @@ -820,53 +695,45 @@ msgid "" " return obj" msgstr "" -#: ../../library/pickle.rst:599 msgid "" "Classes can alter the default behaviour by providing one or several special " "methods:" msgstr "" -#: ../../library/pickle.rst:604 msgid "" -"In protocols 2 and newer, classes that implements " -"the :meth:`__getnewargs_ex__` method can dictate the values passed to " -"the :meth:`__new__` method upon unpickling. The method must return a pair " -"``(args, kwargs)`` where *args* is a tuple of positional arguments and " -"*kwargs* a dictionary of named arguments for constructing the object. Those " -"will be passed to the :meth:`__new__` method upon unpickling." +"In protocols 2 and newer, classes that implements the :meth:" +"`__getnewargs_ex__` method can dictate the values passed to the :meth:" +"`__new__` method upon unpickling. The method must return a pair ``(args, " +"kwargs)`` where *args* is a tuple of positional arguments and *kwargs* a " +"dictionary of named arguments for constructing the object. Those will be " +"passed to the :meth:`__new__` method upon unpickling." msgstr "" -#: ../../library/pickle.rst:612 msgid "" "You should implement this method if the :meth:`__new__` method of your class " "requires keyword-only arguments. Otherwise, it is recommended for " "compatibility to implement :meth:`__getnewargs__`." msgstr "" -#: ../../library/pickle.rst:616 msgid ":meth:`__getnewargs_ex__` is now used in protocols 2 and 3." msgstr "" -#: ../../library/pickle.rst:622 msgid "" "This method serves a similar purpose as :meth:`__getnewargs_ex__`, but " "supports only positional arguments. It must return a tuple of arguments " "``args`` which will be passed to the :meth:`__new__` method upon unpickling." msgstr "" -#: ../../library/pickle.rst:626 msgid "" ":meth:`__getnewargs__` will not be called if :meth:`__getnewargs_ex__` is " "defined." msgstr "" -#: ../../library/pickle.rst:629 msgid "" -"Before Python 3.6, :meth:`__getnewargs__` was called instead " -"of :meth:`__getnewargs_ex__` in protocols 2 and 3." +"Before Python 3.6, :meth:`__getnewargs__` was called instead of :meth:" +"`__getnewargs_ex__` in protocols 2 and 3." msgstr "" -#: ../../library/pickle.rst:636 msgid "" "Classes can further influence how their instances are pickled by overriding " "the method :meth:`__getstate__`. It is called and the returned object is " @@ -874,41 +741,35 @@ msgid "" "are several cases:" msgstr "" -#: ../../library/pickle.rst:641 msgid "" -"For a class that has no instance :attr:`~object.__dict__` and " -"no :attr:`~object.__slots__`, the default state is ``None``." +"For a class that has no instance :attr:`~object.__dict__` and no :attr:" +"`~object.__slots__`, the default state is ``None``." msgstr "" -#: ../../library/pickle.rst:644 msgid "" -"For a class that has an instance :attr:`~object.__dict__` and " -"no :attr:`~object.__slots__`, the default state is ``self.__dict__``." +"For a class that has an instance :attr:`~object.__dict__` and no :attr:" +"`~object.__slots__`, the default state is ``self.__dict__``." msgstr "" -#: ../../library/pickle.rst:647 msgid "" -"For a class that has an instance :attr:`~object.__dict__` " -"and :attr:`~object.__slots__`, the default state is a tuple consisting of " -"two dictionaries: ``self.__dict__``, and a dictionary mapping slot names to " -"slot values. Only slots that have a value are included in the latter." +"For a class that has an instance :attr:`~object.__dict__` and :attr:`~object." +"__slots__`, the default state is a tuple consisting of two dictionaries: " +"``self.__dict__``, and a dictionary mapping slot names to slot values. Only " +"slots that have a value are included in the latter." msgstr "" -#: ../../library/pickle.rst:653 msgid "" -"For a class that has :attr:`~object.__slots__` and no " -"instance :attr:`~object.__dict__`, the default state is a tuple whose first " -"item is ``None`` and whose second item is a dictionary mapping slot names to " -"slot values described in the previous bullet." +"For a class that has :attr:`~object.__slots__` and no instance :attr:" +"`~object.__dict__`, the default state is a tuple whose first item is " +"``None`` and whose second item is a dictionary mapping slot names to slot " +"values described in the previous bullet." msgstr "" -#: ../../library/pickle.rst:658 msgid "" -"Added the default implementation of the ``__getstate__()`` method in " -"the :class:`object` class." +"Added the default implementation of the ``__getstate__()`` method in the :" +"class:`object` class." msgstr "" -#: ../../library/pickle.rst:665 msgid "" "Upon unpickling, if the class defines :meth:`__setstate__`, it is called " "with the unpickled state. In that case, there is no requirement for the " @@ -916,57 +777,49 @@ msgid "" "dictionary and its items are assigned to the new instance's dictionary." msgstr "" -#: ../../library/pickle.rst:672 msgid "" -"If :meth:`__reduce__` returns a state with value ``None`` at pickling, " -"the :meth:`__setstate__` method will not be called upon unpickling." +"If :meth:`__reduce__` returns a state with value ``None`` at pickling, the :" +"meth:`__setstate__` method will not be called upon unpickling." msgstr "" -#: ../../library/pickle.rst:676 msgid "" "Refer to the section :ref:`pickle-state` for more information about how to " -"use the methods :meth:`~object.__getstate__` " -"and :meth:`~object.__setstate__`." +"use the methods :meth:`~object.__getstate__` and :meth:`~object." +"__setstate__`." msgstr "" -#: ../../library/pickle.rst:681 msgid "" -"At unpickling time, some methods " -"like :meth:`~object.__getattr__`, :meth:`~object.__getattribute__`, " -"or :meth:`~object.__setattr__` may be called upon the instance. In case " -"those methods rely on some internal invariant being true, the type should " -"implement :meth:`~object.__new__` to establish such an invariant, " -"as :meth:`~object.__init__` is not called when unpickling an instance." +"At unpickling time, some methods like :meth:`~object.__getattr__`, :meth:" +"`~object.__getattribute__`, or :meth:`~object.__setattr__` may be called " +"upon the instance. In case those methods rely on some internal invariant " +"being true, the type should implement :meth:`~object.__new__` to establish " +"such an invariant, as :meth:`~object.__init__` is not called when unpickling " +"an instance." msgstr "" -#: ../../library/pickle.rst:690 msgid "" "As we shall see, pickle does not use directly the methods described above. " -"In fact, these methods are part of the copy protocol which implements " -"the :meth:`~object.__reduce__` special method. The copy protocol provides a " +"In fact, these methods are part of the copy protocol which implements the :" +"meth:`~object.__reduce__` special method. The copy protocol provides a " "unified interface for retrieving the data necessary for pickling and copying " "objects. [#]_" msgstr "" -#: ../../library/pickle.rst:696 msgid "" "Although powerful, implementing :meth:`~object.__reduce__` directly in your " "classes is error prone. For this reason, class designers should use the " -"high-level interface " -"(i.e., :meth:`~object.__getnewargs_ex__`, :meth:`~object.__getstate__` " -"and :meth:`~object.__setstate__`) whenever possible. We will show, however, " -"cases where using :meth:`!__reduce__` is the only option or leads to more " -"efficient pickling or both." +"high-level interface (i.e., :meth:`~object.__getnewargs_ex__`, :meth:" +"`~object.__getstate__` and :meth:`~object.__setstate__`) whenever possible. " +"We will show, however, cases where using :meth:`!__reduce__` is the only " +"option or leads to more efficient pickling or both." msgstr "" -#: ../../library/pickle.rst:705 msgid "" "The interface is currently defined as follows. The :meth:`__reduce__` " "method takes no argument and shall return either a string or preferably a " "tuple (the returned object is often referred to as the \"reduce value\")." msgstr "" -#: ../../library/pickle.rst:709 msgid "" "If a string is returned, the string should be interpreted as the name of a " "global variable. It should be the object's local name relative to its " @@ -974,46 +827,40 @@ msgid "" "object's module. This behaviour is typically useful for singletons." msgstr "" -#: ../../library/pickle.rst:714 msgid "" "When a tuple is returned, it must be between two and six items long. " "Optional items can either be omitted, or ``None`` can be provided as their " "value. The semantics of each item are in order:" msgstr "" -#: ../../library/pickle.rst:720 msgid "" "A callable object that will be called to create the initial version of the " "object." msgstr "" -#: ../../library/pickle.rst:723 msgid "" "A tuple of arguments for the callable object. An empty tuple must be given " "if the callable does not accept any argument." msgstr "" -#: ../../library/pickle.rst:726 msgid "" -"Optionally, the object's state, which will be passed to the " -"object's :meth:`__setstate__` method as previously described. If the object " -"has no such method then, the value must be a dictionary and it will be added " -"to the object's :attr:`~object.__dict__` attribute." +"Optionally, the object's state, which will be passed to the object's :meth:" +"`__setstate__` method as previously described. If the object has no such " +"method then, the value must be a dictionary and it will be added to the " +"object's :attr:`~object.__dict__` attribute." msgstr "" -#: ../../library/pickle.rst:731 msgid "" "Optionally, an iterator (and not a sequence) yielding successive items. " "These items will be appended to the object either using ``obj.append(item)`` " "or, in batch, using ``obj.extend(list_of_items)``. This is primarily used " -"for list subclasses, but may be used by other classes as long as they " -"have :ref:`append and extend methods ` with the appropriate " -"signature. (Whether :meth:`!append` or :meth:`!extend` is used depends on " -"which pickle protocol version is used as well as the number of items to " -"append, so both must be supported.)" +"for list subclasses, but may be used by other classes as long as they have :" +"meth:`~sequence.append` and :meth:`~sequence.extend` methods with the " +"appropriate signature. (Whether :meth:`!append` or :meth:`!extend` is used " +"depends on which pickle protocol version is used as well as the number of " +"items to append, so both must be supported.)" msgstr "" -#: ../../library/pickle.rst:741 msgid "" "Optionally, an iterator (not a sequence) yielding successive key-value " "pairs. These items will be stored to the object using ``obj[key] = " @@ -1021,35 +868,29 @@ msgid "" "by other classes as long as they implement :meth:`__setitem__`." msgstr "" -#: ../../library/pickle.rst:746 msgid "" "Optionally, a callable with a ``(obj, state)`` signature. This callable " "allows the user to programmatically control the state-updating behavior of a " "specific object, instead of using ``obj``'s static :meth:`__setstate__` " -"method. If not ``None``, this callable will have priority over " -"``obj``'s :meth:`__setstate__`." +"method. If not ``None``, this callable will have priority over ``obj``'s :" +"meth:`__setstate__`." msgstr "" -#: ../../library/pickle.rst:752 msgid "The optional sixth tuple item, ``(obj, state)``, was added." msgstr "" -#: ../../library/pickle.rst:758 msgid "" "Alternatively, a :meth:`__reduce_ex__` method may be defined. The only " "difference is this method should take a single integer argument, the " -"protocol version. When defined, pickle will prefer it over " -"the :meth:`__reduce__` method. In addition, :meth:`__reduce__` " -"automatically becomes a synonym for the extended version. The main use for " -"this method is to provide backwards-compatible reduce values for older " -"Python releases." +"protocol version. When defined, pickle will prefer it over the :meth:" +"`__reduce__` method. In addition, :meth:`__reduce__` automatically becomes " +"a synonym for the extended version. The main use for this method is to " +"provide backwards-compatible reduce values for older Python releases." msgstr "" -#: ../../library/pickle.rst:770 msgid "Persistence of External Objects" msgstr "" -#: ../../library/pickle.rst:776 msgid "" "For the benefit of object persistence, the :mod:`pickle` module supports the " "notion of a reference to an object outside the pickled data stream. Such " @@ -1058,15 +899,13 @@ msgid "" "(for any newer protocol)." msgstr "" -#: ../../library/pickle.rst:782 msgid "" "The resolution of such persistent IDs is not defined by the :mod:`pickle` " "module; it will delegate this resolution to the user-defined methods on the " -"pickler and unpickler, :meth:`~Pickler.persistent_id` " -"and :meth:`~Unpickler.persistent_load` respectively." +"pickler and unpickler, :meth:`~Pickler.persistent_id` and :meth:`~Unpickler." +"persistent_load` respectively." msgstr "" -#: ../../library/pickle.rst:787 msgid "" "To pickle objects that have an external persistent ID, the pickler must have " "a custom :meth:`~Pickler.persistent_id` method that takes an object as an " @@ -1077,20 +916,17 @@ msgid "" "persistent ID." msgstr "" -#: ../../library/pickle.rst:794 msgid "" -"To unpickle external objects, the unpickler must have a " -"custom :meth:`~Unpickler.persistent_load` method that takes a persistent ID " -"object and returns the referenced object." +"To unpickle external objects, the unpickler must have a custom :meth:" +"`~Unpickler.persistent_load` method that takes a persistent ID object and " +"returns the referenced object." msgstr "" -#: ../../library/pickle.rst:798 msgid "" "Here is a comprehensive example presenting how persistent ID can be used to " "pickle external objects by reference." msgstr "" -#: ../../library/pickle.rst:801 msgid "" "# Simple example presenting how persistent ID can be used to pickle\n" "# external objects by reference.\n" @@ -1153,8 +989,8 @@ msgid "" " # Initialize and populate our database.\n" " conn = sqlite3.connect(\":memory:\")\n" " cursor = conn.cursor()\n" -" cursor.execute(\"CREATE TABLE memos(key INTEGER PRIMARY KEY, task TEXT)" -"\")\n" +" cursor.execute(\"CREATE TABLE memos(key INTEGER PRIMARY KEY, task " +"TEXT)\")\n" " tasks = (\n" " 'give food to fish',\n" " 'prepare group meeting',\n" @@ -1188,29 +1024,24 @@ msgid "" " main()\n" msgstr "" -#: ../../library/pickle.rst:806 msgid "Dispatch Tables" msgstr "" -#: ../../library/pickle.rst:808 msgid "" "If one wants to customize pickling of some classes without disturbing any " "other code which depends on pickling, then one can create a pickler with a " "private dispatch table." msgstr "" -#: ../../library/pickle.rst:812 msgid "" "The global dispatch table managed by the :mod:`copyreg` module is available " "as :data:`!copyreg.dispatch_table`. Therefore, one may choose to use a " "modified copy of :data:`!copyreg.dispatch_table` as a private dispatch table." msgstr "" -#: ../../library/pickle.rst:817 msgid "For example ::" msgstr "" -#: ../../library/pickle.rst:819 msgid "" "f = io.BytesIO()\n" "p = pickle.Pickler(f)\n" @@ -1218,13 +1049,11 @@ msgid "" "p.dispatch_table[SomeClass] = reduce_SomeClass" msgstr "" -#: ../../library/pickle.rst:824 msgid "" "creates an instance of :class:`pickle.Pickler` with a private dispatch table " "which handles the ``SomeClass`` class specially. Alternatively, the code ::" msgstr "" -#: ../../library/pickle.rst:828 msgid "" "class MyPickler(pickle.Pickler):\n" " dispatch_table = copyreg.dispatch_table.copy()\n" @@ -1233,30 +1062,25 @@ msgid "" "p = MyPickler(f)" msgstr "" -#: ../../library/pickle.rst:834 msgid "" "does the same but all instances of ``MyPickler`` will by default share the " "private dispatch table. On the other hand, the code ::" msgstr "" -#: ../../library/pickle.rst:837 msgid "" "copyreg.pickle(SomeClass, reduce_SomeClass)\n" "f = io.BytesIO()\n" "p = pickle.Pickler(f)" msgstr "" -#: ../../library/pickle.rst:841 msgid "" "modifies the global dispatch table shared by all users of the :mod:`copyreg` " "module." msgstr "" -#: ../../library/pickle.rst:846 msgid "Handling Stateful Objects" msgstr "" -#: ../../library/pickle.rst:852 msgid "" "Here's an example that shows how to modify pickling behavior for a class. " "The :class:`!TextReader` class below opens a text file, and returns the line " @@ -1268,7 +1092,6 @@ msgid "" "behavior. ::" msgstr "" -#: ../../library/pickle.rst:860 msgid "" "class TextReader:\n" " \"\"\"Print and number lines in a text file.\"\"\"\n" @@ -1308,11 +1131,9 @@ msgid "" " self.file = file" msgstr "" -#: ../../library/pickle.rst:898 msgid "A sample usage might be something like this::" msgstr "" -#: ../../library/pickle.rst:900 msgid "" ">>> reader = TextReader(\"hello.txt\")\n" ">>> reader.readline()\n" @@ -1324,11 +1145,9 @@ msgid "" "'3: Goodbye!'" msgstr "" -#: ../../library/pickle.rst:912 msgid "Custom Reduction for Types, Functions, and Other Objects" msgstr "" -#: ../../library/pickle.rst:916 msgid "" "Sometimes, :attr:`~Pickler.dispatch_table` may not be flexible enough. In " "particular we may want to customize pickling based on another criterion than " @@ -1336,7 +1155,6 @@ msgid "" "classes." msgstr "" -#: ../../library/pickle.rst:921 msgid "" "For those cases, it is possible to subclass from the :class:`Pickler` class " "and implement a :meth:`~Pickler.reducer_override` method. This method can " @@ -1345,29 +1163,25 @@ msgid "" "behavior." msgstr "" -#: ../../library/pickle.rst:926 msgid "" -"If both the :attr:`~Pickler.dispatch_table` " -"and :meth:`~Pickler.reducer_override` are defined, " -"then :meth:`~Pickler.reducer_override` method takes priority." +"If both the :attr:`~Pickler.dispatch_table` and :meth:`~Pickler." +"reducer_override` are defined, then :meth:`~Pickler.reducer_override` method " +"takes priority." msgstr "" -#: ../../library/pickle.rst:931 msgid "" "For performance reasons, :meth:`~Pickler.reducer_override` may not be called " "for the following objects: ``None``, ``True``, ``False``, and exact " -"instances " -"of :class:`int`, :class:`float`, :class:`bytes`, :class:`str`, :class:`dict`, :class:`set`, :class:`frozenset`, :class:`list` " -"and :class:`tuple`." +"instances of :class:`int`, :class:`float`, :class:`bytes`, :class:`str`, :" +"class:`dict`, :class:`set`, :class:`frozenset`, :class:`list` and :class:" +"`tuple`." msgstr "" -#: ../../library/pickle.rst:937 msgid "" "Here is a simple example where we allow pickling and reconstructing a given " "class::" msgstr "" -#: ../../library/pickle.rst:940 msgid "" "import io\n" "import pickle\n" @@ -1398,11 +1212,9 @@ msgid "" "assert unpickled_class.my_attribute == 1" msgstr "" -#: ../../library/pickle.rst:972 msgid "Out-of-band Buffers" msgstr "" -#: ../../library/pickle.rst:976 msgid "" "In some contexts, the :mod:`pickle` module is used to transfer massive " "amounts of data. Therefore, it can be important to minimize the number of " @@ -1412,7 +1224,6 @@ msgid "" "involves copying data to and from the pickle stream." msgstr "" -#: ../../library/pickle.rst:983 msgid "" "This constraint can be eschewed if both the *provider* (the implementation " "of the object types to be transferred) and the *consumer* (the " @@ -1420,19 +1231,16 @@ msgid "" "transfer facilities provided by pickle protocol 5 and higher." msgstr "" -#: ../../library/pickle.rst:989 msgid "Provider API" msgstr "" -#: ../../library/pickle.rst:991 msgid "" -"The large data objects to be pickled must implement " -"a :meth:`~object.__reduce_ex__` method specialized for protocol 5 and " -"higher, which returns a :class:`PickleBuffer` instance (instead of e.g. " -"a :class:`bytes` object) for any large data." +"The large data objects to be pickled must implement a :meth:`~object." +"__reduce_ex__` method specialized for protocol 5 and higher, which returns " +"a :class:`PickleBuffer` instance (instead of e.g. a :class:`bytes` object) " +"for any large data." msgstr "" -#: ../../library/pickle.rst:996 msgid "" "A :class:`PickleBuffer` object *signals* that the underlying buffer is " "eligible for out-of-band data transfer. Those objects remain compatible " @@ -1441,38 +1249,32 @@ msgid "" "themselves." msgstr "" -#: ../../library/pickle.rst:1003 msgid "Consumer API" msgstr "" -#: ../../library/pickle.rst:1005 msgid "" -"A communications system can enable custom handling of " -"the :class:`PickleBuffer` objects generated when serializing an object graph." +"A communications system can enable custom handling of the :class:" +"`PickleBuffer` objects generated when serializing an object graph." msgstr "" -#: ../../library/pickle.rst:1008 msgid "" -"On the sending side, it needs to pass a *buffer_callback* argument " -"to :class:`Pickler` (or to the :func:`dump` or :func:`dumps` function), " -"which will be called with each :class:`PickleBuffer` generated while " -"pickling the object graph. Buffers accumulated by the *buffer_callback* " -"will not see their data copied into the pickle stream, only a cheap marker " -"will be inserted." +"On the sending side, it needs to pass a *buffer_callback* argument to :class:" +"`Pickler` (or to the :func:`dump` or :func:`dumps` function), which will be " +"called with each :class:`PickleBuffer` generated while pickling the object " +"graph. Buffers accumulated by the *buffer_callback* will not see their data " +"copied into the pickle stream, only a cheap marker will be inserted." msgstr "" -#: ../../library/pickle.rst:1015 msgid "" -"On the receiving side, it needs to pass a *buffers* argument " -"to :class:`Unpickler` (or to the :func:`load` or :func:`loads` function), " -"which is an iterable of the buffers which were passed to *buffer_callback*. " -"That iterable should produce buffers in the same order as they were passed " -"to *buffer_callback*. Those buffers will provide the data expected by the " -"reconstructors of the objects whose pickling produced the " -"original :class:`PickleBuffer` objects." +"On the receiving side, it needs to pass a *buffers* argument to :class:" +"`Unpickler` (or to the :func:`load` or :func:`loads` function), which is an " +"iterable of the buffers which were passed to *buffer_callback*. That " +"iterable should produce buffers in the same order as they were passed to " +"*buffer_callback*. Those buffers will provide the data expected by the " +"reconstructors of the objects whose pickling produced the original :class:" +"`PickleBuffer` objects." msgstr "" -#: ../../library/pickle.rst:1023 msgid "" "Between the sending side and the receiving side, the communications system " "is free to implement its own transfer mechanism for out-of-band buffers. " @@ -1480,17 +1282,14 @@ msgid "" "dependent compression." msgstr "" -#: ../../library/pickle.rst:1029 msgid "Example" msgstr "" -#: ../../library/pickle.rst:1031 msgid "" "Here is a trivial example where we implement a :class:`bytearray` subclass " "able to participate in out-of-band buffer pickling::" msgstr "" -#: ../../library/pickle.rst:1034 msgid "" "class ZeroCopyByteArray(bytearray):\n" "\n" @@ -1514,20 +1313,17 @@ msgid "" " return cls(obj)" msgstr "" -#: ../../library/pickle.rst:1055 msgid "" "The reconstructor (the ``_reconstruct`` class method) returns the buffer's " "providing object if it has the right type. This is an easy way to simulate " "zero-copy behaviour on this toy example." msgstr "" -#: ../../library/pickle.rst:1059 msgid "" "On the consumer side, we can pickle those objects the usual way, which when " "unserialized will give us a copy of the original object::" msgstr "" -#: ../../library/pickle.rst:1062 msgid "" "b = ZeroCopyByteArray(b\"abc\")\n" "data = pickle.dumps(b, protocol=5)\n" @@ -1536,13 +1332,11 @@ msgid "" "print(b is new_b) # False: a copy was made" msgstr "" -#: ../../library/pickle.rst:1068 msgid "" "But if we pass a *buffer_callback* and then give back the accumulated " "buffers when unserializing, we are able to get back the original object::" msgstr "" -#: ../../library/pickle.rst:1071 msgid "" "b = ZeroCopyByteArray(b\"abc\")\n" "buffers = []\n" @@ -1552,7 +1346,6 @@ msgid "" "print(b is new_b) # True: no copy was made" msgstr "" -#: ../../library/pickle.rst:1078 msgid "" "This example is limited by the fact that :class:`bytearray` allocates its " "own memory: you cannot create a :class:`bytearray` instance that is backed " @@ -1562,15 +1355,12 @@ msgid "" "processes or systems." msgstr "" -#: ../../library/pickle.rst:1085 msgid ":pep:`574` -- Pickle protocol 5 with out-of-band data" msgstr "" -#: ../../library/pickle.rst:1091 msgid "Restricting Globals" msgstr "" -#: ../../library/pickle.rst:1096 msgid "" "By default, unpickling will import any class or function that it finds in " "the pickle data. For many applications, this behaviour is unacceptable as " @@ -1578,7 +1368,6 @@ msgid "" "what this hand-crafted pickle data stream does when loaded::" msgstr "" -#: ../../library/pickle.rst:1101 msgid "" ">>> import pickle\n" ">>> pickle.loads(b\"cos\\nsystem\\n(S'echo hello world'\\ntR.\")\n" @@ -1586,7 +1375,6 @@ msgid "" "0" msgstr "" -#: ../../library/pickle.rst:1106 msgid "" "In this example, the unpickler imports the :func:`os.system` function and " "then apply the string argument \"echo hello world\". Although this example " @@ -1594,22 +1382,19 @@ msgid "" "system." msgstr "" -#: ../../library/pickle.rst:1110 msgid "" -"For this reason, you may want to control what gets unpickled by " -"customizing :meth:`Unpickler.find_class`. Unlike its name " -"suggests, :meth:`Unpickler.find_class` is called whenever a global (i.e., a " -"class or a function) is requested. Thus it is possible to either completely " -"forbid globals or restrict them to a safe subset." +"For this reason, you may want to control what gets unpickled by customizing :" +"meth:`Unpickler.find_class`. Unlike its name suggests, :meth:`Unpickler." +"find_class` is called whenever a global (i.e., a class or a function) is " +"requested. Thus it is possible to either completely forbid globals or " +"restrict them to a safe subset." msgstr "" -#: ../../library/pickle.rst:1116 msgid "" -"Here is an example of an unpickler allowing only few safe classes from " -"the :mod:`builtins` module to be loaded::" +"Here is an example of an unpickler allowing only few safe classes from the :" +"mod:`builtins` module to be loaded::" msgstr "" -#: ../../library/pickle.rst:1119 msgid "" "import builtins\n" "import io\n" @@ -1638,11 +1423,9 @@ msgid "" " return RestrictedUnpickler(io.BytesIO(s)).load()" msgstr "" -#: ../../library/pickle.rst:1145 msgid "A sample usage of our unpickler working as intended::" msgstr "" -#: ../../library/pickle.rst:1147 msgid "" ">>> restricted_loads(pickle.dumps([1, 2, range(15)]))\n" "[1, 2, range(0, 15)]\n" @@ -1658,7 +1441,6 @@ msgid "" "pickle.UnpicklingError: global 'builtins.eval' is forbidden" msgstr "" -#: ../../library/pickle.rst:1164 msgid "" "As our examples shows, you have to be careful with what you allow to be " "unpickled. Therefore if security is a concern, you may want to consider " @@ -1666,27 +1448,22 @@ msgid "" "party solutions." msgstr "" -#: ../../library/pickle.rst:1171 msgid "Performance" msgstr "" -#: ../../library/pickle.rst:1173 msgid "" "Recent versions of the pickle protocol (from protocol 2 and upwards) feature " "efficient binary encodings for several common features and built-in types. " "Also, the :mod:`pickle` module has a transparent optimizer written in C." msgstr "" -#: ../../library/pickle.rst:1181 msgid "Examples" msgstr "" -#: ../../library/pickle.rst:1183 msgid "" "For the simplest code, use the :func:`dump` and :func:`load` functions. ::" msgstr "" -#: ../../library/pickle.rst:1185 msgid "" "import pickle\n" "\n" @@ -1702,11 +1479,9 @@ msgid "" " pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)" msgstr "" -#: ../../library/pickle.rst:1199 msgid "The following example reads the resulting pickled data. ::" msgstr "" -#: ../../library/pickle.rst:1201 msgid "" "import pickle\n" "\n" @@ -1716,99 +1491,78 @@ msgid "" " data = pickle.load(f)" msgstr "" -#: ../../library/pickle.rst:1216 msgid "Command-line interface" msgstr "" -#: ../../library/pickle.rst:1218 msgid "" "The :mod:`pickle` module can be invoked as a script from the command line, " "it will display contents of the pickle files. However, when the pickle file " "that you want to examine comes from an untrusted source, ``-m pickletools`` " -"is a safer option because it does not execute pickle bytecode, " -"see :ref:`pickletools CLI usage `." +"is a safer option because it does not execute pickle bytecode, see :ref:" +"`pickletools CLI usage `." msgstr "" -#: ../../library/pickle.rst:1224 msgid "python -m pickle pickle_file [pickle_file ...]" msgstr "" -#: ../../library/pickle.rst:1228 msgid "The following option is accepted:" msgstr "" -#: ../../library/pickle.rst:1234 msgid "" "A pickle file to read, or ``-`` to indicate reading from standard input." msgstr "" -#: ../../library/pickle.rst:1239 msgid "Module :mod:`copyreg`" msgstr "" -#: ../../library/pickle.rst:1240 msgid "Pickle interface constructor registration for extension types." msgstr "" -#: ../../library/pickle.rst:1242 msgid "Module :mod:`pickletools`" msgstr "" -#: ../../library/pickle.rst:1243 msgid "Tools for working with and analyzing pickled data." msgstr "" -#: ../../library/pickle.rst:1245 msgid "Module :mod:`shelve`" msgstr "" -#: ../../library/pickle.rst:1246 msgid "Indexed databases of objects; uses :mod:`pickle`." msgstr "" -#: ../../library/pickle.rst:1248 msgid "Module :mod:`copy`" msgstr "" -#: ../../library/pickle.rst:1249 msgid "Shallow and deep object copying." msgstr "" -#: ../../library/pickle.rst:1251 msgid "Module :mod:`marshal`" msgstr "" -#: ../../library/pickle.rst:1252 msgid "High-performance serialization of built-in types." msgstr "" -#: ../../library/pickle.rst:1256 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/pickle.rst:1257 msgid "Don't confuse this with the :mod:`marshal` module" msgstr "" -#: ../../library/pickle.rst:1259 msgid "" "This is why :keyword:`lambda` functions cannot be pickled: all :keyword:`!" "lambda` functions share the same name: ````." msgstr "" -#: ../../library/pickle.rst:1262 msgid "" -"The exception raised will likely be an :exc:`ImportError` or " -"an :exc:`AttributeError` but it could be something else." +"The exception raised will likely be an :exc:`ImportError` or an :exc:" +"`AttributeError` but it could be something else." msgstr "" -#: ../../library/pickle.rst:1265 msgid "" "The :mod:`copy` module uses this protocol for shallow and deep copying " "operations." msgstr "" -#: ../../library/pickle.rst:1268 msgid "" "The limitation on alphanumeric characters is due to the fact that persistent " "IDs in protocol 0 are delimited by the newline character. Therefore if any " @@ -1816,62 +1570,47 @@ msgid "" "data will become unreadable." msgstr "" -#: ../../library/pickle.rst:12 msgid "persistence" msgstr "" -#: ../../library/pickle.rst:12 msgid "persistent" msgstr "" -#: ../../library/pickle.rst:12 msgid "objects" msgstr "" -#: ../../library/pickle.rst:12 msgid "serializing" msgstr "" -#: ../../library/pickle.rst:12 msgid "marshalling" msgstr "" -#: ../../library/pickle.rst:12 msgid "flattening" msgstr "" -#: ../../library/pickle.rst:12 msgid "pickling" msgstr "" -#: ../../library/pickle.rst:123 msgid "External Data Representation" msgstr "" -#: ../../library/pickle.rst:688 msgid "copy" msgstr "" -#: ../../library/pickle.rst:688 msgid "protocol" msgstr "" -#: ../../library/pickle.rst:772 msgid "persistent_id (pickle protocol)" msgstr "" -#: ../../library/pickle.rst:772 msgid "persistent_load (pickle protocol)" msgstr "" -#: ../../library/pickle.rst:848 msgid "__getstate__() (copy protocol)" msgstr "" -#: ../../library/pickle.rst:848 msgid "__setstate__() (copy protocol)" msgstr "" -#: ../../library/pickle.rst:1093 msgid "find_class() (pickle protocol)" msgstr "" diff --git a/library/pickletools.po b/library/pickletools.po index 09ade13..7b5ee3e 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,29 +18,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pickletools.rst:2 msgid ":mod:`!pickletools` --- Tools for pickle developers" msgstr "" -#: ../../library/pickletools.rst:8 msgid "**Source code:** :source:`Lib/pickletools.py`" msgstr "" -#: ../../library/pickletools.rst:13 msgid "" "This module contains various constants relating to the intimate details of " "the :mod:`pickle` module, some lengthy comments about the implementation, " "and a few useful functions for analyzing pickled data. The contents of this " -"module are useful for Python core developers who are working on " -"the :mod:`pickle`; ordinary users of the :mod:`pickle` module probably won't " -"find the :mod:`pickletools` module relevant." +"module are useful for Python core developers who are working on the :mod:" +"`pickle`; ordinary users of the :mod:`pickle` module probably won't find " +"the :mod:`pickletools` module relevant." msgstr "" -#: ../../library/pickletools.rst:23 msgid "Command-line usage" msgstr "" -#: ../../library/pickletools.rst:27 msgid "" "When invoked from the command line, ``python -m pickletools`` will " "disassemble the contents of one or more pickle files. Note that if you want " @@ -50,11 +45,9 @@ msgid "" "pickletools`` is a safer option because it does not execute pickle bytecode." msgstr "" -#: ../../library/pickletools.rst:35 msgid "For example, with a tuple ``(1, 2)`` pickled in file ``x.pickle``:" msgstr "" -#: ../../library/pickletools.rst:37 msgid "" "$ python -m pickle x.pickle\n" "(1, 2)\n" @@ -69,43 +62,34 @@ msgid "" "highest protocol among opcodes = 2" msgstr "" -#: ../../library/pickletools.rst:52 msgid "Command-line options" msgstr "" -#: ../../library/pickletools.rst:58 msgid "Annotate each line with a short opcode description." msgstr "" -#: ../../library/pickletools.rst:62 msgid "Name of a file where the output should be written." msgstr "" -#: ../../library/pickletools.rst:66 msgid "The number of blanks by which to indent a new MARK level." msgstr "" -#: ../../library/pickletools.rst:70 msgid "" "When multiple objects are disassembled, preserve memo between disassemblies." msgstr "" -#: ../../library/pickletools.rst:75 msgid "" "When more than one pickle file is specified, print given preamble before " "each disassembly." msgstr "" -#: ../../library/pickletools.rst:80 msgid "" "A pickle file to read, or ``-`` to indicate reading from standard input." msgstr "" -#: ../../library/pickletools.rst:85 msgid "Programmatic interface" msgstr "" -#: ../../library/pickletools.rst:90 msgid "" "Outputs a symbolic disassembly of the pickle to the file-like object *out*, " "defaulting to ``sys.stdout``. *pickle* can be a string or a file-like " @@ -118,11 +102,9 @@ msgid "" "where annotation should start." msgstr "" -#: ../../library/pickletools.rst:101 msgid "Added the *annotate* parameter." msgstr "" -#: ../../library/pickletools.rst:106 msgid "" "Provides an :term:`iterator` over all of the opcodes in a pickle, returning " "a sequence of ``(opcode, arg, pos)`` triples. *opcode* is an instance of " @@ -131,7 +113,6 @@ msgid "" "is located. *pickle* can be a string or a file-like object." msgstr "" -#: ../../library/pickletools.rst:114 msgid "" "Returns a new equivalent pickle string after eliminating unused ``PUT`` " "opcodes. The optimized pickle is shorter, takes less transmission time, " diff --git a/library/pipes.po b/library/pipes.po index ef887c7..b3cb604 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,22 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pipes.rst:2 msgid ":mod:`!pipes` --- Interface to shell pipelines" msgstr "" -#: ../../library/pipes.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/pipes.rst:14 msgid "Applications should use the :mod:`subprocess` module instead." msgstr "" -#: ../../library/pipes.rst:16 msgid "" "The last version of Python that provided the :mod:`!pipes` module was " "`Python 3.12 `_." diff --git a/library/pkgutil.po b/library/pkgutil.po index a7e4659..b09942b 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,168 +22,139 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pkgutil.rst:2 msgid ":mod:`!pkgutil` --- Package extension utility" msgstr "" -#: ../../library/pkgutil.rst:7 msgid "**Source code:** :source:`Lib/pkgutil.py`" msgstr "" -#: ../../library/pkgutil.rst:11 msgid "" "This module provides utilities for the import system, in particular package " "support." msgstr "" -#: ../../library/pkgutil.rst:16 msgid "A namedtuple that holds a brief summary of a module's info." msgstr "" -#: ../../library/pkgutil.rst:22 msgid "" "Extend the search path for the modules which comprise a package. Intended " "use is to place the following code in a package's :file:`__init__.py`::" msgstr "" -#: ../../library/pkgutil.rst:25 msgid "" "from pkgutil import extend_path\n" "__path__ = extend_path(__path__, __name__)" msgstr "" -#: ../../library/pkgutil.rst:28 msgid "" "For each directory on :data:`sys.path` that has a subdirectory that matches " -"the package name, add the subdirectory to the " -"package's :attr:`~module.__path__`. This is useful if one wants to " -"distribute different parts of a single logical package as multiple " -"directories." +"the package name, add the subdirectory to the package's :attr:`~module." +"__path__`. This is useful if one wants to distribute different parts of a " +"single logical package as multiple directories." msgstr "" -#: ../../library/pkgutil.rst:34 msgid "" "It also looks for :file:`\\*.pkg` files beginning where ``*`` matches the " -"*name* argument. This feature is similar to :file:`\\*.pth` files (see " -"the :mod:`site` module for more information), except that it doesn't special-" -"case lines starting with ``import``. A :file:`\\*.pkg` file is trusted at " -"face value: apart from skipping blank lines and ignoring comments, all " -"entries found in a :file:`\\*.pkg` file are added to the path, regardless of " -"whether they exist on the filesystem (this is a feature)." +"*name* argument. This feature is similar to :file:`\\*.pth` files (see the :" +"mod:`site` module for more information), except that it doesn't special-case " +"lines starting with ``import``. A :file:`\\*.pkg` file is trusted at face " +"value: apart from skipping blank lines and ignoring comments, all entries " +"found in a :file:`\\*.pkg` file are added to the path, regardless of whether " +"they exist on the filesystem (this is a feature)." msgstr "" -#: ../../library/pkgutil.rst:42 msgid "" "If the input path is not a list (as is the case for frozen packages) it is " "returned unchanged. The input path is not modified; an extended copy is " "returned. Items are only appended to the copy at the end." msgstr "" -#: ../../library/pkgutil.rst:46 msgid "" -"It is assumed that :data:`sys.path` is a sequence. Items " -"of :data:`sys.path` that are not strings referring to existing directories " -"are ignored. Unicode items on :data:`sys.path` that cause errors when used " -"as filenames may cause this function to raise an exception (in line " -"with :func:`os.path.isdir` behavior)." +"It is assumed that :data:`sys.path` is a sequence. Items of :data:`sys." +"path` that are not strings referring to existing directories are ignored. " +"Unicode items on :data:`sys.path` that cause errors when used as filenames " +"may cause this function to raise an exception (in line with :func:`os.path." +"isdir` behavior)." msgstr "" -#: ../../library/pkgutil.rst:55 msgid "Retrieve a :term:`finder` for the given *path_item*." msgstr "" -#: ../../library/pkgutil.rst:57 msgid "" "The returned finder is cached in :data:`sys.path_importer_cache` if it was " "newly created by a path hook." msgstr "" -#: ../../library/pkgutil.rst:60 msgid "" -"The cache (or part of it) can be cleared manually if a rescan " -"of :data:`sys.path_hooks` is necessary." +"The cache (or part of it) can be cleared manually if a rescan of :data:`sys." +"path_hooks` is necessary." msgstr "" -#: ../../library/pkgutil.rst:63 ../../library/pkgutil.rst:81 -#: ../../library/pkgutil.rst:102 ../../library/pkgutil.rst:141 msgid "" "Updated to be based directly on :mod:`importlib` rather than relying on the " "package internal :pep:`302` import emulation." msgstr "" -#: ../../library/pkgutil.rst:70 msgid "Yield :term:`finder` objects for the given module name." msgstr "" -#: ../../library/pkgutil.rst:72 msgid "" "If *fullname* contains a ``'.'``, the finders will be for the package " "containing *fullname*, otherwise they will be all registered top level " -"finders (i.e. those on both :data:`sys.meta_path` " -"and :data:`sys.path_hooks`)." +"finders (i.e. those on both :data:`sys.meta_path` and :data:`sys." +"path_hooks`)." msgstr "" -#: ../../library/pkgutil.rst:76 msgid "" "If the named module is in a package, that package is imported as a side " "effect of invoking this function." msgstr "" -#: ../../library/pkgutil.rst:79 msgid "If no module name is specified, all top level finders are produced." msgstr "" -#: ../../library/pkgutil.rst:88 msgid "" "Yields :class:`ModuleInfo` for all submodules on *path*, or, if *path* is " "``None``, all top-level modules on :data:`sys.path`." msgstr "" -#: ../../library/pkgutil.rst:91 ../../library/pkgutil.rst:112 msgid "" "*path* should be either ``None`` or a list of paths to look for modules in." msgstr "" -#: ../../library/pkgutil.rst:93 ../../library/pkgutil.rst:114 msgid "" "*prefix* is a string to output on the front of every module name on output." msgstr "" -#: ../../library/pkgutil.rst:97 ../../library/pkgutil.rst:136 msgid "" "Only works for a :term:`finder` which defines an ``iter_modules()`` method. " "This interface is non-standard, so the module also provides implementations " -"for :class:`importlib.machinery.FileFinder` " -"and :class:`zipimport.zipimporter`." +"for :class:`importlib.machinery.FileFinder` and :class:`zipimport." +"zipimporter`." msgstr "" -#: ../../library/pkgutil.rst:109 msgid "" "Yields :class:`ModuleInfo` for all modules recursively on *path*, or, if " "*path* is ``None``, all accessible modules." msgstr "" -#: ../../library/pkgutil.rst:116 msgid "" "Note that this function must import all *packages* (*not* all modules!) on " "the given *path*, in order to access the ``__path__`` attribute to find " "submodules." msgstr "" -#: ../../library/pkgutil.rst:120 msgid "" "*onerror* is a function which gets called with one argument (the name of the " "package which was being imported) if any exception occurs while trying to " -"import a package. If no *onerror* function is " -"supplied, :exc:`ImportError`\\s are caught and ignored, while all other " -"exceptions are propagated, terminating the search." +"import a package. If no *onerror* function is supplied, :exc:" +"`ImportError`\\s are caught and ignored, while all other exceptions are " +"propagated, terminating the search." msgstr "" -#: ../../library/pkgutil.rst:126 msgid "Examples::" msgstr "Példák::" -#: ../../library/pkgutil.rst:128 msgid "" "# list all modules python can access\n" "walk_packages()\n" @@ -192,75 +163,62 @@ msgid "" "walk_packages(ctypes.__path__, ctypes.__name__ + '.')" msgstr "" -#: ../../library/pkgutil.rst:148 msgid "Get a resource from a package." msgstr "" -#: ../../library/pkgutil.rst:150 msgid "" -"This is a wrapper for the :term:`loader` :meth:`get_data " -"` API. The *package* argument should " -"be the name of a package, in standard module format (``foo.bar``). The " -"*resource* argument should be in the form of a relative filename, using ``/" -"`` as the path separator. The parent directory name ``..`` is not allowed, " -"and nor is a rooted name (starting with a ``/``)." +"This is a wrapper for the :term:`loader` :meth:`get_data ` API. The *package* argument should be the name of " +"a package, in standard module format (``foo.bar``). The *resource* argument " +"should be in the form of a relative filename, using ``/`` as the path " +"separator. The parent directory name ``..`` is not allowed, and nor is a " +"rooted name (starting with a ``/``)." msgstr "" -#: ../../library/pkgutil.rst:157 msgid "" "The function returns a binary string that is the contents of the specified " "resource." msgstr "" -#: ../../library/pkgutil.rst:160 msgid "" "For packages located in the filesystem, which have already been imported, " "this is the rough equivalent of::" msgstr "" -#: ../../library/pkgutil.rst:163 msgid "" "d = os.path.dirname(sys.modules[package].__file__)\n" "data = open(os.path.join(d, resource), 'rb').read()" msgstr "" -#: ../../library/pkgutil.rst:166 msgid "" "If the package cannot be located or loaded, or it uses a :term:`loader` " -"which does not support :meth:`get_data " -"`, then ``None`` is returned. In " -"particular, the :term:`loader` for :term:`namespace packages ` does not support :meth:`get_data " -"`." +"which does not support :meth:`get_data `, then ``None`` is returned. In particular, the :term:`loader` " +"for :term:`namespace packages ` does not support :meth:" +"`get_data `." msgstr "" -#: ../../library/pkgutil.rst:175 msgid "Resolve a name to an object." msgstr "" -#: ../../library/pkgutil.rst:177 msgid "" -"This functionality is used in numerous places in the standard library " -"(see :issue:`12915`) - and equivalent functionality is also in widely used " -"third-party packages such as setuptools, Django and Pyramid." +"This functionality is used in numerous places in the standard library (see :" +"issue:`12915`) - and equivalent functionality is also in widely used third-" +"party packages such as setuptools, Django and Pyramid." msgstr "" -#: ../../library/pkgutil.rst:181 msgid "" "It is expected that *name* will be a string in one of the following formats, " "where W is shorthand for a valid Python identifier and dot stands for a " "literal period in these pseudo-regexes:" msgstr "" -#: ../../library/pkgutil.rst:185 msgid "``W(.W)*``" msgstr "" -#: ../../library/pkgutil.rst:186 msgid "``W(.W)*:(W(.W)*)?``" msgstr "" -#: ../../library/pkgutil.rst:188 msgid "" "The first form is intended for backward compatibility only. It assumes that " "some part of the dotted name is a package, and the rest is an object " @@ -270,7 +228,6 @@ msgid "" "form." msgstr "" -#: ../../library/pkgutil.rst:195 msgid "" "In the second form, the caller makes the division point clear through the " "provision of a single colon: the dotted name to the left of the colon is a " @@ -279,21 +236,17 @@ msgid "" "ends with the colon, then a module object is returned." msgstr "" -#: ../../library/pkgutil.rst:201 msgid "" "The function will return an object (which might be a module), or raise one " "of the following exceptions:" msgstr "" -#: ../../library/pkgutil.rst:204 msgid ":exc:`ValueError` -- if *name* isn't in a recognised format." msgstr "" -#: ../../library/pkgutil.rst:206 msgid ":exc:`ImportError` -- if an import failed when it shouldn't have." msgstr "" -#: ../../library/pkgutil.rst:208 msgid "" ":exc:`AttributeError` -- If a failure occurred when traversing the object " "hierarchy within the imported package to get to the desired object." diff --git a/library/platform.po b/library/platform.po index c569a9b..301283e 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,38 +18,31 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/platform.rst:2 msgid ":mod:`!platform` --- Access to underlying platform's identifying data" msgstr "" -#: ../../library/platform.rst:10 msgid "**Source code:** :source:`Lib/platform.py`" msgstr "" -#: ../../library/platform.rst:16 msgid "" "Specific platforms listed alphabetically, with Linux included in the Unix " "section." msgstr "" -#: ../../library/platform.rst:21 msgid "Cross platform" msgstr "" -#: ../../library/platform.rst:26 msgid "" "Queries the given executable (defaults to the Python interpreter binary) for " "various architecture information." msgstr "" -#: ../../library/platform.rst:29 msgid "" "Returns a tuple ``(bits, linkage)`` which contain information about the bit " "architecture and the linkage format used for the executable. Both values are " "returned as strings." msgstr "" -#: ../../library/platform.rst:33 msgid "" "Values that cannot be determined are returned as given by the parameter " "presets. If bits is given as ``''``, the ``sizeof(pointer)`` (or " @@ -57,7 +50,6 @@ msgid "" "supported pointer size." msgstr "" -#: ../../library/platform.rst:38 msgid "" "The function relies on the system's :file:`file` command to do the actual " "work. This is available on most if not all Unix platforms and some non-Unix " @@ -65,47 +57,39 @@ msgid "" "Reasonable defaults are used when the above needs are not met." msgstr "" -#: ../../library/platform.rst:45 msgid "" "On macOS (and perhaps other platforms), executable files may be universal " "files containing multiple architectures." msgstr "" -#: ../../library/platform.rst:48 msgid "" "To get at the \"64-bitness\" of the current interpreter, it is more reliable " "to query the :data:`sys.maxsize` attribute::" msgstr "" -#: ../../library/platform.rst:51 msgid "is_64bits = sys.maxsize > 2**32" msgstr "" -#: ../../library/platform.rst:56 msgid "" "Returns the machine type, e.g. ``'AMD64'``. An empty string is returned if " "the value cannot be determined." msgstr "" -#: ../../library/platform.rst:62 msgid "" "Returns the computer's network name (may not be fully qualified!). An empty " "string is returned if the value cannot be determined." msgstr "" -#: ../../library/platform.rst:68 msgid "" "Returns a single string identifying the underlying platform with as much " "useful information as possible." msgstr "" -#: ../../library/platform.rst:71 msgid "" "The output is intended to be *human readable* rather than machine parseable. " "It may look different on different platforms and this is intended." msgstr "" -#: ../../library/platform.rst:74 msgid "" "If *aliased* is true, the function will use aliases for various platforms " "that report system names which differ from their common names, for example " @@ -113,153 +97,129 @@ msgid "" "used to implement this." msgstr "" -#: ../../library/platform.rst:79 msgid "" "Setting *terse* to true causes the function to return only the absolute " "minimum information needed to identify the platform." msgstr "" -#: ../../library/platform.rst:82 msgid "" "On macOS, the function now uses :func:`mac_ver`, if it returns a non-empty " "release string, to get the macOS version rather than the darwin version." msgstr "" -#: ../../library/platform.rst:90 msgid "Returns the (real) processor name, e.g. ``'amdk6'``." msgstr "" -#: ../../library/platform.rst:92 msgid "" "An empty string is returned if the value cannot be determined. Note that " "many platforms do not provide this information or simply return the same " "value as for :func:`machine`. NetBSD does this." msgstr "" -#: ../../library/platform.rst:99 msgid "" "Returns a tuple ``(buildno, builddate)`` stating the Python build number and " "date as strings." msgstr "" -#: ../../library/platform.rst:105 msgid "Returns a string identifying the compiler used for compiling Python." msgstr "" -#: ../../library/platform.rst:110 msgid "Returns a string identifying the Python implementation SCM branch." msgstr "" -#: ../../library/platform.rst:115 msgid "" "Returns a string identifying the Python implementation. Possible return " "values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." msgstr "" -#: ../../library/platform.rst:121 msgid "Returns a string identifying the Python implementation SCM revision." msgstr "" -#: ../../library/platform.rst:126 msgid "Returns the Python version as string ``'major.minor.patchlevel'``." msgstr "" -#: ../../library/platform.rst:128 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to 0)." msgstr "" -#: ../../library/platform.rst:134 msgid "" "Returns the Python version as tuple ``(major, minor, patchlevel)`` of " "strings." msgstr "" -#: ../../library/platform.rst:136 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to ``'0'``)." msgstr "" -#: ../../library/platform.rst:142 msgid "" "Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'``. An empty string " "is returned if the value cannot be determined." msgstr "" -#: ../../library/platform.rst:148 msgid "" "Returns the system/OS name, such as ``'Linux'``, ``'Darwin'``, ``'Java'``, " "``'Windows'``. An empty string is returned if the value cannot be determined." msgstr "" -#: ../../library/platform.rst:151 msgid "" "On iOS and Android, this returns the user-facing OS name (i.e, ``'iOS``, " "``'iPadOS'`` or ``'Android'``). To obtain the kernel name (``'Darwin'`` or " "``'Linux'``), use :func:`os.uname`." msgstr "" -#: ../../library/platform.rst:157 msgid "" "Returns ``(system, release, version)`` aliased to common marketing names " "used for some systems. It also does some reordering of the information in " "some cases where it would otherwise cause confusion." msgstr "" -#: ../../library/platform.rst:164 msgid "" "Returns the system's release version, e.g. ``'#3 on degas'``. An empty " "string is returned if the value cannot be determined." msgstr "" -#: ../../library/platform.rst:167 msgid "" "On iOS and Android, this is the user-facing OS version. To obtain the Darwin " "or Linux kernel version, use :func:`os.uname`." msgstr "" -#: ../../library/platform.rst:172 msgid "" "Fairly portable uname interface. Returns a :func:`~collections.namedtuple` " -"containing six " -"attributes: :attr:`system`, :attr:`node`, :attr:`release`, :attr:`version`, :attr:`machine`, " -"and :attr:`processor`." +"containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :" +"attr:`version`, :attr:`machine`, and :attr:`processor`." msgstr "" -#: ../../library/platform.rst:176 msgid ":attr:`processor` is resolved late, on demand." msgstr "" -#: ../../library/platform.rst:178 msgid "" -"Note: the first two attribute names differ from the names presented " -"by :func:`os.uname`, where they are named :attr:`!sysname` and :attr:`!" -"nodename`." +"Note: the first two attribute names differ from the names presented by :func:" +"`os.uname`, where they are named :attr:`!sysname` and :attr:`!nodename`." msgstr "" -#: ../../library/platform.rst:182 msgid "Entries which cannot be determined are set to ``''``." msgstr "" -#: ../../library/platform.rst:184 msgid "Result changed from a tuple to a :func:`~collections.namedtuple`." msgstr "" -#: ../../library/platform.rst:187 msgid ":attr:`processor` is resolved late instead of immediately." msgstr "" -#: ../../library/platform.rst:192 +msgid "" +"Clear out the internal cache of information, such as the :func:`uname`. This " +"is typically useful when the platform's :func:`node` is changed by an " +"external process and one needs to retrieve the updated value." +msgstr "" + msgid "Java platform" msgstr "" -#: ../../library/platform.rst:197 msgid "Version interface for Jython." msgstr "" -#: ../../library/platform.rst:199 msgid "" "Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a " "tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple " @@ -267,17 +227,14 @@ msgid "" "set to the defaults given as parameters (which all default to ``''``)." msgstr "" -#: ../../library/platform.rst:204 msgid "" "It was largely untested, had a confusing API, and was only useful for Jython " "support." msgstr "" -#: ../../library/platform.rst:210 msgid "Windows platform" msgstr "" -#: ../../library/platform.rst:215 msgid "" "Get additional version information from the Windows Registry and return a " "tuple ``(release, version, csd, ptype)`` referring to OS release, version " @@ -286,16 +243,14 @@ msgid "" "parameters (which all default to an empty string)." msgstr "" -#: ../../library/platform.rst:221 msgid "" "As a hint: *ptype* is ``'Uniprocessor Free'`` on single processor NT " "machines and ``'Multiprocessor Free'`` on multi processor machines. The " "``'Free'`` refers to the OS version being free of debugging code. It could " -"also state ``'Checked'`` which means the OS version uses debugging code, " -"i.e. code that checks arguments, ranges, etc." +"also state ``'Checked'`` which means the OS version uses debugging code, i." +"e. code that checks arguments, ranges, etc." msgstr "" -#: ../../library/platform.rst:229 msgid "" "Returns a string representing the current Windows edition, or ``None`` if " "the value cannot be determined. Possible values include but are not limited " @@ -303,70 +258,57 @@ msgid "" "``'nanoserver'``." msgstr "" -#: ../../library/platform.rst:237 msgid "" "Return ``True`` if the Windows edition returned by :func:`win32_edition` is " "recognized as an IoT edition." msgstr "" -#: ../../library/platform.rst:244 msgid "macOS platform" msgstr "" -#: ../../library/platform.rst:248 msgid "" "Get macOS version information and return it as tuple ``(release, " "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " "dev_stage, non_release_version)``." msgstr "" -#: ../../library/platform.rst:252 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." msgstr "" -#: ../../library/platform.rst:256 msgid "iOS platform" msgstr "" -#: ../../library/platform.rst:260 msgid "" -"Get iOS version information and return it as " -"a :func:`~collections.namedtuple` with the following attributes:" +"Get iOS version information and return it as a :func:`~collections." +"namedtuple` with the following attributes:" msgstr "" -#: ../../library/platform.rst:263 msgid "``system`` is the OS name; either ``'iOS'`` or ``'iPadOS'``." msgstr "" -#: ../../library/platform.rst:264 msgid "``release`` is the iOS version number as a string (e.g., ``'17.2'``)." msgstr "" -#: ../../library/platform.rst:265 msgid "" "``model`` is the device model identifier; this will be a string like " "``'iPhone13,2'`` for a physical device, or ``'iPhone'`` on a simulator." msgstr "" -#: ../../library/platform.rst:267 msgid "" "``is_simulator`` is a boolean describing if the app is running on a " "simulator or a physical device." msgstr "" -#: ../../library/platform.rst:270 msgid "" "Entries which cannot be determined are set to the defaults given as " "parameters." msgstr "" -#: ../../library/platform.rst:275 msgid "Unix platforms" msgstr "" -#: ../../library/platform.rst:279 msgid "" "Tries to determine the libc version against which the file executable " "(defaults to the Python interpreter) is linked. Returns a tuple of strings " @@ -374,22 +316,18 @@ msgid "" "fails." msgstr "" -#: ../../library/platform.rst:283 msgid "" "Note that this function has intimate knowledge of how different libc " "versions add symbols to the executable is probably only usable for " "executables compiled using :program:`gcc`." msgstr "" -#: ../../library/platform.rst:287 msgid "The file is read and scanned in chunks of *chunksize* bytes." msgstr "" -#: ../../library/platform.rst:291 msgid "Linux platforms" msgstr "" -#: ../../library/platform.rst:295 msgid "" "Get operating system identification from ``os-release`` file and return it " "as a dict. The ``os-release`` file is a `freedesktop.org standard `__." msgstr "" -#: ../../library/platform.rst:347 msgid "" "``model`` - `Model name `__ – typically the marketing name or model number." msgstr "" -#: ../../library/platform.rst:351 msgid "" "``device`` - `Device name `__ – typically the model number or a codename." msgstr "" -#: ../../library/platform.rst:355 msgid "" "``is_emulator`` - ``True`` if the device is an emulator; ``False`` if it's a " "physical device." msgstr "" -#: ../../library/platform.rst:358 msgid "" -"Google maintains a `list of known model and device names `__." +"Google maintains a `list of known model and device names `__." msgstr "" -#: ../../library/platform.rst:366 msgid "Command-line usage" msgstr "" -#: ../../library/platform.rst:368 msgid "" ":mod:`platform` can also be invoked directly using the :option:`-m` switch " "of the interpreter::" msgstr "" -#: ../../library/platform.rst:371 msgid "python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]" msgstr "" -#: ../../library/platform.rst:373 msgid "The following options are accepted:" msgstr "" -#: ../../library/platform.rst:379 msgid "" -"Print terse information about the platform. This is equivalent to " -"calling :func:`platform.platform` with the *terse* argument set to ``True``." +"Print terse information about the platform. This is equivalent to calling :" +"func:`platform.platform` with the *terse* argument set to ``True``." msgstr "" -#: ../../library/platform.rst:384 msgid "" "Print platform information without system/OS name aliasing. This is " "equivalent to calling :func:`platform.platform` with the *aliased* argument " "set to ``True``." msgstr "" -#: ../../library/platform.rst:388 msgid "" "You can also pass one or more positional arguments (``terse``, " "``nonaliased``) to explicitly control the output format. These behave " "similarly to their corresponding options." msgstr "" - -#: ../../library/platform.rst:393 -msgid "Miscellaneous" -msgstr "" - -#: ../../library/platform.rst:397 -msgid "" -"Clear out the internal cache of information, such as the :func:`uname`. This " -"is typically useful when the platform's :func:`node` is changed by an " -"external process and one needs to retrieve the updated value." -msgstr "" diff --git a/library/plistlib.po b/library/plistlib.po index 8e68d67..2f2ced1 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,111 +18,90 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/plistlib.rst:2 msgid ":mod:`!plistlib` --- Generate and parse Apple ``.plist`` files" msgstr "" -#: ../../library/plistlib.rst:11 msgid "**Source code:** :source:`Lib/plistlib.py`" msgstr "" -#: ../../library/plistlib.rst:19 msgid "" "This module provides an interface for reading and writing the \"property " "list\" files used by Apple, primarily on macOS and iOS. This module supports " "both binary and XML plist files." msgstr "" -#: ../../library/plistlib.rst:23 msgid "" "The property list (``.plist``) file format is a simple serialization " "supporting basic object types, like dictionaries, lists, numbers and " "strings. Usually the top level object is a dictionary." msgstr "" -#: ../../library/plistlib.rst:27 msgid "" -"To write out and to parse a plist file, use the :func:`dump` " -"and :func:`load` functions." +"To write out and to parse a plist file, use the :func:`dump` and :func:" +"`load` functions." msgstr "" -#: ../../library/plistlib.rst:30 msgid "" -"To work with plist data in bytes or string objects, use :func:`dumps` " -"and :func:`loads`." +"To work with plist data in bytes or string objects, use :func:`dumps` and :" +"func:`loads`." msgstr "" -#: ../../library/plistlib.rst:33 msgid "" "Values can be strings, integers, floats, booleans, tuples, lists, " "dictionaries (but only with string keys), :class:`bytes`, :class:`bytearray` " "or :class:`datetime.datetime` objects." msgstr "" -#: ../../library/plistlib.rst:37 msgid "New API, old API deprecated. Support for binary format plists added." msgstr "" -#: ../../library/plistlib.rst:40 msgid "" "Support added for reading and writing :class:`UID` tokens in binary plists " "as used by NSKeyedArchiver and NSKeyedUnarchiver." msgstr "" -#: ../../library/plistlib.rst:44 msgid "Old API removed." msgstr "" -#: ../../library/plistlib.rst:49 msgid "" "`PList manual page `_" msgstr "" -#: ../../library/plistlib.rst:50 msgid "Apple's documentation of the file format." msgstr "" -#: ../../library/plistlib.rst:53 msgid "This module defines the following functions:" msgstr "" -#: ../../library/plistlib.rst:57 msgid "" "Read a plist file. *fp* should be a readable and binary file object. Return " "the unpacked root object (which usually is a dictionary)." msgstr "" -#: ../../library/plistlib.rst:61 msgid "The *fmt* is the format of the file and the following values are valid:" msgstr "" -#: ../../library/plistlib.rst:63 msgid ":data:`None`: Autodetect the file format" msgstr "" -#: ../../library/plistlib.rst:65 msgid ":data:`FMT_XML`: XML file format" msgstr "" -#: ../../library/plistlib.rst:67 msgid ":data:`FMT_BINARY`: Binary plist format" msgstr "" -#: ../../library/plistlib.rst:69 msgid "" "The *dict_type* is the type used for dictionaries that are read from the " "plist file." msgstr "" -#: ../../library/plistlib.rst:72 msgid "" "When *aware_datetime* is true, fields with type ``datetime.datetime`` will " "be created as :ref:`aware object `, with :attr:`!" "tzinfo` as :const:`datetime.UTC`." msgstr "" -#: ../../library/plistlib.rst:76 msgid "" "XML data for the :data:`FMT_XML` format is parsed using the Expat parser " "from :mod:`xml.parsers.expat` -- see its documentation for possible " @@ -130,126 +109,100 @@ msgid "" "the plist parser." msgstr "" -#: ../../library/plistlib.rst:81 msgid "" "The parser raises :exc:`InvalidFileException` when the file cannot be parsed." msgstr "" -#: ../../library/plistlib.rst:85 ../../library/plistlib.rst:130 msgid "The keyword-only parameter *aware_datetime* has been added." msgstr "" -#: ../../library/plistlib.rst:91 msgid "" "Load a plist from a bytes or string object. See :func:`load` for an " "explanation of the keyword arguments." msgstr "" -#: ../../library/plistlib.rst:96 msgid "*data* can be a string when *fmt* equals :data:`FMT_XML`." msgstr "" -#: ../../library/plistlib.rst:101 msgid "" "Write *value* to a plist file. *fp* should be a writable, binary file object." msgstr "" -#: ../../library/plistlib.rst:104 msgid "" "The *fmt* argument specifies the format of the plist file and can be one of " "the following values:" msgstr "" -#: ../../library/plistlib.rst:107 msgid ":data:`FMT_XML`: XML formatted plist file" msgstr "" -#: ../../library/plistlib.rst:109 msgid ":data:`FMT_BINARY`: Binary formatted plist file" msgstr "" -#: ../../library/plistlib.rst:111 msgid "" "When *sort_keys* is true (the default) the keys for dictionaries will be " "written to the plist in sorted order, otherwise they will be written in the " "iteration order of the dictionary." msgstr "" -#: ../../library/plistlib.rst:115 msgid "" "When *skipkeys* is false (the default) the function raises :exc:`TypeError` " "when a key of a dictionary is not a string, otherwise such keys are skipped." msgstr "" -#: ../../library/plistlib.rst:118 msgid "" "When *aware_datetime* is true and any field with type ``datetime.datetime`` " "is set as an :ref:`aware object `, it will convert to " "UTC timezone before writing it." msgstr "" -#: ../../library/plistlib.rst:122 msgid "" "A :exc:`TypeError` will be raised if the object is of an unsupported type or " "a container that contains objects of unsupported types." msgstr "" -#: ../../library/plistlib.rst:125 msgid "" "An :exc:`OverflowError` will be raised for integer values that cannot be " "represented in (binary) plist files." msgstr "" -#: ../../library/plistlib.rst:136 msgid "" -"Return *value* as a plist-formatted bytes object. See the documentation " -"for :func:`dump` for an explanation of the keyword arguments of this " -"function." +"Return *value* as a plist-formatted bytes object. See the documentation for :" +"func:`dump` for an explanation of the keyword arguments of this function." msgstr "" -#: ../../library/plistlib.rst:143 msgid "The following classes are available:" msgstr "" -#: ../../library/plistlib.rst:147 msgid "" "Wraps an :class:`int`. This is used when reading or writing NSKeyedArchiver " "encoded data, which contains UID (see PList manual)." msgstr "" -#: ../../library/plistlib.rst:152 msgid "Int value of the UID. It must be in the range ``0 <= data < 2**64``." msgstr "" -#: ../../library/plistlib.rst:157 msgid "The following constants are available:" msgstr "" -#: ../../library/plistlib.rst:161 msgid "The XML format for plist files." msgstr "" -#: ../../library/plistlib.rst:168 msgid "The binary format for plist files" msgstr "" -#: ../../library/plistlib.rst:173 msgid "The module defines the following exceptions:" msgstr "" -#: ../../library/plistlib.rst:177 msgid "Raised when a file cannot be parsed." msgstr "" -#: ../../library/plistlib.rst:183 msgid "Examples" msgstr "" -#: ../../library/plistlib.rst:185 msgid "Generating a plist::" msgstr "" -#: ../../library/plistlib.rst:187 msgid "" "import datetime\n" "import plistlib\n" @@ -272,11 +225,9 @@ msgid "" "print(plistlib.dumps(pl).decode())" msgstr "" -#: ../../library/plistlib.rst:207 msgid "Parsing a plist::" msgstr "" -#: ../../library/plistlib.rst:209 msgid "" "import plistlib\n" "\n" @@ -290,14 +241,11 @@ msgid "" "print(pl[\"foo\"])" msgstr "" -#: ../../library/plistlib.rst:13 msgid "plist" msgstr "" -#: ../../library/plistlib.rst:13 msgid "file" msgstr "" -#: ../../library/plistlib.rst:13 msgid "property list" msgstr "" diff --git a/library/poplib.po b/library/poplib.po index 90ef042..60f00b9 100644 --- a/library/poplib.po +++ b/library/poplib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,55 +18,45 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/poplib.rst:2 msgid ":mod:`!poplib` --- POP3 protocol client" msgstr "" -#: ../../library/poplib.rst:10 msgid "**Source code:** :source:`Lib/poplib.py`" msgstr "" -#: ../../library/poplib.rst:16 msgid "" "This module defines a class, :class:`POP3`, which encapsulates a connection " -"to a POP3 server and implements the protocol as defined in :rfc:`1939`. " -"The :class:`POP3` class supports both the minimal and optional command sets " -"from :rfc:`1939`. The :class:`POP3` class also supports the ``STLS`` command " +"to a POP3 server and implements the protocol as defined in :rfc:`1939`. The :" +"class:`POP3` class supports both the minimal and optional command sets from :" +"rfc:`1939`. The :class:`POP3` class also supports the ``STLS`` command " "introduced in :rfc:`2595` to enable encrypted communication on an already " "established connection." msgstr "" -#: ../../library/poplib.rst:22 msgid "" "Additionally, this module provides a class :class:`POP3_SSL`, which provides " "support for connecting to POP3 servers that use SSL as an underlying " "protocol layer." msgstr "" -#: ../../library/poplib.rst:26 msgid "" "Note that POP3, though widely supported, is obsolescent. The implementation " "quality of POP3 servers varies widely, and too many are quite poor. If your " -"mailserver supports IMAP, you would be better off using " -"the :class:`imaplib.IMAP4` class, as IMAP servers tend to be better " -"implemented." +"mailserver supports IMAP, you would be better off using the :class:`imaplib." +"IMAP4` class, as IMAP servers tend to be better implemented." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/poplib.rst:33 msgid "The :mod:`poplib` module provides two classes:" msgstr "" -#: ../../library/poplib.rst:38 msgid "" "This class implements the actual POP3 protocol. The connection is created " "when the instance is initialized. If *port* is omitted, the standard POP3 " @@ -75,27 +65,22 @@ msgid "" "timeout setting will be used)." msgstr "" -#: ../../library/poplib.rst:44 ../../library/poplib.rst:66 msgid "" "Raises an :ref:`auditing event ` ``poplib.connect`` with arguments " "``self``, ``host``, ``port``." msgstr "" -#: ../../library/poplib.rst:46 ../../library/poplib.rst:48 -#: ../../library/poplib.rst:68 ../../library/poplib.rst:70 msgid "" -"All commands will raise an :ref:`auditing event ` " -"``poplib.putline`` with arguments ``self`` and ``line``, where ``line`` is " -"the bytes about to be sent to the remote host." +"All commands will raise an :ref:`auditing event ` ``poplib." +"putline`` with arguments ``self`` and ``line``, where ``line`` is the bytes " +"about to be sent to the remote host." msgstr "" -#: ../../library/poplib.rst:52 ../../library/poplib.rst:82 msgid "" -"If the *timeout* parameter is set to be zero, it will raise " -"a :class:`ValueError` to prevent the creation of a non-blocking socket." +"If the *timeout* parameter is set to be zero, it will raise a :class:" +"`ValueError` to prevent the creation of a non-blocking socket." msgstr "" -#: ../../library/poplib.rst:58 msgid "" "This is a subclass of :class:`POP3` that connects to the server over an SSL " "encrypted socket. If *port* is not specified, 995, the standard POP3-over-" @@ -106,68 +91,54 @@ msgid "" "for best practices." msgstr "" -#: ../../library/poplib.rst:74 msgid "*context* parameter added." msgstr "" -#: ../../library/poplib.rst:77 msgid "" -"The class now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: ../../library/poplib.rst:86 msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -#: ../../library/poplib.rst:89 msgid "One exception is defined as an attribute of the :mod:`poplib` module:" msgstr "" -#: ../../library/poplib.rst:94 msgid "" "Exception raised on any errors from this module (errors from :mod:`socket` " "module are not caught). The reason for the exception is passed to the " "constructor as a string." msgstr "" -#: ../../library/poplib.rst:101 msgid "Module :mod:`imaplib`" msgstr "" -#: ../../library/poplib.rst:102 msgid "The standard Python IMAP module." msgstr "" -#: ../../library/poplib.rst:104 msgid "" "`Frequently Asked Questions About Fetchmail `_" msgstr "" -#: ../../library/poplib.rst:105 msgid "" "The FAQ for the :program:`fetchmail` POP/IMAP client collects information on " "POP3 server variations and RFC noncompliance that may be useful if you need " "to write an application based on the POP protocol." msgstr "" -#: ../../library/poplib.rst:113 msgid "POP3 Objects" msgstr "" -#: ../../library/poplib.rst:115 msgid "" "All POP3 commands are represented by methods of the same name, in lowercase; " "most return the response text sent by the server." msgstr "" -#: ../../library/poplib.rst:118 msgid "A :class:`POP3` instance has the following methods:" msgstr "" -#: ../../library/poplib.rst:123 msgid "" "Set the instance's debugging level. This controls the amount of debugging " "output printed. The default, ``0``, produces no debugging output. A value " @@ -177,81 +148,66 @@ msgid "" "connection." msgstr "" -#: ../../library/poplib.rst:132 msgid "Returns the greeting string sent by the POP3 server." msgstr "" -#: ../../library/poplib.rst:137 msgid "" "Query the server's capabilities as specified in :rfc:`2449`. Returns a " "dictionary in the form ``{'name': ['param'...]}``." msgstr "" -#: ../../library/poplib.rst:145 msgid "" "Send user command, response should indicate that a password is required." msgstr "" -#: ../../library/poplib.rst:150 msgid "" "Send password, response includes message count and mailbox size. Note: the " "mailbox on the server is locked until :meth:`~POP3.quit` is called." msgstr "" -#: ../../library/poplib.rst:156 msgid "Use the more secure APOP authentication to log into the POP3 server." msgstr "" -#: ../../library/poplib.rst:161 msgid "" "Use RPOP authentication (similar to UNIX r-commands) to log into POP3 server." msgstr "" -#: ../../library/poplib.rst:166 msgid "" "Get mailbox status. The result is a tuple of 2 integers: ``(message count, " "mailbox size)``." msgstr "" -#: ../../library/poplib.rst:172 msgid "" "Request message list, result is in the form ``(response, ['mesg_num " "octets', ...], octets)``. If *which* is set, it is the message to list." msgstr "" -#: ../../library/poplib.rst:178 msgid "" "Retrieve whole message number *which*, and set its seen flag. Result is in " "form ``(response, ['line', ...], octets)``." msgstr "" -#: ../../library/poplib.rst:184 msgid "" "Flag message number *which* for deletion. On most servers deletions are not " "actually performed until QUIT (the major exception is Eudora QPOP, which " "deliberately violates the RFCs by doing pending deletes on any disconnect)." msgstr "" -#: ../../library/poplib.rst:191 msgid "Remove any deletion marks for the mailbox." msgstr "" -#: ../../library/poplib.rst:196 msgid "Do nothing. Might be used as a keep-alive." msgstr "" -#: ../../library/poplib.rst:201 msgid "Signoff: commit changes, unlock mailbox, drop connection." msgstr "" -#: ../../library/poplib.rst:206 msgid "" "Retrieves the message header plus *howmuch* lines of the message after the " "header of message number *which*. Result is in form ``(response, " "['line', ...], octets)``." msgstr "" -#: ../../library/poplib.rst:210 msgid "" "The POP3 TOP command this method uses, unlike the RETR command, doesn't set " "the message's seen flag; unfortunately, TOP is poorly specified in the RFCs " @@ -259,26 +215,22 @@ msgid "" "against the POP3 servers you will use before trusting it." msgstr "" -#: ../../library/poplib.rst:218 msgid "" "Return message digest (unique id) list. If *which* is specified, result " "contains the unique id for that message in the form ``'response mesgnum " "uid``, otherwise result is list ``(response, ['mesgnum uid', ...], octets)``." msgstr "" -#: ../../library/poplib.rst:225 msgid "" "Try to switch to UTF-8 mode. Returns the server response if successful, " "raises :class:`error_proto` if not. Specified in :RFC:`6856`." msgstr "" -#: ../../library/poplib.rst:233 msgid "" "Start a TLS session on the active connection as specified in :rfc:`2595`. " "This is only allowed before user authentication" msgstr "" -#: ../../library/poplib.rst:236 msgid "" "*context* parameter is a :class:`ssl.SSLContext` object which allows " "bundling SSL configuration options, certificates and private keys into a " @@ -286,30 +238,24 @@ msgid "" "for best practices." msgstr "" -#: ../../library/poplib.rst:241 msgid "" -"This method supports hostname checking " -"via :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." +"This method supports hostname checking via :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: ../../library/poplib.rst:248 msgid "" "Instances of :class:`POP3_SSL` have no additional methods. The interface of " "this subclass is identical to its parent." msgstr "" -#: ../../library/poplib.rst:255 msgid "POP3 Example" msgstr "" -#: ../../library/poplib.rst:257 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" msgstr "" -#: ../../library/poplib.rst:260 msgid "" "import getpass, poplib\n" "\n" @@ -322,16 +268,13 @@ msgid "" " print(j)" msgstr "" -#: ../../library/poplib.rst:270 msgid "" "At the end of the module, there is a test section that contains a more " "extensive example of usage." msgstr "" -#: ../../library/poplib.rst:12 msgid "POP3" msgstr "" -#: ../../library/poplib.rst:12 msgid "protocol" msgstr "" diff --git a/library/posix.po b/library/posix.po index 56cead9..f39129d 100644 --- a/library/posix.po +++ b/library/posix.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,54 +18,46 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/posix.rst:2 msgid ":mod:`!posix` --- The most common POSIX system calls" msgstr "" -#: ../../library/posix.rst:10 msgid "" "This module provides access to operating system functionality that is " "standardized by the C Standard and the POSIX standard (a thinly disguised " "Unix interface)." msgstr "" -#: ../../library/posix.rst:14 msgid "Availability" msgstr "" -#: ../../library/posix.rst:18 msgid "" -"**Do not import this module directly.** Instead, import the " -"module :mod:`os`, which provides a *portable* version of this interface. On " -"Unix, the :mod:`os` module provides a superset of the :mod:`posix` " -"interface. On non-Unix operating systems the :mod:`posix` module is not " -"available, but a subset is always available through the :mod:`os` " -"interface. Once :mod:`os` is imported, there is *no* performance penalty in " -"using it instead of :mod:`posix`. In addition, :mod:`os` provides some " -"additional functionality, such as automatically calling :func:`~os.putenv` " -"when an entry in ``os.environ`` is changed." -msgstr "" - -#: ../../library/posix.rst:27 +"**Do not import this module directly.** Instead, import the module :mod:" +"`os`, which provides a *portable* version of this interface. On Unix, the :" +"mod:`os` module provides a superset of the :mod:`posix` interface. On non-" +"Unix operating systems the :mod:`posix` module is not available, but a " +"subset is always available through the :mod:`os` interface. Once :mod:`os` " +"is imported, there is *no* performance penalty in using it instead of :mod:" +"`posix`. In addition, :mod:`os` provides some additional functionality, " +"such as automatically calling :func:`~os.putenv` when an entry in ``os." +"environ`` is changed." +msgstr "" + msgid "" "Errors are reported as exceptions; the usual exceptions are given for type " "errors, while errors reported by the system calls raise :exc:`OSError`." msgstr "" -#: ../../library/posix.rst:34 msgid "Large File Support" msgstr "" -#: ../../library/posix.rst:42 msgid "" "Several operating systems (including AIX and Solaris) provide support for " -"files that are larger than 2 GiB from a C programming model " -"where :c:expr:`int` and :c:expr:`long` are 32-bit values. This is typically " -"accomplished by defining the relevant size and offset types as 64-bit " -"values. Such files are sometimes referred to as :dfn:`large files`." +"files that are larger than 2 GiB from a C programming model where :c:expr:" +"`int` and :c:expr:`long` are 32-bit values. This is typically accomplished " +"by defining the relevant size and offset types as 64-bit values. Such files " +"are sometimes referred to as :dfn:`large files`." msgstr "" -#: ../../library/posix.rst:48 msgid "" "Large file support is enabled in Python when the size of an :c:type:`off_t` " "is larger than a :c:expr:`long` and the :c:expr:`long long` is at least as " @@ -74,34 +66,28 @@ msgid "" "Solaris 2.6 and 2.7 you need to do something like::" msgstr "" -#: ../../library/posix.rst:55 msgid "" "CFLAGS=\"`getconf LFS_CFLAGS`\" OPT=\"-g -O2 $CFLAGS\" \\\n" " ./configure" msgstr "" -#: ../../library/posix.rst:58 msgid "On large-file-capable Linux systems, this might work::" msgstr "" -#: ../../library/posix.rst:60 msgid "" "CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT=\"-g -O2 $CFLAGS\" " "\\\n" " ./configure" msgstr "" -#: ../../library/posix.rst:67 msgid "Notable Module Contents" msgstr "" -#: ../../library/posix.rst:69 msgid "" "In addition to many functions described in the :mod:`os` module " "documentation, :mod:`posix` defines the following data item:" msgstr "" -#: ../../library/posix.rst:74 msgid "" "A dictionary representing the string environment at the time the interpreter " "was started. Keys and values are bytes on Unix and str on Windows. For " @@ -109,40 +95,33 @@ msgid "" "pathname of your home directory, equivalent to ``getenv(\"HOME\")`` in C." msgstr "" -#: ../../library/posix.rst:79 msgid "" "Modifying this dictionary does not affect the string environment passed on " "by :func:`~os.execv`, :func:`~os.popen` or :func:`~os.system`; if you need " "to change the environment, pass ``environ`` to :func:`~os.execve` or add " -"variable assignments and export statements to the command string " -"for :func:`~os.system` or :func:`~os.popen`." +"variable assignments and export statements to the command string for :func:" +"`~os.system` or :func:`~os.popen`." msgstr "" -#: ../../library/posix.rst:85 msgid "On Unix, keys and values are bytes." msgstr "" -#: ../../library/posix.rst:90 msgid "" "The :mod:`os` module provides an alternate implementation of ``environ`` " -"which updates the environment on modification. Note also that " -"updating :data:`os.environ` will render this dictionary obsolete. Use of " -"the :mod:`os` module version of this is recommended over direct access to " -"the :mod:`posix` module." +"which updates the environment on modification. Note also that updating :data:" +"`os.environ` will render this dictionary obsolete. Use of the :mod:`os` " +"module version of this is recommended over direct access to the :mod:`posix` " +"module." msgstr "" -#: ../../library/posix.rst:16 msgid "module" msgstr "" -#: ../../library/posix.rst:16 msgid "os" msgstr "" -#: ../../library/posix.rst:36 msgid "large files" msgstr "" -#: ../../library/posix.rst:36 msgid "file" msgstr "" diff --git a/library/pprint.po b/library/pprint.po index b8e1edf..439b024 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pprint.rst:2 msgid ":mod:`!pprint` --- Data pretty printer" msgstr "" -#: ../../library/pprint.rst:10 msgid "**Source code:** :source:`Lib/pprint.py`" msgstr "" -#: ../../library/pprint.rst:14 msgid "" "The :mod:`pprint` module provides a capability to \"pretty-print\" arbitrary " "Python data structures in a form which can be used as input to the " @@ -36,64 +33,51 @@ msgid "" "well as many other objects which are not representable as Python literals." msgstr "" -#: ../../library/pprint.rst:21 msgid "" "The formatted representation keeps objects on a single line if it can, and " "breaks them onto multiple lines if they don't fit within the allowed width, " "adjustable by the *width* parameter defaulting to 80 characters." msgstr "" -#: ../../library/pprint.rst:25 msgid "Dictionaries are sorted by key before the display is computed." msgstr "" -#: ../../library/pprint.rst:27 msgid "Added support for pretty-printing :class:`types.SimpleNamespace`." msgstr "" -#: ../../library/pprint.rst:30 msgid "Added support for pretty-printing :class:`dataclasses.dataclass`." msgstr "" -#: ../../library/pprint.rst:36 msgid "Functions" msgstr "" -#: ../../library/pprint.rst:41 msgid "" "Prints the formatted representation of *object*, followed by a newline. This " -"function may be used in the interactive interpreter instead of " -"the :func:`print` function for inspecting values. Tip: you can reassign " -"``print = pprint.pp`` for use within a scope." +"function may be used in the interactive interpreter instead of the :func:" +"`print` function for inspecting values. Tip: you can reassign ``print = " +"pprint.pp`` for use within a scope." msgstr "" -#: ../../library/pprint.rst:0 msgid "Parameters" msgstr "" -#: ../../library/pprint.rst:46 msgid "The object to be printed." msgstr "" -#: ../../library/pprint.rst:49 msgid "" -"A file-like object to which the output will be written by calling " -"its :meth:`!write` method. If ``None`` (the default), :data:`sys.stdout` is " -"used." +"A file-like object to which the output will be written by calling its :meth:" +"`!write` method. If ``None`` (the default), :data:`sys.stdout` is used." msgstr "" -#: ../../library/pprint.rst:55 msgid "The amount of indentation added for each nesting level." msgstr "" -#: ../../library/pprint.rst:58 msgid "" "The desired maximum number of characters per line in the output. If a " "structure cannot be formatted within the width constraint, a best effort " "will be made." msgstr "" -#: ../../library/pprint.rst:63 msgid "" "The number of nesting levels which may be printed. If the data structure " "being printed is too deep, the next contained level is replaced by ``...``. " @@ -101,7 +85,6 @@ msgid "" "objects being formatted." msgstr "" -#: ../../library/pprint.rst:71 msgid "" "Control the way long :term:`sequences ` are formatted. If " "``False`` (the default), each item of a sequence will be formatted on a " @@ -109,26 +92,22 @@ msgid "" "be formatted on each output line." msgstr "" -#: ../../library/pprint.rst:78 msgid "" "If ``True``, dictionaries will be formatted with their keys sorted, " "otherwise they will be displayed in insertion order (the default)." msgstr "" -#: ../../library/pprint.rst:83 msgid "" "If ``True``, integers will be formatted with the ``_`` character for a " "thousands separator, otherwise underscores are not displayed (the default)." msgstr "" -#: ../../library/pprint.rst:105 msgid "" "Alias for :func:`~pprint.pp` with *sort_dicts* set to ``True`` by default, " "which would automatically sort the dictionaries' keys, you might want to " "use :func:`~pprint.pp` instead where it is ``False`` by default." msgstr "" -#: ../../library/pprint.rst:113 msgid "" "Return the formatted representation of *object* as a string. *indent*, " "*width*, *depth*, *compact*, *sort_dicts* and *underscore_numbers* are " @@ -136,78 +115,63 @@ msgid "" "and their meanings are as described in the documentation above." msgstr "" -#: ../../library/pprint.rst:123 msgid "" "Determine if the formatted representation of *object* is \"readable\", or " "can be used to reconstruct the value using :func:`eval`. This always " "returns ``False`` for recursive objects." msgstr "" -#: ../../library/pprint.rst:133 msgid "" "Determine if *object* requires a recursive representation. This function is " "subject to the same limitations as noted in :func:`saferepr` below and may " "raise an :exc:`RecursionError` if it fails to detect a recursive object." msgstr "" -#: ../../library/pprint.rst:140 msgid "" "Return a string representation of *object*, protected against recursion in " -"some common data structures, namely instances " -"of :class:`dict`, :class:`list` and :class:`tuple` or subclasses whose " -"``__repr__`` has not been overridden. If the representation of object " -"exposes a recursive entry, the recursive reference will be represented as " -"````. The representation is not " -"otherwise formatted." +"some common data structures, namely instances of :class:`dict`, :class:" +"`list` and :class:`tuple` or subclasses whose ``__repr__`` has not been " +"overridden. If the representation of object exposes a recursive entry, the " +"recursive reference will be represented as ````. The representation is not otherwise formatted." msgstr "" -#: ../../library/pprint.rst:153 msgid "PrettyPrinter Objects" msgstr "" -#: ../../library/pprint.rst:160 msgid "Construct a :class:`PrettyPrinter` instance." msgstr "" -#: ../../library/pprint.rst:162 msgid "" "Arguments have the same meaning as for :func:`~pprint.pp`. Note that they " "are in a different order, and that *sort_dicts* defaults to ``True``." msgstr "" -#: ../../library/pprint.rst:189 msgid "Added the *compact* parameter." msgstr "" -#: ../../library/pprint.rst:192 msgid "Added the *sort_dicts* parameter." msgstr "" -#: ../../library/pprint.rst:195 msgid "Added the *underscore_numbers* parameter." msgstr "" -#: ../../library/pprint.rst:198 msgid "No longer attempts to write to :data:`!sys.stdout` if it is ``None``." msgstr "" -#: ../../library/pprint.rst:202 msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" -#: ../../library/pprint.rst:207 msgid "" "Return the formatted representation of *object*. This takes into account " "the options passed to the :class:`PrettyPrinter` constructor." msgstr "" -#: ../../library/pprint.rst:213 msgid "" "Print the formatted representation of *object* on the configured stream, " "followed by a newline." msgstr "" -#: ../../library/pprint.rst:216 msgid "" "The following methods provide the implementations for the corresponding " "functions of the same names. Using these methods on an instance is slightly " @@ -215,27 +179,23 @@ msgid "" "created." msgstr "" -#: ../../library/pprint.rst:226 msgid "" "Determine if the formatted representation of the object is \"readable,\" or " "can be used to reconstruct the value using :func:`eval`. Note that this " -"returns ``False`` for recursive objects. If the *depth* parameter of " -"the :class:`PrettyPrinter` is set and the object is deeper than allowed, " -"this returns ``False``." +"returns ``False`` for recursive objects. If the *depth* parameter of the :" +"class:`PrettyPrinter` is set and the object is deeper than allowed, this " +"returns ``False``." msgstr "" -#: ../../library/pprint.rst:235 msgid "Determine if the object requires a recursive representation." msgstr "" -#: ../../library/pprint.rst:237 msgid "" "This method is provided as a hook to allow subclasses to modify the way " "objects are converted to strings. The default implementation uses the " "internals of the :func:`saferepr` implementation." msgstr "" -#: ../../library/pprint.rst:244 msgid "" "Returns three values: the formatted version of *object* as a string, a flag " "indicating whether the result is readable, and a flag indicating whether " @@ -253,18 +213,15 @@ msgid "" "of the current call." msgstr "" -#: ../../library/pprint.rst:262 msgid "Example" msgstr "" -#: ../../library/pprint.rst:264 msgid "" "To demonstrate several uses of the :func:`~pprint.pp` function and its " -"parameters, let's fetch information about a project from `PyPI `_::" +"parameters, let's fetch information about a project from `PyPI `_::" msgstr "" -#: ../../library/pprint.rst:267 msgid "" ">>> import json\n" ">>> import pprint\n" @@ -273,11 +230,9 @@ msgid "" "... project_info = json.load(resp)['info']" msgstr "" -#: ../../library/pprint.rst:273 msgid "In its basic form, :func:`~pprint.pp` shows the whole object::" msgstr "" -#: ../../library/pprint.rst:275 msgid "" ">>> pprint.pp(project_info)\n" "{'author': 'The Python Packaging Authority',\n" @@ -337,13 +292,11 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: ../../library/pprint.rst:329 msgid "" "The result can be limited to a certain *depth* (ellipsis is used for deeper " "contents)::" msgstr "" -#: ../../library/pprint.rst:332 msgid "" ">>> pprint.pp(project_info, depth=1)\n" "{'author': 'The Python Packaging Authority',\n" @@ -392,13 +345,11 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: ../../library/pprint.rst:375 msgid "" "Additionally, maximum character *width* can be suggested. If a long object " "cannot be split, the specified width will be exceeded::" msgstr "" -#: ../../library/pprint.rst:378 msgid "" ">>> pprint.pp(project_info, depth=1, width=60)\n" "{'author': 'The Python Packaging Authority',\n" @@ -447,18 +398,14 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: ../../library/pprint.rst:121 ../../library/pprint.rst:224 msgid "built-in function" msgstr "" -#: ../../library/pprint.rst:121 ../../library/pprint.rst:224 msgid "eval" msgstr "" -#: ../../library/pprint.rst:155 msgid "..." msgstr "" -#: ../../library/pprint.rst:155 msgid "placeholder" msgstr "" diff --git a/library/profile.po b/library/profile.po index 4634642..3cf987c 100644 --- a/library/profile.po +++ b/library/profile.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,19 +22,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/profile.rst:5 msgid "The Python Profilers" msgstr "" -#: ../../library/profile.rst:7 msgid "**Source code:** :source:`Lib/profile.py` and :source:`Lib/pstats.py`" msgstr "" -#: ../../library/profile.rst:14 msgid "Introduction to the profilers" msgstr "" -#: ../../library/profile.rst:20 msgid "" ":mod:`cProfile` and :mod:`profile` provide :dfn:`deterministic profiling` of " "Python programs. A :dfn:`profile` is a set of statistics that describes how " @@ -42,13 +38,11 @@ msgid "" "statistics can be formatted into reports via the :mod:`pstats` module." msgstr "" -#: ../../library/profile.rst:25 msgid "" "The Python standard library provides two different implementations of the " "same profiling interface:" msgstr "" -#: ../../library/profile.rst:28 msgid "" ":mod:`cProfile` is recommended for most users; it's a C extension with " "reasonable overhead that makes it suitable for profiling long-running " @@ -56,60 +50,50 @@ msgid "" "Czotter." msgstr "" -#: ../../library/profile.rst:33 msgid "" -":mod:`profile`, a pure Python module whose interface is imitated " -"by :mod:`cProfile`, but which adds significant overhead to profiled " -"programs. If you're trying to extend the profiler in some way, the task " -"might be easier with this module. Originally designed and written by Jim " -"Roskind." +":mod:`profile`, a pure Python module whose interface is imitated by :mod:" +"`cProfile`, but which adds significant overhead to profiled programs. If " +"you're trying to extend the profiler in some way, the task might be easier " +"with this module. Originally designed and written by Jim Roskind." msgstr "" -#: ../../library/profile.rst:40 msgid "" "The profiler modules are designed to provide an execution profile for a " -"given program, not for benchmarking purposes (for that, there " -"is :mod:`timeit` for reasonably accurate results). This particularly " -"applies to benchmarking Python code against C code: the profilers introduce " -"overhead for Python code, but not for C-level functions, and so the C code " -"would seem faster than any Python one." +"given program, not for benchmarking purposes (for that, there is :mod:" +"`timeit` for reasonably accurate results). This particularly applies to " +"benchmarking Python code against C code: the profilers introduce overhead " +"for Python code, but not for C-level functions, and so the C code would seem " +"faster than any Python one." msgstr "" -#: ../../library/profile.rst:51 msgid "Instant User's Manual" msgstr "" -#: ../../library/profile.rst:53 msgid "" "This section is provided for users that \"don't want to read the manual.\" " "It provides a very brief overview, and allows a user to rapidly perform " "profiling on an existing application." msgstr "" -#: ../../library/profile.rst:57 msgid "To profile a function that takes a single argument, you can do::" msgstr "" -#: ../../library/profile.rst:59 msgid "" "import cProfile\n" "import re\n" "cProfile.run('re.compile(\"foo|bar\")')" msgstr "" -#: ../../library/profile.rst:63 msgid "" "(Use :mod:`profile` instead of :mod:`cProfile` if the latter is not " "available on your system.)" msgstr "" -#: ../../library/profile.rst:66 msgid "" "The above action would run :func:`re.compile` and print profile results like " "the following::" msgstr "" -#: ../../library/profile.rst:69 msgid "" " 214 function calls (207 primitive calls) in 0.002 seconds\n" "\n" @@ -126,7 +110,6 @@ msgid "" " 1 0.000 0.000 0.000 0.000 _parser.py:435(_parse_sub)" msgstr "" -#: ../../library/profile.rst:83 msgid "" "The first line indicates that 214 calls were monitored. Of those calls, 207 " "were :dfn:`primitive`, meaning that the call was not induced via recursion. " @@ -134,55 +117,43 @@ msgid "" "sorted by the ``cumtime`` values. The column headings include:" msgstr "" -#: ../../library/profile.rst:88 msgid "ncalls" msgstr "" -#: ../../library/profile.rst:89 msgid "for the number of calls." msgstr "" -#: ../../library/profile.rst:91 msgid "tottime" msgstr "" -#: ../../library/profile.rst:92 msgid "" "for the total time spent in the given function (and excluding time made in " "calls to sub-functions)" msgstr "" -#: ../../library/profile.rst:95 ../../library/profile.rst:102 msgid "percall" msgstr "" -#: ../../library/profile.rst:96 msgid "is the quotient of ``tottime`` divided by ``ncalls``" msgstr "" -#: ../../library/profile.rst:98 msgid "cumtime" msgstr "" -#: ../../library/profile.rst:99 msgid "" "is the cumulative time spent in this and all subfunctions (from invocation " "till exit). This figure is accurate *even* for recursive functions." msgstr "" -#: ../../library/profile.rst:103 msgid "is the quotient of ``cumtime`` divided by primitive calls" msgstr "" -#: ../../library/profile.rst:105 msgid "filename:lineno(function)" msgstr "" -#: ../../library/profile.rst:106 msgid "provides the respective data of each function" msgstr "" -#: ../../library/profile.rst:108 msgid "" "When there are two numbers in the first column (for example ``3/1``), it " "means that the function recursed. The second value is the number of " @@ -191,67 +162,55 @@ msgid "" "single figure is printed." msgstr "" -#: ../../library/profile.rst:114 msgid "" "Instead of printing the output at the end of the profile run, you can save " "the results to a file by specifying a filename to the :func:`run` function::" msgstr "" -#: ../../library/profile.rst:117 msgid "" "import cProfile\n" "import re\n" "cProfile.run('re.compile(\"foo|bar\")', 'restats')" msgstr "" -#: ../../library/profile.rst:121 msgid "" "The :class:`pstats.Stats` class reads profile results from a file and " "formats them in various ways." msgstr "" -#: ../../library/profile.rst:128 msgid "" "The files :mod:`cProfile` and :mod:`profile` can also be invoked as a script " "to profile another script. For example::" msgstr "" -#: ../../library/profile.rst:131 msgid "" "python -m cProfile [-o output_file] [-s sort_order] (-m module | myscript.py)" msgstr "" -#: ../../library/profile.rst:135 msgid "Writes the profile results to a file instead of to stdout." msgstr "" -#: ../../library/profile.rst:139 msgid "" "Specifies one of the :func:`~pstats.Stats.sort_stats` sort values to sort " "the output by. This only applies when :option:`-o ` is not " "supplied." msgstr "" -#: ../../library/profile.rst:145 msgid "Specifies that a module is being profiled instead of a script." msgstr "" -#: ../../library/profile.rst:147 msgid "Added the ``-m`` option to :mod:`cProfile`." msgstr "" -#: ../../library/profile.rst:150 msgid "Added the ``-m`` option to :mod:`profile`." msgstr "" -#: ../../library/profile.rst:153 msgid "" "The :mod:`pstats` module's :class:`~pstats.Stats` class has a variety of " "methods for manipulating and printing the data saved into a profile results " "file::" msgstr "" -#: ../../library/profile.rst:156 msgid "" "import pstats\n" "from pstats import SortKey\n" @@ -259,7 +218,6 @@ msgid "" "p.strip_dirs().sort_stats(-1).print_stats()" msgstr "" -#: ../../library/profile.rst:161 msgid "" "The :meth:`~pstats.Stats.strip_dirs` method removed the extraneous path from " "all the module names. The :meth:`~pstats.Stats.sort_stats` method sorted all " @@ -268,66 +226,54 @@ msgid "" "statistics. You might try the following sort calls::" msgstr "" -#: ../../library/profile.rst:167 msgid "" "p.sort_stats(SortKey.NAME)\n" "p.print_stats()" msgstr "" -#: ../../library/profile.rst:170 msgid "" "The first call will actually sort the list by function name, and the second " "call will print out the statistics. The following are some interesting " "calls to experiment with::" msgstr "" -#: ../../library/profile.rst:174 msgid "p.sort_stats(SortKey.CUMULATIVE).print_stats(10)" msgstr "" -#: ../../library/profile.rst:176 msgid "" "This sorts the profile by cumulative time in a function, and then only " "prints the ten most significant lines. If you want to understand what " "algorithms are taking time, the above line is what you would use." msgstr "" -#: ../../library/profile.rst:180 msgid "" "If you were looking to see what functions were looping a lot, and taking a " "lot of time, you would do::" msgstr "" -#: ../../library/profile.rst:183 msgid "p.sort_stats(SortKey.TIME).print_stats(10)" msgstr "" -#: ../../library/profile.rst:185 msgid "" "to sort according to time spent within each function, and then print the " "statistics for the top ten functions." msgstr "" -#: ../../library/profile.rst:188 msgid "You might also try::" msgstr "" -#: ../../library/profile.rst:190 msgid "p.sort_stats(SortKey.FILENAME).print_stats('__init__')" msgstr "" -#: ../../library/profile.rst:192 msgid "" "This will sort all the statistics by file name, and then print out " "statistics for only the class init methods (since they are spelled with " "``__init__`` in them). As one final example, you could try::" msgstr "" -#: ../../library/profile.rst:196 msgid "p.sort_stats(SortKey.TIME, SortKey.CUMULATIVE).print_stats(.5, 'init')" msgstr "" -#: ../../library/profile.rst:198 msgid "" "This line sorts statistics with a primary key of time, and a secondary key " "of cumulative time, and then prints out some of the statistics. To be " @@ -336,60 +282,49 @@ msgid "" "list is printed." msgstr "" -#: ../../library/profile.rst:203 msgid "" "If you wondered what functions called the above functions, you could now " "(``p`` is still sorted according to the last criteria) do::" msgstr "" -#: ../../library/profile.rst:206 msgid "p.print_callers(.5, 'init')" msgstr "" -#: ../../library/profile.rst:208 msgid "and you would get a list of callers for each of the listed functions." msgstr "" -#: ../../library/profile.rst:210 msgid "" "If you want more functionality, you're going to have to read the manual, or " "guess what the following functions do::" msgstr "" -#: ../../library/profile.rst:213 msgid "" "p.print_callees()\n" "p.add('restats')" msgstr "" -#: ../../library/profile.rst:216 msgid "" "Invoked as a script, the :mod:`pstats` module is a statistics browser for " "reading and examining profile dumps. It has a simple line-oriented " "interface (implemented using :mod:`cmd`) and interactive help." msgstr "" -#: ../../library/profile.rst:221 msgid ":mod:`profile` and :mod:`cProfile` Module Reference" msgstr "" -#: ../../library/profile.rst:227 msgid "" "Both the :mod:`profile` and :mod:`cProfile` modules provide the following " "functions:" msgstr "" -#: ../../library/profile.rst:232 msgid "" "This function takes a single argument that can be passed to the :func:`exec` " "function, and an optional file name. In all cases this routine executes::" msgstr "" -#: ../../library/profile.rst:235 msgid "exec(command, __main__.__dict__, __main__.__dict__)" msgstr "" -#: ../../library/profile.rst:237 msgid "" "and gathers profiling statistics from the execution. If no file name is " "present, then this function automatically creates a :class:`~pstats.Stats` " @@ -398,27 +333,22 @@ msgid "" "how the results are sorted." msgstr "" -#: ../../library/profile.rst:245 msgid "" "This function is similar to :func:`run`, with added arguments to supply the " "globals and locals mappings for the *command* string. This routine executes::" msgstr "" -#: ../../library/profile.rst:249 msgid "exec(command, globals, locals)" msgstr "" -#: ../../library/profile.rst:251 msgid "and gathers profiling statistics as in the :func:`run` function above." msgstr "" -#: ../../library/profile.rst:255 msgid "" "This class is normally only used if more precise control over profiling is " "needed than what the :func:`cProfile.run` function provides." msgstr "" -#: ../../library/profile.rst:258 msgid "" "A custom timer can be supplied for measuring how long code takes to run via " "the *timer* argument. This must be a function that returns a single number " @@ -428,13 +358,11 @@ msgid "" "time unit would be ``.001``." msgstr "" -#: ../../library/profile.rst:265 msgid "" "Directly using the :class:`Profile` class allows formatting profile results " "without writing the profile data to a file::" msgstr "" -#: ../../library/profile.rst:268 msgid "" "import cProfile, pstats, io\n" "from pstats import SortKey\n" @@ -449,13 +377,11 @@ msgid "" "print(s.getvalue())" msgstr "" -#: ../../library/profile.rst:280 msgid "" "The :class:`Profile` class can also be used as a context manager (supported " "only in :mod:`cProfile` module. see :ref:`typecontextmanager`)::" msgstr "" -#: ../../library/profile.rst:283 msgid "" "import cProfile\n" "\n" @@ -465,60 +391,48 @@ msgid "" " pr.print_stats()" msgstr "" -#: ../../library/profile.rst:290 msgid "Added context manager support." msgstr "" -#: ../../library/profile.rst:295 msgid "Start collecting profiling data. Only in :mod:`cProfile`." msgstr "" -#: ../../library/profile.rst:299 msgid "Stop collecting profiling data. Only in :mod:`cProfile`." msgstr "" -#: ../../library/profile.rst:303 msgid "" "Stop collecting profiling data and record the results internally as the " "current profile." msgstr "" -#: ../../library/profile.rst:308 msgid "" "Create a :class:`~pstats.Stats` object based on the current profile and " "print the results to stdout." msgstr "" -#: ../../library/profile.rst:311 msgid "" "The *sort* parameter specifies the sorting order of the displayed " "statistics. It accepts a single key or a tuple of keys to enable multi-level " "sorting, as in :func:`Stats.sort_stats `." msgstr "" -#: ../../library/profile.rst:315 msgid ":meth:`~Profile.print_stats` now accepts a tuple of keys." msgstr "" -#: ../../library/profile.rst:320 msgid "Write the results of the current profile to *filename*." msgstr "" -#: ../../library/profile.rst:324 msgid "Profile the cmd via :func:`exec`." msgstr "" -#: ../../library/profile.rst:328 msgid "" "Profile the cmd via :func:`exec` with the specified global and local " "environment." msgstr "" -#: ../../library/profile.rst:333 msgid "Profile ``func(*args, **kwargs)``" msgstr "" -#: ../../library/profile.rst:335 msgid "" "Note that profiling will only work if the called command/function actually " "returns. If the interpreter is terminated (e.g. via a :func:`sys.exit` call " @@ -526,23 +440,19 @@ msgid "" "printed." msgstr "" -#: ../../library/profile.rst:343 msgid "The :class:`Stats` Class" msgstr "" -#: ../../library/profile.rst:345 msgid "" "Analysis of the profiler data is done using the :class:`~pstats.Stats` class." msgstr "" -#: ../../library/profile.rst:352 msgid "" "This class constructor creates an instance of a \"statistics object\" from a " "*filename* (or list of filenames) or from a :class:`Profile` instance. " "Output will be printed to the stream specified by *stream*." msgstr "" -#: ../../library/profile.rst:356 msgid "" "The file selected by the above constructor must have been created by the " "corresponding version of :mod:`profile` or :mod:`cProfile`. To be specific, " @@ -556,41 +466,35 @@ msgid "" "can be used." msgstr "" -#: ../../library/profile.rst:367 msgid "" "Instead of reading the profile data from a file, a :class:`cProfile.Profile` " "or :class:`profile.Profile` object can be used as the profile data source." msgstr "" -#: ../../library/profile.rst:370 msgid ":class:`Stats` objects have the following methods:" msgstr "" -#: ../../library/profile.rst:374 msgid "" "This method for the :class:`Stats` class removes all leading path " "information from file names. It is very useful in reducing the size of the " "printout to fit within (close to) 80 columns. This method modifies the " "object, and the stripped information is lost. After performing a strip " "operation, the object is considered to have its entries in a \"random\" " -"order, as it was just after object initialization and loading. " -"If :meth:`~pstats.Stats.strip_dirs` causes two function names to be " -"indistinguishable (they are on the same line of the same filename, and have " -"the same function name), then the statistics for these two entries are " -"accumulated into a single entry." +"order, as it was just after object initialization and loading. If :meth:" +"`~pstats.Stats.strip_dirs` causes two function names to be indistinguishable " +"(they are on the same line of the same filename, and have the same function " +"name), then the statistics for these two entries are accumulated into a " +"single entry." msgstr "" -#: ../../library/profile.rst:388 msgid "" "This method of the :class:`Stats` class accumulates additional profiling " "information into the current profiling object. Its arguments should refer " -"to filenames created by the corresponding version of :func:`profile.run` " -"or :func:`cProfile.run`. Statistics for identically named (re: file, line, " -"name) functions are automatically accumulated into single function " -"statistics." +"to filenames created by the corresponding version of :func:`profile.run` or :" +"func:`cProfile.run`. Statistics for identically named (re: file, line, name) " +"functions are automatically accumulated into single function statistics." msgstr "" -#: ../../library/profile.rst:398 msgid "" "Save the data loaded into the :class:`Stats` object to a file named " "*filename*. The file is created if it does not exist, and is overwritten if " @@ -598,7 +502,6 @@ msgid "" "the :class:`profile.Profile` and :class:`cProfile.Profile` classes." msgstr "" -#: ../../library/profile.rst:406 msgid "" "This method modifies the :class:`Stats` object by sorting it according to " "the supplied criteria. The argument can be either a string or a SortKey " @@ -608,7 +511,6 @@ msgid "" "prone." msgstr "" -#: ../../library/profile.rst:413 msgid "" "When more than one key is provided, then additional keys are used as " "secondary criteria when there is equality in all keys selected before them. " @@ -617,178 +519,135 @@ msgid "" "function names) by sorting by file name." msgstr "" -#: ../../library/profile.rst:419 msgid "" "For the string argument, abbreviations can be used for any key names, as " "long as the abbreviation is unambiguous." msgstr "" -#: ../../library/profile.rst:422 msgid "The following are the valid string and SortKey:" msgstr "" -#: ../../library/profile.rst:425 msgid "Valid String Arg" msgstr "" -#: ../../library/profile.rst:425 msgid "Valid enum Arg" msgstr "" -#: ../../library/profile.rst:425 msgid "Meaning" msgstr "Jelentés" -#: ../../library/profile.rst:427 msgid "``'calls'``" msgstr "" -#: ../../library/profile.rst:427 msgid "SortKey.CALLS" msgstr "" -#: ../../library/profile.rst:427 ../../library/profile.rst:439 msgid "call count" msgstr "" -#: ../../library/profile.rst:429 msgid "``'cumulative'``" msgstr "" -#: ../../library/profile.rst:429 msgid "SortKey.CUMULATIVE" msgstr "" -#: ../../library/profile.rst:429 ../../library/profile.rst:431 msgid "cumulative time" msgstr "" -#: ../../library/profile.rst:431 msgid "``'cumtime'``" msgstr "" -#: ../../library/profile.rst:431 ../../library/profile.rst:433 -#: ../../library/profile.rst:437 ../../library/profile.rst:439 -#: ../../library/profile.rst:453 msgid "N/A" msgstr "" -#: ../../library/profile.rst:433 msgid "``'file'``" msgstr "" -#: ../../library/profile.rst:433 ../../library/profile.rst:435 -#: ../../library/profile.rst:437 msgid "file name" msgstr "" -#: ../../library/profile.rst:435 msgid "``'filename'``" msgstr "" -#: ../../library/profile.rst:435 msgid "SortKey.FILENAME" msgstr "" -#: ../../library/profile.rst:437 msgid "``'module'``" msgstr "" -#: ../../library/profile.rst:439 msgid "``'ncalls'``" msgstr "" -#: ../../library/profile.rst:441 msgid "``'pcalls'``" msgstr "" -#: ../../library/profile.rst:441 msgid "SortKey.PCALLS" msgstr "" -#: ../../library/profile.rst:441 msgid "primitive call count" msgstr "" -#: ../../library/profile.rst:443 msgid "``'line'``" msgstr "" -#: ../../library/profile.rst:443 msgid "SortKey.LINE" msgstr "" -#: ../../library/profile.rst:443 msgid "line number" msgstr "" -#: ../../library/profile.rst:445 msgid "``'name'``" msgstr "" -#: ../../library/profile.rst:445 msgid "SortKey.NAME" msgstr "" -#: ../../library/profile.rst:445 msgid "function name" msgstr "" -#: ../../library/profile.rst:447 msgid "``'nfl'``" msgstr "" -#: ../../library/profile.rst:447 msgid "SortKey.NFL" msgstr "" -#: ../../library/profile.rst:447 msgid "name/file/line" msgstr "" -#: ../../library/profile.rst:449 msgid "``'stdname'``" msgstr "" -#: ../../library/profile.rst:449 msgid "SortKey.STDNAME" msgstr "" -#: ../../library/profile.rst:449 msgid "standard name" msgstr "" -#: ../../library/profile.rst:451 msgid "``'time'``" msgstr "" -#: ../../library/profile.rst:451 msgid "SortKey.TIME" msgstr "" -#: ../../library/profile.rst:451 ../../library/profile.rst:453 msgid "internal time" msgstr "" -#: ../../library/profile.rst:453 msgid "``'tottime'``" msgstr "" -#: ../../library/profile.rst:456 msgid "" "Note that all sorts on statistics are in descending order (placing most time " "consuming items first), where as name, file, and line number searches are in " -"ascending order (alphabetical). The subtle distinction between " -"``SortKey.NFL`` and ``SortKey.STDNAME`` is that the standard name is a sort " -"of the name as printed, which means that the embedded line numbers get " -"compared in an odd way. For example, lines 3, 20, and 40 would (if the file " -"names were the same) appear in the string order 20, 3 and 40. In contrast, " -"``SortKey.NFL`` does a numeric compare of the line numbers. In fact, " +"ascending order (alphabetical). The subtle distinction between ``SortKey." +"NFL`` and ``SortKey.STDNAME`` is that the standard name is a sort of the " +"name as printed, which means that the embedded line numbers get compared in " +"an odd way. For example, lines 3, 20, and 40 would (if the file names were " +"the same) appear in the string order 20, 3 and 40. In contrast, ``SortKey." +"NFL`` does a numeric compare of the line numbers. In fact, " "``sort_stats(SortKey.NFL)`` is the same as ``sort_stats(SortKey.NAME, " "SortKey.FILENAME, SortKey.LINE)``." msgstr "" -#: ../../library/profile.rst:467 msgid "" "For backward-compatibility reasons, the numeric arguments ``-1``, ``0``, " "``1``, and ``2`` are permitted. They are interpreted as ``'stdname'``, " @@ -797,65 +656,54 @@ msgid "" "used, and additional arguments will be silently ignored." msgstr "" -#: ../../library/profile.rst:475 msgid "Added the SortKey enum." msgstr "" -#: ../../library/profile.rst:480 msgid "" "This method for the :class:`Stats` class reverses the ordering of the basic " "list within the object. Note that by default ascending vs descending order " "is properly selected based on the sort key of choice." msgstr "" -#: ../../library/profile.rst:490 msgid "" "This method for the :class:`Stats` class prints out a report as described in " "the :func:`profile.run` definition." msgstr "" -#: ../../library/profile.rst:493 msgid "" -"The order of the printing is based on the " -"last :meth:`~pstats.Stats.sort_stats` operation done on the object (subject " -"to caveats in :meth:`~pstats.Stats.add` " -"and :meth:`~pstats.Stats.strip_dirs`)." +"The order of the printing is based on the last :meth:`~pstats.Stats." +"sort_stats` operation done on the object (subject to caveats in :meth:" +"`~pstats.Stats.add` and :meth:`~pstats.Stats.strip_dirs`)." msgstr "" -#: ../../library/profile.rst:498 msgid "" "The arguments provided (if any) can be used to limit the list down to the " "significant entries. Initially, the list is taken to be the complete set of " "profiled functions. Each restriction is either an integer (to select a " "count of lines), or a decimal fraction between 0.0 and 1.0 inclusive (to " -"select a percentage of lines), or a string that will interpreted as a " +"select a percentage of lines), or a string that will be interpreted as a " "regular expression (to pattern match the standard name that is printed). If " "several restrictions are provided, then they are applied sequentially. For " "example::" msgstr "" -#: ../../library/profile.rst:507 msgid "print_stats(.1, 'foo:')" msgstr "" -#: ../../library/profile.rst:509 msgid "" "would first limit the printing to first 10% of list, and then only print " "functions that were part of filename :file:`.\\*foo:`. In contrast, the " "command::" msgstr "" -#: ../../library/profile.rst:513 msgid "print_stats('foo:', .1)" msgstr "" -#: ../../library/profile.rst:515 msgid "" "would limit the list to all functions having file names :file:`.\\*foo:`, " "and then proceed to only print the first 10% of them." msgstr "" -#: ../../library/profile.rst:521 msgid "" "This method for the :class:`Stats` class prints a list of all functions that " "called each function in the profiled database. The ordering is identical to " @@ -865,7 +713,6 @@ msgid "" "produced the stats:" msgstr "" -#: ../../library/profile.rst:528 msgid "" "With :mod:`profile`, a number is shown in parentheses after each caller to " "show how many times this specific call was made. For convenience, a second " @@ -873,14 +720,12 @@ msgid "" "at the right." msgstr "" -#: ../../library/profile.rst:533 msgid "" "With :mod:`cProfile`, each caller is preceded by three numbers: the number " "of times this specific call was made, and the total and cumulative times " "spent in the current function while it was invoked by this specific caller." msgstr "" -#: ../../library/profile.rst:541 msgid "" "This method for the :class:`Stats` class prints a list of all function that " "were called by the indicated function. Aside from this reversal of " @@ -888,7 +733,6 @@ msgid "" "are identical to the :meth:`~pstats.Stats.print_callers` method." msgstr "" -#: ../../library/profile.rst:549 msgid "" "This method returns an instance of StatsProfile, which contains a mapping of " "function names to instances of FunctionProfile. Each FunctionProfile " @@ -896,17 +740,14 @@ msgid "" "long the function took to run, how many times it was called, etc..." msgstr "" -#: ../../library/profile.rst:554 msgid "" "Added the following dataclasses: StatsProfile, FunctionProfile. Added the " "following function: get_stats_profile." msgstr "" -#: ../../library/profile.rst:561 msgid "What Is Deterministic Profiling?" msgstr "" -#: ../../library/profile.rst:563 msgid "" ":dfn:`Deterministic profiling` is meant to reflect the fact that all " "*function call*, *function return*, and *exception* events are monitored, " @@ -919,7 +760,6 @@ msgid "" "being spent." msgstr "" -#: ../../library/profile.rst:572 msgid "" "In Python, since there is an interpreter active during execution, the " "presence of instrumented code is not required in order to do deterministic " @@ -931,7 +771,6 @@ msgid "" "time statistics about the execution of a Python program." msgstr "" -#: ../../library/profile.rst:581 msgid "" "Call count statistics can be used to identify bugs in code (surprising " "counts), and to identify possible inline-expansion points (high call " @@ -943,11 +782,9 @@ msgid "" "compared to iterative implementations." msgstr "" -#: ../../library/profile.rst:594 msgid "Limitations" msgstr "" -#: ../../library/profile.rst:596 msgid "" "One limitation has to do with accuracy of timing information. There is a " "fundamental problem with deterministic profilers involving accuracy. The " @@ -958,7 +795,6 @@ msgid "" "first error induces a second source of error." msgstr "" -#: ../../library/profile.rst:604 msgid "" "The second problem is that it \"takes a while\" from when an event is " "dispatched until the profiler's call to get the time actually *gets* the " @@ -971,7 +807,6 @@ msgid "" "clock tick), but it *can* accumulate and become very significant." msgstr "" -#: ../../library/profile.rst:614 msgid "" "The problem is more important with :mod:`profile` than with the lower-" "overhead :mod:`cProfile`. For this reason, :mod:`profile` provides a means " @@ -985,11 +820,9 @@ msgid "" "calibration." msgstr "" -#: ../../library/profile.rst:628 msgid "Calibration" msgstr "" -#: ../../library/profile.rst:630 msgid "" "The profiler of the :mod:`profile` module subtracts a constant from each " "event handling time to compensate for the overhead of calling the time " @@ -998,7 +831,6 @@ msgid "" "platform (see :ref:`profile-limitations`). ::" msgstr "" -#: ../../library/profile.rst:636 msgid "" "import profile\n" "pr = profile.Profile()\n" @@ -1006,7 +838,6 @@ msgid "" " print(pr.calibrate(10000))" msgstr "" -#: ../../library/profile.rst:641 msgid "" "The method executes the number of Python calls given by the argument, " "directly and again under the profiler, measuring the time for both. It then " @@ -1016,19 +847,16 @@ msgid "" "4.04e-6." msgstr "" -#: ../../library/profile.rst:647 msgid "" "The object of this exercise is to get a fairly consistent result. If your " "computer is *very* fast, or your timer function has poor resolution, you " "might have to pass 100000, or even 1000000, to get consistent results." msgstr "" -#: ../../library/profile.rst:651 msgid "" "When you have a consistent answer, there are three ways you can use it::" msgstr "" -#: ../../library/profile.rst:653 msgid "" "import profile\n" "\n" @@ -1043,40 +871,33 @@ msgid "" "pr = profile.Profile(bias=your_computed_bias)" msgstr "" -#: ../../library/profile.rst:665 msgid "" "If you have a choice, you are better off choosing a smaller constant, and " "then your results will \"less often\" show up as negative in profile " "statistics." msgstr "" -#: ../../library/profile.rst:671 msgid "Using a custom timer" msgstr "" -#: ../../library/profile.rst:673 msgid "" "If you want to change how current time is determined (for example, to force " "use of wall-clock time or elapsed process time), pass the timing function " "you want to the :class:`Profile` class constructor::" msgstr "" -#: ../../library/profile.rst:677 msgid "pr = profile.Profile(your_time_func)" msgstr "" -#: ../../library/profile.rst:679 msgid "" "The resulting profiler will then call ``your_time_func``. Depending on " "whether you are using :class:`profile.Profile` or :class:`cProfile.Profile`, " "``your_time_func``'s return value will be interpreted differently:" msgstr "" -#: ../../library/profile.rst:683 msgid ":class:`profile.Profile`" msgstr "" -#: ../../library/profile.rst:684 msgid "" "``your_time_func`` should return a single number, or a list of numbers whose " "sum is the current time (like what :func:`os.times` returns). If the " @@ -1085,7 +906,6 @@ msgid "" "routine." msgstr "" -#: ../../library/profile.rst:690 msgid "" "Be warned that you should calibrate the profiler class for the timer " "function that you choose (see :ref:`profile-calibration`). For most " @@ -1097,11 +917,9 @@ msgid "" "along with the appropriate calibration constant." msgstr "" -#: ../../library/profile.rst:699 msgid ":class:`cProfile.Profile`" msgstr "" -#: ../../library/profile.rst:700 msgid "" "``your_time_func`` should return a single number. If it returns integers, " "you can also invoke the class constructor with a second argument specifying " @@ -1110,11 +928,9 @@ msgid "" "you would construct the :class:`Profile` instance as follows::" msgstr "" -#: ../../library/profile.rst:706 msgid "pr = cProfile.Profile(your_integer_time_func, 0.001)" msgstr "" -#: ../../library/profile.rst:708 msgid "" "As the :class:`cProfile.Profile` class cannot be calibrated, custom timer " "functions should be used with care and should be as fast as possible. For " @@ -1122,17 +938,14 @@ msgid "" "in the C source of the internal :mod:`!_lsprof` module." msgstr "" -#: ../../library/profile.rst:713 msgid "" "Python 3.3 adds several new functions in :mod:`time` that can be used to " -"make precise measurements of process or wall-clock time. For example, " -"see :func:`time.perf_counter`." +"make precise measurements of process or wall-clock time. For example, see :" +"func:`time.perf_counter`." msgstr "" -#: ../../library/profile.rst:16 msgid "deterministic profiling" msgstr "" -#: ../../library/profile.rst:16 msgid "profiling, deterministic" msgstr "" diff --git a/library/pty.po b/library/pty.po index 656fd76..a7c492f 100644 --- a/library/pty.po +++ b/library/pty.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,37 +18,30 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pty.rst:2 msgid ":mod:`!pty` --- Pseudo-terminal utilities" msgstr "" -#: ../../library/pty.rst:11 msgid "**Source code:** :source:`Lib/pty.py`" msgstr "" -#: ../../library/pty.rst:15 msgid "" "The :mod:`pty` module defines operations for handling the pseudo-terminal " "concept: starting another process and being able to write to and read from " "its controlling terminal programmatically." msgstr "" -#: ../../library/pty.rst:19 msgid "Availability" msgstr "" -#: ../../library/pty.rst:21 msgid "" "Pseudo-terminal handling is highly platform dependent. This code is mainly " "tested on Linux, FreeBSD, and macOS (it is supposed to work on other POSIX " "platforms but it's not been thoroughly tested)." msgstr "" -#: ../../library/pty.rst:25 msgid "The :mod:`pty` module defines the following functions:" msgstr "" -#: ../../library/pty.rst:30 msgid "" "Fork. Connect the child's controlling terminal to a pseudo-terminal. Return " "value is ``(pid, fd)``. Note that the child gets *pid* 0, and the *fd* is " @@ -57,20 +50,17 @@ msgid "" "the child's standard input and output)." msgstr "" -#: ../../library/pty.rst:36 msgid "" "On macOS the use of this function is unsafe when mixed with using higher-" "level system APIs, and that includes using :mod:`urllib.request`." msgstr "" -#: ../../library/pty.rst:42 msgid "" "Open a new pseudo-terminal pair, using :func:`os.openpty` if possible, or " "emulation code for generic Unix systems. Return a pair of file descriptors " "``(master, slave)``, for the master and the slave end, respectively." msgstr "" -#: ../../library/pty.rst:49 msgid "" "Spawn a process, and connect its controlling terminal with the current " "process's standard io. This is often used to baffle programs which insist on " @@ -79,14 +69,12 @@ msgid "" "will return." msgstr "" -#: ../../library/pty.rst:55 msgid "" "A loop copies STDIN of the current process to the child and data received " "from the child to STDOUT of the current process. It is not signaled to the " "child if STDIN of the current process closes down." msgstr "" -#: ../../library/pty.rst:59 msgid "" "The functions *master_read* and *stdin_read* are passed a file descriptor " "which they should read from, and they should always return a byte string. In " @@ -94,7 +82,6 @@ msgid "" "array should be returned to signal end of file." msgstr "" -#: ../../library/pty.rst:64 msgid "" "The default implementation for both functions will read and return up to " "1024 bytes each time the function is called. The *master_read* callback is " @@ -103,7 +90,6 @@ msgid "" "the parent process's standard input." msgstr "" -#: ../../library/pty.rst:70 msgid "" "Returning an empty byte string from either callback is interpreted as an end-" "of-file (EOF) condition, and that callback will not be called after that. If " @@ -113,41 +99,34 @@ msgid "" "signals EOF the same behavior results (on linux at least)." msgstr "" -#: ../../library/pty.rst:77 msgid "" "Return the exit status value from :func:`os.waitpid` on the child process." msgstr "" -#: ../../library/pty.rst:79 msgid "" ":func:`os.waitstatus_to_exitcode` can be used to convert the exit status " "into an exit code." msgstr "" -#: ../../library/pty.rst:82 msgid "" "Raises an :ref:`auditing event ` ``pty.spawn`` with argument " "``argv``." msgstr "" -#: ../../library/pty.rst:84 msgid "" ":func:`spawn` now returns the status value from :func:`os.waitpid` on the " "child process." msgstr "" -#: ../../library/pty.rst:89 msgid "Example" msgstr "" -#: ../../library/pty.rst:93 msgid "" "The following program acts like the Unix command :manpage:`script(1)`, using " "a pseudo-terminal to record all input and output of a terminal session in a " "\"typescript\". ::" msgstr "" -#: ../../library/pty.rst:97 msgid "" "import argparse\n" "import os\n" diff --git a/library/pwd.po b/library/pwd.po index 33a0fc0..0f621eb 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,130 +22,100 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pwd.rst:2 msgid ":mod:`!pwd` --- The password database" msgstr "" -#: ../../library/pwd.rst:10 msgid "" "This module provides access to the Unix user account and password database. " "It is available on all Unix versions." msgstr "" -#: ../../library/pwd.rst:13 msgid "Availability" msgstr "" -#: ../../library/pwd.rst:15 msgid "" "Password database entries are reported as a tuple-like object, whose " "attributes correspond to the members of the ``passwd`` structure (Attribute " "field below, see ````):" msgstr "" -#: ../../library/pwd.rst:20 msgid "Index" msgstr "" -#: ../../library/pwd.rst:20 msgid "Attribute" msgstr "" -#: ../../library/pwd.rst:20 msgid "Meaning" msgstr "Jelentés" -#: ../../library/pwd.rst:22 msgid "0" msgstr "" -#: ../../library/pwd.rst:22 msgid "``pw_name``" msgstr "" -#: ../../library/pwd.rst:22 msgid "Login name" msgstr "" -#: ../../library/pwd.rst:24 msgid "1" msgstr "1" -#: ../../library/pwd.rst:24 msgid "``pw_passwd``" msgstr "" -#: ../../library/pwd.rst:24 msgid "Optional encrypted password" msgstr "" -#: ../../library/pwd.rst:26 msgid "2" msgstr "2" -#: ../../library/pwd.rst:26 msgid "``pw_uid``" msgstr "" -#: ../../library/pwd.rst:26 msgid "Numerical user ID" msgstr "" -#: ../../library/pwd.rst:28 msgid "3" msgstr "3" -#: ../../library/pwd.rst:28 msgid "``pw_gid``" msgstr "" -#: ../../library/pwd.rst:28 msgid "Numerical group ID" msgstr "" -#: ../../library/pwd.rst:30 msgid "4" msgstr "4" -#: ../../library/pwd.rst:30 msgid "``pw_gecos``" msgstr "" -#: ../../library/pwd.rst:30 msgid "User name or comment field" msgstr "" -#: ../../library/pwd.rst:32 msgid "5" msgstr "" -#: ../../library/pwd.rst:32 msgid "``pw_dir``" msgstr "" -#: ../../library/pwd.rst:32 msgid "User home directory" msgstr "" -#: ../../library/pwd.rst:34 msgid "6" msgstr "" -#: ../../library/pwd.rst:34 msgid "``pw_shell``" msgstr "" -#: ../../library/pwd.rst:34 msgid "User command interpreter" msgstr "" -#: ../../library/pwd.rst:37 msgid "" "The uid and gid items are integers, all others are strings. :exc:`KeyError` " "is raised if the entry asked for cannot be found." msgstr "" -#: ../../library/pwd.rst:42 msgid "" "In traditional Unix the field ``pw_passwd`` usually contains a password " "encrypted with a DES derived algorithm. However most modern unices use a " @@ -156,27 +126,21 @@ msgid "" "system-dependent." msgstr "" -#: ../../library/pwd.rst:50 msgid "It defines the following items:" msgstr "" -#: ../../library/pwd.rst:55 msgid "Return the password database entry for the given numeric user ID." msgstr "" -#: ../../library/pwd.rst:60 msgid "Return the password database entry for the given user name." msgstr "" -#: ../../library/pwd.rst:65 msgid "" "Return a list of all available password database entries, in arbitrary order." msgstr "" -#: ../../library/pwd.rst:70 msgid "Module :mod:`grp`" msgstr "" -#: ../../library/pwd.rst:71 msgid "An interface to the group database, similar to this." msgstr "" diff --git a/library/py_compile.po b/library/py_compile.po index 59dd433..67259cd 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,34 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/py_compile.rst:2 msgid ":mod:`!py_compile` --- Compile Python source files" msgstr "" -#: ../../library/py_compile.rst:10 msgid "**Source code:** :source:`Lib/py_compile.py`" msgstr "" -#: ../../library/py_compile.rst:16 msgid "" "The :mod:`py_compile` module provides a function to generate a byte-code " "file from a source file, and another function used when the module source " "file is invoked as a script." msgstr "" -#: ../../library/py_compile.rst:20 msgid "" "Though not often needed, this function can be useful when installing modules " "for shared use, especially if some of the users may not have permission to " "write the byte-code cache files in the directory containing the source code." msgstr "" -#: ../../library/py_compile.rst:27 msgid "" "Exception raised when an error occurs while attempting to compile the file." msgstr "" -#: ../../library/py_compile.rst:32 msgid "" "Compile a source file to byte-code and write out the byte-code cache file. " "The source code is loaded from the file named *file*. The byte-code is " @@ -61,17 +55,15 @@ msgid "" "*cfile* value was used." msgstr "" -#: ../../library/py_compile.rst:46 msgid "" "The *doraise* and *quiet* arguments determine how errors are handled while " "compiling file. If *quiet* is 0 or 1, and *doraise* is false, the default " "behaviour is enabled: an error string is written to ``sys.stderr``, and the " -"function returns ``None`` instead of a path. If *doraise* is true, " -"a :exc:`PyCompileError` is raised instead. However if *quiet* is 2, no " -"message is written, and *doraise* has no effect." +"function returns ``None`` instead of a path. If *doraise* is true, a :exc:" +"`PyCompileError` is raised instead. However if *quiet* is 2, no message is " +"written, and *doraise* has no effect." msgstr "" -#: ../../library/py_compile.rst:53 msgid "" "If the path that *cfile* becomes (either explicitly specified or computed) " "is a symlink or non-regular file, :exc:`FileExistsError` will be raised. " @@ -81,30 +73,26 @@ msgid "" "file into place to prevent concurrent file writing issues." msgstr "" -#: ../../library/py_compile.rst:60 msgid "" -"*optimize* controls the optimization level and is passed to the built-" -"in :func:`compile` function. The default of ``-1`` selects the optimization " +"*optimize* controls the optimization level and is passed to the built-in :" +"func:`compile` function. The default of ``-1`` selects the optimization " "level of the current interpreter." msgstr "" -#: ../../library/py_compile.rst:64 msgid "" "*invalidation_mode* should be a member of the :class:`PycInvalidationMode` " "enum and controls how the generated bytecode cache is invalidated at " -"runtime. The default is :attr:`PycInvalidationMode.CHECKED_HASH` if " -"the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, otherwise the " +"runtime. The default is :attr:`PycInvalidationMode.CHECKED_HASH` if the :" +"envvar:`SOURCE_DATE_EPOCH` environment variable is set, otherwise the " "default is :attr:`PycInvalidationMode.TIMESTAMP`." msgstr "" -#: ../../library/py_compile.rst:70 msgid "" "Changed default value of *cfile* to be :PEP:`3147`-compliant. Previous " "default was *file* + ``'c'`` (``'o'`` if optimization was enabled). Also " "added the *optimize* parameter." msgstr "" -#: ../../library/py_compile.rst:75 msgid "" "Changed code to use :mod:`importlib` for the byte-code cache file writing. " "This means file creation/writing semantics now match what :mod:`importlib` " @@ -113,26 +101,22 @@ msgid "" "file." msgstr "" -#: ../../library/py_compile.rst:82 msgid "" "The *invalidation_mode* parameter was added as specified in :pep:`552`. If " "the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, " -"*invalidation_mode* will be forced " -"to :attr:`PycInvalidationMode.CHECKED_HASH`." +"*invalidation_mode* will be forced to :attr:`PycInvalidationMode." +"CHECKED_HASH`." msgstr "" -#: ../../library/py_compile.rst:88 msgid "" "The :envvar:`SOURCE_DATE_EPOCH` environment variable no longer overrides the " "value of the *invalidation_mode* argument, and determines its default value " "instead." msgstr "" -#: ../../library/py_compile.rst:93 msgid "The *quiet* parameter was added." msgstr "" -#: ../../library/py_compile.rst:99 msgid "" "An enumeration of possible methods the interpreter can use to determine " "whether a bytecode file is up to date with a source file. The ``.pyc`` file " @@ -141,38 +125,32 @@ msgid "" "at runtime." msgstr "" -#: ../../library/py_compile.rst:109 msgid "" "The ``.pyc`` file includes the timestamp and size of the source file, which " "Python will compare against the metadata of the source file at runtime to " "determine if the ``.pyc`` file needs to be regenerated." msgstr "" -#: ../../library/py_compile.rst:115 msgid "" "The ``.pyc`` file includes a hash of the source file content, which Python " "will compare against the source at runtime to determine if the ``.pyc`` file " "needs to be regenerated." msgstr "" -#: ../../library/py_compile.rst:121 msgid "" "Like :attr:`CHECKED_HASH`, the ``.pyc`` file includes a hash of the source " "file content. However, Python will at runtime assume the ``.pyc`` file is up " "to date and not validate the ``.pyc`` against the source file at all." msgstr "" -#: ../../library/py_compile.rst:125 msgid "" "This option is useful when the ``.pycs`` are kept up to date by some system " "external to Python like a build system." msgstr "" -#: ../../library/py_compile.rst:131 msgid "Command-Line Interface" msgstr "" -#: ../../library/py_compile.rst:133 msgid "" "This module can be invoked as a script to compile several source files. The " "files named in *filenames* are compiled and the resulting bytecode is cached " @@ -181,36 +159,28 @@ msgid "" "status is nonzero if one of the files could not be compiled." msgstr "" -#: ../../library/py_compile.rst:145 msgid "" "Positional arguments are files to compile. If ``-`` is the only parameter, " "the list of files is taken from standard input." msgstr "" -#: ../../library/py_compile.rst:150 msgid "Suppress errors output." msgstr "" -#: ../../library/py_compile.rst:152 msgid "Added support for ``-``." msgstr "" -#: ../../library/py_compile.rst:155 msgid "Added support for :option:`-q`." msgstr "" -#: ../../library/py_compile.rst:161 msgid "Module :mod:`compileall`" msgstr "" -#: ../../library/py_compile.rst:162 msgid "Utilities to compile all Python source files in a directory tree." msgstr "" -#: ../../library/py_compile.rst:12 msgid "file" msgstr "" -#: ../../library/py_compile.rst:12 msgid "byte-code" msgstr "" diff --git a/library/pyclbr.po b/library/pyclbr.po index 5b55274..cefe705 100644 --- a/library/pyclbr.po +++ b/library/pyclbr.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pyclbr.rst:2 msgid ":mod:`!pyclbr` --- Python module browser support" msgstr "" -#: ../../library/pyclbr.rst:9 msgid "**Source code:** :source:`Lib/pyclbr.py`" msgstr "" -#: ../../library/pyclbr.rst:13 msgid "" "The :mod:`pyclbr` module provides limited information about the functions, " "classes, and methods defined in a Python-coded module. The information is " @@ -41,7 +38,6 @@ msgid "" "standard and optional extension modules." msgstr "" -#: ../../library/pyclbr.rst:25 msgid "" "Return a dictionary mapping module-level class names to class descriptors. " "If possible, descriptors for imported base classes are included. Parameter " @@ -51,13 +47,11 @@ msgid "" "code." msgstr "" -#: ../../library/pyclbr.rst:32 msgid "" "This function is the original interface and is only kept for back " "compatibility. It returns a filtered version of the following." msgstr "" -#: ../../library/pyclbr.rst:38 msgid "" "Return a dictionary-based tree containing a function or class descriptors " "for each function and class defined in the module with a ``def`` or " @@ -69,93 +63,74 @@ msgid "" "value is a list containing the package search path." msgstr "" -#: ../../library/pyclbr.rst:48 msgid "" "Descriptors for nested definitions. They are accessed through the new " "children attribute. Each has a new parent attribute." msgstr "" -#: ../../library/pyclbr.rst:52 msgid "" "The descriptors returned by these functions are instances of Function and " "Class classes. Users are not expected to create instances of these classes." msgstr "" -#: ../../library/pyclbr.rst:60 msgid "Function Objects" msgstr "" -#: ../../library/pyclbr.rst:64 msgid "" "Class :class:`!Function` instances describe functions defined by def " "statements. They have the following attributes:" msgstr "" -#: ../../library/pyclbr.rst:70 msgid "Name of the file in which the function is defined." msgstr "" -#: ../../library/pyclbr.rst:75 msgid "The name of the module defining the function described." msgstr "" -#: ../../library/pyclbr.rst:80 msgid "The name of the function." msgstr "" -#: ../../library/pyclbr.rst:85 ../../library/pyclbr.rst:140 msgid "The line number in the file where the definition starts." msgstr "" -#: ../../library/pyclbr.rst:90 msgid "For top-level functions, ``None``. For nested functions, the parent." msgstr "" -#: ../../library/pyclbr.rst:97 msgid "" "A :class:`dictionary ` mapping names to descriptors for nested " "functions and classes." msgstr "" -#: ../../library/pyclbr.rst:105 msgid "" "``True`` for functions that are defined with the :keyword:`async ` prefix, ``False`` otherwise." msgstr "" -#: ../../library/pyclbr.rst:114 msgid "Class Objects" msgstr "Osztályobjektumok" -#: ../../library/pyclbr.rst:118 msgid "" "Class :class:`!Class` instances describe classes defined by class " "statements. They have the same attributes as :class:`Functions ` " "and two more." msgstr "" -#: ../../library/pyclbr.rst:125 msgid "Name of the file in which the class is defined." msgstr "" -#: ../../library/pyclbr.rst:130 msgid "The name of the module defining the class described." msgstr "" -#: ../../library/pyclbr.rst:135 msgid "The name of the class." msgstr "" -#: ../../library/pyclbr.rst:145 msgid "For top-level classes, ``None``. For nested classes, the parent." msgstr "" -#: ../../library/pyclbr.rst:152 msgid "" "A dictionary mapping names to descriptors for nested functions and classes." msgstr "" -#: ../../library/pyclbr.rst:160 msgid "" "A list of :class:`!Class` objects which describe the immediate base classes " "of the class being described. Classes which are named as superclasses but " @@ -163,7 +138,6 @@ msgid "" "with the class name instead of as :class:`!Class` objects." msgstr "" -#: ../../library/pyclbr.rst:169 msgid "" "A :class:`dictionary ` mapping method names to line numbers. This can " "be derived from the newer :attr:`children` dictionary, but remains for back-" diff --git a/library/pydoc.po b/library/pydoc.po index 248227b..2c92077 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,33 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pydoc.rst:2 msgid ":mod:`!pydoc` --- Documentation generator and online help system" msgstr "" -#: ../../library/pydoc.rst:10 msgid "**Source code:** :source:`Lib/pydoc.py`" msgstr "" -#: ../../library/pydoc.rst:19 msgid "" "The :mod:`!pydoc` module automatically generates documentation from Python " "modules. The documentation can be presented as pages of text on the " "console, served to a web browser, or saved to HTML files." msgstr "" -#: ../../library/pydoc.rst:23 msgid "" "For modules, classes, functions and methods, the displayed documentation is " "derived from the docstring (i.e. the :attr:`~definition.__doc__` attribute) " "of the object, and recursively of its documentable members. If there is no " "docstring, :mod:`!pydoc` tries to obtain a description from the block of " "comment lines just above the definition of the class, function or method in " -"the source file, or at the top of the module " -"(see :func:`inspect.getcomments`)." +"the source file, or at the top of the module (see :func:`inspect." +"getcomments`)." msgstr "" -#: ../../library/pydoc.rst:30 msgid "" "The built-in function :func:`help` invokes the online help system in the " "interactive interpreter, which uses :mod:`!pydoc` to generate its " @@ -53,11 +48,9 @@ msgid "" "a script at the operating system's command prompt. For example, running ::" msgstr "" -#: ../../library/pydoc.rst:36 msgid "python -m pydoc sys" msgstr "" -#: ../../library/pydoc.rst:38 msgid "" "at a shell prompt will display documentation on the :mod:`sys` module, in a " "style similar to the manual pages shown by the Unix :program:`man` command. " @@ -69,7 +62,6 @@ msgid "" "file, then documentation is produced for that file." msgstr "" -#: ../../library/pydoc.rst:49 msgid "" "In order to find objects and their documentation, :mod:`!pydoc` imports the " "module(s) to be documented. Therefore, any code on module level will be " @@ -77,23 +69,19 @@ msgid "" "only execute code when a file is invoked as a script and not just imported." msgstr "" -#: ../../library/pydoc.rst:54 msgid "" "When printing output to the console, :program:`pydoc` attempts to paginate " -"the output for easier reading. If either the :envvar:`MANPAGER` or " -"the :envvar:`PAGER` environment variable is set, :program:`pydoc` will use " -"its value as a pagination program. When both are set, :envvar:`MANPAGER` is " -"used." +"the output for easier reading. If either the :envvar:`MANPAGER` or the :" +"envvar:`PAGER` environment variable is set, :program:`pydoc` will use its " +"value as a pagination program. When both are set, :envvar:`MANPAGER` is used." msgstr "" -#: ../../library/pydoc.rst:59 msgid "" "Specifying a ``-w`` flag before the argument will cause HTML documentation " "to be written out to a file in the current directory, instead of displaying " "text on the console." msgstr "" -#: ../../library/pydoc.rst:63 msgid "" "Specifying a ``-k`` flag before the argument will search the synopsis lines " "of all available modules for the keyword given as the argument, again in a " @@ -101,17 +89,15 @@ msgid "" "module is the first line of its documentation string." msgstr "" -#: ../../library/pydoc.rst:68 msgid "" "You can also use :program:`pydoc` to start an HTTP server on the local " -"machine that will serve documentation to visiting web " -"browsers. :program:`python -m pydoc -p 1234` will start a HTTP server on " -"port 1234, allowing you to browse the documentation at ``http://" -"localhost:1234/`` in your preferred web browser. Specifying ``0`` as the " -"port number will select an arbitrary unused port." +"machine that will serve documentation to visiting web browsers. :program:" +"`python -m pydoc -p 1234` will start a HTTP server on port 1234, allowing " +"you to browse the documentation at ``http://localhost:1234/`` in your " +"preferred web browser. Specifying ``0`` as the port number will select an " +"arbitrary unused port." msgstr "" -#: ../../library/pydoc.rst:74 msgid "" ":program:`python -m pydoc -n ` will start the server listening at " "the given hostname. By default the hostname is 'localhost' but if you want " @@ -120,7 +106,6 @@ msgid "" "especially useful if you want to run pydoc from within a container." msgstr "" -#: ../../library/pydoc.rst:80 msgid "" ":program:`python -m pydoc -b` will start the server and additionally open a " "web browser to a module index page. Each served page has a navigation bar " @@ -129,7 +114,6 @@ msgid "" "*Topics* and *Keywords* pages." msgstr "" -#: ../../library/pydoc.rst:86 msgid "" "When :program:`pydoc` generates documentation, it uses the current " "environment and path to locate modules. Thus, invoking :program:`pydoc " @@ -137,46 +121,36 @@ msgid "" "started the Python interpreter and typed ``import spam``." msgstr "" -#: ../../library/pydoc.rst:91 msgid "" -"Module docs for core modules are assumed to reside in ``https://" -"docs.python.org/X.Y/library/`` where ``X`` and ``Y`` are the major and minor " -"version numbers of the Python interpreter. This can be overridden by " -"setting the :envvar:`!PYTHONDOCS` environment variable to a different URL or " -"to a local directory containing the Library Reference Manual pages." +"Module docs for core modules are assumed to reside in ``https://docs.python." +"org/X.Y/library/`` where ``X`` and ``Y`` are the major and minor version " +"numbers of the Python interpreter. This can be overridden by setting the :" +"envvar:`!PYTHONDOCS` environment variable to a different URL or to a local " +"directory containing the Library Reference Manual pages." msgstr "" -#: ../../library/pydoc.rst:98 msgid "Added the ``-b`` option." msgstr "" -#: ../../library/pydoc.rst:101 msgid "The ``-g`` command line option was removed." msgstr "" -#: ../../library/pydoc.rst:104 msgid "" -":mod:`!pydoc` now uses :func:`inspect.signature` rather " -"than :func:`inspect.getfullargspec` to extract signature information from " -"callables." +":mod:`!pydoc` now uses :func:`inspect.signature` rather than :func:`inspect." +"getfullargspec` to extract signature information from callables." msgstr "" -#: ../../library/pydoc.rst:109 msgid "Added the ``-n`` option." msgstr "" -#: ../../library/pydoc.rst:12 msgid "documentation" msgstr "" -#: ../../library/pydoc.rst:12 msgid "generation" msgstr "" -#: ../../library/pydoc.rst:12 msgid "online" msgstr "" -#: ../../library/pydoc.rst:12 msgid "help" msgstr "" diff --git a/library/pyexpat.po b/library/pyexpat.po index 7f1f077..cc00232 100644 --- a/library/pyexpat.po +++ b/library/pyexpat.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,61 +22,49 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/pyexpat.rst:2 msgid ":mod:`!xml.parsers.expat` --- Fast XML parsing using Expat" msgstr "" -#: ../../library/pyexpat.rst:21 msgid "" "If you need to parse untrusted or unauthenticated data, see :ref:`xml-" "security`." msgstr "" -#: ../../library/pyexpat.rst:27 msgid "" "The :mod:`xml.parsers.expat` module is a Python interface to the Expat non-" -"validating XML parser. The module provides a single extension " -"type, :class:`xmlparser`, that represents the current state of an XML " -"parser. After an :class:`xmlparser` object has been created, various " -"attributes of the object can be set to handler functions. When an XML " -"document is then fed to the parser, the handler functions are called for the " -"character data and markup in the XML document." +"validating XML parser. The module provides a single extension type, :class:" +"`xmlparser`, that represents the current state of an XML parser. After an :" +"class:`xmlparser` object has been created, various attributes of the object " +"can be set to handler functions. When an XML document is then fed to the " +"parser, the handler functions are called for the character data and markup " +"in the XML document." msgstr "" -#: ../../library/pyexpat.rst:37 msgid "" "This module uses the :mod:`pyexpat` module to provide access to the Expat " "parser. Direct use of the :mod:`pyexpat` module is deprecated." msgstr "" -#: ../../library/pyexpat.rst:40 msgid "This module provides one exception and one type object:" msgstr "" -#: ../../library/pyexpat.rst:45 msgid "" -"The exception raised when Expat reports an error. See " -"section :ref:`expaterror-objects` for more information on interpreting Expat " -"errors." +"The exception raised when Expat reports an error. See section :ref:" +"`expaterror-objects` for more information on interpreting Expat errors." msgstr "" -#: ../../library/pyexpat.rst:51 msgid "Alias for :exc:`ExpatError`." msgstr "" -#: ../../library/pyexpat.rst:56 msgid "The type of the return values from the :func:`ParserCreate` function." msgstr "" -#: ../../library/pyexpat.rst:58 msgid "The :mod:`xml.parsers.expat` module contains two functions:" msgstr "" -#: ../../library/pyexpat.rst:63 msgid "Returns an explanatory string for a given error number *errno*." msgstr "" -#: ../../library/pyexpat.rst:68 msgid "" "Creates and returns a new :class:`xmlparser` object. *encoding*, if " "specified, must be a string naming the encoding used by the XML data. " @@ -86,7 +74,6 @@ msgid "" "implicit or explicit encoding of the document." msgstr "" -#: ../../library/pyexpat.rst:75 msgid "" "Expat can optionally do XML namespace processing for you, enabled by " "providing a value for *namespace_separator*. The value must be a one-" @@ -101,13 +88,11 @@ msgid "" "concatenated without any separator." msgstr "" -#: ../../library/pyexpat.rst:87 msgid "" "For example, if *namespace_separator* is set to a space character (``' '``) " "and the following document is parsed:" msgstr "" -#: ../../library/pyexpat.rst:90 msgid "" "\n" "" msgstr "" -#: ../../library/pyexpat.rst:99 msgid "" ":attr:`StartElementHandler` will receive the following strings for each " "element::" msgstr "" -#: ../../library/pyexpat.rst:102 msgid "" "http://default-namespace.org/ root\n" "http://www.python.org/ns/ elem1\n" "elem2" msgstr "" -#: ../../library/pyexpat.rst:106 msgid "" -"Due to limitations in the ``Expat`` library used by :mod:`pyexpat`, " -"the :class:`xmlparser` instance returned can only be used to parse a single " -"XML document. Call ``ParserCreate`` for each document to provide unique " -"parser instances." +"Due to limitations in the ``Expat`` library used by :mod:`pyexpat`, the :" +"class:`xmlparser` instance returned can only be used to parse a single XML " +"document. Call ``ParserCreate`` for each document to provide unique parser " +"instances." msgstr "" -#: ../../library/pyexpat.rst:114 msgid "`The Expat XML Parser `_" msgstr "" -#: ../../library/pyexpat.rst:115 msgid "Home page of the Expat project." msgstr "" -#: ../../library/pyexpat.rst:121 msgid "XMLParser Objects" msgstr "" -#: ../../library/pyexpat.rst:123 msgid ":class:`xmlparser` objects have the following methods:" msgstr "" -#: ../../library/pyexpat.rst:128 msgid "" "Parses the contents of the string *data*, calling the appropriate handler " "functions to process the parsed data. *isfinal* must be true on the final " @@ -163,71 +140,62 @@ msgid "" "time." msgstr "" -#: ../../library/pyexpat.rst:137 msgid "" "Parse XML data reading from the object *file*. *file* only needs to provide " "the ``read(nbytes)`` method, returning the empty string when there's no more " "data." msgstr "" -#: ../../library/pyexpat.rst:144 msgid "" "Sets the base to be used for resolving relative URIs in system identifiers " "in declarations. Resolving relative identifiers is left to the application: " -"this value will be passed through as the *base* argument to " -"the :func:`ExternalEntityRefHandler`, :func:`NotationDeclHandler`, " -"and :func:`UnparsedEntityDeclHandler` functions." +"this value will be passed through as the *base* argument to the :func:" +"`ExternalEntityRefHandler`, :func:`NotationDeclHandler`, and :func:" +"`UnparsedEntityDeclHandler` functions." msgstr "" -#: ../../library/pyexpat.rst:153 msgid "" -"Returns a string containing the base set by a previous call " -"to :meth:`SetBase`, or ``None`` if :meth:`SetBase` hasn't been called." +"Returns a string containing the base set by a previous call to :meth:" +"`SetBase`, or ``None`` if :meth:`SetBase` hasn't been called." msgstr "" -#: ../../library/pyexpat.rst:159 msgid "" "Returns the input data that generated the current event as a string. The " "data is in the encoding of the entity which contains the text. When called " "while an event handler is not active, the return value is ``None``." msgstr "" -#: ../../library/pyexpat.rst:166 msgid "" "Create a \"child\" parser which can be used to parse an external parsed " "entity referred to by content parsed by the parent parser. The *context* " -"parameter should be the string passed to " -"the :meth:`ExternalEntityRefHandler` handler function, described below. The " -"child parser is created with the :attr:`ordered_attributes` " -"and :attr:`specified_attributes` set to the values of this parser." +"parameter should be the string passed to the :meth:" +"`ExternalEntityRefHandler` handler function, described below. The child " +"parser is created with the :attr:`ordered_attributes` and :attr:" +"`specified_attributes` set to the values of this parser." msgstr "" -#: ../../library/pyexpat.rst:175 msgid "" "Control parsing of parameter entities (including the external DTD subset). " -"Possible *flag* values " -"are :const:`XML_PARAM_ENTITY_PARSING_NEVER`, :const:`XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE` " -"and :const:`XML_PARAM_ENTITY_PARSING_ALWAYS`. Return true if setting the " -"flag was successful." +"Possible *flag* values are :const:`XML_PARAM_ENTITY_PARSING_NEVER`, :const:" +"`XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE` and :const:" +"`XML_PARAM_ENTITY_PARSING_ALWAYS`. Return true if setting the flag was " +"successful." msgstr "" -#: ../../library/pyexpat.rst:183 msgid "" "Calling this with a true value for *flag* (the default) will cause Expat to " "call the :attr:`ExternalEntityRefHandler` with :const:`None` for all " "arguments to allow an alternate DTD to be loaded. If the document does not " "contain a document type declaration, the :attr:`ExternalEntityRefHandler` " -"will still be called, but the :attr:`StartDoctypeDeclHandler` " -"and :attr:`EndDoctypeDeclHandler` will not be called." +"will still be called, but the :attr:`StartDoctypeDeclHandler` and :attr:" +"`EndDoctypeDeclHandler` will not be called." msgstr "" -#: ../../library/pyexpat.rst:190 msgid "" "Passing a false value for *flag* will cancel a previous call that passed a " "true value, but otherwise has no effect." msgstr "" -#: ../../library/pyexpat.rst:193 msgid "" "This method can only be called before the :meth:`Parse` or :meth:`ParseFile` " "methods are called; calling it after either of those have been called " @@ -235,14 +203,12 @@ msgid "" "``errors.codes[errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]``." msgstr "" -#: ../../library/pyexpat.rst:202 msgid "" "Calling ``SetReparseDeferralEnabled(False)`` has security implications, as " "detailed below; please make sure to understand these consequences prior to " "using the ``SetReparseDeferralEnabled`` method." msgstr "" -#: ../../library/pyexpat.rst:206 msgid "" "Expat 2.6.0 introduced a security mechanism called \"reparse deferral\" " "where instead of causing denial of service through quadratic runtime from " @@ -257,50 +223,43 @@ msgid "" "``SetReparseDeferralEnabled(True)`` allows re-enabling reparse deferral." msgstr "" -#: ../../library/pyexpat.rst:219 msgid "" "Note that :meth:`SetReparseDeferralEnabled` has been backported to some " -"prior releases of CPython as a security fix. Check for availability " -"of :meth:`SetReparseDeferralEnabled` using :func:`hasattr` if used in code " +"prior releases of CPython as a security fix. Check for availability of :" +"meth:`SetReparseDeferralEnabled` using :func:`hasattr` if used in code " "running across a variety of Python versions." msgstr "" -#: ../../library/pyexpat.rst:228 msgid "" "Returns whether reparse deferral is currently enabled for the given Expat " "parser instance." msgstr "" -#: ../../library/pyexpat.rst:234 msgid ":class:`xmlparser` objects have the following attributes:" msgstr "" -#: ../../library/pyexpat.rst:239 msgid "" "The size of the buffer used when :attr:`buffer_text` is true. A new buffer " "size can be set by assigning a new integer value to this attribute. When the " "size is changed, the buffer will be flushed." msgstr "" -#: ../../library/pyexpat.rst:247 msgid "" "Setting this to true causes the :class:`xmlparser` object to buffer textual " -"content returned by Expat to avoid multiple calls to " -"the :meth:`CharacterDataHandler` callback whenever possible. This can " -"improve performance substantially since Expat normally breaks character data " -"into chunks at every line ending. This attribute is false by default, and " -"may be changed at any time. Note that when it is false, data that does not " -"contain newlines may be chunked too." +"content returned by Expat to avoid multiple calls to the :meth:" +"`CharacterDataHandler` callback whenever possible. This can improve " +"performance substantially since Expat normally breaks character data into " +"chunks at every line ending. This attribute is false by default, and may be " +"changed at any time. Note that when it is false, data that does not contain " +"newlines may be chunked too." msgstr "" -#: ../../library/pyexpat.rst:258 msgid "" "If :attr:`buffer_text` is enabled, the number of bytes stored in the buffer. " "These bytes represent UTF-8 encoded text. This attribute has no meaningful " "interpretation when :attr:`buffer_text` is false." msgstr "" -#: ../../library/pyexpat.rst:265 msgid "" "Setting this attribute to a non-zero integer causes the attributes to be " "reported as a list rather than a dictionary. The attributes are presented " @@ -310,7 +269,6 @@ msgid "" "is false; it may be changed at any time." msgstr "" -#: ../../library/pyexpat.rst:275 msgid "" "If set to a non-zero integer, the parser will report only those attributes " "which were specified in the document instance and not those which were " @@ -321,34 +279,28 @@ msgid "" "time." msgstr "" -#: ../../library/pyexpat.rst:283 msgid "" "The following attributes contain values relating to the most recent error " "encountered by an :class:`xmlparser` object, and will only have correct " -"values once a call to :meth:`Parse` or :meth:`ParseFile` has raised " -"an :exc:`xml.parsers.expat.ExpatError` exception." +"values once a call to :meth:`Parse` or :meth:`ParseFile` has raised an :exc:" +"`xml.parsers.expat.ExpatError` exception." msgstr "" -#: ../../library/pyexpat.rst:291 msgid "Byte index at which an error occurred." msgstr "" -#: ../../library/pyexpat.rst:296 msgid "" -"Numeric code specifying the problem. This value can be passed to " -"the :func:`ErrorString` function, or compared to one of the constants " -"defined in the ``errors`` object." +"Numeric code specifying the problem. This value can be passed to the :func:" +"`ErrorString` function, or compared to one of the constants defined in the " +"``errors`` object." msgstr "" -#: ../../library/pyexpat.rst:303 msgid "Column number at which an error occurred." msgstr "" -#: ../../library/pyexpat.rst:308 msgid "Line number at which an error occurred." msgstr "" -#: ../../library/pyexpat.rst:310 msgid "" "The following attributes contain values relating to the current parse " "location in an :class:`xmlparser` object. During a callback reporting a " @@ -358,28 +310,23 @@ msgid "" "whether there was an associated callback)." msgstr "" -#: ../../library/pyexpat.rst:320 msgid "Current byte index in the parser input." msgstr "" -#: ../../library/pyexpat.rst:325 msgid "Current column number in the parser input." msgstr "" -#: ../../library/pyexpat.rst:330 msgid "Current line number in the parser input." msgstr "" -#: ../../library/pyexpat.rst:332 msgid "" -"Here is the list of handlers that can be set. To set a handler on " -"an :class:`xmlparser` object *o*, use ``o.handlername = func``. " -"*handlername* must be taken from the following list, and *func* must be a " -"callable object accepting the correct number of arguments. The arguments " -"are all strings, unless otherwise stated." +"Here is the list of handlers that can be set. To set a handler on an :class:" +"`xmlparser` object *o*, use ``o.handlername = func``. *handlername* must be " +"taken from the following list, and *func* must be a callable object " +"accepting the correct number of arguments. The arguments are all strings, " +"unless otherwise stated." msgstr "" -#: ../../library/pyexpat.rst:341 msgid "" "Called when the XML declaration is parsed. The XML declaration is the " "(optional) declaration of the applicable version of the XML recommendation, " @@ -390,7 +337,6 @@ msgid "" "only available with Expat version 1.95.0 or newer." msgstr "" -#: ../../library/pyexpat.rst:352 msgid "" "Called when Expat begins parsing the document type declaration (``'``." msgstr "" -#: ../../library/pyexpat.rst:469 msgid "" -"Called at the start of a CDATA section. This " -"and :attr:`EndCdataSectionHandler` are needed to be able to identify the " -"syntactical start and end for CDATA sections." +"Called at the start of a CDATA section. This and :attr:" +"`EndCdataSectionHandler` are needed to be able to identify the syntactical " +"start and end for CDATA sections." msgstr "" -#: ../../library/pyexpat.rst:476 msgid "Called at the end of a CDATA section." msgstr "" -#: ../../library/pyexpat.rst:481 msgid "" "Called for any characters in the XML document for which no applicable " "handler has been specified. This means characters that are part of a " @@ -525,14 +454,12 @@ msgid "" "supplied." msgstr "" -#: ../../library/pyexpat.rst:488 msgid "" "This is the same as the :func:`DefaultHandler`, but doesn't inhibit " "expansion of internal entities. The entity reference will not be passed to " "the default handler." msgstr "" -#: ../../library/pyexpat.rst:495 msgid "" "Called if the XML document hasn't been declared as being a standalone " "document. This happens when there is an external subset or a reference to a " @@ -542,7 +469,6 @@ msgid "" "set, no exception is raised by the parser for this condition." msgstr "" -#: ../../library/pyexpat.rst:505 msgid "" "Called for references to external entities. *base* is the current base, as " "set by a previous call to :meth:`SetBase`. The public and system " @@ -551,39 +477,32 @@ msgid "" "is opaque and should only be used as described below." msgstr "" -#: ../../library/pyexpat.rst:511 msgid "" "For external entities to be parsed, this handler must be implemented. It is " "responsible for creating the sub-parser using " "``ExternalEntityParserCreate(context)``, initializing it with the " "appropriate callbacks, and parsing the entity. This handler should return " -"an integer; if it returns ``0``, the parser will raise " -"an :const:`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will " -"continue." +"an integer; if it returns ``0``, the parser will raise an :const:" +"`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will continue." msgstr "" -#: ../../library/pyexpat.rst:519 msgid "" -"If this handler is not provided, external entities are reported by " -"the :attr:`DefaultHandler` callback, if provided." +"If this handler is not provided, external entities are reported by the :attr:" +"`DefaultHandler` callback, if provided." msgstr "" -#: ../../library/pyexpat.rst:526 msgid "ExpatError Exceptions" msgstr "" -#: ../../library/pyexpat.rst:531 msgid ":exc:`ExpatError` exceptions have a number of interesting attributes:" msgstr "" -#: ../../library/pyexpat.rst:536 msgid "" -"Expat's internal error number for the specific error. " -"The :data:`errors.messages ` dictionary " -"maps these error numbers to Expat's error messages. For example::" +"Expat's internal error number for the specific error. The :data:`errors." +"messages ` dictionary maps these error " +"numbers to Expat's error messages. For example::" msgstr "" -#: ../../library/pyexpat.rst:540 msgid "" "from xml.parsers.expat import ParserCreate, ExpatError, errors\n" "\n" @@ -594,36 +513,30 @@ msgid "" " print(\"Error:\", errors.messages[err.code])" msgstr "" -#: ../../library/pyexpat.rst:548 msgid "" "The :mod:`~xml.parsers.expat.errors` module also provides error message " "constants and a dictionary :data:`~xml.parsers.expat.errors.codes` mapping " "these messages back to the error codes, see below." msgstr "" -#: ../../library/pyexpat.rst:555 msgid "" "Line number on which the error was detected. The first line is numbered " "``1``." msgstr "" -#: ../../library/pyexpat.rst:560 msgid "" "Character offset into the line where the error occurred. The first column " "is numbered ``0``." msgstr "" -#: ../../library/pyexpat.rst:567 msgid "Example" msgstr "" -#: ../../library/pyexpat.rst:569 msgid "" "The following program defines three handlers that just print out their " "arguments. ::" msgstr "" -#: ../../library/pyexpat.rst:572 msgid "" "import xml.parsers.expat\n" "\n" @@ -647,11 +560,9 @@ msgid "" "\"\"\", 1)" msgstr "" -#: ../../library/pyexpat.rst:593 msgid "The output from this program is::" msgstr "" -#: ../../library/pyexpat.rst:595 msgid "" "Start element: parent {'id': 'top'}\n" "Start element: child1 {'name': 'paul'}\n" @@ -665,305 +576,245 @@ msgid "" "End element: parent" msgstr "" -#: ../../library/pyexpat.rst:610 msgid "Content Model Descriptions" msgstr "" -#: ../../library/pyexpat.rst:616 msgid "" "Content models are described using nested tuples. Each tuple contains four " "values: the type, the quantifier, the name, and a tuple of children. " "Children are simply additional content model descriptions." msgstr "" -#: ../../library/pyexpat.rst:620 msgid "" -"The values of the first two fields are constants defined in " -"the :mod:`xml.parsers.expat.model` module. These constants can be collected " -"in two groups: the model type group and the quantifier group." +"The values of the first two fields are constants defined in the :mod:`xml." +"parsers.expat.model` module. These constants can be collected in two " +"groups: the model type group and the quantifier group." msgstr "" -#: ../../library/pyexpat.rst:624 msgid "The constants in the model type group are:" msgstr "" -#: ../../library/pyexpat.rst:630 msgid "" "The element named by the model name was declared to have a content model of " "``ANY``." msgstr "" -#: ../../library/pyexpat.rst:637 msgid "" "The named element allows a choice from a number of options; this is used for " "content models such as ``(A | B | C)``." msgstr "" -#: ../../library/pyexpat.rst:644 msgid "Elements which are declared to be ``EMPTY`` have this model type." msgstr "" -#: ../../library/pyexpat.rst:658 msgid "" "Models which represent a series of models which follow one after the other " "are indicated with this model type. This is used for models such as ``(A, " "B, C)``." msgstr "" -#: ../../library/pyexpat.rst:661 msgid "The constants in the quantifier group are:" msgstr "" -#: ../../library/pyexpat.rst:667 msgid "No modifier is given, so it can appear exactly once, as for ``A``." msgstr "" -#: ../../library/pyexpat.rst:673 msgid "The model is optional: it can appear once or not at all, as for ``A?``." msgstr "" -#: ../../library/pyexpat.rst:679 msgid "The model must occur one or more times (like ``A+``)." msgstr "" -#: ../../library/pyexpat.rst:685 msgid "The model must occur zero or more times, as for ``A*``." msgstr "" -#: ../../library/pyexpat.rst:691 msgid "Expat error constants" msgstr "" -#: ../../library/pyexpat.rst:695 msgid "" "The following constants are provided in the :mod:`xml.parsers.expat.errors` " "module. These constants are useful in interpreting some of the attributes " "of the :exc:`ExpatError` exception objects raised when an error has " "occurred. Since for backwards compatibility reasons, the constants' value is " "the error *message* and not the numeric error *code*, you do this by " -"comparing its :attr:`code` attribute " -"with :samp:`errors.codes[errors.XML_ERROR_{CONSTANT_NAME}]`." +"comparing its :attr:`code` attribute with :samp:`errors.codes[errors." +"XML_ERROR_{CONSTANT_NAME}]`." msgstr "" -#: ../../library/pyexpat.rst:703 msgid "The ``errors`` module has the following attributes:" msgstr "" -#: ../../library/pyexpat.rst:707 msgid "A dictionary mapping string descriptions to their error codes." msgstr "" -#: ../../library/pyexpat.rst:714 msgid "A dictionary mapping numeric error codes to their string descriptions." msgstr "" -#: ../../library/pyexpat.rst:724 msgid "" "An entity reference in an attribute value referred to an external entity " "instead of an internal entity." msgstr "" -#: ../../library/pyexpat.rst:730 msgid "" "A character reference referred to a character which is illegal in XML (for " "example, character ``0``, or '``�``')." msgstr "" -#: ../../library/pyexpat.rst:736 msgid "" "An entity reference referred to an entity which was declared with a " "notation, so cannot be parsed." msgstr "" -#: ../../library/pyexpat.rst:742 msgid "An attribute was used more than once in a start tag." msgstr "" -#: ../../library/pyexpat.rst:750 msgid "" "Raised when an input byte could not properly be assigned to a character; for " "example, a NUL byte (value ``0``) in a UTF-8 input stream." msgstr "" -#: ../../library/pyexpat.rst:756 msgid "Something other than whitespace occurred after the document element." msgstr "" -#: ../../library/pyexpat.rst:761 msgid "" "An XML declaration was found somewhere other than the start of the input " "data." msgstr "" -#: ../../library/pyexpat.rst:766 msgid "" "The document contains no elements (XML requires all documents to contain " "exactly one top-level element).." msgstr "" -#: ../../library/pyexpat.rst:772 msgid "Expat was not able to allocate memory internally." msgstr "" -#: ../../library/pyexpat.rst:777 msgid "A parameter entity reference was found where it was not allowed." msgstr "" -#: ../../library/pyexpat.rst:782 msgid "An incomplete character was found in the input." msgstr "" -#: ../../library/pyexpat.rst:787 msgid "" "An entity reference contained another reference to the same entity; possibly " "via a different name, and possibly indirectly." msgstr "" -#: ../../library/pyexpat.rst:793 msgid "Some unspecified syntax error was encountered." msgstr "" -#: ../../library/pyexpat.rst:798 msgid "An end tag did not match the innermost open start tag." msgstr "" -#: ../../library/pyexpat.rst:803 msgid "" "Some token (such as a start tag) was not closed before the end of the stream " "or the next token was encountered." msgstr "" -#: ../../library/pyexpat.rst:809 msgid "A reference was made to an entity which was not defined." msgstr "" -#: ../../library/pyexpat.rst:814 msgid "The document encoding is not supported by Expat." msgstr "" -#: ../../library/pyexpat.rst:819 msgid "A CDATA marked section was not closed." msgstr "" -#: ../../library/pyexpat.rst:827 msgid "" "The parser determined that the document was not \"standalone\" though it " -"declared itself to be in the XML declaration, and " -"the :attr:`NotStandaloneHandler` was set and returned ``0``." +"declared itself to be in the XML declaration, and the :attr:" +"`NotStandaloneHandler` was set and returned ``0``." msgstr "" -#: ../../library/pyexpat.rst:840 msgid "" "An operation was requested that requires DTD support to be compiled in, but " "Expat was configured without DTD support. This should never be reported by " "a standard build of the :mod:`xml.parsers.expat` module." msgstr "" -#: ../../library/pyexpat.rst:847 msgid "" "A behavioral change was requested after parsing started that can only be " -"changed before parsing has started. This is (currently) only raised " -"by :meth:`UseForeignDTD`." +"changed before parsing has started. This is (currently) only raised by :" +"meth:`UseForeignDTD`." msgstr "" -#: ../../library/pyexpat.rst:854 msgid "An undeclared prefix was found when namespace processing was enabled." msgstr "" -#: ../../library/pyexpat.rst:859 msgid "" "The document attempted to remove the namespace declaration associated with a " "prefix." msgstr "" -#: ../../library/pyexpat.rst:865 msgid "A parameter entity contained incomplete markup." msgstr "" -#: ../../library/pyexpat.rst:870 msgid "The document contained no document element at all." msgstr "" -#: ../../library/pyexpat.rst:875 msgid "There was an error parsing a text declaration in an external entity." msgstr "" -#: ../../library/pyexpat.rst:880 msgid "Characters were found in the public id that are not allowed." msgstr "" -#: ../../library/pyexpat.rst:885 msgid "" "The requested operation was made on a suspended parser, but isn't allowed. " "This includes attempts to provide additional input or to stop the parser." msgstr "" -#: ../../library/pyexpat.rst:891 msgid "" "An attempt to resume the parser was made when the parser had not been " "suspended." msgstr "" -#: ../../library/pyexpat.rst:896 ../../library/pyexpat.rst:929 -#: ../../library/pyexpat.rst:934 msgid "This should not be reported to Python applications." msgstr "" -#: ../../library/pyexpat.rst:901 msgid "" "The requested operation was made on a parser which was finished parsing " "input, but isn't allowed. This includes attempts to provide additional " "input or to stop the parser." msgstr "" -#: ../../library/pyexpat.rst:911 msgid "" "An attempt was made to undeclare reserved namespace prefix ``xml`` or to " "bind it to another namespace URI." msgstr "" -#: ../../library/pyexpat.rst:918 msgid "" "An attempt was made to declare or undeclare reserved namespace prefix " "``xmlns``." msgstr "" -#: ../../library/pyexpat.rst:923 msgid "" "An attempt was made to bind the URI of one the reserved namespace prefixes " "``xml`` and ``xmlns`` to another namespace prefix." msgstr "" -#: ../../library/pyexpat.rst:939 msgid "" "The limit on input amplification factor (from DTD and entities) has been " "breached." msgstr "" -#: ../../library/pyexpat.rst:945 msgid "The parser was tried to be stopped or suspended before it started." msgstr "" -#: ../../library/pyexpat.rst:951 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/pyexpat.rst:952 msgid "" "The encoding string included in XML output should conform to the appropriate " "standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See https://" -"www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://" -"www.iana.org/assignments/character-sets/character-sets.xhtml." +"www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://www.iana." +"org/assignments/character-sets/character-sets.xhtml." msgstr "" -#: ../../library/pyexpat.rst:25 msgid "Expat" msgstr "" -#: ../../library/pyexpat.rst:35 msgid "module" msgstr "" -#: ../../library/pyexpat.rst:35 msgid "pyexpat" msgstr "" diff --git a/library/python.po b/library/python.po index 8c65d26..7756610 100644 --- a/library/python.po +++ b/library/python.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/python.rst:5 msgid "Python Runtime Services" msgstr "" -#: ../../library/python.rst:7 msgid "" "The modules described in this chapter provide a wide range of services " "related to the Python interpreter and its interaction with its environment. " "Here's an overview:" msgstr "" -#: ../../library/python.rst:33 msgid "" "See the :mod:`concurrent.interpreters` module, which similarly exposes core " "runtime functionality." diff --git a/library/queue.po b/library/queue.po index 16d85b8..391a221 100644 --- a/library/queue.po +++ b/library/queue.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/queue.rst:2 msgid ":mod:`!queue` --- A synchronized queue class" msgstr "" -#: ../../library/queue.rst:7 msgid "**Source code:** :source:`Lib/queue.py`" msgstr "" -#: ../../library/queue.rst:11 msgid "" "The :mod:`queue` module implements multi-producer, multi-consumer queues. It " "is especially useful in threaded programming when information must be " @@ -34,7 +31,6 @@ msgid "" "module implements all the required locking semantics." msgstr "" -#: ../../library/queue.rst:16 msgid "" "The module implements three types of queue, which differ only in the order " "in which the entries are retrieved. In a :abbr:`FIFO (first-in, first-out)` " @@ -45,25 +41,21 @@ msgid "" "retrieved first." msgstr "" -#: ../../library/queue.rst:24 msgid "" "Internally, those three types of queues use locks to temporarily block " "competing threads; however, they are not designed to handle reentrancy " "within a thread." msgstr "" -#: ../../library/queue.rst:28 msgid "" "In addition, the module implements a \"simple\" :abbr:`FIFO (first-in, first-" "out)` queue type, :class:`SimpleQueue`, whose specific implementation " "provides additional guarantees in exchange for the smaller functionality." msgstr "" -#: ../../library/queue.rst:33 msgid "The :mod:`queue` module defines the following classes and exceptions:" msgstr "" -#: ../../library/queue.rst:37 msgid "" "Constructor for a :abbr:`FIFO (first-in, first-out)` queue. *maxsize* is an " "integer that sets the upperbound limit on the number of items that can be " @@ -72,7 +64,6 @@ msgid "" "the queue size is infinite." msgstr "" -#: ../../library/queue.rst:45 msgid "" "Constructor for a :abbr:`LIFO (last-in, first-out)` queue. *maxsize* is an " "integer that sets the upperbound limit on the number of items that can be " @@ -81,7 +72,6 @@ msgid "" "the queue size is infinite." msgstr "" -#: ../../library/queue.rst:54 msgid "" "Constructor for a priority queue. *maxsize* is an integer that sets the " "upperbound limit on the number of items that can be placed in the queue. " @@ -90,20 +80,17 @@ msgid "" "infinite." msgstr "" -#: ../../library/queue.rst:59 msgid "" "The lowest valued entries are retrieved first (the lowest valued entry is " "the one that would be returned by ``min(entries)``). A typical pattern for " "entries is a tuple in the form: ``(priority_number, data)``." msgstr "" -#: ../../library/queue.rst:63 msgid "" "If the *data* elements are not comparable, the data can be wrapped in a " "class that ignores the data item and only compares the priority number::" msgstr "" -#: ../../library/queue.rst:66 msgid "" "from dataclasses import dataclass, field\n" "from typing import Any\n" @@ -114,50 +101,40 @@ msgid "" " item: Any=field(compare=False)" msgstr "" -#: ../../library/queue.rst:76 msgid "" "Constructor for an unbounded :abbr:`FIFO (first-in, first-out)` queue. " "Simple queues lack advanced functionality such as task tracking." msgstr "" -#: ../../library/queue.rst:84 msgid "" -"Exception raised when non-blocking :meth:`~Queue.get` " -"(or :meth:`~Queue.get_nowait`) is called on a :class:`Queue` object which is " -"empty." +"Exception raised when non-blocking :meth:`~Queue.get` (or :meth:`~Queue." +"get_nowait`) is called on a :class:`Queue` object which is empty." msgstr "" -#: ../../library/queue.rst:91 msgid "" -"Exception raised when non-blocking :meth:`~Queue.put` " -"(or :meth:`~Queue.put_nowait`) is called on a :class:`Queue` object which is " -"full." +"Exception raised when non-blocking :meth:`~Queue.put` (or :meth:`~Queue." +"put_nowait`) is called on a :class:`Queue` object which is full." msgstr "" -#: ../../library/queue.rst:98 msgid "" "Exception raised when :meth:`~Queue.put` or :meth:`~Queue.get` is called on " "a :class:`Queue` object which has been shut down." msgstr "" -#: ../../library/queue.rst:107 msgid "Queue Objects" msgstr "" -#: ../../library/queue.rst:109 msgid "" -"Queue objects (:class:`Queue`, :class:`LifoQueue`, " -"or :class:`PriorityQueue`) provide the public methods described below." +"Queue objects (:class:`Queue`, :class:`LifoQueue`, or :class:" +"`PriorityQueue`) provide the public methods described below." msgstr "" -#: ../../library/queue.rst:115 msgid "" "Return the approximate size of the queue. Note, qsize() > 0 doesn't " "guarantee that a subsequent get() will not block, nor will qsize() < maxsize " "guarantee that put() will not block." msgstr "" -#: ../../library/queue.rst:122 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " "returns ``True`` it doesn't guarantee that a subsequent call to put() will " @@ -165,7 +142,6 @@ msgid "" "that a subsequent call to get() will not block." msgstr "" -#: ../../library/queue.rst:130 msgid "" "Return ``True`` if the queue is full, ``False`` otherwise. If full() " "returns ``True`` it doesn't guarantee that a subsequent call to get() will " @@ -173,7 +149,6 @@ msgid "" "a subsequent call to put() will not block." msgstr "" -#: ../../library/queue.rst:138 msgid "" "Put *item* into the queue. If optional args *block* is true and *timeout* " "is ``None`` (the default), block if necessary until a free slot is " @@ -184,15 +159,12 @@ msgid "" "(*timeout* is ignored in that case)." msgstr "" -#: ../../library/queue.rst:146 msgid "Raises :exc:`ShutDown` if the queue has been shut down." msgstr "" -#: ../../library/queue.rst:151 msgid "Equivalent to ``put(item, block=False)``." msgstr "" -#: ../../library/queue.rst:156 ../../library/queue.rst:297 msgid "" "Remove and return an item from the queue. If optional args *block* is true " "and *timeout* is ``None`` (the default), block if necessary until an item is " @@ -203,76 +175,63 @@ msgid "" "ignored in that case)." msgstr "" -#: ../../library/queue.rst:163 msgid "" "Prior to 3.0 on POSIX systems, and for all versions on Windows, if *block* " "is true and *timeout* is ``None``, this operation goes into an " "uninterruptible wait on an underlying lock. This means that no exceptions " -"can occur, and in particular a SIGINT will not trigger " -"a :exc:`KeyboardInterrupt`." +"can occur, and in particular a SIGINT will not trigger a :exc:" +"`KeyboardInterrupt`." msgstr "" -#: ../../library/queue.rst:168 msgid "" "Raises :exc:`ShutDown` if the queue has been shut down and is empty, or if " "the queue has been shut down immediately." msgstr "" -#: ../../library/queue.rst:174 ../../library/queue.rst:307 msgid "Equivalent to ``get(False)``." msgstr "" -#: ../../library/queue.rst:176 msgid "" "Two methods are offered to support tracking whether enqueued tasks have been " "fully processed by daemon consumer threads." msgstr "" -#: ../../library/queue.rst:182 msgid "" "Indicate that a formerly enqueued task is complete. Used by queue consumer " -"threads. For each :meth:`get` used to fetch a task, a subsequent call " -"to :meth:`task_done` tells the queue that the processing on the task is " -"complete." +"threads. For each :meth:`get` used to fetch a task, a subsequent call to :" +"meth:`task_done` tells the queue that the processing on the task is complete." msgstr "" -#: ../../library/queue.rst:186 msgid "" "If a :meth:`join` is currently blocking, it will resume when all items have " "been processed (meaning that a :meth:`task_done` call was received for every " "item that had been :meth:`put` into the queue)." msgstr "" -#: ../../library/queue.rst:190 msgid "" "``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " "in the queue." msgstr "" -#: ../../library/queue.rst:193 msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" -#: ../../library/queue.rst:199 msgid "Blocks until all items in the queue have been gotten and processed." msgstr "" -#: ../../library/queue.rst:201 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " -"queue. The count goes down whenever a consumer thread " -"calls :meth:`task_done` to indicate that the item was retrieved and all work " -"on it is complete. When the count of unfinished tasks drops to " -"zero, :meth:`join` unblocks." +"queue. The count goes down whenever a consumer thread calls :meth:" +"`task_done` to indicate that the item was retrieved and all work on it is " +"complete. When the count of unfinished tasks drops to zero, :meth:`join` " +"unblocks." msgstr "" -#: ../../library/queue.rst:207 msgid "Example of how to wait for enqueued tasks to be completed::" msgstr "" -#: ../../library/queue.rst:209 msgid "" "import threading\n" "import queue\n" @@ -298,60 +257,50 @@ msgid "" "print('All work completed')" msgstr "" -#: ../../library/queue.rst:234 msgid "Terminating queues" msgstr "" -#: ../../library/queue.rst:236 msgid "" ":class:`Queue` objects can be made to prevent further interaction by " "shutting them down." msgstr "" -#: ../../library/queue.rst:241 msgid "" -"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` " -"raise :exc:`ShutDown`." +"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` raise :" +"exc:`ShutDown`." msgstr "" -#: ../../library/queue.rst:244 msgid "" "By default, :meth:`~Queue.get` on a shut down queue will only raise once the " "queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " "immediately instead." msgstr "" -#: ../../library/queue.rst:248 msgid "" "All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " "unblocked. If *immediate* is true, a task will be marked as done for each " -"remaining item in the queue, which may unblock callers " -"of :meth:`~Queue.join`." +"remaining item in the queue, which may unblock callers of :meth:`~Queue." +"join`." msgstr "" -#: ../../library/queue.rst:257 msgid "SimpleQueue Objects" msgstr "" -#: ../../library/queue.rst:259 msgid "" ":class:`SimpleQueue` objects provide the public methods described below." msgstr "" -#: ../../library/queue.rst:263 msgid "" "Return the approximate size of the queue. Note, qsize() > 0 doesn't " "guarantee that a subsequent get() will not block." msgstr "" -#: ../../library/queue.rst:269 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " "returns ``False`` it doesn't guarantee that a subsequent call to get() will " "not block." msgstr "" -#: ../../library/queue.rst:276 msgid "" "Put *item* into the queue. The method never blocks and always succeeds " "(except for potential low-level errors such as failure to allocate memory). " @@ -359,7 +308,6 @@ msgid "" "compatibility with :meth:`Queue.put`." msgstr "" -#: ../../library/queue.rst:282 msgid "" "This method has a C implementation which is reentrant. That is, a ``put()`` " "or ``get()`` call can be interrupted by another ``put()`` call in the same " @@ -368,26 +316,22 @@ msgid "" "or :mod:`weakref` callbacks." msgstr "" -#: ../../library/queue.rst:291 msgid "" -"Equivalent to ``put(item, block=False)``, provided for compatibility " -"with :meth:`Queue.put_nowait`." +"Equivalent to ``put(item, block=False)``, provided for compatibility with :" +"meth:`Queue.put_nowait`." msgstr "" -#: ../../library/queue.rst:312 msgid "Class :class:`multiprocessing.Queue`" msgstr "" -#: ../../library/queue.rst:313 msgid "" "A queue class for use in a multi-processing (rather than multi-threading) " "context." msgstr "" -#: ../../library/queue.rst:316 msgid "" ":class:`collections.deque` is an alternative implementation of unbounded " -"queues with fast atomic :meth:`~collections.deque.append` " -"and :meth:`~collections.deque.popleft` operations that do not require " -"locking and also support indexing." +"queues with fast atomic :meth:`~collections.deque.append` and :meth:" +"`~collections.deque.popleft` operations that do not require locking and also " +"support indexing." msgstr "" diff --git a/library/quopri.po b/library/quopri.po index ecfb3cf..a945389 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/quopri.rst:2 msgid ":mod:`!quopri` --- Encode and decode MIME quoted-printable data" msgstr "" -#: ../../library/quopri.rst:7 msgid "**Source code:** :source:`Lib/quopri.py`" msgstr "" -#: ../../library/quopri.rst:15 msgid "" "This module performs quoted-printable transport encoding and decoding, as " "defined in :rfc:`1521`: \"MIME (Multipurpose Internet Mail Extensions) Part " @@ -37,7 +34,6 @@ msgid "" "characters, as when sending a graphics file." msgstr "" -#: ../../library/quopri.rst:25 msgid "" "Decode the contents of the *input* file and write the resulting decoded " "binary data to the *output* file. *input* and *output* must be :term:`binary " @@ -47,51 +43,42 @@ msgid "" "Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text\"." msgstr "" -#: ../../library/quopri.rst:35 msgid "" "Encode the contents of the *input* file and write the resulting quoted-" -"printable data to the *output* file. *input* and *output* must " -"be :term:`binary file objects `. *quotetabs*, a non-optional " -"flag which controls whether to encode embedded spaces and tabs; when true it " -"encodes such embedded whitespace, and when false it leaves them unencoded. " -"Note that spaces and tabs appearing at the end of lines are always encoded, " -"as per :rfc:`1521`. *header* is a flag which controls if spaces are encoded " -"as underscores as per :rfc:`1522`." +"printable data to the *output* file. *input* and *output* must be :term:" +"`binary file objects `. *quotetabs*, a non-optional flag which " +"controls whether to encode embedded spaces and tabs; when true it encodes " +"such embedded whitespace, and when false it leaves them unencoded. Note that " +"spaces and tabs appearing at the end of lines are always encoded, as per :" +"rfc:`1521`. *header* is a flag which controls if spaces are encoded as " +"underscores as per :rfc:`1522`." msgstr "" -#: ../../library/quopri.rst:48 msgid "" "Like :func:`decode`, except that it accepts a source :class:`bytes` and " "returns the corresponding decoded :class:`bytes`." msgstr "" -#: ../../library/quopri.rst:54 msgid "" "Like :func:`encode`, except that it accepts a source :class:`bytes` and " "returns the corresponding encoded :class:`bytes`. By default, it sends a " "``False`` value to *quotetabs* parameter of the :func:`encode` function." msgstr "" -#: ../../library/quopri.rst:62 msgid "Module :mod:`base64`" msgstr "" -#: ../../library/quopri.rst:63 msgid "Encode and decode MIME base64 data" msgstr "" -#: ../../library/quopri.rst:9 msgid "quoted-printable" msgstr "" -#: ../../library/quopri.rst:9 msgid "encoding" msgstr "" -#: ../../library/quopri.rst:9 msgid "MIME" msgstr "" -#: ../../library/quopri.rst:9 msgid "quoted-printable encoding" msgstr "" diff --git a/library/random.po b/library/random.po index 77970eb..10cb610 100644 --- a/library/random.po +++ b/library/random.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/random.rst:2 msgid ":mod:`!random` --- Generate pseudo-random numbers" msgstr "" -#: ../../library/random.rst:7 msgid "**Source code:** :source:`Lib/random.py`" msgstr "" -#: ../../library/random.rst:11 msgid "" "This module implements pseudo-random number generators for various " "distributions." msgstr "" -#: ../../library/random.rst:14 msgid "" "For integers, there is uniform selection from a range. For sequences, there " "is uniform selection of a random element, a function to generate a random " @@ -40,14 +36,12 @@ msgid "" "replacement." msgstr "" -#: ../../library/random.rst:19 msgid "" "On the real line, there are functions to compute uniform, normal (Gaussian), " "lognormal, negative exponential, gamma, and beta distributions. For " "generating distributions of angles, the von Mises distribution is available." msgstr "" -#: ../../library/random.rst:23 msgid "" "Almost all module functions depend on the basic function :func:`.random`, " "which generates a random float uniformly in the half-open range ``0.0 <= X < " @@ -59,41 +53,35 @@ msgid "" "purposes, and is completely unsuitable for cryptographic purposes." msgstr "" -#: ../../library/random.rst:32 msgid "" "The functions supplied by this module are actually bound methods of a hidden " "instance of the :class:`random.Random` class. You can instantiate your own " "instances of :class:`Random` to get generators that don't share state." msgstr "" -#: ../../library/random.rst:36 msgid "" "Class :class:`Random` can also be subclassed if you want to use a different " "basic generator of your own devising: see the documentation on that class " "for more details." msgstr "" -#: ../../library/random.rst:40 msgid "" "The :mod:`random` module also provides the :class:`SystemRandom` class which " "uses the system function :func:`os.urandom` to generate random numbers from " "sources provided by the operating system." msgstr "" -#: ../../library/random.rst:46 msgid "" "The pseudo-random generators of this module should not be used for security " "purposes. For security or cryptographic uses, see the :mod:`secrets` module." msgstr "" -#: ../../library/random.rst:52 msgid "" "M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " "equidistributed uniform pseudorandom number generator\", ACM Transactions on " "Modeling and Computer Simulation Vol. 8, No. 1, January pp.3--30 1998." msgstr "" -#: ../../library/random.rst:57 msgid "" "`Complementary-Multiply-with-Carry recipe `_ for a compatible " @@ -101,24 +89,20 @@ msgid "" "simple update operations." msgstr "" -#: ../../library/random.rst:63 msgid "" "The global random number generator and instances of :class:`Random` are " "thread-safe. However, in the free-threaded build, concurrent calls to the " "global generator or to the same instance of :class:`Random` may encounter " -"contention and poor performance. Consider using separate instances " -"of :class:`Random` per thread instead." +"contention and poor performance. Consider using separate instances of :class:" +"`Random` per thread instead." msgstr "" -#: ../../library/random.rst:70 msgid "Bookkeeping functions" msgstr "" -#: ../../library/random.rst:74 msgid "Initialize the random number generator." msgstr "" -#: ../../library/random.rst:76 msgid "" "If *a* is omitted or ``None``, the current system time is used. If " "randomness sources are provided by the operating system, they are used " @@ -126,138 +110,112 @@ msgid "" "on availability)." msgstr "" -#: ../../library/random.rst:81 msgid "If *a* is an int, it is used directly." msgstr "" -#: ../../library/random.rst:83 msgid "" -"With version 2 (the default), a :class:`str`, :class:`bytes`, " -"or :class:`bytearray` object gets converted to an :class:`int` and all of " -"its bits are used." +"With version 2 (the default), a :class:`str`, :class:`bytes`, or :class:" +"`bytearray` object gets converted to an :class:`int` and all of its bits are " +"used." msgstr "" -#: ../../library/random.rst:86 msgid "" "With version 1 (provided for reproducing random sequences from older " "versions of Python), the algorithm for :class:`str` and :class:`bytes` " "generates a narrower range of seeds." msgstr "" -#: ../../library/random.rst:90 msgid "" "Moved to the version 2 scheme which uses all of the bits in a string seed." msgstr "" -#: ../../library/random.rst:93 msgid "" -"The *seed* must be one of the following types: " -"``None``, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, " -"or :class:`bytearray`." +"The *seed* must be one of the following types: ``None``, :class:`int`, :" +"class:`float`, :class:`str`, :class:`bytes`, or :class:`bytearray`." msgstr "" -#: ../../library/random.rst:100 msgid "" "Return an object capturing the current internal state of the generator. " "This object can be passed to :func:`setstate` to restore the state." msgstr "" -#: ../../library/random.rst:106 msgid "" "*state* should have been obtained from a previous call to :func:`getstate`, " "and :func:`setstate` restores the internal state of the generator to what it " "was at the time :func:`getstate` was called." msgstr "" -#: ../../library/random.rst:112 msgid "Functions for bytes" msgstr "" -#: ../../library/random.rst:116 msgid "Generate *n* random bytes." msgstr "" -#: ../../library/random.rst:118 msgid "" -"This method should not be used for generating security tokens. " -"Use :func:`secrets.token_bytes` instead." +"This method should not be used for generating security tokens. Use :func:" +"`secrets.token_bytes` instead." msgstr "" -#: ../../library/random.rst:125 msgid "Functions for integers" msgstr "" -#: ../../library/random.rst:130 msgid "Return a randomly selected element from ``range(start, stop, step)``." msgstr "" -#: ../../library/random.rst:132 msgid "" "This is roughly equivalent to ``choice(range(start, stop, step))`` but " "supports arbitrarily large ranges and is optimized for common cases." msgstr "" -#: ../../library/random.rst:135 msgid "The positional argument pattern matches the :func:`range` function." msgstr "" -#: ../../library/random.rst:137 msgid "" "Keyword arguments should not be used because they can be interpreted in " "unexpected ways. For example ``randrange(start=100)`` is interpreted as " "``randrange(0, 100, 1)``." msgstr "" -#: ../../library/random.rst:141 msgid "" ":meth:`randrange` is more sophisticated about producing equally distributed " "values. Formerly it used a style like ``int(random()*n)`` which could " "produce slightly uneven distributions." msgstr "" -#: ../../library/random.rst:146 msgid "" "Automatic conversion of non-integer types is no longer supported. Calls such " -"as ``randrange(10.0)`` and ``randrange(Fraction(10, 1))`` now raise " -"a :exc:`TypeError`." +"as ``randrange(10.0)`` and ``randrange(Fraction(10, 1))`` now raise a :exc:" +"`TypeError`." msgstr "" -#: ../../library/random.rst:153 msgid "" "Return a random integer *N* such that ``a <= N <= b``. Alias for " "``randrange(a, b+1)``." msgstr "" -#: ../../library/random.rst:158 msgid "" "Returns a non-negative Python integer with *k* random bits. This method is " "supplied with the Mersenne Twister generator and some other generators may " -"also provide it as an optional part of the API. When " -"available, :meth:`getrandbits` enables :meth:`randrange` to handle " -"arbitrarily large ranges." +"also provide it as an optional part of the API. When available, :meth:" +"`getrandbits` enables :meth:`randrange` to handle arbitrarily large ranges." msgstr "" -#: ../../library/random.rst:164 msgid "This method now accepts zero for *k*." msgstr "" -#: ../../library/random.rst:169 msgid "Functions for sequences" msgstr "" -#: ../../library/random.rst:173 msgid "" "Return a random element from the non-empty sequence *seq*. If *seq* is " "empty, raises :exc:`IndexError`." msgstr "" -#: ../../library/random.rst:178 msgid "" "Return a *k* sized list of elements chosen from the *population* with " "replacement. If the *population* is empty, raises :exc:`IndexError`." msgstr "" -#: ../../library/random.rst:181 msgid "" "If a *weights* sequence is specified, selections are made according to the " "relative weights. Alternatively, if a *cum_weights* sequence is given, the " @@ -268,7 +226,6 @@ msgid "" "before making selections, so supplying the cumulative weights saves work." msgstr "" -#: ../../library/random.rst:190 msgid "" "If neither *weights* nor *cum_weights* are specified, selections are made " "with equal probability. If a weights sequence is supplied, it must be the " @@ -276,7 +233,6 @@ msgid "" "specify both *weights* and *cum_weights*." msgstr "" -#: ../../library/random.rst:195 msgid "" "The *weights* or *cum_weights* can use any numeric type that interoperates " "with the :class:`float` values returned by :func:`random` (that includes " @@ -285,31 +241,26 @@ msgid "" "are zero." msgstr "" -#: ../../library/random.rst:201 msgid "" "For a given seed, the :func:`choices` function with equal weighting " -"typically produces a different sequence than repeated calls " -"to :func:`choice`. The algorithm used by :func:`choices` uses floating-" -"point arithmetic for internal consistency and speed. The algorithm used " -"by :func:`choice` defaults to integer arithmetic with repeated selections to " -"avoid small biases from round-off error." +"typically produces a different sequence than repeated calls to :func:" +"`choice`. The algorithm used by :func:`choices` uses floating-point " +"arithmetic for internal consistency and speed. The algorithm used by :func:" +"`choice` defaults to integer arithmetic with repeated selections to avoid " +"small biases from round-off error." msgstr "" -#: ../../library/random.rst:210 msgid "Raises a :exc:`ValueError` if all weights are zero." msgstr "" -#: ../../library/random.rst:216 msgid "Shuffle the sequence *x* in place." msgstr "" -#: ../../library/random.rst:218 msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." msgstr "" -#: ../../library/random.rst:221 msgid "" "Note that even for small ``len(x)``, the total number of permutations of *x* " "can quickly grow larger than the period of most random number generators. " @@ -318,17 +269,14 @@ msgid "" "fit within the period of the Mersenne Twister random number generator." msgstr "" -#: ../../library/random.rst:227 msgid "Removed the optional parameter *random*." msgstr "" -#: ../../library/random.rst:233 msgid "" "Return a *k* length list of unique elements chosen from the population " "sequence. Used for random sampling without replacement." msgstr "" -#: ../../library/random.rst:236 msgid "" "Returns a new list containing elements from the population while leaving the " "original population unchanged. The resulting list is in selection order so " @@ -337,14 +285,12 @@ msgid "" "winners (the subslices)." msgstr "" -#: ../../library/random.rst:242 msgid "" "Members of the population need not be :term:`hashable` or unique. If the " "population contains repeats, then each occurrence is a possible selection in " "the sample." msgstr "" -#: ../../library/random.rst:245 msgid "" "Repeated elements can be specified one at a time or with the optional " "keyword-only *counts* parameter. For example, ``sample(['red', 'blue'], " @@ -352,64 +298,52 @@ msgid "" "'blue', 'blue'], k=5)``." msgstr "" -#: ../../library/random.rst:250 msgid "" "To choose a sample from a range of integers, use a :func:`range` object as " "an argument. This is especially fast and space efficient for sampling from " "a large population: ``sample(range(10000000), k=60)``." msgstr "" -#: ../../library/random.rst:254 msgid "" "If the sample size is larger than the population size, a :exc:`ValueError` " "is raised." msgstr "" -#: ../../library/random.rst:257 msgid "Added the *counts* parameter." msgstr "" -#: ../../library/random.rst:262 msgid "" "The *population* must be a sequence. Automatic conversion of sets to lists " "is no longer supported." msgstr "" -#: ../../library/random.rst:266 msgid "Discrete distributions" msgstr "" -#: ../../library/random.rst:268 msgid "The following function generates a discrete distribution." msgstr "" -#: ../../library/random.rst:272 msgid "" -"`Binomial distribution `_. Return the number of successes for *n* " -"independent trials with the probability of success in each trial being *p*:" +"`Binomial distribution `_. Return the number of successes for *n* independent trials with the " +"probability of success in each trial being *p*:" msgstr "" -#: ../../library/random.rst:277 msgid "Mathematically equivalent to::" msgstr "" -#: ../../library/random.rst:279 msgid "sum(random() < p for i in range(n))" msgstr "" -#: ../../library/random.rst:281 msgid "" "The number of trials *n* should be a non-negative integer. The probability " "of success *p* should be between ``0.0 <= p <= 1.0``. The result is an " "integer in the range ``0 <= X <= n``." msgstr "" -#: ../../library/random.rst:291 msgid "Real-valued distributions" msgstr "" -#: ../../library/random.rst:293 msgid "" "The following functions generate specific real-valued distributions. " "Function parameters are named after the corresponding variables in the " @@ -417,24 +351,20 @@ msgid "" "these equations can be found in any statistics text." msgstr "" -#: ../../library/random.rst:301 msgid "" "Return the next random floating-point number in the range ``0.0 <= X < 1.0``" msgstr "" -#: ../../library/random.rst:306 msgid "" "Return a random floating-point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." msgstr "" -#: ../../library/random.rst:309 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the expression ``a + (b-a) * random()``." msgstr "" -#: ../../library/random.rst:316 msgid "" "Return a random floating-point number *N* such that ``low <= N <= high`` and " "with the specified *mode* between those bounds. The *low* and *high* bounds " @@ -442,13 +372,11 @@ msgid "" "between the bounds, giving a symmetric distribution." msgstr "" -#: ../../library/random.rst:324 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." msgstr "" -#: ../../library/random.rst:330 msgid "" "Exponential distribution. *lambd* is 1.0 divided by the desired mean. It " "should be nonzero. (The parameter would be called \"lambda\", but that is a " @@ -457,36 +385,30 @@ msgid "" "negative." msgstr "" -#: ../../library/random.rst:336 msgid "Added the default value for ``lambd``." msgstr "" -#: ../../library/random.rst:342 msgid "" "Gamma distribution. (*Not* the gamma function!) The shape and scale " "parameters, *alpha* and *beta*, must have positive values. (Calling " "conventions vary and some sources define 'beta' as the inverse of the scale)." msgstr "" -#: ../../library/random.rst:347 msgid "The probability distribution function is::" msgstr "" -#: ../../library/random.rst:349 msgid "" " x ** (alpha - 1) * math.exp(-x / beta)\n" "pdf(x) = --------------------------------------\n" " math.gamma(alpha) * beta ** alpha" msgstr "" -#: ../../library/random.rst:356 msgid "" "Normal distribution, also called the Gaussian distribution. *mu* is the " "mean, and *sigma* is the standard deviation. This is slightly faster than " "the :func:`normalvariate` function defined below." msgstr "" -#: ../../library/random.rst:361 msgid "" "Multithreading note: When two threads call this function simultaneously, it " "is possible that they will receive the same return value. This can be " @@ -495,11 +417,9 @@ msgid "" "but thread-safe :func:`normalvariate` function instead." msgstr "" -#: ../../library/random.rst:368 ../../library/random.rst:384 msgid "*mu* and *sigma* now have default arguments." msgstr "" -#: ../../library/random.rst:374 msgid "" "Log normal distribution. If you take the natural logarithm of this " "distribution, you'll get a normal distribution with mean *mu* and standard " @@ -507,13 +427,11 @@ msgid "" "than zero." msgstr "" -#: ../../library/random.rst:382 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" -#: ../../library/random.rst:390 msgid "" "*mu* is the mean angle, expressed in radians between 0 and 2\\*\\ *pi*, and " "*kappa* is the concentration parameter, which must be greater than or equal " @@ -521,95 +439,79 @@ msgid "" "uniform random angle over the range 0 to 2\\*\\ *pi*." msgstr "" -#: ../../library/random.rst:398 msgid "Pareto distribution. *alpha* is the shape parameter." msgstr "" -#: ../../library/random.rst:403 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." msgstr "" -#: ../../library/random.rst:408 msgid "Alternative Generator" msgstr "" -#: ../../library/random.rst:412 msgid "" "Class that implements the default pseudo-random number generator used by " "the :mod:`random` module." msgstr "" -#: ../../library/random.rst:415 msgid "" "Formerly the *seed* could be any hashable object. Now it is limited to: " -"``None``, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, " -"or :class:`bytearray`." +"``None``, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :" +"class:`bytearray`." msgstr "" -#: ../../library/random.rst:420 msgid "" "Subclasses of :class:`!Random` should override the following methods if they " "wish to make use of a different basic generator:" msgstr "" -#: ../../library/random.rst:425 msgid "" "Override this method in subclasses to customise the :meth:`~random.seed` " "behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:430 msgid "" "Override this method in subclasses to customise the :meth:`~random.getstate` " "behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:435 msgid "" "Override this method in subclasses to customise the :meth:`~random.setstate` " "behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:440 msgid "" "Override this method in subclasses to customise the :meth:`~random.random` " "behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:443 msgid "" "Optionally, a custom generator subclass can also supply the following method:" msgstr "" -#: ../../library/random.rst:447 msgid "" -"Override this method in subclasses to customise " -"the :meth:`~random.getrandbits` behaviour of :class:`!Random` instances." +"Override this method in subclasses to customise the :meth:`~random." +"getrandbits` behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:452 msgid "" -"Override this method in subclasses to customise " -"the :meth:`~random.randbytes` behaviour of :class:`!Random` instances." +"Override this method in subclasses to customise the :meth:`~random." +"randbytes` behaviour of :class:`!Random` instances." msgstr "" -#: ../../library/random.rst:458 msgid "" "Class that uses the :func:`os.urandom` function for generating random " "numbers from sources provided by the operating system. Not available on all " "systems. Does not rely on software state, and sequences are not " "reproducible. Accordingly, the :meth:`seed` method has no effect and is " -"ignored. The :meth:`getstate` and :meth:`setstate` methods " -"raise :exc:`NotImplementedError` if called." +"ignored. The :meth:`getstate` and :meth:`setstate` methods raise :exc:" +"`NotImplementedError` if called." msgstr "" -#: ../../library/random.rst:467 msgid "Notes on Reproducibility" msgstr "" -#: ../../library/random.rst:469 msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " "pseudo-random number generator. By reusing a seed value, the same sequence " @@ -617,33 +519,27 @@ msgid "" "running." msgstr "" -#: ../../library/random.rst:473 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" msgstr "" -#: ../../library/random.rst:476 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." msgstr "" -#: ../../library/random.rst:479 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." msgstr "" -#: ../../library/random.rst:485 msgid "Examples" msgstr "" -#: ../../library/random.rst:487 msgid "Basic examples::" msgstr "" -#: ../../library/random.rst:489 msgid "" ">>> random() # Random float: 0.0 <= x < 1.0\n" "0.37444887175646646\n" @@ -675,11 +571,9 @@ msgid "" "[40, 10, 50, 30]" msgstr "" -#: ../../library/random.rst:515 msgid "Simulations::" msgstr "" -#: ../../library/random.rst:517 msgid "" ">>> # Six roulette wheel spins (weighted sampling with replacement)\n" ">>> choices(['red', 'black', 'green'], [18, 18, 2], k=6)\n" @@ -705,14 +599,12 @@ msgid "" "0.7958" msgstr "" -#: ../../library/random.rst:540 msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample::" msgstr "" -#: ../../library/random.rst:544 msgid "" "# https://www.thoughtco.com/example-of-bootstrapping-3126155\n" "from statistics import fmean as mean\n" @@ -724,7 +616,6 @@ msgid "" " f'interval from {means[5]:.1f} to {means[94]:.1f}')" msgstr "" -#: ../../library/random.rst:553 msgid "" "Example of a `resampling permutation test `_ to determine the statistical " @@ -732,7 +623,6 @@ msgid "" "observed difference between the effects of a drug versus a placebo::" msgstr "" -#: ../../library/random.rst:559 msgid "" "# Example from \"Statistics is Easy\" by Dennis Shasha and Manda Wilson\n" "from statistics import fmean as mean\n" @@ -760,12 +650,10 @@ msgid "" "placebo.')" msgstr "" -#: ../../library/random.rst:580 msgid "" "Simulation of arrival times and service deliveries for a multiserver queue::" msgstr "" -#: ../../library/random.rst:582 msgid "" "from heapq import heapify, heapreplace\n" "from random import expovariate, gauss\n" @@ -794,7 +682,6 @@ msgid "" "print('Quartiles:', [round(q, 1) for q in quantiles(waits)])" msgstr "" -#: ../../library/random.rst:609 msgid "" "`Statistics for Hackers `_ a " "video tutorial by `Jake Vanderplas `_ a simulation of a marketplace by `Peter Norvig `_ that shows effective use of many of the tools and " -"distributions provided by this module (gauss, uniform, sample, betavariate, " -"choice, triangular, and randrange)." +"`Economics Simulation `_ a simulation of a marketplace by `Peter Norvig `_ that shows effective use of many of the tools and distributions " +"provided by this module (gauss, uniform, sample, betavariate, choice, " +"triangular, and randrange)." msgstr "" -#: ../../library/random.rst:622 msgid "" "`A Concrete Introduction to Probability (using Python) `_ a tutorial by `Peter Norvig " @@ -819,17 +704,14 @@ msgid "" "how to write simulations, and how to perform data analysis using Python." msgstr "" -#: ../../library/random.rst:630 msgid "Recipes" msgstr "" -#: ../../library/random.rst:632 msgid "" "These recipes show how to efficiently make random selections from the " "combinatoric iterators in the :mod:`itertools` module:" msgstr "" -#: ../../library/random.rst:635 msgid "" "def random_product(*args, repeat=1):\n" " \"Random selection from itertools.product(*args, **kwds)\"\n" @@ -852,15 +734,14 @@ msgid "" "def random_combination_with_replacement(iterable, r):\n" " \"Choose r elements with replacement. Order the result to match the " "iterable.\"\n" -" # Result will be in " -"set(itertools.combinations_with_replacement(iterable, r)).\n" +" # Result will be in set(itertools." +"combinations_with_replacement(iterable, r)).\n" " pool = tuple(iterable)\n" " n = len(pool)\n" " indices = sorted(random.choices(range(n), k=r))\n" " return tuple(pool[i] for i in indices)" msgstr "" -#: ../../library/random.rst:664 msgid "" "The default :func:`.random` returns multiples of 2⁻⁵³ in the range *0.0 ≤ x " "< 1.0*. All such numbers are evenly spaced and are exactly representable as " @@ -869,7 +750,6 @@ msgid "" "integer multiple of 2⁻⁵³." msgstr "" -#: ../../library/random.rst:670 msgid "" "The following recipe takes a different approach. All floats in the interval " "are possible selections. The mantissa comes from a uniform distribution of " @@ -878,7 +758,6 @@ msgid "" "often as the next larger exponent." msgstr "" -#: ../../library/random.rst:678 msgid "" "from random import Random\n" "from math import ldexp\n" @@ -895,13 +774,11 @@ msgid "" " return ldexp(mantissa, exponent)" msgstr "" -#: ../../library/random.rst:692 msgid "" "All :ref:`real valued distributions ` in the " "class will use the new method::" msgstr "" -#: ../../library/random.rst:695 msgid "" ">>> fr = FullRandom()\n" ">>> fr.random()\n" @@ -910,7 +787,6 @@ msgid "" "8.87925541791544" msgstr "" -#: ../../library/random.rst:701 msgid "" "The recipe is conceptually equivalent to an algorithm that chooses from all " "the multiples of 2⁻¹⁰⁷⁴ in the range *0.0 ≤ x < 1.0*. All such numbers are " @@ -919,75 +795,59 @@ msgid "" "and is equal to ``math.ulp(0.0)``.)" msgstr "" -#: ../../library/random.rst:710 msgid "" "`Generating Pseudo-random Floating-Point Values `_ a paper by Allen B. Downey describing " -"ways to generate more fine-grained floats than normally generated " -"by :func:`.random`." +"ways to generate more fine-grained floats than normally generated by :func:`." +"random`." msgstr "" -#: ../../library/random.rst:718 msgid "Command-line usage" msgstr "" -#: ../../library/random.rst:722 msgid "The :mod:`!random` module can be executed from the command line." msgstr "" -#: ../../library/random.rst:724 msgid "" "python -m random [-h] [-c CHOICE [CHOICE ...] | -i N | -f N] [input ...]" msgstr "" -#: ../../library/random.rst:728 msgid "The following options are accepted:" msgstr "" -#: ../../library/random.rst:734 msgid "Show the help message and exit." msgstr "" -#: ../../library/random.rst:739 msgid "Print a random choice, using :meth:`choice`." msgstr "" -#: ../../library/random.rst:744 msgid "" "Print a random integer between 1 and N inclusive, using :meth:`randint`." msgstr "" -#: ../../library/random.rst:749 msgid "" -"Print a random floating-point number between 0 and N inclusive, " -"using :meth:`uniform`." +"Print a random floating-point number between 0 and N inclusive, using :meth:" +"`uniform`." msgstr "" -#: ../../library/random.rst:752 msgid "If no options are given, the output depends on the input:" msgstr "" -#: ../../library/random.rst:754 msgid "String or multiple: same as :option:`--choice`." msgstr "" -#: ../../library/random.rst:755 msgid "Integer: same as :option:`--integer`." msgstr "" -#: ../../library/random.rst:756 msgid "Float: same as :option:`--float`." msgstr "" -#: ../../library/random.rst:761 msgid "Command-line example" msgstr "" -#: ../../library/random.rst:763 msgid "Here are some examples of the :mod:`!random` command-line interface:" msgstr "" -#: ../../library/random.rst:765 msgid "" "$ # Choose one at random\n" "$ python -m random egg bacon sausage spam \"Lobster Thermidor aux crevettes " diff --git a/library/re.po b/library/re.po index 8168d34..c7064d3 100644 --- a/library/re.po +++ b/library/re.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,31 +22,26 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/re.rst:2 msgid ":mod:`!re` --- Regular expression operations" msgstr "" -#: ../../library/re.rst:10 msgid "**Source code:** :source:`Lib/re/`" msgstr "" -#: ../../library/re.rst:14 msgid "" "This module provides regular expression matching operations similar to those " "found in Perl." msgstr "" -#: ../../library/re.rst:17 msgid "" -"Both patterns and strings to be searched can be Unicode strings " -"(:class:`str`) as well as 8-bit strings (:class:`bytes`). However, Unicode " -"strings and 8-bit strings cannot be mixed: that is, you cannot match a " -"Unicode string with a bytes pattern or vice-versa; similarly, when asking " -"for a substitution, the replacement string must be of the same type as both " -"the pattern and the search string." +"Both patterns and strings to be searched can be Unicode strings (:class:" +"`str`) as well as 8-bit strings (:class:`bytes`). However, Unicode strings " +"and 8-bit strings cannot be mixed: that is, you cannot match a Unicode " +"string with a bytes pattern or vice-versa; similarly, when asking for a " +"substitution, the replacement string must be of the same type as both the " +"pattern and the search string." msgstr "" -#: ../../library/re.rst:24 msgid "" "Regular expressions use the backslash character (``'\\'``) to indicate " "special forms or to allow special characters to be used without invoking " @@ -62,7 +56,6 @@ msgid "" "even if it is a valid escape sequence for a regular expression." msgstr "" -#: ../../library/re.rst:36 msgid "" "The solution is to use Python's raw string notation for regular expression " "patterns; backslashes are not handled in any special way in a string literal " @@ -72,7 +65,6 @@ msgid "" "string notation." msgstr "" -#: ../../library/re.rst:43 msgid "" "It is important to note that most regular expression operations are " "available as module-level functions and methods on :ref:`compiled regular " @@ -80,18 +72,15 @@ msgid "" "you to compile a regex object first, but miss some fine-tuning parameters." msgstr "" -#: ../../library/re.rst:51 msgid "" "The third-party :pypi:`regex` module, which has an API compatible with the " "standard library :mod:`re` module, but offers additional functionality and a " "more thorough Unicode support." msgstr "" -#: ../../library/re.rst:59 msgid "Regular Expression Syntax" msgstr "" -#: ../../library/re.rst:61 msgid "" "A regular expression (or RE) specifies a set of strings that matches it; the " "functions in this module let you check if a particular string matches a " @@ -99,7 +88,6 @@ msgid "" "particular string, which comes down to the same thing)." msgstr "" -#: ../../library/re.rst:66 msgid "" "Regular expressions can be concatenated to form new regular expressions; if " "*A* and *B* are both regular expressions, then *AB* is also a regular " @@ -113,14 +101,12 @@ msgid "" "construction." msgstr "" -#: ../../library/re.rst:76 msgid "" "A brief explanation of the format of regular expressions follows. For " "further information and a gentler presentation, consult the :ref:`regex-" "howto`." msgstr "" -#: ../../library/re.rst:79 msgid "" "Regular expressions can contain both special and ordinary characters. Most " "ordinary characters, like ``'A'``, ``'a'``, or ``'0'``, are the simplest " @@ -130,14 +116,12 @@ msgid "" "without quotes, and strings to be matched ``'in single quotes'``.)" msgstr "" -#: ../../library/re.rst:86 msgid "" "Some characters, like ``'|'`` or ``'('``, are special. Special characters " "either stand for classes of ordinary characters, or affect how the regular " "expressions around them are interpreted." msgstr "" -#: ../../library/re.rst:90 msgid "" "Repetition operators or quantifiers (``*``, ``+``, ``?``, ``{m,n}``, etc) " "cannot be directly nested. This avoids ambiguity with the non-greedy " @@ -147,84 +131,69 @@ msgid "" "``'a'`` characters." msgstr "" -#: ../../library/re.rst:97 msgid "The special characters are:" msgstr "" -#: ../../library/re.rst:101 ../../library/re.rst:1663 msgid "``.``" msgstr "" -#: ../../library/re.rst:102 msgid "" "(Dot.) In the default mode, this matches any character except a newline. " "If the :const:`DOTALL` flag has been specified, this matches any character " "including a newline. ``(?s:.)`` matches any character regardless of flags." msgstr "" -#: ../../library/re.rst:108 msgid "``^``" -msgstr "``^``" +msgstr "" -#: ../../library/re.rst:109 msgid "" "(Caret.) Matches the start of the string, and in :const:`MULTILINE` mode " "also matches immediately after each newline." msgstr "" -#: ../../library/re.rst:114 msgid "``$``" -msgstr "``$``" +msgstr "" -#: ../../library/re.rst:115 msgid "" "Matches the end of the string or just before the newline at the end of the " "string, and in :const:`MULTILINE` mode also matches before a newline. " "``foo`` matches both 'foo' and 'foobar', while the regular expression " "``foo$`` matches only 'foo'. More interestingly, searching for ``foo.$`` in " -"``'foo1\\nfoo2\\n'`` matches 'foo2' normally, but 'foo1' " -"in :const:`MULTILINE` mode; searching for a single ``$`` in ``'foo\\n'`` " -"will find two (empty) matches: one just before the newline, and one at the " -"end of the string." +"``'foo1\\nfoo2\\n'`` matches 'foo2' normally, but 'foo1' in :const:" +"`MULTILINE` mode; searching for a single ``$`` in ``'foo\\n'`` will find two " +"(empty) matches: one just before the newline, and one at the end of the " +"string." msgstr "" -#: ../../library/re.rst:125 msgid "``*``" -msgstr "``*``" +msgstr "" -#: ../../library/re.rst:126 msgid "" "Causes the resulting RE to match 0 or more repetitions of the preceding RE, " "as many repetitions as are possible. ``ab*`` will match 'a', 'ab', or 'a' " "followed by any number of 'b's." msgstr "" -#: ../../library/re.rst:132 msgid "``+``" msgstr "" -#: ../../library/re.rst:133 msgid "" "Causes the resulting RE to match 1 or more repetitions of the preceding RE. " "``ab+`` will match 'a' followed by any non-zero number of 'b's; it will not " "match just 'a'." msgstr "" -#: ../../library/re.rst:139 msgid "``?``" -msgstr "``?``" +msgstr "" -#: ../../library/re.rst:140 msgid "" "Causes the resulting RE to match 0 or 1 repetitions of the preceding RE. " "``ab?`` will match either 'a' or 'ab'." msgstr "" -#: ../../library/re.rst:148 msgid "``*?``, ``+?``, ``??``" msgstr "" -#: ../../library/re.rst:149 msgid "" "The ``'*'``, ``'+'``, and ``'?'`` quantifiers are all :dfn:`greedy`; they " "match as much text as possible. Sometimes this behaviour isn't desired; if " @@ -235,11 +204,9 @@ msgid "" "only ``''``." msgstr "" -#: ../../library/re.rst:162 msgid "``*+``, ``++``, ``?+``" msgstr "" -#: ../../library/re.rst:163 msgid "" "Like the ``'*'``, ``'+'``, and ``'?'`` quantifiers, those where ``'+'`` is " "appended also match as many times as possible. However, unlike the true " @@ -256,22 +223,18 @@ msgid "" "``(?>x?)`` correspondingly." msgstr "" -#: ../../library/re.rst:184 msgid "``{m}``" msgstr "" -#: ../../library/re.rst:185 msgid "" "Specifies that exactly *m* copies of the previous RE should be matched; " "fewer matches cause the entire RE not to match. For example, ``a{6}`` will " "match exactly six ``'a'`` characters, but not five." msgstr "" -#: ../../library/re.rst:189 msgid "``{m,n}``" msgstr "" -#: ../../library/re.rst:190 msgid "" "Causes the resulting RE to match from *m* to *n* repetitions of the " "preceding RE, attempting to match as many repetitions as possible. For " @@ -283,11 +246,9 @@ msgid "" "described form." msgstr "" -#: ../../library/re.rst:198 msgid "``{m,n}?``" msgstr "" -#: ../../library/re.rst:199 msgid "" "Causes the resulting RE to match from *m* to *n* repetitions of the " "preceding RE, attempting to match as *few* repetitions as possible. This is " @@ -296,11 +257,9 @@ msgid "" "while ``a{3,5}?`` will only match 3 characters." msgstr "" -#: ../../library/re.rst:205 msgid "``{m,n}+``" msgstr "" -#: ../../library/re.rst:206 msgid "" "Causes the resulting RE to match from *m* to *n* repetitions of the " "preceding RE, attempting to match as many repetitions as possible *without* " @@ -313,18 +272,15 @@ msgid "" "``aa`` in the pattern. ``x{m,n}+`` is equivalent to ``(?>x{m,n})``." msgstr "" -#: ../../library/re.rst:222 msgid "``\\``" msgstr "" -#: ../../library/re.rst:223 msgid "" "Either escapes special characters (permitting you to match characters like " "``'*'``, ``'?'``, and so forth), or signals a special sequence; special " "sequences are discussed below." msgstr "" -#: ../../library/re.rst:227 msgid "" "If you're not using a raw string to express the pattern, remember that " "Python also uses the backslash as an escape sequence in string literals; if " @@ -335,21 +291,17 @@ msgid "" "recommended that you use raw strings for all but the simplest expressions." msgstr "" -#: ../../library/re.rst:238 msgid "``[]``" msgstr "" -#: ../../library/re.rst:239 msgid "Used to indicate a set of characters. In a set:" msgstr "" -#: ../../library/re.rst:241 msgid "" "Characters can be listed individually, e.g. ``[amk]`` will match ``'a'``, " "``'m'``, or ``'k'``." msgstr "" -#: ../../library/re.rst:246 msgid "" "Ranges of characters can be indicated by giving two characters and " "separating them by a ``'-'``, for example ``[a-z]`` will match any lowercase " @@ -359,14 +311,12 @@ msgid "" "character (e.g. ``[-a]`` or ``[a-]``), it will match a literal ``'-'``." msgstr "" -#: ../../library/re.rst:253 msgid "" "Special characters except backslash lose their special meaning inside sets. " "For example, ``[(+*)]`` will match any of the literal characters ``'('``, " "``'+'``, ``'*'``, or ``')'``." msgstr "" -#: ../../library/re.rst:260 msgid "" "Backslash either escapes characters which have special meaning in a set such " "as ``'-'``, ``']'``, ``'^'`` and ``'\\\\'`` itself or signals a special " @@ -378,17 +328,15 @@ msgid "" "character such as ``\\A`` and ``\\z`` are not allowed." msgstr "" -#: ../../library/re.rst:273 msgid "" -"Characters that are not within a range can be matched " -"by :dfn:`complementing` the set. If the first character of the set is " -"``'^'``, all the characters that are *not* in the set will be matched. For " -"example, ``[^5]`` will match any character except ``'5'``, and ``[^^]`` will " -"match any character except ``'^'``. ``^`` has no special meaning if it's " -"not the first character in the set." +"Characters that are not within a range can be matched by :dfn:" +"`complementing` the set. If the first character of the set is ``'^'``, all " +"the characters that are *not* in the set will be matched. For example, " +"``[^5]`` will match any character except ``'5'``, and ``[^^]`` will match " +"any character except ``'^'``. ``^`` has no special meaning if it's not the " +"first character in the set." msgstr "" -#: ../../library/re.rst:280 msgid "" "To match a literal ``']'`` inside a set, precede it with a backslash, or " "place it at the beginning of the set. For example, both ``[()[\\]{}]`` and " @@ -396,7 +344,6 @@ msgid "" "and parentheses." msgstr "" -#: ../../library/re.rst:290 msgid "" "Support of nested sets and set operations as in `Unicode Technical Standard " "#18`_ might be added in the future. This would change the syntax, so to " @@ -406,17 +353,14 @@ msgid "" "``'||'``. To avoid a warning escape them with a backslash." msgstr "" -#: ../../library/re.rst:300 msgid "" ":exc:`FutureWarning` is raised if a character set contains constructs that " "will change semantically in the future." msgstr "" -#: ../../library/re.rst:306 msgid "``|``" -msgstr "``|``" +msgstr "" -#: ../../library/re.rst:307 msgid "" "``A|B``, where *A* and *B* can be arbitrary REs, creates a regular " "expression that will match either *A* or *B*. An arbitrary number of REs " @@ -429,11 +373,9 @@ msgid "" "use ``\\|``, or enclose it inside a character class, as in ``[|]``." msgstr "" -#: ../../library/re.rst:320 msgid "``(...)``" msgstr "" -#: ../../library/re.rst:321 msgid "" "Matches whatever regular expression is inside the parentheses, and indicates " "the start and end of a group; the contents of a group can be retrieved after " @@ -443,11 +385,9 @@ msgid "" "character class: ``[(]``, ``[)]``." msgstr "" -#: ../../library/re.rst:329 msgid "``(?...)``" msgstr "" -#: ../../library/re.rst:330 msgid "" "This is an extension notation (a ``'?'`` following a ``'('`` is not " "meaningful otherwise). The first character after the ``'?'`` determines " @@ -456,46 +396,36 @@ msgid "" "rule. Following are the currently supported extensions." msgstr "" -#: ../../library/re.rst:336 msgid "``(?aiLmsux)``" msgstr "" -#: ../../library/re.rst:337 msgid "" "(One or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``.) The group matches the empty string; the letters " "set the corresponding flags for the entire regular expression:" msgstr "" -#: ../../library/re.rst:342 ../../library/re.rst:374 msgid ":const:`re.A` (ASCII-only matching)" msgstr "" -#: ../../library/re.rst:343 ../../library/re.rst:375 msgid ":const:`re.I` (ignore case)" msgstr "" -#: ../../library/re.rst:344 ../../library/re.rst:376 msgid ":const:`re.L` (locale dependent)" msgstr "" -#: ../../library/re.rst:345 ../../library/re.rst:377 msgid ":const:`re.M` (multi-line)" msgstr "" -#: ../../library/re.rst:346 ../../library/re.rst:378 msgid ":const:`re.S` (dot matches all)" msgstr "" -#: ../../library/re.rst:347 ../../library/re.rst:379 msgid ":const:`re.U` (Unicode matching)" msgstr "" -#: ../../library/re.rst:348 ../../library/re.rst:380 msgid ":const:`re.X` (verbose)" msgstr "" -#: ../../library/re.rst:350 msgid "" "(The flags are described in :ref:`contents-of-module-re`.) This is useful if " "you wish to include the flags as part of the regular expression, instead of " @@ -503,15 +433,12 @@ msgid "" "be used first in the expression string." msgstr "" -#: ../../library/re.rst:356 msgid "This construction can only be used at the start of the expression." msgstr "" -#: ../../library/re.rst:361 msgid "``(?:...)``" msgstr "" -#: ../../library/re.rst:362 msgid "" "A non-capturing version of regular parentheses. Matches whatever regular " "expression is inside the parentheses, but the substring matched by the group " @@ -519,11 +446,9 @@ msgid "" "pattern." msgstr "" -#: ../../library/re.rst:367 msgid "``(?aiLmsux-imsx:...)``" msgstr "" -#: ../../library/re.rst:368 msgid "" "(Zero or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``, optionally followed by ``'-'`` followed by one or " @@ -531,11 +456,9 @@ msgid "" "or remove the corresponding flags for the part of the expression:" msgstr "" -#: ../../library/re.rst:382 msgid "(The flags are described in :ref:`contents-of-module-re`.)" msgstr "" -#: ../../library/re.rst:384 msgid "" "The letters ``'a'``, ``'L'`` and ``'u'`` are mutually exclusive when used as " "inline flags, so they can't be combined or follow ``'-'``. Instead, when " @@ -548,33 +471,28 @@ msgid "" "restored outside of the group." msgstr "" -#: ../../library/re.rst:396 msgid "The letters ``'a'``, ``'L'`` and ``'u'`` also can be used in a group." msgstr "" -#: ../../library/re.rst:399 msgid "``(?>...)``" msgstr "" -#: ../../library/re.rst:400 msgid "" "Attempts to match ``...`` as if it was a separate regular expression, and if " "successful, continues to match the rest of the pattern following it. If the " "subsequent pattern fails to match, the stack can only be unwound to a point " -"*before* the ``(?>...)`` because once exited, the expression, known as " -"an :dfn:`atomic group`, has thrown away all stack points within itself. " -"Thus, ``(?>.*).`` would never match anything because first the ``.*`` would " -"match all characters possible, then, having nothing left to match, the final " -"``.`` would fail to match. Since there are no stack points saved in the " -"Atomic Group, and there is no stack point before it, the entire expression " -"would thus fail to match." +"*before* the ``(?>...)`` because once exited, the expression, known as an :" +"dfn:`atomic group`, has thrown away all stack points within itself. Thus, " +"``(?>.*).`` would never match anything because first the ``.*`` would match " +"all characters possible, then, having nothing left to match, the final ``.`` " +"would fail to match. Since there are no stack points saved in the Atomic " +"Group, and there is no stack point before it, the entire expression would " +"thus fail to match." msgstr "" -#: ../../library/re.rst:416 msgid "``(?P...)``" msgstr "" -#: ../../library/re.rst:417 msgid "" "Similar to regular parentheses, but the substring matched by the group is " "accessible via the symbolic group name *name*. Group names must be valid " @@ -584,108 +502,85 @@ msgid "" "the group were not named." msgstr "" -#: ../../library/re.rst:424 msgid "" "Named groups can be referenced in three contexts. If the pattern is ``(?" "P['\"]).*?(?P=quote)`` (i.e. matching a string quoted with either " "single or double quotes):" msgstr "" -#: ../../library/re.rst:429 msgid "Context of reference to group \"quote\"" msgstr "" -#: ../../library/re.rst:429 msgid "Ways to reference it" msgstr "" -#: ../../library/re.rst:431 msgid "in the same pattern itself" msgstr "" -#: ../../library/re.rst:431 msgid "``(?P=quote)`` (as shown)" msgstr "" -#: ../../library/re.rst:432 ../../library/re.rst:439 msgid "``\\1``" msgstr "" -#: ../../library/re.rst:434 msgid "when processing match object *m*" msgstr "" -#: ../../library/re.rst:434 msgid "``m.group('quote')``" msgstr "" -#: ../../library/re.rst:435 msgid "``m.end('quote')`` (etc.)" msgstr "" -#: ../../library/re.rst:437 msgid "in a string passed to the *repl* argument of ``re.sub()``" msgstr "" -#: ../../library/re.rst:437 msgid "``\\g``" msgstr "" -#: ../../library/re.rst:438 msgid "``\\g<1>``" msgstr "" -#: ../../library/re.rst:442 msgid "" "In :class:`bytes` patterns, group *name* can only contain bytes in the ASCII " "range (``b'\\x00'``-``b'\\x7f'``)." msgstr "" -#: ../../library/re.rst:448 msgid "``(?P=name)``" msgstr "" -#: ../../library/re.rst:449 msgid "" "A backreference to a named group; it matches whatever text was matched by " "the earlier group named *name*." msgstr "" -#: ../../library/re.rst:454 msgid "``(?#...)``" msgstr "" -#: ../../library/re.rst:455 msgid "A comment; the contents of the parentheses are simply ignored." msgstr "" -#: ../../library/re.rst:459 msgid "``(?=...)``" -msgstr "``(?=...)``" +msgstr "" -#: ../../library/re.rst:460 msgid "" "Matches if ``...`` matches next, but doesn't consume any of the string. " "This is called a :dfn:`lookahead assertion`. For example, ``Isaac (?" "=Asimov)`` will match ``'Isaac '`` only if it's followed by ``'Asimov'``." msgstr "" -#: ../../library/re.rst:466 msgid "``(?!...)``" -msgstr "``(?!...)``" +msgstr "" -#: ../../library/re.rst:467 msgid "" "Matches if ``...`` doesn't match next. This is a :dfn:`negative lookahead " "assertion`. For example, ``Isaac (?!Asimov)`` will match ``'Isaac '`` only " "if it's *not* followed by ``'Asimov'``." msgstr "" -#: ../../library/re.rst:473 msgid "``(?<=...)``" msgstr "" -#: ../../library/re.rst:474 msgid "" "Matches if the current position in the string is preceded by a match for " "``...`` that ends at the current position. This is called a :dfn:`positive " @@ -695,23 +590,19 @@ msgid "" "length, meaning that ``abc`` or ``a|b`` are allowed, but ``a*`` and ``a{3,4}" "`` are not. Note that patterns which start with positive lookbehind " "assertions will not match at the beginning of the string being searched; you " -"will most likely want to use the :func:`search` function rather than " -"the :func:`match` function:" +"will most likely want to use the :func:`search` function rather than the :" +"func:`match` function:" msgstr "" -#: ../../library/re.rst:489 msgid "This example looks for a word following a hyphen:" msgstr "" -#: ../../library/re.rst:495 msgid "Added support for group references of fixed length." msgstr "" -#: ../../library/re.rst:500 msgid "``(?'``." msgstr "" -#: ../../library/re.rst:518 msgid "" "Group *id* can only contain ASCII digits. In :class:`bytes` patterns, group " "*name* can only contain bytes in the ASCII range (``b'\\x00'``-``b'\\x7f'``)." msgstr "" -#: ../../library/re.rst:526 msgid "" "The special sequences consist of ``'\\'`` and a character from the list " "below. If the ordinary character is not an ASCII digit or an ASCII letter, " @@ -748,11 +635,9 @@ msgid "" "matches the character ``'$'``." msgstr "" -#: ../../library/re.rst:533 msgid "``\\number``" msgstr "" -#: ../../library/re.rst:534 msgid "" "Matches the contents of the group of the same number. Groups are numbered " "starting from 1. For example, ``(.+) \\1`` matches ``'the the'`` or ``'55 " @@ -764,19 +649,15 @@ msgid "" "escapes are treated as characters." msgstr "" -#: ../../library/re.rst:545 msgid "``\\A``" -msgstr "``\\A``" +msgstr "" -#: ../../library/re.rst:546 msgid "Matches only at the start of the string." msgstr "" -#: ../../library/re.rst:550 msgid "``\\b``" -msgstr "``\\b``" +msgstr "" -#: ../../library/re.rst:551 msgid "" "Matches the empty string, but only at the beginning or end of a word. A word " "is defined as a sequence of word characters. Note that formally, ``\\b`` is " @@ -786,25 +667,21 @@ msgid "" "``'as at ay'`` but not ``'attempt'`` or ``'atlas'``." msgstr "" -#: ../../library/re.rst:559 msgid "" "The default word characters in Unicode (str) patterns are Unicode " -"alphanumerics and the underscore, but this can be changed by using " -"the :py:const:`~re.ASCII` flag. Word boundaries are determined by the " -"current locale if the :py:const:`~re.LOCALE` flag is used." +"alphanumerics and the underscore, but this can be changed by using the :py:" +"const:`~re.ASCII` flag. Word boundaries are determined by the current locale " +"if the :py:const:`~re.LOCALE` flag is used." msgstr "" -#: ../../library/re.rst:567 msgid "" "Inside a character range, ``\\b`` represents the backspace character, for " "compatibility with Python's string literals." msgstr "" -#: ../../library/re.rst:572 msgid "``\\B``" -msgstr "``\\B``" +msgstr "" -#: ../../library/re.rst:573 msgid "" "Matches the empty string, but only when it is *not* at the beginning or end " "of a word. This means that ``r'at\\B'`` matches ``'athens'``, ``'atom'``, " @@ -815,107 +692,86 @@ msgid "" "current locale if the :py:const:`~re.LOCALE` flag is used." msgstr "" -#: ../../library/re.rst:584 msgid "``\\B`` now matches empty input string." msgstr "" -#: ../../library/re.rst:589 msgid "``\\d``" -msgstr "``\\d``" +msgstr "" -#: ../../library/re.rst:590 ../../library/re.rst:614 ../../library/re.rst:636 msgid "For Unicode (str) patterns:" msgstr "" -#: ../../library/re.rst:591 msgid "" "Matches any Unicode decimal digit (that is, any character in Unicode " "character category `[Nd]`__). This includes ``[0-9]``, and also many other " "digit characters." msgstr "" -#: ../../library/re.rst:595 msgid "Matches ``[0-9]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:599 ../../library/re.rst:621 ../../library/re.rst:644 msgid "For 8-bit (bytes) patterns:" msgstr "" -#: ../../library/re.rst:600 msgid "" "Matches any decimal digit in the ASCII character set; this is equivalent to " "``[0-9]``." msgstr "" -#: ../../library/re.rst:605 msgid "``\\D``" -msgstr "``\\D``" +msgstr "" -#: ../../library/re.rst:606 msgid "" "Matches any character which is not a decimal digit. This is the opposite of " "``\\d``." msgstr "" -#: ../../library/re.rst:609 msgid "Matches ``[^0-9]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:613 msgid "``\\s``" -msgstr "``\\s``" +msgstr "" -#: ../../library/re.rst:615 msgid "" -"Matches Unicode whitespace characters (as defined " -"by :py:meth:`str.isspace`). This includes ``[ \\t\\n\\r\\f\\v]``, and also " -"many other characters, for example the non-breaking spaces mandated by " -"typography rules in many languages." +"Matches Unicode whitespace characters (as defined by :py:meth:`str." +"isspace`). This includes ``[ \\t\\n\\r\\f\\v]``, and also many other " +"characters, for example the non-breaking spaces mandated by typography rules " +"in many languages." msgstr "" -#: ../../library/re.rst:619 msgid "" "Matches ``[ \\t\\n\\r\\f\\v]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:622 msgid "" "Matches characters considered whitespace in the ASCII character set; this is " "equivalent to ``[ \\t\\n\\r\\f\\v]``." msgstr "" -#: ../../library/re.rst:627 msgid "``\\S``" -msgstr "``\\S``" +msgstr "" -#: ../../library/re.rst:628 msgid "" "Matches any character which is not a whitespace character. This is the " "opposite of ``\\s``." msgstr "" -#: ../../library/re.rst:631 msgid "" "Matches ``[^ \\t\\n\\r\\f\\v]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:635 msgid "``\\w``" -msgstr "``\\w``" +msgstr "" -#: ../../library/re.rst:637 msgid "" "Matches Unicode word characters; this includes all Unicode alphanumeric " "characters (as defined by :py:meth:`str.isalnum`), as well as the underscore " "(``_``)." msgstr "" -#: ../../library/re.rst:642 msgid "Matches ``[a-zA-Z0-9_]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:645 msgid "" "Matches characters considered alphanumeric in the ASCII character set; this " "is equivalent to ``[a-zA-Z0-9_]``. If the :py:const:`~re.LOCALE` flag is " @@ -923,70 +779,57 @@ msgid "" "the underscore." msgstr "" -#: ../../library/re.rst:652 msgid "``\\W``" -msgstr "``\\W``" +msgstr "" -#: ../../library/re.rst:653 msgid "" "Matches any character which is not a word character. This is the opposite of " -"``\\w``. By default, matches non-underscore (``_``) characters for " -"which :py:meth:`str.isalnum` returns ``False``." +"``\\w``. By default, matches non-underscore (``_``) characters for which :py:" +"meth:`str.isalnum` returns ``False``." msgstr "" -#: ../../library/re.rst:658 msgid "Matches ``[^a-zA-Z0-9_]`` if the :py:const:`~re.ASCII` flag is used." msgstr "" -#: ../../library/re.rst:660 msgid "" "If the :py:const:`~re.LOCALE` flag is used, matches characters which are " "neither alphanumeric in the current locale nor the underscore." msgstr "" -#: ../../library/re.rst:667 msgid "``\\z``" -msgstr "``\\z``" +msgstr "" -#: ../../library/re.rst:668 msgid "Matches only at the end of the string." msgstr "" -#: ../../library/re.rst:672 msgid "``\\Z``" -msgstr "``\\Z``" +msgstr "" -#: ../../library/re.rst:673 msgid "The same as ``\\z``. For compatibility with old Python versions." msgstr "" -#: ../../library/re.rst:689 msgid "" "Most of the :ref:`escape sequences ` supported by Python " "string literals are also accepted by the regular expression parser::" msgstr "" -#: ../../library/re.rst:692 msgid "" "\\a \\b \\f \\n\n" "\\N \\r \\t \\u\n" "\\U \\v \\x \\\\" msgstr "" -#: ../../library/re.rst:696 msgid "" "(Note that ``\\b`` is used to represent word boundaries, and means " "\"backspace\" only inside character classes.)" msgstr "" -#: ../../library/re.rst:699 msgid "" "``'\\u'``, ``'\\U'``, and ``'\\N'`` escape sequences are only recognized in " "Unicode (str) patterns. In bytes patterns they are errors. Unknown escapes " "of ASCII letters are reserved for future use and treated as errors." msgstr "" -#: ../../library/re.rst:705 msgid "" "Octal escapes are included in a limited form. If the first digit is a 0, or " "if there are three octal digits, it is considered an octal escape. " @@ -994,27 +837,22 @@ msgid "" "are always at most three digits in length." msgstr "" -#: ../../library/re.rst:710 msgid "The ``'\\u'`` and ``'\\U'`` escape sequences have been added." msgstr "" -#: ../../library/re.rst:713 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter now are errors." msgstr "" -#: ../../library/re.rst:716 msgid "" "The :samp:`'\\\\N\\\\{{name}\\\\}'` escape sequence has been added. As in " "string literals, it expands to the named Unicode character (e.g. ``'\\N{EM " "DASH}'``)." msgstr "" -#: ../../library/re.rst:724 msgid "Module Contents" msgstr "" -#: ../../library/re.rst:726 msgid "" "The module defines several functions, constants, and an exception. Some of " "the functions are simplified versions of the full featured methods for " @@ -1022,26 +860,21 @@ msgid "" "compiled form." msgstr "" -#: ../../library/re.rst:733 msgid "Flags" msgstr "" -#: ../../library/re.rst:735 msgid "" "Flag constants are now instances of :class:`RegexFlag`, which is a subclass " "of :class:`enum.IntFlag`." msgstr "" -#: ../../library/re.rst:742 msgid "" "An :class:`enum.IntFlag` class containing the regex options listed below." msgstr "" -#: ../../library/re.rst:744 msgid "- added to ``__all__``" msgstr "" -#: ../../library/re.rst:749 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``\\s`` and " "``\\S`` perform ASCII-only matching instead of full Unicode matching. This " @@ -1049,28 +882,22 @@ msgid "" "patterns." msgstr "" -#: ../../library/re.rst:753 msgid "Corresponds to the inline flag ``(?a)``." msgstr "" -#: ../../library/re.rst:757 msgid "" "The :py:const:`~re.U` flag still exists for backward compatibility, but is " "redundant in Python 3 since matches are Unicode by default for ``str`` " -"patterns, and Unicode matching isn't allowed for bytes " -"patterns. :py:const:`~re.UNICODE` and the inline flag ``(?u)`` are similarly " -"redundant." +"patterns, and Unicode matching isn't allowed for bytes patterns. :py:const:" +"`~re.UNICODE` and the inline flag ``(?u)`` are similarly redundant." msgstr "" -#: ../../library/re.rst:766 msgid "Display debug information about compiled expression." msgstr "" -#: ../../library/re.rst:768 msgid "No corresponding inline flag." msgstr "" -#: ../../library/re.rst:774 msgid "" "Perform case-insensitive matching; expressions like ``[A-Z]`` will also " "match lowercase letters. Full Unicode matching (such as ``Ü`` matching " @@ -1079,33 +906,28 @@ msgid "" "flag unless the :py:const:`~re.LOCALE` flag is also used." msgstr "" -#: ../../library/re.rst:782 msgid "Corresponds to the inline flag ``(?i)``." msgstr "" -#: ../../library/re.rst:784 msgid "" "Note that when the Unicode patterns ``[a-z]`` or ``[A-Z]`` are used in " "combination with the :const:`IGNORECASE` flag, they will match the 52 ASCII " "letters and 4 additional non-ASCII letters: 'İ' (U+0130, Latin capital " -"letter I with dot above), 'ı' (U+0131, Latin small letter dotless i), 'ſ' " -"(U+017F, Latin small letter long s) and 'K' (U+212A, Kelvin sign). If " +"letter I with dot above), 'ı' (U+0131, Latin small letter dotless i), " +"'ſ' (U+017F, Latin small letter long s) and 'K' (U+212A, Kelvin sign). If " "the :py:const:`~re.ASCII` flag is used, only letters 'a' to 'z' and 'A' to " "'Z' are matched." msgstr "" -#: ../../library/re.rst:795 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale. This flag can be used only with bytes " "patterns." msgstr "" -#: ../../library/re.rst:799 msgid "Corresponds to the inline flag ``(?L)``." msgstr "" -#: ../../library/re.rst:803 msgid "" "This flag is discouraged; consider Unicode matching instead. The locale " "mechanism is very unreliable as it only handles one \"culture\" at a time " @@ -1114,20 +936,17 @@ msgid "" "languages." msgstr "" -#: ../../library/re.rst:810 msgid "" ":py:const:`~re.LOCALE` can be used only with bytes patterns and is not " "compatible with :py:const:`~re.ASCII`." msgstr "" -#: ../../library/re.rst:814 msgid "" "Compiled regular expression objects with the :py:const:`~re.LOCALE` flag no " "longer depend on the locale at compile time. Only the locale at matching " "time affects the result of matching." msgstr "" -#: ../../library/re.rst:823 msgid "" "When specified, the pattern character ``'^'`` matches at the beginning of " "the string and at the beginning of each line (immediately following each " @@ -1138,11 +957,9 @@ msgid "" "the end of the string." msgstr "" -#: ../../library/re.rst:830 msgid "Corresponds to the inline flag ``(?m)``." msgstr "" -#: ../../library/re.rst:834 msgid "" "Indicates no flag being applied, the value is ``0``. This flag may be used " "as a default value for a function keyword argument or as a base value that " @@ -1150,35 +967,29 @@ msgid "" "value::" msgstr "" -#: ../../library/re.rst:839 msgid "" "def myfunc(text, flag=re.NOFLAG):\n" " return re.match(text, flag)" msgstr "" -#: ../../library/re.rst:847 msgid "" "Make the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline." msgstr "" -#: ../../library/re.rst:850 msgid "Corresponds to the inline flag ``(?s)``." msgstr "" -#: ../../library/re.rst:856 msgid "" "In Python 3, Unicode characters are matched by default for ``str`` patterns. " "This flag is therefore redundant with **no effect** and is only kept for " "backward compatibility." msgstr "" -#: ../../library/re.rst:861 msgid "" "See :py:const:`~re.ASCII` to restrict matching to ASCII characters instead." msgstr "" -#: ../../library/re.rst:868 msgid "" "This flag allows you to write regular expressions that look nicer and are " "more readable by allowing you to visually separate logical sections of the " @@ -1191,13 +1002,11 @@ msgid "" "ignored." msgstr "" -#: ../../library/re.rst:878 msgid "" "This means that the two following regular expression objects that match a " "decimal number are functionally equal::" msgstr "" -#: ../../library/re.rst:881 msgid "" "a = re.compile(r\"\"\"\\d + # the integral part\n" " \\. # the decimal point\n" @@ -1205,75 +1014,59 @@ msgid "" "b = re.compile(r\"\\d+\\.\\d*\")" msgstr "" -#: ../../library/re.rst:886 msgid "Corresponds to the inline flag ``(?x)``." msgstr "" -#: ../../library/re.rst:890 msgid "Functions" msgstr "" -#: ../../library/re.rst:894 msgid "" "Compile a regular expression pattern into a :ref:`regular expression object " -"`, which can be used for matching using " -"its :func:`~Pattern.match`, :func:`~Pattern.search` and other methods, " -"described below." +"`, which can be used for matching using its :func:`~Pattern." +"match`, :func:`~Pattern.search` and other methods, described below." msgstr "" -#: ../../library/re.rst:899 ../../library/re.rst:931 ../../library/re.rst:949 -#: ../../library/re.rst:960 ../../library/re.rst:1006 ../../library/re.rst:1040 -#: ../../library/re.rst:1055 ../../library/re.rst:1117 -#: ../../library/re.rst:1152 msgid "" "The expression's behaviour can be modified by specifying a *flags* value. " "Values can be any of the `flags`_ variables, combined using bitwise OR (the " "``|`` operator)." msgstr "" -#: ../../library/re.rst:903 msgid "The sequence ::" msgstr "" -#: ../../library/re.rst:905 msgid "" "prog = re.compile(pattern)\n" "result = prog.match(string)" msgstr "" -#: ../../library/re.rst:908 msgid "is equivalent to ::" msgstr "" -#: ../../library/re.rst:910 msgid "result = re.match(pattern, string)" msgstr "" -#: ../../library/re.rst:912 msgid "" "but using :func:`re.compile` and saving the resulting regular expression " "object for reuse is more efficient when the expression will be used several " "times in a single program." msgstr "" -#: ../../library/re.rst:918 msgid "" -"The compiled versions of the most recent patterns passed " -"to :func:`re.compile` and the module-level matching functions are cached, so " -"programs that use only a few regular expressions at a time needn't worry " -"about compiling regular expressions." +"The compiled versions of the most recent patterns passed to :func:`re." +"compile` and the module-level matching functions are cached, so programs " +"that use only a few regular expressions at a time needn't worry about " +"compiling regular expressions." msgstr "" -#: ../../library/re.rst:926 msgid "" "Scan through *string* looking for the first location where the regular " -"expression *pattern* produces a match, and return a " -"corresponding :class:`~re.Match`. Return ``None`` if no position in the " -"string matches the pattern; note that this is different from finding a zero-" -"length match at some point in the string." +"expression *pattern* produces a match, and return a corresponding :class:" +"`~re.Match`. Return ``None`` if no position in the string matches the " +"pattern; note that this is different from finding a zero-length match at " +"some point in the string." msgstr "" -#: ../../library/re.rst:938 msgid "" "If zero or more characters at the beginning of *string* match the regular " "expression *pattern*, return a corresponding :class:`~re.Match`. Return " @@ -1281,26 +1074,22 @@ msgid "" "different from a zero-length match." msgstr "" -#: ../../library/re.rst:943 msgid "" "Note that even in :const:`MULTILINE` mode, :func:`re.match` will only match " "at the beginning of the string and not at the beginning of each line." msgstr "" -#: ../../library/re.rst:946 msgid "" "If you want to locate a match anywhere in *string*, use :func:`search` " "instead (see also :ref:`search-vs-match`)." msgstr "" -#: ../../library/re.rst:956 msgid "" "If the whole *string* matches the regular expression *pattern*, return a " "corresponding :class:`~re.Match`. Return ``None`` if the string does not " "match the pattern; note that this is different from a zero-length match." msgstr "" -#: ../../library/re.rst:969 msgid "" "Split *string* by the occurrences of *pattern*. If capturing parentheses " "are used in *pattern*, then the text of all groups in the pattern are also " @@ -1309,7 +1098,6 @@ msgid "" "final element of the list. ::" msgstr "" -#: ../../library/re.rst:975 msgid "" ">>> re.split(r'\\W+', 'Words, words, words.')\n" "['Words', 'words', 'words', '']\n" @@ -1321,32 +1109,27 @@ msgid "" "['0', '3', '9']" msgstr "" -#: ../../library/re.rst:984 msgid "" "If there are capturing groups in the separator and it matches at the start " "of the string, the result will start with an empty string. The same holds " "for the end of the string::" msgstr "" -#: ../../library/re.rst:988 msgid "" ">>> re.split(r'(\\W+)', '...words, words...')\n" "['', '...', 'words', ', ', 'words', '...', '']" msgstr "" -#: ../../library/re.rst:991 msgid "" "That way, separator components are always found at the same relative indices " "within the result list." msgstr "" -#: ../../library/re.rst:994 msgid "" "Adjacent empty matches are not possible, but an empty match can occur " "immediately after a non-empty match." msgstr "" -#: ../../library/re.rst:997 msgid "" ">>> re.split(r'\\b', 'Words, words, words.')\n" "['', 'Words', ', ', 'words', ', ', 'words', '.']\n" @@ -1357,30 +1140,25 @@ msgid "" "'']" msgstr "" -#: ../../library/re.rst:1010 ../../library/re.rst:1121 msgid "Added the optional flags argument." msgstr "" -#: ../../library/re.rst:1013 msgid "" "Added support of splitting on a pattern that could match an empty string." msgstr "" -#: ../../library/re.rst:1016 msgid "" "Passing *maxsplit* and *flags* as positional arguments is deprecated. In " "future Python versions they will be :ref:`keyword-only parameters `." msgstr "" -#: ../../library/re.rst:1024 msgid "" "Return all non-overlapping matches of *pattern* in *string*, as a list of " "strings or tuples. The *string* is scanned left-to-right, and matches are " "returned in the order found. Empty matches are included in the result." msgstr "" -#: ../../library/re.rst:1028 msgid "" "The result depends on the number of capturing groups in the pattern. If " "there are no groups, return a list of strings matching the whole pattern. " @@ -1390,11 +1168,9 @@ msgid "" "result." msgstr "" -#: ../../library/re.rst:1044 ../../library/re.rst:1059 msgid "Non-empty matches can now start just after a previous empty match." msgstr "" -#: ../../library/re.rst:1050 msgid "" "Return an :term:`iterator` yielding :class:`~re.Match` objects over all non-" "overlapping matches for the RE *pattern* in *string*. The *string* is " @@ -1402,7 +1178,6 @@ msgid "" "matches are included in the result." msgstr "" -#: ../../library/re.rst:1065 msgid "" "Return the string obtained by replacing the leftmost non-overlapping " "occurrences of *pattern* in *string* by the replacement *repl*. If the " @@ -1416,7 +1191,6 @@ msgid "" "For example::" msgstr "" -#: ../../library/re.rst:1076 msgid "" ">>> re.sub(r'def\\s+([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\(\\s*\\):',\n" "... r'static PyObject*\\npy_\\1(void)\\n{',\n" @@ -1424,14 +1198,12 @@ msgid "" "'static PyObject*\\npy_myfunc(void)\\n{'" msgstr "" -#: ../../library/re.rst:1081 msgid "" "If *repl* is a function, it is called for every non-overlapping occurrence " "of *pattern*. The function takes a single :class:`~re.Match` argument, and " "returns the replacement string. For example::" msgstr "" -#: ../../library/re.rst:1085 msgid "" ">>> def dashrepl(matchobj):\n" "... if matchobj.group(0) == '-': return ' '\n" @@ -1439,30 +1211,26 @@ msgid "" "...\n" ">>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')\n" "'pro--gram files'\n" -">>> re.sub(r'\\sAND\\s', ' & ', 'Baked Beans And Spam', " -"flags=re.IGNORECASE)\n" +">>> re.sub(r'\\sAND\\s', ' & ', 'Baked Beans And Spam', flags=re." +"IGNORECASE)\n" "'Baked Beans & Spam'" msgstr "" -#: ../../library/re.rst:1094 msgid "The pattern may be a string or a :class:`~re.Pattern`." msgstr "" -#: ../../library/re.rst:1096 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. If omitted or zero, " "all occurrences will be replaced." msgstr "" -#: ../../library/re.rst:1100 msgid "" "Adjacent empty matches are not possible, but an empty match can occur " "immediately after a non-empty match. As a result, ``sub('x*', '-', 'abxd')`` " "returns ``'-a-b--d-'`` instead of ``'-a-b-d-'``." msgstr "" -#: ../../library/re.rst:1107 msgid "" "In string-type *repl* arguments, in addition to the character escapes and " "backreferences described above, ``\\g`` will use the substring matched " @@ -1475,50 +1243,42 @@ msgid "" "RE." msgstr "" -#: ../../library/re.rst:1124 ../../library/re.rst:1401 msgid "Unmatched groups are replaced with an empty string." msgstr "" -#: ../../library/re.rst:1127 msgid "" "Unknown escapes in *pattern* consisting of ``'\\'`` and an ASCII letter now " "are errors." msgstr "" -#: ../../library/re.rst:1131 msgid "" "Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now are " "errors. An empty match can occur immediately after a non-empty match." msgstr "" -#: ../../library/re.rst:1136 msgid "" "Group *id* can only contain ASCII digits. In :class:`bytes` replacement " "strings, group *name* can only contain bytes in the ASCII range " "(``b'\\x00'``-``b'\\x7f'``)." msgstr "" -#: ../../library/re.rst:1141 msgid "" "Passing *count* and *flags* as positional arguments is deprecated. In future " "Python versions they will be :ref:`keyword-only parameters `." msgstr "" -#: ../../library/re.rst:1149 msgid "" "Perform the same operation as :func:`sub`, but return a tuple ``(new_string, " "number_of_subs_made)``." msgstr "" -#: ../../library/re.rst:1159 msgid "" "Escape special characters in *pattern*. This is useful if you want to match " "an arbitrary literal string that may have regular expression metacharacters " "in it. For example::" msgstr "" -#: ../../library/re.rst:1163 msgid "" ">>> print(re.escape('https://www.python.org'))\n" "https://www\\.python\\.org\n" @@ -1533,13 +1293,11 @@ msgid "" "/|\\-|\\+|\\*\\*|\\*" msgstr "" -#: ../../library/re.rst:1174 msgid "" "This function must not be used for the replacement string in :func:`sub` " "and :func:`subn`, only backslashes should be escaped. For example::" msgstr "" -#: ../../library/re.rst:1177 msgid "" ">>> digits_re = r'\\d+'\n" ">>> sample = '/usr/sbin/sendmail - 0 errors, 12 warnings'\n" @@ -1547,11 +1305,9 @@ msgid "" "/usr/sbin/sendmail - \\d+ errors, \\d+ warnings" msgstr "" -#: ../../library/re.rst:1182 msgid "The ``'_'`` character is no longer escaped." msgstr "" -#: ../../library/re.rst:1185 msgid "" "Only characters that can have special meaning in a regular expression are " "escaped. As a result, ``'!'``, ``'\"'``, ``'%'``, ``\"'\"``, ``','``, " @@ -1559,15 +1315,12 @@ msgid "" "are no longer escaped." msgstr "" -#: ../../library/re.rst:1194 msgid "Clear the regular expression cache." msgstr "" -#: ../../library/re.rst:1198 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/re.rst:1202 msgid "" "Exception raised when a string passed to one of the functions here is not a " "valid regular expression (for example, it might contain unmatched " @@ -1577,51 +1330,40 @@ msgid "" "attributes:" msgstr "" -#: ../../library/re.rst:1210 msgid "The unformatted error message." msgstr "" -#: ../../library/re.rst:1214 msgid "The regular expression pattern." msgstr "" -#: ../../library/re.rst:1218 msgid "The index in *pattern* where compilation failed (may be ``None``)." msgstr "" -#: ../../library/re.rst:1222 msgid "The line corresponding to *pos* (may be ``None``)." msgstr "" -#: ../../library/re.rst:1226 msgid "The column corresponding to *pos* (may be ``None``)." msgstr "" -#: ../../library/re.rst:1228 msgid "Added additional attributes." msgstr "" -#: ../../library/re.rst:1231 msgid "" "``PatternError`` was originally named ``error``; the latter is kept as an " "alias for backward compatibility." msgstr "" -#: ../../library/re.rst:1238 msgid "Regular Expression Objects" msgstr "" -#: ../../library/re.rst:1242 msgid "Compiled regular expression object returned by :func:`re.compile`." msgstr "" -#: ../../library/re.rst:1244 msgid "" ":py:class:`re.Pattern` supports ``[]`` to indicate a Unicode (str) or bytes " "pattern. See :ref:`types-genericalias`." msgstr "" -#: ../../library/re.rst:1250 msgid "" "Scan through *string* looking for the first location where this regular " "expression produces a match, and return a corresponding :class:`~re.Match`. " @@ -1630,7 +1372,6 @@ msgid "" "string." msgstr "" -#: ../../library/re.rst:1255 msgid "" "The optional second parameter *pos* gives an index in the string where the " "search is to start; it defaults to ``0``. This is not completely equivalent " @@ -1639,7 +1380,6 @@ msgid "" "necessarily at the index where the search is to start." msgstr "" -#: ../../library/re.rst:1261 msgid "" "The optional parameter *endpos* limits how far the string will be searched; " "it will be as if the string is *endpos* characters long, so only the " @@ -1649,7 +1389,6 @@ msgid "" "equivalent to ``rx.search(string[:50], 0)``. ::" msgstr "" -#: ../../library/re.rst:1268 msgid "" ">>> pattern = re.compile(\"d\")\n" ">>> pattern.search(\"dog\") # Match at index 0\n" @@ -1657,7 +1396,6 @@ msgid "" ">>> pattern.search(\"dog\", 1) # No match; search doesn't include the \"d\"" msgstr "" -#: ../../library/re.rst:1276 msgid "" "If zero or more characters at the *beginning* of *string* match this regular " "expression, return a corresponding :class:`~re.Match`. Return ``None`` if " @@ -1665,13 +1403,11 @@ msgid "" "zero-length match." msgstr "" -#: ../../library/re.rst:1281 ../../library/re.rst:1299 msgid "" -"The optional *pos* and *endpos* parameters have the same meaning as for " -"the :meth:`~Pattern.search` method. ::" +"The optional *pos* and *endpos* parameters have the same meaning as for the :" +"meth:`~Pattern.search` method. ::" msgstr "" -#: ../../library/re.rst:1284 msgid "" ">>> pattern = re.compile(\"o\")\n" ">>> pattern.match(\"dog\") # No match as \"o\" is not at the start of " @@ -1681,20 +1417,17 @@ msgid "" "" msgstr "" -#: ../../library/re.rst:1289 msgid "" -"If you want to locate a match anywhere in *string*, " -"use :meth:`~Pattern.search` instead (see also :ref:`search-vs-match`)." +"If you want to locate a match anywhere in *string*, use :meth:`~Pattern." +"search` instead (see also :ref:`search-vs-match`)." msgstr "" -#: ../../library/re.rst:1295 msgid "" "If the whole *string* matches this regular expression, return a " "corresponding :class:`~re.Match`. Return ``None`` if the string does not " "match the pattern; note that this is different from a zero-length match." msgstr "" -#: ../../library/re.rst:1302 msgid "" ">>> pattern = re.compile(\"o[gh]\")\n" ">>> pattern.fullmatch(\"dog\") # No match as \"o\" is not at the start " @@ -1705,91 +1438,73 @@ msgid "" "" msgstr "" -#: ../../library/re.rst:1313 msgid "Identical to the :func:`split` function, using the compiled pattern." msgstr "" -#: ../../library/re.rst:1318 msgid "" "Similar to the :func:`findall` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " "region like for :meth:`search`." msgstr "" -#: ../../library/re.rst:1325 msgid "" "Similar to the :func:`finditer` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " "region like for :meth:`search`." msgstr "" -#: ../../library/re.rst:1332 msgid "Identical to the :func:`sub` function, using the compiled pattern." msgstr "" -#: ../../library/re.rst:1337 msgid "Identical to the :func:`subn` function, using the compiled pattern." msgstr "" -#: ../../library/re.rst:1342 msgid "" -"The regex matching flags. This is a combination of the flags given " -"to :func:`.compile`, any ``(?...)`` inline flags in the pattern, and " -"implicit flags such as :py:const:`~re.UNICODE` if the pattern is a Unicode " -"string." +"The regex matching flags. This is a combination of the flags given to :func:" +"`.compile`, any ``(?...)`` inline flags in the pattern, and implicit flags " +"such as :py:const:`~re.UNICODE` if the pattern is a Unicode string." msgstr "" -#: ../../library/re.rst:1349 msgid "The number of capturing groups in the pattern." msgstr "" -#: ../../library/re.rst:1354 msgid "" "A dictionary mapping any symbolic group names defined by ``(?P)`` to " "group numbers. The dictionary is empty if no symbolic groups were used in " "the pattern." msgstr "" -#: ../../library/re.rst:1361 msgid "The pattern string from which the pattern object was compiled." msgstr "" -#: ../../library/re.rst:1364 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Compiled " "regular expression objects are considered atomic." msgstr "" -#: ../../library/re.rst:1372 msgid "Match Objects" msgstr "" -#: ../../library/re.rst:1374 msgid "" -"Match objects always have a boolean value of ``True``. " -"Since :meth:`~Pattern.match` and :meth:`~Pattern.search` return ``None`` " -"when there is no match, you can test whether there was a match with a simple " -"``if`` statement::" +"Match objects always have a boolean value of ``True``. Since :meth:`~Pattern." +"match` and :meth:`~Pattern.search` return ``None`` when there is no match, " +"you can test whether there was a match with a simple ``if`` statement::" msgstr "" -#: ../../library/re.rst:1379 msgid "" "match = re.search(pattern, string)\n" "if match:\n" " process(match)" msgstr "" -#: ../../library/re.rst:1385 msgid "Match object returned by successful ``match``\\ es and ``search``\\ es." msgstr "" -#: ../../library/re.rst:1387 msgid "" ":py:class:`re.Match` supports ``[]`` to indicate a Unicode (str) or bytes " "match. See :ref:`types-genericalias`." msgstr "" -#: ../../library/re.rst:1393 msgid "" "Return the string obtained by doing backslash substitution on the template " "string *template*, as done by the :meth:`~Pattern.sub` method. Escapes such " @@ -1799,7 +1514,6 @@ msgid "" "backreference ``\\g<0>`` will be replaced by the entire match." msgstr "" -#: ../../library/re.rst:1406 msgid "" "Returns one or more subgroups of the match. If there is a single argument, " "the result is a single string; if there are multiple arguments, the result " @@ -1814,7 +1528,6 @@ msgid "" "the pattern that matched multiple times, the last match is returned. ::" msgstr "" -#: ../../library/re.rst:1418 msgid "" ">>> m = re.match(r\"(\\w+) (\\w+)\", \"Isaac Newton, physicist\")\n" ">>> m.group(0) # The entire match\n" @@ -1827,19 +1540,16 @@ msgid "" "('Isaac', 'Newton')" msgstr "" -#: ../../library/re.rst:1428 msgid "" "If the regular expression uses the ``(?P...)`` syntax, the *groupN* " "arguments may also be strings identifying groups by their group name. If a " -"string argument is not used as a group name in the pattern, " -"an :exc:`IndexError` exception is raised." +"string argument is not used as a group name in the pattern, an :exc:" +"`IndexError` exception is raised." msgstr "" -#: ../../library/re.rst:1433 msgid "A moderately complicated example::" msgstr "" -#: ../../library/re.rst:1435 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Malcolm " "Reynolds\")\n" @@ -1849,11 +1559,9 @@ msgid "" "'Reynolds'" msgstr "" -#: ../../library/re.rst:1441 msgid "Named groups can also be referred to by their index::" msgstr "" -#: ../../library/re.rst:1443 msgid "" ">>> m.group(1)\n" "'Malcolm'\n" @@ -1861,24 +1569,20 @@ msgid "" "'Reynolds'" msgstr "" -#: ../../library/re.rst:1448 msgid "If a group matches multiple times, only the last match is accessible::" msgstr "" -#: ../../library/re.rst:1450 msgid "" ">>> m = re.match(r\"(..)+\", \"a1b2c3\") # Matches 3 times.\n" ">>> m.group(1) # Returns only the last match.\n" "'c3'" msgstr "" -#: ../../library/re.rst:1457 msgid "" "This is identical to ``m.group(g)``. This allows easier access to an " "individual group from a match::" msgstr "" -#: ../../library/re.rst:1460 msgid "" ">>> m = re.match(r\"(\\w+) (\\w+)\", \"Isaac Newton, physicist\")\n" ">>> m[0] # The entire match\n" @@ -1889,11 +1593,9 @@ msgid "" "'Newton'" msgstr "" -#: ../../library/re.rst:1468 msgid "Named groups are supported as well::" msgstr "" -#: ../../library/re.rst:1470 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Isaac " "Newton\")\n" @@ -1903,32 +1605,27 @@ msgid "" "'Newton'" msgstr "" -#: ../../library/re.rst:1481 msgid "" "Return a tuple containing all the subgroups of the match, from 1 up to " "however many groups are in the pattern. The *default* argument is used for " "groups that did not participate in the match; it defaults to ``None``." msgstr "" -#: ../../library/re.rst:1485 ../../library/re.rst:1710 msgid "For example::" msgstr "" -#: ../../library/re.rst:1487 msgid "" ">>> m = re.match(r\"(\\d+)\\.(\\d+)\", \"24.1632\")\n" ">>> m.groups()\n" "('24', '1632')" msgstr "" -#: ../../library/re.rst:1491 msgid "" "If we make the decimal place and everything after it optional, not all " "groups might participate in the match. These groups will default to " "``None`` unless the *default* argument is given::" msgstr "" -#: ../../library/re.rst:1495 msgid "" ">>> m = re.match(r\"(\\d+)\\.?(\\d+)?\", \"24\")\n" ">>> m.groups() # Second group defaults to None.\n" @@ -1937,14 +1634,12 @@ msgid "" "('24', '0')" msgstr "" -#: ../../library/re.rst:1504 msgid "" "Return a dictionary containing all the *named* subgroups of the match, keyed " "by the subgroup name. The *default* argument is used for groups that did " "not participate in the match; it defaults to ``None``. For example::" msgstr "" -#: ../../library/re.rst:1508 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Malcolm " "Reynolds\")\n" @@ -1952,7 +1647,6 @@ msgid "" "{'first_name': 'Malcolm', 'last_name': 'Reynolds'}" msgstr "" -#: ../../library/re.rst:1516 msgid "" "Return the indices of the start and end of the substring matched by *group*; " "*group* defaults to zero (meaning the whole matched substring). Return " @@ -1961,23 +1655,19 @@ msgid "" "matched by group *g* (equivalent to ``m.group(g)``) is ::" msgstr "" -#: ../../library/re.rst:1522 msgid "m.string[m.start(g):m.end(g)]" msgstr "" -#: ../../library/re.rst:1524 msgid "" "Note that ``m.start(group)`` will equal ``m.end(group)`` if *group* matched " -"a null string. For example, after ``m = re.search('b(c?)', 'cba')``, " -"``m.start(0)`` is 1, ``m.end(0)`` is 2, ``m.start(1)`` and ``m.end(1)`` are " -"both 2, and ``m.start(2)`` raises an :exc:`IndexError` exception." +"a null string. For example, after ``m = re.search('b(c?)', 'cba')``, ``m." +"start(0)`` is 1, ``m.end(0)`` is 2, ``m.start(1)`` and ``m.end(1)`` are both " +"2, and ``m.start(2)`` raises an :exc:`IndexError` exception." msgstr "" -#: ../../library/re.rst:1529 msgid "An example that will remove *remove_this* from email addresses::" msgstr "" -#: ../../library/re.rst:1531 msgid "" ">>> email = \"tony@tiremove_thisger.net\"\n" ">>> m = re.search(\"remove_this\", email)\n" @@ -1985,29 +1675,24 @@ msgid "" "'tony@tiger.net'" msgstr "" -#: ../../library/re.rst:1539 msgid "" "For a match *m*, return the 2-tuple ``(m.start(group), m.end(group))``. Note " "that if *group* did not contribute to the match, this is ``(-1, -1)``. " "*group* defaults to zero, the entire match." msgstr "" -#: ../../library/re.rst:1546 msgid "" -"The value of *pos* which was passed to the :meth:`~Pattern.search` " -"or :meth:`~Pattern.match` method of a :ref:`regex object `. " -"This is the index into the string at which the RE engine started looking for " -"a match." +"The value of *pos* which was passed to the :meth:`~Pattern.search` or :meth:" +"`~Pattern.match` method of a :ref:`regex object `. This is the " +"index into the string at which the RE engine started looking for a match." msgstr "" -#: ../../library/re.rst:1553 msgid "" -"The value of *endpos* which was passed to the :meth:`~Pattern.search` " -"or :meth:`~Pattern.match` method of a :ref:`regex object `. " -"This is the index into the string beyond which the RE engine will not go." +"The value of *endpos* which was passed to the :meth:`~Pattern.search` or :" +"meth:`~Pattern.match` method of a :ref:`regex object `. This is " +"the index into the string beyond which the RE engine will not go." msgstr "" -#: ../../library/re.rst:1560 msgid "" "The integer index of the last matched capturing group, or ``None`` if no " "group was matched at all. For example, the expressions ``(a)b``, ``((a)" @@ -2016,44 +1701,35 @@ msgid "" "applied to the same string." msgstr "" -#: ../../library/re.rst:1569 msgid "" "The name of the last matched capturing group, or ``None`` if the group " "didn't have a name, or if no group was matched at all." msgstr "" -#: ../../library/re.rst:1575 msgid "" -"The :ref:`regular expression object ` " -"whose :meth:`~Pattern.match` or :meth:`~Pattern.search` method produced this " -"match instance." +"The :ref:`regular expression object ` whose :meth:`~Pattern." +"match` or :meth:`~Pattern.search` method produced this match instance." msgstr "" -#: ../../library/re.rst:1581 msgid "The string passed to :meth:`~Pattern.match` or :meth:`~Pattern.search`." msgstr "" -#: ../../library/re.rst:1584 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Match objects " "are considered atomic." msgstr "" -#: ../../library/re.rst:1592 msgid "Regular Expression Examples" msgstr "" -#: ../../library/re.rst:1596 msgid "Checking for a Pair" msgstr "" -#: ../../library/re.rst:1598 msgid "" "In this example, we'll use the following helper function to display match " "objects a little more gracefully::" msgstr "" -#: ../../library/re.rst:1601 msgid "" "def displaymatch(match):\n" " if match is None:\n" @@ -2061,7 +1737,6 @@ msgid "" " return '' % (match.group(), match.groups())" msgstr "" -#: ../../library/re.rst:1606 msgid "" "Suppose you are writing a poker program where a player's hand is represented " "as a 5-character string with each character representing a card, \"a\" for " @@ -2069,11 +1744,9 @@ msgid "" "\"2\" through \"9\" representing the card with that value." msgstr "" -#: ../../library/re.rst:1611 msgid "To see if a given string is a valid hand, one could do the following::" msgstr "" -#: ../../library/re.rst:1613 msgid "" ">>> valid = re.compile(r\"^[a2-9tjqk]{5}$\")\n" ">>> displaymatch(valid.match(\"akt5q\")) # Valid.\n" @@ -2084,14 +1757,12 @@ msgid "" "\"\"" msgstr "" -#: ../../library/re.rst:1621 msgid "" "That last hand, ``\"727ak\"``, contained a pair, or two of the same valued " "cards. To match this with a regular expression, one could use backreferences " "as such::" msgstr "" -#: ../../library/re.rst:1624 msgid "" ">>> pair = re.compile(r\".*(.).*\\1\")\n" ">>> displaymatch(pair.match(\"717ak\")) # Pair of 7s.\n" @@ -2101,13 +1772,11 @@ msgid "" "\"\"" msgstr "" -#: ../../library/re.rst:1631 msgid "" -"To find out what card the pair consists of, one could use " -"the :meth:`~Match.group` method of the match object in the following manner::" +"To find out what card the pair consists of, one could use the :meth:`~Match." +"group` method of the match object in the following manner::" msgstr "" -#: ../../library/re.rst:1634 msgid "" ">>> pair = re.compile(r\".*(.).*\\1\")\n" ">>> pair.match(\"717ak\").group(1)\n" @@ -2125,143 +1794,110 @@ msgid "" "'a'" msgstr "" -#: ../../library/re.rst:1650 msgid "Simulating scanf()" msgstr "" -#: ../../library/re.rst:1654 msgid "" "Python does not currently have an equivalent to :c:func:`!scanf`. Regular " -"expressions are generally more powerful, though also more verbose, " -"than :c:func:`!scanf` format strings. The table below offers some more-or-" -"less equivalent mappings between :c:func:`!scanf` format tokens and regular " +"expressions are generally more powerful, though also more verbose, than :c:" +"func:`!scanf` format strings. The table below offers some more-or-less " +"equivalent mappings between :c:func:`!scanf` format tokens and regular " "expressions." msgstr "" -#: ../../library/re.rst:1661 msgid ":c:func:`!scanf` Token" msgstr "" -#: ../../library/re.rst:1661 msgid "Regular Expression" msgstr "" -#: ../../library/re.rst:1663 msgid "``%c``" -msgstr "``%c``" +msgstr "" -#: ../../library/re.rst:1665 msgid "``%5c``" msgstr "" -#: ../../library/re.rst:1665 msgid "``.{5}``" msgstr "" -#: ../../library/re.rst:1667 msgid "``%d``" -msgstr "``%d``" +msgstr "" -#: ../../library/re.rst:1667 msgid "``[-+]?\\d+``" msgstr "" -#: ../../library/re.rst:1669 msgid "``%e``, ``%E``, ``%f``, ``%g``" msgstr "" -#: ../../library/re.rst:1669 msgid "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" msgstr "" -#: ../../library/re.rst:1671 msgid "``%i``" -msgstr "``%i``" +msgstr "" -#: ../../library/re.rst:1671 msgid "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" msgstr "" -#: ../../library/re.rst:1673 msgid "``%o``" msgstr "" -#: ../../library/re.rst:1673 msgid "``[-+]?[0-7]+``" msgstr "" -#: ../../library/re.rst:1675 msgid "``%s``" -msgstr "``%s``" +msgstr "" -#: ../../library/re.rst:1675 msgid "``\\S+``" msgstr "" -#: ../../library/re.rst:1677 msgid "``%u``" -msgstr "``%u``" +msgstr "" -#: ../../library/re.rst:1677 msgid "``\\d+``" msgstr "" -#: ../../library/re.rst:1679 msgid "``%x``, ``%X``" msgstr "" -#: ../../library/re.rst:1679 msgid "``[-+]?(0[xX])?[\\dA-Fa-f]+``" msgstr "" -#: ../../library/re.rst:1682 msgid "To extract the filename and numbers from a string like ::" msgstr "" -#: ../../library/re.rst:1684 msgid "/usr/sbin/sendmail - 0 errors, 4 warnings" msgstr "" -#: ../../library/re.rst:1686 msgid "you would use a :c:func:`!scanf` format like ::" msgstr "" -#: ../../library/re.rst:1688 msgid "%s - %d errors, %d warnings" msgstr "" -#: ../../library/re.rst:1690 msgid "The equivalent regular expression would be ::" msgstr "" -#: ../../library/re.rst:1692 msgid "(\\S+) - (\\d+) errors, (\\d+) warnings" msgstr "" -#: ../../library/re.rst:1698 msgid "search() vs. match()" msgstr "" -#: ../../library/re.rst:1702 msgid "" "Python offers different primitive operations based on regular expressions:" msgstr "" -#: ../../library/re.rst:1704 msgid ":func:`re.match` checks for a match only at the beginning of the string" msgstr "" -#: ../../library/re.rst:1705 msgid "" ":func:`re.search` checks for a match anywhere in the string (this is what " "Perl does by default)" msgstr "" -#: ../../library/re.rst:1707 msgid ":func:`re.fullmatch` checks for entire string to be a match" msgstr "" -#: ../../library/re.rst:1712 msgid "" ">>> re.match(\"c\", \"abcdef\") # No match\n" ">>> re.search(\"c\", \"abcdef\") # Match\n" @@ -2271,13 +1907,11 @@ msgid "" ">>> re.fullmatch(\"r.*n\", \"python\") # No match" msgstr "" -#: ../../library/re.rst:1719 msgid "" "Regular expressions beginning with ``'^'`` can be used with :func:`search` " "to restrict the match at the beginning of the string::" msgstr "" -#: ../../library/re.rst:1722 msgid "" ">>> re.match(\"c\", \"abcdef\") # No match\n" ">>> re.search(\"^c\", \"abcdef\") # No match\n" @@ -2285,7 +1919,6 @@ msgid "" "" msgstr "" -#: ../../library/re.rst:1727 msgid "" "Note however that in :const:`MULTILINE` mode :func:`match` only matches at " "the beginning of the string, whereas using :func:`search` with a regular " @@ -2293,18 +1926,15 @@ msgid "" "line. ::" msgstr "" -#: ../../library/re.rst:1731 msgid "" ">>> re.match(\"X\", \"A\\nB\\nX\", re.MULTILINE) # No match\n" ">>> re.search(\"^X\", \"A\\nB\\nX\", re.MULTILINE) # Match\n" "" msgstr "" -#: ../../library/re.rst:1737 msgid "Making a Phonebook" msgstr "" -#: ../../library/re.rst:1739 msgid "" ":func:`split` splits a string into a list delimited by the passed pattern. " "The method is invaluable for converting textual data into data structures " @@ -2312,13 +1942,11 @@ msgid "" "following example that creates a phonebook." msgstr "" -#: ../../library/re.rst:1744 msgid "" "First, here is the input. Normally it may come from a file, here we are " "using triple-quoted string syntax" msgstr "" -#: ../../library/re.rst:1747 msgid "" ">>> text = \"\"\"Ross McFluff: 834.345.1254 155 Elm Street\n" "...\n" @@ -2329,13 +1957,11 @@ msgid "" "... Heather Albrecht: 548.326.4584 919 Park Place\"\"\"" msgstr "" -#: ../../library/re.rst:1757 msgid "" "The entries are separated by one or more newlines. Now we convert the string " "into a list with each nonempty line having its own entry:" msgstr "" -#: ../../library/re.rst:1760 msgid "" ">>> entries = re.split(\"\\n+\", text)\n" ">>> entries\n" @@ -2345,14 +1971,12 @@ msgid "" "'Heather Albrecht: 548.326.4584 919 Park Place']" msgstr "" -#: ../../library/re.rst:1770 msgid "" "Finally, split each entry into a list with first name, last name, telephone " "number, and address. We use the ``maxsplit`` parameter of :func:`split` " "because the address has spaces, our splitting pattern, in it:" msgstr "" -#: ../../library/re.rst:1774 msgid "" ">>> [re.split(\":? \", entry, maxsplit=3) for entry in entries]\n" "[['Ross', 'McFluff', '834.345.1254', '155 Elm Street'],\n" @@ -2361,14 +1985,12 @@ msgid "" "['Heather', 'Albrecht', '548.326.4584', '919 Park Place']]" msgstr "" -#: ../../library/re.rst:1783 msgid "" "The ``:?`` pattern matches the colon after the last name, so that it does " "not occur in the result list. With a ``maxsplit`` of ``4``, we could " "separate the house number from the street name:" msgstr "" -#: ../../library/re.rst:1787 msgid "" ">>> [re.split(\":? \", entry, maxsplit=4) for entry in entries]\n" "[['Ross', 'McFluff', '834.345.1254', '155', 'Elm Street'],\n" @@ -2377,11 +1999,9 @@ msgid "" "['Heather', 'Albrecht', '548.326.4584', '919', 'Park Place']]" msgstr "" -#: ../../library/re.rst:1798 msgid "Text Munging" msgstr "" -#: ../../library/re.rst:1800 msgid "" ":func:`sub` replaces every occurrence of a pattern with a string or the " "result of a function. This example demonstrates using :func:`sub` with a " @@ -2389,7 +2009,6 @@ msgid "" "each word of a sentence except for the first and last characters::" msgstr "" -#: ../../library/re.rst:1805 msgid "" ">>> def repl(m):\n" "... inner_word = list(m.group(2))\n" @@ -2403,11 +2022,9 @@ msgid "" "'Pofsroser Aodlambelk, plasee reoprt yuor asnebces potlmrpy.'" msgstr "" -#: ../../library/re.rst:1818 msgid "Finding all Adverbs" msgstr "" -#: ../../library/re.rst:1820 msgid "" ":func:`findall` matches *all* occurrences of a pattern, not just the first " "one as :func:`search` does. For example, if a writer wanted to find all of " @@ -2415,18 +2032,15 @@ msgid "" "manner::" msgstr "" -#: ../../library/re.rst:1825 msgid "" ">>> text = \"He was carefully disguised but captured quickly by police.\"\n" ">>> re.findall(r\"\\w+ly\\b\", text)\n" "['carefully', 'quickly']" msgstr "" -#: ../../library/re.rst:1831 msgid "Finding all Adverbs and their Positions" msgstr "" -#: ../../library/re.rst:1833 msgid "" "If one wants more information about all matches of a pattern than the " "matched text, :func:`finditer` is useful as it provides :class:`~re.Match` " @@ -2435,7 +2049,6 @@ msgid "" "they would use :func:`finditer` in the following manner::" msgstr "" -#: ../../library/re.rst:1839 msgid "" ">>> text = \"He was carefully disguised but captured quickly by police.\"\n" ">>> for m in re.finditer(r\"\\w+ly\\b\", text):\n" @@ -2444,11 +2057,9 @@ msgid "" "40-47: quickly" msgstr "" -#: ../../library/re.rst:1847 msgid "Raw String Notation" msgstr "" -#: ../../library/re.rst:1849 msgid "" "Raw string notation (``r\"text\"``) keeps regular expressions sane. Without " "it, every backslash (``'\\'``) in a regular expression would have to be " @@ -2456,7 +2067,6 @@ msgid "" "lines of code are functionally identical::" msgstr "" -#: ../../library/re.rst:1854 msgid "" ">>> re.match(r\"\\W(.)\\1\\W\", \" ff \")\n" "\n" @@ -2464,7 +2074,6 @@ msgid "" "" msgstr "" -#: ../../library/re.rst:1859 msgid "" "When one wants to match a literal backslash, it must be escaped in the " "regular expression. With raw string notation, this means ``r\"\\\\\"``. " @@ -2472,7 +2081,6 @@ msgid "" "following lines of code functionally identical::" msgstr "" -#: ../../library/re.rst:1864 msgid "" ">>> re.match(r\"\\\\\", r\"\\\\\")\n" "\n" @@ -2480,25 +2088,21 @@ msgid "" "" msgstr "" -#: ../../library/re.rst:1871 msgid "Writing a Tokenizer" msgstr "" -#: ../../library/re.rst:1873 msgid "" "A `tokenizer or scanner `_ " "analyzes a string to categorize groups of characters. This is a useful " "first step in writing a compiler or interpreter." msgstr "" -#: ../../library/re.rst:1877 msgid "" "The text categories are specified with regular expressions. The technique " "is to combine those into a single master regular expression and to loop over " "successive matches::" msgstr "" -#: ../../library/re.rst:1881 msgid "" "from typing import NamedTuple\n" "import re\n" @@ -2554,11 +2158,9 @@ msgid "" " print(token)" msgstr "" -#: ../../library/re.rst:1933 msgid "The tokenizer produces the following output::" msgstr "" -#: ../../library/re.rst:1935 msgid "" "Token(type='IF', value='IF', line=2, column=4)\n" "Token(type='ID', value='quantity', line=2, column=7)\n" @@ -2581,7 +2183,6 @@ msgid "" "Token(type='END', value=';', line=5, column=9)" msgstr "" -#: ../../library/re.rst:1956 msgid "" "Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " "2009. The third edition of the book no longer covers Python at all, but the " @@ -2589,227 +2190,161 @@ msgid "" "detail." msgstr "" -#: ../../library/re.rst:99 msgid ". (dot)" msgstr "" -#: ../../library/re.rst:99 ../../library/re.rst:106 ../../library/re.rst:112 -#: ../../library/re.rst:123 ../../library/re.rst:130 ../../library/re.rst:137 -#: ../../library/re.rst:143 ../../library/re.rst:157 ../../library/re.rst:181 -#: ../../library/re.rst:220 ../../library/re.rst:235 ../../library/re.rst:244 -#: ../../library/re.rst:258 ../../library/re.rst:271 ../../library/re.rst:304 -#: ../../library/re.rst:317 ../../library/re.rst:327 ../../library/re.rst:359 -#: ../../library/re.rst:414 ../../library/re.rst:446 ../../library/re.rst:452 -#: ../../library/re.rst:457 ../../library/re.rst:464 ../../library/re.rst:471 -#: ../../library/re.rst:498 ../../library/re.rst:508 ../../library/re.rst:531 -#: ../../library/re.rst:543 ../../library/re.rst:548 ../../library/re.rst:570 -#: ../../library/re.rst:587 ../../library/re.rst:603 ../../library/re.rst:611 -#: ../../library/re.rst:625 ../../library/re.rst:633 ../../library/re.rst:650 -#: ../../library/re.rst:664 ../../library/re.rst:675 ../../library/re.rst:866 -#: ../../library/re.rst:1105 msgid "in regular expressions" msgstr "" -#: ../../library/re.rst:106 ../../library/re.rst:271 msgid "^ (caret)" msgstr "" -#: ../../library/re.rst:112 msgid "$ (dollar)" msgstr "" -#: ../../library/re.rst:123 msgid "* (asterisk)" msgstr "" -#: ../../library/re.rst:130 msgid "+ (plus)" msgstr "" -#: ../../library/re.rst:137 msgid "? (question mark)" msgstr "" -#: ../../library/re.rst:143 msgid "*?" msgstr "" -#: ../../library/re.rst:143 msgid "+?" msgstr "" -#: ../../library/re.rst:143 msgid "??" msgstr "" -#: ../../library/re.rst:157 msgid "*+" msgstr "" -#: ../../library/re.rst:157 msgid "++" msgstr "" -#: ../../library/re.rst:157 msgid "?+" msgstr "" -#: ../../library/re.rst:181 msgid "{} (curly brackets)" msgstr "" -#: ../../library/re.rst:220 ../../library/re.rst:258 ../../library/re.rst:531 msgid "\\ (backslash)" msgstr "" -#: ../../library/re.rst:235 msgid "[] (square brackets)" msgstr "" -#: ../../library/re.rst:244 msgid "- (minus)" msgstr "" -#: ../../library/re.rst:304 msgid "| (vertical bar)" msgstr "" -#: ../../library/re.rst:317 msgid "() (parentheses)" msgstr "" -#: ../../library/re.rst:327 msgid "(?" msgstr "" -#: ../../library/re.rst:359 msgid "(?:" msgstr "" -#: ../../library/re.rst:414 msgid "(?P<" msgstr "" -#: ../../library/re.rst:446 msgid "(?P=" msgstr "" -#: ../../library/re.rst:452 msgid "(?#" msgstr "" -#: ../../library/re.rst:457 msgid "(?=" msgstr "" -#: ../../library/re.rst:464 msgid "(?!" msgstr "" -#: ../../library/re.rst:471 msgid "(?<=" msgstr "" -#: ../../library/re.rst:498 msgid "(?` or :ref:`WebAssembly platforms `." msgstr "" -#: ../../library/readline.rst:31 msgid "" "The underlying Readline library API may be implemented by the ``editline`` " "(``libedit``) library instead of GNU readline. On macOS the :mod:`readline` " "module detects which library is being used at run time." msgstr "" -#: ../../library/readline.rst:36 msgid "" "The configuration file for ``editline`` is different from that of GNU " -"readline. If you programmatically load configuration strings you can " -"use :data:`backend` to determine which library is being used." +"readline. If you programmatically load configuration strings you can use :" +"data:`backend` to determine which library is being used." msgstr "" -#: ../../library/readline.rst:40 msgid "" "If you use ``editline``/``libedit`` readline emulation on macOS, the " "initialization file located in your home directory is named ``.editrc``. For " @@ -75,40 +67,33 @@ msgid "" "keybindings and TAB completion::" msgstr "" -#: ../../library/readline.rst:45 msgid "" "python:bind -v\n" "python:bind ^I rl_complete" msgstr "" -#: ../../library/readline.rst:48 msgid "" "Also note that different libraries may use different history file formats. " "When switching the underlying library, existing history files may become " "unusable." msgstr "" -#: ../../library/readline.rst:54 msgid "" "The name of the underlying Readline library being used, either " "``\"readline\"`` or ``\"editline\"``." msgstr "" -#: ../../library/readline.rst:60 msgid "Init file" msgstr "" -#: ../../library/readline.rst:62 msgid "The following functions relate to the init file and user configuration:" msgstr "" -#: ../../library/readline.rst:67 msgid "" -"Execute the init line provided in the *string* argument. This " -"calls :c:func:`!rl_parse_and_bind` in the underlying library." +"Execute the init line provided in the *string* argument. This calls :c:func:" +"`!rl_parse_and_bind` in the underlying library." msgstr "" -#: ../../library/readline.rst:73 msgid "" "Execute a readline initialization file. The default filename is the last " "filename used. This calls :c:func:`!rl_read_init_file` in the underlying " @@ -117,47 +102,36 @@ msgid "" "regardless of which file the library resolves." msgstr "" -#: ../../library/readline.rst:79 ../../library/readline.rst:122 -#: ../../library/readline.rst:134 ../../library/readline.rst:149 msgid "The auditing event was added." msgstr "" -#: ../../library/readline.rst:84 msgid "Line buffer" msgstr "" -#: ../../library/readline.rst:86 msgid "The following functions operate on the line buffer:" msgstr "" -#: ../../library/readline.rst:91 msgid "" "Return the current contents of the line buffer (:c:data:`!rl_line_buffer` in " "the underlying library)." msgstr "" -#: ../../library/readline.rst:97 msgid "" -"Insert text into the line buffer at the cursor position. This " -"calls :c:func:`!rl_insert_text` in the underlying library, but ignores the " -"return value." +"Insert text into the line buffer at the cursor position. This calls :c:func:" +"`!rl_insert_text` in the underlying library, but ignores the return value." msgstr "" -#: ../../library/readline.rst:104 msgid "" "Change what's displayed on the screen to reflect the current contents of the " "line buffer. This calls :c:func:`!rl_redisplay` in the underlying library." msgstr "" -#: ../../library/readline.rst:109 msgid "History file" msgstr "" -#: ../../library/readline.rst:111 msgid "The following functions operate on a history file:" msgstr "" -#: ../../library/readline.rst:116 msgid "" "Load a readline history file, and append it to the history list. The default " "filename is :file:`~/.history`. This calls :c:func:`!read_history` in the " @@ -165,7 +139,6 @@ msgid "" "with the file name if given and :code:`\"~/.history\"` otherwise." msgstr "" -#: ../../library/readline.rst:128 msgid "" "Save the history list to a readline history file, overwriting any existing " "file. The default filename is :file:`~/.history`. This calls :c:func:`!" @@ -174,90 +147,76 @@ msgid "" "otherwise." msgstr "" -#: ../../library/readline.rst:140 msgid "" "Append the last *nelements* items of history to a file. The default " -"filename is :file:`~/.history`. The file must already exist. This " -"calls :c:func:`!append_history` in the underlying library. This function " -"only exists if Python was compiled for a version of the library that " -"supports it. It raises an :ref:`auditing event ` ``open`` with the " -"file name if given and :code:`\"~/.history\"` otherwise." +"filename is :file:`~/.history`. The file must already exist. This calls :c:" +"func:`!append_history` in the underlying library. This function only exists " +"if Python was compiled for a version of the library that supports it. It " +"raises an :ref:`auditing event ` ``open`` with the file name if " +"given and :code:`\"~/.history\"` otherwise." msgstr "" -#: ../../library/readline.rst:156 msgid "" -"Set or return the desired number of lines to save in the history file. " -"The :func:`write_history_file` function uses this value to truncate the " -"history file, by calling :c:func:`!history_truncate_file` in the underlying " +"Set or return the desired number of lines to save in the history file. The :" +"func:`write_history_file` function uses this value to truncate the history " +"file, by calling :c:func:`!history_truncate_file` in the underlying " "library. Negative values imply unlimited history file size." msgstr "" -#: ../../library/readline.rst:164 msgid "History list" msgstr "" -#: ../../library/readline.rst:166 msgid "The following functions operate on a global history list:" msgstr "" -#: ../../library/readline.rst:171 msgid "" "Clear the current history. This calls :c:func:`!clear_history` in the " "underlying library. The Python function only exists if Python was compiled " "for a version of the library that supports it." msgstr "" -#: ../../library/readline.rst:178 msgid "" "Return the number of items currently in the history. (This is different " "from :func:`get_history_length`, which returns the maximum number of lines " "that will be written to a history file.)" msgstr "" -#: ../../library/readline.rst:185 msgid "" "Return the current contents of history item at *index*. The item index is " "one-based. This calls :c:func:`!history_get` in the underlying library." msgstr "" -#: ../../library/readline.rst:191 msgid "" "Remove history item specified by its position from the history. The position " "is zero-based. This calls :c:func:`!remove_history` in the underlying " "library." msgstr "" -#: ../../library/readline.rst:198 msgid "" "Replace history item specified by its position with *line*. The position is " "zero-based. This calls :c:func:`!replace_history_entry` in the underlying " "library." msgstr "" -#: ../../library/readline.rst:205 msgid "" "Append *line* to the history buffer, as if it was the last line typed. This " "calls :c:func:`!add_history` in the underlying library." msgstr "" -#: ../../library/readline.rst:211 msgid "" "Enable or disable automatic calls to :c:func:`!add_history` when reading " "input via readline. The *enabled* argument should be a Boolean value that " "when true, enables auto history, and that when false, disables auto history." msgstr "" -#: ../../library/readline.rst:219 msgid "" "Auto history is enabled by default, and changes to this do not persist " "across multiple sessions." msgstr "" -#: ../../library/readline.rst:224 msgid "Startup hooks" msgstr "" -#: ../../library/readline.rst:229 msgid "" "Set or remove the function invoked by the :c:data:`!rl_startup_hook` " "callback of the underlying library. If *function* is specified, it will be " @@ -266,7 +225,6 @@ msgid "" "readline prints the first prompt." msgstr "" -#: ../../library/readline.rst:238 msgid "" "Set or remove the function invoked by the :c:data:`!rl_pre_input_hook` " "callback of the underlying library. If *function* is specified, it will be " @@ -277,11 +235,9 @@ msgid "" "of the library that supports it." msgstr "" -#: ../../library/readline.rst:250 msgid "Completion" msgstr "" -#: ../../library/readline.rst:252 msgid "" "The following functions relate to implementing a custom word completion " "function. This is typically operated by the Tab key, and can suggest and " @@ -291,7 +247,6 @@ msgid "" "custom completer, a different set of word delimiters should be set." msgstr "" -#: ../../library/readline.rst:262 msgid "" "Set or remove the completer function. If *function* is specified, it will " "be used as the new completer function; if omitted or ``None``, any completer " @@ -301,7 +256,6 @@ msgid "" "starting with *text*." msgstr "" -#: ../../library/readline.rst:269 msgid "" "The installed completer function is invoked by the *entry_func* callback " "passed to :c:func:`!rl_completion_matches` in the underlying library. The " @@ -309,19 +263,16 @@ msgid "" "rl_attempted_completion_function` callback of the underlying library." msgstr "" -#: ../../library/readline.rst:278 msgid "" "Get the completer function, or ``None`` if no completer function has been " "set." msgstr "" -#: ../../library/readline.rst:283 msgid "" "Get the type of completion being attempted. This returns the :c:data:`!" "rl_completion_type` variable in the underlying library as an integer." msgstr "" -#: ../../library/readline.rst:291 msgid "" "Get the beginning or ending index of the completion scope. These indexes are " "the *start* and *end* arguments passed to the :c:data:`!" @@ -331,7 +282,6 @@ msgid "" "differently than libreadline." msgstr "" -#: ../../library/readline.rst:302 msgid "" "Set or get the word delimiters for completion. These determine the start of " "the word to be considered for completion (the completion scope). These " @@ -339,7 +289,6 @@ msgid "" "in the underlying library." msgstr "" -#: ../../library/readline.rst:310 msgid "" "Set or remove the completion display function. If *function* is specified, " "it will be used as the new completion display function; if omitted or " @@ -350,11 +299,9 @@ msgid "" "each time matches need to be displayed." msgstr "" -#: ../../library/readline.rst:323 msgid "Example" msgstr "" -#: ../../library/readline.rst:325 msgid "" "The following example demonstrates how to use the :mod:`readline` module's " "history reading and writing functions to automatically load and save a " @@ -363,7 +310,6 @@ msgid "" "sessions from the user's :envvar:`PYTHONSTARTUP` file. ::" msgstr "" -#: ../../library/readline.rst:331 msgid "" "import atexit\n" "import os\n" @@ -380,19 +326,16 @@ msgid "" "atexit.register(readline.write_history_file, histfile)" msgstr "" -#: ../../library/readline.rst:345 msgid "" -"This code is actually automatically run when Python is run " -"in :ref:`interactive mode ` (see :ref:`rlcompleter-config`)." +"This code is actually automatically run when Python is run in :ref:" +"`interactive mode ` (see :ref:`rlcompleter-config`)." msgstr "" -#: ../../library/readline.rst:348 msgid "" "The following example achieves the same goal but supports concurrent " "interactive sessions, by only appending the new history. ::" msgstr "" -#: ../../library/readline.rst:351 msgid "" "import atexit\n" "import os\n" @@ -413,13 +356,11 @@ msgid "" "atexit.register(save, h_len, histfile)" msgstr "" -#: ../../library/readline.rst:369 msgid "" "The following example extends the :class:`code.InteractiveConsole` class to " "support history save/restore. ::" msgstr "" -#: ../../library/readline.rst:372 msgid "" "import atexit\n" "import code\n" diff --git a/library/removed.po b/library/removed.po index d0c767b..19f608e 100644 --- a/library/removed.po +++ b/library/removed.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/removed.rst:7 msgid "Removed Modules" msgstr "" -#: ../../library/removed.rst:9 msgid "" "The modules described in this chapter have been removed from the Python " "standard library. They are documented here to help people find replacements." diff --git a/library/reprlib.po b/library/reprlib.po index 7d7528e..5a0d760 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,26 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/reprlib.rst:2 msgid ":mod:`!reprlib` --- Alternate :func:`repr` implementation" msgstr "" -#: ../../library/reprlib.rst:9 msgid "**Source code:** :source:`Lib/reprlib.py`" msgstr "" -#: ../../library/reprlib.rst:13 msgid "" "The :mod:`!reprlib` module provides a means for producing object " "representations with limits on the size of the resulting strings. This is " "used in the Python debugger and may be useful in other contexts as well." msgstr "" -#: ../../library/reprlib.rst:17 msgid "This module provides a class, an instance, and a function:" msgstr "" -#: ../../library/reprlib.rst:24 msgid "" "Class which provides formatting services useful in implementing functions " "similar to the built-in :func:`repr`; size limits for different object " @@ -45,67 +40,55 @@ msgid "" "excessively long." msgstr "" -#: ../../library/reprlib.rst:28 msgid "" "The keyword arguments of the constructor can be used as a shortcut to set " "the attributes of the :class:`Repr` instance. Which means that the following " "initialization::" msgstr "" -#: ../../library/reprlib.rst:32 msgid "aRepr = reprlib.Repr(maxlevel=3)" msgstr "" -#: ../../library/reprlib.rst:34 msgid "Is equivalent to::" msgstr "" -#: ../../library/reprlib.rst:36 msgid "" "aRepr = reprlib.Repr()\n" "aRepr.maxlevel = 3" msgstr "" -#: ../../library/reprlib.rst:39 msgid "" "See section `Repr Objects`_ for more information about :class:`Repr` " "attributes." msgstr "" -#: ../../library/reprlib.rst:42 msgid "Allow attributes to be set via keyword arguments." msgstr "" -#: ../../library/reprlib.rst:48 msgid "" -"This is an instance of :class:`Repr` which is used to provide " -"the :func:`.repr` function described below. Changing the attributes of this " -"object will affect the size limits used by :func:`.repr` and the Python " -"debugger." +"This is an instance of :class:`Repr` which is used to provide the :func:`." +"repr` function described below. Changing the attributes of this object will " +"affect the size limits used by :func:`.repr` and the Python debugger." msgstr "" -#: ../../library/reprlib.rst:56 msgid "" "This is the :meth:`~Repr.repr` method of ``aRepr``. It returns a string " "similar to that returned by the built-in function of the same name, but with " "limits on most sizes." msgstr "" -#: ../../library/reprlib.rst:60 msgid "" "In addition to size-limiting tools, the module also provides a decorator for " "detecting recursive calls to :meth:`~object.__repr__` and substituting a " "placeholder string instead." msgstr "" -#: ../../library/reprlib.rst:69 msgid "" "Decorator for :meth:`~object.__repr__` methods to detect recursive calls " "within the same thread. If a recursive call is made, the *fillvalue* is " "returned, otherwise, the usual :meth:`!__repr__` call is made. For example:" msgstr "" -#: ../../library/reprlib.rst:73 msgid "" ">>> from reprlib import recursive_repr\n" ">>> class MyList(list):\n" @@ -120,42 +103,35 @@ msgid "" "<'a'|'b'|'c'|...|'x'>" msgstr "" -#: ../../library/reprlib.rst:93 msgid "Repr Objects" msgstr "" -#: ../../library/reprlib.rst:95 msgid "" ":class:`Repr` instances provide several attributes which can be used to " "provide size limits for the representations of different object types, and " "methods which format specific object types." msgstr "" -#: ../../library/reprlib.rst:102 msgid "" "This string is displayed for recursive references. It defaults to ``...``." msgstr "" -#: ../../library/reprlib.rst:110 msgid "" "Depth limit on the creation of recursive representations. The default is " "``6``." msgstr "" -#: ../../library/reprlib.rst:121 msgid "" "Limits on the number of entries represented for the named object type. The " "default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and ``6`` " "for the others." msgstr "" -#: ../../library/reprlib.rst:128 msgid "" "Maximum number of characters in the representation for an integer. Digits " "are dropped from the middle. The default is ``40``." msgstr "" -#: ../../library/reprlib.rst:134 msgid "" "Limit on the number of characters in the representation of the string. Note " "that the \"normal\" representation of the string is used as the character " @@ -163,21 +139,18 @@ msgid "" "mangled when the representation is shortened. The default is ``30``." msgstr "" -#: ../../library/reprlib.rst:142 msgid "" "This limit is used to control the size of object types for which no specific " "formatting method is available on the :class:`Repr` object. It is applied in " "a similar manner as :attr:`maxstring`. The default is ``20``." msgstr "" -#: ../../library/reprlib.rst:149 msgid "" "If this attribute is set to ``None`` (the default), the output is formatted " "with no line breaks or indentation, like the standard :func:`repr`. For " "example:" msgstr "" -#: ../../library/reprlib.rst:153 msgid "" ">>> example = [\n" "... 1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham']\n" @@ -187,13 +160,11 @@ msgid "" "[1, 'spam', {'a': 2, 'b': 'spam eggs', 'c': {3: 4.5, 6: []}}, 'ham']" msgstr "" -#: ../../library/reprlib.rst:162 msgid "" "If :attr:`~Repr.indent` is set to a string, each recursion level is placed " "on its own line, indented by that string:" msgstr "" -#: ../../library/reprlib.rst:165 msgid "" ">>> aRepr.indent = '-->'\n" ">>> print(aRepr.repr(example))\n" @@ -212,13 +183,11 @@ msgid "" "]" msgstr "" -#: ../../library/reprlib.rst:183 msgid "" "Setting :attr:`~Repr.indent` to a positive integer value behaves as if it " "was set to a string with that number of spaces:" msgstr "" -#: ../../library/reprlib.rst:186 msgid "" ">>> aRepr.indent = 4\n" ">>> print(aRepr.repr(example))\n" @@ -237,13 +206,11 @@ msgid "" "]" msgstr "" -#: ../../library/reprlib.rst:209 msgid "" "The equivalent to the built-in :func:`repr` that uses the formatting imposed " "by the instance." msgstr "" -#: ../../library/reprlib.rst:215 msgid "" "Recursive implementation used by :meth:`.repr`. This uses the type of *obj* " "to determine which formatting method to call, passing it *obj* and *level*. " @@ -252,28 +219,24 @@ msgid "" "call." msgstr "" -#: ../../library/reprlib.rst:224 msgid "" "Formatting methods for specific types are implemented as methods with a name " -"based on the type name. In the method name, **TYPE** is replaced by " -"``'_'.join(type(obj).__name__.split())``. Dispatch to these methods is " -"handled by :meth:`repr1`. Type-specific methods which need to recursively " -"format a value should call ``self.repr1(subobj, level - 1)``." +"based on the type name. In the method name, **TYPE** is replaced by ``'_'." +"join(type(obj).__name__.split())``. Dispatch to these methods is handled by :" +"meth:`repr1`. Type-specific methods which need to recursively format a value " +"should call ``self.repr1(subobj, level - 1)``." msgstr "" -#: ../../library/reprlib.rst:234 msgid "Subclassing Repr Objects" msgstr "" -#: ../../library/reprlib.rst:236 msgid "" -"The use of dynamic dispatching by :meth:`Repr.repr1` allows subclasses " -"of :class:`Repr` to add support for additional built-in object types or to " +"The use of dynamic dispatching by :meth:`Repr.repr1` allows subclasses of :" +"class:`Repr` to add support for additional built-in object types or to " "modify the handling of types already supported. This example shows how " "special support for file objects could be added:" msgstr "" -#: ../../library/reprlib.rst:241 msgid "" "import reprlib\n" "import sys\n" @@ -289,14 +252,11 @@ msgid "" "print(aRepr.repr(sys.stdin)) # prints ''" msgstr "" -#: ../../library/reprlib.rst:256 msgid "" msgstr "" -#: ../../library/reprlib.rst:65 msgid "..." msgstr "" -#: ../../library/reprlib.rst:65 msgid "placeholder" msgstr "" diff --git a/library/resource.po b/library/resource.po index d3d7364..823a44b 100644 --- a/library/resource.po +++ b/library/resource.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,48 +22,34 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/resource.rst:2 msgid ":mod:`!resource` --- Resource usage information" msgstr "" -#: ../../library/resource.rst:13 msgid "" "This module provides basic mechanisms for measuring and controlling system " "resources utilized by a program." msgstr "" -#: ../../library/resource.rst:16 ../../library/resource.rst:104 -#: ../../library/resource.rst:180 ../../library/resource.rst:192 -#: ../../library/resource.rst:201 ../../library/resource.rst:210 -#: ../../library/resource.rst:220 ../../library/resource.rst:229 -#: ../../library/resource.rst:239 ../../library/resource.rst:252 -#: ../../library/resource.rst:260 ../../library/resource.rst:268 msgid "Availability" msgstr "" -#: ../../library/resource.rst:18 msgid "" "Symbolic constants are used to specify particular system resources and to " "request usage information about either the current process or its children." msgstr "" -#: ../../library/resource.rst:21 msgid "An :exc:`OSError` is raised on syscall failure." msgstr "" -#: ../../library/resource.rst:26 msgid "A deprecated alias of :exc:`OSError`." msgstr "" -#: ../../library/resource.rst:28 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" -#: ../../library/resource.rst:33 msgid "Resource Limits" msgstr "" -#: ../../library/resource.rst:35 msgid "" "Resources usage can be limited using the :func:`setrlimit` function " "described below. Each resource is controlled by a pair of limits: a soft " @@ -75,7 +60,6 @@ msgid "" "super-user can raise a hard limit.)" msgstr "" -#: ../../library/resource.rst:43 msgid "" "The specific resources that can be limited are system dependent. They are " "described in the :manpage:`getrlimit(2)` man page. The resources listed " @@ -84,18 +68,15 @@ msgid "" "not defined in this module for those platforms." msgstr "" -#: ../../library/resource.rst:52 msgid "Constant used to represent the limit for an unlimited resource." msgstr "" -#: ../../library/resource.rst:57 msgid "" "Returns a tuple ``(soft, hard)`` with the current soft and hard limits of " "*resource*. Raises :exc:`ValueError` if an invalid resource is specified, " "or :exc:`error` if the underlying system call fails unexpectedly." msgstr "" -#: ../../library/resource.rst:64 msgid "" "Sets new limits of consumption of *resource*. The *limits* argument must be " "a tuple ``(soft, hard)`` of two integers describing the new limits. A value " @@ -103,34 +84,29 @@ msgid "" "unlimited." msgstr "" -#: ../../library/resource.rst:69 msgid "" "Raises :exc:`ValueError` if an invalid resource is specified, if the new " "soft limit exceeds the hard limit, or if a process tries to raise its hard " "limit. Specifying a limit of :data:`~resource.RLIM_INFINITY` when the hard " -"or system limit for that resource is not unlimited will result in " -"a :exc:`ValueError`. A process with the effective UID of super-user can " -"request any valid limit value, including unlimited, but :exc:`ValueError` " -"will still be raised if the requested limit exceeds the system imposed limit." +"or system limit for that resource is not unlimited will result in a :exc:" +"`ValueError`. A process with the effective UID of super-user can request " +"any valid limit value, including unlimited, but :exc:`ValueError` will still " +"be raised if the requested limit exceeds the system imposed limit." msgstr "" -#: ../../library/resource.rst:78 msgid "" "``setrlimit`` may also raise :exc:`error` if the underlying system call " "fails." msgstr "" -#: ../../library/resource.rst:81 msgid "VxWorks only supports setting :data:`RLIMIT_NOFILE`." msgstr "" -#: ../../library/resource.rst:83 msgid "" "Raises an :ref:`auditing event ` ``resource.setrlimit`` with " "arguments ``resource``, ``limits``." msgstr "" -#: ../../library/resource.rst:88 msgid "" "Combines :func:`setrlimit` and :func:`getrlimit` in one function and " "supports to get and set the resources limits of an arbitrary process. If " @@ -139,34 +115,29 @@ msgid "" "is optional." msgstr "" -#: ../../library/resource.rst:94 msgid "" "When *limits* is not given the function returns the *resource* limit of the " "process *pid*. When *limits* is given the *resource* limit of the process is " "set and the former resource limit is returned." msgstr "" -#: ../../library/resource.rst:98 msgid "" -"Raises :exc:`ProcessLookupError` when *pid* can't be found " -"and :exc:`PermissionError` when the user doesn't have ``CAP_SYS_RESOURCE`` " -"for the process." +"Raises :exc:`ProcessLookupError` when *pid* can't be found and :exc:" +"`PermissionError` when the user doesn't have ``CAP_SYS_RESOURCE`` for the " +"process." msgstr "" -#: ../../library/resource.rst:102 msgid "" "Raises an :ref:`auditing event ` ``resource.prlimit`` with " "arguments ``pid``, ``resource``, ``limits``." msgstr "" -#: ../../library/resource.rst:109 msgid "" "These symbols define resources whose consumption can be controlled using " "the :func:`setrlimit` and :func:`getrlimit` functions described below. The " "values of these symbols are exactly the constants used by C programs." msgstr "" -#: ../../library/resource.rst:113 msgid "" "The Unix man page for :manpage:`getrlimit(2)` lists the available resources. " "Note that not all systems use the same symbol or same value to denote the " @@ -175,14 +146,12 @@ msgid "" "module on that platform." msgstr "" -#: ../../library/resource.rst:122 msgid "" "The maximum size (in bytes) of a core file that the current process can " "create. This may result in the creation of a partial core file if a larger " "core would be required to contain the entire process image." msgstr "" -#: ../../library/resource.rst:129 msgid "" "The maximum amount of processor time (in seconds) that a process can use. If " "this limit is exceeded, a :const:`SIGXCPU` signal is sent to the process. " @@ -190,118 +159,94 @@ msgid "" "catch this signal and do something useful, e.g. flush open files to disk.)" msgstr "" -#: ../../library/resource.rst:137 msgid "The maximum size of a file which the process may create." msgstr "" -#: ../../library/resource.rst:142 msgid "The maximum size (in bytes) of the process's heap." msgstr "" -#: ../../library/resource.rst:147 msgid "" "The maximum size (in bytes) of the call stack for the current process. This " "only affects the stack of the main thread in a multi-threaded process." msgstr "" -#: ../../library/resource.rst:153 msgid "" "The maximum resident set size that should be made available to the process." msgstr "" -#: ../../library/resource.rst:158 msgid "The maximum number of processes the current process may create." msgstr "" -#: ../../library/resource.rst:163 msgid "The maximum number of open file descriptors for the current process." msgstr "" -#: ../../library/resource.rst:168 msgid "The BSD name for :const:`RLIMIT_NOFILE`." msgstr "" -#: ../../library/resource.rst:173 msgid "The maximum address space which may be locked in memory." msgstr "" -#: ../../library/resource.rst:178 msgid "The largest area of mapped memory which the process may occupy." msgstr "" -#: ../../library/resource.rst:185 msgid "" "The maximum area (in bytes) of address space which may be taken by the " "process." msgstr "" -#: ../../library/resource.rst:190 msgid "The number of bytes that can be allocated for POSIX message queues." msgstr "" -#: ../../library/resource.rst:199 msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." msgstr "" -#: ../../library/resource.rst:208 msgid "The ceiling of the real-time priority." msgstr "" -#: ../../library/resource.rst:217 msgid "" "The time limit (in microseconds) on CPU time that a process can spend under " "real-time scheduling without making a blocking syscall." msgstr "" -#: ../../library/resource.rst:227 msgid "The number of signals which the process may queue." msgstr "" -#: ../../library/resource.rst:235 msgid "" "The maximum size (in bytes) of socket buffer usage for this user. This " "limits the amount of network memory, and hence the amount of mbufs, that " "this user may hold at any time." msgstr "" -#: ../../library/resource.rst:245 msgid "" "The maximum size (in bytes) of the swap space that may be reserved or used " "by all of this user id's processes. This limit is enforced only if bit 1 of " -"the vm.overcommit sysctl is set. Please see `tuning(7) `__ for a complete " -"description of this sysctl." +"the vm.overcommit sysctl is set. Please see `tuning(7) `__ for a complete description of " +"this sysctl." msgstr "" -#: ../../library/resource.rst:258 msgid "The maximum number of pseudo-terminals created by this user id." msgstr "" -#: ../../library/resource.rst:266 msgid "The maximum number of kqueues this user id is allowed to create." msgstr "" -#: ../../library/resource.rst:273 msgid "Resource Usage" msgstr "" -#: ../../library/resource.rst:275 msgid "These functions are used to retrieve resource usage information:" msgstr "" -#: ../../library/resource.rst:280 msgid "" "This function returns an object that describes the resources consumed by " "either the current process or its children, as specified by the *who* " -"parameter. The *who* parameter should be specified using one of " -"the :const:`!RUSAGE_\\*` constants described below." +"parameter. The *who* parameter should be specified using one of the :const:" +"`!RUSAGE_\\*` constants described below." msgstr "" -#: ../../library/resource.rst:285 msgid "A simple example::" msgstr "" -#: ../../library/resource.rst:287 msgid "" "from resource import *\n" "import time\n" @@ -316,7 +261,6 @@ msgid "" "print(getrusage(RUSAGE_SELF))" msgstr "" -#: ../../library/resource.rst:299 msgid "" "The fields of the return value each describe how a particular system " "resource has been used, e.g. amount of time spent running is user mode or " @@ -325,265 +269,205 @@ msgid "" "is using." msgstr "" -#: ../../library/resource.rst:304 msgid "" "For backward compatibility, the return value is also accessible as a tuple " "of 16 elements." msgstr "" -#: ../../library/resource.rst:307 msgid "" "The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are " "floating-point values representing the amount of time spent executing in " "user mode and the amount of time spent executing in system mode, " -"respectively. The remaining values are integers. Consult " -"the :manpage:`getrusage(2)` man page for detailed information about these " -"values. A brief summary is presented here:" +"respectively. The remaining values are integers. Consult the :manpage:" +"`getrusage(2)` man page for detailed information about these values. A brief " +"summary is presented here:" msgstr "" -#: ../../library/resource.rst:314 msgid "Index" msgstr "" -#: ../../library/resource.rst:314 msgid "Field" msgstr "" -#: ../../library/resource.rst:314 msgid "Resource" msgstr "" -#: ../../library/resource.rst:316 msgid "``0``" -msgstr "``0``" +msgstr "" -#: ../../library/resource.rst:316 msgid ":attr:`ru_utime`" msgstr "" -#: ../../library/resource.rst:316 msgid "time in user mode (float seconds)" msgstr "" -#: ../../library/resource.rst:318 msgid "``1``" msgstr "``1``" -#: ../../library/resource.rst:318 msgid ":attr:`ru_stime`" msgstr "" -#: ../../library/resource.rst:318 msgid "time in system mode (float seconds)" msgstr "" -#: ../../library/resource.rst:320 msgid "``2``" msgstr "``2``" -#: ../../library/resource.rst:320 msgid ":attr:`ru_maxrss`" msgstr "" -#: ../../library/resource.rst:320 msgid "maximum resident set size" msgstr "" -#: ../../library/resource.rst:322 msgid "``3``" msgstr "``3``" -#: ../../library/resource.rst:322 msgid ":attr:`ru_ixrss`" msgstr "" -#: ../../library/resource.rst:322 msgid "shared memory size" msgstr "" -#: ../../library/resource.rst:324 msgid "``4``" msgstr "``4``" -#: ../../library/resource.rst:324 msgid ":attr:`ru_idrss`" msgstr "" -#: ../../library/resource.rst:324 msgid "unshared memory size" msgstr "" -#: ../../library/resource.rst:326 msgid "``5``" -msgstr "``5``" +msgstr "" -#: ../../library/resource.rst:326 msgid ":attr:`ru_isrss`" msgstr "" -#: ../../library/resource.rst:326 msgid "unshared stack size" msgstr "" -#: ../../library/resource.rst:328 msgid "``6``" -msgstr "``6``" +msgstr "" -#: ../../library/resource.rst:328 msgid ":attr:`ru_minflt`" msgstr "" -#: ../../library/resource.rst:328 msgid "page faults not requiring I/O" msgstr "" -#: ../../library/resource.rst:330 msgid "``7``" -msgstr "``7``" +msgstr "" -#: ../../library/resource.rst:330 msgid ":attr:`ru_majflt`" msgstr "" -#: ../../library/resource.rst:330 msgid "page faults requiring I/O" msgstr "" -#: ../../library/resource.rst:332 msgid "``8``" -msgstr "``8``" +msgstr "" -#: ../../library/resource.rst:332 msgid ":attr:`ru_nswap`" msgstr "" -#: ../../library/resource.rst:332 msgid "number of swap outs" msgstr "" -#: ../../library/resource.rst:334 msgid "``9``" -msgstr "``9``" +msgstr "" -#: ../../library/resource.rst:334 msgid ":attr:`ru_inblock`" msgstr "" -#: ../../library/resource.rst:334 msgid "block input operations" msgstr "" -#: ../../library/resource.rst:336 msgid "``10``" msgstr "" -#: ../../library/resource.rst:336 msgid ":attr:`ru_oublock`" msgstr "" -#: ../../library/resource.rst:336 msgid "block output operations" msgstr "" -#: ../../library/resource.rst:338 msgid "``11``" msgstr "" -#: ../../library/resource.rst:338 msgid ":attr:`ru_msgsnd`" msgstr "" -#: ../../library/resource.rst:338 msgid "messages sent" msgstr "" -#: ../../library/resource.rst:340 msgid "``12``" msgstr "" -#: ../../library/resource.rst:340 msgid ":attr:`ru_msgrcv`" msgstr "" -#: ../../library/resource.rst:340 msgid "messages received" msgstr "" -#: ../../library/resource.rst:342 msgid "``13``" msgstr "" -#: ../../library/resource.rst:342 msgid ":attr:`ru_nsignals`" msgstr "" -#: ../../library/resource.rst:342 msgid "signals received" msgstr "" -#: ../../library/resource.rst:344 msgid "``14``" msgstr "" -#: ../../library/resource.rst:344 msgid ":attr:`ru_nvcsw`" msgstr "" -#: ../../library/resource.rst:344 msgid "voluntary context switches" msgstr "" -#: ../../library/resource.rst:346 msgid "``15``" msgstr "" -#: ../../library/resource.rst:346 msgid ":attr:`ru_nivcsw`" msgstr "" -#: ../../library/resource.rst:346 msgid "involuntary context switches" msgstr "" -#: ../../library/resource.rst:349 msgid "" "This function will raise a :exc:`ValueError` if an invalid *who* parameter " "is specified. It may also raise :exc:`error` exception in unusual " "circumstances." msgstr "" -#: ../../library/resource.rst:355 msgid "" "Returns the number of bytes in a system page. (This need not be the same as " "the hardware page size.)" msgstr "" -#: ../../library/resource.rst:358 msgid "" -"The following :const:`!RUSAGE_\\*` symbols are passed to " -"the :func:`getrusage` function to specify which processes information should " -"be provided for." +"The following :const:`!RUSAGE_\\*` symbols are passed to the :func:" +"`getrusage` function to specify which processes information should be " +"provided for." msgstr "" -#: ../../library/resource.rst:364 msgid "" "Pass to :func:`getrusage` to request resources consumed by the calling " "process, which is the sum of resources used by all threads in the process." msgstr "" -#: ../../library/resource.rst:370 msgid "" "Pass to :func:`getrusage` to request resources consumed by child processes " "of the calling process which have been terminated and waited for." msgstr "" -#: ../../library/resource.rst:376 msgid "" "Pass to :func:`getrusage` to request resources consumed by both the current " "process and child processes. May not be available on all systems." msgstr "" -#: ../../library/resource.rst:382 msgid "" "Pass to :func:`getrusage` to request resources consumed by the current " "thread. May not be available on all systems." diff --git a/library/rlcompleter.po b/library/rlcompleter.po index 4c10339..83e414f 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/rlcompleter.rst:2 msgid ":mod:`!rlcompleter` --- Completion function for GNU readline" msgstr "" -#: ../../library/rlcompleter.rst:9 msgid "**Source code:** :source:`Lib/rlcompleter.py`" msgstr "" -#: ../../library/rlcompleter.rst:13 msgid "" "The :mod:`!rlcompleter` module defines a completion function suitable to be " "passed to :func:`~readline.set_completer` in the :mod:`readline` module." msgstr "" -#: ../../library/rlcompleter.rst:16 msgid "" "When this module is imported on a Unix platform with the :mod:`readline` " "module available, an instance of the :class:`Completer` class is " @@ -41,62 +37,52 @@ msgid "" "completion of valid Python :ref:`identifiers and keywords `." msgstr "" -#: ../../library/rlcompleter.rst:22 msgid "Example::" msgstr "" -#: ../../library/rlcompleter.rst:24 msgid "" ">>> import rlcompleter\n" ">>> import readline\n" ">>> readline.parse_and_bind(\"tab: complete\")\n" ">>> readline. \n" -"readline.__doc__ " -"readline.get_line_buffer( readline.read_init_file(\n" -"readline.__file__ " -"readline.insert_text( readline.set_completer(\n" +"readline.__doc__ readline.get_line_buffer( readline." +"read_init_file(\n" +"readline.__file__ readline.insert_text( readline." +"set_completer(\n" "readline.__name__ readline.parse_and_bind(\n" ">>> readline." msgstr "" -#: ../../library/rlcompleter.rst:33 msgid "" -"The :mod:`!rlcompleter` module is designed for use with " -"Python's :ref:`interactive mode `. Unless Python is run " -"with the :option:`-S` option, the module is automatically imported and " -"configured (see :ref:`rlcompleter-config`)." +"The :mod:`!rlcompleter` module is designed for use with Python's :ref:" +"`interactive mode `. Unless Python is run with the :option:" +"`-S` option, the module is automatically imported and configured (see :ref:" +"`rlcompleter-config`)." msgstr "" -#: ../../library/rlcompleter.rst:38 msgid "" "On platforms without :mod:`readline`, the :class:`Completer` class defined " "by this module can still be used for custom purposes." msgstr "" -#: ../../library/rlcompleter.rst:46 msgid "Completer objects have the following method:" msgstr "" -#: ../../library/rlcompleter.rst:50 msgid "Return the next possible completion for *text*." msgstr "" -#: ../../library/rlcompleter.rst:52 msgid "" "When called by the :mod:`readline` module, this method is called " "successively with ``state == 0, 1, 2, ...`` until the method returns " "``None``." msgstr "" -#: ../../library/rlcompleter.rst:56 msgid "" "If called for *text* that doesn't include a period character (``'.'``), it " -"will complete from names currently defined " -"in :mod:`__main__`, :mod:`builtins` and keywords (as defined by " -"the :mod:`keyword` module)." +"will complete from names currently defined in :mod:`__main__`, :mod:" +"`builtins` and keywords (as defined by the :mod:`keyword` module)." msgstr "" -#: ../../library/rlcompleter.rst:60 msgid "" "If called for a dotted name, it will try to evaluate anything without " "obvious side-effects (functions will not be evaluated, but it can generate " diff --git a/library/runpy.po b/library/runpy.po index 33dc9e2..dd3d591 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/runpy.rst:2 msgid ":mod:`!runpy` --- Locating and executing Python modules" msgstr "" -#: ../../library/runpy.rst:9 msgid "**Source code:** :source:`Lib/runpy.py`" msgstr "" -#: ../../library/runpy.rst:13 msgid "" "The :mod:`runpy` module is used to locate and run Python modules without " "importing them first. Its main use is to implement the :option:`-m` command " @@ -34,14 +31,12 @@ msgid "" "namespace rather than the filesystem." msgstr "" -#: ../../library/runpy.rst:18 msgid "" "Note that this is *not* a sandbox module - all code is executed in the " "current process, and any side effects (such as cached imports of other " "modules) will remain in place after the functions have returned." msgstr "" -#: ../../library/runpy.rst:22 msgid "" "Furthermore, any functions and classes defined by the executed code are not " "guaranteed to work correctly after a :mod:`runpy` function has returned. If " @@ -49,11 +44,9 @@ msgid "" "likely to be a more suitable choice than this module." msgstr "" -#: ../../library/runpy.rst:27 msgid "The :mod:`runpy` module provides two functions:" msgstr "" -#: ../../library/runpy.rst:35 msgid "" "Execute the code of the specified module and return the resulting module's " "globals dictionary. The module's code is first located using the standard " @@ -61,7 +54,6 @@ msgid "" "fresh module namespace." msgstr "" -#: ../../library/runpy.rst:40 msgid "" "The *mod_name* argument should be an absolute module name. If the module " "name refers to a package rather than a normal module, then that package is " @@ -69,16 +61,14 @@ msgid "" "executed and the resulting module globals dictionary returned." msgstr "" -#: ../../library/runpy.rst:46 msgid "" "The optional dictionary argument *init_globals* may be used to pre-populate " "the module's globals dictionary before the code is executed. *init_globals* " "will not be modified. If any of the special global variables below are " -"defined in *init_globals*, those definitions are overridden " -"by :func:`run_module`." +"defined in *init_globals*, those definitions are overridden by :func:" +"`run_module`." msgstr "" -#: ../../library/runpy.rst:52 ../../library/runpy.rst:127 msgid "" "The special global variables ``__name__``, ``__spec__``, ``__file__``, " "``__cached__``, ``__loader__`` and ``__package__`` are set in the globals " @@ -87,36 +77,31 @@ msgid "" "implementation detail.)" msgstr "" -#: ../../library/runpy.rst:58 msgid "" -"``__name__`` is set to *run_name* if this optional argument is " -"not :const:`None`, to ``mod_name + '.__main__'`` if the named module is a " -"package and to the *mod_name* argument otherwise." +"``__name__`` is set to *run_name* if this optional argument is not :const:" +"`None`, to ``mod_name + '.__main__'`` if the named module is a package and " +"to the *mod_name* argument otherwise." msgstr "" -#: ../../library/runpy.rst:62 msgid "" "``__spec__`` will be set appropriately for the *actually* imported module " -"(that is, ``__spec__.name`` will always be *mod_name* or ``mod_name + " -"'.__main__'``, never *run_name*)." +"(that is, ``__spec__.name`` will always be *mod_name* or ``mod_name + '." +"__main__'``, never *run_name*)." msgstr "" -#: ../../library/runpy.rst:66 msgid "" -"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` " -"are :ref:`set as normal ` based on the module spec." +"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` are :ref:" +"`set as normal ` based on the module spec." msgstr "" -#: ../../library/runpy.rst:69 msgid "" "If the argument *alter_sys* is supplied and evaluates to :const:`True`, then " -"``sys.argv[0]`` is updated with the value of ``__file__`` and " -"``sys.modules[__name__]`` is updated with a temporary module object for the " -"module being executed. Both ``sys.argv[0]`` and ``sys.modules[__name__]`` " -"are restored to their original values before the function returns." +"``sys.argv[0]`` is updated with the value of ``__file__`` and ``sys." +"modules[__name__]`` is updated with a temporary module object for the module " +"being executed. Both ``sys.argv[0]`` and ``sys.modules[__name__]`` are " +"restored to their original values before the function returns." msgstr "" -#: ../../library/runpy.rst:75 msgid "" "Note that this manipulation of :mod:`sys` is not thread-safe. Other threads " "may see the partially initialised module, as well as the altered list of " @@ -124,36 +109,30 @@ msgid "" "invoking this function from threaded code." msgstr "" -#: ../../library/runpy.rst:81 msgid "" "The :option:`-m` option offering equivalent functionality from the command " "line." msgstr "" -#: ../../library/runpy.rst:84 msgid "" "Added ability to execute packages by looking for a :mod:`__main__` submodule." msgstr "" -#: ../../library/runpy.rst:87 msgid "Added ``__cached__`` global variable (see :pep:`3147`)." msgstr "" -#: ../../library/runpy.rst:90 msgid "" "Updated to take advantage of the module spec feature added by :pep:`451`. " "This allows ``__cached__`` to be set correctly for modules run this way, as " -"well as ensuring the real module name is always accessible as " -"``__spec__.name``." +"well as ensuring the real module name is always accessible as ``__spec__." +"name``." msgstr "" -#: ../../library/runpy.rst:96 msgid "" "The setting of ``__cached__``, ``__loader__``, and ``__package__`` are " "deprecated. See :class:`~importlib.machinery.ModuleSpec` for alternatives." msgstr "" -#: ../../library/runpy.rst:106 msgid "" "Execute the code at the named filesystem location and return the resulting " "module's globals dictionary. As with a script name supplied to the CPython " @@ -162,7 +141,6 @@ msgid "" "module (e.g. a zipfile containing a top-level :file:`__main__.py` file)." msgstr "" -#: ../../library/runpy.rst:113 msgid "" "For a simple script, the specified code is simply executed in a fresh module " "namespace. For a valid :data:`sys.path` entry (typically a zipfile or " @@ -173,22 +151,19 @@ msgid "" "such module at the specified location." msgstr "" -#: ../../library/runpy.rst:121 msgid "" "The optional dictionary argument *init_globals* may be used to pre-populate " "the module's globals dictionary before the code is executed. *init_globals* " "will not be modified. If any of the special global variables below are " -"defined in *init_globals*, those definitions are overridden " -"by :func:`run_path`." +"defined in *init_globals*, those definitions are overridden by :func:" +"`run_path`." msgstr "" -#: ../../library/runpy.rst:133 msgid "" -"``__name__`` is set to *run_name* if this optional argument is " -"not :const:`None` and to ``''`` otherwise." +"``__name__`` is set to *run_name* if this optional argument is not :const:" +"`None` and to ``''`` otherwise." msgstr "" -#: ../../library/runpy.rst:136 msgid "" "If *file_path* directly references a script file (whether as source or as " "precompiled byte code), then ``__file__`` will be set to *file_path*, and " @@ -196,26 +171,23 @@ msgid "" "set to :const:`None`." msgstr "" -#: ../../library/runpy.rst:141 msgid "" "If *file_path* is a reference to a valid :data:`sys.path` entry, then " "``__spec__`` will be set appropriately for the imported :mod:`__main__` " "module (that is, ``__spec__.name`` will always be ``__main__``). " -"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` will " -"be :ref:`set as normal ` based on the module spec." +"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` will be :" +"ref:`set as normal ` based on the module spec." msgstr "" -#: ../../library/runpy.rst:147 msgid "" -"A number of alterations are also made to the :mod:`sys` module. " -"Firstly, :data:`sys.path` may be altered as described above. ``sys.argv[0]`` " -"is updated with the value of *file_path* and ``sys.modules[__name__]`` is " +"A number of alterations are also made to the :mod:`sys` module. Firstly, :" +"data:`sys.path` may be altered as described above. ``sys.argv[0]`` is " +"updated with the value of *file_path* and ``sys.modules[__name__]`` is " "updated with a temporary module object for the module being executed. All " "modifications to items in :mod:`sys` are reverted before the function " "returns." msgstr "" -#: ../../library/runpy.rst:154 msgid "" "Note that, unlike :func:`run_module`, the alterations made to :mod:`sys` are " "not optional in this function as these adjustments are essential to allowing " @@ -224,13 +196,11 @@ msgid "" "serialised with the import lock or delegated to a separate process." msgstr "" -#: ../../library/runpy.rst:161 msgid "" ":ref:`using-on-interface-options` for equivalent functionality on the " "command line (``python path/to/script``)." msgstr "" -#: ../../library/runpy.rst:166 msgid "" "Updated to take advantage of the module spec feature added by :pep:`451`. " "This allows ``__cached__`` to be set correctly in the case where " @@ -238,44 +208,34 @@ msgid "" "being executed directly." msgstr "" -#: ../../library/runpy.rst:172 msgid "" "The setting of ``__cached__``, ``__loader__``, and ``__package__`` are " "deprecated." msgstr "" -#: ../../library/runpy.rst:178 msgid ":pep:`338` -- Executing modules as scripts" msgstr "" -#: ../../library/runpy.rst:179 ../../library/runpy.rst:182 msgid "PEP written and implemented by Nick Coghlan." msgstr "" -#: ../../library/runpy.rst:181 msgid ":pep:`366` -- Main module explicit relative imports" msgstr "" -#: ../../library/runpy.rst:184 msgid ":pep:`451` -- A ModuleSpec Type for the Import System" msgstr "" -#: ../../library/runpy.rst:185 msgid "PEP written and implemented by Eric Snow" msgstr "" -#: ../../library/runpy.rst:187 msgid ":ref:`using-on-general` - CPython command line details" msgstr "" -#: ../../library/runpy.rst:189 msgid "The :func:`importlib.import_module` function" msgstr "" -#: ../../library/runpy.rst:32 ../../library/runpy.rst:103 msgid "module" msgstr "" -#: ../../library/runpy.rst:32 ../../library/runpy.rst:103 msgid "__main__" msgstr "" diff --git a/library/sched.po b/library/sched.po index 262ffd4..b548f51 100644 --- a/library/sched.po +++ b/library/sched.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sched.rst:2 msgid ":mod:`!sched` --- Event scheduler" msgstr "" -#: ../../library/sched.rst:9 msgid "**Source code:** :source:`Lib/sched.py`" msgstr "" -#: ../../library/sched.rst:15 msgid "" "The :mod:`sched` module defines a class which implements a general purpose " "event scheduler:" msgstr "" -#: ../../library/sched.rst:20 msgid "" "The :class:`scheduler` class defines a generic interface to scheduling " "events. It needs two functions to actually deal with the \"outside world\" " @@ -44,20 +40,16 @@ msgid "" "to run in multi-threaded applications." msgstr "" -#: ../../library/sched.rst:29 msgid "*timefunc* and *delayfunc* parameters are optional." msgstr "" -#: ../../library/sched.rst:32 msgid "" ":class:`scheduler` class can be safely used in multi-threaded environments." msgstr "" -#: ../../library/sched.rst:36 msgid "Example::" msgstr "" -#: ../../library/sched.rst:38 msgid "" ">>> import sched, time\n" ">>> s = sched.scheduler(time.time, time.sleep)\n" @@ -88,15 +80,12 @@ msgid "" "1652342840.3697174" msgstr "" -#: ../../library/sched.rst:67 msgid "Scheduler Objects" msgstr "" -#: ../../library/sched.rst:69 msgid ":class:`scheduler` instances have the following methods and attributes:" msgstr "" -#: ../../library/sched.rst:74 msgid "" "Schedule a new event. The *time* argument should be a numeric type " "compatible with the return value of the *timefunc* function passed to the " @@ -104,59 +93,49 @@ msgid "" "order of their *priority*. A lower number represents a higher priority." msgstr "" -#: ../../library/sched.rst:79 msgid "" "Executing the event means executing ``action(*argument, **kwargs)``. " "*argument* is a sequence holding the positional arguments for *action*. " "*kwargs* is a dictionary holding the keyword arguments for *action*." msgstr "" -#: ../../library/sched.rst:83 msgid "" "Return value is an event which may be used for later cancellation of the " "event (see :meth:`cancel`)." msgstr "" -#: ../../library/sched.rst:86 ../../library/sched.rst:99 msgid "*argument* parameter is optional." msgstr "" -#: ../../library/sched.rst:89 ../../library/sched.rst:102 msgid "*kwargs* parameter was added." msgstr "" -#: ../../library/sched.rst:95 msgid "" "Schedule an event for *delay* more time units. Other than the relative time, " "the other arguments, the effect and the return value are the same as those " "for :meth:`enterabs`." msgstr "" -#: ../../library/sched.rst:107 msgid "" "Remove the event from the queue. If *event* is not an event currently in the " "queue, this method will raise a :exc:`ValueError`." msgstr "" -#: ../../library/sched.rst:113 msgid "Return ``True`` if the event queue is empty." msgstr "" -#: ../../library/sched.rst:118 msgid "" "Run all scheduled events. This method will wait (using the *delayfunc* " "function passed to the constructor) for the next event, then execute it and " "so on until there are no more scheduled events." msgstr "" -#: ../../library/sched.rst:122 msgid "" "If *blocking* is false executes the scheduled events due to expire soonest " "(if any) and then return the deadline of the next scheduled call in the " "scheduler (if any)." msgstr "" -#: ../../library/sched.rst:126 msgid "" "Either *action* or *delayfunc* can raise an exception. In either case, the " "scheduler will maintain a consistent state and propagate the exception. If " @@ -164,7 +143,6 @@ msgid "" "future calls to :meth:`run`." msgstr "" -#: ../../library/sched.rst:131 msgid "" "If a sequence of events takes longer to run than the time available before " "the next event, the scheduler will simply fall behind. No events will be " @@ -172,17 +150,14 @@ msgid "" "longer pertinent." msgstr "" -#: ../../library/sched.rst:136 msgid "*blocking* parameter was added." msgstr "" -#: ../../library/sched.rst:141 msgid "" "Read-only attribute returning a list of upcoming events in the order they " "will be run. Each event is shown as a :term:`named tuple` with the " "following fields: time, priority, action, argument, kwargs." msgstr "" -#: ../../library/sched.rst:11 msgid "event scheduling" msgstr "" diff --git a/library/secrets.po b/library/secrets.po index f851c8d..88cb5c5 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,98 +18,80 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/secrets.rst:2 msgid ":mod:`!secrets` --- Generate secure random numbers for managing secrets" msgstr "" -#: ../../library/secrets.rst:16 msgid "**Source code:** :source:`Lib/secrets.py`" msgstr "" -#: ../../library/secrets.rst:20 msgid "" "The :mod:`secrets` module is used for generating cryptographically strong " "random numbers suitable for managing data such as passwords, account " "authentication, security tokens, and related secrets." msgstr "" -#: ../../library/secrets.rst:24 msgid "" "In particular, :mod:`secrets` should be used in preference to the default " "pseudo-random number generator in the :mod:`random` module, which is " "designed for modelling and simulation, not security or cryptography." msgstr "" -#: ../../library/secrets.rst:30 msgid ":pep:`506`" msgstr "" -#: ../../library/secrets.rst:34 msgid "Random numbers" msgstr "" -#: ../../library/secrets.rst:36 msgid "" "The :mod:`secrets` module provides access to the most secure source of " "randomness that your operating system provides." msgstr "" -#: ../../library/secrets.rst:41 msgid "" "A class for generating random numbers using the highest-quality sources " "provided by the operating system. See :class:`random.SystemRandom` for " "additional details." msgstr "" -#: ../../library/secrets.rst:47 msgid "Return a randomly chosen element from a non-empty sequence." msgstr "" -#: ../../library/secrets.rst:51 msgid "Return a random int in the range [0, *exclusive_upper_bound*)." msgstr "" -#: ../../library/secrets.rst:55 msgid "Return a non-negative int with *k* random bits." msgstr "" -#: ../../library/secrets.rst:59 msgid "Generating tokens" msgstr "" -#: ../../library/secrets.rst:61 msgid "" "The :mod:`secrets` module provides functions for generating secure tokens, " "suitable for applications such as password resets, hard-to-guess URLs, and " "similar." msgstr "" -#: ../../library/secrets.rst:67 msgid "" "Return a random byte string containing *nbytes* number of bytes. If *nbytes* " "is ``None`` or not supplied, a reasonable default is used." msgstr "" -#: ../../library/secrets.rst:71 msgid "" ">>> token_bytes(16)\n" "b'\\xebr\\x17D*t\\xae\\xd4\\xe3S\\xb6\\xe2\\xebP1\\x8b'" msgstr "" -#: ../../library/secrets.rst:79 msgid "" "Return a random text string, in hexadecimal. The string has *nbytes* random " "bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or " "not supplied, a reasonable default is used." msgstr "" -#: ../../library/secrets.rst:83 msgid "" ">>> token_hex(16)\n" "'f9bf78b9a18ce6d46a0cd2b0b86df9da'" msgstr "" -#: ../../library/secrets.rst:90 msgid "" "Return a random URL-safe text string, containing *nbytes* random bytes. The " "text is Base64 encoded, so on average each byte results in approximately 1.3 " @@ -117,17 +99,14 @@ msgid "" "is used." msgstr "" -#: ../../library/secrets.rst:95 msgid "" ">>> token_urlsafe(16)\n" "'Drmhze6EPcv0fN_81Bj-nA'" msgstr "" -#: ../../library/secrets.rst:102 msgid "How many bytes should tokens use?" msgstr "" -#: ../../library/secrets.rst:104 msgid "" "To be secure against `brute-force attacks `_, tokens need to have sufficient randomness. " @@ -138,7 +117,6 @@ msgid "" "module." msgstr "" -#: ../../library/secrets.rst:112 msgid "" "For those who want to manage their own token length, you can explicitly " "specify how much randomness is used for tokens by giving an :class:`int` " @@ -146,23 +124,19 @@ msgid "" "the number of bytes of randomness to use." msgstr "" -#: ../../library/secrets.rst:117 msgid "" "Otherwise, if no argument is provided, or if the argument is ``None``, the " "``token_*`` functions will use a reasonable default instead." msgstr "" -#: ../../library/secrets.rst:122 msgid "" "That default is subject to change at any time, including during maintenance " "releases." msgstr "" -#: ../../library/secrets.rst:127 msgid "Other functions" msgstr "" -#: ../../library/secrets.rst:131 msgid "" "Return ``True`` if strings or :term:`bytes-like objects ` " "*a* and *b* are equal, otherwise ``False``, using a \"constant-time " @@ -171,21 +145,17 @@ msgid "" "details." msgstr "" -#: ../../library/secrets.rst:140 msgid "Recipes and best practices" msgstr "" -#: ../../library/secrets.rst:142 msgid "" "This section shows recipes and best practices for using :mod:`secrets` to " "manage a basic level of security." msgstr "" -#: ../../library/secrets.rst:145 msgid "Generate an eight-character alphanumeric password:" msgstr "" -#: ../../library/secrets.rst:147 msgid "" "import string\n" "import secrets\n" @@ -193,20 +163,17 @@ msgid "" "password = ''.join(secrets.choice(alphabet) for i in range(8))" msgstr "" -#: ../../library/secrets.rst:157 msgid "" "Applications should not :cwe:`store passwords in a recoverable format " "<257>`, whether plain text or encrypted. They should be salted and hashed " "using a cryptographically strong one-way (irreversible) hash function." msgstr "" -#: ../../library/secrets.rst:163 msgid "" "Generate a ten-character alphanumeric password with at least one lowercase " "character, at least one uppercase character, and at least three digits:" msgstr "" -#: ../../library/secrets.rst:167 msgid "" "import string\n" "import secrets\n" @@ -219,11 +186,9 @@ msgid "" " break" msgstr "" -#: ../../library/secrets.rst:180 msgid "Generate an `XKCD-style passphrase `_:" msgstr "" -#: ../../library/secrets.rst:182 msgid "" "import secrets\n" "# On standard Linux systems, use a convenient dictionary file.\n" @@ -233,13 +198,11 @@ msgid "" " password = ' '.join(secrets.choice(words) for i in range(4))" msgstr "" -#: ../../library/secrets.rst:192 msgid "" "Generate a hard-to-guess temporary URL containing a security token suitable " "for password recovery applications:" msgstr "" -#: ../../library/secrets.rst:195 msgid "" "import secrets\n" "url = 'https://example.com/reset=' + secrets.token_urlsafe()" diff --git a/library/security_warnings.po b/library/security_warnings.po index 9c2b45a..7afcb57 100644 --- a/library/security_warnings.po +++ b/library/security_warnings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,97 +18,80 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/security_warnings.rst:6 msgid "Security Considerations" msgstr "" -#: ../../library/security_warnings.rst:8 msgid "The following modules have specific security considerations:" msgstr "" -#: ../../library/security_warnings.rst:10 msgid "" -":mod:`base64`: :ref:`base64 security considerations ` " -"in :rfc:`4648`" +":mod:`base64`: :ref:`base64 security considerations ` in :" +"rfc:`4648`" msgstr "" -#: ../../library/security_warnings.rst:12 msgid "" ":mod:`hashlib`: :ref:`all constructors take a \"usedforsecurity\" keyword-" "only argument disabling known insecure and blocked algorithms `" msgstr "" -#: ../../library/security_warnings.rst:15 msgid "" ":mod:`http.server` is not suitable for production use, only implementing " "basic security checks. See the :ref:`security considerations `." msgstr "" -#: ../../library/security_warnings.rst:17 msgid "" ":mod:`logging`: :ref:`Logging configuration uses eval() `" msgstr "" -#: ../../library/security_warnings.rst:19 msgid "" ":mod:`multiprocessing`: :ref:`Connection.recv() uses pickle `" msgstr "" -#: ../../library/security_warnings.rst:21 msgid ":mod:`pickle`: :ref:`Restricting globals in pickle `" msgstr "" -#: ../../library/security_warnings.rst:22 msgid "" ":mod:`random` shouldn't be used for security purposes, use :mod:`secrets` " "instead" msgstr "" -#: ../../library/security_warnings.rst:24 msgid "" ":mod:`shelve`: :ref:`shelve is based on pickle and thus unsuitable for " "dealing with untrusted sources `" msgstr "" -#: ../../library/security_warnings.rst:26 msgid ":mod:`ssl`: :ref:`SSL/TLS security considerations `" msgstr "" -#: ../../library/security_warnings.rst:27 msgid "" ":mod:`subprocess`: :ref:`Subprocess security considerations `" msgstr "" -#: ../../library/security_warnings.rst:29 msgid "" ":mod:`tempfile`: :ref:`mktemp is deprecated due to vulnerability to race " "conditions `" msgstr "" -#: ../../library/security_warnings.rst:31 msgid ":mod:`xml`: :ref:`XML security `" msgstr "" -#: ../../library/security_warnings.rst:32 msgid "" ":mod:`zipfile`: :ref:`maliciously prepared .zip files can cause disk volume " "exhaustion `" msgstr "" -#: ../../library/security_warnings.rst:35 msgid "" "The :option:`-I` command line option can be used to run Python in isolated " -"mode. When it cannot be used, the :option:`-P` option or " -"the :envvar:`PYTHONSAFEPATH` environment variable can be used to not prepend " -"a potentially unsafe path to :data:`sys.path` such as the current directory, " +"mode. When it cannot be used, the :option:`-P` option or the :envvar:" +"`PYTHONSAFEPATH` environment variable can be used to not prepend a " +"potentially unsafe path to :data:`sys.path` such as the current directory, " "the script's directory or an empty string." msgstr "" -#: ../../library/security_warnings.rst:3 msgid "security considerations" msgstr "" diff --git a/library/select.po b/library/select.po index 2c06a75..2c7293b 100644 --- a/library/select.po +++ b/library/select.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,22 +22,19 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/select.rst:2 msgid ":mod:`!select` --- Waiting for I/O completion" msgstr "" -#: ../../library/select.rst:9 msgid "" "This module provides access to the :c:func:`!select` and :c:func:`!poll` " "functions available in most operating systems, :c:func:`!devpoll` available " -"on Solaris and derivatives, :c:func:`!epoll` available on Linux 2.5+ " -"and :c:func:`!kqueue` available on most BSD. Note that on Windows, it only " -"works for sockets; on other operating systems, it also works for other file " -"types (in particular, on Unix, it works on pipes). It cannot be used on " -"regular files to determine whether a file has grown since it was last read." +"on Solaris and derivatives, :c:func:`!epoll` available on Linux 2.5+ and :c:" +"func:`!kqueue` available on most BSD. Note that on Windows, it only works " +"for sockets; on other operating systems, it also works for other file types " +"(in particular, on Unix, it works on pipes). It cannot be used on regular " +"files to determine whether a file has grown since it was last read." msgstr "" -#: ../../library/select.rst:20 msgid "" "The :mod:`selectors` module allows high-level and efficient I/O " "multiplexing, built upon the :mod:`select` module primitives. Users are " @@ -45,60 +42,47 @@ msgid "" "precise control over the OS-level primitives used." msgstr "" -#: ../../library/select.rst:177 ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/select.rst:27 msgid "The module defines the following:" msgstr "" -#: ../../library/select.rst:32 msgid "A deprecated alias of :exc:`OSError`." msgstr "" -#: ../../library/select.rst:34 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" -#: ../../library/select.rst:40 msgid "" "(Only supported on Solaris and derivatives.) Returns a ``/dev/poll`` " "polling object; see section :ref:`devpoll-objects` below for the methods " "supported by devpoll objects." msgstr "" -#: ../../library/select.rst:44 msgid "" ":c:func:`!devpoll` objects are linked to the number of file descriptors " -"allowed at the time of instantiation. If your program reduces this " -"value, :c:func:`!devpoll` will fail. If your program increases this " -"value, :c:func:`!devpoll` may return an incomplete list of active file " -"descriptors." +"allowed at the time of instantiation. If your program reduces this value, :c:" +"func:`!devpoll` will fail. If your program increases this value, :c:func:`!" +"devpoll` may return an incomplete list of active file descriptors." msgstr "" -#: ../../library/select.rst:50 ../../library/select.rst:79 -#: ../../library/select.rst:106 msgid "The new file descriptor is :ref:`non-inheritable `." msgstr "" -#: ../../library/select.rst:54 ../../library/select.rst:108 msgid "The new file descriptor is now non-inheritable." msgstr "" -#: ../../library/select.rst:59 msgid "" "(Only supported on Linux 2.5.44 and newer.) Return an edge polling object, " "which can be used as Edge or Level Triggered interface for I/O events." msgstr "" -#: ../../library/select.rst:63 msgid "" "*sizehint* informs epoll about the expected number of events to be " "registered. It must be positive, or ``-1`` to use the default. It is only " @@ -106,43 +90,36 @@ msgid "" "otherwise it has no effect (though its value is still checked)." msgstr "" -#: ../../library/select.rst:68 msgid "" "*flags* is deprecated and completely ignored. However, when supplied, its " "value must be ``0`` or ``select.EPOLL_CLOEXEC``, otherwise ``OSError`` is " "raised." msgstr "" -#: ../../library/select.rst:72 msgid "" "See the :ref:`epoll-objects` section below for the methods supported by " "epolling objects." msgstr "" -#: ../../library/select.rst:75 msgid "" -"``epoll`` objects support the context management protocol: when used in " -"a :keyword:`with` statement, the new file descriptor is automatically closed " -"at the end of the block." +"``epoll`` objects support the context management protocol: when used in a :" +"keyword:`with` statement, the new file descriptor is automatically closed at " +"the end of the block." msgstr "" -#: ../../library/select.rst:81 msgid "Added the *flags* parameter." msgstr "" -#: ../../library/select.rst:84 msgid "" "Support for the :keyword:`with` statement was added. The new file descriptor " "is now non-inheritable." msgstr "" -#: ../../library/select.rst:88 msgid "" "The *flags* parameter. ``select.EPOLL_CLOEXEC`` is used by default now. " "Use :func:`os.set_inheritable` to make the file descriptor inheritable." msgstr "" -#: ../../library/select.rst:95 msgid "" "(Not supported by all operating systems.) Returns a polling object, which " "supports registering and unregistering file descriptors, and then polling " @@ -150,21 +127,16 @@ msgid "" "supported by polling objects." msgstr "" -#: ../../library/select.rst:103 msgid "" -"(Only supported on BSD.) Returns a kernel queue object; see " -"section :ref:`kqueue-objects` below for the methods supported by kqueue " -"objects." +"(Only supported on BSD.) Returns a kernel queue object; see section :ref:" +"`kqueue-objects` below for the methods supported by kqueue objects." msgstr "" -#: ../../library/select.rst:114 msgid "" -"(Only supported on BSD.) Returns a kernel event object; see " -"section :ref:`kevent-objects` below for the methods supported by kevent " -"objects." +"(Only supported on BSD.) Returns a kernel event object; see section :ref:" +"`kevent-objects` below for the methods supported by kevent objects." msgstr "" -#: ../../library/select.rst:120 msgid "" "This is a straightforward interface to the Unix :c:func:`!select` system " "call. The first three arguments are iterables of 'waitable objects': either " @@ -172,21 +144,17 @@ msgid "" "method named :meth:`~io.IOBase.fileno` returning such an integer:" msgstr "" -#: ../../library/select.rst:125 msgid "*rlist*: wait until ready for reading" msgstr "" -#: ../../library/select.rst:126 msgid "*wlist*: wait until ready for writing" msgstr "" -#: ../../library/select.rst:127 msgid "" "*xlist*: wait for an \"exceptional condition\" (see the manual page for what " "your system considers such a condition)" msgstr "" -#: ../../library/select.rst:130 msgid "" "Empty iterables are allowed, but acceptance of three empty iterables is " "platform-dependent. (It is known to work on Unix but not on Windows.) The " @@ -196,24 +164,21 @@ msgid "" "specifies a poll and never blocks." msgstr "" -#: ../../library/select.rst:137 msgid "" "The return value is a triple of lists of objects that are ready: subsets of " "the first three arguments. When the time-out is reached without a file " "descriptor becoming ready, three empty lists are returned." msgstr "" -#: ../../library/select.rst:145 msgid "" "Among the acceptable object types in the iterables are Python :term:`file " -"objects ` (e.g. ``sys.stdin``, or objects returned " -"by :func:`open` or :func:`os.popen`), socket objects returned " -"by :func:`socket.socket`. You may also define a :dfn:`wrapper` class " -"yourself, as long as it has an appropriate :meth:`~io.IOBase.fileno` method " -"(that really returns a file descriptor, not just a random integer)." +"objects ` (e.g. ``sys.stdin``, or objects returned by :func:" +"`open` or :func:`os.popen`), socket objects returned by :func:`socket." +"socket`. You may also define a :dfn:`wrapper` class yourself, as long as it " +"has an appropriate :meth:`~io.IOBase.fileno` method (that really returns a " +"file descriptor, not just a random integer)." msgstr "" -#: ../../library/select.rst:156 msgid "" "File objects on Windows are not acceptable, but sockets are. On Windows, " "the underlying :c:func:`!select` function is provided by the WinSock " @@ -221,318 +186,244 @@ msgid "" "WinSock." msgstr "" -#: ../../library/select.rst:161 ../../library/select.rst:267 -#: ../../library/select.rst:373 ../../library/select.rst:461 -#: ../../library/select.rst:502 msgid "" "The function is now retried with a recomputed timeout when interrupted by a " "signal, except if the signal handler raises an exception (see :pep:`475` for " "the rationale), instead of raising :exc:`InterruptedError`." msgstr "" -#: ../../library/select.rst:170 msgid "" "The minimum number of bytes which can be written without blocking to a pipe " -"when the pipe has been reported as ready for writing " -"by :func:`~select.select`, :func:`!poll` or another interface in this " -"module. This doesn't apply to other kind of file-like objects such as " -"sockets." +"when the pipe has been reported as ready for writing by :func:`~select." +"select`, :func:`!poll` or another interface in this module. This doesn't " +"apply to other kind of file-like objects such as sockets." msgstr "" -#: ../../library/select.rst:175 msgid "This value is guaranteed by POSIX to be at least 512." msgstr "" -#: ../../library/select.rst:185 msgid "``/dev/poll`` Polling Objects" msgstr "" -#: ../../library/select.rst:187 msgid "" "Solaris and derivatives have ``/dev/poll``. While :c:func:`!select` is *O*\\ " "(*highest file descriptor*) and :c:func:`!poll` is *O*\\ (*number of file " "descriptors*), ``/dev/poll`` is *O*\\ (*active file descriptors*)." msgstr "" -#: ../../library/select.rst:191 msgid "" "``/dev/poll`` behaviour is very close to the standard :c:func:`!poll` object." msgstr "" -#: ../../library/select.rst:197 msgid "Close the file descriptor of the polling object." msgstr "" -#: ../../library/select.rst:204 msgid "``True`` if the polling object is closed." msgstr "" -#: ../../library/select.rst:211 msgid "Return the file descriptor number of the polling object." msgstr "" -#: ../../library/select.rst:218 ../../library/select.rst:396 msgid "" -"Register a file descriptor with the polling object. Future calls to " -"the :meth:`poll` method will then check whether the file descriptor has any " -"pending I/O events. *fd* can be either an integer, or an object with " -"a :meth:`~io.IOBase.fileno` method that returns an integer. File objects " +"Register a file descriptor with the polling object. Future calls to the :" +"meth:`poll` method will then check whether the file descriptor has any " +"pending I/O events. *fd* can be either an integer, or an object with a :" +"meth:`~io.IOBase.fileno` method that returns an integer. File objects " "implement :meth:`!fileno`, so they can also be used as the argument." msgstr "" -#: ../../library/select.rst:224 msgid "" "*eventmask* is an optional bitmask describing the type of events you want to " "check for. The constants are the same that with :c:func:`!poll` object. The " -"default value is a combination of the " -"constants :const:`POLLIN`, :const:`POLLPRI`, and :const:`POLLOUT`." +"default value is a combination of the constants :const:`POLLIN`, :const:" +"`POLLPRI`, and :const:`POLLOUT`." msgstr "" -#: ../../library/select.rst:231 msgid "" "Registering a file descriptor that's already registered is not an error, but " "the result is undefined. The appropriate action is to unregister or modify " "it first. This is an important difference compared with :c:func:`!poll`." msgstr "" -#: ../../library/select.rst:239 msgid "" "This method does an :meth:`unregister` followed by a :meth:`register`. It is " "(a bit) more efficient that doing the same explicitly." msgstr "" -#: ../../library/select.rst:246 ../../library/select.rst:440 msgid "" -"Remove a file descriptor being tracked by a polling object. Just like " -"the :meth:`register` method, *fd* can be an integer or an object with " -"a :meth:`~io.IOBase.fileno` method that returns an integer." +"Remove a file descriptor being tracked by a polling object. Just like the :" +"meth:`register` method, *fd* can be an integer or an object with a :meth:" +"`~io.IOBase.fileno` method that returns an integer." msgstr "" -#: ../../library/select.rst:250 msgid "" "Attempting to remove a file descriptor that was never registered is safely " "ignored." msgstr "" -#: ../../library/select.rst:256 msgid "" "Polls the set of registered file descriptors, and returns a possibly empty " "list containing ``(fd, event)`` 2-tuples for the descriptors that have " "events or errors to report. *fd* is the file descriptor, and *event* is a " -"bitmask with bits set for the reported events for that descriptor " -"--- :const:`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the " -"descriptor can be written to, and so forth. An empty list indicates that the " -"call timed out and no file descriptors had any events to report. If " -"*timeout* is given, it specifies the length of time in milliseconds which " -"the system will wait for events before returning. If *timeout* is omitted, " -"-1, or :const:`None`, the call will block until there is an event for this " -"poll object." +"bitmask with bits set for the reported events for that descriptor --- :const:" +"`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the descriptor " +"can be written to, and so forth. An empty list indicates that the call timed " +"out and no file descriptors had any events to report. If *timeout* is given, " +"it specifies the length of time in milliseconds which the system will wait " +"for events before returning. If *timeout* is omitted, -1, or :const:`None`, " +"the call will block until there is an event for this poll object." msgstr "" -#: ../../library/select.rst:277 msgid "Edge and Level Trigger Polling (epoll) Objects" msgstr "" -#: ../../library/select.rst:279 msgid "https://linux.die.net/man/4/epoll" msgstr "" -#: ../../library/select.rst:281 msgid "*eventmask*" msgstr "" -#: ../../library/select.rst:284 ../../library/select.rst:408 -#: ../../library/select.rst:528 ../../library/select.rst:557 -#: ../../library/select.rst:588 ../../library/select.rst:596 -#: ../../library/select.rst:616 ../../library/select.rst:639 msgid "Constant" msgstr "" -#: ../../library/select.rst:284 ../../library/select.rst:408 -#: ../../library/select.rst:528 ../../library/select.rst:557 -#: ../../library/select.rst:588 ../../library/select.rst:596 -#: ../../library/select.rst:616 ../../library/select.rst:639 msgid "Meaning" msgstr "Jelentés" -#: ../../library/select.rst:286 msgid ":const:`EPOLLIN`" msgstr "" -#: ../../library/select.rst:286 msgid "Available for read" msgstr "" -#: ../../library/select.rst:288 msgid ":const:`EPOLLOUT`" msgstr "" -#: ../../library/select.rst:288 msgid "Available for write" msgstr "" -#: ../../library/select.rst:290 msgid ":const:`EPOLLPRI`" msgstr "" -#: ../../library/select.rst:290 msgid "Urgent data for read" msgstr "" -#: ../../library/select.rst:292 msgid ":const:`EPOLLERR`" msgstr "" -#: ../../library/select.rst:292 msgid "Error condition happened on the assoc. fd" msgstr "" -#: ../../library/select.rst:294 msgid ":const:`EPOLLHUP`" msgstr "" -#: ../../library/select.rst:294 msgid "Hang up happened on the assoc. fd" msgstr "" -#: ../../library/select.rst:296 msgid ":const:`EPOLLET`" msgstr "" -#: ../../library/select.rst:296 msgid "Set Edge Trigger behavior, the default is Level Trigger behavior" msgstr "" -#: ../../library/select.rst:299 msgid ":const:`EPOLLONESHOT`" msgstr "" -#: ../../library/select.rst:299 msgid "" "Set one-shot behavior. After one event is pulled out, the fd is internally " "disabled" msgstr "" -#: ../../library/select.rst:302 msgid ":const:`EPOLLEXCLUSIVE`" msgstr "" -#: ../../library/select.rst:302 msgid "" "Wake only one epoll object when the associated fd has an event. The default " "(if this flag is not set) is to wake all epoll objects polling on a fd." msgstr "" -#: ../../library/select.rst:307 msgid ":const:`EPOLLRDHUP`" msgstr "" -#: ../../library/select.rst:307 msgid "" "Stream socket peer closed connection or shut down writing half of connection." msgstr "" -#: ../../library/select.rst:310 msgid ":const:`EPOLLRDNORM`" msgstr "" -#: ../../library/select.rst:310 msgid "Equivalent to :const:`EPOLLIN`" msgstr "" -#: ../../library/select.rst:312 msgid ":const:`EPOLLRDBAND`" msgstr "" -#: ../../library/select.rst:312 msgid "Priority data band can be read." msgstr "" -#: ../../library/select.rst:314 msgid ":const:`EPOLLWRNORM`" msgstr "" -#: ../../library/select.rst:314 msgid "Equivalent to :const:`EPOLLOUT`" msgstr "" -#: ../../library/select.rst:316 msgid ":const:`EPOLLWRBAND`" msgstr "" -#: ../../library/select.rst:316 msgid "Priority data may be written." msgstr "" -#: ../../library/select.rst:318 msgid ":const:`EPOLLMSG`" msgstr "" -#: ../../library/select.rst:318 msgid "Ignored." msgstr "" -#: ../../library/select.rst:320 msgid ":const:`EPOLLWAKEUP`" msgstr "" -#: ../../library/select.rst:320 msgid "Prevents sleep during event waiting." msgstr "" -#: ../../library/select.rst:323 msgid "" ":const:`EPOLLEXCLUSIVE` was added. It's only supported by Linux Kernel 4.5 " "or later." msgstr "" -#: ../../library/select.rst:327 msgid "" ":const:`EPOLLWAKEUP` was added. It's only supported by Linux Kernel 3.5 or " "later." msgstr "" -#: ../../library/select.rst:333 msgid "Close the control file descriptor of the epoll object." msgstr "" -#: ../../library/select.rst:338 msgid "``True`` if the epoll object is closed." msgstr "" -#: ../../library/select.rst:343 ../../library/select.rst:485 msgid "Return the file descriptor number of the control fd." msgstr "" -#: ../../library/select.rst:348 msgid "Create an epoll object from a given file descriptor." msgstr "" -#: ../../library/select.rst:353 msgid "Register a fd descriptor with the epoll object." msgstr "" -#: ../../library/select.rst:358 msgid "Modify a registered file descriptor." msgstr "" -#: ../../library/select.rst:363 msgid "Remove a registered file descriptor from the epoll object." msgstr "" -#: ../../library/select.rst:365 msgid "The method no longer ignores the :data:`~errno.EBADF` error." msgstr "" -#: ../../library/select.rst:371 msgid "Wait for events. timeout in seconds (float)" msgstr "" -#: ../../library/select.rst:383 msgid "Polling Objects" msgstr "" -#: ../../library/select.rst:385 msgid "" "The :c:func:`!poll` system call, supported on most Unix systems, provides " "better scalability for network servers that service many, many clients at " @@ -544,150 +435,118 @@ msgid "" "of file descriptors*)." msgstr "" -#: ../../library/select.rst:402 msgid "" "*eventmask* is an optional bitmask describing the type of events you want to " -"check for, and can be a combination of the " -"constants :const:`POLLIN`, :const:`POLLPRI`, and :const:`POLLOUT`, described " -"in the table below. If not specified, the default value used will check for " -"all 3 types of events." +"check for, and can be a combination of the constants :const:`POLLIN`, :const:" +"`POLLPRI`, and :const:`POLLOUT`, described in the table below. If not " +"specified, the default value used will check for all 3 types of events." msgstr "" -#: ../../library/select.rst:410 msgid ":const:`POLLIN`" msgstr "" -#: ../../library/select.rst:410 msgid "There is data to read" msgstr "" -#: ../../library/select.rst:412 msgid ":const:`POLLPRI`" msgstr "" -#: ../../library/select.rst:412 msgid "There is urgent data to read" msgstr "" -#: ../../library/select.rst:414 msgid ":const:`POLLOUT`" msgstr "" -#: ../../library/select.rst:414 msgid "Ready for output: writing will not block" msgstr "" -#: ../../library/select.rst:416 msgid ":const:`POLLERR`" msgstr "" -#: ../../library/select.rst:416 msgid "Error condition of some sort" msgstr "" -#: ../../library/select.rst:418 msgid ":const:`POLLHUP`" msgstr "" -#: ../../library/select.rst:418 msgid "Hung up" msgstr "" -#: ../../library/select.rst:420 msgid ":const:`POLLRDHUP`" msgstr "" -#: ../../library/select.rst:420 msgid "" "Stream socket peer closed connection, or shut down writing half of connection" msgstr "" -#: ../../library/select.rst:423 msgid ":const:`POLLNVAL`" msgstr "" -#: ../../library/select.rst:423 msgid "Invalid request: descriptor not open" msgstr "" -#: ../../library/select.rst:426 msgid "" "Registering a file descriptor that's already registered is not an error, and " "has the same effect as registering the descriptor exactly once." msgstr "" -#: ../../library/select.rst:432 msgid "" "Modifies an already registered fd. This has the same effect as " "``register(fd, eventmask)``. Attempting to modify a file descriptor that " -"was never registered causes an :exc:`OSError` exception with " -"errno :const:`ENOENT` to be raised." +"was never registered causes an :exc:`OSError` exception with errno :const:" +"`ENOENT` to be raised." msgstr "" -#: ../../library/select.rst:444 msgid "" -"Attempting to remove a file descriptor that was never registered causes " -"a :exc:`KeyError` exception to be raised." +"Attempting to remove a file descriptor that was never registered causes a :" +"exc:`KeyError` exception to be raised." msgstr "" -#: ../../library/select.rst:450 msgid "" "Polls the set of registered file descriptors, and returns a possibly empty " "list containing ``(fd, event)`` 2-tuples for the descriptors that have " "events or errors to report. *fd* is the file descriptor, and *event* is a " -"bitmask with bits set for the reported events for that descriptor " -"--- :const:`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the " -"descriptor can be written to, and so forth. An empty list indicates that the " -"call timed out and no file descriptors had any events to report. If " -"*timeout* is given, it specifies the length of time in milliseconds which " -"the system will wait for events before returning. If *timeout* is omitted, " -"negative, or :const:`None`, the call will block until there is an event for " -"this poll object." +"bitmask with bits set for the reported events for that descriptor --- :const:" +"`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the descriptor " +"can be written to, and so forth. An empty list indicates that the call timed " +"out and no file descriptors had any events to report. If *timeout* is given, " +"it specifies the length of time in milliseconds which the system will wait " +"for events before returning. If *timeout* is omitted, negative, or :const:" +"`None`, the call will block until there is an event for this poll object." msgstr "" -#: ../../library/select.rst:471 msgid "Kqueue Objects" msgstr "" -#: ../../library/select.rst:475 msgid "Close the control file descriptor of the kqueue object." msgstr "" -#: ../../library/select.rst:480 msgid "``True`` if the kqueue object is closed." msgstr "" -#: ../../library/select.rst:490 msgid "Create a kqueue object from a given file descriptor." msgstr "" -#: ../../library/select.rst:495 msgid "Low level interface to kevent" msgstr "" -#: ../../library/select.rst:497 msgid "changelist must be an iterable of kevent objects or ``None``" msgstr "" -#: ../../library/select.rst:498 msgid "max_events must be 0 or a positive integer" msgstr "" -#: ../../library/select.rst:499 msgid "" "timeout in seconds (floats possible); the default is ``None``, to wait " "forever" msgstr "" -#: ../../library/select.rst:512 msgid "Kevent Objects" msgstr "" -#: ../../library/select.rst:514 msgid "https://man.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" msgstr "" -#: ../../library/select.rst:518 msgid "" "Value used to identify the event. The interpretation depends on the filter " "but it's usually the file descriptor. In the constructor ident can either be " @@ -695,340 +554,256 @@ msgid "" "the integer internally." msgstr "" -#: ../../library/select.rst:525 msgid "Name of the kernel filter." msgstr "" -#: ../../library/select.rst:530 msgid ":const:`KQ_FILTER_READ`" msgstr "" -#: ../../library/select.rst:530 msgid "Takes a descriptor and returns whenever there is data available to read" msgstr "" -#: ../../library/select.rst:533 msgid ":const:`KQ_FILTER_WRITE`" msgstr "" -#: ../../library/select.rst:533 msgid "" "Takes a descriptor and returns whenever there is data available to write" msgstr "" -#: ../../library/select.rst:536 msgid ":const:`KQ_FILTER_AIO`" msgstr "" -#: ../../library/select.rst:536 msgid "AIO requests" msgstr "" -#: ../../library/select.rst:538 msgid ":const:`KQ_FILTER_VNODE`" msgstr "" -#: ../../library/select.rst:538 msgid "" "Returns when one or more of the requested events watched in *fflag* occurs" msgstr "" -#: ../../library/select.rst:541 msgid ":const:`KQ_FILTER_PROC`" msgstr "" -#: ../../library/select.rst:541 msgid "Watch for events on a process id" msgstr "" -#: ../../library/select.rst:543 msgid ":const:`KQ_FILTER_NETDEV`" msgstr "" -#: ../../library/select.rst:543 msgid "Watch for events on a network device [not available on macOS]" msgstr "" -#: ../../library/select.rst:546 msgid ":const:`KQ_FILTER_SIGNAL`" msgstr "" -#: ../../library/select.rst:546 msgid "Returns whenever the watched signal is delivered to the process" msgstr "" -#: ../../library/select.rst:549 msgid ":const:`KQ_FILTER_TIMER`" msgstr "" -#: ../../library/select.rst:549 msgid "Establishes an arbitrary timer" msgstr "" -#: ../../library/select.rst:554 msgid "Filter action." msgstr "" -#: ../../library/select.rst:559 msgid ":const:`KQ_EV_ADD`" msgstr "" -#: ../../library/select.rst:559 msgid "Adds or modifies an event" msgstr "" -#: ../../library/select.rst:561 msgid ":const:`KQ_EV_DELETE`" msgstr "" -#: ../../library/select.rst:561 msgid "Removes an event from the queue" msgstr "" -#: ../../library/select.rst:563 msgid ":const:`KQ_EV_ENABLE`" msgstr "" -#: ../../library/select.rst:563 msgid "Permitscontrol() to returns the event" msgstr "" -#: ../../library/select.rst:565 msgid ":const:`KQ_EV_DISABLE`" msgstr "" -#: ../../library/select.rst:565 msgid "Disablesevent" msgstr "" -#: ../../library/select.rst:567 msgid ":const:`KQ_EV_ONESHOT`" msgstr "" -#: ../../library/select.rst:567 msgid "Removes event after first occurrence" msgstr "" -#: ../../library/select.rst:569 msgid ":const:`KQ_EV_CLEAR`" msgstr "" -#: ../../library/select.rst:569 msgid "Reset the state after an event is retrieved" msgstr "" -#: ../../library/select.rst:571 msgid ":const:`KQ_EV_SYSFLAGS`" msgstr "" -#: ../../library/select.rst:571 ../../library/select.rst:573 msgid "internal event" msgstr "" -#: ../../library/select.rst:573 msgid ":const:`KQ_EV_FLAG1`" msgstr "" -#: ../../library/select.rst:575 msgid ":const:`KQ_EV_EOF`" msgstr "" -#: ../../library/select.rst:575 msgid "Filter specific EOF condition" msgstr "" -#: ../../library/select.rst:577 msgid ":const:`KQ_EV_ERROR`" msgstr "" -#: ../../library/select.rst:577 msgid "See return values" msgstr "" -#: ../../library/select.rst:583 msgid "Filter specific flags." msgstr "" -#: ../../library/select.rst:585 msgid ":const:`KQ_FILTER_READ` and :const:`KQ_FILTER_WRITE` filter flags:" msgstr "" -#: ../../library/select.rst:590 msgid ":const:`KQ_NOTE_LOWAT`" msgstr "" -#: ../../library/select.rst:590 msgid "low water mark of a socket buffer" msgstr "" -#: ../../library/select.rst:593 msgid ":const:`KQ_FILTER_VNODE` filter flags:" msgstr "" -#: ../../library/select.rst:598 msgid ":const:`KQ_NOTE_DELETE`" msgstr "" -#: ../../library/select.rst:598 msgid "*unlink()* was called" msgstr "" -#: ../../library/select.rst:600 msgid ":const:`KQ_NOTE_WRITE`" msgstr "" -#: ../../library/select.rst:600 msgid "a write occurred" msgstr "" -#: ../../library/select.rst:602 msgid ":const:`KQ_NOTE_EXTEND`" msgstr "" -#: ../../library/select.rst:602 msgid "the file was extended" msgstr "" -#: ../../library/select.rst:604 msgid ":const:`KQ_NOTE_ATTRIB`" msgstr "" -#: ../../library/select.rst:604 msgid "an attribute was changed" msgstr "" -#: ../../library/select.rst:606 msgid ":const:`KQ_NOTE_LINK`" msgstr "" -#: ../../library/select.rst:606 msgid "the link count has changed" msgstr "" -#: ../../library/select.rst:608 msgid ":const:`KQ_NOTE_RENAME`" msgstr "" -#: ../../library/select.rst:608 msgid "the file was renamed" msgstr "" -#: ../../library/select.rst:610 msgid ":const:`KQ_NOTE_REVOKE`" msgstr "" -#: ../../library/select.rst:610 msgid "access to the file was revoked" msgstr "" -#: ../../library/select.rst:613 msgid ":const:`KQ_FILTER_PROC` filter flags:" msgstr "" -#: ../../library/select.rst:618 msgid ":const:`KQ_NOTE_EXIT`" msgstr "" -#: ../../library/select.rst:618 msgid "the process has exited" msgstr "" -#: ../../library/select.rst:620 msgid ":const:`KQ_NOTE_FORK`" msgstr "" -#: ../../library/select.rst:620 msgid "the process has called *fork()*" msgstr "" -#: ../../library/select.rst:622 msgid ":const:`KQ_NOTE_EXEC`" msgstr "" -#: ../../library/select.rst:622 msgid "the process has executed a new process" msgstr "" -#: ../../library/select.rst:624 msgid ":const:`KQ_NOTE_PCTRLMASK`" msgstr "" -#: ../../library/select.rst:624 ../../library/select.rst:626 msgid "internal filter flag" msgstr "" -#: ../../library/select.rst:626 msgid ":const:`KQ_NOTE_PDATAMASK`" msgstr "" -#: ../../library/select.rst:628 msgid ":const:`KQ_NOTE_TRACK`" msgstr "" -#: ../../library/select.rst:628 msgid "follow a process across *fork()*" msgstr "" -#: ../../library/select.rst:630 msgid ":const:`KQ_NOTE_CHILD`" msgstr "" -#: ../../library/select.rst:630 msgid "returned on the child process for *NOTE_TRACK*" msgstr "" -#: ../../library/select.rst:633 msgid ":const:`KQ_NOTE_TRACKERR`" msgstr "" -#: ../../library/select.rst:633 msgid "unable to attach to a child" msgstr "" -#: ../../library/select.rst:636 msgid ":const:`KQ_FILTER_NETDEV` filter flags (not available on macOS):" msgstr "" -#: ../../library/select.rst:641 msgid ":const:`KQ_NOTE_LINKUP`" msgstr "" -#: ../../library/select.rst:641 msgid "link is up" msgstr "" -#: ../../library/select.rst:643 msgid ":const:`KQ_NOTE_LINKDOWN`" msgstr "" -#: ../../library/select.rst:643 msgid "link is down" msgstr "" -#: ../../library/select.rst:645 msgid ":const:`KQ_NOTE_LINKINV`" msgstr "" -#: ../../library/select.rst:645 msgid "link state is invalid" msgstr "" -#: ../../library/select.rst:651 msgid "Filter specific data." msgstr "" -#: ../../library/select.rst:656 msgid "User defined value." msgstr "" -#: ../../library/select.rst:141 msgid "socket() (in module socket)" msgstr "" -#: ../../library/select.rst:141 msgid "popen() (in module os)" msgstr "" -#: ../../library/select.rst:154 msgid "WinSock" msgstr "" diff --git a/library/selectors.po b/library/selectors.po index 71b575f..45e57c4 100644 --- a/library/selectors.po +++ b/library/selectors.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,44 +22,36 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/selectors.rst:2 msgid ":mod:`!selectors` --- High-level I/O multiplexing" msgstr "" -#: ../../library/selectors.rst:9 msgid "**Source code:** :source:`Lib/selectors.py`" msgstr "" -#: ../../library/selectors.rst:14 msgid "Introduction" msgstr "Bevezetés" -#: ../../library/selectors.rst:16 msgid "" "This module allows high-level and efficient I/O multiplexing, built upon " "the :mod:`select` module primitives. Users are encouraged to use this module " "instead, unless they want precise control over the OS-level primitives used." msgstr "" -#: ../../library/selectors.rst:20 msgid "" "It defines a :class:`BaseSelector` abstract base class, along with several " -"concrete implementations " -"(:class:`KqueueSelector`, :class:`EpollSelector`...), that can be used to " -"wait for I/O readiness notification on multiple file objects. In the " -"following, \"file object\" refers to any object with " -"a :meth:`~io.IOBase.fileno` method, or a raw file descriptor. " +"concrete implementations (:class:`KqueueSelector`, :class:" +"`EpollSelector`...), that can be used to wait for I/O readiness notification " +"on multiple file objects. In the following, \"file object\" refers to any " +"object with a :meth:`~io.IOBase.fileno` method, or a raw file descriptor. " "See :term:`file object`." msgstr "" -#: ../../library/selectors.rst:26 msgid "" ":class:`DefaultSelector` is an alias to the most efficient implementation " "available on the current platform: this should be the default choice for " "most users." msgstr "" -#: ../../library/selectors.rst:31 msgid "" "The type of file objects supported depends on the platform: on Windows, " "sockets are supported, but not pipes, whereas on Unix, both are supported " @@ -67,33 +59,26 @@ msgid "" "devices)." msgstr "" -#: ../../library/selectors.rst:38 msgid ":mod:`select`" msgstr "" -#: ../../library/selectors.rst:39 msgid "Low-level I/O multiplexing module." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/selectors.rst:44 msgid "Classes" msgstr "Osztályok" -#: ../../library/selectors.rst:46 msgid "Classes hierarchy::" msgstr "" -#: ../../library/selectors.rst:48 msgid "" "BaseSelector\n" "+-- SelectSelector\n" @@ -103,30 +88,24 @@ msgid "" "+-- KqueueSelector" msgstr "" -#: ../../library/selectors.rst:56 msgid "" "In the following, *events* is a bitwise mask indicating which I/O events " "should be waited for on a given file object. It can be a combination of the " "modules constants below:" msgstr "" -#: ../../library/selectors.rst:61 msgid "Constant" msgstr "" -#: ../../library/selectors.rst:61 msgid "Meaning" msgstr "Jelentés" -#: ../../library/selectors.rst:63 msgid "Available for read" msgstr "" -#: ../../library/selectors.rst:65 msgid "Available for write" msgstr "" -#: ../../library/selectors.rst:71 msgid "" "A :class:`SelectorKey` is a :class:`~collections.namedtuple` used to " "associate a file object to its underlying file descriptor, selected event " @@ -134,97 +113,80 @@ msgid "" "methods." msgstr "" -#: ../../library/selectors.rst:78 msgid "File object registered." msgstr "" -#: ../../library/selectors.rst:82 msgid "Underlying file descriptor." msgstr "" -#: ../../library/selectors.rst:86 msgid "Events that must be waited for on this file object." msgstr "" -#: ../../library/selectors.rst:90 msgid "" "Optional opaque data associated to this file object: for example, this could " "be used to store a per-client session ID." msgstr "" -#: ../../library/selectors.rst:96 msgid "" "A :class:`BaseSelector` is used to wait for I/O event readiness on multiple " "file objects. It supports file stream registration, unregistration, and a " "method to wait for I/O events on those streams, with an optional timeout. " -"It's an abstract base class, so cannot be instantiated. " -"Use :class:`DefaultSelector` instead, or one " -"of :class:`SelectSelector`, :class:`KqueueSelector` etc. if you want to " -"specifically use an implementation, and your platform supports " -"it. :class:`BaseSelector` and its concrete implementations support " -"the :term:`context manager` protocol." +"It's an abstract base class, so cannot be instantiated. Use :class:" +"`DefaultSelector` instead, or one of :class:`SelectSelector`, :class:" +"`KqueueSelector` etc. if you want to specifically use an implementation, and " +"your platform supports it. :class:`BaseSelector` and its concrete " +"implementations support the :term:`context manager` protocol." msgstr "" -#: ../../library/selectors.rst:109 msgid "Register a file object for selection, monitoring it for I/O events." msgstr "" -#: ../../library/selectors.rst:111 msgid "" "*fileobj* is the file object to monitor. It may either be an integer file " "descriptor or an object with a ``fileno()`` method. *events* is a bitwise " "mask of events to monitor. *data* is an opaque object." msgstr "" -#: ../../library/selectors.rst:116 msgid "" -"This returns a new :class:`SelectorKey` instance, or raises " -"a :exc:`ValueError` in case of invalid event mask or file descriptor, " -"or :exc:`KeyError` if the file object is already registered." +"This returns a new :class:`SelectorKey` instance, or raises a :exc:" +"`ValueError` in case of invalid event mask or file descriptor, or :exc:" +"`KeyError` if the file object is already registered." msgstr "" -#: ../../library/selectors.rst:123 msgid "" "Unregister a file object from selection, removing it from monitoring. A file " "object shall be unregistered prior to being closed." msgstr "" -#: ../../library/selectors.rst:126 msgid "*fileobj* must be a file object previously registered." msgstr "" -#: ../../library/selectors.rst:128 msgid "" -"This returns the associated :class:`SelectorKey` instance, or raises " -"a :exc:`KeyError` if *fileobj* is not registered. It will " -"raise :exc:`ValueError` if *fileobj* is invalid (e.g. it has no ``fileno()`` " -"method or its ``fileno()`` method has an invalid return value)." +"This returns the associated :class:`SelectorKey` instance, or raises a :exc:" +"`KeyError` if *fileobj* is not registered. It will raise :exc:`ValueError` " +"if *fileobj* is invalid (e.g. it has no ``fileno()`` method or its " +"``fileno()`` method has an invalid return value)." msgstr "" -#: ../../library/selectors.rst:135 msgid "Change a registered file object's monitored events or attached data." msgstr "" -#: ../../library/selectors.rst:137 msgid "" "This is equivalent to ``BaseSelector.unregister(fileobj)`` followed by " "``BaseSelector.register(fileobj, events, data)``, except that it can be " "implemented more efficiently." msgstr "" -#: ../../library/selectors.rst:141 msgid "" -"This returns a new :class:`SelectorKey` instance, or raises " -"a :exc:`ValueError` in case of invalid event mask or file descriptor, " -"or :exc:`KeyError` if the file object is not registered." +"This returns a new :class:`SelectorKey` instance, or raises a :exc:" +"`ValueError` in case of invalid event mask or file descriptor, or :exc:" +"`KeyError` if the file object is not registered." msgstr "" -#: ../../library/selectors.rst:148 msgid "" "Wait until some registered file objects become ready, or the timeout expires." msgstr "" -#: ../../library/selectors.rst:151 msgid "" "If ``timeout > 0``, this specifies the maximum wait time, in seconds. If " "``timeout <= 0``, the call won't block, and will report the currently ready " @@ -232,26 +194,22 @@ msgid "" "monitored file object becomes ready." msgstr "" -#: ../../library/selectors.rst:157 msgid "" "This returns a list of ``(key, events)`` tuples, one for each ready file " "object." msgstr "" -#: ../../library/selectors.rst:160 msgid "" "*key* is the :class:`SelectorKey` instance corresponding to a ready file " "object. *events* is a bitmask of events ready on this file object." msgstr "" -#: ../../library/selectors.rst:165 msgid "" "This method can return before any file object becomes ready or the timeout " "has elapsed if the current process receives a signal: in this case, an empty " "list will be returned." msgstr "" -#: ../../library/selectors.rst:169 msgid "" "The selector is now retried with a recomputed timeout when interrupted by a " "signal if the signal handler did not raise an exception (see :pep:`475` for " @@ -259,90 +217,72 @@ msgid "" "timeout." msgstr "" -#: ../../library/selectors.rst:177 msgid "Close the selector." msgstr "" -#: ../../library/selectors.rst:179 msgid "" "This must be called to make sure that any underlying resource is freed. The " "selector shall not be used once it has been closed." msgstr "" -#: ../../library/selectors.rst:184 msgid "Return the key associated with a registered file object." msgstr "" -#: ../../library/selectors.rst:186 msgid "" "This returns the :class:`SelectorKey` instance associated to this file " "object, or raises :exc:`KeyError` if the file object is not registered." msgstr "" -#: ../../library/selectors.rst:192 msgid "Return a mapping of file objects to selector keys." msgstr "" -#: ../../library/selectors.rst:194 msgid "" "This returns a :class:`~collections.abc.Mapping` instance mapping registered " "file objects to their associated :class:`SelectorKey` instance." msgstr "" -#: ../../library/selectors.rst:201 msgid "" "The default selector class, using the most efficient implementation " "available on the current platform. This should be the default choice for " "most users." msgstr "" -#: ../../library/selectors.rst:208 msgid ":func:`select.select`-based selector." msgstr "" -#: ../../library/selectors.rst:213 msgid ":func:`select.poll`-based selector." msgstr "" -#: ../../library/selectors.rst:218 msgid ":func:`select.epoll`-based selector." msgstr "" -#: ../../library/selectors.rst:222 msgid "" "This returns the file descriptor used by the underlying :func:`select.epoll` " "object." msgstr "" -#: ../../library/selectors.rst:227 msgid ":func:`select.devpoll`-based selector." msgstr "" -#: ../../library/selectors.rst:231 msgid "" -"This returns the file descriptor used by the " -"underlying :func:`select.devpoll` object." +"This returns the file descriptor used by the underlying :func:`select." +"devpoll` object." msgstr "" -#: ../../library/selectors.rst:238 msgid ":func:`select.kqueue`-based selector." msgstr "" -#: ../../library/selectors.rst:242 msgid "" -"This returns the file descriptor used by the " -"underlying :func:`select.kqueue` object." +"This returns the file descriptor used by the underlying :func:`select." +"kqueue` object." msgstr "" -#: ../../library/selectors.rst:247 msgid "Examples" msgstr "" -#: ../../library/selectors.rst:249 msgid "Here is a simple echo server implementation::" msgstr "" -#: ../../library/selectors.rst:251 msgid "" "import selectors\n" "import socket\n" diff --git a/library/shelve.po b/library/shelve.po index 4aeb8cf..d192347 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/shelve.rst:2 msgid ":mod:`!shelve` --- Python object persistence" msgstr "" -#: ../../library/shelve.rst:7 msgid "**Source code:** :source:`Lib/shelve.py`" msgstr "" -#: ../../library/shelve.rst:13 msgid "" "A \"shelf\" is a persistent, dictionary-like object. The difference with " "\"dbm\" databases is that the values (not the keys!) in a shelf can be " @@ -36,68 +33,59 @@ msgid "" "strings." msgstr "" -#: ../../library/shelve.rst:22 msgid "" "Open a persistent dictionary. The filename specified is the base filename " "for the underlying database. As a side-effect, an extension may be added to " "the filename and more than one file may be created. By default, the " "underlying database file is opened for reading and writing. The optional " -"*flag* parameter has the same interpretation as the *flag* parameter " -"of :func:`dbm.open`." +"*flag* parameter has the same interpretation as the *flag* parameter of :" +"func:`dbm.open`." msgstr "" -#: ../../library/shelve.rst:28 msgid "" "By default, pickles created with :const:`pickle.DEFAULT_PROTOCOL` are used " "to serialize values. The version of the pickle protocol can be specified " "with the *protocol* parameter." msgstr "" -#: ../../library/shelve.rst:32 msgid "" "Because of Python semantics, a shelf cannot know when a mutable persistent-" "dictionary entry is modified. By default modified objects are written " "*only* when assigned to the shelf (see :ref:`shelve-example`). If the " "optional *writeback* parameter is set to ``True``, all entries accessed are " -"also cached in memory, and written back on :meth:`~Shelf.sync` " -"and :meth:`~Shelf.close`; this can make it handier to mutate mutable entries " -"in the persistent dictionary, but, if many entries are accessed, it can " -"consume vast amounts of memory for the cache, and it can make the close " -"operation very slow since all accessed entries are written back (there is no " -"way to determine which accessed entries are mutable, nor which ones were " -"actually mutated)." +"also cached in memory, and written back on :meth:`~Shelf.sync` and :meth:" +"`~Shelf.close`; this can make it handier to mutate mutable entries in the " +"persistent dictionary, but, if many entries are accessed, it can consume " +"vast amounts of memory for the cache, and it can make the close operation " +"very slow since all accessed entries are written back (there is no way to " +"determine which accessed entries are mutable, nor which ones were actually " +"mutated)." msgstr "" -#: ../../library/shelve.rst:44 ../../library/shelve.rst:148 msgid "" ":const:`pickle.DEFAULT_PROTOCOL` is now used as the default pickle protocol." msgstr "" -#: ../../library/shelve.rst:48 msgid "Accepts :term:`path-like object` for filename." msgstr "" -#: ../../library/shelve.rst:53 msgid "" -"Do not rely on the shelf being closed automatically; always " -"call :meth:`~Shelf.close` explicitly when you don't need it any more, or " -"use :func:`shelve.open` as a context manager::" +"Do not rely on the shelf being closed automatically; always call :meth:" +"`~Shelf.close` explicitly when you don't need it any more, or use :func:" +"`shelve.open` as a context manager::" msgstr "" -#: ../../library/shelve.rst:57 msgid "" "with shelve.open('spam') as db:\n" " db['eggs'] = 'eggs'" msgstr "" -#: ../../library/shelve.rst:64 msgid "" "Because the :mod:`shelve` module is backed by :mod:`pickle`, it is insecure " "to load a shelf from an untrusted source. Like with pickle, loading a shelf " "can execute arbitrary code." msgstr "" -#: ../../library/shelve.rst:68 msgid "" "Shelf objects support most of methods and operations supported by " "dictionaries (except copying, constructors and operators ``|`` and ``|=``). " @@ -105,11 +93,9 @@ msgid "" "persistent storage." msgstr "" -#: ../../library/shelve.rst:72 msgid "Two additional methods are supported:" msgstr "" -#: ../../library/shelve.rst:76 msgid "" "Write back all entries in the cache if the shelf was opened with *writeback* " "set to :const:`True`. Also empty the cache and synchronize the persistent " @@ -117,24 +103,20 @@ msgid "" "shelf is closed with :meth:`close`." msgstr "" -#: ../../library/shelve.rst:83 msgid "" "Synchronize and close the persistent *dict* object. Operations on a closed " "shelf will fail with a :exc:`ValueError`." msgstr "" -#: ../../library/shelve.rst:89 msgid "" "`Persistent dictionary recipe `_ with widely supported " "storage formats and having the speed of native dictionaries." msgstr "" -#: ../../library/shelve.rst:95 msgid "Restrictions" msgstr "" -#: ../../library/shelve.rst:101 msgid "" "The choice of which database package will be used (such as :mod:`dbm.ndbm` " "or :mod:`dbm.gnu`) depends on which interface is available. Therefore it is " @@ -145,7 +127,6 @@ msgid "" "cause the database to refuse updates." msgstr "" -#: ../../library/shelve.rst:109 msgid "" "The :mod:`shelve` module does not support *concurrent* read/write access to " "shelved objects. (Multiple simultaneous read accesses are safe.) When a " @@ -155,19 +136,16 @@ msgid "" "implementation used." msgstr "" -#: ../../library/shelve.rst:116 msgid "" "On macOS :mod:`dbm.ndbm` can silently corrupt the database file on updates, " "which can cause hard crashes when trying to read from the database." msgstr "" -#: ../../library/shelve.rst:122 msgid "" "A subclass of :class:`collections.abc.MutableMapping` which stores pickled " "values in the *dict* object." msgstr "" -#: ../../library/shelve.rst:125 msgid "" "By default, pickles created with :const:`pickle.DEFAULT_PROTOCOL` are used " "to serialize values. The version of the pickle protocol can be specified " @@ -175,7 +153,6 @@ msgid "" "discussion of the pickle protocols." msgstr "" -#: ../../library/shelve.rst:130 msgid "" "If the *writeback* parameter is ``True``, the object will hold a cache of " "all entries accessed and write them back to the *dict* at sync and close " @@ -183,62 +160,53 @@ msgid "" "much more memory and make sync and close take a long time." msgstr "" -#: ../../library/shelve.rst:135 msgid "" "The *keyencoding* parameter is the encoding used to encode keys before they " "are used with the underlying dict." msgstr "" -#: ../../library/shelve.rst:138 msgid "" "A :class:`Shelf` object can also be used as a context manager, in which case " "it will be automatically closed when the :keyword:`with` block ends." msgstr "" -#: ../../library/shelve.rst:141 msgid "" "Added the *keyencoding* parameter; previously, keys were always encoded in " "UTF-8." msgstr "" -#: ../../library/shelve.rst:145 msgid "Added context manager support." msgstr "" -#: ../../library/shelve.rst:155 msgid "" -"A subclass of :class:`Shelf` which exposes :meth:`!first`, :meth:`!" -"next`, :meth:`!previous`, :meth:`!last` and :meth:`!set_location` methods. " -"These are available in the third-party :mod:`!bsddb` module from `pybsddb " -"`_ but not in other database " -"modules. The *dict* object passed to the constructor must support those " -"methods. This is generally accomplished by calling one of :func:`!" -"bsddb.hashopen`, :func:`!bsddb.btopen` or :func:`!bsddb.rnopen`. The " -"optional *protocol*, *writeback*, and *keyencoding* parameters have the same " -"interpretation as for the :class:`Shelf` class." -msgstr "" - -#: ../../library/shelve.rst:169 +"A subclass of :class:`Shelf` which exposes :meth:`!first`, :meth:`!next`, :" +"meth:`!previous`, :meth:`!last` and :meth:`!set_location` methods. These are " +"available in the third-party :mod:`!bsddb` module from `pybsddb `_ but not in other database modules. The " +"*dict* object passed to the constructor must support those methods. This is " +"generally accomplished by calling one of :func:`!bsddb.hashopen`, :func:`!" +"bsddb.btopen` or :func:`!bsddb.rnopen`. The optional *protocol*, " +"*writeback*, and *keyencoding* parameters have the same interpretation as " +"for the :class:`Shelf` class." +msgstr "" + msgid "" "A subclass of :class:`Shelf` which accepts a *filename* instead of a dict-" "like object. The underlying file will be opened using :func:`dbm.open`. By " "default, the file will be created and opened for both read and write. The " -"optional *flag* parameter has the same interpretation as for " -"the :func:`.open` function. The optional *protocol* and *writeback* " -"parameters have the same interpretation as for the :class:`Shelf` class." +"optional *flag* parameter has the same interpretation as for the :func:`." +"open` function. The optional *protocol* and *writeback* parameters have the " +"same interpretation as for the :class:`Shelf` class." msgstr "" -#: ../../library/shelve.rst:180 msgid "Example" msgstr "" -#: ../../library/shelve.rst:182 msgid "" "To summarize the interface (``key`` is a string, ``data`` is an arbitrary " "object)::" msgstr "" -#: ../../library/shelve.rst:185 msgid "" "import shelve\n" "\n" @@ -271,34 +239,26 @@ msgid "" "d.close() # close it" msgstr "" -#: ../../library/shelve.rst:218 msgid "Module :mod:`dbm`" msgstr "" -#: ../../library/shelve.rst:219 msgid "Generic interface to ``dbm``-style databases." msgstr "" -#: ../../library/shelve.rst:221 msgid "Module :mod:`pickle`" msgstr "" -#: ../../library/shelve.rst:222 msgid "Object serialization used by :mod:`shelve`." msgstr "" -#: ../../library/shelve.rst:9 ../../library/shelve.rst:97 msgid "module" msgstr "" -#: ../../library/shelve.rst:9 msgid "pickle" msgstr "" -#: ../../library/shelve.rst:97 msgid "dbm.ndbm" msgstr "" -#: ../../library/shelve.rst:97 msgid "dbm.gnu" msgstr "" diff --git a/library/shlex.po b/library/shlex.po index c6b2a00..e519ef6 100644 --- a/library/shlex.po +++ b/library/shlex.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/shlex.rst:2 msgid ":mod:`!shlex` --- Simple lexical analysis" msgstr "" -#: ../../library/shlex.rst:12 msgid "**Source code:** :source:`Lib/shlex.py`" msgstr "" -#: ../../library/shlex.rst:16 msgid "" "The :class:`~shlex.shlex` class makes it easy to write lexical analyzers for " "simple syntaxes resembling that of the Unix shell. This will often be " @@ -34,50 +31,42 @@ msgid "" "Python applications) or for parsing quoted strings." msgstr "" -#: ../../library/shlex.rst:21 msgid "The :mod:`shlex` module defines the following functions:" msgstr "" -#: ../../library/shlex.rst:26 msgid "" -"Split the string *s* using shell-like syntax. If *comments* " -"is :const:`False` (the default), the parsing of comments in the given string " -"will be disabled (setting the :attr:`~shlex.commenters` attribute of " -"the :class:`~shlex.shlex` instance to the empty string). This function " -"operates in POSIX mode by default, but uses non-POSIX mode if the *posix* " -"argument is false." +"Split the string *s* using shell-like syntax. If *comments* is :const:" +"`False` (the default), the parsing of comments in the given string will be " +"disabled (setting the :attr:`~shlex.commenters` attribute of the :class:" +"`~shlex.shlex` instance to the empty string). This function operates in " +"POSIX mode by default, but uses non-POSIX mode if the *posix* argument is " +"false." msgstr "" -#: ../../library/shlex.rst:33 msgid "" "Passing ``None`` for *s* argument now raises an exception, rather than " "reading :data:`sys.stdin`." msgstr "" -#: ../../library/shlex.rst:39 msgid "" "Concatenate the tokens of the list *split_command* and return a string. This " "function is the inverse of :func:`split`." msgstr "" -#: ../../library/shlex.rst:46 msgid "" "The returned value is shell-escaped to protect against injection " "vulnerabilities (see :func:`quote`)." msgstr "" -#: ../../library/shlex.rst:54 msgid "" "Return a shell-escaped version of the string *s*. The returned value is a " "string that can safely be used as one token in a shell command line, for " "cases where you cannot use a list." msgstr "" -#: ../../library/shlex.rst:62 msgid "The ``shlex`` module is **only designed for Unix shells**." msgstr "" -#: ../../library/shlex.rst:64 msgid "" "The :func:`quote` function is not guaranteed to be correct on non-POSIX " "compliant shells or shells from other operating systems such as Windows. " @@ -85,78 +74,65 @@ msgid "" "possibility of a command injection vulnerability." msgstr "" -#: ../../library/shlex.rst:69 msgid "" -"Consider using functions that pass command arguments with lists such " -"as :func:`subprocess.run` with ``shell=False``." +"Consider using functions that pass command arguments with lists such as :" +"func:`subprocess.run` with ``shell=False``." msgstr "" -#: ../../library/shlex.rst:72 msgid "This idiom would be unsafe:" msgstr "" -#: ../../library/shlex.rst:79 msgid ":func:`quote` lets you plug the security hole:" msgstr "" -#: ../../library/shlex.rst:89 msgid "The quoting is compatible with UNIX shells and with :func:`split`:" msgstr "" -#: ../../library/shlex.rst:101 msgid "The :mod:`shlex` module defines the following class:" msgstr "" -#: ../../library/shlex.rst:106 msgid "" "A :class:`~shlex.shlex` instance or subclass instance is a lexical analyzer " "object. The initialization argument, if present, specifies where to read " -"characters from. It must be a file-/stream-like object " -"with :meth:`~io.TextIOBase.read` and :meth:`~io.TextIOBase.readline` " -"methods, or a string. If no argument is given, input will be taken from " -"``sys.stdin``. The second optional argument is a filename string, which sets " -"the initial value of the :attr:`~shlex.infile` attribute. If the *instream* " -"argument is omitted or equal to ``sys.stdin``, this second argument defaults " -"to \"stdin\". The *posix* argument defines the operational mode: when " -"*posix* is not true (default), the :class:`~shlex.shlex` instance will " -"operate in compatibility mode. When operating in POSIX " -"mode, :class:`~shlex.shlex` will try to be as close as possible to the POSIX " -"shell parsing rules. The *punctuation_chars* argument provides a way to " -"make the behaviour even closer to how real shells parse. This can take a " -"number of values: the default value, ``False``, preserves the behaviour seen " -"under Python 3.5 and earlier. If set to ``True``, then parsing of the " -"characters ``();<>|&`` is changed: any run of these characters (considered " -"punctuation characters) is returned as a single token. If set to a non-" -"empty string of characters, those characters will be used as the punctuation " -"characters. Any characters in the :attr:`wordchars` attribute that appear " -"in *punctuation_chars* will be removed from :attr:`wordchars`. " -"See :ref:`improved-shell-compatibility` for more information. " +"characters from. It must be a file-/stream-like object with :meth:`~io." +"TextIOBase.read` and :meth:`~io.TextIOBase.readline` methods, or a string. " +"If no argument is given, input will be taken from ``sys.stdin``. The second " +"optional argument is a filename string, which sets the initial value of the :" +"attr:`~shlex.infile` attribute. If the *instream* argument is omitted or " +"equal to ``sys.stdin``, this second argument defaults to \"stdin\". The " +"*posix* argument defines the operational mode: when *posix* is not true " +"(default), the :class:`~shlex.shlex` instance will operate in compatibility " +"mode. When operating in POSIX mode, :class:`~shlex.shlex` will try to be as " +"close as possible to the POSIX shell parsing rules. The *punctuation_chars* " +"argument provides a way to make the behaviour even closer to how real shells " +"parse. This can take a number of values: the default value, ``False``, " +"preserves the behaviour seen under Python 3.5 and earlier. If set to " +"``True``, then parsing of the characters ``();<>|&`` is changed: any run of " +"these characters (considered punctuation characters) is returned as a single " +"token. If set to a non-empty string of characters, those characters will be " +"used as the punctuation characters. Any characters in the :attr:`wordchars` " +"attribute that appear in *punctuation_chars* will be removed from :attr:" +"`wordchars`. See :ref:`improved-shell-compatibility` for more information. " "*punctuation_chars* can be set only upon :class:`~shlex.shlex` instance " "creation and can't be modified later." msgstr "" -#: ../../library/shlex.rst:131 msgid "The *punctuation_chars* parameter was added." msgstr "" -#: ../../library/shlex.rst:136 msgid "Module :mod:`configparser`" msgstr "" -#: ../../library/shlex.rst:137 msgid "" "Parser for configuration files similar to the Windows :file:`.ini` files." msgstr "" -#: ../../library/shlex.rst:143 msgid "shlex Objects" msgstr "" -#: ../../library/shlex.rst:145 msgid "A :class:`~shlex.shlex` instance has the following methods:" msgstr "" -#: ../../library/shlex.rst:150 msgid "" "Return a token. If tokens have been stacked using :meth:`push_token`, pop a " "token off the stack. Otherwise, read one from the input stream. If reading " @@ -164,25 +140,21 @@ msgid "" "string (``''``) in non-POSIX mode, and ``None`` in POSIX mode)." msgstr "" -#: ../../library/shlex.rst:158 msgid "Push the argument onto the token stack." msgstr "" -#: ../../library/shlex.rst:163 msgid "" "Read a raw token. Ignore the pushback stack, and do not interpret source " "requests. (This is not ordinarily a useful entry point, and is documented " "here only for the sake of completeness.)" msgstr "" -#: ../../library/shlex.rst:170 msgid "" "When :class:`~shlex.shlex` detects a source request (see :attr:`source` " "below) this method is given the following token as argument, and expected to " "return a tuple consisting of a filename and an open file-like object." msgstr "" -#: ../../library/shlex.rst:174 msgid "" "Normally, this method first strips any quotes off the argument. If the " "result is an absolute pathname, or there was no previous source request in " @@ -193,7 +165,6 @@ msgid "" "preprocessor handles ``#include \"file.h\"``)." msgstr "" -#: ../../library/shlex.rst:182 msgid "" "The result of the manipulations is treated as a filename, and returned as " "the first component of the tuple, with :func:`open` called on it to yield " @@ -201,35 +172,29 @@ msgid "" "in instance initialization!)" msgstr "" -#: ../../library/shlex.rst:187 msgid "" "This hook is exposed so that you can use it to implement directory search " "paths, addition of file extensions, and other namespace hacks. There is no " -"corresponding 'close' hook, but a shlex instance will call " -"the :meth:`~io.IOBase.close` method of the sourced input stream when it " -"returns EOF." +"corresponding 'close' hook, but a shlex instance will call the :meth:`~io." +"IOBase.close` method of the sourced input stream when it returns EOF." msgstr "" -#: ../../library/shlex.rst:193 msgid "" "For more explicit control of source stacking, use the :meth:`push_source` " "and :meth:`pop_source` methods." msgstr "" -#: ../../library/shlex.rst:199 msgid "" "Push an input source stream onto the input stack. If the filename argument " "is specified it will later be available for use in error messages. This is " "the same method used internally by the :meth:`sourcehook` method." msgstr "" -#: ../../library/shlex.rst:206 msgid "" "Pop the last-pushed input source from the input stack. This is the same " "method used internally when the lexer reaches EOF on a stacked input stream." msgstr "" -#: ../../library/shlex.rst:212 msgid "" "This method generates an error message leader in the format of a Unix C " "compiler error label; the format is ``'\"%s\", line %d: '``, where the " @@ -238,53 +203,46 @@ msgid "" "override these)." msgstr "" -#: ../../library/shlex.rst:217 msgid "" "This convenience is provided to encourage :mod:`shlex` users to generate " "error messages in the standard, parseable format understood by Emacs and " "other Unix tools." msgstr "" -#: ../../library/shlex.rst:221 msgid "" "Instances of :class:`~shlex.shlex` subclasses have some public instance " "variables which either control lexical analysis or can be used for debugging:" msgstr "" -#: ../../library/shlex.rst:227 msgid "" "The string of characters that are recognized as comment beginners. All " "characters from the comment beginner to end of line are ignored. Includes " "just ``'#'`` by default." msgstr "" -#: ../../library/shlex.rst:234 msgid "" "The string of characters that will accumulate into multi-character tokens. " "By default, includes all ASCII alphanumerics and underscore. In POSIX mode, " -"the accented characters in the Latin-1 set are also included. " -"If :attr:`punctuation_chars` is not empty, the characters ``~-./*?=``, which " -"can appear in filename specifications and command line parameters, will also " -"be included in this attribute, and any characters which appear in " +"the accented characters in the Latin-1 set are also included. If :attr:" +"`punctuation_chars` is not empty, the characters ``~-./*?=``, which can " +"appear in filename specifications and command line parameters, will also be " +"included in this attribute, and any characters which appear in " "``punctuation_chars`` will be removed from ``wordchars`` if they are present " "there. If :attr:`whitespace_split` is set to ``True``, this will have no " "effect." msgstr "" -#: ../../library/shlex.rst:247 msgid "" "Characters that will be considered whitespace and skipped. Whitespace " "bounds tokens. By default, includes space, tab, linefeed and carriage-" "return." msgstr "" -#: ../../library/shlex.rst:253 msgid "" "Characters that will be considered as escape. This will be only used in " "POSIX mode, and includes just ``'\\'`` by default." msgstr "" -#: ../../library/shlex.rst:259 msgid "" "Characters that will be considered string quotes. The token accumulates " "until the same quote is encountered again (thus, different quote types " @@ -292,42 +250,36 @@ msgid "" "double quotes." msgstr "" -#: ../../library/shlex.rst:266 msgid "" "Characters in :attr:`quotes` that will interpret escape characters defined " "in :attr:`escape`. This is only used in POSIX mode, and includes just " "``'\"'`` by default." msgstr "" -#: ../../library/shlex.rst:273 msgid "" "If ``True``, tokens will only be split in whitespaces. This is useful, for " "example, for parsing command lines with :class:`~shlex.shlex`, getting " -"tokens in a similar way to shell arguments. When used in combination " -"with :attr:`punctuation_chars`, tokens will be split on whitespace in " -"addition to those characters." +"tokens in a similar way to shell arguments. When used in combination with :" +"attr:`punctuation_chars`, tokens will be split on whitespace in addition to " +"those characters." msgstr "" -#: ../../library/shlex.rst:279 msgid "" -"The :attr:`punctuation_chars` attribute was made compatible with " -"the :attr:`whitespace_split` attribute." +"The :attr:`punctuation_chars` attribute was made compatible with the :attr:" +"`whitespace_split` attribute." msgstr "" -#: ../../library/shlex.rst:286 msgid "" "The name of the current input file, as initially set at class instantiation " "time or stacked by later source requests. It may be useful to examine this " "when constructing error messages." msgstr "" -#: ../../library/shlex.rst:293 msgid "" "The input stream from which this :class:`~shlex.shlex` instance is reading " "characters." msgstr "" -#: ../../library/shlex.rst:299 msgid "" "This attribute is ``None`` by default. If you assign a string to it, that " "string will be recognized as a lexical-level inclusion request similar to " @@ -339,29 +291,24 @@ msgid "" "deep." msgstr "" -#: ../../library/shlex.rst:310 msgid "" "If this attribute is numeric and ``1`` or more, a :class:`~shlex.shlex` " "instance will print verbose progress output on its behavior. If you need to " "use this, you can read the module source code to learn the details." msgstr "" -#: ../../library/shlex.rst:317 msgid "Source line number (count of newlines seen so far plus one)." msgstr "" -#: ../../library/shlex.rst:322 msgid "" "The token buffer. It may be useful to examine this when catching exceptions." msgstr "" -#: ../../library/shlex.rst:327 msgid "" "Token used to determine end of file. This will be set to the empty string " "(``''``), in non-POSIX mode, and to ``None`` in POSIX mode." msgstr "" -#: ../../library/shlex.rst:333 msgid "" "A read-only property. Characters that will be considered punctuation. Runs " "of punctuation characters will be returned as a single token. However, note " @@ -370,39 +317,32 @@ msgid "" "by shells." msgstr "" -#: ../../library/shlex.rst:344 msgid "Parsing Rules" msgstr "" -#: ../../library/shlex.rst:346 msgid "" "When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey to " "the following rules." msgstr "" -#: ../../library/shlex.rst:349 msgid "" "Quote characters are not recognized within words (``Do\"Not\"Separate`` is " "parsed as the single word ``Do\"Not\"Separate``);" msgstr "" -#: ../../library/shlex.rst:352 msgid "Escape characters are not recognized;" msgstr "" -#: ../../library/shlex.rst:354 msgid "" "Enclosing characters in quotes preserve the literal value of all characters " "within the quotes;" msgstr "" -#: ../../library/shlex.rst:357 msgid "" "Closing quotes separate words (``\"Do\"Separate`` is parsed as ``\"Do\"`` " "and ``Separate``);" msgstr "" -#: ../../library/shlex.rst:360 msgid "" "If :attr:`~shlex.whitespace_split` is ``False``, any character not declared " "to be a word character, whitespace, or a quote will be returned as a single-" @@ -410,63 +350,51 @@ msgid "" "words in whitespaces;" msgstr "" -#: ../../library/shlex.rst:365 msgid "EOF is signaled with an empty string (``''``);" msgstr "" -#: ../../library/shlex.rst:367 msgid "It's not possible to parse empty strings, even if quoted." msgstr "" -#: ../../library/shlex.rst:369 msgid "" "When operating in POSIX mode, :class:`~shlex.shlex` will try to obey to the " "following parsing rules." msgstr "" -#: ../../library/shlex.rst:372 msgid "" "Quotes are stripped out, and do not separate words " "(``\"Do\"Not\"Separate\"`` is parsed as the single word ``DoNotSeparate``);" msgstr "" -#: ../../library/shlex.rst:375 msgid "" "Non-quoted escape characters (e.g. ``'\\'``) preserve the literal value of " "the next character that follows;" msgstr "" -#: ../../library/shlex.rst:378 msgid "" -"Enclosing characters in quotes which are not part " -"of :attr:`~shlex.escapedquotes` (e.g. ``\"'\"``) preserve the literal value " -"of all characters within the quotes;" +"Enclosing characters in quotes which are not part of :attr:`~shlex." +"escapedquotes` (e.g. ``\"'\"``) preserve the literal value of all characters " +"within the quotes;" msgstr "" -#: ../../library/shlex.rst:382 msgid "" -"Enclosing characters in quotes which are part " -"of :attr:`~shlex.escapedquotes` (e.g. ``'\"'``) preserves the literal value " -"of all characters within the quotes, with the exception of the characters " -"mentioned in :attr:`~shlex.escape`. The escape characters retain its " -"special meaning only when followed by the quote in use, or the escape " -"character itself. Otherwise the escape character will be considered a normal " -"character." +"Enclosing characters in quotes which are part of :attr:`~shlex." +"escapedquotes` (e.g. ``'\"'``) preserves the literal value of all characters " +"within the quotes, with the exception of the characters mentioned in :attr:" +"`~shlex.escape`. The escape characters retain its special meaning only when " +"followed by the quote in use, or the escape character itself. Otherwise the " +"escape character will be considered a normal character." msgstr "" -#: ../../library/shlex.rst:390 msgid "EOF is signaled with a :const:`None` value;" msgstr "" -#: ../../library/shlex.rst:392 msgid "Quoted empty strings (``''``) are allowed." msgstr "" -#: ../../library/shlex.rst:397 msgid "Improved Compatibility with Shells" msgstr "" -#: ../../library/shlex.rst:401 msgid "" "The :class:`shlex` class provides compatibility with the parsing performed " "by common Unix shells like ``bash``, ``dash``, and ``sh``. To take " @@ -481,7 +409,6 @@ msgid "" "following snippet:" msgstr "" -#: ../../library/shlex.rst:412 msgid "" ">>> import shlex\n" ">>> text = \"a && b; c && d || e; f >'abc'; (def \\\"ghi\\\")\"\n" @@ -496,20 +423,17 @@ msgid "" "'(', 'def', 'ghi', ')']" msgstr "" -#: ../../library/shlex.rst:427 msgid "" "Of course, tokens will be returned which are not valid for shells, and " "you'll need to implement your own error checks on the returned tokens." msgstr "" -#: ../../library/shlex.rst:430 msgid "" "Instead of passing ``True`` as the value for the punctuation_chars " "parameter, you can pass a string with specific characters, which will be " "used to determine which characters constitute punctuation. For example::" msgstr "" -#: ../../library/shlex.rst:434 msgid "" ">>> import shlex\n" ">>> s = shlex.shlex(\"a && b || c\", punctuation_chars=\"|\")\n" @@ -517,7 +441,6 @@ msgid "" "['a', '&', '&', 'b', '||', 'c']" msgstr "" -#: ../../library/shlex.rst:439 msgid "" "When ``punctuation_chars`` is specified, the :attr:`~shlex.wordchars` " "attribute is augmented with the characters ``~-./*?=``. That is because " @@ -525,7 +448,6 @@ msgid "" "line arguments (e.g. ``--color=auto``). Hence::" msgstr "" -#: ../../library/shlex.rst:444 msgid "" ">>> import shlex\n" ">>> s = shlex.shlex('~/a && b-c --color=auto || d *.py?',\n" @@ -534,17 +456,15 @@ msgid "" "['~/a', '&&', 'b-c', '--color=auto', '||', 'd', '*.py?']" msgstr "" -#: ../../library/shlex.rst:450 msgid "" "However, to match the shell as closely as possible, it is recommended to " -"always use ``posix`` and :attr:`~shlex.whitespace_split` when " -"using :attr:`~shlex.punctuation_chars`, which will " -"negate :attr:`~shlex.wordchars` entirely." +"always use ``posix`` and :attr:`~shlex.whitespace_split` when using :attr:" +"`~shlex.punctuation_chars`, which will negate :attr:`~shlex.wordchars` " +"entirely." msgstr "" -#: ../../library/shlex.rst:455 msgid "" "For best effect, ``punctuation_chars`` should be set in conjunction with " -"``posix=True``. (Note that ``posix=False`` is the default " -"for :class:`~shlex.shlex`.)" +"``posix=True``. (Note that ``posix=False`` is the default for :class:`~shlex." +"shlex`.)" msgstr "" diff --git a/library/shutil.po b/library/shutil.po index a51c29c..6f3eed4 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/shutil.rst:2 msgid ":mod:`!shutil` --- High-level file operations" msgstr "" -#: ../../library/shutil.rst:10 msgid "**Source code:** :source:`Lib/shutil.py`" msgstr "" -#: ../../library/shutil.rst:18 msgid "" "The :mod:`shutil` module offers a number of high-level operations on files " "and collections of files. In particular, functions are provided which " @@ -34,13 +31,11 @@ msgid "" "also the :mod:`os` module." msgstr "" -#: ../../library/shutil.rst:25 msgid "" -"Even the higher-level file copying functions " -"(:func:`shutil.copy`, :func:`shutil.copy2`) cannot copy all file metadata." +"Even the higher-level file copying functions (:func:`shutil.copy`, :func:" +"`shutil.copy2`) cannot copy all file metadata." msgstr "" -#: ../../library/shutil.rst:28 msgid "" "On POSIX platforms, this means that file owner and group are lost as well as " "ACLs. On Mac OS, the resource fork and other metadata are not used. This " @@ -49,11 +44,9 @@ msgid "" "copied." msgstr "" -#: ../../library/shutil.rst:38 msgid "Directory and files operations" msgstr "" -#: ../../library/shutil.rst:42 msgid "" "Copy the contents of the :term:`file-like object ` *fsrc* to " "the file-like object *fdst*. The integer *length*, if given, is the buffer " @@ -64,18 +57,16 @@ msgid "" "current file position to the end of the file will be copied." msgstr "" -#: ../../library/shutil.rst:50 msgid "" ":func:`copyfileobj` will *not* guarantee that the destination stream has " "been flushed on completion of the copy. If you want to read from the " "destination at the completion of the copy operation (for example, reading " "the contents of a temporary file that has been copied from a HTTP stream), " -"you must ensure that you have called :func:`~io.IOBase.flush` " -"or :func:`~io.IOBase.close` on the file-like object before attempting to " -"read the destination file." +"you must ensure that you have called :func:`~io.IOBase.flush` or :func:`~io." +"IOBase.close` on the file-like object before attempting to read the " +"destination file." msgstr "" -#: ../../library/shutil.rst:60 msgid "" "Copy the contents (no metadata) of the file named *src* to a file named " "*dst* and return *dst* in the most efficient way possible. *src* and *dst* " @@ -83,14 +74,12 @@ msgid "" "strings." msgstr "" -#: ../../library/shutil.rst:64 msgid "" "*dst* must be the complete target file name; look at :func:`~shutil.copy` " "for a copy that accepts a target directory path. If *src* and *dst* specify " "the same file, :exc:`SameFileError` is raised." msgstr "" -#: ../../library/shutil.rst:68 msgid "" "The destination location must be writable; otherwise, an :exc:`OSError` " "exception will be raised. If *dst* already exists, it will be replaced. " @@ -98,70 +87,62 @@ msgid "" "with this function." msgstr "" -#: ../../library/shutil.rst:73 msgid "" "If *follow_symlinks* is false and *src* is a symbolic link, a new symbolic " "link will be created instead of copying the file *src* points to." msgstr "" -#: ../../library/shutil.rst:77 ../../library/shutil.rst:184 -#: ../../library/shutil.rst:215 msgid "" "Raises an :ref:`auditing event ` ``shutil.copyfile`` with " "arguments ``src``, ``dst``." msgstr "" -#: ../../library/shutil.rst:79 msgid "" ":exc:`IOError` used to be raised instead of :exc:`OSError`. Added " "*follow_symlinks* argument. Now returns *dst*." msgstr "" -#: ../../library/shutil.rst:84 msgid "" "Raise :exc:`SameFileError` instead of :exc:`Error`. Since the former is a " "subclass of the latter, this change is backward compatible." msgstr "" -#: ../../library/shutil.rst:88 ../../library/shutil.rst:192 -#: ../../library/shutil.rst:224 ../../library/shutil.rst:294 -#: ../../library/shutil.rst:407 msgid "" "Platform-specific fast-copy syscalls may be used internally in order to copy " "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" "copy-operations` section." msgstr "" -#: ../../library/shutil.rst:95 +msgid "" +"This exception is raised when :func:`copyfile` or :func:`copytree` attempt " +"to copy a named pipe." +msgstr "" + msgid "" "This exception is raised if source and destination in :func:`copyfile` are " "the same file." msgstr "" -#: ../../library/shutil.rst:103 msgid "" "Copy the permission bits from *src* to *dst*. The file contents, owner, and " "group are unaffected. *src* and *dst* are :term:`path-like objects ` or path names given as strings. If *follow_symlinks* is false, " "and both *src* and *dst* are symbolic links, :func:`copymode` will attempt " "to modify the mode of *dst* itself (rather than the file it points to). " -"This functionality is not available on every platform; please " -"see :func:`copystat` for more information. If :func:`copymode` cannot " -"modify symbolic links on the local platform, and it is asked to do so, it " -"will do nothing and return." +"This functionality is not available on every platform; please see :func:" +"`copystat` for more information. If :func:`copymode` cannot modify symbolic " +"links on the local platform, and it is asked to do so, it will do nothing " +"and return." msgstr "" -#: ../../library/shutil.rst:113 ../../library/shutil.rst:186 msgid "" "Raises an :ref:`auditing event ` ``shutil.copymode`` with " "arguments ``src``, ``dst``." msgstr "" -#: ../../library/shutil.rst:115 msgid "Added *follow_symlinks* argument." msgstr "" -#: ../../library/shutil.rst:120 msgid "" "Copy the permission bits, last access time, last modification time, and " "flags from *src* to *dst*. On Linux, :func:`copystat` also copies the " @@ -170,7 +151,6 @@ msgid "" "object>` or path names given as strings." msgstr "" -#: ../../library/shutil.rst:126 msgid "" "If *follow_symlinks* is false, and *src* and *dst* both refer to symbolic " "links, :func:`copystat` will operate on the symbolic links themselves rather " @@ -178,54 +158,45 @@ msgid "" "*src* symbolic link, and writing the information to the *dst* symbolic link." msgstr "" -#: ../../library/shutil.rst:135 msgid "" "Not all platforms provide the ability to examine and modify symbolic links. " "Python itself can tell you what functionality is locally available." msgstr "" -#: ../../library/shutil.rst:139 msgid "" "If ``os.chmod in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " "can modify the permission bits of a symbolic link." msgstr "" -#: ../../library/shutil.rst:143 msgid "" "If ``os.utime in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " "can modify the last access and modification times of a symbolic link." msgstr "" -#: ../../library/shutil.rst:147 msgid "" -"If ``os.chflags in os.supports_follow_symlinks`` is " -"``True``, :func:`copystat` can modify the flags of a symbolic link. " -"(``os.chflags`` is not available on all platforms.)" +"If ``os.chflags in os.supports_follow_symlinks`` is ``True``, :func:" +"`copystat` can modify the flags of a symbolic link. (``os.chflags`` is not " +"available on all platforms.)" msgstr "" -#: ../../library/shutil.rst:152 msgid "" "On platforms where some or all of this functionality is unavailable, when " "asked to modify a symbolic link, :func:`copystat` will copy everything it " "can. :func:`copystat` never returns failure." msgstr "" -#: ../../library/shutil.rst:157 msgid "Please see :data:`os.supports_follow_symlinks` for more information." msgstr "" -#: ../../library/shutil.rst:160 ../../library/shutil.rst:217 msgid "" "Raises an :ref:`auditing event ` ``shutil.copystat`` with " "arguments ``src``, ``dst``." msgstr "" -#: ../../library/shutil.rst:162 msgid "" "Added *follow_symlinks* argument and support for Linux extended attributes." msgstr "" -#: ../../library/shutil.rst:167 msgid "" "Copies the file *src* to the file or directory *dst*. *src* and *dst* " "should be :term:`path-like objects ` or strings. If *dst* " @@ -234,14 +205,12 @@ msgid "" "be replaced. Returns the path to the newly created file." msgstr "" -#: ../../library/shutil.rst:173 msgid "" "If *follow_symlinks* is false, and *src* is a symbolic link, *dst* will be " "created as a symbolic link. If *follow_symlinks* is true and *src* is a " "symbolic link, *dst* will be a copy of the file *src* refers to." msgstr "" -#: ../../library/shutil.rst:178 msgid "" ":func:`~shutil.copy` copies the file data and the file's permission mode " "(see :func:`os.chmod`). Other metadata, like the file's creation and " @@ -249,63 +218,53 @@ msgid "" "original, use :func:`~shutil.copy2` instead." msgstr "" -#: ../../library/shutil.rst:188 msgid "" "Added *follow_symlinks* argument. Now returns path to the newly created file." msgstr "" -#: ../../library/shutil.rst:199 msgid "" "Identical to :func:`~shutil.copy` except that :func:`copy2` also attempts to " "preserve file metadata." msgstr "" -#: ../../library/shutil.rst:202 msgid "" "When *follow_symlinks* is false, and *src* is a symbolic link, :func:`copy2` " "attempts to copy all metadata from the *src* symbolic link to the newly " "created *dst* symbolic link. However, this functionality is not available on " "all platforms. On platforms where some or all of this functionality is " -"unavailable, :func:`copy2` will preserve all the metadata it " -"can; :func:`copy2` never raises an exception because it cannot preserve file " -"metadata." +"unavailable, :func:`copy2` will preserve all the metadata it can; :func:" +"`copy2` never raises an exception because it cannot preserve file metadata." msgstr "" -#: ../../library/shutil.rst:211 msgid "" -":func:`copy2` uses :func:`copystat` to copy the file metadata. Please " -"see :func:`copystat` for more information about platform support for " -"modifying symbolic link metadata." +":func:`copy2` uses :func:`copystat` to copy the file metadata. Please see :" +"func:`copystat` for more information about platform support for modifying " +"symbolic link metadata." msgstr "" -#: ../../library/shutil.rst:219 msgid "" "Added *follow_symlinks* argument, try to copy extended file system " "attributes too (currently Linux only). Now returns path to the newly created " "file." msgstr "" -#: ../../library/shutil.rst:231 msgid "" -"This factory function creates a function that can be used as a callable " -"for :func:`copytree`\\'s *ignore* argument, ignoring files and directories " -"that match one of the glob-style *patterns* provided. See the example below." +"This factory function creates a function that can be used as a callable for :" +"func:`copytree`\\'s *ignore* argument, ignoring files and directories that " +"match one of the glob-style *patterns* provided. See the example below." msgstr "" -#: ../../library/shutil.rst:240 msgid "" "Recursively copy an entire directory tree rooted at *src* to a directory " "named *dst* and return the destination directory. All intermediate " "directories needed to contain *dst* will also be created by default." msgstr "" -#: ../../library/shutil.rst:244 msgid "" "Permissions and times of directories are copied with :func:`copystat`, " "individual files are copied using :func:`~shutil.copy2`." msgstr "" -#: ../../library/shutil.rst:247 msgid "" "If *symlinks* is true, symbolic links in the source tree are represented as " "symbolic links in the new tree and the metadata of the original links will " @@ -313,17 +272,15 @@ msgid "" "and metadata of the linked files are copied to the new tree." msgstr "" -#: ../../library/shutil.rst:252 msgid "" "When *symlinks* is false, if the file pointed to by the symlink doesn't " -"exist, an exception will be added in the list of errors raised in " -"an :exc:`Error` exception at the end of the copy process. You can set the " -"optional *ignore_dangling_symlinks* flag to true if you want to silence this " +"exist, an exception will be added in the list of errors raised in an :exc:" +"`Error` exception at the end of the copy process. You can set the optional " +"*ignore_dangling_symlinks* flag to true if you want to silence this " "exception. Notice that this option has no effect on platforms that don't " "support :func:`os.symlink`." msgstr "" -#: ../../library/shutil.rst:259 msgid "" "If *ignore* is given, it must be a callable that will receive as its " "arguments the directory being visited by :func:`copytree`, and a list of its " @@ -336,12 +293,10 @@ msgid "" "ignores names based on glob-style patterns." msgstr "" -#: ../../library/shutil.rst:269 msgid "" "If exception(s) occur, an :exc:`Error` is raised with a list of reasons." msgstr "" -#: ../../library/shutil.rst:271 msgid "" "If *copy_function* is given, it must be a callable that will be used to copy " "each file. It will be called with the source path and the destination path " @@ -349,37 +304,31 @@ msgid "" "that supports the same signature (like :func:`~shutil.copy`) can be used." msgstr "" -#: ../../library/shutil.rst:276 msgid "" -"If *dirs_exist_ok* is false (the default) and *dst* already exists, " -"a :exc:`FileExistsError` is raised. If *dirs_exist_ok* is true, the copying " +"If *dirs_exist_ok* is false (the default) and *dst* already exists, a :exc:" +"`FileExistsError` is raised. If *dirs_exist_ok* is true, the copying " "operation will continue if it encounters existing directories, and files " "within the *dst* tree will be overwritten by corresponding files from the " "*src* tree." msgstr "" -#: ../../library/shutil.rst:282 msgid "" "Raises an :ref:`auditing event ` ``shutil.copytree`` with " "arguments ``src``, ``dst``." msgstr "" -#: ../../library/shutil.rst:284 msgid "" "Added the *copy_function* argument to be able to provide a custom copy " "function. Added the *ignore_dangling_symlinks* argument to silence dangling " "symlinks errors when *symlinks* is false." msgstr "" -#: ../../library/shutil.rst:290 msgid "Copy metadata when *symlinks* is false. Now returns *dst*." msgstr "" -#: ../../library/shutil.rst:299 msgid "Added the *dirs_exist_ok* parameter." msgstr "" -#: ../../library/shutil.rst:306 msgid "" "Delete an entire directory tree; *path* must point to a directory (but not a " "symbolic link to a directory). If *ignore_errors* is true, errors resulting " @@ -388,13 +337,11 @@ msgid "" "are omitted, exceptions are propagated to the caller." msgstr "" -#: ../../library/shutil.rst:312 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." msgstr "" -#: ../../library/shutil.rst:317 msgid "" "On platforms that support the necessary fd-based functions a symlink attack " "resistant version of :func:`rmtree` is used by default. On other platforms, " @@ -405,13 +352,11 @@ msgid "" "attribute to determine which case applies." msgstr "" -#: ../../library/shutil.rst:325 msgid "" "If *onexc* is provided, it must be a callable that accepts three parameters: " "*function*, *path*, and *excinfo*." msgstr "" -#: ../../library/shutil.rst:328 msgid "" "The first parameter, *function*, is the function which raised the exception; " "it depends on the platform and implementation. The second parameter, " @@ -420,78 +365,65 @@ msgid "" "will not be caught." msgstr "" -#: ../../library/shutil.rst:334 msgid "" "The deprecated *onerror* is similar to *onexc*, except that the third " "parameter it receives is the tuple returned from :func:`sys.exc_info`." msgstr "" -#: ../../library/shutil.rst:338 msgid "" ":ref:`shutil-rmtree-example` for an example of handling the removal of a " "directory tree that contains read-only files." msgstr "" -#: ../../library/shutil.rst:341 msgid "" "Raises an :ref:`auditing event ` ``shutil.rmtree`` with arguments " "``path``, ``dir_fd``." msgstr "" -#: ../../library/shutil.rst:343 msgid "" "Added a symlink attack resistant version that is used automatically if " "platform supports fd-based functions." msgstr "" -#: ../../library/shutil.rst:347 msgid "" "On Windows, will no longer delete the contents of a directory junction " "before removing the junction." msgstr "" -#: ../../library/shutil.rst:351 msgid "Added the *dir_fd* parameter." msgstr "" -#: ../../library/shutil.rst:354 msgid "Added the *onexc* parameter, deprecated *onerror*." msgstr "" -#: ../../library/shutil.rst:357 msgid "" ":func:`!rmtree` now ignores :exc:`FileNotFoundError` exceptions for all but " -"the top-level path. Exceptions other than :exc:`OSError` and subclasses " -"of :exc:`!OSError` are now always propagated to the caller." +"the top-level path. Exceptions other than :exc:`OSError` and subclasses of :" +"exc:`!OSError` are now always propagated to the caller." msgstr "" -#: ../../library/shutil.rst:365 msgid "" "Indicates whether the current platform and implementation provides a symlink " "attack resistant version of :func:`rmtree`. Currently this is only true for " "platforms supporting fd-based directory access functions." msgstr "" -#: ../../library/shutil.rst:374 msgid "" "Recursively move a file or directory (*src*) to another location and return " "the destination." msgstr "" -#: ../../library/shutil.rst:377 msgid "" "If *dst* is an existing directory or a symlink to a directory, then *src* is " "moved inside that directory. The destination path in that directory must not " "already exist." msgstr "" -#: ../../library/shutil.rst:381 msgid "" "If *dst* already exists but is not a directory, it may be overwritten " "depending on :func:`os.rename` semantics." msgstr "" -#: ../../library/shutil.rst:384 msgid "" "If the destination is on the current filesystem, then :func:`os.rename` is " "used. Otherwise, *src* is copied to the destination using *copy_function* " @@ -499,111 +431,92 @@ msgid "" "of *src* will be created as the destination and *src* will be removed." msgstr "" -#: ../../library/shutil.rst:389 msgid "" "If *copy_function* is given, it must be a callable that takes two arguments, " "*src* and the destination, and will be used to copy *src* to the destination " -"if :func:`os.rename` cannot be used. If the source is a " -"directory, :func:`copytree` is called, passing it the *copy_function*. The " -"default *copy_function* is :func:`copy2`. Using :func:`~shutil.copy` as the " +"if :func:`os.rename` cannot be used. If the source is a directory, :func:" +"`copytree` is called, passing it the *copy_function*. The default " +"*copy_function* is :func:`copy2`. Using :func:`~shutil.copy` as the " "*copy_function* allows the move to succeed when it is not possible to also " "copy the metadata, at the expense of not copying any of the metadata." msgstr "" -#: ../../library/shutil.rst:397 msgid "" "Raises an :ref:`auditing event ` ``shutil.move`` with arguments " "``src``, ``dst``." msgstr "" -#: ../../library/shutil.rst:399 msgid "" "Added explicit symlink handling for foreign filesystems, thus adapting it to " "the behavior of GNU's :program:`mv`. Now returns *dst*." msgstr "" -#: ../../library/shutil.rst:404 msgid "Added the *copy_function* keyword argument." msgstr "" -#: ../../library/shutil.rst:412 msgid "Accepts a :term:`path-like object` for both *src* and *dst*." msgstr "" -#: ../../library/shutil.rst:417 msgid "" "Return disk usage statistics about the given path as a :term:`named tuple` " "with the attributes *total*, *used* and *free*, which are the amount of " "total, used and free space, in bytes. *path* may be a file or a directory." msgstr "" -#: ../../library/shutil.rst:424 msgid "" "On Unix filesystems, *path* must point to a path within a **mounted** " "filesystem partition. On those platforms, CPython doesn't attempt to " "retrieve disk usage information from non-mounted filesystems." msgstr "" -#: ../../library/shutil.rst:430 msgid "On Windows, *path* can now be a file or directory." msgstr "" -#: ../../library/shutil.rst:433 ../../library/shutil.rst:447 msgid "Availability" msgstr "" -#: ../../library/shutil.rst:438 msgid "Change owner *user* and/or *group* of the given *path*." msgstr "" -#: ../../library/shutil.rst:440 msgid "" "*user* can be a system user name or a uid; the same applies to *group*. At " "least one argument is required." msgstr "" -#: ../../library/shutil.rst:443 msgid "See also :func:`os.chown`, the underlying function." msgstr "" -#: ../../library/shutil.rst:445 msgid "" "Raises an :ref:`auditing event ` ``shutil.chown`` with arguments " "``path``, ``user``, ``group``." msgstr "" -#: ../../library/shutil.rst:451 msgid "Added *dir_fd* and *follow_symlinks* parameters." msgstr "" -#: ../../library/shutil.rst:457 msgid "" "Return the path to an executable which would be run if the given *cmd* was " "called. If no *cmd* would be called, return ``None``." msgstr "" -#: ../../library/shutil.rst:460 msgid "" "*mode* is a permission mask passed to :func:`os.access`, by default " "determining if the file exists and is executable." msgstr "" -#: ../../library/shutil.rst:463 msgid "" "*path* is a \"``PATH`` string\" specifying the directories to look in, " -"delimited by :data:`os.pathsep`. When no *path* is specified, " -"the :envvar:`PATH` environment variable is read from :data:`os.environ`, " -"falling back to :data:`os.defpath` if it is not set." +"delimited by :data:`os.pathsep`. When no *path* is specified, the :envvar:" +"`PATH` environment variable is read from :data:`os.environ`, falling back " +"to :data:`os.defpath` if it is not set." msgstr "" -#: ../../library/shutil.rst:468 msgid "" "If *cmd* contains a directory component, :func:`!which` only checks the " "specified path directly and does not search the directories listed in *path* " "or in the system's :envvar:`PATH` environment variable." msgstr "" -#: ../../library/shutil.rst:472 msgid "" "On Windows, the current directory is prepended to the *path* if *mode* does " "not include ``os.X_OK``. When the *mode* does include ``os.X_OK``, the " @@ -613,7 +526,6 @@ msgid "" "environment variable ``NoDefaultCurrentDirectoryInExePath``." msgstr "" -#: ../../library/shutil.rst:479 msgid "" "Also on Windows, the :envvar:`PATHEXT` environment variable is used to " "resolve commands that may not already include an extension. For example, if " @@ -622,31 +534,26 @@ msgid "" "directories. For example, on Windows::" msgstr "" -#: ../../library/shutil.rst:485 msgid "" ">>> shutil.which(\"python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: ../../library/shutil.rst:488 msgid "" "This is also applied when *cmd* is a path that contains a directory " "component::" msgstr "" -#: ../../library/shutil.rst:491 msgid "" ">>> shutil.which(\"C:\\\\Python33\\\\python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: ../../library/shutil.rst:496 msgid "" "The :class:`bytes` type is now accepted. If *cmd* type is :class:`bytes`, " "the result type is also :class:`bytes`." msgstr "" -#: ../../library/shutil.rst:500 msgid "" "On Windows, the current directory is no longer prepended to the search path " "if *mode* includes ``os.X_OK`` and WinAPI " @@ -657,89 +564,73 @@ msgid "" "now be found." msgstr "" -#: ../../library/shutil.rst:511 msgid "" "This exception collects exceptions that are raised during a multi-file " "operation. For :func:`copytree`, the exception argument is a list of 3-" "tuples (*srcname*, *dstname*, *exception*)." msgstr "" -#: ../../library/shutil.rst:518 msgid "Platform-dependent efficient copy operations" msgstr "" -#: ../../library/shutil.rst:520 msgid "" -"Starting from Python 3.8, all functions involving a file copy " -"(:func:`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, " -"and :func:`move`) may use platform-specific \"fast-copy\" syscalls in order " -"to copy the file more efficiently (see :issue:`33671`). \"fast-copy\" means " -"that the copying operation occurs within the kernel, avoiding the use of " -"userspace buffers in Python as in \"``outfd.write(infd.read())``\"." +"Starting from Python 3.8, all functions involving a file copy (:func:" +"`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, and :func:" +"`move`) may use platform-specific \"fast-copy\" syscalls in order to copy " +"the file more efficiently (see :issue:`33671`). \"fast-copy\" means that the " +"copying operation occurs within the kernel, avoiding the use of userspace " +"buffers in Python as in \"``outfd.write(infd.read())``\"." msgstr "" -#: ../../library/shutil.rst:528 msgid "On macOS `fcopyfile`_ is used to copy the file content (not metadata)." msgstr "" -#: ../../library/shutil.rst:530 msgid "On Linux :func:`os.copy_file_range` or :func:`os.sendfile` is used." msgstr "" -#: ../../library/shutil.rst:532 msgid "On Solaris :func:`os.sendfile` is used." msgstr "" -#: ../../library/shutil.rst:534 msgid "" "On Windows :func:`shutil.copyfile` uses a bigger default buffer size (1 MiB " -"instead of 64 KiB) and a :func:`memoryview`-based variant " -"of :func:`shutil.copyfileobj` is used." +"instead of 64 KiB) and a :func:`memoryview`-based variant of :func:`shutil." +"copyfileobj` is used." msgstr "" -#: ../../library/shutil.rst:538 msgid "" "If the fast-copy operation fails and no data was written in the destination " -"file then shutil will silently fallback on using less " -"efficient :func:`copyfileobj` function internally." +"file then shutil will silently fallback on using less efficient :func:" +"`copyfileobj` function internally." msgstr "" -#: ../../library/shutil.rst:544 msgid "Solaris now uses :func:`os.sendfile`." msgstr "" -#: ../../library/shutil.rst:547 msgid "" -"Copy-on-write or server-side copy may be used internally " -"via :func:`os.copy_file_range` on supported Linux filesystems." +"Copy-on-write or server-side copy may be used internally via :func:`os." +"copy_file_range` on supported Linux filesystems." msgstr "" -#: ../../library/shutil.rst:554 msgid "copytree example" msgstr "" -#: ../../library/shutil.rst:556 msgid "An example that uses the :func:`ignore_patterns` helper::" msgstr "" -#: ../../library/shutil.rst:558 msgid "" "from shutil import copytree, ignore_patterns\n" "\n" "copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))" msgstr "" -#: ../../library/shutil.rst:562 msgid "" "This will copy everything except ``.pyc`` files and files or directories " "whose name starts with ``tmp``." msgstr "" -#: ../../library/shutil.rst:565 msgid "Another example that uses the *ignore* argument to add a logging call::" msgstr "" -#: ../../library/shutil.rst:567 msgid "" "from shutil import copytree\n" "import logging\n" @@ -751,11 +642,9 @@ msgid "" "copytree(source, destination, ignore=_logpath)" msgstr "" -#: ../../library/shutil.rst:580 msgid "rmtree example" msgstr "" -#: ../../library/shutil.rst:582 msgid "" "This example shows how to remove a directory tree on Windows where some of " "the files have their read-only bit set. It uses the onexc callback to clear " @@ -763,7 +652,6 @@ msgid "" "propagate. ::" msgstr "" -#: ../../library/shutil.rst:587 msgid "" "import os, stat\n" "import shutil\n" @@ -776,47 +664,39 @@ msgid "" "shutil.rmtree(directory, onexc=remove_readonly)" msgstr "" -#: ../../library/shutil.rst:600 msgid "Archiving operations" msgstr "" -#: ../../library/shutil.rst:604 msgid "Added support for the *xztar* format." msgstr "" -#: ../../library/shutil.rst:608 msgid "" "High-level utilities to create and read compressed and archived files are " "also provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules." msgstr "" -#: ../../library/shutil.rst:613 msgid "Create an archive file (such as zip or tar) and return its name." msgstr "" -#: ../../library/shutil.rst:615 msgid "" "*base_name* is the name of the file to create, including the path, minus any " "format-specific extension." msgstr "" -#: ../../library/shutil.rst:618 msgid "" "*format* is the archive format: one of \"zip\" (if the :mod:`zlib` module is " "available), \"tar\", \"gztar\" (if the :mod:`zlib` module is available), " -"\"bztar\" (if the :mod:`bz2` module is available), \"xztar\" (if " -"the :mod:`lzma` module is available), or \"zstdtar\" (if " -"the :mod:`compression.zstd` module is available)." +"\"bztar\" (if the :mod:`bz2` module is available), \"xztar\" (if the :mod:" +"`lzma` module is available), or \"zstdtar\" (if the :mod:`compression.zstd` " +"module is available)." msgstr "" -#: ../../library/shutil.rst:624 msgid "" "*root_dir* is a directory that will be the root directory of the archive, " "all paths in the archive will be relative to it; for example, we typically " "chdir into *root_dir* before creating the archive." msgstr "" -#: ../../library/shutil.rst:628 msgid "" "*base_dir* is the directory where we start archiving from; i.e. *base_dir* " "will be the common prefix of all files and directories in the archive. " @@ -824,106 +704,86 @@ msgid "" "example-with-basedir` for how to use *base_dir* and *root_dir* together." msgstr "" -#: ../../library/shutil.rst:634 msgid "*root_dir* and *base_dir* both default to the current directory." msgstr "" -#: ../../library/shutil.rst:636 msgid "" "If *dry_run* is true, no archive is created, but the operations that would " "be executed are logged to *logger*." msgstr "" -#: ../../library/shutil.rst:639 msgid "" "*owner* and *group* are used when creating a tar archive. By default, uses " "the current owner and group." msgstr "" -#: ../../library/shutil.rst:642 msgid "" "*logger* must be an object compatible with :pep:`282`, usually an instance " "of :class:`logging.Logger`." msgstr "" -#: ../../library/shutil.rst:645 msgid "The *verbose* argument is unused and deprecated." msgstr "" -#: ../../library/shutil.rst:647 msgid "" "Raises an :ref:`auditing event ` ``shutil.make_archive`` with " "arguments ``base_name``, ``format``, ``root_dir``, ``base_dir``." msgstr "" -#: ../../library/shutil.rst:651 msgid "" -"This function is not thread-safe when custom archivers registered " -"with :func:`register_archive_format` do not support the *root_dir* " -"argument. In this case it temporarily changes the current working directory " -"of the process to *root_dir* to perform archiving." +"This function is not thread-safe when custom archivers registered with :func:" +"`register_archive_format` do not support the *root_dir* argument. In this " +"case it temporarily changes the current working directory of the process to " +"*root_dir* to perform archiving." msgstr "" -#: ../../library/shutil.rst:657 msgid "" "The modern pax (POSIX.1-2001) format is now used instead of the legacy GNU " "format for archives created with ``format=\"tar\"``." msgstr "" -#: ../../library/shutil.rst:661 msgid "" "This function is now made thread-safe during creation of standard ``.zip`` " "and tar archives." msgstr "" -#: ../../library/shutil.rst:667 msgid "" "Return a list of supported formats for archiving. Each element of the " "returned sequence is a tuple ``(name, description)``." msgstr "" -#: ../../library/shutil.rst:670 ../../library/shutil.rst:787 msgid "By default :mod:`shutil` provides these formats:" msgstr "" -#: ../../library/shutil.rst:672 msgid "*zip*: ZIP file (if the :mod:`zlib` module is available)." msgstr "" -#: ../../library/shutil.rst:673 msgid "" "*tar*: Uncompressed tar file. Uses POSIX.1-2001 pax format for new archives." msgstr "" -#: ../../library/shutil.rst:674 ../../library/shutil.rst:792 msgid "*gztar*: gzip'ed tar-file (if the :mod:`zlib` module is available)." msgstr "" -#: ../../library/shutil.rst:675 ../../library/shutil.rst:793 msgid "*bztar*: bzip2'ed tar-file (if the :mod:`bz2` module is available)." msgstr "" -#: ../../library/shutil.rst:676 ../../library/shutil.rst:794 msgid "*xztar*: xz'ed tar-file (if the :mod:`lzma` module is available)." msgstr "" -#: ../../library/shutil.rst:677 ../../library/shutil.rst:795 msgid "" "*zstdtar*: Zstandard compressed tar-file (if the :mod:`compression.zstd` " "module is available)." msgstr "" -#: ../../library/shutil.rst:680 msgid "" "You can register new formats or provide your own archiver for any existing " "formats, by using :func:`register_archive_format`." msgstr "" -#: ../../library/shutil.rst:686 msgid "Register an archiver for the format *name*." msgstr "" -#: ../../library/shutil.rst:688 msgid "" "*function* is the callable that will be used to unpack archives. The " "callable will receive the *base_name* of the file to create, followed by the " @@ -932,7 +792,6 @@ msgid "" "*dry_run* and *logger* (as passed in :func:`make_archive`)." msgstr "" -#: ../../library/shutil.rst:694 msgid "" "If *function* has the custom attribute ``function.supports_root_dir`` set to " "``True``, the *root_dir* argument is passed as a keyword argument. Otherwise " @@ -941,47 +800,38 @@ msgid "" "not thread-safe." msgstr "" -#: ../../library/shutil.rst:700 msgid "" "If given, *extra_args* is a sequence of ``(name, value)`` pairs that will be " "used as extra keywords arguments when the archiver callable is used." msgstr "" -#: ../../library/shutil.rst:703 msgid "" "*description* is used by :func:`get_archive_formats` which returns the list " "of archivers. Defaults to an empty string." msgstr "" -#: ../../library/shutil.rst:706 msgid "Added support for functions supporting the *root_dir* argument." msgstr "" -#: ../../library/shutil.rst:712 msgid "Remove the archive format *name* from the list of supported formats." msgstr "" -#: ../../library/shutil.rst:717 msgid "Unpack an archive. *filename* is the full path of the archive." msgstr "" -#: ../../library/shutil.rst:719 msgid "" "*extract_dir* is the name of the target directory where the archive is " "unpacked. If not provided, the current working directory is used." msgstr "" -#: ../../library/shutil.rst:722 msgid "" "*format* is the archive format: one of \"zip\", \"tar\", \"gztar\", " -"\"bztar\", \"xztar\", or \"zstdtar\". Or any other format registered " -"with :func:`register_unpack_format`. If not " -"provided, :func:`unpack_archive` will use the archive file name extension " -"and see if an unpacker was registered for that extension. In case none is " -"found, a :exc:`ValueError` is raised." +"\"bztar\", \"xztar\", or \"zstdtar\". Or any other format registered with :" +"func:`register_unpack_format`. If not provided, :func:`unpack_archive` will " +"use the archive file name extension and see if an unpacker was registered " +"for that extension. In case none is found, a :exc:`ValueError` is raised." msgstr "" -#: ../../library/shutil.rst:729 msgid "" "The keyword-only *filter* argument is passed to the underlying unpacking " "function. For zip files, *filter* is not accepted. For tar files, it is " @@ -990,13 +840,11 @@ msgid "" "extraction-filter` for details.)" msgstr "" -#: ../../library/shutil.rst:735 msgid "" "Raises an :ref:`auditing event ` ``shutil.unpack_archive`` with " "arguments ``filename``, ``extract_dir``, ``format``." msgstr "" -#: ../../library/shutil.rst:739 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of the path specified in the " @@ -1004,7 +852,6 @@ msgid "" "with \"/\" or filenames with two dots \"..\"." msgstr "" -#: ../../library/shutil.rst:744 msgid "" "Since Python 3.14, the defaults for both built-in formats (zip and tar " "files) will prevent the most dangerous of such security issues, but will not " @@ -1012,91 +859,74 @@ msgid "" "verification` section for tar-specific details." msgstr "" -#: ../../library/shutil.rst:750 msgid "Accepts a :term:`path-like object` for *filename* and *extract_dir*." msgstr "" -#: ../../library/shutil.rst:753 msgid "Added the *filter* argument." msgstr "" -#: ../../library/shutil.rst:758 msgid "" "Registers an unpack format. *name* is the name of the format and " -"*extensions* is a list of extensions corresponding to the format, like " -"``.zip`` for Zip files." +"*extensions* is a list of extensions corresponding to the format, like ``." +"zip`` for Zip files." msgstr "" -#: ../../library/shutil.rst:762 msgid "" "*function* is the callable that will be used to unpack archives. The " "callable will receive:" msgstr "" -#: ../../library/shutil.rst:765 msgid "the path of the archive, as a positional argument;" msgstr "" -#: ../../library/shutil.rst:766 msgid "" "the directory the archive must be extracted to, as a positional argument;" msgstr "" -#: ../../library/shutil.rst:767 msgid "" -"possibly a *filter* keyword argument, if it was given " -"to :func:`unpack_archive`;" +"possibly a *filter* keyword argument, if it was given to :func:" +"`unpack_archive`;" msgstr "" -#: ../../library/shutil.rst:769 msgid "" "additional keyword arguments, specified by *extra_args* as a sequence of " "``(name, value)`` tuples." msgstr "" -#: ../../library/shutil.rst:772 msgid "" "*description* can be provided to describe the format, and will be returned " "by the :func:`get_unpack_formats` function." msgstr "" -#: ../../library/shutil.rst:778 msgid "Unregister an unpack format. *name* is the name of the format." msgstr "" -#: ../../library/shutil.rst:783 msgid "" "Return a list of all registered formats for unpacking. Each element of the " "returned sequence is a tuple ``(name, extensions, description)``." msgstr "" -#: ../../library/shutil.rst:789 msgid "" "*zip*: ZIP file (unpacking compressed files works only if the corresponding " "module is available)." msgstr "" -#: ../../library/shutil.rst:791 msgid "*tar*: uncompressed tar file." msgstr "" -#: ../../library/shutil.rst:798 msgid "" "You can register new formats or provide your own unpacker for any existing " "formats, by using :func:`register_unpack_format`." msgstr "" -#: ../../library/shutil.rst:805 msgid "Archiving example" msgstr "" -#: ../../library/shutil.rst:807 msgid "" "In this example, we create a gzip'ed tar-file archive containing all files " "found in the :file:`.ssh` directory of the user::" msgstr "" -#: ../../library/shutil.rst:810 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1106,11 +936,9 @@ msgid "" "'/Users/tarek/myarchive.tar.gz'" msgstr "" -#: ../../library/shutil.rst:817 msgid "The resulting archive contains:" msgstr "" -#: ../../library/shutil.rst:819 msgid "" "$ tar -tzvf /Users/tarek/myarchive.tar.gz\n" "drwx------ tarek/staff 0 2010-02-01 16:23:40 ./\n" @@ -1123,18 +951,15 @@ msgid "" "-rw-r--r-- tarek/staff 37192 2010-02-06 18:23:10 ./known_hosts" msgstr "" -#: ../../library/shutil.rst:835 msgid "Archiving example with *base_dir*" msgstr "" -#: ../../library/shutil.rst:837 msgid "" "In this example, similar to the `one above `_, we " "show how to use :func:`make_archive`, but this time with the usage of " "*base_dir*. We now have the following directory structure:" msgstr "" -#: ../../library/shutil.rst:841 msgid "" "$ tree tmp\n" "tmp\n" @@ -1145,13 +970,11 @@ msgid "" " └── do_not_add.txt" msgstr "" -#: ../../library/shutil.rst:851 msgid "" -"In the final archive, :file:`please_add.txt` should be included, " -"but :file:`do_not_add.txt` should not. Therefore we use the following::" +"In the final archive, :file:`please_add.txt` should be included, but :file:" +"`do_not_add.txt` should not. Therefore we use the following::" msgstr "" -#: ../../library/shutil.rst:854 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1162,43 +985,36 @@ msgid "" "... root_dir='tmp/root',\n" "... base_dir='structure/content',\n" "... )\n" -"'/Users/tarek/my_archive.tar'" +"'/Users/tarek/myarchive.tar'" msgstr "" -#: ../../library/shutil.rst:865 msgid "Listing the files in the resulting archive gives us:" msgstr "" -#: ../../library/shutil.rst:867 msgid "" "$ python -m tarfile -l /Users/tarek/myarchive.tar\n" "structure/content/\n" "structure/content/please_add.txt" msgstr "" -#: ../../library/shutil.rst:875 msgid "Querying the size of the output terminal" msgstr "" -#: ../../library/shutil.rst:879 msgid "Get the size of the terminal window." msgstr "" -#: ../../library/shutil.rst:881 msgid "" "For each of the two dimensions, the environment variable, ``COLUMNS`` and " "``LINES`` respectively, is checked. If the variable is defined and the value " "is a positive integer, it is used." msgstr "" -#: ../../library/shutil.rst:885 msgid "" "When ``COLUMNS`` or ``LINES`` is not defined, which is the common case, the " -"terminal connected to :data:`sys.__stdout__` is queried by " -"invoking :func:`os.get_terminal_size`." +"terminal connected to :data:`sys.__stdout__` is queried by invoking :func:" +"`os.get_terminal_size`." msgstr "" -#: ../../library/shutil.rst:889 msgid "" "If the terminal size cannot be successfully queried, either because the " "system doesn't support querying, or because we are not connected to a " @@ -1207,38 +1023,30 @@ msgid "" "emulators." msgstr "" -#: ../../library/shutil.rst:895 msgid "The value returned is a named tuple of type :class:`os.terminal_size`." msgstr "" -#: ../../library/shutil.rst:897 msgid "" "See also: The Single UNIX Specification, Version 2, `Other Environment " "Variables`_." msgstr "" -#: ../../library/shutil.rst:902 msgid "" "The ``fallback`` values are also used if :func:`os.get_terminal_size` " "returns zeroes." msgstr "" -#: ../../library/shutil.rst:12 msgid "file" msgstr "" -#: ../../library/shutil.rst:12 msgid "copying" msgstr "" -#: ../../library/shutil.rst:12 msgid "copying files" msgstr "" -#: ../../library/shutil.rst:304 msgid "directory" msgstr "" -#: ../../library/shutil.rst:304 msgid "deleting" msgstr "" diff --git a/library/signal.po b/library/signal.po index 9a04aaa..210616c 100644 --- a/library/signal.po +++ b/library/signal.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,23 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/signal.rst:2 msgid ":mod:`!signal` --- Set handlers for asynchronous events" msgstr "" -#: ../../library/signal.rst:7 msgid "**Source code:** :source:`Lib/signal.py`" msgstr "" -#: ../../library/signal.rst:11 msgid "This module provides mechanisms to use signal handlers in Python." msgstr "" -#: ../../library/signal.rst:15 msgid "General rules" msgstr "" -#: ../../library/signal.rst:17 msgid "" "The :func:`signal.signal` function allows defining custom handlers to be " "executed when a signal is received. A small number of default handlers are " @@ -44,26 +39,22 @@ msgid "" "has not changed it." msgstr "" -#: ../../library/signal.rst:24 msgid "" "A handler for a particular signal, once set, remains installed until it is " "explicitly reset (Python emulates the BSD style interface regardless of the " -"underlying implementation), with the exception of the handler " -"for :const:`SIGCHLD`, which follows the underlying implementation." +"underlying implementation), with the exception of the handler for :const:" +"`SIGCHLD`, which follows the underlying implementation." msgstr "" -#: ../../library/signal.rst:29 msgid "" "On WebAssembly platforms, signals are emulated and therefore behave " "differently. Several functions and signals are not available on these " "platforms." msgstr "" -#: ../../library/signal.rst:34 msgid "Execution of Python signal handlers" msgstr "" -#: ../../library/signal.rst:36 msgid "" "A Python signal handler does not get executed inside the low-level (C) " "signal handler. Instead, the low-level signal handler sets a flag which " @@ -72,17 +63,15 @@ msgid "" "instruction). This has consequences:" msgstr "" -#: ../../library/signal.rst:42 msgid "" -"It makes little sense to catch synchronous errors like :const:`SIGFPE` " -"or :const:`SIGSEGV` that are caused by an invalid operation in C code. " -"Python will return from the signal handler to the C code, which is likely to " -"raise the same signal again, causing Python to apparently hang. From Python " -"3.3 onwards, you can use the :mod:`faulthandler` module to report on " -"synchronous errors." +"It makes little sense to catch synchronous errors like :const:`SIGFPE` or :" +"const:`SIGSEGV` that are caused by an invalid operation in C code. Python " +"will return from the signal handler to the C code, which is likely to raise " +"the same signal again, causing Python to apparently hang. From Python 3.3 " +"onwards, you can use the :mod:`faulthandler` module to report on synchronous " +"errors." msgstr "" -#: ../../library/signal.rst:49 msgid "" "A long-running calculation implemented purely in C (such as regular " "expression matching on a large body of text) may run uninterrupted for an " @@ -90,18 +79,15 @@ msgid "" "signal handlers will be called when the calculation finishes." msgstr "" -#: ../../library/signal.rst:54 msgid "" "If the handler raises an exception, it will be raised \"out of thin air\" in " "the main thread. See the :ref:`note below ` for a " "discussion." msgstr "" -#: ../../library/signal.rst:62 msgid "Signals and threads" msgstr "" -#: ../../library/signal.rst:64 msgid "" "Python signal handlers are always executed in the main Python thread of the " "main interpreter, even if the signal was received in another thread. This " @@ -110,76 +96,52 @@ msgid "" "instead." msgstr "" -#: ../../library/signal.rst:69 msgid "" "Besides, only the main thread of the main interpreter is allowed to set a " "new signal handler." msgstr "" -#: ../../library/signal.rst:73 msgid "Module contents" msgstr "" -#: ../../library/signal.rst:75 msgid "" -"signal (SIG*), handler (:const:`SIG_DFL`, :const:`SIG_IGN`) and sigmask " -"(:const:`SIG_BLOCK`, :const:`SIG_UNBLOCK`, :const:`SIG_SETMASK`) related " -"constants listed below were turned into :class:`enums ` " -"(:class:`Signals`, :class:`Handlers` and :class:`Sigmasks` " -"respectively). :func:`getsignal`, :func:`pthread_sigmask`, :func:`sigpending` " -"and :func:`sigwait` functions return human-readable :class:`enums " -"` as :class:`Signals` objects." +"signal (SIG*), handler (:const:`SIG_DFL`, :const:`SIG_IGN`) and sigmask (:" +"const:`SIG_BLOCK`, :const:`SIG_UNBLOCK`, :const:`SIG_SETMASK`) related " +"constants listed below were turned into :class:`enums ` (:" +"class:`Signals`, :class:`Handlers` and :class:`Sigmasks` respectively). :" +"func:`getsignal`, :func:`pthread_sigmask`, :func:`sigpending` and :func:" +"`sigwait` functions return human-readable :class:`enums ` as :" +"class:`Signals` objects." msgstr "" -#: ../../library/signal.rst:85 msgid "The signal module defines three enums:" msgstr "" -#: ../../library/signal.rst:89 msgid "" ":class:`enum.IntEnum` collection of SIG* constants and the CTRL_* constants." msgstr "" -#: ../../library/signal.rst:95 msgid "" -":class:`enum.IntEnum` collection the constants :const:`SIG_DFL` " -"and :const:`SIG_IGN`." +":class:`enum.IntEnum` collection the constants :const:`SIG_DFL` and :const:" +"`SIG_IGN`." msgstr "" -#: ../../library/signal.rst:101 msgid "" -":class:`enum.IntEnum` collection the " -"constants :const:`SIG_BLOCK`, :const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`." +":class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:" +"`SIG_UNBLOCK` and :const:`SIG_SETMASK`." msgstr "" -#: ../../library/signal.rst:103 ../../library/signal.rst:136 -#: ../../library/signal.rst:142 ../../library/signal.rst:148 -#: ../../library/signal.rst:154 ../../library/signal.rst:160 -#: ../../library/signal.rst:166 ../../library/signal.rst:180 -#: ../../library/signal.rst:198 ../../library/signal.rst:206 -#: ../../library/signal.rst:217 ../../library/signal.rst:232 -#: ../../library/signal.rst:238 ../../library/signal.rst:244 -#: ../../library/signal.rst:262 ../../library/signal.rst:272 -#: ../../library/signal.rst:351 ../../library/signal.rst:390 -#: ../../library/signal.rst:414 ../../library/signal.rst:437 -#: ../../library/signal.rst:471 ../../library/signal.rst:501 -#: ../../library/signal.rst:508 ../../library/signal.rst:563 -#: ../../library/signal.rst:605 ../../library/signal.rst:620 -#: ../../library/signal.rst:646 ../../library/signal.rst:666 msgid "Availability" msgstr "" -#: ../../library/signal.rst:105 ../../library/signal.rst:473 msgid "" "See the man page :manpage:`sigprocmask(2)` and :manpage:`pthread_sigmask(3)` " "for further information." msgstr "" -#: ../../library/signal.rst:111 msgid "The variables defined in the :mod:`signal` module are:" msgstr "" -#: ../../library/signal.rst:116 msgid "" "This is one of two standard signal handling options; it will simply perform " "the default function for the signal. For example, on most systems the " @@ -187,158 +149,125 @@ msgid "" "default action for :const:`SIGCHLD` is to simply ignore it." msgstr "" -#: ../../library/signal.rst:124 msgid "" "This is another standard signal handler, which will simply ignore the given " "signal." msgstr "" -#: ../../library/signal.rst:130 msgid "Abort signal from :manpage:`abort(3)`." msgstr "" -#: ../../library/signal.rst:134 msgid "Timer signal from :manpage:`alarm(2)`." msgstr "" -#: ../../library/signal.rst:140 msgid "Interrupt from keyboard (CTRL + BREAK)." msgstr "" -#: ../../library/signal.rst:146 msgid "Bus error (bad memory access)." msgstr "" -#: ../../library/signal.rst:152 msgid "Child process stopped or terminated." msgstr "" -#: ../../library/signal.rst:158 msgid "Alias to :data:`SIGCHLD`." msgstr "" -#: ../../library/signal.rst:164 msgid "Continue the process if it is currently stopped" msgstr "" -#: ../../library/signal.rst:170 msgid "Floating-point exception. For example, division by zero." msgstr "" -#: ../../library/signal.rst:173 msgid "" ":exc:`ZeroDivisionError` is raised when the second argument of a division or " "modulo operation is zero." msgstr "" -#: ../../library/signal.rst:178 msgid "" "Hangup detected on controlling terminal or death of controlling process." msgstr "" -#: ../../library/signal.rst:184 msgid "Illegal instruction." msgstr "" -#: ../../library/signal.rst:188 msgid "Interrupt from keyboard (CTRL + C)." msgstr "" -#: ../../library/signal.rst:190 msgid "Default action is to raise :exc:`KeyboardInterrupt`." msgstr "" -#: ../../library/signal.rst:194 msgid "Kill signal." msgstr "" -#: ../../library/signal.rst:196 msgid "It cannot be caught, blocked, or ignored." msgstr "" -#: ../../library/signal.rst:202 msgid "Broken pipe: write to pipe with no readers." msgstr "" -#: ../../library/signal.rst:204 msgid "Default action is to ignore the signal." msgstr "" -#: ../../library/signal.rst:210 msgid "Segmentation fault: invalid memory reference." msgstr "" -#: ../../library/signal.rst:214 msgid "" "Stack fault on coprocessor. The Linux kernel does not raise this signal: it " "can only be raised in user space." msgstr "" -#: ../../library/signal.rst:219 msgid "" -"On architectures where the signal is available. See the man " -"page :manpage:`signal(7)` for further information." +"On architectures where the signal is available. See the man page :manpage:" +"`signal(7)` for further information." msgstr "" -#: ../../library/signal.rst:226 msgid "Termination signal." msgstr "" -#: ../../library/signal.rst:230 msgid "User-defined signal 1." msgstr "" -#: ../../library/signal.rst:236 msgid "User-defined signal 2." msgstr "" -#: ../../library/signal.rst:242 msgid "Window resize signal." msgstr "" -#: ../../library/signal.rst:248 msgid "" "All the signal numbers are defined symbolically. For example, the hangup " "signal is defined as :const:`signal.SIGHUP`; the variable names are " "identical to the names used in C programs, as found in ````. The " "Unix man page for ':c:func:`signal`' lists the existing signals (on some " -"systems this is :manpage:`signal(2)`, on others the list is " -"in :manpage:`signal(7)`). Note that not all systems define the same set of " -"signal names; only those names defined by the system are defined by this " -"module." +"systems this is :manpage:`signal(2)`, on others the list is in :manpage:" +"`signal(7)`). Note that not all systems define the same set of signal names; " +"only those names defined by the system are defined by this module." msgstr "" -#: ../../library/signal.rst:259 msgid "" "The signal corresponding to the :kbd:`Ctrl+C` keystroke event. This signal " "can only be used with :func:`os.kill`." msgstr "" -#: ../../library/signal.rst:269 msgid "" "The signal corresponding to the :kbd:`Ctrl+Break` keystroke event. This " "signal can only be used with :func:`os.kill`." msgstr "" -#: ../../library/signal.rst:279 msgid "" -"One more than the number of the highest signal number. " -"Use :func:`valid_signals` to get valid signal numbers." +"One more than the number of the highest signal number. Use :func:" +"`valid_signals` to get valid signal numbers." msgstr "" -#: ../../library/signal.rst:285 msgid "" "Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " "expiration." msgstr "" -#: ../../library/signal.rst:291 msgid "" "Decrements interval timer only when the process is executing, and delivers " "SIGVTALRM upon expiration." msgstr "" -#: ../../library/signal.rst:297 msgid "" "Decrements interval timer both when the process executes and when the system " "is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this " @@ -346,47 +275,39 @@ msgid "" "and kernel space. SIGPROF is delivered upon expiration." msgstr "" -#: ../../library/signal.rst:305 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be blocked." msgstr "" -#: ../../library/signal.rst:312 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be unblocked." msgstr "" -#: ../../library/signal.rst:319 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that the signal mask is to be replaced." msgstr "" -#: ../../library/signal.rst:325 msgid "The :mod:`signal` module defines one exception:" msgstr "" -#: ../../library/signal.rst:329 msgid "" -"Raised to signal an error from the underlying :func:`setitimer` " -"or :func:`getitimer` implementation. Expect this error if an invalid " -"interval timer or a negative time is passed to :func:`setitimer`. This error " -"is a subtype of :exc:`OSError`." +"Raised to signal an error from the underlying :func:`setitimer` or :func:" +"`getitimer` implementation. Expect this error if an invalid interval timer " +"or a negative time is passed to :func:`setitimer`. This error is a subtype " +"of :exc:`OSError`." msgstr "" -#: ../../library/signal.rst:334 msgid "" -"This error used to be a subtype of :exc:`IOError`, which is now an alias " -"of :exc:`OSError`." +"This error used to be a subtype of :exc:`IOError`, which is now an alias of :" +"exc:`OSError`." msgstr "" -#: ../../library/signal.rst:339 msgid "The :mod:`signal` module defines the following functions:" msgstr "" -#: ../../library/signal.rst:344 msgid "" "If *time* is non-zero, this function requests that a :const:`SIGALRM` signal " "be sent to the process in *time* seconds. Any previously scheduled alarm is " @@ -397,56 +318,47 @@ msgid "" "scheduled." msgstr "" -#: ../../library/signal.rst:353 msgid "See the man page :manpage:`alarm(2)` for further information." msgstr "" -#: ../../library/signal.rst:358 msgid "" "Return the current signal handler for the signal *signalnum*. The returned " -"value may be a callable Python object, or one of the special " -"values :const:`signal.SIG_IGN`, :const:`signal.SIG_DFL` or :const:`None`. " -"Here, :const:`signal.SIG_IGN` means that the signal was previously " -"ignored, :const:`signal.SIG_DFL` means that the default way of handling the " -"signal was previously in use, and ``None`` means that the previous signal " -"handler was not installed from Python." +"value may be a callable Python object, or one of the special values :const:" +"`signal.SIG_IGN`, :const:`signal.SIG_DFL` or :const:`None`. Here, :const:" +"`signal.SIG_IGN` means that the signal was previously ignored, :const:" +"`signal.SIG_DFL` means that the default way of handling the signal was " +"previously in use, and ``None`` means that the previous signal handler was " +"not installed from Python." msgstr "" -#: ../../library/signal.rst:369 msgid "" -"Returns the description of signal *signalnum*, such as \"Interrupt\" " -"for :const:`SIGINT`. Returns :const:`None` if *signalnum* has no " -"description. Raises :exc:`ValueError` if *signalnum* is invalid." +"Returns the description of signal *signalnum*, such as \"Interrupt\" for :" +"const:`SIGINT`. Returns :const:`None` if *signalnum* has no description. " +"Raises :exc:`ValueError` if *signalnum* is invalid." msgstr "" -#: ../../library/signal.rst:378 msgid "" "Return the set of valid signal numbers on this platform. This can be less " "than ``range(1, NSIG)`` if some signals are reserved by the system for " "internal use." msgstr "" -#: ../../library/signal.rst:387 msgid "" "Cause the process to sleep until a signal is received; the appropriate " "handler will then be called. Returns nothing." msgstr "" -#: ../../library/signal.rst:392 msgid "See the man page :manpage:`signal(2)` for further information." msgstr "" -#: ../../library/signal.rst:394 msgid "" -"See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` " -"and :func:`sigpending`." +"See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" +"func:`sigpending`." msgstr "" -#: ../../library/signal.rst:400 msgid "Sends a signal to the calling process. Returns nothing." msgstr "" -#: ../../library/signal.rst:407 msgid "" "Send signal *sig* to the process referred to by file descriptor *pidfd*. " "Python does not currently support the *siginfo* parameter; it must be " @@ -454,11 +366,9 @@ msgid "" "values are currently defined." msgstr "" -#: ../../library/signal.rst:412 msgid "See the :manpage:`pidfd_send_signal(2)` man page for more information." msgstr "" -#: ../../library/signal.rst:420 msgid "" "Send the signal *signalnum* to the thread *thread_id*, another thread in the " "same process as the caller. The target thread can be executing any code " @@ -469,119 +379,98 @@ msgid "" "running system call to fail with :exc:`InterruptedError`." msgstr "" -#: ../../library/signal.rst:428 msgid "" "Use :func:`threading.get_ident` or the :attr:`~threading.Thread.ident` " "attribute of :class:`threading.Thread` objects to get a suitable value for " "*thread_id*." msgstr "" -#: ../../library/signal.rst:432 msgid "" "If *signalnum* is 0, then no signal is sent, but error checking is still " "performed; this can be used to check if the target thread is still running." msgstr "" -#: ../../library/signal.rst:435 msgid "" "Raises an :ref:`auditing event ` ``signal.pthread_kill`` with " "arguments ``thread_id``, ``signalnum``." msgstr "" -#: ../../library/signal.rst:439 msgid "See the man page :manpage:`pthread_kill(3)` for further information." msgstr "" -#: ../../library/signal.rst:441 msgid "See also :func:`os.kill`." msgstr "" -#: ../../library/signal.rst:448 msgid "" "Fetch and/or change the signal mask of the calling thread. The signal mask " "is the set of signals whose delivery is currently blocked for the caller. " "Return the old signal mask as a set of signals." msgstr "" -#: ../../library/signal.rst:452 msgid "" "The behavior of the call is dependent on the value of *how*, as follows." msgstr "" -#: ../../library/signal.rst:454 msgid "" ":data:`SIG_BLOCK`: The set of blocked signals is the union of the current " "set and the *mask* argument." msgstr "" -#: ../../library/signal.rst:456 msgid "" ":data:`SIG_UNBLOCK`: The signals in *mask* are removed from the current set " "of blocked signals. It is permissible to attempt to unblock a signal which " "is not blocked." msgstr "" -#: ../../library/signal.rst:459 msgid "" ":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " "argument." msgstr "" -#: ../../library/signal.rst:462 msgid "" -"*mask* is a set of signal numbers (e.g. " -"{:const:`signal.SIGINT`, :const:`signal.SIGTERM`}). " -"Use :func:`~signal.valid_signals` for a full mask including all signals." +"*mask* is a set of signal numbers (e.g. {:const:`signal.SIGINT`, :const:" +"`signal.SIGTERM`}). Use :func:`~signal.valid_signals` for a full mask " +"including all signals." msgstr "" -#: ../../library/signal.rst:466 msgid "" "For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " "signal mask of the calling thread." msgstr "" -#: ../../library/signal.rst:469 msgid ":data:`SIGKILL` and :data:`SIGSTOP` cannot be blocked." msgstr "" -#: ../../library/signal.rst:476 msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." msgstr "" -#: ../../library/signal.rst:483 msgid "" -"Sets given interval timer (one " -"of :const:`signal.ITIMER_REAL`, :const:`signal.ITIMER_VIRTUAL` " -"or :const:`signal.ITIMER_PROF`) specified by *which* to fire after *seconds* " -"(float is accepted, different from :func:`alarm`) and after that every " -"*interval* seconds (if *interval* is non-zero). The interval timer specified " -"by *which* can be cleared by setting *seconds* to zero." +"Sets given interval timer (one of :const:`signal.ITIMER_REAL`, :const:" +"`signal.ITIMER_VIRTUAL` or :const:`signal.ITIMER_PROF`) specified by *which* " +"to fire after *seconds* (float is accepted, different from :func:`alarm`) " +"and after that every *interval* seconds (if *interval* is non-zero). The " +"interval timer specified by *which* can be cleared by setting *seconds* to " +"zero." msgstr "" -#: ../../library/signal.rst:490 msgid "" "When an interval timer fires, a signal is sent to the process. The signal " "sent is dependent on the timer being used; :const:`signal.ITIMER_REAL` will " -"deliver :const:`SIGALRM`, :const:`signal.ITIMER_VIRTUAL` " -"sends :const:`SIGVTALRM`, and :const:`signal.ITIMER_PROF` will " -"deliver :const:`SIGPROF`." +"deliver :const:`SIGALRM`, :const:`signal.ITIMER_VIRTUAL` sends :const:" +"`SIGVTALRM`, and :const:`signal.ITIMER_PROF` will deliver :const:`SIGPROF`." msgstr "" -#: ../../library/signal.rst:496 msgid "The old values are returned as a tuple: (delay, interval)." msgstr "" -#: ../../library/signal.rst:498 msgid "" -"Attempting to pass an invalid interval timer will cause " -"an :exc:`ItimerError`." +"Attempting to pass an invalid interval timer will cause an :exc:" +"`ItimerError`." msgstr "" -#: ../../library/signal.rst:506 msgid "Returns current value of a given interval timer specified by *which*." msgstr "" -#: ../../library/signal.rst:513 msgid "" "Set the wakeup file descriptor to *fd*. When a signal your program has " "registered a signal handler for is received, the signal number is written as " @@ -591,7 +480,6 @@ msgid "" "signal to be fully processed." msgstr "" -#: ../../library/signal.rst:520 msgid "" "The old wakeup fd is returned (or -1 if file descriptor wakeup was not " "enabled). If *fd* is -1, file descriptor wakeup is disabled. If not -1, " @@ -599,7 +487,6 @@ msgid "" "*fd* before calling poll or select again." msgstr "" -#: ../../library/signal.rst:525 ../../library/signal.rst:580 msgid "" "When threads are enabled, this function can only be called from :ref:`the " "main thread of the main interpreter `; attempting to " @@ -607,14 +494,12 @@ msgid "" "raised." msgstr "" -#: ../../library/signal.rst:530 msgid "" "There are two common ways to use this function. In both approaches, you use " "the fd to wake up when a signal arrives, but then they differ in how they " "determine *which* signal or signals have arrived." msgstr "" -#: ../../library/signal.rst:535 msgid "" "In the first approach, we read the data out of the fd's buffer, and the byte " "values give you the signal numbers. This is simple, but in rare cases it can " @@ -625,7 +510,6 @@ msgid "" "warning to be printed to stderr when signals are lost." msgstr "" -#: ../../library/signal.rst:544 msgid "" "In the second approach, we use the wakeup fd *only* for wakeups, and ignore " "the actual byte values. In this case, all we care about is whether the fd's " @@ -635,43 +519,36 @@ msgid "" "spurious warning messages." msgstr "" -#: ../../library/signal.rst:551 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: ../../library/signal.rst:554 msgid "Added ``warn_on_full_buffer`` parameter." msgstr "" -#: ../../library/signal.rst:559 msgid "" "Change system call restart behaviour: if *flag* is :const:`False`, system " "calls will be restarted when interrupted by signal *signalnum*, otherwise " "system calls will be interrupted. Returns nothing." msgstr "" -#: ../../library/signal.rst:565 msgid "See the man page :manpage:`siginterrupt(3)` for further information." msgstr "" -#: ../../library/signal.rst:567 msgid "" "Note that installing a signal handler with :func:`signal` will reset the " "restart behaviour to interruptible by implicitly calling :c:func:`!" "siginterrupt` with a true *flag* value for the given signal." msgstr "" -#: ../../library/signal.rst:574 msgid "" "Set the handler for signal *signalnum* to the function *handler*. *handler* " "can be a callable Python object taking two arguments (see below), or one of " "the special values :const:`signal.SIG_IGN` or :const:`signal.SIG_DFL`. The " -"previous signal handler will be returned (see the description " -"of :func:`getsignal` above). (See the Unix man page :manpage:`signal(2)` " -"for further information.)" +"previous signal handler will be returned (see the description of :func:" +"`getsignal` above). (See the Unix man page :manpage:`signal(2)` for further " +"information.)" msgstr "" -#: ../../library/signal.rst:585 msgid "" "The *handler* is called with two arguments: the signal number and the " "current stack frame (``None`` or a frame object; for a description of frame " @@ -679,32 +556,27 @@ msgid "" "see the attribute descriptions in the :mod:`inspect` module)." msgstr "" -#: ../../library/signal.rst:590 msgid "" -"On Windows, :func:`signal` can only be called " -"with :const:`SIGABRT`, :const:`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:`SIGTERM`, " -"or :const:`SIGBREAK`. A :exc:`ValueError` will be raised in any other case. " -"Note that not all systems define the same set of signal names; " +"On Windows, :func:`signal` can only be called with :const:`SIGABRT`, :const:" +"`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:" +"`SIGTERM`, or :const:`SIGBREAK`. A :exc:`ValueError` will be raised in any " +"other case. Note that not all systems define the same set of signal names; " "an :exc:`AttributeError` will be raised if a signal name is not defined as " "``SIG*`` module level constant." msgstr "" -#: ../../library/signal.rst:601 msgid "" "Examine the set of signals that are pending for delivery to the calling " "thread (i.e., the signals which have been raised while blocked). Return the " "set of the pending signals." msgstr "" -#: ../../library/signal.rst:607 msgid "See the man page :manpage:`sigpending(2)` for further information." msgstr "" -#: ../../library/signal.rst:609 msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." msgstr "" -#: ../../library/signal.rst:616 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " @@ -712,78 +584,64 @@ msgid "" "number." msgstr "" -#: ../../library/signal.rst:622 msgid "See the man page :manpage:`sigwait(3)` for further information." msgstr "" -#: ../../library/signal.rst:624 msgid "" -"See " -"also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:`sigwaitinfo` " -"and :func:`sigtimedwait`." +"See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" +"`sigwaitinfo` and :func:`sigtimedwait`." msgstr "" -#: ../../library/signal.rst:632 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " "signal and removes it from the pending list of signals. If one of the " "signals in *sigset* is already pending for the calling thread, the function " "will return immediately with information about that signal. The signal " -"handler is not called for the delivered signal. The function raises " -"an :exc:`InterruptedError` if it is interrupted by a signal that is not in " -"*sigset*." +"handler is not called for the delivered signal. The function raises an :exc:" +"`InterruptedError` if it is interrupted by a signal that is not in *sigset*." msgstr "" -#: ../../library/signal.rst:641 msgid "" -"The return value is an object representing the data contained in " -"the :c:type:`siginfo_t` structure, " -"namely: :attr:`si_signo`, :attr:`si_code`, :attr:`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:`si_band`." +"The return value is an object representing the data contained in the :c:type:" +"`siginfo_t` structure, namely: :attr:`si_signo`, :attr:`si_code`, :attr:" +"`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:" +"`si_band`." msgstr "" -#: ../../library/signal.rst:648 msgid "See the man page :manpage:`sigwaitinfo(2)` for further information." msgstr "" -#: ../../library/signal.rst:650 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." msgstr "" -#: ../../library/signal.rst:654 msgid "" "The function is now retried if interrupted by a signal not in *sigset* and " "the signal handler does not raise an exception (see :pep:`475` for the " "rationale)." msgstr "" -#: ../../library/signal.rst:662 msgid "" "Like :func:`sigwaitinfo`, but takes an additional *timeout* argument " "specifying a timeout. If *timeout* is specified as ``0``, a poll is " "performed. Returns :const:`None` if a timeout occurs." msgstr "" -#: ../../library/signal.rst:668 msgid "See the man page :manpage:`sigtimedwait(2)` for further information." msgstr "" -#: ../../library/signal.rst:670 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." msgstr "" -#: ../../library/signal.rst:674 msgid "" "The function is now retried with the recomputed *timeout* if interrupted by " "a signal not in *sigset* and the signal handler does not raise an exception " "(see :pep:`475` for the rationale)." msgstr "" -#: ../../library/signal.rst:683 msgid "Examples" msgstr "" -#: ../../library/signal.rst:685 msgid "" "Here is a minimal example program. It uses the :func:`alarm` function to " "limit the time spent waiting to open a file; this is useful if the file is " @@ -793,7 +651,6 @@ msgid "" "signal will be sent, and the handler raises an exception. ::" msgstr "" -#: ../../library/signal.rst:692 msgid "" "import signal, os\n" "\n" @@ -812,20 +669,17 @@ msgid "" "signal.alarm(0) # Disable the alarm" msgstr "" -#: ../../library/signal.rst:709 msgid "Note on SIGPIPE" msgstr "" -#: ../../library/signal.rst:711 msgid "" -"Piping output of your program to tools like :manpage:`head(1)` will cause " -"a :const:`SIGPIPE` signal to be sent to your process when the receiver of " -"its standard output closes early. This results in an exception " -"like :code:`BrokenPipeError: [Errno 32] Broken pipe`. To handle this case, " -"wrap your entry point to catch this exception as follows::" +"Piping output of your program to tools like :manpage:`head(1)` will cause a :" +"const:`SIGPIPE` signal to be sent to your process when the receiver of its " +"standard output closes early. This results in an exception like :code:" +"`BrokenPipeError: [Errno 32] Broken pipe`. To handle this case, wrap your " +"entry point to catch this exception as follows::" msgstr "" -#: ../../library/signal.rst:717 msgid "" "import os\n" "import sys\n" @@ -850,7 +704,6 @@ msgid "" " main()" msgstr "" -#: ../../library/signal.rst:738 msgid "" "Do not set :const:`SIGPIPE`'s disposition to :const:`SIG_DFL` in order to " "avoid :exc:`BrokenPipeError`. Doing that would cause your program to exit " @@ -858,11 +711,9 @@ msgid "" "program is still writing to it." msgstr "" -#: ../../library/signal.rst:747 msgid "Note on Signal Handlers and Exceptions" msgstr "" -#: ../../library/signal.rst:749 msgid "" "If a signal handler raises an exception, the exception will be propagated to " "the main thread and may be raised after any :term:`bytecode` instruction. " @@ -873,11 +724,9 @@ msgid "" "program in an unexpected state." msgstr "" -#: ../../library/signal.rst:756 msgid "To illustrate this issue, consider the following code::" msgstr "" -#: ../../library/signal.rst:758 msgid "" "class SpamContext:\n" " def __init__(self):\n" @@ -895,18 +744,16 @@ msgid "" " self.lock.release()" msgstr "" -#: ../../library/signal.rst:773 msgid "" -"For many programs, especially those that merely want to exit " -"on :exc:`KeyboardInterrupt`, this is not a problem, but applications that " -"are complex or require high reliability should avoid raising exceptions from " +"For many programs, especially those that merely want to exit on :exc:" +"`KeyboardInterrupt`, this is not a problem, but applications that are " +"complex or require high reliability should avoid raising exceptions from " "signal handlers. They should also avoid catching :exc:`KeyboardInterrupt` as " "a means of gracefully shutting down. Instead, they should install their " "own :const:`SIGINT` handler. Below is an example of an HTTP server that " "avoids :exc:`KeyboardInterrupt`::" msgstr "" -#: ../../library/signal.rst:781 msgid "" "import signal\n" "import socket\n" diff --git a/library/site.po b/library/site.po index cc123f6..869fe84 100644 --- a/library/site.po +++ b/library/site.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,22 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/site.rst:2 msgid ":mod:`!site` --- Site-specific configuration hook" msgstr "" -#: ../../library/site.rst:7 msgid "**Source code:** :source:`Lib/site.py`" msgstr "" -#: ../../library/site.rst:13 msgid "" "**This module is automatically imported during initialization.** The " "automatic import can be suppressed using the interpreter's :option:`-S` " "option." msgstr "" -#: ../../library/site.rst:18 msgid "" "Importing this module normally appends site-specific paths to the module " "search path and adds :ref:`callables `, including :func:`help` " @@ -44,13 +40,11 @@ msgid "" "function." msgstr "" -#: ../../library/site.rst:25 msgid "" -"Importing the module used to trigger paths manipulation even when " -"using :option:`-S`." +"Importing the module used to trigger paths manipulation even when using :" +"option:`-S`." msgstr "" -#: ../../library/site.rst:32 msgid "" "It starts by constructing up to four directories from a head and a tail " "part. For the head part, it uses ``sys.prefix`` and ``sys.exec_prefix``; " @@ -64,28 +58,24 @@ msgid "" "files." msgstr "" -#: ../../library/site.rst:44 msgid "Support for the \"site-python\" directory has been removed." msgstr "" -#: ../../library/site.rst:47 msgid "" "On Unix, :term:`Free threading ` Python installations are " "identified by the \"t\" suffix in the version-specific directory name, such " "as :file:`lib/python3.13t/`." msgstr "" -#: ../../library/site.rst:54 msgid "" -":mod:`site` is no longer responsible for updating :data:`sys.prefix` " -"and :data:`sys.exec_prefix` on :ref:`sys-path-init-virtual-environments`. " -"This is now done during the :ref:`path initialization `. As a " -"result, under :ref:`sys-path-init-virtual-environments`, :data:`sys.prefix` " -"and :data:`sys.exec_prefix` no longer depend on the :mod:`site` " -"initialization, and are therefore unaffected by :option:`-S`." +":mod:`site` is no longer responsible for updating :data:`sys.prefix` and :" +"data:`sys.exec_prefix` on :ref:`sys-path-init-virtual-environments`. This is " +"now done during the :ref:`path initialization `. As a result, " +"under :ref:`sys-path-init-virtual-environments`, :data:`sys.prefix` and :" +"data:`sys.exec_prefix` no longer depend on the :mod:`site` initialization, " +"and are therefore unaffected by :option:`-S`." msgstr "" -#: ../../library/site.rst:63 msgid "" "When running under a :ref:`virtual environment `, the ``pyvenv.cfg`` file in :data:`sys.prefix` is checked for " @@ -94,19 +84,17 @@ msgid "" "will be searched for site-packages, otherwise they won't." msgstr "" -#: ../../library/site.rst:73 msgid "" -"A path configuration file is a file whose name has the " -"form :file:`{name}.pth` and exists in one of the four directories mentioned " -"above; its contents are additional items (one per line) to be added to " -"``sys.path``. Non-existing items are never added to ``sys.path``, and no " -"check is made that the item refers to a directory rather than a file. No " -"item is added to ``sys.path`` more than once. Blank lines and lines " -"beginning with ``#`` are skipped. Lines starting with ``import`` (followed " -"by space or tab) are executed." +"A path configuration file is a file whose name has the form :file:`{name}." +"pth` and exists in one of the four directories mentioned above; its contents " +"are additional items (one per line) to be added to ``sys.path``. Non-" +"existing items are never added to ``sys.path``, and no check is made that " +"the item refers to a directory rather than a file. No item is added to " +"``sys.path`` more than once. Blank lines and lines beginning with ``#`` are " +"skipped. Lines starting with ``import`` (followed by space or tab) are " +"executed." msgstr "" -#: ../../library/site.rst:83 msgid "" "An executable line in a :file:`.pth` file is run at every Python startup, " "regardless of whether a particular module is actually going to be used. Its " @@ -118,24 +106,20 @@ msgid "" "putting anything more complex here." msgstr "" -#: ../../library/site.rst:94 msgid "" -"The :file:`.pth` files are now decoded by UTF-8 at first and then by " -"the :term:`locale encoding` if it fails." +"The :file:`.pth` files are now decoded by UTF-8 at first and then by the :" +"term:`locale encoding` if it fails." msgstr "" -#: ../../library/site.rst:102 msgid "" -"For example, suppose ``sys.prefix`` and ``sys.exec_prefix`` are set " -"to :file:`/usr/local`. The Python X.Y library is then installed in :file:`/" -"usr/local/lib/python{X.Y}`. Suppose this has a subdirectory :file:`/usr/" -"local/lib/python{X.Y}/site-packages` with three " -"subsubdirectories, :file:`foo`, :file:`bar` and :file:`spam`, and two path " -"configuration files, :file:`foo.pth` and :file:`bar.pth`. " -"Assume :file:`foo.pth` contains the following::" +"For example, suppose ``sys.prefix`` and ``sys.exec_prefix`` are set to :file:" +"`/usr/local`. The Python X.Y library is then installed in :file:`/usr/local/" +"lib/python{X.Y}`. Suppose this has a subdirectory :file:`/usr/local/lib/" +"python{X.Y}/site-packages` with three subsubdirectories, :file:`foo`, :file:" +"`bar` and :file:`spam`, and two path configuration files, :file:`foo.pth` " +"and :file:`bar.pth`. Assume :file:`foo.pth` contains the following::" msgstr "" -#: ../../library/site.rst:110 msgid "" "# foo package configuration\n" "\n" @@ -144,217 +128,181 @@ msgid "" "bletch" msgstr "" -#: ../../library/site.rst:116 msgid "and :file:`bar.pth` contains::" msgstr "" -#: ../../library/site.rst:118 msgid "" "# bar package configuration\n" "\n" "bar" msgstr "" -#: ../../library/site.rst:122 msgid "" "Then the following version-specific directories are added to ``sys.path``, " "in this order::" msgstr "" -#: ../../library/site.rst:125 msgid "" "/usr/local/lib/pythonX.Y/site-packages/bar\n" "/usr/local/lib/pythonX.Y/site-packages/foo" msgstr "" -#: ../../library/site.rst:128 msgid "" -"Note that :file:`bletch` is omitted because it doesn't exist; " -"the :file:`bar` directory precedes the :file:`foo` directory " -"because :file:`bar.pth` comes alphabetically before :file:`foo.pth`; " -"and :file:`spam` is omitted because it is not mentioned in either path " -"configuration file." +"Note that :file:`bletch` is omitted because it doesn't exist; the :file:" +"`bar` directory precedes the :file:`foo` directory because :file:`bar.pth` " +"comes alphabetically before :file:`foo.pth`; and :file:`spam` is omitted " +"because it is not mentioned in either path configuration file." msgstr "" -#: ../../library/site.rst:134 msgid ":mod:`sitecustomize`" msgstr "" -#: ../../library/site.rst:138 msgid "" -"After these path manipulations, an attempt is made to import a module " -"named :mod:`sitecustomize`, which can perform arbitrary site-specific " +"After these path manipulations, an attempt is made to import a module named :" +"mod:`sitecustomize`, which can perform arbitrary site-specific " "customizations. It is typically created by a system administrator in the " "site-packages directory. If this import fails with an :exc:`ImportError` or " "its subclass exception, and the exception's :attr:`~ImportError.name` " "attribute equals to ``'sitecustomize'``, it is silently ignored. If Python " "is started without output streams available, as with :file:`pythonw.exe` on " -"Windows (which is used by default to start IDLE), attempted output " -"from :mod:`sitecustomize` is ignored. Any other exception causes a silent " -"and perhaps mysterious failure of the process." +"Windows (which is used by default to start IDLE), attempted output from :mod:" +"`sitecustomize` is ignored. Any other exception causes a silent and perhaps " +"mysterious failure of the process." msgstr "" -#: ../../library/site.rst:150 msgid ":mod:`usercustomize`" msgstr "" -#: ../../library/site.rst:154 msgid "" -"After this, an attempt is made to import a module " -"named :mod:`usercustomize`, which can perform arbitrary user-specific " -"customizations, if :data:`~site.ENABLE_USER_SITE` is true. This file is " -"intended to be created in the user site-packages directory (see below), " -"which is part of ``sys.path`` unless disabled by :option:`-s`. If this " -"import fails with an :exc:`ImportError` or its subclass exception, and the " -"exception's :attr:`~ImportError.name` attribute equals to " -"``'usercustomize'``, it is silently ignored." +"After this, an attempt is made to import a module named :mod:" +"`usercustomize`, which can perform arbitrary user-specific customizations, " +"if :data:`~site.ENABLE_USER_SITE` is true. This file is intended to be " +"created in the user site-packages directory (see below), which is part of " +"``sys.path`` unless disabled by :option:`-s`. If this import fails with an :" +"exc:`ImportError` or its subclass exception, and the exception's :attr:" +"`~ImportError.name` attribute equals to ``'usercustomize'``, it is silently " +"ignored." msgstr "" -#: ../../library/site.rst:162 msgid "" "Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` " -"are empty, and the path manipulations are skipped; however the import " -"of :mod:`sitecustomize` and :mod:`usercustomize` is still attempted." +"are empty, and the path manipulations are skipped; however the import of :" +"mod:`sitecustomize` and :mod:`usercustomize` is still attempted." msgstr "" -#: ../../library/site.rst:171 msgid "Readline configuration" msgstr "" -#: ../../library/site.rst:173 msgid "" "On systems that support :mod:`readline`, this module will also import and " -"configure the :mod:`rlcompleter` module, if Python is started " -"in :ref:`interactive mode ` and without the :option:`-S` " -"option. The default behavior is enable tab-completion and to " -"use :file:`~/.python_history` as the history save file. To disable it, " -"delete (or override) the :data:`sys.__interactivehook__` attribute in " -"your :mod:`sitecustomize` or :mod:`usercustomize` module or " -"your :envvar:`PYTHONSTARTUP` file." +"configure the :mod:`rlcompleter` module, if Python is started in :ref:" +"`interactive mode ` and without the :option:`-S` option. " +"The default behavior is enable tab-completion and to use :file:`~/." +"python_history` as the history save file. To disable it, delete (or " +"override) the :data:`sys.__interactivehook__` attribute in your :mod:" +"`sitecustomize` or :mod:`usercustomize` module or your :envvar:" +"`PYTHONSTARTUP` file." msgstr "" -#: ../../library/site.rst:182 msgid "Activation of rlcompleter and history was made automatic." msgstr "" -#: ../../library/site.rst:187 msgid "Module contents" msgstr "" -#: ../../library/site.rst:191 msgid "A list of prefixes for site-packages directories." msgstr "" -#: ../../library/site.rst:196 msgid "" "Flag showing the status of the user site-packages directory. ``True`` means " "that it is enabled and was added to ``sys.path``. ``False`` means that it " -"was disabled by user request (with :option:`-s` " -"or :envvar:`PYTHONNOUSERSITE`). ``None`` means it was disabled for security " -"reasons (mismatch between user or group id and effective id) or by an " -"administrator." +"was disabled by user request (with :option:`-s` or :envvar:" +"`PYTHONNOUSERSITE`). ``None`` means it was disabled for security reasons " +"(mismatch between user or group id and effective id) or by an administrator." msgstr "" -#: ../../library/site.rst:206 msgid "" -"Path to the user site-packages for the running Python. Can be ``None`` " -"if :func:`getusersitepackages` hasn't been called yet. Default value " -"is :file:`~/.local/lib/python{X.Y}[t]/site-packages` for UNIX and non-" -"framework macOS builds, :file:`~/Library/Python/{X.Y}/lib/python/site-" -"packages` for macOS framework builds, and :file:`{%APPDATA%}\\\\Python\\" -"\\Python{XY}\\\\site-packages` on Windows. The optional \"t\" indicates the " -"free-threaded build. This directory is a site directory, which means " -"that :file:`.pth` files in it will be processed." +"Path to the user site-packages for the running Python. Can be ``None`` if :" +"func:`getusersitepackages` hasn't been called yet. Default value is :file:" +"`~/.local/lib/python{X.Y}[t]/site-packages` for UNIX and non-framework macOS " +"builds, :file:`~/Library/Python/{X.Y}/lib/python/site-packages` for macOS " +"framework builds, and :file:`{%APPDATA%}\\\\Python\\\\Python{XY}\\\\site-" +"packages` on Windows. The optional \"t\" indicates the free-threaded " +"build. This directory is a site directory, which means that :file:`.pth` " +"files in it will be processed." msgstr "" -#: ../../library/site.rst:218 msgid "" -"Path to the base directory for the user site-packages. Can be ``None`` " -"if :func:`getuserbase` hasn't been called yet. Default value " -"is :file:`~/.local` for UNIX and macOS non-framework builds, :file:`~/" -"Library/Python/{X.Y}` for macOS framework builds, and :file:`{%APPDATA%}\\" -"\\Python` for Windows. This value is used to compute the installation " -"directories for scripts, data files, Python modules, etc. for the :ref:`user " -"installation scheme `. See " -"also :envvar:`PYTHONUSERBASE`." +"Path to the base directory for the user site-packages. Can be ``None`` if :" +"func:`getuserbase` hasn't been called yet. Default value is :file:`~/." +"local` for UNIX and macOS non-framework builds, :file:`~/Library/Python/{X.Y}" +"` for macOS framework builds, and :file:`{%APPDATA%}\\\\Python` for " +"Windows. This value is used to compute the installation directories for " +"scripts, data files, Python modules, etc. for the :ref:`user installation " +"scheme `. See also :envvar:`PYTHONUSERBASE`." msgstr "" -#: ../../library/site.rst:230 msgid "" "Adds all the standard site-specific directories to the module search path. " "This function is called automatically when this module is imported, unless " "the Python interpreter was started with the :option:`-S` flag." msgstr "" -#: ../../library/site.rst:234 msgid "This function used to be called unconditionally." msgstr "" -#: ../../library/site.rst:240 msgid "" "Add a directory to sys.path and process its :file:`.pth` files. Typically " "used in :mod:`sitecustomize` or :mod:`usercustomize` (see above)." msgstr "" -#: ../../library/site.rst:246 msgid "Return a list containing all global site-packages directories." msgstr "" -#: ../../library/site.rst:253 msgid "" "Return the path of the user base directory, :data:`USER_BASE`. If it is not " -"initialized yet, this function will also set it, " -"respecting :envvar:`PYTHONUSERBASE`." +"initialized yet, this function will also set it, respecting :envvar:" +"`PYTHONUSERBASE`." msgstr "" -#: ../../library/site.rst:262 msgid "" -"Return the path of the user-specific site-packages " -"directory, :data:`USER_SITE`. If it is not initialized yet, this function " -"will also set it, respecting :data:`USER_BASE`. To determine if the user-" -"specific site-packages was added to ``sys.path`` :data:`ENABLE_USER_SITE` " -"should be used." +"Return the path of the user-specific site-packages directory, :data:" +"`USER_SITE`. If it is not initialized yet, this function will also set it, " +"respecting :data:`USER_BASE`. To determine if the user-specific site-" +"packages was added to ``sys.path`` :data:`ENABLE_USER_SITE` should be used." msgstr "" -#: ../../library/site.rst:274 msgid "Command Line Interface" msgstr "" -#: ../../library/site.rst:278 msgid "" "The :mod:`site` module also provides a way to get the user directories from " "the command line:" msgstr "" -#: ../../library/site.rst:281 msgid "" "$ python -m site --user-site\n" "/home/user/.local/lib/python3.11/site-packages" msgstr "" -#: ../../library/site.rst:286 msgid "" -"If it is called without arguments, it will print the contents " -"of :data:`sys.path` on the standard output, followed by the value " -"of :data:`USER_BASE` and whether the directory exists, then the same thing " -"for :data:`USER_SITE`, and finally the value of :data:`ENABLE_USER_SITE`." +"If it is called without arguments, it will print the contents of :data:`sys." +"path` on the standard output, followed by the value of :data:`USER_BASE` and " +"whether the directory exists, then the same thing for :data:`USER_SITE`, and " +"finally the value of :data:`ENABLE_USER_SITE`." msgstr "" -#: ../../library/site.rst:293 msgid "Print the path to the user base directory." msgstr "" -#: ../../library/site.rst:297 msgid "Print the path to the user site-packages directory." msgstr "" -#: ../../library/site.rst:299 msgid "" "If both options are given, user base and user site will be printed (always " "in this order), separated by :data:`os.pathsep`." msgstr "" -#: ../../library/site.rst:302 msgid "" "If any option is given, the script will exit with one of these values: ``0`` " "if the user site-packages directory is enabled, ``1`` if it was disabled by " @@ -362,58 +310,44 @@ msgid "" "administrator, and a value greater than 2 if there is an error." msgstr "" -#: ../../library/site.rst:309 msgid ":pep:`370` -- Per user site-packages directory" msgstr "" -#: ../../library/site.rst:310 msgid ":ref:`sys-path-init` -- The initialization of :data:`sys.path`." msgstr "" -#: ../../library/site.rst:16 msgid "module" msgstr "" -#: ../../library/site.rst:16 msgid "search" msgstr "" -#: ../../library/site.rst:16 ../../library/site.rst:98 msgid "path" msgstr "" -#: ../../library/site.rst:29 msgid "site-packages" msgstr "" -#: ../../library/site.rst:29 msgid "directory" msgstr "" -#: ../../library/site.rst:69 msgid "# (hash)" msgstr "" -#: ../../library/site.rst:69 msgid "comment" msgstr "" -#: ../../library/site.rst:69 msgid "statement" msgstr "" -#: ../../library/site.rst:69 msgid "import" msgstr "" -#: ../../library/site.rst:98 msgid "package" msgstr "" -#: ../../library/site.rst:98 msgid "configuration" msgstr "" -#: ../../library/site.rst:98 msgid "file" msgstr "" diff --git a/library/smtpd.po b/library/smtpd.po index 2053fbc..f25221f 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,24 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/smtpd.rst:2 msgid ":mod:`!smtpd` --- SMTP Server" msgstr "" -#: ../../library/smtpd.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.12 ` after being " -"deprecated in Python 3.6. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.12 ` after being deprecated in " +"Python 3.6. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/smtpd.rst:14 msgid "" "A possible replacement is the third-party :pypi:`aiosmtpd` library. This " "library is not maintained or supported by the Python core team." msgstr "" -#: ../../library/smtpd.rst:17 msgid "" "The last version of Python that provided the :mod:`!smtpd` module was " "`Python 3.11 `_." diff --git a/library/smtplib.po b/library/smtplib.po index f26a88d..2b32966 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/smtplib.rst:2 msgid ":mod:`!smtplib` --- SMTP protocol client" msgstr "" -#: ../../library/smtplib.rst:9 msgid "**Source code:** :source:`Lib/smtplib.py`" msgstr "" -#: ../../library/smtplib.rst:17 msgid "" "The :mod:`smtplib` module defines an SMTP client session object that can be " "used to send mail to any internet machine with an SMTP or ESMTP listener " @@ -34,52 +31,44 @@ msgid "" "Mail Transfer Protocol) and :rfc:`1869` (SMTP Service Extensions)." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/smtplib.rst:26 msgid "" "An :class:`SMTP` instance encapsulates an SMTP connection. It has methods " "that support a full repertoire of SMTP and ESMTP operations. If the optional " "*host* and *port* parameters are given, the SMTP :meth:`connect` method is " "called with those parameters during initialization. If specified, " "*local_hostname* is used as the FQDN of the local host in the HELO/EHLO " -"command. Otherwise, the local hostname is found " -"using :func:`socket.getfqdn`. If the :meth:`connect` call returns anything " -"other than a success code, an :exc:`SMTPConnectError` is raised. The " -"optional *timeout* parameter specifies a timeout in seconds for blocking " -"operations like the connection attempt (if not specified, the global default " -"timeout setting will be used). If the timeout expires, :exc:`TimeoutError` " -"is raised. The optional *source_address* parameter allows binding to some " -"specific source address in a machine with multiple network interfaces, and/" -"or to some specific source TCP port. It takes a 2-tuple ``(host, port)``, " -"for the socket to bind to as its source address before connecting. If " -"omitted (or if *host* or *port* are ``''`` and/or ``0`` respectively) the OS " -"default behavior will be used." +"command. Otherwise, the local hostname is found using :func:`socket." +"getfqdn`. If the :meth:`connect` call returns anything other than a success " +"code, an :exc:`SMTPConnectError` is raised. The optional *timeout* parameter " +"specifies a timeout in seconds for blocking operations like the connection " +"attempt (if not specified, the global default timeout setting will be " +"used). If the timeout expires, :exc:`TimeoutError` is raised. The optional " +"*source_address* parameter allows binding to some specific source address in " +"a machine with multiple network interfaces, and/or to some specific source " +"TCP port. It takes a 2-tuple ``(host, port)``, for the socket to bind to as " +"its source address before connecting. If omitted (or if *host* or *port* are " +"``''`` and/or ``0`` respectively) the OS default behavior will be used." msgstr "" -#: ../../library/smtplib.rst:44 msgid "" -"For normal use, you should only require the initialization/" -"connect, :meth:`sendmail`, and :meth:`SMTP.quit` methods. An example is " -"included below." +"For normal use, you should only require the initialization/connect, :meth:" +"`sendmail`, and :meth:`SMTP.quit` methods. An example is included below." msgstr "" -#: ../../library/smtplib.rst:48 msgid "" "The :class:`SMTP` class supports the :keyword:`with` statement. When used " -"like this, the SMTP ``QUIT`` command is issued automatically when " -"the :keyword:`!with` statement exits. E.g.::" +"like this, the SMTP ``QUIT`` command is issued automatically when the :" +"keyword:`!with` statement exits. E.g.::" msgstr "" -#: ../../library/smtplib.rst:52 msgid "" ">>> from smtplib import SMTP\n" ">>> with SMTP(\"domain.org\") as smtp:\n" @@ -89,37 +78,31 @@ msgid "" ">>>" msgstr "" -#: ../../library/smtplib.rst:59 ../../library/smtplib.rst:61 msgid "" -"All commands will raise an :ref:`auditing event ` " -"``smtplib.SMTP.send`` with arguments ``self`` and ``data``, where ``data`` " -"is the bytes about to be sent to the remote host." +"All commands will raise an :ref:`auditing event ` ``smtplib.SMTP." +"send`` with arguments ``self`` and ``data``, where ``data`` is the bytes " +"about to be sent to the remote host." msgstr "" -#: ../../library/smtplib.rst:65 msgid "Support for the :keyword:`with` statement was added." msgstr "" -#: ../../library/smtplib.rst:68 msgid "*source_address* argument was added." msgstr "" -#: ../../library/smtplib.rst:71 msgid "The SMTPUTF8 extension (:rfc:`6531`) is now supported." msgstr "" -#: ../../library/smtplib.rst:74 msgid "" -"If the *timeout* parameter is set to be zero, it will raise " -"a :class:`ValueError` to prevent the creation of a non-blocking socket." +"If the *timeout* parameter is set to be zero, it will raise a :class:" +"`ValueError` to prevent the creation of a non-blocking socket." msgstr "" -#: ../../library/smtplib.rst:81 msgid "" -"An :class:`SMTP_SSL` instance behaves exactly the same as instances " -"of :class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL " -"is required from the beginning of the connection and using :meth:`starttls` " -"is not appropriate. If *host* is not specified, the local host is used. If " +"An :class:`SMTP_SSL` instance behaves exactly the same as instances of :" +"class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is " +"required from the beginning of the connection and using :meth:`starttls` is " +"not appropriate. If *host* is not specified, the local host is used. If " "*port* is zero, the standard SMTP-over-SSL port (465) is used. The optional " "arguments *local_hostname*, *timeout* and *source_address* have the same " "meaning as they do in the :class:`SMTP` class. *context*, also optional, " @@ -128,74 +111,60 @@ msgid "" "practices." msgstr "" -#: ../../library/smtplib.rst:92 ../../library/smtplib.rst:415 msgid "*context* was added." msgstr "" -#: ../../library/smtplib.rst:95 msgid "The *source_address* argument was added." msgstr "" -#: ../../library/smtplib.rst:98 msgid "" -"The class now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: ../../library/smtplib.rst:103 msgid "" -"If the *timeout* parameter is set to be zero, it will raise " -"a :class:`ValueError` to prevent the creation of a non-blocking socket" +"If the *timeout* parameter is set to be zero, it will raise a :class:" +"`ValueError` to prevent the creation of a non-blocking socket" msgstr "" -#: ../../library/smtplib.rst:107 ../../library/smtplib.rst:403 msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -#: ../../library/smtplib.rst:113 msgid "" "The LMTP protocol, which is very similar to ESMTP, is heavily based on the " -"standard SMTP client. It's common to use Unix sockets for LMTP, so " -"our :meth:`connect` method must support that as well as a regular host:port " -"server. The optional arguments *local_hostname* and *source_address* have " -"the same meaning as they do in the :class:`SMTP` class. To specify a Unix " -"socket, you must use an absolute path for *host*, starting with a '/'." +"standard SMTP client. It's common to use Unix sockets for LMTP, so our :meth:" +"`connect` method must support that as well as a regular host:port server. " +"The optional arguments *local_hostname* and *source_address* have the same " +"meaning as they do in the :class:`SMTP` class. To specify a Unix socket, you " +"must use an absolute path for *host*, starting with a '/'." msgstr "" -#: ../../library/smtplib.rst:120 msgid "" "Authentication is supported, using the regular SMTP mechanism. When using a " "Unix socket, LMTP generally don't support or require any authentication, but " "your mileage might vary." msgstr "" -#: ../../library/smtplib.rst:124 msgid "The optional *timeout* parameter was added." msgstr "" -#: ../../library/smtplib.rst:128 msgid "A nice selection of exceptions is defined as well:" msgstr "" -#: ../../library/smtplib.rst:133 msgid "" "Subclass of :exc:`OSError` that is the base exception class for all the " "other exceptions provided by this module." msgstr "" -#: ../../library/smtplib.rst:136 msgid "SMTPException became subclass of :exc:`OSError`" msgstr "" -#: ../../library/smtplib.rst:142 msgid "" "This exception is raised when the server unexpectedly disconnects, or when " "an attempt is made to use the :class:`SMTP` instance before connecting it to " "a server." msgstr "" -#: ../../library/smtplib.rst:149 msgid "" "Base class for all exceptions that include an SMTP error code. These " "exceptions are generated in some instances when the SMTP server returns an " @@ -203,72 +172,58 @@ msgid "" "the error, and the :attr:`smtp_error` attribute is set to the error message." msgstr "" -#: ../../library/smtplib.rst:157 msgid "" -"Sender address refused. In addition to the attributes set by on " -"all :exc:`SMTPResponseException` exceptions, this sets 'sender' to the " -"string that the SMTP server refused." +"Sender address refused. In addition to the attributes set by on all :exc:" +"`SMTPResponseException` exceptions, this sets 'sender' to the string that " +"the SMTP server refused." msgstr "" -#: ../../library/smtplib.rst:164 msgid "" "All recipient addresses refused. The errors for each recipient are " "accessible through the attribute :attr:`recipients`, which is a dictionary " "of exactly the same sort as :meth:`SMTP.sendmail` returns." msgstr "" -#: ../../library/smtplib.rst:171 msgid "The SMTP server refused to accept the message data." msgstr "" -#: ../../library/smtplib.rst:176 msgid "Error occurred during establishment of a connection with the server." msgstr "" -#: ../../library/smtplib.rst:181 msgid "The server refused our ``HELO`` message." msgstr "" -#: ../../library/smtplib.rst:186 msgid "The command or option attempted is not supported by the server." msgstr "" -#: ../../library/smtplib.rst:193 msgid "" "SMTP authentication went wrong. Most probably the server didn't accept the " "username/password combination provided." msgstr "" -#: ../../library/smtplib.rst:199 msgid ":rfc:`821` - Simple Mail Transfer Protocol" msgstr "" -#: ../../library/smtplib.rst:200 msgid "" "Protocol definition for SMTP. This document covers the model, operating " "procedure, and protocol details for SMTP." msgstr "" -#: ../../library/smtplib.rst:203 msgid ":rfc:`1869` - SMTP Service Extensions" msgstr "" -#: ../../library/smtplib.rst:204 msgid "" "Definition of the ESMTP extensions for SMTP. This describes a framework for " "extending SMTP with new commands, supporting dynamic discovery of the " "commands provided by the server, and defines a few additional commands." msgstr "" -#: ../../library/smtplib.rst:212 msgid "SMTP Objects" msgstr "" -#: ../../library/smtplib.rst:214 msgid "An :class:`SMTP` instance has the following methods:" msgstr "" -#: ../../library/smtplib.rst:219 msgid "" "Set the debug output level. A value of 1 or ``True`` for *level* results in " "debug messages for connection and for all messages sent to and received from " @@ -276,36 +231,30 @@ msgid "" "timestamped." msgstr "" -#: ../../library/smtplib.rst:224 msgid "Added debuglevel 2." msgstr "" -#: ../../library/smtplib.rst:229 msgid "" "Send a command *cmd* to the server. The optional argument *args* is simply " "concatenated to the command, separated by a space." msgstr "" -#: ../../library/smtplib.rst:232 msgid "" "This returns a 2-tuple composed of a numeric response code and the actual " "response line (multiline responses are joined into one long line.)" msgstr "" -#: ../../library/smtplib.rst:235 msgid "" "In normal operation it should not be necessary to call this method " "explicitly. It is used to implement other methods and may be useful for " "testing private extensions." msgstr "" -#: ../../library/smtplib.rst:239 msgid "" -"If the connection to the server is lost while waiting for the " -"reply, :exc:`SMTPServerDisconnected` will be raised." +"If the connection to the server is lost while waiting for the reply, :exc:" +"`SMTPServerDisconnected` will be raised." msgstr "" -#: ../../library/smtplib.rst:245 msgid "" "Connect to a host on a given port. The defaults are to connect to the local " "host at the standard SMTP port (25). If the hostname ends with a colon " @@ -316,13 +265,11 @@ msgid "" "connection response." msgstr "" -#: ../../library/smtplib.rst:253 msgid "" "Raises an :ref:`auditing event ` ``smtplib.connect`` with " "arguments ``self``, ``host``, ``port``." msgstr "" -#: ../../library/smtplib.rst:258 msgid "" "Identify yourself to the SMTP server using ``HELO``. The hostname argument " "defaults to the fully qualified domain name of the local host. The message " @@ -330,56 +277,46 @@ msgid "" "object." msgstr "" -#: ../../library/smtplib.rst:263 msgid "" "In normal operation it should not be necessary to call this method " "explicitly. It will be implicitly called by the :meth:`sendmail` when " "necessary." msgstr "" -#: ../../library/smtplib.rst:269 msgid "" "Identify yourself to an ESMTP server using ``EHLO``. The hostname argument " "defaults to the fully qualified domain name of the local host. Examine the " "response for ESMTP option and store them for use by :meth:`has_extn`. Also " "sets several informational attributes: the message returned by the server is " "stored as the :attr:`ehlo_resp` attribute, :attr:`does_esmtp` is set to " -"``True`` or ``False`` depending on whether the server supports ESMTP, " -"and :attr:`esmtp_features` will be a dictionary containing the names of the " -"SMTP service extensions this server supports, and their parameters (if any)." +"``True`` or ``False`` depending on whether the server supports ESMTP, and :" +"attr:`esmtp_features` will be a dictionary containing the names of the SMTP " +"service extensions this server supports, and their parameters (if any)." msgstr "" -#: ../../library/smtplib.rst:279 msgid "" "Unless you wish to use :meth:`has_extn` before sending mail, it should not " "be necessary to call this method explicitly. It will be implicitly called " "by :meth:`sendmail` when necessary." msgstr "" -#: ../../library/smtplib.rst:285 msgid "" "This method calls :meth:`ehlo` and/or :meth:`helo` if there has been no " "previous ``EHLO`` or ``HELO`` command this session. It tries ESMTP ``EHLO`` " "first." msgstr "" -#: ../../library/smtplib.rst:289 ../../library/smtplib.rst:318 -#: ../../library/smtplib.rst:406 ../../library/smtplib.rst:475 msgid ":exc:`SMTPHeloError`" msgstr "" -#: ../../library/smtplib.rst:290 ../../library/smtplib.rst:319 -#: ../../library/smtplib.rst:407 ../../library/smtplib.rst:476 msgid "The server didn't reply properly to the ``HELO`` greeting." msgstr "" -#: ../../library/smtplib.rst:294 msgid "" "Return :const:`True` if *name* is in the set of SMTP service extensions " "returned by the server, :const:`False` otherwise. Case is ignored." msgstr "" -#: ../../library/smtplib.rst:300 msgid "" "Check the validity of an address on this server using SMTP ``VRFY``. Returns " "a tuple consisting of code 250 and a full :rfc:`822` address (including " @@ -387,11 +324,9 @@ msgid "" "code of 400 or greater and an error string." msgstr "" -#: ../../library/smtplib.rst:307 msgid "Many sites disable SMTP ``VRFY`` in order to foil spammers." msgstr "" -#: ../../library/smtplib.rst:312 msgid "" "Log in on an SMTP server that requires authentication. The arguments are the " "username and the password to authenticate with. If there has been no " @@ -400,32 +335,24 @@ msgid "" "successful, or may raise the following exceptions:" msgstr "" -#: ../../library/smtplib.rst:321 msgid ":exc:`SMTPAuthenticationError`" msgstr "" -#: ../../library/smtplib.rst:322 msgid "The server didn't accept the username/password combination." msgstr "" -#: ../../library/smtplib.rst:324 ../../library/smtplib.rst:409 -#: ../../library/smtplib.rst:485 msgid ":exc:`SMTPNotSupportedError`" msgstr "" -#: ../../library/smtplib.rst:325 msgid "The ``AUTH`` command is not supported by the server." msgstr "" -#: ../../library/smtplib.rst:327 msgid ":exc:`SMTPException`" msgstr "" -#: ../../library/smtplib.rst:328 msgid "No suitable authentication method was found." msgstr "" -#: ../../library/smtplib.rst:330 msgid "" "Each of the authentication methods supported by :mod:`smtplib` are tried in " "turn if they are advertised as supported by the server. See :meth:`auth` " @@ -433,7 +360,6 @@ msgid "" "passed through to :meth:`auth`." msgstr "" -#: ../../library/smtplib.rst:335 msgid "" "Optional keyword argument *initial_response_ok* specifies whether, for " "authentication methods that support it, an \"initial response\" as specified " @@ -441,35 +367,29 @@ msgid "" "requiring a challenge/response." msgstr "" -#: ../../library/smtplib.rst:340 msgid "" ":exc:`SMTPNotSupportedError` may be raised, and the *initial_response_ok* " "parameter was added." msgstr "" -#: ../../library/smtplib.rst:347 msgid "" "Issue an ``SMTP`` ``AUTH`` command for the specified authentication " "*mechanism*, and handle the challenge response via *authobject*." msgstr "" -#: ../../library/smtplib.rst:350 msgid "" "*mechanism* specifies which authentication mechanism is to be used as " "argument to the ``AUTH`` command; the valid values are those listed in the " "``auth`` element of :attr:`esmtp_features`." msgstr "" -#: ../../library/smtplib.rst:354 msgid "" "*authobject* must be a callable object taking an optional single argument::" msgstr "" -#: ../../library/smtplib.rst:356 msgid "data = authobject(challenge=None)" msgstr "" -#: ../../library/smtplib.rst:358 msgid "" "If optional keyword argument *initial_response_ok* is true, ``authobject()`` " "will be called first with no argument. It can return the :rfc:`4954` " @@ -480,7 +400,6 @@ msgid "" "false, then ``authobject()`` will not be called first with ``None``." msgstr "" -#: ../../library/smtplib.rst:366 msgid "" "If the initial response check returns ``None``, or if *initial_response_ok* " "is false, ``authobject()`` will be called to process the server's challenge " @@ -489,16 +408,14 @@ msgid "" "the server." msgstr "" -#: ../../library/smtplib.rst:372 msgid "" "The ``SMTP`` class provides ``authobjects`` for the ``CRAM-MD5``, ``PLAIN``, " -"and ``LOGIN`` mechanisms; they are named ``SMTP.auth_cram_md5``, " -"``SMTP.auth_plain``, and ``SMTP.auth_login`` respectively. They all require " -"that the ``user`` and ``password`` properties of the ``SMTP`` instance are " -"set to appropriate values." +"and ``LOGIN`` mechanisms; they are named ``SMTP.auth_cram_md5``, ``SMTP." +"auth_plain``, and ``SMTP.auth_login`` respectively. They all require that " +"the ``user`` and ``password`` properties of the ``SMTP`` instance are set to " +"appropriate values." msgstr "" -#: ../../library/smtplib.rst:378 msgid "" "User code does not normally need to call ``auth`` directly, but can instead " "call the :meth:`login` method, which will try each of the above mechanisms " @@ -507,59 +424,47 @@ msgid "" "by :mod:`smtplib`." msgstr "" -#: ../../library/smtplib.rst:389 msgid "" "Put the SMTP connection in TLS (Transport Layer Security) mode. All SMTP " "commands that follow will be encrypted. You should then call :meth:`ehlo` " "again." msgstr "" -#: ../../library/smtplib.rst:393 msgid "" -"If *keyfile* and *certfile* are provided, they are used to create " -"an :class:`ssl.SSLContext`." +"If *keyfile* and *certfile* are provided, they are used to create an :class:" +"`ssl.SSLContext`." msgstr "" -#: ../../library/smtplib.rst:396 msgid "" "Optional *context* parameter is an :class:`ssl.SSLContext` object; This is " "an alternative to using a keyfile and a certfile and if specified both " "*keyfile* and *certfile* should be ``None``." msgstr "" -#: ../../library/smtplib.rst:400 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first." msgstr "" -#: ../../library/smtplib.rst:410 msgid "The server does not support the STARTTLS extension." msgstr "" -#: ../../library/smtplib.rst:412 msgid ":exc:`RuntimeError`" msgstr "" -#: ../../library/smtplib.rst:413 msgid "SSL/TLS support is not available to your Python interpreter." msgstr "" -#: ../../library/smtplib.rst:418 msgid "" -"The method now supports hostname check " -"with :attr:`SSLContext.check_hostname` and *Server Name Indicator* " -"(see :const:`~ssl.HAS_SNI`)." +"The method now supports hostname check with :attr:`SSLContext." +"check_hostname` and *Server Name Indicator* (see :const:`~ssl.HAS_SNI`)." msgstr "" -#: ../../library/smtplib.rst:423 msgid "" -"The error raised for lack of STARTTLS support is now " -"the :exc:`SMTPNotSupportedError` subclass instead of the " -"base :exc:`SMTPException`." +"The error raised for lack of STARTTLS support is now the :exc:" +"`SMTPNotSupportedError` subclass instead of the base :exc:`SMTPException`." msgstr "" -#: ../../library/smtplib.rst:431 msgid "" "Send mail. The required arguments are an :rfc:`822` from-address string, a " "list of :rfc:`822` to-address strings (a bare string will be treated as a " @@ -572,14 +477,12 @@ msgid "" "the message.)" msgstr "" -#: ../../library/smtplib.rst:442 msgid "" "The *from_addr* and *to_addrs* parameters are used to construct the message " "envelope used by the transport agents. ``sendmail`` does not modify the " "message headers in any way." msgstr "" -#: ../../library/smtplib.rst:446 msgid "" "*msg* may be a string containing characters in the ASCII range, or a byte " "string. A string is encoded to bytes using the ascii codec, and lone " @@ -587,7 +490,6 @@ msgid "" "byte string is not modified." msgstr "" -#: ../../library/smtplib.rst:451 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first. If the server does ESMTP, message " @@ -596,7 +498,6 @@ msgid "" "will be tried and ESMTP options suppressed." msgstr "" -#: ../../library/smtplib.rst:457 msgid "" "This method will return normally if the mail is accepted for at least one " "recipient. Otherwise it will raise an exception. That is, if this method " @@ -606,21 +507,17 @@ msgid "" "SMTP error code and the accompanying error message sent by the server." msgstr "" -#: ../../library/smtplib.rst:464 msgid "" "If ``SMTPUTF8`` is included in *mail_options*, and the server supports it, " "*from_addr* and *to_addrs* may contain non-ASCII characters." msgstr "" -#: ../../library/smtplib.rst:467 msgid "This method may raise the following exceptions:" msgstr "" -#: ../../library/smtplib.rst:469 msgid ":exc:`SMTPRecipientsRefused`" msgstr "" -#: ../../library/smtplib.rst:470 msgid "" "All recipients were refused. Nobody got the mail. The :attr:`recipients` " "attribute of the exception object is a dictionary with information about the " @@ -628,47 +525,38 @@ msgid "" "accepted)." msgstr "" -#: ../../library/smtplib.rst:478 msgid ":exc:`SMTPSenderRefused`" msgstr "" -#: ../../library/smtplib.rst:479 msgid "The server didn't accept the *from_addr*." msgstr "" -#: ../../library/smtplib.rst:481 msgid ":exc:`SMTPDataError`" msgstr "" -#: ../../library/smtplib.rst:482 msgid "" "The server replied with an unexpected error code (other than a refusal of a " "recipient)." msgstr "" -#: ../../library/smtplib.rst:486 msgid "" "``SMTPUTF8`` was given in the *mail_options* but is not supported by the " "server." msgstr "" -#: ../../library/smtplib.rst:489 msgid "" "Unless otherwise noted, the connection will be open even after an exception " "is raised." msgstr "" -#: ../../library/smtplib.rst:492 msgid "*msg* may be a byte string." msgstr "" -#: ../../library/smtplib.rst:495 msgid "" "``SMTPUTF8`` support added, and :exc:`SMTPNotSupportedError` may be raised " "if ``SMTPUTF8`` is specified but the server does not support it." msgstr "" -#: ../../library/smtplib.rst:503 msgid "" "This is a convenience method for calling :meth:`sendmail` with the message " "represented by an :class:`email.message.Message` object. The arguments have " @@ -676,48 +564,42 @@ msgid "" "object." msgstr "" -#: ../../library/smtplib.rst:508 msgid "" "If *from_addr* is ``None`` or *to_addrs* is ``None``, ``send_message`` fills " "those arguments with addresses extracted from the headers of *msg* as " "specified in :rfc:`5322`\\: *from_addr* is set to the :mailheader:`Sender` " "field if it is present, and otherwise to the :mailheader:`From` field. " -"*to_addrs* combines the values (if any) of " -"the :mailheader:`To`, :mailheader:`Cc`, and :mailheader:`Bcc` fields from " -"*msg*. If exactly one set of :mailheader:`Resent-*` headers appear in the " -"message, the regular headers are ignored and the :mailheader:`Resent-*` " -"headers are used instead. If the message contains more than one set " -"of :mailheader:`Resent-*` headers, a :exc:`ValueError` is raised, since " -"there is no way to unambiguously detect the most recent set " -"of :mailheader:`Resent-` headers." -msgstr "" - -#: ../../library/smtplib.rst:520 -msgid "" -"``send_message`` serializes *msg* " -"using :class:`~email.generator.BytesGenerator` with ``\\r\\n`` as the " -"*linesep*, and calls :meth:`sendmail` to transmit the resulting message. " -"Regardless of the values of *from_addr* and *to_addrs*, ``send_message`` " -"does not transmit any :mailheader:`Bcc` or :mailheader:`Resent-Bcc` headers " -"that may appear in *msg*. If any of the addresses in *from_addr* and " -"*to_addrs* contain non-ASCII characters and the server does not advertise " -"``SMTPUTF8`` support, an :exc:`SMTPNotSupportedError` is raised. Otherwise " -"the ``Message`` is serialized with a clone of its :mod:`~email.policy` with " -"the :attr:`~email.policy.EmailPolicy.utf8` attribute set to ``True``, and " -"``SMTPUTF8`` and ``BODY=8BITMIME`` are added to *mail_options*." -msgstr "" - -#: ../../library/smtplib.rst:534 +"*to_addrs* combines the values (if any) of the :mailheader:`To`, :mailheader:" +"`Cc`, and :mailheader:`Bcc` fields from *msg*. If exactly one set of :" +"mailheader:`Resent-*` headers appear in the message, the regular headers are " +"ignored and the :mailheader:`Resent-*` headers are used instead. If the " +"message contains more than one set of :mailheader:`Resent-*` headers, a :exc:" +"`ValueError` is raised, since there is no way to unambiguously detect the " +"most recent set of :mailheader:`Resent-` headers." +msgstr "" + +msgid "" +"``send_message`` serializes *msg* using :class:`~email.generator." +"BytesGenerator` with ``\\r\\n`` as the *linesep*, and calls :meth:`sendmail` " +"to transmit the resulting message. Regardless of the values of *from_addr* " +"and *to_addrs*, ``send_message`` does not transmit any :mailheader:`Bcc` or :" +"mailheader:`Resent-Bcc` headers that may appear in *msg*. If any of the " +"addresses in *from_addr* and *to_addrs* contain non-ASCII characters and the " +"server does not advertise ``SMTPUTF8`` support, an :exc:" +"`SMTPNotSupportedError` is raised. Otherwise the ``Message`` is serialized " +"with a clone of its :mod:`~email.policy` with the :attr:`~email.policy." +"EmailPolicy.utf8` attribute set to ``True``, and ``SMTPUTF8`` and " +"``BODY=8BITMIME`` are added to *mail_options*." +msgstr "" + msgid "Support for internationalized addresses (``SMTPUTF8``)." msgstr "" -#: ../../library/smtplib.rst:540 msgid "" "Terminate the SMTP session and close the connection. Return the result of " "the SMTP ``QUIT`` command." msgstr "" -#: ../../library/smtplib.rst:544 msgid "" "Low-level methods corresponding to the standard SMTP/ESMTP commands " "``HELP``, ``RSET``, ``NOOP``, ``MAIL``, ``RCPT``, and ``DATA`` are also " @@ -725,11 +607,9 @@ msgid "" "documented here. For details, consult the module code." msgstr "" -#: ../../library/smtplib.rst:553 msgid "SMTP Example" msgstr "" -#: ../../library/smtplib.rst:555 msgid "" "This example prompts the user for addresses needed in the message envelope " "('To' and 'From' addresses), and the message to be delivered. Note that the " @@ -739,7 +619,6 @@ msgid "" "headers explicitly::" msgstr "" -#: ../../library/smtplib.rst:561 msgid "" "import smtplib\n" "\n" @@ -769,21 +648,17 @@ msgid "" "server.quit()" msgstr "" -#: ../../library/smtplib.rst:590 msgid "" "In general, you will want to use the :mod:`email` package's features to " -"construct an email message, which you can then send " -"via :meth:`~smtplib.SMTP.send_message`; see :ref:`email-examples`." +"construct an email message, which you can then send via :meth:`~smtplib.SMTP." +"send_message`; see :ref:`email-examples`." msgstr "" -#: ../../library/smtplib.rst:11 msgid "SMTP" msgstr "" -#: ../../library/smtplib.rst:11 msgid "protocol" msgstr "" -#: ../../library/smtplib.rst:11 msgid "Simple Mail Transfer Protocol" msgstr "" diff --git a/library/sndhdr.po b/library/sndhdr.po index 1c31267..db21351 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sndhdr.rst:2 msgid ":mod:`!sndhdr` --- Determine type of sound file" msgstr "" -#: ../../library/sndhdr.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/sndhdr.rst:14 msgid "" -"Possible replacements are third-party modules from " -"PyPI: :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-magic`. These " -"are not supported or maintained by the Python core team." +"Possible replacements are third-party modules from PyPI: :pypi:`filetype`, :" +"pypi:`puremagic`, or :pypi:`python-magic`. These are not supported or " +"maintained by the Python core team." msgstr "" -#: ../../library/sndhdr.rst:18 msgid "" "The last version of Python that provided the :mod:`!sndhdr` module was " "`Python 3.12 `_." diff --git a/library/socket.po b/library/socket.po index a809ffd..f80dbcf 100644 --- a/library/socket.po +++ b/library/socket.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,113 +22,67 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/socket.rst:2 msgid ":mod:`!socket` --- Low-level networking interface" msgstr "" -#: ../../library/socket.rst:7 msgid "**Source code:** :source:`Lib/socket.py`" msgstr "" -#: ../../library/socket.rst:11 msgid "" "This module provides access to the BSD *socket* interface. It is available " "on all modern Unix systems, Windows, MacOS, and probably additional " "platforms." msgstr "" -#: ../../library/socket.rst:16 msgid "" "Some behavior may be platform dependent, since calls are made to the " "operating system socket APIs." msgstr "" -#: ../../library/socket.rst:196 ../../library/socket.rst:206 -#: ../../library/socket.rst:234 ../../library/socket.rst:241 -#: ../../library/socket.rst:258 ../../library/socket.rst:408 -#: ../../library/socket.rst:494 ../../library/socket.rst:511 -#: ../../library/socket.rst:526 ../../library/socket.rst:537 -#: ../../library/socket.rst:546 ../../library/socket.rst:555 -#: ../../library/socket.rst:566 ../../library/socket.rst:578 -#: ../../library/socket.rst:589 ../../library/socket.rst:602 -#: ../../library/socket.rst:630 ../../library/socket.rst:642 -#: ../../library/socket.rst:648 ../../library/socket.rst:680 -#: ../../library/socket.rst:733 ../../library/socket.rst:745 -#: ../../library/socket.rst:754 ../../library/socket.rst:769 -#: ../../library/socket.rst:778 ../../library/socket.rst:786 -#: ../../library/socket.rst:803 ../../library/socket.rst:818 -#: ../../library/socket.rst:828 ../../library/socket.rst:1017 -#: ../../library/socket.rst:1142 ../../library/socket.rst:1158 -#: ../../library/socket.rst:1171 ../../library/socket.rst:1186 -#: ../../library/socket.rst:1203 ../../library/socket.rst:1214 -#: ../../library/socket.rst:1225 ../../library/socket.rst:1236 -#: ../../library/socket.rst:1325 ../../library/socket.rst:1345 -#: ../../library/socket.rst:1371 ../../library/socket.rst:1394 -#: ../../library/socket.rst:1423 ../../library/socket.rst:1434 -#: ../../library/socket.rst:1461 ../../library/socket.rst:1478 -#: ../../library/socket.rst:1495 ../../library/socket.rst:1509 -#: ../../library/socket.rst:1560 ../../library/socket.rst:1607 -#: ../../library/socket.rst:1621 ../../library/socket.rst:1641 -#: ../../library/socket.rst:1688 ../../library/socket.rst:1721 -#: ../../library/socket.rst:1734 ../../library/socket.rst:1859 -#: ../../library/socket.rst:1903 ../../library/socket.rst:2011 -#: ../../library/socket.rst:2029 ../../library/socket.rst:2113 -#: ../../library/socket.rst:2123 ../../library/socket.rst:2135 -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/socket.rst:24 msgid "" "The Python interface is a straightforward transliteration of the Unix system " "call and library interface for sockets to Python's object-oriented style: " "the :func:`~socket.socket` function returns a :dfn:`socket object` whose " "methods implement the various socket system calls. Parameter types are " -"somewhat higher-level than in the C interface: as with :meth:`read` " -"and :meth:`write` operations on Python files, buffer allocation on receive " +"somewhat higher-level than in the C interface: as with :meth:`read` and :" +"meth:`write` operations on Python files, buffer allocation on receive " "operations is automatic, and buffer length is implicit on send operations." msgstr "" -#: ../../library/socket.rst:35 msgid "Module :mod:`socketserver`" msgstr "" -#: ../../library/socket.rst:36 msgid "Classes that simplify writing network servers." msgstr "" -#: ../../library/socket.rst:38 msgid "Module :mod:`ssl`" msgstr "" -#: ../../library/socket.rst:39 msgid "A TLS/SSL wrapper for socket objects." msgstr "" -#: ../../library/socket.rst:43 msgid "Socket families" msgstr "" -#: ../../library/socket.rst:45 msgid "" "Depending on the system and the build options, various socket families are " "supported by this module." msgstr "" -#: ../../library/socket.rst:48 msgid "" "The address format required by a particular socket object is automatically " "selected based on the address family specified when the socket object was " "created. Socket addresses are represented as follows:" msgstr "" -#: ../../library/socket.rst:52 msgid "" "The address of an :const:`AF_UNIX` socket bound to a file system node is " "represented as a string, using the file system encoding and the " @@ -140,17 +94,13 @@ msgid "" "for either type of address when passing it as an argument." msgstr "" -#: ../../library/socket.rst:62 msgid "" "Previously, :const:`AF_UNIX` socket paths were assumed to use UTF-8 encoding." msgstr "" -#: ../../library/socket.rst:66 ../../library/socket.rst:1308 -#: ../../library/socket.rst:1350 ../../library/socket.rst:2107 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "" -#: ../../library/socket.rst:71 msgid "" "A pair ``(host, port)`` is used for the :const:`AF_INET` address family, " "where *host* is a string representing either a hostname in internet domain " @@ -158,17 +108,15 @@ msgid "" "``'100.50.200.5'``, and *port* is an integer." msgstr "" -#: ../../library/socket.rst:76 msgid "" "For IPv4 addresses, two special forms are accepted instead of a host " "address: ``''`` represents :const:`INADDR_ANY`, which is used to bind to all " -"interfaces, and the string ``''`` " -"represents :const:`INADDR_BROADCAST`. This behavior is not compatible with " -"IPv6, therefore, you may want to avoid these if you intend to support IPv6 " -"with your Python programs." +"interfaces, and the string ``''`` represents :const:" +"`INADDR_BROADCAST`. This behavior is not compatible with IPv6, therefore, " +"you may want to avoid these if you intend to support IPv6 with your Python " +"programs." msgstr "" -#: ../../library/socket.rst:83 msgid "" "For :const:`AF_INET6` address family, a four-tuple ``(host, port, flowinfo, " "scope_id)`` is used, where *flowinfo* and *scope_id* represent the " @@ -179,18 +127,15 @@ msgid "" "addresses." msgstr "" -#: ../../library/socket.rst:90 msgid "" "For multicast addresses (with *scope_id* meaningful) *address* may not " "contain ``%scope_id`` (or ``zone id``) part. This information is superfluous " "and may be safely omitted (recommended)." msgstr "" -#: ../../library/socket.rst:95 msgid ":const:`AF_NETLINK` sockets are represented as pairs ``(pid, groups)``." msgstr "" -#: ../../library/socket.rst:97 msgid "" "Linux-only support for TIPC is available using the :const:`AF_TIPC` address " "family. TIPC is an open, non-IP based networked protocol designed for use " @@ -199,37 +144,31 @@ msgid "" "``(addr_type, v1, v2, v3 [, scope])``, where:" msgstr "" -#: ../../library/socket.rst:103 msgid "" "*addr_type* is one of :const:`TIPC_ADDR_NAMESEQ`, :const:`TIPC_ADDR_NAME`, " "or :const:`TIPC_ADDR_ID`." msgstr "" -#: ../../library/socket.rst:105 msgid "" "*scope* is one of :const:`TIPC_ZONE_SCOPE`, :const:`TIPC_CLUSTER_SCOPE`, " "and :const:`TIPC_NODE_SCOPE`." msgstr "" -#: ../../library/socket.rst:107 msgid "" "If *addr_type* is :const:`TIPC_ADDR_NAME`, then *v1* is the server type, " "*v2* is the port identifier, and *v3* should be 0." msgstr "" -#: ../../library/socket.rst:110 msgid "" "If *addr_type* is :const:`TIPC_ADDR_NAMESEQ`, then *v1* is the server type, " "*v2* is the lower port number, and *v3* is the upper port number." msgstr "" -#: ../../library/socket.rst:113 msgid "" "If *addr_type* is :const:`TIPC_ADDR_ID`, then *v1* is the node, *v2* is the " "reference, and *v3* should be set to 0." msgstr "" -#: ../../library/socket.rst:116 msgid "" "A tuple ``(interface, )`` is used for the :const:`AF_CAN` address family, " "where *interface* is a string representing a network interface name like " @@ -237,14 +176,12 @@ msgid "" "from all network interfaces of this family." msgstr "" -#: ../../library/socket.rst:121 msgid "" ":const:`CAN_ISOTP` protocol require a tuple ``(interface, rx_addr, " "tx_addr)`` where both additional parameters are unsigned long integer that " "represent a CAN identifier (standard or extended)." msgstr "" -#: ../../library/socket.rst:124 msgid "" ":const:`CAN_J1939` protocol require a tuple ``(interface, name, pgn, addr)`` " "where additional parameters are 64-bit unsigned integer representing the ECU " @@ -252,7 +189,6 @@ msgid "" "(PGN), and an 8-bit integer representing the address." msgstr "" -#: ../../library/socket.rst:129 msgid "" "A string or a tuple ``(id, unit)`` is used for the :const:`SYSPROTO_CONTROL` " "protocol of the :const:`PF_SYSTEM` family. The string is the name of a " @@ -261,182 +197,148 @@ msgid "" "used." msgstr "" -#: ../../library/socket.rst:137 msgid "" ":const:`AF_BLUETOOTH` supports the following protocols and address formats:" msgstr "" -#: ../../library/socket.rst:140 msgid "" ":const:`BTPROTO_L2CAP` accepts a tuple ``(bdaddr, psm[, cid[, " "bdaddr_type]])`` where:" msgstr "" -#: ../../library/socket.rst:143 msgid "``bdaddr`` is a string specifying the Bluetooth address." msgstr "" -#: ../../library/socket.rst:144 msgid "``psm`` is an integer specifying the Protocol/Service Multiplexer." msgstr "" -#: ../../library/socket.rst:145 msgid "" "``cid`` is an optional integer specifying the Channel Identifier. If not " "given, defaults to zero." msgstr "" -#: ../../library/socket.rst:147 msgid "" -"``bdaddr_type`` is an optional integer specifying the address type; one " -"of :const:`BDADDR_BREDR` " -"(default), :const:`BDADDR_LE_PUBLIC`, :const:`BDADDR_LE_RANDOM`." +"``bdaddr_type`` is an optional integer specifying the address type; one of :" +"const:`BDADDR_BREDR` (default), :const:`BDADDR_LE_PUBLIC`, :const:" +"`BDADDR_LE_RANDOM`." msgstr "" -#: ../../library/socket.rst:151 msgid "Added ``cid`` and ``bdaddr_type`` fields." msgstr "" -#: ../../library/socket.rst:154 msgid "" ":const:`BTPROTO_RFCOMM` accepts ``(bdaddr, channel)`` where ``bdaddr`` is " "the Bluetooth address as a string and ``channel`` is an integer." msgstr "" -#: ../../library/socket.rst:157 msgid ":const:`BTPROTO_HCI` accepts a format that depends on your OS." msgstr "" -#: ../../library/socket.rst:159 msgid "" "On Linux it accepts an integer ``device_id`` or a tuple ``(device_id, " "[channel])`` where ``device_id`` specifies the number of the Bluetooth " -"device, and ``channel`` is an optional integer specifying the HCI channel " -"(:const:`HCI_CHANNEL_RAW` by default)." +"device, and ``channel`` is an optional integer specifying the HCI channel (:" +"const:`HCI_CHANNEL_RAW` by default)." msgstr "" -#: ../../library/socket.rst:164 msgid "" "On FreeBSD, NetBSD and DragonFly BSD it accepts ``bdaddr`` where ``bdaddr`` " "is the Bluetooth address as a string." msgstr "" -#: ../../library/socket.rst:167 msgid "NetBSD and DragonFlyBSD support added." msgstr "" -#: ../../library/socket.rst:170 ../../library/socket.rst:181 msgid "FreeBSD support added." msgstr "" -#: ../../library/socket.rst:173 msgid "" "Added ``channel`` field. ``device_id`` not packed in a tuple is now accepted." msgstr "" -#: ../../library/socket.rst:177 msgid "" ":const:`BTPROTO_SCO` accepts ``bdaddr`` where ``bdaddr`` is the Bluetooth " "address as a string or a :class:`bytes` object. (ex. ``'12:23:34:45:56:67'`` " "or ``b'12:23:34:45:56:67'``)" msgstr "" -#: ../../library/socket.rst:184 msgid "" ":const:`AF_ALG` is a Linux-only socket based interface to Kernel " "cryptography. An algorithm socket is configured with a tuple of two to four " "elements ``(type, name [, feat [, mask]])``, where:" msgstr "" -#: ../../library/socket.rst:188 msgid "" "*type* is the algorithm type as string, e.g. ``aead``, ``hash``, " "``skcipher`` or ``rng``." msgstr "" -#: ../../library/socket.rst:191 msgid "" "*name* is the algorithm name and operation mode as string, e.g. ``sha256``, " "``hmac(sha256)``, ``cbc(aes)`` or ``drbg_nopr_ctr_aes256``." msgstr "" -#: ../../library/socket.rst:194 msgid "*feat* and *mask* are unsigned 32bit integers." msgstr "" -#: ../../library/socket.rst:198 msgid "Some algorithm types require more recent Kernels." msgstr "" -#: ../../library/socket.rst:202 msgid "" ":const:`AF_VSOCK` allows communication between virtual machines and their " "hosts. The sockets are represented as a ``(CID, port)`` tuple where the " "context ID or CID and port are integers." msgstr "" -#: ../../library/socket.rst:208 msgid "See :manpage:`vsock(7)`" msgstr "" -#: ../../library/socket.rst:212 msgid "" ":const:`AF_PACKET` is a low-level interface directly to network devices. The " "addresses are represented by the tuple ``(ifname, proto[, pkttype[, hatype[, " "addr]]])`` where:" msgstr "" -#: ../../library/socket.rst:216 msgid "*ifname* - String specifying the device name." msgstr "" -#: ../../library/socket.rst:217 msgid "" "*proto* - The Ethernet protocol number. May be :data:`ETH_P_ALL` to capture " "all protocols, one of the :ref:`ETHERTYPE_* constants ` or any other Ethernet protocol number." msgstr "" -#: ../../library/socket.rst:221 msgid "*pkttype* - Optional integer specifying the packet type:" msgstr "" -#: ../../library/socket.rst:223 msgid "``PACKET_HOST`` (the default) - Packet addressed to the local host." msgstr "" -#: ../../library/socket.rst:224 msgid "``PACKET_BROADCAST`` - Physical-layer broadcast packet." msgstr "" -#: ../../library/socket.rst:225 msgid "" "``PACKET_MULTICAST`` - Packet sent to a physical-layer multicast address." msgstr "" -#: ../../library/socket.rst:226 msgid "" "``PACKET_OTHERHOST`` - Packet to some other host that has been caught by a " "device driver in promiscuous mode." msgstr "" -#: ../../library/socket.rst:228 msgid "" "``PACKET_OUTGOING`` - Packet originating from the local host that is looped " "back to a packet socket." msgstr "" -#: ../../library/socket.rst:230 msgid "*hatype* - Optional integer specifying the ARP hardware address type." msgstr "" -#: ../../library/socket.rst:231 msgid "" "*addr* - Optional bytes-like object specifying the hardware physical " "address, whose interpretation depends on the device." msgstr "" -#: ../../library/socket.rst:236 msgid "" ":const:`AF_QIPCRTR` is a Linux-only socket based interface for communicating " "with services running on co-processors in Qualcomm platforms. The address " @@ -444,7 +346,6 @@ msgid "" "*port* are non-negative integers." msgstr "" -#: ../../library/socket.rst:245 msgid "" ":const:`IPPROTO_UDPLITE` is a variant of UDP which allows you to specify " "what portion of a packet is covered with the checksum. It adds two socket " @@ -455,14 +356,12 @@ msgid "" "of their data. In both cases ``length`` should be in ``range(8, 2**16, 8)``." msgstr "" -#: ../../library/socket.rst:254 msgid "" "Such a socket should be constructed with ``socket(AF_INET, SOCK_DGRAM, " "IPPROTO_UDPLITE)`` for IPv4 or ``socket(AF_INET6, SOCK_DGRAM, " "IPPROTO_UDPLITE)`` for IPv6." msgstr "" -#: ../../library/socket.rst:262 msgid "" ":const:`AF_HYPERV` is a Windows-only socket based interface for " "communicating with Hyper-V hosts and guests. The address family is " @@ -470,49 +369,40 @@ msgid "" "``service_id`` are UUID strings." msgstr "" -#: ../../library/socket.rst:267 msgid "" "The ``vm_id`` is the virtual machine identifier or a set of known VMID " "values if the target is not a specific virtual machine. Known VMID constants " "defined on ``socket`` are:" msgstr "" -#: ../../library/socket.rst:271 msgid "``HV_GUID_ZERO``" msgstr "" -#: ../../library/socket.rst:272 msgid "``HV_GUID_BROADCAST``" msgstr "" -#: ../../library/socket.rst:273 msgid "" "``HV_GUID_WILDCARD`` - Used to bind on itself and accept connections from " "all partitions." msgstr "" -#: ../../library/socket.rst:275 msgid "" "``HV_GUID_CHILDREN`` - Used to bind on itself and accept connection from " "child partitions." msgstr "" -#: ../../library/socket.rst:277 msgid "``HV_GUID_LOOPBACK`` - Used as a target to itself." msgstr "" -#: ../../library/socket.rst:278 msgid "" "``HV_GUID_PARENT`` - When used as a bind accepts connection from the parent " "partition. When used as an address target it will connect to the parent " "partition." msgstr "" -#: ../../library/socket.rst:281 msgid "The ``service_id`` is the service identifier of the registered service." msgstr "" -#: ../../library/socket.rst:285 msgid "" "If you use a hostname in the *host* portion of IPv4/v6 socket address, the " "program may show a nondeterministic behavior, as Python uses the first " @@ -522,57 +412,45 @@ msgid "" "deterministic behavior use a numeric address in *host* portion." msgstr "" -#: ../../library/socket.rst:292 msgid "" "All errors raise exceptions. The normal exceptions for invalid argument " "types and out-of-memory conditions can be raised. Errors related to socket " "or address semantics raise :exc:`OSError` or one of its subclasses." msgstr "" -#: ../../library/socket.rst:297 msgid "" "Non-blocking mode is supported through :meth:`~socket.setblocking`. A " -"generalization of this based on timeouts is supported " -"through :meth:`~socket.settimeout`." +"generalization of this based on timeouts is supported through :meth:`~socket." +"settimeout`." msgstr "" -#: ../../library/socket.rst:303 msgid "Module contents" msgstr "" -#: ../../library/socket.rst:305 msgid "The module :mod:`socket` exports the following elements." msgstr "" -#: ../../library/socket.rst:309 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/socket.rst:313 msgid "A deprecated alias of :exc:`OSError`." msgstr "" -#: ../../library/socket.rst:315 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" -#: ../../library/socket.rst:321 msgid "" "A subclass of :exc:`OSError`, this exception is raised for address-related " -"errors, i.e. for functions that use *h_errno* in the POSIX C API, " -"including :func:`gethostbyname_ex` and :func:`gethostbyaddr`. The " -"accompanying value is a pair ``(h_errno, string)`` representing an error " -"returned by a library call. *h_errno* is a numeric value, while *string* " -"represents the description of *h_errno*, as returned by " -"the :c:func:`hstrerror` C function." +"errors, i.e. for functions that use *h_errno* in the POSIX C API, including :" +"func:`gethostbyname_ex` and :func:`gethostbyaddr`. The accompanying value is " +"a pair ``(h_errno, string)`` representing an error returned by a library " +"call. *h_errno* is a numeric value, while *string* represents the " +"description of *h_errno*, as returned by the :c:func:`hstrerror` C function." msgstr "" -#: ../../library/socket.rst:329 ../../library/socket.rst:342 -#: ../../library/socket.rst:355 msgid "This class was made a subclass of :exc:`OSError`." msgstr "" -#: ../../library/socket.rst:334 msgid "" "A subclass of :exc:`OSError`, this exception is raised for address-related " "errors by :func:`getaddrinfo` and :func:`getnameinfo`. The accompanying " @@ -582,34 +460,28 @@ msgid "" "match one of the :const:`!EAI_\\*` constants defined in this module." msgstr "" -#: ../../library/socket.rst:347 msgid "A deprecated alias of :exc:`TimeoutError`." msgstr "" -#: ../../library/socket.rst:349 msgid "" "A subclass of :exc:`OSError`, this exception is raised when a timeout occurs " -"on a socket which has had timeouts enabled via a prior call " -"to :meth:`~socket.settimeout` (or implicitly " -"through :func:`~socket.setdefaulttimeout`). The accompanying value is a " -"string whose value is currently always \"timed out\"." +"on a socket which has had timeouts enabled via a prior call to :meth:" +"`~socket.settimeout` (or implicitly through :func:`~socket." +"setdefaulttimeout`). The accompanying value is a string whose value is " +"currently always \"timed out\"." msgstr "" -#: ../../library/socket.rst:358 msgid "This class was made an alias of :exc:`TimeoutError`." msgstr "" -#: ../../library/socket.rst:363 msgid "Constants" msgstr "" -#: ../../library/socket.rst:365 msgid "" -"The AF_* and SOCK_* constants are now :class:`AddressFamily` " -"and :class:`SocketKind` :class:`.IntEnum` collections." +"The AF_* and SOCK_* constants are now :class:`AddressFamily` and :class:" +"`SocketKind` :class:`.IntEnum` collections." msgstr "" -#: ../../library/socket.rst:374 msgid "" "These constants represent the address (and protocol) families, used for the " "first argument to :func:`~socket.socket`. If the :const:`AF_UNIX` constant " @@ -617,79 +489,67 @@ msgid "" "available depending on the system." msgstr "" -#: ../../library/socket.rst:381 msgid "" ":const:`AF_UNSPEC` means that :func:`getaddrinfo` should return socket " "addresses for any address family (either IPv4, IPv6, or any other) that can " "be used." msgstr "" -#: ../../library/socket.rst:391 msgid "" -"These constants represent the socket types, used for the second argument " -"to :func:`~socket.socket`. More constants may be available depending on the " +"These constants represent the socket types, used for the second argument to :" +"func:`~socket.socket`. More constants may be available depending on the " "system. (Only :const:`SOCK_STREAM` and :const:`SOCK_DGRAM` appear to be " "generally useful.)" msgstr "" -#: ../../library/socket.rst:399 msgid "" "These two constants, if defined, can be combined with the socket types and " "allow you to set some flags atomically (thus avoiding possible race " "conditions and the need for separate calls)." msgstr "" -#: ../../library/socket.rst:405 msgid "" -"`Secure File Descriptor Handling `_ for a more thorough explanation." +"`Secure File Descriptor Handling `_ for a more thorough explanation." msgstr "" -#: ../../library/socket.rst:429 msgid "" "Many constants of these forms, documented in the Unix documentation on " "sockets and/or the IP protocol, are also defined in the socket module. They " -"are generally used in arguments to the :meth:`~socket.setsockopt` " -"and :meth:`~socket.getsockopt` methods of socket objects. In most cases, " -"only those symbols that are defined in the Unix header files are defined; " -"for a few symbols, default values are provided." +"are generally used in arguments to the :meth:`~socket.setsockopt` and :meth:" +"`~socket.getsockopt` methods of socket objects. In most cases, only those " +"symbols that are defined in the Unix header files are defined; for a few " +"symbols, default values are provided." msgstr "" -#: ../../library/socket.rst:436 msgid "" "``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " "``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` were added." msgstr "" -#: ../../library/socket.rst:440 msgid "" "Added support for ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` on Windows platforms " "when available." msgstr "" -#: ../../library/socket.rst:444 msgid "``TCP_NOTSENT_LOWAT`` was added." msgstr "" -#: ../../library/socket.rst:447 msgid "" "Added support for ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` on Windows platforms " "when available." msgstr "" -#: ../../library/socket.rst:450 msgid "" "``IP_RECVTOS`` was added. Added ``TCP_KEEPALIVE``. On MacOS this constant " "can be used in the same way that ``TCP_KEEPIDLE`` is used on Linux." msgstr "" -#: ../../library/socket.rst:455 msgid "" "Added ``TCP_CONNECTION_INFO``. On MacOS this constant can be used in the " "same way that ``TCP_INFO`` is used on Linux and BSD." msgstr "" -#: ../../library/socket.rst:459 msgid "" "Added ``SO_RTABLE`` and ``SO_USER_COOKIE``. On OpenBSD and FreeBSD " "respectively those constants can be used in the same way that ``SO_MARK`` is " @@ -705,199 +565,163 @@ msgid "" "``IP_DROP_SOURCE_MEMBERSHIP``." msgstr "" -#: ../../library/socket.rst:473 msgid "" "Added ``SO_BINDTOIFINDEX``. On Linux this constant can be used in the same " "way that ``SO_BINDTODEVICE`` is used, but with the index of a network " "interface instead of its name." msgstr "" -#: ../../library/socket.rst:478 msgid "" "Added missing ``IP_FREEBIND``, ``IP_RECVERR``, ``IPV6_RECVERR``, " "``IP_RECVTTL``, and ``IP_RECVORIGDSTADDR`` on Linux." msgstr "" -#: ../../library/socket.rst:482 msgid "Added support for ``TCP_QUICKACK`` on Windows platforms when available." msgstr "" -#: ../../library/socket.rst:491 ../../library/socket.rst:575 -#: ../../library/socket.rst:599 msgid "" "Many constants of these forms, documented in the Linux documentation, are " "also defined in the socket module." msgstr "" -#: ../../library/socket.rst:498 msgid "NetBSD support was added." msgstr "" -#: ../../library/socket.rst:501 msgid "Restored missing ``CAN_RAW_ERR_FILTER`` on Linux." msgstr "" -#: ../../library/socket.rst:507 msgid "" "CAN_BCM, in the CAN protocol family, is the broadcast manager (BCM) " "protocol. Broadcast manager constants, documented in the Linux " "documentation, are also defined in the socket module." msgstr "" -#: ../../library/socket.rst:514 msgid "" "The :data:`CAN_BCM_CAN_FD_FRAME` flag is only available on Linux >= 4.8." msgstr "" -#: ../../library/socket.rst:520 msgid "" "Enables CAN FD support in a CAN_RAW socket. This is disabled by default. " "This allows your application to send both CAN and CAN FD frames; however, " "you must accept both CAN and CAN FD frames when reading from the socket." msgstr "" -#: ../../library/socket.rst:524 ../../library/socket.rst:535 msgid "This constant is documented in the Linux documentation." msgstr "" -#: ../../library/socket.rst:532 msgid "" "Joins the applied CAN filters such that only CAN frames that match all given " "CAN filters are passed to user space." msgstr "" -#: ../../library/socket.rst:543 msgid "" "CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol. " "ISO-TP constants, documented in the Linux documentation." msgstr "" -#: ../../library/socket.rst:552 msgid "" "CAN_J1939, in the CAN protocol family, is the SAE J1939 protocol. J1939 " "constants, documented in the Linux documentation." msgstr "" -#: ../../library/socket.rst:563 msgid "" "These two constants, documented in the FreeBSD divert(4) manual page, are " "also defined in the socket module." msgstr "" -#: ../../library/socket.rst:583 msgid "" ":data:`!ETH_P_ALL` can be used in the :class:`~socket.socket` constructor as " "*proto* for the :const:`AF_PACKET` family in order to capture every packet, " "regardless of protocol." msgstr "" -#: ../../library/socket.rst:587 msgid "For more information, see the :manpage:`packet(7)` manpage." msgstr "" -#: ../../library/socket.rst:612 msgid "" "Constants for Windows' WSAIoctl(). The constants are used as arguments to " "the :meth:`~socket.socket.ioctl` method of socket objects." msgstr "" -#: ../../library/socket.rst:615 ../../library/socket.rst:1723 msgid "``SIO_LOOPBACK_FAST_PATH`` was added." msgstr "" -#: ../../library/socket.rst:621 msgid "" "TIPC related constants, matching the ones exported by the C socket API. See " "the TIPC documentation for more information." msgstr "" -#: ../../library/socket.rst:628 msgid "Constants for Linux Kernel cryptography." msgstr "" -#: ../../library/socket.rst:640 msgid "Constants for Linux host/guest communication." msgstr "" -#: ../../library/socket.rst:654 msgid "" "This constant contains a boolean value which indicates if IPv6 is supported " "on this platform." msgstr "" -#: ../../library/socket.rst:663 msgid "Integer constants for use with Bluetooth addresses." msgstr "" -#: ../../library/socket.rst:668 msgid "" "These are string constants containing Bluetooth addresses with special " "meanings. For example, :const:`BDADDR_ANY` can be used to indicate any " "address when specifying the binding socket with :const:`BTPROTO_RFCOMM`." msgstr "" -#: ../../library/socket.rst:677 msgid "" "These constants describe the Bluetooth address type when binding or " "connecting a :const:`BTPROTO_L2CAP` socket." msgstr "" -#: ../../library/socket.rst:690 msgid "" -"Used in the level argument to the :meth:`~socket.setsockopt` " -"and :meth:`~socket.getsockopt` methods of Bluetooth socket objects." +"Used in the level argument to the :meth:`~socket.setsockopt` and :meth:" +"`~socket.getsockopt` methods of Bluetooth socket objects." msgstr "" -#: ../../library/socket.rst:693 msgid "" ":const:`SOL_BLUETOOTH` is only available on Linux. Other constants are " "available if the corresponding protocol is supported." msgstr "" -#: ../../library/socket.rst:705 msgid "" "Used in the option name and value argument to the :meth:`~socket.setsockopt` " "and :meth:`~socket.getsockopt` methods of Bluetooth socket objects." msgstr "" -#: ../../library/socket.rst:708 msgid "" ":const:`!BT_*` and :const:`L2CAP_LM` are only available on Linux. :const:`!" "SO_BTH_*` are only available on Windows. Other constants may be available on " "Linux and various BSD platforms." msgstr "" -#: ../../library/socket.rst:720 msgid "" "Option names for use with :const:`BTPROTO_HCI`. Availability and format of " "the option values depend on platform." msgstr "" -#: ../../library/socket.rst:723 msgid "" "Added :const:`!SO_HCI_EVT_FILTER` and :const:`!SO_HCI_PKT_FILTER` on NetBSD " "and DragonFly BSD. Added :const:`!HCI_DATA_DIR` on FreeBSD, NetBSD and " "DragonFly BSD." msgstr "" -#: ../../library/socket.rst:730 msgid "" "The ``device_id`` value used to create an HCI socket that isn't specific to " "a single Bluetooth adapter." msgstr "" -#: ../../library/socket.rst:743 msgid "" "Possible values for ``channel`` field in the :const:`BTPROTO_HCI` address." msgstr "" -#: ../../library/socket.rst:751 msgid "" "Constant for Qualcomm's IPC router protocol, used to communicate with " "service providing remote processors." msgstr "" -#: ../../library/socket.rst:760 msgid "" "LOCAL_CREDS and LOCAL_CREDS_PERSISTENT can be used with SOCK_DGRAM, " "SOCK_STREAM sockets, equivalent to Linux/DragonFlyBSD SO_PASSCRED, while " @@ -906,126 +730,103 @@ msgid "" "message type." msgstr "" -#: ../../library/socket.rst:773 msgid "" -"Constant to optimize CPU locality, to be used in conjunction " -"with :data:`SO_REUSEPORT`." +"Constant to optimize CPU locality, to be used in conjunction with :data:" +"`SO_REUSEPORT`." msgstr "" -#: ../../library/socket.rst:782 msgid "" "Constant to enable duplicate address and port bindings with load balancing." msgstr "" -#: ../../library/socket.rst:801 msgid "Constants for Windows Hyper-V sockets for host/guest communications." msgstr "" -#: ../../library/socket.rst:814 msgid "" "`IEEE 802.3 protocol number `_. constants." msgstr "" -#: ../../library/socket.rst:826 msgid "" "These constants are used by the :meth:`~socket.socket.shutdown` method of " "socket objects." msgstr "" -#: ../../library/socket.rst:831 msgid "Functions" msgstr "" -#: ../../library/socket.rst:834 msgid "Creating sockets" msgstr "" -#: ../../library/socket.rst:836 msgid "" "The following functions all create :ref:`socket objects `." msgstr "" -#: ../../library/socket.rst:841 msgid "" "Create a new socket using the given address family, socket type and protocol " -"number. The address family should be :const:`AF_INET` (the " -"default), :const:`AF_INET6`, :const:`AF_UNIX`, :const:`AF_CAN`, :const:`AF_PACKET`, " -"or :const:`AF_RDS`. The socket type should be :const:`SOCK_STREAM` (the " -"default), :const:`SOCK_DGRAM`, :const:`SOCK_RAW` or perhaps one of the other " -"``SOCK_`` constants. The protocol number is usually zero and may be omitted " -"or in the case where the address family is :const:`AF_CAN` the protocol " -"should be one of :const:`CAN_RAW`, :const:`CAN_BCM`, :const:`CAN_ISOTP` " -"or :const:`CAN_J1939`." +"number. The address family should be :const:`AF_INET` (the default), :const:" +"`AF_INET6`, :const:`AF_UNIX`, :const:`AF_CAN`, :const:`AF_PACKET`, or :const:" +"`AF_RDS`. The socket type should be :const:`SOCK_STREAM` (the default), :" +"const:`SOCK_DGRAM`, :const:`SOCK_RAW` or perhaps one of the other ``SOCK_`` " +"constants. The protocol number is usually zero and may be omitted or in the " +"case where the address family is :const:`AF_CAN` the protocol should be one " +"of :const:`CAN_RAW`, :const:`CAN_BCM`, :const:`CAN_ISOTP` or :const:" +"`CAN_J1939`." msgstr "" -#: ../../library/socket.rst:851 msgid "" "If *fileno* is specified, the values for *family*, *type*, and *proto* are " "auto-detected from the specified file descriptor. Auto-detection can be " "overruled by calling the function with explicit *family*, *type*, or *proto* " "arguments. This only affects how Python represents e.g. the return value " -"of :meth:`socket.getpeername` but not the actual OS resource. " -"Unlike :func:`socket.fromfd`, *fileno* will return the same socket and not a " -"duplicate. This may help close a detached socket using :meth:`socket.close`." +"of :meth:`socket.getpeername` but not the actual OS resource. Unlike :func:" +"`socket.fromfd`, *fileno* will return the same socket and not a duplicate. " +"This may help close a detached socket using :meth:`socket.close`." msgstr "" -#: ../../library/socket.rst:860 ../../library/socket.rst:1006 -#: ../../library/socket.rst:1542 ../../library/socket.rst:1636 msgid "The newly created socket is :ref:`non-inheritable `." msgstr "" -#: ../../library/socket.rst:862 msgid "" "Raises an :ref:`auditing event ` ``socket.__new__`` with arguments " "``self``, ``family``, ``type``, ``protocol``." msgstr "" -#: ../../library/socket.rst:864 msgid "The AF_CAN family was added. The AF_RDS family was added." msgstr "" -#: ../../library/socket.rst:868 msgid "The CAN_BCM protocol was added." msgstr "" -#: ../../library/socket.rst:871 ../../library/socket.rst:1008 msgid "The returned socket is now non-inheritable." msgstr "" -#: ../../library/socket.rst:874 msgid "The CAN_ISOTP protocol was added." msgstr "" -#: ../../library/socket.rst:877 msgid "" "When :const:`SOCK_NONBLOCK` or :const:`SOCK_CLOEXEC` bit flags are applied " "to *type* they are cleared, and :attr:`socket.type` will not reflect them. " "They are still passed to the underlying system ``socket()`` call. Therefore," msgstr "" -#: ../../library/socket.rst:885 msgid "" "sock = socket.socket(\n" " socket.AF_INET,\n" " socket.SOCK_STREAM | socket.SOCK_NONBLOCK)" msgstr "" -#: ../../library/socket.rst:889 msgid "" "will still create a non-blocking socket on OSes that support " "``SOCK_NONBLOCK``, but ``sock.type`` will be set to ``socket.SOCK_STREAM``." msgstr "" -#: ../../library/socket.rst:893 msgid "The CAN_J1939 protocol was added." msgstr "" -#: ../../library/socket.rst:896 msgid "The IPPROTO_MPTCP protocol was added." msgstr "" -#: ../../library/socket.rst:901 msgid "" "Build a pair of connected socket objects using the given address family, " "socket type, and protocol number. Address family, socket type, and protocol " @@ -1034,25 +835,20 @@ msgid "" "default is :const:`AF_INET`." msgstr "" -#: ../../library/socket.rst:906 msgid "The newly created sockets are :ref:`non-inheritable `." msgstr "" -#: ../../library/socket.rst:908 msgid "" "The returned socket objects now support the whole socket API, rather than a " "subset." msgstr "" -#: ../../library/socket.rst:912 msgid "The returned sockets are now non-inheritable." msgstr "" -#: ../../library/socket.rst:915 msgid "Windows support added." msgstr "" -#: ../../library/socket.rst:921 msgid "" "Connect to a TCP service listening on the internet *address* (a 2-tuple " "``(host, port)``), and return the socket object. This is a higher-level " @@ -1063,21 +859,18 @@ msgid "" "IPv4 and IPv6." msgstr "" -#: ../../library/socket.rst:929 msgid "" "Passing the optional *timeout* parameter will set the timeout on the socket " "instance before attempting to connect. If no *timeout* is supplied, the " "global default timeout setting returned by :func:`getdefaulttimeout` is used." msgstr "" -#: ../../library/socket.rst:934 msgid "" "If supplied, *source_address* must be a 2-tuple ``(host, port)`` for the " "socket to bind to as its source address before connecting. If host or port " "are '' or 0 respectively the OS default behavior will be used." msgstr "" -#: ../../library/socket.rst:938 msgid "" "When a connection cannot be created, an exception is raised. By default, it " "is the exception from the last address in the list. If *all_errors* is " @@ -1085,29 +878,24 @@ msgid "" "attempts." msgstr "" -#: ../../library/socket.rst:943 msgid "*source_address* was added." msgstr "" -#: ../../library/socket.rst:946 msgid "*all_errors* was added." msgstr "" -#: ../../library/socket.rst:952 msgid "" "Convenience function which creates a TCP socket bound to *address* (a 2-" "tuple ``(host, port)``) and returns the socket object." msgstr "" -#: ../../library/socket.rst:955 msgid "" "*family* should be either :data:`AF_INET` or :data:`AF_INET6`. *backlog* is " "the queue size passed to :meth:`socket.listen`; if not specified , a default " -"reasonable value is chosen. *reuse_port* dictates whether to set " -"the :data:`SO_REUSEPORT` socket option." +"reasonable value is chosen. *reuse_port* dictates whether to set the :data:" +"`SO_REUSEPORT` socket option." msgstr "" -#: ../../library/socket.rst:960 msgid "" "If *dualstack_ipv6* is true, *family* is :data:`AF_INET6` and the platform " "supports it the socket will be able to accept both IPv4 and IPv6 " @@ -1120,7 +908,6 @@ msgid "" "parameter can be used in conjunction with :func:`has_dualstack_ipv6`:" msgstr "" -#: ../../library/socket.rst:973 msgid "" "import socket\n" "\n" @@ -1132,65 +919,55 @@ msgid "" " s = socket.create_server(addr)" msgstr "" -#: ../../library/socket.rst:982 msgid "" "On POSIX platforms the :data:`SO_REUSEADDR` socket option is set in order to " "immediately reuse previous sockets which were bound on the same *address* " "and remained in TIME_WAIT state." msgstr "" -#: ../../library/socket.rst:990 msgid "" "Return ``True`` if the platform supports creating a TCP socket which can " "handle both IPv4 and IPv6 connections." msgstr "" -#: ../../library/socket.rst:997 msgid "" "Duplicate the file descriptor *fd* (an integer as returned by a file " "object's :meth:`~io.IOBase.fileno` method) and build a socket object from " -"the result. Address family, socket type and protocol number are as for " -"the :func:`~socket.socket` function above. The file descriptor should refer " -"to a socket, but this is not checked --- subsequent operations on the object " -"may fail if the file descriptor is invalid. This function is rarely needed, " -"but can be used to get or set socket options on a socket passed to a program " -"as standard input or output (such as a server started by the Unix inet " +"the result. Address family, socket type and protocol number are as for the :" +"func:`~socket.socket` function above. The file descriptor should refer to a " +"socket, but this is not checked --- subsequent operations on the object may " +"fail if the file descriptor is invalid. This function is rarely needed, but " +"can be used to get or set socket options on a socket passed to a program as " +"standard input or output (such as a server started by the Unix inet " "daemon). The socket is assumed to be in blocking mode." msgstr "" -#: ../../library/socket.rst:1014 msgid "" "Instantiate a socket from data obtained from the :meth:`socket.share` " "method. The socket is assumed to be in blocking mode." msgstr "" -#: ../../library/socket.rst:1024 msgid "" "This is a Python type object that represents the socket object type. It is " "the same as ``type(socket(...))``." msgstr "" -#: ../../library/socket.rst:1029 msgid "Other functions" msgstr "" -#: ../../library/socket.rst:1031 msgid "The :mod:`socket` module also offers various network-related services:" msgstr "" -#: ../../library/socket.rst:1036 msgid "" "Close a socket file descriptor. This is like :func:`os.close`, but for " "sockets. On some platforms (most noticeable Windows) :func:`os.close` does " "not work for socket file descriptors." msgstr "" -#: ../../library/socket.rst:1044 msgid "" "This function wraps the C function ``getaddrinfo`` of the underlying system." msgstr "" -#: ../../library/socket.rst:1046 msgid "" "Translate the *host*/*port* argument into a sequence of 5-tuples that " "contain all the necessary arguments for creating a socket connected to that " @@ -1200,7 +977,6 @@ msgid "" "and *port*, you can pass ``NULL`` to the underlying C API." msgstr "" -#: ../../library/socket.rst:1053 msgid "" "The *family*, *type* and *proto* arguments can be optionally specified in " "order to provide options and limit the list of addresses returned. Pass " @@ -1208,36 +984,30 @@ msgid "" "limit the results. See the note below for details." msgstr "" -#: ../../library/socket.rst:1058 msgid "" "The *flags* argument can be one or several of the ``AI_*`` constants, and " -"will influence how results are computed and returned. For " -"example, :const:`AI_NUMERICHOST` will disable domain name resolution and " -"will raise an error if *host* is a domain name." +"will influence how results are computed and returned. For example, :const:" +"`AI_NUMERICHOST` will disable domain name resolution and will raise an error " +"if *host* is a domain name." msgstr "" -#: ../../library/socket.rst:1063 msgid "The function returns a list of 5-tuples with the following structure:" msgstr "" -#: ../../library/socket.rst:1065 msgid "``(family, type, proto, canonname, sockaddr)``" msgstr "" -#: ../../library/socket.rst:1067 msgid "" "In these tuples, *family*, *type*, *proto* are all integers and are meant to " "be passed to the :func:`~socket.socket` function. *canonname* will be a " -"string representing the canonical name of the *host* " -"if :const:`AI_CANONNAME` is part of the *flags* argument; else *canonname* " -"will be empty. *sockaddr* is a tuple describing a socket address, whose " -"format depends on the returned *family* (a ``(address, port)`` 2-tuple " -"for :const:`AF_INET`, a ``(address, port, flowinfo, scope_id)`` 4-tuple " -"for :const:`AF_INET6`), and is meant to be passed to " -"the :meth:`socket.connect` method." +"string representing the canonical name of the *host* if :const:" +"`AI_CANONNAME` is part of the *flags* argument; else *canonname* will be " +"empty. *sockaddr* is a tuple describing a socket address, whose format " +"depends on the returned *family* (a ``(address, port)`` 2-tuple for :const:" +"`AF_INET`, a ``(address, port, flowinfo, scope_id)`` 4-tuple for :const:" +"`AF_INET6`), and is meant to be passed to the :meth:`socket.connect` method." msgstr "" -#: ../../library/socket.rst:1079 msgid "" "If you intend to use results from :func:`!getaddrinfo` to create a socket " "(rather than, for example, retrieve *canonname*), consider limiting the " @@ -1246,13 +1016,11 @@ msgid "" "application can handle." msgstr "" -#: ../../library/socket.rst:1085 msgid "" "The behavior with default values of *family*, *type*, *proto* and *flags* is " "system-specific." msgstr "" -#: ../../library/socket.rst:1088 msgid "" "Many systems (for example, most Linux configurations) will return a sorted " "list of all matching addresses. These addresses should generally be tried in " @@ -1262,27 +1030,23 @@ msgid "" "attempts." msgstr "" -#: ../../library/socket.rst:1095 msgid "" "Some systems will, however, only return a single address. (For example, this " "was reported on Solaris and AIX configurations.) On these systems, limiting " "the *type* and/or *proto* helps ensure that this address is usable." msgstr "" -#: ../../library/socket.rst:1100 msgid "" "Raises an :ref:`auditing event ` ``socket.getaddrinfo`` with " "arguments ``host``, ``port``, ``family``, ``type``, ``protocol``." msgstr "" -#: ../../library/socket.rst:1102 msgid "" "The following example fetches address information for a hypothetical TCP " "connection to ``example.org`` on port 80 (results may differ on your system " "if IPv6 isn't enabled)::" msgstr "" -#: ../../library/socket.rst:1106 msgid "" ">>> socket.getaddrinfo(\"example.org\", 80, proto=socket.IPPROTO_TCP)\n" "[(socket.AF_INET6, socket.SOCK_STREAM,\n" @@ -1291,17 +1055,14 @@ msgid "" " 6, '', ('93.184.216.34', 80))]" msgstr "" -#: ../../library/socket.rst:1112 msgid "parameters can now be passed using keyword arguments." msgstr "" -#: ../../library/socket.rst:1115 msgid "" "for IPv6 multicast addresses, string representing an address will not " "contain ``%scope_id`` part." msgstr "" -#: ../../library/socket.rst:1123 msgid "" "Return a fully qualified domain name for *name*. If *name* is omitted or " "empty, it is interpreted as the local host. To find the fully qualified " @@ -1312,7 +1073,6 @@ msgid "" "``'0.0.0.0'``, the hostname from :func:`gethostname` is returned." msgstr "" -#: ../../library/socket.rst:1134 msgid "" "Translate a host name to IPv4 address format. The IPv4 address is returned " "as a string, such as ``'100.50.200.5'``. If the host name is an IPv4 " @@ -1322,13 +1082,11 @@ msgid "" "stack support." msgstr "" -#: ../../library/socket.rst:1140 ../../library/socket.rst:1156 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostbyname`` with " "argument ``hostname``." msgstr "" -#: ../../library/socket.rst:1147 msgid "" "Translate a host name to IPv4 address format, extended interface. Return a 3-" "tuple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the host's " @@ -1340,42 +1098,36 @@ msgid "" "stack support." msgstr "" -#: ../../library/socket.rst:1163 msgid "" "Return a string containing the hostname of the machine where the Python " "interpreter is currently executing." msgstr "" -#: ../../library/socket.rst:1166 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostname`` with no " "arguments." msgstr "" -#: ../../library/socket.rst:1168 msgid "" "Note: :func:`gethostname` doesn't always return the fully qualified domain " "name; use :func:`getfqdn` for that." msgstr "" -#: ../../library/socket.rst:1176 msgid "" "Return a 3-tuple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is " "the primary host name responding to the given *ip_address*, *aliaslist* is a " "(possibly empty) list of alternative host names for the same address, and " "*ipaddrlist* is a list of IPv4/v6 addresses for the same interface on the " "same host (most likely containing only a single address). To find the fully " -"qualified domain name, use the " -"function :func:`getfqdn`. :func:`gethostbyaddr` supports both IPv4 and IPv6." +"qualified domain name, use the function :func:`getfqdn`. :func:" +"`gethostbyaddr` supports both IPv4 and IPv6." msgstr "" -#: ../../library/socket.rst:1184 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostbyaddr`` with " "argument ``ip_address``." msgstr "" -#: ../../library/socket.rst:1191 msgid "" "Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. " "Depending on the settings of *flags*, the result can contain a fully " @@ -1383,93 +1135,78 @@ msgid "" "Similarly, *port* can contain a string port name or a numeric port number." msgstr "" -#: ../../library/socket.rst:1196 msgid "" "For IPv6 addresses, ``%scope_id`` is appended to the host part if *sockaddr* " "contains meaningful *scope_id*. Usually this happens for multicast addresses." msgstr "" -#: ../../library/socket.rst:1199 msgid "" "For more information about *flags* you can consult :manpage:`getnameinfo(3)`." msgstr "" -#: ../../library/socket.rst:1201 msgid "" "Raises an :ref:`auditing event ` ``socket.getnameinfo`` with " "argument ``sockaddr``." msgstr "" -#: ../../library/socket.rst:1208 msgid "" "Translate an internet protocol name (for example, ``'icmp'``) to a constant " -"suitable for passing as the (optional) third argument to " -"the :func:`~socket.socket` function. This is usually only needed for " -"sockets opened in \"raw\" mode (:const:`SOCK_RAW`); for the normal socket " -"modes, the correct protocol is chosen automatically if the protocol is " -"omitted or zero." +"suitable for passing as the (optional) third argument to the :func:`~socket." +"socket` function. This is usually only needed for sockets opened in \"raw\" " +"mode (:const:`SOCK_RAW`); for the normal socket modes, the correct protocol " +"is chosen automatically if the protocol is omitted or zero." msgstr "" -#: ../../library/socket.rst:1219 msgid "" "Translate an internet service name and protocol name to a port number for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " "``'udp'``, otherwise any protocol will match." msgstr "" -#: ../../library/socket.rst:1223 msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyname`` with " "arguments ``servicename``, ``protocolname``." msgstr "" -#: ../../library/socket.rst:1230 msgid "" "Translate an internet port number and protocol name to a service name for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " "``'udp'``, otherwise any protocol will match." msgstr "" -#: ../../library/socket.rst:1234 msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyport`` with " "arguments ``port``, ``protocolname``." msgstr "" -#: ../../library/socket.rst:1241 msgid "" "Convert 32-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 4-byte swap operation." msgstr "" -#: ../../library/socket.rst:1248 msgid "" "Convert 16-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 2-byte swap operation." msgstr "" -#: ../../library/socket.rst:1252 ../../library/socket.rst:1270 msgid "" "Raises :exc:`OverflowError` if *x* does not fit in a 16-bit unsigned integer." msgstr "" -#: ../../library/socket.rst:1259 msgid "" "Convert 32-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 4-byte swap operation." msgstr "" -#: ../../library/socket.rst:1266 msgid "" "Convert 16-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 2-byte swap operation." msgstr "" -#: ../../library/socket.rst:1277 msgid "" "Convert an IPv4 address from dotted-quad string format (for example, " "'123.45.67.89') to 32-bit packed binary format, as a bytes object four " @@ -1478,26 +1215,22 @@ msgid "" "which is the C type for the 32-bit packed binary this function returns." msgstr "" -#: ../../library/socket.rst:1283 msgid "" ":func:`inet_aton` also accepts strings with less than three dots; see the " "Unix manual page :manpage:`inet(3)` for details." msgstr "" -#: ../../library/socket.rst:1286 msgid "" -"If the IPv4 address string passed to this function is " -"invalid, :exc:`OSError` will be raised. Note that exactly what is valid " -"depends on the underlying C implementation of :c:func:`inet_aton`." +"If the IPv4 address string passed to this function is invalid, :exc:" +"`OSError` will be raised. Note that exactly what is valid depends on the " +"underlying C implementation of :c:func:`inet_aton`." msgstr "" -#: ../../library/socket.rst:1290 msgid "" ":func:`inet_aton` does not support IPv6, and :func:`inet_pton` should be " "used instead for IPv4/v6 dual stack support." msgstr "" -#: ../../library/socket.rst:1296 msgid "" "Convert a 32-bit packed IPv4 address (a :term:`bytes-like object` four bytes " "in length) to its standard dotted-quad string representation (for example, " @@ -1507,7 +1240,6 @@ msgid "" "argument." msgstr "" -#: ../../library/socket.rst:1303 msgid "" "If the byte sequence passed to this function is not exactly 4 bytes in " "length, :exc:`OSError` will be raised. :func:`inet_ntoa` does not support " @@ -1515,28 +1247,24 @@ msgid "" "support." msgstr "" -#: ../../library/socket.rst:1314 msgid "" "Convert an IP address from its family-specific string format to a packed, " "binary format. :func:`inet_pton` is useful when a library or network " -"protocol calls for an object of type :c:struct:`in_addr` (similar " -"to :func:`inet_aton`) or :c:struct:`in6_addr`." +"protocol calls for an object of type :c:struct:`in_addr` (similar to :func:" +"`inet_aton`) or :c:struct:`in6_addr`." msgstr "" -#: ../../library/socket.rst:1319 msgid "" -"Supported values for *address_family* are currently :const:`AF_INET` " -"and :const:`AF_INET6`. If the IP address string *ip_string* is " -"invalid, :exc:`OSError` will be raised. Note that exactly what is valid " -"depends on both the value of *address_family* and the underlying " -"implementation of :c:func:`inet_pton`." +"Supported values for *address_family* are currently :const:`AF_INET` and :" +"const:`AF_INET6`. If the IP address string *ip_string* is invalid, :exc:" +"`OSError` will be raised. Note that exactly what is valid depends on both " +"the value of *address_family* and the underlying implementation of :c:func:" +"`inet_pton`." msgstr "" -#: ../../library/socket.rst:1327 ../../library/socket.rst:1347 msgid "Windows support added" msgstr "" -#: ../../library/socket.rst:1333 msgid "" "Convert a packed IP address (a :term:`bytes-like object` of some number of " "bytes) to its standard, family-specific string representation (for example, " @@ -1545,32 +1273,26 @@ msgid "" "(similar to :func:`inet_ntoa`) or :c:struct:`in6_addr`." msgstr "" -#: ../../library/socket.rst:1340 msgid "" -"Supported values for *address_family* are currently :const:`AF_INET` " -"and :const:`AF_INET6`. If the bytes object *packed_ip* is not the correct " -"length for the specified address family, :exc:`ValueError` will be " -"raised. :exc:`OSError` is raised for errors from the call " -"to :func:`inet_ntop`." +"Supported values for *address_family* are currently :const:`AF_INET` and :" +"const:`AF_INET6`. If the bytes object *packed_ip* is not the correct length " +"for the specified address family, :exc:`ValueError` will be raised. :exc:" +"`OSError` is raised for errors from the call to :func:`inet_ntop`." msgstr "" -#: ../../library/socket.rst:1362 msgid "" "Return the total length, without trailing padding, of an ancillary data item " "with associated data of the given *length*. This value can often be used as " "the buffer size for :meth:`~socket.recvmsg` to receive a single item of " -"ancillary data, but :rfc:`3542` requires portable applications to " -"use :func:`CMSG_SPACE` and thus include space for padding, even when the " -"item will be the last in the buffer. Raises :exc:`OverflowError` if " -"*length* is outside the permissible range of values." +"ancillary data, but :rfc:`3542` requires portable applications to use :func:" +"`CMSG_SPACE` and thus include space for padding, even when the item will be " +"the last in the buffer. Raises :exc:`OverflowError` if *length* is outside " +"the permissible range of values." msgstr "" -#: ../../library/socket.rst:1373 ../../library/socket.rst:1861 -#: ../../library/socket.rst:1905 ../../library/socket.rst:2013 msgid "Most Unix platforms." msgstr "" -#: ../../library/socket.rst:1380 msgid "" "Return the buffer size needed for :meth:`~socket.recvmsg` to receive an " "ancillary data item with associated data of the given *length*, along with " @@ -1580,7 +1302,6 @@ msgid "" "values." msgstr "" -#: ../../library/socket.rst:1388 msgid "" "Note that some systems might support ancillary data without providing this " "function. Also note that setting the buffer size using the results of this " @@ -1588,140 +1309,112 @@ msgid "" "received, since additional data may be able to fit into the padding area." msgstr "" -#: ../../library/socket.rst:1396 msgid "most Unix platforms." msgstr "" -#: ../../library/socket.rst:1403 msgid "" "Return the default timeout in seconds (float) for new socket objects. A " "value of ``None`` indicates that new socket objects have no timeout. When " "the socket module is first imported, the default is ``None``." msgstr "" -#: ../../library/socket.rst:1410 msgid "" "Set the default timeout in seconds (float) for new socket objects. When the " -"socket module is first imported, the default is ``None``. " -"See :meth:`~socket.settimeout` for possible values and their respective " -"meanings." +"socket module is first imported, the default is ``None``. See :meth:" +"`~socket.settimeout` for possible values and their respective meanings." msgstr "" -#: ../../library/socket.rst:1418 msgid "" "Set the machine's hostname to *name*. This will raise an :exc:`OSError` if " "you don't have enough rights." msgstr "" -#: ../../library/socket.rst:1421 msgid "" "Raises an :ref:`auditing event ` ``socket.sethostname`` with " "argument ``name``." msgstr "" -#: ../../library/socket.rst:1430 msgid "" "Return a list of network interface information (index int, name string) " "tuples. :exc:`OSError` if the system call fails." msgstr "" -#: ../../library/socket.rst:1438 ../../library/socket.rst:1465 -#: ../../library/socket.rst:1482 msgid "Windows support was added." msgstr "" -#: ../../library/socket.rst:1443 msgid "" "On Windows network interfaces have different names in different contexts " "(all names are examples):" msgstr "" -#: ../../library/socket.rst:1446 msgid "UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``" msgstr "" -#: ../../library/socket.rst:1447 msgid "name: ``ethernet_32770``" msgstr "" -#: ../../library/socket.rst:1448 msgid "friendly name: ``vEthernet (nat)``" msgstr "" -#: ../../library/socket.rst:1449 msgid "description: ``Hyper-V Virtual Ethernet Adapter``" msgstr "" -#: ../../library/socket.rst:1451 msgid "" "This function returns names of the second form from the list, " "``ethernet_32770`` in this example case." msgstr "" -#: ../../library/socket.rst:1457 msgid "" -"Return a network interface index number corresponding to an interface " -"name. :exc:`OSError` if no interface with the given name exists." +"Return a network interface index number corresponding to an interface name. :" +"exc:`OSError` if no interface with the given name exists." msgstr "" -#: ../../library/socket.rst:1469 ../../library/socket.rst:1486 msgid "\"Interface name\" is a name as documented in :func:`if_nameindex`." msgstr "" -#: ../../library/socket.rst:1474 msgid "" -"Return a network interface name corresponding to an interface index " -"number. :exc:`OSError` if no interface with the given index exists." +"Return a network interface name corresponding to an interface index number. :" +"exc:`OSError` if no interface with the given index exists." msgstr "" -#: ../../library/socket.rst:1491 msgid "" "Send the list of file descriptors *fds* over an :const:`AF_UNIX` socket " -"*sock*. The *fds* parameter is a sequence of file descriptors. " -"Consult :meth:`~socket.sendmsg` for the documentation of these parameters." +"*sock*. The *fds* parameter is a sequence of file descriptors. Consult :meth:" +"`~socket.sendmsg` for the documentation of these parameters." msgstr "" -#: ../../library/socket.rst:1497 msgid "" "Unix platforms supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` " "mechanism." msgstr "" -#: ../../library/socket.rst:1505 msgid "" "Receive up to *maxfds* file descriptors from an :const:`AF_UNIX` socket " -"*sock*. Return ``(msg, list(fds), flags, addr)``. " -"Consult :meth:`~socket.recvmsg` for the documentation of these parameters." +"*sock*. Return ``(msg, list(fds), flags, addr)``. Consult :meth:`~socket." +"recvmsg` for the documentation of these parameters." msgstr "" -#: ../../library/socket.rst:1511 msgid "" "Unix platforms supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` " "mechanism." msgstr "" -#: ../../library/socket.rst:1518 msgid "Any truncated integers at the end of the list of file descriptors." msgstr "" -#: ../../library/socket.rst:1524 msgid "Socket Objects" msgstr "" -#: ../../library/socket.rst:1526 msgid "" -"Socket objects have the following methods. Except " -"for :meth:`~socket.makefile`, these correspond to Unix system calls " -"applicable to sockets." +"Socket objects have the following methods. Except for :meth:`~socket." +"makefile`, these correspond to Unix system calls applicable to sockets." msgstr "" -#: ../../library/socket.rst:1530 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`~socket.close`." msgstr "" -#: ../../library/socket.rst:1537 msgid "" "Accept a connection. The socket must be bound to an address and listening " "for connections. The return value is a pair ``(conn, address)`` where *conn* " @@ -1730,33 +1423,25 @@ msgid "" "connection." msgstr "" -#: ../../library/socket.rst:1544 ../../library/socket.rst:1638 msgid "The socket is now non-inheritable." msgstr "" -#: ../../library/socket.rst:1547 ../../library/socket.rst:1774 -#: ../../library/socket.rst:1788 ../../library/socket.rst:1865 -#: ../../library/socket.rst:1938 ../../library/socket.rst:1957 -#: ../../library/socket.rst:1974 ../../library/socket.rst:2019 msgid "" "If the system call is interrupted and the signal handler does not raise an " -"exception, the method now retries the system call instead of raising " -"an :exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +"exception, the method now retries the system call instead of raising an :exc:" +"`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" -#: ../../library/socket.rst:1555 msgid "" "Bind the socket to *address*. The socket must not already be bound. (The " "format of *address* depends on the address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1558 msgid "" "Raises an :ref:`auditing event ` ``socket.bind`` with arguments " "``self``, ``address``." msgstr "" -#: ../../library/socket.rst:1565 msgid "" "Mark the socket closed. The underlying system resource (e.g. a file " "descriptor) is also closed when all file objects from :meth:`makefile` are " @@ -1765,57 +1450,49 @@ msgid "" "flushed)." msgstr "" -#: ../../library/socket.rst:1571 msgid "" "Sockets are automatically closed when they are garbage-collected, but it is " "recommended to :meth:`close` them explicitly, or to use a :keyword:`with` " "statement around them." msgstr "" -#: ../../library/socket.rst:1575 msgid "" -":exc:`OSError` is now raised if an error occurs when the " -"underlying :c:func:`close` call is made." +":exc:`OSError` is now raised if an error occurs when the underlying :c:func:" +"`close` call is made." msgstr "" -#: ../../library/socket.rst:1581 msgid "" ":meth:`close` releases the resource associated with a connection but does " "not necessarily close the connection immediately. If you want to close the " "connection in a timely fashion, call :meth:`shutdown` before :meth:`close`." msgstr "" -#: ../../library/socket.rst:1589 msgid "" "Connect to a remote socket at *address*. (The format of *address* depends on " "the address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1592 msgid "" "If the connection is interrupted by a signal, the method waits until the " "connection completes, or raise a :exc:`TimeoutError` on timeout, if the " "signal handler doesn't raise an exception and the socket is blocking or has " -"a timeout. For non-blocking sockets, the method raises " -"an :exc:`InterruptedError` exception if the connection is interrupted by a " -"signal (or the exception raised by the signal handler)." +"a timeout. For non-blocking sockets, the method raises an :exc:" +"`InterruptedError` exception if the connection is interrupted by a signal " +"(or the exception raised by the signal handler)." msgstr "" -#: ../../library/socket.rst:1599 ../../library/socket.rst:1619 msgid "" "Raises an :ref:`auditing event ` ``socket.connect`` with arguments " "``self``, ``address``." msgstr "" -#: ../../library/socket.rst:1601 msgid "" -"The method now waits until the connection completes instead of raising " -"an :exc:`InterruptedError` exception if the connection is interrupted by a " +"The method now waits until the connection completes instead of raising an :" +"exc:`InterruptedError` exception if the connection is interrupted by a " "signal, the signal handler doesn't raise an exception and the socket is " "blocking or has a timeout (see the :pep:`475` for the rationale)." msgstr "" -#: ../../library/socket.rst:1612 msgid "" "Like ``connect(address)``, but return an error indicator instead of raising " "an exception for errors returned by the C-level :c:func:`connect` call " @@ -1825,38 +1502,32 @@ msgid "" "asynchronous connects." msgstr "" -#: ../../library/socket.rst:1625 msgid "" "Put the socket object into closed state without actually closing the " "underlying file descriptor. The file descriptor is returned, and can be " "reused for other purposes." msgstr "" -#: ../../library/socket.rst:1634 msgid "Duplicate the socket." msgstr "" -#: ../../library/socket.rst:1646 msgid "" "Return the socket's file descriptor (a small integer), or -1 on failure. " "This is useful with :func:`select.select`." msgstr "" -#: ../../library/socket.rst:1649 msgid "" "Under Windows the small integer returned by this method cannot be used where " "a file descriptor can be used (such as :func:`os.fdopen`). Unix does not " "have this limitation." msgstr "" -#: ../../library/socket.rst:1655 msgid "" "Get the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle: ``True`` if the socket can be inherited in " "child processes, ``False`` if it cannot." msgstr "" -#: ../../library/socket.rst:1664 msgid "" "Return the remote address to which the socket is connected. This is useful " "to find out the port number of a remote IPv4/v6 socket, for instance. (The " @@ -1864,63 +1535,53 @@ msgid "" "above.) On some systems this function is not supported." msgstr "" -#: ../../library/socket.rst:1672 msgid "" "Return the socket's own address. This is useful to find out the port number " "of an IPv4/v6 socket, for instance. (The format of the address returned " "depends on the address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1679 msgid "" -"Return the value of the given socket option (see the Unix man " -"page :manpage:`getsockopt(2)`). The needed symbolic constants (:ref:`SO_\\* " -"etc. `) are defined in this module. If *buflen* is " -"absent, an integer option is assumed and its integer value is returned by " -"the function. If *buflen* is present, it specifies the maximum length of " -"the buffer used to receive the option in, and this buffer is returned as a " -"bytes object. It is up to the caller to decode the contents of the buffer " -"(see the optional built-in module :mod:`struct` for a way to decode C " -"structures encoded as byte strings)." +"Return the value of the given socket option (see the Unix man page :manpage:" +"`getsockopt(2)`). The needed symbolic constants (:ref:`SO_\\* etc. `) are defined in this module. If *buflen* is absent, an " +"integer option is assumed and its integer value is returned by the " +"function. If *buflen* is present, it specifies the maximum length of the " +"buffer used to receive the option in, and this buffer is returned as a bytes " +"object. It is up to the caller to decode the contents of the buffer (see " +"the optional built-in module :mod:`struct` for a way to decode C structures " +"encoded as byte strings)." msgstr "" -#: ../../library/socket.rst:1693 msgid "" "Return ``True`` if socket is in blocking mode, ``False`` if in non-blocking." msgstr "" -#: ../../library/socket.rst:1696 msgid "This is equivalent to checking ``socket.gettimeout() != 0``." msgstr "" -#: ../../library/socket.rst:1703 msgid "" "Return the timeout in seconds (float) associated with socket operations, or " -"``None`` if no timeout is set. This reflects the last call " -"to :meth:`setblocking` or :meth:`settimeout`." +"``None`` if no timeout is set. This reflects the last call to :meth:" +"`setblocking` or :meth:`settimeout`." msgstr "" -#: ../../library/socket.rst:1710 msgid "" "The :meth:`ioctl` method is a limited interface to the WSAIoctl system " -"interface. Please refer to the `Win32 documentation `_ for more " -"information." +"interface. Please refer to the `Win32 documentation `_ for more information." msgstr "" -#: ../../library/socket.rst:1715 msgid "" "On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` " "functions may be used; they accept a socket object as their first argument." msgstr "" -#: ../../library/socket.rst:1718 msgid "" "Currently only the following control codes are supported: ``SIO_RCVALL``, " "``SIO_KEEPALIVE_VALS``, and ``SIO_LOOPBACK_FAST_PATH``." msgstr "" -#: ../../library/socket.rst:1729 msgid "" "Enable a server to accept connections. If *backlog* is specified, it must " "be at least 0 (if it is lower, it is set to 0); it specifies the number of " @@ -1928,11 +1589,9 @@ msgid "" "connections. If not specified, a default reasonable value is chosen." msgstr "" -#: ../../library/socket.rst:1736 msgid "The *backlog* parameter is now optional." msgstr "" -#: ../../library/socket.rst:1745 msgid "" "Return a :term:`file object` associated with the socket. The exact returned " "type depends on the arguments given to :meth:`makefile`. These arguments " @@ -1941,38 +1600,33 @@ msgid "" "``'b'``, or a combination of those." msgstr "" -#: ../../library/socket.rst:1751 msgid "" "The socket must be in blocking mode; it can have a timeout, but the file " "object's internal buffer may end up in an inconsistent state if a timeout " "occurs." msgstr "" -#: ../../library/socket.rst:1755 msgid "" "Closing the file object returned by :meth:`makefile` won't close the " -"original socket unless all other file objects have been closed " -"and :meth:`socket.close` has been called on the socket object." +"original socket unless all other file objects have been closed and :meth:" +"`socket.close` has been called on the socket object." msgstr "" -#: ../../library/socket.rst:1761 msgid "" "On Windows, the file-like object created by :meth:`makefile` cannot be used " "where a file object with a file descriptor is expected, such as the stream " "arguments of :meth:`subprocess.Popen`." msgstr "" -#: ../../library/socket.rst:1768 msgid "" "Receive data from the socket. The return value is a bytes object " "representing the data received. The maximum amount of data to be received " "at once is specified by *bufsize*. A returned empty bytes object indicates " -"that the client has disconnected. See the Unix manual " -"page :manpage:`recv(2)` for the meaning of the optional argument *flags*; it " -"defaults to zero." +"that the client has disconnected. See the Unix manual page :manpage:" +"`recv(2)` for the meaning of the optional argument *flags*; it defaults to " +"zero." msgstr "" -#: ../../library/socket.rst:1782 msgid "" "Receive data from the socket. The return value is a pair ``(bytes, " "address)`` where *bytes* is a bytes object representing the data received " @@ -1982,14 +1636,12 @@ msgid "" "address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1793 msgid "" "For multicast IPv6 address, first item of *address* does not contain " -"``%scope_id`` part anymore. In order to get full IPv6 address " -"use :func:`getnameinfo`." +"``%scope_id`` part anymore. In order to get full IPv6 address use :func:" +"`getnameinfo`." msgstr "" -#: ../../library/socket.rst:1800 msgid "" "Receive normal data (up to *bufsize* bytes) and ancillary data from the " "socket. The *ancbufsize* argument sets the size in bytes of the internal " @@ -2000,7 +1652,6 @@ msgid "" "*flags* argument defaults to 0 and has the same meaning as for :meth:`recv`." msgstr "" -#: ../../library/socket.rst:1810 msgid "" "The return value is a 4-tuple: ``(data, ancdata, msg_flags, address)``. The " "*data* item is a :class:`bytes` object holding the non-ancillary data " @@ -2015,39 +1666,34 @@ msgid "" "socket, if available; otherwise, its value is unspecified." msgstr "" -#: ../../library/socket.rst:1824 msgid "" "On some systems, :meth:`sendmsg` and :meth:`recvmsg` can be used to pass " "file descriptors between processes over an :const:`AF_UNIX` socket. When " "this facility is used (it is often restricted to :const:`SOCK_STREAM` " "sockets), :meth:`recvmsg` will return, in its ancillary data, items of the " -"form ``(socket.SOL_SOCKET, socket.SCM_RIGHTS, fds)``, where *fds* is " -"a :class:`bytes` object representing the new file descriptors as a binary " -"array of the native C :c:expr:`int` type. If :meth:`recvmsg` raises an " -"exception after the system call returns, it will first attempt to close any " -"file descriptors received via this mechanism." +"form ``(socket.SOL_SOCKET, socket.SCM_RIGHTS, fds)``, where *fds* is a :" +"class:`bytes` object representing the new file descriptors as a binary array " +"of the native C :c:expr:`int` type. If :meth:`recvmsg` raises an exception " +"after the system call returns, it will first attempt to close any file " +"descriptors received via this mechanism." msgstr "" -#: ../../library/socket.rst:1835 msgid "" "Some systems do not indicate the truncated length of ancillary data items " "which have been only partially received. If an item appears to extend " -"beyond the end of the buffer, :meth:`recvmsg` will issue " -"a :exc:`RuntimeWarning`, and will return the part of it which is inside the " -"buffer provided it has not been truncated before the start of its associated " -"data." +"beyond the end of the buffer, :meth:`recvmsg` will issue a :exc:" +"`RuntimeWarning`, and will return the part of it which is inside the buffer " +"provided it has not been truncated before the start of its associated data." msgstr "" -#: ../../library/socket.rst:1842 msgid "" "On systems which support the :const:`SCM_RIGHTS` mechanism, the following " "function will receive up to *maxfds* file descriptors, returning the message " "data and a list containing the descriptors (while ignoring unexpected " -"conditions such as unrelated control messages being received). See " -"also :meth:`sendmsg`. ::" +"conditions such as unrelated control messages being received). See also :" +"meth:`sendmsg`. ::" msgstr "" -#: ../../library/socket.rst:1848 msgid "" "import socket, array\n" "\n" @@ -2056,29 +1702,26 @@ msgid "" " msg, ancdata, flags, addr = sock.recvmsg(msglen, socket.CMSG_LEN(maxfds " "* fds.itemsize))\n" " for cmsg_level, cmsg_type, cmsg_data in ancdata:\n" -" if cmsg_level == socket.SOL_SOCKET and cmsg_type == " -"socket.SCM_RIGHTS:\n" +" if cmsg_level == socket.SOL_SOCKET and cmsg_type == socket." +"SCM_RIGHTS:\n" " # Append data, ignoring any truncated integers at the end.\n" -" fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % " -"fds.itemsize)])\n" +" fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds." +"itemsize)])\n" " return msg, list(fds)" msgstr "" -#: ../../library/socket.rst:1873 msgid "" -"Receive normal data and ancillary data from the socket, behaving " -"as :meth:`recvmsg` would, but scatter the non-ancillary data into a series " -"of buffers instead of returning a new bytes object. The *buffers* argument " -"must be an iterable of objects that export writable buffers " -"(e.g. :class:`bytearray` objects); these will be filled with successive " -"chunks of the non-ancillary data until it has all been written or there are " -"no more buffers. The operating system may set a limit (:func:`~os.sysconf` " -"value ``SC_IOV_MAX``) on the number of buffers that can be used. The " -"*ancbufsize* and *flags* arguments have the same meaning as " -"for :meth:`recvmsg`." +"Receive normal data and ancillary data from the socket, behaving as :meth:" +"`recvmsg` would, but scatter the non-ancillary data into a series of buffers " +"instead of returning a new bytes object. The *buffers* argument must be an " +"iterable of objects that export writable buffers (e.g. :class:`bytearray` " +"objects); these will be filled with successive chunks of the non-ancillary " +"data until it has all been written or there are no more buffers. The " +"operating system may set a limit (:func:`~os.sysconf` value ``SC_IOV_MAX``) " +"on the number of buffers that can be used. The *ancbufsize* and *flags* " +"arguments have the same meaning as for :meth:`recvmsg`." msgstr "" -#: ../../library/socket.rst:1884 msgid "" "The return value is a 4-tuple: ``(nbytes, ancdata, msg_flags, address)``, " "where *nbytes* is the total number of bytes of non-ancillary data written " @@ -2086,11 +1729,9 @@ msgid "" "for :meth:`recvmsg`." msgstr "" -#: ../../library/socket.rst:1889 msgid "Example::" msgstr "" -#: ../../library/socket.rst:1891 msgid "" ">>> import socket\n" ">>> s1, s2 = socket.socketpair()\n" @@ -2105,7 +1746,6 @@ msgid "" "[bytearray(b'Mary'), bytearray(b'01 had a 9'), bytearray(b'little lamb---')]" msgstr "" -#: ../../library/socket.rst:1912 msgid "" "Receive data from the socket, writing it into *buffer* instead of creating a " "new bytestring. The return value is a pair ``(nbytes, address)`` where " @@ -2115,7 +1755,6 @@ msgid "" "format of *address* depends on the address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1922 msgid "" "Receive up to *nbytes* bytes from the socket, storing the data into a buffer " "rather than creating a new bytestring. If *nbytes* is not specified (or 0), " @@ -2124,7 +1763,6 @@ msgid "" "of the optional argument *flags*; it defaults to zero." msgstr "" -#: ../../library/socket.rst:1931 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -2134,7 +1772,6 @@ msgid "" "data. For further information on this topic, consult the :ref:`socket-howto`." msgstr "" -#: ../../library/socket.rst:1946 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -2144,13 +1781,11 @@ msgid "" "to determine how much data, if any, was successfully sent." msgstr "" -#: ../../library/socket.rst:1953 msgid "" "The socket timeout is no longer reset each time data is sent successfully. " "The socket timeout is now the maximum total duration to send all data." msgstr "" -#: ../../library/socket.rst:1966 msgid "" "Send data to the socket. The socket should not be connected to a remote " "socket, since the destination socket is specified by *address*. The " @@ -2159,19 +1794,17 @@ msgid "" "address family --- see above.)" msgstr "" -#: ../../library/socket.rst:1972 msgid "" "Raises an :ref:`auditing event ` ``socket.sendto`` with arguments " "``self``, ``address``." msgstr "" -#: ../../library/socket.rst:1982 msgid "" "Send normal and ancillary data to the socket, gathering the non-ancillary " "data from a series of buffers and concatenating it into a single message. " -"The *buffers* argument specifies the non-ancillary data as an iterable " -"of :term:`bytes-like objects ` (e.g. :class:`bytes` " -"objects); the operating system may set a limit (:func:`~os.sysconf` value " +"The *buffers* argument specifies the non-ancillary data as an iterable of :" +"term:`bytes-like objects ` (e.g. :class:`bytes` objects); " +"the operating system may set a limit (:func:`~os.sysconf` value " "``SC_IOV_MAX``) on the number of buffers that can be used. The *ancdata* " "argument specifies the ancillary data (control messages) as an iterable of " "zero or more tuples ``(cmsg_level, cmsg_type, cmsg_data)``, where " @@ -2185,183 +1818,153 @@ msgid "" "bytes of non-ancillary data sent." msgstr "" -#: ../../library/socket.rst:2002 msgid "" -"The following function sends the list of file descriptors *fds* over " -"an :const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " +"The following function sends the list of file descriptors *fds* over an :" +"const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " "mechanism. See also :meth:`recvmsg`. ::" msgstr "" -#: ../../library/socket.rst:2006 msgid "" "import socket, array\n" "\n" "def send_fds(sock, msg, fds):\n" -" return sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, " -"array.array(\"i\", fds))])" +" return sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, array." +"array(\"i\", fds))])" msgstr "" -#: ../../library/socket.rst:2015 msgid "" "Raises an :ref:`auditing event ` ``socket.sendmsg`` with arguments " "``self``, ``address``." msgstr "" -#: ../../library/socket.rst:2026 msgid "" "Specialized version of :meth:`~socket.sendmsg` for :const:`AF_ALG` socket. " "Set mode, IV, AEAD associated data length and flags for :const:`AF_ALG` " "socket." msgstr "" -#: ../../library/socket.rst:2035 msgid "" -"Send a file until EOF is reached by using high-" -"performance :mod:`os.sendfile` and return the total number of bytes which " -"were sent. *file* must be a regular file object opened in binary mode. " -"If :mod:`os.sendfile` is not available (e.g. Windows) or *file* is not a " -"regular file :meth:`send` will be used instead. *offset* tells from where to " -"start reading the file. If specified, *count* is the total number of bytes " -"to transmit as opposed to sending the file until EOF is reached. File " -"position is updated on return or also in case of error in which " -"case :meth:`file.tell() ` can be used to figure out the " -"number of bytes which were sent. The socket must be of :const:`SOCK_STREAM` " -"type. Non-blocking sockets are not supported." +"Send a file until EOF is reached by using high-performance :mod:`os." +"sendfile` and return the total number of bytes which were sent. *file* must " +"be a regular file object opened in binary mode. If :mod:`os.sendfile` is not " +"available (e.g. Windows) or *file* is not a regular file :meth:`send` will " +"be used instead. *offset* tells from where to start reading the file. If " +"specified, *count* is the total number of bytes to transmit as opposed to " +"sending the file until EOF is reached. File position is updated on return or " +"also in case of error in which case :meth:`file.tell() ` can " +"be used to figure out the number of bytes which were sent. The socket must " +"be of :const:`SOCK_STREAM` type. Non-blocking sockets are not supported." msgstr "" -#: ../../library/socket.rst:2051 msgid "" "Set the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle." msgstr "" -#: ../../library/socket.rst:2059 msgid "" "Set blocking or non-blocking mode of the socket: if *flag* is false, the " "socket is set to non-blocking, else to blocking mode." msgstr "" -#: ../../library/socket.rst:2062 msgid "" "This method is a shorthand for certain :meth:`~socket.settimeout` calls:" msgstr "" -#: ../../library/socket.rst:2064 msgid "``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``" msgstr "" -#: ../../library/socket.rst:2066 msgid "``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0.0)``" msgstr "" -#: ../../library/socket.rst:2068 msgid "" -"The method no longer applies :const:`SOCK_NONBLOCK` flag " -"on :attr:`socket.type`." +"The method no longer applies :const:`SOCK_NONBLOCK` flag on :attr:`socket." +"type`." msgstr "" -#: ../../library/socket.rst:2075 msgid "" "Set a timeout on blocking socket operations. The *value* argument can be a " "nonnegative floating-point number expressing seconds, or ``None``. If a non-" -"zero value is given, subsequent socket operations will raise " -"a :exc:`timeout` exception if the timeout period *value* has elapsed before " -"the operation has completed. If zero is given, the socket is put in non-" +"zero value is given, subsequent socket operations will raise a :exc:" +"`timeout` exception if the timeout period *value* has elapsed before the " +"operation has completed. If zero is given, the socket is put in non-" "blocking mode. If ``None`` is given, the socket is put in blocking mode." msgstr "" -#: ../../library/socket.rst:2082 msgid "" "For further information, please consult the :ref:`notes on socket timeouts " "`." msgstr "" -#: ../../library/socket.rst:2084 msgid "" -"The method no longer toggles :const:`SOCK_NONBLOCK` flag " -"on :attr:`socket.type`." +"The method no longer toggles :const:`SOCK_NONBLOCK` flag on :attr:`socket." +"type`." msgstr "" -#: ../../library/socket.rst:2097 msgid "" -"Set the value of the given socket option (see the Unix manual " -"page :manpage:`setsockopt(2)`). The needed symbolic constants are defined " -"in this module (:ref:`!SO_\\* etc. `). The value can " -"be an integer, ``None`` or a :term:`bytes-like object` representing a " -"buffer. In the later case it is up to the caller to ensure that the " -"bytestring contains the proper bits (see the optional built-in " -"module :mod:`struct` for a way to encode C structures as bytestrings). When " -"*value* is set to ``None``, *optlen* argument is required. It's equivalent " -"to call :c:func:`setsockopt` C function with ``optval=NULL`` and " -"``optlen=optlen``." +"Set the value of the given socket option (see the Unix manual page :manpage:" +"`setsockopt(2)`). The needed symbolic constants are defined in this module " +"(:ref:`!SO_\\* etc. `). The value can be an integer, " +"``None`` or a :term:`bytes-like object` representing a buffer. In the later " +"case it is up to the caller to ensure that the bytestring contains the " +"proper bits (see the optional built-in module :mod:`struct` for a way to " +"encode C structures as bytestrings). When *value* is set to ``None``, " +"*optlen* argument is required. It's equivalent to call :c:func:`setsockopt` " +"C function with ``optval=NULL`` and ``optlen=optlen``." msgstr "" -#: ../../library/socket.rst:2110 msgid "setsockopt(level, optname, None, optlen: int) form added." msgstr "" -#: ../../library/socket.rst:2118 msgid "" -"Shut down one or both halves of the connection. If *how* " -"is :const:`SHUT_RD`, further receives are disallowed. If *how* " -"is :const:`SHUT_WR`, further sends are disallowed. If *how* " -"is :const:`SHUT_RDWR`, further sends and receives are disallowed." +"Shut down one or both halves of the connection. If *how* is :const:" +"`SHUT_RD`, further receives are disallowed. If *how* is :const:`SHUT_WR`, " +"further sends are disallowed. If *how* is :const:`SHUT_RDWR`, further sends " +"and receives are disallowed." msgstr "" -#: ../../library/socket.rst:2128 msgid "" "Duplicate a socket and prepare it for sharing with a target process. The " "target process must be provided with *process_id*. The resulting bytes " "object can then be passed to the target process using some form of " -"interprocess communication and the socket can be recreated there " -"using :func:`fromshare`. Once this method has been called, it is safe to " -"close the socket since the operating system has already duplicated it for " -"the target process." +"interprocess communication and the socket can be recreated there using :func:" +"`fromshare`. Once this method has been called, it is safe to close the " +"socket since the operating system has already duplicated it for the target " +"process." msgstr "" -#: ../../library/socket.rst:2140 msgid "" -"Note that there are no methods :meth:`read` or :meth:`write`; " -"use :meth:`~socket.recv` and :meth:`~socket.send` without *flags* argument " -"instead." +"Note that there are no methods :meth:`read` or :meth:`write`; use :meth:" +"`~socket.recv` and :meth:`~socket.send` without *flags* argument instead." msgstr "" -#: ../../library/socket.rst:2143 msgid "" "Socket objects also have these (read-only) attributes that correspond to the " "values given to the :class:`~socket.socket` constructor." msgstr "" -#: ../../library/socket.rst:2149 msgid "The socket family." msgstr "" -#: ../../library/socket.rst:2154 msgid "The socket type." msgstr "" -#: ../../library/socket.rst:2159 msgid "The socket protocol." msgstr "" -#: ../../library/socket.rst:2166 msgid "Notes on socket timeouts" msgstr "" -#: ../../library/socket.rst:2168 msgid "" "A socket object can be in one of three modes: blocking, non-blocking, or " "timeout. Sockets are by default always created in blocking mode, but this " "can be changed by calling :func:`setdefaulttimeout`." msgstr "" -#: ../../library/socket.rst:2172 msgid "" "In *blocking mode*, operations block until complete or the system returns an " "error (such as connection timed out)." msgstr "" -#: ../../library/socket.rst:2175 msgid "" "In *non-blocking mode*, operations fail (with an error that is unfortunately " "system-dependent) if they cannot be completed immediately: functions from " @@ -2369,14 +1972,12 @@ msgid "" "available for reading or writing." msgstr "" -#: ../../library/socket.rst:2180 msgid "" "In *timeout mode*, operations fail if they cannot be completed within the " "timeout specified for the socket (they raise a :exc:`timeout` exception) or " "if the system returns an error." msgstr "" -#: ../../library/socket.rst:2185 msgid "" "At the operating system level, sockets in *timeout mode* are internally set " "in non-blocking mode. Also, the blocking and timeout modes are shared " @@ -2385,38 +1986,32 @@ msgid "" "you decide to use the :meth:`~socket.fileno` of a socket." msgstr "" -#: ../../library/socket.rst:2192 msgid "Timeouts and the ``connect`` method" msgstr "" -#: ../../library/socket.rst:2194 msgid "" "The :meth:`~socket.connect` operation is also subject to the timeout " "setting, and in general it is recommended to call :meth:`~socket.settimeout` " -"before calling :meth:`~socket.connect` or pass a timeout parameter " -"to :meth:`create_connection`. However, the system network stack may also " -"return a connection timeout error of its own regardless of any Python socket " -"timeout setting." +"before calling :meth:`~socket.connect` or pass a timeout parameter to :meth:" +"`create_connection`. However, the system network stack may also return a " +"connection timeout error of its own regardless of any Python socket timeout " +"setting." msgstr "" -#: ../../library/socket.rst:2202 msgid "Timeouts and the ``accept`` method" msgstr "" -#: ../../library/socket.rst:2204 msgid "" -"If :func:`getdefaulttimeout` is not :const:`None`, sockets returned by " -"the :meth:`~socket.accept` method inherit that timeout. Otherwise, the " -"behaviour depends on settings of the listening socket:" +"If :func:`getdefaulttimeout` is not :const:`None`, sockets returned by the :" +"meth:`~socket.accept` method inherit that timeout. Otherwise, the behaviour " +"depends on settings of the listening socket:" msgstr "" -#: ../../library/socket.rst:2208 msgid "" "if the listening socket is in *blocking mode* or in *timeout mode*, the " "socket returned by :meth:`~socket.accept` is in *blocking mode*;" msgstr "" -#: ../../library/socket.rst:2211 msgid "" "if the listening socket is in *non-blocking mode*, whether the socket " "returned by :meth:`~socket.accept` is in blocking or non-blocking mode is " @@ -2424,29 +2019,24 @@ msgid "" "it is recommended you manually override this setting." msgstr "" -#: ../../library/socket.rst:2220 msgid "Example" msgstr "" -#: ../../library/socket.rst:2222 msgid "" "Here are four minimal example programs using the TCP/IP protocol: a server " "that echoes all data that it receives back (servicing only one client), and " -"a client using it. Note that a server must perform the " -"sequence :func:`~socket.socket`, :meth:`~socket.bind`, :meth:`~socket.listen`, :meth:`~socket.accept` " -"(possibly repeating the :meth:`~socket.accept` to service more than one " -"client), while a client only needs the " -"sequence :func:`~socket.socket`, :meth:`~socket.connect`. Also note that " -"the server does not :meth:`~socket.sendall`/:meth:`~socket.recv` on the " -"socket it is listening on but on the new socket returned " -"by :meth:`~socket.accept`." +"a client using it. Note that a server must perform the sequence :func:" +"`~socket.socket`, :meth:`~socket.bind`, :meth:`~socket.listen`, :meth:" +"`~socket.accept` (possibly repeating the :meth:`~socket.accept` to service " +"more than one client), while a client only needs the sequence :func:`~socket." +"socket`, :meth:`~socket.connect`. Also note that the server does not :meth:" +"`~socket.sendall`/:meth:`~socket.recv` on the socket it is listening on but " +"on the new socket returned by :meth:`~socket.accept`." msgstr "" -#: ../../library/socket.rst:2232 msgid "The first two examples support IPv4 only. ::" msgstr "" -#: ../../library/socket.rst:2234 msgid "" "# Echo server program\n" "import socket\n" @@ -2465,7 +2055,6 @@ msgid "" " conn.sendall(data)" msgstr "" -#: ../../library/socket.rst:2252 msgid "" "# Echo client program\n" "import socket\n" @@ -2479,7 +2068,6 @@ msgid "" "print('Received', repr(data))" msgstr "" -#: ../../library/socket.rst:2263 msgid "" "The next two examples are identical to the above two, but support both IPv4 " "and IPv6. The server side will listen to the first address family available " @@ -2489,7 +2077,6 @@ msgid "" "resolution, and sends traffic to the first one connected successfully. ::" msgstr "" -#: ../../library/socket.rst:2270 msgid "" "# Echo server program\n" "import socket\n" @@ -2526,7 +2113,6 @@ msgid "" " conn.send(data)" msgstr "" -#: ../../library/socket.rst:2306 msgid "" "# Echo client program\n" "import socket\n" @@ -2535,8 +2121,8 @@ msgid "" "HOST = 'daring.cwi.nl' # The remote host\n" "PORT = 50007 # The same port as used by the server\n" "s = None\n" -"for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, " -"socket.SOCK_STREAM):\n" +"for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket." +"SOCK_STREAM):\n" " af, socktype, proto, canonname, sa = res\n" " try:\n" " s = socket.socket(af, socktype, proto)\n" @@ -2559,14 +2145,12 @@ msgid "" "print('Received', repr(data))" msgstr "" -#: ../../library/socket.rst:2335 msgid "" "The next example shows how to write a very simple network sniffer with raw " "sockets on Windows. The example requires administrator privileges to modify " "the interface::" msgstr "" -#: ../../library/socket.rst:2339 msgid "" "import socket\n" "\n" @@ -2590,29 +2174,24 @@ msgid "" "s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)" msgstr "" -#: ../../library/socket.rst:2360 msgid "" "The next example shows how to use the socket interface to communicate to a " "CAN network using the raw socket protocol. To use CAN with the broadcast " "manager protocol instead, open a socket with::" msgstr "" -#: ../../library/socket.rst:2364 msgid "socket.socket(socket.AF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM)" msgstr "" -#: ../../library/socket.rst:2366 msgid "" "After binding (:const:`CAN_RAW`) or connecting (:const:`CAN_BCM`) the " "socket, you can use the :meth:`socket.send` and :meth:`socket.recv` " "operations (and their counterparts) on the socket object as usual." msgstr "" -#: ../../library/socket.rst:2370 msgid "This last example might require special privileges::" msgstr "" -#: ../../library/socket.rst:2372 msgid "" "import socket\n" "import struct\n" @@ -2654,59 +2233,49 @@ msgid "" " print('Error sending CAN frame')" msgstr "" -#: ../../library/socket.rst:2410 msgid "" "Running an example several times with too small delay between executions, " "could lead to this error::" msgstr "" -#: ../../library/socket.rst:2413 msgid "OSError: [Errno 98] Address already in use" msgstr "" -#: ../../library/socket.rst:2415 msgid "" "This is because the previous execution has left the socket in a " "``TIME_WAIT`` state, and can't be immediately reused." msgstr "" -#: ../../library/socket.rst:2418 msgid "" -"There is a :mod:`socket` flag to set, in order to prevent " -"this, :const:`socket.SO_REUSEADDR`::" +"There is a :mod:`socket` flag to set, in order to prevent this, :const:" +"`socket.SO_REUSEADDR`::" msgstr "" -#: ../../library/socket.rst:2421 msgid "" "s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n" "s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n" "s.bind((HOST, PORT))" msgstr "" -#: ../../library/socket.rst:2425 msgid "" "the :data:`SO_REUSEADDR` flag tells the kernel to reuse a local socket in " "``TIME_WAIT`` state, without waiting for its natural timeout to expire." msgstr "" -#: ../../library/socket.rst:2431 msgid "" "For an introduction to socket programming (in C), see the following papers:" msgstr "" -#: ../../library/socket.rst:2433 msgid "" "*An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart " "Sechrest" msgstr "" -#: ../../library/socket.rst:2435 msgid "" "*An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. " "Leffler et al," msgstr "" -#: ../../library/socket.rst:2438 msgid "" "both in the UNIX Programmer's Manual, Supplementary Documents 1 (sections " "PS1:7 and PS1:8). The platform-specific reference material for the various " @@ -2717,26 +2286,20 @@ msgid "" "Extensions for IPv6." msgstr "" -#: ../../library/socket.rst:22 msgid "object" msgstr "" -#: ../../library/socket.rst:22 msgid "socket" msgstr "" -#: ../../library/socket.rst:1743 msgid "I/O control" msgstr "" -#: ../../library/socket.rst:1743 msgid "buffering" msgstr "" -#: ../../library/socket.rst:2095 msgid "module" msgstr "" -#: ../../library/socket.rst:2095 msgid "struct" msgstr "" diff --git a/library/socketserver.po b/library/socketserver.po index b7ad99d..9572b16 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/socketserver.rst:2 msgid ":mod:`!socketserver` --- A framework for network servers" msgstr "" -#: ../../library/socketserver.rst:7 msgid "**Source code:** :source:`Lib/socketserver.py`" msgstr "" -#: ../../library/socketserver.rst:11 msgid "" "The :mod:`socketserver` module simplifies the task of writing network " "servers." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/socketserver.rst:15 msgid "There are four basic concrete server classes:" msgstr "" -#: ../../library/socketserver.rst:20 msgid "" "This uses the internet TCP protocol, which provides for continuous streams " "of data between the client and server. If *bind_and_activate* is true, the " @@ -55,21 +48,18 @@ msgid "" "the :class:`BaseServer` base class." msgstr "" -#: ../../library/socketserver.rst:30 msgid "" "This uses datagrams, which are discrete packets of information that may " "arrive out of order or be lost while in transit. The parameters are the " "same as for :class:`TCPServer`." msgstr "" -#: ../../library/socketserver.rst:38 msgid "" "These more infrequently used classes are similar to the TCP and UDP classes, " "but use Unix domain sockets; they're not available on non-Unix platforms. " "The parameters are the same as for :class:`TCPServer`." msgstr "" -#: ../../library/socketserver.rst:44 msgid "" "These four classes process requests :dfn:`synchronously`; each request must " "be completed before the next request can be started. This isn't suitable if " @@ -80,7 +70,6 @@ msgid "" "classes can be used to support asynchronous behaviour." msgstr "" -#: ../../library/socketserver.rst:52 msgid "" "Creating a server requires several steps. First, you must create a request " "handler class by subclassing the :class:`BaseRequestHandler` class and " @@ -89,12 +78,11 @@ msgid "" "classes, passing it the server's address and the request handler class. It " "is recommended to use the server in a :keyword:`with` statement. Then call " "the :meth:`~BaseServer.handle_request` or :meth:`~BaseServer.serve_forever` " -"method of the server object to process one or many requests. Finally, " -"call :meth:`~BaseServer.server_close` to close the socket (unless you used " -"a :keyword:`!with` statement)." +"method of the server object to process one or many requests. Finally, call :" +"meth:`~BaseServer.server_close` to close the socket (unless you used a :" +"keyword:`!with` statement)." msgstr "" -#: ../../library/socketserver.rst:64 msgid "" "When inheriting from :class:`ThreadingMixIn` for threaded connection " "behavior, you should explicitly declare how you want your threads to behave " @@ -102,27 +90,23 @@ msgid "" "attribute *daemon_threads*, which indicates whether or not the server should " "wait for thread termination. You should set the flag explicitly if you " "would like threads to behave autonomously; the default is :const:`False`, " -"meaning that Python will not exit until all threads created " -"by :class:`ThreadingMixIn` have exited." +"meaning that Python will not exit until all threads created by :class:" +"`ThreadingMixIn` have exited." msgstr "" -#: ../../library/socketserver.rst:73 msgid "" "Server classes have the same external methods and attributes, no matter what " "network protocol they use." msgstr "" -#: ../../library/socketserver.rst:78 msgid "Server Creation Notes" msgstr "" -#: ../../library/socketserver.rst:80 msgid "" "There are five classes in an inheritance diagram, four of which represent " "synchronous servers of four types::" msgstr "" -#: ../../library/socketserver.rst:83 msgid "" "+------------+\n" "| BaseServer |\n" @@ -139,98 +123,84 @@ msgid "" "+-----------+ +--------------------+" msgstr "" -#: ../../library/socketserver.rst:97 msgid "" "Note that :class:`UnixDatagramServer` derives from :class:`UDPServer`, not " "from :class:`UnixStreamServer` --- the only difference between an IP and a " "Unix server is the address family." msgstr "" -#: ../../library/socketserver.rst:105 msgid "" "Forking and threading versions of each type of server can be created using " "these mix-in classes. For instance, :class:`ThreadingUDPServer` is created " "as follows::" msgstr "" -#: ../../library/socketserver.rst:109 msgid "" "class ThreadingUDPServer(ThreadingMixIn, UDPServer):\n" " pass" msgstr "" -#: ../../library/socketserver.rst:112 msgid "" -"The mix-in class comes first, since it overrides a method defined " -"in :class:`UDPServer`. Setting the various attributes also changes the " -"behavior of the underlying server mechanism." +"The mix-in class comes first, since it overrides a method defined in :class:" +"`UDPServer`. Setting the various attributes also changes the behavior of " +"the underlying server mechanism." msgstr "" -#: ../../library/socketserver.rst:116 msgid "" ":class:`ForkingMixIn` and the Forking classes mentioned below are only " "available on POSIX platforms that support :func:`~os.fork`." msgstr "" -#: ../../library/socketserver.rst:121 msgid "" ":meth:`ForkingMixIn.server_close ` waits until all " "child processes complete, except if :attr:`block_on_close` attribute is " "``False``." msgstr "" -#: ../../library/socketserver.rst:125 msgid "" ":meth:`ThreadingMixIn.server_close ` waits until " "all non-daemon threads complete, except if :attr:`block_on_close` attribute " "is ``False``." msgstr "" -#: ../../library/socketserver.rst:131 msgid "" "Specify how many child processes will exist to handle requests at a time " "for :class:`ForkingMixIn`. If the limit is reached, new requests will wait " "until one child process has finished." msgstr "" -#: ../../library/socketserver.rst:137 msgid "" -"For :class:`ThreadingMixIn` use daemonic threads by " -"setting :data:`ThreadingMixIn.daemon_threads ` to ``True`` " -"to not wait until threads complete." +"For :class:`ThreadingMixIn` use daemonic threads by setting :data:" +"`ThreadingMixIn.daemon_threads ` to ``True`` to not wait " +"until threads complete." msgstr "" -#: ../../library/socketserver.rst:143 msgid "" -":meth:`ForkingMixIn.server_close ` " -"and :meth:`ThreadingMixIn.server_close ` now waits " -"until all child processes and non-daemonic threads complete. Add a " -"new :attr:`ForkingMixIn.block_on_close ` class attribute to " -"opt-in for the pre-3.7 behaviour." +":meth:`ForkingMixIn.server_close ` and :meth:" +"`ThreadingMixIn.server_close ` now waits until all " +"child processes and non-daemonic threads complete. Add a new :attr:" +"`ForkingMixIn.block_on_close ` class attribute to opt-in for " +"the pre-3.7 behaviour." msgstr "" -#: ../../library/socketserver.rst:159 msgid "These classes are pre-defined using the mix-in classes." msgstr "" -#: ../../library/socketserver.rst:161 msgid "" "The ``ForkingUnixStreamServer`` and ``ForkingUnixDatagramServer`` classes " "were added." msgstr "" -#: ../../library/socketserver.rst:165 msgid "" -"To implement a service, you must derive a class " -"from :class:`BaseRequestHandler` and redefine " -"its :meth:`~BaseRequestHandler.handle` method. You can then run various " -"versions of the service by combining one of the server classes with your " -"request handler class. The request handler class must be different for " -"datagram or stream services. This can be hidden by using the handler " -"subclasses :class:`StreamRequestHandler` or :class:`DatagramRequestHandler`." +"To implement a service, you must derive a class from :class:" +"`BaseRequestHandler` and redefine its :meth:`~BaseRequestHandler.handle` " +"method. You can then run various versions of the service by combining one of " +"the server classes with your request handler class. The request handler " +"class must be different for datagram or stream services. This can be hidden " +"by using the handler subclasses :class:`StreamRequestHandler` or :class:" +"`DatagramRequestHandler`." msgstr "" -#: ../../library/socketserver.rst:173 msgid "" "Of course, you still have to use your head! For instance, it makes no sense " "to use a forking server if the service contains state in memory that can be " @@ -240,7 +210,6 @@ msgid "" "probably have to use locks to protect the integrity of the shared data." msgstr "" -#: ../../library/socketserver.rst:180 msgid "" "On the other hand, if you are building an HTTP server where all data is " "stored externally (for instance, in the file system), a synchronous class " @@ -250,16 +219,14 @@ msgid "" "appropriate." msgstr "" -#: ../../library/socketserver.rst:186 msgid "" "In some cases, it may be appropriate to process part of a request " "synchronously, but to finish processing in a forked child depending on the " "request data. This can be implemented by using a synchronous server and " -"doing an explicit fork in the request handler " -"class :meth:`~BaseRequestHandler.handle` method." +"doing an explicit fork in the request handler class :meth:" +"`~BaseRequestHandler.handle` method." msgstr "" -#: ../../library/socketserver.rst:191 msgid "" "Another approach to handling multiple simultaneous requests in an " "environment that supports neither threads nor :func:`~os.fork` (or where " @@ -271,38 +238,32 @@ msgid "" "subprocesses cannot be used)." msgstr "" -#: ../../library/socketserver.rst:204 msgid "Server Objects" msgstr "" -#: ../../library/socketserver.rst:208 msgid "" "This is the superclass of all Server objects in the module. It defines the " "interface, given below, but does not implement most of the methods, which is " -"done in subclasses. The two parameters are stored in the " -"respective :attr:`server_address` and :attr:`RequestHandlerClass` attributes." +"done in subclasses. The two parameters are stored in the respective :attr:" +"`server_address` and :attr:`RequestHandlerClass` attributes." msgstr "" -#: ../../library/socketserver.rst:216 msgid "" "Return an integer file descriptor for the socket on which the server is " "listening. This function is most commonly passed to :mod:`selectors`, to " "allow monitoring multiple servers in the same process." msgstr "" -#: ../../library/socketserver.rst:223 msgid "" "Process a single request. This function calls the following methods in " -"order: :meth:`get_request`, :meth:`verify_request`, " -"and :meth:`process_request`. If the user-" -"provided :meth:`~BaseRequestHandler.handle` method of the handler class " -"raises an exception, the server's :meth:`handle_error` method will be " -"called. If no request is received within :attr:`timeout` " -"seconds, :meth:`handle_timeout` will be called and :meth:`handle_request` " -"will return." +"order: :meth:`get_request`, :meth:`verify_request`, and :meth:" +"`process_request`. If the user-provided :meth:`~BaseRequestHandler.handle` " +"method of the handler class raises an exception, the server's :meth:" +"`handle_error` method will be called. If no request is received within :" +"attr:`timeout` seconds, :meth:`handle_timeout` will be called and :meth:" +"`handle_request` will return." msgstr "" -#: ../../library/socketserver.rst:235 msgid "" "Handle requests until an explicit :meth:`shutdown` request. Poll for " "shutdown every *poll_interval* seconds. Ignores the :attr:`timeout` " @@ -312,68 +273,57 @@ msgid "" "clean up zombie child processes." msgstr "" -#: ../../library/socketserver.rst:243 msgid "Added ``service_actions`` call to the ``serve_forever`` method." msgstr "" -#: ../../library/socketserver.rst:249 msgid "" "This is called in the :meth:`serve_forever` loop. This method can be " "overridden by subclasses or mixin classes to perform actions specific to a " "given service, such as cleanup actions." msgstr "" -#: ../../library/socketserver.rst:257 msgid "" -"Tell the :meth:`serve_forever` loop to stop and wait until it " -"does. :meth:`shutdown` must be called while :meth:`serve_forever` is running " -"in a different thread otherwise it will deadlock." +"Tell the :meth:`serve_forever` loop to stop and wait until it does. :meth:" +"`shutdown` must be called while :meth:`serve_forever` is running in a " +"different thread otherwise it will deadlock." msgstr "" -#: ../../library/socketserver.rst:264 msgid "Clean up the server. May be overridden." msgstr "" -#: ../../library/socketserver.rst:269 msgid "" "The family of protocols to which the server's socket belongs. Common " -"examples are :const:`socket.AF_INET`, :const:`socket.AF_INET6`, " -"and :const:`socket.AF_UNIX`. Subclass the TCP or UDP server classes in this " -"module with class attribute ``address_family = AF_INET6`` set if you want " -"IPv6 server classes." +"examples are :const:`socket.AF_INET`, :const:`socket.AF_INET6`, and :const:" +"`socket.AF_UNIX`. Subclass the TCP or UDP server classes in this module " +"with class attribute ``address_family = AF_INET6`` set if you want IPv6 " +"server classes." msgstr "" -#: ../../library/socketserver.rst:278 msgid "" "The user-provided request handler class; an instance of this class is " "created for each request." msgstr "" -#: ../../library/socketserver.rst:284 msgid "" "The address on which the server is listening. The format of addresses " -"varies depending on the protocol family; see the documentation for " -"the :mod:`socket` module for details. For internet protocols, this is a " -"tuple containing a string giving the address, and an integer port number: " +"varies depending on the protocol family; see the documentation for the :mod:" +"`socket` module for details. For internet protocols, this is a tuple " +"containing a string giving the address, and an integer port number: " "``('127.0.0.1', 80)``, for example." msgstr "" -#: ../../library/socketserver.rst:293 msgid "" "The socket object on which the server will listen for incoming requests." msgstr "" -#: ../../library/socketserver.rst:296 msgid "The server classes support the following class variables:" msgstr "" -#: ../../library/socketserver.rst:302 msgid "" -"Whether the server will allow the reuse of an address. This defaults " -"to :const:`False`, and can be set in subclasses to change the policy." +"Whether the server will allow the reuse of an address. This defaults to :" +"const:`False`, and can be set in subclasses to change the policy." msgstr "" -#: ../../library/socketserver.rst:308 msgid "" "The size of the request queue. If it takes a long time to process a single " "request, any requests that arrive while the server is busy are placed into a " @@ -382,40 +332,34 @@ msgid "" "default value is usually 5, but this can be overridden by subclasses." msgstr "" -#: ../../library/socketserver.rst:317 msgid "" -"The type of socket used by the server; :const:`socket.SOCK_STREAM` " -"and :const:`socket.SOCK_DGRAM` are two common values." +"The type of socket used by the server; :const:`socket.SOCK_STREAM` and :" +"const:`socket.SOCK_DGRAM` are two common values." msgstr "" -#: ../../library/socketserver.rst:323 msgid "" "Timeout duration, measured in seconds, or :const:`None` if no timeout is " "desired. If :meth:`handle_request` receives no incoming requests within the " "timeout period, the :meth:`handle_timeout` method is called." msgstr "" -#: ../../library/socketserver.rst:328 msgid "" "There are various server methods that can be overridden by subclasses of " "base server classes like :class:`TCPServer`; these methods aren't useful to " "external users of the server object." msgstr "" -#: ../../library/socketserver.rst:337 msgid "" "Actually processes the request by instantiating :attr:`RequestHandlerClass` " "and calling its :meth:`~BaseRequestHandler.handle` method." msgstr "" -#: ../../library/socketserver.rst:343 msgid "" "Must accept a request from the socket, and return a 2-tuple containing the " "*new* socket object to be used to communicate with the client, and the " "client's address." msgstr "" -#: ../../library/socketserver.rst:350 msgid "" "This function is called if the :meth:`~BaseRequestHandler.handle` method of " "a :attr:`RequestHandlerClass` instance raises an exception. The default " @@ -423,11 +367,9 @@ msgid "" "further requests." msgstr "" -#: ../../library/socketserver.rst:355 msgid "Now only called for exceptions derived from the :exc:`Exception` class." msgstr "" -#: ../../library/socketserver.rst:362 msgid "" "This function is called when the :attr:`timeout` attribute has been set to a " "value other than :const:`None` and the timeout period has passed with no " @@ -436,28 +378,24 @@ msgid "" "threading servers this method does nothing." msgstr "" -#: ../../library/socketserver.rst:371 msgid "" -"Calls :meth:`finish_request` to create an instance of " -"the :attr:`RequestHandlerClass`. If desired, this function can create a new " -"process or thread to handle the request; the :class:`ForkingMixIn` " -"and :class:`ThreadingMixIn` classes do this." +"Calls :meth:`finish_request` to create an instance of the :attr:" +"`RequestHandlerClass`. If desired, this function can create a new process " +"or thread to handle the request; the :class:`ForkingMixIn` and :class:" +"`ThreadingMixIn` classes do this." msgstr "" -#: ../../library/socketserver.rst:383 msgid "" "Called by the server's constructor to activate the server. The default " "behavior for a TCP server just invokes :meth:`~socket.socket.listen` on the " "server's socket. May be overridden." msgstr "" -#: ../../library/socketserver.rst:390 msgid "" "Called by the server's constructor to bind the socket to the desired " "address. May be overridden." msgstr "" -#: ../../library/socketserver.rst:396 msgid "" "Must return a Boolean value; if the value is :const:`True`, the request will " "be processed, and if it's :const:`False`, the request will be denied. This " @@ -465,17 +403,14 @@ msgid "" "default implementation always returns :const:`True`." msgstr "" -#: ../../library/socketserver.rst:402 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`server_close`." msgstr "" -#: ../../library/socketserver.rst:408 msgid "Request Handler Objects" msgstr "" -#: ../../library/socketserver.rst:412 msgid "" "This is the superclass of all request handler objects. It defines the " "interface, given below. A concrete request handler subclass must define a " @@ -483,87 +418,72 @@ msgid "" "instance of the subclass is created for each request." msgstr "" -#: ../../library/socketserver.rst:421 msgid "" "Called before the :meth:`handle` method to perform any initialization " "actions required. The default implementation does nothing." msgstr "" -#: ../../library/socketserver.rst:427 msgid "" "This function must do all the work required to service a request. The " "default implementation does nothing. Several instance attributes are " "available to it; the request is available as :attr:`request`; the client " -"address as :attr:`client_address`; and the server instance " -"as :attr:`server`, in case it needs access to per-server information." +"address as :attr:`client_address`; and the server instance as :attr:" +"`server`, in case it needs access to per-server information." msgstr "" -#: ../../library/socketserver.rst:433 msgid "" "The type of :attr:`request` is different for datagram or stream services. " "For stream services, :attr:`request` is a socket object; for datagram " "services, :attr:`request` is a pair of string and socket." msgstr "" -#: ../../library/socketserver.rst:440 msgid "" "Called after the :meth:`handle` method to perform any clean-up actions " "required. The default implementation does nothing. If :meth:`setup` raises " "an exception, this function will not be called." msgstr "" -#: ../../library/socketserver.rst:447 msgid "" "The *new* :class:`socket.socket` object to be used to communicate with the " "client." msgstr "" -#: ../../library/socketserver.rst:453 msgid "Client address returned by :meth:`BaseServer.get_request`." msgstr "" -#: ../../library/socketserver.rst:458 msgid ":class:`BaseServer` object used for handling the request." msgstr "" -#: ../../library/socketserver.rst:464 msgid "" -"These :class:`BaseRequestHandler` subclasses override " -"the :meth:`~BaseRequestHandler.setup` and :meth:`~BaseRequestHandler.finish` " -"methods, and provide :attr:`rfile` and :attr:`wfile` attributes." +"These :class:`BaseRequestHandler` subclasses override the :meth:" +"`~BaseRequestHandler.setup` and :meth:`~BaseRequestHandler.finish` methods, " +"and provide :attr:`rfile` and :attr:`wfile` attributes." msgstr "" -#: ../../library/socketserver.rst:470 msgid "" -"A file object from which receives the request is read. Support " -"the :class:`io.BufferedIOBase` readable interface." +"A file object from which receives the request is read. Support the :class:" +"`io.BufferedIOBase` readable interface." msgstr "" -#: ../../library/socketserver.rst:475 msgid "" -"A file object to which the reply is written. Support " -"the :class:`io.BufferedIOBase` writable interface" +"A file object to which the reply is written. Support the :class:`io." +"BufferedIOBase` writable interface" msgstr "" -#: ../../library/socketserver.rst:479 msgid "" ":attr:`wfile` also supports the :class:`io.BufferedIOBase` writable " "interface." msgstr "" -#: ../../library/socketserver.rst:485 msgid "Examples" msgstr "" -#: ../../library/socketserver.rst:488 msgid ":class:`socketserver.TCPServer` Example" msgstr "" -#: ../../library/socketserver.rst:490 ../../library/socketserver.rst:601 msgid "This is the server side::" msgstr "" -#: ../../library/socketserver.rst:492 msgid "" "import socketserver\n" "\n" @@ -600,14 +520,12 @@ msgid "" " server.serve_forever()" msgstr "" -#: ../../library/socketserver.rst:526 msgid "" "An alternative request handler class that makes use of streams (file-like " "objects that simplify communication by providing the standard file " "interface)::" msgstr "" -#: ../../library/socketserver.rst:529 msgid "" "class MyTCPHandler(socketserver.StreamRequestHandler):\n" "\n" @@ -623,7 +541,6 @@ msgid "" " self.wfile.write(self.data.upper())" msgstr "" -#: ../../library/socketserver.rst:542 msgid "" "The difference is that the ``readline()`` call in the second handler will " "call ``recv()`` multiple times until it encounters a newline character, " @@ -635,11 +552,9 @@ msgid "" "the number of ``recv()`` calls on the server required to receive it." msgstr "" -#: ../../library/socketserver.rst:552 ../../library/socketserver.rst:625 msgid "This is the client side::" msgstr "" -#: ../../library/socketserver.rst:554 msgid "" "import socket\n" "import sys\n" @@ -661,15 +576,12 @@ msgid "" "print(\"Received:\", received)" msgstr "" -#: ../../library/socketserver.rst:574 ../../library/socketserver.rst:700 msgid "The output of the example should look something like this:" msgstr "" -#: ../../library/socketserver.rst:576 msgid "Server:" msgstr "" -#: ../../library/socketserver.rst:578 msgid "" "$ python TCPServer.py\n" "127.0.0.1 wrote:\n" @@ -678,11 +590,9 @@ msgid "" "b'python is nice'" msgstr "" -#: ../../library/socketserver.rst:586 msgid "Client:" msgstr "" -#: ../../library/socketserver.rst:588 msgid "" "$ python TCPClient.py hello world with TCP\n" "Sent: hello world with TCP\n" @@ -692,11 +602,9 @@ msgid "" "Received: PYTHON IS NICE" msgstr "" -#: ../../library/socketserver.rst:599 msgid ":class:`socketserver.UDPServer` Example" msgstr "" -#: ../../library/socketserver.rst:603 msgid "" "import socketserver\n" "\n" @@ -721,7 +629,6 @@ msgid "" " server.serve_forever()" msgstr "" -#: ../../library/socketserver.rst:627 msgid "" "import socket\n" "import sys\n" @@ -741,27 +648,22 @@ msgid "" "print(\"Received:\", received)" msgstr "" -#: ../../library/socketserver.rst:644 msgid "" "The output of the example should look exactly like for the TCP server " "example." msgstr "" -#: ../../library/socketserver.rst:648 msgid "Asynchronous Mixins" msgstr "" -#: ../../library/socketserver.rst:650 msgid "" -"To build asynchronous handlers, use the :class:`ThreadingMixIn` " -"and :class:`ForkingMixIn` classes." +"To build asynchronous handlers, use the :class:`ThreadingMixIn` and :class:" +"`ForkingMixIn` classes." msgstr "" -#: ../../library/socketserver.rst:653 msgid "An example for the :class:`ThreadingMixIn` class::" msgstr "" -#: ../../library/socketserver.rst:655 msgid "" "import socket\n" "import threading\n" @@ -775,8 +677,8 @@ msgid "" " response = bytes(\"{}: {}\".format(cur_thread.name, data), 'ascii')\n" " self.request.sendall(response)\n" "\n" -"class ThreadedTCPServer(socketserver.ThreadingMixIn, " -"socketserver.TCPServer):\n" +"class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver." +"TCPServer):\n" " pass\n" "\n" "def client(ip, port, message):\n" @@ -809,7 +711,6 @@ msgid "" " server.shutdown()" msgstr "" -#: ../../library/socketserver.rst:702 msgid "" "$ python ThreadedTCPServer.py\n" "Server loop running in thread: Thread-1\n" @@ -818,7 +719,6 @@ msgid "" "Received: Thread-4: Hello World 3" msgstr "" -#: ../../library/socketserver.rst:711 msgid "" "The :class:`ForkingMixIn` class is used in the same way, except that the " "server will spawn a new process for each request. Available only on POSIX " diff --git a/library/spwd.po b/library/spwd.po index 2474fb5..2a70efb 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,24 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/spwd.rst:2 msgid ":mod:`!spwd` --- The shadow password database" msgstr "" -#: ../../library/spwd.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/spwd.rst:14 msgid "" "A possible replacement is the third-party library :pypi:`python-pam`. This " "library is not supported or maintained by the Python core team." msgstr "" -#: ../../library/spwd.rst:17 msgid "" "The last version of Python that provided the :mod:`!spwd` module was `Python " "3.12 `_." diff --git a/library/sqlite3.po b/library/sqlite3.po index 945988c..f60f449 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sqlite3.rst:2 msgid ":mod:`!sqlite3` --- DB-API 2.0 interface for SQLite databases" msgstr "" -#: ../../library/sqlite3.rst:9 msgid "**Source code:** :source:`Lib/sqlite3/`" msgstr "" -#: ../../library/sqlite3.rst:25 msgid "" "SQLite is a C library that provides a lightweight disk-based database that " "doesn't require a separate server process and allows accessing the database " @@ -41,75 +37,60 @@ msgid "" "PostgreSQL or Oracle." msgstr "" -#: ../../library/sqlite3.rst:32 msgid "" "The :mod:`!sqlite3` module was written by Gerhard Häring. It provides an " -"SQL interface compliant with the DB-API 2.0 specification described " -"by :pep:`249`, and requires SQLite 3.15.2 or newer." +"SQL interface compliant with the DB-API 2.0 specification described by :pep:" +"`249`, and requires SQLite 3.15.2 or newer." msgstr "" -#: ../../library/sqlite3.rst:36 msgid "This document includes four main sections:" msgstr "" -#: ../../library/sqlite3.rst:38 msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module." msgstr "" -#: ../../library/sqlite3.rst:39 msgid "" ":ref:`sqlite3-reference` describes the classes and functions this module " "defines." msgstr "" -#: ../../library/sqlite3.rst:41 msgid ":ref:`sqlite3-howtos` details how to handle specific tasks." msgstr "" -#: ../../library/sqlite3.rst:42 msgid "" ":ref:`sqlite3-explanation` provides in-depth background on transaction " "control." msgstr "" -#: ../../library/sqlite3.rst:47 msgid "https://www.sqlite.org" msgstr "" -#: ../../library/sqlite3.rst:48 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" -#: ../../library/sqlite3.rst:51 msgid "https://www.w3schools.com/sql/" msgstr "" -#: ../../library/sqlite3.rst:52 msgid "Tutorial, reference and examples for learning SQL syntax." msgstr "" -#: ../../library/sqlite3.rst:54 msgid ":pep:`249` - Database API Specification 2.0" msgstr "" -#: ../../library/sqlite3.rst:55 msgid "PEP written by Marc-André Lemburg." msgstr "" -#: ../../library/sqlite3.rst:68 msgid "Tutorial" msgstr "" -#: ../../library/sqlite3.rst:70 msgid "" "In this tutorial, you will create a database of Monty Python movies using " "basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding " "of database concepts, including `cursors`_ and `transactions`_." msgstr "" -#: ../../library/sqlite3.rst:75 msgid "" "First, we need to create a new database and open a database connection to " "allow :mod:`!sqlite3` to work with it. Call :func:`sqlite3.connect` to " @@ -117,83 +98,70 @@ msgid "" "working directory, implicitly creating it if it does not exist:" msgstr "" -#: ../../library/sqlite3.rst:81 msgid "" "import sqlite3\n" "con = sqlite3.connect(\"tutorial.db\")" msgstr "" -#: ../../library/sqlite3.rst:86 msgid "" "The returned :class:`Connection` object ``con`` represents the connection to " "the on-disk database." msgstr "" -#: ../../library/sqlite3.rst:89 msgid "" "In order to execute SQL statements and fetch results from SQL queries, we " -"will need to use a database cursor. Call :meth:`con.cursor() " -"` to create the :class:`Cursor`:" +"will need to use a database cursor. Call :meth:`con.cursor() ` to create the :class:`Cursor`:" msgstr "" -#: ../../library/sqlite3.rst:93 msgid "cur = con.cursor()" msgstr "" -#: ../../library/sqlite3.rst:97 msgid "" "Now that we've got a database connection and a cursor, we can create a " "database table ``movie`` with columns for title, release year, and review " "score. For simplicity, we can just use column names in the table declaration " "-- thanks to the `flexible typing`_ feature of SQLite, specifying the data " -"types is optional. Execute the ``CREATE TABLE`` statement by " -"calling :meth:`cur.execute(...) `:" +"types is optional. Execute the ``CREATE TABLE`` statement by calling :meth:" +"`cur.execute(...) `:" msgstr "" -#: ../../library/sqlite3.rst:106 msgid "cur.execute(\"CREATE TABLE movie(title, year, score)\")" msgstr "" -#: ../../library/sqlite3.rst:113 msgid "" "We can verify that the new table has been created by querying the " "``sqlite_master`` table built-in to SQLite, which should now contain an " "entry for the ``movie`` table definition (see `The Schema Table`_ for " -"details). Execute that query by calling :meth:`cur.execute(...) " -"`, assign the result to ``res``, and " -"call :meth:`res.fetchone() ` to fetch the resulting row:" +"details). Execute that query by calling :meth:`cur.execute(...) `, assign the result to ``res``, and call :meth:`res.fetchone() " +"` to fetch the resulting row:" msgstr "" -#: ../../library/sqlite3.rst:121 msgid "" ">>> res = cur.execute(\"SELECT name FROM sqlite_master\")\n" ">>> res.fetchone()\n" "('movie',)" msgstr "" -#: ../../library/sqlite3.rst:127 msgid "" -"We can see that the table has been created, as the query returns " -"a :class:`tuple` containing the table's name. If we query ``sqlite_master`` " -"for a non-existent table ``spam``, :meth:`!res.fetchone` will return " -"``None``:" +"We can see that the table has been created, as the query returns a :class:" +"`tuple` containing the table's name. If we query ``sqlite_master`` for a non-" +"existent table ``spam``, :meth:`!res.fetchone` will return ``None``:" msgstr "" -#: ../../library/sqlite3.rst:132 msgid "" ">>> res = cur.execute(\"SELECT name FROM sqlite_master WHERE name='spam'\")\n" ">>> res.fetchone() is None\n" "True" msgstr "" -#: ../../library/sqlite3.rst:138 msgid "" "Now, add two rows of data supplied as SQL literals by executing an " -"``INSERT`` statement, once again by calling :meth:`cur.execute(...) " -"`:" +"``INSERT`` statement, once again by calling :meth:`cur.execute(...) `:" msgstr "" -#: ../../library/sqlite3.rst:142 msgid "" "cur.execute(\"\"\"\n" " INSERT INTO movie VALUES\n" @@ -202,46 +170,39 @@ msgid "" "\"\"\")" msgstr "" -#: ../../library/sqlite3.rst:150 msgid "" "The ``INSERT`` statement implicitly opens a transaction, which needs to be " "committed before changes are saved in the database (see :ref:`sqlite3-" -"controlling-transactions` for details). Call :meth:`con.commit() " -"` on the connection object to commit the transaction:" +"controlling-transactions` for details). Call :meth:`con.commit() ` on the connection object to commit the transaction:" msgstr "" -#: ../../library/sqlite3.rst:156 msgid "con.commit()" msgstr "" -#: ../../library/sqlite3.rst:160 msgid "" "We can verify that the data was inserted correctly by executing a ``SELECT`` " "query. Use the now-familiar :meth:`cur.execute(...) ` to " -"assign the result to ``res``, and call :meth:`res.fetchall() " -"` to return all resulting rows:" +"assign the result to ``res``, and call :meth:`res.fetchall() ` to return all resulting rows:" msgstr "" -#: ../../library/sqlite3.rst:166 msgid "" ">>> res = cur.execute(\"SELECT score FROM movie\")\n" ">>> res.fetchall()\n" "[(8.2,), (7.5,)]" msgstr "" -#: ../../library/sqlite3.rst:172 msgid "" "The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each " "containing that row's ``score`` value." msgstr "" -#: ../../library/sqlite3.rst:175 msgid "" -"Now, insert three more rows by calling :meth:`cur.executemany(...) " -"`:" +"Now, insert three more rows by calling :meth:`cur.executemany(...) `:" msgstr "" -#: ../../library/sqlite3.rst:178 msgid "" "data = [\n" " (\"Monty Python Live at the Hollywood Bowl\", 1982, 7.9),\n" @@ -252,7 +213,6 @@ msgid "" "con.commit() # Remember to commit the transaction after executing INSERT." msgstr "" -#: ../../library/sqlite3.rst:188 msgid "" "Notice that ``?`` placeholders are used to bind ``data`` to the query. " "Always use placeholders instead of :ref:`string formatting ` " @@ -260,13 +220,11 @@ msgid "" "(see :ref:`sqlite3-placeholders` for more details)." msgstr "" -#: ../../library/sqlite3.rst:194 msgid "" "We can verify that the new rows were inserted by executing a ``SELECT`` " "query, this time iterating over the results of the query:" msgstr "" -#: ../../library/sqlite3.rst:198 msgid "" ">>> for row in cur.execute(\"SELECT year, title FROM movie ORDER BY " "year\"):\n" @@ -278,21 +236,17 @@ msgid "" "(1983, \"Monty Python's The Meaning of Life\")" msgstr "" -#: ../../library/sqlite3.rst:208 msgid "" "Each row is a two-item :class:`tuple` of ``(year, title)``, matching the " "columns selected in the query." msgstr "" -#: ../../library/sqlite3.rst:211 msgid "" -"Finally, verify that the database has been written to disk by " -"calling :meth:`con.close() ` to close the existing " -"connection, opening a new one, creating a new cursor, then querying the " -"database:" +"Finally, verify that the database has been written to disk by calling :meth:" +"`con.close() ` to close the existing connection, opening a " +"new one, creating a new cursor, then querying the database:" msgstr "" -#: ../../library/sqlite3.rst:216 msgid "" ">>> con.close()\n" ">>> new_con = sqlite3.connect(\"tutorial.db\")\n" @@ -307,94 +261,76 @@ msgid "" ">>> new_con.close()" msgstr "" -#: ../../library/sqlite3.rst:227 msgid "" "You've now created an SQLite database using the :mod:`!sqlite3` module, " "inserted data and retrieved values from it in multiple ways." msgstr "" -#: ../../library/sqlite3.rst:239 msgid ":ref:`sqlite3-howtos` for further reading:" msgstr "" -#: ../../library/sqlite3.rst:241 msgid ":ref:`sqlite3-placeholders`" msgstr "" -#: ../../library/sqlite3.rst:242 msgid ":ref:`sqlite3-adapters`" msgstr "" -#: ../../library/sqlite3.rst:243 msgid ":ref:`sqlite3-converters`" msgstr "" -#: ../../library/sqlite3.rst:244 ../../library/sqlite3.rst:600 msgid ":ref:`sqlite3-connection-context-manager`" msgstr "" -#: ../../library/sqlite3.rst:245 msgid ":ref:`sqlite3-howto-row-factory`" msgstr "" -#: ../../library/sqlite3.rst:247 msgid "" ":ref:`sqlite3-explanation` for in-depth background on transaction control." msgstr "" -#: ../../library/sqlite3.rst:252 msgid "Reference" msgstr "" -#: ../../library/sqlite3.rst:260 msgid "Module functions" msgstr "" -#: ../../library/sqlite3.rst:268 msgid "Open a connection to an SQLite database." msgstr "" -#: ../../library/sqlite3.rst:0 msgid "Parameters" msgstr "" -#: ../../library/sqlite3.rst:270 msgid "" "The path to the database file to be opened. You can pass ``\":memory:\"`` to " "create an `SQLite database existing only in memory `_, and open a connection to it." msgstr "" -#: ../../library/sqlite3.rst:277 msgid "" -"How many seconds the connection should wait before raising " -"an :exc:`OperationalError` when a table is locked. If another connection " -"opens a transaction to modify a table, that table will be locked until the " +"How many seconds the connection should wait before raising an :exc:" +"`OperationalError` when a table is locked. If another connection opens a " +"transaction to modify a table, that table will be locked until the " "transaction is committed. Default five seconds." msgstr "" -#: ../../library/sqlite3.rst:284 msgid "" "Control whether and how data types not :ref:`natively supported by SQLite " "` are looked up to be converted to Python types, using the " "converters registered with :func:`register_converter`. Set it to any " -"combination (using ``|``, bitwise or) of :const:`PARSE_DECLTYPES` " -"and :const:`PARSE_COLNAMES` to enable this. Column names takes precedence " -"over declared types if both flags are set. By default (``0``), type " -"detection is disabled." +"combination (using ``|``, bitwise or) of :const:`PARSE_DECLTYPES` and :const:" +"`PARSE_COLNAMES` to enable this. Column names takes precedence over declared " +"types if both flags are set. By default (``0``), type detection is disabled." msgstr "" -#: ../../library/sqlite3.rst:295 msgid "" -"Control legacy transaction handling behaviour. " -"See :attr:`Connection.isolation_level` and :ref:`sqlite3-transaction-control-" -"isolation-level` for more information. Can be ``\"DEFERRED\"`` (default), " -"``\"EXCLUSIVE\"`` or ``\"IMMEDIATE\"``; or ``None`` to disable opening " -"transactions implicitly. Has no effect unless :attr:`Connection.autocommit` " -"is set to :const:`~sqlite3.LEGACY_TRANSACTION_CONTROL` (the default)." +"Control legacy transaction handling behaviour. See :attr:`Connection." +"isolation_level` and :ref:`sqlite3-transaction-control-isolation-level` for " +"more information. Can be ``\"DEFERRED\"`` (default), ``\"EXCLUSIVE\"`` or " +"``\"IMMEDIATE\"``; or ``None`` to disable opening transactions implicitly. " +"Has no effect unless :attr:`Connection.autocommit` is set to :const:" +"`~sqlite3.LEGACY_TRANSACTION_CONTROL` (the default)." msgstr "" -#: ../../library/sqlite3.rst:305 msgid "" "If ``True`` (default), :exc:`ProgrammingError` will be raised if the " "database connection is used by a thread other than the one that created it. " @@ -403,19 +339,16 @@ msgid "" "See :attr:`threadsafety` for more information." msgstr "" -#: ../../library/sqlite3.rst:314 msgid "" "A custom subclass of :class:`Connection` to create the connection with, if " "not the default :class:`Connection` class." msgstr "" -#: ../../library/sqlite3.rst:318 msgid "" "The number of statements that :mod:`!sqlite3` should internally cache for " "this connection, to avoid parsing overhead. By default, 128 statements." msgstr "" -#: ../../library/sqlite3.rst:323 msgid "" "If set to ``True``, *database* is interpreted as a :abbr:`URI (Uniform " "Resource Identifier)` with a file path and an optional query string. The " @@ -424,56 +357,46 @@ msgid "" "various :ref:`sqlite3-uri-tricks`." msgstr "" -#: ../../library/sqlite3.rst:332 msgid "" -"Control :pep:`249` transaction handling behaviour. " -"See :attr:`Connection.autocommit` and :ref:`sqlite3-transaction-control-" -"autocommit` for more information. *autocommit* currently defaults " -"to :const:`~sqlite3.LEGACY_TRANSACTION_CONTROL`. The default will change to " -"``False`` in a future Python release." +"Control :pep:`249` transaction handling behaviour. See :attr:`Connection." +"autocommit` and :ref:`sqlite3-transaction-control-autocommit` for more " +"information. *autocommit* currently defaults to :const:`~sqlite3." +"LEGACY_TRANSACTION_CONTROL`. The default will change to ``False`` in a " +"future Python release." msgstr "" -#: ../../library/sqlite3.rst:0 msgid "Return type" msgstr "" -#: ../../library/sqlite3.rst:343 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect`` with argument " "``database``." msgstr "" -#: ../../library/sqlite3.rst:344 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect/handle`` with " "argument ``connection_handle``." msgstr "" -#: ../../library/sqlite3.rst:346 msgid "Added the *uri* parameter." msgstr "" -#: ../../library/sqlite3.rst:349 msgid "" "*database* can now also be a :term:`path-like object`, not only a string." msgstr "" -#: ../../library/sqlite3.rst:352 msgid "Added the ``sqlite3.connect/handle`` auditing event." msgstr "" -#: ../../library/sqlite3.rst:355 msgid "Added the *autocommit* parameter." msgstr "" -#: ../../library/sqlite3.rst:358 msgid "" "Positional use of the parameters *timeout*, *detect_types*, " "*isolation_level*, *check_same_thread*, *factory*, *cached_statements*, and " "*uri* is deprecated. They will become keyword-only parameters in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:366 msgid "" "Return ``True`` if the string *statement* appears to contain one or more " "complete SQL statements. No syntactic verification or parsing of any kind is " @@ -481,11 +404,9 @@ msgid "" "and the statement is terminated by a semicolon." msgstr "" -#: ../../library/sqlite3.rst:372 msgid "For example:" msgstr "" -#: ../../library/sqlite3.rst:374 msgid "" ">>> sqlite3.complete_statement(\"SELECT foo FROM bar;\")\n" "True\n" @@ -493,20 +414,17 @@ msgid "" "False" msgstr "" -#: ../../library/sqlite3.rst:381 msgid "" "This function may be useful during command-line input to determine if the " "entered text seems to form a complete SQL statement, or if additional input " "is needed before calling :meth:`~Cursor.execute`." msgstr "" -#: ../../library/sqlite3.rst:385 msgid "" "See :func:`!runsource` in :source:`Lib/sqlite3/__main__.py` for real-world " "use." msgstr "" -#: ../../library/sqlite3.rst:390 msgid "" "Enable or disable callback tracebacks. By default you will not get any " "tracebacks in user-defined functions, aggregates, converters, authorizer " @@ -515,14 +433,12 @@ msgid "" "on :data:`sys.stderr`. Use ``False`` to disable the feature again." msgstr "" -#: ../../library/sqlite3.rst:399 msgid "" "Errors in user-defined function callbacks are logged as unraisable " "exceptions. Use an :func:`unraisable hook handler ` for " "introspection of the failed callback." msgstr "" -#: ../../library/sqlite3.rst:405 msgid "" "Register an *adapter* :term:`callable` to adapt the Python type *type* into " "an SQLite type. The adapter is called with a Python object of type *type* as " @@ -530,7 +446,6 @@ msgid "" "natively understands `." msgstr "" -#: ../../library/sqlite3.rst:413 msgid "" "Register the *converter* :term:`callable` to convert SQLite objects of type " "*typename* into a Python object of a specific type. The converter is invoked " @@ -540,24 +455,20 @@ msgid "" "type detection works." msgstr "" -#: ../../library/sqlite3.rst:421 msgid "" "Note: *typename* and the name of the type in your query are matched case-" "insensitively." msgstr "" -#: ../../library/sqlite3.rst:428 msgid "Module constants" msgstr "" -#: ../../library/sqlite3.rst:432 msgid "" "Set :attr:`~Connection.autocommit` to this constant to select old style (pre-" "Python 3.12) transaction control behaviour. See :ref:`sqlite3-transaction-" "control-isolation-level` for more information." msgstr "" -#: ../../library/sqlite3.rst:438 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function using the declared types for each column. The " @@ -566,7 +477,6 @@ msgid "" "the converter dictionary key. For example:" msgstr "" -#: ../../library/sqlite3.rst:446 msgid "" "CREATE TABLE test(\n" " i integer primary key, ! will look up a converter named \"integer\"\n" @@ -575,19 +485,16 @@ msgid "" " )" msgstr "" -#: ../../library/sqlite3.rst:454 msgid "" "This flag may be combined with :const:`PARSE_COLNAMES` using the ``|`` " "(bitwise or) operator." msgstr "" -#: ../../library/sqlite3.rst:459 msgid "" -"Generated fields (for example ``MAX(p)``) are returned as :class:`str`. " -"Use :const:`!PARSE_COLNAMES` to enforce types for such queries." +"Generated fields (for example ``MAX(p)``) are returned as :class:`str`. Use :" +"const:`!PARSE_COLNAMES` to enforce types for such queries." msgstr "" -#: ../../library/sqlite3.rst:464 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function by using the type name, parsed from the query " @@ -596,66 +503,54 @@ msgid "" "square brackets (``[]``)." msgstr "" -#: ../../library/sqlite3.rst:471 msgid "" "SELECT MAX(p) as \"p [point]\" FROM test; ! will look up converter \"point\"" msgstr "" -#: ../../library/sqlite3.rst:475 msgid "" "This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|`` " "(bitwise or) operator." msgstr "" -#: ../../library/sqlite3.rst:482 msgid "" "Flags that should be returned by the *authorizer_callback* :term:`callable` " "passed to :meth:`Connection.set_authorizer`, to indicate whether:" msgstr "" -#: ../../library/sqlite3.rst:485 msgid "Access is allowed (:const:`!SQLITE_OK`)," msgstr "" -#: ../../library/sqlite3.rst:486 msgid "" "The SQL statement should be aborted with an error (:const:`!SQLITE_DENY`)" msgstr "" -#: ../../library/sqlite3.rst:487 msgid "" "The column should be treated as a ``NULL`` value (:const:`!SQLITE_IGNORE`)" msgstr "" -#: ../../library/sqlite3.rst:491 msgid "" "String constant stating the supported DB-API level. Required by the DB-API. " "Hard-coded to ``\"2.0\"``." msgstr "" -#: ../../library/sqlite3.rst:496 msgid "" "String constant stating the type of parameter marker formatting expected by " "the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to " "``\"qmark\"``." msgstr "" -#: ../../library/sqlite3.rst:502 msgid "The ``named`` DB-API parameter style is also supported." msgstr "" -#: ../../library/sqlite3.rst:506 msgid "" "Version number of the runtime SQLite library as a :class:`string `." msgstr "" -#: ../../library/sqlite3.rst:510 msgid "" -"Version number of the runtime SQLite library as a :class:`tuple` " -"of :class:`integers `." +"Version number of the runtime SQLite library as a :class:`tuple` of :class:" +"`integers `." msgstr "" -#: ../../library/sqlite3.rst:515 msgid "" "Integer constant required by the DB-API 2.0, stating the level of thread " "safety the :mod:`!sqlite3` module supports. This attribute is set based on " @@ -663,209 +558,165 @@ msgid "" "underlying SQLite library is compiled with. The SQLite threading modes are:" msgstr "" -#: ../../library/sqlite3.rst:520 msgid "" "**Single-thread**: In this mode, all mutexes are disabled and SQLite is " "unsafe to use in more than a single thread at once." msgstr "" -#: ../../library/sqlite3.rst:522 msgid "" "**Multi-thread**: In this mode, SQLite can be safely used by multiple " "threads provided that no single database connection is used simultaneously " "in two or more threads." msgstr "" -#: ../../library/sqlite3.rst:525 msgid "" "**Serialized**: In serialized mode, SQLite can be safely used by multiple " "threads with no restriction." msgstr "" -#: ../../library/sqlite3.rst:528 msgid "" "The mappings from SQLite threading modes to DB-API 2.0 threadsafety levels " "are as follows:" msgstr "" -#: ../../library/sqlite3.rst:532 msgid "SQLite threading mode" msgstr "" -#: ../../library/sqlite3.rst:532 msgid ":pep:`threadsafety <0249#threadsafety>`" msgstr "" -#: ../../library/sqlite3.rst:532 msgid "`SQLITE_THREADSAFE`_" msgstr "" -#: ../../library/sqlite3.rst:532 msgid "DB-API 2.0 meaning" msgstr "" -#: ../../library/sqlite3.rst:535 msgid "single-thread" msgstr "" -#: ../../library/sqlite3.rst:535 msgid "0" msgstr "" -#: ../../library/sqlite3.rst:535 msgid "Threads may not share the module" msgstr "" -#: ../../library/sqlite3.rst:538 msgid "multi-thread" msgstr "" -#: ../../library/sqlite3.rst:538 ../../library/sqlite3.rst:541 msgid "1" msgstr "1" -#: ../../library/sqlite3.rst:538 msgid "2" msgstr "2" -#: ../../library/sqlite3.rst:538 msgid "Threads may share the module, but not connections" msgstr "" -#: ../../library/sqlite3.rst:541 msgid "serialized" msgstr "" -#: ../../library/sqlite3.rst:541 msgid "3" msgstr "3" -#: ../../library/sqlite3.rst:541 msgid "Threads may share the module, connections and cursors" msgstr "" -#: ../../library/sqlite3.rst:547 msgid "Set *threadsafety* dynamically instead of hard-coding it to ``1``." msgstr "" -#: ../../library/sqlite3.rst:569 msgid "" -"These constants are used for the :meth:`Connection.setconfig` " -"and :meth:`~Connection.getconfig` methods." +"These constants are used for the :meth:`Connection.setconfig` and :meth:" +"`~Connection.getconfig` methods." msgstr "" -#: ../../library/sqlite3.rst:572 msgid "" "The availability of these constants varies depending on the version of " "SQLite Python was compiled with." msgstr "" -#: ../../library/sqlite3.rst:579 msgid "https://www.sqlite.org/c3ref/c_dbconfig_defensive.html" msgstr "" -#: ../../library/sqlite3.rst:580 msgid "SQLite docs: Database Connection Configuration Options" msgstr "" -#: ../../library/sqlite3.rst:582 msgid "The :data:`!version` and :data:`!version_info` constants." msgstr "" -#: ../../library/sqlite3.rst:588 msgid "Connection objects" msgstr "" -#: ../../library/sqlite3.rst:592 msgid "" "Each open SQLite database is represented by a ``Connection`` object, which " -"is created using :func:`sqlite3.connect`. Their main purpose is " -"creating :class:`Cursor` objects, and :ref:`sqlite3-controlling-" -"transactions`." +"is created using :func:`sqlite3.connect`. Their main purpose is creating :" +"class:`Cursor` objects, and :ref:`sqlite3-controlling-transactions`." msgstr "" -#: ../../library/sqlite3.rst:599 msgid ":ref:`sqlite3-connection-shortcuts`" msgstr "" -#: ../../library/sqlite3.rst:605 msgid "" -"A :exc:`ResourceWarning` is emitted if :meth:`close` is not called before " -"a :class:`!Connection` object is deleted." +"A :exc:`ResourceWarning` is emitted if :meth:`close` is not called before a :" +"class:`!Connection` object is deleted." msgstr "" -#: ../../library/sqlite3.rst:608 msgid "An SQLite database connection has the following attributes and methods:" msgstr "" -#: ../../library/sqlite3.rst:612 msgid "" "Create and return a :class:`Cursor` object. The cursor method accepts a " -"single optional parameter *factory*. If supplied, this must be " -"a :term:`callable` returning an instance of :class:`Cursor` or its " -"subclasses." +"single optional parameter *factory*. If supplied, this must be a :term:" +"`callable` returning an instance of :class:`Cursor` or its subclasses." msgstr "" -#: ../../library/sqlite3.rst:619 msgid "" "Open a :class:`Blob` handle to an existing :abbr:`BLOB (Binary Large " "OBject)`." msgstr "" -#: ../../library/sqlite3.rst:622 msgid "The name of the table where the blob is located." msgstr "" -#: ../../library/sqlite3.rst:625 msgid "The name of the column where the blob is located." msgstr "" -#: ../../library/sqlite3.rst:628 msgid "The name of the row where the blob is located." msgstr "" -#: ../../library/sqlite3.rst:631 msgid "" "Set to ``True`` if the blob should be opened without write permissions. " "Defaults to ``False``." msgstr "" -#: ../../library/sqlite3.rst:636 msgid "" "The name of the database where the blob is located. Defaults to ``\"main\"``." msgstr "" -#: ../../library/sqlite3.rst:0 msgid "Raises" msgstr "" -#: ../../library/sqlite3.rst:640 msgid "When trying to open a blob in a ``WITHOUT ROWID`` table." msgstr "" -#: ../../library/sqlite3.rst:647 msgid "" "The blob size cannot be changed using the :class:`Blob` class. Use the SQL " "function ``zeroblob`` to create a blob with a fixed size." msgstr "" -#: ../../library/sqlite3.rst:654 msgid "" "Commit any pending transaction to the database. If :attr:`autocommit` is " -"``True``, or there is no open transaction, this method does nothing. " -"If :attr:`!autocommit` is ``False``, a new transaction is implicitly opened " -"if a pending transaction was committed by this method." +"``True``, or there is no open transaction, this method does nothing. If :" +"attr:`!autocommit` is ``False``, a new transaction is implicitly opened if a " +"pending transaction was committed by this method." msgstr "" -#: ../../library/sqlite3.rst:662 msgid "" "Roll back to the start of any pending transaction. If :attr:`autocommit` is " -"``True``, or there is no open transaction, this method does nothing. " -"If :attr:`!autocommit` is ``False``, a new transaction is implicitly opened " -"if a pending transaction was rolled back by this method." +"``True``, or there is no open transaction, this method does nothing. If :" +"attr:`!autocommit` is ``False``, a new transaction is implicitly opened if a " +"pending transaction was rolled back by this method." msgstr "" -#: ../../library/sqlite3.rst:670 msgid "" "Close the database connection. If :attr:`autocommit` is ``False``, any " "pending transaction is implicitly rolled back. If :attr:`!autocommit` is " @@ -874,63 +725,50 @@ msgid "" "losing pending changes." msgstr "" -#: ../../library/sqlite3.rst:680 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.execute` on it " "with the given *sql* and *parameters*. Return the new cursor object." msgstr "" -#: ../../library/sqlite3.rst:686 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executemany` on " "it with the given *sql* and *parameters*. Return the new cursor object." msgstr "" -#: ../../library/sqlite3.rst:692 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executescript` " "on it with the given *sql_script*. Return the new cursor object." msgstr "" -#: ../../library/sqlite3.rst:698 msgid "Create or remove a user-defined SQL function." msgstr "" -#: ../../library/sqlite3.rst:700 msgid "The name of the SQL function." msgstr "" -#: ../../library/sqlite3.rst:703 msgid "" "The number of arguments the SQL function can accept. If ``-1``, it may take " "any number of arguments." msgstr "" -#: ../../library/sqlite3.rst:707 msgid "" "A :term:`callable` that is called when the SQL function is invoked. The " "callable must return :ref:`a type natively supported by SQLite `. Set to ``None`` to remove an existing SQL function." msgstr "" -#: ../../library/sqlite3.rst:714 msgid "" "If ``True``, the created SQL function is marked as `deterministic `_, which allows SQLite to perform additional " "optimizations." msgstr "" -#: ../../library/sqlite3.rst:719 msgid "Added the *deterministic* parameter." msgstr "" -#: ../../library/sqlite3.rst:722 ../../library/sqlite3.rst:766 -#: ../../library/sqlite3.rst:834 ../../library/sqlite3.rst:1113 -#: ../../library/sqlite3.rst:1537 ../../library/sqlite3.rst:1578 msgid "Example:" msgstr "" -#: ../../library/sqlite3.rst:724 msgid "" ">>> import hashlib\n" ">>> def md5sum(t):\n" @@ -943,27 +781,22 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:738 msgid "" "Passing *name*, *narg*, and *func* as keyword arguments is deprecated. These " "parameters will become positional-only in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:744 msgid "Create or remove a user-defined SQL aggregate function." msgstr "" -#: ../../library/sqlite3.rst:746 msgid "The name of the SQL aggregate function." msgstr "" -#: ../../library/sqlite3.rst:749 msgid "" "The number of arguments the SQL aggregate function can accept. If ``-1``, it " "may take any number of arguments." msgstr "" -#: ../../library/sqlite3.rst:753 msgid "" "A class must implement the following methods: * ``step()``: Add a row to " "the aggregate. * ``finalize()``: Return the final result of the aggregate " @@ -972,31 +805,25 @@ msgid "" "*n_arg*. Set to ``None`` to remove an existing SQL aggregate function." msgstr "" -#: ../../library/sqlite3.rst:754 msgid "A class must implement the following methods:" msgstr "" -#: ../../library/sqlite3.rst:756 msgid "``step()``: Add a row to the aggregate." msgstr "" -#: ../../library/sqlite3.rst:757 ../../library/sqlite3.rst:818 msgid "" "``finalize()``: Return the final result of the aggregate as :ref:`a type " "natively supported by SQLite `." msgstr "" -#: ../../library/sqlite3.rst:760 msgid "" "The number of arguments that the ``step()`` method must accept is controlled " "by *n_arg*." msgstr "" -#: ../../library/sqlite3.rst:763 msgid "Set to ``None`` to remove an existing SQL aggregate function." msgstr "" -#: ../../library/sqlite3.rst:768 msgid "" "class MySum:\n" " def __init__(self):\n" @@ -1019,27 +846,22 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:797 msgid "" "Passing *name*, *n_arg*, and *aggregate_class* as keyword arguments is " "deprecated. These parameters will become positional-only in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:803 msgid "Create or remove a user-defined aggregate window function." msgstr "" -#: ../../library/sqlite3.rst:805 msgid "The name of the SQL aggregate window function to create or remove." msgstr "" -#: ../../library/sqlite3.rst:808 msgid "" "The number of arguments the SQL aggregate window function can accept. If " "``-1``, it may take any number of arguments." msgstr "" -#: ../../library/sqlite3.rst:812 msgid "" "A class that must implement the following methods: * ``step()``: Add a row " "to the current window. * ``value()``: Return the current value of the " @@ -1051,39 +873,31 @@ msgid "" "function." msgstr "" -#: ../../library/sqlite3.rst:813 msgid "A class that must implement the following methods:" msgstr "" -#: ../../library/sqlite3.rst:815 msgid "``step()``: Add a row to the current window." msgstr "" -#: ../../library/sqlite3.rst:816 msgid "``value()``: Return the current value of the aggregate." msgstr "" -#: ../../library/sqlite3.rst:817 msgid "``inverse()``: Remove a row from the current window." msgstr "" -#: ../../library/sqlite3.rst:821 msgid "" "The number of arguments that the ``step()`` and ``value()`` methods must " "accept is controlled by *num_params*." msgstr "" -#: ../../library/sqlite3.rst:824 msgid "Set to ``None`` to remove an existing SQL aggregate window function." msgstr "" -#: ../../library/sqlite3.rst:826 msgid "" "If used with a version of SQLite older than 3.25.0, which does not support " "aggregate window functions." msgstr "" -#: ../../library/sqlite3.rst:836 msgid "" "# Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc\n" "class WindowSumInt:\n" @@ -1131,30 +945,24 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:890 msgid "" "Create a collation named *name* using the collating function *callable*. " "*callable* is passed two :class:`string ` arguments, and it should " "return an :class:`integer `:" msgstr "" -#: ../../library/sqlite3.rst:894 msgid "``1`` if the first is ordered higher than the second" msgstr "" -#: ../../library/sqlite3.rst:895 msgid "``-1`` if the first is ordered lower than the second" msgstr "" -#: ../../library/sqlite3.rst:896 msgid "``0`` if they are ordered equal" msgstr "" -#: ../../library/sqlite3.rst:898 msgid "The following example shows a reverse sorting collation:" msgstr "" -#: ../../library/sqlite3.rst:900 msgid "" "def collate_reverse(string1, string2):\n" " if string1 == string2:\n" @@ -1175,33 +983,28 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:926 msgid "Remove a collation function by setting *callable* to ``None``." msgstr "" -#: ../../library/sqlite3.rst:928 msgid "" "The collation name can contain any Unicode character. Earlier, only ASCII " "characters were allowed." msgstr "" -#: ../../library/sqlite3.rst:935 msgid "" "Call this method from a different thread to abort any queries that might be " -"executing on the connection. Aborted queries will raise " -"an :exc:`OperationalError`." +"executing on the connection. Aborted queries will raise an :exc:" +"`OperationalError`." msgstr "" -#: ../../library/sqlite3.rst:942 msgid "" "Register :term:`callable` *authorizer_callback* to be invoked for each " "attempt to access a column of a table in the database. The callback should " -"return one of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, " -"or :const:`SQLITE_IGNORE` to signal how access to the column should be " -"handled by the underlying SQLite library." +"return one of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, or :const:" +"`SQLITE_IGNORE` to signal how access to the column should be handled by the " +"underlying SQLite library." msgstr "" -#: ../../library/sqlite3.rst:949 msgid "" "The first argument to the callback signifies what kind of operation is to be " "authorized. The second and third argument will be arguments or ``None`` " @@ -1211,7 +1014,6 @@ msgid "" "attempt or ``None`` if this access attempt is directly from input SQL code." msgstr "" -#: ../../library/sqlite3.rst:956 msgid "" "Please consult the SQLite documentation about the possible values for the " "first argument and the meaning of the second and third argument depending on " @@ -1219,21 +1021,17 @@ msgid "" "module." msgstr "" -#: ../../library/sqlite3.rst:960 msgid "Passing ``None`` as *authorizer_callback* will disable the authorizer." msgstr "" -#: ../../library/sqlite3.rst:962 msgid "Added support for disabling the authorizer using ``None``." msgstr "" -#: ../../library/sqlite3.rst:965 msgid "" "Passing *authorizer_callback* as a keyword argument is deprecated. The " "parameter will become positional-only in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:972 msgid "" "Register :term:`callable` *progress_handler* to be invoked for every *n* " "instructions of the SQLite virtual machine. This is useful if you want to " @@ -1241,60 +1039,50 @@ msgid "" "a GUI." msgstr "" -#: ../../library/sqlite3.rst:977 msgid "" "If you want to clear any previously installed progress handler, call the " "method with ``None`` for *progress_handler*." msgstr "" -#: ../../library/sqlite3.rst:980 msgid "" "Returning a non-zero value from the handler function will terminate the " "currently executing query and cause it to raise a :exc:`DatabaseError` " "exception." msgstr "" -#: ../../library/sqlite3.rst:984 msgid "" "Passing *progress_handler* as a keyword argument is deprecated. The " "parameter will become positional-only in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:991 msgid "" "Register :term:`callable` *trace_callback* to be invoked for each SQL " "statement that is actually executed by the SQLite backend." msgstr "" -#: ../../library/sqlite3.rst:994 msgid "" "The only argument passed to the callback is the statement (as :class:`str`) " "that is being executed. The return value of the callback is ignored. Note " -"that the backend does not only run statements passed to " -"the :meth:`Cursor.execute` methods. Other sources include " -"the :ref:`transaction management ` of " -"the :mod:`!sqlite3` module and the execution of triggers defined in the " -"current database." +"that the backend does not only run statements passed to the :meth:`Cursor." +"execute` methods. Other sources include the :ref:`transaction management " +"` of the :mod:`!sqlite3` module and the " +"execution of triggers defined in the current database." msgstr "" -#: ../../library/sqlite3.rst:1002 msgid "Passing ``None`` as *trace_callback* will disable the trace callback." msgstr "" -#: ../../library/sqlite3.rst:1005 msgid "" "Exceptions raised in the trace callback are not propagated. As a development " "and debugging aid, use :meth:`~sqlite3.enable_callback_tracebacks` to enable " "printing tracebacks from exceptions raised in the trace callback." msgstr "" -#: ../../library/sqlite3.rst:1012 msgid "" "Passing *trace_callback* as a keyword argument is deprecated. The parameter " "will become positional-only in Python 3.15." msgstr "" -#: ../../library/sqlite3.rst:1019 msgid "" "Enable the SQLite engine to load SQLite extensions from shared libraries if " "*enabled* is ``True``; else, disallow loading SQLite extensions. SQLite " @@ -1303,26 +1091,22 @@ msgid "" "distributed with SQLite." msgstr "" -#: ../../library/sqlite3.rst:1028 msgid "" "The :mod:`!sqlite3` module is not built with loadable extension support by " "default, because some platforms (notably macOS) have SQLite libraries which " "are compiled without this feature. To get loadable extension support, you " -"must pass the :option:`--enable-loadable-sqlite-extensions` option " -"to :program:`configure`." +"must pass the :option:`--enable-loadable-sqlite-extensions` option to :" +"program:`configure`." msgstr "" -#: ../../library/sqlite3.rst:1035 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.enable_load_extension`` " "with arguments ``connection``, ``enabled``." msgstr "" -#: ../../library/sqlite3.rst:1039 msgid "Added the ``sqlite3.enable_load_extension`` auditing event." msgstr "" -#: ../../library/sqlite3.rst:1045 msgid "" "con.enable_load_extension(True)\n" "\n" @@ -1352,52 +1136,43 @@ msgid "" " print(row)" msgstr "" -#: ../../library/sqlite3.rst:1071 msgid "" "Load an SQLite extension from a shared library. Enable extension loading " "with :meth:`enable_load_extension` before calling this method." msgstr "" -#: ../../library/sqlite3.rst:1075 msgid "The path to the SQLite extension." msgstr "" -#: ../../library/sqlite3.rst:1079 msgid "" "Entry point name. If ``None`` (the default), SQLite will come up with an " "entry point name of its own; see the SQLite docs `Loading an Extension`_ for " "details." msgstr "" -#: ../../library/sqlite3.rst:1088 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.load_extension`` with " "arguments ``connection``, ``path``." msgstr "" -#: ../../library/sqlite3.rst:1092 msgid "Added the ``sqlite3.load_extension`` auditing event." msgstr "" -#: ../../library/sqlite3.rst:1095 msgid "Added the *entrypoint* parameter." msgstr "" -#: ../../library/sqlite3.rst:1102 msgid "" "Return an :term:`iterator` to dump the database as SQL source code. Useful " -"when saving an in-memory database for later restoration. Similar to the " -"``.dump`` command in the :program:`sqlite3` shell." +"when saving an in-memory database for later restoration. Similar to the ``." +"dump`` command in the :program:`sqlite3` shell." msgstr "" -#: ../../library/sqlite3.rst:1106 msgid "" "An optional ``LIKE`` pattern for database objects to dump, e.g. " "``prefix_%``. If ``None`` (the default), all database objects will be " "included." msgstr "" -#: ../../library/sqlite3.rst:1115 msgid "" "# Convert file example.db to SQL dump file dump.sql\n" "con = sqlite3.connect('example.db')\n" @@ -1407,35 +1182,28 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:1126 ../../library/sqlite3.rst:1200 msgid ":ref:`sqlite3-howto-encoding`" msgstr "" -#: ../../library/sqlite3.rst:1128 msgid "Added the *filter* parameter." msgstr "" -#: ../../library/sqlite3.rst:1133 msgid "Create a backup of an SQLite database." msgstr "" -#: ../../library/sqlite3.rst:1135 msgid "" "Works even if the database is being accessed by other clients or " "concurrently by the same connection." msgstr "" -#: ../../library/sqlite3.rst:1138 msgid "The database connection to save the backup to." msgstr "" -#: ../../library/sqlite3.rst:1141 msgid "" "The number of pages to copy at a time. If equal to or less than ``0``, the " "entire database is copied in a single step. Defaults to ``-1``." msgstr "" -#: ../../library/sqlite3.rst:1147 msgid "" "If set to a :term:`callable`, it is invoked with three integer arguments for " "every backup iteration: the *status* of the last iteration, the *remaining* " @@ -1443,24 +1211,20 @@ msgid "" "Defaults to ``None``." msgstr "" -#: ../../library/sqlite3.rst:1156 msgid "" "The name of the database to back up. Either ``\"main\"`` (the default) for " "the main database, ``\"temp\"`` for the temporary database, or the name of a " "custom database as attached using the ``ATTACH DATABASE`` SQL statement." msgstr "" -#: ../../library/sqlite3.rst:1163 msgid "" "The number of seconds to sleep between successive attempts to back up " "remaining pages." msgstr "" -#: ../../library/sqlite3.rst:1167 msgid "Example 1, copy an existing database into another:" msgstr "" -#: ../../library/sqlite3.rst:1169 msgid "" "def progress(status, remaining, total):\n" " print(f'Copied {total-remaining} of {total} pages...')\n" @@ -1473,11 +1237,9 @@ msgid "" "src.close()" msgstr "" -#: ../../library/sqlite3.rst:1186 msgid "Example 2, copy an existing database into a transient copy:" msgstr "" -#: ../../library/sqlite3.rst:1188 msgid "" "src = sqlite3.connect('example.db')\n" "dst = sqlite3.connect(':memory:')\n" @@ -1486,31 +1248,25 @@ msgid "" "src.close()" msgstr "" -#: ../../library/sqlite3.rst:1204 msgid "Get a connection runtime limit." msgstr "" -#: ../../library/sqlite3.rst:1206 msgid "The `SQLite limit category`_ to be queried." msgstr "" -#: ../../library/sqlite3.rst:1211 ../../library/sqlite3.rst:1248 msgid "If *category* is not recognised by the underlying SQLite library." msgstr "" -#: ../../library/sqlite3.rst:1214 msgid "" -"Example, query the maximum length of an SQL statement " -"for :class:`Connection` ``con`` (the default is 1000000000):" +"Example, query the maximum length of an SQL statement for :class:" +"`Connection` ``con`` (the default is 1000000000):" msgstr "" -#: ../../library/sqlite3.rst:1224 msgid "" ">>> con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH)\n" "1000000000" msgstr "" -#: ../../library/sqlite3.rst:1234 msgid "" "Set a connection runtime limit. Attempts to increase a limit above its hard " "upper bound are silently truncated to the hard upper bound. Regardless of " @@ -1518,22 +1274,18 @@ msgid "" "returned." msgstr "" -#: ../../library/sqlite3.rst:1239 msgid "The `SQLite limit category`_ to be set." msgstr "" -#: ../../library/sqlite3.rst:1242 msgid "" "The value of the new limit. If negative, the current limit is unchanged." msgstr "" -#: ../../library/sqlite3.rst:1251 msgid "" "Example, limit the number of attached databases to 1 for :class:`Connection` " "``con`` (the default limit is 10):" msgstr "" -#: ../../library/sqlite3.rst:1254 msgid "" ">>> con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1)\n" "10\n" @@ -1541,25 +1293,20 @@ msgid "" "1" msgstr "" -#: ../../library/sqlite3.rst:1272 msgid "Query a boolean connection configuration option." msgstr "" -#: ../../library/sqlite3.rst:1274 ../../library/sqlite3.rst:1285 msgid "A :ref:`SQLITE_DBCONFIG code `." msgstr "" -#: ../../library/sqlite3.rst:1283 msgid "Set a boolean connection configuration option." msgstr "" -#: ../../library/sqlite3.rst:1288 msgid "" "``True`` if the configuration option should be enabled (default); ``False`` " "if it should be disabled." msgstr "" -#: ../../library/sqlite3.rst:1296 msgid "" "Serialize a database into a :class:`bytes` object. For an ordinary on-disk " "database file, the serialization is just a copy of the disk file. For an in-" @@ -1568,114 +1315,93 @@ msgid "" "backed up to disk." msgstr "" -#: ../../library/sqlite3.rst:1302 msgid "The database name to be serialized. Defaults to ``\"main\"``." msgstr "" -#: ../../library/sqlite3.rst:1310 msgid "" "This method is only available if the underlying SQLite library has the " "serialize API." msgstr "" -#: ../../library/sqlite3.rst:1318 msgid "" -"Deserialize a :meth:`serialized ` database into " -"a :class:`Connection`. This method causes the database connection to " -"disconnect from database *name*, and reopen *name* as an in-memory database " -"based on the serialization contained in *data*." +"Deserialize a :meth:`serialized ` database into a :class:" +"`Connection`. This method causes the database connection to disconnect from " +"database *name*, and reopen *name* as an in-memory database based on the " +"serialization contained in *data*." msgstr "" -#: ../../library/sqlite3.rst:1324 msgid "A serialized database." msgstr "" -#: ../../library/sqlite3.rst:1327 msgid "The database name to deserialize into. Defaults to ``\"main\"``." msgstr "" -#: ../../library/sqlite3.rst:1331 msgid "" "If the database connection is currently involved in a read transaction or a " "backup operation." msgstr "" -#: ../../library/sqlite3.rst:1335 msgid "If *data* does not contain a valid SQLite database." msgstr "" -#: ../../library/sqlite3.rst:1338 msgid "If :func:`len(data) ` is larger than ``2**63 - 1``." msgstr "" -#: ../../library/sqlite3.rst:1343 msgid "" "This method is only available if the underlying SQLite library has the " "deserialize API." msgstr "" -#: ../../library/sqlite3.rst:1350 msgid "" "This attribute controls :pep:`249`-compliant transaction behaviour. :attr:`!" "autocommit` has three allowed values:" msgstr "" -#: ../../library/sqlite3.rst:1353 msgid "" -"``False``: Select :pep:`249`-compliant transaction behaviour, implying " -"that :mod:`!sqlite3` ensures a transaction is always open. " -"Use :meth:`commit` and :meth:`rollback` to close transactions." +"``False``: Select :pep:`249`-compliant transaction behaviour, implying that :" +"mod:`!sqlite3` ensures a transaction is always open. Use :meth:`commit` and :" +"meth:`rollback` to close transactions." msgstr "" -#: ../../library/sqlite3.rst:1357 msgid "This is the recommended value of :attr:`!autocommit`." msgstr "" -#: ../../library/sqlite3.rst:1359 msgid "" -"``True``: Use SQLite's `autocommit mode`_. :meth:`commit` " -"and :meth:`rollback` have no effect in this mode." +"``True``: Use SQLite's `autocommit mode`_. :meth:`commit` and :meth:" +"`rollback` have no effect in this mode." msgstr "" -#: ../../library/sqlite3.rst:1362 msgid "" ":data:`LEGACY_TRANSACTION_CONTROL`: Pre-Python 3.12 (non-:pep:`249`-" "compliant) transaction control. See :attr:`isolation_level` for more details." msgstr "" -#: ../../library/sqlite3.rst:1366 msgid "This is currently the default value of :attr:`!autocommit`." msgstr "" -#: ../../library/sqlite3.rst:1368 msgid "" "Changing :attr:`!autocommit` to ``False`` will open a new transaction, and " "changing it to ``True`` will commit any pending transaction." msgstr "" -#: ../../library/sqlite3.rst:1371 msgid "See :ref:`sqlite3-transaction-control-autocommit` for more details." msgstr "" -#: ../../library/sqlite3.rst:1375 msgid "" -"The :attr:`isolation_level` attribute has no effect " -"unless :attr:`autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`." +"The :attr:`isolation_level` attribute has no effect unless :attr:" +"`autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`." msgstr "" -#: ../../library/sqlite3.rst:1382 msgid "" "This read-only attribute corresponds to the low-level SQLite `autocommit " "mode`_." msgstr "" -#: ../../library/sqlite3.rst:1385 msgid "" "``True`` if a transaction is active (there are uncommitted changes), " "``False`` otherwise." msgstr "" -#: ../../library/sqlite3.rst:1392 msgid "" "Controls the :ref:`legacy transaction handling mode ` of :mod:`!sqlite3`. If set to ``None``, " @@ -1685,13 +1411,11 @@ msgid "" "` is performed." msgstr "" -#: ../../library/sqlite3.rst:1400 msgid "" "If not overridden by the *isolation_level* parameter of :func:`connect`, the " "default is ``\"\"``, which is an alias for ``\"DEFERRED\"``." msgstr "" -#: ../../library/sqlite3.rst:1405 msgid "" "Using :attr:`autocommit` to control transaction handling is recommended over " "using :attr:`!isolation_level`. :attr:`!isolation_level` has no effect " @@ -1699,139 +1423,114 @@ msgid "" "default)." msgstr "" -#: ../../library/sqlite3.rst:1412 msgid "" "The initial :attr:`~Cursor.row_factory` for :class:`Cursor` objects created " -"from this connection. Assigning to this attribute does not affect " -"the :attr:`!row_factory` of existing cursors belonging to this connection, " -"only new ones. Is ``None`` by default, meaning each row is returned as " -"a :class:`tuple`." +"from this connection. Assigning to this attribute does not affect the :attr:" +"`!row_factory` of existing cursors belonging to this connection, only new " +"ones. Is ``None`` by default, meaning each row is returned as a :class:" +"`tuple`." msgstr "" -#: ../../library/sqlite3.rst:1419 ../../library/sqlite3.rst:1705 -#: ../../library/sqlite3.rst:1728 msgid "See :ref:`sqlite3-howto-row-factory` for more details." msgstr "" -#: ../../library/sqlite3.rst:1423 msgid "" "A :term:`callable` that accepts a :class:`bytes` parameter and returns a " "text representation of it. The callable is invoked for SQLite values with " "the ``TEXT`` data type. By default, this attribute is set to :class:`str`." msgstr "" -#: ../../library/sqlite3.rst:1428 msgid "See :ref:`sqlite3-howto-encoding` for more details." msgstr "" -#: ../../library/sqlite3.rst:1432 msgid "" "Return the total number of database rows that have been modified, inserted, " "or deleted since the database connection was opened." msgstr "" -#: ../../library/sqlite3.rst:1439 msgid "Cursor objects" msgstr "" -#: ../../library/sqlite3.rst:1441 msgid "" "A ``Cursor`` object represents a `database cursor`_ which is used to execute " "SQL statements, and manage the context of a fetch operation. Cursors are " -"created using :meth:`Connection.cursor`, or by using any of " -"the :ref:`connection shortcut methods `." +"created using :meth:`Connection.cursor`, or by using any of the :ref:" +"`connection shortcut methods `." msgstr "" -#: ../../library/sqlite3.rst:1448 msgid "" -"Cursor objects are :term:`iterators `, meaning that if " -"you :meth:`~Cursor.execute` a ``SELECT`` query, you can simply iterate over " -"the cursor to fetch the resulting rows:" +"Cursor objects are :term:`iterators `, meaning that if you :meth:" +"`~Cursor.execute` a ``SELECT`` query, you can simply iterate over the cursor " +"to fetch the resulting rows:" msgstr "" -#: ../../library/sqlite3.rst:1459 msgid "" "for row in cur.execute(\"SELECT t FROM data\"):\n" " print(row)" msgstr "" -#: ../../library/sqlite3.rst:1473 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" -#: ../../library/sqlite3.rst:1480 msgid "" -"Execute a single SQL statement, optionally binding Python values " -"using :ref:`placeholders `." +"Execute a single SQL statement, optionally binding Python values using :ref:" +"`placeholders `." msgstr "" -#: ../../library/sqlite3.rst:1484 msgid "A single SQL statement." msgstr "" -#: ../../library/sqlite3.rst:1487 msgid "" "Python values to bind to placeholders in *sql*. A :class:`!dict` if named " "placeholders are used. A :term:`!sequence` if unnamed placeholders are used. " "See :ref:`sqlite3-placeholders`." msgstr "" -#: ../../library/sqlite3.rst:1494 msgid "" "When *sql* contains more than one SQL statement. When :ref:`named " "placeholders ` are used and *parameters* is a sequence " "instead of a :class:`dict`." msgstr "" -#: ../../library/sqlite3.rst:1499 msgid "" -"If :attr:`~Connection.autocommit` " -"is :data:`LEGACY_TRANSACTION_CONTROL`, :attr:`~Connection.isolation_level` " -"is not ``None``, *sql* is an ``INSERT``, ``UPDATE``, ``DELETE``, or " -"``REPLACE`` statement, and there is no open transaction, a transaction is " -"implicitly opened before executing *sql*." +"If :attr:`~Connection.autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`, :" +"attr:`~Connection.isolation_level` is not ``None``, *sql* is an ``INSERT``, " +"``UPDATE``, ``DELETE``, or ``REPLACE`` statement, and there is no open " +"transaction, a transaction is implicitly opened before executing *sql*." msgstr "" -#: ../../library/sqlite3.rst:1508 msgid "" ":exc:`ProgrammingError` is emitted if :ref:`named placeholders ` are used and *parameters* is a sequence instead of " -"a :class:`dict`." +"placeholders>` are used and *parameters* is a sequence instead of a :class:" +"`dict`." msgstr "" -#: ../../library/sqlite3.rst:1512 msgid "Use :meth:`executescript` to execute multiple SQL statements." msgstr "" -#: ../../library/sqlite3.rst:1516 msgid "" "For every item in *parameters*, repeatedly execute the :ref:`parameterized " "` :abbr:`DML (Data Manipulation Language)` SQL " "statement *sql*." msgstr "" -#: ../../library/sqlite3.rst:1520 msgid "Uses the same implicit transaction handling as :meth:`~Cursor.execute`." msgstr "" -#: ../../library/sqlite3.rst:1522 msgid "A single SQL DML statement." msgstr "" -#: ../../library/sqlite3.rst:1525 msgid "" "An :term:`!iterable` of parameters to bind with the placeholders in *sql*. " "See :ref:`sqlite3-placeholders`." msgstr "" -#: ../../library/sqlite3.rst:1531 msgid "" "When *sql* contains more than one SQL statement or is not a DML statement, " "When :ref:`named placeholders ` are used and the items " "in *parameters* are sequences instead of :class:`dict`\\s." msgstr "" -#: ../../library/sqlite3.rst:1539 msgid "" "rows = [\n" " (\"row1\",),\n" @@ -1841,33 +1540,28 @@ msgid "" "cur.executemany(\"INSERT INTO data VALUES(?)\", rows)" msgstr "" -#: ../../library/sqlite3.rst:1554 msgid "" "Any resulting rows are discarded, including DML statements with `RETURNING " "clauses`_." msgstr "" -#: ../../library/sqlite3.rst:1561 msgid "" ":exc:`ProgrammingError` is emitted if :ref:`named placeholders ` are used and the items in *parameters* are sequences instead " "of :class:`dict`\\s." msgstr "" -#: ../../library/sqlite3.rst:1568 msgid "" -"Execute the SQL statements in *sql_script*. If " -"the :attr:`~Connection.autocommit` is :data:`LEGACY_TRANSACTION_CONTROL` and " -"there is a pending transaction, an implicit ``COMMIT`` statement is executed " -"first. No other implicit transaction control is performed; any transaction " -"control must be added to *sql_script*." +"Execute the SQL statements in *sql_script*. If the :attr:`~Connection." +"autocommit` is :data:`LEGACY_TRANSACTION_CONTROL` and there is a pending " +"transaction, an implicit ``COMMIT`` statement is executed first. No other " +"implicit transaction control is performed; any transaction control must be " +"added to *sql_script*." msgstr "" -#: ../../library/sqlite3.rst:1576 msgid "*sql_script* must be a :class:`string `." msgstr "" -#: ../../library/sqlite3.rst:1580 msgid "" "# cur is an sqlite3.Cursor object\n" "cur.executescript(\"\"\"\n" @@ -1879,20 +1573,17 @@ msgid "" "\"\"\")" msgstr "" -#: ../../library/sqlite3.rst:1593 msgid "" "If :attr:`~Cursor.row_factory` is ``None``, return the next row query result " "set as a :class:`tuple`. Else, pass it to the row factory and return its " "result. Return ``None`` if no more data is available." msgstr "" -#: ../../library/sqlite3.rst:1601 msgid "" "Return the next set of rows of a query result as a :class:`list`. Return an " "empty list if no more rows are available." msgstr "" -#: ../../library/sqlite3.rst:1604 msgid "" "The number of rows to fetch per call is specified by the *size* parameter. " "If *size* is not given, :attr:`arraysize` determines the number of rows to " @@ -1900,7 +1591,6 @@ msgid "" "available are returned." msgstr "" -#: ../../library/sqlite3.rst:1610 msgid "" "Note there are performance considerations involved with the *size* " "parameter. For optimal performance, it is usually best to use the arraysize " @@ -1908,44 +1598,37 @@ msgid "" "the same value from one :meth:`fetchmany` call to the next." msgstr "" -#: ../../library/sqlite3.rst:1617 msgid "" "Return all (remaining) rows of a query result as a :class:`list`. Return an " "empty list if no rows are available. Note that the :attr:`arraysize` " "attribute can affect the performance of this operation." msgstr "" -#: ../../library/sqlite3.rst:1624 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "" -#: ../../library/sqlite3.rst:1626 msgid "" -"The cursor will be unusable from this point forward; " -"a :exc:`ProgrammingError` exception will be raised if any operation is " -"attempted with the cursor." +"The cursor will be unusable from this point forward; a :exc:" +"`ProgrammingError` exception will be raised if any operation is attempted " +"with the cursor." msgstr "" -#: ../../library/sqlite3.rst:1631 ../../library/sqlite3.rst:1635 msgid "Required by the DB-API. Does nothing in :mod:`!sqlite3`." msgstr "" -#: ../../library/sqlite3.rst:1639 msgid "" -"Read/write attribute that controls the number of rows returned " -"by :meth:`fetchmany`. The default value is 1 which means a single row would " -"be fetched per call." +"Read/write attribute that controls the number of rows returned by :meth:" +"`fetchmany`. The default value is 1 which means a single row would be " +"fetched per call." msgstr "" -#: ../../library/sqlite3.rst:1644 msgid "" "Read-only attribute that provides the SQLite database :class:`Connection` " -"belonging to the cursor. A :class:`Cursor` object created by " -"calling :meth:`con.cursor() ` will have " -"a :attr:`connection` attribute that refers to *con*:" +"belonging to the cursor. A :class:`Cursor` object created by calling :meth:" +"`con.cursor() ` will have a :attr:`connection` attribute " +"that refers to *con*:" msgstr "" -#: ../../library/sqlite3.rst:1649 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> cur = con.cursor()\n" @@ -1954,18 +1637,15 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:1659 msgid "" "Read-only attribute that provides the column names of the last query. To " "remain compatible with the Python DB API, it returns a 7-tuple for each " "column where the last six items of each tuple are ``None``." msgstr "" -#: ../../library/sqlite3.rst:1663 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" -#: ../../library/sqlite3.rst:1667 msgid "" "Read-only attribute that provides the row id of the last inserted row. It is " "only updated after successful ``INSERT`` or ``REPLACE`` statements using " @@ -1975,15 +1655,12 @@ msgid "" "``None``." msgstr "" -#: ../../library/sqlite3.rst:1675 msgid "Inserts into ``WITHOUT ROWID`` tables are not recorded." msgstr "" -#: ../../library/sqlite3.rst:1677 msgid "Added support for the ``REPLACE`` statement." msgstr "" -#: ../../library/sqlite3.rst:1682 msgid "" "Read-only attribute that provides the number of modified rows for " "``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; is ``-1`` " @@ -1993,7 +1670,6 @@ msgid "" "resulting rows must be fetched in order for :attr:`!rowcount` to be updated." msgstr "" -#: ../../library/sqlite3.rst:1693 msgid "" "Control how a row fetched from this :class:`!Cursor` is represented. If " "``None``, a row is represented as a :class:`tuple`. Can be set to the " @@ -2002,61 +1678,51 @@ msgid "" "and returns a custom object representing an SQLite row." msgstr "" -#: ../../library/sqlite3.rst:1700 msgid "" "Defaults to what :attr:`Connection.row_factory` was set to when the :class:`!" -"Cursor` was created. Assigning to this attribute does not " -"affect :attr:`Connection.row_factory` of the parent connection." +"Cursor` was created. Assigning to this attribute does not affect :attr:" +"`Connection.row_factory` of the parent connection." msgstr "" -#: ../../library/sqlite3.rst:1716 msgid "Row objects" msgstr "" -#: ../../library/sqlite3.rst:1720 msgid "" -"A :class:`!Row` instance serves as a highly " -"optimized :attr:`~Connection.row_factory` for :class:`Connection` objects. " -"It supports iteration, equality testing, :func:`len`, and :term:`mapping` " -"access by column name and index." +"A :class:`!Row` instance serves as a highly optimized :attr:`~Connection." +"row_factory` for :class:`Connection` objects. It supports iteration, " +"equality testing, :func:`len`, and :term:`mapping` access by column name and " +"index." msgstr "" -#: ../../library/sqlite3.rst:1725 msgid "" "Two :class:`!Row` objects compare equal if they have identical column names " "and values." msgstr "" -#: ../../library/sqlite3.rst:1732 msgid "" "Return a :class:`list` of column names as :class:`strings `. " -"Immediately after a query, it is the first member of each tuple " -"in :attr:`Cursor.description`." +"Immediately after a query, it is the first member of each tuple in :attr:" +"`Cursor.description`." msgstr "" -#: ../../library/sqlite3.rst:1736 msgid "Added support of slicing." msgstr "" -#: ../../library/sqlite3.rst:1743 msgid "Blob objects" msgstr "" -#: ../../library/sqlite3.rst:1749 msgid "" "A :class:`Blob` instance is a :term:`file-like object` that can read and " -"write data in an SQLite :abbr:`BLOB (Binary Large OBject)`. " -"Call :func:`len(blob) ` to get the size (number of bytes) of the blob. " -"Use indices and :term:`slices ` for direct access to the blob data." +"write data in an SQLite :abbr:`BLOB (Binary Large OBject)`. Call :func:" +"`len(blob) ` to get the size (number of bytes) of the blob. Use indices " +"and :term:`slices ` for direct access to the blob data." msgstr "" -#: ../../library/sqlite3.rst:1754 msgid "" "Use the :class:`Blob` as a :term:`context manager` to ensure that the blob " "handle is closed after use." msgstr "" -#: ../../library/sqlite3.rst:1757 msgid "" "con = sqlite3.connect(\":memory:\")\n" "con.execute(\"CREATE TABLE test(blob_col blob)\")\n" @@ -2078,37 +1744,31 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:1785 msgid "Close the blob." msgstr "" -#: ../../library/sqlite3.rst:1787 msgid "" -"The blob will be unusable from this point onward. " -"An :class:`~sqlite3.Error` (or subclass) exception will be raised if any " -"further operation is attempted with the blob." +"The blob will be unusable from this point onward. An :class:`~sqlite3." +"Error` (or subclass) exception will be raised if any further operation is " +"attempted with the blob." msgstr "" -#: ../../library/sqlite3.rst:1793 msgid "" "Read *length* bytes of data from the blob at the current offset position. If " "the end of the blob is reached, the data up to :abbr:`EOF (End of File)` " -"will be returned. When *length* is not specified, or is " -"negative, :meth:`~Blob.read` will read until the end of the blob." +"will be returned. When *length* is not specified, or is negative, :meth:" +"`~Blob.read` will read until the end of the blob." msgstr "" -#: ../../library/sqlite3.rst:1801 msgid "" "Write *data* to the blob at the current offset. This function cannot change " -"the blob length. Writing beyond the end of the blob will " -"raise :exc:`ValueError`." +"the blob length. Writing beyond the end of the blob will raise :exc:" +"`ValueError`." msgstr "" -#: ../../library/sqlite3.rst:1807 msgid "Return the current access position of the blob." msgstr "" -#: ../../library/sqlite3.rst:1811 msgid "" "Set the current access position of the blob to *offset*. The *origin* " "argument defaults to :const:`os.SEEK_SET` (absolute blob positioning). Other " @@ -2116,26 +1776,21 @@ msgid "" "position) and :const:`os.SEEK_END` (seek relative to the blob’s end)." msgstr "" -#: ../../library/sqlite3.rst:1819 msgid "PrepareProtocol objects" msgstr "" -#: ../../library/sqlite3.rst:1823 msgid "" "The PrepareProtocol type's single purpose is to act as a :pep:`246` style " "adaption protocol for objects that can :ref:`adapt themselves ` to :ref:`native SQLite types `." msgstr "" -#: ../../library/sqlite3.rst:1831 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/sqlite3.rst:1833 msgid "The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`)." msgstr "" -#: ../../library/sqlite3.rst:1837 msgid "" "This exception is not currently raised by the :mod:`!sqlite3` module, but " "may be raised by applications using :mod:`!sqlite3`, for example if a user-" @@ -2143,39 +1798,33 @@ msgid "" "of :exc:`Exception`." msgstr "" -#: ../../library/sqlite3.rst:1844 msgid "" "The base class of the other exceptions in this module. Use this to catch all " "errors with one single :keyword:`except` statement. ``Error`` is a subclass " "of :exc:`Exception`." msgstr "" -#: ../../library/sqlite3.rst:1848 msgid "" "If the exception originated from within the SQLite library, the following " "two attributes are added to the exception:" msgstr "" -#: ../../library/sqlite3.rst:1853 msgid "" -"The numeric error code from the `SQLite API `_" +"The numeric error code from the `SQLite API `_" msgstr "" -#: ../../library/sqlite3.rst:1860 msgid "" "The symbolic name of the numeric error code from the `SQLite API `_" msgstr "" -#: ../../library/sqlite3.rst:1867 msgid "" "Exception raised for misuse of the low-level SQLite C API. In other words, " "if this exception is raised, it probably indicates a bug in the :mod:`!" "sqlite3` module. ``InterfaceError`` is a subclass of :exc:`Error`." msgstr "" -#: ../../library/sqlite3.rst:1874 msgid "" "Exception raised for errors that are related to the database. This serves as " "the base exception for several types of database errors. It is only raised " @@ -2183,14 +1832,12 @@ msgid "" "subclass of :exc:`Error`." msgstr "" -#: ../../library/sqlite3.rst:1881 msgid "" "Exception raised for errors caused by problems with the processed data, like " "numeric values out of range, and strings which are too long. ``DataError`` " "is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1887 msgid "" "Exception raised for errors that are related to the database's operation, " "and not necessarily under the control of the programmer. For example, the " @@ -2198,28 +1845,24 @@ msgid "" "``OperationalError`` is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1895 msgid "" "Exception raised when the relational integrity of the database is affected, " "e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1900 msgid "" "Exception raised when SQLite encounters an internal error. If this is " "raised, it may indicate that there is a problem with the runtime SQLite " "library. ``InternalError`` is a subclass of :exc:`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1907 msgid "" "Exception raised for :mod:`!sqlite3` API programming errors, for example " "supplying the wrong number of bindings to a query, or trying to operate on a " -"closed :class:`Connection`. ``ProgrammingError`` is a subclass " -"of :exc:`DatabaseError`." +"closed :class:`Connection`. ``ProgrammingError`` is a subclass of :exc:" +"`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1914 msgid "" "Exception raised in case a method or database API is not supported by the " "underlying SQLite library. For example, setting *deterministic* to ``True`` " @@ -2228,78 +1871,60 @@ msgid "" "subclass of :exc:`DatabaseError`." msgstr "" -#: ../../library/sqlite3.rst:1924 msgid "SQLite and Python types" msgstr "" -#: ../../library/sqlite3.rst:1926 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" -#: ../../library/sqlite3.rst:1929 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" -#: ../../library/sqlite3.rst:1932 ../../library/sqlite3.rst:1949 msgid "Python type" msgstr "" -#: ../../library/sqlite3.rst:1932 ../../library/sqlite3.rst:1949 msgid "SQLite type" msgstr "" -#: ../../library/sqlite3.rst:1934 ../../library/sqlite3.rst:1951 msgid "``None``" msgstr "" -#: ../../library/sqlite3.rst:1934 ../../library/sqlite3.rst:1951 msgid "``NULL``" -msgstr "``NULL``" +msgstr "" -#: ../../library/sqlite3.rst:1936 ../../library/sqlite3.rst:1953 msgid ":class:`int`" msgstr "" -#: ../../library/sqlite3.rst:1936 ../../library/sqlite3.rst:1953 msgid "``INTEGER``" msgstr "" -#: ../../library/sqlite3.rst:1938 ../../library/sqlite3.rst:1955 msgid ":class:`float`" msgstr "" -#: ../../library/sqlite3.rst:1938 ../../library/sqlite3.rst:1955 msgid "``REAL``" msgstr "" -#: ../../library/sqlite3.rst:1940 msgid ":class:`str`" msgstr "" -#: ../../library/sqlite3.rst:1940 ../../library/sqlite3.rst:1957 msgid "``TEXT``" msgstr "" -#: ../../library/sqlite3.rst:1942 ../../library/sqlite3.rst:1960 msgid ":class:`bytes`" msgstr "" -#: ../../library/sqlite3.rst:1942 ../../library/sqlite3.rst:1960 msgid "``BLOB``" msgstr "" -#: ../../library/sqlite3.rst:1946 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" -#: ../../library/sqlite3.rst:1957 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "" -#: ../../library/sqlite3.rst:1963 msgid "" "The type system of the :mod:`!sqlite3` module is extensible in two ways: you " "can store additional Python types in an SQLite database via :ref:`object " @@ -2308,47 +1933,39 @@ msgid "" "converters>`." msgstr "" -#: ../../library/sqlite3.rst:1973 msgid "Default adapters and converters (deprecated)" msgstr "" -#: ../../library/sqlite3.rst:1977 msgid "" "The default adapters and converters are deprecated as of Python 3.12. " "Instead, use the :ref:`sqlite3-adapter-converter-recipes` and tailor them to " "your needs." msgstr "" -#: ../../library/sqlite3.rst:1981 msgid "The deprecated default adapters and converters consist of:" msgstr "" -#: ../../library/sqlite3.rst:1983 msgid "" "An adapter for :class:`datetime.date` objects to :class:`strings ` in " "`ISO 8601`_ format." msgstr "" -#: ../../library/sqlite3.rst:1985 msgid "" "An adapter for :class:`datetime.datetime` objects to strings in ISO 8601 " "format." msgstr "" -#: ../../library/sqlite3.rst:1987 msgid "" -"A converter for :ref:`declared ` \"date\" types " -"to :class:`datetime.date` objects." +"A converter for :ref:`declared ` \"date\" types to :" +"class:`datetime.date` objects." msgstr "" -#: ../../library/sqlite3.rst:1989 msgid "" "A converter for declared \"timestamp\" types to :class:`datetime.datetime` " "objects. Fractional parts will be truncated to 6 digits (microsecond " "precision)." msgstr "" -#: ../../library/sqlite3.rst:1995 msgid "" "The default \"timestamp\" converter ignores UTC offsets in the database and " "always returns a naive :class:`datetime.datetime` object. To preserve UTC " @@ -2356,42 +1973,33 @@ msgid "" "offset-aware converter with :func:`register_converter`." msgstr "" -#: ../../library/sqlite3.rst:2008 msgid "Command-line interface" msgstr "" -#: ../../library/sqlite3.rst:2010 msgid "" "The :mod:`!sqlite3` module can be invoked as a script, using the " "interpreter's :option:`-m` switch, in order to provide a simple SQLite " "shell. The argument signature is as follows::" msgstr "" -#: ../../library/sqlite3.rst:2015 msgid "python -m sqlite3 [-h] [-v] [filename] [sql]" msgstr "" -#: ../../library/sqlite3.rst:2017 msgid "Type ``.quit`` or CTRL-D to exit the shell." msgstr "" -#: ../../library/sqlite3.rst:2023 msgid "Print CLI help." msgstr "" -#: ../../library/sqlite3.rst:2027 msgid "Print underlying SQLite library version." msgstr "" -#: ../../library/sqlite3.rst:2035 msgid "How-to guides" msgstr "" -#: ../../library/sqlite3.rst:2040 msgid "How to use placeholders to bind values in SQL queries" msgstr "" -#: ../../library/sqlite3.rst:2042 msgid "" "SQL operations usually need to use values from Python variables. However, " "beware of using Python's string operations to assemble queries, as they are " @@ -2399,7 +2007,6 @@ msgid "" "close the single quote and inject ``OR TRUE`` to select all rows::" msgstr "" -#: ../../library/sqlite3.rst:2047 msgid "" ">>> # Never do this -- insecure!\n" ">>> symbol = input()\n" @@ -2410,7 +2017,6 @@ msgid "" ">>> cur.execute(sql)" msgstr "" -#: ../../library/sqlite3.rst:2055 msgid "" "Instead, use the DB-API's parameter substitution. To insert a variable into " "a query string, use a placeholder in the string, and substitute the actual " @@ -2418,7 +2024,6 @@ msgid "" "second argument of the cursor's :meth:`~Cursor.execute` method." msgstr "" -#: ../../library/sqlite3.rst:2060 msgid "" "An SQL statement may use one of two kinds of placeholders: question marks " "(qmark style) or named placeholders (named style). For the qmark style, " @@ -2429,7 +2034,6 @@ msgid "" "ignored. Here's an example of both styles:" msgstr "" -#: ../../library/sqlite3.rst:2071 msgid "" "con = sqlite3.connect(\":memory:\")\n" "cur = con.execute(\"CREATE TABLE lang(name, first_appeared)\")\n" @@ -2450,24 +2054,20 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2098 msgid "" ":pep:`249` numeric placeholders are *not* supported. If used, they will be " "interpreted as named placeholders." msgstr "" -#: ../../library/sqlite3.rst:2105 msgid "How to adapt custom Python types to SQLite values" msgstr "" -#: ../../library/sqlite3.rst:2107 msgid "" "SQLite supports only a limited set of data types natively. To store custom " "Python types in SQLite databases, *adapt* them to one of the :ref:`Python " "types SQLite natively understands `." msgstr "" -#: ../../library/sqlite3.rst:2111 msgid "" "There are two ways to adapt Python objects to SQLite types: letting your " "object adapt itself, or using an *adapter callable*. The latter will take " @@ -2477,11 +2077,9 @@ msgid "" "custom adapter functions." msgstr "" -#: ../../library/sqlite3.rst:2123 msgid "How to write adaptable objects" msgstr "" -#: ../../library/sqlite3.rst:2125 msgid "" "Suppose we have a :class:`!Point` class that represents a pair of " "coordinates, ``x`` and ``y``, in a Cartesian coordinate system. The " @@ -2491,7 +2089,6 @@ msgid "" "object passed to *protocol* will be of type :class:`PrepareProtocol`." msgstr "" -#: ../../library/sqlite3.rst:2133 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2509,18 +2106,15 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2157 msgid "How to register adapter callables" msgstr "" -#: ../../library/sqlite3.rst:2159 msgid "" "The other possibility is to create a function that converts the Python " "object to an SQLite-compatible type. This function can then be registered " "using :func:`register_adapter`." msgstr "" -#: ../../library/sqlite3.rst:2163 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2539,68 +2133,56 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2190 msgid "How to convert SQLite values to custom Python types" msgstr "" -#: ../../library/sqlite3.rst:2192 msgid "" "Writing an adapter lets you convert *from* custom Python types *to* SQLite " "values. To be able to convert *from* SQLite values *to* custom Python types, " "we use *converters*." msgstr "" -#: ../../library/sqlite3.rst:2197 msgid "" "Let's go back to the :class:`!Point` class. We stored the x and y " "coordinates separated via semicolons as strings in SQLite." msgstr "" -#: ../../library/sqlite3.rst:2200 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`!Point` object from it." msgstr "" -#: ../../library/sqlite3.rst:2205 msgid "" "Converter functions are **always** passed a :class:`bytes` object, no matter " "the underlying SQLite data type." msgstr "" -#: ../../library/sqlite3.rst:2208 msgid "" "def convert_point(s):\n" " x, y = map(float, s.split(b\";\"))\n" " return Point(x, y)" msgstr "" -#: ../../library/sqlite3.rst:2214 msgid "" "We now need to tell :mod:`!sqlite3` when it should convert a given SQLite " "value. This is done when connecting to a database, using the *detect_types* " "parameter of :func:`connect`. There are three options:" msgstr "" -#: ../../library/sqlite3.rst:2218 msgid "Implicit: set *detect_types* to :const:`PARSE_DECLTYPES`" msgstr "" -#: ../../library/sqlite3.rst:2219 msgid "Explicit: set *detect_types* to :const:`PARSE_COLNAMES`" msgstr "" -#: ../../library/sqlite3.rst:2220 msgid "" -"Both: set *detect_types* to ``sqlite3.PARSE_DECLTYPES | " -"sqlite3.PARSE_COLNAMES``. Column names take precedence over declared types." +"Both: set *detect_types* to ``sqlite3.PARSE_DECLTYPES | sqlite3." +"PARSE_COLNAMES``. Column names take precedence over declared types." msgstr "" -#: ../../library/sqlite3.rst:2224 msgid "The following example illustrates the implicit and explicit approaches:" msgstr "" -#: ../../library/sqlite3.rst:2226 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2642,15 +2224,12 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2277 msgid "Adapter and converter recipes" msgstr "" -#: ../../library/sqlite3.rst:2279 msgid "This section shows recipes for common adapters and converters." msgstr "" -#: ../../library/sqlite3.rst:2281 msgid "" "import datetime\n" "import sqlite3\n" @@ -2688,23 +2267,20 @@ msgid "" "sqlite3.register_converter(\"timestamp\", convert_timestamp)" msgstr "" -#: ../../library/sqlite3.rst:2341 msgid "How to use connection shortcut methods" msgstr "" -#: ../../library/sqlite3.rst:2343 msgid "" -"Using the :meth:`~Connection.execute`, :meth:`~Connection.executemany`, " -"and :meth:`~Connection.executescript` methods of the :class:`Connection` " -"class, your code can be written more concisely because you don't have to " -"create the (often superfluous) :class:`Cursor` objects explicitly. Instead, " -"the :class:`Cursor` objects are created implicitly and these shortcut " -"methods return the cursor objects. This way, you can execute a ``SELECT`` " -"statement and iterate over it directly using only a single call on " -"the :class:`Connection` object." +"Using the :meth:`~Connection.execute`, :meth:`~Connection.executemany`, and :" +"meth:`~Connection.executescript` methods of the :class:`Connection` class, " +"your code can be written more concisely because you don't have to create the " +"(often superfluous) :class:`Cursor` objects explicitly. Instead, the :class:" +"`Cursor` objects are created implicitly and these shortcut methods return " +"the cursor objects. This way, you can execute a ``SELECT`` statement and " +"iterate over it directly using only a single call on the :class:`Connection` " +"object." msgstr "" -#: ../../library/sqlite3.rst:2352 msgid "" "# Create and fill the table.\n" "con = sqlite3.connect(\":memory:\")\n" @@ -2728,11 +2304,9 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2384 msgid "How to use the connection context manager" msgstr "" -#: ../../library/sqlite3.rst:2386 msgid "" "A :class:`Connection` object can be used as a context manager that " "automatically commits or rolls back open transactions when leaving the body " @@ -2744,25 +2318,22 @@ msgid "" "rolling back." msgstr "" -#: ../../library/sqlite3.rst:2397 msgid "" "If there is no open transaction upon leaving the body of the ``with`` " "statement, or if :attr:`~Connection.autocommit` is ``True``, the context " "manager does nothing." msgstr "" -#: ../../library/sqlite3.rst:2402 msgid "" "The context manager neither implicitly opens a new transaction nor closes " -"the connection. If you need a closing context manager, consider " -"using :meth:`contextlib.closing`." +"the connection. If you need a closing context manager, consider using :meth:" +"`contextlib.closing`." msgstr "" -#: ../../library/sqlite3.rst:2406 msgid "" "con = sqlite3.connect(\":memory:\")\n" -"con.execute(\"CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR UNIQUE)" -"\")\n" +"con.execute(\"CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR " +"UNIQUE)\")\n" "\n" "# Successful, con.commit() is called automatically afterwards\n" "with con:\n" @@ -2782,19 +2353,15 @@ msgid "" "con.close()" msgstr "" -#: ../../library/sqlite3.rst:2436 msgid "How to work with SQLite URIs" msgstr "" -#: ../../library/sqlite3.rst:2438 msgid "Some useful URI tricks include:" msgstr "" -#: ../../library/sqlite3.rst:2440 msgid "Open a database in read-only mode:" msgstr "" -#: ../../library/sqlite3.rst:2442 msgid "" ">>> con = sqlite3.connect(\"file:tutorial.db?mode=ro\", uri=True)\n" ">>> con.execute(\"CREATE TABLE readonly(data)\")\n" @@ -2803,24 +2370,20 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:2450 msgid "" "Do not implicitly create a new database file if it does not already exist; " "will raise :exc:`~sqlite3.OperationalError` if unable to create a new file:" msgstr "" -#: ../../library/sqlite3.rst:2453 msgid "" ">>> con = sqlite3.connect(\"file:nosuchdb.db?mode=rw\", uri=True)\n" "Traceback (most recent call last):\n" "OperationalError: unable to open database file" msgstr "" -#: ../../library/sqlite3.rst:2460 msgid "Create a shared named in-memory database:" msgstr "" -#: ../../library/sqlite3.rst:2462 msgid "" "db = \"file:mem1?mode=memory&cache=shared\"\n" "con1 = sqlite3.connect(db, uri=True)\n" @@ -2835,32 +2398,27 @@ msgid "" "con2.close()" msgstr "" -#: ../../library/sqlite3.rst:2476 msgid "" "More information about this feature, including a list of parameters, can be " "found in the `SQLite URI documentation`_." msgstr "" -#: ../../library/sqlite3.rst:2485 msgid "How to create and use row factories" msgstr "" -#: ../../library/sqlite3.rst:2487 msgid "" -"By default, :mod:`!sqlite3` represents each row as a :class:`tuple`. If " -"a :class:`!tuple` does not suit your needs, you can use " -"the :class:`sqlite3.Row` class or a custom :attr:`~Cursor.row_factory`." +"By default, :mod:`!sqlite3` represents each row as a :class:`tuple`. If a :" +"class:`!tuple` does not suit your needs, you can use the :class:`sqlite3." +"Row` class or a custom :attr:`~Cursor.row_factory`." msgstr "" -#: ../../library/sqlite3.rst:2492 msgid "" -"While :attr:`!row_factory` exists as an attribute both on " -"the :class:`Cursor` and the :class:`Connection`, it is recommended to " -"set :class:`Connection.row_factory`, so all cursors created from the " -"connection will use the same row factory." +"While :attr:`!row_factory` exists as an attribute both on the :class:" +"`Cursor` and the :class:`Connection`, it is recommended to set :class:" +"`Connection.row_factory`, so all cursors created from the connection will " +"use the same row factory." msgstr "" -#: ../../library/sqlite3.rst:2497 msgid "" ":class:`!Row` provides indexed and case-insensitive named access to columns, " "with minimal memory overhead and performance impact over a :class:`!tuple`. " @@ -2868,17 +2426,14 @@ msgid "" "attribute:" msgstr "" -#: ../../library/sqlite3.rst:2502 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = sqlite3.Row" msgstr "" -#: ../../library/sqlite3.rst:2507 msgid "Queries now return :class:`!Row` objects:" msgstr "" -#: ../../library/sqlite3.rst:2509 msgid "" ">>> res = con.execute(\"SELECT 'Earth' AS name, 6378 AS radius\")\n" ">>> row = res.fetchone()\n" @@ -2893,7 +2448,6 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:2525 msgid "" "The ``FROM`` clause can be omitted in the ``SELECT`` statement, as in the " "above example. In such cases, SQLite returns a single row with columns " @@ -2901,25 +2455,21 @@ msgid "" "alias``." msgstr "" -#: ../../library/sqlite3.rst:2530 msgid "" "You can create a custom :attr:`~Cursor.row_factory` that returns each row as " "a :class:`dict`, with column names mapped to values:" msgstr "" -#: ../../library/sqlite3.rst:2533 msgid "" "def dict_factory(cursor, row):\n" " fields = [column[0] for column in cursor.description]\n" " return {key: value for key, value in zip(fields, row)}" msgstr "" -#: ../../library/sqlite3.rst:2539 msgid "" "Using it, queries now return a :class:`!dict` instead of a :class:`!tuple`:" msgstr "" -#: ../../library/sqlite3.rst:2541 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = dict_factory\n" @@ -2929,11 +2479,9 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:2550 msgid "The following row factory returns a :term:`named tuple`:" msgstr "" -#: ../../library/sqlite3.rst:2552 msgid "" "from collections import namedtuple\n" "\n" @@ -2943,11 +2491,9 @@ msgid "" " return cls._make(row)" msgstr "" -#: ../../library/sqlite3.rst:2561 msgid ":func:`!namedtuple_factory` can be used as follows:" msgstr "" -#: ../../library/sqlite3.rst:2563 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = namedtuple_factory\n" @@ -2962,69 +2508,57 @@ msgid "" ">>> con.close()" msgstr "" -#: ../../library/sqlite3.rst:2577 msgid "" -"With some adjustments, the above recipe can be adapted to use " -"a :class:`~dataclasses.dataclass`, or any other custom class, instead of " -"a :class:`~collections.namedtuple`." +"With some adjustments, the above recipe can be adapted to use a :class:" +"`~dataclasses.dataclass`, or any other custom class, instead of a :class:" +"`~collections.namedtuple`." msgstr "" -#: ../../library/sqlite3.rst:2585 msgid "How to handle non-UTF-8 text encodings" msgstr "" -#: ../../library/sqlite3.rst:2587 msgid "" "By default, :mod:`!sqlite3` uses :class:`str` to adapt SQLite values with " "the ``TEXT`` data type. This works well for UTF-8 encoded text, but it might " -"fail for other encodings and invalid UTF-8. You can use a " -"custom :attr:`~Connection.text_factory` to handle such cases." +"fail for other encodings and invalid UTF-8. You can use a custom :attr:" +"`~Connection.text_factory` to handle such cases." msgstr "" -#: ../../library/sqlite3.rst:2593 msgid "" "Because of SQLite's `flexible typing`_, it is not uncommon to encounter " "table columns with the ``TEXT`` data type containing non-UTF-8 encodings, or " "even arbitrary data. To demonstrate, let's assume we have a database with " "ISO-8859-2 (Latin-2) encoded text, for example a table of Czech-English " -"dictionary entries. Assuming we now have a :class:`Connection` " -"instance :py:data:`!con` connected to this database, we can decode the " -"Latin-2 encoded text using this :attr:`~Connection.text_factory`:" +"dictionary entries. Assuming we now have a :class:`Connection` instance :py:" +"data:`!con` connected to this database, we can decode the Latin-2 encoded " +"text using this :attr:`~Connection.text_factory`:" msgstr "" -#: ../../library/sqlite3.rst:2602 msgid "con.text_factory = lambda data: str(data, encoding=\"latin2\")" msgstr "" -#: ../../library/sqlite3.rst:2606 msgid "" "For invalid UTF-8 or arbitrary data in stored in ``TEXT`` table columns, you " "can use the following technique, borrowed from the :ref:`unicode-howto`:" msgstr "" -#: ../../library/sqlite3.rst:2609 msgid "con.text_factory = lambda data: str(data, errors=\"surrogateescape\")" msgstr "" -#: ../../library/sqlite3.rst:2615 msgid "" "The :mod:`!sqlite3` module API does not support strings containing " "surrogates." msgstr "" -#: ../../library/sqlite3.rst:2620 msgid ":ref:`unicode-howto`" msgstr "" -#: ../../library/sqlite3.rst:2626 msgid "Explanation" msgstr "" -#: ../../library/sqlite3.rst:2632 msgid "Transaction control" msgstr "" -#: ../../library/sqlite3.rst:2634 msgid "" ":mod:`!sqlite3` offers multiple methods of controlling whether, when and how " "database transactions are opened and closed. :ref:`sqlite3-transaction-" @@ -3032,133 +2566,112 @@ msgid "" "isolation-level` retains the pre-Python 3.12 behaviour." msgstr "" -#: ../../library/sqlite3.rst:2643 msgid "Transaction control via the ``autocommit`` attribute" msgstr "" -#: ../../library/sqlite3.rst:2645 msgid "" -"The recommended way of controlling transaction behaviour is through " -"the :attr:`Connection.autocommit` attribute, which should preferably be set " -"using the *autocommit* parameter of :func:`connect`." +"The recommended way of controlling transaction behaviour is through the :" +"attr:`Connection.autocommit` attribute, which should preferably be set using " +"the *autocommit* parameter of :func:`connect`." msgstr "" -#: ../../library/sqlite3.rst:2650 msgid "" "It is suggested to set *autocommit* to ``False``, which implies :pep:`249`-" "compliant transaction control. This means:" msgstr "" -#: ../../library/sqlite3.rst:2654 msgid "" -":mod:`!sqlite3` ensures that a transaction is always open, " -"so :func:`connect`, :meth:`Connection.commit`, " -"and :meth:`Connection.rollback` will implicitly open a new transaction " -"(immediately after closing the pending one, for the latter two). :mod:`!" -"sqlite3` uses ``BEGIN DEFERRED`` statements when opening transactions." +":mod:`!sqlite3` ensures that a transaction is always open, so :func:" +"`connect`, :meth:`Connection.commit`, and :meth:`Connection.rollback` will " +"implicitly open a new transaction (immediately after closing the pending " +"one, for the latter two). :mod:`!sqlite3` uses ``BEGIN DEFERRED`` statements " +"when opening transactions." msgstr "" -#: ../../library/sqlite3.rst:2659 msgid "Transactions should be committed explicitly using :meth:`!commit`." msgstr "" -#: ../../library/sqlite3.rst:2660 msgid "Transactions should be rolled back explicitly using :meth:`!rollback`." msgstr "" -#: ../../library/sqlite3.rst:2661 msgid "" -"An implicit rollback is performed if the database " -"is :meth:`~Connection.close`-ed with pending changes." +"An implicit rollback is performed if the database is :meth:`~Connection." +"close`-ed with pending changes." msgstr "" -#: ../../library/sqlite3.rst:2664 msgid "" "Set *autocommit* to ``True`` to enable SQLite's `autocommit mode`_. In this " "mode, :meth:`Connection.commit` and :meth:`Connection.rollback` have no " "effect. Note that SQLite's autocommit mode is distinct from the :pep:`249`-" -"compliant :attr:`Connection.autocommit` attribute; " -"use :attr:`Connection.in_transaction` to query the low-level SQLite " -"autocommit mode." +"compliant :attr:`Connection.autocommit` attribute; use :attr:`Connection." +"in_transaction` to query the low-level SQLite autocommit mode." msgstr "" -#: ../../library/sqlite3.rst:2672 msgid "" "Set *autocommit* to :data:`LEGACY_TRANSACTION_CONTROL` to leave transaction " -"control behaviour to the :attr:`Connection.isolation_level` attribute. " -"See :ref:`sqlite3-transaction-control-isolation-level` for more information." +"control behaviour to the :attr:`Connection.isolation_level` attribute. See :" +"ref:`sqlite3-transaction-control-isolation-level` for more information." msgstr "" -#: ../../library/sqlite3.rst:2681 msgid "Transaction control via the ``isolation_level`` attribute" msgstr "" -#: ../../library/sqlite3.rst:2685 msgid "" -"The recommended way of controlling transactions is via " -"the :attr:`~Connection.autocommit` attribute. See :ref:`sqlite3-transaction-" -"control-autocommit`." +"The recommended way of controlling transactions is via the :attr:" +"`~Connection.autocommit` attribute. See :ref:`sqlite3-transaction-control-" +"autocommit`." msgstr "" -#: ../../library/sqlite3.rst:2689 msgid "" -"If :attr:`Connection.autocommit` is set " -"to :data:`LEGACY_TRANSACTION_CONTROL` (the default), transaction behaviour " -"is controlled using the :attr:`Connection.isolation_level` attribute. " +"If :attr:`Connection.autocommit` is set to :data:" +"`LEGACY_TRANSACTION_CONTROL` (the default), transaction behaviour is " +"controlled using the :attr:`Connection.isolation_level` attribute. " "Otherwise, :attr:`!isolation_level` has no effect." msgstr "" -#: ../../library/sqlite3.rst:2695 msgid "" "If the connection attribute :attr:`~Connection.isolation_level` is not " -"``None``, new transactions are implicitly opened " -"before :meth:`~Cursor.execute` and :meth:`~Cursor.executemany` executes " -"``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statements; for other " -"statements, no implicit transaction handling is performed. Use " -"the :meth:`~Connection.commit` and :meth:`~Connection.rollback` methods to " -"respectively commit and roll back pending transactions. You can choose the " -"underlying `SQLite transaction behaviour`_ — that is, whether and what type " -"of ``BEGIN`` statements :mod:`!sqlite3` implicitly executes – via " -"the :attr:`~Connection.isolation_level` attribute." +"``None``, new transactions are implicitly opened before :meth:`~Cursor." +"execute` and :meth:`~Cursor.executemany` executes ``INSERT``, ``UPDATE``, " +"``DELETE``, or ``REPLACE`` statements; for other statements, no implicit " +"transaction handling is performed. Use the :meth:`~Connection.commit` and :" +"meth:`~Connection.rollback` methods to respectively commit and roll back " +"pending transactions. You can choose the underlying `SQLite transaction " +"behaviour`_ — that is, whether and what type of ``BEGIN`` statements :mod:`!" +"sqlite3` implicitly executes – via the :attr:`~Connection.isolation_level` " +"attribute." msgstr "" -#: ../../library/sqlite3.rst:2708 msgid "" "If :attr:`~Connection.isolation_level` is set to ``None``, no transactions " "are implicitly opened at all. This leaves the underlying SQLite library in " "`autocommit mode`_, but also allows the user to perform their own " "transaction handling using explicit SQL statements. The underlying SQLite " -"library autocommit mode can be queried using " -"the :attr:`~Connection.in_transaction` attribute." +"library autocommit mode can be queried using the :attr:`~Connection." +"in_transaction` attribute." msgstr "" -#: ../../library/sqlite3.rst:2716 msgid "" "The :meth:`~Cursor.executescript` method implicitly commits any pending " "transaction before execution of the given SQL script, regardless of the " "value of :attr:`~Connection.isolation_level`." msgstr "" -#: ../../library/sqlite3.rst:2720 msgid "" ":mod:`!sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" -#: ../../library/sqlite3.rst:2724 msgid "" -"The recommended way of controlling transactions is now via " -"the :attr:`~Connection.autocommit` attribute." +"The recommended way of controlling transactions is now via the :attr:" +"`~Connection.autocommit` attribute." msgstr "" -#: ../../library/sqlite3.rst:1475 msgid "? (question mark)" msgstr "" -#: ../../library/sqlite3.rst:1475 ../../library/sqlite3.rst:1476 msgid "in SQL statements" msgstr "" -#: ../../library/sqlite3.rst:1476 msgid ": (colon)" msgstr "" diff --git a/library/ssl.po b/library/ssl.po index 26f9b25..c7f94cf 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/ssl.rst:2 msgid ":mod:`!ssl` --- TLS/SSL wrapper for socket objects" msgstr "" -#: ../../library/ssl.rst:10 msgid "**Source code:** :source:`Lib/ssl.py`" msgstr "" -#: ../../library/ssl.rst:18 msgid "" "This module provides access to Transport Layer Security (often known as " "\"Secure Sockets Layer\") encryption and peer authentication facilities for " @@ -40,7 +37,6 @@ msgid "" "platform." msgstr "" -#: ../../library/ssl.rst:26 msgid "" "Some behavior may be platform dependent, since calls are made to the " "operating system socket APIs. The installed version of OpenSSL may also " @@ -48,92 +44,75 @@ msgid "" "version 1.1.1." msgstr "" -#: ../../library/ssl.rst:32 msgid "" "Don't use this module without reading the :ref:`ssl-security`. Doing so may " "lead to a false sense of security, as the default settings of the ssl module " "are not necessarily appropriate for your application." msgstr "" -#: ../../library/ssl.rst:454 ../../library/ssl.rst:469 -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/ssl.rst:38 msgid "" "This section documents the objects and functions in the ``ssl`` module; for " "more general information about TLS, SSL, and certificates, the reader is " "referred to the documents in the \"See Also\" section at the bottom." msgstr "" -#: ../../library/ssl.rst:42 msgid "" "This module provides a class, :class:`ssl.SSLSocket`, which is derived from " "the :class:`socket.socket` type, and provides a socket-like wrapper that " "also encrypts and decrypts the data going over the socket with SSL. It " "supports additional methods such as :meth:`getpeercert`, which retrieves the " "certificate of the other side of the connection, :meth:`cipher`, which " -"retrieves the cipher being used for the secure connection " -"or :meth:`get_verified_chain`, :meth:`get_unverified_chain` which retrieves " +"retrieves the cipher being used for the secure connection or :meth:" +"`get_verified_chain`, :meth:`get_unverified_chain` which retrieves " "certificate chain." msgstr "" -#: ../../library/ssl.rst:51 msgid "" "For more sophisticated applications, the :class:`ssl.SSLContext` class helps " "manage settings and certificates, which can then be inherited by SSL sockets " "created through the :meth:`SSLContext.wrap_socket` method." msgstr "" -#: ../../library/ssl.rst:55 msgid "Updated to support linking with OpenSSL 1.1.0" msgstr "" -#: ../../library/ssl.rst:60 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the ssl module will require at least OpenSSL 1.0.2 or 1.1.0." msgstr "" -#: ../../library/ssl.rst:66 msgid "" ":pep:`644` has been implemented. The ssl module requires OpenSSL 1.1.1 or " "newer." msgstr "" -#: ../../library/ssl.rst:69 msgid "" "Use of deprecated constants and functions result in deprecation warnings." msgstr "" -#: ../../library/ssl.rst:73 msgid "Functions, Constants, and Exceptions" msgstr "" -#: ../../library/ssl.rst:77 msgid "Socket creation" msgstr "" -#: ../../library/ssl.rst:79 msgid "" -"Instances of :class:`SSLSocket` must be created using " -"the :meth:`SSLContext.wrap_socket` method. The helper " -"function :func:`create_default_context` returns a new context with secure " -"default settings." +"Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." +"wrap_socket` method. The helper function :func:`create_default_context` " +"returns a new context with secure default settings." msgstr "" -#: ../../library/ssl.rst:84 msgid "Client socket example with default context and IPv4/IPv6 dual stack::" msgstr "" -#: ../../library/ssl.rst:86 msgid "" "import socket\n" "import ssl\n" @@ -146,11 +125,9 @@ msgid "" " print(ssock.version())" msgstr "" -#: ../../library/ssl.rst:97 msgid "Client socket example with custom context and IPv4::" msgstr "" -#: ../../library/ssl.rst:99 msgid "" "hostname = 'www.python.org'\n" "# PROTOCOL_TLS_CLIENT requires valid cert chain and hostname\n" @@ -162,11 +139,9 @@ msgid "" " print(ssock.version())" msgstr "" -#: ../../library/ssl.rst:109 msgid "Server socket example listening on localhost IPv4::" msgstr "" -#: ../../library/ssl.rst:111 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.load_cert_chain('/path/to/certchain.pem', '/path/to/private.key')\n" @@ -179,17 +154,14 @@ msgid "" " ..." msgstr "" -#: ../../library/ssl.rst:123 msgid "Context creation" msgstr "" -#: ../../library/ssl.rst:125 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." msgstr "" -#: ../../library/ssl.rst:130 msgid "" "Return a new :class:`SSLContext` object with default settings for the given " "*purpose*. The settings are chosen by the :mod:`ssl` module, and usually " @@ -197,7 +169,6 @@ msgid "" "constructor directly." msgstr "" -#: ../../library/ssl.rst:135 msgid "" "*cafile*, *capath*, *cadata* represent optional CA certificates to trust for " "certificate verification, as in :meth:`SSLContext.load_verify_locations`. " @@ -205,65 +176,57 @@ msgid "" "system's default CA certificates instead." msgstr "" -#: ../../library/ssl.rst:141 msgid "" -"The settings are: :data:`PROTOCOL_TLS_CLIENT` " -"or :data:`PROTOCOL_TLS_SERVER`, :data:`OP_NO_SSLv2`, and :data:`OP_NO_SSLv3` " -"with high encryption cipher suites without RC4 and without unauthenticated " -"cipher suites. Passing :const:`~Purpose.SERVER_AUTH` as *purpose* " -"sets :data:`~SSLContext.verify_mode` to :data:`CERT_REQUIRED` and either " -"loads CA certificates (when at least one of *cafile*, *capath* or *cadata* " -"is given) or uses :meth:`SSLContext.load_default_certs` to load default CA " +"The settings are: :data:`PROTOCOL_TLS_CLIENT` or :data:" +"`PROTOCOL_TLS_SERVER`, :data:`OP_NO_SSLv2`, and :data:`OP_NO_SSLv3` with " +"high encryption cipher suites without RC4 and without unauthenticated cipher " +"suites. Passing :const:`~Purpose.SERVER_AUTH` as *purpose* sets :data:" +"`~SSLContext.verify_mode` to :data:`CERT_REQUIRED` and either loads CA " +"certificates (when at least one of *cafile*, *capath* or *cadata* is given) " +"or uses :meth:`SSLContext.load_default_certs` to load default CA " "certificates." msgstr "" -#: ../../library/ssl.rst:150 msgid "" "When :attr:`~SSLContext.keylog_filename` is supported and the environment " "variable :envvar:`SSLKEYLOGFILE` is set, :func:`create_default_context` " "enables key logging." msgstr "" -#: ../../library/ssl.rst:154 msgid "" -"The default settings for this context " -"include :data:`VERIFY_X509_PARTIAL_CHAIN` and :data:`VERIFY_X509_STRICT`. " -"These make the underlying OpenSSL implementation behave more like a " -"conforming implementation of :rfc:`5280`, in exchange for a small amount of " +"The default settings for this context include :data:" +"`VERIFY_X509_PARTIAL_CHAIN` and :data:`VERIFY_X509_STRICT`. These make the " +"underlying OpenSSL implementation behave more like a conforming " +"implementation of :rfc:`5280`, in exchange for a small amount of " "incompatibility with older X.509 certificates." msgstr "" -#: ../../library/ssl.rst:161 msgid "" "The protocol, options, cipher and other settings may change to more " "restrictive values anytime without prior deprecation. The values represent " "a fair balance between compatibility and security." msgstr "" -#: ../../library/ssl.rst:165 msgid "" -"If your application needs specific settings, you should create " -"a :class:`SSLContext` and apply the settings yourself." +"If your application needs specific settings, you should create a :class:" +"`SSLContext` and apply the settings yourself." msgstr "" -#: ../../library/ssl.rst:169 msgid "" "If you find that when certain older clients or servers attempt to connect " "with a :class:`SSLContext` created by this function that they get an error " "stating \"Protocol or cipher suite mismatch\", it may be that they only " "support SSL3.0 which this function excludes using the :data:`OP_NO_SSLv3`. " -"SSL3.0 is widely considered to be `completely broken `_. If you still wish to continue to use this " -"function but still allow SSL 3.0 connections you can re-enable them using::" +"SSL3.0 is widely considered to be `completely broken `_. If you still wish to continue to use this function but " +"still allow SSL 3.0 connections you can re-enable them using::" msgstr "" -#: ../../library/ssl.rst:178 msgid "" "ctx = ssl.create_default_context(Purpose.CLIENT_AUTH)\n" "ctx.options &= ~ssl.OP_NO_SSLv3" msgstr "" -#: ../../library/ssl.rst:182 msgid "" "This context enables :data:`VERIFY_X509_STRICT` by default, which may reject " "pre-:rfc:`5280` or malformed certificates that the underlying OpenSSL " @@ -271,46 +234,36 @@ msgid "" "recommended, you can do so using::" msgstr "" -#: ../../library/ssl.rst:187 msgid "" "ctx = ssl.create_default_context()\n" "ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT" msgstr "" -#: ../../library/ssl.rst:194 msgid "RC4 was dropped from the default cipher string." msgstr "" -#: ../../library/ssl.rst:198 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" -#: ../../library/ssl.rst:200 msgid "3DES was dropped from the default cipher string." msgstr "" -#: ../../library/ssl.rst:204 msgid "Support for key logging to :envvar:`SSLKEYLOGFILE` was added." msgstr "" -#: ../../library/ssl.rst:208 msgid "" -"The context now uses :data:`PROTOCOL_TLS_CLIENT` " -"or :data:`PROTOCOL_TLS_SERVER` protocol instead of " -"generic :data:`PROTOCOL_TLS`." +"The context now uses :data:`PROTOCOL_TLS_CLIENT` or :data:" +"`PROTOCOL_TLS_SERVER` protocol instead of generic :data:`PROTOCOL_TLS`." msgstr "" -#: ../../library/ssl.rst:214 msgid "" -"The context now uses :data:`VERIFY_X509_PARTIAL_CHAIN` " -"and :data:`VERIFY_X509_STRICT` in its default verify flags." +"The context now uses :data:`VERIFY_X509_PARTIAL_CHAIN` and :data:" +"`VERIFY_X509_STRICT` in its default verify flags." msgstr "" -#: ../../library/ssl.rst:219 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/ssl.rst:223 msgid "" "Raised to signal an error from the underlying SSL implementation (currently " "provided by the OpenSSL library). This signifies some problem in the higher-" @@ -320,98 +273,81 @@ msgid "" "OpenSSL library." msgstr "" -#: ../../library/ssl.rst:230 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." msgstr "" -#: ../../library/ssl.rst:235 msgid "" "A string mnemonic designating the OpenSSL submodule in which the error " "occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " "values depends on the OpenSSL version." msgstr "" -#: ../../library/ssl.rst:243 msgid "" "A string mnemonic designating the reason this error occurred, for example " "``CERTIFICATE_VERIFY_FAILED``. The range of possible values depends on the " "OpenSSL version." msgstr "" -#: ../../library/ssl.rst:251 msgid "" "A subclass of :exc:`SSLError` raised when trying to read or write and the " "SSL connection has been closed cleanly. Note that this doesn't mean that " "the underlying transport (read TCP) has been closed." msgstr "" -#: ../../library/ssl.rst:259 msgid "" "A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " "received on the underlying TCP transport before the request can be fulfilled." msgstr "" -#: ../../library/ssl.rst:268 msgid "" "A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " "sent on the underlying TCP transport before the request can be fulfilled." msgstr "" -#: ../../library/ssl.rst:277 msgid "" "A subclass of :exc:`SSLError` raised when a system error was encountered " "while trying to fulfill an operation on a SSL socket. Unfortunately, there " "is no easy way to inspect the original errno number." msgstr "" -#: ../../library/ssl.rst:285 msgid "" "A subclass of :exc:`SSLError` raised when the SSL connection has been " "terminated abruptly. Generally, you shouldn't try to reuse the underlying " "transport when this error is encountered." msgstr "" -#: ../../library/ssl.rst:293 msgid "" "A subclass of :exc:`SSLError` raised when certificate validation has failed." msgstr "" -#: ../../library/ssl.rst:300 msgid "A numeric error number that denotes the verification error." msgstr "" -#: ../../library/ssl.rst:304 msgid "A human readable string of the verification error." msgstr "" -#: ../../library/ssl.rst:308 msgid "An alias for :exc:`SSLCertVerificationError`." msgstr "" -#: ../../library/ssl.rst:310 msgid "The exception is now an alias for :exc:`SSLCertVerificationError`." msgstr "" -#: ../../library/ssl.rst:315 msgid "Random generation" msgstr "" -#: ../../library/ssl.rst:319 msgid "" -"Return *num* cryptographically strong pseudo-random bytes. Raises " -"an :class:`SSLError` if the PRNG has not been seeded with enough data or if " -"the operation is not supported by the current RAND " -"method. :func:`RAND_status` can be used to check the status of the PRNG " -"and :func:`RAND_add` can be used to seed the PRNG." +"Return *num* cryptographically strong pseudo-random bytes. Raises an :class:" +"`SSLError` if the PRNG has not been seeded with enough data or if the " +"operation is not supported by the current RAND method. :func:`RAND_status` " +"can be used to check the status of the PRNG and :func:`RAND_add` can be used " +"to seed the PRNG." msgstr "" -#: ../../library/ssl.rst:325 msgid "For almost all applications :func:`os.urandom` is preferable." msgstr "" -#: ../../library/ssl.rst:327 msgid "" "Read the Wikipedia article, `Cryptographically secure pseudorandom number " "generator (CSPRNG) >> import ssl\n" ">>> timestamp = ssl.cert_time_to_seconds(\"Jan 5 09:34:43 2018 GMT\")\n" @@ -465,177 +394,144 @@ msgid "" "2018-01-05 09:34:43" msgstr "" -#: ../../library/ssl.rst:377 msgid "\"notBefore\" or \"notAfter\" dates must use GMT (:rfc:`5280`)." msgstr "" -#: ../../library/ssl.rst:379 msgid "" "Interpret the input time as a time in UTC as specified by 'GMT' timezone in " "the input string. Local timezone was used previously. Return an integer (no " "fractions of a second in the input format)" msgstr "" -#: ../../library/ssl.rst:388 msgid "" "Given the address ``addr`` of an SSL-protected server, as a (*hostname*, " "*port-number*) pair, fetches the server's certificate, and returns it as a " "PEM-encoded string. If ``ssl_version`` is specified, uses that version of " "the SSL protocol to attempt to connect to the server. If *ca_certs* is " "specified, it should be a file containing a list of root certificates, the " -"same format as used for the *cafile* parameter " -"in :meth:`SSLContext.load_verify_locations`. The call will attempt to " -"validate the server certificate against that set of root certificates, and " -"will fail if the validation attempt fails. A timeout can be specified with " -"the ``timeout`` parameter." +"same format as used for the *cafile* parameter in :meth:`SSLContext." +"load_verify_locations`. The call will attempt to validate the server " +"certificate against that set of root certificates, and will fail if the " +"validation attempt fails. A timeout can be specified with the ``timeout`` " +"parameter." msgstr "" -#: ../../library/ssl.rst:399 msgid "This function is now IPv6-compatible." msgstr "" -#: ../../library/ssl.rst:402 msgid "" -"The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` " -"to :data:`PROTOCOL_TLS` for maximum compatibility with modern servers." +"The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` to :data:" +"`PROTOCOL_TLS` for maximum compatibility with modern servers." msgstr "" -#: ../../library/ssl.rst:406 msgid "The *timeout* parameter was added." msgstr "" -#: ../../library/ssl.rst:411 msgid "" "Given a certificate as a DER-encoded blob of bytes, returns a PEM-encoded " "string version of the same certificate." msgstr "" -#: ../../library/ssl.rst:416 msgid "" "Given a certificate as an ASCII PEM string, returns a DER-encoded sequence " "of bytes for that same certificate." msgstr "" -#: ../../library/ssl.rst:421 msgid "" "Returns a named tuple with paths to OpenSSL's default cafile and capath. The " "paths are the same as used by :meth:`SSLContext.set_default_verify_paths`. " "The return value is a :term:`named tuple` ``DefaultVerifyPaths``:" msgstr "" -#: ../../library/ssl.rst:426 msgid "" ":attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't " "exist," msgstr "" -#: ../../library/ssl.rst:427 msgid "" ":attr:`capath` - resolved path to capath or ``None`` if the directory " "doesn't exist," msgstr "" -#: ../../library/ssl.rst:428 msgid "" ":attr:`openssl_cafile_env` - OpenSSL's environment key that points to a " "cafile," msgstr "" -#: ../../library/ssl.rst:429 msgid ":attr:`openssl_cafile` - hard coded path to a cafile," msgstr "" -#: ../../library/ssl.rst:430 msgid "" ":attr:`openssl_capath_env` - OpenSSL's environment key that points to a " "capath," msgstr "" -#: ../../library/ssl.rst:431 msgid ":attr:`openssl_capath` - hard coded path to a capath directory" msgstr "" -#: ../../library/ssl.rst:437 msgid "" "Retrieve certificates from Windows' system cert store. *store_name* may be " "one of ``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert " "stores, too." msgstr "" -#: ../../library/ssl.rst:441 msgid "" "The function returns a list of (cert_bytes, encoding_type, trust) tuples. " -"The encoding_type specifies the encoding of cert_bytes. It is " -"either :const:`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for " -"PKCS#7 ASN.1 data. Trust specifies the purpose of the certificate as a set " -"of OIDS or exactly ``True`` if the certificate is trustworthy for all " -"purposes." +"The encoding_type specifies the encoding of cert_bytes. It is either :const:" +"`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for PKCS#7 ASN.1 " +"data. Trust specifies the purpose of the certificate as a set of OIDS or " +"exactly ``True`` if the certificate is trustworthy for all purposes." msgstr "" -#: ../../library/ssl.rst:448 ../../library/ssl.rst:1605 -#: ../../library/ssl.rst:1904 msgid "Example::" msgstr "" -#: ../../library/ssl.rst:450 msgid "" ">>> ssl.enum_certificates(\"CA\")\n" "[(b'data...', 'x509_asn', {'1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2'}),\n" " (b'data...', 'x509_asn', True)]" msgstr "" -#: ../../library/ssl.rst:460 msgid "" "Retrieve CRLs from Windows' system cert store. *store_name* may be one of " "``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert stores, too." msgstr "" -#: ../../library/ssl.rst:464 msgid "" "The function returns a list of (cert_bytes, encoding_type, trust) tuples. " -"The encoding_type specifies the encoding of cert_bytes. It is " -"either :const:`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for " -"PKCS#7 ASN.1 data." +"The encoding_type specifies the encoding of cert_bytes. It is either :const:" +"`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for PKCS#7 ASN.1 data." msgstr "" -#: ../../library/ssl.rst:475 msgid "Constants" msgstr "" -#: ../../library/ssl.rst:477 msgid "" "All constants are now :class:`enum.IntEnum` or :class:`enum.IntFlag` " "collections." msgstr "" -#: ../../library/ssl.rst:483 msgid "" -"Possible value for :attr:`SSLContext.verify_mode`. Except " -"for :const:`PROTOCOL_TLS_CLIENT`, it is the default mode. With client-side " -"sockets, just about any cert is accepted. Validation errors, such as " -"untrusted or expired cert, are ignored and do not abort the TLS/SSL " -"handshake." +"Possible value for :attr:`SSLContext.verify_mode`. Except for :const:" +"`PROTOCOL_TLS_CLIENT`, it is the default mode. With client-side sockets, " +"just about any cert is accepted. Validation errors, such as untrusted or " +"expired cert, are ignored and do not abort the TLS/SSL handshake." msgstr "" -#: ../../library/ssl.rst:489 msgid "" "In server mode, no certificate is requested from the client, so the client " "does not send any for client cert authentication." msgstr "" -#: ../../library/ssl.rst:492 ../../library/ssl.rst:2406 msgid "See the discussion of :ref:`ssl-security` below." msgstr "" -#: ../../library/ssl.rst:496 msgid "" -"Possible value for :attr:`SSLContext.verify_mode`. In client " -"mode, :const:`CERT_OPTIONAL` has the same meaning as :const:`CERT_REQUIRED`. " -"It is recommended to use :const:`CERT_REQUIRED` for client-side sockets " -"instead." +"Possible value for :attr:`SSLContext.verify_mode`. In client mode, :const:" +"`CERT_OPTIONAL` has the same meaning as :const:`CERT_REQUIRED`. It is " +"recommended to use :const:`CERT_REQUIRED` for client-side sockets instead." msgstr "" -#: ../../library/ssl.rst:501 msgid "" "In server mode, a client certificate request is sent to the client. The " "client may either ignore the request or send a certificate in order perform " @@ -644,78 +540,66 @@ msgid "" "TLS handshake." msgstr "" -#: ../../library/ssl.rst:507 ../../library/ssl.rst:526 msgid "" -"Use of this setting requires a valid set of CA certificates to be passed " -"to :meth:`SSLContext.load_verify_locations`." +"Use of this setting requires a valid set of CA certificates to be passed to :" +"meth:`SSLContext.load_verify_locations`." msgstr "" -#: ../../library/ssl.rst:512 msgid "" "Possible value for :attr:`SSLContext.verify_mode`. In this mode, " -"certificates are required from the other side of the socket connection; " -"an :class:`SSLError` will be raised if no certificate is provided, or if its " +"certificates are required from the other side of the socket connection; an :" +"class:`SSLError` will be raised if no certificate is provided, or if its " "validation fails. This mode is **not** sufficient to verify a certificate in " -"client mode as it does not match " -"hostnames. :attr:`~SSLContext.check_hostname` must be enabled as well to " -"verify the authenticity of a cert. :const:`PROTOCOL_TLS_CLIENT` " -"uses :const:`CERT_REQUIRED` and enables :attr:`~SSLContext.check_hostname` " -"by default." +"client mode as it does not match hostnames. :attr:`~SSLContext." +"check_hostname` must be enabled as well to verify the authenticity of a " +"cert. :const:`PROTOCOL_TLS_CLIENT` uses :const:`CERT_REQUIRED` and enables :" +"attr:`~SSLContext.check_hostname` by default." msgstr "" -#: ../../library/ssl.rst:522 msgid "" "With server socket, this mode provides mandatory TLS client cert " "authentication. A client certificate request is sent to the client and the " "client must provide a valid and trusted certificate." msgstr "" -#: ../../library/ssl.rst:531 msgid ":class:`enum.IntEnum` collection of CERT_* constants." msgstr "" -#: ../../library/ssl.rst:537 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, " "certificate revocation lists (CRLs) are not checked. By default OpenSSL does " "neither require nor verify CRLs." msgstr "" -#: ../../library/ssl.rst:545 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, only the " "peer cert is checked but none of the intermediate CA certificates. The mode " "requires a valid CRL that is signed by the peer cert's issuer (its direct " -"ancestor CA). If no proper CRL has been loaded " -"with :attr:`SSLContext.load_verify_locations`, validation will fail." +"ancestor CA). If no proper CRL has been loaded with :attr:`SSLContext." +"load_verify_locations`, validation will fail." msgstr "" -#: ../../library/ssl.rst:555 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, CRLs of " "all certificates in the peer cert chain are checked." msgstr "" -#: ../../library/ssl.rst:562 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to disable workarounds " "for broken X.509 certificates." msgstr "" -#: ../../library/ssl.rst:569 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to enables proxy " "certificate verification." msgstr "" -#: ../../library/ssl.rst:576 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " "prefer trusted certificates when building the trust chain to validate a " "certificate. This flag is enabled by default." msgstr "" -#: ../../library/ssl.rst:584 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " "accept intermediate CAs in the trust store to be treated as trust-anchors, " @@ -724,25 +608,21 @@ msgid "" "to trust its ancestor root CA." msgstr "" -#: ../../library/ssl.rst:595 msgid ":class:`enum.IntFlag` collection of VERIFY_* constants." msgstr "" -#: ../../library/ssl.rst:601 msgid "" "Selects the highest protocol version that both the client and server " "support. Despite the name, this option can select both \"SSL\" and \"TLS\" " "protocols." msgstr "" -#: ../../library/ssl.rst:608 msgid "" "TLS clients and servers require different default settings for secure " -"communication. The generic TLS protocol constant is deprecated in favor " -"of :data:`PROTOCOL_TLS_CLIENT` and :data:`PROTOCOL_TLS_SERVER`." +"communication. The generic TLS protocol constant is deprecated in favor of :" +"data:`PROTOCOL_TLS_CLIENT` and :data:`PROTOCOL_TLS_SERVER`." msgstr "" -#: ../../library/ssl.rst:614 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context client-side connections. The protocol " @@ -750,125 +630,101 @@ msgid "" "default." msgstr "" -#: ../../library/ssl.rst:623 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context server-side connections." msgstr "" -#: ../../library/ssl.rst:630 msgid "Alias for :data:`PROTOCOL_TLS`." msgstr "" -#: ../../library/ssl.rst:634 msgid "Use :data:`PROTOCOL_TLS` instead." msgstr "" -#: ../../library/ssl.rst:638 msgid "Selects SSL version 3 as the channel encryption protocol." msgstr "" -#: ../../library/ssl.rst:640 msgid "" "This protocol is not available if OpenSSL is compiled with the ``no-ssl3`` " "option." msgstr "" -#: ../../library/ssl.rst:645 msgid "SSL version 3 is insecure. Its use is highly discouraged." msgstr "" -#: ../../library/ssl.rst:649 msgid "" "OpenSSL has deprecated all version specific protocols. Use the default " -"protocol :data:`PROTOCOL_TLS_SERVER` or :data:`PROTOCOL_TLS_CLIENT` " -"with :attr:`SSLContext.minimum_version` " -"and :attr:`SSLContext.maximum_version` instead." +"protocol :data:`PROTOCOL_TLS_SERVER` or :data:`PROTOCOL_TLS_CLIENT` with :" +"attr:`SSLContext.minimum_version` and :attr:`SSLContext.maximum_version` " +"instead." msgstr "" -#: ../../library/ssl.rst:657 msgid "Selects TLS version 1.0 as the channel encryption protocol." msgstr "" -#: ../../library/ssl.rst:661 ../../library/ssl.rst:672 -#: ../../library/ssl.rst:683 msgid "OpenSSL has deprecated all version specific protocols." msgstr "" -#: ../../library/ssl.rst:665 msgid "" "Selects TLS version 1.1 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." msgstr "" -#: ../../library/ssl.rst:676 msgid "" "Selects TLS version 1.2 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." msgstr "" -#: ../../library/ssl.rst:687 msgid "" "Enables workarounds for various bugs present in other SSL implementations. " "This option is set by default. It does not necessarily set the same flags " "as OpenSSL's ``SSL_OP_ALL`` constant." msgstr "" -#: ../../library/ssl.rst:695 msgid "" "Prevents an SSLv2 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv2 as " "the protocol version." msgstr "" -#: ../../library/ssl.rst:703 msgid "SSLv2 is deprecated" msgstr "" -#: ../../library/ssl.rst:707 msgid "" "Prevents an SSLv3 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv3 as " "the protocol version." msgstr "" -#: ../../library/ssl.rst:715 msgid "SSLv3 is deprecated" msgstr "" -#: ../../library/ssl.rst:719 msgid "" "Prevents a TLSv1 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1 as " "the protocol version." msgstr "" -#: ../../library/ssl.rst:725 msgid "" -"The option is deprecated since OpenSSL 1.1.0, use the " -"new :attr:`SSLContext.minimum_version` " -"and :attr:`SSLContext.maximum_version` instead." +"The option is deprecated since OpenSSL 1.1.0, use the new :attr:`SSLContext." +"minimum_version` and :attr:`SSLContext.maximum_version` instead." msgstr "" -#: ../../library/ssl.rst:732 msgid "" "Prevents a TLSv1.1 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.1 as " "the protocol version. Available only with openssl version 1.0.1+." msgstr "" -#: ../../library/ssl.rst:738 ../../library/ssl.rst:749 msgid "The option is deprecated since OpenSSL 1.1.0." msgstr "" -#: ../../library/ssl.rst:743 msgid "" "Prevents a TLSv1.2 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.2 as " "the protocol version. Available only with openssl version 1.0.1+." msgstr "" -#: ../../library/ssl.rst:754 msgid "" "Prevents a TLSv1.3 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.3 as " @@ -877,75 +733,61 @@ msgid "" "defaults to *0*." msgstr "" -#: ../../library/ssl.rst:762 msgid "" "The option is deprecated since OpenSSL 1.1.0. It was added to 2.7.15 and " "3.6.3 for backwards compatibility with OpenSSL 1.0.2." msgstr "" -#: ../../library/ssl.rst:768 msgid "" "Disable all renegotiation in TLSv1.2 and earlier. Do not send HelloRequest " "messages, and ignore renegotiation requests via ClientHello." msgstr "" -#: ../../library/ssl.rst:771 msgid "This option is only available with OpenSSL 1.1.0h and later." msgstr "" -#: ../../library/ssl.rst:777 msgid "" "Use the server's cipher ordering preference, rather than the client's. This " "option has no effect on client sockets and SSLv2 server sockets." msgstr "" -#: ../../library/ssl.rst:784 msgid "" "Prevents reuse of the same DH key for distinct SSL sessions. This improves " "forward secrecy but requires more computational resources. This option only " "applies to server sockets." msgstr "" -#: ../../library/ssl.rst:792 msgid "" "Prevents reuse of the same ECDH key for distinct SSL sessions. This " "improves forward secrecy but requires more computational resources. This " "option only applies to server sockets." msgstr "" -#: ../../library/ssl.rst:800 msgid "" "Send dummy Change Cipher Spec (CCS) messages in TLS 1.3 handshake to make a " "TLS 1.3 connection look more like a TLS 1.2 connection." msgstr "" -#: ../../library/ssl.rst:803 msgid "This option is only available with OpenSSL 1.1.1 and later." msgstr "" -#: ../../library/ssl.rst:809 msgid "" "Disable compression on the SSL channel. This is useful if the application " "protocol supports its own compression scheme." msgstr "" -#: ../../library/ssl.rst:816 msgid ":class:`enum.IntFlag` collection of OP_* constants." msgstr "" -#: ../../library/ssl.rst:820 msgid "Prevent client side from requesting a session ticket." msgstr "" -#: ../../library/ssl.rst:826 msgid "Ignore unexpected shutdown of TLS connections." msgstr "" -#: ../../library/ssl.rst:828 ../../library/ssl.rst:844 msgid "This option is only available with OpenSSL 3.0.0 and later." msgstr "" -#: ../../library/ssl.rst:834 msgid "" "Enable the use of the kernel TLS. To benefit from the feature, OpenSSL must " "have been compiled with support for it, and the negotiated cipher suites and " @@ -953,7 +795,6 @@ msgid "" "platform and kernel version)." msgstr "" -#: ../../library/ssl.rst:839 msgid "" "Note that with enabled kernel TLS some cryptographic operations are " "performed by the kernel directly and not via any available OpenSSL " @@ -961,38 +802,32 @@ msgid "" "requires all cryptographic operations to be performed by the FIPS provider." msgstr "" -#: ../../library/ssl.rst:850 msgid "" "Allow legacy insecure renegotiation between OpenSSL and unpatched servers " "only." msgstr "" -#: ../../library/ssl.rst:857 msgid "" "Whether the OpenSSL library has built-in support for the *Application-Layer " "Protocol Negotiation* TLS extension as described in :rfc:`7301`." msgstr "" -#: ../../library/ssl.rst:864 msgid "" "Whether the OpenSSL library has built-in support not checking subject common " "name and :attr:`SSLContext.hostname_checks_common_name` is writeable." msgstr "" -#: ../../library/ssl.rst:872 msgid "" "Whether the OpenSSL library has built-in support for the Elliptic Curve-" "based Diffie-Hellman key exchange. This should be true unless the feature " "was explicitly disabled by the distributor." msgstr "" -#: ../../library/ssl.rst:880 msgid "" "Whether the OpenSSL library has built-in support for the *Server Name " "Indication* extension (as defined in :rfc:`6066`)." msgstr "" -#: ../../library/ssl.rst:887 msgid "" "Whether the OpenSSL library has built-in support for the *Next Protocol " "Negotiation* as described in the `Application Layer Protocol Negotiation " @@ -1001,77 +836,62 @@ msgid "" "advertise which protocols you want to support." msgstr "" -#: ../../library/ssl.rst:897 msgid "" "Whether the OpenSSL library has built-in support for the SSL 2.0 protocol." msgstr "" -#: ../../library/ssl.rst:903 msgid "" "Whether the OpenSSL library has built-in support for the SSL 3.0 protocol." msgstr "" -#: ../../library/ssl.rst:909 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.0 protocol." msgstr "" -#: ../../library/ssl.rst:915 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.1 protocol." msgstr "" -#: ../../library/ssl.rst:921 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.2 protocol." msgstr "" -#: ../../library/ssl.rst:927 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.3 protocol." msgstr "" -#: ../../library/ssl.rst:933 msgid "Whether the OpenSSL library has built-in support for TLS-PSK." msgstr "" -#: ../../library/ssl.rst:939 msgid "Whether the OpenSSL library has built-in support for TLS-PHA." msgstr "" -#: ../../library/ssl.rst:945 msgid "" "List of supported TLS channel binding types. Strings in this list can be " "used as arguments to :meth:`SSLSocket.get_channel_binding`." msgstr "" -#: ../../library/ssl.rst:952 msgid "The version string of the OpenSSL library loaded by the interpreter::" msgstr "" -#: ../../library/ssl.rst:954 msgid "" ">>> ssl.OPENSSL_VERSION\n" "'OpenSSL 1.0.2k 26 Jan 2017'" msgstr "" -#: ../../library/ssl.rst:961 msgid "" "A tuple of five integers representing version information about the OpenSSL " "library::" msgstr "" -#: ../../library/ssl.rst:964 msgid "" ">>> ssl.OPENSSL_VERSION_INFO\n" "(1, 0, 2, 11, 15)" msgstr "" -#: ../../library/ssl.rst:971 msgid "The raw version number of the OpenSSL library, as a single integer::" msgstr "" -#: ../../library/ssl.rst:973 msgid "" ">>> ssl.OPENSSL_VERSION_NUMBER\n" "268443839\n" @@ -1079,7 +899,6 @@ msgid "" "'0x100020bf'" msgstr "" -#: ../../library/ssl.rst:984 msgid "" "Alert Descriptions from :rfc:`5246` and others. The `IANA TLS Alert Registry " "`." msgstr "" -#: ../../library/ssl.rst:1083 msgid "" -"Instances of :class:`SSLSocket` must be created using " -"the :meth:`SSLContext.wrap_socket` method." +"Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." +"wrap_socket` method." msgstr "" -#: ../../library/ssl.rst:1086 msgid "The :meth:`sendfile` method was added." msgstr "" -#: ../../library/ssl.rst:1089 msgid "" "The :meth:`shutdown` does not reset the socket timeout each time bytes are " "received or sent. The socket timeout is now the maximum total duration of " "the shutdown." msgstr "" -#: ../../library/ssl.rst:1094 msgid "" -"It is deprecated to create a :class:`SSLSocket` instance directly, " -"use :meth:`SSLContext.wrap_socket` to wrap a socket." +"It is deprecated to create a :class:`SSLSocket` instance directly, use :meth:" +"`SSLContext.wrap_socket` to wrap a socket." msgstr "" -#: ../../library/ssl.rst:1098 msgid "" -":class:`SSLSocket` instances must to created " -"with :meth:`~SSLContext.wrap_socket`. In earlier versions, it was possible " -"to create instances directly. This was never documented or officially " -"supported." +":class:`SSLSocket` instances must to created with :meth:`~SSLContext." +"wrap_socket`. In earlier versions, it was possible to create instances " +"directly. This was never documented or officially supported." msgstr "" -#: ../../library/ssl.rst:1104 msgid "" "Python now uses ``SSL_read_ex`` and ``SSL_write_ex`` internally. The " "functions support reading and writing of data larger than 2 GB. Writing zero-" "length data no longer fails with a protocol violation error." msgstr "" -#: ../../library/ssl.rst:1109 msgid "SSL sockets also have the following additional methods and attributes:" msgstr "" -#: ../../library/ssl.rst:1113 msgid "" "Read up to *len* bytes of data from the SSL socket and return the result as " "a ``bytes`` instance. If *buffer* is specified, then read into the buffer " "instead, and return the number of bytes read." msgstr "" -#: ../../library/ssl.rst:1117 msgid "" -"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket " -"is :ref:`non-blocking ` and the read would block." +"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" +"ref:`non-blocking ` and the read would block." msgstr "" -#: ../../library/ssl.rst:1120 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`read` can also " "cause write operations." msgstr "" -#: ../../library/ssl.rst:1123 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " "The socket timeout is now the maximum total duration to read up to *len* " "bytes." msgstr "" -#: ../../library/ssl.rst:1128 msgid "Use :meth:`~SSLSocket.recv` instead of :meth:`~SSLSocket.read`." msgstr "" -#: ../../library/ssl.rst:1133 msgid "" "Write *buf* to the SSL socket and return the number of bytes written. The " "*buf* argument must be an object supporting the buffer interface." msgstr "" -#: ../../library/ssl.rst:1136 msgid "" -"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket " -"is :ref:`non-blocking ` and the write would block." +"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" +"ref:`non-blocking ` and the write would block." msgstr "" -#: ../../library/ssl.rst:1139 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`write` can " "also cause read operations." msgstr "" -#: ../../library/ssl.rst:1142 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " "The socket timeout is now the maximum total duration to write *buf*." msgstr "" -#: ../../library/ssl.rst:1146 msgid "Use :meth:`~SSLSocket.send` instead of :meth:`~SSLSocket.write`." msgstr "" -#: ../../library/ssl.rst:1151 msgid "" "The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the low-" "level methods that read and write unencrypted, application-level data and " "decrypt/encrypt it to encrypted, wire-level data. These methods require an " -"active SSL connection, i.e. the handshake was completed " -"and :meth:`SSLSocket.unwrap` was not called." +"active SSL connection, i.e. the handshake was completed and :meth:`SSLSocket." +"unwrap` was not called." msgstr "" -#: ../../library/ssl.rst:1157 msgid "" -"Normally you should use the socket API methods " -"like :meth:`~socket.socket.recv` and :meth:`~socket.socket.send` instead of " -"these methods." +"Normally you should use the socket API methods like :meth:`~socket.socket." +"recv` and :meth:`~socket.socket.send` instead of these methods." msgstr "" -#: ../../library/ssl.rst:1163 msgid "Perform the SSL setup handshake." msgstr "" -#: ../../library/ssl.rst:1165 msgid "" -"The handshake method also performs :func:`match_hostname` when " -"the :attr:`~SSLContext.check_hostname` attribute of the " -"socket's :attr:`~SSLSocket.context` is true." +"The handshake method also performs :func:`match_hostname` when the :attr:" +"`~SSLContext.check_hostname` attribute of the socket's :attr:`~SSLSocket." +"context` is true." msgstr "" -#: ../../library/ssl.rst:1170 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " "The socket timeout is now the maximum total duration of the handshake." msgstr "" -#: ../../library/ssl.rst:1174 msgid "" -"Hostname or IP address is matched by OpenSSL during handshake. The " -"function :func:`match_hostname` is no longer used. In case OpenSSL refuses a " -"hostname or IP address, the handshake is aborted early and a TLS alert " -"message is sent to the peer." +"Hostname or IP address is matched by OpenSSL during handshake. The function :" +"func:`match_hostname` is no longer used. In case OpenSSL refuses a hostname " +"or IP address, the handshake is aborted early and a TLS alert message is " +"sent to the peer." msgstr "" -#: ../../library/ssl.rst:1182 msgid "" "If there is no certificate for the peer on the other end of the connection, " -"return ``None``. If the SSL handshake hasn't been done yet, " -"raise :exc:`ValueError`." +"return ``None``. If the SSL handshake hasn't been done yet, raise :exc:" +"`ValueError`." msgstr "" -#: ../../library/ssl.rst:1186 msgid "" "If the ``binary_form`` parameter is :const:`False`, and a certificate was " "received from the peer, this method returns a :class:`dict` instance. If " @@ -1383,7 +1149,6 @@ msgid "" "also be a ``subjectAltName`` key in the dictionary." msgstr "" -#: ../../library/ssl.rst:1195 msgid "" "The ``subject`` and ``issuer`` fields are tuples containing the sequence of " "relative distinguished names (RDNs) given in the certificate's data " @@ -1391,7 +1156,6 @@ msgid "" "value pairs. Here is a real-world example::" msgstr "" -#: ../../library/ssl.rst:1200 msgid "" "{'issuer': ((('countryName', 'IL'),),\n" " (('organizationName', 'StartCom Ltd.'),),\n" @@ -1414,7 +1178,6 @@ msgid "" " 'version': 3}" msgstr "" -#: ../../library/ssl.rst:1219 msgid "" "If the ``binary_form`` parameter is :const:`True`, and a certificate was " "provided, this method returns the DER-encoded form of the entire certificate " @@ -1423,55 +1186,46 @@ msgid "" "socket's role:" msgstr "" -#: ../../library/ssl.rst:1225 msgid "" "for a client SSL socket, the server will always provide a certificate, " "regardless of whether validation was required;" msgstr "" -#: ../../library/ssl.rst:1228 msgid "" "for a server SSL socket, the client will only provide a certificate when " -"requested by the server; therefore :meth:`getpeercert` will " -"return :const:`None` if you used :const:`CERT_NONE` (rather " -"than :const:`CERT_OPTIONAL` or :const:`CERT_REQUIRED`)." +"requested by the server; therefore :meth:`getpeercert` will return :const:" +"`None` if you used :const:`CERT_NONE` (rather than :const:`CERT_OPTIONAL` " +"or :const:`CERT_REQUIRED`)." msgstr "" -#: ../../library/ssl.rst:1233 msgid "See also :attr:`SSLContext.check_hostname`." msgstr "" -#: ../../library/ssl.rst:1235 msgid "" "The returned dictionary includes additional items such as ``issuer`` and " "``notBefore``." msgstr "" -#: ../../library/ssl.rst:1239 msgid "" ":exc:`ValueError` is raised when the handshake isn't done. The returned " "dictionary includes additional X509v3 extension items such as " "``crlDistributionPoints``, ``caIssuers`` and ``OCSP`` URIs." msgstr "" -#: ../../library/ssl.rst:1244 msgid "IPv6 address strings no longer have a trailing new line." msgstr "" -#: ../../library/ssl.rst:1249 msgid "" "Returns verified certificate chain provided by the other end of the SSL " "channel as a list of DER-encoded bytes. If certificate verification was " "disabled method acts the same as :meth:`~SSLSocket.get_unverified_chain`." msgstr "" -#: ../../library/ssl.rst:1258 msgid "" "Returns raw certificate chain provided by the other end of the SSL channel " "as a list of DER-encoded bytes." msgstr "" -#: ../../library/ssl.rst:1265 msgid "" "Returns a three-value tuple containing the name of the cipher being used, " "the version of the SSL protocol that defines its use, and the number of " @@ -1479,7 +1233,6 @@ msgid "" "``None``." msgstr "" -#: ../../library/ssl.rst:1271 msgid "" "Return the list of ciphers available in both the client and server. Each " "entry of the returned list is a three-value tuple containing the name of the " @@ -1489,43 +1242,36 @@ msgid "" "socket." msgstr "" -#: ../../library/ssl.rst:1282 msgid "" "Return the compression algorithm being used as a string, or ``None`` if the " "connection isn't compressed." msgstr "" -#: ../../library/ssl.rst:1285 msgid "" "If the higher-level protocol supports its own compression mechanism, you can " "use :data:`OP_NO_COMPRESSION` to disable SSL-level compression." msgstr "" -#: ../../library/ssl.rst:1292 msgid "" "Get channel binding data for current connection, as a bytes object. Returns " "``None`` if not connected or the handshake has not been completed." msgstr "" -#: ../../library/ssl.rst:1295 msgid "" "The *cb_type* parameter allow selection of the desired channel binding type. " "Valid channel binding types are listed in the :data:`CHANNEL_BINDING_TYPES` " -"list. Currently only the 'tls-unique' channel binding, defined " -"by :rfc:`5929`, is supported. :exc:`ValueError` will be raised if an " -"unsupported channel binding type is requested." +"list. Currently only the 'tls-unique' channel binding, defined by :rfc:" +"`5929`, is supported. :exc:`ValueError` will be raised if an unsupported " +"channel binding type is requested." msgstr "" -#: ../../library/ssl.rst:1305 msgid "" -"Return the protocol that was selected during the TLS handshake. " -"If :meth:`SSLContext.set_alpn_protocols` was not called, if the other party " -"does not support ALPN, if this socket does not support any of the client's " -"proposed protocols, or if the handshake has not happened yet, ``None`` is " -"returned." +"Return the protocol that was selected during the TLS handshake. If :meth:" +"`SSLContext.set_alpn_protocols` was not called, if the other party does not " +"support ALPN, if this socket does not support any of the client's proposed " +"protocols, or if the handshake has not happened yet, ``None`` is returned." msgstr "" -#: ../../library/ssl.rst:1315 msgid "" "Return the higher-level protocol that was selected during the TLS/SSL " "handshake. If :meth:`SSLContext.set_npn_protocols` was not called, or if the " @@ -1533,11 +1279,9 @@ msgid "" "this will return ``None``." msgstr "" -#: ../../library/ssl.rst:1324 ../../library/ssl.rst:1693 msgid "NPN has been superseded by ALPN" msgstr "" -#: ../../library/ssl.rst:1328 msgid "" "Performs the SSL shutdown handshake, which removes the TLS layer from the " "underlying socket, and returns the underlying socket object. This can be " @@ -1546,34 +1290,29 @@ msgid "" "other side of the connection, rather than the original socket." msgstr "" -#: ../../library/ssl.rst:1336 msgid "" "Requests post-handshake authentication (PHA) from a TLS 1.3 client. PHA can " "only be initiated for a TLS 1.3 connection from a server-side socket, after " -"the initial TLS handshake and with PHA enabled on both sides, " -"see :attr:`SSLContext.post_handshake_auth`." +"the initial TLS handshake and with PHA enabled on both sides, see :attr:" +"`SSLContext.post_handshake_auth`." msgstr "" -#: ../../library/ssl.rst:1341 msgid "" "The method does not perform a cert exchange immediately. The server-side " "sends a CertificateRequest during the next write event and expects the " "client to respond with a certificate on the next read event." msgstr "" -#: ../../library/ssl.rst:1345 msgid "" -"If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), " -"an :exc:`SSLError` is raised." +"If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), an :exc:" +"`SSLError` is raised." msgstr "" -#: ../../library/ssl.rst:1349 msgid "" "Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " "support, the method raises :exc:`NotImplementedError`." msgstr "" -#: ../../library/ssl.rst:1356 msgid "" "Return the actual SSL protocol version negotiated by the connection as a " "string, or ``None`` if no secure connection is established. As of this " @@ -1582,49 +1321,41 @@ msgid "" "may define more return values." msgstr "" -#: ../../library/ssl.rst:1366 msgid "" "Returns the number of already decrypted bytes available for read, pending on " "the connection." msgstr "" -#: ../../library/ssl.rst:1371 msgid "The :class:`SSLContext` object this SSL socket is tied to." msgstr "" -#: ../../library/ssl.rst:1377 msgid "" "A boolean which is ``True`` for server-side sockets and ``False`` for client-" "side sockets." msgstr "" -#: ../../library/ssl.rst:1384 msgid "" "Hostname of the server: :class:`str` type, or ``None`` for server-side " "socket or if the hostname was not specified in the constructor." msgstr "" -#: ../../library/ssl.rst:1389 msgid "" "The attribute is now always ASCII text. When ``server_hostname`` is an " "internationalized domain name (IDN), this attribute now stores the A-label " -"form (``\"xn--pythn-mua.org\"``), rather than the U-label form " -"(``\"pythön.org\"``)." +"form (``\"xn--pythn-mua.org\"``), rather than the U-label form (``\"pythön." +"org\"``)." msgstr "" -#: ../../library/ssl.rst:1397 msgid "" "The :class:`SSLSession` for this SSL connection. The session is available " "for client and server side sockets after the TLS handshake has been " -"performed. For client sockets the session can be set " -"before :meth:`~SSLSocket.do_handshake` has been called to reuse a session." +"performed. For client sockets the session can be set before :meth:" +"`~SSLSocket.do_handshake` has been called to reuse a session." msgstr "" -#: ../../library/ssl.rst:1410 msgid "SSL Contexts" msgstr "" -#: ../../library/ssl.rst:1414 msgid "" "An SSL context holds various data longer-lived than single SSL connections, " "such as SSL configuration options, certificate(s) and private key(s). It " @@ -1632,7 +1363,6 @@ msgid "" "speed up repeated connections from the same clients." msgstr "" -#: ../../library/ssl.rst:1421 msgid "" "Create a new SSL context. You may pass *protocol* which must be one of the " "``PROTOCOL_*`` constants defined in this module. The parameter specifies " @@ -1643,134 +1373,104 @@ msgid "" "provides the most compatibility with other versions." msgstr "" -#: ../../library/ssl.rst:1430 msgid "" "Here's a table showing which versions in a client (down the side) can " "connect to which versions in a server (along the top):" msgstr "" -#: ../../library/ssl.rst:1436 msgid "*client* / **server**" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**SSLv2**" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**SSLv3**" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**TLS** [3]_" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**TLSv1**" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**TLSv1.1**" msgstr "" -#: ../../library/ssl.rst:1436 msgid "**TLSv1.2**" msgstr "" -#: ../../library/ssl.rst:1438 msgid "*SSLv2*" msgstr "" -#: ../../library/ssl.rst:1438 ../../library/ssl.rst:1439 -#: ../../library/ssl.rst:1440 ../../library/ssl.rst:1441 -#: ../../library/ssl.rst:1442 ../../library/ssl.rst:1443 msgid "yes" msgstr "" -#: ../../library/ssl.rst:1438 ../../library/ssl.rst:1439 -#: ../../library/ssl.rst:1441 ../../library/ssl.rst:1442 -#: ../../library/ssl.rst:1443 msgid "no" msgstr "" -#: ../../library/ssl.rst:1438 ../../library/ssl.rst:1440 msgid "no [1]_" msgstr "" -#: ../../library/ssl.rst:1439 msgid "*SSLv3*" msgstr "" -#: ../../library/ssl.rst:1439 ../../library/ssl.rst:1440 msgid "no [2]_" msgstr "" -#: ../../library/ssl.rst:1440 msgid "*TLS* (*SSLv23*) [3]_" msgstr "" -#: ../../library/ssl.rst:1441 msgid "*TLSv1*" msgstr "" -#: ../../library/ssl.rst:1442 msgid "*TLSv1.1*" msgstr "" -#: ../../library/ssl.rst:1443 msgid "*TLSv1.2*" msgstr "" -#: ../../library/ssl.rst:1446 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/ssl.rst:1447 msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." msgstr "" -#: ../../library/ssl.rst:1448 msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." msgstr "" -#: ../../library/ssl.rst:1449 msgid "" "TLS 1.3 protocol will be available with :data:`PROTOCOL_TLS` in OpenSSL >= " "1.1.1. There is no dedicated PROTOCOL constant for just TLS 1.3." msgstr "" -#: ../../library/ssl.rst:1454 msgid "" ":func:`create_default_context` lets the :mod:`ssl` module choose security " "settings for a given purpose." msgstr "" -#: ../../library/ssl.rst:1459 msgid "" -"The context is created with secure default values. The " -"options :data:`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, :data:`OP_NO_SSLv2`, " -"and :data:`OP_NO_SSLv3` (except for :data:`PROTOCOL_SSLv3`) are set by " -"default. The initial cipher suite list contains only ``HIGH`` ciphers, no " -"``NULL`` ciphers and no ``MD5`` ciphers." +"The context is created with secure default values. The options :data:" +"`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" +"`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, :data:`OP_NO_SSLv2`, and :" +"data:`OP_NO_SSLv3` (except for :data:`PROTOCOL_SSLv3`) are set by default. " +"The initial cipher suite list contains only ``HIGH`` ciphers, no ``NULL`` " +"ciphers and no ``MD5`` ciphers." msgstr "" -#: ../../library/ssl.rst:1469 msgid "" ":class:`SSLContext` without protocol argument is deprecated. The context " -"class will either require :data:`PROTOCOL_TLS_CLIENT` " -"or :data:`PROTOCOL_TLS_SERVER` protocol in the future." +"class will either require :data:`PROTOCOL_TLS_CLIENT` or :data:" +"`PROTOCOL_TLS_SERVER` protocol in the future." msgstr "" -#: ../../library/ssl.rst:1475 msgid "" "The default cipher suites now include only secure AES and ChaCha20 ciphers " "with forward secrecy and security level 2. RSA and DH keys with less than " -"2048 bits and ECC keys with less than 224 bits are " -"prohibited. :data:`PROTOCOL_TLS`, :data:`PROTOCOL_TLS_CLIENT`, " -"and :data:`PROTOCOL_TLS_SERVER` use TLS 1.2 as minimum TLS version." +"2048 bits and ECC keys with less than 224 bits are prohibited. :data:" +"`PROTOCOL_TLS`, :data:`PROTOCOL_TLS_CLIENT`, and :data:`PROTOCOL_TLS_SERVER` " +"use TLS 1.2 as minimum TLS version." msgstr "" -#: ../../library/ssl.rst:1483 msgid "" ":class:`SSLContext` only supports limited mutation once it has been used by " "a connection. Adding new certificates to the internal trust store is " @@ -1778,35 +1478,29 @@ msgid "" "may result in surprising behavior." msgstr "" -#: ../../library/ssl.rst:1490 msgid "" ":class:`SSLContext` is designed to be shared and used by multiple " "connections. Thus, it is thread-safe as long as it is not reconfigured after " "being used by a connection." msgstr "" -#: ../../library/ssl.rst:1495 msgid ":class:`SSLContext` objects have the following methods and attributes:" msgstr "" -#: ../../library/ssl.rst:1499 msgid "" "Get statistics about quantities of loaded X.509 certificates, count of X.509 " "certificates flagged as CA certificates and certificate revocation lists as " "dictionary." msgstr "" -#: ../../library/ssl.rst:1503 msgid "Example for a context with one CA cert and one other cert::" msgstr "" -#: ../../library/ssl.rst:1505 msgid "" ">>> context.cert_store_stats()\n" "{'crl': 0, 'x509_ca': 1, 'x509': 2}" msgstr "" -#: ../../library/ssl.rst:1513 msgid "" "Load a private key and the corresponding certificate. The *certfile* string " "must be the path to a single file in PEM format containing the certificate " @@ -1817,7 +1511,6 @@ msgid "" "more information on how the certificate is stored in the *certfile*." msgstr "" -#: ../../library/ssl.rst:1522 msgid "" "The *password* argument may be a function to call to get the password for " "decrypting the private key. It will only be called if the private key is " @@ -1829,33 +1522,28 @@ msgid "" "encrypted and no password is needed." msgstr "" -#: ../../library/ssl.rst:1531 msgid "" "If the *password* argument is not specified and a password is required, " "OpenSSL's built-in password prompting mechanism will be used to " "interactively prompt the user for a password." msgstr "" -#: ../../library/ssl.rst:1535 msgid "" "An :class:`SSLError` is raised if the private key doesn't match with the " "certificate." msgstr "" -#: ../../library/ssl.rst:1538 msgid "New optional argument *password*." msgstr "" -#: ../../library/ssl.rst:1543 msgid "" "Load a set of default \"certification authority\" (CA) certificates from " "default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " -"system stores. On all systems it " -"calls :meth:`SSLContext.set_default_verify_paths`. In the future the method " -"may load CA certificates from other locations, too." +"system stores. On all systems it calls :meth:`SSLContext." +"set_default_verify_paths`. In the future the method may load CA certificates " +"from other locations, too." msgstr "" -#: ../../library/ssl.rst:1549 msgid "" "The *purpose* flag specifies what kind of CA certificates are loaded. The " "default settings :const:`Purpose.SERVER_AUTH` loads certificates, that are " @@ -1864,36 +1552,30 @@ msgid "" "certificate verification on the server side." msgstr "" -#: ../../library/ssl.rst:1559 msgid "" "Load a set of \"certification authority\" (CA) certificates used to validate " -"other peers' certificates when :data:`verify_mode` is other " -"than :data:`CERT_NONE`. At least one of *cafile* or *capath* must be " -"specified." +"other peers' certificates when :data:`verify_mode` is other than :data:" +"`CERT_NONE`. At least one of *cafile* or *capath* must be specified." msgstr "" -#: ../../library/ssl.rst:1563 msgid "" "This method can also load certification revocation lists (CRLs) in PEM or " "DER format. In order to make use of CRLs, :attr:`SSLContext.verify_flags` " "must be configured properly." msgstr "" -#: ../../library/ssl.rst:1567 msgid "" "The *cafile* string, if present, is the path to a file of concatenated CA " "certificates in PEM format. See the discussion of :ref:`ssl-certificates` " "for more information about how to arrange the certificates in this file." msgstr "" -#: ../../library/ssl.rst:1572 msgid "" "The *capath* string, if present, is the path to a directory containing " "several CA certificates in PEM format, following an `OpenSSL specific layout " "`_." msgstr "" -#: ../../library/ssl.rst:1577 msgid "" "The *cadata* object, if present, is either an ASCII string of one or more " "PEM-encoded certificates or a :term:`bytes-like object` of DER-encoded " @@ -1901,11 +1583,9 @@ msgid "" "are ignored but at least one certificate must be present." msgstr "" -#: ../../library/ssl.rst:1582 msgid "New optional argument *cadata*" msgstr "" -#: ../../library/ssl.rst:1587 msgid "" "Get a list of loaded \"certification authority\" (CA) certificates. If the " "``binary_form`` parameter is :const:`False` each list entry is a dict like " @@ -1915,19 +1595,16 @@ msgid "" "a SSL connection." msgstr "" -#: ../../library/ssl.rst:1595 msgid "" "Certificates in a capath directory aren't loaded unless they have been used " "at least once." msgstr "" -#: ../../library/ssl.rst:1602 msgid "" -"Get a list of enabled ciphers. The list is in order of cipher priority. " -"See :meth:`SSLContext.set_ciphers`." +"Get a list of enabled ciphers. The list is in order of cipher priority. See :" +"meth:`SSLContext.set_ciphers`." msgstr "" -#: ../../library/ssl.rst:1607 msgid "" ">>> ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n" ">>> ctx.set_ciphers('ECDHE+AESGCM:!ECDSA')\n" @@ -1958,7 +1635,6 @@ msgid "" " 'symmetric': 'aes-128-gcm'}]" msgstr "" -#: ../../library/ssl.rst:1639 msgid "" "Load a set of default \"certification authority\" (CA) certificates from a " "filesystem path defined when building the OpenSSL library. Unfortunately, " @@ -1968,7 +1644,6 @@ msgid "" "configured properly." msgstr "" -#: ../../library/ssl.rst:1648 msgid "" "Set the available ciphers for sockets created with this context. It should " "be a string in the `OpenSSL cipher list format `_. After a successful handshake, " -"the :meth:`SSLSocket.selected_npn_protocol` method will return the agreed-" -"upon protocol." +"Layer_Protocol_Negotiation>`_. After a successful handshake, the :meth:" +"`SSLSocket.selected_npn_protocol` method will return the agreed-upon " +"protocol." msgstr "" -#: ../../library/ssl.rst:1686 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_NPN` is " "``False``." msgstr "" -#: ../../library/ssl.rst:1697 msgid "" "Register a callback function that will be called after the TLS Client Hello " "handshake message has been received by the SSL/TLS server when the TLS " @@ -2031,14 +1699,12 @@ msgid "" "mechanism is specified in :rfc:`6066` section 3 - Server Name Indication." msgstr "" -#: ../../library/ssl.rst:1702 msgid "" "Only one callback can be set per ``SSLContext``. If *sni_callback* is set " "to ``None`` then the callback is disabled. Calling this function a " "subsequent time will disable the previously registered callback." msgstr "" -#: ../../library/ssl.rst:1706 msgid "" "The callback function will be called with three arguments; the first being " "the :class:`ssl.SSLSocket`, the second is a string that represents the " @@ -2049,48 +1715,42 @@ msgid "" "pythn-mua.org\"``)." msgstr "" -#: ../../library/ssl.rst:1714 msgid "" -"A typical use of this callback is to change " -"the :class:`ssl.SSLSocket`'s :attr:`SSLSocket.context` attribute to a new " -"object of type :class:`SSLContext` representing a certificate chain that " -"matches the server name." +"A typical use of this callback is to change the :class:`ssl.SSLSocket`'s :" +"attr:`SSLSocket.context` attribute to a new object of type :class:" +"`SSLContext` representing a certificate chain that matches the server name." msgstr "" -#: ../../library/ssl.rst:1719 msgid "" "Due to the early negotiation phase of the TLS connection, only limited " -"methods and attributes are usable " -"like :meth:`SSLSocket.selected_alpn_protocol` and :attr:`SSLSocket.context`. " -"The :meth:`SSLSocket.getpeercert`, :meth:`SSLSocket.get_verified_chain`, :meth:`SSLSocket.get_unverified_chain` :meth:`SSLSocket.cipher` " -"and :meth:`SSLSocket.compression` methods require that the TLS connection " -"has progressed beyond the TLS Client Hello and therefore will not return " -"meaningful values nor can they be called safely." +"methods and attributes are usable like :meth:`SSLSocket." +"selected_alpn_protocol` and :attr:`SSLSocket.context`. The :meth:`SSLSocket." +"getpeercert`, :meth:`SSLSocket.get_verified_chain`, :meth:`SSLSocket." +"get_unverified_chain` :meth:`SSLSocket.cipher` and :meth:`SSLSocket." +"compression` methods require that the TLS connection has progressed beyond " +"the TLS Client Hello and therefore will not return meaningful values nor can " +"they be called safely." msgstr "" -#: ../../library/ssl.rst:1728 msgid "" "The *sni_callback* function must return ``None`` to allow the TLS " -"negotiation to continue. If a TLS failure is required, a " -"constant :const:`ALERT_DESCRIPTION_* ` can " -"be returned. Other return values will result in a TLS fatal error " -"with :const:`ALERT_DESCRIPTION_INTERNAL_ERROR`." +"negotiation to continue. If a TLS failure is required, a constant :const:" +"`ALERT_DESCRIPTION_* ` can be returned. " +"Other return values will result in a TLS fatal error with :const:" +"`ALERT_DESCRIPTION_INTERNAL_ERROR`." msgstr "" -#: ../../library/ssl.rst:1734 msgid "" "If an exception is raised from the *sni_callback* function the TLS " -"connection will terminate with a fatal TLS alert " -"message :const:`ALERT_DESCRIPTION_HANDSHAKE_FAILURE`." +"connection will terminate with a fatal TLS alert message :const:" +"`ALERT_DESCRIPTION_HANDSHAKE_FAILURE`." msgstr "" -#: ../../library/ssl.rst:1738 msgid "" "This method will raise :exc:`NotImplementedError` if the OpenSSL library had " "OPENSSL_NO_TLSEXT defined when it was built." msgstr "" -#: ../../library/ssl.rst:1745 msgid "" "This is a legacy API retained for backwards compatibility. When possible, " "you should use :attr:`sni_callback` instead. The given " @@ -2099,14 +1759,12 @@ msgid "" "*server_name_callback* receives a decoded U-label (``\"pythön.org\"``)." msgstr "" -#: ../../library/ssl.rst:1751 msgid "" "If there is a decoding error on the server name, the TLS connection will " "terminate with an :const:`ALERT_DESCRIPTION_INTERNAL_ERROR` fatal TLS alert " "message to the client." msgstr "" -#: ../../library/ssl.rst:1759 msgid "" "Load the key generation parameters for Diffie-Hellman (DH) key exchange. " "Using DH key exchange improves forward secrecy at the expense of " @@ -2115,13 +1773,11 @@ msgid "" "format." msgstr "" -#: ../../library/ssl.rst:1765 msgid "" -"This setting doesn't apply to client sockets. You can also use " -"the :data:`OP_SINGLE_DH_USE` option to further improve security." +"This setting doesn't apply to client sockets. You can also use the :data:" +"`OP_SINGLE_DH_USE` option to further improve security." msgstr "" -#: ../../library/ssl.rst:1772 msgid "" "Set the curve name for Elliptic Curve-based Diffie-Hellman (ECDH) key " "exchange. ECDH is significantly faster than regular DH while arguably as " @@ -2130,53 +1786,44 @@ msgid "" "curve." msgstr "" -#: ../../library/ssl.rst:1778 msgid "" -"This setting doesn't apply to client sockets. You can also use " -"the :data:`OP_SINGLE_ECDH_USE` option to further improve security." +"This setting doesn't apply to client sockets. You can also use the :data:" +"`OP_SINGLE_ECDH_USE` option to further improve security." msgstr "" -#: ../../library/ssl.rst:1781 msgid "This method is not available if :data:`HAS_ECDH` is ``False``." msgstr "" -#: ../../library/ssl.rst:1786 msgid "" "`SSL/TLS & Perfect Forward Secrecy `_" msgstr "" -#: ../../library/ssl.rst:1787 msgid "Vincent Bernat." msgstr "" -#: ../../library/ssl.rst:1793 msgid "" -"Wrap an existing Python socket *sock* and return an instance " -"of :attr:`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The " -"returned SSL socket is tied to the context, its settings and certificates. " -"*sock* must be a :const:`~socket.SOCK_STREAM` socket; other socket types are " -"unsupported." +"Wrap an existing Python socket *sock* and return an instance of :attr:" +"`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " +"socket is tied to the context, its settings and certificates. *sock* must be " +"a :const:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" -#: ../../library/ssl.rst:1799 msgid "" "The parameter ``server_side`` is a boolean which identifies whether server-" "side or client-side behavior is desired from this socket." msgstr "" -#: ../../library/ssl.rst:1802 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " "after :meth:`connect` is called on the socket. For server-side sockets, if " "the socket has no remote peer, it is assumed to be a listening socket, and " "the server-side SSL wrapping is automatically performed on client " -"connections accepted via the :meth:`accept` method. The method may " -"raise :exc:`SSLError`." +"connections accepted via the :meth:`accept` method. The method may raise :" +"exc:`SSLError`." msgstr "" -#: ../../library/ssl.rst:1810 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -2185,87 +1832,74 @@ msgid "" "*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." msgstr "" -#: ../../library/ssl.rst:1816 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " -"application program will call it explicitly, by invoking " -"the :meth:`SSLSocket.do_handshake` method. " -"Calling :meth:`SSLSocket.do_handshake` explicitly gives the program control " -"over the blocking behavior of the socket I/O involved in the handshake." +"application program will call it explicitly, by invoking the :meth:" +"`SSLSocket.do_handshake` method. Calling :meth:`SSLSocket.do_handshake` " +"explicitly gives the program control over the blocking behavior of the " +"socket I/O involved in the handshake." msgstr "" -#: ../../library/ssl.rst:1823 msgid "" -"The parameter ``suppress_ragged_eofs`` specifies how " -"the :meth:`SSLSocket.recv` method should signal unexpected EOF from the " -"other end of the connection. If specified as :const:`True` (the default), " -"it returns a normal EOF (an empty bytes object) in response to unexpected " -"EOF errors raised from the underlying socket; if :const:`False`, it will " -"raise the exceptions back to the caller." +"The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." +"recv` method should signal unexpected EOF from the other end of the " +"connection. If specified as :const:`True` (the default), it returns a " +"normal EOF (an empty bytes object) in response to unexpected EOF errors " +"raised from the underlying socket; if :const:`False`, it will raise the " +"exceptions back to the caller." msgstr "" -#: ../../library/ssl.rst:1830 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "" -#: ../../library/ssl.rst:1832 msgid "" -"To wrap an :class:`SSLSocket` in another :class:`SSLSocket`, " -"use :meth:`SSLContext.wrap_bio`." +"To wrap an :class:`SSLSocket` in another :class:`SSLSocket`, use :meth:" +"`SSLContext.wrap_bio`." msgstr "" -#: ../../library/ssl.rst:1835 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" -#: ../../library/ssl.rst:1839 ../../library/ssl.rst:1865 msgid "*session* argument was added." msgstr "" -#: ../../library/ssl.rst:1842 msgid "" "The method returns an instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." msgstr "" -#: ../../library/ssl.rst:1848 msgid "" -"The return type of :meth:`SSLContext.wrap_socket`, defaults " -"to :class:`SSLSocket`. The attribute can be overridden on instance of class " -"in order to return a custom subclass of :class:`SSLSocket`." +"The return type of :meth:`SSLContext.wrap_socket`, defaults to :class:" +"`SSLSocket`. The attribute can be assigned to on instances of :class:" +"`SSLContext` in order to return a custom subclass of :class:`SSLSocket`." msgstr "" -#: ../../library/ssl.rst:1857 msgid "" -"Wrap the BIO objects *incoming* and *outgoing* and return an instance " -"of :attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " +"Wrap the BIO objects *incoming* and *outgoing* and return an instance of :" +"attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " "routines will read input data from the incoming BIO and write data to the " "outgoing BIO." msgstr "" -#: ../../library/ssl.rst:1862 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " "meaning as in :meth:`SSLContext.wrap_socket`." msgstr "" -#: ../../library/ssl.rst:1868 msgid "" "The method returns an instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." msgstr "" -#: ../../library/ssl.rst:1874 msgid "" -"The return type of :meth:`SSLContext.wrap_bio`, defaults " -"to :class:`SSLObject`. The attribute can be overridden on instance of class " -"in order to return a custom subclass of :class:`SSLObject`." +"The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:" +"`SSLObject`. The attribute can be overridden on instance of class in order " +"to return a custom subclass of :class:`SSLObject`." msgstr "" -#: ../../library/ssl.rst:1882 msgid "" "Get statistics about the SSL sessions created or managed by this context. A " "dictionary is returned which maps the names of each `piece of information " @@ -2274,28 +1908,24 @@ msgid "" "the session cache since the context was created::" msgstr "" -#: ../../library/ssl.rst:1887 msgid "" ">>> stats = context.session_stats()\n" ">>> stats['hits'], stats['misses']\n" "(0, 0)" msgstr "" -#: ../../library/ssl.rst:1893 msgid "" "Whether to match the peer cert's hostname in :meth:`SSLSocket.do_handshake`. " -"The context's :attr:`~SSLContext.verify_mode` must be set " -"to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, and you must pass " +"The context's :attr:`~SSLContext.verify_mode` must be set to :data:" +"`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, and you must pass " "*server_hostname* to :meth:`~SSLContext.wrap_socket` in order to match the " -"hostname. Enabling hostname checking automatically " -"sets :attr:`~SSLContext.verify_mode` from :data:`CERT_NONE` " -"to :data:`CERT_REQUIRED`. It cannot be set back to :data:`CERT_NONE` as " -"long as hostname checking is enabled. The :data:`PROTOCOL_TLS_CLIENT` " -"protocol enables hostname checking by default. With other protocols, " -"hostname checking must be enabled explicitly." +"hostname. Enabling hostname checking automatically sets :attr:`~SSLContext." +"verify_mode` from :data:`CERT_NONE` to :data:`CERT_REQUIRED`. It cannot be " +"set back to :data:`CERT_NONE` as long as hostname checking is enabled. The :" +"data:`PROTOCOL_TLS_CLIENT` protocol enables hostname checking by default. " +"With other protocols, hostname checking must be enabled explicitly." msgstr "" -#: ../../library/ssl.rst:1906 msgid "" "import socket, ssl\n" "\n" @@ -2309,15 +1939,13 @@ msgid "" "ssl_sock.connect(('www.verisign.com', 443))" msgstr "" -#: ../../library/ssl.rst:1921 msgid "" -":attr:`~SSLContext.verify_mode` is now automatically changed " -"to :data:`CERT_REQUIRED` when hostname checking is enabled " -"and :attr:`~SSLContext.verify_mode` is :data:`CERT_NONE`. Previously the " -"same operation would have failed with a :exc:`ValueError`." +":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" +"`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." +"verify_mode` is :data:`CERT_NONE`. Previously the same operation would have " +"failed with a :exc:`ValueError`." msgstr "" -#: ../../library/ssl.rst:1928 msgid "" "Write TLS keys to a keylog file, whenever key material is generated or " "received. The keylog file is designed for debugging purposes only. The file " @@ -2326,58 +1954,48 @@ msgid "" "synchronized between threads, but not between processes." msgstr "" -#: ../../library/ssl.rst:1938 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " -"attribute is read-only for protocols other " -"than :const:`PROTOCOL_TLS`, :const:`PROTOCOL_TLS_CLIENT`, " -"and :const:`PROTOCOL_TLS_SERVER`." +"attribute is read-only for protocols other than :const:`PROTOCOL_TLS`, :" +"const:`PROTOCOL_TLS_CLIENT`, and :const:`PROTOCOL_TLS_SERVER`." msgstr "" -#: ../../library/ssl.rst:1943 msgid "" -"The " -"attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext.minimum_version` " -"and :attr:`SSLContext.options` all affect the supported SSL and TLS versions " -"of the context. The implementation does not prevent invalid combination. For " -"example a context with :attr:`OP_NO_TLSv1_2` in :attr:`~SSLContext.options` " -"and :attr:`~SSLContext.maximum_version` set to :attr:`TLSVersion.TLSv1_2` " -"will not be able to establish a TLS 1.2 connection." +"The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." +"minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " +"and TLS versions of the context. The implementation does not prevent invalid " +"combination. For example a context with :attr:`OP_NO_TLSv1_2` in :attr:" +"`~SSLContext.options` and :attr:`~SSLContext.maximum_version` set to :attr:" +"`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." msgstr "" -#: ../../library/ssl.rst:1956 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." msgstr "" -#: ../../library/ssl.rst:1963 msgid "" -"Control the number of TLS 1.3 session tickets of " -"a :const:`PROTOCOL_TLS_SERVER` context. The setting has no impact on TLS 1.0 " -"to 1.2 connections." +"Control the number of TLS 1.3 session tickets of a :const:" +"`PROTOCOL_TLS_SERVER` context. The setting has no impact on TLS 1.0 to 1.2 " +"connections." msgstr "" -#: ../../library/ssl.rst:1971 msgid "" "An integer representing the set of SSL options enabled on this context. The " -"default value is :data:`OP_ALL`, but you can specify other options such " -"as :data:`OP_NO_SSLv2` by ORing them together." +"default value is :data:`OP_ALL`, but you can specify other options such as :" +"data:`OP_NO_SSLv2` by ORing them together." msgstr "" -#: ../../library/ssl.rst:1975 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr "" -#: ../../library/ssl.rst:1983 msgid "" "All ``OP_NO_SSL*`` and ``OP_NO_TLS*`` options have been deprecated since " -"Python 3.7. Use :attr:`SSLContext.minimum_version` " -"and :attr:`SSLContext.maximum_version` instead." +"Python 3.7. Use :attr:`SSLContext.minimum_version` and :attr:`SSLContext." +"maximum_version` instead." msgstr "" -#: ../../library/ssl.rst:1989 msgid "" "Enable TLS 1.3 post-handshake client authentication. Post-handshake auth is " "disabled by default and a server can only request a TLS client certificate " @@ -2385,81 +2003,67 @@ msgid "" "client certificate at any time after the handshake." msgstr "" -#: ../../library/ssl.rst:1994 msgid "" "When enabled on client-side sockets, the client signals the server that it " "supports post-handshake authentication." msgstr "" -#: ../../library/ssl.rst:1997 msgid "" "When enabled on server-side sockets, :attr:`SSLContext.verify_mode` must be " "set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, too. The actual " -"client cert exchange is delayed " -"until :meth:`SSLSocket.verify_client_post_handshake` is called and some I/O " -"is performed." +"client cert exchange is delayed until :meth:`SSLSocket." +"verify_client_post_handshake` is called and some I/O is performed." msgstr "" -#: ../../library/ssl.rst:2007 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." msgstr "" -#: ../../library/ssl.rst:2012 msgid "" "Whether :attr:`~SSLContext.check_hostname` falls back to verify the cert's " "subject common name in the absence of a subject alternative name extension " "(default: true)." msgstr "" -#: ../../library/ssl.rst:2020 msgid "" "The flag had no effect with OpenSSL before version 1.1.1l. Python 3.8.9, " "3.9.3, and 3.10 include workarounds for previous versions." msgstr "" -#: ../../library/ssl.rst:2025 msgid "" "An integer representing the `security level `_ for the context. This attribute is read-" "only." msgstr "" -#: ../../library/ssl.rst:2033 msgid "" -"The flags for certificate verification operations. You can set flags " -"like :data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default " -"OpenSSL does neither require nor verify certificate revocation lists (CRLs)." +"The flags for certificate verification operations. You can set flags like :" +"data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default OpenSSL does " +"neither require nor verify certificate revocation lists (CRLs)." msgstr "" -#: ../../library/ssl.rst:2039 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr "" -#: ../../library/ssl.rst:2047 msgid "" "Whether to try to verify other peers' certificates and how to behave if " -"verification fails. This attribute must be one " -"of :data:`CERT_NONE`, :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`." +"verification fails. This attribute must be one of :data:`CERT_NONE`, :data:" +"`CERT_OPTIONAL` or :data:`CERT_REQUIRED`." msgstr "" -#: ../../library/ssl.rst:2051 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr "" -#: ../../library/ssl.rst:2059 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a client-side connection." msgstr "" -#: ../../library/ssl.rst:2061 ../../library/ssl.rst:2110 msgid "" "In general, certificate based authentication should be preferred over this " "method." msgstr "" -#: ../../library/ssl.rst:2063 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(hint: str | None) -> tuple[str | None, bytes]``. The ``hint`` " @@ -2471,27 +2075,21 @@ msgid "" "shared key. Return a zero length PSK to reject the connection." msgstr "" -#: ../../library/ssl.rst:2073 ../../library/ssl.rst:2119 msgid "Setting ``callback`` to :const:`None` removes any existing callback." msgstr "" -#: ../../library/ssl.rst:2076 msgid "When using TLS 1.3:" msgstr "" -#: ../../library/ssl.rst:2078 msgid "the ``hint`` parameter is always :const:`None`." msgstr "" -#: ../../library/ssl.rst:2079 msgid "client-identity must be a non-empty string." msgstr "" -#: ../../library/ssl.rst:2081 ../../library/ssl.rst:2128 msgid "Example usage::" msgstr "" -#: ../../library/ssl.rst:2083 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" "context.check_hostname = False\n" @@ -2512,18 +2110,15 @@ msgid "" "context.set_psk_client_callback(callback)" msgstr "" -#: ../../library/ssl.rst:2101 ../../library/ssl.rst:2146 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_PSK` is " "``False``." msgstr "" -#: ../../library/ssl.rst:2108 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a server-side connection." msgstr "" -#: ../../library/ssl.rst:2112 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(identity: str | None) -> bytes``. The ``identity`` parameter is an " @@ -2533,19 +2128,16 @@ msgid "" "connection." msgstr "" -#: ../../library/ssl.rst:2121 msgid "" "The parameter ``identity_hint`` is an optional identity hint string sent to " "the client. The string must be less than or equal to ``256`` octets when " "UTF-8 encoded." msgstr "" -#: ../../library/ssl.rst:2126 msgid "" "When using TLS 1.3 the ``identity_hint`` parameter is not sent to the client." msgstr "" -#: ../../library/ssl.rst:2130 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.maximum_version = ssl.TLSVersion.TLSv1_2\n" @@ -2564,11 +2156,9 @@ msgid "" "context.set_psk_server_callback(callback, 'ServerId_1')" msgstr "" -#: ../../library/ssl.rst:2158 msgid "Certificates" msgstr "" -#: ../../library/ssl.rst:2160 msgid "" "Certificates in general are part of a public-key / private-key system. In " "this system, each *principal*, (which may be a machine, or a person, or an " @@ -2579,7 +2169,6 @@ msgid "" "other part, and **only** with the other part." msgstr "" -#: ../../library/ssl.rst:2168 msgid "" "A certificate contains information about two principals. It contains the " "name of a *subject*, and the subject's public key. It also contains a " @@ -2593,7 +2182,6 @@ msgid "" "as two fields, called \"notBefore\" and \"notAfter\"." msgstr "" -#: ../../library/ssl.rst:2178 msgid "" "In the Python use of certificates, a client or server can use a certificate " "to prove who they are. The other side of a network connection can also be " @@ -2606,25 +2194,21 @@ msgid "" "take place." msgstr "" -#: ../../library/ssl.rst:2188 msgid "" "Python uses files to contain certificates. They should be formatted as " "\"PEM\" (see :rfc:`1422`), which is a base-64 encoded form wrapped with a " "header line and a footer line::" msgstr "" -#: ../../library/ssl.rst:2192 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate in base64 PEM encoding) ...\n" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2197 msgid "Certificate chains" msgstr "" -#: ../../library/ssl.rst:2199 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -2640,7 +2224,6 @@ msgid "" "agency which issued the certification authority's certificate::" msgstr "" -#: ../../library/ssl.rst:2212 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate for your server)...\n" @@ -2653,27 +2236,23 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2223 msgid "CA certificates" msgstr "" -#: ../../library/ssl.rst:2225 msgid "" "If you are going to require validation of the other side of the connection's " "certificate, you need to provide a \"CA certs\" file, filled with the " "certificate chains for each issuer you are willing to trust. Again, this " "file just contains these chains concatenated together. For validation, " "Python will use the first chain it finds in the file which matches. The " -"platform's certificates file can be used by " -"calling :meth:`SSLContext.load_default_certs`, this is done automatically " -"with :func:`.create_default_context`." +"platform's certificates file can be used by calling :meth:`SSLContext." +"load_default_certs`, this is done automatically with :func:`." +"create_default_context`." msgstr "" -#: ../../library/ssl.rst:2234 msgid "Combined key and certificate" msgstr "" -#: ../../library/ssl.rst:2236 msgid "" "Often the private key is stored in the same file as the certificate; in this " "case, only the ``certfile`` parameter to :meth:`SSLContext.load_cert_chain` " @@ -2681,7 +2260,6 @@ msgid "" "should come before the first certificate in the certificate chain::" msgstr "" -#: ../../library/ssl.rst:2242 msgid "" "-----BEGIN RSA PRIVATE KEY-----\n" "... (private key in base64 encoding) ...\n" @@ -2691,11 +2269,9 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2250 msgid "Self-signed certificates" msgstr "" -#: ../../library/ssl.rst:2252 msgid "" "If you are going to create a server that provides SSL-encrypted connection " "services, you will need to acquire a certificate for that service. There " @@ -2705,7 +2281,6 @@ msgid "" "package, using something like the following::" msgstr "" -#: ../../library/ssl.rst:2259 msgid "" "% openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem\n" "Generating a 1024 bit RSA private key\n" @@ -2731,28 +2306,23 @@ msgid "" "%" msgstr "" -#: ../../library/ssl.rst:2281 msgid "" "The disadvantage of a self-signed certificate is that it is its own root " "certificate, and no one else will have it in their cache of known (and " "trusted) root certificates." msgstr "" -#: ../../library/ssl.rst:2287 msgid "Examples" msgstr "" -#: ../../library/ssl.rst:2290 msgid "Testing for SSL support" msgstr "" -#: ../../library/ssl.rst:2292 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" msgstr "" -#: ../../library/ssl.rst:2295 msgid "" "try:\n" " import ssl\n" @@ -2762,40 +2332,33 @@ msgid "" " ... # do something that requires SSL support" msgstr "" -#: ../../library/ssl.rst:2303 msgid "Client-side operation" msgstr "" -#: ../../library/ssl.rst:2305 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" msgstr "" -#: ../../library/ssl.rst:2308 msgid ">>> context = ssl.create_default_context()" msgstr "" -#: ../../library/ssl.rst:2310 msgid "" "If you prefer to tune security settings yourself, you might create a context " "from scratch (but beware that you might not get the settings right)::" msgstr "" -#: ../../library/ssl.rst:2314 msgid "" ">>> context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> context.load_verify_locations(\"/etc/ssl/certs/ca-bundle.crt\")" msgstr "" -#: ../../library/ssl.rst:2317 msgid "" "(this snippet assumes your operating system places a bundle of all CA " "certificates in ``/etc/ssl/certs/ca-bundle.crt``; if not, you'll get an " "error and have to adjust the location)" msgstr "" -#: ../../library/ssl.rst:2321 msgid "" "The :data:`PROTOCOL_TLS_CLIENT` protocol configures the context for cert " "validation and hostname verification. :attr:`~SSLContext.verify_mode` is set " @@ -2803,46 +2366,40 @@ msgid "" "``True``. All other protocols create SSL contexts with insecure defaults." msgstr "" -#: ../../library/ssl.rst:2326 msgid "" -"When you use the context to connect to a server, :const:`CERT_REQUIRED` " -"and :attr:`~SSLContext.check_hostname` validate the server certificate: it " +"When you use the context to connect to a server, :const:`CERT_REQUIRED` and :" +"attr:`~SSLContext.check_hostname` validate the server certificate: it " "ensures that the server certificate was signed with one of the CA " "certificates, checks the signature for correctness, and verifies other " "properties like validity and identity of the hostname::" msgstr "" -#: ../../library/ssl.rst:2332 msgid "" ">>> conn = context.wrap_socket(socket.socket(socket.AF_INET),\n" "... server_hostname=\"www.python.org\")\n" ">>> conn.connect((\"www.python.org\", 443))" msgstr "" -#: ../../library/ssl.rst:2336 msgid "You may then fetch the certificate::" msgstr "" -#: ../../library/ssl.rst:2338 msgid ">>> cert = conn.getpeercert()" msgstr "" -#: ../../library/ssl.rst:2340 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" msgstr "" -#: ../../library/ssl.rst:2343 msgid "" ">>> pprint.pprint(cert)\n" "{'OCSP': ('http://ocsp.digicert.com',),\n" " 'caIssuers': ('http://cacerts.digicert.com/" "DigiCertSHA2ExtendedValidationServerCA.crt',),\n" -" 'crlDistributionPoints': ('http://crl3.digicert.com/sha2-ev-server-" -"g1.crl',\n" -" 'http://crl4.digicert.com/sha2-ev-server-" -"g1.crl'),\n" +" 'crlDistributionPoints': ('http://crl3.digicert.com/sha2-ev-server-g1." +"crl',\n" +" 'http://crl4.digicert.com/sha2-ev-server-g1." +"crl'),\n" " 'issuer': ((('countryName', 'US'),),\n" " (('organizationName', 'DigiCert Inc'),),\n" " (('organizationalUnitName', 'www.digicert.com'),),\n" @@ -2880,13 +2437,11 @@ msgid "" " 'version': 3}" msgstr "" -#: ../../library/ssl.rst:2383 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" msgstr "" -#: ../../library/ssl.rst:2386 msgid "" ">>> conn.sendall(b\"HEAD / HTTP/1.0\\r\\nHost: linuxfr.org\\r\\n\\r\\n\")\n" ">>> pprint.pprint(conn.recv(1024).split(b\"\\r\\n\"))\n" @@ -2909,11 +2464,9 @@ msgid "" " b'']" msgstr "" -#: ../../library/ssl.rst:2410 msgid "Server-side operation" msgstr "" -#: ../../library/ssl.rst:2412 msgid "" "For server operation, typically you'll need to have a server certificate, " "and private key, each in a file. You'll first create a context holding the " @@ -2922,7 +2475,6 @@ msgid "" "start waiting for clients to connect::" msgstr "" -#: ../../library/ssl.rst:2418 msgid "" "import socket, ssl\n" "\n" @@ -2934,15 +2486,12 @@ msgid "" "bindsocket.listen(5)" msgstr "" -#: ../../library/ssl.rst:2427 msgid "" "When a client connects, you'll call :meth:`accept` on the socket to get the " -"new socket from the other end, and use the " -"context's :meth:`SSLContext.wrap_socket` method to create a server-side SSL " -"socket for the connection::" +"new socket from the other end, and use the context's :meth:`SSLContext." +"wrap_socket` method to create a server-side SSL socket for the connection::" msgstr "" -#: ../../library/ssl.rst:2431 msgid "" "while True:\n" " newsocket, fromaddr = bindsocket.accept()\n" @@ -2954,13 +2503,11 @@ msgid "" " connstream.close()" msgstr "" -#: ../../library/ssl.rst:2440 msgid "" "Then you'll read data from the ``connstream`` and do something with it till " "you are finished with the client (or the client is finished with you)::" msgstr "" -#: ../../library/ssl.rst:2443 msgid "" "def deal_with_client(connstream):\n" " data = connstream.recv(1024)\n" @@ -2974,7 +2521,6 @@ msgid "" " # finished with client" msgstr "" -#: ../../library/ssl.rst:2454 msgid "" "And go back to listening for new client connections (of course, a real " "server would probably handle each client connection in a separate thread, or " @@ -2982,46 +2528,40 @@ msgid "" "event loop)." msgstr "" -#: ../../library/ssl.rst:2462 msgid "Notes on non-blocking sockets" msgstr "" -#: ../../library/ssl.rst:2464 msgid "" "SSL sockets behave slightly different than regular sockets in non-blocking " "mode. When working with non-blocking sockets, there are thus several things " "you need to be aware of:" msgstr "" -#: ../../library/ssl.rst:2468 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " "operation would block. :exc:`SSLWantReadError` will be raised if a read " -"operation on the underlying socket is necessary, " -"and :exc:`SSLWantWriteError` for a write operation on the underlying socket. " -"Note that attempts to *write* to an SSL socket may require *reading* from " -"the underlying socket first, and attempts to *read* from the SSL socket may " +"operation on the underlying socket is necessary, and :exc:" +"`SSLWantWriteError` for a write operation on the underlying socket. Note " +"that attempts to *write* to an SSL socket may require *reading* from the " +"underlying socket first, and attempts to *read* from the SSL socket may " "require a prior *write* to the underlying socket." msgstr "" -#: ../../library/ssl.rst:2480 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." msgstr "" -#: ../../library/ssl.rst:2484 msgid "" "Calling :func:`~select.select` tells you that the OS-level socket can be " "read from (or written to), but it does not imply that there is sufficient " "data at the upper SSL layer. For example, only part of an SSL frame might " "have arrived. Therefore, you must be ready to handle :meth:`SSLSocket.recv` " -"and :meth:`SSLSocket.send` failures, and retry after another call " -"to :func:`~select.select`." +"and :meth:`SSLSocket.send` failures, and retry after another call to :func:" +"`~select.select`." msgstr "" -#: ../../library/ssl.rst:2491 msgid "" "Conversely, since the SSL layer has its own framing, a SSL socket may still " "have data available for reading without :func:`~select.select` being aware " @@ -3030,21 +2570,18 @@ msgid "" "call if still necessary." msgstr "" -#: ../../library/ssl.rst:2497 msgid "" -"(of course, similar provisions apply when using other primitives such " -"as :func:`~select.poll`, or those in the :mod:`selectors` module)" +"(of course, similar provisions apply when using other primitives such as :" +"func:`~select.poll`, or those in the :mod:`selectors` module)" msgstr "" -#: ../../library/ssl.rst:2500 msgid "" -"The SSL handshake itself will be non-blocking: " -"the :meth:`SSLSocket.do_handshake` method has to be retried until it returns " -"successfully. Here is a synopsis using :func:`~select.select` to wait for " -"the socket's readiness::" +"The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." +"do_handshake` method has to be retried until it returns successfully. Here " +"is a synopsis using :func:`~select.select` to wait for the socket's " +"readiness::" msgstr "" -#: ../../library/ssl.rst:2505 msgid "" "while True:\n" " try:\n" @@ -3056,36 +2593,30 @@ msgid "" " select.select([], [sock], [])" msgstr "" -#: ../../library/ssl.rst:2516 msgid "" "The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level :ref:`Streams API `. It polls for events using the :mod:`selectors` module and " -"handles :exc:`SSLWantWriteError`, :exc:`SSLWantReadError` " -"and :exc:`BlockingIOError` exceptions. It runs the SSL handshake " -"asynchronously as well." +"handles :exc:`SSLWantWriteError`, :exc:`SSLWantReadError` and :exc:" +"`BlockingIOError` exceptions. It runs the SSL handshake asynchronously as " +"well." msgstr "" -#: ../../library/ssl.rst:2525 msgid "Memory BIO Support" msgstr "" -#: ../../library/ssl.rst:2529 msgid "" -"Ever since the SSL module was introduced in Python 2.6, " -"the :class:`SSLSocket` class has provided two related but distinct areas of " +"Ever since the SSL module was introduced in Python 2.6, the :class:" +"`SSLSocket` class has provided two related but distinct areas of " "functionality:" msgstr "" -#: ../../library/ssl.rst:2532 msgid "SSL protocol handling" msgstr "" -#: ../../library/ssl.rst:2533 msgid "Network IO" msgstr "" -#: ../../library/ssl.rst:2535 msgid "" "The network IO API is identical to that provided by :class:`socket.socket`, " "from which :class:`SSLSocket` also inherits. This allows an SSL socket to be " @@ -3093,19 +2624,17 @@ msgid "" "add SSL support to an existing application." msgstr "" -#: ../../library/ssl.rst:2540 msgid "" "Combining SSL protocol handling and network IO usually works well, but there " "are some cases where it doesn't. An example is async IO frameworks that want " "to use a different IO multiplexing model than the \"select/poll on a file " -"descriptor\" (readiness based) model that is assumed " -"by :class:`socket.socket` and by the internal OpenSSL socket IO routines. " -"This is mostly relevant for platforms like Windows where this model is not " -"efficient. For this purpose, a reduced scope variant of :class:`SSLSocket` " -"called :class:`SSLObject` is provided." +"descriptor\" (readiness based) model that is assumed by :class:`socket." +"socket` and by the internal OpenSSL socket IO routines. This is mostly " +"relevant for platforms like Windows where this model is not efficient. For " +"this purpose, a reduced scope variant of :class:`SSLSocket` called :class:" +"`SSLObject` is provided." msgstr "" -#: ../../library/ssl.rst:2551 msgid "" "A reduced-scope variant of :class:`SSLSocket` representing an SSL protocol " "instance that does not contain any network IO methods. This class is " @@ -3113,7 +2642,6 @@ msgid "" "for SSL through memory buffers." msgstr "" -#: ../../library/ssl.rst:2556 msgid "" "This class implements an interface on top of a low-level SSL object as " "implemented by OpenSSL. This object captures the state of an SSL connection " @@ -3121,7 +2649,6 @@ msgid "" "separate \"BIO\" objects which are OpenSSL's IO abstraction layer." msgstr "" -#: ../../library/ssl.rst:2561 msgid "" "This class has no public constructor. An :class:`SSLObject` instance must " "be created using the :meth:`~SSLContext.wrap_bio` method. This method will " @@ -3130,232 +2657,185 @@ msgid "" "instance, while the *outgoing* BIO is used to pass data the other way around." msgstr "" -#: ../../library/ssl.rst:2568 msgid "The following methods are available:" msgstr "" -#: ../../library/ssl.rst:2570 msgid ":attr:`~SSLSocket.context`" msgstr "" -#: ../../library/ssl.rst:2571 msgid ":attr:`~SSLSocket.server_side`" msgstr "" -#: ../../library/ssl.rst:2572 msgid ":attr:`~SSLSocket.server_hostname`" msgstr "" -#: ../../library/ssl.rst:2573 msgid ":attr:`~SSLSocket.session`" msgstr "" -#: ../../library/ssl.rst:2574 msgid ":attr:`~SSLSocket.session_reused`" msgstr "" -#: ../../library/ssl.rst:2575 msgid ":meth:`~SSLSocket.read`" msgstr "" -#: ../../library/ssl.rst:2576 msgid ":meth:`~SSLSocket.write`" msgstr "" -#: ../../library/ssl.rst:2577 msgid ":meth:`~SSLSocket.getpeercert`" msgstr "" -#: ../../library/ssl.rst:2578 msgid ":meth:`~SSLSocket.get_verified_chain`" msgstr "" -#: ../../library/ssl.rst:2579 msgid ":meth:`~SSLSocket.get_unverified_chain`" msgstr "" -#: ../../library/ssl.rst:2580 msgid ":meth:`~SSLSocket.selected_alpn_protocol`" msgstr "" -#: ../../library/ssl.rst:2581 msgid ":meth:`~SSLSocket.selected_npn_protocol`" msgstr "" -#: ../../library/ssl.rst:2582 msgid ":meth:`~SSLSocket.cipher`" msgstr "" -#: ../../library/ssl.rst:2583 msgid ":meth:`~SSLSocket.shared_ciphers`" msgstr "" -#: ../../library/ssl.rst:2584 msgid ":meth:`~SSLSocket.compression`" msgstr "" -#: ../../library/ssl.rst:2585 msgid ":meth:`~SSLSocket.pending`" msgstr "" -#: ../../library/ssl.rst:2586 msgid ":meth:`~SSLSocket.do_handshake`" msgstr "" -#: ../../library/ssl.rst:2587 msgid ":meth:`~SSLSocket.verify_client_post_handshake`" msgstr "" -#: ../../library/ssl.rst:2588 msgid ":meth:`~SSLSocket.unwrap`" msgstr "" -#: ../../library/ssl.rst:2589 msgid ":meth:`~SSLSocket.get_channel_binding`" msgstr "" -#: ../../library/ssl.rst:2590 msgid ":meth:`~SSLSocket.version`" msgstr "" -#: ../../library/ssl.rst:2592 msgid "" "When compared to :class:`SSLSocket`, this object lacks the following " "features:" msgstr "" -#: ../../library/ssl.rst:2595 msgid "" "Any form of network IO; ``recv()`` and ``send()`` read and write only to the " "underlying :class:`MemoryBIO` buffers." msgstr "" -#: ../../library/ssl.rst:2598 msgid "" "There is no *do_handshake_on_connect* machinery. You must always manually " "call :meth:`~SSLSocket.do_handshake` to start the handshake." msgstr "" -#: ../../library/ssl.rst:2601 msgid "" "There is no handling of *suppress_ragged_eofs*. All end-of-file conditions " -"that are in violation of the protocol are reported via " -"the :exc:`SSLEOFError` exception." +"that are in violation of the protocol are reported via the :exc:" +"`SSLEOFError` exception." msgstr "" -#: ../../library/ssl.rst:2605 msgid "" "The method :meth:`~SSLSocket.unwrap` call does not return anything, unlike " "for an SSL socket where it returns the underlying socket." msgstr "" -#: ../../library/ssl.rst:2608 msgid "" -"The *server_name_callback* callback passed " -"to :meth:`SSLContext.set_servername_callback` will get an :class:`SSLObject` " -"instance instead of a :class:`SSLSocket` instance as its first parameter." +"The *server_name_callback* callback passed to :meth:`SSLContext." +"set_servername_callback` will get an :class:`SSLObject` instance instead of " +"a :class:`SSLSocket` instance as its first parameter." msgstr "" -#: ../../library/ssl.rst:2612 msgid "Some notes related to the use of :class:`SSLObject`:" msgstr "" -#: ../../library/ssl.rst:2614 msgid "" "All IO on an :class:`SSLObject` is :ref:`non-blocking `. " -"This means that for example :meth:`~SSLSocket.read` will raise " -"an :exc:`SSLWantReadError` if it needs more data than the incoming BIO has " -"available." +"This means that for example :meth:`~SSLSocket.read` will raise an :exc:" +"`SSLWantReadError` if it needs more data than the incoming BIO has available." msgstr "" -#: ../../library/ssl.rst:2619 msgid "" -":class:`SSLObject` instances must be created " -"with :meth:`~SSLContext.wrap_bio`. In earlier versions, it was possible to " -"create instances directly. This was never documented or officially supported." +":class:`SSLObject` instances must be created with :meth:`~SSLContext." +"wrap_bio`. In earlier versions, it was possible to create instances " +"directly. This was never documented or officially supported." msgstr "" -#: ../../library/ssl.rst:2625 msgid "" "An SSLObject communicates with the outside world using memory buffers. The " "class :class:`MemoryBIO` provides a memory buffer that can be used for this " "purpose. It wraps an OpenSSL memory BIO (Basic IO) object:" msgstr "" -#: ../../library/ssl.rst:2631 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -#: ../../library/ssl.rst:2636 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -#: ../../library/ssl.rst:2640 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." msgstr "" -#: ../../library/ssl.rst:2645 msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." msgstr "" -#: ../../library/ssl.rst:2650 msgid "" "Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " "object supporting the buffer protocol." msgstr "" -#: ../../library/ssl.rst:2653 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." msgstr "" -#: ../../library/ssl.rst:2658 msgid "" "Write an EOF marker to the memory BIO. After this method has been called, it " "is illegal to call :meth:`~MemoryBIO.write`. The attribute :attr:`eof` will " "become true after all data currently in the buffer has been read." msgstr "" -#: ../../library/ssl.rst:2664 msgid "SSL session" msgstr "" -#: ../../library/ssl.rst:2670 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "" -#: ../../library/ssl.rst:2682 msgid "Security considerations" msgstr "" -#: ../../library/ssl.rst:2685 msgid "Best defaults" msgstr "" -#: ../../library/ssl.rst:2687 msgid "" "For **client use**, if you don't have any special requirements for your " -"security policy, it is highly recommended that you use " -"the :func:`create_default_context` function to create your SSL context. It " -"will load the system's trusted CA certificates, enable certificate " -"validation and hostname checking, and try to choose reasonably secure " -"protocol and cipher settings." +"security policy, it is highly recommended that you use the :func:" +"`create_default_context` function to create your SSL context. It will load " +"the system's trusted CA certificates, enable certificate validation and " +"hostname checking, and try to choose reasonably secure protocol and cipher " +"settings." msgstr "" -#: ../../library/ssl.rst:2694 msgid "" "For example, here is how you would use the :class:`smtplib.SMTP` class to " "create a trusted, secure connection to a SMTP server::" msgstr "" -#: ../../library/ssl.rst:2697 msgid "" ">>> import ssl, smtplib\n" ">>> smtp = smtplib.SMTP(\"mail.python.org\", port=587)\n" @@ -3364,50 +2844,43 @@ msgid "" "(220, b'2.0.0 Ready to start TLS')" msgstr "" -#: ../../library/ssl.rst:2703 msgid "" -"If a client certificate is needed for the connection, it can be added " -"with :meth:`SSLContext.load_cert_chain`." +"If a client certificate is needed for the connection, it can be added with :" +"meth:`SSLContext.load_cert_chain`." msgstr "" -#: ../../library/ssl.rst:2706 msgid "" -"By contrast, if you create the SSL context by calling " -"the :class:`SSLContext` constructor yourself, it will not have certificate " -"validation nor hostname checking enabled by default. If you do so, please " -"read the paragraphs below to achieve a good security level." +"By contrast, if you create the SSL context by calling the :class:" +"`SSLContext` constructor yourself, it will not have certificate validation " +"nor hostname checking enabled by default. If you do so, please read the " +"paragraphs below to achieve a good security level." msgstr "" -#: ../../library/ssl.rst:2712 msgid "Manual settings" msgstr "" -#: ../../library/ssl.rst:2715 msgid "Verifying certificates" msgstr "" -#: ../../library/ssl.rst:2717 msgid "" -"When calling the :class:`SSLContext` constructor " -"directly, :const:`CERT_NONE` is the default. Since it does not authenticate " -"the other peer, it can be insecure, especially in client mode where most of " -"the time you would like to ensure the authenticity of the server you're " -"talking to. Therefore, when in client mode, it is highly recommended to " -"use :const:`CERT_REQUIRED`. However, it is in itself not sufficient; you " -"also have to check that the server certificate, which can be obtained by " -"calling :meth:`SSLSocket.getpeercert`, matches the desired service. For " -"many protocols and applications, the service can be identified by the " -"hostname. This common check is automatically performed " -"when :attr:`SSLContext.check_hostname` is enabled." +"When calling the :class:`SSLContext` constructor directly, :const:" +"`CERT_NONE` is the default. Since it does not authenticate the other peer, " +"it can be insecure, especially in client mode where most of the time you " +"would like to ensure the authenticity of the server you're talking to. " +"Therefore, when in client mode, it is highly recommended to use :const:" +"`CERT_REQUIRED`. However, it is in itself not sufficient; you also have to " +"check that the server certificate, which can be obtained by calling :meth:" +"`SSLSocket.getpeercert`, matches the desired service. For many protocols " +"and applications, the service can be identified by the hostname. This common " +"check is automatically performed when :attr:`SSLContext.check_hostname` is " +"enabled." msgstr "" -#: ../../library/ssl.rst:2729 msgid "" -"Hostname matchings is now performed by OpenSSL. Python no longer " -"uses :func:`match_hostname`." +"Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" +"`match_hostname`." msgstr "" -#: ../../library/ssl.rst:2733 msgid "" "In server mode, if you want to authenticate your clients using the SSL layer " "(rather than using a higher-level authentication mechanism), you'll also " @@ -3415,56 +2888,48 @@ msgid "" "certificate." msgstr "" -#: ../../library/ssl.rst:2739 msgid "Protocol versions" msgstr "" -#: ../../library/ssl.rst:2741 msgid "" "SSL versions 2 and 3 are considered insecure and are therefore dangerous to " "use. If you want maximum compatibility between clients and servers, it is " -"recommended to use :const:`PROTOCOL_TLS_CLIENT` " -"or :const:`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are " -"disabled by default." +"recommended to use :const:`PROTOCOL_TLS_CLIENT` or :const:" +"`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are disabled " +"by default." msgstr "" -#: ../../library/ssl.rst:2749 msgid "" ">>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> client_context.minimum_version = ssl.TLSVersion.TLSv1_3\n" ">>> client_context.maximum_version = ssl.TLSVersion.TLSv1_3" msgstr "" -#: ../../library/ssl.rst:2754 msgid "" "The SSL context created above will only allow TLSv1.3 and later (if " -"supported by your system) connections to a " -"server. :const:`PROTOCOL_TLS_CLIENT` implies certificate validation and " -"hostname checks by default. You have to load certificates into the context." +"supported by your system) connections to a server. :const:" +"`PROTOCOL_TLS_CLIENT` implies certificate validation and hostname checks by " +"default. You have to load certificates into the context." msgstr "" -#: ../../library/ssl.rst:2761 msgid "Cipher selection" msgstr "" -#: ../../library/ssl.rst:2763 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " -"enabled when negotiating a SSL session is possible through " -"the :meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the " -"ssl module disables certain weak ciphers by default, but you may want to " -"further restrict the cipher choice. Be sure to read OpenSSL's documentation " -"about the `cipher list format `_. If you want to check which ciphers are enabled by a " -"given cipher list, use :meth:`SSLContext.get_ciphers` or the ``openssl " -"ciphers`` command on your system." +"enabled when negotiating a SSL session is possible through the :meth:" +"`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the ssl module " +"disables certain weak ciphers by default, but you may want to further " +"restrict the cipher choice. Be sure to read OpenSSL's documentation about " +"the `cipher list format `_. If you want to check which ciphers are enabled by a given " +"cipher list, use :meth:`SSLContext.get_ciphers` or the ``openssl ciphers`` " +"command on your system." msgstr "" -#: ../../library/ssl.rst:2774 msgid "Multi-processing" msgstr "" -#: ../../library/ssl.rst:2776 msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " @@ -3475,32 +2940,27 @@ msgid "" "sufficient." msgstr "" -#: ../../library/ssl.rst:2788 msgid "TLS 1.3" msgstr "" -#: ../../library/ssl.rst:2792 msgid "" "The TLS 1.3 protocol behaves slightly differently than previous version of " "TLS/SSL. Some new TLS 1.3 features are not yet available." msgstr "" -#: ../../library/ssl.rst:2795 msgid "" "TLS 1.3 uses a disjunct set of cipher suites. All AES-GCM and ChaCha20 " -"cipher suites are enabled by default. The " -"method :meth:`SSLContext.set_ciphers` cannot enable or disable any TLS 1.3 " -"ciphers yet, but :meth:`SSLContext.get_ciphers` returns them." +"cipher suites are enabled by default. The method :meth:`SSLContext." +"set_ciphers` cannot enable or disable any TLS 1.3 ciphers yet, but :meth:" +"`SSLContext.get_ciphers` returns them." msgstr "" -#: ../../library/ssl.rst:2799 msgid "" "Session tickets are no longer sent as part of the initial handshake and are " "handled differently. :attr:`SSLSocket.session` and :class:`SSLSession` are " "not compatible with TLS 1.3." msgstr "" -#: ../../library/ssl.rst:2802 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -3508,134 +2968,105 @@ msgid "" "server." msgstr "" -#: ../../library/ssl.rst:2806 msgid "" "TLS 1.3 features like early data, deferred TLS client cert request, " "signature algorithm configuration, and rekeying are not supported yet." msgstr "" -#: ../../library/ssl.rst:2812 msgid "Class :class:`socket.socket`" msgstr "" -#: ../../library/ssl.rst:2813 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: ../../library/ssl.rst:2815 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: ../../library/ssl.rst:2816 msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: ../../library/ssl.rst:2818 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" msgstr "" -#: ../../library/ssl.rst:2819 msgid "Steve Kent" msgstr "" -#: ../../library/ssl.rst:2821 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr "" -#: ../../library/ssl.rst:2822 msgid "Donald E., Jeffrey I. Schiller" msgstr "" -#: ../../library/ssl.rst:2824 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" msgstr "" -#: ../../library/ssl.rst:2825 msgid "D. Cooper" msgstr "" -#: ../../library/ssl.rst:2827 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" msgstr "" -#: ../../library/ssl.rst:2828 msgid "T. Dierks et. al." msgstr "" -#: ../../library/ssl.rst:2830 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr "" -#: ../../library/ssl.rst:2831 msgid "D. Eastlake" msgstr "" -#: ../../library/ssl.rst:2833 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: ../../library/ssl.rst:2834 msgid "IANA" msgstr "" -#: ../../library/ssl.rst:2836 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" msgstr "" -#: ../../library/ssl.rst:2837 msgid "IETF" msgstr "" -#: ../../library/ssl.rst:2839 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: ../../library/ssl.rst:2840 msgid "Mozilla" msgstr "" -#: ../../library/ssl.rst:12 msgid "OpenSSL" msgstr "" -#: ../../library/ssl.rst:12 msgid "(use in module ssl)" msgstr "" -#: ../../library/ssl.rst:14 msgid "TLS" msgstr "" -#: ../../library/ssl.rst:14 msgid "SSL" msgstr "" -#: ../../library/ssl.rst:14 msgid "Transport Layer Security" msgstr "" -#: ../../library/ssl.rst:14 msgid "Secure Sockets Layer" msgstr "" -#: ../../library/ssl.rst:2151 msgid "certificates" msgstr "" -#: ../../library/ssl.rst:2153 msgid "X509 certificate" msgstr "" diff --git a/library/stat.po b/library/stat.po index d82f9ff..9b342b2 100644 --- a/library/stat.po +++ b/library/stat.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/stat.rst:2 msgid ":mod:`!stat` --- Interpreting :func:`~os.stat` results" msgstr "" -#: ../../library/stat.rst:10 msgid "**Source code:** :source:`Lib/stat.py`" msgstr "" -#: ../../library/stat.rst:14 msgid "" "The :mod:`stat` module defines constants and functions for interpreting the " "results of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat` (if they " @@ -34,76 +31,60 @@ msgid "" "and :c:func:`!lstat` calls, consult the documentation for your system." msgstr "" -#: ../../library/stat.rst:19 msgid "The stat module is backed by a C implementation." msgstr "" -#: ../../library/stat.rst:22 msgid "" "The :mod:`stat` module defines the following functions to test for specific " "file types:" msgstr "" -#: ../../library/stat.rst:28 msgid "Return non-zero if the mode is from a directory." msgstr "" -#: ../../library/stat.rst:33 msgid "Return non-zero if the mode is from a character special device file." msgstr "" -#: ../../library/stat.rst:38 msgid "Return non-zero if the mode is from a block special device file." msgstr "" -#: ../../library/stat.rst:43 msgid "Return non-zero if the mode is from a regular file." msgstr "" -#: ../../library/stat.rst:48 msgid "Return non-zero if the mode is from a FIFO (named pipe)." msgstr "" -#: ../../library/stat.rst:53 msgid "Return non-zero if the mode is from a symbolic link." msgstr "" -#: ../../library/stat.rst:58 msgid "Return non-zero if the mode is from a socket." msgstr "" -#: ../../library/stat.rst:62 msgid "Return non-zero if the mode is from a door." msgstr "" -#: ../../library/stat.rst:68 msgid "Return non-zero if the mode is from an event port." msgstr "" -#: ../../library/stat.rst:74 msgid "Return non-zero if the mode is from a whiteout." msgstr "" -#: ../../library/stat.rst:78 msgid "" "Two additional functions are defined for more general manipulation of the " "file's mode:" msgstr "" -#: ../../library/stat.rst:84 msgid "" "Return the portion of the file's mode that can be set by :func:`os.chmod`\\ " "---that is, the file's permission bits, plus the sticky bit, set-group-id, " "and set-user-id bits (on systems that support them)." msgstr "" -#: ../../library/stat.rst:91 msgid "" "Return the portion of the file's mode that describes the file type (used by " "the :func:`!S_IS\\*` functions above)." msgstr "" -#: ../../library/stat.rst:94 msgid "" "Normally, you would use the :func:`!os.path.is\\*` functions for testing the " "type of a file; the functions here are useful when you are doing multiple " @@ -113,11 +94,9 @@ msgid "" "tests for block and character devices." msgstr "" -#: ../../library/stat.rst:101 msgid "Example::" msgstr "" -#: ../../library/stat.rst:103 msgid "" "import os, sys\n" "from stat import *\n" @@ -146,151 +125,119 @@ msgid "" " walktree(sys.argv[1], visitfile)" msgstr "" -#: ../../library/stat.rst:129 msgid "" "An additional utility function is provided to convert a file's mode in a " "human readable string:" msgstr "" -#: ../../library/stat.rst:134 msgid "Convert a file's mode to a string of the form '-rwxrwxrwx'." msgstr "" -#: ../../library/stat.rst:138 msgid "" "The function supports :data:`S_IFDOOR`, :data:`S_IFPORT` and :data:`S_IFWHT`." msgstr "" -#: ../../library/stat.rst:143 msgid "" "All the variables below are simply symbolic indexes into the 10-tuple " "returned by :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`." msgstr "" -#: ../../library/stat.rst:149 msgid "Inode protection mode." msgstr "" -#: ../../library/stat.rst:154 msgid "Inode number." msgstr "" -#: ../../library/stat.rst:159 msgid "Device inode resides on." msgstr "" -#: ../../library/stat.rst:164 msgid "Number of links to the inode." msgstr "" -#: ../../library/stat.rst:169 msgid "User id of the owner." msgstr "" -#: ../../library/stat.rst:174 msgid "Group id of the owner." msgstr "" -#: ../../library/stat.rst:179 msgid "" "Size in bytes of a plain file; amount of data waiting on some special files." msgstr "" -#: ../../library/stat.rst:184 msgid "Time of last access." msgstr "" -#: ../../library/stat.rst:189 msgid "Time of last modification." msgstr "" -#: ../../library/stat.rst:194 msgid "" "The \"ctime\" as reported by the operating system. On some systems (like " "Unix) is the time of the last metadata change, and, on others (like " "Windows), is the creation time (see platform documentation for details)." msgstr "" -#: ../../library/stat.rst:198 msgid "" "The interpretation of \"file size\" changes according to the file type. For " "plain files this is the size of the file in bytes. For FIFOs and sockets " "under most flavors of Unix (including Linux in particular), the \"size\" is " -"the number of bytes waiting to be read at the time of the call " -"to :func:`os.stat`, :func:`os.fstat`, or :func:`os.lstat`; this can " -"sometimes be useful, especially for polling one of these special files after " -"a non-blocking open. The meaning of the size field for other character and " -"block devices varies more, depending on the implementation of the underlying " -"system call." +"the number of bytes waiting to be read at the time of the call to :func:`os." +"stat`, :func:`os.fstat`, or :func:`os.lstat`; this can sometimes be useful, " +"especially for polling one of these special files after a non-blocking " +"open. The meaning of the size field for other character and block devices " +"varies more, depending on the implementation of the underlying system call." msgstr "" -#: ../../library/stat.rst:207 msgid "The variables below define the flags used in the :data:`ST_MODE` field." msgstr "" -#: ../../library/stat.rst:209 msgid "" "Use of the functions above is more portable than use of the first set of " "flags:" msgstr "" -#: ../../library/stat.rst:213 msgid "Socket." msgstr "" -#: ../../library/stat.rst:217 msgid "Symbolic link." msgstr "" -#: ../../library/stat.rst:221 msgid "Regular file." msgstr "" -#: ../../library/stat.rst:225 msgid "Block device." msgstr "" -#: ../../library/stat.rst:229 msgid "Directory." msgstr "" -#: ../../library/stat.rst:233 msgid "Character device." msgstr "" -#: ../../library/stat.rst:237 msgid "FIFO." msgstr "" -#: ../../library/stat.rst:241 msgid "Door." msgstr "" -#: ../../library/stat.rst:247 msgid "Event port." msgstr "" -#: ../../library/stat.rst:253 msgid "Whiteout." msgstr "" -#: ../../library/stat.rst:259 msgid "" ":data:`S_IFDOOR`, :data:`S_IFPORT` or :data:`S_IFWHT` are defined as 0 when " "the platform does not have support for the file types." msgstr "" -#: ../../library/stat.rst:262 msgid "" -"The following flags can also be used in the *mode* argument " -"of :func:`os.chmod`:" +"The following flags can also be used in the *mode* argument of :func:`os." +"chmod`:" msgstr "" -#: ../../library/stat.rst:266 msgid "Set UID bit." msgstr "" -#: ../../library/stat.rst:270 msgid "" "Set-group-ID bit. This bit has several special uses. For a directory it " "indicates that BSD semantics is to be used for that directory: files created " @@ -301,178 +248,138 @@ msgid "" "mandatory file/record locking (see also :data:`S_ENFMT`)." msgstr "" -#: ../../library/stat.rst:281 msgid "" "Sticky bit. When this bit is set on a directory it means that a file in " "that directory can be renamed or deleted only by the owner of the file, by " "the owner of the directory, or by a privileged process." msgstr "" -#: ../../library/stat.rst:287 msgid "Mask for file owner permissions." msgstr "" -#: ../../library/stat.rst:291 msgid "Owner has read permission." msgstr "" -#: ../../library/stat.rst:295 msgid "Owner has write permission." msgstr "" -#: ../../library/stat.rst:299 msgid "Owner has execute permission." msgstr "" -#: ../../library/stat.rst:303 msgid "Mask for group permissions." msgstr "" -#: ../../library/stat.rst:307 msgid "Group has read permission." msgstr "" -#: ../../library/stat.rst:311 msgid "Group has write permission." msgstr "" -#: ../../library/stat.rst:315 msgid "Group has execute permission." msgstr "" -#: ../../library/stat.rst:319 msgid "Mask for permissions for others (not in group)." msgstr "" -#: ../../library/stat.rst:323 msgid "Others have read permission." msgstr "" -#: ../../library/stat.rst:327 msgid "Others have write permission." msgstr "" -#: ../../library/stat.rst:331 msgid "Others have execute permission." msgstr "" -#: ../../library/stat.rst:335 msgid "" -"System V file locking enforcement. This flag is shared " -"with :data:`S_ISGID`: file/record locking is enforced on files that do not " -"have the group execution bit (:data:`S_IXGRP`) set." +"System V file locking enforcement. This flag is shared with :data:" +"`S_ISGID`: file/record locking is enforced on files that do not have the " +"group execution bit (:data:`S_IXGRP`) set." msgstr "" -#: ../../library/stat.rst:341 msgid "Unix V7 synonym for :data:`S_IRUSR`." msgstr "" -#: ../../library/stat.rst:345 msgid "Unix V7 synonym for :data:`S_IWUSR`." msgstr "" -#: ../../library/stat.rst:349 msgid "Unix V7 synonym for :data:`S_IXUSR`." msgstr "" -#: ../../library/stat.rst:351 msgid "" -"The following flags can be used in the *flags* argument " -"of :func:`os.chflags`:" +"The following flags can be used in the *flags* argument of :func:`os." +"chflags`:" msgstr "" -#: ../../library/stat.rst:355 msgid "All user settable flags." msgstr "" -#: ../../library/stat.rst:361 msgid "Do not dump the file." msgstr "" -#: ../../library/stat.rst:365 ../../library/stat.rst:427 msgid "The file may not be changed." msgstr "" -#: ../../library/stat.rst:369 ../../library/stat.rst:431 msgid "The file may only be appended to." msgstr "" -#: ../../library/stat.rst:373 msgid "The directory is opaque when viewed through a union stack." msgstr "" -#: ../../library/stat.rst:377 ../../library/stat.rst:441 msgid "The file may not be renamed or deleted." msgstr "" -#: ../../library/stat.rst:381 msgid "The file is stored compressed (macOS 10.6+)." msgstr "" -#: ../../library/stat.rst:385 msgid "Used for handling document IDs (macOS)" msgstr "" -#: ../../library/stat.rst:391 msgid "The file needs an entitlement for reading or writing (macOS 10.13+)" msgstr "" -#: ../../library/stat.rst:397 msgid "The file should not be displayed in a GUI (macOS 10.5+)." msgstr "" -#: ../../library/stat.rst:401 msgid "All super-user changeable flags" msgstr "" -#: ../../library/stat.rst:407 msgid "All super-user supported flags" msgstr "" -#: ../../library/stat.rst:409 ../../library/stat.rst:417 msgid "Availability" msgstr "" -#: ../../library/stat.rst:415 msgid "All super-user read-only synthetic flags" msgstr "" -#: ../../library/stat.rst:423 msgid "The file may be archived." msgstr "" -#: ../../library/stat.rst:435 msgid "The file needs an entitlement to write to (macOS 10.13+)" msgstr "" -#: ../../library/stat.rst:445 msgid "The file is a snapshot file." msgstr "" -#: ../../library/stat.rst:449 msgid "The file is a firmlink (macOS 10.15+)" msgstr "" -#: ../../library/stat.rst:455 msgid "The file is a dataless object (macOS 10.15+)" msgstr "" -#: ../../library/stat.rst:459 msgid "" "See the \\*BSD or macOS systems man page :manpage:`chflags(2)` for more " "information." msgstr "" -#: ../../library/stat.rst:461 msgid "" "On Windows, the following file attribute constants are available for use " -"when testing bits in the ``st_file_attributes`` member returned " -"by :func:`os.stat`. See the `Windows API documentation `_ for more " -"detail on the meaning of these constants." +"when testing bits in the ``st_file_attributes`` member returned by :func:`os." +"stat`. See the `Windows API documentation `_ for more detail on the meaning of " +"these constants." msgstr "" -#: ../../library/stat.rst:487 msgid "" "On Windows, the following constants are available for comparing against the " "``st_reparse_tag`` member returned by :func:`os.lstat`. These are well-known " diff --git a/library/statistics.po b/library/statistics.po index e605e34..ab3ec61 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,21 +22,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/statistics.rst:2 msgid ":mod:`!statistics` --- Mathematical statistics functions" msgstr "" -#: ../../library/statistics.rst:12 msgid "**Source code:** :source:`Lib/statistics.py`" msgstr "" -#: ../../library/statistics.rst:22 msgid "" "This module provides functions for calculating mathematical statistics of " "numeric (:class:`~numbers.Real`-valued) data." msgstr "" -#: ../../library/statistics.rst:25 msgid "" "The module is not intended to be a competitor to third-party libraries such " "as `NumPy `_, `SciPy `_, or " @@ -45,18 +41,16 @@ msgid "" "graphing and scientific calculators." msgstr "" -#: ../../library/statistics.rst:31 msgid "" -"Unless explicitly noted, these functions " -"support :class:`int`, :class:`float`, :class:`~decimal.Decimal` " -"and :class:`~fractions.Fraction`. Behaviour with other types (whether in the " -"numeric tower or not) is currently unsupported. Collections with a mix of " -"types are also undefined and implementation-dependent. If your input data " -"consists of mixed types, you may be able to use :func:`map` to ensure a " -"consistent result, for example: ``map(float, input_data)``." +"Unless explicitly noted, these functions support :class:`int`, :class:" +"`float`, :class:`~decimal.Decimal` and :class:`~fractions.Fraction`. " +"Behaviour with other types (whether in the numeric tower or not) is " +"currently unsupported. Collections with a mix of types are also undefined " +"and implementation-dependent. If your input data consists of mixed types, " +"you may be able to use :func:`map` to ensure a consistent result, for " +"example: ``map(float, input_data)``." msgstr "" -#: ../../library/statistics.rst:39 msgid "" "Some datasets use ``NaN`` (not a number) values to represent missing data. " "Since NaNs have unusual comparison semantics, they cause surprising or " @@ -67,7 +61,6 @@ msgid "" "functions::" msgstr "" -#: ../../library/statistics.rst:47 msgid "" ">>> from statistics import median\n" ">>> from math import isnan\n" @@ -90,212 +83,162 @@ msgid "" "18.75" msgstr "" -#: ../../library/statistics.rst:69 msgid "Averages and measures of central location" msgstr "" -#: ../../library/statistics.rst:71 msgid "" "These functions calculate an average or typical value from a population or " "sample." msgstr "" -#: ../../library/statistics.rst:75 msgid ":func:`mean`" msgstr "" -#: ../../library/statistics.rst:75 msgid "Arithmetic mean (\"average\") of data." msgstr "" -#: ../../library/statistics.rst:76 msgid ":func:`fmean`" msgstr "" -#: ../../library/statistics.rst:76 msgid "Fast, floating-point arithmetic mean, with optional weighting." msgstr "" -#: ../../library/statistics.rst:77 msgid ":func:`geometric_mean`" msgstr "" -#: ../../library/statistics.rst:77 msgid "Geometric mean of data." msgstr "" -#: ../../library/statistics.rst:78 msgid ":func:`harmonic_mean`" msgstr "" -#: ../../library/statistics.rst:78 msgid "Harmonic mean of data." msgstr "" -#: ../../library/statistics.rst:79 msgid ":func:`kde`" msgstr "" -#: ../../library/statistics.rst:79 msgid "Estimate the probability density distribution of the data." msgstr "" -#: ../../library/statistics.rst:80 msgid ":func:`kde_random`" msgstr "" -#: ../../library/statistics.rst:80 msgid "Random sampling from the PDF generated by kde()." msgstr "" -#: ../../library/statistics.rst:81 msgid ":func:`median`" msgstr "" -#: ../../library/statistics.rst:81 msgid "Median (middle value) of data." msgstr "" -#: ../../library/statistics.rst:82 msgid ":func:`median_low`" msgstr "" -#: ../../library/statistics.rst:82 msgid "Low median of data." msgstr "" -#: ../../library/statistics.rst:83 msgid ":func:`median_high`" msgstr "" -#: ../../library/statistics.rst:83 msgid "High median of data." msgstr "" -#: ../../library/statistics.rst:84 msgid ":func:`median_grouped`" msgstr "" -#: ../../library/statistics.rst:84 msgid "Median (50th percentile) of grouped data." msgstr "" -#: ../../library/statistics.rst:85 msgid ":func:`mode`" msgstr "" -#: ../../library/statistics.rst:85 msgid "Single mode (most common value) of discrete or nominal data." msgstr "" -#: ../../library/statistics.rst:86 msgid ":func:`multimode`" msgstr "" -#: ../../library/statistics.rst:86 msgid "List of modes (most common values) of discrete or nominal data." msgstr "" -#: ../../library/statistics.rst:87 msgid ":func:`quantiles`" msgstr "" -#: ../../library/statistics.rst:87 msgid "Divide data into intervals with equal probability." msgstr "" -#: ../../library/statistics.rst:91 msgid "Measures of spread" msgstr "" -#: ../../library/statistics.rst:93 msgid "" "These functions calculate a measure of how much the population or sample " "tends to deviate from the typical or average values." msgstr "" -#: ../../library/statistics.rst:97 msgid ":func:`pstdev`" msgstr "" -#: ../../library/statistics.rst:97 msgid "Population standard deviation of data." msgstr "" -#: ../../library/statistics.rst:98 msgid ":func:`pvariance`" msgstr "" -#: ../../library/statistics.rst:98 msgid "Population variance of data." msgstr "" -#: ../../library/statistics.rst:99 msgid ":func:`stdev`" msgstr "" -#: ../../library/statistics.rst:99 msgid "Sample standard deviation of data." msgstr "" -#: ../../library/statistics.rst:100 msgid ":func:`variance`" msgstr "" -#: ../../library/statistics.rst:100 msgid "Sample variance of data." msgstr "" -#: ../../library/statistics.rst:104 msgid "Statistics for relations between two inputs" msgstr "" -#: ../../library/statistics.rst:106 msgid "" "These functions calculate statistics regarding relations between two inputs." msgstr "" -#: ../../library/statistics.rst:109 msgid ":func:`covariance`" msgstr "" -#: ../../library/statistics.rst:109 msgid "Sample covariance for two variables." msgstr "" -#: ../../library/statistics.rst:110 msgid ":func:`correlation`" msgstr "" -#: ../../library/statistics.rst:110 msgid "Pearson and Spearman's correlation coefficients." msgstr "" -#: ../../library/statistics.rst:111 msgid ":func:`linear_regression`" msgstr "" -#: ../../library/statistics.rst:111 msgid "Slope and intercept for simple linear regression." msgstr "" -#: ../../library/statistics.rst:116 msgid "Function details" msgstr "" -#: ../../library/statistics.rst:118 msgid "" "Note: The functions do not require the data given to them to be sorted. " "However, for reading convenience, most of the examples show sorted sequences." msgstr "" -#: ../../library/statistics.rst:123 msgid "" "Return the sample arithmetic mean of *data* which can be a sequence or " "iterable." msgstr "" -#: ../../library/statistics.rst:125 msgid "" "The arithmetic mean is the sum of the data divided by the number of data " "points. It is commonly called \"the average\", although it is only one of " @@ -303,15 +246,12 @@ msgid "" "location of the data." msgstr "" -#: ../../library/statistics.rst:130 msgid "If *data* is empty, :exc:`StatisticsError` will be raised." msgstr "" -#: ../../library/statistics.rst:132 msgid "Some examples of use:" msgstr "" -#: ../../library/statistics.rst:134 msgid "" ">>> mean([1, 2, 3, 4, 4])\n" "2.8\n" @@ -327,7 +267,6 @@ msgid "" "Decimal('0.5625')" msgstr "" -#: ../../library/statistics.rst:151 msgid "" "The mean is strongly affected by `outliers `_ and is not necessarily a typical example of the data points. For " @@ -335,7 +274,6 @@ msgid "" "`_, see :func:`median`." msgstr "" -#: ../../library/statistics.rst:157 msgid "" "The sample mean gives an unbiased estimate of the true population mean, so " "that when taken on average over all the possible samples, ``mean(sample)`` " @@ -344,31 +282,26 @@ msgid "" "equivalent to calculating the true population mean μ." msgstr "" -#: ../../library/statistics.rst:166 msgid "Convert *data* to floats and compute the arithmetic mean." msgstr "" -#: ../../library/statistics.rst:168 msgid "" -"This runs faster than the :func:`mean` function and it always returns " -"a :class:`float`. The *data* may be a sequence or iterable. If the input " +"This runs faster than the :func:`mean` function and it always returns a :" +"class:`float`. The *data* may be a sequence or iterable. If the input " "dataset is empty, raises a :exc:`StatisticsError`." msgstr "" -#: ../../library/statistics.rst:172 msgid "" ">>> fmean([3.5, 4.0, 5.25])\n" "4.25" msgstr "" -#: ../../library/statistics.rst:177 msgid "" "Optional weighting is supported. For example, a professor assigns a grade " "for a course by weighting quizzes at 20%, homework at 20%, a midterm exam at " "30%, and a final exam at 30%:" msgstr "" -#: ../../library/statistics.rst:181 msgid "" ">>> grades = [85, 92, 83, 91]\n" ">>> weights = [0.20, 0.20, 0.30, 0.30]\n" @@ -376,54 +309,45 @@ msgid "" "87.6" msgstr "" -#: ../../library/statistics.rst:188 msgid "" -"If *weights* is supplied, it must be the same length as the *data* or " -"a :exc:`ValueError` will be raised." +"If *weights* is supplied, it must be the same length as the *data* or a :exc:" +"`ValueError` will be raised." msgstr "" -#: ../../library/statistics.rst:193 ../../library/statistics.rst:261 msgid "Added support for *weights*." msgstr "" -#: ../../library/statistics.rst:199 msgid "Convert *data* to floats and compute the geometric mean." msgstr "" -#: ../../library/statistics.rst:201 msgid "" "The geometric mean indicates the central tendency or typical value of the " "*data* using the product of the values (as opposed to the arithmetic mean " "which uses their sum)." msgstr "" -#: ../../library/statistics.rst:205 msgid "" "Raises a :exc:`StatisticsError` if the input dataset is empty, if it " "contains a zero, or if it contains a negative value. The *data* may be a " "sequence or iterable." msgstr "" -#: ../../library/statistics.rst:209 msgid "" "No special efforts are made to achieve exact results. (However, this may " "change in the future.)" msgstr "" -#: ../../library/statistics.rst:212 msgid "" ">>> round(geometric_mean([54, 24, 36]), 1)\n" "36.0" msgstr "" -#: ../../library/statistics.rst:222 msgid "" "Return the harmonic mean of *data*, a sequence or iterable of real-valued " "numbers. If *weights* is omitted or ``None``, then equal weighting is " "assumed." msgstr "" -#: ../../library/statistics.rst:226 msgid "" "The harmonic mean is the reciprocal of the arithmetic :func:`mean` of the " "reciprocals of the data. For example, the harmonic mean of three values *a*, " @@ -431,52 +355,44 @@ msgid "" "values is zero, the result will be zero." msgstr "" -#: ../../library/statistics.rst:231 msgid "" "The harmonic mean is a type of average, a measure of the central location of " "the data. It is often appropriate when averaging ratios or rates, for " "example speeds." msgstr "" -#: ../../library/statistics.rst:235 msgid "" "Suppose a car travels 10 km at 40 km/hr, then another 10 km at 60 km/hr. " "What is the average speed?" msgstr "" -#: ../../library/statistics.rst:238 msgid "" ">>> harmonic_mean([40, 60])\n" "48.0" msgstr "" -#: ../../library/statistics.rst:243 msgid "" "Suppose a car travels 40 km/hr for 5 km, and when traffic clears, speeds-up " "to 60 km/hr for the remaining 30 km of the journey. What is the average " "speed?" msgstr "" -#: ../../library/statistics.rst:247 msgid "" ">>> harmonic_mean([40, 60], weights=[5, 30])\n" "56.0" msgstr "" -#: ../../library/statistics.rst:252 msgid "" ":exc:`StatisticsError` is raised if *data* is empty, any element is less " "than zero, or if the weighted sum isn't positive." msgstr "" -#: ../../library/statistics.rst:255 msgid "" "The current algorithm has an early-out when it encounters a zero in the " "input. This means that the subsequent inputs are not tested for validity. " "(This behavior may change in the future.)" msgstr "" -#: ../../library/statistics.rst:267 msgid "" "`Kernel Density Estimation (KDE) `_: Create a continuous " @@ -484,51 +400,43 @@ msgid "" "discrete samples." msgstr "" -#: ../../library/statistics.rst:272 msgid "" -"The basic idea is to smooth the data using `a kernel function `_. to help draw inferences about " -"a population from a sample." +"The basic idea is to smooth the data using `a kernel function `_. to help draw inferences about a " +"population from a sample." msgstr "" -#: ../../library/statistics.rst:276 msgid "" "The degree of smoothing is controlled by the scaling parameter *h* which is " "called the bandwidth. Smaller values emphasize local features while larger " "values give smoother results." msgstr "" -#: ../../library/statistics.rst:280 msgid "" "The *kernel* determines the relative weights of the sample data points. " "Generally, the choice of kernel shape does not matter as much as the more " "influential bandwidth smoothing parameter." msgstr "" -#: ../../library/statistics.rst:284 msgid "" "Kernels that give some weight to every sample point include *normal* " "(*gauss*), *logistic*, and *sigmoid*." msgstr "" -#: ../../library/statistics.rst:287 msgid "" "Kernels that only give weight to sample points within the bandwidth include " "*rectangular* (*uniform*), *triangular*, *parabolic* (*epanechnikov*), " "*quartic* (*biweight*), *triweight*, and *cosine*." msgstr "" -#: ../../library/statistics.rst:291 msgid "" "If *cumulative* is true, will return a cumulative distribution function." msgstr "" -#: ../../library/statistics.rst:293 ../../library/statistics.rst:324 msgid "" "A :exc:`StatisticsError` will be raised if the *data* sequence is empty." msgstr "" -#: ../../library/statistics.rst:295 msgid "" "`Wikipedia has an example `_ where we can use :func:`kde` to " @@ -536,7 +444,6 @@ msgid "" "sample:" msgstr "" -#: ../../library/statistics.rst:300 msgid "" ">>> sample = [-2.1, -1.3, -0.4, 1.9, 5.1, 6.2]\n" ">>> f_hat = kde(sample, h=1.5)\n" @@ -544,94 +451,78 @@ msgid "" ">>> yarr = [f_hat(x) for x in xarr]" msgstr "" -#: ../../library/statistics.rst:307 msgid "The points in ``xarr`` and ``yarr`` can be used to make a PDF plot:" msgstr "" -#: ../../library/statistics.rst:309 msgid "Scatter plot of the estimated probability density function." msgstr "" -#: ../../library/statistics.rst:317 msgid "" "Return a function that makes a random selection from the estimated " "probability density function produced by ``kde(data, h, kernel)``." msgstr "" -#: ../../library/statistics.rst:320 msgid "" "Providing a *seed* allows reproducible selections. In the future, the values " "may change slightly as more accurate kernel inverse CDF estimates are " "implemented. The seed may be an integer, float, str, or bytes." msgstr "" -#: ../../library/statistics.rst:326 msgid "" "Continuing the example for :func:`kde`, we can use :func:`kde_random` to " "generate new random selections from an estimated probability density " "function:" msgstr "" -#: ../../library/statistics.rst:341 msgid "" "Return the median (middle value) of numeric data, using the common \"mean of " "middle two\" method. If *data* is empty, :exc:`StatisticsError` is raised. " "*data* can be a sequence or iterable." msgstr "" -#: ../../library/statistics.rst:345 msgid "" "The median is a robust measure of central location and is less affected by " "the presence of outliers. When the number of data points is odd, the middle " "data point is returned:" msgstr "" -#: ../../library/statistics.rst:349 msgid "" ">>> median([1, 3, 5])\n" "3" msgstr "" -#: ../../library/statistics.rst:354 msgid "" "When the number of data points is even, the median is interpolated by taking " "the average of the two middle values:" msgstr "" -#: ../../library/statistics.rst:357 msgid "" ">>> median([1, 3, 5, 7])\n" "4.0" msgstr "" -#: ../../library/statistics.rst:362 msgid "" "This is suited for when your data is discrete, and you don't mind that the " "median may not be an actual data point." msgstr "" -#: ../../library/statistics.rst:365 msgid "" "If the data is ordinal (supports order operations) but not numeric (doesn't " "support addition), consider using :func:`median_low` or :func:`median_high` " "instead." msgstr "" -#: ../../library/statistics.rst:371 msgid "" -"Return the low median of numeric data. If *data* is " -"empty, :exc:`StatisticsError` is raised. *data* can be a sequence or " -"iterable." +"Return the low median of numeric data. If *data* is empty, :exc:" +"`StatisticsError` is raised. *data* can be a sequence or iterable." msgstr "" -#: ../../library/statistics.rst:374 msgid "" "The low median is always a member of the data set. When the number of data " "points is odd, the middle value is returned. When it is even, the smaller " "of the two middle values is returned." msgstr "" -#: ../../library/statistics.rst:378 msgid "" ">>> median_low([1, 3, 5])\n" "3\n" @@ -639,26 +530,22 @@ msgid "" "3" msgstr "" -#: ../../library/statistics.rst:385 msgid "" "Use the low median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" -#: ../../library/statistics.rst:391 msgid "" "Return the high median of data. If *data* is empty, :exc:`StatisticsError` " "is raised. *data* can be a sequence or iterable." msgstr "" -#: ../../library/statistics.rst:394 msgid "" "The high median is always a member of the data set. When the number of data " "points is odd, the middle value is returned. When it is even, the larger of " "the two middle values is returned." msgstr "" -#: ../../library/statistics.rst:398 msgid "" ">>> median_high([1, 3, 5])\n" "3\n" @@ -666,37 +553,31 @@ msgid "" "5" msgstr "" -#: ../../library/statistics.rst:405 msgid "" "Use the high median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" -#: ../../library/statistics.rst:411 msgid "" "Estimates the median for numeric data that has been `grouped or binned " "`_ around the midpoints of " "consecutive, fixed-width intervals." msgstr "" -#: ../../library/statistics.rst:415 msgid "" "The *data* can be any iterable of numeric data with each value being exactly " "the midpoint of a bin. At least one value must be present." msgstr "" -#: ../../library/statistics.rst:418 msgid "The *interval* is the width of each bin." msgstr "" -#: ../../library/statistics.rst:420 msgid "" "For example, demographic information may have been summarized into " "consecutive ten-year age groups with each group being represented by the 5-" "year midpoints of the intervals:" msgstr "" -#: ../../library/statistics.rst:424 msgid "" ">>> from collections import Counter\n" ">>> demographics = Counter({\n" @@ -709,13 +590,11 @@ msgid "" "..." msgstr "" -#: ../../library/statistics.rst:436 msgid "" "The 50th percentile (median) is the 536th person out of the 1071 member " "cohort. That person is in the 30 to 40 year old age group." msgstr "" -#: ../../library/statistics.rst:439 msgid "" "The regular :func:`median` function would assume that everyone in the " "tricenarian age group was exactly 35 years old. A more tenable assumption " @@ -723,7 +602,6 @@ msgid "" "and 40. For that, we use :func:`median_grouped`:" msgstr "" -#: ../../library/statistics.rst:445 msgid "" ">>> data = list(demographics.elements())\n" ">>> median(data)\n" @@ -732,27 +610,23 @@ msgid "" "37.5" msgstr "" -#: ../../library/statistics.rst:453 msgid "" "The caller is responsible for making sure the data points are separated by " "exact multiples of *interval*. This is essential for getting a correct " "result. The function does not check this precondition." msgstr "" -#: ../../library/statistics.rst:457 msgid "" "Inputs may be any numeric type that can be coerced to a float during the " "interpolation step." msgstr "" -#: ../../library/statistics.rst:463 msgid "" "Return the single most common data point from discrete or nominal *data*. " "The mode (when it exists) is the most typical value and serves as a measure " "of central location." msgstr "" -#: ../../library/statistics.rst:467 msgid "" "If there are multiple modes with the same frequency, returns the first one " "encountered in the *data*. If the smallest or largest of those is desired " @@ -760,32 +634,27 @@ msgid "" "input *data* is empty, :exc:`StatisticsError` is raised." msgstr "" -#: ../../library/statistics.rst:472 msgid "" "``mode`` assumes discrete data and returns a single value. This is the " "standard treatment of the mode as commonly taught in schools:" msgstr "" -#: ../../library/statistics.rst:475 msgid "" ">>> mode([1, 1, 2, 3, 3, 3, 3, 4])\n" "3" msgstr "" -#: ../../library/statistics.rst:480 msgid "" "The mode is unique in that it is the only statistic in this package that " "also applies to nominal (non-numeric) data:" msgstr "" -#: ../../library/statistics.rst:483 msgid "" ">>> mode([\"red\", \"blue\", \"blue\", \"red\", \"green\", \"red\", " "\"red\"])\n" "'red'" msgstr "" -#: ../../library/statistics.rst:488 msgid "" "Only hashable inputs are supported. To handle type :class:`set`, consider " "casting to :class:`frozenset`. To handle type :class:`list`, consider " @@ -794,20 +663,17 @@ msgid "" "key=data.count)``." msgstr "" -#: ../../library/statistics.rst:494 msgid "" "Now handles multimodal datasets by returning the first mode encountered. " "Formerly, it raised :exc:`StatisticsError` when more than one mode was found." msgstr "" -#: ../../library/statistics.rst:502 msgid "" "Return a list of the most frequently occurring values in the order they were " "first encountered in the *data*. Will return more than one result if there " "are multiple modes or an empty list if the *data* is empty:" msgstr "" -#: ../../library/statistics.rst:506 msgid "" ">>> multimode('aabbbbccddddeeffffgg')\n" "['b', 'd', 'f']\n" @@ -815,19 +681,16 @@ msgid "" "[]" msgstr "" -#: ../../library/statistics.rst:518 msgid "" "Return the population standard deviation (the square root of the population " "variance). See :func:`pvariance` for arguments and other details." msgstr "" -#: ../../library/statistics.rst:521 msgid "" ">>> pstdev([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])\n" "0.986893273527251" msgstr "" -#: ../../library/statistics.rst:529 msgid "" "Return the population variance of *data*, a non-empty sequence or iterable " "of real-valued numbers. Variance, or second moment about the mean, is a " @@ -836,7 +699,6 @@ msgid "" "clustered closely around the mean." msgstr "" -#: ../../library/statistics.rst:535 msgid "" "If the optional second argument *mu* is given, it should be the *population* " "mean of the *data*. It can also be used to compute the second moment around " @@ -844,47 +706,38 @@ msgid "" "the arithmetic mean is automatically calculated." msgstr "" -#: ../../library/statistics.rst:540 msgid "" "Use this function to calculate the variance from the entire population. To " "estimate the variance from a sample, the :func:`variance` function is " "usually a better choice." msgstr "" -#: ../../library/statistics.rst:544 msgid "Raises :exc:`StatisticsError` if *data* is empty." msgstr "" -#: ../../library/statistics.rst:546 ../../library/statistics.rst:616 -#: ../../library/statistics.rst:725 msgid "Examples:" msgstr "" -#: ../../library/statistics.rst:548 msgid "" ">>> data = [0.0, 0.25, 0.25, 1.25, 1.5, 1.75, 2.75, 3.25]\n" ">>> pvariance(data)\n" "1.25" msgstr "" -#: ../../library/statistics.rst:554 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *mu* to avoid recalculation:" msgstr "" -#: ../../library/statistics.rst:557 msgid "" ">>> mu = mean(data)\n" ">>> pvariance(data, mu)\n" "1.25" msgstr "" -#: ../../library/statistics.rst:563 msgid "Decimals and Fractions are supported:" msgstr "" -#: ../../library/statistics.rst:565 msgid "" ">>> from decimal import Decimal as D\n" ">>> pvariance([D(\"27.5\"), D(\"30.25\"), D(\"30.25\"), D(\"34.5\"), " @@ -896,14 +749,12 @@ msgid "" "Fraction(13, 72)" msgstr "" -#: ../../library/statistics.rst:577 msgid "" "When called with the entire population, this gives the population variance " "σ². When called on a sample instead, this is the biased sample variance s², " "also known as variance with N degrees of freedom." msgstr "" -#: ../../library/statistics.rst:581 msgid "" "If you somehow know the true population mean μ, you may use this function to " "calculate the variance of a sample, giving the known population mean as the " @@ -912,19 +763,16 @@ msgid "" "variance." msgstr "" -#: ../../library/statistics.rst:590 msgid "" "Return the sample standard deviation (the square root of the sample " "variance). See :func:`variance` for arguments and other details." msgstr "" -#: ../../library/statistics.rst:593 msgid "" ">>> stdev([1.5, 2.5, 2.5, 2.75, 3.25, 4.75])\n" "1.0810874155219827" msgstr "" -#: ../../library/statistics.rst:601 msgid "" "Return the sample variance of *data*, an iterable of at least two real-" "valued numbers. Variance, or second moment about the mean, is a measure of " @@ -933,55 +781,46 @@ msgid "" "closely around the mean." msgstr "" -#: ../../library/statistics.rst:607 msgid "" "If the optional second argument *xbar* is given, it should be the *sample* " "mean of *data*. If it is missing or ``None`` (the default), the mean is " "automatically calculated." msgstr "" -#: ../../library/statistics.rst:611 msgid "" "Use this function when your data is a sample from a population. To calculate " "the variance from the entire population, see :func:`pvariance`." msgstr "" -#: ../../library/statistics.rst:614 msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." msgstr "" -#: ../../library/statistics.rst:618 msgid "" ">>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]\n" ">>> variance(data)\n" "1.3720238095238095" msgstr "" -#: ../../library/statistics.rst:624 msgid "" "If you have already calculated the sample mean of your data, you can pass it " "as the optional second argument *xbar* to avoid recalculation:" msgstr "" -#: ../../library/statistics.rst:627 msgid "" ">>> m = mean(data)\n" ">>> variance(data, m)\n" "1.3720238095238095" msgstr "" -#: ../../library/statistics.rst:633 msgid "" "This function does not attempt to verify that you have passed the actual " "mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " "impossible results." msgstr "" -#: ../../library/statistics.rst:637 msgid "Decimal and Fraction values are supported:" msgstr "" -#: ../../library/statistics.rst:639 msgid "" ">>> from decimal import Decimal as D\n" ">>> variance([D(\"27.5\"), D(\"30.25\"), D(\"30.25\"), D(\"34.5\"), " @@ -993,7 +832,6 @@ msgid "" "Fraction(67, 108)" msgstr "" -#: ../../library/statistics.rst:651 msgid "" "This is the sample variance s² with Bessel's correction, also known as " "variance with N-1 degrees of freedom. Provided that the data points are " @@ -1001,20 +839,17 @@ msgid "" "should be an unbiased estimate of the true population variance." msgstr "" -#: ../../library/statistics.rst:656 msgid "" -"If you somehow know the actual population mean μ you should pass it to " -"the :func:`pvariance` function as the *mu* parameter to get the variance of " -"a sample." +"If you somehow know the actual population mean μ you should pass it to the :" +"func:`pvariance` function as the *mu* parameter to get the variance of a " +"sample." msgstr "" -#: ../../library/statistics.rst:662 msgid "" "Divide *data* into *n* continuous intervals with equal probability. Returns " "a list of ``n - 1`` cut points separating the intervals." msgstr "" -#: ../../library/statistics.rst:665 msgid "" "Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles. Set " "*n* to 100 for percentiles which gives the 99 cuts points that separate " @@ -1022,28 +857,24 @@ msgid "" "not least 1." msgstr "" -#: ../../library/statistics.rst:670 msgid "" "The *data* can be any iterable containing sample data. For meaningful " "results, the number of data points in *data* should be larger than *n*. " "Raises :exc:`StatisticsError` if there is not at least one data point." msgstr "" -#: ../../library/statistics.rst:674 msgid "" "The cut points are linearly interpolated from the two nearest data points. " "For example, if a cut point falls one-third of the distance between two " "sample values, ``100`` and ``112``, the cut-point will evaluate to ``104``." msgstr "" -#: ../../library/statistics.rst:679 msgid "" "The *method* for computing quantiles can be varied depending on whether the " "*data* includes or excludes the lowest and highest possible values from the " "population." msgstr "" -#: ../../library/statistics.rst:683 msgid "" "The default *method* is \"exclusive\" and is used for data sampled from a " "population that can have more extreme values than found in the samples. The " @@ -1053,7 +884,6 @@ msgid "" "70%, 80%, 90%." msgstr "" -#: ../../library/statistics.rst:690 msgid "" "Setting the *method* to \"inclusive\" is used for describing population data " "or for samples that are known to include the most extreme values from the " @@ -1065,7 +895,6 @@ msgid "" "80%, 90%, 100%." msgstr "" -#: ../../library/statistics.rst:699 msgid "" "# Decile cut points for empirically sampled data\n" ">>> data = [105, 129, 87, 86, 111, 111, 89, 81, 108, 92, 110,\n" @@ -1077,26 +906,22 @@ msgid "" "[81.0, 86.2, 89.0, 99.4, 102.5, 103.6, 106.0, 109.8, 111.0]" msgstr "" -#: ../../library/statistics.rst:712 msgid "" "No longer raises an exception for an input with only a single data point. " "This allows quantile estimates to be built up one sample point at a time " "becoming gradually more refined with each new data point." msgstr "" -#: ../../library/statistics.rst:719 msgid "" "Return the sample covariance of two inputs *x* and *y*. Covariance is a " "measure of the joint variability of two inputs." msgstr "" -#: ../../library/statistics.rst:722 msgid "" -"Both inputs must be of the same length (no less than two), " -"otherwise :exc:`StatisticsError` is raised." +"Both inputs must be of the same length (no less than two), otherwise :exc:" +"`StatisticsError` is raised." msgstr "" -#: ../../library/statistics.rst:727 msgid "" ">>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]\n" ">>> y = [1, 2, 3, 1, 2, 3, 1, 2, 3]\n" @@ -1109,7 +934,6 @@ msgid "" "-7.5" msgstr "" -#: ../../library/statistics.rst:743 msgid "" "Return the `Pearson's correlation coefficient `_ for two inputs. Pearson's correlation " @@ -1117,7 +941,6 @@ msgid "" "direction of a linear relationship." msgstr "" -#: ../../library/statistics.rst:749 msgid "" "If *method* is \"ranked\", computes `Spearman's rank correlation coefficient " "`_ " @@ -1126,26 +949,22 @@ msgid "" "strength of a monotonic relationship." msgstr "" -#: ../../library/statistics.rst:755 msgid "" "Spearman's correlation coefficient is appropriate for ordinal data or for " "continuous data that doesn't meet the linear proportion requirement for " "Pearson's correlation coefficient." msgstr "" -#: ../../library/statistics.rst:759 msgid "" "Both inputs must be of the same length (no less than two), and need not to " "be constant, otherwise :exc:`StatisticsError` is raised." msgstr "" -#: ../../library/statistics.rst:762 msgid "" "Example with `Kepler's laws of planetary motion `_:" msgstr "" -#: ../../library/statistics.rst:765 msgid "" ">>> # Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune\n" ">>> orbital_period = [88, 225, 365, 687, 4331, 10_756, 30_687, 60_190] # " @@ -1170,24 +989,20 @@ msgid "" "1.0" msgstr "" -#: ../../library/statistics.rst:789 msgid "Added support for Spearman's rank correlation coefficient." msgstr "" -#: ../../library/statistics.rst:794 msgid "" -"Return the slope and intercept of `simple linear regression `_ parameters estimated using " +"Return the slope and intercept of `simple linear regression `_ parameters estimated using " "ordinary least squares. Simple linear regression describes the relationship " "between an independent variable *x* and a dependent variable *y* in terms of " "this linear function:" msgstr "" -#: ../../library/statistics.rst:800 msgid "*y = slope \\* x + intercept + noise*" msgstr "" -#: ../../library/statistics.rst:802 msgid "" "where ``slope`` and ``intercept`` are the regression parameters that are " "estimated, and ``noise`` represents the variability of the data that was not " @@ -1195,14 +1010,12 @@ msgid "" "predicted and actual values of the dependent variable)." msgstr "" -#: ../../library/statistics.rst:808 msgid "" "Both inputs must be of the same length (no less than two), and the " -"independent variable *x* cannot be constant; otherwise " -"a :exc:`StatisticsError` is raised." +"independent variable *x* cannot be constant; otherwise a :exc:" +"`StatisticsError` is raised." msgstr "" -#: ../../library/statistics.rst:812 msgid "" "For example, we can use the `release dates of the Monty Python films " "`_ to predict the " @@ -1210,7 +1023,6 @@ msgid "" "2019 assuming that they had kept the pace." msgstr "" -#: ../../library/statistics.rst:818 msgid "" ">>> year = [1971, 1975, 1979, 1982, 1983]\n" ">>> films_total = [1, 2, 3, 4, 5]\n" @@ -1219,7 +1031,6 @@ msgid "" "16" msgstr "" -#: ../../library/statistics.rst:826 msgid "" "If *proportional* is true, the independent variable *x* and the dependent " "variable *y* are assumed to be directly proportional. The data is fit to a " @@ -1227,18 +1038,15 @@ msgid "" "the underlying linear function simplifies to:" msgstr "" -#: ../../library/statistics.rst:832 msgid "*y = slope \\* x + noise*" msgstr "" -#: ../../library/statistics.rst:834 msgid "" "Continuing the example from :func:`correlation`, we look to see how well a " "model based on major planets can predict the orbital distances for dwarf " "planets:" msgstr "" -#: ../../library/statistics.rst:838 msgid "" ">>> model = linear_regression(period_squared, dist_cubed, " "proportional=True)\n" @@ -1254,90 +1062,74 @@ msgid "" "[5906, 10152, 6796, 6450, 414]" msgstr "" -#: ../../library/statistics.rst:854 msgid "Added support for *proportional*." msgstr "" -#: ../../library/statistics.rst:858 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/statistics.rst:860 msgid "A single exception is defined:" msgstr "" -#: ../../library/statistics.rst:864 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" -#: ../../library/statistics.rst:868 msgid ":class:`NormalDist` objects" msgstr "" -#: ../../library/statistics.rst:870 msgid "" ":class:`NormalDist` is a tool for creating and manipulating normal " -"distributions of a `random variable `_. It is a class that treats the mean and standard " -"deviation of data measurements as a single entity." +"distributions of a `random variable `_. It is a class that treats the mean and " +"standard deviation of data measurements as a single entity." msgstr "" -#: ../../library/statistics.rst:876 msgid "" -"Normal distributions arise from the `Central Limit Theorem `_ and have a wide range of " +"Normal distributions arise from the `Central Limit Theorem `_ and have a wide range of " "applications in statistics." msgstr "" -#: ../../library/statistics.rst:882 msgid "" "Returns a new *NormalDist* object where *mu* represents the `arithmetic mean " "`_ and *sigma* represents the " "`standard deviation `_." msgstr "" -#: ../../library/statistics.rst:887 msgid "If *sigma* is negative, raises :exc:`StatisticsError`." msgstr "" -#: ../../library/statistics.rst:891 msgid "" "A read-only property for the `arithmetic mean `_ of a normal distribution." msgstr "" -#: ../../library/statistics.rst:897 msgid "" "A read-only property for the `median `_ of a normal distribution." msgstr "" -#: ../../library/statistics.rst:903 msgid "" "A read-only property for the `mode `_ of a normal distribution." msgstr "" -#: ../../library/statistics.rst:909 msgid "" "A read-only property for the `standard deviation `_ of a normal distribution." msgstr "" -#: ../../library/statistics.rst:915 msgid "" "A read-only property for the `variance `_ of a normal distribution. Equal to the square of the standard " "deviation." msgstr "" -#: ../../library/statistics.rst:921 msgid "" "Makes a normal distribution instance with *mu* and *sigma* parameters " "estimated from the *data* using :func:`fmean` and :func:`stdev`." msgstr "" -#: ../../library/statistics.rst:924 msgid "" "The *data* can be any :term:`iterable` and should consist of values that can " "be converted to type :class:`float`. If *data* does not contain at least " @@ -1346,26 +1138,22 @@ msgid "" "dispersion." msgstr "" -#: ../../library/statistics.rst:932 msgid "" "Generates *n* random samples for a given mean and standard deviation. " "Returns a :class:`list` of :class:`float` values." msgstr "" -#: ../../library/statistics.rst:935 msgid "" "If *seed* is given, creates a new instance of the underlying random number " "generator. This is useful for creating reproducible results, even in a " "multi-threading context." msgstr "" -#: ../../library/statistics.rst:941 msgid "" "Switched to a faster algorithm. To reproduce samples from previous " "versions, use :func:`random.seed` and :func:`random.gauss`." msgstr "" -#: ../../library/statistics.rst:946 msgid "" "Using a `probability density function (pdf) `_, compute the relative likelihood that a " @@ -1373,7 +1161,6 @@ msgid "" "the limit of the ratio ``P(x <= X < x+dx) / dx`` as *dx* approaches zero." msgstr "" -#: ../../library/statistics.rst:952 msgid "" "The relative likelihood is computed as the probability of a sample occurring " "in a narrow range divided by the width of the range (hence the word " @@ -1381,7 +1168,6 @@ msgid "" "can be greater than ``1.0``." msgstr "" -#: ../../library/statistics.rst:959 msgid "" "Using a `cumulative distribution function (cdf) `_, compute the probability that a " @@ -1389,43 +1175,37 @@ msgid "" "is written ``P(X <= x)``." msgstr "" -#: ../../library/statistics.rst:966 msgid "" "Compute the inverse cumulative distribution function, also known as the " "`quantile function `_ or " -"the `percent-point `_ " +"the `percent-point `_ " "function. Mathematically, it is written ``x : P(X <= x) = p``." msgstr "" -#: ../../library/statistics.rst:972 msgid "" "Finds the value *x* of the random variable *X* such that the probability of " "the variable being less than or equal to that value equals the given " "probability *p*." msgstr "" -#: ../../library/statistics.rst:978 msgid "" "Measures the agreement between two normal probability distributions. Returns " "a value between 0.0 and 1.0 giving `the overlapping area for the two " "probability density functions `_." msgstr "" -#: ../../library/statistics.rst:985 msgid "" "Divide the normal distribution into *n* continuous intervals with equal " "probability. Returns a list of (n - 1) cut points separating the intervals." msgstr "" -#: ../../library/statistics.rst:989 msgid "" "Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles. Set " "*n* to 100 for percentiles which gives the 99 cuts points that separate the " "normal distribution into 100 equal sized groups." msgstr "" -#: ../../library/statistics.rst:995 msgid "" "Compute the `Standard Score `_ describing *x* in terms of the number of standard " @@ -1433,36 +1213,31 @@ msgid "" "mean) / stdev``." msgstr "" -#: ../../library/statistics.rst:1003 msgid "" "Instances of :class:`NormalDist` support addition, subtraction, " "multiplication and division by a constant. These operations are used for " "translation and scaling. For example:" msgstr "" -#: ../../library/statistics.rst:1007 msgid "" ">>> temperature_february = NormalDist(5, 2.5) # Celsius\n" ">>> temperature_february * (9/5) + 32 # Fahrenheit\n" "NormalDist(mu=41.0, sigma=4.5)" msgstr "" -#: ../../library/statistics.rst:1013 msgid "" "Dividing a constant by an instance of :class:`NormalDist` is not supported " "because the result wouldn't be normally distributed." msgstr "" -#: ../../library/statistics.rst:1016 msgid "" "Since normal distributions arise from additive effects of independent " "variables, it is possible to `add and subtract two independent normally " "distributed random variables `_ represented as instances " -"of :class:`NormalDist`. For example:" +"Sum_of_normally_distributed_random_variables>`_ represented as instances of :" +"class:`NormalDist`. For example:" msgstr "" -#: ../../library/statistics.rst:1022 msgid "" ">>> birth_weights = NormalDist.from_samples([2.5, 3.1, 2.1, 2.4, 2.7, 3.5])\n" ">>> drug_effects = NormalDist(0.4, 0.15)\n" @@ -1473,19 +1248,15 @@ msgid "" "0.5" msgstr "" -#: ../../library/statistics.rst:1036 msgid "Examples and Recipes" msgstr "" -#: ../../library/statistics.rst:1040 msgid "Classic probability problems" msgstr "" -#: ../../library/statistics.rst:1042 msgid ":class:`NormalDist` readily solves classic probability problems." msgstr "" -#: ../../library/statistics.rst:1044 msgid "" "For example, given `historical data for SAT exams `_ showing that scores are " @@ -1494,7 +1265,6 @@ msgid "" "after rounding to the nearest whole number:" msgstr "" -#: ../../library/statistics.rst:1050 msgid "" ">>> sat = NormalDist(1060, 195)\n" ">>> fraction = sat.cdf(1200 + 0.5) - sat.cdf(1100 - 0.5)\n" @@ -1502,13 +1272,11 @@ msgid "" "18.4" msgstr "" -#: ../../library/statistics.rst:1057 msgid "" "Find the `quartiles `_ and `deciles " "`_ for the SAT scores:" msgstr "" -#: ../../library/statistics.rst:1060 msgid "" ">>> list(map(round, sat.quantiles()))\n" "[928, 1060, 1192]\n" @@ -1516,18 +1284,15 @@ msgid "" "[810, 896, 958, 1011, 1060, 1109, 1162, 1224, 1310]" msgstr "" -#: ../../library/statistics.rst:1069 msgid "Monte Carlo inputs for simulations" msgstr "" -#: ../../library/statistics.rst:1071 msgid "" "To estimate the distribution for a model that isn't easy to solve " "analytically, :class:`NormalDist` can generate input samples for a `Monte " "Carlo simulation `_:" msgstr "" -#: ../../library/statistics.rst:1075 msgid "" ">>> def model(x, y, z):\n" "... return (3*x + 7*x*y - 5*y) / (11 * z)\n" @@ -1540,18 +1305,15 @@ msgid "" "[1.4591308524824727, 1.8035946855390597, 2.175091447274739]" msgstr "" -#: ../../library/statistics.rst:1088 msgid "Approximating binomial distributions" msgstr "" -#: ../../library/statistics.rst:1090 msgid "" "Normal distributions can be used to approximate `Binomial distributions " "`_ when the sample " "size is large and when the probability of a successful trial is near 50%." msgstr "" -#: ../../library/statistics.rst:1095 msgid "" "For example, an open source conference has 750 attendees and two rooms with " "a 500 person capacity. There is a talk about Python and another about Ruby. " @@ -1560,7 +1322,6 @@ msgid "" "probability that the Python room will stay within its capacity limits?" msgstr "" -#: ../../library/statistics.rst:1101 msgid "" ">>> n = 750 # Sample size\n" ">>> p = 0.65 # Preference for Python\n" @@ -1584,30 +1345,25 @@ msgid "" "0.8406" msgstr "" -#: ../../library/statistics.rst:1126 msgid "Naive bayesian classifier" msgstr "" -#: ../../library/statistics.rst:1128 msgid "Normal distributions commonly arise in machine learning problems." msgstr "" -#: ../../library/statistics.rst:1130 msgid "" -"Wikipedia has a `nice example of a Naive Bayesian Classifier `_. The " +"Wikipedia has a `nice example of a Naive Bayesian Classifier `_. The " "challenge is to predict a person's gender from measurements of normally " "distributed features including height, weight, and foot size." msgstr "" -#: ../../library/statistics.rst:1135 msgid "" "We're given a training dataset with measurements for eight people. The " "measurements are assumed to be normally distributed, so we summarize the " "data with :class:`NormalDist`:" msgstr "" -#: ../../library/statistics.rst:1139 msgid "" ">>> height_male = NormalDist.from_samples([6, 5.92, 5.58, 5.92])\n" ">>> height_female = NormalDist.from_samples([5, 5.5, 5.42, 5.75])\n" @@ -1617,20 +1373,17 @@ msgid "" ">>> foot_size_female = NormalDist.from_samples([6, 8, 7, 9])" msgstr "" -#: ../../library/statistics.rst:1148 msgid "" "Next, we encounter a new person whose feature measurements are known but " "whose gender is unknown:" msgstr "" -#: ../../library/statistics.rst:1151 msgid "" ">>> ht = 6.0 # height\n" ">>> wt = 130 # weight\n" ">>> fs = 8 # foot size" msgstr "" -#: ../../library/statistics.rst:1157 msgid "" "Starting with a 50% `prior probability `_ of being male or female, we compute the posterior as " @@ -1638,7 +1391,6 @@ msgid "" "given the gender:" msgstr "" -#: ../../library/statistics.rst:1162 msgid "" ">>> prior_male = 0.5\n" ">>> prior_female = 0.5\n" @@ -1649,14 +1401,12 @@ msgid "" "... weight_female.pdf(wt) * foot_size_female.pdf(fs))" msgstr "" -#: ../../library/statistics.rst:1172 msgid "" "The final prediction goes to the largest posterior. This is known as the " "`maximum a posteriori `_ or MAP:" msgstr "" -#: ../../library/statistics.rst:1176 msgid "" ">>> 'male' if posterior_male > posterior_female else 'female'\n" "'female'" diff --git a/library/stdtypes.po b/library/stdtypes.po index 40cda4c..6e372a7 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,30 +22,25 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/stdtypes.rst:8 msgid "Built-in Types" msgstr "" -#: ../../library/stdtypes.rst:10 msgid "" "The following sections describe the standard types that are built into the " "interpreter." msgstr "" -#: ../../library/stdtypes.rst:15 msgid "" "The principal built-in types are numerics, sequences, mappings, classes, " "instances and exceptions." msgstr "" -#: ../../library/stdtypes.rst:18 msgid "" "Some collection classes are mutable. The methods that add, subtract, or " "rearrange their members in place, and don't return a specific item, never " "return the collection instance itself but ``None``." msgstr "" -#: ../../library/stdtypes.rst:22 msgid "" "Some operations are supported by several object types; in particular, " "practically all objects can be compared for equality, tested for truth " @@ -55,41 +49,34 @@ msgid "" "used when an object is written by the :func:`print` function." msgstr "" -#: ../../library/stdtypes.rst:32 msgid "Truth Value Testing" msgstr "" -#: ../../library/stdtypes.rst:41 msgid "" -"Any object can be tested for truth value, for use in an :keyword:`if` " -"or :keyword:`while` condition or as operand of the Boolean operations below." +"Any object can be tested for truth value, for use in an :keyword:`if` or :" +"keyword:`while` condition or as operand of the Boolean operations below." msgstr "" -#: ../../library/stdtypes.rst:46 msgid "" -"By default, an object is considered true unless its class defines either " -"a :meth:`~object.__bool__` method that returns ``False`` or " -"a :meth:`~object.__len__` method that returns zero, when called with the " -"object. [1]_ Here are most of the built-in objects considered false:" +"By default, an object is considered true unless its class defines either a :" +"meth:`~object.__bool__` method that returns ``False`` or a :meth:`~object." +"__len__` method that returns zero, when called with the object. [1]_ Here " +"are most of the built-in objects considered false:" msgstr "" -#: ../../library/stdtypes.rst:56 msgid "constants defined to be false: ``None`` and ``False``" msgstr "" -#: ../../library/stdtypes.rst:58 msgid "" "zero of any numeric type: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" msgstr "" -#: ../../library/stdtypes.rst:61 msgid "" "empty sequences and collections: ``''``, ``()``, ``[]``, ``{}``, ``set()``, " "``range(0)``" msgstr "" -#: ../../library/stdtypes.rst:70 msgid "" "Operations and built-in functions that have a Boolean result always return " "``0`` or ``False`` for false and ``1`` or ``True`` for true, unless " @@ -97,109 +84,69 @@ msgid "" "``and`` always return one of their operands.)" msgstr "" -#: ../../library/stdtypes.rst:79 msgid "Boolean Operations --- :keyword:`!and`, :keyword:`!or`, :keyword:`!not`" msgstr "" -#: ../../library/stdtypes.rst:83 msgid "These are the Boolean operations, ordered by ascending priority:" msgstr "" -#: ../../library/stdtypes.rst:86 ../../library/stdtypes.rst:144 -#: ../../library/stdtypes.rst:282 ../../library/stdtypes.rst:372 -#: ../../library/stdtypes.rst:422 ../../library/stdtypes.rst:1007 -#: ../../library/stdtypes.rst:1215 msgid "Operation" msgstr "" -#: ../../library/stdtypes.rst:86 ../../library/stdtypes.rst:282 -#: ../../library/stdtypes.rst:372 ../../library/stdtypes.rst:422 -#: ../../library/stdtypes.rst:1007 ../../library/stdtypes.rst:1215 msgid "Result" msgstr "" -#: ../../library/stdtypes.rst:86 ../../library/stdtypes.rst:282 -#: ../../library/stdtypes.rst:422 ../../library/stdtypes.rst:1007 -#: ../../library/stdtypes.rst:1215 ../../library/stdtypes.rst:2772 -#: ../../library/stdtypes.rst:4031 msgid "Notes" msgstr "" -#: ../../library/stdtypes.rst:88 msgid "``x or y``" msgstr "" -#: ../../library/stdtypes.rst:88 msgid "if *x* is true, then *x*, else *y*" msgstr "" -#: ../../library/stdtypes.rst:88 ../../library/stdtypes.rst:1009 -#: ../../library/stdtypes.rst:1012 ../../library/stdtypes.rst:1230 -#: ../../library/stdtypes.rst:2778 ../../library/stdtypes.rst:4037 msgid "\\(1)" msgstr "" -#: ../../library/stdtypes.rst:91 msgid "``x and y``" msgstr "" -#: ../../library/stdtypes.rst:91 msgid "if *x* is false, then *x*, else *y*" msgstr "" -#: ../../library/stdtypes.rst:91 ../../library/stdtypes.rst:295 -#: ../../library/stdtypes.rst:315 ../../library/stdtypes.rst:1258 -#: ../../library/stdtypes.rst:2782 ../../library/stdtypes.rst:2784 -#: ../../library/stdtypes.rst:4041 ../../library/stdtypes.rst:4043 msgid "\\(2)" msgstr "" -#: ../../library/stdtypes.rst:94 msgid "``not x``" msgstr "" -#: ../../library/stdtypes.rst:94 msgid "if *x* is false, then ``True``, else ``False``" msgstr "" -#: ../../library/stdtypes.rst:94 ../../library/stdtypes.rst:1261 -#: ../../library/stdtypes.rst:2786 ../../library/stdtypes.rst:2788 -#: ../../library/stdtypes.rst:2790 ../../library/stdtypes.rst:2792 -#: ../../library/stdtypes.rst:4045 ../../library/stdtypes.rst:4047 -#: ../../library/stdtypes.rst:4049 ../../library/stdtypes.rst:4051 msgid "\\(3)" msgstr "" -#: ../../library/stdtypes.rst:103 ../../library/stdtypes.rst:326 -#: ../../library/stdtypes.rst:440 ../../library/stdtypes.rst:1058 -#: ../../library/stdtypes.rst:1270 ../../library/stdtypes.rst:2818 -#: ../../library/stdtypes.rst:4081 msgid "Notes:" msgstr "" -#: ../../library/stdtypes.rst:106 msgid "" "This is a short-circuit operator, so it only evaluates the second argument " "if the first one is false." msgstr "" -#: ../../library/stdtypes.rst:110 msgid "" "This is a short-circuit operator, so it only evaluates the second argument " "if the first one is true." msgstr "" -#: ../../library/stdtypes.rst:114 msgid "" "``not`` has a lower priority than non-Boolean operators, so ``not a == b`` " "is interpreted as ``not (a == b)``, and ``a == not b`` is a syntax error." msgstr "" -#: ../../library/stdtypes.rst:121 msgid "Comparisons" msgstr "" -#: ../../library/stdtypes.rst:135 msgid "" "There are eight comparison operations in Python. They all have the same " "priority (which is higher than that of the Boolean operations). Comparisons " @@ -208,81 +155,60 @@ msgid "" "*z* is not evaluated at all when ``x < y`` is found to be false)." msgstr "" -#: ../../library/stdtypes.rst:141 msgid "This table summarizes the comparison operations:" msgstr "" -#: ../../library/stdtypes.rst:144 ../../library/stdtypes.rst:2604 -#: ../../library/stdtypes.rst:2749 ../../library/stdtypes.rst:2772 -#: ../../library/stdtypes.rst:4008 ../../library/stdtypes.rst:4031 msgid "Meaning" msgstr "Jelentés" -#: ../../library/stdtypes.rst:146 msgid "``<``" -msgstr "``<``" +msgstr "" -#: ../../library/stdtypes.rst:146 msgid "strictly less than" msgstr "" -#: ../../library/stdtypes.rst:148 msgid "``<=``" -msgstr "``<=``" +msgstr "" -#: ../../library/stdtypes.rst:148 msgid "less than or equal" msgstr "" -#: ../../library/stdtypes.rst:150 msgid "``>``" -msgstr "``>``" +msgstr "" -#: ../../library/stdtypes.rst:150 msgid "strictly greater than" msgstr "" -#: ../../library/stdtypes.rst:152 msgid "``>=``" -msgstr "``>=``" +msgstr "" -#: ../../library/stdtypes.rst:152 msgid "greater than or equal" msgstr "" -#: ../../library/stdtypes.rst:154 msgid "``==``" -msgstr "``==``" +msgstr "" -#: ../../library/stdtypes.rst:154 msgid "equal" msgstr "" -#: ../../library/stdtypes.rst:156 msgid "``!=``" -msgstr "``!=``" +msgstr "" -#: ../../library/stdtypes.rst:156 msgid "not equal" msgstr "" -#: ../../library/stdtypes.rst:158 msgid "``is``" msgstr "" -#: ../../library/stdtypes.rst:158 msgid "object identity" msgstr "" -#: ../../library/stdtypes.rst:160 msgid "``is not``" msgstr "" -#: ../../library/stdtypes.rst:160 msgid "negated object identity" msgstr "" -#: ../../library/stdtypes.rst:167 msgid "" "Objects of different types, except different numeric types, never compare " "equal. The ``==`` operator is always defined but for some object types (for " @@ -292,58 +218,49 @@ msgid "" "is a complex number." msgstr "" -#: ../../library/stdtypes.rst:181 msgid "" "Non-identical instances of a class normally compare as non-equal unless the " "class defines the :meth:`~object.__eq__` method." msgstr "" -#: ../../library/stdtypes.rst:184 msgid "" "Instances of a class cannot be ordered with respect to other instances of " "the same class, or other types of object, unless the class defines enough of " -"the " -"methods :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " -"and :meth:`~object.__ge__` (in general, :meth:`~object.__lt__` " -"and :meth:`~object.__eq__` are sufficient, if you want the conventional " -"meanings of the comparison operators)." +"the methods :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object." +"__gt__`, and :meth:`~object.__ge__` (in general, :meth:`~object.__lt__` and :" +"meth:`~object.__eq__` are sufficient, if you want the conventional meanings " +"of the comparison operators)." msgstr "" -#: ../../library/stdtypes.rst:191 msgid "" "The behavior of the :keyword:`is` and :keyword:`is not` operators cannot be " "customized; also they can be applied to any two objects and never raise an " "exception." msgstr "" -#: ../../library/stdtypes.rst:199 msgid "" -"Two more operations with the same syntactic priority, :keyword:`in` " -"and :keyword:`not in`, are supported by types that are :term:`iterable` or " +"Two more operations with the same syntactic priority, :keyword:`in` and :" +"keyword:`not in`, are supported by types that are :term:`iterable` or " "implement the :meth:`~object.__contains__` method." msgstr "" -#: ../../library/stdtypes.rst:206 msgid "Numeric Types --- :class:`int`, :class:`float`, :class:`complex`" msgstr "" -#: ../../library/stdtypes.rst:216 msgid "" "There are three distinct numeric types: :dfn:`integers`, :dfn:`floating-" "point numbers`, and :dfn:`complex numbers`. In addition, Booleans are a " "subtype of integers. Integers have unlimited precision. Floating-point " "numbers are usually implemented using :c:expr:`double` in C; information " "about the precision and internal representation of floating-point numbers " -"for the machine on which your program is running is available " -"in :data:`sys.float_info`. Complex numbers have a real and imaginary part, " -"which are each a floating-point number. To extract these parts from a " -"complex number *z*, use ``z.real`` and ``z.imag``. (The standard library " -"includes the additional numeric types :mod:`fractions.Fraction`, for " -"rationals, and :mod:`decimal.Decimal`, for floating-point numbers with user-" -"definable precision.)" +"for the machine on which your program is running is available in :data:`sys." +"float_info`. Complex numbers have a real and imaginary part, which are each " +"a floating-point number. To extract these parts from a complex number *z*, " +"use ``z.real`` and ``z.imag``. (The standard library includes the additional " +"numeric types :mod:`fractions.Fraction`, for rationals, and :mod:`decimal." +"Decimal`, for floating-point numbers with user-definable precision.)" msgstr "" -#: ../../library/stdtypes.rst:238 msgid "" "Numbers are created by numeric literals or as the result of built-in " "functions and operators. Unadorned integer literals (including hex, octal " @@ -354,13 +271,11 @@ msgid "" "complex number with real and imaginary parts." msgstr "" -#: ../../library/stdtypes.rst:246 msgid "" "The constructors :func:`int`, :func:`float`, and :func:`complex` can be used " "to produce numbers of a specific type." msgstr "" -#: ../../library/stdtypes.rst:266 msgid "" "Python fully supports mixed arithmetic: when a binary arithmetic operator " "has operands of different numeric types, the operand with the \"narrower\" " @@ -369,204 +284,152 @@ msgid "" "usual mathematical formula, for example::" msgstr "" -#: ../../library/stdtypes.rst:272 msgid "" "x + complex(u, v) = complex(x + u, v)\n" "x * complex(u, v) = complex(x * u, x * v)" msgstr "" -#: ../../library/stdtypes.rst:275 msgid "" "A comparison between numbers of different types behaves as though the exact " "values of those numbers were being compared. [2]_" msgstr "" -#: ../../library/stdtypes.rst:278 msgid "" "All numeric types (except complex) support the following operations (for " "priorities of the operations, see :ref:`operator-summary`):" msgstr "" -#: ../../library/stdtypes.rst:282 msgid "Full documentation" msgstr "" -#: ../../library/stdtypes.rst:284 msgid "``x + y``" msgstr "" -#: ../../library/stdtypes.rst:284 msgid "sum of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:286 msgid "``x - y``" msgstr "" -#: ../../library/stdtypes.rst:286 msgid "difference of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:288 msgid "``x * y``" msgstr "" -#: ../../library/stdtypes.rst:288 msgid "product of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:290 msgid "``x / y``" msgstr "" -#: ../../library/stdtypes.rst:290 msgid "quotient of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:292 msgid "``x // y``" msgstr "" -#: ../../library/stdtypes.rst:292 msgid "floored quotient of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:292 msgid "\\(1)\\(2)" msgstr "" -#: ../../library/stdtypes.rst:295 msgid "``x % y``" msgstr "" -#: ../../library/stdtypes.rst:295 msgid "remainder of ``x / y``" msgstr "" -#: ../../library/stdtypes.rst:297 msgid "``-x``" msgstr "" -#: ../../library/stdtypes.rst:297 msgid "*x* negated" msgstr "" -#: ../../library/stdtypes.rst:299 msgid "``+x``" msgstr "" -#: ../../library/stdtypes.rst:299 msgid "*x* unchanged" msgstr "" -#: ../../library/stdtypes.rst:301 msgid "``abs(x)``" msgstr "" -#: ../../library/stdtypes.rst:301 msgid "absolute value or magnitude of *x*" msgstr "" -#: ../../library/stdtypes.rst:301 msgid ":func:`abs`" msgstr "" -#: ../../library/stdtypes.rst:304 msgid "``int(x)``" msgstr "" -#: ../../library/stdtypes.rst:304 msgid "*x* converted to integer" msgstr "" -#: ../../library/stdtypes.rst:304 msgid "\\(3)\\(6)" msgstr "" -#: ../../library/stdtypes.rst:304 msgid ":func:`int`" msgstr "" -#: ../../library/stdtypes.rst:306 msgid "``float(x)``" msgstr "" -#: ../../library/stdtypes.rst:306 msgid "*x* converted to floating point" msgstr "" -#: ../../library/stdtypes.rst:306 msgid "\\(4)\\(6)" msgstr "" -#: ../../library/stdtypes.rst:306 msgid ":func:`float`" msgstr "" -#: ../../library/stdtypes.rst:308 msgid "``complex(re, im)``" msgstr "" -#: ../../library/stdtypes.rst:308 msgid "" "a complex number with real part *re*, imaginary part *im*. *im* defaults to " "zero." msgstr "" -#: ../../library/stdtypes.rst:308 ../../library/stdtypes.rst:1251 -#: ../../library/stdtypes.rst:2780 ../../library/stdtypes.rst:4068 msgid "\\(6)" msgstr "" -#: ../../library/stdtypes.rst:308 msgid ":func:`complex`" msgstr "" -#: ../../library/stdtypes.rst:312 msgid "``c.conjugate()``" msgstr "" -#: ../../library/stdtypes.rst:312 msgid "conjugate of the complex number *c*" msgstr "" -#: ../../library/stdtypes.rst:315 msgid "``divmod(x, y)``" msgstr "" -#: ../../library/stdtypes.rst:315 msgid "the pair ``(x // y, x % y)``" msgstr "" -#: ../../library/stdtypes.rst:315 msgid ":func:`divmod`" msgstr "" -#: ../../library/stdtypes.rst:317 msgid "``pow(x, y)``" msgstr "" -#: ../../library/stdtypes.rst:317 ../../library/stdtypes.rst:319 msgid "*x* to the power *y*" msgstr "" -#: ../../library/stdtypes.rst:317 ../../library/stdtypes.rst:319 -#: ../../library/stdtypes.rst:1240 ../../library/stdtypes.rst:1243 -#: ../../library/stdtypes.rst:2805 ../../library/stdtypes.rst:2808 -#: ../../library/stdtypes.rst:2811 ../../library/stdtypes.rst:4064 -#: ../../library/stdtypes.rst:4071 msgid "\\(5)" msgstr "" -#: ../../library/stdtypes.rst:317 msgid ":func:`pow`" msgstr "" -#: ../../library/stdtypes.rst:319 msgid "``x ** y``" msgstr "" -#: ../../library/stdtypes.rst:329 msgid "" "Also referred to as integer division. For operands of type :class:`int`, " "the result has type :class:`int`. For operands of type :class:`float`, the " @@ -576,102 +439,83 @@ msgid "" "``-1``, ``1//(-2)`` is ``-1``, and ``(-1)//(-2)`` is ``0``." msgstr "" -#: ../../library/stdtypes.rst:337 msgid "" "Not for complex numbers. Instead convert to floats using :func:`abs` if " "appropriate." msgstr "" -#: ../../library/stdtypes.rst:348 msgid "" "Conversion from :class:`float` to :class:`int` truncates, discarding the " "fractional part. See functions :func:`math.floor` and :func:`math.ceil` for " "alternative conversions." msgstr "" -#: ../../library/stdtypes.rst:353 msgid "" "float also accepts the strings \"nan\" and \"inf\" with an optional prefix " "\"+\" or \"-\" for Not a Number (NaN) and positive or negative infinity." msgstr "" -#: ../../library/stdtypes.rst:357 msgid "" "Python defines ``pow(0, 0)`` and ``0 ** 0`` to be ``1``, as is common for " "programming languages." msgstr "" -#: ../../library/stdtypes.rst:361 msgid "" "The numeric literals accepted include the digits ``0`` to ``9`` or any " "Unicode equivalent (code points with the ``Nd`` property)." msgstr "" -#: ../../library/stdtypes.rst:364 msgid "" "See `the Unicode Standard `_ for a complete list of code points with the ``Nd`` " "property." msgstr "" -#: ../../library/stdtypes.rst:368 msgid "" "All :class:`numbers.Real` types (:class:`int` and :class:`float`) also " "include the following operations:" msgstr "" -#: ../../library/stdtypes.rst:374 msgid ":func:`math.trunc(\\ x) `" msgstr "" -#: ../../library/stdtypes.rst:374 msgid "*x* truncated to :class:`~numbers.Integral`" msgstr "" -#: ../../library/stdtypes.rst:377 msgid ":func:`round(x[, n]) `" msgstr "" -#: ../../library/stdtypes.rst:377 msgid "" "*x* rounded to *n* digits, rounding half to even. If *n* is omitted, it " "defaults to 0." msgstr "" -#: ../../library/stdtypes.rst:381 msgid ":func:`math.floor(\\ x) `" msgstr "" -#: ../../library/stdtypes.rst:381 msgid "the greatest :class:`~numbers.Integral` <= *x*" msgstr "" -#: ../../library/stdtypes.rst:384 msgid ":func:`math.ceil(x) `" msgstr "" -#: ../../library/stdtypes.rst:384 msgid "the least :class:`~numbers.Integral` >= *x*" msgstr "" -#: ../../library/stdtypes.rst:388 msgid "" "For additional numeric operations see the :mod:`math` and :mod:`cmath` " "modules." msgstr "" -#: ../../library/stdtypes.rst:397 msgid "Bitwise Operations on Integer Types" msgstr "" -#: ../../library/stdtypes.rst:411 msgid "" "Bitwise operations only make sense for integers. The result of bitwise " "operations is calculated as though carried out in two's complement with an " "infinite number of sign bits." msgstr "" -#: ../../library/stdtypes.rst:415 msgid "" "The priorities of the binary bitwise operations are all lower than the " "numeric operations and higher than the comparisons; the unary operation " @@ -679,113 +523,86 @@ msgid "" "``-``)." msgstr "" -#: ../../library/stdtypes.rst:419 msgid "This table lists the bitwise operations sorted in ascending priority:" msgstr "" -#: ../../library/stdtypes.rst:424 msgid "``x | y``" msgstr "" -#: ../../library/stdtypes.rst:424 msgid "bitwise :dfn:`or` of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:424 ../../library/stdtypes.rst:427 -#: ../../library/stdtypes.rst:430 ../../library/stdtypes.rst:1265 -#: ../../library/stdtypes.rst:2794 ../../library/stdtypes.rst:2798 -#: ../../library/stdtypes.rst:4053 ../../library/stdtypes.rst:4057 msgid "\\(4)" msgstr "" -#: ../../library/stdtypes.rst:427 msgid "``x ^ y``" msgstr "" -#: ../../library/stdtypes.rst:427 msgid "bitwise :dfn:`exclusive or` of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:430 msgid "``x & y``" msgstr "" -#: ../../library/stdtypes.rst:430 msgid "bitwise :dfn:`and` of *x* and *y*" msgstr "" -#: ../../library/stdtypes.rst:433 msgid "``x << n``" msgstr "" -#: ../../library/stdtypes.rst:433 msgid "*x* shifted left by *n* bits" msgstr "" -#: ../../library/stdtypes.rst:433 msgid "(1)(2)" msgstr "" -#: ../../library/stdtypes.rst:435 msgid "``x >> n``" msgstr "" -#: ../../library/stdtypes.rst:435 msgid "*x* shifted right by *n* bits" msgstr "" -#: ../../library/stdtypes.rst:435 msgid "(1)(3)" msgstr "" -#: ../../library/stdtypes.rst:437 msgid "``~x``" msgstr "" -#: ../../library/stdtypes.rst:437 msgid "the bits of *x* inverted" msgstr "" -#: ../../library/stdtypes.rst:443 msgid "" "Negative shift counts are illegal and cause a :exc:`ValueError` to be raised." msgstr "" -#: ../../library/stdtypes.rst:446 msgid "" "A left shift by *n* bits is equivalent to multiplication by ``pow(2, n)``." msgstr "" -#: ../../library/stdtypes.rst:449 msgid "" "A right shift by *n* bits is equivalent to floor division by ``pow(2, n)``." msgstr "" -#: ../../library/stdtypes.rst:452 msgid "" "Performing these calculations with at least one extra sign extension bit in " -"a finite two's complement representation (a working bit-width of ``1 + " -"max(x.bit_length(), y.bit_length())`` or more) is sufficient to get the same " +"a finite two's complement representation (a working bit-width of ``1 + max(x." +"bit_length(), y.bit_length())`` or more) is sufficient to get the same " "result as if there were an infinite number of sign bits." msgstr "" -#: ../../library/stdtypes.rst:459 msgid "Additional Methods on Integer Types" msgstr "" -#: ../../library/stdtypes.rst:461 msgid "" "The int type implements the :class:`numbers.Integral` :term:`abstract base " "class`. In addition, it provides a few more methods:" msgstr "" -#: ../../library/stdtypes.rst:466 msgid "" "Return the number of bits necessary to represent an integer in binary, " "excluding the sign and leading zeros::" msgstr "" -#: ../../library/stdtypes.rst:469 msgid "" ">>> n = -37\n" ">>> bin(n)\n" @@ -794,21 +611,17 @@ msgid "" "6" msgstr "" -#: ../../library/stdtypes.rst:475 msgid "" "More precisely, if ``x`` is nonzero, then ``x.bit_length()`` is the unique " "positive integer ``k`` such that ``2**(k-1) <= abs(x) < 2**k``. " "Equivalently, when ``abs(x)`` is small enough to have a correctly rounded " -"logarithm, then ``k = 1 + int(log(abs(x), 2))``. If ``x`` is zero, then " -"``x.bit_length()`` returns ``0``." +"logarithm, then ``k = 1 + int(log(abs(x), 2))``. If ``x`` is zero, then ``x." +"bit_length()`` returns ``0``." msgstr "" -#: ../../library/stdtypes.rst:481 ../../library/stdtypes.rst:504 -#: ../../library/stdtypes.rst:549 ../../library/stdtypes.rst:593 msgid "Equivalent to::" msgstr "" -#: ../../library/stdtypes.rst:483 msgid "" "def bit_length(self):\n" " s = bin(self) # binary representation: bin(-37) --> '-0b100101'\n" @@ -816,13 +629,11 @@ msgid "" " return len(s) # len('100101') --> 6" msgstr "" -#: ../../library/stdtypes.rst:492 msgid "" "Return the number of ones in the binary representation of the absolute value " "of the integer. This is also known as the population count. Example::" msgstr "" -#: ../../library/stdtypes.rst:496 msgid "" ">>> n = 19\n" ">>> bin(n)\n" @@ -833,24 +644,20 @@ msgid "" "3" msgstr "" -#: ../../library/stdtypes.rst:506 msgid "" "def bit_count(self):\n" " return bin(self).count(\"1\")" msgstr "" -#: ../../library/stdtypes.rst:513 msgid "Return an array of bytes representing an integer." msgstr "" -#: ../../library/stdtypes.rst:525 msgid "" -"The integer is represented using *length* bytes, and defaults to 1. " -"An :exc:`OverflowError` is raised if the integer is not representable with " -"the given number of bytes." +"The integer is represented using *length* bytes, and defaults to 1. An :exc:" +"`OverflowError` is raised if the integer is not representable with the given " +"number of bytes." msgstr "" -#: ../../library/stdtypes.rst:529 msgid "" "The *byteorder* argument determines the byte order used to represent the " "integer, and defaults to ``\"big\"``. If *byteorder* is ``\"big\"``, the " @@ -858,7 +665,6 @@ msgid "" "is ``\"little\"``, the most significant byte is at the end of the byte array." msgstr "" -#: ../../library/stdtypes.rst:535 msgid "" "The *signed* argument determines whether two's complement is used to " "represent the integer. If *signed* is ``False`` and a negative integer is " @@ -866,25 +672,21 @@ msgid "" "``False``." msgstr "" -#: ../../library/stdtypes.rst:540 msgid "" "The default values can be used to conveniently turn an integer into a single " "byte object::" msgstr "" -#: ../../library/stdtypes.rst:543 msgid "" ">>> (65).to_bytes()\n" "b'A'" msgstr "" -#: ../../library/stdtypes.rst:546 msgid "" "However, when using the default arguments, don't try to convert a value " "greater than 255 or you'll get an :exc:`OverflowError`." msgstr "" -#: ../../library/stdtypes.rst:551 msgid "" "def to_bytes(n, length=1, byteorder='big', signed=False):\n" " if byteorder == 'little':\n" @@ -897,37 +699,31 @@ msgid "" " return bytes((n >> i*8) & 0xff for i in order)" msgstr "" -#: ../../library/stdtypes.rst:562 msgid "Added default argument values for ``length`` and ``byteorder``." msgstr "" -#: ../../library/stdtypes.rst:567 msgid "Return the integer represented by the given array of bytes." msgstr "" -#: ../../library/stdtypes.rst:580 msgid "" "The argument *bytes* must either be a :term:`bytes-like object` or an " "iterable producing bytes." msgstr "" -#: ../../library/stdtypes.rst:583 msgid "" "The *byteorder* argument determines the byte order used to represent the " "integer, and defaults to ``\"big\"``. If *byteorder* is ``\"big\"``, the " "most significant byte is at the beginning of the byte array. If *byteorder* " "is ``\"little\"``, the most significant byte is at the end of the byte " -"array. To request the native byte order of the host system, " -"use :data:`sys.byteorder` as the byte order value." +"array. To request the native byte order of the host system, use :data:`sys." +"byteorder` as the byte order value." msgstr "" -#: ../../library/stdtypes.rst:590 msgid "" "The *signed* argument indicates whether two's complement is used to " "represent the integer." msgstr "" -#: ../../library/stdtypes.rst:595 msgid "" "def from_bytes(bytes, byteorder='big', signed=False):\n" " if byteorder == 'little':\n" @@ -944,67 +740,56 @@ msgid "" " return n" msgstr "" -#: ../../library/stdtypes.rst:610 msgid "Added default argument value for ``byteorder``." msgstr "" -#: ../../library/stdtypes.rst:615 msgid "" "Return a pair of integers whose ratio is equal to the original integer and " "has a positive denominator. The integer ratio of integers (whole numbers) " "is always the integer as the numerator and ``1`` as the denominator." msgstr "" -#: ../../library/stdtypes.rst:624 msgid "" -"Returns ``True``. Exists for duck type compatibility " -"with :meth:`float.is_integer`." +"Returns ``True``. Exists for duck type compatibility with :meth:`float." +"is_integer`." msgstr "" -#: ../../library/stdtypes.rst:629 msgid "Additional Methods on Float" msgstr "" -#: ../../library/stdtypes.rst:631 msgid "" "The float type implements the :class:`numbers.Real` :term:`abstract base " "class`. float also has the following additional methods." msgstr "" -#: ../../library/stdtypes.rst:636 msgid "" "Class method to return a floating-point number constructed from a number *x*." msgstr "" -#: ../../library/stdtypes.rst:638 msgid "" "If the argument is an integer or a floating-point number, a floating-point " "number with the same value (within Python's floating-point precision) is " -"returned. If the argument is outside the range of a Python float, " -"an :exc:`OverflowError` will be raised." +"returned. If the argument is outside the range of a Python float, an :exc:" +"`OverflowError` will be raised." msgstr "" -#: ../../library/stdtypes.rst:643 msgid "" -"For a general Python object ``x``, ``float.from_number(x)`` delegates to " -"``x.__float__()``. If :meth:`~object.__float__` is not defined then it falls " +"For a general Python object ``x``, ``float.from_number(x)`` delegates to ``x." +"__float__()``. If :meth:`~object.__float__` is not defined then it falls " "back to :meth:`~object.__index__`." msgstr "" -#: ../../library/stdtypes.rst:653 msgid "" "Return a pair of integers whose ratio is exactly equal to the original " -"float. The ratio is in lowest terms and has a positive denominator. " -"Raises :exc:`OverflowError` on infinities and a :exc:`ValueError` on NaNs." +"float. The ratio is in lowest terms and has a positive denominator. Raises :" +"exc:`OverflowError` on infinities and a :exc:`ValueError` on NaNs." msgstr "" -#: ../../library/stdtypes.rst:660 msgid "" "Return ``True`` if the float instance is finite with integral value, and " "``False`` otherwise::" msgstr "" -#: ../../library/stdtypes.rst:663 msgid "" ">>> (-2.0).is_integer()\n" "True\n" @@ -1012,7 +797,6 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:668 msgid "" "Two methods support conversion to and from hexadecimal strings. Since " "Python's floats are stored internally as binary numbers, converting a float " @@ -1022,34 +806,28 @@ msgid "" "numerical work." msgstr "" -#: ../../library/stdtypes.rst:679 msgid "" "Return a representation of a floating-point number as a hexadecimal string. " "For finite floating-point numbers, this representation will always include a " "leading ``0x`` and a trailing ``p`` and exponent." msgstr "" -#: ../../library/stdtypes.rst:687 msgid "" "Class method to return the float represented by a hexadecimal string *s*. " "The string *s* may have leading and trailing whitespace." msgstr "" -#: ../../library/stdtypes.rst:692 msgid "" -"Note that :meth:`float.hex` is an instance method, " -"while :meth:`float.fromhex` is a class method." +"Note that :meth:`float.hex` is an instance method, while :meth:`float." +"fromhex` is a class method." msgstr "" -#: ../../library/stdtypes.rst:695 msgid "A hexadecimal string takes the form::" msgstr "" -#: ../../library/stdtypes.rst:697 msgid "[sign] ['0x'] integer ['.' fraction] ['p' exponent]" msgstr "" -#: ../../library/stdtypes.rst:699 msgid "" "where the optional ``sign`` may by either ``+`` or ``-``, ``integer`` and " "``fraction`` are strings of hexadecimal digits, and ``exponent`` is a " @@ -1063,7 +841,6 @@ msgid "" "by :meth:`float.fromhex`." msgstr "" -#: ../../library/stdtypes.rst:712 msgid "" "Note that the exponent is written in decimal rather than hexadecimal, and " "that it gives the power of 2 by which to multiply the coefficient. For " @@ -1071,40 +848,33 @@ msgid "" "number ``(3 + 10./16 + 7./16**2) * 2.0**10``, or ``3740.0``::" msgstr "" -#: ../../library/stdtypes.rst:718 msgid "" ">>> float.fromhex('0x3.a7p10')\n" "3740.0" msgstr "" -#: ../../library/stdtypes.rst:722 msgid "" "Applying the reverse conversion to ``3740.0`` gives a different hexadecimal " "string representing the same number::" msgstr "" -#: ../../library/stdtypes.rst:725 msgid "" ">>> float.hex(3740.0)\n" "'0x1.d380000000000p+11'" msgstr "" -#: ../../library/stdtypes.rst:730 msgid "Additional Methods on Complex" msgstr "" -#: ../../library/stdtypes.rst:732 msgid "" -"The :class:`!complex` type implements " -"the :class:`numbers.Complex` :term:`abstract base class`. :class:`!complex` " -"also has the following additional methods." +"The :class:`!complex` type implements the :class:`numbers.Complex` :term:" +"`abstract base class`. :class:`!complex` also has the following additional " +"methods." msgstr "" -#: ../../library/stdtypes.rst:738 msgid "Class method to convert a number to a complex number." msgstr "" -#: ../../library/stdtypes.rst:740 msgid "" "For a general Python object ``x``, ``complex.from_number(x)`` delegates to " "``x.__complex__()``. If :meth:`~object.__complex__` is not defined then it " @@ -1112,45 +882,38 @@ msgid "" "defined then it falls back to :meth:`~object.__index__`." msgstr "" -#: ../../library/stdtypes.rst:751 msgid "Hashing of numeric types" msgstr "" -#: ../../library/stdtypes.rst:753 msgid "" "For numbers ``x`` and ``y``, possibly of different types, it's a requirement " -"that ``hash(x) == hash(y)`` whenever ``x == y`` (see " -"the :meth:`~object.__hash__` method documentation for more details). For " -"ease of implementation and efficiency across a variety of numeric types " -"(including :class:`int`, :class:`float`, :class:`decimal.Decimal` " -"and :class:`fractions.Fraction`) Python's hash for numeric types is based on " -"a single mathematical function that's defined for any rational number, and " -"hence applies to all instances of :class:`int` " -"and :class:`fractions.Fraction`, and all finite instances of :class:`float` " -"and :class:`decimal.Decimal`. Essentially, this function is given by " -"reduction modulo ``P`` for a fixed prime ``P``. The value of ``P`` is made " -"available to Python as the :attr:`~sys.hash_info.modulus` attribute " -"of :data:`sys.hash_info`." -msgstr "" - -#: ../../library/stdtypes.rst:768 +"that ``hash(x) == hash(y)`` whenever ``x == y`` (see the :meth:`~object." +"__hash__` method documentation for more details). For ease of " +"implementation and efficiency across a variety of numeric types (including :" +"class:`int`, :class:`float`, :class:`decimal.Decimal` and :class:`fractions." +"Fraction`) Python's hash for numeric types is based on a single mathematical " +"function that's defined for any rational number, and hence applies to all " +"instances of :class:`int` and :class:`fractions.Fraction`, and all finite " +"instances of :class:`float` and :class:`decimal.Decimal`. Essentially, this " +"function is given by reduction modulo ``P`` for a fixed prime ``P``. The " +"value of ``P`` is made available to Python as the :attr:`~sys.hash_info." +"modulus` attribute of :data:`sys.hash_info`." +msgstr "" + msgid "" "Currently, the prime used is ``P = 2**31 - 1`` on machines with 32-bit C " "longs and ``P = 2**61 - 1`` on machines with 64-bit C longs." msgstr "" -#: ../../library/stdtypes.rst:771 msgid "Here are the rules in detail:" msgstr "" -#: ../../library/stdtypes.rst:773 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is not divisible " "by ``P``, define ``hash(x)`` as ``m * invmod(n, P) % P``, where ``invmod(n, " "P)`` gives the inverse of ``n`` modulo ``P``." msgstr "" -#: ../../library/stdtypes.rst:777 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is divisible by " "``P`` (but ``m`` is not) then ``n`` has no inverse modulo ``P`` and the rule " @@ -1158,37 +921,31 @@ msgid "" "value ``sys.hash_info.inf``." msgstr "" -#: ../../library/stdtypes.rst:782 msgid "" "If ``x = m / n`` is a negative rational number define ``hash(x)`` as ``-" "hash(-x)``. If the resulting hash is ``-1``, replace it with ``-2``." msgstr "" -#: ../../library/stdtypes.rst:786 msgid "" "The particular values ``sys.hash_info.inf`` and ``-sys.hash_info.inf`` are " "used as hash values for positive infinity or negative infinity " "(respectively)." msgstr "" -#: ../../library/stdtypes.rst:790 msgid "" "For a :class:`complex` number ``z``, the hash values of the real and " -"imaginary parts are combined by computing ``hash(z.real) + " -"sys.hash_info.imag * hash(z.imag)``, reduced modulo " -"``2**sys.hash_info.width`` so that it lies in " -"``range(-2**(sys.hash_info.width - 1), 2**(sys.hash_info.width - 1))``. " -"Again, if the result is ``-1``, it's replaced with ``-2``." +"imaginary parts are combined by computing ``hash(z.real) + sys.hash_info." +"imag * hash(z.imag)``, reduced modulo ``2**sys.hash_info.width`` so that it " +"lies in ``range(-2**(sys.hash_info.width - 1), 2**(sys.hash_info.width - " +"1))``. Again, if the result is ``-1``, it's replaced with ``-2``." msgstr "" -#: ../../library/stdtypes.rst:798 msgid "" "To clarify the above rules, here's some example Python code, equivalent to " -"the built-in hash, for computing the hash of a rational " -"number, :class:`float`, or :class:`complex`::" +"the built-in hash, for computing the hash of a rational number, :class:" +"`float`, or :class:`complex`::" msgstr "" -#: ../../library/stdtypes.rst:803 msgid "" "import sys, math\n" "\n" @@ -1230,8 +987,8 @@ msgid "" "def hash_complex(z):\n" " \"\"\"Compute the hash of a complex number z.\"\"\"\n" "\n" -" hash_value = hash_float(z.real) + sys.hash_info.imag * " -"hash_float(z.imag)\n" +" hash_value = hash_float(z.real) + sys.hash_info.imag * hash_float(z." +"imag)\n" " # do a signed reduction modulo 2**sys.hash_info.width\n" " M = 2**(sys.hash_info.width - 1)\n" " hash_value = (hash_value & (M - 1)) - (hash_value & M)\n" @@ -1240,23 +997,19 @@ msgid "" " return hash_value" msgstr "" -#: ../../library/stdtypes.rst:854 msgid "Boolean Type - :class:`bool`" msgstr "" -#: ../../library/stdtypes.rst:856 msgid "" "Booleans represent truth values. The :class:`bool` type has exactly two " "constant instances: ``True`` and ``False``." msgstr "" -#: ../../library/stdtypes.rst:864 msgid "" "The built-in function :func:`bool` converts any value to a boolean, if the " "value can be interpreted as a truth value (see section :ref:`truth` above)." msgstr "" -#: ../../library/stdtypes.rst:867 msgid "" "For logical operations, use the :ref:`boolean operators ` ``and``, " "``or`` and ``not``. When applying the bitwise operators ``&``, ``|``, ``^`` " @@ -1265,13 +1018,11 @@ msgid "" "``!=`` should be preferred over ``&``, ``|`` and ``^``." msgstr "" -#: ../../library/stdtypes.rst:876 msgid "" "The use of the bitwise inversion operator ``~`` is deprecated and will raise " "an error in Python 3.16." msgstr "" -#: ../../library/stdtypes.rst:879 msgid "" ":class:`bool` is a subclass of :class:`int` (see :ref:`typesnumeric`). In " "many numeric contexts, ``False`` and ``True`` behave like the integers 0 and " @@ -1279,11 +1030,9 @@ msgid "" "using :func:`int` instead." msgstr "" -#: ../../library/stdtypes.rst:887 msgid "Iterator Types" msgstr "" -#: ../../library/stdtypes.rst:895 msgid "" "Python supports a concept of iteration over containers. This is implemented " "using two distinct methods; these are used to allow user-defined classes to " @@ -1291,40 +1040,34 @@ msgid "" "support the iteration methods." msgstr "" -#: ../../library/stdtypes.rst:900 msgid "" -"One method needs to be defined for container objects to " -"provide :term:`iterable` support:" +"One method needs to be defined for container objects to provide :term:" +"`iterable` support:" msgstr "" -#: ../../library/stdtypes.rst:907 msgid "" "Return an :term:`iterator` object. The object is required to support the " "iterator protocol described below. If a container supports different types " "of iteration, additional methods can be provided to specifically request " "iterators for those iteration types. (An example of an object supporting " "multiple forms of iteration would be a tree structure which supports both " -"breadth-first and depth-first traversal.) This method corresponds to " -"the :c:member:`~PyTypeObject.tp_iter` slot of the type structure for Python " -"objects in the Python/C API." +"breadth-first and depth-first traversal.) This method corresponds to the :c:" +"member:`~PyTypeObject.tp_iter` slot of the type structure for Python objects " +"in the Python/C API." msgstr "" -#: ../../library/stdtypes.rst:916 msgid "" "The iterator objects themselves are required to support the following two " "methods, which together form the :dfn:`iterator protocol`:" msgstr "" -#: ../../library/stdtypes.rst:922 msgid "" "Return the :term:`iterator` object itself. This is required to allow both " -"containers and iterators to be used with the :keyword:`for` " -"and :keyword:`in` statements. This method corresponds to " -"the :c:member:`~PyTypeObject.tp_iter` slot of the type structure for Python " -"objects in the Python/C API." +"containers and iterators to be used with the :keyword:`for` and :keyword:" +"`in` statements. This method corresponds to the :c:member:`~PyTypeObject." +"tp_iter` slot of the type structure for Python objects in the Python/C API." msgstr "" -#: ../../library/stdtypes.rst:931 msgid "" "Return the next item from the :term:`iterator`. If there are no further " "items, raise the :exc:`StopIteration` exception. This method corresponds to " @@ -1332,7 +1075,6 @@ msgid "" "Python objects in the Python/C API." msgstr "" -#: ../../library/stdtypes.rst:936 msgid "" "Python defines several iterator objects to support iteration over general " "and specific sequence types, dictionaries, and other more specialized " @@ -1340,33 +1082,28 @@ msgid "" "the iterator protocol." msgstr "" -#: ../../library/stdtypes.rst:941 msgid "" -"Once an iterator's :meth:`~iterator.__next__` method " -"raises :exc:`StopIteration`, it must continue to do so on subsequent calls. " +"Once an iterator's :meth:`~iterator.__next__` method raises :exc:" +"`StopIteration`, it must continue to do so on subsequent calls. " "Implementations that do not obey this property are deemed broken." msgstr "" -#: ../../library/stdtypes.rst:949 msgid "Generator Types" msgstr "" -#: ../../library/stdtypes.rst:951 msgid "" "Python's :term:`generator`\\s provide a convenient way to implement the " "iterator protocol. If a container object's :meth:`~object.__iter__` method " "is implemented as a generator, it will automatically return an iterator " -"object (technically, a generator object) supplying " -"the :meth:`~iterator.__iter__` and :meth:`~generator.__next__` methods. More " -"information about generators can be found in :ref:`the documentation for the " -"yield expression `." +"object (technically, a generator object) supplying the :meth:`~iterator." +"__iter__` and :meth:`~generator.__next__` methods. More information about " +"generators can be found in :ref:`the documentation for the yield expression " +"`." msgstr "" -#: ../../library/stdtypes.rst:963 msgid "Sequence Types --- :class:`list`, :class:`tuple`, :class:`range`" msgstr "" -#: ../../library/stdtypes.rst:965 msgid "" "There are three basic sequence types: lists, tuples, and range objects. " "Additional sequence types tailored for processing of :ref:`binary data " @@ -1374,11 +1111,9 @@ msgid "" "sections." msgstr "" -#: ../../library/stdtypes.rst:974 msgid "Common Sequence Operations" msgstr "" -#: ../../library/stdtypes.rst:978 msgid "" "The operations in the following table are supported by most sequence types, " "both mutable and immutable. The :class:`collections.abc.Sequence` ABC is " @@ -1386,7 +1121,6 @@ msgid "" "sequence types." msgstr "" -#: ../../library/stdtypes.rst:983 msgid "" "This table lists the sequence operations sorted in ascending priority. In " "the table, *s* and *t* are sequences of the same type, *n*, *i*, *j* and *k* " @@ -1394,7 +1128,6 @@ msgid "" "restrictions imposed by *s*." msgstr "" -#: ../../library/stdtypes.rst:988 msgid "" "The ``in`` and ``not in`` operations have the same priorities as the " "comparison operations. The ``+`` (concatenation) and ``*`` (repetition) " @@ -1402,129 +1135,81 @@ msgid "" "[3]_" msgstr "" -#: ../../library/stdtypes.rst:1009 msgid "``x in s``" msgstr "" -#: ../../library/stdtypes.rst:1009 msgid "``True`` if an item of *s* is equal to *x*, else ``False``" msgstr "" -#: ../../library/stdtypes.rst:1012 msgid "``x not in s``" msgstr "" -#: ../../library/stdtypes.rst:1012 msgid "``False`` if an item of *s* is equal to *x*, else ``True``" msgstr "" -#: ../../library/stdtypes.rst:1015 msgid "``s + t``" msgstr "" -#: ../../library/stdtypes.rst:1015 msgid "the concatenation of *s* and *t*" msgstr "" -#: ../../library/stdtypes.rst:1015 msgid "(6)(7)" msgstr "" -#: ../../library/stdtypes.rst:1018 msgid "``s * n`` or ``n * s``" msgstr "" -#: ../../library/stdtypes.rst:1018 msgid "equivalent to adding *s* to itself *n* times" msgstr "" -#: ../../library/stdtypes.rst:1018 msgid "(2)(7)" msgstr "" -#: ../../library/stdtypes.rst:1021 msgid "``s[i]``" msgstr "" -#: ../../library/stdtypes.rst:1021 msgid "*i*\\ th item of *s*, origin 0" msgstr "" -#: ../../library/stdtypes.rst:1021 -msgid "(3)(9)" +msgid "(3)(8)" msgstr "" -#: ../../library/stdtypes.rst:1023 msgid "``s[i:j]``" msgstr "" -#: ../../library/stdtypes.rst:1023 msgid "slice of *s* from *i* to *j*" msgstr "" -#: ../../library/stdtypes.rst:1023 msgid "(3)(4)" msgstr "" -#: ../../library/stdtypes.rst:1025 msgid "``s[i:j:k]``" msgstr "" -#: ../../library/stdtypes.rst:1025 msgid "slice of *s* from *i* to *j* with step *k*" msgstr "" -#: ../../library/stdtypes.rst:1025 msgid "(3)(5)" msgstr "" -#: ../../library/stdtypes.rst:1028 msgid "``len(s)``" msgstr "" -#: ../../library/stdtypes.rst:1028 msgid "length of *s*" msgstr "" -#: ../../library/stdtypes.rst:1030 msgid "``min(s)``" msgstr "" -#: ../../library/stdtypes.rst:1030 msgid "smallest item of *s*" msgstr "" -#: ../../library/stdtypes.rst:1032 msgid "``max(s)``" msgstr "" -#: ../../library/stdtypes.rst:1032 msgid "largest item of *s*" msgstr "" -#: ../../library/stdtypes.rst:1034 -msgid "``s.index(x[, i[, j]])``" -msgstr "" - -#: ../../library/stdtypes.rst:1034 -msgid "" -"index of the first occurrence of *x* in *s* (at or after index *i* and " -"before index *j*)" -msgstr "" - -#: ../../library/stdtypes.rst:1034 ../../library/stdtypes.rst:4039 -msgid "\\(8)" -msgstr "" - -#: ../../library/stdtypes.rst:1038 -msgid "``s.count(x)``" -msgstr "" - -#: ../../library/stdtypes.rst:1038 -msgid "total number of occurrences of *x* in *s*" -msgstr "" - -#: ../../library/stdtypes.rst:1042 msgid "" "Sequences of the same type also support comparisons. In particular, tuples " "and lists are compared lexicographically by comparing corresponding " @@ -1533,16 +1218,14 @@ msgid "" "(For full details see :ref:`comparisons` in the language reference.)" msgstr "" -#: ../../library/stdtypes.rst:1052 msgid "" "Forward and reversed iterators over mutable sequences access values using an " "index. That index will continue to march forward (or backward) even if the " -"underlying sequence is mutated. The iterator terminates only when " -"an :exc:`IndexError` or a :exc:`StopIteration` is encountered (or when the " -"index drops below zero)." +"underlying sequence is mutated. The iterator terminates only when an :exc:" +"`IndexError` or a :exc:`StopIteration` is encountered (or when the index " +"drops below zero)." msgstr "" -#: ../../library/stdtypes.rst:1061 msgid "" "While the ``in`` and ``not in`` operations are used only for simple " "containment testing in the general case, some specialised sequences (such " @@ -1550,13 +1233,11 @@ msgid "" "subsequence testing::" msgstr "" -#: ../../library/stdtypes.rst:1066 msgid "" ">>> \"gg\" in \"eggs\"\n" "True" msgstr "" -#: ../../library/stdtypes.rst:1070 msgid "" "Values of *n* less than ``0`` are treated as ``0`` (which yields an empty " "sequence of the same type as *s*). Note that items in the sequence *s* are " @@ -1564,7 +1245,6 @@ msgid "" "Python programmers; consider::" msgstr "" -#: ../../library/stdtypes.rst:1075 msgid "" ">>> lists = [[]] * 3\n" ">>> lists\n" @@ -1574,7 +1254,6 @@ msgid "" "[[3], [3], [3]]" msgstr "" -#: ../../library/stdtypes.rst:1082 msgid "" "What has happened is that ``[[]]`` is a one-element list containing an empty " "list, so all three elements of ``[[]] * 3`` are references to this single " @@ -1582,7 +1261,6 @@ msgid "" "list. You can create a list of different lists this way::" msgstr "" -#: ../../library/stdtypes.rst:1087 msgid "" ">>> lists = [[] for i in range(3)]\n" ">>> lists[0].append(3)\n" @@ -1592,20 +1270,17 @@ msgid "" "[[3], [5], [7]]" msgstr "" -#: ../../library/stdtypes.rst:1094 msgid "" "Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" "list`." msgstr "" -#: ../../library/stdtypes.rst:1098 msgid "" "If *i* or *j* is negative, the index is relative to the end of sequence *s*: " "``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is " "still ``0``." msgstr "" -#: ../../library/stdtypes.rst:1103 msgid "" "The slice of *s* from *i* to *j* is defined as the sequence of items with " "index *k* such that ``i <= k < j``. If *i* or *j* is greater than " @@ -1614,7 +1289,6 @@ msgid "" "to *j*, the slice is empty." msgstr "" -#: ../../library/stdtypes.rst:1110 msgid "" "The slice of *s* from *i* to *j* with step *k* is defined as the sequence of " "items with index ``x = i + n*k`` such that ``0 <= n < (j-i)/k``. In other " @@ -1627,7 +1301,6 @@ msgid "" "``None``, it is treated like ``1``." msgstr "" -#: ../../library/stdtypes.rst:1121 msgid "" "Concatenating immutable sequences always results in a new object. This " "means that building up a sequence by repeated concatenation will have a " @@ -1635,86 +1308,89 @@ msgid "" "runtime cost, you must switch to one of the alternatives below:" msgstr "" -#: ../../library/stdtypes.rst:1126 msgid "" -"if concatenating :class:`str` objects, you can build a list and " -"use :meth:`str.join` at the end or else write to an :class:`io.StringIO` " -"instance and retrieve its value when complete" +"if concatenating :class:`str` objects, you can build a list and use :meth:" +"`str.join` at the end or else write to an :class:`io.StringIO` instance and " +"retrieve its value when complete" msgstr "" -#: ../../library/stdtypes.rst:1130 msgid "" -"if concatenating :class:`bytes` objects, you can similarly " -"use :meth:`bytes.join` or :class:`io.BytesIO`, or you can do in-place " -"concatenation with a :class:`bytearray` object. :class:`bytearray` objects " -"are mutable and have an efficient overallocation mechanism" +"if concatenating :class:`bytes` objects, you can similarly use :meth:`bytes." +"join` or :class:`io.BytesIO`, or you can do in-place concatenation with a :" +"class:`bytearray` object. :class:`bytearray` objects are mutable and have " +"an efficient overallocation mechanism" msgstr "" -#: ../../library/stdtypes.rst:1135 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" msgstr "" -#: ../../library/stdtypes.rst:1137 msgid "for other types, investigate the relevant class documentation" msgstr "" -#: ../../library/stdtypes.rst:1141 msgid "" "Some sequence types (such as :class:`range`) only support item sequences " "that follow specific patterns, and hence don't support sequence " "concatenation or repetition." msgstr "" -#: ../../library/stdtypes.rst:1146 +msgid "An :exc:`IndexError` is raised if *i* is outside the sequence range." +msgstr "" + +msgid "Sequence Methods" +msgstr "" + +msgid "Sequence types also support the following methods:" +msgstr "" + +msgid "Return the total number of occurrences of *value* in *sequence*." +msgstr "" + +msgid "Return the index of the first occurrence of *value* in *sequence*." +msgstr "" + +msgid "Raises :exc:`ValueError` if *value* is not found in *sequence*." +msgstr "" + msgid "" -"``index`` raises :exc:`ValueError` when *x* is not found in *s*. Not all " -"implementations support passing the additional arguments *i* and *j*. These " -"arguments allow efficient searching of subsections of the sequence. Passing " -"the extra arguments is roughly equivalent to using ``s[i:j].index(x)``, only " -"without copying any data and with the returned index being relative to the " -"start of the sequence rather than the start of the slice." +"The *start* or *stop* arguments allow for efficient searching of subsections " +"of the sequence, beginning at *start* and ending at *stop*. This is roughly " +"equivalent to ``start + sequence[start:stop].index(value)``, only without " +"copying any data." msgstr "" -#: ../../library/stdtypes.rst:1154 -msgid "An :exc:`IndexError` is raised if *i* is outside the sequence range." +msgid "" +"Not all sequence types support passing the *start* and *stop* arguments." msgstr "" -#: ../../library/stdtypes.rst:1160 msgid "Immutable Sequence Types" msgstr "" -#: ../../library/stdtypes.rst:1167 msgid "" "The only operation that immutable sequence types generally implement that is " -"not also implemented by mutable sequence types is support for " -"the :func:`hash` built-in." +"not also implemented by mutable sequence types is support for the :func:" +"`hash` built-in." msgstr "" -#: ../../library/stdtypes.rst:1171 msgid "" "This support allows immutable sequences, such as :class:`tuple` instances, " -"to be used as :class:`dict` keys and stored in :class:`set` " -"and :class:`frozenset` instances." +"to be used as :class:`dict` keys and stored in :class:`set` and :class:" +"`frozenset` instances." msgstr "" -#: ../../library/stdtypes.rst:1175 msgid "" "Attempting to hash an immutable sequence that contains unhashable values " "will result in :exc:`TypeError`." msgstr "" -#: ../../library/stdtypes.rst:1182 msgid "Mutable Sequence Types" msgstr "" -#: ../../library/stdtypes.rst:1189 msgid "" "The operations in the following table are defined on mutable sequence types. " "The :class:`collections.abc.MutableSequence` ABC is provided to make it " "easier to correctly implement these operations on custom sequence types." msgstr "" -#: ../../library/stdtypes.rst:1193 msgid "" "In the table *s* is an instance of a mutable sequence type, *t* is any " "iterable object and *x* is an arbitrary object that meets any type and value " @@ -1722,210 +1398,146 @@ msgid "" "integers that meet the value restriction ``0 <= x <= 255``)." msgstr "" -#: ../../library/stdtypes.rst:1217 msgid "``s[i] = x``" msgstr "" -#: ../../library/stdtypes.rst:1217 msgid "item *i* of *s* is replaced by *x*" msgstr "" -#: ../../library/stdtypes.rst:1220 msgid "``del s[i]``" msgstr "" -#: ../../library/stdtypes.rst:1220 msgid "removes item *i* of *s*" msgstr "" -#: ../../library/stdtypes.rst:1222 msgid "``s[i:j] = t``" msgstr "" -#: ../../library/stdtypes.rst:1222 msgid "" "slice of *s* from *i* to *j* is replaced by the contents of the iterable *t*" msgstr "" -#: ../../library/stdtypes.rst:1226 msgid "``del s[i:j]``" msgstr "" -#: ../../library/stdtypes.rst:1226 msgid "" "removes the elements of ``s[i:j]`` from the list (same as ``s[i:j] = []``)" msgstr "" -#: ../../library/stdtypes.rst:1230 msgid "``s[i:j:k] = t``" msgstr "" -#: ../../library/stdtypes.rst:1230 msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" msgstr "" -#: ../../library/stdtypes.rst:1233 msgid "``del s[i:j:k]``" msgstr "" -#: ../../library/stdtypes.rst:1233 msgid "removes the elements of ``s[i:j:k]`` from the list" msgstr "" -#: ../../library/stdtypes.rst:1236 -msgid "``s.append(x)``" -msgstr "" - -#: ../../library/stdtypes.rst:1236 -msgid "" -"appends *x* to the end of the sequence (same as ``s[len(s):len(s)] = [x]``)" -msgstr "" - -#: ../../library/stdtypes.rst:1240 -msgid "``s.clear()``" -msgstr "" - -#: ../../library/stdtypes.rst:1240 -msgid "removes all items from *s* (same as ``del s[:]``)" -msgstr "" - -#: ../../library/stdtypes.rst:1243 -msgid "``s.copy()``" -msgstr "" - -#: ../../library/stdtypes.rst:1243 -msgid "creates a shallow copy of *s* (same as ``s[:]``)" -msgstr "" - -#: ../../library/stdtypes.rst:1246 -msgid "``s.extend(t)`` or ``s += t``" +msgid "``s += t``" msgstr "" -#: ../../library/stdtypes.rst:1246 msgid "" "extends *s* with the contents of *t* (for the most part the same as " "``s[len(s):len(s)] = t``)" msgstr "" -#: ../../library/stdtypes.rst:1251 msgid "``s *= n``" msgstr "" -#: ../../library/stdtypes.rst:1251 msgid "updates *s* with its contents repeated *n* times" msgstr "" -#: ../../library/stdtypes.rst:1254 -msgid "``s.insert(i, x)``" -msgstr "" - -#: ../../library/stdtypes.rst:1254 msgid "" -"inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" -msgstr "" - -#: ../../library/stdtypes.rst:1258 -msgid "``s.pop()`` or ``s.pop(i)``" +"If *k* is not equal to ``1``, *t* must have the same length as the slice it " +"is replacing." msgstr "" -#: ../../library/stdtypes.rst:1258 -msgid "retrieves the item at *i* and also removes it from *s*" +msgid "" +"The value *n* is an integer, or an object implementing :meth:`~object." +"__index__`. Zero and negative values of *n* clear the sequence. Items in " +"the sequence are not copied; they are referenced multiple times, as " +"explained for ``s * n`` under :ref:`typesseq-common`." msgstr "" -#: ../../library/stdtypes.rst:1261 -msgid "``s.remove(x)``" +msgid "Mutable Sequence Methods" msgstr "" -#: ../../library/stdtypes.rst:1261 -msgid "removes the first item from *s* where ``s[i]`` is equal to *x*" +msgid "Mutable sequence types also support the following methods:" msgstr "" -#: ../../library/stdtypes.rst:1265 -msgid "``s.reverse()``" +msgid "" +"Append *value* to the end of the sequence This is equivalent to writing " +"``seq[len(seq):len(seq)] = [value]``." msgstr "" -#: ../../library/stdtypes.rst:1265 -msgid "reverses the items of *s* in place" +msgid "" +"Remove all items from *sequence*. This is equivalent to writing ``del " +"sequence[:]``." msgstr "" -#: ../../library/stdtypes.rst:1273 msgid "" -"If *k* is not equal to ``1``, *t* must have the same length as the slice it " -"is replacing." +"Create a shallow copy of *sequence*. This is equivalent to writing " +"``sequence[:]``." msgstr "" -#: ../../library/stdtypes.rst:1276 msgid "" -"The optional argument *i* defaults to ``-1``, so that by default the last " -"item is removed and returned." +"The :meth:`!copy` method is not part of the :class:`~collections.abc." +"MutableSequence` :class:`~abc.ABC`, but most concrete mutable sequence types " +"provide it." msgstr "" -#: ../../library/stdtypes.rst:1280 -msgid ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." +msgid "" +"Extend *sequence* with the contents of *iterable*. For the most part, this " +"is the same as writing ``seq[len(seq):len(seq)] = iterable``." msgstr "" -#: ../../library/stdtypes.rst:1283 msgid "" -"The :meth:`reverse` method modifies the sequence in place for economy of " -"space when reversing a large sequence. To remind users that it operates by " -"side effect, it does not return the reversed sequence." +"Insert *value* into *sequence* at the given *index*. This is equivalent to " +"writing ``sequence[index:index] = [value]``." msgstr "" -#: ../../library/stdtypes.rst:1288 msgid "" -":meth:`clear` and :meth:`!copy` are included for consistency with the " -"interfaces of mutable containers that don't support slicing operations (such " -"as :class:`dict` and :class:`set`). :meth:`!copy` is not part of " -"the :class:`collections.abc.MutableSequence` ABC, but most concrete mutable " -"sequence classes provide it." +"Retrieve the item at *index* and also removes it from *sequence*. By " +"default, the last item in *sequence* is removed and returned." msgstr "" -#: ../../library/stdtypes.rst:1294 -msgid ":meth:`clear` and :meth:`!copy` methods." +msgid "Remove the first item from *sequence* where ``sequence[i] == value``." msgstr "" -#: ../../library/stdtypes.rst:1298 msgid "" -"The value *n* is an integer, or an object " -"implementing :meth:`~object.__index__`. Zero and negative values of *n* " -"clear the sequence. Items in the sequence are not copied; they are " -"referenced multiple times, as explained for ``s * n`` under :ref:`typesseq-" -"common`." +"Reverse the items of *sequence* in place. This method maintains economy of " +"space when reversing a large sequence. To remind users that it operates by " +"side-effect, it returns ``None``." msgstr "" -#: ../../library/stdtypes.rst:1307 msgid "Lists" msgstr "Listák" -#: ../../library/stdtypes.rst:1311 msgid "" "Lists are mutable sequences, typically used to store collections of " "homogeneous items (where the precise degree of similarity will vary by " "application)." msgstr "" -#: ../../library/stdtypes.rst:1317 msgid "Lists may be constructed in several ways:" msgstr "" -#: ../../library/stdtypes.rst:1319 msgid "Using a pair of square brackets to denote the empty list: ``[]``" msgstr "" -#: ../../library/stdtypes.rst:1320 msgid "" "Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" msgstr "" -#: ../../library/stdtypes.rst:1321 msgid "Using a list comprehension: ``[x for x in iterable]``" msgstr "" -#: ../../library/stdtypes.rst:1322 msgid "Using the type constructor: ``list()`` or ``list(iterable)``" msgstr "" -#: ../../library/stdtypes.rst:1324 msgid "" "The constructor builds a list whose items are the same and in the same order " "as *iterable*'s items. *iterable* may be either a sequence, a container " @@ -1936,20 +1548,17 @@ msgid "" "new empty list, ``[]``." msgstr "" -#: ../../library/stdtypes.rst:1333 msgid "" "Many other operations also produce lists, including the :func:`sorted` built-" "in." msgstr "" -#: ../../library/stdtypes.rst:1336 msgid "" "Lists implement all of the :ref:`common ` and :ref:`mutable " "` sequence operations. Lists also provide the following " "additional method:" msgstr "" -#: ../../library/stdtypes.rst:1342 msgid "" "This method sorts the list in place, using only ``<`` comparisons between " "items. Exceptions are not suppressed - if any comparison operations fail, " @@ -1957,13 +1566,11 @@ msgid "" "partially modified state)." msgstr "" -#: ../../library/stdtypes.rst:1347 msgid "" -":meth:`sort` accepts two arguments that can only be passed by keyword " -"(:ref:`keyword-only arguments `):" +":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" +"`keyword-only arguments `):" msgstr "" -#: ../../library/stdtypes.rst:1350 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each list element (for example, ``key=str.lower``). The " @@ -1972,19 +1579,16 @@ msgid "" "list items are sorted directly without calculating a separate key value." msgstr "" -#: ../../library/stdtypes.rst:1357 msgid "" "The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " "*cmp* function to a *key* function." msgstr "" -#: ../../library/stdtypes.rst:1360 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." msgstr "" -#: ../../library/stdtypes.rst:1363 msgid "" "This method modifies the sequence in place for economy of space when sorting " "a large sequence. To remind users that it operates by side effect, it does " @@ -1992,7 +1596,6 @@ msgid "" "new sorted list instance)." msgstr "" -#: ../../library/stdtypes.rst:1368 msgid "" "The :meth:`sort` method is guaranteed to be stable. A sort is stable if it " "guarantees not to change the relative order of elements that compare equal " @@ -2000,12 +1603,10 @@ msgid "" "department, then by salary grade)." msgstr "" -#: ../../library/stdtypes.rst:1373 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" -#: ../../library/stdtypes.rst:1377 msgid "" "While a list is being sorted, the effect of attempting to mutate, or even " "inspect, the list is undefined. The C implementation of Python makes the " @@ -2013,40 +1614,32 @@ msgid "" "detect that the list has been mutated during a sort." msgstr "" -#: ../../library/stdtypes.rst:1386 msgid "Tuples" msgstr "" -#: ../../library/stdtypes.rst:1390 msgid "" "Tuples are immutable sequences, typically used to store collections of " "heterogeneous data (such as the 2-tuples produced by the :func:`enumerate` " "built-in). Tuples are also used for cases where an immutable sequence of " -"homogeneous data is needed (such as allowing storage in a :class:`set` " -"or :class:`dict` instance)." +"homogeneous data is needed (such as allowing storage in a :class:`set` or :" +"class:`dict` instance)." msgstr "" -#: ../../library/stdtypes.rst:1398 msgid "Tuples may be constructed in a number of ways:" msgstr "" -#: ../../library/stdtypes.rst:1400 msgid "Using a pair of parentheses to denote the empty tuple: ``()``" msgstr "" -#: ../../library/stdtypes.rst:1401 msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" msgstr "" -#: ../../library/stdtypes.rst:1402 msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" msgstr "" -#: ../../library/stdtypes.rst:1403 msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" msgstr "" -#: ../../library/stdtypes.rst:1405 msgid "" "The constructor builds a tuple whose items are the same and in the same " "order as *iterable*'s items. *iterable* may be either a sequence, a " @@ -2057,7 +1650,6 @@ msgid "" "``()``." msgstr "" -#: ../../library/stdtypes.rst:1413 msgid "" "Note that it is actually the comma which makes a tuple, not the parentheses. " "The parentheses are optional, except in the empty tuple case, or when they " @@ -2066,70 +1658,59 @@ msgid "" "call with a 3-tuple as the sole argument." msgstr "" -#: ../../library/stdtypes.rst:1419 msgid "" "Tuples implement all of the :ref:`common ` sequence " "operations." msgstr "" -#: ../../library/stdtypes.rst:1422 msgid "" "For heterogeneous collections of data where access by name is clearer than " "access by index, :func:`collections.namedtuple` may be a more appropriate " "choice than a simple tuple object." msgstr "" -#: ../../library/stdtypes.rst:1430 msgid "Ranges" msgstr "" -#: ../../library/stdtypes.rst:1434 msgid "" "The :class:`range` type represents an immutable sequence of numbers and is " "commonly used for looping a specific number of times in :keyword:`for` loops." msgstr "" -#: ../../library/stdtypes.rst:1441 msgid "" -"The arguments to the range constructor must be integers (either built-" -"in :class:`int` or any object that implements the :meth:`~object.__index__` " +"The arguments to the range constructor must be integers (either built-in :" +"class:`int` or any object that implements the :meth:`~object.__index__` " "special method). If the *step* argument is omitted, it defaults to ``1``. " "If the *start* argument is omitted, it defaults to ``0``. If *step* is " "zero, :exc:`ValueError` is raised." msgstr "" -#: ../../library/stdtypes.rst:1447 msgid "" "For a positive *step*, the contents of a range ``r`` are determined by the " "formula ``r[i] = start + step*i`` where ``i >= 0`` and ``r[i] < stop``." msgstr "" -#: ../../library/stdtypes.rst:1451 msgid "" "For a negative *step*, the contents of the range are still determined by the " "formula ``r[i] = start + step*i``, but the constraints are ``i >= 0`` and " "``r[i] > stop``." msgstr "" -#: ../../library/stdtypes.rst:1455 msgid "" "A range object will be empty if ``r[0]`` does not meet the value constraint. " "Ranges do support negative indices, but these are interpreted as indexing " "from the end of the sequence determined by the positive indices." msgstr "" -#: ../../library/stdtypes.rst:1460 msgid "" "Ranges containing absolute values larger than :data:`sys.maxsize` are " -"permitted but some features (such as :func:`len`) may " -"raise :exc:`OverflowError`." +"permitted but some features (such as :func:`len`) may raise :exc:" +"`OverflowError`." msgstr "" -#: ../../library/stdtypes.rst:1464 msgid "Range examples::" msgstr "" -#: ../../library/stdtypes.rst:1466 msgid "" ">>> list(range(10))\n" "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n" @@ -2147,7 +1728,6 @@ msgid "" "[]" msgstr "" -#: ../../library/stdtypes.rst:1481 msgid "" "Ranges implement all of the :ref:`common ` sequence " "operations except concatenation and repetition (due to the fact that range " @@ -2155,39 +1735,33 @@ msgid "" "repetition and concatenation will usually violate that pattern)." msgstr "" -#: ../../library/stdtypes.rst:1488 msgid "" "The value of the *start* parameter (or ``0`` if the parameter was not " "supplied)" msgstr "" -#: ../../library/stdtypes.rst:1493 msgid "The value of the *stop* parameter" msgstr "" -#: ../../library/stdtypes.rst:1497 msgid "" "The value of the *step* parameter (or ``1`` if the parameter was not " "supplied)" msgstr "" -#: ../../library/stdtypes.rst:1500 msgid "" -"The advantage of the :class:`range` type over a regular :class:`list` " -"or :class:`tuple` is that a :class:`range` object will always take the same " +"The advantage of the :class:`range` type over a regular :class:`list` or :" +"class:`tuple` is that a :class:`range` object will always take the same " "(small) amount of memory, no matter the size of the range it represents (as " "it only stores the ``start``, ``stop`` and ``step`` values, calculating " "individual items and subranges as needed)." msgstr "" -#: ../../library/stdtypes.rst:1506 msgid "" "Range objects implement the :class:`collections.abc.Sequence` ABC, and " "provide features such as containment tests, element index lookup, slicing " "and support for negative indices (see :ref:`typesseq`):" msgstr "" -#: ../../library/stdtypes.rst:1526 msgid "" "Testing range objects for equality with ``==`` and ``!=`` compares them as " "sequences. That is, two range objects are considered equal if they " @@ -2197,511 +1771,397 @@ msgid "" "3)`` or ``range(0, 3, 2) == range(0, 4, 2)``.)" msgstr "" -#: ../../library/stdtypes.rst:1533 msgid "" -"Implement the Sequence ABC. Support slicing and negative indices. " -"Test :class:`int` objects for membership in constant time instead of " -"iterating through all items." +"Implement the Sequence ABC. Support slicing and negative indices. Test :" +"class:`int` objects for membership in constant time instead of iterating " +"through all items." msgstr "" -#: ../../library/stdtypes.rst:1539 msgid "" "Define '==' and '!=' to compare range objects based on the sequence of " "values they define (instead of comparing based on object identity)." msgstr "" -#: ../../library/stdtypes.rst:1544 msgid "" "Added the :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " "attributes." msgstr "" -#: ../../library/stdtypes.rst:1549 msgid "" "The `linspace recipe `_ shows how to implement a lazy version of range " "suitable for floating-point applications." msgstr "" -#: ../../library/stdtypes.rst:1561 msgid "Text and Binary Sequence Type Methods Summary" msgstr "" -#: ../../library/stdtypes.rst:1562 msgid "" "The following table summarizes the text and binary sequence types methods by " "category." msgstr "" -#: ../../library/stdtypes.rst:1567 msgid "Category" msgstr "" -#: ../../library/stdtypes.rst:1567 msgid ":class:`str` methods" msgstr "" -#: ../../library/stdtypes.rst:1567 msgid ":class:`bytes` and :class:`bytearray` methods" msgstr "" -#: ../../library/stdtypes.rst:1569 msgid "Formatting" msgstr "" -#: ../../library/stdtypes.rst:1569 msgid ":meth:`str.format`" msgstr "" -#: ../../library/stdtypes.rst:1571 msgid ":meth:`str.format_map`" msgstr "" -#: ../../library/stdtypes.rst:1573 msgid ":ref:`f-strings`" msgstr "" -#: ../../library/stdtypes.rst:1575 msgid ":ref:`old-string-formatting`" msgstr "" -#: ../../library/stdtypes.rst:1575 msgid ":ref:`bytes-formatting`" msgstr "" -#: ../../library/stdtypes.rst:1577 msgid "Searching and Replacing" msgstr "" -#: ../../library/stdtypes.rst:1577 msgid ":meth:`str.find`" msgstr "" -#: ../../library/stdtypes.rst:1577 msgid ":meth:`str.rfind`" msgstr "" -#: ../../library/stdtypes.rst:1577 msgid ":meth:`bytes.find`" msgstr "" -#: ../../library/stdtypes.rst:1577 msgid ":meth:`bytes.rfind`" msgstr "" -#: ../../library/stdtypes.rst:1579 msgid ":meth:`str.index`" msgstr "" -#: ../../library/stdtypes.rst:1579 msgid ":meth:`str.rindex`" msgstr "" -#: ../../library/stdtypes.rst:1579 msgid ":meth:`bytes.index`" msgstr "" -#: ../../library/stdtypes.rst:1579 msgid ":meth:`bytes.rindex`" msgstr "" -#: ../../library/stdtypes.rst:1581 msgid ":meth:`str.startswith`" msgstr "" -#: ../../library/stdtypes.rst:1581 msgid ":meth:`bytes.startswith`" msgstr "" -#: ../../library/stdtypes.rst:1583 msgid ":meth:`str.endswith`" msgstr "" -#: ../../library/stdtypes.rst:1583 msgid ":meth:`bytes.endswith`" msgstr "" -#: ../../library/stdtypes.rst:1585 msgid ":meth:`str.count`" msgstr "" -#: ../../library/stdtypes.rst:1585 msgid ":meth:`bytes.count`" msgstr "" -#: ../../library/stdtypes.rst:1587 msgid ":meth:`str.replace`" msgstr "" -#: ../../library/stdtypes.rst:1587 msgid ":meth:`bytes.replace`" msgstr "" -#: ../../library/stdtypes.rst:1589 msgid "Splitting and Joining" msgstr "" -#: ../../library/stdtypes.rst:1589 msgid ":meth:`str.split`" msgstr "" -#: ../../library/stdtypes.rst:1589 msgid ":meth:`str.rsplit`" msgstr "" -#: ../../library/stdtypes.rst:1589 msgid ":meth:`bytes.split`" msgstr "" -#: ../../library/stdtypes.rst:1589 msgid ":meth:`bytes.rsplit`" msgstr "" -#: ../../library/stdtypes.rst:1591 msgid ":meth:`str.splitlines`" msgstr "" -#: ../../library/stdtypes.rst:1591 msgid ":meth:`bytes.splitlines`" msgstr "" -#: ../../library/stdtypes.rst:1593 msgid ":meth:`str.partition`" msgstr "" -#: ../../library/stdtypes.rst:1593 msgid ":meth:`bytes.partition`" msgstr "" -#: ../../library/stdtypes.rst:1595 msgid ":meth:`str.rpartition`" msgstr "" -#: ../../library/stdtypes.rst:1595 msgid ":meth:`bytes.rpartition`" msgstr "" -#: ../../library/stdtypes.rst:1597 msgid ":meth:`str.join`" msgstr "" -#: ../../library/stdtypes.rst:1597 msgid ":meth:`bytes.join`" msgstr "" -#: ../../library/stdtypes.rst:1599 msgid "String Classification" msgstr "" -#: ../../library/stdtypes.rst:1599 msgid ":meth:`str.isalpha`" msgstr "" -#: ../../library/stdtypes.rst:1599 msgid ":meth:`bytes.isalpha`" msgstr "" -#: ../../library/stdtypes.rst:1601 msgid ":meth:`str.isdecimal`" msgstr "" -#: ../../library/stdtypes.rst:1603 msgid ":meth:`str.isdigit`" msgstr "" -#: ../../library/stdtypes.rst:1603 msgid ":meth:`bytes.isdigit`" msgstr "" -#: ../../library/stdtypes.rst:1605 msgid ":meth:`str.isnumeric`" msgstr "" -#: ../../library/stdtypes.rst:1607 msgid ":meth:`str.isalnum`" msgstr "" -#: ../../library/stdtypes.rst:1607 msgid ":meth:`bytes.isalnum`" msgstr "" -#: ../../library/stdtypes.rst:1609 msgid ":meth:`str.isidentifier`" msgstr "" -#: ../../library/stdtypes.rst:1611 msgid ":meth:`str.islower`" msgstr "" -#: ../../library/stdtypes.rst:1611 msgid ":meth:`bytes.islower`" msgstr "" -#: ../../library/stdtypes.rst:1613 msgid ":meth:`str.isupper`" msgstr "" -#: ../../library/stdtypes.rst:1613 msgid ":meth:`bytes.isupper`" msgstr "" -#: ../../library/stdtypes.rst:1615 msgid ":meth:`str.istitle`" msgstr "" -#: ../../library/stdtypes.rst:1615 msgid ":meth:`bytes.istitle`" msgstr "" -#: ../../library/stdtypes.rst:1617 msgid ":meth:`str.isspace`" msgstr "" -#: ../../library/stdtypes.rst:1617 msgid ":meth:`bytes.isspace`" msgstr "" -#: ../../library/stdtypes.rst:1619 msgid ":meth:`str.isprintable`" msgstr "" -#: ../../library/stdtypes.rst:1621 msgid "Case Manipulation" msgstr "" -#: ../../library/stdtypes.rst:1621 msgid ":meth:`str.lower`" msgstr "" -#: ../../library/stdtypes.rst:1621 msgid ":meth:`bytes.lower`" msgstr "" -#: ../../library/stdtypes.rst:1623 msgid ":meth:`str.upper`" msgstr "" -#: ../../library/stdtypes.rst:1623 msgid ":meth:`bytes.upper`" msgstr "" -#: ../../library/stdtypes.rst:1625 msgid ":meth:`str.casefold`" msgstr "" -#: ../../library/stdtypes.rst:1627 msgid ":meth:`str.capitalize`" msgstr "" -#: ../../library/stdtypes.rst:1627 msgid ":meth:`bytes.capitalize`" msgstr "" -#: ../../library/stdtypes.rst:1629 msgid ":meth:`str.title`" msgstr "" -#: ../../library/stdtypes.rst:1629 msgid ":meth:`bytes.title`" msgstr "" -#: ../../library/stdtypes.rst:1631 msgid ":meth:`str.swapcase`" msgstr "" -#: ../../library/stdtypes.rst:1631 msgid ":meth:`bytes.swapcase`" msgstr "" -#: ../../library/stdtypes.rst:1633 msgid "Padding and Stripping" msgstr "" -#: ../../library/stdtypes.rst:1633 msgid ":meth:`str.ljust`" msgstr "" -#: ../../library/stdtypes.rst:1633 msgid ":meth:`str.rjust`" msgstr "" -#: ../../library/stdtypes.rst:1633 msgid ":meth:`bytes.ljust`" msgstr "" -#: ../../library/stdtypes.rst:1633 msgid ":meth:`bytes.rjust`" msgstr "" -#: ../../library/stdtypes.rst:1635 msgid ":meth:`str.center`" msgstr "" -#: ../../library/stdtypes.rst:1635 msgid ":meth:`bytes.center`" msgstr "" -#: ../../library/stdtypes.rst:1637 msgid ":meth:`str.expandtabs`" msgstr "" -#: ../../library/stdtypes.rst:1637 msgid ":meth:`bytes.expandtabs`" msgstr "" -#: ../../library/stdtypes.rst:1639 msgid ":meth:`str.strip`" msgstr "" -#: ../../library/stdtypes.rst:1639 msgid ":meth:`bytes.strip`" msgstr "" -#: ../../library/stdtypes.rst:1641 msgid ":meth:`str.lstrip`" msgstr "" -#: ../../library/stdtypes.rst:1641 msgid ":meth:`str.rstrip`" msgstr "" -#: ../../library/stdtypes.rst:1641 msgid ":meth:`bytes.lstrip`" msgstr "" -#: ../../library/stdtypes.rst:1641 msgid ":meth:`bytes.rstrip`" msgstr "" -#: ../../library/stdtypes.rst:1643 msgid "Translation and Encoding" msgstr "" -#: ../../library/stdtypes.rst:1643 msgid ":meth:`str.translate`" msgstr "" -#: ../../library/stdtypes.rst:1643 msgid ":meth:`bytes.translate`" msgstr "" -#: ../../library/stdtypes.rst:1645 msgid ":meth:`str.maketrans`" msgstr "" -#: ../../library/stdtypes.rst:1645 msgid ":meth:`bytes.maketrans`" msgstr "" -#: ../../library/stdtypes.rst:1647 msgid ":meth:`str.encode`" msgstr "" -#: ../../library/stdtypes.rst:1649 msgid ":meth:`bytes.decode`" msgstr "" -#: ../../library/stdtypes.rst:1655 msgid "Text Sequence Type --- :class:`str`" msgstr "" -#: ../../library/stdtypes.rst:1657 msgid "" -"Textual data in Python is handled with :class:`str` objects, " -"or :dfn:`strings`. Strings are immutable :ref:`sequences ` of " -"Unicode code points. String literals are written in a variety of ways:" +"Textual data in Python is handled with :class:`str` objects, or :dfn:" +"`strings`. Strings are immutable :ref:`sequences ` of Unicode code " +"points. String literals are written in a variety of ways:" msgstr "" -#: ../../library/stdtypes.rst:1662 msgid "Single quotes: ``'allows embedded \"double\" quotes'``" msgstr "" -#: ../../library/stdtypes.rst:1663 msgid "Double quotes: ``\"allows embedded 'single' quotes\"``" msgstr "" -#: ../../library/stdtypes.rst:1664 msgid "" "Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" msgstr "" -#: ../../library/stdtypes.rst:1666 msgid "" "Triple quoted strings may span multiple lines - all associated whitespace " "will be included in the string literal." msgstr "" -#: ../../library/stdtypes.rst:1669 msgid "" "String literals that are part of a single expression and have only " "whitespace between them will be implicitly converted to a single string " "literal. That is, ``(\"spam \" \"eggs\") == \"spam eggs\"``." msgstr "" -#: ../../library/stdtypes.rst:1673 msgid "" "See :ref:`strings` for more about the various forms of string literal, " "including supported :ref:`escape sequences `, and the " "``r`` (\"raw\") prefix that disables most escape sequence processing." msgstr "" -#: ../../library/stdtypes.rst:1677 msgid "" "Strings may also be created from other objects using the :class:`str` " "constructor." msgstr "" -#: ../../library/stdtypes.rst:1680 msgid "" "Since there is no separate \"character\" type, indexing a string produces " "strings of length 1. That is, for a non-empty string *s*, ``s[0] == s[0:1]``." msgstr "" -#: ../../library/stdtypes.rst:1686 msgid "" -"There is also no mutable string type, but :meth:`str.join` " -"or :class:`io.StringIO` can be used to efficiently construct strings from " -"multiple fragments." +"There is also no mutable string type, but :meth:`str.join` or :class:`io." +"StringIO` can be used to efficiently construct strings from multiple " +"fragments." msgstr "" -#: ../../library/stdtypes.rst:1690 msgid "" "For backwards compatibility with the Python 2 series, the ``u`` prefix is " "once again permitted on string literals. It has no effect on the meaning of " "string literals and cannot be combined with the ``r`` prefix." msgstr "" -#: ../../library/stdtypes.rst:1702 msgid "" "Return a :ref:`string ` version of *object*. If *object* is not " "provided, returns the empty string. Otherwise, the behavior of ``str()`` " "depends on whether *encoding* or *errors* is given, as follows." msgstr "" -#: ../../library/stdtypes.rst:1706 msgid "" -"If neither *encoding* nor *errors* is given, ``str(object)`` " -"returns :meth:`type(object).__str__(object) `, which is the " -"\"informal\" or nicely printable string representation of *object*. For " -"string objects, this is the string itself. If *object* does not have " -"a :meth:`~object.__str__` method, then :func:`str` falls back to " -"returning :func:`repr(object) `." +"If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" +"`type(object).__str__(object) `, which is the \"informal\" " +"or nicely printable string representation of *object*. For string objects, " +"this is the string itself. If *object* does not have a :meth:`~object." +"__str__` method, then :func:`str` falls back to returning :func:" +"`repr(object) `." msgstr "" -#: ../../library/stdtypes.rst:1718 msgid "" -"If at least one of *encoding* or *errors* is given, *object* should be " -"a :term:`bytes-like object` (e.g. :class:`bytes` or :class:`bytearray`). In " +"If at least one of *encoding* or *errors* is given, *object* should be a :" +"term:`bytes-like object` (e.g. :class:`bytes` or :class:`bytearray`). In " "this case, if *object* is a :class:`bytes` (or :class:`bytearray`) object, " -"then ``str(bytes, encoding, errors)`` is equivalent " -"to :meth:`bytes.decode(encoding, errors) `. Otherwise, the " -"bytes object underlying the buffer object is obtained before " -"calling :meth:`bytes.decode`. See :ref:`binaryseq` and :ref:`bufferobjects` " -"for information on buffer objects." +"then ``str(bytes, encoding, errors)`` is equivalent to :meth:`bytes." +"decode(encoding, errors) `. Otherwise, the bytes object " +"underlying the buffer object is obtained before calling :meth:`bytes." +"decode`. See :ref:`binaryseq` and :ref:`bufferobjects` for information on " +"buffer objects." msgstr "" -#: ../../library/stdtypes.rst:1727 msgid "" "Passing a :class:`bytes` object to :func:`str` without the *encoding* or " "*errors* arguments falls under the first case of returning the informal " @@ -2709,90 +2169,77 @@ msgid "" "Python). For example::" msgstr "" -#: ../../library/stdtypes.rst:1732 msgid "" ">>> str(b'Zoot!')\n" "\"b'Zoot!'\"" msgstr "" -#: ../../library/stdtypes.rst:1735 msgid "" -"For more information on the ``str`` class and its methods, " -"see :ref:`textseq` and the :ref:`string-methods` section below. To output " -"formatted strings, see the :ref:`f-strings` and :ref:`formatstrings` " -"sections. In addition, see the :ref:`stringservices` section." +"For more information on the ``str`` class and its methods, see :ref:" +"`textseq` and the :ref:`string-methods` section below. To output formatted " +"strings, see the :ref:`f-strings` and :ref:`formatstrings` sections. In " +"addition, see the :ref:`stringservices` section." msgstr "" -#: ../../library/stdtypes.rst:1747 msgid "String Methods" msgstr "" -#: ../../library/stdtypes.rst:1752 msgid "" "Strings implement all of the :ref:`common ` sequence " "operations, along with the additional methods described below." msgstr "" -#: ../../library/stdtypes.rst:1755 msgid "" "Strings also support two styles of string formatting, one providing a large " -"degree of flexibility and customization " -"(see :meth:`str.format`, :ref:`formatstrings` and :ref:`string-formatting`) " -"and the other based on C ``printf`` style formatting that handles a narrower " -"range of types and is slightly harder to use correctly, but is often faster " -"for the cases it can handle (:ref:`old-string-formatting`)." +"degree of flexibility and customization (see :meth:`str.format`, :ref:" +"`formatstrings` and :ref:`string-formatting`) and the other based on C " +"``printf`` style formatting that handles a narrower range of types and is " +"slightly harder to use correctly, but is often faster for the cases it can " +"handle (:ref:`old-string-formatting`)." msgstr "" -#: ../../library/stdtypes.rst:1762 msgid "" "The :ref:`textservices` section of the standard library covers a number of " "other modules that provide various text related utilities (including regular " "expression support in the :mod:`re` module)." msgstr "" -#: ../../library/stdtypes.rst:1768 msgid "" "Return a copy of the string with its first character capitalized and the " "rest lowercased." msgstr "" -#: ../../library/stdtypes.rst:1771 msgid "" "The first character is now put into titlecase rather than uppercase. This " "means that characters like digraphs will only have their first letter " "capitalized, instead of the full character." msgstr "" -#: ../../library/stdtypes.rst:1778 msgid "" "Return a casefolded copy of the string. Casefolded strings may be used for " "caseless matching." msgstr "" -#: ../../library/stdtypes.rst:1781 msgid "" "Casefolding is similar to lowercasing but more aggressive because it is " "intended to remove all case distinctions in a string. For example, the " "German lowercase letter ``'ß'`` is equivalent to ``\"ss\"``. Since it is " -"already lowercase, :meth:`lower` would do nothing to " -"``'ß'``; :meth:`casefold` converts it to ``\"ss\"``." +"already lowercase, :meth:`lower` would do nothing to ``'ß'``; :meth:" +"`casefold` converts it to ``\"ss\"``." msgstr "" -#: ../../library/stdtypes.rst:1787 msgid "" "The casefolding algorithm is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." msgstr "" -#: ../../library/stdtypes.rst:1796 msgid "" "Return centered in a string of length *width*. Padding is done using the " "specified *fillchar* (default is an ASCII space). The original string is " "returned if *width* is less than or equal to ``len(s)``. For example::" msgstr "" -#: ../../library/stdtypes.rst:1800 msgid "" ">>> 'Python'.center(10)\n" "' Python '\n" @@ -2802,20 +2249,17 @@ msgid "" "'Python'" msgstr "" -#: ../../library/stdtypes.rst:1810 msgid "" "Return the number of non-overlapping occurrences of substring *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " "interpreted as in slice notation." msgstr "" -#: ../../library/stdtypes.rst:1814 msgid "" "If *sub* is empty, returns the number of empty strings between characters " "which is the length of the string plus one. For example::" msgstr "" -#: ../../library/stdtypes.rst:1817 msgid "" ">>> 'spam, spam, spam'.count('spam')\n" "3\n" @@ -2829,33 +2273,28 @@ msgid "" "17" msgstr "" -#: ../../library/stdtypes.rst:1830 msgid "Return the string encoded to :class:`bytes`." msgstr "" -#: ../../library/stdtypes.rst:1832 ../../library/stdtypes.rst:3204 msgid "" "*encoding* defaults to ``'utf-8'``; see :ref:`standard-encodings` for " "possible values." msgstr "" -#: ../../library/stdtypes.rst:1835 msgid "" "*errors* controls how encoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " "are ``'ignore'``, ``'replace'``, ``'xmlcharrefreplace'``, " -"``'backslashreplace'`` and any other name registered " -"via :func:`codecs.register_error`. See :ref:`error-handlers` for details." +"``'backslashreplace'`` and any other name registered via :func:`codecs." +"register_error`. See :ref:`error-handlers` for details." msgstr "" -#: ../../library/stdtypes.rst:1842 msgid "" "For performance reasons, the value of *errors* is not checked for validity " -"unless an encoding error actually occurs, :ref:`devmode` is enabled or " -"a :ref:`debug build ` is used. For example::" +"unless an encoding error actually occurs, :ref:`devmode` is enabled or a :" +"ref:`debug build ` is used. For example::" msgstr "" -#: ../../library/stdtypes.rst:1848 msgid "" ">>> encoded_str_to_bytes = 'Python'.encode()\n" ">>> type(encoded_str_to_bytes)\n" @@ -2864,17 +2303,14 @@ msgid "" "b'Python'" msgstr "" -#: ../../library/stdtypes.rst:1855 ../../library/stdtypes.rst:3223 msgid "Added support for keyword arguments." msgstr "" -#: ../../library/stdtypes.rst:1858 ../../library/stdtypes.rst:3226 msgid "" -"The value of the *errors* argument is now checked in :ref:`devmode` and " -"in :ref:`debug mode `." +"The value of the *errors* argument is now checked in :ref:`devmode` and in :" +"ref:`debug mode `." msgstr "" -#: ../../library/stdtypes.rst:1865 msgid "" "Return ``True`` if the string ends with the specified *suffix*, otherwise " "return ``False``. *suffix* can also be a tuple of suffixes to look for. " @@ -2883,7 +2319,6 @@ msgid "" "equivalent to ``str[start:end].endswith(suffix)``. For example::" msgstr "" -#: ../../library/stdtypes.rst:1871 msgid "" ">>> 'Python'.endswith('on')\n" "True\n" @@ -2895,11 +2330,9 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:1880 msgid "See also :meth:`startswith` and :meth:`removesuffix`." msgstr "" -#: ../../library/stdtypes.rst:1885 msgid "" "Return a copy of the string where all tab characters are replaced by one or " "more spaces, depending on the current column and the given tab size. Tab " @@ -2915,7 +2348,6 @@ msgid "" "printed. For example::" msgstr "" -#: ../../library/stdtypes.rst:1898 msgid "" ">>> '01\\t012\\t0123\\t01234'.expandtabs()\n" "'01 012 0123 01234'\n" @@ -2926,27 +2358,34 @@ msgid "" "0123 01234" msgstr "" -#: ../../library/stdtypes.rst:1909 msgid "" "Return the lowest index in the string where substring *sub* is found within " "the slice ``s[start:end]``. Optional arguments *start* and *end* are " -"interpreted as in slice notation. Return ``-1`` if *sub* is not found." +"interpreted as in slice notation. Return ``-1`` if *sub* is not found. For " +"example::" +msgstr "" + +msgid "" +">>> 'spam, spam, spam'.find('sp')\n" +"0\n" +">>> 'spam, spam, spam'.find('sp', 5)\n" +"6" +msgstr "" + +msgid "See also :meth:`rfind` and :meth:`index`." msgstr "" -#: ../../library/stdtypes.rst:1915 msgid "" "The :meth:`~str.find` method should be used only if you need to know the " -"position of *sub*. To check if *sub* is a substring or not, use " -"the :keyword:`in` operator::" +"position of *sub*. To check if *sub* is a substring or not, use the :" +"keyword:`in` operator::" msgstr "" -#: ../../library/stdtypes.rst:1919 msgid "" ">>> 'Py' in 'Python'\n" "True" msgstr "" -#: ../../library/stdtypes.rst:1925 msgid "" "Perform a string formatting operation. The string on which this method is " "called can contain literal text or replacement fields delimited by braces " @@ -2956,71 +2395,61 @@ msgid "" "the corresponding argument." msgstr "" -#: ../../library/stdtypes.rst:1935 msgid "" "See :ref:`formatstrings` for a description of the various formatting options " "that can be specified in format strings." msgstr "" -#: ../../library/stdtypes.rst:1939 msgid "" -"When formatting a number " -"(:class:`int`, :class:`float`, :class:`complex`, :class:`decimal.Decimal` " -"and subclasses) with the ``n`` type (ex: ``'{:n}'.format(1234)``), the " -"function temporarily sets the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " -"locale to decode ``decimal_point`` and ``thousands_sep`` fields " -"of :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, and the " -"``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. This " -"temporary change affects other threads." +"When formatting a number (:class:`int`, :class:`float`, :class:`complex`, :" +"class:`decimal.Decimal` and subclasses) with the ``n`` type (ex: ``'{:n}'." +"format(1234)``), the function temporarily sets the ``LC_CTYPE`` locale to " +"the ``LC_NUMERIC`` locale to decode ``decimal_point`` and ``thousands_sep`` " +"fields of :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, " +"and the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. " +"This temporary change affects other threads." msgstr "" -#: ../../library/stdtypes.rst:1948 msgid "" "When formatting a number with the ``n`` type, the function sets temporarily " "the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some cases." msgstr "" -#: ../../library/stdtypes.rst:1956 msgid "" "Similar to ``str.format(**mapping)``, except that ``mapping`` is used " "directly and not copied to a :class:`dict`. This is useful if for example " "``mapping`` is a dict subclass:" msgstr "" -#: ../../library/stdtypes.rst:1972 msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." msgstr "" -#: ../../library/stdtypes.rst:1978 msgid "" "Return ``True`` if all characters in the string are alphanumeric and there " "is at least one character, ``False`` otherwise. A character ``c`` is " -"alphanumeric if one of the following returns ``True``: ``c.isalpha()``, " -"``c.isdecimal()``, ``c.isdigit()``, or ``c.isnumeric()``." +"alphanumeric if one of the following returns ``True``: ``c.isalpha()``, ``c." +"isdecimal()``, ``c.isdigit()``, or ``c.isnumeric()``." msgstr "" -#: ../../library/stdtypes.rst:1986 msgid "" "Return ``True`` if all characters in the string are alphabetic and there is " "at least one character, ``False`` otherwise. Alphabetic characters are " -"those characters defined in the Unicode character database as \"Letter\", " -"i.e., those with general category property being one of \"Lm\", \"Lt\", " +"those characters defined in the Unicode character database as \"Letter\", i." +"e., those with general category property being one of \"Lm\", \"Lt\", " "\"Lu\", \"Ll\", or \"Lo\". Note that this is different from the `Alphabetic " "property defined in the section 4.10 'Letters, Alphabetic, and Ideographic' " "of the Unicode Standard `_." msgstr "" -#: ../../library/stdtypes.rst:1997 msgid "" "Return ``True`` if the string is empty or all characters in the string are " "ASCII, ``False`` otherwise. ASCII characters have code points in the range " "U+0000-U+007F." msgstr "" -#: ../../library/stdtypes.rst:2006 msgid "" "Return ``True`` if all characters in the string are decimal characters and " "there is at least one character, ``False`` otherwise. Decimal characters are " @@ -3029,7 +2458,6 @@ msgid "" "General Category \"Nd\"." msgstr "" -#: ../../library/stdtypes.rst:2016 msgid "" "Return ``True`` if all characters in the string are digits and there is at " "least one character, ``False`` otherwise. Digits include decimal characters " @@ -3039,23 +2467,19 @@ msgid "" "property value Numeric_Type=Digit or Numeric_Type=Decimal." msgstr "" -#: ../../library/stdtypes.rst:2026 msgid "" "Return ``True`` if the string is a valid identifier according to the " "language definition, section :ref:`identifiers`." msgstr "" -#: ../../library/stdtypes.rst:2029 msgid "" ":func:`keyword.iskeyword` can be used to test whether string ``s`` is a " "reserved identifier, such as :keyword:`def` and :keyword:`class`." msgstr "" -#: ../../library/stdtypes.rst:2032 msgid "Example: ::" msgstr "" -#: ../../library/stdtypes.rst:2035 msgid "" ">>> from keyword import iskeyword\n" "\n" @@ -3065,13 +2489,11 @@ msgid "" "(True, True)" msgstr "" -#: ../../library/stdtypes.rst:2045 msgid "" "Return ``True`` if all cased characters [4]_ in the string are lowercase and " "there is at least one cased character, ``False`` otherwise." msgstr "" -#: ../../library/stdtypes.rst:2051 msgid "" "Return ``True`` if all characters in the string are numeric characters, and " "there is at least one character, ``False`` otherwise. Numeric characters " @@ -3081,13 +2503,11 @@ msgid "" "Numeric_Type=Decimal or Numeric_Type=Numeric." msgstr "" -#: ../../library/stdtypes.rst:2061 msgid "" "Return ``True`` if all characters in the string are printable, ``False`` if " "it contains at least one non-printable character." msgstr "" -#: ../../library/stdtypes.rst:2064 msgid "" "Here \"printable\" means the character is suitable for :func:`repr` to use " "in its output; \"non-printable\" means that :func:`repr` on built-in types " @@ -3095,7 +2515,6 @@ msgid "" "written to :data:`sys.stdout` or :data:`sys.stderr`." msgstr "" -#: ../../library/stdtypes.rst:2069 msgid "" "The printable characters are those which in the Unicode character database " "(see :mod:`unicodedata`) have a general category in group Letter, Mark, " @@ -3104,21 +2523,17 @@ msgid "" "C), except the ASCII space." msgstr "" -#: ../../library/stdtypes.rst:2078 msgid "" "Return ``True`` if there are only whitespace characters in the string and " "there is at least one character, ``False`` otherwise." msgstr "" -#: ../../library/stdtypes.rst:2081 msgid "" -"A character is *whitespace* if in the Unicode character database " -"(see :mod:`unicodedata`), either its general category is ``Zs`` " -"(\"Separator, space\"), or its bidirectional class is one of ``WS``, ``B``, " -"or ``S``." +"A character is *whitespace* if in the Unicode character database (see :mod:" +"`unicodedata`), either its general category is ``Zs`` (\"Separator, " +"space\"), or its bidirectional class is one of ``WS``, ``B``, or ``S``." msgstr "" -#: ../../library/stdtypes.rst:2089 msgid "" "Return ``True`` if the string is a titlecased string and there is at least " "one character, for example uppercase characters may only follow uncased " @@ -3126,41 +2541,35 @@ msgid "" "otherwise." msgstr "" -#: ../../library/stdtypes.rst:2096 msgid "" "Return ``True`` if all cased characters [4]_ in the string are uppercase and " "there is at least one cased character, ``False`` otherwise." msgstr "" -#: ../../library/stdtypes.rst:2114 msgid "" -"Return a string which is the concatenation of the strings in *iterable*. " -"A :exc:`TypeError` will be raised if there are any non-string values in " +"Return a string which is the concatenation of the strings in *iterable*. A :" +"exc:`TypeError` will be raised if there are any non-string values in " "*iterable*, including :class:`bytes` objects. The separator between " "elements is the string providing this method." msgstr "" -#: ../../library/stdtypes.rst:2122 msgid "" "Return the string left justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " "original string is returned if *width* is less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:2129 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "lowercase." msgstr "" -#: ../../library/stdtypes.rst:2132 msgid "" "The lowercasing algorithm used is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." msgstr "" -#: ../../library/stdtypes.rst:2139 msgid "" "Return a copy of the string with leading characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3169,7 +2578,6 @@ msgid "" "are stripped::" msgstr "" -#: ../../library/stdtypes.rst:2144 msgid "" ">>> ' spacious '.lstrip()\n" "'spacious '\n" @@ -3177,13 +2585,11 @@ msgid "" "'example.com'" msgstr "" -#: ../../library/stdtypes.rst:2149 msgid "" "See :meth:`str.removeprefix` for a method that will remove a single prefix " "string rather than all of a set of characters. For example::" msgstr "" -#: ../../library/stdtypes.rst:2152 msgid "" ">>> 'Arthur: three!'.lstrip('Arthur: ')\n" "'ee!'\n" @@ -3191,13 +2597,11 @@ msgid "" "'three!'" msgstr "" -#: ../../library/stdtypes.rst:2160 msgid "" -"This static method returns a translation table usable " -"for :meth:`str.translate`." +"This static method returns a translation table usable for :meth:`str." +"translate`." msgstr "" -#: ../../library/stdtypes.rst:2162 msgid "" "If there is only one argument, it must be a dictionary mapping Unicode " "ordinals (integers) or characters (strings of length 1) to Unicode ordinals, " @@ -3205,15 +2609,13 @@ msgid "" "converted to ordinals." msgstr "" -#: ../../library/stdtypes.rst:2167 msgid "" "If there are two arguments, they must be strings of equal length, and in the " -"resulting dictionary, each character in x will be mapped to the character at " -"the same position in y. If there is a third argument, it must be a string, " -"whose characters will be mapped to ``None`` in the result." +"resulting dictionary, each character in *from* will be mapped to the " +"character at the same position in *to*. If there is a third argument, it " +"must be a string, whose characters will be mapped to ``None`` in the result." msgstr "" -#: ../../library/stdtypes.rst:2175 msgid "" "Split the string at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3221,13 +2623,11 @@ msgid "" "containing the string itself, followed by two empty strings." msgstr "" -#: ../../library/stdtypes.rst:2183 msgid "" "If the string starts with the *prefix* string, return " "``string[len(prefix):]``. Otherwise, return a copy of the original string::" msgstr "" -#: ../../library/stdtypes.rst:2187 msgid "" ">>> 'TestHook'.removeprefix('Test')\n" "'Hook'\n" @@ -3235,14 +2635,12 @@ msgid "" "'BaseTestCase'" msgstr "" -#: ../../library/stdtypes.rst:2197 msgid "" "If the string ends with the *suffix* string and that *suffix* is not empty, " "return ``string[:-len(suffix)]``. Otherwise, return a copy of the original " "string::" msgstr "" -#: ../../library/stdtypes.rst:2201 msgid "" ">>> 'MiscTests'.removesuffix('Tests')\n" "'Misc'\n" @@ -3250,7 +2648,6 @@ msgid "" "'TmpDirMixin'" msgstr "" -#: ../../library/stdtypes.rst:2211 msgid "" "Return a copy of the string with all occurrences of substring *old* replaced " "by *new*. If *count* is given, only the first *count* occurrences are " @@ -3258,31 +2655,26 @@ msgid "" "replaced." msgstr "" -#: ../../library/stdtypes.rst:2215 msgid "*count* is now supported as a keyword argument." msgstr "" -#: ../../library/stdtypes.rst:2221 msgid "" "Return the highest index in the string where substring *sub* is found, such " "that *sub* is contained within ``s[start:end]``. Optional arguments *start* " "and *end* are interpreted as in slice notation. Return ``-1`` on failure." msgstr "" -#: ../../library/stdtypes.rst:2228 msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." msgstr "" -#: ../../library/stdtypes.rst:2234 msgid "" "Return the string right justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " "original string is returned if *width* is less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:2241 msgid "" "Split the string at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3290,7 +2682,6 @@ msgid "" "containing two empty strings, followed by the string itself." msgstr "" -#: ../../library/stdtypes.rst:2249 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done, the " @@ -3299,7 +2690,6 @@ msgid "" "behaves like :meth:`split` which is described in detail below." msgstr "" -#: ../../library/stdtypes.rst:2258 msgid "" "Return a copy of the string with trailing characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3308,7 +2698,6 @@ msgid "" "are stripped::" msgstr "" -#: ../../library/stdtypes.rst:2263 msgid "" ">>> ' spacious '.rstrip()\n" "' spacious'\n" @@ -3316,13 +2705,11 @@ msgid "" "'mississ'" msgstr "" -#: ../../library/stdtypes.rst:2268 msgid "" "See :meth:`str.removesuffix` for a method that will remove a single suffix " "string rather than all of a set of characters. For example::" msgstr "" -#: ../../library/stdtypes.rst:2271 msgid "" ">>> 'Monty Python'.rstrip(' Python')\n" "'M'\n" @@ -3330,7 +2717,6 @@ msgid "" "'Monty'" msgstr "" -#: ../../library/stdtypes.rst:2278 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done (thus, " @@ -3339,30 +2725,18 @@ msgid "" "possible splits are made)." msgstr "" -#: ../../library/stdtypes.rst:2284 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns " "``['1', '', '2']``). The *sep* argument may consist of multiple characters " -"as a single delimiter (to split with multiple delimiters, " -"use :func:`re.split`). Splitting an empty string with a specified separator " -"returns ``['']``." -msgstr "" - -#: ../../library/stdtypes.rst:2291 ../../library/stdtypes.rst:2309 -#: ../../library/stdtypes.rst:2321 ../../library/stdtypes.rst:2373 -#: ../../library/stdtypes.rst:2441 ../../library/stdtypes.rst:2509 -#: ../../library/stdtypes.rst:3541 ../../library/stdtypes.rst:3559 -#: ../../library/stdtypes.rst:3650 ../../library/stdtypes.rst:3666 -#: ../../library/stdtypes.rst:3691 ../../library/stdtypes.rst:3705 -#: ../../library/stdtypes.rst:3733 ../../library/stdtypes.rst:3747 -#: ../../library/stdtypes.rst:3765 ../../library/stdtypes.rst:3792 -#: ../../library/stdtypes.rst:3815 ../../library/stdtypes.rst:3842 -#: ../../library/stdtypes.rst:3884 ../../library/stdtypes.rst:3908 +"as a single delimiter (to split with multiple delimiters, use :func:`re." +"split`). Splitting an empty string with a specified separator returns " +"``['']``." +msgstr "" + msgid "For example::" msgstr "" -#: ../../library/stdtypes.rst:2293 msgid "" ">>> '1,2,3'.split(',')\n" "['1', '2', '3']\n" @@ -3374,7 +2748,6 @@ msgid "" "['1', '2', '3<4']" msgstr "" -#: ../../library/stdtypes.rst:2302 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive whitespace are regarded as a single separator, " @@ -3384,7 +2757,6 @@ msgid "" "returns ``[]``." msgstr "" -#: ../../library/stdtypes.rst:2311 msgid "" ">>> '1 2 3'.split()\n" "['1', '2', '3']\n" @@ -3394,13 +2766,11 @@ msgid "" "['1', '2', '3']" msgstr "" -#: ../../library/stdtypes.rst:2318 msgid "" "If *sep* is not specified or is ``None`` and *maxsplit* is ``0``, only " "leading runs of consecutive whitespace are considered." msgstr "" -#: ../../library/stdtypes.rst:2323 msgid "" ">>> \"\".split(None, 0)\n" "[]\n" @@ -3410,120 +2780,92 @@ msgid "" "['foo ']" msgstr "" -#: ../../library/stdtypes.rst:2336 msgid "" "Return a list of the lines in the string, breaking at line boundaries. Line " "breaks are not included in the resulting list unless *keepends* is given and " "true." msgstr "" -#: ../../library/stdtypes.rst:2340 msgid "" "This method splits on the following line boundaries. In particular, the " "boundaries are a superset of :term:`universal newlines`." msgstr "" -#: ../../library/stdtypes.rst:2344 msgid "Representation" msgstr "" -#: ../../library/stdtypes.rst:2344 msgid "Description" msgstr "" -#: ../../library/stdtypes.rst:2346 msgid "``\\n``" msgstr "" -#: ../../library/stdtypes.rst:2346 msgid "Line Feed" msgstr "" -#: ../../library/stdtypes.rst:2348 msgid "``\\r``" msgstr "" -#: ../../library/stdtypes.rst:2348 msgid "Carriage Return" msgstr "" -#: ../../library/stdtypes.rst:2350 msgid "``\\r\\n``" msgstr "" -#: ../../library/stdtypes.rst:2350 msgid "Carriage Return + Line Feed" msgstr "" -#: ../../library/stdtypes.rst:2352 msgid "``\\v`` or ``\\x0b``" msgstr "" -#: ../../library/stdtypes.rst:2352 msgid "Line Tabulation" msgstr "" -#: ../../library/stdtypes.rst:2354 msgid "``\\f`` or ``\\x0c``" msgstr "" -#: ../../library/stdtypes.rst:2354 msgid "Form Feed" msgstr "" -#: ../../library/stdtypes.rst:2356 msgid "``\\x1c``" msgstr "" -#: ../../library/stdtypes.rst:2356 msgid "File Separator" msgstr "" -#: ../../library/stdtypes.rst:2358 msgid "``\\x1d``" msgstr "" -#: ../../library/stdtypes.rst:2358 msgid "Group Separator" msgstr "" -#: ../../library/stdtypes.rst:2360 msgid "``\\x1e``" msgstr "" -#: ../../library/stdtypes.rst:2360 msgid "Record Separator" msgstr "" -#: ../../library/stdtypes.rst:2362 msgid "``\\x85``" msgstr "" -#: ../../library/stdtypes.rst:2362 msgid "Next Line (C1 Control Code)" msgstr "" -#: ../../library/stdtypes.rst:2364 msgid "``\\u2028``" msgstr "" -#: ../../library/stdtypes.rst:2364 msgid "Line Separator" msgstr "" -#: ../../library/stdtypes.rst:2366 msgid "``\\u2029``" msgstr "" -#: ../../library/stdtypes.rst:2366 msgid "Paragraph Separator" msgstr "" -#: ../../library/stdtypes.rst:2371 msgid "``\\v`` and ``\\f`` added to list of line boundaries." msgstr "" -#: ../../library/stdtypes.rst:2375 msgid "" ">>> 'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "['ab c', '', 'de fg', 'kl']\n" @@ -3531,14 +2873,12 @@ msgid "" "['ab c\\n', '\\n', 'de fg\\r', 'kl\\r\\n']" msgstr "" -#: ../../library/stdtypes.rst:2380 msgid "" "Unlike :meth:`~str.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " "does not result in an extra line::" msgstr "" -#: ../../library/stdtypes.rst:2384 msgid "" ">>> \"\".splitlines()\n" "[]\n" @@ -3546,11 +2886,9 @@ msgid "" "['One line']" msgstr "" -#: ../../library/stdtypes.rst:2389 msgid "For comparison, ``split('\\n')`` gives::" msgstr "" -#: ../../library/stdtypes.rst:2391 msgid "" ">>> ''.split('\\n')\n" "['']\n" @@ -3558,7 +2896,6 @@ msgid "" "['Two lines', '']" msgstr "" -#: ../../library/stdtypes.rst:2399 msgid "" "Return ``True`` if string starts with the *prefix*, otherwise return " "``False``. *prefix* can also be a tuple of prefixes to look for. With " @@ -3566,7 +2903,6 @@ msgid "" "*end*, stop comparing string at that position." msgstr "" -#: ../../library/stdtypes.rst:2407 msgid "" "Return a copy of the string with the leading and trailing characters " "removed. The *chars* argument is a string specifying the set of characters " @@ -3575,7 +2911,6 @@ msgid "" "all combinations of its values are stripped::" msgstr "" -#: ../../library/stdtypes.rst:2413 msgid "" ">>> ' spacious '.strip()\n" "'spacious'\n" @@ -3583,7 +2918,6 @@ msgid "" "'example'" msgstr "" -#: ../../library/stdtypes.rst:2418 msgid "" "The outermost leading and trailing *chars* argument values are stripped from " "the string. Characters are removed from the leading end until reaching a " @@ -3591,33 +2925,28 @@ msgid "" "A similar action takes place on the trailing end. For example::" msgstr "" -#: ../../library/stdtypes.rst:2424 msgid "" ">>> comment_string = '#....... Section 3.2.1 Issue #32 .......'\n" ">>> comment_string.strip('.#! ')\n" "'Section 3.2.1 Issue #32'" msgstr "" -#: ../../library/stdtypes.rst:2431 msgid "" "Return a copy of the string with uppercase characters converted to lowercase " -"and vice versa. Note that it is not necessarily true that " -"``s.swapcase().swapcase() == s``." +"and vice versa. Note that it is not necessarily true that ``s.swapcase()." +"swapcase() == s``." msgstr "" -#: ../../library/stdtypes.rst:2438 msgid "" "Return a titlecased version of the string where words start with an " "uppercase character and the remaining characters are lowercase." msgstr "" -#: ../../library/stdtypes.rst:2443 msgid "" ">>> 'Hello world'.title()\n" "'Hello World'" msgstr "" -#: ../../library/stdtypes.rst:2446 ../../library/stdtypes.rst:3852 msgid "" "The algorithm uses a simple language-independent definition of a word as " "groups of consecutive letters. The definition works in many contexts but it " @@ -3625,25 +2954,21 @@ msgid "" "which may not be the desired result::" msgstr "" -#: ../../library/stdtypes.rst:2451 msgid "" ">>> \"they're bill's friends from the UK\".title()\n" "\"They'Re Bill'S Friends From The Uk\"" msgstr "" -#: ../../library/stdtypes.rst:2454 msgid "" "The :func:`string.capwords` function does not have this problem, as it " "splits words on spaces only." msgstr "" -#: ../../library/stdtypes.rst:2457 msgid "" "Alternatively, a workaround for apostrophes can be constructed using regular " "expressions::" msgstr "" -#: ../../library/stdtypes.rst:2460 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -3655,31 +2980,27 @@ msgid "" "\"They're Bill's Friends.\"" msgstr "" -#: ../../library/stdtypes.rst:2472 msgid "" "Return a copy of the string in which each character has been mapped through " "the given translation table. The table must be an object that implements " -"indexing via :meth:`~object.__getitem__`, typically a :term:`mapping` " -"or :term:`sequence`. When indexed by a Unicode ordinal (an integer), the " -"table object can do any of the following: return a Unicode ordinal or a " -"string, to map the character to one or more other characters; return " -"``None``, to delete the character from the return string; or raise " -"a :exc:`LookupError` exception, to map the character to itself." +"indexing via :meth:`~object.__getitem__`, typically a :term:`mapping` or :" +"term:`sequence`. When indexed by a Unicode ordinal (an integer), the table " +"object can do any of the following: return a Unicode ordinal or a string, to " +"map the character to one or more other characters; return ``None``, to " +"delete the character from the return string; or raise a :exc:`LookupError` " +"exception, to map the character to itself." msgstr "" -#: ../../library/stdtypes.rst:2481 msgid "" "You can use :meth:`str.maketrans` to create a translation map from character-" "to-character mappings in different formats." msgstr "" -#: ../../library/stdtypes.rst:2484 msgid "" "See also the :mod:`codecs` module for a more flexible approach to custom " "character mappings." msgstr "" -#: ../../library/stdtypes.rst:2490 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "uppercase. Note that ``s.upper().isupper()`` might be ``False`` if ``s`` " @@ -3688,14 +3009,12 @@ msgid "" "titlecase)." msgstr "" -#: ../../library/stdtypes.rst:2496 msgid "" "The uppercasing algorithm used is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." msgstr "" -#: ../../library/stdtypes.rst:2503 msgid "" "Return a copy of the string left filled with ASCII ``'0'`` digits to make a " "string of length *width*. A leading sign prefix (``'+'``/``'-'``) is handled " @@ -3703,7 +3022,6 @@ msgid "" "original string is returned if *width* is less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:2511 msgid "" ">>> \"42\".zfill(5)\n" "'00042'\n" @@ -3711,27 +3029,22 @@ msgid "" "'-0042'" msgstr "" -#: ../../library/stdtypes.rst:2532 msgid "Formatted String Literals (f-strings)" msgstr "" -#: ../../library/stdtypes.rst:2535 msgid "" "The :keyword:`await` and :keyword:`async for` can be used in expressions " "within f-strings." msgstr "" -#: ../../library/stdtypes.rst:2538 msgid "Added the debugging operator (``=``)" msgstr "" -#: ../../library/stdtypes.rst:2540 msgid "" "Many restrictions on expressions within f-strings have been removed. " "Notably, nested strings, comments, and backslashes are now permitted." msgstr "" -#: ../../library/stdtypes.rst:2544 msgid "" "An :dfn:`f-string` (formally a :dfn:`formatted string literal`) is a string " "literal that is prefixed with ``f`` or ``F``. This type of string literal " @@ -3741,7 +3054,6 @@ msgid "" "into regular :class:`str` objects. For example:" msgstr "" -#: ../../library/stdtypes.rst:2552 msgid "" ">>> who = 'nobody'\n" ">>> nationality = 'Spanish'\n" @@ -3749,104 +3061,83 @@ msgid "" "'Nobody expects the Spanish Inquisition!'" msgstr "" -#: ../../library/stdtypes.rst:2559 msgid "It is also possible to use a multi line f-string:" msgstr "" -#: ../../library/stdtypes.rst:2561 msgid "" ">>> f'''This is a string\n" "... on two lines'''\n" "'This is a string\\non two lines'" msgstr "" -#: ../../library/stdtypes.rst:2567 msgid "" "A single opening curly bracket, ``'{'``, marks a *replacement field* that " "can contain any Python expression:" msgstr "" -#: ../../library/stdtypes.rst:2570 msgid "" ">>> nationality = 'Spanish'\n" ">>> f'The {nationality} Inquisition!'\n" "'The Spanish Inquisition!'" msgstr "" -#: ../../library/stdtypes.rst:2576 msgid "To include a literal ``{`` or ``}``, use a double bracket:" msgstr "" -#: ../../library/stdtypes.rst:2578 msgid "" ">>> x = 42\n" ">>> f'{{x}} is {x}'\n" "'{x} is 42'" msgstr "" -#: ../../library/stdtypes.rst:2584 msgid "" "Functions can also be used, and :ref:`format specifiers `:" msgstr "" -#: ../../library/stdtypes.rst:2586 msgid "" ">>> from math import sqrt\n" ">>> f'√2 \\N{ALMOST EQUAL TO} {sqrt(2):.5f}'\n" "'√2 ≈ 1.41421'" msgstr "" -#: ../../library/stdtypes.rst:2592 msgid "Any non-string expression is converted using :func:`str`, by default:" msgstr "" -#: ../../library/stdtypes.rst:2594 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)}'\n" "'1/3'" msgstr "" -#: ../../library/stdtypes.rst:2600 msgid "" "To use an explicit conversion, use the ``!`` (exclamation mark) operator, " "followed by any of the valid formats, which are:" msgstr "" -#: ../../library/stdtypes.rst:2604 ../../library/stdtypes.rst:2772 -#: ../../library/stdtypes.rst:4031 msgid "Conversion" msgstr "" -#: ../../library/stdtypes.rst:2606 msgid "``!a``" msgstr "" -#: ../../library/stdtypes.rst:2606 msgid ":func:`ascii`" msgstr "" -#: ../../library/stdtypes.rst:2607 msgid "``!r``" msgstr "" -#: ../../library/stdtypes.rst:2607 msgid ":func:`repr`" msgstr "" -#: ../../library/stdtypes.rst:2608 msgid "``!s``" msgstr "" -#: ../../library/stdtypes.rst:2608 msgid ":func:`str`" msgstr "" -#: ../../library/stdtypes.rst:2611 msgid "For example:" msgstr "" -#: ../../library/stdtypes.rst:2613 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)!s}'\n" @@ -3858,7 +3149,6 @@ msgid "" "'\\xbfD\\xf3nde est\\xe1 el Presidente?'" msgstr "" -#: ../../library/stdtypes.rst:2624 msgid "" "While debugging it may be helpful to see both the expression and its value, " "by using the equals sign (``=``) after the expression. This preserves spaces " @@ -3866,7 +3156,6 @@ msgid "" "debugging operator uses the :func:`repr` (``!r``) conversion. For example:" msgstr "" -#: ../../library/stdtypes.rst:2630 msgid "" ">>> from fractions import Fraction\n" ">>> calculation = Fraction(1, 3)\n" @@ -3878,7 +3167,6 @@ msgid "" "'calculation = 1/3'" msgstr "" -#: ../../library/stdtypes.rst:2641 msgid "" "Once the output has been evaluated, it can be formatted using a :ref:`format " "specifier ` following a colon (``':'``). After the expression " @@ -3888,7 +3176,6 @@ msgid "" "used as the final value for the replacement field. For example:" msgstr "" -#: ../../library/stdtypes.rst:2649 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 7):.6f}'\n" @@ -3897,22 +3184,22 @@ msgid "" "'___+1/7___'" msgstr "" -#: ../../library/stdtypes.rst:2661 msgid "``printf``-style String Formatting" msgstr "" -#: ../../library/stdtypes.rst:2674 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " -"dictionaries correctly). Using the newer :ref:`formatted string literals `, the :meth:`str.format` interface, or :ref:`template strings ($-" -"strings) ` may help avoid these errors. Each of " +"dictionaries correctly)." +msgstr "" + +msgid "" +"Using :ref:`formatted string literals `, the :meth:`str.format` " +"interface, or :class:`string.Template` may help avoid these errors. Each of " "these alternatives provides their own trade-offs and benefits of simplicity, " "flexibility, and/or extensibility." msgstr "" -#: ../../library/stdtypes.rst:2682 msgid "" "String objects have one unique built-in operation: the ``%`` operator " "(modulo). This is also known as the string *formatting* or *interpolation* " @@ -3922,13 +3209,11 @@ msgid "" "function in the C language. For example:" msgstr "" -#: ../../library/stdtypes.rst:2689 msgid "" ">>> print('%s has %d quote types.' % ('Python', 2))\n" "Python has 2 quote types." msgstr "" -#: ../../library/stdtypes.rst:2694 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -3936,36 +3221,30 @@ msgid "" "example, a dictionary)." msgstr "" -#: ../../library/stdtypes.rst:2704 ../../library/stdtypes.rst:3963 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" msgstr "" -#: ../../library/stdtypes.rst:2707 ../../library/stdtypes.rst:3966 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "" -#: ../../library/stdtypes.rst:2709 ../../library/stdtypes.rst:3968 msgid "" "Mapping key (optional), consisting of a parenthesised sequence of characters " "(for example, ``(somename)``)." msgstr "" -#: ../../library/stdtypes.rst:2712 ../../library/stdtypes.rst:3971 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." msgstr "" -#: ../../library/stdtypes.rst:2715 ../../library/stdtypes.rst:3974 msgid "" "Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " "actual width is read from the next element of the tuple in *values*, and the " "object to convert comes after the minimum field width and optional precision." msgstr "" -#: ../../library/stdtypes.rst:2719 ../../library/stdtypes.rst:3978 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. " "If specified as ``'*'`` (an asterisk), the actual precision is read from the " @@ -3973,15 +3252,12 @@ msgid "" "the precision." msgstr "" -#: ../../library/stdtypes.rst:2724 ../../library/stdtypes.rst:3983 msgid "Length modifier (optional)." msgstr "" -#: ../../library/stdtypes.rst:2726 ../../library/stdtypes.rst:3985 msgid "Conversion type." msgstr "" -#: ../../library/stdtypes.rst:2728 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the string *must* include a parenthesised mapping key into that " @@ -3989,293 +3265,229 @@ msgid "" "selects the value to be formatted from the mapping. For example:" msgstr "" -#: ../../library/stdtypes.rst:2737 ../../library/stdtypes.rst:3996 msgid "" "In this case no ``*`` specifiers may occur in a format (since they require a " "sequential parameter list)." msgstr "" -#: ../../library/stdtypes.rst:2740 ../../library/stdtypes.rst:3999 msgid "The conversion flag characters are:" msgstr "" -#: ../../library/stdtypes.rst:2749 ../../library/stdtypes.rst:4008 msgid "Flag" msgstr "" -#: ../../library/stdtypes.rst:2751 ../../library/stdtypes.rst:4010 msgid "``'#'``" msgstr "" -#: ../../library/stdtypes.rst:2751 ../../library/stdtypes.rst:4010 msgid "" "The value conversion will use the \"alternate form\" (where defined below)." msgstr "" -#: ../../library/stdtypes.rst:2754 ../../library/stdtypes.rst:4013 msgid "``'0'``" msgstr "" -#: ../../library/stdtypes.rst:2754 ../../library/stdtypes.rst:4013 msgid "The conversion will be zero padded for numeric values." msgstr "" -#: ../../library/stdtypes.rst:2756 ../../library/stdtypes.rst:4015 msgid "``'-'``" msgstr "" -#: ../../library/stdtypes.rst:2756 ../../library/stdtypes.rst:4015 msgid "" "The converted value is left adjusted (overrides the ``'0'`` conversion if " "both are given)." msgstr "" -#: ../../library/stdtypes.rst:2759 ../../library/stdtypes.rst:4018 msgid "``' '``" msgstr "" -#: ../../library/stdtypes.rst:2759 ../../library/stdtypes.rst:4018 msgid "" "(a space) A blank should be left before a positive number (or empty string) " "produced by a signed conversion." msgstr "" -#: ../../library/stdtypes.rst:2762 ../../library/stdtypes.rst:4021 msgid "``'+'``" -msgstr "``'+'``" +msgstr "" -#: ../../library/stdtypes.rst:2762 ../../library/stdtypes.rst:4021 msgid "" "A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " "a \"space\" flag)." msgstr "" -#: ../../library/stdtypes.rst:2766 ../../library/stdtypes.rst:4025 msgid "" "A length modifier (``h``, ``l``, or ``L``) may be present, but is ignored as " "it is not necessary for Python -- so e.g. ``%ld`` is identical to ``%d``." msgstr "" -#: ../../library/stdtypes.rst:2769 ../../library/stdtypes.rst:4028 msgid "The conversion types are:" msgstr "" -#: ../../library/stdtypes.rst:2774 ../../library/stdtypes.rst:4033 msgid "``'d'``" -msgstr "``'d'``" +msgstr "" -#: ../../library/stdtypes.rst:2774 ../../library/stdtypes.rst:2776 -#: ../../library/stdtypes.rst:4033 ../../library/stdtypes.rst:4035 msgid "Signed integer decimal." msgstr "" -#: ../../library/stdtypes.rst:2776 ../../library/stdtypes.rst:4035 msgid "``'i'``" -msgstr "``'i'``" +msgstr "" -#: ../../library/stdtypes.rst:2778 ../../library/stdtypes.rst:4037 msgid "``'o'``" msgstr "" -#: ../../library/stdtypes.rst:2778 ../../library/stdtypes.rst:4037 msgid "Signed octal value." msgstr "" -#: ../../library/stdtypes.rst:2780 ../../library/stdtypes.rst:4039 msgid "``'u'``" -msgstr "``'u'``" +msgstr "" -#: ../../library/stdtypes.rst:2780 ../../library/stdtypes.rst:4039 msgid "Obsolete type -- it is identical to ``'d'``." msgstr "" -#: ../../library/stdtypes.rst:2782 ../../library/stdtypes.rst:4041 msgid "``'x'``" -msgstr "``'x'``" +msgstr "" -#: ../../library/stdtypes.rst:2782 ../../library/stdtypes.rst:4041 msgid "Signed hexadecimal (lowercase)." msgstr "" -#: ../../library/stdtypes.rst:2784 ../../library/stdtypes.rst:4043 msgid "``'X'``" msgstr "" -#: ../../library/stdtypes.rst:2784 ../../library/stdtypes.rst:4043 msgid "Signed hexadecimal (uppercase)." msgstr "" -#: ../../library/stdtypes.rst:2786 ../../library/stdtypes.rst:4045 msgid "``'e'``" msgstr "" -#: ../../library/stdtypes.rst:2786 ../../library/stdtypes.rst:4045 msgid "Floating-point exponential format (lowercase)." msgstr "" -#: ../../library/stdtypes.rst:2788 ../../library/stdtypes.rst:4047 msgid "``'E'``" msgstr "" -#: ../../library/stdtypes.rst:2788 ../../library/stdtypes.rst:4047 msgid "Floating-point exponential format (uppercase)." msgstr "" -#: ../../library/stdtypes.rst:2790 ../../library/stdtypes.rst:4049 msgid "``'f'``" -msgstr "``'f'``" +msgstr "" -#: ../../library/stdtypes.rst:2790 ../../library/stdtypes.rst:2792 -#: ../../library/stdtypes.rst:4049 ../../library/stdtypes.rst:4051 msgid "Floating-point decimal format." msgstr "" -#: ../../library/stdtypes.rst:2792 ../../library/stdtypes.rst:4051 msgid "``'F'``" msgstr "" -#: ../../library/stdtypes.rst:2794 ../../library/stdtypes.rst:4053 msgid "``'g'``" msgstr "" -#: ../../library/stdtypes.rst:2794 ../../library/stdtypes.rst:4053 msgid "" "Floating-point format. Uses lowercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." msgstr "" -#: ../../library/stdtypes.rst:2798 ../../library/stdtypes.rst:4057 msgid "``'G'``" msgstr "" -#: ../../library/stdtypes.rst:2798 ../../library/stdtypes.rst:4057 msgid "" "Floating-point format. Uses uppercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." msgstr "" -#: ../../library/stdtypes.rst:2802 ../../library/stdtypes.rst:4061 msgid "``'c'``" msgstr "" -#: ../../library/stdtypes.rst:2802 msgid "Single character (accepts integer or single character string)." msgstr "" -#: ../../library/stdtypes.rst:2805 ../../library/stdtypes.rst:4074 msgid "``'r'``" -msgstr "``'r'``" +msgstr "" -#: ../../library/stdtypes.rst:2805 msgid "String (converts any Python object using :func:`repr`)." msgstr "" -#: ../../library/stdtypes.rst:2808 ../../library/stdtypes.rst:4068 msgid "``'s'``" msgstr "" -#: ../../library/stdtypes.rst:2808 msgid "String (converts any Python object using :func:`str`)." msgstr "" -#: ../../library/stdtypes.rst:2811 ../../library/stdtypes.rst:4071 msgid "``'a'``" -msgstr "``'a'``" +msgstr "" -#: ../../library/stdtypes.rst:2811 msgid "String (converts any Python object using :func:`ascii`)." msgstr "" -#: ../../library/stdtypes.rst:2814 ../../library/stdtypes.rst:4077 msgid "``'%'``" msgstr "" -#: ../../library/stdtypes.rst:2814 ../../library/stdtypes.rst:4077 msgid "No argument is converted, results in a ``'%'`` character in the result." msgstr "" -#: ../../library/stdtypes.rst:2821 ../../library/stdtypes.rst:4084 msgid "" "The alternate form causes a leading octal specifier (``'0o'``) to be " "inserted before the first digit." msgstr "" -#: ../../library/stdtypes.rst:2825 ../../library/stdtypes.rst:4088 msgid "" "The alternate form causes a leading ``'0x'`` or ``'0X'`` (depending on " "whether the ``'x'`` or ``'X'`` format was used) to be inserted before the " "first digit." msgstr "" -#: ../../library/stdtypes.rst:2829 ../../library/stdtypes.rst:4092 msgid "" "The alternate form causes the result to always contain a decimal point, even " "if no digits follow it." msgstr "" -#: ../../library/stdtypes.rst:2832 ../../library/stdtypes.rst:4095 msgid "" "The precision determines the number of digits after the decimal point and " "defaults to 6." msgstr "" -#: ../../library/stdtypes.rst:2836 ../../library/stdtypes.rst:4099 msgid "" "The alternate form causes the result to always contain a decimal point, and " "trailing zeroes are not removed as they would otherwise be." msgstr "" -#: ../../library/stdtypes.rst:2839 ../../library/stdtypes.rst:4102 msgid "" "The precision determines the number of significant digits before and after " "the decimal point and defaults to 6." msgstr "" -#: ../../library/stdtypes.rst:2843 ../../library/stdtypes.rst:4106 msgid "If precision is ``N``, the output is truncated to ``N`` characters." msgstr "" -#: ../../library/stdtypes.rst:2846 ../../library/stdtypes.rst:4115 msgid "See :pep:`237`." msgstr "" -#: ../../library/stdtypes.rst:2848 msgid "" "Since Python strings have an explicit length, ``%s`` conversions do not " "assume that ``'\\0'`` is the end of the string." msgstr "" -#: ../../library/stdtypes.rst:2853 msgid "" "``%f`` conversions for numbers whose absolute value is over 1e50 are no " "longer replaced by ``%g`` conversions." msgstr "" -#: ../../library/stdtypes.rst:2864 msgid "" -"Binary Sequence Types " -"--- :class:`bytes`, :class:`bytearray`, :class:`memoryview`" +"Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" +"`memoryview`" msgstr "" -#: ../../library/stdtypes.rst:2872 msgid "" -"The core built-in types for manipulating binary data are :class:`bytes` " -"and :class:`bytearray`. They are supported by :class:`memoryview` which uses " -"the :ref:`buffer protocol ` to access the memory of other " -"binary objects without needing to make a copy." +"The core built-in types for manipulating binary data are :class:`bytes` and :" +"class:`bytearray`. They are supported by :class:`memoryview` which uses the :" +"ref:`buffer protocol ` to access the memory of other binary " +"objects without needing to make a copy." msgstr "" -#: ../../library/stdtypes.rst:2877 msgid "" "The :mod:`array` module supports efficient storage of basic data types like " "32-bit integers and IEEE754 double-precision floating values." msgstr "" -#: ../../library/stdtypes.rst:2883 msgid "Bytes Objects" msgstr "" -#: ../../library/stdtypes.rst:2887 msgid "" "Bytes objects are immutable sequences of single bytes. Since many major " "binary protocols are based on the ASCII text encoding, bytes objects offer " @@ -4283,40 +3495,33 @@ msgid "" "and are closely related to string objects in a variety of other ways." msgstr "" -#: ../../library/stdtypes.rst:2894 msgid "" "Firstly, the syntax for bytes literals is largely the same as that for " "string literals, except that a ``b`` prefix is added:" msgstr "" -#: ../../library/stdtypes.rst:2897 msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" msgstr "" -#: ../../library/stdtypes.rst:2898 msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``" msgstr "" -#: ../../library/stdtypes.rst:2899 msgid "" "Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" msgstr "" -#: ../../library/stdtypes.rst:2901 msgid "" "Only ASCII characters are permitted in bytes literals (regardless of the " "declared source code encoding). Any binary values over 127 must be entered " "into bytes literals using the appropriate escape sequence." msgstr "" -#: ../../library/stdtypes.rst:2905 msgid "" "As with string literals, bytes literals may also use a ``r`` prefix to " "disable processing of escape sequences. See :ref:`strings` for more about " "the various forms of bytes literal, including supported escape sequences." msgstr "" -#: ../../library/stdtypes.rst:2909 msgid "" "While bytes literals and representations are based on ASCII text, bytes " "objects actually behave like immutable sequences of integers, with each " @@ -4329,29 +3534,23 @@ msgid "" "compatible will usually lead to data corruption)." msgstr "" -#: ../../library/stdtypes.rst:2919 msgid "" "In addition to the literal forms, bytes objects can be created in a number " "of other ways:" msgstr "" -#: ../../library/stdtypes.rst:2922 msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" msgstr "" -#: ../../library/stdtypes.rst:2923 msgid "From an iterable of integers: ``bytes(range(20))``" msgstr "" -#: ../../library/stdtypes.rst:2924 msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" msgstr "" -#: ../../library/stdtypes.rst:2926 msgid "Also see the :ref:`bytes ` built-in." msgstr "" -#: ../../library/stdtypes.rst:2928 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4359,38 +3558,32 @@ msgid "" "that format:" msgstr "" -#: ../../library/stdtypes.rst:2934 msgid "" "This :class:`bytes` class method returns a bytes object, decoding the given " "string object. The string must contain two hexadecimal digits per byte, " "with ASCII whitespace being ignored." msgstr "" -#: ../../library/stdtypes.rst:2941 msgid "" ":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " "spaces." msgstr "" -#: ../../library/stdtypes.rst:2945 msgid "" ":meth:`bytes.fromhex` now accepts ASCII :class:`bytes` and :term:`bytes-like " "objects ` as input." msgstr "" -#: ../../library/stdtypes.rst:2949 msgid "" "A reverse conversion function exists to transform a bytes object into its " "hexadecimal representation." msgstr "" -#: ../../library/stdtypes.rst:2954 ../../library/stdtypes.rst:3043 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the instance." msgstr "" -#: ../../library/stdtypes.rst:2960 msgid "" "If you want to make the hex string easier to read, you can specify a single " "character separator *sep* parameter to include in the output. By default, " @@ -4399,13 +3592,11 @@ msgid "" "the separator position from the right, negative values from the left." msgstr "" -#: ../../library/stdtypes.rst:2977 msgid "" ":meth:`bytes.hex` now supports optional *sep* and *bytes_per_sep* parameters " "to insert separators between bytes in the hex output." msgstr "" -#: ../../library/stdtypes.rst:2981 msgid "" "Since bytes objects are sequences of integers (akin to a tuple), for a bytes " "object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes " @@ -4413,58 +3604,47 @@ msgid "" "and slicing will produce a string of length 1)" msgstr "" -#: ../../library/stdtypes.rst:2986 msgid "" "The representation of bytes objects uses the literal format (``b'...'``) " "since it is often more useful than e.g. ``bytes([46, 46, 46])``. You can " "always convert a bytes object into a list of integers using ``list(b)``." msgstr "" -#: ../../library/stdtypes.rst:2994 msgid "Bytearray Objects" msgstr "" -#: ../../library/stdtypes.rst:2998 msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." msgstr "" -#: ../../library/stdtypes.rst:3003 msgid "" "There is no dedicated literal syntax for bytearray objects, instead they are " "always created by calling the constructor:" msgstr "" -#: ../../library/stdtypes.rst:3006 msgid "Creating an empty instance: ``bytearray()``" msgstr "" -#: ../../library/stdtypes.rst:3007 msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" msgstr "" -#: ../../library/stdtypes.rst:3008 msgid "From an iterable of integers: ``bytearray(range(20))``" msgstr "" -#: ../../library/stdtypes.rst:3009 msgid "" "Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" msgstr "" -#: ../../library/stdtypes.rst:3011 msgid "" "As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " "operations described in :ref:`bytes-methods`." msgstr "" -#: ../../library/stdtypes.rst:3015 msgid "Also see the :ref:`bytearray ` built-in." msgstr "" -#: ../../library/stdtypes.rst:3017 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4472,64 +3652,53 @@ msgid "" "in that format:" msgstr "" -#: ../../library/stdtypes.rst:3023 msgid "" "This :class:`bytearray` class method returns bytearray object, decoding the " "given string object. The string must contain two hexadecimal digits per " "byte, with ASCII whitespace being ignored." msgstr "" -#: ../../library/stdtypes.rst:3030 msgid "" ":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " "just spaces." msgstr "" -#: ../../library/stdtypes.rst:3034 msgid "" ":meth:`bytearray.fromhex` now accepts ASCII :class:`bytes` and :term:`bytes-" "like objects ` as input." msgstr "" -#: ../../library/stdtypes.rst:3038 msgid "" "A reverse conversion function exists to transform a bytearray object into " "its hexadecimal representation." msgstr "" -#: ../../library/stdtypes.rst:3051 msgid "" "Similar to :meth:`bytes.hex`, :meth:`bytearray.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " "the hex output." msgstr "" -#: ../../library/stdtypes.rst:3058 msgid "" "Resize the :class:`bytearray` to contain *size* bytes. *size* must be " "greater than or equal to 0." msgstr "" -#: ../../library/stdtypes.rst:3061 msgid "" "If the :class:`bytearray` needs to shrink, bytes beyond *size* are truncated." msgstr "" -#: ../../library/stdtypes.rst:3063 msgid "" "If the :class:`bytearray` needs to grow, all new bytes, those beyond *size*, " "will be set to null bytes." msgstr "" -#: ../../library/stdtypes.rst:3067 msgid "This is equivalent to:" msgstr "" -#: ../../library/stdtypes.rst:3075 msgid "Examples:" msgstr "" -#: ../../library/stdtypes.rst:3088 msgid "" "Since bytearray objects are sequences of integers (akin to a list), for a " "bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be " @@ -4537,7 +3706,6 @@ msgid "" "both indexing and slicing will produce a string of length 1)" msgstr "" -#: ../../library/stdtypes.rst:3093 msgid "" "The representation of bytearray objects uses the bytes literal format " "(``bytearray(b'...')``) since it is often more useful than e.g. " @@ -4545,11 +3713,9 @@ msgid "" "a list of integers using ``list(b)``." msgstr "" -#: ../../library/stdtypes.rst:3102 msgid "Bytes and Bytearray Operations" msgstr "" -#: ../../library/stdtypes.rst:3107 msgid "" "Both bytes and bytearray objects support the :ref:`common ` " "sequence operations. They interoperate not just with operands of the same " @@ -4558,83 +3724,66 @@ msgid "" "return type of the result may depend on the order of operands." msgstr "" -#: ../../library/stdtypes.rst:3115 msgid "" "The methods on bytes and bytearray objects don't accept strings as their " "arguments, just as the methods on strings don't accept bytes as their " "arguments. For example, you have to write::" msgstr "" -#: ../../library/stdtypes.rst:3119 msgid "" "a = \"abc\"\n" "b = a.replace(\"a\", \"f\")" msgstr "" -#: ../../library/stdtypes.rst:3122 msgid "and::" msgstr "" -#: ../../library/stdtypes.rst:3124 msgid "" "a = b\"abc\"\n" "b = a.replace(b\"a\", b\"f\")" msgstr "" -#: ../../library/stdtypes.rst:3127 msgid "" "Some bytes and bytearray operations assume the use of ASCII compatible " "binary formats, and hence should be avoided when working with arbitrary " "binary data. These restrictions are covered below." msgstr "" -#: ../../library/stdtypes.rst:3132 msgid "" "Using these ASCII based operations to manipulate binary data that is not " "stored in an ASCII based format may lead to data corruption." msgstr "" -#: ../../library/stdtypes.rst:3135 msgid "" "The following methods on bytes and bytearray objects can be used with " "arbitrary binary data." msgstr "" -#: ../../library/stdtypes.rst:3141 msgid "" "Return the number of non-overlapping occurrences of subsequence *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " "interpreted as in slice notation." msgstr "" -#: ../../library/stdtypes.rst:3145 ../../library/stdtypes.rst:3250 -#: ../../library/stdtypes.rst:3272 ../../library/stdtypes.rst:3338 -#: ../../library/stdtypes.rst:3351 msgid "" "The subsequence to search for may be any :term:`bytes-like object` or an " "integer in the range 0 to 255." msgstr "" -#: ../../library/stdtypes.rst:3148 msgid "" "If *sub* is empty, returns the number of empty slices between characters " "which is the length of the bytes object plus one." msgstr "" -#: ../../library/stdtypes.rst:3151 ../../library/stdtypes.rst:3262 -#: ../../library/stdtypes.rst:3275 ../../library/stdtypes.rst:3341 -#: ../../library/stdtypes.rst:3354 msgid "Also accept an integer in the range 0 to 255 as the subsequence." msgstr "" -#: ../../library/stdtypes.rst:3158 msgid "" "If the binary data starts with the *prefix* string, return " "``bytes[len(prefix):]``. Otherwise, return a copy of the original binary " "data::" msgstr "" -#: ../../library/stdtypes.rst:3162 msgid "" ">>> b'TestHook'.removeprefix(b'Test')\n" "b'Hook'\n" @@ -4642,32 +3791,20 @@ msgid "" "b'BaseTestCase'" msgstr "" -#: ../../library/stdtypes.rst:3167 msgid "The *prefix* may be any :term:`bytes-like object`." msgstr "" -#: ../../library/stdtypes.rst:3171 ../../library/stdtypes.rst:3193 -#: ../../library/stdtypes.rst:3326 ../../library/stdtypes.rst:3419 -#: ../../library/stdtypes.rst:3433 ../../library/stdtypes.rst:3464 -#: ../../library/stdtypes.rst:3478 ../../library/stdtypes.rst:3520 -#: ../../library/stdtypes.rst:3591 ../../library/stdtypes.rst:3609 -#: ../../library/stdtypes.rst:3637 ../../library/stdtypes.rst:3776 -#: ../../library/stdtypes.rst:3831 ../../library/stdtypes.rst:3874 -#: ../../library/stdtypes.rst:3895 ../../library/stdtypes.rst:3917 -#: ../../library/stdtypes.rst:4119 msgid "" "The bytearray version of this method does *not* operate in place - it always " "produces a new object, even if no changes were made." msgstr "" -#: ../../library/stdtypes.rst:3180 msgid "" "If the binary data ends with the *suffix* string and that *suffix* is not " "empty, return ``bytes[:-len(suffix)]``. Otherwise, return a copy of the " "original binary data::" msgstr "" -#: ../../library/stdtypes.rst:3184 msgid "" ">>> b'MiscTests'.removesuffix(b'Tests')\n" "b'Misc'\n" @@ -4675,37 +3812,31 @@ msgid "" "b'TmpDirMixin'" msgstr "" -#: ../../library/stdtypes.rst:3189 msgid "The *suffix* may be any :term:`bytes-like object`." msgstr "" -#: ../../library/stdtypes.rst:3202 msgid "Return the bytes decoded to a :class:`str`." msgstr "" -#: ../../library/stdtypes.rst:3207 msgid "" "*errors* controls how decoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " -"are ``'ignore'``, ``'replace'``, and any other name registered " -"via :func:`codecs.register_error`. See :ref:`error-handlers` for details." +"are ``'ignore'``, ``'replace'``, and any other name registered via :func:" +"`codecs.register_error`. See :ref:`error-handlers` for details." msgstr "" -#: ../../library/stdtypes.rst:3213 msgid "" "For performance reasons, the value of *errors* is not checked for validity " -"unless a decoding error actually occurs, :ref:`devmode` is enabled or " -"a :ref:`debug build ` is used." +"unless a decoding error actually occurs, :ref:`devmode` is enabled or a :ref:" +"`debug build ` is used." msgstr "" -#: ../../library/stdtypes.rst:3219 msgid "" -"Passing the *encoding* argument to :class:`str` allows decoding " -"any :term:`bytes-like object` directly, without needing to make a " -"temporary :class:`!bytes` or :class:`!bytearray` object." +"Passing the *encoding* argument to :class:`str` allows decoding any :term:" +"`bytes-like object` directly, without needing to make a temporary :class:`!" +"bytes` or :class:`!bytearray` object." msgstr "" -#: ../../library/stdtypes.rst:3234 msgid "" "Return ``True`` if the binary data ends with the specified *suffix*, " "otherwise return ``False``. *suffix* can also be a tuple of suffixes to " @@ -4713,11 +3844,9 @@ msgid "" "optional *end*, stop comparing at that position." msgstr "" -#: ../../library/stdtypes.rst:3239 msgid "The suffix(es) to search for may be any :term:`bytes-like object`." msgstr "" -#: ../../library/stdtypes.rst:3245 msgid "" "Return the lowest index in the data where the subsequence *sub* is found, " "such that *sub* is contained in the slice ``s[start:end]``. Optional " @@ -4725,26 +3854,22 @@ msgid "" "``-1`` if *sub* is not found." msgstr "" -#: ../../library/stdtypes.rst:3255 msgid "" "The :meth:`~bytes.find` method should be used only if you need to know the " -"position of *sub*. To check if *sub* is a substring or not, use " -"the :keyword:`in` operator::" +"position of *sub*. To check if *sub* is a substring or not, use the :" +"keyword:`in` operator::" msgstr "" -#: ../../library/stdtypes.rst:3259 msgid "" ">>> b'Py' in b'Python'\n" "True" msgstr "" -#: ../../library/stdtypes.rst:3269 msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." msgstr "" -#: ../../library/stdtypes.rst:3282 msgid "" "Return a bytes or bytearray object which is the concatenation of the binary " "data sequences in *iterable*. A :exc:`TypeError` will be raised if there " @@ -4754,15 +3879,13 @@ msgid "" "method." msgstr "" -#: ../../library/stdtypes.rst:3293 msgid "" -"This static method returns a translation table usable " -"for :meth:`bytes.translate` that will map each character in *from* into the " -"character at the same position in *to*; *from* and *to* must both " -"be :term:`bytes-like objects ` and have the same length." +"This static method returns a translation table usable for :meth:`bytes." +"translate` that will map each character in *from* into the character at the " +"same position in *to*; *from* and *to* must both be :term:`bytes-like " +"objects ` and have the same length." msgstr "" -#: ../../library/stdtypes.rst:3304 msgid "" "Split the sequence at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " @@ -4771,24 +3894,20 @@ msgid "" "by two empty bytes or bytearray objects." msgstr "" -#: ../../library/stdtypes.rst:3311 ../../library/stdtypes.rst:3368 msgid "The separator to search for may be any :term:`bytes-like object`." msgstr "" -#: ../../library/stdtypes.rst:3317 msgid "" "Return a copy of the sequence with all occurrences of subsequence *old* " "replaced by *new*. If the optional argument *count* is given, only the " "first *count* occurrences are replaced." msgstr "" -#: ../../library/stdtypes.rst:3321 msgid "" "The subsequence to search for and its replacement may be any :term:`bytes-" "like object`." msgstr "" -#: ../../library/stdtypes.rst:3333 msgid "" "Return the highest index in the sequence where the subsequence *sub* is " "found, such that *sub* is contained within ``s[start:end]``. Optional " @@ -4796,13 +3915,11 @@ msgid "" "``-1`` on failure." msgstr "" -#: ../../library/stdtypes.rst:3348 msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." msgstr "" -#: ../../library/stdtypes.rst:3361 msgid "" "Split the sequence at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " @@ -4811,7 +3928,6 @@ msgid "" "followed by a copy of the original sequence." msgstr "" -#: ../../library/stdtypes.rst:3374 msgid "" "Return ``True`` if the binary data starts with the specified *prefix*, " "otherwise return ``False``. *prefix* can also be a tuple of prefixes to " @@ -4819,11 +3935,9 @@ msgid "" "optional *end*, stop comparing at that position." msgstr "" -#: ../../library/stdtypes.rst:3379 msgid "The prefix(es) to search for may be any :term:`bytes-like object`." msgstr "" -#: ../../library/stdtypes.rst:3385 msgid "" "Return a copy of the bytes or bytearray object where all bytes occurring in " "the optional argument *delete* are removed, and the remaining bytes have " @@ -4831,28 +3945,23 @@ msgid "" "object of length 256." msgstr "" -#: ../../library/stdtypes.rst:3390 msgid "" "You can use the :func:`bytes.maketrans` method to create a translation table." msgstr "" -#: ../../library/stdtypes.rst:3393 msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" msgstr "" -#: ../../library/stdtypes.rst:3396 msgid "" ">>> b'read this short text'.translate(None, b'aeiou')\n" "b'rd ths shrt txt'" msgstr "" -#: ../../library/stdtypes.rst:3399 msgid "*delete* is now supported as a keyword argument." msgstr "" -#: ../../library/stdtypes.rst:3403 msgid "" "The following methods on bytes and bytearray objects have default behaviours " "that assume the use of ASCII compatible binary formats, but can still be " @@ -4861,7 +3970,6 @@ msgid "" "instead produce new objects." msgstr "" -#: ../../library/stdtypes.rst:3412 msgid "" "Return a copy of the object centered in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4869,7 +3977,6 @@ msgid "" "less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:3426 msgid "" "Return a copy of the object left justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4877,17 +3984,14 @@ msgid "" "less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:3440 msgid "" "Return a copy of the sequence with specified leading bytes removed. The " -"*chars* argument is a binary sequence specifying the set of byte values to " -"be removed - the name refers to the fact this method is usually used with " -"ASCII characters. If omitted or ``None``, the *chars* argument defaults to " -"removing ASCII whitespace. The *chars* argument is not a prefix; rather, " +"*bytes* argument is a binary sequence specifying the set of byte values to " +"be removed. If omitted or ``None``, the *bytes* argument defaults to " +"removing ASCII whitespace. The *bytes* argument is not a prefix; rather, " "all combinations of its values are stripped::" msgstr "" -#: ../../library/stdtypes.rst:3447 msgid "" ">>> b' spacious '.lstrip()\n" "b'spacious '\n" @@ -4895,14 +3999,12 @@ msgid "" "b'example.com'" msgstr "" -#: ../../library/stdtypes.rst:3452 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removeprefix` for a method that will remove a " "single prefix string rather than all of a set of characters. For example::" msgstr "" -#: ../../library/stdtypes.rst:3457 msgid "" ">>> b'Arthur: three!'.lstrip(b'Arthur: ')\n" "b'ee!'\n" @@ -4910,7 +4012,6 @@ msgid "" "b'three!'" msgstr "" -#: ../../library/stdtypes.rst:3471 msgid "" "Return a copy of the object right justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4918,7 +4019,6 @@ msgid "" "less than or equal to ``len(s)``." msgstr "" -#: ../../library/stdtypes.rst:3485 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given, at most *maxsplit* splits are " @@ -4928,17 +4028,14 @@ msgid "" "described in detail below." msgstr "" -#: ../../library/stdtypes.rst:3496 msgid "" "Return a copy of the sequence with specified trailing bytes removed. The " -"*chars* argument is a binary sequence specifying the set of byte values to " -"be removed - the name refers to the fact this method is usually used with " -"ASCII characters. If omitted or ``None``, the *chars* argument defaults to " -"removing ASCII whitespace. The *chars* argument is not a suffix; rather, " +"*bytes* argument is a binary sequence specifying the set of byte values to " +"be removed. If omitted or ``None``, the *bytes* argument defaults to " +"removing ASCII whitespace. The *bytes* argument is not a suffix; rather, " "all combinations of its values are stripped::" msgstr "" -#: ../../library/stdtypes.rst:3503 msgid "" ">>> b' spacious '.rstrip()\n" "b' spacious'\n" @@ -4946,14 +4043,12 @@ msgid "" "b'mississ'" msgstr "" -#: ../../library/stdtypes.rst:3508 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removesuffix` for a method that will remove a " "single suffix string rather than all of a set of characters. For example::" msgstr "" -#: ../../library/stdtypes.rst:3513 msgid "" ">>> b'Monty Python'.rstrip(b' Python')\n" "b'M'\n" @@ -4961,7 +4056,6 @@ msgid "" "b'Monty'" msgstr "" -#: ../../library/stdtypes.rst:3527 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given and non-negative, at most " @@ -4970,7 +4064,6 @@ msgid "" "limit on the number of splits (all possible splits are made)." msgstr "" -#: ../../library/stdtypes.rst:3533 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty subsequences (for example, ``b'1,,2'.split(b',')`` " @@ -4981,7 +4074,6 @@ msgid "" "like object`." msgstr "" -#: ../../library/stdtypes.rst:3543 msgid "" ">>> b'1,2,3'.split(b',')\n" "[b'1', b'2', b'3']\n" @@ -4993,7 +4085,6 @@ msgid "" "[b'1', b'2', b'3<4']" msgstr "" -#: ../../library/stdtypes.rst:3552 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive ASCII whitespace are regarded as a single " @@ -5003,7 +4094,6 @@ msgid "" "without a specified separator returns ``[]``." msgstr "" -#: ../../library/stdtypes.rst:3562 msgid "" ">>> b'1 2 3'.split()\n" "[b'1', b'2', b'3']\n" @@ -5013,17 +4103,14 @@ msgid "" "[b'1', b'2', b'3']" msgstr "" -#: ../../library/stdtypes.rst:3573 msgid "" "Return a copy of the sequence with specified leading and trailing bytes " -"removed. The *chars* argument is a binary sequence specifying the set of " -"byte values to be removed - the name refers to the fact this method is " -"usually used with ASCII characters. If omitted or ``None``, the *chars* " -"argument defaults to removing ASCII whitespace. The *chars* argument is not " -"a prefix or suffix; rather, all combinations of its values are stripped::" +"removed. The *bytes* argument is a binary sequence specifying the set of " +"byte values to be removed. If omitted or ``None``, the *bytes* argument " +"defaults to removing ASCII whitespace. The *bytes* argument is not a prefix " +"or suffix; rather, all combinations of its values are stripped::" msgstr "" -#: ../../library/stdtypes.rst:3581 msgid "" ">>> b' spacious '.strip()\n" "b'spacious'\n" @@ -5031,13 +4118,11 @@ msgid "" "b'example'" msgstr "" -#: ../../library/stdtypes.rst:3586 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`." msgstr "" -#: ../../library/stdtypes.rst:3595 msgid "" "The following methods on bytes and bytearray objects assume the use of ASCII " "compatible binary formats and should not be applied to arbitrary binary " @@ -5045,14 +4130,12 @@ msgid "" "operate in place, and instead produce new objects." msgstr "" -#: ../../library/stdtypes.rst:3603 msgid "" "Return a copy of the sequence with each byte interpreted as an ASCII " "character, and the first byte capitalized and the rest lowercased. Non-ASCII " "byte values are passed through unchanged." msgstr "" -#: ../../library/stdtypes.rst:3616 msgid "" "Return a copy of the sequence where all ASCII tab characters are replaced by " "one or more ASCII spaces, depending on the current column and the given tab " @@ -5068,7 +4151,6 @@ msgid "" "by one regardless of how the byte value is represented when printed::" msgstr "" -#: ../../library/stdtypes.rst:3630 msgid "" ">>> b'01\\t012\\t0123\\t01234'.expandtabs()\n" "b'01 012 0123 01234'\n" @@ -5076,7 +4158,6 @@ msgid "" "b'01 012 0123 01234'" msgstr "" -#: ../../library/stdtypes.rst:3644 msgid "" "Return ``True`` if all bytes in the sequence are alphabetical ASCII " "characters or ASCII decimal digits and the sequence is not empty, ``False`` " @@ -5085,7 +4166,6 @@ msgid "" "digits are those byte values in the sequence ``b'0123456789'``." msgstr "" -#: ../../library/stdtypes.rst:3652 msgid "" ">>> b'ABCabc1'.isalnum()\n" "True\n" @@ -5093,7 +4173,6 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3661 msgid "" "Return ``True`` if all bytes in the sequence are alphabetic ASCII characters " "and the sequence is not empty, ``False`` otherwise. Alphabetic ASCII " @@ -5101,7 +4180,6 @@ msgid "" "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." msgstr "" -#: ../../library/stdtypes.rst:3668 msgid "" ">>> b'ABCabc'.isalpha()\n" "True\n" @@ -5109,20 +4187,17 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3677 msgid "" "Return ``True`` if the sequence is empty or all bytes in the sequence are " "ASCII, ``False`` otherwise. ASCII bytes are in the range 0-0x7F." msgstr "" -#: ../../library/stdtypes.rst:3687 msgid "" "Return ``True`` if all bytes in the sequence are ASCII decimal digits and " "the sequence is not empty, ``False`` otherwise. ASCII decimal digits are " "those byte values in the sequence ``b'0123456789'``." msgstr "" -#: ../../library/stdtypes.rst:3693 msgid "" ">>> b'1234'.isdigit()\n" "True\n" @@ -5130,13 +4205,11 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3702 msgid "" "Return ``True`` if there is at least one lowercase ASCII character in the " "sequence and no uppercase ASCII characters, ``False`` otherwise." msgstr "" -#: ../../library/stdtypes.rst:3707 msgid "" ">>> b'hello world'.islower()\n" "True\n" @@ -5144,16 +4217,12 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3712 ../../library/stdtypes.rst:3754 -#: ../../library/stdtypes.rst:3770 ../../library/stdtypes.rst:3820 -#: ../../library/stdtypes.rst:3889 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " "values in the sequence ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." msgstr "" -#: ../../library/stdtypes.rst:3720 msgid "" "Return ``True`` if all bytes in the sequence are ASCII whitespace and the " "sequence is not empty, ``False`` otherwise. ASCII whitespace characters are " @@ -5161,14 +4230,12 @@ msgid "" "newline, carriage return, vertical tab, form feed)." msgstr "" -#: ../../library/stdtypes.rst:3729 msgid "" "Return ``True`` if the sequence is ASCII titlecase and the sequence is not " "empty, ``False`` otherwise. See :meth:`bytes.title` for more details on the " "definition of \"titlecase\"." msgstr "" -#: ../../library/stdtypes.rst:3735 msgid "" ">>> b'Hello World'.istitle()\n" "True\n" @@ -5176,14 +4243,12 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3744 msgid "" "Return ``True`` if there is at least one uppercase alphabetic ASCII " "character in the sequence and no lowercase ASCII characters, ``False`` " "otherwise." msgstr "" -#: ../../library/stdtypes.rst:3749 msgid "" ">>> b'HELLO WORLD'.isupper()\n" "True\n" @@ -5191,19 +4256,16 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:3762 msgid "" "Return a copy of the sequence with all the uppercase ASCII characters " "converted to their corresponding lowercase counterpart." msgstr "" -#: ../../library/stdtypes.rst:3767 msgid "" ">>> b'Hello World'.lower()\n" "b'hello world'" msgstr "" -#: ../../library/stdtypes.rst:3787 msgid "" "Return a list of the lines in the binary sequence, breaking at ASCII line " "boundaries. This method uses the :term:`universal newlines` approach to " @@ -5211,7 +4273,6 @@ msgid "" "*keepends* is given and true." msgstr "" -#: ../../library/stdtypes.rst:3794 msgid "" ">>> b'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "[b'ab c', b'', b'de fg', b'kl']\n" @@ -5219,14 +4280,12 @@ msgid "" "[b'ab c\\n', b'\\n', b'de fg\\r', b'kl\\r\\n']" msgstr "" -#: ../../library/stdtypes.rst:3799 msgid "" "Unlike :meth:`~bytes.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " "does not result in an extra line::" msgstr "" -#: ../../library/stdtypes.rst:3803 msgid "" ">>> b\"\".split(b'\\n'), b\"Two lines\\n\".split(b'\\n')\n" "([b''], [b'Two lines', b''])\n" @@ -5234,40 +4293,34 @@ msgid "" "([], [b'One line'])" msgstr "" -#: ../../library/stdtypes.rst:3812 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart and vice-versa." msgstr "" -#: ../../library/stdtypes.rst:3817 msgid "" ">>> b'Hello World'.swapcase()\n" "b'hELLO wORLD'" msgstr "" -#: ../../library/stdtypes.rst:3824 msgid "" -"Unlike :func:`str.swapcase`, it is always the case that " -"``bin.swapcase().swapcase() == bin`` for the binary versions. Case " -"conversions are symmetrical in ASCII, even though that is not generally true " -"for arbitrary Unicode code points." +"Unlike :func:`str.swapcase`, it is always the case that ``bin.swapcase()." +"swapcase() == bin`` for the binary versions. Case conversions are " +"symmetrical in ASCII, even though that is not generally true for arbitrary " +"Unicode code points." msgstr "" -#: ../../library/stdtypes.rst:3838 msgid "" "Return a titlecased version of the binary sequence where words start with an " "uppercase ASCII character and the remaining characters are lowercase. " "Uncased byte values are left unmodified." msgstr "" -#: ../../library/stdtypes.rst:3844 msgid "" ">>> b'Hello world'.title()\n" "b'Hello World'" msgstr "" -#: ../../library/stdtypes.rst:3847 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -5275,18 +4328,15 @@ msgid "" "values are uncased." msgstr "" -#: ../../library/stdtypes.rst:3857 msgid "" ">>> b\"they're bill's friends from the UK\".title()\n" "b\"They'Re Bill'S Friends From The Uk\"" msgstr "" -#: ../../library/stdtypes.rst:3860 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" -#: ../../library/stdtypes.rst:3862 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -5299,19 +4349,16 @@ msgid "" "b\"They're Bill's Friends.\"" msgstr "" -#: ../../library/stdtypes.rst:3881 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart." msgstr "" -#: ../../library/stdtypes.rst:3886 msgid "" ">>> b'Hello World'.upper()\n" "b'HELLO WORLD'" msgstr "" -#: ../../library/stdtypes.rst:3902 msgid "" "Return a copy of the sequence left filled with ASCII ``b'0'`` digits to make " "a sequence of length *width*. A leading sign prefix (``b'+'``/ ``b'-'``) is " @@ -5320,7 +4367,6 @@ msgid "" "*width* is less than or equal to ``len(seq)``." msgstr "" -#: ../../library/stdtypes.rst:3910 msgid "" ">>> b\"42\".zfill(5)\n" "b'00042'\n" @@ -5328,11 +4374,9 @@ msgid "" "b'-0042'" msgstr "" -#: ../../library/stdtypes.rst:3924 msgid "``printf``-style Bytes Formatting" msgstr "" -#: ../../library/stdtypes.rst:3941 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " @@ -5340,17 +4384,15 @@ msgid "" "dictionary, wrap it in a tuple." msgstr "" -#: ../../library/stdtypes.rst:3946 msgid "" "Bytes objects (``bytes``/``bytearray``) have one unique built-in operation: " "the ``%`` operator (modulo). This is also known as the bytes *formatting* or " "*interpolation* operator. Given ``format % values`` (where *format* is a " "bytes object), ``%`` conversion specifications in *format* are replaced with " -"zero or more elements of *values*. The effect is similar to using " -"the :c:func:`sprintf` in the C language." +"zero or more elements of *values*. The effect is similar to using the :c:" +"func:`sprintf` in the C language." msgstr "" -#: ../../library/stdtypes.rst:3953 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -5358,7 +4400,6 @@ msgid "" "example, a dictionary)." msgstr "" -#: ../../library/stdtypes.rst:3987 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the bytes object *must* include a parenthesised mapping key into " @@ -5366,73 +4407,62 @@ msgid "" "mapping key selects the value to be formatted from the mapping. For example:" msgstr "" -#: ../../library/stdtypes.rst:4061 +msgid "\\(8)" +msgstr "" + msgid "Single byte (accepts integer or single byte objects)." msgstr "" -#: ../../library/stdtypes.rst:4064 msgid "``'b'``" -msgstr "``'b'``" +msgstr "" -#: ../../library/stdtypes.rst:4064 msgid "" "Bytes (any object that follows the :ref:`buffer protocol ` or " "has :meth:`~object.__bytes__`)." msgstr "" -#: ../../library/stdtypes.rst:4068 msgid "" "``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " "bases." msgstr "" -#: ../../library/stdtypes.rst:4071 msgid "" "Bytes (converts any Python object using ``repr(obj).encode('ascii', " "'backslashreplace')``)." msgstr "" -#: ../../library/stdtypes.rst:4074 msgid "" "``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " "bases." msgstr "" -#: ../../library/stdtypes.rst:4074 msgid "\\(7)" msgstr "" -#: ../../library/stdtypes.rst:4109 msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." msgstr "" -#: ../../library/stdtypes.rst:4112 msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "" -#: ../../library/stdtypes.rst:4124 msgid ":pep:`461` - Adding % formatting to bytes and bytearray" msgstr "" -#: ../../library/stdtypes.rst:4131 msgid "Memory Views" msgstr "" -#: ../../library/stdtypes.rst:4133 msgid "" ":class:`memoryview` objects allow Python code to access the internal data of " "an object that supports the :ref:`buffer protocol ` without " "copying." msgstr "" -#: ../../library/stdtypes.rst:4139 msgid "" "Create a :class:`memoryview` that references *object*. *object* must " "support the buffer protocol. Built-in objects that support the buffer " "protocol include :class:`bytes` and :class:`bytearray`." msgstr "" -#: ../../library/stdtypes.rst:4143 msgid "" "A :class:`memoryview` has the notion of an *element*, which is the atomic " "memory unit handled by the originating *object*. For many simple types such " @@ -5440,32 +4470,27 @@ msgid "" "other types such as :class:`array.array` may have bigger elements." msgstr "" -#: ../../library/stdtypes.rst:4148 msgid "" "``len(view)`` is equal to the length of :class:`~memoryview.tolist`, which " "is the nested list representation of the view. If ``view.ndim = 1``, this is " "equal to the number of elements in the view." msgstr "" -#: ../../library/stdtypes.rst:4152 msgid "" "If ``view.ndim == 0``, ``len(view)`` now raises :exc:`TypeError` instead of " "returning 1." msgstr "" -#: ../../library/stdtypes.rst:4155 msgid "" "The :class:`~memoryview.itemsize` attribute will give you the number of " "bytes in a single element." msgstr "" -#: ../../library/stdtypes.rst:4158 msgid "" "A :class:`memoryview` supports slicing and indexing to expose its data. One-" "dimensional slicing will result in a subview::" msgstr "" -#: ../../library/stdtypes.rst:4161 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> v[1]\n" @@ -5478,7 +4503,6 @@ msgid "" "b'bce'" msgstr "" -#: ../../library/stdtypes.rst:4171 msgid "" "If :class:`~memoryview.format` is one of the native format specifiers from " "the :mod:`struct` module, indexing with an integer or a tuple of integers is " @@ -5489,11 +4513,9 @@ msgid "" "memoryviews can be indexed with the empty tuple." msgstr "" -#: ../../library/stdtypes.rst:4180 msgid "Here is an example with a non-byte format::" msgstr "" -#: ../../library/stdtypes.rst:4182 msgid "" ">>> import array\n" ">>> a = array.array('l', [-11111111, 22222222, -33333333, 44444444])\n" @@ -5506,13 +4528,11 @@ msgid "" "[-11111111, -33333333]" msgstr "" -#: ../../library/stdtypes.rst:4192 msgid "" "If the underlying object is writable, the memoryview supports one-" "dimensional slice assignment. Resizing is not allowed::" msgstr "" -#: ../../library/stdtypes.rst:4195 msgid "" ">>> data = bytearray(b'abcefg')\n" ">>> v = memoryview(data)\n" @@ -5534,14 +4554,12 @@ msgid "" "bytearray(b'z1spam')" msgstr "" -#: ../../library/stdtypes.rst:4213 msgid "" "One-dimensional memoryviews of :term:`hashable` (read-only) types with " "formats 'B', 'b' or 'c' are also hashable. The hash is defined as ``hash(m) " "== hash(m.tobytes())``::" msgstr "" -#: ../../library/stdtypes.rst:4217 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> hash(v) == hash(b'abcefg')\n" @@ -5552,45 +4570,36 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:4225 msgid "" "One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " "with formats 'B', 'b' or 'c' are now :term:`hashable`." msgstr "" -#: ../../library/stdtypes.rst:4229 msgid "" -"memoryview is now registered automatically " -"with :class:`collections.abc.Sequence`" +"memoryview is now registered automatically with :class:`collections.abc." +"Sequence`" msgstr "" -#: ../../library/stdtypes.rst:4233 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" -#: ../../library/stdtypes.rst:4236 msgid "memoryview is now a :term:`generic type`." msgstr "" -#: ../../library/stdtypes.rst:4239 msgid ":class:`memoryview` has several methods:" msgstr "" -#: ../../library/stdtypes.rst:4243 msgid "" "A memoryview and a :pep:`3118` exporter are equal if their shapes are " "equivalent and if all corresponding values are equal when the operands' " "respective format codes are interpreted using :mod:`struct` syntax." msgstr "" -#: ../../library/stdtypes.rst:4247 msgid "" -"For the subset of :mod:`struct` format strings currently supported " -"by :meth:`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == " -"w.tolist()``::" +"For the subset of :mod:`struct` format strings currently supported by :meth:" +"`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" msgstr "" -#: ../../library/stdtypes.rst:4250 msgid "" ">>> import array\n" ">>> a = array.array('I', [1, 2, 3, 4, 5])\n" @@ -5609,14 +4618,12 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:4266 msgid "" "If either format string is not supported by the :mod:`struct` module, then " "the objects will always compare as unequal (even if the format strings and " "buffer contents are identical)::" msgstr "" -#: ../../library/stdtypes.rst:4270 msgid "" ">>> from ctypes import BigEndianStructure, c_long\n" ">>> class BEPoint(BigEndianStructure):\n" @@ -5631,25 +4638,21 @@ msgid "" "False" msgstr "" -#: ../../library/stdtypes.rst:4282 msgid "" "Note that, as with floating-point numbers, ``v is w`` does *not* imply ``v " "== w`` for memoryview objects." msgstr "" -#: ../../library/stdtypes.rst:4285 msgid "" "Previous versions compared the raw memory disregarding the item format and " "the logical array structure." msgstr "" -#: ../../library/stdtypes.rst:4291 msgid "" "Return the data in the buffer as a bytestring. This is equivalent to " "calling the :class:`bytes` constructor on the memoryview. ::" msgstr "" -#: ../../library/stdtypes.rst:4294 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.tobytes()\n" @@ -5658,7 +4661,6 @@ msgid "" "b'abc'" msgstr "" -#: ../../library/stdtypes.rst:4300 msgid "" "For non-contiguous arrays the result is equal to the flattened list " "representation with all elements converted to bytes. :meth:`tobytes` " @@ -5666,7 +4668,6 @@ msgid "" "module syntax." msgstr "" -#: ../../library/stdtypes.rst:4305 msgid "" "*order* can be {'C', 'F', 'A'}. When *order* is 'C' or 'F', the data of the " "original array is converted to C or Fortran order. For contiguous views, 'A' " @@ -5675,31 +4676,26 @@ msgid "" "to C first. *order=None* is the same as *order='C'*." msgstr "" -#: ../../library/stdtypes.rst:4314 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the buffer. ::" msgstr "" -#: ../../library/stdtypes.rst:4317 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.hex()\n" "'616263'" msgstr "" -#: ../../library/stdtypes.rst:4323 msgid "" "Similar to :meth:`bytes.hex`, :meth:`memoryview.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " "the hex output." msgstr "" -#: ../../library/stdtypes.rst:4330 msgid "Return the data in the buffer as a list of elements. ::" msgstr "" -#: ../../library/stdtypes.rst:4332 msgid "" ">>> memoryview(b'abc').tolist()\n" "[97, 98, 99]\n" @@ -5710,19 +4706,16 @@ msgid "" "[1.1, 2.2, 3.3]" msgstr "" -#: ../../library/stdtypes.rst:4340 msgid "" -":meth:`tolist` now supports all single character native formats " -"in :mod:`struct` module syntax as well as multi-dimensional representations." +":meth:`tolist` now supports all single character native formats in :mod:" +"`struct` module syntax as well as multi-dimensional representations." msgstr "" -#: ../../library/stdtypes.rst:4347 msgid "" "Return a readonly version of the memoryview object. The original memoryview " "object is unchanged. ::" msgstr "" -#: ../../library/stdtypes.rst:4350 msgid "" ">>> m = memoryview(bytearray(b'abc'))\n" ">>> mm = m.toreadonly()\n" @@ -5737,23 +4730,20 @@ msgid "" "[43, 98, 99]" msgstr "" -#: ../../library/stdtypes.rst:4366 msgid "" "Release the underlying buffer exposed by the memoryview object. Many " -"objects take special actions when a view is held on them (for example, " -"a :class:`bytearray` would temporarily forbid resizing); therefore, calling " +"objects take special actions when a view is held on them (for example, a :" +"class:`bytearray` would temporarily forbid resizing); therefore, calling " "release() is handy to remove these restrictions (and free any dangling " "resources) as soon as possible." msgstr "" -#: ../../library/stdtypes.rst:4372 msgid "" "After this method has been called, any further operation on the view raises " "a :class:`ValueError` (except :meth:`release` itself which can be called " "multiple times)::" msgstr "" -#: ../../library/stdtypes.rst:4376 msgid "" ">>> m = memoryview(b'abc')\n" ">>> m.release()\n" @@ -5763,13 +4753,11 @@ msgid "" "ValueError: operation forbidden on released memoryview object" msgstr "" -#: ../../library/stdtypes.rst:4383 msgid "" "The context management protocol can be used for a similar effect, using the " "``with`` statement::" msgstr "" -#: ../../library/stdtypes.rst:4386 msgid "" ">>> with memoryview(b'abc') as m:\n" "... m[0]\n" @@ -5781,7 +4769,6 @@ msgid "" "ValueError: operation forbidden on released memoryview object" msgstr "" -#: ../../library/stdtypes.rst:4399 msgid "" "Cast a memoryview to a new format or shape. *shape* defaults to " "``[byte_length//new_itemsize]``, which means that the result view will be " @@ -5790,19 +4777,16 @@ msgid "" "contiguous -> 1D." msgstr "" -#: ../../library/stdtypes.rst:4405 msgid "" -"The destination format is restricted to a single element native format " -"in :mod:`struct` syntax. One of the formats must be a byte format ('B', 'b' " -"or 'c'). The byte length of the result must be the same as the original " -"length. Note that all byte lengths may depend on the operating system." +"The destination format is restricted to a single element native format in :" +"mod:`struct` syntax. One of the formats must be a byte format ('B', 'b' or " +"'c'). The byte length of the result must be the same as the original length. " +"Note that all byte lengths may depend on the operating system." msgstr "" -#: ../../library/stdtypes.rst:4411 msgid "Cast 1D/long to 1D/unsigned bytes::" msgstr "" -#: ../../library/stdtypes.rst:4413 msgid "" ">>> import array\n" ">>> a = array.array('l', [1,2,3])\n" @@ -5826,11 +4810,9 @@ msgid "" "24" msgstr "" -#: ../../library/stdtypes.rst:4434 msgid "Cast 1D/unsigned bytes to 1D/char::" msgstr "" -#: ../../library/stdtypes.rst:4436 msgid "" ">>> b = bytearray(b'zyz')\n" ">>> x = memoryview(b)\n" @@ -5844,11 +4826,9 @@ msgid "" "bytearray(b'ayz')" msgstr "" -#: ../../library/stdtypes.rst:4447 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" msgstr "" -#: ../../library/stdtypes.rst:4449 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"i\"*12, *list(range(12)))\n" @@ -5875,11 +4855,9 @@ msgid "" "48" msgstr "" -#: ../../library/stdtypes.rst:4473 msgid "Cast 1D/unsigned long to 2D/unsigned long::" msgstr "" -#: ../../library/stdtypes.rst:4475 msgid "" ">>> buf = struct.pack(\"L\"*6, *list(range(6)))\n" ">>> x = memoryview(buf)\n" @@ -5892,33 +4870,26 @@ msgid "" "[[0, 1, 2], [3, 4, 5]]" msgstr "" -#: ../../library/stdtypes.rst:4487 msgid "The source format is no longer restricted when casting to a byte view." msgstr "" -#: ../../library/stdtypes.rst:4492 msgid "Count the number of occurrences of *value*." msgstr "" -#: ../../library/stdtypes.rst:4498 msgid "" "Return the index of the first occurrence of *value* (at or after index " "*start* and before index *stop*)." msgstr "" -#: ../../library/stdtypes.rst:4501 msgid "Raises a :exc:`ValueError` if *value* cannot be found." msgstr "" -#: ../../library/stdtypes.rst:4505 msgid "There are also several readonly attributes available:" msgstr "" -#: ../../library/stdtypes.rst:4509 msgid "The underlying object of the memoryview::" msgstr "" -#: ../../library/stdtypes.rst:4511 msgid "" ">>> b = bytearray(b'xyz')\n" ">>> m = memoryview(b)\n" @@ -5926,14 +4897,12 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:4520 msgid "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " "amount of space in bytes that the array would use in a contiguous " "representation. It is not necessarily equal to ``len(m)``::" msgstr "" -#: ../../library/stdtypes.rst:4524 msgid "" ">>> import array\n" ">>> a = array.array('i', [1,2,3,4,5])\n" @@ -5951,11 +4920,9 @@ msgid "" "12" msgstr "" -#: ../../library/stdtypes.rst:4539 msgid "Multi-dimensional arrays::" msgstr "" -#: ../../library/stdtypes.rst:4541 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"d\"*12, *[1.5*x for x in range(12)])\n" @@ -5969,11 +4936,9 @@ msgid "" "96" msgstr "" -#: ../../library/stdtypes.rst:4556 msgid "A bool indicating whether the memory is read only." msgstr "" -#: ../../library/stdtypes.rst:4560 msgid "" "A string containing the format (in :mod:`struct` module style) for each " "element in the view. A memoryview can be created from exporters with " @@ -5981,17 +4946,14 @@ msgid "" "restricted to native single element formats." msgstr "" -#: ../../library/stdtypes.rst:4565 msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." msgstr "" -#: ../../library/stdtypes.rst:4571 msgid "The size in bytes of each element of the memoryview::" msgstr "" -#: ../../library/stdtypes.rst:4573 msgid "" ">>> import array, struct\n" ">>> m = memoryview(array.array('H', [32000, 32001, 32002]))\n" @@ -6003,59 +4965,48 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:4584 msgid "" "An integer indicating how many dimensions of a multi-dimensional array the " "memory represents." msgstr "" -#: ../../library/stdtypes.rst:4589 msgid "" "A tuple of integers the length of :attr:`ndim` giving the shape of the " "memory as an N-dimensional array." msgstr "" -#: ../../library/stdtypes.rst:4592 ../../library/stdtypes.rst:4600 msgid "An empty tuple instead of ``None`` when ndim = 0." msgstr "" -#: ../../library/stdtypes.rst:4597 msgid "" "A tuple of integers the length of :attr:`ndim` giving the size in bytes to " "access each element for each dimension of the array." msgstr "" -#: ../../library/stdtypes.rst:4605 msgid "Used internally for PIL-style arrays. The value is informational only." msgstr "" -#: ../../library/stdtypes.rst:4609 msgid "A bool indicating whether the memory is C-:term:`contiguous`." msgstr "" -#: ../../library/stdtypes.rst:4615 msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." msgstr "" -#: ../../library/stdtypes.rst:4621 msgid "A bool indicating whether the memory is :term:`contiguous`." msgstr "" -#: ../../library/stdtypes.rst:4629 msgid "Set Types --- :class:`set`, :class:`frozenset`" msgstr "" -#: ../../library/stdtypes.rst:4633 msgid "" "A :dfn:`set` object is an unordered collection of distinct :term:`hashable` " "objects. Common uses include membership testing, removing duplicates from a " "sequence, and computing mathematical operations such as intersection, union, " "difference, and symmetric difference. (For other containers see the built-" -"in :class:`dict`, :class:`list`, and :class:`tuple` classes, and " -"the :mod:`collections` module.)" +"in :class:`dict`, :class:`list`, and :class:`tuple` classes, and the :mod:" +"`collections` module.)" msgstr "" -#: ../../library/stdtypes.rst:4640 msgid "" "Like other collections, sets support ``x in set``, ``len(set)``, and ``for x " "in set``. Being an unordered collection, sets do not record element " @@ -6063,30 +5014,26 @@ msgid "" "slicing, or other sequence-like behavior." msgstr "" -#: ../../library/stdtypes.rst:4645 msgid "" -"There are currently two built-in set types, :class:`set` " -"and :class:`frozenset`. The :class:`set` type is mutable --- the contents " -"can be changed using methods like :meth:`~set.add` and :meth:`~set.remove`. " -"Since it is mutable, it has no hash value and cannot be used as either a " +"There are currently two built-in set types, :class:`set` and :class:" +"`frozenset`. The :class:`set` type is mutable --- the contents can be " +"changed using methods like :meth:`~set.add` and :meth:`~set.remove`. Since " +"it is mutable, it has no hash value and cannot be used as either a " "dictionary key or as an element of another set. The :class:`frozenset` type " "is immutable and :term:`hashable` --- its contents cannot be altered after " "it is created; it can therefore be used as a dictionary key or as an element " "of another set." msgstr "" -#: ../../library/stdtypes.rst:4653 msgid "" "Non-empty sets (not frozensets) can be created by placing a comma-separated " "list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " "addition to the :class:`set` constructor." msgstr "" -#: ../../library/stdtypes.rst:4657 msgid "The constructors for both classes work the same:" msgstr "" -#: ../../library/stdtypes.rst:4662 msgid "" "Return a new set or frozenset object whose elements are taken from " "*iterable*. The elements of a set must be :term:`hashable`. To represent " @@ -6094,102 +5041,82 @@ msgid "" "*iterable* is not specified, a new empty set is returned." msgstr "" -#: ../../library/stdtypes.rst:4668 msgid "Sets can be created by several means:" msgstr "" -#: ../../library/stdtypes.rst:4670 msgid "" "Use a comma-separated list of elements within braces: ``{'jack', 'sjoerd'}``" msgstr "" -#: ../../library/stdtypes.rst:4671 msgid "" "Use a set comprehension: ``{c for c in 'abracadabra' if c not in 'abc'}``" msgstr "" -#: ../../library/stdtypes.rst:4672 msgid "" "Use the type constructor: ``set()``, ``set('foobar')``, ``set(['a', 'b', " "'foo'])``" msgstr "" -#: ../../library/stdtypes.rst:4674 msgid "" "Instances of :class:`set` and :class:`frozenset` provide the following " "operations:" msgstr "" -#: ../../library/stdtypes.rst:4679 msgid "Return the number of elements in set *s* (cardinality of *s*)." msgstr "" -#: ../../library/stdtypes.rst:4683 msgid "Test *x* for membership in *s*." msgstr "" -#: ../../library/stdtypes.rst:4687 msgid "Test *x* for non-membership in *s*." msgstr "" -#: ../../library/stdtypes.rst:4691 msgid "" "Return ``True`` if the set has no elements in common with *other*. Sets are " "disjoint if and only if their intersection is the empty set." msgstr "" -#: ../../library/stdtypes.rst:4697 msgid "Test whether every element in the set is in *other*." msgstr "" -#: ../../library/stdtypes.rst:4701 msgid "" "Test whether the set is a proper subset of *other*, that is, ``set <= other " "and set != other``." msgstr "" -#: ../../library/stdtypes.rst:4707 msgid "Test whether every element in *other* is in the set." msgstr "" -#: ../../library/stdtypes.rst:4711 msgid "" "Test whether the set is a proper superset of *other*, that is, ``set >= " "other and set != other``." msgstr "" -#: ../../library/stdtypes.rst:4717 msgid "Return a new set with elements from the set and all others." msgstr "" -#: ../../library/stdtypes.rst:4722 msgid "Return a new set with elements common to the set and all others." msgstr "" -#: ../../library/stdtypes.rst:4727 msgid "Return a new set with elements in the set that are not in the others." msgstr "" -#: ../../library/stdtypes.rst:4732 msgid "" "Return a new set with elements in either the set or *other* but not both." msgstr "" -#: ../../library/stdtypes.rst:4736 msgid "Return a shallow copy of the set." msgstr "" -#: ../../library/stdtypes.rst:4739 msgid "" -"Note, the non-operator versions " -"of :meth:`union`, :meth:`intersection`, :meth:`difference`, :meth:`symmetric_difference`, :meth:`issubset`, " -"and :meth:`issuperset` methods will accept any iterable as an argument. In " -"contrast, their operator based counterparts require their arguments to be " -"sets. This precludes error-prone constructions like ``set('abc') & 'cbs'`` " -"in favor of the more readable ``set('abc').intersection('cbs')``." +"Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" +"meth:`difference`, :meth:`symmetric_difference`, :meth:`issubset`, and :meth:" +"`issuperset` methods will accept any iterable as an argument. In contrast, " +"their operator based counterparts require their arguments to be sets. This " +"precludes error-prone constructions like ``set('abc') & 'cbs'`` in favor of " +"the more readable ``set('abc').intersection('cbs')``." msgstr "" -#: ../../library/stdtypes.rst:4746 msgid "" "Both :class:`set` and :class:`frozenset` support set to set comparisons. Two " "sets are equal if and only if every element of each set is contained in the " @@ -6199,14 +5126,12 @@ msgid "" "set is a proper superset of the second set (is a superset, but is not equal)." msgstr "" -#: ../../library/stdtypes.rst:4753 msgid "" "Instances of :class:`set` are compared to instances of :class:`frozenset` " "based on their members. For example, ``set('abc') == frozenset('abc')`` " "returns ``True`` and so does ``set('abc') in set([frozenset('abc')])``." msgstr "" -#: ../../library/stdtypes.rst:4757 msgid "" "The subset and equality comparisons do not generalize to a total ordering " "function. For example, any two nonempty disjoint sets are not equal and are " @@ -6214,136 +5139,110 @@ msgid "" "``ab``." msgstr "" -#: ../../library/stdtypes.rst:4762 msgid "" "Since sets only define partial ordering (subset relationships), the output " "of the :meth:`list.sort` method is undefined for lists of sets." msgstr "" -#: ../../library/stdtypes.rst:4765 msgid "Set elements, like dictionary keys, must be :term:`hashable`." msgstr "" -#: ../../library/stdtypes.rst:4767 msgid "" "Binary operations that mix :class:`set` instances with :class:`frozenset` " "return the type of the first operand. For example: ``frozenset('ab') | " "set('bc')`` returns an instance of :class:`frozenset`." msgstr "" -#: ../../library/stdtypes.rst:4771 msgid "" "The following table lists operations available for :class:`set` that do not " "apply to immutable instances of :class:`frozenset`:" msgstr "" -#: ../../library/stdtypes.rst:4777 msgid "Update the set, adding elements from all others." msgstr "" -#: ../../library/stdtypes.rst:4782 msgid "Update the set, keeping only elements found in it and all others." msgstr "" -#: ../../library/stdtypes.rst:4787 msgid "Update the set, removing elements found in others." msgstr "" -#: ../../library/stdtypes.rst:4792 msgid "" "Update the set, keeping only elements found in either set, but not in both." msgstr "" -#: ../../library/stdtypes.rst:4796 msgid "Add element *elem* to the set." msgstr "" -#: ../../library/stdtypes.rst:4800 msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." msgstr "" -#: ../../library/stdtypes.rst:4805 msgid "Remove element *elem* from the set if it is present." msgstr "" -#: ../../library/stdtypes.rst:4809 msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." msgstr "" -#: ../../library/stdtypes.rst:4814 msgid "Remove all elements from the set." msgstr "" -#: ../../library/stdtypes.rst:4817 msgid "" -"Note, the non-operator versions of " -"the :meth:`update`, :meth:`intersection_update`, :meth:`difference_update`, " -"and :meth:`symmetric_difference_update` methods will accept any iterable as " -"an argument." +"Note, the non-operator versions of the :meth:`update`, :meth:" +"`intersection_update`, :meth:`difference_update`, and :meth:" +"`symmetric_difference_update` methods will accept any iterable as an " +"argument." msgstr "" -#: ../../library/stdtypes.rst:4822 msgid "" -"Note, the *elem* argument to " -"the :meth:`~object.__contains__`, :meth:`remove`, and :meth:`discard` " -"methods may be a set. To support searching for an equivalent frozenset, a " -"temporary one is created from *elem*." +"Note, the *elem* argument to the :meth:`~object.__contains__`, :meth:" +"`remove`, and :meth:`discard` methods may be a set. To support searching " +"for an equivalent frozenset, a temporary one is created from *elem*." msgstr "" -#: ../../library/stdtypes.rst:4831 msgid "Mapping Types --- :class:`dict`" msgstr "" -#: ../../library/stdtypes.rst:4841 msgid "" "A :term:`mapping` object maps :term:`hashable` values to arbitrary objects. " "Mappings are mutable objects. There is currently only one standard mapping " -"type, the :dfn:`dictionary`. (For other containers see the built-" -"in :class:`list`, :class:`set`, and :class:`tuple` classes, and " -"the :mod:`collections` module.)" +"type, the :dfn:`dictionary`. (For other containers see the built-in :class:" +"`list`, :class:`set`, and :class:`tuple` classes, and the :mod:`collections` " +"module.)" msgstr "" -#: ../../library/stdtypes.rst:4847 msgid "" -"A dictionary's keys are *almost* arbitrary values. Values that are " -"not :term:`hashable`, that is, values containing lists, dictionaries or " -"other mutable types (that are compared by value rather than by object " -"identity) may not be used as keys. Values that compare equal (such as ``1``, " -"``1.0``, and ``True``) can be used interchangeably to index the same " -"dictionary entry." +"A dictionary's keys are *almost* arbitrary values. Values that are not :" +"term:`hashable`, that is, values containing lists, dictionaries or other " +"mutable types (that are compared by value rather than by object identity) " +"may not be used as keys. Values that compare equal (such as ``1``, ``1.0``, " +"and ``True``) can be used interchangeably to index the same dictionary entry." msgstr "" -#: ../../library/stdtypes.rst:4858 msgid "" "Return a new dictionary initialized from an optional positional argument and " "a possibly empty set of keyword arguments." msgstr "" -#: ../../library/stdtypes.rst:4861 msgid "Dictionaries can be created by several means:" msgstr "" -#: ../../library/stdtypes.rst:4863 msgid "" "Use a comma-separated list of ``key: value`` pairs within braces: ``{'jack': " "4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" msgstr "" -#: ../../library/stdtypes.rst:4865 msgid "Use a dict comprehension: ``{}``, ``{x: x ** 2 for x in range(10)}``" msgstr "" -#: ../../library/stdtypes.rst:4866 msgid "" "Use the type constructor: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" msgstr "" -#: ../../library/stdtypes.rst:4869 msgid "" "If no positional argument is given, an empty dictionary is created. If a " "positional argument is given and it defines a ``keys()`` method, a " @@ -6356,7 +5255,6 @@ msgid "" "that key becomes the corresponding value in the new dictionary." msgstr "" -#: ../../library/stdtypes.rst:4879 msgid "" "If keyword arguments are given, the keyword arguments and their values are " "added to the dictionary created from the positional argument. If a key " @@ -6364,13 +5262,11 @@ msgid "" "the value from the positional argument." msgstr "" -#: ../../library/stdtypes.rst:4884 ../../library/stdtypes.rst:4902 msgid "" "Providing keyword arguments as in the first example only works for keys that " "are valid Python identifiers. Otherwise, any valid keys can be used." msgstr "" -#: ../../library/stdtypes.rst:4887 msgid "" "Dictionaries compare equal if and only if they have the same ``(key, " "value)`` pairs (regardless of ordering). Order comparisons ('<', '<=', '>=', " @@ -6379,7 +5275,6 @@ msgid "" "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" msgstr "" -#: ../../library/stdtypes.rst:4893 msgid "" ">>> a = dict(one=1, two=2, three=3)\n" ">>> b = {'one': 1, 'two': 2, 'three': 3}\n" @@ -6391,13 +5286,11 @@ msgid "" "True" msgstr "" -#: ../../library/stdtypes.rst:4905 msgid "" "Dictionaries preserve insertion order. Note that updating a key does not " "affect the order. Keys added after deletion are inserted at the end. ::" msgstr "" -#: ../../library/stdtypes.rst:4908 msgid "" ">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" ">>> d\n" @@ -6415,44 +5308,37 @@ msgid "" "{'one': 42, 'three': 3, 'four': 4, 'two': None}" msgstr "" -#: ../../library/stdtypes.rst:4923 msgid "" "Dictionary order is guaranteed to be insertion order. This behavior was an " "implementation detail of CPython from 3.6." msgstr "" -#: ../../library/stdtypes.rst:4927 msgid "" "These are the operations that dictionaries support (and therefore, custom " "mapping types should support too):" msgstr "" -#: ../../library/stdtypes.rst:4932 msgid "Return a list of all the keys used in the dictionary *d*." msgstr "" -#: ../../library/stdtypes.rst:4936 msgid "Return the number of items in the dictionary *d*." msgstr "" -#: ../../library/stdtypes.rst:4940 msgid "" "Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " "not in the map." msgstr "" -#: ../../library/stdtypes.rst:4945 msgid "" -"If a subclass of dict defines a method :meth:`__missing__` and *key* is not " -"present, the ``d[key]`` operation calls that method with the key *key* as " -"argument. The ``d[key]`` operation then returns or raises whatever is " -"returned or raised by the ``__missing__(key)`` call. No other operations or " -"methods invoke :meth:`__missing__`. If :meth:`__missing__` is not " -"defined, :exc:`KeyError` is raised. :meth:`__missing__` must be a method; it " -"cannot be an instance variable::" +"If a subclass of dict defines a method :meth:`~object.__missing__` and *key* " +"is not present, the ``d[key]`` operation calls that method with the key " +"*key* as argument. The ``d[key]`` operation then returns or raises whatever " +"is returned or raised by the ``__missing__(key)`` call. No other operations " +"or methods invoke :meth:`~object.__missing__`. If :meth:`~object." +"__missing__` is not defined, :exc:`KeyError` is raised. :meth:`~object." +"__missing__` must be a method; it cannot be an instance variable::" msgstr "" -#: ../../library/stdtypes.rst:4953 msgid "" ">>> class Counter(dict):\n" "... def __missing__(self, key):\n" @@ -6466,51 +5352,41 @@ msgid "" "1" msgstr "" -#: ../../library/stdtypes.rst:4964 msgid "" -"The example above shows part of the implementation " -"of :class:`collections.Counter`. A different ``__missing__`` method is used " -"by :class:`collections.defaultdict`." +"The example above shows part of the implementation of :class:`collections." +"Counter`. A different :meth:`!__missing__` method is used by :class:" +"`collections.defaultdict`." msgstr "" -#: ../../library/stdtypes.rst:4970 msgid "Set ``d[key]`` to *value*." msgstr "" -#: ../../library/stdtypes.rst:4974 msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." msgstr "" -#: ../../library/stdtypes.rst:4979 msgid "Return ``True`` if *d* has a key *key*, else ``False``." msgstr "" -#: ../../library/stdtypes.rst:4983 msgid "Equivalent to ``not key in d``." msgstr "" -#: ../../library/stdtypes.rst:4987 msgid "" "Return an iterator over the keys of the dictionary. This is a shortcut for " "``iter(d.keys())``." msgstr "" -#: ../../library/stdtypes.rst:4992 msgid "Remove all items from the dictionary." msgstr "" -#: ../../library/stdtypes.rst:4996 msgid "Return a shallow copy of the dictionary." msgstr "" -#: ../../library/stdtypes.rst:5000 msgid "" "Create a new dictionary with keys from *iterable* and values set to *value*." msgstr "" -#: ../../library/stdtypes.rst:5002 msgid "" ":meth:`fromkeys` is a class method that returns a new dictionary. *value* " "defaults to ``None``. All of the values refer to just a single instance, so " @@ -6519,70 +5395,59 @@ msgid "" "` instead." msgstr "" -#: ../../library/stdtypes.rst:5010 msgid "" "Return the value for *key* if *key* is in the dictionary, else *default*. If " "*default* is not given, it defaults to ``None``, so that this method never " "raises a :exc:`KeyError`." msgstr "" -#: ../../library/stdtypes.rst:5016 msgid "" "Return a new view of the dictionary's items (``(key, value)`` pairs). See " "the :ref:`documentation of view objects `." msgstr "" -#: ../../library/stdtypes.rst:5021 msgid "" "Return a new view of the dictionary's keys. See the :ref:`documentation of " "view objects `." msgstr "" -#: ../../library/stdtypes.rst:5026 msgid "" "If *key* is in the dictionary, remove it and return its value, else return " -"*default*. If *default* is not given and *key* is not in the dictionary, " -"a :exc:`KeyError` is raised." +"*default*. If *default* is not given and *key* is not in the dictionary, a :" +"exc:`KeyError` is raised." msgstr "" -#: ../../library/stdtypes.rst:5032 msgid "" "Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " "returned in :abbr:`LIFO (last-in, first-out)` order." msgstr "" -#: ../../library/stdtypes.rst:5035 msgid "" ":meth:`popitem` is useful to destructively iterate over a dictionary, as " -"often used in set algorithms. If the dictionary is empty, " -"calling :meth:`popitem` raises a :exc:`KeyError`." +"often used in set algorithms. If the dictionary is empty, calling :meth:" +"`popitem` raises a :exc:`KeyError`." msgstr "" -#: ../../library/stdtypes.rst:5039 msgid "" "LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " "return an arbitrary key/value pair." msgstr "" -#: ../../library/stdtypes.rst:5045 msgid "" "Return a reverse iterator over the keys of the dictionary. This is a " "shortcut for ``reversed(d.keys())``." msgstr "" -#: ../../library/stdtypes.rst:5052 msgid "" "If *key* is in the dictionary, return its value. If not, insert *key* with " "a value of *default* and return *default*. *default* defaults to ``None``." msgstr "" -#: ../../library/stdtypes.rst:5058 msgid "" -"Update the dictionary with the key/value pairs from *other*, overwriting " -"existing keys. Return ``None``." +"Update the dictionary with the key/value pairs from *mapping* or *iterable* " +"and *kwargs*, overwriting existing keys. Return ``None``." msgstr "" -#: ../../library/stdtypes.rst:5061 msgid "" ":meth:`update` accepts either another object with a ``keys()`` method (in " "which case :meth:`~object.__getitem__` is called with every key returned " @@ -6591,45 +5456,38 @@ msgid "" "is then updated with those key/value pairs: ``d.update(red=1, blue=2)``." msgstr "" -#: ../../library/stdtypes.rst:5069 msgid "" "Return a new view of the dictionary's values. See the :ref:`documentation " "of view objects `." msgstr "" -#: ../../library/stdtypes.rst:5072 msgid "" "An equality comparison between one ``dict.values()`` view and another will " "always return ``False``. This also applies when comparing ``dict.values()`` " "to itself::" msgstr "" -#: ../../library/stdtypes.rst:5076 msgid "" ">>> d = {'a': 1}\n" ">>> d.values() == d.values()\n" "False" msgstr "" -#: ../../library/stdtypes.rst:5082 msgid "" "Create a new dictionary with the merged keys and values of *d* and *other*, " "which must both be dictionaries. The values of *other* take priority when " "*d* and *other* share keys." msgstr "" -#: ../../library/stdtypes.rst:5090 msgid "" "Update the dictionary *d* with keys and values from *other*, which may be " "either a :term:`mapping` or an :term:`iterable` of key/value pairs. The " "values of *other* take priority when *d* and *other* share keys." msgstr "" -#: ../../library/stdtypes.rst:5096 msgid "Dictionaries and dictionary views are reversible. ::" msgstr "" -#: ../../library/stdtypes.rst:5098 msgid "" ">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" ">>> d\n" @@ -6642,85 +5500,70 @@ msgid "" "[('four', 4), ('three', 3), ('two', 2), ('one', 1)]" msgstr "" -#: ../../library/stdtypes.rst:5108 msgid "Dictionaries are now reversible." msgstr "" -#: ../../library/stdtypes.rst:5113 msgid "" -":class:`types.MappingProxyType` can be used to create a read-only view of " -"a :class:`dict`." +":class:`types.MappingProxyType` can be used to create a read-only view of a :" +"class:`dict`." msgstr "" -#: ../../library/stdtypes.rst:5120 msgid "Dictionary view objects" msgstr "" -#: ../../library/stdtypes.rst:5122 msgid "" -"The objects returned by :meth:`dict.keys`, :meth:`dict.values` " -"and :meth:`dict.items` are *view objects*. They provide a dynamic view on " -"the dictionary's entries, which means that when the dictionary changes, the " -"view reflects these changes." +"The objects returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:" +"`dict.items` are *view objects*. They provide a dynamic view on the " +"dictionary's entries, which means that when the dictionary changes, the view " +"reflects these changes." msgstr "" -#: ../../library/stdtypes.rst:5127 msgid "" "Dictionary views can be iterated over to yield their respective data, and " "support membership tests:" msgstr "" -#: ../../library/stdtypes.rst:5132 msgid "Return the number of entries in the dictionary." msgstr "" -#: ../../library/stdtypes.rst:5136 msgid "" "Return an iterator over the keys, values or items (represented as tuples of " "``(key, value)``) in the dictionary." msgstr "" -#: ../../library/stdtypes.rst:5139 msgid "" "Keys and values are iterated over in insertion order. This allows the " -"creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = " -"zip(d.values(), d.keys())``. Another way to create the same list is ``pairs " -"= [(v, k) for (k, v) in d.items()]``." +"creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = zip(d." +"values(), d.keys())``. Another way to create the same list is ``pairs = " +"[(v, k) for (k, v) in d.items()]``." msgstr "" -#: ../../library/stdtypes.rst:5144 msgid "" "Iterating views while adding or deleting entries in the dictionary may raise " "a :exc:`RuntimeError` or fail to iterate over all entries." msgstr "" -#: ../../library/stdtypes.rst:5147 msgid "Dictionary order is guaranteed to be insertion order." msgstr "" -#: ../../library/stdtypes.rst:5152 msgid "" "Return ``True`` if *x* is in the underlying dictionary's keys, values or " "items (in the latter case, *x* should be a ``(key, value)`` tuple)." msgstr "" -#: ../../library/stdtypes.rst:5157 msgid "" "Return a reverse iterator over the keys, values or items of the dictionary. " "The view will be iterated in reverse order of the insertion." msgstr "" -#: ../../library/stdtypes.rst:5160 msgid "Dictionary views are now reversible." msgstr "" -#: ../../library/stdtypes.rst:5165 msgid "" "Return a :class:`types.MappingProxyType` that wraps the original dictionary " "to which the view refers." msgstr "" -#: ../../library/stdtypes.rst:5170 msgid "" "Keys views are set-like since their entries are unique and :term:`hashable`. " "Items views also have set-like operations since the (key, value) pairs are " @@ -6734,11 +5577,9 @@ msgid "" "input." msgstr "" -#: ../../library/stdtypes.rst:5182 msgid "An example of dictionary view usage::" msgstr "" -#: ../../library/stdtypes.rst:5184 msgid "" ">>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}\n" ">>> keys = dishes.keys()\n" @@ -6779,11 +5620,9 @@ msgid "" "500" msgstr "" -#: ../../library/stdtypes.rst:5226 msgid "Context Manager Types" msgstr "" -#: ../../library/stdtypes.rst:5233 msgid "" "Python's :keyword:`with` statement supports the concept of a runtime context " "defined by a context manager. This is implemented using a pair of methods " @@ -6791,7 +5630,6 @@ msgid "" "before the statement body is executed and exited when the statement ends:" msgstr "" -#: ../../library/stdtypes.rst:5241 msgid "" "Enter the runtime context and return either this object or another object " "related to the runtime context. The value returned by this method is bound " @@ -6799,15 +5637,12 @@ msgid "" "using this context manager." msgstr "" -#: ../../library/stdtypes.rst:5246 msgid "" "An example of a context manager that returns itself is a :term:`file " -"object`. File objects return themselves from __enter__() to " -"allow :func:`open` to be used as the context expression in a :keyword:`with` " -"statement." +"object`. File objects return themselves from __enter__() to allow :func:" +"`open` to be used as the context expression in a :keyword:`with` statement." msgstr "" -#: ../../library/stdtypes.rst:5250 msgid "" "An example of a context manager that returns a related object is the one " "returned by :func:`decimal.localcontext`. These managers set the active " @@ -6817,7 +5652,6 @@ msgid "" "the :keyword:`!with` statement." msgstr "" -#: ../../library/stdtypes.rst:5260 msgid "" "Exit the runtime context and return a Boolean flag indicating if any " "exception that occurred should be suppressed. If an exception occurred while " @@ -6826,7 +5660,6 @@ msgid "" "arguments are ``None``." msgstr "" -#: ../../library/stdtypes.rst:5265 msgid "" "Returning a true value from this method will cause the :keyword:`with` " "statement to suppress the exception and continue execution with the " @@ -6837,16 +5670,14 @@ msgid "" "statement." msgstr "" -#: ../../library/stdtypes.rst:5272 msgid "" "The exception passed in should never be reraised explicitly - instead, this " "method should return a false value to indicate that the method completed " "successfully and does not want to suppress the raised exception. This allows " -"context management code to easily detect whether or not " -"an :meth:`~object.__exit__` method has actually failed." +"context management code to easily detect whether or not an :meth:`~object." +"__exit__` method has actually failed." msgstr "" -#: ../../library/stdtypes.rst:5278 msgid "" "Python defines several context managers to support easy thread " "synchronisation, prompt closure of files or other objects, and simpler " @@ -6855,18 +5686,15 @@ msgid "" "management protocol. See the :mod:`contextlib` module for some examples." msgstr "" -#: ../../library/stdtypes.rst:5284 msgid "" "Python's :term:`generator`\\s and the :class:`contextlib.contextmanager` " "decorator provide a convenient way to implement these protocols. If a " "generator function is decorated with the :class:`contextlib.contextmanager` " -"decorator, it will return a context manager implementing the " -"necessary :meth:`~contextmanager.__enter__` " -"and :meth:`~contextmanager.__exit__` methods, rather than the iterator " -"produced by an undecorated generator function." +"decorator, it will return a context manager implementing the necessary :meth:" +"`~contextmanager.__enter__` and :meth:`~contextmanager.__exit__` methods, " +"rather than the iterator produced by an undecorated generator function." msgstr "" -#: ../../library/stdtypes.rst:5291 msgid "" "Note that there is no specific slot for any of these methods in the type " "structure for Python objects in the Python/C API. Extension types wanting to " @@ -6875,23 +5703,19 @@ msgid "" "a single class dictionary lookup is negligible." msgstr "" -#: ../../library/stdtypes.rst:5299 msgid "" -"Type Annotation Types --- :ref:`Generic Alias `, :ref:`Union `" +"Type Annotation Types --- :ref:`Generic Alias `, :ref:" +"`Union `" msgstr "" -#: ../../library/stdtypes.rst:5304 msgid "" -"The core built-in types for :term:`type annotations ` " -"are :ref:`Generic Alias ` and :ref:`Union `." +"The core built-in types for :term:`type annotations ` are :ref:" +"`Generic Alias ` and :ref:`Union `." msgstr "" -#: ../../library/stdtypes.rst:5311 msgid "Generic Alias Type" msgstr "" -#: ../../library/stdtypes.rst:5317 msgid "" "``GenericAlias`` objects are generally created by :ref:`subscripting " "` a class. They are most often used with :ref:`container " @@ -6901,28 +5725,24 @@ msgid "" "are intended primarily for use with :term:`type annotations `." msgstr "" -#: ../../library/stdtypes.rst:5327 msgid "" "It is generally only possible to subscript a class if the class implements " "the special method :meth:`~object.__class_getitem__`." msgstr "" -#: ../../library/stdtypes.rst:5330 msgid "" "A ``GenericAlias`` object acts as a proxy for a :term:`generic type`, " "implementing *parameterized generics*." msgstr "" -#: ../../library/stdtypes.rst:5333 msgid "" "For a container class, the argument(s) supplied to a :ref:`subscription " "` of the class may indicate the type(s) of the elements an " "object contains. For example, ``set[bytes]`` can be used in type annotations " -"to signify a :class:`set` in which all the elements are of " -"type :class:`bytes`." +"to signify a :class:`set` in which all the elements are of type :class:" +"`bytes`." msgstr "" -#: ../../library/stdtypes.rst:5339 msgid "" "For a class which defines :meth:`~object.__class_getitem__` but is not a " "container, the argument(s) supplied to a subscription of the class will " @@ -6931,7 +5751,6 @@ msgid "" "the :class:`str` data type and the :class:`bytes` data type:" msgstr "" -#: ../../library/stdtypes.rst:5345 msgid "" "If ``x = re.search('foo', 'foo')``, ``x`` will be a :ref:`re.Match ` object where the return values of ``x.group(0)`` and ``x[0]`` will " @@ -6939,36 +5758,31 @@ msgid "" "annotations with the ``GenericAlias`` ``re.Match[str]``." msgstr "" -#: ../../library/stdtypes.rst:5351 msgid "" "If ``y = re.search(b'bar', b'bar')``, (note the ``b`` for :class:`bytes`), " -"``y`` will also be an instance of ``re.Match``, but the return values of " -"``y.group(0)`` and ``y[0]`` will both be of type :class:`bytes`. In type " +"``y`` will also be an instance of ``re.Match``, but the return values of ``y." +"group(0)`` and ``y[0]`` will both be of type :class:`bytes`. In type " "annotations, we would represent this variety of :ref:`re.Match ` objects with ``re.Match[bytes]``." msgstr "" -#: ../../library/stdtypes.rst:5357 msgid "" -"``GenericAlias`` objects are instances of the " -"class :class:`types.GenericAlias`, which can also be used to create " -"``GenericAlias`` objects directly." +"``GenericAlias`` objects are instances of the class :class:`types." +"GenericAlias`, which can also be used to create ``GenericAlias`` objects " +"directly." msgstr "" -#: ../../library/stdtypes.rst:5363 msgid "" "Creates a ``GenericAlias`` representing a type ``T`` parameterized by types " "*X*, *Y*, and more depending on the ``T`` used. For example, a function " "expecting a :class:`list` containing :class:`float` elements::" msgstr "" -#: ../../library/stdtypes.rst:5368 msgid "" "def average(values: list[float]) -> float:\n" " return sum(values) / len(values)" msgstr "" -#: ../../library/stdtypes.rst:5371 msgid "" "Another example for :term:`mapping` objects, using a :class:`dict`, which is " "a generic type expecting two type parameters representing the key type and " @@ -6976,19 +5790,16 @@ msgid "" "of type :class:`str` and values of type :class:`int`::" msgstr "" -#: ../../library/stdtypes.rst:5376 msgid "" "def send_post_request(url: str, body: dict[str, int]) -> None:\n" " ..." msgstr "" -#: ../../library/stdtypes.rst:5379 msgid "" "The builtin functions :func:`isinstance` and :func:`issubclass` do not " "accept ``GenericAlias`` types for their second argument::" msgstr "" -#: ../../library/stdtypes.rst:5382 msgid "" ">>> isinstance([1, 2], list[str])\n" "Traceback (most recent call last):\n" @@ -6996,7 +5807,6 @@ msgid "" "TypeError: isinstance() argument 2 cannot be a parameterized generic" msgstr "" -#: ../../library/stdtypes.rst:5387 msgid "" "The Python runtime does not enforce :term:`type annotations `. " "This extends to generic types and their type parameters. When creating a " @@ -7005,20 +5815,17 @@ msgid "" "discouraged, but will run without errors::" msgstr "" -#: ../../library/stdtypes.rst:5393 msgid "" ">>> t = list[str]\n" ">>> t([1, 2, 3])\n" "[1, 2, 3]" msgstr "" -#: ../../library/stdtypes.rst:5397 msgid "" "Furthermore, parameterized generics erase type parameters during object " "creation::" msgstr "" -#: ../../library/stdtypes.rst:5400 msgid "" ">>> t = list[str]\n" ">>> type(t)\n" @@ -7029,13 +5836,11 @@ msgid "" "" msgstr "" -#: ../../library/stdtypes.rst:5408 msgid "" "Calling :func:`repr` or :func:`str` on a generic shows the parameterized " "type::" msgstr "" -#: ../../library/stdtypes.rst:5410 msgid "" ">>> repr(list[int])\n" "'list[int]'\n" @@ -7044,13 +5849,11 @@ msgid "" "'list[int]'" msgstr "" -#: ../../library/stdtypes.rst:5416 msgid "" "The :meth:`~object.__getitem__` method of generic containers will raise an " "exception to disallow mistakes like ``dict[str][str]``::" msgstr "" -#: ../../library/stdtypes.rst:5419 msgid "" ">>> dict[str][str]\n" "Traceback (most recent call last):\n" @@ -7058,14 +5861,12 @@ msgid "" "TypeError: dict[str] is not a generic class" msgstr "" -#: ../../library/stdtypes.rst:5424 msgid "" "However, such expressions are valid when :ref:`type variables ` " "are used. The index must have as many elements as there are type variable " "items in the ``GenericAlias`` object's :attr:`~genericalias.__args__`. ::" msgstr "" -#: ../../library/stdtypes.rst:5428 msgid "" ">>> from typing import TypeVar\n" ">>> Y = TypeVar('Y')\n" @@ -7073,274 +5874,209 @@ msgid "" "dict[str, int]" msgstr "" -#: ../../library/stdtypes.rst:5435 msgid "Standard Generic Classes" msgstr "" -#: ../../library/stdtypes.rst:5437 msgid "" "The following standard library classes support parameterized generics. This " "list is non-exhaustive." msgstr "" -#: ../../library/stdtypes.rst:5440 msgid ":class:`tuple`" msgstr "" -#: ../../library/stdtypes.rst:5441 msgid ":class:`list`" msgstr "" -#: ../../library/stdtypes.rst:5442 msgid ":class:`dict`" msgstr "" -#: ../../library/stdtypes.rst:5443 msgid ":class:`set`" msgstr "" -#: ../../library/stdtypes.rst:5444 msgid ":class:`frozenset`" msgstr "" -#: ../../library/stdtypes.rst:5445 msgid ":class:`type`" msgstr "" -#: ../../library/stdtypes.rst:5446 msgid ":class:`asyncio.Future`" msgstr "" -#: ../../library/stdtypes.rst:5447 msgid ":class:`asyncio.Task`" msgstr "" -#: ../../library/stdtypes.rst:5448 msgid ":class:`collections.deque`" msgstr "" -#: ../../library/stdtypes.rst:5449 msgid ":class:`collections.defaultdict`" msgstr "" -#: ../../library/stdtypes.rst:5450 msgid ":class:`collections.OrderedDict`" msgstr "" -#: ../../library/stdtypes.rst:5451 msgid ":class:`collections.Counter`" msgstr "" -#: ../../library/stdtypes.rst:5452 msgid ":class:`collections.ChainMap`" msgstr "" -#: ../../library/stdtypes.rst:5453 msgid ":class:`collections.abc.Awaitable`" msgstr "" -#: ../../library/stdtypes.rst:5454 msgid ":class:`collections.abc.Coroutine`" msgstr "" -#: ../../library/stdtypes.rst:5455 msgid ":class:`collections.abc.AsyncIterable`" msgstr "" -#: ../../library/stdtypes.rst:5456 msgid ":class:`collections.abc.AsyncIterator`" msgstr "" -#: ../../library/stdtypes.rst:5457 msgid ":class:`collections.abc.AsyncGenerator`" msgstr "" -#: ../../library/stdtypes.rst:5458 msgid ":class:`collections.abc.Iterable`" msgstr "" -#: ../../library/stdtypes.rst:5459 msgid ":class:`collections.abc.Iterator`" msgstr "" -#: ../../library/stdtypes.rst:5460 msgid ":class:`collections.abc.Generator`" msgstr "" -#: ../../library/stdtypes.rst:5461 msgid ":class:`collections.abc.Reversible`" msgstr "" -#: ../../library/stdtypes.rst:5462 msgid ":class:`collections.abc.Container`" msgstr "" -#: ../../library/stdtypes.rst:5463 msgid ":class:`collections.abc.Collection`" msgstr "" -#: ../../library/stdtypes.rst:5464 msgid ":class:`collections.abc.Callable`" msgstr "" -#: ../../library/stdtypes.rst:5465 msgid ":class:`collections.abc.Set`" msgstr "" -#: ../../library/stdtypes.rst:5466 msgid ":class:`collections.abc.MutableSet`" msgstr "" -#: ../../library/stdtypes.rst:5467 msgid ":class:`collections.abc.Mapping`" msgstr "" -#: ../../library/stdtypes.rst:5468 msgid ":class:`collections.abc.MutableMapping`" msgstr "" -#: ../../library/stdtypes.rst:5469 msgid ":class:`collections.abc.Sequence`" msgstr "" -#: ../../library/stdtypes.rst:5470 msgid ":class:`collections.abc.MutableSequence`" msgstr "" -#: ../../library/stdtypes.rst:5471 msgid ":class:`collections.abc.MappingView`" msgstr "" -#: ../../library/stdtypes.rst:5472 msgid ":class:`collections.abc.KeysView`" msgstr "" -#: ../../library/stdtypes.rst:5473 msgid ":class:`collections.abc.ItemsView`" msgstr "" -#: ../../library/stdtypes.rst:5474 msgid ":class:`collections.abc.ValuesView`" msgstr "" -#: ../../library/stdtypes.rst:5475 msgid ":class:`contextlib.AbstractContextManager`" msgstr "" -#: ../../library/stdtypes.rst:5476 msgid ":class:`contextlib.AbstractAsyncContextManager`" msgstr "" -#: ../../library/stdtypes.rst:5477 msgid ":class:`dataclasses.Field`" msgstr "" -#: ../../library/stdtypes.rst:5478 msgid ":class:`functools.cached_property`" msgstr "" -#: ../../library/stdtypes.rst:5479 msgid ":class:`functools.partialmethod`" msgstr "" -#: ../../library/stdtypes.rst:5480 msgid ":class:`os.PathLike`" msgstr "" -#: ../../library/stdtypes.rst:5481 msgid ":class:`queue.LifoQueue`" msgstr "" -#: ../../library/stdtypes.rst:5482 msgid ":class:`queue.Queue`" msgstr "" -#: ../../library/stdtypes.rst:5483 msgid ":class:`queue.PriorityQueue`" msgstr "" -#: ../../library/stdtypes.rst:5484 msgid ":class:`queue.SimpleQueue`" msgstr "" -#: ../../library/stdtypes.rst:5485 msgid ":ref:`re.Pattern `" msgstr "" -#: ../../library/stdtypes.rst:5486 msgid ":ref:`re.Match `" msgstr "" -#: ../../library/stdtypes.rst:5487 msgid ":class:`shelve.BsdDbShelf`" msgstr "" -#: ../../library/stdtypes.rst:5488 msgid ":class:`shelve.DbfilenameShelf`" msgstr "" -#: ../../library/stdtypes.rst:5489 msgid ":class:`shelve.Shelf`" msgstr "" -#: ../../library/stdtypes.rst:5490 msgid ":class:`types.MappingProxyType`" msgstr "" -#: ../../library/stdtypes.rst:5491 msgid ":class:`weakref.WeakKeyDictionary`" msgstr "" -#: ../../library/stdtypes.rst:5492 msgid ":class:`weakref.WeakMethod`" msgstr "" -#: ../../library/stdtypes.rst:5493 msgid ":class:`weakref.WeakSet`" msgstr "" -#: ../../library/stdtypes.rst:5494 msgid ":class:`weakref.WeakValueDictionary`" msgstr "" -#: ../../library/stdtypes.rst:5499 msgid "Special Attributes of ``GenericAlias`` objects" msgstr "" -#: ../../library/stdtypes.rst:5501 msgid "All parameterized generics implement special read-only attributes." msgstr "" -#: ../../library/stdtypes.rst:5505 msgid "This attribute points at the non-parameterized generic class::" msgstr "" -#: ../../library/stdtypes.rst:5507 msgid "" ">>> list[int].__origin__\n" "" msgstr "" -#: ../../library/stdtypes.rst:5513 msgid "" "This attribute is a :class:`tuple` (possibly of length 1) of generic types " "passed to the original :meth:`~object.__class_getitem__` of the generic " "class::" msgstr "" -#: ../../library/stdtypes.rst:5517 msgid "" ">>> dict[str, list[int]].__args__\n" "(, list[int])" msgstr "" -#: ../../library/stdtypes.rst:5523 msgid "" "This attribute is a lazily computed tuple (possibly empty) of unique type " "variables found in ``__args__``::" msgstr "" -#: ../../library/stdtypes.rst:5526 msgid "" ">>> from typing import TypeVar\n" "\n" @@ -7349,79 +6085,65 @@ msgid "" "(~T,)" msgstr "" -#: ../../library/stdtypes.rst:5534 msgid "" "A ``GenericAlias`` object with :class:`typing.ParamSpec` parameters may not " -"have correct ``__parameters__`` after substitution " -"because :class:`typing.ParamSpec` is intended primarily for static type " -"checking." +"have correct ``__parameters__`` after substitution because :class:`typing." +"ParamSpec` is intended primarily for static type checking." msgstr "" -#: ../../library/stdtypes.rst:5541 msgid "" "A boolean that is true if the alias has been unpacked using the ``*`` " "operator (see :data:`~typing.TypeVarTuple`)." msgstr "" -#: ../../library/stdtypes.rst:5549 msgid ":pep:`484` - Type Hints" msgstr "" -#: ../../library/stdtypes.rst:5550 msgid "Introducing Python's framework for type annotations." msgstr "" -#: ../../library/stdtypes.rst:5552 msgid ":pep:`585` - Type Hinting Generics In Standard Collections" msgstr "" -#: ../../library/stdtypes.rst:5553 msgid "" "Introducing the ability to natively parameterize standard-library classes, " -"provided they implement the special class " -"method :meth:`~object.__class_getitem__`." +"provided they implement the special class method :meth:`~object." +"__class_getitem__`." msgstr "" -#: ../../library/stdtypes.rst:5557 msgid "" -":ref:`Generics`, :ref:`user-defined generics ` " -"and :class:`typing.Generic`" +":ref:`Generics`, :ref:`user-defined generics ` and :" +"class:`typing.Generic`" msgstr "" -#: ../../library/stdtypes.rst:5558 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." msgstr "" -#: ../../library/stdtypes.rst:5567 msgid "Union Type" msgstr "" -#: ../../library/stdtypes.rst:5573 msgid "" "A union object holds the value of the ``|`` (bitwise or) operation on " "multiple :ref:`type objects `. These types are intended " "primarily for :term:`type annotations `. The union type " -"expression enables cleaner type hinting syntax compared to " -"subscripting :class:`typing.Union`." +"expression enables cleaner type hinting syntax compared to subscripting :" +"class:`typing.Union`." msgstr "" -#: ../../library/stdtypes.rst:5580 msgid "" "Defines a union object which holds types *X*, *Y*, and so forth. ``X | Y`` " "means either X or Y. It is equivalent to ``typing.Union[X, Y]``. For " -"example, the following function expects an argument of type :class:`int` " -"or :class:`float`::" +"example, the following function expects an argument of type :class:`int` or :" +"class:`float`::" msgstr "" -#: ../../library/stdtypes.rst:5585 msgid "" "def square(number: int | float) -> int | float:\n" " return number ** 2" msgstr "" -#: ../../library/stdtypes.rst:5590 msgid "" "The ``|`` operand cannot be used at runtime to define unions where one or " "more members is a forward reference. For example, ``int | \"Foo\"``, where " @@ -7430,72 +6152,57 @@ msgid "" "a string, e.g. ``\"int | Foo\"``." msgstr "" -#: ../../library/stdtypes.rst:5598 msgid "" "Union objects can be tested for equality with other union objects. Details:" msgstr "" -#: ../../library/stdtypes.rst:5600 msgid "Unions of unions are flattened::" msgstr "" -#: ../../library/stdtypes.rst:5602 msgid "(int | str) | float == int | str | float" msgstr "" -#: ../../library/stdtypes.rst:5604 msgid "Redundant types are removed::" msgstr "" -#: ../../library/stdtypes.rst:5606 msgid "int | str | int == int | str" msgstr "" -#: ../../library/stdtypes.rst:5608 msgid "When comparing unions, the order is ignored::" msgstr "" -#: ../../library/stdtypes.rst:5610 msgid "int | str == str | int" msgstr "" -#: ../../library/stdtypes.rst:5612 msgid "It creates instances of :class:`typing.Union`::" msgstr "" -#: ../../library/stdtypes.rst:5614 msgid "" "int | str == typing.Union[int, str]\n" "type(int | str) is typing.Union" msgstr "" -#: ../../library/stdtypes.rst:5617 msgid "Optional types can be spelled as a union with ``None``::" msgstr "" -#: ../../library/stdtypes.rst:5619 msgid "str | None == typing.Optional[str]" msgstr "" -#: ../../library/stdtypes.rst:5624 msgid "" "Calls to :func:`isinstance` and :func:`issubclass` are also supported with a " "union object::" msgstr "" -#: ../../library/stdtypes.rst:5627 msgid "" ">>> isinstance(\"\", int | str)\n" "True" msgstr "" -#: ../../library/stdtypes.rst:5630 msgid "" "However, :ref:`parameterized generics ` in union objects " "cannot be checked::" msgstr "" -#: ../../library/stdtypes.rst:5633 msgid "" ">>> isinstance(1, int | list[int]) # short-circuit evaluation\n" "True\n" @@ -7505,13 +6212,11 @@ msgid "" "TypeError: isinstance() argument 2 cannot be a parameterized generic" msgstr "" -#: ../../library/stdtypes.rst:5640 msgid "" -"The user-exposed type for the union object can be accessed " -"from :class:`typing.Union` and used for :func:`isinstance` checks::" +"The user-exposed type for the union object can be accessed from :class:" +"`typing.Union` and used for :func:`isinstance` checks::" msgstr "" -#: ../../library/stdtypes.rst:5643 msgid "" ">>> import typing\n" ">>> isinstance(int | str, typing.Union)\n" @@ -7522,14 +6227,12 @@ msgid "" "TypeError: cannot create 'typing.Union' instances" msgstr "" -#: ../../library/stdtypes.rst:5652 msgid "" "The :meth:`!__or__` method for type objects was added to support the syntax " "``X | Y``. If a metaclass implements :meth:`!__or__`, the Union may " "override it:" msgstr "" -#: ../../library/stdtypes.rst:5656 msgid "" ">>> class M(type):\n" "... def __or__(self, other):\n" @@ -7544,79 +6247,66 @@ msgid "" "int | C" msgstr "" -#: ../../library/stdtypes.rst:5672 msgid ":pep:`604` -- PEP proposing the ``X | Y`` syntax and the Union type." msgstr "" -#: ../../library/stdtypes.rst:5678 msgid "" "Union objects are now instances of :class:`typing.Union`. Previously, they " -"were instances of :class:`types.UnionType`, which remains an alias " -"for :class:`typing.Union`." +"were instances of :class:`types.UnionType`, which remains an alias for :" +"class:`typing.Union`." msgstr "" -#: ../../library/stdtypes.rst:5685 msgid "Other Built-in Types" msgstr "" -#: ../../library/stdtypes.rst:5687 msgid "" "The interpreter supports several other kinds of objects. Most of these " "support only one or two operations." msgstr "" -#: ../../library/stdtypes.rst:5694 msgid "Modules" msgstr "Modulok" -#: ../../library/stdtypes.rst:5696 msgid "" "The only special operation on a module is attribute access: ``m.name``, " "where *m* is a module and *name* accesses a name defined in *m*'s symbol " -"table. Module attributes can be assigned to. (Note that " -"the :keyword:`import` statement is not, strictly speaking, an operation on a " -"module object; ``import foo`` does not require a module object named *foo* " -"to exist, rather it requires an (external) *definition* for a module named " +"table. Module attributes can be assigned to. (Note that the :keyword:" +"`import` statement is not, strictly speaking, an operation on a module " +"object; ``import foo`` does not require a module object named *foo* to " +"exist, rather it requires an (external) *definition* for a module named " "*foo* somewhere.)" msgstr "" -#: ../../library/stdtypes.rst:5703 msgid "" "A special attribute of every module is :attr:`~object.__dict__`. This is the " "dictionary containing the module's symbol table. Modifying this dictionary " "will actually change the module's symbol table, but direct assignment to " -"the :attr:`~object.__dict__` attribute is not possible (you can write " -"``m.__dict__['a'] = 1``, which defines ``m.a`` to be ``1``, but you can't " -"write ``m.__dict__ = {}``). Modifying :attr:`~object.__dict__` directly is " -"not recommended." +"the :attr:`~object.__dict__` attribute is not possible (you can write ``m." +"__dict__['a'] = 1``, which defines ``m.a`` to be ``1``, but you can't write " +"``m.__dict__ = {}``). Modifying :attr:`~object.__dict__` directly is not " +"recommended." msgstr "" -#: ../../library/stdtypes.rst:5711 msgid "" -"Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````." +"Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````." msgstr "" -#: ../../library/stdtypes.rst:5719 msgid "Classes and Class Instances" msgstr "" -#: ../../library/stdtypes.rst:5721 msgid "See :ref:`objects` and :ref:`class` for these." msgstr "" -#: ../../library/stdtypes.rst:5727 msgid "Functions" msgstr "" -#: ../../library/stdtypes.rst:5729 msgid "" "Function objects are created by function definitions. The only operation on " "a function object is to call it: ``func(argument-list)``." msgstr "" -#: ../../library/stdtypes.rst:5732 msgid "" "There are really two flavors of function objects: built-in functions and " "user-defined functions. Both support the same operation (to call the " @@ -7624,36 +6314,31 @@ msgid "" "types." msgstr "" -#: ../../library/stdtypes.rst:5736 msgid "See :ref:`function` for more information." msgstr "" -#: ../../library/stdtypes.rst:5742 msgid "Methods" msgstr "" -#: ../../library/stdtypes.rst:5746 msgid "" "Methods are functions that are called using the attribute notation. There " -"are two flavors: :ref:`built-in methods ` (such " -"as :meth:`append` on lists) and :ref:`class instance method ` (such as :meth:" +"`~list.append` on lists) and :ref:`class instance method `. Built-in methods are described with the types that support them." msgstr "" -#: ../../library/stdtypes.rst:5751 msgid "" "If you access a method (a function defined in a class namespace) through an " -"instance, you get a special object: a :dfn:`bound method` (also " -"called :ref:`instance method `) object. When called, it " -"will add the ``self`` argument to the argument list. Bound methods have two " -"special read-only attributes: :attr:`m.__self__ ` is the " -"object on which the method operates, and :attr:`m.__func__ " -"` is the function implementing the method. Calling " -"``m(arg-1, arg-2, ..., arg-n)`` is completely equivalent to calling " -"``m.__func__(m.__self__, arg-1, arg-2, ..., arg-n)``." +"instance, you get a special object: a :dfn:`bound method` (also called :ref:" +"`instance method `) object. When called, it will add the " +"``self`` argument to the argument list. Bound methods have two special read-" +"only attributes: :attr:`m.__self__ ` is the object on which " +"the method operates, and :attr:`m.__func__ ` is the " +"function implementing the method. Calling ``m(arg-1, arg-2, ..., arg-n)`` " +"is completely equivalent to calling ``m.__func__(m.__self__, arg-1, " +"arg-2, ..., arg-n)``." msgstr "" -#: ../../library/stdtypes.rst:5762 msgid "" "Like :ref:`function objects `, bound method objects " "support getting arbitrary attributes. However, since method attributes are " @@ -7664,7 +6349,6 @@ msgid "" "underlying function object:" msgstr "" -#: ../../library/stdtypes.rst:5770 msgid "" ">>> class C:\n" "... def method(self):\n" @@ -7680,46 +6364,38 @@ msgid "" "'my name is method'" msgstr "" -#: ../../library/stdtypes.rst:5785 msgid "See :ref:`instance-methods` for more information." msgstr "" -#: ../../library/stdtypes.rst:5793 msgid "Code Objects" msgstr "" -#: ../../library/stdtypes.rst:5799 msgid "" "Code objects are used by the implementation to represent \"pseudo-compiled\" " "executable Python code such as a function body. They differ from function " "objects because they don't contain a reference to their global execution " "environment. Code objects are returned by the built-in :func:`compile` " -"function and can be extracted from function objects through " -"their :attr:`~function.__code__` attribute. See also the :mod:`code` module." +"function and can be extracted from function objects through their :attr:" +"`~function.__code__` attribute. See also the :mod:`code` module." msgstr "" -#: ../../library/stdtypes.rst:5806 msgid "" "Accessing :attr:`~function.__code__` raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and " "``\"__code__\"``." msgstr "" -#: ../../library/stdtypes.rst:5813 msgid "" "A code object can be executed or evaluated by passing it (instead of a " "source string) to the :func:`exec` or :func:`eval` built-in functions." msgstr "" -#: ../../library/stdtypes.rst:5816 msgid "See :ref:`types` for more information." msgstr "" -#: ../../library/stdtypes.rst:5822 msgid "Type Objects" msgstr "" -#: ../../library/stdtypes.rst:5828 msgid "" "Type objects represent the various object types. An object's type is " "accessed by the built-in function :func:`type`. There are no special " @@ -7727,119 +6403,137 @@ msgid "" "standard built-in types." msgstr "" -#: ../../library/stdtypes.rst:5833 msgid "Types are written like this: ````." msgstr "" -#: ../../library/stdtypes.rst:5839 msgid "The Null Object" msgstr "" -#: ../../library/stdtypes.rst:5841 msgid "" "This object is returned by functions that don't explicitly return a value. " "It supports no special operations. There is exactly one null object, named " "``None`` (a built-in name). ``type(None)()`` produces the same singleton." msgstr "" -#: ../../library/stdtypes.rst:5845 msgid "It is written as ``None``." msgstr "" -#: ../../library/stdtypes.rst:5852 msgid "The Ellipsis Object" msgstr "" -#: ../../library/stdtypes.rst:5854 msgid "" -"This object is commonly used by slicing (see :ref:`slicings`). It supports " -"no special operations. There is exactly one ellipsis object, " +"This object is commonly used used to indicate that something is omitted. It " +"supports no special operations. There is exactly one ellipsis object, " "named :const:`Ellipsis` (a built-in name). ``type(Ellipsis)()`` produces " "the :const:`Ellipsis` singleton." msgstr "" -#: ../../library/stdtypes.rst:5859 msgid "It is written as ``Ellipsis`` or ``...``." msgstr "" -#: ../../library/stdtypes.rst:5865 +msgid "" +"In typical use, ``...`` as the ``Ellipsis`` object appears in a few " +"different places, for instance:" +msgstr "" + +msgid "" +"In type annotations, such as :ref:`callable arguments ` or :ref:`tuple elements `." +msgstr "" + +msgid "" +"As the body of a function instead of a :ref:`pass statement `." +msgstr "" + +msgid "" +"In third-party libraries, such as `Numpy's slicing and striding `_." +msgstr "" + +msgid "" +"Python also uses three dots in ways that are not ``Ellipsis`` objects, for " +"instance:" +msgstr "" + +msgid "" +"Doctest's :const:`ELLIPSIS `, as a pattern for missing " +"content." +msgstr "" + +msgid "" +"The default Python prompt of the :term:`interactive` shell when partial " +"input is incomplete." +msgstr "" + +msgid "" +"Lastly, the Python documentation often uses three dots in conventional " +"English usage to mean omitted content, even in code examples that also use " +"them as the ``Ellipsis``." +msgstr "" + msgid "The NotImplemented Object" msgstr "" -#: ../../library/stdtypes.rst:5867 msgid "" "This object is returned from comparisons and binary operations when they are " "asked to operate on types they don't support. See :ref:`comparisons` for " -"more information. There is exactly one :data:`NotImplemented` " -"object. :code:`type(NotImplemented)()` produces the singleton instance." +"more information. There is exactly one :data:`NotImplemented` object. :code:" +"`type(NotImplemented)()` produces the singleton instance." msgstr "" -#: ../../library/stdtypes.rst:5872 msgid "It is written as :code:`NotImplemented`." msgstr "" -#: ../../library/stdtypes.rst:5878 msgid "Internal Objects" msgstr "" -#: ../../library/stdtypes.rst:5880 msgid "" "See :ref:`types` for this information. It describes :ref:`stack frame " "objects `, :ref:`traceback objects `, and " "slice objects." msgstr "" -#: ../../library/stdtypes.rst:5888 msgid "Special Attributes" msgstr "" -#: ../../library/stdtypes.rst:5890 msgid "" "The implementation adds a few special read-only attributes to several object " -"types, where they are relevant. Some of these are not reported by " -"the :func:`dir` built-in function." +"types, where they are relevant. Some of these are not reported by the :func:" +"`dir` built-in function." msgstr "" -#: ../../library/stdtypes.rst:5897 msgid "" "The name of the class, function, method, descriptor, or generator instance." msgstr "" -#: ../../library/stdtypes.rst:5903 msgid "" "The :term:`qualified name` of the class, function, method, descriptor, or " "generator instance." msgstr "" -#: ../../library/stdtypes.rst:5911 msgid "The name of the module in which a class or function was defined." msgstr "" -#: ../../library/stdtypes.rst:5916 msgid "" "The documentation string of a class or function, or ``None`` if undefined." msgstr "" -#: ../../library/stdtypes.rst:5921 msgid "" -"The :ref:`type parameters ` of generic classes, functions, " -"and :ref:`type aliases `. For classes and functions that are " -"not generic, this will be an empty tuple." +"The :ref:`type parameters ` of generic classes, functions, and :" +"ref:`type aliases `. For classes and functions that are not " +"generic, this will be an empty tuple." msgstr "" -#: ../../library/stdtypes.rst:5931 msgid "Integer string conversion length limitation" msgstr "" -#: ../../library/stdtypes.rst:5933 msgid "" -"CPython has a global limit for converting between :class:`int` " -"and :class:`str` to mitigate denial of service attacks. This limit *only* " -"applies to decimal or other non-power-of-two number bases. Hexadecimal, " -"octal, and binary conversions are unlimited. The limit can be configured." +"CPython has a global limit for converting between :class:`int` and :class:" +"`str` to mitigate denial of service attacks. This limit *only* applies to " +"decimal or other non-power-of-two number bases. Hexadecimal, octal, and " +"binary conversions are unlimited. The limit can be configured." msgstr "" -#: ../../library/stdtypes.rst:5938 msgid "" "The :class:`int` type in CPython is an arbitrary length number stored in " "binary form (commonly known as a \"bignum\"). There exists no algorithm that " @@ -7849,24 +6543,20 @@ msgid "" "value such as ``int('1' * 500_000)`` can take over a second on a fast CPU." msgstr "" -#: ../../library/stdtypes.rst:5945 msgid "" "Limiting conversion size offers a practical way to avoid :cve:`2020-10735`." msgstr "" -#: ../../library/stdtypes.rst:5947 msgid "" "The limit is applied to the number of digit characters in the input or " "output string when a non-linear conversion algorithm would be involved. " "Underscores and the sign are not counted towards the limit." msgstr "" -#: ../../library/stdtypes.rst:5951 msgid "" "When an operation would exceed the limit, a :exc:`ValueError` is raised:" msgstr "" -#: ../../library/stdtypes.rst:5953 msgid "" ">>> import sys\n" ">>> sys.set_int_max_str_digits(4300) # Illustrative, this is the default.\n" @@ -7890,19 +6580,16 @@ msgid "" ">>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited." msgstr "" -#: ../../library/stdtypes.rst:5973 msgid "" -"The default limit is 4300 digits as provided " -"in :data:`sys.int_info.default_max_str_digits `. The lowest " -"limit that can be configured is 640 digits as provided " -"in :data:`sys.int_info.str_digits_check_threshold `." +"The default limit is 4300 digits as provided in :data:`sys.int_info." +"default_max_str_digits `. The lowest limit that can be " +"configured is 640 digits as provided in :data:`sys.int_info." +"str_digits_check_threshold `." msgstr "" -#: ../../library/stdtypes.rst:5978 msgid "Verification:" msgstr "" -#: ../../library/stdtypes.rst:5980 msgid "" ">>> import sys\n" ">>> assert sys.int_info.default_max_str_digits == 4300, sys.int_info\n" @@ -7913,131 +6600,105 @@ msgid "" "..." msgstr "" -#: ../../library/stdtypes.rst:5993 msgid "Affected APIs" msgstr "" -#: ../../library/stdtypes.rst:5995 msgid "" -"The limitation only applies to potentially slow conversions " -"between :class:`int` and :class:`str` or :class:`bytes`:" +"The limitation only applies to potentially slow conversions between :class:" +"`int` and :class:`str` or :class:`bytes`:" msgstr "" -#: ../../library/stdtypes.rst:5998 msgid "``int(string)`` with default base 10." msgstr "" -#: ../../library/stdtypes.rst:5999 msgid "``int(string, base)`` for all bases that are not a power of 2." msgstr "" -#: ../../library/stdtypes.rst:6000 msgid "``str(integer)``." msgstr "" -#: ../../library/stdtypes.rst:6001 msgid "``repr(integer)``." msgstr "" -#: ../../library/stdtypes.rst:6002 msgid "" "any other string conversion to base 10, for example ``f\"{integer}\"``, " "``\"{}\".format(integer)``, or ``b\"%d\" % integer``." msgstr "" -#: ../../library/stdtypes.rst:6005 msgid "The limitations do not apply to functions with a linear algorithm:" msgstr "" -#: ../../library/stdtypes.rst:6007 msgid "``int(string, base)`` with base 2, 4, 8, 16, or 32." msgstr "" -#: ../../library/stdtypes.rst:6008 msgid ":func:`int.from_bytes` and :func:`int.to_bytes`." msgstr "" -#: ../../library/stdtypes.rst:6009 msgid ":func:`hex`, :func:`oct`, :func:`bin`." msgstr "" -#: ../../library/stdtypes.rst:6010 msgid ":ref:`formatspec` for hex, octal, and binary numbers." msgstr "" -#: ../../library/stdtypes.rst:6011 msgid ":class:`str` to :class:`float`." msgstr "" -#: ../../library/stdtypes.rst:6012 msgid ":class:`str` to :class:`decimal.Decimal`." msgstr "" -#: ../../library/stdtypes.rst:6015 msgid "Configuring the limit" msgstr "" -#: ../../library/stdtypes.rst:6017 msgid "" "Before Python starts up you can use an environment variable or an " "interpreter command line flag to configure the limit:" msgstr "" -#: ../../library/stdtypes.rst:6020 msgid "" ":envvar:`PYTHONINTMAXSTRDIGITS`, e.g. ``PYTHONINTMAXSTRDIGITS=640 python3`` " "to set the limit to 640 or ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable " "the limitation." msgstr "" -#: ../../library/stdtypes.rst:6023 msgid "" ":option:`-X int_max_str_digits <-X>`, e.g. ``python3 -X " "int_max_str_digits=640``" msgstr "" -#: ../../library/stdtypes.rst:6025 msgid "" -":data:`sys.flags.int_max_str_digits` contains the value " -"of :envvar:`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. " -"If both the env var and the ``-X`` option are set, the ``-X`` option takes " -"precedence. A value of *-1* indicates that both were unset, thus a value " -"of :data:`sys.int_info.default_max_str_digits` was used during " -"initialization." +":data:`sys.flags.int_max_str_digits` contains the value of :envvar:" +"`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. If both the " +"env var and the ``-X`` option are set, the ``-X`` option takes precedence. A " +"value of *-1* indicates that both were unset, thus a value of :data:`sys." +"int_info.default_max_str_digits` was used during initialization." msgstr "" -#: ../../library/stdtypes.rst:6031 msgid "" -"From code, you can inspect the current limit and set a new one using " -"these :mod:`sys` APIs:" +"From code, you can inspect the current limit and set a new one using these :" +"mod:`sys` APIs:" msgstr "" -#: ../../library/stdtypes.rst:6034 msgid "" ":func:`sys.get_int_max_str_digits` and :func:`sys.set_int_max_str_digits` " "are a getter and setter for the interpreter-wide limit. Subinterpreters have " "their own limit." msgstr "" -#: ../../library/stdtypes.rst:6038 msgid "" -"Information about the default and minimum can be found " -"in :data:`sys.int_info`:" +"Information about the default and minimum can be found in :data:`sys." +"int_info`:" msgstr "" -#: ../../library/stdtypes.rst:6040 msgid "" ":data:`sys.int_info.default_max_str_digits ` is the compiled-" "in default limit." msgstr "" -#: ../../library/stdtypes.rst:6042 msgid "" ":data:`sys.int_info.str_digits_check_threshold ` is the lowest " "accepted value for the limit (other than 0 which disables it)." msgstr "" -#: ../../library/stdtypes.rst:6049 msgid "" "Setting a low limit *can* lead to problems. While rare, code exists that " "contains integer constants in decimal in their source that exceed the " @@ -8049,7 +6710,6 @@ msgid "" "constants is to convert them to ``0x`` hexadecimal form as it has no limit." msgstr "" -#: ../../library/stdtypes.rst:6058 msgid "" "Test your application thoroughly if you use a low limit. Ensure your tests " "run with the limit set early via the environment or flag so that it applies " @@ -8057,11 +6717,9 @@ msgid "" "to precompile ``.py`` sources to ``.pyc`` files." msgstr "" -#: ../../library/stdtypes.rst:6064 msgid "Recommended configuration" msgstr "" -#: ../../library/stdtypes.rst:6066 msgid "" "The default :data:`sys.int_info.default_max_str_digits` is expected to be " "reasonable for most applications. If your application requires a different " @@ -8069,11 +6727,9 @@ msgid "" "as these APIs were added in security patch releases in versions before 3.12." msgstr "" -#: ../../library/stdtypes.rst:6071 msgid "Example::" msgstr "" -#: ../../library/stdtypes.rst:6073 msgid "" ">>> import sys\n" ">>> if hasattr(sys, \"set_int_max_str_digits\"):\n" @@ -8086,843 +6742,572 @@ msgid "" "... sys.set_int_max_str_digits(lower_bound)" msgstr "" -#: ../../library/stdtypes.rst:6083 msgid "If you need to disable it entirely, set it to ``0``." msgstr "" -#: ../../library/stdtypes.rst:6087 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/stdtypes.rst:6088 msgid "" "Additional information on these special methods may be found in the Python " "Reference Manual (:ref:`customization`)." msgstr "" -#: ../../library/stdtypes.rst:6091 msgid "" "As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " "and similarly for tuples." msgstr "" -#: ../../library/stdtypes.rst:6094 msgid "They must have since the parser can't tell the type of the operands." msgstr "" -#: ../../library/stdtypes.rst:6096 msgid "" "Cased characters are those with general category property being one of " "\"Lu\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " "titlecase)." msgstr "" -#: ../../library/stdtypes.rst:6099 msgid "" "To format only a tuple you should therefore provide a singleton tuple whose " "only element is the tuple to be formatted." msgstr "" -#: ../../library/stdtypes.rst:13 msgid "built-in" msgstr "" -#: ../../library/stdtypes.rst:13 ../../library/stdtypes.rst:322 -#: ../../library/stdtypes.rst:399 ../../library/stdtypes.rst:992 -#: ../../library/stdtypes.rst:1162 ../../library/stdtypes.rst:1184 -#: ../../library/stdtypes.rst:1199 ../../library/stdtypes.rst:4833 -#: ../../library/stdtypes.rst:5824 msgid "types" msgstr "" -#: ../../library/stdtypes.rst:34 ../../library/stdtypes.rst:1199 -#: ../../library/stdtypes.rst:4833 msgid "statement" msgstr "" -#: ../../library/stdtypes.rst:34 msgid "if" msgstr "" -#: ../../library/stdtypes.rst:34 msgid "while" msgstr "" -#: ../../library/stdtypes.rst:34 msgid "truth" msgstr "" -#: ../../library/stdtypes.rst:34 msgid "value" msgstr "" -#: ../../library/stdtypes.rst:34 ../../library/stdtypes.rst:81 -#: ../../library/stdtypes.rst:208 ../../library/stdtypes.rst:859 msgid "Boolean" msgstr "" -#: ../../library/stdtypes.rst:34 ../../library/stdtypes.rst:81 -#: ../../library/stdtypes.rst:399 msgid "operations" msgstr "" -#: ../../library/stdtypes.rst:34 msgid "false" msgstr "" -#: ../../library/stdtypes.rst:44 msgid "true" msgstr "" -#: ../../library/stdtypes.rst:52 msgid "None (Built-in object)" msgstr "" -#: ../../library/stdtypes.rst:52 msgid "False (Built-in object)" msgstr "" -#: ../../library/stdtypes.rst:64 ../../library/stdtypes.rst:98 -#: ../../library/stdtypes.rst:123 ../../library/stdtypes.rst:195 -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:399 -#: ../../library/stdtypes.rst:992 msgid "operator" msgstr "" -#: ../../library/stdtypes.rst:64 ../../library/stdtypes.rst:98 msgid "or" msgstr "" -#: ../../library/stdtypes.rst:64 ../../library/stdtypes.rst:98 msgid "and" msgstr "" -#: ../../library/stdtypes.rst:64 ../../library/stdtypes.rst:859 msgid "False" msgstr "" -#: ../../library/stdtypes.rst:64 ../../library/stdtypes.rst:859 msgid "True" msgstr "" -#: ../../library/stdtypes.rst:98 msgid "not" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "chaining" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "comparisons" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "comparison" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "==" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "< (less)" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "<=" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "> (greater)" msgstr "" -#: ../../library/stdtypes.rst:123 msgid ">=" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "!=" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "is" msgstr "" -#: ../../library/stdtypes.rst:123 msgid "is not" msgstr "" -#: ../../library/stdtypes.rst:163 ../../library/stdtypes.rst:208 -#: ../../library/stdtypes.rst:976 ../../library/stdtypes.rst:1162 -#: ../../library/stdtypes.rst:1184 ../../library/stdtypes.rst:1309 -#: ../../library/stdtypes.rst:1388 ../../library/stdtypes.rst:1432 -#: ../../library/stdtypes.rst:1553 ../../library/stdtypes.rst:1683 -#: ../../library/stdtypes.rst:2866 ../../library/stdtypes.rst:2885 -#: ../../library/stdtypes.rst:2996 ../../library/stdtypes.rst:4631 -#: ../../library/stdtypes.rst:4833 ../../library/stdtypes.rst:5313 -#: ../../library/stdtypes.rst:5569 ../../library/stdtypes.rst:5744 -#: ../../library/stdtypes.rst:5788 msgid "object" msgstr "" -#: ../../library/stdtypes.rst:163 ../../library/stdtypes.rst:208 -#: ../../library/stdtypes.rst:229 ../../library/stdtypes.rst:322 -#: ../../library/stdtypes.rst:341 msgid "numeric" msgstr "" -#: ../../library/stdtypes.rst:163 msgid "objects" msgstr "" -#: ../../library/stdtypes.rst:163 msgid "comparing" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__eq__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__ne__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__lt__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__le__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__gt__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:173 msgid "__ge__() (instance method)" msgstr "" -#: ../../library/stdtypes.rst:195 ../../library/stdtypes.rst:992 msgid "in" msgstr "" -#: ../../library/stdtypes.rst:195 ../../library/stdtypes.rst:992 msgid "not in" msgstr "" -#: ../../library/stdtypes.rst:208 ../../library/stdtypes.rst:229 -#: ../../library/stdtypes.rst:399 msgid "integer" msgstr "" -#: ../../library/stdtypes.rst:208 ../../library/stdtypes.rst:229 msgid "floating-point" msgstr "" -#: ../../library/stdtypes.rst:208 ../../library/stdtypes.rst:229 msgid "complex number" msgstr "" -#: ../../library/stdtypes.rst:208 msgid "C" msgstr "" -#: ../../library/stdtypes.rst:208 msgid "language" msgstr "" -#: ../../library/stdtypes.rst:229 msgid "literals" msgstr "" -#: ../../library/stdtypes.rst:229 msgid "hexadecimal" msgstr "" -#: ../../library/stdtypes.rst:229 msgid "octal" msgstr "" -#: ../../library/stdtypes.rst:229 msgid "binary" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "arithmetic" msgstr "" -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:992 -#: ../../library/stdtypes.rst:1162 ../../library/stdtypes.rst:4833 -#: ../../library/stdtypes.rst:5795 ../../library/stdtypes.rst:5809 -#: ../../library/stdtypes.rst:5824 msgid "built-in function" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "int" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "float" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "complex" msgstr "" -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:2742 -#: ../../library/stdtypes.rst:4001 msgid "+ (plus)" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "unary operator" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "binary operator" msgstr "" -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:2742 -#: ../../library/stdtypes.rst:4001 msgid "- (minus)" msgstr "" -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:2699 -#: ../../library/stdtypes.rst:3958 msgid "* (asterisk)" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "/ (slash)" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "//" msgstr "" -#: ../../library/stdtypes.rst:249 ../../library/stdtypes.rst:2663 -#: ../../library/stdtypes.rst:3926 msgid "% (percent)" msgstr "" -#: ../../library/stdtypes.rst:249 msgid "**" msgstr "" -#: ../../library/stdtypes.rst:322 ../../library/stdtypes.rst:399 -#: ../../library/stdtypes.rst:992 ../../library/stdtypes.rst:1199 -#: ../../library/stdtypes.rst:4833 msgid "operations on" msgstr "" -#: ../../library/stdtypes.rst:322 msgid "conjugate() (complex number method)" msgstr "" -#: ../../library/stdtypes.rst:341 ../../library/stdtypes.rst:1749 -#: ../../library/stdtypes.rst:2866 ../../library/stdtypes.rst:5824 msgid "module" msgstr "" -#: ../../library/stdtypes.rst:341 msgid "math" msgstr "" -#: ../../library/stdtypes.rst:341 msgid "floor() (in module math)" msgstr "" -#: ../../library/stdtypes.rst:341 msgid "ceil() (in module math)" msgstr "" -#: ../../library/stdtypes.rst:341 msgid "trunc() (in module math)" msgstr "" -#: ../../library/stdtypes.rst:341 msgid "conversions" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "bitwise" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "shifting" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "masking" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "| (vertical bar)" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "^ (caret)" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "& (ampersand)" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "<<" msgstr "" -#: ../../library/stdtypes.rst:399 msgid ">>" msgstr "" -#: ../../library/stdtypes.rst:399 msgid "~ (tilde)" msgstr "" -#: ../../library/stdtypes.rst:859 msgid "values" msgstr "" -#: ../../library/stdtypes.rst:889 msgid "iterator protocol" msgstr "" -#: ../../library/stdtypes.rst:889 ../../library/stdtypes.rst:5228 msgid "protocol" msgstr "" -#: ../../library/stdtypes.rst:889 msgid "iterator" msgstr "" -#: ../../library/stdtypes.rst:889 ../../library/stdtypes.rst:976 -#: ../../library/stdtypes.rst:992 ../../library/stdtypes.rst:1162 -#: ../../library/stdtypes.rst:1184 ../../library/stdtypes.rst:1199 msgid "sequence" msgstr "" -#: ../../library/stdtypes.rst:889 msgid "iteration" msgstr "" -#: ../../library/stdtypes.rst:889 msgid "container" msgstr "" -#: ../../library/stdtypes.rst:889 msgid "iteration over" msgstr "" -#: ../../library/stdtypes.rst:992 ../../library/stdtypes.rst:4833 msgid "len" msgstr "" -#: ../../library/stdtypes.rst:992 msgid "min" msgstr "" -#: ../../library/stdtypes.rst:992 msgid "max" msgstr "" -#: ../../library/stdtypes.rst:992 msgid "concatenation" msgstr "" -#: ../../library/stdtypes.rst:992 msgid "operation" msgstr "" -#: ../../library/stdtypes.rst:992 msgid "repetition" msgstr "" -#: ../../library/stdtypes.rst:992 ../../library/stdtypes.rst:1199 msgid "subscript" msgstr "" -#: ../../library/stdtypes.rst:992 ../../library/stdtypes.rst:1199 msgid "slice" msgstr "" -#: ../../library/stdtypes.rst:992 -msgid "count() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:992 -msgid "index() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1048 msgid "loop" msgstr "" -#: ../../library/stdtypes.rst:1048 msgid "over mutable sequence" msgstr "" -#: ../../library/stdtypes.rst:1048 msgid "mutable sequence" msgstr "" -#: ../../library/stdtypes.rst:1048 msgid "loop over" msgstr "" -#: ../../library/stdtypes.rst:1162 msgid "immutable" msgstr "" -#: ../../library/stdtypes.rst:1162 ../../library/stdtypes.rst:1388 msgid "tuple" msgstr "" -#: ../../library/stdtypes.rst:1162 msgid "hash" msgstr "" -#: ../../library/stdtypes.rst:1184 msgid "mutable" msgstr "" -#: ../../library/stdtypes.rst:1184 ../../library/stdtypes.rst:1199 -#: ../../library/stdtypes.rst:1309 msgid "list" msgstr "" -#: ../../library/stdtypes.rst:1184 ../../library/stdtypes.rst:2866 -#: ../../library/stdtypes.rst:2996 ../../library/stdtypes.rst:3104 -#: ../../library/stdtypes.rst:3926 msgid "bytearray" msgstr "" -#: ../../library/stdtypes.rst:1199 ../../library/stdtypes.rst:4833 -#: ../../library/stdtypes.rst:5569 ../../library/stdtypes.rst:5824 msgid "type" msgstr "" -#: ../../library/stdtypes.rst:1199 msgid "assignment" msgstr "" -#: ../../library/stdtypes.rst:1199 ../../library/stdtypes.rst:4833 msgid "del" msgstr "" -#: ../../library/stdtypes.rst:1199 -msgid "append() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "clear() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "copy() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "extend() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "insert() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "pop() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "remove() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1199 -msgid "reverse() (sequence method)" -msgstr "" - -#: ../../library/stdtypes.rst:1432 msgid "range" msgstr "" -#: ../../library/stdtypes.rst:1553 ../../library/stdtypes.rst:1696 -#: ../../library/stdtypes.rst:1741 ../../library/stdtypes.rst:2517 -#: ../../library/stdtypes.rst:2663 msgid "string" msgstr "" -#: ../../library/stdtypes.rst:1553 msgid "text sequence type" msgstr "" -#: ../../library/stdtypes.rst:1553 ../../library/stdtypes.rst:1696 -#: ../../library/stdtypes.rst:1714 msgid "str (built-in class)" msgstr "" -#: ../../library/stdtypes.rst:1553 msgid "(see also string)" msgstr "" -#: ../../library/stdtypes.rst:1683 msgid "io.StringIO" msgstr "" -#: ../../library/stdtypes.rst:1714 ../../library/stdtypes.rst:2858 msgid "buffer protocol" msgstr "" -#: ../../library/stdtypes.rst:1714 ../../library/stdtypes.rst:2866 -#: ../../library/stdtypes.rst:2885 ../../library/stdtypes.rst:3104 -#: ../../library/stdtypes.rst:3926 msgid "bytes" msgstr "" -#: ../../library/stdtypes.rst:1741 ../../library/stdtypes.rst:3104 msgid "methods" msgstr "" -#: ../../library/stdtypes.rst:1749 msgid "re" msgstr "" -#: ../../library/stdtypes.rst:2331 ../../library/stdtypes.rst:3780 msgid "universal newlines" msgstr "" -#: ../../library/stdtypes.rst:2331 msgid "str.splitlines method" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "! formatted string literal" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "formatted string literals" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "! f-string" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "f-strings" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "fstring" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "interpolated string literal" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "formatted literal" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "interpolated literal" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "{} (curly brackets)" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "in formatted string literal" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "! (exclamation mark)" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid ": (colon)" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "= (equals)" msgstr "" -#: ../../library/stdtypes.rst:2517 msgid "for help in debugging using string literals" msgstr "" -#: ../../library/stdtypes.rst:2663 msgid "formatting, string (%)" msgstr "" -#: ../../library/stdtypes.rst:2663 msgid "interpolation, string (%)" msgstr "" -#: ../../library/stdtypes.rst:2663 msgid "formatting, printf" msgstr "" -#: ../../library/stdtypes.rst:2663 msgid "interpolation, printf" msgstr "" -#: ../../library/stdtypes.rst:2663 ../../library/stdtypes.rst:3926 msgid "printf-style formatting" msgstr "" -#: ../../library/stdtypes.rst:2663 ../../library/stdtypes.rst:3926 msgid "sprintf-style formatting" msgstr "" -#: ../../library/stdtypes.rst:2699 ../../library/stdtypes.rst:3958 msgid "() (parentheses)" msgstr "" -#: ../../library/stdtypes.rst:2699 ../../library/stdtypes.rst:2742 -#: ../../library/stdtypes.rst:3958 ../../library/stdtypes.rst:4001 msgid "in printf-style formatting" msgstr "" -#: ../../library/stdtypes.rst:2699 ../../library/stdtypes.rst:3958 msgid ". (dot)" msgstr "" -#: ../../library/stdtypes.rst:2742 ../../library/stdtypes.rst:4001 msgid "# (hash)" msgstr "" -#: ../../library/stdtypes.rst:2742 ../../library/stdtypes.rst:4001 msgid "space" msgstr "" -#: ../../library/stdtypes.rst:2858 msgid "binary sequence types" msgstr "" -#: ../../library/stdtypes.rst:2866 msgid "memoryview" msgstr "" -#: ../../library/stdtypes.rst:2866 msgid "array" msgstr "" -#: ../../library/stdtypes.rst:3780 msgid "bytes.splitlines method" msgstr "" -#: ../../library/stdtypes.rst:3780 msgid "bytearray.splitlines method" msgstr "" -#: ../../library/stdtypes.rst:3926 msgid "formatting" msgstr "" -#: ../../library/stdtypes.rst:3926 msgid "bytes (%)" msgstr "" -#: ../../library/stdtypes.rst:3926 msgid "bytearray (%)" msgstr "" -#: ../../library/stdtypes.rst:3926 msgid "interpolation" msgstr "" -#: ../../library/stdtypes.rst:4631 msgid "set" msgstr "" -#: ../../library/stdtypes.rst:4833 msgid "mapping" msgstr "" -#: ../../library/stdtypes.rst:4833 msgid "dictionary" msgstr "" -#: ../../library/stdtypes.rst:4943 msgid "__missing__()" msgstr "" -#: ../../library/stdtypes.rst:5228 msgid "context manager" msgstr "" -#: ../../library/stdtypes.rst:5228 msgid "context management protocol" msgstr "" -#: ../../library/stdtypes.rst:5228 msgid "context management" msgstr "" -#: ../../library/stdtypes.rst:5301 msgid "annotation" msgstr "" -#: ../../library/stdtypes.rst:5301 msgid "type annotation; type hint" msgstr "" -#: ../../library/stdtypes.rst:5313 msgid "GenericAlias" msgstr "" -#: ../../library/stdtypes.rst:5313 msgid "Generic" msgstr "" -#: ../../library/stdtypes.rst:5313 msgid "Alias" msgstr "" -#: ../../library/stdtypes.rst:5569 msgid "Union" msgstr "" -#: ../../library/stdtypes.rst:5569 msgid "union" msgstr "" -#: ../../library/stdtypes.rst:5744 msgid "method" msgstr "" -#: ../../library/stdtypes.rst:5788 msgid "code" msgstr "" -#: ../../library/stdtypes.rst:5788 msgid "code object" msgstr "" -#: ../../library/stdtypes.rst:5795 msgid "compile" msgstr "" -#: ../../library/stdtypes.rst:5795 msgid "__code__ (function object attribute)" msgstr "" -#: ../../library/stdtypes.rst:5809 msgid "exec" msgstr "" -#: ../../library/stdtypes.rst:5809 msgid "eval" msgstr "" -#: ../../library/stdtypes.rst:5848 msgid "..." msgstr "" -#: ../../library/stdtypes.rst:5848 msgid "ellipsis literal" msgstr "" diff --git a/library/string.po b/library/string.po index 67e55e9..695096c 100644 --- a/library/string.po +++ b/library/string.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,94 +22,75 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/string.rst:2 msgid ":mod:`!string` --- Common string operations" msgstr "" -#: ../../library/string.rst:7 msgid "**Source code:** :source:`Lib/string.py`" msgstr "" -#: ../../library/string.rst:14 msgid ":ref:`textseq`" msgstr "" -#: ../../library/string.rst:16 msgid ":ref:`string-methods`" msgstr "" -#: ../../library/string.rst:19 msgid "String constants" msgstr "" -#: ../../library/string.rst:21 msgid "The constants defined in this module are:" msgstr "" -#: ../../library/string.rst:26 msgid "" -"The concatenation of the :const:`ascii_lowercase` " -"and :const:`ascii_uppercase` constants described below. This value is not " -"locale-dependent." +"The concatenation of the :const:`ascii_lowercase` and :const:" +"`ascii_uppercase` constants described below. This value is not locale-" +"dependent." msgstr "" -#: ../../library/string.rst:32 msgid "" "The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " "locale-dependent and will not change." msgstr "" -#: ../../library/string.rst:38 msgid "" "The uppercase letters ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. This value is not " "locale-dependent and will not change." msgstr "" -#: ../../library/string.rst:44 msgid "The string ``'0123456789'``." msgstr "" -#: ../../library/string.rst:49 msgid "The string ``'0123456789abcdefABCDEF'``." msgstr "" -#: ../../library/string.rst:54 msgid "The string ``'01234567'``." msgstr "" -#: ../../library/string.rst:59 msgid "" "String of ASCII characters which are considered punctuation characters in " "the ``C`` locale: ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``." msgstr "" -#: ../../library/string.rst:65 msgid "" "String of ASCII characters which are considered printable by Python. This is " -"a combination " -"of :const:`digits`, :const:`ascii_letters`, :const:`punctuation`, " -"and :const:`whitespace`." +"a combination of :const:`digits`, :const:`ascii_letters`, :const:" +"`punctuation`, and :const:`whitespace`." msgstr "" -#: ../../library/string.rst:71 msgid "" -"By design, :meth:`string.printable.isprintable() ` " -"returns :const:`False`. In particular, ``string.printable`` is not printable " -"in the POSIX sense (see :manpage:`LC_CTYPE `)." +"By design, :meth:`string.printable.isprintable() ` returns :" +"const:`False`. In particular, ``string.printable`` is not printable in the " +"POSIX sense (see :manpage:`LC_CTYPE `)." msgstr "" -#: ../../library/string.rst:78 msgid "" "A string containing all ASCII characters that are considered whitespace. " "This includes the characters space, tab, linefeed, return, formfeed, and " "vertical tab." msgstr "" -#: ../../library/string.rst:86 msgid "Custom String Formatting" msgstr "" -#: ../../library/string.rst:88 msgid "" "The built-in string class provides the ability to do complex variable " "substitutions and value formatting via the :meth:`~str.format` method " @@ -120,41 +100,34 @@ msgid "" "method." msgstr "" -#: ../../library/string.rst:97 msgid "The :class:`Formatter` class has the following public methods:" msgstr "" -#: ../../library/string.rst:101 msgid "" "The primary API method. It takes a format string and an arbitrary set of " -"positional and keyword arguments. It is just a wrapper that " -"calls :meth:`vformat`." +"positional and keyword arguments. It is just a wrapper that calls :meth:" +"`vformat`." msgstr "" -#: ../../library/string.rst:105 msgid "" "A format string argument is now :ref:`positional-only `." msgstr "" -#: ../../library/string.rst:111 msgid "" "This function does the actual work of formatting. It is exposed as a " "separate function for cases where you want to pass in a predefined " "dictionary of arguments, rather than unpacking and repacking the dictionary " -"as individual arguments using the ``*args`` and ``**kwargs`` " -"syntax. :meth:`vformat` does the work of breaking up the format string into " -"character data and replacement fields. It calls the various methods " -"described below." +"as individual arguments using the ``*args`` and ``**kwargs`` syntax. :meth:" +"`vformat` does the work of breaking up the format string into character data " +"and replacement fields. It calls the various methods described below." msgstr "" -#: ../../library/string.rst:119 msgid "" "In addition, the :class:`Formatter` defines a number of methods that are " "intended to be replaced by subclasses:" msgstr "" -#: ../../library/string.rst:124 msgid "" "Loop over the format_string and return an iterable of tuples " "(*literal_text*, *field_name*, *format_spec*, *conversion*). This is used " @@ -162,7 +135,6 @@ msgid "" "replacement fields." msgstr "" -#: ../../library/string.rst:129 msgid "" "The values in the tuple conceptually represent a span of literal text " "followed by a single replacement field. If there is no literal text (which " @@ -173,18 +145,16 @@ msgid "" "non-numbered positional fields is done by :meth:`vformat`." msgstr "" -#: ../../library/string.rst:139 msgid "" "Given *field_name*, convert it to an object to be formatted. Auto-numbering " "of *field_name* returned from :meth:`parse` is done by :meth:`vformat` " "before calling this method. Returns a tuple (obj, used_key). The default " -"version takes strings of the form defined in :pep:`3101`, such as \"0[name]" -"\" or \"label.title\". *args* and *kwargs* are as passed in " -"to :meth:`vformat`. The return value *used_key* has the same meaning as the " +"version takes strings of the form defined in :pep:`3101`, such as " +"\"0[name]\" or \"label.title\". *args* and *kwargs* are as passed in to :" +"meth:`vformat`. The return value *used_key* has the same meaning as the " "*key* parameter to :meth:`get_value`." msgstr "" -#: ../../library/string.rst:149 msgid "" "Retrieve a given field value. The *key* argument will be either an integer " "or a string. If it is an integer, it represents the index of the positional " @@ -192,73 +162,62 @@ msgid "" "in *kwargs*." msgstr "" -#: ../../library/string.rst:154 msgid "" -"The *args* parameter is set to the list of positional arguments " -"to :meth:`vformat`, and the *kwargs* parameter is set to the dictionary of " -"keyword arguments." +"The *args* parameter is set to the list of positional arguments to :meth:" +"`vformat`, and the *kwargs* parameter is set to the dictionary of keyword " +"arguments." msgstr "" -#: ../../library/string.rst:158 msgid "" "For compound field names, these functions are only called for the first " "component of the field name; subsequent components are handled through " "normal attribute and indexing operations." msgstr "" -#: ../../library/string.rst:162 msgid "" "So for example, the field expression '0.name' would cause :meth:`get_value` " "to be called with a *key* argument of 0. The ``name`` attribute will be " -"looked up after :meth:`get_value` returns by calling the built-" -"in :func:`getattr` function." +"looked up after :meth:`get_value` returns by calling the built-in :func:" +"`getattr` function." msgstr "" -#: ../../library/string.rst:167 msgid "" -"If the index or keyword refers to an item that does not exist, then " -"an :exc:`IndexError` or :exc:`KeyError` should be raised." +"If the index or keyword refers to an item that does not exist, then an :exc:" +"`IndexError` or :exc:`KeyError` should be raised." msgstr "" -#: ../../library/string.rst:172 msgid "" "Implement checking for unused arguments if desired. The arguments to this " "function is the set of all argument keys that were actually referred to in " "the format string (integers for positional arguments, and strings for named " "arguments), and a reference to the *args* and *kwargs* that was passed to " -"vformat. The set of unused args can be calculated from these " -"parameters. :meth:`check_unused_args` is assumed to raise an exception if " -"the check fails." +"vformat. The set of unused args can be calculated from these parameters. :" +"meth:`check_unused_args` is assumed to raise an exception if the check fails." msgstr "" -#: ../../library/string.rst:182 msgid "" ":meth:`format_field` simply calls the global :func:`format` built-in. The " "method is provided so that subclasses can override it." msgstr "" -#: ../../library/string.rst:187 msgid "" "Converts the value (returned by :meth:`get_field`) given a conversion type " "(as in the tuple returned by the :meth:`parse` method). The default version " "understands 's' (str), 'r' (repr) and 'a' (ascii) conversion types." msgstr "" -#: ../../library/string.rst:196 msgid "Format String Syntax" msgstr "" -#: ../../library/string.rst:198 msgid "" "The :meth:`str.format` method and the :class:`Formatter` class share the " "same syntax for format strings (although in the case of :class:`Formatter`, " "subclasses can define their own format string syntax). The syntax is " -"related to that of :ref:`formatted string literals ` " -"and :ref:`template string literals `, but it is less " -"sophisticated and, in particular, does not support arbitrary expressions." +"related to that of :ref:`formatted string literals ` and :ref:" +"`template string literals `, but it is less sophisticated and, in " +"particular, does not support arbitrary expressions in interpolations." msgstr "" -#: ../../library/string.rst:212 msgid "" "Format strings contain \"replacement fields\" surrounded by curly braces ``{}" "``. Anything that is not contained in braces is considered literal text, " @@ -267,11 +226,9 @@ msgid "" "``." msgstr "" -#: ../../library/string.rst:217 msgid "The grammar for a replacement field is as follows:" msgstr "" -#: ../../library/string.rst:229 msgid "" "In less formal terms, the replacement field can start with a *field_name* " "that specifies the object whose value is to be formatted and inserted into " @@ -281,11 +238,9 @@ msgid "" "specify a non-default format for the replacement value." msgstr "" -#: ../../library/string.rst:236 msgid "See also the :ref:`formatspec` section." msgstr "" -#: ../../library/string.rst:238 msgid "" "The *field_name* itself begins with an *arg_name* that is either a number or " "a keyword. If it's a number, it refers to a positional argument, and if " @@ -297,27 +252,23 @@ msgid "" "not quote-delimited, it is not possible to specify arbitrary dictionary keys " "(e.g., the strings ``'10'`` or ``':-]'``) within a format string. The " "*arg_name* can be followed by any number of index or attribute expressions. " -"An expression of the form ``'.name'`` selects the named attribute " -"using :func:`getattr`, while an expression of the form ``'[index]'`` does an " -"index lookup using :meth:`~object.__getitem__`." +"An expression of the form ``'.name'`` selects the named attribute using :" +"func:`getattr`, while an expression of the form ``'[index]'`` does an index " +"lookup using :meth:`~object.__getitem__`." msgstr "" -#: ../../library/string.rst:252 msgid "" "The positional argument specifiers can be omitted for :meth:`str.format`, so " "``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." msgstr "" -#: ../../library/string.rst:256 msgid "" "The positional argument specifiers can be omitted for :class:`Formatter`." msgstr "" -#: ../../library/string.rst:259 msgid "Some simple format string examples::" msgstr "" -#: ../../library/string.rst:261 msgid "" "\"First, thou shalt count to {0}\" # References first positional argument\n" "\"Bring me a {}\" # Implicitly references the first " @@ -330,35 +281,30 @@ msgid "" "'players'." msgstr "" -#: ../../library/string.rst:270 msgid "" "The *conversion* field causes a type coercion before formatting. Normally, " "the job of formatting a value is done by the :meth:`~object.__format__` " "method of the value itself. However, in some cases it is desirable to force " "a type to be formatted as a string, overriding its own definition of " -"formatting. By converting the value to a string before " -"calling :meth:`~object.__format__`, the normal formatting logic is bypassed." +"formatting. By converting the value to a string before calling :meth:" +"`~object.__format__`, the normal formatting logic is bypassed." msgstr "" -#: ../../library/string.rst:277 msgid "" -"Three conversion flags are currently supported: ``'!s'`` which " -"calls :func:`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!" -"a'`` which calls :func:`ascii`." +"Three conversion flags are currently supported: ``'!s'`` which calls :func:" +"`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " +"calls :func:`ascii`." msgstr "" -#: ../../library/string.rst:281 msgid "Some examples::" msgstr "Néhány példa::" -#: ../../library/string.rst:283 msgid "" "\"Harold's a clever {0!s}\" # Calls str() on the argument first\n" "\"Bring out the holy {name!r}\" # Calls repr() on the argument first\n" "\"More {!a}\" # Calls ascii() on the argument first" msgstr "" -#: ../../library/string.rst:287 msgid "" "The *format_spec* field contains a specification of how the value should be " "presented, including such details as field width, alignment, padding, " @@ -366,13 +312,11 @@ msgid "" "\"formatting mini-language\" or interpretation of the *format_spec*." msgstr "" -#: ../../library/string.rst:292 msgid "" "Most built-in types support a common formatting mini-language, which is " "described in the next section." msgstr "" -#: ../../library/string.rst:295 msgid "" "A *format_spec* field can also include nested replacement fields within it. " "These nested replacement fields may contain a field name, conversion flag " @@ -382,43 +326,36 @@ msgid "" "to be dynamically specified." msgstr "" -#: ../../library/string.rst:302 msgid "See the :ref:`formatexamples` section for some examples." msgstr "" -#: ../../library/string.rst:308 msgid "Format Specification Mini-Language" msgstr "" -#: ../../library/string.rst:310 msgid "" "\"Format specifications\" are used within replacement fields contained " -"within a format string to define how individual values are presented " -"(see :ref:`formatstrings`, :ref:`f-strings`, and :ref:`t-strings`). They can " -"also be passed directly to the built-in :func:`format` function. Each " +"within a format string to define how individual values are presented (see :" +"ref:`formatstrings`, :ref:`f-strings`, and :ref:`t-strings`). They can also " +"be passed directly to the built-in :func:`format` function. Each " "formattable type may define how the format specification is to be " "interpreted." msgstr "" -#: ../../library/string.rst:317 msgid "" "Most built-in types implement the following options for format " "specifications, although some of the formatting options are only supported " "by the numeric types." msgstr "" -#: ../../library/string.rst:320 msgid "" "A general convention is that an empty format specification produces the same " "result as if you had called :func:`str` on the value. A non-empty format " "specification typically modifies the result." msgstr "" -#: ../../library/string.rst:324 msgid "The general form of a *standard format specifier* is:" msgstr "" -#: ../../library/string.rst:341 msgid "" "If a valid *align* value is specified, it can be preceded by a *fill* " "character that can be any character and defaults to a space if omitted. It " @@ -429,117 +366,92 @@ msgid "" "the :func:`format` function." msgstr "" -#: ../../library/string.rst:350 msgid "The meaning of the various alignment options is as follows:" msgstr "" -#: ../../library/string.rst:359 ../../library/string.rst:391 -#: ../../library/string.rst:457 msgid "Option" msgstr "" -#: ../../library/string.rst:359 ../../library/string.rst:391 -#: ../../library/string.rst:457 ../../library/string.rst:491 -#: ../../library/string.rst:502 ../../library/string.rst:537 msgid "Meaning" msgstr "Jelentés" -#: ../../library/string.rst:361 msgid "``'<'``" msgstr "" -#: ../../library/string.rst:361 msgid "" "Forces the field to be left-aligned within the available space (this is the " "default for most objects)." msgstr "" -#: ../../library/string.rst:364 msgid "``'>'``" msgstr "" -#: ../../library/string.rst:364 msgid "" "Forces the field to be right-aligned within the available space (this is the " "default for numbers)." msgstr "" -#: ../../library/string.rst:367 msgid "``'='``" msgstr "" -#: ../../library/string.rst:367 msgid "" "Forces the padding to be placed after the sign (if any) but before the " "digits. This is used for printing fields in the form '+000000120'. This " -"alignment option is only valid for numeric types, " -"excluding :class:`complex`. It becomes the default for numbers when '0' " -"immediately precedes the field width." +"alignment option is only valid for numeric types, excluding :class:" +"`complex`. It becomes the default for numbers when '0' immediately precedes " +"the field width." msgstr "" -#: ../../library/string.rst:374 msgid "``'^'``" msgstr "" -#: ../../library/string.rst:374 msgid "Forces the field to be centered within the available space." msgstr "" -#: ../../library/string.rst:378 msgid "" "Note that unless a minimum field width is defined, the field width will " "always be the same size as the data to fill it, so that the alignment option " "has no meaning in this case." msgstr "" -#: ../../library/string.rst:382 msgid "" "The *sign* option is only valid for number types, and can be one of the " "following:" msgstr "" -#: ../../library/string.rst:393 msgid "``'+'``" -msgstr "``'+'``" +msgstr "" -#: ../../library/string.rst:393 msgid "" "Indicates that a sign should be used for both positive as well as negative " "numbers." msgstr "" -#: ../../library/string.rst:396 msgid "``'-'``" msgstr "" -#: ../../library/string.rst:396 msgid "" "Indicates that a sign should be used only for negative numbers (this is the " "default behavior)." msgstr "" -#: ../../library/string.rst:385 ../../library/string.rst:399 msgid "space" msgstr "" -#: ../../library/string.rst:399 msgid "" "Indicates that a leading space should be used on positive numbers, and a " "minus sign on negative numbers." msgstr "" -#: ../../library/string.rst:406 msgid "" "The ``'z'`` option coerces negative zero floating-point values to positive " "zero after rounding to the format precision. This option is only valid for " "floating-point presentation types." msgstr "" -#: ../../library/string.rst:410 msgid "Added the ``'z'`` option (see also :pep:`682`)." msgstr "" -#: ../../library/string.rst:415 msgid "" "The ``'#'`` option causes the \"alternate form\" to be used for the " "conversion. The alternate form is defined differently for different types. " @@ -553,14 +465,12 @@ msgid "" "and ``'G'`` conversions, trailing zeros are not removed from the result." msgstr "" -#: ../../library/string.rst:427 msgid "" "The *width* is a decimal integer defining the minimum total field width, " "including any prefixes, separators, and other formatting characters. If not " "specified, then the field width will be determined by the content." msgstr "" -#: ../../library/string.rst:431 msgid "" "When no explicit alignment is given, preceding the *width* field by a zero " "(``'0'``) character enables sign-aware zero-padding for numeric types, " @@ -568,13 +478,11 @@ msgid "" "``'0'`` with an *alignment* type of ``'='``." msgstr "" -#: ../../library/string.rst:436 msgid "" "Preceding the *width* field by ``'0'`` no longer affects the default " "alignment for strings." msgstr "" -#: ../../library/string.rst:440 msgid "" "The *precision* is a decimal integer indicating how many digits should be " "displayed after the decimal point for presentation types ``'f'`` and " @@ -585,29 +493,24 @@ msgid "" "types." msgstr "" -#: ../../library/string.rst:448 msgid "" "The *grouping* option after *width* and *precision* fields specifies a digit " "group separator for the integral and fractional parts of a number " "respectively. It can be one of the following:" msgstr "" -#: ../../library/string.rst:459 msgid "``','``" msgstr "" -#: ../../library/string.rst:459 msgid "" "Inserts a comma every 3 digits for integer presentation type ``'d'`` and " "floating-point presentation types, excluding ``'n'``. For other presentation " "types, this option is not supported." msgstr "" -#: ../../library/string.rst:465 msgid "``'_'``" msgstr "" -#: ../../library/string.rst:465 msgid "" "Inserts an underscore every 3 digits for integer presentation type ``'d'`` " "and floating-point presentation types, excluding ``'n'``. For integer " @@ -616,127 +519,97 @@ msgid "" "supported." msgstr "" -#: ../../library/string.rst:475 msgid "" "For a locale aware separator, use the ``'n'`` presentation type instead." msgstr "" -#: ../../library/string.rst:477 msgid "Added the ``','`` option (see also :pep:`378`)." msgstr "" -#: ../../library/string.rst:480 msgid "Added the ``'_'`` option (see also :pep:`515`)." msgstr "" -#: ../../library/string.rst:483 msgid "Support the *grouping* option for the fractional part." msgstr "" -#: ../../library/string.rst:486 msgid "Finally, the *type* determines how the data should be presented." msgstr "" -#: ../../library/string.rst:488 msgid "The available string presentation types are:" msgstr "" -#: ../../library/string.rst:491 ../../library/string.rst:502 -#: ../../library/string.rst:537 msgid "Type" msgstr "" -#: ../../library/string.rst:493 msgid "``'s'``" msgstr "" -#: ../../library/string.rst:493 msgid "String format. This is the default type for strings and may be omitted." msgstr "" -#: ../../library/string.rst:496 ../../library/string.rst:525 -#: ../../library/string.rst:611 msgid "None" msgstr "" -#: ../../library/string.rst:496 msgid "The same as ``'s'``." msgstr "" -#: ../../library/string.rst:499 msgid "The available integer presentation types are:" msgstr "" -#: ../../library/string.rst:504 msgid "``'b'``" -msgstr "``'b'``" +msgstr "" -#: ../../library/string.rst:504 msgid "Binary format. Outputs the number in base 2." msgstr "" -#: ../../library/string.rst:506 msgid "``'c'``" msgstr "" -#: ../../library/string.rst:506 msgid "" "Character. Converts the integer to the corresponding unicode character " "before printing." msgstr "" -#: ../../library/string.rst:509 msgid "``'d'``" -msgstr "``'d'``" +msgstr "" -#: ../../library/string.rst:509 msgid "Decimal Integer. Outputs the number in base 10." msgstr "" -#: ../../library/string.rst:511 msgid "``'o'``" msgstr "" -#: ../../library/string.rst:511 msgid "Octal format. Outputs the number in base 8." msgstr "" -#: ../../library/string.rst:513 msgid "``'x'``" -msgstr "``'x'``" +msgstr "" -#: ../../library/string.rst:513 msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" -#: ../../library/string.rst:516 msgid "``'X'``" msgstr "" -#: ../../library/string.rst:516 msgid "" "Hex format. Outputs the number in base 16, using upper-case letters for the " "digits above 9. In case ``'#'`` is specified, the prefix ``'0x'`` will be " "upper-cased to ``'0X'`` as well." msgstr "" -#: ../../library/string.rst:521 ../../library/string.rst:603 msgid "``'n'``" msgstr "" -#: ../../library/string.rst:521 msgid "" "Number. This is the same as ``'d'``, except that it uses the current locale " "setting to insert the appropriate digit group separators." msgstr "" -#: ../../library/string.rst:525 msgid "The same as ``'d'``." msgstr "" -#: ../../library/string.rst:528 msgid "" "In addition to the above presentation types, integers can be formatted with " "the floating-point presentation types listed below (except ``'n'`` and " @@ -744,43 +617,36 @@ msgid "" "floating-point number before formatting." msgstr "" -#: ../../library/string.rst:533 msgid "" -"The available presentation types for :class:`float` " -"and :class:`~decimal.Decimal` values are:" +"The available presentation types for :class:`float` and :class:`~decimal." +"Decimal` values are:" msgstr "" -#: ../../library/string.rst:539 msgid "``'e'``" msgstr "" -#: ../../library/string.rst:539 msgid "" "Scientific notation. For a given precision ``p``, formats the number in " "scientific notation with the letter 'e' separating the coefficient from the " "exponent. The coefficient has one digit before and ``p`` digits after the " "decimal point, for a total of ``p + 1`` significant digits. With no " "precision given, uses a precision of ``6`` digits after the decimal point " -"for :class:`float`, and shows all coefficient digits " -"for :class:`~decimal.Decimal`. If ``p=0``, the decimal point is omitted " -"unless the ``#`` option is used." +"for :class:`float`, and shows all coefficient digits for :class:`~decimal." +"Decimal`. If ``p=0``, the decimal point is omitted unless the ``#`` option " +"is used." msgstr "" -#: ../../library/string.rst:550 msgid "``'E'``" msgstr "" -#: ../../library/string.rst:550 msgid "" "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the " "separator character." msgstr "" -#: ../../library/string.rst:553 msgid "``'f'``" -msgstr "``'f'``" +msgstr "" -#: ../../library/string.rst:553 msgid "" "Fixed-point notation. For a given precision ``p``, formats the number as a " "decimal number with exactly ``p`` digits following the decimal point. With " @@ -790,21 +656,17 @@ msgid "" "point is omitted unless the ``#`` option is used." msgstr "" -#: ../../library/string.rst:562 msgid "``'F'``" msgstr "" -#: ../../library/string.rst:562 msgid "" "Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " "``inf`` to ``INF``." msgstr "" -#: ../../library/string.rst:565 msgid "``'g'``" msgstr "" -#: ../../library/string.rst:565 msgid "" "General format. For a given precision ``p >= 1``, this rounds the number to " "``p`` significant digits and then formats the result in either fixed-point " @@ -812,7 +674,6 @@ msgid "" "``0`` is treated as equivalent to a precision of ``1``." msgstr "" -#: ../../library/string.rst:572 msgid "" "The precise rules are as follows: suppose that the result formatted with " "presentation type ``'e'`` and precision ``p-1`` would have exponent " @@ -825,51 +686,43 @@ msgid "" "unless the ``'#'`` option is used." msgstr "" -#: ../../library/string.rst:585 msgid "" -"With no precision given, uses a precision of ``6`` significant digits " -"for :class:`float`. For :class:`~decimal.Decimal`, the coefficient of the " -"result is formed from the coefficient digits of the value; scientific " -"notation is used for values smaller than ``1e-6`` in absolute value and " -"values where the place value of the least significant digit is larger than " -"1, and fixed-point notation is used otherwise." +"With no precision given, uses a precision of ``6`` significant digits for :" +"class:`float`. For :class:`~decimal.Decimal`, the coefficient of the result " +"is formed from the coefficient digits of the value; scientific notation is " +"used for values smaller than ``1e-6`` in absolute value and values where the " +"place value of the least significant digit is larger than 1, and fixed-point " +"notation is used otherwise." msgstr "" -#: ../../library/string.rst:594 msgid "" "Positive and negative infinity, positive and negative zero, and nans, are " "formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, " "regardless of the precision." msgstr "" -#: ../../library/string.rst:599 msgid "``'G'``" msgstr "" -#: ../../library/string.rst:599 msgid "" "General format. Same as ``'g'`` except switches to ``'E'`` if the number " "gets too large. The representations of infinity and NaN are uppercased, too." msgstr "" -#: ../../library/string.rst:603 msgid "" "Number. This is the same as ``'g'``, except that it uses the current locale " "setting to insert the appropriate digit group separators for the integral " "part of a number." msgstr "" -#: ../../library/string.rst:608 msgid "``'%'``" msgstr "" -#: ../../library/string.rst:608 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " "format, followed by a percent sign." msgstr "" -#: ../../library/string.rst:611 msgid "" "For :class:`float` this is like the ``'g'`` type, except that when fixed-" "point notation is used to format the result, it always includes at least one " @@ -878,20 +731,17 @@ msgid "" "as large as needed to represent the given value faithfully." msgstr "" -#: ../../library/string.rst:619 msgid "" "For :class:`~decimal.Decimal`, this is the same as either ``'g'`` or ``'G'`` " "depending on the value of ``context.capitals`` for the current decimal " "context." msgstr "" -#: ../../library/string.rst:623 msgid "" "The overall effect is to match the output of :func:`str` as altered by the " "other format modifiers." msgstr "" -#: ../../library/string.rst:627 msgid "" "The result should be correctly rounded to a given precision ``p`` of digits " "after the decimal point. The rounding mode for :class:`float` matches that " @@ -899,7 +749,6 @@ msgid "" "mode of the current :ref:`context ` will be used." msgstr "" -#: ../../library/string.rst:632 msgid "" "The available presentation types for :class:`complex` are the same as those " "for :class:`float` (``'%'`` is not allowed). Both the real and imaginary " @@ -911,34 +760,28 @@ msgid "" "surrounded by parentheses), possibly altered by other format modifiers." msgstr "" -#: ../../library/string.rst:645 msgid "Format examples" msgstr "" -#: ../../library/string.rst:647 msgid "" "This section contains examples of the :meth:`str.format` syntax and " "comparison with the old ``%``-formatting." msgstr "" -#: ../../library/string.rst:650 msgid "" "In most of the cases the syntax is similar to the old ``%``-formatting, with " "the addition of the ``{}`` and with ``:`` used instead of ``%``. For " "example, ``'%03.2f'`` can be translated to ``'{:03.2f}'``." msgstr "" -#: ../../library/string.rst:654 msgid "" "The new format syntax also supports new and different options, shown in the " "following examples." msgstr "" -#: ../../library/string.rst:657 msgid "Accessing arguments by position::" msgstr "" -#: ../../library/string.rst:659 msgid "" ">>> '{0}, {1}, {2}'.format('a', 'b', 'c')\n" "'a, b, c'\n" @@ -953,11 +796,9 @@ msgid "" "'abracadabra'" msgstr "" -#: ../../library/string.rst:670 msgid "Accessing arguments by name::" msgstr "" -#: ../../library/string.rst:672 msgid "" ">>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', " "longitude='-115.81W')\n" @@ -967,11 +808,9 @@ msgid "" "'Coordinates: 37.24N, -115.81W'" msgstr "" -#: ../../library/string.rst:678 msgid "Accessing arguments' attributes::" msgstr "" -#: ../../library/string.rst:680 msgid "" ">>> c = 3-5j\n" ">>> ('The complex number {0} is formed from the real part {0.real} '\n" @@ -988,33 +827,27 @@ msgid "" "'Point(4, 2)'" msgstr "" -#: ../../library/string.rst:693 msgid "Accessing arguments' items::" msgstr "" -#: ../../library/string.rst:695 msgid "" ">>> coord = (3, 5)\n" ">>> 'X: {0[0]}; Y: {0[1]}'.format(coord)\n" "'X: 3; Y: 5'" msgstr "" -#: ../../library/string.rst:699 msgid "Replacing ``%s`` and ``%r``::" msgstr "" -#: ../../library/string.rst:701 msgid "" ">>> \"repr() shows quotes: {!r}; str() doesn't: {!s}\".format('test1', " "'test2')\n" "\"repr() shows quotes: 'test1'; str() doesn't: test2\"" msgstr "" -#: ../../library/string.rst:704 msgid "Aligning the text and specifying a width::" msgstr "" -#: ../../library/string.rst:706 msgid "" ">>> '{:<30}'.format('left aligned')\n" "'left aligned '\n" @@ -1026,27 +859,23 @@ msgid "" "'***********centered***********'" msgstr "" -#: ../../library/string.rst:715 msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" msgstr "" -#: ../../library/string.rst:717 msgid "" ">>> '{:+f}; {:+f}'.format(3.14, -3.14) # show it always\n" "'+3.140000; -3.140000'\n" ">>> '{: f}; {: f}'.format(3.14, -3.14) # show a space for positive numbers\n" "' 3.140000; -3.140000'\n" -">>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as " -"'{:f}; {:f}'\n" +">>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as '{:" +"f}; {:f}'\n" "'3.140000; -3.140000'" msgstr "" -#: ../../library/string.rst:724 msgid "" "Replacing ``%x`` and ``%o`` and converting the value to different bases::" msgstr "" -#: ../../library/string.rst:726 msgid "" ">>> # format also supports binary numbers\n" ">>> \"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}\".format(42)\n" @@ -1056,11 +885,9 @@ msgid "" "'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'" msgstr "" -#: ../../library/string.rst:733 msgid "Using the comma or the underscore as a digit group separator::" msgstr "" -#: ../../library/string.rst:735 msgid "" ">>> '{:,}'.format(1234567890)\n" "'1,234,567,890'\n" @@ -1078,11 +905,9 @@ msgid "" "'123,456,789.123_456_79'" msgstr "" -#: ../../library/string.rst:750 msgid "Expressing a percentage::" msgstr "" -#: ../../library/string.rst:752 msgid "" ">>> points = 19\n" ">>> total = 22\n" @@ -1090,11 +915,9 @@ msgid "" "'Correct answers: 86.36%'" msgstr "" -#: ../../library/string.rst:757 msgid "Using type-specific formatting::" msgstr "" -#: ../../library/string.rst:759 msgid "" ">>> import datetime\n" ">>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)\n" @@ -1102,11 +925,9 @@ msgid "" "'2010-07-04 12:15:58'" msgstr "" -#: ../../library/string.rst:764 msgid "Nesting arguments and more complex examples::" msgstr "" -#: ../../library/string.rst:766 msgid "" ">>> for align, text in zip('<^>', ['left', 'center', 'right']):\n" "... '{0:{fill}{align}16}'.format(text, fill=align, align=align)\n" @@ -1137,42 +958,39 @@ msgid "" " 11 B 13 1011" msgstr "" -#: ../../library/string.rst:798 msgid "Template strings ($-strings)" msgstr "" -#: ../../library/string.rst:802 msgid "" -"The feature described here was introduced in Python 2.4. It is unrelated " -"to, and should not be confused with, the newer :ref:`template strings " -"` and :ref:`t-string literal syntax ` " -"introduced in Python 3.14. T-string literals evaluate to instances of a " -"different :class:`~string.templatelib.Template` class, found in " -"the :mod:`string.templatelib` module." +"The feature described here was introduced in Python 2.4; a simple templating " +"method based upon regular expressions. It predates :meth:`str.format`, :ref:" +"`formatted string literals `, and :ref:`template string literals " +"`." +msgstr "" + +msgid "" +"It is unrelated to template string literals (t-strings), which were " +"introduced in Python 3.14. These evaluate to :class:`string.templatelib." +"Template` objects, found in the :mod:`string.templatelib` module." msgstr "" -#: ../../library/string.rst:810 msgid "" -"Template strings provide simpler string substitutions as described " -"in :pep:`292`. A primary use case for template strings is for " -"internationalization (i18n) since in that context, the simpler syntax and " -"functionality makes it easier to translate than other built-in string " -"formatting facilities in Python. As an example of a library built on " -"template strings for i18n, see the `flufl.i18n `_ package." +"Template strings provide simpler string substitutions as described in :pep:" +"`292`. A primary use case for template strings is for internationalization " +"(i18n) since in that context, the simpler syntax and functionality makes it " +"easier to translate than other built-in string formatting facilities in " +"Python. As an example of a library built on template strings for i18n, see " +"the `flufl.i18n `_ package." msgstr "" -#: ../../library/string.rst:820 msgid "" "Template strings support ``$``-based substitutions, using the following " "rules:" msgstr "" -#: ../../library/string.rst:822 msgid "``$$`` is an escape; it is replaced with a single ``$``." msgstr "" -#: ../../library/string.rst:824 msgid "" "``$identifier`` names a substitution placeholder matching a mapping key of " "``\"identifier\"``. By default, ``\"identifier\"`` is restricted to any " @@ -1182,30 +1000,25 @@ msgid "" "specification." msgstr "" -#: ../../library/string.rst:831 msgid "" "``${identifier}`` is equivalent to ``$identifier``. It is required when " "valid identifier characters follow the placeholder but are not part of the " "placeholder, such as ``\"${noun}ification\"``." msgstr "" -#: ../../library/string.rst:835 msgid "" -"Any other appearance of ``$`` in the string will result in " -"a :exc:`ValueError` being raised." +"Any other appearance of ``$`` in the string will result in a :exc:" +"`ValueError` being raised." msgstr "" -#: ../../library/string.rst:838 msgid "" "The :mod:`string` module provides a :class:`Template` class that implements " "these rules. The methods of :class:`Template` are:" msgstr "" -#: ../../library/string.rst:844 msgid "The constructor takes a single argument which is the template string." msgstr "" -#: ../../library/string.rst:849 msgid "" "Performs the template substitution, returning a new string. *mapping* is " "any dictionary-like object with keys that match the placeholders in the " @@ -1214,7 +1027,6 @@ msgid "" "there are duplicates, the placeholders from *kwds* take precedence." msgstr "" -#: ../../library/string.rst:858 msgid "" "Like :meth:`substitute`, except that if placeholders are missing from " "*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " @@ -1223,7 +1035,6 @@ msgid "" "simply return ``$`` instead of raising :exc:`ValueError`." msgstr "" -#: ../../library/string.rst:864 msgid "" "While other exceptions may still occur, this method is called \"safe\" " "because it always tries to return a usable string instead of raising an " @@ -1233,33 +1044,27 @@ msgid "" "Python identifiers." msgstr "" -#: ../../library/string.rst:874 msgid "" -"Returns ``False`` if the template has invalid placeholders that will " -"cause :meth:`substitute` to raise :exc:`ValueError`." +"Returns ``False`` if the template has invalid placeholders that will cause :" +"meth:`substitute` to raise :exc:`ValueError`." msgstr "" -#: ../../library/string.rst:882 msgid "" "Returns a list of the valid identifiers in the template, in the order they " "first appear, ignoring any invalid identifiers." msgstr "" -#: ../../library/string.rst:887 msgid ":class:`Template` instances also provide one public data attribute:" msgstr "" -#: ../../library/string.rst:891 msgid "" "This is the object passed to the constructor's *template* argument. In " "general, you shouldn't change it, but read-only access is not enforced." msgstr "" -#: ../../library/string.rst:894 msgid "Here is an example of how to use a Template::" msgstr "" -#: ../../library/string.rst:896 msgid "" ">>> from string import Template\n" ">>> s = Template('$who likes $what')\n" @@ -1278,7 +1083,6 @@ msgid "" "'tim likes $what'" msgstr "" -#: ../../library/string.rst:912 msgid "" "Advanced usage: you can derive subclasses of :class:`Template` to customize " "the placeholder syntax, delimiter character, or the entire regular " @@ -1286,17 +1090,15 @@ msgid "" "these class attributes:" msgstr "" -#: ../../library/string.rst:917 msgid "" "*delimiter* -- This is the literal string describing a placeholder " "introducing delimiter. The default value is ``$``. Note that this should " -"*not* be a regular expression, as the implementation will " -"call :meth:`re.escape` on this string as needed. Note further that you " -"cannot change the delimiter after class creation (i.e. a different delimiter " -"must be set in the subclass's class namespace)." +"*not* be a regular expression, as the implementation will call :meth:`re." +"escape` on this string as needed. Note further that you cannot change the " +"delimiter after class creation (i.e. a different delimiter must be set in " +"the subclass's class namespace)." msgstr "" -#: ../../library/string.rst:924 msgid "" "*idpattern* -- This is the regular expression describing the pattern for non-" "braced placeholders. The default value is the regular expression ``(?a:[_a-" @@ -1304,19 +1106,16 @@ msgid "" "pattern will also apply to braced placeholders." msgstr "" -#: ../../library/string.rst:931 msgid "" "Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with " "some non-ASCII characters. That's why we use the local ``a`` flag here." msgstr "" -#: ../../library/string.rst:935 msgid "" "*braceidpattern* can be used to define separate patterns used inside and " "outside the braces." msgstr "" -#: ../../library/string.rst:939 msgid "" "*braceidpattern* -- This is like *idpattern* but describes the pattern for " "braced placeholders. Defaults to ``None`` which means to fall back to " @@ -1325,7 +1124,6 @@ msgid "" "unbraced placeholders." msgstr "" -#: ../../library/string.rst:947 msgid "" "*flags* -- The regular expression flags that will be applied when compiling " "the regular expression used for recognizing substitutions. The default " @@ -1334,7 +1132,6 @@ msgid "" "regular expressions." msgstr "" -#: ../../library/string.rst:955 msgid "" "Alternatively, you can provide the entire regular expression pattern by " "overriding the class attribute *pattern*. If you do this, the value must be " @@ -1343,120 +1140,93 @@ msgid "" "placeholder rule:" msgstr "" -#: ../../library/string.rst:961 msgid "" "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " "default pattern." msgstr "" -#: ../../library/string.rst:964 msgid "" "*named* -- This group matches the unbraced placeholder name; it should not " "include the delimiter in capturing group." msgstr "" -#: ../../library/string.rst:967 msgid "" "*braced* -- This group matches the brace enclosed placeholder name; it " "should not include either the delimiter or braces in the capturing group." msgstr "" -#: ../../library/string.rst:970 msgid "" "*invalid* -- This group matches any other delimiter pattern (usually a " "single delimiter), and it should appear last in the regular expression." msgstr "" -#: ../../library/string.rst:973 msgid "" "The methods on this class will raise :exc:`ValueError` if the pattern " "matches the template without one of these named groups matching." msgstr "" -#: ../../library/string.rst:978 msgid "Helper functions" msgstr "" -#: ../../library/string.rst:982 msgid "" "Split the argument into words using :meth:`str.split`, capitalize each word " -"using :meth:`str.capitalize`, and join the capitalized words " -"using :meth:`str.join`. If the optional second argument *sep* is absent or " -"``None``, runs of whitespace characters are replaced by a single space and " -"leading and trailing whitespace are removed, otherwise *sep* is used to " -"split and join the words." +"using :meth:`str.capitalize`, and join the capitalized words using :meth:" +"`str.join`. If the optional second argument *sep* is absent or ``None``, " +"runs of whitespace characters are replaced by a single space and leading and " +"trailing whitespace are removed, otherwise *sep* is used to split and join " +"the words." msgstr "" -#: ../../library/string.rst:205 msgid "{} (curly brackets)" msgstr "" -#: ../../library/string.rst:205 ../../library/string.rst:352 -#: ../../library/string.rst:385 ../../library/string.rst:404 -#: ../../library/string.rst:413 ../../library/string.rst:452 msgid "in string formatting" msgstr "" -#: ../../library/string.rst:205 msgid ". (dot)" msgstr "" -#: ../../library/string.rst:205 msgid "[] (square brackets)" msgstr "" -#: ../../library/string.rst:205 msgid "! (exclamation)" msgstr "" -#: ../../library/string.rst:205 msgid ": (colon)" msgstr "" -#: ../../library/string.rst:352 msgid "< (less)" msgstr "" -#: ../../library/string.rst:352 msgid "> (greater)" msgstr "" -#: ../../library/string.rst:352 msgid "= (equals)" msgstr "" -#: ../../library/string.rst:352 msgid "^ (caret)" msgstr "" -#: ../../library/string.rst:385 msgid "+ (plus)" msgstr "" -#: ../../library/string.rst:385 msgid "- (minus)" msgstr "" -#: ../../library/string.rst:404 msgid "z" msgstr "" -#: ../../library/string.rst:413 msgid "# (hash)" msgstr "" -#: ../../library/string.rst:452 msgid ", (comma)" msgstr "" -#: ../../library/string.rst:452 msgid "_ (underscore)" msgstr "" -#: ../../library/string.rst:818 msgid "$ (dollar)" msgstr "" -#: ../../library/string.rst:818 msgid "in template strings" msgstr "" diff --git a/library/string.templatelib.po b/library/string.templatelib.po index d7551af..1efa486 100644 --- a/library/string.templatelib.po +++ b/library/string.templatelib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-25 14:23+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,312 +18,245 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/string.templatelib.rst:2 msgid ":mod:`!string.templatelib` --- Support for template string literals" msgstr "" -#: ../../library/string.templatelib.rst:7 msgid "**Source code:** :source:`Lib/string/templatelib.py`" msgstr "" -#: ../../library/string.templatelib.rst:13 msgid ":ref:`Format strings `" msgstr "" -#: ../../library/string.templatelib.rst:14 -msgid ":ref:`T-string literal syntax `" +msgid ":ref:`Template string literal (t-string) syntax `" msgstr "" -#: ../../library/string.templatelib.rst:20 -msgid "Template strings" -msgstr "" - -#: ../../library/string.templatelib.rst:24 -msgid "" -"Template strings are a formatting mechanism that allows for deep control " -"over how strings are processed. You can create templates using :ref:`t-" -"string literal syntax `, which is identical to :ref:`f-string " -"syntax ` but uses a ``t`` instead of an ``f``. While f-strings " -"evaluate to ``str``, t-strings create a :class:`Template` instance that " -"gives you access to the static and interpolated (in curly braces) parts of a " -"string *before* they are combined." +msgid ":pep:`750`" msgstr "" -#: ../../library/string.templatelib.rst:36 -msgid "Template" +msgid "Template strings" msgstr "" -#: ../../library/string.templatelib.rst:38 msgid "" -"The :class:`!Template` class describes the contents of a template string." +"Template strings are a mechanism for custom string processing. They have the " +"full flexibility of Python's :ref:`f-strings`, but return a :class:" +"`Template` instance that gives access to the static and interpolated (in " +"curly braces) parts of a string *before* they are combined." msgstr "" -#: ../../library/string.templatelib.rst:40 msgid "" -":class:`!Template` instances are immutable: their attributes cannot be " -"reassigned." +"To write a t-string, use a ``'t'`` prefix instead of an ``'f'``, like so:" msgstr "" -#: ../../library/string.templatelib.rst:45 -msgid "Create a new :class:`!Template` object." +msgid "" +">>> pi = 3.14\n" +">>> t't-strings are new in Python {pi!s}!'\n" +"Template(\n" +" strings=('t-strings are new in Python ', '!'),\n" +" interpolations=(Interpolation(3.14, 'pi', 's', ''),)\n" +")" msgstr "" -#: ../../library/string.templatelib.rst:0 -msgid "Parameters" +msgid "Types" msgstr "" -#: ../../library/string.templatelib.rst:47 -msgid "A mix of strings and :class:`Interpolation` instances in any order." +msgid "" +"The :class:`!Template` class describes the contents of a template string. It " +"is immutable, meaning that attributes of a template cannot be reassigned." msgstr "" -#: ../../library/string.templatelib.rst:50 msgid "" -"The most common way to create a :class:`!Template` instance is to use " -"the :ref:`t-string literal syntax `. This syntax is identical to " -"that of :ref:`f-strings ` except that it uses a ``t`` instead of " -"an ``f``:" +"The most common way to create a :class:`!Template` instance is to use the :" +"ref:`template string literal syntax `. This syntax is identical " +"to that of :ref:`f-strings `, except that it uses a ``t`` prefix " +"in place of an ``f``:" msgstr "" -#: ../../library/string.templatelib.rst:59 msgid "" -"Templates ars stored as sequences of literal :attr:`~Template.strings` and " +"Templates are stored as sequences of literal :attr:`~Template.strings` and " "dynamic :attr:`~Template.interpolations`. A :attr:`~Template.values` " -"attribute holds the interpolation values:" +"attribute holds the values of the interpolations:" msgstr "" -#: ../../library/string.templatelib.rst:70 msgid "" "The :attr:`!strings` tuple has one more element than :attr:`!interpolations` " "and :attr:`!values`; the interpolations “belong” between the strings. This " -"may be easier to understand when tuples are aligned::" -msgstr "" - -#: ../../library/string.templatelib.rst:74 -msgid "" -"template.strings: ('Hello ', '!')\n" -"template.values: ( 'World', )" -msgstr "" - -#: ../../library/string.templatelib.rst:77 -msgid "" -"While literal syntax is the most common way to create :class:`!Template` " -"instances, it is also possible to create them directly using the constructor:" +"may be easier to understand when tuples are aligned" msgstr "" -#: ../../library/string.templatelib.rst:86 msgid "" -"If two or more consecutive strings are passed, they will be concatenated " -"into a single value in the :attr:`~Template.strings` attribute. For example, " -"the following code creates a :class:`Template` with a single final string:" +"template.strings: ('Ah! We do have ', '.')\n" +"template.values: ( 'Camembert', )" msgstr "" -#: ../../library/string.templatelib.rst:95 -msgid "" -"If two or more consecutive interpolations are passed, they will be treated " -"as separate interpolations and an empty string will be inserted between " -"them. For example, the following code creates a template with empty " -"placeholders in the :attr:`~Template.strings` attribute:" +msgid "Attributes" msgstr "" -#: ../../library/string.templatelib.rst:108 -msgid "A :ref:`tuple ` of the static strings in the template." +msgid "A :class:`tuple` of the static strings in the template." msgstr "" -#: ../../library/string.templatelib.rst:114 msgid "Empty strings *are* included in the tuple:" msgstr "" -#: ../../library/string.templatelib.rst:120 msgid "" "The ``strings`` tuple is never empty, and always contains one more string " "than the ``interpolations`` and ``values`` tuples:" msgstr "" -#: ../../library/string.templatelib.rst:135 -msgid "A tuple of the interpolations in the template." +msgid "A :class:`tuple` of the interpolations in the template." msgstr "" -#: ../../library/string.templatelib.rst:141 msgid "" "The ``interpolations`` tuple may be empty and always contains one fewer " "values than the ``strings`` tuple:" msgstr "" -#: ../../library/string.templatelib.rst:150 msgid "A tuple of all interpolated values in the template." msgstr "" -#: ../../library/string.templatelib.rst:156 msgid "" "The ``values`` tuple always has the same length as the ``interpolations`` " -"tuple. It is equivalent to ``tuple(i.value for i in " -"template.interpolations)``." +"tuple. It is always equivalent to ``tuple(i.value for i in template." +"interpolations)``." msgstr "" -#: ../../library/string.templatelib.rst:162 -msgid "" -"Iterate over the template, yielding each string and :class:`Interpolation` " -"in order." +msgid "Methods" msgstr "" -#: ../../library/string.templatelib.rst:169 -msgid "Empty strings are *not* included in the iteration:" -msgstr "" - -#: ../../library/string.templatelib.rst:178 msgid "" -"Concatenate this template with another, returning a new :class:`!Template` " -"instance:" +"While literal syntax is the most common way to create a :class:`!Template`, " +"it is also possible to create them directly using the constructor:" msgstr "" -#: ../../library/string.templatelib.rst:185 msgid "" -"Concatenation between a :class:`!Template` and a ``str`` is *not* supported. " -"This is because it is ambiguous whether the string should be treated as a " -"static string or an interpolation. If you want to concatenate a :class:`!" -"Template` with a string, you should either wrap the string directly in " -"a :class:`!Template` (to treat it as a static string) or use an :class:`!" -"Interpolation` (to treat it as dynamic):" +"If multiple strings are passed consecutively, they will be concatenated into " +"a single value in the :attr:`~Template.strings` attribute. For example, the " +"following code creates a :class:`Template` with a single final string:" msgstr "" -#: ../../library/string.templatelib.rst:205 -msgid "Create a new :class:`!Interpolation` object." +msgid "" +"If multiple interpolations are passed consecutively, they will be treated as " +"separate interpolations and an empty string will be inserted between them. " +"For example, the following code creates a template with empty placeholders " +"in the :attr:`~Template.strings` attribute:" msgstr "" -#: ../../library/string.templatelib.rst:207 -msgid "The evaluated, in-scope result of the interpolation." +msgid "" +"Iterate over the template, yielding each non-empty string and :class:" +"`Interpolation` in the correct order:" msgstr "" -#: ../../library/string.templatelib.rst:210 -#: ../../library/string.templatelib.rst:234 -msgid "The text of a valid Python expression, or an empty string." +msgid "Empty strings are **not** included in the iteration:" msgstr "" -#: ../../library/string.templatelib.rst:213 msgid "" -"The optional :ref:`conversion ` to be used, one of r, s, and " -"a." +"Concatenate this template with another, returning a new :class:`!Template` " +"instance:" msgstr "" -#: ../../library/string.templatelib.rst:216 msgid "" -"An optional, arbitrary string used as the :ref:`format specification " -"` to present the value." +"Concatenating a :class:`!Template` and a ``str`` is **not** supported. This " +"is because it is unclear whether the string should be treated as a static " +"string or an interpolation. If you want to concatenate a :class:`!Template` " +"with a string, you should either wrap the string directly in a :class:`!" +"Template` (to treat it as a static string) or use an :class:`!Interpolation` " +"(to treat it as dynamic):" msgstr "" -#: ../../library/string.templatelib.rst:219 msgid "" "The :class:`!Interpolation` type represents an expression inside a template " -"string." +"string. It is immutable, meaning that attributes of an interpolation cannot " +"be reassigned." msgstr "" -#: ../../library/string.templatelib.rst:221 msgid "" -":class:`!Interpolation` instances are immutable: their attributes cannot be " -"reassigned." -msgstr "" - -#: ../../library/string.templatelib.rst:0 -msgid "Returns" +"Interpolations support pattern matching, allowing you to match against their " +"attributes with the :ref:`match statement `:" msgstr "" -#: ../../library/string.templatelib.rst:226 msgid "The evaluated value of the interpolation." msgstr "" -#: ../../library/string.templatelib.rst:0 -msgid "type" -msgstr "" - -#: ../../library/string.templatelib.rst:235 -#: ../../library/string.templatelib.rst:267 -msgid "str" +msgid "The text of a valid Python expression, or an empty string." msgstr "" -#: ../../library/string.templatelib.rst:237 msgid "" -"The :attr:`~Interpolation.expression` is the original text of the " -"interpolation's Python expression, if the interpolation was created from a t-" -"string literal. Developers creating interpolations manually should either " -"set this to an empty string or choose a suitable valid Python expression." +"The :attr:`.expression` is the original text of the interpolation's Python " +"expression, if the interpolation was created from a t-string literal. " +"Developers creating interpolations manually should either set this to an " +"empty string or choose a suitable valid Python expression." msgstr "" -#: ../../library/string.templatelib.rst:248 msgid "The conversion to apply to the value, or ``None``." msgstr "" -#: ../../library/string.templatelib.rst:249 -msgid "``Literal[\"a\", \"r\", \"s\"] | None``" -msgstr "" - -#: ../../library/string.templatelib.rst:251 msgid "" -"The :attr:`!Interpolation.conversion` is the optional conversion to apply to " -"the value:" +"The :attr:`!conversion` is the optional conversion to apply to the value:" msgstr "" -#: ../../library/string.templatelib.rst:259 msgid "" "Unlike f-strings, where conversions are applied automatically, the expected " "behavior with t-strings is that code that *processes* the :class:`!Template` " -"will decide how to interpret and whether to apply the :attr:`!" -"Interpolation.conversion`." +"will decide how to interpret and whether to apply the :attr:`!conversion`. " +"For convenience, the :func:`convert` function can be used to mimic f-string " +"conversion semantics." msgstr "" -#: ../../library/string.templatelib.rst:266 msgid "The format specification to apply to the value." msgstr "" -#: ../../library/string.templatelib.rst:269 msgid "" -"The :attr:`!Interpolation.format_spec` is an optional, arbitrary string used " -"as the format specification to present the value:" +"The :attr:`!format_spec` is an optional, arbitrary string used as the format " +"specification to present the value:" msgstr "" -#: ../../library/string.templatelib.rst:277 msgid "" "Unlike f-strings, where format specifications are applied automatically via " "the :func:`format` protocol, the expected behavior with t-strings is that " -"code that *processes* the :class:`!Template` will decide how to interpret " -"and whether to apply the format specification. As a result, :attr:`!" -"Interpolation.format_spec` values in :class:`!Template` instances can be " -"arbitrary strings, even those that do not necessarily conform to the rules " -"of Python's :func:`format` protocol." +"code that *processes* the interpolation will decide how to interpret and " +"whether to apply the format specification. As a result, :attr:`!format_spec` " +"values in interpolations can be arbitrary strings, including those that do " +"not conform to the :func:`format` protocol." +msgstr "" + +msgid "Create a new :class:`!Interpolation` object from component parts." +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "The evaluated, in-scope result of the interpolation." msgstr "" -#: ../../library/string.templatelib.rst:286 msgid "" -"Interpolations support pattern matching, allowing you to match against their " -"attributes with the :ref:`match statement `:" +"The :ref:`conversion ` to be used, one of ``None``, ``'a'``, " +"``'r'``, or ``'s'``." +msgstr "" + +msgid "" +"An optional, arbitrary string used as the :ref:`format specification " +"` to present the value." msgstr "" -#: ../../library/string.templatelib.rst:299 msgid "Helper functions" msgstr "" -#: ../../library/string.templatelib.rst:303 msgid "" "Applies formatted string literal :ref:`conversion ` semantics to the given object *obj*. This is frequently useful " "for custom template string processing logic." msgstr "" -#: ../../library/string.templatelib.rst:307 msgid "Three conversion flags are currently supported:" msgstr "" -#: ../../library/string.templatelib.rst:309 -msgid "``'s'`` which calls :func:`str` on the value," +msgid "``'s'`` which calls :func:`str` on the value (like ``!s``)," msgstr "" -#: ../../library/string.templatelib.rst:310 -msgid "``'r'`` which calls :func:`repr`, and" +msgid "``'r'`` which calls :func:`repr` (like ``!r``), and" msgstr "" -#: ../../library/string.templatelib.rst:311 -msgid "``'a'`` which calls :func:`ascii`." +msgid "``'a'`` which calls :func:`ascii` (like ``!a``)." msgstr "" -#: ../../library/string.templatelib.rst:313 msgid "If the conversion flag is ``None``, *obj* is returned unchanged." msgstr "" diff --git a/library/stringprep.po b/library/stringprep.po index e5268c2..ba7b808 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/stringprep.rst:2 msgid ":mod:`!stringprep` --- Internet String Preparation" msgstr "" -#: ../../library/stringprep.rst:10 msgid "**Source code:** :source:`Lib/stringprep.py`" msgstr "" -#: ../../library/stringprep.rst:14 msgid "" "When identifying things (such as host names) in the internet, it is often " "necessary to compare such identifications for \"equality\". Exactly how this " @@ -36,7 +33,6 @@ msgid "" "\"printable\" characters." msgstr "" -#: ../../library/stringprep.rst:21 msgid "" ":rfc:`3454` defines a procedure for \"preparing\" Unicode strings in " "internet protocols. Before passing strings onto the wire, they are processed " @@ -48,7 +44,6 @@ msgid "" "domain names." msgstr "" -#: ../../library/stringprep.rst:29 msgid "" "The module :mod:`stringprep` only exposes the tables from :rfc:`3454`. As " "these tables would be very large to represent as dictionaries or lists, the " @@ -56,108 +51,88 @@ msgid "" "code itself was generated using the ``mkstringprep.py`` utility." msgstr "" -#: ../../library/stringprep.rst:34 msgid "" "As a result, these tables are exposed as functions, not as data structures. " -"There are two kinds of tables in the RFC: sets and mappings. For a " -"set, :mod:`stringprep` provides the \"characteristic function\", i.e. a " -"function that returns ``True`` if the parameter is part of the set. For " -"mappings, it provides the mapping function: given the key, it returns the " -"associated value. Below is a list of all functions available in the module." +"There are two kinds of tables in the RFC: sets and mappings. For a set, :mod:" +"`stringprep` provides the \"characteristic function\", i.e. a function that " +"returns ``True`` if the parameter is part of the set. For mappings, it " +"provides the mapping function: given the key, it returns the associated " +"value. Below is a list of all functions available in the module." msgstr "" -#: ../../library/stringprep.rst:44 msgid "" "Determine whether *code* is in tableA.1 (Unassigned code points in Unicode " "3.2)." msgstr "" -#: ../../library/stringprep.rst:49 msgid "Determine whether *code* is in tableB.1 (Commonly mapped to nothing)." msgstr "" -#: ../../library/stringprep.rst:54 msgid "" "Return the mapped value for *code* according to tableB.2 (Mapping for case-" "folding used with NFKC)." msgstr "" -#: ../../library/stringprep.rst:60 msgid "" "Return the mapped value for *code* according to tableB.3 (Mapping for case-" "folding used with no normalization)." msgstr "" -#: ../../library/stringprep.rst:66 msgid "Determine whether *code* is in tableC.1.1 (ASCII space characters)." msgstr "" -#: ../../library/stringprep.rst:71 msgid "" "Determine whether *code* is in tableC.1.2 (Non-ASCII space characters)." msgstr "" -#: ../../library/stringprep.rst:76 msgid "" "Determine whether *code* is in tableC.1 (Space characters, union of C.1.1 " "and C.1.2)." msgstr "" -#: ../../library/stringprep.rst:82 msgid "Determine whether *code* is in tableC.2.1 (ASCII control characters)." msgstr "" -#: ../../library/stringprep.rst:87 msgid "" "Determine whether *code* is in tableC.2.2 (Non-ASCII control characters)." msgstr "" -#: ../../library/stringprep.rst:92 msgid "" "Determine whether *code* is in tableC.2 (Control characters, union of C.2.1 " "and C.2.2)." msgstr "" -#: ../../library/stringprep.rst:98 msgid "Determine whether *code* is in tableC.3 (Private use)." msgstr "" -#: ../../library/stringprep.rst:103 msgid "Determine whether *code* is in tableC.4 (Non-character code points)." msgstr "" -#: ../../library/stringprep.rst:108 msgid "Determine whether *code* is in tableC.5 (Surrogate codes)." msgstr "" -#: ../../library/stringprep.rst:113 msgid "" "Determine whether *code* is in tableC.6 (Inappropriate for plain text)." msgstr "" -#: ../../library/stringprep.rst:118 msgid "" "Determine whether *code* is in tableC.7 (Inappropriate for canonical " "representation)." msgstr "" -#: ../../library/stringprep.rst:124 msgid "" "Determine whether *code* is in tableC.8 (Change display properties or are " "deprecated)." msgstr "" -#: ../../library/stringprep.rst:130 msgid "Determine whether *code* is in tableC.9 (Tagging characters)." msgstr "" -#: ../../library/stringprep.rst:135 msgid "" "Determine whether *code* is in tableD.1 (Characters with bidirectional " "property \"R\" or \"AL\")." msgstr "" -#: ../../library/stringprep.rst:141 msgid "" "Determine whether *code* is in tableD.2 (Characters with bidirectional " "property \"L\")." diff --git a/library/struct.po b/library/struct.po index d6d9b94..267effd 100644 --- a/library/struct.po +++ b/library/struct.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/struct.rst:2 msgid ":mod:`!struct` --- Interpret bytes as packed binary data" msgstr "" -#: ../../library/struct.rst:11 msgid "**Source code:** :source:`Lib/struct.py`" msgstr "" -#: ../../library/struct.rst:19 msgid "" "This module converts between Python values and C structs represented as " "Python :class:`bytes` objects. Compact :ref:`format strings `, which " @@ -143,11 +125,9 @@ msgid "" "characters which describe the actual data values and padding." msgstr "" -#: ../../library/struct.rst:125 msgid "Byte Order, Size, and Alignment" msgstr "" -#: ../../library/struct.rst:127 msgid "" "By default, C types are represented in the machine's native format and byte " "order, and properly aligned by skipping pad bytes if necessary (according to " @@ -157,163 +137,128 @@ msgid "" "standard formats depends on the application." msgstr "" -#: ../../library/struct.rst:143 msgid "" "Alternatively, the first character of the format string can be used to " "indicate the byte order, size and alignment of the packed data, according to " "the following table:" msgstr "" -#: ../../library/struct.rst:148 msgid "Character" msgstr "" -#: ../../library/struct.rst:148 msgid "Byte order" msgstr "" -#: ../../library/struct.rst:148 msgid "Size" msgstr "" -#: ../../library/struct.rst:148 msgid "Alignment" msgstr "" -#: ../../library/struct.rst:150 msgid "``@``" msgstr "" -#: ../../library/struct.rst:150 ../../library/struct.rst:152 msgid "native" msgstr "" -#: ../../library/struct.rst:152 msgid "``=``" msgstr "" -#: ../../library/struct.rst:152 ../../library/struct.rst:154 -#: ../../library/struct.rst:156 ../../library/struct.rst:158 msgid "standard" msgstr "" -#: ../../library/struct.rst:152 ../../library/struct.rst:154 -#: ../../library/struct.rst:156 ../../library/struct.rst:158 msgid "none" msgstr "" -#: ../../library/struct.rst:154 msgid "``<``" -msgstr "``<``" +msgstr "" -#: ../../library/struct.rst:154 msgid "little-endian" msgstr "" -#: ../../library/struct.rst:156 msgid "``>``" -msgstr "``>``" +msgstr "" -#: ../../library/struct.rst:156 msgid "big-endian" msgstr "" -#: ../../library/struct.rst:158 msgid "``!``" msgstr "" -#: ../../library/struct.rst:158 msgid "network (= big-endian)" msgstr "" -#: ../../library/struct.rst:161 msgid "If the first character is not one of these, ``'@'`` is assumed." msgstr "" -#: ../../library/struct.rst:165 msgid "" "The number 1023 (``0x3ff`` in hexadecimal) has the following byte " "representations:" msgstr "" -#: ../../library/struct.rst:167 msgid "``03 ff`` in big-endian (``>``)" msgstr "" -#: ../../library/struct.rst:168 msgid "``ff 03`` in little-endian (``<``)" msgstr "" -#: ../../library/struct.rst:170 msgid "Python example:" msgstr "" -#: ../../library/struct.rst:178 msgid "" "Native byte order is big-endian or little-endian, depending on the host " "system. For example, Intel x86, AMD64 (x86-64), and Apple M1 are little-" -"endian; IBM z and many legacy architectures are big-endian. " -"Use :data:`sys.byteorder` to check the endianness of your system." +"endian; IBM z and many legacy architectures are big-endian. Use :data:`sys." +"byteorder` to check the endianness of your system." msgstr "" -#: ../../library/struct.rst:183 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." msgstr "" -#: ../../library/struct.rst:186 msgid "" -"Standard size depends only on the format character; see the table in " -"the :ref:`format-characters` section." +"Standard size depends only on the format character; see the table in the :" +"ref:`format-characters` section." msgstr "" -#: ../../library/struct.rst:189 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." msgstr "" -#: ../../library/struct.rst:192 msgid "" "The form ``'!'`` represents the network byte order which is always big-" "endian as defined in `IETF RFC 1700 `_." msgstr "" -#: ../../library/struct.rst:195 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." msgstr "" -#: ../../library/struct.rst:198 ../../library/struct.rst:284 msgid "Notes:" msgstr "" -#: ../../library/struct.rst:200 msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." msgstr "" -#: ../../library/struct.rst:203 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." msgstr "" -#: ../../library/struct.rst:206 msgid "" "To align the end of a structure to the alignment requirement of a particular " "type, end the format with the code for that type with a repeat count of " "zero. See :ref:`struct-examples`." msgstr "" -#: ../../library/struct.rst:214 msgid "Format Characters" msgstr "" -#: ../../library/struct.rst:216 msgid "" "Format characters have the following meaning; the conversion between C and " "Python values should be obvious given their types. The 'Standard size' " @@ -323,341 +268,245 @@ msgid "" "platform-dependent." msgstr "" -#: ../../library/struct.rst:224 msgid "Format" msgstr "" -#: ../../library/struct.rst:224 msgid "C Type" msgstr "" -#: ../../library/struct.rst:224 msgid "Python type" msgstr "" -#: ../../library/struct.rst:224 msgid "Standard size" msgstr "" -#: ../../library/struct.rst:224 msgid "Notes" msgstr "" -#: ../../library/struct.rst:226 msgid "``x``" -msgstr "``x``" +msgstr "" -#: ../../library/struct.rst:226 msgid "pad byte" msgstr "" -#: ../../library/struct.rst:226 msgid "no value" msgstr "" -#: ../../library/struct.rst:226 msgid "\\(7)" msgstr "" -#: ../../library/struct.rst:228 msgid "``c``" -msgstr "``c``" +msgstr "" -#: ../../library/struct.rst:228 msgid ":c:expr:`char`" msgstr "" -#: ../../library/struct.rst:228 msgid "bytes of length 1" msgstr "" -#: ../../library/struct.rst:228 ../../library/struct.rst:230 -#: ../../library/struct.rst:232 ../../library/struct.rst:234 msgid "1" msgstr "1" -#: ../../library/struct.rst:230 msgid "``b``" msgstr "" -#: ../../library/struct.rst:230 msgid ":c:expr:`signed char`" msgstr "" -#: ../../library/struct.rst:230 ../../library/struct.rst:232 -#: ../../library/struct.rst:236 ../../library/struct.rst:238 -#: ../../library/struct.rst:240 ../../library/struct.rst:242 -#: ../../library/struct.rst:244 ../../library/struct.rst:246 -#: ../../library/struct.rst:248 ../../library/struct.rst:250 -#: ../../library/struct.rst:253 ../../library/struct.rst:255 -#: ../../library/struct.rst:271 msgid "integer" msgstr "" -#: ../../library/struct.rst:230 msgid "\\(1), \\(2)" msgstr "" -#: ../../library/struct.rst:232 msgid "``B``" msgstr "" -#: ../../library/struct.rst:232 msgid ":c:expr:`unsigned char`" msgstr "" -#: ../../library/struct.rst:232 ../../library/struct.rst:236 -#: ../../library/struct.rst:238 ../../library/struct.rst:240 -#: ../../library/struct.rst:242 ../../library/struct.rst:244 -#: ../../library/struct.rst:246 ../../library/struct.rst:248 -#: ../../library/struct.rst:250 msgid "\\(2)" msgstr "" -#: ../../library/struct.rst:234 msgid "``?``" -msgstr "``?``" +msgstr "" -#: ../../library/struct.rst:234 msgid ":c:expr:`_Bool`" msgstr "" -#: ../../library/struct.rst:234 msgid "bool" msgstr "" -#: ../../library/struct.rst:234 msgid "\\(1)" msgstr "" -#: ../../library/struct.rst:236 msgid "``h``" msgstr "" -#: ../../library/struct.rst:236 msgid ":c:expr:`short`" msgstr "" -#: ../../library/struct.rst:236 ../../library/struct.rst:238 -#: ../../library/struct.rst:257 msgid "2" msgstr "2" -#: ../../library/struct.rst:238 msgid "``H``" msgstr "" -#: ../../library/struct.rst:238 msgid ":c:expr:`unsigned short`" msgstr "" -#: ../../library/struct.rst:240 msgid "``i``" msgstr "" -#: ../../library/struct.rst:240 msgid ":c:expr:`int`" msgstr "" -#: ../../library/struct.rst:240 ../../library/struct.rst:242 -#: ../../library/struct.rst:244 ../../library/struct.rst:246 -#: ../../library/struct.rst:259 msgid "4" msgstr "4" -#: ../../library/struct.rst:242 msgid "``I``" msgstr "" -#: ../../library/struct.rst:242 msgid ":c:expr:`unsigned int`" msgstr "" -#: ../../library/struct.rst:244 msgid "``l``" -msgstr "``l``" +msgstr "" -#: ../../library/struct.rst:244 msgid ":c:expr:`long`" msgstr "" -#: ../../library/struct.rst:246 msgid "``L``" msgstr "" -#: ../../library/struct.rst:246 msgid ":c:expr:`unsigned long`" msgstr "" -#: ../../library/struct.rst:248 msgid "``q``" msgstr "" -#: ../../library/struct.rst:248 msgid ":c:expr:`long long`" msgstr "" -#: ../../library/struct.rst:248 ../../library/struct.rst:250 -#: ../../library/struct.rst:261 ../../library/struct.rst:263 msgid "8" msgstr "" -#: ../../library/struct.rst:250 msgid "``Q``" msgstr "" -#: ../../library/struct.rst:250 msgid ":c:expr:`unsigned long long`" msgstr "" -#: ../../library/struct.rst:253 msgid "``n``" msgstr "" -#: ../../library/struct.rst:253 msgid ":c:type:`ssize_t`" msgstr "" -#: ../../library/struct.rst:253 ../../library/struct.rst:255 msgid "\\(3)" msgstr "" -#: ../../library/struct.rst:255 msgid "``N``" -msgstr "``N``" +msgstr "" -#: ../../library/struct.rst:255 msgid ":c:type:`size_t`" msgstr "" -#: ../../library/struct.rst:257 msgid "``e``" msgstr "" -#: ../../library/struct.rst:257 msgid "\\(6)" msgstr "" -#: ../../library/struct.rst:257 ../../library/struct.rst:259 -#: ../../library/struct.rst:261 msgid "float" msgstr "" -#: ../../library/struct.rst:257 ../../library/struct.rst:259 -#: ../../library/struct.rst:261 msgid "\\(4)" msgstr "" -#: ../../library/struct.rst:259 msgid "``f``" msgstr "" -#: ../../library/struct.rst:259 msgid ":c:expr:`float`" msgstr "" -#: ../../library/struct.rst:261 msgid "``d``" msgstr "" -#: ../../library/struct.rst:261 msgid ":c:expr:`double`" msgstr "" -#: ../../library/struct.rst:263 msgid "``F``" msgstr "" -#: ../../library/struct.rst:263 msgid ":c:expr:`float complex`" msgstr "" -#: ../../library/struct.rst:263 ../../library/struct.rst:265 msgid "complex" msgstr "" -#: ../../library/struct.rst:263 ../../library/struct.rst:265 msgid "\\(10)" msgstr "" -#: ../../library/struct.rst:265 msgid "``D``" msgstr "" -#: ../../library/struct.rst:265 msgid ":c:expr:`double complex`" msgstr "" -#: ../../library/struct.rst:265 msgid "16" msgstr "" -#: ../../library/struct.rst:267 msgid "``s``" -msgstr "``s``" +msgstr "" -#: ../../library/struct.rst:267 ../../library/struct.rst:269 msgid ":c:expr:`char[]`" msgstr "" -#: ../../library/struct.rst:267 ../../library/struct.rst:269 msgid "bytes" msgstr "" -#: ../../library/struct.rst:267 msgid "\\(9)" msgstr "" -#: ../../library/struct.rst:269 msgid "``p``" -msgstr "``p``" +msgstr "" -#: ../../library/struct.rst:269 msgid "\\(8)" msgstr "" -#: ../../library/struct.rst:271 msgid "``P``" msgstr "" -#: ../../library/struct.rst:271 msgid ":c:expr:`void \\*`" msgstr "" -#: ../../library/struct.rst:271 msgid "\\(5)" msgstr "" -#: ../../library/struct.rst:274 msgid "Added support for the ``'n'`` and ``'N'`` formats." msgstr "" -#: ../../library/struct.rst:277 msgid "Added support for the ``'e'`` format." msgstr "" -#: ../../library/struct.rst:280 msgid "Added support for the ``'F'`` and ``'D'`` formats." msgstr "" -#: ../../library/struct.rst:289 msgid "" "The ``'?'`` conversion code corresponds to the :c:expr:`_Bool` type defined " "by C standards since C99. In standard mode, it is represented by one byte." msgstr "" -#: ../../library/struct.rst:294 msgid "" "When attempting to pack a non-integer using any of the integer conversion " "codes, if the non-integer has a :meth:`~object.__index__` method then that " "method is called to convert the argument to an integer before packing." msgstr "" -#: ../../library/struct.rst:298 msgid "Added use of the :meth:`~object.__index__` method for non-integers." msgstr "" -#: ../../library/struct.rst:302 msgid "" "The ``'n'`` and ``'N'`` conversion codes are only available for the native " "size (selected as the default or with the ``'@'`` byte order character). For " @@ -665,7 +514,6 @@ msgid "" "your application." msgstr "" -#: ../../library/struct.rst:308 msgid "" "For the ``'f'``, ``'d'`` and ``'e'`` conversion codes, the packed " "representation uses the IEEE 754 binary32, binary64 or binary16 format (for " @@ -673,7 +521,6 @@ msgid "" "format used by the platform." msgstr "" -#: ../../library/struct.rst:314 msgid "" "The ``'P'`` format character is only available for the native byte ordering " "(selected as the default or with the ``'@'`` byte order character). The byte " @@ -682,7 +529,6 @@ msgid "" "ordering, so the ``'P'`` format is not available." msgstr "" -#: ../../library/struct.rst:321 msgid "" "The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " "revision of the `IEEE 754 standard `_. It has a sign " @@ -694,25 +540,22 @@ msgid "" "format `_ for more information." msgstr "" -#: ../../library/struct.rst:331 msgid "When packing, ``'x'`` inserts one NUL byte." msgstr "" -#: ../../library/struct.rst:334 msgid "" "The ``'p'`` format character encodes a \"Pascal string\", meaning a short " "variable-length string stored in a *fixed number of bytes*, given by the " "count. The first byte stored is the length of the string, or 255, whichever " -"is smaller. The bytes of the string follow. If the string passed in " -"to :func:`pack` is too long (longer than the count minus 1), only the " -"leading ``count-1`` bytes of the string are stored. If the string is " -"shorter than ``count-1``, it is padded with null bytes so that exactly count " -"bytes in all are used. Note that for :func:`unpack`, the ``'p'`` format " -"character consumes ``count`` bytes, but that the string returned can never " -"contain more than 255 bytes." +"is smaller. The bytes of the string follow. If the string passed in to :" +"func:`pack` is too long (longer than the count minus 1), only the leading " +"``count-1`` bytes of the string are stored. If the string is shorter than " +"``count-1``, it is padded with null bytes so that exactly count bytes in all " +"are used. Note that for :func:`unpack`, the ``'p'`` format character " +"consumes ``count`` bytes, but that the string returned can never contain " +"more than 255 bytes." msgstr "" -#: ../../library/struct.rst:346 msgid "" "For the ``'s'`` format character, the count is interpreted as the length of " "the bytes, not a repeat count like for the other format characters; for " @@ -727,7 +570,6 @@ msgid "" "(while ``'0c'`` means 0 characters)." msgstr "" -#: ../../library/struct.rst:360 msgid "" "For the ``'F'`` and ``'D'`` format characters, the packed representation " "uses the IEEE 754 binary32 and binary64 format for components of the complex " @@ -738,33 +580,28 @@ msgid "" "containing, respectively, the real and imaginary parts." msgstr "" -#: ../../library/struct.rst:369 msgid "" "A format character may be preceded by an integral repeat count. For " "example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." msgstr "" -#: ../../library/struct.rst:372 msgid "" "Whitespace characters between formats are ignored; a count and its format " "must not contain whitespace though." msgstr "" -#: ../../library/struct.rst:375 msgid "" "When packing a value ``x`` using one of the integer formats (``'b'``, " "``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, ``'L'``, ``'q'``, " -"``'Q'``), if ``x`` is outside the valid range for that format " -"then :exc:`struct.error` is raised." +"``'Q'``), if ``x`` is outside the valid range for that format then :exc:" +"`struct.error` is raised." msgstr "" -#: ../../library/struct.rst:380 msgid "" "Previously, some of the integer formats wrapped out-of-range values and " "raised :exc:`DeprecationWarning` instead of :exc:`struct.error`." msgstr "" -#: ../../library/struct.rst:386 msgid "" "For the ``'?'`` format character, the return value is either :const:`True` " "or :const:`False`. When packing, the truth value of the argument object is " @@ -772,24 +609,20 @@ msgid "" "packed, and any non-zero value will be ``True`` when unpacking." msgstr "" -#: ../../library/struct.rst:396 msgid "Examples" msgstr "" -#: ../../library/struct.rst:399 msgid "" "Native byte order examples (designated by the ``'@'`` format prefix or lack " "of any prefix character) may not match what the reader's machine produces as " "that depends on the platform and compiler." msgstr "" -#: ../../library/struct.rst:404 msgid "" "Pack and unpack integers of three different sizes, using big endian " "ordering::" msgstr "" -#: ../../library/struct.rst:407 msgid "" ">>> from struct import *\n" ">>> pack(\">bhl\", 1, 2, 3)\n" @@ -800,11 +633,9 @@ msgid "" "7" msgstr "" -#: ../../library/struct.rst:415 msgid "Attempt to pack an integer which is too large for the defined field::" msgstr "" -#: ../../library/struct.rst:417 msgid "" ">>> pack(\">h\", 99999)\n" "Traceback (most recent call last):\n" @@ -812,12 +643,10 @@ msgid "" "struct.error: 'h' format requires -32768 <= number <= 32767" msgstr "" -#: ../../library/struct.rst:422 msgid "" "Demonstrate the difference between ``'s'`` and ``'c'`` format characters::" msgstr "" -#: ../../library/struct.rst:425 msgid "" ">>> pack(\"@ccc\", b'1', b'2', b'3')\n" "b'123'\n" @@ -825,13 +654,11 @@ msgid "" "b'123'" msgstr "" -#: ../../library/struct.rst:430 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" msgstr "" -#: ../../library/struct.rst:433 msgid "" ">>> record = b'raymond \\x32\\x12\\x08\\x01\\x08'\n" ">>> name, serialnum, school, gradelevel = unpack('<10sHHb', record)\n" @@ -842,7 +669,6 @@ msgid "" "Student(name=b'raymond ', serialnum=4658, school=264, gradelevel=8)" msgstr "" -#: ../../library/struct.rst:441 msgid "" "The ordering of format characters may have an impact on size in native mode " "since padding is implicit. In standard mode, the user is responsible for " @@ -852,7 +678,6 @@ msgid "" "a little endian machine::" msgstr "" -#: ../../library/struct.rst:449 msgid "" ">>> pack('@ci', b'#', 0x12131415)\n" "b'#\\x00\\x00\\x00\\x15\\x14\\x13\\x12'\n" @@ -864,47 +689,37 @@ msgid "" "5" msgstr "" -#: ../../library/struct.rst:458 msgid "" "The following format ``'llh0l'`` results in two pad bytes being added at the " "end, assuming the platform's longs are aligned on 4-byte boundaries::" msgstr "" -#: ../../library/struct.rst:461 msgid "" ">>> pack('@llh0l', 1, 2, 3)\n" "b'\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x02\\x00\\x03\\x00\\x00'" msgstr "" -#: ../../library/struct.rst:467 msgid "Module :mod:`array`" msgstr "" -#: ../../library/struct.rst:468 msgid "Packed binary storage of homogeneous data." msgstr "" -#: ../../library/struct.rst:470 msgid "Module :mod:`json`" msgstr "" -#: ../../library/struct.rst:471 msgid "JSON encoder and decoder." msgstr "" -#: ../../library/struct.rst:473 msgid "Module :mod:`pickle`" msgstr "" -#: ../../library/struct.rst:474 msgid "Python object serialization." msgstr "" -#: ../../library/struct.rst:480 msgid "Applications" msgstr "" -#: ../../library/struct.rst:482 msgid "" "Two main applications for the :mod:`struct` module exist, data interchange " "between Python and C code within an application or another application " @@ -914,11 +729,9 @@ msgid "" "speaking, the format strings constructed for these two domains are distinct." msgstr "" -#: ../../library/struct.rst:493 msgid "Native Formats" msgstr "" -#: ../../library/struct.rst:495 msgid "" "When constructing format strings which mimic native layouts, the compiler " "and machine architecture determine byte ordering and padding. In such cases, " @@ -929,12 +742,10 @@ msgid "" "of consecutive chunks of data." msgstr "" -#: ../../library/struct.rst:503 msgid "" "Consider these two simple examples (on a 64-bit, little-endian machine)::" msgstr "" -#: ../../library/struct.rst:506 msgid "" ">>> calcsize('@lhl')\n" "24\n" @@ -942,36 +753,30 @@ msgid "" "18" msgstr "" -#: ../../library/struct.rst:511 msgid "" "Data is not padded to an 8-byte boundary at the end of the second format " "string without the use of extra padding. A zero-repeat format code solves " "that problem::" msgstr "" -#: ../../library/struct.rst:515 msgid "" ">>> calcsize('@llh0l')\n" "24" msgstr "" -#: ../../library/struct.rst:518 msgid "" "The ``'x'`` format code can be used to specify the repeat, but for native " "formats it is better to use a zero-repeat format like ``'0l'``." msgstr "" -#: ../../library/struct.rst:521 msgid "" "By default, native byte ordering and alignment is used, but it is better to " "be explicit and use the ``'@'`` prefix character." msgstr "" -#: ../../library/struct.rst:528 msgid "Standard Formats" msgstr "" -#: ../../library/struct.rst:530 msgid "" "When exchanging data beyond your process such as networking or storage, be " "precise. Specify the exact byte order, size, and alignment. Do not assume " @@ -985,7 +790,6 @@ msgid "" "from the previous section, we have::" msgstr "" -#: ../../library/struct.rst:542 msgid "" ">>> calcsize('>> calcsize(' (greater)" msgstr "" -#: ../../library/struct.rst:136 msgid "! (exclamation)" msgstr "" -#: ../../library/struct.rst:287 ../../library/struct.rst:384 msgid "? (question mark)" msgstr "" diff --git a/library/subprocess.po b/library/subprocess.po index df706a7..75c5f42 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,69 +22,53 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/subprocess.rst:2 msgid ":mod:`!subprocess` --- Subprocess management" msgstr "" -#: ../../library/subprocess.rst:10 msgid "**Source code:** :source:`Lib/subprocess.py`" msgstr "" -#: ../../library/subprocess.rst:14 msgid "" "The :mod:`subprocess` module allows you to spawn new processes, connect to " "their input/output/error pipes, and obtain their return codes. This module " "intends to replace several older modules and functions::" msgstr "" -#: ../../library/subprocess.rst:18 msgid "" "os.system\n" "os.spawn*" msgstr "" -#: ../../library/subprocess.rst:21 msgid "" "Information about how the :mod:`subprocess` module can be used to replace " "these modules and functions can be found in the following sections." msgstr "" -#: ../../library/subprocess.rst:26 msgid ":pep:`324` -- PEP proposing the subprocess module" msgstr "" -#: ../../library/subprocess.rst:598 ../../library/subprocess.rst:605 -#: ../../library/subprocess.rst:615 ../../library/subprocess.rst:624 -#: ../../library/subprocess.rst:633 ../../library/subprocess.rst:639 -#: ../../library/subprocess.rst:1494 ../../library/subprocess.rst:1516 -#: ../../includes/wasm-mobile-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-mobile-notavail.rst:5 msgid "" "This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." msgstr "" -#: ../../library/subprocess.rst:31 msgid "Using the :mod:`subprocess` Module" msgstr "" -#: ../../library/subprocess.rst:33 msgid "" "The recommended approach to invoking subprocesses is to use the :func:`run` " "function for all use cases it can handle. For more advanced use cases, the " "underlying :class:`Popen` interface can be used directly." msgstr "" -#: ../../library/subprocess.rst:43 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return a :class:`CompletedProcess` instance." msgstr "" -#: ../../library/subprocess.rst:46 msgid "" "The arguments shown above are merely the most common ones, described below " "in :ref:`frequently-used-arguments` (hence the use of keyword-only notation " @@ -94,47 +78,40 @@ msgid "" "*check*, and *capture_output* are not.)" msgstr "" -#: ../../library/subprocess.rst:53 msgid "" "If *capture_output* is true, stdout and stderr will be captured. When used, " "the internal :class:`Popen` object is automatically created with *stdout* " "and *stderr* both set to :data:`~subprocess.PIPE`. The *stdout* and *stderr* " "arguments may not be supplied at the same time as *capture_output*. If you " -"wish to capture and combine both streams into one, set *stdout* " -"to :data:`~subprocess.PIPE` and *stderr* to :data:`~subprocess.STDOUT`, " -"instead of using *capture_output*." +"wish to capture and combine both streams into one, set *stdout* to :data:" +"`~subprocess.PIPE` and *stderr* to :data:`~subprocess.STDOUT`, instead of " +"using *capture_output*." msgstr "" -#: ../../library/subprocess.rst:62 msgid "" -"A *timeout* may be specified in seconds, it is internally passed on " -"to :meth:`Popen.communicate`. If the timeout expires, the child process will " -"be killed and waited for. The :exc:`TimeoutExpired` exception will be re-" -"raised after the child process has terminated. The initial process creation " -"itself cannot be interrupted on many platform APIs so you are not guaranteed " -"to see a timeout exception until at least after however long process " -"creation takes." +"A *timeout* may be specified in seconds, it is internally passed on to :meth:" +"`Popen.communicate`. If the timeout expires, the child process will be " +"killed and waited for. The :exc:`TimeoutExpired` exception will be re-raised " +"after the child process has terminated. The initial process creation itself " +"cannot be interrupted on many platform APIs so you are not guaranteed to see " +"a timeout exception until at least after however long process creation takes." msgstr "" -#: ../../library/subprocess.rst:70 msgid "" "The *input* argument is passed to :meth:`Popen.communicate` and thus to the " "subprocess's stdin. If used it must be a byte sequence, or a string if " "*encoding* or *errors* is specified or *text* is true. When used, the " -"internal :class:`Popen` object is automatically created with *stdin* set " -"to :data:`~subprocess.PIPE`, and the *stdin* argument may not be used as " -"well." +"internal :class:`Popen` object is automatically created with *stdin* set to :" +"data:`~subprocess.PIPE`, and the *stdin* argument may not be used as well." msgstr "" -#: ../../library/subprocess.rst:77 msgid "" -"If *check* is true, and the process exits with a non-zero exit code, " -"a :exc:`CalledProcessError` exception will be raised. Attributes of that " -"exception hold the arguments, the exit code, and stdout and stderr if they " -"were captured." +"If *check* is true, and the process exits with a non-zero exit code, a :exc:" +"`CalledProcessError` exception will be raised. Attributes of that exception " +"hold the arguments, the exit code, and stdout and stderr if they were " +"captured." msgstr "" -#: ../../library/subprocess.rst:82 msgid "" "If *encoding* or *errors* are specified, or *text* is true, file objects for " "stdin, stdout and stderr are opened in text mode using the specified " @@ -143,21 +120,18 @@ msgid "" "backwards compatibility. By default, file objects are opened in binary mode." msgstr "" -#: ../../library/subprocess.rst:88 msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " "behavior of inheriting the current process' environment. It is passed " "directly to :class:`Popen`. This mapping can be str to str on any platform " -"or bytes to bytes on POSIX platforms much like :data:`os.environ` " -"or :data:`os.environb`." +"or bytes to bytes on POSIX platforms much like :data:`os.environ` or :data:" +"`os.environb`." msgstr "" -#: ../../library/subprocess.rst:95 msgid "Examples::" msgstr "Példák::" -#: ../../library/subprocess.rst:97 msgid "" ">>> subprocess.run([\"ls\", \"-l\"]) # doesn't capture output\n" "CompletedProcess(args=['ls', '-l'], returncode=0)\n" @@ -173,125 +147,101 @@ msgid "" "stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\\n', stderr=b'')" msgstr "" -#: ../../library/subprocess.rst:113 msgid "Added *encoding* and *errors* parameters" msgstr "" -#: ../../library/subprocess.rst:117 msgid "" "Added the *text* parameter, as a more understandable alias of " "*universal_newlines*. Added the *capture_output* parameter." msgstr "" -#: ../../library/subprocess.rst:122 ../../library/subprocess.rst:506 -#: ../../library/subprocess.rst:1214 ../../library/subprocess.rst:1254 -#: ../../library/subprocess.rst:1317 msgid "" "Changed Windows shell search order for ``shell=True``. The current directory " "and ``%PATH%`` are replaced with ``%COMSPEC%`` and ``%SystemRoot%" -"\\System32\\cmd.exe``. As a result, dropping a malicious program named " -"``cmd.exe`` into a current directory no longer works." +"\\System32\\cmd.exe``. As a result, dropping a malicious program named ``cmd." +"exe`` into a current directory no longer works." msgstr "" -#: ../../library/subprocess.rst:130 msgid "" "The return value from :func:`run`, representing a process that has finished." msgstr "" -#: ../../library/subprocess.rst:134 msgid "" "The arguments used to launch the process. This may be a list or a string." msgstr "" -#: ../../library/subprocess.rst:138 msgid "" "Exit status of the child process. Typically, an exit status of 0 indicates " "that it ran successfully." msgstr "" -#: ../../library/subprocess.rst:141 ../../library/subprocess.rst:945 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." msgstr "" -#: ../../library/subprocess.rst:146 msgid "" -"Captured stdout from the child process. A bytes sequence, or a string " -"if :func:`run` was called with an encoding, errors, or text=True. ``None`` " -"if stdout was not captured." +"Captured stdout from the child process. A bytes sequence, or a string if :" +"func:`run` was called with an encoding, errors, or text=True. ``None`` if " +"stdout was not captured." msgstr "" -#: ../../library/subprocess.rst:150 msgid "" "If you ran the process with ``stderr=subprocess.STDOUT``, stdout and stderr " "will be combined in this attribute, and :attr:`stderr` will be ``None``." msgstr "" -#: ../../library/subprocess.rst:156 msgid "" -"Captured stderr from the child process. A bytes sequence, or a string " -"if :func:`run` was called with an encoding, errors, or text=True. ``None`` " -"if stderr was not captured." +"Captured stderr from the child process. A bytes sequence, or a string if :" +"func:`run` was called with an encoding, errors, or text=True. ``None`` if " +"stderr was not captured." msgstr "" -#: ../../library/subprocess.rst:162 msgid "If :attr:`returncode` is non-zero, raise a :exc:`CalledProcessError`." msgstr "" -#: ../../library/subprocess.rst:168 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that the special file :data:`os.devnull` " "will be used." msgstr "" -#: ../../library/subprocess.rst:177 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that a pipe to the standard stream should be " "opened. Most useful with :meth:`Popen.communicate`." msgstr "" -#: ../../library/subprocess.rst:184 msgid "" "Special value that can be used as the *stderr* argument to :class:`Popen` " "and indicates that standard error should go into the same handle as standard " "output." msgstr "" -#: ../../library/subprocess.rst:191 msgid "Base class for all other exceptions from this module." msgstr "" -#: ../../library/subprocess.rst:198 msgid "" "Subclass of :exc:`SubprocessError`, raised when a timeout expires while " "waiting for a child process." msgstr "" -#: ../../library/subprocess.rst:203 ../../library/subprocess.rst:247 msgid "Command that was used to spawn the child process." msgstr "" -#: ../../library/subprocess.rst:207 msgid "Timeout in seconds." msgstr "" -#: ../../library/subprocess.rst:211 msgid "" -"Output of the child process if it was captured by :func:`run` " -"or :func:`check_output`. Otherwise, ``None``. This is " -"always :class:`bytes` when any output was captured regardless of the " -"``text=True`` setting. It may remain ``None`` instead of ``b''`` when no " -"output was observed." +"Output of the child process if it was captured by :func:`run` or :func:" +"`check_output`. Otherwise, ``None``. This is always :class:`bytes` when " +"any output was captured regardless of the ``text=True`` setting. It may " +"remain ``None`` instead of ``b''`` when no output was observed." msgstr "" -#: ../../library/subprocess.rst:219 ../../library/subprocess.rst:256 msgid "Alias for output, for symmetry with :attr:`stderr`." msgstr "" -#: ../../library/subprocess.rst:223 msgid "" "Stderr output of the child process if it was captured by :func:`run`. " "Otherwise, ``None``. This is always :class:`bytes` when stderr output was " @@ -299,40 +249,33 @@ msgid "" "instead of ``b''`` when no stderr output was observed." msgstr "" -#: ../../library/subprocess.rst:230 ../../library/subprocess.rst:263 msgid "*stdout* and *stderr* attributes added" msgstr "" -#: ../../library/subprocess.rst:235 msgid "" -"Subclass of :exc:`SubprocessError`, raised when a process run " -"by :func:`check_call`, :func:`check_output`, or :func:`run` (with " -"``check=True``) returns a non-zero exit status." +"Subclass of :exc:`SubprocessError`, raised when a process run by :func:" +"`check_call`, :func:`check_output`, or :func:`run` (with ``check=True``) " +"returns a non-zero exit status." msgstr "" -#: ../../library/subprocess.rst:242 msgid "" "Exit status of the child process. If the process exited due to a signal, " "this will be the negative signal number." msgstr "" -#: ../../library/subprocess.rst:251 msgid "" -"Output of the child process if it was captured by :func:`run` " -"or :func:`check_output`. Otherwise, ``None``." +"Output of the child process if it was captured by :func:`run` or :func:" +"`check_output`. Otherwise, ``None``." msgstr "" -#: ../../library/subprocess.rst:260 msgid "" "Stderr output of the child process if it was captured by :func:`run`. " "Otherwise, ``None``." msgstr "" -#: ../../library/subprocess.rst:270 msgid "Frequently Used Arguments" msgstr "" -#: ../../library/subprocess.rst:272 msgid "" "To support a wide variety of use cases, the :class:`Popen` constructor (and " "the convenience functions) accept a large number of optional arguments. For " @@ -340,7 +283,6 @@ msgid "" "default values. The arguments that are most commonly needed are:" msgstr "" -#: ../../library/subprocess.rst:277 msgid "" "*args* is required for all calls and should be a string, or a sequence of " "program arguments. Providing a sequence of arguments is generally preferred, " @@ -350,7 +292,6 @@ msgid "" "simply name the program to be executed without specifying any arguments." msgstr "" -#: ../../library/subprocess.rst:285 msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " @@ -358,13 +299,12 @@ msgid "" "descriptor (a positive integer), and an existing :term:`file object` with a " "valid file descriptor. With the default settings of ``None``, no " "redirection will occur. :data:`PIPE` indicates that a new pipe to the child " -"should be created. :data:`DEVNULL` indicates that the special " -"file :data:`os.devnull` will be used. Additionally, *stderr* can " -"be :data:`STDOUT`, which indicates that the stderr data from the child " -"process should be captured into the same file handle as for *stdout*." +"should be created. :data:`DEVNULL` indicates that the special file :data:" +"`os.devnull` will be used. Additionally, *stderr* can be :data:`STDOUT`, " +"which indicates that the stderr data from the child process should be " +"captured into the same file handle as for *stdout*." msgstr "" -#: ../../library/subprocess.rst:299 msgid "" "If *encoding* or *errors* are specified, or *text* (also known as " "*universal_newlines*) is true, the file objects *stdin*, *stdout* and " @@ -372,7 +312,6 @@ msgid "" "specified in the call or the defaults for :class:`io.TextIOWrapper`." msgstr "" -#: ../../library/subprocess.rst:305 msgid "" "For *stdin*, line ending characters ``'\\n'`` in the input will be converted " "to the default line separator :data:`os.linesep`. For *stdout* and *stderr*, " @@ -381,29 +320,23 @@ msgid "" "when the *newline* argument to its constructor is ``None``." msgstr "" -#: ../../library/subprocess.rst:311 msgid "" "If text mode is not used, *stdin*, *stdout* and *stderr* will be opened as " "binary streams. No encoding or line ending conversion is performed." msgstr "" -#: ../../library/subprocess.rst:314 ../../library/subprocess.rst:1503 -#: ../../library/subprocess.rst:1521 msgid "Added the *encoding* and *errors* parameters." msgstr "" -#: ../../library/subprocess.rst:317 msgid "Added the *text* parameter as an alias for *universal_newlines*." msgstr "" -#: ../../library/subprocess.rst:322 msgid "" -"The newlines attribute of the file " -"objects :attr:`Popen.stdin`, :attr:`Popen.stdout` and :attr:`Popen.stderr` " -"are not updated by the :meth:`Popen.communicate` method." +"The newlines attribute of the file objects :attr:`Popen.stdin`, :attr:`Popen." +"stdout` and :attr:`Popen.stderr` are not updated by the :meth:`Popen." +"communicate` method." msgstr "" -#: ../../library/subprocess.rst:326 msgid "" "If *shell* is ``True``, the specified command will be executed through the " "shell. This can be useful if you are using Python primarily for the " @@ -411,36 +344,30 @@ msgid "" "convenient access to other shell features such as shell pipes, filename " "wildcards, environment variable expansion, and expansion of ``~`` to a " "user's home directory. However, note that Python itself offers " -"implementations of many shell-like features (in " -"particular, :mod:`glob`, :mod:`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path.expanduser`, " -"and :mod:`shutil`)." +"implementations of many shell-like features (in particular, :mod:`glob`, :" +"mod:`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path." +"expanduser`, and :mod:`shutil`)." msgstr "" -#: ../../library/subprocess.rst:336 msgid "" -"When *universal_newlines* is ``True``, the class uses the " -"encoding :func:`locale.getpreferredencoding(False) " -"` instead of " -"``locale.getpreferredencoding()``. See the :class:`io.TextIOWrapper` class " -"for more information on this change." +"When *universal_newlines* is ``True``, the class uses the encoding :func:" +"`locale.getpreferredencoding(False) ` instead " +"of ``locale.getpreferredencoding()``. See the :class:`io.TextIOWrapper` " +"class for more information on this change." msgstr "" -#: ../../library/subprocess.rst:344 ../../library/subprocess.rst:465 msgid "" "Read the `Security Considerations`_ section before using ``shell=True``." msgstr "" -#: ../../library/subprocess.rst:346 msgid "" "These options, along with all of the other options, are described in more " "detail in the :class:`Popen` constructor documentation." msgstr "" -#: ../../library/subprocess.rst:351 msgid "Popen Constructor" msgstr "" -#: ../../library/subprocess.rst:353 msgid "" "The underlying process creation and management in this module is handled by " "the :class:`Popen` class. It offers a lot of flexibility so that developers " @@ -448,18 +375,16 @@ msgid "" "functions." msgstr "" -#: ../../library/subprocess.rst:368 msgid "" -"Execute a child program in a new process. On POSIX, the class " -"uses :meth:`os.execvpe`-like behavior to execute the child program. On " -"Windows, the class uses the Windows ``CreateProcess()`` function. The " -"arguments to :class:`Popen` are as follows." +"Execute a child program in a new process. On POSIX, the class uses :meth:" +"`os.execvpe`-like behavior to execute the child program. On Windows, the " +"class uses the Windows ``CreateProcess()`` function. The arguments to :" +"class:`Popen` are as follows." msgstr "" -#: ../../library/subprocess.rst:373 msgid "" -"*args* should be a sequence of program arguments or else a single string " -"or :term:`path-like object`. By default, the program to execute is the first " +"*args* should be a sequence of program arguments or else a single string or :" +"term:`path-like object`. By default, the program to execute is the first " "item in *args* if *args* is a sequence. If *args* is a string, the " "interpretation is platform-dependent and described below. See the *shell* " "and *executable* arguments for additional differences from the default " @@ -467,7 +392,6 @@ msgid "" "sequence." msgstr "" -#: ../../library/subprocess.rst:383 msgid "" "For maximum reliability, use a fully qualified path for the executable. To " "search for an unqualified name on :envvar:`PATH`, use :meth:`shutil.which`. " @@ -476,7 +400,6 @@ msgid "" "format to launch an installed module." msgstr "" -#: ../../library/subprocess.rst:389 msgid "" "Resolving the path of *executable* (or the first item of *args*) is platform " "dependent. For POSIX, see :meth:`os.execvpe`, and note that when resolving " @@ -490,31 +413,26 @@ msgid "" "variations." msgstr "" -#: ../../library/subprocess.rst:400 msgid "" "An example of passing some arguments to an external program as a sequence " "is::" msgstr "" -#: ../../library/subprocess.rst:403 msgid "Popen([\"/usr/bin/git\", \"commit\", \"-m\", \"Fixes a bug.\"])" msgstr "" -#: ../../library/subprocess.rst:405 msgid "" "On POSIX, if *args* is a string, the string is interpreted as the name or " "path of the program to execute. However, this can only be done if not " "passing arguments to the program." msgstr "" -#: ../../library/subprocess.rst:411 msgid "" "It may not be obvious how to break a shell command into a sequence of " "arguments, especially in complex cases. :meth:`shlex.split` can illustrate " "how to determine the correct tokenization for *args*::" msgstr "" -#: ../../library/subprocess.rst:415 msgid "" ">>> import shlex, subprocess\n" ">>> command_line = input()\n" @@ -527,7 +445,6 @@ msgid "" ">>> p = subprocess.Popen(args) # Success!" msgstr "" -#: ../../library/subprocess.rst:423 msgid "" "Note in particular that options (such as *-input*) and arguments (such as " "*eggs.txt*) that are separated by whitespace in the shell go in separate " @@ -536,33 +453,28 @@ msgid "" "shown above) are single list elements." msgstr "" -#: ../../library/subprocess.rst:429 msgid "" "On Windows, if *args* is a sequence, it will be converted to a string in a " "manner described in :ref:`converting-argument-sequence`. This is because " "the underlying ``CreateProcess()`` operates on strings." msgstr "" -#: ../../library/subprocess.rst:433 msgid "" "*args* parameter accepts a :term:`path-like object` if *shell* is ``False`` " "and a sequence containing path-like objects on POSIX." msgstr "" -#: ../../library/subprocess.rst:437 msgid "" "*args* parameter accepts a :term:`path-like object` if *shell* is ``False`` " "and a sequence containing bytes and path-like objects on Windows." msgstr "" -#: ../../library/subprocess.rst:442 msgid "" "The *shell* argument (which defaults to ``False``) specifies whether to use " "the shell as the program to execute. If *shell* is ``True``, it is " "recommended to pass *args* as a string rather than as a sequence." msgstr "" -#: ../../library/subprocess.rst:446 msgid "" "On POSIX with ``shell=True``, the shell defaults to :file:`/bin/sh`. If " "*args* is a string, the string specifies the command to execute through the " @@ -570,15 +482,13 @@ msgid "" "when typed at the shell prompt. This includes, for example, quoting or " "backslash escaping filenames with spaces in them. If *args* is a sequence, " "the first item specifies the command string, and any additional items will " -"be treated as additional arguments to the shell itself. That is to " -"say, :class:`Popen` does the equivalent of::" +"be treated as additional arguments to the shell itself. That is to say, :" +"class:`Popen` does the equivalent of::" msgstr "" -#: ../../library/subprocess.rst:455 msgid "Popen(['/bin/sh', '-c', args[0], args[1], ...])" msgstr "" -#: ../../library/subprocess.rst:457 msgid "" "On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable " "specifies the default shell. The only time you need to specify " @@ -587,35 +497,29 @@ msgid "" "``shell=True`` to run a batch file or console-based executable." msgstr "" -#: ../../library/subprocess.rst:467 msgid "" "*bufsize* will be supplied as the corresponding argument to the :func:`open` " "function when creating the stdin/stdout/stderr pipe file objects:" msgstr "" -#: ../../library/subprocess.rst:471 msgid "" "``0`` means unbuffered (read and write are one system call and can return " "short)" msgstr "" -#: ../../library/subprocess.rst:473 msgid "" "``1`` means line buffered (only usable if ``text=True`` or " "``universal_newlines=True``)" msgstr "" -#: ../../library/subprocess.rst:475 msgid "any other positive value means use a buffer of approximately that size" msgstr "" -#: ../../library/subprocess.rst:477 msgid "" -"negative bufsize (the default) means the system default of " -"io.DEFAULT_BUFFER_SIZE will be used." +"negative bufsize (the default) means the system default of io." +"DEFAULT_BUFFER_SIZE will be used." msgstr "" -#: ../../library/subprocess.rst:480 msgid "" "*bufsize* now defaults to -1 to enable buffering by default to match the " "behavior that most code expects. In versions prior to Python 3.2.4 and " @@ -624,7 +528,6 @@ msgid "" "Python 2 as most code expected." msgstr "" -#: ../../library/subprocess.rst:487 msgid "" "The *executable* argument specifies a replacement program to execute. It " "is very seldom needed. When ``shell=False``, *executable* replaces the " @@ -637,17 +540,14 @@ msgid "" "default :file:`/bin/sh`." msgstr "" -#: ../../library/subprocess.rst:497 msgid "*executable* parameter accepts a :term:`path-like object` on POSIX." msgstr "" -#: ../../library/subprocess.rst:500 msgid "" "*executable* parameter accepts a bytes and :term:`path-like object` on " "Windows." msgstr "" -#: ../../library/subprocess.rst:512 msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " @@ -655,25 +555,22 @@ msgid "" "descriptor (a positive integer), and an existing :term:`file object` with a " "valid file descriptor. With the default settings of ``None``, no " "redirection will occur. :data:`PIPE` indicates that a new pipe to the child " -"should be created. :data:`DEVNULL` indicates that the special " -"file :data:`os.devnull` will be used. Additionally, *stderr* can " -"be :data:`STDOUT`, which indicates that the stderr data from the " -"applications should be captured into the same file handle as for *stdout*." +"should be created. :data:`DEVNULL` indicates that the special file :data:" +"`os.devnull` will be used. Additionally, *stderr* can be :data:`STDOUT`, " +"which indicates that the stderr data from the applications should be " +"captured into the same file handle as for *stdout*." msgstr "" -#: ../../library/subprocess.rst:523 msgid "" "If *preexec_fn* is set to a callable object, this object will be called in " "the child process just before the child is executed. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:529 msgid "" "The *preexec_fn* parameter is NOT SAFE to use in the presence of threads in " "your application. The child process could deadlock before exec is called." msgstr "" -#: ../../library/subprocess.rst:535 msgid "" "If you need to modify the environment for the child use the *env* parameter " "rather than doing it in a *preexec_fn*. The *start_new_session* and " @@ -681,7 +578,6 @@ msgid "" "to call :func:`os.setsid` or :func:`os.setpgid` in the child." msgstr "" -#: ../../library/subprocess.rst:542 msgid "" "The *preexec_fn* parameter is no longer supported in subinterpreters. The " "use of the parameter in a subinterpreter raises :exc:`RuntimeError`. The new " @@ -689,7 +585,6 @@ msgid "" "and other embedded environments." msgstr "" -#: ../../library/subprocess.rst:547 msgid "" "If *close_fds* is true, all file descriptors except ``0``, ``1`` and ``2`` " "will be closed before the child process is executed. Otherwise when " @@ -697,91 +592,75 @@ msgid "" "described in :ref:`fd_inheritance`." msgstr "" -#: ../../library/subprocess.rst:552 msgid "" "On Windows, if *close_fds* is true then no handles will be inherited by the " -"child process unless explicitly passed in the ``handle_list`` element " -"of :attr:`STARTUPINFO.lpAttributeList`, or by standard handle redirection." +"child process unless explicitly passed in the ``handle_list`` element of :" +"attr:`STARTUPINFO.lpAttributeList`, or by standard handle redirection." msgstr "" -#: ../../library/subprocess.rst:556 msgid "" "The default for *close_fds* was changed from :const:`False` to what is " "described above." msgstr "" -#: ../../library/subprocess.rst:560 msgid "" -"On Windows the default for *close_fds* was changed from :const:`False` " -"to :const:`True` when redirecting the standard handles. It's now possible to " -"set *close_fds* to :const:`True` when redirecting the standard handles." +"On Windows the default for *close_fds* was changed from :const:`False` to :" +"const:`True` when redirecting the standard handles. It's now possible to set " +"*close_fds* to :const:`True` when redirecting the standard handles." msgstr "" -#: ../../library/subprocess.rst:565 msgid "" "*pass_fds* is an optional sequence of file descriptors to keep open between " -"the parent and child. Providing any *pass_fds* forces *close_fds* to " -"be :const:`True`. (POSIX only)" +"the parent and child. Providing any *pass_fds* forces *close_fds* to be :" +"const:`True`. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:569 msgid "The *pass_fds* parameter was added." msgstr "" -#: ../../library/subprocess.rst:572 msgid "" "If *cwd* is not ``None``, the function changes the working directory to " -"*cwd* before executing the child. *cwd* can be a string, bytes " -"or :term:`path-like ` object. On POSIX, the function " -"looks for *executable* (or for the first item in *args*) relative to *cwd* " -"if the executable path is a relative path." +"*cwd* before executing the child. *cwd* can be a string, bytes or :term:" +"`path-like ` object. On POSIX, the function looks for " +"*executable* (or for the first item in *args*) relative to *cwd* if the " +"executable path is a relative path." msgstr "" -#: ../../library/subprocess.rst:578 msgid "*cwd* parameter accepts a :term:`path-like object` on POSIX." msgstr "" -#: ../../library/subprocess.rst:581 msgid "*cwd* parameter accepts a :term:`path-like object` on Windows." msgstr "" -#: ../../library/subprocess.rst:584 msgid "*cwd* parameter accepts a bytes object on Windows." msgstr "" -#: ../../library/subprocess.rst:587 msgid "" "If *restore_signals* is true (the default) all signals that Python has set " "to SIG_IGN are restored to SIG_DFL in the child process before the exec. " "Currently this includes the SIGPIPE, SIGXFZ and SIGXFSZ signals. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:592 msgid "*restore_signals* was added." msgstr "" -#: ../../library/subprocess.rst:595 msgid "" "If *start_new_session* is true the ``setsid()`` system call will be made in " "the child process prior to the execution of the subprocess." msgstr "" -#: ../../library/subprocess.rst:599 msgid "*start_new_session* was added." msgstr "" -#: ../../library/subprocess.rst:602 msgid "" "If *process_group* is a non-negative integer, the ``setpgid(0, value)`` " "system call will be made in the child process prior to the execution of the " "subprocess." msgstr "" -#: ../../library/subprocess.rst:606 msgid "*process_group* was added." msgstr "" -#: ../../library/subprocess.rst:609 msgid "" "If *group* is not ``None``, the setregid() system call will be made in the " "child process prior to the execution of the subprocess. If the provided " @@ -790,7 +669,6 @@ msgid "" "passed verbatim. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:618 msgid "" "If *extra_groups* is not ``None``, the setgroups() system call will be made " "in the child process prior to the execution of the subprocess. Strings " @@ -799,7 +677,6 @@ msgid "" "verbatim. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:627 msgid "" "If *user* is not ``None``, the setreuid() system call will be made in the " "child process prior to the execution of the subprocess. If the provided " @@ -808,29 +685,25 @@ msgid "" "passed verbatim. (POSIX only)" msgstr "" -#: ../../library/subprocess.rst:636 msgid "" "If *umask* is not negative, the umask() system call will be made in the " "child process prior to the execution of the subprocess." msgstr "" -#: ../../library/subprocess.rst:642 msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " "behavior of inheriting the current process' environment. This mapping can be " -"str to str on any platform or bytes to bytes on POSIX platforms much " -"like :data:`os.environ` or :data:`os.environb`." +"str to str on any platform or bytes to bytes on POSIX platforms much like :" +"data:`os.environ` or :data:`os.environb`." msgstr "" -#: ../../library/subprocess.rst:650 msgid "" "If specified, *env* must provide any variables required for the program to " "execute. On Windows, in order to run a `side-by-side assembly`_ the " "specified *env* **must** include a valid :envvar:`SystemRoot`." msgstr "" -#: ../../library/subprocess.rst:656 msgid "" "If *encoding* or *errors* are specified, or *text* is true, the file objects " "*stdin*, *stdout* and *stderr* are opened in text mode with the specified " @@ -840,73 +713,56 @@ msgid "" "in binary mode." msgstr "" -#: ../../library/subprocess.rst:662 msgid "*encoding* and *errors* were added." msgstr "" -#: ../../library/subprocess.rst:665 ../../library/subprocess.rst:1312 msgid "*text* was added as a more readable alias for *universal_newlines*." msgstr "" -#: ../../library/subprocess.rst:668 msgid "" "If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is " "passed to the underlying ``CreateProcess`` function." msgstr "" -#: ../../library/subprocess.rst:671 msgid "If given, *creationflags*, can be one or more of the following flags:" msgstr "" -#: ../../library/subprocess.rst:673 msgid ":data:`CREATE_NEW_CONSOLE`" msgstr "" -#: ../../library/subprocess.rst:674 msgid ":data:`CREATE_NEW_PROCESS_GROUP`" msgstr "" -#: ../../library/subprocess.rst:675 msgid ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:676 msgid ":data:`BELOW_NORMAL_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:677 msgid ":data:`HIGH_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:678 msgid ":data:`IDLE_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:679 msgid ":data:`NORMAL_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:680 msgid ":data:`REALTIME_PRIORITY_CLASS`" msgstr "" -#: ../../library/subprocess.rst:681 msgid ":data:`CREATE_NO_WINDOW`" msgstr "" -#: ../../library/subprocess.rst:682 msgid ":data:`DETACHED_PROCESS`" msgstr "" -#: ../../library/subprocess.rst:683 msgid ":data:`CREATE_DEFAULT_ERROR_MODE`" msgstr "" -#: ../../library/subprocess.rst:684 msgid ":data:`CREATE_BREAKAWAY_FROM_JOB`" msgstr "" -#: ../../library/subprocess.rst:686 msgid "" "*pipesize* can be used to change the size of the pipe when :data:`PIPE` is " "used for *stdin*, *stdout* or *stderr*. The size of the pipe is only changed " @@ -914,105 +770,87 @@ msgid "" "platforms will ignore this parameter." msgstr "" -#: ../../library/subprocess.rst:691 msgid "Added the *pipesize* parameter." msgstr "" -#: ../../library/subprocess.rst:694 msgid "" "Popen objects are supported as context managers via the :keyword:`with` " "statement: on exit, standard file descriptors are closed, and the process is " "waited for. ::" msgstr "" -#: ../../library/subprocess.rst:698 msgid "" "with Popen([\"ifconfig\"], stdout=PIPE) as proc:\n" " log.write(proc.stdout.read())" msgstr "" -#: ../../library/subprocess.rst:701 ../../library/subprocess.rst:703 msgid "" -"Popen and the other functions in this module that use it raise " -"an :ref:`auditing event ` ``subprocess.Popen`` with arguments " +"Popen and the other functions in this module that use it raise an :ref:" +"`auditing event ` ``subprocess.Popen`` with arguments " "``executable``, ``args``, ``cwd``, and ``env``. The value for ``args`` may " "be a single string or a list of strings, depending on platform." msgstr "" -#: ../../library/subprocess.rst:708 msgid "Added context manager support." msgstr "" -#: ../../library/subprocess.rst:711 msgid "" "Popen destructor now emits a :exc:`ResourceWarning` warning if the child " "process is still running." msgstr "" -#: ../../library/subprocess.rst:715 msgid "" "Popen can use :func:`os.posix_spawn` in some cases for better performance. " "On Windows Subsystem for Linux and QEMU User Emulation, Popen constructor " "using :func:`os.posix_spawn` no longer raise an exception on errors like " -"missing program, but the child process fails with a non-" -"zero :attr:`~Popen.returncode`." +"missing program, but the child process fails with a non-zero :attr:`~Popen." +"returncode`." msgstr "" -#: ../../library/subprocess.rst:724 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/subprocess.rst:726 msgid "" "Exceptions raised in the child process, before the new program has started " "to execute, will be re-raised in the parent." msgstr "" -#: ../../library/subprocess.rst:729 msgid "" "The most common exception raised is :exc:`OSError`. This occurs, for " "example, when trying to execute a non-existent file. Applications should " -"prepare for :exc:`OSError` exceptions. Note that, when " -"``shell=True``, :exc:`OSError` will be raised by the child only if the " -"selected shell itself was not found. To determine if the shell failed to " -"find the requested application, it is necessary to check the return code or " -"output from the subprocess." +"prepare for :exc:`OSError` exceptions. Note that, when ``shell=True``, :exc:" +"`OSError` will be raised by the child only if the selected shell itself was " +"not found. To determine if the shell failed to find the requested " +"application, it is necessary to check the return code or output from the " +"subprocess." msgstr "" -#: ../../library/subprocess.rst:736 msgid "" "A :exc:`ValueError` will be raised if :class:`Popen` is called with invalid " "arguments." msgstr "" -#: ../../library/subprocess.rst:739 msgid "" -":func:`check_call` and :func:`check_output` will " -"raise :exc:`CalledProcessError` if the called process returns a non-zero " -"return code." +":func:`check_call` and :func:`check_output` will raise :exc:" +"`CalledProcessError` if the called process returns a non-zero return code." msgstr "" -#: ../../library/subprocess.rst:743 msgid "" -"All of the functions and methods that accept a *timeout* parameter, such " -"as :func:`run` and :meth:`Popen.communicate` will " -"raise :exc:`TimeoutExpired` if the timeout expires before the process exits." +"All of the functions and methods that accept a *timeout* parameter, such as :" +"func:`run` and :meth:`Popen.communicate` will raise :exc:`TimeoutExpired` if " +"the timeout expires before the process exits." msgstr "" -#: ../../library/subprocess.rst:747 msgid "" "Exceptions defined in this module all inherit from :exc:`SubprocessError`." msgstr "" -#: ../../library/subprocess.rst:749 msgid "The :exc:`SubprocessError` base class was added." msgstr "" -#: ../../library/subprocess.rst:755 msgid "Security Considerations" msgstr "" -#: ../../library/subprocess.rst:757 msgid "" "Unlike some other popen functions, this library will not implicitly choose " "to call a system shell. This means that all characters, including shell " @@ -1025,45 +863,38 @@ msgid "" "escaping." msgstr "" -#: ../../library/subprocess.rst:767 msgid "" "On Windows, batch files (:file:`*.bat` or :file:`*.cmd`) may be launched by " "the operating system in a system shell regardless of the arguments passed to " "this library. This could result in arguments being parsed according to shell " "rules, but without any escaping added by Python. If you are intentionally " "launching a batch file with arguments from untrusted sources, consider " -"passing ``shell=True`` to allow Python to escape special characters. " -"See :gh:`114539` for additional discussion." +"passing ``shell=True`` to allow Python to escape special characters. See :gh:" +"`114539` for additional discussion." msgstr "" -#: ../../library/subprocess.rst:777 msgid "Popen Objects" msgstr "" -#: ../../library/subprocess.rst:779 msgid "Instances of the :class:`Popen` class have the following methods:" msgstr "" -#: ../../library/subprocess.rst:784 msgid "" -"Check if child process has terminated. Set and " -"return :attr:`~Popen.returncode` attribute. Otherwise, returns ``None``." +"Check if child process has terminated. Set and return :attr:`~Popen." +"returncode` attribute. Otherwise, returns ``None``." msgstr "" -#: ../../library/subprocess.rst:790 msgid "" -"Wait for child process to terminate. Set and " -"return :attr:`~Popen.returncode` attribute." +"Wait for child process to terminate. Set and return :attr:`~Popen." +"returncode` attribute." msgstr "" -#: ../../library/subprocess.rst:793 msgid "" -"If the process does not terminate after *timeout* seconds, raise " -"a :exc:`TimeoutExpired` exception. It is safe to catch this exception and " -"retry the wait." +"If the process does not terminate after *timeout* seconds, raise a :exc:" +"`TimeoutExpired` exception. It is safe to catch this exception and retry " +"the wait." msgstr "" -#: ../../library/subprocess.rst:799 msgid "" "This will deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and the " "child process generates enough output to a pipe such that it blocks waiting " @@ -1071,21 +902,16 @@ msgid "" "when using pipes to avoid that." msgstr "" -#: ../../library/subprocess.rst:806 msgid "" "When the ``timeout`` parameter is not ``None``, then (on POSIX) the function " "is implemented using a busy loop (non-blocking call and short sleeps). Use " -"the :mod:`asyncio` module for an asynchronous wait: " -"see :class:`asyncio.create_subprocess_exec`." +"the :mod:`asyncio` module for an asynchronous wait: see :class:`asyncio." +"create_subprocess_exec`." msgstr "" -#: ../../library/subprocess.rst:811 ../../library/subprocess.rst:852 -#: ../../library/subprocess.rst:1209 ../../library/subprocess.rst:1249 -#: ../../library/subprocess.rst:1303 msgid "*timeout* was added." msgstr "" -#: ../../library/subprocess.rst:816 msgid "" "Interact with process: Send data to stdin. Read data from stdout and " "stderr, until end-of-file is reached. Wait for process to terminate and set " @@ -1095,13 +921,11 @@ msgid "" "must be a string. Otherwise, it must be bytes." msgstr "" -#: ../../library/subprocess.rst:823 msgid "" ":meth:`communicate` returns a tuple ``(stdout_data, stderr_data)``. The data " "will be strings if streams were opened in text mode; otherwise, bytes." msgstr "" -#: ../../library/subprocess.rst:827 msgid "" "Note that if you want to send data to the process's stdin, you need to " "create the Popen object with ``stdin=PIPE``. Similarly, to get anything " @@ -1109,21 +933,18 @@ msgid "" "and/or ``stderr=PIPE`` too." msgstr "" -#: ../../library/subprocess.rst:832 msgid "" -"If the process does not terminate after *timeout* seconds, " -"a :exc:`TimeoutExpired` exception will be raised. Catching this exception " -"and retrying communication will not lose any output." +"If the process does not terminate after *timeout* seconds, a :exc:" +"`TimeoutExpired` exception will be raised. Catching this exception and " +"retrying communication will not lose any output." msgstr "" -#: ../../library/subprocess.rst:836 msgid "" "The child process is not killed if the timeout expires, so in order to " "cleanup properly a well-behaved application should kill the child process " "and finish communication::" msgstr "" -#: ../../library/subprocess.rst:840 msgid "" "proc = subprocess.Popen(...)\n" "try:\n" @@ -1133,53 +954,44 @@ msgid "" " outs, errs = proc.communicate()" msgstr "" -#: ../../library/subprocess.rst:849 msgid "" "The data read is buffered in memory, so do not use this method if the data " "size is large or unlimited." msgstr "" -#: ../../library/subprocess.rst:858 msgid "Sends the signal *signal* to the child." msgstr "" -#: ../../library/subprocess.rst:860 msgid "Do nothing if the process completed." msgstr "" -#: ../../library/subprocess.rst:864 msgid "" "On Windows, SIGTERM is an alias for :meth:`terminate`. CTRL_C_EVENT and " "CTRL_BREAK_EVENT can be sent to processes started with a *creationflags* " "parameter which includes ``CREATE_NEW_PROCESS_GROUP``." msgstr "" -#: ../../library/subprocess.rst:871 msgid "" "Stop the child. On POSIX OSs the method sends :py:const:`~signal.SIGTERM` to " "the child. On Windows the Win32 API function :c:func:`!TerminateProcess` is " "called to stop the child." msgstr "" -#: ../../library/subprocess.rst:878 msgid "" "Kills the child. On POSIX OSs the function sends SIGKILL to the child. On " "Windows :meth:`kill` is an alias for :meth:`terminate`." msgstr "" -#: ../../library/subprocess.rst:882 msgid "" "The following attributes are also set by the class for you to access. " "Reassigning them to new values is unsupported:" msgstr "" -#: ../../library/subprocess.rst:887 msgid "" "The *args* argument as it was passed to :class:`Popen` -- a sequence of " "program arguments or else a single string." msgstr "" -#: ../../library/subprocess.rst:894 msgid "" "If the *stdin* argument was :data:`PIPE`, this attribute is a writeable " "stream object as returned by :func:`open`. If the *encoding* or *errors* " @@ -1188,7 +1000,6 @@ msgid "" "*stdin* argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: ../../library/subprocess.rst:903 msgid "" "If the *stdout* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " @@ -1198,7 +1009,6 @@ msgid "" "argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: ../../library/subprocess.rst:913 msgid "" "If the *stderr* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " @@ -1208,48 +1018,40 @@ msgid "" "argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: ../../library/subprocess.rst:922 msgid "" -"Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write " -"`, :attr:`.stdout.read ` or :attr:`.stderr.read " -"` to avoid deadlocks due to any of the other OS pipe buffers " -"filling up and blocking the child process." +"Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write `, :attr:`.stdout.read ` or :attr:`.stderr.read ` to avoid deadlocks due to any of the other OS pipe buffers filling " +"up and blocking the child process." msgstr "" -#: ../../library/subprocess.rst:930 msgid "The process ID of the child process." msgstr "" -#: ../../library/subprocess.rst:932 msgid "" "Note that if you set the *shell* argument to ``True``, this is the process " "ID of the spawned shell." msgstr "" -#: ../../library/subprocess.rst:938 msgid "" "The child return code. Initially ``None``, :attr:`returncode` is set by a " "call to the :meth:`poll`, :meth:`wait`, or :meth:`communicate` methods if " "they detect that the process has terminated." msgstr "" -#: ../../library/subprocess.rst:942 msgid "" "A ``None`` value indicates that the process hadn't yet terminated at the " "time of the last method call." msgstr "" -#: ../../library/subprocess.rst:950 msgid "Windows Popen Helpers" msgstr "" -#: ../../library/subprocess.rst:952 msgid "" "The :class:`STARTUPINFO` class and following constants are only available on " "Windows." msgstr "" -#: ../../library/subprocess.rst:958 msgid "" "Partial support of the Windows `STARTUPINFO `__ structure is used for :class:`Popen` " @@ -1257,45 +1059,38 @@ msgid "" "only arguments." msgstr "" -#: ../../library/subprocess.rst:963 msgid "Keyword-only argument support was added." msgstr "" -#: ../../library/subprocess.rst:968 msgid "" "A bit field that determines whether certain :class:`STARTUPINFO` attributes " "are used when the process creates a window. ::" msgstr "" -#: ../../library/subprocess.rst:971 msgid "" "si = subprocess.STARTUPINFO()\n" -"si.dwFlags = subprocess.STARTF_USESTDHANDLES | " -"subprocess.STARTF_USESHOWWINDOW" +"si.dwFlags = subprocess.STARTF_USESTDHANDLES | subprocess." +"STARTF_USESHOWWINDOW" msgstr "" -#: ../../library/subprocess.rst:976 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard input handle for the process. If :data:`STARTF_USESTDHANDLES` " "is not specified, the default for standard input is the keyboard buffer." msgstr "" -#: ../../library/subprocess.rst:983 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard output handle for the process. Otherwise, this attribute is " "ignored and the default for standard output is the console window's buffer." msgstr "" -#: ../../library/subprocess.rst:990 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard error handle for the process. Otherwise, this attribute is " "ignored and the default for standard error is the console window's buffer." msgstr "" -#: ../../library/subprocess.rst:996 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute " "can be any of the values that can be specified in the ``nCmdShow`` parameter " @@ -1304,154 +1099,128 @@ msgid "" "Otherwise, this attribute is ignored." msgstr "" -#: ../../library/subprocess.rst:1003 msgid "" -":data:`SW_HIDE` is provided for this attribute. It is used " -"when :class:`Popen` is called with ``shell=True``." +":data:`SW_HIDE` is provided for this attribute. It is used when :class:" +"`Popen` is called with ``shell=True``." msgstr "" -#: ../../library/subprocess.rst:1008 msgid "" "A dictionary of additional attributes for process creation as given in " -"``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." +"``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." msgstr "" -#: ../../library/subprocess.rst:1012 msgid "Supported attributes:" msgstr "" -#: ../../library/subprocess.rst:1014 msgid "**handle_list**" msgstr "" -#: ../../library/subprocess.rst:1015 msgid "" "Sequence of handles that will be inherited. *close_fds* must be true if non-" "empty." msgstr "" -#: ../../library/subprocess.rst:1018 msgid "" -"The handles must be temporarily made inheritable " -"by :func:`os.set_handle_inheritable` when passed to the :class:`Popen` " -"constructor, else :class:`OSError` will be raised with Windows error " +"The handles must be temporarily made inheritable by :func:`os." +"set_handle_inheritable` when passed to the :class:`Popen` constructor, else :" +"class:`OSError` will be raised with Windows error " "``ERROR_INVALID_PARAMETER`` (87)." msgstr "" -#: ../../library/subprocess.rst:1025 msgid "" "In a multithreaded process, use caution to avoid leaking handles that are " "marked inheritable when combining this feature with concurrent calls to " -"other process creation functions that inherit all handles such " -"as :func:`os.system`. This also applies to standard handle redirection, " -"which temporarily creates inheritable handles." +"other process creation functions that inherit all handles such as :func:`os." +"system`. This also applies to standard handle redirection, which " +"temporarily creates inheritable handles." msgstr "" -#: ../../library/subprocess.rst:1035 msgid "Windows Constants" msgstr "" -#: ../../library/subprocess.rst:1037 msgid "The :mod:`subprocess` module exposes the following constants." msgstr "" -#: ../../library/subprocess.rst:1041 msgid "" "The standard input device. Initially, this is the console input buffer, " "``CONIN$``." msgstr "" -#: ../../library/subprocess.rst:1046 msgid "" "The standard output device. Initially, this is the active console screen " "buffer, ``CONOUT$``." msgstr "" -#: ../../library/subprocess.rst:1051 msgid "" "The standard error device. Initially, this is the active console screen " "buffer, ``CONOUT$``." msgstr "" -#: ../../library/subprocess.rst:1056 msgid "Hides the window. Another window will be activated." msgstr "" -#: ../../library/subprocess.rst:1060 msgid "" -"Specifies that " -"the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO.hStdOutput`, " -"and :attr:`STARTUPINFO.hStdError` attributes contain additional information." +"Specifies that the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." +"hStdOutput`, and :attr:`STARTUPINFO.hStdError` attributes contain additional " +"information." msgstr "" -#: ../../library/subprocess.rst:1066 msgid "" "Specifies that the :attr:`STARTUPINFO.wShowWindow` attribute contains " "additional information." msgstr "" -#: ../../library/subprocess.rst:1071 msgid "" "A :attr:`STARTUPINFO.dwFlags` parameter to specify that the *Working in " "Background* mouse cursor will be displayed while a process is launching. " "This is the default behavior for GUI processes." msgstr "" -#: ../../library/subprocess.rst:1080 msgid "" "A :attr:`STARTUPINFO.dwFlags` parameter to specify that the mouse cursor " "will not be changed when launching a process." msgstr "" -#: ../../library/subprocess.rst:1087 msgid "" "The new process has a new console, instead of inheriting its parent's " "console (the default)." msgstr "" -#: ../../library/subprocess.rst:1092 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "group will be created. This flag is necessary for using :func:`os.kill` on " "the subprocess." msgstr "" -#: ../../library/subprocess.rst:1096 msgid "This flag is ignored if :data:`CREATE_NEW_CONSOLE` is specified." msgstr "" -#: ../../library/subprocess.rst:1100 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an above average priority." msgstr "" -#: ../../library/subprocess.rst:1107 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a below average priority." msgstr "" -#: ../../library/subprocess.rst:1114 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a high priority." msgstr "" -#: ../../library/subprocess.rst:1121 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an idle (lowest) priority." msgstr "" -#: ../../library/subprocess.rst:1128 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a normal priority. (default)" msgstr "" -#: ../../library/subprocess.rst:1135 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have realtime priority. You should almost never use " @@ -1461,20 +1230,17 @@ msgid "" "perform brief tasks that should have limited interruptions." msgstr "" -#: ../../library/subprocess.rst:1146 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not create a window." msgstr "" -#: ../../library/subprocess.rst:1153 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not inherit its parent's console. This value cannot be used with " "CREATE_NEW_CONSOLE." msgstr "" -#: ../../library/subprocess.rst:1161 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "does not inherit the error mode of the calling process. Instead, the new " @@ -1482,43 +1248,35 @@ msgid "" "multithreaded shell applications that run with hard errors disabled." msgstr "" -#: ../../library/subprocess.rst:1171 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "is not associated with the job." msgstr "" -#: ../../library/subprocess.rst:1179 msgid "Older high-level API" msgstr "" -#: ../../library/subprocess.rst:1181 msgid "" "Prior to Python 3.5, these three functions comprised the high level API to " "subprocess. You can now use :func:`run` in many cases, but lots of existing " "code calls these functions." msgstr "" -#: ../../library/subprocess.rst:1188 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return the :attr:`~Popen.returncode` attribute." msgstr "" -#: ../../library/subprocess.rst:1191 ../../library/subprocess.rst:1231 msgid "" "Code needing to capture stdout or stderr should use :func:`run` instead::" msgstr "" -#: ../../library/subprocess.rst:1193 msgid "run(...).returncode" msgstr "" -#: ../../library/subprocess.rst:1195 ../../library/subprocess.rst:1235 msgid "To suppress stdout or stderr, supply a value of :data:`DEVNULL`." msgstr "" -#: ../../library/subprocess.rst:1197 ../../library/subprocess.rst:1237 msgid "" "The arguments shown above are merely some common ones. The full function " "signature is the same as that of the :class:`Popen` constructor - this " @@ -1526,78 +1284,65 @@ msgid "" "to that interface." msgstr "" -#: ../../library/subprocess.rst:1204 ../../library/subprocess.rst:1244 msgid "" "Do not use ``stdout=PIPE`` or ``stderr=PIPE`` with this function. The child " "process will block if it generates enough output to a pipe to fill up the OS " "pipe buffer as the pipes are not being read from." msgstr "" -#: ../../library/subprocess.rst:1224 msgid "" "Run command with arguments. Wait for command to complete. If the return " -"code was zero then return, otherwise raise :exc:`CalledProcessError`. " -"The :exc:`CalledProcessError` object will have the return code in " -"the :attr:`~CalledProcessError.returncode` attribute. If :func:`check_call` " -"was unable to start the process it will propagate the exception that was " -"raised." +"code was zero then return, otherwise raise :exc:`CalledProcessError`. The :" +"exc:`CalledProcessError` object will have the return code in the :attr:" +"`~CalledProcessError.returncode` attribute. If :func:`check_call` was unable " +"to start the process it will propagate the exception that was raised." msgstr "" -#: ../../library/subprocess.rst:1233 msgid "run(..., check=True)" msgstr "" -#: ../../library/subprocess.rst:1266 msgid "Run command with arguments and return its output." msgstr "" -#: ../../library/subprocess.rst:1268 msgid "" -"If the return code was non-zero it raises a :exc:`CalledProcessError`. " -"The :exc:`CalledProcessError` object will have the return code in " -"the :attr:`~CalledProcessError.returncode` attribute and any output in " -"the :attr:`~CalledProcessError.output` attribute." +"If the return code was non-zero it raises a :exc:`CalledProcessError`. The :" +"exc:`CalledProcessError` object will have the return code in the :attr:" +"`~CalledProcessError.returncode` attribute and any output in the :attr:" +"`~CalledProcessError.output` attribute." msgstr "" -#: ../../library/subprocess.rst:1273 msgid "This is equivalent to::" msgstr "" -#: ../../library/subprocess.rst:1275 msgid "run(..., check=True, stdout=PIPE).stdout" msgstr "" -#: ../../library/subprocess.rst:1277 msgid "" "The arguments shown above are merely some common ones. The full function " "signature is largely the same as that of :func:`run` - most arguments are " -"passed directly through to that interface. One API deviation " -"from :func:`run` behavior exists: passing ``input=None`` will behave the " -"same as ``input=b''`` (or ``input=''``, depending on other arguments) rather " -"than using the parent's standard input file handle." +"passed directly through to that interface. One API deviation from :func:" +"`run` behavior exists: passing ``input=None`` will behave the same as " +"``input=b''`` (or ``input=''``, depending on other arguments) rather than " +"using the parent's standard input file handle." msgstr "" -#: ../../library/subprocess.rst:1284 msgid "" "By default, this function will return the data as encoded bytes. The actual " "encoding of the output data may depend on the command being invoked, so the " "decoding to text will often need to be handled at the application level." msgstr "" -#: ../../library/subprocess.rst:1288 msgid "" "This behaviour may be overridden by setting *text*, *encoding*, *errors*, or " "*universal_newlines* to ``True`` as described in :ref:`frequently-used-" "arguments` and :func:`run`." msgstr "" -#: ../../library/subprocess.rst:1292 msgid "" -"To also capture standard error in the result, use " -"``stderr=subprocess.STDOUT``::" +"To also capture standard error in the result, use ``stderr=subprocess." +"STDOUT``::" msgstr "" -#: ../../library/subprocess.rst:1295 msgid "" ">>> subprocess.check_output(\n" "... \"ls non_existent_file; exit 0\",\n" @@ -1606,71 +1351,56 @@ msgid "" "'ls: non_existent_file: No such file or directory\\n'" msgstr "" -#: ../../library/subprocess.rst:1306 msgid "Support for the *input* keyword argument was added." msgstr "" -#: ../../library/subprocess.rst:1309 msgid "*encoding* and *errors* were added. See :func:`run` for details." msgstr "" -#: ../../library/subprocess.rst:1327 msgid "Replacing Older Functions with the :mod:`subprocess` Module" msgstr "" -#: ../../library/subprocess.rst:1329 msgid "" "In this section, \"a becomes b\" means that b can be used as a replacement " "for a." msgstr "" -#: ../../library/subprocess.rst:1333 msgid "" "All \"a\" functions in this section fail (more or less) silently if the " -"executed program cannot be found; the \"b\" replacements " -"raise :exc:`OSError` instead." +"executed program cannot be found; the \"b\" replacements raise :exc:" +"`OSError` instead." msgstr "" -#: ../../library/subprocess.rst:1337 msgid "" -"In addition, the replacements using :func:`check_output` will fail with " -"a :exc:`CalledProcessError` if the requested operation produces a non-zero " -"return code. The output is still available as " -"the :attr:`~CalledProcessError.output` attribute of the raised exception." +"In addition, the replacements using :func:`check_output` will fail with a :" +"exc:`CalledProcessError` if the requested operation produces a non-zero " +"return code. The output is still available as the :attr:`~CalledProcessError." +"output` attribute of the raised exception." msgstr "" -#: ../../library/subprocess.rst:1342 msgid "" "In the following examples, we assume that the relevant functions have " "already been imported from the :mod:`subprocess` module." msgstr "" -#: ../../library/subprocess.rst:1347 msgid "Replacing :program:`/bin/sh` shell command substitution" msgstr "" -#: ../../library/subprocess.rst:1349 msgid "output=$(mycmd myarg)" msgstr "" -#: ../../library/subprocess.rst:1353 ../../library/subprocess.rst:1364 -#: ../../library/subprocess.rst:1381 msgid "becomes::" msgstr "" -#: ../../library/subprocess.rst:1355 msgid "output = check_output([\"mycmd\", \"myarg\"])" msgstr "" -#: ../../library/subprocess.rst:1358 msgid "Replacing shell pipeline" msgstr "" -#: ../../library/subprocess.rst:1360 ../../library/subprocess.rst:1377 msgid "output=$(dmesg | grep hda)" msgstr "" -#: ../../library/subprocess.rst:1366 msgid "" "p1 = Popen([\"dmesg\"], stdout=PIPE)\n" "p2 = Popen([\"grep\", \"hda\"], stdin=p1.stdout, stdout=PIPE)\n" @@ -1678,128 +1408,105 @@ msgid "" "output = p2.communicate()[0]" msgstr "" -#: ../../library/subprocess.rst:1371 msgid "" "The ``p1.stdout.close()`` call after starting the p2 is important in order " "for p1 to receive a SIGPIPE if p2 exits before p1." msgstr "" -#: ../../library/subprocess.rst:1374 msgid "" "Alternatively, for trusted input, the shell's own pipeline support may still " "be used directly:" msgstr "" -#: ../../library/subprocess.rst:1383 msgid "output = check_output(\"dmesg | grep hda\", shell=True)" msgstr "" -#: ../../library/subprocess.rst:1387 msgid "Replacing :func:`os.system`" msgstr "" -#: ../../library/subprocess.rst:1391 msgid "" "sts = os.system(\"mycmd\" + \" myarg\")\n" "# becomes\n" "retcode = call(\"mycmd\" + \" myarg\", shell=True)" msgstr "" -#: ../../library/subprocess.rst:1395 msgid "Notes:" msgstr "" -#: ../../library/subprocess.rst:1397 msgid "Calling the program through the shell is usually not required." msgstr "" -#: ../../library/subprocess.rst:1398 msgid "" -"The :func:`call` return value is encoded differently to that " -"of :func:`os.system`." +"The :func:`call` return value is encoded differently to that of :func:`os." +"system`." msgstr "" -#: ../../library/subprocess.rst:1401 msgid "" "The :func:`os.system` function ignores SIGINT and SIGQUIT signals while the " -"command is running, but the caller must do this separately when using " -"the :mod:`subprocess` module." +"command is running, but the caller must do this separately when using the :" +"mod:`subprocess` module." msgstr "" -#: ../../library/subprocess.rst:1405 msgid "A more realistic example would look like this::" msgstr "" -#: ../../library/subprocess.rst:1407 msgid "" "try:\n" " retcode = call(\"mycmd\" + \" myarg\", shell=True)\n" " if retcode < 0:\n" -" print(\"Child was terminated by signal\", -retcode, " -"file=sys.stderr)\n" +" print(\"Child was terminated by signal\", -retcode, file=sys." +"stderr)\n" " else:\n" " print(\"Child returned\", retcode, file=sys.stderr)\n" "except OSError as e:\n" " print(\"Execution failed:\", e, file=sys.stderr)" msgstr "" -#: ../../library/subprocess.rst:1418 msgid "Replacing the :func:`os.spawn ` family" msgstr "" -#: ../../library/subprocess.rst:1420 msgid "P_NOWAIT example::" msgstr "" -#: ../../library/subprocess.rst:1422 msgid "" "pid = os.spawnlp(os.P_NOWAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\")\n" "==>\n" "pid = Popen([\"/bin/mycmd\", \"myarg\"]).pid" msgstr "" -#: ../../library/subprocess.rst:1426 msgid "P_WAIT example::" msgstr "" -#: ../../library/subprocess.rst:1428 msgid "" "retcode = os.spawnlp(os.P_WAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\")\n" "==>\n" "retcode = call([\"/bin/mycmd\", \"myarg\"])" msgstr "" -#: ../../library/subprocess.rst:1432 msgid "Vector example::" msgstr "" -#: ../../library/subprocess.rst:1434 msgid "" "os.spawnvp(os.P_NOWAIT, path, args)\n" "==>\n" "Popen([path] + args[1:])" msgstr "" -#: ../../library/subprocess.rst:1438 msgid "Environment example::" msgstr "" -#: ../../library/subprocess.rst:1440 msgid "" "os.spawnlpe(os.P_NOWAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\", env)\n" "==>\n" "Popen([\"/bin/mycmd\", \"myarg\"], env={\"PATH\": \"/usr/bin\"})" msgstr "" -#: ../../library/subprocess.rst:1447 msgid "Replacing :func:`os.popen`" msgstr "" -#: ../../library/subprocess.rst:1449 msgid "Return code handling translates as follows::" msgstr "" -#: ../../library/subprocess.rst:1451 msgid "" "pipe = os.popen(cmd, 'w')\n" "...\n" @@ -1814,11 +1521,9 @@ msgid "" " print(\"There were some errors\")" msgstr "" -#: ../../library/subprocess.rst:1465 msgid "Legacy Shell Invocation Functions" msgstr "" -#: ../../library/subprocess.rst:1467 msgid "" "This module also provides the following legacy functions from the 2.x " "``commands`` module. These operations implicitly invoke the system shell and " @@ -1826,11 +1531,9 @@ msgid "" "handling consistency are valid for these functions." msgstr "" -#: ../../library/subprocess.rst:1474 msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." msgstr "" -#: ../../library/subprocess.rst:1476 msgid "" "Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " "return a 2-tuple ``(exitcode, output)``. *encoding* and *errors* are used to " @@ -1838,13 +1541,11 @@ msgid "" "details." msgstr "" -#: ../../library/subprocess.rst:1481 msgid "" "A trailing newline is stripped from the output. The exit code for the " "command can be interpreted as the return code of subprocess. Example::" msgstr "" -#: ../../library/subprocess.rst:1485 msgid "" ">>> subprocess.getstatusoutput('ls /bin/ls')\n" "(0, '/bin/ls')\n" @@ -1856,53 +1557,43 @@ msgid "" "(-15, '')" msgstr "" -#: ../../library/subprocess.rst:1496 msgid "Windows support was added." msgstr "" -#: ../../library/subprocess.rst:1499 msgid "" "The function now returns (exitcode, output) instead of (status, output) as " -"it did in Python 3.3.3 and earlier. exitcode has the same value " -"as :attr:`~Popen.returncode`." +"it did in Python 3.3.3 and earlier. exitcode has the same value as :attr:" +"`~Popen.returncode`." msgstr "" -#: ../../library/subprocess.rst:1508 msgid "Return output (stdout and stderr) of executing *cmd* in a shell." msgstr "" -#: ../../library/subprocess.rst:1510 msgid "" "Like :func:`getstatusoutput`, except the exit code is ignored and the return " "value is a string containing the command's output. Example::" msgstr "" -#: ../../library/subprocess.rst:1513 msgid "" ">>> subprocess.getoutput('ls /bin/ls')\n" "'/bin/ls'" msgstr "" -#: ../../library/subprocess.rst:1518 msgid "Windows support added" msgstr "" -#: ../../library/subprocess.rst:1526 msgid "Notes" msgstr "" -#: ../../library/subprocess.rst:1531 msgid "Timeout Behavior" msgstr "" -#: ../../library/subprocess.rst:1533 msgid "" -"When using the ``timeout`` parameter in functions " -"like :func:`run`, :meth:`Popen.wait`, or :meth:`Popen.communicate`, users " -"should be aware of the following behaviors:" +"When using the ``timeout`` parameter in functions like :func:`run`, :meth:" +"`Popen.wait`, or :meth:`Popen.communicate`, users should be aware of the " +"following behaviors:" msgstr "" -#: ../../library/subprocess.rst:1537 msgid "" "**Process Creation Delay**: The initial process creation itself cannot be " "interrupted on many platform APIs. This means that even when specifying a " @@ -1910,7 +1601,6 @@ msgid "" "after however long process creation takes." msgstr "" -#: ../../library/subprocess.rst:1542 msgid "" "**Extremely Small Timeout Values**: Setting very small timeout values (such " "as a few milliseconds) may result in almost immediate :exc:`TimeoutExpired` " @@ -1918,42 +1608,35 @@ msgid "" "time." msgstr "" -#: ../../library/subprocess.rst:1549 msgid "Converting an argument sequence to a string on Windows" msgstr "" -#: ../../library/subprocess.rst:1551 msgid "" "On Windows, an *args* sequence is converted to a string that can be parsed " "using the following rules (which correspond to the rules used by the MS C " "runtime):" msgstr "" -#: ../../library/subprocess.rst:1555 msgid "" "Arguments are delimited by white space, which is either a space or a tab." msgstr "" -#: ../../library/subprocess.rst:1558 msgid "" "A string surrounded by double quotation marks is interpreted as a single " "argument, regardless of white space contained within. A quoted string can " "be embedded in an argument." msgstr "" -#: ../../library/subprocess.rst:1563 msgid "" "A double quotation mark preceded by a backslash is interpreted as a literal " "double quotation mark." msgstr "" -#: ../../library/subprocess.rst:1566 msgid "" "Backslashes are interpreted literally, unless they immediately precede a " "double quotation mark." msgstr "" -#: ../../library/subprocess.rst:1569 msgid "" "If backslashes immediately precede a double quotation mark, every pair of " "backslashes is interpreted as a literal backslash. If the number of " @@ -1961,30 +1644,24 @@ msgid "" "mark as described in rule 3." msgstr "" -#: ../../library/subprocess.rst:1578 msgid ":mod:`shlex`" msgstr "" -#: ../../library/subprocess.rst:1579 msgid "Module which provides function to parse and escape command lines." msgstr "" -#: ../../library/subprocess.rst:1585 msgid "Disable use of ``posix_spawn()``" msgstr "" -#: ../../library/subprocess.rst:1587 msgid "" "On Linux, :mod:`subprocess` defaults to using the ``vfork()`` system call " "internally when it is safe to do so rather than ``fork()``. This greatly " "improves performance." msgstr "" -#: ../../library/subprocess.rst:1593 msgid "subprocess._USE_POSIX_SPAWN = False # See CPython issue gh-NNNNNN." msgstr "" -#: ../../library/subprocess.rst:1595 msgid "" "It is safe to set this to false on any Python version. It will have no " "effect on older or newer versions where unsupported. Do not assume the " @@ -1992,21 +1669,17 @@ msgid "" "indicate the corresponding function will be used, only that it may be." msgstr "" -#: ../../library/subprocess.rst:1600 msgid "" "Please file issues any time you have to use these private knobs with a way " "to reproduce the issue you were seeing. Link to that issue from a comment in " "your code." msgstr "" -#: ../../library/subprocess.rst:1604 msgid "``_USE_POSIX_SPAWN``" msgstr "" -#: ../../library/subprocess.rst:296 msgid "universal newlines" msgstr "" -#: ../../library/subprocess.rst:296 msgid "subprocess module" msgstr "" diff --git a/library/sunau.po b/library/sunau.po index 12c2635..a1912ca 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sunau.rst:2 msgid ":mod:`!sunau` --- Read and write Sun AU files" msgstr "" -#: ../../library/sunau.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/sunau.rst:14 msgid "" "The last version of Python that provided the :mod:`!sunau` module was " "`Python 3.12 `_." diff --git a/library/superseded.po b/library/superseded.po index aa003af..a939cc8 100644 --- a/library/superseded.po +++ b/library/superseded.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,18 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/superseded.rst:5 msgid "Superseded Modules" msgstr "" -#: ../../library/superseded.rst:7 msgid "" "The modules described in this chapter have been superseded by other modules " "for most use cases, and are retained primarily to preserve backwards " "compatibility." msgstr "" -#: ../../library/superseded.rst:10 msgid "" "Modules may appear in this chapter because they only cover a limited subset " "of a problem space, and a more generally applicable solution is available " @@ -39,11 +36,10 @@ msgid "" "capabilities offered by :mod:`optparse` and :mod:`argparse`)." msgstr "" -#: ../../library/superseded.rst:17 msgid "" "Alternatively, modules may appear in this chapter because they are " -"deprecated outright, and awaiting removal in a future release, or they " -"are :term:`soft deprecated` and their use is actively discouraged in new " +"deprecated outright, and awaiting removal in a future release, or they are :" +"term:`soft deprecated` and their use is actively discouraged in new " "projects. With the removal of various obsolete modules through :pep:`594`, " "there are currently no modules in this latter category." msgstr "" diff --git a/library/symtable.po b/library/symtable.po index 2125a97..cc50f48 100644 --- a/library/symtable.po +++ b/library/symtable.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/symtable.rst:2 msgid ":mod:`!symtable` --- Access to the compiler's symbol tables" msgstr "" -#: ../../library/symtable.rst:7 msgid "**Source code:** :source:`Lib/symtable.py`" msgstr "" -#: ../../library/symtable.rst:15 msgid "" "Symbol tables are generated by the compiler from AST just before bytecode is " "generated. The symbol table is responsible for calculating the scope of " @@ -34,59 +31,47 @@ msgid "" "examine these tables." msgstr "" -#: ../../library/symtable.rst:22 msgid "Generating Symbol Tables" msgstr "" -#: ../../library/symtable.rst:26 msgid "" "Return the toplevel :class:`SymbolTable` for the Python source *code*. " "*filename* is the name of the file containing the code. *compile_type* is " "like the *mode* argument to :func:`compile`." msgstr "" -#: ../../library/symtable.rst:32 msgid "Examining Symbol Tables" msgstr "" -#: ../../library/symtable.rst:36 msgid "An enumeration indicating the type of a :class:`SymbolTable` object." msgstr "" -#: ../../library/symtable.rst:41 msgid "Used for the symbol table of a module." msgstr "" -#: ../../library/symtable.rst:46 msgid "Used for the symbol table of a function." msgstr "" -#: ../../library/symtable.rst:51 msgid "Used for the symbol table of a class." msgstr "" -#: ../../library/symtable.rst:53 msgid "" "The following members refer to different flavors of :ref:`annotation scopes " "`." msgstr "" -#: ../../library/symtable.rst:59 msgid "" "Used for annotations if ``from __future__ import annotations`` is active." msgstr "" -#: ../../library/symtable.rst:64 msgid "Used for the symbol table of :keyword:`type` constructions." msgstr "" -#: ../../library/symtable.rst:69 msgid "" "Used for the symbol table of :ref:`generic functions ` " "or :ref:`generic classes `." msgstr "" -#: ../../library/symtable.rst:75 msgid "" "Used for the symbol table of the bound, the constraint tuple or the default " "value of a single type variable in the formal sense, i.e., a TypeVar, a " @@ -94,141 +79,114 @@ msgid "" "a constraint tuple)." msgstr "" -#: ../../library/symtable.rst:84 msgid "A namespace table for a block. The constructor is not public." msgstr "" -#: ../../library/symtable.rst:88 msgid "" -"Return the type of the symbol table. Possible values are members of " -"the :class:`SymbolTableType` enumeration." +"Return the type of the symbol table. Possible values are members of the :" +"class:`SymbolTableType` enumeration." msgstr "" -#: ../../library/symtable.rst:91 msgid "" "Added ``'annotation'``, ``'TypeVar bound'``, ``'type alias'``, and ``'type " "parameter'`` as possible return values." msgstr "" -#: ../../library/symtable.rst:95 msgid "Return values are members of the :class:`SymbolTableType` enumeration." msgstr "" -#: ../../library/symtable.rst:98 msgid "" "The exact values of the returned string may change in the future, and thus, " "it is recommended to use :class:`SymbolTableType` members instead of hard-" "coded strings." msgstr "" -#: ../../library/symtable.rst:104 msgid "Return the table's identifier." msgstr "" -#: ../../library/symtable.rst:108 msgid "" "Return the table's name. This is the name of the class if the table is for " "a class, the name of the function if the table is for a function, or " "``'top'`` if the table is global (:meth:`get_type` returns ``'module'``). " "For type parameter scopes (which are used for generic classes, functions, " "and type aliases), it is the name of the underlying class, function, or type " -"alias. For type alias scopes, it is the name of the type alias. " -"For :class:`~typing.TypeVar` bound scopes, it is the name of the ``TypeVar``." +"alias. For type alias scopes, it is the name of the type alias. For :class:" +"`~typing.TypeVar` bound scopes, it is the name of the ``TypeVar``." msgstr "" -#: ../../library/symtable.rst:118 msgid "Return the number of the first line in the block this table represents." msgstr "" -#: ../../library/symtable.rst:122 msgid "Return ``True`` if the locals in this table can be optimized." msgstr "" -#: ../../library/symtable.rst:126 msgid "Return ``True`` if the block is a nested class or function." msgstr "" -#: ../../library/symtable.rst:130 msgid "" "Return ``True`` if the block has nested namespaces within it. These can be " "obtained with :meth:`get_children`." msgstr "" -#: ../../library/symtable.rst:135 msgid "" -"Return a view object containing the names of symbols in the table. See " -"the :ref:`documentation of view objects `." +"Return a view object containing the names of symbols in the table. See the :" +"ref:`documentation of view objects `." msgstr "" -#: ../../library/symtable.rst:140 msgid "Lookup *name* in the table and return a :class:`Symbol` instance." msgstr "" -#: ../../library/symtable.rst:144 msgid "Return a list of :class:`Symbol` instances for names in the table." msgstr "" -#: ../../library/symtable.rst:148 msgid "Return a list of the nested symbol tables." msgstr "" -#: ../../library/symtable.rst:153 msgid "" -"A namespace for a function or method. This class inherits " -"from :class:`SymbolTable`." +"A namespace for a function or method. This class inherits from :class:" +"`SymbolTable`." msgstr "" -#: ../../library/symtable.rst:158 msgid "Return a tuple containing names of parameters to this function." msgstr "" -#: ../../library/symtable.rst:162 msgid "Return a tuple containing names of locals in this function." msgstr "" -#: ../../library/symtable.rst:166 msgid "Return a tuple containing names of globals in this function." msgstr "" -#: ../../library/symtable.rst:170 msgid "" "Return a tuple containing names of explicitly declared nonlocals in this " "function." msgstr "" -#: ../../library/symtable.rst:174 msgid "" "Return a tuple containing names of :term:`free (closure) variables ` in this function." msgstr "" -#: ../../library/symtable.rst:180 msgid "A namespace of a class. This class inherits from :class:`SymbolTable`." msgstr "" -#: ../../library/symtable.rst:184 msgid "" "Return a tuple containing the names of method-like functions declared in the " "class." msgstr "" -#: ../../library/symtable.rst:187 msgid "" "Here, the term 'method' designates *any* function defined in the class body " "via :keyword:`def` or :keyword:`async def`." msgstr "" -#: ../../library/symtable.rst:190 msgid "" "Functions defined in a deeper scope (e.g., in an inner class) are not picked " "up by :meth:`get_methods`." msgstr "" -#: ../../library/symtable.rst:193 msgid "For example:" msgstr "" -#: ../../library/symtable.rst:206 msgid "" ">>> import symtable\n" ">>> st = symtable.symtable('''\n" @@ -251,76 +209,60 @@ msgid "" "('f', 'g', 'h')" msgstr "" -#: ../../library/symtable.rst:228 msgid "" "Although ``A().f()`` raises :exc:`TypeError` at runtime, ``A.f`` is still " "considered as a method-like function." msgstr "" -#: ../../library/symtable.rst:236 msgid "" "An entry in a :class:`SymbolTable` corresponding to an identifier in the " "source. The constructor is not public." msgstr "" -#: ../../library/symtable.rst:241 msgid "Return the symbol's name." msgstr "" -#: ../../library/symtable.rst:245 msgid "Return ``True`` if the symbol is used in its block." msgstr "" -#: ../../library/symtable.rst:249 msgid "Return ``True`` if the symbol is created from an import statement." msgstr "" -#: ../../library/symtable.rst:253 msgid "Return ``True`` if the symbol is a parameter." msgstr "" -#: ../../library/symtable.rst:257 msgid "Return ``True`` if the symbol is a type parameter." msgstr "" -#: ../../library/symtable.rst:263 msgid "Return ``True`` if the symbol is global." msgstr "" -#: ../../library/symtable.rst:267 msgid "Return ``True`` if the symbol is nonlocal." msgstr "" -#: ../../library/symtable.rst:271 msgid "" "Return ``True`` if the symbol is declared global with a global statement." msgstr "" -#: ../../library/symtable.rst:275 msgid "Return ``True`` if the symbol is local to its block." msgstr "" -#: ../../library/symtable.rst:279 msgid "Return ``True`` if the symbol is annotated." msgstr "" -#: ../../library/symtable.rst:285 msgid "" "Return ``True`` if the symbol is referenced in its block, but not assigned " "to." msgstr "" -#: ../../library/symtable.rst:290 msgid "" "Return *True* if a class-scoped symbol is free from the perspective of a " "method." msgstr "" -#: ../../library/symtable.rst:293 msgid "Consider the following example::" msgstr "" -#: ../../library/symtable.rst:295 msgid "" "def f():\n" " x = 1 # function-scoped\n" @@ -330,40 +272,32 @@ msgid "" " return x" msgstr "" -#: ../../library/symtable.rst:302 msgid "" "In this example, the class-scoped symbol ``x`` is considered to be free from " "the perspective of ``C.method``, thereby allowing the latter to return *1* " "at runtime and not *2*." msgstr "" -#: ../../library/symtable.rst:310 msgid "Return ``True`` if the symbol is assigned to in its block." msgstr "" -#: ../../library/symtable.rst:314 msgid "Return ``True`` if the symbol is a comprehension iteration variable." msgstr "" -#: ../../library/symtable.rst:320 msgid "Return ``True`` if the symbol is a cell in an inlined comprehension." msgstr "" -#: ../../library/symtable.rst:326 msgid "Return ``True`` if name binding introduces new namespace." msgstr "" -#: ../../library/symtable.rst:328 msgid "" "If the name is used as the target of a function or class statement, this " "will be true." msgstr "" -#: ../../library/symtable.rst:331 msgid "For example::" msgstr "" -#: ../../library/symtable.rst:333 msgid "" ">>> table = symtable.symtable(\"def some_func(): pass\", \"string\", " "\"exec\")\n" @@ -371,37 +305,30 @@ msgid "" "True" msgstr "" -#: ../../library/symtable.rst:337 msgid "" "Note that a single name can be bound to multiple objects. If the result is " "``True``, the name may also be bound to other objects, like an int or list, " "that does not introduce a new namespace." msgstr "" -#: ../../library/symtable.rst:343 msgid "Return a list of namespaces bound to this name." msgstr "" -#: ../../library/symtable.rst:347 msgid "" "Return the namespace bound to this name. If more than one or no namespace is " "bound to this name, a :exc:`ValueError` is raised." msgstr "" -#: ../../library/symtable.rst:354 msgid "Command-Line Usage" msgstr "" -#: ../../library/symtable.rst:358 msgid "" "The :mod:`symtable` module can be executed as a script from the command line." msgstr "" -#: ../../library/symtable.rst:360 msgid "python -m symtable [infile...]" msgstr "" -#: ../../library/symtable.rst:364 msgid "" "Symbol tables are generated for the specified Python source files and dumped " "to stdout. If no input file is specified, the content is read from stdin." diff --git a/library/sys.monitoring.po b/library/sys.monitoring.po index 2156b01..1916dc1 100644 --- a/library/sys.monitoring.po +++ b/library/sys.monitoring.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,51 +18,41 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sys.monitoring.rst:2 msgid ":mod:`!sys.monitoring` --- Execution event monitoring" msgstr "" -#: ../../library/sys.monitoring.rst:13 msgid "" ":mod:`sys.monitoring` is a namespace within the :mod:`sys` module, not an " "independent module, so there is no need to ``import sys.monitoring``, simply " "``import sys`` and then use ``sys.monitoring``." msgstr "" -#: ../../library/sys.monitoring.rst:19 msgid "" "This namespace provides access to the functions and constants necessary to " "activate and control event monitoring." msgstr "" -#: ../../library/sys.monitoring.rst:22 msgid "" "As programs execute, events occur that might be of interest to tools that " "monitor execution. The :mod:`sys.monitoring` namespace provides means to " "receive callbacks when events of interest occur." msgstr "" -#: ../../library/sys.monitoring.rst:26 msgid "The monitoring API consists of three components:" msgstr "" -#: ../../library/sys.monitoring.rst:28 msgid "`Tool identifiers`_" msgstr "" -#: ../../library/sys.monitoring.rst:29 msgid "`Events`_" msgstr "" -#: ../../library/sys.monitoring.rst:30 msgid ":ref:`Callbacks `" msgstr "" -#: ../../library/sys.monitoring.rst:33 msgid "Tool identifiers" msgstr "" -#: ../../library/sys.monitoring.rst:35 msgid "" "A tool identifier is an integer and the associated name. Tool identifiers " "are used to discourage tools from interfering with each other and to allow " @@ -71,45 +61,37 @@ msgid "" "be lifted in the future." msgstr "" -#: ../../library/sys.monitoring.rst:41 msgid "" "Before registering or activating events, a tool should choose an identifier. " "Identifiers are integers in the range 0 to 5 inclusive." msgstr "" -#: ../../library/sys.monitoring.rst:45 msgid "Registering and using tools" msgstr "" -#: ../../library/sys.monitoring.rst:49 msgid "" "Must be called before *tool_id* can be used. *tool_id* must be in the range " "0 to 5 inclusive. Raises a :exc:`ValueError` if *tool_id* is in use." msgstr "" -#: ../../library/sys.monitoring.rst:55 msgid "Unregister all events and callback functions associated with *tool_id*." msgstr "" -#: ../../library/sys.monitoring.rst:59 msgid "" -"Should be called once a tool no longer requires *tool_id*. Will " -"call :func:`clear_tool_id` before releasing *tool_id*." +"Should be called once a tool no longer requires *tool_id*. Will call :func:" +"`clear_tool_id` before releasing *tool_id*." msgstr "" -#: ../../library/sys.monitoring.rst:64 msgid "" "Returns the name of the tool if *tool_id* is in use, otherwise it returns " "``None``. *tool_id* must be in the range 0 to 5 inclusive." msgstr "" -#: ../../library/sys.monitoring.rst:68 msgid "" "All IDs are treated the same by the VM with regard to events, but the " "following IDs are pre-defined to make co-operation of tools easier::" msgstr "" -#: ../../library/sys.monitoring.rst:71 msgid "" "sys.monitoring.DEBUGGER_ID = 0\n" "sys.monitoring.COVERAGE_ID = 1\n" @@ -117,121 +99,98 @@ msgid "" "sys.monitoring.OPTIMIZER_ID = 5" msgstr "" -#: ../../library/sys.monitoring.rst:78 msgid "Events" msgstr "" -#: ../../library/sys.monitoring.rst:80 msgid "The following events are supported:" msgstr "" -#: ../../library/sys.monitoring.rst:84 msgid "A conditional branch goes left." msgstr "" -#: ../../library/sys.monitoring.rst:86 msgid "" "It is up to the tool to determine how to present \"left\" and \"right\" " "branches. There is no guarantee which branch is \"left\" and which is " "\"right\", except that it will be consistent for the duration of the program." msgstr "" -#: ../../library/sys.monitoring.rst:92 msgid "A conditional branch goes right." msgstr "" -#: ../../library/sys.monitoring.rst:96 msgid "A call in Python code (event occurs before the call)." msgstr "" -#: ../../library/sys.monitoring.rst:100 msgid "" "An exception raised from any callable, except for Python functions (event " "occurs after the exit)." msgstr "" -#: ../../library/sys.monitoring.rst:104 msgid "" "Return from any callable, except for Python functions (event occurs after " "the return)." msgstr "" -#: ../../library/sys.monitoring.rst:108 msgid "An exception is handled." msgstr "" -#: ../../library/sys.monitoring.rst:112 msgid "A VM instruction is about to be executed." msgstr "" -#: ../../library/sys.monitoring.rst:116 msgid "An unconditional jump in the control flow graph is made." msgstr "" -#: ../../library/sys.monitoring.rst:120 msgid "" "An instruction is about to be executed that has a different line number from " "the preceding instruction." msgstr "" -#: ../../library/sys.monitoring.rst:124 msgid "" "Resumption of a Python function (for generator and coroutine functions), " "except for ``throw()`` calls." msgstr "" -#: ../../library/sys.monitoring.rst:128 msgid "" "Return from a Python function (occurs immediately before the return, the " "callee's frame will be on the stack)." msgstr "" -#: ../../library/sys.monitoring.rst:132 msgid "" "Start of a Python function (occurs immediately after the call, the callee's " "frame will be on the stack)" msgstr "" -#: ../../library/sys.monitoring.rst:136 msgid "A Python function is resumed by a ``throw()`` call." msgstr "" -#: ../../library/sys.monitoring.rst:140 msgid "" "Exit from a Python function during exception unwinding. This includes " "exceptions raised directly within the function and that are allowed to " "continue to propagate." msgstr "" -#: ../../library/sys.monitoring.rst:145 msgid "" "Yield from a Python function (occurs immediately before the yield, the " "callee's frame will be on the stack)." msgstr "" -#: ../../library/sys.monitoring.rst:149 msgid "" -"An exception is raised, except those that cause a :monitoring-" -"event:`STOP_ITERATION` event." +"An exception is raised, except those that cause a :monitoring-event:" +"`STOP_ITERATION` event." msgstr "" -#: ../../library/sys.monitoring.rst:153 msgid "" "An exception is re-raised, for example at the end of a :keyword:`finally` " "block." msgstr "" -#: ../../library/sys.monitoring.rst:157 msgid "" "An artificial :exc:`StopIteration` is raised; see `the STOP_ITERATION " "event`_." msgstr "" -#: ../../library/sys.monitoring.rst:160 msgid "More events may be added in the future." msgstr "" -#: ../../library/sys.monitoring.rst:162 msgid "" "These events are attributes of the :mod:`!sys.monitoring.events` namespace. " "Each event is represented as a power-of-2 integer constant. To define a set " @@ -240,160 +199,126 @@ msgid "" "events, use the expression ``PY_RETURN | PY_START``." msgstr "" -#: ../../library/sys.monitoring.rst:170 msgid "An alias for ``0`` so users can do explicit comparisons like::" msgstr "" -#: ../../library/sys.monitoring.rst:172 msgid "" "if get_events(DEBUGGER_ID) == NO_EVENTS:\n" " ..." msgstr "" -#: ../../library/sys.monitoring.rst:175 msgid "Setting this event deactivates all events." msgstr "" -#: ../../library/sys.monitoring.rst:180 msgid "Local events" msgstr "" -#: ../../library/sys.monitoring.rst:182 msgid "" "Local events are associated with normal execution of the program and happen " "at clearly defined locations. All local events can be disabled. The local " "events are:" msgstr "" -#: ../../library/sys.monitoring.rst:186 msgid ":monitoring-event:`PY_START`" msgstr "" -#: ../../library/sys.monitoring.rst:187 msgid ":monitoring-event:`PY_RESUME`" msgstr "" -#: ../../library/sys.monitoring.rst:188 msgid ":monitoring-event:`PY_RETURN`" msgstr "" -#: ../../library/sys.monitoring.rst:189 msgid ":monitoring-event:`PY_YIELD`" msgstr "" -#: ../../library/sys.monitoring.rst:190 msgid ":monitoring-event:`CALL`" msgstr "" -#: ../../library/sys.monitoring.rst:191 msgid ":monitoring-event:`LINE`" msgstr "" -#: ../../library/sys.monitoring.rst:192 msgid ":monitoring-event:`INSTRUCTION`" msgstr "" -#: ../../library/sys.monitoring.rst:193 msgid ":monitoring-event:`JUMP`" msgstr "" -#: ../../library/sys.monitoring.rst:194 msgid ":monitoring-event:`BRANCH_LEFT`" msgstr "" -#: ../../library/sys.monitoring.rst:195 msgid ":monitoring-event:`BRANCH_RIGHT`" msgstr "" -#: ../../library/sys.monitoring.rst:196 msgid ":monitoring-event:`STOP_ITERATION`" msgstr "" -#: ../../library/sys.monitoring.rst:199 msgid "Deprecated event" msgstr "" -#: ../../library/sys.monitoring.rst:201 msgid "``BRANCH``" msgstr "" -#: ../../library/sys.monitoring.rst:203 msgid "" -"The ``BRANCH`` event is deprecated in 3.14. Using :monitoring-" -"event:`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events will give " -"much better performance as they can be disabled independently." +"The ``BRANCH`` event is deprecated in 3.14. Using :monitoring-event:" +"`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events will give much " +"better performance as they can be disabled independently." msgstr "" -#: ../../library/sys.monitoring.rst:209 msgid "Ancillary events" msgstr "" -#: ../../library/sys.monitoring.rst:211 msgid "" "Ancillary events can be monitored like other events, but are controlled by " "another event:" msgstr "" -#: ../../library/sys.monitoring.rst:214 msgid ":monitoring-event:`C_RAISE`" msgstr "" -#: ../../library/sys.monitoring.rst:215 msgid ":monitoring-event:`C_RETURN`" msgstr "" -#: ../../library/sys.monitoring.rst:217 msgid "" "The :monitoring-event:`C_RETURN` and :monitoring-event:`C_RAISE` events are " -"controlled by the :monitoring-event:`CALL` event. :monitoring-" -"event:`C_RETURN` and :monitoring-event:`C_RAISE` events will only be seen if " -"the corresponding :monitoring-event:`CALL` event is being monitored." +"controlled by the :monitoring-event:`CALL` event. :monitoring-event:" +"`C_RETURN` and :monitoring-event:`C_RAISE` events will only be seen if the " +"corresponding :monitoring-event:`CALL` event is being monitored." msgstr "" -#: ../../library/sys.monitoring.rst:223 msgid "Other events" msgstr "" -#: ../../library/sys.monitoring.rst:225 msgid "" "Other events are not necessarily tied to a specific location in the program " "and cannot be individually disabled." msgstr "" -#: ../../library/sys.monitoring.rst:228 msgid "The other events that can be monitored are:" msgstr "" -#: ../../library/sys.monitoring.rst:230 msgid ":monitoring-event:`PY_THROW`" msgstr "" -#: ../../library/sys.monitoring.rst:231 msgid ":monitoring-event:`PY_UNWIND`" msgstr "" -#: ../../library/sys.monitoring.rst:232 msgid ":monitoring-event:`RAISE`" msgstr "" -#: ../../library/sys.monitoring.rst:233 msgid ":monitoring-event:`EXCEPTION_HANDLED`" msgstr "" -#: ../../library/sys.monitoring.rst:237 msgid "The STOP_ITERATION event" msgstr "" -#: ../../library/sys.monitoring.rst:239 msgid "" -":pep:`PEP 380 <380#use-of-stopiteration-to-return-values>` specifies that " -"a :exc:`StopIteration` exception is raised when returning a value from a " +":pep:`PEP 380 <380#use-of-stopiteration-to-return-values>` specifies that a :" +"exc:`StopIteration` exception is raised when returning a value from a " "generator or coroutine. However, this is a very inefficient way to return a " "value, so some Python implementations, notably CPython 3.12+, do not raise " "an exception unless it would be visible to other code." msgstr "" -#: ../../library/sys.monitoring.rst:245 msgid "" "To allow tools to monitor for real exceptions without slowing down " "generators and coroutines, the :monitoring-event:`STOP_ITERATION` event is " @@ -401,7 +326,6 @@ msgid "" "unlike :monitoring-event:`RAISE`." msgstr "" -#: ../../library/sys.monitoring.rst:250 msgid "" "Note that the :monitoring-event:`STOP_ITERATION` event and the :monitoring-" "event:`RAISE` event for a :exc:`StopIteration` exception are equivalent, and " @@ -410,11 +334,9 @@ msgid "" "generate a :monitoring-event:`RAISE` event with a :exc:`StopIteration`." msgstr "" -#: ../../library/sys.monitoring.rst:258 msgid "Turning events on and off" msgstr "" -#: ../../library/sys.monitoring.rst:260 msgid "" "In order to monitor an event, it must be turned on and a corresponding " "callback must be registered. Events can be turned on or off by setting the " @@ -422,35 +344,28 @@ msgid "" "trigger only once, even if it is turned on both globally and locally." msgstr "" -#: ../../library/sys.monitoring.rst:267 msgid "Setting events globally" msgstr "" -#: ../../library/sys.monitoring.rst:269 msgid "" "Events can be controlled globally by modifying the set of events being " "monitored." msgstr "" -#: ../../library/sys.monitoring.rst:273 msgid "Returns the ``int`` representing all the active events." msgstr "" -#: ../../library/sys.monitoring.rst:277 msgid "" -"Activates all events which are set in *event_set*. Raises " -"a :exc:`ValueError` if *tool_id* is not in use." +"Activates all events which are set in *event_set*. Raises a :exc:" +"`ValueError` if *tool_id* is not in use." msgstr "" -#: ../../library/sys.monitoring.rst:280 msgid "No events are active by default." msgstr "" -#: ../../library/sys.monitoring.rst:283 msgid "Per code object events" msgstr "" -#: ../../library/sys.monitoring.rst:285 msgid "" "Events can also be controlled on a per code object basis. The functions " "defined below which accept a :class:`types.CodeType` should be prepared to " @@ -458,35 +373,28 @@ msgid "" "(see :ref:`c-api-monitoring`)." msgstr "" -#: ../../library/sys.monitoring.rst:292 msgid "Returns all the local events for *code*" msgstr "" -#: ../../library/sys.monitoring.rst:296 msgid "" "Activates all the local events for *code* which are set in *event_set*. " "Raises a :exc:`ValueError` if *tool_id* is not in use." msgstr "" -#: ../../library/sys.monitoring.rst:301 msgid "Disabling events" msgstr "" -#: ../../library/sys.monitoring.rst:305 msgid "" "A special value that can be returned from a callback function to disable " "events for the current code location." msgstr "" -#: ../../library/sys.monitoring.rst:308 msgid "" -"Local events can be disabled for a specific code location by " -"returning :data:`sys.monitoring.DISABLE` from a callback function. This does " -"not change which events are set, or any other code locations for the same " -"event." +"Local events can be disabled for a specific code location by returning :data:" +"`sys.monitoring.DISABLE` from a callback function. This does not change " +"which events are set, or any other code locations for the same event." msgstr "" -#: ../../library/sys.monitoring.rst:312 msgid "" "Disabling events for specific locations is very important for high " "performance monitoring. For example, a program can be run under a debugger " @@ -494,44 +402,36 @@ msgid "" "breakpoints." msgstr "" -#: ../../library/sys.monitoring.rst:319 msgid "" "Enable all the events that were disabled by :data:`sys.monitoring.DISABLE` " "for all tools." msgstr "" -#: ../../library/sys.monitoring.rst:326 msgid "Registering callback functions" msgstr "" -#: ../../library/sys.monitoring.rst:330 msgid "Registers the callable *func* for the *event* with the given *tool_id*" msgstr "" -#: ../../library/sys.monitoring.rst:332 msgid "" "If another callback was registered for the given *tool_id* and *event*, it " "is unregistered and returned. Otherwise :func:`register_callback` returns " "``None``." msgstr "" -#: ../../library/sys.monitoring.rst:336 msgid "" -"Raises an :ref:`auditing event ` " -"``sys.monitoring.register_callback`` with argument ``func``." +"Raises an :ref:`auditing event ` ``sys.monitoring." +"register_callback`` with argument ``func``." msgstr "" -#: ../../library/sys.monitoring.rst:338 msgid "" -"Functions can be unregistered by calling " -"``sys.monitoring.register_callback(tool_id, event, None)``." +"Functions can be unregistered by calling ``sys.monitoring." +"register_callback(tool_id, event, None)``." msgstr "" -#: ../../library/sys.monitoring.rst:341 msgid "Callback functions can be registered and unregistered at any time." msgstr "" -#: ../../library/sys.monitoring.rst:343 msgid "" "Callbacks are called only once regardless if the event is turned on both " "globally and locally. As such, if an event could be turned on for both " @@ -539,17 +439,14 @@ msgid "" "to handle either trigger." msgstr "" -#: ../../library/sys.monitoring.rst:350 msgid "Callback function arguments" msgstr "" -#: ../../library/sys.monitoring.rst:354 msgid "" "A special value that is passed to a callback function to indicate that there " "are no arguments to the call." msgstr "" -#: ../../library/sys.monitoring.rst:357 msgid "" "When an active event occurs, the registered callback function is called. " "Callback functions returning an object other than :data:`DISABLE` will have " @@ -557,86 +454,70 @@ msgid "" "different arguments, as follows:" msgstr "" -#: ../../library/sys.monitoring.rst:361 msgid ":monitoring-event:`PY_START` and :monitoring-event:`PY_RESUME`::" msgstr "" -#: ../../library/sys.monitoring.rst:363 ../../library/sys.monitoring.rst:400 msgid "func(code: CodeType, instruction_offset: int) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:365 msgid ":monitoring-event:`PY_RETURN` and :monitoring-event:`PY_YIELD`::" msgstr "" -#: ../../library/sys.monitoring.rst:367 msgid "func(code: CodeType, instruction_offset: int, retval: object) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:369 msgid "" -":monitoring-event:`CALL`, :monitoring-event:`C_RAISE` and :monitoring-" -"event:`C_RETURN` (*arg0* can be :data:`MISSING` specifically)::" +":monitoring-event:`CALL`, :monitoring-event:`C_RAISE` and :monitoring-event:" +"`C_RETURN` (*arg0* can be :data:`MISSING` specifically)::" msgstr "" -#: ../../library/sys.monitoring.rst:372 msgid "" "func(code: CodeType, instruction_offset: int, callable: object, arg0: " "object) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:374 msgid "" "*code* represents the code object where the call is being made, while " "*callable* is the object that is about to be called (and thus triggered the " -"event). If there are no arguments, *arg0* is set " -"to :data:`sys.monitoring.MISSING`." +"event). If there are no arguments, *arg0* is set to :data:`sys.monitoring." +"MISSING`." msgstr "" -#: ../../library/sys.monitoring.rst:379 msgid "" "For instance methods, *callable* will be the function object as found on the " "class with *arg0* set to the instance (i.e. the ``self`` argument to the " "method)." msgstr "" -#: ../../library/sys.monitoring.rst:383 msgid "" -":monitoring-event:`RAISE`, :monitoring-event:`RERAISE`, :monitoring-" -"event:`EXCEPTION_HANDLED`, :monitoring-event:`PY_UNWIND`, :monitoring-" -"event:`PY_THROW` and :monitoring-event:`STOP_ITERATION`::" +":monitoring-event:`RAISE`, :monitoring-event:`RERAISE`, :monitoring-event:" +"`EXCEPTION_HANDLED`, :monitoring-event:`PY_UNWIND`, :monitoring-event:" +"`PY_THROW` and :monitoring-event:`STOP_ITERATION`::" msgstr "" -#: ../../library/sys.monitoring.rst:386 msgid "" "func(code: CodeType, instruction_offset: int, exception: BaseException) -> " "object" msgstr "" -#: ../../library/sys.monitoring.rst:388 msgid ":monitoring-event:`LINE`::" msgstr "" -#: ../../library/sys.monitoring.rst:390 msgid "func(code: CodeType, line_number: int) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:392 msgid "" -":monitoring-event:`BRANCH_LEFT`, :monitoring-event:`BRANCH_RIGHT` " -"and :monitoring-event:`JUMP`::" +":monitoring-event:`BRANCH_LEFT`, :monitoring-event:`BRANCH_RIGHT` and :" +"monitoring-event:`JUMP`::" msgstr "" -#: ../../library/sys.monitoring.rst:394 msgid "" "func(code: CodeType, instruction_offset: int, destination_offset: int) -> " "object" msgstr "" -#: ../../library/sys.monitoring.rst:396 msgid "Note that the *destination_offset* is where the code will next execute." msgstr "" -#: ../../library/sys.monitoring.rst:398 msgid ":monitoring-event:`INSTRUCTION`::" msgstr "" diff --git a/library/sys.po b/library/sys.po index ff9c76b..3589d64 100644 --- a/library/sys.po +++ b/library/sys.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sys.rst:2 msgid ":mod:`!sys` --- System-specific parameters and functions" msgstr "" -#: ../../library/sys.rst:9 msgid "" "This module provides access to some variables used or maintained by the " "interpreter and to functions that interact strongly with the interpreter. It " @@ -34,34 +32,24 @@ msgid "" "read-only." msgstr "" -#: ../../library/sys.rst:16 msgid "" "On POSIX systems where Python was built with the standard ``configure`` " "script, this contains the ABI flags as specified by :pep:`3149`." msgstr "" -#: ../../library/sys.rst:21 msgid "" "Default flags became an empty string (``m`` flag for pymalloc has been " "removed)." msgstr "" -#: ../../library/sys.rst:25 ../../library/sys.rst:298 ../../library/sys.rst:368 -#: ../../library/sys.rst:789 ../../library/sys.rst:807 -#: ../../library/sys.rst:1056 ../../library/sys.rst:1662 -#: ../../library/sys.rst:1905 ../../library/sys.rst:1920 -#: ../../library/sys.rst:1928 ../../library/sys.rst:1966 -#: ../../library/sys.rst:1982 ../../library/sys.rst:2229 msgid "Availability" msgstr "" -#: ../../library/sys.rst:30 msgid "" "Append the callable *hook* to the list of active auditing hooks for the " "current (sub)interpreter." msgstr "" -#: ../../library/sys.rst:33 msgid "" "When an auditing event is raised through the :func:`sys.audit` function, " "each hook will be called in the order it was added with the event name and " @@ -71,7 +59,6 @@ msgid "" "terminate the process entirely." msgstr "" -#: ../../library/sys.rst:40 msgid "" "Note that audit hooks are primarily for collecting information about " "internal or otherwise unobservable actions, whether by Python or libraries " @@ -79,11 +66,10 @@ msgid "" "particular, malicious code can trivially disable or bypass hooks added using " "this function. At a minimum, any security-sensitive hooks must be added " "using the C API :c:func:`PySys_AddAuditHook` before initialising the " -"runtime, and any modules allowing arbitrary memory modification (such " -"as :mod:`ctypes`) should be completely removed or closely monitored." +"runtime, and any modules allowing arbitrary memory modification (such as :" +"mod:`ctypes`) should be completely removed or closely monitored." msgstr "" -#: ../../library/sys.rst:49 ../../library/sys.rst:51 msgid "" "Calling :func:`sys.addaudithook` will itself raise an auditing event named " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -92,26 +78,22 @@ msgid "" "hook has been added unless they control all existing hooks." msgstr "" -#: ../../library/sys.rst:58 msgid "" "See the :ref:`audit events table ` for all events raised by " "CPython, and :pep:`578` for the original design discussion." msgstr "" -#: ../../library/sys.rst:65 msgid "" "Exceptions derived from :class:`Exception` but not :class:`RuntimeError` are " "no longer suppressed." msgstr "" -#: ../../library/sys.rst:70 msgid "" "When tracing is enabled (see :func:`settrace`), Python hooks are only traced " "if the callable has a ``__cantrace__`` member that is set to a true value. " "Otherwise, trace functions will skip the hook." msgstr "" -#: ../../library/sys.rst:77 msgid "" "The list of command line arguments passed to a Python script. ``argv[0]`` is " "the script name (it is operating system dependent whether this is a full " @@ -121,17 +103,14 @@ msgid "" "is the empty string." msgstr "" -#: ../../library/sys.rst:83 msgid "" "To loop over the standard input, or the list of files given on the command " "line, see the :mod:`fileinput` module." msgstr "" -#: ../../library/sys.rst:86 msgid "See also :data:`sys.orig_argv`." msgstr "" -#: ../../library/sys.rst:89 msgid "" "On Unix, command line arguments are passed by bytes from OS. Python decodes " "them with filesystem encoding and \"surrogateescape\" error handler. When " @@ -139,7 +118,6 @@ msgid "" "sys.argv]``." msgstr "" -#: ../../library/sys.rst:101 msgid "" "Raise an auditing event and trigger any active auditing hooks. *event* is a " "string identifying the event, and *args* may contain optional arguments with " @@ -148,13 +126,11 @@ msgid "" "modified between releases." msgstr "" -#: ../../library/sys.rst:107 msgid "" "For example, one auditing event is named ``os.chdir``. This event has one " "argument called *path* that will contain the requested new working directory." msgstr "" -#: ../../library/sys.rst:111 msgid "" ":func:`sys.audit` will call the existing auditing hooks, passing the event " "name and arguments, and will re-raise the first exception from any hook. In " @@ -164,45 +140,38 @@ msgid "" "merely log the event or abort the operation by raising an exception." msgstr "" -#: ../../library/sys.rst:119 msgid "" -"Hooks are added using the :func:`sys.addaudithook` " -"or :c:func:`PySys_AddAuditHook` functions." +"Hooks are added using the :func:`sys.addaudithook` or :c:func:" +"`PySys_AddAuditHook` functions." msgstr "" -#: ../../library/sys.rst:122 msgid "" "The native equivalent of this function is :c:func:`PySys_Audit`. Using the " "native function is preferred when possible." msgstr "" -#: ../../library/sys.rst:125 msgid "" "See the :ref:`audit events table ` for all events raised by " "CPython." msgstr "" -#: ../../library/sys.rst:133 msgid "" "Equivalent to :data:`exec_prefix`, but referring to the base Python " "installation." msgstr "" -#: ../../library/sys.rst:135 msgid "" -"When running under :ref:`sys-path-init-virtual-" -"environments`, :data:`exec_prefix` gets overwritten to the virtual " -"environment prefix. :data:`base_exec_prefix`, conversely, does not change, " -"and always points to the base Python installation. Refer to :ref:`sys-path-" -"init-virtual-environments` for more information." +"When running under :ref:`sys-path-init-virtual-environments`, :data:" +"`exec_prefix` gets overwritten to the virtual environment prefix. :data:" +"`base_exec_prefix`, conversely, does not change, and always points to the " +"base Python installation. Refer to :ref:`sys-path-init-virtual-environments` " +"for more information." msgstr "" -#: ../../library/sys.rst:146 msgid "" "Equivalent to :data:`prefix`, but referring to the base Python installation." msgstr "" -#: ../../library/sys.rst:148 msgid "" "When running under :ref:`virtual environment `, :data:`prefix` " "gets overwritten to the virtual environment prefix. :data:`base_prefix`, " @@ -211,67 +180,54 @@ msgid "" "information." msgstr "" -#: ../../library/sys.rst:159 msgid "" "An indicator of the native byte order. This will have the value ``'big'`` " "on big-endian (most-significant byte first) platforms, and ``'little'`` on " "little-endian (least-significant byte first) platforms." msgstr "" -#: ../../library/sys.rst:166 msgid "" "A tuple of strings containing the names of all modules that are compiled " "into this Python interpreter. (This information is not available in any " "other way --- ``modules.keys()`` only lists the imported modules.)" msgstr "" -#: ../../library/sys.rst:170 msgid "See also the :data:`sys.stdlib_module_names` list." msgstr "" -#: ../../library/sys.rst:175 msgid "" "Call ``func(*args)``, while tracing is enabled. The tracing state is saved, " "and restored afterwards. This is intended to be called from a debugger from " "a checkpoint, to recursively debug or profile some other code." msgstr "" -#: ../../library/sys.rst:179 msgid "" -"Tracing is suspended while calling a tracing function set " -"by :func:`settrace` or :func:`setprofile` to avoid infinite " -"recursion. :func:`!call_tracing` enables explicit recursion of the tracing " -"function." +"Tracing is suspended while calling a tracing function set by :func:" +"`settrace` or :func:`setprofile` to avoid infinite recursion. :func:`!" +"call_tracing` enables explicit recursion of the tracing function." msgstr "" -#: ../../library/sys.rst:186 msgid "A string containing the copyright pertaining to the Python interpreter." msgstr "" -#: ../../library/sys.rst:191 msgid "" "Clear the internal type cache. The type cache is used to speed up attribute " "and method lookups. Use the function *only* to drop unnecessary references " "during reference leak debugging." msgstr "" -#: ../../library/sys.rst:195 ../../library/sys.rst:222 -#: ../../library/sys.rst:235 msgid "" "This function should be used for internal and specialized purposes only." msgstr "" -#: ../../library/sys.rst:197 msgid "Use the more general :func:`_clear_internal_caches` function instead." msgstr "" -#: ../../library/sys.rst:203 msgid "" "Clear all internal performance-related caches. Use this function *only* to " "release unnecessary references and memory blocks when hunting for leaks." msgstr "" -#: ../../library/sys.rst:211 msgid "" "Return a dictionary mapping each thread's identifier to the topmost stack " "frame currently active in that thread at the time the function is called. " @@ -279,7 +235,6 @@ msgid "" "given such a frame." msgstr "" -#: ../../library/sys.rst:216 msgid "" "This is most useful for debugging deadlock: this function does not require " "the deadlocked threads' cooperation, and such threads' call stacks are " @@ -288,13 +243,11 @@ msgid "" "by the time calling code examines the frame." msgstr "" -#: ../../library/sys.rst:224 msgid "" "Raises an :ref:`auditing event ` ``sys._current_frames`` with no " "arguments." msgstr "" -#: ../../library/sys.rst:228 msgid "" "Return a dictionary mapping each thread's identifier to the topmost " "exception currently active in that thread at the time the function is " @@ -302,30 +255,25 @@ msgid "" "included in the result dictionary." msgstr "" -#: ../../library/sys.rst:233 msgid "This is most useful for statistical profiling." msgstr "" -#: ../../library/sys.rst:237 msgid "" "Raises an :ref:`auditing event ` ``sys._current_exceptions`` with " "no arguments." msgstr "" -#: ../../library/sys.rst:239 msgid "" "Each value in the dictionary is now a single exception instance, rather than " "a 3-tuple as returned from ``sys.exc_info()``." msgstr "" -#: ../../library/sys.rst:245 msgid "" "This hook function is called by built-in :func:`breakpoint`. By default, it " "drops you into the :mod:`pdb` debugger, but it can be set to any other " "function so that you can choose which debugger gets used." msgstr "" -#: ../../library/sys.rst:249 msgid "" "The signature of this function is dependent on what it calls. For example, " "the default binding (e.g. ``pdb.set_trace()``) expects no arguments, but you " @@ -335,79 +283,67 @@ msgid "" "returns is returned from ``breakpoint()``." msgstr "" -#: ../../library/sys.rst:256 msgid "" -"The default implementation first consults the environment " -"variable :envvar:`PYTHONBREAKPOINT`. If that is set to ``\"0\"`` then this " -"function returns immediately; i.e. it is a no-op. If the environment " -"variable is not set, or is set to the empty string, ``pdb.set_trace()`` is " -"called. Otherwise this variable should name a function to run, using " -"Python's dotted-import nomenclature, e.g. " -"``package.subpackage.module.function``. In this case, " +"The default implementation first consults the environment variable :envvar:" +"`PYTHONBREAKPOINT`. If that is set to ``\"0\"`` then this function returns " +"immediately; i.e. it is a no-op. If the environment variable is not set, or " +"is set to the empty string, ``pdb.set_trace()`` is called. Otherwise this " +"variable should name a function to run, using Python's dotted-import " +"nomenclature, e.g. ``package.subpackage.module.function``. In this case, " "``package.subpackage.module`` would be imported and the resulting module " "must have a callable named ``function()``. This is run, passing in " -"``*args`` and ``**kws``, and whatever ``function()`` returns, " -"``sys.breakpointhook()`` returns to the built-in :func:`breakpoint` function." +"``*args`` and ``**kws``, and whatever ``function()`` returns, ``sys." +"breakpointhook()`` returns to the built-in :func:`breakpoint` function." msgstr "" -#: ../../library/sys.rst:268 msgid "" -"Note that if anything goes wrong while importing the callable named " -"by :envvar:`PYTHONBREAKPOINT`, a :exc:`RuntimeWarning` is reported and the " +"Note that if anything goes wrong while importing the callable named by :" +"envvar:`PYTHONBREAKPOINT`, a :exc:`RuntimeWarning` is reported and the " "breakpoint is ignored." msgstr "" -#: ../../library/sys.rst:272 msgid "" -"Also note that if ``sys.breakpointhook()`` is overridden " -"programmatically, :envvar:`PYTHONBREAKPOINT` is *not* consulted." +"Also note that if ``sys.breakpointhook()`` is overridden programmatically, :" +"envvar:`PYTHONBREAKPOINT` is *not* consulted." msgstr "" -#: ../../library/sys.rst:279 msgid "" "Print low-level information to stderr about the state of CPython's memory " "allocator." msgstr "" -#: ../../library/sys.rst:282 msgid "" "If Python is :ref:`built in debug mode ` (:option:`configure --" "with-pydebug option <--with-pydebug>`), it also performs some expensive " "internal consistency checks." msgstr "" -#: ../../library/sys.rst:290 msgid "" "This function is specific to CPython. The exact output format is not " "defined here, and may change." msgstr "" -#: ../../library/sys.rst:296 msgid "Integer specifying the handle of the Python DLL." msgstr "" -#: ../../library/sys.rst:303 msgid "" -"If *value* is not ``None``, this function prints ``repr(value)`` to " -"``sys.stdout``, and saves *value* in ``builtins._``. If ``repr(value)`` is " -"not encodable to ``sys.stdout.encoding`` with ``sys.stdout.errors`` error " -"handler (which is probably ``'strict'``), encode it to " -"``sys.stdout.encoding`` with ``'backslashreplace'`` error handler." +"If *value* is not ``None``, this function prints ``repr(value)`` to ``sys." +"stdout``, and saves *value* in ``builtins._``. If ``repr(value)`` is not " +"encodable to ``sys.stdout.encoding`` with ``sys.stdout.errors`` error " +"handler (which is probably ``'strict'``), encode it to ``sys.stdout." +"encoding`` with ``'backslashreplace'`` error handler." msgstr "" -#: ../../library/sys.rst:309 msgid "" -"``sys.displayhook`` is called on the result of evaluating " -"an :term:`expression` entered in an interactive Python session. The display " -"of these values can be customized by assigning another one-argument function " -"to ``sys.displayhook``." +"``sys.displayhook`` is called on the result of evaluating an :term:" +"`expression` entered in an interactive Python session. The display of these " +"values can be customized by assigning another one-argument function to ``sys." +"displayhook``." msgstr "" -#: ../../library/sys.rst:313 msgid "Pseudo-code::" msgstr "" -#: ../../library/sys.rst:315 msgid "" "def displayhook(value):\n" " if value is None:\n" @@ -428,47 +364,39 @@ msgid "" " builtins._ = value" msgstr "" -#: ../../library/sys.rst:333 msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." msgstr "" -#: ../../library/sys.rst:339 msgid "" "If this is true, Python won't try to write ``.pyc`` files on the import of " "source modules. This value is initially set to ``True`` or ``False`` " -"depending on the :option:`-B` command line option and " -"the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable, but you can set " -"it yourself to control bytecode file generation." +"depending on the :option:`-B` command line option and the :envvar:" +"`PYTHONDONTWRITEBYTECODE` environment variable, but you can set it yourself " +"to control bytecode file generation." msgstr "" -#: ../../library/sys.rst:348 msgid "" "A :term:`named tuple` holding information about the environment on the " "*wasm32-emscripten* platform. The named tuple is provisional and may change " "in the future." msgstr "" -#: ../../library/sys.rst:354 msgid "" "Emscripten version as tuple of ints (major, minor, micro), e.g. ``(3, 1, " "8)``." msgstr "" -#: ../../library/sys.rst:358 msgid "" "Runtime string, e.g. browser user agent, ``'Node.js v14.18.2'``, or " "``'UNKNOWN'``." msgstr "" -#: ../../library/sys.rst:362 msgid "``True`` if Python is compiled with Emscripten pthreads support." msgstr "" -#: ../../library/sys.rst:366 msgid "``True`` if Python is compiled with shared memory support." msgstr "" -#: ../../library/sys.rst:375 msgid "" "If this is set (not ``None``), Python will write bytecode-cache ``.pyc`` " "files to (and read them from) a parallel directory tree rooted at this " @@ -479,25 +407,21 @@ msgid "" "with the same pycache prefix (if any) that you will use at runtime." msgstr "" -#: ../../library/sys.rst:383 msgid "" "A relative path is interpreted relative to the current working directory." msgstr "" -#: ../../library/sys.rst:385 msgid "" "This value is initially set based on the value of the :option:`-X` " -"``pycache_prefix=PATH`` command-line option or " -"the :envvar:`PYTHONPYCACHEPREFIX` environment variable (command-line takes " -"precedence). If neither are set, it is ``None``." +"``pycache_prefix=PATH`` command-line option or the :envvar:" +"`PYTHONPYCACHEPREFIX` environment variable (command-line takes precedence). " +"If neither are set, it is ``None``." msgstr "" -#: ../../library/sys.rst:395 msgid "" "This function prints out a given traceback and exception to ``sys.stderr``." msgstr "" -#: ../../library/sys.rst:397 msgid "" "When an exception other than :exc:`SystemExit` is raised and uncaught, the " "interpreter calls ``sys.excepthook`` with three arguments, the exception " @@ -508,24 +432,21 @@ msgid "" "argument function to ``sys.excepthook``." msgstr "" -#: ../../library/sys.rst:404 ../../library/sys.rst:406 msgid "" "Raise an auditing event ``sys.excepthook`` with arguments ``hook``, " "``type``, ``value``, ``traceback`` when an uncaught exception occurs. If no " "hook has been set, ``hook`` may be ``None``. If any hook raises an exception " "derived from :class:`RuntimeError` the call to the hook will be suppressed. " -"Otherwise, the audit hook exception will be reported as unraisable and " -"``sys.excepthook`` will be called." +"Otherwise, the audit hook exception will be reported as unraisable and ``sys." +"excepthook`` will be called." msgstr "" -#: ../../library/sys.rst:415 msgid "" "The :func:`sys.unraisablehook` function handles unraisable exceptions and " -"the :func:`threading.excepthook` function handles exception raised " -"by :func:`threading.Thread.run`." +"the :func:`threading.excepthook` function handles exception raised by :func:" +"`threading.Thread.run`." msgstr "" -#: ../../library/sys.rst:425 msgid "" "These objects contain the original values of ``breakpointhook``, " "``displayhook``, ``excepthook``, and ``unraisablehook`` at the start of the " @@ -534,15 +455,12 @@ msgid "" "get replaced with broken or alternative objects." msgstr "" -#: ../../library/sys.rst:431 msgid "__breakpointhook__" msgstr "" -#: ../../library/sys.rst:434 msgid "__unraisablehook__" msgstr "" -#: ../../library/sys.rst:440 msgid "" "This function, when called while an exception handler is executing (such as " "an ``except`` or ``except*`` clause), returns the exception instance that " @@ -550,57 +468,49 @@ msgid "" "another, only the exception handled by the innermost handler is accessible." msgstr "" -#: ../../library/sys.rst:445 msgid "If no exception handler is executing, this function returns ``None``." msgstr "" -#: ../../library/sys.rst:452 msgid "" "This function returns the old-style representation of the handled exception. " "If an exception ``e`` is currently handled (so :func:`exception` would " -"return ``e``), :func:`exc_info` returns the tuple ``(type(e), e, " -"e.__traceback__)``. That is, a tuple containing the type of the exception (a " -"subclass of :exc:`BaseException`), the exception itself, and " -"a :ref:`traceback object ` which typically encapsulates " -"the call stack at the point where the exception last occurred." +"return ``e``), :func:`exc_info` returns the tuple ``(type(e), e, e." +"__traceback__)``. That is, a tuple containing the type of the exception (a " +"subclass of :exc:`BaseException`), the exception itself, and a :ref:" +"`traceback object ` which typically encapsulates the call " +"stack at the point where the exception last occurred." msgstr "" -#: ../../library/sys.rst:463 msgid "" "If no exception is being handled anywhere on the stack, this function return " "a tuple containing three ``None`` values." msgstr "" -#: ../../library/sys.rst:466 msgid "" "The ``type`` and ``traceback`` fields are now derived from the ``value`` " "(the exception instance), so when an exception is modified while it is being " -"handled, the changes are reflected in the results of subsequent calls " -"to :func:`exc_info`." +"handled, the changes are reflected in the results of subsequent calls to :" +"func:`exc_info`." msgstr "" -#: ../../library/sys.rst:474 msgid "" "A string giving the site-specific directory prefix where the platform-" "dependent Python files are installed; by default, this is also ``'/usr/" "local'``. This can be set at build time with the ``--exec-prefix`` argument " "to the :program:`configure` script. Specifically, all configuration files " -"(e.g. the :file:`pyconfig.h` header file) are installed in the " -"directory :file:`{exec_prefix}/lib/python{X.Y}/config`, and shared library " -"modules are installed in :file:`{exec_prefix}/lib/python{X.Y}/lib-dynload`, " -"where *X.Y* is the version number of Python, for example ``3.2``." +"(e.g. the :file:`pyconfig.h` header file) are installed in the directory :" +"file:`{exec_prefix}/lib/python{X.Y}/config`, and shared library modules are " +"installed in :file:`{exec_prefix}/lib/python{X.Y}/lib-dynload`, where *X.Y* " +"is the version number of Python, for example ``3.2``." msgstr "" -#: ../../library/sys.rst:485 msgid "" -"If a :ref:`virtual environment ` is in effect, " -"this :data:`exec_prefix` will point to the virtual environment. The value " -"for the Python installation will still be available, " -"via :data:`base_exec_prefix`. Refer to :ref:`sys-path-init-virtual-" -"environments` for more information." +"If a :ref:`virtual environment ` is in effect, this :data:" +"`exec_prefix` will point to the virtual environment. The value for the " +"Python installation will still be available, via :data:`base_exec_prefix`. " +"Refer to :ref:`sys-path-init-virtual-environments` for more information." msgstr "" -#: ../../library/sys.rst:492 ../../library/sys.rst:1627 msgid "" "When running under a :ref:`virtual environment `, :data:`prefix` " "and :data:`exec_prefix` are now set to the virtual environment prefix by " @@ -609,7 +519,6 @@ msgid "" "virtual environment, even when :mod:`site` is disabled (:option:`-S`)." msgstr "" -#: ../../library/sys.rst:501 msgid "" "A string giving the absolute path of the executable binary for the Python " "interpreter, on systems where this makes sense. If Python is unable to " @@ -617,13 +526,11 @@ msgid "" "empty string or ``None``." msgstr "" -#: ../../library/sys.rst:509 msgid "" "Raise a :exc:`SystemExit` exception, signaling an intention to exit the " "interpreter." msgstr "" -#: ../../library/sys.rst:511 msgid "" "The optional argument *arg* can be an integer giving the exit status " "(defaulting to zero), or another type of object. If it is an integer, zero " @@ -639,7 +546,6 @@ msgid "" "way to exit a program when an error occurs." msgstr "" -#: ../../library/sys.rst:524 msgid "" "Since :func:`exit` ultimately \"only\" raises an exception, it will only " "exit the process when called from the main thread, and the exception is not " @@ -648,156 +554,122 @@ msgid "" "an outer level." msgstr "" -#: ../../library/sys.rst:529 msgid "" -"If an error occurs in the cleanup after the Python interpreter has " -"caught :exc:`SystemExit` (such as an error flushing buffered data in the " -"standard streams), the exit status is changed to 120." +"If an error occurs in the cleanup after the Python interpreter has caught :" +"exc:`SystemExit` (such as an error flushing buffered data in the standard " +"streams), the exit status is changed to 120." msgstr "" -#: ../../library/sys.rst:537 msgid "" "The :term:`named tuple` *flags* exposes the status of command line flags. " "Flags should only be accessed only by name and not by index. The attributes " "are read only." msgstr "" -#: ../../library/sys.rst:544 msgid ":option:`-d`" msgstr "" -#: ../../library/sys.rst:547 ../../library/sys.rst:550 msgid ":option:`-i`" msgstr "" -#: ../../library/sys.rst:553 msgid ":option:`-I`" msgstr "" -#: ../../library/sys.rst:556 msgid ":option:`-O` or :option:`-OO`" msgstr "" -#: ../../library/sys.rst:559 msgid ":option:`-B`" msgstr "" -#: ../../library/sys.rst:562 msgid ":option:`-s`" msgstr "" -#: ../../library/sys.rst:565 msgid ":option:`-S`" msgstr "" -#: ../../library/sys.rst:568 msgid ":option:`-E`" msgstr "" -#: ../../library/sys.rst:571 msgid ":option:`-v`" msgstr "" -#: ../../library/sys.rst:574 msgid ":option:`-b`" msgstr "" -#: ../../library/sys.rst:577 msgid ":option:`-q`" msgstr "" -#: ../../library/sys.rst:580 msgid ":option:`-R`" msgstr "" -#: ../../library/sys.rst:583 msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode `)" msgstr "" -#: ../../library/sys.rst:586 msgid ":option:`-X utf8 <-X>`" msgstr "" -#: ../../library/sys.rst:589 msgid ":option:`-P`" msgstr "" -#: ../../library/sys.rst:592 msgid "" ":option:`-X int_max_str_digits <-X>` (:ref:`integer string conversion length " "limitation `)" msgstr "" -#: ../../library/sys.rst:596 msgid ":option:`-X warn_default_encoding <-X>`" msgstr "" -#: ../../library/sys.rst:599 msgid ":option:`-X gil <-X>` and :envvar:`PYTHON_GIL`" msgstr "" -#: ../../library/sys.rst:602 msgid "" -":option:`-X thread_inherit_context <-X>` " -"and :envvar:`PYTHON_THREAD_INHERIT_CONTEXT`" +":option:`-X thread_inherit_context <-X>` and :envvar:" +"`PYTHON_THREAD_INHERIT_CONTEXT`" msgstr "" -#: ../../library/sys.rst:606 msgid "" -":option:`-X context_aware_warnings <-X>` " -"and :envvar:`PYTHON_CONTEXT_AWARE_WARNINGS`" +":option:`-X context_aware_warnings <-X>` and :envvar:" +"`PYTHON_CONTEXT_AWARE_WARNINGS`" msgstr "" -#: ../../library/sys.rst:610 msgid "Added ``quiet`` attribute for the new :option:`-q` flag." msgstr "" -#: ../../library/sys.rst:613 msgid "The ``hash_randomization`` attribute." msgstr "" -#: ../../library/sys.rst:616 msgid "Removed obsolete ``division_warning`` attribute." msgstr "" -#: ../../library/sys.rst:619 msgid "Added ``isolated`` attribute for :option:`-I` ``isolated`` flag." msgstr "" -#: ../../library/sys.rst:622 msgid "" "Added the ``dev_mode`` attribute for the new :ref:`Python Development Mode " "` and the ``utf8_mode`` attribute for the new :option:`-X` " "``utf8`` flag." msgstr "" -#: ../../library/sys.rst:627 msgid "" "Added ``warn_default_encoding`` attribute for :option:`-X` " "``warn_default_encoding`` flag." msgstr "" -#: ../../library/sys.rst:630 msgid "Added the ``safe_path`` attribute for :option:`-P` option." msgstr "" -#: ../../library/sys.rst:633 msgid "Added the ``int_max_str_digits`` attribute." msgstr "" -#: ../../library/sys.rst:636 msgid "Added the ``gil`` attribute." msgstr "" -#: ../../library/sys.rst:639 msgid "Added the ``thread_inherit_context`` attribute." msgstr "" -#: ../../library/sys.rst:642 msgid "Added the ``context_aware_warnings`` attribute." msgstr "" -#: ../../library/sys.rst:648 msgid "" "A :term:`named tuple` holding information about the float type. It contains " "low level information about the precision and internal representation. The " @@ -807,169 +679,133 @@ msgid "" "floating types', for details." msgstr "" -#: ../../library/sys.rst:655 msgid "Attributes of the :data:`!float_info` :term:`named tuple`" msgstr "" -#: ../../library/sys.rst:658 msgid "attribute" msgstr "" -#: ../../library/sys.rst:659 msgid "float.h macro" msgstr "" -#: ../../library/sys.rst:660 msgid "explanation" msgstr "" -#: ../../library/sys.rst:663 msgid ":c:macro:`!DBL_EPSILON`" msgstr "" -#: ../../library/sys.rst:664 msgid "" "difference between 1.0 and the least value greater than 1.0 that is " "representable as a float." msgstr "" -#: ../../library/sys.rst:667 msgid "See also :func:`math.ulp`." msgstr "" -#: ../../library/sys.rst:670 msgid ":c:macro:`!DBL_DIG`" msgstr "" -#: ../../library/sys.rst:671 msgid "" "The maximum number of decimal digits that can be faithfully represented in a " "float; see below." msgstr "" -#: ../../library/sys.rst:675 msgid ":c:macro:`!DBL_MANT_DIG`" msgstr "" -#: ../../library/sys.rst:676 msgid "" "Float precision: the number of base-``radix`` digits in the significand of a " "float." msgstr "" -#: ../../library/sys.rst:680 msgid ":c:macro:`!DBL_MAX`" msgstr "" -#: ../../library/sys.rst:681 msgid "The maximum representable positive finite float." msgstr "" -#: ../../library/sys.rst:684 msgid ":c:macro:`!DBL_MAX_EXP`" msgstr "" -#: ../../library/sys.rst:685 msgid "" "The maximum integer *e* such that ``radix**(e-1)`` is a representable finite " "float." msgstr "" -#: ../../library/sys.rst:689 msgid ":c:macro:`!DBL_MAX_10_EXP`" msgstr "" -#: ../../library/sys.rst:690 msgid "" "The maximum integer *e* such that ``10**e`` is in the range of representable " "finite floats." msgstr "" -#: ../../library/sys.rst:694 msgid ":c:macro:`!DBL_MIN`" msgstr "" -#: ../../library/sys.rst:695 msgid "The minimum representable positive *normalized* float." msgstr "" -#: ../../library/sys.rst:697 msgid "" "Use :func:`math.ulp(0.0) ` to get the smallest positive " "*denormalized* representable float." msgstr "" -#: ../../library/sys.rst:701 msgid ":c:macro:`!DBL_MIN_EXP`" msgstr "" -#: ../../library/sys.rst:702 msgid "" "The minimum integer *e* such that ``radix**(e-1)`` is a normalized float." msgstr "" -#: ../../library/sys.rst:706 msgid ":c:macro:`!DBL_MIN_10_EXP`" msgstr "" -#: ../../library/sys.rst:707 msgid "The minimum integer *e* such that ``10**e`` is a normalized float." msgstr "" -#: ../../library/sys.rst:710 msgid ":c:macro:`!FLT_RADIX`" msgstr "" -#: ../../library/sys.rst:711 msgid "The radix of exponent representation." msgstr "" -#: ../../library/sys.rst:714 msgid ":c:macro:`!FLT_ROUNDS`" msgstr "" -#: ../../library/sys.rst:715 msgid "" "An integer representing the rounding mode for floating-point arithmetic. " "This reflects the value of the system :c:macro:`!FLT_ROUNDS` macro at " "interpreter startup time:" msgstr "" -#: ../../library/sys.rst:719 msgid "``-1``: indeterminable" msgstr "" -#: ../../library/sys.rst:720 msgid "``0``: toward zero" msgstr "" -#: ../../library/sys.rst:721 msgid "``1``: to nearest" msgstr "" -#: ../../library/sys.rst:722 msgid "``2``: toward positive infinity" msgstr "" -#: ../../library/sys.rst:723 msgid "``3``: toward negative infinity" msgstr "" -#: ../../library/sys.rst:725 msgid "" "All other values for :c:macro:`!FLT_ROUNDS` characterize implementation-" "defined rounding behavior." msgstr "" -#: ../../library/sys.rst:728 msgid "" "The attribute :attr:`sys.float_info.dig` needs further explanation. If " -"``s`` is any string representing a decimal number with at most :attr:`!" -"sys.float_info.dig` significant digits, then converting ``s`` to a float and " +"``s`` is any string representing a decimal number with at most :attr:`!sys." +"float_info.dig` significant digits, then converting ``s`` to a float and " "back again will recover a string representing the same decimal value::" msgstr "" -#: ../../library/sys.rst:734 msgid "" ">>> import sys\n" ">>> sys.float_info.dig\n" @@ -979,20 +815,17 @@ msgid "" "'3.14159265358979'" msgstr "" -#: ../../library/sys.rst:741 msgid "" "But for strings with more than :attr:`sys.float_info.dig` significant " "digits, this isn't always true::" msgstr "" -#: ../../library/sys.rst:744 msgid "" ">>> s = '9876543211234567' # 16 significant digits is too many!\n" ">>> format(float(s), '.16g') # conversion changes value\n" "'9876543211234568'" msgstr "" -#: ../../library/sys.rst:750 msgid "" "A string indicating how the :func:`repr` function behaves for floats. If " "the string has value ``'short'`` then for a finite float ``x``, ``repr(x)`` " @@ -1002,56 +835,48 @@ msgid "" "same way as it did in versions of Python prior to 3.1." msgstr "" -#: ../../library/sys.rst:763 msgid "" "Return the number of memory blocks currently allocated by the interpreter, " "regardless of their size. This function is mainly useful for tracking and " "debugging memory leaks. Because of the interpreter's internal caches, the " -"result can vary from call to call; you may have to " -"call :func:`_clear_internal_caches` and :func:`gc.collect` to get more " -"predictable results." +"result can vary from call to call; you may have to call :func:" +"`_clear_internal_caches` and :func:`gc.collect` to get more predictable " +"results." msgstr "" -#: ../../library/sys.rst:770 msgid "" "If a Python build or implementation cannot reasonably compute this " "information, :func:`getallocatedblocks` is allowed to return 0 instead." msgstr "" -#: ../../library/sys.rst:778 msgid "Return the number of unicode objects that have been interned." msgstr "" -#: ../../library/sys.rst:785 msgid "" "Return the build-time API level of Android as an integer. This represents " "the minimum version of Android this build of Python can run on. For runtime " "version information, see :func:`platform.android_ver`." msgstr "" -#: ../../library/sys.rst:796 msgid "" "Return ``'utf-8'``. This is the name of the default string encoding, used in " "methods like :meth:`str.encode`." msgstr "" -#: ../../library/sys.rst:802 msgid "" "Return the current value of the flags that are used for :c:func:`dlopen` " "calls. Symbolic names for the flag values can be found in the :mod:`os` " "module (:samp:`RTLD_{xxx}` constants, e.g. :const:`os.RTLD_LAZY`)." msgstr "" -#: ../../library/sys.rst:812 msgid "" "Get the :term:`filesystem encoding `: " "the encoding used with the :term:`filesystem error handler ` to convert between Unicode filenames and bytes " -"filenames. The filesystem error handler is returned " -"from :func:`getfilesystemencodeerrors`." +"filenames. The filesystem error handler is returned from :func:" +"`getfilesystemencodeerrors`." msgstr "" -#: ../../library/sys.rst:818 msgid "" "For best compatibility, str should be used for filenames in all cases, " "although representing filenames as bytes is also supported. Functions " @@ -1059,113 +884,96 @@ msgid "" "internally convert to the system's preferred representation." msgstr "" -#: ../../library/sys.rst:823 ../../library/sys.rst:851 msgid "" ":func:`os.fsencode` and :func:`os.fsdecode` should be used to ensure that " "the correct encoding and errors mode are used." msgstr "" -#: ../../library/sys.rst:826 ../../library/sys.rst:854 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " -"startup by the :c:func:`PyConfig_Read` function: " -"see :c:member:`~PyConfig.filesystem_encoding` " -"and :c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." +"startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." +"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" +"c:type:`PyConfig`." msgstr "" -#: ../../library/sys.rst:831 msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore." msgstr "" -#: ../../library/sys.rst:834 msgid "" -"Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` " -"and :func:`_enablelegacywindowsfsencoding` for more information." +"Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` and :" +"func:`_enablelegacywindowsfsencoding` for more information." msgstr "" -#: ../../library/sys.rst:838 msgid "" "Return ``'utf-8'`` if the :ref:`Python UTF-8 Mode ` is enabled." msgstr "" -#: ../../library/sys.rst:845 msgid "" "Get the :term:`filesystem error handler `: the error handler used with the :term:`filesystem encoding " "` to convert between Unicode " -"filenames and bytes filenames. The filesystem encoding is returned " -"from :func:`getfilesystemencoding`." +"filenames and bytes filenames. The filesystem encoding is returned from :" +"func:`getfilesystemencoding`." msgstr "" -#: ../../library/sys.rst:863 msgid "" "Returns the current value for the :ref:`integer string conversion length " "limitation `. See also :func:`set_int_max_str_digits`." msgstr "" -#: ../../library/sys.rst:870 msgid "" "Return the reference count of the *object*. The count returned is generally " "one higher than you might expect, because it includes the (temporary) " "reference as an argument to :func:`getrefcount`." msgstr "" -#: ../../library/sys.rst:874 msgid "" "Note that the returned value may not actually reflect how many references to " -"the object are actually held. For example, some objects " -"are :term:`immortal` and have a very high refcount that does not reflect the " -"actual number of references. Consequently, do not rely on the returned " -"value to be accurate, other than a value of 0 or 1." +"the object are actually held. For example, some objects are :term:" +"`immortal` and have a very high refcount that does not reflect the actual " +"number of references. Consequently, do not rely on the returned value to be " +"accurate, other than a value of 0 or 1." msgstr "" -#: ../../library/sys.rst:882 msgid "" ":term:`Immortal ` objects with a large reference count can be " "identified via :func:`_is_immortal`." msgstr "" -#: ../../library/sys.rst:885 msgid "" "Immortal objects have very large refcounts that do not match the actual " "number of references to the object." msgstr "" -#: ../../library/sys.rst:891 msgid "" "Return the current value of the recursion limit, the maximum depth of the " "Python interpreter stack. This limit prevents infinite recursion from " -"causing an overflow of the C stack and crashing Python. It can be set " -"by :func:`setrecursionlimit`." +"causing an overflow of the C stack and crashing Python. It can be set by :" +"func:`setrecursionlimit`." msgstr "" -#: ../../library/sys.rst:899 msgid "" "Return the size of an object in bytes. The object can be any type of object. " "All built-in objects will return correct results, but this does not have to " "hold true for third-party extensions as it is implementation specific." msgstr "" -#: ../../library/sys.rst:904 msgid "" "Only the memory consumption directly attributed to the object is accounted " "for, not the memory consumption of objects it refers to." msgstr "" -#: ../../library/sys.rst:907 msgid "" "If given, *default* will be returned if the object does not provide means to " "retrieve the size. Otherwise a :exc:`TypeError` will be raised." msgstr "" -#: ../../library/sys.rst:910 msgid "" ":func:`getsizeof` calls the object's ``__sizeof__`` method and adds an " "additional garbage collector overhead if the object is managed by the " "garbage collector." msgstr "" -#: ../../library/sys.rst:914 msgid "" "See `recursive sizeof recipe `_ for an example of " @@ -1173,13 +981,11 @@ msgid "" "their contents." msgstr "" -#: ../../library/sys.rst:920 msgid "" -"Return the interpreter's \"thread switch interval\" in seconds; " -"see :func:`setswitchinterval`." +"Return the interpreter's \"thread switch interval\" in seconds; see :func:" +"`setswitchinterval`." msgstr "" -#: ../../library/sys.rst:928 msgid "" "Return a frame object from the call stack. If optional integer *depth* is " "given, return the frame object that many calls below the top of the stack. " @@ -1188,19 +994,16 @@ msgid "" "stack." msgstr "" -#: ../../library/sys.rst:933 msgid "" "Raises an :ref:`auditing event ` ``sys._getframe`` with argument " "``frame``." msgstr "" -#: ../../library/sys.rst:937 ../../library/sys.rst:953 msgid "" "This function should be used for internal and specialized purposes only. It " "is not guaranteed to exist in all implementations of Python." msgstr "" -#: ../../library/sys.rst:943 msgid "" "Return the name of a module from the call stack. If optional integer " "*depth* is given, return the module that many calls below the top of the " @@ -1209,55 +1012,45 @@ msgid "" "returning the module at the top of the call stack." msgstr "" -#: ../../library/sys.rst:949 msgid "" "Raises an :ref:`auditing event ` ``sys._getframemodulename`` with " "argument ``depth``." msgstr "" -#: ../../library/sys.rst:961 msgid "" "This function only exists if CPython was built using the specialized " "configure option :option:`--with-trace-refs`. It is intended only for " "debugging garbage-collection issues." msgstr "" -#: ../../library/sys.rst:965 msgid "" "Return a list of up to *limit* dynamically allocated Python objects. If " "*type* is given, only objects of that exact type (not subtypes) are included." msgstr "" -#: ../../library/sys.rst:969 msgid "" "Objects from the list are not safe to use. Specifically, the result will " "include objects from all interpreters that share their object allocator " -"state (that is, ones created " -"with :c:member:`PyInterpreterConfig.use_main_obmalloc` set to 1 or " -"using :c:func:`Py_NewInterpreter`, and the :ref:`main interpreter `). Mixing objects from different interpreters may lead " -"to crashes or other unexpected behavior." +"state (that is, ones created with :c:member:`PyInterpreterConfig." +"use_main_obmalloc` set to 1 or using :c:func:`Py_NewInterpreter`, and the :" +"ref:`main interpreter `). Mixing objects from " +"different interpreters may lead to crashes or other unexpected behavior." msgstr "" -#: ../../library/sys.rst:980 ../../library/sys.rst:1384 msgid "" "This function should be used for specialized purposes only. It is not " "guaranteed to exist in all implementations of Python." msgstr "" -#: ../../library/sys.rst:985 msgid "The result may include objects from other interpreters." msgstr "" -#: ../../library/sys.rst:994 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" -#: ../../library/sys.rst:1003 msgid "Get the trace function as set by :func:`settrace`." msgstr "" -#: ../../library/sys.rst:1007 msgid "" "The :func:`gettrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -1265,66 +1058,53 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: ../../library/sys.rst:1015 msgid "" "Return a named tuple describing the Windows version currently running. The " "named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " "*service_pack_minor*, *service_pack_major*, *suite_mask*, *product_type* and " "*platform_version*. *service_pack* contains a string, *platform_version* a 3-" "tuple and all other values are integers. The components can also be accessed " -"by name, so ``sys.getwindowsversion()[0]`` is equivalent to " -"``sys.getwindowsversion().major``. For compatibility with prior versions, " -"only the first 5 elements are retrievable by indexing." +"by name, so ``sys.getwindowsversion()[0]`` is equivalent to ``sys." +"getwindowsversion().major``. For compatibility with prior versions, only the " +"first 5 elements are retrievable by indexing." msgstr "" -#: ../../library/sys.rst:1026 msgid "*platform* will be ``2`` (VER_PLATFORM_WIN32_NT)." msgstr "" -#: ../../library/sys.rst:1028 msgid "*product_type* may be one of the following values:" msgstr "" -#: ../../library/sys.rst:1031 msgid "Constant" msgstr "" -#: ../../library/sys.rst:1031 msgid "Meaning" msgstr "Jelentés" -#: ../../library/sys.rst:1033 msgid "``1`` (VER_NT_WORKSTATION)" msgstr "" -#: ../../library/sys.rst:1033 msgid "The system is a workstation." msgstr "" -#: ../../library/sys.rst:1035 msgid "``2`` (VER_NT_DOMAIN_CONTROLLER)" msgstr "" -#: ../../library/sys.rst:1035 msgid "The system is a domain controller." msgstr "" -#: ../../library/sys.rst:1038 msgid "``3`` (VER_NT_SERVER)" msgstr "" -#: ../../library/sys.rst:1038 msgid "The system is a server, but not a domain controller." msgstr "" -#: ../../library/sys.rst:1042 msgid "" "This function wraps the Win32 :c:func:`!GetVersionEx` function; see the " "Microsoft documentation on :c:func:`!OSVERSIONINFOEX` for more information " "about these fields." msgstr "" -#: ../../library/sys.rst:1046 msgid "" "*platform_version* returns the major version, minor version and build number " "of the current operating system, rather than the version that is being " @@ -1332,98 +1112,79 @@ msgid "" "feature detection." msgstr "" -#: ../../library/sys.rst:1052 msgid "" "*platform_version* derives the version from kernel32.dll which can be of a " "different version than the OS version. Please use :mod:`platform` module for " "achieving accurate OS version." msgstr "" -#: ../../library/sys.rst:1058 msgid "" "Changed to a named tuple and added *service_pack_minor*, " "*service_pack_major*, *suite_mask*, and *product_type*." msgstr "" -#: ../../library/sys.rst:1062 msgid "Added *platform_version*" msgstr "" -#: ../../library/sys.rst:1068 msgid "" -"Returns an *asyncgen_hooks* object, which is similar to " -"a :class:`~collections.namedtuple` of the form ``(firstiter, finalizer)``, " -"where *firstiter* and *finalizer* are expected to be either ``None`` or " -"functions which take an :term:`asynchronous generator iterator` as an " -"argument, and are used to schedule finalization of an asynchronous generator " -"by an event loop." +"Returns an *asyncgen_hooks* object, which is similar to a :class:" +"`~collections.namedtuple` of the form ``(firstiter, finalizer)``, where " +"*firstiter* and *finalizer* are expected to be either ``None`` or functions " +"which take an :term:`asynchronous generator iterator` as an argument, and " +"are used to schedule finalization of an asynchronous generator by an event " +"loop." msgstr "" -#: ../../library/sys.rst:1075 msgid "See :pep:`525` for more details." msgstr "" -#: ../../library/sys.rst:1079 ../../library/sys.rst:1874 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.)" msgstr "" -#: ../../library/sys.rst:1085 msgid "" -"Get the current coroutine origin tracking depth, as set " -"by :func:`set_coroutine_origin_tracking_depth`." +"Get the current coroutine origin tracking depth, as set by :func:" +"`set_coroutine_origin_tracking_depth`." msgstr "" -#: ../../library/sys.rst:1091 ../../library/sys.rst:1895 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.) Use it only for debugging purposes." msgstr "" -#: ../../library/sys.rst:1097 msgid "" "A :term:`named tuple` giving parameters of the numeric hash implementation. " "For more details about hashing of numeric types, see :ref:`numeric-hash`." msgstr "" -#: ../../library/sys.rst:1103 msgid "The width in bits used for hash values" msgstr "" -#: ../../library/sys.rst:1107 msgid "The prime modulus P used for numeric hash scheme" msgstr "" -#: ../../library/sys.rst:1111 msgid "The hash value returned for a positive infinity" msgstr "" -#: ../../library/sys.rst:1115 msgid "(This attribute is no longer used)" msgstr "" -#: ../../library/sys.rst:1119 msgid "The multiplier used for the imaginary part of a complex number" msgstr "" -#: ../../library/sys.rst:1123 msgid "The name of the algorithm for hashing of str, bytes, and memoryview" msgstr "" -#: ../../library/sys.rst:1127 msgid "The internal output size of the hash algorithm" msgstr "" -#: ../../library/sys.rst:1131 msgid "The size of the seed key of the hash algorithm" msgstr "" -#: ../../library/sys.rst:1135 msgid "Added *algorithm*, *hash_bits* and *seed_bits*" msgstr "" -#: ../../library/sys.rst:1141 msgid "" "The version number encoded as a single integer. This is guaranteed to " "increase with each version, including proper support for non-production " @@ -1431,7 +1192,6 @@ msgid "" "version 1.5.2, use::" msgstr "" -#: ../../library/sys.rst:1145 msgid "" "if sys.hexversion >= 0x010502F0:\n" " # use some advanced feature\n" @@ -1441,7 +1201,6 @@ msgid "" " ..." msgstr "" -#: ../../library/sys.rst:1152 msgid "" "This is called ``hexversion`` since it only really looks meaningful when " "viewed as the result of passing it to the built-in :func:`hex` function. " @@ -1449,25 +1208,21 @@ msgid "" "human-friendly encoding of the same information." msgstr "" -#: ../../library/sys.rst:1157 msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." msgstr "" -#: ../../library/sys.rst:1162 msgid "" "An object containing information about the implementation of the currently " "running Python interpreter. The following attributes are required to exist " "in all Python implementations." msgstr "" -#: ../../library/sys.rst:1166 msgid "" "*name* is the implementation's identifier, e.g. ``'cpython'``. The actual " "string is defined by the Python implementation, but it is guaranteed to be " "lower case." msgstr "" -#: ../../library/sys.rst:1170 msgid "" "*version* is a named tuple, in the same format as :data:`sys.version_info`. " "It represents the version of the Python *implementation*. This has a " @@ -1479,13 +1234,11 @@ msgid "" "the same value, since it is the reference implementation." msgstr "" -#: ../../library/sys.rst:1180 msgid "" -"*hexversion* is the implementation version in hexadecimal format, " -"like :data:`sys.hexversion`." +"*hexversion* is the implementation version in hexadecimal format, like :data:" +"`sys.hexversion`." msgstr "" -#: ../../library/sys.rst:1183 msgid "" "*cache_tag* is the tag used by the import machinery in the filenames of " "cached modules. By convention, it would be a composite of the " @@ -1494,7 +1247,6 @@ msgid "" "set to ``None``, it indicates that module caching should be disabled." msgstr "" -#: ../../library/sys.rst:1190 msgid "" "*supports_isolated_interpreters* is a boolean value, whether this " "implementation supports multiple isolated interpreters. It is ``True`` for " @@ -1502,66 +1254,54 @@ msgid "" "level :mod:`!_interpreters` module." msgstr "" -#: ../../library/sys.rst:1197 msgid ":pep:`684`, :pep:`734`, and :mod:`concurrent.interpreters`." msgstr "" -#: ../../library/sys.rst:1199 msgid "" ":data:`sys.implementation` may contain additional attributes specific to the " "Python implementation. These non-standard attributes must start with an " -"underscore, and are not described here. Regardless of its " -"contents, :data:`sys.implementation` will not change during a run of the " -"interpreter, nor between implementation versions. (It may change between " -"Python language versions, however.) See :pep:`421` for more information." +"underscore, and are not described here. Regardless of its contents, :data:" +"`sys.implementation` will not change during a run of the interpreter, nor " +"between implementation versions. (It may change between Python language " +"versions, however.) See :pep:`421` for more information." msgstr "" -#: ../../library/sys.rst:1208 msgid "Added ``supports_isolated_interpreters`` field." msgstr "" -#: ../../library/sys.rst:1213 msgid "" "The addition of new required attributes must go through the normal PEP " "process. See :pep:`421` for more information." msgstr "" -#: ../../library/sys.rst:1218 msgid "" "A :term:`named tuple` that holds information about Python's internal " "representation of integers. The attributes are read only." msgstr "" -#: ../../library/sys.rst:1223 msgid "" "The number of bits held in each digit. Python integers are stored internally " "in base ``2**int_info.bits_per_digit``." msgstr "" -#: ../../library/sys.rst:1228 msgid "The size in bytes of the C type used to represent a digit." msgstr "" -#: ../../library/sys.rst:1232 msgid "" "The default value for :func:`sys.get_int_max_str_digits` when it is not " "otherwise explicitly configured." msgstr "" -#: ../../library/sys.rst:1237 msgid "" -"The minimum non-zero value " -"for :func:`sys.set_int_max_str_digits`, :envvar:`PYTHONINTMAXSTRDIGITS`, " -"or :option:`-X int_max_str_digits <-X>`." +"The minimum non-zero value for :func:`sys.set_int_max_str_digits`, :envvar:" +"`PYTHONINTMAXSTRDIGITS`, or :option:`-X int_max_str_digits <-X>`." msgstr "" -#: ../../library/sys.rst:1244 msgid "" -"Added :attr:`~int_info.default_max_str_digits` " -"and :attr:`~int_info.str_digits_check_threshold`." +"Added :attr:`~int_info.default_max_str_digits` and :attr:`~int_info." +"str_digits_check_threshold`." msgstr "" -#: ../../library/sys.rst:1250 msgid "" "When this attribute exists, its value is automatically called (with no " "arguments) when the interpreter is launched in :ref:`interactive mode `." msgstr "" -#: ../../library/sys.rst:1256 ../../library/sys.rst:1258 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_interactivehook`` " "with the hook object as the argument when the hook is called on startup." msgstr "" -#: ../../library/sys.rst:1267 msgid "" "Enter *string* in the table of \"interned\" strings and return the interned " "string -- which is *string* itself or a copy. Interning strings is useful to " @@ -1588,44 +1326,36 @@ msgid "" "attributes have interned keys." msgstr "" -#: ../../library/sys.rst:1275 msgid "" "Interned strings are not :term:`immortal`; you must keep a reference to the " "return value of :func:`intern` around to benefit from it." msgstr "" -#: ../../library/sys.rst:1281 msgid "" "Return :const:`True` if the :term:`GIL` is enabled and :const:`False` if it " "is disabled." msgstr "" -#: ../../library/sys.rst:1288 ../../library/sys.rst:1396 msgid "It is not guaranteed to exist in all implementations of Python." msgstr "" -#: ../../library/sys.rst:1292 msgid "" "Return :const:`True` if the main Python interpreter is :term:`shutting down " "`. Return :const:`False` otherwise." msgstr "" -#: ../../library/sys.rst:1295 msgid "See also the :exc:`PythonFinalizationError` exception." msgstr "" -#: ../../library/sys.rst:1301 msgid "Utilities for observing just-in-time compilation." msgstr "" -#: ../../library/sys.rst:1305 msgid "" -"JIT compilation is an *experimental implementation detail* of CPython. " -"``sys._jit`` is not guaranteed to exist or behave the same way in all Python " +"JIT compilation is an *experimental implementation detail* of CPython. ``sys." +"_jit`` is not guaranteed to exist or behave the same way in all Python " "implementations, versions, or build configurations." msgstr "" -#: ../../library/sys.rst:1313 msgid "" "Return ``True`` if the current Python executable supports JIT compilation, " "and ``False`` otherwise. This can be controlled by building CPython with " @@ -1633,28 +1363,24 @@ msgid "" "experimental-jit` option on all other platforms." msgstr "" -#: ../../library/sys.rst:1320 msgid "" "Return ``True`` if JIT compilation is enabled for the current Python process " "(implies :func:`sys._jit.is_available`), and ``False`` otherwise. If JIT " -"compilation is available, this can be controlled by setting " -"the :envvar:`PYTHON_JIT` environment variable to ``0`` (disabled) or ``1`` " -"(enabled) at interpreter startup." +"compilation is available, this can be controlled by setting the :envvar:" +"`PYTHON_JIT` environment variable to ``0`` (disabled) or ``1`` (enabled) at " +"interpreter startup." msgstr "" -#: ../../library/sys.rst:1328 msgid "" "Return ``True`` if the topmost Python frame is currently executing JIT code " "(implies :func:`sys._jit.is_enabled`), and ``False`` otherwise." msgstr "" -#: ../../library/sys.rst:1333 msgid "" "This function is intended for testing and debugging the JIT itself. It " "should be avoided for any other purpose." msgstr "" -#: ../../library/sys.rst:1338 msgid "" "Due to the nature of tracing JIT compilers, repeated calls to this function " "may give surprising results. For example, branching on its return value will " @@ -1662,7 +1388,6 @@ msgid "" "entered or exited):" msgstr "" -#: ../../library/sys.rst:1343 msgid "" ">>> for warmup in range(BIG_NUMBER):\n" "... # This line is \"hot\", and is eventually JIT-compiled:\n" @@ -1677,7 +1402,6 @@ msgid "" "AssertionError" msgstr "" -#: ../../library/sys.rst:1359 msgid "" "This variable is not always defined; it is set to the exception instance " "when an exception is not handled and the interpreter prints an error message " @@ -1688,100 +1412,84 @@ msgid "" "more information.)" msgstr "" -#: ../../library/sys.rst:1371 msgid "" "Return :const:`True` if the given object is :term:`immortal`, :const:`False` " "otherwise." msgstr "" -#: ../../library/sys.rst:1376 msgid "" "Objects that are immortal (and thus return ``True`` upon being passed to " "this function) are not guaranteed to be immortal in future versions, and " "vice versa for mortal objects." msgstr "" -#: ../../library/sys.rst:1389 msgid "" "Return :const:`True` if the given string is \"interned\", :const:`False` " "otherwise." msgstr "" -#: ../../library/sys.rst:1403 msgid "" "These three variables are deprecated; use :data:`sys.last_exc` instead. They " -"hold the legacy representation of ``sys.last_exc``, as returned " -"from :func:`exc_info` above." +"hold the legacy representation of ``sys.last_exc``, as returned from :func:" +"`exc_info` above." msgstr "" -#: ../../library/sys.rst:1409 msgid "" "An integer giving the maximum value a variable of type :c:type:`Py_ssize_t` " "can take. It's usually ``2**31 - 1`` on a 32-bit platform and ``2**63 - 1`` " "on a 64-bit platform." msgstr "" -#: ../../library/sys.rst:1416 msgid "" "An integer giving the value of the largest Unicode code point, i.e. " "``1114111`` (``0x10FFFF`` in hexadecimal)." msgstr "" -#: ../../library/sys.rst:1419 msgid "" "Before :pep:`393`, ``sys.maxunicode`` used to be either ``0xFFFF`` or " "``0x10FFFF``, depending on the configuration option that specified whether " "Unicode characters were stored as UCS-2 or UCS-4." msgstr "" -#: ../../library/sys.rst:1427 msgid "" -"A list of :term:`meta path finder` objects that have " -"their :meth:`~importlib.abc.MetaPathFinder.find_spec` methods called to see " -"if one of the objects can find the module to be imported. By default, it " -"holds entries that implement Python's default import semantics. " -"The :meth:`~importlib.abc.MetaPathFinder.find_spec` method is called with at " -"least the absolute name of the module being imported. If the module to be " -"imported is contained in a package, then the parent " -"package's :attr:`~module.__path__` attribute is passed in as a second " -"argument. The method returns a :term:`module spec`, or ``None`` if the " -"module cannot be found." +"A list of :term:`meta path finder` objects that have their :meth:`~importlib." +"abc.MetaPathFinder.find_spec` methods called to see if one of the objects " +"can find the module to be imported. By default, it holds entries that " +"implement Python's default import semantics. The :meth:`~importlib.abc." +"MetaPathFinder.find_spec` method is called with at least the absolute name " +"of the module being imported. If the module to be imported is contained in a " +"package, then the parent package's :attr:`~module.__path__` attribute is " +"passed in as a second argument. The method returns a :term:`module spec`, or " +"``None`` if the module cannot be found." msgstr "" -#: ../../library/sys.rst:1440 msgid ":class:`importlib.abc.MetaPathFinder`" msgstr "" -#: ../../library/sys.rst:1441 msgid "" -"The abstract base class defining the interface of finder objects " -"on :data:`meta_path`." +"The abstract base class defining the interface of finder objects on :data:" +"`meta_path`." msgstr "" -#: ../../library/sys.rst:1443 msgid ":class:`importlib.machinery.ModuleSpec`" msgstr "" -#: ../../library/sys.rst:1444 msgid "" "The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " "should return instances of." msgstr "" -#: ../../library/sys.rst:1450 msgid "" -":term:`Module specs ` were introduced in Python 3.4, " -"by :pep:`451`." +":term:`Module specs ` were introduced in Python 3.4, by :pep:" +"`451`." msgstr "" -#: ../../library/sys.rst:1455 msgid "" -"Removed the fallback that looked for a :meth:`!find_module` method if " -"a :data:`meta_path` entry didn't have " -"a :meth:`~importlib.abc.MetaPathFinder.find_spec` method." +"Removed the fallback that looked for a :meth:`!find_module` method if a :" +"data:`meta_path` entry didn't have a :meth:`~importlib.abc.MetaPathFinder." +"find_spec` method." msgstr "" -#: ../../library/sys.rst:1461 msgid "" "This is a dictionary that maps module names to modules which have already " "been loaded. This can be manipulated to force reloading of modules and " @@ -1793,13 +1501,11 @@ msgid "" "other threads." msgstr "" -#: ../../library/sys.rst:1473 msgid "" "The list of the original command line arguments passed to the Python " "executable." msgstr "" -#: ../../library/sys.rst:1476 msgid "" "The elements of :data:`sys.orig_argv` are the arguments to the Python " "interpreter, while the elements of :data:`sys.argv` are the arguments to the " @@ -1807,68 +1513,57 @@ msgid "" "in :data:`sys.orig_argv` and missing from :data:`sys.argv`." msgstr "" -#: ../../library/sys.rst:1488 msgid "" "A list of strings that specifies the search path for modules. Initialized " "from the environment variable :envvar:`PYTHONPATH`, plus an installation-" "dependent default." msgstr "" -#: ../../library/sys.rst:1492 msgid "" "By default, as initialized upon program startup, a potentially unsafe path " "is prepended to :data:`sys.path` (*before* the entries inserted as a result " "of :envvar:`PYTHONPATH`):" msgstr "" -#: ../../library/sys.rst:1496 msgid "" "``python -m module`` command line: prepend the current working directory." msgstr "" -#: ../../library/sys.rst:1498 msgid "" "``python script.py`` command line: prepend the script's directory. If it's a " "symbolic link, resolve symbolic links." msgstr "" -#: ../../library/sys.rst:1500 msgid "" "``python -c code`` and ``python`` (REPL) command lines: prepend an empty " "string, which means the current working directory." msgstr "" -#: ../../library/sys.rst:1503 msgid "" "To not prepend this potentially unsafe path, use the :option:`-P` command " "line option or the :envvar:`PYTHONSAFEPATH` environment variable." msgstr "" -#: ../../library/sys.rst:1506 msgid "" "A program is free to modify this list for its own purposes. Only strings " "should be added to :data:`sys.path`; all other data types are ignored during " "import." msgstr "" -#: ../../library/sys.rst:1512 msgid "" -"Module :mod:`site` This describes how to use .pth files to " -"extend :data:`sys.path`." +"Module :mod:`site` This describes how to use .pth files to extend :data:`sys." +"path`." msgstr "" -#: ../../library/sys.rst:1517 msgid "" -"A list of callables that take a path argument to try to create " -"a :term:`finder` for the path. If a finder can be created, it is to be " -"returned by the callable, else raise :exc:`ImportError`." +"A list of callables that take a path argument to try to create a :term:" +"`finder` for the path. If a finder can be created, it is to be returned by " +"the callable, else raise :exc:`ImportError`." msgstr "" -#: ../../library/sys.rst:1521 ../../library/sys.rst:1532 msgid "Originally specified in :pep:`302`." msgstr "" -#: ../../library/sys.rst:1526 msgid "" "A dictionary acting as a cache for :term:`finder` objects. The keys are " "paths that have been passed to :data:`sys.path_hooks` and the values are the " @@ -1876,99 +1571,75 @@ msgid "" "is found on :data:`sys.path_hooks` then ``None`` is stored." msgstr "" -#: ../../library/sys.rst:1537 msgid "A string containing a platform identifier. Known values are:" msgstr "" -#: ../../library/sys.rst:1540 msgid "System" msgstr "" -#: ../../library/sys.rst:1540 msgid "``platform`` value" msgstr "" -#: ../../library/sys.rst:1542 msgid "AIX" msgstr "" -#: ../../library/sys.rst:1542 msgid "``'aix'``" msgstr "" -#: ../../library/sys.rst:1543 msgid "Android" msgstr "" -#: ../../library/sys.rst:1543 msgid "``'android'``" msgstr "" -#: ../../library/sys.rst:1544 msgid "Emscripten" msgstr "" -#: ../../library/sys.rst:1544 msgid "``'emscripten'``" msgstr "" -#: ../../library/sys.rst:1545 msgid "FreeBSD" msgstr "" -#: ../../library/sys.rst:1545 msgid "``'freebsd'``" msgstr "" -#: ../../library/sys.rst:1546 msgid "iOS" msgstr "" -#: ../../library/sys.rst:1546 msgid "``'ios'``" msgstr "" -#: ../../library/sys.rst:1547 msgid "Linux" msgstr "" -#: ../../library/sys.rst:1547 msgid "``'linux'``" msgstr "" -#: ../../library/sys.rst:1548 msgid "macOS" msgstr "" -#: ../../library/sys.rst:1548 msgid "``'darwin'``" msgstr "" -#: ../../library/sys.rst:1549 msgid "Windows" msgstr "" -#: ../../library/sys.rst:1549 msgid "``'win32'``" msgstr "" -#: ../../library/sys.rst:1550 msgid "Windows/Cygwin" msgstr "" -#: ../../library/sys.rst:1550 msgid "``'cygwin'``" msgstr "" -#: ../../library/sys.rst:1551 msgid "WASI" msgstr "" -#: ../../library/sys.rst:1551 msgid "``'wasi'``" msgstr "" -#: ../../library/sys.rst:1554 msgid "" "On Unix systems not listed in the table, the value is the lowercased OS name " "as returned by ``uname -s``, with the first part of the version as returned " @@ -1977,87 +1648,73 @@ msgid "" "therefore recommended to use the following idiom::" msgstr "" -#: ../../library/sys.rst:1560 msgid "" "if sys.platform.startswith('sunos'):\n" " # SunOS-specific code here..." msgstr "" -#: ../../library/sys.rst:1563 msgid "" "On Linux, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'linux'``, instead of ``'linux2'`` or ``'linux3'``." msgstr "" -#: ../../library/sys.rst:1567 msgid "" "On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix5'`` or ``'aix7'``." msgstr "" -#: ../../library/sys.rst:1571 msgid "" "On Android, :data:`sys.platform` now returns ``'android'`` rather than " "``'linux'``." msgstr "" -#: ../../library/sys.rst:1575 msgid "" "On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. " "It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``." msgstr "" -#: ../../library/sys.rst:1581 msgid "" ":data:`os.name` has a coarser granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" -#: ../../library/sys.rst:1584 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." msgstr "" -#: ../../library/sys.rst:1590 msgid "" "Name of the platform-specific library directory. It is used to build the " "path of standard library and the paths of installed extension modules." msgstr "" -#: ../../library/sys.rst:1593 msgid "" "It is equal to ``\"lib\"`` on most platforms. On Fedora and SuSE, it is " -"equal to ``\"lib64\"`` on 64-bit platforms which gives the following " -"``sys.path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" +"equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." +"path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" msgstr "" -#: ../../library/sys.rst:1597 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" msgstr "" -#: ../../library/sys.rst:1599 msgid "" "``/usr/lib64/pythonX.Y/lib-dynload/``: C extension modules of the standard " "library (like the :mod:`errno` module, the exact filename is platform " "specific)" msgstr "" -#: ../../library/sys.rst:1602 msgid "" -"``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, " -"not :data:`sys.platlibdir`): Third-party modules" +"``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." +"platlibdir`): Third-party modules" msgstr "" -#: ../../library/sys.rst:1604 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" msgstr "" -#: ../../library/sys.rst:1612 msgid "" "A string giving the site-specific directory prefix where the platform " "independent Python files are installed; on Unix, the default is :file:`/usr/" @@ -2066,7 +1723,6 @@ msgid "" "derived paths." msgstr "" -#: ../../library/sys.rst:1620 msgid "" "If a :ref:`virtual environment ` is in effect, this :data:`prefix` " "will point to the virtual environment. The value for the Python installation " @@ -2074,7 +1730,6 @@ msgid "" "init-virtual-environments` for more information." msgstr "" -#: ../../library/sys.rst:1644 msgid "" "Strings specifying the primary and secondary prompt of the interpreter. " "These are only defined if the interpreter is in interactive mode. Their " @@ -2084,25 +1739,22 @@ msgid "" "used to implement a dynamic prompt." msgstr "" -#: ../../library/sys.rst:1654 msgid "" "Set the flags used by the interpreter for :c:func:`dlopen` calls, such as " "when the interpreter loads extension modules. Among other things, this will " "enable a lazy resolving of symbols when importing a module, if called as " "``sys.setdlopenflags(0)``. To share symbols across extension modules, call " "as ``sys.setdlopenflags(os.RTLD_GLOBAL)``. Symbolic names for the flag " -"values can be found in the :mod:`os` module (:samp:`RTLD_{xxx}` constants, " -"e.g. :const:`os.RTLD_LAZY`)." +"values can be found in the :mod:`os` module (:samp:`RTLD_{xxx}` constants, e." +"g. :const:`os.RTLD_LAZY`)." msgstr "" -#: ../../library/sys.rst:1666 msgid "" "Set the :ref:`integer string conversion length limitation " -"` used by this interpreter. See " -"also :func:`get_int_max_str_digits`." +"` used by this interpreter. See also :func:" +"`get_int_max_str_digits`." msgstr "" -#: ../../library/sys.rst:1678 msgid "" "Set the system's profile function, which allows you to implement a Python " "source code profiler in Python. See chapter :ref:`profile` for more " @@ -2117,14 +1769,12 @@ msgid "" "in the profile function will cause itself unset." msgstr "" -#: ../../library/sys.rst:1690 msgid "" -"The same tracing mechanism is used for :func:`!setprofile` " -"as :func:`settrace`. To trace calls with :func:`!setprofile` inside a " -"tracing function (e.g. in a debugger breakpoint), see :func:`call_tracing`." +"The same tracing mechanism is used for :func:`!setprofile` as :func:" +"`settrace`. To trace calls with :func:`!setprofile` inside a tracing " +"function (e.g. in a debugger breakpoint), see :func:`call_tracing`." msgstr "" -#: ../../library/sys.rst:1694 msgid "" "Profile functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " @@ -2132,71 +1782,57 @@ msgid "" "depends on the event type." msgstr "" -#: ../../library/sys.rst:1699 ../../library/sys.rst:1786 msgid "The events have the following meaning:" msgstr "" -#: ../../library/sys.rst:1701 ../../library/sys.rst:1788 msgid "``'call'``" msgstr "" -#: ../../library/sys.rst:1702 msgid "" "A function is called (or some other code block entered). The profile " "function is called; *arg* is ``None``." msgstr "" -#: ../../library/sys.rst:1705 ../../library/sys.rst:1803 msgid "``'return'``" msgstr "" -#: ../../library/sys.rst:1706 msgid "" "A function (or other code block) is about to return. The profile function " "is called; *arg* is the value that will be returned, or ``None`` if the " "event is caused by an exception being raised." msgstr "" -#: ../../library/sys.rst:1710 msgid "``'c_call'``" msgstr "" -#: ../../library/sys.rst:1711 msgid "" "A C function is about to be called. This may be an extension function or a " "built-in. *arg* is the C function object." msgstr "" -#: ../../library/sys.rst:1714 msgid "``'c_return'``" msgstr "" -#: ../../library/sys.rst:1715 msgid "A C function has returned. *arg* is the C function object." msgstr "" -#: ../../library/sys.rst:1717 msgid "``'c_exception'``" msgstr "" -#: ../../library/sys.rst:1718 msgid "A C function has raised an exception. *arg* is the C function object." msgstr "" -#: ../../library/sys.rst:1720 msgid "" "Raises an :ref:`auditing event ` ``sys.setprofile`` with no " "arguments." msgstr "" -#: ../../library/sys.rst:1725 msgid "" "Set the maximum depth of the Python interpreter stack to *limit*. This " "limit prevents infinite recursion from causing an overflow of the C stack " "and crashing Python." msgstr "" -#: ../../library/sys.rst:1729 msgid "" "The highest possible limit is platform-dependent. A user may need to set " "the limit higher when they have a program that requires deep recursion and a " @@ -2204,19 +1840,16 @@ msgid "" "because a too-high limit can lead to a crash." msgstr "" -#: ../../library/sys.rst:1734 msgid "" -"If the new limit is too low at the current recursion depth, " -"a :exc:`RecursionError` exception is raised." +"If the new limit is too low at the current recursion depth, a :exc:" +"`RecursionError` exception is raised." msgstr "" -#: ../../library/sys.rst:1737 msgid "" "A :exc:`RecursionError` exception is now raised if the new limit is too low " "at the current recursion depth." msgstr "" -#: ../../library/sys.rst:1744 msgid "" "Set the interpreter's thread switch interval (in seconds). This floating-" "point value determines the ideal duration of the \"timeslices\" allocated to " @@ -2227,24 +1860,21 @@ msgid "" "scheduler." msgstr "" -#: ../../library/sys.rst:1761 msgid "" "Set the system's trace function, which allows you to implement a Python " "source code debugger in Python. The function is thread-specific; for a " "debugger to support multiple threads, it must register a trace function " -"using :func:`settrace` for each thread being debugged or " -"use :func:`threading.settrace`." +"using :func:`settrace` for each thread being debugged or use :func:" +"`threading.settrace`." msgstr "" -#: ../../library/sys.rst:1766 msgid "" "Trace functions should have three arguments: *frame*, *event*, and *arg*. " -"*frame* is the current stack frame. *event* is a string: ``'call'``, " -"``'line'``, ``'return'``, ``'exception'`` or ``'opcode'``. *arg* depends on " -"the event type." +"*frame* is the :ref:`current stack frame `. *event* is a " +"string: ``'call'``, ``'line'``, ``'return'``, ``'exception'`` or " +"``'opcode'``. *arg* depends on the event type." msgstr "" -#: ../../library/sys.rst:1771 msgid "" "The trace function is invoked (with *event* set to ``'call'``) whenever a " "new local scope is entered; it should return a reference to a local trace " @@ -2252,36 +1882,30 @@ msgid "" "traced." msgstr "" -#: ../../library/sys.rst:1776 msgid "" "The local trace function should return a reference to itself, or to another " "function which would then be used as the local trace function for the scope." msgstr "" -#: ../../library/sys.rst:1779 msgid "" "If there is any error occurred in the trace function, it will be unset, just " "like ``settrace(None)`` is called." msgstr "" -#: ../../library/sys.rst:1783 msgid "" "Tracing is disabled while calling the trace function (e.g. a function set " "by :func:`!settrace`). For recursive tracing see :func:`call_tracing`." msgstr "" -#: ../../library/sys.rst:1789 msgid "" "A function is called (or some other code block entered). The global trace " "function is called; *arg* is ``None``; the return value specifies the local " "trace function." msgstr "" -#: ../../library/sys.rst:1793 msgid "``'line'``" msgstr "" -#: ../../library/sys.rst:1794 msgid "" "The interpreter is about to execute a new line of code or re-execute the " "condition of a loop. The local trace function is called; *arg* is ``None``; " @@ -2291,7 +1915,6 @@ msgid "" "to :const:`False` on that :ref:`frame `." msgstr "" -#: ../../library/sys.rst:1804 msgid "" "A function (or other code block) is about to return. The local trace " "function is called; *arg* is the value that will be returned, or ``None`` if " @@ -2299,62 +1922,53 @@ msgid "" "return value is ignored." msgstr "" -#: ../../library/sys.rst:1809 msgid "``'exception'``" msgstr "" -#: ../../library/sys.rst:1810 msgid "" "An exception has occurred. The local trace function is called; *arg* is a " "tuple ``(exception, value, traceback)``; the return value specifies the new " "local trace function." msgstr "" -#: ../../library/sys.rst:1814 msgid "``'opcode'``" msgstr "" -#: ../../library/sys.rst:1815 msgid "" "The interpreter is about to execute a new opcode (see :mod:`dis` for opcode " "details). The local trace function is called; *arg* is ``None``; the return " "value specifies the new local trace function. Per-opcode events are not " -"emitted by default: they must be explicitly requested by " -"setting :attr:`~frame.f_trace_opcodes` to :const:`True` on the :ref:`frame " -"`." +"emitted by default: they must be explicitly requested by setting :attr:" +"`~frame.f_trace_opcodes` to :const:`True` on the :ref:`frame `." msgstr "" -#: ../../library/sys.rst:1822 msgid "" "Note that as an exception is propagated down the chain of callers, an " "``'exception'`` event is generated at each level." msgstr "" -#: ../../library/sys.rst:1825 msgid "" "For more fine-grained usage, it's possible to set a trace function by " "assigning ``frame.f_trace = tracefunc`` explicitly, rather than relying on " "it being set indirectly via the return value from an already installed trace " "function. This is also required for activating the trace function on the " "current frame, which :func:`settrace` doesn't do. Note that in order for " -"this to work, a global tracing function must have been installed " -"with :func:`settrace` in order to enable the runtime tracing machinery, but " -"it doesn't need to be the same tracing function (e.g. it could be a low " -"overhead tracing function that simply returns ``None`` to disable itself " -"immediately on each frame)." +"this to work, a global tracing function must have been installed with :func:" +"`settrace` in order to enable the runtime tracing machinery, but it doesn't " +"need to be the same tracing function (e.g. it could be a low overhead " +"tracing function that simply returns ``None`` to disable itself immediately " +"on each frame)." msgstr "" -#: ../../library/sys.rst:1836 msgid "For more information on code and frame objects, refer to :ref:`types`." msgstr "" -#: ../../library/sys.rst:1838 msgid "" "Raises an :ref:`auditing event ` ``sys.settrace`` with no " "arguments." msgstr "" -#: ../../library/sys.rst:1842 msgid "" "The :func:`settrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -2362,47 +1976,40 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: ../../library/sys.rst:1849 msgid "" -"``'opcode'`` event type added; :attr:`~frame.f_trace_lines` " -"and :attr:`~frame.f_trace_opcodes` attributes added to frames" +"``'opcode'`` event type added; :attr:`~frame.f_trace_lines` and :attr:" +"`~frame.f_trace_opcodes` attributes added to frames" msgstr "" -#: ../../library/sys.rst:1854 msgid "" -"Accepts two optional keyword arguments which are callables that accept " -"an :term:`asynchronous generator iterator` as an argument. The *firstiter* " +"Accepts two optional keyword arguments which are callables that accept an :" +"term:`asynchronous generator iterator` as an argument. The *firstiter* " "callable will be called when an asynchronous generator is iterated for the " "first time. The *finalizer* will be called when an asynchronous generator is " "about to be garbage collected." msgstr "" -#: ../../library/sys.rst:1860 msgid "" -"Raises an :ref:`auditing event ` " -"``sys.set_asyncgen_hooks_firstiter`` with no arguments." +"Raises an :ref:`auditing event ` ``sys." +"set_asyncgen_hooks_firstiter`` with no arguments." msgstr "" -#: ../../library/sys.rst:1862 msgid "" -"Raises an :ref:`auditing event ` " -"``sys.set_asyncgen_hooks_finalizer`` with no arguments." +"Raises an :ref:`auditing event ` ``sys." +"set_asyncgen_hooks_finalizer`` with no arguments." msgstr "" -#: ../../library/sys.rst:1864 msgid "" "Two auditing events are raised because the underlying API consists of two " "calls, each of which must raise its own event." msgstr "" -#: ../../library/sys.rst:1867 msgid "" "See :pep:`525` for more details, and for a reference example of a " -"*finalizer* method see the implementation of " -"``asyncio.Loop.shutdown_asyncgens`` in :source:`Lib/asyncio/base_events.py`" +"*finalizer* method see the implementation of ``asyncio.Loop." +"shutdown_asyncgens`` in :source:`Lib/asyncio/base_events.py`" msgstr "" -#: ../../library/sys.rst:1879 msgid "" "Allows enabling or disabling coroutine origin tracking. When enabled, the " "``cr_origin`` attribute on coroutine objects will contain a tuple of " @@ -2411,53 +2018,42 @@ msgid "" "disabled, ``cr_origin`` will be ``None``." msgstr "" -#: ../../library/sys.rst:1886 msgid "" "To enable, pass a *depth* value greater than zero; this sets the number of " "frames whose information will be captured. To disable, set *depth* to zero." msgstr "" -#: ../../library/sys.rst:1890 msgid "This setting is thread-specific." msgstr "" -#: ../../library/sys.rst:1900 msgid "" "Activate the stack profiler trampoline *backend*. The only supported backend " "is ``\"perf\"``." msgstr "" -#: ../../library/sys.rst:1903 msgid "Stack trampolines cannot be activated if the JIT is active." msgstr "" -#: ../../library/sys.rst:1911 msgid ":ref:`perf_profiling`" msgstr "" -#: ../../library/sys.rst:1912 msgid "https://perf.wiki.kernel.org" msgstr "" -#: ../../library/sys.rst:1916 msgid "Deactivate the current stack profiler trampoline backend." msgstr "" -#: ../../library/sys.rst:1918 msgid "If no stack profiler is activated, this function has no effect." msgstr "" -#: ../../library/sys.rst:1926 msgid "Return ``True`` if a stack profiler trampoline is active." msgstr "" -#: ../../library/sys.rst:1935 msgid "" "Executes *script*, a file containing Python code in the remote process with " "the given *pid*." msgstr "" -#: ../../library/sys.rst:1938 msgid "" "This function returns immediately, and the code will be executed by the " "target process's main thread at the next available opportunity, similarly to " @@ -2467,7 +2063,6 @@ msgid "" "been overwritten." msgstr "" -#: ../../library/sys.rst:1945 msgid "" "The remote process must be running a CPython interpreter of the same major " "and minor version as the local process. If either the local or remote " @@ -2475,15 +2070,13 @@ msgid "" "local and remote interpreters must be the same exact version." msgstr "" -#: ../../library/sys.rst:1950 ../../library/sys.rst:1952 msgid "" "When the code is executed in the remote process, an :ref:`auditing event " "` ``sys.remote_exec`` is raised with the *pid* and the path to the " -"script file. This event is raised in the process that " -"called :func:`sys.remote_exec`." +"script file. This event is raised in the process that called :func:`sys." +"remote_exec`." msgstr "" -#: ../../library/sys.rst:1957 ../../library/sys.rst:1959 msgid "" "When the script is executed in the remote process, an :ref:`auditing event " "` ``cpython.remote_debugger_script`` is raised with the path in " @@ -2491,75 +2084,61 @@ msgid "" "that called :func:`sys.remote_exec`." msgstr "" -#: ../../library/sys.rst:1972 msgid "" "Changes the :term:`filesystem encoding and error handler` to 'mbcs' and " "'replace' respectively, for consistency with versions of Python prior to 3.6." msgstr "" -#: ../../library/sys.rst:1976 msgid "" "This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable before launching Python." msgstr "" -#: ../../library/sys.rst:1979 msgid "" -"See also :func:`sys.getfilesystemencoding` " -"and :func:`sys.getfilesystemencodeerrors`." +"See also :func:`sys.getfilesystemencoding` and :func:`sys." +"getfilesystemencodeerrors`." msgstr "" -#: ../../library/sys.rst:1985 msgid "" "Changing the filesystem encoding after Python startup is risky because the " "old fsencoding or paths encoded by the old fsencoding may be cached " "somewhere. Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead." msgstr "" -#: ../../library/sys.rst:1989 msgid "See :pep:`529` for more details." msgstr "" -#: ../../library/sys.rst:1992 msgid "Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead." msgstr "" -#: ../../library/sys.rst:1999 msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" msgstr "" -#: ../../library/sys.rst:2002 msgid "" -"``stdin`` is used for all interactive input (including calls " -"to :func:`input`);" +"``stdin`` is used for all interactive input (including calls to :func:" +"`input`);" msgstr "" -#: ../../library/sys.rst:2004 msgid "" "``stdout`` is used for the output of :func:`print` and :term:`expression` " "statements and for the prompts of :func:`input`;" msgstr "" -#: ../../library/sys.rst:2006 msgid "The interpreter's own prompts and its error messages go to ``stderr``." msgstr "" -#: ../../library/sys.rst:2008 msgid "" "These streams are regular :term:`text files ` like those returned " "by the :func:`open` function. Their parameters are chosen as follows:" msgstr "" -#: ../../library/sys.rst:2012 msgid "" -"The encoding and error handling are is initialized " -"from :c:member:`PyConfig.stdio_encoding` " -"and :c:member:`PyConfig.stdio_errors`." +"The encoding and error handling are is initialized from :c:member:`PyConfig." +"stdio_encoding` and :c:member:`PyConfig.stdio_errors`." msgstr "" -#: ../../library/sys.rst:2015 msgid "" "On Windows, UTF-8 is used for the console device. Non-character devices " "such as disk files and pipes use the system locale encoding (i.e. the ANSI " @@ -2570,45 +2149,38 @@ msgid "" "initially attached to a console." msgstr "" -#: ../../library/sys.rst:2024 msgid "" "The special behaviour of the console can be overridden by setting the " "environment variable PYTHONLEGACYWINDOWSSTDIO before starting Python. In " "that case, the console codepages are used as for any other character device." msgstr "" -#: ../../library/sys.rst:2029 msgid "" -"Under all platforms, you can override the character encoding by setting " -"the :envvar:`PYTHONIOENCODING` environment variable before starting Python " -"or by using the new :option:`-X` ``utf8`` command line option " -"and :envvar:`PYTHONUTF8` environment variable. However, for the Windows " -"console, this only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also " -"set." +"Under all platforms, you can override the character encoding by setting the :" +"envvar:`PYTHONIOENCODING` environment variable before starting Python or by " +"using the new :option:`-X` ``utf8`` command line option and :envvar:" +"`PYTHONUTF8` environment variable. However, for the Windows console, this " +"only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also set." msgstr "" -#: ../../library/sys.rst:2036 msgid "" "When interactive, the ``stdout`` stream is line-buffered. Otherwise, it is " "block-buffered like regular text files. The ``stderr`` stream is line-" "buffered in both cases. You can make both streams unbuffered by passing " -"the :option:`-u` command-line option or setting " -"the :envvar:`PYTHONUNBUFFERED` environment variable." +"the :option:`-u` command-line option or setting the :envvar:" +"`PYTHONUNBUFFERED` environment variable." msgstr "" -#: ../../library/sys.rst:2042 msgid "" "Non-interactive ``stderr`` is now line-buffered instead of fully buffered." msgstr "" -#: ../../library/sys.rst:2048 msgid "" "To write or read binary data from/to the standard streams, use the " "underlying binary :data:`~io.TextIOBase.buffer` object. For example, to " "write bytes to :data:`stdout`, use ``sys.stdout.buffer.write(b'abc')``." msgstr "" -#: ../../library/sys.rst:2052 msgid "" "However, if you are writing a library (and do not control in which context " "its code will be executed), be aware that the standard streams may be " @@ -2616,7 +2188,6 @@ msgid "" "support the :attr:`!buffer` attribute." msgstr "" -#: ../../library/sys.rst:2062 msgid "" "These objects contain the original values of ``stdin``, ``stderr`` and " "``stdout`` at the start of the program. They are used during finalization, " @@ -2624,7 +2195,6 @@ msgid "" "``sys.std*`` object has been redirected." msgstr "" -#: ../../library/sys.rst:2067 msgid "" "It can also be used to restore the actual files to known working file " "objects in case they have been overwritten with a broken object. However, " @@ -2632,7 +2202,6 @@ msgid "" "before replacing it, and restore the saved object." msgstr "" -#: ../../library/sys.rst:2073 msgid "" "Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " "original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " @@ -2640,12 +2209,10 @@ msgid "" "to a console and Python apps started with :program:`pythonw`." msgstr "" -#: ../../library/sys.rst:2081 msgid "" "A frozenset of strings containing the names of standard library modules." msgstr "" -#: ../../library/sys.rst:2083 msgid "" "It is the same on all platforms. Modules which are not available on some " "platforms and modules disabled at Python build are also listed. All module " @@ -2653,7 +2220,6 @@ msgid "" "modules are excluded." msgstr "" -#: ../../library/sys.rst:2088 msgid "" "For packages, only the main package is listed: sub-packages and sub-modules " "are not listed. For example, the ``email`` package is listed, but the " @@ -2661,60 +2227,47 @@ msgid "" "listed." msgstr "" -#: ../../library/sys.rst:2093 msgid "See also the :data:`sys.builtin_module_names` list." msgstr "" -#: ../../library/sys.rst:2100 msgid "" "A :term:`named tuple` holding information about the thread implementation." msgstr "" -#: ../../library/sys.rst:2105 msgid "The name of the thread implementation:" msgstr "" -#: ../../library/sys.rst:2107 msgid "``\"nt\"``: Windows threads" msgstr "" -#: ../../library/sys.rst:2108 msgid "``\"pthread\"``: POSIX threads" msgstr "" -#: ../../library/sys.rst:2109 msgid "" "``\"pthread-stubs\"``: stub POSIX threads (on WebAssembly platforms without " "threading support)" msgstr "" -#: ../../library/sys.rst:2111 msgid "``\"solaris\"``: Solaris threads" msgstr "" -#: ../../library/sys.rst:2115 msgid "The name of the lock implementation:" msgstr "" -#: ../../library/sys.rst:2117 msgid "``\"semaphore\"``: a lock uses a semaphore" msgstr "" -#: ../../library/sys.rst:2118 msgid "``\"mutex+cond\"``: a lock uses a mutex and a condition variable" msgstr "" -#: ../../library/sys.rst:2119 msgid "``None`` if this information is unknown" msgstr "" -#: ../../library/sys.rst:2123 msgid "" "The name and version of the thread library. It is a string, or ``None`` if " "this information is unknown." msgstr "" -#: ../../library/sys.rst:2131 msgid "" "When this variable is set to an integer value, it determines the maximum " "number of levels of traceback information printed when an unhandled " @@ -2723,73 +2276,59 @@ msgid "" "are printed." msgstr "" -#: ../../library/sys.rst:2139 msgid "Handle an unraisable exception." msgstr "" -#: ../../library/sys.rst:2141 msgid "" "Called when an exception has occurred but there is no way for Python to " "handle it. For example, when a destructor raises an exception or during " "garbage collection (:func:`gc.collect`)." msgstr "" -#: ../../library/sys.rst:2145 msgid "The *unraisable* argument has the following attributes:" msgstr "" -#: ../../library/sys.rst:2147 msgid ":attr:`!exc_type`: Exception type." msgstr "" -#: ../../library/sys.rst:2148 msgid ":attr:`!exc_value`: Exception value, can be ``None``." msgstr "" -#: ../../library/sys.rst:2149 msgid ":attr:`!exc_traceback`: Exception traceback, can be ``None``." msgstr "" -#: ../../library/sys.rst:2150 msgid ":attr:`!err_msg`: Error message, can be ``None``." msgstr "" -#: ../../library/sys.rst:2151 msgid ":attr:`!object`: Object causing the exception, can be ``None``." msgstr "" -#: ../../library/sys.rst:2153 msgid "" "The default hook formats :attr:`!err_msg` and :attr:`!object` as: " -"``f'{err_msg}: {object!r}'``; use \"Exception ignored in\" error message " -"if :attr:`!err_msg` is ``None``." +"``f'{err_msg}: {object!r}'``; use \"Exception ignored in\" error message if :" +"attr:`!err_msg` is ``None``." msgstr "" -#: ../../library/sys.rst:2157 msgid "" ":func:`sys.unraisablehook` can be overridden to control how unraisable " "exceptions are handled." msgstr "" -#: ../../library/sys.rst:2162 msgid ":func:`excepthook` which handles uncaught exceptions." msgstr "" -#: ../../library/sys.rst:2166 msgid "" "Storing :attr:`!exc_value` using a custom hook can create a reference cycle. " "It should be cleared explicitly to break the reference cycle when the " "exception is no longer needed." msgstr "" -#: ../../library/sys.rst:2170 msgid "" "Storing :attr:`!object` using a custom hook can resurrect it if it is set to " "an object which is being finalized. Avoid storing :attr:`!object` after the " "custom hook completes to avoid resurrecting objects." msgstr "" -#: ../../library/sys.rst:2174 ../../library/sys.rst:2176 msgid "" "Raise an auditing event ``sys.unraisablehook`` with arguments *hook*, " "*unraisable* when an exception that cannot be handled occurs. The " @@ -2797,7 +2336,6 @@ msgid "" "hook has been set, *hook* may be ``None``." msgstr "" -#: ../../library/sys.rst:2185 msgid "" "A string containing the version number of the Python interpreter plus " "additional information on the build number and compiler used. This string " @@ -2806,41 +2344,35 @@ msgid "" "functions provided by the :mod:`platform` module." msgstr "" -#: ../../library/sys.rst:2194 msgid "" "The C API version, equivalent to the C macro :c:macro:`PYTHON_API_VERSION`. " "Defined for backwards compatibility." msgstr "" -#: ../../library/sys.rst:2197 msgid "" "Currently, this constant is not updated in new Python versions, and is not " "useful for versioning. This may change in the future." msgstr "" -#: ../../library/sys.rst:2203 msgid "" "A tuple containing the five components of the version number: *major*, " "*minor*, *micro*, *releaselevel*, and *serial*. All values except " "*releaselevel* are integers; the release level is ``'alpha'``, ``'beta'``, " "``'candidate'``, or ``'final'``. The ``version_info`` value corresponding " "to the Python version 2.0 is ``(2, 0, 0, 'final', 0)``. The components can " -"also be accessed by name, so ``sys.version_info[0]`` is equivalent to " -"``sys.version_info.major`` and so on." +"also be accessed by name, so ``sys.version_info[0]`` is equivalent to ``sys." +"version_info.major`` and so on." msgstr "" -#: ../../library/sys.rst:2211 msgid "Added named component attributes." msgstr "" -#: ../../library/sys.rst:2216 msgid "" "This is an implementation detail of the warnings framework; do not modify " "this value. Refer to the :mod:`warnings` module for more information on the " "warnings framework." msgstr "" -#: ../../library/sys.rst:2223 msgid "" "The version number used to form registry keys on Windows platforms. This is " "stored as string resource 1000 in the Python DLL. The value is normally the " @@ -2849,20 +2381,17 @@ msgid "" "has no effect on the registry keys used by Python." msgstr "" -#: ../../library/sys.rst:2235 msgid "" "Namespace containing functions and constants for register callbacks and " "controlling monitoring events. See :mod:`sys.monitoring` for details." msgstr "" -#: ../../library/sys.rst:2241 msgid "" "A dictionary of the various implementation-specific flags passed through " "the :option:`-X` command-line option. Option names are either mapped to " "their values, if given explicitly, or to :const:`True`. Example:" msgstr "" -#: ../../library/sys.rst:2245 msgid "" "$ ./python -Xa=b -Xc\n" "Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50)\n" @@ -2874,80 +2403,62 @@ msgid "" "{'a': 'b', 'c': True}" msgstr "" -#: ../../library/sys.rst:2257 msgid "" "This is a CPython-specific way of accessing options passed through :option:`-" "X`. Other implementations may export them through other means, or not at " "all." msgstr "" -#: ../../library/sys.rst:2265 msgid "Citations" msgstr "" -#: ../../library/sys.rst:2266 msgid "" "ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " "standard is available at https://www.open-std.org/jtc1/sc22/wg14/www/docs/" "n1256.pdf\\ ." msgstr "" -#: ../../library/sys.rst:99 msgid "auditing" msgstr "" -#: ../../library/sys.rst:461 msgid "object" msgstr "" -#: ../../library/sys.rst:461 msgid "traceback" msgstr "" -#: ../../library/sys.rst:990 ../../library/sys.rst:1674 msgid "profile function" msgstr "" -#: ../../library/sys.rst:990 ../../library/sys.rst:1674 msgid "profiler" msgstr "" -#: ../../library/sys.rst:999 ../../library/sys.rst:1757 msgid "trace function" msgstr "" -#: ../../library/sys.rst:999 ../../library/sys.rst:1757 msgid "debugger" msgstr "" -#: ../../library/sys.rst:1486 msgid "module" msgstr "" -#: ../../library/sys.rst:1486 msgid "search" msgstr "" -#: ../../library/sys.rst:1486 msgid "path" msgstr "" -#: ../../library/sys.rst:1638 msgid "interpreter prompts" msgstr "" -#: ../../library/sys.rst:1638 msgid "prompts, interpreter" msgstr "" -#: ../../library/sys.rst:1638 msgid ">>>" msgstr "" -#: ../../library/sys.rst:1638 msgid "interpreter prompt" msgstr "" -#: ../../library/sys.rst:1638 msgid "..." msgstr "" diff --git a/library/sys_path_init.po b/library/sys_path_init.po index 5aa4ae7..52288bb 100644 --- a/library/sys_path_init.po +++ b/library/sys_path_init.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,32 +18,27 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sys_path_init.rst:4 msgid "The initialization of the :data:`sys.path` module search path" msgstr "" -#: ../../library/sys_path_init.rst:6 msgid "" "A module search path is initialized when Python starts. This module search " "path may be accessed at :data:`sys.path`." msgstr "" -#: ../../library/sys_path_init.rst:9 msgid "" "The first entry in the module search path is the directory that contains the " "input script, if there is one. Otherwise, the first entry is the current " -"directory, which is the case when executing the interactive shell, " -"a :option:`-c` command, or :option:`-m` module." +"directory, which is the case when executing the interactive shell, a :option:" +"`-c` command, or :option:`-m` module." msgstr "" -#: ../../library/sys_path_init.rst:14 msgid "" "The :envvar:`PYTHONPATH` environment variable is often used to add " "directories to the search path. If this environment variable is found then " "the contents are added to the module search path." msgstr "" -#: ../../library/sys_path_init.rst:20 msgid "" ":envvar:`PYTHONPATH` will affect all installed Python versions/environments. " "Be wary of setting this in your shell profile or global environment " @@ -51,7 +46,6 @@ msgid "" "mentioned below." msgstr "" -#: ../../library/sys_path_init.rst:24 msgid "" "The next items added are the directories containing standard Python modules " "as well as any :term:`extension module`\\s that these modules depend on. " @@ -61,7 +55,6 @@ msgid "" "``exec_prefix``." msgstr "" -#: ../../library/sys_path_init.rst:30 msgid "" "The :envvar:`PYTHONHOME` environment variable may be used to set the " "``prefix`` and ``exec_prefix`` locations. Otherwise these directories are " @@ -71,41 +64,37 @@ msgid "" "starting point. The Python executable location is called ``home``." msgstr "" -#: ../../library/sys_path_init.rst:37 msgid "" "Once ``home`` is determined, the ``prefix`` directory is found by first " -"looking for :file:`python{majorversion}{minorversion}.zip` " -"(``python311.zip``). On Windows the zip archive is searched for in ``home`` " -"and on Unix the archive is expected to be in :file:`lib`. Note that the " -"expected zip archive location is added to the module search path even if the " -"archive does not exist. If no archive was found, Python on Windows will " -"continue the search for ``prefix`` by looking for :file:`Lib\\\\os.py`. " -"Python on Unix will look for :file:`lib/python{majorversion}.{minorversion}/" -"os.py` (``lib/python3.11/os.py``). On Windows ``prefix`` and ``exec_prefix`` " -"are the same, however on other platforms :file:`lib/python{majorversion}." -"{minorversion}/lib-dynload` (``lib/python3.11/lib-dynload``) is searched for " -"and used as an anchor for ``exec_prefix``. On some platforms :file:`lib` may " -"be :file:`lib64` or another value, see :data:`sys.platlibdir` " -"and :envvar:`PYTHONPLATLIBDIR`." +"looking for :file:`python{majorversion}{minorversion}.zip` (``python311." +"zip``). On Windows the zip archive is searched for in ``home`` and on Unix " +"the archive is expected to be in :file:`lib`. Note that the expected zip " +"archive location is added to the module search path even if the archive does " +"not exist. If no archive was found, Python on Windows will continue the " +"search for ``prefix`` by looking for :file:`Lib\\\\os.py`. Python on Unix " +"will look for :file:`lib/python{majorversion}.{minorversion}/os.py` (``lib/" +"python3.11/os.py``). On Windows ``prefix`` and ``exec_prefix`` are the same, " +"however on other platforms :file:`lib/python{majorversion}.{minorversion}/" +"lib-dynload` (``lib/python3.11/lib-dynload``) is searched for and used as an " +"anchor for ``exec_prefix``. On some platforms :file:`lib` may be :file:" +"`lib64` or another value, see :data:`sys.platlibdir` and :envvar:" +"`PYTHONPLATLIBDIR`." msgstr "" -#: ../../library/sys_path_init.rst:50 msgid "" -"Once found, ``prefix`` and ``exec_prefix`` are available " -"at :data:`sys.base_prefix` and :data:`sys.base_exec_prefix` respectively." +"Once found, ``prefix`` and ``exec_prefix`` are available at :data:`sys." +"base_prefix` and :data:`sys.base_exec_prefix` respectively." msgstr "" -#: ../../library/sys_path_init.rst:53 msgid "" "If :envvar:`PYTHONHOME` is not set, and a ``pyvenv.cfg`` file is found " -"alongside the main executable, or in its parent " -"directory, :data:`sys.prefix` and :data:`sys.exec_prefix` get set to the " -"directory containing ``pyvenv.cfg``, otherwise they are set to the same " -"value as :data:`sys.base_prefix` and :data:`sys.base_exec_prefix`, " -"respectively. This is used by :ref:`sys-path-init-virtual-environments`." +"alongside the main executable, or in its parent directory, :data:`sys." +"prefix` and :data:`sys.exec_prefix` get set to the directory containing " +"``pyvenv.cfg``, otherwise they are set to the same value as :data:`sys." +"base_prefix` and :data:`sys.base_exec_prefix`, respectively. This is used " +"by :ref:`sys-path-init-virtual-environments`." msgstr "" -#: ../../library/sys_path_init.rst:60 msgid "" "Finally, the :mod:`site` module is processed and :file:`site-packages` " "directories are added to the module search path. A common way to customize " @@ -113,50 +102,41 @@ msgid "" "modules as described in the :mod:`site` module documentation." msgstr "" -#: ../../library/sys_path_init.rst:67 msgid "" -"Certain command line options may further affect path calculations. " -"See :option:`-E`, :option:`-I`, :option:`-s` and :option:`-S` for further " -"details." +"Certain command line options may further affect path calculations. See :" +"option:`-E`, :option:`-I`, :option:`-s` and :option:`-S` for further details." msgstr "" -#: ../../library/sys_path_init.rst:72 msgid "" -":data:`sys.prefix` and :data:`sys.exec_prefix` are now set to the " -"``pyvenv.cfg`` directory during the path initialization. This was previously " -"done by :mod:`site`, therefore affected by :option:`-S`." +":data:`sys.prefix` and :data:`sys.exec_prefix` are now set to the ``pyvenv." +"cfg`` directory during the path initialization. This was previously done by :" +"mod:`site`, therefore affected by :option:`-S`." msgstr "" -#: ../../library/sys_path_init.rst:79 msgid "Virtual Environments" msgstr "" -#: ../../library/sys_path_init.rst:81 msgid "" "Virtual environments place a ``pyvenv.cfg`` file in their prefix, which " "causes :data:`sys.prefix` and :data:`sys.exec_prefix` to point to them, " "instead of the base installation." msgstr "" -#: ../../library/sys_path_init.rst:85 msgid "" "The ``prefix`` and ``exec_prefix`` values of the base installation are " "available at :data:`sys.base_prefix` and :data:`sys.base_exec_prefix`." msgstr "" -#: ../../library/sys_path_init.rst:88 msgid "" -"As well as being used as a marker to identify virtual environments, " -"``pyvenv.cfg`` may also be used to configure the :mod:`site` initialization. " -"Please refer to :mod:`site`'s :ref:`virtual environments documentation `." msgstr "" -#: ../../library/sys_path_init.rst:95 msgid ":envvar:`PYTHONHOME` overrides the ``pyvenv.cfg`` detection." msgstr "" -#: ../../library/sys_path_init.rst:99 msgid "" "There are other ways how \"virtual environments\" could be implemented, this " "documentation refers implementations based on the ``pyvenv.cfg`` mechanism, " @@ -165,11 +145,9 @@ msgid "" "diverge from it." msgstr "" -#: ../../library/sys_path_init.rst:106 msgid "_pth files" msgstr "" -#: ../../library/sys_path_init.rst:108 msgid "" "To completely override :data:`sys.path` create a ``._pth`` file with the " "same name as the shared library or executable (``python._pth`` or " @@ -180,7 +158,6 @@ msgid "" "allows paths to be restricted for any program loading the runtime if desired." msgstr "" -#: ../../library/sys_path_init.rst:116 msgid "" "When the file exists, all registry and environment variables are ignored, " "isolated mode is enabled, and :mod:`site` is not imported unless one line in " @@ -190,28 +167,23 @@ msgid "" "arbitrary code cannot be specified." msgstr "" -#: ../../library/sys_path_init.rst:123 msgid "" "Note that ``.pth`` files (without leading underscore) will be processed " "normally by the :mod:`site` module when ``import site`` has been specified." msgstr "" -#: ../../library/sys_path_init.rst:127 msgid "Embedded Python" msgstr "" -#: ../../library/sys_path_init.rst:129 msgid "" -"If Python is embedded within another " -"application :c:func:`Py_InitializeFromConfig` and the :c:type:`PyConfig` " -"structure can be used to initialize Python. The path specific details are " -"described at :ref:`init-path-config`." +"If Python is embedded within another application :c:func:" +"`Py_InitializeFromConfig` and the :c:type:`PyConfig` structure can be used " +"to initialize Python. The path specific details are described at :ref:`init-" +"path-config`." msgstr "" -#: ../../library/sys_path_init.rst:135 msgid ":ref:`windows_finding_modules` for detailed Windows notes." msgstr "" -#: ../../library/sys_path_init.rst:136 msgid ":ref:`using-on-unix` for Unix details." msgstr "" diff --git a/library/sysconfig.po b/library/sysconfig.po index 7c5364f..56f7326 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,74 +18,60 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/sysconfig.rst:2 msgid "" ":mod:`!sysconfig` --- Provide access to Python's configuration information" msgstr "" -#: ../../library/sysconfig.rst:12 msgid "**Source code:** :source:`Lib/sysconfig`" msgstr "" -#: ../../library/sysconfig.rst:19 msgid "" "The :mod:`sysconfig` module provides access to Python's configuration " "information like the list of installation paths and the configuration " "variables relevant for the current platform." msgstr "" -#: ../../library/sysconfig.rst:25 msgid "Configuration variables" msgstr "" -#: ../../library/sysconfig.rst:27 msgid "" "A Python distribution contains a :file:`Makefile` and a :file:`pyconfig.h` " "header file that are necessary to build both the Python binary itself and " "third-party C extensions compiled using ``setuptools``." msgstr "" -#: ../../library/sysconfig.rst:31 msgid "" ":mod:`sysconfig` puts all variables found in these files in a dictionary " "that can be accessed using :func:`get_config_vars` or :func:`get_config_var`." msgstr "" -#: ../../library/sysconfig.rst:34 msgid "Notice that on Windows, it's a much smaller set." msgstr "" -#: ../../library/sysconfig.rst:38 msgid "" "With no arguments, return a dictionary of all configuration variables " "relevant for the current platform." msgstr "" -#: ../../library/sysconfig.rst:41 msgid "" "With arguments, return a list of values that result from looking up each " "argument in the configuration variable dictionary." msgstr "" -#: ../../library/sysconfig.rst:44 msgid "For each argument, if the value is not found, return ``None``." msgstr "" -#: ../../library/sysconfig.rst:49 msgid "" "Return the value of a single variable *name*. Equivalent to " "``get_config_vars().get(name)``." msgstr "" -#: ../../library/sysconfig.rst:52 msgid "If *name* is not found, return ``None``." msgstr "" -#: ../../library/sysconfig.rst:54 msgid "Example of usage::" msgstr "" -#: ../../library/sysconfig.rst:56 msgid "" ">>> import sysconfig\n" ">>> sysconfig.get_config_var('Py_ENABLE_SHARED')\n" @@ -96,297 +82,219 @@ msgid "" "['ar', 'g++']" msgstr "" -#: ../../library/sysconfig.rst:68 msgid "Installation paths" msgstr "" -#: ../../library/sysconfig.rst:70 msgid "" "Python uses an installation scheme that differs depending on the platform " -"and on the installation options. These schemes are stored " -"in :mod:`sysconfig` under unique identifiers based on the value returned " -"by :const:`os.name`. The schemes are used by package installers to determine " -"where to copy files to." +"and on the installation options. These schemes are stored in :mod:" +"`sysconfig` under unique identifiers based on the value returned by :const:" +"`os.name`. The schemes are used by package installers to determine where to " +"copy files to." msgstr "" -#: ../../library/sysconfig.rst:75 msgid "Python currently supports nine schemes:" msgstr "" -#: ../../library/sysconfig.rst:77 msgid "" "*posix_prefix*: scheme for POSIX platforms like Linux or macOS. This is the " "default scheme used when Python or a component is installed." msgstr "" -#: ../../library/sysconfig.rst:79 msgid "" "*posix_home*: scheme for POSIX platforms, when the *home* option is used. " "This scheme defines paths located under a specific home prefix." msgstr "" -#: ../../library/sysconfig.rst:81 msgid "" "*posix_user*: scheme for POSIX platforms, when the *user* option is used. " -"This scheme defines paths located under the user's home directory " -"(:const:`site.USER_BASE`)." +"This scheme defines paths located under the user's home directory (:const:" +"`site.USER_BASE`)." msgstr "" -#: ../../library/sysconfig.rst:84 msgid "" "*posix_venv*: scheme for :mod:`Python virtual environments ` on POSIX " "platforms; by default it is the same as *posix_prefix*." msgstr "" -#: ../../library/sysconfig.rst:86 msgid "" "*nt*: scheme for Windows. This is the default scheme used when Python or a " "component is installed." msgstr "" -#: ../../library/sysconfig.rst:88 msgid "*nt_user*: scheme for Windows, when the *user* option is used." msgstr "" -#: ../../library/sysconfig.rst:89 msgid "" "*nt_venv*: scheme for :mod:`Python virtual environments ` on Windows; " "by default it is the same as *nt*." msgstr "" -#: ../../library/sysconfig.rst:91 msgid "" "*venv*: a scheme with values from either *posix_venv* or *nt_venv* depending " "on the platform Python runs on." msgstr "" -#: ../../library/sysconfig.rst:93 msgid "*osx_framework_user*: scheme for macOS, when the *user* option is used." msgstr "" -#: ../../library/sysconfig.rst:95 msgid "" "Each scheme is itself composed of a series of paths and each path has a " "unique identifier. Python currently uses eight paths:" msgstr "" -#: ../../library/sysconfig.rst:98 msgid "" "*stdlib*: directory containing the standard Python library files that are " "not platform-specific." msgstr "" -#: ../../library/sysconfig.rst:100 msgid "" "*platstdlib*: directory containing the standard Python library files that " "are platform-specific." msgstr "" -#: ../../library/sysconfig.rst:102 msgid "*platlib*: directory for site-specific, platform-specific files." msgstr "" -#: ../../library/sysconfig.rst:103 msgid "" "*purelib*: directory for site-specific, non-platform-specific files ('pure' " "Python)." msgstr "" -#: ../../library/sysconfig.rst:104 msgid "" "*include*: directory for non-platform-specific header files for the Python C-" "API." msgstr "" -#: ../../library/sysconfig.rst:106 msgid "" "*platinclude*: directory for platform-specific header files for the Python C-" "API." msgstr "" -#: ../../library/sysconfig.rst:108 msgid "*scripts*: directory for script files." msgstr "" -#: ../../library/sysconfig.rst:109 msgid "*data*: directory for data files." msgstr "" -#: ../../library/sysconfig.rst:115 msgid "User scheme" msgstr "" -#: ../../library/sysconfig.rst:117 msgid "" "This scheme is designed to be the most convenient solution for users that " "don't have write permission to the global site-packages directory or don't " "want to install into it." msgstr "" -#: ../../library/sysconfig.rst:121 msgid "" "Files will be installed into subdirectories of :const:`site.USER_BASE` " "(written as :file:`{userbase}` hereafter). This scheme installs pure Python " -"modules and extension modules in the same location (also known " -"as :const:`site.USER_SITE`)." +"modules and extension modules in the same location (also known as :const:" +"`site.USER_SITE`)." msgstr "" -#: ../../library/sysconfig.rst:126 msgid "``posix_user``" msgstr "" -#: ../../library/sysconfig.rst:129 ../../library/sysconfig.rst:144 -#: ../../library/sysconfig.rst:159 ../../library/sysconfig.rst:187 -#: ../../library/sysconfig.rst:229 ../../library/sysconfig.rst:245 msgid "Path" msgstr "" -#: ../../library/sysconfig.rst:129 ../../library/sysconfig.rst:144 -#: ../../library/sysconfig.rst:159 ../../library/sysconfig.rst:187 -#: ../../library/sysconfig.rst:229 ../../library/sysconfig.rst:245 msgid "Installation directory" msgstr "" -#: ../../library/sysconfig.rst:131 ../../library/sysconfig.rst:146 -#: ../../library/sysconfig.rst:161 ../../library/sysconfig.rst:189 -#: ../../library/sysconfig.rst:231 ../../library/sysconfig.rst:247 msgid "*stdlib*" msgstr "" -#: ../../library/sysconfig.rst:131 ../../library/sysconfig.rst:132 msgid ":file:`{userbase}/lib/python{X.Y}`" msgstr "" -#: ../../library/sysconfig.rst:132 ../../library/sysconfig.rst:147 -#: ../../library/sysconfig.rst:162 ../../library/sysconfig.rst:190 -#: ../../library/sysconfig.rst:232 ../../library/sysconfig.rst:248 msgid "*platstdlib*" msgstr "" -#: ../../library/sysconfig.rst:133 ../../library/sysconfig.rst:148 -#: ../../library/sysconfig.rst:163 ../../library/sysconfig.rst:191 -#: ../../library/sysconfig.rst:233 ../../library/sysconfig.rst:249 msgid "*platlib*" msgstr "" -#: ../../library/sysconfig.rst:133 ../../library/sysconfig.rst:134 msgid ":file:`{userbase}/lib/python{X.Y}/site-packages`" msgstr "" -#: ../../library/sysconfig.rst:134 ../../library/sysconfig.rst:149 -#: ../../library/sysconfig.rst:164 ../../library/sysconfig.rst:192 -#: ../../library/sysconfig.rst:234 ../../library/sysconfig.rst:250 msgid "*purelib*" msgstr "" -#: ../../library/sysconfig.rst:135 ../../library/sysconfig.rst:150 -#: ../../library/sysconfig.rst:165 ../../library/sysconfig.rst:193 -#: ../../library/sysconfig.rst:235 ../../library/sysconfig.rst:251 msgid "*include*" msgstr "" -#: ../../library/sysconfig.rst:135 ../../library/sysconfig.rst:165 msgid ":file:`{userbase}/include/python{X.Y}`" msgstr "" -#: ../../library/sysconfig.rst:136 ../../library/sysconfig.rst:151 -#: ../../library/sysconfig.rst:166 ../../library/sysconfig.rst:195 -#: ../../library/sysconfig.rst:237 ../../library/sysconfig.rst:253 msgid "*scripts*" msgstr "" -#: ../../library/sysconfig.rst:136 ../../library/sysconfig.rst:166 msgid ":file:`{userbase}/bin`" msgstr "" -#: ../../library/sysconfig.rst:137 ../../library/sysconfig.rst:152 -#: ../../library/sysconfig.rst:167 ../../library/sysconfig.rst:196 -#: ../../library/sysconfig.rst:238 ../../library/sysconfig.rst:254 msgid "*data*" msgstr "" -#: ../../library/sysconfig.rst:137 ../../library/sysconfig.rst:152 -#: ../../library/sysconfig.rst:167 msgid ":file:`{userbase}`" msgstr "" -#: ../../library/sysconfig.rst:141 msgid "``nt_user``" msgstr "" -#: ../../library/sysconfig.rst:146 ../../library/sysconfig.rst:147 msgid ":file:`{userbase}\\\\Python{XY}`" msgstr "" -#: ../../library/sysconfig.rst:148 ../../library/sysconfig.rst:149 msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" msgstr "" -#: ../../library/sysconfig.rst:150 msgid ":file:`{userbase}\\\\Python{XY}\\\\Include`" msgstr "" -#: ../../library/sysconfig.rst:151 msgid ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" msgstr "" -#: ../../library/sysconfig.rst:156 msgid "``osx_framework_user``" msgstr "" -#: ../../library/sysconfig.rst:161 ../../library/sysconfig.rst:162 msgid ":file:`{userbase}/lib/python`" msgstr "" -#: ../../library/sysconfig.rst:163 ../../library/sysconfig.rst:164 msgid ":file:`{userbase}/lib/python/site-packages`" msgstr "" -#: ../../library/sysconfig.rst:174 msgid "Home scheme" msgstr "" -#: ../../library/sysconfig.rst:176 msgid "" "The idea behind the \"home scheme\" is that you build and maintain a " "personal stash of Python modules. This scheme's name is derived from the " "idea of a \"home\" directory on Unix, since it's not unusual for a Unix user " -"to make their home directory have a layout similar to :file:`/usr/` " -"or :file:`/usr/local/`. This scheme can be used by anyone, regardless of the " +"to make their home directory have a layout similar to :file:`/usr/` or :file:" +"`/usr/local/`. This scheme can be used by anyone, regardless of the " "operating system they are installing for." msgstr "" -#: ../../library/sysconfig.rst:184 msgid "``posix_home``" msgstr "" -#: ../../library/sysconfig.rst:189 ../../library/sysconfig.rst:190 -#: ../../library/sysconfig.rst:191 ../../library/sysconfig.rst:192 msgid ":file:`{home}/lib/python`" msgstr "" -#: ../../library/sysconfig.rst:193 ../../library/sysconfig.rst:194 msgid ":file:`{home}/include/python`" msgstr "" -#: ../../library/sysconfig.rst:194 ../../library/sysconfig.rst:236 -#: ../../library/sysconfig.rst:252 msgid "*platinclude*" msgstr "" -#: ../../library/sysconfig.rst:195 msgid ":file:`{home}/bin`" msgstr "" -#: ../../library/sysconfig.rst:196 msgid ":file:`{home}`" msgstr "" -#: ../../library/sysconfig.rst:203 msgid "Prefix scheme" msgstr "" -#: ../../library/sysconfig.rst:205 msgid "" "The \"prefix scheme\" is useful when you wish to use one Python installation " "to perform the build/install (i.e., to run the setup script), but install " @@ -397,7 +305,6 @@ msgid "" "where the prefix scheme will be useful." msgstr "" -#: ../../library/sysconfig.rst:212 msgid "" "First, consider that many Linux distributions put Python in :file:`/usr`, " "rather than the more traditional :file:`/usr/local`. This is entirely " @@ -407,7 +314,6 @@ msgid "" "rather than :file:`/usr/lib/python2.{X}`." msgstr "" -#: ../../library/sysconfig.rst:219 msgid "" "Another possibility is a network filesystem where the name used to write to " "a remote directory is different from the name used to read it: for example, " @@ -417,104 +323,82 @@ msgid "" "{X}`." msgstr "" -#: ../../library/sysconfig.rst:226 msgid "``posix_prefix``" msgstr "" -#: ../../library/sysconfig.rst:231 ../../library/sysconfig.rst:232 msgid ":file:`{prefix}/lib/python{X.Y}`" msgstr "" -#: ../../library/sysconfig.rst:233 ../../library/sysconfig.rst:234 msgid ":file:`{prefix}/lib/python{X.Y}/site-packages`" msgstr "" -#: ../../library/sysconfig.rst:235 ../../library/sysconfig.rst:236 msgid ":file:`{prefix}/include/python{X.Y}`" msgstr "" -#: ../../library/sysconfig.rst:237 msgid ":file:`{prefix}/bin`" msgstr "" -#: ../../library/sysconfig.rst:238 ../../library/sysconfig.rst:254 msgid ":file:`{prefix}`" msgstr "" -#: ../../library/sysconfig.rst:242 msgid "``nt``" msgstr "" -#: ../../library/sysconfig.rst:247 ../../library/sysconfig.rst:248 msgid ":file:`{prefix}\\\\Lib`" msgstr "" -#: ../../library/sysconfig.rst:249 ../../library/sysconfig.rst:250 msgid ":file:`{prefix}\\\\Lib\\\\site-packages`" msgstr "" -#: ../../library/sysconfig.rst:251 ../../library/sysconfig.rst:252 msgid ":file:`{prefix}\\\\Include`" msgstr "" -#: ../../library/sysconfig.rst:253 msgid ":file:`{prefix}\\\\Scripts`" msgstr "" -#: ../../library/sysconfig.rst:259 msgid "Installation path functions" msgstr "" -#: ../../library/sysconfig.rst:261 msgid "" ":mod:`sysconfig` provides some functions to determine these installation " "paths." msgstr "" -#: ../../library/sysconfig.rst:265 msgid "" -"Return a tuple containing all schemes currently supported " -"in :mod:`sysconfig`." +"Return a tuple containing all schemes currently supported in :mod:" +"`sysconfig`." msgstr "" -#: ../../library/sysconfig.rst:271 msgid "Return the default scheme name for the current platform." msgstr "" -#: ../../library/sysconfig.rst:273 msgid "" "This function was previously named ``_get_default_scheme()`` and considered " "an implementation detail." msgstr "" -#: ../../library/sysconfig.rst:277 msgid "" "When Python runs from a virtual environment, the *venv* scheme is returned." msgstr "" -#: ../../library/sysconfig.rst:283 msgid "" "Return a preferred scheme name for an installation layout specified by *key*." msgstr "" -#: ../../library/sysconfig.rst:285 msgid "*key* must be either ``\"prefix\"``, ``\"home\"``, or ``\"user\"``." msgstr "" -#: ../../library/sysconfig.rst:287 msgid "" "The return value is a scheme name listed in :func:`get_scheme_names`. It can " "be passed to :mod:`sysconfig` functions that take a *scheme* argument, such " "as :func:`get_paths`." msgstr "" -#: ../../library/sysconfig.rst:293 msgid "" "When Python runs from a virtual environment and ``key=\"prefix\"``, the " "*venv* scheme is returned." msgstr "" -#: ../../library/sysconfig.rst:300 msgid "" "Return a dict containing preferred scheme names on the current platform. " "Python implementers and redistributors may add their preferred schemes to " @@ -524,109 +408,90 @@ msgid "" "mix with those by the other." msgstr "" -#: ../../library/sysconfig.rst:307 msgid "" -"End users should not use this function, but :func:`get_default_scheme` " -"and :func:`get_preferred_scheme` instead." +"End users should not use this function, but :func:`get_default_scheme` and :" +"func:`get_preferred_scheme` instead." msgstr "" -#: ../../library/sysconfig.rst:315 msgid "" -"Return a tuple containing all path names currently supported " -"in :mod:`sysconfig`." +"Return a tuple containing all path names currently supported in :mod:" +"`sysconfig`." msgstr "" -#: ../../library/sysconfig.rst:321 msgid "" "Return an installation path corresponding to the path *name*, from the " "install scheme named *scheme*." msgstr "" -#: ../../library/sysconfig.rst:324 msgid "" "*name* has to be a value from the list returned by :func:`get_path_names`." msgstr "" -#: ../../library/sysconfig.rst:326 msgid "" ":mod:`sysconfig` stores installation paths corresponding to each path name, " "for each platform, with variables to be expanded. For instance the *stdlib* " "path for the *nt* scheme is: ``{base}/Lib``." msgstr "" -#: ../../library/sysconfig.rst:330 msgid "" ":func:`get_path` will use the variables returned by :func:`get_config_vars` " "to expand the path. All variables have default values for each platform so " "one may call this function and get the default value." msgstr "" -#: ../../library/sysconfig.rst:334 msgid "" -"If *scheme* is provided, it must be a value from the list returned " -"by :func:`get_scheme_names`. Otherwise, the default scheme for the current " -"platform is used." +"If *scheme* is provided, it must be a value from the list returned by :func:" +"`get_scheme_names`. Otherwise, the default scheme for the current platform " +"is used." msgstr "" -#: ../../library/sysconfig.rst:338 msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " "the dictionary returned by :func:`get_config_vars`." msgstr "" -#: ../../library/sysconfig.rst:341 msgid "" "If *expand* is set to ``False``, the path will not be expanded using the " "variables." msgstr "" -#: ../../library/sysconfig.rst:344 msgid "If *name* is not found, raise a :exc:`KeyError`." msgstr "" -#: ../../library/sysconfig.rst:349 msgid "" "Return a dictionary containing all installation paths corresponding to an " "installation scheme. See :func:`get_path` for more information." msgstr "" -#: ../../library/sysconfig.rst:352 msgid "" "If *scheme* is not provided, will use the default scheme for the current " "platform." msgstr "" -#: ../../library/sysconfig.rst:355 msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " "the dictionary used to expand the paths." msgstr "" -#: ../../library/sysconfig.rst:358 msgid "If *expand* is set to false, the paths will not be expanded." msgstr "" -#: ../../library/sysconfig.rst:360 msgid "" -"If *scheme* is not an existing scheme, :func:`get_paths` will raise " -"a :exc:`KeyError`." +"If *scheme* is not an existing scheme, :func:`get_paths` will raise a :exc:" +"`KeyError`." msgstr "" -#: ../../library/sysconfig.rst:365 msgid "Other functions" msgstr "" -#: ../../library/sysconfig.rst:369 msgid "" "Return the ``MAJOR.MINOR`` Python version number as a string. Similar to " "``'%d.%d' % sys.version_info[:2]``." msgstr "" -#: ../../library/sysconfig.rst:375 msgid "Return a string that identifies the current platform." msgstr "" -#: ../../library/sysconfig.rst:377 msgid "" "This is used mainly to distinguish platform-specific build directories and " "platform-specific built distributions. Typically includes the OS name and " @@ -635,103 +500,80 @@ msgid "" "version isn't particularly important." msgstr "" -#: ../../library/sysconfig.rst:383 msgid "Examples of returned values:" msgstr "" -#: ../../library/sysconfig.rst:385 msgid "linux-i586" msgstr "" -#: ../../library/sysconfig.rst:386 msgid "linux-alpha (?)" msgstr "" -#: ../../library/sysconfig.rst:387 msgid "solaris-2.6-sun4u" msgstr "" -#: ../../library/sysconfig.rst:389 msgid "Windows will return one of:" msgstr "" -#: ../../library/sysconfig.rst:391 msgid "win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" msgstr "" -#: ../../library/sysconfig.rst:392 msgid "win-arm64 (64-bit Windows on ARM64, aka AArch64)" msgstr "" -#: ../../library/sysconfig.rst:393 msgid "win32 (all others - specifically, sys.platform is returned)" msgstr "" -#: ../../library/sysconfig.rst:395 msgid "macOS can return:" msgstr "" -#: ../../library/sysconfig.rst:397 msgid "macosx-10.6-ppc" msgstr "" -#: ../../library/sysconfig.rst:398 msgid "macosx-10.4-ppc64" msgstr "" -#: ../../library/sysconfig.rst:399 msgid "macosx-10.3-i386" msgstr "" -#: ../../library/sysconfig.rst:400 msgid "macosx-10.4-fat" msgstr "" -#: ../../library/sysconfig.rst:402 msgid "" "For other non-POSIX platforms, currently just returns :data:`sys.platform`." msgstr "" -#: ../../library/sysconfig.rst:407 msgid "" "Return ``True`` if the running Python interpreter was built from source and " "is being run from its built location, and not from a location resulting from " "e.g. running ``make install`` or installing via a binary installer." msgstr "" -#: ../../library/sysconfig.rst:414 msgid "Parse a :file:`config.h`\\-style file." msgstr "" -#: ../../library/sysconfig.rst:416 msgid "" "*fp* is a file-like object pointing to the :file:`config.h`\\-like file." msgstr "" -#: ../../library/sysconfig.rst:418 msgid "" "A dictionary containing name/value pairs is returned. If an optional " "dictionary is passed in as the second argument, it is used instead of a new " "dictionary, and updated with the values read in the file." msgstr "" -#: ../../library/sysconfig.rst:425 msgid "Return the path of :file:`pyconfig.h`." msgstr "" -#: ../../library/sysconfig.rst:429 msgid "Return the path of :file:`Makefile`." msgstr "" -#: ../../library/sysconfig.rst:435 msgid "Command-line usage" msgstr "" -#: ../../library/sysconfig.rst:437 msgid "You can use :mod:`sysconfig` as a script with Python's *-m* option:" msgstr "" -#: ../../library/sysconfig.rst:439 msgid "" "$ python -m sysconfig\n" "Platform: \"macosx-10.4-i386\"\n" @@ -756,13 +598,11 @@ msgid "" " ..." msgstr "" -#: ../../library/sysconfig.rst:463 msgid "" -"This call will print in the standard output the information returned " -"by :func:`get_platform`, :func:`get_python_version`, :func:`get_path` " -"and :func:`get_config_vars`." +"This call will print in the standard output the information returned by :" +"func:`get_platform`, :func:`get_python_version`, :func:`get_path` and :func:" +"`get_config_vars`." msgstr "" -#: ../../library/sysconfig.rst:14 msgid "configuration information" msgstr "" diff --git a/library/syslog.po b/library/syslog.po index ddc4848..65ba099 100644 --- a/library/syslog.po +++ b/library/syslog.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,34 +18,27 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/syslog.rst:2 msgid ":mod:`!syslog` --- Unix syslog library routines" msgstr "" -#: ../../library/syslog.rst:10 msgid "" "This module provides an interface to the Unix ``syslog`` library routines. " "Refer to the Unix manual pages for a detailed description of the ``syslog`` " "facility." msgstr "" -#: ../../library/syslog.rst:14 msgid "Availability" msgstr "" -#: ../../library/syslog.rst:16 msgid "" "This module wraps the system ``syslog`` family of routines. A pure Python " -"library that can speak to a syslog server is available in " -"the :mod:`logging.handlers` module " -"as :class:`~logging.handlers.SysLogHandler`." +"library that can speak to a syslog server is available in the :mod:`logging." +"handlers` module as :class:`~logging.handlers.SysLogHandler`." msgstr "" -#: ../../library/syslog.rst:20 msgid "The module defines the following functions:" msgstr "" -#: ../../library/syslog.rst:26 msgid "" "Send the string *message* to the system logger. A trailing newline is added " "if necessary. Each message is tagged with a priority composed of a " @@ -55,42 +48,36 @@ msgid "" "value given in the :func:`openlog` call is used." msgstr "" -#: ../../library/syslog.rst:33 msgid "" -"If :func:`openlog` has not been called prior to the call " -"to :func:`syslog`, :func:`openlog` will be called with no arguments." +"If :func:`openlog` has not been called prior to the call to :func:`syslog`, :" +"func:`openlog` will be called with no arguments." msgstr "" -#: ../../library/syslog.rst:36 msgid "" "Raises an :ref:`auditing event ` ``syslog.syslog`` with arguments " "``priority``, ``message``." msgstr "" -#: ../../library/syslog.rst:38 msgid "" "In previous versions, :func:`openlog` would not be called automatically if " "it wasn't called prior to the call to :func:`syslog`, deferring to the " "syslog implementation to call ``openlog()``." msgstr "" -#: ../../library/syslog.rst:43 msgid "" "This function is restricted in subinterpreters. (Only code that runs in " "multiple interpreters is affected and the restriction is not relevant for " -"most users.) :func:`openlog` must be called in the main interpreter " -"before :func:`syslog` may be used in a subinterpreter. Otherwise it will " -"raise :exc:`RuntimeError`." +"most users.) :func:`openlog` must be called in the main interpreter before :" +"func:`syslog` may be used in a subinterpreter. Otherwise it will raise :exc:" +"`RuntimeError`." msgstr "" -#: ../../library/syslog.rst:53 msgid "" -"Logging options of subsequent :func:`syslog` calls can be set by " -"calling :func:`openlog`. :func:`syslog` will call :func:`openlog` with no " -"arguments if the log is not currently open." +"Logging options of subsequent :func:`syslog` calls can be set by calling :" +"func:`openlog`. :func:`syslog` will call :func:`openlog` with no arguments " +"if the log is not currently open." msgstr "" -#: ../../library/syslog.rst:57 msgid "" "The optional *ident* keyword argument is a string which is prepended to " "every message, and defaults to ``sys.argv[0]`` with leading path components " @@ -100,46 +87,39 @@ msgid "" "for messages which do not have a facility explicitly encoded." msgstr "" -#: ../../library/syslog.rst:64 msgid "" "Raises an :ref:`auditing event ` ``syslog.openlog`` with arguments " "``ident``, ``logoption``, ``facility``." msgstr "" -#: ../../library/syslog.rst:66 msgid "" "In previous versions, keyword arguments were not allowed, and *ident* was " "required." msgstr "" -#: ../../library/syslog.rst:70 ../../library/syslog.rst:89 msgid "" "This function is restricted in subinterpreters. (Only code that runs in " "multiple interpreters is affected and the restriction is not relevant for " -"most users.) This may only be called in the main interpreter. It will " -"raise :exc:`RuntimeError` if called in a subinterpreter." +"most users.) This may only be called in the main interpreter. It will raise :" +"exc:`RuntimeError` if called in a subinterpreter." msgstr "" -#: ../../library/syslog.rst:80 msgid "" "Reset the syslog module values and call the system library ``closelog()``." msgstr "" -#: ../../library/syslog.rst:82 msgid "" "This causes the module to behave as it does when initially imported. For " "example, :func:`openlog` will be called on the first :func:`syslog` call " -"(if :func:`openlog` hasn't already been called), and *ident* and " -"other :func:`openlog` parameters are reset to defaults." +"(if :func:`openlog` hasn't already been called), and *ident* and other :func:" +"`openlog` parameters are reset to defaults." msgstr "" -#: ../../library/syslog.rst:87 msgid "" "Raises an :ref:`auditing event ` ``syslog.closelog`` with no " "arguments." msgstr "" -#: ../../library/syslog.rst:99 msgid "" "Set the priority mask to *maskpri* and return the previous mask value. " "Calls to :func:`syslog` with a priority level not set in *maskpri* are " @@ -149,52 +129,42 @@ msgid "" "and including *pri*." msgstr "" -#: ../../library/syslog.rst:106 msgid "" "Raises an :ref:`auditing event ` ``syslog.setlogmask`` with " "argument ``maskpri``." msgstr "" -#: ../../library/syslog.rst:108 msgid "The module defines the following constants:" msgstr "" -#: ../../library/syslog.rst:120 msgid "Priority levels (high to low)." msgstr "" -#: ../../library/syslog.rst:149 msgid "" -"Facilities, depending on availability in ```` " -"for :const:`LOG_AUTHPRIV`, :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`, :const:`LOG_INSTALL` " -"and :const:`LOG_RAS`." +"Facilities, depending on availability in ```` for :const:" +"`LOG_AUTHPRIV`, :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:" +"`LOG_REMOTEAUTH`, :const:`LOG_INSTALL` and :const:`LOG_RAS`." msgstr "" -#: ../../library/syslog.rst:153 msgid "" -"Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`, :const:`LOG_INSTALL`, :const:`LOG_RAS`, " -"and :const:`LOG_LAUNCHD`." +"Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`, :" +"const:`LOG_INSTALL`, :const:`LOG_RAS`, and :const:`LOG_LAUNCHD`." msgstr "" -#: ../../library/syslog.rst:164 msgid "" -"Log options, depending on availability in ```` " -"for :const:`LOG_ODELAY`, :const:`LOG_NOWAIT` and :const:`LOG_PERROR`." +"Log options, depending on availability in ```` for :const:" +"`LOG_ODELAY`, :const:`LOG_NOWAIT` and :const:`LOG_PERROR`." msgstr "" -#: ../../library/syslog.rst:169 msgid "Examples" msgstr "" -#: ../../library/syslog.rst:172 msgid "Simple example" msgstr "" -#: ../../library/syslog.rst:174 msgid "A simple set of examples::" msgstr "" -#: ../../library/syslog.rst:176 msgid "" "import syslog\n" "\n" @@ -203,14 +173,12 @@ msgid "" " syslog.syslog(syslog.LOG_ERR, 'Processing started')" msgstr "" -#: ../../library/syslog.rst:182 msgid "" "An example of setting some log options, these would include the process ID " "in logged messages, and write the messages to the destination facility used " "for mail logging::" msgstr "" -#: ../../library/syslog.rst:186 msgid "" "syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)\n" "syslog.syslog('E-mail processing initiated...')" diff --git a/library/tabnanny.po b/library/tabnanny.po index d620ddd..0755ac6 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,23 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tabnanny.rst:2 msgid ":mod:`!tabnanny` --- Detection of ambiguous indentation" msgstr "" -#: ../../library/tabnanny.rst:13 msgid "**Source code:** :source:`Lib/tabnanny.py`" msgstr "" -#: ../../library/tabnanny.rst:17 msgid "" "For the time being this module is intended to be called as a script. However " "it is possible to import it into an IDE and use the function :func:`check` " "described below." msgstr "" -#: ../../library/tabnanny.rst:23 msgid "" "The API provided by this module is likely to change in future releases; such " "changes may not be backward compatible." msgstr "" -#: ../../library/tabnanny.rst:29 msgid "" "If *file_or_dir* is a directory and not a symbolic link, then recursively " "descend the directory tree named by *file_or_dir*, checking all :file:`.py` " @@ -48,35 +43,29 @@ msgid "" "written to standard output using the :func:`print` function." msgstr "" -#: ../../library/tabnanny.rst:38 msgid "" "Flag indicating whether to print verbose messages. This is incremented by " "the ``-v`` option if called as a script." msgstr "" -#: ../../library/tabnanny.rst:44 msgid "" "Flag indicating whether to print only the filenames of files containing " "whitespace related problems. This is set to true by the ``-q`` option if " "called as a script." msgstr "" -#: ../../library/tabnanny.rst:51 msgid "" "Raised by :func:`process_tokens` if detecting an ambiguous indent. Captured " "and handled in :func:`check`." msgstr "" -#: ../../library/tabnanny.rst:57 msgid "" -"This function is used by :func:`check` to process tokens generated by " -"the :mod:`tokenize` module." +"This function is used by :func:`check` to process tokens generated by the :" +"mod:`tokenize` module." msgstr "" -#: ../../library/tabnanny.rst:66 msgid "Module :mod:`tokenize`" msgstr "" -#: ../../library/tabnanny.rst:67 msgid "Lexical scanner for Python source code." msgstr "" diff --git a/library/tarfile.po b/library/tarfile.po index 7bad1a2..a844b5a 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tarfile.rst:2 msgid ":mod:`!tarfile` --- Read and write tar archive files" msgstr "" -#: ../../library/tarfile.rst:10 msgid "**Source code:** :source:`Lib/tarfile.py`" msgstr "" -#: ../../library/tarfile.rst:14 msgid "" "The :mod:`tarfile` module makes it possible to read and write tar archives, " "including those using gzip, bz2 and lzma compression. Use the :mod:`zipfile` " @@ -34,50 +31,41 @@ msgid "" "in :ref:`shutil `." msgstr "" -#: ../../library/tarfile.rst:19 msgid "Some facts and figures:" msgstr "" -#: ../../library/tarfile.rst:21 msgid "" -"reads and writes :mod:`gzip`, :mod:`bz2`, :mod:`compression.zstd`, " -"and :mod:`lzma` compressed archives if the respective modules are available." +"reads and writes :mod:`gzip`, :mod:`bz2`, :mod:`compression.zstd`, and :mod:" +"`lzma` compressed archives if the respective modules are available." msgstr "" -#: ../../library/tarfile.rst:24 msgid "read/write support for the POSIX.1-1988 (ustar) format." msgstr "" -#: ../../library/tarfile.rst:26 msgid "" "read/write support for the GNU tar format including *longname* and " "*longlink* extensions, read-only support for all variants of the *sparse* " "extension including restoration of sparse files." msgstr "" -#: ../../library/tarfile.rst:30 msgid "read/write support for the POSIX.1-2001 (pax) format." msgstr "" -#: ../../library/tarfile.rst:32 msgid "" "handles directories, regular files, hardlinks, symbolic links, fifos, " "character devices and block devices and is able to acquire and restore file " "information like timestamp, access permissions and owner." msgstr "" -#: ../../library/tarfile.rst:36 msgid "Added support for :mod:`lzma` compression." msgstr "" -#: ../../library/tarfile.rst:39 msgid "" "Archives are extracted using a :ref:`filter `, " "which makes it possible to either limit surprising/dangerous features, or to " "acknowledge that they are expected and the archive is fully trusted." msgstr "" -#: ../../library/tarfile.rst:44 msgid "" "Set the default extraction filter to :func:`data `, which " "disallows some dangerous features such as links to absolute paths or paths " @@ -85,434 +73,340 @@ msgid "" "to :func:`fully_trusted `." msgstr "" -#: ../../library/tarfile.rst:52 msgid "Added support for Zstandard compression using :mod:`compression.zstd`." msgstr "" -#: ../../library/tarfile.rst:56 msgid "" "Return a :class:`TarFile` object for the pathname *name*. For detailed " "information on :class:`TarFile` objects and the keyword arguments that are " "allowed, see :ref:`tarfile-objects`." msgstr "" -#: ../../library/tarfile.rst:60 msgid "" "*mode* has to be a string of the form ``'filemode[:compression]'``, it " "defaults to ``'r'``. Here is a full list of mode combinations:" msgstr "" -#: ../../library/tarfile.rst:64 msgid "mode" msgstr "" -#: ../../library/tarfile.rst:64 msgid "action" msgstr "" -#: ../../library/tarfile.rst:66 msgid "``'r'`` or ``'r:*'``" msgstr "" -#: ../../library/tarfile.rst:66 msgid "Open for reading with transparent compression (recommended)." msgstr "" -#: ../../library/tarfile.rst:69 msgid "``'r:'``" msgstr "" -#: ../../library/tarfile.rst:69 msgid "Open for reading exclusively without compression." msgstr "" -#: ../../library/tarfile.rst:72 msgid "``'r:gz'``" msgstr "" -#: ../../library/tarfile.rst:72 msgid "Open for reading with gzip compression." msgstr "" -#: ../../library/tarfile.rst:74 msgid "``'r:bz2'``" msgstr "" -#: ../../library/tarfile.rst:74 msgid "Open for reading with bzip2 compression." msgstr "" -#: ../../library/tarfile.rst:76 msgid "``'r:xz'``" msgstr "" -#: ../../library/tarfile.rst:76 msgid "Open for reading with lzma compression." msgstr "" -#: ../../library/tarfile.rst:78 msgid "``'r:zst'``" msgstr "" -#: ../../library/tarfile.rst:78 msgid "Open for reading with Zstandard compression." msgstr "" -#: ../../library/tarfile.rst:80 msgid "``'x'`` or ``'x:'``" msgstr "" -#: ../../library/tarfile.rst:80 msgid "" -"Create a tarfile exclusively without compression. Raise " -"a :exc:`FileExistsError` exception if it already exists." +"Create a tarfile exclusively without compression. Raise a :exc:" +"`FileExistsError` exception if it already exists." msgstr "" -#: ../../library/tarfile.rst:85 msgid "``'x:gz'``" msgstr "" -#: ../../library/tarfile.rst:85 msgid "" "Create a tarfile with gzip compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: ../../library/tarfile.rst:89 msgid "``'x:bz2'``" msgstr "" -#: ../../library/tarfile.rst:89 msgid "" "Create a tarfile with bzip2 compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: ../../library/tarfile.rst:93 msgid "``'x:xz'``" msgstr "" -#: ../../library/tarfile.rst:93 msgid "" "Create a tarfile with lzma compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: ../../library/tarfile.rst:97 msgid "``'x:zst'``" msgstr "" -#: ../../library/tarfile.rst:97 msgid "" "Create a tarfile with Zstandard compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: ../../library/tarfile.rst:101 msgid "``'a'`` or ``'a:'``" msgstr "" -#: ../../library/tarfile.rst:101 msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "" -#: ../../library/tarfile.rst:104 msgid "``'w'`` or ``'w:'``" msgstr "" -#: ../../library/tarfile.rst:104 msgid "Open for uncompressed writing." msgstr "" -#: ../../library/tarfile.rst:107 msgid "``'w:gz'``" msgstr "" -#: ../../library/tarfile.rst:107 msgid "Open for gzip compressed writing." msgstr "" -#: ../../library/tarfile.rst:109 msgid "``'w:bz2'``" msgstr "" -#: ../../library/tarfile.rst:109 msgid "Open for bzip2 compressed writing." msgstr "" -#: ../../library/tarfile.rst:111 msgid "``'w:xz'``" msgstr "" -#: ../../library/tarfile.rst:111 msgid "Open for lzma compressed writing." msgstr "" -#: ../../library/tarfile.rst:113 msgid "``'w:zst'``" msgstr "" -#: ../../library/tarfile.rst:113 msgid "Open for Zstandard compressed writing." msgstr "" -#: ../../library/tarfile.rst:116 msgid "" "Note that ``'a:gz'``, ``'a:bz2'`` or ``'a:xz'`` is not possible. If *mode* " -"is not suitable to open a certain (compressed) file for " -"reading, :exc:`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a " -"compression method is not supported, :exc:`CompressionError` is raised." +"is not suitable to open a certain (compressed) file for reading, :exc:" +"`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a compression " +"method is not supported, :exc:`CompressionError` is raised." msgstr "" -#: ../../library/tarfile.rst:121 msgid "" "If *fileobj* is specified, it is used as an alternative to a :term:`file " "object` opened in binary mode for *name*. It is supposed to be at position 0." msgstr "" -#: ../../library/tarfile.rst:124 msgid "" "For modes ``'w:gz'``, ``'x:gz'``, ``'w|gz'``, ``'w:bz2'``, ``'x:bz2'``, ``'w|" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" -#: ../../library/tarfile.rst:128 msgid "" "For modes ``'w:xz'``, ``'x:xz'`` and ``'w|xz'``, :func:`tarfile.open` " "accepts the keyword argument *preset* to specify the compression level of " "the file." msgstr "" -#: ../../library/tarfile.rst:131 msgid "" "For modes ``'w:zst'``, ``'x:zst'`` and ``'w|zst'``, :func:`tarfile.open` " "accepts the keyword argument *level* to specify the compression level of the " "file. The keyword argument *options* may also be passed, providing advanced " -"Zstandard compression parameters described " -"by :class:`~compression.zstd.CompressionParameter`. The keyword argument " -"*zstd_dict* can be passed to provide a :class:`~compression.zstd.ZstdDict`, " -"a Zstandard dictionary used to improve compression of smaller amounts of " -"data." +"Zstandard compression parameters described by :class:`~compression.zstd." +"CompressionParameter`. The keyword argument *zstd_dict* can be passed to " +"provide a :class:`~compression.zstd.ZstdDict`, a Zstandard dictionary used " +"to improve compression of smaller amounts of data." msgstr "" -#: ../../library/tarfile.rst:140 msgid "" "For special purposes, there is a second format for *mode*: ``'filemode|" "[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` " "object that processes its data as a stream of blocks. No random seeking " -"will be done on the file. If given, *fileobj* may be any object that has " -"a :meth:`~io.RawIOBase.read` or :meth:`~io.RawIOBase.write` method " -"(depending on the *mode*) that works with bytes. *bufsize* specifies the " -"blocksize and defaults to ``20 * 512`` bytes. Use this variant in " -"combination with e.g. ``sys.stdin.buffer``, a socket :term:`file object` or " -"a tape device. However, such a :class:`TarFile` object is limited in that it " -"does not allow random access, see :ref:`tar-examples`. The currently " -"possible modes:" +"will be done on the file. If given, *fileobj* may be any object that has a :" +"meth:`~io.RawIOBase.read` or :meth:`~io.RawIOBase.write` method (depending " +"on the *mode*) that works with bytes. *bufsize* specifies the blocksize and " +"defaults to ``20 * 512`` bytes. Use this variant in combination with e.g. " +"``sys.stdin.buffer``, a socket :term:`file object` or a tape device. " +"However, such a :class:`TarFile` object is limited in that it does not allow " +"random access, see :ref:`tar-examples`. The currently possible modes:" msgstr "" -#: ../../library/tarfile.rst:154 msgid "Mode" msgstr "" -#: ../../library/tarfile.rst:154 msgid "Action" msgstr "" -#: ../../library/tarfile.rst:156 msgid "``'r|*'``" msgstr "" -#: ../../library/tarfile.rst:156 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" -#: ../../library/tarfile.rst:159 msgid "``'r|'``" msgstr "" -#: ../../library/tarfile.rst:159 msgid "Open a *stream* of uncompressed tar blocks for reading." msgstr "" -#: ../../library/tarfile.rst:162 msgid "``'r|gz'``" msgstr "" -#: ../../library/tarfile.rst:162 msgid "Open a gzip compressed *stream* for reading." msgstr "" -#: ../../library/tarfile.rst:165 msgid "``'r|bz2'``" msgstr "" -#: ../../library/tarfile.rst:165 msgid "Open a bzip2 compressed *stream* for reading." msgstr "" -#: ../../library/tarfile.rst:168 msgid "``'r|xz'``" msgstr "" -#: ../../library/tarfile.rst:168 msgid "Open an lzma compressed *stream* for reading." msgstr "" -#: ../../library/tarfile.rst:171 msgid "``'r|zst'``" msgstr "" -#: ../../library/tarfile.rst:171 msgid "Open a Zstandard compressed *stream* for reading." msgstr "" -#: ../../library/tarfile.rst:174 msgid "``'w|'``" msgstr "" -#: ../../library/tarfile.rst:174 msgid "Open an uncompressed *stream* for writing." msgstr "" -#: ../../library/tarfile.rst:176 msgid "``'w|gz'``" msgstr "" -#: ../../library/tarfile.rst:176 msgid "Open a gzip compressed *stream* for writing." msgstr "" -#: ../../library/tarfile.rst:179 msgid "``'w|bz2'``" msgstr "" -#: ../../library/tarfile.rst:179 msgid "Open a bzip2 compressed *stream* for writing." msgstr "" -#: ../../library/tarfile.rst:182 msgid "``'w|xz'``" msgstr "" -#: ../../library/tarfile.rst:182 msgid "Open an lzma compressed *stream* for writing." msgstr "" -#: ../../library/tarfile.rst:185 msgid "``'w|zst'``" msgstr "" -#: ../../library/tarfile.rst:185 msgid "Open a Zstandard compressed *stream* for writing." msgstr "" -#: ../../library/tarfile.rst:189 ../../library/tarfile.rst:468 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "" -#: ../../library/tarfile.rst:192 ../../library/tarfile.rst:471 -#: ../../library/tarfile.rst:719 msgid "The *name* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/tarfile.rst:195 msgid "The *compresslevel* keyword argument also works for streams." msgstr "" -#: ../../library/tarfile.rst:198 msgid "The *preset* keyword argument also works for streams." msgstr "" -#: ../../library/tarfile.rst:205 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." msgstr "" -#: ../../library/tarfile.rst:211 msgid "" -"Return :const:`True` if *name* is a tar archive file, that " -"the :mod:`tarfile` module can read. *name* may be a :class:`str`, file, or " -"file-like object." +"Return :const:`True` if *name* is a tar archive file, that the :mod:" +"`tarfile` module can read. *name* may be a :class:`str`, file, or file-like " +"object." msgstr "" -#: ../../library/tarfile.rst:214 msgid "Support for file and file-like objects." msgstr "" -#: ../../library/tarfile.rst:218 msgid "The :mod:`tarfile` module defines the following exceptions:" msgstr "" -#: ../../library/tarfile.rst:223 msgid "Base class for all :mod:`tarfile` exceptions." msgstr "" -#: ../../library/tarfile.rst:228 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." msgstr "" -#: ../../library/tarfile.rst:234 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" -#: ../../library/tarfile.rst:240 msgid "" -"Is raised for the limitations that are typical for stream-" -"like :class:`TarFile` objects." +"Is raised for the limitations that are typical for stream-like :class:" +"`TarFile` objects." msgstr "" -#: ../../library/tarfile.rst:246 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" -#: ../../library/tarfile.rst:252 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" -#: ../../library/tarfile.rst:257 msgid "" "Base class for members :ref:`refused ` by filters." msgstr "" -#: ../../library/tarfile.rst:262 msgid "" -"Information about the member that the filter refused to extract, " -"as :ref:`TarInfo `." +"Information about the member that the filter refused to extract, as :ref:" +"`TarInfo `." msgstr "" -#: ../../library/tarfile.rst:267 msgid "Raised to refuse extracting a member with an absolute path." msgstr "" -#: ../../library/tarfile.rst:271 msgid "Raised to refuse extracting a member outside the destination directory." msgstr "" -#: ../../library/tarfile.rst:275 msgid "Raised to refuse extracting a special file (e.g. a device or pipe)." msgstr "" -#: ../../library/tarfile.rst:279 msgid "Raised to refuse extracting a symbolic link with an absolute path." msgstr "" -#: ../../library/tarfile.rst:283 msgid "" "Raised to refuse extracting a symbolic link pointing outside the destination " "directory." msgstr "" -#: ../../library/tarfile.rst:288 msgid "" "Raised to refuse emulating a link (hard or symbolic) by extracting another " "archive member, when that member would be rejected by the filter location. " @@ -520,159 +414,127 @@ msgid "" "as :attr:`!BaseException.__context__`." msgstr "" -#: ../../library/tarfile.rst:296 msgid "The following constants are available at the module level:" msgstr "" -#: ../../library/tarfile.rst:300 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" -#: ../../library/tarfile.rst:306 msgid "A regular file :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:310 msgid "A link (inside tarfile) :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:314 msgid "A symbolic link :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:318 msgid "A character special device :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:322 msgid "A block special device :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:326 msgid "A directory :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:330 msgid "A FIFO special device :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:334 msgid "A contiguous file :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:338 msgid "A GNU tar longname :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:342 msgid "A GNU tar longlink :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:346 msgid "A GNU tar sparse file :attr:`~TarInfo.type`." msgstr "" -#: ../../library/tarfile.rst:349 msgid "" -"Each of the following constants defines a tar archive format that " -"the :mod:`tarfile` module is able to create. See section :ref:`tar-formats` " -"for details." +"Each of the following constants defines a tar archive format that the :mod:" +"`tarfile` module is able to create. See section :ref:`tar-formats` for " +"details." msgstr "" -#: ../../library/tarfile.rst:356 msgid "POSIX.1-1988 (ustar) format." msgstr "" -#: ../../library/tarfile.rst:361 msgid "GNU tar format." msgstr "" -#: ../../library/tarfile.rst:366 msgid "POSIX.1-2001 (pax) format." msgstr "" -#: ../../library/tarfile.rst:371 msgid "" -"The default format for creating archives. This is " -"currently :const:`PAX_FORMAT`." +"The default format for creating archives. This is currently :const:" +"`PAX_FORMAT`." msgstr "" -#: ../../library/tarfile.rst:373 msgid "" -"The default format for new archives was changed to :const:`PAX_FORMAT` " -"from :const:`GNU_FORMAT`." +"The default format for new archives was changed to :const:`PAX_FORMAT` from :" +"const:`GNU_FORMAT`." msgstr "" -#: ../../library/tarfile.rst:380 msgid "Module :mod:`zipfile`" msgstr "" -#: ../../library/tarfile.rst:381 msgid "Documentation of the :mod:`zipfile` standard module." msgstr "" -#: ../../library/tarfile.rst:383 msgid ":ref:`archiving-operations`" msgstr "" -#: ../../library/tarfile.rst:384 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" -#: ../../library/tarfile.rst:387 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" -#: ../../library/tarfile.rst:388 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" -#: ../../library/tarfile.rst:394 msgid "TarFile Objects" msgstr "" -#: ../../library/tarfile.rst:396 msgid "" "The :class:`TarFile` object provides an interface to a tar archive. A tar " "archive is a sequence of blocks. An archive member (a stored file) is made " "up of a header block followed by data blocks. It is possible to store a file " -"in a tar archive several times. Each archive member is represented by " -"a :class:`TarInfo` object, see :ref:`tarinfo-objects` for details." +"in a tar archive several times. Each archive member is represented by a :" +"class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" -#: ../../library/tarfile.rst:402 msgid "" -"A :class:`TarFile` object can be used as a context manager in " -"a :keyword:`with` statement. It will automatically be closed when the block " -"is completed. Please note that in the event of an exception an archive " -"opened for writing will not be finalized; only the internally used file " -"object will be closed. See the :ref:`tar-examples` section for a use case." +"A :class:`TarFile` object can be used as a context manager in a :keyword:" +"`with` statement. It will automatically be closed when the block is " +"completed. Please note that in the event of an exception an archive opened " +"for writing will not be finalized; only the internally used file object will " +"be closed. See the :ref:`tar-examples` section for a use case." msgstr "" -#: ../../library/tarfile.rst:408 msgid "Added support for the context management protocol." msgstr "" -#: ../../library/tarfile.rst:413 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" -#: ../../library/tarfile.rst:416 msgid "" "*name* is the pathname of the archive. *name* may be a :term:`path-like " "object`. It can be omitted if *fileobj* is given. In this case, the file " "object's :attr:`!name` attribute is used if it exists." msgstr "" -#: ../../library/tarfile.rst:420 msgid "" "*mode* is either ``'r'`` to read from an existing archive, ``'a'`` to append " "data to an existing file, ``'w'`` to create a new file overwriting an " @@ -680,18 +542,15 @@ msgid "" "exist." msgstr "" -#: ../../library/tarfile.rst:424 msgid "" "If *fileobj* is given, it is used for reading or writing data. If it can be " "determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " "from position 0." msgstr "" -#: ../../library/tarfile.rst:430 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." msgstr "" -#: ../../library/tarfile.rst:432 msgid "" "*format* controls the archive format for writing. It must be one of the " "constants :const:`USTAR_FORMAT`, :const:`GNU_FORMAT` or :const:`PAX_FORMAT` " @@ -699,20 +558,17 @@ msgid "" "detected, even if different formats are present in a single archive." msgstr "" -#: ../../library/tarfile.rst:437 msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" -#: ../../library/tarfile.rst:440 msgid "" "If *dereference* is :const:`False`, add symbolic and hard links to the " "archive. If it is :const:`True`, add the content of the target files to the " "archive. This has no effect on systems that do not support symbolic links." msgstr "" -#: ../../library/tarfile.rst:444 msgid "" "If *ignore_zeros* is :const:`False`, treat an empty block as the end of the " "archive. If it is :const:`True`, skip empty (and invalid) blocks and try to " @@ -720,77 +576,64 @@ msgid "" "concatenated or damaged archives." msgstr "" -#: ../../library/tarfile.rst:448 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." msgstr "" -#: ../../library/tarfile.rst:451 msgid "" "*errorlevel* controls how extraction errors are handled, see :attr:`the " "corresponding attribute `." msgstr "" -#: ../../library/tarfile.rst:454 msgid "" "The *encoding* and *errors* arguments define the character encoding to be " "used for reading or writing the archive and how conversion errors are going " -"to be handled. The default settings will work for most users. See " -"section :ref:`tar-unicode` for in-depth information." +"to be handled. The default settings will work for most users. See section :" +"ref:`tar-unicode` for in-depth information." msgstr "" -#: ../../library/tarfile.rst:459 msgid "" "The *pax_headers* argument is an optional dictionary of strings which will " "be added as a pax global header if *format* is :const:`PAX_FORMAT`." msgstr "" -#: ../../library/tarfile.rst:462 msgid "" "If *stream* is set to :const:`True` then while reading the archive info " "about files in the archive are not cached, saving memory." msgstr "" -#: ../../library/tarfile.rst:465 ../../library/tarfile.rst:788 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" -#: ../../library/tarfile.rst:474 msgid "Add the *stream* parameter." msgstr "" -#: ../../library/tarfile.rst:479 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" -#: ../../library/tarfile.rst:485 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." msgstr "" -#: ../../library/tarfile.rst:490 msgid "" "If a member occurs more than once in the archive, its last occurrence is " "assumed to be the most up-to-date version." msgstr "" -#: ../../library/tarfile.rst:496 msgid "" "Return the members of the archive as a list of :class:`TarInfo` objects. The " "list has the same order as the members in the archive." msgstr "" -#: ../../library/tarfile.rst:502 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." msgstr "" -#: ../../library/tarfile.rst:508 msgid "" "Print a table of contents to ``sys.stdout``. If *verbose* is :const:`False`, " "only the names of the members are printed. If it is :const:`True`, output " @@ -798,18 +641,15 @@ msgid "" "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" -#: ../../library/tarfile.rst:513 msgid "Added the *members* parameter." msgstr "" -#: ../../library/tarfile.rst:519 msgid "" -"Return the next member of the archive as a :class:`TarInfo` object, " -"when :class:`TarFile` is opened for reading. Return :const:`None` if there " -"is no more available." +"Return the next member of the archive as a :class:`TarInfo` object, when :" +"class:`TarFile` is opened for reading. Return :const:`None` if there is no " +"more available." msgstr "" -#: ../../library/tarfile.rst:526 msgid "" "Extract all members from the archive to the current working directory or " "directory *path*. If optional *members* is given, it must be a subset of the " @@ -821,14 +661,12 @@ msgid "" "fail." msgstr "" -#: ../../library/tarfile.rst:534 msgid "" "If *numeric_owner* is :const:`True`, the uid and gid numbers from the " "tarfile are used to set the owner/group for the extracted files. Otherwise, " "the named values from the tarfile are used." msgstr "" -#: ../../library/tarfile.rst:538 msgid "" "The *filter* argument specifies how ``members`` are modified or rejected " "before extraction. See :ref:`tarfile-extraction-filter` for details. It is " @@ -837,11 +675,9 @@ msgid "" "secure default (3.13 and lower)." msgstr "" -#: ../../library/tarfile.rst:547 msgid "Never extract archives from untrusted sources without prior inspection." msgstr "" -#: ../../library/tarfile.rst:549 msgid "" "Since Python 3.14, the default (:func:`data `) will prevent the " "most dangerous security issues. However, it will not prevent *all* " @@ -849,24 +685,18 @@ msgid "" "section for details." msgstr "" -#: ../../library/tarfile.rst:554 ../../library/tarfile.rst:591 msgid "Added the *numeric_owner* parameter." msgstr "" -#: ../../library/tarfile.rst:557 ../../library/tarfile.rst:594 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/tarfile.rst:560 ../../library/tarfile.rst:597 -#: ../../library/tarfile.rst:681 msgid "Added the *filter* parameter." msgstr "" -#: ../../library/tarfile.rst:563 msgid "The *filter* parameter now defaults to ``'data'``." msgstr "" -#: ../../library/tarfile.rst:569 msgid "" "Extract a member from the archive to the current working directory, using " "its full name. Its file information is extracted as accurately as possible. " @@ -875,29 +705,24 @@ msgid "" "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" -#: ../../library/tarfile.rst:575 msgid "" -"The *numeric_owner* and *filter* arguments are the same as " -"for :meth:`extractall`." +"The *numeric_owner* and *filter* arguments are the same as for :meth:" +"`extractall`." msgstr "" -#: ../../library/tarfile.rst:580 msgid "" "The :meth:`extract` method does not take care of several extraction issues. " "In most cases you should consider using the :meth:`extractall` method." msgstr "" -#: ../../library/tarfile.rst:585 msgid "" "Never extract archives from untrusted sources without prior inspection. See " "the warning for :meth:`extractall` for details." msgstr "" -#: ../../library/tarfile.rst:588 msgid "Added the *set_attrs* parameter." msgstr "" -#: ../../library/tarfile.rst:603 msgid "" "Extract a member from the archive as a file object. *member* may be a " "filename or a :class:`TarInfo` object. If *member* is a regular file or a " @@ -906,65 +731,55 @@ msgid "" "the archive, :exc:`KeyError` is raised." msgstr "" -#: ../../library/tarfile.rst:609 msgid "Return an :class:`io.BufferedReader` object." msgstr "" -#: ../../library/tarfile.rst:612 msgid "" "The returned :class:`io.BufferedReader` object has the :attr:`!mode` " "attribute which is always equal to ``'rb'``." msgstr "" -#: ../../library/tarfile.rst:619 msgid "" -"If *errorlevel* is ``0``, errors are ignored when " -"using :meth:`TarFile.extract` and :meth:`TarFile.extractall`. Nevertheless, " -"they appear as error messages in the debug output when *debug* is greater " -"than 0. If ``1`` (the default), all *fatal* errors are raised " -"as :exc:`OSError` or :exc:`FilterError` exceptions. If ``2``, all *non-" -"fatal* errors are raised as :exc:`TarError` exceptions as well." +"If *errorlevel* is ``0``, errors are ignored when using :meth:`TarFile." +"extract` and :meth:`TarFile.extractall`. Nevertheless, they appear as error " +"messages in the debug output when *debug* is greater than 0. If ``1`` (the " +"default), all *fatal* errors are raised as :exc:`OSError` or :exc:" +"`FilterError` exceptions. If ``2``, all *non-fatal* errors are raised as :" +"exc:`TarError` exceptions as well." msgstr "" -#: ../../library/tarfile.rst:627 msgid "" "Some exceptions, e.g. ones caused by wrong argument types or data " "corruption, are always raised." msgstr "" -#: ../../library/tarfile.rst:630 msgid "" -"Custom :ref:`extraction filters ` should " -"raise :exc:`FilterError` for *fatal* errors and :exc:`ExtractError` for *non-" -"fatal* ones." +"Custom :ref:`extraction filters ` should raise :" +"exc:`FilterError` for *fatal* errors and :exc:`ExtractError` for *non-fatal* " +"ones." msgstr "" -#: ../../library/tarfile.rst:634 msgid "" "Note that when an exception is raised, the archive may be partially " "extracted. It is the user’s responsibility to clean up." msgstr "" -#: ../../library/tarfile.rst:641 msgid "" "The :ref:`extraction filter ` used as a default " -"for the *filter* argument of :meth:`~TarFile.extract` " -"and :meth:`~TarFile.extractall`." +"for the *filter* argument of :meth:`~TarFile.extract` and :meth:`~TarFile." +"extractall`." msgstr "" -#: ../../library/tarfile.rst:645 msgid "" "The attribute may be ``None`` or a callable. String names are not allowed " "for this attribute, unlike the *filter* argument to :meth:`~TarFile.extract`." msgstr "" -#: ../../library/tarfile.rst:649 msgid "" "If ``extraction_filter`` is ``None`` (the default), extraction methods will " "use the :func:`data ` filter by default." msgstr "" -#: ../../library/tarfile.rst:652 msgid "" "The attribute may be set on instances or overridden in subclasses. It also " "is possible to set it on the ``TarFile`` class itself to set a global " @@ -974,45 +789,39 @@ msgid "" "wrapped in :func:`staticmethod` to prevent injection of a ``self`` argument." msgstr "" -#: ../../library/tarfile.rst:662 msgid "" "The default filter is set to :func:`data `, which disallows " "some dangerous features such as links to absolute paths or paths outside of " -"the destination. Previously, the default was equivalent " -"to :func:`fully_trusted `." +"the destination. Previously, the default was equivalent to :func:" +"`fully_trusted `." msgstr "" -#: ../../library/tarfile.rst:670 msgid "" "Add the file *name* to the archive. *name* may be any type of file " "(directory, fifo, symbolic link, etc.). If given, *arcname* specifies an " "alternative name for the file in the archive. Directories are added " -"recursively by default. This can be avoided by setting *recursive* " -"to :const:`False`. Recursion adds entries in sorted order. If *filter* is " -"given, it should be a function that takes a :class:`TarInfo` object argument " -"and returns the changed :class:`TarInfo` object. If it instead " -"returns :const:`None` the :class:`TarInfo` object will be excluded from the " -"archive. See :ref:`tar-examples` for an example." +"recursively by default. This can be avoided by setting *recursive* to :const:" +"`False`. Recursion adds entries in sorted order. If *filter* is given, it " +"should be a function that takes a :class:`TarInfo` object argument and " +"returns the changed :class:`TarInfo` object. If it instead returns :const:" +"`None` the :class:`TarInfo` object will be excluded from the archive. See :" +"ref:`tar-examples` for an example." msgstr "" -#: ../../library/tarfile.rst:684 msgid "Recursion adds entries in sorted order." msgstr "" -#: ../../library/tarfile.rst:690 msgid "" "Add the :class:`TarInfo` object *tarinfo* to the archive. If *tarinfo* " -"represents a non zero-size regular file, the *fileobj* argument should be " -"a :term:`binary file`, and ``tarinfo.size`` bytes are read from it and added " -"to the archive. You can create :class:`TarInfo` objects directly, or by " -"using :meth:`gettarinfo`." +"represents a non zero-size regular file, the *fileobj* argument should be a :" +"term:`binary file`, and ``tarinfo.size`` bytes are read from it and added to " +"the archive. You can create :class:`TarInfo` objects directly, or by using :" +"meth:`gettarinfo`." msgstr "" -#: ../../library/tarfile.rst:697 msgid "*fileobj* must be given for non-zero-sized regular files." msgstr "" -#: ../../library/tarfile.rst:702 msgid "" "Create a :class:`TarInfo` object from the result of :func:`os.stat` or " "equivalent on an existing file. The file is either named by *name*, or " @@ -1023,31 +832,26 @@ msgid "" "The name should be a text string." msgstr "" -#: ../../library/tarfile.rst:711 msgid "" "You can modify some of the :class:`TarInfo`’s attributes before you add it " "using :meth:`addfile`. If the file object is not an ordinary file object " -"positioned at the beginning of the file, attributes such " -"as :attr:`~TarInfo.size` may need modifying. This is the case for objects " -"such as :class:`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be " -"modified, in which case *arcname* could be a dummy string." +"positioned at the beginning of the file, attributes such as :attr:`~TarInfo." +"size` may need modifying. This is the case for objects such as :class:" +"`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be modified, in which " +"case *arcname* could be a dummy string." msgstr "" -#: ../../library/tarfile.rst:725 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" -#: ../../library/tarfile.rst:732 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" -#: ../../library/tarfile.rst:739 msgid "TarInfo Objects" msgstr "" -#: ../../library/tarfile.rst:741 msgid "" "A :class:`TarInfo` object represents one member in a :class:`TarFile`. Aside " "from storing all required attributes of a file (like file type, size, time, " @@ -1055,228 +859,180 @@ msgid "" "type. It does *not* contain the file's data itself." msgstr "" -#: ../../library/tarfile.rst:746 msgid "" -":class:`TarInfo` objects are returned by :class:`TarFile`'s " -"methods :meth:`~TarFile.getmember`, :meth:`~TarFile.getmembers` " -"and :meth:`~TarFile.gettarinfo`." +":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" +"`~TarFile.getmember`, :meth:`~TarFile.getmembers` and :meth:`~TarFile." +"gettarinfo`." msgstr "" -#: ../../library/tarfile.rst:750 msgid "" -"Modifying the objects returned by :meth:`~TarFile.getmember` " -"or :meth:`~TarFile.getmembers` will affect all subsequent operations on the " -"archive. For cases where this is unwanted, you can use :mod:`copy.copy() " -"` or call the :meth:`~TarInfo.replace` method to create a modified " -"copy in one step." +"Modifying the objects returned by :meth:`~TarFile.getmember` or :meth:" +"`~TarFile.getmembers` will affect all subsequent operations on the archive. " +"For cases where this is unwanted, you can use :mod:`copy.copy() ` or " +"call the :meth:`~TarInfo.replace` method to create a modified copy in one " +"step." msgstr "" -#: ../../library/tarfile.rst:756 msgid "" "Several attributes can be set to ``None`` to indicate that a piece of " "metadata is unused or unknown. Different :class:`TarInfo` methods handle " "``None`` differently:" msgstr "" -#: ../../library/tarfile.rst:760 msgid "" "The :meth:`~TarFile.extract` or :meth:`~TarFile.extractall` methods will " "ignore the corresponding metadata, leaving it set to a default." msgstr "" -#: ../../library/tarfile.rst:762 msgid ":meth:`~TarFile.addfile` will fail." msgstr "" -#: ../../library/tarfile.rst:763 msgid ":meth:`~TarFile.list` will print a placeholder string." msgstr "" -#: ../../library/tarfile.rst:767 msgid "Create a :class:`TarInfo` object." msgstr "" -#: ../../library/tarfile.rst:772 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" -#: ../../library/tarfile.rst:774 msgid "Raises :exc:`HeaderError` if the buffer is invalid." msgstr "" -#: ../../library/tarfile.rst:779 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" -#: ../../library/tarfile.rst:785 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." msgstr "" -#: ../../library/tarfile.rst:792 msgid "A ``TarInfo`` object has the following public data attributes:" msgstr "" -#: ../../library/tarfile.rst:798 msgid "Name of the archive member." msgstr "" -#: ../../library/tarfile.rst:804 msgid "Size in bytes." msgstr "" -#: ../../library/tarfile.rst:810 msgid "" -"Time of last modification in seconds since the :ref:`epoch `, as " -"in :attr:`os.stat_result.st_mtime`." +"Time of last modification in seconds since the :ref:`epoch `, as in :" +"attr:`os.stat_result.st_mtime`." msgstr "" -#: ../../library/tarfile.rst:815 ../../library/tarfile.rst:826 -#: ../../library/tarfile.rst:858 ../../library/tarfile.rst:869 -#: ../../library/tarfile.rst:880 ../../library/tarfile.rst:891 msgid "" -"Can be set to ``None`` for :meth:`~TarFile.extract` " -"and :meth:`~TarFile.extractall`, causing extraction to skip applying this " -"attribute." +"Can be set to ``None`` for :meth:`~TarFile.extract` and :meth:`~TarFile." +"extractall`, causing extraction to skip applying this attribute." msgstr "" -#: ../../library/tarfile.rst:822 msgid "Permission bits, as for :func:`os.chmod`." msgstr "" -#: ../../library/tarfile.rst:832 msgid "" -"File type. *type* is usually one of these " -"constants: :const:`REGTYPE`, :const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :const:`BLKTYPE`, :const:`GNUTYPE_SPARSE`. " -"To determine the type of a :class:`TarInfo` object more conveniently, use " -"the ``is*()`` methods below." +"File type. *type* is usually one of these constants: :const:`REGTYPE`, :" +"const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :" +"const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :const:`BLKTYPE`, :" +"const:`GNUTYPE_SPARSE`. To determine the type of a :class:`TarInfo` object " +"more conveniently, use the ``is*()`` methods below." msgstr "" -#: ../../library/tarfile.rst:842 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." msgstr "" -#: ../../library/tarfile.rst:845 msgid "" "For symbolic links (``SYMTYPE``), the *linkname* is relative to the " "directory that contains the link. For hard links (``LNKTYPE``), the " "*linkname* is relative to the root of the archive." msgstr "" -#: ../../library/tarfile.rst:854 msgid "User ID of the user who originally stored this member." msgstr "" -#: ../../library/tarfile.rst:865 msgid "Group ID of the user who originally stored this member." msgstr "" -#: ../../library/tarfile.rst:876 msgid "User name." msgstr "" -#: ../../library/tarfile.rst:887 msgid "Group name." msgstr "" -#: ../../library/tarfile.rst:898 msgid "Header checksum." msgstr "" -#: ../../library/tarfile.rst:904 msgid "Device major number." msgstr "" -#: ../../library/tarfile.rst:910 msgid "Device minor number." msgstr "" -#: ../../library/tarfile.rst:916 msgid "The tar header starts here." msgstr "" -#: ../../library/tarfile.rst:922 msgid "The file's data starts here." msgstr "" -#: ../../library/tarfile.rst:927 msgid "Sparse member information." msgstr "" -#: ../../library/tarfile.rst:933 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" -#: ../../library/tarfile.rst:941 msgid "" "Return a *new* copy of the :class:`!TarInfo` object with the given " "attributes changed. For example, to return a ``TarInfo`` with the group name " "set to ``'staff'``, use::" msgstr "" -#: ../../library/tarfile.rst:945 msgid "new_tarinfo = old_tarinfo.replace(gname='staff')" msgstr "" -#: ../../library/tarfile.rst:947 msgid "" -"By default, a deep copy is made. If *deep* is false, the copy is shallow, " -"i.e. ``pax_headers`` and any custom attributes are shared with the original " +"By default, a deep copy is made. If *deep* is false, the copy is shallow, i." +"e. ``pax_headers`` and any custom attributes are shared with the original " "``TarInfo`` object." msgstr "" -#: ../../library/tarfile.rst:951 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" -#: ../../library/tarfile.rst:956 msgid "Return :const:`True` if the :class:`TarInfo` object is a regular file." msgstr "" -#: ../../library/tarfile.rst:961 msgid "Same as :meth:`isfile`." msgstr "" -#: ../../library/tarfile.rst:966 msgid "Return :const:`True` if it is a directory." msgstr "" -#: ../../library/tarfile.rst:971 msgid "Return :const:`True` if it is a symbolic link." msgstr "" -#: ../../library/tarfile.rst:976 msgid "Return :const:`True` if it is a hard link." msgstr "" -#: ../../library/tarfile.rst:981 msgid "Return :const:`True` if it is a character device." msgstr "" -#: ../../library/tarfile.rst:986 msgid "Return :const:`True` if it is a block device." msgstr "" -#: ../../library/tarfile.rst:991 msgid "Return :const:`True` if it is a FIFO." msgstr "" -#: ../../library/tarfile.rst:996 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" -#: ../../library/tarfile.rst:1002 msgid "Extraction filters" msgstr "" -#: ../../library/tarfile.rst:1006 msgid "" "The *tar* format is designed to capture all details of a UNIX-like " "filesystem, which makes it very powerful. Unfortunately, the features make " @@ -1286,237 +1042,194 @@ msgid "" "components, or symlinks that affect later members)." msgstr "" -#: ../../library/tarfile.rst:1014 msgid "" "In most cases, the full functionality is not needed. Therefore, *tarfile* " "supports extraction filters: a mechanism to limit functionality, and thus " "mitigate some of the security issues." msgstr "" -#: ../../library/tarfile.rst:1020 msgid "" "None of the available filters blocks *all* dangerous archive features. Never " -"extract archives from untrusted sources without prior inspection. See " -"also :ref:`tarfile-further-verification`." +"extract archives from untrusted sources without prior inspection. See also :" +"ref:`tarfile-further-verification`." msgstr "" -#: ../../library/tarfile.rst:1026 msgid ":pep:`706`" msgstr "" -#: ../../library/tarfile.rst:1027 msgid "Contains further motivation and rationale behind the design." msgstr "" -#: ../../library/tarfile.rst:1029 msgid "" -"The *filter* argument to :meth:`TarFile.extract` " -"or :meth:`~TarFile.extractall` can be:" +"The *filter* argument to :meth:`TarFile.extract` or :meth:`~TarFile." +"extractall` can be:" msgstr "" -#: ../../library/tarfile.rst:1032 msgid "" "the string ``'fully_trusted'``: Honor all metadata as specified in the " "archive. Should be used if the user trusts the archive completely, or " "implements their own complex verification." msgstr "" -#: ../../library/tarfile.rst:1037 msgid "" "the string ``'tar'``: Honor most *tar*-specific features (i.e. features of " "UNIX-like filesystems), but block features that are very likely to be " "surprising or malicious. See :func:`tar_filter` for details." msgstr "" -#: ../../library/tarfile.rst:1041 msgid "" "the string ``'data'``: Ignore or block most features specific to UNIX-like " -"filesystems. Intended for extracting cross-platform data archives. " -"See :func:`data_filter` for details." +"filesystems. Intended for extracting cross-platform data archives. See :func:" +"`data_filter` for details." msgstr "" -#: ../../library/tarfile.rst:1045 msgid "``None`` (default): Use :attr:`TarFile.extraction_filter`." msgstr "" -#: ../../library/tarfile.rst:1047 msgid "" "If that is also ``None`` (the default), the ``'data'`` filter will be used." msgstr "" -#: ../../library/tarfile.rst:1051 msgid "" "The default filter is set to :func:`data `. Previously, the " "default was equivalent to :func:`fully_trusted `." msgstr "" -#: ../../library/tarfile.rst:1055 msgid "" -"A callable which will be called for each extracted member with " -"a :ref:`TarInfo ` describing the member and the destination " -"path to where the archive is extracted (i.e. the same path is used for all " +"A callable which will be called for each extracted member with a :ref:" +"`TarInfo ` describing the member and the destination path " +"to where the archive is extracted (i.e. the same path is used for all " "members)::" msgstr "" -#: ../../library/tarfile.rst:1060 msgid "filter(member: TarInfo, path: str, /) -> TarInfo | None" msgstr "" -#: ../../library/tarfile.rst:1062 msgid "" "The callable is called just before each member is extracted, so it can take " "the current state of the disk into account. It can:" msgstr "" -#: ../../library/tarfile.rst:1066 msgid "" "return a :class:`TarInfo` object which will be used instead of the metadata " "in the archive, or" msgstr "" -#: ../../library/tarfile.rst:1068 msgid "return ``None``, in which case the member will be skipped, or" msgstr "" -#: ../../library/tarfile.rst:1069 msgid "" -"raise an exception to abort the operation or skip the member, depending " -"on :attr:`~TarFile.errorlevel`. Note that when extraction is " -"aborted, :meth:`~TarFile.extractall` may leave the archive partially " -"extracted. It does not attempt to clean up." +"raise an exception to abort the operation or skip the member, depending on :" +"attr:`~TarFile.errorlevel`. Note that when extraction is aborted, :meth:" +"`~TarFile.extractall` may leave the archive partially extracted. It does not " +"attempt to clean up." msgstr "" -#: ../../library/tarfile.rst:1075 msgid "Default named filters" msgstr "" -#: ../../library/tarfile.rst:1077 msgid "" "The pre-defined, named filters are available as functions, so they can be " "reused in custom filters:" msgstr "" -#: ../../library/tarfile.rst:1082 msgid "Return *member* unchanged." msgstr "" -#: ../../library/tarfile.rst:1084 msgid "This implements the ``'fully_trusted'`` filter." msgstr "" -#: ../../library/tarfile.rst:1088 msgid "Implements the ``'tar'`` filter." msgstr "" -#: ../../library/tarfile.rst:1090 msgid "Strip leading slashes (``/`` and :data:`os.sep`) from filenames." msgstr "" -#: ../../library/tarfile.rst:1091 msgid "" ":ref:`Refuse ` to extract files with absolute " "paths (in case the name is absolute even after stripping slashes, e.g. ``C:/" "foo`` on Windows). This raises :class:`~tarfile.AbsolutePathError`." msgstr "" -#: ../../library/tarfile.rst:1095 msgid "" ":ref:`Refuse ` to extract files whose absolute " "path (after following symlinks) would end up outside the destination. This " "raises :class:`~tarfile.OutsideDestinationError`." msgstr "" -#: ../../library/tarfile.rst:1098 msgid "" -"Clear high mode bits (setuid, setgid, sticky) and group/other write bits " -"(:const:`~stat.S_IWGRP` | :const:`~stat.S_IWOTH`)." +"Clear high mode bits (setuid, setgid, sticky) and group/other write bits (:" +"const:`~stat.S_IWGRP` | :const:`~stat.S_IWOTH`)." msgstr "" -#: ../../library/tarfile.rst:1101 ../../library/tarfile.rst:1140 msgid "Return the modified ``TarInfo`` member." msgstr "" -#: ../../library/tarfile.rst:1105 msgid "" "Implements the ``'data'`` filter. In addition to what ``tar_filter`` does:" msgstr "" -#: ../../library/tarfile.rst:1108 msgid "" -"Normalize link targets (:attr:`TarInfo.linkname`) " -"using :func:`os.path.normpath`. Note that this removes internal ``..`` " -"components, which may change the meaning of the link if the path in :attr:`!" -"TarInfo.linkname` traverses symbolic links." +"Normalize link targets (:attr:`TarInfo.linkname`) using :func:`os.path." +"normpath`. Note that this removes internal ``..`` components, which may " +"change the meaning of the link if the path in :attr:`!TarInfo.linkname` " +"traverses symbolic links." msgstr "" -#: ../../library/tarfile.rst:1114 msgid "" ":ref:`Refuse ` to extract links (hard or soft) " "that link to absolute paths, or ones that link outside the destination." msgstr "" -#: ../../library/tarfile.rst:1117 msgid "" -"This raises :class:`~tarfile.AbsoluteLinkError` " -"or :class:`~tarfile.LinkOutsideDestinationError`." +"This raises :class:`~tarfile.AbsoluteLinkError` or :class:`~tarfile." +"LinkOutsideDestinationError`." msgstr "" -#: ../../library/tarfile.rst:1120 msgid "" "Note that such files are refused even on platforms that do not support " "symbolic links." msgstr "" -#: ../../library/tarfile.rst:1123 msgid "" ":ref:`Refuse ` to extract device files (including " "pipes). This raises :class:`~tarfile.SpecialFileError`." msgstr "" -#: ../../library/tarfile.rst:1127 msgid "For regular files, including hard links:" msgstr "" -#: ../../library/tarfile.rst:1129 msgid "" -"Set the owner read and write permissions (:const:`~stat.S_IRUSR` " -"| :const:`~stat.S_IWUSR`)." +"Set the owner read and write permissions (:const:`~stat.S_IRUSR` | :const:" +"`~stat.S_IWUSR`)." msgstr "" -#: ../../library/tarfile.rst:1131 msgid "" -"Remove the group & other executable permission (:const:`~stat.S_IXGRP` " -"| :const:`~stat.S_IXOTH`) if the owner doesn’t have it " -"(:const:`~stat.S_IXUSR`)." +"Remove the group & other executable permission (:const:`~stat.S_IXGRP` | :" +"const:`~stat.S_IXOTH`) if the owner doesn’t have it (:const:`~stat.S_IXUSR`)." msgstr "" -#: ../../library/tarfile.rst:1135 msgid "" "For other files (directories), set ``mode`` to ``None``, so that extraction " "methods skip applying permission bits." msgstr "" -#: ../../library/tarfile.rst:1137 msgid "" "Set user and group info (``uid``, ``gid``, ``uname``, ``gname``) to " "``None``, so that extraction methods skip setting it." msgstr "" -#: ../../library/tarfile.rst:1142 msgid "" -"Note that this filter does not block *all* dangerous archive features. " -"See :ref:`tarfile-further-verification` for details." +"Note that this filter does not block *all* dangerous archive features. See :" +"ref:`tarfile-further-verification` for details." msgstr "" -#: ../../library/tarfile.rst:1147 msgid "Link targets are now normalized." msgstr "" -#: ../../library/tarfile.rst:1153 msgid "Filter errors" msgstr "" -#: ../../library/tarfile.rst:1155 msgid "" "When a filter refuses to extract a file, it will raise an appropriate " "exception, a subclass of :class:`~tarfile.FilterError`. This will abort the " @@ -1525,11 +1238,9 @@ msgid "" "continue." msgstr "" -#: ../../library/tarfile.rst:1165 msgid "Hints for further verification" msgstr "" -#: ../../library/tarfile.rst:1167 msgid "" "Even with ``filter='data'``, *tarfile* is not suited for extracting " "untrusted files without prior inspection. Among other issues, the pre-" @@ -1537,73 +1248,60 @@ msgid "" "additional checks." msgstr "" -#: ../../library/tarfile.rst:1172 msgid "Here is an incomplete list of things to consider:" msgstr "" -#: ../../library/tarfile.rst:1174 msgid "" -"Extract to a :func:`new temporary directory ` to prevent " -"e.g. exploiting pre-existing links, and to make it easier to clean up after " -"a failed extraction." +"Extract to a :func:`new temporary directory ` to prevent e." +"g. exploiting pre-existing links, and to make it easier to clean up after a " +"failed extraction." msgstr "" -#: ../../library/tarfile.rst:1177 msgid "Disallow symbolic links if you do not need the functionality." msgstr "" -#: ../../library/tarfile.rst:1178 msgid "" "When working with untrusted data, use external (e.g. OS-level) limits on " "disk, memory and CPU usage." msgstr "" -#: ../../library/tarfile.rst:1180 msgid "" "Check filenames against an allow-list of characters (to filter out control " "characters, confusables, foreign path separators, and so on)." msgstr "" -#: ../../library/tarfile.rst:1183 msgid "" "Check that filenames have expected extensions (discouraging files that " "execute when you “click on them”, or extension-less files like Windows " "special device names)." msgstr "" -#: ../../library/tarfile.rst:1186 msgid "" "Limit the number of extracted files, total size of extracted data, filename " "length (including symlink length), and size of individual files." msgstr "" -#: ../../library/tarfile.rst:1188 msgid "Check for files that would be shadowed on case-insensitive filesystems." msgstr "" -#: ../../library/tarfile.rst:1190 msgid "Also note that:" msgstr "" -#: ../../library/tarfile.rst:1192 msgid "" "Tar files may contain multiple versions of the same file. Later ones are " "expected to overwrite any earlier ones. This feature is crucial to allow " "updating tape archives, but can be abused maliciously." msgstr "" -#: ../../library/tarfile.rst:1196 msgid "" "*tarfile* does not protect against issues with “live” data, e.g. an attacker " "tinkering with the destination (or source) directory while extraction (or " "archiving) is in progress." msgstr "" -#: ../../library/tarfile.rst:1202 msgid "Supporting older Python versions" msgstr "" -#: ../../library/tarfile.rst:1204 msgid "" "Extraction filters were added to Python 3.12, but may be backported to older " "versions as security updates. To check whether the feature is available, use " @@ -1611,59 +1309,48 @@ msgid "" "version." msgstr "" -#: ../../library/tarfile.rst:1209 msgid "" "The following examples show how to support Python versions with and without " "the feature. Note that setting ``extraction_filter`` will affect any " "subsequent operations." msgstr "" -#: ../../library/tarfile.rst:1213 msgid "Fully trusted archive::" msgstr "" -#: ../../library/tarfile.rst:1215 msgid "" "my_tarfile.extraction_filter = (lambda member, path: member)\n" "my_tarfile.extractall()" msgstr "" -#: ../../library/tarfile.rst:1218 msgid "" "Use the ``'data'`` filter if available, but revert to Python 3.11 behavior " "(``'fully_trusted'``) if this feature is not available::" msgstr "" -#: ../../library/tarfile.rst:1221 msgid "" "my_tarfile.extraction_filter = getattr(tarfile, 'data_filter',\n" " (lambda member, path: member))\n" "my_tarfile.extractall()" msgstr "" -#: ../../library/tarfile.rst:1225 msgid "Use the ``'data'`` filter; *fail* if it is not available::" msgstr "" -#: ../../library/tarfile.rst:1227 msgid "my_tarfile.extractall(filter=tarfile.data_filter)" msgstr "" -#: ../../library/tarfile.rst:1229 msgid "or::" msgstr "" -#: ../../library/tarfile.rst:1231 msgid "" "my_tarfile.extraction_filter = tarfile.data_filter\n" "my_tarfile.extractall()" msgstr "" -#: ../../library/tarfile.rst:1234 msgid "Use the ``'data'`` filter; *warn* if it is not available::" msgstr "" -#: ../../library/tarfile.rst:1236 msgid "" "if hasattr(tarfile, 'data_filter'):\n" " my_tarfile.extractall(filter='data')\n" @@ -1673,28 +1360,23 @@ msgid "" " my_tarfile.extractall()" msgstr "" -#: ../../library/tarfile.rst:1245 msgid "Stateful extraction filter example" msgstr "" -#: ../../library/tarfile.rst:1247 msgid "" "While *tarfile*'s extraction methods take a simple *filter* callable, custom " "filters may be more complex objects with an internal state. It may be useful " "to write these as context managers, to be used like this::" msgstr "" -#: ../../library/tarfile.rst:1251 msgid "" "with StatefulFilter() as filter_func:\n" " tar.extractall(path, filter=filter_func)" msgstr "" -#: ../../library/tarfile.rst:1254 msgid "Such a filter can be written as, for example::" msgstr "" -#: ../../library/tarfile.rst:1256 msgid "" "class StatefulFilter:\n" " def __init__(self):\n" @@ -1711,108 +1393,84 @@ msgid "" " print(f'{self.file_count} files extracted')" msgstr "" -#: ../../library/tarfile.rst:1276 msgid "Command-Line Interface" msgstr "" -#: ../../library/tarfile.rst:1280 msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" -#: ../../library/tarfile.rst:1283 msgid "" -"If you want to create a new tar archive, specify its name after " -"the :option:`-c` option and then list the filename(s) that should be " -"included:" +"If you want to create a new tar archive, specify its name after the :option:" +"`-c` option and then list the filename(s) that should be included:" msgstr "" -#: ../../library/tarfile.rst:1286 msgid "$ python -m tarfile -c monty.tar spam.txt eggs.txt" msgstr "" -#: ../../library/tarfile.rst:1290 msgid "Passing a directory is also acceptable:" msgstr "" -#: ../../library/tarfile.rst:1292 msgid "$ python -m tarfile -c monty.tar life-of-brian_1979/" msgstr "" -#: ../../library/tarfile.rst:1296 msgid "" -"If you want to extract a tar archive into the current directory, use " -"the :option:`-e` option:" +"If you want to extract a tar archive into the current directory, use the :" +"option:`-e` option:" msgstr "" -#: ../../library/tarfile.rst:1299 msgid "$ python -m tarfile -e monty.tar" msgstr "" -#: ../../library/tarfile.rst:1303 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" -#: ../../library/tarfile.rst:1306 msgid "$ python -m tarfile -e monty.tar other-dir/" msgstr "" -#: ../../library/tarfile.rst:1310 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" -#: ../../library/tarfile.rst:1312 msgid "$ python -m tarfile -l monty.tar" msgstr "" -#: ../../library/tarfile.rst:1318 msgid "Command-line options" msgstr "" -#: ../../library/tarfile.rst:1323 msgid "List files in a tarfile." msgstr "" -#: ../../library/tarfile.rst:1328 msgid "Create tarfile from source files." msgstr "" -#: ../../library/tarfile.rst:1333 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" -#: ../../library/tarfile.rst:1338 msgid "Test whether the tarfile is valid or not." msgstr "" -#: ../../library/tarfile.rst:1342 msgid "Verbose output." msgstr "" -#: ../../library/tarfile.rst:1346 msgid "" "Specifies the *filter* for ``--extract``. See :ref:`tarfile-extraction-" "filter` for details. Only string names are accepted (that is, " "``fully_trusted``, ``tar``, and ``data``)." msgstr "" -#: ../../library/tarfile.rst:1354 msgid "Examples" msgstr "" -#: ../../library/tarfile.rst:1357 msgid "Reading examples" msgstr "" -#: ../../library/tarfile.rst:1359 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" -#: ../../library/tarfile.rst:1361 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar.gz\")\n" @@ -1820,13 +1478,11 @@ msgid "" "tar.close()" msgstr "" -#: ../../library/tarfile.rst:1366 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" msgstr "" -#: ../../library/tarfile.rst:1369 msgid "" "import os\n" "import tarfile\n" @@ -1841,13 +1497,11 @@ msgid "" "tar.close()" msgstr "" -#: ../../library/tarfile.rst:1381 msgid "" "How to read a gzip compressed tar archive and display some member " "information::" msgstr "" -#: ../../library/tarfile.rst:1383 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar.gz\", \"r:gz\")\n" @@ -1863,15 +1517,12 @@ msgid "" "tar.close()" msgstr "" -#: ../../library/tarfile.rst:1396 msgid "Writing examples" msgstr "" -#: ../../library/tarfile.rst:1398 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" -#: ../../library/tarfile.rst:1400 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar\", \"w\")\n" @@ -1880,11 +1531,9 @@ msgid "" "tar.close()" msgstr "" -#: ../../library/tarfile.rst:1406 msgid "The same example using the :keyword:`with` statement::" msgstr "" -#: ../../library/tarfile.rst:1408 msgid "" "import tarfile\n" "with tarfile.open(\"sample.tar\", \"w\") as tar:\n" @@ -1892,13 +1541,11 @@ msgid "" " tar.add(name)" msgstr "" -#: ../../library/tarfile.rst:1413 msgid "" "How to create and write an archive to stdout using :data:`sys.stdout.buffer " "` in the *fileobj* parameter in :meth:`TarFile.add`::" msgstr "" -#: ../../library/tarfile.rst:1417 msgid "" "import sys\n" "import tarfile\n" @@ -1908,13 +1555,11 @@ msgid "" " tar.add(name)" msgstr "" -#: ../../library/tarfile.rst:1423 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" -#: ../../library/tarfile.rst:1426 msgid "" "import tarfile\n" "def reset(tarinfo):\n" @@ -1926,17 +1571,14 @@ msgid "" "tar.close()" msgstr "" -#: ../../library/tarfile.rst:1439 msgid "Supported tar formats" msgstr "" -#: ../../library/tarfile.rst:1441 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" -#: ../../library/tarfile.rst:1443 msgid "" "The POSIX.1-1988 ustar format (:const:`USTAR_FORMAT`). It supports filenames " "up to a length of at best 256 characters and linknames up to 100 characters. " @@ -1944,7 +1586,6 @@ msgid "" "supported format." msgstr "" -#: ../../library/tarfile.rst:1448 msgid "" "The GNU tar format (:const:`GNU_FORMAT`). It supports long filenames and " "linknames, files bigger than 8 GiB and sparse files. It is the de facto " @@ -1952,7 +1593,6 @@ msgid "" "extensions for long names, sparse file support is read-only." msgstr "" -#: ../../library/tarfile.rst:1453 msgid "" "The POSIX.1-2001 pax format (:const:`PAX_FORMAT`). It is the most flexible " "format with virtually no limits. It supports long filenames and linknames, " @@ -1963,7 +1603,6 @@ msgid "" "*ustar* format. It is the current default format for new archives." msgstr "" -#: ../../library/tarfile.rst:1461 msgid "" "It extends the existing *ustar* format with extra headers for information " "that cannot be stored otherwise. There are two flavours of pax headers: " @@ -1972,13 +1611,11 @@ msgid "" "in a pax header is encoded in *UTF-8* for portability reasons." msgstr "" -#: ../../library/tarfile.rst:1467 msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" -#: ../../library/tarfile.rst:1470 msgid "" "The ancient V7 format. This is the first tar format from Unix Seventh " "Edition, storing only regular files and directories. Names must not be " @@ -1987,17 +1624,14 @@ msgid "" "ASCII characters." msgstr "" -#: ../../library/tarfile.rst:1475 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." msgstr "" -#: ../../library/tarfile.rst:1481 msgid "Unicode issues" msgstr "" -#: ../../library/tarfile.rst:1483 msgid "" "The tar format was originally conceived to make backups on tape drives with " "the main focus on preserving file system information. Nowadays tar archives " @@ -2012,13 +1646,11 @@ msgid "" "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" -#: ../../library/tarfile.rst:1495 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." msgstr "" -#: ../../library/tarfile.rst:1498 msgid "" "*encoding* defines the character encoding to use for the metadata in the " "archive. The default value is :func:`sys.getfilesystemencoding` or " @@ -2027,7 +1659,6 @@ msgid "" "not set appropriately, this conversion may fail." msgstr "" -#: ../../library/tarfile.rst:1504 msgid "" "The *errors* argument defines how characters are treated that cannot be " "converted. Possible values are listed in section :ref:`error-handlers`. The " @@ -2035,7 +1666,6 @@ msgid "" "system calls, see :ref:`os-filenames`." msgstr "" -#: ../../library/tarfile.rst:1509 msgid "" "For :const:`PAX_FORMAT` archives (the default), *encoding* is generally not " "needed because all the metadata is stored using *UTF-8*. *encoding* is only " diff --git a/library/telnetlib.po b/library/telnetlib.po index 4fc2456..40400c1 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/telnetlib.rst:2 msgid ":mod:`!telnetlib` --- Telnet client" msgstr "" -#: ../../library/telnetlib.rst:10 msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." +"This module is no longer part of the Python standard library. It was :ref:" +"`removed in Python 3.13 ` after being deprecated in " +"Python 3.11. The removal was decided in :pep:`594`." msgstr "" -#: ../../library/telnetlib.rst:14 msgid "" -"Possible replacements are third-party libraries from " -"PyPI: :pypi:`telnetlib3` or :pypi:`Exscript`. These are not supported or " -"maintained by the Python core team." +"Possible replacements are third-party libraries from PyPI: :pypi:" +"`telnetlib3` or :pypi:`Exscript`. These are not supported or maintained by " +"the Python core team." msgstr "" -#: ../../library/telnetlib.rst:18 msgid "" "The last version of Python that provided the :mod:`!telnetlib` module was " "`Python 3.12 `_." diff --git a/library/tempfile.po b/library/tempfile.po index 7c4d7f6..01e51d5 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,26 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tempfile.rst:2 msgid ":mod:`!tempfile` --- Generate temporary files and directories" msgstr "" -#: ../../library/tempfile.rst:9 msgid "**Source code:** :source:`Lib/tempfile.py`" msgstr "" -#: ../../library/tempfile.rst:17 msgid "" "This module creates temporary files and directories. It works on all " -"supported " -"platforms. :class:`TemporaryFile`, :class:`NamedTemporaryFile`, :class:`TemporaryDirectory`, " -"and :class:`SpooledTemporaryFile` are high-level interfaces which provide " -"automatic cleanup and can be used as :term:`context managers `. :func:`mkstemp` and :func:`mkdtemp` are lower-level functions " -"which require manual cleanup." +"supported platforms. :class:`TemporaryFile`, :class:`NamedTemporaryFile`, :" +"class:`TemporaryDirectory`, and :class:`SpooledTemporaryFile` are high-level " +"interfaces which provide automatic cleanup and can be used as :term:`context " +"managers `. :func:`mkstemp` and :func:`mkdtemp` are lower-" +"level functions which require manual cleanup." msgstr "" -#: ../../library/tempfile.rst:24 msgid "" "All the user-callable functions and constructors take additional arguments " "which allow direct control over the location and name of temporary files and " @@ -48,11 +43,9 @@ msgid "" "clarity." msgstr "" -#: ../../library/tempfile.rst:32 msgid "The module defines the following user-callable items:" msgstr "" -#: ../../library/tempfile.rst:36 msgid "" "Return a :term:`file-like object` that can be used as a temporary storage " "area. The file is created securely, using the same rules as :func:`mkstemp`. " @@ -64,14 +57,12 @@ msgid "" "visible name in the file system." msgstr "" -#: ../../library/tempfile.rst:44 msgid "" -"The resulting object can be used as a :term:`context manager` " -"(see :ref:`tempfile-examples`). On completion of the context or destruction " -"of the file object the temporary file will be removed from the filesystem." +"The resulting object can be used as a :term:`context manager` (see :ref:" +"`tempfile-examples`). On completion of the context or destruction of the " +"file object the temporary file will be removed from the filesystem." msgstr "" -#: ../../library/tempfile.rst:49 msgid "" "The *mode* parameter defaults to ``'w+b'`` so that the file created can be " "read and written without being closed. Binary mode is used so that it " @@ -80,67 +71,54 @@ msgid "" "for :func:`open`." msgstr "" -#: ../../library/tempfile.rst:55 msgid "" "The *dir*, *prefix* and *suffix* parameters have the same meaning and " "defaults as with :func:`mkstemp`." msgstr "" -#: ../../library/tempfile.rst:58 msgid "" "The returned object is a true file object on POSIX platforms. On other " "platforms, it is a file-like object whose :attr:`!file` attribute is the " "underlying true file object." msgstr "" -#: ../../library/tempfile.rst:62 msgid "" "The :py:const:`os.O_TMPFILE` flag is used if it is available and works " "(Linux-specific, requires Linux kernel 3.11 or later)." msgstr "" -#: ../../library/tempfile.rst:65 msgid "" "On platforms that are neither Posix nor Cygwin, TemporaryFile is an alias " "for NamedTemporaryFile." msgstr "" -#: ../../library/tempfile.rst:68 ../../library/tempfile.rst:137 -#: ../../library/tempfile.rst:264 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkstemp`` with " "argument ``fullpath``." msgstr "" -#: ../../library/tempfile.rst:72 msgid "The :py:const:`os.O_TMPFILE` flag is now used if available." msgstr "" -#: ../../library/tempfile.rst:74 ../../library/tempfile.rst:139 -#: ../../library/tempfile.rst:169 msgid "Added *errors* parameter." msgstr "" -#: ../../library/tempfile.rst:80 msgid "" "This function operates exactly as :func:`TemporaryFile` does, except the " "following differences:" msgstr "" -#: ../../library/tempfile.rst:83 msgid "" "This function returns a file that is guaranteed to have a visible name in " "the file system." msgstr "" -#: ../../library/tempfile.rst:85 msgid "" "To manage the named file, it extends the parameters of :func:`TemporaryFile` " "with *delete* and *delete_on_close* parameters that determine whether and " "how the named file should be automatically deleted." msgstr "" -#: ../../library/tempfile.rst:89 msgid "" "The returned object is always a :term:`file-like object` whose :attr:`!file` " "attribute is the underlying true file object. This file-like object can be " @@ -151,7 +129,6 @@ msgid "" "creation." msgstr "" -#: ../../library/tempfile.rst:97 msgid "" "If *delete* is true (the default) and *delete_on_close* is true (the " "default), the file is deleted as soon as it is closed. If *delete* is true " @@ -161,7 +138,6 @@ msgid "" "is false, the value of *delete_on_close* is ignored." msgstr "" -#: ../../library/tempfile.rst:104 msgid "" "Therefore to use the name of the temporary file to reopen the file after " "closing it, either make sure not to delete the file upon closure (set the " @@ -171,42 +147,35 @@ msgid "" "automatic cleaning of the temporary file upon the context manager exit." msgstr "" -#: ../../library/tempfile.rst:111 msgid "" "Opening the temporary file again by its name while it is still open works as " "follows:" msgstr "" -#: ../../library/tempfile.rst:114 msgid "On POSIX the file can always be opened again." msgstr "" -#: ../../library/tempfile.rst:115 msgid "" "On Windows, make sure that at least one of the following conditions are " "fulfilled:" msgstr "" -#: ../../library/tempfile.rst:118 msgid "*delete* is false" msgstr "" -#: ../../library/tempfile.rst:119 msgid "" "additional open shares delete access (e.g. by calling :func:`os.open` with " "the flag ``O_TEMPORARY``)" msgstr "" -#: ../../library/tempfile.rst:121 msgid "" "*delete* is true but *delete_on_close* is false. Note, that in this case the " -"additional opens that do not share delete access (e.g. created via " -"builtin :func:`open`) must be closed before exiting the context manager, " -"else the :func:`os.unlink` call on context manager exit will fail with " -"a :exc:`PermissionError`." +"additional opens that do not share delete access (e.g. created via builtin :" +"func:`open`) must be closed before exiting the context manager, else the :" +"func:`os.unlink` call on context manager exit will fail with a :exc:" +"`PermissionError`." msgstr "" -#: ../../library/tempfile.rst:127 msgid "" "On Windows, if *delete_on_close* is false, and the file is created in a " "directory for which the user lacks delete access, then the :func:`os.unlink` " @@ -216,32 +185,27 @@ msgid "" "not granted." msgstr "" -#: ../../library/tempfile.rst:134 msgid "" "On POSIX (only), a process that is terminated abruptly with SIGKILL cannot " "automatically delete any NamedTemporaryFiles it created." msgstr "" -#: ../../library/tempfile.rst:142 msgid "Added *delete_on_close* parameter." msgstr "" -#: ../../library/tempfile.rst:148 msgid "" "This class operates exactly as :func:`TemporaryFile` does, except that data " "is spooled in memory until the file size exceeds *max_size*, or until the " "file's :func:`~io.IOBase.fileno` method is called, at which point the " -"contents are written to disk and operation proceeds as " -"with :func:`TemporaryFile`." +"contents are written to disk and operation proceeds as with :func:" +"`TemporaryFile`." msgstr "" -#: ../../library/tempfile.rst:156 msgid "" "The resulting file has one additional method, :meth:`!rollover`, which " "causes the file to roll over to an on-disk file regardless of its size." msgstr "" -#: ../../library/tempfile.rst:159 msgid "" "The returned object is a file-like object whose :attr:`!_file` attribute is " "either an :class:`io.BytesIO` or :class:`io.TextIOWrapper` object (depending " @@ -250,27 +214,23 @@ msgid "" "object can be used in a :keyword:`with` statement, just like a normal file." msgstr "" -#: ../../library/tempfile.rst:166 msgid "the truncate method now accepts a *size* argument." msgstr "" -#: ../../library/tempfile.rst:172 msgid "" "Fully implements the :class:`io.BufferedIOBase` and :class:`io.TextIOBase` " "abstract base classes (depending on whether binary or text *mode* was " "specified)." msgstr "" -#: ../../library/tempfile.rst:180 msgid "" -"This class securely creates a temporary directory using the same rules " -"as :func:`mkdtemp`. The resulting object can be used as a :term:`context " +"This class securely creates a temporary directory using the same rules as :" +"func:`mkdtemp`. The resulting object can be used as a :term:`context " "manager` (see :ref:`tempfile-examples`). On completion of the context or " "destruction of the temporary directory object, the newly created temporary " "directory and all its contents are removed from the filesystem." msgstr "" -#: ../../library/tempfile.rst:188 msgid "" "The directory name can be retrieved from the :attr:`!name` attribute of the " "returned object. When the returned object is used as a :term:`context " @@ -278,7 +238,6 @@ msgid "" "as` clause in the :keyword:`with` statement, if there is one." msgstr "" -#: ../../library/tempfile.rst:195 msgid "" "The directory can be explicitly cleaned up by calling the :meth:`!cleanup` " "method. If *ignore_cleanup_errors* is true, any unhandled exceptions during " @@ -290,7 +249,6 @@ msgid "" "shutdown)." msgstr "" -#: ../../library/tempfile.rst:204 msgid "" "The *delete* parameter can be used to disable cleanup of the directory tree " "upon exiting the context. While it may seem unusual for a context manager " @@ -299,21 +257,17 @@ msgid "" "based on other logic." msgstr "" -#: ../../library/tempfile.rst:210 ../../library/tempfile.rst:290 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkdtemp`` with " "argument ``fullpath``." msgstr "" -#: ../../library/tempfile.rst:214 msgid "Added *ignore_cleanup_errors* parameter." msgstr "" -#: ../../library/tempfile.rst:217 msgid "Added the *delete* parameter." msgstr "" -#: ../../library/tempfile.rst:223 msgid "" "Creates a temporary file in the most secure manner possible. There are no " "race conditions in the file's creation, assuming that the platform properly " @@ -324,13 +278,11 @@ msgid "" "processes." msgstr "" -#: ../../library/tempfile.rst:231 msgid "" "Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " "deleting the temporary file when done with it." msgstr "" -#: ../../library/tempfile.rst:234 msgid "" "If *suffix* is not ``None``, the file name will end with that suffix, " "otherwise there will be no suffix. :func:`mkstemp` does not put a dot " @@ -338,14 +290,12 @@ msgid "" "beginning of *suffix*." msgstr "" -#: ../../library/tempfile.rst:239 msgid "" "If *prefix* is not ``None``, the file name will begin with that prefix; " -"otherwise, a default prefix is used. The default is the return value " -"of :func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." +"otherwise, a default prefix is used. The default is the return value of :" +"func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." msgstr "" -#: ../../library/tempfile.rst:243 msgid "" "If *dir* is not ``None``, the file will be created in that directory; " "otherwise, a default directory is used. The default directory is chosen " @@ -356,7 +306,6 @@ msgid "" "commands via ``os.popen()``." msgstr "" -#: ../../library/tempfile.rst:251 msgid "" "If any of *suffix*, *prefix*, and *dir* are not ``None``, they must be the " "same type. If they are bytes, the returned name will be bytes instead of " @@ -364,20 +313,17 @@ msgid "" "behavior, pass ``suffix=b''``." msgstr "" -#: ../../library/tempfile.rst:257 msgid "" "If *text* is specified and true, the file is opened in text mode. Otherwise, " "(the default) the file is opened in binary mode." msgstr "" -#: ../../library/tempfile.rst:260 msgid "" ":func:`mkstemp` returns a tuple containing an OS-level handle to an open " "file (as would be returned by :func:`os.open`) and the absolute pathname of " "that file, in that order." msgstr "" -#: ../../library/tempfile.rst:266 ../../library/tempfile.rst:292 msgid "" "*suffix*, *prefix*, and *dir* may now be supplied in bytes in order to " "obtain a bytes return value. Prior to this, only str was allowed. *suffix* " @@ -385,110 +331,89 @@ msgid "" "default value to be used." msgstr "" -#: ../../library/tempfile.rst:272 ../../library/tempfile.rst:298 msgid "The *dir* parameter now accepts a :term:`path-like object`." msgstr "" -#: ../../library/tempfile.rst:278 msgid "" "Creates a temporary directory in the most secure manner possible. There are " "no race conditions in the directory's creation. The directory is readable, " "writable, and searchable only by the creating user ID." msgstr "" -#: ../../library/tempfile.rst:282 msgid "" "The user of :func:`mkdtemp` is responsible for deleting the temporary " "directory and its contents when done with it." msgstr "" -#: ../../library/tempfile.rst:285 msgid "" -"The *prefix*, *suffix*, and *dir* arguments are the same as " -"for :func:`mkstemp`." +"The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" +"`mkstemp`." msgstr "" -#: ../../library/tempfile.rst:288 msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." msgstr "" -#: ../../library/tempfile.rst:301 msgid "" ":func:`mkdtemp` now always returns an absolute path, even if *dir* is " "relative." msgstr "" -#: ../../library/tempfile.rst:307 msgid "" "Return the name of the directory used for temporary files. This defines the " "default value for the *dir* argument to all functions in this module." msgstr "" -#: ../../library/tempfile.rst:311 msgid "" "Python searches a standard list of directories to find one which the calling " "user can create files in. The list is:" msgstr "" -#: ../../library/tempfile.rst:314 msgid "The directory named by the :envvar:`TMPDIR` environment variable." msgstr "" -#: ../../library/tempfile.rst:316 msgid "The directory named by the :envvar:`TEMP` environment variable." msgstr "" -#: ../../library/tempfile.rst:318 msgid "The directory named by the :envvar:`TMP` environment variable." msgstr "" -#: ../../library/tempfile.rst:320 msgid "A platform-specific location:" msgstr "" -#: ../../library/tempfile.rst:322 msgid "" "On Windows, the directories :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" "\\TEMP`, and :file:`\\\\TMP`, in that order." msgstr "" -#: ../../library/tempfile.rst:325 msgid "" -"On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, " -"and :file:`/usr/tmp`, in that order." +"On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" +"file:`/usr/tmp`, in that order." msgstr "" -#: ../../library/tempfile.rst:328 msgid "As a last resort, the current working directory." msgstr "" -#: ../../library/tempfile.rst:330 msgid "" "The result of this search is cached, see the description of :data:`tempdir` " "below." msgstr "" -#: ../../library/tempfile.rst:335 msgid "" "Always returns a str. Previously it would return any :data:`tempdir` value " "regardless of type so long as it was not ``None``." msgstr "" -#: ../../library/tempfile.rst:340 msgid "Same as :func:`gettempdir` but the return value is in bytes." msgstr "" -#: ../../library/tempfile.rst:346 msgid "" "Return the filename prefix used to create temporary files. This does not " "contain the directory component." msgstr "" -#: ../../library/tempfile.rst:351 msgid "Same as :func:`gettempprefix` but the return value is in bytes." msgstr "" -#: ../../library/tempfile.rst:355 msgid "" "The module uses a global variable to store the name of the directory used " "for temporary files returned by :func:`gettempdir`. It can be set directly " @@ -498,39 +423,33 @@ msgid "" "unsuspecting code by changing global API behavior." msgstr "" -#: ../../library/tempfile.rst:364 msgid "" "When set to a value other than ``None``, this variable defines the default " "value for the *dir* argument to the functions defined in this module, " "including its type, bytes or str. It cannot be a :term:`path-like object`." msgstr "" -#: ../../library/tempfile.rst:369 msgid "" "If ``tempdir`` is ``None`` (the default) at any call to any of the above " "functions except :func:`gettempprefix` it is initialized following the " "algorithm described in :func:`gettempdir`." msgstr "" -#: ../../library/tempfile.rst:375 msgid "" "Beware that if you set ``tempdir`` to a bytes value, there is a nasty side " -"effect: The global default return type of :func:`mkstemp` " -"and :func:`mkdtemp` changes to bytes when no explicit ``prefix``, " -"``suffix``, or ``dir`` arguments of type str are supplied. Please do not " -"write code expecting or depending on this. This awkward behavior is " -"maintained for compatibility with the historical implementation." +"effect: The global default return type of :func:`mkstemp` and :func:" +"`mkdtemp` changes to bytes when no explicit ``prefix``, ``suffix``, or " +"``dir`` arguments of type str are supplied. Please do not write code " +"expecting or depending on this. This awkward behavior is maintained for " +"compatibility with the historical implementation." msgstr "" -#: ../../library/tempfile.rst:386 msgid "Examples" msgstr "" -#: ../../library/tempfile.rst:388 msgid "Here are some examples of typical usage of the :mod:`tempfile` module::" msgstr "" -#: ../../library/tempfile.rst:390 msgid "" ">>> import tempfile\n" "\n" @@ -573,11 +492,9 @@ msgid "" "# directory and contents have been removed" msgstr "" -#: ../../library/tempfile.rst:433 msgid "Deprecated functions and variables" msgstr "" -#: ../../library/tempfile.rst:435 msgid "" "A historical way to create temporary files was to first generate a file name " "with the :func:`mktemp` function and then create a file using this name. " @@ -588,11 +505,9 @@ msgid "" "used by :func:`mkstemp` and the other functions described above." msgstr "" -#: ../../library/tempfile.rst:446 msgid "Use :func:`mkstemp` instead." msgstr "" -#: ../../library/tempfile.rst:449 msgid "" "Return an absolute pathname of a file that did not exist at the time the " "call is made. The *prefix*, *suffix*, and *dir* arguments are similar to " @@ -600,7 +515,6 @@ msgid "" "``prefix=None`` are not supported." msgstr "" -#: ../../library/tempfile.rst:456 msgid "" "Use of this function may introduce a security hole in your program. By the " "time you get around to doing anything with the file name it returns, someone " @@ -609,7 +523,6 @@ msgid "" "parameter::" msgstr "" -#: ../../library/tempfile.rst:462 msgid "" ">>> f = NamedTemporaryFile(delete=False)\n" ">>> f.name\n" @@ -622,14 +535,11 @@ msgid "" "False" msgstr "" -#: ../../library/tempfile.rst:11 msgid "temporary" msgstr "" -#: ../../library/tempfile.rst:11 msgid "file name" msgstr "" -#: ../../library/tempfile.rst:11 msgid "file" msgstr "" diff --git a/library/termios.po b/library/termios.po index b63ec81..65162da 100644 --- a/library/termios.po +++ b/library/termios.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/termios.rst:2 msgid ":mod:`!termios` --- POSIX style tty control" msgstr "" -#: ../../library/termios.rst:14 msgid "" "This module provides an interface to the POSIX calls for tty I/O control. " "For a complete description of these calls, see :manpage:`termios(3)` Unix " @@ -30,19 +28,15 @@ msgid "" "POSIX *termios* style tty I/O control configured during installation." msgstr "" -#: ../../library/termios.rst:19 msgid "Availability" msgstr "" -#: ../../library/termios.rst:21 msgid "" "All functions in this module take a file descriptor *fd* as their first " -"argument. This can be an integer file descriptor, such as returned by " -"``sys.stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` " -"itself." +"argument. This can be an integer file descriptor, such as returned by ``sys." +"stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself." msgstr "" -#: ../../library/termios.rst:25 msgid "" "This module also defines all the constants needed to work with the functions " "provided here; these have the same name as their counterparts in C. Please " @@ -50,11 +44,9 @@ msgid "" "terminal control interfaces." msgstr "" -#: ../../library/termios.rst:30 msgid "The module defines the following functions:" msgstr "" -#: ../../library/termios.rst:35 msgid "" "Return a list containing the tty attributes for file descriptor *fd*, as " "follows: ``[iflag, oflag, cflag, lflag, ispeed, ospeed, cc]`` where *cc* is " @@ -65,89 +57,74 @@ msgid "" "constants defined in the :mod:`termios` module." msgstr "" -#: ../../library/termios.rst:46 msgid "" "Set the tty attributes for file descriptor *fd* from the *attributes*, which " "is a list like the one returned by :func:`tcgetattr`. The *when* argument " "determines when the attributes are changed:" msgstr "" -#: ../../library/termios.rst:52 msgid "Change attributes immediately." msgstr "" -#: ../../library/termios.rst:56 msgid "Change attributes after transmitting all queued output." msgstr "" -#: ../../library/termios.rst:60 msgid "" "Change attributes after transmitting all queued output and discarding all " "queued input." msgstr "" -#: ../../library/termios.rst:66 msgid "" "Send a break on file descriptor *fd*. A zero *duration* sends a break for " "0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning." msgstr "" -#: ../../library/termios.rst:72 msgid "" "Wait until all output written to file descriptor *fd* has been transmitted." msgstr "" -#: ../../library/termios.rst:77 msgid "" "Discard queued data on file descriptor *fd*. The *queue* selector specifies " "which queue: :const:`TCIFLUSH` for the input queue, :const:`TCOFLUSH` for " "the output queue, or :const:`TCIOFLUSH` for both queues." msgstr "" -#: ../../library/termios.rst:84 msgid "" "Suspend or resume input or output on file descriptor *fd*. The *action* " "argument can be :const:`TCOOFF` to suspend output, :const:`TCOON` to restart " "output, :const:`TCIOFF` to suspend input, or :const:`TCION` to restart input." msgstr "" -#: ../../library/termios.rst:91 msgid "" "Return a tuple ``(ws_row, ws_col)`` containing the tty window size for file " -"descriptor *fd*. Requires :const:`termios.TIOCGWINSZ` " -"or :const:`termios.TIOCGSIZE`." +"descriptor *fd*. Requires :const:`termios.TIOCGWINSZ` or :const:`termios." +"TIOCGSIZE`." msgstr "" -#: ../../library/termios.rst:100 msgid "" "Set the tty window size for file descriptor *fd* from *winsize*, which is a " -"two-item tuple ``(ws_row, ws_col)`` like the one returned " -"by :func:`tcgetwinsize`. Requires at least one of the pairs " -"(:const:`termios.TIOCGWINSZ`, :const:`termios.TIOCSWINSZ`); " -"(:const:`termios.TIOCGSIZE`, :const:`termios.TIOCSSIZE`) to be defined." +"two-item tuple ``(ws_row, ws_col)`` like the one returned by :func:" +"`tcgetwinsize`. Requires at least one of the pairs (:const:`termios." +"TIOCGWINSZ`, :const:`termios.TIOCSWINSZ`); (:const:`termios.TIOCGSIZE`, :" +"const:`termios.TIOCSSIZE`) to be defined." msgstr "" -#: ../../library/termios.rst:111 msgid "Module :mod:`tty`" msgstr "" -#: ../../library/termios.rst:112 msgid "Convenience functions for common terminal control operations." msgstr "" -#: ../../library/termios.rst:118 msgid "Example" msgstr "" -#: ../../library/termios.rst:120 msgid "" "Here's a function that prompts for a password with echoing turned off. Note " -"the technique using a separate :func:`tcgetattr` call and " -"a :keyword:`try` ... :keyword:`finally` statement to ensure that the old tty " -"attributes are restored exactly no matter what happens::" +"the technique using a separate :func:`tcgetattr` call and a :keyword:" +"`try` ... :keyword:`finally` statement to ensure that the old tty attributes " +"are restored exactly no matter what happens::" msgstr "" -#: ../../library/termios.rst:125 msgid "" "def getpass(prompt=\"Password: \"):\n" " import termios, sys\n" @@ -163,14 +140,11 @@ msgid "" " return passwd" msgstr "" -#: ../../library/termios.rst:8 msgid "POSIX" msgstr "" -#: ../../library/termios.rst:8 msgid "I/O control" msgstr "" -#: ../../library/termios.rst:8 msgid "tty" msgstr "" diff --git a/library/test.po b/library/test.po index 97c2112..d2868ee 100644 --- a/library/test.po +++ b/library/test.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/test.rst:2 msgid ":mod:`!test` --- Regression tests package for Python" msgstr "" -#: ../../library/test.rst:10 msgid "" "The :mod:`test` package is meant for internal use by Python only. It is " "documented for the benefit of the core developers of Python. Any use of this " @@ -31,15 +29,13 @@ msgid "" "Python." msgstr "" -#: ../../library/test.rst:18 msgid "" "The :mod:`test` package contains all regression tests for Python as well as " -"the modules :mod:`test.support` " -"and :mod:`test.regrtest`. :mod:`test.support` is used to enhance your tests " -"while :mod:`test.regrtest` drives the testing suite." +"the modules :mod:`test.support` and :mod:`test.regrtest`. :mod:`test." +"support` is used to enhance your tests while :mod:`test.regrtest` drives the " +"testing suite." msgstr "" -#: ../../library/test.rst:23 msgid "" "Each module in the :mod:`test` package whose name starts with ``test_`` is a " "testing suite for a specific module or feature. All new tests should be " @@ -48,27 +44,21 @@ msgid "" "printed to ``sys.stdout``; this style of test is considered deprecated." msgstr "" -#: ../../library/test.rst:32 msgid "Module :mod:`unittest`" msgstr "" -#: ../../library/test.rst:33 msgid "Writing PyUnit regression tests." msgstr "" -#: ../../library/test.rst:35 msgid "Module :mod:`doctest`" msgstr "" -#: ../../library/test.rst:36 msgid "Tests embedded in documentation strings." msgstr "" -#: ../../library/test.rst:42 msgid "Writing Unit Tests for the :mod:`test` package" msgstr "" -#: ../../library/test.rst:44 msgid "" "It is preferred that tests that use the :mod:`unittest` module follow a few " "guidelines. One is to name the test module by starting it with ``test_`` and " @@ -82,11 +72,9 @@ msgid "" "exist and thus what test is being run is not stated." msgstr "" -#: ../../library/test.rst:55 msgid "A basic boilerplate is often used::" msgstr "" -#: ../../library/test.rst:57 msgid "" "import unittest\n" "from test import support\n" @@ -120,27 +108,23 @@ msgid "" " unittest.main()" msgstr "" -#: ../../library/test.rst:88 msgid "" -"This code pattern allows the testing suite to be run " -"by :mod:`test.regrtest`, on its own as a script that supports " -"the :mod:`unittest` CLI, or via the ``python -m unittest`` CLI." +"This code pattern allows the testing suite to be run by :mod:`test." +"regrtest`, on its own as a script that supports the :mod:`unittest` CLI, or " +"via the ``python -m unittest`` CLI." msgstr "" -#: ../../library/test.rst:92 msgid "" "The goal for regression testing is to try to break code. This leads to a few " "guidelines to be followed:" msgstr "" -#: ../../library/test.rst:95 msgid "" "The testing suite should exercise all classes, functions, and constants. " "This includes not just the external API that is to be presented to the " "outside world but also \"private\" code." msgstr "" -#: ../../library/test.rst:99 msgid "" "Whitebox testing (examining the code being tested when the tests are being " "written) is preferred. Blackbox testing (testing only the published user " @@ -148,53 +132,45 @@ msgid "" "are tested." msgstr "" -#: ../../library/test.rst:104 msgid "" "Make sure all possible values are tested including invalid ones. This makes " "sure that not only all valid values are acceptable but also that improper " "values are handled correctly." msgstr "" -#: ../../library/test.rst:108 msgid "" "Exhaust as many code paths as possible. Test where branching occurs and thus " "tailor input to make sure as many different paths through the code are taken." msgstr "" -#: ../../library/test.rst:111 msgid "" "Add an explicit test for any bugs discovered for the tested code. This will " "make sure that the error does not crop up again if the code is changed in " "the future." msgstr "" -#: ../../library/test.rst:115 msgid "" "Make sure to clean up after your tests (such as close and remove all " "temporary files)." msgstr "" -#: ../../library/test.rst:118 msgid "" "If a test is dependent on a specific condition of the operating system then " "verify the condition already exists before attempting the test." msgstr "" -#: ../../library/test.rst:121 msgid "" "Import as few modules as possible and do it as soon as possible. This " "minimizes external dependencies of tests and also minimizes possible " "anomalous behavior from side-effects of importing a module." msgstr "" -#: ../../library/test.rst:125 msgid "" "Try to maximize code reuse. On occasion, tests will vary by something as " "small as what type of input is used. Minimize code duplication by " "subclassing a basic test class with a class that specifies the input::" msgstr "" -#: ../../library/test.rst:129 msgid "" "class TestFuncAcceptsSequencesMixin:\n" "\n" @@ -213,44 +189,38 @@ msgid "" " arg = (1, 2, 3)" msgstr "" -#: ../../library/test.rst:145 msgid "" -"When using this pattern, remember that all classes that inherit " -"from :class:`unittest.TestCase` are run as tests. The :class:`!" +"When using this pattern, remember that all classes that inherit from :class:" +"`unittest.TestCase` are run as tests. The :class:`!" "TestFuncAcceptsSequencesMixin` class in the example above does not have any " -"data and so can't be run by itself, thus it does not inherit " -"from :class:`unittest.TestCase`." +"data and so can't be run by itself, thus it does not inherit from :class:" +"`unittest.TestCase`." msgstr "" -#: ../../library/test.rst:153 msgid "Test Driven Development" msgstr "" -#: ../../library/test.rst:154 msgid "A book by Kent Beck on writing tests before code." msgstr "" -#: ../../library/test.rst:160 msgid "Running tests using the command-line interface" msgstr "" -#: ../../library/test.rst:165 msgid "" "The :mod:`test` package can be run as a script to drive Python's regression " "test suite, thanks to the :option:`-m` option: :program:`python -m test`. " "Under the hood, it uses :mod:`test.regrtest`; the call :program:`python -m " "test.regrtest` used in previous Python versions still works. Running the " -"script by itself automatically starts running all regression tests in " -"the :mod:`test` package. It does this by finding all modules in the package " -"whose name starts with ``test_``, importing them, and executing the " -"function :func:`test_main` if present or loading the tests via " -"unittest.TestLoader.loadTestsFromModule if ``test_main`` does not exist. " -"The names of tests to execute may also be passed to the script. Specifying a " -"single regression test (:program:`python -m test test_spam`) will minimize " -"output and only print whether the test passed or failed." +"script by itself automatically starts running all regression tests in the :" +"mod:`test` package. It does this by finding all modules in the package whose " +"name starts with ``test_``, importing them, and executing the function :func:" +"`test_main` if present or loading the tests via unittest.TestLoader." +"loadTestsFromModule if ``test_main`` does not exist. The names of tests to " +"execute may also be passed to the script. Specifying a single regression " +"test (:program:`python -m test test_spam`) will minimize output and only " +"print whether the test passed or failed." msgstr "" -#: ../../library/test.rst:178 msgid "" "Running :mod:`test` directly allows what resources are available for tests " "to use to be set. You do this by using the ``-u`` command-line option. " @@ -263,175 +233,142 @@ msgid "" "more command-line options, run :program:`python -m test -h`." msgstr "" -#: ../../library/test.rst:189 msgid "" "Some other ways to execute the regression tests depend on what platform the " "tests are being executed on. On Unix, you can run :program:`make test` at " -"the top-level directory where Python was built. On Windows, " -"executing :program:`rt.bat` from your :file:`PCbuild` directory will run all " -"regression tests." +"the top-level directory where Python was built. On Windows, executing :" +"program:`rt.bat` from your :file:`PCbuild` directory will run all regression " +"tests." msgstr "" -#: ../../library/test.rst:195 msgid "" "Output is colorized by default and can be :ref:`controlled using environment " "variables `." msgstr "" -#: ../../library/test.rst:201 msgid ":mod:`test.support` --- Utilities for the Python test suite" msgstr "" -#: ../../library/test.rst:207 msgid "" "The :mod:`test.support` module provides support for Python's regression test " "suite." msgstr "" -#: ../../library/test.rst:212 msgid "" ":mod:`test.support` is not a public module. It is documented here to help " "Python developers write tests. The API of this module is subject to change " "without backwards compatibility concerns between releases." msgstr "" -#: ../../library/test.rst:217 msgid "This module defines the following exceptions:" msgstr "" -#: ../../library/test.rst:221 msgid "" -"Exception to be raised when a test fails. This is deprecated in favor " -"of :mod:`unittest`\\ -based tests and :class:`unittest.TestCase`'s assertion " +"Exception to be raised when a test fails. This is deprecated in favor of :" +"mod:`unittest`\\ -based tests and :class:`unittest.TestCase`'s assertion " "methods." msgstr "" -#: ../../library/test.rst:228 msgid "" "Subclass of :exc:`unittest.SkipTest`. Raised when a resource (such as a " "network connection) is not available. Raised by the :func:`requires` " "function." msgstr "" -#: ../../library/test.rst:233 msgid "The :mod:`test.support` module defines the following constants:" msgstr "" -#: ../../library/test.rst:237 msgid "" "``True`` when verbose output is enabled. Should be checked when more " -"detailed information is desired about a running test. *verbose* is set " -"by :mod:`test.regrtest`." +"detailed information is desired about a running test. *verbose* is set by :" +"mod:`test.regrtest`." msgstr "" -#: ../../library/test.rst:244 msgid "``True`` if the running interpreter is Jython." msgstr "" -#: ../../library/test.rst:249 msgid "``True`` if ``sys.platform`` is ``android``." msgstr "" -#: ../../library/test.rst:254 msgid "``True`` if ``sys.platform`` is ``emscripten``." msgstr "" -#: ../../library/test.rst:259 msgid "``True`` if ``sys.platform`` is ``wasi``." msgstr "" -#: ../../library/test.rst:264 msgid "``True`` if ``sys.platform`` is ``ios``, ``tvos``, or ``watchos``." msgstr "" -#: ../../library/test.rst:269 msgid "" "``True`` if ``sys.platform`` is ``darwin`` or ``is_apple_mobile`` is " "``True``." msgstr "" -#: ../../library/test.rst:274 msgid "Path for shell if not on Windows; otherwise ``None``." msgstr "" -#: ../../library/test.rst:279 msgid "" "Timeout in seconds for tests using a network server listening on the network " "local loopback interface like ``127.0.0.1``." msgstr "" -#: ../../library/test.rst:282 msgid "" "The timeout is long enough to prevent test failure: it takes into account " "that the client and the server can run in different threads or even " "different processes." msgstr "" -#: ../../library/test.rst:286 msgid "" -"The timeout should be long enough " -"for :meth:`~socket.socket.connect`, :meth:`~socket.socket.recv` " -"and :meth:`~socket.socket.send` methods of :class:`socket.socket`." +"The timeout should be long enough for :meth:`~socket.socket.connect`, :meth:" +"`~socket.socket.recv` and :meth:`~socket.socket.send` methods of :class:" +"`socket.socket`." msgstr "" -#: ../../library/test.rst:290 msgid "Its default value is 5 seconds." msgstr "" -#: ../../library/test.rst:292 msgid "See also :data:`INTERNET_TIMEOUT`." msgstr "" -#: ../../library/test.rst:297 msgid "Timeout in seconds for network requests going to the internet." msgstr "" -#: ../../library/test.rst:299 msgid "" "The timeout is short enough to prevent a test to wait for too long if the " "internet request is blocked for whatever reason." msgstr "" -#: ../../library/test.rst:302 msgid "" "Usually, a timeout using :data:`INTERNET_TIMEOUT` should not mark a test as " -"failed, but skip the test instead: " -"see :func:`~test.support.socket_helper.transient_internet`." +"failed, but skip the test instead: see :func:`~test.support.socket_helper." +"transient_internet`." msgstr "" -#: ../../library/test.rst:306 msgid "Its default value is 1 minute." msgstr "" -#: ../../library/test.rst:308 msgid "See also :data:`LOOPBACK_TIMEOUT`." msgstr "" -#: ../../library/test.rst:313 msgid "" "Timeout in seconds to mark a test as failed if the test takes \"too long\"." msgstr "" -#: ../../library/test.rst:315 msgid "" "The timeout value depends on the regrtest ``--timeout`` command line option." msgstr "" -#: ../../library/test.rst:317 msgid "" "If a test using :data:`SHORT_TIMEOUT` starts to fail randomly on slow " "buildbots, use :data:`LONG_TIMEOUT` instead." msgstr "" -#: ../../library/test.rst:320 msgid "Its default value is 30 seconds." msgstr "" -#: ../../library/test.rst:325 msgid "Timeout in seconds to detect when a test hangs." msgstr "" -#: ../../library/test.rst:327 msgid "" "It is long enough to reduce the risk of test failure on the slowest Python " "buildbots. It should not be used to mark a test as failed if the test takes " @@ -439,144 +376,116 @@ msgid "" "command line option." msgstr "" -#: ../../library/test.rst:332 msgid "Its default value is 5 minutes." msgstr "" -#: ../../library/test.rst:334 msgid "" -"See also :data:`LOOPBACK_TIMEOUT`, :data:`INTERNET_TIMEOUT` " -"and :data:`SHORT_TIMEOUT`." +"See also :data:`LOOPBACK_TIMEOUT`, :data:`INTERNET_TIMEOUT` and :data:" +"`SHORT_TIMEOUT`." msgstr "" -#: ../../library/test.rst:340 msgid "Set when tests can be skipped when they are not useful for PGO." msgstr "" -#: ../../library/test.rst:345 msgid "" "A constant that is likely larger than the underlying OS pipe buffer size, to " "make writes blocking." msgstr "" -#: ../../library/test.rst:351 msgid "" "``True`` if Python was built with the :c:macro:`Py_DEBUG` macro defined, " "that is, if Python was :ref:`built in debug mode `." msgstr "" -#: ../../library/test.rst:360 msgid "" "A constant that is likely larger than the underlying OS socket buffer size, " "to make writes blocking." msgstr "" -#: ../../library/test.rst:366 msgid "Set to the top level directory that contains :mod:`test.support`." msgstr "" -#: ../../library/test.rst:371 msgid "Set to the top level directory for the test package." msgstr "" -#: ../../library/test.rst:376 msgid "Set to the ``data`` directory within the test package." msgstr "" -#: ../../library/test.rst:381 msgid "Set to :data:`sys.maxsize` for big memory tests." msgstr "" -#: ../../library/test.rst:386 msgid "" "Set by :func:`set_memlimit` as the memory limit for big memory tests. " "Limited by :data:`MAX_Py_ssize_t`." msgstr "" -#: ../../library/test.rst:392 msgid "" "Set by :func:`set_memlimit` as the memory limit for big memory tests. Not " "limited by :data:`MAX_Py_ssize_t`." msgstr "" -#: ../../library/test.rst:398 msgid "" -"Set to ``True`` if Python is built without docstrings " -"(the :c:macro:`WITH_DOC_STRINGS` macro is not defined). See " -"the :option:`configure --without-doc-strings <--without-doc-strings>` option." +"Set to ``True`` if Python is built without docstrings (the :c:macro:" +"`WITH_DOC_STRINGS` macro is not defined). See the :option:`configure --" +"without-doc-strings <--without-doc-strings>` option." msgstr "" -#: ../../library/test.rst:402 msgid "See also the :data:`HAVE_DOCSTRINGS` variable." msgstr "" -#: ../../library/test.rst:407 msgid "" -"Set to ``True`` if function docstrings are available. See " -"the :option:`python -OO <-O>` option, which strips docstrings of functions " -"implemented in Python." +"Set to ``True`` if function docstrings are available. See the :option:" +"`python -OO <-O>` option, which strips docstrings of functions implemented " +"in Python." msgstr "" -#: ../../library/test.rst:410 msgid "See also the :data:`MISSING_C_DOCSTRINGS` variable." msgstr "" -#: ../../library/test.rst:415 msgid "Define the URL of a dedicated HTTP server for the network tests." msgstr "" -#: ../../library/test.rst:420 msgid "Object that is equal to anything. Used to test mixed type comparison." msgstr "" -#: ../../library/test.rst:425 msgid "" "Object that is not equal to anything (even to :data:`ALWAYS_EQ`). Used to " "test mixed type comparison." msgstr "" -#: ../../library/test.rst:431 msgid "" "Object that is greater than anything (except itself). Used to test mixed " "type comparison." msgstr "" -#: ../../library/test.rst:437 msgid "" "Object that is less than anything (except itself). Used to test mixed type " "comparison." msgstr "" -#: ../../library/test.rst:441 msgid "The :mod:`test.support` module defines the following functions:" msgstr "" -#: ../../library/test.rst:445 msgid "Run the loop body until ``break`` stops the loop." msgstr "" -#: ../../library/test.rst:447 msgid "" "After *timeout* seconds, raise an :exc:`AssertionError` if *error* is true, " "or just stop the loop if *error* is false." msgstr "" -#: ../../library/test.rst:450 msgid "Example::" msgstr "" -#: ../../library/test.rst:452 msgid "" "for _ in support.busy_retry(support.SHORT_TIMEOUT):\n" " if check():\n" " break" msgstr "" -#: ../../library/test.rst:456 ../../library/test.rst:480 msgid "Example of error=False usage::" msgstr "" -#: ../../library/test.rst:458 msgid "" "for _ in support.busy_retry(support.SHORT_TIMEOUT, error=False):\n" " if check():\n" @@ -585,33 +494,27 @@ msgid "" " raise RuntimeError('my custom error')" msgstr "" -#: ../../library/test.rst:466 msgid "Wait strategy that applies exponential backoff." msgstr "" -#: ../../library/test.rst:468 msgid "" "Run the loop body until ``break`` stops the loop. Sleep at each loop " "iteration, but not at the first iteration. The sleep delay is doubled at " "each iteration (up to *max_delay* seconds)." msgstr "" -#: ../../library/test.rst:472 msgid "See :func:`busy_retry` documentation for the parameters usage." msgstr "" -#: ../../library/test.rst:474 msgid "Example raising an exception after SHORT_TIMEOUT seconds::" msgstr "" -#: ../../library/test.rst:476 msgid "" "for _ in support.sleeping_retry(support.SHORT_TIMEOUT):\n" " if check():\n" " break" msgstr "" -#: ../../library/test.rst:482 msgid "" "for _ in support.sleeping_retry(support.SHORT_TIMEOUT, error=False):\n" " if check():\n" @@ -620,22 +523,18 @@ msgid "" " raise RuntimeError('my custom error')" msgstr "" -#: ../../library/test.rst:490 msgid "" "Return ``True`` if *resource* is enabled and available. The list of " "available resources is only set when :mod:`test.regrtest` is executing the " "tests." msgstr "" -#: ../../library/test.rst:497 msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." msgstr "" -#: ../../library/test.rst:502 msgid "Return :const:`_testcapi.WITH_PYMALLOC`." msgstr "" -#: ../../library/test.rst:507 msgid "" "Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the " "argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` " @@ -643,88 +542,73 @@ msgid "" "tests are executed by :mod:`test.regrtest`." msgstr "" -#: ../../library/test.rst:515 msgid "Return a repr of *dict* with keys sorted." msgstr "" -#: ../../library/test.rst:520 msgid "" "Return the path to the file named *filename*. If no match is found " "*filename* is returned. This does not equal a failure since it could be the " "path to the file." msgstr "" -#: ../../library/test.rst:524 msgid "" "Setting *subdir* indicates a relative path to use to find the file rather " "than looking directly in the path directories." msgstr "" -#: ../../library/test.rst:530 msgid "Get size of a page in bytes." msgstr "" -#: ../../library/test.rst:537 msgid "" "Set the :func:`sys.setswitchinterval` to the given *interval*. Defines a " "minimum interval for Android systems to prevent the system from hanging." msgstr "" -#: ../../library/test.rst:543 msgid "" "Use this check to guard CPython's implementation-specific tests or to run " "them only on the implementations guarded by the arguments. This function " "returns ``True`` or ``False`` depending on the host platform. Example usage::" msgstr "" -#: ../../library/test.rst:548 msgid "" "check_impl_detail() # Only on CPython (default).\n" "check_impl_detail(jython=True) # Only on Jython.\n" "check_impl_detail(cpython=False) # Everywhere except CPython." msgstr "" -#: ../../library/test.rst:555 msgid "" "Set the values for :data:`max_memuse` and :data:`real_max_memuse` for big " "memory tests." msgstr "" -#: ../../library/test.rst:561 msgid "" "Store the value from *stdout*. It is meant to hold the stdout at the time " "the regrtest began." msgstr "" -#: ../../library/test.rst:567 msgid "" -"Return the original stdout set by :func:`record_original_stdout` or " -"``sys.stdout`` if it's not set." +"Return the original stdout set by :func:`record_original_stdout` or ``sys." +"stdout`` if it's not set." msgstr "" -#: ../../library/test.rst:573 msgid "" "Return a list of command line arguments reproducing the current settings in " "``sys.flags`` and ``sys.warnoptions``." msgstr "" -#: ../../library/test.rst:579 msgid "" "Return a list of command line arguments reproducing the current optimization " "settings in ``sys.flags``." msgstr "" -#: ../../library/test.rst:587 msgid "" -"A context managers that temporarily replaces the named stream " -"with :class:`io.StringIO` object." +"A context managers that temporarily replaces the named stream with :class:" +"`io.StringIO` object." msgstr "" -#: ../../library/test.rst:590 msgid "Example use with output streams::" msgstr "" -#: ../../library/test.rst:592 msgid "" "with captured_stdout() as stdout, captured_stderr() as stderr:\n" " print(\"hello\")\n" @@ -733,11 +617,9 @@ msgid "" "assert stderr.getvalue() == \"error\\n\"" msgstr "" -#: ../../library/test.rst:598 msgid "Example use with input stream::" msgstr "" -#: ../../library/test.rst:600 msgid "" "with captured_stdin() as stdin:\n" " stdin.write('hello\\n')\n" @@ -747,11 +629,9 @@ msgid "" "self.assertEqual(captured, \"hello\")" msgstr "" -#: ../../library/test.rst:610 msgid "A context manager that temporary disables :mod:`faulthandler`." msgstr "" -#: ../../library/test.rst:615 msgid "" "Force as many objects as possible to be collected. This is needed because " "timely deallocation is not guaranteed by the garbage collector. This means " @@ -759,124 +639,103 @@ msgid "" "remain alive for longer than expected." msgstr "" -#: ../../library/test.rst:623 msgid "" "A context manager that disables the garbage collector on entry. On exit, the " "garbage collector is restored to its prior state." msgstr "" -#: ../../library/test.rst:629 msgid "Context manager to swap out an attribute with a new object." msgstr "" -#: ../../library/test.rst:631 ../../library/test.rst:649 -#: ../../library/test.rst:904 ../../library/test.rst:1370 msgid "Usage::" msgstr "" -#: ../../library/test.rst:633 msgid "" "with swap_attr(obj, \"attr\", 5):\n" " ..." msgstr "" -#: ../../library/test.rst:636 msgid "" "This will set ``obj.attr`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``attr`` doesn't exist " "on ``obj``, it will be created and then deleted at the end of the block." msgstr "" -#: ../../library/test.rst:641 ../../library/test.rst:659 msgid "" "The old value (or ``None`` if it doesn't exist) will be assigned to the " "target of the \"as\" clause, if there is one." msgstr "" -#: ../../library/test.rst:647 msgid "Context manager to swap out an item with a new object." msgstr "" -#: ../../library/test.rst:651 msgid "" "with swap_item(obj, \"item\", 5):\n" " ..." msgstr "" -#: ../../library/test.rst:654 msgid "" "This will set ``obj[\"item\"]`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``item`` doesn't exist " "on ``obj``, it will be created and then deleted at the end of the block." msgstr "" -#: ../../library/test.rst:665 msgid "" -"Call the ``flush()`` method on :data:`sys.stdout` and then " -"on :data:`sys.stderr`. It can be used to make sure that the logs order is " -"consistent before writing into stderr." +"Call the ``flush()`` method on :data:`sys.stdout` and then on :data:`sys." +"stderr`. It can be used to make sure that the logs order is consistent " +"before writing into stderr." msgstr "" -#: ../../library/test.rst:674 msgid "" "Print a warning into :data:`sys.__stderr__`. Format the message as: " "``f\"Warning -- {msg}\"``. If *msg* is made of multiple lines, add " "``\"Warning -- \"`` prefix to each line." msgstr "" -#: ../../library/test.rst:683 msgid "" "Wait until process *pid* completes and check that the process exit code is " "*exitcode*." msgstr "" -#: ../../library/test.rst:686 msgid "" "Raise an :exc:`AssertionError` if the process exit code is not equal to " "*exitcode*." msgstr "" -#: ../../library/test.rst:689 msgid "" "If the process runs longer than *timeout* seconds (:data:`SHORT_TIMEOUT` by " "default), kill the process and raise an :exc:`AssertionError`. The timeout " "feature is not available on Windows." msgstr "" -#: ../../library/test.rst:698 msgid "" "Return the size of the :c:type:`PyObject` whose structure members are " "defined by *fmt*. The returned value includes the size of the Python object " "header and alignment." msgstr "" -#: ../../library/test.rst:704 msgid "" "Return the size of the :c:type:`PyVarObject` whose structure members are " "defined by *fmt*. The returned value includes the size of the Python object " "header and alignment." msgstr "" -#: ../../library/test.rst:710 msgid "" "For testcase *test*, assert that the ``sys.getsizeof`` for *o* plus the GC " "header size equals *size*." msgstr "" -#: ../../library/test.rst:716 msgid "" -"A decorator to conditionally mark tests " -"with :func:`unittest.expectedFailure`. Any use of this decorator should have " -"an associated comment identifying the relevant tracker issue." +"A decorator to conditionally mark tests with :func:`unittest." +"expectedFailure`. Any use of this decorator should have an associated " +"comment identifying the relevant tracker issue." msgstr "" -#: ../../library/test.rst:723 msgid "" "A decorator that skips the decorated test on TLS certification validation " "failures." msgstr "" -#: ../../library/test.rst:728 msgid "" "A decorator for running a function in a different locale, correctly " "resetting it after it has finished. *catstr* is the locale category as a " @@ -884,91 +743,73 @@ msgid "" "sequentially, and the first valid locale will be used." msgstr "" -#: ../../library/test.rst:736 msgid "" "A decorator for running a function in a specific timezone, correctly " "resetting it after it has finished." msgstr "" -#: ../../library/test.rst:742 msgid "" "Decorator for the minimum version when running test on FreeBSD. If the " "FreeBSD version is less than the minimum, the test is skipped." msgstr "" -#: ../../library/test.rst:748 msgid "" "Decorator for the minimum version when running test on Linux. If the Linux " "version is less than the minimum, the test is skipped." msgstr "" -#: ../../library/test.rst:754 msgid "" "Decorator for the minimum version when running test on macOS. If the macOS " "version is less than the minimum, the test is skipped." msgstr "" -#: ../../library/test.rst:760 msgid "" "Decorator for skipping tests on the free-threaded build. If the :term:`GIL` " "is disabled, the test is skipped." msgstr "" -#: ../../library/test.rst:766 msgid "Decorator for skipping tests on non-IEEE 754 platforms." msgstr "" -#: ../../library/test.rst:771 msgid "Decorator for skipping tests if :mod:`zlib` doesn't exist." msgstr "" -#: ../../library/test.rst:776 msgid "Decorator for skipping tests if :mod:`gzip` doesn't exist." msgstr "" -#: ../../library/test.rst:781 msgid "Decorator for skipping tests if :mod:`bz2` doesn't exist." msgstr "" -#: ../../library/test.rst:786 msgid "Decorator for skipping tests if :mod:`lzma` doesn't exist." msgstr "" -#: ../../library/test.rst:791 msgid "Decorator for skipping tests if *resource* is not available." msgstr "" -#: ../../library/test.rst:796 msgid "Decorator for only running the test if :data:`HAVE_DOCSTRINGS`." msgstr "" -#: ../../library/test.rst:801 msgid "" "Decorator for only running the test if :ref:`Limited C API ` " "is available." msgstr "" -#: ../../library/test.rst:807 msgid "Decorator for tests only applicable to CPython." msgstr "" -#: ../../library/test.rst:812 msgid "" "Decorator for invoking :func:`check_impl_detail` on *guards*. If that " "returns ``False``, then uses *msg* as the reason for skipping the test." msgstr "" -#: ../../library/test.rst:817 msgid "" "Decorator for marking tests as thread-unsafe. This test always runs in one " "thread even when invoked with ``--parallel-threads``." msgstr "" -#: ../../library/test.rst:823 msgid "Decorator to temporarily turn off tracing for the duration of the test." msgstr "" -#: ../../library/test.rst:828 msgid "" "Decorator for tests which involve reference counting. The decorator does " "not run the test if it is not run by CPython. Any trace function is unset " @@ -976,11 +817,9 @@ msgid "" "trace function." msgstr "" -#: ../../library/test.rst:836 msgid "Decorator for bigmem tests." msgstr "" -#: ../../library/test.rst:838 msgid "" "*size* is a requested size for the test (in arbitrary, test-interpreted " "units.) *memuse* is the number of bytes per unit for the test, or a good " @@ -988,7 +827,6 @@ msgid "" "each, could be decorated with ``@bigmemtest(size=_4G, memuse=2)``." msgstr "" -#: ../../library/test.rst:843 msgid "" "The *size* argument is normally passed to the decorated test method as an " "extra argument. If *dry_run* is ``True``, the value passed to the test " @@ -996,11 +834,9 @@ msgid "" "means the test doesn't support dummy runs when ``-M`` is not specified." msgstr "" -#: ../../library/test.rst:851 msgid "Decorator for tests that fill the address space." msgstr "" -#: ../../library/test.rst:856 msgid "" "Return ``False`` if there is no evidence the interpreter was compiled with " "``musl``, otherwise return a version triple, either ``(0, 0, 0)`` if the " @@ -1009,7 +845,6 @@ msgid "" "compiled with ``musl``; otherwise ``platform.libc_ver`` is checked." msgstr "" -#: ../../library/test.rst:865 msgid "" "Test for syntax errors in *statement* by attempting to compile *statement*. " "*testcase* is the :mod:`unittest` instance for the test. *errtext* is the " @@ -1019,44 +854,37 @@ msgid "" "of the exception." msgstr "" -#: ../../library/test.rst:875 msgid "Open *url*. If open fails, raises :exc:`TestFailed`." msgstr "" -#: ../../library/test.rst:880 msgid "" "Use this at the end of ``test_main`` whenever sub-processes are started. " "This will help ensure that no extra children (zombies) stick around to hog " "resources and create problems when looking for refleaks." msgstr "" -#: ../../library/test.rst:887 msgid "" "Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` " "is raised." msgstr "" -#: ../../library/test.rst:893 msgid "" -"Context manager catching unraisable exception " -"using :func:`sys.unraisablehook`." +"Context manager catching unraisable exception using :func:`sys." +"unraisablehook`." msgstr "" -#: ../../library/test.rst:896 msgid "" "Storing the exception value (``cm.unraisable.exc_value``) creates a " "reference cycle. The reference cycle is broken explicitly when the context " "manager exits." msgstr "" -#: ../../library/test.rst:900 msgid "" "Storing the object (``cm.unraisable.object``) can resurrect it if it is set " "to an object which is being finalized. Exiting the context manager clears " "the stored object." msgstr "" -#: ../../library/test.rst:906 msgid "" "with support.catch_unraisable_exception() as cm:\n" " # code creating an \"unraisable exception\"\n" @@ -1069,7 +897,6 @@ msgid "" "# (to break a reference cycle)" msgstr "" -#: ../../library/test.rst:921 msgid "" "Generic implementation of the :mod:`unittest` ``load_tests`` protocol for " "use in test packages. *pkg_dir* is the root directory of the package; " @@ -1078,7 +905,6 @@ msgid "" "the following::" msgstr "" -#: ../../library/test.rst:927 msgid "" "import os\n" "from test.support import load_package_tests\n" @@ -1087,55 +913,46 @@ msgid "" " return load_package_tests(os.path.dirname(__file__), *args)" msgstr "" -#: ../../library/test.rst:936 msgid "" "Returns the set of attributes, functions or methods of *ref_api* not found " "on *other_api*, except for a defined list of items to be ignored in this " "check specified in *ignore*." msgstr "" -#: ../../library/test.rst:940 msgid "" "By default this skips private attributes beginning with '_' but includes all " "magic methods, i.e. those starting and ending in '__'." msgstr "" -#: ../../library/test.rst:948 msgid "" "Override *object_to_patch.attr_name* with *new_value*. Also add cleanup " "procedure to *test_instance* to restore *object_to_patch* for *attr_name*. " "The *attr_name* should be a valid attribute for *object_to_patch*." msgstr "" -#: ../../library/test.rst:956 msgid "" -"Run *code* in subinterpreter. Raise :exc:`unittest.SkipTest` " -"if :mod:`tracemalloc` is enabled." +"Run *code* in subinterpreter. Raise :exc:`unittest.SkipTest` if :mod:" +"`tracemalloc` is enabled." msgstr "" -#: ../../library/test.rst:962 msgid "Assert instances of *cls* are deallocated after iterating." msgstr "" -#: ../../library/test.rst:967 msgid "" "Check for the existence of the compiler executables whose names are listed " "in *cmd_names* or all the compiler executables when *cmd_names* is empty and " "return the first missing executable or ``None`` when none is found missing." msgstr "" -#: ../../library/test.rst:975 msgid "" "Assert that the ``__all__`` variable of *module* contains all public names." msgstr "" -#: ../../library/test.rst:977 msgid "" "The module's public names (its API) are detected automatically based on " "whether they match the public name convention and were defined in *module*." msgstr "" -#: ../../library/test.rst:981 msgid "" "The *name_of_module* argument can specify (as a string or tuple thereof) " "what module(s) an API could be defined in order to be detected as a public " @@ -1143,25 +960,21 @@ msgid "" "other modules, possibly a C backend (like ``csv`` and its ``_csv``)." msgstr "" -#: ../../library/test.rst:986 msgid "" "The *extra* argument can be a set of names that wouldn't otherwise be " -"automatically detected as \"public\", like objects without a " -"proper :attr:`~definition.__module__` attribute. If provided, it will be " -"added to the automatically detected ones." +"automatically detected as \"public\", like objects without a proper :attr:" +"`~definition.__module__` attribute. If provided, it will be added to the " +"automatically detected ones." msgstr "" -#: ../../library/test.rst:990 msgid "" "The *not_exported* argument can be a set of names that must not be treated " "as part of the public API even though their names indicate otherwise." msgstr "" -#: ../../library/test.rst:993 ../../library/test.rst:1630 msgid "Example use::" msgstr "" -#: ../../library/test.rst:995 msgid "" "import bar\n" "import foo\n" @@ -1181,131 +994,109 @@ msgid "" " extra=extra, not_exported=not_exported)" msgstr "" -#: ../../library/test.rst:1016 msgid "" "Skip tests if the :mod:`multiprocessing.synchronize` module is missing, if " "there is no available semaphore implementation, or if creating a lock raises " "an :exc:`OSError`." msgstr "" -#: ../../library/test.rst:1025 msgid "Assert that type *tp* cannot be instantiated using *args* and *kwds*." msgstr "" -#: ../../library/test.rst:1032 msgid "" -"This function returns a context manager that will change the " -"global :func:`sys.set_int_max_str_digits` setting for the duration of the " -"context to allow execution of test code that needs a different limit on the " -"number of digits when converting between an integer and string." +"This function returns a context manager that will change the global :func:" +"`sys.set_int_max_str_digits` setting for the duration of the context to " +"allow execution of test code that needs a different limit on the number of " +"digits when converting between an integer and string." msgstr "" -#: ../../library/test.rst:1040 msgid "The :mod:`test.support` module defines the following classes:" msgstr "" -#: ../../library/test.rst:1045 msgid "" "A context manager used to try to prevent crash dialog popups on tests that " "are expected to crash a subprocess." msgstr "" -#: ../../library/test.rst:1048 msgid "" "On Windows, it disables Windows Error Reporting dialogs using `SetErrorMode " "`_." msgstr "" -#: ../../library/test.rst:1051 msgid "" -"On UNIX, :func:`resource.setrlimit` is used to " -"set :const:`resource.RLIMIT_CORE`'s soft limit to 0 to prevent coredump file " -"creation." +"On UNIX, :func:`resource.setrlimit` is used to set :const:`resource." +"RLIMIT_CORE`'s soft limit to 0 to prevent coredump file creation." msgstr "" -#: ../../library/test.rst:1055 msgid "" "On both platforms, the old value is restored by :meth:`~object.__exit__`." msgstr "" -#: ../../library/test.rst:1060 msgid "" "Class to save and restore signal handlers registered by the Python signal " "handler." msgstr "" -#: ../../library/test.rst:1065 msgid "" "Save the signal handlers to a dictionary mapping signal numbers to the " "current signal handler." msgstr "" -#: ../../library/test.rst:1070 msgid "" "Set the signal numbers from the :meth:`save` dictionary to the saved handler." msgstr "" -#: ../../library/test.rst:1078 msgid "Try to match a single dict with the supplied arguments." msgstr "" -#: ../../library/test.rst:1083 msgid "Try to match a single stored value (*dv*) with a supplied value (*v*)." msgstr "" -#: ../../library/test.rst:1087 msgid ":mod:`test.support.socket_helper` --- Utilities for socket tests" msgstr "" -#: ../../library/test.rst:1093 msgid "" "The :mod:`test.support.socket_helper` module provides support for socket " "tests." msgstr "" -#: ../../library/test.rst:1100 msgid "Set to ``True`` if IPv6 is enabled on this host, ``False`` otherwise." msgstr "" -#: ../../library/test.rst:1105 msgid "" "Returns an unused port that should be suitable for binding. This is " "achieved by creating a temporary socket with the same family and type as the " -"``sock`` parameter (default " -"is :const:`~socket.AF_INET`, :const:`~socket.SOCK_STREAM`), and binding it " -"to the specified host address (defaults to ``0.0.0.0``) with the port set to " -"0, eliciting an unused ephemeral port from the OS. The temporary socket is " -"then closed and deleted, and the ephemeral port is returned." +"``sock`` parameter (default is :const:`~socket.AF_INET`, :const:`~socket." +"SOCK_STREAM`), and binding it to the specified host address (defaults to " +"``0.0.0.0``) with the port set to 0, eliciting an unused ephemeral port from " +"the OS. The temporary socket is then closed and deleted, and the ephemeral " +"port is returned." msgstr "" -#: ../../library/test.rst:1114 msgid "" "Either this method or :func:`bind_port` should be used for any tests where a " "server socket needs to be bound to a particular port for the duration of the " "test. Which one to use depends on whether the calling code is creating a " "Python socket, or if an unused port needs to be provided in a constructor or " "passed to an external program (i.e. the ``-accept`` argument to openssl's " -"s_server mode). Always prefer :func:`bind_port` " -"over :func:`find_unused_port` where possible. Using a hard coded port is " -"discouraged since it can make multiple instances of the test impossible to " -"run simultaneously, which is a problem for buildbots." +"s_server mode). Always prefer :func:`bind_port` over :func:" +"`find_unused_port` where possible. Using a hard coded port is discouraged " +"since it can make multiple instances of the test impossible to run " +"simultaneously, which is a problem for buildbots." msgstr "" -#: ../../library/test.rst:1128 msgid "" "Bind the socket to a free port and return the port number. Relies on " "ephemeral ports in order to ensure we are using an unbound port. This is " "important as many tests may be running simultaneously, especially in a " -"buildbot environment. This method raises an exception if the " -"``sock.family`` is :const:`~socket.AF_INET` and ``sock.type`` " -"is :const:`~socket.SOCK_STREAM`, and the socket " -"has :const:`~socket.SO_REUSEADDR` or :const:`~socket.SO_REUSEPORT` set on " -"it. Tests should never set these socket options for TCP/IP sockets. The only " -"case for setting these options is testing multicasting via multiple UDP " -"sockets." +"buildbot environment. This method raises an exception if the ``sock." +"family`` is :const:`~socket.AF_INET` and ``sock.type`` is :const:`~socket." +"SOCK_STREAM`, and the socket has :const:`~socket.SO_REUSEADDR` or :const:" +"`~socket.SO_REUSEPORT` set on it. Tests should never set these socket " +"options for TCP/IP sockets. The only case for setting these options is " +"testing multicasting via multiple UDP sockets." msgstr "" -#: ../../library/test.rst:1139 msgid "" "Additionally, if the :const:`~socket.SO_EXCLUSIVEADDRUSE` socket option is " "available (i.e. on Windows), it will be set on the socket. This will " @@ -1313,58 +1104,49 @@ msgid "" "test." msgstr "" -#: ../../library/test.rst:1147 msgid "" -"Bind a Unix socket, raising :exc:`unittest.SkipTest` " -"if :exc:`PermissionError` is raised." +"Bind a Unix socket, raising :exc:`unittest.SkipTest` if :exc:" +"`PermissionError` is raised." msgstr "" -#: ../../library/test.rst:1153 msgid "" "A decorator for running tests that require a functional ``bind()`` for Unix " "sockets." msgstr "" -#: ../../library/test.rst:1159 msgid "" "A context manager that raises :exc:`~test.support.ResourceDenied` when " "various issues with the internet connection manifest themselves as " "exceptions." msgstr "" -#: ../../library/test.rst:1165 msgid "" ":mod:`test.support.script_helper` --- Utilities for the Python execution " "tests" msgstr "" -#: ../../library/test.rst:1171 msgid "" "The :mod:`test.support.script_helper` module provides support for Python's " "script execution tests." msgstr "" -#: ../../library/test.rst:1176 msgid "" "Return ``True`` if ``sys.executable interpreter`` requires environment " "variables in order to be able to run at all." msgstr "" -#: ../../library/test.rst:1179 msgid "" "This is designed to be used with ``@unittest.skipIf()`` to annotate tests " "that need to use an ``assert_python*()`` function to launch an isolated mode " "(``-I``) or no environment mode (``-E``) sub-interpreter process." msgstr "" -#: ../../library/test.rst:1183 msgid "" "A normal build & test does not run into this situation but it can happen " "when trying to run the standard library test suite from an interpreter that " "doesn't have an obvious home with Python's current home finding logic." msgstr "" -#: ../../library/test.rst:1187 msgid "" "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run " "in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are " @@ -1372,85 +1154,70 @@ msgid "" "interpreter can start." msgstr "" -#: ../../library/test.rst:1195 msgid "" "Set up the environment based on *env_vars* for running the interpreter in a " "subprocess. The values can include ``__isolated``, ``__cleanenv``, " "``__cwd``, and ``TERM``." msgstr "" -#: ../../library/test.rst:1199 ../../library/test.rst:1215 -#: ../../library/test.rst:1227 msgid "The function no longer strips whitespaces from *stderr*." msgstr "" -#: ../../library/test.rst:1205 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* succeeds (``rc == 0``) and return a ``(return code, " "stdout, stderr)`` tuple." msgstr "" -#: ../../library/test.rst:1209 msgid "" "If the *__cleanenv* keyword-only parameter is set, *env_vars* is used as a " "fresh environment." msgstr "" -#: ../../library/test.rst:1212 msgid "" "Python is started in isolated mode (command line option ``-I``), except if " "the *__isolated* keyword-only parameter is set to ``False``." msgstr "" -#: ../../library/test.rst:1221 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* fails (``rc != 0``) and return a ``(return code, " "stdout, stderr)`` tuple." msgstr "" -#: ../../library/test.rst:1225 msgid "See :func:`assert_python_ok` for more options." msgstr "" -#: ../../library/test.rst:1233 msgid "Run a Python subprocess with the given arguments." msgstr "" -#: ../../library/test.rst:1235 msgid "" -"*kw* is extra keyword args to pass to :func:`subprocess.Popen`. Returns " -"a :class:`subprocess.Popen` object." +"*kw* is extra keyword args to pass to :func:`subprocess.Popen`. Returns a :" +"class:`subprocess.Popen` object." msgstr "" -#: ../../library/test.rst:1241 msgid "" "Run the given :class:`subprocess.Popen` process until completion and return " "stdout." msgstr "" -#: ../../library/test.rst:1247 msgid "" "Create script containing *source* in path *script_dir* and " "*script_basename*. If *omit_suffix* is ``False``, append ``.py`` to the " "name. Return the full script path." msgstr "" -#: ../../library/test.rst:1254 msgid "" "Create zip file at *zip_dir* and *zip_basename* with extension ``zip`` which " "contains the files in *script_name*. *name_in_zip* is the archive name. " "Return a tuple containing ``(full path, full path of archive name)``." msgstr "" -#: ../../library/test.rst:1261 msgid "" "Create a directory named *pkg_dir* containing an ``__init__`` file with " "*init_source* as its contents." msgstr "" -#: ../../library/test.rst:1268 msgid "" "Create a zip package directory with a path of *zip_dir* and *zip_basename* " "containing an empty ``__init__`` file and a file *script_basename* " @@ -1459,60 +1226,48 @@ msgid "" "path and the archive name for the zip file." msgstr "" -#: ../../library/test.rst:1276 msgid "" ":mod:`test.support.bytecode_helper` --- Support tools for testing correct " "bytecode generation" msgstr "" -#: ../../library/test.rst:1281 msgid "" "The :mod:`test.support.bytecode_helper` module provides support for testing " "and inspecting bytecode generation." msgstr "" -#: ../../library/test.rst:1286 msgid "The module defines the following class:" msgstr "" -#: ../../library/test.rst:1290 msgid "This class has custom assertion methods for inspecting bytecode." msgstr "" -#: ../../library/test.rst:1294 msgid "Return the disassembly of *co* as string." msgstr "" -#: ../../library/test.rst:1299 msgid "" "Return instr if *opname* is found, otherwise throws :exc:`AssertionError`." msgstr "" -#: ../../library/test.rst:1304 msgid "Throws :exc:`AssertionError` if *opname* is found." msgstr "" -#: ../../library/test.rst:1308 msgid ":mod:`test.support.threading_helper` --- Utilities for threading tests" msgstr "" -#: ../../library/test.rst:1313 msgid "" "The :mod:`test.support.threading_helper` module provides support for " "threading tests." msgstr "" -#: ../../library/test.rst:1320 msgid "" "Join a *thread* within *timeout*. Raise an :exc:`AssertionError` if thread " "is still alive after *timeout* seconds." msgstr "" -#: ../../library/test.rst:1326 msgid "Decorator to ensure the threads are cleaned up even if the test fails." msgstr "" -#: ../../library/test.rst:1331 msgid "" "Context manager to start *threads*, which is a sequence of threads. *unlock* " "is a function called after the threads are started, even if an exception was " @@ -1520,57 +1275,45 @@ msgid "" "will attempt to join the started threads upon exit." msgstr "" -#: ../../library/test.rst:1339 msgid "" "Cleanup up threads not specified in *original_values*. Designed to emit a " "warning if a test leaves running threads in the background." msgstr "" -#: ../../library/test.rst:1345 msgid "Return current thread count and copy of dangling threads." msgstr "" -#: ../../library/test.rst:1350 msgid "" "Context manager to wait until all threads created in the ``with`` statement " "exit." msgstr "" -#: ../../library/test.rst:1356 msgid "" -"Context manager catching :class:`threading.Thread` exception " -"using :func:`threading.excepthook`." +"Context manager catching :class:`threading.Thread` exception using :func:" +"`threading.excepthook`." msgstr "" -#: ../../library/test.rst:1359 msgid "Attributes set when an exception is caught:" msgstr "" -#: ../../library/test.rst:1361 msgid "``exc_type``" msgstr "" -#: ../../library/test.rst:1362 msgid "``exc_value``" msgstr "" -#: ../../library/test.rst:1363 msgid "``exc_traceback``" msgstr "" -#: ../../library/test.rst:1364 msgid "``thread``" msgstr "" -#: ../../library/test.rst:1366 msgid "See :func:`threading.excepthook` documentation." msgstr "" -#: ../../library/test.rst:1368 msgid "These attributes are deleted at the context manager exit." msgstr "" -#: ../../library/test.rst:1372 msgid "" "with threading_helper.catch_threading_exception() as cm:\n" " # code spawning a thread which raises an exception\n" @@ -1585,35 +1328,28 @@ msgid "" "# (to avoid reference cycles)" msgstr "" -#: ../../library/test.rst:1389 msgid "" "Run the worker function concurrently in multiple threads. Re-raises an " "exception if any thread raises one, after all threads have finished." msgstr "" -#: ../../library/test.rst:1395 msgid ":mod:`test.support.os_helper` --- Utilities for os tests" msgstr "" -#: ../../library/test.rst:1400 msgid "The :mod:`test.support.os_helper` module provides support for os tests." msgstr "" -#: ../../library/test.rst:1407 msgid "A non-ASCII character encodable by :func:`os.fsencode`." msgstr "" -#: ../../library/test.rst:1412 msgid "Set to :func:`os.getcwd`." msgstr "" -#: ../../library/test.rst:1417 msgid "" "Set to a name that is safe to use as the name of a temporary file. Any " "temporary file that is created should be closed and unlinked (removed)." msgstr "" -#: ../../library/test.rst:1423 msgid "" "Set to a filename containing the :data:`FS_NONASCII` character, if it " "exists. This guarantees that if the filename exists, it can be encoded and " @@ -1621,25 +1357,21 @@ msgid "" "a non-ASCII filename to be easily skipped on platforms where they can't work." msgstr "" -#: ../../library/test.rst:1431 msgid "" "Set to a filename (str type) that should not be able to be encoded by file " "system encoding in strict mode. It may be ``None`` if it's not possible to " "generate such a filename." msgstr "" -#: ../../library/test.rst:1438 msgid "" "Set to a filename (bytes type) that should not be able to be decoded by file " "system encoding in strict mode. It may be ``None`` if it's not possible to " "generate such a filename." msgstr "" -#: ../../library/test.rst:1445 msgid "Set to a non-ASCII name for a temporary file." msgstr "" -#: ../../library/test.rst:1450 msgid "" "Class used to temporarily set or unset environment variables. Instances can " "be used as a context manager and have a complete dictionary interface for " @@ -1648,158 +1380,129 @@ msgid "" "instance will be rolled back." msgstr "" -#: ../../library/test.rst:1456 msgid "Added dictionary interface." msgstr "" -#: ../../library/test.rst:1462 msgid "" -"Simple :term:`path-like object`. It implements " -"the :meth:`~os.PathLike.__fspath__` method which just returns the *path* " -"argument. If *path* is an exception, it will be raised in :meth:`!" -"__fspath__`." +"Simple :term:`path-like object`. It implements the :meth:`~os.PathLike." +"__fspath__` method which just returns the *path* argument. If *path* is an " +"exception, it will be raised in :meth:`!__fspath__`." msgstr "" -#: ../../library/test.rst:1470 msgid "" "Temporarily set the environment variable ``envvar`` to the value of " "``value``." msgstr "" -#: ../../library/test.rst:1476 msgid "Temporarily unset one or more environment variables." msgstr "" -#: ../../library/test.rst:1478 msgid "More than one environment variable can be unset." msgstr "" -#: ../../library/test.rst:1484 msgid "Return ``True`` if the OS supports symbolic links, ``False`` otherwise." msgstr "" -#: ../../library/test.rst:1490 msgid "Return ``True`` if the OS supports xattr, ``False`` otherwise." msgstr "" -#: ../../library/test.rst:1496 msgid "" "A context manager that temporarily changes the current working directory to " "*path* and yields the directory." msgstr "" -#: ../../library/test.rst:1499 msgid "" "If *quiet* is ``False``, the context manager raises an exception on error. " "Otherwise, it issues only a warning and keeps the current working directory " "the same." msgstr "" -#: ../../library/test.rst:1506 msgid "" "Create an empty file with *filename*. If it already exists, truncate it." msgstr "" -#: ../../library/test.rst:1511 msgid "Count the number of open file descriptors." msgstr "" -#: ../../library/test.rst:1516 msgid "Return ``True`` if the file system for *directory* is case-insensitive." msgstr "" -#: ../../library/test.rst:1521 msgid "" "Create an invalid file descriptor by opening and closing a temporary file, " "and returning its descriptor." msgstr "" -#: ../../library/test.rst:1527 msgid "" "Call :func:`os.rmdir` on *filename*. On Windows platforms, this is wrapped " "with a wait loop that checks for the existence of the file, which is needed " "due to antivirus programs that can hold files open and prevent deletion." msgstr "" -#: ../../library/test.rst:1535 msgid "" -"Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` " -"and :func:`os.rmdir` to remove a path and its contents. As " -"with :func:`rmdir`, on Windows platforms this is wrapped with a wait loop " -"that checks for the existence of the files." +"Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and :func:`os." +"rmdir` to remove a path and its contents. As with :func:`rmdir`, on Windows " +"platforms this is wrapped with a wait loop that checks for the existence of " +"the files." msgstr "" -#: ../../library/test.rst:1543 msgid "A decorator for running tests that require support for symbolic links." msgstr "" -#: ../../library/test.rst:1548 msgid "A decorator for running tests that require support for xattr." msgstr "" -#: ../../library/test.rst:1553 msgid "" "A context manager that temporarily creates a new directory and changes the " "current working directory (CWD)." msgstr "" -#: ../../library/test.rst:1556 msgid "" "The context manager creates a temporary directory in the current directory " "with name *name* before temporarily changing the current working directory. " -"If *name* is ``None``, the temporary directory is created " -"using :func:`tempfile.mkdtemp`." +"If *name* is ``None``, the temporary directory is created using :func:" +"`tempfile.mkdtemp`." msgstr "" -#: ../../library/test.rst:1561 msgid "" "If *quiet* is ``False`` and it is not possible to create or change the CWD, " "an error is raised. Otherwise, only a warning is raised and the original " "CWD is used." msgstr "" -#: ../../library/test.rst:1568 msgid "" "A context manager that creates a temporary directory at *path* and yields " "the directory." msgstr "" -#: ../../library/test.rst:1571 msgid "" -"If *path* is ``None``, the temporary directory is created " -"using :func:`tempfile.mkdtemp`. If *quiet* is ``False``, the context " -"manager raises an exception on error. Otherwise, if *path* is specified and " -"cannot be created, only a warning is issued." +"If *path* is ``None``, the temporary directory is created using :func:" +"`tempfile.mkdtemp`. If *quiet* is ``False``, the context manager raises an " +"exception on error. Otherwise, if *path* is specified and cannot be " +"created, only a warning is issued." msgstr "" -#: ../../library/test.rst:1579 msgid "A context manager that temporarily sets the process umask." msgstr "" -#: ../../library/test.rst:1584 msgid "" "Call :func:`os.unlink` on *filename*. As with :func:`rmdir`, on Windows " "platforms, this is wrapped with a wait loop that checks for the existence of " "the file." msgstr "" -#: ../../library/test.rst:1590 msgid ":mod:`test.support.import_helper` --- Utilities for import tests" msgstr "" -#: ../../library/test.rst:1595 msgid "" "The :mod:`test.support.import_helper` module provides support for import " "tests." msgstr "" -#: ../../library/test.rst:1602 msgid "" "Remove the module named *module_name* from ``sys.modules`` and delete any " "byte-compiled files of the module." msgstr "" -#: ../../library/test.rst:1608 msgid "" "This function imports and returns a fresh copy of the named Python module by " "removing the named module from ``sys.modules`` before doing the import. Note " @@ -1807,39 +1510,33 @@ msgid "" "operation." msgstr "" -#: ../../library/test.rst:1613 msgid "" "*fresh* is an iterable of additional module names that are also removed from " "the ``sys.modules`` cache before doing the import." msgstr "" -#: ../../library/test.rst:1616 msgid "" "*blocked* is an iterable of module names that are replaced with ``None`` in " "the module cache during the import to ensure that attempts to import them " "raise :exc:`ImportError`." msgstr "" -#: ../../library/test.rst:1620 msgid "" "The named module and any modules named in the *fresh* and *blocked* " "parameters are saved before starting the import and then reinserted into " "``sys.modules`` when the fresh import is complete." msgstr "" -#: ../../library/test.rst:1624 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``." msgstr "" -#: ../../library/test.rst:1627 msgid "" "This function will raise :exc:`ImportError` if the named module cannot be " "imported." msgstr "" -#: ../../library/test.rst:1632 msgid "" "# Get copies of the warnings module for testing without affecting the\n" "# version being used by the rest of the test suite. One copy uses the\n" @@ -1849,14 +1546,12 @@ msgid "" "c_warnings = import_fresh_module('warnings', fresh=['_warnings'])" msgstr "" -#: ../../library/test.rst:1644 msgid "" "This function imports and returns the named module. Unlike a normal import, " "this function raises :exc:`unittest.SkipTest` if the module cannot be " "imported." msgstr "" -#: ../../library/test.rst:1648 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``. If a module is required on a platform but " @@ -1864,21 +1559,17 @@ msgid "" "which will be compared against :data:`sys.platform`." msgstr "" -#: ../../library/test.rst:1658 msgid "Return a copy of :data:`sys.modules`." msgstr "" -#: ../../library/test.rst:1663 msgid "" "Remove modules except for *oldmodules* and ``encodings`` in order to " "preserve internal cache." msgstr "" -#: ../../library/test.rst:1669 msgid "Delete *name* from ``sys.modules``." msgstr "" -#: ../../library/test.rst:1674 msgid "" "Move a :pep:`3147`/:pep:`488` pyc file to its legacy pyc location and return " "the file system path to the legacy pyc file. The *source* value is the file " @@ -1886,92 +1577,78 @@ msgid "" "3147/488 pyc file must exist." msgstr "" -#: ../../library/test.rst:1682 msgid "" "A context manager to force import to return a new module reference. This is " -"useful for testing module-level behaviors, such as the emission of " -"a :exc:`DeprecationWarning` on import. Example usage::" +"useful for testing module-level behaviors, such as the emission of a :exc:" +"`DeprecationWarning` on import. Example usage::" msgstr "" -#: ../../library/test.rst:1686 msgid "" "with CleanImport('foo'):\n" " importlib.import_module('foo') # New reference." msgstr "" -#: ../../library/test.rst:1692 msgid "A context manager to temporarily add directories to :data:`sys.path`." msgstr "" -#: ../../library/test.rst:1694 msgid "" "This makes a copy of :data:`sys.path`, appends any directories given as " "positional arguments, then reverts :data:`sys.path` to the copied settings " "when the context ends." msgstr "" -#: ../../library/test.rst:1698 msgid "" "Note that *all* :data:`sys.path` modifications in the body of the context " "manager, including replacement of the object, will be reverted at the end of " "the block." msgstr "" -#: ../../library/test.rst:1704 msgid ":mod:`test.support.warnings_helper` --- Utilities for warnings tests" msgstr "" -#: ../../library/test.rst:1709 msgid "" "The :mod:`test.support.warnings_helper` module provides support for warnings " "tests." msgstr "" -#: ../../library/test.rst:1716 msgid "" -"Suppress warnings that are instances of *category*, which must " -"be :exc:`Warning` or a subclass. Roughly equivalent " -"to :func:`warnings.catch_warnings` " -"with :meth:`warnings.simplefilter('ignore', category=category) " -"`. For example::" +"Suppress warnings that are instances of *category*, which must be :exc:" +"`Warning` or a subclass. Roughly equivalent to :func:`warnings." +"catch_warnings` with :meth:`warnings.simplefilter('ignore', " +"category=category) `. For example::" msgstr "" -#: ../../library/test.rst:1722 msgid "" "@warning_helper.ignore_warnings(category=DeprecationWarning)\n" "def test_suppress_warning():\n" " # do something" msgstr "" -#: ../../library/test.rst:1731 msgid "" "Context manager to check that no :exc:`ResourceWarning` was raised. You " "must remove the object which may emit :exc:`ResourceWarning` before the end " "of the context manager." msgstr "" -#: ../../library/test.rst:1738 msgid "" "Test for syntax warning in *statement* by attempting to compile *statement*. " "Test also that the :exc:`SyntaxWarning` is emitted only once, and that it " "will be converted to a :exc:`SyntaxError` when turned into error. *testcase* " "is the :mod:`unittest` instance for the test. *errtext* is the regular " -"expression which should match the string representation of the " -"emitted :exc:`SyntaxWarning` and raised :exc:`SyntaxError`. If *lineno* is " -"not ``None``, compares to the line of the warning and exception. If *offset* " -"is not ``None``, compares to the offset of the exception." +"expression which should match the string representation of the emitted :exc:" +"`SyntaxWarning` and raised :exc:`SyntaxError`. If *lineno* is not ``None``, " +"compares to the line of the warning and exception. If *offset* is not " +"``None``, compares to the offset of the exception." msgstr "" -#: ../../library/test.rst:1752 msgid "" "A convenience wrapper for :func:`warnings.catch_warnings` that makes it " "easier to test that a warning was correctly raised. It is approximately " -"equivalent to calling ``warnings.catch_warnings(record=True)`` " -"with :meth:`warnings.simplefilter` set to ``always`` and with the option to " +"equivalent to calling ``warnings.catch_warnings(record=True)`` with :meth:" +"`warnings.simplefilter` set to ``always`` and with the option to " "automatically validate the results that are recorded." msgstr "" -#: ../../library/test.rst:1758 msgid "" "``check_warnings`` accepts 2-tuples of the form ``(\"message regexp\", " "WarningCategory)`` as positional arguments. If one or more *filters* are " @@ -1983,19 +1660,15 @@ msgid "" "*quiet* to ``True``." msgstr "" -#: ../../library/test.rst:1767 msgid "If no arguments are specified, it defaults to::" msgstr "" -#: ../../library/test.rst:1769 msgid "check_warnings((\"\", Warning), quiet=True)" msgstr "" -#: ../../library/test.rst:1771 msgid "In this case all warnings are caught and no errors are raised." msgstr "" -#: ../../library/test.rst:1773 msgid "" "On entry to the context manager, a :class:`WarningRecorder` instance is " "returned. The underlying warnings list from :func:`~warnings.catch_warnings` " @@ -2007,17 +1680,14 @@ msgid "" "return ``None``." msgstr "" -#: ../../library/test.rst:1782 msgid "" "The recorder object also has a :meth:`reset` method, which clears the " "warnings list." msgstr "" -#: ../../library/test.rst:1785 msgid "The context manager is designed to be used like this::" msgstr "" -#: ../../library/test.rst:1787 msgid "" "with check_warnings((\"assertion is always true\", SyntaxWarning),\n" " (\"\", UserWarning)):\n" @@ -2025,19 +1695,16 @@ msgid "" " warnings.warn(UserWarning(\"Hide me!\"))" msgstr "" -#: ../../library/test.rst:1792 msgid "" "In this case if either warning was not raised, or some other warning was " "raised, :func:`check_warnings` would raise an error." msgstr "" -#: ../../library/test.rst:1795 msgid "" "When a test needs to look more deeply into the warnings, rather than just " "checking whether or not they occurred, code like this can be used::" msgstr "" -#: ../../library/test.rst:1798 msgid "" "with check_warnings(quiet=True) as w:\n" " warnings.warn(\"foo\")\n" @@ -2050,18 +1717,15 @@ msgid "" " assert len(w.warnings) == 0" msgstr "" -#: ../../library/test.rst:1809 msgid "" "Here all warnings will be caught, and the test code tests the captured " "warnings directly." msgstr "" -#: ../../library/test.rst:1812 msgid "New optional arguments *filters* and *quiet*." msgstr "" -#: ../../library/test.rst:1818 msgid "" -"Class used to record warnings for unit tests. See documentation " -"of :func:`check_warnings` above for more details." +"Class used to record warnings for unit tests. See documentation of :func:" +"`check_warnings` above for more details." msgstr "" diff --git a/library/text.po b/library/text.po index e8d67cb..b0e051f 100644 --- a/library/text.po +++ b/library/text.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,17 +18,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/text.rst:6 msgid "Text Processing Services" msgstr "" -#: ../../library/text.rst:8 msgid "" "The modules described in this chapter provide a wide range of string " "manipulation operations and other text processing services." msgstr "" -#: ../../library/text.rst:11 msgid "" "The :mod:`codecs` module described under :ref:`binaryservices` is also " "highly relevant to text processing. In addition, see the documentation for " diff --git a/library/textwrap.po b/library/textwrap.po index 23b6eb1..5a839e1 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,63 +18,52 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/textwrap.rst:2 msgid ":mod:`!textwrap` --- Text wrapping and filling" msgstr "" -#: ../../library/textwrap.rst:10 msgid "**Source code:** :source:`Lib/textwrap.py`" msgstr "" -#: ../../library/textwrap.rst:14 msgid "" -"The :mod:`textwrap` module provides some convenience functions, as well " -"as :class:`TextWrapper`, the class that does all the work. If you're just " +"The :mod:`textwrap` module provides some convenience functions, as well as :" +"class:`TextWrapper`, the class that does all the work. If you're just " "wrapping or filling one or two text strings, the convenience functions " -"should be good enough; otherwise, you should use an instance " -"of :class:`TextWrapper` for efficiency." +"should be good enough; otherwise, you should use an instance of :class:" +"`TextWrapper` for efficiency." msgstr "" -#: ../../library/textwrap.rst:27 msgid "" "Wraps the single paragraph in *text* (a string) so every line is at most " "*width* characters long. Returns a list of output lines, without final " "newlines." msgstr "" -#: ../../library/textwrap.rst:31 msgid "" -"Optional keyword arguments correspond to the instance attributes " -"of :class:`TextWrapper`, documented below." +"Optional keyword arguments correspond to the instance attributes of :class:" +"`TextWrapper`, documented below." msgstr "" -#: ../../library/textwrap.rst:34 msgid "" -"See the :meth:`TextWrapper.wrap` method for additional details on " -"how :func:`wrap` behaves." +"See the :meth:`TextWrapper.wrap` method for additional details on how :func:" +"`wrap` behaves." msgstr "" -#: ../../library/textwrap.rst:45 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph. :func:`fill` is shorthand for ::" msgstr "" -#: ../../library/textwrap.rst:48 msgid "\"\\n\".join(wrap(text, ...))" msgstr "" -#: ../../library/textwrap.rst:50 msgid "" -"In particular, :func:`fill` accepts exactly the same keyword arguments " -"as :func:`wrap`." +"In particular, :func:`fill` accepts exactly the same keyword arguments as :" +"func:`wrap`." msgstr "" -#: ../../library/textwrap.rst:58 msgid "Collapse and truncate the given *text* to fit in the given *width*." msgstr "" -#: ../../library/textwrap.rst:60 msgid "" "First the whitespace in *text* is collapsed (all whitespace is replaced by " "single spaces). If the result fits in the *width*, it is returned. " @@ -82,7 +71,6 @@ msgid "" "plus the *placeholder* fit within *width*::" msgstr "" -#: ../../library/textwrap.rst:65 msgid "" ">>> textwrap.shorten(\"Hello world!\", width=12)\n" "'Hello world!'\n" @@ -92,44 +80,36 @@ msgid "" "'Hello...'" msgstr "" -#: ../../library/textwrap.rst:72 msgid "" -"Optional keyword arguments correspond to the instance attributes " -"of :class:`TextWrapper`, documented below. Note that the whitespace is " -"collapsed before the text is passed to the :class:`TextWrapper` :meth:`fill` " -"function, so changing the value " -"of :attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`.drop_whitespace`, " -"and :attr:`.replace_whitespace` will have no effect." +"Optional keyword arguments correspond to the instance attributes of :class:" +"`TextWrapper`, documented below. Note that the whitespace is collapsed " +"before the text is passed to the :class:`TextWrapper` :meth:`fill` function, " +"so changing the value of :attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`." +"drop_whitespace`, and :attr:`.replace_whitespace` will have no effect." msgstr "" -#: ../../library/textwrap.rst:82 msgid "Remove any common leading whitespace from every line in *text*." msgstr "" -#: ../../library/textwrap.rst:84 msgid "" "This can be used to make triple-quoted strings line up with the left edge of " "the display, while still presenting them in the source code in indented form." msgstr "" -#: ../../library/textwrap.rst:87 msgid "" "Note that tabs and spaces are both treated as whitespace, but they are not " "equal: the lines ``\" hello\"`` and ``\"\\thello\"`` are considered to have " "no common leading whitespace." msgstr "" -#: ../../library/textwrap.rst:91 msgid "" "Lines containing only whitespace are ignored in the input and normalized to " "a single newline character in the output." msgstr "" -#: ../../library/textwrap.rst:94 ../../library/textwrap.rst:115 msgid "For example::" msgstr "" -#: ../../library/textwrap.rst:96 msgid "" "def test():\n" " # end first line with \\ to avoid the empty line!\n" @@ -141,35 +121,29 @@ msgid "" " print(repr(dedent(s))) # prints 'hello\\n world\\n'" msgstr "" -#: ../../library/textwrap.rst:108 msgid "Add *prefix* to the beginning of selected lines in *text*." msgstr "" -#: ../../library/textwrap.rst:110 msgid "Lines are separated by calling ``text.splitlines(True)``." msgstr "" -#: ../../library/textwrap.rst:112 msgid "" "By default, *prefix* is added to all lines that do not consist solely of " "whitespace (including any line endings)." msgstr "" -#: ../../library/textwrap.rst:117 msgid "" ">>> s = 'hello\\n\\n \\nworld'\n" ">>> indent(s, ' ')\n" "' hello\\n\\n \\n world'" msgstr "" -#: ../../library/textwrap.rst:121 msgid "" "The optional *predicate* argument can be used to control which lines are " "indented. For example, it is easy to add *prefix* to even empty and " "whitespace-only lines::" msgstr "" -#: ../../library/textwrap.rst:125 msgid "" ">>> print(indent(s, '+ ', lambda line: True))\n" "+ hello\n" @@ -178,93 +152,79 @@ msgid "" "+ world" msgstr "" -#: ../../library/textwrap.rst:134 msgid "" -":func:`wrap`, :func:`fill` and :func:`shorten` work by creating " -"a :class:`TextWrapper` instance and calling a single method on it. That " -"instance is not reused, so for applications that process many text strings " -"using :func:`wrap` and/or :func:`fill`, it may be more efficient to create " -"your own :class:`TextWrapper` object." +":func:`wrap`, :func:`fill` and :func:`shorten` work by creating a :class:" +"`TextWrapper` instance and calling a single method on it. That instance is " +"not reused, so for applications that process many text strings using :func:" +"`wrap` and/or :func:`fill`, it may be more efficient to create your own :" +"class:`TextWrapper` object." msgstr "" -#: ../../library/textwrap.rst:140 msgid "" "Text is preferably wrapped on whitespaces and right after the hyphens in " -"hyphenated words; only then will long words be broken if necessary, " -"unless :attr:`TextWrapper.break_long_words` is set to false." +"hyphenated words; only then will long words be broken if necessary, unless :" +"attr:`TextWrapper.break_long_words` is set to false." msgstr "" -#: ../../library/textwrap.rst:146 msgid "" "The :class:`TextWrapper` constructor accepts a number of optional keyword " "arguments. Each keyword argument corresponds to an instance attribute, so " "for example ::" msgstr "" -#: ../../library/textwrap.rst:150 msgid "wrapper = TextWrapper(initial_indent=\"* \")" msgstr "" -#: ../../library/textwrap.rst:152 msgid "is the same as ::" msgstr "" -#: ../../library/textwrap.rst:154 msgid "" "wrapper = TextWrapper()\n" "wrapper.initial_indent = \"* \"" msgstr "" -#: ../../library/textwrap.rst:157 msgid "" "You can reuse the same :class:`TextWrapper` object many times, and you can " "change any of its options through direct assignment to instance attributes " "between uses." msgstr "" -#: ../../library/textwrap.rst:161 msgid "" "The :class:`TextWrapper` instance attributes (and keyword arguments to the " "constructor) are as follows:" msgstr "" -#: ../../library/textwrap.rst:167 msgid "" "(default: ``70``) The maximum length of wrapped lines. As long as there are " -"no individual words in the input text longer " -"than :attr:`width`, :class:`TextWrapper` guarantees that no output line will " -"be longer than :attr:`width` characters." +"no individual words in the input text longer than :attr:`width`, :class:" +"`TextWrapper` guarantees that no output line will be longer than :attr:" +"`width` characters." msgstr "" -#: ../../library/textwrap.rst:175 msgid "" "(default: ``True``) If true, then all tab characters in *text* will be " "expanded to spaces using the :meth:`~str.expandtabs` method of *text*." msgstr "" -#: ../../library/textwrap.rst:181 msgid "" "(default: ``8``) If :attr:`expand_tabs` is true, then all tab characters in " "*text* will be expanded to zero or more spaces, depending on the current " "column and the given tab size." msgstr "" -#: ../../library/textwrap.rst:190 msgid "" -"(default: ``True``) If true, after tab expansion but before wrapping, " -"the :meth:`wrap` method will replace each whitespace character with a single " +"(default: ``True``) If true, after tab expansion but before wrapping, the :" +"meth:`wrap` method will replace each whitespace character with a single " "space. The whitespace characters replaced are as follows: tab, newline, " "vertical tab, formfeed, and carriage return (``'\\t\\n\\v\\f\\r'``)." msgstr "" -#: ../../library/textwrap.rst:198 msgid "" "If :attr:`expand_tabs` is false and :attr:`replace_whitespace` is true, each " "tab character will be replaced by a single space, which is *not* the same as " "tab expansion." msgstr "" -#: ../../library/textwrap.rst:204 msgid "" "If :attr:`replace_whitespace` is false, newlines may appear in the middle of " "a line and cause strange output. For this reason, text should be split into " @@ -272,7 +232,6 @@ msgid "" "separately." msgstr "" -#: ../../library/textwrap.rst:212 msgid "" "(default: ``True``) If true, whitespace at the beginning and ending of every " "line (after wrapping but before indenting) is dropped. Whitespace at the " @@ -281,21 +240,18 @@ msgid "" "line is dropped." msgstr "" -#: ../../library/textwrap.rst:221 msgid "" "(default: ``''``) String that will be prepended to the first line of wrapped " "output. Counts towards the length of the first line. The empty string is " "not indented." msgstr "" -#: ../../library/textwrap.rst:228 msgid "" "(default: ``''``) String that will be prepended to all lines of wrapped " "output except the first. Counts towards the length of each line except the " "first." msgstr "" -#: ../../library/textwrap.rst:235 msgid "" "(default: ``False``) If true, :class:`TextWrapper` attempts to detect " "sentence endings and ensure that sentences are always separated by exactly " @@ -307,23 +263,18 @@ msgid "" "to detect the difference between \"Dr.\" in ::" msgstr "" -#: ../../library/textwrap.rst:244 msgid "[...] Dr. Frankenstein's monster [...]" msgstr "" -#: ../../library/textwrap.rst:246 msgid "and \"Spot.\" in ::" msgstr "" -#: ../../library/textwrap.rst:248 msgid "[...] See Spot. See Spot run [...]" msgstr "" -#: ../../library/textwrap.rst:250 msgid ":attr:`fix_sentence_endings` is false by default." msgstr "" -#: ../../library/textwrap.rst:252 msgid "" "Since the sentence detection algorithm relies on ``string.lowercase`` for " "the definition of \"lowercase letter\", and a convention of using two spaces " @@ -331,7 +282,6 @@ msgid "" "English-language texts." msgstr "" -#: ../../library/textwrap.rst:260 msgid "" "(default: ``True``) If true, then words longer than :attr:`width` will be " "broken in order to ensure that no lines are longer than :attr:`width`. If " @@ -340,7 +290,6 @@ msgid "" "order to minimize the amount by which :attr:`width` is exceeded.)" msgstr "" -#: ../../library/textwrap.rst:269 msgid "" "(default: ``True``) If true, wrapping will occur preferably on whitespaces " "and right after hyphens in compound words, as it is customary in English. If " @@ -350,43 +299,36 @@ msgid "" "always allow breaking hyphenated words." msgstr "" -#: ../../library/textwrap.rst:279 msgid "" "(default: ``None``) If not ``None``, then the output will contain at most " "*max_lines* lines, with *placeholder* appearing at the end of the output." msgstr "" -#: ../../library/textwrap.rst:289 msgid "" "(default: ``' [...]'``) String that will appear at the end of the output " "text if it has been truncated." msgstr "" -#: ../../library/textwrap.rst:295 msgid "" ":class:`TextWrapper` also provides some public methods, analogous to the " "module-level convenience functions:" msgstr "" -#: ../../library/textwrap.rst:300 msgid "" -"Wraps the single paragraph in *text* (a string) so every line is at " -"most :attr:`width` characters long. All wrapping options are taken from " -"instance attributes of the :class:`TextWrapper` instance. Returns a list of " -"output lines, without final newlines. If the wrapped output has no content, " -"the returned list is empty." +"Wraps the single paragraph in *text* (a string) so every line is at most :" +"attr:`width` characters long. All wrapping options are taken from instance " +"attributes of the :class:`TextWrapper` instance. Returns a list of output " +"lines, without final newlines. If the wrapped output has no content, the " +"returned list is empty." msgstr "" -#: ../../library/textwrap.rst:309 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph." msgstr "" -#: ../../library/textwrap.rst:285 msgid "..." msgstr "" -#: ../../library/textwrap.rst:285 msgid "placeholder" msgstr "" diff --git a/library/threading.po b/library/threading.po index 45d3865..78478c9 100644 --- a/library/threading.po +++ b/library/threading.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Rafael Fontenelle , 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,36 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/threading.rst:2 msgid ":mod:`!threading` --- Thread-based parallelism" msgstr "" -#: ../../library/threading.rst:7 msgid "**Source code:** :source:`Lib/threading.py`" msgstr "" -#: ../../library/threading.rst:11 msgid "" "This module constructs higher-level threading interfaces on top of the lower " "level :mod:`_thread` module." msgstr "" -#: ../../library/threading.rst:194 ../../library/threading.rst:293 -#: ../../library/threading.rst:678 ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/threading.rst:17 msgid "Introduction" -msgstr "Bevezetés" +msgstr "" -#: ../../library/threading.rst:19 msgid "" "The :mod:`!threading` module provides a way to run multiple `threads " "`_ (smaller units of a " @@ -62,14 +50,12 @@ msgid "" "time is spent waiting for external resources." msgstr "" -#: ../../library/threading.rst:27 msgid "" "A typical use case for :mod:`!threading` includes managing a pool of worker " "threads that can process multiple tasks concurrently. Here's a basic " "example of creating and starting threads using :class:`~threading.Thread`::" msgstr "" -#: ../../library/threading.rst:31 msgid "" "import threading\n" "import time\n" @@ -102,11 +88,9 @@ msgid "" " t.join()" msgstr "" -#: ../../library/threading.rst:60 msgid "This module used to be optional, it is now always available." msgstr "" -#: ../../library/threading.rst:65 msgid "" ":class:`concurrent.futures.ThreadPoolExecutor` offers a higher level " "interface to push tasks to a background thread without blocking execution of " @@ -114,42 +98,35 @@ msgid "" "needed." msgstr "" -#: ../../library/threading.rst:69 msgid "" ":mod:`queue` provides a thread-safe interface for exchanging data between " "running threads." msgstr "" -#: ../../library/threading.rst:72 msgid "" ":mod:`asyncio` offers an alternative approach to achieving task level " "concurrency without requiring the use of multiple operating system threads." msgstr "" -#: ../../library/threading.rst:77 msgid "" "In the Python 2.x series, this module contained ``camelCase`` names for some " "methods and functions. These are deprecated as of Python 3.10, but they are " "still supported for compatibility with Python 2.5 and lower." msgstr "" -#: ../../library/threading.rst:84 msgid "" "In CPython, due to the :term:`Global Interpreter Lock `, only one thread can execute Python code at once (even though certain " "performance-oriented libraries might overcome this limitation). If you want " "your application to make better use of the computational resources of multi-" -"core machines, you are advised to use :mod:`multiprocessing` " -"or :class:`concurrent.futures.ProcessPoolExecutor`. However, threading is " -"still an appropriate model if you want to run multiple I/O-bound tasks " -"simultaneously." +"core machines, you are advised to use :mod:`multiprocessing` or :class:" +"`concurrent.futures.ProcessPoolExecutor`. However, threading is still an " +"appropriate model if you want to run multiple I/O-bound tasks simultaneously." msgstr "" -#: ../../library/threading.rst:95 msgid "GIL and performance considerations" msgstr "" -#: ../../library/threading.rst:97 msgid "" "Unlike the :mod:`multiprocessing` module, which uses separate processes to " "bypass the :term:`global interpreter lock` (GIL), the threading module " @@ -160,32 +137,26 @@ msgid "" "concurrency in many scenarios." msgstr "" -#: ../../library/threading.rst:105 msgid "" "As of Python 3.13, :term:`free-threaded ` builds can disable " "the GIL, enabling true parallel execution of threads, but this feature is " "not available by default (see :pep:`703`)." msgstr "" -#: ../../library/threading.rst:112 msgid "Reference" msgstr "" -#: ../../library/threading.rst:114 msgid "This module defines the following functions:" msgstr "" -#: ../../library/threading.rst:119 msgid "" "Return the number of :class:`Thread` objects currently alive. The returned " "count is equal to the length of the list returned by :func:`.enumerate`." msgstr "" -#: ../../library/threading.rst:122 msgid "The function ``activeCount`` is a deprecated alias for this function." msgstr "" -#: ../../library/threading.rst:127 msgid "" "Return the current :class:`Thread` object, corresponding to the caller's " "thread of control. If the caller's thread of control was not created " @@ -193,78 +164,63 @@ msgid "" "functionality is returned." msgstr "" -#: ../../library/threading.rst:132 msgid "The function ``currentThread`` is a deprecated alias for this function." msgstr "" -#: ../../library/threading.rst:137 msgid "Handle uncaught exception raised by :func:`Thread.run`." msgstr "" -#: ../../library/threading.rst:139 msgid "The *args* argument has the following attributes:" msgstr "" -#: ../../library/threading.rst:141 msgid "*exc_type*: Exception type." msgstr "" -#: ../../library/threading.rst:142 msgid "*exc_value*: Exception value, can be ``None``." msgstr "" -#: ../../library/threading.rst:143 msgid "*exc_traceback*: Exception traceback, can be ``None``." msgstr "" -#: ../../library/threading.rst:144 msgid "*thread*: Thread which raised the exception, can be ``None``." msgstr "" -#: ../../library/threading.rst:146 msgid "" "If *exc_type* is :exc:`SystemExit`, the exception is silently ignored. " "Otherwise, the exception is printed out on :data:`sys.stderr`." msgstr "" -#: ../../library/threading.rst:149 msgid "" "If this function raises an exception, :func:`sys.excepthook` is called to " "handle it." msgstr "" -#: ../../library/threading.rst:152 msgid "" ":func:`threading.excepthook` can be overridden to control how uncaught " "exceptions raised by :func:`Thread.run` are handled." msgstr "" -#: ../../library/threading.rst:155 msgid "" "Storing *exc_value* using a custom hook can create a reference cycle. It " "should be cleared explicitly to break the reference cycle when the exception " "is no longer needed." msgstr "" -#: ../../library/threading.rst:159 msgid "" "Storing *thread* using a custom hook can resurrect it if it is set to an " "object which is being finalized. Avoid storing *thread* after the custom " "hook completes to avoid resurrecting objects." msgstr "" -#: ../../library/threading.rst:164 msgid ":func:`sys.excepthook` handles uncaught exceptions." msgstr "" -#: ../../library/threading.rst:170 msgid "" "Holds the original value of :func:`threading.excepthook`. It is saved so " "that the original value can be restored in case they happen to get replaced " "with broken or alternative objects." msgstr "" -#: ../../library/threading.rst:178 msgid "" "Return the 'thread identifier' of the current thread. This is a nonzero " "integer. Its value has no direct meaning; it is intended as a magic cookie " @@ -273,7 +229,6 @@ msgid "" "created." msgstr "" -#: ../../library/threading.rst:189 msgid "" "Return the native integral Thread ID of the current thread assigned by the " "kernel. This is a non-negative integer. Its value may be used to uniquely " @@ -281,80 +236,68 @@ msgid "" "after which the value may be recycled by the OS)." msgstr "" -#: ../../library/threading.rst:198 msgid "Added support for GNU/kFreeBSD." msgstr "" -#: ../../library/threading.rst:204 msgid "" "Return a list of all :class:`Thread` objects currently active. The list " -"includes daemonic threads and dummy thread objects created " -"by :func:`current_thread`. It excludes terminated threads and threads that " -"have not yet been started. However, the main thread is always part of the " -"result, even when terminated." +"includes daemonic threads and dummy thread objects created by :func:" +"`current_thread`. It excludes terminated threads and threads that have not " +"yet been started. However, the main thread is always part of the result, " +"even when terminated." msgstr "" -#: ../../library/threading.rst:213 msgid "" "Return the main :class:`Thread` object. In normal conditions, the main " "thread is the thread from which the Python interpreter was started." msgstr "" -#: ../../library/threading.rst:224 msgid "" "Set a trace function for all threads started from the :mod:`!threading` " "module. The *func* will be passed to :func:`sys.settrace` for each thread, " "before its :meth:`~Thread.run` method is called." msgstr "" -#: ../../library/threading.rst:230 msgid "" "Set a trace function for all threads started from the :mod:`!threading` " "module and all Python threads that are currently executing." msgstr "" -#: ../../library/threading.rst:233 msgid "" "The *func* will be passed to :func:`sys.settrace` for each thread, before " "its :meth:`~Thread.run` method is called." msgstr "" -#: ../../library/threading.rst:244 msgid "Get the trace function as set by :func:`settrace`." msgstr "" -#: ../../library/threading.rst:253 msgid "" "Set a profile function for all threads started from the :mod:`!threading` " "module. The *func* will be passed to :func:`sys.setprofile` for each " "thread, before its :meth:`~Thread.run` method is called." msgstr "" -#: ../../library/threading.rst:259 msgid "" "Set a profile function for all threads started from the :mod:`!threading` " "module and all Python threads that are currently executing." msgstr "" -#: ../../library/threading.rst:262 msgid "" "The *func* will be passed to :func:`sys.setprofile` for each thread, before " "its :meth:`~Thread.run` method is called." msgstr "" -#: ../../library/threading.rst:271 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" -#: ../../library/threading.rst:278 msgid "" "Return the thread stack size used when creating new threads. The optional " "*size* argument specifies the stack size to be used for subsequently created " "threads, and must be 0 (use platform or configured default) or a positive " "integer value of at least 32,768 (32 KiB). If *size* is not specified, 0 is " -"used. If changing the thread stack size is unsupported, " -"a :exc:`RuntimeError` is raised. If the specified stack size is invalid, " -"a :exc:`ValueError` is raised and the stack size is unmodified. 32 KiB is " +"used. If changing the thread stack size is unsupported, a :exc:" +"`RuntimeError` is raised. If the specified stack size is invalid, a :exc:" +"`ValueError` is raised and the stack size is unmodified. 32 KiB is " "currently the minimum supported stack size value to guarantee sufficient " "stack space for the interpreter itself. Note that some platforms may have " "particular restrictions on values for the stack size, such as requiring a " @@ -365,29 +308,24 @@ msgid "" "information)." msgstr "" -#: ../../library/threading.rst:295 msgid "Unix platforms with POSIX threads support." msgstr "" -#: ../../library/threading.rst:298 msgid "This module also defines the following constant:" msgstr "" -#: ../../library/threading.rst:302 msgid "" "The maximum value allowed for the *timeout* parameter of blocking functions " "(:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition.wait`, etc.). " -"Specifying a timeout greater than this value will raise " -"an :exc:`OverflowError`." +"Specifying a timeout greater than this value will raise an :exc:" +"`OverflowError`." msgstr "" -#: ../../library/threading.rst:310 msgid "" "This module defines a number of classes, which are detailed in the sections " "below." msgstr "" -#: ../../library/threading.rst:313 msgid "" "The design of this module is loosely based on Java's threading model. " "However, where Java makes locks and condition variables basic behavior of " @@ -398,22 +336,18 @@ msgid "" "Thread class, when implemented, are mapped to module-level functions." msgstr "" -#: ../../library/threading.rst:321 msgid "All of the methods described below are executed atomically." msgstr "" -#: ../../library/threading.rst:325 msgid "Thread-local data" msgstr "" -#: ../../library/threading.rst:327 msgid "" "Thread-local data is data whose values are thread specific. If you have data " "that you want to be local to a thread, create a :class:`local` object and " "use its attributes::" msgstr "" -#: ../../library/threading.rst:331 msgid "" ">>> mydata = local()\n" ">>> mydata.number = 42\n" @@ -421,11 +355,9 @@ msgid "" "42" msgstr "" -#: ../../library/threading.rst:336 msgid "You can also access the :class:`local`-object's dictionary::" msgstr "" -#: ../../library/threading.rst:338 msgid "" ">>> mydata.__dict__\n" "{'number': 42}\n" @@ -435,11 +367,9 @@ msgid "" "[]" msgstr "" -#: ../../library/threading.rst:345 msgid "If we access the data in a different thread::" msgstr "" -#: ../../library/threading.rst:347 msgid "" ">>> log = []\n" ">>> def f():\n" @@ -456,34 +386,29 @@ msgid "" "[[], 11]" msgstr "" -#: ../../library/threading.rst:361 msgid "" "we get different data. Furthermore, changes made in the other thread don't " "affect data seen in this thread::" msgstr "" -#: ../../library/threading.rst:364 msgid "" ">>> mydata.number\n" "42" msgstr "" -#: ../../library/threading.rst:367 msgid "" -"Of course, values you get from a :class:`local` object, including " -"their :attr:`~object.__dict__` attribute, are for whatever thread was " -"current at the time the attribute was read. For that reason, you generally " -"don't want to save these values across threads, as they apply only to the " -"thread they came from." +"Of course, values you get from a :class:`local` object, including their :" +"attr:`~object.__dict__` attribute, are for whatever thread was current at " +"the time the attribute was read. For that reason, you generally don't want " +"to save these values across threads, as they apply only to the thread they " +"came from." msgstr "" -#: ../../library/threading.rst:373 msgid "" -"You can create custom :class:`local` objects by subclassing " -"the :class:`local` class::" +"You can create custom :class:`local` objects by subclassing the :class:" +"`local` class::" msgstr "" -#: ../../library/threading.rst:376 msgid "" ">>> class MyLocal(local):\n" "... number = 2\n" @@ -493,7 +418,6 @@ msgid "" "... return self.number ** 2" msgstr "" -#: ../../library/threading.rst:383 msgid "" "This can be useful to support default values, methods and initialization. " "Note that if you define an :py:meth:`~object.__init__` method, it will be " @@ -501,50 +425,40 @@ msgid "" "This is necessary to initialize each thread's dictionary." msgstr "" -#: ../../library/threading.rst:389 msgid "Now if we create a :class:`local` object::" msgstr "" -#: ../../library/threading.rst:391 msgid ">>> mydata = MyLocal(color='red')" msgstr "" -#: ../../library/threading.rst:393 msgid "we have a default number::" msgstr "" -#: ../../library/threading.rst:395 msgid "" ">>> mydata.number\n" "2" msgstr "" -#: ../../library/threading.rst:398 msgid "an initial color::" msgstr "" -#: ../../library/threading.rst:400 msgid "" ">>> mydata.color\n" "'red'\n" ">>> del mydata.color" msgstr "" -#: ../../library/threading.rst:404 msgid "And a method that operates on the data::" msgstr "" -#: ../../library/threading.rst:406 msgid "" ">>> mydata.squared()\n" "4" msgstr "" -#: ../../library/threading.rst:409 msgid "As before, we can access the data in a separate thread::" msgstr "" -#: ../../library/threading.rst:411 msgid "" ">>> log = []\n" ">>> thread = threading.Thread(target=f)\n" @@ -554,11 +468,9 @@ msgid "" "[[('color', 'red')], 11]" msgstr "" -#: ../../library/threading.rst:418 msgid "without affecting this thread's data::" msgstr "" -#: ../../library/threading.rst:420 msgid "" ">>> mydata.number\n" "2\n" @@ -568,13 +480,11 @@ msgid "" "AttributeError: 'MyLocal' object has no attribute 'color'" msgstr "" -#: ../../library/threading.rst:427 msgid "" "Note that subclasses can define :term:`__slots__`, but they are not thread " "local. They are shared across threads::" msgstr "" -#: ../../library/threading.rst:430 msgid "" ">>> class MyLocal(local):\n" "... __slots__ = 'number'\n" @@ -584,36 +494,29 @@ msgid "" ">>> mydata.color = 'red'" msgstr "" -#: ../../library/threading.rst:437 msgid "So, the separate thread::" msgstr "" -#: ../../library/threading.rst:439 msgid "" ">>> thread = threading.Thread(target=f)\n" ">>> thread.start()\n" ">>> thread.join()" msgstr "" -#: ../../library/threading.rst:443 msgid "affects what we see::" msgstr "" -#: ../../library/threading.rst:445 msgid "" ">>> mydata.number\n" "11" msgstr "" -#: ../../library/threading.rst:451 msgid "A class that represents thread-local data." msgstr "" -#: ../../library/threading.rst:457 msgid "Thread objects" msgstr "" -#: ../../library/threading.rst:459 msgid "" "The :class:`Thread` class represents an activity that is run in a separate " "thread of control. There are two ways to specify the activity: by passing a " @@ -623,42 +526,36 @@ msgid "" "``__init__()`` and :meth:`~Thread.run` methods of this class." msgstr "" -#: ../../library/threading.rst:466 msgid "" "Once a thread object is created, its activity must be started by calling the " "thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " "method in a separate thread of control." msgstr "" -#: ../../library/threading.rst:470 msgid "" "Once the thread's activity is started, the thread is considered 'alive'. It " "stops being alive when its :meth:`~Thread.run` method terminates -- either " -"normally, or by raising an unhandled exception. " -"The :meth:`~Thread.is_alive` method tests whether the thread is alive." +"normally, or by raising an unhandled exception. The :meth:`~Thread." +"is_alive` method tests whether the thread is alive." msgstr "" -#: ../../library/threading.rst:475 msgid "" "Other threads can call a thread's :meth:`~Thread.join` method. This blocks " "the calling thread until the thread whose :meth:`~Thread.join` method is " "called is terminated." msgstr "" -#: ../../library/threading.rst:479 msgid "" "A thread has a name. The name can be passed to the constructor, and read or " "changed through the :attr:`~Thread.name` attribute." msgstr "" -#: ../../library/threading.rst:482 msgid "" -"If the :meth:`~Thread.run` method raises an " -"exception, :func:`threading.excepthook` is called to handle it. By " -"default, :func:`threading.excepthook` ignores silently :exc:`SystemExit`." +"If the :meth:`~Thread.run` method raises an exception, :func:`threading." +"excepthook` is called to handle it. By default, :func:`threading.excepthook` " +"ignores silently :exc:`SystemExit`." msgstr "" -#: ../../library/threading.rst:486 msgid "" "A thread can be flagged as a \"daemon thread\". The significance of this " "flag is that the entire Python program exits when only daemon threads are " @@ -667,7 +564,6 @@ msgid "" "constructor argument." msgstr "" -#: ../../library/threading.rst:493 msgid "" "Daemon threads are abruptly stopped at shutdown. Their resources (such as " "open files, database transactions, etc.) may not be released properly. If " @@ -675,13 +571,11 @@ msgid "" "suitable signalling mechanism such as an :class:`Event`." msgstr "" -#: ../../library/threading.rst:498 msgid "" "There is a \"main thread\" object; this corresponds to the initial thread of " "control in the Python program. It is not a daemon thread." msgstr "" -#: ../../library/threading.rst:501 msgid "" "There is the possibility that \"dummy thread objects\" are created. These " "are thread objects corresponding to \"alien threads\", which are threads of " @@ -692,25 +586,21 @@ msgid "" "threads." msgstr "" -#: ../../library/threading.rst:512 msgid "" "This constructor should always be called with keyword arguments. Arguments " "are:" msgstr "" -#: ../../library/threading.rst:515 msgid "" "*group* should be ``None``; reserved for future extension when a :class:`!" "ThreadGroup` class is implemented." msgstr "" -#: ../../library/threading.rst:518 msgid "" "*target* is the callable object to be invoked by the :meth:`run` method. " "Defaults to ``None``, meaning nothing is called." msgstr "" -#: ../../library/threading.rst:521 msgid "" "*name* is the thread name. By default, a unique name is constructed of the " "form \"Thread-*N*\" where *N* is a small decimal number, or \"Thread-*N* " @@ -718,90 +608,75 @@ msgid "" "is specified." msgstr "" -#: ../../library/threading.rst:526 msgid "" "*args* is a list or tuple of arguments for the target invocation. Defaults " "to ``()``." msgstr "" -#: ../../library/threading.rst:528 msgid "" "*kwargs* is a dictionary of keyword arguments for the target invocation. " "Defaults to ``{}``." msgstr "" -#: ../../library/threading.rst:531 msgid "" "If not ``None``, *daemon* explicitly sets whether the thread is daemonic. If " "``None`` (the default), the daemonic property is inherited from the current " "thread." msgstr "" -#: ../../library/threading.rst:535 msgid "" "*context* is the :class:`~contextvars.Context` value to use when starting " -"the thread. The default value is ``None`` which indicates that " -"the :data:`sys.flags.thread_inherit_context` flag controls the behaviour. " -"If the flag is true, threads will start with a copy of the context of the " -"caller of :meth:`~Thread.start`. If false, they will start with an empty " -"context. To explicitly start with an empty context, pass a new instance " -"of :class:`~contextvars.Context()`. To explicitly start with a copy of the " -"current context, pass the value from :func:`~contextvars.copy_context`. The " -"flag defaults true on free-threaded builds and false otherwise." +"the thread. The default value is ``None`` which indicates that the :data:" +"`sys.flags.thread_inherit_context` flag controls the behaviour. If the flag " +"is true, threads will start with a copy of the context of the caller of :" +"meth:`~Thread.start`. If false, they will start with an empty context. To " +"explicitly start with an empty context, pass a new instance of :class:" +"`~contextvars.Context()`. To explicitly start with a copy of the current " +"context, pass the value from :func:`~contextvars.copy_context`. The flag " +"defaults true on free-threaded builds and false otherwise." msgstr "" -#: ../../library/threading.rst:545 msgid "" "If the subclass overrides the constructor, it must make sure to invoke the " "base class constructor (``Thread.__init__()``) before doing anything else to " "the thread." msgstr "" -#: ../../library/threading.rst:549 msgid "Added the *daemon* parameter." msgstr "" -#: ../../library/threading.rst:552 msgid "Use the *target* name if *name* argument is omitted." msgstr "" -#: ../../library/threading.rst:555 msgid "Added the *context* parameter." msgstr "" -#: ../../library/threading.rst:560 msgid "Start the thread's activity." msgstr "" -#: ../../library/threading.rst:562 msgid "" "It must be called at most once per thread object. It arranges for the " "object's :meth:`~Thread.run` method to be invoked in a separate thread of " "control." msgstr "" -#: ../../library/threading.rst:566 msgid "" "This method will raise a :exc:`RuntimeError` if called more than once on the " "same thread object." msgstr "" -#: ../../library/threading.rst:569 msgid "" -"If supported, set the operating system thread name " -"to :attr:`threading.Thread.name`. The name can be truncated depending on the " -"operating system thread name limits." +"If supported, set the operating system thread name to :attr:`threading." +"Thread.name`. The name can be truncated depending on the operating system " +"thread name limits." msgstr "" -#: ../../library/threading.rst:573 msgid "Set the operating system thread name." msgstr "" -#: ../../library/threading.rst:578 msgid "Method representing the thread's activity." msgstr "" -#: ../../library/threading.rst:580 msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the " @@ -809,17 +684,14 @@ msgid "" "the *args* and *kwargs* arguments, respectively." msgstr "" -#: ../../library/threading.rst:585 msgid "" -"Using list or tuple as the *args* argument which passed to " -"the :class:`Thread` could achieve the same effect." +"Using list or tuple as the *args* argument which passed to the :class:" +"`Thread` could achieve the same effect." msgstr "" -#: ../../library/threading.rst:588 msgid "Example::" msgstr "" -#: ../../library/threading.rst:590 msgid "" ">>> from threading import Thread\n" ">>> t = Thread(target=print, args=[1])\n" @@ -830,7 +702,6 @@ msgid "" "1" msgstr "" -#: ../../library/threading.rst:602 msgid "" "Wait until the thread terminates. This blocks the calling thread until the " "thread whose :meth:`~Thread.join` method is called terminates -- either " @@ -838,27 +709,23 @@ msgid "" "occurs." msgstr "" -#: ../../library/threading.rst:607 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds (or " "fractions thereof). As :meth:`~Thread.join` always returns ``None``, you " "must call :meth:`~Thread.is_alive` after :meth:`~Thread.join` to decide " -"whether a timeout happened -- if the thread is still alive, " -"the :meth:`~Thread.join` call timed out." +"whether a timeout happened -- if the thread is still alive, the :meth:" +"`~Thread.join` call timed out." msgstr "" -#: ../../library/threading.rst:614 msgid "" "When the *timeout* argument is not present or ``None``, the operation will " "block until the thread terminates." msgstr "" -#: ../../library/threading.rst:617 msgid "A thread can be joined many times." msgstr "" -#: ../../library/threading.rst:619 msgid "" ":meth:`~Thread.join` raises a :exc:`RuntimeError` if an attempt is made to " "join the current thread as that would cause a deadlock. It is also an error " @@ -866,25 +733,21 @@ msgid "" "do so raise the same exception." msgstr "" -#: ../../library/threading.rst:624 msgid "" -"If an attempt is made to join a running daemonic thread in late stages " -"of :term:`Python finalization ` :meth:`!join` raises " -"a :exc:`PythonFinalizationError`." +"If an attempt is made to join a running daemonic thread in late stages of :" +"term:`Python finalization ` :meth:`!join` raises a :" +"exc:`PythonFinalizationError`." msgstr "" -#: ../../library/threading.rst:630 msgid "May raise :exc:`PythonFinalizationError`." msgstr "" -#: ../../library/threading.rst:634 msgid "" "A string used for identification purposes only. It has no semantics. " "Multiple threads may be given the same name. The initial name is set by the " "constructor." msgstr "" -#: ../../library/threading.rst:638 msgid "" "On some platforms, the thread name is set at the operating system level when " "the thread starts, so that it is visible in task managers. This name may be " @@ -892,20 +755,17 @@ msgid "" "or 63 bytes on macOS)." msgstr "" -#: ../../library/threading.rst:643 msgid "" "Changes to *name* are only reflected at the OS level when the currently " "running thread is renamed. (Setting the *name* attribute of a different " "thread only updates the Python Thread object.)" msgstr "" -#: ../../library/threading.rst:650 msgid "" "Deprecated getter/setter API for :attr:`~Thread.name`; use it directly as a " "property instead." msgstr "" -#: ../../library/threading.rst:657 msgid "" "The 'thread identifier' of this thread or ``None`` if the thread has not " "been started. This is a nonzero integer. See the :func:`get_ident` " @@ -914,7 +774,6 @@ msgid "" "thread has exited." msgstr "" -#: ../../library/threading.rst:665 msgid "" "The Thread ID (``TID``) of this thread, as assigned by the OS (kernel). This " "is a non-negative integer, or ``None`` if the thread has not been started. " @@ -923,118 +782,100 @@ msgid "" "after which the value may be recycled by the OS)." msgstr "" -#: ../../library/threading.rst:674 msgid "" "Similar to Process IDs, Thread IDs are only valid (guaranteed unique system-" "wide) from the time the thread is created until the thread has been " "terminated." msgstr "" -#: ../../library/threading.rst:684 msgid "Return whether the thread is alive." msgstr "" -#: ../../library/threading.rst:686 msgid "" "This method returns ``True`` just before the :meth:`~Thread.run` method " "starts until just after the :meth:`~Thread.run` method terminates. The " "module function :func:`.enumerate` returns a list of all alive threads." msgstr "" -#: ../../library/threading.rst:692 msgid "" "A boolean value indicating whether this thread is a daemon thread (``True``) " "or not (``False``). This must be set before :meth:`~Thread.start` is " "called, otherwise :exc:`RuntimeError` is raised. Its initial value is " "inherited from the creating thread; the main thread is not a daemon thread " -"and therefore all threads created in the main thread default " -"to :attr:`~Thread.daemon` = ``False``." +"and therefore all threads created in the main thread default to :attr:" +"`~Thread.daemon` = ``False``." msgstr "" -#: ../../library/threading.rst:699 msgid "" "The entire Python program exits when no alive non-daemon threads are left." msgstr "" -#: ../../library/threading.rst:704 msgid "" "Deprecated getter/setter API for :attr:`~Thread.daemon`; use it directly as " "a property instead." msgstr "" -#: ../../library/threading.rst:713 msgid "Lock objects" msgstr "" -#: ../../library/threading.rst:715 msgid "" "A primitive lock is a synchronization primitive that is not owned by a " "particular thread when locked. In Python, it is currently the lowest level " -"synchronization primitive available, implemented directly by " -"the :mod:`_thread` extension module." +"synchronization primitive available, implemented directly by the :mod:" +"`_thread` extension module." msgstr "" -#: ../../library/threading.rst:720 msgid "" "A primitive lock is in one of two states, \"locked\" or \"unlocked\". It is " -"created in the unlocked state. It has two basic " -"methods, :meth:`~Lock.acquire` and :meth:`~Lock.release`. When the state is " -"unlocked, :meth:`~Lock.acquire` changes the state to locked and returns " -"immediately. When the state is locked, :meth:`~Lock.acquire` blocks until a " -"call to :meth:`~Lock.release` in another thread changes it to unlocked, then " -"the :meth:`~Lock.acquire` call resets it to locked and returns. " -"The :meth:`~Lock.release` method should only be called in the locked state; " -"it changes the state to unlocked and returns immediately. If an attempt is " -"made to release an unlocked lock, a :exc:`RuntimeError` will be raised." -msgstr "" - -#: ../../library/threading.rst:731 +"created in the unlocked state. It has two basic methods, :meth:`~Lock." +"acquire` and :meth:`~Lock.release`. When the state is unlocked, :meth:" +"`~Lock.acquire` changes the state to locked and returns immediately. When " +"the state is locked, :meth:`~Lock.acquire` blocks until a call to :meth:" +"`~Lock.release` in another thread changes it to unlocked, then the :meth:" +"`~Lock.acquire` call resets it to locked and returns. The :meth:`~Lock." +"release` method should only be called in the locked state; it changes the " +"state to unlocked and returns immediately. If an attempt is made to release " +"an unlocked lock, a :exc:`RuntimeError` will be raised." +msgstr "" + msgid "Locks also support the :ref:`context management protocol `." msgstr "" -#: ../../library/threading.rst:733 msgid "" "When more than one thread is blocked in :meth:`~Lock.acquire` waiting for " -"the state to turn to unlocked, only one thread proceeds when " -"a :meth:`~Lock.release` call resets the state to unlocked; which one of the " -"waiting threads proceeds is not defined, and may vary across implementations." +"the state to turn to unlocked, only one thread proceeds when a :meth:`~Lock." +"release` call resets the state to unlocked; which one of the waiting threads " +"proceeds is not defined, and may vary across implementations." msgstr "" -#: ../../library/threading.rst:738 msgid "All methods are executed atomically." msgstr "" -#: ../../library/threading.rst:743 msgid "" "The class implementing primitive lock objects. Once a thread has acquired a " "lock, subsequent attempts to acquire it block, until it is released; any " "thread may release it." msgstr "" -#: ../../library/threading.rst:747 msgid "" "``Lock`` is now a class. In earlier Pythons, ``Lock`` was a factory function " "which returned an instance of the underlying private lock type." msgstr "" -#: ../../library/threading.rst:755 ../../library/threading.rst:849 msgid "Acquire a lock, blocking or non-blocking." msgstr "" -#: ../../library/threading.rst:757 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default), " "block until the lock is unlocked, then set it to locked and return ``True``." msgstr "" -#: ../../library/threading.rst:760 msgid "" "When invoked with the *blocking* argument set to ``False``, do not block. If " "a call with *blocking* set to ``True`` would block, return ``False`` " "immediately; otherwise, set the lock to locked and return ``True``." msgstr "" -#: ../../library/threading.rst:764 msgid "" "When invoked with the floating-point *timeout* argument set to a positive " "value, block for at most the number of seconds specified by *timeout* and as " @@ -1043,57 +884,45 @@ msgid "" "*blocking* is ``False``." msgstr "" -#: ../../library/threading.rst:770 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not (for example if the *timeout* expired)." msgstr "" -#: ../../library/threading.rst:773 ../../library/threading.rst:887 -#: ../../library/threading.rst:1147 msgid "The *timeout* parameter is new." msgstr "" -#: ../../library/threading.rst:776 msgid "" "Lock acquisition can now be interrupted by signals on POSIX if the " "underlying threading implementation supports it." msgstr "" -#: ../../library/threading.rst:780 msgid "Lock acquisition can now be interrupted by signals on Windows." msgstr "" -#: ../../library/threading.rst:786 msgid "" "Release a lock. This can be called from any thread, not only the thread " "which has acquired the lock." msgstr "" -#: ../../library/threading.rst:789 msgid "" "When the lock is locked, reset it to unlocked, and return. If any other " "threads are blocked waiting for the lock to become unlocked, allow exactly " "one of them to proceed." msgstr "" -#: ../../library/threading.rst:793 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: ../../library/threading.rst:795 ../../library/threading.rst:903 msgid "There is no return value." msgstr "" -#: ../../library/threading.rst:799 msgid "Return ``True`` if the lock is acquired." msgstr "" -#: ../../library/threading.rst:806 msgid "RLock objects" msgstr "" -#: ../../library/threading.rst:808 msgid "" "A reentrant lock is a synchronization primitive that may be acquired " "multiple times by the same thread. Internally, it uses the concepts of " @@ -1102,21 +931,18 @@ msgid "" "lock; in the unlocked state, no thread owns it." msgstr "" -#: ../../library/threading.rst:814 msgid "" -"Threads call a lock's :meth:`~RLock.acquire` method to lock it, and " -"its :meth:`~Lock.release` method to unlock it." +"Threads call a lock's :meth:`~RLock.acquire` method to lock it, and its :" +"meth:`~Lock.release` method to unlock it." msgstr "" -#: ../../library/threading.rst:819 msgid "" "Reentrant locks support the :ref:`context management protocol `, " -"so it is recommended to use :keyword:`with` instead of manually " -"calling :meth:`~RLock.acquire` and :meth:`~RLock.release` to handle " -"acquiring and releasing the lock for a block of code." +"so it is recommended to use :keyword:`with` instead of manually calling :" +"meth:`~RLock.acquire` and :meth:`~RLock.release` to handle acquiring and " +"releasing the lock for a block of code." msgstr "" -#: ../../library/threading.rst:824 msgid "" "RLock's :meth:`~RLock.acquire`/:meth:`~RLock.release` call pairs may be " "nested, unlike Lock's :meth:`~Lock.acquire`/:meth:`~Lock.release`. Only the " @@ -1125,7 +951,6 @@ msgid "" "in :meth:`~RLock.acquire` to proceed." msgstr "" -#: ../../library/threading.rst:830 msgid "" ":meth:`~RLock.acquire`/:meth:`~RLock.release` must be used in pairs: each " "acquire must have a release in the thread that has acquired the lock. " @@ -1133,7 +958,6 @@ msgid "" "deadlock." msgstr "" -#: ../../library/threading.rst:837 msgid "" "This class implements reentrant lock objects. A reentrant lock must be " "released by the thread that acquired it. Once a thread has acquired a " @@ -1141,39 +965,32 @@ msgid "" "thread must release it once for each time it has acquired it." msgstr "" -#: ../../library/threading.rst:842 msgid "" "Note that ``RLock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete RLock class that is supported " "by the platform." msgstr "" -#: ../../library/threading.rst:853 msgid ":ref:`Using RLock as a context manager `" msgstr "" -#: ../../library/threading.rst:854 msgid "" "Recommended over manual :meth:`!acquire` and :meth:`release` calls whenever " "practical." msgstr "" -#: ../../library/threading.rst:858 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default):" msgstr "" -#: ../../library/threading.rst:860 ../../library/threading.rst:872 msgid "If no thread owns the lock, acquire the lock and return immediately." msgstr "" -#: ../../library/threading.rst:862 msgid "" "If another thread owns the lock, block until we are able to acquire lock, or " "*timeout*, if set to a positive float value." msgstr "" -#: ../../library/threading.rst:865 msgid "" "If the same thread owns the lock, acquire the lock again, and return " "immediately. This is the difference between :class:`Lock` and :class:`!" @@ -1181,35 +998,29 @@ msgid "" "until the lock can be acquired." msgstr "" -#: ../../library/threading.rst:870 msgid "When invoked with the *blocking* argument set to ``False``:" msgstr "" -#: ../../library/threading.rst:874 msgid "If another thread owns the lock, return immediately." msgstr "" -#: ../../library/threading.rst:876 msgid "" "If the same thread owns the lock, acquire the lock again and return " "immediately." msgstr "" -#: ../../library/threading.rst:879 msgid "" "In all cases, if the thread was able to acquire the lock, return ``True``. " "If the thread was unable to acquire the lock (i.e. if not blocking or the " "timeout was reached) return ``False``." msgstr "" -#: ../../library/threading.rst:883 msgid "" "If called multiple times, failing to call :meth:`~RLock.release` as many " "times may lead to deadlock. Consider using :class:`!RLock` as a context " "manager rather than calling acquire/release directly." msgstr "" -#: ../../library/threading.rst:893 msgid "" "Release a lock, decrementing the recursion level. If after the decrement it " "is zero, reset the lock to unlocked (not owned by any thread), and if any " @@ -1218,22 +1029,18 @@ msgid "" "is still nonzero, the lock remains locked and owned by the calling thread." msgstr "" -#: ../../library/threading.rst:899 msgid "" -"Only call this method when the calling thread owns the lock. " -"A :exc:`RuntimeError` is raised if this method is called when the lock is " -"not acquired." +"Only call this method when the calling thread owns the lock. A :exc:" +"`RuntimeError` is raised if this method is called when the lock is not " +"acquired." msgstr "" -#: ../../library/threading.rst:908 ../../library/threading.rst:1007 msgid "Return a boolean indicating whether this object is locked right now." msgstr "" -#: ../../library/threading.rst:916 msgid "Condition objects" msgstr "" -#: ../../library/threading.rst:918 msgid "" "A condition variable is always associated with some kind of lock; this can " "be passed in or one will be created by default. Passing one in is useful " @@ -1241,33 +1048,28 @@ msgid "" "of the condition object: you don't have to track it separately." msgstr "" -#: ../../library/threading.rst:923 msgid "" "A condition variable obeys the :ref:`context management protocol `: using the ``with`` statement acquires the associated lock for the " -"duration of the enclosed block. The :meth:`~Condition.acquire` " -"and :meth:`~Condition.release` methods also call the corresponding methods " -"of the associated lock." +"duration of the enclosed block. The :meth:`~Condition.acquire` and :meth:" +"`~Condition.release` methods also call the corresponding methods of the " +"associated lock." msgstr "" -#: ../../library/threading.rst:929 msgid "" -"Other methods must be called with the associated lock held. " -"The :meth:`~Condition.wait` method releases the lock, and then blocks until " -"another thread awakens it by calling :meth:`~Condition.notify` " -"or :meth:`~Condition.notify_all`. Once awakened, :meth:`~Condition.wait` re-" -"acquires the lock and returns. It is also possible to specify a timeout." +"Other methods must be called with the associated lock held. The :meth:" +"`~Condition.wait` method releases the lock, and then blocks until another " +"thread awakens it by calling :meth:`~Condition.notify` or :meth:`~Condition." +"notify_all`. Once awakened, :meth:`~Condition.wait` re-acquires the lock " +"and returns. It is also possible to specify a timeout." msgstr "" -#: ../../library/threading.rst:935 msgid "" "The :meth:`~Condition.notify` method wakes up one of the threads waiting for " -"the condition variable, if any are waiting. " -"The :meth:`~Condition.notify_all` method wakes up all threads waiting for " -"the condition variable." +"the condition variable, if any are waiting. The :meth:`~Condition." +"notify_all` method wakes up all threads waiting for the condition variable." msgstr "" -#: ../../library/threading.rst:939 msgid "" "Note: the :meth:`~Condition.notify` and :meth:`~Condition.notify_all` " "methods don't release the lock; this means that the thread or threads " @@ -1276,19 +1078,17 @@ msgid "" "or :meth:`~Condition.notify_all` finally relinquishes ownership of the lock." msgstr "" -#: ../../library/threading.rst:945 msgid "" "The typical programming style using condition variables uses the lock to " "synchronize access to some shared state; threads that are interested in a " "particular change of state call :meth:`~Condition.wait` repeatedly until " -"they see the desired state, while threads that modify the state " -"call :meth:`~Condition.notify` or :meth:`~Condition.notify_all` when they " -"change the state in such a way that it could possibly be a desired state for " -"one of the waiters. For example, the following code is a generic producer-" -"consumer situation with unlimited buffer capacity::" +"they see the desired state, while threads that modify the state call :meth:" +"`~Condition.notify` or :meth:`~Condition.notify_all` when they change the " +"state in such a way that it could possibly be a desired state for one of the " +"waiters. For example, the following code is a generic producer-consumer " +"situation with unlimited buffer capacity::" msgstr "" -#: ../../library/threading.rst:954 msgid "" "# Consume one item\n" "with cv:\n" @@ -1302,17 +1102,15 @@ msgid "" " cv.notify()" msgstr "" -#: ../../library/threading.rst:965 msgid "" "The ``while`` loop checking for the application's condition is necessary " "because :meth:`~Condition.wait` can return after an arbitrary long time, and " "the condition which prompted the :meth:`~Condition.notify` call may no " -"longer hold true. This is inherent to multi-threaded programming. " -"The :meth:`~Condition.wait_for` method can be used to automate the condition " +"longer hold true. This is inherent to multi-threaded programming. The :" +"meth:`~Condition.wait_for` method can be used to automate the condition " "checking, and eases the computation of timeouts::" msgstr "" -#: ../../library/threading.rst:972 msgid "" "# Consume an item\n" "with cv:\n" @@ -1320,54 +1118,44 @@ msgid "" " get_an_available_item()" msgstr "" -#: ../../library/threading.rst:977 msgid "" -"To choose between :meth:`~Condition.notify` " -"and :meth:`~Condition.notify_all`, consider whether one state change can be " -"interesting for only one or several waiting threads. E.g. in a typical " -"producer-consumer situation, adding one item to the buffer only needs to " -"wake up one consumer thread." +"To choose between :meth:`~Condition.notify` and :meth:`~Condition." +"notify_all`, consider whether one state change can be interesting for only " +"one or several waiting threads. E.g. in a typical producer-consumer " +"situation, adding one item to the buffer only needs to wake up one consumer " +"thread." msgstr "" -#: ../../library/threading.rst:985 msgid "" "This class implements condition variable objects. A condition variable " "allows one or more threads to wait until they are notified by another thread." msgstr "" -#: ../../library/threading.rst:988 msgid "" "If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " "or :class:`RLock` object, and it is used as the underlying lock. Otherwise, " "a new :class:`RLock` object is created and used as the underlying lock." msgstr "" -#: ../../library/threading.rst:992 ../../library/threading.rst:1122 -#: ../../library/threading.rst:1168 ../../library/threading.rst:1220 -#: ../../library/threading.rst:1288 msgid "changed from a factory function to a class." msgstr "" -#: ../../library/threading.rst:997 msgid "" "Acquire the underlying lock. This method calls the corresponding method on " "the underlying lock; the return value is whatever that method returns." msgstr "" -#: ../../library/threading.rst:1002 msgid "" "Release the underlying lock. This method calls the corresponding method on " "the underlying lock; there is no return value." msgstr "" -#: ../../library/threading.rst:1013 msgid "" "Wait until notified or until a timeout occurs. If the calling thread has not " "acquired the lock when this method is called, a :exc:`RuntimeError` is " "raised." msgstr "" -#: ../../library/threading.rst:1017 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call for the same " @@ -1375,41 +1163,35 @@ msgid "" "Once awakened or timed out, it re-acquires the lock and returns." msgstr "" -#: ../../library/threading.rst:1022 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds (or " "fractions thereof)." msgstr "" -#: ../../library/threading.rst:1026 msgid "" -"When the underlying lock is an :class:`RLock`, it is not released using " -"its :meth:`release` method, since this may not actually unlock the lock when " -"it was acquired multiple times recursively. Instead, an internal interface " -"of the :class:`RLock` class is used, which really unlocks it even when it " -"has been recursively acquired several times. Another internal interface is " -"then used to restore the recursion level when the lock is reacquired." +"When the underlying lock is an :class:`RLock`, it is not released using its :" +"meth:`release` method, since this may not actually unlock the lock when it " +"was acquired multiple times recursively. Instead, an internal interface of " +"the :class:`RLock` class is used, which really unlocks it even when it has " +"been recursively acquired several times. Another internal interface is then " +"used to restore the recursion level when the lock is reacquired." msgstr "" -#: ../../library/threading.rst:1034 msgid "" "The return value is ``True`` unless a given *timeout* expired, in which case " "it is ``False``." msgstr "" -#: ../../library/threading.rst:1037 ../../library/threading.rst:1253 msgid "Previously, the method always returned ``None``." msgstr "" -#: ../../library/threading.rst:1042 msgid "" "Wait until a condition evaluates to true. *predicate* should be a callable " "which result will be interpreted as a boolean value. A *timeout* may be " "provided giving the maximum time to wait." msgstr "" -#: ../../library/threading.rst:1046 msgid "" "This utility method may call :meth:`wait` repeatedly until the predicate is " "satisfied, or until a timeout occurs. The return value is the last return " @@ -1417,39 +1199,33 @@ msgid "" "out." msgstr "" -#: ../../library/threading.rst:1051 msgid "" "Ignoring the timeout feature, calling this method is roughly equivalent to " "writing::" msgstr "" -#: ../../library/threading.rst:1054 msgid "" "while not predicate():\n" " cv.wait()" msgstr "" -#: ../../library/threading.rst:1057 msgid "" "Therefore, the same rules apply as with :meth:`wait`: The lock must be held " "when called and is re-acquired on return. The predicate is evaluated with " "the lock held." msgstr "" -#: ../../library/threading.rst:1065 msgid "" "By default, wake up one thread waiting on this condition, if any. If the " -"calling thread has not acquired the lock when this method is called, " -"a :exc:`RuntimeError` is raised." +"calling thread has not acquired the lock when this method is called, a :exc:" +"`RuntimeError` is raised." msgstr "" -#: ../../library/threading.rst:1069 msgid "" "This method wakes up at most *n* of the threads waiting for the condition " "variable; it is a no-op if no threads are waiting." msgstr "" -#: ../../library/threading.rst:1072 msgid "" "The current implementation wakes up exactly *n* threads, if at least *n* " "threads are waiting. However, it's not safe to rely on this behavior. A " @@ -1457,52 +1233,44 @@ msgid "" "threads." msgstr "" -#: ../../library/threading.rst:1077 msgid "" "Note: an awakened thread does not actually return from its :meth:`wait` call " "until it can reacquire the lock. Since :meth:`notify` does not release the " "lock, its caller should." msgstr "" -#: ../../library/threading.rst:1083 msgid "" -"Wake up all threads waiting on this condition. This method acts " -"like :meth:`notify`, but wakes up all waiting threads instead of one. If the " -"calling thread has not acquired the lock when this method is called, " -"a :exc:`RuntimeError` is raised." +"Wake up all threads waiting on this condition. This method acts like :meth:" +"`notify`, but wakes up all waiting threads instead of one. If the calling " +"thread has not acquired the lock when this method is called, a :exc:" +"`RuntimeError` is raised." msgstr "" -#: ../../library/threading.rst:1088 msgid "The method ``notifyAll`` is a deprecated alias for this method." msgstr "" -#: ../../library/threading.rst:1094 msgid "Semaphore objects" msgstr "" -#: ../../library/threading.rst:1096 msgid "" "This is one of the oldest synchronization primitives in the history of " "computer science, invented by the early Dutch computer scientist Edsger W. " -"Dijkstra (he used the names ``P()`` and ``V()`` instead " -"of :meth:`~Semaphore.acquire` and :meth:`~Semaphore.release`)." +"Dijkstra (he used the names ``P()`` and ``V()`` instead of :meth:`~Semaphore." +"acquire` and :meth:`~Semaphore.release`)." msgstr "" -#: ../../library/threading.rst:1101 msgid "" -"A semaphore manages an internal counter which is decremented by " -"each :meth:`~Semaphore.acquire` call and incremented by " -"each :meth:`~Semaphore.release` call. The counter can never go below zero; " -"when :meth:`~Semaphore.acquire` finds that it is zero, it blocks, waiting " -"until some other thread calls :meth:`~Semaphore.release`." +"A semaphore manages an internal counter which is decremented by each :meth:" +"`~Semaphore.acquire` call and incremented by each :meth:`~Semaphore.release` " +"call. The counter can never go below zero; when :meth:`~Semaphore.acquire` " +"finds that it is zero, it blocks, waiting until some other thread calls :" +"meth:`~Semaphore.release`." msgstr "" -#: ../../library/threading.rst:1107 msgid "" "Semaphores also support the :ref:`context management protocol `." msgstr "" -#: ../../library/threading.rst:1112 msgid "" "This class implements semaphore objects. A semaphore manages an atomic " "counter representing the number of :meth:`release` calls minus the number " @@ -1511,75 +1279,63 @@ msgid "" "If not given, *value* defaults to 1." msgstr "" -#: ../../library/threading.rst:1118 msgid "" "The optional argument gives the initial *value* for the internal counter; it " "defaults to ``1``. If the *value* given is less than 0, :exc:`ValueError` is " "raised." msgstr "" -#: ../../library/threading.rst:1127 msgid "Acquire a semaphore." msgstr "" -#: ../../library/threading.rst:1129 msgid "When invoked without arguments:" msgstr "" -#: ../../library/threading.rst:1131 msgid "" "If the internal counter is larger than zero on entry, decrement it by one " "and return ``True`` immediately." msgstr "" -#: ../../library/threading.rst:1133 msgid "" -"If the internal counter is zero on entry, block until awoken by a call " -"to :meth:`~Semaphore.release`. Once awoken (and the counter is greater than " -"0), decrement the counter by 1 and return ``True``. Exactly one thread will " -"be awoken by each call to :meth:`~Semaphore.release`. The order in which " +"If the internal counter is zero on entry, block until awoken by a call to :" +"meth:`~Semaphore.release`. Once awoken (and the counter is greater than 0), " +"decrement the counter by 1 and return ``True``. Exactly one thread will be " +"awoken by each call to :meth:`~Semaphore.release`. The order in which " "threads are awoken should not be relied on." msgstr "" -#: ../../library/threading.rst:1139 msgid "" "When invoked with *blocking* set to ``False``, do not block. If a call " "without an argument would block, return ``False`` immediately; otherwise, do " "the same thing as when called without arguments, and return ``True``." msgstr "" -#: ../../library/threading.rst:1143 msgid "" "When invoked with a *timeout* other than ``None``, it will block for at most " "*timeout* seconds. If acquire does not complete successfully in that " "interval, return ``False``. Return ``True`` otherwise." msgstr "" -#: ../../library/threading.rst:1152 msgid "" "Release a semaphore, incrementing the internal counter by *n*. When it was " "zero on entry and other threads are waiting for it to become larger than " "zero again, wake up *n* of those threads." msgstr "" -#: ../../library/threading.rst:1156 msgid "Added the *n* parameter to release multiple waiting threads at once." msgstr "" -#: ../../library/threading.rst:1162 msgid "" "Class implementing bounded semaphore objects. A bounded semaphore checks to " -"make sure its current value doesn't exceed its initial value. If it " -"does, :exc:`ValueError` is raised. In most situations semaphores are used to " -"guard resources with limited capacity. If the semaphore is released too " -"many times it's a sign of a bug. If not given, *value* defaults to 1." +"make sure its current value doesn't exceed its initial value. If it does, :" +"exc:`ValueError` is raised. In most situations semaphores are used to guard " +"resources with limited capacity. If the semaphore is released too many " +"times it's a sign of a bug. If not given, *value* defaults to 1." msgstr "" -#: ../../library/threading.rst:1175 msgid ":class:`Semaphore` example" msgstr "" -#: ../../library/threading.rst:1177 msgid "" "Semaphores are often used to guard resources with limited capacity, for " "example, a database server. In any situation where the size of the resource " @@ -1587,20 +1343,17 @@ msgid "" "threads, your main thread would initialize the semaphore::" msgstr "" -#: ../../library/threading.rst:1182 msgid "" "maxconnections = 5\n" "# ...\n" "pool_sema = BoundedSemaphore(value=maxconnections)" msgstr "" -#: ../../library/threading.rst:1186 msgid "" "Once spawned, worker threads call the semaphore's acquire and release " "methods when they need to connect to the server::" msgstr "" -#: ../../library/threading.rst:1189 msgid "" "with pool_sema:\n" " conn = connectdb()\n" @@ -1610,62 +1363,51 @@ msgid "" " conn.close()" msgstr "" -#: ../../library/threading.rst:1196 msgid "" "The use of a bounded semaphore reduces the chance that a programming error " "which causes the semaphore to be released more than it's acquired will go " "undetected." msgstr "" -#: ../../library/threading.rst:1203 msgid "Event objects" msgstr "" -#: ../../library/threading.rst:1205 msgid "" "This is one of the simplest mechanisms for communication between threads: " "one thread signals an event and other threads wait for it." msgstr "" -#: ../../library/threading.rst:1208 msgid "" -"An event object manages an internal flag that can be set to true with " -"the :meth:`~Event.set` method and reset to false with " -"the :meth:`~Event.clear` method. The :meth:`~Event.wait` method blocks " -"until the flag is true." +"An event object manages an internal flag that can be set to true with the :" +"meth:`~Event.set` method and reset to false with the :meth:`~Event.clear` " +"method. The :meth:`~Event.wait` method blocks until the flag is true." msgstr "" -#: ../../library/threading.rst:1215 msgid "" "Class implementing event objects. An event manages a flag that can be set " -"to true with the :meth:`~Event.set` method and reset to false with " -"the :meth:`clear` method. The :meth:`wait` method blocks until the flag is " -"true. The flag is initially false." +"to true with the :meth:`~Event.set` method and reset to false with the :meth:" +"`clear` method. The :meth:`wait` method blocks until the flag is true. The " +"flag is initially false." msgstr "" -#: ../../library/threading.rst:1225 msgid "Return ``True`` if and only if the internal flag is true." msgstr "" -#: ../../library/threading.rst:1227 msgid "The method ``isSet`` is a deprecated alias for this method." msgstr "" -#: ../../library/threading.rst:1231 msgid "" "Set the internal flag to true. All threads waiting for it to become true are " "awakened. Threads that call :meth:`wait` once the flag is true will not " "block at all." msgstr "" -#: ../../library/threading.rst:1237 msgid "" "Reset the internal flag to false. Subsequently, threads calling :meth:`wait` " "will block until :meth:`.set` is called to set the internal flag to true " "again." msgstr "" -#: ../../library/threading.rst:1243 msgid "" "Block as long as the internal flag is false and the timeout, if given, has " "not expired. The return value represents the reason that this blocking " @@ -1674,26 +1416,22 @@ msgid "" "become true within the given wait time." msgstr "" -#: ../../library/threading.rst:1249 msgid "" "When the timeout argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds, or " "fractions thereof." msgstr "" -#: ../../library/threading.rst:1260 msgid "Timer objects" msgstr "" -#: ../../library/threading.rst:1262 msgid "" "This class represents an action that should be run only after a certain " -"amount of time has passed --- a timer. :class:`Timer` is a subclass " -"of :class:`Thread` and as such also functions as an example of creating " -"custom threads." +"amount of time has passed --- a timer. :class:`Timer` is a subclass of :" +"class:`Thread` and as such also functions as an example of creating custom " +"threads." msgstr "" -#: ../../library/threading.rst:1266 msgid "" "Timers are started, as with threads, by calling their :meth:`Timer.start " "` method. The timer can be stopped (before its action has " @@ -1702,11 +1440,9 @@ msgid "" "interval specified by the user." msgstr "" -#: ../../library/threading.rst:1272 msgid "For example::" msgstr "" -#: ../../library/threading.rst:1274 msgid "" "def hello():\n" " print(\"hello, world\")\n" @@ -1715,7 +1451,6 @@ msgid "" "t.start() # after 30 seconds, \"hello, world\" will be printed" msgstr "" -#: ../../library/threading.rst:1283 msgid "" "Create a timer that will run *function* with arguments *args* and keyword " "arguments *kwargs*, after *interval* seconds have passed. If *args* is " @@ -1723,17 +1458,14 @@ msgid "" "``None`` (the default) then an empty dict will be used." msgstr "" -#: ../../library/threading.rst:1293 msgid "" "Stop the timer, and cancel the execution of the timer's action. This will " "only work if the timer is still in its waiting stage." msgstr "" -#: ../../library/threading.rst:1298 msgid "Barrier objects" msgstr "" -#: ../../library/threading.rst:1302 msgid "" "This class provides a simple synchronization primitive for use by a fixed " "number of threads that need to wait for each other. Each of the threads " @@ -1742,18 +1474,15 @@ msgid "" "calls. At this point, the threads are released simultaneously." msgstr "" -#: ../../library/threading.rst:1308 msgid "" "The barrier can be reused any number of times for the same number of threads." msgstr "" -#: ../../library/threading.rst:1310 msgid "" "As an example, here is a simple way to synchronize a client and server " "thread::" msgstr "" -#: ../../library/threading.rst:1312 msgid "" "b = Barrier(2, timeout=5)\n" "\n" @@ -1771,7 +1500,6 @@ msgid "" " process_client_connection(connection)" msgstr "" -#: ../../library/threading.rst:1330 msgid "" "Create a barrier object for *parties* number of threads. An *action*, when " "provided, is a callable to be called by one of the threads when they are " @@ -1779,7 +1507,6 @@ msgid "" "the :meth:`wait` method." msgstr "" -#: ../../library/threading.rst:1337 msgid "" "Pass the barrier. When all the threads party to the barrier have called " "this function, they are all released simultaneously. If a *timeout* is " @@ -1787,14 +1514,12 @@ msgid "" "constructor." msgstr "" -#: ../../library/threading.rst:1342 msgid "" "The return value is an integer in the range 0 to *parties* -- 1, different " "for each thread. This can be used to select a thread to do some special " "housekeeping, e.g.::" msgstr "" -#: ../../library/threading.rst:1346 msgid "" "i = barrier.wait()\n" "if i == 0:\n" @@ -1802,37 +1527,31 @@ msgid "" " print(\"passed the barrier\")" msgstr "" -#: ../../library/threading.rst:1351 msgid "" "If an *action* was provided to the constructor, one of the threads will have " "called it prior to being released. Should this call raise an error, the " "barrier is put into the broken state." msgstr "" -#: ../../library/threading.rst:1355 msgid "If the call times out, the barrier is put into the broken state." msgstr "" -#: ../../library/threading.rst:1357 msgid "" "This method may raise a :class:`BrokenBarrierError` exception if the barrier " "is broken or reset while a thread is waiting." msgstr "" -#: ../../library/threading.rst:1362 msgid "" "Return the barrier to the default, empty state. Any threads waiting on it " "will receive the :class:`BrokenBarrierError` exception." msgstr "" -#: ../../library/threading.rst:1365 msgid "" "Note that using this function may require some external synchronization if " "there are other threads whose state is unknown. If a barrier is broken it " "may be better to just leave it and create a new one." msgstr "" -#: ../../library/threading.rst:1371 msgid "" "Put the barrier into a broken state. This causes any active or future calls " "to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for " @@ -1840,36 +1559,29 @@ msgid "" "application." msgstr "" -#: ../../library/threading.rst:1376 msgid "" "It may be preferable to simply create the barrier with a sensible *timeout* " "value to automatically guard against one of the threads going awry." msgstr "" -#: ../../library/threading.rst:1382 msgid "The number of threads required to pass the barrier." msgstr "" -#: ../../library/threading.rst:1386 msgid "The number of threads currently waiting in the barrier." msgstr "" -#: ../../library/threading.rst:1390 msgid "A boolean that is ``True`` if the barrier is in the broken state." msgstr "" -#: ../../library/threading.rst:1395 msgid "" -"This exception, a subclass of :exc:`RuntimeError`, is raised when " -"the :class:`Barrier` object is reset or broken." +"This exception, a subclass of :exc:`RuntimeError`, is raised when the :class:" +"`Barrier` object is reset or broken." msgstr "" -#: ../../library/threading.rst:1402 msgid "" "Using locks, conditions, and semaphores in the :keyword:`!with` statement" msgstr "" -#: ../../library/threading.rst:1404 msgid "" "All of the objects provided by this module that have ``acquire`` and " "``release`` methods can be used as context managers for a :keyword:`with` " @@ -1878,17 +1590,14 @@ msgid "" "following snippet::" msgstr "" -#: ../../library/threading.rst:1410 msgid "" "with some_lock:\n" " # do something..." msgstr "" -#: ../../library/threading.rst:1413 msgid "is equivalent to::" msgstr "" -#: ../../library/threading.rst:1415 msgid "" "some_lock.acquire()\n" "try:\n" @@ -1897,21 +1606,17 @@ msgid "" " some_lock.release()" msgstr "" -#: ../../library/threading.rst:1421 msgid "" -"Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:`Semaphore`, " -"and :class:`BoundedSemaphore` objects may be used as :keyword:`with` " -"statement context managers." +"Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:" +"`Semaphore`, and :class:`BoundedSemaphore` objects may be used as :keyword:" +"`with` statement context managers." msgstr "" -#: ../../library/threading.rst:222 ../../library/threading.rst:240 msgid "trace function" msgstr "" -#: ../../library/threading.rst:240 msgid "debugger" msgstr "" -#: ../../library/threading.rst:251 ../../library/threading.rst:269 msgid "profile function" msgstr "" diff --git a/library/time.po b/library/time.po index c2d927b..70181f5 100644 --- a/library/time.po +++ b/library/time.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,17 +22,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/time.rst:2 msgid ":mod:`!time` --- Time access and conversions" msgstr "" -#: ../../library/time.rst:9 msgid "" "This module provides various time-related functions. For related " "functionality, see also the :mod:`datetime` and :mod:`calendar` modules." msgstr "" -#: ../../library/time.rst:12 msgid "" "Although this module is always available, not all functions are available on " "all platforms. Most of the functions defined in this module call platform C " @@ -42,31 +38,26 @@ msgid "" "varies among platforms." msgstr "" -#: ../../library/time.rst:18 msgid "An explanation of some terminology and conventions is in order." msgstr "" -#: ../../library/time.rst:24 msgid "" "The :dfn:`epoch` is the point where the time starts, the return value of " "``time.gmtime(0)``. It is January 1, 1970, 00:00:00 (UTC) on all platforms." msgstr "" -#: ../../library/time.rst:31 msgid "" "The term :dfn:`seconds since the epoch` refers to the total number of " "elapsed seconds since the epoch, typically excluding `leap seconds`_. Leap " "seconds are excluded from this total on all POSIX-compliant platforms." msgstr "" -#: ../../library/time.rst:38 msgid "" "The functions in this module may not handle dates and times before the " "epoch_ or far in the future. The cut-off point in the future is determined " "by the C library; for 32-bit systems, it is typically in 2038." msgstr "" -#: ../../library/time.rst:45 msgid "" "Function :func:`strptime` can parse 2-digit years when given ``%y`` format " "code. When 2-digit years are parsed, they are converted according to the " @@ -74,7 +65,6 @@ msgid "" "values 0--68 are mapped to 2000--2068." msgstr "" -#: ../../library/time.rst:55 msgid "" "UTC is `Coordinated Universal Time`_ and superseded `Greenwich Mean Time`_ " "or GMT as the basis of international timekeeping. The acronym UTC is not a " @@ -82,7 +72,6 @@ msgid "" "standards such as UT0, UT1, and UT2." msgstr "" -#: ../../library/time.rst:65 msgid "" "DST is Daylight Saving Time, an adjustment of the timezone by (usually) one " "hour during part of the year. DST rules are magic (determined by local law) " @@ -91,198 +80,151 @@ msgid "" "only source of True Wisdom in this respect." msgstr "" -#: ../../library/time.rst:71 msgid "" "The precision of the various real-time functions may be less than suggested " "by the units in which their value or argument is expressed. E.g. on most " "Unix systems, the clock \"ticks\" only 50 or 100 times a second." msgstr "" -#: ../../library/time.rst:75 msgid "" "On the other hand, the precision of :func:`.time` and :func:`sleep` is " "better than their Unix equivalents: times are expressed as floating-point " -"numbers, :func:`.time` returns the most accurate time available (using " -"Unix :c:func:`!gettimeofday` where available), and :func:`sleep` will accept " -"a time with a nonzero fraction (Unix :c:func:`!select` is used to implement " +"numbers, :func:`.time` returns the most accurate time available (using Unix :" +"c:func:`!gettimeofday` where available), and :func:`sleep` will accept a " +"time with a nonzero fraction (Unix :c:func:`!select` is used to implement " "this, where available)." msgstr "" -#: ../../library/time.rst:82 msgid "" -"The time value as returned by :func:`gmtime`, :func:`localtime`, " -"and :func:`strptime`, and accepted by :func:`asctime`, :func:`mktime` " -"and :func:`strftime`, is a sequence of 9 integers. The return values " -"of :func:`gmtime`, :func:`localtime`, and :func:`strptime` also offer " -"attribute names for individual fields." +"The time value as returned by :func:`gmtime`, :func:`localtime`, and :func:" +"`strptime`, and accepted by :func:`asctime`, :func:`mktime` and :func:" +"`strftime`, is a sequence of 9 integers. The return values of :func:" +"`gmtime`, :func:`localtime`, and :func:`strptime` also offer attribute names " +"for individual fields." msgstr "" -#: ../../library/time.rst:88 msgid "See :class:`struct_time` for a description of these objects." msgstr "" -#: ../../library/time.rst:90 msgid "" -"The :class:`struct_time` type was extended to provide " -"the :attr:`~struct_time.tm_gmtoff` and :attr:`~struct_time.tm_zone` " -"attributes when platform supports corresponding ``struct tm`` members." +"The :class:`struct_time` type was extended to provide the :attr:" +"`~struct_time.tm_gmtoff` and :attr:`~struct_time.tm_zone` attributes when " +"platform supports corresponding ``struct tm`` members." msgstr "" -#: ../../library/time.rst:96 msgid "" -"The :class:`struct_time` attributes :attr:`~struct_time.tm_gmtoff` " -"and :attr:`~struct_time.tm_zone` are now available on all platforms." +"The :class:`struct_time` attributes :attr:`~struct_time.tm_gmtoff` and :attr:" +"`~struct_time.tm_zone` are now available on all platforms." msgstr "" -#: ../../library/time.rst:101 msgid "Use the following functions to convert between time representations:" msgstr "" -#: ../../library/time.rst:104 msgid "From" msgstr "" -#: ../../library/time.rst:104 msgid "To" msgstr "" -#: ../../library/time.rst:104 msgid "Use" msgstr "" -#: ../../library/time.rst:29 ../../library/time.rst:106 -#: ../../library/time.rst:109 ../../library/time.rst:112 -#: ../../library/time.rst:115 msgid "seconds since the epoch" msgstr "" -#: ../../library/time.rst:106 ../../library/time.rst:112 msgid ":class:`struct_time` in UTC" msgstr "" -#: ../../library/time.rst:106 msgid ":func:`gmtime`" msgstr "" -#: ../../library/time.rst:109 ../../library/time.rst:115 msgid ":class:`struct_time` in local time" msgstr "" -#: ../../library/time.rst:109 msgid ":func:`localtime`" msgstr "" -#: ../../library/time.rst:112 msgid ":func:`calendar.timegm`" msgstr "" -#: ../../library/time.rst:115 msgid ":func:`mktime`" msgstr "" -#: ../../library/time.rst:123 msgid "Functions" msgstr "" -#: ../../library/time.rst:127 msgid "" -"Convert a tuple or :class:`struct_time` representing a time as returned " -"by :func:`gmtime` or :func:`localtime` to a string of the following form: " -"``'Sun Jun 20 23:21:05 1993'``. The day field is two characters long and is " -"space padded if the day is a single digit, e.g.: ``'Wed Jun 9 04:26:40 " -"1993'``." +"Convert a tuple or :class:`struct_time` representing a time as returned by :" +"func:`gmtime` or :func:`localtime` to a string of the following form: ``'Sun " +"Jun 20 23:21:05 1993'``. The day field is two characters long and is space " +"padded if the day is a single digit, e.g.: ``'Wed Jun 9 04:26:40 1993'``." msgstr "" -#: ../../library/time.rst:133 msgid "" "If *t* is not provided, the current time as returned by :func:`localtime` is " "used. Locale information is not used by :func:`asctime`." msgstr "" -#: ../../library/time.rst:138 msgid "" "Unlike the C function of the same name, :func:`asctime` does not add a " "trailing newline." msgstr "" -#: ../../library/time.rst:143 msgid "" "Return the *clk_id* of the thread-specific CPU-time clock for the specified " "*thread_id*." msgstr "" -#: ../../library/time.rst:145 msgid "" "Use :func:`threading.get_ident` or the :attr:`~threading.Thread.ident` " "attribute of :class:`threading.Thread` objects to get a suitable value for " "*thread_id*." msgstr "" -#: ../../library/time.rst:150 msgid "" "Passing an invalid or expired *thread_id* may result in undefined behavior, " "such as segmentation fault." msgstr "" -#: ../../library/time.rst:153 ../../library/time.rst:165 -#: ../../library/time.rst:178 ../../library/time.rst:187 -#: ../../library/time.rst:200 ../../library/time.rst:209 -#: ../../library/time.rst:754 ../../library/time.rst:778 -#: ../../library/time.rst:874 ../../library/time.rst:885 -#: ../../library/time.rst:895 ../../library/time.rst:905 -#: ../../library/time.rst:914 ../../library/time.rst:923 -#: ../../library/time.rst:932 ../../library/time.rst:943 -#: ../../library/time.rst:951 ../../library/time.rst:962 -#: ../../library/time.rst:973 ../../library/time.rst:982 -#: ../../library/time.rst:995 msgid "Availability" msgstr "" -#: ../../library/time.rst:155 msgid "" "See the man page for :manpage:`pthread_getcpuclockid(3)` for further " "information." msgstr "" -#: ../../library/time.rst:162 msgid "" "Return the resolution (precision) of the specified clock *clk_id*. Refer " "to :ref:`time-clock-id-constants` for a list of accepted values for *clk_id*." msgstr "" -#: ../../library/time.rst:172 msgid "" "Return the time of the specified clock *clk_id*. Refer to :ref:`time-clock-" "id-constants` for a list of accepted values for *clk_id*." msgstr "" -#: ../../library/time.rst:175 msgid "" -"Use :func:`clock_gettime_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`clock_gettime_ns` to avoid the precision loss caused by the :" +"class:`float` type." msgstr "" -#: ../../library/time.rst:185 msgid "Similar to :func:`clock_gettime` but return time as nanoseconds." msgstr "" -#: ../../library/time.rst:194 msgid "" -"Set the time of the specified clock *clk_id*. " -"Currently, :data:`CLOCK_REALTIME` is the only accepted value for *clk_id*." +"Set the time of the specified clock *clk_id*. Currently, :data:" +"`CLOCK_REALTIME` is the only accepted value for *clk_id*." msgstr "" -#: ../../library/time.rst:197 msgid "" -"Use :func:`clock_settime_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`clock_settime_ns` to avoid the precision loss caused by the :" +"class:`float` type." msgstr "" -#: ../../library/time.rst:207 msgid "Similar to :func:`clock_settime` but set time with nanoseconds." msgstr "" -#: ../../library/time.rst:216 msgid "" "Convert a time expressed in seconds since the epoch_ to a string of a form: " "``'Sun Jun 20 23:21:05 1993'`` representing local time. The day field is two " @@ -290,105 +232,88 @@ msgid "" "``'Wed Jun 9 04:26:40 1993'``." msgstr "" -#: ../../library/time.rst:221 msgid "" -"If *secs* is not provided or :const:`None`, the current time as returned " -"by :func:`.time` is used. ``ctime(secs)`` is equivalent to " -"``asctime(localtime(secs))``. Locale information is not used " -"by :func:`ctime`." +"If *secs* is not provided or :const:`None`, the current time as returned by :" +"func:`.time` is used. ``ctime(secs)`` is equivalent to " +"``asctime(localtime(secs))``. Locale information is not used by :func:" +"`ctime`." msgstr "" -#: ../../library/time.rst:229 msgid "" "Get information on the specified clock as a namespace object. Supported " "clock names and the corresponding functions to read their value are:" msgstr "" -#: ../../library/time.rst:233 msgid "``'monotonic'``: :func:`time.monotonic`" msgstr "" -#: ../../library/time.rst:234 msgid "``'perf_counter'``: :func:`time.perf_counter`" msgstr "" -#: ../../library/time.rst:235 msgid "``'process_time'``: :func:`time.process_time`" msgstr "" -#: ../../library/time.rst:236 msgid "``'thread_time'``: :func:`time.thread_time`" msgstr "" -#: ../../library/time.rst:237 msgid "``'time'``: :func:`time.time`" msgstr "" -#: ../../library/time.rst:239 msgid "The result has the following attributes:" msgstr "" -#: ../../library/time.rst:241 msgid "" "*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " "NTP daemon) or manually by the system administrator, ``False`` otherwise" msgstr "" -#: ../../library/time.rst:243 msgid "" "*implementation*: The name of the underlying C function used to get the " "clock value. Refer to :ref:`time-clock-id-constants` for possible values." msgstr "" -#: ../../library/time.rst:245 msgid "" "*monotonic*: ``True`` if the clock cannot go backward, ``False`` otherwise" msgstr "" -#: ../../library/time.rst:247 msgid "*resolution*: The resolution of the clock in seconds (:class:`float`)" msgstr "" -#: ../../library/time.rst:254 msgid "" -"Convert a time expressed in seconds since the epoch_ to " -"a :class:`struct_time` in UTC in which the dst flag is always zero. If " -"*secs* is not provided or :const:`None`, the current time as returned " -"by :func:`.time` is used. Fractions of a second are ignored. See above for " -"a description of the :class:`struct_time` object. " -"See :func:`calendar.timegm` for the inverse of this function." +"Convert a time expressed in seconds since the epoch_ to a :class:" +"`struct_time` in UTC in which the dst flag is always zero. If *secs* is not " +"provided or :const:`None`, the current time as returned by :func:`.time` is " +"used. Fractions of a second are ignored. See above for a description of " +"the :class:`struct_time` object. See :func:`calendar.timegm` for the inverse " +"of this function." msgstr "" -#: ../../library/time.rst:264 msgid "" "Like :func:`gmtime` but converts to local time. If *secs* is not provided " "or :const:`None`, the current time as returned by :func:`.time` is used. " "The dst flag is set to ``1`` when DST applies to the given time." msgstr "" -#: ../../library/time.rst:268 msgid "" ":func:`localtime` may raise :exc:`OverflowError`, if the timestamp is " "outside the range of values supported by the platform C :c:func:`localtime` " -"or :c:func:`gmtime` functions, and :exc:`OSError` on :c:func:`localtime` " -"or :c:func:`gmtime` failure. It's common for this to be restricted to years " +"or :c:func:`gmtime` functions, and :exc:`OSError` on :c:func:`localtime` or :" +"c:func:`gmtime` failure. It's common for this to be restricted to years " "between 1970 and 2038." msgstr "" -#: ../../library/time.rst:277 msgid "" -"This is the inverse function of :func:`localtime`. Its argument is " -"the :class:`struct_time` or full 9-tuple (since the dst flag is needed; use " +"This is the inverse function of :func:`localtime`. Its argument is the :" +"class:`struct_time` or full 9-tuple (since the dst flag is needed; use " "``-1`` as the dst flag if it is unknown) which expresses the time in *local* " -"time, not UTC. It returns a floating-point number, for compatibility " -"with :func:`.time`. If the input value cannot be represented as a valid " -"time, either :exc:`OverflowError` or :exc:`ValueError` will be raised (which " +"time, not UTC. It returns a floating-point number, for compatibility with :" +"func:`.time`. If the input value cannot be represented as a valid time, " +"either :exc:`OverflowError` or :exc:`ValueError` will be raised (which " "depends on whether the invalid value is caught by Python or the underlying C " "libraries). The earliest date for which it can generate a time is platform-" "dependent." msgstr "" -#: ../../library/time.rst:289 msgid "" "Return the value (in fractional seconds) of a monotonic clock, i.e. a clock " "that cannot go backwards. The clock is not affected by system clock " @@ -396,53 +321,42 @@ msgid "" "only the difference between the results of two calls is valid." msgstr "" -#: ../../library/time.rst:294 ../../library/time.rst:715 msgid "Clock:" msgstr "" -#: ../../library/time.rst:296 msgid "" "On Windows, call ``QueryPerformanceCounter()`` and " "``QueryPerformanceFrequency()``." msgstr "" -#: ../../library/time.rst:298 msgid "On macOS, call ``mach_absolute_time()`` and ``mach_timebase_info()``." msgstr "" -#: ../../library/time.rst:299 msgid "On HP-UX, call ``gethrtime()``." msgstr "" -#: ../../library/time.rst:300 msgid "Call ``clock_gettime(CLOCK_HIGHRES)`` if available." msgstr "" -#: ../../library/time.rst:301 msgid "Otherwise, call ``clock_gettime(CLOCK_MONOTONIC)``." msgstr "" -#: ../../library/time.rst:303 msgid "" -"Use :func:`monotonic_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`monotonic_ns` to avoid the precision loss caused by the :class:" +"`float` type." msgstr "" -#: ../../library/time.rst:308 msgid "" "The function is now always available and the clock is now the same for all " "processes." msgstr "" -#: ../../library/time.rst:312 msgid "On macOS, the clock is now the same for all processes." msgstr "" -#: ../../library/time.rst:318 msgid "Similar to :func:`monotonic`, but return time as nanoseconds." msgstr "" -#: ../../library/time.rst:327 msgid "" "Return the value (in fractional seconds) of a performance counter, i.e. a " "clock with the highest available resolution to measure a short duration. It " @@ -451,31 +365,25 @@ msgid "" "only the difference between the results of two calls is valid." msgstr "" -#: ../../library/time.rst:336 msgid "" "On CPython, use the same clock as :func:`time.monotonic` and is a monotonic " "clock, i.e. a clock that cannot go backwards." msgstr "" -#: ../../library/time.rst:339 msgid "" -"Use :func:`perf_counter_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`perf_counter_ns` to avoid the precision loss caused by the :class:" +"`float` type." msgstr "" -#: ../../library/time.rst:344 msgid "On Windows, the clock is now the same for all processes." msgstr "" -#: ../../library/time.rst:347 msgid "Use the same clock as :func:`time.monotonic`." msgstr "" -#: ../../library/time.rst:353 msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." msgstr "" -#: ../../library/time.rst:365 msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current process. It does not include time elapsed during " @@ -484,40 +392,33 @@ msgid "" "of two calls is valid." msgstr "" -#: ../../library/time.rst:371 msgid "" -"Use :func:`process_time_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`process_time_ns` to avoid the precision loss caused by the :class:" +"`float` type." msgstr "" -#: ../../library/time.rst:378 msgid "Similar to :func:`process_time` but return time as nanoseconds." msgstr "" -#: ../../library/time.rst:384 msgid "" "Suspend execution of the calling thread for the given number of seconds. The " "argument may be a floating-point number to indicate a more precise sleep " "time." msgstr "" -#: ../../library/time.rst:388 msgid "" "If the sleep is interrupted by a signal and no exception is raised by the " "signal handler, the sleep is restarted with a recomputed timeout." msgstr "" -#: ../../library/time.rst:391 msgid "" "The suspension time may be longer than requested by an arbitrary amount, " "because of the scheduling of other activity in the system." msgstr "" -#: ../../library/time.rst:395 msgid "Windows implementation" msgstr "" -#: ../../library/time.rst:396 msgid "" "On Windows, if *secs* is zero, the thread relinquishes the remainder of its " "time slice to any other thread that is ready to run. If there are no other " @@ -528,395 +429,311 @@ msgid "" "nanoseconds. If *secs* is zero, ``Sleep(0)`` is used." msgstr "" -#: ../../library/time.rst:405 msgid "Unix implementation" msgstr "" -#: ../../library/time.rst:406 msgid "Use ``clock_nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" -#: ../../library/time.rst:407 msgid "Or use ``nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" -#: ../../library/time.rst:408 msgid "Or use ``select()`` (resolution: 1 microsecond)." msgstr "" -#: ../../library/time.rst:412 msgid "" "To emulate a \"no-op\", use :keyword:`pass` instead of ``time.sleep(0)``." msgstr "" -#: ../../library/time.rst:414 msgid "" "To voluntarily relinquish the CPU, specify a real-time :ref:`scheduling " "policy ` and use :func:`os.sched_yield` instead." msgstr "" -#: ../../library/time.rst:417 msgid "" "Raises an :ref:`auditing event ` ``time.sleep`` with argument " "``secs``." msgstr "" -#: ../../library/time.rst:419 msgid "" "The function now sleeps at least *secs* even if the sleep is interrupted by " "a signal, except if the signal handler raises an exception (see :pep:`475` " "for the rationale)." msgstr "" -#: ../../library/time.rst:424 msgid "" "On Unix, the ``clock_nanosleep()`` and ``nanosleep()`` functions are now " "used if available. On Windows, a waitable timer is now used." msgstr "" -#: ../../library/time.rst:428 msgid "Raises an auditing event." msgstr "" -#: ../../library/time.rst:436 msgid "" -"Convert a tuple or :class:`struct_time` representing a time as returned " -"by :func:`gmtime` or :func:`localtime` to a string as specified by the " -"*format* argument. If *t* is not provided, the current time as returned " -"by :func:`localtime` is used. *format* must be a string. :exc:`ValueError` " -"is raised if any field in *t* is outside of the allowed range." +"Convert a tuple or :class:`struct_time` representing a time as returned by :" +"func:`gmtime` or :func:`localtime` to a string as specified by the *format* " +"argument. If *t* is not provided, the current time as returned by :func:" +"`localtime` is used. *format* must be a string. :exc:`ValueError` is " +"raised if any field in *t* is outside of the allowed range." msgstr "" -#: ../../library/time.rst:442 msgid "" "0 is a legal argument for any position in the time tuple; if it is normally " "illegal the value is forced to a correct one." msgstr "" -#: ../../library/time.rst:445 msgid "" "The following directives can be embedded in the *format* string. They are " "shown without the optional field width and precision specification, and are " "replaced by the indicated characters in the :func:`strftime` result:" msgstr "" -#: ../../library/time.rst:450 msgid "Directive" msgstr "" -#: ../../library/time.rst:450 msgid "Meaning" msgstr "Jelentés" -#: ../../library/time.rst:450 msgid "Notes" msgstr "" -#: ../../library/time.rst:452 msgid "``%a``" -msgstr "``%a``" +msgstr "" -#: ../../library/time.rst:452 msgid "Locale's abbreviated weekday name." msgstr "" -#: ../../library/time.rst:455 msgid "``%A``" -msgstr "``%A``" +msgstr "" -#: ../../library/time.rst:455 msgid "Locale's full weekday name." msgstr "" -#: ../../library/time.rst:457 msgid "``%b``" -msgstr "``%b``" +msgstr "" -#: ../../library/time.rst:457 msgid "Locale's abbreviated month name." msgstr "" -#: ../../library/time.rst:460 msgid "``%B``" -msgstr "``%B``" +msgstr "" -#: ../../library/time.rst:460 msgid "Locale's full month name." msgstr "" -#: ../../library/time.rst:462 msgid "``%c``" -msgstr "``%c``" +msgstr "" -#: ../../library/time.rst:462 msgid "Locale's appropriate date and time representation." msgstr "" -#: ../../library/time.rst:465 msgid "``%d``" -msgstr "``%d``" +msgstr "" -#: ../../library/time.rst:465 msgid "Day of the month as a decimal number [01,31]." msgstr "" -#: ../../library/time.rst:468 msgid "``%f``" -msgstr "``%f``" +msgstr "" -#: ../../library/time.rst:468 msgid "Microseconds as a decimal number" msgstr "" -#: ../../library/time.rst:469 msgid "[000000,999999]." msgstr "" -#: ../../library/time.rst:468 msgid "\\(1)" msgstr "" -#: ../../library/time.rst:472 msgid "``%H``" -msgstr "``%H``" +msgstr "" -#: ../../library/time.rst:472 msgid "Hour (24-hour clock) as a decimal number [00,23]." msgstr "" -#: ../../library/time.rst:475 msgid "``%I``" -msgstr "``%I``" +msgstr "" -#: ../../library/time.rst:475 msgid "Hour (12-hour clock) as a decimal number [01,12]." msgstr "" -#: ../../library/time.rst:478 msgid "``%j``" -msgstr "``%j``" +msgstr "" -#: ../../library/time.rst:478 msgid "Day of the year as a decimal number [001,366]." msgstr "" -#: ../../library/time.rst:481 msgid "``%m``" -msgstr "``%m``" +msgstr "" -#: ../../library/time.rst:481 msgid "Month as a decimal number [01,12]." msgstr "" -#: ../../library/time.rst:484 msgid "``%M``" -msgstr "``%M``" +msgstr "" -#: ../../library/time.rst:484 msgid "Minute as a decimal number [00,59]." msgstr "" -#: ../../library/time.rst:487 msgid "``%p``" -msgstr "``%p``" +msgstr "" -#: ../../library/time.rst:487 msgid "Locale's equivalent of either AM or PM." msgstr "" -#: ../../library/time.rst:487 msgid "\\(2)" msgstr "" -#: ../../library/time.rst:490 msgid "``%S``" -msgstr "``%S``" +msgstr "" -#: ../../library/time.rst:490 msgid "Second as a decimal number [00,61]." msgstr "" -#: ../../library/time.rst:490 msgid "\\(3)" msgstr "" -#: ../../library/time.rst:493 msgid "``%U``" -msgstr "``%U``" +msgstr "" -#: ../../library/time.rst:493 msgid "" "Week number of the year (Sunday as the first day of the week) as a decimal " "number [00,53]. All days in a new year preceding the first Sunday are " "considered to be in week 0." msgstr "" -#: ../../library/time.rst:493 ../../library/time.rst:507 msgid "\\(4)" msgstr "" -#: ../../library/time.rst:501 msgid "``%u``" -msgstr "``%u``" +msgstr "" -#: ../../library/time.rst:501 msgid "Day of the week (Monday is 1; Sunday is 7) as a decimal number [1, 7]." msgstr "" -#: ../../library/time.rst:504 msgid "``%w``" -msgstr "``%w``" +msgstr "" -#: ../../library/time.rst:504 msgid "Weekday as a decimal number [0(Sunday),6]." msgstr "" -#: ../../library/time.rst:507 msgid "``%W``" -msgstr "``%W``" +msgstr "" -#: ../../library/time.rst:507 msgid "" "Week number of the year (Monday as the first day of the week) as a decimal " "number [00,53]. All days in a new year preceding the first Monday are " "considered to be in week 0." msgstr "" -#: ../../library/time.rst:515 msgid "``%x``" -msgstr "``%x``" +msgstr "" -#: ../../library/time.rst:515 msgid "Locale's appropriate date representation." msgstr "" -#: ../../library/time.rst:518 msgid "``%X``" -msgstr "``%X``" +msgstr "" -#: ../../library/time.rst:518 msgid "Locale's appropriate time representation." msgstr "" -#: ../../library/time.rst:521 msgid "``%y``" -msgstr "``%y``" +msgstr "" -#: ../../library/time.rst:521 msgid "Year without century as a decimal number [00,99]." msgstr "" -#: ../../library/time.rst:524 msgid "``%Y``" -msgstr "``%Y``" +msgstr "" -#: ../../library/time.rst:524 msgid "Year with century as a decimal number." msgstr "" -#: ../../library/time.rst:527 msgid "``%z``" -msgstr "``%z``" +msgstr "" -#: ../../library/time.rst:527 msgid "" "Time zone offset indicating a positive or negative time difference from UTC/" "GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M " "represents decimal minute digits [-23:59, +23:59]. [1]_" msgstr "" -#: ../../library/time.rst:533 msgid "``%Z``" -msgstr "``%Z``" +msgstr "" -#: ../../library/time.rst:533 msgid "Time zone name (no characters if no time zone exists). Deprecated. [1]_" msgstr "" -#: ../../library/time.rst:536 msgid "``%G``" -msgstr "``%G``" +msgstr "" -#: ../../library/time.rst:536 msgid "" "ISO 8601 year (similar to ``%Y`` but follows the rules for the ISO 8601 " "calendar year). The year starts with the week that contains the first " "Thursday of the calendar year." msgstr "" -#: ../../library/time.rst:541 msgid "``%V``" -msgstr "``%V``" +msgstr "" -#: ../../library/time.rst:541 msgid "" "ISO 8601 week number (as a decimal number [01,53]). The first week of the " "year is the one that contains the first Thursday of the year. Weeks start on " "Monday." msgstr "" -#: ../../library/time.rst:546 msgid "``%%``" -msgstr "``%%``" +msgstr "" -#: ../../library/time.rst:546 msgid "A literal ``'%'`` character." msgstr "" -#: ../../library/time.rst:549 msgid "Notes:" msgstr "" -#: ../../library/time.rst:552 msgid "" -"The ``%f`` format directive only applies to :func:`strptime`, not " -"to :func:`strftime`. However, see also :meth:`datetime.datetime.strptime` " -"and :meth:`datetime.datetime.strftime` where the ``%f`` format " -"directive :ref:`applies to microseconds `." +"The ``%f`` format directive only applies to :func:`strptime`, not to :func:" +"`strftime`. However, see also :meth:`datetime.datetime.strptime` and :meth:" +"`datetime.datetime.strftime` where the ``%f`` format directive :ref:`applies " +"to microseconds `." msgstr "" -#: ../../library/time.rst:558 msgid "" "When used with the :func:`strptime` function, the ``%p`` directive only " "affects the output hour field if the ``%I`` directive is used to parse the " "hour." msgstr "" -#: ../../library/time.rst:564 msgid "" "The range really is ``0`` to ``61``; value ``60`` is valid in timestamps " "representing `leap seconds`_ and value ``61`` is supported for historical " "reasons." msgstr "" -#: ../../library/time.rst:569 msgid "" "When used with the :func:`strptime` function, ``%U`` and ``%W`` are only " "used in calculations when the day of the week and the year are specified." msgstr "" -#: ../../library/time.rst:572 msgid "" "Here is an example, a format for dates compatible with that specified in " "the :rfc:`2822` Internet email standard. [1]_ ::" msgstr "" -#: ../../library/time.rst:575 msgid "" ">>> from time import gmtime, strftime\n" ">>> strftime(\"%a, %d %b %Y %H:%M:%S +0000\", gmtime())\n" "'Thu, 28 Jun 2001 14:17:15 +0000'" msgstr "" -#: ../../library/time.rst:579 msgid "" "Additional directives may be supported on certain platforms, but only the " "ones listed here have a meaning standardized by ANSI C. To see the full set " -"of format codes supported on your platform, consult " -"the :manpage:`strftime(3)` documentation." +"of format codes supported on your platform, consult the :manpage:" +"`strftime(3)` documentation." msgstr "" -#: ../../library/time.rst:584 msgid "" "On some platforms, an optional field width and precision specification can " "immediately follow the initial ``'%'`` of a directive in the following " @@ -924,28 +741,24 @@ msgid "" "``%j`` where it is 3." msgstr "" -#: ../../library/time.rst:595 msgid "" "Parse a string representing a time according to a format. The return value " "is a :class:`struct_time` as returned by :func:`gmtime` or :func:`localtime`." msgstr "" -#: ../../library/time.rst:599 msgid "" -"The *format* parameter uses the same directives as those used " -"by :func:`strftime`; it defaults to ``\"%a %b %d %H:%M:%S %Y\"`` which " -"matches the formatting returned by :func:`ctime`. If *string* cannot be " -"parsed according to *format*, or if it has excess data after " -"parsing, :exc:`ValueError` is raised. The default values used to fill in any " -"missing data when more accurate values cannot be inferred are ``(1900, 1, 1, " -"0, 0, 0, 0, 1, -1)``. Both *string* and *format* must be strings." +"The *format* parameter uses the same directives as those used by :func:" +"`strftime`; it defaults to ``\"%a %b %d %H:%M:%S %Y\"`` which matches the " +"formatting returned by :func:`ctime`. If *string* cannot be parsed according " +"to *format*, or if it has excess data after parsing, :exc:`ValueError` is " +"raised. The default values used to fill in any missing data when more " +"accurate values cannot be inferred are ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``. " +"Both *string* and *format* must be strings." msgstr "" -#: ../../library/time.rst:607 msgid "For example:" msgstr "" -#: ../../library/time.rst:614 msgid "" "Support for the ``%Z`` directive is based on the values contained in " "``tzname`` and whether ``daylight`` is true. Because of this, it is " @@ -953,7 +766,6 @@ msgid "" "(and are considered to be non-daylight savings timezones)." msgstr "" -#: ../../library/time.rst:619 msgid "" "Only the directives specified in the documentation are supported. Because " "``strftime()`` is implemented per platform it can sometimes offer more " @@ -962,117 +774,90 @@ msgid "" "are not documented as supported." msgstr "" -#: ../../library/time.rst:628 msgid "" -"The type of the time value sequence returned " -"by :func:`gmtime`, :func:`localtime`, and :func:`strptime`. It is an object " -"with a :term:`named tuple` interface: values can be accessed by index and by " -"attribute name. The following values are present:" +"The type of the time value sequence returned by :func:`gmtime`, :func:" +"`localtime`, and :func:`strptime`. It is an object with a :term:`named " +"tuple` interface: values can be accessed by index and by attribute name. " +"The following values are present:" msgstr "" -#: ../../library/time.rst:635 msgid "Index" msgstr "" -#: ../../library/time.rst:636 msgid "Attribute" msgstr "" -#: ../../library/time.rst:637 msgid "Values" msgstr "" -#: ../../library/time.rst:639 msgid "0" msgstr "" -#: ../../library/time.rst:641 msgid "(for example, 1993)" msgstr "" -#: ../../library/time.rst:643 msgid "1" msgstr "1" -#: ../../library/time.rst:645 msgid "range [1, 12]" msgstr "" -#: ../../library/time.rst:647 msgid "2" msgstr "2" -#: ../../library/time.rst:649 msgid "range [1, 31]" msgstr "" -#: ../../library/time.rst:651 msgid "3" msgstr "3" -#: ../../library/time.rst:653 msgid "range [0, 23]" msgstr "" -#: ../../library/time.rst:655 msgid "4" msgstr "4" -#: ../../library/time.rst:657 msgid "range [0, 59]" msgstr "" -#: ../../library/time.rst:659 msgid "5" msgstr "" -#: ../../library/time.rst:661 msgid "range [0, 61]; see :ref:`Note (2) ` in :func:`strftime`" msgstr "" -#: ../../library/time.rst:663 msgid "6" msgstr "" -#: ../../library/time.rst:665 msgid "range [0, 6]; Monday is 0" msgstr "" -#: ../../library/time.rst:667 msgid "7" msgstr "" -#: ../../library/time.rst:669 msgid "range [1, 366]" msgstr "" -#: ../../library/time.rst:671 msgid "8" msgstr "" -#: ../../library/time.rst:673 msgid "0, 1 or -1; see below" msgstr "" -#: ../../library/time.rst:675 ../../library/time.rst:679 msgid "N/A" msgstr "" -#: ../../library/time.rst:677 msgid "abbreviation of timezone name" msgstr "" -#: ../../library/time.rst:681 msgid "offset east of UTC in seconds" msgstr "" -#: ../../library/time.rst:683 msgid "" "Note that unlike the C structure, the month value is a range of [1, 12], not " "[0, 11]." msgstr "" -#: ../../library/time.rst:686 msgid "" "In calls to :func:`mktime`, :attr:`tm_isdst` may be set to 1 when daylight " "savings time is in effect, and 0 when it is not. A value of -1 indicates " @@ -1080,23 +865,20 @@ msgid "" "filled in." msgstr "" -#: ../../library/time.rst:690 msgid "" -"When a tuple with an incorrect length is passed to a function expecting " -"a :class:`struct_time`, or having elements of the wrong type, " -"a :exc:`TypeError` is raised." +"When a tuple with an incorrect length is passed to a function expecting a :" +"class:`struct_time`, or having elements of the wrong type, a :exc:" +"`TypeError` is raised." msgstr "" -#: ../../library/time.rst:696 msgid "" "Return the time in seconds since the epoch_ as a floating-point number. The " "handling of `leap seconds`_ is platform dependent. On Windows and most Unix " "systems, the leap seconds are not counted towards the time in seconds since " -"the epoch_. This is commonly referred to as `Unix time `_." +"the epoch_. This is commonly referred to as `Unix time `_." msgstr "" -#: ../../library/time.rst:702 msgid "" "Note that even though the time is always returned as a floating-point " "number, not all systems provide time with a better precision than 1 second. " @@ -1105,47 +887,39 @@ msgid "" "between the two calls." msgstr "" -#: ../../library/time.rst:708 msgid "" "The number returned by :func:`.time` may be converted into a more common " -"time format (i.e. year, month, day, hour, etc...) in UTC by passing it " -"to :func:`gmtime` function or in local time by passing it to " -"the :func:`localtime` function. In both cases a :class:`struct_time` object " -"is returned, from which the components of the calendar date may be accessed " -"as attributes." +"time format (i.e. year, month, day, hour, etc...) in UTC by passing it to :" +"func:`gmtime` function or in local time by passing it to the :func:" +"`localtime` function. In both cases a :class:`struct_time` object is " +"returned, from which the components of the calendar date may be accessed as " +"attributes." msgstr "" -#: ../../library/time.rst:717 msgid "On Windows, call ``GetSystemTimePreciseAsFileTime()``." msgstr "" -#: ../../library/time.rst:718 msgid "Call ``clock_gettime(CLOCK_REALTIME)`` if available." msgstr "" -#: ../../library/time.rst:719 msgid "Otherwise, call ``gettimeofday()``." msgstr "" -#: ../../library/time.rst:721 msgid "" "Use :func:`time_ns` to avoid the precision loss caused by the :class:`float` " "type." msgstr "" -#: ../../library/time.rst:726 msgid "" "On Windows, calls ``GetSystemTimePreciseAsFileTime()`` instead of " "``GetSystemTimeAsFileTime()``." msgstr "" -#: ../../library/time.rst:732 msgid "" "Similar to :func:`~time.time` but returns time as an integer number of " "nanoseconds since the epoch_." msgstr "" -#: ../../library/time.rst:745 msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current thread. It does not include time elapsed during " @@ -1154,21 +928,17 @@ msgid "" "of two calls in the same thread is valid." msgstr "" -#: ../../library/time.rst:751 msgid "" -"Use :func:`thread_time_ns` to avoid the precision loss caused by " -"the :class:`float` type." +"Use :func:`thread_time_ns` to avoid the precision loss caused by the :class:" +"`float` type." msgstr "" -#: ../../library/time.rst:756 msgid "Unix systems supporting ``CLOCK_THREAD_CPUTIME_ID``." msgstr "" -#: ../../library/time.rst:763 msgid "Similar to :func:`thread_time` but return time as nanoseconds." msgstr "" -#: ../../library/time.rst:770 msgid "" "Reset the time conversion rules used by the library routines. The " "environment variable :envvar:`TZ` specifies how this is done. It will also " @@ -1179,46 +949,37 @@ msgid "" "when daylight saving time applies)." msgstr "" -#: ../../library/time.rst:782 msgid "" "Although in many cases, changing the :envvar:`TZ` environment variable may " -"affect the output of functions like :func:`localtime` without " -"calling :func:`tzset`, this behavior should not be relied on." +"affect the output of functions like :func:`localtime` without calling :func:" +"`tzset`, this behavior should not be relied on." msgstr "" -#: ../../library/time.rst:786 msgid "The :envvar:`TZ` environment variable should contain no whitespace." msgstr "" -#: ../../library/time.rst:788 msgid "" "The standard format of the :envvar:`TZ` environment variable is (whitespace " "added for clarity)::" msgstr "" -#: ../../library/time.rst:791 msgid "std offset [dst [offset [,start[/time], end[/time]]]]" msgstr "" -#: ../../library/time.rst:793 msgid "Where the components are:" msgstr "" -#: ../../library/time.rst:795 msgid "``std`` and ``dst``" msgstr "" -#: ../../library/time.rst:796 msgid "" "Three or more alphanumerics giving the timezone abbreviations. These will be " "propagated into time.tzname" msgstr "" -#: ../../library/time.rst:799 msgid "``offset``" msgstr "" -#: ../../library/time.rst:800 msgid "" "The offset has the form: ``± hh[:mm[:ss]]``. This indicates the value added " "the local time to arrive at UTC. If preceded by a '-', the timezone is east " @@ -1226,41 +987,33 @@ msgid "" "summer time is assumed to be one hour ahead of standard time." msgstr "" -#: ../../library/time.rst:805 msgid "``start[/time], end[/time]``" msgstr "" -#: ../../library/time.rst:806 msgid "" "Indicates when to change to and back from DST. The format of the start and " "end dates are one of the following:" msgstr "" -#: ../../library/time.rst:809 msgid ":samp:`J{n}`" msgstr "" -#: ../../library/time.rst:810 msgid "" "The Julian day *n* (1 <= *n* <= 365). Leap days are not counted, so in all " "years February 28 is day 59 and March 1 is day 60." msgstr "" -#: ../../library/time.rst:813 msgid ":samp:`{n}`" msgstr "" -#: ../../library/time.rst:814 msgid "" "The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and it " "is possible to refer to February 29." msgstr "" -#: ../../library/time.rst:817 msgid ":samp:`M{m}.{n}.{d}`" msgstr "" -#: ../../library/time.rst:818 msgid "" "The *d*'th day (0 <= *d* <= 6) of week *n* of month *m* of the year (1 <= " "*n* <= 5, 1 <= *m* <= 12, where week 5 means \"the last *d* day in month " @@ -1268,13 +1021,11 @@ msgid "" "first week in which the *d*'th day occurs. Day zero is a Sunday." msgstr "" -#: ../../library/time.rst:824 msgid "" "``time`` has the same format as ``offset`` except that no leading sign ('-' " "or '+') is allowed. The default, if time is not given, is 02:00:00." msgstr "" -#: ../../library/time.rst:829 msgid "" ">>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'\n" ">>> time.tzset()\n" @@ -1286,7 +1037,6 @@ msgid "" "'16:08:12 05/08/03 AEST'" msgstr "" -#: ../../library/time.rst:838 msgid "" "On many Unix systems (including \\*BSD, Linux, Solaris, and Darwin), it is " "more convenient to use the system's zoneinfo (:manpage:`tzfile(5)`) " @@ -1297,7 +1047,6 @@ msgid "" "``'Australia/Melbourne'``, ``'Egypt'`` or ``'Europe/Amsterdam'``. ::" msgstr "" -#: ../../library/time.rst:846 msgid "" ">>> os.environ['TZ'] = 'US/Eastern'\n" ">>> time.tzset()\n" @@ -1309,23 +1058,19 @@ msgid "" "('EET', 'EEST')" msgstr "" -#: ../../library/time.rst:859 msgid "Clock ID Constants" msgstr "" -#: ../../library/time.rst:861 msgid "" -"These constants are used as parameters for :func:`clock_getres` " -"and :func:`clock_gettime`." +"These constants are used as parameters for :func:`clock_getres` and :func:" +"`clock_gettime`." msgstr "" -#: ../../library/time.rst:866 msgid "" "Identical to :data:`CLOCK_MONOTONIC`, except it also includes any time that " "the system is suspended." msgstr "" -#: ../../library/time.rst:869 msgid "" "This allows applications to get a suspend-aware monotonic clock without " "having to deal with the complications of :data:`CLOCK_REALTIME`, which may " @@ -1333,87 +1078,72 @@ msgid "" "similar." msgstr "" -#: ../../library/time.rst:881 msgid "" "The Solaris OS has a ``CLOCK_HIGHRES`` timer that attempts to use an optimal " "hardware source, and may give close to nanosecond resolution. " "``CLOCK_HIGHRES`` is the nonadjustable, high-resolution clock." msgstr "" -#: ../../library/time.rst:892 msgid "" "Clock that cannot be set and represents monotonic time since some " "unspecified starting point." msgstr "" -#: ../../library/time.rst:902 msgid "" "Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-" "based time that is not subject to NTP adjustments." msgstr "" -#: ../../library/time.rst:911 msgid "" "Similar to :data:`CLOCK_MONOTONIC_RAW`, but reads a value cached by the " "system at context switch and hence has less accuracy." msgstr "" -#: ../../library/time.rst:921 ../../library/time.rst:930 msgid "High-resolution per-process timer from the CPU." msgstr "" -#: ../../library/time.rst:938 msgid "" "`International Atomic Time `_" +"division/how-utcnist-related-coordinated-universal-time-utc-international>`_" msgstr "" -#: ../../library/time.rst:940 msgid "" "The system must have a current leap second table in order for this to give " "the correct answer. PTP or NTP software can maintain a leap second table." msgstr "" -#: ../../library/time.rst:949 msgid "Thread-specific CPU-time clock." msgstr "" -#: ../../library/time.rst:958 msgid "" "Time whose absolute value is the time the system has been running and not " "suspended, providing accurate uptime measurement, both absolute and interval." msgstr "" -#: ../../library/time.rst:969 msgid "" "Clock that increments monotonically, tracking the time since an arbitrary " "point, unaffected by frequency or time adjustments and not incremented while " "the system is asleep." msgstr "" -#: ../../library/time.rst:979 msgid "" "Like :data:`CLOCK_UPTIME_RAW`, but the value is cached by the system at " "context switches and therefore has less accuracy." msgstr "" -#: ../../library/time.rst:986 msgid "" -"The following constant is the only parameter that can be sent " -"to :func:`clock_settime`." +"The following constant is the only parameter that can be sent to :func:" +"`clock_settime`." msgstr "" -#: ../../library/time.rst:992 msgid "" "Real-time clock. Setting this clock requires appropriate privileges. The " "clock is the same for all processes." msgstr "" -#: ../../library/time.rst:1003 msgid "Timezone Constants" msgstr "" -#: ../../library/time.rst:1007 msgid "" "The offset of the local DST timezone, in seconds west of UTC, if one is " "defined. This is negative if the local DST timezone is east of UTC (as in " @@ -1421,69 +1151,56 @@ msgid "" "nonzero. See note below." msgstr "" -#: ../../library/time.rst:1013 msgid "Nonzero if a DST timezone is defined. See note below." msgstr "" -#: ../../library/time.rst:1017 msgid "" "The offset of the local (non-DST) timezone, in seconds west of UTC (negative " "in most of Western Europe, positive in the US, zero in the UK). See note " "below." msgstr "" -#: ../../library/time.rst:1022 msgid "" "A tuple of two strings: the first is the name of the local non-DST timezone, " "the second is the name of the local DST timezone. If no DST timezone is " "defined, the second string should not be used. See note below." msgstr "" -#: ../../library/time.rst:1028 msgid "" -"For the above Timezone constants " -"(:data:`altzone`, :data:`daylight`, :data:`timezone`, and :data:`tzname`), " -"the value is determined by the timezone rules in effect at module load time " -"or the last time :func:`tzset` is called and may be incorrect for times in " -"the past. It is recommended to use the :attr:`~struct_time.tm_gmtoff` " -"and :attr:`~struct_time.tm_zone` results from :func:`localtime` to obtain " -"timezone information." +"For the above Timezone constants (:data:`altzone`, :data:`daylight`, :data:" +"`timezone`, and :data:`tzname`), the value is determined by the timezone " +"rules in effect at module load time or the last time :func:`tzset` is called " +"and may be incorrect for times in the past. It is recommended to use the :" +"attr:`~struct_time.tm_gmtoff` and :attr:`~struct_time.tm_zone` results from :" +"func:`localtime` to obtain timezone information." msgstr "" -#: ../../library/time.rst:1037 msgid "Module :mod:`datetime`" msgstr "" -#: ../../library/time.rst:1038 msgid "More object-oriented interface to dates and times." msgstr "" -#: ../../library/time.rst:1040 msgid "Module :mod:`locale`" msgstr "" -#: ../../library/time.rst:1041 msgid "" "Internationalization services. The locale setting affects the " -"interpretation of many format specifiers in :func:`strftime` " -"and :func:`strptime`." +"interpretation of many format specifiers in :func:`strftime` and :func:" +"`strptime`." msgstr "" -#: ../../library/time.rst:1044 msgid "Module :mod:`calendar`" msgstr "" -#: ../../library/time.rst:1045 msgid "" "General calendar-related functions. :func:`~calendar.timegm` is the " "inverse of :func:`gmtime` from this module." msgstr "" -#: ../../library/time.rst:1049 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/time.rst:1050 msgid "" "The use of ``%Z`` is now deprecated, but the ``%z`` escape that expands to " "the preferred hour/minute offset is not supported by all ANSI C libraries. " @@ -1494,51 +1211,38 @@ msgid "" "by :rfc:`2822`." msgstr "" -#: ../../library/time.rst:22 msgid "epoch" msgstr "" -#: ../../library/time.rst:36 msgid "Year 2038" msgstr "" -#: ../../library/time.rst:42 msgid "2-digit years" msgstr "" -#: ../../library/time.rst:50 msgid "UTC" msgstr "" -#: ../../library/time.rst:50 msgid "Coordinated Universal Time" msgstr "" -#: ../../library/time.rst:50 msgid "Greenwich Mean Time" msgstr "" -#: ../../library/time.rst:63 msgid "Daylight Saving Time" msgstr "" -#: ../../library/time.rst:324 ../../library/time.rst:360 -#: ../../library/time.rst:740 msgid "benchmarking" msgstr "" -#: ../../library/time.rst:360 ../../library/time.rst:740 msgid "CPU time" msgstr "" -#: ../../library/time.rst:360 ../../library/time.rst:740 msgid "processor time" msgstr "" -#: ../../library/time.rst:431 ../../library/time.rst:590 msgid "% (percent)" msgstr "" -#: ../../library/time.rst:431 ../../library/time.rst:590 msgid "datetime format" msgstr "" diff --git a/library/timeit.po b/library/timeit.po index da9e6f0..1c877d7 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/timeit.rst:2 msgid ":mod:`!timeit` --- Measure execution time of small code snippets" msgstr "" -#: ../../library/timeit.rst:7 msgid "**Source code:** :source:`Lib/timeit.py`" msgstr "" -#: ../../library/timeit.rst:15 msgid "" "This module provides a simple way to time small bits of Python code. It has " "both a :ref:`timeit-command-line-interface` as well as a :ref:`callable " @@ -35,17 +32,14 @@ msgid "" "chapter in the second edition of *Python Cookbook*, published by O'Reilly." msgstr "" -#: ../../library/timeit.rst:23 msgid "Basic Examples" msgstr "" -#: ../../library/timeit.rst:25 msgid "" "The following example shows how the :ref:`timeit-command-line-interface` can " "be used to compare three different expressions:" msgstr "" -#: ../../library/timeit.rst:28 msgid "" "$ python -m timeit \"'-'.join(str(n) for n in range(100))\"\n" "10000 loops, best of 5: 30.2 usec per loop\n" @@ -55,11 +49,9 @@ msgid "" "10000 loops, best of 5: 23.2 usec per loop" msgstr "" -#: ../../library/timeit.rst:37 msgid "This can be achieved from the :ref:`python-interface` with::" msgstr "" -#: ../../library/timeit.rst:39 msgid "" ">>> import timeit\n" ">>> timeit.timeit('\"-\".join(str(n) for n in range(100))', number=10000)\n" @@ -70,32 +62,26 @@ msgid "" "0.23702679807320237" msgstr "" -#: ../../library/timeit.rst:47 msgid "A callable can also be passed from the :ref:`python-interface`::" msgstr "" -#: ../../library/timeit.rst:49 msgid "" ">>> timeit.timeit(lambda: \"-\".join(map(str, range(100))), number=10000)\n" "0.19665591977536678" msgstr "" -#: ../../library/timeit.rst:52 msgid "" "Note however that :func:`.timeit` will automatically determine the number of " -"repetitions only when the command-line interface is used. In " -"the :ref:`timeit-examples` section you can find more advanced examples." +"repetitions only when the command-line interface is used. In the :ref:" +"`timeit-examples` section you can find more advanced examples." msgstr "" -#: ../../library/timeit.rst:60 msgid "Python Interface" msgstr "" -#: ../../library/timeit.rst:62 msgid "The module defines three convenience functions and a public class:" msgstr "" -#: ../../library/timeit.rst:67 msgid "" "Create a :class:`Timer` instance with the given statement, *setup* code and " "*timer* function and run its :meth:`.timeit` method with *number* " @@ -103,12 +89,9 @@ msgid "" "to execute the code." msgstr "" -#: ../../library/timeit.rst:72 ../../library/timeit.rst:83 -#: ../../library/timeit.rst:122 msgid "The optional *globals* parameter was added." msgstr "" -#: ../../library/timeit.rst:78 msgid "" "Create a :class:`Timer` instance with the given statement, *setup* code and " "*timer* function and run its :meth:`.repeat` method with the given *repeat* " @@ -116,25 +99,20 @@ msgid "" "namespace in which to execute the code." msgstr "" -#: ../../library/timeit.rst:86 ../../library/timeit.rst:183 msgid "Default value of *repeat* changed from 3 to 5." msgstr "" -#: ../../library/timeit.rst:92 msgid "" "The default timer, which is always time.perf_counter(), returns float " "seconds. An alternative, time.perf_counter_ns, returns integer nanoseconds." msgstr "" -#: ../../library/timeit.rst:95 msgid ":func:`time.perf_counter` is now the default timer." msgstr "" -#: ../../library/timeit.rst:101 msgid "Class for timing execution speed of small code snippets." msgstr "" -#: ../../library/timeit.rst:103 msgid "" "The constructor takes a statement to be timed, an additional statement used " "for setup, and a timer function. Both statements default to ``'pass'``; the " @@ -145,20 +123,17 @@ msgid "" "controlled by passing a namespace to *globals*." msgstr "" -#: ../../library/timeit.rst:111 msgid "" -"To measure the execution time of the first statement, use " -"the :meth:`.timeit` method. The :meth:`.repeat` and :meth:`.autorange` " -"methods are convenience methods to call :meth:`.timeit` multiple times." +"To measure the execution time of the first statement, use the :meth:`." +"timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " +"convenience methods to call :meth:`.timeit` multiple times." msgstr "" -#: ../../library/timeit.rst:115 msgid "" "The execution time of *setup* is excluded from the overall timed execution " "run." msgstr "" -#: ../../library/timeit.rst:117 msgid "" "The *stmt* and *setup* parameters can also take objects that are callable " "without arguments. This will embed calls to them in a timer function that " @@ -166,7 +141,6 @@ msgid "" "a little larger in this case because of the extra function calls." msgstr "" -#: ../../library/timeit.rst:127 msgid "" "Time *number* executions of the main statement. This executes the setup " "statement once, and then returns the time it takes to execute the main " @@ -176,7 +150,6 @@ msgid "" "be used are passed to the constructor." msgstr "" -#: ../../library/timeit.rst:136 msgid "" "By default, :meth:`.timeit` temporarily turns off :term:`garbage collection` " "during the timing. The advantage of this approach is that it makes " @@ -186,15 +159,12 @@ msgid "" "example::" msgstr "" -#: ../../library/timeit.rst:143 msgid "timeit.Timer('for i in range(10): oct(i)', 'gc.enable()').timeit()" msgstr "" -#: ../../library/timeit.rst:148 msgid "Automatically determine how many times to call :meth:`.timeit`." msgstr "" -#: ../../library/timeit.rst:150 msgid "" "This is a convenience function that calls :meth:`.timeit` repeatedly so that " "the total time >= 0.2 second, returning the eventual (number of loops, time " @@ -203,17 +173,14 @@ msgid "" "at least 0.2 seconds." msgstr "" -#: ../../library/timeit.rst:156 msgid "" "If *callback* is given and is not ``None``, it will be called after each " "trial with two arguments: ``callback(number, time_taken)``." msgstr "" -#: ../../library/timeit.rst:164 msgid "Call :meth:`.timeit` a few times." msgstr "" -#: ../../library/timeit.rst:166 msgid "" "This is a convenience function that calls the :meth:`.timeit` repeatedly, " "returning a list of results. The first argument specifies how many times to " @@ -221,7 +188,6 @@ msgid "" "for :meth:`.timeit`." msgstr "" -#: ../../library/timeit.rst:173 msgid "" "It's tempting to calculate mean and standard deviation from the result " "vector and report these. However, this is not very useful. In a typical " @@ -233,15 +199,12 @@ msgid "" "entire vector and apply common sense rather than statistics." msgstr "" -#: ../../library/timeit.rst:189 msgid "Helper to print a traceback from the timed code." msgstr "" -#: ../../library/timeit.rst:191 msgid "Typical use::" msgstr "" -#: ../../library/timeit.rst:193 msgid "" "t = Timer(...) # outside the try/except\n" "try:\n" @@ -250,64 +213,51 @@ msgid "" " t.print_exc()" msgstr "" -#: ../../library/timeit.rst:199 msgid "" "The advantage over the standard traceback is that source lines in the " "compiled template will be displayed. The optional *file* argument directs " "where the traceback is sent; it defaults to :data:`sys.stderr`." msgstr "" -#: ../../library/timeit.rst:207 msgid "Command-Line Interface" msgstr "" -#: ../../library/timeit.rst:209 msgid "" "When called as a program from the command line, the following form is used::" msgstr "" -#: ../../library/timeit.rst:211 msgid "" "python -m timeit [-n N] [-r N] [-u U] [-s S] [-p] [-v] [-h] [statement ...]" msgstr "" -#: ../../library/timeit.rst:213 msgid "Where the following options are understood:" msgstr "" -#: ../../library/timeit.rst:219 msgid "how many times to execute 'statement'" msgstr "" -#: ../../library/timeit.rst:223 msgid "how many times to repeat the timer (default 5)" msgstr "" -#: ../../library/timeit.rst:227 msgid "statement to be executed once initially (default ``pass``)" msgstr "" -#: ../../library/timeit.rst:231 msgid "" "measure process time, not wallclock time, using :func:`time.process_time` " "instead of :func:`time.perf_counter`, which is the default" msgstr "" -#: ../../library/timeit.rst:238 msgid "" "specify a time unit for timer output; can select ``nsec``, ``usec``, " "``msec``, or ``sec``" msgstr "" -#: ../../library/timeit.rst:244 msgid "print raw timing results; repeat for more digits precision" msgstr "" -#: ../../library/timeit.rst:248 msgid "print a short usage message and exit" msgstr "" -#: ../../library/timeit.rst:250 msgid "" "A multi-line statement may be given by specifying each line as a separate " "statement argument; indented lines are possible by enclosing an argument in " @@ -315,24 +265,21 @@ msgid "" "similarly." msgstr "" -#: ../../library/timeit.rst:255 msgid "" "If :option:`-n` is not given, a suitable number of loops is calculated by " "trying increasing numbers from the sequence 1, 2, 5, 10, 20, 50, ... until " "the total time is at least 0.2 seconds." msgstr "" -#: ../../library/timeit.rst:259 msgid "" ":func:`default_timer` measurements can be affected by other programs running " "on the same machine, so the best thing to do when accurate timing is " -"necessary is to repeat the timing a few times and use the best time. " -"The :option:`-r` option is good for this; the default of 5 repetitions is " +"necessary is to repeat the timing a few times and use the best time. The :" +"option:`-r` option is good for this; the default of 5 repetitions is " "probably enough in most cases. You can use :func:`time.process_time` to " "measure CPU time." msgstr "" -#: ../../library/timeit.rst:267 msgid "" "There is a certain baseline overhead associated with executing a pass " "statement. The code here doesn't try to hide it, but you should be aware of " @@ -340,27 +287,23 @@ msgid "" "arguments, and it might differ between Python versions." msgstr "" -#: ../../library/timeit.rst:276 msgid "Examples" msgstr "" -#: ../../library/timeit.rst:278 msgid "" "It is possible to provide a setup statement that is executed only once at " "the beginning:" msgstr "" -#: ../../library/timeit.rst:280 msgid "" "$ python -m timeit -s \"text = 'sample string'; char = 'g'\" \"char in " "text\"\n" "5000000 loops, best of 5: 0.0877 usec per loop\n" -"$ python -m timeit -s \"text = 'sample string'; char = 'g'\" " -"\"text.find(char)\"\n" +"$ python -m timeit -s \"text = 'sample string'; char = 'g'\" \"text." +"find(char)\"\n" "1000000 loops, best of 5: 0.342 usec per loop" msgstr "" -#: ../../library/timeit.rst:287 msgid "" "In the output, there are three fields. The loop count, which tells you how " "many times the statement body was run per timing loop repetition. The " @@ -370,7 +313,6 @@ msgid "" "repetition took divided by the loop count." msgstr "" -#: ../../library/timeit.rst:296 msgid "" ">>> import timeit\n" ">>> timeit.timeit('char in text', setup='text = \"sample string\"; char = " @@ -381,11 +323,9 @@ msgid "" "1.7246671520006203" msgstr "" -#: ../../library/timeit.rst:302 msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "" -#: ../../library/timeit.rst:304 msgid "" ">>> import timeit\n" ">>> t = timeit.Timer('char in text', setup='text = \"sample string\"; char = " @@ -397,15 +337,12 @@ msgid "" "0.3712595970846668, 0.37866875250654886]" msgstr "" -#: ../../library/timeit.rst:312 msgid "" "The following examples show how to time expressions that contain multiple " -"lines. Here we compare the cost of using :func:`hasattr` " -"vs. :keyword:`try`/:keyword:`except` to test for missing and present object " -"attributes:" +"lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:" +"keyword:`except` to test for missing and present object attributes:" msgstr "" -#: ../../library/timeit.rst:316 msgid "" "$ python -m timeit \"try:\" \" str.__bool__\" \"except AttributeError:\" " "\" pass\"\n" @@ -420,7 +357,6 @@ msgid "" "100000 loops, best of 5: 2.23 usec per loop" msgstr "" -#: ../../library/timeit.rst:330 msgid "" ">>> import timeit\n" ">>> # attribute is missing\n" @@ -450,13 +386,11 @@ msgid "" "0.08588060699912603" msgstr "" -#: ../../library/timeit.rst:358 msgid "" "To give the :mod:`timeit` module access to functions you define, you can " "pass a *setup* parameter which contains an import statement::" msgstr "" -#: ../../library/timeit.rst:361 msgid "" "def test():\n" " \"\"\"Stupid test function\"\"\"\n" @@ -467,14 +401,12 @@ msgid "" " print(timeit.timeit(\"test()\", setup=\"from __main__ import test\"))" msgstr "" -#: ../../library/timeit.rst:369 msgid "" "Another option is to pass :func:`globals` to the *globals* parameter, which " "will cause the code to be executed within your current global namespace. " "This can be more convenient than individually specifying imports::" msgstr "" -#: ../../library/timeit.rst:373 msgid "" "def f(x):\n" " return x**2\n" @@ -487,10 +419,8 @@ msgid "" "print(timeit.timeit('[func(42) for func in (f,g,h)]', globals=globals()))" msgstr "" -#: ../../library/timeit.rst:9 msgid "Benchmarking" msgstr "" -#: ../../library/timeit.rst:9 msgid "Performance" msgstr "" diff --git a/library/tk.po b/library/tk.po index b12fb4c..3fb85fe 100644 --- a/library/tk.po +++ b/library/tk.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tk.rst:5 -msgid "Graphical User Interfaces with Tk" +msgid "Graphical user interfaces with Tk" msgstr "" -#: ../../library/tk.rst:13 msgid "" "Tk/Tcl has long been an integral part of Python. It provides a robust and " "platform independent windowing toolkit, that is available to Python " -"programmers using the :mod:`tkinter` package, and its extension, " -"the :mod:`tkinter.ttk` module." +"programmers using the :mod:`tkinter` package, and its extension, the :mod:" +"`tkinter.ttk` module." msgstr "" -#: ../../library/tk.rst:17 msgid "" "The :mod:`tkinter` package is a thin object-oriented layer on top of Tcl/Tk. " "To use :mod:`tkinter`, you don't need to write Tcl code, but you will need " -"to consult the Tk documentation, and occasionally the Tcl " -"documentation. :mod:`tkinter` is a set of wrappers that implement the Tk " -"widgets as Python classes." +"to consult the Tk documentation, and occasionally the Tcl documentation. :" +"mod:`tkinter` is a set of wrappers that implement the Tk widgets as Python " +"classes." msgstr "" -#: ../../library/tk.rst:23 msgid "" ":mod:`tkinter`'s chief virtues are that it is fast, and that it usually " "comes bundled with Python. Although its standard documentation is weak, good " @@ -51,18 +47,14 @@ msgid "" "GuiProgramming>`_." msgstr "" -#: ../../library/tk.rst:7 msgid "GUI" msgstr "" -#: ../../library/tk.rst:7 msgid "Graphical User Interface" msgstr "" -#: ../../library/tk.rst:7 msgid "Tkinter" msgstr "" -#: ../../library/tk.rst:7 msgid "Tk" msgstr "" diff --git a/library/tkinter.colorchooser.po b/library/tkinter.colorchooser.po index de8816d..9b6625b 100644 --- a/library/tkinter.colorchooser.po +++ b/library/tkinter.colorchooser.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,33 +18,27 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.colorchooser.rst:2 msgid ":mod:`!tkinter.colorchooser` --- Color choosing dialog" msgstr "" -#: ../../library/tkinter.colorchooser.rst:8 msgid "**Source code:** :source:`Lib/tkinter/colorchooser.py`" msgstr "" -#: ../../library/tkinter.colorchooser.rst:12 msgid "" "The :mod:`tkinter.colorchooser` module provides the :class:`Chooser` class " "as an interface to the native color picker dialog. ``Chooser`` implements a " -"modal color choosing dialog window. The ``Chooser`` class inherits from " -"the :class:`~tkinter.commondialog.Dialog` class." +"modal color choosing dialog window. The ``Chooser`` class inherits from the :" +"class:`~tkinter.commondialog.Dialog` class." msgstr "" -#: ../../library/tkinter.colorchooser.rst:21 msgid "" "Create a color choosing dialog. A call to this method will show the window, " "wait for the user to make a selection, and return the selected color (or " "``None``) to the caller." msgstr "" -#: ../../library/tkinter.colorchooser.rst:28 msgid "Module :mod:`tkinter.commondialog`" msgstr "" -#: ../../library/tkinter.colorchooser.rst:29 msgid "Tkinter standard dialog module" msgstr "" diff --git a/library/tkinter.dnd.po b/library/tkinter.dnd.po index fc70dfa..f319a6b 100644 --- a/library/tkinter.dnd.po +++ b/library/tkinter.dnd.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.dnd.rst:2 msgid ":mod:`!tkinter.dnd` --- Drag and drop support" msgstr "" -#: ../../library/tkinter.dnd.rst:8 msgid "**Source code:** :source:`Lib/tkinter/dnd.py`" msgstr "" -#: ../../library/tkinter.dnd.rst:12 msgid "" "This is experimental and due to be deprecated when it is replaced with the " "Tk DND." msgstr "" -#: ../../library/tkinter.dnd.rst:15 msgid "" "The :mod:`tkinter.dnd` module provides drag-and-drop support for objects " "within a single application, within the same window or between windows. To " @@ -44,71 +40,55 @@ msgid "" "your callback function)." msgstr "" -#: ../../library/tkinter.dnd.rst:23 msgid "Selection of a target object occurs as follows:" msgstr "" -#: ../../library/tkinter.dnd.rst:25 msgid "Top-down search of area under mouse for target widget" msgstr "" -#: ../../library/tkinter.dnd.rst:27 msgid "Target widget should have a callable *dnd_accept* attribute" msgstr "" -#: ../../library/tkinter.dnd.rst:28 msgid "" "If *dnd_accept* is not present or returns ``None``, search moves to parent " "widget" msgstr "" -#: ../../library/tkinter.dnd.rst:29 msgid "If no target widget is found, then the target object is ``None``" msgstr "" -#: ../../library/tkinter.dnd.rst:31 msgid "Call to *.dnd_leave(source, event)*" msgstr "" -#: ../../library/tkinter.dnd.rst:32 msgid "Call to *.dnd_enter(source, event)*" msgstr "" -#: ../../library/tkinter.dnd.rst:33 msgid "Call to *.dnd_commit(source, event)* to notify of drop" msgstr "" -#: ../../library/tkinter.dnd.rst:34 msgid "" "Call to *.dnd_end(target, event)* to signal end of drag-and-drop" msgstr "" -#: ../../library/tkinter.dnd.rst:39 msgid "" "The *DndHandler* class handles drag-and-drop events tracking Motion and " "ButtonRelease events on the root of the event widget." msgstr "" -#: ../../library/tkinter.dnd.rst:44 msgid "Cancel the drag-and-drop process." msgstr "" -#: ../../library/tkinter.dnd.rst:48 msgid "Execute end of drag-and-drop functions." msgstr "" -#: ../../library/tkinter.dnd.rst:52 msgid "Inspect area below mouse for target objects while drag is performed." msgstr "" -#: ../../library/tkinter.dnd.rst:56 msgid "Signal end of drag when the release pattern is triggered." msgstr "" -#: ../../library/tkinter.dnd.rst:60 msgid "Factory function for drag-and-drop process." msgstr "" -#: ../../library/tkinter.dnd.rst:64 msgid ":ref:`Bindings-and-Events`" msgstr "" diff --git a/library/tkinter.font.po b/library/tkinter.font.po index c49c5bd..af34f0e 100644 --- a/library/tkinter.font.po +++ b/library/tkinter.font.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.font.rst:2 msgid ":mod:`!tkinter.font` --- Tkinter font wrapper" msgstr "" -#: ../../library/tkinter.font.rst:8 msgid "**Source code:** :source:`Lib/tkinter/font.py`" msgstr "" -#: ../../library/tkinter.font.rst:12 msgid "" "The :mod:`tkinter.font` module provides the :class:`Font` class for creating " "and using named fonts." msgstr "" -#: ../../library/tkinter.font.rst:15 msgid "The different font weights and slants are:" msgstr "" -#: ../../library/tkinter.font.rst:24 msgid "" "The :class:`Font` class represents a named font. *Font* instances are given " "unique names and can be specified by their family, size, and style " @@ -45,125 +40,95 @@ msgid "" "each occurrence." msgstr "" -#: ../../library/tkinter.font.rst:30 msgid "arguments:" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*font* - font specifier tuple (family, size, options)" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*name* - unique font name" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*exists* - self points to existing named font if true" msgstr "" -#: ../../library/tkinter.font.rst:36 msgid "additional keyword options (ignored if *font* is specified):" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*family* - font family i.e. Courier, Times" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*size* - font size" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "If *size* is positive it is interpreted as size in points." msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "If *size* is a negative number its absolute value is treated" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "as size in pixels." msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*weight* - font emphasis (NORMAL, BOLD)" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*slant* - ROMAN, ITALIC" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*underline* - font underlining (0 - none, 1 - underline)" msgstr "" -#: ../../library/tkinter.font.rst:0 msgid "*overstrike* - font strikeout (0 - none, 1 - strikeout)" msgstr "" -#: ../../library/tkinter.font.rst:50 msgid "Return the attributes of the font." msgstr "" -#: ../../library/tkinter.font.rst:54 msgid "Retrieve an attribute of the font." msgstr "" -#: ../../library/tkinter.font.rst:58 msgid "Modify attributes of the font." msgstr "" -#: ../../library/tkinter.font.rst:62 msgid "Return new instance of the current font." msgstr "" -#: ../../library/tkinter.font.rst:66 msgid "" "Return amount of space the text would occupy on the specified display when " "formatted in the current font. If no display is specified then the main " "application window is assumed." msgstr "" -#: ../../library/tkinter.font.rst:72 msgid "Return font-specific data. Options include:" msgstr "" -#: ../../library/tkinter.font.rst:75 msgid "*ascent* - distance between baseline and highest point that a" msgstr "" -#: ../../library/tkinter.font.rst:76 ../../library/tkinter.font.rst:79 msgid "character of the font can occupy" msgstr "" -#: ../../library/tkinter.font.rst:78 msgid "*descent* - distance between baseline and lowest point that a" msgstr "" -#: ../../library/tkinter.font.rst:81 msgid "*linespace* - minimum vertical separation necessary between any two" msgstr "" -#: ../../library/tkinter.font.rst:82 msgid "characters of the font that ensures no vertical overlap between lines." msgstr "" -#: ../../library/tkinter.font.rst:84 msgid "*fixed* - 1 if font is fixed-width else 0" msgstr "" -#: ../../library/tkinter.font.rst:88 msgid "Return the different font families." msgstr "" -#: ../../library/tkinter.font.rst:92 msgid "Return the names of defined fonts." msgstr "" -#: ../../library/tkinter.font.rst:96 msgid "Return a :class:`Font` representation of a tk named font." msgstr "" -#: ../../library/tkinter.font.rst:98 msgid "The *root* parameter was added." msgstr "" diff --git a/library/tkinter.messagebox.po b/library/tkinter.messagebox.po index 7d83a39..7f4c6d7 100644 --- a/library/tkinter.messagebox.po +++ b/library/tkinter.messagebox.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.messagebox.rst:2 msgid ":mod:`!tkinter.messagebox` --- Tkinter message prompts" msgstr "" -#: ../../library/tkinter.messagebox.rst:8 msgid "**Source code:** :source:`Lib/tkinter/messagebox.py`" msgstr "" -#: ../../library/tkinter.messagebox.rst:12 msgid "" "The :mod:`tkinter.messagebox` module provides a template base class as well " "as a variety of convenience methods for commonly used configurations. The " @@ -36,33 +33,27 @@ msgid "" "limited to:" msgstr "" -#: ../../library/tkinter.messagebox.rst:23 msgid "" "Create a message window with an application-specified message, an icon and a " "set of buttons. Each of the buttons in the message window is identified by a " "unique symbolic name (see the *type* options)." msgstr "" -#: ../../library/tkinter.messagebox.rst:27 msgid "The following options are supported:" msgstr "" -#: ../../library/tkinter.messagebox.rst:29 msgid "*command*" msgstr "" -#: ../../library/tkinter.messagebox.rst:30 msgid "" "Specifies the function to invoke when the user closes the dialog. The name " "of the button clicked by the user to close the dialog is passed as argument. " "This is only available on macOS." msgstr "" -#: ../../library/tkinter.messagebox.rst:35 msgid "*default*" msgstr "" -#: ../../library/tkinter.messagebox.rst:36 msgid "" "Gives the :ref:`symbolic name ` of the default button " "for this message window (:data:`OK`, :data:`CANCEL`, and so on). If this " @@ -70,178 +61,143 @@ msgid "" "default." msgstr "" -#: ../../library/tkinter.messagebox.rst:41 msgid "*detail*" msgstr "" -#: ../../library/tkinter.messagebox.rst:42 msgid "" "Specifies an auxiliary message to the main message given by the *message* " "option. The message detail will be presented beneath the main message and, " "where supported by the OS, in a less emphasized font than the main message." msgstr "" -#: ../../library/tkinter.messagebox.rst:48 msgid "*icon*" msgstr "" -#: ../../library/tkinter.messagebox.rst:49 msgid "" "Specifies an :ref:`icon ` to display. If this option is " "not specified, then the :data:`INFO` icon will be displayed." msgstr "" -#: ../../library/tkinter.messagebox.rst:53 msgid "*message*" msgstr "" -#: ../../library/tkinter.messagebox.rst:54 msgid "" "Specifies the message to display in this message box. The default value is " "an empty string." msgstr "" -#: ../../library/tkinter.messagebox.rst:57 msgid "*parent*" msgstr "" -#: ../../library/tkinter.messagebox.rst:58 msgid "" "Makes the specified window the logical parent of the message box. The " "message box is displayed on top of its parent window." msgstr "" -#: ../../library/tkinter.messagebox.rst:61 msgid "*title*" msgstr "" -#: ../../library/tkinter.messagebox.rst:62 msgid "" "Specifies a string to display as the title of the message box. This option " "is ignored on macOS, where platform guidelines forbid the use of a title on " "this kind of dialog." msgstr "" -#: ../../library/tkinter.messagebox.rst:66 msgid "*type*" msgstr "" -#: ../../library/tkinter.messagebox.rst:67 msgid "" "Arranges for a :ref:`predefined set of buttons ` to be " "displayed." msgstr "" -#: ../../library/tkinter.messagebox.rst:72 msgid "" "Display a message window and wait for the user to select one of the buttons. " "Then return the symbolic name of the selected button. Keyword arguments can " "override options specified in the constructor." msgstr "" -#: ../../library/tkinter.messagebox.rst:76 msgid "**Information message box**" msgstr "" -#: ../../library/tkinter.messagebox.rst:80 msgid "" "Creates and displays an information message box with the specified title and " "message." msgstr "" -#: ../../library/tkinter.messagebox.rst:83 msgid "**Warning message boxes**" msgstr "" -#: ../../library/tkinter.messagebox.rst:87 msgid "" "Creates and displays a warning message box with the specified title and " "message." msgstr "" -#: ../../library/tkinter.messagebox.rst:92 msgid "" "Creates and displays an error message box with the specified title and " "message." msgstr "" -#: ../../library/tkinter.messagebox.rst:95 msgid "**Question message boxes**" msgstr "" -#: ../../library/tkinter.messagebox.rst:99 msgid "" "Ask a question. By default shows buttons :data:`YES` and :data:`NO`. Returns " "the symbolic name of the selected button." msgstr "" -#: ../../library/tkinter.messagebox.rst:104 msgid "" -"Ask if operation should proceed. Shows buttons :data:`OK` " -"and :data:`CANCEL`. Returns ``True`` if the answer is ok and ``False`` " -"otherwise." +"Ask if operation should proceed. Shows buttons :data:`OK` and :data:" +"`CANCEL`. Returns ``True`` if the answer is ok and ``False`` otherwise." msgstr "" -#: ../../library/tkinter.messagebox.rst:109 msgid "" -"Ask if operation should be retried. Shows buttons :data:`RETRY` " -"and :data:`CANCEL`. Return ``True`` if the answer is yes and ``False`` " -"otherwise." +"Ask if operation should be retried. Shows buttons :data:`RETRY` and :data:" +"`CANCEL`. Return ``True`` if the answer is yes and ``False`` otherwise." msgstr "" -#: ../../library/tkinter.messagebox.rst:114 msgid "" "Ask a question. Shows buttons :data:`YES` and :data:`NO`. Returns ``True`` " "if the answer is yes and ``False`` otherwise." msgstr "" -#: ../../library/tkinter.messagebox.rst:119 msgid "" "Ask a question. Shows buttons :data:`YES`, :data:`NO` and :data:`CANCEL`. " "Return ``True`` if the answer is yes, ``None`` if cancelled, and ``False`` " "otherwise." msgstr "" -#: ../../library/tkinter.messagebox.rst:126 msgid "Symbolic names of buttons:" msgstr "" -#: ../../library/tkinter.messagebox.rst:145 msgid "Predefined sets of buttons:" msgstr "" -#: ../../library/tkinter.messagebox.rst:150 msgid "" "Displays three buttons whose symbolic names are :data:`ABORT`, :data:`RETRY` " "and :data:`IGNORE`." msgstr "" -#: ../../library/tkinter.messagebox.rst:157 msgid "Displays one button whose symbolic name is :data:`OK`." msgstr "" -#: ../../library/tkinter.messagebox.rst:162 msgid "" "Displays two buttons whose symbolic names are :data:`OK` and :data:`CANCEL`." msgstr "" -#: ../../library/tkinter.messagebox.rst:168 msgid "" -"Displays two buttons whose symbolic names are :data:`RETRY` " -"and :data:`CANCEL`." +"Displays two buttons whose symbolic names are :data:`RETRY` and :data:" +"`CANCEL`." msgstr "" -#: ../../library/tkinter.messagebox.rst:174 msgid "" "Displays two buttons whose symbolic names are :data:`YES` and :data:`NO`." msgstr "" -#: ../../library/tkinter.messagebox.rst:180 msgid "" -"Displays three buttons whose symbolic names are :data:`YES`, :data:`NO` " -"and :data:`CANCEL`." +"Displays three buttons whose symbolic names are :data:`YES`, :data:`NO` and :" +"data:`CANCEL`." msgstr "" -#: ../../library/tkinter.messagebox.rst:185 msgid "Icon images:" msgstr "" diff --git a/library/tkinter.po b/library/tkinter.po index 19e8654..d71b9fd 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.rst:2 msgid ":mod:`!tkinter` --- Python interface to Tcl/Tk" msgstr "" -#: ../../library/tkinter.rst:9 msgid "**Source code:** :source:`Lib/tkinter/__init__.py`" msgstr "" -#: ../../library/tkinter.rst:13 msgid "" "The :mod:`tkinter` package (\"Tk interface\") is the standard Python " "interface to the Tcl/Tk GUI toolkit. Both Tk and :mod:`tkinter` are " @@ -38,7 +35,6 @@ msgid "" "systems." msgstr "" -#: ../../library/tkinter.rst:17 msgid "" "Running ``python -m tkinter`` from the command line should open a window " "demonstrating a simple Tk interface, letting you know that :mod:`tkinter` is " @@ -47,7 +43,6 @@ msgid "" "version." msgstr "" -#: ../../library/tkinter.rst:22 msgid "" "Tkinter supports a range of Tcl/Tk versions, built either with or without " "thread support. The official Python binary release bundles Tcl/Tk 8.6 " @@ -55,7 +50,6 @@ msgid "" "information about supported versions." msgstr "" -#: ../../library/tkinter.rst:27 msgid "" "Tkinter is not a thin wrapper, but adds a fair amount of its own logic to " "make the experience more pythonic. This documentation will concentrate on " @@ -63,7 +57,6 @@ msgid "" "for details that are unchanged." msgstr "" -#: ../../library/tkinter.rst:34 msgid "" "Tcl/Tk 8.5 (2007) introduced a modern set of themed user interface " "components along with a new API to use them. Both old and new APIs are still " @@ -71,97 +64,77 @@ msgid "" "and can be woefully outdated." msgstr "" -#: ../../library/tkinter.rst:41 msgid "`TkDocs `_" msgstr "" -#: ../../library/tkinter.rst:42 msgid "" "Extensive tutorial on creating user interfaces with Tkinter. Explains key " "concepts, and illustrates recommended approaches using the modern API." msgstr "" -#: ../../library/tkinter.rst:45 msgid "" "`Tkinter 8.5 reference: a GUI for Python `_" msgstr "" -#: ../../library/tkinter.rst:46 msgid "" "Reference documentation for Tkinter 8.5 detailing available classes, " "methods, and options." msgstr "" -#: ../../library/tkinter.rst:48 msgid "Tcl/Tk Resources:" msgstr "" -#: ../../library/tkinter.rst:50 msgid "`Tk commands `_" msgstr "" -#: ../../library/tkinter.rst:51 msgid "" "Comprehensive reference to each of the underlying Tcl/Tk commands used by " "Tkinter." msgstr "" -#: ../../library/tkinter.rst:53 msgid "`Tcl/Tk Home Page `_" msgstr "" -#: ../../library/tkinter.rst:54 msgid "Additional documentation, and links to Tcl/Tk core development." msgstr "" -#: ../../library/tkinter.rst:56 msgid "Books:" msgstr "" -#: ../../library/tkinter.rst:58 msgid "" "`Modern Tkinter for Busy Python Developers `_" msgstr "" -#: ../../library/tkinter.rst:59 msgid "By Mark Roseman. (ISBN 978-1999149567)" msgstr "" -#: ../../library/tkinter.rst:61 msgid "" "`Python GUI programming with Tkinter `_" msgstr "" -#: ../../library/tkinter.rst:62 msgid "By Alan D. Moore. (ISBN 978-1788835886)" msgstr "" -#: ../../library/tkinter.rst:64 msgid "`Programming Python `_" msgstr "" -#: ../../library/tkinter.rst:65 msgid "By Mark Lutz; has excellent coverage of Tkinter. (ISBN 978-0596158101)" msgstr "" -#: ../../library/tkinter.rst:67 msgid "" "`Tcl and the Tk Toolkit (2nd edition) `_" msgstr "" -#: ../../library/tkinter.rst:68 msgid "" "By John Ousterhout, inventor of Tcl/Tk, and Ken Jones; does not cover " "Tkinter. (ISBN 978-0321336330)" msgstr "" -#: ../../library/tkinter.rst:72 msgid "Architecture" msgstr "" -#: ../../library/tkinter.rst:74 msgid "" "Tcl/Tk is not a single library but rather consists of a few distinct " "modules, each with separate functionality and its own official " @@ -169,11 +142,9 @@ msgid "" "with it." msgstr "" -#: ../../library/tkinter.rst:79 msgid "Tcl" msgstr "" -#: ../../library/tkinter.rst:80 msgid "" "Tcl is a dynamic interpreted programming language, just like Python. Though " "it can be used on its own as a general-purpose programming language, it is " @@ -187,25 +158,20 @@ msgid "" "difference (see `Threading model`_ for details)." msgstr "" -#: ../../library/tkinter.rst:92 ../../library/tkinter.rst:907 msgid "Tk" msgstr "" -#: ../../library/tkinter.rst:93 msgid "" "Tk is a `Tcl package `_ implemented in C " -"that adds custom commands to create and manipulate GUI widgets. " -"Each :class:`Tk` object embeds its own Tcl interpreter instance with Tk " -"loaded into it. Tk's widgets are very customizable, though at the cost of a " -"dated appearance. Tk uses Tcl's event queue to generate and process GUI " -"events." +"that adds custom commands to create and manipulate GUI widgets. Each :class:" +"`Tk` object embeds its own Tcl interpreter instance with Tk loaded into it. " +"Tk's widgets are very customizable, though at the cost of a dated " +"appearance. Tk uses Tcl's event queue to generate and process GUI events." msgstr "" -#: ../../library/tkinter.rst:99 msgid "Ttk" msgstr "" -#: ../../library/tkinter.rst:100 msgid "" "Themed Tk (Ttk) is a newer family of Tk widgets that provide a much better " "appearance on different platforms than many of the classic Tk widgets. Ttk " @@ -213,13 +179,11 @@ msgid "" "are provided in a separate module, :mod:`tkinter.ttk`." msgstr "" -#: ../../library/tkinter.rst:105 msgid "" -"Internally, Tk and Ttk use facilities of the underlying operating system, " -"i.e., Xlib on Unix/X11, Cocoa on macOS, GDI on Windows." +"Internally, Tk and Ttk use facilities of the underlying operating system, i." +"e., Xlib on Unix/X11, Cocoa on macOS, GDI on Windows." msgstr "" -#: ../../library/tkinter.rst:108 msgid "" "When your Python application uses a class in Tkinter, e.g., to create a " "widget, the :mod:`tkinter` module first assembles a Tcl/Tk command string. " @@ -229,91 +193,74 @@ msgid "" "turn make calls to Xlib, Cocoa, or GDI." msgstr "" -#: ../../library/tkinter.rst:116 msgid "Tkinter Modules" msgstr "" -#: ../../library/tkinter.rst:118 msgid "" "Support for Tkinter is spread across several modules. Most applications will " "need the main :mod:`tkinter` module, as well as the :mod:`tkinter.ttk` " "module, which provides the modern themed widget set and API::" msgstr "" -#: ../../library/tkinter.rst:123 msgid "" "from tkinter import *\n" "from tkinter import ttk" msgstr "" -#: ../../library/tkinter.rst:129 msgid "" "Construct a toplevel Tk widget, which is usually the main window of an " "application, and initialize a Tcl interpreter for this widget. Each " "instance has its own associated Tcl interpreter." msgstr "" -#: ../../library/tkinter.rst:133 msgid "" "The :class:`Tk` class is typically instantiated using all default values. " "However, the following keyword arguments are currently recognized:" msgstr "" -#: ../../library/tkinter.rst:136 msgid "*screenName*" msgstr "" -#: ../../library/tkinter.rst:137 msgid "" "When given (as a string), sets the :envvar:`DISPLAY` environment variable. " "(X11 only)" msgstr "" -#: ../../library/tkinter.rst:139 msgid "*baseName*" msgstr "" -#: ../../library/tkinter.rst:140 msgid "" "Name of the profile file. By default, *baseName* is derived from the " "program name (``sys.argv[0]``)." msgstr "" -#: ../../library/tkinter.rst:142 msgid "*className*" msgstr "" -#: ../../library/tkinter.rst:143 msgid "" "Name of the widget class. Used as a profile file and also as the name with " "which Tcl is invoked (*argv0* in *interp*)." msgstr "" -#: ../../library/tkinter.rst:145 msgid "*useTk*" msgstr "" -#: ../../library/tkinter.rst:146 msgid "" "If ``True``, initialize the Tk subsystem. The :func:`tkinter.Tcl() ` " "function sets this to ``False``." msgstr "" -#: ../../library/tkinter.rst:148 msgid "*sync*" msgstr "" -#: ../../library/tkinter.rst:149 msgid "" "If ``True``, execute all X server commands synchronously, so that errors are " "reported immediately. Can be used for debugging. (X11 only)" msgstr "" -#: ../../library/tkinter.rst:151 msgid "*use*" msgstr "" -#: ../../library/tkinter.rst:152 msgid "" "Specifies the *id* of the window in which to embed the application, instead " "of it being created as an independent toplevel window. *id* must be " @@ -321,29 +268,25 @@ msgid "" "widgets (that is, it has a form like that returned by :meth:`winfo_id`)." msgstr "" -#: ../../library/tkinter.rst:158 msgid "" "Note that on some platforms this will only work correctly if *id* refers to " "a Tk frame or toplevel that has its -container option enabled." msgstr "" -#: ../../library/tkinter.rst:161 msgid "" -":class:`Tk` reads and interprets profile files, named :file:`." -"{className}.tcl` and :file:`.{baseName}.tcl`, into the Tcl interpreter and " -"calls :func:`exec` on the contents of :file:`.{className}.py` and :file:`." -"{baseName}.py`. The path for the profile files is the :envvar:`HOME` " -"environment variable or, if that isn't defined, then :data:`os.curdir`." +":class:`Tk` reads and interprets profile files, named :file:`.{className}." +"tcl` and :file:`.{baseName}.tcl`, into the Tcl interpreter and calls :func:" +"`exec` on the contents of :file:`.{className}.py` and :file:`.{baseName}." +"py`. The path for the profile files is the :envvar:`HOME` environment " +"variable or, if that isn't defined, then :data:`os.curdir`." msgstr "" -#: ../../library/tkinter.rst:170 msgid "" "The Tk application object created by instantiating :class:`Tk`. This " "provides access to the Tcl interpreter. Each widget that is attached the " "same instance of :class:`Tk` has the same value for its :attr:`tk` attribute." msgstr "" -#: ../../library/tkinter.rst:177 msgid "" "The widget object that contains this widget. For :class:`Tk`, the *master* " "is :const:`None` because it is the main window. The terms *master* and " @@ -354,13 +297,11 @@ msgid "" "structure." msgstr "" -#: ../../library/tkinter.rst:187 msgid "" "The immediate descendants of this widget as a :class:`dict` with the child " "widget names as the keys and the child instance objects as the values." msgstr "" -#: ../../library/tkinter.rst:194 msgid "" "The :func:`Tcl` function is a factory function which creates an object much " "like that created by the :class:`Tk` class, except that it does not " @@ -368,97 +309,75 @@ msgid "" "interpreter in an environment where one doesn't want to create extraneous " "toplevel windows, or where one cannot (such as Unix/Linux systems without an " "X server). An object created by the :func:`Tcl` object can have a Toplevel " -"window created (and the Tk subsystem initialized) by calling " -"its :meth:`loadtk` method." +"window created (and the Tk subsystem initialized) by calling its :meth:" +"`loadtk` method." msgstr "" -#: ../../library/tkinter.rst:203 msgid "The modules that provide Tk support include:" msgstr "" -#: ../../library/tkinter.rst:205 msgid ":mod:`tkinter`" msgstr "" -#: ../../library/tkinter.rst:206 msgid "Main Tkinter module." msgstr "" -#: ../../library/tkinter.rst:208 msgid ":mod:`tkinter.colorchooser`" msgstr "" -#: ../../library/tkinter.rst:209 msgid "Dialog to let the user choose a color." msgstr "" -#: ../../library/tkinter.rst:211 msgid ":mod:`tkinter.commondialog`" msgstr "" -#: ../../library/tkinter.rst:212 msgid "Base class for the dialogs defined in the other modules listed here." msgstr "" -#: ../../library/tkinter.rst:214 msgid ":mod:`tkinter.filedialog`" msgstr "" -#: ../../library/tkinter.rst:215 msgid "Common dialogs to allow the user to specify a file to open or save." msgstr "" -#: ../../library/tkinter.rst:217 msgid ":mod:`tkinter.font`" msgstr "" -#: ../../library/tkinter.rst:218 msgid "Utilities to help work with fonts." msgstr "" -#: ../../library/tkinter.rst:220 msgid ":mod:`tkinter.messagebox`" msgstr "" -#: ../../library/tkinter.rst:221 msgid "Access to standard Tk dialog boxes." msgstr "" -#: ../../library/tkinter.rst:223 msgid ":mod:`tkinter.scrolledtext`" msgstr "" -#: ../../library/tkinter.rst:224 msgid "Text widget with a vertical scroll bar built in." msgstr "" -#: ../../library/tkinter.rst:226 msgid ":mod:`tkinter.simpledialog`" msgstr "" -#: ../../library/tkinter.rst:227 msgid "Basic dialogs and convenience functions." msgstr "" -#: ../../library/tkinter.rst:229 msgid ":mod:`tkinter.ttk`" msgstr "" -#: ../../library/tkinter.rst:230 msgid "" "Themed widget set introduced in Tk 8.5, providing modern alternatives for " "many of the classic widgets in the main :mod:`tkinter` module." msgstr "" -#: ../../library/tkinter.rst:233 msgid "Additional modules:" msgstr "" -#: ../../library/tkinter.rst:238 msgid ":mod:`_tkinter`" msgstr "" -#: ../../library/tkinter.rst:239 msgid "" "A binary module that contains the low-level interface to Tcl/Tk. It is " "automatically imported by the main :mod:`tkinter` module, and should never " @@ -467,50 +386,40 @@ msgid "" "interpreter." msgstr "" -#: ../../library/tkinter.rst:245 msgid ":mod:`idlelib`" msgstr "" -#: ../../library/tkinter.rst:246 msgid "" -"Python's Integrated Development and Learning Environment (IDLE). Based " -"on :mod:`tkinter`." +"Python's Integrated Development and Learning Environment (IDLE). Based on :" +"mod:`tkinter`." msgstr "" -#: ../../library/tkinter.rst:249 msgid ":mod:`tkinter.constants`" msgstr "" -#: ../../library/tkinter.rst:250 msgid "" "Symbolic constants that can be used in place of strings when passing various " -"parameters to Tkinter calls. Automatically imported by the " -"main :mod:`tkinter` module." +"parameters to Tkinter calls. Automatically imported by the main :mod:" +"`tkinter` module." msgstr "" -#: ../../library/tkinter.rst:254 msgid ":mod:`tkinter.dnd`" msgstr "" -#: ../../library/tkinter.rst:255 msgid "" "(experimental) Drag-and-drop support for :mod:`tkinter`. This will become " "deprecated when it is replaced with the Tk DND." msgstr "" -#: ../../library/tkinter.rst:258 msgid ":mod:`turtle`" msgstr "" -#: ../../library/tkinter.rst:259 msgid "Turtle graphics in a Tk window." msgstr "" -#: ../../library/tkinter.rst:263 msgid "Tkinter Life Preserver" msgstr "" -#: ../../library/tkinter.rst:265 msgid "" "This section is not designed to be an exhaustive tutorial on either Tk or " "Tkinter. For that, refer to one of the external resources noted earlier. " @@ -519,7 +428,6 @@ msgid "" "how the Tkinter wrapper is structured." msgstr "" -#: ../../library/tkinter.rst:271 msgid "" "The remainder of this section will help you to identify the classes, " "methods, and options you'll need in your Tkinter application, and where to " @@ -527,18 +435,15 @@ msgid "" "reference manual." msgstr "" -#: ../../library/tkinter.rst:278 msgid "A Hello World Program" msgstr "" -#: ../../library/tkinter.rst:280 msgid "" "We'll start by walking through a \"Hello World\" application in Tkinter. " "This isn't the smallest one we could write, but has enough to illustrate " "some key concepts you'll need to know." msgstr "" -#: ../../library/tkinter.rst:286 msgid "" "from tkinter import *\n" "from tkinter import ttk\n" @@ -550,7 +455,6 @@ msgid "" "root.mainloop()" msgstr "" -#: ../../library/tkinter.rst:296 msgid "" "After the imports, the next line creates an instance of the :class:`Tk` " "class, which initializes Tk and creates its associated Tcl interpreter. It " @@ -558,57 +462,46 @@ msgid "" "the main window of the application." msgstr "" -#: ../../library/tkinter.rst:301 msgid "" "The following line creates a frame widget, which in this case will contain a " "label and a button we'll create next. The frame is fit inside the root " "window." msgstr "" -#: ../../library/tkinter.rst:305 msgid "" -"The next line creates a label widget holding a static text string. " -"The :meth:`grid` method is used to specify the relative layout (position) of " -"the label within its containing frame widget, similar to how tables in HTML " -"work." +"The next line creates a label widget holding a static text string. The :meth:" +"`grid` method is used to specify the relative layout (position) of the label " +"within its containing frame widget, similar to how tables in HTML work." msgstr "" -#: ../../library/tkinter.rst:309 msgid "" "A button widget is then created, and placed to the right of the label. When " "pressed, it will call the :meth:`destroy` method of the root window." msgstr "" -#: ../../library/tkinter.rst:312 msgid "" "Finally, the :meth:`mainloop` method puts everything on the display, and " "responds to user input until the program terminates." msgstr "" -#: ../../library/tkinter.rst:318 msgid "Important Tk Concepts" msgstr "" -#: ../../library/tkinter.rst:320 msgid "Even this simple program illustrates the following key Tk concepts:" msgstr "" -#: ../../library/tkinter.rst:322 msgid "widgets" msgstr "" -#: ../../library/tkinter.rst:323 msgid "" "A Tkinter user interface is made up of individual *widgets*. Each widget is " -"represented as a Python object, instantiated from classes " -"like :class:`ttk.Frame`, :class:`ttk.Label`, and :class:`ttk.Button`." +"represented as a Python object, instantiated from classes like :class:`ttk." +"Frame`, :class:`ttk.Label`, and :class:`ttk.Button`." msgstr "" -#: ../../library/tkinter.rst:327 msgid "widget hierarchy" msgstr "" -#: ../../library/tkinter.rst:328 msgid "" "Widgets are arranged in a *hierarchy*. The label and button were contained " "within a frame, which in turn was contained within the root window. When " @@ -616,44 +509,36 @@ msgid "" "argument to the widget constructor." msgstr "" -#: ../../library/tkinter.rst:333 msgid "configuration options" msgstr "" -#: ../../library/tkinter.rst:334 msgid "" "Widgets have *configuration options*, which modify their appearance and " "behavior, such as the text to display in a label or button. Different " "classes of widgets will have different sets of options." msgstr "" -#: ../../library/tkinter.rst:338 msgid "geometry management" msgstr "" -#: ../../library/tkinter.rst:339 msgid "" "Widgets aren't automatically added to the user interface when they are " "created. A *geometry manager* like ``grid`` controls where in the user " "interface they are placed." msgstr "" -#: ../../library/tkinter.rst:343 msgid "event loop" msgstr "" -#: ../../library/tkinter.rst:344 msgid "" "Tkinter reacts to user input, changes from your program, and even refreshes " "the display only when actively running an *event loop*. If your program " "isn't running the event loop, your user interface won't update." msgstr "" -#: ../../library/tkinter.rst:350 msgid "Understanding How Tkinter Wraps Tcl/Tk" msgstr "" -#: ../../library/tkinter.rst:352 msgid "" "When your application uses Tkinter's classes and methods, internally Tkinter " "is assembling strings representing Tcl/Tk commands, and executing those " @@ -661,7 +546,6 @@ msgid "" "instance." msgstr "" -#: ../../library/tkinter.rst:357 msgid "" "Whether it's trying to navigate reference documentation, trying to find the " "right method or option, adapting some existing code, or debugging your " @@ -669,22 +553,19 @@ msgid "" "what those underlying Tcl/Tk commands look like." msgstr "" -#: ../../library/tkinter.rst:362 msgid "" "To illustrate, here is the Tcl/Tk equivalent of the main part of the Tkinter " "script above." msgstr "" -#: ../../library/tkinter.rst:367 msgid "" "ttk::frame .frm -padding 10\n" "grid .frm\n" "grid [ttk::label .frm.lbl -text \"Hello World!\"] -column 0 -row 0\n" -"grid [ttk::button .frm.btn -text \"Quit\" -command \"destroy .\"] -column 1 " -"-row 0" +"grid [ttk::button .frm.btn -text \"Quit\" -command \"destroy .\"] -column 1 -" +"row 0" msgstr "" -#: ../../library/tkinter.rst:373 msgid "" "Tcl's syntax is similar to many shell languages, where the first word is the " "command to be executed, with arguments to that command following it, " @@ -692,25 +573,21 @@ msgid "" "following:" msgstr "" -#: ../../library/tkinter.rst:377 msgid "" "The commands used to create widgets (like ``ttk::frame``) correspond to " "widget classes in Tkinter." msgstr "" -#: ../../library/tkinter.rst:380 msgid "" "Tcl widget options (like ``-text``) correspond to keyword arguments in " "Tkinter." msgstr "" -#: ../../library/tkinter.rst:383 msgid "" "Widgets are referred to by a *pathname* in Tcl (like ``.frm.btn``), whereas " "Tkinter doesn't use names but object references." msgstr "" -#: ../../library/tkinter.rst:386 msgid "" "A widget's place in the widget hierarchy is encoded in its (hierarchical) " "pathname, which uses a ``.`` (dot) as a path separator. The pathname for the " @@ -718,7 +595,6 @@ msgid "" "pathname but by specifying the parent widget when creating each child widget." msgstr "" -#: ../../library/tkinter.rst:392 msgid "" "Operations which are implemented as separate *commands* in Tcl (like " "``grid`` or ``destroy``) are represented as *methods* on Tkinter widget " @@ -727,18 +603,15 @@ msgid "" "in Tkinter." msgstr "" -#: ../../library/tkinter.rst:400 msgid "How do I...? What option does...?" msgstr "" -#: ../../library/tkinter.rst:402 msgid "" "If you're not sure how to do something in Tkinter, and you can't immediately " "find it in the tutorial or reference documentation you're using, there are a " "few strategies that can be helpful." msgstr "" -#: ../../library/tkinter.rst:406 msgid "" "First, remember that the details of how individual widgets work may vary " "across different versions of both Tkinter and Tcl/Tk. If you're searching " @@ -746,7 +619,6 @@ msgid "" "installed on your system." msgstr "" -#: ../../library/tkinter.rst:411 msgid "" "When searching for how to use an API, it helps to know the exact name of the " "class, option, or method that you're using. Introspection, either in an " @@ -754,7 +626,6 @@ msgid "" "you need." msgstr "" -#: ../../library/tkinter.rst:416 msgid "" "To find out what configuration options are available on any widget, call " "its :meth:`configure` method, which returns a dictionary containing a " @@ -762,13 +633,11 @@ msgid "" "values. Use :meth:`keys` to get just the names of each option." msgstr "" -#: ../../library/tkinter.rst:423 msgid "" "btn = ttk.Button(frm, ...)\n" "print(btn.configure().keys())" msgstr "" -#: ../../library/tkinter.rst:426 msgid "" "As most widgets have many configuration options in common, it can be useful " "to find out which are specific to a particular widget class. Comparing the " @@ -776,11 +645,9 @@ msgid "" "that." msgstr "" -#: ../../library/tkinter.rst:433 msgid "print(set(btn.configure().keys()) - set(frm.configure().keys()))" msgstr "" -#: ../../library/tkinter.rst:435 msgid "" "Similarly, you can find the available methods for a widget object using the " "standard :func:`dir` function. If you try it, you'll see there are over 200 " @@ -788,17 +655,14 @@ msgid "" "is helpful." msgstr "" -#: ../../library/tkinter.rst:442 msgid "" "print(dir(btn))\n" "print(set(dir(btn)) - set(dir(frm)))" msgstr "" -#: ../../library/tkinter.rst:447 msgid "Navigating the Tcl/Tk Reference Manual" msgstr "" -#: ../../library/tkinter.rst:449 msgid "" "As noted, the official `Tk commands `_ reference manual (man pages) is often the most accurate " @@ -807,7 +671,6 @@ msgid "" "places to look." msgstr "" -#: ../../library/tkinter.rst:454 msgid "" "While all operations in Tkinter are implemented as method calls on widget " "objects, you've seen that many Tcl/Tk operations appear as commands that " @@ -815,13 +678,11 @@ msgid "" "parameters, e.g." msgstr "" -#: ../../library/tkinter.rst:461 msgid "" "destroy .\n" "grid .frm.btn -column 0 -row 0" msgstr "" -#: ../../library/tkinter.rst:464 msgid "" "Others, however, look more like methods called on a widget object (in fact, " "when you create a widget in Tcl/Tk, it creates a Tcl command with the name " @@ -829,58 +690,50 @@ msgid "" "name of a method to call)." msgstr "" -#: ../../library/tkinter.rst:471 msgid "" ".frm.btn invoke\n" ".frm.lbl configure -text \"Goodbye\"" msgstr "" -#: ../../library/tkinter.rst:475 msgid "" "In the official Tcl/Tk reference documentation, you'll find most operations " "that look like method calls on the man page for a specific widget (e.g., " -"you'll find the :meth:`invoke` method on the `ttk::button `_ man page), while functions " -"that take a widget as a parameter often have their own man page (e.g., `grid " -"`_)." +"you'll find the :meth:`invoke` method on the `ttk::button `_ man page), while functions that take a " +"widget as a parameter often have their own man page (e.g., `grid `_)." msgstr "" -#: ../../library/tkinter.rst:483 msgid "" -"You'll find many common options and methods in the `options `_ or `ttk::widget `_ man pages, while others are " -"found in the man page for a specific widget class." +"You'll find many common options and methods in the `options `_ or `ttk::widget `_ man pages, while others are found in the man " +"page for a specific widget class." msgstr "" -#: ../../library/tkinter.rst:488 msgid "" -"You'll also find that many Tkinter methods have compound names, " -"e.g., :func:`winfo_x`, :func:`winfo_height`, :func:`winfo_viewable`. You'd " -"find documentation for all of these in the `winfo `_ man page." +"You'll also find that many Tkinter methods have compound names, e.g., :func:" +"`winfo_x`, :func:`winfo_height`, :func:`winfo_viewable`. You'd find " +"documentation for all of these in the `winfo `_ man page." msgstr "" -#: ../../library/tkinter.rst:494 msgid "" "Somewhat confusingly, there are also methods on all Tkinter widgets that " "don't actually operate on the widget, but operate at a global scope, " "independent of any widget. Examples are methods for accessing the clipboard " -"or the system bell. (They happen to be implemented as methods in the " -"base :class:`Widget` class that all Tkinter widgets inherit from)." +"or the system bell. (They happen to be implemented as methods in the base :" +"class:`Widget` class that all Tkinter widgets inherit from)." msgstr "" -#: ../../library/tkinter.rst:503 msgid "Threading model" msgstr "" -#: ../../library/tkinter.rst:505 msgid "" "Python and Tcl/Tk have very different threading models, which :mod:`tkinter` " "tries to bridge. If you use threads, you may need to be aware of this." msgstr "" -#: ../../library/tkinter.rst:508 msgid "" "A Python interpreter may have many threads associated with it. In Tcl, " "multiple threads can be created, but each thread has a separate Tcl " @@ -889,7 +742,6 @@ msgid "" "by the one thread that created it." msgstr "" -#: ../../library/tkinter.rst:513 msgid "" "Each :class:`Tk` object created by :mod:`tkinter` contains a Tcl " "interpreter. It also keeps track of which thread created that interpreter. " @@ -899,49 +751,43 @@ msgid "" "executed, the result is returned to the calling Python thread." msgstr "" -#: ../../library/tkinter.rst:520 msgid "" "Tcl/Tk applications are normally event-driven, meaning that after " -"initialization, the interpreter runs an event loop " -"(i.e. :func:`Tk.mainloop`) and responds to events. Because it is single-" -"threaded, event handlers must respond quickly, otherwise they will block " -"other events from being processed. To avoid this, any long-running " -"computations should not run in an event handler, but are either broken into " -"smaller pieces using timers, or run in another thread. This is different " -"from many GUI toolkits where the GUI runs in a completely separate thread " -"from all application code including event handlers." +"initialization, the interpreter runs an event loop (i.e. :func:`Tk." +"mainloop`) and responds to events. Because it is single-threaded, event " +"handlers must respond quickly, otherwise they will block other events from " +"being processed. To avoid this, any long-running computations should not run " +"in an event handler, but are either broken into smaller pieces using timers, " +"or run in another thread. This is different from many GUI toolkits where the " +"GUI runs in a completely separate thread from all application code including " +"event handlers." msgstr "" -#: ../../library/tkinter.rst:529 msgid "" "If the Tcl interpreter is not running the event loop and processing events, " "any :mod:`tkinter` calls made from threads other than the one running the " "Tcl interpreter will fail." msgstr "" -#: ../../library/tkinter.rst:533 msgid "A number of special cases exist:" msgstr "" -#: ../../library/tkinter.rst:535 msgid "" -"Tcl/Tk libraries can be built so they are not thread-aware. In this " -"case, :mod:`tkinter` calls the library from the originating Python thread, " -"even if this is different than the thread that created the Tcl interpreter. " -"A global lock ensures only one call occurs at a time." +"Tcl/Tk libraries can be built so they are not thread-aware. In this case, :" +"mod:`tkinter` calls the library from the originating Python thread, even if " +"this is different than the thread that created the Tcl interpreter. A global " +"lock ensures only one call occurs at a time." msgstr "" -#: ../../library/tkinter.rst:540 msgid "" -"While :mod:`tkinter` allows you to create more than one instance of " -"a :class:`Tk` object (with its own interpreter), all interpreters that are " -"part of the same thread share a common event queue, which gets ugly fast. In " +"While :mod:`tkinter` allows you to create more than one instance of a :class:" +"`Tk` object (with its own interpreter), all interpreters that are part of " +"the same thread share a common event queue, which gets ugly fast. In " "practice, don't create more than one instance of :class:`Tk` at a time. " "Otherwise, it's best to create them in separate threads and ensure you're " "running a thread-aware Tcl/Tk build." msgstr "" -#: ../../library/tkinter.rst:546 msgid "" "Blocking event handlers are not the only way to prevent the Tcl interpreter " "from reentering the event loop. It is even possible to run multiple nested " @@ -949,70 +795,57 @@ msgid "" "tricky when it comes to events or threads, be aware of these possibilities." msgstr "" -#: ../../library/tkinter.rst:551 msgid "" "There are a few select :mod:`tkinter` functions that presently work only " "when called from the thread that created the Tcl interpreter." msgstr "" -#: ../../library/tkinter.rst:556 msgid "Handy Reference" msgstr "" -#: ../../library/tkinter.rst:562 msgid "Setting Options" msgstr "" -#: ../../library/tkinter.rst:564 msgid "" "Options control things like the color and border width of a widget. Options " "can be set in three ways:" msgstr "" -#: ../../library/tkinter.rst:567 msgid "At object creation time, using keyword arguments" msgstr "" -#: ../../library/tkinter.rst:570 msgid "fred = Button(self, fg=\"red\", bg=\"blue\")" msgstr "" -#: ../../library/tkinter.rst:572 msgid "After object creation, treating the option name like a dictionary index" msgstr "" -#: ../../library/tkinter.rst:575 msgid "" "fred[\"fg\"] = \"red\"\n" "fred[\"bg\"] = \"blue\"" msgstr "" -#: ../../library/tkinter.rst:578 msgid "" "Use the config() method to update multiple attrs subsequent to object " "creation" msgstr "" -#: ../../library/tkinter.rst:581 msgid "fred.config(fg=\"red\", bg=\"blue\")" msgstr "" -#: ../../library/tkinter.rst:583 msgid "" "For a complete explanation of a given option and its behavior, see the Tk " "man pages for the widget in question." msgstr "" -#: ../../library/tkinter.rst:586 msgid "" "Note that the man pages list \"STANDARD OPTIONS\" and \"WIDGET SPECIFIC " "OPTIONS\" for each widget. The former is a list of options that are common " "to many widgets, the latter are the options that are idiosyncratic to that " -"particular widget. The Standard Options are documented on " -"the :manpage:`options(3)` man page." +"particular widget. The Standard Options are documented on the :manpage:" +"`options(3)` man page." msgstr "" -#: ../../library/tkinter.rst:592 msgid "" "No distinction between standard and widget-specific options is made in this " "document. Some options don't apply to some kinds of widgets. Whether a " @@ -1020,7 +853,6 @@ msgid "" "widget; buttons have a ``command`` option, labels do not." msgstr "" -#: ../../library/tkinter.rst:597 msgid "" "The options supported by a given widget are listed in that widget's man " "page, or can be queried at runtime by calling the :meth:`config` method " @@ -1029,7 +861,6 @@ msgid "" "option as a string (for example, ``'relief'``) and whose values are 5-tuples." msgstr "" -#: ../../library/tkinter.rst:603 msgid "" "Some options, like ``bg`` are synonyms for common options with long names " "(``bg`` is shorthand for \"background\"). Passing the ``config()`` method " @@ -1038,95 +869,73 @@ msgid "" "option (such as ``('bg', 'background')``)." msgstr "" -#: ../../library/tkinter.rst:610 msgid "Index" msgstr "" -#: ../../library/tkinter.rst:610 msgid "Meaning" msgstr "Jelentés" -#: ../../library/tkinter.rst:610 msgid "Example" msgstr "" -#: ../../library/tkinter.rst:612 msgid "0" msgstr "" -#: ../../library/tkinter.rst:612 msgid "option name" msgstr "" -#: ../../library/tkinter.rst:612 ../../library/tkinter.rst:614 msgid "``'relief'``" msgstr "" -#: ../../library/tkinter.rst:614 msgid "1" msgstr "1" -#: ../../library/tkinter.rst:614 msgid "option name for database lookup" msgstr "" -#: ../../library/tkinter.rst:616 msgid "2" msgstr "2" -#: ../../library/tkinter.rst:616 msgid "option class for database lookup" msgstr "" -#: ../../library/tkinter.rst:616 msgid "``'Relief'``" msgstr "" -#: ../../library/tkinter.rst:619 msgid "3" msgstr "3" -#: ../../library/tkinter.rst:619 msgid "default value" msgstr "" -#: ../../library/tkinter.rst:619 msgid "``'raised'``" msgstr "" -#: ../../library/tkinter.rst:621 msgid "4" msgstr "4" -#: ../../library/tkinter.rst:621 msgid "current value" msgstr "" -#: ../../library/tkinter.rst:621 msgid "``'groove'``" msgstr "" -#: ../../library/tkinter.rst:624 msgid "Example::" msgstr "" -#: ../../library/tkinter.rst:626 msgid "" ">>> print(fred.config())\n" "{'relief': ('relief', 'relief', 'Relief', 'raised', 'groove')}" msgstr "" -#: ../../library/tkinter.rst:629 msgid "" "Of course, the dictionary printed will include all the options available and " "their values. This is meant only as an example." msgstr "" -#: ../../library/tkinter.rst:634 msgid "The Packer" msgstr "" -#: ../../library/tkinter.rst:638 msgid "" "The packer is one of Tk's geometry-management mechanisms. Geometry " "managers are used to specify the relative positioning of widgets within " @@ -1137,7 +946,6 @@ msgid "" "coordinates for you." msgstr "" -#: ../../library/tkinter.rst:645 msgid "" "The size of any *master* widget is determined by the size of the \"slave " "widgets\" inside. The packer is used to control where slave widgets appear " @@ -1147,7 +955,6 @@ msgid "" "accommodate incremental changes to the configuration, once it is packed." msgstr "" -#: ../../library/tkinter.rst:652 msgid "" "Note that widgets do not appear until they have had their geometry specified " "with a geometry manager. It's a common early mistake to leave out the " @@ -1156,86 +963,68 @@ msgid "" "the packer's :meth:`pack` method applied to it." msgstr "" -#: ../../library/tkinter.rst:658 msgid "" "The pack() method can be called with keyword-option/value pairs that control " "where the widget is to appear within its container, and how it is to behave " "when the main application window is resized. Here are some examples::" msgstr "" -#: ../../library/tkinter.rst:662 msgid "" "fred.pack() # defaults to side = \"top\"\n" "fred.pack(side=\"left\")\n" "fred.pack(expand=1)" msgstr "" -#: ../../library/tkinter.rst:668 msgid "Packer Options" msgstr "" -#: ../../library/tkinter.rst:670 msgid "" "For more extensive information on the packer and the options that it can " "take, see the man pages and page 183 of John Ousterhout's book." msgstr "" -#: ../../library/tkinter.rst:673 ../../library/tkinter.rst:792 msgid "anchor" msgstr "" -#: ../../library/tkinter.rst:674 msgid "" "Anchor type. Denotes where the packer is to place each slave in its parcel." msgstr "" -#: ../../library/tkinter.rst:676 msgid "expand" msgstr "" -#: ../../library/tkinter.rst:677 msgid "Boolean, ``0`` or ``1``." msgstr "" -#: ../../library/tkinter.rst:679 msgid "fill" msgstr "" -#: ../../library/tkinter.rst:680 msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." msgstr "" -#: ../../library/tkinter.rst:682 msgid "ipadx and ipady" msgstr "" -#: ../../library/tkinter.rst:683 msgid "" "A distance - designating internal padding on each side of the slave widget." msgstr "" -#: ../../library/tkinter.rst:685 msgid "padx and pady" msgstr "" -#: ../../library/tkinter.rst:686 msgid "" "A distance - designating external padding on each side of the slave widget." msgstr "" -#: ../../library/tkinter.rst:688 msgid "side" msgstr "" -#: ../../library/tkinter.rst:689 msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." msgstr "" -#: ../../library/tkinter.rst:693 msgid "Coupling Widget Variables" msgstr "" -#: ../../library/tkinter.rst:695 msgid "" "The current-value setting of some widgets (like text entry widgets) can be " "connected directly to application variables by using special options. These " @@ -1245,7 +1034,6 @@ msgid "" "value." msgstr "" -#: ../../library/tkinter.rst:701 msgid "" "Unfortunately, in the current implementation of :mod:`tkinter` it is not " "possible to hand over an arbitrary Python variable to a widget through a " @@ -1254,21 +1042,18 @@ msgid "" "Variable, defined in :mod:`tkinter`." msgstr "" -#: ../../library/tkinter.rst:707 msgid "" -"There are many useful subclasses of Variable already " -"defined: :class:`StringVar`, :class:`IntVar`, :class:`DoubleVar`, " -"and :class:`BooleanVar`. To read the current value of such a variable, call " -"the :meth:`get` method on it, and to change its value you call the :meth:`!" -"set` method. If you follow this protocol, the widget will always track the " -"value of the variable, with no further intervention on your part." +"There are many useful subclasses of Variable already defined: :class:" +"`StringVar`, :class:`IntVar`, :class:`DoubleVar`, and :class:`BooleanVar`. " +"To read the current value of such a variable, call the :meth:`get` method on " +"it, and to change its value you call the :meth:`!set` method. If you follow " +"this protocol, the widget will always track the value of the variable, with " +"no further intervention on your part." msgstr "" -#: ../../library/tkinter.rst:714 ../../library/tkinter.rst:894 msgid "For example::" msgstr "" -#: ../../library/tkinter.rst:716 msgid "" "import tkinter as tk\n" "\n" @@ -1301,11 +1086,9 @@ msgid "" "myapp.mainloop()" msgstr "" -#: ../../library/tkinter.rst:747 msgid "The Window Manager" msgstr "" -#: ../../library/tkinter.rst:751 msgid "" "In Tk, there is a utility command, ``wm``, for interacting with the window " "manager. Options to the ``wm`` command allow you to control things like " @@ -1315,22 +1098,19 @@ msgid "" "the :class:`Wm` methods directly." msgstr "" -#: ../../library/tkinter.rst:758 msgid "" "To get at the toplevel window that contains a given widget, you can often " "just refer to the widget's master. Of course if the widget has been packed " "inside of a frame, the master won't represent a toplevel window. To get at " -"the toplevel window that contains an arbitrary widget, you can call " -"the :meth:`_root` method. This method begins with an underscore to denote " -"the fact that this function is part of the implementation, and not an " -"interface to Tk functionality." +"the toplevel window that contains an arbitrary widget, you can call the :" +"meth:`_root` method. This method begins with an underscore to denote the " +"fact that this function is part of the implementation, and not an interface " +"to Tk functionality." msgstr "" -#: ../../library/tkinter.rst:765 msgid "Here are some examples of typical usage::" msgstr "" -#: ../../library/tkinter.rst:767 msgid "" "import tkinter as tk\n" "\n" @@ -1352,22 +1132,18 @@ msgid "" "myapp.mainloop()" msgstr "" -#: ../../library/tkinter.rst:788 ../../library/tkinter.rst:790 msgid "Tk Option Data Types" msgstr "" -#: ../../library/tkinter.rst:793 msgid "" "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, " "``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also " "``\"center\"``." msgstr "" -#: ../../library/tkinter.rst:796 msgid "bitmap" msgstr "" -#: ../../library/tkinter.rst:797 msgid "" "There are eight built-in, named bitmaps: ``'error'``, ``'gray25'``, " "``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " @@ -1375,34 +1151,27 @@ msgid "" "file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "" -#: ../../library/tkinter.rst:802 msgid "boolean" msgstr "" -#: ../../library/tkinter.rst:803 msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." msgstr "" -#: ../../library/tkinter.rst:805 msgid "callback" msgstr "" -#: ../../library/tkinter.rst:806 msgid "This is any Python function that takes no arguments. For example::" msgstr "" -#: ../../library/tkinter.rst:808 msgid "" "def print_it():\n" " print(\"hi there\")\n" "fred[\"command\"] = print_it" msgstr "" -#: ../../library/tkinter.rst:812 msgid "color" msgstr "" -#: ../../library/tkinter.rst:813 msgid "" "Colors can be given as the names of X colors in the rgb.txt file, or as " "strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: " @@ -1411,11 +1180,9 @@ msgid "" "digit. See page 160 of Ousterhout's book for details." msgstr "" -#: ../../library/tkinter.rst:818 msgid "cursor" msgstr "" -#: ../../library/tkinter.rst:819 msgid "" "The standard X cursor names from :file:`cursorfont.h` can be used, without " "the ``XC_`` prefix. For example to get a hand cursor (:const:`XC_hand2`), " @@ -1423,11 +1190,9 @@ msgid "" "of your own. See page 179 of Ousterhout's book." msgstr "" -#: ../../library/tkinter.rst:824 msgid "distance" msgstr "" -#: ../../library/tkinter.rst:825 msgid "" "Screen distances can be specified in either pixels or absolute distances. " "Pixels are given as numbers and absolute distances as strings, with the " @@ -1436,124 +1201,100 @@ msgid "" "is expressed as ``\"3.5i\"``." msgstr "" -#: ../../library/tkinter.rst:831 msgid "font" msgstr "" -#: ../../library/tkinter.rst:832 msgid "" "Tk uses a list font name format, such as ``{courier 10 bold}``. Font sizes " "with positive numbers are measured in points; sizes with negative numbers " "are measured in pixels." msgstr "" -#: ../../library/tkinter.rst:836 msgid "geometry" msgstr "" -#: ../../library/tkinter.rst:837 msgid "" "This is a string of the form ``widthxheight``, where width and height are " "measured in pixels for most widgets (in characters for widgets displaying " "text). For example: ``fred[\"geometry\"] = \"200x100\"``." msgstr "" -#: ../../library/tkinter.rst:841 msgid "justify" msgstr "" -#: ../../library/tkinter.rst:842 msgid "" "Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " "and ``\"fill\"``." msgstr "" -#: ../../library/tkinter.rst:845 msgid "region" msgstr "" -#: ../../library/tkinter.rst:846 msgid "" "This is a string with four space-delimited elements, each of which is a " "legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i " "2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgstr "" -#: ../../library/tkinter.rst:850 msgid "relief" msgstr "" -#: ../../library/tkinter.rst:851 msgid "" "Determines what the border style of a widget will be. Legal values are: " "``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and " "``\"ridge\"``." msgstr "" -#: ../../library/tkinter.rst:854 msgid "scrollcommand" msgstr "" -#: ../../library/tkinter.rst:855 msgid "" "This is almost always the :meth:`!set` method of some scrollbar widget, but " "can be any widget method that takes a single argument." msgstr "" -#: ../../library/tkinter.rst:858 msgid "wrap" msgstr "" -#: ../../library/tkinter.rst:859 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." msgstr "" -#: ../../library/tkinter.rst:864 msgid "Bindings and Events" msgstr "" -#: ../../library/tkinter.rst:870 msgid "" "The bind method from the widget command allows you to watch for certain " "events and to have a callback function trigger when that event type occurs. " "The form of the bind method is::" msgstr "" -#: ../../library/tkinter.rst:874 msgid "def bind(self, sequence, func, add=''):" msgstr "" -#: ../../library/tkinter.rst:876 msgid "where:" msgstr "" -#: ../../library/tkinter.rst:878 msgid "sequence" msgstr "" -#: ../../library/tkinter.rst:879 msgid "" -"is a string that denotes the target kind of event. (See " -"the :manpage:`bind(3tk)` man page, and page 201 of John Ousterhout's " -"book, :title-reference:`Tcl and the Tk Toolkit (2nd edition)`, for details)." +"is a string that denotes the target kind of event. (See the :manpage:" +"`bind(3tk)` man page, and page 201 of John Ousterhout's book, :title-" +"reference:`Tcl and the Tk Toolkit (2nd edition)`, for details)." msgstr "" -#: ../../library/tkinter.rst:883 msgid "func" msgstr "" -#: ../../library/tkinter.rst:884 msgid "" "is a Python function, taking one argument, to be invoked when the event " "occurs. An Event instance will be passed as the argument. (Functions " "deployed this way are commonly known as *callbacks*.)" msgstr "" -#: ../../library/tkinter.rst:888 msgid "add" msgstr "" -#: ../../library/tkinter.rst:889 msgid "" "is optional, either ``''`` or ``'+'``. Passing an empty string denotes that " "this binding is to replace any other bindings that this event is associated " @@ -1561,7 +1302,6 @@ msgid "" "of functions bound to this event type." msgstr "" -#: ../../library/tkinter.rst:896 msgid "" "def turn_red(self, event):\n" " event.widget[\"activeforeground\"] = \"red\"\n" @@ -1569,7 +1309,6 @@ msgid "" "self.button.bind(\"\", self.turn_red)" msgstr "" -#: ../../library/tkinter.rst:901 msgid "" "Notice how the widget field of the event is being accessed in the " "``turn_red()`` callback. This field contains the widget that caught the X " @@ -1578,209 +1317,162 @@ msgid "" "pages." msgstr "" -#: ../../library/tkinter.rst:907 msgid "Tkinter Event Field" msgstr "" -#: ../../library/tkinter.rst:909 msgid "%f" msgstr "" -#: ../../library/tkinter.rst:909 msgid "focus" msgstr "" -#: ../../library/tkinter.rst:909 msgid "%A" msgstr "" -#: ../../library/tkinter.rst:909 msgid "char" msgstr "" -#: ../../library/tkinter.rst:911 msgid "%h" msgstr "" -#: ../../library/tkinter.rst:911 msgid "height" msgstr "" -#: ../../library/tkinter.rst:911 msgid "%E" msgstr "" -#: ../../library/tkinter.rst:911 msgid "send_event" msgstr "" -#: ../../library/tkinter.rst:913 msgid "%k" msgstr "" -#: ../../library/tkinter.rst:913 msgid "keycode" msgstr "" -#: ../../library/tkinter.rst:913 msgid "%K" msgstr "" -#: ../../library/tkinter.rst:913 msgid "keysym" msgstr "" -#: ../../library/tkinter.rst:915 msgid "%s" msgstr "" -#: ../../library/tkinter.rst:915 msgid "state" msgstr "" -#: ../../library/tkinter.rst:915 msgid "%N" msgstr "" -#: ../../library/tkinter.rst:915 msgid "keysym_num" msgstr "" -#: ../../library/tkinter.rst:917 msgid "%t" msgstr "" -#: ../../library/tkinter.rst:917 msgid "time" msgstr "" -#: ../../library/tkinter.rst:917 msgid "%T" msgstr "" -#: ../../library/tkinter.rst:917 msgid "type" msgstr "" -#: ../../library/tkinter.rst:919 msgid "%w" msgstr "" -#: ../../library/tkinter.rst:919 msgid "width" msgstr "" -#: ../../library/tkinter.rst:919 msgid "%W" msgstr "" -#: ../../library/tkinter.rst:919 msgid "widget" msgstr "" -#: ../../library/tkinter.rst:921 msgid "%x" msgstr "" -#: ../../library/tkinter.rst:921 msgid "x" msgstr "" -#: ../../library/tkinter.rst:921 msgid "%X" msgstr "" -#: ../../library/tkinter.rst:921 msgid "x_root" msgstr "" -#: ../../library/tkinter.rst:923 msgid "%y" msgstr "" -#: ../../library/tkinter.rst:923 msgid "y" msgstr "" -#: ../../library/tkinter.rst:923 msgid "%Y" msgstr "" -#: ../../library/tkinter.rst:923 msgid "y_root" msgstr "" -#: ../../library/tkinter.rst:928 msgid "The index Parameter" msgstr "" -#: ../../library/tkinter.rst:930 msgid "" "A number of widgets require \"index\" parameters to be passed. These are " "used to point at a specific place in a Text widget, or to particular " "characters in an Entry widget, or to particular menu items in a Menu widget." msgstr "" -#: ../../library/tkinter.rst:934 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" -#: ../../library/tkinter.rst:935 msgid "" "Entry widgets have options that refer to character positions in the text " "being displayed. You can use these :mod:`tkinter` functions to access these " "special points in text widgets:" msgstr "" -#: ../../library/tkinter.rst:939 msgid "Text widget indexes" msgstr "" -#: ../../library/tkinter.rst:940 msgid "" "The index notation for Text widgets is very rich and is best described in " "the Tk man pages." msgstr "" -#: ../../library/tkinter.rst:943 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" msgstr "" -#: ../../library/tkinter.rst:944 msgid "" "Some options and methods for menus manipulate specific menu entries. Anytime " "a menu index is needed for an option or a parameter, you may pass in:" msgstr "" -#: ../../library/tkinter.rst:947 msgid "" "an integer which refers to the numeric position of the entry in the widget, " "counted from the top, starting with 0;" msgstr "" -#: ../../library/tkinter.rst:950 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" -#: ../../library/tkinter.rst:953 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" -#: ../../library/tkinter.rst:955 msgid "" "An integer preceded by ``@``, as in ``@6``, where the integer is interpreted " "as a y pixel coordinate in the menu's coordinate system;" msgstr "" -#: ../../library/tkinter.rst:958 msgid "" "the string ``\"none\"``, which indicates no menu entry at all, most often " "used with menu.activate() to deactivate all entries, and finally," msgstr "" -#: ../../library/tkinter.rst:961 msgid "" "a text string that is pattern matched against the label of the menu entry, " "as scanned from the top of the menu to the bottom. Note that this index " @@ -1789,42 +1481,35 @@ msgid "" "above literals, instead." msgstr "" -#: ../../library/tkinter.rst:969 msgid "Images" msgstr "" -#: ../../library/tkinter.rst:971 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" -#: ../../library/tkinter.rst:974 msgid ":class:`BitmapImage` for images in XBM format." msgstr "" -#: ../../library/tkinter.rst:976 msgid "" ":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " "is supported starting with Tk 8.6." msgstr "" -#: ../../library/tkinter.rst:979 msgid "" "Either type of image is created through either the ``file`` or the ``data`` " "option (other options are available as well)." msgstr "" -#: ../../library/tkinter.rst:982 msgid "" "Added the :class:`!PhotoImage` method :meth:`!copy_replace` to copy a region " "from one image to other image, possibly with pixel zooming and/or " -"subsampling. Add *from_coords* parameter to :class:`!PhotoImage` " -"methods :meth:`!copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and " +"subsampling. Add *from_coords* parameter to :class:`!PhotoImage` methods :" +"meth:`!copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and " "*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy`." msgstr "" -#: ../../library/tkinter.rst:991 msgid "" "The image object can then be used wherever an ``image`` option is supported " "by some widget (e.g. labels, buttons, menus). In these cases, Tk will not " @@ -1833,24 +1518,20 @@ msgid "" "empty box wherever the image was used." msgstr "" -#: ../../library/tkinter.rst:999 msgid "" "The `Pillow `_ package adds support for formats " "such as BMP, JPEG, TIFF, and WebP, among others." msgstr "" -#: ../../library/tkinter.rst:1005 msgid "File Handlers" msgstr "" -#: ../../library/tkinter.rst:1007 msgid "" "Tk allows you to register and unregister a callback function which will be " "called from the Tk mainloop when I/O is possible on a file descriptor. Only " "one handler may be registered per file descriptor. Example code::" msgstr "" -#: ../../library/tkinter.rst:1011 msgid "" "import tkinter\n" "widget = tkinter.Tk()\n" @@ -1860,22 +1541,19 @@ msgid "" "widget.tk.deletefilehandler(file)" msgstr "" -#: ../../library/tkinter.rst:1018 msgid "This feature is not available on Windows." msgstr "" -#: ../../library/tkinter.rst:1020 msgid "" "Since you don't know how many bytes are available for reading, you may not " -"want to use the :class:`~io.BufferedIOBase` " -"or :class:`~io.TextIOBase` :meth:`~io.BufferedIOBase.read` " -"or :meth:`~io.IOBase.readline` methods, since these will insist on reading a " -"predefined number of bytes. For sockets, the :meth:`~socket.socket.recv` " -"or :meth:`~socket.socket.recvfrom` methods will work fine; for other files, " -"use raw reads or ``os.read(file.fileno(), maxbytecount)``." +"want to use the :class:`~io.BufferedIOBase` or :class:`~io.TextIOBase` :meth:" +"`~io.BufferedIOBase.read` or :meth:`~io.IOBase.readline` methods, since " +"these will insist on reading a predefined number of bytes. For sockets, the :" +"meth:`~socket.socket.recv` or :meth:`~socket.socket.recvfrom` methods will " +"work fine; for other files, use raw reads or ``os.read(file.fileno(), " +"maxbytecount)``." msgstr "" -#: ../../library/tkinter.rst:1031 msgid "" "Registers the file handler callback function *func*. The *file* argument may " "either be an object with a :meth:`~io.IOBase.fileno` method (such as a file " @@ -1884,30 +1562,23 @@ msgid "" "as follows::" msgstr "" -#: ../../library/tkinter.rst:1037 msgid "callback(file, mask)" msgstr "" -#: ../../library/tkinter.rst:1042 msgid "Unregisters a file handler." msgstr "" -#: ../../library/tkinter.rst:1049 msgid "Constants used in the *mask* arguments." msgstr "" -#: ../../library/tkinter.rst:636 msgid "packing (widgets)" msgstr "" -#: ../../library/tkinter.rst:749 msgid "window manager (widgets)" msgstr "" -#: ../../library/tkinter.rst:866 msgid "bind (widgets)" msgstr "" -#: ../../library/tkinter.rst:866 msgid "events (widgets)" msgstr "" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index 06f74cb..7ec317c 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.scrolledtext.rst:2 msgid ":mod:`!tkinter.scrolledtext` --- Scrolled Text Widget" msgstr "" -#: ../../library/tkinter.scrolledtext.rst:10 msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" msgstr "" -#: ../../library/tkinter.scrolledtext.rst:14 msgid "" "The :mod:`tkinter.scrolledtext` module provides a class of the same name " "which implements a basic text widget which has a vertical scroll bar " @@ -34,25 +31,21 @@ msgid "" "is a lot easier than setting up a text widget and scroll bar directly." msgstr "" -#: ../../library/tkinter.scrolledtext.rst:19 msgid "" "The text widget and scrollbar are packed together in a :class:`Frame`, and " "the methods of the :class:`Grid` and :class:`Pack` geometry managers are " -"acquired from the :class:`Frame` object. This allows " -"the :class:`ScrolledText` widget to be used directly to achieve most normal " -"geometry management behavior." +"acquired from the :class:`Frame` object. This allows the :class:" +"`ScrolledText` widget to be used directly to achieve most normal geometry " +"management behavior." msgstr "" -#: ../../library/tkinter.scrolledtext.rst:24 msgid "" "Should more specific control be necessary, the following attributes are " "available:" msgstr "" -#: ../../library/tkinter.scrolledtext.rst:32 msgid "The frame which surrounds the text and scroll bar widgets." msgstr "" -#: ../../library/tkinter.scrolledtext.rst:37 msgid "The scroll bar widget." msgstr "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index be76ed0..3797708 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tkinter.ttk.rst:2 msgid ":mod:`!tkinter.ttk` --- Tk themed widgets" msgstr "" -#: ../../library/tkinter.ttk.rst:9 msgid "**Source code:** :source:`Lib/tkinter/ttk.py`" msgstr "" -#: ../../library/tkinter.ttk.rst:15 msgid "" "The :mod:`tkinter.ttk` module provides access to the Tk themed widget set, " "introduced in Tk 8.5. It provides additional benefits including anti-aliased " @@ -34,53 +31,45 @@ msgid "" "window manager on X11)." msgstr "" -#: ../../library/tkinter.ttk.rst:20 msgid "" "The basic idea for :mod:`tkinter.ttk` is to separate, to the extent " "possible, the code implementing a widget's behavior from the code " "implementing its appearance." msgstr "" -#: ../../library/tkinter.ttk.rst:27 msgid "" "`Tk Widget Styling Support `_" msgstr "" -#: ../../library/tkinter.ttk.rst:28 msgid "A document introducing theming support for Tk" msgstr "" -#: ../../library/tkinter.ttk.rst:32 msgid "Using Ttk" msgstr "" -#: ../../library/tkinter.ttk.rst:34 msgid "To start using Ttk, import its module::" msgstr "" -#: ../../library/tkinter.ttk.rst:36 msgid "from tkinter import ttk" msgstr "" -#: ../../library/tkinter.ttk.rst:38 msgid "" "To override the basic Tk widgets, the import should follow the Tk import::" msgstr "" -#: ../../library/tkinter.ttk.rst:40 msgid "" "from tkinter import *\n" "from tkinter.ttk import *" msgstr "" -#: ../../library/tkinter.ttk.rst:43 msgid "" -"That code causes several :mod:`tkinter.ttk` widgets " -"(:class:`Button`, :class:`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:`Label`, :class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :class:`Radiobutton`, :class:`Scale` " -"and :class:`Scrollbar`) to automatically replace the Tk widgets." +"That code causes several :mod:`tkinter.ttk` widgets (:class:`Button`, :class:" +"`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:`Label`, :class:" +"`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :class:" +"`Radiobutton`, :class:`Scale` and :class:`Scrollbar`) to automatically " +"replace the Tk widgets." msgstr "" -#: ../../library/tkinter.ttk.rst:49 msgid "" "This has the direct benefit of using the new widgets which gives a better " "look and feel across platforms; however, the replacement widgets are not " @@ -90,52 +79,45 @@ msgid "" "styling effects." msgstr "" -#: ../../library/tkinter.ttk.rst:59 msgid "" -"`Converting existing applications to use Tile widgets `_" +"`Converting existing applications to use Tile widgets `_" msgstr "" -#: ../../library/tkinter.ttk.rst:60 msgid "" "A monograph (using Tcl terminology) about differences typically encountered " "when moving applications to use the new widgets." msgstr "" -#: ../../library/tkinter.ttk.rst:65 msgid "Ttk Widgets" msgstr "" -#: ../../library/tkinter.ttk.rst:67 msgid "" -"Ttk comes with 18 widgets, twelve of which already existed in " -"tkinter: :class:`Button`, :class:`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:`Label`, :class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :class:`Radiobutton`, :class:`Scale`, :class:`Scrollbar`, " -"and :class:`Spinbox`. The other six are " -"new: :class:`Combobox`, :class:`Notebook`, :class:`Progressbar`, :class:`Separator`, :class:`Sizegrip` " -"and :class:`Treeview`. And all them are subclasses of :class:`Widget`." +"Ttk comes with 18 widgets, twelve of which already existed in tkinter: :" +"class:`Button`, :class:`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:" +"`Label`, :class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :" +"class:`Radiobutton`, :class:`Scale`, :class:`Scrollbar`, and :class:" +"`Spinbox`. The other six are new: :class:`Combobox`, :class:`Notebook`, :" +"class:`Progressbar`, :class:`Separator`, :class:`Sizegrip` and :class:" +"`Treeview`. And all them are subclasses of :class:`Widget`." msgstr "" -#: ../../library/tkinter.ttk.rst:75 msgid "" "Using the Ttk widgets gives the application an improved look and feel. As " "discussed above, there are differences in how the styling is coded." msgstr "" -#: ../../library/tkinter.ttk.rst:78 msgid "Tk code::" msgstr "" -#: ../../library/tkinter.ttk.rst:80 msgid "" "l1 = tkinter.Label(text=\"Test\", fg=\"black\", bg=\"white\")\n" "l2 = tkinter.Label(text=\"Test\", fg=\"black\", bg=\"white\")" msgstr "" -#: ../../library/tkinter.ttk.rst:84 msgid "Ttk code::" msgstr "" -#: ../../library/tkinter.ttk.rst:86 msgid "" "style = ttk.Style()\n" "style.configure(\"BW.TLabel\", foreground=\"black\", background=\"white\")\n" @@ -144,56 +126,34 @@ msgid "" "l2 = ttk.Label(text=\"Test\", style=\"BW.TLabel\")" msgstr "" -#: ../../library/tkinter.ttk.rst:92 msgid "" "For more information about TtkStyling_, see the :class:`Style` class " "documentation." msgstr "" -#: ../../library/tkinter.ttk.rst:96 msgid "Widget" msgstr "" -#: ../../library/tkinter.ttk.rst:98 msgid "" ":class:`ttk.Widget` defines standard options and methods supported by Tk " "themed widgets and is not supposed to be directly instantiated." msgstr "" -#: ../../library/tkinter.ttk.rst:103 msgid "Standard Options" msgstr "" -#: ../../library/tkinter.ttk.rst:105 msgid "All the :mod:`ttk` Widgets accept the following options:" msgstr "" -#: ../../library/tkinter.ttk.rst:110 ../../library/tkinter.ttk.rst:145 -#: ../../library/tkinter.ttk.rst:171 ../../library/tkinter.ttk.rst:214 -#: ../../library/tkinter.ttk.rst:317 ../../library/tkinter.ttk.rst:403 -#: ../../library/tkinter.ttk.rst:479 ../../library/tkinter.ttk.rst:505 -#: ../../library/tkinter.ttk.rst:669 ../../library/tkinter.ttk.rst:740 -#: ../../library/tkinter.ttk.rst:808 ../../library/tkinter.ttk.rst:859 -#: ../../library/tkinter.ttk.rst:887 msgid "Option" msgstr "" -#: ../../library/tkinter.ttk.rst:110 ../../library/tkinter.ttk.rst:145 -#: ../../library/tkinter.ttk.rst:171 ../../library/tkinter.ttk.rst:214 -#: ../../library/tkinter.ttk.rst:230 ../../library/tkinter.ttk.rst:317 -#: ../../library/tkinter.ttk.rst:403 ../../library/tkinter.ttk.rst:479 -#: ../../library/tkinter.ttk.rst:505 ../../library/tkinter.ttk.rst:669 -#: ../../library/tkinter.ttk.rst:740 ../../library/tkinter.ttk.rst:808 -#: ../../library/tkinter.ttk.rst:859 ../../library/tkinter.ttk.rst:887 -#: ../../library/tkinter.ttk.rst:932 msgid "Description" msgstr "" -#: ../../library/tkinter.ttk.rst:112 msgid "class" msgstr "" -#: ../../library/tkinter.ttk.rst:112 msgid "" "Specifies the window class. The class is used when querying the option " "database for the window's other options, to determine the default bindtags " @@ -201,21 +161,17 @@ msgid "" "option is read-only, and may only be specified when the window is created." msgstr "" -#: ../../library/tkinter.ttk.rst:119 msgid "cursor" msgstr "" -#: ../../library/tkinter.ttk.rst:119 msgid "" "Specifies the mouse cursor to be used for the widget. If set to the empty " "string (the default), the cursor is inherited for the parent widget." msgstr "" -#: ../../library/tkinter.ttk.rst:123 msgid "takefocus" msgstr "" -#: ../../library/tkinter.ttk.rst:123 msgid "" "Determines whether the window accepts the focus during keyboard traversal. " "0, 1 or an empty string is returned. If 0 is returned, it means that the " @@ -225,100 +181,78 @@ msgid "" "whether or not to focus on the window." msgstr "" -#: ../../library/tkinter.ttk.rst:132 msgid "style" msgstr "" -#: ../../library/tkinter.ttk.rst:132 msgid "May be used to specify a custom widget style." msgstr "" -#: ../../library/tkinter.ttk.rst:137 msgid "Scrollable Widget Options" msgstr "" -#: ../../library/tkinter.ttk.rst:139 msgid "" "The following options are supported by widgets that are controlled by a " "scrollbar." msgstr "" -#: ../../library/tkinter.ttk.rst:147 msgid "xscrollcommand" msgstr "" -#: ../../library/tkinter.ttk.rst:147 msgid "Used to communicate with horizontal scrollbars." msgstr "" -#: ../../library/tkinter.ttk.rst:149 msgid "" "When the view in the widget's window change, the widget will generate a Tcl " "command based on the scrollcommand." msgstr "" -#: ../../library/tkinter.ttk.rst:152 msgid "" "Usually this option consists of the method :meth:`Scrollbar.set` of some " "scrollbar. This will cause the scrollbar to be updated whenever the view in " "the window changes." msgstr "" -#: ../../library/tkinter.ttk.rst:157 msgid "yscrollcommand" msgstr "" -#: ../../library/tkinter.ttk.rst:157 msgid "" "Used to communicate with vertical scrollbars. For some more information, see " "above." msgstr "" -#: ../../library/tkinter.ttk.rst:163 msgid "Label Options" msgstr "" -#: ../../library/tkinter.ttk.rst:165 msgid "" "The following options are supported by labels, buttons and other button-like " "widgets." msgstr "" -#: ../../library/tkinter.ttk.rst:173 ../../library/tkinter.ttk.rst:521 -#: ../../library/tkinter.ttk.rst:861 msgid "text" msgstr "" -#: ../../library/tkinter.ttk.rst:173 msgid "Specifies a text string to be displayed inside the widget." msgstr "" -#: ../../library/tkinter.ttk.rst:175 ../../library/tkinter.ttk.rst:339 msgid "textvariable" msgstr "" -#: ../../library/tkinter.ttk.rst:175 msgid "" "Specifies a name whose value will be used in place of the text option " "resource." msgstr "" -#: ../../library/tkinter.ttk.rst:178 ../../library/tkinter.ttk.rst:530 msgid "underline" msgstr "" -#: ../../library/tkinter.ttk.rst:178 msgid "" "If set, specifies the index (0-based) of a character to underline in the " "text string. The underline character is used for mnemonic activation." msgstr "" -#: ../../library/tkinter.ttk.rst:182 ../../library/tkinter.ttk.rst:523 -#: ../../library/tkinter.ttk.rst:863 ../../library/tkinter.ttk.rst:895 msgid "image" msgstr "" -#: ../../library/tkinter.ttk.rst:182 msgid "" "Specifies an image to display. This is a list of 1 or more elements. The " "first element is the default image name. The rest of the list if a sequence " @@ -327,187 +261,146 @@ msgid "" "combination of states. All images in the list should have the same size." msgstr "" -#: ../../library/tkinter.ttk.rst:190 ../../library/tkinter.ttk.rst:526 msgid "compound" msgstr "" -#: ../../library/tkinter.ttk.rst:190 msgid "" "Specifies how to display the image relative to the text, in the case both " "text and images options are present. Valid values are:" msgstr "" -#: ../../library/tkinter.ttk.rst:194 msgid "text: display text only" msgstr "" -#: ../../library/tkinter.ttk.rst:195 msgid "image: display image only" msgstr "" -#: ../../library/tkinter.ttk.rst:196 msgid "" "top, bottom, left, right: display image above, below, left of, or right of " "the text, respectively." msgstr "" -#: ../../library/tkinter.ttk.rst:198 msgid "none: the default. display the image if present, otherwise the text." msgstr "" -#: ../../library/tkinter.ttk.rst:201 ../../library/tkinter.ttk.rst:347 -#: ../../library/tkinter.ttk.rst:491 msgid "width" msgstr "" -#: ../../library/tkinter.ttk.rst:201 msgid "" "If greater than zero, specifies how much space, in character widths, to " "allocate for the text label, if less than zero, specifies a minimum width. " "If zero or unspecified, the natural width of the text label is used." msgstr "" -#: ../../library/tkinter.ttk.rst:209 msgid "Compatibility Options" msgstr "" -#: ../../library/tkinter.ttk.rst:216 ../../library/tkinter.ttk.rst:332 -#: ../../library/tkinter.ttk.rst:507 msgid "state" msgstr "" -#: ../../library/tkinter.ttk.rst:216 msgid "" "May be set to \"normal\" or \"disabled\" to control the \"disabled\" state " "bit. This is a write-only option: setting it changes the widget state, but " "the :meth:`Widget.state` method does not affect this option." msgstr "" -#: ../../library/tkinter.ttk.rst:223 msgid "Widget States" msgstr "" -#: ../../library/tkinter.ttk.rst:225 msgid "The widget state is a bitmap of independent state flags." msgstr "" -#: ../../library/tkinter.ttk.rst:230 msgid "Flag" msgstr "" -#: ../../library/tkinter.ttk.rst:232 msgid "active" msgstr "" -#: ../../library/tkinter.ttk.rst:232 msgid "" "The mouse cursor is over the widget and pressing a mouse button will cause " "some action to occur" msgstr "" -#: ../../library/tkinter.ttk.rst:235 msgid "disabled" msgstr "" -#: ../../library/tkinter.ttk.rst:235 msgid "Widget is disabled under program control" msgstr "" -#: ../../library/tkinter.ttk.rst:237 msgid "focus" msgstr "" -#: ../../library/tkinter.ttk.rst:237 msgid "Widget has keyboard focus" msgstr "" -#: ../../library/tkinter.ttk.rst:239 msgid "pressed" msgstr "" -#: ../../library/tkinter.ttk.rst:239 msgid "Widget is being pressed" msgstr "" -#: ../../library/tkinter.ttk.rst:241 msgid "selected" msgstr "" -#: ../../library/tkinter.ttk.rst:241 msgid "" "\"On\", \"true\", or \"current\" for things like Checkbuttons and " "radiobuttons" msgstr "" -#: ../../library/tkinter.ttk.rst:244 ../../library/tkinter.ttk.rst:891 msgid "background" msgstr "" -#: ../../library/tkinter.ttk.rst:244 msgid "" "Windows and Mac have a notion of an \"active\" or foreground window. The " "*background* state is set for widgets in a background window, and cleared " "for those in the foreground window" msgstr "" -#: ../../library/tkinter.ttk.rst:249 msgid "readonly" msgstr "" -#: ../../library/tkinter.ttk.rst:249 msgid "Widget should not allow user modification" msgstr "" -#: ../../library/tkinter.ttk.rst:251 msgid "alternate" msgstr "" -#: ../../library/tkinter.ttk.rst:251 msgid "A widget-specific alternate display format" msgstr "" -#: ../../library/tkinter.ttk.rst:253 msgid "invalid" msgstr "" -#: ../../library/tkinter.ttk.rst:253 msgid "The widget's value is invalid" msgstr "" -#: ../../library/tkinter.ttk.rst:256 msgid "" "A state specification is a sequence of state names, optionally prefixed with " "an exclamation point indicating that the bit is off." msgstr "" -#: ../../library/tkinter.ttk.rst:261 msgid "ttk.Widget" msgstr "" -#: ../../library/tkinter.ttk.rst:263 msgid "" "Besides the methods described below, the :class:`ttk.Widget` supports the " "methods :meth:`tkinter.Widget.cget` and :meth:`tkinter.Widget.configure`." msgstr "" -#: ../../library/tkinter.ttk.rst:270 msgid "" "Returns the name of the element at position *x* *y*, or the empty string if " "the point does not lie within any element." msgstr "" -#: ../../library/tkinter.ttk.rst:273 msgid "*x* and *y* are pixel coordinates relative to the widget." msgstr "" -#: ../../library/tkinter.ttk.rst:278 msgid "" "Test the widget's state. If a callback is not specified, returns ``True`` if " "the widget state matches *statespec* and ``False`` otherwise. If callback is " "specified then it is called with args if widget state matches *statespec*." msgstr "" -#: ../../library/tkinter.ttk.rst:286 msgid "" "Modify or inquire widget state. If *statespec* is specified, sets the widget " "state according to it and return a new *statespec* indicating which flags " @@ -515,82 +408,63 @@ msgid "" "state flags." msgstr "" -#: ../../library/tkinter.ttk.rst:291 msgid "*statespec* will usually be a list or a tuple." msgstr "" -#: ../../library/tkinter.ttk.rst:295 msgid "Combobox" msgstr "" -#: ../../library/tkinter.ttk.rst:297 msgid "" "The :class:`ttk.Combobox` widget combines a text field with a pop-down list " "of values. This widget is a subclass of :class:`Entry`." msgstr "" -#: ../../library/tkinter.ttk.rst:300 msgid "" -"Besides the methods inherited " -"from :class:`Widget`: :meth:`Widget.cget`, :meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " -"and :meth:`Widget.state`, and the following inherited " -"from :class:`Entry`: :meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry.index`, :meth:`Entry.insert`, :meth:`Entry.selection`, :meth:`Entry.xview`, " +"Besides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, :" +"meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " +"and :meth:`Widget.state`, and the following inherited from :class:`Entry`: :" +"meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry." +"index`, :meth:`Entry.insert`, :meth:`Entry.selection`, :meth:`Entry.xview`, " "it has some other methods, described at :class:`ttk.Combobox`." msgstr "" -#: ../../library/tkinter.ttk.rst:310 ../../library/tkinter.ttk.rst:396 -#: ../../library/tkinter.ttk.rst:472 ../../library/tkinter.ttk.rst:662 -#: ../../library/tkinter.ttk.rst:733 ../../library/tkinter.ttk.rst:801 msgid "Options" msgstr "" -#: ../../library/tkinter.ttk.rst:312 ../../library/tkinter.ttk.rst:398 -#: ../../library/tkinter.ttk.rst:474 ../../library/tkinter.ttk.rst:664 -#: ../../library/tkinter.ttk.rst:803 msgid "This widget accepts the following specific options:" msgstr "" -#: ../../library/tkinter.ttk.rst:319 msgid "exportselection" msgstr "" -#: ../../library/tkinter.ttk.rst:319 msgid "" "Boolean value. If set, the widget selection is linked to the Window Manager " "selection (which can be returned by invoking Misc.selection_get, for " "example)." msgstr "" -#: ../../library/tkinter.ttk.rst:323 msgid "justify" msgstr "" -#: ../../library/tkinter.ttk.rst:323 msgid "" "Specifies how the text is aligned within the widget. One of \"left\", " "\"center\", or \"right\"." msgstr "" -#: ../../library/tkinter.ttk.rst:326 ../../library/tkinter.ttk.rst:481 -#: ../../library/tkinter.ttk.rst:818 msgid "height" msgstr "" -#: ../../library/tkinter.ttk.rst:326 msgid "Specifies the height of the pop-down listbox, in rows." msgstr "" -#: ../../library/tkinter.ttk.rst:328 msgid "postcommand" msgstr "" -#: ../../library/tkinter.ttk.rst:328 msgid "" "A script (possibly registered with Misc.register) that is called immediately " "before displaying the values. It may specify which values to display." msgstr "" -#: ../../library/tkinter.ttk.rst:332 msgid "" "One of \"normal\", \"readonly\", or \"disabled\". In the \"readonly\" state, " "the value may not be edited directly, and the user can only selection of the " @@ -598,190 +472,154 @@ msgid "" "directly editable. In the \"disabled\" state, no interaction is possible." msgstr "" -#: ../../library/tkinter.ttk.rst:339 msgid "" "Specifies a name whose value is linked to the widget value. Whenever the " "value associated with that name changes, the widget value is updated, and " "vice versa. See :class:`tkinter.StringVar`." msgstr "" -#: ../../library/tkinter.ttk.rst:344 ../../library/tkinter.ttk.rst:417 -#: ../../library/tkinter.ttk.rst:865 msgid "values" msgstr "" -#: ../../library/tkinter.ttk.rst:344 msgid "Specifies the list of values to display in the drop-down listbox." msgstr "" -#: ../../library/tkinter.ttk.rst:347 msgid "" "Specifies an integer value indicating the desired width of the entry window, " "in average-size characters of the widget's font." msgstr "" -#: ../../library/tkinter.ttk.rst:354 ../../library/tkinter.ttk.rst:442 msgid "Virtual events" msgstr "" -#: ../../library/tkinter.ttk.rst:356 msgid "" "The combobox widgets generates a **<>** virtual event when " "the user selects an element from the list of values." msgstr "" -#: ../../library/tkinter.ttk.rst:361 msgid "ttk.Combobox" msgstr "" -#: ../../library/tkinter.ttk.rst:367 msgid "" "If *newindex* is specified, sets the combobox value to the element position " "*newindex*. Otherwise, returns the index of the current value or -1 if the " "current value is not in the values list." msgstr "" -#: ../../library/tkinter.ttk.rst:374 msgid "Returns the current value of the combobox." msgstr "" -#: ../../library/tkinter.ttk.rst:379 msgid "Sets the value of the combobox to *value*." msgstr "" -#: ../../library/tkinter.ttk.rst:383 msgid "Spinbox" msgstr "" -#: ../../library/tkinter.ttk.rst:384 msgid "" "The :class:`ttk.Spinbox` widget is a :class:`ttk.Entry` enhanced with " "increment and decrement arrows. It can be used for numbers or lists of " "string values. This widget is a subclass of :class:`Entry`." msgstr "" -#: ../../library/tkinter.ttk.rst:388 msgid "" -"Besides the methods inherited " -"from :class:`Widget`: :meth:`Widget.cget`, :meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " -"and :meth:`Widget.state`, and the following inherited " -"from :class:`Entry`: :meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry.index`, :meth:`Entry.insert`, :meth:`Entry.xview`, " -"it has some other methods, described at :class:`ttk.Spinbox`." +"Besides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, :" +"meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " +"and :meth:`Widget.state`, and the following inherited from :class:`Entry`: :" +"meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry." +"index`, :meth:`Entry.insert`, :meth:`Entry.xview`, it has some other " +"methods, described at :class:`ttk.Spinbox`." msgstr "" -#: ../../library/tkinter.ttk.rst:405 msgid "from" msgstr "" -#: ../../library/tkinter.ttk.rst:405 msgid "" "Float value. If set, this is the minimum value to which the decrement " "button will decrement. Must be spelled as ``from_`` when used as an " "argument, since ``from`` is a Python keyword." msgstr "" -#: ../../library/tkinter.ttk.rst:410 msgid "to" msgstr "" -#: ../../library/tkinter.ttk.rst:410 msgid "" "Float value. If set, this is the maximum value to which the increment " "button will increment." msgstr "" -#: ../../library/tkinter.ttk.rst:413 msgid "increment" msgstr "" -#: ../../library/tkinter.ttk.rst:413 msgid "" "Float value. Specifies the amount which the increment/decrement buttons " "change the value. Defaults to 1.0." msgstr "" -#: ../../library/tkinter.ttk.rst:417 msgid "" "Sequence of string or float values. If specified, the increment/decrement " "buttons will cycle through the items in this sequence rather than " "incrementing or decrementing numbers." msgstr "" -#: ../../library/tkinter.ttk.rst:423 msgid "wrap" msgstr "" -#: ../../library/tkinter.ttk.rst:423 msgid "" "Boolean value. If ``True``, increment and decrement buttons will cycle from " "the ``to`` value to the ``from`` value or the ``from`` value to the ``to`` " "value, respectively." msgstr "" -#: ../../library/tkinter.ttk.rst:428 msgid "format" msgstr "" -#: ../../library/tkinter.ttk.rst:428 msgid "" "String value. This specifies the format of numbers set by the increment/" "decrement buttons. It must be in the form \"%W.Pf\", where W is the padded " "width of the value, P is the precision, and '%' and 'f' are literal." msgstr "" -#: ../../library/tkinter.ttk.rst:434 msgid "command" msgstr "" -#: ../../library/tkinter.ttk.rst:434 msgid "" "Python callable. Will be called with no arguments whenever either of the " "increment or decrement buttons are pressed." msgstr "" -#: ../../library/tkinter.ttk.rst:444 msgid "" "The spinbox widget generates an **<>** virtual event when the " "user presses , and a **<>** virtual event when the user " "presses ." msgstr "" -#: ../../library/tkinter.ttk.rst:449 msgid "ttk.Spinbox" msgstr "" -#: ../../library/tkinter.ttk.rst:455 msgid "Returns the current value of the spinbox." msgstr "" -#: ../../library/tkinter.ttk.rst:460 msgid "Sets the value of the spinbox to *value*." msgstr "" -#: ../../library/tkinter.ttk.rst:464 msgid "Notebook" msgstr "" -#: ../../library/tkinter.ttk.rst:466 msgid "" "Ttk Notebook widget manages a collection of windows and displays a single " "one at a time. Each child window is associated with a tab, which the user " "may select to change the currently displayed window." msgstr "" -#: ../../library/tkinter.ttk.rst:481 msgid "" "If present and greater than zero, specifies the desired height of the pane " "area (not including internal padding or tabs). Otherwise, the maximum height " "of all panes is used." msgstr "" -#: ../../library/tkinter.ttk.rst:485 ../../library/tkinter.ttk.rst:517 -#: ../../library/tkinter.ttk.rst:822 msgid "padding" msgstr "" -#: ../../library/tkinter.ttk.rst:485 msgid "" "Specifies the amount of extra space to add around the outside of the " "notebook. The padding is a list up to four length specifications left top " @@ -789,32 +627,26 @@ msgid "" "top, right defaults to left, and top defaults to left." msgstr "" -#: ../../library/tkinter.ttk.rst:491 msgid "" "If present and greater than zero, specified the desired width of the pane " "area (not including internal padding). Otherwise, the maximum width of all " "panes is used." msgstr "" -#: ../../library/tkinter.ttk.rst:498 msgid "Tab Options" msgstr "" -#: ../../library/tkinter.ttk.rst:500 msgid "There are also specific options for tabs:" msgstr "" -#: ../../library/tkinter.ttk.rst:507 msgid "" "Either \"normal\", \"disabled\" or \"hidden\". If \"disabled\", then the tab " "is not selectable. If \"hidden\", then the tab is not shown." msgstr "" -#: ../../library/tkinter.ttk.rst:511 msgid "sticky" msgstr "" -#: ../../library/tkinter.ttk.rst:511 msgid "" "Specifies how the child window is positioned within the pane area. Value is " "a string containing zero or more of the characters \"n\", \"s\", \"e\" or " @@ -822,203 +654,165 @@ msgid "" "child window will stick to, as per the :meth:`grid` geometry manager." msgstr "" -#: ../../library/tkinter.ttk.rst:517 msgid "" "Specifies the amount of extra space to add between the notebook and this " "pane. Syntax is the same as for the option padding used by this widget." msgstr "" -#: ../../library/tkinter.ttk.rst:521 msgid "Specifies a text to be displayed in the tab." msgstr "" -#: ../../library/tkinter.ttk.rst:523 msgid "" -"Specifies an image to display in the tab. See the option image described " -"in :class:`Widget`." +"Specifies an image to display in the tab. See the option image described in :" +"class:`Widget`." msgstr "" -#: ../../library/tkinter.ttk.rst:526 msgid "" "Specifies how to display the image relative to the text, in the case both " "options text and image are present. See `Label Options`_ for legal values." msgstr "" -#: ../../library/tkinter.ttk.rst:530 msgid "" "Specifies the index (0-based) of a character to underline in the text " -"string. The underlined character is used for mnemonic activation " -"if :meth:`Notebook.enable_traversal` is called." +"string. The underlined character is used for mnemonic activation if :meth:" +"`Notebook.enable_traversal` is called." msgstr "" -#: ../../library/tkinter.ttk.rst:538 msgid "Tab Identifiers" msgstr "" -#: ../../library/tkinter.ttk.rst:540 msgid "" "The tab_id present in several methods of :class:`ttk.Notebook` may take any " "of the following forms:" msgstr "" -#: ../../library/tkinter.ttk.rst:543 msgid "An integer between zero and the number of tabs" msgstr "" -#: ../../library/tkinter.ttk.rst:544 msgid "The name of a child window" msgstr "" -#: ../../library/tkinter.ttk.rst:545 msgid "" "A positional specification of the form \"@x,y\", which identifies the tab" msgstr "" -#: ../../library/tkinter.ttk.rst:546 msgid "" "The literal string \"current\", which identifies the currently selected tab" msgstr "" -#: ../../library/tkinter.ttk.rst:547 msgid "" "The literal string \"end\", which returns the number of tabs (only valid " "for :meth:`Notebook.index`)" msgstr "" -#: ../../library/tkinter.ttk.rst:552 ../../library/tkinter.ttk.rst:925 msgid "Virtual Events" msgstr "" -#: ../../library/tkinter.ttk.rst:554 msgid "" "This widget generates a **<>** virtual event after a new " "tab is selected." msgstr "" -#: ../../library/tkinter.ttk.rst:559 msgid "ttk.Notebook" msgstr "" -#: ../../library/tkinter.ttk.rst:565 msgid "Adds a new tab to the notebook." msgstr "" -#: ../../library/tkinter.ttk.rst:567 msgid "" "If window is currently managed by the notebook but hidden, it is restored to " "its previous position." msgstr "" -#: ../../library/tkinter.ttk.rst:570 ../../library/tkinter.ttk.rst:608 msgid "See `Tab Options`_ for the list of available options." msgstr "" -#: ../../library/tkinter.ttk.rst:575 msgid "" "Removes the tab specified by *tab_id*, unmaps and unmanages the associated " "window." msgstr "" -#: ../../library/tkinter.ttk.rst:581 msgid "Hides the tab specified by *tab_id*." msgstr "" -#: ../../library/tkinter.ttk.rst:583 msgid "" "The tab will not be displayed, but the associated window remains managed by " "the notebook and its configuration remembered. Hidden tabs may be restored " "with the :meth:`add` command." msgstr "" -#: ../../library/tkinter.ttk.rst:590 msgid "" "Returns the name of the tab element at position *x*, *y*, or the empty " "string if none." msgstr "" -#: ../../library/tkinter.ttk.rst:596 msgid "" "Returns the numeric index of the tab specified by *tab_id*, or the total " "number of tabs if *tab_id* is the string \"end\"." msgstr "" -#: ../../library/tkinter.ttk.rst:602 msgid "Inserts a pane at the specified position." msgstr "" -#: ../../library/tkinter.ttk.rst:604 msgid "" "*pos* is either the string \"end\", an integer index, or the name of a " "managed child. If *child* is already managed by the notebook, moves it to " "the specified position." msgstr "" -#: ../../library/tkinter.ttk.rst:613 msgid "Selects the specified *tab_id*." msgstr "" -#: ../../library/tkinter.ttk.rst:615 msgid "" "The associated child window will be displayed, and the previously selected " "window (if different) is unmapped. If *tab_id* is omitted, returns the " "widget name of the currently selected pane." msgstr "" -#: ../../library/tkinter.ttk.rst:622 msgid "Query or modify the options of the specific *tab_id*." msgstr "" -#: ../../library/tkinter.ttk.rst:624 msgid "" "If *kw* is not given, returns a dictionary of the tab option values. If " "*option* is specified, returns the value of that *option*. Otherwise, sets " "the options to the corresponding values." msgstr "" -#: ../../library/tkinter.ttk.rst:631 msgid "Returns a list of windows managed by the notebook." msgstr "" -#: ../../library/tkinter.ttk.rst:636 msgid "" "Enable keyboard traversal for a toplevel window containing this notebook." msgstr "" -#: ../../library/tkinter.ttk.rst:638 msgid "" "This will extend the bindings for the toplevel window containing the " "notebook as follows:" msgstr "" -#: ../../library/tkinter.ttk.rst:641 msgid "" ":kbd:`Control-Tab`: selects the tab following the currently selected one." msgstr "" -#: ../../library/tkinter.ttk.rst:642 msgid "" ":kbd:`Shift-Control-Tab`: selects the tab preceding the currently selected " "one." msgstr "" -#: ../../library/tkinter.ttk.rst:643 msgid "" ":kbd:`Alt-K`: where *K* is the mnemonic (underlined) character of any tab, " "will select that tab." msgstr "" -#: ../../library/tkinter.ttk.rst:646 msgid "" "Multiple notebooks in a single toplevel may be enabled for traversal, " "including nested notebooks. However, notebook traversal only works properly " "if all panes have the notebook they are in as master." msgstr "" -#: ../../library/tkinter.ttk.rst:652 msgid "Progressbar" msgstr "" -#: ../../library/tkinter.ttk.rst:654 msgid "" "The :class:`ttk.Progressbar` widget shows the status of a long-running " "operation. It can operate in two modes: 1) the determinate mode which shows " @@ -1027,47 +821,37 @@ msgid "" "know that work is progressing." msgstr "" -#: ../../library/tkinter.ttk.rst:671 ../../library/tkinter.ttk.rst:742 msgid "orient" msgstr "" -#: ../../library/tkinter.ttk.rst:671 msgid "" "One of \"horizontal\" or \"vertical\". Specifies the orientation of the " "progress bar." msgstr "" -#: ../../library/tkinter.ttk.rst:674 msgid "length" msgstr "" -#: ../../library/tkinter.ttk.rst:674 msgid "" "Specifies the length of the long axis of the progress bar (width if " "horizontal, height if vertical)." msgstr "" -#: ../../library/tkinter.ttk.rst:677 msgid "mode" msgstr "" -#: ../../library/tkinter.ttk.rst:677 msgid "One of \"determinate\" or \"indeterminate\"." msgstr "" -#: ../../library/tkinter.ttk.rst:679 msgid "maximum" msgstr "" -#: ../../library/tkinter.ttk.rst:679 msgid "A number specifying the maximum value. Defaults to 100." msgstr "" -#: ../../library/tkinter.ttk.rst:681 msgid "value" msgstr "" -#: ../../library/tkinter.ttk.rst:681 msgid "" "The current value of the progress bar. In \"determinate\" mode, this " "represents the amount of work completed. In \"indeterminate\" mode, it is " @@ -1075,22 +859,18 @@ msgid "" "\"cycle\" when its value increases by *maximum*." msgstr "" -#: ../../library/tkinter.ttk.rst:687 msgid "variable" msgstr "" -#: ../../library/tkinter.ttk.rst:687 msgid "" "A name which is linked to the option value. If specified, the value of the " "progress bar is automatically set to the value of this name whenever the " "latter is modified." msgstr "" -#: ../../library/tkinter.ttk.rst:691 msgid "phase" msgstr "" -#: ../../library/tkinter.ttk.rst:691 msgid "" "Read-only option. The widget periodically increments the value of this " "option whenever its value is greater than 0 and, in determinate mode, less " @@ -1098,103 +878,83 @@ msgid "" "additional animation effects." msgstr "" -#: ../../library/tkinter.ttk.rst:699 msgid "ttk.Progressbar" msgstr "" -#: ../../library/tkinter.ttk.rst:705 msgid "" -"Begin autoincrement mode: schedules a recurring timer event that " -"calls :meth:`Progressbar.step` every *interval* milliseconds. If omitted, " -"*interval* defaults to 50 milliseconds." +"Begin autoincrement mode: schedules a recurring timer event that calls :meth:" +"`Progressbar.step` every *interval* milliseconds. If omitted, *interval* " +"defaults to 50 milliseconds." msgstr "" -#: ../../library/tkinter.ttk.rst:712 msgid "Increments the progress bar's value by *amount*." msgstr "" -#: ../../library/tkinter.ttk.rst:714 msgid "*amount* defaults to 1.0 if omitted." msgstr "" -#: ../../library/tkinter.ttk.rst:719 msgid "" -"Stop autoincrement mode: cancels any recurring timer event initiated " -"by :meth:`Progressbar.start` for this progress bar." +"Stop autoincrement mode: cancels any recurring timer event initiated by :" +"meth:`Progressbar.start` for this progress bar." msgstr "" -#: ../../library/tkinter.ttk.rst:724 msgid "Separator" msgstr "" -#: ../../library/tkinter.ttk.rst:726 msgid "" "The :class:`ttk.Separator` widget displays a horizontal or vertical " "separator bar." msgstr "" -#: ../../library/tkinter.ttk.rst:729 msgid "" "It has no other methods besides the ones inherited from :class:`ttk.Widget`." msgstr "" -#: ../../library/tkinter.ttk.rst:735 msgid "This widget accepts the following specific option:" msgstr "" -#: ../../library/tkinter.ttk.rst:742 msgid "" "One of \"horizontal\" or \"vertical\". Specifies the orientation of the " "separator." msgstr "" -#: ../../library/tkinter.ttk.rst:748 msgid "Sizegrip" msgstr "" -#: ../../library/tkinter.ttk.rst:750 msgid "" "The :class:`ttk.Sizegrip` widget (also known as a grow box) allows the user " "to resize the containing toplevel window by pressing and dragging the grip." msgstr "" -#: ../../library/tkinter.ttk.rst:753 msgid "" "This widget has neither specific options nor specific methods, besides the " "ones inherited from :class:`ttk.Widget`." msgstr "" -#: ../../library/tkinter.ttk.rst:758 msgid "Platform-specific notes" msgstr "" -#: ../../library/tkinter.ttk.rst:760 msgid "" "On macOS, toplevel windows automatically include a built-in size grip by " "default. Adding a :class:`Sizegrip` is harmless, since the built-in grip " "will just mask the widget." msgstr "" -#: ../../library/tkinter.ttk.rst:766 msgid "Bugs" msgstr "" -#: ../../library/tkinter.ttk.rst:768 msgid "" "If the containing toplevel's position was specified relative to the right or " "bottom of the screen (e.g. ....), the :class:`Sizegrip` widget will not " "resize the window." msgstr "" -#: ../../library/tkinter.ttk.rst:771 msgid "This widget supports only \"southeast\" resizing." msgstr "" -#: ../../library/tkinter.ttk.rst:775 msgid "Treeview" msgstr "" -#: ../../library/tkinter.ttk.rst:777 msgid "" "The :class:`ttk.Treeview` widget displays a hierarchical collection of " "items. Each item has a textual label, an optional image, and an optional " @@ -1202,7 +962,6 @@ msgid "" "after the tree label." msgstr "" -#: ../../library/tkinter.ttk.rst:782 msgid "" "The order in which data values are displayed may be controlled by setting " "the widget option ``displaycolumns``. The tree widget can also display " @@ -1210,7 +969,6 @@ msgid "" "in the widget option columns. See `Column Identifiers`_." msgstr "" -#: ../../library/tkinter.ttk.rst:787 msgid "" "Each item is identified by a unique name. The widget will generate item IDs " "if they are not supplied by the caller. There is a distinguished root item, " @@ -1218,57 +976,47 @@ msgid "" "the top level of the hierarchy." msgstr "" -#: ../../library/tkinter.ttk.rst:792 msgid "" "Each item also has a list of tags, which can be used to associate event " "bindings with individual items and control the appearance of the item." msgstr "" -#: ../../library/tkinter.ttk.rst:795 msgid "" "The Treeview widget supports horizontal and vertical scrolling, according to " -"the options described in `Scrollable Widget Options`_ and the " -"methods :meth:`Treeview.xview` and :meth:`Treeview.yview`." +"the options described in `Scrollable Widget Options`_ and the methods :meth:" +"`Treeview.xview` and :meth:`Treeview.yview`." msgstr "" -#: ../../library/tkinter.ttk.rst:810 msgid "columns" msgstr "" -#: ../../library/tkinter.ttk.rst:810 msgid "" "A list of column identifiers, specifying the number of columns and their " "names." msgstr "" -#: ../../library/tkinter.ttk.rst:813 msgid "displaycolumns" msgstr "" -#: ../../library/tkinter.ttk.rst:813 msgid "" "A list of column identifiers (either symbolic or integer indices) specifying " "which data columns are displayed and the order in which they appear, or the " "string \"#all\"." msgstr "" -#: ../../library/tkinter.ttk.rst:818 msgid "" "Specifies the number of rows which should be visible. Note: the requested " "width is determined from the sum of the column widths." msgstr "" -#: ../../library/tkinter.ttk.rst:822 msgid "" "Specifies the internal padding for the widget. The padding is a list of up " "to four length specifications." msgstr "" -#: ../../library/tkinter.ttk.rst:825 msgid "selectmode" msgstr "" -#: ../../library/tkinter.ttk.rst:825 msgid "" "Controls how the built-in class bindings manage the selection. One of " "\"extended\", \"browse\" or \"none\". If set to \"extended\" (the default), " @@ -1276,63 +1024,50 @@ msgid "" "selected at a time. If \"none\", the selection will not be changed." msgstr "" -#: ../../library/tkinter.ttk.rst:832 msgid "" "Note that the application code and tag bindings can set the selection " "however they wish, regardless of the value of this option." msgstr "" -#: ../../library/tkinter.ttk.rst:836 msgid "show" msgstr "" -#: ../../library/tkinter.ttk.rst:836 msgid "" "A list containing zero or more of the following values, specifying which " "elements of the tree to display." msgstr "" -#: ../../library/tkinter.ttk.rst:839 msgid "tree: display tree labels in column #0." msgstr "" -#: ../../library/tkinter.ttk.rst:840 msgid "headings: display the heading row." msgstr "" -#: ../../library/tkinter.ttk.rst:842 msgid "The default is \"tree headings\", i.e., show all elements." msgstr "" -#: ../../library/tkinter.ttk.rst:845 msgid "" "**Note**: Column #0 always refers to the tree column, even if show=\"tree\" " "is not specified." msgstr "" -#: ../../library/tkinter.ttk.rst:851 msgid "Item Options" msgstr "" -#: ../../library/tkinter.ttk.rst:853 msgid "" "The following item options may be specified for items in the insert and item " "widget commands." msgstr "" -#: ../../library/tkinter.ttk.rst:861 msgid "The textual label to display for the item." msgstr "" -#: ../../library/tkinter.ttk.rst:863 msgid "A Tk Image, displayed to the left of the label." msgstr "" -#: ../../library/tkinter.ttk.rst:865 msgid "The list of values associated with the item." msgstr "" -#: ../../library/tkinter.ttk.rst:867 msgid "" "Each item should have the same number of values as the widget option " "columns. If there are fewer values than columns, the remaining values are " @@ -1340,95 +1075,74 @@ msgid "" "ignored." msgstr "" -#: ../../library/tkinter.ttk.rst:872 msgid "open" msgstr "" -#: ../../library/tkinter.ttk.rst:872 msgid "" "``True``/``False`` value indicating whether the item's children should be " "displayed or hidden." msgstr "" -#: ../../library/tkinter.ttk.rst:875 msgid "tags" msgstr "" -#: ../../library/tkinter.ttk.rst:875 msgid "A list of tags associated with this item." msgstr "" -#: ../../library/tkinter.ttk.rst:880 msgid "Tag Options" msgstr "" -#: ../../library/tkinter.ttk.rst:882 msgid "The following options may be specified on tags:" msgstr "" -#: ../../library/tkinter.ttk.rst:889 msgid "foreground" msgstr "" -#: ../../library/tkinter.ttk.rst:889 msgid "Specifies the text foreground color." msgstr "" -#: ../../library/tkinter.ttk.rst:891 msgid "Specifies the cell or item background color." msgstr "" -#: ../../library/tkinter.ttk.rst:893 msgid "font" msgstr "" -#: ../../library/tkinter.ttk.rst:893 msgid "Specifies the font to use when drawing text." msgstr "" -#: ../../library/tkinter.ttk.rst:895 msgid "Specifies the item image, in case the item's image option is empty." msgstr "" -#: ../../library/tkinter.ttk.rst:901 msgid "Column Identifiers" msgstr "" -#: ../../library/tkinter.ttk.rst:903 msgid "Column identifiers take any of the following forms:" msgstr "" -#: ../../library/tkinter.ttk.rst:905 msgid "A symbolic name from the list of columns option." msgstr "" -#: ../../library/tkinter.ttk.rst:906 msgid "An integer n, specifying the nth data column." msgstr "" -#: ../../library/tkinter.ttk.rst:907 msgid "" "A string of the form #n, where n is an integer, specifying the nth display " "column." msgstr "" -#: ../../library/tkinter.ttk.rst:910 msgid "Notes:" msgstr "" -#: ../../library/tkinter.ttk.rst:912 msgid "" "Item's option values may be displayed in a different order than the order in " "which they are stored." msgstr "" -#: ../../library/tkinter.ttk.rst:914 msgid "" "Column #0 always refers to the tree column, even if show=\"tree\" is not " "specified." msgstr "" -#: ../../library/tkinter.ttk.rst:917 msgid "" "A data column number is an index into an item's option values list; a " "display column number is the column number in the tree where the values are " @@ -1437,74 +1151,58 @@ msgid "" "#0 always refers to the tree column**." msgstr "" -#: ../../library/tkinter.ttk.rst:927 msgid "The Treeview widget generates the following virtual events." msgstr "" -#: ../../library/tkinter.ttk.rst:932 msgid "Event" msgstr "" -#: ../../library/tkinter.ttk.rst:934 msgid "<>" msgstr "" -#: ../../library/tkinter.ttk.rst:934 msgid "Generated whenever the selection changes." msgstr "" -#: ../../library/tkinter.ttk.rst:936 msgid "<>" msgstr "" -#: ../../library/tkinter.ttk.rst:936 msgid "Generated just before settings the focus item to open=True." msgstr "" -#: ../../library/tkinter.ttk.rst:939 msgid "<>" msgstr "" -#: ../../library/tkinter.ttk.rst:939 msgid "Generated just after setting the focus item to open=False." msgstr "" -#: ../../library/tkinter.ttk.rst:943 msgid "" "The :meth:`Treeview.focus` and :meth:`Treeview.selection` methods can be " "used to determine the affected item or items." msgstr "" -#: ../../library/tkinter.ttk.rst:948 msgid "ttk.Treeview" msgstr "" -#: ../../library/tkinter.ttk.rst:954 msgid "" "Returns the bounding box (relative to the treeview widget's window) of the " "specified *item* in the form (x, y, width, height)." msgstr "" -#: ../../library/tkinter.ttk.rst:957 msgid "" "If *column* is specified, returns the bounding box of that cell. If the " "*item* is not visible (i.e., if it is a descendant of a closed item or is " "scrolled offscreen), returns an empty string." msgstr "" -#: ../../library/tkinter.ttk.rst:964 msgid "Returns the list of children belonging to *item*." msgstr "" -#: ../../library/tkinter.ttk.rst:966 msgid "If *item* is not specified, returns root children." msgstr "" -#: ../../library/tkinter.ttk.rst:971 msgid "Replaces *item*'s child with *newchildren*." msgstr "" -#: ../../library/tkinter.ttk.rst:973 msgid "" "Children present in *item* that are not present in *newchildren* are " "detached from the tree. No items in *newchildren* may be an ancestor of " @@ -1512,236 +1210,183 @@ msgid "" "children." msgstr "" -#: ../../library/tkinter.ttk.rst:981 msgid "Query or modify the options for the specified *column*." msgstr "" -#: ../../library/tkinter.ttk.rst:983 msgid "" "If *kw* is not given, returns a dict of the column option values. If " "*option* is specified then the value for that *option* is returned. " "Otherwise, sets the options to the corresponding values." msgstr "" -#: ../../library/tkinter.ttk.rst:987 ../../library/tkinter.ttk.rst:1042 -#: ../../library/tkinter.ttk.rst:1578 msgid "The valid options/values are:" msgstr "" -#: ../../library/tkinter.ttk.rst:989 msgid "*id*" msgstr "" -#: ../../library/tkinter.ttk.rst:990 msgid "Returns the column name. This is a read-only option." msgstr "" -#: ../../library/tkinter.ttk.rst:991 msgid "*anchor*: One of the standard Tk anchor values." msgstr "" -#: ../../library/tkinter.ttk.rst:992 msgid "" "Specifies how the text in this column should be aligned with respect to the " "cell." msgstr "" -#: ../../library/tkinter.ttk.rst:994 msgid "*minwidth*: width" msgstr "" -#: ../../library/tkinter.ttk.rst:995 msgid "" "The minimum width of the column in pixels. The treeview widget will not make " "the column any smaller than specified by this option when the widget is " "resized or the user drags a column." msgstr "" -#: ../../library/tkinter.ttk.rst:998 msgid "*stretch*: ``True``/``False``" msgstr "" -#: ../../library/tkinter.ttk.rst:999 msgid "" "Specifies whether the column's width should be adjusted when the widget is " "resized." msgstr "" -#: ../../library/tkinter.ttk.rst:1001 msgid "*width*: width" msgstr "" -#: ../../library/tkinter.ttk.rst:1002 msgid "The width of the column in pixels." msgstr "" -#: ../../library/tkinter.ttk.rst:1004 msgid "To configure the tree column, call this with column = \"#0\"" msgstr "" -#: ../../library/tkinter.ttk.rst:1008 msgid "Delete all specified *items* and all their descendants." msgstr "" -#: ../../library/tkinter.ttk.rst:1010 msgid "The root item may not be deleted." msgstr "" -#: ../../library/tkinter.ttk.rst:1015 msgid "Unlinks all of the specified *items* from the tree." msgstr "" -#: ../../library/tkinter.ttk.rst:1017 msgid "" "The items and all of their descendants are still present, and may be " "reinserted at another point in the tree, but will not be displayed." msgstr "" -#: ../../library/tkinter.ttk.rst:1020 msgid "The root item may not be detached." msgstr "" -#: ../../library/tkinter.ttk.rst:1025 msgid "Returns ``True`` if the specified *item* is present in the tree." msgstr "" -#: ../../library/tkinter.ttk.rst:1030 msgid "" "If *item* is specified, sets the focus item to *item*. Otherwise, returns " "the current focus item, or '' if there is none." msgstr "" -#: ../../library/tkinter.ttk.rst:1036 msgid "Query or modify the heading options for the specified *column*." msgstr "" -#: ../../library/tkinter.ttk.rst:1038 msgid "" "If *kw* is not given, returns a dict of the heading option values. If " "*option* is specified then the value for that *option* is returned. " "Otherwise, sets the options to the corresponding values." msgstr "" -#: ../../library/tkinter.ttk.rst:1044 msgid "*text*: text" msgstr "" -#: ../../library/tkinter.ttk.rst:1045 msgid "The text to display in the column heading." msgstr "" -#: ../../library/tkinter.ttk.rst:1046 msgid "*image*: imageName" msgstr "" -#: ../../library/tkinter.ttk.rst:1047 msgid "Specifies an image to display to the right of the column heading." msgstr "" -#: ../../library/tkinter.ttk.rst:1048 msgid "*anchor*: anchor" msgstr "" -#: ../../library/tkinter.ttk.rst:1049 msgid "" "Specifies how the heading text should be aligned. One of the standard Tk " "anchor values." msgstr "" -#: ../../library/tkinter.ttk.rst:1051 msgid "*command*: callback" msgstr "" -#: ../../library/tkinter.ttk.rst:1052 msgid "A callback to be invoked when the heading label is pressed." msgstr "" -#: ../../library/tkinter.ttk.rst:1054 msgid "To configure the tree column heading, call this with column = \"#0\"." msgstr "" -#: ../../library/tkinter.ttk.rst:1059 msgid "" "Returns a description of the specified *component* under the point given by " "*x* and *y*, or the empty string if no such *component* is present at that " "position." msgstr "" -#: ../../library/tkinter.ttk.rst:1066 msgid "Returns the item ID of the item at position *y*." msgstr "" -#: ../../library/tkinter.ttk.rst:1071 msgid "Returns the data column identifier of the cell at position *x*." msgstr "" -#: ../../library/tkinter.ttk.rst:1073 msgid "The tree column has ID #0." msgstr "" -#: ../../library/tkinter.ttk.rst:1078 msgid "Returns one of:" msgstr "" -#: ../../library/tkinter.ttk.rst:1081 msgid "region" msgstr "" -#: ../../library/tkinter.ttk.rst:1081 msgid "meaning" msgstr "" -#: ../../library/tkinter.ttk.rst:1083 msgid "heading" msgstr "" -#: ../../library/tkinter.ttk.rst:1083 msgid "Tree heading area." msgstr "" -#: ../../library/tkinter.ttk.rst:1085 msgid "separator" msgstr "" -#: ../../library/tkinter.ttk.rst:1085 msgid "Space between two columns headings." msgstr "" -#: ../../library/tkinter.ttk.rst:1087 msgid "tree" msgstr "" -#: ../../library/tkinter.ttk.rst:1087 msgid "The tree area." msgstr "" -#: ../../library/tkinter.ttk.rst:1089 msgid "cell" msgstr "" -#: ../../library/tkinter.ttk.rst:1089 msgid "A data cell." msgstr "" -#: ../../library/tkinter.ttk.rst:1092 ../../library/tkinter.ttk.rst:1099 msgid "Availability: Tk 8.6." msgstr "" -#: ../../library/tkinter.ttk.rst:1097 msgid "Returns the element at position *x*, *y*." msgstr "" -#: ../../library/tkinter.ttk.rst:1104 msgid "" "Returns the integer index of *item* within its parent's list of children." msgstr "" -#: ../../library/tkinter.ttk.rst:1109 msgid "" "Creates a new item and returns the item identifier of the newly created item." msgstr "" -#: ../../library/tkinter.ttk.rst:1112 msgid "" "*parent* is the item ID of the parent item, or the empty string to create a " "new top-level item. *index* is an integer, or the value \"end\", specifying " @@ -1753,15 +1398,12 @@ msgid "" "unique identifier is generated." msgstr "" -#: ../../library/tkinter.ttk.rst:1121 msgid "See `Item Options`_ for the list of available options." msgstr "" -#: ../../library/tkinter.ttk.rst:1126 msgid "Query or modify the options for the specified *item*." msgstr "" -#: ../../library/tkinter.ttk.rst:1128 msgid "" "If no options are given, a dict with options/values for the item is " "returned. If *option* is specified then the value for that option is " @@ -1769,11 +1411,9 @@ msgid "" "by *kw*." msgstr "" -#: ../../library/tkinter.ttk.rst:1136 msgid "Moves *item* to position *index* in *parent*'s list of children." msgstr "" -#: ../../library/tkinter.ttk.rst:1138 msgid "" "It is illegal to move an item under one of its descendants. If *index* is " "less than or equal to zero, *item* is moved to the beginning; if greater " @@ -1781,71 +1421,56 @@ msgid "" "was detached it is reattached." msgstr "" -#: ../../library/tkinter.ttk.rst:1146 msgid "" "Returns the identifier of *item*'s next sibling, or '' if *item* is the last " "child of its parent." msgstr "" -#: ../../library/tkinter.ttk.rst:1152 msgid "" "Returns the ID of the parent of *item*, or '' if *item* is at the top level " "of the hierarchy." msgstr "" -#: ../../library/tkinter.ttk.rst:1158 msgid "" "Returns the identifier of *item*'s previous sibling, or '' if *item* is the " "first child of its parent." msgstr "" -#: ../../library/tkinter.ttk.rst:1164 msgid "An alias for :meth:`Treeview.move`." msgstr "" -#: ../../library/tkinter.ttk.rst:1169 msgid "Ensure that *item* is visible." msgstr "" -#: ../../library/tkinter.ttk.rst:1171 msgid "" "Sets all of *item*'s ancestors open option to ``True``, and scrolls the " "widget if necessary so that *item* is within the visible portion of the tree." msgstr "" -#: ../../library/tkinter.ttk.rst:1178 msgid "Returns a tuple of selected items." msgstr "" -#: ../../library/tkinter.ttk.rst:1180 msgid "" "``selection()`` no longer takes arguments. For changing the selection state " "use the following selection methods." msgstr "" -#: ../../library/tkinter.ttk.rst:1187 msgid "*items* becomes the new selection." msgstr "" -#: ../../library/tkinter.ttk.rst:1189 ../../library/tkinter.ttk.rst:1197 -#: ../../library/tkinter.ttk.rst:1205 ../../library/tkinter.ttk.rst:1213 msgid "" "*items* can be passed as separate arguments, not just as a single tuple." msgstr "" -#: ../../library/tkinter.ttk.rst:1195 msgid "Add *items* to the selection." msgstr "" -#: ../../library/tkinter.ttk.rst:1203 msgid "Remove *items* from the selection." msgstr "" -#: ../../library/tkinter.ttk.rst:1211 msgid "Toggle the selection state of each item in *items*." msgstr "" -#: ../../library/tkinter.ttk.rst:1219 msgid "" "With one argument, returns a dictionary of column/value pairs for the " "specified *item*. With two arguments, returns the current value of the " @@ -1853,18 +1478,15 @@ msgid "" "in given *item* to the specified *value*." msgstr "" -#: ../../library/tkinter.ttk.rst:1227 msgid "" "Bind a callback for the given event *sequence* to the tag *tagname*. When an " "event is delivered to an item, the callbacks for each of the item's tags " "option are called." msgstr "" -#: ../../library/tkinter.ttk.rst:1234 msgid "Query or modify the options for the specified *tagname*." msgstr "" -#: ../../library/tkinter.ttk.rst:1236 msgid "" "If *kw* is not given, returns a dict of the option settings for *tagname*. " "If *option* is specified, returns the value for that *option* for the " @@ -1872,70 +1494,57 @@ msgid "" "for the given *tagname*." msgstr "" -#: ../../library/tkinter.ttk.rst:1244 msgid "" "If *item* is specified, returns 1 or 0 depending on whether the specified " "*item* has the given *tagname*. Otherwise, returns a list of all items that " "have the specified tag." msgstr "" -#: ../../library/tkinter.ttk.rst:1248 msgid "Availability: Tk 8.6" msgstr "" -#: ../../library/tkinter.ttk.rst:1253 msgid "Query or modify horizontal position of the treeview." msgstr "" -#: ../../library/tkinter.ttk.rst:1258 msgid "Query or modify vertical position of the treeview." msgstr "" -#: ../../library/tkinter.ttk.rst:1264 msgid "Ttk Styling" msgstr "" -#: ../../library/tkinter.ttk.rst:1266 msgid "" "Each widget in :mod:`ttk` is assigned a style, which specifies the set of " "elements making up the widget and how they are arranged, along with dynamic " "and default settings for element options. By default the style name is the " "same as the widget's class name, but it may be overridden by the widget's " -"style option. If you don't know the class name of a widget, use the " -"method :meth:`Misc.winfo_class` (somewidget.winfo_class())." +"style option. If you don't know the class name of a widget, use the method :" +"meth:`Misc.winfo_class` (somewidget.winfo_class())." msgstr "" -#: ../../library/tkinter.ttk.rst:1275 msgid "" "`Tcl'2004 conference presentation `_" msgstr "" -#: ../../library/tkinter.ttk.rst:1276 msgid "This document explains how the theme engine works" msgstr "" -#: ../../library/tkinter.ttk.rst:1281 msgid "This class is used to manipulate the style database." msgstr "" -#: ../../library/tkinter.ttk.rst:1286 msgid "Query or set the default value of the specified option(s) in *style*." msgstr "" -#: ../../library/tkinter.ttk.rst:1288 msgid "" "Each key in *kw* is an option and each value is a string identifying the " "value for that option." msgstr "" -#: ../../library/tkinter.ttk.rst:1291 msgid "" "For example, to change every default button to be a flat button with some " "padding and a different background color::" msgstr "" -#: ../../library/tkinter.ttk.rst:1294 msgid "" "from tkinter import ttk\n" "import tkinter\n" @@ -1951,22 +1560,18 @@ msgid "" "root.mainloop()" msgstr "" -#: ../../library/tkinter.ttk.rst:1310 msgid "Query or sets dynamic values of the specified option(s) in *style*." msgstr "" -#: ../../library/tkinter.ttk.rst:1312 msgid "" "Each key in *kw* is an option and each value should be a list or a tuple " "(usually) containing statespecs grouped in tuples, lists, or some other " "preference. A statespec is a compound of one or more states and then a value." msgstr "" -#: ../../library/tkinter.ttk.rst:1317 msgid "An example may make it more understandable::" msgstr "" -#: ../../library/tkinter.ttk.rst:1319 msgid "" "import tkinter\n" "from tkinter import ttk\n" @@ -1984,7 +1589,6 @@ msgid "" "root.mainloop()" msgstr "" -#: ../../library/tkinter.ttk.rst:1335 msgid "" "Note that the order of the (states, value) sequences for an option does " "matter, if the order is changed to ``[('active', 'blue'), ('pressed', " @@ -1992,35 +1596,29 @@ msgid "" "foreground when the widget were in active or pressed states." msgstr "" -#: ../../library/tkinter.ttk.rst:1343 msgid "Returns the value specified for *option* in *style*." msgstr "" -#: ../../library/tkinter.ttk.rst:1345 msgid "" "If *state* is specified, it is expected to be a sequence of one or more " "states. If the *default* argument is set, it is used as a fallback value in " "case no specification for option is found." msgstr "" -#: ../../library/tkinter.ttk.rst:1349 msgid "To check what font a Button uses by default::" msgstr "" -#: ../../library/tkinter.ttk.rst:1351 msgid "" "from tkinter import ttk\n" "\n" "print(ttk.Style().lookup(\"TButton\", \"font\"))" msgstr "" -#: ../../library/tkinter.ttk.rst:1358 msgid "" "Define the widget layout for given *style*. If *layoutspec* is omitted, " "return the layout specification for given style." msgstr "" -#: ../../library/tkinter.ttk.rst:1361 msgid "" "*layoutspec*, if specified, is expected to be a list or some other sequence " "type (excluding strings), where each item should be a tuple and the first " @@ -2028,13 +1626,11 @@ msgid "" "in `Layouts`_." msgstr "" -#: ../../library/tkinter.ttk.rst:1366 msgid "" "To understand the format, see the following example (it is not intended to " "do anything useful)::" msgstr "" -#: ../../library/tkinter.ttk.rst:1369 msgid "" "from tkinter import ttk\n" "import tkinter\n" @@ -2059,76 +1655,61 @@ msgid "" "root.mainloop()" msgstr "" -#: ../../library/tkinter.ttk.rst:1393 msgid "" "Create a new element in the current theme, of the given *etype* which is " "expected to be either \"image\", \"from\" or \"vsapi\". The latter is only " "available in Tk 8.6 on Windows." msgstr "" -#: ../../library/tkinter.ttk.rst:1397 msgid "" "If \"image\" is used, *args* should contain the default image name followed " "by statespec/value pairs (this is the imagespec), and *kw* may have the " "following options:" msgstr "" -#: ../../library/tkinter.ttk.rst:1401 msgid "border=padding" msgstr "" -#: ../../library/tkinter.ttk.rst:1402 msgid "" "padding is a list of up to four integers, specifying the left, top, right, " "and bottom borders, respectively." msgstr "" -#: ../../library/tkinter.ttk.rst:1405 ../../library/tkinter.ttk.rst:1479 msgid "height=height" msgstr "" -#: ../../library/tkinter.ttk.rst:1406 msgid "" "Specifies a minimum height for the element. If less than zero, the base " "image's height is used as a default." msgstr "" -#: ../../library/tkinter.ttk.rst:1409 ../../library/tkinter.ttk.rst:1453 msgid "padding=padding" msgstr "" -#: ../../library/tkinter.ttk.rst:1410 msgid "" "Specifies the element's interior padding. Defaults to border's value if not " "specified." msgstr "" -#: ../../library/tkinter.ttk.rst:1413 msgid "sticky=spec" msgstr "" -#: ../../library/tkinter.ttk.rst:1414 msgid "" "Specifies how the image is placed within the final parcel. spec contains " "zero or more characters \"n\", \"s\", \"w\", or \"e\"." msgstr "" -#: ../../library/tkinter.ttk.rst:1417 ../../library/tkinter.ttk.rst:1471 msgid "width=width" msgstr "" -#: ../../library/tkinter.ttk.rst:1418 msgid "" "Specifies a minimum width for the element. If less than zero, the base " "image's width is used as a default." msgstr "" -#: ../../library/tkinter.ttk.rst:1421 ../../library/tkinter.ttk.rst:1438 -#: ../../library/tkinter.ttk.rst:1483 msgid "Example::" msgstr "" -#: ../../library/tkinter.ttk.rst:1423 msgid "" "img1 = tkinter.PhotoImage(master=root, file='button.png')\n" "img1 = tkinter.PhotoImage(master=root, file='button-pressed.png')\n" @@ -2139,7 +1720,6 @@ msgid "" " border=(2, 4), sticky='we')" msgstr "" -#: ../../library/tkinter.ttk.rst:1431 msgid "" "If \"from\" is used as the value of *etype*, :meth:`element_create` will " "clone an existing element. *args* is expected to contain a themename, from " @@ -2148,13 +1728,11 @@ msgid "" "used. *kw* is discarded." msgstr "" -#: ../../library/tkinter.ttk.rst:1440 msgid "" "style = ttk.Style(root)\n" "style.element_create('plain.background', 'from', 'default')" msgstr "" -#: ../../library/tkinter.ttk.rst:1443 msgid "" "If \"vsapi\" is used as the value of *etype*, :meth:`element_create` will " "create a new element in the current theme whose visual appearance is drawn " @@ -2165,7 +1743,6 @@ msgid "" "Styles API state value. *kw* may have the following options:" msgstr "" -#: ../../library/tkinter.ttk.rst:1454 msgid "" "Specify the element's interior padding. *padding* is a list of up to four " "integers specifying the left, top, right and bottom padding quantities " @@ -2177,18 +1754,15 @@ msgid "" "may not be mixed with any other options." msgstr "" -#: ../../library/tkinter.ttk.rst:1465 msgid "margins=padding" msgstr "" -#: ../../library/tkinter.ttk.rst:1466 msgid "" "Specifies the elements exterior padding. *padding* is a list of up to four " "integers specifying the left, top, right and bottom padding quantities " "respectively. This option may not be mixed with any other options." msgstr "" -#: ../../library/tkinter.ttk.rst:1472 msgid "" "Specifies the width for the element. If this option is set then the Visual " "Styles API will not be queried for the recommended size or the part. If this " @@ -2196,11 +1770,9 @@ msgid "" "options cannot be mixed with the *padding* or *margins* options." msgstr "" -#: ../../library/tkinter.ttk.rst:1480 msgid "Specifies the height of the element. See the comments for *width*." msgstr "" -#: ../../library/tkinter.ttk.rst:1485 msgid "" "style = ttk.Style(root)\n" "style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [\n" @@ -2216,23 +1788,18 @@ msgid "" "pin.pack(expand=True, fill='both')" msgstr "" -#: ../../library/tkinter.ttk.rst:1498 msgid "Added support of the \"vsapi\" element factory." msgstr "" -#: ../../library/tkinter.ttk.rst:1503 msgid "Returns the list of elements defined in the current theme." msgstr "" -#: ../../library/tkinter.ttk.rst:1508 msgid "Returns the list of *elementname*'s options." msgstr "" -#: ../../library/tkinter.ttk.rst:1513 msgid "Create a new theme." msgstr "" -#: ../../library/tkinter.ttk.rst:1515 msgid "" "It is an error if *themename* already exists. If *parent* is specified, the " "new theme will inherit styles, elements and layouts from the parent theme. " @@ -2240,26 +1807,22 @@ msgid "" "for :meth:`theme_settings`." msgstr "" -#: ../../library/tkinter.ttk.rst:1523 msgid "" "Temporarily sets the current theme to *themename*, apply specified " "*settings* and then restore the previous theme." msgstr "" -#: ../../library/tkinter.ttk.rst:1526 msgid "" "Each key in *settings* is a style and each value may contain the keys " "'configure', 'map', 'layout' and 'element create' and they are expected to " -"have the same format as specified by the " -"methods :meth:`Style.configure`, :meth:`Style.map`, :meth:`Style.layout` " -"and :meth:`Style.element_create` respectively." +"have the same format as specified by the methods :meth:`Style.configure`, :" +"meth:`Style.map`, :meth:`Style.layout` and :meth:`Style.element_create` " +"respectively." msgstr "" -#: ../../library/tkinter.ttk.rst:1532 msgid "As an example, let's change the Combobox for the default theme a bit::" msgstr "" -#: ../../library/tkinter.ttk.rst:1534 msgid "" "from tkinter import ttk\n" "import tkinter\n" @@ -2285,22 +1848,18 @@ msgid "" "root.mainloop()" msgstr "" -#: ../../library/tkinter.ttk.rst:1560 msgid "Returns a list of all known themes." msgstr "" -#: ../../library/tkinter.ttk.rst:1565 msgid "" "If *themename* is not given, returns the theme in use. Otherwise, sets the " "current theme to *themename*, refreshes all widgets and emits a " "<> event." msgstr "" -#: ../../library/tkinter.ttk.rst:1571 msgid "Layouts" msgstr "" -#: ../../library/tkinter.ttk.rst:1573 msgid "" "A layout can be just ``None``, if it takes no options, or a dict of options " "specifying how to arrange the element. The layout mechanism uses a " @@ -2308,46 +1867,37 @@ msgid "" "each element is allocated a parcel." msgstr "" -#: ../../library/tkinter.ttk.rst:1580 msgid "*side*: whichside" msgstr "" -#: ../../library/tkinter.ttk.rst:1581 msgid "" "Specifies which side of the cavity to place the element; one of top, right, " "bottom or left. If omitted, the element occupies the entire cavity." msgstr "" -#: ../../library/tkinter.ttk.rst:1585 msgid "*sticky*: nswe" msgstr "" -#: ../../library/tkinter.ttk.rst:1586 msgid "Specifies where the element is placed inside its allocated parcel." msgstr "" -#: ../../library/tkinter.ttk.rst:1588 msgid "*unit*: 0 or 1" msgstr "" -#: ../../library/tkinter.ttk.rst:1589 msgid "" "If set to 1, causes the element and all of its descendants to be treated as " "a single element for the purposes of :meth:`Widget.identify` et al. It's " "used for things like scrollbar thumbs with grips." msgstr "" -#: ../../library/tkinter.ttk.rst:1593 msgid "*children*: [sublayout... ]" msgstr "" -#: ../../library/tkinter.ttk.rst:1594 msgid "" "Specifies a list of elements to place inside the element. Each element is a " "tuple (or other sequence type) where the first item is the layout name, and " "the other is a `Layout`_." msgstr "" -#: ../../library/tkinter.ttk.rst:11 msgid "ttk" msgstr "" diff --git a/library/token.po b/library/token.po index b438850..726a463 100644 --- a/library/token.po +++ b/library/token.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/token.rst:2 msgid ":mod:`!token` --- Constants used with Python parse trees" msgstr "" -#: ../../library/token.rst:9 msgid "**Source code:** :source:`Lib/token.py`" msgstr "" -#: ../../library/token.rst:13 msgid "" "This module provides constants which represent the numeric values of leaf " "nodes of the parse tree (terminal tokens). Refer to the file :file:`Grammar/" @@ -35,53 +32,43 @@ msgid "" "names map to may change between Python versions." msgstr "" -#: ../../library/token.rst:19 msgid "" "The module also provides a mapping from numeric codes to names and some " "functions. The functions mirror definitions in the Python C header files." msgstr "" -#: ../../library/token.rst:22 msgid "" "Note that a token's value may depend on tokenizer options. For example, a " "``\"+\"`` token may be reported as either :data:`PLUS` or :data:`OP`, or a " "``\"match\"`` token may be either :data:`NAME` or :data:`SOFT_KEYWORD`." msgstr "" -#: ../../library/token.rst:29 msgid "" "Dictionary mapping the numeric values of the constants defined in this " "module back to name strings, allowing more human-readable representation of " "parse trees to be generated." msgstr "" -#: ../../library/token.rst:36 msgid "Return ``True`` for terminal token values." msgstr "" -#: ../../library/token.rst:41 msgid "Return ``True`` for non-terminal token values." msgstr "" -#: ../../library/token.rst:46 msgid "Return ``True`` if *x* is the marker indicating the end of input." msgstr "" -#: ../../library/token.rst:49 msgid "The token constants are:" msgstr "" -#: ../../library/token.rst:53 msgid "" "Token value that indicates an :ref:`identifier `. Note that " "keywords are also initially tokenized as ``NAME`` tokens." msgstr "" -#: ../../library/token.rst:58 msgid "Token value that indicates a :ref:`numeric literal `" msgstr "" -#: ../../library/token.rst:62 msgid "" "Token value that indicates a :ref:`string or byte literal `, " "excluding :ref:`formatted string literals `. The token string is " @@ -90,413 +77,324 @@ msgid "" "sequences." msgstr "" -#: ../../library/token.rst:70 msgid "" -"A generic token value that indicates an :ref:`operator ` " -"or :ref:`delimiter `." +"A generic token value that indicates an :ref:`operator ` or :ref:" +"`delimiter `." msgstr "" -#: ../../library/token.rst:75 msgid "" "This value is only reported by the :mod:`tokenize` module. Internally, the " "tokenizer uses :ref:`exact token types ` instead." msgstr "" -#: ../../library/token.rst:81 msgid "" "Token value used to indicate a comment. The parser ignores :data:`!COMMENT` " "tokens." msgstr "" -#: ../../library/token.rst:86 msgid "" "Token value that indicates the end of a :ref:`logical line `." msgstr "" -#: ../../library/token.rst:90 msgid "" "Token value used to indicate a non-terminating newline. :data:`!NL` tokens " "are generated when a logical line of code is continued over multiple " "physical lines. The parser ignores :data:`!NL` tokens." msgstr "" -#: ../../library/token.rst:96 msgid "" "Token value used at the beginning of a :ref:`logical line ` " "to indicate the start of an :ref:`indented block `." msgstr "" -#: ../../library/token.rst:101 msgid "" "Token value used at the beginning of a :ref:`logical line ` " "to indicate the end of an :ref:`indented block `." msgstr "" -#: ../../library/token.rst:106 msgid "" "Token value used to indicate the beginning of an :ref:`f-string literal `." msgstr "" -#: ../../library/token.rst:111 ../../library/token.rst:140 msgid "" "The token string includes the prefix and the opening quote(s), but none of " "the contents of the literal." msgstr "" -#: ../../library/token.rst:116 msgid "" "Token value used for literal text inside an :ref:`f-string literal `, including format specifications." msgstr "" -#: ../../library/token.rst:121 msgid "" "Replacement fields (that is, the non-literal parts of f-strings) use the " -"same tokens as other expressions, and are delimited " -"by :data:`LBRACE`, :data:`RBRACE`, :data:`EXCLAMATION` and :data:`COLON` " -"tokens." +"same tokens as other expressions, and are delimited by :data:`LBRACE`, :data:" +"`RBRACE`, :data:`EXCLAMATION` and :data:`COLON` tokens." msgstr "" -#: ../../library/token.rst:128 msgid "Token value used to indicate the end of a :ref:`f-string `." msgstr "" -#: ../../library/token.rst:132 ../../library/token.rst:165 msgid "The token string contains the closing quote(s)." msgstr "" -#: ../../library/token.rst:136 msgid "" "Token value used to indicate the beginning of a template string literal." msgstr "" -#: ../../library/token.rst:147 msgid "" "Token value used for literal text inside a template string literal including " "format specifications." msgstr "" -#: ../../library/token.rst:152 msgid "" "Replacement fields (that is, the non-literal parts of t-strings) use the " -"same tokens as other expressions, and are delimited " -"by :data:`LBRACE`, :data:`RBRACE`, :data:`EXCLAMATION` and :data:`COLON` " -"tokens." +"same tokens as other expressions, and are delimited by :data:`LBRACE`, :data:" +"`RBRACE`, :data:`EXCLAMATION` and :data:`COLON` tokens." msgstr "" -#: ../../library/token.rst:161 msgid "Token value used to indicate the end of a template string literal." msgstr "" -#: ../../library/token.rst:171 msgid "" "Token value that indicates the end of input. Used in :ref:`top-level grammar " "rules `." msgstr "" -#: ../../library/token.rst:176 msgid "" "Token value that indicates the encoding used to decode the source bytes into " "text. The first token returned by :func:`tokenize.tokenize` will always be " "an ``ENCODING`` token." msgstr "" -#: ../../library/token.rst:182 msgid "" -"This token type isn't used by the C tokenizer but is needed for " -"the :mod:`tokenize` module." +"This token type isn't used by the C tokenizer but is needed for the :mod:" +"`tokenize` module." msgstr "" -#: ../../library/token.rst:186 msgid "" "The following token types are not produced by the :mod:`tokenize` module, " "and are defined for special uses in the tokenizer or parser:" msgstr "" -#: ../../library/token.rst:191 msgid "" "Token value indicating that a ``type: ignore`` comment was recognized. Such " -"tokens are produced instead of regular :data:`COMMENT` tokens only with " -"the :data:`~ast.PyCF_TYPE_COMMENTS` flag." +"tokens are produced instead of regular :data:`COMMENT` tokens only with the :" +"data:`~ast.PyCF_TYPE_COMMENTS` flag." msgstr "" -#: ../../library/token.rst:197 msgid "" "Token value indicating that a type comment was recognized. Such tokens are " -"produced instead of regular :data:`COMMENT` tokens only with " -"the :data:`~ast.PyCF_TYPE_COMMENTS` flag." +"produced instead of regular :data:`COMMENT` tokens only with the :data:`~ast." +"PyCF_TYPE_COMMENTS` flag." msgstr "" -#: ../../library/token.rst:203 msgid "Token value indicating a :ref:`soft keyword `." msgstr "" -#: ../../library/token.rst:205 msgid "" "The tokenizer never produces this value. To check for a soft keyword, pass " "a :data:`NAME` token's string to :func:`keyword.issoftkeyword`." msgstr "" -#: ../../library/token.rst:211 msgid "Token value used to indicate wrong input." msgstr "" -#: ../../library/token.rst:213 msgid "" "The :mod:`tokenize` module generally indicates errors by raising exceptions " "instead of emitting this token. It can also emit tokens such as :data:`OP` " "or :data:`NAME` with strings that are later rejected by the parser." msgstr "" -#: ../../library/token.rst:221 msgid "" -"The remaining tokens represent specific :ref:`operators ` " -"and :ref:`delimiters `. (The :mod:`tokenize` module reports " -"these as :data:`OP`; see ``exact_type`` in the :mod:`tokenize` documentation " -"for details.)" +"The remaining tokens represent specific :ref:`operators ` and :" +"ref:`delimiters `. (The :mod:`tokenize` module reports these as :" +"data:`OP`; see ``exact_type`` in the :mod:`tokenize` documentation for " +"details.)" msgstr "" -#: ../../library/token-list.inc:7 msgid "Token" msgstr "" -#: ../../library/token-list.inc:8 msgid "Value" msgstr "" -#: ../../library/token-list.inc:10 msgid "``\"(\"``" msgstr "" -#: ../../library/token-list.inc:12 msgid "``\")\"``" msgstr "" -#: ../../library/token-list.inc:14 msgid "``\"[\"``" msgstr "" -#: ../../library/token-list.inc:16 msgid "``\"]\"``" msgstr "" -#: ../../library/token-list.inc:18 msgid "``\":\"``" msgstr "" -#: ../../library/token-list.inc:20 msgid "``\",\"``" msgstr "" -#: ../../library/token-list.inc:22 msgid "``\";\"``" msgstr "" -#: ../../library/token-list.inc:24 msgid "``\"+\"``" msgstr "" -#: ../../library/token-list.inc:26 msgid "``\"-\"``" msgstr "" -#: ../../library/token-list.inc:28 msgid "``\"*\"``" msgstr "" -#: ../../library/token-list.inc:30 msgid "``\"/\"``" msgstr "" -#: ../../library/token-list.inc:32 msgid "``\"|\"``" msgstr "" -#: ../../library/token-list.inc:34 msgid "``\"&\"``" msgstr "" -#: ../../library/token-list.inc:36 msgid "``\"<\"``" msgstr "" -#: ../../library/token-list.inc:38 msgid "``\">\"``" msgstr "" -#: ../../library/token-list.inc:40 msgid "``\"=\"``" msgstr "" -#: ../../library/token-list.inc:42 msgid "``\".\"``" msgstr "" -#: ../../library/token-list.inc:44 msgid "``\"%\"``" msgstr "" -#: ../../library/token-list.inc:46 msgid "``\"{\"``" msgstr "" -#: ../../library/token-list.inc:48 msgid "``\"}\"``" msgstr "" -#: ../../library/token-list.inc:50 msgid "``\"==\"``" msgstr "" -#: ../../library/token-list.inc:52 msgid "``\"!=\"``" msgstr "" -#: ../../library/token-list.inc:54 msgid "``\"<=\"``" msgstr "" -#: ../../library/token-list.inc:56 msgid "``\">=\"``" msgstr "" -#: ../../library/token-list.inc:58 msgid "``\"~\"``" msgstr "" -#: ../../library/token-list.inc:60 msgid "``\"^\"``" msgstr "" -#: ../../library/token-list.inc:62 msgid "``\"<<\"``" msgstr "" -#: ../../library/token-list.inc:64 msgid "``\">>\"``" msgstr "" -#: ../../library/token-list.inc:66 msgid "``\"**\"``" msgstr "" -#: ../../library/token-list.inc:68 msgid "``\"+=\"``" msgstr "" -#: ../../library/token-list.inc:70 msgid "``\"-=\"``" msgstr "" -#: ../../library/token-list.inc:72 msgid "``\"*=\"``" msgstr "" -#: ../../library/token-list.inc:74 msgid "``\"/=\"``" msgstr "" -#: ../../library/token-list.inc:76 msgid "``\"%=\"``" msgstr "" -#: ../../library/token-list.inc:78 msgid "``\"&=\"``" msgstr "" -#: ../../library/token-list.inc:80 msgid "``\"|=\"``" msgstr "" -#: ../../library/token-list.inc:82 msgid "``\"^=\"``" msgstr "" -#: ../../library/token-list.inc:84 msgid "``\"<<=\"``" msgstr "" -#: ../../library/token-list.inc:86 msgid "``\">>=\"``" msgstr "" -#: ../../library/token-list.inc:88 msgid "``\"**=\"``" msgstr "" -#: ../../library/token-list.inc:90 msgid "``\"//\"``" msgstr "" -#: ../../library/token-list.inc:92 msgid "``\"//=\"``" msgstr "" -#: ../../library/token-list.inc:94 msgid "``\"@\"``" msgstr "" -#: ../../library/token-list.inc:96 msgid "``\"@=\"``" msgstr "" -#: ../../library/token-list.inc:98 msgid "``\"->\"``" msgstr "" -#: ../../library/token-list.inc:100 msgid "``\"...\"``" msgstr "" -#: ../../library/token-list.inc:102 msgid "``\":=\"``" msgstr "" -#: ../../library/token-list.inc:104 msgid "``\"!\"``" msgstr "" -#: ../../library/token.rst:229 msgid "The following non-token constants are provided:" msgstr "" -#: ../../library/token.rst:233 msgid "The number of token types defined in this module." msgstr "" -#: ../../library/token.rst:240 msgid "" "A dictionary mapping the string representation of a token to its numeric " "code." msgstr "" -#: ../../library/token.rst:245 msgid "Added :data:`!AWAIT` and :data:`!ASYNC` tokens." msgstr "" -#: ../../library/token.rst:248 msgid "Added :data:`COMMENT`, :data:`NL` and :data:`ENCODING` tokens." msgstr "" -#: ../../library/token.rst:251 msgid "" "Removed :data:`!AWAIT` and :data:`!ASYNC` tokens. \"async\" and \"await\" " "are now tokenized as :data:`NAME` tokens." msgstr "" -#: ../../library/token.rst:255 msgid "" -"Added :data:`TYPE_COMMENT`, :data:`TYPE_IGNORE`, :data:`COLONEQUAL`. " -"Added :data:`!AWAIT` and :data:`!ASYNC` tokens back (they're needed to " -"support parsing older Python versions for :func:`ast.parse` with " -"``feature_version`` set to 6 or lower)." +"Added :data:`TYPE_COMMENT`, :data:`TYPE_IGNORE`, :data:`COLONEQUAL`. Added :" +"data:`!AWAIT` and :data:`!ASYNC` tokens back (they're needed to support " +"parsing older Python versions for :func:`ast.parse` with ``feature_version`` " +"set to 6 or lower)." msgstr "" -#: ../../library/token.rst:261 msgid "Added :data:`EXCLAMATION`." msgstr "" -#: ../../library/token.rst:264 msgid "Removed :data:`!AWAIT` and :data:`!ASYNC` tokens again." msgstr "" diff --git a/library/tokenize.po b/library/tokenize.po index 0372071..fc585c5 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tokenize.rst:2 msgid ":mod:`!tokenize` --- Tokenizer for Python source" msgstr "" -#: ../../library/tokenize.rst:10 msgid "**Source code:** :source:`Lib/tokenize.py`" msgstr "" -#: ../../library/tokenize.rst:14 msgid "" "The :mod:`tokenize` module provides a lexical scanner for Python source " "code, implemented in Python. The scanner in this module returns comments as " @@ -34,41 +31,35 @@ msgid "" "including colorizers for on-screen displays." msgstr "" -#: ../../library/tokenize.rst:19 msgid "" -"To simplify token stream handling, all :ref:`operator ` " -"and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned " -"using the generic :data:`~token.OP` token type. The exact type can be " -"determined by checking the ``exact_type`` property on the :term:`named " -"tuple` returned from :func:`tokenize.tokenize`." +"To simplify token stream handling, all :ref:`operator ` and :ref:" +"`delimiter ` tokens and :data:`Ellipsis` are returned using the " +"generic :data:`~token.OP` token type. The exact type can be determined by " +"checking the ``exact_type`` property on the :term:`named tuple` returned " +"from :func:`tokenize.tokenize`." msgstr "" -#: ../../library/tokenize.rst:28 msgid "" "Note that the functions in this module are only designed to parse " -"syntactically valid Python code (code that does not raise when parsed " -"using :func:`ast.parse`). The behavior of the functions in this module is " +"syntactically valid Python code (code that does not raise when parsed using :" +"func:`ast.parse`). The behavior of the functions in this module is " "**undefined** when providing invalid Python code and it can change at any " "point." msgstr "" -#: ../../library/tokenize.rst:35 msgid "Tokenizing Input" msgstr "" -#: ../../library/tokenize.rst:37 msgid "The primary entry point is a :term:`generator`:" msgstr "" -#: ../../library/tokenize.rst:41 msgid "" "The :func:`.tokenize` generator requires one argument, *readline*, which " -"must be a callable object which provides the same interface as " -"the :meth:`io.IOBase.readline` method of file objects. Each call to the " -"function should return one line of input as bytes." +"must be a callable object which provides the same interface as the :meth:`io." +"IOBase.readline` method of file objects. Each call to the function should " +"return one line of input as bytes." msgstr "" -#: ../../library/tokenize.rst:46 msgid "" "The generator produces 5-tuples with these members: the token type; the " "token string; a 2-tuple ``(srow, scol)`` of ints specifying the row and " @@ -79,7 +70,6 @@ msgid "" "with the field names: ``type string start end line``." msgstr "" -#: ../../library/tokenize.rst:55 msgid "" "The returned :term:`named tuple` has an additional property named " "``exact_type`` that contains the exact operator type for :data:`~token.OP` " @@ -87,58 +77,48 @@ msgid "" "``type`` field." msgstr "" -#: ../../library/tokenize.rst:60 msgid "Added support for named tuples." msgstr "" -#: ../../library/tokenize.rst:63 msgid "Added support for ``exact_type``." msgstr "" -#: ../../library/tokenize.rst:66 msgid "" ":func:`.tokenize` determines the source encoding of the file by looking for " "a UTF-8 BOM or encoding cookie, according to :pep:`263`." msgstr "" -#: ../../library/tokenize.rst:71 msgid "Tokenize a source reading unicode strings instead of bytes." msgstr "" -#: ../../library/tokenize.rst:73 msgid "" "Like :func:`.tokenize`, the *readline* argument is a callable returning a " "single line of input. However, :func:`generate_tokens` expects *readline* to " "return a str object rather than bytes." msgstr "" -#: ../../library/tokenize.rst:77 msgid "" -"The result is an iterator yielding named tuples, exactly " -"like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." +"The result is an iterator yielding named tuples, exactly like :func:`." +"tokenize`. It does not yield an :data:`~token.ENCODING` token." msgstr "" -#: ../../library/tokenize.rst:80 msgid "" -"All constants from the :mod:`token` module are also exported " -"from :mod:`tokenize`." +"All constants from the :mod:`token` module are also exported from :mod:" +"`tokenize`." msgstr "" -#: ../../library/tokenize.rst:83 msgid "" "Another function is provided to reverse the tokenization process. This is " "useful for creating tools that tokenize a script, modify the token stream, " "and write back the modified script." msgstr "" -#: ../../library/tokenize.rst:90 msgid "" "Converts tokens back into Python source code. The *iterable* must return " "sequences with at least two elements, the token type and the token string. " "Any additional sequence elements are ignored." msgstr "" -#: ../../library/tokenize.rst:94 msgid "" "The result is guaranteed to tokenize back to match the input so that the " "conversion is lossless and round-trips are assured. The guarantee applies " @@ -146,33 +126,28 @@ msgid "" "(column positions) may change." msgstr "" -#: ../../library/tokenize.rst:99 msgid "" "It returns bytes, encoded using the :data:`~token.ENCODING` token, which is " "the first token sequence output by :func:`.tokenize`. If there is no " "encoding token in the input, it returns a str instead." msgstr "" -#: ../../library/tokenize.rst:104 msgid "" ":func:`.tokenize` needs to detect the encoding of source files it tokenizes. " "The function it uses to do this is available:" msgstr "" -#: ../../library/tokenize.rst:109 msgid "" "The :func:`detect_encoding` function is used to detect the encoding that " "should be used to decode a Python source file. It requires one argument, " "readline, in the same way as the :func:`.tokenize` generator." msgstr "" -#: ../../library/tokenize.rst:113 msgid "" "It will call readline a maximum of twice, and return the encoding used (as a " "string) and a list of any lines (not decoded from bytes) it has read in." msgstr "" -#: ../../library/tokenize.rst:117 msgid "" "It detects the encoding from the presence of a UTF-8 BOM or an encoding " "cookie as specified in :pep:`263`. If both a BOM and a cookie are present, " @@ -180,90 +155,73 @@ msgid "" "found, ``'utf-8-sig'`` will be returned as an encoding." msgstr "" -#: ../../library/tokenize.rst:122 msgid "" "If no encoding is specified, then the default of ``'utf-8'`` will be " "returned." msgstr "" -#: ../../library/tokenize.rst:125 msgid "" -"Use :func:`.open` to open Python source files: it " -"uses :func:`detect_encoding` to detect the file encoding." +"Use :func:`.open` to open Python source files: it uses :func:" +"`detect_encoding` to detect the file encoding." msgstr "" -#: ../../library/tokenize.rst:131 msgid "" -"Open a file in read only mode using the encoding detected " -"by :func:`detect_encoding`." +"Open a file in read only mode using the encoding detected by :func:" +"`detect_encoding`." msgstr "" -#: ../../library/tokenize.rst:138 msgid "" "Raised when either a docstring or expression that may be split over several " "lines is not completed anywhere in the file, for example::" msgstr "" -#: ../../library/tokenize.rst:141 msgid "" "\"\"\"Beginning of\n" "docstring" msgstr "" -#: ../../library/tokenize.rst:144 msgid "or::" msgstr "" -#: ../../library/tokenize.rst:146 msgid "" "[1,\n" " 2,\n" " 3" msgstr "" -#: ../../library/tokenize.rst:153 msgid "Command-Line Usage" msgstr "" -#: ../../library/tokenize.rst:157 msgid "" "The :mod:`tokenize` module can be executed as a script from the command " "line. It is as simple as:" msgstr "" -#: ../../library/tokenize.rst:160 msgid "python -m tokenize [-e] [filename.py]" msgstr "" -#: ../../library/tokenize.rst:164 msgid "The following options are accepted:" msgstr "" -#: ../../library/tokenize.rst:170 msgid "show this help message and exit" msgstr "" -#: ../../library/tokenize.rst:174 msgid "display token names using the exact type" msgstr "" -#: ../../library/tokenize.rst:176 msgid "" "If :file:`filename.py` is specified its contents are tokenized to stdout. " "Otherwise, tokenization is performed on stdin." msgstr "" -#: ../../library/tokenize.rst:180 msgid "Examples" msgstr "" -#: ../../library/tokenize.rst:182 msgid "" "Example of a script rewriter that transforms float literals into Decimal " "objects::" msgstr "" -#: ../../library/tokenize.rst:185 msgid "" "from tokenize import tokenize, untokenize, NUMBER, STRING, NAME, OP\n" "from io import BytesIO\n" @@ -306,11 +264,9 @@ msgid "" " return untokenize(result).decode('utf-8')" msgstr "" -#: ../../library/tokenize.rst:224 msgid "Example of tokenizing from the command line. The script::" msgstr "" -#: ../../library/tokenize.rst:226 msgid "" "def say_hello():\n" " print(\"Hello, World!\")\n" @@ -318,7 +274,6 @@ msgid "" "say_hello()" msgstr "" -#: ../../library/tokenize.rst:231 msgid "" "will be tokenized to the following output where the first column is the " "range of the line/column coordinates where the token is found, the second " @@ -326,7 +281,6 @@ msgid "" "token (if any)" msgstr "" -#: ../../library/tokenize.rst:235 msgid "" "$ python -m tokenize hello.py\n" "0,0-0,0: ENCODING 'utf-8'\n" @@ -351,12 +305,10 @@ msgid "" "5,0-5,0: ENDMARKER ''" msgstr "" -#: ../../library/tokenize.rst:259 msgid "" "The exact token type names can be displayed using the :option:`-e` option:" msgstr "" -#: ../../library/tokenize.rst:261 msgid "" "$ python -m tokenize -e hello.py\n" "0,0-0,0: ENCODING 'utf-8'\n" @@ -381,13 +333,11 @@ msgid "" "5,0-5,0: ENDMARKER ''" msgstr "" -#: ../../library/tokenize.rst:285 msgid "" "Example of tokenizing a file programmatically, reading unicode strings " "instead of bytes with :func:`generate_tokens`::" msgstr "" -#: ../../library/tokenize.rst:288 msgid "" "import tokenize\n" "\n" @@ -397,11 +347,9 @@ msgid "" " print(token)" msgstr "" -#: ../../library/tokenize.rst:295 msgid "Or reading bytes directly with :func:`.tokenize`::" msgstr "" -#: ../../library/tokenize.rst:297 msgid "" "import tokenize\n" "\n" diff --git a/library/tomllib.po b/library/tomllib.po index 3cb1ed1..f92399f 100644 --- a/library/tomllib.po +++ b/library/tomllib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,114 +18,91 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tomllib.rst:2 msgid ":mod:`!tomllib` --- Parse TOML files" msgstr "" -#: ../../library/tomllib.rst:12 msgid "**Source code:** :source:`Lib/tomllib`" msgstr "" -#: ../../library/tomllib.rst:16 msgid "" "This module provides an interface for parsing TOML 1.0.0 (Tom's Obvious " "Minimal Language, `https://toml.io `_). This module " "does not support writing TOML." msgstr "" -#: ../../library/tomllib.rst:22 msgid "" "The :pypi:`Tomli-W package ` is a TOML writer that can be used in " "conjunction with this module, providing a write API familiar to users of the " "standard library :mod:`marshal` and :mod:`pickle` modules." msgstr "" -#: ../../library/tomllib.rst:29 msgid "" "The :pypi:`TOML Kit package ` is a style-preserving TOML library " "with both read and write capability. It is a recommended replacement for " "this module for editing already existing TOML files." msgstr "" -#: ../../library/tomllib.rst:35 msgid "This module defines the following functions:" msgstr "" -#: ../../library/tomllib.rst:39 msgid "" "Read a TOML file. The first argument should be a readable and binary file " -"object. Return a :class:`dict`. Convert TOML types to Python using " -"this :ref:`conversion table `." +"object. Return a :class:`dict`. Convert TOML types to Python using this :ref:" +"`conversion table `." msgstr "" -#: ../../library/tomllib.rst:43 msgid "" "*parse_float* will be called with the string of every TOML float to be " "decoded. By default, this is equivalent to ``float(num_str)``. This can be " -"used to use another datatype or parser for TOML floats " -"(e.g. :class:`decimal.Decimal`). The callable must not return " -"a :class:`dict` or a :class:`list`, else a :exc:`ValueError` is raised." +"used to use another datatype or parser for TOML floats (e.g. :class:`decimal." +"Decimal`). The callable must not return a :class:`dict` or a :class:`list`, " +"else a :exc:`ValueError` is raised." msgstr "" -#: ../../library/tomllib.rst:49 ../../library/tomllib.rst:58 msgid "A :exc:`TOMLDecodeError` will be raised on an invalid TOML document." msgstr "" -#: ../../library/tomllib.rst:54 msgid "" "Load TOML from a :class:`str` object. Return a :class:`dict`. Convert TOML " "types to Python using this :ref:`conversion table `. The " "*parse_float* argument has the same meaning as in :func:`load`." msgstr "" -#: ../../library/tomllib.rst:61 msgid "The following exceptions are available:" msgstr "" -#: ../../library/tomllib.rst:65 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" msgstr "" -#: ../../library/tomllib.rst:69 msgid "The unformatted error message." msgstr "" -#: ../../library/tomllib.rst:73 msgid "The TOML document being parsed." msgstr "" -#: ../../library/tomllib.rst:77 msgid "The index of *doc* where parsing failed." msgstr "" -#: ../../library/tomllib.rst:81 msgid "The line corresponding to *pos*." msgstr "" -#: ../../library/tomllib.rst:85 msgid "The column corresponding to *pos*." msgstr "" -#: ../../library/tomllib.rst:87 msgid "" -"Added the *msg*, *doc* and *pos* parameters. Added " -"the :attr:`msg`, :attr:`doc`, :attr:`pos`, :attr:`lineno` and :attr:`colno` " -"attributes." +"Added the *msg*, *doc* and *pos* parameters. Added the :attr:`msg`, :attr:" +"`doc`, :attr:`pos`, :attr:`lineno` and :attr:`colno` attributes." msgstr "" -#: ../../library/tomllib.rst:91 msgid "Passing free-form positional arguments is deprecated." msgstr "" -#: ../../library/tomllib.rst:96 msgid "Examples" msgstr "" -#: ../../library/tomllib.rst:98 msgid "Parsing a TOML file::" msgstr "" -#: ../../library/tomllib.rst:100 msgid "" "import tomllib\n" "\n" @@ -133,11 +110,9 @@ msgid "" " data = tomllib.load(f)" msgstr "" -#: ../../library/tomllib.rst:105 msgid "Parsing a TOML string::" msgstr "" -#: ../../library/tomllib.rst:107 msgid "" "import tomllib\n" "\n" @@ -149,113 +124,85 @@ msgid "" "data = tomllib.loads(toml_str)" msgstr "" -#: ../../library/tomllib.rst:118 msgid "Conversion Table" msgstr "" -#: ../../library/tomllib.rst:123 msgid "TOML" msgstr "" -#: ../../library/tomllib.rst:123 msgid "Python" msgstr "" -#: ../../library/tomllib.rst:125 msgid "TOML document" msgstr "" -#: ../../library/tomllib.rst:125 ../../library/tomllib.rst:145 -#: ../../library/tomllib.rst:147 msgid "dict" msgstr "" -#: ../../library/tomllib.rst:127 msgid "string" msgstr "" -#: ../../library/tomllib.rst:127 msgid "str" msgstr "" -#: ../../library/tomllib.rst:129 msgid "integer" msgstr "" -#: ../../library/tomllib.rst:129 msgid "int" msgstr "" -#: ../../library/tomllib.rst:131 msgid "float" msgstr "" -#: ../../library/tomllib.rst:131 msgid "float (configurable with *parse_float*)" msgstr "" -#: ../../library/tomllib.rst:133 msgid "boolean" msgstr "" -#: ../../library/tomllib.rst:133 msgid "bool" msgstr "" -#: ../../library/tomllib.rst:135 msgid "offset date-time" msgstr "" -#: ../../library/tomllib.rst:135 msgid "" -"datetime.datetime (``tzinfo`` attribute set to an instance of " -"``datetime.timezone``)" +"datetime.datetime (``tzinfo`` attribute set to an instance of ``datetime." +"timezone``)" msgstr "" -#: ../../library/tomllib.rst:137 msgid "local date-time" msgstr "" -#: ../../library/tomllib.rst:137 msgid "datetime.datetime (``tzinfo`` attribute set to ``None``)" msgstr "" -#: ../../library/tomllib.rst:139 msgid "local date" msgstr "" -#: ../../library/tomllib.rst:139 msgid "datetime.date" msgstr "" -#: ../../library/tomllib.rst:141 msgid "local time" msgstr "" -#: ../../library/tomllib.rst:141 msgid "datetime.time" msgstr "" -#: ../../library/tomllib.rst:143 msgid "array" msgstr "" -#: ../../library/tomllib.rst:143 msgid "list" msgstr "" -#: ../../library/tomllib.rst:145 msgid "table" msgstr "" -#: ../../library/tomllib.rst:147 msgid "inline table" msgstr "" -#: ../../library/tomllib.rst:149 msgid "array of tables" msgstr "" -#: ../../library/tomllib.rst:149 msgid "list of dicts" msgstr "" diff --git a/library/trace.po b/library/trace.po index ee95faa..34379b4 100644 --- a/library/trace.po +++ b/library/trace.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/trace.rst:2 msgid ":mod:`!trace` --- Trace or track Python statement execution" msgstr "" -#: ../../library/trace.rst:7 msgid "**Source code:** :source:`Lib/trace.py`" msgstr "" -#: ../../library/trace.rst:11 msgid "" "The :mod:`trace` module allows you to trace program execution, generate " "annotated statement coverage listings, print caller/callee relationships and " @@ -34,154 +31,125 @@ msgid "" "program or from the command line." msgstr "" -#: ../../library/trace.rst:18 msgid "`Coverage.py `_" msgstr "" -#: ../../library/trace.rst:19 msgid "" "A popular third-party coverage tool that provides HTML output along with " "advanced features such as branch coverage." msgstr "" -#: ../../library/trace.rst:25 msgid "Command-Line Usage" msgstr "" -#: ../../library/trace.rst:27 msgid "" "The :mod:`trace` module can be invoked from the command line. It can be as " "simple as ::" msgstr "" -#: ../../library/trace.rst:30 msgid "python -m trace --count -C . somefile.py ..." msgstr "" -#: ../../library/trace.rst:32 msgid "" "The above will execute :file:`somefile.py` and generate annotated listings " "of all Python modules imported during the execution into the current " "directory." msgstr "" -#: ../../library/trace.rst:39 msgid "Display usage and exit." msgstr "" -#: ../../library/trace.rst:43 msgid "Display the version of the module and exit." msgstr "" -#: ../../library/trace.rst:45 msgid "Added ``--module`` option that allows to run an executable module." msgstr "" -#: ../../library/trace.rst:49 msgid "Main options" msgstr "" -#: ../../library/trace.rst:51 msgid "" -"At least one of the following options must be specified when " -"invoking :mod:`trace`. The :option:`--listfuncs <-l>` option is mutually " -"exclusive with the :option:`--trace <-t>` and :option:`--count <-c>` " -"options. When :option:`--listfuncs <-l>` is provided, neither :option:`--" -"count <-c>` nor :option:`--trace <-t>` are accepted, and vice versa." +"At least one of the following options must be specified when invoking :mod:" +"`trace`. The :option:`--listfuncs <-l>` option is mutually exclusive with " +"the :option:`--trace <-t>` and :option:`--count <-c>` options. When :option:" +"`--listfuncs <-l>` is provided, neither :option:`--count <-c>` nor :option:" +"`--trace <-t>` are accepted, and vice versa." msgstr "" -#: ../../library/trace.rst:61 msgid "" "Produce a set of annotated listing files upon program completion that shows " "how many times each statement was executed. See also :option:`--coverdir <-" "C>`, :option:`--file <-f>` and :option:`--no-report <-R>` below." msgstr "" -#: ../../library/trace.rst:68 msgid "Display lines as they are executed." msgstr "" -#: ../../library/trace.rst:72 msgid "Display the functions executed by running the program." msgstr "" -#: ../../library/trace.rst:76 msgid "" -"Produce an annotated list from an earlier program run that used " -"the :option:`--count <-c>` and :option:`--file <-f>` option. This does not " -"execute any code." +"Produce an annotated list from an earlier program run that used the :option:" +"`--count <-c>` and :option:`--file <-f>` option. This does not execute any " +"code." msgstr "" -#: ../../library/trace.rst:82 msgid "Display the calling relationships exposed by running the program." msgstr "" -#: ../../library/trace.rst:85 msgid "Modifiers" msgstr "" -#: ../../library/trace.rst:91 msgid "" "Name of a file to accumulate counts over several tracing runs. Should be " "used with the :option:`--count <-c>` option." msgstr "" -#: ../../library/trace.rst:96 msgid "" -"Directory where the report files go. The coverage report for " -"``package.module`` is written to file :file:`{dir}/{package}/{module}.cover`." +"Directory where the report files go. The coverage report for ``package." +"module`` is written to file :file:`{dir}/{package}/{module}.cover`." msgstr "" -#: ../../library/trace.rst:101 msgid "" "When generating annotated listings, mark lines which were not executed with " "``>>>>>>``." msgstr "" -#: ../../library/trace.rst:106 msgid "" "When using :option:`--count <-c>` or :option:`--report <-r>`, write a brief " "summary to stdout for each file processed." msgstr "" -#: ../../library/trace.rst:111 msgid "" "Do not generate annotated listings. This is useful if you intend to make " "several runs with :option:`--count <-c>`, and then produce a single set of " "annotated listings at the end." msgstr "" -#: ../../library/trace.rst:117 msgid "" "Prefix each line with the time since the program started. Only used while " "tracing." msgstr "" -#: ../../library/trace.rst:121 msgid "Filters" msgstr "" -#: ../../library/trace.rst:123 msgid "These options may be repeated multiple times." msgstr "" -#: ../../library/trace.rst:129 msgid "" "Ignore each of the given module names and its submodules (if it is a " "package). The argument can be a list of names separated by a comma." msgstr "" -#: ../../library/trace.rst:134 msgid "" "Ignore all modules and packages in the named directory and subdirectories. " "The argument can be a list of directories separated by :data:`os.pathsep`." msgstr "" -#: ../../library/trace.rst:140 msgid "Programmatic Interface" msgstr "" -#: ../../library/trace.rst:145 msgid "" "Create an object to trace execution of a single statement or expression. " "All parameters are optional. *count* enables counting of line numbers. " @@ -195,44 +163,37 @@ msgid "" "was started to be displayed." msgstr "" -#: ../../library/trace.rst:158 msgid "" "Execute the command and gather statistics from the execution with the " "current tracing parameters. *cmd* must be a string or code object, suitable " "for passing into :func:`exec`." msgstr "" -#: ../../library/trace.rst:164 msgid "" "Execute the command and gather statistics from the execution with the " "current tracing parameters, in the defined global and local environments. " "If not defined, *globals* and *locals* default to empty dictionaries." msgstr "" -#: ../../library/trace.rst:171 msgid "" "Call *func* with the given arguments under control of the :class:`Trace` " "object with the current tracing parameters." msgstr "" -#: ../../library/trace.rst:176 msgid "" "Return a :class:`CoverageResults` object that contains the cumulative " "results of all previous calls to ``run``, ``runctx`` and ``runfunc`` for the " "given :class:`Trace` instance. Does not reset the accumulated trace results." msgstr "" -#: ../../library/trace.rst:183 msgid "" "A container for coverage results, created by :meth:`Trace.results`. Should " "not be created directly by the user." msgstr "" -#: ../../library/trace.rst:188 msgid "Merge in data from another :class:`CoverageResults` object." msgstr "" -#: ../../library/trace.rst:193 msgid "" "Write coverage results. Set *show_missing* to show lines that had no hits. " "Set *summary* to include in the output the coverage summary per module. " @@ -241,22 +202,18 @@ msgid "" "directory." msgstr "" -#: ../../library/trace.rst:199 msgid "" "If *ignore_missing_files* is ``True``, coverage counts for files that no " -"longer exist are silently ignored. Otherwise, a missing file will raise " -"a :exc:`FileNotFoundError`." +"longer exist are silently ignored. Otherwise, a missing file will raise a :" +"exc:`FileNotFoundError`." msgstr "" -#: ../../library/trace.rst:203 msgid "Added *ignore_missing_files* parameter." msgstr "" -#: ../../library/trace.rst:206 msgid "A simple example demonstrating the use of the programmatic interface::" msgstr "" -#: ../../library/trace.rst:208 msgid "" "import sys\n" "import trace\n" diff --git a/library/traceback.po b/library/traceback.po index f569f32..4956c70 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/traceback.rst:2 msgid ":mod:`!traceback` --- Print or retrieve a stack traceback" msgstr "" -#: ../../library/traceback.rst:7 msgid "**Source code:** :source:`Lib/traceback.py`" msgstr "" -#: ../../library/traceback.rst:11 msgid "" "This module provides a standard interface to extract, format and print stack " "traces of Python programs. It is more flexible than the interpreter's " @@ -38,62 +35,51 @@ msgid "" "management." msgstr "" -#: ../../library/traceback.rst:23 msgid "" "The module uses :ref:`traceback objects ` --- these are " -"objects of type :class:`types.TracebackType`, which are assigned to " -"the :attr:`~BaseException.__traceback__` field of :class:`BaseException` " +"objects of type :class:`types.TracebackType`, which are assigned to the :" +"attr:`~BaseException.__traceback__` field of :class:`BaseException` " "instances." msgstr "" -#: ../../library/traceback.rst:30 msgid "Module :mod:`faulthandler`" msgstr "" -#: ../../library/traceback.rst:31 msgid "" "Used to dump Python tracebacks explicitly, on a fault, after a timeout, or " "on a user signal." msgstr "" -#: ../../library/traceback.rst:33 msgid "Module :mod:`pdb`" msgstr "" -#: ../../library/traceback.rst:34 msgid "Interactive source code debugger for Python programs." msgstr "" -#: ../../library/traceback.rst:36 msgid "The module's API can be divided into two parts:" msgstr "" -#: ../../library/traceback.rst:38 msgid "" "Module-level functions offering basic functionality, which are useful for " "interactive inspection of exceptions and tracebacks." msgstr "" -#: ../../library/traceback.rst:41 msgid "" -":class:`TracebackException` class and its helper " -"classes :class:`StackSummary` and :class:`FrameSummary`. These offer both " -"more flexibility in the output generated and the ability to store the " -"information necessary for later formatting without holding references to " -"actual exception and traceback objects." +":class:`TracebackException` class and its helper classes :class:" +"`StackSummary` and :class:`FrameSummary`. These offer both more flexibility " +"in the output generated and the ability to store the information necessary " +"for later formatting without holding references to actual exception and " +"traceback objects." msgstr "" -#: ../../library/traceback.rst:47 msgid "" "Output is colorized by default and can be :ref:`controlled using environment " "variables `." msgstr "" -#: ../../library/traceback.rst:53 msgid "Module-Level Functions" msgstr "" -#: ../../library/traceback.rst:57 msgid "" "Print up to *limit* stack trace entries from :ref:`traceback object " "` *tb* (starting from the caller's frame) if *limit* is " @@ -104,81 +90,68 @@ msgid "" "output." msgstr "" -#: ../../library/traceback.rst:68 msgid "" -"The meaning of the *limit* parameter is different than the meaning " -"of :const:`sys.tracebacklimit`. A negative *limit* value corresponds to a " -"positive value of :const:`!sys.tracebacklimit`, whereas the behaviour of a " -"positive *limit* value cannot be achieved with :const:`!sys.tracebacklimit`." +"The meaning of the *limit* parameter is different than the meaning of :const:" +"`sys.tracebacklimit`. A negative *limit* value corresponds to a positive " +"value of :const:`!sys.tracebacklimit`, whereas the behaviour of a positive " +"*limit* value cannot be achieved with :const:`!sys.tracebacklimit`." msgstr "" -#: ../../library/traceback.rst:74 ../../library/traceback.rst:139 msgid "Added negative *limit* support." msgstr "" -#: ../../library/traceback.rst:81 msgid "" "Print exception information and stack trace entries from :ref:`traceback " -"object ` *tb* to *file*. This differs " -"from :func:`print_tb` in the following ways:" +"object ` *tb* to *file*. This differs from :func:" +"`print_tb` in the following ways:" msgstr "" -#: ../../library/traceback.rst:86 msgid "" "if *tb* is not ``None``, it prints a header ``Traceback (most recent call " "last):``" msgstr "" -#: ../../library/traceback.rst:89 msgid "it prints the exception type and *value* after the stack trace" msgstr "" -#: ../../library/traceback.rst:93 msgid "" "if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate " "format, it prints the line where the syntax error occurred with a caret " "indicating the approximate position of the error." msgstr "" -#: ../../library/traceback.rst:97 msgid "" "Since Python 3.10, instead of passing *value* and *tb*, an exception object " "can be passed as the first argument. If *value* and *tb* are provided, the " "first argument is ignored in order to provide backwards compatibility." msgstr "" -#: ../../library/traceback.rst:101 msgid "" "The optional *limit* argument has the same meaning as for :func:`print_tb`. " -"If *chain* is true (the default), then chained exceptions " -"(the :attr:`~BaseException.__cause__` or :attr:`~BaseException.__context__` " -"attributes of the exception) will be printed as well, like the interpreter " -"itself does when printing an unhandled exception." +"If *chain* is true (the default), then chained exceptions (the :attr:" +"`~BaseException.__cause__` or :attr:`~BaseException.__context__` attributes " +"of the exception) will be printed as well, like the interpreter itself does " +"when printing an unhandled exception." msgstr "" -#: ../../library/traceback.rst:108 ../../library/traceback.rst:219 msgid "The *etype* argument is ignored and inferred from the type of *value*." msgstr "" -#: ../../library/traceback.rst:111 ../../library/traceback.rst:199 msgid "" "The *etype* parameter has been renamed to *exc* and is now positional-only." msgstr "" -#: ../../library/traceback.rst:118 msgid "" "This is a shorthand for ``print_exception(sys.exception(), limit=limit, " "file=file, chain=chain)``." msgstr "" -#: ../../library/traceback.rst:124 msgid "" "This is a shorthand for ``print_exception(sys.last_exc, limit=limit, " "file=file, chain=chain)``. In general it will work only after an exception " "has reached an interactive prompt (see :data:`sys.last_exc`)." msgstr "" -#: ../../library/traceback.rst:131 msgid "" "Print up to *limit* stack trace entries (starting from the invocation point) " "if *limit* is positive. Otherwise, print the last ``abs(limit)`` entries. " @@ -188,45 +161,40 @@ msgid "" "for :func:`print_tb`." msgstr "" -#: ../../library/traceback.rst:145 msgid "" "Return a :class:`StackSummary` object representing a list of \"pre-" "processed\" stack trace entries extracted from the :ref:`traceback object " "` *tb*. It is useful for alternate formatting of stack " -"traces. The optional *limit* argument has the same meaning as " -"for :func:`print_tb`. A \"pre-processed\" stack trace entry is " -"a :class:`FrameSummary` object containing " -"attributes :attr:`~FrameSummary.filename`, :attr:`~FrameSummary.lineno`, :attr:`~FrameSummary.name`, " -"and :attr:`~FrameSummary.line` representing the information that is usually " -"printed for a stack trace." +"traces. The optional *limit* argument has the same meaning as for :func:" +"`print_tb`. A \"pre-processed\" stack trace entry is a :class:" +"`FrameSummary` object containing attributes :attr:`~FrameSummary.filename`, :" +"attr:`~FrameSummary.lineno`, :attr:`~FrameSummary.name`, and :attr:" +"`~FrameSummary.line` representing the information that is usually printed " +"for a stack trace." msgstr "" -#: ../../library/traceback.rst:158 msgid "" "Extract the raw traceback from the current :ref:`stack frame `. The return value has the same format as for :func:`extract_tb`. " -"The optional *f* and *limit* arguments have the same meaning as " -"for :func:`print_stack`." +"The optional *f* and *limit* arguments have the same meaning as for :func:" +"`print_stack`." msgstr "" -#: ../../library/traceback.rst:166 msgid "" -"Print the list of tuples as returned by :func:`extract_tb` " -"or :func:`extract_stack` as a formatted stack trace to the given file. If " -"*file* is ``None``, the output is written to :data:`sys.stderr`." +"Print the list of tuples as returned by :func:`extract_tb` or :func:" +"`extract_stack` as a formatted stack trace to the given file. If *file* is " +"``None``, the output is written to :data:`sys.stderr`." msgstr "" -#: ../../library/traceback.rst:173 msgid "" -"Given a list of tuples or :class:`FrameSummary` objects as returned " -"by :func:`extract_tb` or :func:`extract_stack`, return a list of strings " -"ready for printing. Each string in the resulting list corresponds to the " -"item with the same index in the argument list. Each string ends in a " -"newline; the strings may contain internal newlines as well, for those items " -"whose source text line is not ``None``." +"Given a list of tuples or :class:`FrameSummary` objects as returned by :func:" +"`extract_tb` or :func:`extract_stack`, return a list of strings ready for " +"printing. Each string in the resulting list corresponds to the item with " +"the same index in the argument list. Each string ends in a newline; the " +"strings may contain internal newlines as well, for those items whose source " +"text line is not ``None``." msgstr "" -#: ../../library/traceback.rst:183 msgid "" "Format the exception part of a traceback using an exception value such as " "given by :data:`sys.last_value`. The return value is a list of strings, " @@ -237,31 +205,26 @@ msgid "" "contains the exception's :attr:`notes `." msgstr "" -#: ../../library/traceback.rst:191 msgid "" "Since Python 3.10, instead of passing *value*, an exception object can be " "passed as the first argument. If *value* is provided, the first argument is " "ignored in order to provide backwards compatibility." msgstr "" -#: ../../library/traceback.rst:195 ../../library/traceback.rst:431 msgid "" -"When *show_group* is ``True``, and the exception is an instance " -"of :exc:`BaseExceptionGroup`, the nested exceptions are included as well, " +"When *show_group* is ``True``, and the exception is an instance of :exc:" +"`BaseExceptionGroup`, the nested exceptions are included as well, " "recursively, with indentation relative to their nesting depth." msgstr "" -#: ../../library/traceback.rst:203 msgid "" "The returned list now includes any :attr:`notes ` " "attached to the exception." msgstr "" -#: ../../library/traceback.rst:207 msgid "*show_group* parameter was added." msgstr "" -#: ../../library/traceback.rst:213 msgid "" "Format a stack trace and the exception information. The arguments have the " "same meaning as the corresponding arguments to :func:`print_exception`. The " @@ -270,76 +233,64 @@ msgid "" "printed, exactly the same text is printed as does :func:`print_exception`." msgstr "" -#: ../../library/traceback.rst:222 msgid "" -"This function's behavior and signature were modified to " -"match :func:`print_exception`." +"This function's behavior and signature were modified to match :func:" +"`print_exception`." msgstr "" -#: ../../library/traceback.rst:229 msgid "" "This is like ``print_exc(limit)`` but returns a string instead of printing " "to a file." msgstr "" -#: ../../library/traceback.rst:235 msgid "A shorthand for ``format_list(extract_tb(tb, limit))``." msgstr "" -#: ../../library/traceback.rst:240 msgid "A shorthand for ``format_list(extract_stack(f, limit))``." msgstr "" -#: ../../library/traceback.rst:244 msgid "" "Clears the local variables of all the stack frames in a :ref:`traceback " "` *tb* by calling the :meth:`~frame.clear` method of " "each :ref:`frame object `." msgstr "" -#: ../../library/traceback.rst:253 msgid "" "Walk a stack following :attr:`f.f_back ` from the given frame, " "yielding the frame and line number for each frame. If *f* is ``None``, the " "current stack is used. This helper is used with :meth:`StackSummary.extract`." msgstr "" -#: ../../library/traceback.rst:260 msgid "" "This function previously returned a generator that would walk the stack when " "first iterated over. The generator returned now is the state of the stack " "when ``walk_stack`` is called." msgstr "" -#: ../../library/traceback.rst:267 msgid "" "Walk a traceback following :attr:`~traceback.tb_next` yielding the frame and " -"line number for each frame. This helper is used " -"with :meth:`StackSummary.extract`." +"line number for each frame. This helper is used with :meth:`StackSummary." +"extract`." msgstr "" -#: ../../library/traceback.rst:275 msgid ":class:`!TracebackException` Objects" msgstr "" -#: ../../library/traceback.rst:279 msgid "" ":class:`!TracebackException` objects are created from actual exceptions to " "capture data for later printing. They offer a more lightweight method of " -"storing this information by avoiding holding references " -"to :ref:`traceback` and :ref:`frame` " -"objects. In addition, they expose more options to configure the output " -"compared to the module-level functions described above." +"storing this information by avoiding holding references to :ref:" +"`traceback` and :ref:`frame` objects. In " +"addition, they expose more options to configure the output compared to the " +"module-level functions described above." msgstr "" -#: ../../library/traceback.rst:288 msgid "" "Capture an exception for later rendering. The meaning of *limit*, " "*lookup_lines* and *capture_locals* are as for the :class:`StackSummary` " "class." msgstr "" -#: ../../library/traceback.rst:292 msgid "" "If *compact* is true, only data that is required by :class:`!" "TracebackException`'s :meth:`format` method is saved in the class " @@ -347,12 +298,10 @@ msgid "" "if :attr:`__cause__` is ``None`` and :attr:`__suppress_context__` is false." msgstr "" -#: ../../library/traceback.rst:298 ../../library/traceback.rst:399 msgid "" "Note that when locals are captured, they are also shown in the traceback." msgstr "" -#: ../../library/traceback.rst:300 msgid "" "*max_group_width* and *max_group_depth* control the formatting of exception " "groups (see :exc:`BaseExceptionGroup`). The depth refers to the nesting " @@ -361,128 +310,103 @@ msgid "" "limit is exceeded." msgstr "" -#: ../../library/traceback.rst:306 msgid "Added the *compact* parameter." msgstr "" -#: ../../library/traceback.rst:309 msgid "Added the *max_group_width* and *max_group_depth* parameters." msgstr "" -#: ../../library/traceback.rst:314 msgid "" -"A :class:`!TracebackException` of the " -"original :attr:`~BaseException.__cause__`." +"A :class:`!TracebackException` of the original :attr:`~BaseException." +"__cause__`." msgstr "" -#: ../../library/traceback.rst:319 msgid "" -"A :class:`!TracebackException` of the " -"original :attr:`~BaseException.__context__`." +"A :class:`!TracebackException` of the original :attr:`~BaseException." +"__context__`." msgstr "" -#: ../../library/traceback.rst:324 msgid "" -"If ``self`` represents an :exc:`ExceptionGroup`, this field holds a list " -"of :class:`!TracebackException` instances representing the nested " -"exceptions. Otherwise it is ``None``." +"If ``self`` represents an :exc:`ExceptionGroup`, this field holds a list of :" +"class:`!TracebackException` instances representing the nested exceptions. " +"Otherwise it is ``None``." msgstr "" -#: ../../library/traceback.rst:332 msgid "" "The :attr:`~BaseException.__suppress_context__` value from the original " "exception." msgstr "" -#: ../../library/traceback.rst:337 msgid "" "The :attr:`~BaseException.__notes__` value from the original exception, or " "``None`` if the exception does not have any notes. If it is not ``None`` is " "it formatted in the traceback after the exception string." msgstr "" -#: ../../library/traceback.rst:346 msgid "A :class:`StackSummary` representing the traceback." msgstr "" -#: ../../library/traceback.rst:350 msgid "The class of the original traceback." msgstr "" -#: ../../library/traceback.rst:356 msgid "String display of the class of the original exception." msgstr "" -#: ../../library/traceback.rst:362 msgid "For syntax errors - the file name where the error occurred." msgstr "" -#: ../../library/traceback.rst:366 msgid "For syntax errors - the line number where the error occurred." msgstr "" -#: ../../library/traceback.rst:370 msgid "" "For syntax errors - the end line number where the error occurred. Can be " "``None`` if not present." msgstr "" -#: ../../library/traceback.rst:377 msgid "For syntax errors - the text where the error occurred." msgstr "" -#: ../../library/traceback.rst:381 msgid "For syntax errors - the offset into the text where the error occurred." msgstr "" -#: ../../library/traceback.rst:385 msgid "" "For syntax errors - the end offset into the text where the error occurred. " "Can be ``None`` if not present." msgstr "" -#: ../../library/traceback.rst:392 msgid "For syntax errors - the compiler error message." msgstr "" -#: ../../library/traceback.rst:396 msgid "" "Capture an exception for later rendering. *limit*, *lookup_lines* and " "*capture_locals* are as for the :class:`StackSummary` class." msgstr "" -#: ../../library/traceback.rst:403 msgid "" "Print to *file* (default ``sys.stderr``) the exception information returned " "by :meth:`format`." msgstr "" -#: ../../library/traceback.rst:410 msgid "Format the exception." msgstr "" -#: ../../library/traceback.rst:412 msgid "" "If *chain* is not ``True``, :attr:`__cause__` and :attr:`__context__` will " "not be formatted." msgstr "" -#: ../../library/traceback.rst:415 msgid "" "The return value is a generator of strings, each ending in a newline and " "some containing internal newlines. :func:`~traceback.print_exception` is a " "wrapper around this method which just prints the lines to a file." msgstr "" -#: ../../library/traceback.rst:421 msgid "Format the exception part of the traceback." msgstr "" -#: ../../library/traceback.rst:423 msgid "The return value is a generator of strings, each ending in a newline." msgstr "" -#: ../../library/traceback.rst:425 msgid "" "When *show_group* is ``False``, the generator emits the exception's message " "followed by its notes (if it has any). The exception message is normally a " @@ -491,56 +415,46 @@ msgid "" "the syntax error occurred." msgstr "" -#: ../../library/traceback.rst:435 msgid "" "The exception's :attr:`notes ` are now included in " "the output." msgstr "" -#: ../../library/traceback.rst:439 msgid "Added the *show_group* parameter." msgstr "" -#: ../../library/traceback.rst:444 msgid ":class:`!StackSummary` Objects" msgstr "" -#: ../../library/traceback.rst:448 msgid "" ":class:`!StackSummary` objects represent a call stack ready for formatting." msgstr "" -#: ../../library/traceback.rst:454 msgid "" "Construct a :class:`!StackSummary` object from a frame generator (such as is " "returned by :func:`~traceback.walk_stack` or :func:`~traceback.walk_tb`)." msgstr "" -#: ../../library/traceback.rst:458 msgid "" "If *limit* is supplied, only this many frames are taken from *frame_gen*. If " "*lookup_lines* is ``False``, the returned :class:`FrameSummary` objects will " "not have read their lines in yet, making the cost of creating the :class:`!" "StackSummary` cheaper (which may be valuable if it may not actually get " -"formatted). If *capture_locals* is ``True`` the local variables in " -"each :class:`!FrameSummary` are captured as object representations." +"formatted). If *capture_locals* is ``True`` the local variables in each :" +"class:`!FrameSummary` are captured as object representations." msgstr "" -#: ../../library/traceback.rst:466 msgid "" "Exceptions raised from :func:`repr` on a local variable (when " "*capture_locals* is ``True``) are no longer propagated to the caller." msgstr "" -#: ../../library/traceback.rst:472 msgid "" -"Construct a :class:`!StackSummary` object from a supplied list " -"of :class:`FrameSummary` objects or old-style list of tuples. Each tuple " -"should be a 4-tuple with *filename*, *lineno*, *name*, *line* as the " -"elements." +"Construct a :class:`!StackSummary` object from a supplied list of :class:" +"`FrameSummary` objects or old-style list of tuples. Each tuple should be a " +"4-tuple with *filename*, *lineno*, *name*, *line* as the elements." msgstr "" -#: ../../library/traceback.rst:479 msgid "" "Returns a list of strings ready for printing. Each string in the resulting " "list corresponds to a single :ref:`frame ` from the stack. " @@ -548,18 +462,15 @@ msgid "" "well, for those items with source text lines." msgstr "" -#: ../../library/traceback.rst:485 msgid "" "For long sequences of the same frame and line, the first few repetitions are " "shown, followed by a summary line stating the exact number of further " "repetitions." msgstr "" -#: ../../library/traceback.rst:489 msgid "Long sequences of repeated frames are now abbreviated." msgstr "" -#: ../../library/traceback.rst:494 msgid "" "Returns a string for printing one of the :ref:`frames ` " "involved in the stack. This method is called for each :class:`FrameSummary` " @@ -567,92 +478,77 @@ msgid "" "the frame is omitted from the output." msgstr "" -#: ../../library/traceback.rst:504 msgid ":class:`!FrameSummary` Objects" msgstr "" -#: ../../library/traceback.rst:508 msgid "" "A :class:`!FrameSummary` object represents a single :ref:`frame ` in a :ref:`traceback `." msgstr "" -#: ../../library/traceback.rst:515 msgid "" "Represents a single :ref:`frame ` in the :ref:`traceback " "` or stack that is being formatted or printed. It may " "optionally have a stringified version of the frame's locals included in it. " -"If *lookup_line* is ``False``, the source code is not looked up until " -"the :class:`!FrameSummary` has the :attr:`~FrameSummary.line` attribute " -"accessed (which also happens when casting it to " -"a :class:`tuple`). :attr:`~FrameSummary.line` may be directly provided, and " -"will prevent line lookups happening at all. *locals* is an optional local " -"variable mapping, and if supplied the variable representations are stored in " -"the summary for later display." +"If *lookup_line* is ``False``, the source code is not looked up until the :" +"class:`!FrameSummary` has the :attr:`~FrameSummary.line` attribute accessed " +"(which also happens when casting it to a :class:`tuple`). :attr:" +"`~FrameSummary.line` may be directly provided, and will prevent line lookups " +"happening at all. *locals* is an optional local variable mapping, and if " +"supplied the variable representations are stored in the summary for later " +"display." msgstr "" -#: ../../library/traceback.rst:526 msgid ":class:`!FrameSummary` instances have the following attributes:" msgstr "" -#: ../../library/traceback.rst:530 msgid "" -"The filename of the source code for this frame. Equivalent to " -"accessing :attr:`f.f_code.co_filename ` on " -"a :ref:`frame object ` *f*." +"The filename of the source code for this frame. Equivalent to accessing :" +"attr:`f.f_code.co_filename ` on a :ref:`frame object " +"` *f*." msgstr "" -#: ../../library/traceback.rst:536 msgid "The line number of the source code for this frame." msgstr "" -#: ../../library/traceback.rst:540 msgid "" -"Equivalent to accessing :attr:`f.f_code.co_name ` on " -"a :ref:`frame object ` *f*." +"Equivalent to accessing :attr:`f.f_code.co_name ` on a :" +"ref:`frame object ` *f*." msgstr "" -#: ../../library/traceback.rst:545 msgid "" "A string representing the source code for this frame, with leading and " "trailing whitespace stripped. If the source is not available, it is ``None``." msgstr "" -#: ../../library/traceback.rst:551 msgid "" "The last line number of the source code for this frame. By default, it is " "set to ``lineno`` and indexation starts from 1." msgstr "" -#: ../../library/traceback.rst:554 msgid "The default value changed from ``None`` to ``lineno``." msgstr "" -#: ../../library/traceback.rst:559 msgid "" "The column number of the source code for this frame. By default, it is " "``None`` and indexation starts from 0." msgstr "" -#: ../../library/traceback.rst:564 msgid "" "The last column number of the source code for this frame. By default, it is " "``None`` and indexation starts from 0." msgstr "" -#: ../../library/traceback.rst:571 msgid "Examples of Using the Module-Level Functions" msgstr "" -#: ../../library/traceback.rst:573 msgid "" "This simple example implements a basic read-eval-print loop, similar to (but " "less useful than) the standard Python interactive interpreter loop. For a " -"more complete implementation of the interpreter loop, refer to " -"the :mod:`code` module. ::" +"more complete implementation of the interpreter loop, refer to the :mod:" +"`code` module. ::" msgstr "" -#: ../../library/traceback.rst:578 msgid "" "import sys, traceback\n" "\n" @@ -671,13 +567,11 @@ msgid "" " run_user_code(envdir)" msgstr "" -#: ../../library/traceback.rst:595 msgid "" "The following example demonstrates the different ways to print and format " "the exception and traceback:" msgstr "" -#: ../../library/traceback.rst:598 msgid "" "import sys, traceback\n" "\n" @@ -709,11 +603,9 @@ msgid "" " print(\"*** tb_lineno:\", exc.__traceback__.tb_lineno)" msgstr "" -#: ../../library/traceback.rst:629 msgid "The output for the example would look similar to this:" msgstr "" -#: ../../library/traceback.rst:631 msgid "" "*** print_tb:\n" " File \"\", line 10, in \n" @@ -742,8 +634,8 @@ msgid "" "IndexError: tuple index out of range\n" "*** format_exception:\n" "['Traceback (most recent call last):\\n',\n" -" ' File \"\", line 10, in \\n lumberjack()" -"\\n ~~~~~~~~~~^^\\n',\n" +" ' File \"\", line 10, in \\n " +"lumberjack()\\n ~~~~~~~~~~^^\\n',\n" " ' File \"\", line 4, in lumberjack\\n " "bright_side_of_life()\\n ~~~~~~~~~~~~~~~~~~~^^\\n',\n" " ' File \"\", line 7, in bright_side_of_life\\n " @@ -754,8 +646,8 @@ msgid "" " , line 4 in lumberjack>,\n" " , line 7 in bright_side_of_life>]\n" "*** format_tb:\n" -"[' File \"\", line 10, in \\n lumberjack()" -"\\n ~~~~~~~~~~^^\\n',\n" +"[' File \"\", line 10, in \\n " +"lumberjack()\\n ~~~~~~~~~~^^\\n',\n" " ' File \"\", line 4, in lumberjack\\n " "bright_side_of_life()\\n ~~~~~~~~~~~~~~~~~~~^^\\n',\n" " ' File \"\", line 7, in bright_side_of_life\\n " @@ -763,13 +655,11 @@ msgid "" "*** tb_lineno: 10" msgstr "" -#: ../../library/traceback.rst:676 msgid "" "The following example shows the different ways to print and format the " "stack::" msgstr "" -#: ../../library/traceback.rst:678 msgid "" ">>> import traceback\n" ">>> def another_function():\n" @@ -791,17 +681,15 @@ msgid "" " ('', 3, 'another_function', 'lumberstack()'),\n" " ('', 7, 'lumberstack', 'print(repr(traceback.extract_stack()))')]\n" "[' File \"\", line 10, in \\n another_function()\\n',\n" -" ' File \"\", line 3, in another_function\\n lumberstack()" -"\\n',\n" -" ' File \"\", line 8, in lumberstack\\n " -"print(repr(traceback.format_stack()))\\n']" +" ' File \"\", line 3, in another_function\\n " +"lumberstack()\\n',\n" +" ' File \"\", line 8, in lumberstack\\n print(repr(traceback." +"format_stack()))\\n']" msgstr "" -#: ../../library/traceback.rst:702 msgid "This last example demonstrates the final few formatting functions:" msgstr "" -#: ../../library/traceback.rst:704 msgid "" ">>> import traceback\n" ">>> traceback.format_list([('spam.py', 3, '', 'spam.eggs()'),\n" @@ -813,15 +701,12 @@ msgid "" "['IndexError: tuple index out of range\\n']" msgstr "" -#: ../../library/traceback.rst:718 msgid "Examples of Using :class:`TracebackException`" msgstr "" -#: ../../library/traceback.rst:720 msgid "With the helper class, we have more options::" msgstr "" -#: ../../library/traceback.rst:722 msgid "" ">>> import sys\n" ">>> from traceback import TracebackException\n" @@ -858,8 +743,8 @@ msgid "" "IndexError: tuple index out of range\n" "\n" ">>> # capture_locals adds local variables in frames\n" -">>> TracebackException.from_exception(exc, limit=-2, " -"capture_locals=True).print()\n" +">>> TracebackException.from_exception(exc, limit=-2, capture_locals=True)." +"print()\n" "Traceback (most recent call last):\n" " File \"\", line 6, in lumberjack\n" " bright_side_of_life()\n" @@ -901,18 +786,14 @@ msgid "" "ZeroDivisionError: division by zero" msgstr "" -#: ../../library/traceback.rst:21 msgid "object" msgstr "" -#: ../../library/traceback.rst:21 msgid "traceback" msgstr "" -#: ../../library/traceback.rst:91 msgid "^ (caret)" msgstr "" -#: ../../library/traceback.rst:91 msgid "marker" msgstr "" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index f01c847..3bb9451 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tracemalloc.rst:2 msgid ":mod:`!tracemalloc` --- Trace memory allocations" msgstr "" -#: ../../library/tracemalloc.rst:9 msgid "**Source code:** :source:`Lib/tracemalloc.py`" msgstr "" -#: ../../library/tracemalloc.rst:13 msgid "" "The tracemalloc module is a debug tool to trace memory blocks allocated by " "Python. It provides the following information:" msgstr "" -#: ../../library/tracemalloc.rst:16 msgid "Traceback where an object was allocated" msgstr "" -#: ../../library/tracemalloc.rst:17 msgid "" "Statistics on allocated memory blocks per filename and per line number: " "total size, number and average size of allocated memory blocks" msgstr "" -#: ../../library/tracemalloc.rst:19 msgid "Compute the differences between two snapshots to detect memory leaks" msgstr "" -#: ../../library/tracemalloc.rst:21 msgid "" "To trace most memory blocks allocated by Python, the module should be " "started as early as possible by setting the :envvar:`PYTHONTRACEMALLOC` " @@ -55,27 +48,22 @@ msgid "" "runtime to start tracing Python memory allocations." msgstr "" -#: ../../library/tracemalloc.rst:27 msgid "" "By default, a trace of an allocated memory block only stores the most recent " -"frame (1 frame). To store 25 frames at startup: set " -"the :envvar:`PYTHONTRACEMALLOC` environment variable to ``25``, or use " -"the :option:`-X` ``tracemalloc=25`` command line option." +"frame (1 frame). To store 25 frames at startup: set the :envvar:" +"`PYTHONTRACEMALLOC` environment variable to ``25``, or use the :option:`-X` " +"``tracemalloc=25`` command line option." msgstr "" -#: ../../library/tracemalloc.rst:34 msgid "Examples" msgstr "" -#: ../../library/tracemalloc.rst:37 msgid "Display the top 10" msgstr "" -#: ../../library/tracemalloc.rst:39 msgid "Display the 10 files allocating the most memory::" msgstr "" -#: ../../library/tracemalloc.rst:41 msgid "" "import tracemalloc\n" "\n" @@ -91,11 +79,9 @@ msgid "" " print(stat)" msgstr "" -#: ../../library/tracemalloc.rst:55 ../../library/tracemalloc.rst:225 msgid "Example of output of the Python test suite::" msgstr "" -#: ../../library/tracemalloc.rst:57 msgid "" "[ Top 10 ]\n" ":716: size=4855 KiB, count=39328, average=126 " @@ -114,26 +100,21 @@ msgid "" "/usr/lib/python3.4/sysconfig.py:411: size=48.0 KiB, count=1, average=48.0 KiB" msgstr "" -#: ../../library/tracemalloc.rst:69 msgid "" "We can see that Python loaded ``4855 KiB`` data (bytecode and constants) " "from modules and that the :mod:`collections` module allocated ``244 KiB`` to " "build :class:`~collections.namedtuple` types." msgstr "" -#: ../../library/tracemalloc.rst:73 ../../library/tracemalloc.rst:250 msgid "See :meth:`Snapshot.statistics` for more options." msgstr "" -#: ../../library/tracemalloc.rst:77 msgid "Compute differences" msgstr "" -#: ../../library/tracemalloc.rst:79 msgid "Take two snapshots and display the differences::" msgstr "" -#: ../../library/tracemalloc.rst:81 msgid "" "import tracemalloc\n" "tracemalloc.start()\n" @@ -150,12 +131,10 @@ msgid "" " print(stat)" msgstr "" -#: ../../library/tracemalloc.rst:95 msgid "" "Example of output before/after running some tests of the Python test suite::" msgstr "" -#: ../../library/tracemalloc.rst:97 msgid "" "[ Top 10 differences ]\n" ":716: size=8173 KiB (+4428 KiB), count=71332 " @@ -180,31 +159,26 @@ msgid "" "(+126), average=546 B" msgstr "" -#: ../../library/tracemalloc.rst:109 msgid "" "We can see that Python has loaded ``8173 KiB`` of module data (bytecode and " "constants), and that this is ``4428 KiB`` more than had been loaded before " -"the tests, when the previous snapshot was taken. Similarly, " -"the :mod:`linecache` module has cached ``940 KiB`` of Python source code to " -"format tracebacks, all of it since the previous snapshot." +"the tests, when the previous snapshot was taken. Similarly, the :mod:" +"`linecache` module has cached ``940 KiB`` of Python source code to format " +"tracebacks, all of it since the previous snapshot." msgstr "" -#: ../../library/tracemalloc.rst:115 msgid "" "If the system has little free memory, snapshots can be written on disk using " "the :meth:`Snapshot.dump` method to analyze the snapshot offline. Then use " "the :meth:`Snapshot.load` method reload the snapshot." msgstr "" -#: ../../library/tracemalloc.rst:121 msgid "Get the traceback of a memory block" msgstr "" -#: ../../library/tracemalloc.rst:123 msgid "Code to display the traceback of the biggest memory block::" msgstr "" -#: ../../library/tracemalloc.rst:125 msgid "" "import tracemalloc\n" "\n" @@ -223,12 +197,10 @@ msgid "" " print(line)" msgstr "" -#: ../../library/tracemalloc.rst:141 msgid "" "Example of output of the Python test suite (traceback limited to 25 frames)::" msgstr "" -#: ../../library/tracemalloc.rst:143 msgid "" "903 memory blocks: 870.1 KiB\n" " File \"\", line 716\n" @@ -266,7 +238,6 @@ msgid "" " \"__main__\", fname, loader, pkg_name)" msgstr "" -#: ../../library/tracemalloc.rst:178 msgid "" "We can see that the most memory was allocated in the :mod:`importlib` module " "to load data (bytecode and constants) from modules: ``870.1 KiB``. The " @@ -275,17 +246,14 @@ msgid "" "if a new module is loaded." msgstr "" -#: ../../library/tracemalloc.rst:186 msgid "Pretty top" msgstr "" -#: ../../library/tracemalloc.rst:188 msgid "" "Code to display the 10 lines allocating the most memory with a pretty " "output, ignoring ```` and ```` files::" msgstr "" -#: ../../library/tracemalloc.rst:191 msgid "" "import linecache\n" "import os\n" @@ -322,7 +290,6 @@ msgid "" "display_top(snapshot)" msgstr "" -#: ../../library/tracemalloc.rst:227 msgid "" "Top 10 lines\n" "#1: Lib/base64.py:414: 419.8 KiB\n" @@ -348,11 +315,9 @@ msgid "" "Total allocated size: 5303.1 KiB" msgstr "" -#: ../../library/tracemalloc.rst:253 msgid "Record the current and peak size of all traced memory blocks" msgstr "" -#: ../../library/tracemalloc.rst:255 msgid "" "The following code computes two sums like ``0 + 1 + 2 + ...`` inefficiently, " "by creating a list of those numbers. This list consumes a lot of memory " @@ -361,7 +326,6 @@ msgid "" "memory usage during the computations::" msgstr "" -#: ../../library/tracemalloc.rst:261 msgid "" "import tracemalloc\n" "\n" @@ -383,17 +347,14 @@ msgid "" "print(f\"{second_size=}, {second_peak=}\")" msgstr "" -#: ../../library/tracemalloc.rst:280 ../../library/tracemalloc.rst:759 msgid "Output::" msgstr "" -#: ../../library/tracemalloc.rst:282 msgid "" "first_size=664, first_peak=3592984\n" "second_size=804, second_peak=29704" msgstr "" -#: ../../library/tracemalloc.rst:285 msgid "" "Using :func:`reset_peak` ensured we could accurately record the peak during " "the computation of ``small_sum``, even though it is much smaller than the " @@ -405,95 +366,76 @@ msgid "" "writing ``sum(range(...))``)." msgstr "" -#: ../../library/tracemalloc.rst:295 msgid "API" msgstr "" -#: ../../library/tracemalloc.rst:298 msgid "Functions" msgstr "" -#: ../../library/tracemalloc.rst:302 msgid "Clear traces of memory blocks allocated by Python." msgstr "" -#: ../../library/tracemalloc.rst:304 msgid "See also :func:`stop`." msgstr "" -#: ../../library/tracemalloc.rst:309 msgid "" -"Get the traceback where the Python object *obj* was allocated. Return " -"a :class:`Traceback` instance, or ``None`` if the :mod:`tracemalloc` module " -"is not tracing memory allocations or did not trace the allocation of the " -"object." +"Get the traceback where the Python object *obj* was allocated. Return a :" +"class:`Traceback` instance, or ``None`` if the :mod:`tracemalloc` module is " +"not tracing memory allocations or did not trace the allocation of the object." msgstr "" -#: ../../library/tracemalloc.rst:314 msgid "See also :func:`gc.get_referrers` and :func:`sys.getsizeof` functions." msgstr "" -#: ../../library/tracemalloc.rst:319 msgid "Get the maximum number of frames stored in the traceback of a trace." msgstr "" -#: ../../library/tracemalloc.rst:321 msgid "" "The :mod:`tracemalloc` module must be tracing memory allocations to get the " "limit, otherwise an exception is raised." msgstr "" -#: ../../library/tracemalloc.rst:324 msgid "The limit is set by the :func:`start` function." msgstr "" -#: ../../library/tracemalloc.rst:329 msgid "" -"Get the current size and peak size of memory blocks traced by " -"the :mod:`tracemalloc` module as a tuple: ``(current: int, peak: int)``." +"Get the current size and peak size of memory blocks traced by the :mod:" +"`tracemalloc` module as a tuple: ``(current: int, peak: int)``." msgstr "" -#: ../../library/tracemalloc.rst:335 msgid "" "Set the peak size of memory blocks traced by the :mod:`tracemalloc` module " "to the current size." msgstr "" -#: ../../library/tracemalloc.rst:338 msgid "" "Do nothing if the :mod:`tracemalloc` module is not tracing memory " "allocations." msgstr "" -#: ../../library/tracemalloc.rst:341 msgid "" "This function only modifies the recorded peak size, and does not modify or " -"clear any traces, unlike :func:`clear_traces`. Snapshots taken " -"with :func:`take_snapshot` before a call to :func:`reset_peak` can be " -"meaningfully compared to snapshots taken after the call." +"clear any traces, unlike :func:`clear_traces`. Snapshots taken with :func:" +"`take_snapshot` before a call to :func:`reset_peak` can be meaningfully " +"compared to snapshots taken after the call." msgstr "" -#: ../../library/tracemalloc.rst:346 msgid "See also :func:`get_traced_memory`." msgstr "" -#: ../../library/tracemalloc.rst:353 msgid "" "Get the memory usage in bytes of the :mod:`tracemalloc` module used to store " "traces of memory blocks. Return an :class:`int`." msgstr "" -#: ../../library/tracemalloc.rst:360 msgid "" "``True`` if the :mod:`tracemalloc` module is tracing Python memory " "allocations, ``False`` otherwise." msgstr "" -#: ../../library/tracemalloc.rst:363 msgid "See also :func:`start` and :func:`stop` functions." msgstr "" -#: ../../library/tracemalloc.rst:368 msgid "" "Start tracing Python memory allocations: install hooks on Python memory " "allocators. Collected tracebacks of traces will be limited to *nframe* " @@ -501,260 +443,211 @@ msgid "" "frame: the limit is ``1``. *nframe* must be greater or equal to ``1``." msgstr "" -#: ../../library/tracemalloc.rst:373 msgid "" "You can still read the original number of total frames that composed the " "traceback by looking at the :attr:`Traceback.total_nframe` attribute." msgstr "" -#: ../../library/tracemalloc.rst:376 msgid "" "Storing more than ``1`` frame is only useful to compute statistics grouped " -"by ``'traceback'`` or to compute cumulative statistics: see " -"the :meth:`Snapshot.compare_to` and :meth:`Snapshot.statistics` methods." +"by ``'traceback'`` or to compute cumulative statistics: see the :meth:" +"`Snapshot.compare_to` and :meth:`Snapshot.statistics` methods." msgstr "" -#: ../../library/tracemalloc.rst:380 msgid "" -"Storing more frames increases the memory and CPU overhead of " -"the :mod:`tracemalloc` module. Use the :func:`get_tracemalloc_memory` " -"function to measure how much memory is used by the :mod:`tracemalloc` module." +"Storing more frames increases the memory and CPU overhead of the :mod:" +"`tracemalloc` module. Use the :func:`get_tracemalloc_memory` function to " +"measure how much memory is used by the :mod:`tracemalloc` module." msgstr "" -#: ../../library/tracemalloc.rst:384 msgid "" "The :envvar:`PYTHONTRACEMALLOC` environment variable " "(``PYTHONTRACEMALLOC=NFRAME``) and the :option:`-X` ``tracemalloc=NFRAME`` " "command line option can be used to start tracing at startup." msgstr "" -#: ../../library/tracemalloc.rst:388 msgid "" "See also :func:`stop`, :func:`is_tracing` and :func:`get_traceback_limit` " "functions." msgstr "" -#: ../../library/tracemalloc.rst:394 msgid "" "Stop tracing Python memory allocations: uninstall hooks on Python memory " "allocators. Also clears all previously collected traces of memory blocks " "allocated by Python." msgstr "" -#: ../../library/tracemalloc.rst:398 msgid "" "Call :func:`take_snapshot` function to take a snapshot of traces before " "clearing them." msgstr "" -#: ../../library/tracemalloc.rst:401 msgid "" "See also :func:`start`, :func:`is_tracing` and :func:`clear_traces` " "functions." msgstr "" -#: ../../library/tracemalloc.rst:407 msgid "" "Take a snapshot of traces of memory blocks allocated by Python. Return a " "new :class:`Snapshot` instance." msgstr "" -#: ../../library/tracemalloc.rst:410 msgid "" -"The snapshot does not include memory blocks allocated before " -"the :mod:`tracemalloc` module started to trace memory allocations." +"The snapshot does not include memory blocks allocated before the :mod:" +"`tracemalloc` module started to trace memory allocations." msgstr "" -#: ../../library/tracemalloc.rst:413 msgid "" "Tracebacks of traces are limited to :func:`get_traceback_limit` frames. Use " "the *nframe* parameter of the :func:`start` function to store more frames." msgstr "" -#: ../../library/tracemalloc.rst:416 msgid "" "The :mod:`tracemalloc` module must be tracing memory allocations to take a " "snapshot, see the :func:`start` function." msgstr "" -#: ../../library/tracemalloc.rst:419 msgid "See also the :func:`get_object_traceback` function." msgstr "" -#: ../../library/tracemalloc.rst:423 msgid "DomainFilter" msgstr "" -#: ../../library/tracemalloc.rst:427 msgid "Filter traces of memory blocks by their address space (domain)." msgstr "" -#: ../../library/tracemalloc.rst:433 msgid "" "If *inclusive* is ``True`` (include), match memory blocks allocated in the " "address space :attr:`domain`." msgstr "" -#: ../../library/tracemalloc.rst:436 msgid "" "If *inclusive* is ``False`` (exclude), match memory blocks not allocated in " "the address space :attr:`domain`." msgstr "" -#: ../../library/tracemalloc.rst:441 ../../library/tracemalloc.rst:693 msgid "Address space of a memory block (``int``). Read-only property." msgstr "" -#: ../../library/tracemalloc.rst:445 msgid "Filter" msgstr "" -#: ../../library/tracemalloc.rst:449 msgid "Filter on traces of memory blocks." msgstr "" -#: ../../library/tracemalloc.rst:451 msgid "" "See the :func:`fnmatch.fnmatch` function for the syntax of " "*filename_pattern*. The ``'.pyc'`` file extension is replaced with ``'.py'``." msgstr "" -#: ../../library/tracemalloc.rst:455 msgid "Examples:" msgstr "" -#: ../../library/tracemalloc.rst:457 msgid "" -"``Filter(True, subprocess.__file__)`` only includes traces of " -"the :mod:`subprocess` module" +"``Filter(True, subprocess.__file__)`` only includes traces of the :mod:" +"`subprocess` module" msgstr "" -#: ../../library/tracemalloc.rst:459 msgid "" -"``Filter(False, tracemalloc.__file__)`` excludes traces of " -"the :mod:`tracemalloc` module" +"``Filter(False, tracemalloc.__file__)`` excludes traces of the :mod:" +"`tracemalloc` module" msgstr "" -#: ../../library/tracemalloc.rst:461 msgid "``Filter(False, \"\")`` excludes empty tracebacks" msgstr "" -#: ../../library/tracemalloc.rst:464 msgid "The ``'.pyo'`` file extension is no longer replaced with ``'.py'``." msgstr "" -#: ../../library/tracemalloc.rst:467 ../../library/tracemalloc.rst:688 msgid "Added the :attr:`domain` attribute." msgstr "" -#: ../../library/tracemalloc.rst:473 msgid "Address space of a memory block (``int`` or ``None``)." msgstr "" -#: ../../library/tracemalloc.rst:475 ../../library/tracemalloc.rst:695 msgid "" "tracemalloc uses the domain ``0`` to trace memory allocations made by " "Python. C extensions can use other domains to trace other resources." msgstr "" -#: ../../library/tracemalloc.rst:480 msgid "" "If *inclusive* is ``True`` (include), only match memory blocks allocated in " -"a file with a name matching :attr:`filename_pattern` at line " -"number :attr:`lineno`." +"a file with a name matching :attr:`filename_pattern` at line number :attr:" +"`lineno`." msgstr "" -#: ../../library/tracemalloc.rst:484 msgid "" "If *inclusive* is ``False`` (exclude), ignore memory blocks allocated in a " -"file with a name matching :attr:`filename_pattern` at line " -"number :attr:`lineno`." +"file with a name matching :attr:`filename_pattern` at line number :attr:" +"`lineno`." msgstr "" -#: ../../library/tracemalloc.rst:490 msgid "" "Line number (``int``) of the filter. If *lineno* is ``None``, the filter " "matches any line number." msgstr "" -#: ../../library/tracemalloc.rst:495 msgid "Filename pattern of the filter (``str``). Read-only property." msgstr "" -#: ../../library/tracemalloc.rst:499 msgid "" "If *all_frames* is ``True``, all frames of the traceback are checked. If " "*all_frames* is ``False``, only the most recent frame is checked." msgstr "" -#: ../../library/tracemalloc.rst:502 msgid "" -"This attribute has no effect if the traceback limit is ``1``. See " -"the :func:`get_traceback_limit` function " -"and :attr:`Snapshot.traceback_limit` attribute." +"This attribute has no effect if the traceback limit is ``1``. See the :func:" +"`get_traceback_limit` function and :attr:`Snapshot.traceback_limit` " +"attribute." msgstr "" -#: ../../library/tracemalloc.rst:508 msgid "Frame" msgstr "" -#: ../../library/tracemalloc.rst:512 msgid "Frame of a traceback." msgstr "" -#: ../../library/tracemalloc.rst:514 msgid "The :class:`Traceback` class is a sequence of :class:`Frame` instances." msgstr "" -#: ../../library/tracemalloc.rst:518 msgid "Filename (``str``)." msgstr "" -#: ../../library/tracemalloc.rst:522 msgid "Line number (``int``)." msgstr "" -#: ../../library/tracemalloc.rst:526 msgid "Snapshot" msgstr "" -#: ../../library/tracemalloc.rst:530 msgid "Snapshot of traces of memory blocks allocated by Python." msgstr "" -#: ../../library/tracemalloc.rst:532 msgid "The :func:`take_snapshot` function creates a snapshot instance." msgstr "" -#: ../../library/tracemalloc.rst:536 msgid "" "Compute the differences with an old snapshot. Get statistics as a sorted " "list of :class:`StatisticDiff` instances grouped by *key_type*." msgstr "" -#: ../../library/tracemalloc.rst:539 msgid "" "See the :meth:`Snapshot.statistics` method for *key_type* and *cumulative* " "parameters." msgstr "" -#: ../../library/tracemalloc.rst:542 msgid "" -"The result is sorted from the biggest to the smallest by: absolute value " -"of :attr:`StatisticDiff.size_diff`, :attr:`StatisticDiff.size`, absolute " -"value of :attr:`StatisticDiff.count_diff`, :attr:`Statistic.count` and then " -"by :attr:`StatisticDiff.traceback`." +"The result is sorted from the biggest to the smallest by: absolute value of :" +"attr:`StatisticDiff.size_diff`, :attr:`StatisticDiff.size`, absolute value " +"of :attr:`StatisticDiff.count_diff`, :attr:`Statistic.count` and then by :" +"attr:`StatisticDiff.traceback`." msgstr "" -#: ../../library/tracemalloc.rst:550 msgid "Write the snapshot into a file." msgstr "" -#: ../../library/tracemalloc.rst:552 msgid "Use :meth:`load` to reload the snapshot." msgstr "" -#: ../../library/tracemalloc.rst:557 msgid "" "Create a new :class:`Snapshot` instance with a filtered :attr:`traces` " "sequence, *filters* is a list of :class:`DomainFilter` and :class:`Filter` " @@ -762,64 +655,50 @@ msgid "" "instance with a copy of the traces." msgstr "" -#: ../../library/tracemalloc.rst:562 msgid "" "All inclusive filters are applied at once, a trace is ignored if no " "inclusive filters match it. A trace is ignored if at least one exclusive " "filter matches it." msgstr "" -#: ../../library/tracemalloc.rst:566 msgid ":class:`DomainFilter` instances are now also accepted in *filters*." msgstr "" -#: ../../library/tracemalloc.rst:572 msgid "Load a snapshot from a file." msgstr "" -#: ../../library/tracemalloc.rst:574 msgid "See also :meth:`dump`." msgstr "" -#: ../../library/tracemalloc.rst:579 msgid "" "Get statistics as a sorted list of :class:`Statistic` instances grouped by " "*key_type*:" msgstr "" -#: ../../library/tracemalloc.rst:583 msgid "key_type" msgstr "" -#: ../../library/tracemalloc.rst:583 msgid "description" msgstr "" -#: ../../library/tracemalloc.rst:585 msgid "``'filename'``" msgstr "" -#: ../../library/tracemalloc.rst:585 msgid "filename" msgstr "" -#: ../../library/tracemalloc.rst:586 msgid "``'lineno'``" msgstr "" -#: ../../library/tracemalloc.rst:586 msgid "filename and line number" msgstr "" -#: ../../library/tracemalloc.rst:587 msgid "``'traceback'``" msgstr "" -#: ../../library/tracemalloc.rst:587 msgid "traceback" msgstr "" -#: ../../library/tracemalloc.rst:590 msgid "" "If *cumulative* is ``True``, cumulate size and count of memory blocks of all " "frames of the traceback of a trace, not only the most recent frame. The " @@ -827,176 +706,143 @@ msgid "" "and ``'lineno'``." msgstr "" -#: ../../library/tracemalloc.rst:595 msgid "" -"The result is sorted from the biggest to the smallest " -"by: :attr:`Statistic.size`, :attr:`Statistic.count` and then " -"by :attr:`Statistic.traceback`." +"The result is sorted from the biggest to the smallest by: :attr:`Statistic." +"size`, :attr:`Statistic.count` and then by :attr:`Statistic.traceback`." msgstr "" -#: ../../library/tracemalloc.rst:602 msgid "" "Maximum number of frames stored in the traceback of :attr:`traces`: result " "of the :func:`get_traceback_limit` when the snapshot was taken." msgstr "" -#: ../../library/tracemalloc.rst:607 msgid "" "Traces of all memory blocks allocated by Python: sequence of :class:`Trace` " "instances." msgstr "" -#: ../../library/tracemalloc.rst:610 msgid "" "The sequence has an undefined order. Use the :meth:`Snapshot.statistics` " "method to get a sorted list of statistics." msgstr "" -#: ../../library/tracemalloc.rst:615 msgid "Statistic" msgstr "" -#: ../../library/tracemalloc.rst:619 msgid "Statistic on memory allocations." msgstr "" -#: ../../library/tracemalloc.rst:621 msgid "" ":func:`Snapshot.statistics` returns a list of :class:`Statistic` instances." msgstr "" -#: ../../library/tracemalloc.rst:623 msgid "See also the :class:`StatisticDiff` class." msgstr "" -#: ../../library/tracemalloc.rst:627 msgid "Number of memory blocks (``int``)." msgstr "" -#: ../../library/tracemalloc.rst:631 msgid "Total size of memory blocks in bytes (``int``)." msgstr "" -#: ../../library/tracemalloc.rst:635 ../../library/tracemalloc.rst:704 msgid "" "Traceback where the memory block was allocated, :class:`Traceback` instance." msgstr "" -#: ../../library/tracemalloc.rst:640 msgid "StatisticDiff" msgstr "" -#: ../../library/tracemalloc.rst:644 msgid "" -"Statistic difference on memory allocations between an old and a " -"new :class:`Snapshot` instance." +"Statistic difference on memory allocations between an old and a new :class:" +"`Snapshot` instance." msgstr "" -#: ../../library/tracemalloc.rst:647 msgid "" ":func:`Snapshot.compare_to` returns a list of :class:`StatisticDiff` " "instances. See also the :class:`Statistic` class." msgstr "" -#: ../../library/tracemalloc.rst:652 msgid "" "Number of memory blocks in the new snapshot (``int``): ``0`` if the memory " "blocks have been released in the new snapshot." msgstr "" -#: ../../library/tracemalloc.rst:657 msgid "" "Difference of number of memory blocks between the old and the new snapshots " "(``int``): ``0`` if the memory blocks have been allocated in the new " "snapshot." msgstr "" -#: ../../library/tracemalloc.rst:663 msgid "" "Total size of memory blocks in bytes in the new snapshot (``int``): ``0`` if " "the memory blocks have been released in the new snapshot." msgstr "" -#: ../../library/tracemalloc.rst:668 msgid "" "Difference of total size of memory blocks in bytes between the old and the " "new snapshots (``int``): ``0`` if the memory blocks have been allocated in " "the new snapshot." msgstr "" -#: ../../library/tracemalloc.rst:674 msgid "" "Traceback where the memory blocks were allocated, :class:`Traceback` " "instance." msgstr "" -#: ../../library/tracemalloc.rst:679 msgid "Trace" msgstr "" -#: ../../library/tracemalloc.rst:683 msgid "Trace of a memory block." msgstr "" -#: ../../library/tracemalloc.rst:685 msgid "" "The :attr:`Snapshot.traces` attribute is a sequence of :class:`Trace` " "instances." msgstr "" -#: ../../library/tracemalloc.rst:700 msgid "Size of the memory block in bytes (``int``)." msgstr "" -#: ../../library/tracemalloc.rst:709 msgid "Traceback" msgstr "" -#: ../../library/tracemalloc.rst:713 msgid "" "Sequence of :class:`Frame` instances sorted from the oldest frame to the " "most recent frame." msgstr "" -#: ../../library/tracemalloc.rst:716 msgid "" "A traceback contains at least ``1`` frame. If the ``tracemalloc`` module " "failed to get a frame, the filename ``\"\"`` at line number ``0`` " "is used." msgstr "" -#: ../../library/tracemalloc.rst:720 msgid "" -"When a snapshot is taken, tracebacks of traces are limited " -"to :func:`get_traceback_limit` frames. See the :func:`take_snapshot` " -"function. The original number of frames of the traceback is stored in " -"the :attr:`Traceback.total_nframe` attribute. That allows to know if a " -"traceback has been truncated by the traceback limit." +"When a snapshot is taken, tracebacks of traces are limited to :func:" +"`get_traceback_limit` frames. See the :func:`take_snapshot` function. The " +"original number of frames of the traceback is stored in the :attr:`Traceback." +"total_nframe` attribute. That allows to know if a traceback has been " +"truncated by the traceback limit." msgstr "" -#: ../../library/tracemalloc.rst:726 msgid "" "The :attr:`Trace.traceback` attribute is an instance of :class:`Traceback` " "instance." msgstr "" -#: ../../library/tracemalloc.rst:729 msgid "" "Frames are now sorted from the oldest to the most recent, instead of most " "recent to oldest." msgstr "" -#: ../../library/tracemalloc.rst:734 msgid "" "Total number of frames that composed the traceback before truncation. This " "attribute can be set to ``None`` if the information is not available." msgstr "" -#: ../../library/tracemalloc.rst:738 msgid "The :attr:`Traceback.total_nframe` attribute was added." msgstr "" -#: ../../library/tracemalloc.rst:743 msgid "" "Format the traceback as a list of lines. Use the :mod:`linecache` module to " "retrieve lines from the source code. If *limit* is set, format the *limit* " @@ -1006,24 +852,20 @@ msgid "" "instead of last." msgstr "" -#: ../../library/tracemalloc.rst:750 msgid "" -"Similar to the :func:`traceback.format_tb` function, except " -"that :meth:`.format` does not include newlines." +"Similar to the :func:`traceback.format_tb` function, except that :meth:`." +"format` does not include newlines." msgstr "" -#: ../../library/tracemalloc.rst:753 msgid "Example::" msgstr "" -#: ../../library/tracemalloc.rst:755 msgid "" "print(\"Traceback (most recent call first):\")\n" "for line in traceback:\n" " print(line)" msgstr "" -#: ../../library/tracemalloc.rst:761 msgid "" "Traceback (most recent call first):\n" " File \"test.py\", line 9\n" diff --git a/library/tty.po b/library/tty.po index d8f4578..55cd54e 100644 --- a/library/tty.po +++ b/library/tty.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,95 +18,78 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/tty.rst:2 msgid ":mod:`!tty` --- Terminal control functions" msgstr "" -#: ../../library/tty.rst:11 msgid "**Source code:** :source:`Lib/tty.py`" msgstr "" -#: ../../library/tty.rst:15 msgid "" "The :mod:`tty` module defines functions for putting the tty into cbreak and " "raw modes." msgstr "" -#: ../../library/tty.rst:18 msgid "Availability" msgstr "" -#: ../../library/tty.rst:20 msgid "" "Because it requires the :mod:`termios` module, it will work only on Unix." msgstr "" -#: ../../library/tty.rst:22 msgid "The :mod:`tty` module defines the following functions:" msgstr "" -#: ../../library/tty.rst:27 msgid "" "Convert the tty attribute list *mode*, which is a list like the one returned " "by :func:`termios.tcgetattr`, to that of a tty in raw mode." msgstr "" -#: ../../library/tty.rst:35 msgid "" "Convert the tty attribute list *mode*, which is a list like the one returned " "by :func:`termios.tcgetattr`, to that of a tty in cbreak mode." msgstr "" -#: ../../library/tty.rst:38 msgid "" "This clears the ``ECHO`` and ``ICANON`` local mode flags in *mode* as well " "as setting the minimum input to 1 byte with no delay." msgstr "" -#: ../../library/tty.rst:43 msgid "" "The ``ICRNL`` flag is no longer cleared. This matches Linux and macOS ``stty " "cbreak`` behavior and what :func:`setcbreak` historically did." msgstr "" -#: ../../library/tty.rst:50 msgid "" "Change the mode of the file descriptor *fd* to raw. If *when* is omitted, it " -"defaults to :const:`termios.TCSAFLUSH`, and is passed " -"to :func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr` " -"is saved before setting *fd* to raw mode; this value is returned." +"defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." +"tcsetattr`. The return value of :func:`termios.tcgetattr` is saved before " +"setting *fd* to raw mode; this value is returned." msgstr "" -#: ../../library/tty.rst:55 ../../library/tty.rst:69 msgid "" "The return value is now the original tty attributes, instead of ``None``." msgstr "" -#: ../../library/tty.rst:61 msgid "" "Change the mode of file descriptor *fd* to cbreak. If *when* is omitted, it " -"defaults to :const:`termios.TCSAFLUSH`, and is passed " -"to :func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr` " -"is saved before setting *fd* to cbreak mode; this value is returned." +"defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." +"tcsetattr`. The return value of :func:`termios.tcgetattr` is saved before " +"setting *fd* to cbreak mode; this value is returned." msgstr "" -#: ../../library/tty.rst:66 msgid "" "This clears the ``ECHO`` and ``ICANON`` local mode flags as well as setting " "the minimum input to 1 byte with no delay." msgstr "" -#: ../../library/tty.rst:72 msgid "" "The ``ICRNL`` flag is no longer cleared. This restores the behavior of " "Python 3.11 and earlier as well as matching what Linux, macOS, & BSDs " "describe in their ``stty(1)`` man pages regarding cbreak mode." msgstr "" -#: ../../library/tty.rst:80 msgid "Module :mod:`termios`" msgstr "" -#: ../../library/tty.rst:81 msgid "Low-level terminal control interface." msgstr "" diff --git a/library/turtle.po b/library/turtle.po index 5fc3107..e2b9cbb 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,30 +22,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/turtle.rst:3 msgid ":mod:`!turtle` --- Turtle graphics" msgstr "" -#: ../../library/turtle.rst:10 msgid "**Source code:** :source:`Lib/turtle.py`" msgstr "" -#: ../../library/turtle.rst:25 msgid "Introduction" msgstr "Bevezetés" -#: ../../library/turtle.rst:27 msgid "" "Turtle graphics is an implementation of `the popular geometric drawing tools " "introduced in Logo `_, " "developed by Wally Feurzeig, Seymour Papert and Cynthia Solomon in 1967." msgstr "" -#: ../../library/turtle.rst:34 msgid "Get started" msgstr "" -#: ../../library/turtle.rst:36 msgid "" "Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an " "``import turtle``, give it the command ``turtle.forward(15)``, and it moves " @@ -54,26 +48,22 @@ msgid "" "degrees clockwise." msgstr "" -#: ../../library/turtle.rst:43 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" -#: ../../library/turtle.rst:49 msgid "" "In Python, turtle graphics provides a representation of a physical " "\"turtle\" (a little robot with a pen) that draws on a sheet of paper on the " "floor." msgstr "" -#: ../../library/turtle.rst:52 msgid "" "It's an effective and well-proven way for learners to encounter programming " "concepts and interaction with software, as it provides instant, visible " "feedback. It also provides convenient access to graphical output in general." msgstr "" -#: ../../library/turtle.rst:57 msgid "" "Turtle drawing was originally created as an educational tool, to be used by " "teachers in the classroom. For the programmer who needs to produce some " @@ -81,143 +71,113 @@ msgid "" "introducing more complex or external libraries into their work." msgstr "" -#: ../../library/turtle.rst:66 msgid "Tutorial" msgstr "" -#: ../../library/turtle.rst:68 msgid "" "New users should start here. In this tutorial we'll explore some of the " "basics of turtle drawing." msgstr "" -#: ../../library/turtle.rst:73 msgid "Starting a turtle environment" msgstr "" -#: ../../library/turtle.rst:75 msgid "In a Python shell, import all the objects of the ``turtle`` module::" msgstr "" -#: ../../library/turtle.rst:77 msgid "from turtle import *" msgstr "" -#: ../../library/turtle.rst:79 msgid "" "If you run into a ``No module named '_tkinter'`` error, you'll have to " "install the :mod:`Tk interface package ` on your system." msgstr "" -#: ../../library/turtle.rst:84 msgid "Basic drawing" msgstr "" -#: ../../library/turtle.rst:86 msgid "Send the turtle forward 100 steps::" msgstr "" -#: ../../library/turtle.rst:88 msgid "forward(100)" msgstr "" -#: ../../library/turtle.rst:90 msgid "" "You should see (most likely, in a new window on your display) a line drawn " "by the turtle, heading East. Change the direction of the turtle, so that it " "turns 120 degrees left (anti-clockwise)::" msgstr "" -#: ../../library/turtle.rst:94 msgid "left(120)" msgstr "" -#: ../../library/turtle.rst:96 msgid "Let's continue by drawing a triangle::" msgstr "" -#: ../../library/turtle.rst:98 msgid "" "forward(100)\n" "left(120)\n" "forward(100)" msgstr "" -#: ../../library/turtle.rst:102 msgid "" "Notice how the turtle, represented by an arrow, points in different " "directions as you steer it." msgstr "" -#: ../../library/turtle.rst:105 msgid "" "Experiment with those commands, and also with ``backward()`` and ``right()``." msgstr "" -#: ../../library/turtle.rst:110 ../../library/turtle.rst:364 -#: ../../library/turtle.rst:1058 msgid "Pen control" msgstr "" -#: ../../library/turtle.rst:112 msgid "" "Try changing the color - for example, ``color('blue')`` - and width of the " "line - for example, ``width(3)`` - and then drawing again." msgstr "" -#: ../../library/turtle.rst:115 msgid "" "You can also move the turtle around without drawing, by lifting up the pen: " "``up()`` before moving. To start drawing again, use ``down()``." msgstr "" -#: ../../library/turtle.rst:120 msgid "The turtle's position" msgstr "" -#: ../../library/turtle.rst:122 msgid "" "Send your turtle back to its starting-point (useful if it has disappeared " "off-screen)::" msgstr "" -#: ../../library/turtle.rst:125 msgid "home()" msgstr "" -#: ../../library/turtle.rst:127 msgid "" "The home position is at the center of the turtle's screen. If you ever need " "to know them, get the turtle's x-y coordinates with::" msgstr "" -#: ../../library/turtle.rst:130 msgid "pos()" msgstr "" -#: ../../library/turtle.rst:132 msgid "Home is at ``(0, 0)``." msgstr "" -#: ../../library/turtle.rst:134 msgid "" "And after a while, it will probably help to clear the window so we can start " "anew::" msgstr "" -#: ../../library/turtle.rst:137 msgid "clearscreen()" msgstr "" -#: ../../library/turtle.rst:141 msgid "Making algorithmic patterns" msgstr "" -#: ../../library/turtle.rst:143 msgid "Using loops, it's possible to build up geometric patterns::" msgstr "" -#: ../../library/turtle.rst:145 msgid "" "for steps in range(100):\n" " for c in ('blue', 'red', 'green'):\n" @@ -226,37 +186,30 @@ msgid "" " right(30)" msgstr "" -#: ../../library/turtle.rst:152 msgid "\\ - which of course, are limited only by the imagination!" msgstr "" -#: ../../library/turtle.rst:154 msgid "" "Let's draw the star shape at the top of this page. We want red lines, filled " "in with yellow::" msgstr "" -#: ../../library/turtle.rst:157 msgid "" "color('red')\n" "fillcolor('yellow')" msgstr "" -#: ../../library/turtle.rst:160 msgid "" "Just as ``up()`` and ``down()`` determine whether lines will be drawn, " "filling can be turned on and off::" msgstr "" -#: ../../library/turtle.rst:163 msgid "begin_fill()" msgstr "" -#: ../../library/turtle.rst:165 msgid "Next we'll create a loop::" msgstr "" -#: ../../library/turtle.rst:167 msgid "" "while True:\n" " forward(200)\n" @@ -265,39 +218,31 @@ msgid "" " break" msgstr "" -#: ../../library/turtle.rst:173 msgid "" "``abs(pos()) < 1`` is a good way to know when the turtle is back at its home " "position." msgstr "" -#: ../../library/turtle.rst:176 msgid "Finally, complete the filling::" msgstr "" -#: ../../library/turtle.rst:178 msgid "end_fill()" msgstr "" -#: ../../library/turtle.rst:180 msgid "" "(Note that filling only actually takes place when you give the " "``end_fill()`` command.)" msgstr "" -#: ../../library/turtle.rst:187 msgid "How to..." msgstr "" -#: ../../library/turtle.rst:189 msgid "This section covers some typical turtle use-cases and approaches." msgstr "" -#: ../../library/turtle.rst:193 msgid "Get started as quickly as possible" msgstr "" -#: ../../library/turtle.rst:195 msgid "" "One of the joys of turtle graphics is the immediate, visual feedback that's " "available from simple commands - it's an excellent way to introduce children " @@ -305,21 +250,18 @@ msgid "" "course)." msgstr "" -#: ../../library/turtle.rst:200 msgid "" "The turtle module makes this possible by exposing all its basic " -"functionality as functions, available with ``from turtle import *``. " -"The :ref:`turtle graphics tutorial ` covers this approach." +"functionality as functions, available with ``from turtle import *``. The :" +"ref:`turtle graphics tutorial ` covers this approach." msgstr "" -#: ../../library/turtle.rst:204 msgid "" "It's worth noting that many of the turtle commands also have even more terse " "equivalents, such as ``fd()`` for :func:`forward`. These are especially " "useful when working with learners for whom typing is not a skill." msgstr "" -#: ../../library/turtle.rst:210 msgid "" "You'll need to have the :mod:`Tk interface package ` installed on " "your system for turtle graphics to work. Be warned that this is not always " @@ -327,18 +269,15 @@ msgid "" "graphics with a learner." msgstr "" -#: ../../library/turtle.rst:217 msgid "Automatically begin and end filling" msgstr "" -#: ../../library/turtle.rst:219 msgid "" "Starting with Python 3.14, you can use the :func:`fill` :term:`context " "manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically " "begin and end fill. Here is an example::" msgstr "" -#: ../../library/turtle.rst:223 msgid "" "with fill():\n" " for i in range(4):\n" @@ -348,11 +287,9 @@ msgid "" "forward(200)" msgstr "" -#: ../../library/turtle.rst:230 msgid "The code above is equivalent to::" msgstr "" -#: ../../library/turtle.rst:232 msgid "" "begin_fill()\n" "for i in range(4):\n" @@ -363,11 +300,9 @@ msgid "" "forward(200)" msgstr "" -#: ../../library/turtle.rst:242 msgid "Use the ``turtle`` module namespace" msgstr "" -#: ../../library/turtle.rst:244 msgid "" "Using ``from turtle import *`` is convenient - but be warned that it imports " "a rather large collection of objects, and if you're doing anything but " @@ -376,7 +311,6 @@ msgid "" "might be imported)." msgstr "" -#: ../../library/turtle.rst:250 msgid "" "The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, " "``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over " @@ -384,17 +318,14 @@ msgid "" "instead.)" msgstr "" -#: ../../library/turtle.rst:257 msgid "Use turtle graphics in a script" msgstr "" -#: ../../library/turtle.rst:259 msgid "" "It's recommended to use the ``turtle`` module namespace as described " "immediately above, for example::" msgstr "" -#: ../../library/turtle.rst:262 msgid "" "import turtle as t\n" "from random import random\n" @@ -406,33 +337,27 @@ msgid "" " t.fd(steps)" msgstr "" -#: ../../library/turtle.rst:271 msgid "" "Another step is also required though - as soon as the script ends, Python " "will also close the turtle's window. Add::" msgstr "" -#: ../../library/turtle.rst:274 msgid "t.mainloop()" msgstr "" -#: ../../library/turtle.rst:276 msgid "" "to the end of the script. The script will now wait to be dismissed and will " "not exit until it is terminated, for example by closing the turtle graphics " "window." msgstr "" -#: ../../library/turtle.rst:282 msgid "Use object-oriented turtle graphics" msgstr "" -#: ../../library/turtle.rst:284 msgid "" ":ref:`Explanation of the object-oriented interface `" msgstr "" -#: ../../library/turtle.rst:286 msgid "" "Other than for very basic introductory purposes, or for trying things out as " "quickly as possible, it's more usual and much more powerful to use the " @@ -440,18 +365,15 @@ msgid "" "multiple turtles on screen at once." msgstr "" -#: ../../library/turtle.rst:291 msgid "" "In this approach, the various turtle commands are methods of objects (mostly " "of ``Turtle`` objects). You *can* use the object-oriented approach in the " "shell, but it would be more typical in a Python script." msgstr "" -#: ../../library/turtle.rst:295 msgid "The example above then becomes::" msgstr "" -#: ../../library/turtle.rst:297 msgid "" "from turtle import Turtle\n" "from random import random\n" @@ -466,521 +388,393 @@ msgid "" "t.screen.mainloop()" msgstr "" -#: ../../library/turtle.rst:309 msgid "" "Note the last line. ``t.screen`` is an instance of the :class:`Screen` that " "a Turtle instance exists on; it's created automatically along with the " "turtle." msgstr "" -#: ../../library/turtle.rst:313 msgid "The turtle's screen can be customised, for example::" msgstr "" -#: ../../library/turtle.rst:315 msgid "" "t.screen.title('Object-oriented turtle demo')\n" "t.screen.bgcolor(\"orange\")" msgstr "" -#: ../../library/turtle.rst:320 msgid "Turtle graphics reference" msgstr "" -#: ../../library/turtle.rst:324 msgid "" "In the following documentation the argument list for functions is given. " "Methods, of course, have the additional first argument *self* which is " "omitted here." msgstr "" -#: ../../library/turtle.rst:330 msgid "Turtle methods" msgstr "" -#: ../../library/turtle.rst:332 ../../library/turtle.rst:475 msgid "Turtle motion" msgstr "" -#: ../../library/turtle.rst:333 msgid "Move and draw" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`forward` | :func:`fd`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`backward` | :func:`bk` | :func:`back`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`right` | :func:`rt`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`left` | :func:`lt`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`teleport`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`setx`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`sety`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`setheading` | :func:`seth`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`home`" msgstr "" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2832 msgid ":func:`circle`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`dot`" msgstr "" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2810 msgid ":func:`stamp`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`clearstamp`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`clearstamps`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`undo`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`speed`" msgstr "" -#: ../../library/turtle.rst:352 ../../library/turtle.rst:907 msgid "Tell Turtle's state" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`position` | :func:`pos`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`towards`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`xcor`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`ycor`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`heading`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`distance`" msgstr "" -#: ../../library/turtle.rst:360 msgid "Setting and measurement" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`degrees`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`radians`" msgstr "" -#: ../../library/turtle.rst:365 ../../library/turtle.rst:1061 msgid "Drawing state" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`pendown` | :func:`pd` | :func:`down`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`penup` | :func:`pu` | :func:`up`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`pensize` | :func:`width`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`pen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`isdown`" msgstr "" -#: ../../library/turtle.rst:372 ../../library/turtle.rst:1153 msgid "Color control" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`color`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`pencolor`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`fillcolor`" msgstr "" -#: ../../library/turtle.rst:377 ../../library/turtle.rst:1285 msgid "Filling" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`filling`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`fill`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`begin_fill`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`end_fill`" msgstr "" -#: ../../library/turtle.rst:383 ../../library/turtle.rst:1355 msgid "More drawing control" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`reset`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`clear`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`write`" msgstr "" -#: ../../library/turtle.rst:388 ../../library/turtle.rst:1401 msgid "Turtle state" msgstr "" -#: ../../library/turtle.rst:389 ../../library/turtle.rst:1404 msgid "Visibility" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`showturtle` | :func:`st`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`hideturtle` | :func:`ht`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`isvisible`" msgstr "" -#: ../../library/turtle.rst:394 ../../library/turtle.rst:1443 msgid "Appearance" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`shape`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`resizemode`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`shapesize` | :func:`turtlesize`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`shearfactor`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`tiltangle`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`tilt`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`shapetransform`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`get_shapepoly`" msgstr "" -#: ../../library/turtle.rst:404 ../../library/turtle.rst:1626 msgid "Using events" msgstr "" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2804 msgid ":func:`onclick`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`onrelease`" msgstr "" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2787 msgid ":func:`ondrag`" msgstr "" -#: ../../library/turtle.rst:409 ../../library/turtle.rst:1700 msgid "Special Turtle methods" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`poly`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`begin_poly`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`end_poly`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`get_poly`" msgstr "" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2826 msgid ":func:`clone`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`getturtle` | :func:`getpen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`getscreen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`setundobuffer`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`undobufferentries`" msgstr "" -#: ../../library/turtle.rst:422 msgid "Methods of TurtleScreen/Screen" msgstr "" -#: ../../library/turtle.rst:424 ../../library/turtle.rst:1871 msgid "Window control" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`bgcolor`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`bgpic`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`clearscreen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`resetscreen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`screensize`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`setworldcoordinates`" msgstr "" -#: ../../library/turtle.rst:432 ../../library/turtle.rst:1995 msgid "Animation control" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`no_animation`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`delay`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`tracer`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`update`" msgstr "" -#: ../../library/turtle.rst:438 ../../library/turtle.rst:2065 msgid "Using screen events" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`listen`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`onkey` | :func:`onkeyrelease`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`onkeypress`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`onclick` | :func:`onscreenclick`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`ontimer`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`mainloop` | :func:`done`" msgstr "" -#: ../../library/turtle.rst:446 ../../library/turtle.rst:2210 msgid "Settings and special methods" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`mode`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`colormode`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`getcanvas`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`getshapes`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`register_shape` | :func:`addshape`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`turtles`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`window_height`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`window_width`" msgstr "" -#: ../../library/turtle.rst:456 ../../library/turtle.rst:2174 msgid "Input methods" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`textinput`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`numinput`" msgstr "" -#: ../../library/turtle.rst:460 msgid "Methods specific to Screen" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`bye`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`exitonclick`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`save`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`setup`" msgstr "" -#: ../../library/turtle.rst:0 msgid ":func:`title`" msgstr "" -#: ../../library/turtle.rst:469 msgid "Methods of RawTurtle/Turtle and corresponding functions" msgstr "" -#: ../../library/turtle.rst:471 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." msgstr "" -#: ../../library/turtle.rst:0 msgid "Parameters" msgstr "" -#: ../../library/turtle.rst:480 ../../library/turtle.rst:525 -#: ../../library/turtle.rst:550 ../../library/turtle.rst:648 -#: ../../library/turtle.rst:671 ../../library/turtle.rst:694 msgid "a number (integer or float)" msgstr "" -#: ../../library/turtle.rst:482 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" -#: ../../library/turtle.rst:485 msgid "" ">>> turtle.position()\n" "(0.00,0.00)\n" @@ -992,18 +786,14 @@ msgid "" "(-50.00,0.00)" msgstr "" -#: ../../library/turtle.rst:502 ../../library/turtle.rst:744 -#: ../../library/turtle.rst:1011 ../../library/turtle.rst:1542 msgid "a number" msgstr "" -#: ../../library/turtle.rst:504 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" -#: ../../library/turtle.rst:512 msgid "" ">>> turtle.position()\n" "(0.00,0.00)\n" @@ -1012,14 +802,12 @@ msgid "" "(-30.00,0.00)" msgstr "" -#: ../../library/turtle.rst:527 msgid "" "Turn turtle right by *angle* units. (Units are by default degrees, but can " "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" -#: ../../library/turtle.rst:537 msgid "" ">>> turtle.heading()\n" "22.0\n" @@ -1028,14 +816,12 @@ msgid "" "337.0" msgstr "" -#: ../../library/turtle.rst:552 msgid "" "Turn turtle left by *angle* units. (Units are by default degrees, but can " "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" -#: ../../library/turtle.rst:562 msgid "" ">>> turtle.heading()\n" "22.0\n" @@ -1044,28 +830,22 @@ msgid "" "67.0" msgstr "" -#: ../../library/turtle.rst:576 msgid "a number or a pair/vector of numbers" msgstr "" -#: ../../library/turtle.rst:577 ../../library/turtle.rst:610 -#: ../../library/turtle.rst:611 msgid "a number or ``None``" msgstr "" -#: ../../library/turtle.rst:579 msgid "" -"If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` " -"(e.g. as returned by :func:`pos`)." +"If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." +"g. as returned by :func:`pos`)." msgstr "" -#: ../../library/turtle.rst:582 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" -#: ../../library/turtle.rst:591 msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" @@ -1081,11 +861,9 @@ msgid "" "(0.00,0.00)" msgstr "" -#: ../../library/turtle.rst:612 msgid "a boolean" msgstr "" -#: ../../library/turtle.rst:614 msgid "" "Move turtle to an absolute position. Unlike goto(x, y), a line will not be " "drawn. The turtle's orientation does not change. If currently filling, the " @@ -1095,7 +873,6 @@ msgid "" "barrier like in goto(x, y)." msgstr "" -#: ../../library/turtle.rst:627 msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" @@ -1111,12 +888,10 @@ msgid "" "(20.00,30.00)" msgstr "" -#: ../../library/turtle.rst:650 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" -#: ../../library/turtle.rst:659 msgid "" ">>> turtle.position()\n" "(0.00,240.00)\n" @@ -1125,12 +900,10 @@ msgid "" "(10.00,240.00)" msgstr "" -#: ../../library/turtle.rst:673 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" -#: ../../library/turtle.rst:681 msgid "" ">>> turtle.position()\n" "(0.00,40.00)\n" @@ -1139,66 +912,52 @@ msgid "" "(0.00,-10.00)" msgstr "" -#: ../../library/turtle.rst:696 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" -#: ../../library/turtle.rst:700 msgid "standard mode" msgstr "" -#: ../../library/turtle.rst:700 msgid "logo mode" msgstr "" -#: ../../library/turtle.rst:702 msgid "0 - east" msgstr "" -#: ../../library/turtle.rst:702 msgid "0 - north" msgstr "" -#: ../../library/turtle.rst:703 msgid "90 - north" msgstr "" -#: ../../library/turtle.rst:703 msgid "90 - east" msgstr "" -#: ../../library/turtle.rst:704 msgid "180 - west" msgstr "" -#: ../../library/turtle.rst:704 msgid "180 - south" msgstr "" -#: ../../library/turtle.rst:705 msgid "270 - south" msgstr "" -#: ../../library/turtle.rst:705 msgid "270 - west" msgstr "" -#: ../../library/turtle.rst:708 msgid "" ">>> turtle.setheading(90)\n" ">>> turtle.heading()\n" "90.0" msgstr "" -#: ../../library/turtle.rst:718 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" -#: ../../library/turtle.rst:728 msgid "" ">>> turtle.heading()\n" "90.0\n" @@ -1211,15 +970,12 @@ msgid "" "0.0" msgstr "" -#: ../../library/turtle.rst:745 msgid "a number (or ``None``)" msgstr "" -#: ../../library/turtle.rst:746 ../../library/turtle.rst:839 msgid "an integer (or ``None``)" msgstr "" -#: ../../library/turtle.rst:748 msgid "" "Draw a circle with given *radius*. The center is *radius* units left of the " "turtle; *extent* -- an angle -- determines which part of the circle is " @@ -1230,14 +986,12 @@ msgid "" "changed by the amount of *extent*." msgstr "" -#: ../../library/turtle.rst:756 msgid "" "As the circle is approximated by an inscribed regular polygon, *steps* " "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" -#: ../../library/turtle.rst:760 msgid "" ">>> turtle.home()\n" ">>> turtle.position()\n" @@ -1256,21 +1010,17 @@ msgid "" "180.0" msgstr "" -#: ../../library/turtle.rst:782 msgid "an integer >= 1 (if given)" msgstr "" -#: ../../library/turtle.rst:783 msgid "a colorstring or a numeric color tuple" msgstr "" -#: ../../library/turtle.rst:785 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." msgstr "" -#: ../../library/turtle.rst:789 msgid "" ">>> turtle.home()\n" ">>> turtle.dot()\n" @@ -1281,29 +1031,24 @@ msgid "" "0.0" msgstr "" -#: ../../library/turtle.rst:803 msgid "" "Stamp a copy of the turtle shape onto the canvas at the current turtle " "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" -#: ../../library/turtle.rst:807 msgid "" ">>> turtle.color(\"blue\")\n" ">>> stamp_id = turtle.stamp()\n" ">>> turtle.fd(50)" msgstr "" -#: ../../library/turtle.rst:817 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" -#: ../../library/turtle.rst:820 msgid "Delete stamp with given *stampid*." msgstr "" -#: ../../library/turtle.rst:822 msgid "" ">>> turtle.position()\n" "(150.00,-0.00)\n" @@ -1317,14 +1062,12 @@ msgid "" "(200.00,-0.00)" msgstr "" -#: ../../library/turtle.rst:841 msgid "" "Delete all or first/last *n* of turtle's stamps. If *n* is ``None``, delete " "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " "*n* stamps." msgstr "" -#: ../../library/turtle.rst:845 msgid "" ">>> for i in range(8):\n" "... unused_stamp_id = turtle.stamp()\n" @@ -1334,13 +1077,11 @@ msgid "" ">>> turtle.clearstamps()" msgstr "" -#: ../../library/turtle.rst:857 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" -#: ../../library/turtle.rst:860 msgid "" ">>> for i in range(4):\n" "... turtle.fd(50); turtle.lt(80)\n" @@ -1349,55 +1090,44 @@ msgid "" "... turtle.undo()" msgstr "" -#: ../../library/turtle.rst:872 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" -#: ../../library/turtle.rst:874 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" -#: ../../library/turtle.rst:877 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" msgstr "" -#: ../../library/turtle.rst:880 msgid "\"fastest\": 0" msgstr "" -#: ../../library/turtle.rst:881 msgid "\"fast\": 10" msgstr "" -#: ../../library/turtle.rst:882 msgid "\"normal\": 6" msgstr "" -#: ../../library/turtle.rst:883 msgid "\"slow\": 3" msgstr "" -#: ../../library/turtle.rst:884 msgid "\"slowest\": 1" msgstr "" -#: ../../library/turtle.rst:886 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" -#: ../../library/turtle.rst:889 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." msgstr "" -#: ../../library/turtle.rst:893 msgid "" ">>> turtle.speed()\n" "3\n" @@ -1409,26 +1139,21 @@ msgid "" "9" msgstr "" -#: ../../library/turtle.rst:912 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" -#: ../../library/turtle.rst:914 msgid "" ">>> turtle.pos()\n" "(440.00,-0.00)" msgstr "" -#: ../../library/turtle.rst:923 ../../library/turtle.rst:986 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" -#: ../../library/turtle.rst:924 ../../library/turtle.rst:987 msgid "a number if *x* is a number, else ``None``" msgstr "" -#: ../../library/turtle.rst:926 msgid "" "Return the angle between the line from turtle position to position specified " "by (x,y), the vector or the other turtle. This depends on the turtle's " @@ -1436,18 +1161,15 @@ msgid "" "\"logo\"." msgstr "" -#: ../../library/turtle.rst:930 msgid "" ">>> turtle.goto(10, 10)\n" ">>> turtle.towards(0,0)\n" "225.0" msgstr "" -#: ../../library/turtle.rst:940 msgid "Return the turtle's x coordinate." msgstr "" -#: ../../library/turtle.rst:942 msgid "" ">>> turtle.home()\n" ">>> turtle.left(50)\n" @@ -1458,11 +1180,9 @@ msgid "" "64.27876" msgstr "" -#: ../../library/turtle.rst:956 msgid "Return the turtle's y coordinate." msgstr "" -#: ../../library/turtle.rst:958 msgid "" ">>> turtle.home()\n" ">>> turtle.left(60)\n" @@ -1473,13 +1193,11 @@ msgid "" "86.60254" msgstr "" -#: ../../library/turtle.rst:972 msgid "" -"Return the turtle's current heading (value depends on the turtle mode, " -"see :func:`mode`)." +"Return the turtle's current heading (value depends on the turtle mode, see :" +"func:`mode`)." msgstr "" -#: ../../library/turtle.rst:975 msgid "" ">>> turtle.home()\n" ">>> turtle.left(67)\n" @@ -1487,13 +1205,11 @@ msgid "" "67.0" msgstr "" -#: ../../library/turtle.rst:989 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" -#: ../../library/turtle.rst:992 msgid "" ">>> turtle.home()\n" ">>> turtle.distance(30,40)\n" @@ -1506,17 +1222,14 @@ msgid "" "77.0" msgstr "" -#: ../../library/turtle.rst:1007 msgid "Settings for measurement" msgstr "" -#: ../../library/turtle.rst:1013 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" -#: ../../library/turtle.rst:1016 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1533,13 +1246,11 @@ msgid "" "90.0" msgstr "" -#: ../../library/turtle.rst:1036 msgid "" -"Set the angle measurement units to radians. Equivalent to " -"``degrees(2*math.pi)``." +"Set the angle measurement units to radians. Equivalent to ``degrees(2*math." +"pi)``." msgstr "" -#: ../../library/turtle.rst:1039 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1550,87 +1261,68 @@ msgid "" "1.5707963267948966" msgstr "" -#: ../../library/turtle.rst:1067 msgid "Pull the pen down -- drawing when moving." msgstr "" -#: ../../library/turtle.rst:1074 msgid "Pull the pen up -- no drawing when moving." msgstr "" -#: ../../library/turtle.rst:1080 msgid "a positive number" msgstr "" -#: ../../library/turtle.rst:1082 msgid "" "Set the line thickness to *width* or return it. If resizemode is set to " "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " "line thickness. If no argument is given, the current pensize is returned." msgstr "" -#: ../../library/turtle.rst:1086 msgid "" ">>> turtle.pensize()\n" "1\n" ">>> turtle.pensize(10) # from here on lines of width 10 are drawn" msgstr "" -#: ../../library/turtle.rst:1096 msgid "a dictionary with some or all of the below listed keys" msgstr "" -#: ../../library/turtle.rst:1097 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" -#: ../../library/turtle.rst:1099 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" -#: ../../library/turtle.rst:1102 msgid "\"shown\": True/False" msgstr "" -#: ../../library/turtle.rst:1103 msgid "\"pendown\": True/False" msgstr "" -#: ../../library/turtle.rst:1104 msgid "\"pencolor\": color-string or color-tuple" msgstr "" -#: ../../library/turtle.rst:1105 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" -#: ../../library/turtle.rst:1106 msgid "\"pensize\": positive number" msgstr "" -#: ../../library/turtle.rst:1107 msgid "\"speed\": number in range 0..10" msgstr "" -#: ../../library/turtle.rst:1108 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" msgstr "" -#: ../../library/turtle.rst:1109 msgid "\"stretchfactor\": (positive number, positive number)" msgstr "" -#: ../../library/turtle.rst:1110 msgid "\"outline\": positive number" msgstr "" -#: ../../library/turtle.rst:1111 msgid "\"tilt\": number" msgstr "" -#: ../../library/turtle.rst:1113 msgid "" "This dictionary can be used as argument for a subsequent call to :func:`pen` " "to restore the former pen-state. Moreover one or more of these attributes " @@ -1638,7 +1330,6 @@ msgid "" "attributes in one statement." msgstr "" -#: ../../library/turtle.rst:1118 msgid "" ">>> turtle.pen(fillcolor=\"black\", pencolor=\"red\", pensize=10)\n" ">>> sorted(turtle.pen().items())\n" @@ -1656,11 +1347,9 @@ msgid "" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" msgstr "" -#: ../../library/turtle.rst:1139 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" -#: ../../library/turtle.rst:1141 msgid "" ">>> turtle.penup()\n" ">>> turtle.isdown()\n" @@ -1670,62 +1359,50 @@ msgid "" "True" msgstr "" -#: ../../library/turtle.rst:1157 msgid "Return or set the pencolor." msgstr "" -#: ../../library/turtle.rst:1159 ../../library/turtle.rst:1208 msgid "Four input formats are allowed:" msgstr "" -#: ../../library/turtle.rst:1161 msgid "``pencolor()``" msgstr "" -#: ../../library/turtle.rst:1162 msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." msgstr "" -#: ../../library/turtle.rst:1166 msgid "``pencolor(colorstring)``" msgstr "" -#: ../../library/turtle.rst:1167 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: ../../library/turtle.rst:1170 msgid "``pencolor((r, g, b))``" msgstr "" -#: ../../library/turtle.rst:1171 msgid "" "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" -#: ../../library/turtle.rst:1175 msgid "``pencolor(r, g, b)``" msgstr "" -#: ../../library/turtle.rst:1176 msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" -#: ../../library/turtle.rst:1179 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" -#: ../../library/turtle.rst:1182 msgid "" ">>> colormode()\n" "1.0\n" @@ -1746,59 +1423,48 @@ msgid "" "(50.0, 193.0, 143.0)" msgstr "" -#: ../../library/turtle.rst:1206 msgid "Return or set the fillcolor." msgstr "" -#: ../../library/turtle.rst:1210 msgid "``fillcolor()``" msgstr "" -#: ../../library/turtle.rst:1211 msgid "" "Return the current fillcolor as color specification string, possibly in " "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor call." msgstr "" -#: ../../library/turtle.rst:1215 msgid "``fillcolor(colorstring)``" msgstr "" -#: ../../library/turtle.rst:1216 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: ../../library/turtle.rst:1219 msgid "``fillcolor((r, g, b))``" msgstr "" -#: ../../library/turtle.rst:1220 msgid "" "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" -#: ../../library/turtle.rst:1224 msgid "``fillcolor(r, g, b)``" msgstr "" -#: ../../library/turtle.rst:1225 msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" -#: ../../library/turtle.rst:1228 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" -#: ../../library/turtle.rst:1231 msgid "" ">>> turtle.fillcolor(\"violet\")\n" ">>> turtle.fillcolor()\n" @@ -1813,54 +1479,44 @@ msgid "" "(255.0, 255.0, 255.0)" msgstr "" -#: ../../library/turtle.rst:1249 msgid "Return or set pencolor and fillcolor." msgstr "" -#: ../../library/turtle.rst:1251 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" -#: ../../library/turtle.rst:1254 msgid "``color()``" msgstr "" -#: ../../library/turtle.rst:1255 msgid "" "Return the current pencolor and the current fillcolor as a pair of color " -"specification strings or tuples as returned by :func:`pencolor` " -"and :func:`fillcolor`." +"specification strings or tuples as returned by :func:`pencolor` and :func:" +"`fillcolor`." msgstr "" -#: ../../library/turtle.rst:1259 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "" -#: ../../library/turtle.rst:1260 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" -#: ../../library/turtle.rst:1263 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" -#: ../../library/turtle.rst:1264 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" -#: ../../library/turtle.rst:1267 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" -#: ../../library/turtle.rst:1270 msgid "" ">>> turtle.color(\"red\", \"green\")\n" ">>> turtle.color()\n" @@ -1870,15 +1526,12 @@ msgid "" "((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))" msgstr "" -#: ../../library/turtle.rst:1281 msgid "See also: Screen method :func:`colormode`." msgstr "" -#: ../../library/turtle.rst:1295 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" -#: ../../library/turtle.rst:1297 msgid "" ">>> turtle.begin_fill()\n" ">>> if turtle.filling():\n" @@ -1887,24 +1540,20 @@ msgid "" "... turtle.pensize(3)" msgstr "" -#: ../../library/turtle.rst:1308 msgid "Fill the shape drawn in the ``with turtle.fill():`` block." msgstr "" -#: ../../library/turtle.rst:1310 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> with turtle.fill():\n" "... turtle.circle(80)" msgstr "" -#: ../../library/turtle.rst:1317 msgid "" "Using :func:`!fill` is equivalent to adding the :func:`begin_fill` before " "the fill-block and :func:`end_fill` after the fill-block:" msgstr "" -#: ../../library/turtle.rst:1320 ../../library/turtle.rst:1345 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> turtle.begin_fill()\n" @@ -1912,15 +1561,12 @@ msgid "" ">>> turtle.end_fill()" msgstr "" -#: ../../library/turtle.rst:1333 msgid "To be called just before drawing a shape to be filled." msgstr "" -#: ../../library/turtle.rst:1338 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" -#: ../../library/turtle.rst:1340 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " "shapes are filled depends on the operating system graphics, type of overlap, " @@ -1928,13 +1574,11 @@ msgid "" "all yellow or have some white regions." msgstr "" -#: ../../library/turtle.rst:1359 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" -#: ../../library/turtle.rst:1362 msgid "" ">>> turtle.goto(0,-22)\n" ">>> turtle.left(100)\n" @@ -1949,30 +1593,24 @@ msgid "" "0.0" msgstr "" -#: ../../library/turtle.rst:1380 msgid "" "Delete the turtle's drawings from the screen. Do not move turtle. State " "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" -#: ../../library/turtle.rst:1386 msgid "object to be written to the TurtleScreen" msgstr "" -#: ../../library/turtle.rst:1387 msgid "True/False" msgstr "" -#: ../../library/turtle.rst:1388 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" -#: ../../library/turtle.rst:1389 msgid "a triple (fontname, fontsize, fonttype)" msgstr "" -#: ../../library/turtle.rst:1391 msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " @@ -1980,44 +1618,36 @@ msgid "" "corner of the text. By default, *move* is ``False``." msgstr "" -#: ../../library/turtle.rst:1409 msgid "" "Make the turtle invisible. It's a good idea to do this while you're in the " "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" -#: ../../library/turtle.rst:1413 msgid ">>> turtle.hideturtle()" msgstr "" -#: ../../library/turtle.rst:1422 msgid "Make the turtle visible." msgstr "" -#: ../../library/turtle.rst:1424 msgid ">>> turtle.showturtle()" msgstr "" -#: ../../library/turtle.rst:1432 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" -#: ../../library/turtle.rst:1447 msgid "a string which is a valid shapename" msgstr "" -#: ../../library/turtle.rst:1449 msgid "" "Set turtle shape to shape with given *name* or, if name is not given, return " "name of current shape. Shape with *name* must exist in the TurtleScreen's " "shape dictionary. Initially there are the following polygon shapes: " "\"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". " -"To learn about how to deal with shapes see Screen " -"method :func:`register_shape`." +"To learn about how to deal with shapes see Screen method :func:" +"`register_shape`." msgstr "" -#: ../../library/turtle.rst:1455 msgid "" ">>> turtle.shape()\n" "'classic'\n" @@ -2026,40 +1656,33 @@ msgid "" "'turtle'" msgstr "" -#: ../../library/turtle.rst:1467 msgid "one of the strings \"auto\", \"user\", \"noresize\"" msgstr "" -#: ../../library/turtle.rst:1469 msgid "" "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If " "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" -#: ../../library/turtle.rst:1473 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" -#: ../../library/turtle.rst:1474 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" -#: ../../library/turtle.rst:1477 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" -#: ../../library/turtle.rst:1479 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." msgstr "" -#: ../../library/turtle.rst:1481 msgid "" ">>> turtle.resizemode()\n" "'noresize'\n" @@ -2068,12 +1691,9 @@ msgid "" "'auto'" msgstr "" -#: ../../library/turtle.rst:1494 ../../library/turtle.rst:1495 -#: ../../library/turtle.rst:1496 msgid "positive number" msgstr "" -#: ../../library/turtle.rst:1498 msgid "" "Return or set the pen's attributes x/y-stretchfactors and/or outline. Set " "resizemode to \"user\". If and only if resizemode is set to \"user\", the " @@ -2083,7 +1703,6 @@ msgid "" "determines the width of the shape's outline." msgstr "" -#: ../../library/turtle.rst:1505 msgid "" ">>> turtle.shapesize()\n" "(1.0, 1.0, 1)\n" @@ -2096,12 +1715,9 @@ msgid "" "(5, 5, 8)" msgstr "" -#: ../../library/turtle.rst:1521 ../../library/turtle.rst:2193 -#: ../../library/turtle.rst:2194 ../../library/turtle.rst:2195 msgid "number (optional)" msgstr "" -#: ../../library/turtle.rst:1523 msgid "" "Set or return the current shearfactor. Shear the turtleshape according to " "the given shearfactor shear, which is the tangent of the shear angle. Do " @@ -2110,7 +1726,6 @@ msgid "" "by which lines parallel to the heading of the turtle are sheared." msgstr "" -#: ../../library/turtle.rst:1530 msgid "" ">>> turtle.shape(\"circle\")\n" ">>> turtle.shapesize(5,2)\n" @@ -2119,13 +1734,11 @@ msgid "" "0.5" msgstr "" -#: ../../library/turtle.rst:1544 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" -#: ../../library/turtle.rst:1547 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2136,13 +1749,9 @@ msgid "" ">>> turtle.fd(50)" msgstr "" -#: ../../library/turtle.rst:1561 ../../library/turtle.rst:1584 -#: ../../library/turtle.rst:1585 ../../library/turtle.rst:1586 -#: ../../library/turtle.rst:1587 msgid "a number (optional)" msgstr "" -#: ../../library/turtle.rst:1563 msgid "" "Set or return the current tilt-angle. If angle is given, rotate the " "turtleshape to point in the direction specified by angle, regardless of its " @@ -2152,7 +1761,6 @@ msgid "" "turtle (its direction of movement)." msgstr "" -#: ../../library/turtle.rst:1571 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2162,11 +1770,9 @@ msgid "" "45.0" msgstr "" -#: ../../library/turtle.rst:1589 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" -#: ../../library/turtle.rst:1591 msgid "" "If none of the matrix elements are given, return the transformation matrix " "as a tuple of 4 elements. Otherwise set the given elements and transform the " @@ -2176,7 +1782,6 @@ msgid "" "tiltangle according to the given matrix." msgstr "" -#: ../../library/turtle.rst:1600 msgid "" ">>> turtle = Turtle()\n" ">>> turtle.shape(\"square\")\n" @@ -2186,13 +1791,11 @@ msgid "" "(4.0, -1.0, -0.0, 2.0)" msgstr "" -#: ../../library/turtle.rst:1613 msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." msgstr "" -#: ../../library/turtle.rst:1616 msgid "" ">>> turtle.shape(\"square\")\n" ">>> turtle.shapetransform(4, -1, 0, 2)\n" @@ -2200,33 +1803,25 @@ msgid "" "((50, -20), (30, 20), (-50, 20), (-30, -20))" msgstr "" -#: ../../library/turtle.rst:1631 ../../library/turtle.rst:1653 -#: ../../library/turtle.rst:1678 ../../library/turtle.rst:2117 msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" -#: ../../library/turtle.rst:1633 ../../library/turtle.rst:1655 -#: ../../library/turtle.rst:1680 ../../library/turtle.rst:2119 msgid "number of the mouse-button, defaults to 1 (left mouse button)" msgstr "" -#: ../../library/turtle.rst:1634 ../../library/turtle.rst:1656 -#: ../../library/turtle.rst:1681 ../../library/turtle.rst:2120 msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" -#: ../../library/turtle.rst:1637 msgid "" "Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, " "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" -#: ../../library/turtle.rst:1641 msgid "" ">>> def turn(x, y):\n" "... left(180)\n" @@ -2235,13 +1830,11 @@ msgid "" ">>> onclick(None) # event-binding will be removed" msgstr "" -#: ../../library/turtle.rst:1659 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" -#: ../../library/turtle.rst:1662 msgid "" ">>> class MyTurtle(Turtle):\n" "... def glow(self,x,y):\n" @@ -2255,35 +1848,29 @@ msgid "" ">>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent." msgstr "" -#: ../../library/turtle.rst:1684 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: ../../library/turtle.rst:1687 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" -#: ../../library/turtle.rst:1690 msgid ">>> turtle.ondrag(turtle.goto)" msgstr "" -#: ../../library/turtle.rst:1695 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" -#: ../../library/turtle.rst:1705 msgid "" "Record the vertices of a polygon drawn in the ``with turtle.poly():`` block. " "The first and last vertices will be connected." msgstr "" -#: ../../library/turtle.rst:1708 msgid "" ">>> with turtle.poly():\n" "... turtle.forward(100)\n" @@ -2291,23 +1878,19 @@ msgid "" "... turtle.forward(100)" msgstr "" -#: ../../library/turtle.rst:1721 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" -#: ../../library/turtle.rst:1727 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." msgstr "" -#: ../../library/turtle.rst:1733 msgid "Return the last recorded polygon." msgstr "" -#: ../../library/turtle.rst:1735 msgid "" ">>> turtle.home()\n" ">>> turtle.begin_poly()\n" @@ -2321,25 +1904,21 @@ msgid "" ">>> register_shape(\"myFavouriteShape\", p)" msgstr "" -#: ../../library/turtle.rst:1752 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" -#: ../../library/turtle.rst:1755 msgid "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" msgstr "" -#: ../../library/turtle.rst:1765 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" -#: ../../library/turtle.rst:1768 msgid "" ">>> pet = getturtle()\n" ">>> pet.fd(50)\n" @@ -2347,13 +1926,11 @@ msgid "" "" msgstr "" -#: ../../library/turtle.rst:1779 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" -#: ../../library/turtle.rst:1782 msgid "" ">>> ts = turtle.getscreen()\n" ">>> ts\n" @@ -2361,11 +1938,9 @@ msgid "" ">>> ts.bgcolor(\"pink\")" msgstr "" -#: ../../library/turtle.rst:1793 msgid "an integer or ``None``" msgstr "" -#: ../../library/turtle.rst:1795 msgid "" "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of " "given size is installed. *size* gives the maximum number of turtle actions " @@ -2373,46 +1948,37 @@ msgid "" "``None``, the undobuffer is disabled." msgstr "" -#: ../../library/turtle.rst:1800 msgid ">>> turtle.setundobuffer(42)" msgstr "" -#: ../../library/turtle.rst:1808 msgid "Return number of entries in the undobuffer." msgstr "" -#: ../../library/turtle.rst:1810 msgid "" ">>> while undobufferentries():\n" "... undo()" msgstr "" -#: ../../library/turtle.rst:1821 msgid "Compound shapes" msgstr "" -#: ../../library/turtle.rst:1823 msgid "" "To use compound turtle shapes, which consist of several polygons of " "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" -#: ../../library/turtle.rst:1827 msgid "Create an empty Shape object of type \"compound\"." msgstr "" -#: ../../library/turtle.rst:1828 msgid "" -"Add as many components to this object as desired, using " -"the :meth:`~Shape.addcomponent` method." +"Add as many components to this object as desired, using the :meth:`~Shape." +"addcomponent` method." msgstr "" -#: ../../library/turtle.rst:1831 msgid "For example:" msgstr "" -#: ../../library/turtle.rst:1833 msgid "" ">>> s = Shape(\"compound\")\n" ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" @@ -2421,44 +1987,36 @@ msgid "" ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgstr "" -#: ../../library/turtle.rst:1842 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" -#: ../../library/turtle.rst:1844 msgid "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" msgstr "" -#: ../../library/turtle.rst:1853 msgid "" "The :class:`Shape` class is used internally by the :func:`register_shape` " "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" -#: ../../library/turtle.rst:1859 msgid "Methods of TurtleScreen/Screen and corresponding functions" msgstr "" -#: ../../library/turtle.rst:1861 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" -#: ../../library/turtle.rst:1875 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" msgstr "" -#: ../../library/turtle.rst:1879 msgid "Set or return background color of the TurtleScreen." msgstr "" -#: ../../library/turtle.rst:1881 msgid "" ">>> screen.bgcolor(\"orange\")\n" ">>> screen.bgcolor()\n" @@ -2468,13 +2026,11 @@ msgid "" "(128.0, 0.0, 128.0)" msgstr "" -#: ../../library/turtle.rst:1894 msgid "" "a string, name of an image file (PNG, GIF, PGM, and PPM) or ``\"nopic\"``, " "or ``None``" msgstr "" -#: ../../library/turtle.rst:1897 msgid "" "Set background image or return name of current backgroundimage. If " "*picname* is a filename, set the corresponding image as background. If " @@ -2482,7 +2038,6 @@ msgid "" "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" -#: ../../library/turtle.rst:1902 msgid "" ">>> screen.bgpic()\n" "'nopic'\n" @@ -2491,44 +2046,36 @@ msgid "" "\"landscape.gif\"" msgstr "" -#: ../../library/turtle.rst:1913 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" -#: ../../library/turtle.rst:1920 msgid "" "Delete all drawings and all turtles from the TurtleScreen. Reset the now " "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" -#: ../../library/turtle.rst:1929 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" -#: ../../library/turtle.rst:1936 msgid "Reset all Turtles on the Screen to their initial state." msgstr "" -#: ../../library/turtle.rst:1941 msgid "positive integer, new width of canvas in pixels" msgstr "" -#: ../../library/turtle.rst:1942 msgid "positive integer, new height of canvas in pixels" msgstr "" -#: ../../library/turtle.rst:1943 msgid "colorstring or color-tuple, new background color" msgstr "" -#: ../../library/turtle.rst:1945 msgid "" "If no arguments are given, return current (canvaswidth, canvasheight). Else " "resize the canvas the turtles are drawing on. Do not alter the drawing " @@ -2537,40 +2084,32 @@ msgid "" "outside the canvas before." msgstr "" -#: ../../library/turtle.rst:1957 msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "" -#: ../../library/turtle.rst:1962 msgid "a number, x-coordinate of lower left corner of canvas" msgstr "" -#: ../../library/turtle.rst:1963 msgid "a number, y-coordinate of lower left corner of canvas" msgstr "" -#: ../../library/turtle.rst:1964 msgid "a number, x-coordinate of upper right corner of canvas" msgstr "" -#: ../../library/turtle.rst:1965 msgid "a number, y-coordinate of upper right corner of canvas" msgstr "" -#: ../../library/turtle.rst:1967 msgid "" "Set up user-defined coordinate system and switch to mode \"world\" if " "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" -#: ../../library/turtle.rst:1971 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" -#: ../../library/turtle.rst:1974 msgid "" ">>> screen.reset()\n" ">>> screen.setworldcoordinates(-50,-7.5,50,7.5)\n" @@ -2581,14 +2120,12 @@ msgid "" "... left(45); fd(2) # a regular octagon" msgstr "" -#: ../../library/turtle.rst:1999 msgid "" "Temporarily disable turtle animation. The code written inside the " "``no_animation`` block will not be animated; once the code block is exited, " "the drawing will appear." msgstr "" -#: ../../library/turtle.rst:2003 msgid "" ">>> with screen.no_animation():\n" "... for dist in range(2, 400, 2):\n" @@ -2596,22 +2133,18 @@ msgid "" "... rt(90)" msgstr "" -#: ../../library/turtle.rst:2016 msgid "positive integer" msgstr "" -#: ../../library/turtle.rst:2018 msgid "" "Set or return the drawing *delay* in milliseconds. (This is approximately " "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" -#: ../../library/turtle.rst:2022 msgid "Optional argument:" msgstr "" -#: ../../library/turtle.rst:2024 msgid "" ">>> screen.delay()\n" "10\n" @@ -2620,11 +2153,9 @@ msgid "" "5" msgstr "" -#: ../../library/turtle.rst:2036 ../../library/turtle.rst:2037 msgid "nonnegative integer" msgstr "" -#: ../../library/turtle.rst:2039 msgid "" "Turn turtle animation on/off and set delay for update drawings. If *n* is " "given, only each n-th regular screen update is really performed. (Can be " @@ -2633,7 +2164,6 @@ msgid "" "delay value (see :func:`delay`)." msgstr "" -#: ../../library/turtle.rst:2046 msgid "" ">>> screen.tracer(8, 25)\n" ">>> dist = 2\n" @@ -2643,37 +2173,30 @@ msgid "" "... dist += 2" msgstr "" -#: ../../library/turtle.rst:2059 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" -#: ../../library/turtle.rst:2061 msgid "See also the RawTurtle/Turtle method :func:`speed`." msgstr "" -#: ../../library/turtle.rst:2069 msgid "" "Set focus on TurtleScreen (in order to collect key-events). Dummy arguments " "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" -#: ../../library/turtle.rst:2076 ../../library/turtle.rst:2096 msgid "a function with no arguments or ``None``" msgstr "" -#: ../../library/turtle.rst:2077 ../../library/turtle.rst:2097 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" -#: ../../library/turtle.rst:2079 msgid "" "Bind *fun* to key-release event of key. If *fun* is ``None``, event " "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" -#: ../../library/turtle.rst:2083 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2683,14 +2206,12 @@ msgid "" ">>> screen.listen()" msgstr "" -#: ../../library/turtle.rst:2099 msgid "" "Bind *fun* to key-press event of key if key is given, or to any key-press-" "event if no key is given. Remark: in order to be able to register key-" "events, TurtleScreen must have focus. (See method :func:`listen`.)" msgstr "" -#: ../../library/turtle.rst:2104 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2699,19 +2220,16 @@ msgid "" ">>> screen.listen()" msgstr "" -#: ../../library/turtle.rst:2123 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: ../../library/turtle.rst:2126 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" msgstr "" -#: ../../library/turtle.rst:2129 msgid "" ">>> screen.onclick(turtle.goto) # Subsequently clicking into the " "TurtleScreen will\n" @@ -2720,26 +2238,21 @@ msgid "" ">>> screen.onclick(None) # remove event binding again" msgstr "" -#: ../../library/turtle.rst:2137 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" -#: ../../library/turtle.rst:2144 msgid "a function with no arguments" msgstr "" -#: ../../library/turtle.rst:2145 msgid "a number >= 0" msgstr "" -#: ../../library/turtle.rst:2147 msgid "Install a timer that calls *fun* after *t* milliseconds." msgstr "" -#: ../../library/turtle.rst:2149 msgid "" ">>> running = True\n" ">>> def f():\n" @@ -2751,7 +2264,6 @@ msgid "" ">>> running = False" msgstr "" -#: ../../library/turtle.rst:2165 msgid "" "Starts event loop - calling Tkinter's mainloop function. Must be the last " "statement in a turtle graphics program. Must *not* be used if a script is " @@ -2759,16 +2271,12 @@ msgid "" "turtle graphics. ::" msgstr "" -#: ../../library/turtle.rst:2170 msgid ">>> screen.mainloop()" msgstr "" -#: ../../library/turtle.rst:2178 ../../library/turtle.rst:2179 -#: ../../library/turtle.rst:2191 ../../library/turtle.rst:2192 msgid "string" msgstr "" -#: ../../library/turtle.rst:2181 msgid "" "Pop up a dialog window for input of a string. Parameter title is the title " "of the dialog window, prompt is a text mostly describing what information to " @@ -2776,11 +2284,9 @@ msgid "" "``None``. ::" msgstr "" -#: ../../library/turtle.rst:2186 msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr "" -#: ../../library/turtle.rst:2197 msgid "" "Pop up a dialog window for input of a number. title is the title of the " "dialog window, prompt is a text mostly describing what numerical information " @@ -2791,23 +2297,19 @@ msgid "" "return ``None``. ::" msgstr "" -#: ../../library/turtle.rst:2206 msgid "" ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, " "maxval=10000)" msgstr "" -#: ../../library/turtle.rst:2214 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" -#: ../../library/turtle.rst:2216 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" -#: ../../library/turtle.rst:2219 msgid "" "Mode \"standard\" is compatible with old :mod:`turtle`. Mode \"logo\" is " "compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " @@ -2815,60 +2317,47 @@ msgid "" "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" -#: ../../library/turtle.rst:2225 msgid "Mode" msgstr "" -#: ../../library/turtle.rst:2225 msgid "Initial turtle heading" msgstr "" -#: ../../library/turtle.rst:2225 msgid "positive angles" msgstr "" -#: ../../library/turtle.rst:2227 msgid "\"standard\"" msgstr "" -#: ../../library/turtle.rst:2227 msgid "to the right (east)" msgstr "" -#: ../../library/turtle.rst:2227 msgid "counterclockwise" msgstr "" -#: ../../library/turtle.rst:2228 msgid "\"logo\"" msgstr "" -#: ../../library/turtle.rst:2228 msgid "upward (north)" msgstr "" -#: ../../library/turtle.rst:2228 msgid "clockwise" msgstr "" -#: ../../library/turtle.rst:2231 msgid "" ">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" -#: ../../library/turtle.rst:2241 msgid "one of the values 1.0 or 255" msgstr "" -#: ../../library/turtle.rst:2243 msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " "values of color triples have to be in the range 0..*cmode*." msgstr "" -#: ../../library/turtle.rst:2246 msgid "" ">>> screen.colormode(1)\n" ">>> turtle.pencolor(240, 160, 80)\n" @@ -2883,191 +2372,156 @@ msgid "" ">>> turtle.pencolor(240,160,80)" msgstr "" -#: ../../library/turtle.rst:2264 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" -#: ../../library/turtle.rst:2267 msgid "" ">>> cv = screen.getcanvas()\n" ">>> cv\n" "" msgstr "" -#: ../../library/turtle.rst:2277 msgid "Return a list of names of all currently available turtle shapes." msgstr "" -#: ../../library/turtle.rst:2279 msgid "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" msgstr "" -#: ../../library/turtle.rst:2289 msgid "There are four different ways to call this function:" msgstr "" -#: ../../library/turtle.rst:2291 msgid "" "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is " "``None``: Install the corresponding image shape. ::" msgstr "" -#: ../../library/turtle.rst:2294 msgid ">>> screen.register_shape(\"turtle.gif\")" msgstr "" -#: ../../library/turtle.rst:2297 ../../library/turtle.rst:2306 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" -#: ../../library/turtle.rst:2300 msgid "" "*name* is an arbitrary string and *shape* is the name of an image file (PNG, " "GIF, PGM, and PPM): Install the corresponding image shape. ::" msgstr "" -#: ../../library/turtle.rst:2303 msgid ">>> screen.register_shape(\"turtle\", \"turtle.gif\")" msgstr "" -#: ../../library/turtle.rst:2309 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" -#: ../../library/turtle.rst:2312 msgid ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgstr "" -#: ../../library/turtle.rst:2317 msgid "" "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" -#: ../../library/turtle.rst:2320 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" -#: ../../library/turtle.rst:2323 msgid "" "Added support for PNG, PGM, and PPM image formats. Both a shape name and an " "image file name can be specified." msgstr "" -#: ../../library/turtle.rst:2330 msgid "Return the list of turtles on the screen." msgstr "" -#: ../../library/turtle.rst:2332 msgid "" ">>> for turtle in screen.turtles():\n" "... turtle.color(\"red\")" msgstr "" -#: ../../library/turtle.rst:2341 msgid "Return the height of the turtle window. ::" msgstr "" -#: ../../library/turtle.rst:2343 msgid "" ">>> screen.window_height()\n" "480" msgstr "" -#: ../../library/turtle.rst:2349 msgid "Return the width of the turtle window. ::" msgstr "" -#: ../../library/turtle.rst:2351 msgid "" ">>> screen.window_width()\n" "640" msgstr "" -#: ../../library/turtle.rst:2358 msgid "Methods specific to Screen, not inherited from TurtleScreen" msgstr "" -#: ../../library/turtle.rst:2362 msgid "Shut the turtlegraphics window." msgstr "" -#: ../../library/turtle.rst:2367 msgid "Bind ``bye()`` method to mouse clicks on the Screen." msgstr "" -#: ../../library/turtle.rst:2370 msgid "" "If the value \"using_IDLE\" in the configuration dictionary is ``False`` " "(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " -"switch (no subprocess) is used, this value should be set to ``True`` " -"in :file:`turtle.cfg`. In this case IDLE's own mainloop is active also for " -"the client script." +"switch (no subprocess) is used, this value should be set to ``True`` in :" +"file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " +"client script." msgstr "" -#: ../../library/turtle.rst:2379 msgid "Save the current turtle drawing (and turtles) as a PostScript file." msgstr "" -#: ../../library/turtle.rst:2381 msgid "the path of the saved PostScript file" msgstr "" -#: ../../library/turtle.rst:2382 msgid "" "if ``False`` and there already exists a file with the given filename, then " "the function will raise a ``FileExistsError``. If it is ``True``, the file " "will be overwritten." msgstr "" -#: ../../library/turtle.rst:2387 msgid "" ">>> screen.save(\"my_drawing.ps\")\n" ">>> screen.save(\"my_drawing.ps\", overwrite=True)" msgstr "" -#: ../../library/turtle.rst:2397 msgid "" "Set the size and position of the main window. Default values of arguments " -"are stored in the configuration dictionary and can be changed via " -"a :file:`turtle.cfg` file." +"are stored in the configuration dictionary and can be changed via a :file:" +"`turtle.cfg` file." msgstr "" -#: ../../library/turtle.rst:2401 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" -#: ../../library/turtle.rst:2403 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" -#: ../../library/turtle.rst:2405 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" msgstr "" -#: ../../library/turtle.rst:2408 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" msgstr "" -#: ../../library/turtle.rst:2412 msgid "" ">>> screen.setup (width=200, height=200, startx=0, starty=0)\n" ">>> # sets window to 200x200 pixels, in upper left of screen\n" @@ -3075,129 +2529,101 @@ msgid "" ">>> # sets window to 75% of screen by 50% of screen and centers" msgstr "" -#: ../../library/turtle.rst:2423 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" -#: ../../library/turtle.rst:2426 msgid "Set title of turtle window to *titlestring*." msgstr "" -#: ../../library/turtle.rst:2428 msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr "" -#: ../../library/turtle.rst:2435 msgid "Public classes" msgstr "" -#: ../../library/turtle.rst:2441 msgid "" -"a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or " -"a :class:`TurtleScreen`" +"a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" +"`TurtleScreen`" msgstr "" -#: ../../library/turtle.rst:2444 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" -#: ../../library/turtle.rst:2450 msgid "" -"Subclass of RawTurtle, has the same interface but draws on a " -"default :class:`Screen` object created automatically when needed for the " -"first time." +"Subclass of RawTurtle, has the same interface but draws on a default :class:" +"`Screen` object created automatically when needed for the first time." msgstr "" -#: ../../library/turtle.rst:2456 msgid "a :class:`!tkinter.Canvas`" msgstr "" -#: ../../library/turtle.rst:2458 msgid "" "Provides screen oriented methods like :func:`bgcolor` etc. that are " "described above." msgstr "" -#: ../../library/turtle.rst:2463 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" -#: ../../library/turtle.rst:2468 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" -#: ../../library/turtle.rst:2471 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" -#: ../../library/turtle.rst:2476 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" -#: ../../library/turtle.rst:2478 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" -#: ../../library/turtle.rst:2483 msgid "*type_*" msgstr "" -#: ../../library/turtle.rst:2483 msgid "*data*" msgstr "" -#: ../../library/turtle.rst:2485 msgid "\"polygon\"" msgstr "" -#: ../../library/turtle.rst:2485 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" -#: ../../library/turtle.rst:2486 msgid "\"image\"" msgstr "" -#: ../../library/turtle.rst:2486 msgid "an image (in this form only used internally!)" msgstr "" -#: ../../library/turtle.rst:2487 msgid "\"compound\"" msgstr "" -#: ../../library/turtle.rst:2487 msgid "" -"``None`` (a compound shape has to be constructed using " -"the :meth:`addcomponent` method)" +"``None`` (a compound shape has to be constructed using the :meth:" +"`addcomponent` method)" msgstr "" -#: ../../library/turtle.rst:2493 msgid "a polygon, i.e. a tuple of pairs of numbers" msgstr "" -#: ../../library/turtle.rst:2494 msgid "a color the *poly* will be filled with" msgstr "" -#: ../../library/turtle.rst:2495 msgid "a color for the poly's outline (if given)" msgstr "" -#: ../../library/turtle.rst:2497 msgid "Example:" msgstr "" -#: ../../library/turtle.rst:2499 msgid "" ">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" ">>> s = Shape(\"compound\")\n" @@ -3205,81 +2631,65 @@ msgid "" ">>> # ... add more components and then use register_shape()" msgstr "" -#: ../../library/turtle.rst:2507 msgid "See :ref:`compoundshapes`." msgstr "" -#: ../../library/turtle.rst:2512 msgid "" "A two-dimensional vector class, used as a helper class for implementing " "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" -#: ../../library/turtle.rst:2516 msgid "Provides (for *a*, *b* vectors, *k* number):" msgstr "" -#: ../../library/turtle.rst:2518 msgid "``a + b`` vector addition" msgstr "" -#: ../../library/turtle.rst:2519 msgid "``a - b`` vector subtraction" msgstr "" -#: ../../library/turtle.rst:2520 msgid "``a * b`` inner product" msgstr "" -#: ../../library/turtle.rst:2521 msgid "``k * a`` and ``a * k`` multiplication with scalar" msgstr "" -#: ../../library/turtle.rst:2522 msgid "``abs(a)`` absolute value of a" msgstr "" -#: ../../library/turtle.rst:2523 msgid "``a.rotate(angle)`` rotation" msgstr "" -#: ../../library/turtle.rst:2529 msgid "Explanation" msgstr "" -#: ../../library/turtle.rst:2531 msgid "" "A turtle object draws on a screen object, and there a number of key classes " "in the turtle object-oriented interface that can be used to create them and " "relate them to each other." msgstr "" -#: ../../library/turtle.rst:2535 msgid "" "A :class:`Turtle` instance will automatically create a :class:`Screen` " "instance if one is not already present." msgstr "" -#: ../../library/turtle.rst:2538 msgid "" "``Turtle`` is a subclass of :class:`RawTurtle`, which *doesn't* " "automatically create a drawing surface - a *canvas* will need to be provided " -"or created for it. The *canvas* can be a :class:`!" -"tkinter.Canvas`, :class:`ScrolledCanvas` or :class:`TurtleScreen`." +"or created for it. The *canvas* can be a :class:`!tkinter.Canvas`, :class:" +"`ScrolledCanvas` or :class:`TurtleScreen`." msgstr "" -#: ../../library/turtle.rst:2544 msgid "" -":class:`TurtleScreen` is the basic drawing surface for a " -"turtle. :class:`Screen` is a subclass of ``TurtleScreen``, and " -"includes :ref:`some additional methods ` for managing its " -"appearance (including size and title) and behaviour. ``TurtleScreen``'s " -"constructor needs a :class:`!tkinter.Canvas` or a :class:`ScrolledCanvas` as " -"an argument." +":class:`TurtleScreen` is the basic drawing surface for a turtle. :class:" +"`Screen` is a subclass of ``TurtleScreen``, and includes :ref:`some " +"additional methods ` for managing its appearance (including " +"size and title) and behaviour. ``TurtleScreen``'s constructor needs a :class:" +"`!tkinter.Canvas` or a :class:`ScrolledCanvas` as an argument." msgstr "" -#: ../../library/turtle.rst:2551 msgid "" "The functional interface for turtle graphics uses the various methods of " "``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " @@ -3288,38 +2698,31 @@ msgid "" "created whenever any of the functions derived from a Turtle method is called." msgstr "" -#: ../../library/turtle.rst:2557 msgid "" "To use multiple turtles on a screen, the object-oriented interface must be " "used." msgstr "" -#: ../../library/turtle.rst:2562 msgid "Help and configuration" msgstr "" -#: ../../library/turtle.rst:2565 msgid "How to use help" msgstr "" -#: ../../library/turtle.rst:2567 msgid "" "The public methods of the Screen and Turtle classes are documented " "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" -#: ../../library/turtle.rst:2571 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" -#: ../../library/turtle.rst:2574 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" -#: ../../library/turtle.rst:2576 msgid "" ">>> help(Screen.bgcolor)\n" "Help on method bgcolor in module turtle:\n" @@ -3351,13 +2754,11 @@ msgid "" " >>> turtle.penup()" msgstr "" -#: ../../library/turtle.rst:2605 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" -#: ../../library/turtle.rst:2608 msgid "" ">>> help(bgcolor)\n" "Help on function bgcolor in module turtle:\n" @@ -3391,28 +2792,23 @@ msgid "" " >>> penup()" msgstr "" -#: ../../library/turtle.rst:2639 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" -#: ../../library/turtle.rst:2644 msgid "Translation of docstrings into different languages" msgstr "" -#: ../../library/turtle.rst:2646 msgid "" "There is a utility to create a dictionary the keys of which are the method " "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" -#: ../../library/turtle.rst:2652 msgid "a string, used as filename" msgstr "" -#: ../../library/turtle.rst:2654 msgid "" "Create and write docstring-dictionary to a Python script with the given " "filename. This function has to be called explicitly (it is not used by the " @@ -3421,37 +2817,31 @@ msgid "" "for translation of the docstrings into different languages." msgstr "" -#: ../../library/turtle.rst:2660 msgid "" "If you (or your students) want to use :mod:`turtle` with online help in your " "native language, you have to translate the docstrings and save the resulting " "file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" -#: ../../library/turtle.rst:2664 msgid "" "If you have an appropriate entry in your :file:`turtle.cfg` file this " "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" -#: ../../library/turtle.rst:2667 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" -#: ../../library/turtle.rst:2673 msgid "How to configure Screen and Turtles" msgstr "" -#: ../../library/turtle.rst:2675 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." msgstr "" -#: ../../library/turtle.rst:2678 msgid "" "If you want to use a different configuration which better reflects the " "features of this module or which better fits to your needs, e.g. for use in " @@ -3460,12 +2850,10 @@ msgid "" "settings." msgstr "" -#: ../../library/turtle.rst:2683 msgid "" "The built in configuration would correspond to the following ``turtle.cfg``:" msgstr "" -#: ../../library/turtle.rst:2685 msgid "" "width = 0.5\n" "height = 0.75\n" @@ -3489,50 +2877,41 @@ msgid "" "using_IDLE = False" msgstr "" -#: ../../library/turtle.rst:2708 msgid "Short explanation of selected entries:" msgstr "" -#: ../../library/turtle.rst:2710 msgid "" "The first four lines correspond to the arguments of the :func:`Screen.setup " "` method." msgstr "" -#: ../../library/turtle.rst:2712 msgid "" -"Line 5 and 6 correspond to the arguments of the " -"method :func:`Screen.screensize `." +"Line 5 and 6 correspond to the arguments of the method :func:`Screen." +"screensize `." msgstr "" -#: ../../library/turtle.rst:2714 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" -#: ../../library/turtle.rst:2716 msgid "" "If you want to use no fill color (i.e. make the turtle transparent), you " "have to write ``fillcolor = \"\"`` (but all nonempty strings must not have " "quotes in the cfg file)." msgstr "" -#: ../../library/turtle.rst:2719 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" -#: ../../library/turtle.rst:2721 msgid "" -"If you set e.g. ``language = italian`` the " -"docstringdict :file:`turtle_docstringdict_italian.py` will be loaded at " -"import time (if present on the import path, e.g. in the same directory " -"as :mod:`turtle`)." +"If you set e.g. ``language = italian`` the docstringdict :file:" +"`turtle_docstringdict_italian.py` will be loaded at import time (if present " +"on the import path, e.g. in the same directory as :mod:`turtle`)." msgstr "" -#: ../../library/turtle.rst:2724 msgid "" "The entries *exampleturtle* and *examplescreen* define the names of these " "objects as they occur in the docstrings. The transformation of method-" @@ -3540,309 +2919,238 @@ msgid "" "docstrings." msgstr "" -#: ../../library/turtle.rst:2728 msgid "" "*using_IDLE*: Set this to ``True`` if you regularly work with IDLE and its " "``-n`` switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" -#: ../../library/turtle.rst:2732 msgid "" "There can be a :file:`turtle.cfg` file in the directory where :mod:`turtle` " "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" -#: ../../library/turtle.rst:2736 msgid "" "The :file:`Lib/turtledemo` directory contains a :file:`turtle.cfg` file. " "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" -#: ../../library/turtle.rst:2742 msgid ":mod:`turtledemo` --- Demo scripts" msgstr "" -#: ../../library/turtle.rst:2747 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" msgstr "" -#: ../../library/turtle.rst:2750 msgid "python -m turtledemo" msgstr "" -#: ../../library/turtle.rst:2752 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" -#: ../../library/turtle.rst:2754 msgid "python -m turtledemo.bytedesign" msgstr "" -#: ../../library/turtle.rst:2756 msgid "The :mod:`turtledemo` package directory contains:" msgstr "" -#: ../../library/turtle.rst:2758 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." msgstr "" -#: ../../library/turtle.rst:2760 msgid "" "Multiple scripts demonstrating different features of the :mod:`turtle` " "module. Examples can be accessed via the Examples menu. They can also be " "run standalone." msgstr "" -#: ../../library/turtle.rst:2763 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" -#: ../../library/turtle.rst:2766 msgid "The demo scripts are:" msgstr "" -#: ../../library/turtle.rst:2773 msgid "Name" msgstr "" -#: ../../library/turtle.rst:2773 msgid "Description" msgstr "" -#: ../../library/turtle.rst:2773 msgid "Features" msgstr "" -#: ../../library/turtle.rst:2775 msgid "bytedesign" msgstr "" -#: ../../library/turtle.rst:2775 msgid "complex classical turtle graphics pattern" msgstr "" -#: ../../library/turtle.rst:2775 msgid ":func:`tracer`, delay, :func:`update`" msgstr "" -#: ../../library/turtle.rst:2778 msgid "chaos" msgstr "" -#: ../../library/turtle.rst:2778 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" -#: ../../library/turtle.rst:2778 msgid "world coordinates" msgstr "" -#: ../../library/turtle.rst:2784 msgid "clock" msgstr "" -#: ../../library/turtle.rst:2784 msgid "analog clock showing time of your computer" msgstr "" -#: ../../library/turtle.rst:2784 msgid "turtles as clock's hands, ontimer" msgstr "" -#: ../../library/turtle.rst:2787 msgid "colormixer" msgstr "" -#: ../../library/turtle.rst:2787 msgid "experiment with r, g, b" msgstr "" -#: ../../library/turtle.rst:2789 msgid "forest" msgstr "" -#: ../../library/turtle.rst:2789 msgid "3 breadth-first trees" msgstr "" -#: ../../library/turtle.rst:2789 msgid "randomization" msgstr "" -#: ../../library/turtle.rst:2791 msgid "fractalcurves" msgstr "" -#: ../../library/turtle.rst:2791 msgid "Hilbert & Koch curves" msgstr "" -#: ../../library/turtle.rst:2791 msgid "recursion" msgstr "" -#: ../../library/turtle.rst:2793 msgid "lindenmayer" msgstr "" -#: ../../library/turtle.rst:2793 msgid "ethnomathematics (indian kolams)" msgstr "" -#: ../../library/turtle.rst:2793 msgid "L-System" msgstr "" -#: ../../library/turtle.rst:2796 msgid "minimal_hanoi" msgstr "" -#: ../../library/turtle.rst:2796 msgid "Towers of Hanoi" msgstr "" -#: ../../library/turtle.rst:2796 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" msgstr "" -#: ../../library/turtle.rst:2800 msgid "nim" msgstr "" -#: ../../library/turtle.rst:2800 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" -#: ../../library/turtle.rst:2800 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" -#: ../../library/turtle.rst:2804 msgid "paint" msgstr "" -#: ../../library/turtle.rst:2804 msgid "super minimalistic drawing program" msgstr "" -#: ../../library/turtle.rst:2807 msgid "peace" msgstr "" -#: ../../library/turtle.rst:2807 msgid "elementary" msgstr "" -#: ../../library/turtle.rst:2807 msgid "turtle: appearance and animation" msgstr "" -#: ../../library/turtle.rst:2810 msgid "penrose" msgstr "" -#: ../../library/turtle.rst:2810 msgid "aperiodic tiling with kites and darts" msgstr "" -#: ../../library/turtle.rst:2813 msgid "planet_and_moon" msgstr "" -#: ../../library/turtle.rst:2813 msgid "simulation of gravitational system" msgstr "" -#: ../../library/turtle.rst:2813 msgid "compound shapes, :class:`Vec2D`" msgstr "" -#: ../../library/turtle.rst:2816 msgid "rosette" msgstr "" -#: ../../library/turtle.rst:2816 msgid "a pattern from the wikipedia article on turtle graphics" msgstr "" -#: ../../library/turtle.rst:2816 msgid ":func:`clone`, :func:`undo`" msgstr "" -#: ../../library/turtle.rst:2819 msgid "round_dance" msgstr "" -#: ../../library/turtle.rst:2819 msgid "dancing turtles rotating pairwise in opposite direction" msgstr "" -#: ../../library/turtle.rst:2819 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" msgstr "" -#: ../../library/turtle.rst:2823 msgid "sorting_animate" msgstr "" -#: ../../library/turtle.rst:2823 msgid "visual demonstration of different sorting methods" msgstr "" -#: ../../library/turtle.rst:2823 msgid "simple alignment, randomization" msgstr "" -#: ../../library/turtle.rst:2826 msgid "tree" msgstr "" -#: ../../library/turtle.rst:2826 msgid "a (graphical) breadth first tree (using generators)" msgstr "" -#: ../../library/turtle.rst:2829 msgid "two_canvases" msgstr "" -#: ../../library/turtle.rst:2829 msgid "simple design" msgstr "" -#: ../../library/turtle.rst:2829 msgid "turtles on two canvases" msgstr "" -#: ../../library/turtle.rst:2832 msgid "yinyang" msgstr "" -#: ../../library/turtle.rst:2832 msgid "another elementary example" msgstr "" -#: ../../library/turtle.rst:2835 msgid "Have fun!" msgstr "" -#: ../../library/turtle.rst:2839 msgid "Changes since Python 2.6" msgstr "" -#: ../../library/turtle.rst:2841 msgid "" "The methods :func:`Turtle.tracer `, :func:`Turtle.window_width " "` and :func:`Turtle.window_height ` have been " @@ -3853,14 +3161,12 @@ msgid "" "methods.)" msgstr "" -#: ../../library/turtle.rst:2849 msgid "" -"The method :func:`!Turtle.fill` has been eliminated. The behaviour " -"of :func:`begin_fill` and :func:`end_fill` have changed slightly: now every " -"filling process must be completed with an ``end_fill()`` call." +"The method :func:`!Turtle.fill` has been eliminated. The behaviour of :func:" +"`begin_fill` and :func:`end_fill` have changed slightly: now every filling " +"process must be completed with an ``end_fill()`` call." msgstr "" -#: ../../library/turtle.rst:2854 msgid "" "A method :func:`Turtle.filling ` has been added. It returns a " "boolean value: ``True`` if a filling process is under way, ``False`` " @@ -3868,36 +3174,31 @@ msgid "" "in Python 2.6." msgstr "" -#: ../../library/turtle.rst:2860 msgid "Changes since Python 3.0" msgstr "" -#: ../../library/turtle.rst:2862 msgid "" -"The :class:`Turtle` methods :func:`shearfactor`, :func:`shapetransform` " -"and :func:`get_shapepoly` have been added. Thus the full range of regular " -"linear transforms is now available for transforming turtle " -"shapes. :func:`tiltangle` has been enhanced in functionality: it now can be " -"used to get or set the tilt angle." +"The :class:`Turtle` methods :func:`shearfactor`, :func:`shapetransform` and :" +"func:`get_shapepoly` have been added. Thus the full range of regular linear " +"transforms is now available for transforming turtle shapes. :func:" +"`tiltangle` has been enhanced in functionality: it now can be used to get or " +"set the tilt angle." msgstr "" -#: ../../library/turtle.rst:2868 msgid "" "The :class:`Screen` method :func:`onkeypress` has been added as a complement " "to :func:`onkey`. As the latter binds actions to the key release event, an " "alias: :func:`onkeyrelease` was also added for it." msgstr "" -#: ../../library/turtle.rst:2872 msgid "" "The method :func:`Screen.mainloop ` has been added, so there is no " "longer a need to use the standalone :func:`mainloop` function when working " "with :class:`Screen` and :class:`Turtle` objects." msgstr "" -#: ../../library/turtle.rst:2876 msgid "" -"Two input methods have been added: :func:`Screen.textinput ` " -"and :func:`Screen.numinput `. These pop up input dialogs and " -"return strings and numbers respectively." +"Two input methods have been added: :func:`Screen.textinput ` and :" +"func:`Screen.numinput `. These pop up input dialogs and return " +"strings and numbers respectively." msgstr "" diff --git a/library/types.po b/library/types.po index a1a6869..cedcf48 100644 --- a/library/types.po +++ b/library/types.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,49 +22,40 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/types.rst:2 msgid ":mod:`!types` --- Dynamic type creation and names for built-in types" msgstr "" -#: ../../library/types.rst:7 msgid "**Source code:** :source:`Lib/types.py`" msgstr "" -#: ../../library/types.rst:11 msgid "" "This module defines utility functions to assist in dynamic creation of new " "types." msgstr "" -#: ../../library/types.rst:14 msgid "" "It also defines names for some object types that are used by the standard " -"Python interpreter, but not exposed as builtins like :class:`int` " -"or :class:`str` are." +"Python interpreter, but not exposed as builtins like :class:`int` or :class:" +"`str` are." msgstr "" -#: ../../library/types.rst:18 msgid "" "Finally, it provides some additional type-related utility classes and " "functions that are not fundamental enough to be builtins." msgstr "" -#: ../../library/types.rst:23 msgid "Dynamic Type Creation" msgstr "" -#: ../../library/types.rst:27 msgid "Creates a class object dynamically using the appropriate metaclass." msgstr "" -#: ../../library/types.rst:29 msgid "" "The first three arguments are the components that make up a class definition " "header: the class name, the base classes (in order), the keyword arguments " "(such as ``metaclass``)." msgstr "" -#: ../../library/types.rst:33 msgid "" "The *exec_body* argument is a callback that is used to populate the freshly " "created class namespace. It should accept the class namespace as its sole " @@ -73,22 +64,18 @@ msgid "" "None``." msgstr "" -#: ../../library/types.rst:43 msgid "Calculates the appropriate metaclass and creates the class namespace." msgstr "" -#: ../../library/types.rst:45 msgid "" "The arguments are the components that make up a class definition header: the " "class name, the base classes (in order) and the keyword arguments (such as " "``metaclass``)." msgstr "" -#: ../../library/types.rst:49 msgid "The return value is a 3-tuple: ``metaclass, namespace, kwds``" msgstr "" -#: ../../library/types.rst:51 msgid "" "*metaclass* is the appropriate metaclass, *namespace* is the prepared class " "namespace and *kwds* is an updated copy of the passed in *kwds* argument " @@ -96,44 +83,36 @@ msgid "" "this will be an empty dict." msgstr "" -#: ../../library/types.rst:60 msgid "" "The default value for the ``namespace`` element of the returned tuple has " "changed. Now an insertion-order-preserving mapping is used when the " "metaclass does not have a ``__prepare__`` method." msgstr "" -#: ../../library/types.rst:66 msgid ":ref:`metaclasses`" msgstr "" -#: ../../library/types.rst:67 msgid "Full details of the class creation process supported by these functions" msgstr "" -#: ../../library/types.rst:69 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: ../../library/types.rst:70 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -#: ../../library/types.rst:74 msgid "Resolve MRO entries dynamically as specified by :pep:`560`." msgstr "" -#: ../../library/types.rst:76 msgid "" -"This function looks for items in *bases* that are not instances " -"of :class:`type`, and returns a tuple where each such object that has " -"an :meth:`~object.__mro_entries__` method is replaced with an unpacked " -"result of calling this method. If a *bases* item is an instance " -"of :class:`type`, or it doesn't have an :meth:`!__mro_entries__` method, " -"then it is included in the return tuple unchanged." +"This function looks for items in *bases* that are not instances of :class:" +"`type`, and returns a tuple where each such object that has an :meth:" +"`~object.__mro_entries__` method is replaced with an unpacked result of " +"calling this method. If a *bases* item is an instance of :class:`type`, or " +"it doesn't have an :meth:`!__mro_entries__` method, then it is included in " +"the return tuple unchanged." msgstr "" -#: ../../library/types.rst:87 msgid "" "Return the tuple of objects originally given as the bases of *cls* before " "the :meth:`~object.__mro_entries__` method has been called on any bases " @@ -141,7 +120,6 @@ msgid "" "introspecting :ref:`Generics `." msgstr "" -#: ../../library/types.rst:92 msgid "" "For classes that have an ``__orig_bases__`` attribute, this function returns " "the value of ``cls.__orig_bases__``. For classes without the " @@ -149,11 +127,9 @@ msgid "" "returned." msgstr "" -#: ../../library/types.rst:97 msgid "Examples::" msgstr "Példák::" -#: ../../library/types.rst:99 msgid "" "from typing import TypeVar, Generic, NamedTuple, TypedDict\n" "\n" @@ -180,15 +156,12 @@ msgid "" "assert get_original_bases(int) == (object,)" msgstr "" -#: ../../library/types.rst:127 msgid ":pep:`560` - Core support for typing module and generic types" msgstr "" -#: ../../library/types.rst:131 msgid "Standard Interpreter Types" msgstr "" -#: ../../library/types.rst:133 msgid "" "This module provides names for many of the types that are required to " "implement a Python interpreter. It deliberately avoids including some of the " @@ -196,147 +169,121 @@ msgid "" "``listiterator`` type." msgstr "" -#: ../../library/types.rst:138 msgid "" "Typical use of these names is for :func:`isinstance` or :func:`issubclass` " "checks." msgstr "" -#: ../../library/types.rst:142 msgid "" "If you instantiate any of these types, note that signatures may vary between " "Python versions." msgstr "" -#: ../../library/types.rst:144 msgid "Standard names are defined for the following types:" msgstr "" -#: ../../library/types.rst:148 msgid "The type of :data:`None`." msgstr "" -#: ../../library/types.rst:156 msgid "" -"The type of user-defined functions and functions created " -"by :keyword:`lambda` expressions." +"The type of user-defined functions and functions created by :keyword:" +"`lambda` expressions." msgstr "" -#: ../../library/types.rst:159 msgid "" "Raises an :ref:`auditing event ` ``function.__new__`` with " "argument ``code``." msgstr "" -#: ../../library/types.rst:161 msgid "" "The audit event only occurs for direct instantiation of function objects, " "and is not raised for normal compilation." msgstr "" -#: ../../library/types.rst:167 msgid "" "The type of :term:`generator`-iterator objects, created by generator " "functions." msgstr "" -#: ../../library/types.rst:173 msgid "" "The type of :term:`coroutine` objects, created by :keyword:`async def` " "functions." msgstr "" -#: ../../library/types.rst:181 msgid "" "The type of :term:`asynchronous generator`-iterator objects, created by " "asynchronous generator functions." msgstr "" -#: ../../library/types.rst:191 msgid "" -"The type of :ref:`code objects ` such as returned " -"by :func:`compile`." +"The type of :ref:`code objects ` such as returned by :func:" +"`compile`." msgstr "" -#: ../../library/types.rst:193 msgid "" "Raises an :ref:`auditing event ` ``code.__new__`` with arguments " "``code``, ``filename``, ``name``, ``argcount``, ``posonlyargcount``, " "``kwonlyargcount``, ``nlocals``, ``stacksize``, ``flags``." msgstr "" -#: ../../library/types.rst:195 msgid "" "Note that the audited arguments may not match the names or positions " "required by the initializer. The audit event only occurs for direct " "instantiation of code objects, and is not raised for normal compilation." msgstr "" -#: ../../library/types.rst:201 msgid "" "The type for cell objects: such objects are used as containers for a " "function's :term:`closure variables `." msgstr "" -#: ../../library/types.rst:209 msgid "The type of methods of user-defined class instances." msgstr "" -#: ../../library/types.rst:215 msgid "" "The type of built-in functions like :func:`len` or :func:`sys.exit`, and " "methods of built-in classes. (Here, the term \"built-in\" means \"written " "in C\".)" msgstr "" -#: ../../library/types.rst:222 msgid "" -"The type of methods of some built-in data types and base classes such " -"as :meth:`object.__init__` or :meth:`object.__lt__`." +"The type of methods of some built-in data types and base classes such as :" +"meth:`object.__init__` or :meth:`object.__lt__`." msgstr "" -#: ../../library/types.rst:230 msgid "" "The type of *bound* methods of some built-in data types and base classes. " "For example it is the type of :code:`object().__str__`." msgstr "" -#: ../../library/types.rst:238 msgid "The type of :data:`NotImplemented`." msgstr "" -#: ../../library/types.rst:245 msgid "" "The type of methods of some built-in data types such as :meth:`str.join`." msgstr "" -#: ../../library/types.rst:252 msgid "" "The type of *unbound* class methods of some built-in data types such as " "``dict.__dict__['fromkeys']``." msgstr "" -#: ../../library/types.rst:260 msgid "" "The type of :term:`modules `. The constructor takes the name of the " "module to be created and optionally its :term:`docstring`." msgstr "" -#: ../../library/types.rst:265 msgid ":ref:`Documentation on module objects `" msgstr "" -#: ../../library/types.rst:266 msgid "" "Provides details on the special attributes that can be found on instances " "of :class:`!ModuleType`." msgstr "" -#: ../../library/types.rst:269 msgid ":func:`importlib.util.module_from_spec`" msgstr "" -#: ../../library/types.rst:270 msgid "" "Modules created using the :class:`!ModuleType` constructor are created with " "many of their special attributes unset or set to default values. :func:`!" @@ -345,24 +292,20 @@ msgid "" "appropriately." msgstr "" -#: ../../library/types.rst:278 msgid "The type of :data:`Ellipsis`." msgstr "" -#: ../../library/types.rst:284 msgid "" "The type of :ref:`parameterized generics ` such as " "``list[int]``." msgstr "" -#: ../../library/types.rst:287 msgid "" "``t_origin`` should be a non-parameterized generic class, such as ``list``, " "``tuple`` or ``dict``. ``t_args`` should be a :class:`tuple` (possibly of " "length 1) of types which parameterize ``t_origin``::" msgstr "" -#: ../../library/types.rst:291 msgid "" ">>> from types import GenericAlias\n" "\n" @@ -372,54 +315,43 @@ msgid "" "True" msgstr "" -#: ../../library/types.rst:300 msgid "This type can now be subclassed." msgstr "" -#: ../../library/types.rst:305 msgid ":ref:`Generic Alias Types`" msgstr "" -#: ../../library/types.rst:306 msgid "In-depth documentation on instances of :class:`!types.GenericAlias`" msgstr "" -#: ../../library/types.rst:308 msgid ":pep:`585` - Type Hinting Generics In Standard Collections" msgstr "" -#: ../../library/types.rst:309 msgid "Introducing the :class:`!types.GenericAlias` class" msgstr "" -#: ../../library/types.rst:313 msgid "The type of :ref:`union type expressions`." msgstr "" -#: ../../library/types.rst:319 msgid "This is now an alias for :class:`typing.Union`." msgstr "" -#: ../../library/types.rst:323 msgid "" -"The type of traceback objects such as found in " -"``sys.exception().__traceback__``." +"The type of traceback objects such as found in ``sys.exception()." +"__traceback__``." msgstr "" -#: ../../library/types.rst:325 msgid "" "See :ref:`the language reference ` for details of the " "available attributes and operations, and guidance on creating tracebacks " "dynamically." msgstr "" -#: ../../library/types.rst:332 msgid "" -"The type of :ref:`frame objects ` such as found " -"in :attr:`tb.tb_frame ` if ``tb`` is a traceback object." +"The type of :ref:`frame objects ` such as found in :attr:`tb." +"tb_frame ` if ``tb`` is a traceback object." msgstr "" -#: ../../library/types.rst:338 msgid "" "The type of objects defined in extension modules with ``PyGetSetDef``, such " "as :attr:`FrameType.f_locals ` or ``array.array.typecode``. " @@ -428,7 +360,6 @@ msgid "" "modules." msgstr "" -#: ../../library/types.rst:347 msgid "" "The type of objects defined in extension modules with ``PyMemberDef``, such " "as ``datetime.timedelta.days``. This type is used as descriptor for simple " @@ -437,7 +368,6 @@ msgid "" "modules." msgstr "" -#: ../../library/types.rst:352 msgid "" "In addition, when a class is defined with a :attr:`~object.__slots__` " "attribute, then for each slot, an instance of :class:`!MemberDescriptorType` " @@ -445,115 +375,93 @@ msgid "" "in the class's :attr:`~type.__dict__`." msgstr "" -#: ../../library/types.rst:358 msgid "" "In other implementations of Python, this type may be identical to " "``GetSetDescriptorType``." msgstr "" -#: ../../library/types.rst:363 msgid "" "Read-only proxy of a mapping. It provides a dynamic view on the mapping's " "entries, which means that when the mapping changes, the view reflects these " "changes." msgstr "" -#: ../../library/types.rst:371 msgid "" "Updated to support the new union (``|``) operator from :pep:`584`, which " "simply delegates to the underlying mapping." msgstr "" -#: ../../library/types.rst:376 msgid "" "Return ``True`` if the underlying mapping has a key *key*, else ``False``." msgstr "" -#: ../../library/types.rst:381 msgid "" -"Return the item of the underlying mapping with key *key*. Raises " -"a :exc:`KeyError` if *key* is not in the underlying mapping." +"Return the item of the underlying mapping with key *key*. Raises a :exc:" +"`KeyError` if *key* is not in the underlying mapping." msgstr "" -#: ../../library/types.rst:386 msgid "" "Return an iterator over the keys of the underlying mapping. This is a " "shortcut for ``iter(proxy.keys())``." msgstr "" -#: ../../library/types.rst:391 msgid "Return the number of items in the underlying mapping." msgstr "" -#: ../../library/types.rst:395 msgid "Return a shallow copy of the underlying mapping." msgstr "" -#: ../../library/types.rst:399 msgid "" "Return the value for *key* if *key* is in the underlying mapping, else " "*default*. If *default* is not given, it defaults to ``None``, so that this " "method never raises a :exc:`KeyError`." msgstr "" -#: ../../library/types.rst:405 msgid "" "Return a new view of the underlying mapping's items (``(key, value)`` pairs)." msgstr "" -#: ../../library/types.rst:410 msgid "Return a new view of the underlying mapping's keys." msgstr "" -#: ../../library/types.rst:414 msgid "Return a new view of the underlying mapping's values." msgstr "" -#: ../../library/types.rst:418 msgid "Return a reverse iterator over the keys of the underlying mapping." msgstr "" -#: ../../library/types.rst:424 msgid "Return a hash of the underlying mapping." msgstr "" -#: ../../library/types.rst:430 msgid "The type of :ref:`capsule objects `." msgstr "" -#: ../../library/types.rst:436 msgid "Additional Utility Classes and Functions" msgstr "" -#: ../../library/types.rst:440 msgid "" "A simple :class:`object` subclass that provides attribute access to its " "namespace, as well as a meaningful repr." msgstr "" -#: ../../library/types.rst:443 msgid "" "Unlike :class:`object`, with :class:`!SimpleNamespace` you can add and " "remove attributes." msgstr "" -#: ../../library/types.rst:446 msgid "" -":py:class:`SimpleNamespace` objects may be initialized in the same way " -"as :class:`dict`: either with keyword arguments, with a single positional " +":py:class:`SimpleNamespace` objects may be initialized in the same way as :" +"class:`dict`: either with keyword arguments, with a single positional " "argument, or with both. When initialized with keyword arguments, those are " "directly added to the underlying namespace. Alternatively, when initialized " "with a positional argument, the underlying namespace will be updated with " -"key-value pairs from that argument (either a mapping object or " -"an :term:`iterable` object producing key-value pairs). All such keys must be " -"strings." +"key-value pairs from that argument (either a mapping object or an :term:" +"`iterable` object producing key-value pairs). All such keys must be strings." msgstr "" -#: ../../library/types.rst:457 msgid "The type is roughly equivalent to the following code::" msgstr "" -#: ../../library/types.rst:459 msgid "" "class SimpleNamespace:\n" " def __init__(self, mapping_or_iterable=(), /, **kwargs):\n" @@ -571,33 +479,27 @@ msgid "" " return NotImplemented" msgstr "" -#: ../../library/types.rst:473 msgid "" "``SimpleNamespace`` may be useful as a replacement for ``class NS: pass``. " "However, for a structured record type use :func:`~collections.namedtuple` " "instead." msgstr "" -#: ../../library/types.rst:477 msgid "" ":class:`!SimpleNamespace` objects are supported by :func:`copy.replace`." msgstr "" -#: ../../library/types.rst:481 msgid "" "Attribute order in the repr changed from alphabetical to insertion (like " "``dict``)." msgstr "" -#: ../../library/types.rst:485 msgid "Added support for an optional positional argument." msgstr "" -#: ../../library/types.rst:490 msgid "Route attribute access on a class to __getattr__." msgstr "" -#: ../../library/types.rst:492 msgid "" "This is a descriptor, used to define attributes that act differently when " "accessed through an instance and through a class. Instance access remains " @@ -605,32 +507,27 @@ msgid "" "class's __getattr__ method; this is done by raising AttributeError." msgstr "" -#: ../../library/types.rst:497 msgid "" "This allows one to have properties active on an instance, and have virtual " "attributes on the class with the same name (see :class:`enum.Enum` for an " "example)." msgstr "" -#: ../../library/types.rst:504 msgid "Coroutine Utility Functions" msgstr "" -#: ../../library/types.rst:508 msgid "" -"This function transforms a :term:`generator` function into " -"a :term:`coroutine function` which returns a generator-based coroutine. The " +"This function transforms a :term:`generator` function into a :term:" +"`coroutine function` which returns a generator-based coroutine. The " "generator-based coroutine is still a :term:`generator iterator`, but is also " "considered to be a :term:`coroutine` object and is :term:`awaitable`. " "However, it may not necessarily implement the :meth:`~object.__await__` " "method." msgstr "" -#: ../../library/types.rst:515 msgid "If *gen_func* is a generator function, it will be modified in-place." msgstr "" -#: ../../library/types.rst:517 msgid "" "If *gen_func* is not a generator function, it will be wrapped. If it returns " "an instance of :class:`collections.abc.Generator`, the instance will be " @@ -638,10 +535,8 @@ msgid "" "returned as is." msgstr "" -#: ../../library/types.rst:189 msgid "built-in function" msgstr "" -#: ../../library/types.rst:189 msgid "compile" msgstr "" diff --git a/library/typing.po b/library/typing.po index 5f33f4c..d3a2ccb 100644 --- a/library/typing.po +++ b/library/typing.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,113 +18,93 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/typing.rst:3 msgid ":mod:`!typing` --- Support for type hints" msgstr "" -#: ../../library/typing.rst:16 msgid "**Source code:** :source:`Lib/typing.py`" msgstr "" -#: ../../library/typing.rst:20 msgid "" "The Python runtime does not enforce function and variable type annotations. " "They can be used by third party tools such as :term:`type checkers `, IDEs, linters, etc." msgstr "" -#: ../../library/typing.rst:26 msgid "This module provides runtime support for type hints." msgstr "" -#: ../../library/typing.rst:28 msgid "Consider the function below::" msgstr "" -#: ../../library/typing.rst:30 msgid "" "def surface_area_of_cube(edge_length: float) -> str:\n" " return f\"The surface area of the cube is {6 * edge_length ** 2}.\"" msgstr "" -#: ../../library/typing.rst:33 msgid "" "The function ``surface_area_of_cube`` takes an argument expected to be an " "instance of :class:`float`, as indicated by the :term:`type hint` " -"``edge_length: float``. The function is expected to return an instance " -"of :class:`str`, as indicated by the ``-> str`` hint." +"``edge_length: float``. The function is expected to return an instance of :" +"class:`str`, as indicated by the ``-> str`` hint." msgstr "" -#: ../../library/typing.rst:38 msgid "" "While type hints can be simple classes like :class:`float` or :class:`str`, " "they can also be more complex. The :mod:`typing` module provides a " "vocabulary of more advanced type hints." msgstr "" -#: ../../library/typing.rst:42 msgid "" -"New features are frequently added to the ``typing`` module. " -"The :pypi:`typing_extensions` package provides backports of these new " -"features to older versions of Python." +"New features are frequently added to the ``typing`` module. The :pypi:" +"`typing_extensions` package provides backports of these new features to " +"older versions of Python." msgstr "" -#: ../../library/typing.rst:48 msgid "" -"`\"Typing cheat sheet\" `_" +"`Typing cheat sheet `_" msgstr "" -#: ../../library/typing.rst:49 msgid "A quick overview of type hints (hosted at the mypy docs)" msgstr "" -#: ../../library/typing.rst:51 msgid "" -"\"Type System Reference\" section of `the mypy docs `_" +"Type System Reference section of `the mypy docs `_" msgstr "" -#: ../../library/typing.rst:52 msgid "" "The Python typing system is standardised via PEPs, so this reference should " "broadly apply to most Python type checkers. (Some parts may still be " "specific to mypy.)" msgstr "" -#: ../../library/typing.rst:56 -msgid "`\"Static Typing with Python\" `_" +msgid "`Static Typing with Python `_" msgstr "" -#: ../../library/typing.rst:57 msgid "" "Type-checker-agnostic documentation written by the community detailing type " "system features, useful typing related tools and typing best practices." msgstr "" -#: ../../library/typing.rst:64 msgid "Specification for the Python Type System" msgstr "" -#: ../../library/typing.rst:66 msgid "" "The canonical, up-to-date specification of the Python type system can be " -"found at `\"Specification for the Python type system\" `_." +"found at `Specification for the Python type system `_." msgstr "" -#: ../../library/typing.rst:72 msgid "Type aliases" msgstr "" -#: ../../library/typing.rst:74 msgid "" "A type alias is defined using the :keyword:`type` statement, which creates " "an instance of :class:`TypeAliasType`. In this example, ``Vector`` and " "``list[float]`` will be treated equivalently by static type checkers::" msgstr "" -#: ../../library/typing.rst:79 msgid "" "type Vector = list[float]\n" "\n" @@ -135,13 +115,11 @@ msgid "" "new_vector = scale(2.0, [1.0, -4.2, 5.4])" msgstr "" -#: ../../library/typing.rst:87 msgid "" "Type aliases are useful for simplifying complex type signatures. For " "example::" msgstr "" -#: ../../library/typing.rst:89 msgid "" "from collections.abc import Sequence\n" "\n" @@ -161,38 +139,31 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:106 msgid "" "The :keyword:`type` statement is new in Python 3.12. For backwards " "compatibility, type aliases can also be created through simple assignment::" msgstr "" -#: ../../library/typing.rst:109 msgid "Vector = list[float]" msgstr "" -#: ../../library/typing.rst:111 msgid "" "Or marked with :data:`TypeAlias` to make it explicit that this is a type " "alias, not a normal variable assignment::" msgstr "" -#: ../../library/typing.rst:114 msgid "" "from typing import TypeAlias\n" "\n" "Vector: TypeAlias = list[float]" msgstr "" -#: ../../library/typing.rst:121 msgid "NewType" msgstr "" -#: ../../library/typing.rst:123 msgid "Use the :class:`NewType` helper to create distinct types::" msgstr "" -#: ../../library/typing.rst:125 msgid "" "from typing import NewType\n" "\n" @@ -200,13 +171,11 @@ msgid "" "some_id = UserId(524313)" msgstr "" -#: ../../library/typing.rst:130 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. This is useful in helping catch logical errors::" msgstr "" -#: ../../library/typing.rst:133 msgid "" "def get_user_name(user_id: UserId) -> str:\n" " ...\n" @@ -218,7 +187,6 @@ msgid "" "user_b = get_user_name(-1)" msgstr "" -#: ../../library/typing.rst:142 msgid "" "You may still perform all ``int`` operations on a variable of type " "``UserId``, but the result will always be of type ``int``. This lets you " @@ -226,13 +194,11 @@ msgid "" "you from accidentally creating a ``UserId`` in an invalid way::" msgstr "" -#: ../../library/typing.rst:147 msgid "" "# 'output' is of type 'int', not 'UserId'\n" "output = UserId(23413) + UserId(54341)" msgstr "" -#: ../../library/typing.rst:150 msgid "" "Note that these checks are enforced only by the static type checker. At " "runtime, the statement ``Derived = NewType('Derived', Base)`` will make " @@ -241,17 +207,14 @@ msgid "" "class or introduce much overhead beyond that of a regular function call." msgstr "" -#: ../../library/typing.rst:156 msgid "" "More precisely, the expression ``some_value is Derived(some_value)`` is " "always true at runtime." msgstr "" -#: ../../library/typing.rst:159 msgid "It is invalid to create a subtype of ``Derived``::" msgstr "" -#: ../../library/typing.rst:161 msgid "" "from typing import NewType\n" "\n" @@ -261,13 +224,11 @@ msgid "" "class AdminUserId(UserId): pass" msgstr "" -#: ../../library/typing.rst:168 msgid "" "However, it is possible to create a :class:`NewType` based on a 'derived' " "``NewType``::" msgstr "" -#: ../../library/typing.rst:170 msgid "" "from typing import NewType\n" "\n" @@ -276,15 +237,12 @@ msgid "" "ProUserId = NewType('ProUserId', UserId)" msgstr "" -#: ../../library/typing.rst:176 msgid "and typechecking for ``ProUserId`` will work as expected." msgstr "" -#: ../../library/typing.rst:178 msgid "See :pep:`484` for more details." msgstr "" -#: ../../library/typing.rst:182 msgid "" "Recall that the use of a type alias declares two types to be *equivalent* to " "one another. Doing ``type Alias = Original`` will make the static type " @@ -292,7 +250,6 @@ msgid "" "cases. This is useful when you want to simplify complex type signatures." msgstr "" -#: ../../library/typing.rst:187 msgid "" "In contrast, ``NewType`` declares one type to be a *subtype* of another. " "Doing ``Derived = NewType('Derived', Original)`` will make the static type " @@ -302,38 +259,30 @@ msgid "" "errors with minimal runtime cost." msgstr "" -#: ../../library/typing.rst:196 msgid "" "``NewType`` is now a class rather than a function. As a result, there is " "some additional runtime cost when calling ``NewType`` over a regular " "function." msgstr "" -#: ../../library/typing.rst:201 msgid "" "The performance of calling ``NewType`` has been restored to its level in " "Python 3.9." msgstr "" -#: ../../library/typing.rst:208 msgid "Annotating callable objects" msgstr "" -#: ../../library/typing.rst:210 msgid "" -"Functions -- or other :term:`callable` objects -- can be annotated " -"using :class:`collections.abc.Callable` or " -"deprecated :data:`typing.Callable`. ``Callable[[int], str]`` signifies a " -"function that takes a single parameter of type :class:`int` and returns " -"a :class:`str`." +"Functions -- or other :term:`callable` objects -- can be annotated using :" +"class:`collections.abc.Callable` or deprecated :data:`typing.Callable`. " +"``Callable[[int], str]`` signifies a function that takes a single parameter " +"of type :class:`int` and returns a :class:`str`." msgstr "" -#: ../../library/typing.rst:215 ../../library/typing.rst:3281 -#: ../../library/typing.rst:3461 msgid "For example:" msgstr "" -#: ../../library/typing.rst:217 msgid "" "from collections.abc import Callable, Awaitable\n" "\n" @@ -350,21 +299,18 @@ msgid "" "callback: Callable[[str], Awaitable[None]] = on_update" msgstr "" -#: ../../library/typing.rst:233 msgid "" "The subscription syntax must always be used with exactly two values: the " "argument list and the return type. The argument list must be a list of " -"types, a :class:`ParamSpec`, :data:`Concatenate`, or an ellipsis. The return " -"type must be a single type." +"types, a :class:`ParamSpec`, :data:`Concatenate`, or an ellipsis (``...``). " +"The return type must be a single type." msgstr "" -#: ../../library/typing.rst:238 msgid "" "If a literal ellipsis ``...`` is given as the argument list, it indicates " "that a callable with any arbitrary parameter list would be acceptable:" msgstr "" -#: ../../library/typing.rst:241 msgid "" "def concat(x: str, y: str) -> str:\n" " return x + y\n" @@ -374,16 +320,14 @@ msgid "" "x = concat # Also OK" msgstr "" -#: ../../library/typing.rst:250 msgid "" "``Callable`` cannot express complex signatures such as functions that take a " "variadic number of arguments, :ref:`overloaded functions `, or " "functions that have keyword-only parameters. However, these signatures can " -"be expressed by defining a :class:`Protocol` class with " -"a :meth:`~object.__call__` method:" +"be expressed by defining a :class:`Protocol` class with a :meth:`~object." +"__call__` method:" msgstr "" -#: ../../library/typing.rst:256 msgid "" "from collections.abc import Iterable\n" "from typing import Protocol\n" @@ -407,7 +351,6 @@ msgid "" " # different name and kind in the callback" msgstr "" -#: ../../library/typing.rst:277 msgid "" "Callables which take other callables as arguments may indicate that their " "parameter types are dependent on each other using :class:`ParamSpec`. " @@ -418,30 +361,25 @@ msgid "" "ReturnType]`` respectively." msgstr "" -#: ../../library/typing.rst:285 ../../library/typing.rst:3965 msgid "" -"``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. " -"See :pep:`612` for more details." +"``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :" +"pep:`612` for more details." msgstr "" -#: ../../library/typing.rst:290 msgid "" "The documentation for :class:`ParamSpec` and :class:`Concatenate` provides " "examples of usage in ``Callable``." msgstr "" -#: ../../library/typing.rst:296 msgid "Generics" msgstr "" -#: ../../library/typing.rst:298 msgid "" "Since type information about objects kept in containers cannot be statically " "inferred in a generic way, many container classes in the standard library " "support subscription to denote the expected types of container elements." msgstr "" -#: ../../library/typing.rst:302 msgid "" "from collections.abc import Mapping, Sequence\n" "\n" @@ -455,13 +393,11 @@ msgid "" " overrides: Mapping[str, str]) -> None: ..." msgstr "" -#: ../../library/typing.rst:315 msgid "" "Generic functions and classes can be parameterized by using :ref:`type " "parameter syntax `::" msgstr "" -#: ../../library/typing.rst:318 msgid "" "from collections.abc import Sequence\n" "\n" @@ -470,11 +406,9 @@ msgid "" " return l[0]" msgstr "" -#: ../../library/typing.rst:323 msgid "Or by using the :class:`TypeVar` factory directly::" msgstr "" -#: ../../library/typing.rst:325 msgid "" "from collections.abc import Sequence\n" "from typing import TypeVar\n" @@ -486,21 +420,17 @@ msgid "" " return l[1]" msgstr "" -#: ../../library/typing.rst:333 msgid "Syntactic support for generics is new in Python 3.12." msgstr "" -#: ../../library/typing.rst:339 msgid "Annotating tuples" msgstr "" -#: ../../library/typing.rst:341 msgid "" "For most containers in Python, the typing system assumes that all elements " "in the container will be of the same type. For example::" msgstr "" -#: ../../library/typing.rst:344 msgid "" "from collections.abc import Mapping\n" "\n" @@ -515,24 +445,20 @@ msgid "" "z: Mapping[str, str | int] = {}" msgstr "" -#: ../../library/typing.rst:356 msgid "" ":class:`list` only accepts one type argument, so a type checker would emit " -"an error on the ``y`` assignment above. " -"Similarly, :class:`~collections.abc.Mapping` only accepts two type " -"arguments: the first indicates the type of the keys, and the second " -"indicates the type of the values." +"an error on the ``y`` assignment above. Similarly, :class:`~collections.abc." +"Mapping` only accepts two type arguments: the first indicates the type of " +"the keys, and the second indicates the type of the values." msgstr "" -#: ../../library/typing.rst:362 msgid "" "Unlike most other Python containers, however, it is common in idiomatic " "Python code for tuples to have elements which are not all of the same type. " -"For this reason, tuples are special-cased in Python's typing " -"system. :class:`tuple` accepts *any number* of type arguments::" +"For this reason, tuples are special-cased in Python's typing system. :class:" +"`tuple` accepts *any number* of type arguments::" msgstr "" -#: ../../library/typing.rst:367 msgid "" "# OK: ``x`` is assigned to a tuple of length 1 where the sole element is an " "int\n" @@ -547,15 +473,13 @@ msgid "" "z: tuple[int] = (1, 2, 3)" msgstr "" -#: ../../library/typing.rst:378 msgid "" "To denote a tuple which could be of *any* length, and in which all elements " -"are of the same type ``T``, use ``tuple[T, ...]``. To denote an empty tuple, " -"use ``tuple[()]``. Using plain ``tuple`` as an annotation is equivalent to " -"using ``tuple[Any, ...]``::" +"are of the same type ``T``, use the literal ellipsis ``...``: " +"``tuple[T, ...]``. To denote an empty tuple, use ``tuple[()]``. Using plain " +"``tuple`` as an annotation is equivalent to using ``tuple[Any, ...]``::" msgstr "" -#: ../../library/typing.rst:383 msgid "" "x: tuple[int, ...] = (1, 2)\n" "# These reassignments are OK: ``tuple[int, ...]`` indicates x can be of any " @@ -575,31 +499,25 @@ msgid "" "z = ()" msgstr "" -#: ../../library/typing.rst:401 msgid "The type of class objects" msgstr "" -#: ../../library/typing.rst:403 msgid "" "A variable annotated with ``C`` may accept a value of type ``C``. In " -"contrast, a variable annotated with ``type[C]`` (or " -"deprecated :class:`typing.Type[C] `) may accept values that are " -"classes themselves -- specifically, it will accept the *class object* of " -"``C``. For example::" +"contrast, a variable annotated with ``type[C]`` (or deprecated :class:" +"`typing.Type[C] `) may accept values that are classes themselves -- " +"specifically, it will accept the *class object* of ``C``. For example::" msgstr "" -#: ../../library/typing.rst:409 msgid "" "a = 3 # Has type ``int``\n" "b = int # Has type ``type[int]``\n" "c = type(a) # Also has type ``type[int]``" msgstr "" -#: ../../library/typing.rst:413 msgid "Note that ``type[C]`` is covariant::" msgstr "" -#: ../../library/typing.rst:415 msgid "" "class User: ...\n" "class ProUser(User): ...\n" @@ -618,14 +536,11 @@ msgid "" "``type[User]``" msgstr "" -#: ../../library/typing.rst:429 msgid "" -"The only legal parameters for :class:`type` are " -"classes, :data:`Any`, :ref:`type variables `, and unions of any of " -"these types. For example::" +"The only legal parameters for :class:`type` are classes, :data:`Any`, :ref:" +"`type variables `, and unions of any of these types. For example::" msgstr "" -#: ../../library/typing.rst:433 msgid "" "def new_non_team_user(user_class: type[BasicUser | ProUser]): ...\n" "\n" @@ -636,24 +551,20 @@ msgid "" "new_non_team_user(User) # Also an error" msgstr "" -#: ../../library/typing.rst:441 msgid "" -"``type[Any]`` is equivalent to :class:`type`, which is the root of " -"Python's :ref:`metaclass hierarchy `." +"``type[Any]`` is equivalent to :class:`type`, which is the root of Python's :" +"ref:`metaclass hierarchy `." msgstr "" -#: ../../library/typing.rst:448 msgid "Annotating generators and coroutines" msgstr "" -#: ../../library/typing.rst:450 msgid "" -"A generator can be annotated using the generic " -"type :class:`Generator[YieldType, SendType, ReturnType] " -"`. For example::" +"A generator can be annotated using the generic type :class:" +"`Generator[YieldType, SendType, ReturnType] `. " +"For example::" msgstr "" -#: ../../library/typing.rst:454 msgid "" "def echo_round() -> Generator[int, float, str]:\n" " sent = yield 0\n" @@ -662,19 +573,16 @@ msgid "" " return 'Done'" msgstr "" -#: ../../library/typing.rst:460 msgid "" "Note that unlike many other generic classes in the standard library, the " "``SendType`` of :class:`~collections.abc.Generator` behaves contravariantly, " "not covariantly or invariantly." msgstr "" -#: ../../library/typing.rst:464 msgid "" "The ``SendType`` and ``ReturnType`` parameters default to :const:`!None`::" msgstr "" -#: ../../library/typing.rst:466 msgid "" "def infinite_stream(start: int) -> Generator[int]:\n" " while True:\n" @@ -682,11 +590,9 @@ msgid "" " start += 1" msgstr "" -#: ../../library/typing.rst:471 msgid "It is also possible to set these types explicitly::" msgstr "" -#: ../../library/typing.rst:473 msgid "" "def infinite_stream(start: int) -> Generator[int, None, None]:\n" " while True:\n" @@ -694,15 +600,12 @@ msgid "" " start += 1" msgstr "" -#: ../../library/typing.rst:478 msgid "" "Simple generators that only ever yield values can also be annotated as " -"having a return type of either :class:`Iterable[YieldType] " -"` or :class:`Iterator[YieldType] " -"`::" +"having a return type of either :class:`Iterable[YieldType] ` or :class:`Iterator[YieldType] `::" msgstr "" -#: ../../library/typing.rst:483 msgid "" "def infinite_stream(start: int) -> Iterator[int]:\n" " while True:\n" @@ -710,15 +613,13 @@ msgid "" " start += 1" msgstr "" -#: ../../library/typing.rst:488 msgid "" "Async generators are handled in a similar fashion, but don't expect a " "``ReturnType`` type argument (:class:`AsyncGenerator[YieldType, SendType] " -"`). The ``SendType`` argument defaults " -"to :const:`!None`, so the following definitions are equivalent::" +"`). The ``SendType`` argument defaults to :" +"const:`!None`, so the following definitions are equivalent::" msgstr "" -#: ../../library/typing.rst:494 msgid "" "async def infinite_stream(start: int) -> AsyncGenerator[int]:\n" " while True:\n" @@ -731,14 +632,12 @@ msgid "" " start = await increment(start)" msgstr "" -#: ../../library/typing.rst:504 msgid "" -"As in the synchronous case, :class:`AsyncIterable[YieldType] " -"` and :class:`AsyncIterator[YieldType] " -"` are available as well::" +"As in the synchronous case, :class:`AsyncIterable[YieldType] ` and :class:`AsyncIterator[YieldType] ` are available as well::" msgstr "" -#: ../../library/typing.rst:509 msgid "" "async def infinite_stream(start: int) -> AsyncIterator[int]:\n" " while True:\n" @@ -746,14 +645,12 @@ msgid "" " start = await increment(start)" msgstr "" -#: ../../library/typing.rst:514 msgid "" "Coroutines can be annotated using :class:`Coroutine[YieldType, SendType, " "ReturnType] `. Generic arguments correspond to " "those of :class:`~collections.abc.Generator`, for example::" msgstr "" -#: ../../library/typing.rst:519 msgid "" "from collections.abc import Coroutine\n" "c: Coroutine[list[str], str, int] # Some coroutine defined elsewhere\n" @@ -762,15 +659,12 @@ msgid "" " y = await c # Inferred type of 'y' is int" msgstr "" -#: ../../library/typing.rst:528 msgid "User-defined generic types" msgstr "" -#: ../../library/typing.rst:530 msgid "A user-defined class can be defined as a generic class." msgstr "" -#: ../../library/typing.rst:534 msgid "" "from logging import Logger\n" "\n" @@ -792,21 +686,18 @@ msgid "" " self.logger.info('%s: %s', self.name, message)" msgstr "" -#: ../../library/typing.rst:553 msgid "" "This syntax indicates that the class ``LoggedVar`` is parameterised around a " "single :ref:`type variable ` ``T`` . This also makes ``T`` valid as " "a type within the class body." msgstr "" -#: ../../library/typing.rst:557 msgid "" "Generic classes implicitly inherit from :class:`Generic`. For compatibility " -"with Python 3.11 and lower, it is also possible to inherit explicitly " -"from :class:`Generic` to indicate a generic class::" +"with Python 3.11 and lower, it is also possible to inherit explicitly from :" +"class:`Generic` to indicate a generic class::" msgstr "" -#: ../../library/typing.rst:561 msgid "" "from typing import TypeVar, Generic\n" "\n" @@ -816,13 +707,11 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:568 msgid "" "Generic classes have :meth:`~object.__class_getitem__` methods, meaning they " "can be parameterised at runtime (e.g. ``LoggedVar[int]`` below)::" msgstr "" -#: ../../library/typing.rst:571 msgid "" "from collections.abc import Iterable\n" "\n" @@ -831,13 +720,11 @@ msgid "" " var.set(0)" msgstr "" -#: ../../library/typing.rst:577 msgid "" -"A generic type can have any number of type variables. All varieties " -"of :class:`TypeVar` are permissible as parameters for a generic type::" +"A generic type can have any number of type variables. All varieties of :" +"class:`TypeVar` are permissible as parameters for a generic type::" msgstr "" -#: ../../library/typing.rst:580 msgid "" "from typing import TypeVar, Generic, Sequence\n" "\n" @@ -852,13 +739,11 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:592 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" msgstr "" -#: ../../library/typing.rst:595 msgid "" "from typing import TypeVar, Generic\n" "...\n" @@ -872,11 +757,9 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:606 msgid "Generic classes can also inherit from other classes::" msgstr "" -#: ../../library/typing.rst:608 msgid "" "from collections.abc import Sized\n" "\n" @@ -884,12 +767,10 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:613 msgid "" "When inheriting from generic classes, some type parameters could be fixed::" msgstr "" -#: ../../library/typing.rst:615 msgid "" "from collections.abc import Mapping\n" "\n" @@ -897,18 +778,15 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:620 msgid "In this case ``MyDict`` has a single parameter, ``T``." msgstr "" -#: ../../library/typing.rst:622 msgid "" "Using a generic class without specifying type parameters assumes :data:`Any` " "for each position. In the following example, ``MyIterable`` is not generic " "but implicitly inherits from ``Iterable[Any]``:" msgstr "" -#: ../../library/typing.rst:626 msgid "" "from collections.abc import Iterable\n" "\n" @@ -916,11 +794,9 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:633 msgid "User-defined generic type aliases are also supported. Examples::" msgstr "" -#: ../../library/typing.rst:635 msgid "" "from collections.abc import Iterable\n" "\n" @@ -937,13 +813,11 @@ msgid "" " return sum(x*y for x, y in v)" msgstr "" -#: ../../library/typing.rst:648 msgid "" "For backward compatibility, generic type aliases can also be created through " "a simple assignment::" msgstr "" -#: ../../library/typing.rst:651 msgid "" "from collections.abc import Iterable\n" "from typing import TypeVar\n" @@ -952,18 +826,15 @@ msgid "" "Response = Iterable[S] | int" msgstr "" -#: ../../library/typing.rst:657 msgid ":class:`Generic` no longer has a custom metaclass." msgstr "" -#: ../../library/typing.rst:660 msgid "" "Syntactic support for generics and type aliases is new in version 3.12. " "Previously, generic classes had to explicitly inherit from :class:`Generic` " "or contain a type variable in one of their bases." msgstr "" -#: ../../library/typing.rst:665 msgid "" "User-defined generics for parameter expressions are also supported via " "parameter specification variables in the form ``[**P]``. The behavior is " @@ -973,7 +844,6 @@ msgid "" "substitute a :class:`ParamSpec`::" msgstr "" -#: ../../library/typing.rst:671 msgid "" ">>> class Z[T, **P]: ... # T is a TypeVar; P is a ParamSpec\n" "...\n" @@ -981,13 +851,11 @@ msgid "" "__main__.Z[int, [dict, float]]" msgstr "" -#: ../../library/typing.rst:676 msgid "" "Classes generic over a :class:`ParamSpec` can also be created using explicit " "inheritance from :class:`Generic`. In this case, ``**`` is not used::" msgstr "" -#: ../../library/typing.rst:679 msgid "" "from typing import ParamSpec, Generic\n" "\n" @@ -997,7 +865,6 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:686 msgid "" "Another difference between :class:`TypeVar` and :class:`ParamSpec` is that a " "generic with only one parameter specification variable will accept parameter " @@ -1006,7 +873,6 @@ msgid "" "the former, so the following are equivalent::" msgstr "" -#: ../../library/typing.rst:692 msgid "" ">>> class X[**P]: ...\n" "...\n" @@ -1016,20 +882,17 @@ msgid "" "__main__.X[[int, str]]" msgstr "" -#: ../../library/typing.rst:699 msgid "" "Note that generics with :class:`ParamSpec` may not have correct " "``__parameters__`` after substitution in some cases because they are " "intended primarily for static type checking." msgstr "" -#: ../../library/typing.rst:703 msgid "" -":class:`Generic` can now be parameterized over parameter expressions. " -"See :class:`ParamSpec` and :pep:`612` for more details." +":class:`Generic` can now be parameterized over parameter expressions. See :" +"class:`ParamSpec` and :pep:`612` for more details." msgstr "" -#: ../../library/typing.rst:707 msgid "" "A user-defined generic class can have ABCs as base classes without a " "metaclass conflict. Generic metaclasses are not supported. The outcome of " @@ -1037,24 +900,20 @@ msgid "" "module are :term:`hashable` and comparable for equality." msgstr "" -#: ../../library/typing.rst:714 msgid "The :data:`Any` type" msgstr "" -#: ../../library/typing.rst:716 msgid "" "A special kind of type is :data:`Any`. A static type checker will treat " "every type as being compatible with :data:`Any` and :data:`Any` as being " "compatible with every type." msgstr "" -#: ../../library/typing.rst:720 msgid "" "This means that it is possible to perform any operation or method call on a " "value of type :data:`Any` and assign it to any variable::" msgstr "" -#: ../../library/typing.rst:723 msgid "" "from typing import Any\n" "\n" @@ -1072,22 +931,19 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:738 msgid "" -"Notice that no type checking is performed when assigning a value of " -"type :data:`Any` to a more precise type. For example, the static type " -"checker did not report an error when assigning ``a`` to ``s`` even though " -"``s`` was declared to be of type :class:`str` and receives an :class:`int` " -"value at runtime!" +"Notice that no type checking is performed when assigning a value of type :" +"data:`Any` to a more precise type. For example, the static type checker did " +"not report an error when assigning ``a`` to ``s`` even though ``s`` was " +"declared to be of type :class:`str` and receives an :class:`int` value at " +"runtime!" msgstr "" -#: ../../library/typing.rst:744 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" msgstr "" -#: ../../library/typing.rst:747 msgid "" "def legacy_parser(text):\n" " ...\n" @@ -1100,13 +956,11 @@ msgid "" " return data" msgstr "" -#: ../../library/typing.rst:757 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." msgstr "" -#: ../../library/typing.rst:760 msgid "" "Contrast the behavior of :data:`Any` with the behavior of :class:`object`. " "Similar to :data:`Any`, every type is a subtype of :class:`object`. However, " @@ -1114,7 +968,6 @@ msgid "" "subtype of every other type." msgstr "" -#: ../../library/typing.rst:765 msgid "" "That means when the type of a value is :class:`object`, a type checker will " "reject almost all operations on it, and assigning it to a variable (or using " @@ -1122,7 +975,6 @@ msgid "" "example::" msgstr "" -#: ../../library/typing.rst:769 msgid "" "def hash_a(item: object) -> int:\n" " # Fails type checking; an object does not have a 'magic' method.\n" @@ -1143,33 +995,28 @@ msgid "" "hash_b(\"foo\")" msgstr "" -#: ../../library/typing.rst:787 msgid "" "Use :class:`object` to indicate that a value could be any type in a typesafe " "manner. Use :data:`Any` to indicate that a value is dynamically typed." msgstr "" -#: ../../library/typing.rst:792 msgid "Nominal vs structural subtyping" msgstr "" -#: ../../library/typing.rst:794 msgid "" "Initially :pep:`484` defined the Python static type system as using *nominal " "subtyping*. This means that a class ``A`` is allowed where a class ``B`` is " "expected if and only if ``A`` is a subclass of ``B``." msgstr "" -#: ../../library/typing.rst:798 msgid "" -"This requirement previously also applied to abstract base classes, such " -"as :class:`~collections.abc.Iterable`. The problem with this approach is " -"that a class had to be explicitly marked to support them, which is " -"unpythonic and unlike what one would normally do in idiomatic dynamically " -"typed Python code. For example, this conforms to :pep:`484`::" +"This requirement previously also applied to abstract base classes, such as :" +"class:`~collections.abc.Iterable`. The problem with this approach is that a " +"class had to be explicitly marked to support them, which is unpythonic and " +"unlike what one would normally do in idiomatic dynamically typed Python " +"code. For example, this conforms to :pep:`484`::" msgstr "" -#: ../../library/typing.rst:804 msgid "" "from collections.abc import Sized, Iterable, Iterator\n" "\n" @@ -1179,7 +1026,6 @@ msgid "" " def __iter__(self) -> Iterator[int]: ..." msgstr "" -#: ../../library/typing.rst:811 msgid "" ":pep:`544` allows to solve this problem by allowing users to write the above " "code without explicit base classes in the class definition, allowing " @@ -1188,7 +1034,6 @@ msgid "" "subtyping* (or static duck-typing)::" msgstr "" -#: ../../library/typing.rst:817 msgid "" "from collections.abc import Iterator, Iterable\n" "\n" @@ -1201,83 +1046,63 @@ msgid "" "result = collect(Bucket()) # Passes type check" msgstr "" -#: ../../library/typing.rst:827 msgid "" "Moreover, by subclassing a special class :class:`Protocol`, a user can " "define new custom protocols to fully enjoy structural subtyping (see " "examples below)." msgstr "" -#: ../../library/typing.rst:832 msgid "Module contents" msgstr "" -#: ../../library/typing.rst:834 msgid "" "The ``typing`` module defines the following classes, functions and " "decorators." msgstr "" -#: ../../library/typing.rst:837 msgid "Special typing primitives" msgstr "" -#: ../../library/typing.rst:840 msgid "Special types" msgstr "" -#: ../../library/typing.rst:842 msgid "" "These can be used as types in annotations. They do not support subscription " "using ``[]``." msgstr "" -#: ../../library/typing.rst:847 msgid "Special type indicating an unconstrained type." msgstr "" -#: ../../library/typing.rst:849 msgid "Every type is compatible with :data:`Any`." msgstr "" -#: ../../library/typing.rst:850 msgid ":data:`Any` is compatible with every type." msgstr "" -#: ../../library/typing.rst:852 msgid "" ":data:`Any` can now be used as a base class. This can be useful for avoiding " "type checker errors with classes that can duck type anywhere or are highly " "dynamic." msgstr "" -#: ../../library/typing.rst:859 msgid "A :ref:`constrained type variable `." msgstr "" -#: ../../library/typing.rst:861 msgid "Definition::" msgstr "" -#: ../../library/typing.rst:863 msgid "AnyStr = TypeVar('AnyStr', str, bytes)" msgstr "" -#: ../../library/typing.rst:865 msgid "" "``AnyStr`` is meant to be used for functions that may accept :class:`str` " "or :class:`bytes` arguments but cannot allow the two to mix." msgstr "" -#: ../../library/typing.rst:868 ../../library/typing.rst:986 -#: ../../library/typing.rst:1043 ../../library/typing.rst:1223 -#: ../../library/typing.rst:1310 ../../library/typing.rst:1352 -#: ../../library/typing.rst:1561 ../../library/typing.rst:1622 -#: ../../library/typing.rst:3218 ../../library/typing.rst:3446 msgid "For example::" msgstr "" -#: ../../library/typing.rst:870 msgid "" "def concat(a: AnyStr, b: AnyStr) -> AnyStr:\n" " return a + b\n" @@ -1287,15 +1112,12 @@ msgid "" "concat(\"foo\", b\"bar\") # Error, cannot mix str and bytes" msgstr "" -#: ../../library/typing.rst:877 msgid "" -"Note that, despite its name, ``AnyStr`` has nothing to do with " -"the :class:`Any` type, nor does it mean \"any string\". In particular, " -"``AnyStr`` and ``str | bytes`` are different from each other and have " -"different use cases::" +"Note that, despite its name, ``AnyStr`` has nothing to do with the :class:" +"`Any` type, nor does it mean \"any string\". In particular, ``AnyStr`` and " +"``str | bytes`` are different from each other and have different use cases::" msgstr "" -#: ../../library/typing.rst:882 msgid "" "# Invalid use of AnyStr:\n" "# The type variable is used only once in the function signature,\n" @@ -1308,14 +1130,12 @@ msgid "" " return \"hi there!\" if cond else b\"greetings!\"" msgstr "" -#: ../../library/typing.rst:892 msgid "" "Deprecated in favor of the new :ref:`type parameter syntax `. " -"Use ``class A[T: (str, bytes)]: ...`` instead of importing ``AnyStr``. " -"See :pep:`695` for more details." +"Use ``class A[T: (str, bytes)]: ...`` instead of importing ``AnyStr``. See :" +"pep:`695` for more details." msgstr "" -#: ../../library/typing.rst:897 msgid "" "In Python 3.16, ``AnyStr`` will be removed from ``typing.__all__``, and " "deprecation warnings will be emitted at runtime when it is accessed or " @@ -1323,11 +1143,9 @@ msgid "" "Python 3.18." msgstr "" -#: ../../library/typing.rst:904 msgid "Special type that includes only literal strings." msgstr "" -#: ../../library/typing.rst:906 msgid "" "Any string literal is compatible with ``LiteralString``, as is another " "``LiteralString``. However, an object typed as just ``str`` is not. A string " @@ -1335,11 +1153,9 @@ msgid "" "``LiteralString``." msgstr "" -#: ../../library/typing.rst:912 ../../library/typing.rst:2243 msgid "Example:" msgstr "" -#: ../../library/typing.rst:914 msgid "" "def run_query(sql: LiteralString) -> None:\n" " ...\n" @@ -1354,7 +1170,6 @@ msgid "" " )" msgstr "" -#: ../../library/typing.rst:928 msgid "" "``LiteralString`` is useful for sensitive APIs where arbitrary user-" "generated strings could generate problems. For example, the two cases above " @@ -1362,23 +1177,19 @@ msgid "" "attack." msgstr "" -#: ../../library/typing.rst:933 msgid "See :pep:`675` for more details." msgstr "" -#: ../../library/typing.rst:940 msgid "" -":data:`!Never` and :data:`!NoReturn` represent the `bottom type `_, a type that has no members." +":data:`!Never` and :data:`!NoReturn` represent the `bottom type `_, a type that has no members." msgstr "" -#: ../../library/typing.rst:944 msgid "" -"They can be used to indicate that a function never returns, such " -"as :func:`sys.exit`::" +"They can be used to indicate that a function never returns, such as :func:" +"`sys.exit`::" msgstr "" -#: ../../library/typing.rst:947 msgid "" "from typing import Never # or NoReturn\n" "\n" @@ -1386,13 +1197,11 @@ msgid "" " raise RuntimeError('no way')" msgstr "" -#: ../../library/typing.rst:952 msgid "" "Or to define a function that should never be called, as there are no valid " "arguments, such as :func:`assert_never`::" msgstr "" -#: ../../library/typing.rst:956 msgid "" "from typing import Never # or NoReturn\n" "\n" @@ -1410,25 +1219,20 @@ msgid "" " never_call_me(arg) # OK, arg is of type Never (or NoReturn)" msgstr "" -#: ../../library/typing.rst:971 msgid "" ":data:`!Never` and :data:`!NoReturn` have the same meaning in the type " "system and static type checkers treat both equivalently." msgstr "" -#: ../../library/typing.rst:976 msgid "Added :data:`NoReturn`." msgstr "" -#: ../../library/typing.rst:980 msgid "Added :data:`Never`." msgstr "" -#: ../../library/typing.rst:984 msgid "Special type to represent the current enclosed class." msgstr "" -#: ../../library/typing.rst:988 msgid "" "from typing import Self, reveal_type\n" "\n" @@ -1444,13 +1248,11 @@ msgid "" "\"SubclassOfFoo\"" msgstr "" -#: ../../library/typing.rst:1000 msgid "" "This annotation is semantically equivalent to the following, albeit in a " "more succinct fashion::" msgstr "" -#: ../../library/typing.rst:1003 msgid "" "from typing import TypeVar\n" "\n" @@ -1462,7 +1264,6 @@ msgid "" " return self" msgstr "" -#: ../../library/typing.rst:1012 msgid "" "In general, if something returns ``self``, as in the above examples, you " "should use ``Self`` as the return annotation. If ``Foo.return_self`` was " @@ -1471,27 +1272,22 @@ msgid "" "rather than ``SubclassOfFoo``." msgstr "" -#: ../../library/typing.rst:1018 msgid "Other common use cases include:" msgstr "" -#: ../../library/typing.rst:1020 msgid "" ":class:`classmethod`\\s that are used as alternative constructors and return " "instances of the ``cls`` parameter." msgstr "" -#: ../../library/typing.rst:1022 msgid "Annotating an :meth:`~object.__enter__` method which returns self." msgstr "" -#: ../../library/typing.rst:1024 msgid "" "You should not use ``Self`` as the return annotation if the method is not " "guaranteed to return an instance of a subclass when the class is subclassed::" msgstr "" -#: ../../library/typing.rst:1028 msgid "" "class Eggs:\n" " # Self would be an incorrect return annotation here,\n" @@ -1501,31 +1297,26 @@ msgid "" " return Eggs()" msgstr "" -#: ../../library/typing.rst:1035 msgid "See :pep:`673` for more details." msgstr "" -#: ../../library/typing.rst:1041 msgid "" "Special annotation for explicitly declaring a :ref:`type alias `." msgstr "" -#: ../../library/typing.rst:1045 msgid "" "from typing import TypeAlias\n" "\n" "Factors: TypeAlias = list[int]" msgstr "" -#: ../../library/typing.rst:1049 msgid "" "``TypeAlias`` is particularly useful on older Python versions for annotating " "aliases that make use of forward references, as it can be hard for type " "checkers to distinguish these from normal variable assignments:" msgstr "" -#: ../../library/typing.rst:1053 msgid "" "from typing import Generic, TypeAlias, TypeVar\n" "\n" @@ -1543,110 +1334,88 @@ msgid "" " def make_box_of_strings(cls) -> BoxOfStrings: ..." msgstr "" -#: ../../library/typing.rst:1069 msgid "See :pep:`613` for more details." msgstr "" -#: ../../library/typing.rst:1073 msgid "" ":data:`TypeAlias` is deprecated in favor of the :keyword:`type` statement, " "which creates instances of :class:`TypeAliasType` and which natively " -"supports forward references. Note that while :data:`TypeAlias` " -"and :class:`TypeAliasType` serve similar purposes and have similar names, " -"they are distinct and the latter is not the type of the former. Removal " -"of :data:`TypeAlias` is not currently planned, but users are encouraged to " -"migrate to :keyword:`type` statements." +"supports forward references. Note that while :data:`TypeAlias` and :class:" +"`TypeAliasType` serve similar purposes and have similar names, they are " +"distinct and the latter is not the type of the former. Removal of :data:" +"`TypeAlias` is not currently planned, but users are encouraged to migrate " +"to :keyword:`type` statements." msgstr "" -#: ../../library/typing.rst:1084 msgid "Special forms" msgstr "" -#: ../../library/typing.rst:1086 msgid "" "These can be used as types in annotations. They all support subscription " "using ``[]``, but each has a unique syntax." msgstr "" -#: ../../library/typing.rst:1091 msgid "" "Union type; ``Union[X, Y]`` is equivalent to ``X | Y`` and means either X or " "Y." msgstr "" -#: ../../library/typing.rst:1093 msgid "" "To define a union, use e.g. ``Union[int, str]`` or the shorthand ``int | " "str``. Using that shorthand is recommended. Details:" msgstr "" -#: ../../library/typing.rst:1095 msgid "The arguments must be types and there must be at least one." msgstr "" -#: ../../library/typing.rst:1097 msgid "Unions of unions are flattened, e.g.::" msgstr "" -#: ../../library/typing.rst:1099 msgid "Union[Union[int, str], float] == Union[int, str, float]" msgstr "" -#: ../../library/typing.rst:1101 msgid "" "However, this does not apply to unions referenced through a type alias, to " "avoid forcing evaluation of the underlying :class:`TypeAliasType`::" msgstr "" -#: ../../library/typing.rst:1104 msgid "" "type A = Union[int, str]\n" "Union[A, float] != Union[int, str, float]" msgstr "" -#: ../../library/typing.rst:1107 msgid "Unions of a single argument vanish, e.g.::" msgstr "" -#: ../../library/typing.rst:1109 msgid "Union[int] == int # The constructor actually returns int" msgstr "" -#: ../../library/typing.rst:1111 ../../library/typing.rst:1253 msgid "Redundant arguments are skipped, e.g.::" msgstr "" -#: ../../library/typing.rst:1113 msgid "Union[int, str, int] == Union[int, str] == int | str" msgstr "" -#: ../../library/typing.rst:1115 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" -#: ../../library/typing.rst:1117 msgid "Union[int, str] == Union[str, int]" msgstr "" -#: ../../library/typing.rst:1119 msgid "You cannot subclass or instantiate a ``Union``." msgstr "" -#: ../../library/typing.rst:1121 msgid "You cannot write ``Union[X][Y]``." msgstr "" -#: ../../library/typing.rst:1123 msgid "Don't remove explicit subclasses from unions at runtime." msgstr "" -#: ../../library/typing.rst:1126 msgid "" "Unions can now be written as ``X | Y``. See :ref:`union type " "expressions`." msgstr "" -#: ../../library/typing.rst:1130 msgid "" ":class:`types.UnionType` is now an alias for :class:`Union`, and both " "``Union[int, str]`` and ``int | str`` create instances of the same class. To " @@ -1655,11 +1424,9 @@ msgid "" "``get_origin(obj) is typing.Union or get_origin(obj) is types.UnionType``." msgstr "" -#: ../../library/typing.rst:1140 msgid "``Optional[X]`` is equivalent to ``X | None`` (or ``Union[X, None]``)." msgstr "" -#: ../../library/typing.rst:1142 msgid "" "Note that this is not the same concept as an optional argument, which is one " "that has a default. An optional argument with a default does not require " @@ -1667,36 +1434,30 @@ msgid "" "optional. For example::" msgstr "" -#: ../../library/typing.rst:1147 msgid "" "def foo(arg: int = 0) -> None:\n" " ..." msgstr "" -#: ../../library/typing.rst:1150 msgid "" "On the other hand, if an explicit value of ``None`` is allowed, the use of " "``Optional`` is appropriate, whether the argument is optional or not. For " "example::" msgstr "" -#: ../../library/typing.rst:1154 msgid "" "def foo(arg: Optional[int] = None) -> None:\n" " ..." msgstr "" -#: ../../library/typing.rst:1157 msgid "" "Optional can now be written as ``X | None``. See :ref:`union type " "expressions`." msgstr "" -#: ../../library/typing.rst:1163 msgid "Special form for annotating higher-order functions." msgstr "" -#: ../../library/typing.rst:1165 msgid "" "``Concatenate`` can be used in conjunction with :ref:`Callable ` and :class:`ParamSpec` to annotate a higher-order callable which " @@ -1707,18 +1468,16 @@ msgid "" "``Concatenate`` must be a :class:`ParamSpec` or ellipsis (``...``)." msgstr "" -#: ../../library/typing.rst:1174 msgid "" -"For example, to annotate a decorator ``with_lock`` which provides " -"a :class:`threading.Lock` to the decorated function, ``Concatenate`` can be " -"used to indicate that ``with_lock`` expects a callable which takes in a " -"``Lock`` as the first argument, and returns a callable with a different type " -"signature. In this case, the :class:`ParamSpec` indicates that the returned " -"callable's parameter types are dependent on the parameter types of the " -"callable being passed in::" +"For example, to annotate a decorator ``with_lock`` which provides a :class:" +"`threading.Lock` to the decorated function, ``Concatenate`` can be used to " +"indicate that ``with_lock`` expects a callable which takes in a ``Lock`` as " +"the first argument, and returns a callable with a different type signature. " +"In this case, the :class:`ParamSpec` indicates that the returned callable's " +"parameter types are dependent on the parameter types of the callable being " +"passed in::" msgstr "" -#: ../../library/typing.rst:1182 msgid "" "from collections.abc import Callable\n" "from threading import Lock\n" @@ -1746,31 +1505,25 @@ msgid "" "sum_threadsafe([1.1, 2.2, 3.3])" msgstr "" -#: ../../library/typing.rst:1210 ../../library/typing.rst:2211 msgid "" ":pep:`612` -- Parameter Specification Variables (the PEP which introduced " "``ParamSpec`` and ``Concatenate``)" msgstr "" -#: ../../library/typing.rst:1212 msgid ":class:`ParamSpec`" msgstr "" -#: ../../library/typing.rst:1213 ../../library/typing.rst:2214 msgid ":ref:`annotating-callables`" msgstr "" -#: ../../library/typing.rst:1217 msgid "Special typing form to define \"literal types\"." msgstr "" -#: ../../library/typing.rst:1219 msgid "" "``Literal`` can be used to indicate to type checkers that the annotated " "object has a value equivalent to one of the provided literals." msgstr "" -#: ../../library/typing.rst:1225 msgid "" "def validate_simple(data: Any) -> Literal[True]: # always returns True\n" " ...\n" @@ -1783,62 +1536,49 @@ msgid "" "open_helper('/other/path', 'typo') # Error in type checker" msgstr "" -#: ../../library/typing.rst:1235 msgid "" "``Literal[...]`` cannot be subclassed. At runtime, an arbitrary value is " "allowed as type argument to ``Literal[...]``, but type checkers may impose " "restrictions. See :pep:`586` for more details about literal types." msgstr "" -#: ../../library/typing.rst:1239 msgid "Additional details:" msgstr "" -#: ../../library/typing.rst:1241 msgid "The arguments must be literal values and there must be at least one." msgstr "" -#: ../../library/typing.rst:1243 msgid "Nested ``Literal`` types are flattened, e.g.::" msgstr "" -#: ../../library/typing.rst:1245 msgid "assert Literal[Literal[1, 2], 3] == Literal[1, 2, 3]" msgstr "" -#: ../../library/typing.rst:1247 msgid "" "However, this does not apply to ``Literal`` types referenced through a type " "alias, to avoid forcing evaluation of the underlying :class:`TypeAliasType`::" msgstr "" -#: ../../library/typing.rst:1250 msgid "" "type A = Literal[1, 2]\n" "assert Literal[A, 3] != Literal[1, 2, 3]" msgstr "" -#: ../../library/typing.rst:1255 msgid "assert Literal[1, 2, 1] == Literal[1, 2]" msgstr "" -#: ../../library/typing.rst:1257 msgid "When comparing literals, the argument order is ignored, e.g.::" msgstr "" -#: ../../library/typing.rst:1259 msgid "assert Literal[1, 2] == Literal[2, 1]" msgstr "" -#: ../../library/typing.rst:1261 msgid "You cannot subclass or instantiate a ``Literal``." msgstr "" -#: ../../library/typing.rst:1263 msgid "You cannot write ``Literal[X][Y]``." msgstr "" -#: ../../library/typing.rst:1267 msgid "" "``Literal`` now de-duplicates parameters. Equality comparisons of " "``Literal`` objects are no longer order dependent. ``Literal`` objects will " @@ -1846,59 +1586,48 @@ msgid "" "their parameters are not :term:`hashable`." msgstr "" -#: ../../library/typing.rst:1275 msgid "Special type construct to mark class variables." msgstr "" -#: ../../library/typing.rst:1277 msgid "" "As introduced in :pep:`526`, a variable annotation wrapped in ClassVar " "indicates that a given attribute is intended to be used as a class variable " "and should not be set on instances of that class. Usage::" msgstr "" -#: ../../library/typing.rst:1281 msgid "" "class Starship:\n" " stats: ClassVar[dict[str, int]] = {} # class variable\n" " damage: int = 10 # instance variable" msgstr "" -#: ../../library/typing.rst:1285 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." msgstr "" -#: ../../library/typing.rst:1287 msgid "" -":data:`ClassVar` is not a class itself, and should not be used " -"with :func:`isinstance` or :func:`issubclass`. :data:`ClassVar` does not " -"change Python runtime behavior, but it can be used by third-party type " -"checkers. For example, a type checker might flag the following code as an " -"error::" +":data:`ClassVar` is not a class itself, and should not be used with :func:" +"`isinstance` or :func:`issubclass`. :data:`ClassVar` does not change Python " +"runtime behavior, but it can be used by third-party type checkers. For " +"example, a type checker might flag the following code as an error::" msgstr "" -#: ../../library/typing.rst:1293 msgid "" "enterprise_d = Starship(3000)\n" "enterprise_d.stats = {} # Error, setting class variable on instance\n" "Starship.stats = {} # This is OK" msgstr "" -#: ../../library/typing.rst:1301 msgid ":data:`ClassVar` can now be nested in :data:`Final` and vice versa." msgstr "" -#: ../../library/typing.rst:1305 msgid "Special typing construct to indicate final names to type checkers." msgstr "" -#: ../../library/typing.rst:1307 msgid "" "Final names cannot be reassigned in any scope. Final names declared in class " "scopes cannot be overridden in subclasses." msgstr "" -#: ../../library/typing.rst:1312 msgid "" "MAX_SIZE: Final = 9000\n" "MAX_SIZE += 1 # Error reported by type checker\n" @@ -1910,43 +1639,35 @@ msgid "" " TIMEOUT = 1 # Error reported by type checker" msgstr "" -#: ../../library/typing.rst:1321 ../../library/typing.rst:3234 msgid "" "There is no runtime checking of these properties. See :pep:`591` for more " "details." msgstr "" -#: ../../library/typing.rst:1328 msgid ":data:`Final` can now be nested in :data:`ClassVar` and vice versa." msgstr "" -#: ../../library/typing.rst:1332 msgid "Special typing construct to mark a :class:`TypedDict` key as required." msgstr "" -#: ../../library/typing.rst:1334 msgid "" "This is mainly useful for ``total=False`` TypedDicts. See :class:`TypedDict` " "and :pep:`655` for more details." msgstr "" -#: ../../library/typing.rst:1341 msgid "" "Special typing construct to mark a :class:`TypedDict` key as potentially " "missing." msgstr "" -#: ../../library/typing.rst:1344 msgid "See :class:`TypedDict` and :pep:`655` for more details." msgstr "" -#: ../../library/typing.rst:1350 msgid "" "A special typing construct to mark an item of a :class:`TypedDict` as read-" "only." msgstr "" -#: ../../library/typing.rst:1354 msgid "" "class Movie(TypedDict):\n" " title: ReadOnly[str]\n" @@ -1957,19 +1678,15 @@ msgid "" " m[\"title\"] = \"The Matrix\" # typechecker error" msgstr "" -#: ../../library/typing.rst:1362 msgid "There is no runtime checking for this property." msgstr "" -#: ../../library/typing.rst:1364 msgid "See :class:`TypedDict` and :pep:`705` for more details." msgstr "" -#: ../../library/typing.rst:1370 msgid "Special typing form to add context-specific metadata to an annotation." msgstr "" -#: ../../library/typing.rst:1372 msgid "" "Add metadata ``x`` to a given type ``T`` by using the annotation " "``Annotated[T, x]``. Metadata added using ``Annotated`` can be used by " @@ -1977,7 +1694,6 @@ msgid "" "a :attr:`!__metadata__` attribute." msgstr "" -#: ../../library/typing.rst:1377 msgid "" "If a library or tool encounters an annotation ``Annotated[T, x]`` and has no " "special logic for the metadata, it should ignore the metadata and simply " @@ -1986,7 +1702,6 @@ msgid "" "system." msgstr "" -#: ../../library/typing.rst:1383 msgid "" "Using ``Annotated[T, x]`` as an annotation still allows for static " "typechecking of ``T``, as type checkers will simply ignore the metadata " @@ -1996,7 +1711,6 @@ msgid "" "for a function or class." msgstr "" -#: ../../library/typing.rst:1390 msgid "" "The responsibility of how to interpret the metadata lies with the tool or " "library encountering an ``Annotated`` annotation. A tool or library " @@ -2004,13 +1718,11 @@ msgid "" "determine if they are of interest (e.g., using :func:`isinstance`)." msgstr "" -#: ../../library/typing.rst:1398 msgid "" "Here is an example of how you might use ``Annotated`` to add metadata to " "type annotations if you were doing range analysis:" msgstr "" -#: ../../library/typing.rst:1401 msgid "" "@dataclass\n" "class ValueRange:\n" @@ -2021,14 +1733,12 @@ msgid "" "T2 = Annotated[T1, ValueRange(-20, 3)]" msgstr "" -#: ../../library/typing.rst:1411 msgid "" "The first argument to ``Annotated`` must be a valid type. Multiple metadata " "elements can be supplied as ``Annotated`` supports variadic arguments. The " "order of the metadata elements is preserved and matters for equality checks::" msgstr "" -#: ../../library/typing.rst:1415 msgid "" "@dataclass\n" "class ctype:\n" @@ -2040,20 +1750,17 @@ msgid "" "assert a1 != a2 # Order matters" msgstr "" -#: ../../library/typing.rst:1424 msgid "" "It is up to the tool consuming the annotations to decide whether the client " "is allowed to add multiple metadata elements to one annotation and how to " "merge those annotations." msgstr "" -#: ../../library/typing.rst:1428 msgid "" "Nested ``Annotated`` types are flattened. The order of the metadata elements " "starts with the innermost annotation::" msgstr "" -#: ../../library/typing.rst:1431 msgid "" "assert Annotated[Annotated[int, ValueRange(3, 10)], ctype(\"char\")] == " "Annotated[\n" @@ -2061,14 +1768,12 @@ msgid "" "]" msgstr "" -#: ../../library/typing.rst:1435 msgid "" "However, this does not apply to ``Annotated`` types referenced through a " -"type alias, to avoid forcing evaluation of the " -"underlying :class:`TypeAliasType`::" +"type alias, to avoid forcing evaluation of the underlying :class:" +"`TypeAliasType`::" msgstr "" -#: ../../library/typing.rst:1438 msgid "" "type From3To10[T] = Annotated[T, ValueRange(3, 10)]\n" "assert Annotated[From3To10[int], ctype(\"char\")] != Annotated[\n" @@ -2076,22 +1781,18 @@ msgid "" "]" msgstr "" -#: ../../library/typing.rst:1443 msgid "Duplicated metadata elements are not removed::" msgstr "" -#: ../../library/typing.rst:1445 msgid "" "assert Annotated[int, ValueRange(3, 10)] != Annotated[\n" " int, ValueRange(3, 10), ValueRange(3, 10)\n" "]" msgstr "" -#: ../../library/typing.rst:1449 msgid "``Annotated`` can be used with nested and generic aliases:" msgstr "" -#: ../../library/typing.rst:1451 msgid "" "@dataclass\n" "class MaxLen:\n" @@ -2105,29 +1806,24 @@ msgid "" "type V = Vec[int]" msgstr "" -#: ../../library/typing.rst:1463 msgid "``Annotated`` cannot be used with an unpacked :class:`TypeVarTuple`::" msgstr "" -#: ../../library/typing.rst:1465 msgid "" "type Variadic[*Ts] = Annotated[*Ts, Ann1] = Annotated[T1, T2, T3, ..., " "Ann1] # NOT valid" msgstr "" -#: ../../library/typing.rst:1467 msgid "" "where ``T1``, ``T2``, ... are :class:`TypeVars `. This is invalid " "as only one type should be passed to Annotated." msgstr "" -#: ../../library/typing.rst:1470 msgid "" "By default, :func:`get_type_hints` strips the metadata from annotations. " "Pass ``include_extras=True`` to have the metadata preserved:" msgstr "" -#: ../../library/typing.rst:1473 msgid "" ">>> from typing import Annotated, get_type_hints\n" ">>> def func(x: Annotated[int, \"metadata\"]) -> None: pass\n" @@ -2138,13 +1834,11 @@ msgid "" "{'x': typing.Annotated[int, 'metadata'], 'return': }" msgstr "" -#: ../../library/typing.rst:1483 msgid "" "At runtime, the metadata associated with an ``Annotated`` type can be " "retrieved via the :attr:`!__metadata__` attribute:" msgstr "" -#: ../../library/typing.rst:1486 msgid "" ">>> from typing import Annotated\n" ">>> X = Annotated[int, \"very\", \"important\", \"metadata\"]\n" @@ -2154,13 +1848,11 @@ msgid "" "('very', 'important', 'metadata')" msgstr "" -#: ../../library/typing.rst:1495 msgid "" -"If you want to retrieve the original type wrapped by ``Annotated``, use " -"the :attr:`!__origin__` attribute:" +"If you want to retrieve the original type wrapped by ``Annotated``, use the :" +"attr:`!__origin__` attribute:" msgstr "" -#: ../../library/typing.rst:1498 msgid "" ">>> from typing import Annotated, get_origin\n" ">>> Password = Annotated[str, \"secret\"]\n" @@ -2168,30 +1860,24 @@ msgid "" "" msgstr "" -#: ../../library/typing.rst:1505 msgid "Note that using :func:`get_origin` will return ``Annotated`` itself:" msgstr "" -#: ../../library/typing.rst:1507 msgid "" ">>> get_origin(Password)\n" "typing.Annotated" msgstr "" -#: ../../library/typing.rst:1514 msgid ":pep:`593` - Flexible function and variable annotations" msgstr "" -#: ../../library/typing.rst:1515 msgid "The PEP introducing ``Annotated`` to the standard library." msgstr "" -#: ../../library/typing.rst:1522 ../../library/typing.rst:1606 msgid "" "Special typing construct for marking user-defined type predicate functions." msgstr "" -#: ../../library/typing.rst:1524 msgid "" "``TypeIs`` can be used to annotate the return type of a user-defined type " "predicate function. ``TypeIs`` only accepts a single type argument. At " @@ -2199,7 +1885,6 @@ msgid "" "one positional argument." msgstr "" -#: ../../library/typing.rst:1529 msgid "" "``TypeIs`` aims to benefit *type narrowing* -- a technique used by static " "type checkers to determine a more precise type of an expression within a " @@ -2209,7 +1894,6 @@ msgid "" "predicate\"::" msgstr "" -#: ../../library/typing.rst:1535 msgid "" "def is_str(val: str | float):\n" " # \"isinstance\" type predicate\n" @@ -2221,40 +1905,34 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:1544 msgid "" "Sometimes it would be convenient to use a user-defined boolean function as a " -"type predicate. Such a function should use ``TypeIs[...]`` " -"or :data:`TypeGuard` as its return type to alert static type checkers to " -"this intention. ``TypeIs`` usually has more intuitive behavior than " +"type predicate. Such a function should use ``TypeIs[...]`` or :data:" +"`TypeGuard` as its return type to alert static type checkers to this " +"intention. ``TypeIs`` usually has more intuitive behavior than " "``TypeGuard``, but it cannot be used when the input and output types are " "incompatible (e.g., ``list[object]`` to ``list[int]``) or when the function " "does not return ``True`` for all instances of the narrowed type." msgstr "" -#: ../../library/typing.rst:1552 msgid "" "Using ``-> TypeIs[NarrowedType]`` tells the static type checker that for a " "given function:" msgstr "" -#: ../../library/typing.rst:1555 ../../library/typing.rst:1616 msgid "The return value is a boolean." msgstr "" -#: ../../library/typing.rst:1556 msgid "" "If the return value is ``True``, the type of its argument is the " "intersection of the argument's original type and ``NarrowedType``." msgstr "" -#: ../../library/typing.rst:1558 msgid "" "If the return value is ``False``, the type of its argument is narrowed to " "exclude ``NarrowedType``." msgstr "" -#: ../../library/typing.rst:1563 msgid "" "from typing import assert_type, final, TypeIs\n" "\n" @@ -2278,7 +1956,6 @@ msgid "" " assert_type(arg, Unrelated)" msgstr "" -#: ../../library/typing.rst:1584 msgid "" "The type inside ``TypeIs`` must be consistent with the type of the " "function's argument; if it is not, static type checkers will raise an " @@ -2287,27 +1964,23 @@ msgid "" "functions in a type-safe manner." msgstr "" -#: ../../library/typing.rst:1590 msgid "" "If a ``TypeIs`` function is a class or instance method, then the type in " "``TypeIs`` maps to the type of the second parameter (after ``cls`` or " "``self``)." msgstr "" -#: ../../library/typing.rst:1594 msgid "" "In short, the form ``def foo(arg: TypeA) -> TypeIs[TypeB]: ...``, means that " "if ``foo(arg)`` returns ``True``, then ``arg`` is an instance of ``TypeB``, " "and if it returns ``False``, it is not an instance of ``TypeB``." msgstr "" -#: ../../library/typing.rst:1598 msgid "" -"``TypeIs`` also works with type variables. For more information, " -"see :pep:`742` (Narrowing types with ``TypeIs``)." +"``TypeIs`` also works with type variables. For more information, see :pep:" +"`742` (Narrowing types with ``TypeIs``)." msgstr "" -#: ../../library/typing.rst:1608 msgid "" "Type predicate functions are user-defined functions that return whether " "their argument is an instance of a particular type. ``TypeGuard`` works " @@ -2315,25 +1988,21 @@ msgid "" "checking behavior (see below)." msgstr "" -#: ../../library/typing.rst:1613 msgid "" "Using ``-> TypeGuard`` tells the static type checker that for a given " "function:" msgstr "" -#: ../../library/typing.rst:1617 msgid "" "If the return value is ``True``, the type of its argument is the type inside " "``TypeGuard``." msgstr "" -#: ../../library/typing.rst:1620 msgid "" "``TypeGuard`` also works with type variables. See :pep:`647` for more " "details." msgstr "" -#: ../../library/typing.rst:1624 msgid "" "def is_str_list(val: list[object]) -> TypeGuard[list[str]]:\n" " '''Determines whether all objects in the list are strings'''\n" @@ -2348,11 +2017,9 @@ msgid "" " print(\"Not a list of strings!\")" msgstr "" -#: ../../library/typing.rst:1636 msgid "``TypeIs`` and ``TypeGuard`` differ in the following ways:" msgstr "" -#: ../../library/typing.rst:1638 msgid "" "``TypeIs`` requires the narrowed type to be a subtype of the input type, " "while ``TypeGuard`` does not. The main reason is to allow for things like " @@ -2360,7 +2027,6 @@ msgid "" "subtype of the former, since ``list`` is invariant." msgstr "" -#: ../../library/typing.rst:1642 msgid "" "When a ``TypeGuard`` function returns ``True``, type checkers narrow the " "type of the variable to exactly the ``TypeGuard`` type. When a ``TypeIs`` " @@ -2369,7 +2035,6 @@ msgid "" "type. (Technically, this is known as an intersection type.)" msgstr "" -#: ../../library/typing.rst:1646 msgid "" "When a ``TypeGuard`` function returns ``False``, type checkers cannot narrow " "the type of the variable at all. When a ``TypeIs`` function returns " @@ -2377,18 +2042,15 @@ msgid "" "``TypeIs`` type." msgstr "" -#: ../../library/typing.rst:1655 msgid "Typing operator to conceptually mark an object as having been unpacked." msgstr "" -#: ../../library/typing.rst:1657 msgid "" "For example, using the unpack operator ``*`` on a :ref:`type variable tuple " "` is equivalent to using ``Unpack`` to mark the type variable " "tuple as having been unpacked::" msgstr "" -#: ../../library/typing.rst:1661 msgid "" "Ts = TypeVarTuple('Ts')\n" "tup: tuple[*Ts]\n" @@ -2396,7 +2058,6 @@ msgid "" "tup: tuple[Unpack[Ts]]" msgstr "" -#: ../../library/typing.rst:1666 msgid "" "In fact, ``Unpack`` can be used interchangeably with ``*`` in the context " "of :class:`typing.TypeVarTuple ` and :class:`builtins.tuple " @@ -2404,7 +2065,6 @@ msgid "" "versions of Python, where ``*`` couldn't be used in certain places::" msgstr "" -#: ../../library/typing.rst:1672 msgid "" "# In older versions of Python, TypeVarTuple and Unpack\n" "# are located in the `typing_extensions` backports package.\n" @@ -2415,13 +2075,11 @@ msgid "" "tup: tuple[Unpack[Ts]] # Semantically equivalent, and backwards-compatible" msgstr "" -#: ../../library/typing.rst:1680 msgid "" "``Unpack`` can also be used along with :class:`typing.TypedDict` for typing " "``**kwargs`` in a function signature::" msgstr "" -#: ../../library/typing.rst:1683 msgid "" "from typing import TypedDict, Unpack\n" "\n" @@ -2434,23 +2092,19 @@ msgid "" "def foo(**kwargs: Unpack[Movie]): ..." msgstr "" -#: ../../library/typing.rst:1693 msgid "" "See :pep:`692` for more details on using ``Unpack`` for ``**kwargs`` typing." msgstr "" -#: ../../library/typing.rst:1698 msgid "Building generic types and type aliases" msgstr "" -#: ../../library/typing.rst:1700 msgid "" "The following classes should not be used directly as annotations. Their " "intended purpose is to be building blocks for creating generic types and " "type aliases." msgstr "" -#: ../../library/typing.rst:1704 msgid "" "These objects can be created through special syntax (:ref:`type parameter " "lists ` and the :keyword:`type` statement). For compatibility " @@ -2458,17 +2112,14 @@ msgid "" "syntax, as documented below." msgstr "" -#: ../../library/typing.rst:1711 msgid "Abstract base class for generic types." msgstr "" -#: ../../library/typing.rst:1713 msgid "" "A generic type is typically declared by adding a list of type parameters " "after the class name::" msgstr "" -#: ../../library/typing.rst:1716 msgid "" "class Mapping[KT, VT]:\n" " def __getitem__(self, key: KT) -> VT:\n" @@ -2476,17 +2127,14 @@ msgid "" " # Etc." msgstr "" -#: ../../library/typing.rst:1721 msgid "" "Such a class implicitly inherits from ``Generic``. The runtime semantics of " "this syntax are discussed in the :ref:`Language Reference `." msgstr "" -#: ../../library/typing.rst:1725 msgid "This class can then be used as follows::" msgstr "" -#: ../../library/typing.rst:1727 msgid "" "def lookup_name[X, Y](mapping: Mapping[X, Y], key: X, default: Y) -> Y:\n" " try:\n" @@ -2495,20 +2143,17 @@ msgid "" " return default" msgstr "" -#: ../../library/typing.rst:1733 msgid "" "Here the brackets after the function name indicate a :ref:`generic function " "`." msgstr "" -#: ../../library/typing.rst:1736 msgid "" "For backwards compatibility, generic classes can also be declared by " "explicitly inheriting from ``Generic``. In this case, the type parameters " "must be declared separately::" msgstr "" -#: ../../library/typing.rst:1741 msgid "" "KT = TypeVar('KT')\n" "VT = TypeVar('VT')\n" @@ -2519,30 +2164,25 @@ msgid "" " # Etc." msgstr "" -#: ../../library/typing.rst:1753 msgid "Type variable." msgstr "" -#: ../../library/typing.rst:1755 msgid "" "The preferred way to construct a type variable is via the dedicated syntax " "for :ref:`generic functions `, :ref:`generic classes " "`, and :ref:`generic type aliases `::" msgstr "" -#: ../../library/typing.rst:1760 msgid "" "class Sequence[T]: # T is a TypeVar\n" " ..." msgstr "" -#: ../../library/typing.rst:1763 msgid "" "This syntax can also be used to create bounded and constrained type " "variables::" msgstr "" -#: ../../library/typing.rst:1766 msgid "" "class StrSequence[S: str]: # S is a TypeVar with a `str` upper bound;\n" " ... # we can say that S is \"bounded by `str`\"\n" @@ -2553,20 +2193,17 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:1773 msgid "" "However, if desired, reusable type variables can also be constructed " "manually, like so::" msgstr "" -#: ../../library/typing.rst:1775 msgid "" "T = TypeVar('T') # Can be anything\n" "S = TypeVar('S', bound=str) # Can be any subtype of str\n" "A = TypeVar('A', str, bytes) # Must be exactly str or bytes" msgstr "" -#: ../../library/typing.rst:1779 msgid "" "Type variables exist primarily for the benefit of static type checkers. " "They serve as the parameters for generic types as well as for generic " @@ -2574,7 +2211,6 @@ msgid "" "information on generic types. Generic functions work as follows::" msgstr "" -#: ../../library/typing.rst:1785 msgid "" "def repeat[T](x: T, n: int) -> Sequence[T]:\n" " \"\"\"Return a list containing n references to x.\"\"\"\n" @@ -2592,13 +2228,11 @@ msgid "" " return x + y" msgstr "" -#: ../../library/typing.rst:1800 msgid "" "Note that type variables can be *bounded*, *constrained*, or neither, but " "cannot be both bounded *and* constrained." msgstr "" -#: ../../library/typing.rst:1803 msgid "" "The variance of type variables is inferred by type checkers when they are " "created through the :ref:`type parameter syntax ` or when " @@ -2608,14 +2242,12 @@ msgid "" "invariant. See :pep:`484` and :pep:`695` for more details." msgstr "" -#: ../../library/typing.rst:1811 msgid "" "Bounded type variables and constrained type variables have different " "semantics in several important ways. Using a *bounded* type variable means " "that the ``TypeVar`` will be solved using the most specific type possible::" msgstr "" -#: ../../library/typing.rst:1815 msgid "" "x = print_capitalized('a string')\n" "reveal_type(x) # revealed type is str\n" @@ -2629,13 +2261,11 @@ msgid "" "z = print_capitalized(45) # error: int is not a subtype of str" msgstr "" -#: ../../library/typing.rst:1826 msgid "" "The upper bound of a type variable can be a concrete type, abstract type " "(ABC or Protocol), or even a union of types::" msgstr "" -#: ../../library/typing.rst:1829 msgid "" "# Can be anything with an __abs__ method\n" "def print_abs[T: SupportsAbs](arg: T) -> None:\n" @@ -2646,13 +2276,11 @@ msgid "" "V = TypeVar('V', bound=SupportsAbs) # Can be anything with an __abs__ method" msgstr "" -#: ../../library/typing.rst:1838 msgid "" "Using a *constrained* type variable, however, means that the ``TypeVar`` can " "only ever be solved as being exactly one of the constraints given::" msgstr "" -#: ../../library/typing.rst:1841 msgid "" "a = concatenate('one', 'two')\n" "reveal_type(a) # revealed type is str\n" @@ -2665,131 +2293,107 @@ msgid "" "or bytes in a function call, but not both" msgstr "" -#: ../../library/typing.rst:1849 msgid "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`." msgstr "" -#: ../../library/typing.rst:1853 msgid "The name of the type variable." msgstr "" -#: ../../library/typing.rst:1857 msgid "Whether the type var has been explicitly marked as covariant." msgstr "" -#: ../../library/typing.rst:1861 msgid "Whether the type var has been explicitly marked as contravariant." msgstr "" -#: ../../library/typing.rst:1865 msgid "" "Whether the type variable's variance should be inferred by type checkers." msgstr "" -#: ../../library/typing.rst:1871 msgid "The upper bound of the type variable, if any." msgstr "" -#: ../../library/typing.rst:1875 msgid "" "For type variables created through :ref:`type parameter syntax `, the bound is evaluated only when the attribute is accessed, not " "when the type variable is created (see :ref:`lazy-evaluation`)." msgstr "" -#: ../../library/typing.rst:1881 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~TypeVar.__bound__` " -"attribute. When called directly, this method supports only " -"the :attr:`~annotationlib.Format.VALUE` format, which is equivalent to " -"accessing the :attr:`~TypeVar.__bound__` attribute directly, but the method " -"object can be passed to :func:`annotationlib.call_evaluate_function` to " -"evaluate the value in a different format." +"attribute. When called directly, this method supports only the :attr:" +"`~annotationlib.Format.VALUE` format, which is equivalent to accessing the :" +"attr:`~TypeVar.__bound__` attribute directly, but the method object can be " +"passed to :func:`annotationlib.call_evaluate_function` to evaluate the value " +"in a different format." msgstr "" -#: ../../library/typing.rst:1891 msgid "A tuple containing the constraints of the type variable, if any." msgstr "" -#: ../../library/typing.rst:1895 msgid "" "For type variables created through :ref:`type parameter syntax `, the constraints are evaluated only when the attribute is accessed, " "not when the type variable is created (see :ref:`lazy-evaluation`)." msgstr "" -#: ../../library/typing.rst:1901 msgid "" -"An :term:`evaluate function` corresponding to " -"the :attr:`~TypeVar.__constraints__` attribute. When called directly, this " -"method supports only the :attr:`~annotationlib.Format.VALUE` format, which " -"is equivalent to accessing the :attr:`~TypeVar.__constraints__` attribute " -"directly, but the method object can be passed " -"to :func:`annotationlib.call_evaluate_function` to evaluate the value in a " -"different format." +"An :term:`evaluate function` corresponding to the :attr:`~TypeVar." +"__constraints__` attribute. When called directly, this method supports only " +"the :attr:`~annotationlib.Format.VALUE` format, which is equivalent to " +"accessing the :attr:`~TypeVar.__constraints__` attribute directly, but the " +"method object can be passed to :func:`annotationlib.call_evaluate_function` " +"to evaluate the value in a different format." msgstr "" -#: ../../library/typing.rst:1911 msgid "" "The default value of the type variable, or :data:`typing.NoDefault` if it " "has no default." msgstr "" -#: ../../library/typing.rst:1918 msgid "" -"An :term:`evaluate function` corresponding to " -"the :attr:`~TypeVar.__default__` attribute. When called directly, this " -"method supports only the :attr:`~annotationlib.Format.VALUE` format, which " -"is equivalent to accessing the :attr:`~TypeVar.__default__` attribute " -"directly, but the method object can be passed " -"to :func:`annotationlib.call_evaluate_function` to evaluate the value in a " -"different format." +"An :term:`evaluate function` corresponding to the :attr:`~TypeVar." +"__default__` attribute. When called directly, this method supports only the :" +"attr:`~annotationlib.Format.VALUE` format, which is equivalent to accessing " +"the :attr:`~TypeVar.__default__` attribute directly, but the method object " +"can be passed to :func:`annotationlib.call_evaluate_function` to evaluate " +"the value in a different format." msgstr "" -#: ../../library/typing.rst:1928 msgid "" "Return whether or not the type variable has a default value. This is " -"equivalent to checking whether :attr:`__default__` is not " -"the :data:`typing.NoDefault` singleton, except that it does not force " -"evaluation of the :ref:`lazily evaluated ` default value." +"equivalent to checking whether :attr:`__default__` is not the :data:`typing." +"NoDefault` singleton, except that it does not force evaluation of the :ref:" +"`lazily evaluated ` default value." msgstr "" -#: ../../library/typing.rst:1937 msgid "" "Type variables can now be declared using the :ref:`type parameter ` syntax introduced by :pep:`695`. The ``infer_variance`` parameter " "was added." msgstr "" -#: ../../library/typing.rst:1943 ../../library/typing.rst:2092 -#: ../../library/typing.rst:2204 msgid "Support for default values was added." msgstr "" -#: ../../library/typing.rst:1949 msgid "" "Type variable tuple. A specialized form of :ref:`type variable ` " "that enables *variadic* generics." msgstr "" -#: ../../library/typing.rst:1952 msgid "" "Type variable tuples can be declared in :ref:`type parameter lists ` using a single asterisk (``*``) before the name::" msgstr "" -#: ../../library/typing.rst:1955 msgid "" "def move_first_element_to_last[T, *Ts](tup: tuple[T, *Ts]) -> tuple[*Ts, " "T]:\n" " return (*tup[1:], tup[0])" msgstr "" -#: ../../library/typing.rst:1958 msgid "Or by explicitly invoking the ``TypeVarTuple`` constructor::" msgstr "" -#: ../../library/typing.rst:1960 msgid "" "T = TypeVar(\"T\")\n" "Ts = TypeVarTuple(\"Ts\")\n" @@ -2798,7 +2402,6 @@ msgid "" " return (*tup[1:], tup[0])" msgstr "" -#: ../../library/typing.rst:1966 msgid "" "A normal type variable enables parameterization with a single type. A type " "variable tuple, in contrast, allows parameterization with an *arbitrary* " @@ -2806,7 +2409,6 @@ msgid "" "wrapped in a tuple. For example::" msgstr "" -#: ../../library/typing.rst:1971 msgid "" "# T is bound to int, Ts is bound to ()\n" "# Return value is (1,), which has type tuple[int]\n" @@ -2826,7 +2428,6 @@ msgid "" "move_first_element_to_last(tup=())" msgstr "" -#: ../../library/typing.rst:1988 msgid "" "Note the use of the unpacking operator ``*`` in ``tuple[T, *Ts]``. " "Conceptually, you can think of ``Ts`` as a tuple of type variables ``(T1, " @@ -2836,26 +2437,22 @@ msgid "" "` instead, as ``Unpack[Ts]``.)" msgstr "" -#: ../../library/typing.rst:1996 msgid "" "Type variable tuples must *always* be unpacked. This helps distinguish type " "variable tuples from normal type variables::" msgstr "" -#: ../../library/typing.rst:1999 msgid "" "x: Ts # Not valid\n" "x: tuple[Ts] # Not valid\n" "x: tuple[*Ts] # The correct way to do it" msgstr "" -#: ../../library/typing.rst:2003 msgid "" "Type variable tuples can be used in the same contexts as normal type " "variables. For example, in class definitions, arguments, and return types::" msgstr "" -#: ../../library/typing.rst:2006 msgid "" "class Array[*Shape]:\n" " def __getitem__(self, key: tuple[*Shape]) -> float: ...\n" @@ -2863,12 +2460,10 @@ msgid "" " def get_shape(self) -> tuple[*Shape]: ..." msgstr "" -#: ../../library/typing.rst:2011 msgid "" "Type variable tuples can be happily combined with normal type variables:" msgstr "" -#: ../../library/typing.rst:2013 msgid "" "class Array[DType, *Shape]: # This is fine\n" " pass\n" @@ -2883,26 +2478,22 @@ msgid "" "int_array_2d: Array[int, Height, Width] = Array() # Yup, fine too" msgstr "" -#: ../../library/typing.rst:2027 msgid "" "However, note that at most one type variable tuple may appear in a single " "list of type arguments or type parameters::" msgstr "" -#: ../../library/typing.rst:2030 msgid "" "x: tuple[*Ts, *Ts] # Not valid\n" "class Array[*Shape, *Shape]: # Not valid\n" " pass" msgstr "" -#: ../../library/typing.rst:2034 msgid "" "Finally, an unpacked type variable tuple can be used as the type annotation " "of ``*args``::" msgstr "" -#: ../../library/typing.rst:2037 msgid "" "def call_soon[*Ts](\n" " callback: Callable[[*Ts], None],\n" @@ -2912,7 +2503,6 @@ msgid "" " callback(*args)" msgstr "" -#: ../../library/typing.rst:2044 msgid "" "In contrast to non-unpacked annotations of ``*args`` - e.g. ``*args: int``, " "which would specify that *all* arguments are ``int`` - ``*args: *Ts`` " @@ -2921,72 +2511,59 @@ msgid "" "``call_soon`` match the types of the (positional) arguments of ``callback``." msgstr "" -#: ../../library/typing.rst:2051 msgid "See :pep:`646` for more details on type variable tuples." msgstr "" -#: ../../library/typing.rst:2055 msgid "The name of the type variable tuple." msgstr "" -#: ../../library/typing.rst:2059 msgid "" "The default value of the type variable tuple, or :data:`typing.NoDefault` if " "it has no default." msgstr "" -#: ../../library/typing.rst:2066 msgid "" -"An :term:`evaluate function` corresponding to " -"the :attr:`~TypeVarTuple.__default__` attribute. When called directly, this " -"method supports only the :attr:`~annotationlib.Format.VALUE` format, which " -"is equivalent to accessing the :attr:`~TypeVarTuple.__default__` attribute " -"directly, but the method object can be passed " -"to :func:`annotationlib.call_evaluate_function` to evaluate the value in a " -"different format." +"An :term:`evaluate function` corresponding to the :attr:`~TypeVarTuple." +"__default__` attribute. When called directly, this method supports only the :" +"attr:`~annotationlib.Format.VALUE` format, which is equivalent to accessing " +"the :attr:`~TypeVarTuple.__default__` attribute directly, but the method " +"object can be passed to :func:`annotationlib.call_evaluate_function` to " +"evaluate the value in a different format." msgstr "" -#: ../../library/typing.rst:2076 msgid "" "Return whether or not the type variable tuple has a default value. This is " -"equivalent to checking whether :attr:`__default__` is not " -"the :data:`typing.NoDefault` singleton, except that it does not force " -"evaluation of the :ref:`lazily evaluated ` default value." +"equivalent to checking whether :attr:`__default__` is not the :data:`typing." +"NoDefault` singleton, except that it does not force evaluation of the :ref:" +"`lazily evaluated ` default value." msgstr "" -#: ../../library/typing.rst:2087 msgid "" "Type variable tuples can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: ../../library/typing.rst:2096 msgid "" "Parameter specification variable. A specialized version of :ref:`type " "variables `." msgstr "" -#: ../../library/typing.rst:2099 msgid "" "In :ref:`type parameter lists `, parameter specifications can " "be declared with two asterisks (``**``)::" msgstr "" -#: ../../library/typing.rst:2102 msgid "type IntFunc[**P] = Callable[P, int]" msgstr "" -#: ../../library/typing.rst:2104 msgid "" "For compatibility with Python 3.11 and earlier, ``ParamSpec`` objects can " "also be created as follows::" msgstr "" -#: ../../library/typing.rst:2107 msgid "P = ParamSpec('P')" msgstr "" -#: ../../library/typing.rst:2109 msgid "" "Parameter specification variables exist primarily for the benefit of static " "type checkers. They are used to forward the parameter types of one callable " @@ -2996,7 +2573,6 @@ msgid "" "See :class:`Generic` for more information on generic types." msgstr "" -#: ../../library/typing.rst:2116 msgid "" "For example, to add basic logging to a function, one can create a decorator " "``add_logging`` to log function calls. The parameter specification variable " @@ -3004,7 +2580,6 @@ msgid "" "new callable returned by it have inter-dependent type parameters::" msgstr "" -#: ../../library/typing.rst:2121 msgid "" "from collections.abc import Callable\n" "import logging\n" @@ -3022,109 +2597,92 @@ msgid "" " return x + y" msgstr "" -#: ../../library/typing.rst:2136 msgid "" "Without ``ParamSpec``, the simplest way to annotate this previously was to " "use a :class:`TypeVar` with upper bound ``Callable[..., Any]``. However " "this causes two problems:" msgstr "" -#: ../../library/typing.rst:2140 msgid "" "The type checker can't type check the ``inner`` function because ``*args`` " "and ``**kwargs`` have to be typed :data:`Any`." msgstr "" -#: ../../library/typing.rst:2142 msgid "" ":func:`~cast` may be required in the body of the ``add_logging`` decorator " "when returning the ``inner`` function, or the static type checker must be " "told to ignore the ``return inner``." msgstr "" -#: ../../library/typing.rst:2149 msgid "" -"Since ``ParamSpec`` captures both positional and keyword parameters, " -"``P.args`` and ``P.kwargs`` can be used to split a ``ParamSpec`` into its " +"Since ``ParamSpec`` captures both positional and keyword parameters, ``P." +"args`` and ``P.kwargs`` can be used to split a ``ParamSpec`` into its " "components. ``P.args`` represents the tuple of positional parameters in a " "given call and should only be used to annotate ``*args``. ``P.kwargs`` " "represents the mapping of keyword parameters to their values in a given " "call, and should be only be used to annotate ``**kwargs``. Both attributes " "require the annotated parameter to be in scope. At runtime, ``P.args`` and " -"``P.kwargs`` are instances respectively of :class:`ParamSpecArgs` " -"and :class:`ParamSpecKwargs`." +"``P.kwargs`` are instances respectively of :class:`ParamSpecArgs` and :class:" +"`ParamSpecKwargs`." msgstr "" -#: ../../library/typing.rst:2161 msgid "The name of the parameter specification." msgstr "" -#: ../../library/typing.rst:2165 msgid "" -"The default value of the parameter specification, " -"or :data:`typing.NoDefault` if it has no default." +"The default value of the parameter specification, or :data:`typing." +"NoDefault` if it has no default." msgstr "" -#: ../../library/typing.rst:2172 msgid "" -"An :term:`evaluate function` corresponding to " -"the :attr:`~ParamSpec.__default__` attribute. When called directly, this " -"method supports only the :attr:`~annotationlib.Format.VALUE` format, which " -"is equivalent to accessing the :attr:`~ParamSpec.__default__` attribute " -"directly, but the method object can be passed " -"to :func:`annotationlib.call_evaluate_function` to evaluate the value in a " -"different format." +"An :term:`evaluate function` corresponding to the :attr:`~ParamSpec." +"__default__` attribute. When called directly, this method supports only the :" +"attr:`~annotationlib.Format.VALUE` format, which is equivalent to accessing " +"the :attr:`~ParamSpec.__default__` attribute directly, but the method object " +"can be passed to :func:`annotationlib.call_evaluate_function` to evaluate " +"the value in a different format." msgstr "" -#: ../../library/typing.rst:2182 msgid "" "Return whether or not the parameter specification has a default value. This " -"is equivalent to checking whether :attr:`__default__` is not " -"the :data:`typing.NoDefault` singleton, except that it does not force " -"evaluation of the :ref:`lazily evaluated ` default value." +"is equivalent to checking whether :attr:`__default__` is not the :data:" +"`typing.NoDefault` singleton, except that it does not force evaluation of " +"the :ref:`lazily evaluated ` default value." msgstr "" -#: ../../library/typing.rst:2189 msgid "" "Parameter specification variables created with ``covariant=True`` or " "``contravariant=True`` can be used to declare covariant or contravariant " -"generic types. The ``bound`` argument is also accepted, similar " -"to :class:`TypeVar`. However the actual semantics of these keywords are yet " -"to be decided." +"generic types. The ``bound`` argument is also accepted, similar to :class:" +"`TypeVar`. However the actual semantics of these keywords are yet to be " +"decided." msgstr "" -#: ../../library/typing.rst:2199 msgid "" "Parameter specifications can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: ../../library/typing.rst:2207 msgid "" "Only parameter specification variables defined in global scope can be " "pickled." msgstr "" -#: ../../library/typing.rst:2213 msgid ":data:`Concatenate`" msgstr "" -#: ../../library/typing.rst:2219 msgid "" -"Arguments and keyword arguments attributes of a :class:`ParamSpec`. The " -"``P.args`` attribute of a ``ParamSpec`` is an instance of ``ParamSpecArgs``, " -"and ``P.kwargs`` is an instance of ``ParamSpecKwargs``. They are intended " -"for runtime introspection and have no special meaning to static type " -"checkers." +"Arguments and keyword arguments attributes of a :class:`ParamSpec`. The ``P." +"args`` attribute of a ``ParamSpec`` is an instance of ``ParamSpecArgs``, and " +"``P.kwargs`` is an instance of ``ParamSpecKwargs``. They are intended for " +"runtime introspection and have no special meaning to static type checkers." msgstr "" -#: ../../library/typing.rst:2224 msgid "" "Calling :func:`get_origin` on either of these objects will return the " "original ``ParamSpec``:" msgstr "" -#: ../../library/typing.rst:2227 msgid "" ">>> from typing import ParamSpec, get_origin\n" ">>> P = ParamSpec(\"P\")\n" @@ -3134,46 +2692,38 @@ msgid "" "True" msgstr "" -#: ../../library/typing.rst:2241 msgid "The type of type aliases created through the :keyword:`type` statement." msgstr "" -#: ../../library/typing.rst:2245 msgid "" ">>> type Alias = int\n" ">>> type(Alias)\n" "" msgstr "" -#: ../../library/typing.rst:2255 msgid "The name of the type alias:" msgstr "" -#: ../../library/typing.rst:2257 msgid "" ">>> type Alias = int\n" ">>> Alias.__name__\n" "'Alias'" msgstr "" -#: ../../library/typing.rst:2265 msgid "The module in which the type alias was defined::" msgstr "" -#: ../../library/typing.rst:2267 msgid "" ">>> type Alias = int\n" ">>> Alias.__module__\n" "'__main__'" msgstr "" -#: ../../library/typing.rst:2273 msgid "" "The type parameters of the type alias, or an empty tuple if the alias is not " "generic:" msgstr "" -#: ../../library/typing.rst:2276 msgid "" ">>> type ListOrSet[T] = list[T] | set[T]\n" ">>> ListOrSet.__type_params__\n" @@ -3183,14 +2733,12 @@ msgid "" "()" msgstr "" -#: ../../library/typing.rst:2287 msgid "" "The type alias's value. This is :ref:`lazily evaluated `, " "so names used in the definition of the alias are not resolved until the " "``__value__`` attribute is accessed:" msgstr "" -#: ../../library/typing.rst:2291 msgid "" ">>> type Mutually = Recursive\n" ">>> type Recursive = Mutually\n" @@ -3204,17 +2752,15 @@ msgid "" "Mutually" msgstr "" -#: ../../library/typing.rst:2306 msgid "" "An :term:`evaluate function` corresponding to the :attr:`__value__` " -"attribute. When called directly, this method supports only " -"the :attr:`~annotationlib.Format.VALUE` format, which is equivalent to " -"accessing the :attr:`__value__` attribute directly, but the method object " -"can be passed to :func:`annotationlib.call_evaluate_function` to evaluate " -"the value in a different format:" +"attribute. When called directly, this method supports only the :attr:" +"`~annotationlib.Format.VALUE` format, which is equivalent to accessing the :" +"attr:`__value__` attribute directly, but the method object can be passed to :" +"func:`annotationlib.call_evaluate_function` to evaluate the value in a " +"different format:" msgstr "" -#: ../../library/typing.rst:2312 msgid "" ">>> type Alias = undefined\n" ">>> Alias.__value__\n" @@ -3230,17 +2776,14 @@ msgid "" "ForwardRef('undefined')" msgstr "" -#: ../../library/typing.rst:2330 msgid "Unpacking" msgstr "" -#: ../../library/typing.rst:2331 msgid "" "Type aliases support star unpacking using the ``*Alias`` syntax. This is " "equivalent to using ``Unpack[Alias]`` directly:" msgstr "" -#: ../../library/typing.rst:2334 msgid "" ">>> type Alias = tuple[int, str]\n" ">>> type Unpacked = tuple[bool, *Alias]\n" @@ -3248,47 +2791,37 @@ msgid "" "tuple[bool, typing.Unpack[Alias]]" msgstr "" -#: ../../library/typing.rst:2345 msgid "Other special directives" msgstr "" -#: ../../library/typing.rst:2347 msgid "" "These functions and classes should not be used directly as annotations. " "Their intended purpose is to be building blocks for creating and declaring " "types." msgstr "" -#: ../../library/typing.rst:2353 msgid "Typed version of :func:`collections.namedtuple`." msgstr "" -#: ../../library/typing.rst:2355 ../../library/typing.rst:2451 -#: ../../library/typing.rst:3545 msgid "Usage::" msgstr "" -#: ../../library/typing.rst:2357 msgid "" "class Employee(NamedTuple):\n" " name: str\n" " id: int" msgstr "" -#: ../../library/typing.rst:2361 msgid "This is equivalent to::" msgstr "" -#: ../../library/typing.rst:2363 msgid "Employee = collections.namedtuple('Employee', ['name', 'id'])" msgstr "" -#: ../../library/typing.rst:2365 msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" -#: ../../library/typing.rst:2367 msgid "" "class Employee(NamedTuple):\n" " name: str\n" @@ -3298,12 +2831,10 @@ msgid "" "assert employee.id == 3" msgstr "" -#: ../../library/typing.rst:2374 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" -#: ../../library/typing.rst:2376 msgid "" "The resulting class has an extra attribute ``__annotations__`` giving a dict " "that maps the field names to the field types. (The field names are in the " @@ -3312,11 +2843,9 @@ msgid "" "API.)" msgstr "" -#: ../../library/typing.rst:2382 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" -#: ../../library/typing.rst:2384 msgid "" "class Employee(NamedTuple):\n" " \"\"\"Represents an employee.\"\"\"\n" @@ -3327,22 +2856,18 @@ msgid "" " return f''" msgstr "" -#: ../../library/typing.rst:2392 msgid "``NamedTuple`` subclasses can be generic::" msgstr "" -#: ../../library/typing.rst:2394 msgid "" "class Group[T](NamedTuple):\n" " key: T\n" " group: list[T]" msgstr "" -#: ../../library/typing.rst:2398 msgid "Backward-compatible usage::" msgstr "" -#: ../../library/typing.rst:2400 msgid "" "# For creating a generic NamedTuple on Python 3.11\n" "T = TypeVar(\"T\")\n" @@ -3355,45 +2880,37 @@ msgid "" "Employee = NamedTuple('Employee', [('name', str), ('id', int)])" msgstr "" -#: ../../library/typing.rst:2410 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" -#: ../../library/typing.rst:2413 msgid "Added support for default values, methods, and docstrings." msgstr "" -#: ../../library/typing.rst:2416 msgid "" "The ``_field_types`` and ``__annotations__`` attributes are now regular " "dictionaries instead of instances of ``OrderedDict``." msgstr "" -#: ../../library/typing.rst:2420 msgid "" "Removed the ``_field_types`` attribute in favor of the more standard " "``__annotations__`` attribute which has the same information." msgstr "" -#: ../../library/typing.rst:2424 msgid "Added support for generic namedtuples." msgstr "" -#: ../../library/typing.rst:2427 msgid "" "Using :func:`super` (and the ``__class__`` :term:`closure variable`) in " -"methods of ``NamedTuple`` subclasses is unsupported and causes " -"a :class:`TypeError`." +"methods of ``NamedTuple`` subclasses is unsupported and causes a :class:" +"`TypeError`." msgstr "" -#: ../../library/typing.rst:2431 msgid "" "The undocumented keyword argument syntax for creating NamedTuple classes " "(``NT = NamedTuple(\"NT\", x=int)``) is deprecated, and will be disallowed " "in 3.15. Use the class-based syntax or the functional syntax instead." msgstr "" -#: ../../library/typing.rst:2436 msgid "" "When using the functional syntax to create a NamedTuple class, failing to " "pass a value to the 'fields' parameter (``NT = NamedTuple(\"NT\")``) is " @@ -3403,61 +2920,49 @@ msgid "" "NT(NamedTuple): pass`` or ``NT = NamedTuple(\"NT\", [])``." msgstr "" -#: ../../library/typing.rst:2446 msgid "Helper class to create low-overhead :ref:`distinct types `." msgstr "" -#: ../../library/typing.rst:2448 msgid "" "A ``NewType`` is considered a distinct type by a typechecker. At runtime, " "however, calling a ``NewType`` returns its argument unchanged." msgstr "" -#: ../../library/typing.rst:2453 msgid "" "UserId = NewType('UserId', int) # Declare the NewType \"UserId\"\n" "first_user = UserId(1) # \"UserId\" returns the argument unchanged at " "runtime" msgstr "" -#: ../../library/typing.rst:2458 msgid "The module in which the new type is defined." msgstr "" -#: ../../library/typing.rst:2462 msgid "The name of the new type." msgstr "" -#: ../../library/typing.rst:2466 msgid "The type that the new type is based on." msgstr "" -#: ../../library/typing.rst:2470 msgid "``NewType`` is now a class rather than a function." msgstr "" -#: ../../library/typing.rst:2475 msgid "Base class for protocol classes." msgstr "" -#: ../../library/typing.rst:2477 msgid "Protocol classes are defined like this::" msgstr "" -#: ../../library/typing.rst:2479 msgid "" "class Proto(Protocol):\n" " def meth(self) -> int:\n" " ..." msgstr "" -#: ../../library/typing.rst:2483 msgid "" "Such classes are primarily used with static type checkers that recognize " "structural subtyping (static duck-typing), for example::" msgstr "" -#: ../../library/typing.rst:2486 msgid "" "class C:\n" " def meth(self) -> int:\n" @@ -3469,33 +2974,28 @@ msgid "" "func(C()) # Passes static type check" msgstr "" -#: ../../library/typing.rst:2495 msgid "" -"See :pep:`544` for more details. Protocol classes decorated " -"with :func:`runtime_checkable` (described later) act as simple-minded " -"runtime protocols that check only the presence of given attributes, ignoring " -"their type signatures. Protocol classes without this decorator cannot be " -"used as the second argument to :func:`isinstance` or :func:`issubclass`." +"See :pep:`544` for more details. Protocol classes decorated with :func:" +"`runtime_checkable` (described later) act as simple-minded runtime protocols " +"that check only the presence of given attributes, ignoring their type " +"signatures. Protocol classes without this decorator cannot be used as the " +"second argument to :func:`isinstance` or :func:`issubclass`." msgstr "" -#: ../../library/typing.rst:2501 msgid "Protocol classes can be generic, for example::" msgstr "" -#: ../../library/typing.rst:2503 msgid "" "class GenProto[T](Protocol):\n" " def meth(self) -> T:\n" " ..." msgstr "" -#: ../../library/typing.rst:2507 msgid "" "In code that needs to be compatible with Python 3.11 or older, generic " "Protocols can be written as follows::" msgstr "" -#: ../../library/typing.rst:2510 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3504,19 +3004,16 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:2520 msgid "Mark a protocol class as a runtime protocol." msgstr "" -#: ../../library/typing.rst:2522 msgid "" "Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " "This allows a simple-minded structural check, very similar to \"one trick " -"ponies\" in :mod:`collections.abc` such " -"as :class:`~collections.abc.Iterable`. For example::" +"ponies\" in :mod:`collections.abc` such as :class:`~collections.abc." +"Iterable`. For example::" msgstr "" -#: ../../library/typing.rst:2526 msgid "" "@runtime_checkable\n" "class Closable(Protocol):\n" @@ -3532,23 +3029,20 @@ msgid "" "assert isinstance(threading.Thread(name='Bob'), Named)" msgstr "" -#: ../../library/typing.rst:2539 msgid "" "This decorator raises :exc:`TypeError` when applied to a non-protocol class." msgstr "" -#: ../../library/typing.rst:2543 msgid "" ":func:`!runtime_checkable` will check only the presence of the required " -"methods or attributes, not their type signatures or types. For " -"example, :class:`ssl.SSLObject` is a class, therefore it passes " -"an :func:`issubclass` check against :ref:`Callable `. " -"However, the ``ssl.SSLObject.__init__`` method exists only to raise " -"a :exc:`TypeError` with a more informative message, therefore making it " -"impossible to call (instantiate) :class:`ssl.SSLObject`." +"methods or attributes, not their type signatures or types. For example, :" +"class:`ssl.SSLObject` is a class, therefore it passes an :func:`issubclass` " +"check against :ref:`Callable `. However, the ``ssl." +"SSLObject.__init__`` method exists only to raise a :exc:`TypeError` with a " +"more informative message, therefore making it impossible to call " +"(instantiate) :class:`ssl.SSLObject`." msgstr "" -#: ../../library/typing.rst:2554 msgid "" "An :func:`isinstance` check against a runtime-checkable protocol can be " "surprisingly slow compared to an ``isinstance()`` check against a non-" @@ -3556,7 +3050,6 @@ msgid "" "calls for structural checks in performance-sensitive code." msgstr "" -#: ../../library/typing.rst:2562 msgid "" "The internal implementation of :func:`isinstance` checks against runtime-" "checkable protocols now uses :func:`inspect.getattr_static` to look up " @@ -3566,23 +3059,19 @@ msgid "" "versa. Most users are unlikely to be affected by this change." msgstr "" -#: ../../library/typing.rst:2571 msgid "" "The members of a runtime-checkable protocol are now considered \"frozen\" at " "runtime as soon as the class has been created. Monkey-patching attributes " "onto a runtime-checkable protocol will still work, but will have no impact " -"on :func:`isinstance` checks comparing objects to the protocol. " -"See :ref:`\"What's new in Python 3.12\" ` for more " -"details." +"on :func:`isinstance` checks comparing objects to the protocol. See :ref:" +"`What's new in Python 3.12 ` for more details." msgstr "" -#: ../../library/typing.rst:2582 msgid "" "Special construct to add type hints to a dictionary. At runtime it is a " "plain :class:`dict`." msgstr "" -#: ../../library/typing.rst:2585 msgid "" "``TypedDict`` declares a dictionary type that expects all of its instances " "to have a certain set of keys, where each key is associated with a value of " @@ -3590,7 +3079,6 @@ msgid "" "enforced by type checkers. Usage::" msgstr "" -#: ../../library/typing.rst:2591 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3603,25 +3091,21 @@ msgid "" "assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')" msgstr "" -#: ../../library/typing.rst:2601 msgid "" "An alternative way to create a ``TypedDict`` is by using function-call " "syntax. The second argument must be a literal :class:`dict`::" msgstr "" -#: ../../library/typing.rst:2604 msgid "Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})" msgstr "" -#: ../../library/typing.rst:2606 msgid "" -"This functional syntax allows defining keys which are not " -"valid :ref:`identifiers `, for example because they are " -"keywords or contain hyphens, or when key names must not be :ref:`mangled " -"` like regular private names::" +"This functional syntax allows defining keys which are not valid :ref:" +"`identifiers `, for example because they are keywords or " +"contain hyphens, or when key names must not be :ref:`mangled ` like regular private names::" msgstr "" -#: ../../library/typing.rst:2611 msgid "" "# raises SyntaxError\n" "class Point2D(TypedDict):\n" @@ -3636,13 +3120,11 @@ msgid "" "Definition = TypedDict('Definition', {'__schema': str}) # not mangled" msgstr "" -#: ../../library/typing.rst:2623 msgid "" "By default, all keys must be present in a ``TypedDict``. It is possible to " "mark individual keys as non-required using :data:`NotRequired`::" msgstr "" -#: ../../library/typing.rst:2626 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3654,19 +3136,16 @@ msgid "" "NotRequired[str]})" msgstr "" -#: ../../library/typing.rst:2634 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have the ``label`` key " "omitted." msgstr "" -#: ../../library/typing.rst:2637 msgid "" "It is also possible to mark all keys as non-required by default by " "specifying a totality of ``False``::" msgstr "" -#: ../../library/typing.rst:2640 msgid "" "class Point2D(TypedDict, total=False):\n" " x: int\n" @@ -3676,7 +3155,6 @@ msgid "" "Point2D = TypedDict('Point2D', {'x': int, 'y': int}, total=False)" msgstr "" -#: ../../library/typing.rst:2647 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have any of the keys " "omitted. A type checker is only expected to support a literal ``False`` or " @@ -3684,13 +3162,11 @@ msgid "" "and makes all items defined in the class body required." msgstr "" -#: ../../library/typing.rst:2652 msgid "" "Individual keys of a ``total=False`` ``TypedDict`` can be marked as required " "using :data:`Required`::" msgstr "" -#: ../../library/typing.rst:2655 msgid "" "class Point2D(TypedDict, total=False):\n" " x: Required[int]\n" @@ -3705,25 +3181,21 @@ msgid "" "}, total=False)" msgstr "" -#: ../../library/typing.rst:2667 msgid "" "It is possible for a ``TypedDict`` type to inherit from one or more other " "``TypedDict`` types using the class-based syntax. Usage::" msgstr "" -#: ../../library/typing.rst:2671 msgid "" "class Point3D(Point2D):\n" " z: int" msgstr "" -#: ../../library/typing.rst:2674 msgid "" "``Point3D`` has three items: ``x``, ``y`` and ``z``. It is equivalent to " "this definition::" msgstr "" -#: ../../library/typing.rst:2677 msgid "" "class Point3D(TypedDict):\n" " x: int\n" @@ -3731,13 +3203,11 @@ msgid "" " z: int" msgstr "" -#: ../../library/typing.rst:2682 msgid "" "A ``TypedDict`` cannot inherit from a non-\\ ``TypedDict`` class, except " "for :class:`Generic`. For example::" msgstr "" -#: ../../library/typing.rst:2685 msgid "" "class X(TypedDict):\n" " x: int\n" @@ -3752,24 +3222,20 @@ msgid "" "class XZ(X, Z): pass # raises TypeError" msgstr "" -#: ../../library/typing.rst:2697 msgid "A ``TypedDict`` can be generic::" msgstr "" -#: ../../library/typing.rst:2699 msgid "" "class Group[T](TypedDict):\n" " key: T\n" " group: list[T]" msgstr "" -#: ../../library/typing.rst:2703 msgid "" "To create a generic ``TypedDict`` that is compatible with Python 3.11 or " "lower, inherit from :class:`Generic` explicitly:" msgstr "" -#: ../../library/typing.rst:2706 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3778,20 +3244,16 @@ msgid "" " group: list[T]" msgstr "" -#: ../../library/typing.rst:2714 msgid "" -"A ``TypedDict`` can be introspected via annotations dicts " -"(see :ref:`annotations-howto` for more information on annotations best " -"practices), :attr:`__total__`, :attr:`__required_keys__`, " -"and :attr:`__optional_keys__`." +"A ``TypedDict`` can be introspected via annotations dicts (see :ref:" +"`annotations-howto` for more information on annotations best practices), :" +"attr:`__total__`, :attr:`__required_keys__`, and :attr:`__optional_keys__`." msgstr "" -#: ../../library/typing.rst:2720 msgid "" "``Point2D.__total__`` gives the value of the ``total`` argument. Example:" msgstr "" -#: ../../library/typing.rst:2723 msgid "" ">>> from typing import TypedDict\n" ">>> class Point2D(TypedDict): pass\n" @@ -3805,7 +3267,6 @@ msgid "" "True" msgstr "" -#: ../../library/typing.rst:2736 msgid "" "This attribute reflects *only* the value of the ``total`` argument to the " "current ``TypedDict`` class, not whether the class is semantically total. " @@ -3816,21 +3277,18 @@ msgid "" "introspection." msgstr "" -#: ../../library/typing.rst:2749 msgid "" -"``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` " -"return :class:`frozenset` objects containing required and non-required keys, " +"``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :" +"class:`frozenset` objects containing required and non-required keys, " "respectively." msgstr "" -#: ../../library/typing.rst:2752 msgid "" "Keys marked with :data:`Required` will always appear in " "``__required_keys__`` and keys marked with :data:`NotRequired` will always " "appear in ``__optional_keys__``." msgstr "" -#: ../../library/typing.rst:2755 msgid "" "For backwards compatibility with Python 3.10 and below, it is also possible " "to use inheritance to declare both required and non-required keys in the " @@ -3839,7 +3297,6 @@ msgid "" "``TypedDict`` with a different value for ``total``:" msgstr "" -#: ../../library/typing.rst:2762 msgid "" ">>> class Point2D(TypedDict, total=False):\n" "... x: int\n" @@ -3854,7 +3311,6 @@ msgid "" "True" msgstr "" -#: ../../library/typing.rst:2780 msgid "" "If ``from __future__ import annotations`` is used or if annotations are " "given as strings, annotations are not evaluated when the ``TypedDict`` is " @@ -3863,50 +3319,41 @@ msgid "" "attributes may be incorrect." msgstr "" -#: ../../library/typing.rst:2786 msgid "Support for :data:`ReadOnly` is reflected in the following attributes:" msgstr "" -#: ../../library/typing.rst:2790 msgid "" "A :class:`frozenset` containing the names of all read-only keys. Keys are " "read-only if they carry the :data:`ReadOnly` qualifier." msgstr "" -#: ../../library/typing.rst:2797 msgid "" "A :class:`frozenset` containing the names of all mutable keys. Keys are " "mutable if they do not carry the :data:`ReadOnly` qualifier." msgstr "" -#: ../../library/typing.rst:2802 msgid "" -"See the `TypedDict `_ section in the typing documentation for more " -"examples and detailed rules." +"See the `TypedDict `_ section in the typing documentation for more examples and " +"detailed rules." msgstr "" -#: ../../library/typing.rst:2806 msgid "" -"Added support for marking individual keys as :data:`Required` " -"or :data:`NotRequired`. See :pep:`655`." +"Added support for marking individual keys as :data:`Required` or :data:" +"`NotRequired`. See :pep:`655`." msgstr "" -#: ../../library/typing.rst:2810 msgid "Added support for generic ``TypedDict``\\ s." msgstr "" -#: ../../library/typing.rst:2813 msgid "" "Removed support for the keyword-argument method of creating ``TypedDict``\\ " "s." msgstr "" -#: ../../library/typing.rst:2816 msgid "Support for the :data:`ReadOnly` qualifier was added." msgstr "" -#: ../../library/typing.rst:2819 msgid "" "When using the functional syntax to create a TypedDict class, failing to " "pass a value to the 'fields' parameter (``TD = TypedDict(\"TD\")``) is " @@ -3916,53 +3363,42 @@ msgid "" "TD(TypedDict): pass`` or ``TD = TypedDict(\"TD\", {})``." msgstr "" -#: ../../library/typing.rst:2828 msgid "Protocols" msgstr "" -#: ../../library/typing.rst:2830 msgid "" "The following protocols are provided by the :mod:`!typing` module. All are " "decorated with :func:`@runtime_checkable `." msgstr "" -#: ../../library/typing.rst:2835 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" -#: ../../library/typing.rst:2840 msgid "An ABC with one abstract method ``__bytes__``." msgstr "" -#: ../../library/typing.rst:2844 msgid "An ABC with one abstract method ``__complex__``." msgstr "" -#: ../../library/typing.rst:2848 msgid "An ABC with one abstract method ``__float__``." msgstr "" -#: ../../library/typing.rst:2852 msgid "An ABC with one abstract method ``__index__``." msgstr "" -#: ../../library/typing.rst:2858 msgid "An ABC with one abstract method ``__int__``." msgstr "" -#: ../../library/typing.rst:2862 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" -#: ../../library/typing.rst:2868 msgid "ABCs and Protocols for working with I/O" msgstr "" -#: ../../library/typing.rst:2874 msgid "" "Generic class ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " "``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " @@ -3970,80 +3406,67 @@ msgid "" "interface is fairly broad." msgstr "" -#: ../../library/typing.rst:2880 msgid "" "The protocols :class:`io.Reader` and :class:`io.Writer` offer a simpler " "alternative for argument types, when only the ``read()`` or ``write()`` " "methods are accessed, respectively::" msgstr "" -#: ../../library/typing.rst:2884 msgid "" "def read_and_write(reader: Reader[str], writer: Writer[bytes]):\n" " data = reader.read()\n" " writer.write(data.encode())" msgstr "" -#: ../../library/typing.rst:2888 msgid "" "Also consider using :class:`collections.abc.Iterable` for iterating over the " "lines of an input stream::" msgstr "" -#: ../../library/typing.rst:2891 msgid "" "def read_config(stream: Iterable[str]):\n" " for line in stream:\n" " ..." msgstr "" -#: ../../library/typing.rst:2896 msgid "Functions and decorators" msgstr "" -#: ../../library/typing.rst:2900 msgid "Cast a value to a type." msgstr "" -#: ../../library/typing.rst:2902 msgid "" "This returns the value unchanged. To the type checker this signals that the " "return value has the designated type, but at runtime we intentionally don't " "check anything (we want this to be as fast as possible)." msgstr "" -#: ../../library/typing.rst:2909 msgid "" "Ask a static type checker to confirm that *val* has an inferred type of " "*typ*." msgstr "" -#: ../../library/typing.rst:2911 msgid "" "At runtime this does nothing: it returns the first argument unchanged with " "no checks or side effects, no matter the actual type of the argument." msgstr "" -#: ../../library/typing.rst:2914 msgid "" "When a static type checker encounters a call to ``assert_type()``, it emits " "an error if the value is not of the specified type::" msgstr "" -#: ../../library/typing.rst:2917 msgid "" "def greet(name: str) -> None:\n" " assert_type(name, str) # OK, inferred type of `name` is `str`\n" " assert_type(name, int) # type checker error" msgstr "" -#: ../../library/typing.rst:2921 msgid "" "This function is useful for ensuring the type checker's understanding of a " "script is in line with the developer's intentions::" msgstr "" -#: ../../library/typing.rst:2924 msgid "" "def complex_function(arg: object):\n" " # Do some complex type-narrowing logic,\n" @@ -4053,16 +3476,13 @@ msgid "" " assert_type(arg, int)" msgstr "" -#: ../../library/typing.rst:2935 msgid "" "Ask a static type checker to confirm that a line of code is unreachable." msgstr "" -#: ../../library/typing.rst:2937 msgid "Example::" msgstr "" -#: ../../library/typing.rst:2939 msgid "" "def int_or_str(arg: int | str) -> None:\n" " match arg:\n" @@ -4074,14 +3494,12 @@ msgid "" " assert_never(unreachable)" msgstr "" -#: ../../library/typing.rst:2948 msgid "" "Here, the annotations allow the type checker to infer that the last case can " "never execute, because ``arg`` is either an :class:`int` or a :class:`str`, " "and both options are covered by earlier cases." msgstr "" -#: ../../library/typing.rst:2953 msgid "" "If a type checker finds that a call to ``assert_never()`` is reachable, it " "will emit an error. For example, if the type annotation for ``arg`` was " @@ -4091,59 +3509,49 @@ msgid "" "passed in must be the bottom type, :data:`Never`, and nothing else." msgstr "" -#: ../../library/typing.rst:2961 msgid "At runtime, this throws an exception when called." msgstr "" -#: ../../library/typing.rst:2964 msgid "" "`Unreachable Code and Exhaustiveness Checking `__ has more information about exhaustiveness " "checking with static typing." msgstr "" -#: ../../library/typing.rst:2972 msgid "Ask a static type checker to reveal the inferred type of an expression." msgstr "" -#: ../../library/typing.rst:2974 msgid "" "When a static type checker encounters a call to this function, it emits a " "diagnostic with the inferred type of the argument. For example::" msgstr "" -#: ../../library/typing.rst:2977 msgid "" "x: int = 1\n" "reveal_type(x) # Revealed type is \"builtins.int\"" msgstr "" -#: ../../library/typing.rst:2980 msgid "" "This can be useful when you want to debug how your type checker handles a " "particular piece of code." msgstr "" -#: ../../library/typing.rst:2983 msgid "" -"At runtime, this function prints the runtime type of its argument " -"to :data:`sys.stderr` and returns the argument unchanged (allowing the call " -"to be used within an expression)::" +"At runtime, this function prints the runtime type of its argument to :data:" +"`sys.stderr` and returns the argument unchanged (allowing the call to be " +"used within an expression)::" msgstr "" -#: ../../library/typing.rst:2987 msgid "" "x = reveal_type(1) # prints \"Runtime type is int\"\n" "print(x) # prints \"1\"" msgstr "" -#: ../../library/typing.rst:2990 msgid "" "Note that the runtime type may be different from (more or less specific " "than) the type statically inferred by a type checker." msgstr "" -#: ../../library/typing.rst:2993 msgid "" "Most type checkers support ``reveal_type()`` anywhere, even if the name is " "not imported from ``typing``. Importing the name from ``typing``, however, " @@ -4151,13 +3559,11 @@ msgid "" "clearly." msgstr "" -#: ../../library/typing.rst:3004 msgid "" -"Decorator to mark an object as providing :func:`dataclass " -"`-like behavior." +"Decorator to mark an object as providing :func:`dataclass `-like behavior." msgstr "" -#: ../../library/typing.rst:3007 msgid "" "``dataclass_transform`` may be used to decorate a class, metaclass, or a " "function that is itself a decorator. The presence of " @@ -4166,11 +3572,9 @@ msgid "" "to :func:`@dataclasses.dataclass `." msgstr "" -#: ../../library/typing.rst:3014 msgid "Example usage with a decorator function:" msgstr "" -#: ../../library/typing.rst:3016 msgid "" "@dataclass_transform()\n" "def create_model[T](cls: type[T]) -> type[T]:\n" @@ -4183,11 +3587,9 @@ msgid "" " name: str" msgstr "" -#: ../../library/typing.rst:3028 msgid "On a base class::" msgstr "" -#: ../../library/typing.rst:3030 msgid "" "@dataclass_transform()\n" "class ModelBase: ...\n" @@ -4197,11 +3599,9 @@ msgid "" " name: str" msgstr "" -#: ../../library/typing.rst:3037 msgid "On a metaclass::" msgstr "" -#: ../../library/typing.rst:3039 msgid "" "@dataclass_transform()\n" "class ModelMeta(type): ...\n" @@ -4213,15 +3613,13 @@ msgid "" " name: str" msgstr "" -#: ../../library/typing.rst:3048 msgid "" "The ``CustomerModel`` classes defined above will be treated by type checkers " -"similarly to classes created with :func:`@dataclasses.dataclass " -"`. For example, type checkers will assume these " -"classes have ``__init__`` methods that accept ``id`` and ``name``." +"similarly to classes created with :func:`@dataclasses.dataclass `. For example, type checkers will assume these classes have " +"``__init__`` methods that accept ``id`` and ``name``." msgstr "" -#: ../../library/typing.rst:3054 msgid "" "The decorated class, metaclass, or function may accept the following bool " "arguments which type checkers will assume have the same effect as they would " @@ -4231,101 +3629,82 @@ msgid "" "arguments (``True`` or ``False``) to be statically evaluated." msgstr "" -#: ../../library/typing.rst:3062 msgid "" "The arguments to the ``dataclass_transform`` decorator can be used to " "customize the default behaviors of the decorated class, metaclass, or " "function:" msgstr "" -#: ../../library/typing.rst:0 msgid "Parameters" msgstr "" -#: ../../library/typing.rst:3066 msgid "" "Indicates whether the ``eq`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``True``." msgstr "" -#: ../../library/typing.rst:3071 msgid "" "Indicates whether the ``order`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: ../../library/typing.rst:3076 msgid "" "Indicates whether the ``kw_only`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: ../../library/typing.rst:3081 msgid "" "Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``. .. " "versionadded:: 3.12" msgstr "" -#: ../../library/typing.rst:3082 msgid "" "Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: ../../library/typing.rst:3088 msgid "" "Specifies a static list of supported classes or functions that describe " "fields, similar to :func:`dataclasses.field`. Defaults to ``()``." msgstr "" -#: ../../library/typing.rst:3094 msgid "" "Arbitrary other keyword arguments are accepted in order to allow for " "possible future extensions." msgstr "" -#: ../../library/typing.rst:3098 msgid "" "Type checkers recognize the following optional parameters on field " "specifiers:" msgstr "" -#: ../../library/typing.rst:3101 msgid "**Recognised parameters for field specifiers**" msgstr "" -#: ../../library/typing.rst:3105 msgid "Parameter name" msgstr "" -#: ../../library/typing.rst:3106 msgid "Description" msgstr "" -#: ../../library/typing.rst:3107 msgid "``init``" msgstr "" -#: ../../library/typing.rst:3108 msgid "" "Indicates whether the field should be included in the synthesized " "``__init__`` method. If unspecified, ``init`` defaults to ``True``." msgstr "" -#: ../../library/typing.rst:3111 msgid "``default``" msgstr "" -#: ../../library/typing.rst:3112 msgid "Provides the default value for the field." msgstr "" -#: ../../library/typing.rst:3113 msgid "``default_factory``" msgstr "" -#: ../../library/typing.rst:3114 msgid "" "Provides a runtime callback that returns the default value for the field. If " "neither ``default`` nor ``default_factory`` are specified, the field is " @@ -4333,19 +3712,15 @@ msgid "" "is instantiated." msgstr "" -#: ../../library/typing.rst:3119 msgid "``factory``" msgstr "" -#: ../../library/typing.rst:3120 msgid "An alias for the ``default_factory`` parameter on field specifiers." msgstr "" -#: ../../library/typing.rst:3121 msgid "``kw_only``" msgstr "" -#: ../../library/typing.rst:3122 msgid "" "Indicates whether the field should be marked as keyword-only. If ``True``, " "the field will be keyword-only. If ``False``, it will not be keyword-only. " @@ -4355,32 +3730,26 @@ msgid "" "will be used." msgstr "" -#: ../../library/typing.rst:3128 msgid "``alias``" msgstr "" -#: ../../library/typing.rst:3129 msgid "" "Provides an alternative name for the field. This alternative name is used in " "the synthesized ``__init__`` method." msgstr "" -#: ../../library/typing.rst:3132 msgid "" "At runtime, this decorator records its arguments in the " "``__dataclass_transform__`` attribute on the decorated object. It has no " "other runtime effect." msgstr "" -#: ../../library/typing.rst:3136 msgid "See :pep:`681` for more details." msgstr "" -#: ../../library/typing.rst:3144 msgid "Decorator for creating overloaded functions and methods." msgstr "" -#: ../../library/typing.rst:3146 msgid "" "The ``@overload`` decorator allows describing functions and methods that " "support multiple different combinations of argument types. A series of " @@ -4388,23 +3757,20 @@ msgid "" "``@overload``-decorated definition (for the same function/method)." msgstr "" -#: ../../library/typing.rst:3151 msgid "" "``@overload``-decorated definitions are for the benefit of the type checker " "only, since they will be overwritten by the non-``@overload``-decorated " "definition. The non-``@overload``-decorated definition, meanwhile, will be " "used at runtime but should be ignored by a type checker. At runtime, " -"calling an ``@overload``-decorated function directly will " -"raise :exc:`NotImplementedError`." +"calling an ``@overload``-decorated function directly will raise :exc:" +"`NotImplementedError`." msgstr "" -#: ../../library/typing.rst:3159 msgid "" "An example of overload that gives a more precise type than can be expressed " "using a union or a type variable:" msgstr "" -#: ../../library/typing.rst:3162 msgid "" "@overload\n" "def process(response: None) -> None:\n" @@ -4419,24 +3785,20 @@ msgid "" " ... # actual implementation goes here" msgstr "" -#: ../../library/typing.rst:3176 msgid "" "See :pep:`484` for more details and comparison with other typing semantics." msgstr "" -#: ../../library/typing.rst:3178 msgid "" -"Overloaded functions can now be introspected at runtime " -"using :func:`get_overloads`." +"Overloaded functions can now be introspected at runtime using :func:" +"`get_overloads`." msgstr "" -#: ../../library/typing.rst:3185 msgid "" "Return a sequence of :func:`@overload `-decorated definitions for " "*func*." msgstr "" -#: ../../library/typing.rst:3188 msgid "" "*func* is the function object for the implementation of the overloaded " "function. For example, given the definition of ``process`` in the " @@ -4446,32 +3808,26 @@ msgid "" "returns an empty sequence." msgstr "" -#: ../../library/typing.rst:3195 msgid "" "``get_overloads()`` can be used for introspecting an overloaded function at " "runtime." msgstr "" -#: ../../library/typing.rst:3203 msgid "Clear all registered overloads in the internal registry." msgstr "" -#: ../../library/typing.rst:3205 msgid "This can be used to reclaim the memory used by the registry." msgstr "" -#: ../../library/typing.rst:3212 msgid "Decorator to indicate final methods and final classes." msgstr "" -#: ../../library/typing.rst:3214 msgid "" "Decorating a method with ``@final`` indicates to a type checker that the " "method cannot be overridden in a subclass. Decorating a class with " "``@final`` indicates that it cannot be subclassed." msgstr "" -#: ../../library/typing.rst:3220 msgid "" "class Base:\n" " @final\n" @@ -4488,7 +3844,6 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:3239 msgid "" "The decorator will now attempt to set a ``__final__`` attribute to ``True`` " "on the decorated object. Thus, a check like ``if getattr(obj, \"__final__\", " @@ -4498,11 +3853,9 @@ msgid "" "exception." msgstr "" -#: ../../library/typing.rst:3250 msgid "Decorator to indicate that annotations are not type hints." msgstr "" -#: ../../library/typing.rst:3252 msgid "" "This works as a class or function :term:`decorator`. With a class, it " "applies recursively to all methods and classes defined in that class (but " @@ -4510,40 +3863,33 @@ msgid "" "will ignore all annotations in a function or class with this decorator." msgstr "" -#: ../../library/typing.rst:3258 msgid "``@no_type_check`` mutates the decorated object in place." msgstr "" -#: ../../library/typing.rst:3262 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" -#: ../../library/typing.rst:3264 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" -#: ../../library/typing.rst:3267 msgid "" "No type checker ever added support for ``@no_type_check_decorator``. It is " "therefore deprecated, and will be removed in Python 3.15." msgstr "" -#: ../../library/typing.rst:3273 msgid "" "Decorator to indicate that a method in a subclass is intended to override a " "method or attribute in a superclass." msgstr "" -#: ../../library/typing.rst:3276 msgid "" "Type checkers should emit an error if a method decorated with ``@override`` " "does not, in fact, override anything. This helps prevent bugs that may occur " "when a base class is changed without an equivalent change to a child class." msgstr "" -#: ../../library/typing.rst:3283 msgid "" "class Base:\n" " def log_status(self) -> None:\n" @@ -4559,11 +3905,9 @@ msgid "" " ..." msgstr "" -#: ../../library/typing.rst:3298 msgid "There is no runtime checking of this property." msgstr "" -#: ../../library/typing.rst:3300 msgid "" "The decorator will attempt to set an ``__override__`` attribute to ``True`` " "on the decorated object. Thus, a check like ``if getattr(obj, " @@ -4573,22 +3917,18 @@ msgid "" "without raising an exception." msgstr "" -#: ../../library/typing.rst:3307 msgid "See :pep:`698` for more details." msgstr "" -#: ../../library/typing.rst:3314 msgid "Decorator to mark a class or function as unavailable at runtime." msgstr "" -#: ../../library/typing.rst:3316 msgid "" "This decorator is itself not available at runtime. It is mainly intended to " "mark classes that are defined in type stub files if an implementation " "returns an instance of a private class::" msgstr "" -#: ../../library/typing.rst:3320 msgid "" "@type_check_only\n" "class Response: # private or not available at runtime\n" @@ -4598,29 +3938,24 @@ msgid "" "def fetch_response() -> Response: ..." msgstr "" -#: ../../library/typing.rst:3327 msgid "" "Note that returning instances of private classes is not recommended. It is " "usually preferable to make such classes public." msgstr "" -#: ../../library/typing.rst:3331 msgid "Introspection helpers" msgstr "" -#: ../../library/typing.rst:3335 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" -#: ../../library/typing.rst:3338 msgid "" "This is often the same as ``obj.__annotations__``, but this function makes " "the following changes to the annotations dictionary:" msgstr "" -#: ../../library/typing.rst:3341 msgid "" "Forward references encoded as string literals or :class:`ForwardRef` objects " "are handled by evaluating them in *globalns*, *localns*, and (where " @@ -4629,17 +3964,14 @@ msgid "" "inferred from *obj*." msgstr "" -#: ../../library/typing.rst:3346 msgid "``None`` is replaced with :class:`types.NoneType`." msgstr "" -#: ../../library/typing.rst:3347 msgid "" "If :func:`@no_type_check ` has been applied to *obj*, an " "empty dictionary is returned." msgstr "" -#: ../../library/typing.rst:3349 msgid "" "If *obj* is a class ``C``, the function returns a dictionary that merges " "annotations from ``C``'s base classes with those on ``C`` directly. This is " @@ -4649,60 +3981,56 @@ msgid "" "annotations on classes appearing later in the method resolution order." msgstr "" -#: ../../library/typing.rst:3356 msgid "" "The function recursively replaces all occurrences of ``Annotated[T, ...]`` " -"with ``T``, unless *include_extras* is set to ``True`` " -"(see :class:`Annotated` for more information)." +"with ``T``, unless *include_extras* is set to ``True`` (see :class:" +"`Annotated` for more information)." msgstr "" -#: ../../library/typing.rst:3360 msgid "" "See also :func:`annotationlib.get_annotations`, a lower-level function that " "returns annotations more directly." msgstr "" -#: ../../library/typing.rst:3365 +msgid "" +"This function may execute arbitrary code contained in annotations. See :ref:" +"`annotationlib-security` for more information." +msgstr "" + msgid "" "If any forward references in the annotations of *obj* are not resolvable or " -"are not valid Python code, this function will raise an exception such " -"as :exc:`NameError`. For example, this can happen with imported :ref:`type " +"are not valid Python code, this function will raise an exception such as :" +"exc:`NameError`. For example, this can happen with imported :ref:`type " "aliases ` that include forward references, or with names " "imported under :data:`if TYPE_CHECKING `." msgstr "" -#: ../../library/typing.rst:3371 msgid "" "Added ``include_extras`` parameter as part of :pep:`593`. See the " "documentation on :data:`Annotated` for more information." msgstr "" -#: ../../library/typing.rst:3375 msgid "" "Previously, ``Optional[t]`` was added for function and method annotations if " "a default value equal to ``None`` was set. Now the annotation is returned " "unchanged." msgstr "" -#: ../../library/typing.rst:3382 msgid "" "Get the unsubscripted version of a type: for a typing object of the form " "``X[Y, Z, ...]`` return ``X``." msgstr "" -#: ../../library/typing.rst:3385 msgid "" "If ``X`` is a typing-module alias for a builtin or :mod:`collections` class, " -"it will be normalized to the original class. If ``X`` is an instance " -"of :class:`ParamSpecArgs` or :class:`ParamSpecKwargs`, return the " -"underlying :class:`ParamSpec`. Return ``None`` for unsupported objects." +"it will be normalized to the original class. If ``X`` is an instance of :" +"class:`ParamSpecArgs` or :class:`ParamSpecKwargs`, return the underlying :" +"class:`ParamSpec`. Return ``None`` for unsupported objects." msgstr "" -#: ../../library/typing.rst:3391 ../../library/typing.rst:3415 msgid "Examples:" msgstr "" -#: ../../library/typing.rst:3393 msgid "" "assert get_origin(str) is None\n" "assert get_origin(Dict[str, int]) is dict\n" @@ -4713,13 +4041,11 @@ msgid "" "assert get_origin(P.kwargs) is P" msgstr "" -#: ../../library/typing.rst:3407 msgid "" "Get type arguments with all substitutions performed: for a typing object of " "the form ``X[Y, Z, ...]`` return ``(Y, Z, ...)``." msgstr "" -#: ../../library/typing.rst:3410 msgid "" "If ``X`` is a union or :class:`Literal` contained in another generic type, " "the order of ``(Y, Z, ...)`` may be different from the order of the original " @@ -4727,18 +4053,15 @@ msgid "" "objects." msgstr "" -#: ../../library/typing.rst:3417 msgid "" "assert get_args(int) == ()\n" "assert get_args(Dict[int, str]) == (int, str)\n" "assert get_args(Union[int, str]) == (int, str)" msgstr "" -#: ../../library/typing.rst:3427 msgid "Return the set of members defined in a :class:`Protocol`." msgstr "" -#: ../../library/typing.rst:3429 msgid "" ">>> from typing import Protocol, get_protocol_members\n" ">>> class P(Protocol):\n" @@ -4748,15 +4071,12 @@ msgid "" "True" msgstr "" -#: ../../library/typing.rst:3438 msgid "Raise :exc:`TypeError` for arguments that are not Protocols." msgstr "" -#: ../../library/typing.rst:3444 msgid "Determine if a type is a :class:`Protocol`." msgstr "" -#: ../../library/typing.rst:3448 msgid "" "class P(Protocol):\n" " def a(self) -> str: ...\n" @@ -4766,11 +4086,9 @@ msgid "" "is_protocol(int) # => False" msgstr "" -#: ../../library/typing.rst:3459 msgid "Check if a type is a :class:`TypedDict`." msgstr "" -#: ../../library/typing.rst:3463 msgid "" "class Film(TypedDict):\n" " title: str\n" @@ -4784,57 +4102,48 @@ msgid "" "assert not is_typeddict(TypedDict)" msgstr "" -#: ../../library/typing.rst:3480 msgid "" "Class used for internal typing representation of string forward references." msgstr "" -#: ../../library/typing.rst:3482 msgid "" "For example, ``List[\"SomeClass\"]`` is implicitly transformed into " "``List[ForwardRef(\"SomeClass\")]``. :class:`!ForwardRef` should not be " "instantiated by a user, but may be used by introspection tools." msgstr "" -#: ../../library/typing.rst:3487 msgid "" ":pep:`585` generic types such as ``list[\"SomeClass\"]`` will not be " "implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus " "will not automatically resolve to ``list[SomeClass]``." msgstr "" -#: ../../library/typing.rst:3493 msgid "" "This is now an alias for :class:`annotationlib.ForwardRef`. Several " "undocumented behaviors of this class have been changed; for example, after a " "``ForwardRef`` has been evaluated, the evaluated value is no longer cached." msgstr "" -#: ../../library/typing.rst:3500 msgid "Evaluate an :class:`annotationlib.ForwardRef` as a :term:`type hint`." msgstr "" -#: ../../library/typing.rst:3502 msgid "" "This is similar to calling :meth:`annotationlib.ForwardRef.evaluate`, but " "unlike that method, :func:`!evaluate_forward_ref` also recursively evaluates " "forward references nested within the type hint." msgstr "" -#: ../../library/typing.rst:3506 msgid "" "See the documentation for :meth:`annotationlib.ForwardRef.evaluate` for the " "meaning of the *owner*, *globals*, *locals*, *type_params*, and *format* " "parameters." msgstr "" -#: ../../library/typing.rst:3513 msgid "" "A sentinel object used to indicate that a type parameter has no default " "value. For example:" msgstr "" -#: ../../library/typing.rst:3516 msgid "" ">>> T = TypeVar(\"T\")\n" ">>> T.__default__ is typing.NoDefault\n" @@ -4844,17 +4153,14 @@ msgid "" "True" msgstr "" -#: ../../library/typing.rst:3528 msgid "Constant" msgstr "" -#: ../../library/typing.rst:3532 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It's ``False`` at runtime." msgstr "" -#: ../../library/typing.rst:3535 msgid "" "A module which is expensive to import, and which only contain types used for " "typing annotations, can be safely imported inside an ``if TYPE_CHECKING:`` " @@ -4866,7 +4172,6 @@ msgid "" "will be checked properly during such analysis." msgstr "" -#: ../../library/typing.rst:3547 msgid "" "if TYPE_CHECKING:\n" " import expensive_mod\n" @@ -4875,20 +4180,17 @@ msgid "" " local_var: expensive_mod.AnotherType = other_fun()" msgstr "" -#: ../../library/typing.rst:3553 msgid "" "If you occasionally need to examine type annotations at runtime which may " "contain undefined symbols, use :meth:`annotationlib.get_annotations` with a " -"``format`` parameter of :attr:`annotationlib.Format.STRING` " -"or :attr:`annotationlib.Format.FORWARDREF` to safely retrieve the " -"annotations without raising :exc:`NameError`." +"``format`` parameter of :attr:`annotationlib.Format.STRING` or :attr:" +"`annotationlib.Format.FORWARDREF` to safely retrieve the annotations without " +"raising :exc:`NameError`." msgstr "" -#: ../../library/typing.rst:3566 msgid "Deprecated aliases" msgstr "" -#: ../../library/typing.rst:3568 msgid "" "This module defines several deprecated aliases to pre-existing standard " "library classes. These were originally included in the :mod:`!typing` module " @@ -4897,7 +4199,6 @@ msgid "" "pre-existing classes were enhanced to support ``[]`` (see :pep:`585`)." msgstr "" -#: ../../library/typing.rst:3575 msgid "" "The redundant types are deprecated as of Python 3.9. However, while the " "aliases may be removed at some point, removal of these aliases is not " @@ -4905,563 +4206,451 @@ msgid "" "the interpreter for these aliases." msgstr "" -#: ../../library/typing.rst:3580 msgid "" "If at some point it is decided to remove these deprecated aliases, a " "deprecation warning will be issued by the interpreter for at least two " -"releases prior to removal. The aliases are guaranteed to remain in " -"the :mod:`!typing` module without deprecation warnings until at least Python " -"3.14." +"releases prior to removal. The aliases are guaranteed to remain in the :mod:" +"`!typing` module without deprecation warnings until at least Python 3.14." msgstr "" -#: ../../library/typing.rst:3585 msgid "" "Type checkers are encouraged to flag uses of the deprecated types if the " "program they are checking targets a minimum Python version of 3.9 or newer." msgstr "" -#: ../../library/typing.rst:3591 msgid "Aliases to built-in types" msgstr "" -#: ../../library/typing.rst:3595 msgid "Deprecated alias to :class:`dict`." msgstr "" -#: ../../library/typing.rst:3597 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " "collection type such as :class:`~collections.abc.Mapping` rather than to " "use :class:`dict` or :class:`!typing.Dict`." msgstr "" -#: ../../library/typing.rst:3601 msgid "" -":class:`builtins.dict ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`builtins.dict ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3607 msgid "Deprecated alias to :class:`list`." msgstr "" -#: ../../library/typing.rst:3609 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " -"collection type such as :class:`~collections.abc.Sequence` " -"or :class:`~collections.abc.Iterable` rather than to use :class:`list` " -"or :class:`!typing.List`." +"collection type such as :class:`~collections.abc.Sequence` or :class:" +"`~collections.abc.Iterable` rather than to use :class:`list` or :class:`!" +"typing.List`." msgstr "" -#: ../../library/typing.rst:3614 msgid "" -":class:`builtins.list ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`builtins.list ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3620 msgid "Deprecated alias to :class:`builtins.set `." msgstr "" -#: ../../library/typing.rst:3622 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " -"collection type such as :class:`collections.abc.Set` rather than to " -"use :class:`set` or :class:`typing.Set`." +"collection type such as :class:`collections.abc.Set` rather than to use :" +"class:`set` or :class:`typing.Set`." msgstr "" -#: ../../library/typing.rst:3626 msgid "" -":class:`builtins.set ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`builtins.set ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3632 msgid "Deprecated alias to :class:`builtins.frozenset `." msgstr "" -#: ../../library/typing.rst:3634 msgid "" ":class:`builtins.frozenset ` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3641 msgid "Deprecated alias for :class:`tuple`." msgstr "" -#: ../../library/typing.rst:3643 msgid "" -":class:`tuple` and ``Tuple`` are special-cased in the type system; " -"see :ref:`annotating-tuples` for more details." +":class:`tuple` and ``Tuple`` are special-cased in the type system; see :ref:" +"`annotating-tuples` for more details." msgstr "" -#: ../../library/typing.rst:3646 msgid "" -":class:`builtins.tuple ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`builtins.tuple ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3652 msgid "Deprecated alias to :class:`type`." msgstr "" -#: ../../library/typing.rst:3654 msgid "" "See :ref:`type-of-class-objects` for details on using :class:`type` or " "``typing.Type`` in type annotations." msgstr "" -#: ../../library/typing.rst:3659 msgid "" -":class:`builtins.type ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`builtins.type ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3666 msgid "Aliases to types in :mod:`collections`" msgstr "" -#: ../../library/typing.rst:3670 msgid "Deprecated alias to :class:`collections.defaultdict`." msgstr "" -#: ../../library/typing.rst:3674 msgid "" -":class:`collections.defaultdict` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.defaultdict` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3680 msgid "Deprecated alias to :class:`collections.OrderedDict`." msgstr "" -#: ../../library/typing.rst:3684 msgid "" -":class:`collections.OrderedDict` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.OrderedDict` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3690 msgid "Deprecated alias to :class:`collections.ChainMap`." msgstr "" -#: ../../library/typing.rst:3694 msgid "" -":class:`collections.ChainMap` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.ChainMap` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3700 msgid "Deprecated alias to :class:`collections.Counter`." msgstr "" -#: ../../library/typing.rst:3704 msgid "" -":class:`collections.Counter` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.Counter` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3710 msgid "Deprecated alias to :class:`collections.deque`." msgstr "" -#: ../../library/typing.rst:3714 msgid "" -":class:`collections.deque` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.deque` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3721 msgid "Aliases to other concrete types" msgstr "" -#: ../../library/typing.rst:3726 msgid "" "Deprecated aliases corresponding to the return types from :func:`re.compile` " "and :func:`re.match`." msgstr "" -#: ../../library/typing.rst:3729 msgid "" -"These types (and the corresponding functions) are generic " -"over :data:`AnyStr`. ``Pattern`` can be specialised as ``Pattern[str]`` or " +"These types (and the corresponding functions) are generic over :data:" +"`AnyStr`. ``Pattern`` can be specialised as ``Pattern[str]`` or " "``Pattern[bytes]``; ``Match`` can be specialised as ``Match[str]`` or " "``Match[bytes]``." msgstr "" -#: ../../library/typing.rst:3734 msgid "" -"Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. " -"See :pep:`585` and :ref:`types-genericalias`." +"Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3740 msgid "Deprecated alias for :class:`str`." msgstr "" -#: ../../library/typing.rst:3742 msgid "" "``Text`` is provided to supply a forward compatible path for Python 2 code: " "in Python 2, ``Text`` is an alias for ``unicode``." msgstr "" -#: ../../library/typing.rst:3746 msgid "" "Use ``Text`` to indicate that a value must contain a unicode string in a " "manner that is compatible with both Python 2 and Python 3::" msgstr "" -#: ../../library/typing.rst:3749 msgid "" "def add_unicode_checkmark(text: Text) -> Text:\n" " return text + u' \\u2713'" msgstr "" -#: ../../library/typing.rst:3754 msgid "" "Python 2 is no longer supported, and most type checkers also no longer " "support type checking Python 2 code. Removal of the alias is not currently " "planned, but users are encouraged to use :class:`str` instead of ``Text``." msgstr "" -#: ../../library/typing.rst:3764 msgid "Aliases to container ABCs in :mod:`collections.abc`" msgstr "" -#: ../../library/typing.rst:3768 msgid "Deprecated alias to :class:`collections.abc.Set`." msgstr "" -#: ../../library/typing.rst:3770 msgid "" -":class:`collections.abc.Set` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Set` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3776 msgid "Deprecated alias to :class:`collections.abc.Collection`." msgstr "" -#: ../../library/typing.rst:3780 msgid "" -":class:`collections.abc.Collection` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Collection` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3786 msgid "Deprecated alias to :class:`collections.abc.Container`." msgstr "" -#: ../../library/typing.rst:3788 msgid "" -":class:`collections.abc.Container` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Container` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3794 msgid "Deprecated alias to :class:`collections.abc.ItemsView`." msgstr "" -#: ../../library/typing.rst:3796 msgid "" -":class:`collections.abc.ItemsView` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.ItemsView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3802 msgid "Deprecated alias to :class:`collections.abc.KeysView`." msgstr "" -#: ../../library/typing.rst:3804 msgid "" -":class:`collections.abc.KeysView` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.KeysView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3810 msgid "Deprecated alias to :class:`collections.abc.Mapping`." msgstr "" -#: ../../library/typing.rst:3812 msgid "" -":class:`collections.abc.Mapping` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Mapping` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3818 msgid "Deprecated alias to :class:`collections.abc.MappingView`." msgstr "" -#: ../../library/typing.rst:3820 msgid "" ":class:`collections.abc.MappingView` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3826 msgid "Deprecated alias to :class:`collections.abc.MutableMapping`." msgstr "" -#: ../../library/typing.rst:3828 msgid "" ":class:`collections.abc.MutableMapping` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3835 msgid "Deprecated alias to :class:`collections.abc.MutableSequence`." msgstr "" -#: ../../library/typing.rst:3837 msgid "" ":class:`collections.abc.MutableSequence` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3844 msgid "Deprecated alias to :class:`collections.abc.MutableSet`." msgstr "" -#: ../../library/typing.rst:3846 msgid "" -":class:`collections.abc.MutableSet` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.MutableSet` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3852 msgid "Deprecated alias to :class:`collections.abc.Sequence`." msgstr "" -#: ../../library/typing.rst:3854 msgid "" -":class:`collections.abc.Sequence` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Sequence` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3860 msgid "Deprecated alias to :class:`collections.abc.ValuesView`." msgstr "" -#: ../../library/typing.rst:3862 msgid "" -":class:`collections.abc.ValuesView` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.ValuesView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3869 msgid "Aliases to asynchronous ABCs in :mod:`collections.abc`" msgstr "" -#: ../../library/typing.rst:3873 msgid "Deprecated alias to :class:`collections.abc.Coroutine`." msgstr "" -#: ../../library/typing.rst:3875 msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`collections.abc.Coroutine` and ``typing.Coroutine`` in type " -"annotations." +"See :ref:`annotating-generators-and-coroutines` for details on using :class:" +"`collections.abc.Coroutine` and ``typing.Coroutine`` in type annotations." msgstr "" -#: ../../library/typing.rst:3881 msgid "" -":class:`collections.abc.Coroutine` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Coroutine` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3887 msgid "Deprecated alias to :class:`collections.abc.AsyncGenerator`." msgstr "" -#: ../../library/typing.rst:3889 msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`collections.abc.AsyncGenerator` and ``typing.AsyncGenerator`` " -"in type annotations." +"See :ref:`annotating-generators-and-coroutines` for details on using :class:" +"`collections.abc.AsyncGenerator` and ``typing.AsyncGenerator`` in type " +"annotations." msgstr "" -#: ../../library/typing.rst:3895 msgid "" ":class:`collections.abc.AsyncGenerator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3900 msgid "The ``SendType`` parameter now has a default." msgstr "" -#: ../../library/typing.rst:3905 msgid "Deprecated alias to :class:`collections.abc.AsyncIterable`." msgstr "" -#: ../../library/typing.rst:3909 msgid "" ":class:`collections.abc.AsyncIterable` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3915 msgid "Deprecated alias to :class:`collections.abc.AsyncIterator`." msgstr "" -#: ../../library/typing.rst:3919 msgid "" ":class:`collections.abc.AsyncIterator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3925 msgid "Deprecated alias to :class:`collections.abc.Awaitable`." msgstr "" -#: ../../library/typing.rst:3929 msgid "" -":class:`collections.abc.Awaitable` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Awaitable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3936 msgid "Aliases to other ABCs in :mod:`collections.abc`" msgstr "" -#: ../../library/typing.rst:3940 msgid "Deprecated alias to :class:`collections.abc.Iterable`." msgstr "" -#: ../../library/typing.rst:3942 msgid "" -":class:`collections.abc.Iterable` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Iterable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3948 msgid "Deprecated alias to :class:`collections.abc.Iterator`." msgstr "" -#: ../../library/typing.rst:3950 msgid "" -":class:`collections.abc.Iterator` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Iterator` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3956 msgid "Deprecated alias to :class:`collections.abc.Callable`." msgstr "" -#: ../../library/typing.rst:3958 msgid "" -"See :ref:`annotating-callables` for details on how to " -"use :class:`collections.abc.Callable` and ``typing.Callable`` in type " -"annotations." +"See :ref:`annotating-callables` for details on how to use :class:" +"`collections.abc.Callable` and ``typing.Callable`` in type annotations." msgstr "" -#: ../../library/typing.rst:3961 msgid "" -":class:`collections.abc.Callable` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Callable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3971 msgid "Deprecated alias to :class:`collections.abc.Generator`." msgstr "" -#: ../../library/typing.rst:3973 msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`collections.abc.Generator` and ``typing.Generator`` in type " -"annotations." +"See :ref:`annotating-generators-and-coroutines` for details on using :class:" +"`collections.abc.Generator` and ``typing.Generator`` in type annotations." msgstr "" -#: ../../library/typing.rst:3977 msgid "" -":class:`collections.abc.Generator` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Generator` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:3981 msgid "Default values for the send and return types were added." msgstr "" -#: ../../library/typing.rst:3986 msgid "Deprecated alias to :class:`collections.abc.Hashable`." msgstr "" -#: ../../library/typing.rst:3988 msgid "Use :class:`collections.abc.Hashable` directly instead." msgstr "" -#: ../../library/typing.rst:3993 msgid "Deprecated alias to :class:`collections.abc.Reversible`." msgstr "" -#: ../../library/typing.rst:3995 msgid "" -":class:`collections.abc.Reversible` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +":class:`collections.abc.Reversible` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:4001 msgid "Deprecated alias to :class:`collections.abc.Sized`." msgstr "" -#: ../../library/typing.rst:4003 msgid "Use :class:`collections.abc.Sized` directly instead." msgstr "" -#: ../../library/typing.rst:4009 msgid "Aliases to :mod:`contextlib` ABCs" msgstr "" -#: ../../library/typing.rst:4013 msgid "Deprecated alias to :class:`contextlib.AbstractContextManager`." msgstr "" -#: ../../library/typing.rst:4015 msgid "" -"The first type parameter, ``T_co``, represents the type returned by " -"the :meth:`~object.__enter__` method. The optional second type parameter, " +"The first type parameter, ``T_co``, represents the type returned by the :" +"meth:`~object.__enter__` method. The optional second type parameter, " "``ExitT_co``, which defaults to ``bool | None``, represents the type " "returned by the :meth:`~object.__exit__` method." msgstr "" -#: ../../library/typing.rst:4022 msgid "" ":class:`contextlib.AbstractContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:4027 msgid "Added the optional second type parameter, ``ExitT_co``." msgstr "" -#: ../../library/typing.rst:4032 msgid "Deprecated alias to :class:`contextlib.AbstractAsyncContextManager`." msgstr "" -#: ../../library/typing.rst:4034 msgid "" -"The first type parameter, ``T_co``, represents the type returned by " -"the :meth:`~object.__aenter__` method. The optional second type parameter, " +"The first type parameter, ``T_co``, represents the type returned by the :" +"meth:`~object.__aenter__` method. The optional second type parameter, " "``AExitT_co``, which defaults to ``bool | None``, represents the type " "returned by the :meth:`~object.__aexit__` method." msgstr "" -#: ../../library/typing.rst:4041 msgid "" ":class:`contextlib.AbstractAsyncContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: ../../library/typing.rst:4046 msgid "Added the optional second type parameter, ``AExitT_co``." msgstr "" -#: ../../library/typing.rst:4050 msgid "Deprecation Timeline of Major Features" msgstr "" -#: ../../library/typing.rst:4052 msgid "" "Certain features in ``typing`` are deprecated and may be removed in a future " "version of Python. The following table summarizes major deprecations for " @@ -5469,99 +4658,80 @@ msgid "" "listed." msgstr "" -#: ../../library/typing.rst:4059 msgid "Feature" msgstr "" -#: ../../library/typing.rst:4060 msgid "Deprecated in" msgstr "" -#: ../../library/typing.rst:4061 msgid "Projected removal" msgstr "" -#: ../../library/typing.rst:4062 msgid "PEP/issue" msgstr "" -#: ../../library/typing.rst:4063 msgid "``typing`` versions of standard collections" msgstr "" -#: ../../library/typing.rst:4064 msgid "3.9" msgstr "" -#: ../../library/typing.rst:4065 msgid "Undecided (see :ref:`deprecated-aliases` for more information)" msgstr "" -#: ../../library/typing.rst:4066 msgid ":pep:`585`" msgstr "" -#: ../../library/typing.rst:4067 msgid ":data:`typing.Text`" msgstr "" -#: ../../library/typing.rst:4068 msgid "3.11" msgstr "" -#: ../../library/typing.rst:4069 ../../library/typing.rst:4073 -#: ../../library/typing.rst:4077 msgid "Undecided" msgstr "" -#: ../../library/typing.rst:4070 msgid ":gh:`92332`" msgstr "" -#: ../../library/typing.rst:4071 msgid ":class:`typing.Hashable` and :class:`typing.Sized`" msgstr "" -#: ../../library/typing.rst:4072 ../../library/typing.rst:4076 msgid "3.12" msgstr "" -#: ../../library/typing.rst:4074 msgid ":gh:`94309`" msgstr "" -#: ../../library/typing.rst:4075 msgid ":data:`typing.TypeAlias`" msgstr "" -#: ../../library/typing.rst:4078 msgid ":pep:`695`" msgstr "" -#: ../../library/typing.rst:4079 msgid ":func:`@typing.no_type_check_decorator `" msgstr "" -#: ../../library/typing.rst:4080 ../../library/typing.rst:4084 msgid "3.13" msgstr "" -#: ../../library/typing.rst:4081 msgid "3.15" msgstr "" -#: ../../library/typing.rst:4082 msgid ":gh:`106309`" msgstr "" -#: ../../library/typing.rst:4083 msgid ":data:`typing.AnyStr`" msgstr "" -#: ../../library/typing.rst:4085 msgid "3.18" msgstr "" -#: ../../library/typing.rst:4086 msgid ":gh:`105578`" msgstr "" + +msgid "..." +msgstr "" + +msgid "ellipsis literal" +msgstr "" diff --git a/library/unicodedata.po b/library/unicodedata.po index 784911c..9255638 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,103 +22,86 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/unicodedata.rst:2 msgid ":mod:`!unicodedata` --- Unicode Database" msgstr "" -#: ../../library/unicodedata.rst:18 msgid "" "This module provides access to the Unicode Character Database (UCD) which " "defines character properties for all Unicode characters. The data contained " -"in this database is compiled from the `UCD version 16.0.0 `_." +"in this database is compiled from the `UCD version 16.0.0 `_." msgstr "" -#: ../../library/unicodedata.rst:23 msgid "" "The module uses the same names and symbols as defined by Unicode Standard " "Annex #44, `\"Unicode Character Database\" `_. It defines the following functions:" msgstr "" -#: ../../library/unicodedata.rst:31 msgid "" "Look up character by name. If a character with the given name is found, " "return the corresponding character. If not found, :exc:`KeyError` is raised." msgstr "" -#: ../../library/unicodedata.rst:34 msgid "Support for name aliases [#]_ and named sequences [#]_ has been added." msgstr "" -#: ../../library/unicodedata.rst:40 msgid "" "Returns the name assigned to the character *chr* as a string. If no name is " "defined, *default* is returned, or, if not given, :exc:`ValueError` is " "raised." msgstr "" -#: ../../library/unicodedata.rst:47 msgid "" "Returns the decimal value assigned to the character *chr* as integer. If no " -"such value is defined, *default* is returned, or, if not " -"given, :exc:`ValueError` is raised." +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." msgstr "" -#: ../../library/unicodedata.rst:54 msgid "" "Returns the digit value assigned to the character *chr* as integer. If no " -"such value is defined, *default* is returned, or, if not " -"given, :exc:`ValueError` is raised." +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." msgstr "" -#: ../../library/unicodedata.rst:61 msgid "" "Returns the numeric value assigned to the character *chr* as float. If no " -"such value is defined, *default* is returned, or, if not " -"given, :exc:`ValueError` is raised." +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." msgstr "" -#: ../../library/unicodedata.rst:68 msgid "Returns the general category assigned to the character *chr* as string." msgstr "" -#: ../../library/unicodedata.rst:74 msgid "" "Returns the bidirectional class assigned to the character *chr* as string. " "If no such value is defined, an empty string is returned." msgstr "" -#: ../../library/unicodedata.rst:80 msgid "" "Returns the canonical combining class assigned to the character *chr* as " "integer. Returns ``0`` if no combining class is defined." msgstr "" -#: ../../library/unicodedata.rst:86 msgid "Returns the east asian width assigned to the character *chr* as string." msgstr "" -#: ../../library/unicodedata.rst:92 msgid "" "Returns the mirrored property assigned to the character *chr* as integer. " "Returns ``1`` if the character has been identified as a \"mirrored\" " "character in bidirectional text, ``0`` otherwise." msgstr "" -#: ../../library/unicodedata.rst:99 msgid "" "Returns the character decomposition mapping assigned to the character *chr* " "as string. An empty string is returned in case no such mapping is defined." msgstr "" -#: ../../library/unicodedata.rst:106 msgid "" "Return the normal form *form* for the Unicode string *unistr*. Valid values " "for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" -#: ../../library/unicodedata.rst:109 msgid "" "The Unicode standard defines various normalization forms of a Unicode " "string, based on the definition of canonical equivalence and compatibility " @@ -128,7 +111,6 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" -#: ../../library/unicodedata.rst:115 msgid "" "For each character, there are two normal forms: normal form C and normal " "form D. Normal form D (NFD) is also known as canonical decomposition, and " @@ -137,7 +119,6 @@ msgid "" "characters again." msgstr "" -#: ../../library/unicodedata.rst:120 msgid "" "In addition to these two forms, there are two additional normal forms based " "on compatibility equivalence. In Unicode, certain characters are supported " @@ -147,7 +128,6 @@ msgid "" "character sets (e.g. gb2312)." msgstr "" -#: ../../library/unicodedata.rst:127 msgid "" "The normal form KD (NFKD) will apply the compatibility decomposition, i.e. " "replace all compatibility characters with their equivalents. The normal form " @@ -155,58 +135,46 @@ msgid "" "canonical composition." msgstr "" -#: ../../library/unicodedata.rst:132 msgid "" "Even if two unicode strings are normalized and look the same to a human " "reader, if one has combining characters and the other doesn't, they may not " "compare equal." msgstr "" -#: ../../library/unicodedata.rst:138 msgid "" "Return whether the Unicode string *unistr* is in the normal form *form*. " "Valid values for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" -#: ../../library/unicodedata.rst:144 msgid "In addition, the module exposes the following constant:" msgstr "" -#: ../../library/unicodedata.rst:148 msgid "The version of the Unicode database used in this module." msgstr "" -#: ../../library/unicodedata.rst:153 msgid "" "This is an object that has the same methods as the entire module, but uses " "the Unicode database version 3.2 instead, for applications that require this " "specific version of the Unicode database (such as IDNA)." msgstr "" -#: ../../library/unicodedata.rst:157 msgid "Examples:" msgstr "" -#: ../../library/unicodedata.rst:177 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/unicodedata.rst:178 msgid "https://www.unicode.org/Public/16.0.0/ucd/NameAliases.txt" msgstr "" -#: ../../library/unicodedata.rst:180 msgid "https://www.unicode.org/Public/16.0.0/ucd/NamedSequences.txt" msgstr "" -#: ../../library/unicodedata.rst:11 msgid "Unicode" msgstr "" -#: ../../library/unicodedata.rst:11 msgid "character" msgstr "" -#: ../../library/unicodedata.rst:11 msgid "database" msgstr "" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 2412de6..c53465a 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,50 +18,40 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/unittest.mock-examples.rst:2 msgid ":mod:`!unittest.mock` --- getting started" msgstr "" -#: ../../library/unittest.mock-examples.rst:27 msgid "Using Mock" msgstr "" -#: ../../library/unittest.mock-examples.rst:30 msgid "Mock Patching Methods" msgstr "" -#: ../../library/unittest.mock-examples.rst:32 msgid "Common uses for :class:`Mock` objects include:" msgstr "" -#: ../../library/unittest.mock-examples.rst:34 msgid "Patching methods" msgstr "" -#: ../../library/unittest.mock-examples.rst:35 msgid "Recording method calls on objects" msgstr "" -#: ../../library/unittest.mock-examples.rst:37 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" -#: ../../library/unittest.mock-examples.rst:45 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" -#: ../../library/unittest.mock-examples.rst:50 msgid "" "In most of these examples the :class:`Mock` and :class:`MagicMock` classes " "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" -#: ../../library/unittest.mock-examples.rst:54 msgid "" "Once the mock has been called its :attr:`~Mock.called` attribute is set to " "``True``. More importantly we can use the :meth:`~Mock.assert_called_with` " @@ -69,17 +59,14 @@ msgid "" "with the correct arguments." msgstr "" -#: ../../library/unittest.mock-examples.rst:59 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" -#: ../../library/unittest.mock-examples.rst:76 msgid "Mock for Method Calls on an Object" msgstr "" -#: ../../library/unittest.mock-examples.rst:78 msgid "" "In the last example we patched a method directly on an object to check that " "it was called correctly. Another common use case is to pass an object into a " @@ -87,31 +74,26 @@ msgid "" "used in the correct way." msgstr "" -#: ../../library/unittest.mock-examples.rst:83 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" -#: ../../library/unittest.mock-examples.rst:91 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" -#: ../../library/unittest.mock-examples.rst:99 msgid "" "We don't have to do any work to provide the 'close' method on our mock. " "Accessing close creates it. So, if 'close' hasn't already been called then " -"accessing it in the test will create it, " -"but :meth:`~Mock.assert_called_with` will raise a failure exception." +"accessing it in the test will create it, but :meth:`~Mock." +"assert_called_with` will raise a failure exception." msgstr "" -#: ../../library/unittest.mock-examples.rst:106 msgid "Mocking Classes" msgstr "" -#: ../../library/unittest.mock-examples.rst:108 msgid "" "A common use case is to mock out classes instantiated by your code under " "test. When you patch a class, then that class is replaced with a mock. " @@ -119,16 +101,14 @@ msgid "" "\"mock instance\" by looking at the return value of the mocked class." msgstr "" -#: ../../library/unittest.mock-examples.rst:113 msgid "" "In the example below we have a function ``some_function`` that instantiates " "``Foo`` and calls a method on it. The call to :func:`patch` replaces the " "class ``Foo`` with a mock. The ``Foo`` instance is the result of calling the " -"mock, so it is configured by modifying the " -"mock :attr:`~Mock.return_value`. ::" +"mock, so it is configured by modifying the mock :attr:`~Mock." +"return_value`. ::" msgstr "" -#: ../../library/unittest.mock-examples.rst:118 msgid "" ">>> def some_function():\n" "... instance = module.Foo()\n" @@ -141,29 +121,24 @@ msgid "" "... assert result == 'the result'" msgstr "" -#: ../../library/unittest.mock-examples.rst:130 msgid "Naming your mocks" msgstr "" -#: ../../library/unittest.mock-examples.rst:132 msgid "" "It can be useful to give your mocks a name. The name is shown in the repr of " "the mock and can be helpful when the mock appears in test failure messages. " "The name is also propagated to attributes or methods of the mock:" msgstr "" -#: ../../library/unittest.mock-examples.rst:144 msgid "Tracking all Calls" msgstr "" -#: ../../library/unittest.mock-examples.rst:146 msgid "" -"Often you want to track more than a single call to a method. " -"The :attr:`~Mock.mock_calls` attribute records all calls to child attributes " -"of the mock - and also to their children." +"Often you want to track more than a single call to a method. The :attr:" +"`~Mock.mock_calls` attribute records all calls to child attributes of the " +"mock - and also to their children." msgstr "" -#: ../../library/unittest.mock-examples.rst:158 msgid "" "If you make an assertion about ``mock_calls`` and any unexpected methods " "have been called, then the assertion will fail. This is useful because as " @@ -171,74 +146,60 @@ msgid "" "checking that they were made in the right order and with no additional calls:" msgstr "" -#: ../../library/unittest.mock-examples.rst:163 msgid "" "You use the :data:`call` object to construct lists for comparing with " "``mock_calls``:" msgstr "" -#: ../../library/unittest.mock-examples.rst:170 msgid "" "However, parameters to calls that return mocks are not recorded, which means " "it is not possible to track nested calls where the parameters used to create " "ancestors are important:" msgstr "" -#: ../../library/unittest.mock-examples.rst:181 msgid "Setting Return Values and Attributes" msgstr "" -#: ../../library/unittest.mock-examples.rst:183 msgid "Setting the return values on a mock object is trivially easy:" msgstr "" -#: ../../library/unittest.mock-examples.rst:190 msgid "Of course you can do the same for methods on the mock:" msgstr "" -#: ../../library/unittest.mock-examples.rst:197 msgid "The return value can also be set in the constructor:" msgstr "" -#: ../../library/unittest.mock-examples.rst:203 msgid "If you need an attribute setting on your mock, just do it:" msgstr "" -#: ../../library/unittest.mock-examples.rst:210 msgid "" "Sometimes you want to mock up a more complex situation, like for example " "``mock.connection.cursor().execute(\"SELECT 1\")``. If we wanted this call " "to return a list, then we have to configure the result of the nested call." msgstr "" -#: ../../library/unittest.mock-examples.rst:214 msgid "" "We can use :data:`call` to construct the set of calls in a \"chained call\" " "like this for easy assertion afterwards:" msgstr "" -#: ../../library/unittest.mock-examples.rst:228 msgid "" "It is the call to ``.call_list()`` that turns our call object into a list of " "calls representing the chained calls." msgstr "" -#: ../../library/unittest.mock-examples.rst:233 msgid "Raising exceptions with mocks" msgstr "" -#: ../../library/unittest.mock-examples.rst:235 msgid "" "A useful attribute is :attr:`~Mock.side_effect`. If you set this to an " "exception class or instance then the exception will be raised when the mock " "is called." msgstr "" -#: ../../library/unittest.mock-examples.rst:247 msgid "Side effect functions and iterables" msgstr "" -#: ../../library/unittest.mock-examples.rst:249 msgid "" "``side_effect`` can also be set to a function or an iterable. The use case " "for ``side_effect`` as an iterable is where your mock is going to be called " @@ -247,7 +208,6 @@ msgid "" "value from the iterable:" msgstr "" -#: ../../library/unittest.mock-examples.rst:264 msgid "" "For more advanced use cases, like dynamically varying the return values " "depending on what the mock is called with, ``side_effect`` can be a " @@ -255,35 +215,29 @@ msgid "" "Whatever the function returns is what the call returns:" msgstr "" -#: ../../library/unittest.mock-examples.rst:281 msgid "Mocking asynchronous iterators" msgstr "" -#: ../../library/unittest.mock-examples.rst:283 msgid "" -"Since Python 3.8, ``AsyncMock`` and ``MagicMock`` have support to " -"mock :ref:`async-iterators` through ``__aiter__``. " -"The :attr:`~Mock.return_value` attribute of ``__aiter__`` can be used to set " -"the return values to be used for iteration." +"Since Python 3.8, ``AsyncMock`` and ``MagicMock`` have support to mock :ref:" +"`async-iterators` through ``__aiter__``. The :attr:`~Mock.return_value` " +"attribute of ``__aiter__`` can be used to set the return values to be used " +"for iteration." msgstr "" -#: ../../library/unittest.mock-examples.rst:298 msgid "Mocking asynchronous context manager" msgstr "" -#: ../../library/unittest.mock-examples.rst:300 msgid "" -"Since Python 3.8, ``AsyncMock`` and ``MagicMock`` have support to " -"mock :ref:`async-context-managers` through ``__aenter__`` and ``__aexit__``. " -"By default, ``__aenter__`` and ``__aexit__`` are ``AsyncMock`` instances " -"that return an async function." +"Since Python 3.8, ``AsyncMock`` and ``MagicMock`` have support to mock :ref:" +"`async-context-managers` through ``__aenter__`` and ``__aexit__``. By " +"default, ``__aenter__`` and ``__aexit__`` are ``AsyncMock`` instances that " +"return an async function." msgstr "" -#: ../../library/unittest.mock-examples.rst:322 msgid "Creating a Mock from an Existing Object" msgstr "" -#: ../../library/unittest.mock-examples.rst:324 msgid "" "One problem with over use of mocking is that it couples your tests to the " "implementation of your mocks rather than your real code. Suppose you have a " @@ -293,7 +247,6 @@ msgid "" "then your tests will continue to pass even though your code is now broken!" msgstr "" -#: ../../library/unittest.mock-examples.rst:331 msgid "" ":class:`Mock` allows you to provide an object as a specification for the " "mock, using the *spec* keyword argument. Accessing methods / attributes on " @@ -303,14 +256,12 @@ msgid "" "without you having to instantiate the class in those tests." msgstr "" -#: ../../library/unittest.mock-examples.rst:344 msgid "" "Using a specification also enables a smarter matching of calls made to the " "mock, regardless of whether some parameters were passed as positional or " "named arguments::" msgstr "" -#: ../../library/unittest.mock-examples.rst:348 msgid "" ">>> def f(a, b, c): pass\n" "...\n" @@ -320,32 +271,26 @@ msgid "" ">>> mock.assert_called_with(a=1, b=2, c=3)" msgstr "" -#: ../../library/unittest.mock-examples.rst:355 msgid "" "If you want this smarter matching to also work with method calls on the " "mock, you can use :ref:`auto-speccing `." msgstr "" -#: ../../library/unittest.mock-examples.rst:358 msgid "" "If you want a stronger form of specification that prevents the setting of " "arbitrary attributes as well as the getting of them then you can use " "*spec_set* instead of *spec*." msgstr "" -#: ../../library/unittest.mock-examples.rst:364 msgid "Using side_effect to return per file content" msgstr "" -#: ../../library/unittest.mock-examples.rst:366 msgid "" -":func:`mock_open` is used to patch :func:`open` " -"method. :attr:`~Mock.side_effect` can be used to return a new Mock object " -"per call. This can be used to return different contents per file stored in a " -"dictionary::" +":func:`mock_open` is used to patch :func:`open` method. :attr:`~Mock." +"side_effect` can be used to return a new Mock object per call. This can be " +"used to return different contents per file stored in a dictionary::" msgstr "" -#: ../../library/unittest.mock-examples.rst:370 msgid "" "DEFAULT = \"default\"\n" "data_dict = {\"file1\": \"data1\",\n" @@ -365,18 +310,15 @@ msgid "" " assert file2.read() == \"default\"" msgstr "" -#: ../../library/unittest.mock-examples.rst:389 msgid "Patch Decorators" msgstr "" -#: ../../library/unittest.mock-examples.rst:393 msgid "" "With :func:`patch` it matters that you patch objects in the namespace where " "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" -#: ../../library/unittest.mock-examples.rst:398 msgid "" "A common need in tests is to patch a class attribute or a module attribute, " "for example patching a builtin or patching a class in a module to test that " @@ -385,22 +327,19 @@ msgid "" "tests and cause hard to diagnose problems." msgstr "" -#: ../../library/unittest.mock-examples.rst:404 msgid "" -"mock provides three convenient decorators for " -"this: :func:`patch`, :func:`patch.object` and :func:`patch.dict`. ``patch`` " -"takes a single string, of the form ``package.module.Class.attribute`` to " -"specify the attribute you are patching. It also optionally takes a value " -"that you want the attribute (or class or whatever) to be replaced with. " -"'patch.object' takes an object and the name of the attribute you would like " -"patched, plus optionally the value to patch it with." +"mock provides three convenient decorators for this: :func:`patch`, :func:" +"`patch.object` and :func:`patch.dict`. ``patch`` takes a single string, of " +"the form ``package.module.Class.attribute`` to specify the attribute you are " +"patching. It also optionally takes a value that you want the attribute (or " +"class or whatever) to be replaced with. 'patch.object' takes an object and " +"the name of the attribute you would like patched, plus optionally the value " +"to patch it with." msgstr "" -#: ../../library/unittest.mock-examples.rst:412 msgid "``patch.object``::" msgstr "" -#: ../../library/unittest.mock-examples.rst:414 msgid "" ">>> original = SomeClass.attribute\n" ">>> @patch.object(SomeClass, 'attribute', sentinel.attribute)\n" @@ -418,18 +357,15 @@ msgid "" ">>> test()" msgstr "" -#: ../../library/unittest.mock-examples.rst:429 msgid "" -"If you are patching a module (including :mod:`builtins`) then " -"use :func:`patch` instead of :func:`patch.object`:" +"If you are patching a module (including :mod:`builtins`) then use :func:" +"`patch` instead of :func:`patch.object`:" msgstr "" -#: ../../library/unittest.mock-examples.rst:439 msgid "" "The module name can be 'dotted', in the form ``package.module`` if needed::" msgstr "" -#: ../../library/unittest.mock-examples.rst:441 msgid "" ">>> @patch('package.module.ClassName.attribute', sentinel.attribute)\n" "... def test():\n" @@ -439,22 +375,18 @@ msgid "" ">>> test()" msgstr "" -#: ../../library/unittest.mock-examples.rst:448 msgid "A nice pattern is to actually decorate test methods themselves:" msgstr "" -#: ../../library/unittest.mock-examples.rst:459 msgid "" "If you want to patch with a Mock, you can use :func:`patch` with only one " "argument (or :func:`patch.object` with two arguments). The mock will be " "created for you and passed into the test function / method:" msgstr "" -#: ../../library/unittest.mock-examples.rst:471 msgid "You can stack up multiple patch decorators using this pattern::" msgstr "" -#: ../../library/unittest.mock-examples.rst:473 msgid "" ">>> class MyTest(unittest.TestCase):\n" "... @patch('package.module.ClassName1')\n" @@ -466,7 +398,6 @@ msgid "" ">>> MyTest('test_something').test_something()" msgstr "" -#: ../../library/unittest.mock-examples.rst:482 msgid "" "When you nest patch decorators the mocks are passed in to the decorated " "function in the same order they applied (the normal *Python* order that " @@ -474,45 +405,37 @@ msgid "" "above the mock for ``test_module.ClassName2`` is passed in first." msgstr "" -#: ../../library/unittest.mock-examples.rst:487 msgid "" "There is also :func:`patch.dict` for setting values in a dictionary just " "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" -#: ../../library/unittest.mock-examples.rst:498 msgid "" "``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " "managers." msgstr "" -#: ../../library/unittest.mock-examples.rst:500 msgid "" "Where you use :func:`patch` to create a mock for you, you can get a " "reference to the mock using the \"as\" form of the with statement:" msgstr "" -#: ../../library/unittest.mock-examples.rst:515 msgid "" "As an alternative ``patch``, ``patch.object`` and ``patch.dict`` can be used " "as class decorators. When used in this way it is the same as applying the " "decorator individually to every method whose name starts with \"test\"." msgstr "" -#: ../../library/unittest.mock-examples.rst:523 msgid "Further Examples" msgstr "" -#: ../../library/unittest.mock-examples.rst:526 msgid "Here are some more examples for some slightly more advanced scenarios." msgstr "" -#: ../../library/unittest.mock-examples.rst:530 msgid "Mocking chained calls" msgstr "" -#: ../../library/unittest.mock-examples.rst:532 msgid "" "Mocking chained calls is actually straightforward with mock once you " "understand the :attr:`~Mock.return_value` attribute. When a mock is called " @@ -520,31 +443,26 @@ msgid "" "called, a new :class:`Mock` is created." msgstr "" -#: ../../library/unittest.mock-examples.rst:537 msgid "" "This means that you can see how the object returned from a call to a mocked " "object has been used by interrogating the ``return_value`` mock:" msgstr "" -#: ../../library/unittest.mock-examples.rst:545 msgid "" "From here it is a simple step to configure and then make assertions about " "chained calls. Of course another alternative is writing your code in a more " "testable way in the first place..." msgstr "" -#: ../../library/unittest.mock-examples.rst:549 msgid "So, suppose we have some code that looks a little bit like this:" msgstr "" -#: ../../library/unittest.mock-examples.rst:558 msgid "" "Assuming that ``BackendProvider`` is already well tested, how do we test " "``method()``? Specifically, we want to test that the code section ``# more " "code`` uses the response object in the correct way." msgstr "" -#: ../../library/unittest.mock-examples.rst:562 msgid "" "As this chain of calls is made from an instance attribute we can monkey " "patch the ``backend`` attribute on a ``Something`` instance. In this " @@ -554,50 +472,41 @@ msgid "" "response object uses the builtin :func:`open` as its ``spec``." msgstr "" -#: ../../library/unittest.mock-examples.rst:569 msgid "" "To do this we create a mock instance as our mock backend and create a mock " "response object for it. To set the response as the return value for that " "final ``start_call`` we could do this::" msgstr "" -#: ../../library/unittest.mock-examples.rst:573 msgid "" -"mock_backend.get_endpoint.return_value.create_call.return_value.start_call.return_value " -"= mock_response" +"mock_backend.get_endpoint.return_value.create_call.return_value.start_call." +"return_value = mock_response" msgstr "" -#: ../../library/unittest.mock-examples.rst:575 msgid "" -"We can do that in a slightly nicer way using " -"the :meth:`~Mock.configure_mock` method to directly set the return value for " -"us::" +"We can do that in a slightly nicer way using the :meth:`~Mock." +"configure_mock` method to directly set the return value for us::" msgstr "" -#: ../../library/unittest.mock-examples.rst:578 msgid "" ">>> something = Something()\n" ">>> mock_response = Mock(spec=open)\n" ">>> mock_backend = Mock()\n" -">>> config = " -"{'get_endpoint.return_value.create_call.return_value.start_call.return_value': " -"mock_response}\n" +">>> config = {'get_endpoint.return_value.create_call.return_value.start_call." +"return_value': mock_response}\n" ">>> mock_backend.configure_mock(**config)" msgstr "" -#: ../../library/unittest.mock-examples.rst:584 msgid "" "With these we monkey patch the \"mock backend\" in place and can make the " "real call::" msgstr "" -#: ../../library/unittest.mock-examples.rst:587 msgid "" ">>> something.backend = mock_backend\n" ">>> something.method()" msgstr "" -#: ../../library/unittest.mock-examples.rst:590 msgid "" "Using :attr:`~Mock.mock_calls` we can check the chained call with a single " "assert. A chained call is several calls in one line of code, so there will " @@ -605,35 +514,30 @@ msgid "" "create this list of calls for us::" msgstr "" -#: ../../library/unittest.mock-examples.rst:595 msgid "" -">>> chained = call.get_endpoint('foobar').create_call('spam', " -"'eggs').start_call()\n" +">>> chained = call.get_endpoint('foobar').create_call('spam', 'eggs')." +"start_call()\n" ">>> call_list = chained.call_list()\n" ">>> assert mock_backend.mock_calls == call_list" msgstr "" -#: ../../library/unittest.mock-examples.rst:601 msgid "Partial mocking" msgstr "" -#: ../../library/unittest.mock-examples.rst:603 msgid "" "In some tests I wanted to mock out a call to :meth:`datetime.date.today` to " "return a known date, but I didn't want to prevent the code under test from " "creating new date objects. Unfortunately :class:`datetime.date` is written " -"in C, and so I couldn't just monkey-patch out the " -"static :meth:`datetime.date.today` method." +"in C, and so I couldn't just monkey-patch out the static :meth:`datetime." +"date.today` method." msgstr "" -#: ../../library/unittest.mock-examples.rst:608 msgid "" "I found a simple way of doing this that involved effectively wrapping the " "date class with a mock, but passing through calls to the constructor to the " "real class (and returning real instances)." msgstr "" -#: ../../library/unittest.mock-examples.rst:612 msgid "" "The :func:`patch decorator ` is used here to mock out the ``date`` " "class in the module under test. The :attr:`~Mock.side_effect` attribute on " @@ -642,7 +546,6 @@ msgid "" "returned by ``side_effect``. ::" msgstr "" -#: ../../library/unittest.mock-examples.rst:618 msgid "" ">>> from datetime import date\n" ">>> with patch('mymodule.date') as mock_date:\n" @@ -653,13 +556,11 @@ msgid "" "... assert mymodule.date(2009, 6, 8) == date(2009, 6, 8)" msgstr "" -#: ../../library/unittest.mock-examples.rst:626 msgid "" "Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " "in the module that *uses* it. See :ref:`where to patch `." msgstr "" -#: ../../library/unittest.mock-examples.rst:629 msgid "" "When ``date.today()`` is called a known date is returned, but calls to the " "``date(...)`` constructor still return normal dates. Without this you can " @@ -667,67 +568,56 @@ msgid "" "algorithm as the code under test, which is a classic testing anti-pattern." msgstr "" -#: ../../library/unittest.mock-examples.rst:634 msgid "" "Calls to the date constructor are recorded in the ``mock_date`` attributes " "(``call_count`` and friends) which may also be useful for your tests." msgstr "" -#: ../../library/unittest.mock-examples.rst:637 msgid "" "An alternative way of dealing with mocking dates, or other builtin classes, " "is discussed in `this blog entry `_." msgstr "" -#: ../../library/unittest.mock-examples.rst:643 msgid "Mocking a Generator Method" msgstr "" -#: ../../library/unittest.mock-examples.rst:645 msgid "" "A Python generator is a function or method that uses the :keyword:`yield` " "statement to return a series of values when iterated over [#]_." msgstr "" -#: ../../library/unittest.mock-examples.rst:648 msgid "" "A generator method / function is called to return the generator object. It " "is the generator object that is then iterated over. The protocol method for " -"iteration is :meth:`~container.__iter__`, so we can mock this using " -"a :class:`MagicMock`." +"iteration is :meth:`~container.__iter__`, so we can mock this using a :class:" +"`MagicMock`." msgstr "" -#: ../../library/unittest.mock-examples.rst:653 msgid "" "Here's an example class with an \"iter\" method implemented as a generator:" msgstr "" -#: ../../library/unittest.mock-examples.rst:665 msgid "How would we mock this class, and in particular its \"iter\" method?" msgstr "" -#: ../../library/unittest.mock-examples.rst:667 msgid "" "To configure the values returned from the iteration (implicit in the call " "to :class:`list`), we need to configure the object returned by the call to " "``foo.iter()``." msgstr "" -#: ../../library/unittest.mock-examples.rst:675 msgid "" -"There are also generator expressions and more `advanced uses `_ of generators, but we aren't " -"concerned about them here. A very good introduction to generators and how " -"powerful they are is: `Generator Tricks for Systems Programmers `_." +"There are also generator expressions and more `advanced uses `_ of generators, but we aren't concerned " +"about them here. A very good introduction to generators and how powerful " +"they are is: `Generator Tricks for Systems Programmers `_." msgstr "" -#: ../../library/unittest.mock-examples.rst:683 msgid "Applying the same patch to every test method" msgstr "" -#: ../../library/unittest.mock-examples.rst:685 msgid "" "If you want several patches in place for multiple test methods the obvious " "way is to apply the patch decorators to every method. This can feel like " @@ -737,7 +627,6 @@ msgid "" "start with ``test``::" msgstr "" -#: ../../library/unittest.mock-examples.rst:692 msgid "" ">>> @patch('mymodule.SomeClass')\n" "... class MyTest(unittest.TestCase):\n" @@ -757,14 +646,12 @@ msgid "" "'something'" msgstr "" -#: ../../library/unittest.mock-examples.rst:709 msgid "" "An alternative way of managing patches is to use the :ref:`start-and-stop`. " "These allow you to move the patching into your ``setUp`` and ``tearDown`` " "methods. ::" msgstr "" -#: ../../library/unittest.mock-examples.rst:713 msgid "" ">>> class MyTest(unittest.TestCase):\n" "... def setUp(self):\n" @@ -780,15 +667,13 @@ msgid "" ">>> MyTest('test_foo').run()" msgstr "" -#: ../../library/unittest.mock-examples.rst:726 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " -"exception is raised in the setUp then tearDown is not " -"called. :meth:`unittest.TestCase.addCleanup` makes this easier::" +"exception is raised in the setUp then tearDown is not called. :meth:" +"`unittest.TestCase.addCleanup` makes this easier::" msgstr "" -#: ../../library/unittest.mock-examples.rst:731 msgid "" ">>> class MyTest(unittest.TestCase):\n" "... def setUp(self):\n" @@ -802,11 +687,9 @@ msgid "" ">>> MyTest('test_foo').run()" msgstr "" -#: ../../library/unittest.mock-examples.rst:744 msgid "Mocking Unbound Methods" msgstr "" -#: ../../library/unittest.mock-examples.rst:746 msgid "" "Whilst writing tests today I needed to patch an *unbound method* (patching " "the method on the class rather than on the instance). I needed self to be " @@ -820,7 +703,6 @@ msgid "" "becomes a nuisance." msgstr "" -#: ../../library/unittest.mock-examples.rst:757 msgid "" "If you pass ``autospec=True`` to patch then it does the patching with a " "*real* function object. This function object has the same signature as the " @@ -832,38 +714,32 @@ msgid "" "exactly what I wanted:" msgstr "" -#: ../../library/unittest.mock-examples.rst:778 msgid "" "If we don't use ``autospec=True`` then the unbound method is patched out " "with a Mock instance instead, and isn't called with ``self``." msgstr "" -#: ../../library/unittest.mock-examples.rst:783 msgid "Checking multiple calls with mock" msgstr "" -#: ../../library/unittest.mock-examples.rst:785 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." msgstr "" -#: ../../library/unittest.mock-examples.rst:792 msgid "" -"If your mock is only being called once you can use " -"the :meth:`~Mock.assert_called_once_with` method that also asserts that " -"the :attr:`~Mock.call_count` is one." +"If your mock is only being called once you can use the :meth:`~Mock." +"assert_called_once_with` method that also asserts that the :attr:`~Mock." +"call_count` is one." msgstr "" -#: ../../library/unittest.mock-examples.rst:804 msgid "" "Both ``assert_called_with`` and ``assert_called_once_with`` make assertions " "about the *most recent* call. If your mock is going to be called several " -"times, and you want to make assertions about *all* those calls you can " -"use :attr:`~Mock.call_args_list`:" +"times, and you want to make assertions about *all* those calls you can use :" +"attr:`~Mock.call_args_list`:" msgstr "" -#: ../../library/unittest.mock-examples.rst:816 msgid "" "The :data:`call` helper makes it easy to make assertions about these calls. " "You can build up a list of expected calls and compare it to " @@ -871,11 +747,9 @@ msgid "" "``call_args_list``:" msgstr "" -#: ../../library/unittest.mock-examples.rst:826 msgid "Coping with mutable arguments" msgstr "" -#: ../../library/unittest.mock-examples.rst:828 msgid "" "Another situation is rare, but can bite you, is when your mock is called " "with mutable arguments. ``call_args`` and ``call_args_list`` store " @@ -884,13 +758,11 @@ msgid "" "when the mock was called." msgstr "" -#: ../../library/unittest.mock-examples.rst:833 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" msgstr "" -#: ../../library/unittest.mock-examples.rst:836 msgid "" "def frob(val):\n" " pass\n" @@ -901,13 +773,11 @@ msgid "" " val.clear()" msgstr "" -#: ../../library/unittest.mock-examples.rst:844 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens::" msgstr "" -#: ../../library/unittest.mock-examples.rst:847 msgid "" ">>> with patch('mymodule.frob') as mock_frob:\n" "... val = {6}\n" @@ -922,14 +792,12 @@ msgid "" "Called with: ((set(),), {})" msgstr "" -#: ../../library/unittest.mock-examples.rst:859 msgid "" "One possibility would be for mock to copy the arguments you pass in. This " "could then cause problems if you do assertions that rely on object identity " "for equality." msgstr "" -#: ../../library/unittest.mock-examples.rst:863 msgid "" "Here's one solution that uses the :attr:`~Mock.side_effect` functionality. " "If you provide a ``side_effect`` function for a mock then ``side_effect`` " @@ -940,7 +808,6 @@ msgid "" "me. ::" msgstr "" -#: ../../library/unittest.mock-examples.rst:871 msgid "" ">>> from copy import deepcopy\n" ">>> from unittest.mock import Mock, patch, DEFAULT\n" @@ -964,28 +831,24 @@ msgid "" "call({6})" msgstr "" -#: ../../library/unittest.mock-examples.rst:892 msgid "" "``copy_call_args`` is called with the mock that will be called. It returns a " "new mock that we do the assertion on. The ``side_effect`` function makes a " "copy of the args and calls our ``new_mock`` with the copy." msgstr "" -#: ../../library/unittest.mock-examples.rst:898 msgid "" "If your mock is only going to be used once there is an easier way of " "checking arguments at the point they are called. You can simply do the " "checking inside a ``side_effect`` function." msgstr "" -#: ../../library/unittest.mock-examples.rst:912 msgid "" -"An alternative approach is to create a subclass of :class:`Mock` " -"or :class:`MagicMock` that copies (using :func:`copy.deepcopy`) the " -"arguments. Here's an example implementation:" +"An alternative approach is to create a subclass of :class:`Mock` or :class:" +"`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " +"an example implementation:" msgstr "" -#: ../../library/unittest.mock-examples.rst:937 msgid "" "When you subclass ``Mock`` or ``MagicMock`` all dynamically created " "attributes, and the ``return_value`` will use your subclass automatically. " @@ -993,18 +856,15 @@ msgid "" "``CopyingMock``." msgstr "" -#: ../../library/unittest.mock-examples.rst:943 msgid "Nesting Patches" msgstr "" -#: ../../library/unittest.mock-examples.rst:945 msgid "" "Using patch as a context manager is nice, but if you do multiple patches you " "can end up with nested with statements indenting further and further to the " "right::" msgstr "" -#: ../../library/unittest.mock-examples.rst:949 msgid "" ">>> class MyTest(unittest.TestCase):\n" "...\n" @@ -1021,7 +881,6 @@ msgid "" ">>> assert mymodule.Foo is original" msgstr "" -#: ../../library/unittest.mock-examples.rst:963 msgid "" "With unittest ``cleanup`` functions and the :ref:`start-and-stop` we can " "achieve the same effect without the nested indentation. A simple helper " @@ -1029,7 +888,6 @@ msgid "" "mock for us::" msgstr "" -#: ../../library/unittest.mock-examples.rst:968 msgid "" ">>> class MyTest(unittest.TestCase):\n" "...\n" @@ -1053,24 +911,20 @@ msgid "" ">>> assert mymodule.Foo is original" msgstr "" -#: ../../library/unittest.mock-examples.rst:991 msgid "Mocking a dictionary with MagicMock" msgstr "" -#: ../../library/unittest.mock-examples.rst:993 msgid "" "You may want to mock a dictionary, or other container object, recording all " "access to it whilst having it still behave like a dictionary." msgstr "" -#: ../../library/unittest.mock-examples.rst:996 msgid "" "We can do this with :class:`MagicMock`, which will behave like a dictionary, " "and using :data:`~Mock.side_effect` to delegate dictionary access to a real " "underlying dictionary that is under our control." msgstr "" -#: ../../library/unittest.mock-examples.rst:1000 msgid "" "When the :meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods " "of our ``MagicMock`` are called (normal dictionary access) then " @@ -1078,50 +932,41 @@ msgid "" "the value too). We can also control what is returned." msgstr "" -#: ../../library/unittest.mock-examples.rst:1005 msgid "" -"After the ``MagicMock`` has been used we can use attributes " -"like :data:`~Mock.call_args_list` to assert about how the dictionary was " -"used:" +"After the ``MagicMock`` has been used we can use attributes like :data:" +"`~Mock.call_args_list` to assert about how the dictionary was used:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1021 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1028 msgid "" "A *third* option is to use ``MagicMock`` but passing in ``dict`` as the " "*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " "dictionary magic methods available:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1036 msgid "" "With these side effect functions in place, the ``mock`` will behave like a " "normal dictionary but recording the access. It even raises a :exc:`KeyError` " "if you try to access a key that doesn't exist." msgstr "" -#: ../../library/unittest.mock-examples.rst:1055 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1067 msgid "Mock subclasses and their attributes" msgstr "" -#: ../../library/unittest.mock-examples.rst:1069 msgid "" "There are various reasons why you might want to subclass :class:`Mock`. One " "reason might be to add helper methods. Here's a silly example:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1085 msgid "" "The standard behaviour for ``Mock`` instances is that attributes and the " "return value mocks are of the same type as the mock they are accessed on. " @@ -1131,16 +976,13 @@ msgid "" "mock of instances of your subclass." msgstr "" -#: ../../library/unittest.mock-examples.rst:1101 msgid "" -"Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created " -"a `Twisted adaptor `_. Having this applied to attributes too " -"actually causes errors." +"Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created a `Twisted " +"adaptor `_. Having this applied to attributes too actually causes errors." msgstr "" -#: ../../library/unittest.mock-examples.rst:1107 msgid "" "``Mock`` (in all its flavours) uses a method called ``_get_child_mock`` to " "create these \"sub-mocks\" for attributes and return values. You can prevent " @@ -1149,25 +991,21 @@ msgid "" "are then passed onto the mock constructor:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1124 msgid "" "An exception to this rule are the non-callable mocks. Attributes use the " "callable variant because otherwise non-callable mocks couldn't have callable " "methods." msgstr "" -#: ../../library/unittest.mock-examples.rst:1130 msgid "Mocking imports with patch.dict" msgstr "" -#: ../../library/unittest.mock-examples.rst:1132 msgid "" "One situation where mocking can be hard is where you have a local import " "inside a function. These are harder to mock because they aren't using an " "object from the module namespace that we can patch out." msgstr "" -#: ../../library/unittest.mock-examples.rst:1136 msgid "" "Generally local imports are to be avoided. They are sometimes done to " "prevent circular dependencies, for which there is *usually* a much better " @@ -1177,7 +1015,6 @@ msgid "" "attribute and only do the import on first use)." msgstr "" -#: ../../library/unittest.mock-examples.rst:1143 msgid "" "That aside there is a way to use ``mock`` to affect the results of an " "import. Importing fetches an *object* from the :data:`sys.modules` " @@ -1187,7 +1024,6 @@ msgid "" "back. This need not be the case however." msgstr "" -#: ../../library/unittest.mock-examples.rst:1150 msgid "" "This means you can use :func:`patch.dict` to *temporarily* put a mock in " "place in :data:`sys.modules`. Any imports whilst this patch is active will " @@ -1196,29 +1032,23 @@ msgid "" "whatever was there previously will be restored safely." msgstr "" -#: ../../library/unittest.mock-examples.rst:1156 msgid "Here's an example that mocks out the 'fooble' module." msgstr "" -#: ../../library/unittest.mock-examples.rst:1168 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." msgstr "" -#: ../../library/unittest.mock-examples.rst:1171 msgid "This also works for the ``from module import name`` form:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1181 msgid "With slightly more work you can also mock package imports:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1194 msgid "Tracking order of calls and less verbose call assertions" msgstr "" -#: ../../library/unittest.mock-examples.rst:1196 msgid "" "The :class:`Mock` class allows you to track the *order* of method calls on " "your mock objects through the :attr:`~Mock.method_calls` attribute. This " @@ -1226,7 +1056,6 @@ msgid "" "however we can use :attr:`~Mock.mock_calls` to achieve the same effect." msgstr "" -#: ../../library/unittest.mock-examples.rst:1201 msgid "" "Because mocks track calls to child mocks in ``mock_calls``, and accessing an " "arbitrary attribute of a mock creates a child mock, we can create our " @@ -1234,20 +1063,17 @@ msgid "" "recorded, in order, in the ``mock_calls`` of the parent:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1218 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1225 msgid "" "If ``patch`` is creating, and putting in place, your mocks then you can " "attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " "After attaching calls will be recorded in ``mock_calls`` of the manager. ::" msgstr "" -#: ../../library/unittest.mock-examples.rst:1229 msgid "" ">>> manager = MagicMock()\n" ">>> with patch('mymodule.Class1') as MockClass1:\n" @@ -1265,22 +1091,19 @@ msgid "" "call.MockClass2().bar()]" msgstr "" -#: ../../library/unittest.mock-examples.rst:1244 msgid "" "If many calls have been made, but you're only interested in a particular " -"sequence of them then an alternative is to use " -"the :meth:`~Mock.assert_has_calls` method. This takes a list of calls " -"(constructed with the :data:`call` object). If that sequence of calls are " -"in :attr:`~Mock.mock_calls` then the assert succeeds." +"sequence of them then an alternative is to use the :meth:`~Mock." +"assert_has_calls` method. This takes a list of calls (constructed with the :" +"data:`call` object). If that sequence of calls are in :attr:`~Mock." +"mock_calls` then the assert succeeds." msgstr "" -#: ../../library/unittest.mock-examples.rst:1258 msgid "" "Even though the chained call ``m.one().two().three()`` aren't the only calls " "that have been made to the mock, the assert still succeeds." msgstr "" -#: ../../library/unittest.mock-examples.rst:1261 msgid "" "Sometimes a mock may have several calls made to it, and you are only " "interested in asserting about *some* of those calls. You may not even care " @@ -1288,17 +1111,14 @@ msgid "" "``assert_has_calls``:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1273 msgid "More complex argument matching" msgstr "" -#: ../../library/unittest.mock-examples.rst:1275 msgid "" "Using the same basic concept as :data:`ANY` we can implement matchers to do " "more complex assertions on objects used as arguments to mocks." msgstr "" -#: ../../library/unittest.mock-examples.rst:1278 msgid "" "Suppose we expect some object to be passed to a mock that by default " "compares equal based on object identity (which is the Python default for " @@ -1308,28 +1128,23 @@ msgid "" "attributes for us." msgstr "" -#: ../../library/unittest.mock-examples.rst:1285 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1301 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1313 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1324 msgid "Putting all this together:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1329 msgid "" "The ``Matcher`` is instantiated with our compare function and the ``Foo`` " "object we want to compare against. In ``assert_called_with`` the ``Matcher`` " @@ -1339,18 +1154,15 @@ msgid "" "raised:" msgstr "" -#: ../../library/unittest.mock-examples.rst:1342 msgid "" -"With a bit of tweaking you could have the comparison function raise " -"the :exc:`AssertionError` directly and provide a more useful failure message." +"With a bit of tweaking you could have the comparison function raise the :exc:" +"`AssertionError` directly and provide a more useful failure message." msgstr "" -#: ../../library/unittest.mock-examples.rst:1345 msgid "" "As of version 1.5, the Python testing library `PyHamcrest `_ provides similar functionality, that may be " -"useful here, in the form of its equality matcher " -"(`hamcrest.library.integration.match_equality `_)." +"useful here, in the form of its equality matcher (`hamcrest.library." +"integration.match_equality `_)." msgstr "" diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 767cf3a..64d585c 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,22 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/unittest.mock.rst:2 msgid ":mod:`!unittest.mock` --- mock object library" msgstr "" -#: ../../library/unittest.mock.rst:12 msgid "**Source code:** :source:`Lib/unittest/mock.py`" msgstr "" -#: ../../library/unittest.mock.rst:16 msgid "" ":mod:`unittest.mock` is a library for testing in Python. It allows you to " "replace parts of your system under test with mock objects and make " "assertions about how they have been used." msgstr "" -#: ../../library/unittest.mock.rst:20 msgid "" ":mod:`unittest.mock` provides a core :class:`Mock` class removing the need " "to create a host of stubs throughout your test suite. After performing an " @@ -42,33 +38,28 @@ msgid "" "set needed attributes in the normal way." msgstr "" -#: ../../library/unittest.mock.rst:26 msgid "" "Additionally, mock provides a :func:`patch` decorator that handles patching " -"module and class level attributes within the scope of a test, along " -"with :const:`sentinel` for creating unique objects. See the `quick guide`_ " -"for some examples of how to use :class:`Mock`, :class:`MagicMock` " -"and :func:`patch`." +"module and class level attributes within the scope of a test, along with :" +"const:`sentinel` for creating unique objects. See the `quick guide`_ for " +"some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" +"`patch`." msgstr "" -#: ../../library/unittest.mock.rst:32 msgid "" "Mock is designed for use with :mod:`unittest` and is based on the 'action -> " "assertion' pattern instead of 'record -> replay' used by many mocking " "frameworks." msgstr "" -#: ../../library/unittest.mock.rst:36 msgid "" "There is a backport of :mod:`unittest.mock` for earlier versions of Python, " "available as :pypi:`mock` on PyPI." msgstr "" -#: ../../library/unittest.mock.rst:41 msgid "Quick Guide" msgstr "" -#: ../../library/unittest.mock.rst:59 msgid "" ":class:`Mock` and :class:`MagicMock` objects create all attributes and " "methods as you access them and store details of how they have been used. You " @@ -76,13 +67,11 @@ msgid "" "available, and then make assertions about how they have been used:" msgstr "" -#: ../../library/unittest.mock.rst:71 msgid "" ":attr:`~Mock.side_effect` allows you to perform side effects, including " "raising an exception when a mock is called:" msgstr "" -#: ../../library/unittest.mock.rst:92 msgid "" "Mock has many other ways you can configure it and control its behaviour. For " "example the *spec* argument configures the mock to take its specification " @@ -90,7 +79,6 @@ msgid "" "that don't exist on the spec will fail with an :exc:`AttributeError`." msgstr "" -#: ../../library/unittest.mock.rst:97 msgid "" "The :func:`patch` decorator / context manager makes it easy to mock classes " "or objects in a module under test. The object you specify will be replaced " @@ -98,7 +86,6 @@ msgid "" "ends::" msgstr "" -#: ../../library/unittest.mock.rst:101 msgid "" ">>> from unittest.mock import patch\n" ">>> @patch('module.ClassName2')\n" @@ -114,7 +101,6 @@ msgid "" ">>> test()" msgstr "" -#: ../../library/unittest.mock.rst:116 msgid "" "When you nest patch decorators the mocks are passed in to the decorated " "function in the same order they applied (the normal *Python* order that " @@ -122,34 +108,29 @@ msgid "" "above the mock for ``module.ClassName1`` is passed in first." msgstr "" -#: ../../library/unittest.mock.rst:121 msgid "" "With :func:`patch` it matters that you patch objects in the namespace where " "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" -#: ../../library/unittest.mock.rst:125 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" msgstr "" -#: ../../library/unittest.mock.rst:135 msgid "" "There is also :func:`patch.dict` for setting values in a dictionary just " "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" -#: ../../library/unittest.mock.rst:146 msgid "" "Mock supports the mocking of Python :ref:`magic methods `. " "The easiest way of using magic methods is with the :class:`MagicMock` class. " "It allows you to do things like:" msgstr "" -#: ../../library/unittest.mock.rst:156 msgid "" "Mock allows you to assign functions (or other Mock instances) to magic " "methods and they will be called appropriately. The :class:`MagicMock` class " @@ -157,13 +138,11 @@ msgid "" "(well, all the useful ones anyway)." msgstr "" -#: ../../library/unittest.mock.rst:161 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" msgstr "" -#: ../../library/unittest.mock.rst:169 msgid "" "For ensuring that the mock objects in your tests have the same api as the " "objects they are replacing, you can use :ref:`auto-speccing >> mock = Mock(return_value=None)\n" ">>> mock('hello')\n" @@ -383,18 +330,15 @@ msgid "" "False" msgstr "" -#: ../../library/unittest.mock.rst:414 msgid "" "This can be useful where you want to make a series of assertions that reuse " "the same object." msgstr "" -#: ../../library/unittest.mock.rst:417 msgid "" "*return_value* parameter when set to ``True`` resets :attr:`return_value`:" msgstr "" -#: ../../library/unittest.mock.rst:419 msgid "" ">>> mock = Mock(return_value=5)\n" ">>> mock('hello')\n" @@ -404,12 +348,10 @@ msgid "" "" msgstr "" -#: ../../library/unittest.mock.rst:428 msgid "" "*side_effect* parameter when set to ``True`` resets :attr:`side_effect`:" msgstr "" -#: ../../library/unittest.mock.rst:430 msgid "" ">>> mock = Mock(side_effect=ValueError)\n" ">>> mock('hello')\n" @@ -421,113 +363,92 @@ msgid "" "" msgstr "" -#: ../../library/unittest.mock.rst:441 msgid "" -"Note that :meth:`reset_mock` *doesn't* clear " -"the :attr:`return_value`, :attr:`side_effect` or any child attributes you " -"have set using normal assignment by default." +"Note that :meth:`reset_mock` *doesn't* clear the :attr:`return_value`, :attr:" +"`side_effect` or any child attributes you have set using normal assignment " +"by default." msgstr "" -#: ../../library/unittest.mock.rst:445 msgid "Child mocks are reset as well." msgstr "" -#: ../../library/unittest.mock.rst:447 msgid "Added two keyword-only arguments to the reset_mock function." msgstr "" -#: ../../library/unittest.mock.rst:452 msgid "" "Add a spec to a mock. *spec* can either be an object or a list of strings. " "Only attributes on the *spec* can be fetched as attributes from the mock." msgstr "" -#: ../../library/unittest.mock.rst:456 msgid "If *spec_set* is true then only attributes on the spec can be set." msgstr "" -#: ../../library/unittest.mock.rst:461 msgid "" "Attach a mock as an attribute of this one, replacing its name and parent. " -"Calls to the attached mock will be recorded in the :attr:`method_calls` " -"and :attr:`mock_calls` attributes of this one." +"Calls to the attached mock will be recorded in the :attr:`method_calls` and :" +"attr:`mock_calls` attributes of this one." msgstr "" -#: ../../library/unittest.mock.rst:468 msgid "Set attributes on the mock through keyword arguments." msgstr "" -#: ../../library/unittest.mock.rst:470 msgid "" "Attributes plus return values and side effects can be set on child mocks " "using standard dot notation and unpacking a dictionary in the method call:" msgstr "" -#: ../../library/unittest.mock.rst:484 msgid "The same thing can be achieved in the constructor call to mocks:" msgstr "" -#: ../../library/unittest.mock.rst:497 msgid "" ":meth:`configure_mock` exists to make it easier to do configuration after " "the mock has been created." msgstr "" -#: ../../library/unittest.mock.rst:503 msgid "" ":class:`Mock` objects limit the results of ``dir(some_mock)`` to useful " "results. For mocks with a *spec* this includes all the permitted attributes " "for the mock." msgstr "" -#: ../../library/unittest.mock.rst:507 msgid "" "See :data:`FILTER_DIR` for what this filtering does, and how to switch it " "off." msgstr "" -#: ../../library/unittest.mock.rst:513 msgid "" "Create the child mocks for attributes and return value. By default child " "mocks will be the same type as the parent. Subclasses of Mock may want to " "override this to customize the way child mocks are made." msgstr "" -#: ../../library/unittest.mock.rst:518 msgid "" "For non-callable mocks the callable variant will be used (rather than any " "custom subclass)." msgstr "" -#: ../../library/unittest.mock.rst:524 msgid "A boolean representing whether or not the mock object has been called:" msgstr "" -#: ../../library/unittest.mock.rst:535 msgid "An integer telling you how many times the mock object has been called:" msgstr "" -#: ../../library/unittest.mock.rst:547 msgid "Set this to configure the value returned by calling the mock:" msgstr "" -#: ../../library/unittest.mock.rst:554 msgid "" "The default return value is a mock object and you can configure it in the " "normal way:" msgstr "" -#: ../../library/unittest.mock.rst:563 msgid ":attr:`return_value` can also be set in the constructor:" msgstr "" -#: ../../library/unittest.mock.rst:574 msgid "" "This can either be a function to be called when the mock is called, an " "iterable or an exception (class or instance) to be raised." msgstr "" -#: ../../library/unittest.mock.rst:577 msgid "" "If you pass in a function it will be called with same arguments as the mock " "and unless the function returns the :data:`DEFAULT` singleton the call to " @@ -536,111 +457,93 @@ msgid "" "the :attr:`return_value`)." msgstr "" -#: ../../library/unittest.mock.rst:583 msgid "" "If you pass in an iterable, it is used to retrieve an iterator which must " "yield a value on every call. This value can either be an exception instance " -"to be raised, or a value to be returned from the call to the mock " -"(:data:`DEFAULT` handling is identical to the function case)." +"to be raised, or a value to be returned from the call to the mock (:data:" +"`DEFAULT` handling is identical to the function case)." msgstr "" -#: ../../library/unittest.mock.rst:588 msgid "" "An example of a mock that raises an exception (to test exception handling of " "an API):" msgstr "" -#: ../../library/unittest.mock.rst:598 msgid "Using :attr:`side_effect` to return a sequence of values:" msgstr "" -#: ../../library/unittest.mock.rst:605 msgid "Using a callable:" msgstr "" -#: ../../library/unittest.mock.rst:615 msgid "" ":attr:`side_effect` can be set in the constructor. Here's an example that " "adds one to the value the mock is called with and returns it:" msgstr "" -#: ../../library/unittest.mock.rst:625 msgid "Setting :attr:`side_effect` to ``None`` clears it:" msgstr "" -#: ../../library/unittest.mock.rst:639 msgid "" "This is either ``None`` (if the mock hasn't been called), or the arguments " "that the mock was last called with. This will be in the form of a tuple: the " "first member, which can also be accessed through the ``args`` property, is " -"any ordered arguments the mock was called with (or an empty tuple) and the " -"second member, which can also be accessed through the ``kwargs`` property, " -"is any keyword arguments (or an empty dictionary)." +"any positional arguments the mock was called with (or an empty tuple) and " +"the second member, which can also be accessed through the ``kwargs`` " +"property, is any keyword arguments (or an empty dictionary)." msgstr "" -#: ../../library/unittest.mock.rst:672 msgid "" -":attr:`call_args`, along with members of the " -"lists :attr:`call_args_list`, :attr:`method_calls` and :attr:`mock_calls` " -"are :data:`call` objects. These are tuples, so they can be unpacked to get " -"at the individual arguments and make more complex assertions. " -"See :ref:`calls as tuples `." +":attr:`call_args`, along with members of the lists :attr:`call_args_list`, :" +"attr:`method_calls` and :attr:`mock_calls` are :data:`call` objects. These " +"are tuples, so they can be unpacked to get at the individual arguments and " +"make more complex assertions. See :ref:`calls as tuples `." msgstr "" -#: ../../library/unittest.mock.rst:678 msgid "Added ``args`` and ``kwargs`` properties." msgstr "" -#: ../../library/unittest.mock.rst:684 msgid "" "This is a list of all the calls made to the mock object in sequence (so the " "length of the list is the number of times it has been called). Before any " "calls have been made it is an empty list. The :data:`call` object can be " -"used for conveniently constructing lists of calls to compare " -"with :attr:`call_args_list`." +"used for conveniently constructing lists of calls to compare with :attr:" +"`call_args_list`." msgstr "" -#: ../../library/unittest.mock.rst:700 msgid "" "Members of :attr:`call_args_list` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" -#: ../../library/unittest.mock.rst:707 msgid "" "As well as tracking calls to themselves, mocks also track calls to methods " "and attributes, and *their* methods and attributes:" msgstr "" -#: ../../library/unittest.mock.rst:718 msgid "" "Members of :attr:`method_calls` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" -#: ../../library/unittest.mock.rst:725 msgid "" ":attr:`mock_calls` records *all* calls to the mock object, its methods, " "magic methods *and* return value mocks." msgstr "" -#: ../../library/unittest.mock.rst:743 msgid "" "Members of :attr:`mock_calls` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" -#: ../../library/unittest.mock.rst:749 msgid "" "The way :attr:`mock_calls` are recorded means that where nested calls are " "made, the parameters of ancestor calls are not recorded and so will always " "compare equal:" msgstr "" -#: ../../library/unittest.mock.rst:763 msgid "" "Normally the :attr:`!__class__` attribute of an object will return its type. " "For a mock object with a :attr:`!spec`, :attr:`!__class__` returns the spec " @@ -648,32 +551,27 @@ msgid "" "the object they are replacing / masquerading as:" msgstr "" -#: ../../library/unittest.mock.rst:772 msgid "" -":attr:`!__class__` is assignable to, this allows a mock to pass " -"an :func:`isinstance` check without forcing you to use a spec:" +":attr:`!__class__` is assignable to, this allows a mock to pass an :func:" +"`isinstance` check without forcing you to use a spec:" msgstr "" -#: ../../library/unittest.mock.rst:782 msgid "" "A non-callable version of :class:`Mock`. The constructor parameters have the " "same meaning of :class:`Mock`, with the exception of *return_value* and " "*side_effect* which have no meaning on a non-callable mock." msgstr "" -#: ../../library/unittest.mock.rst:786 msgid "" "Mock objects that use a class or an instance as a :attr:`!spec` or :attr:`!" "spec_set` are able to pass :func:`isinstance` tests:" msgstr "" -#: ../../library/unittest.mock.rst:796 msgid "" -"The :class:`Mock` classes have support for mocking magic methods. " -"See :ref:`magic methods ` for the full details." +"The :class:`Mock` classes have support for mocking magic methods. See :ref:" +"`magic methods ` for the full details." msgstr "" -#: ../../library/unittest.mock.rst:799 msgid "" "The mock classes and the :func:`patch` decorators all take arbitrary keyword " "arguments for configuration. For the :func:`patch` decorators the keywords " @@ -681,14 +579,12 @@ msgid "" "arguments are for configuring attributes of the mock:" msgstr "" -#: ../../library/unittest.mock.rst:810 msgid "" "The return value and side effect of child mocks can be set in the same way, " "using dotted notation. As you can't use dotted names directly in a call you " "have to create a dictionary and unpack it using ``**``:" msgstr "" -#: ../../library/unittest.mock.rst:825 msgid "" "A callable mock which was created with a *spec* (or a *spec_set*) will " "introspect the specification object's signature when matching calls to the " @@ -696,7 +592,6 @@ msgid "" "whether they were passed positionally or by name::" msgstr "" -#: ../../library/unittest.mock.rst:830 msgid "" ">>> def f(a, b, c): pass\n" "...\n" @@ -707,33 +602,28 @@ msgid "" ">>> mock.assert_called_with(a=1, b=2, c=3)" msgstr "" -#: ../../library/unittest.mock.rst:838 msgid "" -"This applies " -"to :meth:`~Mock.assert_called_with`, :meth:`~Mock.assert_called_once_with`, :meth:`~Mock.assert_has_calls` " -"and :meth:`~Mock.assert_any_call`. When :ref:`auto-speccing`, it will also " -"apply to method calls on the mock object." +"This applies to :meth:`~Mock.assert_called_with`, :meth:`~Mock." +"assert_called_once_with`, :meth:`~Mock.assert_has_calls` and :meth:`~Mock." +"assert_any_call`. When :ref:`auto-speccing`, it will also apply to method " +"calls on the mock object." msgstr "" -#: ../../library/unittest.mock.rst:843 msgid "Added signature introspection on specced and autospecced mock objects." msgstr "" -#: ../../library/unittest.mock.rst:849 msgid "" -"A mock intended to be used as a :class:`property`, or " -"other :term:`descriptor`, on a class. :class:`PropertyMock` " -"provides :meth:`~object.__get__` and :meth:`~object.__set__` methods so you " -"can specify a return value when it is fetched." +"A mock intended to be used as a :class:`property`, or other :term:" +"`descriptor`, on a class. :class:`PropertyMock` provides :meth:`~object." +"__get__` and :meth:`~object.__set__` methods so you can specify a return " +"value when it is fetched." msgstr "" -#: ../../library/unittest.mock.rst:854 msgid "" "Fetching a :class:`PropertyMock` instance from an object calls the mock, " "with no args. Setting it calls the mock with the value being set. ::" msgstr "" -#: ../../library/unittest.mock.rst:857 msgid "" ">>> class Foo:\n" "... @property\n" @@ -754,14 +644,12 @@ msgid "" "[call(), call(6)]" msgstr "" -#: ../../library/unittest.mock.rst:875 msgid "" -"Because of the way mock attributes are stored you can't directly attach " -"a :class:`PropertyMock` to a mock object. Instead you can attach it to the " -"mock type object::" +"Because of the way mock attributes are stored you can't directly attach a :" +"class:`PropertyMock` to a mock object. Instead you can attach it to the mock " +"type object::" msgstr "" -#: ../../library/unittest.mock.rst:879 msgid "" ">>> m = MagicMock()\n" ">>> p = PropertyMock(return_value=3)\n" @@ -771,14 +659,12 @@ msgid "" ">>> p.assert_called_once_with()" msgstr "" -#: ../../library/unittest.mock.rst:888 msgid "" "If an :exc:`AttributeError` is raised by :class:`PropertyMock`, it will be " "interpreted as a missing descriptor and :meth:`~object.__getattr__` will be " "called on the parent mock::" msgstr "" -#: ../../library/unittest.mock.rst:892 msgid "" ">>> m = MagicMock()\n" ">>> no_attribute = PropertyMock(side_effect=AttributeError)\n" @@ -787,216 +673,180 @@ msgid "" "" msgstr "" -#: ../../library/unittest.mock.rst:898 msgid "See :meth:`~object.__getattr__` for details." msgstr "" -#: ../../library/unittest.mock.rst:903 msgid "" "An asynchronous version of :class:`MagicMock`. The :class:`AsyncMock` object " "will behave so the object is recognized as an async function, and the result " "of a call is an awaitable." msgstr "" -#: ../../library/unittest.mock.rst:913 msgid "" "The result of ``mock()`` is an async function which will have the outcome of " "``side_effect`` or ``return_value`` after it has been awaited:" msgstr "" -#: ../../library/unittest.mock.rst:916 msgid "" "if ``side_effect`` is a function, the async function will return the result " "of that function," msgstr "" -#: ../../library/unittest.mock.rst:918 msgid "" "if ``side_effect`` is an exception, the async function will raise the " "exception," msgstr "" -#: ../../library/unittest.mock.rst:920 msgid "" "if ``side_effect`` is an iterable, the async function will return the next " "value of the iterable, however, if the sequence of result is exhausted, " "``StopAsyncIteration`` is raised immediately," msgstr "" -#: ../../library/unittest.mock.rst:923 msgid "" "if ``side_effect`` is not defined, the async function will return the value " "defined by ``return_value``, hence, by default, the async function returns a " "new :class:`AsyncMock` object." msgstr "" -#: ../../library/unittest.mock.rst:928 msgid "" "Setting the *spec* of a :class:`Mock` or :class:`MagicMock` to an async " "function will result in a coroutine object being returned after calling." msgstr "" -#: ../../library/unittest.mock.rst:940 msgid "" -"Setting the *spec* of a :class:`Mock`, :class:`MagicMock`, " -"or :class:`AsyncMock` to a class with asynchronous and synchronous functions " -"will automatically detect the synchronous functions and set them " -"as :class:`MagicMock` (if the parent mock is :class:`AsyncMock` " -"or :class:`MagicMock`) or :class:`Mock` (if the parent mock " -"is :class:`Mock`). All asynchronous functions will be :class:`AsyncMock`." +"Setting the *spec* of a :class:`Mock`, :class:`MagicMock`, or :class:" +"`AsyncMock` to a class with asynchronous and synchronous functions will " +"automatically detect the synchronous functions and set them as :class:" +"`MagicMock` (if the parent mock is :class:`AsyncMock` or :class:`MagicMock`) " +"or :class:`Mock` (if the parent mock is :class:`Mock`). All asynchronous " +"functions will be :class:`AsyncMock`." msgstr "" -#: ../../library/unittest.mock.rst:968 msgid "" "Assert that the mock was awaited at least once. Note that this is separate " "from the object having been called, the ``await`` keyword must be used:" msgstr "" -#: ../../library/unittest.mock.rst:987 msgid "Assert that the mock was awaited exactly once." msgstr "" -#: ../../library/unittest.mock.rst:1003 msgid "Assert that the last await was with the specified arguments." msgstr "" -#: ../../library/unittest.mock.rst:1020 msgid "" "Assert that the mock was awaited exactly once and with the specified " "arguments." msgstr "" -#: ../../library/unittest.mock.rst:1037 msgid "Assert the mock has ever been awaited with the specified arguments." msgstr "" -#: ../../library/unittest.mock.rst:1053 msgid "" -"Assert the mock has been awaited with the specified calls. " -"The :attr:`await_args_list` list is checked for the awaits." +"Assert the mock has been awaited with the specified calls. The :attr:" +"`await_args_list` list is checked for the awaits." msgstr "" -#: ../../library/unittest.mock.rst:1056 msgid "" "If *any_order* is false then the awaits must be sequential. There can be " "extra calls before or after the specified awaits." msgstr "" -#: ../../library/unittest.mock.rst:1060 msgid "" "If *any_order* is true then the awaits can be in any order, but they must " "all appear in :attr:`await_args_list`." msgstr "" -#: ../../library/unittest.mock.rst:1080 msgid "Assert that the mock was never awaited." msgstr "" -#: ../../library/unittest.mock.rst:1087 msgid "" -"See :func:`Mock.reset_mock`. Also sets :attr:`await_count` to " -"0, :attr:`await_args` to None, and clears the :attr:`await_args_list`." +"See :func:`Mock.reset_mock`. Also sets :attr:`await_count` to 0, :attr:" +"`await_args` to None, and clears the :attr:`await_args_list`." msgstr "" -#: ../../library/unittest.mock.rst:1092 msgid "" "An integer keeping track of how many times the mock object has been awaited." msgstr "" -#: ../../library/unittest.mock.rst:1107 msgid "" "This is either ``None`` (if the mock hasn’t been awaited), or the arguments " -"that the mock was last awaited with. Functions the same " -"as :attr:`Mock.call_args`." +"that the mock was last awaited with. Functions the same as :attr:`Mock." +"call_args`." msgstr "" -#: ../../library/unittest.mock.rst:1125 msgid "" "This is a list of all the awaits made to the mock object in sequence (so the " "length of the list is the number of times it has been awaited). Before any " "awaits have been made it is an empty list." msgstr "" -#: ../../library/unittest.mock.rst:1145 msgid "" -"A version of :class:`MagicMock` for multithreading tests. " -"The :class:`ThreadingMock` object provides extra methods to wait for a call " -"to be invoked, rather than assert on it immediately." +"A version of :class:`MagicMock` for multithreading tests. The :class:" +"`ThreadingMock` object provides extra methods to wait for a call to be " +"invoked, rather than assert on it immediately." msgstr "" -#: ../../library/unittest.mock.rst:1149 msgid "" "The default timeout is specified by the ``timeout`` argument, or if unset by " "the :attr:`ThreadingMock.DEFAULT_TIMEOUT` attribute, which defaults to " "blocking (``None``)." msgstr "" -#: ../../library/unittest.mock.rst:1152 msgid "" -"You can configure the global default timeout by " -"setting :attr:`ThreadingMock.DEFAULT_TIMEOUT`." +"You can configure the global default timeout by setting :attr:`ThreadingMock." +"DEFAULT_TIMEOUT`." msgstr "" -#: ../../library/unittest.mock.rst:1156 msgid "Waits until the mock is called." msgstr "" -#: ../../library/unittest.mock.rst:1158 msgid "" "If a timeout was passed at the creation of the mock or if a timeout argument " "is passed to this function, the function raises an :exc:`AssertionError` if " "the call is not performed in time." msgstr "" -#: ../../library/unittest.mock.rst:1170 msgid "Waits until the mock is called with the specified arguments." msgstr "" -#: ../../library/unittest.mock.rst:1172 msgid "" -"If a timeout was passed at the creation of the mock the function raises " -"an :exc:`AssertionError` if the call is not performed in time." +"If a timeout was passed at the creation of the mock the function raises an :" +"exc:`AssertionError` if the call is not performed in time." msgstr "" -#: ../../library/unittest.mock.rst:1183 msgid "" -"Global default timeout in seconds to create instances " -"of :class:`ThreadingMock`." +"Global default timeout in seconds to create instances of :class:" +"`ThreadingMock`." msgstr "" -#: ../../library/unittest.mock.rst:1189 msgid "Calling" msgstr "" -#: ../../library/unittest.mock.rst:1191 msgid "" -"Mock objects are callable. The call will return the value set as " -"the :attr:`~Mock.return_value` attribute. The default return value is a new " -"Mock object; it is created the first time the return value is accessed " -"(either explicitly or by calling the Mock) - but it is stored and the same " -"one returned each time." +"Mock objects are callable. The call will return the value set as the :attr:" +"`~Mock.return_value` attribute. The default return value is a new Mock " +"object; it is created the first time the return value is accessed (either " +"explicitly or by calling the Mock) - but it is stored and the same one " +"returned each time." msgstr "" -#: ../../library/unittest.mock.rst:1197 msgid "" -"Calls made to the object will be recorded in the attributes " -"like :attr:`~Mock.call_args` and :attr:`~Mock.call_args_list`." +"Calls made to the object will be recorded in the attributes like :attr:" +"`~Mock.call_args` and :attr:`~Mock.call_args_list`." msgstr "" -#: ../../library/unittest.mock.rst:1200 msgid "" "If :attr:`~Mock.side_effect` is set then it will be called after the call " "has been recorded, so if :attr:`!side_effect` raises an exception the call " "is still recorded." msgstr "" -#: ../../library/unittest.mock.rst:1204 msgid "" -"The simplest way to make a mock raise an exception when called is to " -"make :attr:`~Mock.side_effect` an exception class or instance:" +"The simplest way to make a mock raise an exception when called is to make :" +"attr:`~Mock.side_effect` an exception class or instance:" msgstr "" -#: ../../library/unittest.mock.rst:1222 msgid "" "If :attr:`~Mock.side_effect` is a function then whatever that function " "returns is what calls to the mock return. The :attr:`!side_effect` function " @@ -1004,7 +854,6 @@ msgid "" "return value of the call dynamically, based on the input:" msgstr "" -#: ../../library/unittest.mock.rst:1238 msgid "" "If you want the mock to still return the default return value (a new mock), " "or any set return value, then there are two ways of doing this. Either " @@ -1012,26 +861,22 @@ msgid "" "return :data:`DEFAULT`:" msgstr "" -#: ../../library/unittest.mock.rst:1257 msgid "" "To remove a :attr:`~Mock.side_effect`, and return to the default behaviour, " "set the :attr:`!side_effect` to ``None``:" msgstr "" -#: ../../library/unittest.mock.rst:1271 msgid "" "The :attr:`~Mock.side_effect` can also be any iterable object. Repeated " "calls to the mock will return values from the iterable (until the iterable " "is exhausted and a :exc:`StopIteration` is raised):" msgstr "" -#: ../../library/unittest.mock.rst:1287 msgid "" "If any members of the iterable are exceptions they will be raised instead of " "returned::" msgstr "" -#: ../../library/unittest.mock.rst:1290 msgid "" ">>> iterable = (33, ValueError, 66)\n" ">>> m = MagicMock(side_effect=iterable)\n" @@ -1045,17 +890,14 @@ msgid "" "66" msgstr "" -#: ../../library/unittest.mock.rst:1305 msgid "Deleting Attributes" msgstr "" -#: ../../library/unittest.mock.rst:1307 msgid "" "Mock objects create attributes on demand. This allows them to pretend to be " "objects of any type." msgstr "" -#: ../../library/unittest.mock.rst:1310 msgid "" "You may want a mock object to return ``False`` to a :func:`hasattr` call, or " "raise an :exc:`AttributeError` when an attribute is fetched. You can do this " @@ -1063,25 +905,21 @@ msgid "" "convenient." msgstr "" -#: ../../library/unittest.mock.rst:1314 msgid "" "You \"block\" attributes by deleting them. Once deleted, accessing an " "attribute will raise an :exc:`AttributeError`." msgstr "" -#: ../../library/unittest.mock.rst:1331 msgid "Mock names and the name attribute" msgstr "" -#: ../../library/unittest.mock.rst:1333 msgid "" "Since \"name\" is an argument to the :class:`Mock` constructor, if you want " "your mock object to have a \"name\" attribute you can't just pass it in at " -"creation time. There are two alternatives. One option is to " -"use :meth:`~Mock.configure_mock`::" +"creation time. There are two alternatives. One option is to use :meth:`~Mock." +"configure_mock`::" msgstr "" -#: ../../library/unittest.mock.rst:1338 msgid "" ">>> mock = MagicMock()\n" ">>> mock.configure_mock(name='my_name')\n" @@ -1089,23 +927,19 @@ msgid "" "'my_name'" msgstr "" -#: ../../library/unittest.mock.rst:1343 msgid "" "A simpler option is to simply set the \"name\" attribute after mock " "creation::" msgstr "" -#: ../../library/unittest.mock.rst:1345 msgid "" ">>> mock = MagicMock()\n" ">>> mock.name = \"foo\"" msgstr "" -#: ../../library/unittest.mock.rst:1350 msgid "Attaching Mocks as Attributes" msgstr "" -#: ../../library/unittest.mock.rst:1352 msgid "" "When you attach a mock as an attribute of another mock (or as the return " "value) it becomes a \"child\" of that mock. Calls to the child are recorded " @@ -1116,20 +950,17 @@ msgid "" "calls between mocks:" msgstr "" -#: ../../library/unittest.mock.rst:1370 msgid "" "The exception to this is if the mock has a name. This allows you to prevent " "the \"parenting\" if for some reason you don't want it to happen." msgstr "" -#: ../../library/unittest.mock.rst:1381 msgid "" "Mocks created for you by :func:`patch` are automatically given names. To " -"attach mocks that have names to a parent you use " -"the :meth:`~Mock.attach_mock` method::" +"attach mocks that have names to a parent you use the :meth:`~Mock." +"attach_mock` method::" msgstr "" -#: ../../library/unittest.mock.rst:1385 msgid "" ">>> thing1 = object()\n" ">>> thing2 = object()\n" @@ -1145,7 +976,6 @@ msgid "" "[call.child1('one'), call.child2('two')]" msgstr "" -#: ../../library/unittest.mock.rst:1399 msgid "" "The only exceptions are magic methods and attributes (those that have " "leading and trailing double underscores). Mock doesn't create these but " @@ -1155,11 +985,9 @@ msgid "" "support see :ref:`magic methods `." msgstr "" -#: ../../library/unittest.mock.rst:1408 msgid "The patchers" msgstr "" -#: ../../library/unittest.mock.rst:1410 msgid "" "The patch decorators are used for patching objects only within the scope of " "the function they decorate. They automatically handle the unpatching for " @@ -1167,17 +995,14 @@ msgid "" "in with statements or as class decorators." msgstr "" -#: ../../library/unittest.mock.rst:1417 msgid "patch" msgstr "" -#: ../../library/unittest.mock.rst:1421 msgid "" "The key is to do the patching in the right namespace. See the section `where " "to patch`_." msgstr "" -#: ../../library/unittest.mock.rst:1425 msgid "" ":func:`patch` acts as a function decorator, class decorator or a context " "manager. Inside the body of the function or with statement, the *target* is " @@ -1185,7 +1010,6 @@ msgid "" "patch is undone." msgstr "" -#: ../../library/unittest.mock.rst:1430 msgid "" "If *new* is omitted, then the target is replaced with an :class:`AsyncMock` " "if the patched object is an async function or a :class:`MagicMock` " @@ -1195,7 +1019,6 @@ msgid "" "by the context manager." msgstr "" -#: ../../library/unittest.mock.rst:1438 msgid "" "*target* should be a string in the form ``'package.module.ClassName'``. The " "*target* is imported and the specified object replaced with the *new* " @@ -1204,27 +1027,22 @@ msgid "" "function is executed, not at decoration time." msgstr "" -#: ../../library/unittest.mock.rst:1444 msgid "" -"The *spec* and *spec_set* keyword arguments are passed to " -"the :class:`MagicMock` if patch is creating one for you." +"The *spec* and *spec_set* keyword arguments are passed to the :class:" +"`MagicMock` if patch is creating one for you." msgstr "" -#: ../../library/unittest.mock.rst:1447 msgid "" "In addition you can pass ``spec=True`` or ``spec_set=True``, which causes " "patch to pass in the object being mocked as the spec/spec_set object." msgstr "" -#: ../../library/unittest.mock.rst:1450 msgid "" "*new_callable* allows you to specify a different class, or callable object, " -"that will be called to create the *new* object. By " -"default :class:`AsyncMock` is used for async functions " -"and :class:`MagicMock` for the rest." +"that will be called to create the *new* object. By default :class:" +"`AsyncMock` is used for async functions and :class:`MagicMock` for the rest." msgstr "" -#: ../../library/unittest.mock.rst:1454 msgid "" "A more powerful form of *spec* is *autospec*. If you set ``autospec=True`` " "then the mock will be created with a spec from the object being replaced. " @@ -1232,17 +1050,15 @@ msgid "" "attribute of the object being replaced. Methods and functions being mocked " "will have their arguments checked and will raise a :exc:`TypeError` if they " "are called with the wrong signature. For mocks replacing a class, their " -"return value (the 'instance') will have the same spec as the class. See " -"the :func:`create_autospec` function and :ref:`auto-speccing`." +"return value (the 'instance') will have the same spec as the class. See the :" +"func:`create_autospec` function and :ref:`auto-speccing`." msgstr "" -#: ../../library/unittest.mock.rst:1464 msgid "" "Instead of ``autospec=True`` you can pass ``autospec=some_object`` to use an " "arbitrary object as the spec instead of the one being replaced." msgstr "" -#: ../../library/unittest.mock.rst:1467 msgid "" "By default :func:`patch` will fail to replace attributes that don't exist. " "If you pass in ``create=True``, and the attribute doesn't exist, patch will " @@ -1253,24 +1069,21 @@ msgid "" "write passing tests against APIs that don't actually exist!" msgstr "" -#: ../../library/unittest.mock.rst:1477 msgid "" "If you are patching builtins in a module then you don't need to pass " "``create=True``, it will be added by default." msgstr "" -#: ../../library/unittest.mock.rst:1481 msgid "" "Patch can be used as a :class:`~unittest.TestCase` class decorator. It works " "by decorating each test method in the class. This reduces the boilerplate " "code when your test methods share a common patchings set. :func:`patch` " -"finds tests by looking for method names that start with " -"``patch.TEST_PREFIX``. By default this is ``'test'``, which matches the " -"way :mod:`unittest` finds tests. You can specify an alternative prefix by " -"setting ``patch.TEST_PREFIX``." +"finds tests by looking for method names that start with ``patch." +"TEST_PREFIX``. By default this is ``'test'``, which matches the way :mod:" +"`unittest` finds tests. You can specify an alternative prefix by setting " +"``patch.TEST_PREFIX``." msgstr "" -#: ../../library/unittest.mock.rst:1488 msgid "" "Patch can be used as a context manager, with the with statement. Here the " "patching applies to the indented block after the with statement. If you use " @@ -1278,26 +1091,22 @@ msgid "" "very useful if :func:`patch` is creating a mock object for you." msgstr "" -#: ../../library/unittest.mock.rst:1493 msgid "" -":func:`patch` takes arbitrary keyword arguments. These will be passed " -"to :class:`AsyncMock` if the patched object is asynchronous, " -"to :class:`MagicMock` otherwise or to *new_callable* if specified." +":func:`patch` takes arbitrary keyword arguments. These will be passed to :" +"class:`AsyncMock` if the patched object is asynchronous, to :class:" +"`MagicMock` otherwise or to *new_callable* if specified." msgstr "" -#: ../../library/unittest.mock.rst:1497 msgid "" "``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are " "available for alternate use-cases." msgstr "" -#: ../../library/unittest.mock.rst:1500 msgid "" ":func:`patch` as function decorator, creating the mock for you and passing " "it into the decorated function::" msgstr "" -#: ../../library/unittest.mock.rst:1503 msgid "" ">>> @patch('__main__.SomeClass')\n" "... def function(normal_argument, mock_class):\n" @@ -1307,27 +1116,23 @@ msgid "" "True" msgstr "" -#: ../../library/unittest.mock.rst:1510 msgid "" "Patching a class replaces the class with a :class:`MagicMock` *instance*. If " -"the class is instantiated in the code under test then it will be " -"the :attr:`~Mock.return_value` of the mock that will be used." +"the class is instantiated in the code under test then it will be the :attr:" +"`~Mock.return_value` of the mock that will be used." msgstr "" -#: ../../library/unittest.mock.rst:1514 msgid "" -"If the class is instantiated multiple times you could " -"use :attr:`~Mock.side_effect` to return a new mock each time. Alternatively " -"you can set the *return_value* to be anything you want." +"If the class is instantiated multiple times you could use :attr:`~Mock." +"side_effect` to return a new mock each time. Alternatively you can set the " +"*return_value* to be anything you want." msgstr "" -#: ../../library/unittest.mock.rst:1518 msgid "" "To configure return values on methods of *instances* on the patched class " "you must do this on the :attr:`~Mock.return_value`. For example::" msgstr "" -#: ../../library/unittest.mock.rst:1521 msgid "" ">>> class Class:\n" "... def method(self):\n" @@ -1341,13 +1146,11 @@ msgid "" "..." msgstr "" -#: ../../library/unittest.mock.rst:1532 msgid "" "If you use *spec* or *spec_set* and :func:`patch` is replacing a *class*, " "then the return value of the created mock will have the same spec. ::" msgstr "" -#: ../../library/unittest.mock.rst:1535 msgid "" ">>> Original = Class\n" ">>> patcher = patch('__main__.Class', spec=True)\n" @@ -1357,14 +1160,12 @@ msgid "" ">>> patcher.stop()" msgstr "" -#: ../../library/unittest.mock.rst:1542 msgid "" "The *new_callable* argument is useful where you want to use an alternative " "class to the default :class:`MagicMock` for the created mock. For example, " "if you wanted a :class:`NonCallableMock` to be used::" msgstr "" -#: ../../library/unittest.mock.rst:1546 msgid "" ">>> thing = object()\n" ">>> with patch('__main__.thing', new_callable=NonCallableMock) as " @@ -1377,13 +1178,11 @@ msgid "" "TypeError: 'NonCallableMock' object is not callable" msgstr "" -#: ../../library/unittest.mock.rst:1555 msgid "" "Another use case might be to replace an object with an :class:`io.StringIO` " "instance::" msgstr "" -#: ../../library/unittest.mock.rst:1557 msgid "" ">>> from io import StringIO\n" ">>> def foo():\n" @@ -1397,7 +1196,6 @@ msgid "" ">>> test()" msgstr "" -#: ../../library/unittest.mock.rst:1568 msgid "" "When :func:`patch` is creating a mock for you, it is common that the first " "thing you need to do is to configure the mock. Some of that configuration " @@ -1405,7 +1203,6 @@ msgid "" "call will be used to set attributes on the created mock::" msgstr "" -#: ../../library/unittest.mock.rst:1573 msgid "" ">>> patcher = patch('__main__.thing', first='one', second='two')\n" ">>> mock_thing = patcher.start()\n" @@ -1415,16 +1212,14 @@ msgid "" "'two'" msgstr "" -#: ../../library/unittest.mock.rst:1580 msgid "" -"As well as attributes on the created mock attributes, like " -"the :attr:`~Mock.return_value` and :attr:`~Mock.side_effect`, of child mocks " -"can also be configured. These aren't syntactically valid to pass in directly " -"as keyword arguments, but a dictionary with these as keys can still be " -"expanded into a :func:`patch` call using ``**``::" +"As well as attributes on the created mock attributes, like the :attr:`~Mock." +"return_value` and :attr:`~Mock.side_effect`, of child mocks can also be " +"configured. These aren't syntactically valid to pass in directly as keyword " +"arguments, but a dictionary with these as keys can still be expanded into a :" +"func:`patch` call using ``**``::" msgstr "" -#: ../../library/unittest.mock.rst:1586 msgid "" ">>> config = {'method.return_value': 3, 'other.side_effect': KeyError}\n" ">>> patcher = patch('__main__.thing', **config)\n" @@ -1437,14 +1232,12 @@ msgid "" "KeyError" msgstr "" -#: ../../library/unittest.mock.rst:1596 msgid "" "By default, attempting to patch a function in a module (or a method or an " -"attribute in a class) that does not exist will fail " -"with :exc:`AttributeError`::" +"attribute in a class) that does not exist will fail with :exc:" +"`AttributeError`::" msgstr "" -#: ../../library/unittest.mock.rst:1599 msgid "" ">>> @patch('sys.non_existing_attribute', 42)\n" "... def test():\n" @@ -1457,13 +1250,11 @@ msgid "" "'non_existing_attribute'" msgstr "" -#: ../../library/unittest.mock.rst:1608 msgid "" "but adding ``create=True`` in the call to :func:`patch` will make the " "previous example work as expected::" msgstr "" -#: ../../library/unittest.mock.rst:1611 msgid "" ">>> @patch('sys.non_existing_attribute', 42, create=True)\n" "... def test(mock_stdout):\n" @@ -1472,174 +1263,146 @@ msgid "" ">>> test()" msgstr "" -#: ../../library/unittest.mock.rst:1619 msgid "" ":func:`patch` now returns an :class:`AsyncMock` if the target is an async " "function." msgstr "" -#: ../../library/unittest.mock.rst:1623 msgid "patch.object" msgstr "" -#: ../../library/unittest.mock.rst:1627 msgid "" "patch the named member (*attribute*) on an object (*target*) with a mock " "object." msgstr "" -#: ../../library/unittest.mock.rst:1630 msgid "" ":func:`patch.object` can be used as a decorator, class decorator or a " "context manager. Arguments *new*, *spec*, *create*, *spec_set*, *autospec* " -"and *new_callable* have the same meaning as for :func:`patch`. " -"Like :func:`patch`, :func:`patch.object` takes arbitrary keyword arguments " -"for configuring the mock object it creates." +"and *new_callable* have the same meaning as for :func:`patch`. Like :func:" +"`patch`, :func:`patch.object` takes arbitrary keyword arguments for " +"configuring the mock object it creates." msgstr "" -#: ../../library/unittest.mock.rst:1636 msgid "" -"When used as a class decorator :func:`patch.object` honours " -"``patch.TEST_PREFIX`` for choosing which methods to wrap." +"When used as a class decorator :func:`patch.object` honours ``patch." +"TEST_PREFIX`` for choosing which methods to wrap." msgstr "" -#: ../../library/unittest.mock.rst:1639 msgid "" "You can either call :func:`patch.object` with three arguments or two " "arguments. The three argument form takes the object to be patched, the " "attribute name and the object to replace the attribute with." msgstr "" -#: ../../library/unittest.mock.rst:1643 msgid "" "When calling with the two argument form you omit the replacement object, and " "a mock is created for you and passed in as an extra argument to the " "decorated function:" msgstr "" -#: ../../library/unittest.mock.rst:1654 msgid "" "*spec*, *create* and the other arguments to :func:`patch.object` have the " "same meaning as they do for :func:`patch`." msgstr "" -#: ../../library/unittest.mock.rst:1659 msgid "patch.dict" msgstr "" -#: ../../library/unittest.mock.rst:1663 msgid "" "Patch a dictionary, or dictionary like object, and restore the dictionary to " "its original state after the test, where the restored dictionary is a copy " "of the dictionary as it was before the test." msgstr "" -#: ../../library/unittest.mock.rst:1667 msgid "" "*in_dict* can be a dictionary or a mapping like container. If it is a " "mapping then it must at least support getting, setting and deleting items " "plus iterating over keys." msgstr "" -#: ../../library/unittest.mock.rst:1671 msgid "" "*in_dict* can also be a string specifying the name of the dictionary, which " "will then be fetched by importing it." msgstr "" -#: ../../library/unittest.mock.rst:1674 msgid "" "*values* can be a dictionary of values to set in the dictionary. *values* " "can also be an iterable of ``(key, value)`` pairs." msgstr "" -#: ../../library/unittest.mock.rst:1677 msgid "" "If *clear* is true then the dictionary will be cleared before the new values " "are set." msgstr "" -#: ../../library/unittest.mock.rst:1680 msgid "" ":func:`patch.dict` can also be called with arbitrary keyword arguments to " "set values in the dictionary." msgstr "" -#: ../../library/unittest.mock.rst:1685 msgid "" ":func:`patch.dict` now returns the patched dictionary when used as a context " "manager." msgstr "" -#: ../../library/unittest.mock.rst:1688 msgid "" ":func:`patch.dict` can be used as a context manager, decorator or class " "decorator:" msgstr "" -#: ../../library/unittest.mock.rst:1699 msgid "" -"When used as a class decorator :func:`patch.dict` honours " -"``patch.TEST_PREFIX`` (default to ``'test'``) for choosing which methods to " -"wrap:" +"When used as a class decorator :func:`patch.dict` honours ``patch." +"TEST_PREFIX`` (default to ``'test'``) for choosing which methods to wrap:" msgstr "" -#: ../../library/unittest.mock.rst:1710 msgid "" "If you want to use a different prefix for your test, you can inform the " "patchers of the different prefix by setting ``patch.TEST_PREFIX``. For more " "details about how to change the value of see :ref:`test-prefix`." msgstr "" -#: ../../library/unittest.mock.rst:1714 msgid "" ":func:`patch.dict` can be used to add members to a dictionary, or simply let " "a test change a dictionary, and ensure the dictionary is restored when the " "test ends." msgstr "" -#: ../../library/unittest.mock.rst:1735 msgid "" "Keywords can be used in the :func:`patch.dict` call to set values in the " "dictionary:" msgstr "" -#: ../../library/unittest.mock.rst:1745 msgid "" ":func:`patch.dict` can be used with dictionary like objects that aren't " "actually dictionaries. At the very minimum they must support item getting, " "setting, deleting and either iteration or membership test. This corresponds " -"to the magic " -"methods :meth:`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__delitem__` " -"and either :meth:`~container.__iter__` or :meth:`~object.__contains__`." +"to the magic methods :meth:`~object.__getitem__`, :meth:`~object." +"__setitem__`, :meth:`~object.__delitem__` and either :meth:`~container." +"__iter__` or :meth:`~object.__contains__`." msgstr "" -#: ../../library/unittest.mock.rst:1775 msgid "patch.multiple" msgstr "" -#: ../../library/unittest.mock.rst:1779 msgid "" "Perform multiple patches in a single call. It takes the object to be patched " "(either as an object or a string to fetch the object by importing) and " "keyword arguments for the patches::" msgstr "" -#: ../../library/unittest.mock.rst:1783 msgid "" "with patch.multiple(settings, FIRST_PATCH='one', SECOND_PATCH='two'):\n" " ..." msgstr "" -#: ../../library/unittest.mock.rst:1786 msgid "" "Use :data:`DEFAULT` as the value if you want :func:`patch.multiple` to " "create mocks for you. In this case the created mocks are passed into a " -"decorated function by keyword, and a dictionary is returned " -"when :func:`patch.multiple` is used as a context manager." +"decorated function by keyword, and a dictionary is returned when :func:" +"`patch.multiple` is used as a context manager." msgstr "" -#: ../../library/unittest.mock.rst:1791 msgid "" ":func:`patch.multiple` can be used as a decorator, class decorator or a " "context manager. The arguments *spec*, *spec_set*, *create*, *autospec* and " @@ -1647,13 +1410,11 @@ msgid "" "will be applied to *all* patches done by :func:`patch.multiple`." msgstr "" -#: ../../library/unittest.mock.rst:1796 msgid "" -"When used as a class decorator :func:`patch.multiple` honours " -"``patch.TEST_PREFIX`` for choosing which methods to wrap." +"When used as a class decorator :func:`patch.multiple` honours ``patch." +"TEST_PREFIX`` for choosing which methods to wrap." msgstr "" -#: ../../library/unittest.mock.rst:1799 msgid "" "If you want :func:`patch.multiple` to create mocks for you, then you can " "use :data:`DEFAULT` as the value. If you use :func:`patch.multiple` as a " @@ -1661,7 +1422,6 @@ msgid "" "keyword. ::" msgstr "" -#: ../../library/unittest.mock.rst:1803 msgid "" ">>> thing = object()\n" ">>> other = object()\n" @@ -1674,14 +1434,12 @@ msgid "" ">>> test_function()" msgstr "" -#: ../../library/unittest.mock.rst:1813 msgid "" ":func:`patch.multiple` can be nested with other ``patch`` decorators, but " "put arguments passed by keyword *after* any of the standard arguments " "created by :func:`patch`::" msgstr "" -#: ../../library/unittest.mock.rst:1816 msgid "" ">>> @patch('sys.exit')\n" "... @patch.multiple('__main__', thing=DEFAULT, other=DEFAULT)\n" @@ -1693,14 +1451,12 @@ msgid "" ">>> test_function()" msgstr "" -#: ../../library/unittest.mock.rst:1825 msgid "" "If :func:`patch.multiple` is used as a context manager, the value returned " "by the context manager is a dictionary where created mocks are keyed by " "name::" msgstr "" -#: ../../library/unittest.mock.rst:1828 msgid "" ">>> with patch.multiple('__main__', thing=DEFAULT, other=DEFAULT) as " "values:\n" @@ -1711,18 +1467,15 @@ msgid "" "..." msgstr "" -#: ../../library/unittest.mock.rst:1839 msgid "patch methods: start and stop" msgstr "" -#: ../../library/unittest.mock.rst:1841 msgid "" "All the patchers have :meth:`!start` and :meth:`!stop` methods. These make " "it simpler to do patching in ``setUp`` methods or where you want to do " "multiple patches without nesting decorators or with statements." msgstr "" -#: ../../library/unittest.mock.rst:1845 msgid "" "To use them call :func:`patch`, :func:`patch.object` or :func:`patch.dict` " "as normal and keep a reference to the returned ``patcher`` object. You can " @@ -1730,13 +1483,11 @@ msgid "" "it." msgstr "" -#: ../../library/unittest.mock.rst:1849 msgid "" "If you are using :func:`patch` to create a mock for you then it will be " "returned by the call to ``patcher.start``. ::" msgstr "" -#: ../../library/unittest.mock.rst:1852 msgid "" ">>> patcher = patch('package.module.ClassName')\n" ">>> from package import module\n" @@ -1749,13 +1500,11 @@ msgid "" ">>> assert module.ClassName is not new_mock" msgstr "" -#: ../../library/unittest.mock.rst:1863 msgid "" "A typical use case for this might be for doing multiple patches in the " "``setUp`` method of a :class:`~unittest.TestCase`::" msgstr "" -#: ../../library/unittest.mock.rst:1866 msgid "" ">>> class MyTest(unittest.TestCase):\n" "... def setUp(self):\n" @@ -1775,15 +1524,13 @@ msgid "" ">>> MyTest('test_something').run()" msgstr "" -#: ../../library/unittest.mock.rst:1885 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " -"exception is raised in the ``setUp`` then ``tearDown`` is not " -"called. :meth:`unittest.TestCase.addCleanup` makes this easier::" +"exception is raised in the ``setUp`` then ``tearDown`` is not called. :meth:" +"`unittest.TestCase.addCleanup` makes this easier::" msgstr "" -#: ../../library/unittest.mock.rst:1890 msgid "" ">>> class MyTest(unittest.TestCase):\n" "... def setUp(self):\n" @@ -1796,33 +1543,27 @@ msgid "" "..." msgstr "" -#: ../../library/unittest.mock.rst:1900 msgid "" "As an added bonus you no longer need to keep a reference to the ``patcher`` " "object." msgstr "" -#: ../../library/unittest.mock.rst:1903 msgid "" -"It is also possible to stop all patches which have been started by " -"using :func:`patch.stopall`." +"It is also possible to stop all patches which have been started by using :" +"func:`patch.stopall`." msgstr "" -#: ../../library/unittest.mock.rst:1908 msgid "Stop all active patches. Only stops patches started with ``start``." msgstr "" -#: ../../library/unittest.mock.rst:1914 msgid "patch builtins" msgstr "" -#: ../../library/unittest.mock.rst:1915 msgid "" "You can patch any builtins within a module. The following example patches " "builtin :func:`ord`::" msgstr "" -#: ../../library/unittest.mock.rst:1918 msgid "" ">>> @patch('__main__.ord')\n" "... def test(mock_ord):\n" @@ -1833,11 +1574,9 @@ msgid "" "101" msgstr "" -#: ../../library/unittest.mock.rst:1930 msgid "TEST_PREFIX" msgstr "" -#: ../../library/unittest.mock.rst:1932 msgid "" "All of the patchers can be used as class decorators. When used in this way " "they wrap every test method on the class. The patchers recognise methods " @@ -1845,14 +1584,12 @@ msgid "" "the :class:`unittest.TestLoader` finds test methods by default." msgstr "" -#: ../../library/unittest.mock.rst:1937 msgid "" "It is possible that you want to use a different prefix for your tests. You " -"can inform the patchers of the different prefix by setting " -"``patch.TEST_PREFIX``::" +"can inform the patchers of the different prefix by setting ``patch." +"TEST_PREFIX``::" msgstr "" -#: ../../library/unittest.mock.rst:1940 msgid "" ">>> patch.TEST_PREFIX = 'foo'\n" ">>> value = 3\n" @@ -1873,32 +1610,26 @@ msgid "" "3" msgstr "" -#: ../../library/unittest.mock.rst:1960 msgid "Nesting Patch Decorators" msgstr "" -#: ../../library/unittest.mock.rst:1962 msgid "" "If you want to perform multiple patches then you can simply stack up the " "decorators." msgstr "" -#: ../../library/unittest.mock.rst:1965 msgid "You can stack up multiple patch decorators using this pattern:" msgstr "" -#: ../../library/unittest.mock.rst:1981 msgid "" "Note that the decorators are applied from the bottom upwards. This is the " "standard way that Python applies decorators. The order of the created mocks " "passed into your test function matches this order." msgstr "" -#: ../../library/unittest.mock.rst:1989 msgid "Where to patch" msgstr "" -#: ../../library/unittest.mock.rst:1991 msgid "" ":func:`patch` works by (temporarily) changing the object that a *name* " "points to with another one. There can be many names pointing to any " @@ -1906,19 +1637,16 @@ msgid "" "the name used by the system under test." msgstr "" -#: ../../library/unittest.mock.rst:1996 msgid "" "The basic principle is that you patch where an object is *looked up*, which " "is not necessarily the same place as where it is defined. A couple of " "examples will help to clarify this." msgstr "" -#: ../../library/unittest.mock.rst:2000 msgid "" "Imagine we have a project that we want to test with the following structure::" msgstr "" -#: ../../library/unittest.mock.rst:2002 msgid "" "a.py\n" " -> Defines SomeClass\n" @@ -1928,17 +1656,15 @@ msgid "" " -> some_function instantiates SomeClass" msgstr "" -#: ../../library/unittest.mock.rst:2009 msgid "" "Now we want to test ``some_function`` but we want to mock out ``SomeClass`` " "using :func:`patch`. The problem is that when we import module b, which we " -"will have to do when it imports ``SomeClass`` from module a. If we " -"use :func:`patch` to mock out ``a.SomeClass`` then it will have no effect on " -"our test; module b already has a reference to the *real* ``SomeClass`` and " -"it looks like our patching had no effect." +"will have to do when it imports ``SomeClass`` from module a. If we use :func:" +"`patch` to mock out ``a.SomeClass`` then it will have no effect on our test; " +"module b already has a reference to the *real* ``SomeClass`` and it looks " +"like our patching had no effect." msgstr "" -#: ../../library/unittest.mock.rst:2016 msgid "" "The key is to patch out ``SomeClass`` where it is used (or where it is " "looked up). In this case ``some_function`` will actually look up " @@ -1946,53 +1672,44 @@ msgid "" "look like::" msgstr "" -#: ../../library/unittest.mock.rst:2020 msgid "@patch('b.SomeClass')" msgstr "" -#: ../../library/unittest.mock.rst:2022 msgid "" "However, consider the alternative scenario where instead of ``from a import " -"SomeClass`` module b does ``import a`` and ``some_function`` uses " -"``a.SomeClass``. Both of these import forms are common. In this case the " -"class we want to patch is being looked up in the module and so we have to " -"patch ``a.SomeClass`` instead::" +"SomeClass`` module b does ``import a`` and ``some_function`` uses ``a." +"SomeClass``. Both of these import forms are common. In this case the class " +"we want to patch is being looked up in the module and so we have to patch " +"``a.SomeClass`` instead::" msgstr "" -#: ../../library/unittest.mock.rst:2027 msgid "@patch('a.SomeClass')" msgstr "" -#: ../../library/unittest.mock.rst:2031 msgid "Patching Descriptors and Proxy Objects" msgstr "" -#: ../../library/unittest.mock.rst:2033 msgid "" "Both patch_ and patch.object_ correctly patch and restore descriptors: class " "methods, static methods and properties. You should patch these on the " "*class* rather than an instance. They also work with *some* objects that " -"proxy attribute access, like the `django settings object `_." msgstr "" -#: ../../library/unittest.mock.rst:2041 msgid "MagicMock and magic method support" msgstr "" -#: ../../library/unittest.mock.rst:2046 msgid "Mocking Magic Methods" msgstr "" -#: ../../library/unittest.mock.rst:2048 msgid "" -":class:`Mock` supports mocking the Python protocol methods, also known " -"as :term:`\"magic methods\" `. This allows mock objects to " -"replace containers or other objects that implement Python protocols." +":class:`Mock` supports mocking the Python protocol methods, also known as :" +"term:`\"magic methods\" `. This allows mock objects to replace " +"containers or other objects that implement Python protocols." msgstr "" -#: ../../library/unittest.mock.rst:2052 msgid "" "Because magic methods are looked up differently from normal methods [#]_, " "this support has been specially implemented. This means that only specific " @@ -2000,72 +1717,59 @@ msgid "" "them. If there are any missing that you need please let us know." msgstr "" -#: ../../library/unittest.mock.rst:2057 msgid "" "You mock magic methods by setting the method you are interested in to a " "function or a mock instance. If you are using a function then it *must* take " "``self`` as the first argument [#]_." msgstr "" -#: ../../library/unittest.mock.rst:2080 msgid "" -"One use case for this is for mocking objects used as context managers in " -"a :keyword:`with` statement:" +"One use case for this is for mocking objects used as context managers in a :" +"keyword:`with` statement:" msgstr "" -#: ../../library/unittest.mock.rst:2092 msgid "" "Calls to magic methods do not appear in :attr:`~Mock.method_calls`, but they " "are recorded in :attr:`~Mock.mock_calls`." msgstr "" -#: ../../library/unittest.mock.rst:2097 msgid "" "If you use the *spec* keyword argument to create a mock then attempting to " -"set a magic method that isn't in the spec will raise " -"an :exc:`AttributeError`." +"set a magic method that isn't in the spec will raise an :exc:" +"`AttributeError`." msgstr "" -#: ../../library/unittest.mock.rst:2100 msgid "The full list of supported magic methods is:" msgstr "" -#: ../../library/unittest.mock.rst:2102 msgid "``__hash__``, ``__sizeof__``, ``__repr__`` and ``__str__``" msgstr "" -#: ../../library/unittest.mock.rst:2103 msgid "``__dir__``, ``__format__`` and ``__subclasses__``" msgstr "" -#: ../../library/unittest.mock.rst:2104 msgid "``__round__``, ``__floor__``, ``__trunc__`` and ``__ceil__``" msgstr "" -#: ../../library/unittest.mock.rst:2105 msgid "" "Comparisons: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` and " "``__ne__``" msgstr "" -#: ../../library/unittest.mock.rst:2107 msgid "" "Container methods: ``__getitem__``, ``__setitem__``, ``__delitem__``, " "``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` and " "``__missing__``" msgstr "" -#: ../../library/unittest.mock.rst:2110 msgid "" "Context manager: ``__enter__``, ``__exit__``, ``__aenter__`` and " "``__aexit__``" msgstr "" -#: ../../library/unittest.mock.rst:2111 msgid "Unary numeric methods: ``__neg__``, ``__pos__`` and ``__invert__``" msgstr "" -#: ../../library/unittest.mock.rst:2112 msgid "" "The numeric methods (including right hand and in-place variants): " "``__add__``, ``__sub__``, ``__mul__``, ``__matmul__``, ``__truediv__``, " @@ -2073,100 +1777,81 @@ msgid "" "``__rshift__``, ``__and__``, ``__xor__``, ``__or__``, and ``__pow__``" msgstr "" -#: ../../library/unittest.mock.rst:2116 msgid "" "Numeric conversion methods: ``__complex__``, ``__int__``, ``__float__`` and " "``__index__``" msgstr "" -#: ../../library/unittest.mock.rst:2118 msgid "Descriptor methods: ``__get__``, ``__set__`` and ``__delete__``" msgstr "" -#: ../../library/unittest.mock.rst:2119 msgid "" "Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " "``__getnewargs__``, ``__getstate__`` and ``__setstate__``" msgstr "" -#: ../../library/unittest.mock.rst:2121 msgid "File system path representation: ``__fspath__``" msgstr "" -#: ../../library/unittest.mock.rst:2122 msgid "Asynchronous iteration methods: ``__aiter__`` and ``__anext__``" msgstr "" -#: ../../library/unittest.mock.rst:2124 msgid "Added support for :func:`os.PathLike.__fspath__`." msgstr "" -#: ../../library/unittest.mock.rst:2127 msgid "" "Added support for ``__aenter__``, ``__aexit__``, ``__aiter__`` and " "``__anext__``." msgstr "" -#: ../../library/unittest.mock.rst:2131 msgid "" "The following methods exist but are *not* supported as they are either in " "use by mock, can't be set dynamically, or can cause problems:" msgstr "" -#: ../../library/unittest.mock.rst:2134 msgid "``__getattr__``, ``__setattr__``, ``__init__`` and ``__new__``" msgstr "" -#: ../../library/unittest.mock.rst:2135 msgid "" "``__prepare__``, ``__instancecheck__``, ``__subclasscheck__``, ``__del__``" msgstr "" -#: ../../library/unittest.mock.rst:2140 msgid "Magic Mock" msgstr "" -#: ../../library/unittest.mock.rst:2142 msgid "" -"There are two ``MagicMock`` variants: :class:`MagicMock` " -"and :class:`NonCallableMagicMock`." +"There are two ``MagicMock`` variants: :class:`MagicMock` and :class:" +"`NonCallableMagicMock`." msgstr "" -#: ../../library/unittest.mock.rst:2147 msgid "" "``MagicMock`` is a subclass of :class:`Mock` with default implementations of " "most of the :term:`magic methods `. You can use ``MagicMock`` " "without having to configure the magic methods yourself." msgstr "" -#: ../../library/unittest.mock.rst:2151 msgid "The constructor parameters have the same meaning as for :class:`Mock`." msgstr "" -#: ../../library/unittest.mock.rst:2153 msgid "" "If you use the *spec* or *spec_set* arguments then *only* magic methods that " "exist in the spec will be created." msgstr "" -#: ../../library/unittest.mock.rst:2159 msgid "A non-callable version of :class:`MagicMock`." msgstr "" -#: ../../library/unittest.mock.rst:2161 msgid "" "The constructor parameters have the same meaning as for :class:`MagicMock`, " "with the exception of *return_value* and *side_effect* which have no meaning " "on a non-callable mock." msgstr "" -#: ../../library/unittest.mock.rst:2165 msgid "" "The magic methods are setup with :class:`MagicMock` objects, so you can " "configure them and use them in the usual way:" msgstr "" -#: ../../library/unittest.mock.rst:2175 msgid "" "By default many of the protocol methods are required to return objects of a " "specific type. These methods are preconfigured with a default return value, " @@ -2175,91 +1860,70 @@ msgid "" "manually if you want to change the default." msgstr "" -#: ../../library/unittest.mock.rst:2181 msgid "Methods and their defaults:" msgstr "" -#: ../../library/unittest.mock.rst:2183 msgid "``__lt__``: :data:`NotImplemented`" msgstr "" -#: ../../library/unittest.mock.rst:2184 msgid "``__gt__``: :data:`!NotImplemented`" msgstr "" -#: ../../library/unittest.mock.rst:2185 msgid "``__le__``: :data:`!NotImplemented`" msgstr "" -#: ../../library/unittest.mock.rst:2186 msgid "``__ge__``: :data:`!NotImplemented`" msgstr "" -#: ../../library/unittest.mock.rst:2187 msgid "``__int__``: ``1``" msgstr "" -#: ../../library/unittest.mock.rst:2188 msgid "``__contains__``: ``False``" msgstr "" -#: ../../library/unittest.mock.rst:2189 msgid "``__len__``: ``0``" msgstr "" -#: ../../library/unittest.mock.rst:2190 msgid "``__iter__``: ``iter([])``" msgstr "" -#: ../../library/unittest.mock.rst:2191 msgid "``__exit__``: ``False``" msgstr "" -#: ../../library/unittest.mock.rst:2192 msgid "``__aexit__``: ``False``" msgstr "" -#: ../../library/unittest.mock.rst:2193 msgid "``__complex__``: ``1j``" msgstr "" -#: ../../library/unittest.mock.rst:2194 msgid "``__float__``: ``1.0``" msgstr "" -#: ../../library/unittest.mock.rst:2195 msgid "``__bool__``: ``True``" msgstr "" -#: ../../library/unittest.mock.rst:2196 msgid "``__index__``: ``1``" msgstr "" -#: ../../library/unittest.mock.rst:2197 msgid "``__hash__``: default hash for the mock" msgstr "" -#: ../../library/unittest.mock.rst:2198 msgid "``__str__``: default str for the mock" msgstr "" -#: ../../library/unittest.mock.rst:2199 msgid "``__sizeof__``: default sizeof for the mock" msgstr "" -#: ../../library/unittest.mock.rst:2201 msgid "For example:" msgstr "" -#: ../../library/unittest.mock.rst:2213 msgid "" "The two equality methods, :meth:`!__eq__` and :meth:`!__ne__`, are special. " -"They do the default equality comparison on identity, using " -"the :attr:`~Mock.side_effect` attribute, unless you change their return " -"value to return something else::" +"They do the default equality comparison on identity, using the :attr:`~Mock." +"side_effect` attribute, unless you change their return value to return " +"something else::" msgstr "" -#: ../../library/unittest.mock.rst:2218 msgid "" ">>> MagicMock() == 3\n" "False\n" @@ -2271,102 +1935,83 @@ msgid "" "True" msgstr "" -#: ../../library/unittest.mock.rst:2227 msgid "" "The return value of :meth:`MagicMock.__iter__` can be any iterable object " "and isn't required to be an iterator:" msgstr "" -#: ../../library/unittest.mock.rst:2237 msgid "" "If the return value *is* an iterator, then iterating over it once will " "consume it and subsequent iterations will result in an empty list:" msgstr "" -#: ../../library/unittest.mock.rst:2246 msgid "" "``MagicMock`` has all of the supported magic methods configured except for " "some of the obscure and obsolete ones. You can still set these up if you " "want." msgstr "" -#: ../../library/unittest.mock.rst:2249 msgid "" "Magic methods that are supported but not setup by default in ``MagicMock`` " "are:" msgstr "" -#: ../../library/unittest.mock.rst:2251 msgid "``__subclasses__``" msgstr "" -#: ../../library/unittest.mock.rst:2252 msgid "``__dir__``" msgstr "" -#: ../../library/unittest.mock.rst:2253 msgid "``__format__``" msgstr "" -#: ../../library/unittest.mock.rst:2254 msgid "``__get__``, ``__set__`` and ``__delete__``" msgstr "" -#: ../../library/unittest.mock.rst:2255 msgid "``__reversed__`` and ``__missing__``" msgstr "" -#: ../../library/unittest.mock.rst:2256 msgid "" "``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " "``__getstate__`` and ``__setstate__``" msgstr "" -#: ../../library/unittest.mock.rst:2258 msgid "``__getformat__``" msgstr "" -#: ../../library/unittest.mock.rst:2262 msgid "" "Magic methods *should* be looked up on the class rather than the instance. " "Different versions of Python are inconsistent about applying this rule. The " "supported protocol methods should work with all supported versions of Python." msgstr "" -#: ../../library/unittest.mock.rst:2266 msgid "" "The function is basically hooked up to the class, but each ``Mock`` instance " "is kept isolated from the others." msgstr "" -#: ../../library/unittest.mock.rst:2271 msgid "Helpers" msgstr "" -#: ../../library/unittest.mock.rst:2274 msgid "sentinel" msgstr "" -#: ../../library/unittest.mock.rst:2278 msgid "" "The ``sentinel`` object provides a convenient way of providing unique " "objects for your tests." msgstr "" -#: ../../library/unittest.mock.rst:2281 msgid "" "Attributes are created on demand when you access them by name. Accessing the " "same attribute will always return the same object. The objects returned have " "a sensible repr so that test failure messages are readable." msgstr "" -#: ../../library/unittest.mock.rst:2285 msgid "" -"The ``sentinel`` attributes now preserve their identity when they " -"are :mod:`copied ` or :mod:`pickled `." +"The ``sentinel`` attributes now preserve their identity when they are :mod:" +"`copied ` or :mod:`pickled `." msgstr "" -#: ../../library/unittest.mock.rst:2289 msgid "" "Sometimes when testing you need to test that a specific object is passed as " "an argument to another method, or returned. It can be common to create named " @@ -2374,42 +2019,35 @@ msgid "" "creating and testing the identity of objects like this." msgstr "" -#: ../../library/unittest.mock.rst:2294 msgid "" -"In this example we monkey patch ``method`` to return " -"``sentinel.some_object``:" +"In this example we monkey patch ``method`` to return ``sentinel." +"some_object``:" msgstr "" -#: ../../library/unittest.mock.rst:2306 msgid "DEFAULT" msgstr "" -#: ../../library/unittest.mock.rst:2311 msgid "" -"The :data:`DEFAULT` object is a pre-created sentinel (actually " -"``sentinel.DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions " -"to indicate that the normal return value should be used." +"The :data:`DEFAULT` object is a pre-created sentinel (actually ``sentinel." +"DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions to " +"indicate that the normal return value should be used." msgstr "" -#: ../../library/unittest.mock.rst:2317 msgid "call" msgstr "" -#: ../../library/unittest.mock.rst:2321 msgid "" ":func:`call` is a helper object for making simpler assertions, for comparing " -"with :attr:`~Mock.call_args`, :attr:`~Mock.call_args_list`, :attr:`~Mock.mock_calls` " -"and :attr:`~Mock.method_calls`. :func:`call` can also be used " +"with :attr:`~Mock.call_args`, :attr:`~Mock.call_args_list`, :attr:`~Mock." +"mock_calls` and :attr:`~Mock.method_calls`. :func:`call` can also be used " "with :meth:`~Mock.assert_has_calls`." msgstr "" -#: ../../library/unittest.mock.rst:2334 msgid "" "For a call object that represents multiple calls, :meth:`call_list` returns " "a list of all the intermediate calls as well as the final call." msgstr "" -#: ../../library/unittest.mock.rst:2338 msgid "" "``call_list`` is particularly useful for making assertions on \"chained " "calls\". A chained call is multiple calls on a single line of code. This " @@ -2417,33 +2055,28 @@ msgid "" "constructing the sequence of calls can be tedious." msgstr "" -#: ../../library/unittest.mock.rst:2343 msgid "" ":meth:`~call.call_list` can construct the sequence of calls from the same " "chained call:" msgstr "" -#: ../../library/unittest.mock.rst:2360 msgid "" "A ``call`` object is either a tuple of (positional args, keyword args) or " "(name, positional args, keyword args) depending on how it was constructed. " "When you construct them yourself this isn't particularly interesting, but " -"the ``call`` objects that are in " -"the :attr:`Mock.call_args`, :attr:`Mock.call_args_list` " -"and :attr:`Mock.mock_calls` attributes can be introspected to get at the " -"individual arguments they contain." +"the ``call`` objects that are in the :attr:`Mock.call_args`, :attr:`Mock." +"call_args_list` and :attr:`Mock.mock_calls` attributes can be introspected " +"to get at the individual arguments they contain." msgstr "" -#: ../../library/unittest.mock.rst:2367 msgid "" -"The ``call`` objects in :attr:`Mock.call_args` " -"and :attr:`Mock.call_args_list` are two-tuples of (positional args, keyword " -"args) whereas the ``call`` objects in :attr:`Mock.mock_calls`, along with " -"ones you construct yourself, are three-tuples of (name, positional args, " -"keyword args)." +"The ``call`` objects in :attr:`Mock.call_args` and :attr:`Mock." +"call_args_list` are two-tuples of (positional args, keyword args) whereas " +"the ``call`` objects in :attr:`Mock.mock_calls`, along with ones you " +"construct yourself, are three-tuples of (name, positional args, keyword " +"args)." msgstr "" -#: ../../library/unittest.mock.rst:2372 msgid "" "You can use their \"tupleness\" to pull out the individual arguments for " "more complex introspection and assertions. The positional arguments are a " @@ -2451,29 +2084,24 @@ msgid "" "arguments are a dictionary:" msgstr "" -#: ../../library/unittest.mock.rst:2405 msgid "create_autospec" msgstr "" -#: ../../library/unittest.mock.rst:2409 msgid "" "Create a mock object using another object as a spec. Attributes on the mock " "will use the corresponding attribute on the *spec* object as their spec." msgstr "" -#: ../../library/unittest.mock.rst:2413 msgid "" "Functions or methods being mocked will have their arguments checked to " "ensure that they are called with the correct signature." msgstr "" -#: ../../library/unittest.mock.rst:2416 msgid "" "If *spec_set* is ``True`` then attempting to set attributes that don't exist " "on the spec object will raise an :exc:`AttributeError`." msgstr "" -#: ../../library/unittest.mock.rst:2419 msgid "" "If a class is used as a spec then the return value of the mock (the instance " "of the class) will have the same spec. You can use a class as the spec for " @@ -2481,29 +2109,24 @@ msgid "" "be callable if instances of the mock are callable." msgstr "" -#: ../../library/unittest.mock.rst:2424 msgid "" ":func:`create_autospec` also takes arbitrary keyword arguments that are " "passed to the constructor of the created mock." msgstr "" -#: ../../library/unittest.mock.rst:2427 msgid "" -"See :ref:`auto-speccing` for examples of how to use auto-speccing " -"with :func:`create_autospec` and the *autospec* argument to :func:`patch`." +"See :ref:`auto-speccing` for examples of how to use auto-speccing with :func:" +"`create_autospec` and the *autospec* argument to :func:`patch`." msgstr "" -#: ../../library/unittest.mock.rst:2433 msgid "" ":func:`create_autospec` now returns an :class:`AsyncMock` if the target is " "an async function." msgstr "" -#: ../../library/unittest.mock.rst:2438 msgid "ANY" msgstr "" -#: ../../library/unittest.mock.rst:2442 msgid "" "Sometimes you may need to make assertions about *some* of the arguments in a " "call to mock, but either not care about some of the arguments or want to " @@ -2511,27 +2134,22 @@ msgid "" "assertions on them." msgstr "" -#: ../../library/unittest.mock.rst:2447 msgid "" "To ignore certain arguments you can pass in objects that compare equal to " -"*everything*. Calls to :meth:`~Mock.assert_called_with` " -"and :meth:`~Mock.assert_called_once_with` will then succeed no matter what " -"was passed in." +"*everything*. Calls to :meth:`~Mock.assert_called_with` and :meth:`~Mock." +"assert_called_once_with` will then succeed no matter what was passed in." msgstr "" -#: ../../library/unittest.mock.rst:2456 msgid "" -":data:`ANY` can also be used in comparisons with call lists " -"like :attr:`~Mock.mock_calls`:" +":data:`ANY` can also be used in comparisons with call lists like :attr:" +"`~Mock.mock_calls`:" msgstr "" -#: ../../library/unittest.mock.rst:2466 msgid "" ":data:`ANY` is not limited to comparisons with call objects and so can also " "be used in test assertions::" msgstr "" -#: ../../library/unittest.mock.rst:2469 msgid "" "class TestStringMethods(unittest.TestCase):\n" "\n" @@ -2540,20 +2158,17 @@ msgid "" " self.assertEqual(s.split(), ['hello', ANY])" msgstr "" -#: ../../library/unittest.mock.rst:2477 msgid "FILTER_DIR" msgstr "" -#: ../../library/unittest.mock.rst:2481 msgid "" ":data:`FILTER_DIR` is a module level variable that controls the way mock " "objects respond to :func:`dir`. The default is ``True``, which uses the " "filtering described below, to only show useful members. If you dislike this " -"filtering, or need to switch it off for diagnostic purposes, then set " -"``mock.FILTER_DIR = False``." +"filtering, or need to switch it off for diagnostic purposes, then set ``mock." +"FILTER_DIR = False``." msgstr "" -#: ../../library/unittest.mock.rst:2487 msgid "" "With filtering on, ``dir(some_mock)`` shows only useful attributes and will " "include any dynamically created attributes that wouldn't normally be shown. " @@ -2562,7 +2177,6 @@ msgid "" "yet:" msgstr "" -#: ../../library/unittest.mock.rst:2493 msgid "" ">>> dir(Mock())\n" "['assert_any_call',\n" @@ -2583,7 +2197,6 @@ msgid "" " ..." msgstr "" -#: ../../library/unittest.mock.rst:2514 msgid "" "Many of the not-very-useful (private to :class:`Mock` rather than the thing " "being mocked) underscore and double underscore prefixed attributes have been " @@ -2592,7 +2205,6 @@ msgid "" "switch :data:`FILTER_DIR`:" msgstr "" -#: ../../library/unittest.mock.rst:2520 msgid "" ">>> from unittest import mock\n" ">>> mock.FILTER_DIR = False\n" @@ -2607,87 +2219,73 @@ msgid "" " ..." msgstr "" -#: ../../library/unittest.mock.rst:2535 msgid "" "Alternatively you can just use ``vars(my_mock)`` (instance members) and " "``dir(type(my_mock))`` (type members) to bypass the filtering irrespective " "of :const:`FILTER_DIR`." msgstr "" -#: ../../library/unittest.mock.rst:2541 msgid "mock_open" msgstr "" -#: ../../library/unittest.mock.rst:2545 msgid "" "A helper function to create a mock to replace the use of :func:`open`. It " "works for :func:`open` called directly or used as a context manager." msgstr "" -#: ../../library/unittest.mock.rst:2548 msgid "" "The *mock* argument is the mock object to configure. If ``None`` (the " "default) then a :class:`MagicMock` will be created for you, with the API " "limited to methods or attributes available on standard file handles." msgstr "" -#: ../../library/unittest.mock.rst:2552 msgid "" -"*read_data* is a string for " -"the :meth:`~io.RawIOBase.read`, :meth:`~io.IOBase.readline`, " -"and :meth:`~io.IOBase.readlines` methods of the file handle to return. " -"Calls to those methods will take data from *read_data* until it is " -"depleted. The mock of these methods is pretty simplistic: every time the " -"*mock* is called, the *read_data* is rewound to the start. If you need more " -"control over the data that you are feeding to the tested code you will need " -"to customize this mock for yourself. When that is insufficient, one of the " -"in-memory filesystem packages on `PyPI `_ can offer a " -"realistic filesystem for testing." +"*read_data* is a string for the :meth:`~io.RawIOBase.read`, :meth:`~io." +"IOBase.readline`, and :meth:`~io.IOBase.readlines` methods of the file " +"handle to return. Calls to those methods will take data from *read_data* " +"until it is depleted. The mock of these methods is pretty simplistic: every " +"time the *mock* is called, the *read_data* is rewound to the start. If you " +"need more control over the data that you are feeding to the tested code you " +"will need to customize this mock for yourself. When that is insufficient, " +"one of the in-memory filesystem packages on `PyPI `_ can " +"offer a realistic filesystem for testing." msgstr "" -#: ../../library/unittest.mock.rst:2562 msgid "" "Added :meth:`~io.IOBase.readline` and :meth:`~io.IOBase.readlines` support. " "The mock of :meth:`~io.RawIOBase.read` changed to consume *read_data* rather " "than returning it on each call." msgstr "" -#: ../../library/unittest.mock.rst:2567 msgid "*read_data* is now reset on each call to the *mock*." msgstr "" -#: ../../library/unittest.mock.rst:2570 msgid "" "Added :meth:`~container.__iter__` to implementation so that iteration (such " "as in for loops) correctly consumes *read_data*." msgstr "" -#: ../../library/unittest.mock.rst:2574 msgid "" "Using :func:`open` as a context manager is a great way to ensure your file " "handles are closed properly and is becoming common::" msgstr "" -#: ../../library/unittest.mock.rst:2577 msgid "" "with open('/some/path', 'w') as f:\n" " f.write('something')" msgstr "" -#: ../../library/unittest.mock.rst:2580 msgid "" "The issue is that even if you mock out the call to :func:`open` it is the " -"*returned object* that is used as a context manager (and " -"has :meth:`~object.__enter__` and :meth:`~object.__exit__` called)." +"*returned object* that is used as a context manager (and has :meth:`~object." +"__enter__` and :meth:`~object.__exit__` called)." msgstr "" -#: ../../library/unittest.mock.rst:2584 msgid "" "Mocking context managers with a :class:`MagicMock` is common enough and " "fiddly enough that a helper function is useful. ::" msgstr "" -#: ../../library/unittest.mock.rst:2587 msgid "" ">>> m = mock_open()\n" ">>> with patch('__main__.open', m):\n" @@ -2704,11 +2302,9 @@ msgid "" ">>> handle.write.assert_called_once_with('some stuff')" msgstr "" -#: ../../library/unittest.mock.rst:2601 msgid "And for reading files::" msgstr "" -#: ../../library/unittest.mock.rst:2603 msgid "" ">>> with patch('__main__.open', mock_open(read_data='bibble')) as m:\n" "... with open('foo') as h:\n" @@ -2718,25 +2314,21 @@ msgid "" ">>> assert result == 'bibble'" msgstr "" -#: ../../library/unittest.mock.rst:2614 msgid "Autospeccing" msgstr "" -#: ../../library/unittest.mock.rst:2616 msgid "" "Autospeccing is based on the existing :attr:`!spec` feature of mock. It " "limits the api of mocks to the api of an original object (the spec), but it " "is recursive (implemented lazily) so that attributes of mocks only have the " "same api as the attributes of the spec. In addition mocked functions / " -"methods have the same call signature as the original so they raise " -"a :exc:`TypeError` if they are called incorrectly." +"methods have the same call signature as the original so they raise a :exc:" +"`TypeError` if they are called incorrectly." msgstr "" -#: ../../library/unittest.mock.rst:2623 msgid "Before I explain how auto-speccing works, here's why it is needed." msgstr "" -#: ../../library/unittest.mock.rst:2625 msgid "" ":class:`Mock` is a very powerful and flexible object, but it suffers from a " "flaw which is general to mocking. If you refactor some of your code, rename " @@ -2745,14 +2337,12 @@ msgid "" "tests can all pass even though your code is broken." msgstr "" -#: ../../library/unittest.mock.rst:2633 msgid "" "Before 3.5, tests with a typo in the word assert would silently pass when " "they should raise an error. You can still achieve this behavior by passing " "``unsafe=True`` to Mock." msgstr "" -#: ../../library/unittest.mock.rst:2636 msgid "" "Note that this is another reason why you need integration tests as well as " "unit tests. Testing everything in isolation is all fine and dandy, but if " @@ -2760,30 +2350,26 @@ msgid "" "room for bugs that tests might have caught." msgstr "" -#: ../../library/unittest.mock.rst:2641 msgid "" ":mod:`unittest.mock` already provides a feature to help with this, called " "speccing. If you use a class or instance as the :attr:`!spec` for a mock " "then you can only access attributes on the mock that exist on the real class:" msgstr "" -#: ../../library/unittest.mock.rst:2652 msgid "" "The spec only applies to the mock itself, so we still have the same issue " "with any methods on the mock:" msgstr "" -#: ../../library/unittest.mock.rst:2655 msgid "" ">>> mock.header_items()\n" "\n" ">>> mock.header_items.assret_called_with() # Intentional typo!" msgstr "" -#: ../../library/unittest.mock.rst:2661 msgid "" -"Auto-speccing solves this problem. You can either pass ``autospec=True`` " -"to :func:`patch` / :func:`patch.object` or use the :func:`create_autospec` " +"Auto-speccing solves this problem. You can either pass ``autospec=True`` to :" +"func:`patch` / :func:`patch.object` or use the :func:`create_autospec` " "function to create a mock with a spec. If you use the ``autospec=True`` " "argument to :func:`patch` then the object that is being replaced will be " "used as the spec object. Because the speccing is done \"lazily\" (the spec " @@ -2792,11 +2378,9 @@ msgid "" "import modules) without a big performance hit." msgstr "" -#: ../../library/unittest.mock.rst:2670 msgid "Here's an example of it in use::" msgstr "" -#: ../../library/unittest.mock.rst:2672 msgid "" ">>> from urllib import request\n" ">>> patcher = patch('__main__.request', autospec=True)\n" @@ -2807,14 +2391,12 @@ msgid "" "" msgstr "" -#: ../../library/unittest.mock.rst:2680 msgid "" -"You can see that :class:`!request.Request` has a spec. :class:`!" -"request.Request` takes two arguments in the constructor (one of which is " -"*self*). Here's what happens if we try to call it incorrectly::" +"You can see that :class:`!request.Request` has a spec. :class:`!request." +"Request` takes two arguments in the constructor (one of which is *self*). " +"Here's what happens if we try to call it incorrectly::" msgstr "" -#: ../../library/unittest.mock.rst:2684 msgid "" ">>> req = request.Request()\n" "Traceback (most recent call last):\n" @@ -2822,20 +2404,17 @@ msgid "" "TypeError: () takes at least 2 arguments (1 given)" msgstr "" -#: ../../library/unittest.mock.rst:2689 msgid "" "The spec also applies to instantiated classes (i.e. the return value of " "specced mocks)::" msgstr "" -#: ../../library/unittest.mock.rst:2692 msgid "" ">>> req = request.Request('foo')\n" ">>> req\n" "" msgstr "" -#: ../../library/unittest.mock.rst:2696 msgid "" ":class:`!Request` objects are not callable, so the return value of " "instantiating our mocked out :class:`!request.Request` is a non-callable " @@ -2843,7 +2422,6 @@ msgid "" "error::" msgstr "" -#: ../../library/unittest.mock.rst:2700 msgid "" ">>> req.add_header('spam', 'eggs')\n" "\n" @@ -2854,20 +2432,17 @@ msgid "" ">>> req.add_header.assert_called_with('spam', 'eggs')" msgstr "" -#: ../../library/unittest.mock.rst:2708 msgid "" "In many cases you will just be able to add ``autospec=True`` to your " "existing :func:`patch` calls and then be protected against bugs due to typos " "and api changes." msgstr "" -#: ../../library/unittest.mock.rst:2712 msgid "" -"As well as using *autospec* through :func:`patch` there is " -"a :func:`create_autospec` for creating autospecced mocks directly:" +"As well as using *autospec* through :func:`patch` there is a :func:" +"`create_autospec` for creating autospecced mocks directly:" msgstr "" -#: ../../library/unittest.mock.rst:2720 msgid "" "This isn't without caveats and limitations however, which is why it is not " "the default behaviour. In order to know what attributes are available on the " @@ -2879,7 +2454,6 @@ msgid "" "objects so that introspection is safe [#]_." msgstr "" -#: ../../library/unittest.mock.rst:2729 msgid "" "A more serious problem is that it is common for instance attributes to be " "created in the :meth:`~object.__init__` method and not to exist on the class " @@ -2887,7 +2461,6 @@ msgid "" "restricts the api to visible attributes. ::" msgstr "" -#: ../../library/unittest.mock.rst:2734 msgid "" ">>> class Something:\n" "... def __init__(self):\n" @@ -2902,7 +2475,6 @@ msgid "" "AttributeError: Mock object has no attribute 'a'" msgstr "" -#: ../../library/unittest.mock.rst:2746 msgid "" "There are a few different ways of resolving this problem. The easiest, but " "not necessarily the least annoying, way is to simply set the required " @@ -2911,7 +2483,6 @@ msgid "" "setting them::" msgstr "" -#: ../../library/unittest.mock.rst:2752 msgid "" ">>> with patch('__main__.Something', autospec=True):\n" "... thing = Something()\n" @@ -2919,7 +2490,6 @@ msgid "" "..." msgstr "" -#: ../../library/unittest.mock.rst:2757 msgid "" "There is a more aggressive version of both *spec* and *autospec* that *does* " "prevent you setting non-existent attributes. This is useful if you want to " @@ -2927,7 +2497,6 @@ msgid "" "this particular scenario:" msgstr "" -#: ../../library/unittest.mock.rst:2770 msgid "" "Probably the best way of solving the problem is to add class attributes as " "default values for instance members initialised in :meth:`~object.__init__`. " @@ -2936,13 +2505,11 @@ msgid "" "course) is faster too. e.g." msgstr "" -#: ../../library/unittest.mock.rst:2776 msgid "" "class Something:\n" " a = 33" msgstr "" -#: ../../library/unittest.mock.rst:2781 msgid "" "This brings up another issue. It is relatively common to provide a default " "value of ``None`` for members that will later be an object of a different " @@ -2953,7 +2520,6 @@ msgid "" "These will just be ordinary mocks (well - MagicMocks):" msgstr "" -#: ../../library/unittest.mock.rst:2796 msgid "" "If modifying your production classes to add defaults isn't to your liking " "then there are more options. One of these is simply to use an instance as " @@ -2964,7 +2530,6 @@ msgid "" "alternative object as the *autospec* argument::" msgstr "" -#: ../../library/unittest.mock.rst:2804 msgid "" ">>> class Something:\n" "... def __init__(self):\n" @@ -2979,32 +2544,27 @@ msgid "" "" msgstr "" -#: ../../library/unittest.mock.rst:2817 msgid "" "This only applies to classes or already instantiated objects. Calling a " "mocked class to create a mock instance *does not* create a real instance. It " "is only attribute lookups - along with calls to :func:`dir` - that are done." msgstr "" -#: ../../library/unittest.mock.rst:2822 msgid "Sealing mocks" msgstr "" -#: ../../library/unittest.mock.rst:2831 msgid "" "Seal will disable the automatic creation of mocks when accessing an " "attribute of the mock being sealed or any of its attributes that are already " "mocks recursively." msgstr "" -#: ../../library/unittest.mock.rst:2834 msgid "" "If a mock instance with a name or a spec is assigned to an attribute it " "won't be considered in the sealing chain. This allows one to prevent seal " "from fixing part of the mock object. ::" msgstr "" -#: ../../library/unittest.mock.rst:2838 msgid "" ">>> mock = Mock()\n" ">>> mock.submock.attribute1 = 2\n" @@ -3015,85 +2575,71 @@ msgid "" ">>> mock.not_submock.attribute2 # This won't raise." msgstr "" -#: ../../library/unittest.mock.rst:2850 msgid "" "Order of precedence of :attr:`!side_effect`, :attr:`!return_value` and " "*wraps*" msgstr "" -#: ../../library/unittest.mock.rst:2852 msgid "The order of their precedence is:" msgstr "" -#: ../../library/unittest.mock.rst:2854 msgid ":attr:`~Mock.side_effect`" msgstr "" -#: ../../library/unittest.mock.rst:2855 msgid ":attr:`~Mock.return_value`" msgstr "" -#: ../../library/unittest.mock.rst:2856 msgid "*wraps*" msgstr "" -#: ../../library/unittest.mock.rst:2858 msgid "" -"If all three are set, mock will return the value " -"from :attr:`~Mock.side_effect`, ignoring :attr:`~Mock.return_value` and the " -"wrapped object altogether. If any two are set, the one with the higher " -"precedence will return the value. Regardless of the order of which was set " -"first, the order of precedence remains unchanged." +"If all three are set, mock will return the value from :attr:`~Mock." +"side_effect`, ignoring :attr:`~Mock.return_value` and the wrapped object " +"altogether. If any two are set, the one with the higher precedence will " +"return the value. Regardless of the order of which was set first, the order " +"of precedence remains unchanged." msgstr "" -#: ../../library/unittest.mock.rst:2876 msgid "" "As ``None`` is the default value of :attr:`~Mock.side_effect`, if you " "reassign its value back to ``None``, the order of precedence will be checked " -"between :attr:`~Mock.return_value` and the wrapped object, " -"ignoring :attr:`~Mock.side_effect`." +"between :attr:`~Mock.return_value` and the wrapped object, ignoring :attr:" +"`~Mock.side_effect`." msgstr "" -#: ../../library/unittest.mock.rst:2885 msgid "" "If the value being returned by :attr:`~Mock.side_effect` is :data:`DEFAULT`, " "it is ignored and the order of precedence moves to the successor to obtain " "the value to return." msgstr "" -#: ../../library/unittest.mock.rst:2894 msgid "" -"When :class:`Mock` wraps an object, the default value " -"of :attr:`~Mock.return_value` will be :data:`DEFAULT`." +"When :class:`Mock` wraps an object, the default value of :attr:`~Mock." +"return_value` will be :data:`DEFAULT`." msgstr "" -#: ../../library/unittest.mock.rst:2903 msgid "" "The order of precedence will ignore this value and it will move to the last " "successor which is the wrapped object." msgstr "" -#: ../../library/unittest.mock.rst:2906 msgid "" "As the real call is being made to the wrapped object, creating an instance " "of this mock will return the real instance of the class. The positional " "arguments, if any, required by the wrapped object must be passed." msgstr "" -#: ../../library/unittest.mock.rst:2924 msgid "" "But if you assign ``None`` to it, this will not be ignored as it is an " "explicit assignment. So, the order of precedence will not move to the " "wrapped object." msgstr "" -#: ../../library/unittest.mock.rst:2932 msgid "" "Even if you set all three at once when initializing the mock, the order of " "precedence remains the same:" msgstr "" -#: ../../library/unittest.mock.rst:2949 msgid "" "If :attr:`~Mock.side_effect` is exhausted, the order of precedence will not " "cause a value to be obtained from the successors. Instead, ``StopIteration`` " diff --git a/library/unittest.po b/library/unittest.po index db63a81..37c2be2 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,21 +18,17 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/unittest.rst:2 msgid ":mod:`!unittest` --- Unit testing framework" msgstr "" -#: ../../library/unittest.rst:12 msgid "**Source code:** :source:`Lib/unittest/__init__.py`" msgstr "" -#: ../../library/unittest.rst:16 msgid "" "(If you are already familiar with the basic concepts of testing, you might " "want to skip to :ref:`the list of assert methods `.)" msgstr "" -#: ../../library/unittest.rst:19 msgid "" "The :mod:`unittest` unit testing framework was originally inspired by JUnit " "and has a similar flavor as major unit testing frameworks in other " @@ -45,17 +37,14 @@ msgid "" "tests from the reporting framework." msgstr "" -#: ../../library/unittest.rst:25 msgid "" "To achieve this, :mod:`unittest` supports some important concepts in an " "object-oriented way:" msgstr "" -#: ../../library/unittest.rst:28 msgid "test fixture" msgstr "" -#: ../../library/unittest.rst:29 msgid "" "A :dfn:`test fixture` represents the preparation needed to perform one or " "more tests, and any associated cleanup actions. This may involve, for " @@ -63,32 +52,26 @@ msgid "" "server process." msgstr "" -#: ../../library/unittest.rst:34 msgid "test case" msgstr "" -#: ../../library/unittest.rst:35 msgid "" "A :dfn:`test case` is the individual unit of testing. It checks for a " "specific response to a particular set of inputs. :mod:`unittest` provides a " "base class, :class:`TestCase`, which may be used to create new test cases." msgstr "" -#: ../../library/unittest.rst:39 msgid "test suite" msgstr "" -#: ../../library/unittest.rst:40 msgid "" "A :dfn:`test suite` is a collection of test cases, test suites, or both. It " "is used to aggregate tests that should be executed together." msgstr "" -#: ../../library/unittest.rst:43 msgid "test runner" msgstr "" -#: ../../library/unittest.rst:44 msgid "" "A :dfn:`test runner` is a component which orchestrates the execution of " "tests and provides the outcome to the user. The runner may use a graphical " @@ -96,61 +79,50 @@ msgid "" "results of executing the tests." msgstr "" -#: ../../library/unittest.rst:51 msgid "Module :mod:`doctest`" msgstr "" -#: ../../library/unittest.rst:52 msgid "Another test-support module with a very different flavor." msgstr "" -#: ../../library/unittest.rst:54 msgid "" -"`Simple Smalltalk Testing: With Patterns `_" +"`Simple Smalltalk Testing: With Patterns `_" msgstr "" -#: ../../library/unittest.rst:55 msgid "" "Kent Beck's original paper on testing frameworks using the pattern shared " "by :mod:`unittest`." msgstr "" -#: ../../library/unittest.rst:58 msgid "`pytest `_" msgstr "" -#: ../../library/unittest.rst:59 msgid "" "Third-party unittest framework with a lighter-weight syntax for writing " "tests. For example, ``assert func(10) == 42``." msgstr "" -#: ../../library/unittest.rst:62 msgid "" "`The Python Testing Tools Taxonomy `_" msgstr "" -#: ../../library/unittest.rst:63 msgid "" "An extensive list of Python testing tools including functional testing " "frameworks and mock object libraries." msgstr "" -#: ../../library/unittest.rst:66 msgid "" "`Testing in Python Mailing List `_" msgstr "" -#: ../../library/unittest.rst:67 msgid "" "A special-interest-group for discussion of testing, and testing tools, in " "Python." msgstr "" -#: ../../library/unittest.rst:70 msgid "" "The script :file:`Tools/unittestgui/unittestgui.py` in the Python source " "distribution is a GUI tool for test discovery and execution. This is " @@ -161,22 +133,18 @@ msgid "" "features/actions>`_, or `AppVeyor `_." msgstr "" -#: ../../library/unittest.rst:82 msgid "Basic example" msgstr "" -#: ../../library/unittest.rst:84 msgid "" "The :mod:`unittest` module provides a rich set of tools for constructing and " "running tests. This section demonstrates that a small subset of the tools " "suffice to meet the needs of most users." msgstr "" -#: ../../library/unittest.rst:88 msgid "Here is a short script to test three string methods::" msgstr "" -#: ../../library/unittest.rst:90 msgid "" "import unittest\n" "\n" @@ -200,7 +168,6 @@ msgid "" " unittest.main()" msgstr "" -#: ../../library/unittest.rst:112 msgid "" "A test case is created by subclassing :class:`unittest.TestCase`. The three " "individual tests are defined with methods whose names start with the letters " @@ -208,17 +175,15 @@ msgid "" "methods represent tests." msgstr "" -#: ../../library/unittest.rst:117 msgid "" "The crux of each test is a call to :meth:`~TestCase.assertEqual` to check " -"for an expected result; :meth:`~TestCase.assertTrue` " -"or :meth:`~TestCase.assertFalse` to verify a condition; " -"or :meth:`~TestCase.assertRaises` to verify that a specific exception gets " -"raised. These methods are used instead of the :keyword:`assert` statement " -"so the test runner can accumulate all test results and produce a report." +"for an expected result; :meth:`~TestCase.assertTrue` or :meth:`~TestCase." +"assertFalse` to verify a condition; or :meth:`~TestCase.assertRaises` to " +"verify that a specific exception gets raised. These methods are used " +"instead of the :keyword:`assert` statement so the test runner can accumulate " +"all test results and produce a report." msgstr "" -#: ../../library/unittest.rst:124 msgid "" "The :meth:`~TestCase.setUp` and :meth:`~TestCase.tearDown` methods allow you " "to define instructions that will be executed before and after each test " @@ -226,14 +191,12 @@ msgid "" "tests`." msgstr "" -#: ../../library/unittest.rst:128 msgid "" "The final block shows a simple way to run the tests. :func:`unittest.main` " "provides a command-line interface to the test script. When run from the " "command line, the above script produces an output that looks like this::" msgstr "" -#: ../../library/unittest.rst:132 msgid "" "...\n" "----------------------------------------------------------------------\n" @@ -242,14 +205,12 @@ msgid "" "OK" msgstr "" -#: ../../library/unittest.rst:138 msgid "" -"Passing the ``-v`` option to your test script will " -"instruct :func:`unittest.main` to enable a higher level of verbosity, and " -"produce the following output::" +"Passing the ``-v`` option to your test script will instruct :func:`unittest." +"main` to enable a higher level of verbosity, and produce the following " +"output::" msgstr "" -#: ../../library/unittest.rst:141 msgid "" "test_isupper (__main__.TestStringMethods.test_isupper) ... ok\n" "test_split (__main__.TestStringMethods.test_split) ... ok\n" @@ -261,51 +222,42 @@ msgid "" "OK" msgstr "" -#: ../../library/unittest.rst:150 msgid "" "The above examples show the most commonly used :mod:`unittest` features " "which are sufficient to meet many everyday testing needs. The remainder of " "the documentation explores the full feature set from first principles." msgstr "" -#: ../../library/unittest.rst:154 msgid "" "The behavior of returning a value from a test method (other than the default " "``None`` value), is now deprecated." msgstr "" -#: ../../library/unittest.rst:162 msgid "Command-Line Interface" msgstr "" -#: ../../library/unittest.rst:164 msgid "" "The unittest module can be used from the command line to run tests from " "modules, classes or even individual test methods::" msgstr "" -#: ../../library/unittest.rst:167 msgid "" "python -m unittest test_module1 test_module2\n" "python -m unittest test_module.TestClass\n" "python -m unittest test_module.TestClass.test_method" msgstr "" -#: ../../library/unittest.rst:171 msgid "" "You can pass in a list with any combination of module names, and fully " "qualified class or method names." msgstr "" -#: ../../library/unittest.rst:174 msgid "Test modules can be specified by file path as well::" msgstr "" -#: ../../library/unittest.rst:176 msgid "python -m unittest tests/test_something.py" msgstr "" -#: ../../library/unittest.rst:178 msgid "" "This allows you to use the shell filename completion to specify the test " "module. The file specified must still be importable as a module. The path is " @@ -314,199 +266,161 @@ msgid "" "importable as a module you should execute the file directly instead." msgstr "" -#: ../../library/unittest.rst:184 msgid "" "You can run tests with more detail (higher verbosity) by passing in the -v " "flag::" msgstr "" -#: ../../library/unittest.rst:186 msgid "python -m unittest -v test_module" msgstr "" -#: ../../library/unittest.rst:188 msgid "" "When executed without arguments :ref:`unittest-test-discovery` is started::" msgstr "" -#: ../../library/unittest.rst:190 msgid "python -m unittest" msgstr "" -#: ../../library/unittest.rst:192 msgid "For a list of all the command-line options::" msgstr "" -#: ../../library/unittest.rst:194 msgid "python -m unittest -h" msgstr "" -#: ../../library/unittest.rst:196 msgid "" "In earlier versions it was only possible to run individual test methods and " "not modules or classes." msgstr "" -#: ../../library/unittest.rst:200 msgid "" "Output is colorized by default and can be :ref:`controlled using environment " "variables `." msgstr "" -#: ../../library/unittest.rst:205 msgid "Command-line options" msgstr "" -#: ../../library/unittest.rst:207 msgid ":program:`unittest` supports these command-line options:" msgstr "" -#: ../../library/unittest.rst:213 msgid "" "The standard output and standard error streams are buffered during the test " "run. Output during a passing test is discarded. Output is echoed normally on " "test fail or error and is added to the failure messages." msgstr "" -#: ../../library/unittest.rst:219 msgid "" ":kbd:`Control-C` during the test run waits for the current test to end and " "then reports all the results so far. A second :kbd:`Control-C` raises the " "normal :exc:`KeyboardInterrupt` exception." msgstr "" -#: ../../library/unittest.rst:223 msgid "" "See `Signal Handling`_ for the functions that provide this functionality." msgstr "" -#: ../../library/unittest.rst:227 msgid "Stop the test run on the first error or failure." msgstr "" -#: ../../library/unittest.rst:231 msgid "" "Only run test methods and classes that match the pattern or substring. This " "option may be used multiple times, in which case all test cases that match " "any of the given patterns are included." msgstr "" -#: ../../library/unittest.rst:235 msgid "" "Patterns that contain a wildcard character (``*``) are matched against the " "test name using :meth:`fnmatch.fnmatchcase`; otherwise simple case-sensitive " "substring matching is used." msgstr "" -#: ../../library/unittest.rst:239 msgid "" "Patterns are matched against the fully qualified test method name as " "imported by the test loader." msgstr "" -#: ../../library/unittest.rst:242 msgid "" "For example, ``-k foo`` matches ``foo_tests.SomeTest.test_something``, " -"``bar_tests.SomeTest.test_foo``, but not " -"``bar_tests.FooTest.test_something``." +"``bar_tests.SomeTest.test_foo``, but not ``bar_tests.FooTest." +"test_something``." msgstr "" -#: ../../library/unittest.rst:247 msgid "Show local variables in tracebacks." msgstr "" -#: ../../library/unittest.rst:251 msgid "Show the N slowest test cases (N=0 for all)." msgstr "" -#: ../../library/unittest.rst:253 msgid "The command-line options ``-b``, ``-c`` and ``-f`` were added." msgstr "" -#: ../../library/unittest.rst:256 msgid "The command-line option ``--locals``." msgstr "" -#: ../../library/unittest.rst:259 msgid "The command-line option ``-k``." msgstr "" -#: ../../library/unittest.rst:262 msgid "The command-line option ``--durations``." msgstr "" -#: ../../library/unittest.rst:265 msgid "" "The command line can also be used for test discovery, for running all of the " "tests in a project or just a subset." msgstr "" -#: ../../library/unittest.rst:271 msgid "Test Discovery" msgstr "" -#: ../../library/unittest.rst:275 msgid "" "Unittest supports simple test discovery. In order to be compatible with test " -"discovery, all of the test files must be :ref:`modules ` " -"or :ref:`packages ` importable from the top-level directory of " -"the project (this means that their filenames must be valid :ref:`identifiers " +"discovery, all of the test files must be :ref:`modules ` or :" +"ref:`packages ` importable from the top-level directory of the " +"project (this means that their filenames must be valid :ref:`identifiers " "`)." msgstr "" -#: ../../library/unittest.rst:281 msgid "" "Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "be used from the command line. The basic command-line usage is::" msgstr "" -#: ../../library/unittest.rst:284 msgid "" "cd project_directory\n" "python -m unittest discover" msgstr "" -#: ../../library/unittest.rst:289 msgid "" "As a shortcut, ``python -m unittest`` is the equivalent of ``python -m " "unittest discover``. If you want to pass arguments to test discovery the " "``discover`` sub-command must be used explicitly." msgstr "" -#: ../../library/unittest.rst:293 msgid "The ``discover`` sub-command has the following options:" msgstr "" -#: ../../library/unittest.rst:299 msgid "Verbose output" msgstr "" -#: ../../library/unittest.rst:303 msgid "Directory to start discovery (``.`` default)" msgstr "" -#: ../../library/unittest.rst:307 msgid "Pattern to match test files (``test*.py`` default)" msgstr "" -#: ../../library/unittest.rst:311 msgid "Top level directory of project (defaults to start directory)" msgstr "" -#: ../../library/unittest.rst:313 msgid "" "The :option:`-s`, :option:`-p`, and :option:`-t` options can be passed in as " "positional arguments in that order. The following two command lines are " "equivalent::" msgstr "" -#: ../../library/unittest.rst:317 msgid "" "python -m unittest discover -s project_directory -p \"*_test.py\"\n" "python -m unittest discover project_directory \"*_test.py\"" msgstr "" -#: ../../library/unittest.rst:320 msgid "" "As well as being a path it is possible to pass a package name, for example " "``myproject.subpackage.test``, as the start directory. The package name you " @@ -514,7 +428,6 @@ msgid "" "as the start directory." msgstr "" -#: ../../library/unittest.rst:327 msgid "" "Test discovery loads tests by importing them. Once test discovery has found " "all the test files from the start directory you specify it turns the paths " @@ -522,79 +435,67 @@ msgid "" "imported as ``foo.bar.baz``." msgstr "" -#: ../../library/unittest.rst:332 msgid "" "If you have a package installed globally and attempt test discovery on a " "different copy of the package then the import *could* happen from the wrong " "place. If this happens test discovery will warn you and exit." msgstr "" -#: ../../library/unittest.rst:336 msgid "" "If you supply the start directory as a package name rather than a path to a " "directory then discover assumes that whichever location it imports from is " "the location you intended, so you will not get the warning." msgstr "" -#: ../../library/unittest.rst:341 msgid "" "Test modules and packages can customize test loading and discovery by " "through the `load_tests protocol`_." msgstr "" -#: ../../library/unittest.rst:344 msgid "Test discovery supports :term:`namespace packages `." msgstr "" -#: ../../library/unittest.rst:347 msgid "" "Test discovery dropped the :term:`namespace packages ` " "support. It has been broken since Python 3.7. Start directory and its " -"subdirectories containing tests must be regular package that have " -"``__init__.py`` file." +"subdirectories containing tests must be regular package that have ``__init__." +"py`` file." msgstr "" -#: ../../library/unittest.rst:353 msgid "" "If the start directory is the dotted name of the package, the ancestor " "packages can be namespace packages." msgstr "" -#: ../../library/unittest.rst:356 msgid "" "Test discovery supports :term:`namespace package` as start directory again. " "To avoid scanning directories unrelated to Python, tests are not searched in " "subdirectories that do not contain ``__init__.py``." msgstr "" -#: ../../library/unittest.rst:365 msgid "Organizing test code" msgstr "" -#: ../../library/unittest.rst:367 msgid "" "The basic building blocks of unit testing are :dfn:`test cases` --- single " -"scenarios that must be set up and checked for correctness. " -"In :mod:`unittest`, test cases are represented by :class:`unittest.TestCase` " -"instances. To make your own test cases you must write subclasses " -"of :class:`TestCase` or use :class:`FunctionTestCase`." +"scenarios that must be set up and checked for correctness. In :mod:" +"`unittest`, test cases are represented by :class:`unittest.TestCase` " +"instances. To make your own test cases you must write subclasses of :class:" +"`TestCase` or use :class:`FunctionTestCase`." msgstr "" -#: ../../library/unittest.rst:373 msgid "" "The testing code of a :class:`TestCase` instance should be entirely self " "contained, such that it can be run either in isolation or in arbitrary " "combination with any number of other test cases." msgstr "" -#: ../../library/unittest.rst:377 msgid "" "The simplest :class:`TestCase` subclass will simply implement a test method " "(i.e. a method whose name starts with ``test``) in order to perform specific " "testing code::" msgstr "" -#: ../../library/unittest.rst:381 msgid "" "import unittest\n" "\n" @@ -604,7 +505,6 @@ msgid "" " self.assertEqual(widget.size(), (50, 50))" msgstr "" -#: ../../library/unittest.rst:388 msgid "" "Note that in order to test something, we use one of the :ref:`assert\\* " "methods ` provided by the :class:`TestCase` base class. If " @@ -613,15 +513,13 @@ msgid "" "other exceptions will be treated as :dfn:`errors`." msgstr "" -#: ../../library/unittest.rst:394 msgid "" "Tests can be numerous, and their set-up can be repetitive. Luckily, we can " -"factor out set-up code by implementing a method " -"called :meth:`~TestCase.setUp`, which the testing framework will " -"automatically call for every single test we run::" +"factor out set-up code by implementing a method called :meth:`~TestCase." +"setUp`, which the testing framework will automatically call for every single " +"test we run::" msgstr "" -#: ../../library/unittest.rst:399 msgid "" "import unittest\n" "\n" @@ -639,26 +537,22 @@ msgid "" " 'wrong size after resize')" msgstr "" -#: ../../library/unittest.rst:415 msgid "" "The order in which the various tests will be run is determined by sorting " "the test method names with respect to the built-in ordering for strings." msgstr "" -#: ../../library/unittest.rst:419 msgid "" "If the :meth:`~TestCase.setUp` method raises an exception while the test is " "running, the framework will consider the test to have suffered an error, and " "the test method will not be executed." msgstr "" -#: ../../library/unittest.rst:423 msgid "" "Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " "after the test method has been run::" msgstr "" -#: ../../library/unittest.rst:426 msgid "" "import unittest\n" "\n" @@ -670,38 +564,33 @@ msgid "" " self.widget.dispose()" msgstr "" -#: ../../library/unittest.rst:435 msgid "" "If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " "whether the test method succeeded or not." msgstr "" -#: ../../library/unittest.rst:438 msgid "" "Such a working environment for the testing code is called a :dfn:`test " "fixture`. A new TestCase instance is created as a unique test fixture used " -"to execute each individual test method. " -"Thus :meth:`~TestCase.setUp`, :meth:`~TestCase.tearDown`, " -"and :meth:`~TestCase.__init__` will be called once per test." +"to execute each individual test method. Thus :meth:`~TestCase.setUp`, :meth:" +"`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per " +"test." msgstr "" -#: ../../library/unittest.rst:444 msgid "" "It is recommended that you use TestCase implementations to group tests " "together according to the features they test. :mod:`unittest` provides a " -"mechanism for this: the :dfn:`test suite`, represented " -"by :mod:`unittest`'s :class:`TestSuite` class. In most cases, " -"calling :func:`unittest.main` will do the right thing and collect all the " -"module's test cases for you and execute them." +"mechanism for this: the :dfn:`test suite`, represented by :mod:`unittest`'s :" +"class:`TestSuite` class. In most cases, calling :func:`unittest.main` will " +"do the right thing and collect all the module's test cases for you and " +"execute them." msgstr "" -#: ../../library/unittest.rst:451 msgid "" "However, should you want to customize the building of your test suite, you " "can do it yourself::" msgstr "" -#: ../../library/unittest.rst:454 msgid "" "def suite():\n" " suite = unittest.TestSuite()\n" @@ -714,7 +603,6 @@ msgid "" " runner.run(suite())" msgstr "" -#: ../../library/unittest.rst:464 msgid "" "You can place the definitions of test cases and test suites in the same " "modules as the code they are to test (such as :file:`widget.py`), but there " @@ -722,63 +610,51 @@ msgid "" "as :file:`test_widget.py`:" msgstr "" -#: ../../library/unittest.rst:469 msgid "The test module can be run standalone from the command line." msgstr "" -#: ../../library/unittest.rst:471 msgid "The test code can more easily be separated from shipped code." msgstr "" -#: ../../library/unittest.rst:473 msgid "" "There is less temptation to change test code to fit the code it tests " "without a good reason." msgstr "" -#: ../../library/unittest.rst:476 msgid "" "Test code should be modified much less frequently than the code it tests." msgstr "" -#: ../../library/unittest.rst:478 msgid "Tested code can be refactored more easily." msgstr "" -#: ../../library/unittest.rst:480 msgid "" "Tests for modules written in C must be in separate modules anyway, so why " "not be consistent?" msgstr "" -#: ../../library/unittest.rst:483 msgid "" "If the testing strategy changes, there is no need to change the source code." msgstr "" -#: ../../library/unittest.rst:489 msgid "Re-using old test code" msgstr "" -#: ../../library/unittest.rst:491 msgid "" "Some users will find that they have existing test code that they would like " "to run from :mod:`unittest`, without converting every old test function to " "a :class:`TestCase` subclass." msgstr "" -#: ../../library/unittest.rst:495 msgid "" "For this reason, :mod:`unittest` provides a :class:`FunctionTestCase` class. " "This subclass of :class:`TestCase` can be used to wrap an existing test " "function. Set-up and tear-down functions can also be provided." msgstr "" -#: ../../library/unittest.rst:499 msgid "Given the following test function::" msgstr "" -#: ../../library/unittest.rst:501 msgid "" "def testSomething():\n" " something = makeSomething()\n" @@ -786,20 +662,17 @@ msgid "" " # ..." msgstr "" -#: ../../library/unittest.rst:506 msgid "" "one can create an equivalent test case instance as follows, with optional " "set-up and tear-down methods::" msgstr "" -#: ../../library/unittest.rst:509 msgid "" "testcase = unittest.FunctionTestCase(testSomething,\n" " setUp=makeSomethingDB,\n" " tearDown=deleteSomethingDB)" msgstr "" -#: ../../library/unittest.rst:515 msgid "" "Even though :class:`FunctionTestCase` can be used to quickly convert an " "existing test base over to a :mod:`unittest`\\ -based system, this approach " @@ -807,20 +680,16 @@ msgid "" "subclasses will make future test refactorings infinitely easier." msgstr "" -#: ../../library/unittest.rst:520 msgid "" -"In some cases, the existing tests may have been written using " -"the :mod:`doctest` module. If so, :mod:`doctest` provides " -"a :class:`DocTestSuite` class that can automatically " -"build :class:`unittest.TestSuite` instances from the " -"existing :mod:`doctest`\\ -based tests." +"In some cases, the existing tests may have been written using the :mod:" +"`doctest` module. If so, :mod:`doctest` provides a :class:`DocTestSuite` " +"class that can automatically build :class:`unittest.TestSuite` instances " +"from the existing :mod:`doctest`\\ -based tests." msgstr "" -#: ../../library/unittest.rst:529 msgid "Skipping tests and expected failures" msgstr "" -#: ../../library/unittest.rst:533 msgid "" "Unittest supports skipping individual test methods and even whole classes of " "tests. In addition, it supports marking a test as an \"expected failure,\" " @@ -828,19 +697,16 @@ msgid "" "on a :class:`TestResult`." msgstr "" -#: ../../library/unittest.rst:538 msgid "" -"Skipping a test is simply a matter of using " -"the :func:`skip` :term:`decorator` or one of its conditional variants, " -"calling :meth:`TestCase.skipTest` within a :meth:`~TestCase.setUp` or test " -"method, or raising :exc:`SkipTest` directly." +"Skipping a test is simply a matter of using the :func:`skip` :term:" +"`decorator` or one of its conditional variants, calling :meth:`TestCase." +"skipTest` within a :meth:`~TestCase.setUp` or test method, or raising :exc:" +"`SkipTest` directly." msgstr "" -#: ../../library/unittest.rst:542 msgid "Basic skipping looks like this::" msgstr "" -#: ../../library/unittest.rst:544 msgid "" "class MyTestCase(unittest.TestCase):\n" "\n" @@ -867,11 +733,9 @@ msgid "" " pass" msgstr "" -#: ../../library/unittest.rst:567 msgid "This is the output of running the example above in verbose mode::" msgstr "" -#: ../../library/unittest.rst:569 msgid "" "test_format (__main__.MyTestCase.test_format) ... skipped 'not supported in " "this library version'\n" @@ -888,11 +752,9 @@ msgid "" "OK (skipped=4)" msgstr "" -#: ../../library/unittest.rst:579 msgid "Classes can be skipped just like methods::" msgstr "" -#: ../../library/unittest.rst:581 msgid "" "@unittest.skip(\"showing class skipping\")\n" "class MySkippedTestCase(unittest.TestCase):\n" @@ -900,17 +762,14 @@ msgid "" " pass" msgstr "" -#: ../../library/unittest.rst:586 msgid "" ":meth:`TestCase.setUp` can also skip the test. This is useful when a " "resource that needs to be set up is not available." msgstr "" -#: ../../library/unittest.rst:589 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "" -#: ../../library/unittest.rst:591 msgid "" "class ExpectedFailureTestCase(unittest.TestCase):\n" " @unittest.expectedFailure\n" @@ -918,14 +777,12 @@ msgid "" " self.assertEqual(1, 0, \"broken\")" msgstr "" -#: ../../library/unittest.rst:596 msgid "" "It's easy to roll your own skipping decorators by making a decorator that " "calls :func:`skip` on the test when it wants it to be skipped. This " "decorator skips the test unless the passed object has a certain attribute::" msgstr "" -#: ../../library/unittest.rst:600 msgid "" "def skipUnlessHasattr(obj, attr):\n" " if hasattr(obj, attr):\n" @@ -933,27 +790,22 @@ msgid "" " return unittest.skip(\"{!r} doesn't have {!r}\".format(obj, attr))" msgstr "" -#: ../../library/unittest.rst:605 msgid "" "The following decorators and exception implement test skipping and expected " "failures:" msgstr "" -#: ../../library/unittest.rst:609 msgid "" "Unconditionally skip the decorated test. *reason* should describe why the " "test is being skipped." msgstr "" -#: ../../library/unittest.rst:614 msgid "Skip the decorated test if *condition* is true." msgstr "" -#: ../../library/unittest.rst:618 msgid "Skip the decorated test unless *condition* is true." msgstr "" -#: ../../library/unittest.rst:622 msgid "" "Mark the test as an expected failure or error. If the test fails or errors " "in the test function itself (rather than in one of the :dfn:`test fixture` " @@ -961,41 +813,33 @@ msgid "" "be considered a failure." msgstr "" -#: ../../library/unittest.rst:629 msgid "This exception is raised to skip a test." msgstr "" -#: ../../library/unittest.rst:631 msgid "" "Usually you can use :meth:`TestCase.skipTest` or one of the skipping " "decorators instead of raising this directly." msgstr "" -#: ../../library/unittest.rst:634 msgid "" -"Skipped tests will not have :meth:`~TestCase.setUp` " -"or :meth:`~TestCase.tearDown` run around them. Skipped classes will not " -"have :meth:`~TestCase.setUpClass` or :meth:`~TestCase.tearDownClass` run. " -"Skipped modules will not have :func:`setUpModule` or :func:`tearDownModule` " -"run." +"Skipped tests will not have :meth:`~TestCase.setUp` or :meth:`~TestCase." +"tearDown` run around them. Skipped classes will not have :meth:`~TestCase." +"setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " +"have :func:`setUpModule` or :func:`tearDownModule` run." msgstr "" -#: ../../library/unittest.rst:642 msgid "Distinguishing test iterations using subtests" msgstr "" -#: ../../library/unittest.rst:646 msgid "" "When there are very small differences among your tests, for instance some " "parameters, unittest allows you to distinguish them inside the body of a " "test method using the :meth:`~TestCase.subTest` context manager." msgstr "" -#: ../../library/unittest.rst:650 msgid "For example, the following test::" msgstr "" -#: ../../library/unittest.rst:652 msgid "" "class NumbersTest(unittest.TestCase):\n" "\n" @@ -1008,11 +852,9 @@ msgid "" " self.assertEqual(i % 2, 0)" msgstr "" -#: ../../library/unittest.rst:662 msgid "will produce the following output::" msgstr "" -#: ../../library/unittest.rst:664 msgid "" "======================================================================\n" "FAIL: test_even (__main__.NumbersTest.test_even) (i=1)\n" @@ -1045,14 +887,12 @@ msgid "" "AssertionError: 1 != 0" msgstr "" -#: ../../library/unittest.rst:694 msgid "" "Without using a subtest, execution would stop after the first failure, and " "the error would be less easy to diagnose because the value of ``i`` wouldn't " "be displayed::" msgstr "" -#: ../../library/unittest.rst:698 msgid "" "======================================================================\n" "FAIL: test_even (__main__.NumbersTest.test_even)\n" @@ -1063,19 +903,15 @@ msgid "" "AssertionError: 1 != 0" msgstr "" -#: ../../library/unittest.rst:710 msgid "Classes and functions" msgstr "" -#: ../../library/unittest.rst:712 msgid "This section describes in depth the API of :mod:`unittest`." msgstr "" -#: ../../library/unittest.rst:718 msgid "Test cases" msgstr "" -#: ../../library/unittest.rst:722 msgid "" "Instances of the :class:`TestCase` class represent the logical test units in " "the :mod:`unittest` universe. This class is intended to be used as a base " @@ -1085,21 +921,18 @@ msgid "" "report various kinds of failure." msgstr "" -#: ../../library/unittest.rst:729 msgid "" "Each instance of :class:`TestCase` will run a single base method: the method " "named *methodName*. In most uses of :class:`TestCase`, you will neither " "change the *methodName* nor reimplement the default ``runTest()`` method." msgstr "" -#: ../../library/unittest.rst:734 msgid "" ":class:`TestCase` can be instantiated successfully without providing a " "*methodName*. This makes it easier to experiment with :class:`TestCase` from " "the interactive interpreter." msgstr "" -#: ../../library/unittest.rst:739 msgid "" ":class:`TestCase` instances provide three groups of methods: one group used " "to run the test, another used by the test implementation to check conditions " @@ -1107,64 +940,55 @@ msgid "" "test itself to be gathered." msgstr "" -#: ../../library/unittest.rst:744 msgid "Methods in the first group (running the test) are:" msgstr "" -#: ../../library/unittest.rst:748 msgid "" "Method called to prepare the test fixture. This is called immediately " -"before calling the test method; other than :exc:`AssertionError` " -"or :exc:`SkipTest`, any exception raised by this method will be considered " -"an error rather than a test failure. The default implementation does nothing." +"before calling the test method; other than :exc:`AssertionError` or :exc:" +"`SkipTest`, any exception raised by this method will be considered an error " +"rather than a test failure. The default implementation does nothing." msgstr "" -#: ../../library/unittest.rst:756 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called even if the test method raised an " "exception, so the implementation in subclasses may need to be particularly " -"careful about checking internal state. Any exception, other " -"than :exc:`AssertionError` or :exc:`SkipTest`, raised by this method will be " +"careful about checking internal state. Any exception, other than :exc:" +"`AssertionError` or :exc:`SkipTest`, raised by this method will be " "considered an additional error rather than a test failure (thus increasing " "the total number of reported errors). This method will only be called if " "the :meth:`setUp` succeeds, regardless of the outcome of the test method. " "The default implementation does nothing." msgstr "" -#: ../../library/unittest.rst:769 msgid "" "A class method called before tests in an individual class are run. " "``setUpClass`` is called with the class as the only argument and must be " "decorated as a :func:`classmethod`::" msgstr "" -#: ../../library/unittest.rst:773 msgid "" "@classmethod\n" "def setUpClass(cls):\n" " ..." msgstr "" -#: ../../library/unittest.rst:777 ../../library/unittest.rst:792 msgid "See `Class and Module Fixtures`_ for more details." msgstr "" -#: ../../library/unittest.rst:784 msgid "" "A class method called after tests in an individual class have run. " "``tearDownClass`` is called with the class as the only argument and must be " "decorated as a :meth:`classmethod`::" msgstr "" -#: ../../library/unittest.rst:788 msgid "" "@classmethod\n" "def tearDownClass(cls):\n" " ..." msgstr "" -#: ../../library/unittest.rst:799 msgid "" "Run the test, collecting the result into the :class:`TestResult` object " "passed as *result*. If *result* is omitted or ``None``, a temporary result " @@ -1172,222 +996,161 @@ msgid "" "used. The result object is returned to :meth:`run`'s caller." msgstr "" -#: ../../library/unittest.rst:805 msgid "" "The same effect may be had by simply calling the :class:`TestCase` instance." msgstr "" -#: ../../library/unittest.rst:808 msgid "" "Previous versions of ``run`` did not return the result. Neither did calling " "an instance." msgstr "" -#: ../../library/unittest.rst:814 msgid "" "Calling this during a test method or :meth:`setUp` skips the current test. " "See :ref:`unittest-skipping` for more information." msgstr "" -#: ../../library/unittest.rst:822 msgid "" "Return a context manager which executes the enclosed code block as a " "subtest. *msg* and *params* are optional, arbitrary values which are " "displayed whenever a subtest fails, allowing you to identify them clearly." msgstr "" -#: ../../library/unittest.rst:827 msgid "" "A test case can contain any number of subtest declarations, and they can be " "arbitrarily nested." msgstr "" -#: ../../library/unittest.rst:830 msgid "See :ref:`subtests` for more information." msgstr "" -#: ../../library/unittest.rst:837 msgid "" "Run the test without collecting the result. This allows exceptions raised " "by the test to be propagated to the caller, and can be used to support " "running tests under a debugger." msgstr "" -#: ../../library/unittest.rst:843 msgid "" "The :class:`TestCase` class provides several assert methods to check for and " "report failures. The following table lists the most commonly used methods " "(see the tables below for more assert methods):" msgstr "" -#: ../../library/unittest.rst:848 ../../library/unittest.rst:984 -#: ../../library/unittest.rst:1198 ../../library/unittest.rst:1368 msgid "Method" msgstr "" -#: ../../library/unittest.rst:848 ../../library/unittest.rst:984 -#: ../../library/unittest.rst:1198 msgid "Checks that" msgstr "" -#: ../../library/unittest.rst:848 ../../library/unittest.rst:984 -#: ../../library/unittest.rst:1198 ../../library/unittest.rst:1368 msgid "New in" msgstr "" -#: ../../library/unittest.rst:850 msgid ":meth:`assertEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:850 msgid "``a == b``" msgstr "" -#: ../../library/unittest.rst:853 msgid ":meth:`assertNotEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:853 msgid "``a != b``" msgstr "" -#: ../../library/unittest.rst:856 msgid ":meth:`assertTrue(x) `" msgstr "" -#: ../../library/unittest.rst:856 msgid "``bool(x) is True``" msgstr "" -#: ../../library/unittest.rst:859 msgid ":meth:`assertFalse(x) `" msgstr "" -#: ../../library/unittest.rst:859 msgid "``bool(x) is False``" msgstr "" -#: ../../library/unittest.rst:862 msgid ":meth:`assertIs(a, b) `" msgstr "" -#: ../../library/unittest.rst:862 msgid "``a is b``" msgstr "" -#: ../../library/unittest.rst:862 ../../library/unittest.rst:865 -#: ../../library/unittest.rst:868 ../../library/unittest.rst:871 -#: ../../library/unittest.rst:874 ../../library/unittest.rst:877 -#: ../../library/unittest.rst:989 ../../library/unittest.rst:1206 -#: ../../library/unittest.rst:1209 ../../library/unittest.rst:1212 -#: ../../library/unittest.rst:1215 ../../library/unittest.rst:1218 -#: ../../library/unittest.rst:1370 ../../library/unittest.rst:1373 -#: ../../library/unittest.rst:1376 ../../library/unittest.rst:1379 -#: ../../library/unittest.rst:1382 ../../library/unittest.rst:1385 msgid "3.1" msgstr "" -#: ../../library/unittest.rst:865 msgid ":meth:`assertIsNot(a, b) `" msgstr "" -#: ../../library/unittest.rst:865 msgid "``a is not b``" msgstr "" -#: ../../library/unittest.rst:868 msgid ":meth:`assertIsNone(x) `" msgstr "" -#: ../../library/unittest.rst:868 msgid "``x is None``" msgstr "" -#: ../../library/unittest.rst:871 msgid ":meth:`assertIsNotNone(x) `" msgstr "" -#: ../../library/unittest.rst:871 msgid "``x is not None``" msgstr "" -#: ../../library/unittest.rst:874 msgid ":meth:`assertIn(a, b) `" msgstr "" -#: ../../library/unittest.rst:874 msgid "``a in b``" msgstr "" -#: ../../library/unittest.rst:877 msgid ":meth:`assertNotIn(a, b) `" msgstr "" -#: ../../library/unittest.rst:877 msgid "``a not in b``" msgstr "" -#: ../../library/unittest.rst:880 msgid ":meth:`assertIsInstance(a, b) `" msgstr "" -#: ../../library/unittest.rst:880 msgid "``isinstance(a, b)``" msgstr "" -#: ../../library/unittest.rst:880 ../../library/unittest.rst:883 -#: ../../library/unittest.rst:992 ../../library/unittest.rst:995 -#: ../../library/unittest.rst:1221 ../../library/unittest.rst:1224 msgid "3.2" msgstr "" -#: ../../library/unittest.rst:883 msgid ":meth:`assertNotIsInstance(a, b) `" msgstr "" -#: ../../library/unittest.rst:883 msgid "``not isinstance(a, b)``" -msgstr "``not isinstance(a, b)``" +msgstr "" -#: ../../library/unittest.rst:886 msgid ":meth:`assertIsSubclass(a, b) `" msgstr "" -#: ../../library/unittest.rst:886 msgid "``issubclass(a, b)``" msgstr "" -#: ../../library/unittest.rst:886 ../../library/unittest.rst:889 -#: ../../library/unittest.rst:1228 ../../library/unittest.rst:1231 -#: ../../library/unittest.rst:1234 ../../library/unittest.rst:1237 -#: ../../library/unittest.rst:1240 ../../library/unittest.rst:1243 msgid "3.14" msgstr "" -#: ../../library/unittest.rst:889 msgid ":meth:`assertNotIsSubclass(a, b) `" msgstr "" -#: ../../library/unittest.rst:889 msgid "``not issubclass(a, b)``" -msgstr "``not issubclass(a, b)``" +msgstr "" -#: ../../library/unittest.rst:893 msgid "" "All the assert methods accept a *msg* argument that, if specified, is used " "as the error message on failure (see also :data:`longMessage`). Note that " -"the *msg* keyword argument can be passed " -"to :meth:`assertRaises`, :meth:`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` " -"only when they are used as a context manager." +"the *msg* keyword argument can be passed to :meth:`assertRaises`, :meth:" +"`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` only when " +"they are used as a context manager." msgstr "" -#: ../../library/unittest.rst:901 msgid "" "Test that *first* and *second* are equal. If the values do not compare " "equal, the test will fail." msgstr "" -#: ../../library/unittest.rst:904 msgid "" "In addition, if *first* and *second* are the exact same type and one of " "list, tuple, dict, set, frozenset or str or any type that a subclass " @@ -1397,27 +1160,22 @@ msgid "" "methods>`)." msgstr "" -#: ../../library/unittest.rst:911 msgid "Added the automatic calling of type-specific equality function." msgstr "" -#: ../../library/unittest.rst:914 msgid "" ":meth:`assertMultiLineEqual` added as the default type equality function for " "comparing strings." msgstr "" -#: ../../library/unittest.rst:921 msgid "" "Test that *first* and *second* are not equal. If the values do compare " "equal, the test will fail." msgstr "" -#: ../../library/unittest.rst:927 msgid "Test that *expr* is true (or false)." msgstr "" -#: ../../library/unittest.rst:929 msgid "" "Note that this is equivalent to ``bool(expr) is True`` and not to ``expr is " "True`` (use ``assertIs(expr, True)`` for the latter). This method should " @@ -1426,139 +1184,112 @@ msgid "" "provide a better error message in case of failure." msgstr "" -#: ../../library/unittest.rst:939 msgid "Test that *first* and *second* are (or are not) the same object." msgstr "" -#: ../../library/unittest.rst:947 msgid "Test that *expr* is (or is not) ``None``." msgstr "" -#: ../../library/unittest.rst:955 msgid "Test that *member* is (or is not) in *container*." msgstr "" -#: ../../library/unittest.rst:963 msgid "" "Test that *obj* is (or is not) an instance of *cls* (which can be a class or " "a tuple of classes, as supported by :func:`isinstance`). To check for the " "exact type, use :func:`assertIs(type(obj), cls) `." msgstr "" -#: ../../library/unittest.rst:973 msgid "" "Test that *cls* is (or is not) a subclass of *superclass* (which can be a " "class or a tuple of classes, as supported by :func:`issubclass`). To check " "for the exact type, use :func:`assertIs(cls, superclass) `." msgstr "" -#: ../../library/unittest.rst:980 msgid "" "It is also possible to check the production of exceptions, warnings, and log " "messages using the following methods:" msgstr "" -#: ../../library/unittest.rst:986 msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" msgstr "" -#: ../../library/unittest.rst:986 msgid "``fun(*args, **kwds)`` raises *exc*" msgstr "" -#: ../../library/unittest.rst:989 msgid "" -":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) " -"`" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" msgstr "" -#: ../../library/unittest.rst:989 msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" msgstr "" -#: ../../library/unittest.rst:992 msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" msgstr "" -#: ../../library/unittest.rst:992 msgid "``fun(*args, **kwds)`` raises *warn*" msgstr "" -#: ../../library/unittest.rst:995 msgid "" -":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) " -"`" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" msgstr "" -#: ../../library/unittest.rst:995 msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" msgstr "" -#: ../../library/unittest.rst:998 msgid ":meth:`assertLogs(logger, level) `" msgstr "" -#: ../../library/unittest.rst:998 msgid "The ``with`` block logs on *logger* with minimum *level*" msgstr "" -#: ../../library/unittest.rst:998 msgid "3.4" msgstr "" -#: ../../library/unittest.rst:1001 msgid ":meth:`assertNoLogs(logger, level) `" msgstr "" -#: ../../library/unittest.rst:1001 msgid "The ``with`` block does not log on" msgstr "" -#: ../../library/unittest.rst:1002 msgid "*logger* with minimum *level*" msgstr "" -#: ../../library/unittest.rst:1001 msgid "3.10" msgstr "" -#: ../../library/unittest.rst:1008 msgid "" "Test that an exception is raised when *callable* is called with any " -"positional or keyword arguments that are also passed " -"to :meth:`assertRaises`. The test passes if *exception* is raised, is an " -"error if another exception is raised, or fails if no exception is raised. To " -"catch any of a group of exceptions, a tuple containing the exception classes " -"may be passed as *exception*." +"positional or keyword arguments that are also passed to :meth:" +"`assertRaises`. The test passes if *exception* is raised, is an error if " +"another exception is raised, or fails if no exception is raised. To catch " +"any of a group of exceptions, a tuple containing the exception classes may " +"be passed as *exception*." msgstr "" -#: ../../library/unittest.rst:1015 msgid "" "If only the *exception* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" -#: ../../library/unittest.rst:1019 msgid "" "with self.assertRaises(SomeException):\n" " do_something()" msgstr "" -#: ../../library/unittest.rst:1022 msgid "" "When used as a context manager, :meth:`assertRaises` accepts the additional " "keyword argument *msg*." msgstr "" -#: ../../library/unittest.rst:1025 msgid "" -"The context manager will store the caught exception object in " -"its :attr:`exception` attribute. This can be useful if the intention is to " -"perform additional checks on the exception raised::" +"The context manager will store the caught exception object in its :attr:" +"`exception` attribute. This can be useful if the intention is to perform " +"additional checks on the exception raised::" msgstr "" -#: ../../library/unittest.rst:1029 msgid "" "with self.assertRaises(SomeException) as cm:\n" " do_something()\n" @@ -1567,89 +1298,72 @@ msgid "" "self.assertEqual(the_exception.error_code, 3)" msgstr "" -#: ../../library/unittest.rst:1035 msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" -#: ../../library/unittest.rst:1038 msgid "Added the :attr:`exception` attribute." msgstr "" -#: ../../library/unittest.rst:1041 ../../library/unittest.rst:1067 -#: ../../library/unittest.rst:1108 ../../library/unittest.rst:1131 msgid "Added the *msg* keyword argument when used as a context manager." msgstr "" -#: ../../library/unittest.rst:1048 msgid "" "Like :meth:`assertRaises` but also tests that *regex* matches on the string " "representation of the raised exception. *regex* may be a regular expression " -"object or a string containing a regular expression suitable for use " -"by :func:`re.search`. Examples::" +"object or a string containing a regular expression suitable for use by :func:" +"`re.search`. Examples::" msgstr "" -#: ../../library/unittest.rst:1053 msgid "" "self.assertRaisesRegex(ValueError, \"invalid literal for.*XYZ'$\",\n" " int, 'XYZ')" msgstr "" -#: ../../library/unittest.rst:1056 ../../library/unittest.rst:1124 msgid "or::" msgstr "" -#: ../../library/unittest.rst:1058 msgid "" "with self.assertRaisesRegex(ValueError, 'literal'):\n" " int('XYZ')" msgstr "" -#: ../../library/unittest.rst:1061 msgid "Added under the name ``assertRaisesRegexp``." msgstr "" -#: ../../library/unittest.rst:1064 msgid "Renamed to :meth:`assertRaisesRegex`." msgstr "" -#: ../../library/unittest.rst:1074 msgid "" "Test that a warning is triggered when *callable* is called with any " -"positional or keyword arguments that are also passed " -"to :meth:`assertWarns`. The test passes if *warning* is triggered and fails " -"if it isn't. Any exception is an error. To catch any of a group of " -"warnings, a tuple containing the warning classes may be passed as *warnings*." +"positional or keyword arguments that are also passed to :meth:" +"`assertWarns`. The test passes if *warning* is triggered and fails if it " +"isn't. Any exception is an error. To catch any of a group of warnings, a " +"tuple containing the warning classes may be passed as *warnings*." msgstr "" -#: ../../library/unittest.rst:1081 msgid "" "If only the *warning* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" -#: ../../library/unittest.rst:1085 msgid "" "with self.assertWarns(SomeWarning):\n" " do_something()" msgstr "" -#: ../../library/unittest.rst:1088 msgid "" "When used as a context manager, :meth:`assertWarns` accepts the additional " "keyword argument *msg*." msgstr "" -#: ../../library/unittest.rst:1091 msgid "" -"The context manager will store the caught warning object in " -"its :attr:`warning` attribute, and the source line which triggered the " -"warnings in the :attr:`filename` and :attr:`lineno` attributes. This can be " -"useful if the intention is to perform additional checks on the warning " -"caught::" +"The context manager will store the caught warning object in its :attr:" +"`warning` attribute, and the source line which triggered the warnings in " +"the :attr:`filename` and :attr:`lineno` attributes. This can be useful if " +"the intention is to perform additional checks on the warning caught::" msgstr "" -#: ../../library/unittest.rst:1097 msgid "" "with self.assertWarns(SomeWarning) as cm:\n" " do_something()\n" @@ -1658,82 +1372,69 @@ msgid "" "self.assertEqual(320, cm.lineno)" msgstr "" -#: ../../library/unittest.rst:1103 msgid "" "This method works regardless of the warning filters in place when it is " "called." msgstr "" -#: ../../library/unittest.rst:1115 msgid "" "Like :meth:`assertWarns` but also tests that *regex* matches on the message " "of the triggered warning. *regex* may be a regular expression object or a " -"string containing a regular expression suitable for use " -"by :func:`re.search`. Example::" +"string containing a regular expression suitable for use by :func:`re." +"search`. Example::" msgstr "" -#: ../../library/unittest.rst:1120 msgid "" "self.assertWarnsRegex(DeprecationWarning,\n" " r'legacy_function\\(\\) is deprecated',\n" " legacy_function, 'XYZ')" msgstr "" -#: ../../library/unittest.rst:1126 msgid "" "with self.assertWarnsRegex(RuntimeWarning, 'unsafe frobnicating'):\n" " frobnicate('/etc/passwd')" msgstr "" -#: ../../library/unittest.rst:1136 msgid "" "A context manager to test that at least one message is logged on the " "*logger* or one of its children, with at least the given *level*." msgstr "" -#: ../../library/unittest.rst:1140 msgid "" -"If given, *logger* should be a :class:`logging.Logger` object or " -"a :class:`str` giving the name of a logger. The default is the root logger, " -"which will catch all messages that were not blocked by a non-propagating " +"If given, *logger* should be a :class:`logging.Logger` object or a :class:" +"`str` giving the name of a logger. The default is the root logger, which " +"will catch all messages that were not blocked by a non-propagating " "descendent logger." msgstr "" -#: ../../library/unittest.rst:1145 ../../library/unittest.rst:1186 msgid "" "If given, *level* should be either a numeric logging level or its string " "equivalent (for example either ``\"ERROR\"`` or :const:`logging.ERROR`). " "The default is :const:`logging.INFO`." msgstr "" -#: ../../library/unittest.rst:1149 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." msgstr "" -#: ../../library/unittest.rst:1152 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" msgstr "" -#: ../../library/unittest.rst:1158 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" -#: ../../library/unittest.rst:1163 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." msgstr "" -#: ../../library/unittest.rst:1166 msgid "Example::" msgstr "" -#: ../../library/unittest.rst:1168 msgid "" "with self.assertLogs('foo', level='INFO') as cm:\n" " logging.getLogger('foo').info('first message')\n" @@ -1742,190 +1443,149 @@ msgid "" " 'ERROR:foo.bar:second message'])" msgstr "" -#: ../../library/unittest.rst:1178 msgid "" "A context manager to test that no messages are logged on the *logger* or one " "of its children, with at least the given *level*." msgstr "" -#: ../../library/unittest.rst:1182 msgid "" -"If given, *logger* should be a :class:`logging.Logger` object or " -"a :class:`str` giving the name of a logger. The default is the root logger, " -"which will catch all messages." +"If given, *logger* should be a :class:`logging.Logger` object or a :class:" +"`str` giving the name of a logger. The default is the root logger, which " +"will catch all messages." msgstr "" -#: ../../library/unittest.rst:1190 msgid "" "Unlike :meth:`assertLogs`, nothing will be returned by the context manager." msgstr "" -#: ../../library/unittest.rst:1195 msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" -#: ../../library/unittest.rst:1200 msgid ":meth:`assertAlmostEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1200 msgid "``round(a-b, 7) == 0``" msgstr "" -#: ../../library/unittest.rst:1203 msgid ":meth:`assertNotAlmostEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1203 msgid "``round(a-b, 7) != 0``" msgstr "" -#: ../../library/unittest.rst:1206 msgid ":meth:`assertGreater(a, b) `" msgstr "" -#: ../../library/unittest.rst:1206 msgid "``a > b``" -msgstr "``a > b``" +msgstr "" -#: ../../library/unittest.rst:1209 msgid ":meth:`assertGreaterEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1209 msgid "``a >= b``" -msgstr "``a >= b``" +msgstr "" -#: ../../library/unittest.rst:1212 msgid ":meth:`assertLess(a, b) `" msgstr "" -#: ../../library/unittest.rst:1212 msgid "``a < b``" -msgstr "``a < b``" +msgstr "" -#: ../../library/unittest.rst:1215 msgid ":meth:`assertLessEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1215 msgid "``a <= b``" -msgstr "``a <= b``" +msgstr "" -#: ../../library/unittest.rst:1218 msgid ":meth:`assertRegex(s, r) `" msgstr "" -#: ../../library/unittest.rst:1218 msgid "``r.search(s)``" msgstr "" -#: ../../library/unittest.rst:1221 msgid ":meth:`assertNotRegex(s, r) `" msgstr "" -#: ../../library/unittest.rst:1221 msgid "``not r.search(s)``" msgstr "" -#: ../../library/unittest.rst:1224 msgid ":meth:`assertCountEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1224 msgid "" "*a* and *b* have the same elements in the same number, regardless of their " "order." msgstr "" -#: ../../library/unittest.rst:1228 msgid ":meth:`assertStartsWith(a, b) `" msgstr "" -#: ../../library/unittest.rst:1228 msgid "``a.startswith(b)``" msgstr "" -#: ../../library/unittest.rst:1231 msgid ":meth:`assertNotStartsWith(a, b) `" msgstr "" -#: ../../library/unittest.rst:1231 msgid "``not a.startswith(b)``" msgstr "" -#: ../../library/unittest.rst:1234 msgid ":meth:`assertEndsWith(a, b) `" msgstr "" -#: ../../library/unittest.rst:1234 msgid "``a.endswith(b)``" msgstr "" -#: ../../library/unittest.rst:1237 msgid ":meth:`assertNotEndsWith(a, b) `" msgstr "" -#: ../../library/unittest.rst:1237 msgid "``not a.endswith(b)``" msgstr "" -#: ../../library/unittest.rst:1240 msgid ":meth:`assertHasAttr(a, b) `" msgstr "" -#: ../../library/unittest.rst:1240 msgid "``hastattr(a, b)``" msgstr "" -#: ../../library/unittest.rst:1243 msgid ":meth:`assertNotHasAttr(a, b) `" msgstr "" -#: ../../library/unittest.rst:1243 msgid "``not hastattr(a, b)``" -msgstr "``not hastattr(a, b)``" +msgstr "" -#: ../../library/unittest.rst:1251 msgid "" "Test that *first* and *second* are approximately (or not approximately) " "equal by computing the difference, rounding to the given number of decimal " "*places* (default 7), and comparing to zero. Note that these methods round " -"the values to the given number of *decimal places* (i.e. like " -"the :func:`round` function) and not *significant digits*." +"the values to the given number of *decimal places* (i.e. like the :func:" +"`round` function) and not *significant digits*." msgstr "" -#: ../../library/unittest.rst:1257 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." msgstr "" -#: ../../library/unittest.rst:1260 msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." msgstr "" -#: ../../library/unittest.rst:1262 msgid "" ":meth:`assertAlmostEqual` automatically considers almost equal objects that " "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " "objects compare equal. Added the *delta* keyword argument." msgstr "" -#: ../../library/unittest.rst:1273 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" msgstr "" -#: ../../library/unittest.rst:1276 msgid "" ">>> self.assertGreaterEqual(3, 4)\n" "AssertionError: \"3\" unexpectedly not greater than or equal to \"4\"" msgstr "" -#: ../../library/unittest.rst:1285 msgid "" "Test that a *regex* search matches (or does not match) *text*. In case of " "failure, the error message will include the pattern and the *text* (or the " @@ -1934,28 +1594,23 @@ msgid "" "suitable for use by :func:`re.search`." msgstr "" -#: ../../library/unittest.rst:1291 msgid "Added under the name ``assertRegexpMatches``." msgstr "" -#: ../../library/unittest.rst:1293 msgid "" -"The method ``assertRegexpMatches()`` has been renamed " -"to :meth:`.assertRegex`." +"The method ``assertRegexpMatches()`` has been renamed to :meth:`." +"assertRegex`." msgstr "" -#: ../../library/unittest.rst:1296 msgid ":meth:`.assertNotRegex`." msgstr "" -#: ../../library/unittest.rst:1302 msgid "" "Test that sequence *first* contains the same elements as *second*, " "regardless of their order. When they don't, an error message listing the " "differences between the sequences will be generated." msgstr "" -#: ../../library/unittest.rst:1306 msgid "" "Duplicate elements are *not* ignored when comparing *first* and *second*. It " "verifies whether each element has the same count in both sequences. " @@ -1963,23 +1618,19 @@ msgid "" "but works with sequences of unhashable objects as well." msgstr "" -#: ../../library/unittest.rst:1318 msgid "" "Test that the Unicode or byte string *s* starts (or does not start) with a " "*prefix*. *prefix* can also be a tuple of strings to try." msgstr "" -#: ../../library/unittest.rst:1328 msgid "" "Test that the Unicode or byte string *s* ends (or does not end) with a " "*suffix*. *suffix* can also be a tuple of strings to try." msgstr "" -#: ../../library/unittest.rst:1338 msgid "Test that the object *obj* has (or has not) an attribute *name*." msgstr "" -#: ../../library/unittest.rst:1345 msgid "" "The :meth:`assertEqual` method dispatches the equality check for objects of " "the same type to different type-specific methods. These methods are already " @@ -1987,77 +1638,61 @@ msgid "" "register new methods using :meth:`addTypeEqualityFunc`:" msgstr "" -#: ../../library/unittest.rst:1352 msgid "" "Registers a type-specific method called by :meth:`assertEqual` to check if " "two objects of exactly the same *typeobj* (not subclasses) compare equal. " "*function* must take two positional arguments and a third msg=None keyword " -"argument just as :meth:`assertEqual` does. It must " -"raise :data:`self.failureException(msg) ` when inequality " -"between the first two parameters is detected -- possibly providing useful " -"information and explaining the inequalities in details in the error message." +"argument just as :meth:`assertEqual` does. It must raise :data:`self." +"failureException(msg) ` when inequality between the first " +"two parameters is detected -- possibly providing useful information and " +"explaining the inequalities in details in the error message." msgstr "" -#: ../../library/unittest.rst:1363 msgid "" -"The list of type-specific methods automatically used " -"by :meth:`~TestCase.assertEqual` are summarized in the following table. " -"Note that it's usually not necessary to invoke these methods directly." +"The list of type-specific methods automatically used by :meth:`~TestCase." +"assertEqual` are summarized in the following table. Note that it's usually " +"not necessary to invoke these methods directly." msgstr "" -#: ../../library/unittest.rst:1368 msgid "Used to compare" msgstr "" -#: ../../library/unittest.rst:1370 msgid ":meth:`assertMultiLineEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1370 msgid "strings" msgstr "" -#: ../../library/unittest.rst:1373 msgid ":meth:`assertSequenceEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1373 msgid "sequences" msgstr "" -#: ../../library/unittest.rst:1376 msgid ":meth:`assertListEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1376 msgid "lists" msgstr "" -#: ../../library/unittest.rst:1379 msgid ":meth:`assertTupleEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1379 msgid "tuples" msgstr "" -#: ../../library/unittest.rst:1382 msgid ":meth:`assertSetEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1382 msgid "sets or frozensets" msgstr "" -#: ../../library/unittest.rst:1385 msgid ":meth:`assertDictEqual(a, b) `" msgstr "" -#: ../../library/unittest.rst:1385 msgid "dicts" msgstr "" -#: ../../library/unittest.rst:1393 msgid "" "Test that the multiline string *first* is equal to the string *second*. When " "not equal a diff of the two strings highlighting the differences will be " @@ -2065,7 +1700,6 @@ msgid "" "strings with :meth:`assertEqual`." msgstr "" -#: ../../library/unittest.rst:1403 msgid "" "Tests that two sequences are equal. If a *seq_type* is supplied, both " "*first* and *second* must be instances of *seq_type* or a failure will be " @@ -2073,13 +1707,11 @@ msgid "" "shows the difference between the two." msgstr "" -#: ../../library/unittest.rst:1408 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." msgstr "" -#: ../../library/unittest.rst:1418 msgid "" "Tests that two lists or tuples are equal. If not, an error message is " "constructed that shows only the differences between the two. An error is " @@ -2087,47 +1719,40 @@ msgid "" "are used by default when comparing lists or tuples with :meth:`assertEqual`." msgstr "" -#: ../../library/unittest.rst:1429 msgid "" "Tests that two sets are equal. If not, an error message is constructed that " "lists the differences between the sets. This method is used by default when " "comparing sets or frozensets with :meth:`assertEqual`." msgstr "" -#: ../../library/unittest.rst:1433 msgid "" -"Fails if either of *first* or *second* does not have " -"a :meth:`set.difference` method." +"Fails if either of *first* or *second* does not have a :meth:`set." +"difference` method." msgstr "" -#: ../../library/unittest.rst:1441 msgid "" "Test that two dictionaries are equal. If not, an error message is " "constructed that shows the differences in the dictionaries. This method will " "be used by default to compare dictionaries in calls to :meth:`assertEqual`." msgstr "" -#: ../../library/unittest.rst:1452 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" -#: ../../library/unittest.rst:1457 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." msgstr "" -#: ../../library/unittest.rst:1463 msgid "" "This class attribute gives the exception raised by the test method. If a " "test framework needs to use a specialized exception, possibly to carry " "additional information, it must subclass this exception in order to \"play " -"fair\" with the framework. The initial value of this attribute " -"is :exc:`AssertionError`." +"fair\" with the framework. The initial value of this attribute is :exc:" +"`AssertionError`." msgstr "" -#: ../../library/unittest.rst:1472 msgid "" "This class attribute determines what happens when a custom failure message " "is passed as the msg argument to an assertXYY call that fails. ``True`` is " @@ -2136,80 +1761,68 @@ msgid "" "replaces the standard message." msgstr "" -#: ../../library/unittest.rst:1478 msgid "" "The class setting can be overridden in individual test methods by assigning " "an instance attribute, self.longMessage, to ``True`` or ``False`` before " "calling the assert methods." msgstr "" -#: ../../library/unittest.rst:1482 msgid "The class setting gets reset before each test call." msgstr "" -#: ../../library/unittest.rst:1489 msgid "" "This attribute controls the maximum length of diffs output by assert methods " "that report diffs on failure. It defaults to 80*8 characters. Assert methods " "affected by this attribute are :meth:`assertSequenceEqual` (including all " -"the sequence comparison methods that delegate to " -"it), :meth:`assertDictEqual` and :meth:`assertMultiLineEqual`." +"the sequence comparison methods that delegate to it), :meth:" +"`assertDictEqual` and :meth:`assertMultiLineEqual`." msgstr "" -#: ../../library/unittest.rst:1496 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." msgstr "" -#: ../../library/unittest.rst:1502 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" msgstr "" -#: ../../library/unittest.rst:1508 msgid "" -"Return the number of tests represented by this test object. " -"For :class:`TestCase` instances, this will always be ``1``." +"Return the number of tests represented by this test object. For :class:" +"`TestCase` instances, this will always be ``1``." msgstr "" -#: ../../library/unittest.rst:1514 msgid "" "Return an instance of the test result class that should be used for this " "test case class (if no other result instance is provided to the :meth:`run` " "method)." msgstr "" -#: ../../library/unittest.rst:1518 msgid "" -"For :class:`TestCase` instances, this will always be an instance " -"of :class:`TestResult`; subclasses of :class:`TestCase` should override this " -"as necessary." +"For :class:`TestCase` instances, this will always be an instance of :class:" +"`TestResult`; subclasses of :class:`TestCase` should override this as " +"necessary." msgstr "" -#: ../../library/unittest.rst:1525 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." msgstr "" -#: ../../library/unittest.rst:1531 msgid "" "Returns a description of the test, or ``None`` if no description has been " "provided. The default implementation of this method returns the first line " "of the test method's docstring, if available, or ``None``." msgstr "" -#: ../../library/unittest.rst:1536 msgid "" "In 3.1 this was changed to add the test name to the short description even " "in the presence of a docstring. This caused compatibility issues with " -"unittest extensions and adding the test name was moved to " -"the :class:`TextTestResult` in Python 3.2." +"unittest extensions and adding the test name was moved to the :class:" +"`TextTestResult` in Python 3.2." msgstr "" -#: ../../library/unittest.rst:1545 msgid "" "Add a function to be called after :meth:`tearDown` to cleanup resources used " "during the test. Functions will be called in reverse order to the order they " @@ -2218,40 +1831,33 @@ msgid "" "added." msgstr "" -#: ../../library/unittest.rst:1551 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." msgstr "" -#: ../../library/unittest.rst:1559 msgid "" -"Enter the supplied :term:`context manager`. If successful, also add " -"its :meth:`~object.__exit__` method as a cleanup function " -"by :meth:`addCleanup` and return the result of the :meth:`~object.__enter__` " -"method." +"Enter the supplied :term:`context manager`. If successful, also add its :" +"meth:`~object.__exit__` method as a cleanup function by :meth:`addCleanup` " +"and return the result of the :meth:`~object.__enter__` method." msgstr "" -#: ../../library/unittest.rst:1569 msgid "" -"This method is called unconditionally after :meth:`tearDown`, or " -"after :meth:`setUp` if :meth:`setUp` raises an exception." +"This method is called unconditionally after :meth:`tearDown`, or after :meth:" +"`setUp` if :meth:`setUp` raises an exception." msgstr "" -#: ../../library/unittest.rst:1572 msgid "" -"It is responsible for calling all the cleanup functions added " -"by :meth:`addCleanup`. If you need cleanup functions to be called *prior* " -"to :meth:`tearDown` then you can call :meth:`doCleanups` yourself." +"It is responsible for calling all the cleanup functions added by :meth:" +"`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" +"`tearDown` then you can call :meth:`doCleanups` yourself." msgstr "" -#: ../../library/unittest.rst:1577 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." msgstr "" -#: ../../library/unittest.rst:1585 msgid "" "Add a function to be called after :meth:`tearDownClass` to cleanup resources " "used during the test class. Functions will be called in reverse order to the " @@ -2260,62 +1866,52 @@ msgid "" "when they are added." msgstr "" -#: ../../library/unittest.rst:1591 msgid "" "If :meth:`setUpClass` fails, meaning that :meth:`tearDownClass` is not " "called, then any cleanup functions added will still be called." msgstr "" -#: ../../library/unittest.rst:1599 msgid "" -"Enter the supplied :term:`context manager`. If successful, also add " -"its :meth:`~object.__exit__` method as a cleanup function " -"by :meth:`addClassCleanup` and return the result of " -"the :meth:`~object.__enter__` method." +"Enter the supplied :term:`context manager`. If successful, also add its :" +"meth:`~object.__exit__` method as a cleanup function by :meth:" +"`addClassCleanup` and return the result of the :meth:`~object.__enter__` " +"method." msgstr "" -#: ../../library/unittest.rst:1609 msgid "" -"This method is called unconditionally after :meth:`tearDownClass`, or " -"after :meth:`setUpClass` if :meth:`setUpClass` raises an exception." +"This method is called unconditionally after :meth:`tearDownClass`, or after :" +"meth:`setUpClass` if :meth:`setUpClass` raises an exception." msgstr "" -#: ../../library/unittest.rst:1612 msgid "" -"It is responsible for calling all the cleanup functions added " -"by :meth:`addClassCleanup`. If you need cleanup functions to be called " -"*prior* to :meth:`tearDownClass` then you can call :meth:`doClassCleanups` " -"yourself." +"It is responsible for calling all the cleanup functions added by :meth:" +"`addClassCleanup`. If you need cleanup functions to be called *prior* to :" +"meth:`tearDownClass` then you can call :meth:`doClassCleanups` yourself." msgstr "" -#: ../../library/unittest.rst:1617 msgid "" ":meth:`doClassCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." msgstr "" -#: ../../library/unittest.rst:1625 msgid "" "This class provides an API similar to :class:`TestCase` and also accepts " "coroutines as test functions." msgstr "" -#: ../../library/unittest.rst:1632 msgid "" "The *loop_factory* passed to :class:`asyncio.Runner`. Override in subclasses " "with :class:`asyncio.EventLoop` to avoid using the asyncio policy system." msgstr "" -#: ../../library/unittest.rst:1641 msgid "" -"Method called to prepare the test fixture. This is called " -"after :meth:`setUp`. This is called immediately before calling the test " -"method; other than :exc:`AssertionError` or :exc:`SkipTest`, any exception " -"raised by this method will be considered an error rather than a test " -"failure. The default implementation does nothing." +"Method called to prepare the test fixture. This is called after :meth:" +"`setUp`. This is called immediately before calling the test method; other " +"than :exc:`AssertionError` or :exc:`SkipTest`, any exception raised by this " +"method will be considered an error rather than a test failure. The default " +"implementation does nothing." msgstr "" -#: ../../library/unittest.rst:1650 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called before :meth:`tearDown`. This is called " @@ -2328,33 +1924,28 @@ msgid "" "the outcome of the test method. The default implementation does nothing." msgstr "" -#: ../../library/unittest.rst:1662 msgid "This method accepts a coroutine that can be used as a cleanup function." msgstr "" -#: ../../library/unittest.rst:1667 msgid "" "Enter the supplied :term:`asynchronous context manager`. If successful, " -"also add its :meth:`~object.__aexit__` method as a cleanup function " -"by :meth:`addAsyncCleanup` and return the result of " -"the :meth:`~object.__aenter__` method." +"also add its :meth:`~object.__aexit__` method as a cleanup function by :meth:" +"`addAsyncCleanup` and return the result of the :meth:`~object.__aenter__` " +"method." msgstr "" -#: ../../library/unittest.rst:1677 msgid "" -"Sets up a new event loop to run the test, collecting the result into " -"the :class:`TestResult` object passed as *result*. If *result* is omitted " -"or ``None``, a temporary result object is created (by calling " -"the :meth:`defaultTestResult` method) and used. The result object is " -"returned to :meth:`run`'s caller. At the end of the test all the tasks in " -"the event loop are cancelled." +"Sets up a new event loop to run the test, collecting the result into the :" +"class:`TestResult` object passed as *result*. If *result* is omitted or " +"``None``, a temporary result object is created (by calling the :meth:" +"`defaultTestResult` method) and used. The result object is returned to :meth:" +"`run`'s caller. At the end of the test all the tasks in the event loop are " +"cancelled." msgstr "" -#: ../../library/unittest.rst:1685 msgid "An example illustrating the order::" msgstr "" -#: ../../library/unittest.rst:1687 msgid "" "from unittest import IsolatedAsyncioTestCase\n" "\n" @@ -2373,8 +1964,8 @@ msgid "" "\n" " async def test_response(self):\n" " events.append(\"test_response\")\n" -" response = await self._async_connection.get(\"https://" -"example.com\")\n" +" response = await self._async_connection.get(\"https://example." +"com\")\n" " self.assertEqual(response.status_code, 200)\n" " self.addAsyncCleanup(self.on_cleanup)\n" "\n" @@ -2392,27 +1983,23 @@ msgid "" " unittest.main()" msgstr "" -#: ../../library/unittest.rst:1721 msgid "" "After running the test, ``events`` would contain ``[\"setUp\", " "\"asyncSetUp\", \"test_response\", \"asyncTearDown\", \"tearDown\", " "\"cleanup\"]``." msgstr "" -#: ../../library/unittest.rst:1726 msgid "" "This class implements the portion of the :class:`TestCase` interface which " "allows the test runner to drive the test, but does not provide the methods " "which test code can use to check and report errors. This is used to create " -"test cases using legacy test code, allowing it to be integrated into " -"a :mod:`unittest`-based test framework." +"test cases using legacy test code, allowing it to be integrated into a :mod:" +"`unittest`-based test framework." msgstr "" -#: ../../library/unittest.rst:1736 msgid "Grouping tests" msgstr "" -#: ../../library/unittest.rst:1740 msgid "" "This class represents an aggregation of individual test cases and test " "suites. The class presents the interface needed by the test runner to allow " @@ -2420,14 +2007,12 @@ msgid "" "is the same as iterating over the suite, running each test individually." msgstr "" -#: ../../library/unittest.rst:1745 msgid "" "If *tests* is given, it must be an iterable of individual test cases or " "other test suites that will be used to build the suite initially. Additional " "methods are provided to add test cases and suites to the collection later on." msgstr "" -#: ../../library/unittest.rst:1749 msgid "" ":class:`TestSuite` objects behave much like :class:`TestCase` objects, " "except they do not actually implement a test. Instead, they are used to " @@ -2436,48 +2021,39 @@ msgid "" "instances:" msgstr "" -#: ../../library/unittest.rst:1757 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." msgstr "" -#: ../../library/unittest.rst:1762 msgid "" -"Add all the tests from an iterable of :class:`TestCase` " -"and :class:`TestSuite` instances to this test suite." +"Add all the tests from an iterable of :class:`TestCase` and :class:" +"`TestSuite` instances to this test suite." msgstr "" -#: ../../library/unittest.rst:1765 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." msgstr "" -#: ../../library/unittest.rst:1768 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" -#: ../../library/unittest.rst:1773 msgid "" "Run the tests associated with this suite, collecting the result into the " -"test result object passed as *result*. Note that " -"unlike :meth:`TestCase.run`, :meth:`TestSuite.run` requires the result " -"object to be passed in." +"test result object passed as *result*. Note that unlike :meth:`TestCase." +"run`, :meth:`TestSuite.run` requires the result object to be passed in." msgstr "" -#: ../../library/unittest.rst:1781 msgid "" "Run the tests associated with this suite without collecting the result. This " "allows exceptions raised by the test to be propagated to the caller and can " "be used to support running tests under a debugger." msgstr "" -#: ../../library/unittest.rst:1788 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." msgstr "" -#: ../../library/unittest.rst:1794 msgid "" "Tests grouped by a :class:`TestSuite` are always accessed by iteration. " "Subclasses can lazily provide tests by overriding :meth:`!__iter__`. Note " @@ -2489,44 +2065,37 @@ msgid "" "overrides :meth:`TestSuite._removeTestAtIndex` to preserve test references." msgstr "" -#: ../../library/unittest.rst:1804 msgid "" "In earlier versions the :class:`TestSuite` accessed tests directly rather " "than through iteration, so overriding :meth:`!__iter__` wasn't sufficient " "for providing tests." msgstr "" -#: ../../library/unittest.rst:1809 msgid "" -"In earlier versions the :class:`TestSuite` held references to " -"each :class:`TestCase` after :meth:`TestSuite.run`. Subclasses can restore " -"that behavior by overriding :meth:`TestSuite._removeTestAtIndex`." +"In earlier versions the :class:`TestSuite` held references to each :class:" +"`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " +"by overriding :meth:`TestSuite._removeTestAtIndex`." msgstr "" -#: ../../library/unittest.rst:1814 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." msgstr "" -#: ../../library/unittest.rst:1819 msgid "Loading and running tests" msgstr "" -#: ../../library/unittest.rst:1823 msgid "" "The :class:`TestLoader` class is used to create test suites from classes and " "modules. Normally, there is no need to create an instance of this class; " -"the :mod:`unittest` module provides an instance that can be shared " -"as :data:`unittest.defaultTestLoader`. Using a subclass or instance, " -"however, allows customization of some configurable properties." +"the :mod:`unittest` module provides an instance that can be shared as :data:" +"`unittest.defaultTestLoader`. Using a subclass or instance, however, allows " +"customization of some configurable properties." msgstr "" -#: ../../library/unittest.rst:1829 msgid ":class:`TestLoader` objects have the following attributes:" msgstr "" -#: ../../library/unittest.rst:1834 msgid "" "A list of the non-fatal errors encountered while loading tests. Not reset by " "the loader at any point. Fatal errors are signalled by the relevant method " @@ -2534,33 +2103,28 @@ msgid "" "synthetic test that will raise the original error when run." msgstr "" -#: ../../library/unittest.rst:1843 msgid ":class:`TestLoader` objects have the following methods:" msgstr "" -#: ../../library/unittest.rst:1848 msgid "" -"Return a suite of all test cases contained in the :class:`TestCase`\\ " -"-derived :class:`testCaseClass`." +"Return a suite of all test cases contained in the :class:`TestCase`\\ -" +"derived :class:`testCaseClass`." msgstr "" -#: ../../library/unittest.rst:1851 msgid "" -"A test case instance is created for each method named " -"by :meth:`getTestCaseNames`. By default these are the method names beginning " -"with ``test``. If :meth:`getTestCaseNames` returns no methods, but " -"the :meth:`runTest` method is implemented, a single test case is created for " -"that method instead." +"A test case instance is created for each method named by :meth:" +"`getTestCaseNames`. By default these are the method names beginning with " +"``test``. If :meth:`getTestCaseNames` returns no methods, but the :meth:" +"`runTest` method is implemented, a single test case is created for that " +"method instead." msgstr "" -#: ../../library/unittest.rst:1860 msgid "" "Return a suite of all test cases contained in the given module. This method " "searches *module* for classes derived from :class:`TestCase` and creates an " "instance of the class for each test method defined for the class." msgstr "" -#: ../../library/unittest.rst:1867 msgid "" "While using a hierarchy of :class:`TestCase`\\ -derived classes can be " "convenient in sharing fixtures and helper functions, defining test methods " @@ -2569,7 +2133,6 @@ msgid "" "fixtures are different and defined in subclasses." msgstr "" -#: ../../library/unittest.rst:1873 msgid "" "If a module provides a ``load_tests`` function it will be called to load the " "tests. This allows modules to customize test loading. This is the " @@ -2577,72 +2140,61 @@ msgid "" "argument to ``load_tests``." msgstr "" -#: ../../library/unittest.rst:1878 msgid "Support for ``load_tests`` added." msgstr "" -#: ../../library/unittest.rst:1881 msgid "Support for a keyword-only argument *pattern* has been added." msgstr "" -#: ../../library/unittest.rst:1884 msgid "" "The undocumented and unofficial *use_load_tests* parameter has been removed." msgstr "" -#: ../../library/unittest.rst:1891 msgid "Return a suite of all test cases given a string specifier." msgstr "" -#: ../../library/unittest.rst:1893 msgid "" "The specifier *name* is a \"dotted name\" that may resolve either to a " -"module, a test case class, a test method within a test case class, " -"a :class:`TestSuite` instance, or a callable object which returns " -"a :class:`TestCase` or :class:`TestSuite` instance. These checks are " -"applied in the order listed here; that is, a method on a possible test case " -"class will be picked up as \"a test method within a test case class\", " -"rather than \"a callable object\"." +"module, a test case class, a test method within a test case class, a :class:" +"`TestSuite` instance, or a callable object which returns a :class:`TestCase` " +"or :class:`TestSuite` instance. These checks are applied in the order " +"listed here; that is, a method on a possible test case class will be picked " +"up as \"a test method within a test case class\", rather than \"a callable " +"object\"." msgstr "" -#: ../../library/unittest.rst:1901 msgid "" -"For example, if you have a module :mod:`SampleTests` containing " -"a :class:`TestCase`\\ -derived class :class:`SampleTestCase` with three test " -"methods (:meth:`test_one`, :meth:`test_two`, and :meth:`test_three`), the " -"specifier ``'SampleTests.SampleTestCase'`` would cause this method to return " -"a suite which will run all three test methods. Using the specifier " -"``'SampleTests.SampleTestCase.test_two'`` would cause it to return a test " -"suite which will run only the :meth:`test_two` test method. The specifier " -"can refer to modules and packages which have not been imported; they will be " -"imported as a side-effect." +"For example, if you have a module :mod:`SampleTests` containing a :class:" +"`TestCase`\\ -derived class :class:`SampleTestCase` with three test methods " +"(:meth:`test_one`, :meth:`test_two`, and :meth:`test_three`), the specifier " +"``'SampleTests.SampleTestCase'`` would cause this method to return a suite " +"which will run all three test methods. Using the specifier ``'SampleTests." +"SampleTestCase.test_two'`` would cause it to return a test suite which will " +"run only the :meth:`test_two` test method. The specifier can refer to " +"modules and packages which have not been imported; they will be imported as " +"a side-effect." msgstr "" -#: ../../library/unittest.rst:1911 msgid "The method optionally resolves *name* relative to the given *module*." msgstr "" -#: ../../library/unittest.rst:1913 msgid "" "If an :exc:`ImportError` or :exc:`AttributeError` occurs while traversing " "*name* then a synthetic test that raises that error when run will be " "returned. These errors are included in the errors accumulated by self.errors." msgstr "" -#: ../../library/unittest.rst:1922 msgid "" "Similar to :meth:`loadTestsFromName`, but takes a sequence of names rather " "than a single name. The return value is a test suite which supports all the " "tests defined for each name." msgstr "" -#: ../../library/unittest.rst:1929 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." msgstr "" -#: ../../library/unittest.rst:1935 msgid "" "Find all the test modules by recursing into subdirectories from the " "specified start directory, and return a TestSuite object containing them. " @@ -2651,14 +2203,12 @@ msgid "" "Python identifiers) will be loaded." msgstr "" -#: ../../library/unittest.rst:1941 msgid "" "All test modules must be importable from the top level of the project. If " "the start directory is not the top level directory then *top_level_dir* must " "be specified separately." msgstr "" -#: ../../library/unittest.rst:1945 msgid "" "If importing a module fails, for example due to a syntax error, then this " "will be recorded as a single error and discovery will continue. If the " @@ -2666,7 +2216,6 @@ msgid "" "as a skip instead of an error." msgstr "" -#: ../../library/unittest.rst:1950 msgid "" "If a package (a directory containing a file named :file:`__init__.py`) is " "found, the package will be checked for a ``load_tests`` function. If this " @@ -2676,107 +2225,88 @@ msgid "" "itself calls ``loader.discover``." msgstr "" -#: ../../library/unittest.rst:1958 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." msgstr "" -#: ../../library/unittest.rst:1962 msgid "" "The pattern is deliberately not stored as a loader attribute so that " "packages can continue discovery themselves." msgstr "" -#: ../../library/unittest.rst:1965 msgid "" "*top_level_dir* is stored internally, and used as a default to any nested " "calls to ``discover()``. That is, if a package's ``load_tests`` calls " "``loader.discover()``, it does not need to pass this argument." msgstr "" -#: ../../library/unittest.rst:1969 msgid "*start_dir* can be a dotted module name as well as a directory." msgstr "" -#: ../../library/unittest.rst:1973 msgid "" "Modules that raise :exc:`SkipTest` on import are recorded as skips, not " "errors." msgstr "" -#: ../../library/unittest.rst:1977 msgid "*start_dir* can be a :term:`namespace packages `." msgstr "" -#: ../../library/unittest.rst:1979 msgid "" "Paths are sorted before being imported so that execution order is the same " "even if the underlying file system's ordering is not dependent on file name." msgstr "" -#: ../../library/unittest.rst:1983 msgid "" "Found packages are now checked for ``load_tests`` regardless of whether " "their path matches *pattern*, because it is impossible for a package name to " "match the default pattern." msgstr "" -#: ../../library/unittest.rst:1988 msgid "" "*start_dir* can not be a :term:`namespace packages `. It " "has been broken since Python 3.7, and Python 3.11 officially removes it." msgstr "" -#: ../../library/unittest.rst:1992 msgid "*top_level_dir* is only stored for the duration of *discover* call." msgstr "" -#: ../../library/unittest.rst:1995 msgid "*start_dir* can once again be a :term:`namespace package`." msgstr "" -#: ../../library/unittest.rst:1998 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" msgstr "" -#: ../../library/unittest.rst:2004 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." msgstr "" -#: ../../library/unittest.rst:2007 msgid "" "This affects :meth:`getTestCaseNames` and all the ``loadTestsFrom*`` methods." msgstr "" -#: ../../library/unittest.rst:2013 msgid "" -"Function to be used to compare method names when sorting them " -"in :meth:`getTestCaseNames` and all the ``loadTestsFrom*`` methods." +"Function to be used to compare method names when sorting them in :meth:" +"`getTestCaseNames` and all the ``loadTestsFrom*`` methods." msgstr "" -#: ../../library/unittest.rst:2019 msgid "" "Callable object that constructs a test suite from a list of tests. No " -"methods on the resulting object are needed. The default value is " -"the :class:`TestSuite` class." +"methods on the resulting object are needed. The default value is the :class:" +"`TestSuite` class." msgstr "" -#: ../../library/unittest.rst:2023 ../../library/unittest.rst:2036 msgid "This affects all the ``loadTestsFrom*`` methods." msgstr "" -#: ../../library/unittest.rst:2027 msgid "" "List of Unix shell-style wildcard test name patterns that test methods have " "to match to be included in test suites (see ``-k`` option)." msgstr "" -#: ../../library/unittest.rst:2030 msgid "" "If this attribute is not ``None`` (the default), all test methods to be " "included in test suites must match one of the patterns in this list. Note " @@ -2785,83 +2315,70 @@ msgid "" "have to be converted using ``*`` wildcards." msgstr "" -#: ../../library/unittest.rst:2043 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." msgstr "" -#: ../../library/unittest.rst:2046 msgid "" -"A :class:`TestResult` object stores the results of a set of tests. " -"The :class:`TestCase` and :class:`TestSuite` classes ensure that results are " +"A :class:`TestResult` object stores the results of a set of tests. The :" +"class:`TestCase` and :class:`TestSuite` classes ensure that results are " "properly recorded; test authors do not need to worry about recording the " "outcome of tests." msgstr "" -#: ../../library/unittest.rst:2051 msgid "" -"Testing frameworks built on top of :mod:`unittest` may want access to " -"the :class:`TestResult` object generated by running a set of tests for " -"reporting purposes; a :class:`TestResult` instance is returned by " -"the :meth:`TestRunner.run` method for this purpose." +"Testing frameworks built on top of :mod:`unittest` may want access to the :" +"class:`TestResult` object generated by running a set of tests for reporting " +"purposes; a :class:`TestResult` instance is returned by the :meth:" +"`TestRunner.run` method for this purpose." msgstr "" -#: ../../library/unittest.rst:2056 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" msgstr "" -#: ../../library/unittest.rst:2062 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test which raised an " "unexpected exception." msgstr "" -#: ../../library/unittest.rst:2068 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test where a failure " "was explicitly signalled using the :ref:`assert\\* methods `." msgstr "" -#: ../../library/unittest.rst:2074 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." msgstr "" -#: ../../library/unittest.rst:2081 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents an expected failure or " "error of the test case." msgstr "" -#: ../../library/unittest.rst:2087 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." msgstr "" -#: ../../library/unittest.rst:2092 msgid "" "A list containing 2-tuples of test case names and floats representing the " "elapsed time of each test which was run." msgstr "" -#: ../../library/unittest.rst:2099 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" -#: ../../library/unittest.rst:2103 msgid "The total number of tests run so far." msgstr "" -#: ../../library/unittest.rst:2107 msgid "" "If set to true, ``sys.stdout`` and ``sys.stderr`` will be buffered in " "between :meth:`startTest` and :meth:`stopTest` being called. Collected " @@ -2870,37 +2387,31 @@ msgid "" "error message." msgstr "" -#: ../../library/unittest.rst:2116 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." msgstr "" -#: ../../library/unittest.rst:2123 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" -#: ../../library/unittest.rst:2129 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." msgstr "" -#: ../../library/unittest.rst:2132 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." msgstr "" -#: ../../library/unittest.rst:2138 msgid "" "This method can be called to signal that the set of tests being run should " -"be aborted by setting the :attr:`shouldStop` attribute to " -"``True``. :class:`TestRunner` objects should respect this flag and return " -"without running any additional tests." +"be aborted by setting the :attr:`shouldStop` attribute to ``True``. :class:" +"`TestRunner` objects should respect this flag and return without running any " +"additional tests." msgstr "" -#: ../../library/unittest.rst:2143 msgid "" "For example, this feature is used by the :class:`TextTestRunner` class to " "stop the test framework when the user signals an interrupt from the " @@ -2908,7 +2419,6 @@ msgid "" "implementations can use this in a similar manner." msgstr "" -#: ../../library/unittest.rst:2148 msgid "" "The following methods of the :class:`TestResult` class are used to maintain " "the internal data structures, and may be extended in subclasses to support " @@ -2916,141 +2426,117 @@ msgid "" "tools which support interactive reporting while tests are being run." msgstr "" -#: ../../library/unittest.rst:2156 msgid "Called when the test case *test* is about to be run." msgstr "" -#: ../../library/unittest.rst:2160 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." msgstr "" -#: ../../library/unittest.rst:2165 msgid "Called once before any tests are executed." msgstr "" -#: ../../library/unittest.rst:2172 msgid "Called once after all tests are executed." msgstr "" -#: ../../library/unittest.rst:2179 msgid "" "Called when the test case *test* raises an unexpected exception. *err* is a " "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " "traceback)``." msgstr "" -#: ../../library/unittest.rst:2183 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" -#: ../../library/unittest.rst:2190 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." msgstr "" -#: ../../library/unittest.rst:2193 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" -#: ../../library/unittest.rst:2200 msgid "Called when the test case *test* succeeds." msgstr "" -#: ../../library/unittest.rst:2202 msgid "The default implementation does nothing." msgstr "" -#: ../../library/unittest.rst:2207 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." msgstr "" -#: ../../library/unittest.rst:2210 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." msgstr "" -#: ../../library/unittest.rst:2216 msgid "" -"Called when the test case *test* fails or errors, but was marked with " -"the :func:`expectedFailure` decorator." +"Called when the test case *test* fails or errors, but was marked with the :" +"func:`expectedFailure` decorator." msgstr "" -#: ../../library/unittest.rst:2219 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " "formatted traceback derived from *err*." msgstr "" -#: ../../library/unittest.rst:2226 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." msgstr "" -#: ../../library/unittest.rst:2229 msgid "" -"The default implementation appends the test to the " -"instance's :attr:`unexpectedSuccesses` attribute." +"The default implementation appends the test to the instance's :attr:" +"`unexpectedSuccesses` attribute." msgstr "" -#: ../../library/unittest.rst:2235 msgid "" "Called when a subtest finishes. *test* is the test case corresponding to " "the test method. *subtest* is a custom :class:`TestCase` instance " "describing the subtest." msgstr "" -#: ../../library/unittest.rst:2239 msgid "" "If *outcome* is :const:`None`, the subtest succeeded. Otherwise, it failed " -"with an exception where *outcome* is a tuple of the form returned " -"by :func:`sys.exc_info`: ``(type, value, traceback)``." +"with an exception where *outcome* is a tuple of the form returned by :func:" +"`sys.exc_info`: ``(type, value, traceback)``." msgstr "" -#: ../../library/unittest.rst:2243 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." msgstr "" -#: ../../library/unittest.rst:2250 msgid "" "Called when the test case finishes. *elapsed* is the time represented in " "seconds, and it includes the execution of cleanup functions." msgstr "" -#: ../../library/unittest.rst:2257 msgid "" -"A concrete implementation of :class:`TestResult` used by " -"the :class:`TextTestRunner`. Subclasses should accept ``**kwargs`` to ensure " +"A concrete implementation of :class:`TestResult` used by the :class:" +"`TextTestRunner`. Subclasses should accept ``**kwargs`` to ensure " "compatibility as the interface changes." msgstr "" -#: ../../library/unittest.rst:2263 msgid "Added the *durations* keyword parameter." msgstr "" -#: ../../library/unittest.rst:2268 msgid "" "Instance of the :class:`TestLoader` class intended to be shared. If no " "customization of the :class:`TestLoader` is needed, this instance can be " "used instead of repeatedly creating new instances." msgstr "" -#: ../../library/unittest.rst:2277 msgid "" "A basic test runner implementation that outputs results to a stream. If " "*stream* is ``None``, the default, :data:`sys.stderr` is used as the output " @@ -3061,42 +2547,35 @@ msgid "" "unittest." msgstr "" -#: ../../library/unittest.rst:2284 msgid "" -"By default this runner " -"shows :exc:`DeprecationWarning`, :exc:`PendingDeprecationWarning`, :exc:`ResourceWarning` " -"and :exc:`ImportWarning` even if they are :ref:`ignored by default `. This behavior can be overridden using Python's :option:`!-Wd` " -"or :option:`!-Wa` options (see :ref:`Warning control `) " -"and leaving *warnings* to ``None``." +"By default this runner shows :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` " +"even if they are :ref:`ignored by default `. This behavior " +"can be overridden using Python's :option:`!-Wd` or :option:`!-Wa` options " +"(see :ref:`Warning control `) and leaving *warnings* to " +"``None``." msgstr "" -#: ../../library/unittest.rst:2292 msgid "Added the *warnings* parameter." msgstr "" -#: ../../library/unittest.rst:2295 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." msgstr "" -#: ../../library/unittest.rst:2299 msgid "Added the *tb_locals* parameter." msgstr "" -#: ../../library/unittest.rst:2302 msgid "Added the *durations* parameter." msgstr "" -#: ../../library/unittest.rst:2307 msgid "" "This method returns the instance of ``TestResult`` used by :meth:`run`. It " "is not intended to be called directly, but can be overridden in subclasses " "to provide a custom ``TestResult``." msgstr "" -#: ../../library/unittest.rst:2311 msgid "" "``_makeResult()`` instantiates the class or callable passed in the " "``TextTestRunner`` constructor as the ``resultclass`` argument. It defaults " @@ -3104,19 +2583,16 @@ msgid "" "class is instantiated with the following arguments::" msgstr "" -#: ../../library/unittest.rst:2316 msgid "stream, descriptions, verbosity" msgstr "" -#: ../../library/unittest.rst:2320 msgid "" "This method is the main public interface to the ``TextTestRunner``. This " -"method takes a :class:`TestSuite` or :class:`TestCase` instance. " -"A :class:`TestResult` is created by calling :func:`_makeResult` and the " -"test(s) are run and the results printed to stdout." +"method takes a :class:`TestSuite` or :class:`TestCase` instance. A :class:" +"`TestResult` is created by calling :func:`_makeResult` and the test(s) are " +"run and the results printed to stdout." msgstr "" -#: ../../library/unittest.rst:2331 msgid "" "A command-line program that loads a set of tests from *module* and runs " "them; this is primarily for making test modules conveniently executable. The " @@ -3124,25 +2600,21 @@ msgid "" "of a test script::" msgstr "" -#: ../../library/unittest.rst:2336 msgid "" "if __name__ == '__main__':\n" " unittest.main()" msgstr "" -#: ../../library/unittest.rst:2339 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" msgstr "" -#: ../../library/unittest.rst:2342 msgid "" "if __name__ == '__main__':\n" " unittest.main(verbosity=2)" msgstr "" -#: ../../library/unittest.rst:2345 msgid "" "The *defaultTest* argument is either the name of a single test or an " "iterable of test names to run if no test names are specified via *argv*. If " @@ -3150,14 +2622,12 @@ msgid "" "tests found in *module* are run." msgstr "" -#: ../../library/unittest.rst:2350 msgid "" "The *argv* argument can be a list of options passed to the program, with the " "first element being the program name. If not specified or ``None``, the " "values of :data:`sys.argv` are used." msgstr "" -#: ../../library/unittest.rst:2354 msgid "" "The *testRunner* argument can either be a test runner class or an already " "created instance of it. By default ``main`` calls :func:`sys.exit` with an " @@ -3165,32 +2635,27 @@ msgid "" "code of 5 indicates that no tests were run or skipped." msgstr "" -#: ../../library/unittest.rst:2359 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." msgstr "" -#: ../../library/unittest.rst:2362 msgid "" "``main`` supports being used from the interactive interpreter by passing in " "the argument ``exit=False``. This displays the result on standard output " "without calling :func:`sys.exit`::" msgstr "" -#: ../../library/unittest.rst:2366 msgid "" ">>> from unittest import main\n" ">>> main(module='test_module', exit=False)" msgstr "" -#: ../../library/unittest.rst:2369 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." msgstr "" -#: ../../library/unittest.rst:2372 msgid "" "The *warnings* argument specifies the :ref:`warning filter ` " "that should be used while running the tests. If it's not specified, it will " @@ -3199,60 +2664,49 @@ msgid "" "to ``'default'``." msgstr "" -#: ../../library/unittest.rst:2378 msgid "" "Calling ``main`` returns an object with the ``result`` attribute that " "contains the result of the tests run as a :class:`unittest.TestResult`." msgstr "" -#: ../../library/unittest.rst:2381 msgid "The *exit* parameter was added." msgstr "" -#: ../../library/unittest.rst:2384 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." msgstr "" -#: ../../library/unittest.rst:2388 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." msgstr "" -#: ../../library/unittest.rst:2396 msgid "load_tests Protocol" msgstr "" -#: ../../library/unittest.rst:2400 msgid "" "Modules or packages can customize how tests are loaded from them during " "normal test runs or test discovery by implementing a function called " "``load_tests``." msgstr "" -#: ../../library/unittest.rst:2403 msgid "" -"If a test module defines ``load_tests`` it will be called " -"by :meth:`TestLoader.loadTestsFromModule` with the following arguments::" +"If a test module defines ``load_tests`` it will be called by :meth:" +"`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" -#: ../../library/unittest.rst:2406 ../../library/unittest.rst:2438 msgid "load_tests(loader, standard_tests, pattern)" msgstr "" -#: ../../library/unittest.rst:2408 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." msgstr "" -#: ../../library/unittest.rst:2411 msgid "It should return a :class:`TestSuite`." msgstr "" -#: ../../library/unittest.rst:2413 msgid "" "*loader* is the instance of :class:`TestLoader` doing the loading. " "*standard_tests* are the tests that would be loaded by default from the " @@ -3261,13 +2715,11 @@ msgid "" "packages as part of test discovery." msgstr "" -#: ../../library/unittest.rst:2419 msgid "" -"A typical ``load_tests`` function that loads tests from a specific set " -"of :class:`TestCase` classes may look like::" +"A typical ``load_tests`` function that loads tests from a specific set of :" +"class:`TestCase` classes may look like::" msgstr "" -#: ../../library/unittest.rst:2422 msgid "" "test_cases = (TestCase1, TestCase2, TestCase3)\n" "\n" @@ -3279,32 +2731,27 @@ msgid "" " return suite" msgstr "" -#: ../../library/unittest.rst:2431 msgid "" "If discovery is started in a directory containing a package, either from the " -"command line or by calling :meth:`TestLoader.discover`, then the " -"package :file:`__init__.py` will be checked for ``load_tests``. If that " -"function does not exist, discovery will recurse into the package as though " -"it were just another directory. Otherwise, discovery of the package's tests " -"will be left up to ``load_tests`` which is called with the following " -"arguments::" +"command line or by calling :meth:`TestLoader.discover`, then the package :" +"file:`__init__.py` will be checked for ``load_tests``. If that function " +"does not exist, discovery will recurse into the package as though it were " +"just another directory. Otherwise, discovery of the package's tests will be " +"left up to ``load_tests`` which is called with the following arguments::" msgstr "" -#: ../../library/unittest.rst:2440 msgid "" "This should return a :class:`TestSuite` representing all the tests from the " -"package. (``standard_tests`` will only contain tests collected " -"from :file:`__init__.py`.)" +"package. (``standard_tests`` will only contain tests collected from :file:" +"`__init__.py`.)" msgstr "" -#: ../../library/unittest.rst:2444 msgid "" "Because the pattern is passed into ``load_tests`` the package is free to " "continue (and potentially modify) test discovery. A 'do nothing' " "``load_tests`` function for a test package would look like::" msgstr "" -#: ../../library/unittest.rst:2448 msgid "" "def load_tests(loader, standard_tests, pattern):\n" " # top level directory cached on loader instance\n" @@ -3314,45 +2761,38 @@ msgid "" " return standard_tests" msgstr "" -#: ../../library/unittest.rst:2455 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." msgstr "" -#: ../../library/unittest.rst:2462 msgid "Class and Module Fixtures" msgstr "" -#: ../../library/unittest.rst:2464 msgid "" "Class and module level fixtures are implemented in :class:`TestSuite`. When " "the test suite encounters a test from a new class then :meth:`tearDownClass` " -"from the previous class (if there is one) is called, followed " -"by :meth:`setUpClass` from the new class." +"from the previous class (if there is one) is called, followed by :meth:" +"`setUpClass` from the new class." msgstr "" -#: ../../library/unittest.rst:2469 msgid "" "Similarly if a test is from a different module from the previous test then " "``tearDownModule`` from the previous module is run, followed by " "``setUpModule`` from the new module." msgstr "" -#: ../../library/unittest.rst:2473 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." msgstr "" -#: ../../library/unittest.rst:2476 msgid "" "Note that shared fixtures do not play well with [potential] features like " "test parallelization and they break test isolation. They should be used with " "care." msgstr "" -#: ../../library/unittest.rst:2479 msgid "" "The default ordering of tests created by the unittest test loaders is to " "group all tests from the same modules and classes together. This will lead " @@ -3362,14 +2802,12 @@ msgid "" "functions may be called multiple times in a single test run." msgstr "" -#: ../../library/unittest.rst:2486 msgid "" "Shared fixtures are not intended to work with suites with non-standard " "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " "support shared fixtures." msgstr "" -#: ../../library/unittest.rst:2490 msgid "" "If there are any exceptions raised during one of the shared fixture " "functions the test is reported as an error. Because there is no " @@ -3379,15 +2817,12 @@ msgid "" "matter, but if you are a framework author it may be relevant." msgstr "" -#: ../../library/unittest.rst:2499 msgid "setUpClass and tearDownClass" msgstr "" -#: ../../library/unittest.rst:2501 msgid "These must be implemented as class methods::" msgstr "" -#: ../../library/unittest.rst:2503 msgid "" "import unittest\n" "\n" @@ -3401,31 +2836,26 @@ msgid "" " cls._connection.destroy()" msgstr "" -#: ../../library/unittest.rst:2514 msgid "" "If you want the ``setUpClass`` and ``tearDownClass`` on base classes called " -"then you must call up to them yourself. The implementations " -"in :class:`TestCase` are empty." +"then you must call up to them yourself. The implementations in :class:" +"`TestCase` are empty." msgstr "" -#: ../../library/unittest.rst:2518 msgid "" "If an exception is raised during a ``setUpClass`` then the tests in the " "class are not run and the ``tearDownClass`` is not run. Skipped classes will " -"not have ``setUpClass`` or ``tearDownClass`` run. If the exception is " -"a :exc:`SkipTest` exception then the class will be reported as having been " -"skipped instead of as an error." +"not have ``setUpClass`` or ``tearDownClass`` run. If the exception is a :exc:" +"`SkipTest` exception then the class will be reported as having been skipped " +"instead of as an error." msgstr "" -#: ../../library/unittest.rst:2526 msgid "setUpModule and tearDownModule" msgstr "" -#: ../../library/unittest.rst:2528 msgid "These should be implemented as functions::" msgstr "" -#: ../../library/unittest.rst:2530 msgid "" "def setUpModule():\n" " createConnection()\n" @@ -3434,7 +2864,6 @@ msgid "" " closeConnection()" msgstr "" -#: ../../library/unittest.rst:2536 msgid "" "If an exception is raised in a ``setUpModule`` then none of the tests in the " "module will be run and the ``tearDownModule`` will not be run. If the " @@ -3442,60 +2871,50 @@ msgid "" "having been skipped instead of as an error." msgstr "" -#: ../../library/unittest.rst:2541 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" msgstr "" -#: ../../library/unittest.rst:2547 msgid "" "Add a function to be called after :func:`tearDownModule` to cleanup " "resources used during the test class. Functions will be called in reverse " "order to the order they are added (:abbr:`LIFO (last-in, first-out)`). They " -"are called with any arguments and keyword arguments passed " -"into :meth:`addModuleCleanup` when they are added." +"are called with any arguments and keyword arguments passed into :meth:" +"`addModuleCleanup` when they are added." msgstr "" -#: ../../library/unittest.rst:2553 msgid "" "If :meth:`setUpModule` fails, meaning that :func:`tearDownModule` is not " "called, then any cleanup functions added will still be called." msgstr "" -#: ../../library/unittest.rst:2561 msgid "" -"Enter the supplied :term:`context manager`. If successful, also add " -"its :meth:`~object.__exit__` method as a cleanup function " -"by :func:`addModuleCleanup` and return the result of " -"the :meth:`~object.__enter__` method." +"Enter the supplied :term:`context manager`. If successful, also add its :" +"meth:`~object.__exit__` method as a cleanup function by :func:" +"`addModuleCleanup` and return the result of the :meth:`~object.__enter__` " +"method." msgstr "" -#: ../../library/unittest.rst:2571 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." msgstr "" -#: ../../library/unittest.rst:2574 msgid "" -"It is responsible for calling all the cleanup functions added " -"by :func:`addModuleCleanup`. If you need cleanup functions to be called " -"*prior* to :func:`tearDownModule` then you can call :func:`doModuleCleanups` " -"yourself." +"It is responsible for calling all the cleanup functions added by :func:" +"`addModuleCleanup`. If you need cleanup functions to be called *prior* to :" +"func:`tearDownModule` then you can call :func:`doModuleCleanups` yourself." msgstr "" -#: ../../library/unittest.rst:2579 msgid "" ":func:`doModuleCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." msgstr "" -#: ../../library/unittest.rst:2586 msgid "Signal Handling" msgstr "" -#: ../../library/unittest.rst:2590 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main`, provide " @@ -3505,60 +2924,52 @@ msgid "" "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" -#: ../../library/unittest.rst:2597 msgid "" "The control-c handling signal handler attempts to remain compatible with " "code or tests that install their own :const:`signal.SIGINT` handler. If the " -"``unittest`` handler is called but *isn't* the " -"installed :const:`signal.SIGINT` handler, i.e. it has been replaced by the " -"system under test and delegated to, then it calls the default handler. This " -"will normally be the expected behavior by code that replaces an installed " -"handler and delegates to it. For individual tests that need ``unittest`` " -"control-c handling disabled the :func:`removeHandler` decorator can be used." +"``unittest`` handler is called but *isn't* the installed :const:`signal." +"SIGINT` handler, i.e. it has been replaced by the system under test and " +"delegated to, then it calls the default handler. This will normally be the " +"expected behavior by code that replaces an installed handler and delegates " +"to it. For individual tests that need ``unittest`` control-c handling " +"disabled the :func:`removeHandler` decorator can be used." msgstr "" -#: ../../library/unittest.rst:2606 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" -#: ../../library/unittest.rst:2611 msgid "" "Install the control-c handler. When a :const:`signal.SIGINT` is received " "(usually in response to the user pressing control-c) all registered results " "have :meth:`~TestResult.stop` called." msgstr "" -#: ../../library/unittest.rst:2618 msgid "" "Register a :class:`TestResult` object for control-c handling. Registering a " "result stores a weak reference to it, so it doesn't prevent the result from " "being garbage collected." msgstr "" -#: ../../library/unittest.rst:2622 msgid "" "Registering a :class:`TestResult` object has no side-effects if control-c " "handling is not enabled, so test frameworks can unconditionally register all " "results they create independently of whether or not handling is enabled." msgstr "" -#: ../../library/unittest.rst:2629 msgid "" -"Remove a registered result. Once a result has been removed " -"then :meth:`~TestResult.stop` will no longer be called on that result object " -"in response to a control-c." +"Remove a registered result. Once a result has been removed then :meth:" +"`~TestResult.stop` will no longer be called on that result object in " +"response to a control-c." msgstr "" -#: ../../library/unittest.rst:2636 msgid "" "When called without arguments this function removes the control-c handler if " "it has been installed. This function can also be used as a test decorator to " "temporarily remove the handler while the test is being executed::" msgstr "" -#: ../../library/unittest.rst:2640 msgid "" "@unittest.removeHandler\n" "def test_signal_handling(self):\n" diff --git a/library/unix.po b/library/unix.po index b304791..64d2fbd 100644 --- a/library/unix.po +++ b/library/unix.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/unix.rst:5 -msgid "Unix Specific Services" +msgid "Unix-specific services" msgstr "" -#: ../../library/unix.rst:7 msgid "" "The modules described in this chapter provide interfaces to features that " "are unique to the Unix operating system, or in some cases to some or many " diff --git a/library/urllib.error.po b/library/urllib.error.po index d979b3d..a4652d0 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,87 +18,71 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/urllib.error.rst:2 msgid ":mod:`!urllib.error` --- Exception classes raised by urllib.request" msgstr "" -#: ../../library/urllib.error.rst:10 msgid "**Source code:** :source:`Lib/urllib/error.py`" msgstr "" -#: ../../library/urllib.error.rst:14 msgid "" "The :mod:`urllib.error` module defines the exception classes for exceptions " -"raised by :mod:`urllib.request`. The base exception class " -"is :exc:`URLError`." +"raised by :mod:`urllib.request`. The base exception class is :exc:" +"`URLError`." msgstr "" -#: ../../library/urllib.error.rst:17 msgid "" "The following exceptions are raised by :mod:`urllib.error` as appropriate:" msgstr "" -#: ../../library/urllib.error.rst:21 msgid "" "The handlers raise this exception (or derived exceptions) when they run into " "a problem. It is a subclass of :exc:`OSError`." msgstr "" -#: ../../library/urllib.error.rst:26 msgid "" "The reason for this error. It can be a message string or another exception " "instance." msgstr "" -#: ../../library/urllib.error.rst:29 msgid "" ":exc:`URLError` used to be a subtype of :exc:`IOError`, which is now an " "alias of :exc:`OSError`." msgstr "" -#: ../../library/urllib.error.rst:36 msgid "" -"Though being an exception (a subclass of :exc:`URLError`), " -"an :exc:`HTTPError` can also function as a non-exceptional file-like return " -"value (the same thing that :func:`~urllib.request.urlopen` returns). This " -"is useful when handling exotic HTTP errors, such as requests for " -"authentication." +"Though being an exception (a subclass of :exc:`URLError`), an :exc:" +"`HTTPError` can also function as a non-exceptional file-like return value " +"(the same thing that :func:`~urllib.request.urlopen` returns). This is " +"useful when handling exotic HTTP errors, such as requests for authentication." msgstr "" -#: ../../library/urllib.error.rst:44 msgid "Contains the request URL. An alias for *filename* attribute." msgstr "" -#: ../../library/urllib.error.rst:49 msgid "" "An HTTP status code as defined in :rfc:`2616`. This numeric value " -"corresponds to a value found in the dictionary of codes as found " -"in :attr:`http.server.BaseHTTPRequestHandler.responses`." +"corresponds to a value found in the dictionary of codes as found in :attr:" +"`http.server.BaseHTTPRequestHandler.responses`." msgstr "" -#: ../../library/urllib.error.rst:55 msgid "" "This is usually a string explaining the reason for this error. An alias for " "*msg* attribute." msgstr "" -#: ../../library/urllib.error.rst:60 msgid "" -"The HTTP response headers for the HTTP request that caused " -"the :exc:`HTTPError`. An alias for *hdrs* attribute." +"The HTTP response headers for the HTTP request that caused the :exc:" +"`HTTPError`. An alias for *hdrs* attribute." msgstr "" -#: ../../library/urllib.error.rst:68 msgid "A file-like object where the HTTP error body can be read from." msgstr "" -#: ../../library/urllib.error.rst:72 msgid "" "This exception is raised when the :func:`~urllib.request.urlretrieve` " "function detects that the amount of the downloaded data is less than the " "expected amount (given by the *Content-Length* header)." msgstr "" -#: ../../library/urllib.error.rst:79 msgid "The downloaded (and supposedly truncated) data." msgstr "" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index 6e4ccdf..d1311f6 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/urllib.parse.rst:2 msgid ":mod:`!urllib.parse` --- Parse URLs into components" msgstr "" -#: ../../library/urllib.parse.rst:7 msgid "**Source code:** :source:`Lib/urllib/parse.py`" msgstr "" -#: ../../library/urllib.parse.rst:18 msgid "" "This module defines a standard interface to break Uniform Resource Locator " "(URL) strings up in components (addressing scheme, network location, path " @@ -38,7 +35,6 @@ msgid "" "\"relative URL\" to an absolute URL given a \"base URL.\"" msgstr "" -#: ../../library/urllib.parse.rst:23 msgid "" "The module has been designed to match the internet RFC on Relative Uniform " "Resource Locators. It supports the following URL schemes: ``file``, ``ftp``, " @@ -48,7 +44,6 @@ msgid "" "``svn``, ``svn+ssh``, ``telnet``, ``wais``, ``ws``, ``wss``." msgstr "" -#: ../../library/urllib.parse.rst:32 msgid "" "The inclusion of the ``itms-services`` URL scheme can prevent an app from " "passing Apple's App Store review process for the macOS and iOS App Stores. " @@ -57,14 +52,12 @@ msgid "" "with-app-store-compliance` option." msgstr "" -#: ../../library/urllib.parse.rst:38 msgid "" "The :mod:`urllib.parse` module defines functions that fall into two broad " "categories: URL parsing and URL quoting. These are covered in detail in the " "following sections." msgstr "" -#: ../../library/urllib.parse.rst:42 msgid "" "This module's functions use the deprecated term ``netloc`` (or ``net_loc``), " "which was introduced in :rfc:`1808`. However, this term has been obsoleted " @@ -72,28 +65,24 @@ msgid "" "The use of ``netloc`` is continued for backward compatibility." msgstr "" -#: ../../library/urllib.parse.rst:48 msgid "URL Parsing" msgstr "" -#: ../../library/urllib.parse.rst:50 msgid "" "The URL parsing functions focus on splitting a URL string into its " "components, or on combining URL components into a URL string." msgstr "" -#: ../../library/urllib.parse.rst:55 msgid "" "Parse a URL into six components, returning a 6-item :term:`named tuple`. " -"This corresponds to the general structure of a URL: ``scheme://netloc/" -"path;parameters?query#fragment``. Each tuple item is a string, possibly " -"empty. The components are not broken up into smaller parts (for example, the " +"This corresponds to the general structure of a URL: ``scheme://netloc/path;" +"parameters?query#fragment``. Each tuple item is a string, possibly empty. " +"The components are not broken up into smaller parts (for example, the " "network location is a single string), and % escapes are not expanded. The " "delimiters as shown above are not part of the result, except for a leading " "slash in the *path* component, which is retained if present. For example:" msgstr "" -#: ../../library/urllib.parse.rst:64 msgid "" ">>> from urllib.parse import urlparse\n" ">>> urlparse(\"scheme://netloc/path;parameters?query#fragment\")\n" @@ -118,19 +107,17 @@ msgid "" "'http://docs.python.org:80/3/library/urllib.parse.html?highlight=params'" msgstr "" -#: ../../library/urllib.parse.rst:88 msgid "" "Following the syntax specifications in :rfc:`1808`, urlparse recognizes a " "netloc only if it is properly introduced by '//'. Otherwise the input is " "presumed to be a relative URL and thus to start with a path component." msgstr "" -#: ../../library/urllib.parse.rst:93 msgid "" ">>> from urllib.parse import urlparse\n" ">>> urlparse('//www.cwi.nl:80/%7Eguido/Python.html')\n" -"ParseResult(scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/" -"Python.html',\n" +"ParseResult(scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python." +"html',\n" " params='', query='', fragment='')\n" ">>> urlparse('www.cwi.nl/%7Eguido/Python.html')\n" "ParseResult(scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',\n" @@ -140,7 +127,6 @@ msgid "" " query='', fragment='')" msgstr "" -#: ../../library/urllib.parse.rst:107 msgid "" "The *scheme* argument gives the default addressing scheme, to be used only " "if the URL does not specify one. It should be the same type (text or bytes) " @@ -148,7 +134,6 @@ msgid "" "is automatically converted to ``b''`` if appropriate." msgstr "" -#: ../../library/urllib.parse.rst:112 msgid "" "If the *allow_fragments* argument is false, fragment identifiers are not " "recognized. Instead, they are parsed as part of the path, parameters or " @@ -156,174 +141,121 @@ msgid "" "return value." msgstr "" -#: ../../library/urllib.parse.rst:117 msgid "" "The return value is a :term:`named tuple`, which means that its items can be " "accessed by index or as named attributes, which are:" msgstr "" -#: ../../library/urllib.parse.rst:121 ../../library/urllib.parse.rst:314 -#: ../../library/urllib.parse.rst:436 msgid "Attribute" msgstr "" -#: ../../library/urllib.parse.rst:121 ../../library/urllib.parse.rst:314 -#: ../../library/urllib.parse.rst:436 msgid "Index" msgstr "" -#: ../../library/urllib.parse.rst:121 ../../library/urllib.parse.rst:314 -#: ../../library/urllib.parse.rst:436 msgid "Value" msgstr "" -#: ../../library/urllib.parse.rst:121 ../../library/urllib.parse.rst:314 -#: ../../library/urllib.parse.rst:436 msgid "Value if not present" msgstr "" -#: ../../library/urllib.parse.rst:123 ../../library/urllib.parse.rst:316 msgid ":attr:`scheme`" msgstr "" -#: ../../library/urllib.parse.rst:123 ../../library/urllib.parse.rst:316 -#: ../../library/urllib.parse.rst:438 msgid "0" msgstr "" -#: ../../library/urllib.parse.rst:123 ../../library/urllib.parse.rst:316 msgid "URL scheme specifier" msgstr "" -#: ../../library/urllib.parse.rst:123 ../../library/urllib.parse.rst:316 msgid "*scheme* parameter" msgstr "" -#: ../../library/urllib.parse.rst:125 ../../library/urllib.parse.rst:318 msgid ":attr:`netloc`" msgstr "" -#: ../../library/urllib.parse.rst:125 ../../library/urllib.parse.rst:318 -#: ../../library/urllib.parse.rst:440 msgid "1" msgstr "1" -#: ../../library/urllib.parse.rst:125 ../../library/urllib.parse.rst:318 msgid "Network location part" msgstr "" -#: ../../library/urllib.parse.rst:125 ../../library/urllib.parse.rst:127 -#: ../../library/urllib.parse.rst:129 ../../library/urllib.parse.rst:132 -#: ../../library/urllib.parse.rst:134 ../../library/urllib.parse.rst:318 -#: ../../library/urllib.parse.rst:320 ../../library/urllib.parse.rst:322 -#: ../../library/urllib.parse.rst:324 ../../library/urllib.parse.rst:438 -#: ../../library/urllib.parse.rst:440 msgid "empty string" msgstr "" -#: ../../library/urllib.parse.rst:127 ../../library/urllib.parse.rst:320 msgid ":attr:`path`" msgstr "" -#: ../../library/urllib.parse.rst:127 ../../library/urllib.parse.rst:320 msgid "2" msgstr "2" -#: ../../library/urllib.parse.rst:127 ../../library/urllib.parse.rst:320 msgid "Hierarchical path" msgstr "" -#: ../../library/urllib.parse.rst:129 msgid ":attr:`params`" msgstr "" -#: ../../library/urllib.parse.rst:129 ../../library/urllib.parse.rst:322 msgid "3" msgstr "3" -#: ../../library/urllib.parse.rst:129 msgid "Parameters for last path element" msgstr "" -#: ../../library/urllib.parse.rst:132 ../../library/urllib.parse.rst:322 msgid ":attr:`query`" msgstr "" -#: ../../library/urllib.parse.rst:132 ../../library/urllib.parse.rst:324 msgid "4" msgstr "4" -#: ../../library/urllib.parse.rst:132 ../../library/urllib.parse.rst:322 msgid "Query component" msgstr "" -#: ../../library/urllib.parse.rst:134 ../../library/urllib.parse.rst:324 -#: ../../library/urllib.parse.rst:440 msgid ":attr:`fragment`" msgstr "" -#: ../../library/urllib.parse.rst:134 msgid "5" msgstr "" -#: ../../library/urllib.parse.rst:134 ../../library/urllib.parse.rst:324 -#: ../../library/urllib.parse.rst:440 msgid "Fragment identifier" msgstr "" -#: ../../library/urllib.parse.rst:136 ../../library/urllib.parse.rst:326 msgid ":attr:`username`" msgstr "" -#: ../../library/urllib.parse.rst:136 ../../library/urllib.parse.rst:326 msgid "User name" msgstr "" -#: ../../library/urllib.parse.rst:136 ../../library/urllib.parse.rst:138 -#: ../../library/urllib.parse.rst:140 ../../library/urllib.parse.rst:142 -#: ../../library/urllib.parse.rst:326 ../../library/urllib.parse.rst:328 -#: ../../library/urllib.parse.rst:330 ../../library/urllib.parse.rst:332 msgid ":const:`None`" msgstr "" -#: ../../library/urllib.parse.rst:138 ../../library/urllib.parse.rst:328 msgid ":attr:`password`" msgstr "" -#: ../../library/urllib.parse.rst:138 ../../library/urllib.parse.rst:328 msgid "Password" msgstr "" -#: ../../library/urllib.parse.rst:140 ../../library/urllib.parse.rst:330 msgid ":attr:`hostname`" msgstr "" -#: ../../library/urllib.parse.rst:140 ../../library/urllib.parse.rst:330 msgid "Host name (lower case)" msgstr "" -#: ../../library/urllib.parse.rst:142 ../../library/urllib.parse.rst:332 msgid ":attr:`port`" msgstr "" -#: ../../library/urllib.parse.rst:142 ../../library/urllib.parse.rst:332 msgid "Port number as integer, if present" msgstr "" -#: ../../library/urllib.parse.rst:146 ../../library/urllib.parse.rst:336 msgid "" "Reading the :attr:`port` attribute will raise a :exc:`ValueError` if an " "invalid port is specified in the URL. See section :ref:`urlparse-result-" "object` for more information on the result object." msgstr "" -#: ../../library/urllib.parse.rst:150 ../../library/urllib.parse.rst:340 msgid "" -"Unmatched square brackets in the :attr:`netloc` attribute will raise " -"a :exc:`ValueError`." +"Unmatched square brackets in the :attr:`netloc` attribute will raise a :exc:" +"`ValueError`." msgstr "" -#: ../../library/urllib.parse.rst:153 ../../library/urllib.parse.rst:343 msgid "" "Characters in the :attr:`netloc` attribute that decompose under NFKC " "normalization (as used by the IDNA encoding) into any of ``/``, ``?``, " @@ -331,66 +263,57 @@ msgid "" "decomposed before parsing, no error will be raised." msgstr "" -#: ../../library/urllib.parse.rst:158 msgid "" "As is the case with all named tuples, the subclass has a few additional " -"methods and attributes that are particularly useful. One such method " -"is :meth:`_replace`. The :meth:`_replace` method will return a new " -"ParseResult object replacing specified fields with new values." +"methods and attributes that are particularly useful. One such method is :" +"meth:`_replace`. The :meth:`_replace` method will return a new ParseResult " +"object replacing specified fields with new values." msgstr "" -#: ../../library/urllib.parse.rst:163 msgid "" ">>> from urllib.parse import urlparse\n" ">>> u = urlparse('//www.cwi.nl:80/%7Eguido/Python.html')\n" ">>> u\n" -"ParseResult(scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/" -"Python.html',\n" +"ParseResult(scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python." +"html',\n" " params='', query='', fragment='')\n" ">>> u._replace(scheme='http')\n" -"ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/" -"Python.html',\n" +"ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python." +"html',\n" " params='', query='', fragment='')" msgstr "" -#: ../../library/urllib.parse.rst:177 msgid "" ":func:`urlparse` does not perform validation. See :ref:`URL parsing " "security ` for details." msgstr "" -#: ../../library/urllib.parse.rst:180 msgid "Added IPv6 URL parsing capabilities." msgstr "" -#: ../../library/urllib.parse.rst:183 msgid "" "The fragment is now parsed for all URL schemes (unless *allow_fragments* is " "false), in accordance with :rfc:`3986`. Previously, an allowlist of schemes " "that support fragments existed." msgstr "" -#: ../../library/urllib.parse.rst:188 ../../library/urllib.parse.rst:357 msgid "" -"Out-of-range port numbers now raise :exc:`ValueError`, instead of " -"returning :const:`None`." +"Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :" +"const:`None`." msgstr "" -#: ../../library/urllib.parse.rst:192 ../../library/urllib.parse.rst:361 msgid "" "Characters that affect netloc parsing under NFKC normalization will now " "raise :exc:`ValueError`." msgstr "" -#: ../../library/urllib.parse.rst:199 msgid "" -"Parse a query string given as a string argument (data of " -"type :mimetype:`application/x-www-form-urlencoded`). Data are returned as a " -"dictionary. The dictionary keys are the unique query variable names and the " -"values are lists of values for each name." +"Parse a query string given as a string argument (data of type :mimetype:" +"`application/x-www-form-urlencoded`). Data are returned as a dictionary. " +"The dictionary keys are the unique query variable names and the values are " +"lists of values for each name." msgstr "" -#: ../../library/urllib.parse.rst:204 ../../library/urllib.parse.rst:253 msgid "" "The optional argument *keep_blank_values* is a flag indicating whether blank " "values in percent-encoded queries should be treated as blank strings. A true " @@ -399,48 +322,40 @@ msgid "" "treated as if they were not included." msgstr "" -#: ../../library/urllib.parse.rst:210 ../../library/urllib.parse.rst:259 msgid "" "The optional argument *strict_parsing* is a flag indicating what to do with " "parsing errors. If false (the default), errors are silently ignored. If " "true, errors raise a :exc:`ValueError` exception." msgstr "" -#: ../../library/urllib.parse.rst:214 ../../library/urllib.parse.rst:263 msgid "" "The optional *encoding* and *errors* parameters specify how to decode " -"percent-encoded sequences into Unicode characters, as accepted by " -"the :meth:`bytes.decode` method." +"percent-encoded sequences into Unicode characters, as accepted by the :meth:" +"`bytes.decode` method." msgstr "" -#: ../../library/urllib.parse.rst:218 ../../library/urllib.parse.rst:267 msgid "" "The optional argument *max_num_fields* is the maximum number of fields to " "read. If set, then throws a :exc:`ValueError` if there are more than " "*max_num_fields* fields read." msgstr "" -#: ../../library/urllib.parse.rst:222 ../../library/urllib.parse.rst:271 msgid "" "The optional argument *separator* is the symbol to use for separating the " "query arguments. It defaults to ``&``." msgstr "" -#: ../../library/urllib.parse.rst:225 msgid "" "Use the :func:`urllib.parse.urlencode` function (with the ``doseq`` " "parameter set to ``True``) to convert such dictionaries into query strings." msgstr "" -#: ../../library/urllib.parse.rst:230 ../../library/urllib.parse.rst:277 msgid "Add *encoding* and *errors* parameters." msgstr "" -#: ../../library/urllib.parse.rst:233 ../../library/urllib.parse.rst:280 msgid "Added *max_num_fields* parameter." msgstr "" -#: ../../library/urllib.parse.rst:236 ../../library/urllib.parse.rst:283 msgid "" "Added *separator* parameter with the default value of ``&``. Python versions " "earlier than Python 3.10 allowed using both ``;`` and ``&`` as query " @@ -448,26 +363,22 @@ msgid "" "key, with ``&`` as the default separator." msgstr "" -#: ../../library/urllib.parse.rst:242 ../../library/urllib.parse.rst:761 msgid "" "Accepting objects with false values (like ``0`` and ``[]``) except empty " "strings and byte-like objects and ``None`` is now deprecated." msgstr "" -#: ../../library/urllib.parse.rst:249 msgid "" -"Parse a query string given as a string argument (data of " -"type :mimetype:`application/x-www-form-urlencoded`). Data are returned as a " -"list of name, value pairs." +"Parse a query string given as a string argument (data of type :mimetype:" +"`application/x-www-form-urlencoded`). Data are returned as a list of name, " +"value pairs." msgstr "" -#: ../../library/urllib.parse.rst:274 msgid "" "Use the :func:`urllib.parse.urlencode` function to convert such lists of " "pairs into query strings." msgstr "" -#: ../../library/urllib.parse.rst:292 msgid "" "Construct a URL from a tuple as returned by ``urlparse()``. The *parts* " "argument can be any six-item iterable. This may result in a slightly " @@ -476,7 +387,6 @@ msgid "" "states that these are equivalent)." msgstr "" -#: ../../library/urllib.parse.rst:301 msgid "" "This is similar to :func:`urlparse`, but does not split the params from the " "URL. This should generally be used instead of :func:`urlparse` if the more " @@ -486,40 +396,33 @@ msgid "" "returns a 5-item :term:`named tuple`::" msgstr "" -#: ../../library/urllib.parse.rst:308 msgid "" "(addressing scheme, network location, path, query, fragment identifier)." msgstr "" -#: ../../library/urllib.parse.rst:310 ../../library/urllib.parse.rst:432 msgid "" "The return value is a :term:`named tuple`, its items can be accessed by " "index or as named attributes:" msgstr "" -#: ../../library/urllib.parse.rst:348 msgid "" "Following some of the `WHATWG spec`_ that updates RFC 3986, leading C0 " "control and space characters are stripped from the URL. ``\\n``, ``\\r`` and " "tab ``\\t`` characters are removed from the URL at any position." msgstr "" -#: ../../library/urllib.parse.rst:354 msgid "" ":func:`urlsplit` does not perform validation. See :ref:`URL parsing " "security ` for details." msgstr "" -#: ../../library/urllib.parse.rst:365 msgid "ASCII newline and tab characters are stripped from the URL." msgstr "" -#: ../../library/urllib.parse.rst:368 msgid "" "Leading WHATWG C0 control and space characters are stripped from the URL." msgstr "" -#: ../../library/urllib.parse.rst:375 msgid "" "Combine the elements of a tuple as returned by :func:`urlsplit` into a " "complete URL as a string. The *parts* argument can be any five-item " @@ -528,7 +431,6 @@ msgid "" "a ? with an empty query; the RFC states that these are equivalent)." msgstr "" -#: ../../library/urllib.parse.rst:384 msgid "" "Construct a full (\"absolute\") URL by combining a \"base URL\" (*base*) " "with another URL (*url*). Informally, this uses components of the base URL, " @@ -536,33 +438,28 @@ msgid "" "path, to provide missing components in the relative URL. For example:" msgstr "" -#: ../../library/urllib.parse.rst:393 msgid "" -"The *allow_fragments* argument has the same meaning and default as " -"for :func:`urlparse`." +"The *allow_fragments* argument has the same meaning and default as for :func:" +"`urlparse`." msgstr "" -#: ../../library/urllib.parse.rst:398 msgid "" "If *url* is an absolute URL (that is, it starts with ``//`` or ``scheme://" "``), the *url*'s hostname and/or scheme will be present in the result. For " "example:" msgstr "" -#: ../../library/urllib.parse.rst:401 msgid "" ">>> urljoin('http://www.cwi.nl/%7Eguido/Python.html',\n" "... '//www.python.org/%7Eguido')\n" "'http://www.python.org/%7Eguido'" msgstr "" -#: ../../library/urllib.parse.rst:407 msgid "" "If you do not want that behavior, preprocess the *url* with :func:`urlsplit` " "and :func:`urlunsplit`, removing possible *scheme* and *netloc* parts." msgstr "" -#: ../../library/urllib.parse.rst:412 msgid "" "Because an absolute URL may be passed as the ``url`` parameter, it is " "generally **not secure** to use ``urljoin`` with an attacker-controlled " @@ -571,11 +468,9 @@ msgid "" "``urljoin`` will be the absolute URL." msgstr "" -#: ../../library/urllib.parse.rst:422 msgid "Behavior updated to match the semantics defined in :rfc:`3986`." msgstr "" -#: ../../library/urllib.parse.rst:427 msgid "" "If *url* contains a fragment identifier, return a modified version of *url* " "with no fragment identifier, and the fragment identifier as a separate " @@ -583,37 +478,30 @@ msgid "" "unmodified and an empty string." msgstr "" -#: ../../library/urllib.parse.rst:438 msgid ":attr:`url`" msgstr "" -#: ../../library/urllib.parse.rst:438 msgid "URL with no fragment" msgstr "" -#: ../../library/urllib.parse.rst:443 msgid "" "See section :ref:`urlparse-result-object` for more information on the result " "object." msgstr "" -#: ../../library/urllib.parse.rst:446 msgid "Result is a structured object rather than a simple 2-tuple." msgstr "" -#: ../../library/urllib.parse.rst:451 msgid "" -"Extract the url from a wrapped URL (that is, a string formatted as " -"````, ````, ``URL:scheme://host/" -"path`` or ``scheme://host/path``). If *url* is not a wrapped URL, it is " -"returned without changes." +"Extract the url from a wrapped URL (that is, a string formatted as ````, ````, ``URL:scheme://host/path`` " +"or ``scheme://host/path``). If *url* is not a wrapped URL, it is returned " +"without changes." msgstr "" -#: ../../library/urllib.parse.rst:459 msgid "URL parsing security" msgstr "" -#: ../../library/urllib.parse.rst:461 msgid "" "The :func:`urlsplit` and :func:`urlparse` APIs do not perform **validation** " "of inputs. They may not raise errors on inputs that other applications " @@ -622,14 +510,12 @@ msgid "" "rather than purity." msgstr "" -#: ../../library/urllib.parse.rst:467 msgid "" "Instead of raising an exception on unusual input, they may instead return " "some component parts as empty strings. Or components may contain more than " "perhaps they should." msgstr "" -#: ../../library/urllib.parse.rst:471 msgid "" "We recommend that users of these APIs where the values may be used anywhere " "with security implications code defensively. Do some verification within " @@ -638,7 +524,6 @@ msgid "" "that ``hostname``? etc." msgstr "" -#: ../../library/urllib.parse.rst:477 msgid "" "What constitutes a URL is not universally well defined. Different " "applications have different needs and desired constraints. For instance the " @@ -650,56 +535,48 @@ msgid "" "API behavior changes." msgstr "" -#: ../../library/urllib.parse.rst:488 msgid "Parsing ASCII Encoded Bytes" msgstr "" -#: ../../library/urllib.parse.rst:490 msgid "" "The URL parsing functions were originally designed to operate on character " "strings only. In practice, it is useful to be able to manipulate properly " "quoted and encoded URLs as sequences of ASCII bytes. Accordingly, the URL " -"parsing functions in this module all operate on :class:`bytes` " -"and :class:`bytearray` objects in addition to :class:`str` objects." +"parsing functions in this module all operate on :class:`bytes` and :class:" +"`bytearray` objects in addition to :class:`str` objects." msgstr "" -#: ../../library/urllib.parse.rst:496 msgid "" -"If :class:`str` data is passed in, the result will also contain " -"only :class:`str` data. If :class:`bytes` or :class:`bytearray` data is " -"passed in, the result will contain only :class:`bytes` data." +"If :class:`str` data is passed in, the result will also contain only :class:" +"`str` data. If :class:`bytes` or :class:`bytearray` data is passed in, the " +"result will contain only :class:`bytes` data." msgstr "" -#: ../../library/urllib.parse.rst:500 msgid "" -"Attempting to mix :class:`str` data with :class:`bytes` " -"or :class:`bytearray` in a single function call will result in " -"a :exc:`TypeError` being raised, while attempting to pass in non-ASCII byte " -"values will trigger :exc:`UnicodeDecodeError`." +"Attempting to mix :class:`str` data with :class:`bytes` or :class:" +"`bytearray` in a single function call will result in a :exc:`TypeError` " +"being raised, while attempting to pass in non-ASCII byte values will " +"trigger :exc:`UnicodeDecodeError`." msgstr "" -#: ../../library/urllib.parse.rst:505 msgid "" -"To support easier conversion of result objects between :class:`str` " -"and :class:`bytes`, all return values from URL parsing functions provide " -"either an :meth:`encode` method (when the result contains :class:`str` data) " -"or a :meth:`decode` method (when the result contains :class:`bytes` data). " -"The signatures of these methods match those of the " -"corresponding :class:`str` and :class:`bytes` methods (except that the " -"default encoding is ``'ascii'`` rather than ``'utf-8'``). Each produces a " -"value of a corresponding type that contains either :class:`bytes` data " -"(for :meth:`encode` methods) or :class:`str` data (for :meth:`decode` " -"methods)." +"To support easier conversion of result objects between :class:`str` and :" +"class:`bytes`, all return values from URL parsing functions provide either " +"an :meth:`encode` method (when the result contains :class:`str` data) or a :" +"meth:`decode` method (when the result contains :class:`bytes` data). The " +"signatures of these methods match those of the corresponding :class:`str` " +"and :class:`bytes` methods (except that the default encoding is ``'ascii'`` " +"rather than ``'utf-8'``). Each produces a value of a corresponding type that " +"contains either :class:`bytes` data (for :meth:`encode` methods) or :class:" +"`str` data (for :meth:`decode` methods)." msgstr "" -#: ../../library/urllib.parse.rst:516 msgid "" "Applications that need to operate on potentially improperly quoted URLs that " "may contain non-ASCII data will need to do their own decoding from bytes to " "characters before invoking the URL parsing methods." msgstr "" -#: ../../library/urllib.parse.rst:520 msgid "" "The behaviour described in this section applies only to the URL parsing " "functions. The URL quoting functions use their own rules when producing or " @@ -707,24 +584,20 @@ msgid "" "URL quoting functions." msgstr "" -#: ../../library/urllib.parse.rst:525 msgid "URL parsing functions now accept ASCII encoded byte sequences" msgstr "" -#: ../../library/urllib.parse.rst:532 msgid "Structured Parse Results" msgstr "" -#: ../../library/urllib.parse.rst:534 msgid "" -"The result objects from the :func:`urlparse`, :func:`urlsplit` " -"and :func:`urldefrag` functions are subclasses of the :class:`tuple` type. " -"These subclasses add the attributes listed in the documentation for those " +"The result objects from the :func:`urlparse`, :func:`urlsplit` and :func:" +"`urldefrag` functions are subclasses of the :class:`tuple` type. These " +"subclasses add the attributes listed in the documentation for those " "functions, the encoding and decoding support described in the previous " "section, as well as an additional method:" msgstr "" -#: ../../library/urllib.parse.rst:542 msgid "" "Return the re-combined version of the original URL as a string. This may " "differ from the original URL in that the scheme may be normalized to lower " @@ -732,72 +605,60 @@ msgid "" "queries, and fragment identifiers will be removed." msgstr "" -#: ../../library/urllib.parse.rst:547 msgid "" "For :func:`urldefrag` results, only empty fragment identifiers will be " "removed. For :func:`urlsplit` and :func:`urlparse` results, all noted " "changes will be made to the URL returned by this method." msgstr "" -#: ../../library/urllib.parse.rst:551 msgid "" "The result of this method remains unchanged if passed back through the " "original parsing function:" msgstr "" -#: ../../library/urllib.parse.rst:564 msgid "" "The following classes provide the implementations of the structured parse " "results when operating on :class:`str` objects:" msgstr "" -#: ../../library/urllib.parse.rst:569 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`DefragResultBytes` instance." msgstr "" -#: ../../library/urllib.parse.rst:577 msgid "" "Concrete class for :func:`urlparse` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`ParseResultBytes` instance." msgstr "" -#: ../../library/urllib.parse.rst:583 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`SplitResultBytes` instance." msgstr "" -#: ../../library/urllib.parse.rst:588 msgid "" "The following classes provide the implementations of the parse results when " "operating on :class:`bytes` or :class:`bytearray` objects:" msgstr "" -#: ../../library/urllib.parse.rst:593 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`DefragResult` instance." msgstr "" -#: ../../library/urllib.parse.rst:601 msgid "" "Concrete class for :func:`urlparse` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`ParseResult` instance." msgstr "" -#: ../../library/urllib.parse.rst:609 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`SplitResult` instance." msgstr "" -#: ../../library/urllib.parse.rst:617 msgid "URL Quoting" msgstr "" -#: ../../library/urllib.parse.rst:619 msgid "" "The URL quoting functions focus on taking program data and making it safe " "for use as URL components by quoting special characters and appropriately " @@ -806,7 +667,6 @@ msgid "" "isn't already covered by the URL parsing functions above." msgstr "" -#: ../../library/urllib.parse.rst:627 msgid "" "Replace special characters in *string* using the :samp:`%{xx}` escape. " "Letters, digits, and the characters ``'_.-~'`` are never quoted. By default, " @@ -815,38 +675,31 @@ msgid "" "not be quoted --- its default value is ``'/'``." msgstr "" -#: ../../library/urllib.parse.rst:633 ../../library/urllib.parse.rst:679 -#: ../../library/urllib.parse.rst:708 msgid "*string* may be either a :class:`str` or a :class:`bytes` object." msgstr "" -#: ../../library/urllib.parse.rst:635 msgid "" "Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " "included in the set of unreserved characters." msgstr "" -#: ../../library/urllib.parse.rst:639 msgid "" "The optional *encoding* and *errors* parameters specify how to deal with non-" "ASCII characters, as accepted by the :meth:`str.encode` method. *encoding* " "defaults to ``'utf-8'``. *errors* defaults to ``'strict'``, meaning " "unsupported characters raise a :class:`UnicodeEncodeError`. *encoding* and " -"*errors* must not be supplied if *string* is a :class:`bytes`, or " -"a :class:`TypeError` is raised." +"*errors* must not be supplied if *string* is a :class:`bytes`, or a :class:" +"`TypeError` is raised." msgstr "" -#: ../../library/urllib.parse.rst:647 msgid "" "Note that ``quote(string, safe, encoding, errors)`` is equivalent to " "``quote_from_bytes(string.encode(encoding, errors), safe)``." msgstr "" -#: ../../library/urllib.parse.rst:650 msgid "Example: ``quote('/El Niño/')`` yields ``'/El%20Ni%C3%B1o/'``." msgstr "" -#: ../../library/urllib.parse.rst:655 msgid "" "Like :func:`quote`, but also replace spaces with plus signs, as required for " "quoting HTML form values when building up a query string to go into a URL. " @@ -854,74 +707,60 @@ msgid "" "*safe*. It also does not have *safe* default to ``'/'``." msgstr "" -#: ../../library/urllib.parse.rst:660 msgid "Example: ``quote_plus('/El Niño/')`` yields ``'%2FEl+Ni%C3%B1o%2F'``." msgstr "" -#: ../../library/urllib.parse.rst:665 msgid "" -"Like :func:`quote`, but accepts a :class:`bytes` object rather than " -"a :class:`str`, and does not perform string-to-bytes encoding." +"Like :func:`quote`, but accepts a :class:`bytes` object rather than a :class:" +"`str`, and does not perform string-to-bytes encoding." msgstr "" -#: ../../library/urllib.parse.rst:668 msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." msgstr "" -#: ../../library/urllib.parse.rst:674 msgid "" "Replace :samp:`%{xx}` escapes with their single-character equivalent. The " "optional *encoding* and *errors* parameters specify how to decode percent-" -"encoded sequences into Unicode characters, as accepted by " -"the :meth:`bytes.decode` method." +"encoded sequences into Unicode characters, as accepted by the :meth:`bytes." +"decode` method." msgstr "" -#: ../../library/urllib.parse.rst:681 msgid "" "*encoding* defaults to ``'utf-8'``. *errors* defaults to ``'replace'``, " "meaning invalid sequences are replaced by a placeholder character." msgstr "" -#: ../../library/urllib.parse.rst:685 msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "" -#: ../../library/urllib.parse.rst:687 msgid "" "*string* parameter supports bytes and str objects (previously only str)." msgstr "" -#: ../../library/urllib.parse.rst:695 msgid "" "Like :func:`unquote`, but also replace plus signs with spaces, as required " "for unquoting HTML form values." msgstr "" -#: ../../library/urllib.parse.rst:698 msgid "*string* must be a :class:`str`." msgstr "" -#: ../../library/urllib.parse.rst:700 msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "" -#: ../../library/urllib.parse.rst:705 msgid "" "Replace :samp:`%{xx}` escapes with their single-octet equivalent, and return " "a :class:`bytes` object." msgstr "" -#: ../../library/urllib.parse.rst:710 msgid "" "If it is a :class:`str`, unescaped non-ASCII characters in *string* are " "encoded into UTF-8 bytes." msgstr "" -#: ../../library/urllib.parse.rst:713 msgid "Example: ``unquote_to_bytes('a%26%EF')`` yields ``b'a&\\xef'``." msgstr "" -#: ../../library/urllib.parse.rst:719 msgid "" "Convert a mapping object or a sequence of two-element tuples, which may " "contain :class:`str` or :class:`bytes` objects, to a percent-encoded ASCII " @@ -930,7 +769,6 @@ msgid "" "be encoded to bytes, otherwise it would result in a :exc:`TypeError`." msgstr "" -#: ../../library/urllib.parse.rst:726 msgid "" "The resulting string is a series of ``key=value`` pairs separated by ``'&'`` " "characters, where both *key* and *value* are quoted using the *quote_via* " @@ -943,7 +781,6 @@ msgid "" "``quote`` and specify a value for *safe*." msgstr "" -#: ../../library/urllib.parse.rst:736 msgid "" "When a sequence of two-element tuples is used as the *query* argument, the " "first element of each tuple is a key and the second is a value. The value " @@ -954,49 +791,40 @@ msgid "" "order of parameter tuples in the sequence." msgstr "" -#: ../../library/urllib.parse.rst:744 msgid "" "The *safe*, *encoding*, and *errors* parameters are passed down to " "*quote_via* (the *encoding* and *errors* parameters are only passed when a " "query element is a :class:`str`)." msgstr "" -#: ../../library/urllib.parse.rst:748 msgid "" "To reverse this encoding process, :func:`parse_qs` and :func:`parse_qsl` are " "provided in this module to parse query strings into Python data structures." msgstr "" -#: ../../library/urllib.parse.rst:751 msgid "" -"Refer to :ref:`urllib examples ` to find out how " -"the :func:`urllib.parse.urlencode` method can be used for generating the " -"query string of a URL or data for a POST request." +"Refer to :ref:`urllib examples ` to find out how the :func:" +"`urllib.parse.urlencode` method can be used for generating the query string " +"of a URL or data for a POST request." msgstr "" -#: ../../library/urllib.parse.rst:755 msgid "*query* supports bytes and string objects." msgstr "" -#: ../../library/urllib.parse.rst:758 msgid "Added the *quote_via* parameter." msgstr "" -#: ../../library/urllib.parse.rst:768 msgid "`WHATWG`_ - URL Living standard" msgstr "" -#: ../../library/urllib.parse.rst:769 msgid "" "Working Group for the URL Standard that defines URLs, domains, IP addresses, " "the application/x-www-form-urlencoded format, and their API." msgstr "" -#: ../../library/urllib.parse.rst:772 msgid ":rfc:`3986` - Uniform Resource Identifiers" msgstr "" -#: ../../library/urllib.parse.rst:773 msgid "" "This is the current standard (STD66). Any changes to urllib.parse module " "should conform to this. Certain deviations could be observed, which are " @@ -1004,67 +832,52 @@ msgid "" "requirements as commonly observed in major browsers." msgstr "" -#: ../../library/urllib.parse.rst:778 msgid ":rfc:`2732` - Format for Literal IPv6 Addresses in URL's." msgstr "" -#: ../../library/urllib.parse.rst:779 msgid "This specifies the parsing requirements of IPv6 URLs." msgstr "" -#: ../../library/urllib.parse.rst:781 msgid ":rfc:`2396` - Uniform Resource Identifiers (URI): Generic Syntax" msgstr "" -#: ../../library/urllib.parse.rst:782 msgid "" "Document describing the generic syntactic requirements for both Uniform " "Resource Names (URNs) and Uniform Resource Locators (URLs)." msgstr "" -#: ../../library/urllib.parse.rst:785 msgid ":rfc:`2368` - The mailto URL scheme." msgstr "" -#: ../../library/urllib.parse.rst:786 msgid "Parsing requirements for mailto URL schemes." msgstr "" -#: ../../library/urllib.parse.rst:788 msgid ":rfc:`1808` - Relative Uniform Resource Locators" msgstr "" -#: ../../library/urllib.parse.rst:789 msgid "" "This Request For Comments includes the rules for joining an absolute and a " "relative URL, including a fair number of \"Abnormal Examples\" which govern " "the treatment of border cases." msgstr "" -#: ../../library/urllib.parse.rst:793 msgid ":rfc:`1738` - Uniform Resource Locators (URL)" msgstr "" -#: ../../library/urllib.parse.rst:794 msgid "This specifies the formal syntax and semantics of absolute URLs." msgstr "" -#: ../../library/urllib.parse.rst:9 msgid "WWW" msgstr "" -#: ../../library/urllib.parse.rst:9 msgid "World Wide Web" msgstr "" -#: ../../library/urllib.parse.rst:9 msgid "URL" msgstr "" -#: ../../library/urllib.parse.rst:9 msgid "parsing" msgstr "" -#: ../../library/urllib.parse.rst:9 msgid "relative" msgstr "" diff --git a/library/urllib.po b/library/urllib.po index 4f1cf54..1c4b2a2 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,32 +18,25 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/urllib.rst:2 msgid ":mod:`!urllib` --- URL handling modules" msgstr "" -#: ../../library/urllib.rst:6 msgid "**Source code:** :source:`Lib/urllib/`" msgstr "" -#: ../../library/urllib.rst:10 msgid "" "``urllib`` is a package that collects several modules for working with URLs:" msgstr "" -#: ../../library/urllib.rst:12 msgid ":mod:`urllib.request` for opening and reading URLs" msgstr "" -#: ../../library/urllib.rst:13 msgid "" ":mod:`urllib.error` containing the exceptions raised by :mod:`urllib.request`" msgstr "" -#: ../../library/urllib.rst:14 msgid ":mod:`urllib.parse` for parsing URLs" msgstr "" -#: ../../library/urllib.rst:15 msgid ":mod:`urllib.robotparser` for parsing ``robots.txt`` files" msgstr "" diff --git a/library/urllib.request.po b/library/urllib.request.po index c2fca61..cd02b4f 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,23 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/urllib.request.rst:2 msgid ":mod:`!urllib.request` --- Extensible library for opening URLs" msgstr "" -#: ../../library/urllib.request.rst:11 msgid "**Source code:** :source:`Lib/urllib/request.py`" msgstr "" -#: ../../library/urllib.request.rst:15 msgid "" "The :mod:`urllib.request` module defines functions and classes which help in " "opening URLs (mostly HTTP) in a complex world --- basic and digest " "authentication, redirections, cookies and more." msgstr "" -#: ../../library/urllib.request.rst:21 msgid "" "The `Requests package `_ is " "recommended for a higher-level HTTP client interface." msgstr "" -#: ../../library/urllib.request.rst:26 msgid "" "On macOS it is unsafe to use this module in programs using :func:`os.fork` " "because the :func:`getproxies` implementation for macOS uses a higher-level " @@ -47,40 +42,33 @@ msgid "" "problem (e.g. ``os.environ[\"no_proxy\"] = \"*\"``)." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/urllib.request.rst:34 msgid "The :mod:`urllib.request` module defines the following functions:" msgstr "" -#: ../../library/urllib.request.rst:39 msgid "" "Open *url*, which can be either a string containing a valid, properly " "encoded URL, or a :class:`Request` object." msgstr "" -#: ../../library/urllib.request.rst:42 msgid "" "*data* must be an object specifying additional data to be sent to the " "server, or ``None`` if no such data is needed. See :class:`Request` for " "details." msgstr "" -#: ../../library/urllib.request.rst:46 msgid "" "urllib.request module uses HTTP/1.1 and includes ``Connection:close`` header " "in its HTTP requests." msgstr "" -#: ../../library/urllib.request.rst:49 msgid "" "The optional *timeout* parameter specifies a timeout in seconds for blocking " "operations like the connection attempt (if not specified, the global default " @@ -88,117 +76,98 @@ msgid "" "FTP connections." msgstr "" -#: ../../library/urllib.request.rst:54 msgid "" "If *context* is specified, it must be a :class:`ssl.SSLContext` instance " -"describing the various SSL options. " -"See :class:`~http.client.HTTPSConnection` for more details." +"describing the various SSL options. See :class:`~http.client." +"HTTPSConnection` for more details." msgstr "" -#: ../../library/urllib.request.rst:58 msgid "" "This function always returns an object which can work as a :term:`context " -"manager` and has the properties *url*, *headers*, and *status*. " -"See :class:`urllib.response.addinfourl` for more detail on these properties." +"manager` and has the properties *url*, *headers*, and *status*. See :class:" +"`urllib.response.addinfourl` for more detail on these properties." msgstr "" -#: ../../library/urllib.request.rst:62 msgid "" -"For HTTP and HTTPS URLs, this function returns " -"a :class:`http.client.HTTPResponse` object slightly modified. In addition to " -"the three new methods above, the msg attribute contains the same information " -"as the :attr:`~http.client.HTTPResponse.reason` attribute --- the reason " -"phrase returned by server --- instead of the response headers as it is " -"specified in the documentation for :class:`~http.client.HTTPResponse`." +"For HTTP and HTTPS URLs, this function returns a :class:`http.client." +"HTTPResponse` object slightly modified. In addition to the three new methods " +"above, the msg attribute contains the same information as the :attr:`~http." +"client.HTTPResponse.reason` attribute --- the reason phrase returned by " +"server --- instead of the response headers as it is specified in the " +"documentation for :class:`~http.client.HTTPResponse`." msgstr "" -#: ../../library/urllib.request.rst:70 msgid "" -"For FTP, file, and data URLs, this function returns " -"a :class:`urllib.response.addinfourl` object." +"For FTP, file, and data URLs, this function returns a :class:`urllib." +"response.addinfourl` object." msgstr "" -#: ../../library/urllib.request.rst:73 msgid "Raises :exc:`~urllib.error.URLError` on protocol errors." msgstr "" -#: ../../library/urllib.request.rst:75 msgid "" "Note that ``None`` may be returned if no handler handles the request (though " -"the default installed global :class:`OpenerDirector` " -"uses :class:`UnknownHandler` to ensure this never happens)." +"the default installed global :class:`OpenerDirector` uses :class:" +"`UnknownHandler` to ensure this never happens)." msgstr "" -#: ../../library/urllib.request.rst:79 msgid "" "In addition, if proxy settings are detected (for example, when a ``*_proxy`` " -"environment variable like :envvar:`!http_proxy` is " -"set), :class:`ProxyHandler` is default installed and makes sure the requests " -"are handled through the proxy." +"environment variable like :envvar:`!http_proxy` is set), :class:" +"`ProxyHandler` is default installed and makes sure the requests are handled " +"through the proxy." msgstr "" -#: ../../library/urllib.request.rst:84 msgid "" "The legacy ``urllib.urlopen`` function from Python 2.6 and earlier has been " "discontinued; :func:`urllib.request.urlopen` corresponds to the old " "``urllib2.urlopen``. Proxy handling, which was done by passing a dictionary " -"parameter to ``urllib.urlopen``, can be obtained by " -"using :class:`ProxyHandler` objects." +"parameter to ``urllib.urlopen``, can be obtained by using :class:" +"`ProxyHandler` objects." msgstr "" -#: ../../library/urllib.request.rst:90 ../../library/urllib.request.rst:92 msgid "" -"The default opener raises an :ref:`auditing event ` " -"``urllib.Request`` with arguments ``fullurl``, ``data``, ``headers``, " -"``method`` taken from the request object." +"The default opener raises an :ref:`auditing event ` ``urllib." +"Request`` with arguments ``fullurl``, ``data``, ``headers``, ``method`` " +"taken from the request object." msgstr "" -#: ../../library/urllib.request.rst:96 msgid "*cafile* and *capath* were added." msgstr "" -#: ../../library/urllib.request.rst:99 msgid "" -"HTTPS virtual hosts are now supported if possible (that is, " -"if :const:`ssl.HAS_SNI` is true)." +"HTTPS virtual hosts are now supported if possible (that is, if :const:`ssl." +"HAS_SNI` is true)." msgstr "" -#: ../../library/urllib.request.rst:102 msgid "*data* can be an iterable object." msgstr "" -#: ../../library/urllib.request.rst:104 msgid "*cadefault* was added." msgstr "" -#: ../../library/urllib.request.rst:107 msgid "*context* was added." msgstr "" -#: ../../library/urllib.request.rst:110 msgid "" -"HTTPS connection now send an ALPN extension with protocol indicator ``http/" -"1.1`` when no *context* is given. Custom *context* should set ALPN protocols " -"with :meth:`~ssl.SSLContext.set_alpn_protocols`." +"HTTPS connection now send an ALPN extension with protocol indicator " +"``http/1.1`` when no *context* is given. Custom *context* should set ALPN " +"protocols with :meth:`~ssl.SSLContext.set_alpn_protocols`." msgstr "" -#: ../../library/urllib.request.rst:115 msgid "" "Remove *cafile*, *capath* and *cadefault* parameters: use the *context* " "parameter instead." msgstr "" -#: ../../library/urllib.request.rst:122 msgid "" "Install an :class:`OpenerDirector` instance as the default global opener. " "Installing an opener is only necessary if you want urlopen to use that " -"opener; otherwise, simply call :meth:`OpenerDirector.open` instead " -"of :func:`~urllib.request.urlopen`. The code does not check for a " -"real :class:`OpenerDirector`, and any class with the appropriate interface " -"will work." +"opener; otherwise, simply call :meth:`OpenerDirector.open` instead of :func:" +"`~urllib.request.urlopen`. The code does not check for a real :class:" +"`OpenerDirector`, and any class with the appropriate interface will work." msgstr "" -#: ../../library/urllib.request.rst:132 msgid "" "Return an :class:`OpenerDirector` instance, which chains the handlers in the " "order given. *handler*\\s can be either instances of :class:`BaseHandler`, " @@ -206,39 +175,35 @@ msgid "" "call the constructor without any parameters). Instances of the following " "classes will be in front of the *handler*\\s, unless the *handler*\\s " "contain them, instances of them or subclasses of them: :class:`ProxyHandler` " -"(if proxy settings are " -"detected), :class:`UnknownHandler`, :class:`HTTPHandler`, :class:`HTTPDefaultErrorHandler`, :class:`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:`HTTPErrorProcessor`." +"(if proxy settings are detected), :class:`UnknownHandler`, :class:" +"`HTTPHandler`, :class:`HTTPDefaultErrorHandler`, :class:" +"`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:" +"`HTTPErrorProcessor`." msgstr "" -#: ../../library/urllib.request.rst:142 msgid "" "If the Python installation has SSL support (i.e., if the :mod:`ssl` module " "can be imported), :class:`HTTPSHandler` will also be added." msgstr "" -#: ../../library/urllib.request.rst:145 msgid "" "A :class:`BaseHandler` subclass may also change its :attr:`handler_order` " "attribute to modify its position in the handlers list." msgstr "" -#: ../../library/urllib.request.rst:151 msgid "" -"Convert the given local path to a ``file:`` URL. This function " -"uses :func:`~urllib.parse.quote` function to encode the path." +"Convert the given local path to a ``file:`` URL. This function uses :func:" +"`~urllib.parse.quote` function to encode the path." msgstr "" -#: ../../library/urllib.request.rst:154 msgid "" "If *add_scheme* is false (the default), the return value omits the ``file:`` " "scheme prefix. Set *add_scheme* to true to return a complete URL." msgstr "" -#: ../../library/urllib.request.rst:157 ../../library/urllib.request.rst:195 msgid "This example shows the function being used on Windows::" msgstr "" -#: ../../library/urllib.request.rst:159 msgid "" ">>> from urllib.request import pathname2url\n" ">>> path = 'C:\\\\Program Files'\n" @@ -246,31 +211,26 @@ msgid "" "'file:///C:/Program%20Files'" msgstr "" -#: ../../library/urllib.request.rst:164 ../../library/urllib.request.rst:202 msgid "" "Windows drive letters are no longer converted to uppercase, and ``:`` " "characters not following a drive letter no longer cause an :exc:`OSError` " "exception to be raised on Windows." msgstr "" -#: ../../library/urllib.request.rst:169 msgid "" "Paths beginning with a slash are converted to URLs with authority sections. " "For example, the path ``/etc/hosts`` is converted to the URL ``///etc/" "hosts``." msgstr "" -#: ../../library/urllib.request.rst:174 msgid "The *add_scheme* parameter was added." msgstr "" -#: ../../library/urllib.request.rst:180 msgid "" -"Convert the given ``file:`` URL to a local path. This function " -"uses :func:`~urllib.parse.unquote` to decode the URL." +"Convert the given ``file:`` URL to a local path. This function uses :func:" +"`~urllib.parse.unquote` to decode the URL." msgstr "" -#: ../../library/urllib.request.rst:183 msgid "" "If *require_scheme* is false (the default), the given value should omit a " "``file:`` scheme prefix. If *require_scheme* is set to true, the given value " @@ -278,7 +238,6 @@ msgid "" "doesn't." msgstr "" -#: ../../library/urllib.request.rst:188 msgid "" "The URL authority is discarded if it is empty, ``localhost``, or the local " "hostname. Otherwise, if *resolve_host* is set to true, the authority is " @@ -288,7 +247,6 @@ msgid "" "other platforms a :exc:`~urllib.error.URLError` is raised." msgstr "" -#: ../../library/urllib.request.rst:197 msgid "" ">>> from urllib.request import url2pathname\n" ">>> url = 'file:///C:/Program%20Files'\n" @@ -296,7 +254,6 @@ msgid "" "'C:\\\\Program Files'" msgstr "" -#: ../../library/urllib.request.rst:207 msgid "" "The URL authority is discarded if it matches the local hostname. Otherwise, " "if the authority isn't empty or ``localhost``, then on Windows a UNC path is " @@ -304,15 +261,12 @@ msgid "" "is raised." msgstr "" -#: ../../library/urllib.request.rst:213 msgid "The URL query and fragment components are discarded if present." msgstr "" -#: ../../library/urllib.request.rst:216 msgid "The *require_scheme* and *resolve_host* parameters were added." msgstr "" -#: ../../library/urllib.request.rst:222 msgid "" "This helper function returns a dictionary of scheme to proxy server URL " "mappings. It scans the environment for variables named ``_proxy``, " @@ -322,7 +276,6 @@ msgid "" "uppercase environment variables exist (and disagree), lowercase is preferred." msgstr "" -#: ../../library/urllib.request.rst:232 msgid "" "If the environment variable ``REQUEST_METHOD`` is set, which usually " "indicates your script is running in a CGI environment, the environment " @@ -333,19 +286,15 @@ msgid "" "(or at least the ``_proxy`` suffix)." msgstr "" -#: ../../library/urllib.request.rst:241 msgid "The following classes are provided:" msgstr "" -#: ../../library/urllib.request.rst:245 msgid "This class is an abstraction of a URL request." msgstr "" -#: ../../library/urllib.request.rst:247 msgid "*url* should be a string containing a valid, properly encoded URL." msgstr "" -#: ../../library/urllib.request.rst:249 msgid "" "*data* must be an object specifying additional data to send to the server, " "or ``None`` if no such data is needed. Currently HTTP requests are the only " @@ -358,21 +307,19 @@ msgid "" "iterables." msgstr "" -#: ../../library/urllib.request.rst:259 msgid "" -"For an HTTP POST request method, *data* should be a buffer in the " -"standard :mimetype:`application/x-www-form-urlencoded` format. " -"The :func:`urllib.parse.urlencode` function takes a mapping or sequence of 2-" -"tuples and returns an ASCII string in this format. It should be encoded to " -"bytes before being used as the *data* parameter." +"For an HTTP POST request method, *data* should be a buffer in the standard :" +"mimetype:`application/x-www-form-urlencoded` format. The :func:`urllib." +"parse.urlencode` function takes a mapping or sequence of 2-tuples and " +"returns an ASCII string in this format. It should be encoded to bytes before " +"being used as the *data* parameter." msgstr "" -#: ../../library/urllib.request.rst:265 msgid "" -"*headers* should be a dictionary, and will be treated as " -"if :meth:`add_header` was called with each key and value as arguments. This " -"is often used to \"spoof\" the ``User-Agent`` header value, which is used by " -"a browser to identify itself -- some HTTP servers only allow requests coming " +"*headers* should be a dictionary, and will be treated as if :meth:" +"`add_header` was called with each key and value as arguments. This is often " +"used to \"spoof\" the ``User-Agent`` header value, which is used by a " +"browser to identify itself -- some HTTP servers only allow requests coming " "from common browsers as opposed to scripts. For example, Mozilla Firefox may " "identify itself as ``\"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 " "Firefox/2.0.0.11\"``, while :mod:`urllib`'s default user agent string is " @@ -380,7 +327,6 @@ msgid "" "case." msgstr "" -#: ../../library/urllib.request.rst:276 msgid "" "An appropriate ``Content-Type`` header should be included if the *data* " "argument is present. If this header has not been provided and *data* is not " @@ -388,23 +334,20 @@ msgid "" "as a default." msgstr "" -#: ../../library/urllib.request.rst:281 msgid "" "The next two arguments are only of interest for correct handling of third-" "party HTTP cookies:" msgstr "" -#: ../../library/urllib.request.rst:284 msgid "" "*origin_req_host* should be the request-host of the origin transaction, as " -"defined by :rfc:`2965`. It defaults to " -"``http.cookiejar.request_host(self)``. This is the host name or IP address " -"of the original request that was initiated by the user. For example, if the " -"request is for an image in an HTML document, this should be the request-host " -"of the request for the page containing the image." +"defined by :rfc:`2965`. It defaults to ``http.cookiejar." +"request_host(self)``. This is the host name or IP address of the original " +"request that was initiated by the user. For example, if the request is for " +"an image in an HTML document, this should be the request-host of the request " +"for the page containing the image." msgstr "" -#: ../../library/urllib.request.rst:292 msgid "" "*unverifiable* should indicate whether the request is unverifiable, as " "defined by :rfc:`2965`. It defaults to ``False``. An unverifiable request " @@ -413,17 +356,15 @@ msgid "" "option to approve the automatic fetching of the image, this should be true." msgstr "" -#: ../../library/urllib.request.rst:299 msgid "" "*method* should be a string that indicates the HTTP request method that will " -"be used (e.g. ``'HEAD'``). If provided, its value is stored in " -"the :attr:`~Request.method` attribute and is used by :meth:`get_method`. The " -"default is ``'GET'`` if *data* is ``None`` or ``'POST'`` otherwise. " -"Subclasses may indicate a different default method by setting " -"the :attr:`~Request.method` attribute in the class itself." +"be used (e.g. ``'HEAD'``). If provided, its value is stored in the :attr:" +"`~Request.method` attribute and is used by :meth:`get_method`. The default " +"is ``'GET'`` if *data* is ``None`` or ``'POST'`` otherwise. Subclasses may " +"indicate a different default method by setting the :attr:`~Request.method` " +"attribute in the class itself." msgstr "" -#: ../../library/urllib.request.rst:307 msgid "" "The request will not work as expected if the data object is unable to " "deliver its content more than once (e.g. a file or an iterable that can " @@ -433,49 +374,40 @@ msgid "" "library." msgstr "" -#: ../../library/urllib.request.rst:314 msgid ":attr:`Request.method` argument is added to the Request class." msgstr "" -#: ../../library/urllib.request.rst:317 msgid "Default :attr:`Request.method` may be indicated at the class level." msgstr "" -#: ../../library/urllib.request.rst:320 msgid "" "Do not raise an error if the ``Content-Length`` has not been provided and " "*data* is neither ``None`` nor a bytes object. Fall back to use chunked " "transfer encoding instead." msgstr "" -#: ../../library/urllib.request.rst:327 msgid "" "The :class:`OpenerDirector` class opens URLs via :class:`BaseHandler`\\ s " "chained together. It manages the chaining of handlers, and recovery from " "errors." msgstr "" -#: ../../library/urllib.request.rst:333 msgid "" "This is the base class for all registered handlers --- and handles only the " "simple mechanics of registration." msgstr "" -#: ../../library/urllib.request.rst:339 msgid "" "A class which defines a default handler for HTTP error responses; all " "responses are turned into :exc:`~urllib.error.HTTPError` exceptions." msgstr "" -#: ../../library/urllib.request.rst:345 msgid "A class to handle redirections." msgstr "" -#: ../../library/urllib.request.rst:350 msgid "A class to handle HTTP Cookies." msgstr "" -#: ../../library/urllib.request.rst:355 msgid "" "Cause requests to go through a proxy. If *proxies* is given, it must be a " "dictionary mapping protocol names to URLs of proxies. The default is to read " @@ -486,11 +418,9 @@ msgid "" "Configuration Framework." msgstr "" -#: ../../library/urllib.request.rst:363 msgid "To disable autodetected proxy pass an empty dictionary." msgstr "" -#: ../../library/urllib.request.rst:365 msgid "" "The :envvar:`no_proxy` environment variable can be used to specify hosts " "which shouldn't be reached via proxy; if set, it should be a comma-separated " @@ -498,24 +428,20 @@ msgid "" "``cern.ch,ncsa.uiuc.edu,some.host:8080``." msgstr "" -#: ../../library/urllib.request.rst:372 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" -#: ../../library/urllib.request.rst:378 msgid "Keep a database of ``(realm, uri) -> (user, password)`` mappings." msgstr "" -#: ../../library/urllib.request.rst:383 msgid "" "Keep a database of ``(realm, uri) -> (user, password)`` mappings. A realm " "of ``None`` is considered a catch-all realm, which is searched if no other " "realm fits." msgstr "" -#: ../../library/urllib.request.rst:390 msgid "" "A variant of :class:`HTTPPasswordMgrWithDefaultRealm` that also has a " "database of ``uri -> is_authenticated`` mappings. Can be used by a " @@ -523,13 +449,12 @@ msgid "" "immediately instead of waiting for a ``401`` response first." msgstr "" -#: ../../library/urllib.request.rst:400 msgid "" "This is a mixin class that helps with HTTP authentication, both to the " "remote host and to a proxy. *password_mgr*, if given, should be something " -"that is compatible with :class:`HTTPPasswordMgr`; refer to " -"section :ref:`http-password-mgr` for information on the interface that must " -"be supported. If *passwd_mgr* also provides ``is_authenticated`` and " +"that is compatible with :class:`HTTPPasswordMgr`; refer to section :ref:" +"`http-password-mgr` for information on the interface that must be " +"supported. If *passwd_mgr* also provides ``is_authenticated`` and " "``update_authenticated`` methods (see :ref:`http-password-mgr-with-prior-" "auth`), then the handler will use the ``is_authenticated`` result for a " "given URI to determine whether or not to send authentication credentials " @@ -542,11 +467,9 @@ msgid "" "will automatically include the authentication credentials." msgstr "" -#: ../../library/urllib.request.rst:417 msgid "Added ``is_authenticated`` support." msgstr "" -#: ../../library/urllib.request.rst:423 msgid "" "Handle authentication with the remote host. *password_mgr*, if given, should " "be something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -555,7 +478,6 @@ msgid "" "presented with a wrong Authentication scheme." msgstr "" -#: ../../library/urllib.request.rst:432 ../../library/urllib.request.rst:469 msgid "" "Handle authentication with the proxy. *password_mgr*, if given, should be " "something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -563,20 +485,16 @@ msgid "" "be supported." msgstr "" -#: ../../library/urllib.request.rst:440 msgid "" "This is a mixin class that helps with HTTP authentication, both to the " "remote host and to a proxy. *password_mgr*, if given, should be something " -"that is compatible with :class:`HTTPPasswordMgr`; refer to " -"section :ref:`http-password-mgr` for information on the interface that must " -"be supported." +"that is compatible with :class:`HTTPPasswordMgr`; refer to section :ref:" +"`http-password-mgr` for information on the interface that must be supported." msgstr "" -#: ../../library/urllib.request.rst:446 msgid "Added support for HTTP digest authentication algorithm ``SHA-256``." msgstr "" -#: ../../library/urllib.request.rst:452 msgid "" "Handle authentication with the remote host. *password_mgr*, if given, should " "be something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -589,108 +507,86 @@ msgid "" "Digest or Basic." msgstr "" -#: ../../library/urllib.request.rst:462 msgid "Raise :exc:`ValueError` on unsupported Authentication Scheme." msgstr "" -#: ../../library/urllib.request.rst:477 msgid "A class to handle opening of HTTP URLs." msgstr "" -#: ../../library/urllib.request.rst:482 msgid "" "A class to handle opening of HTTPS URLs. *context* and *check_hostname* " "have the same meaning as in :class:`http.client.HTTPSConnection`." msgstr "" -#: ../../library/urllib.request.rst:485 msgid "*context* and *check_hostname* were added." msgstr "" -#: ../../library/urllib.request.rst:491 msgid "Open local files." msgstr "" -#: ../../library/urllib.request.rst:495 msgid "Open data URLs." msgstr "" -#: ../../library/urllib.request.rst:501 msgid "Open FTP URLs." msgstr "" -#: ../../library/urllib.request.rst:506 msgid "" "Open FTP URLs, keeping a cache of open FTP connections to minimize delays." msgstr "" -#: ../../library/urllib.request.rst:511 msgid "A catch-all class to handle unknown URLs." msgstr "" -#: ../../library/urllib.request.rst:516 ../../library/urllib.request.rst:1225 msgid "Process HTTP error responses." msgstr "" -#: ../../library/urllib.request.rst:522 msgid "Request Objects" msgstr "" -#: ../../library/urllib.request.rst:524 msgid "" "The following methods describe :class:`Request`'s public interface, and so " "all may be overridden in subclasses. It also defines several public " "attributes that can be used by clients to inspect the parsed request." msgstr "" -#: ../../library/urllib.request.rst:531 msgid "The original URL passed to the constructor." msgstr "" -#: ../../library/urllib.request.rst:535 msgid "" -"Request.full_url is a property with setter, getter and a deleter. " -"Getting :attr:`~Request.full_url` returns the original request URL with the " -"fragment, if it was present." +"Request.full_url is a property with setter, getter and a deleter. Getting :" +"attr:`~Request.full_url` returns the original request URL with the fragment, " +"if it was present." msgstr "" -#: ../../library/urllib.request.rst:541 msgid "The URI scheme." msgstr "" -#: ../../library/urllib.request.rst:545 msgid "" "The URI authority, typically a host, but may also contain a port separated " "by a colon." msgstr "" -#: ../../library/urllib.request.rst:550 msgid "The original host for the request, without port." msgstr "" -#: ../../library/urllib.request.rst:554 msgid "" "The URI path. If the :class:`Request` uses a proxy, then selector will be " "the full URL that is passed to the proxy." msgstr "" -#: ../../library/urllib.request.rst:559 msgid "The entity body for the request, or ``None`` if not specified." msgstr "" -#: ../../library/urllib.request.rst:561 msgid "" "Changing value of :attr:`Request.data` now deletes \"Content-Length\" header " "if it was previously set or calculated." msgstr "" -#: ../../library/urllib.request.rst:567 msgid "" -"boolean, indicates whether the request is unverifiable as defined " -"by :rfc:`2965`." +"boolean, indicates whether the request is unverifiable as defined by :rfc:" +"`2965`." msgstr "" -#: ../../library/urllib.request.rst:572 msgid "" "The HTTP request method to use. By default its value is :const:`None`, " "which means that :meth:`~Request.get_method` will do its normal computation " @@ -701,25 +597,21 @@ msgid "" "argument." msgstr "" -#: ../../library/urllib.request.rst:582 msgid "" "A default value can now be set in subclasses; previously it could only be " "set via the constructor argument." msgstr "" -#: ../../library/urllib.request.rst:589 msgid "" -"Return a string indicating the HTTP request method. " -"If :attr:`Request.method` is not ``None``, return its value, otherwise " -"return ``'GET'`` if :attr:`Request.data` is ``None``, or ``'POST'`` if it's " -"not. This is only meaningful for HTTP requests." +"Return a string indicating the HTTP request method. If :attr:`Request." +"method` is not ``None``, return its value, otherwise return ``'GET'`` if :" +"attr:`Request.data` is ``None``, or ``'POST'`` if it's not. This is only " +"meaningful for HTTP requests." msgstr "" -#: ../../library/urllib.request.rst:594 msgid "get_method now looks at the value of :attr:`Request.method`." msgstr "" -#: ../../library/urllib.request.rst:600 msgid "" "Add another header to the request. Headers are currently ignored by all " "handlers except HTTP handlers, where they are added to the list of headers " @@ -731,121 +623,99 @@ msgid "" "headers added using this method are also added to redirected requests." msgstr "" -#: ../../library/urllib.request.rst:612 msgid "Add a header that will not be added to a redirected request." msgstr "" -#: ../../library/urllib.request.rst:617 msgid "" "Return whether the instance has the named header (checks both regular and " "unredirected)." msgstr "" -#: ../../library/urllib.request.rst:623 msgid "" "Remove named header from the request instance (both from regular and " "unredirected headers)." msgstr "" -#: ../../library/urllib.request.rst:631 msgid "Return the URL given in the constructor." msgstr "" -#: ../../library/urllib.request.rst:635 msgid "Returns :attr:`Request.full_url`" msgstr "" -#: ../../library/urllib.request.rst:640 msgid "" "Prepare the request by connecting to a proxy server. The *host* and *type* " "will replace those of the instance, and the instance's selector will be the " "original URL given in the constructor." msgstr "" -#: ../../library/urllib.request.rst:647 msgid "" "Return the value of the given header. If the header is not present, return " "the default value." msgstr "" -#: ../../library/urllib.request.rst:653 msgid "" "Return a list of tuples (header_name, header_value) of the Request headers." msgstr "" -#: ../../library/urllib.request.rst:655 msgid "" "The request methods add_data, has_data, get_data, get_type, get_host, " "get_selector, get_origin_req_host and is_unverifiable that were deprecated " "since 3.3 have been removed." msgstr "" -#: ../../library/urllib.request.rst:664 msgid "OpenerDirector Objects" msgstr "" -#: ../../library/urllib.request.rst:666 msgid ":class:`OpenerDirector` instances have the following methods:" msgstr "" -#: ../../library/urllib.request.rst:671 msgid "" "*handler* should be an instance of :class:`BaseHandler`. The following " "methods are searched, and added to the possible chains (note that HTTP " "errors are a special case). Note that, in the following, *protocol* should " -"be replaced with the actual protocol to handle, for " -"example :meth:`http_response` would be the HTTP protocol response handler. " -"Also *type* should be replaced with the actual HTTP code, for " -"example :meth:`http_error_404` would handle HTTP 404 errors." +"be replaced with the actual protocol to handle, for example :meth:" +"`http_response` would be the HTTP protocol response handler. Also *type* " +"should be replaced with the actual HTTP code, for example :meth:" +"`http_error_404` would handle HTTP 404 errors." msgstr "" -#: ../../library/urllib.request.rst:679 msgid "" ":meth:`!_open` --- signal that the handler knows how to open " "*protocol* URLs." msgstr "" -#: ../../library/urllib.request.rst:682 msgid "See |protocol_open|_ for more information." msgstr "" -#: ../../library/urllib.request.rst:684 msgid "" ":meth:`!http_error_\\` --- signal that the handler knows how to " "handle HTTP errors with HTTP error code *type*." msgstr "" -#: ../../library/urllib.request.rst:687 msgid "See |http_error_nnn|_ for more information." msgstr "" -#: ../../library/urllib.request.rst:689 msgid "" ":meth:`!_error` --- signal that the handler knows how to handle " "errors from (non-\\ ``http``) *protocol*." msgstr "" -#: ../../library/urllib.request.rst:692 msgid "" ":meth:`!_request` --- signal that the handler knows how to pre-" "process *protocol* requests." msgstr "" -#: ../../library/urllib.request.rst:695 msgid "See |protocol_request|_ for more information." msgstr "" -#: ../../library/urllib.request.rst:697 msgid "" ":meth:`!_response` --- signal that the handler knows how to post-" "process *protocol* responses." msgstr "" -#: ../../library/urllib.request.rst:700 msgid "See |protocol_response|_ for more information." msgstr "" -#: ../../library/urllib.request.rst:709 msgid "" "Open the given *url* (which can be a request object or a string), optionally " "passing the given *data*. Arguments, return values and exceptions raised are " @@ -857,7 +727,6 @@ msgid "" "HTTP, HTTPS and FTP connections." msgstr "" -#: ../../library/urllib.request.rst:721 msgid "" "Handle an error of the given protocol. This will call the registered error " "handlers for the given protocol with the given arguments (which are protocol " @@ -866,317 +735,261 @@ msgid "" "http_error_\\` methods of the handler classes." msgstr "" -#: ../../library/urllib.request.rst:727 msgid "" "Return values and exceptions raised are the same as those of :func:`urlopen`." msgstr "" -#: ../../library/urllib.request.rst:729 msgid "OpenerDirector objects open URLs in three stages:" msgstr "" -#: ../../library/urllib.request.rst:731 msgid "" "The order in which these methods are called within each stage is determined " "by sorting the handler instances." msgstr "" -#: ../../library/urllib.request.rst:734 msgid "" "Every handler with a method named like :meth:`!_request` has that " "method called to pre-process the request." msgstr "" -#: ../../library/urllib.request.rst:737 msgid "" "Handlers with a method named like :meth:`!_open` are called to " -"handle the request. This stage ends when a handler either returns a non-" -"\\ :const:`None` value (ie. a response), or raises an exception " -"(usually :exc:`~urllib.error.URLError`). Exceptions are allowed to " -"propagate." +"handle the request. This stage ends when a handler either returns a non-\\ :" +"const:`None` value (ie. a response), or raises an exception (usually :exc:" +"`~urllib.error.URLError`). Exceptions are allowed to propagate." msgstr "" -#: ../../library/urllib.request.rst:742 msgid "" -"In fact, the above algorithm is first tried for methods " -"named :meth:`~BaseHandler.default_open`. If all such methods " -"return :const:`None`, the algorithm is repeated for methods named " -"like :meth:`!_open`. If all such methods return :const:`None`, " -"the algorithm is repeated for methods " +"In fact, the above algorithm is first tried for methods named :meth:" +"`~BaseHandler.default_open`. If all such methods return :const:`None`, the " +"algorithm is repeated for methods named like :meth:`!_open`. If " +"all such methods return :const:`None`, the algorithm is repeated for methods " "named :meth:`~BaseHandler.unknown_open`." msgstr "" -#: ../../library/urllib.request.rst:748 msgid "" "Note that the implementation of these methods may involve calls of the " -"parent :class:`OpenerDirector` instance's :meth:`~OpenerDirector.open` " -"and :meth:`~OpenerDirector.error` methods." +"parent :class:`OpenerDirector` instance's :meth:`~OpenerDirector.open` and :" +"meth:`~OpenerDirector.error` methods." msgstr "" -#: ../../library/urllib.request.rst:752 msgid "" "Every handler with a method named like :meth:`!_response` has that " "method called to post-process the response." msgstr "" -#: ../../library/urllib.request.rst:759 msgid "BaseHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:761 msgid "" ":class:`BaseHandler` objects provide a couple of methods that are directly " "useful, and others that are meant to be used by derived classes. These are " "intended for direct use:" msgstr "" -#: ../../library/urllib.request.rst:768 msgid "Add a director as parent." msgstr "" -#: ../../library/urllib.request.rst:773 msgid "Remove any parents." msgstr "" -#: ../../library/urllib.request.rst:775 msgid "" "The following attribute and methods should only be used by classes derived " "from :class:`BaseHandler`." msgstr "" -#: ../../library/urllib.request.rst:780 msgid "" "The convention has been adopted that subclasses defining :meth:`!" -"_request` or :meth:`!_response` methods are " -"named :class:`!\\*Processor`; all others are named :class:`!\\*Handler`." +"_request` or :meth:`!_response` methods are named :class:" +"`!\\*Processor`; all others are named :class:`!\\*Handler`." msgstr "" -#: ../../library/urllib.request.rst:787 msgid "" "A valid :class:`OpenerDirector`, which can be used to open using a different " "protocol, or handle errors." msgstr "" -#: ../../library/urllib.request.rst:793 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs." msgstr "" -#: ../../library/urllib.request.rst:796 msgid "" -"This method, if implemented, will be called by the " -"parent :class:`OpenerDirector`. It should return a file-like object as " -"described in the return value of the :meth:`~OpenerDirector.open` method " -"of :class:`OpenerDirector`, or ``None``. It should " -"raise :exc:`~urllib.error.URLError`, unless a truly exceptional thing " -"happens (for example, :exc:`MemoryError` should not be mapped " -"to :exc:`~urllib.error.URLError`)." +"This method, if implemented, will be called by the parent :class:" +"`OpenerDirector`. It should return a file-like object as described in the " +"return value of the :meth:`~OpenerDirector.open` method of :class:" +"`OpenerDirector`, or ``None``. It should raise :exc:`~urllib.error." +"URLError`, unless a truly exceptional thing happens (for example, :exc:" +"`MemoryError` should not be mapped to :exc:`~urllib.error.URLError`)." msgstr "" -#: ../../library/urllib.request.rst:803 msgid "This method will be called before any protocol-specific open method." msgstr "" -#: ../../library/urllib.request.rst:810 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to handle URLs with the given protocol." msgstr "" -#: ../../library/urllib.request.rst:813 msgid "" -"This method, if defined, will be called by the " -"parent :class:`OpenerDirector`. Return values should be the same as " -"for :meth:`~BaseHandler.default_open`." +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. Return values should be the same as for :meth:" +"`~BaseHandler.default_open`." msgstr "" -#: ../../library/urllib.request.rst:819 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs with no specific registered handler " "to open it." msgstr "" -#: ../../library/urllib.request.rst:823 msgid "" -"This method, if implemented, will be called by " -"the :attr:`parent` :class:`OpenerDirector`. Return values should be the " -"same as for :meth:`default_open`." +"This method, if implemented, will be called by the :attr:`parent` :class:" +"`OpenerDirector`. Return values should be the same as for :meth:" +"`default_open`." msgstr "" -#: ../../library/urllib.request.rst:830 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "override it if they intend to provide a catch-all for otherwise unhandled " -"HTTP errors. It will be called automatically by " -"the :class:`OpenerDirector` getting the error, and should not normally be " -"called in other circumstances." +"HTTP errors. It will be called automatically by the :class:" +"`OpenerDirector` getting the error, and should not normally be called in " +"other circumstances." msgstr "" -#: ../../library/urllib.request.rst:835 msgid "" ":class:`OpenerDirector` will call this method with five positional arguments:" msgstr "" -#: ../../library/urllib.request.rst:837 msgid "a :class:`Request` object," msgstr "" -#: ../../library/urllib.request.rst:838 msgid "a file-like object with the HTTP error body," msgstr "" -#: ../../library/urllib.request.rst:839 msgid "the three-digit code of the error, as a string," msgstr "" -#: ../../library/urllib.request.rst:840 msgid "the user-visible explanation of the code, as a string, and" msgstr "" -#: ../../library/urllib.request.rst:841 msgid "the headers of the error, as a mapping object." msgstr "" -#: ../../library/urllib.request.rst:843 msgid "" -"Return values and exceptions raised should be the same as those " -"of :func:`urlopen`." +"Return values and exceptions raised should be the same as those of :func:" +"`urlopen`." msgstr "" -#: ../../library/urllib.request.rst:850 msgid "" "*nnn* should be a three-digit HTTP error code. This method is also not " "defined in :class:`BaseHandler`, but will be called, if it exists, on an " "instance of a subclass, when an HTTP error with code *nnn* occurs." msgstr "" -#: ../../library/urllib.request.rst:854 msgid "Subclasses should override this method to handle specific HTTP errors." msgstr "" -#: ../../library/urllib.request.rst:856 msgid "" -"Arguments, return values and exceptions raised should be the same as " -"for :meth:`~BaseHandler.http_error_default`." +"Arguments, return values and exceptions raised should be the same as for :" +"meth:`~BaseHandler.http_error_default`." msgstr "" -#: ../../library/urllib.request.rst:864 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to pre-process requests of the given protocol." msgstr "" -#: ../../library/urllib.request.rst:867 msgid "" -"This method, if defined, will be called by the " -"parent :class:`OpenerDirector`. *req* will be a :class:`Request` object. The " -"return value should be a :class:`Request` object." +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. *req* will be a :class:`Request` object. The return value " +"should be a :class:`Request` object." msgstr "" -#: ../../library/urllib.request.rst:876 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to post-process responses of the given protocol." msgstr "" -#: ../../library/urllib.request.rst:879 msgid "" -"This method, if defined, will be called by the " -"parent :class:`OpenerDirector`. *req* will be a :class:`Request` object. " -"*response* will be an object implementing the same interface as the return " -"value of :func:`urlopen`. The return value should implement the same " -"interface as the return value of :func:`urlopen`." +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. *req* will be a :class:`Request` object. *response* will " +"be an object implementing the same interface as the return value of :func:" +"`urlopen`. The return value should implement the same interface as the " +"return value of :func:`urlopen`." msgstr "" -#: ../../library/urllib.request.rst:889 msgid "HTTPRedirectHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:893 msgid "" "Some HTTP redirections require action from this module's client code. If " "this is the case, :exc:`~urllib.error.HTTPError` is raised. See :rfc:`2616` " "for details of the precise meanings of the various redirection codes." msgstr "" -#: ../../library/urllib.request.rst:897 msgid "" "An :exc:`~urllib.error.HTTPError` exception raised as a security " "consideration if the HTTPRedirectHandler is presented with a redirected URL " "which is not an HTTP, HTTPS or FTP URL." msgstr "" -#: ../../library/urllib.request.rst:904 msgid "" "Return a :class:`Request` or ``None`` in response to a redirect. This is " "called by the default implementations of the :meth:`!http_error_30\\*` " "methods when a redirection is received from the server. If a redirection " "should take place, return a new :class:`Request` to allow :meth:`!" -"http_error_30\\*` to perform the redirect to *newurl*. Otherwise, " -"raise :exc:`~urllib.error.HTTPError` if no other handler should try to " -"handle this URL, or return ``None`` if you can't but another handler might." +"http_error_30\\*` to perform the redirect to *newurl*. Otherwise, raise :" +"exc:`~urllib.error.HTTPError` if no other handler should try to handle this " +"URL, or return ``None`` if you can't but another handler might." msgstr "" -#: ../../library/urllib.request.rst:914 msgid "" -"The default implementation of this method does not strictly " -"follow :rfc:`2616`, which says that 301 and 302 responses to ``POST`` " -"requests must not be automatically redirected without confirmation by the " -"user. In reality, browsers do allow automatic redirection of these " -"responses, changing the POST to a ``GET``, and the default implementation " -"reproduces this behavior." +"The default implementation of this method does not strictly follow :rfc:" +"`2616`, which says that 301 and 302 responses to ``POST`` requests must not " +"be automatically redirected without confirmation by the user. In reality, " +"browsers do allow automatic redirection of these responses, changing the " +"POST to a ``GET``, and the default implementation reproduces this behavior." msgstr "" -#: ../../library/urllib.request.rst:923 msgid "" "Redirect to the ``Location:`` or ``URI:`` URL. This method is called by the " "parent :class:`OpenerDirector` when getting an HTTP 'moved permanently' " "response." msgstr "" -#: ../../library/urllib.request.rst:929 msgid "" "The same as :meth:`http_error_301`, but called for the 'found' response." msgstr "" -#: ../../library/urllib.request.rst:934 msgid "" "The same as :meth:`http_error_301`, but called for the 'see other' response." msgstr "" -#: ../../library/urllib.request.rst:939 msgid "" "The same as :meth:`http_error_301`, but called for the 'temporary redirect' " "response. It does not allow changing the request method from ``POST`` to " "``GET``." msgstr "" -#: ../../library/urllib.request.rst:946 msgid "" "The same as :meth:`http_error_301`, but called for the 'permanent redirect' " "response. It does not allow changing the request method from ``POST`` to " "``GET``." msgstr "" -#: ../../library/urllib.request.rst:956 msgid "HTTPCookieProcessor Objects" msgstr "" -#: ../../library/urllib.request.rst:958 msgid ":class:`HTTPCookieProcessor` instances have one attribute:" msgstr "" -#: ../../library/urllib.request.rst:962 msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." msgstr "" -#: ../../library/urllib.request.rst:968 msgid "ProxyHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:974 msgid "" "The :class:`ProxyHandler` will have a method :meth:`!_open` for " "every *protocol* which has a proxy in the *proxies* dictionary given in the " @@ -1185,17 +998,14 @@ msgid "" "actually execute the protocol." msgstr "" -#: ../../library/urllib.request.rst:984 msgid "HTTPPasswordMgr Objects" msgstr "" -#: ../../library/urllib.request.rst:986 msgid "" -"These methods are available on :class:`HTTPPasswordMgr` " -"and :class:`HTTPPasswordMgrWithDefaultRealm` objects." +"These methods are available on :class:`HTTPPasswordMgr` and :class:" +"`HTTPPasswordMgrWithDefaultRealm` objects." msgstr "" -#: ../../library/urllib.request.rst:992 msgid "" "*uri* can be either a single URI, or a sequence of URIs. *realm*, *user* and " "*passwd* must be strings. This causes ``(user, passwd)`` to be used as " @@ -1203,65 +1013,54 @@ msgid "" "of the given URIs is given." msgstr "" -#: ../../library/urllib.request.rst:1000 msgid "" "Get user/password for given realm and URI, if any. This method will return " "``(None, None)`` if there is no matching user/password." msgstr "" -#: ../../library/urllib.request.rst:1003 msgid "" "For :class:`HTTPPasswordMgrWithDefaultRealm` objects, the realm ``None`` " "will be searched if the given *realm* has no matching user/password." msgstr "" -#: ../../library/urllib.request.rst:1010 msgid "HTTPPasswordMgrWithPriorAuth Objects" msgstr "" -#: ../../library/urllib.request.rst:1012 msgid "" "This password manager extends :class:`HTTPPasswordMgrWithDefaultRealm` to " "support tracking URIs for which authentication credentials should always be " "sent." msgstr "" -#: ../../library/urllib.request.rst:1019 msgid "" -"*realm*, *uri*, *user*, *passwd* are as " -"for :meth:`HTTPPasswordMgr.add_password`. *is_authenticated* sets the " -"initial value of the ``is_authenticated`` flag for the given URI or list of " -"URIs. If *is_authenticated* is specified as ``True``, *realm* is ignored." +"*realm*, *uri*, *user*, *passwd* are as for :meth:`HTTPPasswordMgr." +"add_password`. *is_authenticated* sets the initial value of the " +"``is_authenticated`` flag for the given URI or list of URIs. If " +"*is_authenticated* is specified as ``True``, *realm* is ignored." msgstr "" -#: ../../library/urllib.request.rst:1027 msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" msgstr "" -#: ../../library/urllib.request.rst:1033 msgid "" "Update the ``is_authenticated`` flag for the given *uri* or list of URIs." msgstr "" -#: ../../library/urllib.request.rst:1039 msgid "" "Returns the current state of the ``is_authenticated`` flag for the given URI." msgstr "" -#: ../../library/urllib.request.rst:1046 msgid "AbstractBasicAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1051 msgid "" "Handle an authentication request by getting a user/password pair, and re-" "trying the request. *authreq* should be the name of the header where the " "information about the realm is included in the request, *host* specifies the " -"URL and path to authenticate for, *req* should be the " -"(failed) :class:`Request` object, and *headers* should be the error headers." +"URL and path to authenticate for, *req* should be the (failed) :class:" +"`Request` object, and *headers* should be the error headers." msgstr "" -#: ../../library/urllib.request.rst:1057 msgid "" "*host* is either an authority (e.g. ``\"python.org\"``) or a URL containing " "an authority component (e.g. ``\"http://python.org/\"``). In either case, " @@ -1269,24 +1068,18 @@ msgid "" "and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." msgstr "" -#: ../../library/urllib.request.rst:1066 msgid "HTTPBasicAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1071 ../../library/urllib.request.rst:1082 -#: ../../library/urllib.request.rst:1107 ../../library/urllib.request.rst:1118 msgid "Retry the request with authentication information, if available." msgstr "" -#: ../../library/urllib.request.rst:1077 msgid "ProxyBasicAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1088 msgid "AbstractDigestAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1093 msgid "" "*authreq* should be the name of the header where the information about the " "realm is included in the request, *host* should be the host to authenticate " @@ -1294,55 +1087,44 @@ msgid "" "should be the error headers." msgstr "" -#: ../../library/urllib.request.rst:1102 msgid "HTTPDigestAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1113 msgid "ProxyDigestAuthHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1124 msgid "HTTPHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1129 msgid "" -"Send an HTTP request, which can be either GET or POST, depending on " -"``req.data``." +"Send an HTTP request, which can be either GET or POST, depending on ``req." +"data``." msgstr "" -#: ../../library/urllib.request.rst:1136 msgid "HTTPSHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1141 msgid "" -"Send an HTTPS request, which can be either GET or POST, depending on " -"``req.data``." +"Send an HTTPS request, which can be either GET or POST, depending on ``req." +"data``." msgstr "" -#: ../../library/urllib.request.rst:1148 msgid "FileHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1153 msgid "" "Open the file locally, if there is no host name, or the host name is " "``'localhost'``." msgstr "" -#: ../../library/urllib.request.rst:1156 msgid "" "This method is applicable only for local hostnames. When a remote hostname " "is given, a :exc:`~urllib.error.URLError` is raised." msgstr "" -#: ../../library/urllib.request.rst:1164 msgid "DataHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1168 msgid "" "Read a data URL. This kind of URL contains the content encoded in the URL " "itself. The data URL syntax is specified in :rfc:`2397`. This implementation " @@ -1352,83 +1134,66 @@ msgid "" "implementation will raise a :exc:`ValueError` in that case." msgstr "" -#: ../../library/urllib.request.rst:1179 msgid "FTPHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1184 msgid "" "Open the FTP file indicated by *req*. The login is always done with empty " "username and password." msgstr "" -#: ../../library/urllib.request.rst:1191 msgid "CacheFTPHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1193 msgid "" ":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " "following additional methods:" msgstr "" -#: ../../library/urllib.request.rst:1199 msgid "Set timeout of connections to *t* seconds." msgstr "" -#: ../../library/urllib.request.rst:1204 msgid "Set maximum number of cached connections to *m*." msgstr "" -#: ../../library/urllib.request.rst:1210 msgid "UnknownHandler Objects" msgstr "" -#: ../../library/urllib.request.rst:1215 msgid "Raise a :exc:`~urllib.error.URLError` exception." msgstr "" -#: ../../library/urllib.request.rst:1221 msgid "HTTPErrorProcessor Objects" msgstr "" -#: ../../library/urllib.request.rst:1227 msgid "For 200 error codes, the response object is returned immediately." msgstr "" -#: ../../library/urllib.request.rst:1229 msgid "" "For non-200 error codes, this simply passes the job on to the :meth:`!" "http_error_\\` handler methods, via :meth:`OpenerDirector.error`. " -"Eventually, :class:`HTTPDefaultErrorHandler` will raise " -"an :exc:`~urllib.error.HTTPError` if no other handler handles the error." +"Eventually, :class:`HTTPDefaultErrorHandler` will raise an :exc:`~urllib." +"error.HTTPError` if no other handler handles the error." msgstr "" -#: ../../library/urllib.request.rst:1237 msgid "Process HTTPS error responses." msgstr "" -#: ../../library/urllib.request.rst:1239 msgid "The behavior is same as :meth:`http_response`." msgstr "" -#: ../../library/urllib.request.rst:1245 msgid "Examples" msgstr "" -#: ../../library/urllib.request.rst:1247 msgid "" "In addition to the examples below, more examples are given in :ref:`urllib-" "howto`." msgstr "" -#: ../../library/urllib.request.rst:1250 msgid "" "This example gets the python.org main page and displays the first 300 bytes " "of it::" msgstr "" -#: ../../library/urllib.request.rst:1253 msgid "" ">>> import urllib.request\n" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" @@ -1440,7 +1205,6 @@ msgid "" "class=\"no-js ie8 lt-ie9\">" msgstr "" -#: ../../library/urllib.request.rst:1259 msgid "" "Note that urlopen returns a bytes object. This is because there is no way " "for urlopen to automatically determine the encoding of the byte stream it " @@ -1449,26 +1213,22 @@ msgid "" "appropriate encoding." msgstr "" -#: ../../library/urllib.request.rst:1265 msgid "" "The following HTML spec document, https://html.spec.whatwg.org/#charset, " "lists the various ways in which an HTML or an XML document could have " "specified its encoding information." msgstr "" -#: ../../library/urllib.request.rst:1269 msgid "" "For additional information, see the W3C document: https://www.w3.org/" "International/questions/qa-html-encoding-declarations." msgstr "" -#: ../../library/urllib.request.rst:1271 msgid "" "As the python.org website uses *utf-8* encoding as specified in its meta " "tag, we will use the same for decoding the bytes object::" msgstr "" -#: ../../library/urllib.request.rst:1274 msgid "" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" "... print(f.read(100).decode('utf-8'))\n" @@ -1479,13 +1239,11 @@ msgid "" ">> import urllib.request\n" ">>> f = urllib.request.urlopen('http://www.python.org/')\n" @@ -1500,14 +1258,12 @@ msgid "" "', char.text)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:348 msgid "" "A better way to search the namespaced XML example is to create a dictionary " "with your own prefixes and use those in the search functions::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:351 msgid "" "ns = {'real_person': 'http://people.example.com',\n" " 'role': 'http://characters.example.com'}\n" @@ -506,11 +444,9 @@ msgid "" " print(' |-->', char.text)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:360 msgid "These two approaches both output::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:362 msgid "" "John Cleese\n" " |--> Lancelot\n" @@ -521,31 +457,25 @@ msgid "" " |--> Commander Clement" msgstr "" -#: ../../library/xml.etree.elementtree.rst:374 msgid "XPath support" msgstr "" -#: ../../library/xml.etree.elementtree.rst:376 msgid "" -"This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to " -"support a small subset of the abbreviated syntax; a full XPath engine is " -"outside the scope of the module." +"This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to support a " +"small subset of the abbreviated syntax; a full XPath engine is outside the " +"scope of the module." msgstr "" -#: ../../library/xml.etree.elementtree.rst:382 -#: ../../library/xml.etree.elementtree.rst:781 msgid "Example" msgstr "" -#: ../../library/xml.etree.elementtree.rst:384 msgid "" "Here's an example that demonstrates some of the XPath capabilities of the " -"module. We'll be using the ``countrydata`` XML document from " -"the :ref:`Parsing XML ` section::" +"module. We'll be using the ``countrydata`` XML document from the :ref:" +"`Parsing XML ` section::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:388 msgid "" "import xml.etree.ElementTree as ET\n" "\n" @@ -568,35 +498,28 @@ msgid "" "root.findall(\".//neighbor[2]\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:408 msgid "" "For XML with namespaces, use the usual qualified ``{namespace}tag`` " "notation::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:410 msgid "" "# All dublin-core \"title\" tags in the document\n" "root.findall(\".//{http://purl.org/dc/elements/1.1/}title\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:415 msgid "Supported XPath syntax" msgstr "" -#: ../../library/xml.etree.elementtree.rst:420 msgid "Syntax" msgstr "" -#: ../../library/xml.etree.elementtree.rst:420 msgid "Meaning" msgstr "Jelentés" -#: ../../library/xml.etree.elementtree.rst:422 msgid "``tag``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:422 msgid "" "Selects all child elements with the given tag. For example, ``spam`` selects " "all child elements named ``spam``, and ``spam/egg`` selects all " @@ -606,133 +529,106 @@ msgid "" "not in a namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:431 msgid "Support for star-wildcards was added." msgstr "" -#: ../../library/xml.etree.elementtree.rst:434 msgid "``*``" -msgstr "``*``" +msgstr "" -#: ../../library/xml.etree.elementtree.rst:434 msgid "" "Selects all child elements, including comments and processing instructions. " "For example, ``*/egg`` selects all grandchildren named ``egg``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:438 msgid "``.``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:438 msgid "" "Selects the current node. This is mostly useful at the beginning of the " "path, to indicate that it's a relative path." msgstr "" -#: ../../library/xml.etree.elementtree.rst:442 msgid "``//``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:442 msgid "" "Selects all subelements, on all levels beneath the current element. For " "example, ``.//egg`` selects all ``egg`` elements in the entire tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:446 msgid "``..``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:446 msgid "" "Selects the parent element. Returns ``None`` if the path attempts to reach " "the ancestors of the start element (the element ``find`` was called on)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:450 msgid "``[@attrib]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:450 msgid "Selects all elements that have the given attribute." msgstr "" -#: ../../library/xml.etree.elementtree.rst:452 msgid "``[@attrib='value']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:452 msgid "" "Selects all elements for which the given attribute has the given value. The " "value cannot contain quotes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:456 msgid "``[@attrib!='value']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:456 msgid "" "Selects all elements for which the given attribute does not have the given " "value. The value cannot contain quotes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:462 msgid "``[tag]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:462 msgid "" "Selects all elements that have a child named ``tag``. Only immediate " "children are supported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:465 msgid "``[.='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:465 msgid "" "Selects all elements whose complete text content, including descendants, " "equals the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:470 msgid "``[.!='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:470 msgid "" "Selects all elements whose complete text content, including descendants, " "does not equal the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:476 msgid "``[tag='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:476 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, equals the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:480 msgid "``[tag!='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:480 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, does not equal the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:486 msgid "``[position]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:486 msgid "" "Selects all elements that are located at the given position. The position " "can be either an integer (1 is the first position), the expression " @@ -740,28 +636,21 @@ msgid "" "position (e.g. ``last()-1``)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:493 msgid "" "Predicates (expressions within square brackets) must be preceded by a tag " "name, an asterisk, or another predicate. ``position`` predicates must be " "preceded by a tag name." msgstr "" -#: ../../library/xml.etree.elementtree.rst:498 -#: ../../library/xml.etree.elementtree.rst:833 msgid "Reference" msgstr "" -#: ../../library/xml.etree.elementtree.rst:503 -#: ../../library/xml.etree.elementtree.rst:838 msgid "Functions" msgstr "" -#: ../../library/xml.etree.elementtree.rst:507 msgid "`C14N 2.0 `_ transformation function." msgstr "" -#: ../../library/xml.etree.elementtree.rst:509 msgid "" "Canonicalization is a way to normalise XML output in a way that allows byte-" "by-byte comparisons and digital signatures. It reduces the freedom that XML " @@ -770,7 +659,6 @@ msgid "" "declarations, the ordering of attributes, and ignorable whitespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:515 msgid "" "This function takes an XML data string (*xml_data*) or a file path or file-" "like object (*from_file*) as input, converts it to the canonical form, and " @@ -779,11 +667,9 @@ msgid "" "should therefore be opened in text mode with ``utf-8`` encoding." msgstr "" -#: ../../library/xml.etree.elementtree.rst:522 msgid "Typical uses::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:524 msgid "" "xml_data = \"...\"\n" "print(canonicalize(xml_data))\n" @@ -795,59 +681,45 @@ msgid "" " canonicalize(from_file=\"inputfile.xml\", out=out_file)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:533 msgid "The configuration *options* are as follows:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:535 msgid "*with_comments*: set to true to include comments (default: false)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:536 msgid "" "*strip_text*: set to true to strip whitespace before and after text content" msgstr "" -#: ../../library/xml.etree.elementtree.rst:537 -#: ../../library/xml.etree.elementtree.rst:539 msgid "(default: false)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:538 msgid "" -"*rewrite_prefixes*: set to true to replace namespace prefixes by \"n{number}" -"\"" +"*rewrite_prefixes*: set to true to replace namespace prefixes by " +"\"n{number}\"" msgstr "" -#: ../../library/xml.etree.elementtree.rst:540 msgid "*qname_aware_tags*: a set of qname aware tag names in which prefixes" msgstr "" -#: ../../library/xml.etree.elementtree.rst:541 -#: ../../library/xml.etree.elementtree.rst:543 msgid "should be replaced in text content (default: empty)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:542 msgid "" "*qname_aware_attrs*: a set of qname aware attribute names in which prefixes" msgstr "" -#: ../../library/xml.etree.elementtree.rst:544 msgid "*exclude_attrs*: a set of attribute names that should not be serialised" msgstr "" -#: ../../library/xml.etree.elementtree.rst:545 msgid "*exclude_tags*: a set of tag names that should not be serialised" msgstr "" -#: ../../library/xml.etree.elementtree.rst:547 msgid "" "In the option list above, \"a set\" refers to any collection or iterable of " "strings, no ordering is expected." msgstr "" -#: ../../library/xml.etree.elementtree.rst:555 msgid "" "Comment element factory. This factory function creates a special element " "that will be serialized as an XML comment by the standard serializer. The " @@ -856,45 +728,38 @@ msgid "" "representing a comment." msgstr "" -#: ../../library/xml.etree.elementtree.rst:561 msgid "" "Note that :class:`XMLParser` skips over comments in the input instead of " "creating comment objects for them. An :class:`ElementTree` will only contain " -"comment nodes if they have been inserted into to the tree using one of " -"the :class:`Element` methods." +"comment nodes if they have been inserted into to the tree using one of the :" +"class:`Element` methods." msgstr "" -#: ../../library/xml.etree.elementtree.rst:568 msgid "" "Writes an element tree or element structure to sys.stdout. This function " "should be used for debugging only." msgstr "" -#: ../../library/xml.etree.elementtree.rst:571 msgid "" "The exact output format is implementation dependent. In this version, it's " "written as an ordinary XML file." msgstr "" -#: ../../library/xml.etree.elementtree.rst:574 msgid "*elem* is an element tree or an individual element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:576 msgid "" "The :func:`dump` function now preserves the attribute order specified by the " "user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:583 msgid "" "Parses an XML section from a string constant. Same as :func:`XML`. *text* " "is a string containing XML data. *parser* is an optional parser instance. " -"If not given, the standard :class:`XMLParser` parser is used. Returns " -"an :class:`Element` instance." +"If not given, the standard :class:`XMLParser` parser is used. Returns an :" +"class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:591 msgid "" "Parses an XML document from a sequence of string fragments. *sequence* is a " "list or other sequence containing XML data fragments. *parser* is an " @@ -902,7 +767,6 @@ msgid "" "parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:601 msgid "" "Appends whitespace to the subtree to indent the tree visually. This can be " "used to generate pretty-printed XML output. *tree* can be an Element or " @@ -912,13 +776,11 @@ msgid "" "indentation level as *level*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:613 msgid "" "Check if an object appears to be a valid element object. *element* is an " "element instance. Return ``True`` if this is an element object." msgstr "" -#: ../../library/xml.etree.elementtree.rst:619 msgid "" "Parses an XML section into an element tree incrementally, and reports what's " "going on to the user. *source* is a filename or :term:`file object` " @@ -936,7 +798,6 @@ msgid "" "file object if *source* is a filename." msgstr "" -#: ../../library/xml.etree.elementtree.rst:635 msgid "" "Note that while :func:`iterparse` builds the tree incrementally, it issues " "blocking reads on *source* (or the file it names). As such, it's unsuitable " @@ -944,7 +805,6 @@ msgid "" "parsing, see :class:`XMLPullParser`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:642 msgid "" ":func:`iterparse` only guarantees that it has seen the \">\" character of a " "starting tag when it emits a \"start\" event, so the attributes are defined, " @@ -953,33 +813,25 @@ msgid "" "present." msgstr "" -#: ../../library/xml.etree.elementtree.rst:648 -#: ../../library/xml.etree.elementtree.rst:1521 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" -#: ../../library/xml.etree.elementtree.rst:650 msgid "The *parser* argument." msgstr "" -#: ../../library/xml.etree.elementtree.rst:653 -#: ../../library/xml.etree.elementtree.rst:1525 msgid "The ``comment`` and ``pi`` events were added." msgstr "" -#: ../../library/xml.etree.elementtree.rst:656 msgid "Added the :meth:`!close` method." msgstr "" -#: ../../library/xml.etree.elementtree.rst:662 msgid "" "Parses an XML section into an element tree. *source* is a filename or file " "object containing XML data. *parser* is an optional parser instance. If " -"not given, the standard :class:`XMLParser` parser is used. Returns " -"an :class:`ElementTree` instance." +"not given, the standard :class:`XMLParser` parser is used. Returns an :" +"class:`ElementTree` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:670 msgid "" "PI element factory. This factory function creates a special element that " "will be serialized as an XML processing instruction. *target* is a string " @@ -987,7 +839,6 @@ msgid "" "given. Returns an element instance, representing a processing instruction." msgstr "" -#: ../../library/xml.etree.elementtree.rst:675 msgid "" "Note that :class:`XMLParser` skips over processing instructions in the input " "instead of creating PI objects for them. An :class:`ElementTree` will only " @@ -995,7 +846,6 @@ msgid "" "tree using one of the :class:`Element` methods." msgstr "" -#: ../../library/xml.etree.elementtree.rst:683 msgid "" "Registers a namespace prefix. The registry is global, and any existing " "mapping for either the given prefix or the namespace URI will be removed. " @@ -1004,13 +854,11 @@ msgid "" "all possible." msgstr "" -#: ../../library/xml.etree.elementtree.rst:694 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:697 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *parent* is the parent element. *tag* is " @@ -1019,7 +867,6 @@ msgid "" "arguments. Returns an element instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:708 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1031,24 +878,17 @@ msgid "" "Returns an (optionally) encoded string containing the XML data." msgstr "" -#: ../../library/xml.etree.elementtree.rst:717 -#: ../../library/xml.etree.elementtree.rst:744 -#: ../../library/xml.etree.elementtree.rst:1198 msgid "Added the *short_empty_elements* parameter." msgstr "" -#: ../../library/xml.etree.elementtree.rst:720 -#: ../../library/xml.etree.elementtree.rst:747 msgid "Added the *xml_declaration* and *default_namespace* parameters." msgstr "" -#: ../../library/xml.etree.elementtree.rst:723 msgid "" "The :func:`tostring` function now preserves the attribute order specified by " "the user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:732 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1058,47 +898,40 @@ msgid "" "``\"xml\"``). *xml_declaration*, *default_namespace* and " "*short_empty_elements* has the same meaning as in :meth:`ElementTree.write`. " "Returns a list of (optionally) encoded strings containing the XML data. It " -"does not guarantee any specific sequence, except that " -"``b\"\".join(tostringlist(element)) == tostring(element)``." +"does not guarantee any specific sequence, except that ``b\"\"." +"join(tostringlist(element)) == tostring(element)``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:750 msgid "" "The :func:`tostringlist` function now preserves the attribute order " "specified by the user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:757 msgid "" "Parses an XML section from a string constant. This function can be used to " "embed \"XML literals\" in Python code. *text* is a string containing XML " -"data. *parser* is an optional parser instance. If not given, the " -"standard :class:`XMLParser` parser is used. Returns an :class:`Element` " -"instance." +"data. *parser* is an optional parser instance. If not given, the standard :" +"class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:765 msgid "" "Parses an XML section from a string constant, and also returns a dictionary " "which maps from element id:s to elements. *text* is a string containing XML " -"data. *parser* is an optional parser instance. If not given, the " -"standard :class:`XMLParser` parser is used. Returns a tuple containing " -"an :class:`Element` instance and a dictionary." +"data. *parser* is an optional parser instance. If not given, the standard :" +"class:`XMLParser` parser is used. Returns a tuple containing an :class:" +"`Element` instance and a dictionary." msgstr "" -#: ../../library/xml.etree.elementtree.rst:775 msgid "XInclude support" msgstr "" -#: ../../library/xml.etree.elementtree.rst:777 msgid "" -"This module provides limited support for `XInclude directives `_, via the :mod:`xml.etree.ElementInclude` helper " +"This module provides limited support for `XInclude directives `_, via the :mod:`xml.etree.ElementInclude` helper " "module. This module can be used to insert subtrees and text strings into " "element trees, based on information in the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:783 msgid "" "Here's an example that demonstrates use of the XInclude module. To include " "an XML document in the current document, use the ``{http://www.w3.org/2001/" @@ -1106,7 +939,6 @@ msgid "" "and use the **href** attribute to specify the document to include." msgstr "" -#: ../../library/xml.etree.elementtree.rst:785 msgid "" "\n" "\n" @@ -1114,20 +946,17 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:792 msgid "" "By default, the **href** attribute is treated as a file name. You can use " "custom loaders to override this behaviour. Also note that the standard " "helper does not support XPointer syntax." msgstr "" -#: ../../library/xml.etree.elementtree.rst:794 msgid "" -"To process this file, load it as usual, and pass the root element to " -"the :mod:`xml.etree.ElementTree` module:" +"To process this file, load it as usual, and pass the root element to the :" +"mod:`xml.etree.ElementTree` module:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:796 msgid "" "from xml.etree import ElementTree, ElementInclude\n" "\n" @@ -1137,33 +966,28 @@ msgid "" "ElementInclude.include(root)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:805 msgid "" "The ElementInclude module replaces the ``{http://www.w3.org/2001/XInclude}" "include`` element with the root element from the **source.xml** document. " "The result might look something like this:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:807 msgid "" "\n" " This is a paragraph.\n" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:813 msgid "" "If the **parse** attribute is omitted, it defaults to \"xml\". The href " "attribute is required." msgstr "" -#: ../../library/xml.etree.elementtree.rst:815 msgid "" "To include a text document, use the ``{http://www.w3.org/2001/XInclude}" "include`` element, and set the **parse** attribute to \"text\":" msgstr "" -#: ../../library/xml.etree.elementtree.rst:817 msgid "" "\n" "\n" @@ -1171,18 +995,15 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:824 msgid "The result might look something like:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:826 msgid "" "\n" " Copyright (c) 2003.\n" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:844 msgid "" "Default loader. This default loader reads an included resource from disk. " "*href* is a URL. *parse* is for parse mode either \"xml\" or \"text\". " @@ -1193,7 +1014,6 @@ msgid "" "``None`` or raise an exception." msgstr "" -#: ../../library/xml.etree.elementtree.rst:855 msgid "" "This function expands XInclude directives in-place in tree pointed by " "*elem*. *elem* is either the root :class:`~xml.etree.ElementTree.Element` or " @@ -1206,21 +1026,17 @@ msgid "" "malicious content explosion. Pass ``None`` to disable the limitation." msgstr "" -#: ../../library/xml.etree.elementtree.rst:865 msgid "Added the *base_url* and *max_depth* parameters." msgstr "" -#: ../../library/xml.etree.elementtree.rst:872 msgid "Element Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:880 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" -#: ../../library/xml.etree.elementtree.rst:883 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " @@ -1228,13 +1044,11 @@ msgid "" "additional attributes, given as keyword arguments." msgstr "" -#: ../../library/xml.etree.elementtree.rst:891 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:898 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -1245,11 +1059,9 @@ msgid "" "the XML data" msgstr "" -#: ../../library/xml.etree.elementtree.rst:906 msgid "1234" msgstr "" -#: ../../library/xml.etree.elementtree.rst:910 msgid "" "the *a* element has ``None`` for both *text* and *tail* attributes, the *b* " "element has *text* ``\"1\"`` and *tail* ``\"4\"``, the *c* element has " @@ -1257,17 +1069,14 @@ msgid "" "``None`` and *tail* ``\"3\"``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:915 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example " "``\"\".join(element.itertext())``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:918 msgid "Applications may store arbitrary objects in these attributes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:923 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -1276,59 +1085,48 @@ msgid "" "implementations, use the dictionary methods below whenever possible." msgstr "" -#: ../../library/xml.etree.elementtree.rst:929 msgid "The following dictionary-like methods work on the element attributes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:934 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:940 msgid "Gets the element attribute named *key*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:942 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" -#: ../../library/xml.etree.elementtree.rst:947 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." msgstr "" -#: ../../library/xml.etree.elementtree.rst:953 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." msgstr "" -#: ../../library/xml.etree.elementtree.rst:959 msgid "Set the attribute *key* on the element to *value*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:961 msgid "The following methods work on the element's children (subelements)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:966 msgid "" "Adds the element *subelement* to the end of this element's internal list of " -"subelements. Raises :exc:`TypeError` if *subelement* is not " -"an :class:`Element`." +"subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" +"`Element`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:973 msgid "" "Appends *subelements* from an iterable of elements. Raises :exc:`TypeError` " "if a subelement is not an :class:`Element`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:981 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -1337,7 +1135,6 @@ msgid "" "expression into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:990 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -1346,7 +1143,6 @@ msgid "" "expression into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:999 msgid "" "Finds text for the first subelement matching *match*. *match* may be a tag " "name or a :ref:`path `. Returns the text content of the " @@ -1357,13 +1153,11 @@ msgid "" "into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1010 msgid "" -"Inserts *subelement* at the given position in this element. " -"Raises :exc:`TypeError` if *subelement* is not an :class:`Element`." +"Inserts *subelement* at the given position in this element. Raises :exc:" +"`TypeError` if *subelement* is not an :class:`Element`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1016 msgid "" "Creates a tree :term:`iterator` with the current element as the root. The " "iterator iterates over this element and all elements below it, in document " @@ -1372,7 +1166,6 @@ msgid "" "structure is modified during iteration, the result is undefined." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1027 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -1380,33 +1173,28 @@ msgid "" "name." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1038 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1046 msgid "" "Creates a new element object of the same type as this element. Do not call " "this method, use the :func:`SubElement` factory function instead." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1052 msgid "" "Removes *subelement* from the element. Unlike the find\\* methods this " "method compares elements based on the instance identity, not on tag value or " "contents." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1056 msgid "" ":class:`Element` objects also support the following sequence type methods " -"for working with " -"subelements: :meth:`~object.__delitem__`, :meth:`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." +"for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." +"__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1061 msgid "" "Caution: Elements with no subelements will test as ``False``. In a future " "release of Python, all elements will test as ``True`` regardless of whether " @@ -1414,7 +1202,6 @@ msgid "" "None`` tests.::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1066 msgid "" "element = root.find('foo')\n" "\n" @@ -1425,11 +1212,9 @@ msgid "" " print(\"element not found\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1074 msgid "Testing the truth value of an Element emits :exc:`DeprecationWarning`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1077 msgid "" "Prior to Python 3.8, the serialisation order of the XML attributes of " "elements was artificially made predictable by sorting the attributes by " @@ -1438,18 +1223,16 @@ msgid "" "attributes were originally parsed or created by user code." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1083 msgid "" "In general, user code should try not to depend on a specific ordering of " "attributes, given that the `XML Information Set `_ explicitly excludes the attribute order from conveying " "information. Code should be prepared to deal with any ordering on input. In " "cases where deterministic XML output is required, e.g. for cryptographic " -"signing or test data sets, canonical serialisation is available with " -"the :func:`canonicalize` function." +"signing or test data sets, canonical serialisation is available with the :" +"func:`canonicalize` function." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1091 msgid "" "In cases where canonical output is not applicable but a specific attribute " "order is still desirable on output, code should aim for creating the " @@ -1459,7 +1242,6 @@ msgid "" "independently from the Element creation::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1098 msgid "" "def reorder_attributes(root):\n" " for el in root.iter():\n" @@ -1471,58 +1253,47 @@ msgid "" " attrib.update(attribs)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1111 msgid "ElementTree Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1116 msgid "" "ElementTree wrapper class. This class represents an entire element " "hierarchy, and adds some extra support for serialization to and from " "standard XML." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1120 msgid "" "*element* is the root element. The tree is initialized with the contents of " "the XML *file* if given." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1126 msgid "" "Replaces the root element for this tree. This discards the current contents " "of the tree, and replaces it with the given element. Use with care. " "*element* is an element instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1133 msgid "Same as :meth:`Element.find`, starting at the root of the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1138 msgid "Same as :meth:`Element.findall`, starting at the root of the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1143 msgid "Same as :meth:`Element.findtext`, starting at the root of the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1148 msgid "Returns the root element for this tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1153 msgid "" "Creates and returns a tree iterator for the root element. The iterator " "loops over all elements in this tree, in section order. *tag* is the tag to " "look for (default is to return all elements)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1160 msgid "Same as :meth:`Element.iterfind`, starting at the root of the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1167 msgid "" "Loads an external XML section into this element tree. *source* is a file " "name or :term:`file object`. *parser* is an optional parser instance. If " @@ -1530,10 +1301,9 @@ msgid "" "section root element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1177 msgid "" -"Writes the element tree to a file, as XML. *file* is a file name, or " -"a :term:`file object` opened for writing. *encoding* [1]_ is the output " +"Writes the element tree to a file, as XML. *file* is a file name, or a :" +"term:`file object` opened for writing. *encoding* [1]_ is the output " "encoding (default is US-ASCII). *xml_declaration* controls if an XML " "declaration should be added to the file. Use ``False`` for never, ``True`` " "for always, ``None`` for only if not US-ASCII or UTF-8 or Unicode (default " @@ -1545,7 +1315,6 @@ msgid "" "are emitted as a pair of start/end tags." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1191 msgid "" "The output is either a string (:class:`str`) or binary (:class:`bytes`). " "This is controlled by the *encoding* argument. If *encoding* is " @@ -1555,17 +1324,14 @@ msgid "" "vice versa." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1201 msgid "" "The :meth:`write` method now preserves the attribute order specified by the " "user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1206 msgid "This is the XML file that is going to be manipulated::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1208 msgid "" "\n" " \n" @@ -1578,13 +1344,11 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1218 msgid "" "Example of changing the attribute \"target\" of every link in first " "paragraph::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1220 msgid "" ">>> from xml.etree.ElementTree import ElementTree\n" ">>> tree = ElementTree()\n" @@ -1602,25 +1366,21 @@ msgid "" ">>> tree.write(\"output.xhtml\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1238 msgid "QName Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1243 msgid "" "QName wrapper. This can be used to wrap a QName attribute value, in order " "to get proper namespace handling on output. *text_or_uri* is a string " "containing the QName value, in the form {uri}local, or, if the tag argument " "is given, the URI part of a QName. If *tag* is given, the first argument is " -"interpreted as a URI, and this argument is interpreted as a local " -"name. :class:`QName` instances are opaque." +"interpreted as a URI, and this argument is interpreted as a local name. :" +"class:`QName` instances are opaque." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1255 msgid "TreeBuilder Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1261 msgid "" "Generic element structure builder. This builder converts a sequence of " "start, data, end, comment and pi method calls to a well-formed element " @@ -1628,14 +1388,12 @@ msgid "" "custom XML parser, or a parser for some other XML-like format." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1266 msgid "" "*element_factory*, when given, must be a callable accepting two positional " "arguments: a tag and a dict of attributes. It is expected to return a new " "element instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1270 msgid "" "The *comment_factory* and *pi_factory* functions, when given, should behave " "like the :func:`Comment` and :func:`ProcessingInstruction` functions to " @@ -1645,56 +1403,47 @@ msgid "" "element (but not outside of it)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1279 msgid "" "Flushes the builder buffers, and returns the toplevel document element. " "Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1285 msgid "" "Adds text to the current element. *data* is a string. This should be " "either a bytestring, or a Unicode string." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1291 msgid "" "Closes the current element. *tag* is the element name. Returns the closed " "element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1297 msgid "" "Opens a new element. *tag* is the element name. *attrs* is a dictionary " "containing element attributes. Returns the opened element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1303 msgid "" "Creates a comment with the given *text*. If ``insert_comments`` is true, " "this will also add it to the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1311 msgid "" "Creates a process instruction with the given *target* name and *text*. If " "``insert_pis`` is true, this will also add it to the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1317 msgid "" "In addition, a custom :class:`TreeBuilder` object can provide the following " "methods:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1322 msgid "" "Handles a doctype declaration. *name* is the doctype name. *pubid* is the " "public identifier. *system* is the system identifier. This method does not " "exist on the default :class:`TreeBuilder` class." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1330 msgid "" "Is called whenever the parser encounters a new namespace declaration, before " "the ``start()`` callback for the opening element that defines it. *prefix* " @@ -1702,14 +1451,12 @@ msgid "" "otherwise. *uri* is the namespace URI." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1339 msgid "" "Is called after the ``end()`` callback of an element that declared a " "namespace prefix mapping, with the name of the *prefix* that went out of " "scope." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1351 msgid "" "A `C14N 2.0 `_ writer. Arguments are the " "same as for the :func:`canonicalize` function. This class does not build a " @@ -1717,60 +1464,48 @@ msgid "" "using the *write* function." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1362 msgid "XMLParser Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1367 msgid "" -"This class is the low-level building block of the module. It " -"uses :mod:`xml.parsers.expat` for efficient, event-based parsing of XML. It " -"can be fed XML data incrementally with the :meth:`feed` method, and parsing " -"events are translated to a push API - by invoking callbacks on the *target* " -"object. If *target* is omitted, the standard :class:`TreeBuilder` is used. " -"If *encoding* [1]_ is given, the value overrides the encoding specified in " -"the XML file." +"This class is the low-level building block of the module. It uses :mod:`xml." +"parsers.expat` for efficient, event-based parsing of XML. It can be fed XML " +"data incrementally with the :meth:`feed` method, and parsing events are " +"translated to a push API - by invoking callbacks on the *target* object. If " +"*target* is omitted, the standard :class:`TreeBuilder` is used. If " +"*encoding* [1]_ is given, the value overrides the encoding specified in the " +"XML file." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1375 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument is no longer supported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1382 msgid "" "Finishes feeding data to the parser. Returns the result of calling the " "``close()`` method of the *target* passed during construction; by default, " "this is the toplevel document element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1389 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1394 -#: ../../library/xml.etree.elementtree.rst:1472 msgid "" "Triggers parsing of any previously fed unparsed data, which can be used to " "ensure more immediate feedback, in particular with Expat >=2.6.0. The " "implementation of :meth:`flush` temporarily disables reparse deferral with " "Expat (if currently enabled) and triggers a reparse. Disabling reparse " -"deferral has security consequences; please " -"see :meth:`xml.parsers.expat.xmlparser.SetReparseDeferralEnabled` for " -"details." +"deferral has security consequences; please see :meth:`xml.parsers.expat." +"xmlparser.SetReparseDeferralEnabled` for details." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1401 -#: ../../library/xml.etree.elementtree.rst:1479 msgid "" "Note that :meth:`flush` has been backported to some prior releases of " -"CPython as a security fix. Check for availability of :meth:`flush` " -"using :func:`hasattr` if used in code running across a variety of Python " -"versions." +"CPython as a security fix. Check for availability of :meth:`flush` using :" +"func:`hasattr` if used in code running across a variety of Python versions." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1409 msgid "" ":meth:`XMLParser.feed` calls *target*\\'s ``start(tag, attrs_dict)`` method " "for each opening tag, its ``end(tag)`` method for each closing tag, and data " @@ -1781,7 +1516,6 @@ msgid "" "of an XML file::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1417 msgid "" ">>> from xml.etree.ElementTree import XMLParser\n" ">>> class MaxDepth: # The target object of the parser\n" @@ -1816,11 +1550,9 @@ msgid "" "4" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1453 msgid "XMLPullParser Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1457 msgid "" "A pull parser suitable for non-blocking applications. Its input-side API is " "similar to that of :class:`XMLParser`, but instead of pushing calls to a " @@ -1832,19 +1564,16 @@ msgid "" "If *events* is omitted, only ``\"end\"`` events are reported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1468 msgid "Feed the given bytes data to the parser." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1488 msgid "" -"Signal the parser that the data stream is terminated. " -"Unlike :meth:`XMLParser.close`, this method always returns :const:`None`. " -"Any events not yet retrieved when the parser is closed can still be read " -"with :meth:`read_events`." +"Signal the parser that the data stream is terminated. Unlike :meth:" +"`XMLParser.close`, this method always returns :const:`None`. Any events not " +"yet retrieved when the parser is closed can still be read with :meth:" +"`read_events`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1495 msgid "" "Return an iterator over the events which have been encountered in the data " "fed to the parser. The iterator yields ``(event, elem)`` pairs, where " @@ -1853,25 +1582,20 @@ msgid "" "follows." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1501 msgid "``start``, ``end``: the current Element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1502 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1503 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1505 msgid "``end-ns``: :const:`None` (this may change in a future version)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1507 msgid "" "Events provided in a previous call to :meth:`read_events` will not be " "yielded again. Events are consumed from the internal queue only when they " @@ -1880,7 +1604,6 @@ msgid "" "results." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1515 msgid "" ":class:`XMLPullParser` only guarantees that it has seen the \">\" character " "of a starting tag when it emits a \"start\" event, so the attributes are " @@ -1889,11 +1612,9 @@ msgid "" "be present." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1530 msgid "Exceptions" msgstr "Kivételek" -#: ../../library/xml.etree.elementtree.rst:1534 msgid "" "XML parse error, raised by the various parsing methods in this module when " "parsing fails. The string representation of an instance of this exception " @@ -1901,22 +1622,18 @@ msgid "" "following attributes available:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1541 msgid "" -"A numeric error code from the expat parser. See the documentation " -"of :mod:`xml.parsers.expat` for the list of error codes and their meanings." +"A numeric error code from the expat parser. See the documentation of :mod:" +"`xml.parsers.expat` for the list of error codes and their meanings." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1546 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1549 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/xml.etree.elementtree.rst:1550 msgid "" "The encoding string included in XML output should conform to the appropriate " "standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See " diff --git a/library/xml.po b/library/xml.po index 4816c79..6ea1877 100644 --- a/library/xml.po +++ b/library/xml.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,26 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xml.rst:4 msgid "XML Processing Modules" msgstr "" -#: ../../library/xml.rst:12 msgid "**Source code:** :source:`Lib/xml/`" msgstr "" -#: ../../library/xml.rst:16 msgid "" "Python's interfaces for processing XML are grouped in the ``xml`` package." msgstr "" -#: ../../library/xml.rst:20 msgid "" "If you need to parse untrusted or unauthenticated data, see :ref:`xml-" "security`." msgstr "" -#: ../../library/xml.rst:23 msgid "" "It is important to note that modules in the :mod:`xml` package require that " "there be at least one SAX-compliant XML parser available. The Expat parser " @@ -45,70 +40,56 @@ msgid "" "be available." msgstr "" -#: ../../library/xml.rst:28 msgid "" "The documentation for the :mod:`xml.dom` and :mod:`xml.sax` packages are the " "definition of the Python bindings for the DOM and SAX interfaces." msgstr "" -#: ../../library/xml.rst:31 msgid "The XML handling submodules are:" msgstr "" -#: ../../library/xml.rst:33 msgid "" ":mod:`xml.etree.ElementTree`: the ElementTree API, a simple and lightweight " "XML processor" msgstr "" -#: ../../library/xml.rst:38 msgid ":mod:`xml.dom`: the DOM API definition" msgstr "" -#: ../../library/xml.rst:39 msgid ":mod:`xml.dom.minidom`: a minimal DOM implementation" msgstr "" -#: ../../library/xml.rst:40 msgid ":mod:`xml.dom.pulldom`: support for building partial DOM trees" msgstr "" -#: ../../library/xml.rst:44 msgid ":mod:`xml.sax`: SAX2 base classes and convenience functions" msgstr "" -#: ../../library/xml.rst:45 msgid ":mod:`xml.parsers.expat`: the Expat parser binding" msgstr "" -#: ../../library/xml.rst:52 msgid "XML security" msgstr "" -#: ../../library/xml.rst:54 msgid "" "An attacker can abuse XML features to carry out denial of service attacks, " "access local files, generate network connections to other machines, or " "circumvent firewalls." msgstr "" -#: ../../library/xml.rst:58 msgid "" "Expat versions lower that 2.6.0 may be vulnerable to \"billion laughs\", " "\"quadratic blowup\" and \"large tokens\". Python may be vulnerable if it " -"uses such older versions of Expat as a system-provided library. " -"Check :const:`!pyexpat.EXPAT_VERSION`." +"uses such older versions of Expat as a system-provided library. Check :const:" +"`!pyexpat.EXPAT_VERSION`." msgstr "" -#: ../../library/xml.rst:63 msgid ":mod:`xmlrpc` is **vulnerable** to the \"decompression bomb\" attack." msgstr "" -#: ../../library/xml.rst:66 msgid "billion laughs / exponential entity expansion" msgstr "" -#: ../../library/xml.rst:67 msgid "" "The `Billion Laughs`_ attack -- also known as exponential entity expansion " "-- uses multiple levels of nested entities. Each entity refers to another " @@ -117,11 +98,9 @@ msgid "" "consumes lots of memory and CPU time." msgstr "" -#: ../../library/xml.rst:73 msgid "quadratic blowup entity expansion" msgstr "" -#: ../../library/xml.rst:74 msgid "" "A quadratic blowup attack is similar to a `Billion Laughs`_ attack; it " "abuses entity expansion, too. Instead of nested entities it repeats one " @@ -130,11 +109,9 @@ msgid "" "countermeasures that forbid deeply nested entities." msgstr "" -#: ../../library/xml.rst:80 msgid "decompression bomb" msgstr "" -#: ../../library/xml.rst:81 msgid "" "Decompression bombs (aka `ZIP bomb`_) apply to all XML libraries that can " "parse compressed XML streams such as gzipped HTTP streams or LZMA-compressed " @@ -142,14 +119,12 @@ msgid "" "magnitudes or more." msgstr "" -#: ../../library/xml.rst:87 msgid "large tokens" msgstr "" -#: ../../library/xml.rst:88 msgid "" "Expat needs to re-parse unfinished tokens; without the protection introduced " "in Expat 2.6.0, this can lead to quadratic runtime that can be used to cause " -"denial of service in the application parsing XML. The issue is known " -"as :cve:`2023-52425`." +"denial of service in the application parsing XML. The issue is known as :cve:" +"`2023-52425`." msgstr "" diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po index 0e9f23a..9edbedf 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xml.sax.handler.rst:2 msgid ":mod:`!xml.sax.handler` --- Base classes for SAX handlers" msgstr "" -#: ../../library/xml.sax.handler.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/handler.py`" msgstr "" -#: ../../library/xml.sax.handler.rst:14 msgid "" "The SAX API defines five kinds of handlers: content handlers, DTD handlers, " "error handlers, entity resolvers and lexical handlers. Applications normally " @@ -37,232 +34,183 @@ msgid "" "implementations." msgstr "" -#: ../../library/xml.sax.handler.rst:24 msgid "" "This is the main callback interface in SAX, and the one most important to " "applications. The order of events in this interface mirrors the order of the " "information in the document." msgstr "" -#: ../../library/xml.sax.handler.rst:31 msgid "Handle DTD events." msgstr "" -#: ../../library/xml.sax.handler.rst:33 msgid "" "This interface specifies only those DTD events required for basic parsing " "(unparsed entities and attributes)." msgstr "" -#: ../../library/xml.sax.handler.rst:39 msgid "" "Basic interface for resolving entities. If you create an object implementing " "this interface, then register the object with your Parser, the parser will " "call the method in your object to resolve all external entities." msgstr "" -#: ../../library/xml.sax.handler.rst:46 msgid "" "Interface used by the parser to present error and warning messages to the " "application. The methods of this object control whether errors are " "immediately converted to exceptions or are handled in some other way." msgstr "" -#: ../../library/xml.sax.handler.rst:53 msgid "" "Interface used by the parser to represent low frequency events which may not " "be of interest to many applications." msgstr "" -#: ../../library/xml.sax.handler.rst:56 msgid "" "In addition to these classes, :mod:`xml.sax.handler` provides symbolic " "constants for the feature and property names." msgstr "" -#: ../../library/xml.sax.handler.rst:62 msgid "value: ``\"http://xml.org/sax/features/namespaces\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:63 msgid "true: Perform Namespace processing." msgstr "" -#: ../../library/xml.sax.handler.rst:65 msgid "" "false: Optionally do not perform Namespace processing (implies namespace-" "prefixes; default)." msgstr "" -#: ../../library/xml.sax.handler.rst:66 ../../library/xml.sax.handler.rst:76 -#: ../../library/xml.sax.handler.rst:85 ../../library/xml.sax.handler.rst:94 -#: ../../library/xml.sax.handler.rst:102 ../../library/xml.sax.handler.rst:112 -#: ../../library/xml.sax.handler.rst:144 msgid "access: (parsing) read-only; (not parsing) read/write" msgstr "" -#: ../../library/xml.sax.handler.rst:71 msgid "value: ``\"http://xml.org/sax/features/namespace-prefixes\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:73 msgid "" "true: Report the original prefixed names and attributes used for Namespace " "declarations." msgstr "" -#: ../../library/xml.sax.handler.rst:75 msgid "" "false: Do not report attributes used for Namespace declarations, and " "optionally do not report original prefixed names (default)." msgstr "" -#: ../../library/xml.sax.handler.rst:81 msgid "value: ``\"http://xml.org/sax/features/string-interning\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:83 msgid "" "true: All element names, prefixes, attribute names, Namespace URIs, and " "local names are interned using the built-in intern function." msgstr "" -#: ../../library/xml.sax.handler.rst:84 msgid "" "false: Names are not necessarily interned, although they may be (default)." msgstr "" -#: ../../library/xml.sax.handler.rst:90 msgid "value: ``\"http://xml.org/sax/features/validation\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:92 msgid "" "true: Report all validation errors (implies external-general-entities and " "external-parameter-entities)." msgstr "" -#: ../../library/xml.sax.handler.rst:93 msgid "false: Do not report validation errors." msgstr "" -#: ../../library/xml.sax.handler.rst:99 msgid "value: ``\"http://xml.org/sax/features/external-general-entities\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:100 msgid "true: Include all external general (text) entities." msgstr "" -#: ../../library/xml.sax.handler.rst:101 msgid "false: Do not include external general entities." msgstr "" -#: ../../library/xml.sax.handler.rst:107 msgid "value: ``\"http://xml.org/sax/features/external-parameter-entities\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:109 msgid "" "true: Include all external parameter entities, including the external DTD " "subset." msgstr "" -#: ../../library/xml.sax.handler.rst:111 msgid "" "false: Do not include any external parameter entities, even the external DTD " "subset." msgstr "" -#: ../../library/xml.sax.handler.rst:117 msgid "List of all features." msgstr "" -#: ../../library/xml.sax.handler.rst:122 msgid "value: ``\"http://xml.org/sax/properties/lexical-handler\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:123 msgid "data type: xml.sax.handler.LexicalHandler (not supported in Python 2)" msgstr "" -#: ../../library/xml.sax.handler.rst:125 msgid "" "description: An optional extension handler for lexical events like comments." msgstr "" -#: ../../library/xml.sax.handler.rst:126 ../../library/xml.sax.handler.rst:135 msgid "access: read/write" msgstr "" -#: ../../library/xml.sax.handler.rst:131 msgid "value: ``\"http://xml.org/sax/properties/declaration-handler\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:132 msgid "data type: xml.sax.sax2lib.DeclHandler (not supported in Python 2)" msgstr "" -#: ../../library/xml.sax.handler.rst:134 msgid "" "description: An optional extension handler for DTD-related events other than " "notations and unparsed entities." msgstr "" -#: ../../library/xml.sax.handler.rst:140 msgid "value: ``\"http://xml.org/sax/properties/dom-node\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:141 msgid "data type: org.w3c.dom.Node (not supported in Python 2)" msgstr "" -#: ../../library/xml.sax.handler.rst:143 msgid "" "description: When parsing, the current DOM node being visited if this is a " "DOM iterator; when not parsing, the root DOM node for iteration." msgstr "" -#: ../../library/xml.sax.handler.rst:149 msgid "value: ``\"http://xml.org/sax/properties/xml-string\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:150 msgid "data type: Bytes" msgstr "" -#: ../../library/xml.sax.handler.rst:152 msgid "" "description: The literal string of characters that was the source for the " "current event." msgstr "" -#: ../../library/xml.sax.handler.rst:153 msgid "access: read-only" msgstr "" -#: ../../library/xml.sax.handler.rst:158 msgid "List of all known property names." msgstr "" -#: ../../library/xml.sax.handler.rst:164 msgid "ContentHandler Objects" msgstr "" -#: ../../library/xml.sax.handler.rst:166 msgid "" "Users are expected to subclass :class:`ContentHandler` to support their " "application. The following methods are called by the parser on the " "appropriate events in the input document:" msgstr "" -#: ../../library/xml.sax.handler.rst:173 msgid "" "Called by the parser to give the application a locator for locating the " "origin of document events." msgstr "" -#: ../../library/xml.sax.handler.rst:176 msgid "" "SAX parsers are strongly encouraged (though not absolutely required) to " "supply a locator: if it does so, it must supply the locator to the " @@ -270,7 +218,6 @@ msgid "" "in the DocumentHandler interface." msgstr "" -#: ../../library/xml.sax.handler.rst:181 msgid "" "The locator allows the application to determine the end position of any " "document-related event, even if the parser is not reporting an error. " @@ -280,28 +227,23 @@ msgid "" "sufficient for use with a search engine." msgstr "" -#: ../../library/xml.sax.handler.rst:188 msgid "" "Note that the locator will return correct information only during the " "invocation of the events in this interface. The application should not " "attempt to use it at any other time." msgstr "" -#: ../../library/xml.sax.handler.rst:195 msgid "Receive notification of the beginning of a document." msgstr "" -#: ../../library/xml.sax.handler.rst:197 msgid "" "The SAX parser will invoke this method only once, before any other methods " "in this interface or in DTDHandler (except for :meth:`setDocumentLocator`)." msgstr "" -#: ../../library/xml.sax.handler.rst:203 msgid "Receive notification of the end of a document." msgstr "" -#: ../../library/xml.sax.handler.rst:205 msgid "" "The SAX parser will invoke this method only once, and it will be the last " "method invoked during the parse. The parser shall not invoke this method " @@ -309,11 +251,9 @@ msgid "" "reached the end of input." msgstr "" -#: ../../library/xml.sax.handler.rst:213 msgid "Begin the scope of a prefix-URI Namespace mapping." msgstr "" -#: ../../library/xml.sax.handler.rst:215 msgid "" "The information from this event is not necessary for normal Namespace " "processing: the SAX XML reader will automatically replace prefixes for " @@ -321,7 +261,6 @@ msgid "" "enabled (the default)." msgstr "" -#: ../../library/xml.sax.handler.rst:220 msgid "" "There are cases, however, when applications need to use prefixes in " "character data or in attribute values, where they cannot safely be expanded " @@ -330,91 +269,76 @@ msgid "" "contexts itself, if necessary." msgstr "" -#: ../../library/xml.sax.handler.rst:228 msgid "" "Note that :meth:`startPrefixMapping` and :meth:`endPrefixMapping` events are " -"not guaranteed to be properly nested relative to each-other: " -"all :meth:`startPrefixMapping` events will occur before the " -"corresponding :meth:`startElement` event, and all :meth:`endPrefixMapping` " -"events will occur after the corresponding :meth:`endElement` event, but " -"their order is not guaranteed." +"not guaranteed to be properly nested relative to each-other: all :meth:" +"`startPrefixMapping` events will occur before the corresponding :meth:" +"`startElement` event, and all :meth:`endPrefixMapping` events will occur " +"after the corresponding :meth:`endElement` event, but their order is not " +"guaranteed." msgstr "" -#: ../../library/xml.sax.handler.rst:238 msgid "End the scope of a prefix-URI mapping." msgstr "" -#: ../../library/xml.sax.handler.rst:240 msgid "" "See :meth:`startPrefixMapping` for details. This event will always occur " -"after the corresponding :meth:`endElement` event, but the order " -"of :meth:`endPrefixMapping` events is not otherwise guaranteed." +"after the corresponding :meth:`endElement` event, but the order of :meth:" +"`endPrefixMapping` events is not otherwise guaranteed." msgstr "" -#: ../../library/xml.sax.handler.rst:247 msgid "Signals the start of an element in non-namespace mode." msgstr "" -#: ../../library/xml.sax.handler.rst:249 msgid "" "The *name* parameter contains the raw XML 1.0 name of the element type as a " -"string and the *attrs* parameter holds an object of " -"the :class:`~xml.sax.xmlreader.Attributes` interface (see :ref:`attributes-" -"objects`) containing the attributes of the element. The object passed as " -"*attrs* may be re-used by the parser; holding on to a reference to it is not " -"a reliable way to keep a copy of the attributes. To keep a copy of the " -"attributes, use the :meth:`copy` method of the *attrs* object." +"string and the *attrs* parameter holds an object of the :ref:`Attributes " +"` interface containing the attributes of the element. " +"The object passed as *attrs* may be re-used by the parser; holding on to a " +"reference to it is not a reliable way to keep a copy of the attributes. To " +"keep a copy of the attributes, use the :meth:`copy` method of the *attrs* " +"object." msgstr "" -#: ../../library/xml.sax.handler.rst:261 msgid "Signals the end of an element in non-namespace mode." msgstr "" -#: ../../library/xml.sax.handler.rst:263 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElement` event." msgstr "" -#: ../../library/xml.sax.handler.rst:269 msgid "Signals the start of an element in namespace mode." msgstr "" -#: ../../library/xml.sax.handler.rst:271 msgid "" "The *name* parameter contains the name of the element type as a ``(uri, " "localname)`` tuple, the *qname* parameter contains the raw XML 1.0 name used " -"in the source document, and the *attrs* parameter holds an instance of " -"the :class:`~xml.sax.xmlreader.AttributesNS` interface (see :ref:`attributes-" -"ns-objects`) containing the attributes of the element. If no namespace is " -"associated with the element, the *uri* component of *name* will be " -"``None``. The object passed as *attrs* may be re-used by the parser; " -"holding on to a reference to it is not a reliable way to keep a copy of the " -"attributes. To keep a copy of the attributes, use the :meth:`copy` method " -"of the *attrs* object." +"in the source document, and the *attrs* parameter holds an instance of the :" +"ref:`AttributesNS ` interface containing the " +"attributes of the element. If no namespace is associated with the element, " +"the *uri* component of *name* will be ``None``. The object passed as " +"*attrs* may be re-used by the parser; holding on to a reference to it is not " +"a reliable way to keep a copy of the attributes. To keep a copy of the " +"attributes, use the :meth:`copy` method of the *attrs* object." msgstr "" -#: ../../library/xml.sax.handler.rst:282 msgid "" "Parsers may set the *qname* parameter to ``None``, unless the " "``feature_namespace_prefixes`` feature is activated." msgstr "" -#: ../../library/xml.sax.handler.rst:288 msgid "Signals the end of an element in namespace mode." msgstr "" -#: ../../library/xml.sax.handler.rst:290 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElementNS` method, likewise the *qname* parameter." msgstr "" -#: ../../library/xml.sax.handler.rst:296 msgid "Receive notification of character data." msgstr "" -#: ../../library/xml.sax.handler.rst:298 msgid "" "The Parser will call this method to report each chunk of character data. SAX " "parsers may return all contiguous character data in a single chunk, or they " @@ -423,13 +347,11 @@ msgid "" "provides useful information." msgstr "" -#: ../../library/xml.sax.handler.rst:304 msgid "" "*content* may be a string or bytes instance; the ``expat`` reader module " "always produces strings." msgstr "" -#: ../../library/xml.sax.handler.rst:309 msgid "" "The earlier SAX 1 interface provided by the Python XML Special Interest " "Group used a more Java-like interface for this method. Since most parsers " @@ -439,11 +361,9 @@ msgid "" "and *length* parameters." msgstr "" -#: ../../library/xml.sax.handler.rst:318 msgid "Receive notification of ignorable whitespace in element content." msgstr "" -#: ../../library/xml.sax.handler.rst:320 msgid "" "Validating Parsers must use this method to report each chunk of ignorable " "whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-" @@ -451,7 +371,6 @@ msgid "" "and using content models." msgstr "" -#: ../../library/xml.sax.handler.rst:325 msgid "" "SAX parsers may return all contiguous whitespace in a single chunk, or they " "may split it into several chunks; however, all of the characters in any " @@ -459,28 +378,23 @@ msgid "" "provides useful information." msgstr "" -#: ../../library/xml.sax.handler.rst:333 msgid "Receive notification of a processing instruction." msgstr "" -#: ../../library/xml.sax.handler.rst:335 msgid "" "The Parser will invoke this method once for each processing instruction " "found: note that processing instructions may occur before or after the main " "document element." msgstr "" -#: ../../library/xml.sax.handler.rst:339 msgid "" "A SAX parser should never report an XML declaration (XML 1.0, section 2.8) " "or a text declaration (XML 1.0, section 4.3.1) using this method." msgstr "" -#: ../../library/xml.sax.handler.rst:345 msgid "Receive notification of a skipped entity." msgstr "" -#: ../../library/xml.sax.handler.rst:347 msgid "" "The Parser will invoke this method once for each entity skipped. Non-" "validating processors may skip entities if they have not seen the " @@ -490,38 +404,30 @@ msgid "" "properties." msgstr "" -#: ../../library/xml.sax.handler.rst:357 msgid "DTDHandler Objects" msgstr "" -#: ../../library/xml.sax.handler.rst:359 msgid ":class:`DTDHandler` instances provide the following methods:" msgstr "" -#: ../../library/xml.sax.handler.rst:364 msgid "Handle a notation declaration event." msgstr "" -#: ../../library/xml.sax.handler.rst:369 msgid "Handle an unparsed entity declaration event." msgstr "" -#: ../../library/xml.sax.handler.rst:375 msgid "EntityResolver Objects" msgstr "" -#: ../../library/xml.sax.handler.rst:380 msgid "" "Resolve the system identifier of an entity and return either the system " "identifier to read from as a string, or an InputSource to read from. The " "default implementation returns *systemId*." msgstr "" -#: ../../library/xml.sax.handler.rst:388 msgid "ErrorHandler Objects" msgstr "" -#: ../../library/xml.sax.handler.rst:390 msgid "" "Objects with this interface are used to receive error and warning " "information from the :class:`~xml.sax.xmlreader.XMLReader`. If you create " @@ -534,7 +440,6 @@ msgid "" "the passed-in exception object." msgstr "" -#: ../../library/xml.sax.handler.rst:403 msgid "" "Called when the parser encounters a recoverable error. If this method does " "not raise an exception, parsing may continue, but further document " @@ -543,13 +448,11 @@ msgid "" "document." msgstr "" -#: ../../library/xml.sax.handler.rst:411 msgid "" "Called when the parser encounters an error it cannot recover from; parsing " "is expected to terminate when this method returns." msgstr "" -#: ../../library/xml.sax.handler.rst:417 msgid "" "Called when the parser presents minor warning information to the " "application. Parsing is expected to continue when this method returns, and " @@ -557,15 +460,12 @@ msgid "" "an exception in this method will cause parsing to end." msgstr "" -#: ../../library/xml.sax.handler.rst:426 msgid "LexicalHandler Objects" msgstr "" -#: ../../library/xml.sax.handler.rst:427 msgid "Optional SAX2 handler for lexical events." msgstr "" -#: ../../library/xml.sax.handler.rst:429 msgid "" "This handler is used to obtain lexical information about an XML document. " "Lexical information includes information describing the document encoding " @@ -574,38 +474,31 @@ msgid "" "used in the same manner as content handlers." msgstr "" -#: ../../library/xml.sax.handler.rst:435 msgid "" "Set the LexicalHandler of an XMLReader by using the setProperty method with " "the property identifier ``'http://xml.org/sax/properties/lexical-handler'``." msgstr "" -#: ../../library/xml.sax.handler.rst:442 msgid "" "Reports a comment anywhere in the document (including the DTD and outside " "the document element)." msgstr "" -#: ../../library/xml.sax.handler.rst:447 msgid "" "Reports the start of the DTD declarations if the document has an associated " "DTD." msgstr "" -#: ../../library/xml.sax.handler.rst:452 msgid "Reports the end of DTD declaration." msgstr "" -#: ../../library/xml.sax.handler.rst:456 msgid "Reports the start of a CDATA marked section." msgstr "" -#: ../../library/xml.sax.handler.rst:458 msgid "" "The contents of the CDATA marked section will be reported through the " "characters handler." msgstr "" -#: ../../library/xml.sax.handler.rst:463 msgid "Reports the end of a CDATA marked section." msgstr "" diff --git a/library/xml.sax.po b/library/xml.sax.po index a2a822a..883c733 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xml.sax.rst:2 msgid ":mod:`!xml.sax` --- Support for SAX2 parsers" msgstr "" -#: ../../library/xml.sax.rst:11 msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" msgstr "" -#: ../../library/xml.sax.rst:15 msgid "" "The :mod:`xml.sax` package provides a number of modules which implement the " "Simple API for XML (SAX) interface for Python. The package itself provides " @@ -34,40 +31,34 @@ msgid "" "users of the SAX API." msgstr "" -#: ../../library/xml.sax.rst:23 msgid "" "If you need to parse untrusted or unauthenticated data, see :ref:`xml-" "security`." msgstr "" -#: ../../library/xml.sax.rst:28 msgid "" "The SAX parser no longer processes general external entities by default to " "increase security. Before, the parser created network connections to fetch " "remote files or loaded local files from the file system for DTD and " -"entities. The feature can be enabled again with " -"method :meth:`~xml.sax.xmlreader.XMLReader.setFeature` on the parser object " -"and argument :data:`~xml.sax.handler.feature_external_ges`." +"entities. The feature can be enabled again with method :meth:`~xml.sax." +"xmlreader.XMLReader.setFeature` on the parser object and argument :data:" +"`~xml.sax.handler.feature_external_ges`." msgstr "" -#: ../../library/xml.sax.rst:35 msgid "The convenience functions are:" msgstr "" -#: ../../library/xml.sax.rst:40 msgid "" "Create and return a SAX :class:`~xml.sax.xmlreader.XMLReader` object. The " "first parser found will be used. If *parser_list* is provided, it must be " -"an iterable of strings which name modules that have a function " -"named :func:`create_parser`. Modules listed in *parser_list* will be used " -"before modules in the default list of parsers." +"an iterable of strings which name modules that have a function named :func:" +"`create_parser`. Modules listed in *parser_list* will be used before " +"modules in the default list of parsers." msgstr "" -#: ../../library/xml.sax.rst:46 msgid "The *parser_list* argument can be any iterable, not just a list." msgstr "" -#: ../../library/xml.sax.rst:52 msgid "" "Create a SAX parser and use it to parse a document. The document, passed in " "as *filename_or_stream*, can be a filename or a file object. The *handler* " @@ -78,18 +69,15 @@ msgid "" "passed in." msgstr "" -#: ../../library/xml.sax.rst:63 msgid "" "Similar to :func:`parse`, but parses from a buffer *string* received as a " "parameter. *string* must be a :class:`str` instance or a :term:`bytes-like " "object`." msgstr "" -#: ../../library/xml.sax.rst:67 msgid "Added support of :class:`str` instances." msgstr "" -#: ../../library/xml.sax.rst:70 msgid "" "A typical SAX application uses three kinds of objects: readers, handlers and " "input sources. \"Reader\" in this context is another term for parser, i.e. " @@ -103,40 +91,36 @@ msgid "" "structural and syntactic events from the input data." msgstr "" -#: ../../library/xml.sax.rst:81 msgid "" "For these objects, only the interfaces are relevant; they are normally not " "instantiated by the application itself. Since Python does not have an " "explicit notion of interface, they are formally introduced as classes, but " "applications may use implementations which do not inherit from the provided " -"classes. " -"The :class:`~xml.sax.xmlreader.InputSource`, :class:`~xml.sax.xmlreader.Locator`, :class:`~xml.sax.xmlreader.Attributes`, :class:`~xml.sax.xmlreader.AttributesNS`, " -"and :class:`~xml.sax.xmlreader.XMLReader` interfaces are defined in the " -"module :mod:`xml.sax.xmlreader`. The handler interfaces are defined " -"in :mod:`xml.sax.handler`. For " -"convenience, :class:`~xml.sax.xmlreader.InputSource` (which is often " -"instantiated directly) and the handler classes are also available " -"from :mod:`xml.sax`. These interfaces are described below." +"classes. The :class:`~xml.sax.xmlreader.InputSource`, :class:`~xml.sax." +"xmlreader.Locator`, :class:`~xml.sax.xmlreader.Attributes`, :class:`~xml.sax." +"xmlreader.AttributesNS`, and :class:`~xml.sax.xmlreader.XMLReader` " +"interfaces are defined in the module :mod:`xml.sax.xmlreader`. The handler " +"interfaces are defined in :mod:`xml.sax.handler`. For convenience, :class:" +"`~xml.sax.xmlreader.InputSource` (which is often instantiated directly) and " +"the handler classes are also available from :mod:`xml.sax`. These " +"interfaces are described below." msgstr "" -#: ../../library/xml.sax.rst:94 msgid "" "In addition to these classes, :mod:`xml.sax` provides the following " "exception classes." msgstr "" -#: ../../library/xml.sax.rst:100 msgid "" "Encapsulate an XML error or warning. This class can contain basic error or " "warning information from either the XML parser or the application: it can be " "subclassed to provide additional functionality or to add localization. Note " -"that although the handlers defined in " -"the :class:`~xml.sax.handler.ErrorHandler` interface receive instances of " -"this exception, it is not required to actually raise the exception --- it is " -"also useful as a container for information." +"that although the handlers defined in the :class:`~xml.sax.handler." +"ErrorHandler` interface receive instances of this exception, it is not " +"required to actually raise the exception --- it is also useful as a " +"container for information." msgstr "" -#: ../../library/xml.sax.rst:108 msgid "" "When instantiated, *msg* should be a human-readable description of the " "error. The optional *exception* parameter, if given, should be ``None`` or " @@ -144,85 +128,66 @@ msgid "" "as information." msgstr "" -#: ../../library/xml.sax.rst:112 msgid "This is the base class for the other SAX exception classes." msgstr "" -#: ../../library/xml.sax.rst:117 msgid "" "Subclass of :exc:`SAXException` raised on parse errors. Instances of this " -"class are passed to the methods of the " -"SAX :class:`~xml.sax.handler.ErrorHandler` interface to provide information " -"about the parse error. This class supports the " -"SAX :class:`~xml.sax.xmlreader.Locator` interface as well as " -"the :class:`SAXException` interface." +"class are passed to the methods of the SAX :class:`~xml.sax.handler." +"ErrorHandler` interface to provide information about the parse error. This " +"class supports the SAX :class:`~xml.sax.xmlreader.Locator` interface as well " +"as the :class:`SAXException` interface." msgstr "" -#: ../../library/xml.sax.rst:127 msgid "" -"Subclass of :exc:`SAXException` raised when a " -"SAX :class:`~xml.sax.xmlreader.XMLReader` is confronted with an unrecognized " -"feature or property. SAX applications and extensions may use this class for " -"similar purposes." +"Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." +"XMLReader` is confronted with an unrecognized feature or property. SAX " +"applications and extensions may use this class for similar purposes." msgstr "" -#: ../../library/xml.sax.rst:135 msgid "" -"Subclass of :exc:`SAXException` raised when a " -"SAX :class:`~xml.sax.xmlreader.XMLReader` is asked to enable a feature that " -"is not supported, or to set a property to a value that the implementation " -"does not support. SAX applications and extensions may use this class for " -"similar purposes." +"Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." +"XMLReader` is asked to enable a feature that is not supported, or to set a " +"property to a value that the implementation does not support. SAX " +"applications and extensions may use this class for similar purposes." msgstr "" -#: ../../library/xml.sax.rst:144 msgid "`SAX: The Simple API for XML `_" msgstr "" -#: ../../library/xml.sax.rst:145 msgid "" "This site is the focal point for the definition of the SAX API. It provides " "a Java implementation and online documentation. Links to implementations " "and historical information are also available." msgstr "" -#: ../../library/xml.sax.rst:149 msgid "Module :mod:`xml.sax.handler`" msgstr "" -#: ../../library/xml.sax.rst:150 msgid "Definitions of the interfaces for application-provided objects." msgstr "" -#: ../../library/xml.sax.rst:152 msgid "Module :mod:`xml.sax.saxutils`" msgstr "" -#: ../../library/xml.sax.rst:153 msgid "Convenience functions for use in SAX applications." msgstr "" -#: ../../library/xml.sax.rst:155 msgid "Module :mod:`xml.sax.xmlreader`" msgstr "" -#: ../../library/xml.sax.rst:156 msgid "Definitions of the interfaces for parser-provided objects." msgstr "" -#: ../../library/xml.sax.rst:162 msgid "SAXException Objects" msgstr "" -#: ../../library/xml.sax.rst:164 msgid "" "The :class:`SAXException` exception class supports the following methods:" msgstr "" -#: ../../library/xml.sax.rst:169 msgid "Return a human-readable message describing the error condition." msgstr "" -#: ../../library/xml.sax.rst:174 msgid "Return an encapsulated exception object, or ``None``." msgstr "" diff --git a/library/xml.sax.reader.po b/library/xml.sax.reader.po index 2a90dcc..b35bf3e 100644 --- a/library/xml.sax.reader.po +++ b/library/xml.sax.reader.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xml.sax.reader.rst:2 msgid ":mod:`!xml.sax.xmlreader` --- Interface for XML parsers" msgstr "" -#: ../../library/xml.sax.reader.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/xmlreader.py`" msgstr "" -#: ../../library/xml.sax.reader.rst:14 msgid "" "SAX parsers implement the :class:`XMLReader` interface. They are implemented " "in a Python module, which must provide a function :func:`create_parser`. " @@ -34,21 +31,18 @@ msgid "" "to create a new parser object." msgstr "" -#: ../../library/xml.sax.reader.rst:22 msgid "Base class which can be inherited by SAX parsers." msgstr "" -#: ../../library/xml.sax.reader.rst:27 msgid "" "In some cases, it is desirable not to parse an input source at once, but to " "feed chunks of the document as they get available. Note that the reader will " -"normally not read the entire file, but read it in chunks as well; " -"still :meth:`parse` won't return until the entire document is processed. So " -"these interfaces should be used if the blocking behaviour of :meth:`parse` " -"is not desirable." +"normally not read the entire file, but read it in chunks as well; still :" +"meth:`parse` won't return until the entire document is processed. So these " +"interfaces should be used if the blocking behaviour of :meth:`parse` is not " +"desirable." msgstr "" -#: ../../library/xml.sax.reader.rst:33 msgid "" "When the parser is instantiated it is ready to begin accepting data from the " "feed method immediately. After parsing has been finished with a call to " @@ -56,20 +50,17 @@ msgid "" "data, either from feed or using the parse method." msgstr "" -#: ../../library/xml.sax.reader.rst:38 msgid "" "Note that these methods must *not* be called during parsing, that is, after " "parse has been called and before it returns." msgstr "" -#: ../../library/xml.sax.reader.rst:41 msgid "" "By default, the class also implements the parse method of the XMLReader " "interface using the feed, close and reset methods of the IncrementalParser " "interface as a convenience to SAX 2.0 driver writers." msgstr "" -#: ../../library/xml.sax.reader.rst:48 msgid "" "Interface for associating a SAX event with a document location. A locator " "object will return valid results only during calls to DocumentHandler " @@ -77,37 +68,31 @@ msgid "" "not available, methods may return ``None``." msgstr "" -#: ../../library/xml.sax.reader.rst:56 msgid "" "Encapsulation of the information needed by the :class:`XMLReader` to read " "entities." msgstr "" -#: ../../library/xml.sax.reader.rst:59 msgid "" "This class may include information about the public identifier, system " "identifier, byte stream (possibly with character encoding information) and/" "or the character stream of an entity." msgstr "" -#: ../../library/xml.sax.reader.rst:63 msgid "" -"Applications will create objects of this class for use in " -"the :meth:`XMLReader.parse` method and for returning from " -"EntityResolver.resolveEntity." +"Applications will create objects of this class for use in the :meth:" +"`XMLReader.parse` method and for returning from EntityResolver.resolveEntity." msgstr "" -#: ../../library/xml.sax.reader.rst:67 msgid "" "An :class:`InputSource` belongs to the application, the :class:`XMLReader` " "is not allowed to modify :class:`InputSource` objects passed to it from the " "application, although it may make copies and modify those." msgstr "" -#: ../../library/xml.sax.reader.rst:74 msgid "" -"This is an implementation of the :class:`Attributes` interface (see " -"section :ref:`attributes-objects`). This is a dictionary-like object which " +"This is an implementation of the :class:`Attributes` interface (see section :" +"ref:`attributes-objects`). This is a dictionary-like object which " "represents the element attributes in a :meth:`startElement` call. In " "addition to the most useful dictionary operations, it supports a number of " "other methods as described by the interface. Objects of this class should be " @@ -115,26 +100,21 @@ msgid "" "a mapping from attribute names to attribute values." msgstr "" -#: ../../library/xml.sax.reader.rst:85 msgid "" -"Namespace-aware variant of :class:`AttributesImpl`, which will be passed " -"to :meth:`startElementNS`. It is derived from :class:`AttributesImpl`, but " +"Namespace-aware variant of :class:`AttributesImpl`, which will be passed to :" +"meth:`startElementNS`. It is derived from :class:`AttributesImpl`, but " "understands attribute names as two-tuples of *namespaceURI* and *localname*. " "In addition, it provides a number of methods expecting qualified names as " -"they appear in the original document. This class implements " -"the :class:`AttributesNS` interface (see section :ref:`attributes-ns-" -"objects`)." +"they appear in the original document. This class implements the :class:" +"`AttributesNS` interface (see section :ref:`attributes-ns-objects`)." msgstr "" -#: ../../library/xml.sax.reader.rst:96 msgid "XMLReader Objects" msgstr "" -#: ../../library/xml.sax.reader.rst:98 msgid "The :class:`XMLReader` interface supports the following methods:" msgstr "" -#: ../../library/xml.sax.reader.rst:103 msgid "" "Process an input source, producing SAX events. The *source* object can be a " "system identifier (a string identifying the input source -- typically a file " @@ -144,62 +124,49 @@ msgid "" "discarded or reset." msgstr "" -#: ../../library/xml.sax.reader.rst:110 msgid "Added support of character streams." msgstr "" -#: ../../library/xml.sax.reader.rst:113 msgid "Added support of path-like objects." msgstr "" -#: ../../library/xml.sax.reader.rst:119 msgid "Return the current :class:`~xml.sax.handler.ContentHandler`." msgstr "" -#: ../../library/xml.sax.reader.rst:124 msgid "" -"Set the current :class:`~xml.sax.handler.ContentHandler`. If " -"no :class:`~xml.sax.handler.ContentHandler` is set, content events will be " -"discarded." +"Set the current :class:`~xml.sax.handler.ContentHandler`. If no :class:" +"`~xml.sax.handler.ContentHandler` is set, content events will be discarded." msgstr "" -#: ../../library/xml.sax.reader.rst:131 msgid "Return the current :class:`~xml.sax.handler.DTDHandler`." msgstr "" -#: ../../library/xml.sax.reader.rst:136 msgid "" -"Set the current :class:`~xml.sax.handler.DTDHandler`. If " -"no :class:`~xml.sax.handler.DTDHandler` is set, DTD events will be discarded." +"Set the current :class:`~xml.sax.handler.DTDHandler`. If no :class:`~xml." +"sax.handler.DTDHandler` is set, DTD events will be discarded." msgstr "" -#: ../../library/xml.sax.reader.rst:143 msgid "Return the current :class:`~xml.sax.handler.EntityResolver`." msgstr "" -#: ../../library/xml.sax.reader.rst:148 msgid "" -"Set the current :class:`~xml.sax.handler.EntityResolver`. If " -"no :class:`~xml.sax.handler.EntityResolver` is set, attempts to resolve an " -"external entity will result in opening the system identifier for the entity, " -"and fail if it is not available." +"Set the current :class:`~xml.sax.handler.EntityResolver`. If no :class:" +"`~xml.sax.handler.EntityResolver` is set, attempts to resolve an external " +"entity will result in opening the system identifier for the entity, and fail " +"if it is not available." msgstr "" -#: ../../library/xml.sax.reader.rst:156 msgid "Return the current :class:`~xml.sax.handler.ErrorHandler`." msgstr "" -#: ../../library/xml.sax.reader.rst:161 msgid "" "Set the current error handler. If no :class:`~xml.sax.handler.ErrorHandler` " "is set, errors will be raised as exceptions, and warnings will be printed." msgstr "" -#: ../../library/xml.sax.reader.rst:167 msgid "Allow an application to set the locale for errors and warnings." msgstr "" -#: ../../library/xml.sax.reader.rst:169 msgid "" "SAX parsers are not required to provide localization for errors and " "warnings; if they cannot support the requested locale, however, they must " @@ -207,227 +174,181 @@ msgid "" "middle of a parse." msgstr "" -#: ../../library/xml.sax.reader.rst:176 msgid "" "Return the current setting for feature *featurename*. If the feature is not " "recognized, :exc:`SAXNotRecognizedException` is raised. The well-known " "featurenames are listed in the module :mod:`xml.sax.handler`." msgstr "" -#: ../../library/xml.sax.reader.rst:183 msgid "" -"Set the *featurename* to *value*. If the feature is not " -"recognized, :exc:`SAXNotRecognizedException` is raised. If the feature or " -"its setting is not supported by the parser, *SAXNotSupportedException* is " -"raised." +"Set the *featurename* to *value*. If the feature is not recognized, :exc:" +"`SAXNotRecognizedException` is raised. If the feature or its setting is not " +"supported by the parser, *SAXNotSupportedException* is raised." msgstr "" -#: ../../library/xml.sax.reader.rst:190 msgid "" "Return the current setting for property *propertyname*. If the property is " "not recognized, a :exc:`SAXNotRecognizedException` is raised. The well-known " "propertynames are listed in the module :mod:`xml.sax.handler`." msgstr "" -#: ../../library/xml.sax.reader.rst:197 msgid "" -"Set the *propertyname* to *value*. If the property is not " -"recognized, :exc:`SAXNotRecognizedException` is raised. If the property or " -"its setting is not supported by the parser, *SAXNotSupportedException* is " -"raised." +"Set the *propertyname* to *value*. If the property is not recognized, :exc:" +"`SAXNotRecognizedException` is raised. If the property or its setting is not " +"supported by the parser, *SAXNotSupportedException* is raised." msgstr "" -#: ../../library/xml.sax.reader.rst:205 msgid "IncrementalParser Objects" msgstr "" -#: ../../library/xml.sax.reader.rst:207 msgid "" "Instances of :class:`IncrementalParser` offer the following additional " "methods:" msgstr "" -#: ../../library/xml.sax.reader.rst:212 msgid "Process a chunk of *data*." msgstr "" -#: ../../library/xml.sax.reader.rst:217 msgid "" "Assume the end of the document. That will check well-formedness conditions " "that can be checked only at the end, invoke handlers, and may clean up " "resources allocated during parsing." msgstr "" -#: ../../library/xml.sax.reader.rst:224 msgid "" "This method is called after close has been called to reset the parser so " "that it is ready to parse new documents. The results of calling parse or " "feed after close without calling reset are undefined." msgstr "" -#: ../../library/xml.sax.reader.rst:232 msgid "Locator Objects" msgstr "" -#: ../../library/xml.sax.reader.rst:234 msgid "Instances of :class:`Locator` provide these methods:" msgstr "" -#: ../../library/xml.sax.reader.rst:239 msgid "Return the column number where the current event begins." msgstr "" -#: ../../library/xml.sax.reader.rst:244 msgid "Return the line number where the current event begins." msgstr "" -#: ../../library/xml.sax.reader.rst:249 msgid "Return the public identifier for the current event." msgstr "" -#: ../../library/xml.sax.reader.rst:254 msgid "Return the system identifier for the current event." msgstr "" -#: ../../library/xml.sax.reader.rst:260 msgid "InputSource Objects" msgstr "" -#: ../../library/xml.sax.reader.rst:265 msgid "Sets the public identifier of this :class:`InputSource`." msgstr "" -#: ../../library/xml.sax.reader.rst:270 msgid "Returns the public identifier of this :class:`InputSource`." msgstr "" -#: ../../library/xml.sax.reader.rst:275 msgid "Sets the system identifier of this :class:`InputSource`." msgstr "" -#: ../../library/xml.sax.reader.rst:280 msgid "Returns the system identifier of this :class:`InputSource`." msgstr "" -#: ../../library/xml.sax.reader.rst:285 msgid "Sets the character encoding of this :class:`InputSource`." msgstr "" -#: ../../library/xml.sax.reader.rst:287 msgid "" "The encoding must be a string acceptable for an XML encoding declaration " "(see section 4.3.3 of the XML recommendation)." msgstr "" -#: ../../library/xml.sax.reader.rst:290 msgid "" -"The encoding attribute of the :class:`InputSource` is ignored if " -"the :class:`InputSource` also contains a character stream." +"The encoding attribute of the :class:`InputSource` is ignored if the :class:" +"`InputSource` also contains a character stream." msgstr "" -#: ../../library/xml.sax.reader.rst:296 msgid "Get the character encoding of this InputSource." msgstr "" -#: ../../library/xml.sax.reader.rst:301 msgid "Set the byte stream (a :term:`binary file`) for this input source." msgstr "" -#: ../../library/xml.sax.reader.rst:303 msgid "" "The SAX parser will ignore this if there is also a character stream " "specified, but it will use a byte stream in preference to opening a URI " "connection itself." msgstr "" -#: ../../library/xml.sax.reader.rst:306 msgid "" "If the application knows the character encoding of the byte stream, it " "should set it with the setEncoding method." msgstr "" -#: ../../library/xml.sax.reader.rst:312 msgid "Get the byte stream for this input source." msgstr "" -#: ../../library/xml.sax.reader.rst:314 msgid "" "The getEncoding method will return the character encoding for this byte " "stream, or ``None`` if unknown." msgstr "" -#: ../../library/xml.sax.reader.rst:320 msgid "Set the character stream (a :term:`text file`) for this input source." msgstr "" -#: ../../library/xml.sax.reader.rst:322 msgid "" "If there is a character stream specified, the SAX parser will ignore any " "byte stream and will not attempt to open a URI connection to the system " "identifier." msgstr "" -#: ../../library/xml.sax.reader.rst:328 msgid "Get the character stream for this input source." msgstr "" -#: ../../library/xml.sax.reader.rst:334 msgid "The :class:`Attributes` Interface" msgstr "" -#: ../../library/xml.sax.reader.rst:336 msgid "" ":class:`Attributes` objects implement a portion of the :term:`mapping " -"protocol `, including the " -"methods :meth:`~collections.abc.Mapping.copy`, :meth:`~collections.abc.Mapping.get`, :meth:`~object.__contains__`, :meth:`~collections.abc.Mapping.items`, :meth:`~collections.abc.Mapping.keys`, " -"and :meth:`~collections.abc.Mapping.values`. The following methods are also " -"provided:" +"protocol `, including the methods :meth:`~collections.abc.Mapping." +"copy`, :meth:`~collections.abc.Mapping.get`, :meth:`~object.__contains__`, :" +"meth:`~collections.abc.Mapping.items`, :meth:`~collections.abc.Mapping." +"keys`, and :meth:`~collections.abc.Mapping.values`. The following methods " +"are also provided:" msgstr "" -#: ../../library/xml.sax.reader.rst:346 msgid "Return the number of attributes." msgstr "" -#: ../../library/xml.sax.reader.rst:351 msgid "Return the names of the attributes." msgstr "" -#: ../../library/xml.sax.reader.rst:356 msgid "" "Returns the type of the attribute *name*, which is normally ``'CDATA'``." msgstr "" -#: ../../library/xml.sax.reader.rst:361 msgid "Return the value of attribute *name*." msgstr "" -#: ../../library/xml.sax.reader.rst:370 msgid "The :class:`AttributesNS` Interface" msgstr "" -#: ../../library/xml.sax.reader.rst:372 msgid "" "This interface is a subtype of the :class:`Attributes` interface (see " "section :ref:`attributes-objects`). All methods supported by that interface " "are also available on :class:`AttributesNS` objects." msgstr "" -#: ../../library/xml.sax.reader.rst:376 msgid "The following methods are also available:" msgstr "" -#: ../../library/xml.sax.reader.rst:381 msgid "Return the value for a qualified name." msgstr "" -#: ../../library/xml.sax.reader.rst:386 msgid "Return the ``(namespace, localname)`` pair for a qualified *name*." msgstr "" -#: ../../library/xml.sax.reader.rst:391 msgid "Return the qualified name for a ``(namespace, localname)`` pair." msgstr "" -#: ../../library/xml.sax.reader.rst:396 msgid "Return the qualified names of all attributes." msgstr "" diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index 42b710f..3ff94ce 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,26 +18,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xml.sax.utils.rst:2 msgid ":mod:`!xml.sax.saxutils` --- SAX Utilities" msgstr "" -#: ../../library/xml.sax.utils.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/saxutils.py`" msgstr "" -#: ../../library/xml.sax.utils.rst:14 msgid "" "The module :mod:`xml.sax.saxutils` contains a number of classes and " "functions that are commonly useful when creating SAX applications, either in " "direct use, or as base classes." msgstr "" -#: ../../library/xml.sax.utils.rst:21 msgid "Escape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" -#: ../../library/xml.sax.utils.rst:23 msgid "" "You can escape other strings of data by passing a dictionary as the optional " "*entities* parameter. The keys and values must all be strings; each key " @@ -45,18 +40,15 @@ msgid "" "``'<'`` and ``'>'`` are always escaped, even if *entities* is provided." msgstr "" -#: ../../library/xml.sax.utils.rst:30 msgid "" "This function should only be used to escape characters that can't be used " "directly in XML. Do not use this function as a general string translation " "function." msgstr "" -#: ../../library/xml.sax.utils.rst:36 msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" -#: ../../library/xml.sax.utils.rst:38 msgid "" "You can unescape other strings of data by passing a dictionary as the " "optional *entities* parameter. The keys and values must all be strings; " @@ -65,7 +57,6 @@ msgid "" "provided." msgstr "" -#: ../../library/xml.sax.utils.rst:46 msgid "" "Similar to :func:`escape`, but also prepares *data* to be used as an " "attribute value. The return value is a quoted version of *data* with any " @@ -77,23 +68,20 @@ msgid "" "directly as an attribute value::" msgstr "" -#: ../../library/xml.sax.utils.rst:55 msgid "" ">>> print(\"\" % quoteattr(\"ab ' cd \\\" ef\"))\n" "" msgstr "" -#: ../../library/xml.sax.utils.rst:58 msgid "" "This function is useful when generating attribute values for HTML or any " "SGML using the reference concrete syntax." msgstr "" -#: ../../library/xml.sax.utils.rst:64 msgid "" "This class implements the :class:`~xml.sax.handler.ContentHandler` interface " -"by writing SAX events back into an XML document. In other words, using " -"an :class:`XMLGenerator` as the content handler will reproduce the original " +"by writing SAX events back into an XML document. In other words, using an :" +"class:`XMLGenerator` as the content handler will reproduce the original " "document being parsed. *out* should be a file-like object which will default " "to *sys.stdout*. *encoding* is the encoding of the output stream which " "defaults to ``'iso-8859-1'``. *short_empty_elements* controls the formatting " @@ -102,26 +90,22 @@ msgid "" "a single self-closed tag." msgstr "" -#: ../../library/xml.sax.utils.rst:74 msgid "Added the *short_empty_elements* parameter." msgstr "" -#: ../../library/xml.sax.utils.rst:80 msgid "" -"This class is designed to sit between " -"an :class:`~xml.sax.xmlreader.XMLReader` and the client application's event " -"handlers. By default, it does nothing but pass requests up to the reader " -"and events on to the handlers unmodified, but subclasses can override " -"specific methods to modify the event stream or the configuration requests as " -"they pass through." +"This class is designed to sit between an :class:`~xml.sax.xmlreader." +"XMLReader` and the client application's event handlers. By default, it does " +"nothing but pass requests up to the reader and events on to the handlers " +"unmodified, but subclasses can override specific methods to modify the event " +"stream or the configuration requests as they pass through." msgstr "" -#: ../../library/xml.sax.utils.rst:90 msgid "" "This function takes an input source and an optional base URL and returns a " "fully resolved :class:`~xml.sax.xmlreader.InputSource` object ready for " "reading. The input source can be given as a string, a file-like object, or " "an :class:`~xml.sax.xmlreader.InputSource` object; parsers will use this " -"function to implement the polymorphic *source* argument to " -"their :meth:`~xml.sax.xmlreader.XMLReader.parse` method." +"function to implement the polymorphic *source* argument to their :meth:`~xml." +"sax.xmlreader.XMLReader.parse` method." msgstr "" diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 918ca6c..fa95eb2 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/xmlrpc.client.rst:2 msgid ":mod:`!xmlrpc.client` --- XML-RPC client access" msgstr "" -#: ../../library/xmlrpc.client.rst:10 msgid "**Source code:** :source:`Lib/xmlrpc/client.py`" msgstr "" -#: ../../library/xmlrpc.client.rst:17 msgid "" "XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP(S) " "as a transport. With it, a client can call methods with parameters on a " @@ -39,30 +36,25 @@ msgid "" "of translating between conformable Python objects and XML on the wire." msgstr "" -#: ../../library/xmlrpc.client.rst:26 msgid "" "The :mod:`xmlrpc.client` module is not secure against maliciously " "constructed data. If you need to parse untrusted or unauthenticated data, " "see :ref:`xml-security`." msgstr "" -#: ../../library/xmlrpc.client.rst:32 msgid "" "For HTTPS URIs, :mod:`xmlrpc.client` now performs all the necessary " "certificate and hostname checks by default." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/xmlrpc.client.rst:41 msgid "" "A :class:`ServerProxy` instance is an object that manages communication with " "a remote XML-RPC server. The required first argument is a URI (Uniform " @@ -74,47 +66,42 @@ msgid "" "flag." msgstr "" -#: ../../library/xmlrpc.client.rst:49 msgid "" "The following parameters govern the use of the returned proxy instance. If " "*allow_none* is true, the Python constant ``None`` will be translated into " "XML; the default behaviour is for ``None`` to raise a :exc:`TypeError`. This " "is a commonly used extension to the XML-RPC specification, but isn't " "supported by all clients and servers; see `http://ontosys.com/xml-rpc/" -"extensions.php `_ for a description. The " -"*use_builtin_types* flag can be used to cause date/time values to be " -"presented as :class:`datetime.datetime` objects and binary data to be " -"presented as :class:`bytes` objects; this flag is false by " -"default. :class:`datetime.datetime`, :class:`bytes` and :class:`bytearray` " -"objects may be passed to calls. The *headers* parameter is an optional " -"sequence of HTTP headers to send with each request, expressed as a sequence " -"of 2-tuples representing the header name and value. (e.g. ``[('Header-Name', " -"'value')]``). If an HTTPS URL is provided, *context* may " -"be :class:`ssl.SSLContext` and configures the SSL settings of the underlying " -"HTTPS connection. The obsolete *use_datetime* flag is similar to " -"*use_builtin_types* but it applies only to date/time values." -msgstr "" - -#: ../../library/xmlrpc.client.rst:69 ../../library/xmlrpc.client.rst:549 +"extensions.php `_ for a description. The *use_builtin_types* " +"flag can be used to cause date/time values to be presented as :class:" +"`datetime.datetime` objects and binary data to be presented as :class:" +"`bytes` objects; this flag is false by default. :class:`datetime.datetime`, :" +"class:`bytes` and :class:`bytearray` objects may be passed to calls. The " +"*headers* parameter is an optional sequence of HTTP headers to send with " +"each request, expressed as a sequence of 2-tuples representing the header " +"name and value. (e.g. ``[('Header-Name', 'value')]``). If an HTTPS URL is " +"provided, *context* may be :class:`ssl.SSLContext` and configures the SSL " +"settings of the underlying HTTPS connection. The obsolete *use_datetime* " +"flag is similar to *use_builtin_types* but it applies only to date/time " +"values." +msgstr "" + msgid "The *use_builtin_types* flag was added." msgstr "" -#: ../../library/xmlrpc.client.rst:72 msgid "The *headers* parameter was added." msgstr "" -#: ../../library/xmlrpc.client.rst:75 msgid "" "Both the HTTP and HTTPS transports support the URL syntax extension for HTTP " -"Basic Authentication: ``http://user:pass@host:port/path``. The " -"``user:pass`` portion will be base64-encoded as an HTTP 'Authorization' " -"header, and sent to the remote server as part of the connection process when " -"invoking an XML-RPC method. You only need to use this if the remote server " -"requires a Basic Authentication user and password." +"Basic Authentication: ``http://user:pass@host:port/path``. The ``user:" +"pass`` portion will be base64-encoded as an HTTP 'Authorization' header, and " +"sent to the remote server as part of the connection process when invoking an " +"XML-RPC method. You only need to use this if the remote server requires a " +"Basic Authentication user and password." msgstr "" -#: ../../library/xmlrpc.client.rst:82 msgid "" "The returned instance is a proxy object with methods that can be used to " "invoke corresponding RPC calls on the remote server. If the remote server " @@ -123,114 +110,90 @@ msgid "" "other server-associated metadata." msgstr "" -#: ../../library/xmlrpc.client.rst:88 msgid "" "Types that are conformable (e.g. that can be marshalled through XML), " "include the following (and except where noted, they are unmarshalled as the " "same Python type):" msgstr "" -#: ../../library/xmlrpc.client.rst:95 msgid "XML-RPC type" msgstr "" -#: ../../library/xmlrpc.client.rst:95 msgid "Python type" msgstr "" -#: ../../library/xmlrpc.client.rst:97 msgid "``boolean``" msgstr "" -#: ../../library/xmlrpc.client.rst:97 msgid ":class:`bool`" msgstr "" -#: ../../library/xmlrpc.client.rst:99 msgid "``int``, ``i1``, ``i2``, ``i4``, ``i8`` or ``biginteger``" msgstr "" -#: ../../library/xmlrpc.client.rst:99 msgid "" ":class:`int` in range from -2147483648 to 2147483647. Values get the " "```` tag." msgstr "" -#: ../../library/xmlrpc.client.rst:104 msgid "``double`` or ``float``" msgstr "" -#: ../../library/xmlrpc.client.rst:104 msgid ":class:`float`. Values get the ```` tag." msgstr "" -#: ../../library/xmlrpc.client.rst:107 msgid "``string``" msgstr "" -#: ../../library/xmlrpc.client.rst:107 msgid ":class:`str`" msgstr "" -#: ../../library/xmlrpc.client.rst:109 msgid "``array``" msgstr "" -#: ../../library/xmlrpc.client.rst:109 msgid "" ":class:`list` or :class:`tuple` containing conformable elements. Arrays are " "returned as :class:`lists `." msgstr "" -#: ../../library/xmlrpc.client.rst:113 msgid "``struct``" msgstr "" -#: ../../library/xmlrpc.client.rst:113 msgid "" ":class:`dict`. Keys must be strings, values may be any conformable type. " -"Objects of user-defined classes can be passed in; only " -"their :attr:`~object.__dict__` attribute is transmitted." +"Objects of user-defined classes can be passed in; only their :attr:`~object." +"__dict__` attribute is transmitted." msgstr "" -#: ../../library/xmlrpc.client.rst:118 msgid "``dateTime.iso8601``" msgstr "" -#: ../../library/xmlrpc.client.rst:118 msgid "" ":class:`DateTime` or :class:`datetime.datetime`. Returned type depends on " "values of *use_builtin_types* and *use_datetime* flags." msgstr "" -#: ../../library/xmlrpc.client.rst:122 msgid "``base64``" msgstr "" -#: ../../library/xmlrpc.client.rst:122 msgid "" ":class:`Binary`, :class:`bytes` or :class:`bytearray`. Returned type " "depends on the value of the *use_builtin_types* flag." msgstr "" -#: ../../library/xmlrpc.client.rst:126 msgid "``nil``" msgstr "" -#: ../../library/xmlrpc.client.rst:126 msgid "" "The ``None`` constant. Passing is allowed only if *allow_none* is true." msgstr "" -#: ../../library/xmlrpc.client.rst:129 msgid "``bigdecimal``" msgstr "" -#: ../../library/xmlrpc.client.rst:129 msgid ":class:`decimal.Decimal`. Returned type only." msgstr "" -#: ../../library/xmlrpc.client.rst:132 msgid "" "This is the full set of data types supported by XML-RPC. Method calls may " "also raise a special :exc:`Fault` instance, used to signal XML-RPC server " @@ -240,7 +203,6 @@ msgid "" "currently does not marshal instances of subclasses of built-in types." msgstr "" -#: ../../library/xmlrpc.client.rst:139 msgid "" "When passing strings, characters special to XML such as ``<``, ``>``, and " "``&`` will be automatically escaped. However, it's the caller's " @@ -248,22 +210,18 @@ msgid "" "allowed in XML, such as the control characters with ASCII values between 0 " "and 31 (except, of course, tab, newline and carriage return); failing to do " "this will result in an XML-RPC request that isn't well-formed XML. If you " -"have to pass arbitrary bytes via XML-RPC, use :class:`bytes` " -"or :class:`bytearray` classes or the :class:`Binary` wrapper class described " -"below." +"have to pass arbitrary bytes via XML-RPC, use :class:`bytes` or :class:" +"`bytearray` classes or the :class:`Binary` wrapper class described below." msgstr "" -#: ../../library/xmlrpc.client.rst:148 msgid "" ":class:`Server` is retained as an alias for :class:`ServerProxy` for " "backwards compatibility. New code should use :class:`ServerProxy`." msgstr "" -#: ../../library/xmlrpc.client.rst:151 msgid "Added the *context* argument." msgstr "" -#: ../../library/xmlrpc.client.rst:154 msgid "" "Added support of type tags with prefixes (e.g. ``ex:nil``). Added support of " "unmarshalling additional types used by Apache XML-RPC implementation for " @@ -272,39 +230,31 @@ msgid "" "description." msgstr "" -#: ../../library/xmlrpc.client.rst:164 msgid "`XML-RPC HOWTO `_" msgstr "" -#: ../../library/xmlrpc.client.rst:165 msgid "" "A good description of XML-RPC operation and client software in several " "languages. Contains pretty much everything an XML-RPC client developer needs " "to know." msgstr "" -#: ../../library/xmlrpc.client.rst:168 msgid "" "`XML-RPC Introspection `_" msgstr "" -#: ../../library/xmlrpc.client.rst:169 msgid "Describes the XML-RPC protocol extension for introspection." msgstr "" -#: ../../library/xmlrpc.client.rst:171 msgid "`XML-RPC Specification `_" msgstr "" -#: ../../library/xmlrpc.client.rst:172 msgid "The official specification." msgstr "" -#: ../../library/xmlrpc.client.rst:177 msgid "ServerProxy Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:179 msgid "" "A :class:`ServerProxy` instance has a method corresponding to each remote " "procedure call accepted by the XML-RPC server. Calling the method performs " @@ -314,19 +264,16 @@ msgid "" "or a :class:`Fault` or :class:`ProtocolError` object indicating an error." msgstr "" -#: ../../library/xmlrpc.client.rst:186 msgid "" "Servers that support the XML introspection API support some common methods " "grouped under the reserved :attr:`~ServerProxy.system` attribute:" msgstr "" -#: ../../library/xmlrpc.client.rst:192 msgid "" "This method returns a list of strings, one for each (non-system) method " "supported by the XML-RPC server." msgstr "" -#: ../../library/xmlrpc.client.rst:198 msgid "" "This method takes one parameter, the name of a method implemented by the XML-" "RPC server. It returns an array of possible signatures for this method. A " @@ -334,13 +281,11 @@ msgid "" "of the method, the rest are parameters." msgstr "" -#: ../../library/xmlrpc.client.rst:203 msgid "" "Because multiple signatures (ie. overloading) is permitted, this method " "returns a list of signatures rather than a singleton." msgstr "" -#: ../../library/xmlrpc.client.rst:206 msgid "" "Signatures themselves are restricted to the top level parameters expected by " "a method. For instance if a method expects one array of structs as a " @@ -349,14 +294,12 @@ msgid "" "\"string, int, int, int\"." msgstr "" -#: ../../library/xmlrpc.client.rst:211 msgid "" "If no signature is defined for the method, a non-array value is returned. In " "Python this means that the type of the returned value will be something " "other than list." msgstr "" -#: ../../library/xmlrpc.client.rst:218 msgid "" "This method takes one parameter, the name of a method implemented by the XML-" "RPC server. It returns a documentation string describing the use of that " @@ -364,17 +307,14 @@ msgid "" "documentation string may contain HTML markup." msgstr "" -#: ../../library/xmlrpc.client.rst:225 msgid "" "Instances of :class:`ServerProxy` support the :term:`context manager` " "protocol for closing the underlying transport." msgstr "" -#: ../../library/xmlrpc.client.rst:229 ../../library/xmlrpc.client.rst:276 msgid "A working example follows. The server code::" msgstr "" -#: ../../library/xmlrpc.client.rst:231 msgid "" "from xmlrpc.server import SimpleXMLRPCServer\n" "\n" @@ -387,12 +327,9 @@ msgid "" "server.serve_forever()" msgstr "" -#: ../../library/xmlrpc.client.rst:241 ../../library/xmlrpc.client.rst:291 -#: ../../library/xmlrpc.client.rst:401 ../../library/xmlrpc.client.rst:507 msgid "The client code for the preceding server::" msgstr "" -#: ../../library/xmlrpc.client.rst:243 msgid "" "import xmlrpc.client\n" "\n" @@ -401,11 +338,9 @@ msgid "" " print(\"100 is even: %s\" % str(proxy.is_even(100)))" msgstr "" -#: ../../library/xmlrpc.client.rst:252 msgid "DateTime Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:256 msgid "" "This class may be initialized with seconds since the epoch, a time tuple, an " "ISO 8601 time/date string, or a :class:`datetime.datetime` instance. It has " @@ -413,23 +348,19 @@ msgid "" "unmarshalling code:" msgstr "" -#: ../../library/xmlrpc.client.rst:264 msgid "Accept a string as the instance's new time value." msgstr "" -#: ../../library/xmlrpc.client.rst:269 msgid "" "Write the XML-RPC encoding of this :class:`DateTime` item to the *out* " "stream object." msgstr "" -#: ../../library/xmlrpc.client.rst:272 msgid "" "It also supports certain of Python's built-in operators through :meth:`rich " "comparison ` and :meth:`~object.__repr__` methods." msgstr "" -#: ../../library/xmlrpc.client.rst:278 msgid "" "import datetime\n" "from xmlrpc.server import SimpleXMLRPCServer\n" @@ -445,7 +376,6 @@ msgid "" "server.serve_forever()" msgstr "" -#: ../../library/xmlrpc.client.rst:293 msgid "" "import xmlrpc.client\n" "import datetime\n" @@ -458,61 +388,51 @@ msgid "" "print(\"Today: %s\" % converted.strftime(\"%d.%m.%Y, %H:%M\"))" msgstr "" -#: ../../library/xmlrpc.client.rst:306 msgid "Binary Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:310 msgid "" "This class may be initialized from bytes data (which may include NULs). The " "primary access to the content of a :class:`Binary` object is provided by an " "attribute:" msgstr "" -#: ../../library/xmlrpc.client.rst:317 msgid "" "The binary data encapsulated by the :class:`Binary` instance. The data is " "provided as a :class:`bytes` object." msgstr "" -#: ../../library/xmlrpc.client.rst:320 msgid "" ":class:`Binary` objects have the following methods, supported mainly for " "internal use by the marshalling/unmarshalling code:" msgstr "" -#: ../../library/xmlrpc.client.rst:326 msgid "" "Accept a base64 :class:`bytes` object and decode it as the instance's new " "data." msgstr "" -#: ../../library/xmlrpc.client.rst:331 msgid "" "Write the XML-RPC base 64 encoding of this binary item to the *out* stream " "object." msgstr "" -#: ../../library/xmlrpc.client.rst:333 msgid "" "The encoded data will have newlines every 76 characters as per :rfc:`RFC " "2045 section 6.8 <2045#section-6.8>`, which was the de facto standard base64 " "specification when the XML-RPC spec was written." msgstr "" -#: ../../library/xmlrpc.client.rst:338 msgid "" -"It also supports certain of Python's built-in operators " -"through :meth:`~object.__eq__` and :meth:`~object.__ne__` methods." +"It also supports certain of Python's built-in operators through :meth:" +"`~object.__eq__` and :meth:`~object.__ne__` methods." msgstr "" -#: ../../library/xmlrpc.client.rst:341 msgid "" "Example usage of the binary objects. We're going to transfer an image over " "XMLRPC::" msgstr "" -#: ../../library/xmlrpc.client.rst:344 msgid "" "from xmlrpc.server import SimpleXMLRPCServer\n" "import xmlrpc.client\n" @@ -528,11 +448,9 @@ msgid "" "server.serve_forever()" msgstr "" -#: ../../library/xmlrpc.client.rst:357 msgid "The client gets the image and saves it to a file::" msgstr "" -#: ../../library/xmlrpc.client.rst:359 msgid "" "import xmlrpc.client\n" "\n" @@ -541,31 +459,25 @@ msgid "" " handle.write(proxy.python_logo().data)" msgstr "" -#: ../../library/xmlrpc.client.rst:368 msgid "Fault Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:372 msgid "" "A :class:`Fault` object encapsulates the content of an XML-RPC fault tag. " "Fault objects have the following attributes:" msgstr "" -#: ../../library/xmlrpc.client.rst:378 msgid "An int indicating the fault type." msgstr "" -#: ../../library/xmlrpc.client.rst:383 msgid "A string containing a diagnostic message associated with the fault." msgstr "" -#: ../../library/xmlrpc.client.rst:385 msgid "" "In the following example we're going to intentionally cause a :exc:`Fault` " "by returning a complex type object. The server code::" msgstr "" -#: ../../library/xmlrpc.client.rst:388 msgid "" "from xmlrpc.server import SimpleXMLRPCServer\n" "\n" @@ -581,7 +493,6 @@ msgid "" "server.serve_forever()" msgstr "" -#: ../../library/xmlrpc.client.rst:403 msgid "" "import xmlrpc.client\n" "\n" @@ -594,42 +505,34 @@ msgid "" " print(\"Fault string: %s\" % err.faultString)" msgstr "" -#: ../../library/xmlrpc.client.rst:418 msgid "ProtocolError Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:422 msgid "" "A :class:`ProtocolError` object describes a protocol error in the underlying " "transport layer (such as a 404 'not found' error if the server named by the " "URI does not exist). It has the following attributes:" msgstr "" -#: ../../library/xmlrpc.client.rst:429 msgid "The URI or URL that triggered the error." msgstr "" -#: ../../library/xmlrpc.client.rst:434 msgid "The error code." msgstr "" -#: ../../library/xmlrpc.client.rst:439 msgid "The error message or diagnostic string." msgstr "" -#: ../../library/xmlrpc.client.rst:444 msgid "" "A dict containing the headers of the HTTP/HTTPS request that triggered the " "error." msgstr "" -#: ../../library/xmlrpc.client.rst:447 msgid "" -"In the following example we're going to intentionally cause " -"a :exc:`ProtocolError` by providing an invalid URI::" +"In the following example we're going to intentionally cause a :exc:" +"`ProtocolError` by providing an invalid URI::" msgstr "" -#: ../../library/xmlrpc.client.rst:450 msgid "" "import xmlrpc.client\n" "\n" @@ -646,17 +549,14 @@ msgid "" " print(\"Error message: %s\" % err.errmsg)" msgstr "" -#: ../../library/xmlrpc.client.rst:465 msgid "MultiCall Objects" msgstr "" -#: ../../library/xmlrpc.client.rst:467 msgid "" "The :class:`MultiCall` object provides a way to encapsulate multiple calls " "to a remote server into a single request [#]_." msgstr "" -#: ../../library/xmlrpc.client.rst:473 msgid "" "Create an object used to boxcar method calls. *server* is the eventual " "target of the call. Calls can be made to the result object, but they will " @@ -667,11 +567,9 @@ msgid "" "the individual results." msgstr "" -#: ../../library/xmlrpc.client.rst:481 msgid "A usage example of this class follows. The server code::" msgstr "" -#: ../../library/xmlrpc.client.rst:483 msgid "" "from xmlrpc.server import SimpleXMLRPCServer\n" "\n" @@ -698,7 +596,6 @@ msgid "" "server.serve_forever()" msgstr "" -#: ../../library/xmlrpc.client.rst:509 msgid "" "import xmlrpc.client\n" "\n" @@ -713,11 +610,9 @@ msgid "" "print(\"7+3=%d, 7-3=%d, 7*3=%d, 7//3=%d\" % tuple(result))" msgstr "" -#: ../../library/xmlrpc.client.rst:523 msgid "Convenience Functions" msgstr "" -#: ../../library/xmlrpc.client.rst:527 msgid "" "Convert *params* into an XML-RPC request. or into a response if " "*methodresponse* is true. *params* can be either a tuple of arguments or an " @@ -729,7 +624,6 @@ msgid "" "*allow_none*." msgstr "" -#: ../../library/xmlrpc.client.rst:538 msgid "" "Convert an XML-RPC request or response into Python objects, a ``(params, " "methodname)``. *params* is a tuple of argument; *methodname* is a string, " @@ -740,17 +634,14 @@ msgid "" "to be presented as :class:`bytes` objects; this flag is false by default." msgstr "" -#: ../../library/xmlrpc.client.rst:546 msgid "" "The obsolete *use_datetime* flag is similar to *use_builtin_types* but it " "applies only to date/time values." msgstr "" -#: ../../library/xmlrpc.client.rst:556 msgid "Example of Client Usage" msgstr "" -#: ../../library/xmlrpc.client.rst:560 msgid "" "# simple test program (from the XML-RPC specification)\n" "from xmlrpc.client import ServerProxy, Error\n" @@ -766,13 +657,11 @@ msgid "" " print(\"ERROR\", v)" msgstr "" -#: ../../library/xmlrpc.client.rst:573 msgid "" "To access an XML-RPC server through a HTTP proxy, you need to define a " "custom transport. The following example shows how::" msgstr "" -#: ../../library/xmlrpc.client.rst:576 msgid "" "import http.client\n" "import xmlrpc.client\n" @@ -796,19 +685,15 @@ msgid "" "print(server.examples.getStateName(41))" msgstr "" -#: ../../library/xmlrpc.client.rst:598 msgid "Example of Client and Server Usage" msgstr "" -#: ../../library/xmlrpc.client.rst:600 msgid "See :ref:`simplexmlrpcserver-example`." msgstr "" -#: ../../library/xmlrpc.client.rst:604 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../library/xmlrpc.client.rst:605 msgid "" "This approach has been first presented in `a discussion on xmlrpc.com " "" msgstr "" -#: ../../library/zipapp.rst:40 msgid "Command-Line Interface" msgstr "" -#: ../../library/zipapp.rst:42 msgid "" "When called as a program from the command line, the following form is used:" msgstr "" -#: ../../library/zipapp.rst:44 msgid "$ python -m zipapp source [options]" msgstr "" -#: ../../library/zipapp.rst:48 msgid "" "If *source* is a directory, this will create an archive from the contents of " "*source*. If *source* is a file, it should be an archive, and it will be " @@ -74,11 +64,9 @@ msgid "" "displayed if the --info option is specified)." msgstr "" -#: ../../library/zipapp.rst:53 msgid "The following options are understood:" msgstr "" -#: ../../library/zipapp.rst:59 msgid "" "Write the output to a file named *output*. If this option is not specified, " "the output filename will be the same as the input *source*, with the " @@ -86,20 +74,17 @@ msgid "" "is (so a ``.pyz`` extension should be included if required)." msgstr "" -#: ../../library/zipapp.rst:64 msgid "" "An output filename must be specified if the *source* is an archive (and in " "that case, *output* must not be the same as *source*)." msgstr "" -#: ../../library/zipapp.rst:69 msgid "" "Add a ``#!`` line to the archive specifying *interpreter* as the command to " "run. Also, on POSIX, make the archive executable. The default is to write " "no ``#!`` line, and not make the file executable." msgstr "" -#: ../../library/zipapp.rst:75 msgid "" "Write a ``__main__.py`` file to the archive that executes *mainfn*. The " "*mainfn* argument should have the form \"pkg.mod:fn\", where \"pkg.mod\" is " @@ -107,53 +92,43 @@ msgid "" "module. The ``__main__.py`` file will execute that callable." msgstr "" -#: ../../library/zipapp.rst:80 msgid ":option:`--main` cannot be specified when copying an archive." msgstr "" -#: ../../library/zipapp.rst:84 msgid "" "Compress files with the deflate method, reducing the size of the output " "file. By default, files are stored uncompressed in the archive." msgstr "" -#: ../../library/zipapp.rst:87 msgid ":option:`--compress` has no effect when copying an archive." msgstr "" -#: ../../library/zipapp.rst:93 msgid "" "Display the interpreter embedded in the archive, for diagnostic purposes. " "In this case, any other options are ignored and SOURCE must be an archive, " "not a directory." msgstr "" -#: ../../library/zipapp.rst:99 msgid "Print a short usage message and exit." msgstr "" -#: ../../library/zipapp.rst:105 msgid "Python API" msgstr "" -#: ../../library/zipapp.rst:107 msgid "The module defines two convenience functions:" msgstr "" -#: ../../library/zipapp.rst:112 msgid "" "Create an application archive from *source*. The source can be any of the " "following:" msgstr "" -#: ../../library/zipapp.rst:115 msgid "" "The name of a directory, or a :term:`path-like object` referring to a " "directory, in which case a new application archive will be created from the " "content of that directory." msgstr "" -#: ../../library/zipapp.rst:118 msgid "" "The name of an existing application archive file, or a :term:`path-like " "object` referring to such a file, in which case the file is copied to the " @@ -161,38 +136,32 @@ msgid "" "argument). The file name should include the ``.pyz`` extension, if required." msgstr "" -#: ../../library/zipapp.rst:122 msgid "" "A file object open for reading in bytes mode. The content of the file " "should be an application archive, and the file object is assumed to be " "positioned at the start of the archive." msgstr "" -#: ../../library/zipapp.rst:126 msgid "" "The *target* argument determines where the resulting archive will be written:" msgstr "" -#: ../../library/zipapp.rst:129 msgid "" "If it is the name of a file, or a :term:`path-like object`, the archive will " "be written to that file." msgstr "" -#: ../../library/zipapp.rst:131 msgid "" "If it is an open file object, the archive will be written to that file " "object, which must be open for writing in bytes mode." msgstr "" -#: ../../library/zipapp.rst:133 msgid "" "If the target is omitted (or ``None``), the source must be a directory and " "the target will be a file with the same name as the source, with a ``.pyz`` " "extension added." msgstr "" -#: ../../library/zipapp.rst:137 msgid "" "The *interpreter* argument specifies the name of the Python interpreter with " "which the archive will be executed. It is written as a \"shebang\" line at " @@ -203,7 +172,6 @@ msgid "" "file will be set." msgstr "" -#: ../../library/zipapp.rst:145 msgid "" "The *main* argument specifies the name of a callable which will be used as " "the main program for the archive. It can only be specified if the source is " @@ -215,14 +183,12 @@ msgid "" "resulting archive would not be executable." msgstr "" -#: ../../library/zipapp.rst:155 msgid "" "The optional *filter* argument specifies a callback function that is passed " "a Path object representing the path to the file being added (relative to the " "source directory). It should return ``True`` if the file is to be added." msgstr "" -#: ../../library/zipapp.rst:160 msgid "" "The optional *compressed* argument determines whether files are compressed. " "If set to ``True``, files in the archive are compressed with the deflate " @@ -230,25 +196,21 @@ msgid "" "effect when copying an existing archive." msgstr "" -#: ../../library/zipapp.rst:165 msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" -#: ../../library/zipapp.rst:168 msgid "" "When copying an existing archive, file objects supplied only need ``read`` " "and ``readline``, or ``write`` methods. When creating an archive from a " -"directory, if the target is a file object it will be passed to the " -"``zipfile.ZipFile`` class, and must supply the methods needed by that class." +"directory, if the target is a file object it will be passed to the ``zipfile." +"ZipFile`` class, and must supply the methods needed by that class." msgstr "" -#: ../../library/zipapp.rst:174 msgid "Added the *filter* and *compressed* parameters." msgstr "" -#: ../../library/zipapp.rst:179 msgid "" "Return the interpreter specified in the ``#!`` line at the start of the " "archive. If there is no ``#!`` line, return :const:`None`. The *archive* " @@ -256,68 +218,57 @@ msgid "" "mode. It is assumed to be at the start of the archive." msgstr "" -#: ../../library/zipapp.rst:188 msgid "Examples" msgstr "" -#: ../../library/zipapp.rst:190 msgid "Pack up a directory into an archive, and run it." msgstr "" -#: ../../library/zipapp.rst:192 msgid "" "$ python -m zipapp myapp\n" "$ python myapp.pyz\n" "" msgstr "" -#: ../../library/zipapp.rst:198 msgid "The same can be done using the :func:`create_archive` function::" msgstr "" -#: ../../library/zipapp.rst:200 msgid "" ">>> import zipapp\n" ">>> zipapp.create_archive('myapp', 'myapp.pyz')" msgstr "" -#: ../../library/zipapp.rst:203 msgid "" "To make the application directly executable on POSIX, specify an interpreter " "to use." msgstr "" -#: ../../library/zipapp.rst:206 msgid "" "$ python -m zipapp myapp -p \"/usr/bin/env python\"\n" "$ ./myapp.pyz\n" "" msgstr "" -#: ../../library/zipapp.rst:212 msgid "" "To replace the shebang line on an existing archive, create a modified " "archive using the :func:`create_archive` function::" msgstr "" -#: ../../library/zipapp.rst:215 msgid "" ">>> import zipapp\n" ">>> zipapp.create_archive('old_archive.pyz', 'new_archive.pyz', '/usr/bin/" "python3')" msgstr "" -#: ../../library/zipapp.rst:218 msgid "" -"To update the file in place, do the replacement in memory using " -"a :class:`~io.BytesIO` object, and then overwrite the source afterwards. " -"Note that there is a risk when overwriting a file in place that an error " -"will result in the loss of the original file. This code does not protect " -"against such errors, but production code should do so. Also, this method " -"will only work if the archive fits in memory::" +"To update the file in place, do the replacement in memory using a :class:" +"`~io.BytesIO` object, and then overwrite the source afterwards. Note that " +"there is a risk when overwriting a file in place that an error will result " +"in the loss of the original file. This code does not protect against such " +"errors, but production code should do so. Also, this method will only work " +"if the archive fits in memory::" msgstr "" -#: ../../library/zipapp.rst:225 msgid "" ">>> import zipapp\n" ">>> import io\n" @@ -327,11 +278,9 @@ msgid "" ">>> f.write(temp.getvalue())" msgstr "" -#: ../../library/zipapp.rst:236 msgid "Specifying the Interpreter" msgstr "" -#: ../../library/zipapp.rst:238 msgid "" "Note that if you specify an interpreter and then distribute your application " "archive, you need to ensure that the interpreter used is portable. The " @@ -339,7 +288,6 @@ msgid "" "but there are other issues to consider:" msgstr "" -#: ../../library/zipapp.rst:243 msgid "" "If you use \"/usr/bin/env python\" (or other forms of the \"python\" " "command, such as \"/usr/bin/python\"), you need to consider that your users " @@ -347,31 +295,26 @@ msgid "" "to work under both versions." msgstr "" -#: ../../library/zipapp.rst:247 msgid "" "If you use an explicit version, for example \"/usr/bin/env python3\" your " "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" -#: ../../library/zipapp.rst:250 msgid "" "There is no way to say \"python X.Y or later\", so be careful of using an " "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" -#: ../../library/zipapp.rst:254 msgid "" "Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " "python3\", depending on whether your code is written for Python 2 or 3." msgstr "" -#: ../../library/zipapp.rst:259 msgid "Creating Standalone Applications with zipapp" msgstr "" -#: ../../library/zipapp.rst:261 msgid "" "Using the :mod:`zipapp` module, it is possible to create self-contained " "Python programs, which can be distributed to end users who only need to have " @@ -380,50 +323,41 @@ msgid "" "along with the application code." msgstr "" -#: ../../library/zipapp.rst:267 msgid "The steps to create a standalone archive are as follows:" msgstr "" -#: ../../library/zipapp.rst:269 msgid "" "Create your application in a directory as normal, so you have a ``myapp`` " "directory containing a ``__main__.py`` file, and any supporting application " "code." msgstr "" -#: ../../library/zipapp.rst:273 msgid "" "Install all of your application's dependencies into the ``myapp`` directory, " "using pip:" msgstr "" -#: ../../library/zipapp.rst:276 msgid "$ python -m pip install -r requirements.txt --target myapp" msgstr "" -#: ../../library/zipapp.rst:280 msgid "" "(this assumes you have your project requirements in a ``requirements.txt`` " "file - if not, you can just list the dependencies manually on the pip " "command line)." msgstr "" -#: ../../library/zipapp.rst:284 msgid "Package the application using:" msgstr "" -#: ../../library/zipapp.rst:286 msgid "$ python -m zipapp -p \"interpreter\" myapp" msgstr "" -#: ../../library/zipapp.rst:290 msgid "" "This will produce a standalone executable, which can be run on any machine " "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" "interpreter` for details. It can be shipped to users as a single file." msgstr "" -#: ../../library/zipapp.rst:294 msgid "" "On Unix, the ``myapp.pyz`` file is executable as it stands. You can rename " "the file to remove the ``.pyz`` extension if you prefer a \"plain\" command " @@ -432,11 +366,9 @@ msgid "" "extensions when installed." msgstr "" -#: ../../library/zipapp.rst:302 msgid "Caveats" msgstr "" -#: ../../library/zipapp.rst:304 msgid "" "If your application depends on a package that includes a C extension, that " "package cannot be run from a zip file (this is an OS limitation, as " @@ -450,11 +382,9 @@ msgid "" "based on the user's machine)." msgstr "" -#: ../../library/zipapp.rst:316 msgid "The Python Zip Application Archive Format" msgstr "" -#: ../../library/zipapp.rst:318 msgid "" "Python has been able to execute zip files which contain a ``__main__.py`` " "file since version 2.6. In order to be executed by Python, an application " @@ -465,18 +395,15 @@ msgid "" "the zip file." msgstr "" -#: ../../library/zipapp.rst:325 msgid "" "The zip file format allows arbitrary data to be prepended to a zip file. " "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" -#: ../../library/zipapp.rst:329 msgid "Formally, the Python zip application format is therefore:" msgstr "" -#: ../../library/zipapp.rst:331 msgid "" "An optional shebang line, containing the characters ``b'#!'`` followed by an " "interpreter name, and then a newline (``b'\\n'``) character. The " @@ -486,7 +413,6 @@ msgid "" "POSIX." msgstr "" -#: ../../library/zipapp.rst:336 msgid "" "Standard zipfile data, as generated by the :mod:`zipfile` module. The " "zipfile content *must* include a file called ``__main__.py`` (which must be " @@ -494,19 +420,16 @@ msgid "" "zipfile data can be compressed or uncompressed." msgstr "" -#: ../../library/zipapp.rst:341 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" -#: ../../library/zipapp.rst:344 msgid "" "There is no requirement that the tools in this module are used to create " "application archives - the module is a convenience, but archives in the " "above format created by any means are acceptable to Python." msgstr "" -#: ../../library/zipapp.rst:11 msgid "Executable Zip Files" msgstr "" diff --git a/library/zipfile.po b/library/zipfile.po index cc3009c..83921bb 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/zipfile.rst:2 msgid ":mod:`!zipfile` --- Work with ZIP archives" msgstr "" -#: ../../library/zipfile.rst:10 msgid "**Source code:** :source:`Lib/zipfile/`" msgstr "" -#: ../../library/zipfile.rst:14 msgid "" "The ZIP file format is a common archive and compression standard. This " "module provides tools to create, read, write, append, and list a ZIP file. " @@ -39,7 +35,6 @@ msgid "" "as defined in `PKZIP Application Note`_." msgstr "" -#: ../../library/zipfile.rst:19 msgid "" "This module does not currently handle multi-disk ZIP files. It can handle " "ZIP files that use the ZIP64 extensions (that is ZIP files that are more " @@ -48,43 +43,35 @@ msgid "" "extremely slow as it is implemented in native Python rather than C." msgstr "" -#: ../../library/zipfile.rst:26 msgid "The module defines the following items:" msgstr "" -#: ../../library/zipfile.rst:30 msgid "The error raised for bad ZIP files." msgstr "" -#: ../../library/zipfile.rst:37 msgid "" "Alias of :exc:`BadZipFile`, for compatibility with older Python versions." msgstr "" -#: ../../library/zipfile.rst:44 msgid "" "The error raised when a ZIP file would require ZIP64 functionality but that " "has not been enabled." msgstr "" -#: ../../library/zipfile.rst:51 msgid "" "The class for reading and writing ZIP files. See section :ref:`zipfile-" "objects` for constructor details." msgstr "" -#: ../../library/zipfile.rst:58 msgid "" -"Class that implements a subset of the interface provided " -"by :class:`pathlib.Path`, including the " -"full :class:`importlib.resources.abc.Traversable` interface." +"Class that implements a subset of the interface provided by :class:`pathlib." +"Path`, including the full :class:`importlib.resources.abc.Traversable` " +"interface." msgstr "" -#: ../../library/zipfile.rst:68 msgid "Class for creating ZIP archives containing Python libraries." msgstr "" -#: ../../library/zipfile.rst:73 msgid "" "Class used to represent information about a member of an archive. Instances " "of this class are returned by the :meth:`.getinfo` and :meth:`.infolist` " @@ -92,76 +79,64 @@ msgid "" "module will not need to create these, but only use those created by this " "module. *filename* should be the full name of the archive member, and " "*date_time* should be a tuple containing six fields which describe the time " -"of the last modification to the file; the fields are described in " -"section :ref:`zipinfo-objects`." +"of the last modification to the file; the fields are described in section :" +"ref:`zipinfo-objects`." msgstr "" -#: ../../library/zipfile.rst:82 msgid "" "A public :attr:`!compress_level` attribute has been added to expose the " "formerly protected :attr:`!_compresslevel`. The older protected name " "continues to work as a property for backwards compatibility." msgstr "" -#: ../../library/zipfile.rst:90 msgid "" "Resolve the date_time, compression attributes, and external attributes to " "suitable defaults as used by :meth:`ZipFile.writestr`." msgstr "" -#: ../../library/zipfile.rst:93 msgid "Returns self for chaining." msgstr "" -#: ../../library/zipfile.rst:100 msgid "" "Returns ``True`` if *filename* is a valid ZIP file based on its magic " "number, otherwise returns ``False``. *filename* may be a file or file-like " "object too." msgstr "" -#: ../../library/zipfile.rst:103 msgid "Support for file and file-like objects." msgstr "" -#: ../../library/zipfile.rst:109 msgid "The numeric constant for an uncompressed archive member." msgstr "" -#: ../../library/zipfile.rst:114 msgid "" "The numeric constant for the usual ZIP compression method. This requires " "the :mod:`zlib` module." msgstr "" -#: ../../library/zipfile.rst:120 msgid "" -"The numeric constant for the BZIP2 compression method. This requires " -"the :mod:`bz2` module." +"The numeric constant for the BZIP2 compression method. This requires the :" +"mod:`bz2` module." msgstr "" -#: ../../library/zipfile.rst:127 msgid "" -"The numeric constant for the LZMA compression method. This requires " -"the :mod:`lzma` module." +"The numeric constant for the LZMA compression method. This requires the :" +"mod:`lzma` module." msgstr "" -#: ../../library/zipfile.rst:134 msgid "" -"The numeric constant for Zstandard compression. This requires " -"the :mod:`compression.zstd` module." +"The numeric constant for Zstandard compression. This requires the :mod:" +"`compression.zstd` module." msgstr "" -#: ../../library/zipfile.rst:139 msgid "" "In APPNOTE 6.3.7, the method ID ``20`` was assigned to Zstandard " "compression. This was changed in APPNOTE 6.3.8 to method ID ``93`` to avoid " -"conflicts, with method ID ``20`` being deprecated. For compatibility, " -"the :mod:`!zipfile` module reads both method IDs but will only write data " -"with method ID ``93``." +"conflicts, with method ID ``20`` being deprecated. For compatibility, the :" +"mod:`!zipfile` module reads both method IDs but will only write data with " +"method ID ``93``." msgstr "" -#: ../../library/zipfile.rst:149 msgid "" "The ZIP file format specification has included support for bzip2 compression " "since 2001, for LZMA compression since 2006, and Zstandard compression since " @@ -170,37 +145,30 @@ msgid "" "altogether, or fail to extract individual files." msgstr "" -#: ../../library/zipfile.rst:157 msgid "`PKZIP Application Note`_" msgstr "" -#: ../../library/zipfile.rst:158 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" -#: ../../library/zipfile.rst:161 msgid "`Info-ZIP Home Page `_" msgstr "" -#: ../../library/zipfile.rst:162 msgid "" "Information about the Info-ZIP project's ZIP archive programs and " "development libraries." msgstr "" -#: ../../library/zipfile.rst:169 msgid "ZipFile Objects" msgstr "" -#: ../../library/zipfile.rst:176 msgid "" "Open a ZIP file, where *file* can be a path to a file (a string), a file-" "like object or a :term:`path-like object`." msgstr "" -#: ../../library/zipfile.rst:179 msgid "" "The *mode* parameter should be ``'r'`` to read an existing file, ``'w'`` to " "truncate and write a new file, ``'a'`` to append to an existing file, or " @@ -214,20 +182,17 @@ msgid "" "``'r'`` or ``'a'``, the file should be seekable." msgstr "" -#: ../../library/zipfile.rst:191 msgid "" "*compression* is the ZIP compression method to use when writing the archive, " -"and should " -"be :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, " -"or :const:`ZIP_ZSTANDARD`; unrecognized values will " -"cause :exc:`NotImplementedError` to be raised. " -"If :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, " -"or :const:`ZIP_ZSTANDARD` is specified but the corresponding module " -"(:mod:`zlib`, :mod:`bz2`, :mod:`lzma`, or :mod:`compression.zstd`) is not " -"available, :exc:`RuntimeError` is raised. The default is :const:`ZIP_STORED`." +"and should be :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:" +"`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:`ZIP_ZSTANDARD`; unrecognized " +"values will cause :exc:`NotImplementedError` to be raised. If :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:" +"`ZIP_ZSTANDARD` is specified but the corresponding module (:mod:`zlib`, :mod:" +"`bz2`, :mod:`lzma`, or :mod:`compression.zstd`) is not available, :exc:" +"`RuntimeError` is raised. The default is :const:`ZIP_STORED`." msgstr "" -#: ../../library/zipfile.rst:200 msgid "" "If *allowZip64* is ``True`` (the default) zipfile will create ZIP files that " "use the ZIP64 extensions when the zipfile is larger than 4 GiB. If it is " @@ -235,22 +200,19 @@ msgid "" "require ZIP64 extensions." msgstr "" -#: ../../library/zipfile.rst:205 msgid "" "The *compresslevel* parameter controls the compression level to use when " -"writing files to the archive. When using :const:`ZIP_STORED` " -"or :const:`ZIP_LZMA` it has no effect. When using :const:`ZIP_DEFLATED` " -"integers ``0`` through ``9`` are accepted (see :class:`zlib " -"` for more information). When using :const:`ZIP_BZIP2` " -"integers ``1`` through ``9`` are accepted (see :class:`bz2 ` " -"for more information). When using :const:`ZIP_ZSTANDARD` integers " -"``-131072`` through ``22`` are commonly accepted " -"(see :attr:`CompressionParameter.compression_level " -"` for more on " -"retrieving valid values and their meaning)." +"writing files to the archive. When using :const:`ZIP_STORED` or :const:" +"`ZIP_LZMA` it has no effect. When using :const:`ZIP_DEFLATED` integers ``0`` " +"through ``9`` are accepted (see :class:`zlib ` for more " +"information). When using :const:`ZIP_BZIP2` integers ``1`` through ``9`` are " +"accepted (see :class:`bz2 ` for more information). When using :" +"const:`ZIP_ZSTANDARD` integers ``-131072`` through ``22`` are commonly " +"accepted (see :attr:`CompressionParameter.compression_level ` for more on retrieving valid " +"values and their meaning)." msgstr "" -#: ../../library/zipfile.rst:217 ../../library/zipfile.rst:799 msgid "" "The *strict_timestamps* argument, when set to ``False``, allows to zip files " "older than 1980-01-01 at the cost of setting the timestamp to 1980-01-01. " @@ -258,40 +220,34 @@ msgid "" "also set to the limit." msgstr "" -#: ../../library/zipfile.rst:223 msgid "" "When mode is ``'r'``, *metadata_encoding* may be set to the name of a codec, " "which will be used to decode metadata such as the names of members and ZIP " "comments." msgstr "" -#: ../../library/zipfile.rst:227 msgid "" -"If the file is created with mode ``'w'``, ``'x'`` or ``'a'`` and " -"then :meth:`closed ` without adding any files to the archive, the " -"appropriate ZIP structures for an empty archive will be written to the file." +"If the file is created with mode ``'w'``, ``'x'`` or ``'a'`` and then :meth:" +"`closed ` without adding any files to the archive, the appropriate " +"ZIP structures for an empty archive will be written to the file." msgstr "" -#: ../../library/zipfile.rst:231 msgid "" "ZipFile is also a context manager and therefore supports the :keyword:`with` " "statement. In the example, *myzip* is closed after the :keyword:`!with` " "statement's suite is finished---even if an exception occurs::" msgstr "" -#: ../../library/zipfile.rst:235 msgid "" "with ZipFile('spam.zip', 'w') as myzip:\n" " myzip.write('eggs.txt')" msgstr "" -#: ../../library/zipfile.rst:240 msgid "" "*metadata_encoding* is an instance-wide setting for the ZipFile. It is not " "currently possible to set this on a per-member basis." msgstr "" -#: ../../library/zipfile.rst:243 msgid "" "This attribute is a workaround for legacy implementations which produce " "archives with names in the current locale encoding or code page (mostly on " @@ -301,118 +257,99 @@ msgid "" "is a Python-specific extension." msgstr "" -#: ../../library/zipfile.rst:251 msgid "Added the ability to use :class:`ZipFile` as a context manager." msgstr "" -#: ../../library/zipfile.rst:254 msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." msgstr "" -#: ../../library/zipfile.rst:257 ../../library/zipfile.rst:712 msgid "ZIP64 extensions are enabled by default." msgstr "" -#: ../../library/zipfile.rst:260 msgid "" "Added support for writing to unseekable streams. Added support for the " "``'x'`` mode." msgstr "" -#: ../../library/zipfile.rst:264 msgid "" "Previously, a plain :exc:`RuntimeError` was raised for unrecognized " "compression values." msgstr "" -#: ../../library/zipfile.rst:268 msgid "The *file* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/zipfile.rst:271 msgid "Add the *compresslevel* parameter." msgstr "" -#: ../../library/zipfile.rst:274 msgid "The *strict_timestamps* keyword-only parameter." msgstr "" -#: ../../library/zipfile.rst:277 msgid "" "Added support for specifying member name encoding for reading metadata in " "the zipfile's directory and file headers." msgstr "" -#: ../../library/zipfile.rst:284 msgid "" "Close the archive file. You must call :meth:`close` before exiting your " "program or essential records will not be written." msgstr "" -#: ../../library/zipfile.rst:290 msgid "" "Return a :class:`ZipInfo` object with information about the archive member " "*name*. Calling :meth:`getinfo` for a name not currently contained in the " "archive will raise a :exc:`KeyError`." msgstr "" -#: ../../library/zipfile.rst:297 msgid "" "Return a list containing a :class:`ZipInfo` object for each member of the " "archive. The objects are in the same order as their entries in the actual " "ZIP file on disk if an existing archive was opened." msgstr "" -#: ../../library/zipfile.rst:304 msgid "Return a list of archive members by name." msgstr "" -#: ../../library/zipfile.rst:309 msgid "" "Access a member of the archive as a binary file-like object. *name* can be " "either the name of a file within the archive or a :class:`ZipInfo` object. " "The *mode* parameter, if included, must be ``'r'`` (the default) or " -"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files as " -"a :class:`bytes` object." +"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files as a :" +"class:`bytes` object." msgstr "" -#: ../../library/zipfile.rst:315 msgid "" -":meth:`~ZipFile.open` is also a context manager and therefore supports " -"the :keyword:`with` statement::" +":meth:`~ZipFile.open` is also a context manager and therefore supports the :" +"keyword:`with` statement::" msgstr "" -#: ../../library/zipfile.rst:318 msgid "" "with ZipFile('spam.zip') as myzip:\n" " with myzip.open('eggs.txt') as myfile:\n" " print(myfile.read())" msgstr "" -#: ../../library/zipfile.rst:322 msgid "" "With *mode* ``'r'`` the file-like object (``ZipExtFile``) is read-only and " -"provides the following " -"methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io.IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io.IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`~container.__iter__`, :meth:`~iterator.__next__`. " -"These objects can operate independently of the ZipFile." +"provides the following methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io." +"IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io.IOBase.seek`, :" +"meth:`~io.IOBase.tell`, :meth:`~container.__iter__`, :meth:`~iterator." +"__next__`. These objects can operate independently of the ZipFile." msgstr "" -#: ../../library/zipfile.rst:329 msgid "" -"With ``mode='w'``, a writable file handle is returned, which supports " -"the :meth:`~io.BufferedIOBase.write` method. While a writable file handle " -"is open, attempting to read or write other files in the ZIP file will raise " -"a :exc:`ValueError`." +"With ``mode='w'``, a writable file handle is returned, which supports the :" +"meth:`~io.BufferedIOBase.write` method. While a writable file handle is " +"open, attempting to read or write other files in the ZIP file will raise a :" +"exc:`ValueError`." msgstr "" -#: ../../library/zipfile.rst:334 msgid "" "In both cases the file-like object has also attributes :attr:`!name`, which " "is equivalent to the name of a file within the archive, and :attr:`!mode`, " "which is ``'rb'`` or ``'wb'`` depending on the input mode." msgstr "" -#: ../../library/zipfile.rst:338 msgid "" "When writing a file, if the file size is not known in advance but may exceed " "2 GiB, pass ``force_zip64=True`` to ensure that the header format is capable " @@ -421,39 +358,33 @@ msgid "" "as the *name* parameter." msgstr "" -#: ../../library/zipfile.rst:346 msgid "" "The :meth:`.open`, :meth:`read` and :meth:`extract` methods can take a " "filename or a :class:`ZipInfo` object. You will appreciate this when trying " "to read a ZIP file that contains members with duplicate names." msgstr "" -#: ../../library/zipfile.rst:350 msgid "" "Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " "compressed text files in :term:`universal newlines` mode." msgstr "" -#: ../../library/zipfile.rst:354 msgid "" ":meth:`ZipFile.open` can now be used to write files into the archive with " "the ``mode='w'`` option." msgstr "" -#: ../../library/zipfile.rst:358 msgid "" "Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: ../../library/zipfile.rst:362 msgid "" "Added attributes :attr:`!name` and :attr:`!mode` for the writeable file-like " "object. The value of the :attr:`!mode` attribute for the readable file-like " "object was changed from ``'r'`` to ``'rb'``." msgstr "" -#: ../../library/zipfile.rst:371 msgid "" "Extract a member from the archive to the current working directory; *member* " "must be its full name or a :class:`ZipInfo` object. Its file information is " @@ -462,11 +393,9 @@ msgid "" "*pwd* is the password used for encrypted files as a :class:`bytes` object." msgstr "" -#: ../../library/zipfile.rst:377 msgid "Returns the normalized path created (a directory or new file)." msgstr "" -#: ../../library/zipfile.rst:381 msgid "" "If a member filename is an absolute path, a drive/UNC sharepoint and leading " "(back)slashes will be stripped, e.g.: ``///foo/bar`` becomes ``foo/bar`` on " @@ -477,17 +406,14 @@ msgid "" "(``_``)." msgstr "" -#: ../../library/zipfile.rst:389 msgid "" "Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: ../../library/zipfile.rst:393 ../../library/zipfile.rst:416 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/zipfile.rst:399 msgid "" "Extract all members from the archive to the current working directory. " "*path* specifies a different directory to extract to. *members* is optional " @@ -495,7 +421,6 @@ msgid "" "password used for encrypted files as a :class:`bytes` object." msgstr "" -#: ../../library/zipfile.rst:406 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of *path*, e.g. members that have " @@ -503,54 +428,46 @@ msgid "" "\"``. This module attempts to prevent that. See :meth:`extract` note." msgstr "" -#: ../../library/zipfile.rst:412 msgid "" -"Calling :meth:`extractall` on a closed ZipFile will raise " -"a :exc:`ValueError`. Previously, a :exc:`RuntimeError` was raised." +"Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" +"`ValueError`. Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: ../../library/zipfile.rst:422 msgid "Print a table of contents for the archive to ``sys.stdout``." msgstr "" -#: ../../library/zipfile.rst:427 msgid "" "Set *pwd* (a :class:`bytes` object) as default password to extract encrypted " "files." msgstr "" -#: ../../library/zipfile.rst:432 msgid "" "Return the bytes of the file *name* in the archive. *name* is the name of " "the file in the archive, or a :class:`ZipInfo` object. The archive must be " "open for read or append. *pwd* is the password used for encrypted files as " "a :class:`bytes` object and, if specified, overrides the default password " "set with :meth:`setpassword`. Calling :meth:`read` on a ZipFile that uses a " -"compression method other " -"than :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, " -"or :const:`ZIP_ZSTANDARD` will raise a :exc:`NotImplementedError`. An error " -"will also be raised if the corresponding compression module is not available." +"compression method other than :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :" +"const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:`ZIP_ZSTANDARD` will raise " +"a :exc:`NotImplementedError`. An error will also be raised if the " +"corresponding compression module is not available." msgstr "" -#: ../../library/zipfile.rst:442 msgid "" "Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: ../../library/zipfile.rst:449 msgid "" "Read all the files in the archive and check their CRC's and file headers. " "Return the name of the first bad file, or else return ``None``." msgstr "" -#: ../../library/zipfile.rst:452 msgid "" "Calling :meth:`testzip` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: ../../library/zipfile.rst:460 msgid "" "Write the file named *filename* to the archive, giving it the archive name " "*arcname* (by default, this will be the same as *filename*, but without a " @@ -561,7 +478,6 @@ msgid "" "``'x'`` or ``'a'``." msgstr "" -#: ../../library/zipfile.rst:470 msgid "" "The ZIP file standard historically did not specify a metadata encoding, but " "strongly recommended CP437 (the original IBM PC encoding) for " @@ -571,33 +487,28 @@ msgid "" "in any encoding other than ASCII or UTF-8." msgstr "" -#: ../../library/zipfile.rst:479 msgid "" "Archive names should be relative to the archive root, that is, they should " "not start with a path separator." msgstr "" -#: ../../library/zipfile.rst:484 msgid "" "If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a " "null byte, the name of the file in the archive will be truncated at the null " "byte." msgstr "" -#: ../../library/zipfile.rst:489 msgid "" "A leading slash in the filename may lead to the archive being impossible to " "open in some zip programs on Windows systems." msgstr "" -#: ../../library/zipfile.rst:492 msgid "" "Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" -#: ../../library/zipfile.rst:501 msgid "" "Write a file into the archive. The contents is *data*, which may be either " "a :class:`str` or a :class:`bytes` instance; if it is a :class:`str`, it is " @@ -608,7 +519,6 @@ msgid "" "must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "" -#: ../../library/zipfile.rst:509 msgid "" "If given, *compress_type* overrides the value given for the *compression* " "parameter to the constructor for the new entry, or in the *zinfo_or_arcname* " @@ -616,7 +526,6 @@ msgid "" "override the constructor if given." msgstr "" -#: ../../library/zipfile.rst:516 msgid "" "When passing a :class:`ZipInfo` instance as the *zinfo_or_arcname* " "parameter, the compression method used will be that specified in the " @@ -624,18 +533,15 @@ msgid "" "the :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`." msgstr "" -#: ../../library/zipfile.rst:521 msgid "The *compress_type* argument." msgstr "" -#: ../../library/zipfile.rst:524 msgid "" "Calling :meth:`writestr` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" -#: ../../library/zipfile.rst:531 msgid "" "Create a directory inside the archive. If *zinfo_or_directory* is a string, " "a directory is created inside the archive with the mode that is specified in " @@ -643,26 +549,21 @@ msgid "" "instance then the *mode* argument is ignored." msgstr "" -#: ../../library/zipfile.rst:536 msgid "The archive must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "" -#: ../../library/zipfile.rst:541 msgid "The following data attributes are also available:" msgstr "" -#: ../../library/zipfile.rst:545 msgid "Name of the ZIP file." msgstr "" -#: ../../library/zipfile.rst:549 msgid "" "The level of debug output to use. This may be set from ``0`` (the default, " "no output) to ``3`` (the most output). Debugging information is written to " "``sys.stdout``." msgstr "" -#: ../../library/zipfile.rst:555 msgid "" "The comment associated with the ZIP file as a :class:`bytes` object. If " "assigning a comment to a :class:`ZipFile` instance created with mode " @@ -670,24 +571,20 @@ msgid "" "Comments longer than this will be truncated." msgstr "" -#: ../../library/zipfile.rst:565 msgid "Path Objects" msgstr "" -#: ../../library/zipfile.rst:569 msgid "" -"Construct a Path object from a ``root`` zipfile (which may be " -"a :class:`ZipFile` instance or ``file`` suitable for passing to " -"the :class:`ZipFile` constructor)." +"Construct a Path object from a ``root`` zipfile (which may be a :class:" +"`ZipFile` instance or ``file`` suitable for passing to the :class:`ZipFile` " +"constructor)." msgstr "" -#: ../../library/zipfile.rst:573 msgid "" "``at`` specifies the location of this Path within the zipfile, e.g. 'dir/" "file.txt', 'dir/', or ''. Defaults to the empty string, indicating the root." msgstr "" -#: ../../library/zipfile.rst:578 msgid "" "The :class:`Path` class does not sanitize filenames within the ZIP archive. " "Unlike the :meth:`ZipFile.extract` and :meth:`ZipFile.extractall` methods, " @@ -698,186 +595,152 @@ msgid "" "directory with :func:`os.path.commonpath`." msgstr "" -#: ../../library/zipfile.rst:585 msgid "" "Path objects expose the following features of :mod:`pathlib.Path` objects:" msgstr "" -#: ../../library/zipfile.rst:588 msgid "Path objects are traversable using the ``/`` operator or ``joinpath``." msgstr "" -#: ../../library/zipfile.rst:592 msgid "The final path component." msgstr "" -#: ../../library/zipfile.rst:596 msgid "" "Invoke :meth:`ZipFile.open` on the current path. Allows opening for read or " "write, text or binary through supported modes: 'r', 'w', 'rb', 'wb'. " -"Positional and keyword arguments are passed through " -"to :class:`io.TextIOWrapper` when opened as text and ignored otherwise. " -"``pwd`` is the ``pwd`` parameter to :meth:`ZipFile.open`." +"Positional and keyword arguments are passed through to :class:`io." +"TextIOWrapper` when opened as text and ignored otherwise. ``pwd`` is the " +"``pwd`` parameter to :meth:`ZipFile.open`." msgstr "" -#: ../../library/zipfile.rst:605 msgid "" "Added support for text and binary modes for open. Default mode is now text." msgstr "" -#: ../../library/zipfile.rst:609 ../../library/zipfile.rst:670 msgid "" "The ``encoding`` parameter can be supplied as a positional argument without " "causing a :exc:`TypeError`. As it could in 3.9. Code needing to be " -"compatible with unpatched 3.10 and 3.11 versions must pass " -"all :class:`io.TextIOWrapper` arguments, ``encoding`` included, as keywords." +"compatible with unpatched 3.10 and 3.11 versions must pass all :class:`io." +"TextIOWrapper` arguments, ``encoding`` included, as keywords." msgstr "" -#: ../../library/zipfile.rst:617 msgid "Enumerate the children of the current directory." msgstr "" -#: ../../library/zipfile.rst:621 msgid "Return ``True`` if the current context references a directory." msgstr "" -#: ../../library/zipfile.rst:625 msgid "Return ``True`` if the current context references a file." msgstr "" -#: ../../library/zipfile.rst:629 msgid "Return ``True`` if the current context references a symbolic link." msgstr "" -#: ../../library/zipfile.rst:633 msgid "Previously, ``is_symlink`` would unconditionally return ``False``." msgstr "" -#: ../../library/zipfile.rst:638 msgid "" "Return ``True`` if the current context references a file or directory in the " "zip file." msgstr "" -#: ../../library/zipfile.rst:643 msgid "" "The last dot-separated portion of the final component, if any. This is " "commonly called the file extension." msgstr "" -#: ../../library/zipfile.rst:646 msgid "Added :data:`Path.suffix` property." msgstr "" -#: ../../library/zipfile.rst:651 msgid "The final path component, without its suffix." msgstr "" -#: ../../library/zipfile.rst:653 msgid "Added :data:`Path.stem` property." msgstr "" -#: ../../library/zipfile.rst:658 msgid "A list of the path’s suffixes, commonly called file extensions." msgstr "" -#: ../../library/zipfile.rst:660 msgid "Added :data:`Path.suffixes` property." msgstr "" -#: ../../library/zipfile.rst:665 msgid "" "Read the current file as unicode text. Positional and keyword arguments are " "passed through to :class:`io.TextIOWrapper` (except ``buffer``, which is " "implied by the context)." msgstr "" -#: ../../library/zipfile.rst:678 msgid "Read the current file as bytes." msgstr "" -#: ../../library/zipfile.rst:682 msgid "" "Return a new Path object with each of the *other* arguments joined. The " "following are equivalent::" msgstr "" -#: ../../library/zipfile.rst:685 msgid "" ">>> Path(...).joinpath('child').joinpath('grandchild')\n" ">>> Path(...).joinpath('child', 'grandchild')\n" ">>> Path(...) / 'child' / 'grandchild'" msgstr "" -#: ../../library/zipfile.rst:689 msgid "" "Prior to 3.10, ``joinpath`` was undocumented and accepted exactly one " "parameter." msgstr "" -#: ../../library/zipfile.rst:693 msgid "" "The :pypi:`zipp` project provides backports of the latest path object " -"functionality to older Pythons. Use ``zipp.Path`` in place of " -"``zipfile.Path`` for early access to changes." +"functionality to older Pythons. Use ``zipp.Path`` in place of ``zipfile." +"Path`` for early access to changes." msgstr "" -#: ../../library/zipfile.rst:701 msgid "PyZipFile Objects" msgstr "" -#: ../../library/zipfile.rst:703 msgid "" -"The :class:`PyZipFile` constructor takes the same parameters as " -"the :class:`ZipFile` constructor, and one additional parameter, *optimize*." +"The :class:`PyZipFile` constructor takes the same parameters as the :class:" +"`ZipFile` constructor, and one additional parameter, *optimize*." msgstr "" -#: ../../library/zipfile.rst:709 msgid "Added the *optimize* parameter." msgstr "" -#: ../../library/zipfile.rst:715 msgid "" "Instances have one method in addition to those of :class:`ZipFile` objects:" msgstr "" -#: ../../library/zipfile.rst:719 msgid "" "Search for files :file:`\\*.py` and add the corresponding file to the " "archive." msgstr "" -#: ../../library/zipfile.rst:722 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was not given or ``-1``, " "the corresponding file is a :file:`\\*.pyc` file, compiling if necessary." msgstr "" -#: ../../library/zipfile.rst:725 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was ``0``, ``1`` or ``2``, " "only files with that optimization level (see :func:`compile`) are added to " "the archive, compiling if necessary." msgstr "" -#: ../../library/zipfile.rst:729 msgid "" "If *pathname* is a file, the filename must end with :file:`.py`, and just " "the (corresponding :file:`\\*.pyc`) file is added at the top level (no path " "information). If *pathname* is a file that does not end with :file:`.py`, " "a :exc:`RuntimeError` will be raised. If it is a directory, and the " "directory is not a package directory, then all the files :file:`\\*.pyc` are " -"added at the top level. If the directory is a package directory, then " -"all :file:`\\*.pyc` are added under the package name as a file path, and if " -"any subdirectories are package directories, all of these are added " -"recursively in sorted order." +"added at the top level. If the directory is a package directory, then all :" +"file:`\\*.pyc` are added under the package name as a file path, and if any " +"subdirectories are package directories, all of these are added recursively " +"in sorted order." msgstr "" -#: ../../library/zipfile.rst:739 msgid "*basename* is intended for internal use only." msgstr "" -#: ../../library/zipfile.rst:741 msgid "" "*filterfunc*, if given, must be a function taking a single string argument. " "It will be passed each path (including each individual full file path) " @@ -888,7 +751,6 @@ msgid "" "exclude them::" msgstr "" -#: ../../library/zipfile.rst:749 msgid "" ">>> zf = PyZipFile('myprog.zip')\n" ">>> def notests(s):\n" @@ -898,11 +760,9 @@ msgid "" ">>> zf.writepy('myprog', filterfunc=notests)" msgstr "" -#: ../../library/zipfile.rst:756 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" -#: ../../library/zipfile.rst:759 msgid "" "string.pyc # Top level name\n" "test/__init__.pyc # Package directory\n" @@ -911,303 +771,250 @@ msgid "" "test/bogus/myfile.pyc # Submodule test.bogus.myfile" msgstr "" -#: ../../library/zipfile.rst:765 msgid "Added the *filterfunc* parameter." msgstr "" -#: ../../library/zipfile.rst:768 msgid "The *pathname* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/zipfile.rst:771 msgid "Recursion sorts directory entries." msgstr "" -#: ../../library/zipfile.rst:778 msgid "ZipInfo Objects" msgstr "" -#: ../../library/zipfile.rst:780 msgid "" "Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` " "and :meth:`.infolist` methods of :class:`ZipFile` objects. Each object " "stores information about a single member of the ZIP archive." msgstr "" -#: ../../library/zipfile.rst:784 msgid "" "There is one classmethod to make a :class:`ZipInfo` instance for a " "filesystem file:" msgstr "" -#: ../../library/zipfile.rst:790 msgid "" "Construct a :class:`ZipInfo` instance for a file on the filesystem, in " "preparation for adding it to a zip file." msgstr "" -#: ../../library/zipfile.rst:793 msgid "*filename* should be the path to a file or directory on the filesystem." msgstr "" -#: ../../library/zipfile.rst:795 msgid "" "If *arcname* is specified, it is used as the name within the archive. If " "*arcname* is not specified, the name will be the same as *filename*, but " "with any drive letter and leading path separators removed." msgstr "" -#: ../../library/zipfile.rst:807 msgid "The *filename* parameter accepts a :term:`path-like object`." msgstr "" -#: ../../library/zipfile.rst:810 msgid "Added the *strict_timestamps* keyword-only parameter." msgstr "" -#: ../../library/zipfile.rst:814 msgid "Instances have the following methods and attributes:" msgstr "" -#: ../../library/zipfile.rst:818 msgid "Return ``True`` if this archive member is a directory." msgstr "" -#: ../../library/zipfile.rst:820 msgid "This uses the entry's name: directories should always end with ``/``." msgstr "" -#: ../../library/zipfile.rst:827 msgid "Name of the file in the archive." msgstr "" -#: ../../library/zipfile.rst:832 msgid "" "The time and date of the last modification to the archive member. This is a " -"tuple of six values:" +"tuple of six values representing the \"last [modified] file time\" and " +"\"last [modified] file date\" fields from the ZIP file's central directory." +msgstr "" + +msgid "The tuple contains:" msgstr "" -#: ../../library/zipfile.rst:836 msgid "Index" msgstr "" -#: ../../library/zipfile.rst:836 msgid "Value" msgstr "" -#: ../../library/zipfile.rst:838 msgid "``0``" -msgstr "``0``" +msgstr "" -#: ../../library/zipfile.rst:838 msgid "Year (>= 1980)" msgstr "" -#: ../../library/zipfile.rst:840 msgid "``1``" msgstr "``1``" -#: ../../library/zipfile.rst:840 msgid "Month (one-based)" msgstr "" -#: ../../library/zipfile.rst:842 msgid "``2``" msgstr "``2``" -#: ../../library/zipfile.rst:842 msgid "Day of month (one-based)" msgstr "" -#: ../../library/zipfile.rst:844 msgid "``3``" msgstr "``3``" -#: ../../library/zipfile.rst:844 msgid "Hours (zero-based)" msgstr "" -#: ../../library/zipfile.rst:846 msgid "``4``" msgstr "``4``" -#: ../../library/zipfile.rst:846 msgid "Minutes (zero-based)" msgstr "" -#: ../../library/zipfile.rst:848 msgid "``5``" -msgstr "``5``" +msgstr "" -#: ../../library/zipfile.rst:848 msgid "Seconds (zero-based)" msgstr "" -#: ../../library/zipfile.rst:853 -msgid "The ZIP file format does not support timestamps before 1980." +msgid "" +"The ZIP format supports multiple timestamp fields in different locations " +"(central directory, extra fields for NTFS/UNIX systems, etc.). This " +"attribute specifically returns the timestamp from the central directory. The " +"central directory timestamp format in ZIP files does not support timestamps " +"before 1980. While some extra field formats (such as UNIX timestamps) can " +"represent earlier dates, this attribute only returns the central directory " +"timestamp." +msgstr "" + +msgid "" +"The central directory timestamp is interpreted as representing local time, " +"rather than UTC time, to match the behavior of other zip tools." msgstr "" -#: ../../library/zipfile.rst:858 msgid "Type of compression for the archive member." msgstr "" -#: ../../library/zipfile.rst:863 msgid "Comment for the individual archive member as a :class:`bytes` object." msgstr "" -#: ../../library/zipfile.rst:868 msgid "" "Expansion field data. The `PKZIP Application Note`_ contains some comments " "on the internal structure of the data contained in this :class:`bytes` " "object." msgstr "" -#: ../../library/zipfile.rst:875 msgid "System which created ZIP archive." msgstr "" -#: ../../library/zipfile.rst:880 msgid "PKZIP version which created ZIP archive." msgstr "" -#: ../../library/zipfile.rst:885 msgid "PKZIP version needed to extract archive." msgstr "" -#: ../../library/zipfile.rst:890 msgid "Must be zero." msgstr "" -#: ../../library/zipfile.rst:895 msgid "ZIP flag bits." msgstr "" -#: ../../library/zipfile.rst:900 msgid "Volume number of file header." msgstr "" -#: ../../library/zipfile.rst:905 msgid "Internal attributes." msgstr "" -#: ../../library/zipfile.rst:910 msgid "External file attributes." msgstr "" -#: ../../library/zipfile.rst:915 msgid "Byte offset to the file header." msgstr "" -#: ../../library/zipfile.rst:920 msgid "CRC-32 of the uncompressed file." msgstr "" -#: ../../library/zipfile.rst:925 msgid "Size of the compressed data." msgstr "" -#: ../../library/zipfile.rst:930 msgid "Size of the uncompressed file." msgstr "" -#: ../../library/zipfile.rst:937 msgid "Command-Line Interface" msgstr "" -#: ../../library/zipfile.rst:939 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." msgstr "" -#: ../../library/zipfile.rst:942 msgid "" -"If you want to create a new ZIP archive, specify its name after " -"the :option:`-c` option and then list the filename(s) that should be " -"included:" +"If you want to create a new ZIP archive, specify its name after the :option:" +"`-c` option and then list the filename(s) that should be included:" msgstr "" -#: ../../library/zipfile.rst:945 msgid "$ python -m zipfile -c monty.zip spam.txt eggs.txt" msgstr "" -#: ../../library/zipfile.rst:949 msgid "Passing a directory is also acceptable:" msgstr "" -#: ../../library/zipfile.rst:951 msgid "$ python -m zipfile -c monty.zip life-of-brian_1979/" msgstr "" -#: ../../library/zipfile.rst:955 msgid "" -"If you want to extract a ZIP archive into the specified directory, use " -"the :option:`-e` option:" +"If you want to extract a ZIP archive into the specified directory, use the :" +"option:`-e` option:" msgstr "" -#: ../../library/zipfile.rst:958 msgid "$ python -m zipfile -e monty.zip target-dir/" msgstr "" -#: ../../library/zipfile.rst:962 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" -#: ../../library/zipfile.rst:964 msgid "$ python -m zipfile -l monty.zip" msgstr "" -#: ../../library/zipfile.rst:970 msgid "Command-line options" msgstr "" -#: ../../library/zipfile.rst:975 msgid "List files in a zipfile." msgstr "" -#: ../../library/zipfile.rst:980 msgid "Create zipfile from source files." msgstr "" -#: ../../library/zipfile.rst:985 msgid "Extract zipfile into target directory." msgstr "" -#: ../../library/zipfile.rst:990 msgid "Test whether the zipfile is valid or not." msgstr "" -#: ../../library/zipfile.rst:994 msgid "" -"Specify encoding of member names for :option:`-l`, :option:`-e` " -"and :option:`-t`." +"Specify encoding of member names for :option:`-l`, :option:`-e` and :option:" +"`-t`." msgstr "" -#: ../../library/zipfile.rst:1001 msgid "Decompression pitfalls" msgstr "" -#: ../../library/zipfile.rst:1003 msgid "" "The extraction in zipfile module might fail due to some pitfalls listed " "below." msgstr "" -#: ../../library/zipfile.rst:1006 msgid "From file itself" msgstr "" -#: ../../library/zipfile.rst:1008 msgid "" "Decompression may fail due to incorrect password / CRC checksum / ZIP format " "or unsupported compression method / decryption." msgstr "" -#: ../../library/zipfile.rst:1012 msgid "File System limitations" msgstr "" -#: ../../library/zipfile.rst:1014 msgid "" "Exceeding limitations on different file systems can cause decompression " "failed. Such as allowable characters in the directory entries, length of the " @@ -1215,33 +1022,27 @@ msgid "" "files, etc." msgstr "" -#: ../../library/zipfile.rst:1021 msgid "Resources limitations" msgstr "" -#: ../../library/zipfile.rst:1023 msgid "" "The lack of memory or disk volume would lead to decompression failed. For " "example, decompression bombs (aka `ZIP bomb`_) apply to zipfile library that " "can cause disk volume exhaustion." msgstr "" -#: ../../library/zipfile.rst:1028 msgid "Interruption" msgstr "" -#: ../../library/zipfile.rst:1030 msgid "" "Interruption during the decompression, such as pressing control-C or killing " "the decompression process may result in incomplete decompression of the " "archive." msgstr "" -#: ../../library/zipfile.rst:1034 msgid "Default behaviors of extraction" msgstr "" -#: ../../library/zipfile.rst:1036 msgid "" "Not knowing the default extraction behaviors can cause unexpected " "decompression results. For example, when extracting the same archive twice, " diff --git a/library/zipimport.po b/library/zipimport.po index 43407fc..77ed570 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:49+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,24 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/zipimport.rst:2 msgid ":mod:`!zipimport` --- Import modules from Zip archives" msgstr "" -#: ../../library/zipimport.rst:9 msgid "**Source code:** :source:`Lib/zipimport.py`" msgstr "" -#: ../../library/zipimport.rst:13 msgid "" -"This module adds the ability to import Python modules " -"(:file:`\\*.py`, :file:`\\*.pyc`) and packages from ZIP-format archives. It " -"is usually not needed to use the :mod:`zipimport` module explicitly; it is " -"automatically used by the built-in :keyword:`import` mechanism " -"for :data:`sys.path` items that are paths to ZIP archives." +"This module adds the ability to import Python modules (:file:`\\*.py`, :file:" +"`\\*.pyc`) and packages from ZIP-format archives. It is usually not needed " +"to use the :mod:`zipimport` module explicitly; it is automatically used by " +"the built-in :keyword:`import` mechanism for :data:`sys.path` items that are " +"paths to ZIP archives." msgstr "" -#: ../../library/zipimport.rst:19 msgid "" "Typically, :data:`sys.path` is a list of directory names as strings. This " "module also allows an item of :data:`sys.path` to be a string naming a ZIP " @@ -46,205 +42,173 @@ msgid "" "archive." msgstr "" -#: ../../library/zipimport.rst:26 msgid "" "Any files may be present in the ZIP archive, but importers are only invoked " -"for :file:`.py` and :file:`.pyc` files. ZIP import of dynamic modules " -"(:file:`.pyd`, :file:`.so`) is disallowed. Note that if an archive only " +"for :file:`.py` and :file:`.pyc` files. ZIP import of dynamic modules (:" +"file:`.pyd`, :file:`.so`) is disallowed. Note that if an archive only " "contains :file:`.py` files, Python will not attempt to modify the archive by " "adding the corresponding :file:`.pyc` file, meaning that if a ZIP archive " "doesn't contain :file:`.pyc` files, importing may be rather slow." msgstr "" -#: ../../library/zipimport.rst:33 msgid "ZIP64 is supported" msgstr "" -#: ../../library/zipimport.rst:36 msgid "Previously, ZIP archives with an archive comment were not supported." msgstr "" -#: ../../library/zipimport.rst:41 msgid "" "`PKZIP Application Note `_" msgstr "" -#: ../../library/zipimport.rst:42 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" -#: ../../library/zipimport.rst:45 msgid ":pep:`273` - Import Modules from Zip Archives" msgstr "" -#: ../../library/zipimport.rst:46 msgid "" "Written by James C. Ahlstrom, who also provided an implementation. Python " "2.3 follows the specification in :pep:`273`, but uses an implementation " -"written by Just van Rossum that uses the import hooks described " -"in :pep:`302`." +"written by Just van Rossum that uses the import hooks described in :pep:" +"`302`." msgstr "" -#: ../../library/zipimport.rst:50 msgid ":mod:`importlib` - The implementation of the import machinery" msgstr "" -#: ../../library/zipimport.rst:51 msgid "" "Package providing the relevant protocols for all importers to implement." msgstr "" -#: ../../library/zipimport.rst:55 msgid "This module defines an exception:" msgstr "" -#: ../../library/zipimport.rst:59 msgid "" -"Exception raised by zipimporter objects. It's a subclass " -"of :exc:`ImportError`, so it can be caught as :exc:`ImportError`, too." +"Exception raised by zipimporter objects. It's a subclass of :exc:" +"`ImportError`, so it can be caught as :exc:`ImportError`, too." msgstr "" -#: ../../library/zipimport.rst:66 msgid "zipimporter Objects" msgstr "" -#: ../../library/zipimport.rst:68 msgid ":class:`zipimporter` is the class for importing ZIP files." msgstr "" -#: ../../library/zipimport.rst:72 msgid "" "Create a new zipimporter instance. *archivepath* must be a path to a ZIP " "file, or to a specific path within a ZIP file. For example, an " -"*archivepath* of :file:`foo/bar.zip/lib` will look for modules in " -"the :file:`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided " -"that it exists)." +"*archivepath* of :file:`foo/bar.zip/lib` will look for modules in the :file:" +"`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided that it " +"exists)." msgstr "" -#: ../../library/zipimport.rst:77 msgid "" ":exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid " "ZIP archive." msgstr "" -#: ../../library/zipimport.rst:82 msgid "" "Methods ``find_loader()`` and ``find_module()``, deprecated in 3.10 are now " "removed. Use :meth:`find_spec` instead." msgstr "" -#: ../../library/zipimport.rst:87 msgid "" -"Implementation of :meth:`importlib.abc.Loader.create_module` that " -"returns :const:`None` to explicitly request the default semantics." +"Implementation of :meth:`importlib.abc.Loader.create_module` that returns :" +"const:`None` to explicitly request the default semantics." msgstr "" -#: ../../library/zipimport.rst:95 msgid "Implementation of :meth:`importlib.abc.Loader.exec_module`." msgstr "" -#: ../../library/zipimport.rst:102 msgid "An implementation of :meth:`importlib.abc.PathEntryFinder.find_spec`." msgstr "" -#: ../../library/zipimport.rst:109 msgid "" "Return the code object for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be imported." msgstr "" -#: ../../library/zipimport.rst:115 msgid "" "Return the data associated with *pathname*. Raise :exc:`OSError` if the file " "wasn't found." msgstr "" -#: ../../library/zipimport.rst:118 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" -#: ../../library/zipimport.rst:124 msgid "" "Return the value ``__file__`` would be set to if the specified module was " "imported. Raise :exc:`ZipImportError` if the module couldn't be imported." msgstr "" -#: ../../library/zipimport.rst:133 msgid "" "Return the source code for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be found, return :const:`None` if the archive does " "contain the module, but has no source for it." msgstr "" -#: ../../library/zipimport.rst:141 msgid "" -"Return ``True`` if the module specified by *fullname* is a package. " -"Raise :exc:`ZipImportError` if the module couldn't be found." +"Return ``True`` if the module specified by *fullname* is a package. Raise :" +"exc:`ZipImportError` if the module couldn't be found." msgstr "" -#: ../../library/zipimport.rst:147 msgid "" "Load the module specified by *fullname*. *fullname* must be the fully " "qualified (dotted) module name. Returns the imported module on success, " "raises :exc:`ZipImportError` on failure." msgstr "" -#: ../../library/zipimport.rst:153 msgid "Use :meth:`exec_module` instead." msgstr "" -#: ../../library/zipimport.rst:158 msgid "" "Clear out the internal cache of information about files found within the ZIP " "archive." msgstr "" -#: ../../library/zipimport.rst:166 msgid "" "The file name of the importer's associated ZIP file, without a possible " "subpath." msgstr "" -#: ../../library/zipimport.rst:172 msgid "" "The subpath within the ZIP file where modules are searched. This is the " "empty string for zipimporter objects which point to the root of the ZIP file." msgstr "" -#: ../../library/zipimport.rst:176 msgid "" "The :attr:`archive` and :attr:`prefix` attributes, when combined with a " -"slash, equal the original *archivepath* argument given to " -"the :class:`zipimporter` constructor." +"slash, equal the original *archivepath* argument given to the :class:" +"`zipimporter` constructor." msgstr "" -#: ../../library/zipimport.rst:184 msgid "Examples" msgstr "" -#: ../../library/zipimport.rst:186 msgid "" -"Here is an example that imports a module from a ZIP archive - note that " -"the :mod:`zipimport` module is not explicitly used." +"Here is an example that imports a module from a ZIP archive - note that the :" +"mod:`zipimport` module is not explicitly used." msgstr "" -#: ../../library/zipimport.rst:189 msgid "" -"$ unzip -l example.zip\n" -"Archive: example.zip\n" +"$ unzip -l example_archive.zip\n" +"Archive: example_archive.zip\n" " Length Date Time Name\n" " -------- ---- ---- ----\n" -" 8467 11-26-02 22:30 jwzthreading.py\n" +" 8467 01-01-00 12:30 example.py\n" " -------- -------\n" -" 8467 1 file\n" -"$ ./python\n" -"Python 2.3 (#1, Aug 1 2003, 19:54:32)\n" +" 8467 1 file" +msgstr "" + +msgid "" ">>> import sys\n" -">>> sys.path.insert(0, 'example.zip') # Add .zip file to front of path\n" -">>> import jwzthreading\n" -">>> jwzthreading.__file__\n" -"'example.zip/jwzthreading.py'" +">>> # Add the archive to the front of the module search path\n" +">>> sys.path.insert(0, 'example_archive.zip')\n" +">>> import example\n" +">>> example.__file__\n" +"'example_archive.zip/example.py'" msgstr "" diff --git a/library/zlib.po b/library/zlib.po index 361c378..c488923 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/zlib.rst:2 msgid ":mod:`!zlib` --- Compression compatible with :program:`gzip`" msgstr "" -#: ../../library/zlib.rst:10 msgid "" "For applications that require data compression, the functions in this module " "allow compression and decompression, using the zlib library. The zlib " @@ -32,7 +30,6 @@ msgid "" "zlib_faq.html#faq33>`_, so we recommend using 1.1.4 or later." msgstr "" -#: ../../library/zlib.rst:17 msgid "" "zlib's functions have many options and often need to be used in a particular " "order. This documentation doesn't attempt to cover all of the permutations; " @@ -40,19 +37,15 @@ msgid "" "information." msgstr "" -#: ../../library/zlib.rst:22 msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." msgstr "" -#: ../../library/zlib.rst:24 msgid "The available exception and functions in this module are:" msgstr "" -#: ../../library/zlib.rst:29 msgid "Exception raised on compression and decompression errors." msgstr "" -#: ../../library/zlib.rst:34 msgid "" "Computes an Adler-32 checksum of *data*. (An Adler-32 checksum is almost as " "reliable as a CRC32 but can be computed much more quickly.) The result is " @@ -65,11 +58,9 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: ../../library/zlib.rst:44 ../../library/zlib.rst:136 msgid "The result is always unsigned." msgstr "" -#: ../../library/zlib.rst:49 msgid "" "Compresses the bytes in *data*, returning a bytes object containing " "compressed data. *level* is an integer from ``0`` to ``9`` or ``-1`` " @@ -81,7 +72,6 @@ msgid "" "level 6)." msgstr "" -#: ../../library/zlib.rst:58 msgid "" "The *wbits* argument controls the size of the history buffer (or the " "\"window size\") used when compressing data, and whether a header and " @@ -89,7 +79,6 @@ msgid "" "defaulting to ``15`` (MAX_WBITS):" msgstr "" -#: ../../library/zlib.rst:63 msgid "" "+9 to +15: The base-two logarithm of the window size, which therefore ranges " "between 512 and 32768. Larger values produce better compression at the " @@ -97,40 +86,33 @@ msgid "" "specific header and trailer." msgstr "" -#: ../../library/zlib.rst:68 msgid "" "−9 to −15: Uses the absolute value of *wbits* as the window size logarithm, " "while producing a raw output stream with no header or trailing checksum." msgstr "" -#: ../../library/zlib.rst:72 msgid "" "+25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the window " "size logarithm, while including a basic :program:`gzip` header and trailing " "checksum in the output." msgstr "" -#: ../../library/zlib.rst:76 msgid "Raises the :exc:`error` exception if any error occurs." msgstr "" -#: ../../library/zlib.rst:78 msgid "*level* can now be used as a keyword parameter." msgstr "" -#: ../../library/zlib.rst:81 msgid "" "The *wbits* parameter is now available to set window bits and compression " "type." msgstr "" -#: ../../library/zlib.rst:87 msgid "" "Returns a compression object, to be used for compressing data streams that " "won't fit into memory at once." msgstr "" -#: ../../library/zlib.rst:90 msgid "" "*level* is the compression level -- an integer from ``0`` to ``9`` or " "``-1``. A value of ``1`` (Z_BEST_SPEED) is fastest and produces the least " @@ -141,34 +123,29 @@ msgid "" "level 6)." msgstr "" -#: ../../library/zlib.rst:97 msgid "" "*method* is the compression algorithm. Currently, the only supported value " "is :const:`DEFLATED`." msgstr "" -#: ../../library/zlib.rst:100 msgid "" "The *wbits* parameter controls the size of the history buffer (or the " "\"window size\"), and what header and trailer format will be used. It has " "the same meaning as `described for compress() <#compress-wbits>`__." msgstr "" -#: ../../library/zlib.rst:104 msgid "" "The *memLevel* argument controls the amount of memory used for the internal " "compression state. Valid values range from ``1`` to ``9``. Higher values use " "more memory, but are faster and produce smaller output." msgstr "" -#: ../../library/zlib.rst:108 msgid "" -"*strategy* is used to tune the compression algorithm. Possible values " -"are :const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`, :const:`Z_RLE` " -"(zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2)." +"*strategy* is used to tune the compression algorithm. Possible values are :" +"const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`, :" +"const:`Z_RLE` (zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2)." msgstr "" -#: ../../library/zlib.rst:112 msgid "" "*zdict* is a predefined compression dictionary. This is a sequence of bytes " "(such as a :class:`bytes` object) containing subsequences that are expected " @@ -176,11 +153,9 @@ msgid "" "that are expected to be most common should come at the end of the dictionary." msgstr "" -#: ../../library/zlib.rst:117 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" -#: ../../library/zlib.rst:127 msgid "" "Computes a CRC (Cyclic Redundancy Check) checksum of *data*. The result is " "an unsigned 32-bit integer. If *value* is present, it is used as the " @@ -192,7 +167,6 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: ../../library/zlib.rst:141 msgid "" "Decompresses the bytes in *data*, returning a bytes object containing the " "uncompressed data. The *wbits* parameter depends on the format of *data*, " @@ -201,44 +175,37 @@ msgid "" "error occurs." msgstr "" -#: ../../library/zlib.rst:149 msgid "" "The *wbits* parameter controls the size of the history buffer (or \"window " "size\"), and what header and trailer format is expected. It is similar to " "the parameter for :func:`compressobj`, but accepts more ranges of values:" msgstr "" -#: ../../library/zlib.rst:154 msgid "" "+8 to +15: The base-two logarithm of the window size. The input must " "include a zlib header and trailer." msgstr "" -#: ../../library/zlib.rst:157 msgid "" "0: Automatically determine the window size from the zlib header. Only " "supported since zlib 1.2.3.5." msgstr "" -#: ../../library/zlib.rst:160 msgid "" "−8 to −15: Uses the absolute value of *wbits* as the window size logarithm. " "The input must be a raw stream with no header or trailer." msgstr "" -#: ../../library/zlib.rst:163 msgid "" "+24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm. The input must include a gzip header and trailer." msgstr "" -#: ../../library/zlib.rst:167 msgid "" "+40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm, and automatically accepts either the zlib or gzip format." msgstr "" -#: ../../library/zlib.rst:171 msgid "" "When decompressing a stream, the window size must not be smaller than the " "size originally used to compress the stream; using a too-small value may " @@ -247,7 +214,6 @@ msgid "" "included." msgstr "" -#: ../../library/zlib.rst:177 msgid "" "*bufsize* is the initial size of the buffer used to hold decompressed data. " "If more space is required, the buffer size will be increased as needed, so " @@ -255,46 +221,38 @@ msgid "" "few calls to :c:func:`malloc`." msgstr "" -#: ../../library/zlib.rst:182 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" -#: ../../library/zlib.rst:187 msgid "" "Returns a decompression object, to be used for decompressing data streams " "that won't fit into memory at once." msgstr "" -#: ../../library/zlib.rst:190 msgid "" "The *wbits* parameter controls the size of the history buffer (or the " "\"window size\"), and what header and trailer format is expected. It has " "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" -#: ../../library/zlib.rst:194 msgid "" "The *zdict* parameter specifies a predefined compression dictionary. If " "provided, this must be the same dictionary as was used by the compressor " "that produced the data that is to be decompressed." msgstr "" -#: ../../library/zlib.rst:200 msgid "" "If *zdict* is a mutable object (such as a :class:`bytearray`), you must not " "modify its contents between the call to :func:`decompressobj` and the first " "call to the decompressor's ``decompress()`` method." msgstr "" -#: ../../library/zlib.rst:204 msgid "Added the *zdict* parameter." msgstr "" -#: ../../library/zlib.rst:208 msgid "Compression objects support the following methods:" msgstr "" -#: ../../library/zlib.rst:213 msgid "" "Compress *data*, returning a bytes object containing compressed data for at " "least part of the data in *data*. This data should be concatenated to the " @@ -302,36 +260,32 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" -#: ../../library/zlib.rst:221 msgid "" "All pending input is processed, and a bytes object containing the remaining " -"compressed output is returned. *mode* can be selected from the " -"constants :const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:`Z_FULL_FLUSH`, :const:`Z_BLOCK` " -"(zlib 1.2.3.4), or :const:`Z_FINISH`, defaulting to :const:`Z_FINISH`. " -"Except :const:`Z_FINISH`, all constants allow compressing further " -"bytestrings of data, while :const:`Z_FINISH` finishes the compressed stream " -"and prevents compressing any more data. After calling :meth:`flush` with " -"*mode* set to :const:`Z_FINISH`, the :meth:`compress` method cannot be " -"called again; the only realistic action is to delete the object." +"compressed output is returned. *mode* can be selected from the constants :" +"const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" +"`Z_FULL_FLUSH`, :const:`Z_BLOCK` (zlib 1.2.3.4), or :const:`Z_FINISH`, " +"defaulting to :const:`Z_FINISH`. Except :const:`Z_FINISH`, all constants " +"allow compressing further bytestrings of data, while :const:`Z_FINISH` " +"finishes the compressed stream and prevents compressing any more data. " +"After calling :meth:`flush` with *mode* set to :const:`Z_FINISH`, the :meth:" +"`compress` method cannot be called again; the only realistic action is to " +"delete the object." msgstr "" -#: ../../library/zlib.rst:234 msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -#: ../../library/zlib.rst:238 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to compression " "objects." msgstr "" -#: ../../library/zlib.rst:243 msgid "Decompression objects support the following methods and attributes:" msgstr "" -#: ../../library/zlib.rst:248 msgid "" "A bytes object which contains any bytes past the end of the compressed data. " "That is, this remains ``b\"\"`` until the last byte that contains " @@ -339,145 +293,120 @@ msgid "" "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" -#: ../../library/zlib.rst:256 msgid "" -"A bytes object that contains any data that was not consumed by the " -"last :meth:`decompress` call because it exceeded the limit for the " -"uncompressed data buffer. This data has not yet been seen by the zlib " -"machinery, so you must feed it (possibly with further data concatenated to " -"it) back to a subsequent :meth:`decompress` method call in order to get " -"correct output." +"A bytes object that contains any data that was not consumed by the last :" +"meth:`decompress` call because it exceeded the limit for the uncompressed " +"data buffer. This data has not yet been seen by the zlib machinery, so you " +"must feed it (possibly with further data concatenated to it) back to a " +"subsequent :meth:`decompress` method call in order to get correct output." msgstr "" -#: ../../library/zlib.rst:265 msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." msgstr "" -#: ../../library/zlib.rst:268 msgid "" "This makes it possible to distinguish between a properly formed compressed " "stream, and an incomplete or truncated one." msgstr "" -#: ../../library/zlib.rst:276 msgid "" "Decompress *data*, returning a bytes object containing the uncompressed data " "corresponding to at least part of the data in *string*. This data should be " -"concatenated to the output produced by any preceding calls to " -"the :meth:`decompress` method. Some of the input data may be preserved in " -"internal buffers for later processing." +"concatenated to the output produced by any preceding calls to the :meth:" +"`decompress` method. Some of the input data may be preserved in internal " +"buffers for later processing." msgstr "" -#: ../../library/zlib.rst:282 msgid "" "If the optional parameter *max_length* is non-zero then the return value " "will be no longer than *max_length*. This may mean that not all of the " "compressed input can be processed; and unconsumed data will be stored in the " "attribute :attr:`unconsumed_tail`. This bytestring must be passed to a " "subsequent call to :meth:`decompress` if decompression is to continue. If " -"*max_length* is zero then the whole input is decompressed, " -"and :attr:`unconsumed_tail` is empty." +"*max_length* is zero then the whole input is decompressed, and :attr:" +"`unconsumed_tail` is empty." msgstr "" -#: ../../library/zlib.rst:289 msgid "*max_length* can be used as a keyword argument." msgstr "" -#: ../../library/zlib.rst:295 msgid "" "All pending input is processed, and a bytes object containing the remaining " -"uncompressed output is returned. After calling :meth:`flush`, " -"the :meth:`decompress` method cannot be called again; the only realistic " -"action is to delete the object." +"uncompressed output is returned. After calling :meth:`flush`, the :meth:" +"`decompress` method cannot be called again; the only realistic action is to " +"delete the object." msgstr "" -#: ../../library/zlib.rst:300 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" -#: ../../library/zlib.rst:305 msgid "" "Returns a copy of the decompression object. This can be used to save the " "state of the decompressor midway through the data stream in order to speed " "up random seeks into the stream at a future point." msgstr "" -#: ../../library/zlib.rst:310 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to decompression " "objects." msgstr "" -#: ../../library/zlib.rst:315 msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" msgstr "" -#: ../../library/zlib.rst:321 msgid "" "The version string of the zlib library that was used for building the " "module. This may be different from the zlib library actually used at " "runtime, which is available as :const:`ZLIB_RUNTIME_VERSION`." msgstr "" -#: ../../library/zlib.rst:328 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" -#: ../../library/zlib.rst:335 msgid "" "The version string of the zlib-ng library that was used for building the " -"module if zlib-ng was used. When present, the :data:`ZLIB_VERSION` " -"and :data:`ZLIB_RUNTIME_VERSION` constants reflect the version of the zlib " -"API provided by zlib-ng." +"module if zlib-ng was used. When present, the :data:`ZLIB_VERSION` and :data:" +"`ZLIB_RUNTIME_VERSION` constants reflect the version of the zlib API " +"provided by zlib-ng." msgstr "" -#: ../../library/zlib.rst:340 msgid "" "If zlib-ng was not used to build the module, this constant will be absent." msgstr "" -#: ../../library/zlib.rst:347 msgid "Module :mod:`gzip`" msgstr "" -#: ../../library/zlib.rst:348 msgid "Reading and writing :program:`gzip`\\ -format files." msgstr "" -#: ../../library/zlib.rst:350 msgid "http://www.zlib.net" msgstr "" -#: ../../library/zlib.rst:351 msgid "The zlib library home page." msgstr "" -#: ../../library/zlib.rst:353 msgid "http://www.zlib.net/manual.html" msgstr "" -#: ../../library/zlib.rst:354 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" -#: ../../library/zlib.rst:357 msgid "" "In case gzip (de)compression is a bottleneck, the `python-isal`_ package " "speeds up (de)compression with a mostly compatible API." msgstr "" -#: ../../library/zlib.rst:123 msgid "Cyclic Redundancy Check" msgstr "" -#: ../../library/zlib.rst:123 msgid "checksum" msgstr "" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 55a3209..853f6f1 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../library/zoneinfo.rst:2 msgid ":mod:`!zoneinfo` --- IANA time zone support" msgstr "" -#: ../../library/zoneinfo.rst:12 msgid "**Source code:** :source:`Lib/zoneinfo`" msgstr "" -#: ../../library/zoneinfo.rst:16 msgid "" "The :mod:`zoneinfo` module provides a concrete time zone implementation to " "support the IANA time zone database as originally specified in :pep:`615`. " @@ -35,50 +32,41 @@ msgid "" "using the first-party :pypi:`tzdata` package available on PyPI." msgstr "" -#: ../../library/zoneinfo.rst:24 msgid "Module: :mod:`datetime`" msgstr "" -#: ../../library/zoneinfo.rst:25 msgid "" "Provides the :class:`~datetime.time` and :class:`~datetime.datetime` types " "with which the :class:`ZoneInfo` class is designed to be used." msgstr "" -#: ../../library/zoneinfo.rst:28 msgid "Package :pypi:`tzdata`" msgstr "" -#: ../../library/zoneinfo.rst:29 msgid "" "First-party package maintained by the CPython core developers to supply time " "zone data via PyPI." msgstr "" -#: ../../includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" -#: ../../includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly. See :ref:`wasm-" "availability` for more information." msgstr "" -#: ../../library/zoneinfo.rst:35 msgid "Using ``ZoneInfo``" msgstr "" -#: ../../library/zoneinfo.rst:37 msgid "" -":class:`ZoneInfo` is a concrete implementation of " -"the :class:`datetime.tzinfo` abstract base class, and is intended to be " -"attached to ``tzinfo``, either via the constructor, " -"the :meth:`datetime.replace ` method " -"or :meth:`datetime.astimezone `::" +":class:`ZoneInfo` is a concrete implementation of the :class:`datetime." +"tzinfo` abstract base class, and is intended to be attached to ``tzinfo``, " +"either via the constructor, the :meth:`datetime.replace ` method or :meth:`datetime.astimezone `::" msgstr "" -#: ../../library/zoneinfo.rst:42 msgid "" ">>> from zoneinfo import ZoneInfo\n" ">>> from datetime import datetime, timedelta\n" @@ -92,13 +80,11 @@ msgid "" "'PDT'" msgstr "" -#: ../../library/zoneinfo.rst:52 msgid "" "Datetimes constructed in this way are compatible with datetime arithmetic " "and handle daylight saving time transitions with no further intervention::" msgstr "" -#: ../../library/zoneinfo.rst:55 msgid "" ">>> dt_add = dt + timedelta(days=1)\n" "\n" @@ -109,7 +95,6 @@ msgid "" "'PST'" msgstr "" -#: ../../library/zoneinfo.rst:63 msgid "" "These time zones also support the :attr:`~datetime.datetime.fold` attribute " "introduced in :pep:`495`. During offset transitions which induce ambiguous " @@ -118,7 +103,6 @@ msgid "" "*after* the transition is used when ``fold=1``, for example::" msgstr "" -#: ../../library/zoneinfo.rst:69 msgid "" ">>> dt = datetime(2020, 11, 1, 1, tzinfo=ZoneInfo(\"America/Los_Angeles\"))\n" ">>> print(dt)\n" @@ -128,13 +112,11 @@ msgid "" "2020-11-01 01:00:00-08:00" msgstr "" -#: ../../library/zoneinfo.rst:76 msgid "" "When converting from another time zone, the fold will be set to the correct " "value::" msgstr "" -#: ../../library/zoneinfo.rst:79 msgid "" ">>> from datetime import timezone\n" ">>> LOS_ANGELES = ZoneInfo(\"America/Los_Angeles\")\n" @@ -149,11 +131,9 @@ msgid "" "2020-11-01 01:00:00-08:00" msgstr "" -#: ../../library/zoneinfo.rst:92 msgid "Data sources" msgstr "" -#: ../../library/zoneinfo.rst:94 msgid "" "The ``zoneinfo`` module does not directly provide time zone data, and " "instead pulls time zone information from the system time zone database or " @@ -165,11 +145,9 @@ msgid "" "raise :exc:`ZoneInfoNotFoundError`." msgstr "" -#: ../../library/zoneinfo.rst:106 msgid "Configuring the data sources" msgstr "" -#: ../../library/zoneinfo.rst:108 msgid "" "When ``ZoneInfo(key)`` is called, the constructor first searches the " "directories specified in :data:`TZPATH` for a file matching ``key``, and on " @@ -177,29 +155,24 @@ msgid "" "configured in three ways:" msgstr "" -#: ../../library/zoneinfo.rst:113 msgid "" "The default :data:`TZPATH` when not otherwise specified can be configured " "at :ref:`compile time `." msgstr "" -#: ../../library/zoneinfo.rst:115 msgid "" ":data:`TZPATH` can be configured using :ref:`an environment variable " "`." msgstr "" -#: ../../library/zoneinfo.rst:117 msgid "" "At :ref:`runtime `, the search path can be " "manipulated using the :func:`reset_tzpath` function." msgstr "" -#: ../../library/zoneinfo.rst:123 msgid "Compile-time configuration" msgstr "" -#: ../../library/zoneinfo.rst:125 msgid "" "The default :data:`TZPATH` includes several common deployment locations for " "the time zone database (except on Windows, where there are no \"well-known\" " @@ -207,29 +180,25 @@ msgid "" "those building Python from source who know where their system time zone data " "is deployed may change the default time zone path by specifying the compile-" "time option ``TZPATH`` (or, more likely, the :option:`configure flag --with-" -"tzpath <--with-tzpath>`), which should be a string delimited " -"by :data:`os.pathsep`." +"tzpath <--with-tzpath>`), which should be a string delimited by :data:`os." +"pathsep`." msgstr "" -#: ../../library/zoneinfo.rst:134 msgid "" "On all platforms, the configured value is available as the ``TZPATH`` key " "in :func:`sysconfig.get_config_var`." msgstr "" -#: ../../library/zoneinfo.rst:140 msgid "Environment configuration" msgstr "" -#: ../../library/zoneinfo.rst:142 msgid "" -"When initializing :data:`TZPATH` (either at import time or " -"whenever :func:`reset_tzpath` is called with no arguments), the ``zoneinfo`` " -"module will use the environment variable ``PYTHONTZPATH``, if it exists, to " -"set the search path." +"When initializing :data:`TZPATH` (either at import time or whenever :func:" +"`reset_tzpath` is called with no arguments), the ``zoneinfo`` module will " +"use the environment variable ``PYTHONTZPATH``, if it exists, to set the " +"search path." msgstr "" -#: ../../library/zoneinfo.rst:149 msgid "" "This is an :data:`os.pathsep`-separated string containing the time zone " "search path to use. It must consist of only absolute rather than relative " @@ -240,30 +209,25 @@ msgid "" "raise an exception." msgstr "" -#: ../../library/zoneinfo.rst:157 msgid "" "To set the system to ignore the system data and use the tzdata package " "instead, set ``PYTHONTZPATH=\"\"``." msgstr "" -#: ../../library/zoneinfo.rst:163 msgid "Runtime configuration" msgstr "" -#: ../../library/zoneinfo.rst:165 msgid "" -"The TZ search path can also be configured at runtime using " -"the :func:`reset_tzpath` function. This is generally not an advisable " -"operation, though it is reasonable to use it in test functions that require " -"the use of a specific time zone path (or require disabling access to the " -"system time zones)." +"The TZ search path can also be configured at runtime using the :func:" +"`reset_tzpath` function. This is generally not an advisable operation, " +"though it is reasonable to use it in test functions that require the use of " +"a specific time zone path (or require disabling access to the system time " +"zones)." msgstr "" -#: ../../library/zoneinfo.rst:172 msgid "The ``ZoneInfo`` class" msgstr "" -#: ../../library/zoneinfo.rst:176 msgid "" "A concrete :class:`datetime.tzinfo` subclass that represents an IANA time " "zone specified by the string ``key``. Calls to the primary constructor will " @@ -272,49 +236,41 @@ msgid "" "``key``, the following assertion will always be true:" msgstr "" -#: ../../library/zoneinfo.rst:182 msgid "" "a = ZoneInfo(key)\n" "b = ZoneInfo(key)\n" "assert a is b" msgstr "" -#: ../../library/zoneinfo.rst:188 msgid "" "``key`` must be in the form of a relative, normalized POSIX path, with no up-" "level references. The constructor will raise :exc:`ValueError` if a non-" "conforming key is passed." msgstr "" -#: ../../library/zoneinfo.rst:192 msgid "" -"If no file matching ``key`` is found, the constructor will " -"raise :exc:`ZoneInfoNotFoundError`." +"If no file matching ``key`` is found, the constructor will raise :exc:" +"`ZoneInfoNotFoundError`." msgstr "" -#: ../../library/zoneinfo.rst:196 msgid "The ``ZoneInfo`` class has two alternate constructors:" msgstr "" -#: ../../library/zoneinfo.rst:200 msgid "" -"Constructs a ``ZoneInfo`` object from a file-like object returning bytes " -"(e.g. a file opened in binary mode or an :class:`io.BytesIO` object). Unlike " +"Constructs a ``ZoneInfo`` object from a file-like object returning bytes (e." +"g. a file opened in binary mode or an :class:`io.BytesIO` object). Unlike " "the primary constructor, this always constructs a new object." msgstr "" -#: ../../library/zoneinfo.rst:204 msgid "" -"The ``key`` parameter sets the name of the zone for the purposes " -"of :py:meth:`~object.__str__` and :py:meth:`~object.__repr__`." +"The ``key`` parameter sets the name of the zone for the purposes of :py:meth:" +"`~object.__str__` and :py:meth:`~object.__repr__`." msgstr "" -#: ../../library/zoneinfo.rst:207 msgid "" "Objects created via this constructor cannot be pickled (see `pickling`_)." msgstr "" -#: ../../library/zoneinfo.rst:211 msgid "" "An alternate constructor that bypasses the constructor's cache. It is " "identical to the primary constructor, but returns a new object on each call. " @@ -323,48 +279,40 @@ msgid "" "strategy." msgstr "" -#: ../../library/zoneinfo.rst:217 msgid "" "Objects created via this constructor will also bypass the cache of a " "deserializing process when unpickled." msgstr "" -#: ../../library/zoneinfo.rst:224 msgid "" "Using this constructor may change the semantics of your datetimes in " "surprising ways, only use it if you know that you need to." msgstr "" -#: ../../library/zoneinfo.rst:227 msgid "The following class methods are also available:" msgstr "" -#: ../../library/zoneinfo.rst:231 msgid "" "A method for invalidating the cache on the ``ZoneInfo`` class. If no " "arguments are passed, all caches are invalidated and the next call to the " "primary constructor for each key will return a new instance." msgstr "" -#: ../../library/zoneinfo.rst:235 msgid "" "If an iterable of key names is passed to the ``only_keys`` parameter, only " "the specified keys will be removed from the cache. Keys passed to " "``only_keys`` but not found in the cache are ignored." msgstr "" -#: ../../library/zoneinfo.rst:243 msgid "" "Invoking this function may change the semantics of datetimes using " "``ZoneInfo`` in surprising ways; this modifies module state and thus may " "have wide-ranging effects. Only use it if you know that you need to." msgstr "" -#: ../../library/zoneinfo.rst:248 msgid "The class has one attribute:" msgstr "" -#: ../../library/zoneinfo.rst:252 msgid "" "This is a read-only :term:`attribute` that returns the value of ``key`` " "passed to the constructor, which should be a lookup key in the IANA time " @@ -372,13 +320,11 @@ msgid "" "Tokyo``)." msgstr "" -#: ../../library/zoneinfo.rst:257 msgid "" "For zones constructed from file without specifying a ``key`` parameter, this " "will be set to ``None``." msgstr "" -#: ../../library/zoneinfo.rst:262 msgid "" "Although it is a somewhat common practice to expose these to end users, " "these values are designed to be primary keys for representing the relevant " @@ -387,18 +333,15 @@ msgid "" "strings from these keys." msgstr "" -#: ../../library/zoneinfo.rst:269 msgid "String representations" msgstr "" -#: ../../library/zoneinfo.rst:271 msgid "" -"The string representation returned when calling :py:class:`str` on " -"a :class:`ZoneInfo` object defaults to using the :attr:`ZoneInfo.key` " -"attribute (see the note on usage in the attribute documentation)::" +"The string representation returned when calling :py:class:`str` on a :class:" +"`ZoneInfo` object defaults to using the :attr:`ZoneInfo.key` attribute (see " +"the note on usage in the attribute documentation)::" msgstr "" -#: ../../library/zoneinfo.rst:275 msgid "" ">>> zone = ZoneInfo(\"Pacific/Kwajalein\")\n" ">>> str(zone)\n" @@ -409,7 +352,6 @@ msgid "" "'2020-04-01T03:15:00+12:00 [Pacific/Kwajalein]'" msgstr "" -#: ../../library/zoneinfo.rst:283 msgid "" "For objects constructed from a file without specifying a ``key`` parameter, " "``str`` falls back to calling :func:`repr`. ``ZoneInfo``'s ``repr`` is " @@ -417,22 +359,18 @@ msgid "" "is guaranteed not to be a valid ``ZoneInfo`` key." msgstr "" -#: ../../library/zoneinfo.rst:291 msgid "Pickle serialization" msgstr "" -#: ../../library/zoneinfo.rst:293 msgid "" "Rather than serializing all transition data, ``ZoneInfo`` objects are " "serialized by key, and ``ZoneInfo`` objects constructed from files (even " "those with a value for ``key`` specified) cannot be pickled." msgstr "" -#: ../../library/zoneinfo.rst:297 msgid "The behavior of a ``ZoneInfo`` file depends on how it was constructed:" msgstr "" -#: ../../library/zoneinfo.rst:299 msgid "" "``ZoneInfo(key)``: When constructed with the primary constructor, a " "``ZoneInfo`` object is serialized by key, and when deserialized, the " @@ -443,7 +381,6 @@ msgid "" "following behavior:" msgstr "" -#: ../../library/zoneinfo.rst:307 msgid "" ">>> a = ZoneInfo(\"Europe/Berlin\")\n" ">>> b = pickle.loads(europe_berlin_pkl)\n" @@ -451,7 +388,6 @@ msgid "" "True" msgstr "" -#: ../../library/zoneinfo.rst:314 msgid "" "``ZoneInfo.no_cache(key)``: When constructed from the cache-bypassing " "constructor, the ``ZoneInfo`` object is also serialized by key, but when " @@ -461,7 +397,6 @@ msgid "" "the following behavior:" msgstr "" -#: ../../library/zoneinfo.rst:321 msgid "" ">>> a = ZoneInfo(\"Europe/Berlin\")\n" ">>> b = pickle.loads(europe_berlin_pkl_nc)\n" @@ -469,7 +404,6 @@ msgid "" "False" msgstr "" -#: ../../library/zoneinfo.rst:328 msgid "" "``ZoneInfo.from_file(file_obj, /, key=None)``: When constructed from a file, " "the ``ZoneInfo`` object raises an exception on pickling. If an end user " @@ -479,7 +413,6 @@ msgid "" "serializing that." msgstr "" -#: ../../library/zoneinfo.rst:334 msgid "" "This method of serialization requires that the time zone data for the " "required key be available on both the serializing and deserializing side, " @@ -490,32 +423,27 @@ msgid "" "time zone data." msgstr "" -#: ../../library/zoneinfo.rst:342 msgid "Functions" msgstr "" -#: ../../library/zoneinfo.rst:346 msgid "" "Get a set containing all the valid keys for IANA time zones available " "anywhere on the time zone path. This is recalculated on every call to the " "function." msgstr "" -#: ../../library/zoneinfo.rst:350 msgid "" "This function only includes canonical zone names and does not include " "\"special\" zones such as those under the ``posix/`` and ``right/`` " "directories, or the ``posixrules`` zone." msgstr "" -#: ../../library/zoneinfo.rst:356 msgid "" "This function may open a large number of files, as the best way to determine " "if a file on the time zone path is a valid time zone is to read the \"magic " "string\" at the beginning." msgstr "" -#: ../../library/zoneinfo.rst:362 msgid "" "These values are not designed to be exposed to end-users; for user facing " "elements, applications should use something like CLDR (the Unicode Common " @@ -523,70 +451,59 @@ msgid "" "cautionary note on :attr:`ZoneInfo.key`." msgstr "" -#: ../../library/zoneinfo.rst:369 msgid "" "Sets or resets the time zone search path (:data:`TZPATH`) for the module. " "When called with no arguments, :data:`TZPATH` is set to the default value." msgstr "" -#: ../../library/zoneinfo.rst:372 msgid "" "Calling ``reset_tzpath`` will not invalidate the :class:`ZoneInfo` cache, " "and so calls to the primary ``ZoneInfo`` constructor will only use the new " "``TZPATH`` in the case of a cache miss." msgstr "" -#: ../../library/zoneinfo.rst:376 msgid "" -"The ``to`` parameter must be a :term:`sequence` of strings " -"or :class:`os.PathLike` and not a string, all of which must be absolute " -"paths. :exc:`ValueError` will be raised if something other than an absolute " -"path is passed." +"The ``to`` parameter must be a :term:`sequence` of strings or :class:`os." +"PathLike` and not a string, all of which must be absolute paths. :exc:" +"`ValueError` will be raised if something other than an absolute path is " +"passed." msgstr "" -#: ../../library/zoneinfo.rst:382 msgid "Globals" msgstr "" -#: ../../library/zoneinfo.rst:386 msgid "" "A read-only sequence representing the time zone search path -- when " "constructing a ``ZoneInfo`` from a key, the key is joined to each entry in " "the ``TZPATH``, and the first file found is used." msgstr "" -#: ../../library/zoneinfo.rst:390 msgid "" "``TZPATH`` may contain only absolute paths, never relative paths, regardless " "of how it is configured." msgstr "" -#: ../../library/zoneinfo.rst:393 msgid "" "The object that ``zoneinfo.TZPATH`` points to may change in response to a " -"call to :func:`reset_tzpath`, so it is recommended to use " -"``zoneinfo.TZPATH`` rather than importing ``TZPATH`` from ``zoneinfo`` or " -"assigning a long-lived variable to ``zoneinfo.TZPATH``." +"call to :func:`reset_tzpath`, so it is recommended to use ``zoneinfo." +"TZPATH`` rather than importing ``TZPATH`` from ``zoneinfo`` or assigning a " +"long-lived variable to ``zoneinfo.TZPATH``." msgstr "" -#: ../../library/zoneinfo.rst:398 msgid "" -"For more information on configuring the time zone search path, " -"see :ref:`zoneinfo_data_configuration`." +"For more information on configuring the time zone search path, see :ref:" +"`zoneinfo_data_configuration`." msgstr "" -#: ../../library/zoneinfo.rst:402 msgid "Exceptions and warnings" msgstr "" -#: ../../library/zoneinfo.rst:406 msgid "" "Raised when construction of a :class:`ZoneInfo` object fails because the " -"specified key could not be found on the system. This is a subclass " -"of :exc:`KeyError`." +"specified key could not be found on the system. This is a subclass of :exc:" +"`KeyError`." msgstr "" -#: ../../library/zoneinfo.rst:412 msgid "" "Raised when :envvar:`PYTHONTZPATH` contains an invalid component that will " "be filtered out, such as a relative path." diff --git a/license.po b/license.po index 212a454..e843c31 100644 --- a/license.po +++ b/license.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,15 +18,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../license.rst:7 msgid "History and License" msgstr "" -#: ../../license.rst:11 msgid "History of the software" msgstr "" -#: ../../license.rst:13 msgid "" "Python was created in the early 1990s by Guido van Rossum at Stichting " "Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands as a " @@ -34,14 +31,12 @@ msgid "" "author, although it includes many contributions from others." msgstr "" -#: ../../license.rst:18 msgid "" "In 1995, Guido continued his work on Python at the Corporation for National " "Research Initiatives (CNRI, see https://www.cnri.reston.va.us) in Reston, " "Virginia where he released several versions of the software." msgstr "" -#: ../../license.rst:22 msgid "" "In May 2000, Guido and the Python core development team moved to BeOpen.com " "to form the BeOpen PythonLabs team. In October of the same year, the " @@ -52,154 +47,114 @@ msgid "" "member of the PSF." msgstr "" -#: ../../license.rst:30 msgid "" "All Python releases are Open Source (see https://opensource.org for the Open " "Source Definition). Historically, most, but not all, Python releases have " "also been GPL-compatible; the table below summarizes the various releases." msgstr "" -#: ../../license.rst:35 msgid "Release" msgstr "" -#: ../../license.rst:35 msgid "Derived from" msgstr "" -#: ../../license.rst:35 msgid "Year" msgstr "" -#: ../../license.rst:35 msgid "Owner" msgstr "" -#: ../../license.rst:35 msgid "GPL-compatible? (1)" msgstr "" -#: ../../license.rst:37 msgid "0.9.0 thru 1.2" msgstr "" -#: ../../license.rst:37 msgid "n/a" msgstr "" -#: ../../license.rst:37 msgid "1991-1995" msgstr "" -#: ../../license.rst:37 msgid "CWI" msgstr "" -#: ../../license.rst:37 ../../license.rst:39 ../../license.rst:49 -#: ../../license.rst:51 ../../license.rst:53 ../../license.rst:55 -#: ../../license.rst:57 msgid "yes" msgstr "" -#: ../../license.rst:39 msgid "1.3 thru 1.5.2" msgstr "" -#: ../../license.rst:39 msgid "1.2" msgstr "" -#: ../../license.rst:39 msgid "1995-1999" msgstr "" -#: ../../license.rst:39 ../../license.rst:41 ../../license.rst:45 msgid "CNRI" msgstr "" -#: ../../license.rst:41 ../../license.rst:43 ../../license.rst:45 msgid "1.6" msgstr "" -#: ../../license.rst:41 msgid "1.5.2" msgstr "" -#: ../../license.rst:41 ../../license.rst:43 msgid "2000" msgstr "" -#: ../../license.rst:41 ../../license.rst:43 ../../license.rst:47 msgid "no" msgstr "" -#: ../../license.rst:43 msgid "2.0" msgstr "" -#: ../../license.rst:43 msgid "BeOpen.com" msgstr "" -#: ../../license.rst:45 msgid "1.6.1" msgstr "" -#: ../../license.rst:45 ../../license.rst:47 ../../license.rst:49 -#: ../../license.rst:51 msgid "2001" msgstr "" -#: ../../license.rst:45 msgid "yes (2)" msgstr "" -#: ../../license.rst:47 msgid "2.1" msgstr "" -#: ../../license.rst:47 ../../license.rst:49 msgid "2.0+1.6.1" msgstr "" -#: ../../license.rst:47 ../../license.rst:49 ../../license.rst:51 -#: ../../license.rst:53 ../../license.rst:55 ../../license.rst:57 msgid "PSF" msgstr "" -#: ../../license.rst:49 msgid "2.0.1" msgstr "" -#: ../../license.rst:51 ../../license.rst:53 ../../license.rst:57 msgid "2.1.1" msgstr "" -#: ../../license.rst:51 msgid "2.1+2.0.1" msgstr "" -#: ../../license.rst:53 ../../license.rst:55 msgid "2.1.2" msgstr "" -#: ../../license.rst:53 ../../license.rst:55 msgid "2002" msgstr "" -#: ../../license.rst:55 msgid "2.1.3" msgstr "" -#: ../../license.rst:57 msgid "2.2 and above" msgstr "" -#: ../../license.rst:57 msgid "2001-now" msgstr "" -#: ../../license.rst:62 msgid "" "GPL-compatible doesn't mean that we're distributing Python under the GPL. " "All Python licenses, unlike the GPL, let you distribute a modified version " @@ -208,7 +163,6 @@ msgid "" "GPL; the others don't." msgstr "" -#: ../../license.rst:68 msgid "" "According to Richard Stallman, 1.6.1 is not GPL-compatible, because its " "license has a choice of law clause. According to CNRI, however, Stallman's " @@ -216,41 +170,34 @@ msgid "" "GPL." msgstr "" -#: ../../license.rst:72 msgid "" "Thanks to the many outside volunteers who have worked under Guido's " "direction to make these releases possible." msgstr "" -#: ../../license.rst:77 msgid "Terms and conditions for accessing or otherwise using Python" msgstr "" -#: ../../license.rst:79 msgid "" "Python software and documentation are licensed under the Python Software " "Foundation License Version 2." msgstr "" -#: ../../license.rst:82 msgid "" "Starting with Python 3.8.6, examples, recipes, and other code in the " -"documentation are dual licensed under the PSF License Version 2 and " -"the :ref:`Zero-Clause BSD license `." +"documentation are dual licensed under the PSF License Version 2 and the :ref:" +"`Zero-Clause BSD license `." msgstr "" -#: ../../license.rst:86 msgid "" "Some software incorporated into Python is under different licenses. The " -"licenses are listed with code falling under that license. " -"See :ref:`OtherLicenses` for an incomplete list of these licenses." +"licenses are listed with code falling under that license. See :ref:" +"`OtherLicenses` for an incomplete list of these licenses." msgstr "" -#: ../../license.rst:94 msgid "PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2" msgstr "" -#: ../../license.rst:98 msgid "" "1. This LICENSE AGREEMENT is between the Python Software Foundation " "(\"PSF\"), and\n" @@ -313,15 +260,12 @@ msgid "" " to be bound by the terms and conditions of this License Agreement." msgstr "" -#: ../../license.rst:141 msgid "BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0" msgstr "" -#: ../../license.rst:143 msgid "BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1" msgstr "" -#: ../../license.rst:147 msgid "" "1. This LICENSE AGREEMENT is between BeOpen.com (\"BeOpen\"), having an " "office at\n" @@ -387,11 +331,9 @@ msgid "" " bound by the terms and conditions of this License Agreement." msgstr "" -#: ../../license.rst:188 msgid "CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1" msgstr "" -#: ../../license.rst:192 msgid "" "1. This LICENSE AGREEMENT is between the Corporation for National Research\n" " Initiatives, having an office at 1895 Preston White Drive, Reston, VA " @@ -491,11 +433,9 @@ msgid "" " conditions of this License Agreement." msgstr "" -#: ../../license.rst:253 msgid "CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2" msgstr "" -#: ../../license.rst:257 msgid "" "Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The\n" "Netherlands. All rights reserved.\n" @@ -526,11 +466,9 @@ msgid "" "SOFTWARE." msgstr "" -#: ../../license.rst:280 msgid "ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION" msgstr "" -#: ../../license.rst:284 msgid "" "Permission to use, copy, modify, and/or distribute this software for any\n" "purpose with or without fee is hereby granted.\n" @@ -547,22 +485,18 @@ msgid "" "PERFORMANCE OF THIS SOFTWARE." msgstr "" -#: ../../license.rst:299 msgid "Licenses and Acknowledgements for Incorporated Software" msgstr "" -#: ../../license.rst:301 msgid "" "This section is an incomplete, but growing list of licenses and " "acknowledgements for third-party software incorporated in the Python " "distribution." msgstr "" -#: ../../license.rst:306 msgid "Mersenne Twister" msgstr "" -#: ../../license.rst:308 msgid "" "The :mod:`!_random` C extension underlying the :mod:`random` module includes " "code based on a download from http://www.math.sci.hiroshima-u.ac.jp/~m-mat/" @@ -570,7 +504,6 @@ msgid "" "original code::" msgstr "" -#: ../../license.rst:313 msgid "" "A C-program for MT19937, with initialization improved 2002/1/26.\n" "Coded by Takuji Nishimura and Makoto Matsumoto.\n" @@ -615,18 +548,15 @@ msgid "" "email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)" msgstr "" -#: ../../license.rst:356 msgid "Sockets" msgstr "" -#: ../../license.rst:358 msgid "" -"The :mod:`socket` module uses the functions, :c:func:`!getaddrinfo`, " -"and :c:func:`!getnameinfo`, which are coded in separate source files from " -"the WIDE Project, https://www.wide.ad.jp/. ::" +"The :mod:`socket` module uses the functions, :c:func:`!getaddrinfo`, and :c:" +"func:`!getnameinfo`, which are coded in separate source files from the WIDE " +"Project, https://www.wide.ad.jp/. ::" msgstr "" -#: ../../license.rst:362 msgid "" "Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.\n" "All rights reserved.\n" @@ -656,17 +586,14 @@ msgid "" "SUCH DAMAGE." msgstr "" -#: ../../license.rst:391 msgid "Asynchronous socket services" msgstr "" -#: ../../license.rst:393 msgid "" "The :mod:`!test.support.asynchat` and :mod:`!test.support.asyncore` modules " "contain the following notice::" msgstr "" -#: ../../license.rst:396 msgid "" "Copyright 1996 by Sam Rushing\n" "\n" @@ -690,15 +617,12 @@ msgid "" "CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE." msgstr "" -#: ../../license.rst:419 msgid "Cookie management" msgstr "" -#: ../../license.rst:421 msgid "The :mod:`http.cookies` module contains the following notice::" msgstr "" -#: ../../license.rst:423 msgid "" "Copyright 2000 by Timothy O'Malley \n" "\n" @@ -723,15 +647,12 @@ msgid "" "PERFORMANCE OF THIS SOFTWARE." msgstr "" -#: ../../license.rst:447 msgid "Execution tracing" msgstr "" -#: ../../license.rst:449 msgid "The :mod:`trace` module contains the following notice::" msgstr "" -#: ../../license.rst:451 msgid "" "portions copyright 2001, Autonomous Zones Industries, Inc., all rights...\n" "err... reserved and offered to the public under the terms of the\n" @@ -761,15 +682,12 @@ msgid "" "distribution of the software without specific, written prior permission." msgstr "" -#: ../../license.rst:480 msgid "UUencode and UUdecode functions" msgstr "" -#: ../../license.rst:482 msgid "The ``uu`` codec contains the following notice::" msgstr "" -#: ../../license.rst:484 msgid "" "Copyright 1994 by Lance Ellinghouse\n" "Cathedral City, California Republic, United States of America.\n" @@ -796,15 +714,12 @@ msgid "" "- Arguments more compliant with Python standard" msgstr "" -#: ../../license.rst:510 msgid "XML Remote Procedure Calls" msgstr "" -#: ../../license.rst:512 msgid "The :mod:`xmlrpc.client` module contains the following notice::" msgstr "" -#: ../../license.rst:514 msgid "" " The XML-RPC client interface is\n" "\n" @@ -834,15 +749,12 @@ msgid "" "OF THIS SOFTWARE." msgstr "" -#: ../../license.rst:543 msgid "test_epoll" msgstr "" -#: ../../license.rst:545 msgid "The :mod:`!test.test_epoll` module contains the following notice::" msgstr "" -#: ../../license.rst:547 msgid "" "Copyright (c) 2001-2006 Twisted Matrix Laboratories.\n" "\n" @@ -866,17 +778,14 @@ msgid "" "WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." msgstr "" -#: ../../license.rst:569 msgid "Select kqueue" msgstr "" -#: ../../license.rst:571 msgid "" "The :mod:`select` module contains the following notice for the kqueue " "interface::" msgstr "" -#: ../../license.rst:574 msgid "" "Copyright (c) 2000 Doug White, 2006 James Knight, 2007 Christian Heimes\n" "All rights reserved.\n" @@ -903,17 +812,14 @@ msgid "" "SUCH DAMAGE." msgstr "" -#: ../../license.rst:600 msgid "SipHash24" msgstr "" -#: ../../license.rst:602 msgid "" "The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " "Dan Bernstein's SipHash24 algorithm. It contains the following note::" msgstr "" -#: ../../license.rst:605 msgid "" "\n" "Copyright (c) 2013 Marek Majkowski \n" @@ -941,21 +847,18 @@ msgid "" " Jean-Philippe Aumasson (https://131002.net/siphash/siphash24.c)" msgstr "" -#: ../../license.rst:629 msgid "strtod and dtoa" msgstr "" -#: ../../license.rst:631 msgid "" "The file :file:`Python/dtoa.c`, which supplies C functions dtoa and strtod " "for conversion of C doubles to and from strings, is derived from the file of " -"the same name by David M. Gay, currently available from https://" -"web.archive.org/web/20220517033456/http://www.netlib.org/fp/dtoa.c. The " -"original file, as retrieved on March 16, 2009, contains the following " -"copyright and licensing notice::" +"the same name by David M. Gay, currently available from https://web.archive." +"org/web/20220517033456/http://www.netlib.org/fp/dtoa.c. The original file, " +"as retrieved on March 16, 2009, contains the following copyright and " +"licensing notice::" msgstr "" -#: ../../license.rst:638 msgid "" "/****************************************************************\n" " *\n" @@ -978,11 +881,9 @@ msgid "" " ***************************************************************/" msgstr "" -#: ../../license.rst:659 msgid "OpenSSL" msgstr "" -#: ../../license.rst:661 msgid "" "The modules :mod:`hashlib`, :mod:`posix` and :mod:`ssl` use the OpenSSL " "library for added performance if made available by the operating system. " @@ -992,7 +893,6 @@ msgid "" "Apache License v2 applies::" msgstr "" -#: ../../license.rst:669 msgid "" " Apache License\n" " Version 2.0, January 2004\n" @@ -1172,18 +1072,15 @@ msgid "" "END OF TERMS AND CONDITIONS" msgstr "" -#: ../../license.rst:848 msgid "expat" msgstr "" -#: ../../license.rst:850 msgid "" "The :mod:`pyexpat ` extension is built using an included " "copy of the expat sources unless the build is configured ``--with-system-" "expat``::" msgstr "" -#: ../../license.rst:853 msgid "" "Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd\n" " and Clark Cooper\n" @@ -1208,18 +1105,15 @@ msgid "" "SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." msgstr "" -#: ../../license.rst:877 msgid "libffi" msgstr "" -#: ../../license.rst:879 msgid "" "The :mod:`!_ctypes` C extension underlying the :mod:`ctypes` module is built " "using an included copy of the libffi sources unless the build is configured " "``--with-system-libffi``::" msgstr "" -#: ../../license.rst:883 msgid "" "Copyright (c) 1996-2008 Red Hat, Inc and others.\n" "\n" @@ -1244,18 +1138,15 @@ msgid "" "DEALINGS IN THE SOFTWARE." msgstr "" -#: ../../license.rst:907 msgid "zlib" msgstr "" -#: ../../license.rst:909 msgid "" "The :mod:`zlib` extension is built using an included copy of the zlib " "sources if the zlib version found on the system is too old to be used for " "the build::" msgstr "" -#: ../../license.rst:913 msgid "" "Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler\n" "\n" @@ -1281,17 +1172,14 @@ msgid "" "jloup@gzip.org madler@alumni.caltech.edu" msgstr "" -#: ../../license.rst:938 msgid "cfuhash" msgstr "" -#: ../../license.rst:940 msgid "" "The implementation of the hash table used by the :mod:`tracemalloc` is based " "on the cfuhash project::" msgstr "" -#: ../../license.rst:943 msgid "" "Copyright (c) 2005 Don Owens\n" "All rights reserved.\n" @@ -1328,18 +1216,15 @@ msgid "" "OF THE POSSIBILITY OF SUCH DAMAGE." msgstr "" -#: ../../license.rst:979 msgid "libmpdec" msgstr "" -#: ../../license.rst:981 msgid "" "The :mod:`!_decimal` C extension underlying the :mod:`decimal` module is " "built using an included copy of the libmpdec library unless the build is " "configured ``--with-system-libmpdec``::" msgstr "" -#: ../../license.rst:985 msgid "" "Copyright (c) 2008-2020 Stefan Krah. All rights reserved.\n" "\n" @@ -1367,18 +1252,15 @@ msgid "" "SUCH DAMAGE." msgstr "" -#: ../../license.rst:1012 msgid "W3C C14N test suite" msgstr "" -#: ../../license.rst:1014 msgid "" "The C14N 2.0 test suite in the :mod:`test` package (``Lib/test/xmltestdata/" "c14n-20/``) was retrieved from the W3C website at https://www.w3.org/TR/xml-" "c14n2-testcases/ and is distributed under the 3-clause BSD license::" msgstr "" -#: ../../license.rst:1019 msgid "" "Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang),\n" "All Rights Reserved.\n" @@ -1409,15 +1291,12 @@ msgid "" "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." msgstr "" -#: ../../license.rst:1051 msgid "mimalloc" msgstr "" -#: ../../license.rst:1053 msgid "MIT License::" msgstr "" -#: ../../license.rst:1055 msgid "" "Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen\n" "\n" @@ -1447,18 +1326,15 @@ msgid "" "SOFTWARE." msgstr "" -#: ../../license.rst:1077 msgid "asyncio" msgstr "" -#: ../../license.rst:1079 msgid "" "Parts of the :mod:`asyncio` module are incorporated from `uvloop 0.16 " "`_, which is distributed " "under the MIT license::" msgstr "" -#: ../../license.rst:1083 msgid "" "Copyright (c) 2015-2021 MagicStack Inc. http://magic.io\n" "\n" @@ -1482,19 +1358,16 @@ msgid "" "WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." msgstr "" -#: ../../license.rst:1106 msgid "Global Unbounded Sequences (GUS)" msgstr "" -#: ../../license.rst:1108 msgid "" "The file :file:`Python/qsbr.c` is adapted from FreeBSD's \"Global Unbounded " -"Sequences\" safe memory reclamation scheme in `subr_smr.c `_. The file is " +"Sequences\" safe memory reclamation scheme in `subr_smr.c `_. The file is " "distributed under the 2-Clause BSD License::" msgstr "" -#: ../../license.rst:1113 msgid "" "Copyright (c) 2019,2020 Jeffrey Roberson \n" "\n" @@ -1520,11 +1393,9 @@ msgid "" "THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." msgstr "" -#: ../../license.rst:1138 msgid "Zstandard bindings" msgstr "" -#: ../../license.rst:1140 msgid "" "Zstandard bindings in :file:`Modules/_zstd` and :file:`Lib/compression/zstd` " "are based on code from the `pyzstd library , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/compound_stmts.rst:5 msgid "Compound statements" msgstr "" -#: ../../reference/compound_stmts.rst:9 msgid "" "Compound statements contain (groups of) other statements; they affect or " "control the execution of those other statements in some way. In general, " @@ -34,17 +32,15 @@ msgid "" "whole compound statement may be contained in one line." msgstr "" -#: ../../reference/compound_stmts.rst:14 msgid "" "The :keyword:`if`, :keyword:`while` and :keyword:`for` statements implement " "traditional control flow constructs. :keyword:`try` specifies exception " -"handlers and/or cleanup code for a group of statements, while " -"the :keyword:`with` statement allows the execution of initialization and " -"finalization code around a block of code. Function and class definitions " -"are also syntactically compound statements." +"handlers and/or cleanup code for a group of statements, while the :keyword:" +"`with` statement allows the execution of initialization and finalization " +"code around a block of code. Function and class definitions are also " +"syntactically compound statements." msgstr "" -#: ../../reference/compound_stmts.rst:26 msgid "" "A compound statement consists of one or more 'clauses.' A clause consists " "of a header and a 'suite.' The clause headers of a particular compound " @@ -59,49 +55,40 @@ msgid "" "belong::" msgstr "" -#: ../../reference/compound_stmts.rst:37 msgid "if test1: if test2: print(x)" msgstr "" -#: ../../reference/compound_stmts.rst:39 msgid "" "Also note that the semicolon binds tighter than the colon in this context, " "so that in the following example, either all or none of the :func:`print` " "calls are executed::" msgstr "" -#: ../../reference/compound_stmts.rst:43 msgid "if x < y < z: print(x); print(y); print(z)" msgstr "" -#: ../../reference/compound_stmts.rst:45 msgid "Summarizing:" msgstr "" -#: ../../reference/compound_stmts.rst:69 msgid "" "Note that statements always end in a ``NEWLINE`` possibly followed by a " "``DEDENT``. Also note that optional continuation clauses always begin with " "a keyword that cannot start a statement, thus there are no ambiguities (the " -"'dangling :keyword:`else`' problem is solved in Python by requiring " -"nested :keyword:`if` statements to be indented)." +"'dangling :keyword:`else`' problem is solved in Python by requiring nested :" +"keyword:`if` statements to be indented)." msgstr "" -#: ../../reference/compound_stmts.rst:75 msgid "" "The formatting of the grammar rules in the following sections places each " "clause on a separate line for clarity." msgstr "" -#: ../../reference/compound_stmts.rst:84 msgid "The :keyword:`!if` statement" msgstr "" -#: ../../reference/compound_stmts.rst:92 msgid "The :keyword:`if` statement is used for conditional execution:" msgstr "" -#: ../../reference/compound_stmts.rst:99 msgid "" "It selects exactly one of the suites by evaluating the expressions one by " "one until one is found to be true (see section :ref:`booleans` for the " @@ -111,17 +98,14 @@ msgid "" "is executed." msgstr "" -#: ../../reference/compound_stmts.rst:109 msgid "The :keyword:`!while` statement" msgstr "" -#: ../../reference/compound_stmts.rst:117 msgid "" "The :keyword:`while` statement is used for repeated execution as long as an " "expression is true:" msgstr "" -#: ../../reference/compound_stmts.rst:124 msgid "" "This repeatedly tests the expression and, if it is true, executes the first " "suite; if the expression is false (which may be the first time it is tested) " @@ -129,53 +113,45 @@ msgid "" "loop terminates." msgstr "" -#: ../../reference/compound_stmts.rst:133 msgid "" "A :keyword:`break` statement executed in the first suite terminates the loop " -"without executing the :keyword:`!else` clause's suite. " -"A :keyword:`continue` statement executed in the first suite skips the rest " -"of the suite and goes back to testing the expression." +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and goes back to testing the expression." msgstr "" -#: ../../reference/compound_stmts.rst:142 msgid "The :keyword:`!for` statement" msgstr "" -#: ../../reference/compound_stmts.rst:153 msgid "" "The :keyword:`for` statement is used to iterate over the elements of a " "sequence (such as a string, tuple or list) or other iterable object:" msgstr "" -#: ../../reference/compound_stmts.rst:160 msgid "" "The :token:`~python-grammar:starred_expression_list` expression is evaluated " "once; it should yield an :term:`iterable` object. An :term:`iterator` is " "created for that iterable. The first item provided by the iterator is then " -"assigned to the target list using the standard rules for assignments " -"(see :ref:`assignment`), and the suite is executed. This repeats for each " -"item provided by the iterator. When the iterator is exhausted, the suite in " -"the :keyword:`!else` clause, if present, is executed, and the loop " -"terminates." +"assigned to the target list using the standard rules for assignments (see :" +"ref:`assignment`), and the suite is executed. This repeats for each item " +"provided by the iterator. When the iterator is exhausted, the suite in the :" +"keyword:`!else` clause, if present, is executed, and the loop terminates." msgstr "" -#: ../../reference/compound_stmts.rst:173 msgid "" "A :keyword:`break` statement executed in the first suite terminates the loop " -"without executing the :keyword:`!else` clause's suite. " -"A :keyword:`continue` statement executed in the first suite skips the rest " -"of the suite and continues with the next item, or with the :keyword:`!else` " -"clause if there is no next item." +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and continues with the next item, or with the :keyword:`!else` clause if " +"there is no next item." msgstr "" -#: ../../reference/compound_stmts.rst:179 msgid "" "The for-loop makes assignments to the variables in the target list. This " "overwrites all previous assignments to those variables including those made " "in the suite of the for-loop::" msgstr "" -#: ../../reference/compound_stmts.rst:183 msgid "" "for i in range(10):\n" " print(i)\n" @@ -184,7 +160,6 @@ msgid "" " # index in the range" msgstr "" -#: ../../reference/compound_stmts.rst:193 msgid "" "Names in the target list are not deleted when the loop is finished, but if " "the sequence is empty, they will not have been assigned to at all by the " @@ -193,38 +168,31 @@ msgid "" "yields 0, 1, and then 2." msgstr "" -#: ../../reference/compound_stmts.rst:198 msgid "Starred elements are now allowed in the expression list." msgstr "" -#: ../../reference/compound_stmts.rst:205 msgid "The :keyword:`!try` statement" msgstr "" -#: ../../reference/compound_stmts.rst:215 msgid "" "The :keyword:`!try` statement specifies exception handlers and/or cleanup " "code for a group of statements:" msgstr "" -#: ../../reference/compound_stmts.rst:231 msgid "" -"Additional information on exceptions can be found in " -"section :ref:`exceptions`, and information on using the :keyword:`raise` " -"statement to generate exceptions may be found in section :ref:`raise`." +"Additional information on exceptions can be found in section :ref:" +"`exceptions`, and information on using the :keyword:`raise` statement to " +"generate exceptions may be found in section :ref:`raise`." msgstr "" -#: ../../reference/compound_stmts.rst:235 msgid "" "Support for optionally dropping grouping parentheses when using multiple " "exception types. See :pep:`758`." msgstr "" -#: ../../reference/compound_stmts.rst:241 msgid ":keyword:`!except` clause" msgstr "" -#: ../../reference/compound_stmts.rst:243 msgid "" "The :keyword:`!except` clause(s) specify one or more exception handlers. " "When no exception occurs in the :keyword:`try` clause, no exception handler " @@ -235,7 +203,6 @@ msgid "" "matches any exception." msgstr "" -#: ../../reference/compound_stmts.rst:251 msgid "" "For an :keyword:`!except` clause with an expression, the expression must " "evaluate to an exception type or a tuple of exception types. Parentheses can " @@ -246,14 +213,12 @@ msgid "" "such a class." msgstr "" -#: ../../reference/compound_stmts.rst:258 msgid "" "If no :keyword:`!except` clause matches the exception, the search for an " "exception handler continues in the surrounding code and on the invocation " "stack. [#]_" msgstr "" -#: ../../reference/compound_stmts.rst:262 msgid "" "If the evaluation of an expression in the header of an :keyword:`!except` " "clause raises an exception, the original search for a handler is canceled " @@ -262,36 +227,31 @@ msgid "" "the exception)." msgstr "" -#: ../../reference/compound_stmts.rst:270 msgid "" "When a matching :keyword:`!except` clause is found, the exception is " -"assigned to the target specified after the :keyword:`!as` keyword in " -"that :keyword:`!except` clause, if present, and the :keyword:`!except` " -"clause's suite is executed. All :keyword:`!except` clauses must have an " -"executable block. When the end of this block is reached, execution continues " -"normally after the entire :keyword:`try` statement. (This means that if two " -"nested handlers exist for the same exception, and the exception occurs in " -"the :keyword:`!try` clause of the inner handler, the outer handler will not " +"assigned to the target specified after the :keyword:`!as` keyword in that :" +"keyword:`!except` clause, if present, and the :keyword:`!except` clause's " +"suite is executed. All :keyword:`!except` clauses must have an executable " +"block. When the end of this block is reached, execution continues normally " +"after the entire :keyword:`try` statement. (This means that if two nested " +"handlers exist for the same exception, and the exception occurs in the :" +"keyword:`!try` clause of the inner handler, the outer handler will not " "handle the exception.)" msgstr "" -#: ../../reference/compound_stmts.rst:281 msgid "" "When an exception has been assigned using ``as target``, it is cleared at " "the end of the :keyword:`!except` clause. This is as if ::" msgstr "" -#: ../../reference/compound_stmts.rst:284 msgid "" "except E as N:\n" " foo" msgstr "" -#: ../../reference/compound_stmts.rst:287 msgid "was translated to ::" msgstr "" -#: ../../reference/compound_stmts.rst:289 msgid "" "except E as N:\n" " try:\n" @@ -300,7 +260,6 @@ msgid "" " del N" msgstr "" -#: ../../reference/compound_stmts.rst:295 msgid "" "This means the exception must be assigned to a different name to be able to " "refer to it after the :keyword:`!except` clause. Exceptions are cleared " @@ -309,7 +268,6 @@ msgid "" "garbage collection occurs." msgstr "" -#: ../../reference/compound_stmts.rst:305 msgid "" "Before an :keyword:`!except` clause's suite is executed, the exception is " "stored in the :mod:`sys` module, where it can be accessed from within the " @@ -318,7 +276,6 @@ msgid "" "is reset to its previous value::" msgstr "" -#: ../../reference/compound_stmts.rst:311 msgid "" ">>> print(sys.exception())\n" "None\n" @@ -339,24 +296,21 @@ msgid "" "None" msgstr "" -#: ../../reference/compound_stmts.rst:336 msgid ":keyword:`!except*` clause" msgstr "" -#: ../../reference/compound_stmts.rst:338 msgid "" -"The :keyword:`!except*` clause(s) are used for " -"handling :exc:`ExceptionGroup`\\s. The exception type for matching is " -"interpreted as in the case of :keyword:`except`, but in the case of " -"exception groups we can have partial matches when the type matches some of " -"the exceptions in the group. This means that multiple :keyword:`!except*` " -"clauses can execute, each handling part of the exception group. Each clause " -"executes at most once and handles an exception group of all matching " -"exceptions. Each exception in the group is handled by at most " -"one :keyword:`!except*` clause, the first that matches it. ::" +"The :keyword:`!except*` clause(s) are used for handling :exc:" +"`ExceptionGroup`\\s. The exception type for matching is interpreted as in " +"the case of :keyword:`except`, but in the case of exception groups we can " +"have partial matches when the type matches some of the exceptions in the " +"group. This means that multiple :keyword:`!except*` clauses can execute, " +"each handling part of the exception group. Each clause executes at most once " +"and handles an exception group of all matching exceptions. Each exception " +"in the group is handled by at most one :keyword:`!except*` clause, the first " +"that matches it. ::" msgstr "" -#: ../../reference/compound_stmts.rst:348 msgid "" ">>> try:\n" "... raise ExceptionGroup(\"eg\",\n" @@ -376,7 +330,6 @@ msgid "" " +------------------------------------" msgstr "" -#: ../../reference/compound_stmts.rst:366 msgid "" "Any remaining exceptions that were not handled by any :keyword:`!except*` " "clause are re-raised at the end, along with all exceptions that were raised " @@ -384,14 +337,12 @@ msgid "" "one exception to reraise, they are combined into an exception group." msgstr "" -#: ../../reference/compound_stmts.rst:372 msgid "" "If the raised exception is not an exception group and its type matches one " "of the :keyword:`!except*` clauses, it is caught and wrapped by an exception " "group with an empty message string. ::" msgstr "" -#: ../../reference/compound_stmts.rst:376 msgid "" ">>> try:\n" "... raise BlockingIOError\n" @@ -401,52 +352,45 @@ msgid "" "ExceptionGroup('', (BlockingIOError()))" msgstr "" -#: ../../reference/compound_stmts.rst:383 msgid "" "An :keyword:`!except*` clause must have a matching expression; it cannot be " "``except*:``. Furthermore, this expression cannot contain exception group " "types, because that would have ambiguous semantics." msgstr "" -#: ../../reference/compound_stmts.rst:387 msgid "" "It is not possible to mix :keyword:`except` and :keyword:`!except*` in the " -"same :keyword:`try`. :keyword:`break`, :keyword:`continue` " -"and :keyword:`return` cannot appear in an :keyword:`!except*` clause." +"same :keyword:`try`. The :keyword:`break`, :keyword:`continue`, and :keyword:" +"`return` statements cannot appear in an :keyword:`!except*` clause." msgstr "" -#: ../../reference/compound_stmts.rst:402 msgid ":keyword:`!else` clause" msgstr "" -#: ../../reference/compound_stmts.rst:404 msgid "" "The optional :keyword:`!else` clause is executed if the control flow leaves " -"the :keyword:`try` suite, no exception was raised, and " -"no :keyword:`return`, :keyword:`continue`, or :keyword:`break` statement was " -"executed. Exceptions in the :keyword:`!else` clause are not handled by the " -"preceding :keyword:`except` clauses." +"the :keyword:`try` suite, no exception was raised, and no :keyword:" +"`return`, :keyword:`continue`, or :keyword:`break` statement was executed. " +"Exceptions in the :keyword:`!else` clause are not handled by the preceding :" +"keyword:`except` clauses." msgstr "" -#: ../../reference/compound_stmts.rst:416 msgid ":keyword:`!finally` clause" msgstr "" -#: ../../reference/compound_stmts.rst:418 msgid "" -"If :keyword:`!finally` is present, it specifies a 'cleanup' handler. " -"The :keyword:`try` clause is executed, including any :keyword:`except` " -"and :keyword:`else` clauses. If an exception occurs in any of the clauses " -"and is not handled, the exception is temporarily saved. The :keyword:`!" -"finally` clause is executed. If there is a saved exception it is re-raised " -"at the end of the :keyword:`!finally` clause. If the :keyword:`!finally` " -"clause raises another exception, the saved exception is set as the context " -"of the new exception. If the :keyword:`!finally` clause executes " -"a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement, the " +"If :keyword:`!finally` is present, it specifies a 'cleanup' handler. The :" +"keyword:`try` clause is executed, including any :keyword:`except` and :" +"keyword:`else ` clauses. If an exception occurs in any of the " +"clauses and is not handled, the exception is temporarily saved. The :keyword:" +"`!finally` clause is executed. If there is a saved exception it is re-" +"raised at the end of the :keyword:`!finally` clause. If the :keyword:`!" +"finally` clause raises another exception, the saved exception is set as the " +"context of the new exception. If the :keyword:`!finally` clause executes a :" +"keyword:`return`, :keyword:`break` or :keyword:`continue` statement, the " "saved exception is discarded. For example, this function returns 42." msgstr "" -#: ../../reference/compound_stmts.rst:429 msgid "" "def f():\n" " try:\n" @@ -455,13 +399,11 @@ msgid "" " return 42" msgstr "" -#: ../../reference/compound_stmts.rst:437 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`!finally` clause." msgstr "" -#: ../../reference/compound_stmts.rst:445 msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " "is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" @@ -469,7 +411,6 @@ msgid "" "way out.'" msgstr "" -#: ../../reference/compound_stmts.rst:449 msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`!finally` clause always executes, " @@ -478,7 +419,6 @@ msgid "" "'finally'." msgstr "" -#: ../../reference/compound_stmts.rst:454 msgid "" "def foo():\n" " try:\n" @@ -487,117 +427,94 @@ msgid "" " return 'finally'" msgstr "" -#: ../../reference/compound_stmts.rst:462 msgid "" -"Prior to Python 3.8, a :keyword:`continue` statement was illegal in " -"the :keyword:`!finally` clause due to a problem with the implementation." +"Prior to Python 3.8, a :keyword:`continue` statement was illegal in the :" +"keyword:`!finally` clause due to a problem with the implementation." msgstr "" -#: ../../reference/compound_stmts.rst:466 msgid "" -"The compiler emits a :exc:`SyntaxWarning` when " -"a :keyword:`return`, :keyword:`break` or :keyword:`continue` appears in " -"a :keyword:`!finally` block (see :pep:`765`)." +"The compiler emits a :exc:`SyntaxWarning` when a :keyword:`return`, :keyword:" +"`break` or :keyword:`continue` appears in a :keyword:`!finally` block (see :" +"pep:`765`)." msgstr "" -#: ../../reference/compound_stmts.rst:476 msgid "The :keyword:`!with` statement" msgstr "" -#: ../../reference/compound_stmts.rst:485 msgid "" "The :keyword:`with` statement is used to wrap the execution of a block with " "methods defined by a context manager (see section :ref:`context-managers`). " -"This allows common :keyword:`try`...\\ :keyword:`except`..." -"\\ :keyword:`finally` usage patterns to be encapsulated for convenient reuse." +"This allows common :keyword:`try`...\\ :keyword:`except`...\\ :keyword:" +"`finally` usage patterns to be encapsulated for convenient reuse." msgstr "" -#: ../../reference/compound_stmts.rst:495 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -#: ../../reference/compound_stmts.rst:497 msgid "" -"The context expression (the expression given in the :token:`~python-" -"grammar:with_item`) is evaluated to obtain a context manager." +"The context expression (the expression given in the :token:`~python-grammar:" +"with_item`) is evaluated to obtain a context manager." msgstr "" -#: ../../reference/compound_stmts.rst:500 msgid "" "The context manager's :meth:`~object.__enter__` is loaded for later use." msgstr "" -#: ../../reference/compound_stmts.rst:502 msgid "The context manager's :meth:`~object.__exit__` is loaded for later use." msgstr "" -#: ../../reference/compound_stmts.rst:504 msgid "The context manager's :meth:`~object.__enter__` method is invoked." msgstr "" -#: ../../reference/compound_stmts.rst:506 msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`~object.__enter__` is assigned to it." msgstr "" -#: ../../reference/compound_stmts.rst:511 msgid "" -"The :keyword:`with` statement guarantees that if " -"the :meth:`~object.__enter__` method returns without an error, " -"then :meth:`~object.__exit__` will always be called. Thus, if an error " -"occurs during the assignment to the target list, it will be treated the same " -"as an error occurring within the suite would be. See step 7 below." +"The :keyword:`with` statement guarantees that if the :meth:`~object." +"__enter__` method returns without an error, then :meth:`~object.__exit__` " +"will always be called. Thus, if an error occurs during the assignment to the " +"target list, it will be treated the same as an error occurring within the " +"suite would be. See step 7 below." msgstr "" -#: ../../reference/compound_stmts.rst:517 msgid "The suite is executed." msgstr "" -#: ../../reference/compound_stmts.rst:519 msgid "" "The context manager's :meth:`~object.__exit__` method is invoked. If an " "exception caused the suite to be exited, its type, value, and traceback are " -"passed as arguments to :meth:`~object.__exit__`. Otherwise, " -"three :const:`None` arguments are supplied." +"passed as arguments to :meth:`~object.__exit__`. Otherwise, three :const:" +"`None` arguments are supplied." msgstr "" -#: ../../reference/compound_stmts.rst:524 msgid "" -"If the suite was exited due to an exception, and the return value from " -"the :meth:`~object.__exit__` method was false, the exception is reraised. " -"If the return value was true, the exception is suppressed, and execution " -"continues with the statement following the :keyword:`with` statement." +"If the suite was exited due to an exception, and the return value from the :" +"meth:`~object.__exit__` method was false, the exception is reraised. If the " +"return value was true, the exception is suppressed, and execution continues " +"with the statement following the :keyword:`with` statement." msgstr "" -#: ../../reference/compound_stmts.rst:529 msgid "" "If the suite was exited for any reason other than an exception, the return " "value from :meth:`~object.__exit__` is ignored, and execution proceeds at " "the normal location for the kind of exit that was taken." msgstr "" -#: ../../reference/compound_stmts.rst:533 -#: ../../reference/compound_stmts.rst:1550 -#: ../../reference/compound_stmts.rst:1591 msgid "The following code::" msgstr "" -#: ../../reference/compound_stmts.rst:535 msgid "" "with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: ../../reference/compound_stmts.rst:538 -#: ../../reference/compound_stmts.rst:563 -#: ../../reference/compound_stmts.rst:1596 msgid "is semantically equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:540 msgid "" "manager = (EXPRESSION)\n" "enter = type(manager).__enter__\n" @@ -617,32 +534,27 @@ msgid "" " exit(manager, None, None, None)" msgstr "" -#: ../../reference/compound_stmts.rst:557 msgid "" -"With more than one item, the context managers are processed as if " -"multiple :keyword:`with` statements were nested::" +"With more than one item, the context managers are processed as if multiple :" +"keyword:`with` statements were nested::" msgstr "" -#: ../../reference/compound_stmts.rst:560 msgid "" "with A() as a, B() as b:\n" " SUITE" msgstr "" -#: ../../reference/compound_stmts.rst:565 msgid "" "with A() as a:\n" " with B() as b:\n" " SUITE" msgstr "" -#: ../../reference/compound_stmts.rst:569 msgid "" "You can also write multi-item context managers in multiple lines if the " "items are surrounded by parentheses. For example::" msgstr "" -#: ../../reference/compound_stmts.rst:572 msgid "" "with (\n" " A() as a,\n" @@ -651,88 +563,69 @@ msgid "" " SUITE" msgstr "" -#: ../../reference/compound_stmts.rst:578 msgid "Support for multiple context expressions." msgstr "" -#: ../../reference/compound_stmts.rst:581 msgid "" "Support for using grouping parentheses to break the statement in multiple " "lines." msgstr "" -#: ../../reference/compound_stmts.rst:586 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: ../../reference/compound_stmts.rst:587 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" -#: ../../reference/compound_stmts.rst:593 msgid "The :keyword:`!match` statement" msgstr "" -#: ../../reference/compound_stmts.rst:607 msgid "The match statement is used for pattern matching. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:616 msgid "" "This section uses single quotes to denote :ref:`soft keywords `." msgstr "" -#: ../../reference/compound_stmts.rst:619 msgid "" "Pattern matching takes a pattern as input (following ``case``) and a subject " "value (following ``match``). The pattern (which may contain subpatterns) is " "matched against the subject value. The outcomes are:" msgstr "" -#: ../../reference/compound_stmts.rst:623 msgid "A match success or failure (also termed a pattern success or failure)." msgstr "" -#: ../../reference/compound_stmts.rst:625 msgid "" "Possible binding of matched values to a name. The prerequisites for this " "are further discussed below." msgstr "" -#: ../../reference/compound_stmts.rst:628 msgid "" "The ``match`` and ``case`` keywords are :ref:`soft keywords `." msgstr "" -#: ../../reference/compound_stmts.rst:632 -#: ../../reference/compound_stmts.rst:1189 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" -#: ../../reference/compound_stmts.rst:633 -#: ../../reference/compound_stmts.rst:1190 msgid ":pep:`636` -- Structural Pattern Matching: Tutorial" msgstr "" -#: ../../reference/compound_stmts.rst:637 msgid "Overview" msgstr "" -#: ../../reference/compound_stmts.rst:639 msgid "Here's an overview of the logical flow of a match statement:" msgstr "" -#: ../../reference/compound_stmts.rst:642 msgid "" "The subject expression ``subject_expr`` is evaluated and a resulting subject " "value obtained. If the subject expression contains a comma, a tuple is " "constructed using :ref:`the standard rules `." msgstr "" -#: ../../reference/compound_stmts.rst:646 msgid "" "Each pattern in a ``case_block`` is attempted to match with the subject " "value. The specific rules for success or failure are described below. The " @@ -742,7 +635,6 @@ msgid "" "outlive the executed block and can be used after the match statement**." msgstr "" -#: ../../reference/compound_stmts.rst:655 msgid "" "During failed pattern matches, some subpatterns may succeed. Do not rely on " "bindings being made for a failed match. Conversely, do not rely on " @@ -751,38 +643,31 @@ msgid "" "made to allow different implementations to add optimizations." msgstr "" -#: ../../reference/compound_stmts.rst:662 msgid "" "If the pattern succeeds, the corresponding guard (if present) is evaluated. " "In this case all name bindings are guaranteed to have happened." msgstr "" -#: ../../reference/compound_stmts.rst:665 msgid "" "If the guard evaluates as true or is missing, the ``block`` inside " "``case_block`` is executed." msgstr "" -#: ../../reference/compound_stmts.rst:668 msgid "Otherwise, the next ``case_block`` is attempted as described above." msgstr "" -#: ../../reference/compound_stmts.rst:670 msgid "If there are no further case blocks, the match statement is completed." msgstr "" -#: ../../reference/compound_stmts.rst:674 msgid "" "Users should generally never rely on a pattern being evaluated. Depending " "on implementation, the interpreter may cache values or use other " "optimizations which skip repeated evaluations." msgstr "" -#: ../../reference/compound_stmts.rst:678 msgid "A sample match statement::" msgstr "" -#: ../../reference/compound_stmts.rst:680 msgid "" ">>> flag = False\n" ">>> match (100, 200):\n" @@ -798,56 +683,46 @@ msgid "" "Case 3, y: 200" msgstr "" -#: ../../reference/compound_stmts.rst:694 msgid "" "In this case, ``if flag`` is a guard. Read more about that in the next " "section." msgstr "" -#: ../../reference/compound_stmts.rst:697 msgid "Guards" msgstr "" -#: ../../reference/compound_stmts.rst:704 msgid "" "A ``guard`` (which is part of the ``case``) must succeed for code inside the " "``case`` block to execute. It takes the form: :keyword:`if` followed by an " "expression." msgstr "" -#: ../../reference/compound_stmts.rst:709 msgid "The logical flow of a ``case`` block with a ``guard`` follows:" msgstr "" -#: ../../reference/compound_stmts.rst:711 msgid "" "Check that the pattern in the ``case`` block succeeded. If the pattern " "failed, the ``guard`` is not evaluated and the next ``case`` block is " "checked." msgstr "" -#: ../../reference/compound_stmts.rst:715 msgid "If the pattern succeeded, evaluate the ``guard``." msgstr "" -#: ../../reference/compound_stmts.rst:717 msgid "" "If the ``guard`` condition evaluates as true, the case block is selected." msgstr "" -#: ../../reference/compound_stmts.rst:720 msgid "" "If the ``guard`` condition evaluates as false, the case block is not " "selected." msgstr "" -#: ../../reference/compound_stmts.rst:723 msgid "" "If the ``guard`` raises an exception during evaluation, the exception " "bubbles up." msgstr "" -#: ../../reference/compound_stmts.rst:726 msgid "" "Guards are allowed to have side effects as they are expressions. Guard " "evaluation must proceed from the first to the last case block, one at a " @@ -856,17 +731,14 @@ msgid "" "block is selected." msgstr "" -#: ../../reference/compound_stmts.rst:736 msgid "Irrefutable Case Blocks" msgstr "" -#: ../../reference/compound_stmts.rst:740 msgid "" "An irrefutable case block is a match-all case block. A match statement may " "have at most one irrefutable case block, and it must be last." msgstr "" -#: ../../reference/compound_stmts.rst:743 msgid "" "A case block is considered irrefutable if it has no guard and its pattern is " "irrefutable. A pattern is considered irrefutable if we can prove from its " @@ -874,47 +746,36 @@ msgid "" "irrefutable:" msgstr "" -#: ../../reference/compound_stmts.rst:748 msgid ":ref:`as-patterns` whose left-hand side is irrefutable" msgstr "" -#: ../../reference/compound_stmts.rst:750 msgid ":ref:`or-patterns` containing at least one irrefutable pattern" msgstr "" -#: ../../reference/compound_stmts.rst:752 msgid ":ref:`capture-patterns`" msgstr "" -#: ../../reference/compound_stmts.rst:754 msgid ":ref:`wildcard-patterns`" msgstr "" -#: ../../reference/compound_stmts.rst:756 msgid "parenthesized irrefutable patterns" msgstr "" -#: ../../reference/compound_stmts.rst:760 msgid "Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:767 msgid "This section uses grammar notations beyond standard EBNF:" msgstr "" -#: ../../reference/compound_stmts.rst:769 msgid "the notation ``SEP.RULE+`` is shorthand for ``RULE (SEP RULE)*``" msgstr "" -#: ../../reference/compound_stmts.rst:771 msgid "the notation ``!RULE`` is shorthand for a negative lookahead assertion" msgstr "" -#: ../../reference/compound_stmts.rst:774 msgid "The top-level syntax for ``patterns`` is:" msgstr "" -#: ../../reference/compound_stmts.rst:788 msgid "" "The descriptions below will include a description \"in simple terms\" of " "what a pattern does for illustration purposes (credits to Raymond Hettinger " @@ -924,113 +785,94 @@ msgid "" "forms." msgstr "" -#: ../../reference/compound_stmts.rst:798 msgid "OR Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:800 msgid "" "An OR pattern is two or more patterns separated by vertical bars ``|``. " "Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:806 msgid "" "Only the final subpattern may be :ref:`irrefutable `, and " "each subpattern must bind the same set of names to avoid ambiguity." msgstr "" -#: ../../reference/compound_stmts.rst:809 msgid "" "An OR pattern matches each of its subpatterns in turn to the subject value, " "until one succeeds. The OR pattern is then considered successful. " "Otherwise, if none of the subpatterns succeed, the OR pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:813 msgid "" "In simple terms, ``P1 | P2 | ...`` will try to match ``P1``, if it fails it " "will try to match ``P2``, succeeding immediately if any succeeds, failing " "otherwise." msgstr "" -#: ../../reference/compound_stmts.rst:819 msgid "AS Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:821 msgid "" "An AS pattern matches an OR pattern on the left of the :keyword:`as` keyword " "against a subject. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:827 msgid "" "If the OR pattern fails, the AS pattern fails. Otherwise, the AS pattern " "binds the subject to the name on the right of the as keyword and succeeds. " "``capture_pattern`` cannot be a ``_``." msgstr "" -#: ../../reference/compound_stmts.rst:831 msgid "" "In simple terms ``P as NAME`` will match with ``P``, and on success it will " "set ``NAME = ``." msgstr "" -#: ../../reference/compound_stmts.rst:838 msgid "Literal Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:840 msgid "" "A literal pattern corresponds to most :ref:`literals ` in Python. " "Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:853 msgid "" -"The rule ``strings`` and the token ``NUMBER`` are defined in " -"the :doc:`standard Python grammar <./grammar>`. Triple-quoted strings are " +"The rule ``strings`` and the token ``NUMBER`` are defined in the :doc:" +"`standard Python grammar <./grammar>`. Triple-quoted strings are " "supported. Raw strings and byte strings are supported. :ref:`f-strings` " "and :ref:`t-strings` are not supported." msgstr "" -#: ../../reference/compound_stmts.rst:858 msgid "" "The forms ``signed_number '+' NUMBER`` and ``signed_number '-' NUMBER`` are " "for expressing :ref:`complex numbers `; they require a real " "number on the left and an imaginary number on the right. E.g. ``3 + 4j``." msgstr "" -#: ../../reference/compound_stmts.rst:862 msgid "" "In simple terms, ``LITERAL`` will succeed only if `` == LITERAL``. " "For the singletons ``None``, ``True`` and ``False``, the :keyword:`is` " "operator is used." msgstr "" -#: ../../reference/compound_stmts.rst:868 msgid "Capture Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:870 msgid "A capture pattern binds the subject value to a name. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:876 msgid "" "A single underscore ``_`` is not a capture pattern (this is what ``!'_'`` " -"expresses). It is instead treated as a :token:`~python-" -"grammar:wildcard_pattern`." +"expresses). It is instead treated as a :token:`~python-grammar:" +"wildcard_pattern`." msgstr "" -#: ../../reference/compound_stmts.rst:880 msgid "" "In a given pattern, a given name can only be bound once. E.g. ``case x, " "x: ...`` is invalid while ``case [x] | x: ...`` is allowed." msgstr "" -#: ../../reference/compound_stmts.rst:883 msgid "" "Capture patterns always succeed. The binding follows scoping rules " "established by the assignment expression operator in :pep:`572`; the name " @@ -1038,55 +880,45 @@ msgid "" "there's an applicable :keyword:`global` or :keyword:`nonlocal` statement." msgstr "" -#: ../../reference/compound_stmts.rst:888 msgid "" "In simple terms ``NAME`` will always succeed and it will set ``NAME = " "``." msgstr "" -#: ../../reference/compound_stmts.rst:893 msgid "Wildcard Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:895 msgid "" "A wildcard pattern always succeeds (matches anything) and binds no name. " "Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:901 msgid "" "``_`` is a :ref:`soft keyword ` within any pattern, but only " "within patterns. It is an identifier, as usual, even within ``match`` " "subject expressions, ``guard``\\ s, and ``case`` blocks." msgstr "" -#: ../../reference/compound_stmts.rst:905 msgid "In simple terms, ``_`` will always succeed." msgstr "" -#: ../../reference/compound_stmts.rst:910 msgid "Value Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:912 msgid "A value pattern represents a named value in Python. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:920 msgid "" "The dotted name in the pattern is looked up using standard Python :ref:`name " "resolution rules `. The pattern succeeds if the value found " "compares equal to the subject value (using the ``==`` equality operator)." msgstr "" -#: ../../reference/compound_stmts.rst:925 msgid "" -"In simple terms ``NAME1.NAME2`` will succeed only if `` == " -"NAME1.NAME2``" +"In simple terms ``NAME1.NAME2`` will succeed only if `` == NAME1." +"NAME2``" msgstr "" -#: ../../reference/compound_stmts.rst:929 msgid "" "If the same value occurs multiple times in the same match statement, the " "interpreter may cache the first value found and reuse it rather than repeat " @@ -1094,44 +926,36 @@ msgid "" "given match statement." msgstr "" -#: ../../reference/compound_stmts.rst:937 msgid "Group Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:939 msgid "" "A group pattern allows users to add parentheses around patterns to emphasize " "the intended grouping. Otherwise, it has no additional syntax. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:946 msgid "In simple terms ``(P)`` has the same effect as ``P``." msgstr "" -#: ../../reference/compound_stmts.rst:951 msgid "Sequence Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:953 msgid "" "A sequence pattern contains several subpatterns to be matched against " "sequence elements. The syntax is similar to the unpacking of a list or tuple." msgstr "" -#: ../../reference/compound_stmts.rst:964 msgid "" "There is no difference if parentheses or square brackets are used for " "sequence patterns (i.e. ``(...)`` vs ``[...]`` )." msgstr "" -#: ../../reference/compound_stmts.rst:968 msgid "" "A single pattern enclosed in parentheses without a trailing comma (e.g. ``(3 " "| 4)``) is a :ref:`group pattern `. While a single pattern " "enclosed in square brackets (e.g. ``[3 | 4]``) is still a sequence pattern." msgstr "" -#: ../../reference/compound_stmts.rst:973 msgid "" "At most one star subpattern may be in a sequence pattern. The star " "subpattern may occur in any position. If no star subpattern is present, the " @@ -1139,40 +963,33 @@ msgid "" "variable-length sequence pattern." msgstr "" -#: ../../reference/compound_stmts.rst:978 msgid "" "The following is the logical flow for matching a sequence pattern against a " "subject value:" msgstr "" -#: ../../reference/compound_stmts.rst:981 msgid "" "If the subject value is not a sequence [#]_, the sequence pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:984 msgid "" "If the subject value is an instance of ``str``, ``bytes`` or ``bytearray`` " "the sequence pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:987 msgid "" "The subsequent steps depend on whether the sequence pattern is fixed or " "variable-length." msgstr "" -#: ../../reference/compound_stmts.rst:990 msgid "If the sequence pattern is fixed-length:" msgstr "" -#: ../../reference/compound_stmts.rst:992 msgid "" "If the length of the subject sequence is not equal to the number of " "subpatterns, the sequence pattern fails" msgstr "" -#: ../../reference/compound_stmts.rst:995 msgid "" "Subpatterns in the sequence pattern are matched to their corresponding items " "in the subject sequence from left to right. Matching stops as soon as a " @@ -1180,375 +997,300 @@ msgid "" "corresponding item, the sequence pattern succeeds." msgstr "" -#: ../../reference/compound_stmts.rst:1000 msgid "Otherwise, if the sequence pattern is variable-length:" msgstr "" -#: ../../reference/compound_stmts.rst:1002 msgid "" "If the length of the subject sequence is less than the number of non-star " "subpatterns, the sequence pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:1005 msgid "" "The leading non-star subpatterns are matched to their corresponding items as " "for fixed-length sequences." msgstr "" -#: ../../reference/compound_stmts.rst:1008 msgid "" "If the previous step succeeds, the star subpattern matches a list formed of " "the remaining subject items, excluding the remaining items corresponding to " "non-star subpatterns following the star subpattern." msgstr "" -#: ../../reference/compound_stmts.rst:1012 msgid "" "Remaining non-star subpatterns are matched to their corresponding subject " "items, as for a fixed-length sequence." msgstr "" -#: ../../reference/compound_stmts.rst:1015 msgid "" "The length of the subject sequence is obtained via :func:`len` (i.e. via " -"the :meth:`__len__` protocol). This length may be cached by the interpreter " -"in a similar manner as :ref:`value patterns `." +"the :meth:`~object.__len__` protocol). This length may be cached by the " +"interpreter in a similar manner as :ref:`value patterns `." msgstr "" -#: ../../reference/compound_stmts.rst:1021 msgid "" "In simple terms ``[P1, P2, P3,`` ... ``, P]`` matches only if all the " "following happens:" msgstr "" -#: ../../reference/compound_stmts.rst:1024 msgid "check ```` is a sequence" msgstr "" -#: ../../reference/compound_stmts.rst:1025 msgid "``len(subject) == ``" msgstr "" -#: ../../reference/compound_stmts.rst:1026 msgid "" "``P1`` matches ``[0]`` (note that this match can also bind names)" msgstr "" -#: ../../reference/compound_stmts.rst:1027 msgid "" "``P2`` matches ``[1]`` (note that this match can also bind names)" msgstr "" -#: ../../reference/compound_stmts.rst:1028 msgid "... and so on for the corresponding pattern/element." msgstr "" -#: ../../reference/compound_stmts.rst:1033 msgid "Mapping Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:1035 msgid "" "A mapping pattern contains one or more key-value patterns. The syntax is " "similar to the construction of a dictionary. Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:1046 msgid "" "At most one double star pattern may be in a mapping pattern. The double " "star pattern must be the last subpattern in the mapping pattern." msgstr "" -#: ../../reference/compound_stmts.rst:1049 msgid "" "Duplicate keys in mapping patterns are disallowed. Duplicate literal keys " "will raise a :exc:`SyntaxError`. Two keys that otherwise have the same value " "will raise a :exc:`ValueError` at runtime." msgstr "" -#: ../../reference/compound_stmts.rst:1053 msgid "" "The following is the logical flow for matching a mapping pattern against a " "subject value:" msgstr "" -#: ../../reference/compound_stmts.rst:1056 msgid "If the subject value is not a mapping [#]_,the mapping pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:1058 msgid "" "If every key given in the mapping pattern is present in the subject mapping, " "and the pattern for each key matches the corresponding item of the subject " "mapping, the mapping pattern succeeds." msgstr "" -#: ../../reference/compound_stmts.rst:1062 msgid "" "If duplicate keys are detected in the mapping pattern, the pattern is " "considered invalid. A :exc:`SyntaxError` is raised for duplicate literal " "values; or a :exc:`ValueError` for named keys of the same value." msgstr "" -#: ../../reference/compound_stmts.rst:1066 msgid "" "Key-value pairs are matched using the two-argument form of the mapping " "subject's ``get()`` method. Matched key-value pairs must already be present " -"in the mapping, and not created on-the-fly via :meth:`__missing__` " +"in the mapping, and not created on-the-fly via :meth:`~object.__missing__` " "or :meth:`~object.__getitem__`." msgstr "" -#: ../../reference/compound_stmts.rst:1071 msgid "" "In simple terms ``{KEY1: P1, KEY2: P2, ... }`` matches only if all the " "following happens:" msgstr "" -#: ../../reference/compound_stmts.rst:1074 msgid "check ```` is a mapping" msgstr "" -#: ../../reference/compound_stmts.rst:1075 msgid "``KEY1 in ``" msgstr "" -#: ../../reference/compound_stmts.rst:1076 msgid "``P1`` matches ``[KEY1]``" msgstr "" -#: ../../reference/compound_stmts.rst:1077 msgid "... and so on for the corresponding KEY/pattern pair." msgstr "" -#: ../../reference/compound_stmts.rst:1083 msgid "Class Patterns" msgstr "" -#: ../../reference/compound_stmts.rst:1085 msgid "" "A class pattern represents a class and its positional and keyword arguments " "(if any). Syntax:" msgstr "" -#: ../../reference/compound_stmts.rst:1096 msgid "The same keyword should not be repeated in class patterns." msgstr "" -#: ../../reference/compound_stmts.rst:1098 msgid "" "The following is the logical flow for matching a class pattern against a " "subject value:" msgstr "" -#: ../../reference/compound_stmts.rst:1101 msgid "" -"If ``name_or_attr`` is not an instance of the builtin :class:`type` , " -"raise :exc:`TypeError`." +"If ``name_or_attr`` is not an instance of the builtin :class:`type` , raise :" +"exc:`TypeError`." msgstr "" -#: ../../reference/compound_stmts.rst:1104 msgid "" -"If the subject value is not an instance of ``name_or_attr`` (tested " -"via :func:`isinstance`), the class pattern fails." +"If the subject value is not an instance of ``name_or_attr`` (tested via :" +"func:`isinstance`), the class pattern fails." msgstr "" -#: ../../reference/compound_stmts.rst:1107 msgid "" "If no pattern arguments are present, the pattern succeeds. Otherwise, the " "subsequent steps depend on whether keyword or positional argument patterns " "are present." msgstr "" -#: ../../reference/compound_stmts.rst:1111 msgid "" "For a number of built-in types (specified below), a single positional " "subpattern is accepted which will match the entire subject; for these types " "keyword patterns also work as for other types." msgstr "" -#: ../../reference/compound_stmts.rst:1115 msgid "" "If only keyword patterns are present, they are processed as follows, one by " "one:" msgstr "" -#: ../../reference/compound_stmts.rst:1118 msgid "I. The keyword is looked up as an attribute on the subject." msgstr "" -#: ../../reference/compound_stmts.rst:1120 msgid "" "If this raises an exception other than :exc:`AttributeError`, the exception " "bubbles up." msgstr "" -#: ../../reference/compound_stmts.rst:1123 msgid "If this raises :exc:`AttributeError`, the class pattern has failed." msgstr "" -#: ../../reference/compound_stmts.rst:1125 msgid "" "Else, the subpattern associated with the keyword pattern is matched against " "the subject's attribute value. If this fails, the class pattern fails; if " "this succeeds, the match proceeds to the next keyword." msgstr "" -#: ../../reference/compound_stmts.rst:1130 msgid "II. If all keyword patterns succeed, the class pattern succeeds." msgstr "" -#: ../../reference/compound_stmts.rst:1132 msgid "" "If any positional patterns are present, they are converted to keyword " "patterns using the :data:`~object.__match_args__` attribute on the class " "``name_or_attr`` before matching:" msgstr "" -#: ../../reference/compound_stmts.rst:1136 msgid "" "I. The equivalent of ``getattr(cls, \"__match_args__\", ())`` is called." msgstr "" -#: ../../reference/compound_stmts.rst:1138 msgid "If this raises an exception, the exception bubbles up." msgstr "" -#: ../../reference/compound_stmts.rst:1140 msgid "" -"If the returned value is not a tuple, the conversion fails " -"and :exc:`TypeError` is raised." +"If the returned value is not a tuple, the conversion fails and :exc:" +"`TypeError` is raised." msgstr "" -#: ../../reference/compound_stmts.rst:1143 msgid "" -"If there are more positional patterns than " -"``len(cls.__match_args__)``, :exc:`TypeError` is raised." +"If there are more positional patterns than ``len(cls.__match_args__)``, :exc:" +"`TypeError` is raised." msgstr "" -#: ../../reference/compound_stmts.rst:1146 msgid "" "Otherwise, positional pattern ``i`` is converted to a keyword pattern using " "``__match_args__[i]`` as the keyword. ``__match_args__[i]`` must be a " "string; if not :exc:`TypeError` is raised." msgstr "" -#: ../../reference/compound_stmts.rst:1150 msgid "If there are duplicate keywords, :exc:`TypeError` is raised." msgstr "" -#: ../../reference/compound_stmts.rst:1152 msgid ":ref:`class-pattern-matching`" msgstr "" -#: ../../reference/compound_stmts.rst:1154 msgid "" "II. Once all positional patterns have been converted to keyword patterns," msgstr "" -#: ../../reference/compound_stmts.rst:1155 msgid "the match proceeds as if there were only keyword patterns." msgstr "" -#: ../../reference/compound_stmts.rst:1157 msgid "" "For the following built-in types the handling of positional subpatterns is " "different:" msgstr "" -#: ../../reference/compound_stmts.rst:1160 msgid ":class:`bool`" msgstr "" -#: ../../reference/compound_stmts.rst:1161 msgid ":class:`bytearray`" msgstr "" -#: ../../reference/compound_stmts.rst:1162 msgid ":class:`bytes`" msgstr "" -#: ../../reference/compound_stmts.rst:1163 msgid ":class:`dict`" msgstr "" -#: ../../reference/compound_stmts.rst:1164 msgid ":class:`float`" msgstr "" -#: ../../reference/compound_stmts.rst:1165 msgid ":class:`frozenset`" msgstr "" -#: ../../reference/compound_stmts.rst:1166 msgid ":class:`int`" msgstr "" -#: ../../reference/compound_stmts.rst:1167 -#: ../../reference/compound_stmts.rst:1925 msgid ":class:`list`" msgstr "" -#: ../../reference/compound_stmts.rst:1168 msgid ":class:`set`" msgstr "" -#: ../../reference/compound_stmts.rst:1169 msgid ":class:`str`" msgstr "" -#: ../../reference/compound_stmts.rst:1170 -#: ../../reference/compound_stmts.rst:1928 msgid ":class:`tuple`" msgstr "" -#: ../../reference/compound_stmts.rst:1172 msgid "" "These classes accept a single positional argument, and the pattern there is " "matched against the whole object rather than an attribute. For example " "``int(0|1)`` matches the value ``0``, but not the value ``0.0``." msgstr "" -#: ../../reference/compound_stmts.rst:1176 msgid "" "In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens:" msgstr "" -#: ../../reference/compound_stmts.rst:1178 msgid "``isinstance(, CLS)``" msgstr "" -#: ../../reference/compound_stmts.rst:1179 msgid "convert ``P1`` to a keyword pattern using ``CLS.__match_args__``" msgstr "" -#: ../../reference/compound_stmts.rst:1180 msgid "For each keyword argument ``attr=P2``:" msgstr "" -#: ../../reference/compound_stmts.rst:1182 msgid "``hasattr(, \"attr\")``" msgstr "" -#: ../../reference/compound_stmts.rst:1183 msgid "``P2`` matches ``.attr``" msgstr "" -#: ../../reference/compound_stmts.rst:1185 msgid "... and so on for the corresponding keyword argument/pattern pair." msgstr "" -#: ../../reference/compound_stmts.rst:1200 msgid "Function definitions" msgstr "" -#: ../../reference/compound_stmts.rst:1215 msgid "" -"A function definition defines a user-defined function object (see " -"section :ref:`types`):" +"A function definition defines a user-defined function object (see section :" +"ref:`types`):" msgstr "" -#: ../../reference/compound_stmts.rst:1237 msgid "" "A function definition is an executable statement. Its execution binds the " "function name in the current local namespace to a function object (a wrapper " @@ -1557,13 +1299,11 @@ msgid "" "used when the function is called." msgstr "" -#: ../../reference/compound_stmts.rst:1243 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -#: ../../reference/compound_stmts.rst:1249 msgid "" "A function definition may be wrapped by one or more :term:`decorator` " "expressions. Decorator expressions are evaluated when the function is " @@ -1574,38 +1314,31 @@ msgid "" "example, the following code ::" msgstr "" -#: ../../reference/compound_stmts.rst:1256 msgid "" "@f1(arg)\n" "@f2\n" "def func(): pass" msgstr "" -#: ../../reference/compound_stmts.rst:1260 -#: ../../reference/compound_stmts.rst:1449 msgid "is roughly equivalent to ::" msgstr "" -#: ../../reference/compound_stmts.rst:1262 msgid "" "def func(): pass\n" "func = f1(arg)(f2(func))" msgstr "" -#: ../../reference/compound_stmts.rst:1265 msgid "" "except that the original function is not temporarily bound to the name " "``func``." msgstr "" -#: ../../reference/compound_stmts.rst:1267 msgid "" -"Functions may be decorated with any valid :token:`~python-" -"grammar:assignment_expression`. Previously, the grammar was much more " -"restrictive; see :pep:`614` for details." +"Functions may be decorated with any valid :token:`~python-grammar:" +"assignment_expression`. Previously, the grammar was much more restrictive; " +"see :pep:`614` for details." msgstr "" -#: ../../reference/compound_stmts.rst:1272 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets between the function's name and the opening parenthesis for its " @@ -1615,12 +1348,9 @@ msgid "" "functions` for more." msgstr "" -#: ../../reference/compound_stmts.rst:1279 -#: ../../reference/compound_stmts.rst:1468 msgid "Type parameter lists are new in Python 3.12." msgstr "" -#: ../../reference/compound_stmts.rst:1287 msgid "" "When one or more :term:`parameters ` have the form *parameter* " "``=`` *expression*, the function is said to have \"default parameter values." @@ -1631,7 +1361,6 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" -#: ../../reference/compound_stmts.rst:1295 msgid "" "**Default parameter values are evaluated from left to right when the " "function definition is executed.** This means that the expression is " @@ -1644,7 +1373,6 @@ msgid "" "the default, and explicitly test for it in the body of the function, e.g.::" msgstr "" -#: ../../reference/compound_stmts.rst:1305 msgid "" "def whats_on_the_telly(penguin=None):\n" " if penguin is None:\n" @@ -1653,29 +1381,26 @@ msgid "" " return penguin" msgstr "" -#: ../../reference/compound_stmts.rst:1316 msgid "" -"Function call semantics are described in more detail in " -"section :ref:`calls`. A function call always assigns values to all " -"parameters mentioned in the parameter list, either from positional " -"arguments, from keyword arguments, or from default values. If the form " -"\"``*identifier``\" is present, it is initialized to a tuple receiving any " -"excess positional parameters, defaulting to the empty tuple. If the form " -"\"``**identifier``\" is present, it is initialized to a new ordered mapping " -"receiving any excess keyword arguments, defaulting to a new empty mapping of " -"the same type. Parameters after \"``*``\" or \"``*identifier``\" are " -"keyword-only parameters and may only be passed by keyword arguments. " -"Parameters before \"``/``\" are positional-only parameters and may only be " -"passed by positional arguments." +"Function call semantics are described in more detail in section :ref:" +"`calls`. A function call always assigns values to all parameters mentioned " +"in the parameter list, either from positional arguments, from keyword " +"arguments, or from default values. If the form \"``*identifier``\" is " +"present, it is initialized to a tuple receiving any excess positional " +"parameters, defaulting to the empty tuple. If the form \"``**identifier``\" " +"is present, it is initialized to a new ordered mapping receiving any excess " +"keyword arguments, defaulting to a new empty mapping of the same type. " +"Parameters after \"``*``\" or \"``*identifier``\" are keyword-only " +"parameters and may only be passed by keyword arguments. Parameters before " +"\"``/``\" are positional-only parameters and may only be passed by " +"positional arguments." msgstr "" -#: ../../reference/compound_stmts.rst:1328 msgid "" "The ``/`` function parameter syntax may be used to indicate positional-only " "parameters. See :pep:`570` for details." msgstr "" -#: ../../reference/compound_stmts.rst:1337 msgid "" "Parameters may have an :term:`annotation ` of the form " "\"``: expression``\" following the parameter name. Any parameter may have " @@ -1688,25 +1413,22 @@ msgid "" "information on annotations." msgstr "" -#: ../../reference/compound_stmts.rst:1345 msgid "" "Parameters of the form \"``*identifier``\" may have an annotation \"``: " "*expression``\". See :pep:`646`." msgstr "" -#: ../../reference/compound_stmts.rst:1351 msgid "" "It is also possible to create anonymous functions (functions not bound to a " "name), for immediate use in expressions. This uses lambda expressions, " "described in section :ref:`lambda`. Note that the lambda expression is " "merely a shorthand for a simplified function definition; a function defined " "in a \":keyword:`def`\" statement can be passed around or assigned to " -"another name just like a function defined by a lambda expression. The " -"\":keyword:`!def`\" form is actually more powerful since it allows the " +"another name just like a function defined by a lambda expression. The \":" +"keyword:`!def`\" form is actually more powerful since it allows the " "execution of multiple statements and annotations." msgstr "" -#: ../../reference/compound_stmts.rst:1359 msgid "" "**Programmer's note:** Functions are first-class objects. A \"``def``\" " "statement executed inside a function definition defines a local function " @@ -1715,61 +1437,48 @@ msgid "" "See section :ref:`naming` for details." msgstr "" -#: ../../reference/compound_stmts.rst:1367 msgid ":pep:`3107` - Function Annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1368 msgid "The original specification for function annotations." msgstr "" -#: ../../reference/compound_stmts.rst:1370 msgid ":pep:`484` - Type Hints" msgstr "" -#: ../../reference/compound_stmts.rst:1371 msgid "Definition of a standard meaning for annotations: type hints." msgstr "" -#: ../../reference/compound_stmts.rst:1373 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1374 msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables." msgstr "" -#: ../../reference/compound_stmts.rst:1377 msgid ":pep:`563` - Postponed Evaluation of Annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1378 msgid "" "Support for forward references within annotations by preserving annotations " "in a string form at runtime instead of eager evaluation." msgstr "" -#: ../../reference/compound_stmts.rst:1381 msgid ":pep:`318` - Decorators for Functions and Methods" msgstr "" -#: ../../reference/compound_stmts.rst:1382 msgid "" "Function and method decorators were introduced. Class decorators were " "introduced in :pep:`3129`." msgstr "" -#: ../../reference/compound_stmts.rst:1388 msgid "Class definitions" msgstr "" -#: ../../reference/compound_stmts.rst:1403 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" -#: ../../reference/compound_stmts.rst:1410 msgid "" "A class definition is an executable statement. The inheritance list usually " "gives a list of base classes (see :ref:`metaclasses` for more advanced " @@ -1778,35 +1487,30 @@ msgid "" "default, from the base class :class:`object`; hence, ::" msgstr "" -#: ../../reference/compound_stmts.rst:1416 msgid "" "class Foo:\n" " pass" msgstr "" -#: ../../reference/compound_stmts.rst:1419 msgid "is equivalent to ::" msgstr "" -#: ../../reference/compound_stmts.rst:1421 msgid "" "class Foo(object):\n" " pass" msgstr "" -#: ../../reference/compound_stmts.rst:1424 msgid "" -"The class's suite is then executed in a new execution frame " -"(see :ref:`naming`), using a newly created local namespace and the original " -"global namespace. (Usually, the suite contains mostly function " -"definitions.) When the class's suite finishes execution, its execution " -"frame is discarded but its local namespace is saved. [#]_ A class object is " -"then created using the inheritance list for the base classes and the saved " -"local namespace for the attribute dictionary. The class name is bound to " -"this class object in the original local namespace." +"The class's suite is then executed in a new execution frame (see :ref:" +"`naming`), using a newly created local namespace and the original global " +"namespace. (Usually, the suite contains mostly function definitions.) When " +"the class's suite finishes execution, its execution frame is discarded but " +"its local namespace is saved. [#]_ A class object is then created using the " +"inheritance list for the base classes and the saved local namespace for the " +"attribute dictionary. The class name is bound to this class object in the " +"original local namespace." msgstr "" -#: ../../reference/compound_stmts.rst:1433 msgid "" "The order in which attributes are defined in the class body is preserved in " "the new class's :attr:`~type.__dict__`. Note that this is reliable only " @@ -1814,52 +1518,44 @@ msgid "" "using the definition syntax." msgstr "" -#: ../../reference/compound_stmts.rst:1438 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." msgstr "" -#: ../../reference/compound_stmts.rst:1443 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -#: ../../reference/compound_stmts.rst:1445 msgid "" "@f1(arg)\n" "@f2\n" "class Foo: pass" msgstr "" -#: ../../reference/compound_stmts.rst:1451 msgid "" "class Foo: pass\n" "Foo = f1(arg)(f2(Foo))" msgstr "" -#: ../../reference/compound_stmts.rst:1454 msgid "" "The evaluation rules for the decorator expressions are the same as for " "function decorators. The result is then bound to the class name." msgstr "" -#: ../../reference/compound_stmts.rst:1457 msgid "" -"Classes may be decorated with any valid :token:`~python-" -"grammar:assignment_expression`. Previously, the grammar was much more " -"restrictive; see :pep:`614` for details." +"Classes may be decorated with any valid :token:`~python-grammar:" +"assignment_expression`. Previously, the grammar was much more restrictive; " +"see :pep:`614` for details." msgstr "" -#: ../../reference/compound_stmts.rst:1462 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets immediately after the class's name. This indicates to static type " "checkers that the class is generic. At runtime, the type parameters can be " -"retrieved from the class's :attr:`~type.__type_params__` attribute. " -"See :ref:`generic-classes` for more." +"retrieved from the class's :attr:`~type.__type_params__` attribute. See :ref:" +"`generic-classes` for more." msgstr "" -#: ../../reference/compound_stmts.rst:1471 msgid "" "**Programmer's note:** Variables defined in the class definition are class " "attributes; they are shared by instances. Instance attributes can be set in " @@ -1872,35 +1568,28 @@ msgid "" "implementation details." msgstr "" -#: ../../reference/compound_stmts.rst:1483 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: ../../reference/compound_stmts.rst:1484 msgid "" "The proposal that changed the declaration of metaclasses to the current " "syntax, and the semantics for how classes with metaclasses are constructed." msgstr "" -#: ../../reference/compound_stmts.rst:1488 msgid ":pep:`3129` - Class Decorators" msgstr "" -#: ../../reference/compound_stmts.rst:1489 msgid "" "The proposal that added class decorators. Function and method decorators " "were introduced in :pep:`318`." msgstr "" -#: ../../reference/compound_stmts.rst:1496 msgid "Coroutines" msgstr "" -#: ../../reference/compound_stmts.rst:1504 msgid "Coroutine function definition" msgstr "" -#: ../../reference/compound_stmts.rst:1514 msgid "" "Execution of Python coroutines can be suspended and resumed at many points " "(see :term:`coroutine`). :keyword:`await` expressions, :keyword:`async for` " @@ -1908,53 +1597,44 @@ msgid "" "function." msgstr "" -#: ../../reference/compound_stmts.rst:1518 msgid "" "Functions defined with ``async def`` syntax are always coroutine functions, " "even if they do not contain ``await`` or ``async`` keywords." msgstr "" -#: ../../reference/compound_stmts.rst:1521 msgid "" "It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " "body of a coroutine function." msgstr "" -#: ../../reference/compound_stmts.rst:1524 msgid "An example of a coroutine function::" msgstr "" -#: ../../reference/compound_stmts.rst:1526 msgid "" "async def func(param1, param2):\n" " do_stuff()\n" " await some_coroutine()" msgstr "" -#: ../../reference/compound_stmts.rst:1530 msgid "" "``await`` and ``async`` are now keywords; previously they were only treated " "as such inside the body of a coroutine function." msgstr "" -#: ../../reference/compound_stmts.rst:1538 msgid "The :keyword:`!async for` statement" msgstr "" -#: ../../reference/compound_stmts.rst:1543 msgid "" "An :term:`asynchronous iterable` provides an ``__aiter__`` method that " "directly returns an :term:`asynchronous iterator`, which can call " "asynchronous code in its ``__anext__`` method." msgstr "" -#: ../../reference/compound_stmts.rst:1547 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterables." msgstr "" -#: ../../reference/compound_stmts.rst:1552 msgid "" "async for TARGET in ITER:\n" " SUITE\n" @@ -1962,11 +1642,9 @@ msgid "" " SUITE2" msgstr "" -#: ../../reference/compound_stmts.rst:1557 msgid "Is semantically equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:1559 msgid "" "iter = (ITER)\n" "iter = type(iter).__aiter__(iter)\n" @@ -1983,34 +1661,28 @@ msgid "" " SUITE2" msgstr "" -#: ../../reference/compound_stmts.rst:1573 msgid "" "See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details." msgstr "" -#: ../../reference/compound_stmts.rst:1575 msgid "" "It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " "body of a coroutine function." msgstr "" -#: ../../reference/compound_stmts.rst:1583 msgid "The :keyword:`!async with` statement" msgstr "" -#: ../../reference/compound_stmts.rst:1588 msgid "" "An :term:`asynchronous context manager` is a :term:`context manager` that is " "able to suspend execution in its *enter* and *exit* methods." msgstr "" -#: ../../reference/compound_stmts.rst:1593 msgid "" "async with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: ../../reference/compound_stmts.rst:1598 msgid "" "manager = (EXPRESSION)\n" "aenter = type(manager).__aenter__\n" @@ -2030,44 +1702,36 @@ msgid "" " await aexit(manager, None, None, None)" msgstr "" -#: ../../reference/compound_stmts.rst:1615 msgid "" "See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for " "details." msgstr "" -#: ../../reference/compound_stmts.rst:1617 msgid "" "It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " "body of a coroutine function." msgstr "" -#: ../../reference/compound_stmts.rst:1622 msgid ":pep:`492` - Coroutines with async and await syntax" msgstr "" -#: ../../reference/compound_stmts.rst:1623 msgid "" "The proposal that made coroutines a proper standalone concept in Python, and " "added supporting syntax." msgstr "" -#: ../../reference/compound_stmts.rst:1629 msgid "Type parameter lists" msgstr "" -#: ../../reference/compound_stmts.rst:1633 msgid "Support for default values was added (see :pep:`696`)." msgstr "" -#: ../../reference/compound_stmts.rst:1646 msgid "" -":ref:`Functions ` (including :ref:`coroutines `), :ref:`classes ` and :ref:`type aliases ` may contain a " -"type parameter list::" +":ref:`Functions ` (including :ref:`coroutines `), :ref:" +"`classes ` and :ref:`type aliases ` may contain a type " +"parameter list::" msgstr "" -#: ../../reference/compound_stmts.rst:1650 msgid "" "def max[T](args: list[T]) -> T:\n" " ...\n" @@ -2085,7 +1749,6 @@ msgid "" "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: ../../reference/compound_stmts.rst:1665 msgid "" "Semantically, this indicates that the function, class, or type alias is " "generic over a type variable. This information is primarily used by static " @@ -2093,7 +1756,6 @@ msgid "" "generic counterparts." msgstr "" -#: ../../reference/compound_stmts.rst:1670 msgid "" "Type parameters are declared in square brackets (``[]``) immediately after " "the name of the function, class, or type alias. The type parameters are " @@ -2105,37 +1767,30 @@ msgid "" "wraps the creation of the generic object." msgstr "" -#: ../../reference/compound_stmts.rst:1679 msgid "" -"Generic functions, classes, and type aliases have " -"a :attr:`~definition.__type_params__` attribute listing their type " -"parameters." +"Generic functions, classes, and type aliases have a :attr:`~definition." +"__type_params__` attribute listing their type parameters." msgstr "" -#: ../../reference/compound_stmts.rst:1682 msgid "Type parameters come in three kinds:" msgstr "" -#: ../../reference/compound_stmts.rst:1684 msgid "" ":data:`typing.TypeVar`, introduced by a plain name (e.g., ``T``). " "Semantically, this represents a single type to a type checker." msgstr "" -#: ../../reference/compound_stmts.rst:1686 msgid "" ":data:`typing.TypeVarTuple`, introduced by a name prefixed with a single " "asterisk (e.g., ``*Ts``). Semantically, this stands for a tuple of any " "number of types." msgstr "" -#: ../../reference/compound_stmts.rst:1689 msgid "" ":data:`typing.ParamSpec`, introduced by a name prefixed with two asterisks " "(e.g., ``**P``). Semantically, this stands for the parameters of a callable." msgstr "" -#: ../../reference/compound_stmts.rst:1692 msgid "" ":data:`typing.TypeVar` declarations can define *bounds* and *constraints* " "with a colon (``:``) followed by an expression. A single expression after " @@ -2147,7 +1802,6 @@ msgid "" "variables can only take on one of the types in the list of constraints." msgstr "" -#: ../../reference/compound_stmts.rst:1701 msgid "" "For :data:`!typing.TypeVar`\\ s declared using the type parameter list " "syntax, the bound and constraints are not evaluated when the generic object " @@ -2157,13 +1811,11 @@ msgid "" "`." msgstr "" -#: ../../reference/compound_stmts.rst:1707 msgid "" ":data:`typing.TypeVarTuple`\\ s and :data:`typing.ParamSpec`\\ s cannot have " "bounds or constraints." msgstr "" -#: ../../reference/compound_stmts.rst:1710 msgid "" "All three flavors of type parameters can also have a *default value*, which " "is used when the type parameter is not explicitly provided. This is added by " @@ -2176,13 +1828,11 @@ msgid "" "attribute is set to the special sentinel object :data:`typing.NoDefault`." msgstr "" -#: ../../reference/compound_stmts.rst:1720 msgid "" "The following example indicates the full set of allowed type parameter " "declarations::" msgstr "" -#: ../../reference/compound_stmts.rst:1722 msgid "" "def overly_generic[\n" " SimpleTypeVar,\n" @@ -2200,24 +1850,18 @@ msgid "" "): ..." msgstr "" -#: ../../reference/compound_stmts.rst:1740 msgid "Generic functions" msgstr "" -#: ../../reference/compound_stmts.rst:1742 msgid "Generic functions are declared as follows::" msgstr "" -#: ../../reference/compound_stmts.rst:1744 msgid "def func[T](arg: T): ..." msgstr "" -#: ../../reference/compound_stmts.rst:1746 -#: ../../reference/compound_stmts.rst:1806 msgid "This syntax is equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:1748 msgid "" "annotation-def TYPE_PARAMS_OF_func():\n" " T = typing.TypeVar(\"T\")\n" @@ -2227,42 +1871,36 @@ msgid "" "func = TYPE_PARAMS_OF_func()" msgstr "" -#: ../../reference/compound_stmts.rst:1755 msgid "" "Here ``annotation-def`` indicates an :ref:`annotation scope `, which is not actually bound to any name at runtime. (One other " "liberty is taken in the translation: the syntax does not go through " -"attribute access on the :mod:`typing` module, but creates an instance " -"of :data:`typing.TypeVar` directly.)" +"attribute access on the :mod:`typing` module, but creates an instance of :" +"data:`typing.TypeVar` directly.)" msgstr "" -#: ../../reference/compound_stmts.rst:1761 msgid "" "The annotations of generic functions are evaluated within the annotation " "scope used for declaring the type parameters, but the function's defaults " "and decorators are not." msgstr "" -#: ../../reference/compound_stmts.rst:1765 msgid "" "The following example illustrates the scoping rules for these cases, as well " "as for additional flavors of type parameters::" msgstr "" -#: ../../reference/compound_stmts.rst:1768 msgid "" "@decorator\n" "def func[T: int, *Ts, **P](*args: *Ts, arg: Callable[P, T] = some_default):\n" " ..." msgstr "" -#: ../../reference/compound_stmts.rst:1772 msgid "" -"Except for the :ref:`lazy evaluation ` of " -"the :class:`~typing.TypeVar` bound, this is equivalent to::" +"Except for the :ref:`lazy evaluation ` of the :class:" +"`~typing.TypeVar` bound, this is equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:1775 msgid "" "DEFAULT_OF_arg = some_default\n" "\n" @@ -2284,25 +1922,20 @@ msgid "" "func = decorator(TYPE_PARAMS_OF_func())" msgstr "" -#: ../../reference/compound_stmts.rst:1794 msgid "" "The capitalized names like ``DEFAULT_OF_arg`` are not actually bound at " "runtime." msgstr "" -#: ../../reference/compound_stmts.rst:1800 msgid "Generic classes" msgstr "" -#: ../../reference/compound_stmts.rst:1802 msgid "Generic classes are declared as follows::" msgstr "" -#: ../../reference/compound_stmts.rst:1804 msgid "class Bag[T]: ..." msgstr "" -#: ../../reference/compound_stmts.rst:1808 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2313,14 +1946,12 @@ msgid "" "Bag = TYPE_PARAMS_OF_Bag()" msgstr "" -#: ../../reference/compound_stmts.rst:1816 msgid "" -"Here again ``annotation-def`` (not a real keyword) indicates " -"an :ref:`annotation scope `, and the name " -"``TYPE_PARAMS_OF_Bag`` is not actually bound at runtime." +"Here again ``annotation-def`` (not a real keyword) indicates an :ref:" +"`annotation scope `, and the name ``TYPE_PARAMS_OF_Bag`` " +"is not actually bound at runtime." msgstr "" -#: ../../reference/compound_stmts.rst:1820 msgid "" "Generic classes implicitly inherit from :data:`typing.Generic`. The base " "classes and keyword arguments of generic classes are evaluated within the " @@ -2328,17 +1959,14 @@ msgid "" "that scope. This is illustrated by this example::" msgstr "" -#: ../../reference/compound_stmts.rst:1826 msgid "" "@decorator\n" "class Bag(Base[T], arg=T): ..." msgstr "" -#: ../../reference/compound_stmts.rst:1829 msgid "This is equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:1831 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2349,27 +1977,22 @@ msgid "" "Bag = decorator(TYPE_PARAMS_OF_Bag())" msgstr "" -#: ../../reference/compound_stmts.rst:1842 msgid "Generic type aliases" msgstr "" -#: ../../reference/compound_stmts.rst:1844 msgid "" "The :keyword:`type` statement can also be used to create a generic type " "alias::" msgstr "" -#: ../../reference/compound_stmts.rst:1846 msgid "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: ../../reference/compound_stmts.rst:1848 msgid "" "Except for the :ref:`lazy evaluation ` of the value, this " "is equivalent to::" msgstr "" -#: ../../reference/compound_stmts.rst:1851 msgid "" "annotation-def TYPE_PARAMS_OF_ListOrSet():\n" " T = typing.TypeVar(\"T\")\n" @@ -2382,53 +2005,44 @@ msgid "" "ListOrSet = TYPE_PARAMS_OF_ListOrSet()" msgstr "" -#: ../../reference/compound_stmts.rst:1860 msgid "" "Here, ``annotation-def`` (not a real keyword) indicates an :ref:`annotation " "scope `. The capitalized names like " "``TYPE_PARAMS_OF_ListOrSet`` are not actually bound at runtime." msgstr "" -#: ../../reference/compound_stmts.rst:1867 msgid "Annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1869 msgid "Annotations are now lazily evaluated by default." msgstr "" -#: ../../reference/compound_stmts.rst:1872 msgid "" "Variables and function parameters may carry :term:`annotations " "`, created by adding a colon after the name, followed by an " "expression::" msgstr "" -#: ../../reference/compound_stmts.rst:1875 msgid "" "x: annotation = 1\n" "def f(param: annotation): ..." msgstr "" -#: ../../reference/compound_stmts.rst:1878 msgid "Functions may also carry a return annotation following an arrow::" msgstr "" -#: ../../reference/compound_stmts.rst:1880 msgid "def f() -> annotation: ..." msgstr "" -#: ../../reference/compound_stmts.rst:1882 msgid "" "Annotations are conventionally used for :term:`type hints `, but " "this is not enforced by the language, and in general annotations may contain " "arbitrary expressions. The presence of annotations does not change the " "runtime semantics of the code, except if some mechanism is used that " -"introspects and uses the annotations (such as :mod:`dataclasses` " -"or :func:`functools.singledispatch`)." +"introspects and uses the annotations (such as :mod:`dataclasses` or :func:" +"`functools.singledispatch`)." msgstr "" -#: ../../reference/compound_stmts.rst:1888 msgid "" "By default, annotations are lazily evaluated in an :ref:`annotation scope " "`. This means that they are not evaluated when the code " @@ -2437,13 +2051,11 @@ msgid "" "The :mod:`annotationlib` module provides tools for evaluating annotations." msgstr "" -#: ../../reference/compound_stmts.rst:1893 msgid "" "If the :ref:`future statement ` ``from __future__ import " "annotations`` is present, all annotations are instead stored as strings::" msgstr "" -#: ../../reference/compound_stmts.rst:1896 msgid "" ">>> from __future__ import annotations\n" ">>> def f(param: annotation): ...\n" @@ -2451,513 +2063,339 @@ msgid "" "{'param': 'annotation'}" msgstr "" -#: ../../reference/compound_stmts.rst:1901 msgid "" "This future statement will be deprecated and removed in a future version of " "Python, but not before Python 3.13 reaches its end of life (see :pep:`749`). " -"When it is used, introspection tools " -"like :func:`annotationlib.get_annotations` and :func:`typing.get_type_hints` " -"are less likely to be able to resolve annotations at runtime." +"When it is used, introspection tools like :func:`annotationlib." +"get_annotations` and :func:`typing.get_type_hints` are less likely to be " +"able to resolve annotations at runtime." msgstr "" -#: ../../reference/compound_stmts.rst:1909 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../reference/compound_stmts.rst:1910 msgid "" -"The exception is propagated to the invocation stack unless there is " -"a :keyword:`finally` clause which happens to raise another exception. That " -"new exception causes the old one to be lost." +"The exception is propagated to the invocation stack unless there is a :" +"keyword:`finally` clause which happens to raise another exception. That new " +"exception causes the old one to be lost." msgstr "" -#: ../../reference/compound_stmts.rst:1914 msgid "In pattern matching, a sequence is defined as one of the following:" msgstr "" -#: ../../reference/compound_stmts.rst:1916 msgid "a class that inherits from :class:`collections.abc.Sequence`" msgstr "" -#: ../../reference/compound_stmts.rst:1917 msgid "" "a Python class that has been registered as :class:`collections.abc.Sequence`" msgstr "" -#: ../../reference/compound_stmts.rst:1918 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` bit set" msgstr "" -#: ../../reference/compound_stmts.rst:1919 -#: ../../reference/compound_stmts.rst:1938 msgid "a class that inherits from any of the above" msgstr "" -#: ../../reference/compound_stmts.rst:1921 msgid "The following standard library classes are sequences:" msgstr "" -#: ../../reference/compound_stmts.rst:1923 msgid ":class:`array.array`" msgstr "" -#: ../../reference/compound_stmts.rst:1924 msgid ":class:`collections.deque`" msgstr "" -#: ../../reference/compound_stmts.rst:1926 msgid ":class:`memoryview`" msgstr "" -#: ../../reference/compound_stmts.rst:1927 msgid ":class:`range`" msgstr "" -#: ../../reference/compound_stmts.rst:1930 msgid "" "Subject values of type ``str``, ``bytes``, and ``bytearray`` do not match " "sequence patterns." msgstr "" -#: ../../reference/compound_stmts.rst:1933 msgid "In pattern matching, a mapping is defined as one of the following:" msgstr "" -#: ../../reference/compound_stmts.rst:1935 msgid "a class that inherits from :class:`collections.abc.Mapping`" msgstr "" -#: ../../reference/compound_stmts.rst:1936 msgid "" "a Python class that has been registered as :class:`collections.abc.Mapping`" msgstr "" -#: ../../reference/compound_stmts.rst:1937 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_MAPPING` bit set" msgstr "" -#: ../../reference/compound_stmts.rst:1940 msgid "" -"The standard library classes :class:`dict` " -"and :class:`types.MappingProxyType` are mappings." +"The standard library classes :class:`dict` and :class:`types." +"MappingProxyType` are mappings." msgstr "" -#: ../../reference/compound_stmts.rst:1943 msgid "" "A string literal appearing as the first statement in the function body is " "transformed into the function's :attr:`~function.__doc__` attribute and " "therefore the function's :term:`docstring`." msgstr "" -#: ../../reference/compound_stmts.rst:1947 msgid "" "A string literal appearing as the first statement in the class body is " "transformed into the namespace's :attr:`~type.__doc__` item and therefore " "the class's :term:`docstring`." msgstr "" -#: ../../reference/compound_stmts.rst:7 msgid "compound" msgstr "" -#: ../../reference/compound_stmts.rst:7 ../../reference/compound_stmts.rst:86 -#: ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:129 -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:169 -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:393 -#: ../../reference/compound_stmts.rst:440 -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:595 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 -#: ../../reference/compound_stmts.rst:1500 -#: ../../reference/compound_stmts.rst:1534 -#: ../../reference/compound_stmts.rst:1579 msgid "statement" msgstr "" -#: ../../reference/compound_stmts.rst:21 msgid "clause" msgstr "" -#: ../../reference/compound_stmts.rst:21 msgid "suite" msgstr "" -#: ../../reference/compound_stmts.rst:21 msgid "; (semicolon)" msgstr "" -#: ../../reference/compound_stmts.rst:64 msgid "NEWLINE token" msgstr "" -#: ../../reference/compound_stmts.rst:64 msgid "DEDENT token" msgstr "" -#: ../../reference/compound_stmts.rst:64 msgid "dangling" msgstr "" -#: ../../reference/compound_stmts.rst:64 ../../reference/compound_stmts.rst:86 -#: ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:393 msgid "else" msgstr "" -#: ../../reference/compound_stmts.rst:86 ../../reference/compound_stmts.rst:595 msgid "if" msgstr "" -#: ../../reference/compound_stmts.rst:86 ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:330 -#: ../../reference/compound_stmts.rst:393 -#: ../../reference/compound_stmts.rst:411 -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:595 -#: ../../reference/compound_stmts.rst:1510 msgid "keyword" msgstr "" -#: ../../reference/compound_stmts.rst:86 msgid "elif" msgstr "" -#: ../../reference/compound_stmts.rst:86 ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:595 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1332 -#: ../../reference/compound_stmts.rst:1390 msgid ": (colon)" msgstr "" -#: ../../reference/compound_stmts.rst:86 ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:595 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "compound statement" msgstr "" -#: ../../reference/compound_stmts.rst:111 msgid "while" msgstr "" -#: ../../reference/compound_stmts.rst:111 -#: ../../reference/compound_stmts.rst:144 msgid "loop" msgstr "" -#: ../../reference/compound_stmts.rst:129 -#: ../../reference/compound_stmts.rst:169 -#: ../../reference/compound_stmts.rst:393 -#: ../../reference/compound_stmts.rst:440 msgid "break" msgstr "" -#: ../../reference/compound_stmts.rst:129 -#: ../../reference/compound_stmts.rst:169 -#: ../../reference/compound_stmts.rst:393 -#: ../../reference/compound_stmts.rst:440 msgid "continue" msgstr "" -#: ../../reference/compound_stmts.rst:144 msgid "for" msgstr "" -#: ../../reference/compound_stmts.rst:144 msgid "in" msgstr "" -#: ../../reference/compound_stmts.rst:144 msgid "target" msgstr "" -#: ../../reference/compound_stmts.rst:144 msgid "list" msgstr "" -#: ../../reference/compound_stmts.rst:144 -#: ../../reference/compound_stmts.rst:301 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "object" msgstr "" -#: ../../reference/compound_stmts.rst:144 msgid "sequence" msgstr "" -#: ../../reference/compound_stmts.rst:190 msgid "built-in function" msgstr "" -#: ../../reference/compound_stmts.rst:190 msgid "range" msgstr "" -#: ../../reference/compound_stmts.rst:207 msgid "try" msgstr "" -#: ../../reference/compound_stmts.rst:207 msgid "except" msgstr "" -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:411 msgid "finally" msgstr "" -#: ../../reference/compound_stmts.rst:207 -#: ../../reference/compound_stmts.rst:268 -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:595 msgid "as" msgstr "" -#: ../../reference/compound_stmts.rst:268 msgid "except clause" msgstr "" -#: ../../reference/compound_stmts.rst:301 msgid "module" msgstr "" -#: ../../reference/compound_stmts.rst:301 msgid "sys" msgstr "" -#: ../../reference/compound_stmts.rst:301 msgid "traceback" msgstr "" -#: ../../reference/compound_stmts.rst:330 msgid "except_star" msgstr "" -#: ../../reference/compound_stmts.rst:393 -#: ../../reference/compound_stmts.rst:440 msgid "return" msgstr "" -#: ../../reference/compound_stmts.rst:478 msgid "with" msgstr "" -#: ../../reference/compound_stmts.rst:478 msgid "with statement" msgstr "" -#: ../../reference/compound_stmts.rst:478 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid ", (comma)" msgstr "" -#: ../../reference/compound_stmts.rst:595 msgid "match" msgstr "" -#: ../../reference/compound_stmts.rst:595 msgid "case" msgstr "" -#: ../../reference/compound_stmts.rst:595 msgid "pattern matching" msgstr "" -#: ../../reference/compound_stmts.rst:595 msgid "match statement" msgstr "" -#: ../../reference/compound_stmts.rst:699 msgid "guard" msgstr "" -#: ../../reference/compound_stmts.rst:738 msgid "irrefutable case block" msgstr "" -#: ../../reference/compound_stmts.rst:738 msgid "case block" msgstr "" -#: ../../reference/compound_stmts.rst:762 msgid "! patterns" msgstr "" -#: ../../reference/compound_stmts.rst:762 msgid "AS pattern, OR pattern, capture pattern, wildcard pattern" msgstr "" -#: ../../reference/compound_stmts.rst:1193 -#: ../../reference/compound_stmts.rst:1282 msgid "parameter" msgstr "" -#: ../../reference/compound_stmts.rst:1193 -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1246 -#: ../../reference/compound_stmts.rst:1282 -#: ../../reference/compound_stmts.rst:1311 msgid "function definition" msgstr "" -#: ../../reference/compound_stmts.rst:1202 msgid "def" msgstr "" -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1332 msgid "function" msgstr "" -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "definition" msgstr "" -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "name" msgstr "" -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "binding" msgstr "" -#: ../../reference/compound_stmts.rst:1202 msgid "user-defined function" msgstr "" -#: ../../reference/compound_stmts.rst:1202 -#: ../../reference/compound_stmts.rst:1390 msgid "() (parentheses)" msgstr "" -#: ../../reference/compound_stmts.rst:1202 msgid "parameter list" msgstr "" -#: ../../reference/compound_stmts.rst:1246 -#: ../../reference/compound_stmts.rst:1440 msgid "@ (at)" msgstr "" -#: ../../reference/compound_stmts.rst:1282 msgid "default" msgstr "" -#: ../../reference/compound_stmts.rst:1282 msgid "value" msgstr "" -#: ../../reference/compound_stmts.rst:1282 msgid "argument" msgstr "" -#: ../../reference/compound_stmts.rst:1282 msgid "= (equals)" msgstr "" -#: ../../reference/compound_stmts.rst:1311 msgid "/ (slash)" msgstr "" -#: ../../reference/compound_stmts.rst:1311 msgid "* (asterisk)" msgstr "" -#: ../../reference/compound_stmts.rst:1311 msgid "**" msgstr "" -#: ../../reference/compound_stmts.rst:1332 msgid "annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1332 msgid "->" msgstr "" -#: ../../reference/compound_stmts.rst:1332 msgid "function annotations" msgstr "" -#: ../../reference/compound_stmts.rst:1349 msgid "lambda" msgstr "" -#: ../../reference/compound_stmts.rst:1349 msgid "expression" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "class" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "execution" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "frame" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "inheritance" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "docstring" msgstr "" -#: ../../reference/compound_stmts.rst:1390 -#: ../../reference/compound_stmts.rst:1440 msgid "class definition" msgstr "" -#: ../../reference/compound_stmts.rst:1390 msgid "expression list" msgstr "" -#: ../../reference/compound_stmts.rst:1500 msgid "async def" msgstr "" -#: ../../reference/compound_stmts.rst:1510 msgid "async" msgstr "" -#: ../../reference/compound_stmts.rst:1510 msgid "await" msgstr "" -#: ../../reference/compound_stmts.rst:1534 msgid "async for" msgstr "" -#: ../../reference/compound_stmts.rst:1579 msgid "async with" msgstr "" -#: ../../reference/compound_stmts.rst:1636 msgid "type parameters" msgstr "" diff --git a/reference/datamodel.po b/reference/datamodel.po index 946befc..1aeffda 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/datamodel.rst:6 msgid "Data model" msgstr "" -#: ../../reference/datamodel.rst:12 msgid "Objects, values and types" msgstr "" -#: ../../reference/datamodel.rst:18 msgid "" ":dfn:`Objects` are Python's abstraction for data. All data in a Python " "program is represented by objects or by relations between objects. (In a " @@ -38,7 +35,6 @@ msgid "" "computer\", code is also represented by objects.)" msgstr "" -#: ../../reference/datamodel.rst:35 msgid "" "Every object has an identity, a type and a value. An object's *identity* " "never changes once it has been created; you may think of it as the object's " @@ -47,11 +43,9 @@ msgid "" "identity." msgstr "" -#: ../../reference/datamodel.rst:42 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." msgstr "" -#: ../../reference/datamodel.rst:44 msgid "" "An object's type determines the operations that the object supports (e.g., " "\"does it have a length?\") and also defines the possible values for objects " @@ -60,7 +54,6 @@ msgid "" "unchangeable. [#]_" msgstr "" -#: ../../reference/datamodel.rst:50 msgid "" "The *value* of some objects can change. Objects whose value can change are " "said to be *mutable*; objects whose value is unchangeable once they are " @@ -74,7 +67,6 @@ msgid "" "lists are mutable." msgstr "" -#: ../../reference/datamodel.rst:65 msgid "" "Objects are never explicitly destroyed; however, when they become " "unreachable they may be garbage-collected. An implementation is allowed to " @@ -83,7 +75,6 @@ msgid "" "objects are collected that are still reachable." msgstr "" -#: ../../reference/datamodel.rst:73 msgid "" "CPython currently uses a reference-counting scheme with (optional) delayed " "detection of cyclically linked garbage, which collects most objects as soon " @@ -95,7 +86,6 @@ msgid "" "should always close files explicitly)." msgstr "" -#: ../../reference/datamodel.rst:82 msgid "" "Note that the use of the implementation's tracing or debugging facilities " "may keep objects alive that would normally be collectable. Also note that " @@ -103,19 +93,17 @@ msgid "" "may keep objects alive." msgstr "" -#: ../../reference/datamodel.rst:87 msgid "" "Some objects contain references to \"external\" resources such as open files " "or windows. It is understood that these resources are freed when the object " "is garbage-collected, but since garbage collection is not guaranteed to " "happen, such objects also provide an explicit way to release the external " "resource, usually a :meth:`!close` method. Programs are strongly recommended " -"to explicitly close such objects. The :keyword:`try`..." -"\\ :keyword:`finally` statement and the :keyword:`with` statement provide " -"convenient ways to do this." +"to explicitly close such objects. The :keyword:`try`...\\ :keyword:" +"`finally` statement and the :keyword:`with` statement provide convenient " +"ways to do this." msgstr "" -#: ../../reference/datamodel.rst:97 msgid "" "Some objects contain references to other objects; these are called " "*containers*. Examples of containers are tuples, lists and dictionaries. " @@ -127,7 +115,6 @@ msgid "" "to a mutable object, its value changes if that mutable object is changed." msgstr "" -#: ../../reference/datamodel.rst:106 msgid "" "Types affect almost all aspects of object behavior. Even the importance of " "object identity is affected in some sense: for immutable types, operations " @@ -144,11 +131,9 @@ msgid "" "object to both *e* and *f*.)" msgstr "" -#: ../../reference/datamodel.rst:124 msgid "The standard type hierarchy" msgstr "" -#: ../../reference/datamodel.rst:133 msgid "" "Below is a list of the types that are built into Python. Extension modules " "(written in C, Java, or other languages, depending on the implementation) " @@ -158,7 +143,6 @@ msgid "" "standard library instead." msgstr "" -#: ../../reference/datamodel.rst:144 msgid "" "Some of the type descriptions below contain a paragraph listing 'special " "attributes.' These are attributes that provide access to the implementation " @@ -166,11 +150,9 @@ msgid "" "future." msgstr "" -#: ../../reference/datamodel.rst:150 ../../reference/datamodel.rst:152 msgid "None" msgstr "" -#: ../../reference/datamodel.rst:154 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name ``None``. It is used to " @@ -178,11 +160,9 @@ msgid "" "functions that don't explicitly return anything. Its truth value is false." msgstr "" -#: ../../reference/datamodel.rst:161 ../../reference/datamodel.rst:163 msgid "NotImplemented" msgstr "" -#: ../../reference/datamodel.rst:165 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name :data:`NotImplemented`. " @@ -192,37 +172,30 @@ msgid "" "the operator.) It should not be evaluated in a boolean context." msgstr "" -#: ../../reference/datamodel.rst:172 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" -#: ../../reference/datamodel.rst:176 msgid "Evaluating :data:`NotImplemented` in a boolean context was deprecated." msgstr "" -#: ../../reference/datamodel.rst:179 msgid "" -"Evaluating :data:`NotImplemented` in a boolean context now raises " -"a :exc:`TypeError`. It previously evaluated to :const:`True` and emitted " -"a :exc:`DeprecationWarning` since Python 3.9." +"Evaluating :data:`NotImplemented` in a boolean context now raises a :exc:" +"`TypeError`. It previously evaluated to :const:`True` and emitted a :exc:" +"`DeprecationWarning` since Python 3.9." msgstr "" -#: ../../reference/datamodel.rst:186 ../../reference/datamodel.rst:187 msgid "Ellipsis" msgstr "" -#: ../../reference/datamodel.rst:191 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the literal ``...`` or the built-in name " "``Ellipsis``. Its truth value is true." msgstr "" -#: ../../reference/datamodel.rst:197 msgid ":class:`numbers.Number`" msgstr "" -#: ../../reference/datamodel.rst:201 msgid "" "These are created by numeric literals and returned as results by arithmetic " "operators and arithmetic built-in functions. Numeric objects are immutable; " @@ -231,71 +204,58 @@ msgid "" "numerical representation in computers." msgstr "" -#: ../../reference/datamodel.rst:207 msgid "" -"The string representations of the numeric classes, computed " -"by :meth:`~object.__repr__` and :meth:`~object.__str__`, have the following " +"The string representations of the numeric classes, computed by :meth:" +"`~object.__repr__` and :meth:`~object.__str__`, have the following " "properties:" msgstr "" -#: ../../reference/datamodel.rst:211 msgid "" "They are valid numeric literals which, when passed to their class " "constructor, produce an object having the value of the original numeric." msgstr "" -#: ../../reference/datamodel.rst:215 msgid "The representation is in base 10, when possible." msgstr "" -#: ../../reference/datamodel.rst:217 msgid "" "Leading zeros, possibly excepting a single zero before a decimal point, are " "not shown." msgstr "" -#: ../../reference/datamodel.rst:220 msgid "" "Trailing zeros, possibly excepting a single zero after a decimal point, are " "not shown." msgstr "" -#: ../../reference/datamodel.rst:223 msgid "A sign is shown only when the number is negative." msgstr "" -#: ../../reference/datamodel.rst:225 msgid "" "Python distinguishes between integers, floating-point numbers, and complex " "numbers:" msgstr "" -#: ../../reference/datamodel.rst:230 msgid ":class:`numbers.Integral`" msgstr "" -#: ../../reference/datamodel.rst:234 msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." msgstr "" -#: ../../reference/datamodel.rst:240 msgid "" "The rules for integer representation are intended to give the most " "meaningful interpretation of shift and mask operations involving negative " "integers." msgstr "" -#: ../../reference/datamodel.rst:243 msgid "There are two types of integers:" msgstr "" -#: ../../reference/datamodel.rst:245 msgid "Integers (:class:`int`)" msgstr "" -#: ../../reference/datamodel.rst:246 msgid "" "These represent numbers in an unlimited range, subject to available " "(virtual) memory only. For the purpose of shift and mask operations, a " @@ -304,11 +264,9 @@ msgid "" "sign bits extending to the left." msgstr "" -#: ../../reference/datamodel.rst:252 msgid "Booleans (:class:`bool`)" msgstr "" -#: ../../reference/datamodel.rst:258 msgid "" "These represent the truth values False and True. The two objects " "representing the values ``False`` and ``True`` are the only Boolean objects. " @@ -318,11 +276,9 @@ msgid "" "``\"True\"`` are returned, respectively." msgstr "" -#: ../../reference/datamodel.rst:268 msgid ":class:`numbers.Real` (:class:`float`)" msgstr "" -#: ../../reference/datamodel.rst:276 msgid "" "These represent machine-level double precision floating-point numbers. You " "are at the mercy of the underlying machine architecture (and C or Java " @@ -333,11 +289,9 @@ msgid "" "complicate the language with two kinds of floating-point numbers." msgstr "" -#: ../../reference/datamodel.rst:286 msgid ":class:`numbers.Complex` (:class:`complex`)" msgstr "" -#: ../../reference/datamodel.rst:292 msgid "" "These represent complex numbers as a pair of machine-level double precision " "floating-point numbers. The same caveats apply as for floating-point " @@ -345,11 +299,9 @@ msgid "" "retrieved through the read-only attributes ``z.real`` and ``z.imag``." msgstr "" -#: ../../reference/datamodel.rst:299 msgid "Sequences" msgstr "" -#: ../../reference/datamodel.rst:308 msgid "" "These represent finite ordered sets indexed by non-negative numbers. The " "built-in function :func:`len` returns the number of items of a sequence. " @@ -360,7 +312,6 @@ msgid "" "second to last item of sequence a with length ``n``." msgstr "" -#: ../../reference/datamodel.rst:318 msgid "" "Sequences also support slicing: ``a[i:j]`` selects all items with index *k* " "such that *i* ``<=`` *k* ``<`` *j*. When used as an expression, a slice is " @@ -368,22 +319,18 @@ msgid "" "applies to negative slice positions." msgstr "" -#: ../../reference/datamodel.rst:323 msgid "" "Some sequences also support \"extended slicing\" with a third \"step\" " "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" -#: ../../reference/datamodel.rst:327 msgid "Sequences are distinguished according to their mutability:" msgstr "" -#: ../../reference/datamodel.rst:331 msgid "Immutable sequences" msgstr "" -#: ../../reference/datamodel.rst:337 msgid "" "An object of an immutable sequence type cannot change once it is created. " "(If the object contains references to other objects, these other objects may " @@ -391,15 +338,12 @@ msgid "" "referenced by an immutable object cannot change.)" msgstr "" -#: ../../reference/datamodel.rst:342 msgid "The following types are immutable sequences:" msgstr "" -#: ../../reference/datamodel.rst:347 msgid "Strings" msgstr "Karakterláncok" -#: ../../reference/datamodel.rst:355 msgid "" "A string is a sequence of values that represent Unicode code points. All the " "code points in the range ``U+0000 - U+10FFFF`` can be represented in a " @@ -408,16 +352,14 @@ msgid "" "The built-in function :func:`ord` converts a code point from its string form " "to an integer in the range ``0 - 10FFFF``; :func:`chr` converts an integer " "in the range ``0 - 10FFFF`` to the corresponding length ``1`` string " -"object. :meth:`str.encode` can be used to convert a :class:`str` " -"to :class:`bytes` using the given text encoding, and :meth:`bytes.decode` " -"can be used to achieve the opposite." +"object. :meth:`str.encode` can be used to convert a :class:`str` to :class:" +"`bytes` using the given text encoding, and :meth:`bytes.decode` can be used " +"to achieve the opposite." msgstr "" -#: ../../reference/datamodel.rst:367 msgid "Tuples" msgstr "" -#: ../../reference/datamodel.rst:373 msgid "" "The items of a tuple are arbitrary Python objects. Tuples of two or more " "items are formed by comma-separated lists of expressions. A tuple of one " @@ -427,68 +369,56 @@ msgid "" "empty pair of parentheses." msgstr "" -#: ../../reference/datamodel.rst:380 msgid "Bytes" msgstr "Bájtok" -#: ../../reference/datamodel.rst:383 msgid "" "A bytes object is an immutable array. The items are 8-bit bytes, " "represented by integers in the range 0 <= x < 256. Bytes literals (like " "``b'abc'``) and the built-in :func:`bytes` constructor can be used to create " -"bytes objects. Also, bytes objects can be decoded to strings via " -"the :meth:`~bytes.decode` method." +"bytes objects. Also, bytes objects can be decoded to strings via the :meth:" +"`~bytes.decode` method." msgstr "" -#: ../../reference/datamodel.rst:391 msgid "Mutable sequences" msgstr "" -#: ../../reference/datamodel.rst:400 msgid "" "Mutable sequences can be changed after they are created. The subscription " -"and slicing notations can be used as the target of assignment " -"and :keyword:`del` (delete) statements." +"and slicing notations can be used as the target of assignment and :keyword:" +"`del` (delete) statements." msgstr "" -#: ../../reference/datamodel.rst:408 msgid "" "The :mod:`collections` and :mod:`array` module provide additional examples " "of mutable sequence types." msgstr "" -#: ../../reference/datamodel.rst:411 msgid "There are currently two intrinsic mutable sequence types:" msgstr "" -#: ../../reference/datamodel.rst:413 msgid "Lists" msgstr "Listák" -#: ../../reference/datamodel.rst:416 msgid "" "The items of a list are arbitrary Python objects. Lists are formed by " "placing a comma-separated list of expressions in square brackets. (Note that " "there are no special cases needed to form lists of length 0 or 1.)" msgstr "" -#: ../../reference/datamodel.rst:420 msgid "Byte Arrays" msgstr "" -#: ../../reference/datamodel.rst:423 msgid "" -"A bytearray object is a mutable array. They are created by the built-" -"in :func:`bytearray` constructor. Aside from being mutable (and hence " +"A bytearray object is a mutable array. They are created by the built-in :" +"func:`bytearray` constructor. Aside from being mutable (and hence " "unhashable), byte arrays otherwise provide the same interface and " "functionality as immutable :class:`bytes` objects." msgstr "" -#: ../../reference/datamodel.rst:430 msgid "Set types" msgstr "" -#: ../../reference/datamodel.rst:436 msgid "" "These represent unordered, finite sets of unique, immutable objects. As " "such, they cannot be indexed by any subscript. However, they can be iterated " @@ -498,7 +428,6 @@ msgid "" "union, difference, and symmetric difference." msgstr "" -#: ../../reference/datamodel.rst:443 msgid "" "For set elements, the same immutability rules apply as for dictionary keys. " "Note that numeric types obey the normal rules for numeric comparison: if two " @@ -506,38 +435,30 @@ msgid "" "contained in a set." msgstr "" -#: ../../reference/datamodel.rst:448 msgid "There are currently two intrinsic set types:" msgstr "" -#: ../../reference/datamodel.rst:451 msgid "Sets" msgstr "A halmazok (set)" -#: ../../reference/datamodel.rst:454 msgid "" "These represent a mutable set. They are created by the built-in :func:`set` " -"constructor and can be modified afterwards by several methods, such " -"as :meth:`~set.add`." +"constructor and can be modified afterwards by several methods, such as :meth:" +"`add `." msgstr "" -#: ../../reference/datamodel.rst:459 msgid "Frozen sets" msgstr "" -#: ../../reference/datamodel.rst:462 msgid "" -"These represent an immutable set. They are created by the built-" -"in :func:`frozenset` constructor. As a frozenset is immutable " -"and :term:`hashable`, it can be used again as an element of another set, or " -"as a dictionary key." +"These represent an immutable set. They are created by the built-in :func:" +"`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " +"it can be used again as an element of another set, or as a dictionary key." msgstr "" -#: ../../reference/datamodel.rst:469 msgid "Mappings" msgstr "" -#: ../../reference/datamodel.rst:476 msgid "" "These represent finite sets of objects indexed by arbitrary index sets. The " "subscript notation ``a[k]`` selects the item indexed by ``k`` from the " @@ -546,15 +467,12 @@ msgid "" "returns the number of items in a mapping." msgstr "" -#: ../../reference/datamodel.rst:482 msgid "There is currently a single intrinsic mapping type:" msgstr "" -#: ../../reference/datamodel.rst:486 msgid "Dictionaries" msgstr "Szótárak" -#: ../../reference/datamodel.rst:490 msgid "" "These represent finite sets of objects indexed by nearly arbitrary values. " "The only types of values not acceptable as keys are values containing lists " @@ -566,7 +484,6 @@ msgid "" "interchangeably to index the same dictionary entry." msgstr "" -#: ../../reference/datamodel.rst:499 msgid "" "Dictionaries preserve insertion order, meaning that keys will be produced in " "the same order they were added sequentially over the dictionary. Replacing " @@ -574,319 +491,263 @@ msgid "" "inserting it will add it to the end instead of keeping its old place." msgstr "" -#: ../../reference/datamodel.rst:504 msgid "" "Dictionaries are mutable; they can be created by the ``{}`` notation (see " "section :ref:`dict`)." msgstr "" -#: ../../reference/datamodel.rst:511 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." msgstr "" -#: ../../reference/datamodel.rst:515 msgid "" "Dictionaries did not preserve insertion order in versions of Python before " "3.6. In CPython 3.6, insertion order was preserved, but it was considered an " "implementation detail at that time rather than a language guarantee." msgstr "" -#: ../../reference/datamodel.rst:522 msgid "Callable types" msgstr "" -#: ../../reference/datamodel.rst:530 msgid "" -"These are the types to which the function call operation (see " -"section :ref:`calls`) can be applied:" +"These are the types to which the function call operation (see section :ref:" +"`calls`) can be applied:" msgstr "" -#: ../../reference/datamodel.rst:537 msgid "User-defined functions" msgstr "" -#: ../../reference/datamodel.rst:544 msgid "" "A user-defined function object is created by a function definition (see " "section :ref:`function`). It should be called with an argument list " "containing the same number of items as the function's formal parameter list." msgstr "" -#: ../../reference/datamodel.rst:550 ../../reference/datamodel.rst:1443 -#: ../../reference/datamodel.rst:1643 msgid "Special read-only attributes" msgstr "" -#: ../../reference/datamodel.rst:560 ../../reference/datamodel.rst:596 -#: ../../reference/datamodel.rst:1198 msgid "Attribute" msgstr "" -#: ../../reference/datamodel.rst:561 ../../reference/datamodel.rst:597 -#: ../../reference/datamodel.rst:1199 msgid "Meaning" msgstr "Jelentés" -#: ../../reference/datamodel.rst:564 msgid "" -"A reference to the :class:`dictionary ` that holds the " -"function's :ref:`global variables ` -- the global namespace of the " -"module in which the function was defined." +"A reference to the :class:`dictionary ` that holds the function's :ref:" +"`global variables ` -- the global namespace of the module in which " +"the function was defined." msgstr "" -#: ../../reference/datamodel.rst:569 msgid "" "``None`` or a :class:`tuple` of cells that contain bindings for the names " "specified in the :attr:`~codeobject.co_freevars` attribute of the " "function's :attr:`code object `." msgstr "" -#: ../../reference/datamodel.rst:573 msgid "" "A cell object has the attribute ``cell_contents``. This can be used to get " "the value of the cell, as well as set the value." msgstr "" -#: ../../reference/datamodel.rst:577 ../../reference/datamodel.rst:1685 msgid "Special writable attributes" msgstr "" -#: ../../reference/datamodel.rst:591 msgid "Most of these attributes check the type of the assigned value:" msgstr "" -#: ../../reference/datamodel.rst:600 msgid "The function's documentation string, or ``None`` if unavailable." msgstr "" -#: ../../reference/datamodel.rst:603 msgid "" -"The function's name. See also: :attr:`__name__ attributes " -"`." +"The function's name. See also: :attr:`__name__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:607 msgid "" "The function's :term:`qualified name`. See also: :attr:`__qualname__ " "attributes `." msgstr "" -#: ../../reference/datamodel.rst:613 msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." msgstr "" -#: ../../reference/datamodel.rst:617 msgid "" "A :class:`tuple` containing default :term:`parameter` values for those " "parameters that have defaults, or ``None`` if no parameters have a default " "value." msgstr "" -#: ../../reference/datamodel.rst:622 msgid "" "The :ref:`code object ` representing the compiled function " "body." msgstr "" -#: ../../reference/datamodel.rst:626 msgid "" -"The namespace supporting arbitrary function attributes. See " -"also: :attr:`__dict__ attributes `." +"The namespace supporting arbitrary function attributes. See also: :attr:" +"`__dict__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:630 msgid "" "A :class:`dictionary ` containing annotations of :term:`parameters " "`. The keys of the dictionary are the parameter names, and " -"``'return'`` for the return annotation, if provided. See " -"also: :attr:`object.__annotations__`." +"``'return'`` for the return annotation, if provided. See also: :attr:`object." +"__annotations__`." msgstr "" -#: ../../reference/datamodel.rst:636 ../../reference/datamodel.rst:1105 -#: ../../reference/datamodel.rst:1249 msgid "" -"Annotations are now :ref:`lazily evaluated `. " -"See :pep:`649`." +"Annotations are now :ref:`lazily evaluated `. See :pep:" +"`649`." msgstr "" -#: ../../reference/datamodel.rst:641 msgid "" "The :term:`annotate function` for this function, or ``None`` if the function " "has no annotations. See :attr:`object.__annotate__`." msgstr "" -#: ../../reference/datamodel.rst:647 msgid "" -"A :class:`dictionary ` containing defaults for keyword-" -"only :term:`parameters `." +"A :class:`dictionary ` containing defaults for keyword-only :term:" +"`parameters `." msgstr "" -#: ../../reference/datamodel.rst:651 msgid "" -"A :class:`tuple` containing the :ref:`type parameters ` of " -"a :ref:`generic function `." +"A :class:`tuple` containing the :ref:`type parameters ` of a :" +"ref:`generic function `." msgstr "" -#: ../../reference/datamodel.rst:656 msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " "attribute dot-notation is used to get and set such attributes." msgstr "" -#: ../../reference/datamodel.rst:662 msgid "" "CPython's current implementation only supports function attributes on user-" "defined functions. Function attributes on :ref:`built-in functions ` may be supported in the future." msgstr "" -#: ../../reference/datamodel.rst:667 msgid "" "Additional information about a function's definition can be retrieved from " -"its :ref:`code object ` (accessible via " -"the :attr:`~function.__code__` attribute)." +"its :ref:`code object ` (accessible via the :attr:`~function." +"__code__` attribute)." msgstr "" -#: ../../reference/datamodel.rst:675 msgid "Instance methods" msgstr "" -#: ../../reference/datamodel.rst:682 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." msgstr "" -#: ../../reference/datamodel.rst:692 ../../reference/datamodel.rst:1781 msgid "Special read-only attributes:" msgstr "" -#: ../../reference/datamodel.rst:697 msgid "" "Refers to the class instance object to which the method is :ref:`bound " "`" msgstr "" -#: ../../reference/datamodel.rst:701 msgid "Refers to the original :ref:`function object `" msgstr "" -#: ../../reference/datamodel.rst:704 msgid "" -"The method's documentation (same as :attr:`method.__func__.__doc__ " -"`). A :class:`string ` if the original function had a " +"The method's documentation (same as :attr:`method.__func__.__doc__ `). A :class:`string ` if the original function had a " "docstring, else ``None``." msgstr "" -#: ../../reference/datamodel.rst:710 msgid "" -"The name of the method (same as :attr:`method.__func__.__name__ " -"`)" +"The name of the method (same as :attr:`method.__func__.__name__ `)" msgstr "" -#: ../../reference/datamodel.rst:714 msgid "" "The name of the module the method was defined in, or ``None`` if unavailable." msgstr "" -#: ../../reference/datamodel.rst:717 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying :ref:`function object `." msgstr "" -#: ../../reference/datamodel.rst:720 msgid "" "User-defined method objects may be created when getting an attribute of a " "class (perhaps via an instance of that class), if that attribute is a user-" -"defined :ref:`function object ` or " -"a :class:`classmethod` object." +"defined :ref:`function object ` or a :class:" +"`classmethod` object." msgstr "" -#: ../../reference/datamodel.rst:727 msgid "" -"When an instance method object is created by retrieving a user-" -"defined :ref:`function object ` from a class via one of " -"its instances, its :attr:`~method.__self__` attribute is the instance, and " -"the method object is said to be *bound*. The new " -"method's :attr:`~method.__func__` attribute is the original function object." +"When an instance method object is created by retrieving a user-defined :ref:" +"`function object ` from a class via one of its " +"instances, its :attr:`~method.__self__` attribute is the instance, and the " +"method object is said to be *bound*. The new method's :attr:`~method." +"__func__` attribute is the original function object." msgstr "" -#: ../../reference/datamodel.rst:733 msgid "" -"When an instance method object is created by retrieving " -"a :class:`classmethod` object from a class or instance, " -"its :attr:`~method.__self__` attribute is the class itself, and " -"its :attr:`~method.__func__` attribute is the function object underlying the " -"class method." +"When an instance method object is created by retrieving a :class:" +"`classmethod` object from a class or instance, its :attr:`~method.__self__` " +"attribute is the class itself, and its :attr:`~method.__func__` attribute is " +"the function object underlying the class method." msgstr "" -#: ../../reference/datamodel.rst:738 msgid "" -"When an instance method object is called, the underlying function " -"(:attr:`~method.__func__`) is called, inserting the class instance " -"(:attr:`~method.__self__`) in front of the argument list. For instance, " -"when :class:`!C` is a class which contains a definition for a " -"function :meth:`!f`, and ``x`` is an instance of :class:`!C`, calling " -"``x.f(1)`` is equivalent to calling ``C.f(x, 1)``." +"When an instance method object is called, the underlying function (:attr:" +"`~method.__func__`) is called, inserting the class instance (:attr:`~method." +"__self__`) in front of the argument list. For instance, when :class:`!C` is " +"a class which contains a definition for a function :meth:`!f`, and ``x`` is " +"an instance of :class:`!C`, calling ``x.f(1)`` is equivalent to calling ``C." +"f(x, 1)``." msgstr "" -#: ../../reference/datamodel.rst:745 msgid "" "When an instance method object is derived from a :class:`classmethod` " "object, the \"class instance\" stored in :attr:`~method.__self__` will " -"actually be the class itself, so that calling either ``x.f(1)`` or " -"``C.f(1)`` is equivalent to calling ``f(C,1)`` where ``f`` is the underlying " +"actually be the class itself, so that calling either ``x.f(1)`` or ``C." +"f(1)`` is equivalent to calling ``f(C,1)`` where ``f`` is the underlying " "function." msgstr "" -#: ../../reference/datamodel.rst:750 msgid "" "It is important to note that user-defined functions which are attributes of " "a class instance are not converted to bound methods; this *only* happens " "when the function is an attribute of the class." msgstr "" -#: ../../reference/datamodel.rst:757 msgid "Generator functions" msgstr "" -#: ../../reference/datamodel.rst:763 msgid "" -"A function or method which uses the :keyword:`yield` statement (see " -"section :ref:`yield`) is called a :dfn:`generator function`. Such a " -"function, when called, always returns an :term:`iterator` object which can " -"be used to execute the body of the function: calling the " -"iterator's :meth:`iterator.__next__` method will cause the function to " -"execute until it provides a value using the :keyword:`!yield` statement. " -"When the function executes a :keyword:`return` statement or falls off the " -"end, a :exc:`StopIteration` exception is raised and the iterator will have " -"reached the end of the set of values to be returned." +"A function or method which uses the :keyword:`yield` statement (see section :" +"ref:`yield`) is called a :dfn:`generator function`. Such a function, when " +"called, always returns an :term:`iterator` object which can be used to " +"execute the body of the function: calling the iterator's :meth:`iterator." +"__next__` method will cause the function to execute until it provides a " +"value using the :keyword:`!yield` statement. When the function executes a :" +"keyword:`return` statement or falls off the end, a :exc:`StopIteration` " +"exception is raised and the iterator will have reached the end of the set of " +"values to be returned." msgstr "" -#: ../../reference/datamodel.rst:775 msgid "Coroutine functions" msgstr "" -#: ../../reference/datamodel.rst:780 msgid "" "A function or method which is defined using :keyword:`async def` is called " -"a :dfn:`coroutine function`. Such a function, when called, returns " -"a :term:`coroutine` object. It may contain :keyword:`await` expressions, as " -"well as :keyword:`async with` and :keyword:`async for` statements. See also " -"the :ref:`coroutine-objects` section." +"a :dfn:`coroutine function`. Such a function, when called, returns a :term:" +"`coroutine` object. It may contain :keyword:`await` expressions, as well " +"as :keyword:`async with` and :keyword:`async for` statements. See also the :" +"ref:`coroutine-objects` section." msgstr "" -#: ../../reference/datamodel.rst:788 msgid "Asynchronous generator functions" msgstr "" -#: ../../reference/datamodel.rst:794 msgid "" "A function or method which is defined using :keyword:`async def` and which " "uses the :keyword:`yield` statement is called a :dfn:`asynchronous generator " @@ -895,22 +756,19 @@ msgid "" "execute the body of the function." msgstr "" -#: ../../reference/datamodel.rst:800 msgid "" -"Calling the asynchronous iterator's :meth:`aiterator.__anext__ " -"` method will return an :term:`awaitable` which when " -"awaited will execute until it provides a value using the :keyword:`yield` " -"expression. When the function executes an empty :keyword:`return` statement " -"or falls off the end, a :exc:`StopAsyncIteration` exception is raised and " -"the asynchronous iterator will have reached the end of the set of values to " -"be yielded." +"Calling the asynchronous iterator's :meth:`aiterator.__anext__ ` method will return an :term:`awaitable` which when awaited will " +"execute until it provides a value using the :keyword:`yield` expression. " +"When the function executes an empty :keyword:`return` statement or falls off " +"the end, a :exc:`StopAsyncIteration` exception is raised and the " +"asynchronous iterator will have reached the end of the set of values to be " +"yielded." msgstr "" -#: ../../reference/datamodel.rst:813 msgid "Built-in functions" msgstr "" -#: ../../reference/datamodel.rst:820 msgid "" "A built-in function object is a wrapper around a C function. Examples of " "built-in functions are :func:`len` and :func:`math.sin` (:mod:`math` is a " @@ -918,95 +776,80 @@ msgid "" "determined by the C function. Special read-only attributes:" msgstr "" -#: ../../reference/datamodel.rst:825 msgid "" ":attr:`!__doc__` is the function's documentation string, or ``None`` if " "unavailable. See :attr:`function.__doc__`." msgstr "" -#: ../../reference/datamodel.rst:827 msgid "" ":attr:`!__name__` is the function's name. See :attr:`function.__name__`." msgstr "" -#: ../../reference/datamodel.rst:828 msgid ":attr:`!__self__` is set to ``None`` (but see the next item)." msgstr "" -#: ../../reference/datamodel.rst:829 msgid "" ":attr:`!__module__` is the name of the module the function was defined in or " "``None`` if unavailable. See :attr:`function.__module__`." msgstr "" -#: ../../reference/datamodel.rst:837 msgid "Built-in methods" msgstr "" -#: ../../reference/datamodel.rst:844 msgid "" "This is really a different disguise of a built-in function, this time " "containing an object passed to the C function as an implicit extra " "argument. An example of a built-in method is ``alist.append()``, assuming " -"*alist* is a list object. In this case, the special read-only " -"attribute :attr:`!__self__` is set to the object denoted by *alist*. (The " -"attribute has the same semantics as it does with :attr:`other instance " -"methods `.)" +"*alist* is a list object. In this case, the special read-only attribute :" +"attr:`!__self__` is set to the object denoted by *alist*. (The attribute has " +"the same semantics as it does with :attr:`other instance methods `.)" msgstr "" -#: ../../reference/datamodel.rst:854 msgid "Classes" msgstr "Osztályok" -#: ../../reference/datamodel.rst:856 msgid "" "Classes are callable. These objects normally act as factories for new " "instances of themselves, but variations are possible for class types that " -"override :meth:`~object.__new__`. The arguments of the call are passed " -"to :meth:`!__new__` and, in the typical case, to :meth:`~object.__init__` to " +"override :meth:`~object.__new__`. The arguments of the call are passed to :" +"meth:`!__new__` and, in the typical case, to :meth:`~object.__init__` to " "initialize the new instance." msgstr "" -#: ../../reference/datamodel.rst:864 msgid "Class Instances" msgstr "" -#: ../../reference/datamodel.rst:866 msgid "" -"Instances of arbitrary classes can be made callable by defining " -"a :meth:`~object.__call__` method in their class." +"Instances of arbitrary classes can be made callable by defining a :meth:" +"`~object.__call__` method in their class." msgstr "" -#: ../../reference/datamodel.rst:873 msgid "Modules" msgstr "Modulok" -#: ../../reference/datamodel.rst:879 msgid "" "Modules are a basic organizational unit of Python code, and are created by " -"the :ref:`import system ` as invoked either by " -"the :keyword:`import` statement, or by calling functions such " -"as :func:`importlib.import_module` and built-in :func:`__import__`. A " -"module object has a namespace implemented by a :class:`dictionary ` " -"object (this is the dictionary referenced by " -"the :attr:`~function.__globals__` attribute of functions defined in the " -"module). Attribute references are translated to lookups in this dictionary, " -"e.g., ``m.x`` is equivalent to ``m.__dict__[\"x\"]``. A module object does " -"not contain the code object used to initialize the module (since it isn't " -"needed once the initialization is done)." +"the :ref:`import system ` as invoked either by the :keyword:" +"`import` statement, or by calling functions such as :func:`importlib." +"import_module` and built-in :func:`__import__`. A module object has a " +"namespace implemented by a :class:`dictionary ` object (this is the " +"dictionary referenced by the :attr:`~function.__globals__` attribute of " +"functions defined in the module). Attribute references are translated to " +"lookups in this dictionary, e.g., ``m.x`` is equivalent to ``m." +"__dict__[\"x\"]``. A module object does not contain the code object used to " +"initialize the module (since it isn't needed once the initialization is " +"done)." msgstr "" -#: ../../reference/datamodel.rst:892 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" -#: ../../reference/datamodel.rst:911 msgid "Import-related attributes on module objects" msgstr "" -#: ../../reference/datamodel.rst:913 msgid "" "Module objects have the following attributes that relate to the :ref:`import " "system `. When a module is created using the machinery " @@ -1015,7 +858,6 @@ msgid "" "and loads the module." msgstr "" -#: ../../reference/datamodel.rst:919 msgid "" "To create a module dynamically rather than using the import system, it's " "recommended to use :func:`importlib.util.module_from_spec`, which will set " @@ -1026,7 +868,6 @@ msgid "" "approach." msgstr "" -#: ../../reference/datamodel.rst:929 msgid "" "With the exception of :attr:`~module.__name__`, it is **strongly** " "recommended that you rely on :attr:`~module.__spec__` and its attributes " @@ -1035,7 +876,6 @@ msgid "" "corresponding attribute on the module itself:" msgstr "" -#: ../../reference/datamodel.rst:935 msgid "" ">>> import typing\n" ">>> typing.__name__, typing.__spec__.name\n" @@ -1048,43 +888,36 @@ msgid "" "('keyboard_smashing', 'spelling')" msgstr "" -#: ../../reference/datamodel.rst:949 msgid "" "The name used to uniquely identify the module in the import system. For a " "directly executed module, this will be set to ``\"__main__\"``." msgstr "" -#: ../../reference/datamodel.rst:952 msgid "" "This attribute must be set to the fully qualified name of the module. It is " -"expected to match the value of :attr:`module.__spec__.name " -"`." +"expected to match the value of :attr:`module.__spec__.name `." msgstr "" -#: ../../reference/datamodel.rst:958 msgid "A record of the module's import-system-related state." msgstr "" -#: ../../reference/datamodel.rst:960 msgid "" "Set to the :class:`module spec ` that was " "used when importing the module. See :ref:`module-specs` for more details." msgstr "" -#: ../../reference/datamodel.rst:967 msgid "The :term:`package` a module belongs to." msgstr "" -#: ../../reference/datamodel.rst:969 msgid "" "If the module is top-level (that is, not a part of any specific package) " "then the attribute should be set to ``''`` (the empty string). Otherwise, it " -"should be set to the name of the module's package (which can be equal " -"to :attr:`module.__name__` if the module itself is a package). " -"See :pep:`366` for further details." +"should be set to the name of the module's package (which can be equal to :" +"attr:`module.__name__` if the module itself is a package). See :pep:`366` " +"for further details." msgstr "" -#: ../../reference/datamodel.rst:975 msgid "" "This attribute is used instead of :attr:`~module.__name__` to calculate " "explicit relative imports for main modules. It defaults to ``None`` for " @@ -1093,77 +926,65 @@ msgid "" "is set to a :class:`str`." msgstr "" -#: ../../reference/datamodel.rst:981 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.parent " -"` instead of :attr:`!" -"module.__package__`. :attr:`__package__` is now only used as a fallback " -"if :attr:`!__spec__.parent` is not set, and this fallback path is deprecated." +"` instead of :attr:`!module." +"__package__`. :attr:`__package__` is now only used as a fallback if :attr:`!" +"__spec__.parent` is not set, and this fallback path is deprecated." msgstr "" -#: ../../reference/datamodel.rst:987 ../../reference/datamodel.rst:1028 msgid "" "This attribute now defaults to ``None`` for modules created dynamically " "using the :class:`types.ModuleType` constructor. Previously the attribute " "was optional." msgstr "" -#: ../../reference/datamodel.rst:992 msgid "" -"The value of :attr:`!__package__` is expected to be the same " -"as :attr:`__spec__.parent " -"`. :attr:`__package__` is now only " -"used as a fallback during import resolution if :attr:`!__spec__.parent` is " -"not defined." +"The value of :attr:`!__package__` is expected to be the same as :attr:" +"`__spec__.parent `. :attr:" +"`__package__` is now only used as a fallback during import resolution if :" +"attr:`!__spec__.parent` is not defined." msgstr "" -#: ../../reference/datamodel.rst:998 msgid "" ":exc:`ImportWarning` is raised if an import resolution falls back to :attr:`!" -"__package__` instead of :attr:`__spec__.parent " -"`." +"__package__` instead of :attr:`__spec__.parent `." msgstr "" -#: ../../reference/datamodel.rst:1003 msgid "" "Raise :exc:`DeprecationWarning` instead of :exc:`ImportWarning` when falling " "back to :attr:`!__package__` during import resolution." msgstr "" -#: ../../reference/datamodel.rst:1007 msgid "" ":attr:`!__package__` will cease to be set or taken into consideration by the " "import system or standard library." msgstr "" -#: ../../reference/datamodel.rst:1013 msgid "" "The :term:`loader` object that the import machinery used to load the module." msgstr "" -#: ../../reference/datamodel.rst:1015 msgid "" "This attribute is mostly useful for introspection, but can be used for " "additional loader-specific functionality, for example getting data " "associated with a loader." msgstr "" -#: ../../reference/datamodel.rst:1019 msgid "" ":attr:`!__loader__` defaults to ``None`` for modules created dynamically " -"using the :class:`types.ModuleType` constructor; " -"use :func:`importlib.util.module_from_spec` instead to ensure the attribute " -"is set to a :term:`loader` object." +"using the :class:`types.ModuleType` constructor; use :func:`importlib.util." +"module_from_spec` instead to ensure the attribute is set to a :term:`loader` " +"object." msgstr "" -#: ../../reference/datamodel.rst:1024 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.loader " -"` instead of :attr:`!" -"module.__loader__`." +"` instead of :attr:`!module." +"__loader__`." msgstr "" -#: ../../reference/datamodel.rst:1033 msgid "" "Setting :attr:`!__loader__` on a module while failing to set :attr:`!" "__spec__.loader` is deprecated. In Python 3.16, :attr:`!__loader__` will " @@ -1171,7 +992,6 @@ msgid "" "standard library." msgstr "" -#: ../../reference/datamodel.rst:1041 msgid "" "A (possibly empty) :term:`sequence` of strings enumerating the locations " "where the package's submodules will be found. Non-package modules should not " @@ -1179,22 +999,18 @@ msgid "" "details." msgstr "" -#: ../../reference/datamodel.rst:1046 msgid "" -"It is **strongly** recommended that you " -"use :attr:`module.__spec__.submodule_search_locations " -"` instead " -"of :attr:`!module.__path__`." +"It is **strongly** recommended that you use :attr:`module.__spec__." +"submodule_search_locations ` instead of :attr:`!module.__path__`." msgstr "" -#: ../../reference/datamodel.rst:1053 msgid "" ":attr:`!__file__` and :attr:`!__cached__` are both optional attributes that " "may or may not be set. Both attributes should be a :class:`str` when they " "are available." msgstr "" -#: ../../reference/datamodel.rst:1057 msgid "" ":attr:`!__file__` indicates the pathname of the file from which the module " "was loaded (if loaded from a file), or the pathname of the shared library " @@ -1205,7 +1021,6 @@ msgid "" "example, a module loaded from a database)." msgstr "" -#: ../../reference/datamodel.rst:1065 msgid "" "If :attr:`!__file__` is set then the :attr:`!__cached__` attribute might " "also be set, which is the path to any compiled version of the code (for " @@ -1214,24 +1029,21 @@ msgid "" "exist (see :pep:`3147`)." msgstr "" -#: ../../reference/datamodel.rst:1071 msgid "" "Note that :attr:`!__cached__` may be set even if :attr:`!__file__` is not " -"set. However, that scenario is quite atypical. Ultimately, " -"the :term:`loader` is what makes use of the module spec provided by " -"the :term:`finder` (from which :attr:`!__file__` and :attr:`!__cached__` are " -"derived). So if a loader can load from a cached module but otherwise does " -"not load from a file, that atypical scenario may be appropriate." +"set. However, that scenario is quite atypical. Ultimately, the :term:" +"`loader` is what makes use of the module spec provided by the :term:`finder` " +"(from which :attr:`!__file__` and :attr:`!__cached__` are derived). So if a " +"loader can load from a cached module but otherwise does not load from a " +"file, that atypical scenario may be appropriate." msgstr "" -#: ../../reference/datamodel.rst:1078 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.cached " -"` instead of :attr:`!" -"module.__cached__`." +"` instead of :attr:`!module." +"__cached__`." msgstr "" -#: ../../reference/datamodel.rst:1082 msgid "" "Setting :attr:`!__cached__` on a module while failing to set :attr:`!" "__spec__.cached` is deprecated. In Python 3.15, :attr:`!__cached__` will " @@ -1239,51 +1051,42 @@ msgid "" "library." msgstr "" -#: ../../reference/datamodel.rst:1089 msgid "Other writable attributes on module objects" msgstr "" -#: ../../reference/datamodel.rst:1091 msgid "" "As well as the import-related attributes listed above, module objects also " "have the following writable attributes:" msgstr "" -#: ../../reference/datamodel.rst:1096 msgid "" -"The module's documentation string, or ``None`` if unavailable. See " -"also: :attr:`__doc__ attributes `." +"The module's documentation string, or ``None`` if unavailable. See also: :" +"attr:`__doc__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:1101 msgid "" "A dictionary containing :term:`variable annotations ` " -"collected during module body execution. For best practices on working " -"with :attr:`!__annotations__`, see :mod:`annotationlib`." +"collected during module body execution. For best practices on working with :" +"attr:`!__annotations__`, see :mod:`annotationlib`." msgstr "" -#: ../../reference/datamodel.rst:1111 msgid "" "The :term:`annotate function` for this module, or ``None`` if the module has " "no annotations. See also: :attr:`~object.__annotate__` attributes." msgstr "" -#: ../../reference/datamodel.rst:1117 msgid "Module dictionaries" msgstr "" -#: ../../reference/datamodel.rst:1119 msgid "Module objects also have the following special read-only attribute:" msgstr "" -#: ../../reference/datamodel.rst:1124 msgid "" "The module's namespace as a dictionary object. Uniquely among the attributes " "listed here, :attr:`!__dict__` cannot be accessed as a global variable from " "within a module; it can only be accessed as an attribute on module objects." msgstr "" -#: ../../reference/datamodel.rst:1130 msgid "" "Because of the way CPython clears module dictionaries, the module dictionary " "will be cleared when the module falls out of scope even if the dictionary " @@ -1291,103 +1094,88 @@ msgid "" "module around while using its dictionary directly." msgstr "" -#: ../../reference/datamodel.rst:1139 msgid "Custom classes" msgstr "" -#: ../../reference/datamodel.rst:1141 msgid "" -"Custom class types are typically created by class definitions (see " -"section :ref:`class`). A class has a namespace implemented by a dictionary " -"object. Class attribute references are translated to lookups in this " -"dictionary, e.g., ``C.x`` is translated to ``C.__dict__[\"x\"]`` (although " -"there are a number of hooks which allow for other means of locating " -"attributes). When the attribute name is not found there, the attribute " -"search continues in the base classes. This search of the base classes uses " -"the C3 method resolution order which behaves correctly even in the presence " -"of 'diamond' inheritance structures where there are multiple inheritance " -"paths leading back to a common ancestor. Additional details on the C3 MRO " -"used by Python can be found at :ref:`python_2.3_mro`." +"Custom class types are typically created by class definitions (see section :" +"ref:`class`). A class has a namespace implemented by a dictionary object. " +"Class attribute references are translated to lookups in this dictionary, e." +"g., ``C.x`` is translated to ``C.__dict__[\"x\"]`` (although there are a " +"number of hooks which allow for other means of locating attributes). When " +"the attribute name is not found there, the attribute search continues in the " +"base classes. This search of the base classes uses the C3 method resolution " +"order which behaves correctly even in the presence of 'diamond' inheritance " +"structures where there are multiple inheritance paths leading back to a " +"common ancestor. Additional details on the C3 MRO used by Python can be " +"found at :ref:`python_2.3_mro`." msgstr "" -#: ../../reference/datamodel.rst:1162 msgid "" "When a class attribute reference (for class :class:`!C`, say) would yield a " -"class method object, it is transformed into an instance method object " -"whose :attr:`~method.__self__` attribute is :class:`!C`. When it would yield " -"a :class:`staticmethod` object, it is transformed into the object wrapped by " +"class method object, it is transformed into an instance method object whose :" +"attr:`~method.__self__` attribute is :class:`!C`. When it would yield a :" +"class:`staticmethod` object, it is transformed into the object wrapped by " "the static method object. See section :ref:`descriptors` for another way in " "which attributes retrieved from a class may differ from those actually " "contained in its :attr:`~object.__dict__`." msgstr "" -#: ../../reference/datamodel.rst:1173 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." msgstr "" -#: ../../reference/datamodel.rst:1178 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." msgstr "" -#: ../../reference/datamodel.rst:1181 ../../reference/datamodel.rst:1349 msgid "Special attributes" msgstr "" -#: ../../reference/datamodel.rst:1202 msgid "" -"The class's name. See also: :attr:`__name__ attributes " -"`." +"The class's name. See also: :attr:`__name__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:1206 msgid "" "The class's :term:`qualified name`. See also: :attr:`__qualname__ attributes " "`." msgstr "" -#: ../../reference/datamodel.rst:1210 msgid "The name of the module in which the class was defined." msgstr "" -#: ../../reference/datamodel.rst:1213 msgid "" "A :class:`mapping proxy ` providing a read-only view " -"of the class's namespace. See also: :attr:`__dict__ attributes " -"`." +"of the class's namespace. See also: :attr:`__dict__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:1218 msgid "" "A :class:`tuple` containing the class's bases. In most cases, for a class " "defined as ``class X(A, B, C)``, ``X.__bases__`` will be exactly equal to " "``(A, B, C)``." msgstr "" -#: ../../reference/datamodel.rst:1223 msgid "" "The class's documentation string, or ``None`` if undefined. Not inherited by " "subclasses." msgstr "" -#: ../../reference/datamodel.rst:1227 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during class body execution. See also: :attr:`__annotations__ " "attributes `." msgstr "" -#: ../../reference/datamodel.rst:1232 msgid "" "For best practices on working with :attr:`~object.__annotations__`, please " "see :mod:`annotationlib`. Use :func:`annotationlib.get_annotations` instead " "of accessing this attribute directly." msgstr "" -#: ../../reference/datamodel.rst:1239 msgid "" "Accessing the :attr:`!__annotations__` attribute directly on a class object " "may return annotations for the wrong class, specifically in certain cases " @@ -1396,69 +1184,58 @@ msgid "" "details." msgstr "" -#: ../../reference/datamodel.rst:1245 msgid "" "This attribute does not exist on certain builtin classes. On user-defined " "classes without ``__annotations__``, it is an empty dictionary." msgstr "" -#: ../../reference/datamodel.rst:1254 msgid "" "The :term:`annotate function` for this class, or ``None`` if the class has " -"no annotations. See also: :attr:`__annotate__ attributes " -"`." +"no annotations. See also: :attr:`__annotate__ attributes `." msgstr "" -#: ../../reference/datamodel.rst:1261 msgid "" -"A :class:`tuple` containing the :ref:`type parameters ` of " -"a :ref:`generic class `." +"A :class:`tuple` containing the :ref:`type parameters ` of a :" +"ref:`generic class `." msgstr "" -#: ../../reference/datamodel.rst:1267 msgid "" "A :class:`tuple` containing names of attributes of this class which are " "assigned through ``self.X`` from any function in its body." msgstr "" -#: ../../reference/datamodel.rst:1273 msgid "" "The line number of the first line of the class definition, including " -"decorators. Setting the :attr:`__module__` attribute removes the :attr:`!" -"__firstlineno__` item from the type's dictionary." +"decorators. Setting the :attr:`~type.__module__` attribute removes the :attr:" +"`!__firstlineno__` item from the type's dictionary." msgstr "" -#: ../../reference/datamodel.rst:1281 msgid "" "The :class:`tuple` of classes that are considered when looking for base " "classes during method resolution." msgstr "" -#: ../../reference/datamodel.rst:1286 msgid "Special methods" msgstr "" -#: ../../reference/datamodel.rst:1288 msgid "" "In addition to the special attributes described above, all Python classes " "also have the following two methods available:" msgstr "" -#: ../../reference/datamodel.rst:1293 msgid "" "This method can be overridden by a metaclass to customize the method " "resolution order for its instances. It is called at class instantiation, " "and its result is stored in :attr:`~type.__mro__`." msgstr "" -#: ../../reference/datamodel.rst:1299 msgid "" "Each class keeps a list of weak references to its immediate subclasses. This " "method returns a list of all those references still alive. The list is in " "definition order. Example:" msgstr "" -#: ../../reference/datamodel.rst:1303 msgid "" ">>> class A: pass\n" ">>> class B(A): pass\n" @@ -1466,11 +1243,9 @@ msgid "" "[]" msgstr "" -#: ../../reference/datamodel.rst:1311 msgid "Class instances" msgstr "" -#: ../../reference/datamodel.rst:1319 msgid "" "A class instance is created by calling a class object (see above). A class " "instance has a namespace implemented as a dictionary which is the first " @@ -1483,49 +1258,42 @@ msgid "" "\"Classes\". See section :ref:`descriptors` for another way in which " "attributes of a class retrieved via its instances may differ from the " "objects actually stored in the class's :attr:`~object.__dict__`. If no " -"class attribute is found, and the object's class has " -"a :meth:`~object.__getattr__` method, that is called to satisfy the lookup." +"class attribute is found, and the object's class has a :meth:`~object." +"__getattr__` method, that is called to satisfy the lookup." msgstr "" -#: ../../reference/datamodel.rst:1335 msgid "" "Attribute assignments and deletions update the instance's dictionary, never " -"a class's dictionary. If the class has a :meth:`~object.__setattr__` " -"or :meth:`~object.__delattr__` method, this is called instead of updating " -"the instance dictionary directly." +"a class's dictionary. If the class has a :meth:`~object.__setattr__` or :" +"meth:`~object.__delattr__` method, this is called instead of updating the " +"instance dictionary directly." msgstr "" -#: ../../reference/datamodel.rst:1345 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." msgstr "" -#: ../../reference/datamodel.rst:1357 msgid "The class to which a class instance belongs." msgstr "" -#: ../../reference/datamodel.rst:1361 msgid "" "A dictionary or other mapping object used to store an object's (writable) " "attributes. Not all instances have a :attr:`!__dict__` attribute; see the " "section on :ref:`slots` for more details." msgstr "" -#: ../../reference/datamodel.rst:1367 msgid "I/O objects (also known as file objects)" msgstr "" -#: ../../reference/datamodel.rst:1382 msgid "" "A :term:`file object` represents an open file. Various shortcuts are " "available to create file objects: the :func:`open` built-in function, and " -"also :func:`os.popen`, :func:`os.fdopen`, and " -"the :meth:`~socket.socket.makefile` method of socket objects (and perhaps by " -"other functions or methods provided by extension modules)." +"also :func:`os.popen`, :func:`os.fdopen`, and the :meth:`~socket.socket." +"makefile` method of socket objects (and perhaps by other functions or " +"methods provided by extension modules)." msgstr "" -#: ../../reference/datamodel.rst:1388 msgid "" "The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " "to file objects corresponding to the interpreter's standard input, output " @@ -1533,181 +1301,150 @@ msgid "" "interface defined by the :class:`io.TextIOBase` abstract class." msgstr "" -#: ../../reference/datamodel.rst:1396 msgid "Internal types" msgstr "" -#: ../../reference/datamodel.rst:1402 msgid "" "A few types used internally by the interpreter are exposed to the user. " "Their definitions may change with future versions of the interpreter, but " "they are mentioned here for completeness." msgstr "" -#: ../../reference/datamodel.rst:1410 msgid "Code objects" msgstr "" -#: ../../reference/datamodel.rst:1414 msgid "" -"Code objects represent *byte-compiled* executable Python code, " -"or :term:`bytecode`. The difference between a code object and a function " -"object is that the function object contains an explicit reference to the " -"function's globals (the module in which it was defined), while a code object " -"contains no context; also the default argument values are stored in the " -"function object, not in the code object (because they represent values " -"calculated at run-time). Unlike function objects, code objects are " -"immutable and contain no references (directly or indirectly) to mutable " -"objects." +"Code objects represent *byte-compiled* executable Python code, or :term:" +"`bytecode`. The difference between a code object and a function object is " +"that the function object contains an explicit reference to the function's " +"globals (the module in which it was defined), while a code object contains " +"no context; also the default argument values are stored in the function " +"object, not in the code object (because they represent values calculated at " +"run-time). Unlike function objects, code objects are immutable and contain " +"no references (directly or indirectly) to mutable objects." msgstr "" -#: ../../reference/datamodel.rst:1448 msgid "The function name" msgstr "" -#: ../../reference/datamodel.rst:1451 msgid "The fully qualified function name" msgstr "" -#: ../../reference/datamodel.rst:1456 msgid "" "The total number of positional :term:`parameters ` (including " "positional-only parameters and parameters with default values) that the " "function has" msgstr "" -#: ../../reference/datamodel.rst:1461 msgid "" "The number of positional-only :term:`parameters ` (including " "arguments with default values) that the function has" msgstr "" -#: ../../reference/datamodel.rst:1465 msgid "" "The number of keyword-only :term:`parameters ` (including " "arguments with default values) that the function has" msgstr "" -#: ../../reference/datamodel.rst:1469 msgid "" "The number of :ref:`local variables ` used by the function " "(including parameters)" msgstr "" -#: ../../reference/datamodel.rst:1473 msgid "" "A :class:`tuple` containing the names of the local variables in the function " "(starting with the parameter names)" msgstr "" -#: ../../reference/datamodel.rst:1477 msgid "" "A :class:`tuple` containing the names of :ref:`local variables ` " "that are referenced from at least one :term:`nested scope` inside the " "function" msgstr "" -#: ../../reference/datamodel.rst:1481 msgid "" "A :class:`tuple` containing the names of :term:`free (closure) variables " "` that a :term:`nested scope` references in an outer " "scope. See also :attr:`function.__closure__`." msgstr "" -#: ../../reference/datamodel.rst:1485 msgid "Note: references to global and builtin names are *not* included." msgstr "" -#: ../../reference/datamodel.rst:1488 msgid "" "A string representing the sequence of :term:`bytecode` instructions in the " "function" msgstr "" -#: ../../reference/datamodel.rst:1492 msgid "" "A :class:`tuple` containing the literals used by the :term:`bytecode` in the " "function" msgstr "" -#: ../../reference/datamodel.rst:1496 msgid "" "A :class:`tuple` containing the names used by the :term:`bytecode` in the " "function" msgstr "" -#: ../../reference/datamodel.rst:1500 msgid "The name of the file from which the code was compiled" msgstr "" -#: ../../reference/datamodel.rst:1503 msgid "The line number of the first line of the function" msgstr "" -#: ../../reference/datamodel.rst:1506 msgid "" "A string encoding the mapping from :term:`bytecode` offsets to line numbers. " "For details, see the source code of the interpreter." msgstr "" -#: ../../reference/datamodel.rst:1509 msgid "" "This attribute of code objects is deprecated, and may be removed in Python " "3.15." msgstr "" -#: ../../reference/datamodel.rst:1514 msgid "The required stack size of the code object" msgstr "" -#: ../../reference/datamodel.rst:1517 msgid "" "An :class:`integer ` encoding a number of flags for the interpreter." msgstr "" -#: ../../reference/datamodel.rst:1522 msgid "" "The following flag bits are defined for :attr:`~codeobject.co_flags`: bit " "``0x04`` is set if the function uses the ``*arguments`` syntax to accept an " "arbitrary number of positional arguments; bit ``0x08`` is set if the " "function uses the ``**keywords`` syntax to accept arbitrary keyword " -"arguments; bit ``0x20`` is set if the function is a generator. " -"See :ref:`inspect-module-co-flags` for details on the semantics of each " -"flags that might be present." +"arguments; bit ``0x20`` is set if the function is a generator. See :ref:" +"`inspect-module-co-flags` for details on the semantics of each flags that " +"might be present." msgstr "" -#: ../../reference/datamodel.rst:1530 msgid "" "Future feature declarations (for example, ``from __future__ import " "division``) also use bits in :attr:`~codeobject.co_flags` to indicate " -"whether a code object was compiled with a particular feature enabled. " -"See :attr:`~__future__._Feature.compiler_flag`." +"whether a code object was compiled with a particular feature enabled. See :" +"attr:`~__future__._Feature.compiler_flag`." msgstr "" -#: ../../reference/datamodel.rst:1534 msgid "" "Other bits in :attr:`~codeobject.co_flags` are reserved for internal use." msgstr "" -#: ../../reference/datamodel.rst:1538 msgid "" -"If a code object represents a function and has a docstring, " -"the :data:`~inspect.CO_HAS_DOCSTRING` bit is set " -"in :attr:`~codeobject.co_flags` and the first item " -"in :attr:`~codeobject.co_consts` is the docstring of the function." +"If a code object represents a function and has a docstring, the :data:" +"`~inspect.CO_HAS_DOCSTRING` bit is set in :attr:`~codeobject.co_flags` and " +"the first item in :attr:`~codeobject.co_consts` is the docstring of the " +"function." msgstr "" -#: ../../reference/datamodel.rst:1544 msgid "Methods on code objects" msgstr "" -#: ../../reference/datamodel.rst:1548 msgid "" "Returns an iterable over the source code positions of each :term:`bytecode` " "instruction in the code object." msgstr "" -#: ../../reference/datamodel.rst:1551 msgid "" "The iterator returns :class:`tuple`\\s containing the ``(start_line, " "end_line, start_column, end_column)``. The *i-th* tuple corresponds to the " @@ -1715,37 +1452,30 @@ msgid "" "information is 0-indexed utf-8 byte offsets on the given source line." msgstr "" -#: ../../reference/datamodel.rst:1557 msgid "" "This positional information can be missing. A non-exhaustive lists of cases " "where this may happen:" msgstr "" -#: ../../reference/datamodel.rst:1560 msgid "Running the interpreter with :option:`-X` ``no_debug_ranges``." msgstr "" -#: ../../reference/datamodel.rst:1561 msgid "" "Loading a pyc file compiled while using :option:`-X` ``no_debug_ranges``." msgstr "" -#: ../../reference/datamodel.rst:1562 msgid "Position tuples corresponding to artificial instructions." msgstr "" -#: ../../reference/datamodel.rst:1563 msgid "" "Line and column numbers that can't be represented due to implementation " "specific limitations." msgstr "" -#: ../../reference/datamodel.rst:1566 msgid "" "When this occurs, some or all of the tuple elements can be :const:`None`." msgstr "" -#: ../../reference/datamodel.rst:1572 msgid "" "This feature requires storing column positions in code objects which may " "result in a small increase of disk usage of compiled Python files or " @@ -1755,155 +1485,133 @@ msgid "" "environment variable can be used." msgstr "" -#: ../../reference/datamodel.rst:1581 msgid "" -"Returns an iterator that yields information about successive ranges " -"of :term:`bytecode`\\s. Each item yielded is a ``(start, end, " -"lineno)`` :class:`tuple`:" +"Returns an iterator that yields information about successive ranges of :term:" +"`bytecode`\\s. Each item yielded is a ``(start, end, lineno)`` :class:" +"`tuple`:" msgstr "" -#: ../../reference/datamodel.rst:1585 msgid "" "``start`` (an :class:`int`) represents the offset (inclusive) of the start " "of the :term:`bytecode` range" msgstr "" -#: ../../reference/datamodel.rst:1587 msgid "" "``end`` (an :class:`int`) represents the offset (exclusive) of the end of " "the :term:`bytecode` range" msgstr "" -#: ../../reference/datamodel.rst:1589 msgid "" -"``lineno`` is an :class:`int` representing the line number of " -"the :term:`bytecode` range, or ``None`` if the bytecodes in the given range " -"have no line number" +"``lineno`` is an :class:`int` representing the line number of the :term:" +"`bytecode` range, or ``None`` if the bytecodes in the given range have no " +"line number" msgstr "" -#: ../../reference/datamodel.rst:1593 msgid "The items yielded will have the following properties:" msgstr "" -#: ../../reference/datamodel.rst:1595 msgid "The first range yielded will have a ``start`` of 0." msgstr "" -#: ../../reference/datamodel.rst:1596 msgid "" "The ``(start, end)`` ranges will be non-decreasing and consecutive. That is, " "for any pair of :class:`tuple`\\s, the ``start`` of the second will be equal " "to the ``end`` of the first." msgstr "" -#: ../../reference/datamodel.rst:1599 msgid "No range will be backwards: ``end >= start`` for all triples." msgstr "" -#: ../../reference/datamodel.rst:1600 msgid "" -"The last :class:`tuple` yielded will have ``end`` equal to the size of " -"the :term:`bytecode`." +"The last :class:`tuple` yielded will have ``end`` equal to the size of the :" +"term:`bytecode`." msgstr "" -#: ../../reference/datamodel.rst:1603 msgid "" "Zero-width ranges, where ``start == end``, are allowed. Zero-width ranges " "are used for lines that are present in the source code, but have been " "eliminated by the :term:`bytecode` compiler." msgstr "" -#: ../../reference/datamodel.rst:1611 msgid ":pep:`626` - Precise line numbers for debugging and other tools." msgstr "" -#: ../../reference/datamodel.rst:1612 msgid "The PEP that introduced the :meth:`!co_lines` method." msgstr "" -#: ../../reference/datamodel.rst:1616 msgid "" "Return a copy of the code object with new values for the specified fields." msgstr "" -#: ../../reference/datamodel.rst:1618 msgid "" "Code objects are also supported by the generic function :func:`copy.replace`." msgstr "" -#: ../../reference/datamodel.rst:1626 msgid "Frame objects" msgstr "" -#: ../../reference/datamodel.rst:1630 msgid "" "Frame objects represent execution frames. They may occur in :ref:`traceback " "objects `, and are also passed to registered trace " "functions." msgstr "" -#: ../../reference/datamodel.rst:1648 msgid "" "Points to the previous stack frame (towards the caller), or ``None`` if this " "is the bottom stack frame" msgstr "" -#: ../../reference/datamodel.rst:1652 msgid "" "The :ref:`code object ` being executed in this frame. " -"Accessing this attribute raises an :ref:`auditing event ` " -"``object.__getattr__`` with arguments ``obj`` and ``\"f_code\"``." +"Accessing this attribute raises an :ref:`auditing event ` ``object." +"__getattr__`` with arguments ``obj`` and ``\"f_code\"``." msgstr "" -#: ../../reference/datamodel.rst:1657 msgid "" "The mapping used by the frame to look up :ref:`local variables `. If " "the frame refers to an :term:`optimized scope`, this may return a write-" "through proxy object." msgstr "" -#: ../../reference/datamodel.rst:1662 msgid "Return a proxy for optimized scopes." msgstr "" -#: ../../reference/datamodel.rst:1666 msgid "" "The dictionary used by the frame to look up :ref:`global variables `" msgstr "" -#: ../../reference/datamodel.rst:1670 msgid "" "The dictionary used by the frame to look up :ref:`built-in (intrinsic) names " "`" msgstr "" -#: ../../reference/datamodel.rst:1674 msgid "" -"The \"precise instruction\" of the frame object (this is an index into " -"the :term:`bytecode` string of the :ref:`code object `)" +"The \"precise instruction\" of the frame object (this is an index into the :" +"term:`bytecode` string of the :ref:`code object `)" +msgstr "" + +msgid "" +"The :term:`generator` or :term:`coroutine` object that owns this frame, or " +"``None`` if the frame is a normal function." msgstr "" -#: ../../reference/datamodel.rst:1690 msgid "" "If not ``None``, this is a function called for various events during code " "execution (this is used by debuggers). Normally an event is triggered for " "each new source line (see :attr:`~frame.f_trace_lines`)." msgstr "" -#: ../../reference/datamodel.rst:1695 msgid "" "Set this attribute to :const:`False` to disable triggering a tracing event " "for each source line." msgstr "" -#: ../../reference/datamodel.rst:1699 msgid "" "Set this attribute to :const:`True` to allow per-opcode events to be " "requested. Note that this may lead to undefined interpreter behaviour if " "exceptions raised by the trace function escape to the function being traced." msgstr "" -#: ../../reference/datamodel.rst:1705 msgid "" "The current line number of the frame -- writing to this from within a trace " "function jumps to the given line (only for the bottom-most frame). A " @@ -1911,15 +1619,12 @@ msgid "" "this attribute." msgstr "" -#: ../../reference/datamodel.rst:1711 msgid "Frame object methods" msgstr "" -#: ../../reference/datamodel.rst:1713 msgid "Frame objects support one method:" msgstr "" -#: ../../reference/datamodel.rst:1717 msgid "" "This method clears all references to :ref:`local variables ` held by " "the frame. Also, if the frame belonged to a :term:`generator`, the " @@ -1928,79 +1633,66 @@ msgid "" "and storing its :ref:`traceback ` for later use)." msgstr "" -#: ../../reference/datamodel.rst:1723 msgid "" ":exc:`RuntimeError` is raised if the frame is currently executing or " "suspended." msgstr "" -#: ../../reference/datamodel.rst:1728 msgid "" "Attempting to clear a suspended frame raises :exc:`RuntimeError` (as has " "always been the case for executing frames)." msgstr "" -#: ../../reference/datamodel.rst:1736 msgid "Traceback objects" msgstr "" -#: ../../reference/datamodel.rst:1749 msgid "" "Traceback objects represent the stack trace of an :ref:`exception `. A traceback object is implicitly created when an exception occurs, " "and may also be explicitly created by calling :class:`types.TracebackType`." msgstr "" -#: ../../reference/datamodel.rst:1754 msgid "Traceback objects can now be explicitly instantiated from Python code." msgstr "" -#: ../../reference/datamodel.rst:1757 msgid "" "For implicitly created tracebacks, when the search for an exception handler " "unwinds the execution stack, at each unwound level a traceback object is " "inserted in front of the current traceback. When an exception handler is " -"entered, the stack trace is made available to the program. (See " -"section :ref:`try`.) It is accessible as the third item of the tuple " -"returned by :func:`sys.exc_info`, and as " -"the :attr:`~BaseException.__traceback__` attribute of the caught exception." +"entered, the stack trace is made available to the program. (See section :ref:" +"`try`.) It is accessible as the third item of the tuple returned by :func:" +"`sys.exc_info`, and as the :attr:`~BaseException.__traceback__` attribute of " +"the caught exception." msgstr "" -#: ../../reference/datamodel.rst:1766 msgid "" "When the program contains no suitable handler, the stack trace is written " "(nicely formatted) to the standard error stream; if the interpreter is " -"interactive, it is also made available to the user " -"as :data:`sys.last_traceback`." +"interactive, it is also made available to the user as :data:`sys." +"last_traceback`." msgstr "" -#: ../../reference/datamodel.rst:1771 msgid "" "For explicitly created tracebacks, it is up to the creator of the traceback " "to determine how the :attr:`~traceback.tb_next` attributes should be linked " "to form a full stack trace." msgstr "" -#: ../../reference/datamodel.rst:1786 msgid "" "Points to the execution :ref:`frame ` of the current level." msgstr "" -#: ../../reference/datamodel.rst:1789 msgid "" -"Accessing this attribute raises an :ref:`auditing event ` " -"``object.__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``." +"Accessing this attribute raises an :ref:`auditing event ` ``object." +"__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``." msgstr "" -#: ../../reference/datamodel.rst:1794 msgid "Gives the line number where the exception occurred" msgstr "" -#: ../../reference/datamodel.rst:1797 msgid "Indicates the \"precise instruction\"." msgstr "" -#: ../../reference/datamodel.rst:1799 msgid "" "The line number and last instruction in the traceback may differ from the " "line number of its :ref:`frame object ` if the exception " @@ -2008,39 +1700,32 @@ msgid "" "with a :keyword:`finally` clause." msgstr "" -#: ../../reference/datamodel.rst:1810 msgid "" "The special writable attribute :attr:`!tb_next` is the next level in the " "stack trace (towards the frame where the exception occurred), or ``None`` if " "there is no next level." msgstr "" -#: ../../reference/datamodel.rst:1814 msgid "This attribute is now writable" msgstr "" -#: ../../reference/datamodel.rst:1819 msgid "Slice objects" msgstr "" -#: ../../reference/datamodel.rst:1823 msgid "" "Slice objects are used to represent slices for :meth:`~object.__getitem__` " "methods. They are also created by the built-in :func:`slice` function." msgstr "" -#: ../../reference/datamodel.rst:1832 msgid "" -"Special read-only attributes: :attr:`~slice.start` is the lower " -"bound; :attr:`~slice.stop` is the upper bound; :attr:`~slice.step` is the " -"step value; each is ``None`` if omitted. These attributes can have any type." +"Special read-only attributes: :attr:`~slice.start` is the lower bound; :attr:" +"`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " +"each is ``None`` if omitted. These attributes can have any type." msgstr "" -#: ../../reference/datamodel.rst:1836 msgid "Slice objects support one method:" msgstr "" -#: ../../reference/datamodel.rst:1840 msgid "" "This method takes a single integer argument *length* and computes " "information about the slice that the slice object would describe if applied " @@ -2050,11 +1735,9 @@ msgid "" "a manner consistent with regular slices." msgstr "" -#: ../../reference/datamodel.rst:1849 msgid "Static method objects" msgstr "" -#: ../../reference/datamodel.rst:1851 msgid "" "Static method objects provide a way of defeating the transformation of " "function objects to method objects described above. A static method object " @@ -2065,62 +1748,54 @@ msgid "" "method objects are created by the built-in :func:`staticmethod` constructor." msgstr "" -#: ../../reference/datamodel.rst:1861 msgid "Class method objects" msgstr "" -#: ../../reference/datamodel.rst:1863 msgid "" "A class method object, like a static method object, is a wrapper around " "another object that alters the way in which that object is retrieved from " "classes and class instances. The behaviour of class method objects upon such " "retrieval is described above, under :ref:`\"instance methods\" `. Class method objects are created by the built-" -"in :func:`classmethod` constructor." +"methods>`. Class method objects are created by the built-in :func:" +"`classmethod` constructor." msgstr "" -#: ../../reference/datamodel.rst:1873 msgid "Special method names" msgstr "" -#: ../../reference/datamodel.rst:1879 msgid "" "A class can implement certain operations that are invoked by special syntax " "(such as arithmetic operations or subscripting and slicing) by defining " "methods with special names. This is Python's approach to :dfn:`operator " "overloading`, allowing classes to define their own behavior with respect to " -"language operators. For instance, if a class defines a method " -"named :meth:`~object.__getitem__`, and ``x`` is an instance of this class, " -"then ``x[i]`` is roughly equivalent to ``type(x).__getitem__(x, i)``. " -"Except where mentioned, attempts to execute an operation raise an exception " -"when no appropriate method is defined (typically :exc:`AttributeError` " -"or :exc:`TypeError`)." +"language operators. For instance, if a class defines a method named :meth:" +"`~object.__getitem__`, and ``x`` is an instance of this class, then ``x[i]`` " +"is roughly equivalent to ``type(x).__getitem__(x, i)``. Except where " +"mentioned, attempts to execute an operation raise an exception when no " +"appropriate method is defined (typically :exc:`AttributeError` or :exc:" +"`TypeError`)." msgstr "" -#: ../../reference/datamodel.rst:1890 msgid "" "Setting a special method to ``None`` indicates that the corresponding " -"operation is not available. For example, if a class " -"sets :meth:`~object.__iter__` to ``None``, the class is not iterable, so " -"calling :func:`iter` on its instances will raise a :exc:`TypeError` (without " -"falling back to :meth:`~object.__getitem__`). [#]_" +"operation is not available. For example, if a class sets :meth:`~object." +"__iter__` to ``None``, the class is not iterable, so calling :func:`iter` on " +"its instances will raise a :exc:`TypeError` (without falling back to :meth:" +"`~object.__getitem__`). [#]_" msgstr "" -#: ../../reference/datamodel.rst:1896 msgid "" "When implementing a class that emulates any built-in type, it is important " "that the emulation only be implemented to the degree that it makes sense for " "the object being modelled. For example, some sequences may work well with " -"retrieval of individual elements, but extracting a slice may not make " -"sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " -"the W3C's Document Object Model.)" +"retrieval of individual elements, but extracting a slice may not make sense. " +"(One example of this is the :ref:`NodeList ` interface " +"in the W3C's Document Object Model.)" msgstr "" -#: ../../reference/datamodel.rst:1907 msgid "Basic customization" msgstr "" -#: ../../reference/datamodel.rst:1913 msgid "" "Called to create a new instance of class *cls*. :meth:`__new__` is a static " "method (special-cased so you need not declare it as such) that takes the " @@ -2130,7 +1805,6 @@ msgid "" "new object instance (usually an instance of *cls*)." msgstr "" -#: ../../reference/datamodel.rst:1920 msgid "" "Typical implementations create a new instance of the class by invoking the " "superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` " @@ -2138,7 +1812,6 @@ msgid "" "necessary before returning it." msgstr "" -#: ../../reference/datamodel.rst:1925 msgid "" "If :meth:`__new__` is invoked during object construction and it returns an " "instance of *cls*, then the new instance’s :meth:`__init__` method will be " @@ -2147,13 +1820,11 @@ msgid "" "constructor." msgstr "" -#: ../../reference/datamodel.rst:1930 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" -#: ../../reference/datamodel.rst:1933 msgid "" ":meth:`__new__` is intended mainly to allow subclasses of immutable types " "(like int, str, or tuple) to customize instance creation. It is also " @@ -2161,7 +1832,6 @@ msgid "" "creation." msgstr "" -#: ../../reference/datamodel.rst:1942 msgid "" "Called after the instance has been created (by :meth:`__new__`), but before " "it is returned to the caller. The arguments are those passed to the class " @@ -2171,7 +1841,6 @@ msgid "" "example: ``super().__init__([args...])``." msgstr "" -#: ../../reference/datamodel.rst:1949 msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " @@ -2179,16 +1848,14 @@ msgid "" "will cause a :exc:`TypeError` to be raised at runtime." msgstr "" -#: ../../reference/datamodel.rst:1962 msgid "" "Called when the instance is about to be destroyed. This is also called a " -"finalizer or (improperly) a destructor. If a base class has " -"a :meth:`__del__` method, the derived class's :meth:`__del__` method, if " -"any, must explicitly call it to ensure proper deletion of the base class " -"part of the instance." +"finalizer or (improperly) a destructor. If a base class has a :meth:" +"`__del__` method, the derived class's :meth:`__del__` method, if any, must " +"explicitly call it to ensure proper deletion of the base class part of the " +"instance." msgstr "" -#: ../../reference/datamodel.rst:1968 msgid "" "It is possible (though not recommended!) for the :meth:`__del__` method to " "postpone destruction of the instance by creating a new reference to it. " @@ -2198,7 +1865,6 @@ msgid "" "it once." msgstr "" -#: ../../reference/datamodel.rst:1975 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits. :class:`weakref.finalize` " @@ -2206,14 +1872,12 @@ msgid "" "when an object is garbage collected." msgstr "" -#: ../../reference/datamodel.rst:1982 msgid "" "``del x`` doesn't directly call ``x.__del__()`` --- the former decrements " "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" -#: ../../reference/datamodel.rst:1987 msgid "" "It is possible for a reference cycle to prevent the reference count of an " "object from going to zero. In this case, the cycle will be later detected " @@ -2224,27 +1888,23 @@ msgid "" "caught in the traceback." msgstr "" -#: ../../reference/datamodel.rst:1997 msgid "Documentation for the :mod:`gc` module." msgstr "" -#: ../../reference/datamodel.rst:2001 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " "warning is printed to ``sys.stderr`` instead. In particular:" msgstr "" -#: ../../reference/datamodel.rst:2005 msgid "" ":meth:`__del__` can be invoked when arbitrary code is being executed, " "including from any arbitrary thread. If :meth:`__del__` needs to take a " "lock or invoke any other blocking resource, it may deadlock as the resource " -"may already be taken by the code that gets interrupted to " -"execute :meth:`__del__`." +"may already be taken by the code that gets interrupted to execute :meth:" +"`__del__`." msgstr "" -#: ../../reference/datamodel.rst:2011 msgid "" ":meth:`__del__` can be executed during interpreter shutdown. As a " "consequence, the global variables it needs to access (including other " @@ -2255,27 +1915,23 @@ msgid "" "still available at the time when the :meth:`__del__` method is called." msgstr "" -#: ../../reference/datamodel.rst:2026 msgid "" "Called by the :func:`repr` built-in function to compute the \"official\" " "string representation of an object. If at all possible, this should look " "like a valid Python expression that could be used to recreate an object with " "the same value (given an appropriate environment). If this is not possible, " "a string of the form ``<...some useful description...>`` should be returned. " -"The return value must be a string object. If a class " -"defines :meth:`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is " -"also used when an \"informal\" string representation of instances of that " -"class is required." +"The return value must be a string object. If a class defines :meth:" +"`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " +"an \"informal\" string representation of instances of that class is required." msgstr "" -#: ../../reference/datamodel.rst:2035 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous. A default implementation " "is provided by the :class:`object` class itself." msgstr "" -#: ../../reference/datamodel.rst:2047 msgid "" "Called by :func:`str(object) `, the default :meth:`__format__` " "implementation, and the built-in function :func:`print`, to compute the " @@ -2283,27 +1939,23 @@ msgid "" "return value must be a :ref:`str ` object." msgstr "" -#: ../../reference/datamodel.rst:2052 msgid "" "This method differs from :meth:`object.__repr__` in that there is no " "expectation that :meth:`__str__` return a valid Python expression: a more " "convenient or concise representation can be used." msgstr "" -#: ../../reference/datamodel.rst:2056 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." msgstr "" -#: ../../reference/datamodel.rst:2066 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " -"of an object. This should return a :class:`bytes` object. " -"The :class:`object` class itself does not provide this method." +"of an object. This should return a :class:`bytes` object. The :class:" +"`object` class itself does not provide this method." msgstr "" -#: ../../reference/datamodel.rst:2078 msgid "" "Called by the :func:`format` built-in function, and by extension, evaluation " "of :ref:`formatted string literals ` and the :meth:`str.format` " @@ -2315,43 +1967,36 @@ msgid "" "formatting option syntax." msgstr "" -#: ../../reference/datamodel.rst:2088 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" -#: ../../reference/datamodel.rst:2090 msgid "The return value must be a string object." msgstr "" -#: ../../reference/datamodel.rst:2092 msgid "" "The default implementation by the :class:`object` class should be given an " "empty *format_spec* string. It delegates to :meth:`__str__`." msgstr "" -#: ../../reference/datamodel.rst:2095 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" -#: ../../reference/datamodel.rst:2099 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(x), '')``." msgstr "" -#: ../../reference/datamodel.rst:2115 msgid "" "These are the so-called \"rich comparison\" methods. The correspondence " -"between operator symbols and method names is as follows: ``xy`` calls " -"``x.__gt__(y)``, and ``x>=y`` calls ``x.__ge__(y)``." +"between operator symbols and method names is as follows: ``xy`` calls ``x.__gt__(y)``, and ``x>=y`` " +"calls ``x.__ge__(y)``." msgstr "" -#: ../../reference/datamodel.rst:2121 msgid "" "A rich comparison method may return the singleton :data:`NotImplemented` if " "it does not implement the operation for a given pair of arguments. By " @@ -2362,95 +2007,84 @@ msgid "" "result is true or false." msgstr "" -#: ../../reference/datamodel.rst:2128 msgid "" -"By default, ``object`` implements :meth:`__eq__` by using ``is``, " -"returning :data:`NotImplemented` in the case of a false comparison: ``True " -"if x is y else NotImplemented``. For :meth:`__ne__`, by default it delegates " -"to :meth:`__eq__` and inverts the result unless it is :data:`!" -"NotImplemented`. There are no other implied relationships among the " -"comparison operators or default implementations; for example, the truth of " -"``(x.__hash__``." msgstr "" -#: ../../reference/datamodel.rst:2213 msgid "" "If a class that does not override :meth:`__eq__` wishes to suppress hash " "support, it should include ``__hash__ = None`` in the class definition. A " -"class which defines its own :meth:`__hash__` that explicitly raises " -"a :exc:`TypeError` would be incorrectly identified as hashable by an " +"class which defines its own :meth:`__hash__` that explicitly raises a :exc:" +"`TypeError` would be incorrectly identified as hashable by an " "``isinstance(obj, collections.abc.Hashable)`` call." msgstr "" -#: ../../reference/datamodel.rst:2222 msgid "" "By default, the :meth:`__hash__` values of str and bytes objects are " "\"salted\" with an unpredictable random value. Although they remain " @@ -2493,7 +2123,6 @@ msgid "" "between repeated invocations of Python." msgstr "" -#: ../../reference/datamodel.rst:2227 msgid "" "This is intended to provide protection against a denial-of-service caused by " "carefully chosen inputs that exploit the worst case performance of a dict " @@ -2501,67 +2130,58 @@ msgid "" "advisories/ocert-2011-003.html for details." msgstr "" -#: ../../reference/datamodel.rst:2232 msgid "" "Changing hash values affects the iteration order of sets. Python has never " "made guarantees about this ordering (and it typically varies between 32-bit " "and 64-bit builds)." msgstr "" -#: ../../reference/datamodel.rst:2236 msgid "See also :envvar:`PYTHONHASHSEED`." msgstr "" -#: ../../reference/datamodel.rst:2238 msgid "Hash randomization is enabled by default." msgstr "" -#: ../../reference/datamodel.rst:2246 msgid "" "Called to implement truth value testing and the built-in operation " "``bool()``; should return ``False`` or ``True``. When this method is not " "defined, :meth:`~object.__len__` is called, if it is defined, and the object " -"is considered true if its result is nonzero. If a class defines " -"neither :meth:`!__len__` nor :meth:`!__bool__` (which is true of " -"the :class:`object` class itself), all its instances are considered true." +"is considered true if its result is nonzero. If a class defines neither :" +"meth:`!__len__` nor :meth:`!__bool__` (which is true of the :class:`object` " +"class itself), all its instances are considered true." msgstr "" -#: ../../reference/datamodel.rst:2257 msgid "Customizing attribute access" msgstr "" -#: ../../reference/datamodel.rst:2259 msgid "" "The following methods can be defined to customize the meaning of attribute " "access (use of, assignment to, or deletion of ``x.name``) for class " "instances." msgstr "" -#: ../../reference/datamodel.rst:2267 msgid "" "Called when the default attribute access fails with an :exc:`AttributeError` " "(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " "*name* is not an instance attribute or an attribute in the class tree for " -"``self``; or :meth:`__get__` of a *name* property " -"raises :exc:`AttributeError`). This method should either return the " -"(computed) attribute value or raise an :exc:`AttributeError` exception. " -"The :class:`object` class itself does not provide this method." -msgstr "" - -#: ../../reference/datamodel.rst:2275 -msgid "" -"Note that if the attribute is found through the normal " -"mechanism, :meth:`__getattr__` is not called. (This is an intentional " -"asymmetry between :meth:`__getattr__` and :meth:`__setattr__`.) This is done " -"both for efficiency reasons and because otherwise :meth:`__getattr__` would " -"have no way to access other attributes of the instance. Note that at least " -"for instance variables, you can take total control by not inserting any " -"values in the instance attribute dictionary (but instead inserting them in " -"another object). See the :meth:`__getattribute__` method below for a way to " +"``self``; or :meth:`__get__` of a *name* property raises :exc:" +"`AttributeError`). This method should either return the (computed) " +"attribute value or raise an :exc:`AttributeError` exception. The :class:" +"`object` class itself does not provide this method." +msgstr "" + +msgid "" +"Note that if the attribute is found through the normal mechanism, :meth:" +"`__getattr__` is not called. (This is an intentional asymmetry between :" +"meth:`__getattr__` and :meth:`__setattr__`.) This is done both for " +"efficiency reasons and because otherwise :meth:`__getattr__` would have no " +"way to access other attributes of the instance. Note that at least for " +"instance variables, you can take total control by not inserting any values " +"in the instance attribute dictionary (but instead inserting them in another " +"object). See the :meth:`__getattribute__` method below for a way to " "actually get total control over attribute access." msgstr "" -#: ../../reference/datamodel.rst:2288 msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -2573,90 +2193,77 @@ msgid "" "example, ``object.__getattribute__(self, name)``." msgstr "" -#: ../../reference/datamodel.rst:2299 msgid "" "This method may still be bypassed when looking up special methods as the " "result of implicit invocation via language syntax or :ref:`built-in " "functions `. See :ref:`special-lookup`." msgstr "" -#: ../../reference/datamodel.rst:2304 ../../reference/datamodel.rst:2306 msgid "" "For certain sensitive attribute accesses, raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and ``name``." msgstr "" -#: ../../reference/datamodel.rst:2313 msgid "" "Called when an attribute assignment is attempted. This is called instead of " "the normal mechanism (i.e. store the value in the instance dictionary). " "*name* is the attribute name, *value* is the value to be assigned to it." msgstr "" -#: ../../reference/datamodel.rst:2317 msgid "" "If :meth:`__setattr__` wants to assign to an instance attribute, it should " -"call the base class method with the same name, for example, " -"``object.__setattr__(self, name, value)``." +"call the base class method with the same name, for example, ``object." +"__setattr__(self, name, value)``." msgstr "" -#: ../../reference/datamodel.rst:2321 ../../reference/datamodel.rst:2323 msgid "" "For certain sensitive attribute assignments, raises an :ref:`auditing event " "` ``object.__setattr__`` with arguments ``obj``, ``name``, " "``value``." msgstr "" -#: ../../reference/datamodel.rst:2330 msgid "" "Like :meth:`__setattr__` but for attribute deletion instead of assignment. " "This should only be implemented if ``del obj.name`` is meaningful for the " "object." msgstr "" -#: ../../reference/datamodel.rst:2333 ../../reference/datamodel.rst:2335 msgid "" "For certain sensitive attribute deletions, raises an :ref:`auditing event " "` ``object.__delattr__`` with arguments ``obj`` and ``name``." msgstr "" -#: ../../reference/datamodel.rst:2342 msgid "" "Called when :func:`dir` is called on the object. An iterable must be " "returned. :func:`dir` converts the returned iterable to a list and sorts it." msgstr "" -#: ../../reference/datamodel.rst:2347 msgid "Customizing module attribute access" msgstr "" -#: ../../reference/datamodel.rst:2354 msgid "" "Special names ``__getattr__`` and ``__dir__`` can be also used to customize " "access to module attributes. The ``__getattr__`` function at the module " "level should accept one argument which is the name of an attribute and " "return the computed value or raise an :exc:`AttributeError`. If an attribute " -"is not found on a module object through the normal lookup, " -"i.e. :meth:`object.__getattribute__`, then ``__getattr__`` is searched in " -"the module ``__dict__`` before raising an :exc:`AttributeError`. If found, " -"it is called with the attribute name and the result is returned." +"is not found on a module object through the normal lookup, i.e. :meth:" +"`object.__getattribute__`, then ``__getattr__`` is searched in the module " +"``__dict__`` before raising an :exc:`AttributeError`. If found, it is called " +"with the attribute name and the result is returned." msgstr "" -#: ../../reference/datamodel.rst:2363 msgid "" "The ``__dir__`` function should accept no arguments, and return an iterable " "of strings that represents the names accessible on module. If present, this " "function overrides the standard :func:`dir` search on a module." msgstr "" -#: ../../reference/datamodel.rst:2367 msgid "" "For a more fine grained customization of the module behavior (setting " "attributes, properties, etc.), one can set the ``__class__`` attribute of a " "module object to a subclass of :class:`types.ModuleType`. For example::" msgstr "" -#: ../../reference/datamodel.rst:2371 msgid "" "import sys\n" "from types import ModuleType\n" @@ -2672,7 +2279,6 @@ msgid "" "sys.modules[__name__].__class__ = VerboseModule" msgstr "" -#: ../../reference/datamodel.rst:2385 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " "lookups made using the attribute access syntax -- directly accessing the " @@ -2680,27 +2286,21 @@ msgid "" "module's globals dictionary) is unaffected." msgstr "" -#: ../../reference/datamodel.rst:2390 msgid "``__class__`` module attribute is now writable." msgstr "" -#: ../../reference/datamodel.rst:2393 msgid "``__getattr__`` and ``__dir__`` module attributes." msgstr "" -#: ../../reference/datamodel.rst:2398 msgid ":pep:`562` - Module __getattr__ and __dir__" msgstr "" -#: ../../reference/datamodel.rst:2399 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." msgstr "" -#: ../../reference/datamodel.rst:2405 msgid "Implementing Descriptors" msgstr "" -#: ../../reference/datamodel.rst:2407 msgid "" "The following methods only apply when an instance of the class containing " "the method (a so-called *descriptor* class) appears in an *owner* class (the " @@ -2711,7 +2311,6 @@ msgid "" "does not implement any of these protocols." msgstr "" -#: ../../reference/datamodel.rst:2417 msgid "" "Called to get the attribute of the owner class (class attribute access) or " "of an instance of that class (instance attribute access). The optional " @@ -2720,13 +2319,11 @@ msgid "" "accessed through the *owner*." msgstr "" -#: ../../reference/datamodel.rst:2423 msgid "" -"This method should return the computed attribute value or raise " -"an :exc:`AttributeError` exception." +"This method should return the computed attribute value or raise an :exc:" +"`AttributeError` exception." msgstr "" -#: ../../reference/datamodel.rst:2426 msgid "" ":PEP:`252` specifies that :meth:`__get__` is callable with one or two " "arguments. Python's own built-in descriptors support this specification; " @@ -2736,31 +2333,26 @@ msgid "" "not." msgstr "" -#: ../../reference/datamodel.rst:2435 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." msgstr "" -#: ../../reference/datamodel.rst:2438 msgid "" "Note, adding :meth:`__set__` or :meth:`__delete__` changes the kind of " "descriptor to a \"data descriptor\". See :ref:`descriptor-invocation` for " "more details." msgstr "" -#: ../../reference/datamodel.rst:2444 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" -#: ../../reference/datamodel.rst:2446 msgid "" "Instances of descriptors may also have the :attr:`!__objclass__` attribute " "present:" msgstr "" -#: ../../reference/datamodel.rst:2451 msgid "" "The attribute :attr:`!__objclass__` is interpreted by the :mod:`inspect` " "module as specifying the class where this object was defined (setting this " @@ -2771,20 +2363,17 @@ msgid "" "are implemented in C)." msgstr "" -#: ../../reference/datamodel.rst:2462 msgid "Invoking Descriptors" msgstr "" -#: ../../reference/datamodel.rst:2464 msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " "one whose attribute access has been overridden by methods in the descriptor " -"protocol: :meth:`~object.__get__`, :meth:`~object.__set__`, " -"and :meth:`~object.__delete__`. If any of those methods are defined for an " -"object, it is said to be a descriptor." +"protocol: :meth:`~object.__get__`, :meth:`~object.__set__`, and :meth:" +"`~object.__delete__`. If any of those methods are defined for an object, it " +"is said to be a descriptor." msgstr "" -#: ../../reference/datamodel.rst:2470 msgid "" "The default behavior for attribute access is to get, set, or delete the " "attribute from an object's dictionary. For instance, ``a.x`` has a lookup " @@ -2792,7 +2381,6 @@ msgid "" "continuing through the base classes of ``type(a)`` excluding metaclasses." msgstr "" -#: ../../reference/datamodel.rst:2475 msgid "" "However, if the looked-up value is an object defining one of the descriptor " "methods, then Python may override the default behavior and invoke the " @@ -2800,61 +2388,50 @@ msgid "" "depends on which descriptor methods were defined and how they were called." msgstr "" -#: ../../reference/datamodel.rst:2480 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" msgstr "" -#: ../../reference/datamodel.rst:2483 msgid "Direct Call" msgstr "" -#: ../../reference/datamodel.rst:2484 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." msgstr "" -#: ../../reference/datamodel.rst:2487 msgid "Instance Binding" msgstr "" -#: ../../reference/datamodel.rst:2488 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." msgstr "" -#: ../../reference/datamodel.rst:2491 msgid "Class Binding" msgstr "" -#: ../../reference/datamodel.rst:2492 msgid "" -"If binding to a class, ``A.x`` is transformed into the call: " -"``A.__dict__['x'].__get__(None, A)``." +"If binding to a class, ``A.x`` is transformed into the call: ``A." +"__dict__['x'].__get__(None, A)``." msgstr "" -#: ../../reference/datamodel.rst:2495 msgid "Super Binding" msgstr "" -#: ../../reference/datamodel.rst:2496 msgid "" "A dotted lookup such as ``super(A, a).x`` searches ``a.__class__.__mro__`` " -"for a base class ``B`` following ``A`` and then returns " -"``B.__dict__['x'].__get__(a, A)``. If not a descriptor, ``x`` is returned " -"unchanged." +"for a base class ``B`` following ``A`` and then returns ``B.__dict__['x']." +"__get__(a, A)``. If not a descriptor, ``x`` is returned unchanged." msgstr "" -#: ../../reference/datamodel.rst:2533 msgid "" "For instance bindings, the precedence of descriptor invocation depends on " "which descriptor methods are defined. A descriptor can define any " -"combination of :meth:`~object.__get__`, :meth:`~object.__set__` " -"and :meth:`~object.__delete__`. If it does not define :meth:`!__get__`, " -"then accessing the attribute will return the descriptor object itself unless " +"combination of :meth:`~object.__get__`, :meth:`~object.__set__` and :meth:" +"`~object.__delete__`. If it does not define :meth:`!__get__`, then " +"accessing the attribute will return the descriptor object itself unless " "there is a value in the object's instance dictionary. If the descriptor " "defines :meth:`!__set__` and/or :meth:`!__delete__`, it is a data " "descriptor; if it defines neither, it is a non-data descriptor. Normally, " @@ -2866,7 +2443,6 @@ msgid "" "instances." msgstr "" -#: ../../reference/datamodel.rst:2548 msgid "" "Python methods (including those decorated with :func:`@staticmethod " "` and :func:`@classmethod `) are implemented as " @@ -2875,49 +2451,41 @@ msgid "" "from other instances of the same class." msgstr "" -#: ../../reference/datamodel.rst:2554 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." msgstr "" -#: ../../reference/datamodel.rst:2561 msgid "__slots__" msgstr "" -#: ../../reference/datamodel.rst:2563 msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " "and deny the creation of :attr:`~object.__dict__` and *__weakref__* (unless " "explicitly declared in *__slots__* or available in a parent.)" msgstr "" -#: ../../reference/datamodel.rst:2567 msgid "" "The space saved over using :attr:`~object.__dict__` can be significant. " "Attribute lookup speed can be significantly improved as well." msgstr "" -#: ../../reference/datamodel.rst:2572 msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " -"for the declared variables and prevents the automatic creation " -"of :attr:`~object.__dict__` and *__weakref__* for each instance." +"for the declared variables and prevents the automatic creation of :attr:" +"`~object.__dict__` and *__weakref__* for each instance." msgstr "" -#: ../../reference/datamodel.rst:2581 msgid "Notes on using *__slots__*:" msgstr "" -#: ../../reference/datamodel.rst:2583 msgid "" -"When inheriting from a class without *__slots__*, " -"the :attr:`~object.__dict__` and *__weakref__* attribute of the instances " -"will always be accessible." +"When inheriting from a class without *__slots__*, the :attr:`~object." +"__dict__` and *__weakref__* attribute of the instances will always be " +"accessible." msgstr "" -#: ../../reference/datamodel.rst:2587 msgid "" "Without a :attr:`~object.__dict__` variable, instances cannot be assigned " "new variables not listed in the *__slots__* definition. Attempts to assign " @@ -2926,7 +2494,6 @@ msgid "" "sequence of strings in the *__slots__* declaration." msgstr "" -#: ../../reference/datamodel.rst:2594 msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support :mod:`weak references ` to its " @@ -2934,7 +2501,6 @@ msgid "" "to the sequence of strings in the *__slots__* declaration." msgstr "" -#: ../../reference/datamodel.rst:2600 msgid "" "*__slots__* are implemented at the class level by creating :ref:`descriptors " "` for each variable name. As a result, class attributes cannot " @@ -2942,7 +2508,6 @@ msgid "" "otherwise, the class attribute would overwrite the descriptor assignment." msgstr "" -#: ../../reference/datamodel.rst:2606 msgid "" "The action of a *__slots__* declaration is not limited to the class where it " "is defined. *__slots__* declared in parents are available in child classes. " @@ -2951,7 +2516,6 @@ msgid "" "only contain names of any *additional* slots)." msgstr "" -#: ../../reference/datamodel.rst:2612 msgid "" "If a class defines a slot also defined in a base class, the instance " "variable defined by the base class slot is inaccessible (except by " @@ -2960,33 +2524,28 @@ msgid "" "prevent this." msgstr "" -#: ../../reference/datamodel.rst:2617 msgid "" ":exc:`TypeError` will be raised if nonempty *__slots__* are defined for a " "class derived from a :c:member:`\"variable-length\" built-in type " -"` such as :class:`int`, :class:`bytes`, " -"and :class:`tuple`." +"` such as :class:`int`, :class:`bytes`, and :class:" +"`tuple`." msgstr "" -#: ../../reference/datamodel.rst:2622 msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgstr "" -#: ../../reference/datamodel.rst:2624 msgid "" "If a :class:`dictionary ` is used to assign *__slots__*, the " "dictionary keys will be used as the slot names. The values of the dictionary " -"can be used to provide per-attribute docstrings that will be recognised " -"by :func:`inspect.getdoc` and displayed in the output of :func:`help`." +"can be used to provide per-attribute docstrings that will be recognised by :" +"func:`inspect.getdoc` and displayed in the output of :func:`help`." msgstr "" -#: ../../reference/datamodel.rst:2629 msgid "" ":attr:`~object.__class__` assignment works only if both classes have the " "same *__slots__*." msgstr "" -#: ../../reference/datamodel.rst:2632 msgid "" ":ref:`Multiple inheritance ` with multiple slotted parent " "classes can be used, but only one parent is allowed to have attributes " @@ -2994,36 +2553,30 @@ msgid "" "raise :exc:`TypeError`." msgstr "" -#: ../../reference/datamodel.rst:2638 msgid "" "If an :term:`iterator` is used for *__slots__* then a :term:`descriptor` is " "created for each of the iterator's values. However, the *__slots__* " "attribute will be an empty iterator." msgstr "" -#: ../../reference/datamodel.rst:2646 msgid "Customizing class creation" msgstr "" -#: ../../reference/datamodel.rst:2648 msgid "" -"Whenever a class inherits from another " -"class, :meth:`~object.__init_subclass__` is called on the parent class. This " -"way, it is possible to write classes which change the behavior of " -"subclasses. This is closely related to class decorators, but where class " -"decorators only affect the specific class they're applied to, " -"``__init_subclass__`` solely applies to future subclasses of the class " -"defining the method." +"Whenever a class inherits from another class, :meth:`~object." +"__init_subclass__` is called on the parent class. This way, it is possible " +"to write classes which change the behavior of subclasses. This is closely " +"related to class decorators, but where class decorators only affect the " +"specific class they're applied to, ``__init_subclass__`` solely applies to " +"future subclasses of the class defining the method." msgstr "" -#: ../../reference/datamodel.rst:2657 msgid "" "This method is called whenever the containing class is subclassed. *cls* is " "then the new subclass. If defined as a normal instance method, this method " "is implicitly converted to a class method." msgstr "" -#: ../../reference/datamodel.rst:2661 msgid "" "Keyword arguments which are given to a new class are passed to the parent " "class's ``__init_subclass__``. For compatibility with other classes using " @@ -3031,7 +2584,6 @@ msgid "" "pass the others over to the base class, as in::" msgstr "" -#: ../../reference/datamodel.rst:2667 msgid "" "class Philosopher:\n" " def __init_subclass__(cls, /, default_name, **kwargs):\n" @@ -3042,13 +2594,11 @@ msgid "" " pass" msgstr "" -#: ../../reference/datamodel.rst:2675 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." msgstr "" -#: ../../reference/datamodel.rst:2680 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -3056,32 +2606,27 @@ msgid "" "``type(cls)``." msgstr "" -#: ../../reference/datamodel.rst:2688 msgid "" -"When a class is created, :meth:`type.__new__` scans the class variables and " +"When a class is created, :meth:`!type.__new__` scans the class variables and " "makes callbacks to those with a :meth:`~object.__set_name__` hook." msgstr "" -#: ../../reference/datamodel.rst:2693 msgid "" "Automatically called at the time the owning class *owner* is created. The " "object has been assigned to *name* in that class::" msgstr "" -#: ../../reference/datamodel.rst:2696 msgid "" "class A:\n" " x = C() # Automatically calls: x.__set_name__(A, 'x')" msgstr "" -#: ../../reference/datamodel.rst:2699 msgid "" -"If the class variable is assigned after the class is " -"created, :meth:`__set_name__` will not be called automatically. If " -"needed, :meth:`__set_name__` can be called directly::" +"If the class variable is assigned after the class is created, :meth:" +"`__set_name__` will not be called automatically. If needed, :meth:" +"`__set_name__` can be called directly::" msgstr "" -#: ../../reference/datamodel.rst:2703 msgid "" "class A:\n" " pass\n" @@ -3091,22 +2636,18 @@ msgid "" "c.__set_name__(A, 'x') # Manually invoke the hook" msgstr "" -#: ../../reference/datamodel.rst:2710 msgid "See :ref:`class-object-creation` for more details." msgstr "" -#: ../../reference/datamodel.rst:2718 msgid "Metaclasses" msgstr "" -#: ../../reference/datamodel.rst:2725 msgid "" "By default, classes are constructed using :func:`type`. The class body is " "executed in a new namespace and the class name is bound locally to the " "result of ``type(name, bases, namespace)``." msgstr "" -#: ../../reference/datamodel.rst:2729 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -3114,7 +2655,6 @@ msgid "" "both ``MyClass`` and ``MySubclass`` are instances of ``Meta``::" msgstr "" -#: ../../reference/datamodel.rst:2734 msgid "" "class Meta(type):\n" " pass\n" @@ -3126,105 +2666,84 @@ msgid "" " pass" msgstr "" -#: ../../reference/datamodel.rst:2743 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." msgstr "" -#: ../../reference/datamodel.rst:2746 msgid "When a class definition is executed, the following steps occur:" msgstr "" -#: ../../reference/datamodel.rst:2748 msgid "MRO entries are resolved;" msgstr "" -#: ../../reference/datamodel.rst:2749 msgid "the appropriate metaclass is determined;" msgstr "" -#: ../../reference/datamodel.rst:2750 msgid "the class namespace is prepared;" msgstr "" -#: ../../reference/datamodel.rst:2751 msgid "the class body is executed;" msgstr "" -#: ../../reference/datamodel.rst:2752 msgid "the class object is created." msgstr "" -#: ../../reference/datamodel.rst:2756 msgid "Resolving MRO entries" msgstr "" -#: ../../reference/datamodel.rst:2760 msgid "" -"If a base that appears in a class definition is not an instance " -"of :class:`type`, then an :meth:`!__mro_entries__` method is searched on the " -"base. If an :meth:`!__mro_entries__` method is found, the base is " -"substituted with the result of a call to :meth:`!__mro_entries__` when " -"creating the class. The method is called with the original bases tuple " -"passed to the *bases* parameter, and must return a tuple of classes that " -"will be used instead of the base. The returned tuple may be empty: in these " -"cases, the original base is ignored." +"If a base that appears in a class definition is not an instance of :class:" +"`type`, then an :meth:`!__mro_entries__` method is searched on the base. If " +"an :meth:`!__mro_entries__` method is found, the base is substituted with " +"the result of a call to :meth:`!__mro_entries__` when creating the class. " +"The method is called with the original bases tuple passed to the *bases* " +"parameter, and must return a tuple of classes that will be used instead of " +"the base. The returned tuple may be empty: in these cases, the original base " +"is ignored." msgstr "" -#: ../../reference/datamodel.rst:2771 msgid ":func:`types.resolve_bases`" msgstr "" -#: ../../reference/datamodel.rst:2772 msgid "Dynamically resolve bases that are not instances of :class:`type`." msgstr "" -#: ../../reference/datamodel.rst:2774 msgid ":func:`types.get_original_bases`" msgstr "" -#: ../../reference/datamodel.rst:2775 msgid "" -"Retrieve a class's \"original bases\" prior to modifications " -"by :meth:`~object.__mro_entries__`." +"Retrieve a class's \"original bases\" prior to modifications by :meth:" +"`~object.__mro_entries__`." msgstr "" -#: ../../reference/datamodel.rst:2778 msgid ":pep:`560`" msgstr "" -#: ../../reference/datamodel.rst:2779 msgid "Core support for typing module and generic types." msgstr "" -#: ../../reference/datamodel.rst:2783 msgid "Determining the appropriate metaclass" msgstr "" -#: ../../reference/datamodel.rst:2787 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" -#: ../../reference/datamodel.rst:2789 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" -#: ../../reference/datamodel.rst:2790 msgid "" -"if an explicit metaclass is given and it is *not* an instance " -"of :func:`type`, then it is used directly as the metaclass;" +"if an explicit metaclass is given and it is *not* an instance of :func:" +"`type`, then it is used directly as the metaclass;" msgstr "" -#: ../../reference/datamodel.rst:2792 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used." msgstr "" -#: ../../reference/datamodel.rst:2795 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -3233,11 +2752,9 @@ msgid "" "that criterion, then the class definition will fail with ``TypeError``." msgstr "" -#: ../../reference/datamodel.rst:2805 msgid "Preparing the class namespace" msgstr "" -#: ../../reference/datamodel.rst:2810 msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " @@ -3249,25 +2766,20 @@ msgid "" "copied into a new ``dict``." msgstr "" -#: ../../reference/datamodel.rst:2819 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." msgstr "" -#: ../../reference/datamodel.rst:2824 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: ../../reference/datamodel.rst:2825 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -#: ../../reference/datamodel.rst:2829 msgid "Executing the class body" msgstr "" -#: ../../reference/datamodel.rst:2834 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -3276,7 +2788,6 @@ msgid "" "inside a function." msgstr "" -#: ../../reference/datamodel.rst:2840 msgid "" "However, even when the class definition occurs inside the function, methods " "defined inside the class still cannot see names defined at the class scope. " @@ -3285,11 +2796,9 @@ msgid "" "reference described in the next section." msgstr "" -#: ../../reference/datamodel.rst:2849 msgid "Creating the class object" msgstr "" -#: ../../reference/datamodel.rst:2856 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " @@ -3297,18 +2806,16 @@ msgid "" "to ``__prepare__``)." msgstr "" -#: ../../reference/datamodel.rst:2861 msgid "" "This class object is the one that will be referenced by the zero-argument " "form of :func:`super`. ``__class__`` is an implicit closure reference " "created by the compiler if any methods in a class body refer to either " -"``__class__`` or ``super``. This allows the zero argument form " -"of :func:`super` to correctly identify the class being defined based on " -"lexical scoping, while the class or instance that was used to make the " -"current call is identified based on the first argument passed to the method." +"``__class__`` or ``super``. This allows the zero argument form of :func:" +"`super` to correctly identify the class being defined based on lexical " +"scoping, while the class or instance that was used to make the current call " +"is identified based on the first argument passed to the method." msgstr "" -#: ../../reference/datamodel.rst:2871 msgid "" "In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " "as a ``__classcell__`` entry in the class namespace. If present, this must " @@ -3317,39 +2824,33 @@ msgid "" "in Python 3.8." msgstr "" -#: ../../reference/datamodel.rst:2877 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customization " "steps are invoked after creating the class object:" msgstr "" -#: ../../reference/datamodel.rst:2881 msgid "" "The ``type.__new__`` method collects all of the attributes in the class " "namespace that define a :meth:`~object.__set_name__` method;" msgstr "" -#: ../../reference/datamodel.rst:2883 msgid "" "Those ``__set_name__`` methods are called with the class being defined and " "the assigned name of that particular attribute;" msgstr "" -#: ../../reference/datamodel.rst:2885 msgid "" "The :meth:`~object.__init_subclass__` hook is called on the immediate parent " "of the new class in its method resolution order." msgstr "" -#: ../../reference/datamodel.rst:2888 msgid "" "After the class object is created, it is passed to the class decorators " "included in the class definition (if any) and the resulting object is bound " "in the local namespace as the defined class." msgstr "" -#: ../../reference/datamodel.rst:2892 msgid "" "When a new class is created by ``type.__new__``, the object provided as the " "namespace parameter is copied to a new ordered mapping and the original " @@ -3357,19 +2858,15 @@ msgid "" "becomes the :attr:`~type.__dict__` attribute of the class object." msgstr "" -#: ../../reference/datamodel.rst:2899 msgid ":pep:`3135` - New super" msgstr "" -#: ../../reference/datamodel.rst:2900 msgid "Describes the implicit ``__class__`` closure reference" msgstr "" -#: ../../reference/datamodel.rst:2904 msgid "Uses for metaclasses" msgstr "" -#: ../../reference/datamodel.rst:2906 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -3377,17 +2874,14 @@ msgid "" "locking/synchronization." msgstr "" -#: ../../reference/datamodel.rst:2913 msgid "Customizing instance and subclass checks" msgstr "" -#: ../../reference/datamodel.rst:2915 msgid "" -"The following methods are used to override the default behavior of " -"the :func:`isinstance` and :func:`issubclass` built-in functions." +"The following methods are used to override the default behavior of the :func:" +"`isinstance` and :func:`issubclass` built-in functions." msgstr "" -#: ../../reference/datamodel.rst:2918 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " @@ -3395,21 +2889,18 @@ msgid "" "other ABCs." msgstr "" -#: ../../reference/datamodel.rst:2925 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " "class)``." msgstr "" -#: ../../reference/datamodel.rst:2932 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " "class)``." msgstr "" -#: ../../reference/datamodel.rst:2937 msgid "" "Note that these methods are looked up on the type (metaclass) of a class. " "They cannot be defined as class methods in the actual class. This is " @@ -3417,24 +2908,20 @@ msgid "" "only in this case the instance is itself a class." msgstr "" -#: ../../reference/datamodel.rst:2944 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr "" -#: ../../reference/datamodel.rst:2945 msgid "" -"Includes the specification for customizing :func:`isinstance` " -"and :func:`issubclass` behavior through :meth:`~type.__instancecheck__` " -"and :meth:`~type.__subclasscheck__`, with motivation for this functionality " -"in the context of adding Abstract Base Classes (see the :mod:`abc` module) " -"to the language." +"Includes the specification for customizing :func:`isinstance` and :func:" +"`issubclass` behavior through :meth:`~type.__instancecheck__` and :meth:" +"`~type.__subclasscheck__`, with motivation for this functionality in the " +"context of adding Abstract Base Classes (see the :mod:`abc` module) to the " +"language." msgstr "" -#: ../../reference/datamodel.rst:2953 msgid "Emulating generic types" msgstr "" -#: ../../reference/datamodel.rst:2955 msgid "" "When using :term:`type annotations`, it is often useful to " "*parameterize* a :term:`generic type` using Python's square-brackets " @@ -3442,75 +2929,61 @@ msgid "" "a :class:`list` in which all the elements are of type :class:`int`." msgstr "" -#: ../../reference/datamodel.rst:2962 msgid ":pep:`484` - Type Hints" msgstr "" -#: ../../reference/datamodel.rst:2963 msgid "Introducing Python's framework for type annotations" msgstr "" -#: ../../reference/datamodel.rst:2965 msgid ":ref:`Generic Alias Types`" msgstr "" -#: ../../reference/datamodel.rst:2966 msgid "Documentation for objects representing parameterized generic classes" msgstr "" -#: ../../reference/datamodel.rst:2968 msgid "" -":ref:`Generics`, :ref:`user-defined generics` " -"and :class:`typing.Generic`" +":ref:`Generics`, :ref:`user-defined generics` and :" +"class:`typing.Generic`" msgstr "" -#: ../../reference/datamodel.rst:2969 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." msgstr "" -#: ../../reference/datamodel.rst:2972 msgid "" "A class can *generally* only be parameterized if it defines the special " "class method ``__class_getitem__()``." msgstr "" -#: ../../reference/datamodel.rst:2977 msgid "" "Return an object representing the specialization of a generic class by type " "arguments found in *key*." msgstr "" -#: ../../reference/datamodel.rst:2980 msgid "" "When defined on a class, ``__class_getitem__()`` is automatically a class " -"method. As such, there is no need for it to be decorated " -"with :func:`@classmethod` when it is defined." +"method. As such, there is no need for it to be decorated with :func:" +"`@classmethod` when it is defined." msgstr "" -#: ../../reference/datamodel.rst:2986 msgid "The purpose of *__class_getitem__*" msgstr "" -#: ../../reference/datamodel.rst:2988 msgid "" "The purpose of :meth:`~object.__class_getitem__` is to allow runtime " "parameterization of standard-library generic classes in order to more easily " "apply :term:`type hints` to these classes." msgstr "" -#: ../../reference/datamodel.rst:2992 msgid "" "To implement custom generic classes that can be parameterized at runtime and " "understood by static type-checkers, users should either inherit from a " -"standard library class that already " -"implements :meth:`~object.__class_getitem__`, or inherit " -"from :class:`typing.Generic`, which has its own implementation of " -"``__class_getitem__()``." +"standard library class that already implements :meth:`~object." +"__class_getitem__`, or inherit from :class:`typing.Generic`, which has its " +"own implementation of ``__class_getitem__()``." msgstr "" -#: ../../reference/datamodel.rst:2998 msgid "" "Custom implementations of :meth:`~object.__class_getitem__` on classes " "defined outside of the standard library may not be understood by third-party " @@ -3518,11 +2991,9 @@ msgid "" "purposes other than type hinting is discouraged." msgstr "" -#: ../../reference/datamodel.rst:3008 msgid "*__class_getitem__* versus *__getitem__*" msgstr "" -#: ../../reference/datamodel.rst:3010 msgid "" "Usually, the :ref:`subscription` of an object using square " "brackets will call the :meth:`~object.__getitem__` instance method defined " @@ -3532,15 +3003,12 @@ msgid "" "genericalias>` object if it is properly defined." msgstr "" -#: ../../reference/datamodel.rst:3017 msgid "" "Presented with the :term:`expression` ``obj[x]``, the Python interpreter " -"follows something like the following process to decide " -"whether :meth:`~object.__getitem__` or :meth:`~object.__class_getitem__` " -"should be called::" +"follows something like the following process to decide whether :meth:" +"`~object.__getitem__` or :meth:`~object.__class_getitem__` should be called::" msgstr "" -#: ../../reference/datamodel.rst:3022 msgid "" "from inspect import isclass\n" "\n" @@ -3566,17 +3034,15 @@ msgid "" " )" msgstr "" -#: ../../reference/datamodel.rst:3045 msgid "" "In Python, all classes are themselves instances of other classes. The class " "of a class is known as that class's :term:`metaclass`, and most classes have " -"the :class:`type` class as their metaclass. :class:`type` does not " -"define :meth:`~object.__getitem__`, meaning that expressions such as " -"``list[int]``, ``dict[str, float]`` and ``tuple[str, bytes]`` all result " -"in :meth:`~object.__class_getitem__` being called::" +"the :class:`type` class as their metaclass. :class:`type` does not define :" +"meth:`~object.__getitem__`, meaning that expressions such as ``list[int]``, " +"``dict[str, float]`` and ``tuple[str, bytes]`` all result in :meth:`~object." +"__class_getitem__` being called::" msgstr "" -#: ../../reference/datamodel.rst:3052 msgid "" ">>> # list has class \"type\" as its metaclass, like most classes:\n" ">>> type(list)\n" @@ -3591,15 +3057,12 @@ msgid "" "" msgstr "" -#: ../../reference/datamodel.rst:3064 msgid "" -"However, if a class has a custom metaclass that " -"defines :meth:`~object.__getitem__`, subscribing the class may result in " -"different behaviour. An example of this can be found in the :mod:`enum` " -"module::" +"However, if a class has a custom metaclass that defines :meth:`~object." +"__getitem__`, subscribing the class may result in different behaviour. An " +"example of this can be found in the :mod:`enum` module::" msgstr "" -#: ../../reference/datamodel.rst:3068 msgid "" ">>> from enum import Enum\n" ">>> class Menu(Enum):\n" @@ -3619,70 +3082,71 @@ msgid "" "" msgstr "" -#: ../../reference/datamodel.rst:3087 msgid ":pep:`560` - Core Support for typing module and generic types" msgstr "" -#: ../../reference/datamodel.rst:3088 msgid "" -"Introducing :meth:`~object.__class_getitem__`, and outlining when " -"a :ref:`subscription` results in ``__class_getitem__()`` " -"being called instead of :meth:`~object.__getitem__`" +"Introducing :meth:`~object.__class_getitem__`, and outlining when a :ref:" +"`subscription` results in ``__class_getitem__()`` being " +"called instead of :meth:`~object.__getitem__`" msgstr "" -#: ../../reference/datamodel.rst:3096 msgid "Emulating callable objects" msgstr "" -#: ../../reference/datamodel.rst:3103 msgid "" "Called when the instance is \"called\" as a function; if this method is " "defined, ``x(arg1, arg2, ...)`` roughly translates to ``type(x).__call__(x, " "arg1, ...)``. The :class:`object` class itself does not provide this method." msgstr "" -#: ../../reference/datamodel.rst:3111 msgid "Emulating container types" msgstr "" -#: ../../reference/datamodel.rst:3113 msgid "" "The following methods can be defined to implement container objects. None of " "them are provided by the :class:`object` class itself. Containers usually " -"are :term:`sequences ` (such as :class:`lists ` " -"or :class:`tuples `) or :term:`mappings ` " -"(like :term:`dictionaries `), but can represent other containers " -"as well. The first set of methods is used either to emulate a sequence or " -"to emulate a mapping; the difference is that for a sequence, the allowable " -"keys should be the integers *k* for which ``0 <= k < N`` where *N* is the " -"length of the sequence, or :class:`slice` objects, which define a range of " -"items. It is also recommended that mappings provide the methods :meth:`!" -"keys`, :meth:`!values`, :meth:`!items`, :meth:`!get`, :meth:`!" -"clear`, :meth:`!setdefault`, :meth:`!pop`, :meth:`!popitem`, :meth:`!copy`, " -"and :meth:`!update` behaving similar to those for Python's " -"standard :class:`dictionary ` objects. The :mod:`collections.abc` " -"module provides a :class:`~collections.abc.MutableMapping` :term:`abstract " -"base class` to help create those methods from a base set " -"of :meth:`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__delitem__`, " -"and :meth:`!keys`. Mutable sequences should provide methods :meth:`!" -"append`, :meth:`!count`, :meth:`!index`, :meth:`!extend`, :meth:`!" -"insert`, :meth:`!pop`, :meth:`!remove`, :meth:`!reverse` and :meth:`!sort`, " -"like Python standard :class:`list` objects. Finally, sequence types should " -"implement addition (meaning concatenation) and multiplication (meaning " -"repetition) by defining the " -"methods :meth:`~object.__add__`, :meth:`~object.__radd__`, :meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` " -"and :meth:`~object.__imul__` described below; they should not define other " -"numerical operators. It is recommended that both mappings and sequences " -"implement the :meth:`~object.__contains__` method to allow efficient use of " -"the ``in`` operator; for mappings, ``in`` should search the mapping's keys; " -"for sequences, it should search through the values. It is further " -"recommended that both mappings and sequences implement " -"the :meth:`~object.__iter__` method to allow efficient iteration through the " -"container; for mappings, :meth:`!__iter__` should iterate through the " -"object's keys; for sequences, it should iterate through the values." -msgstr "" - -#: ../../reference/datamodel.rst:3155 +"are :term:`sequences ` (such as :class:`lists ` or :class:" +"`tuples `) or :term:`mappings ` (like :term:`dictionaries " +"`), but can represent other containers as well. The first set " +"of methods is used either to emulate a sequence or to emulate a mapping; the " +"difference is that for a sequence, the allowable keys should be the integers " +"*k* for which ``0 <= k < N`` where *N* is the length of the sequence, or :" +"class:`slice` objects, which define a range of items. It is also " +"recommended that mappings provide the methods :meth:`!keys`, :meth:`!" +"values`, :meth:`!items`, :meth:`!get`, :meth:`!clear`, :meth:`!setdefault`, :" +"meth:`!pop`, :meth:`!popitem`, :meth:`!copy`, and :meth:`!update` behaving " +"similar to those for Python's standard :class:`dictionary ` objects. " +"The :mod:`collections.abc` module provides a :class:`~collections.abc." +"MutableMapping` :term:`abstract base class` to help create those methods " +"from a base set of :meth:`~object.__getitem__`, :meth:`~object." +"__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`." +msgstr "" + +msgid "" +"Mutable sequences should provide methods :meth:`~sequence.append`, :meth:" +"`~sequence.clear`, :meth:`~sequence.count`, :meth:`~sequence.extend`, :meth:" +"`~sequence.index`, :meth:`~sequence.insert`, :meth:`~sequence.pop`, :meth:" +"`~sequence.remove`, and :meth:`~sequence.reverse`, like Python standard :" +"class:`list` objects. Finally, sequence types should implement addition " +"(meaning concatenation) and multiplication (meaning repetition) by defining " +"the methods :meth:`~object.__add__`, :meth:`~object.__radd__`, :meth:" +"`~object.__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` and :" +"meth:`~object.__imul__` described below; they should not define other " +"numerical operators." +msgstr "" + +msgid "" +"It is recommended that both mappings and sequences implement the :meth:" +"`~object.__contains__` method to allow efficient use of the ``in`` operator; " +"for mappings, ``in`` should search the mapping's keys; for sequences, it " +"should search through the values. It is further recommended that both " +"mappings and sequences implement the :meth:`~object.__iter__` method to " +"allow efficient iteration through the container; for mappings, :meth:`!" +"__iter__` should iterate through the object's keys; for sequences, it should " +"iterate through the values." +msgstr "" + msgid "" "Called to implement the built-in function :func:`len`. Should return the " "length of the object, an integer ``>=`` 0. Also, an object that doesn't " @@ -3690,97 +3154,82 @@ msgid "" "returns zero is considered to be false in a Boolean context." msgstr "" -#: ../../reference/datamodel.rst:3162 msgid "" "In CPython, the length is required to be at most :data:`sys.maxsize`. If the " -"length is larger than :data:`!sys.maxsize` some features (such " -"as :func:`len`) may raise :exc:`OverflowError`. To prevent raising :exc:`!" -"OverflowError` by truth value testing, an object must define " -"a :meth:`~object.__bool__` method." +"length is larger than :data:`!sys.maxsize` some features (such as :func:" +"`len`) may raise :exc:`OverflowError`. To prevent raising :exc:`!" +"OverflowError` by truth value testing, an object must define a :meth:" +"`~object.__bool__` method." msgstr "" -#: ../../reference/datamodel.rst:3171 msgid "" "Called to implement :func:`operator.length_hint`. Should return an estimated " "length for the object (which may be greater or less than the actual length). " -"The length must be an integer ``>=`` 0. The return value may also " -"be :data:`NotImplemented`, which is treated the same as if the " -"``__length_hint__`` method didn't exist at all. This method is purely an " -"optimization and is never required for correctness." +"The length must be an integer ``>=`` 0. The return value may also be :data:" +"`NotImplemented`, which is treated the same as if the ``__length_hint__`` " +"method didn't exist at all. This method is purely an optimization and is " +"never required for correctness." msgstr "" -#: ../../reference/datamodel.rst:3185 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" -#: ../../reference/datamodel.rst:3187 msgid "a[1:2] = b" msgstr "" -#: ../../reference/datamodel.rst:3189 msgid "is translated to ::" msgstr "" -#: ../../reference/datamodel.rst:3191 msgid "a[slice(1, 2, None)] = b" msgstr "" -#: ../../reference/datamodel.rst:3193 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "" -#: ../../reference/datamodel.rst:3198 msgid "" "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, " -"the accepted keys should be integers. Optionally, they may " -"support :class:`slice` objects as well. Negative index support is also " -"optional. If *key* is of an inappropriate type, :exc:`TypeError` may be " -"raised; if *key* is a value outside the set of indexes for the sequence " -"(after any special interpretation of negative values), :exc:`IndexError` " -"should be raised. For :term:`mapping` types, if *key* is missing (not in the " -"container), :exc:`KeyError` should be raised." +"the accepted keys should be integers. Optionally, they may support :class:" +"`slice` objects as well. Negative index support is also optional. If *key* " +"is of an inappropriate type, :exc:`TypeError` may be raised; if *key* is a " +"value outside the set of indexes for the sequence (after any special " +"interpretation of negative values), :exc:`IndexError` should be raised. For :" +"term:`mapping` types, if *key* is missing (not in the container), :exc:" +"`KeyError` should be raised." msgstr "" -#: ../../reference/datamodel.rst:3210 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." msgstr "" -#: ../../reference/datamodel.rst:3215 msgid "" -"When :ref:`subscripting` a *class*, the special class " -"method :meth:`~object.__class_getitem__` may be called instead of " -"``__getitem__()``. See :ref:`classgetitem-versus-getitem` for more details." +"When :ref:`subscripting` a *class*, the special class method :" +"meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. " +"See :ref:`classgetitem-versus-getitem` for more details." msgstr "" -#: ../../reference/datamodel.rst:3223 msgid "" -"Called to implement assignment to ``self[key]``. Same note as " -"for :meth:`__getitem__`. This should only be implemented for mappings if " -"the objects support changes to the values for keys, or if new keys can be " -"added, or for sequences if elements can be replaced. The same exceptions " -"should be raised for improper *key* values as for the :meth:`__getitem__` " -"method." +"Called to implement assignment to ``self[key]``. Same note as for :meth:" +"`__getitem__`. This should only be implemented for mappings if the objects " +"support changes to the values for keys, or if new keys can be added, or for " +"sequences if elements can be replaced. The same exceptions should be raised " +"for improper *key* values as for the :meth:`__getitem__` method." msgstr "" -#: ../../reference/datamodel.rst:3232 msgid "" -"Called to implement deletion of ``self[key]``. Same note as " -"for :meth:`__getitem__`. This should only be implemented for mappings if " -"the objects support removal of keys, or for sequences if elements can be " -"removed from the sequence. The same exceptions should be raised for " -"improper *key* values as for the :meth:`__getitem__` method." +"Called to implement deletion of ``self[key]``. Same note as for :meth:" +"`__getitem__`. This should only be implemented for mappings if the objects " +"support removal of keys, or for sequences if elements can be removed from " +"the sequence. The same exceptions should be raised for improper *key* " +"values as for the :meth:`__getitem__` method." msgstr "" -#: ../../reference/datamodel.rst:3241 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." msgstr "" -#: ../../reference/datamodel.rst:3247 msgid "" "This method is called when an :term:`iterator` is required for a container. " "This method should return a new iterator object that can iterate over all " @@ -3788,23 +3237,20 @@ msgid "" "of the container." msgstr "" -#: ../../reference/datamodel.rst:3255 msgid "" "Called (if present) by the :func:`reversed` built-in to implement reverse " "iteration. It should return a new iterator object that iterates over all " "the objects in the container in reverse order." msgstr "" -#: ../../reference/datamodel.rst:3259 msgid "" "If the :meth:`__reversed__` method is not provided, the :func:`reversed` " -"built-in will fall back to using the sequence protocol (:meth:`__len__` " -"and :meth:`__getitem__`). Objects that support the sequence protocol should " -"only provide :meth:`__reversed__` if they can provide an implementation that " -"is more efficient than the one provided by :func:`reversed`." +"built-in will fall back to using the sequence protocol (:meth:`__len__` and :" +"meth:`__getitem__`). Objects that support the sequence protocol should only " +"provide :meth:`__reversed__` if they can provide an implementation that is " +"more efficient than the one provided by :func:`reversed`." msgstr "" -#: ../../reference/datamodel.rst:3266 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a container. However, container " @@ -3812,14 +3258,12 @@ msgid "" "implementation, which also does not require the object be iterable." msgstr "" -#: ../../reference/datamodel.rst:3273 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " "the keys of the mapping rather than the values or the key-item pairs." msgstr "" -#: ../../reference/datamodel.rst:3277 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -3827,11 +3271,9 @@ msgid "" "reference `." msgstr "" -#: ../../reference/datamodel.rst:3286 msgid "Emulating numeric types" msgstr "" -#: ../../reference/datamodel.rst:3288 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -3839,56 +3281,49 @@ msgid "" "should be left undefined." msgstr "" -#: ../../reference/datamodel.rst:3314 msgid "" "These methods are called to implement the binary arithmetic operations " -"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, " -"``%``, :func:`divmod`, :func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|" -"``). For instance, to evaluate the expression ``x + y``, where *x* is an " -"instance of a class that has an :meth:`__add__` method, ``type(x).__add__(x, " -"y)`` is called. The :meth:`__divmod__` method should be the equivalent to " -"using :meth:`__floordiv__` and :meth:`__mod__`; it should not be related " -"to :meth:`__truediv__`. Note that :meth:`__pow__` should be defined to " -"accept an optional third argument if the three-argument version of the built-" -"in :func:`pow` function is to be supported." +"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" +"`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). For instance, to " +"evaluate the expression ``x + y``, where *x* is an instance of a class that " +"has an :meth:`__add__` method, ``type(x).__add__(x, y)`` is called. The :" +"meth:`__divmod__` method should be the equivalent to using :meth:" +"`__floordiv__` and :meth:`__mod__`; it should not be related to :meth:" +"`__truediv__`. Note that :meth:`__pow__` should be defined to accept an " +"optional third argument if the three-argument version of the built-in :func:" +"`pow` function is to be supported." msgstr "" -#: ../../reference/datamodel.rst:3325 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return :data:`NotImplemented`." msgstr "" -#: ../../reference/datamodel.rst:3348 msgid "" "These methods are called to implement the binary arithmetic operations " -"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, " -"``%``, :func:`divmod`, :func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|" -"``) with reflected (swapped) operands. These functions are only called if " -"the operands are of different types, when the left operand does not support " -"the corresponding operation [#]_, or the right operand's class is derived " -"from the left operand's class. [#]_ For instance, to evaluate the expression " -"``x - y``, where *y* is an instance of a class that has an :meth:`__rsub__` " -"method, ``type(y).__rsub__(y, x)`` is called if ``type(x).__sub__(x, y)`` " -"returns :data:`NotImplemented` or ``type(y)`` is a subclass of ``type(x)``. " -"[#]_" +"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" +"`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) with reflected (swapped) " +"operands. These functions are only called if the operands are of different " +"types, when the left operand does not support the corresponding operation " +"[#]_, or the right operand's class is derived from the left operand's class. " +"[#]_ For instance, to evaluate the expression ``x - y``, where *y* is an " +"instance of a class that has an :meth:`__rsub__` method, ``type(y)." +"__rsub__(y, x)`` is called if ``type(x).__sub__(x, y)`` returns :data:" +"`NotImplemented` or ``type(y)`` is a subclass of ``type(x)``. [#]_" msgstr "" -#: ../../reference/datamodel.rst:3359 msgid "" "Note that :meth:`__rpow__` should be defined to accept an optional third " "argument if the three-argument version of the built-in :func:`pow` function " "is to be supported." msgstr "" -#: ../../reference/datamodel.rst:3365 msgid "" "Three-argument :func:`pow` now try calling :meth:`~object.__rpow__` if " "necessary. Previously it was only called in two-argument :func:`!pow` and " "the binary power operator." msgstr "" -#: ../../reference/datamodel.rst:3371 msgid "" "If the right operand's type is a subclass of the left operand's type and " "that subclass provides a different implementation of the reflected method " @@ -3897,7 +3332,6 @@ msgid "" "ancestors' operations." msgstr "" -#: ../../reference/datamodel.rst:3391 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -3906,28 +3340,25 @@ msgid "" "but does not have to be, *self*). If a specific method is not defined, or " "if that method returns :data:`NotImplemented`, the augmented assignment " "falls back to the normal methods. For instance, if *x* is an instance of a " -"class with an :meth:`__iadd__` method, ``x += y`` is equivalent to ``x = " -"x.__iadd__(y)`` . If :meth:`__iadd__` does not exist, or if " -"``x.__iadd__(y)`` returns :data:`!NotImplemented`, ``x.__add__(y)`` and " -"``y.__radd__(x)`` are considered, as with the evaluation of ``x + y``. In " -"certain situations, augmented assignment can result in unexpected errors " -"(see :ref:`faq-augmented-assignment-tuple-error`), but this behavior is in " -"fact part of the data model." +"class with an :meth:`__iadd__` method, ``x += y`` is equivalent to ``x = x." +"__iadd__(y)`` . If :meth:`__iadd__` does not exist, or if ``x.__iadd__(y)`` " +"returns :data:`!NotImplemented`, ``x.__add__(y)`` and ``y.__radd__(x)`` are " +"considered, as with the evaluation of ``x + y``. In certain situations, " +"augmented assignment can result in unexpected errors (see :ref:`faq-" +"augmented-assignment-tuple-error`), but this behavior is in fact part of the " +"data model." msgstr "" -#: ../../reference/datamodel.rst:3414 msgid "" -"Called to implement the unary arithmetic operations (``-``, " -"``+``, :func:`abs` and ``~``)." +"Called to implement the unary arithmetic operations (``-``, ``+``, :func:" +"`abs` and ``~``)." msgstr "" -#: ../../reference/datamodel.rst:3427 msgid "" -"Called to implement the built-in functions :func:`complex`, :func:`int` " -"and :func:`float`. Should return a value of the appropriate type." +"Called to implement the built-in functions :func:`complex`, :func:`int` and :" +"func:`float`. Should return a value of the appropriate type." msgstr "" -#: ../../reference/datamodel.rst:3434 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -3936,14 +3367,12 @@ msgid "" "integer type. Must return an integer." msgstr "" -#: ../../reference/datamodel.rst:3440 msgid "" "If :meth:`__int__`, :meth:`__float__` and :meth:`__complex__` are not " "defined then corresponding built-in functions :func:`int`, :func:`float` " "and :func:`complex` fall back to :meth:`__index__`." msgstr "" -#: ../../reference/datamodel.rst:3452 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -3952,16 +3381,13 @@ msgid "" "(typically an :class:`int`)." msgstr "" -#: ../../reference/datamodel.rst:3458 msgid "" ":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." msgstr "" -#: ../../reference/datamodel.rst:3465 msgid "With Statement Context Managers" msgstr "" -#: ../../reference/datamodel.rst:3467 msgid "" "A :dfn:`context manager` is an object that defines the runtime context to be " "established when executing a :keyword:`with` statement. The context manager " @@ -3971,34 +3397,29 @@ msgid "" "can also be used by directly invoking their methods." msgstr "" -#: ../../reference/datamodel.rst:3478 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." msgstr "" -#: ../../reference/datamodel.rst:3481 msgid "" "For more information on context managers, see :ref:`typecontextmanager`. " "The :class:`object` class itself does not provide the context manager " "methods." msgstr "" -#: ../../reference/datamodel.rst:3487 msgid "" "Enter the runtime context related to this object. The :keyword:`with` " "statement will bind this method's return value to the target(s) specified in " "the :keyword:`!as` clause of the statement, if any." msgstr "" -#: ../../reference/datamodel.rst:3494 msgid "" "Exit the runtime context related to this object. The parameters describe the " "exception that caused the context to be exited. If the context was exited " "without an exception, all three arguments will be :const:`None`." msgstr "" -#: ../../reference/datamodel.rst:3498 msgid "" "If an exception is supplied, and the method wishes to suppress the exception " "(i.e., prevent it from being propagated), it should return a true value. " @@ -4006,27 +3427,22 @@ msgid "" "method." msgstr "" -#: ../../reference/datamodel.rst:3502 msgid "" "Note that :meth:`~object.__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." msgstr "" -#: ../../reference/datamodel.rst:3508 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: ../../reference/datamodel.rst:3509 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" -#: ../../reference/datamodel.rst:3516 msgid "Customizing positional arguments in class pattern matching" msgstr "" -#: ../../reference/datamodel.rst:3518 msgid "" "When using a class name in a pattern, positional arguments in the pattern " "are not allowed by default, i.e. ``case MyClass(x, y)`` is typically invalid " @@ -4034,7 +3450,6 @@ msgid "" "pattern, the class needs to define a *__match_args__* attribute." msgstr "" -#: ../../reference/datamodel.rst:3525 msgid "" "This class variable can be assigned a tuple of strings. When this class is " "used in a class pattern with positional arguments, each positional argument " @@ -4043,29 +3458,24 @@ msgid "" "to setting it to ``()``." msgstr "" -#: ../../reference/datamodel.rst:3531 msgid "" "For example, if ``MyClass.__match_args__`` is ``(\"left\", \"center\", " "\"right\")`` that means that ``case MyClass(x, y)`` is equivalent to ``case " "MyClass(left=x, center=y)``. Note that the number of arguments in the " "pattern must be smaller than or equal to the number of elements in " -"*__match_args__*; if it is larger, the pattern match attempt will raise " -"a :exc:`TypeError`." +"*__match_args__*; if it is larger, the pattern match attempt will raise a :" +"exc:`TypeError`." msgstr "" -#: ../../reference/datamodel.rst:3541 msgid ":pep:`634` - Structural Pattern Matching" msgstr "" -#: ../../reference/datamodel.rst:3542 msgid "The specification for the Python ``match`` statement." msgstr "" -#: ../../reference/datamodel.rst:3548 msgid "Emulating buffer types" msgstr "" -#: ../../reference/datamodel.rst:3550 msgid "" "The :ref:`buffer protocol ` provides a way for Python objects " "to expose efficient access to a low-level memory array. This protocol is " @@ -4073,61 +3483,50 @@ msgid "" "and third-party libraries may define additional buffer types." msgstr "" -#: ../../reference/datamodel.rst:3555 msgid "" "While buffer types are usually implemented in C, it is also possible to " "implement the protocol in Python." msgstr "" -#: ../../reference/datamodel.rst:3560 msgid "" -"Called when a buffer is requested from *self* (for example, by " -"the :class:`memoryview` constructor). The *flags* argument is an integer " -"representing the kind of buffer requested, affecting for example whether the " -"returned buffer is read-only or writable. :class:`inspect.BufferFlags` " -"provides a convenient way to interpret the flags. The method must return " -"a :class:`memoryview` object." +"Called when a buffer is requested from *self* (for example, by the :class:" +"`memoryview` constructor). The *flags* argument is an integer representing " +"the kind of buffer requested, affecting for example whether the returned " +"buffer is read-only or writable. :class:`inspect.BufferFlags` provides a " +"convenient way to interpret the flags. The method must return a :class:" +"`memoryview` object." msgstr "" -#: ../../reference/datamodel.rst:3569 msgid "" -"Called when a buffer is no longer needed. The *buffer* argument is " -"a :class:`memoryview` object that was previously returned " -"by :meth:`~object.__buffer__`. The method must release any resources " -"associated with the buffer. This method should return ``None``. Buffer " -"objects that do not need to perform any cleanup are not required to " -"implement this method." +"Called when a buffer is no longer needed. The *buffer* argument is a :class:" +"`memoryview` object that was previously returned by :meth:`~object." +"__buffer__`. The method must release any resources associated with the " +"buffer. This method should return ``None``. Buffer objects that do not need " +"to perform any cleanup are not required to implement this method." msgstr "" -#: ../../reference/datamodel.rst:3580 msgid ":pep:`688` - Making the buffer protocol accessible in Python" msgstr "" -#: ../../reference/datamodel.rst:3581 msgid "" "Introduces the Python ``__buffer__`` and ``__release_buffer__`` methods." msgstr "" -#: ../../reference/datamodel.rst:3583 msgid ":class:`collections.abc.Buffer`" msgstr "" -#: ../../reference/datamodel.rst:3584 msgid "ABC for buffer types." msgstr "" -#: ../../reference/datamodel.rst:3587 msgid "Annotations" msgstr "" -#: ../../reference/datamodel.rst:3589 msgid "" "Functions, classes, and modules may contain :term:`annotations " "`, which are a way to associate information (usually :term:`type " "hints `) with a symbol." msgstr "" -#: ../../reference/datamodel.rst:3595 msgid "" "This attribute contains the annotations for an object. It is :ref:`lazily " "evaluated `, so accessing the attribute may execute " @@ -4135,59 +3534,49 @@ msgid "" "attribute is set to a dictionary mapping from variable names to annotations." msgstr "" -#: ../../reference/datamodel.rst:3600 msgid "Annotations are now lazily evaluated." msgstr "" -#: ../../reference/datamodel.rst:3605 msgid "" "An :term:`annotate function`. Returns a new dictionary object mapping " "attribute/parameter names to their annotation values." msgstr "" -#: ../../reference/datamodel.rst:3608 msgid "" "Takes a format parameter specifying the format in which annotations values " "should be provided. It must be a member of the :class:`annotationlib.Format` " "enum, or an integer with a value corresponding to a member of the enum." msgstr "" -#: ../../reference/datamodel.rst:3612 msgid "" -"If an annotate function doesn't support the requested format, it must " -"raise :exc:`NotImplementedError`. Annotate functions must always " -"support :attr:`~annotationlib.Format.VALUE` format; they must not " -"raise :exc:`NotImplementedError()` when called with this format." +"If an annotate function doesn't support the requested format, it must raise :" +"exc:`NotImplementedError`. Annotate functions must always support :attr:" +"`~annotationlib.Format.VALUE` format; they must not raise :exc:" +"`NotImplementedError()` when called with this format." msgstr "" -#: ../../reference/datamodel.rst:3617 msgid "" "When called with :attr:`~annotationlib.Format.VALUE` format, an annotate " "function may raise :exc:`NameError`; it must not raise :exc:`!NameError` " "when called requesting any other format." msgstr "" -#: ../../reference/datamodel.rst:3620 msgid "" "If an object does not have any annotations, :attr:`~object.__annotate__` " "should preferably be set to ``None`` (it can’t be deleted), rather than set " "to a function that returns an empty dict." msgstr "" -#: ../../reference/datamodel.rst:3627 msgid ":pep:`649` --- Deferred evaluation of annotation using descriptors" msgstr "" -#: ../../reference/datamodel.rst:3628 msgid "" "Introduces lazy evaluation of annotations and the ``__annotate__`` function." msgstr "" -#: ../../reference/datamodel.rst:3634 msgid "Special method lookup" msgstr "" -#: ../../reference/datamodel.rst:3636 msgid "" "For custom classes, implicit invocations of special methods are only " "guaranteed to work correctly if defined on an object's type, not in the " @@ -4195,7 +3584,6 @@ msgid "" "following code raises an exception::" msgstr "" -#: ../../reference/datamodel.rst:3641 msgid "" ">>> class C:\n" "... pass\n" @@ -4208,7 +3596,6 @@ msgid "" "TypeError: object of type 'C' has no len()" msgstr "" -#: ../../reference/datamodel.rst:3651 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`~object.__hash__` and :meth:`~object.__repr__` that are " @@ -4217,7 +3604,6 @@ msgid "" "invoked on the type object itself::" msgstr "" -#: ../../reference/datamodel.rst:3658 msgid "" ">>> 1 .__hash__() == hash(1)\n" "True\n" @@ -4227,14 +3613,12 @@ msgid "" "TypeError: descriptor '__hash__' of 'int' object needs an argument" msgstr "" -#: ../../reference/datamodel.rst:3665 msgid "" "Incorrectly attempting to invoke an unbound method of a class in this way is " "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " "the instance when looking up special methods::" msgstr "" -#: ../../reference/datamodel.rst:3669 msgid "" ">>> type(1).__hash__(1) == hash(1)\n" "True\n" @@ -4242,14 +3626,12 @@ msgid "" "True" msgstr "" -#: ../../reference/datamodel.rst:3674 msgid "" "In addition to bypassing any instance attributes in the interest of " -"correctness, implicit special method lookup generally also bypasses " -"the :meth:`~object.__getattribute__` method even of the object's metaclass::" +"correctness, implicit special method lookup generally also bypasses the :" +"meth:`~object.__getattribute__` method even of the object's metaclass::" msgstr "" -#: ../../reference/datamodel.rst:3678 msgid "" ">>> class Meta(type):\n" "... def __getattribute__(*args):\n" @@ -4274,7 +3656,6 @@ msgid "" "10" msgstr "" -#: ../../reference/datamodel.rst:3700 msgid "" "Bypassing the :meth:`~object.__getattribute__` machinery in this fashion " "provides significant scope for speed optimisations within the interpreter, " @@ -4283,106 +3664,88 @@ msgid "" "consistently invoked by the interpreter)." msgstr "" -#: ../../reference/datamodel.rst:3711 msgid "Coroutines" msgstr "" -#: ../../reference/datamodel.rst:3715 msgid "Awaitable Objects" msgstr "" -#: ../../reference/datamodel.rst:3717 msgid "" -"An :term:`awaitable` object generally implements " -"an :meth:`~object.__await__` method. :term:`Coroutine objects ` " -"returned from :keyword:`async def` functions are awaitable." +"An :term:`awaitable` object generally implements an :meth:`~object." +"__await__` method. :term:`Coroutine objects ` returned from :" +"keyword:`async def` functions are awaitable." msgstr "" -#: ../../reference/datamodel.rst:3723 msgid "" "The :term:`generator iterator` objects returned from generators decorated " -"with :func:`types.coroutine` are also awaitable, but they do not " -"implement :meth:`~object.__await__`." +"with :func:`types.coroutine` are also awaitable, but they do not implement :" +"meth:`~object.__await__`." msgstr "" -#: ../../reference/datamodel.rst:3729 msgid "" -"Must return an :term:`iterator`. Should be used to " -"implement :term:`awaitable` objects. For instance, :class:`asyncio.Future` " -"implements this method to be compatible with the :keyword:`await` " -"expression. The :class:`object` class itself is not awaitable and does not " -"provide this method." +"Must return an :term:`iterator`. Should be used to implement :term:" +"`awaitable` objects. For instance, :class:`asyncio.Future` implements this " +"method to be compatible with the :keyword:`await` expression. The :class:" +"`object` class itself is not awaitable and does not provide this method." msgstr "" -#: ../../reference/datamodel.rst:3737 msgid "" "The language doesn't place any restriction on the type or value of the " "objects yielded by the iterator returned by ``__await__``, as this is " -"specific to the implementation of the asynchronous execution framework " -"(e.g. :mod:`asyncio`) that will be managing the :term:`awaitable` object." +"specific to the implementation of the asynchronous execution framework (e." +"g. :mod:`asyncio`) that will be managing the :term:`awaitable` object." msgstr "" -#: ../../reference/datamodel.rst:3745 msgid ":pep:`492` for additional information about awaitable objects." msgstr "" -#: ../../reference/datamodel.rst:3751 msgid "Coroutine Objects" msgstr "" -#: ../../reference/datamodel.rst:3753 msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " "coroutine's execution can be controlled by calling :meth:`~object.__await__` " "and iterating over the result. When the coroutine has finished executing " -"and returns, the iterator raises :exc:`StopIteration`, and the " -"exception's :attr:`~StopIteration.value` attribute holds the return value. " -"If the coroutine raises an exception, it is propagated by the iterator. " -"Coroutines should not directly raise unhandled :exc:`StopIteration` " -"exceptions." +"and returns, the iterator raises :exc:`StopIteration`, and the exception's :" +"attr:`~StopIteration.value` attribute holds the return value. If the " +"coroutine raises an exception, it is propagated by the iterator. Coroutines " +"should not directly raise unhandled :exc:`StopIteration` exceptions." msgstr "" -#: ../../reference/datamodel.rst:3761 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " "coroutines do not directly support iteration." msgstr "" -#: ../../reference/datamodel.rst:3765 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" -#: ../../reference/datamodel.rst:3771 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " -"is equivalent to advancing the iterator returned " -"by :meth:`~object.__await__`. If *value* is not ``None``, this method " -"delegates to the :meth:`~generator.send` method of the iterator that caused " -"the coroutine to suspend. The result (return value, :exc:`StopIteration`, " -"or other exception) is the same as when iterating over the :meth:`!" -"__await__` return value, described above." +"is equivalent to advancing the iterator returned by :meth:`~object." +"__await__`. If *value* is not ``None``, this method delegates to the :meth:" +"`~generator.send` method of the iterator that caused the coroutine to " +"suspend. The result (return value, :exc:`StopIteration`, or other " +"exception) is the same as when iterating over the :meth:`!__await__` return " +"value, described above." msgstr "" -#: ../../reference/datamodel.rst:3782 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " "coroutine to suspend, if it has such a method. Otherwise, the exception is " -"raised at the suspension point. The result (return " -"value, :exc:`StopIteration`, or other exception) is the same as when " -"iterating over the :meth:`~object.__await__` return value, described above. " -"If the exception is not caught in the coroutine, it propagates back to the " -"caller." +"raised at the suspension point. The result (return value, :exc:" +"`StopIteration`, or other exception) is the same as when iterating over the :" +"meth:`~object.__await__` return value, described above. If the exception is " +"not caught in the coroutine, it propagates back to the caller." msgstr "" -#: ../../reference/datamodel.rst:3793 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." msgstr "" -#: ../../reference/datamodel.rst:3798 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -4392,46 +3755,37 @@ msgid "" "is marked as having finished executing, even if it was never started." msgstr "" -#: ../../reference/datamodel.rst:3806 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." msgstr "" -#: ../../reference/datamodel.rst:3812 msgid "Asynchronous Iterators" msgstr "" -#: ../../reference/datamodel.rst:3814 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." msgstr "" -#: ../../reference/datamodel.rst:3817 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" -#: ../../reference/datamodel.rst:3819 ../../reference/datamodel.rst:3868 msgid "The :class:`object` class itself does not provide these methods." msgstr "" -#: ../../reference/datamodel.rst:3824 msgid "Must return an *asynchronous iterator* object." msgstr "" -#: ../../reference/datamodel.rst:3828 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." msgstr "" -#: ../../reference/datamodel.rst:3831 msgid "An example of an asynchronous iterable object::" msgstr "" -#: ../../reference/datamodel.rst:3833 msgid "" "class Reader:\n" " async def readline(self):\n" @@ -4447,53 +3801,44 @@ msgid "" " return val" msgstr "" -#: ../../reference/datamodel.rst:3848 msgid "" "Prior to Python 3.7, :meth:`~object.__aiter__` could return an *awaitable* " "that would resolve to an :term:`asynchronous iterator `." msgstr "" -#: ../../reference/datamodel.rst:3853 msgid "" "Starting with Python 3.7, :meth:`~object.__aiter__` must return an " -"asynchronous iterator object. Returning anything else will result in " -"a :exc:`TypeError` error." +"asynchronous iterator object. Returning anything else will result in a :exc:" +"`TypeError` error." msgstr "" -#: ../../reference/datamodel.rst:3861 msgid "Asynchronous Context Managers" msgstr "" -#: ../../reference/datamodel.rst:3863 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." msgstr "" -#: ../../reference/datamodel.rst:3866 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." msgstr "" -#: ../../reference/datamodel.rst:3872 msgid "" "Semantically similar to :meth:`~object.__enter__`, the only difference being " "that it must return an *awaitable*." msgstr "" -#: ../../reference/datamodel.rst:3877 msgid "" "Semantically similar to :meth:`~object.__exit__`, the only difference being " "that it must return an *awaitable*." msgstr "" -#: ../../reference/datamodel.rst:3880 msgid "An example of an asynchronous context manager class::" msgstr "" -#: ../../reference/datamodel.rst:3882 msgid "" "class AsyncContextManager:\n" " async def __aenter__(self):\n" @@ -4503,26 +3848,23 @@ msgid "" " await log('exiting context')" msgstr "" -#: ../../reference/datamodel.rst:3893 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../reference/datamodel.rst:3894 msgid "" "It *is* possible in some cases to change an object's type, under certain " "controlled conditions. It generally isn't a good idea though, since it can " "lead to some very strange behaviour if it is handled incorrectly." msgstr "" -#: ../../reference/datamodel.rst:3898 msgid "" -"The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object.__reversed__`, :meth:`~object.__contains__`, :meth:`~object.__class_getitem__` " -"and :meth:`~os.PathLike.__fspath__` methods have special handling for this. " -"Others will still raise a :exc:`TypeError`, but may do so by relying on the " -"behavior that ``None`` is not callable." +"The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object." +"__reversed__`, :meth:`~object.__contains__`, :meth:`~object." +"__class_getitem__` and :meth:`~os.PathLike.__fspath__` methods have special " +"handling for this. Others will still raise a :exc:`TypeError`, but may do so " +"by relying on the behavior that ``None`` is not callable." msgstr "" -#: ../../reference/datamodel.rst:3905 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns :data:`NotImplemented`. Do not set the method to ``None`` if " @@ -4530,1007 +3872,725 @@ msgid "" "instead have the opposite effect of explicitly *blocking* such fallback." msgstr "" -#: ../../reference/datamodel.rst:3911 msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method (such as :meth:`~object.__add__`) fails then the operation is not " "supported, which is why the reflected method is not called." msgstr "" -#: ../../reference/datamodel.rst:3915 msgid "" "If the right operand's type is a subclass of the left operand's type, the " "reflected method having precedence allows subclasses to override their " "ancestors' operations." msgstr "" -#: ../../reference/datamodel.rst:14 ../../reference/datamodel.rst:152 -#: ../../reference/datamodel.rst:163 ../../reference/datamodel.rst:187 -#: ../../reference/datamodel.rst:199 ../../reference/datamodel.rst:232 -#: ../../reference/datamodel.rst:253 ../../reference/datamodel.rst:270 -#: ../../reference/datamodel.rst:288 ../../reference/datamodel.rst:301 -#: ../../reference/datamodel.rst:333 ../../reference/datamodel.rst:368 -#: ../../reference/datamodel.rst:393 ../../reference/datamodel.rst:414 -#: ../../reference/datamodel.rst:432 ../../reference/datamodel.rst:452 -#: ../../reference/datamodel.rst:460 ../../reference/datamodel.rst:471 -#: ../../reference/datamodel.rst:488 ../../reference/datamodel.rst:524 -#: ../../reference/datamodel.rst:539 ../../reference/datamodel.rst:677 -#: ../../reference/datamodel.rst:815 ../../reference/datamodel.rst:839 -#: ../../reference/datamodel.rst:875 ../../reference/datamodel.rst:1153 -#: ../../reference/datamodel.rst:1313 ../../reference/datamodel.rst:1340 -#: ../../reference/datamodel.rst:1412 ../../reference/datamodel.rst:1520 -#: ../../reference/datamodel.rst:1628 ../../reference/datamodel.rst:1738 -#: ../../reference/datamodel.rst:2163 ../../reference/datamodel.rst:3181 msgid "object" msgstr "" -#: ../../reference/datamodel.rst:14 ../../reference/datamodel.rst:126 msgid "data" msgstr "" -#: ../../reference/datamodel.rst:23 ../../reference/datamodel.rst:301 -#: ../../reference/datamodel.rst:348 ../../reference/datamodel.rst:432 -#: ../../reference/datamodel.rst:471 ../../reference/datamodel.rst:815 -#: ../../reference/datamodel.rst:1369 ../../reference/datamodel.rst:1821 -#: ../../reference/datamodel.rst:2064 ../../reference/datamodel.rst:2070 -#: ../../reference/datamodel.rst:2163 ../../reference/datamodel.rst:2720 -#: ../../reference/datamodel.rst:3151 ../../reference/datamodel.rst:3309 -#: ../../reference/datamodel.rst:3344 ../../reference/datamodel.rst:3412 -#: ../../reference/datamodel.rst:3422 ../../reference/datamodel.rst:3450 msgid "built-in function" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "id" msgstr "" -#: ../../reference/datamodel.rst:23 ../../reference/datamodel.rst:126 -#: ../../reference/datamodel.rst:2720 msgid "type" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "identity of an object" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "value of an object" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "type of an object" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "mutable object" msgstr "" -#: ../../reference/datamodel.rst:23 msgid "immutable object" msgstr "" -#: ../../reference/datamodel.rst:60 msgid "garbage collection" msgstr "" -#: ../../reference/datamodel.rst:60 msgid "reference counting" msgstr "" -#: ../../reference/datamodel.rst:60 msgid "unreachable object" msgstr "" -#: ../../reference/datamodel.rst:95 ../../reference/datamodel.rst:1153 msgid "container" msgstr "" -#: ../../reference/datamodel.rst:126 msgid "hierarchy" msgstr "" -#: ../../reference/datamodel.rst:126 msgid "extension" msgstr "" -#: ../../reference/datamodel.rst:126 ../../reference/datamodel.rst:405 -#: ../../reference/datamodel.rst:406 ../../reference/datamodel.rst:507 -#: ../../reference/datamodel.rst:875 ../../reference/datamodel.rst:895 -#: ../../reference/datamodel.rst:1369 msgid "module" msgstr "" -#: ../../reference/datamodel.rst:126 ../../reference/datamodel.rst:270 -#: ../../reference/datamodel.rst:815 msgid "C" msgstr "" -#: ../../reference/datamodel.rst:126 ../../reference/datamodel.rst:270 -#: ../../reference/datamodel.rst:815 msgid "language" msgstr "" -#: ../../reference/datamodel.rst:139 ../../reference/datamodel.rst:1153 -#: ../../reference/datamodel.rst:1171 ../../reference/datamodel.rst:1313 -#: ../../reference/datamodel.rst:1333 msgid "attribute" msgstr "" -#: ../../reference/datamodel.rst:139 msgid "special" msgstr "" -#: ../../reference/datamodel.rst:139 msgid "generic" msgstr "" -#: ../../reference/datamodel.rst:187 msgid "..." msgstr "" -#: ../../reference/datamodel.rst:187 msgid "ellipsis literal" msgstr "" -#: ../../reference/datamodel.rst:199 ../../reference/datamodel.rst:1340 msgid "numeric" msgstr "" -#: ../../reference/datamodel.rst:232 ../../reference/datamodel.rst:238 -#: ../../reference/datamodel.rst:348 msgid "integer" msgstr "" -#: ../../reference/datamodel.rst:238 msgid "representation" msgstr "" -#: ../../reference/datamodel.rst:253 msgid "Boolean" msgstr "" -#: ../../reference/datamodel.rst:253 msgid "False" msgstr "" -#: ../../reference/datamodel.rst:253 msgid "True" msgstr "" -#: ../../reference/datamodel.rst:270 msgid "floating-point" msgstr "" -#: ../../reference/datamodel.rst:270 ../../reference/datamodel.rst:288 msgid "number" msgstr "" -#: ../../reference/datamodel.rst:270 msgid "Java" msgstr "" -#: ../../reference/datamodel.rst:288 ../../reference/datamodel.rst:3422 msgid "complex" msgstr "" -#: ../../reference/datamodel.rst:301 ../../reference/datamodel.rst:432 -#: ../../reference/datamodel.rst:471 ../../reference/datamodel.rst:3151 msgid "len" msgstr "" -#: ../../reference/datamodel.rst:301 ../../reference/datamodel.rst:1340 msgid "sequence" msgstr "" -#: ../../reference/datamodel.rst:301 msgid "index operation" msgstr "" -#: ../../reference/datamodel.rst:301 msgid "item selection" msgstr "" -#: ../../reference/datamodel.rst:301 ../../reference/datamodel.rst:393 -#: ../../reference/datamodel.rst:471 msgid "subscription" msgstr "" -#: ../../reference/datamodel.rst:316 ../../reference/datamodel.rst:393 msgid "slicing" msgstr "" -#: ../../reference/datamodel.rst:333 msgid "immutable sequence" msgstr "" -#: ../../reference/datamodel.rst:333 msgid "immutable" msgstr "" -#: ../../reference/datamodel.rst:344 ../../reference/datamodel.rst:2039 -#: ../../reference/datamodel.rst:2070 msgid "string" msgstr "" -#: ../../reference/datamodel.rst:344 msgid "immutable sequences" msgstr "" -#: ../../reference/datamodel.rst:348 msgid "chr" msgstr "" -#: ../../reference/datamodel.rst:348 msgid "ord" msgstr "" -#: ../../reference/datamodel.rst:348 msgid "character" msgstr "" -#: ../../reference/datamodel.rst:348 msgid "Unicode" msgstr "" -#: ../../reference/datamodel.rst:368 msgid "tuple" msgstr "" -#: ../../reference/datamodel.rst:368 msgid "singleton" msgstr "" -#: ../../reference/datamodel.rst:368 msgid "empty" msgstr "" -#: ../../reference/datamodel.rst:381 ../../reference/datamodel.rst:2064 msgid "bytes" msgstr "" -#: ../../reference/datamodel.rst:381 msgid "byte" msgstr "" -#: ../../reference/datamodel.rst:393 msgid "mutable sequence" msgstr "" -#: ../../reference/datamodel.rst:393 msgid "mutable" msgstr "" -#: ../../reference/datamodel.rst:393 ../../reference/datamodel.rst:1171 -#: ../../reference/datamodel.rst:1333 msgid "assignment" msgstr "" -#: ../../reference/datamodel.rst:393 ../../reference/datamodel.rst:875 -#: ../../reference/datamodel.rst:1775 ../../reference/datamodel.rst:1957 -#: ../../reference/datamodel.rst:3474 msgid "statement" msgstr "" -#: ../../reference/datamodel.rst:405 msgid "array" msgstr "" -#: ../../reference/datamodel.rst:406 msgid "collections" msgstr "" -#: ../../reference/datamodel.rst:414 msgid "list" msgstr "" -#: ../../reference/datamodel.rst:421 msgid "bytearray" msgstr "" -#: ../../reference/datamodel.rst:432 msgid "set type" msgstr "" -#: ../../reference/datamodel.rst:452 msgid "set" msgstr "" -#: ../../reference/datamodel.rst:460 msgid "frozenset" msgstr "" -#: ../../reference/datamodel.rst:471 ../../reference/datamodel.rst:1340 msgid "mapping" msgstr "" -#: ../../reference/datamodel.rst:488 ../../reference/datamodel.rst:1153 -#: ../../reference/datamodel.rst:2163 msgid "dictionary" msgstr "" -#: ../../reference/datamodel.rst:507 msgid "dbm.ndbm" msgstr "" -#: ../../reference/datamodel.rst:507 msgid "dbm.gnu" msgstr "" -#: ../../reference/datamodel.rst:524 msgid "callable" msgstr "" -#: ../../reference/datamodel.rst:524 ../../reference/datamodel.rst:539 -#: ../../reference/datamodel.rst:759 ../../reference/datamodel.rst:777 -#: ../../reference/datamodel.rst:790 ../../reference/datamodel.rst:815 msgid "function" msgstr "" -#: ../../reference/datamodel.rst:524 ../../reference/datamodel.rst:1153 -#: ../../reference/datamodel.rst:1176 ../../reference/datamodel.rst:3101 msgid "call" msgstr "" -#: ../../reference/datamodel.rst:524 msgid "invocation" msgstr "" -#: ../../reference/datamodel.rst:524 msgid "argument" msgstr "" -#: ../../reference/datamodel.rst:539 ../../reference/datamodel.rst:677 msgid "user-defined" msgstr "" -#: ../../reference/datamodel.rst:539 msgid "user-defined function" msgstr "" -#: ../../reference/datamodel.rst:552 msgid "__closure__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:552 msgid "__globals__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:552 msgid "global" msgstr "" -#: ../../reference/datamodel.rst:552 ../../reference/datamodel.rst:895 msgid "namespace" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__doc__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__name__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__module__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__dict__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__defaults__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__code__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__annotations__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__annotate__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__kwdefaults__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:579 msgid "__type_params__ (function attribute)" msgstr "" -#: ../../reference/datamodel.rst:677 ../../reference/datamodel.rst:839 msgid "method" msgstr "" -#: ../../reference/datamodel.rst:677 msgid "user-defined method" msgstr "" -#: ../../reference/datamodel.rst:685 msgid "__func__ (method attribute)" msgstr "" -#: ../../reference/datamodel.rst:685 msgid "__self__ (method attribute)" msgstr "" -#: ../../reference/datamodel.rst:685 msgid "__doc__ (method attribute)" msgstr "" -#: ../../reference/datamodel.rst:685 msgid "__name__ (method attribute)" msgstr "" -#: ../../reference/datamodel.rst:685 msgid "__module__ (method attribute)" msgstr "" -#: ../../reference/datamodel.rst:759 ../../reference/datamodel.rst:1520 msgid "generator" msgstr "" -#: ../../reference/datamodel.rst:759 msgid "iterator" msgstr "" -#: ../../reference/datamodel.rst:777 ../../reference/datamodel.rst:3707 msgid "coroutine" msgstr "" -#: ../../reference/datamodel.rst:790 msgid "asynchronous generator" msgstr "" -#: ../../reference/datamodel.rst:790 msgid "asynchronous iterator" msgstr "" -#: ../../reference/datamodel.rst:839 msgid "built-in method" msgstr "" -#: ../../reference/datamodel.rst:839 msgid "built-in" msgstr "" -#: ../../reference/datamodel.rst:875 msgid "import" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__name__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__spec__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__package__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__loader__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__path__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__file__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__cached__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__doc__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__annotations__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:895 msgid "__annotate__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:1121 msgid "__dict__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:1153 ../../reference/datamodel.rst:1171 -#: ../../reference/datamodel.rst:1313 ../../reference/datamodel.rst:1940 -#: ../../reference/datamodel.rst:2831 msgid "class" msgstr "" -#: ../../reference/datamodel.rst:1153 ../../reference/datamodel.rst:1313 -#: ../../reference/datamodel.rst:1333 msgid "class instance" msgstr "" -#: ../../reference/datamodel.rst:1153 ../../reference/datamodel.rst:1313 -#: ../../reference/datamodel.rst:3101 msgid "instance" msgstr "" -#: ../../reference/datamodel.rst:1153 ../../reference/datamodel.rst:1176 msgid "class object" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__name__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__module__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__dict__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__bases__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__doc__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__annotations__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__annotate__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__type_params__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__static_attributes__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1183 msgid "__firstlineno__ (class attribute)" msgstr "" -#: ../../reference/datamodel.rst:1351 msgid "__dict__ (instance attribute)" msgstr "" -#: ../../reference/datamodel.rst:1351 msgid "__class__ (instance attribute)" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "open" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "io" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "popen() (in module os)" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "makefile() (socket method)" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "sys.stdin" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "sys.stdout" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "sys.stderr" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "stdio" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "stdin (in module sys)" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "stdout (in module sys)" msgstr "" -#: ../../reference/datamodel.rst:1369 msgid "stderr (in module sys)" msgstr "" -#: ../../reference/datamodel.rst:1398 msgid "internal type" msgstr "" -#: ../../reference/datamodel.rst:1398 msgid "types, internal" msgstr "" -#: ../../reference/datamodel.rst:1412 msgid "bytecode" msgstr "" -#: ../../reference/datamodel.rst:1412 msgid "code" msgstr "" -#: ../../reference/datamodel.rst:1412 msgid "code object" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_argcount (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_posonlyargcount (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_kwonlyargcount (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_code (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_consts (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_filename (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_firstlineno (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_flags (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_lnotab (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_name (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_names (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_nlocals (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_stacksize (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_varnames (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_cellvars (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_freevars (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1423 msgid "co_qualname (code object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1536 msgid "documentation string" msgstr "" -#: ../../reference/datamodel.rst:1628 msgid "frame" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_back (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_code (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_globals (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_locals (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_lasti (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1634 msgid "f_builtins (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1678 +msgid "f_generator (frame attribute)" +msgstr "" + msgid "f_trace (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1678 msgid "f_trace_lines (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1678 msgid "f_trace_opcodes (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1678 msgid "f_lineno (frame attribute)" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "traceback" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "stack" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "trace" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "exception" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "handler" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "execution" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "exc_info (in module sys)" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "last_traceback (in module sys)" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "sys.exc_info" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "sys.exception" msgstr "" -#: ../../reference/datamodel.rst:1738 msgid "sys.last_traceback" msgstr "" -#: ../../reference/datamodel.rst:1775 msgid "tb_frame (traceback attribute)" msgstr "" -#: ../../reference/datamodel.rst:1775 msgid "tb_lineno (traceback attribute)" msgstr "" -#: ../../reference/datamodel.rst:1775 msgid "tb_lasti (traceback attribute)" msgstr "" -#: ../../reference/datamodel.rst:1775 msgid "try" msgstr "" -#: ../../reference/datamodel.rst:1805 msgid "tb_next (traceback attribute)" msgstr "" -#: ../../reference/datamodel.rst:1821 ../../reference/datamodel.rst:3181 msgid "slice" msgstr "" -#: ../../reference/datamodel.rst:1827 msgid "start (slice object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1827 msgid "stop (slice object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1827 msgid "step (slice object attribute)" msgstr "" -#: ../../reference/datamodel.rst:1875 msgid "operator" msgstr "" -#: ../../reference/datamodel.rst:1875 msgid "overloading" msgstr "" -#: ../../reference/datamodel.rst:1875 msgid "__getitem__() (mapping object method)" msgstr "" -#: ../../reference/datamodel.rst:1911 msgid "subclassing" msgstr "" -#: ../../reference/datamodel.rst:1911 msgid "immutable types" msgstr "" -#: ../../reference/datamodel.rst:1940 msgid "constructor" msgstr "" -#: ../../reference/datamodel.rst:1957 msgid "destructor" msgstr "" -#: ../../reference/datamodel.rst:1957 msgid "finalizer" msgstr "" -#: ../../reference/datamodel.rst:1957 msgid "del" msgstr "" -#: ../../reference/datamodel.rst:2021 msgid "repr() (built-in function)" msgstr "" -#: ../../reference/datamodel.rst:2021 msgid "__repr__() (object method)" msgstr "" -#: ../../reference/datamodel.rst:2039 msgid "__str__() (object method)" msgstr "" -#: ../../reference/datamodel.rst:2039 msgid "format() (built-in function)" msgstr "" -#: ../../reference/datamodel.rst:2039 msgid "print() (built-in function)" msgstr "" -#: ../../reference/datamodel.rst:2070 msgid "__format__() (object method)" msgstr "" -#: ../../reference/datamodel.rst:2070 msgid "conversion" msgstr "" -#: ../../reference/datamodel.rst:2070 msgid "print" msgstr "" -#: ../../reference/datamodel.rst:2112 msgid "comparisons" msgstr "" -#: ../../reference/datamodel.rst:2163 msgid "hash" msgstr "" -#: ../../reference/datamodel.rst:2244 msgid "__len__() (mapping object method)" msgstr "" -#: ../../reference/datamodel.rst:2349 msgid "__getattr__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:2349 msgid "__dir__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:2349 msgid "__class__ (module attribute)" msgstr "" -#: ../../reference/datamodel.rst:2720 msgid "metaclass" msgstr "" -#: ../../reference/datamodel.rst:2720 msgid "= (equals)" msgstr "" -#: ../../reference/datamodel.rst:2720 msgid "class definition" msgstr "" -#: ../../reference/datamodel.rst:2784 msgid "metaclass hint" msgstr "" -#: ../../reference/datamodel.rst:2807 msgid "__prepare__ (metaclass method)" msgstr "" -#: ../../reference/datamodel.rst:2831 msgid "body" msgstr "" -#: ../../reference/datamodel.rst:2851 msgid "__class__ (method cell)" msgstr "" -#: ../../reference/datamodel.rst:2851 msgid "__classcell__ (class namespace entry)" msgstr "" -#: ../../reference/datamodel.rst:3151 msgid "__bool__() (object method)" msgstr "" -#: ../../reference/datamodel.rst:3309 ../../reference/datamodel.rst:3344 msgid "divmod" msgstr "" -#: ../../reference/datamodel.rst:3309 ../../reference/datamodel.rst:3344 msgid "pow" msgstr "" -#: ../../reference/datamodel.rst:3412 msgid "abs" msgstr "" -#: ../../reference/datamodel.rst:3422 msgid "int" msgstr "" -#: ../../reference/datamodel.rst:3422 msgid "float" msgstr "" -#: ../../reference/datamodel.rst:3450 msgid "round" msgstr "" -#: ../../reference/datamodel.rst:3474 msgid "with" msgstr "" -#: ../../reference/datamodel.rst:3474 msgid "context manager" msgstr "" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 435cbbd..d46920e 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/executionmodel.rst:6 msgid "Execution model" msgstr "" -#: ../../reference/executionmodel.rst:15 msgid "Structure of a program" msgstr "" -#: ../../reference/executionmodel.rst:19 msgid "" "A Python program is constructed from code blocks. A :dfn:`block` is a piece " "of Python program text that is executed as a unit. The following are blocks: " @@ -39,105 +36,85 @@ msgid "" "the interpreter or specified as a command line argument to the interpreter) " "is a code block. A script command (a command specified on the interpreter " "command line with the :option:`-c` option) is a code block. A module run as " -"a top level script (as module ``__main__``) from the command line using " -"a :option:`-m` argument is also a code block. The string argument passed to " -"the built-in functions :func:`eval` and :func:`exec` is a code block." +"a top level script (as module ``__main__``) from the command line using a :" +"option:`-m` argument is also a code block. The string argument passed to the " +"built-in functions :func:`eval` and :func:`exec` is a code block." msgstr "" -#: ../../reference/executionmodel.rst:33 msgid "" "A code block is executed in an :dfn:`execution frame`. A frame contains " "some administrative information (used for debugging) and determines where " "and how execution continues after the code block's execution has completed." msgstr "" -#: ../../reference/executionmodel.rst:40 msgid "Naming and binding" msgstr "" -#: ../../reference/executionmodel.rst:49 msgid "Binding of names" msgstr "" -#: ../../reference/executionmodel.rst:55 msgid "" ":dfn:`Names` refer to objects. Names are introduced by name binding " "operations." msgstr "" -#: ../../reference/executionmodel.rst:59 msgid "The following constructs bind names:" msgstr "" -#: ../../reference/executionmodel.rst:61 msgid "formal parameters to functions," msgstr "" -#: ../../reference/executionmodel.rst:62 msgid "class definitions," msgstr "" -#: ../../reference/executionmodel.rst:63 msgid "function definitions," msgstr "" -#: ../../reference/executionmodel.rst:64 msgid "assignment expressions," msgstr "" -#: ../../reference/executionmodel.rst:65 msgid "" ":ref:`targets ` that are identifiers if occurring in an " "assignment:" msgstr "" -#: ../../reference/executionmodel.rst:68 msgid ":keyword:`for` loop header," msgstr "" -#: ../../reference/executionmodel.rst:69 msgid "" "after :keyword:`!as` in a :keyword:`with` statement, :keyword:`except` " "clause, :keyword:`except* ` clause, or in the as-pattern in " "structural pattern matching," msgstr "" -#: ../../reference/executionmodel.rst:71 msgid "in a capture pattern in structural pattern matching" msgstr "" -#: ../../reference/executionmodel.rst:73 msgid ":keyword:`import` statements." msgstr "" -#: ../../reference/executionmodel.rst:74 msgid ":keyword:`type` statements." msgstr "" -#: ../../reference/executionmodel.rst:75 msgid ":ref:`type parameter lists `." msgstr "" -#: ../../reference/executionmodel.rst:77 msgid "" "The :keyword:`!import` statement of the form ``from ... import *`` binds all " "names defined in the imported module, except those beginning with an " "underscore. This form may only be used at the module level." msgstr "" -#: ../../reference/executionmodel.rst:81 msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." msgstr "" -#: ../../reference/executionmodel.rst:84 msgid "" "Each assignment or import statement occurs within a block defined by a class " "or function definition or at the module level (the top-level code block)." msgstr "" -#: ../../reference/executionmodel.rst:89 msgid "" "If a name is bound in a block, it is a local variable of that block, unless " "declared as :keyword:`nonlocal` or :keyword:`global`. If a name is bound at " @@ -146,17 +123,14 @@ msgid "" "not defined there, it is a :term:`free variable`." msgstr "" -#: ../../reference/executionmodel.rst:95 msgid "" "Each occurrence of a name in the program text refers to the :dfn:`binding` " "of that name established by the following name resolution rules." msgstr "" -#: ../../reference/executionmodel.rst:101 msgid "Resolution of names" msgstr "" -#: ../../reference/executionmodel.rst:105 msgid "" "A :dfn:`scope` defines the visibility of a name within a block. If a local " "variable is defined in a block, its scope includes that block. If the " @@ -165,23 +139,20 @@ msgid "" "different binding for the name." msgstr "" -#: ../../reference/executionmodel.rst:113 msgid "" "When a name is used in a code block, it is resolved using the nearest " "enclosing scope. The set of all such scopes visible to a code block is " "called the block's :dfn:`environment`." msgstr "" -#: ../../reference/executionmodel.rst:121 msgid "" "When a name is not found at all, a :exc:`NameError` exception is raised. If " "the current scope is a function scope, and the name refers to a local " "variable that has not yet been bound to a value at the point where the name " -"is used, an :exc:`UnboundLocalError` exception is " -"raised. :exc:`UnboundLocalError` is a subclass of :exc:`NameError`." +"is used, an :exc:`UnboundLocalError` exception is raised. :exc:" +"`UnboundLocalError` is a subclass of :exc:`NameError`." msgstr "" -#: ../../reference/executionmodel.rst:127 msgid "" "If a name binding operation occurs anywhere within a code block, all uses of " "the name within the block are treated as references to the current block. " @@ -193,21 +164,18 @@ msgid "" "UnboundLocalError ` for examples." msgstr "" -#: ../../reference/executionmodel.rst:136 msgid "" "If the :keyword:`global` statement occurs within a block, all uses of the " "names specified in the statement refer to the bindings of those names in the " "top-level namespace. Names are resolved in the top-level namespace by " "searching the global namespace, i.e. the namespace of the module containing " -"the code block, and the builtins namespace, the namespace of the " -"module :mod:`builtins`. The global namespace is searched first. If the " -"names are not found there, the builtins namespace is searched next. If the " -"names are also not found in the builtins namespace, new variables are " -"created in the global namespace. The global statement must precede all uses " -"of the listed names." +"the code block, and the builtins namespace, the namespace of the module :mod:" +"`builtins`. The global namespace is searched first. If the names are not " +"found there, the builtins namespace is searched next. If the names are also " +"not found in the builtins namespace, new variables are created in the global " +"namespace. The global statement must precede all uses of the listed names." msgstr "" -#: ../../reference/executionmodel.rst:146 msgid "" "The :keyword:`global` statement has the same scope as a name binding " "operation in the same block. If the nearest enclosing scope for a free " @@ -215,22 +183,19 @@ msgid "" "global." msgstr "" -#: ../../reference/executionmodel.rst:152 msgid "" "The :keyword:`nonlocal` statement causes corresponding names to refer to " -"previously bound variables in the nearest enclosing function " -"scope. :exc:`SyntaxError` is raised at compile time if the given name does " -"not exist in any enclosing function scope. :ref:`Type parameters ` cannot be rebound with the :keyword:`!nonlocal` statement." +"previously bound variables in the nearest enclosing function scope. :exc:" +"`SyntaxError` is raised at compile time if the given name does not exist in " +"any enclosing function scope. :ref:`Type parameters ` cannot be " +"rebound with the :keyword:`!nonlocal` statement." msgstr "" -#: ../../reference/executionmodel.rst:160 msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" -#: ../../reference/executionmodel.rst:163 msgid "" "Class definition blocks and arguments to :func:`exec` and :func:`eval` are " "special in the context of name resolution. A class definition is an " @@ -245,18 +210,15 @@ msgid "" "the following will fail::" msgstr "" -#: ../../reference/executionmodel.rst:176 msgid "" "class A:\n" " a = 42\n" " b = list(a + i for i in range(10))" msgstr "" -#: ../../reference/executionmodel.rst:180 msgid "However, the following will succeed::" msgstr "" -#: ../../reference/executionmodel.rst:182 msgid "" "class A:\n" " type Alias = Nested\n" @@ -265,63 +227,51 @@ msgid "" "print(A.Alias.__value__) # " msgstr "" -#: ../../reference/executionmodel.rst:191 msgid "Annotation scopes" msgstr "" -#: ../../reference/executionmodel.rst:193 msgid "" ":term:`Annotations `, :ref:`type parameter lists ` " "and :keyword:`type` statements introduce *annotation scopes*, which behave " "mostly like function scopes, but with some exceptions discussed below." msgstr "" -#: ../../reference/executionmodel.rst:198 msgid "Annotation scopes are used in the following contexts:" msgstr "" -#: ../../reference/executionmodel.rst:200 msgid ":term:`Function annotations `." msgstr "" -#: ../../reference/executionmodel.rst:201 msgid ":term:`Variable annotations `." msgstr "" -#: ../../reference/executionmodel.rst:202 msgid "" "Type parameter lists for :ref:`generic type aliases `." msgstr "" -#: ../../reference/executionmodel.rst:203 msgid "" "Type parameter lists for :ref:`generic functions `. A " "generic function's annotations are executed within the annotation scope, but " "its defaults and decorators are not." msgstr "" -#: ../../reference/executionmodel.rst:206 msgid "" "Type parameter lists for :ref:`generic classes `. A generic " "class's base classes and keyword arguments are executed within the " "annotation scope, but its decorators are not." msgstr "" -#: ../../reference/executionmodel.rst:209 msgid "" -"The bounds, constraints, and default values for type parameters " -"(:ref:`lazily evaluated `)." +"The bounds, constraints, and default values for type parameters (:ref:" +"`lazily evaluated `)." msgstr "" -#: ../../reference/executionmodel.rst:211 msgid "The value of type aliases (:ref:`lazily evaluated `)." msgstr "" -#: ../../reference/executionmodel.rst:213 msgid "Annotation scopes differ from function scopes in the following ways:" msgstr "" -#: ../../reference/executionmodel.rst:215 msgid "" "Annotation scopes have access to their enclosing class namespace. If an " "annotation scope is immediately within a class scope, or within another " @@ -332,23 +282,20 @@ msgid "" "class scope." msgstr "" -#: ../../reference/executionmodel.rst:221 msgid "" "Expressions in annotation scopes cannot contain :keyword:`yield`, ``yield " -"from``, :keyword:`await`, or :token:`:= ` expressions. (These expressions are allowed " -"in other scopes contained within the annotation scope.)" +"from``, :keyword:`await`, or :token:`:= ` expressions. (These expressions are allowed in other " +"scopes contained within the annotation scope.)" msgstr "" -#: ../../reference/executionmodel.rst:225 msgid "" -"Names defined in annotation scopes cannot be rebound " -"with :keyword:`nonlocal` statements in inner scopes. This includes only type " -"parameters, as no other syntactic elements that can appear within annotation " -"scopes can introduce new names." +"Names defined in annotation scopes cannot be rebound with :keyword:" +"`nonlocal` statements in inner scopes. This includes only type parameters, " +"as no other syntactic elements that can appear within annotation scopes can " +"introduce new names." msgstr "" -#: ../../reference/executionmodel.rst:228 msgid "" "While annotation scopes have an internal name, that name is not reflected in " "the :term:`qualified name` of objects defined within the scope. Instead, " @@ -356,27 +303,22 @@ msgid "" "were defined in the enclosing scope." msgstr "" -#: ../../reference/executionmodel.rst:233 msgid "Annotation scopes were introduced in Python 3.12 as part of :pep:`695`." msgstr "" -#: ../../reference/executionmodel.rst:236 msgid "" "Annotation scopes are also used for type parameter defaults, as introduced " "by :pep:`696`." msgstr "" -#: ../../reference/executionmodel.rst:240 msgid "" -"Annotation scopes are now also used for annotations, as specified " -"in :pep:`649` and :pep:`749`." +"Annotation scopes are now also used for annotations, as specified in :pep:" +"`649` and :pep:`749`." msgstr "" -#: ../../reference/executionmodel.rst:247 msgid "Lazy evaluation" msgstr "" -#: ../../reference/executionmodel.rst:249 msgid "" "Most annotation scopes are *lazily evaluated*. This includes annotations, " "the values of type aliases created through the :keyword:`type` statement, " @@ -388,11 +330,9 @@ msgid "" "is accessed." msgstr "" -#: ../../reference/executionmodel.rst:258 msgid "Example:" msgstr "" -#: ../../reference/executionmodel.rst:260 msgid "" ">>> type Alias = 1/0\n" ">>> Alias.__value__\n" @@ -407,20 +347,17 @@ msgid "" "ZeroDivisionError: division by zero" msgstr "" -#: ../../reference/executionmodel.rst:274 msgid "" "Here the exception is raised only when the ``__value__`` attribute of the " "type alias or the ``__bound__`` attribute of the type variable is accessed." msgstr "" -#: ../../reference/executionmodel.rst:278 msgid "" "This behavior is primarily useful for references to types that have not yet " "been defined when the type alias or type variable is created. For example, " "lazy evaluation enables creation of mutually recursive type aliases::" msgstr "" -#: ../../reference/executionmodel.rst:282 msgid "" "from typing import Literal\n" "\n" @@ -429,47 +366,40 @@ msgid "" "type Expr = SimpleExpr | tuple[SimpleExpr, Literal[\"+\", \"-\"], Expr]" msgstr "" -#: ../../reference/executionmodel.rst:288 msgid "" "Lazily evaluated values are evaluated in :ref:`annotation scope `, which means that names that appear inside the lazily evaluated " "value are looked up as if they were used in the immediately enclosing scope." msgstr "" -#: ../../reference/executionmodel.rst:297 msgid "Builtins and restricted execution" msgstr "" -#: ../../reference/executionmodel.rst:303 msgid "" "Users should not touch ``__builtins__``; it is strictly an implementation " -"detail. Users wanting to override values in the builtins namespace " -"should :keyword:`import` the :mod:`builtins` module and modify its " -"attributes appropriately." +"detail. Users wanting to override values in the builtins namespace should :" +"keyword:`import` the :mod:`builtins` module and modify its attributes " +"appropriately." msgstr "" -#: ../../reference/executionmodel.rst:308 msgid "" "The builtins namespace associated with the execution of a code block is " "actually found by looking up the name ``__builtins__`` in its global " "namespace; this should be a dictionary or a module (in the latter case the " "module's dictionary is used). By default, when in the :mod:`__main__` " "module, ``__builtins__`` is the built-in module :mod:`builtins`; when in any " -"other module, ``__builtins__`` is an alias for the dictionary of " -"the :mod:`builtins` module itself." +"other module, ``__builtins__`` is an alias for the dictionary of the :mod:" +"`builtins` module itself." msgstr "" -#: ../../reference/executionmodel.rst:320 msgid "Interaction with dynamic features" msgstr "" -#: ../../reference/executionmodel.rst:322 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" msgstr "" -#: ../../reference/executionmodel.rst:325 msgid "" "i = 10\n" "def f():\n" @@ -478,22 +408,19 @@ msgid "" "f()" msgstr "" -#: ../../reference/executionmodel.rst:333 msgid "" "The :func:`eval` and :func:`exec` functions do not have access to the full " "environment for resolving names. Names may be resolved in the local and " "global namespaces of the caller. Free variables are not resolved in the " -"nearest enclosing namespace, but in the global namespace. [#]_ " -"The :func:`exec` and :func:`eval` functions have optional arguments to " -"override the global and local namespace. If only one namespace is " -"specified, it is used for both." +"nearest enclosing namespace, but in the global namespace. [#]_ The :func:" +"`exec` and :func:`eval` functions have optional arguments to override the " +"global and local namespace. If only one namespace is specified, it is used " +"for both." msgstr "" -#: ../../reference/executionmodel.rst:347 msgid "Exceptions" msgstr "Kivételek" -#: ../../reference/executionmodel.rst:358 msgid "" "Exceptions are a means of breaking out of the normal flow of control of a " "code block in order to handle errors or other exceptional conditions. An " @@ -502,18 +429,16 @@ msgid "" "or indirectly invoked the code block where the error occurred." msgstr "" -#: ../../reference/executionmodel.rst:364 msgid "" "The Python interpreter raises an exception when it detects a run-time error " "(such as division by zero). A Python program can also explicitly raise an " "exception with the :keyword:`raise` statement. Exception handlers are " -"specified with the :keyword:`try` ... :keyword:`except` statement. " -"The :keyword:`finally` clause of such a statement can be used to specify " -"cleanup code which does not handle the exception, but is executed whether an " +"specified with the :keyword:`try` ... :keyword:`except` statement. The :" +"keyword:`finally` clause of such a statement can be used to specify cleanup " +"code which does not handle the exception, but is executed whether an " "exception occurred or not in the preceding code." msgstr "" -#: ../../reference/executionmodel.rst:374 msgid "" "Python uses the \"termination\" model of error handling: an exception " "handler can find out what happened and continue execution at an outer level, " @@ -521,15 +446,13 @@ msgid "" "(except by re-entering the offending piece of code from the top)." msgstr "" -#: ../../reference/executionmodel.rst:381 msgid "" "When an exception is not handled at all, the interpreter terminates " "execution of the program, or returns to its interactive main loop. In " -"either case, it prints a stack traceback, except when the exception " -"is :exc:`SystemExit`." +"either case, it prints a stack traceback, except when the exception is :exc:" +"`SystemExit`." msgstr "" -#: ../../reference/executionmodel.rst:385 msgid "" "Exceptions are identified by class instances. The :keyword:`except` clause " "is selected depending on the class of the instance: it must reference the " @@ -538,7 +461,6 @@ msgid "" "additional information about the exceptional condition." msgstr "" -#: ../../reference/executionmodel.rst:393 msgid "" "Exception messages are not part of the Python API. Their contents may " "change from one version of Python to the next without warning and should not " @@ -546,126 +468,96 @@ msgid "" "interpreter." msgstr "" -#: ../../reference/executionmodel.rst:397 msgid "" -"See also the description of the :keyword:`try` statement in " -"section :ref:`try` and :keyword:`raise` statement in section :ref:`raise`." +"See also the description of the :keyword:`try` statement in section :ref:" +"`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" -#: ../../reference/executionmodel.rst:402 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../reference/executionmodel.rst:403 msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" -#: ../../reference/executionmodel.rst:8 msgid "execution model" msgstr "" -#: ../../reference/executionmodel.rst:8 msgid "code" msgstr "" -#: ../../reference/executionmodel.rst:8 ../../reference/executionmodel.rst:17 msgid "block" msgstr "" -#: ../../reference/executionmodel.rst:31 ../../reference/executionmodel.rst:299 msgid "execution" msgstr "" -#: ../../reference/executionmodel.rst:31 msgid "frame" msgstr "" -#: ../../reference/executionmodel.rst:42 msgid "namespace" msgstr "" -#: ../../reference/executionmodel.rst:42 ../../reference/executionmodel.rst:103 msgid "scope" msgstr "" -#: ../../reference/executionmodel.rst:51 msgid "name" msgstr "" -#: ../../reference/executionmodel.rst:51 msgid "binding" msgstr "" -#: ../../reference/executionmodel.rst:57 msgid "from" msgstr "" -#: ../../reference/executionmodel.rst:57 msgid "import statement" msgstr "" -#: ../../reference/executionmodel.rst:87 msgid "free" msgstr "" -#: ../../reference/executionmodel.rst:87 msgid "variable" msgstr "" -#: ../../reference/executionmodel.rst:111 msgid "environment" msgstr "" -#: ../../reference/executionmodel.rst:117 msgid "NameError (built-in exception)" msgstr "" -#: ../../reference/executionmodel.rst:117 msgid "UnboundLocalError" msgstr "" -#: ../../reference/executionmodel.rst:158 msgid "module" msgstr "" -#: ../../reference/executionmodel.rst:158 msgid "__main__" msgstr "" -#: ../../reference/executionmodel.rst:299 msgid "restricted" msgstr "" -#: ../../reference/executionmodel.rst:349 msgid "exception" msgstr "" -#: ../../reference/executionmodel.rst:351 msgid "raise an exception" msgstr "" -#: ../../reference/executionmodel.rst:351 msgid "handle an exception" msgstr "" -#: ../../reference/executionmodel.rst:351 msgid "exception handler" msgstr "" -#: ../../reference/executionmodel.rst:351 msgid "errors" msgstr "" -#: ../../reference/executionmodel.rst:351 msgid "error handling" msgstr "" -#: ../../reference/executionmodel.rst:372 msgid "termination model" msgstr "" -#: ../../reference/executionmodel.rst:379 msgid "SystemExit (built-in exception)" msgstr "" diff --git a/reference/expressions.po b/reference/expressions.po index 4085c38..7d95c3c 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,146 +22,120 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/expressions.rst:6 msgid "Expressions" msgstr "" -#: ../../reference/expressions.rst:10 msgid "" "This chapter explains the meaning of the elements of expressions in Python." msgstr "" -#: ../../reference/expressions.rst:12 msgid "" "**Syntax Notes:** In this and the following chapters, extended BNF notation " "will be used to describe syntax, not lexical analysis. When (one " "alternative of) a syntax rule has the form" msgstr "" -#: ../../reference/expressions.rst:19 msgid "" "and no semantics are given, the semantics of this form of ``name`` are the " "same as for ``othername``." msgstr "" -#: ../../reference/expressions.rst:26 msgid "Arithmetic conversions" msgstr "" -#: ../../reference/expressions.rst:30 msgid "" "When a description of an arithmetic operator below uses the phrase \"the " "numeric arguments are converted to a common real type\", this means that the " "operator implementation for built-in types works as follows:" msgstr "" -#: ../../reference/expressions.rst:34 msgid "If both arguments are complex numbers, no conversion is performed;" msgstr "" -#: ../../reference/expressions.rst:36 msgid "" "if either argument is a complex or a floating-point number, the other is " "converted to a floating-point number;" msgstr "" -#: ../../reference/expressions.rst:38 msgid "otherwise, both must be integers and no conversion is necessary." msgstr "" -#: ../../reference/expressions.rst:40 msgid "" "Some additional rules apply for certain operators (e.g., a string as a left " "argument to the '%' operator). Extensions must define their own conversion " "behavior." msgstr "" -#: ../../reference/expressions.rst:48 msgid "Atoms" msgstr "" -#: ../../reference/expressions.rst:52 msgid "" "Atoms are the most basic elements of expressions. The simplest atoms are " "identifiers or literals. Forms enclosed in parentheses, brackets or braces " "are also categorized syntactically as atoms. The syntax for atoms is:" msgstr "" -#: ../../reference/expressions.rst:65 msgid "Identifiers (Names)" msgstr "" -#: ../../reference/expressions.rst:69 msgid "" -"An identifier occurring as an atom is a name. See " -"section :ref:`identifiers` for lexical definition and section :ref:`naming` " -"for documentation of naming and binding." +"An identifier occurring as an atom is a name. See section :ref:" +"`identifiers` for lexical definition and section :ref:`naming` for " +"documentation of naming and binding." msgstr "" -#: ../../reference/expressions.rst:75 msgid "" "When the name is bound to an object, evaluation of the atom yields that " -"object. When a name is not bound, an attempt to evaluate it raises " -"a :exc:`NameError` exception." +"object. When a name is not bound, an attempt to evaluate it raises a :exc:" +"`NameError` exception." msgstr "" -#: ../../reference/expressions.rst:86 msgid "Private name mangling" msgstr "" -#: ../../reference/expressions.rst:88 msgid "" "When an identifier that textually occurs in a class definition begins with " "two or more underscore characters and does not end in two or more " "underscores, it is considered a :dfn:`private name` of that class." msgstr "" -#: ../../reference/expressions.rst:94 msgid "The :ref:`class specifications `." msgstr "" -#: ../../reference/expressions.rst:96 msgid "" "More precisely, private names are transformed to a longer form before code " "is generated for them. If the transformed name is longer than 255 " "characters, implementation-defined truncation may happen." msgstr "" -#: ../../reference/expressions.rst:100 msgid "" "The transformation is independent of the syntactical context in which the " "identifier is used but only the following private identifiers are mangled:" msgstr "" -#: ../../reference/expressions.rst:103 msgid "" "Any name used as the name of a variable that is assigned or read or any name " "of an attribute being accessed." msgstr "" -#: ../../reference/expressions.rst:106 msgid "" "The :attr:`~definition.__name__` attribute of nested functions, classes, and " "type aliases is however not mangled." msgstr "" -#: ../../reference/expressions.rst:109 msgid "" "The name of imported modules, e.g., ``__spam`` in ``import __spam``. If the " "module is part of a package (i.e., its name contains a dot), the name is " "*not* mangled, e.g., the ``__foo`` in ``import __foo.bar`` is not mangled." msgstr "" -#: ../../reference/expressions.rst:114 msgid "" "The name of an imported member, e.g., ``__f`` in ``from spam import __f``." msgstr "" -#: ../../reference/expressions.rst:116 msgid "The transformation rule is defined as follows:" msgstr "" -#: ../../reference/expressions.rst:118 msgid "" "The class name, with leading underscores removed and a single leading " "underscore inserted, is inserted in front of the identifier, e.g., the " @@ -170,31 +143,26 @@ msgid "" "``__Foo`` is transformed to ``_Foo__spam``." msgstr "" -#: ../../reference/expressions.rst:123 msgid "" "If the class name consists only of underscores, the transformation is the " "identity, e.g., the identifier ``__spam`` occurring in a class named ``_`` " "or ``__`` is left as is." msgstr "" -#: ../../reference/expressions.rst:130 msgid "Literals" msgstr "" -#: ../../reference/expressions.rst:134 msgid "Python supports string and bytes literals and various numeric literals:" msgstr "" -#: ../../reference/expressions.rst:141 msgid "" "Evaluation of a literal yields an object of the given type (string, bytes, " "integer, floating-point number, complex number) with the given value. The " "value may be approximated in the case of floating-point and imaginary " -"(complex) literals. See section :ref:`literals` for details. See " -"section :ref:`string-concatenation` for details on ``strings``." +"(complex) literals. See section :ref:`literals` for details. See section :" +"ref:`string-concatenation` for details on ``strings``." msgstr "" -#: ../../reference/expressions.rst:153 msgid "" "All literals correspond to immutable data types, and hence the object's " "identity is less important than its value. Multiple evaluations of literals " @@ -203,35 +171,29 @@ msgid "" "the same value." msgstr "" -#: ../../reference/expressions.rst:163 msgid "String literal concatenation" msgstr "" -#: ../../reference/expressions.rst:165 msgid "" "Multiple adjacent string or bytes literals (delimited by whitespace), " "possibly using different quoting conventions, are allowed, and their meaning " "is the same as their concatenation::" msgstr "" -#: ../../reference/expressions.rst:169 msgid "" ">>> \"hello\" 'world'\n" "\"helloworld\"" msgstr "" -#: ../../reference/expressions.rst:172 msgid "Formally:" msgstr "" -#: ../../reference/expressions.rst:179 msgid "" "This feature is defined at the syntactical level, so it only works with " "literals. To concatenate string expressions at run time, the '+' operator " "may be used::" msgstr "" -#: ../../reference/expressions.rst:182 msgid "" ">>> greeting = \"Hello\"\n" ">>> space = \" \"\n" @@ -240,69 +202,58 @@ msgid "" "Hello Blaise" msgstr "" -#: ../../reference/expressions.rst:188 msgid "" "Literal concatenation can freely mix raw strings, triple-quoted strings, and " "formatted string literals. For example::" msgstr "" -#: ../../reference/expressions.rst:192 msgid "" ">>> \"Hello\" r', ' f\"{name}!\"\n" "\"Hello, Blaise!\"" msgstr "" -#: ../../reference/expressions.rst:195 msgid "" "This feature can be used to reduce the number of backslashes needed, to " "split long strings conveniently across long lines, or even to add comments " "to parts of strings. For example::" msgstr "" -#: ../../reference/expressions.rst:199 msgid "" "re.compile(\"[A-Za-z_]\" # letter or underscore\n" " \"[A-Za-z0-9_]*\" # letter, digit or underscore\n" " )" msgstr "" -#: ../../reference/expressions.rst:203 msgid "" "However, bytes literals may only be combined with other byte literals; not " "with string literals of any kind. Also, template string literals may only be " "combined with other template string literals::" msgstr "" -#: ../../reference/expressions.rst:208 msgid "" ">>> t\"Hello\" t\"{name}!\"\n" "Template(strings=('Hello', '!'), interpolations=(...))" msgstr "" -#: ../../reference/expressions.rst:215 msgid "Parenthesized forms" msgstr "" -#: ../../reference/expressions.rst:221 msgid "" "A parenthesized form is an optional expression list enclosed in parentheses:" msgstr "" -#: ../../reference/expressions.rst:226 msgid "" "A parenthesized expression list yields whatever that expression list yields: " "if the list contains at least one comma, it yields a tuple; otherwise, it " "yields the single expression that makes up the expression list." msgstr "" -#: ../../reference/expressions.rst:232 msgid "" "An empty pair of parentheses yields an empty tuple object. Since tuples are " "immutable, the same rules as for literals apply (i.e., two occurrences of " "the empty tuple may or may not yield the same object)." msgstr "" -#: ../../reference/expressions.rst:240 msgid "" "Note that tuples are not formed by the parentheses, but rather by use of the " "comma. The exception is the empty tuple, for which parentheses *are* " @@ -310,41 +261,34 @@ msgid "" "ambiguities and allow common typos to pass uncaught." msgstr "" -#: ../../reference/expressions.rst:249 msgid "Displays for lists, sets and dictionaries" msgstr "" -#: ../../reference/expressions.rst:253 msgid "" "For constructing a list, a set or a dictionary Python provides special " "syntax called \"displays\", each of them in two flavors:" msgstr "" -#: ../../reference/expressions.rst:256 msgid "either the container contents are listed explicitly, or" msgstr "" -#: ../../reference/expressions.rst:258 msgid "" -"they are computed via a set of looping and filtering instructions, called " -"a :dfn:`comprehension`." +"they are computed via a set of looping and filtering instructions, called a :" +"dfn:`comprehension`." msgstr "" -#: ../../reference/expressions.rst:266 msgid "Common syntax elements for comprehensions are:" msgstr "" -#: ../../reference/expressions.rst:274 msgid "" -"The comprehension consists of a single expression followed by at least " -"one :keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!" -"if` clauses. In this case, the elements of the new container are those that " +"The comprehension consists of a single expression followed by at least one :" +"keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` " +"clauses. In this case, the elements of the new container are those that " "would be produced by considering each of the :keyword:`!for` or :keyword:`!" "if` clauses a block, nesting from left to right, and evaluating the " "expression to produce an element each time the innermost block is reached." msgstr "" -#: ../../reference/expressions.rst:281 msgid "" "However, aside from the iterable expression in the leftmost :keyword:`!for` " "clause, the comprehension is executed in a separate implicitly nested scope. " @@ -352,7 +296,6 @@ msgid "" "the enclosing scope." msgstr "" -#: ../../reference/expressions.rst:285 msgid "" "The iterable expression in the leftmost :keyword:`!for` clause is evaluated " "directly in the enclosing scope and then passed as an argument to the " @@ -362,24 +305,21 @@ msgid "" "iterable. For example: ``[x*y for x in range(10) for y in range(x, x+10)]``." msgstr "" -#: ../../reference/expressions.rst:292 msgid "" "To ensure the comprehension always results in a container of the appropriate " "type, ``yield`` and ``yield from`` expressions are prohibited in the " "implicitly nested scope." msgstr "" -#: ../../reference/expressions.rst:299 msgid "" "Since Python 3.6, in an :keyword:`async def` function, an :keyword:`!async " "for` clause may be used to iterate over a :term:`asynchronous iterator`. A " -"comprehension in an :keyword:`!async def` function may consist of either " -"a :keyword:`!for` or :keyword:`!async for` clause following the leading " +"comprehension in an :keyword:`!async def` function may consist of either a :" +"keyword:`!for` or :keyword:`!async for` clause following the leading " "expression, may contain additional :keyword:`!for` or :keyword:`!async for` " "clauses, and may also use :keyword:`await` expressions." msgstr "" -#: ../../reference/expressions.rst:306 msgid "" "If a comprehension contains :keyword:`!async for` clauses, or if it " "contains :keyword:`!await` expressions or other asynchronous comprehensions " @@ -389,31 +329,25 @@ msgid "" "it appears. See also :pep:`530`." msgstr "" -#: ../../reference/expressions.rst:313 msgid "Asynchronous comprehensions were introduced." msgstr "" -#: ../../reference/expressions.rst:316 ../../reference/expressions.rst:495 msgid "``yield`` and ``yield from`` prohibited in the implicitly nested scope." msgstr "" -#: ../../reference/expressions.rst:319 msgid "" "Asynchronous comprehensions are now allowed inside comprehensions in " "asynchronous functions. Outer comprehensions implicitly become asynchronous." msgstr "" -#: ../../reference/expressions.rst:328 msgid "List displays" msgstr "" -#: ../../reference/expressions.rst:338 msgid "" "A list display is a possibly empty series of expressions enclosed in square " "brackets:" msgstr "" -#: ../../reference/expressions.rst:344 msgid "" "A list display yields a new list object, the contents being specified by " "either a list of expressions or a comprehension. When a comma-separated " @@ -423,17 +357,14 @@ msgid "" "comprehension." msgstr "" -#: ../../reference/expressions.rst:354 msgid "Set displays" msgstr "" -#: ../../reference/expressions.rst:363 msgid "" "A set display is denoted by curly braces and distinguishable from dictionary " "displays by the lack of colons separating keys and values:" msgstr "" -#: ../../reference/expressions.rst:369 msgid "" "A set display yields a new mutable set object, the contents being specified " "by either a sequence of expressions or a comprehension. When a comma-" @@ -443,27 +374,22 @@ msgid "" "comprehension." msgstr "" -#: ../../reference/expressions.rst:375 msgid "" "An empty set cannot be constructed with ``{}``; this literal constructs an " "empty dictionary." msgstr "" -#: ../../reference/expressions.rst:382 msgid "Dictionary displays" msgstr "" -#: ../../reference/expressions.rst:393 msgid "" "A dictionary display is a possibly empty series of dict items (key/value " "pairs) enclosed in curly braces:" msgstr "" -#: ../../reference/expressions.rst:402 msgid "A dictionary display yields a new dictionary object." msgstr "" -#: ../../reference/expressions.rst:404 msgid "" "If a comma-separated sequence of dict items is given, they are evaluated " "from left to right to define the entries of the dictionary: each key object " @@ -473,7 +399,6 @@ msgid "" "given." msgstr "" -#: ../../reference/expressions.rst:414 msgid "" "A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " "must be a :term:`mapping`. Each mapping item is added to the new " @@ -481,11 +406,9 @@ msgid "" "and earlier dictionary unpackings." msgstr "" -#: ../../reference/expressions.rst:419 msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." msgstr "" -#: ../../reference/expressions.rst:422 msgid "" "A dict comprehension, in contrast to list and set comprehensions, needs two " "expressions separated with a colon followed by the usual \"for\" and \"if\" " @@ -493,16 +416,14 @@ msgid "" "are inserted in the new dictionary in the order they are produced." msgstr "" -#: ../../reference/expressions.rst:430 msgid "" -"Restrictions on the types of the key values are listed earlier in " -"section :ref:`types`. (To summarize, the key type should " -"be :term:`hashable`, which excludes all mutable objects.) Clashes between " -"duplicate keys are not detected; the last value (textually rightmost in the " -"display) stored for a given key value prevails." +"Restrictions on the types of the key values are listed earlier in section :" +"ref:`types`. (To summarize, the key type should be :term:`hashable`, which " +"excludes all mutable objects.) Clashes between duplicate keys are not " +"detected; the last value (textually rightmost in the display) stored for a " +"given key value prevails." msgstr "" -#: ../../reference/expressions.rst:436 msgid "" "Prior to Python 3.8, in dict comprehensions, the evaluation order of key and " "value was not well-defined. In CPython, the value was evaluated before the " @@ -510,85 +431,72 @@ msgid "" "by :pep:`572`." msgstr "" -#: ../../reference/expressions.rst:446 msgid "Generator expressions" msgstr "" -#: ../../reference/expressions.rst:453 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" -#: ../../reference/expressions.rst:458 msgid "" "A generator expression yields a new generator object. Its syntax is the " "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" -#: ../../reference/expressions.rst:462 msgid "" -"Variables used in the generator expression are evaluated lazily when " -"the :meth:`~generator.__next__` method is called for the generator object " -"(in the same fashion as normal generators). However, the iterable " -"expression in the leftmost :keyword:`!for` clause is immediately evaluated, " -"and the :term:`iterator` is immediately created for that iterable, so that " -"an error produced while creating the iterator will be emitted at the point " -"where the generator expression is defined, rather than at the point where " -"the first value is retrieved. Subsequent :keyword:`!for` clauses and any " -"filter condition in the leftmost :keyword:`!for` clause cannot be evaluated " -"in the enclosing scope as they may depend on the values obtained from the " -"leftmost iterable. For example: ``(x*y for x in range(10) for y in range(x, " -"x+10))``." +"Variables used in the generator expression are evaluated lazily when the :" +"meth:`~generator.__next__` method is called for the generator object (in the " +"same fashion as normal generators). However, the iterable expression in the " +"leftmost :keyword:`!for` clause is immediately evaluated, and the :term:" +"`iterator` is immediately created for that iterable, so that an error " +"produced while creating the iterator will be emitted at the point where the " +"generator expression is defined, rather than at the point where the first " +"value is retrieved. Subsequent :keyword:`!for` clauses and any filter " +"condition in the leftmost :keyword:`!for` clause cannot be evaluated in the " +"enclosing scope as they may depend on the values obtained from the leftmost " +"iterable. For example: ``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" -#: ../../reference/expressions.rst:474 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." msgstr "" -#: ../../reference/expressions.rst:477 msgid "" "To avoid interfering with the expected operation of the generator expression " "itself, ``yield`` and ``yield from`` expressions are prohibited in the " "implicitly defined generator." msgstr "" -#: ../../reference/expressions.rst:481 msgid "" -"If a generator expression contains either :keyword:`!async for` clauses " -"or :keyword:`await` expressions it is called an :dfn:`asynchronous generator " +"If a generator expression contains either :keyword:`!async for` clauses or :" +"keyword:`await` expressions it is called an :dfn:`asynchronous generator " "expression`. An asynchronous generator expression returns a new " -"asynchronous generator object, which is an asynchronous iterator " -"(see :ref:`async-iterators`)." +"asynchronous generator object, which is an asynchronous iterator (see :ref:" +"`async-iterators`)." msgstr "" -#: ../../reference/expressions.rst:487 msgid "Asynchronous generator expressions were introduced." msgstr "" -#: ../../reference/expressions.rst:490 msgid "" "Prior to Python 3.7, asynchronous generator expressions could only appear " "in :keyword:`async def` coroutines. Starting with 3.7, any function can use " "asynchronous generator expressions." msgstr "" -#: ../../reference/expressions.rst:502 msgid "Yield expressions" msgstr "" -#: ../../reference/expressions.rst:515 msgid "" "The yield expression is used when defining a :term:`generator` function or " "an :term:`asynchronous generator` function and thus can only be used in the " "body of a function definition. Using a yield expression in a function's " -"body causes that function to be a generator function, and using it in " -"an :keyword:`async def` function's body causes that coroutine function to be " -"an asynchronous generator function. For example::" +"body causes that function to be a generator function, and using it in an :" +"keyword:`async def` function's body causes that coroutine function to be an " +"asynchronous generator function. For example::" msgstr "" -#: ../../reference/expressions.rst:522 msgid "" "def gen(): # defines a generator function\n" " yield 123\n" @@ -597,48 +505,43 @@ msgid "" " yield 123" msgstr "" -#: ../../reference/expressions.rst:528 msgid "" "Due to their side effects on the containing scope, ``yield`` expressions are " "not permitted as part of the implicitly defined scopes used to implement " "comprehensions and generator expressions." msgstr "" -#: ../../reference/expressions.rst:532 msgid "" "Yield expressions prohibited in the implicitly nested scopes used to " "implement comprehensions and generator expressions." msgstr "" -#: ../../reference/expressions.rst:536 msgid "" "Generator functions are described below, while asynchronous generator " "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -#: ../../reference/expressions.rst:540 msgid "" "When a generator function is called, it returns an iterator known as a " "generator. That generator then controls the execution of the generator " "function. The execution starts when one of the generator's methods is " "called. At that time, the execution proceeds to the first yield expression, " -"where it is suspended again, returning the value of :token:`~python-" -"grammar:yield_list` to the generator's caller, or ``None`` " -"if :token:`~python-grammar:yield_list` is omitted. By suspended, we mean " -"that all local state is retained, including the current bindings of local " -"variables, the instruction pointer, the internal evaluation stack, and the " -"state of any exception handling. When the execution is resumed by calling " -"one of the generator's methods, the function can proceed exactly as if the " -"yield expression were just another external call. The value of the yield " +"where it is suspended again, returning the value of :token:`~python-grammar:" +"yield_list` to the generator's caller, or ``None`` if :token:`~python-" +"grammar:yield_list` is omitted. By suspended, we mean that all local state " +"is retained, including the current bindings of local variables, the " +"instruction pointer, the internal evaluation stack, and the state of any " +"exception handling. When the execution is resumed by calling one of the " +"generator's methods, the function can proceed exactly as if the yield " +"expression were just another external call. The value of the yield " "expression after resuming depends on the method which resumed the " -"execution. If :meth:`~generator.__next__` is used (typically via either " -"a :keyword:`for` or the :func:`next` builtin) then the result " -"is :const:`None`. Otherwise, if :meth:`~generator.send` is used, then the " -"result will be the value passed in to that method." +"execution. If :meth:`~generator.__next__` is used (typically via either a :" +"keyword:`for` or the :func:`next` builtin) then the result is :const:" +"`None`. Otherwise, if :meth:`~generator.send` is used, then the result will " +"be the value passed in to that method." msgstr "" -#: ../../reference/expressions.rst:560 msgid "" "All of this makes generator functions quite similar to coroutines; they " "yield multiple times, they have more than one entry point and their " @@ -647,122 +550,102 @@ msgid "" "the control is always transferred to the generator's caller." msgstr "" -#: ../../reference/expressions.rst:566 msgid "" "Yield expressions are allowed anywhere in a :keyword:`try` construct. If " "the generator is not resumed before it is finalized (by reaching a zero " -"reference count or by being garbage collected), the generator-" -"iterator's :meth:`~generator.close` method will be called, allowing any " -"pending :keyword:`finally` clauses to execute." +"reference count or by being garbage collected), the generator-iterator's :" +"meth:`~generator.close` method will be called, allowing any pending :keyword:" +"`finally` clauses to execute." msgstr "" -#: ../../reference/expressions.rst:575 msgid "" "When ``yield from `` is used, the supplied expression must be an " "iterable. The values produced by iterating that iterable are passed directly " -"to the caller of the current generator's methods. Any values passed in " -"with :meth:`~generator.send` and any exceptions passed in " -"with :meth:`~generator.throw` are passed to the underlying iterator if it " -"has the appropriate methods. If this is not the case, " -"then :meth:`~generator.send` will raise :exc:`AttributeError` " -"or :exc:`TypeError`, while :meth:`~generator.throw` will just raise the " -"passed in exception immediately." +"to the caller of the current generator's methods. Any values passed in with :" +"meth:`~generator.send` and any exceptions passed in with :meth:`~generator." +"throw` are passed to the underlying iterator if it has the appropriate " +"methods. If this is not the case, then :meth:`~generator.send` will raise :" +"exc:`AttributeError` or :exc:`TypeError`, while :meth:`~generator.throw` " +"will just raise the passed in exception immediately." msgstr "" -#: ../../reference/expressions.rst:584 msgid "" "When the underlying iterator is complete, the :attr:`~StopIteration.value` " "attribute of the raised :exc:`StopIteration` instance becomes the value of " -"the yield expression. It can be either set explicitly when " -"raising :exc:`StopIteration`, or automatically when the subiterator is a " -"generator (by returning a value from the subgenerator)." +"the yield expression. It can be either set explicitly when raising :exc:" +"`StopIteration`, or automatically when the subiterator is a generator (by " +"returning a value from the subgenerator)." msgstr "" -#: ../../reference/expressions.rst:590 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" -#: ../../reference/expressions.rst:593 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." msgstr "" -#: ../../reference/expressions.rst:598 msgid ":pep:`255` - Simple Generators" msgstr "" -#: ../../reference/expressions.rst:599 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." msgstr "" -#: ../../reference/expressions.rst:601 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr "" -#: ../../reference/expressions.rst:602 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." msgstr "" -#: ../../reference/expressions.rst:605 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr "" -#: ../../reference/expressions.rst:606 msgid "" "The proposal to introduce the :token:`~python-grammar:yield_from` syntax, " "making delegation to subgenerators easy." msgstr "" -#: ../../reference/expressions.rst:609 msgid ":pep:`525` - Asynchronous Generators" msgstr "" -#: ../../reference/expressions.rst:610 msgid "" "The proposal that expanded on :pep:`492` by adding generator capabilities to " "coroutine functions." msgstr "" -#: ../../reference/expressions.rst:617 msgid "Generator-iterator methods" msgstr "" -#: ../../reference/expressions.rst:619 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." msgstr "" -#: ../../reference/expressions.rst:622 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." msgstr "" -#: ../../reference/expressions.rst:630 msgid "" "Starts the execution of a generator function or resumes it at the last " -"executed yield expression. When a generator function is resumed with " -"a :meth:`~generator.__next__` method, the current yield expression always " +"executed yield expression. When a generator function is resumed with a :" +"meth:`~generator.__next__` method, the current yield expression always " "evaluates to :const:`None`. The execution then continues to the next yield " -"expression, where the generator is suspended again, and the value of " -"the :token:`~python-grammar:yield_list` is returned to :meth:`__next__`'s " -"caller. If the generator exits without yielding another value, " -"a :exc:`StopIteration` exception is raised." +"expression, where the generator is suspended again, and the value of the :" +"token:`~python-grammar:yield_list` is returned to :meth:`__next__`'s " +"caller. If the generator exits without yielding another value, a :exc:" +"`StopIteration` exception is raised." msgstr "" -#: ../../reference/expressions.rst:639 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." msgstr "" -#: ../../reference/expressions.rst:645 msgid "" "Resumes the execution and \"sends\" a value into the generator function. " "The *value* argument becomes the result of the current yield expression. " @@ -773,7 +656,6 @@ msgid "" "expression that could receive the value." msgstr "" -#: ../../reference/expressions.rst:657 msgid "" "Raises an exception at the point where the generator was paused, and returns " "the next value yielded by the generator function. If the generator exits " @@ -782,13 +664,11 @@ msgid "" "a different exception, then that exception propagates to the caller." msgstr "" -#: ../../reference/expressions.rst:663 msgid "" "In typical use, this is called with a single exception instance similar to " "the way the :keyword:`raise` keyword is used." msgstr "" -#: ../../reference/expressions.rst:666 msgid "" "For backwards compatibility, however, the second signature is supported, " "following a convention from older versions of Python. The *type* argument " @@ -799,44 +679,38 @@ msgid "" "*value* may be cleared." msgstr "" -#: ../../reference/expressions.rst:677 ../../reference/expressions.rst:863 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." msgstr "" -#: ../../reference/expressions.rst:685 msgid "" "Raises a :exc:`GeneratorExit` exception at the point where the generator " "function was paused (equivalent to calling ``throw(GeneratorExit)``). The " "exception is raised by the yield expression where the generator was paused. " "If the generator function catches the exception and returns a value, this " "value is returned from :meth:`close`. If the generator function is already " -"closed, or raises :exc:`GeneratorExit` (by not catching the " -"exception), :meth:`close` returns :const:`None`. If the generator yields a " -"value, a :exc:`RuntimeError` is raised. If the generator raises any other " -"exception, it is propagated to the caller. If the generator has already " -"exited due to an exception or normal exit, :meth:`close` " -"returns :const:`None` and has no other effect." +"closed, or raises :exc:`GeneratorExit` (by not catching the exception), :" +"meth:`close` returns :const:`None`. If the generator yields a value, a :exc:" +"`RuntimeError` is raised. If the generator raises any other exception, it " +"is propagated to the caller. If the generator has already exited due to an " +"exception or normal exit, :meth:`close` returns :const:`None` and has no " +"other effect." msgstr "" -#: ../../reference/expressions.rst:699 msgid "" -"If a generator returns a value upon being closed, the value is returned " -"by :meth:`close`." +"If a generator returns a value upon being closed, the value is returned by :" +"meth:`close`." msgstr "" -#: ../../reference/expressions.rst:705 msgid "Examples" msgstr "" -#: ../../reference/expressions.rst:707 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" -#: ../../reference/expressions.rst:710 msgid "" ">>> def echo(value=None):\n" "... print(\"Execution starts when 'next()' is called for the first time." @@ -864,53 +738,46 @@ msgid "" "Don't forget to clean up when 'close()' is called." msgstr "" -#: ../../reference/expressions.rst:734 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" -#: ../../reference/expressions.rst:740 msgid "Asynchronous generator functions" msgstr "" -#: ../../reference/expressions.rst:742 msgid "" -"The presence of a yield expression in a function or method defined " -"using :keyword:`async def` further defines the function as " -"an :term:`asynchronous generator` function." +"The presence of a yield expression in a function or method defined using :" +"keyword:`async def` further defines the function as an :term:`asynchronous " +"generator` function." msgstr "" -#: ../../reference/expressions.rst:746 msgid "" "When an asynchronous generator function is called, it returns an " "asynchronous iterator known as an asynchronous generator object. That object " "then controls the execution of the generator function. An asynchronous " "generator object is typically used in an :keyword:`async for` statement in a " -"coroutine function analogously to how a generator object would be used in " -"a :keyword:`for` statement." -msgstr "" - -#: ../../reference/expressions.rst:753 -msgid "" -"Calling one of the asynchronous generator's methods returns " -"an :term:`awaitable` object, and the execution starts when this object is " -"awaited on. At that time, the execution proceeds to the first yield " -"expression, where it is suspended again, returning the value " -"of :token:`~python-grammar:yield_list` to the awaiting coroutine. As with a " -"generator, suspension means that all local state is retained, including the " -"current bindings of local variables, the instruction pointer, the internal " -"evaluation stack, and the state of any exception handling. When the " -"execution is resumed by awaiting on the next object returned by the " -"asynchronous generator's methods, the function can proceed exactly as if the " -"yield expression were just another external call. The value of the yield " -"expression after resuming depends on the method which resumed the " -"execution. If :meth:`~agen.__anext__` is used then the result " -"is :const:`None`. Otherwise, if :meth:`~agen.asend` is used, then the result " -"will be the value passed in to that method." +"coroutine function analogously to how a generator object would be used in a :" +"keyword:`for` statement." +msgstr "" + +msgid "" +"Calling one of the asynchronous generator's methods returns an :term:" +"`awaitable` object, and the execution starts when this object is awaited on. " +"At that time, the execution proceeds to the first yield expression, where it " +"is suspended again, returning the value of :token:`~python-grammar:" +"yield_list` to the awaiting coroutine. As with a generator, suspension means " +"that all local state is retained, including the current bindings of local " +"variables, the instruction pointer, the internal evaluation stack, and the " +"state of any exception handling. When the execution is resumed by awaiting " +"on the next object returned by the asynchronous generator's methods, the " +"function can proceed exactly as if the yield expression were just another " +"external call. The value of the yield expression after resuming depends on " +"the method which resumed the execution. If :meth:`~agen.__anext__` is used " +"then the result is :const:`None`. Otherwise, if :meth:`~agen.asend` is used, " +"then the result will be the value passed in to that method." msgstr "" -#: ../../reference/expressions.rst:768 msgid "" "If an asynchronous generator happens to exit early by :keyword:`break`, the " "caller task being cancelled, or other exceptions, the generator's async " @@ -922,7 +789,6 @@ msgid "" "generator and ultimately detach it from the event loop." msgstr "" -#: ../../reference/expressions.rst:778 msgid "" "In an asynchronous generator function, yield expressions are allowed " "anywhere in a :keyword:`try` construct. However, if an asynchronous " @@ -936,36 +802,31 @@ msgid "" "finally` clauses to execute." msgstr "" -#: ../../reference/expressions.rst:789 msgid "" "To take care of finalization upon event loop termination, an event loop " "should define a *finalizer* function which takes an asynchronous generator-" "iterator and presumably calls :meth:`~agen.aclose` and executes the " -"coroutine. This *finalizer* may be registered by " -"calling :func:`sys.set_asyncgen_hooks`. When first iterated over, an " -"asynchronous generator-iterator will store the registered *finalizer* to be " -"called upon finalization. For a reference example of a *finalizer* method " -"see the implementation of ``asyncio.Loop.shutdown_asyncgens`` " -"in :source:`Lib/asyncio/base_events.py`." +"coroutine. This *finalizer* may be registered by calling :func:`sys." +"set_asyncgen_hooks`. When first iterated over, an asynchronous generator-" +"iterator will store the registered *finalizer* to be called upon " +"finalization. For a reference example of a *finalizer* method see the " +"implementation of ``asyncio.Loop.shutdown_asyncgens`` in :source:`Lib/" +"asyncio/base_events.py`." msgstr "" -#: ../../reference/expressions.rst:798 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." msgstr "" -#: ../../reference/expressions.rst:805 msgid "Asynchronous generator-iterator methods" msgstr "" -#: ../../reference/expressions.rst:807 msgid "" "This subsection describes the methods of an asynchronous generator iterator, " "which are used to control the execution of a generator function." msgstr "" -#: ../../reference/expressions.rst:816 msgid "" "Returns an awaitable which when run starts to execute the asynchronous " "generator or resumes it at the last executed yield expression. When an " @@ -975,44 +836,40 @@ msgid "" "expression. The value of the :token:`~python-grammar:yield_list` of the " "yield expression is the value of the :exc:`StopIteration` exception raised " "by the completing coroutine. If the asynchronous generator exits without " -"yielding another value, the awaitable instead raises " -"a :exc:`StopAsyncIteration` exception, signalling that the asynchronous " -"iteration has completed." +"yielding another value, the awaitable instead raises a :exc:" +"`StopAsyncIteration` exception, signalling that the asynchronous iteration " +"has completed." msgstr "" -#: ../../reference/expressions.rst:828 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" -#: ../../reference/expressions.rst:834 msgid "" "Returns an awaitable which when run resumes the execution of the " "asynchronous generator. As with the :meth:`~generator.send` method for a " "generator, this \"sends\" a value into the asynchronous generator function, " "and the *value* argument becomes the result of the current yield expression. " "The awaitable returned by the :meth:`asend` method will return the next " -"value yielded by the generator as the value of the " -"raised :exc:`StopIteration`, or raises :exc:`StopAsyncIteration` if the " -"asynchronous generator exits without yielding another value. " -"When :meth:`asend` is called to start the asynchronous generator, it must be " -"called with :const:`None` as the argument, because there is no yield " -"expression that could receive the value." +"value yielded by the generator as the value of the raised :exc:" +"`StopIteration`, or raises :exc:`StopAsyncIteration` if the asynchronous " +"generator exits without yielding another value. When :meth:`asend` is " +"called to start the asynchronous generator, it must be called with :const:" +"`None` as the argument, because there is no yield expression that could " +"receive the value." msgstr "" -#: ../../reference/expressions.rst:851 msgid "" "Returns an awaitable that raises an exception of type ``type`` at the point " "where the asynchronous generator was paused, and returns the next value " -"yielded by the generator function as the value of the " -"raised :exc:`StopIteration` exception. If the asynchronous generator exits " -"without yielding another value, a :exc:`StopAsyncIteration` exception is " -"raised by the awaitable. If the generator function does not catch the passed-" -"in exception, or raises a different exception, then when the awaitable is " -"run that exception propagates to the caller of the awaitable." +"yielded by the generator function as the value of the raised :exc:" +"`StopIteration` exception. If the asynchronous generator exits without " +"yielding another value, a :exc:`StopAsyncIteration` exception is raised by " +"the awaitable. If the generator function does not catch the passed-in " +"exception, or raises a different exception, then when the awaitable is run " +"that exception propagates to the caller of the awaitable." msgstr "" -#: ../../reference/expressions.rst:872 msgid "" "Returns an awaitable that when run will throw a :exc:`GeneratorExit` into " "the asynchronous generator function at the point where it was paused. If the " @@ -1028,25 +885,20 @@ msgid "" "will return an awaitable that does nothing." msgstr "" -#: ../../reference/expressions.rst:888 msgid "Primaries" msgstr "" -#: ../../reference/expressions.rst:892 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" msgstr "" -#: ../../reference/expressions.rst:902 msgid "Attribute references" msgstr "" -#: ../../reference/expressions.rst:908 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" -#: ../../reference/expressions.rst:918 msgid "" "The primary must evaluate to an object of a type that supports attribute " "references, which most objects do. This object is then asked to produce the " @@ -1055,69 +907,57 @@ msgid "" "reference may yield different objects." msgstr "" -#: ../../reference/expressions.rst:924 msgid "" -"This production can be customized by overriding " -"the :meth:`~object.__getattribute__` method or " -"the :meth:`~object.__getattr__` method. The :meth:`!__getattribute__` " -"method is called first and either returns a value or " -"raises :exc:`AttributeError` if the attribute is not available." +"This production can be customized by overriding the :meth:`~object." +"__getattribute__` method or the :meth:`~object.__getattr__` method. The :" +"meth:`!__getattribute__` method is called first and either returns a value " +"or raises :exc:`AttributeError` if the attribute is not available." msgstr "" -#: ../../reference/expressions.rst:930 msgid "" "If an :exc:`AttributeError` is raised and the object has a :meth:`!" "__getattr__` method, that method is called as a fallback." msgstr "" -#: ../../reference/expressions.rst:936 msgid "Subscriptions" msgstr "" -#: ../../reference/expressions.rst:951 msgid "" "The subscription of an instance of a :ref:`container class ` " -"will generally select an element from the container. The subscription of " -"a :term:`generic class ` will generally return " -"a :ref:`GenericAlias ` object." +"will generally select an element from the container. The subscription of a :" +"term:`generic class ` will generally return a :ref:" +"`GenericAlias ` object." msgstr "" -#: ../../reference/expressions.rst:959 msgid "" "When an object is subscripted, the interpreter will evaluate the primary and " "the expression list." msgstr "" -#: ../../reference/expressions.rst:962 msgid "" "The primary must evaluate to an object that supports subscription. An object " -"may support subscription through defining one or both " -"of :meth:`~object.__getitem__` and :meth:`~object.__class_getitem__`. When " -"the primary is subscripted, the evaluated result of the expression list will " -"be passed to one of these methods. For more details on when " -"``__class_getitem__`` is called instead of ``__getitem__``, " -"see :ref:`classgetitem-versus-getitem`." +"may support subscription through defining one or both of :meth:`~object." +"__getitem__` and :meth:`~object.__class_getitem__`. When the primary is " +"subscripted, the evaluated result of the expression list will be passed to " +"one of these methods. For more details on when ``__class_getitem__`` is " +"called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." msgstr "" -#: ../../reference/expressions.rst:969 msgid "" "If the expression list contains at least one comma, or if any of the " -"expressions are starred, the expression list will evaluate to " -"a :class:`tuple` containing the items of the expression list. Otherwise, the " +"expressions are starred, the expression list will evaluate to a :class:" +"`tuple` containing the items of the expression list. Otherwise, the " "expression list will evaluate to the value of the list's sole member." msgstr "" -#: ../../reference/expressions.rst:974 msgid "Expressions in an expression list may be starred. See :pep:`646`." msgstr "" -#: ../../reference/expressions.rst:977 msgid "" "For built-in objects, there are two types of objects that support " "subscription via :meth:`~object.__getitem__`:" msgstr "" -#: ../../reference/expressions.rst:980 msgid "" "Mappings. If the primary is a :term:`mapping`, the expression list must " "evaluate to an object whose value is one of the keys of the mapping, and the " @@ -1125,47 +965,41 @@ msgid "" "An example of a builtin mapping class is the :class:`dict` class." msgstr "" -#: ../../reference/expressions.rst:984 msgid "" "Sequences. If the primary is a :term:`sequence`, the expression list must " "evaluate to an :class:`int` or a :class:`slice` (as discussed in the " -"following section). Examples of builtin sequence classes include " -"the :class:`str`, :class:`list` and :class:`tuple` classes." +"following section). Examples of builtin sequence classes include the :class:" +"`str`, :class:`list` and :class:`tuple` classes." msgstr "" -#: ../../reference/expressions.rst:989 msgid "" -"The formal syntax makes no special provision for negative indices " -"in :term:`sequences `. However, built-in sequences all provide " -"a :meth:`~object.__getitem__` method that interprets negative indices by " -"adding the length of the sequence to the index so that, for example, " -"``x[-1]`` selects the last item of ``x``. The resulting value must be a " -"nonnegative integer less than the number of items in the sequence, and the " -"subscription selects the item whose index is that value (counting from " -"zero). Since the support for negative indices and slicing occurs in the " -"object's :meth:`~object.__getitem__` method, subclasses overriding this " -"method will need to explicitly add that support." +"The formal syntax makes no special provision for negative indices in :term:" +"`sequences `. However, built-in sequences all provide a :meth:" +"`~object.__getitem__` method that interprets negative indices by adding the " +"length of the sequence to the index so that, for example, ``x[-1]`` selects " +"the last item of ``x``. The resulting value must be a nonnegative integer " +"less than the number of items in the sequence, and the subscription selects " +"the item whose index is that value (counting from zero). Since the support " +"for negative indices and slicing occurs in the object's :meth:`~object." +"__getitem__` method, subclasses overriding this method will need to " +"explicitly add that support." msgstr "" -#: ../../reference/expressions.rst:1003 msgid "" "A :class:`string ` is a special kind of sequence whose items are " "*characters*. A character is not a separate data type but a string of " "exactly one character." msgstr "" -#: ../../reference/expressions.rst:1011 msgid "Slicings" msgstr "" -#: ../../reference/expressions.rst:1025 msgid "" "A slicing selects a range of items in a sequence object (e.g., a string, " "tuple or list). Slicings may be used as expressions or as targets in " "assignment or :keyword:`del` statements. The syntax for a slicing:" msgstr "" -#: ../../reference/expressions.rst:1038 msgid "" "There is ambiguity in the formal syntax here: anything that looks like an " "expression list also looks like a slice list, so any subscription can be " @@ -1175,7 +1009,6 @@ msgid "" "the case if the slice list contains no proper slice)." msgstr "" -#: ../../reference/expressions.rst:1050 msgid "" "The semantics for a slicing are as follows. The primary is indexed (using " "the same :meth:`~object.__getitem__` method as normal subscription) with a " @@ -1184,29 +1017,25 @@ msgid "" "the slice items; otherwise, the conversion of the lone slice item is the " "key. The conversion of a slice item that is an expression is that " "expression. The conversion of a proper slice is a slice object (see " -"section :ref:`types`) whose :attr:`~slice.start`, :attr:`~slice.stop` " -"and :attr:`~slice.step` attributes are the values of the expressions given " -"as lower bound, upper bound and stride, respectively, substituting ``None`` " -"for missing expressions." +"section :ref:`types`) whose :attr:`~slice.start`, :attr:`~slice.stop` and :" +"attr:`~slice.step` attributes are the values of the expressions given as " +"lower bound, upper bound and stride, respectively, substituting ``None`` for " +"missing expressions." msgstr "" -#: ../../reference/expressions.rst:1074 msgid "Calls" msgstr "" -#: ../../reference/expressions.rst:1076 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" msgstr "" -#: ../../reference/expressions.rst:1093 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." msgstr "" -#: ../../reference/expressions.rst:1099 msgid "" "The primary must evaluate to a callable object (user-defined functions, " "built-in functions, methods of built-in objects, class objects, methods of " @@ -1216,7 +1045,6 @@ msgid "" "formal :term:`parameter` lists." msgstr "" -#: ../../reference/expressions.rst:1107 msgid "" "If keyword arguments are present, they are first converted to positional " "arguments, as follows. First, a list of unfilled slots is created for the " @@ -1237,16 +1065,14 @@ msgid "" "filled slots is used as the argument list for the call." msgstr "" -#: ../../reference/expressions.rst:1127 msgid "" "An implementation may provide built-in functions whose positional parameters " "do not have names, even if they are 'named' for the purpose of " "documentation, and which therefore cannot be supplied by keyword. In " -"CPython, this is the case for functions implemented in C that " -"use :c:func:`PyArg_ParseTuple` to parse their arguments." +"CPython, this is the case for functions implemented in C that use :c:func:" +"`PyArg_ParseTuple` to parse their arguments." msgstr "" -#: ../../reference/expressions.rst:1133 msgid "" "If there are more positional arguments than there are formal parameter " "slots, a :exc:`TypeError` exception is raised, unless a formal parameter " @@ -1255,17 +1081,15 @@ msgid "" "empty tuple if there were no excess positional arguments)." msgstr "" -#: ../../reference/expressions.rst:1139 msgid "" -"If any keyword argument does not correspond to a formal parameter name, " -"a :exc:`TypeError` exception is raised, unless a formal parameter using the " +"If any keyword argument does not correspond to a formal parameter name, a :" +"exc:`TypeError` exception is raised, unless a formal parameter using the " "syntax ``**identifier`` is present; in this case, that formal parameter " "receives a dictionary containing the excess keyword arguments (using the " "keywords as keys and the argument values as corresponding values), or a " "(new) empty dictionary if there were no excess keyword arguments." msgstr "" -#: ../../reference/expressions.rst:1150 msgid "" "If the syntax ``*expression`` appears in the function call, ``expression`` " "must evaluate to an :term:`iterable`. Elements from these iterables are " @@ -1275,14 +1099,12 @@ msgid "" "*y1*, ..., *yM*, *x3*, *x4*." msgstr "" -#: ../../reference/expressions.rst:1157 msgid "" "A consequence of this is that although the ``*expression`` syntax may appear " "*after* explicit keyword arguments, it is processed *before* the keyword " "arguments (and any ``**expression`` arguments -- see below). So::" msgstr "" -#: ../../reference/expressions.rst:1161 msgid "" ">>> def f(a, b):\n" "... print(a, b)\n" @@ -1297,13 +1119,11 @@ msgid "" "1 2" msgstr "" -#: ../../reference/expressions.rst:1173 msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " "be used in the same call, so in practice this confusion does not often arise." msgstr "" -#: ../../reference/expressions.rst:1179 msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " "must evaluate to a :term:`mapping`, the contents of which are treated as " @@ -1312,7 +1132,6 @@ msgid "" "a :exc:`TypeError` exception is raised." msgstr "" -#: ../../reference/expressions.rst:1185 msgid "" "When ``**expression`` is used, each key in this mapping must be a string. " "Each value from the mapping is assigned to the first formal parameter " @@ -1324,35 +1143,29 @@ msgid "" "is raised." msgstr "" -#: ../../reference/expressions.rst:1195 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." msgstr "" -#: ../../reference/expressions.rst:1198 msgid "" "Function calls accept any number of ``*`` and ``**`` unpackings, positional " "arguments may follow iterable unpackings (``*``), and keyword arguments may " "follow dictionary unpackings (``**``). Originally proposed by :pep:`448`." msgstr "" -#: ../../reference/expressions.rst:1204 msgid "" "A call always returns some value, possibly ``None``, unless it raises an " "exception. How this value is computed depends on the type of the callable " "object." msgstr "" -#: ../../reference/expressions.rst:1208 msgid "If it is---" msgstr "" -#: ../../reference/expressions.rst:1210 msgid "a user-defined function:" msgstr "" -#: ../../reference/expressions.rst:1217 msgid "" "The code block for the function is executed, passing it the argument list. " "The first thing the code block will do is bind the formal parameters to the " @@ -1363,73 +1176,59 @@ msgid "" "``None``." msgstr "" -#: ../../reference/expressions.rst:1224 msgid "a built-in function or method:" msgstr "" -#: ../../reference/expressions.rst:1235 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." msgstr "" -#: ../../reference/expressions.rst:1238 msgid "a class object:" msgstr "" -#: ../../reference/expressions.rst:1243 msgid "A new instance of that class is returned." msgstr "" -#: ../../reference/expressions.rst:1245 msgid "a class instance method:" msgstr "" -#: ../../reference/expressions.rst:1251 msgid "" "The corresponding user-defined function is called, with an argument list " "that is one longer than the argument list of the call: the instance becomes " "the first argument." msgstr "" -#: ../../reference/expressions.rst:1255 msgid "a class instance:" msgstr "" -#: ../../reference/expressions.rst:1260 msgid "" "The class must define a :meth:`~object.__call__` method; the effect is then " "the same as if that method was called." msgstr "" -#: ../../reference/expressions.rst:1268 ../../reference/expressions.rst:2081 msgid "Await expression" msgstr "" -#: ../../reference/expressions.rst:1270 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." msgstr "" -#: ../../reference/expressions.rst:1282 msgid "The power operator" msgstr "" -#: ../../reference/expressions.rst:1288 msgid "" "The power operator binds more tightly than unary operators on its left; it " "binds less tightly than unary operators on its right. The syntax is:" msgstr "" -#: ../../reference/expressions.rst:1294 msgid "" "Thus, in an unparenthesized sequence of power and unary operators, the " "operators are evaluated from right to left (this does not constrain the " "evaluation order for the operands): ``-1**2`` results in ``-1``." msgstr "" -#: ../../reference/expressions.rst:1298 msgid "" "The power operator has the same semantics as the built-in :func:`pow` " "function, when called with two arguments: it yields its left argument raised " @@ -1437,7 +1236,6 @@ msgid "" "converted to a common type, and the result is of that type." msgstr "" -#: ../../reference/expressions.rst:1303 msgid "" "For int operands, the result has the same type as the operands unless the " "second argument is negative; in that case, all arguments are converted to " @@ -1445,60 +1243,49 @@ msgid "" "``100``, but ``10**-2`` returns ``0.01``." msgstr "" -#: ../../reference/expressions.rst:1308 msgid "" "Raising ``0.0`` to a negative power results in a :exc:`ZeroDivisionError`. " -"Raising a negative number to a fractional power results in " -"a :class:`complex` number. (In earlier versions it raised " -"a :exc:`ValueError`.)" +"Raising a negative number to a fractional power results in a :class:" +"`complex` number. (In earlier versions it raised a :exc:`ValueError`.)" msgstr "" -#: ../../reference/expressions.rst:1312 msgid "" "This operation can be customized using the special :meth:`~object.__pow__` " "and :meth:`~object.__rpow__` methods." msgstr "" -#: ../../reference/expressions.rst:1318 msgid "Unary arithmetic and bitwise operations" msgstr "" -#: ../../reference/expressions.rst:1324 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" -#: ../../reference/expressions.rst:1335 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric " "argument; the operation can be overridden with the :meth:`~object.__neg__` " "special method." msgstr "" -#: ../../reference/expressions.rst:1343 msgid "" "The unary ``+`` (plus) operator yields its numeric argument unchanged; the " "operation can be overridden with the :meth:`~object.__pos__` special method." msgstr "" -#: ../../reference/expressions.rst:1350 msgid "" "The unary ``~`` (invert) operator yields the bitwise inversion of its " "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " -"It only applies to integral numbers or to custom objects that override " -"the :meth:`~object.__invert__` special method." +"It only applies to integral numbers or to custom objects that override the :" +"meth:`~object.__invert__` special method." msgstr "" -#: ../../reference/expressions.rst:1359 msgid "" -"In all three cases, if the argument does not have the proper type, " -"a :exc:`TypeError` exception is raised." +"In all three cases, if the argument does not have the proper type, a :exc:" +"`TypeError` exception is raised." msgstr "" -#: ../../reference/expressions.rst:1366 msgid "Binary arithmetic operations" msgstr "" -#: ../../reference/expressions.rst:1370 msgid "" "The binary arithmetic operations have the conventional priority levels. " "Note that some of these operations also apply to certain non-numeric types. " @@ -1506,7 +1293,6 @@ msgid "" "multiplicative operators and one for additive operators:" msgstr "" -#: ../../reference/expressions.rst:1385 msgid "" "The ``*`` (multiplication) operator yields the product of its arguments. " "The arguments must either both be numbers, or one argument must be an " @@ -1516,32 +1302,26 @@ msgid "" "yields an empty sequence." msgstr "" -#: ../../reference/expressions.rst:1391 msgid "" "This operation can be customized using the special :meth:`~object.__mul__` " "and :meth:`~object.__rmul__` methods." msgstr "" -#: ../../reference/expressions.rst:1394 ../../reference/expressions.rst:1471 -#: ../../reference/expressions.rst:1486 msgid "" "If only one operand is a complex number, the other operand is converted to a " "floating-point number." msgstr "" -#: ../../reference/expressions.rst:1402 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" -#: ../../reference/expressions.rst:1405 msgid "" -"This operation can be customized using the " -"special :meth:`~object.__matmul__` and :meth:`~object.__rmatmul__` methods." +"This operation can be customized using the special :meth:`~object." +"__matmul__` and :meth:`~object.__rmatmul__` methods." msgstr "" -#: ../../reference/expressions.rst:1416 msgid "" "The ``/`` (division) and ``//`` (floor division) operators yield the " "quotient of their arguments. The numeric arguments are first converted to a " @@ -1551,16 +1331,13 @@ msgid "" "the :exc:`ZeroDivisionError` exception." msgstr "" -#: ../../reference/expressions.rst:1423 msgid "" -"The division operation can be customized using the " -"special :meth:`~object.__truediv__` and :meth:`~object.__rtruediv__` " -"methods. The floor division operation can be customized using the " -"special :meth:`~object.__floordiv__` and :meth:`~object.__rfloordiv__` " -"methods." +"The division operation can be customized using the special :meth:`~object." +"__truediv__` and :meth:`~object.__rtruediv__` methods. The floor division " +"operation can be customized using the special :meth:`~object.__floordiv__` " +"and :meth:`~object.__rfloordiv__` methods." msgstr "" -#: ../../reference/expressions.rst:1432 msgid "" "The ``%`` (modulo) operator yields the remainder from the division of the " "first argument by the second. The numeric arguments are first converted to " @@ -1572,7 +1349,6 @@ msgid "" "absolute value of the second operand [#]_." msgstr "" -#: ../../reference/expressions.rst:1441 msgid "" "The floor division and modulo operators are connected by the following " "identity: ``x == (x//y)*y + (x%y)``. Floor division and modulo are also " @@ -1580,7 +1356,6 @@ msgid "" "y, x%y)``. [#]_." msgstr "" -#: ../../reference/expressions.rst:1446 msgid "" "In addition to performing the modulo operation on numbers, the ``%`` " "operator is also overloaded by string objects to perform old-style string " @@ -1589,20 +1364,17 @@ msgid "" "formatting`." msgstr "" -#: ../../reference/expressions.rst:1451 msgid "" -"The *modulo* operation can be customized using the " -"special :meth:`~object.__mod__` and :meth:`~object.__rmod__` methods." +"The *modulo* operation can be customized using the special :meth:`~object." +"__mod__` and :meth:`~object.__rmod__` methods." msgstr "" -#: ../../reference/expressions.rst:1454 msgid "" "The floor division operator, the modulo operator, and the :func:`divmod` " "function are not defined for complex numbers. Instead, convert to a " "floating-point number using the :func:`abs` function if appropriate." msgstr "" -#: ../../reference/expressions.rst:1463 msgid "" "The ``+`` (addition) operator yields the sum of its arguments. The " "arguments must either both be numbers or both be sequences of the same " @@ -1610,89 +1382,72 @@ msgid "" "and then added together. In the latter case, the sequences are concatenated." msgstr "" -#: ../../reference/expressions.rst:1468 msgid "" "This operation can be customized using the special :meth:`~object.__add__` " "and :meth:`~object.__radd__` methods." msgstr "" -#: ../../reference/expressions.rst:1480 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common real type." msgstr "" -#: ../../reference/expressions.rst:1483 msgid "" "This operation can be customized using the special :meth:`~object.__sub__` " "and :meth:`~object.__rsub__` methods." msgstr "" -#: ../../reference/expressions.rst:1494 msgid "Shifting operations" msgstr "" -#: ../../reference/expressions.rst:1501 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" -#: ../../reference/expressions.rst:1506 msgid "" "These operators accept integers as arguments. They shift the first argument " "to the left or right by the number of bits given by the second argument." msgstr "" -#: ../../reference/expressions.rst:1509 msgid "" -"The left shift operation can be customized using the " -"special :meth:`~object.__lshift__` and :meth:`~object.__rlshift__` methods. " -"The right shift operation can be customized using the " -"special :meth:`~object.__rshift__` and :meth:`~object.__rrshift__` methods." +"The left shift operation can be customized using the special :meth:`~object." +"__lshift__` and :meth:`~object.__rlshift__` methods. The right shift " +"operation can be customized using the special :meth:`~object.__rshift__` " +"and :meth:`~object.__rrshift__` methods." msgstr "" -#: ../../reference/expressions.rst:1516 msgid "" "A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " "left shift by *n* bits is defined as multiplication with ``pow(2,n)``." msgstr "" -#: ../../reference/expressions.rst:1523 msgid "Binary bitwise operations" msgstr "" -#: ../../reference/expressions.rst:1527 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" -#: ../../reference/expressions.rst:1538 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " -"integers or one of them must be a custom object " -"overriding :meth:`~object.__and__` or :meth:`~object.__rand__` special " -"methods." +"integers or one of them must be a custom object overriding :meth:`~object." +"__and__` or :meth:`~object.__rand__` special methods." msgstr "" -#: ../../reference/expressions.rst:1547 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " -"which must be integers or one of them must be a custom object " -"overriding :meth:`~object.__xor__` or :meth:`~object.__rxor__` special " -"methods." +"which must be integers or one of them must be a custom object overriding :" +"meth:`~object.__xor__` or :meth:`~object.__rxor__` special methods." msgstr "" -#: ../../reference/expressions.rst:1556 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " -"must be integers or one of them must be a custom object " -"overriding :meth:`~object.__or__` or :meth:`~object.__ror__` special methods." +"must be integers or one of them must be a custom object overriding :meth:" +"`~object.__or__` or :meth:`~object.__ror__` special methods." msgstr "" -#: ../../reference/expressions.rst:1564 msgid "Comparisons" msgstr "" -#: ../../reference/expressions.rst:1576 msgid "" "Unlike C, all comparison operations in Python have the same priority, which " "is lower than that of any arithmetic, shifting or bitwise operation. Also " @@ -1700,14 +1455,12 @@ msgid "" "conventional in mathematics:" msgstr "" -#: ../../reference/expressions.rst:1586 msgid "" "Comparisons yield boolean values: ``True`` or ``False``. Custom :dfn:`rich " "comparison methods` may return non-boolean values. In this case Python will " "call :func:`bool` on such value in boolean contexts." msgstr "" -#: ../../reference/expressions.rst:1592 msgid "" "Comparisons can be chained arbitrarily, e.g., ``x < y <= z`` is equivalent " "to ``x < y and y <= z``, except that ``y`` is evaluated only once (but in " @@ -1715,7 +1468,6 @@ msgid "" "false)." msgstr "" -#: ../../reference/expressions.rst:1596 msgid "" "Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*, " "*op2*, ..., *opN* are comparison operators, then ``a op1 b op2 c ... y opN " @@ -1723,24 +1475,20 @@ msgid "" "each expression is evaluated at most once." msgstr "" -#: ../../reference/expressions.rst:1601 msgid "" "Note that ``a op1 b op2 c`` doesn't imply any kind of comparison between *a* " "and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " "pretty)." msgstr "" -#: ../../reference/expressions.rst:1608 msgid "Value comparisons" msgstr "" -#: ../../reference/expressions.rst:1610 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." msgstr "" -#: ../../reference/expressions.rst:1613 msgid "" "Chapter :ref:`objects` states that objects have a value (in addition to type " "and identity). The value of an object is a rather abstract notion in " @@ -1752,7 +1500,6 @@ msgid "" "indirectly, by means of their comparison implementation." msgstr "" -#: ../../reference/expressions.rst:1622 msgid "" "Because all types are (direct or indirect) subtypes of :class:`object`, they " "inherit the default comparison behavior from :class:`object`. Types can " @@ -1760,7 +1507,6 @@ msgid "" "methods` like :meth:`~object.__lt__`, described in :ref:`customization`." msgstr "" -#: ../../reference/expressions.rst:1628 msgid "" "The default behavior for equality comparison (``==`` and ``!=``) is based on " "the identity of the objects. Hence, equality comparison of instances with " @@ -1770,14 +1516,12 @@ msgid "" "``x is y`` implies ``x == y``)." msgstr "" -#: ../../reference/expressions.rst:1635 msgid "" "A default order comparison (``<``, ``>``, ``<=``, and ``>=``) is not " "provided; an attempt raises :exc:`TypeError`. A motivation for this default " "behavior is the lack of a similar invariant as for equality." msgstr "" -#: ../../reference/expressions.rst:1639 msgid "" "The behavior of the default equality comparison, that instances with " "different identities are always unequal, may be in contrast to what types " @@ -1786,13 +1530,11 @@ msgid "" "in fact, a number of built-in types have done that." msgstr "" -#: ../../reference/expressions.rst:1645 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." msgstr "" -#: ../../reference/expressions.rst:1648 msgid "" "Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " "library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " @@ -1802,7 +1544,6 @@ msgid "" "of precision." msgstr "" -#: ../../reference/expressions.rst:1655 msgid "" "The not-a-number values ``float('NaN')`` and ``decimal.Decimal('NaN')`` are " "special. Any ordered comparison of a number to a not-a-number value is " @@ -1812,32 +1553,27 @@ msgid "" "is compliant with IEEE 754." msgstr "" -#: ../../reference/expressions.rst:1662 msgid "" "``None`` and :data:`NotImplemented` are singletons. :PEP:`8` advises that " "comparisons for singletons should always be done with ``is`` or ``is not``, " "never the equality operators." msgstr "" -#: ../../reference/expressions.rst:1666 msgid "" "Binary sequences (instances of :class:`bytes` or :class:`bytearray`) can be " "compared within and across their types. They compare lexicographically " "using the numeric values of their elements." msgstr "" -#: ../../reference/expressions.rst:1670 msgid "" "Strings (instances of :class:`str`) compare lexicographically using the " -"numerical Unicode code points (the result of the built-in " -"function :func:`ord`) of their characters. [#]_" +"numerical Unicode code points (the result of the built-in function :func:" +"`ord`) of their characters. [#]_" msgstr "" -#: ../../reference/expressions.rst:1674 msgid "Strings and binary sequences cannot be directly compared." msgstr "" -#: ../../reference/expressions.rst:1676 msgid "" "Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " "can be compared only within each of their types, with the restriction that " @@ -1846,7 +1582,6 @@ msgid "" "raises :exc:`TypeError`." msgstr "" -#: ../../reference/expressions.rst:1682 msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements. The built-in containers typically assume identical objects are " @@ -1854,19 +1589,16 @@ msgid "" "objects to improve performance and to maintain their internal invariants." msgstr "" -#: ../../reference/expressions.rst:1687 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" -#: ../../reference/expressions.rst:1689 msgid "" "For two collections to compare equal, they must be of the same type, have " "the same length, and each pair of corresponding elements must compare equal " "(for example, ``[1,2] == (1,2)`` is false because the type is not the same)." msgstr "" -#: ../../reference/expressions.rst:1694 msgid "" "Collections that support order comparison are ordered the same as their " "first unequal elements (for example, ``[1,2,x] <= [1,2,y]`` has the same " @@ -1875,151 +1607,123 @@ msgid "" "true)." msgstr "" -#: ../../reference/expressions.rst:1700 msgid "" "Mappings (instances of :class:`dict`) compare equal if and only if they have " "equal ``(key, value)`` pairs. Equality comparison of the keys and values " "enforces reflexivity." msgstr "" -#: ../../reference/expressions.rst:1704 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" -#: ../../reference/expressions.rst:1706 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." msgstr "" -#: ../../reference/expressions.rst:1709 msgid "" "They define order comparison operators to mean subset and superset tests. " "Those relations do not define total orderings (for example, the two sets " "``{1,2}`` and ``{2,3}`` are not equal, nor subsets of one another, nor " "supersets of one another). Accordingly, sets are not appropriate arguments " -"for functions which depend on total ordering (for " -"example, :func:`min`, :func:`max`, and :func:`sorted` produce undefined " -"results given a list of sets as inputs)." +"for functions which depend on total ordering (for example, :func:`min`, :" +"func:`max`, and :func:`sorted` produce undefined results given a list of " +"sets as inputs)." msgstr "" -#: ../../reference/expressions.rst:1717 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "" -#: ../../reference/expressions.rst:1719 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." msgstr "" -#: ../../reference/expressions.rst:1722 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" -#: ../../reference/expressions.rst:1725 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" msgstr "" -#: ../../reference/expressions.rst:1728 msgid "``x is y`` implies ``x == y``" msgstr "" -#: ../../reference/expressions.rst:1730 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" msgstr "" -#: ../../reference/expressions.rst:1733 msgid "``x == y`` and ``y == x``" msgstr "" -#: ../../reference/expressions.rst:1735 msgid "``x != y`` and ``y != x``" msgstr "" -#: ../../reference/expressions.rst:1737 msgid "``x < y`` and ``y > x``" msgstr "" -#: ../../reference/expressions.rst:1739 msgid "``x <= y`` and ``y >= x``" msgstr "" -#: ../../reference/expressions.rst:1741 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" msgstr "" -#: ../../reference/expressions.rst:1744 msgid "``x > y and y > z`` implies ``x > z``" msgstr "" -#: ../../reference/expressions.rst:1746 msgid "``x < y and y <= z`` implies ``x < z``" msgstr "" -#: ../../reference/expressions.rst:1748 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" msgstr "" -#: ../../reference/expressions.rst:1751 msgid "``x == y`` and ``not x != y``" msgstr "" -#: ../../reference/expressions.rst:1753 msgid "``x < y`` and ``not x >= y`` (for total ordering)" msgstr "" -#: ../../reference/expressions.rst:1755 msgid "``x > y`` and ``not x <= y`` (for total ordering)" msgstr "" -#: ../../reference/expressions.rst:1757 msgid "" "The last two expressions apply to totally ordered collections (e.g. to " -"sequences, but not to sets or mappings). See also " -"the :func:`~functools.total_ordering` decorator." +"sequences, but not to sets or mappings). See also the :func:`~functools." +"total_ordering` decorator." msgstr "" -#: ../../reference/expressions.rst:1761 msgid "" "The :func:`hash` result should be consistent with equality. Objects that are " "equal should either have the same hash value, or be marked as unhashable." msgstr "" -#: ../../reference/expressions.rst:1765 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." msgstr "" -#: ../../reference/expressions.rst:1774 msgid "Membership test operations" msgstr "" -#: ../../reference/expressions.rst:1776 msgid "" "The operators :keyword:`in` and :keyword:`not in` test for membership. ``x " "in s`` evaluates to ``True`` if *x* is a member of *s*, and ``False`` " "otherwise. ``x not in s`` returns the negation of ``x in s``. All built-in " -"sequences and set types support this as well as dictionary, for " -"which :keyword:`!in` tests whether the dictionary has a given key. For " -"container types such as list, tuple, set, frozenset, dict, or " -"collections.deque, the expression ``x in y`` is equivalent to ``any(x is e " -"or x == e for e in y)``." +"sequences and set types support this as well as dictionary, for which :" +"keyword:`!in` tests whether the dictionary has a given key. For container " +"types such as list, tuple, set, frozenset, dict, or collections.deque, the " +"expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." msgstr "" -#: ../../reference/expressions.rst:1784 msgid "" "For the string and bytes types, ``x in y`` is ``True`` if and only if *x* is " "a substring of *y*. An equivalent test is ``y.find(x) != -1``. Empty " @@ -2027,14 +1731,12 @@ msgid "" "``\"\" in \"abc\"`` will return ``True``." msgstr "" -#: ../../reference/expressions.rst:1789 msgid "" "For user-defined classes which define the :meth:`~object.__contains__` " "method, ``x in y`` returns ``True`` if ``y.__contains__(x)`` returns a true " "value, and ``False`` otherwise." msgstr "" -#: ../../reference/expressions.rst:1793 msgid "" "For user-defined classes which do not define :meth:`~object.__contains__` " "but do define :meth:`~object.__iter__`, ``x in y`` is ``True`` if some value " @@ -2043,27 +1745,22 @@ msgid "" "it is as if :keyword:`in` raised that exception." msgstr "" -#: ../../reference/expressions.rst:1799 msgid "" -"Lastly, the old-style iteration protocol is tried: if a class " -"defines :meth:`~object.__getitem__`, ``x in y`` is ``True`` if and only if " -"there is a non-negative integer index *i* such that ``x is y[i] or x == " -"y[i]``, and no lower integer index raises the :exc:`IndexError` exception. " -"(If any other exception is raised, it is as if :keyword:`in` raised that " -"exception)." +"Lastly, the old-style iteration protocol is tried: if a class defines :meth:" +"`~object.__getitem__`, ``x in y`` is ``True`` if and only if there is a non-" +"negative integer index *i* such that ``x is y[i] or x == y[i]``, and no " +"lower integer index raises the :exc:`IndexError` exception. (If any other " +"exception is raised, it is as if :keyword:`in` raised that exception)." msgstr "" -#: ../../reference/expressions.rst:1811 msgid "" "The operator :keyword:`not in` is defined to have the inverse truth value " "of :keyword:`in`." msgstr "" -#: ../../reference/expressions.rst:1824 msgid "Identity comparisons" msgstr "" -#: ../../reference/expressions.rst:1826 msgid "" "The operators :keyword:`is` and :keyword:`is not` test for an object's " "identity: ``x is y`` is true if and only if *x* and *y* are the same " @@ -2071,40 +1768,34 @@ msgid "" "``x is not y`` yields the inverse truth value. [#]_" msgstr "" -#: ../../reference/expressions.rst:1838 msgid "Boolean operations" msgstr "" -#: ../../reference/expressions.rst:1849 msgid "" "In the context of Boolean operations, and also when expressions are used by " "control flow statements, the following values are interpreted as false: " "``False``, ``None``, numeric zero of all types, and empty strings and " "containers (including strings, tuples, lists, dictionaries, sets and " "frozensets). All other values are interpreted as true. User-defined " -"objects can customize their truth value by providing " -"a :meth:`~object.__bool__` method." +"objects can customize their truth value by providing a :meth:`~object." +"__bool__` method." msgstr "" -#: ../../reference/expressions.rst:1858 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." msgstr "" -#: ../../reference/expressions.rst:1863 msgid "" "The expression ``x and y`` first evaluates *x*; if *x* is false, its value " "is returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" -#: ../../reference/expressions.rst:1868 msgid "" "The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " "returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" -#: ../../reference/expressions.rst:1871 msgid "" "Note that neither :keyword:`and` nor :keyword:`or` restrict the value and " "type they return to ``False`` and ``True``, but rather return the last " @@ -2115,39 +1806,32 @@ msgid "" "argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" msgstr "" -#: ../../reference/expressions.rst:1890 msgid "Assignment expressions" msgstr "" -#: ../../reference/expressions.rst:1895 msgid "" "An assignment expression (sometimes also called a \"named expression\" or " -"\"walrus\") assigns an :token:`~python-grammar:expression` to " -"an :token:`~python-grammar:identifier`, while also returning the value of " -"the :token:`~python-grammar:expression`." +"\"walrus\") assigns an :token:`~python-grammar:expression` to an :token:" +"`~python-grammar:identifier`, while also returning the value of the :token:" +"`~python-grammar:expression`." msgstr "" -#: ../../reference/expressions.rst:1900 msgid "One common use case is when handling matched regular expressions:" msgstr "" -#: ../../reference/expressions.rst:1902 msgid "" "if matching := pattern.search(data):\n" " do_something(matching)" msgstr "" -#: ../../reference/expressions.rst:1907 msgid "Or, when processing a file stream in chunks:" msgstr "" -#: ../../reference/expressions.rst:1909 msgid "" "while chunk := file.read(9000):\n" " process(chunk)" msgstr "" -#: ../../reference/expressions.rst:1914 msgid "" "Assignment expressions must be surrounded by parentheses when used as " "expression statements and when used as sub-expressions in slicing, " @@ -2157,36 +1841,29 @@ msgid "" "and ``while`` statements." msgstr "" -#: ../../reference/expressions.rst:1922 msgid "See :pep:`572` for more details about assignment expressions." msgstr "" -#: ../../reference/expressions.rst:1929 msgid "Conditional expressions" msgstr "" -#: ../../reference/expressions.rst:1941 msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" -#: ../../reference/expressions.rst:1944 msgid "" "The expression ``x if C else y`` first evaluates the condition, *C* rather " "than *x*. If *C* is true, *x* is evaluated and its value is returned; " "otherwise, *y* is evaluated and its value is returned." msgstr "" -#: ../../reference/expressions.rst:1948 msgid "See :pep:`308` for more details about conditional expressions." msgstr "" -#: ../../reference/expressions.rst:1955 msgid "Lambdas" msgstr "" -#: ../../reference/expressions.rst:1966 msgid "" "Lambda expressions (sometimes called lambda forms) are used to create " "anonymous functions. The expression ``lambda parameters: expression`` yields " @@ -2194,31 +1871,26 @@ msgid "" "defined with:" msgstr "" -#: ../../reference/expressions.rst:1970 msgid "" "def (parameters):\n" " return expression" msgstr "" -#: ../../reference/expressions.rst:1975 msgid "" "See section :ref:`function` for the syntax of parameter lists. Note that " "functions created with lambda expressions cannot contain statements or " "annotations." msgstr "" -#: ../../reference/expressions.rst:1983 msgid "Expression lists" msgstr "" -#: ../../reference/expressions.rst:1999 msgid "" "Except when part of a list or set display, an expression list containing at " "least one comma yields a tuple. The length of the tuple is the number of " "expressions in the list. The expressions are evaluated from left to right." msgstr "" -#: ../../reference/expressions.rst:2008 msgid "" "An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " "an :term:`iterable`. The iterable is expanded into a sequence of items, " @@ -2226,42 +1898,35 @@ msgid "" "unpacking." msgstr "" -#: ../../reference/expressions.rst:2013 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" -#: ../../reference/expressions.rst:2016 msgid "Any item in an expression list may be starred. See :pep:`646`." msgstr "" -#: ../../reference/expressions.rst:2021 msgid "" -"A trailing comma is required only to create a one-item tuple, such as " -"``1,``; it is optional in all other cases. A single expression without a " +"A trailing comma is required only to create a one-item tuple, such as ``1," +"``; it is optional in all other cases. A single expression without a " "trailing comma doesn't create a tuple, but rather yields the value of that " "expression. (To create an empty tuple, use an empty pair of parentheses: " "``()``.)" msgstr "" -#: ../../reference/expressions.rst:2032 msgid "Evaluation order" msgstr "" -#: ../../reference/expressions.rst:2036 msgid "" "Python evaluates expressions from left to right. Notice that while " "evaluating an assignment, the right-hand side is evaluated before the left-" "hand side." msgstr "" -#: ../../reference/expressions.rst:2039 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" msgstr "" -#: ../../reference/expressions.rst:2042 msgid "" "expr1, expr2, expr3, expr4\n" "(expr1, expr2, expr3, expr4)\n" @@ -2271,11 +1936,9 @@ msgid "" "expr3, expr4 = expr1, expr2" msgstr "" -#: ../../reference/expressions.rst:2053 msgid "Operator precedence" msgstr "" -#: ../../reference/expressions.rst:2058 msgid "" "The following table summarizes the operator precedence in Python, from " "highest precedence (most binding) to lowest precedence (least binding). " @@ -2285,176 +1948,135 @@ msgid "" "group from right to left)." msgstr "" -#: ../../reference/expressions.rst:2064 msgid "" "Note that comparisons, membership tests, and identity tests, all have the " "same precedence and have a left-to-right chaining feature as described in " "the :ref:`comparisons` section." msgstr "" -#: ../../reference/expressions.rst:2070 msgid "Operator" msgstr "" -#: ../../reference/expressions.rst:2070 msgid "Description" msgstr "" -#: ../../reference/expressions.rst:2072 msgid "``(expressions...)``," msgstr "" -#: ../../reference/expressions.rst:2074 msgid "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" msgstr "" -#: ../../reference/expressions.rst:2072 msgid "" "Binding or parenthesized expression, list display, dictionary display, set " "display" msgstr "" -#: ../../reference/expressions.rst:2078 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "" -#: ../../reference/expressions.rst:2078 msgid "Subscription, slicing, call, attribute reference" msgstr "" -#: ../../reference/expressions.rst:2081 msgid ":keyword:`await x `" msgstr "" -#: ../../reference/expressions.rst:2083 msgid "``**``" msgstr "" -#: ../../reference/expressions.rst:2083 msgid "Exponentiation [#]_" msgstr "" -#: ../../reference/expressions.rst:2085 msgid "``+x``, ``-x``, ``~x``" -msgstr "``+x``, ``-x``, ``~x``" +msgstr "" -#: ../../reference/expressions.rst:2085 msgid "Positive, negative, bitwise NOT" msgstr "" -#: ../../reference/expressions.rst:2087 msgid "``*``, ``@``, ``/``, ``//``, ``%``" msgstr "" -#: ../../reference/expressions.rst:2087 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" msgstr "" -#: ../../reference/expressions.rst:2091 msgid "``+``, ``-``" msgstr "" -#: ../../reference/expressions.rst:2091 msgid "Addition and subtraction" msgstr "" -#: ../../reference/expressions.rst:2093 msgid "``<<``, ``>>``" msgstr "" -#: ../../reference/expressions.rst:2093 msgid "Shifts" msgstr "" -#: ../../reference/expressions.rst:2095 msgid "``&``" msgstr "" -#: ../../reference/expressions.rst:2095 msgid "Bitwise AND" msgstr "" -#: ../../reference/expressions.rst:2097 msgid "``^``" -msgstr "``^``" +msgstr "" -#: ../../reference/expressions.rst:2097 msgid "Bitwise XOR" msgstr "" -#: ../../reference/expressions.rst:2099 msgid "``|``" -msgstr "``|``" +msgstr "" -#: ../../reference/expressions.rst:2099 msgid "Bitwise OR" msgstr "" -#: ../../reference/expressions.rst:2101 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" msgstr "" -#: ../../reference/expressions.rst:2101 msgid "Comparisons, including membership tests and identity tests" msgstr "" -#: ../../reference/expressions.rst:2105 msgid ":keyword:`not x `" msgstr "" -#: ../../reference/expressions.rst:2105 msgid "Boolean NOT" msgstr "" -#: ../../reference/expressions.rst:2107 msgid ":keyword:`and`" msgstr "" -#: ../../reference/expressions.rst:2107 msgid "Boolean AND" msgstr "" -#: ../../reference/expressions.rst:2109 msgid ":keyword:`or`" msgstr "" -#: ../../reference/expressions.rst:2109 msgid "Boolean OR" msgstr "" -#: ../../reference/expressions.rst:2111 msgid ":keyword:`if ` -- :keyword:`!else`" msgstr "" -#: ../../reference/expressions.rst:2111 msgid "Conditional expression" msgstr "" -#: ../../reference/expressions.rst:2113 msgid ":keyword:`lambda`" msgstr "" -#: ../../reference/expressions.rst:2113 msgid "Lambda expression" msgstr "" -#: ../../reference/expressions.rst:2115 msgid "``:=``" msgstr "" -#: ../../reference/expressions.rst:2115 msgid "Assignment expression" msgstr "" -#: ../../reference/expressions.rst:2120 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../reference/expressions.rst:2121 msgid "" "While ``abs(x%y) < abs(y)`` is true mathematically, for floats it may not be " "true numerically due to roundoff. For example, and assuming a platform on " @@ -2466,7 +2088,6 @@ msgid "" "approach is more appropriate depends on the application." msgstr "" -#: ../../reference/expressions.rst:2130 msgid "" "If x is very close to an exact integer multiple of y, it's possible for ``x//" "y`` to be one larger than ``(x-x%y)//y`` due to rounding. In such cases, " @@ -2474,7 +2095,6 @@ msgid "" "* y + x % y`` be very close to ``x``." msgstr "" -#: ../../reference/expressions.rst:2135 msgid "" "The Unicode standard distinguishes between :dfn:`code points` (e.g. U+0041) " "and :dfn:`abstract characters` (e.g. \"LATIN CAPITAL LETTER A\"). While most " @@ -2488,7 +2108,6 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" -#: ../../reference/expressions.rst:2146 msgid "" "The comparison operators on strings compare at the level of Unicode code " "points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " @@ -2496,13 +2115,11 @@ msgid "" "same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." msgstr "" -#: ../../reference/expressions.rst:2151 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." msgstr "" -#: ../../reference/expressions.rst:2154 msgid "" "Due to automatic garbage-collection, free lists, and the dynamic nature of " "descriptors, you may notice seemingly unusual behaviour in certain uses of " @@ -2510,779 +2127,546 @@ msgid "" "instance methods, or constants. Check their documentation for more info." msgstr "" -#: ../../reference/expressions.rst:2159 msgid "" "The power operator ``**`` binds less tightly than an arithmetic or bitwise " "unary operator on its right, that is, ``2**-1`` is ``0.5``." msgstr "" -#: ../../reference/expressions.rst:2162 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" -#: ../../reference/expressions.rst:8 ../../reference/expressions.rst:448 -#: ../../reference/expressions.rst:504 ../../reference/expressions.rst:1840 -#: ../../reference/expressions.rst:1880 ../../reference/expressions.rst:1931 -#: ../../reference/expressions.rst:1957 ../../reference/expressions.rst:1985 msgid "expression" msgstr "" -#: ../../reference/expressions.rst:8 msgid "BNF" msgstr "" -#: ../../reference/expressions.rst:28 ../../reference/expressions.rst:1320 -#: ../../reference/expressions.rst:1368 msgid "arithmetic" msgstr "" -#: ../../reference/expressions.rst:28 msgid "conversion" msgstr "" -#: ../../reference/expressions.rst:50 msgid "atom" msgstr "" -#: ../../reference/expressions.rst:67 ../../reference/expressions.rst:81 msgid "name" msgstr "" -#: ../../reference/expressions.rst:67 msgid "identifier" msgstr "" -#: ../../reference/expressions.rst:73 ../../reference/expressions.rst:625 -#: ../../reference/expressions.rst:680 ../../reference/expressions.rst:811 -#: ../../reference/expressions.rst:866 ../../reference/expressions.rst:913 -#: ../../reference/expressions.rst:1357 ../../reference/expressions.rst:1410 -#: ../../reference/expressions.rst:1514 msgid "exception" msgstr "" -#: ../../reference/expressions.rst:73 msgid "NameError" msgstr "" -#: ../../reference/expressions.rst:81 msgid "mangling" msgstr "" -#: ../../reference/expressions.rst:81 msgid "private" msgstr "" -#: ../../reference/expressions.rst:81 msgid "names" msgstr "" -#: ../../reference/expressions.rst:132 msgid "literal" msgstr "" -#: ../../reference/expressions.rst:149 ../../reference/expressions.rst:427 msgid "immutable" msgstr "" -#: ../../reference/expressions.rst:149 msgid "data" msgstr "" -#: ../../reference/expressions.rst:149 msgid "type" msgstr "" -#: ../../reference/expressions.rst:149 ../../reference/expressions.rst:330 -#: ../../reference/expressions.rst:356 ../../reference/expressions.rst:384 -#: ../../reference/expressions.rst:427 ../../reference/expressions.rst:448 -#: ../../reference/expressions.rst:613 ../../reference/expressions.rst:801 -#: ../../reference/expressions.rst:913 ../../reference/expressions.rst:942 -#: ../../reference/expressions.rst:1019 ../../reference/expressions.rst:1063 -#: ../../reference/expressions.rst:1211 ../../reference/expressions.rst:1225 -#: ../../reference/expressions.rst:1239 ../../reference/expressions.rst:1246 -#: ../../reference/expressions.rst:1805 ../../reference/expressions.rst:1997 msgid "object" msgstr "" -#: ../../reference/expressions.rst:217 msgid "parenthesized form" msgstr "" -#: ../../reference/expressions.rst:217 ../../reference/expressions.rst:448 -#: ../../reference/expressions.rst:1063 msgid "() (parentheses)" msgstr "" -#: ../../reference/expressions.rst:217 msgid "tuple display" msgstr "" -#: ../../reference/expressions.rst:230 ../../reference/expressions.rst:330 msgid "empty" msgstr "" -#: ../../reference/expressions.rst:230 ../../reference/expressions.rst:942 -#: ../../reference/expressions.rst:1019 ../../reference/expressions.rst:1997 msgid "tuple" msgstr "" -#: ../../reference/expressions.rst:236 ../../reference/expressions.rst:2019 msgid "comma" msgstr "" -#: ../../reference/expressions.rst:236 ../../reference/expressions.rst:330 -#: ../../reference/expressions.rst:356 ../../reference/expressions.rst:384 -#: ../../reference/expressions.rst:1013 ../../reference/expressions.rst:1063 -#: ../../reference/expressions.rst:1985 msgid ", (comma)" msgstr "" -#: ../../reference/expressions.rst:251 ../../reference/expressions.rst:330 -#: ../../reference/expressions.rst:356 ../../reference/expressions.rst:384 msgid "comprehensions" msgstr "" -#: ../../reference/expressions.rst:261 msgid "for" msgstr "" -#: ../../reference/expressions.rst:261 ../../reference/expressions.rst:296 msgid "in comprehensions" msgstr "" -#: ../../reference/expressions.rst:261 ../../reference/expressions.rst:1931 msgid "if" msgstr "" -#: ../../reference/expressions.rst:261 msgid "async for" msgstr "" -#: ../../reference/expressions.rst:296 ../../reference/expressions.rst:1264 msgid "await" msgstr "" -#: ../../reference/expressions.rst:330 ../../reference/expressions.rst:913 -#: ../../reference/expressions.rst:942 ../../reference/expressions.rst:1019 -#: ../../reference/expressions.rst:1985 msgid "list" msgstr "" -#: ../../reference/expressions.rst:330 ../../reference/expressions.rst:356 -#: ../../reference/expressions.rst:384 msgid "display" msgstr "" -#: ../../reference/expressions.rst:330 ../../reference/expressions.rst:938 msgid "[] (square brackets)" msgstr "" -#: ../../reference/expressions.rst:330 msgid "list expression" msgstr "" -#: ../../reference/expressions.rst:330 ../../reference/expressions.rst:356 -#: ../../reference/expressions.rst:1985 msgid "expression list" msgstr "" -#: ../../reference/expressions.rst:356 msgid "set" msgstr "" -#: ../../reference/expressions.rst:356 ../../reference/expressions.rst:384 msgid "{} (curly brackets)" msgstr "" -#: ../../reference/expressions.rst:356 msgid "set expression" msgstr "" -#: ../../reference/expressions.rst:384 ../../reference/expressions.rst:410 -#: ../../reference/expressions.rst:942 msgid "dictionary" msgstr "" -#: ../../reference/expressions.rst:384 msgid "key" msgstr "" -#: ../../reference/expressions.rst:384 msgid "value" msgstr "" -#: ../../reference/expressions.rst:384 msgid "key/value pair" msgstr "" -#: ../../reference/expressions.rst:384 msgid "dictionary expression" msgstr "" -#: ../../reference/expressions.rst:384 ../../reference/expressions.rst:1013 -#: ../../reference/expressions.rst:1957 msgid ": (colon)" msgstr "" -#: ../../reference/expressions.rst:384 msgid "in dictionary expressions" msgstr "" -#: ../../reference/expressions.rst:384 ../../reference/expressions.rst:410 msgid "in dictionary displays" msgstr "" -#: ../../reference/expressions.rst:410 ../../reference/expressions.rst:1146 -#: ../../reference/expressions.rst:2004 msgid "unpacking" msgstr "" -#: ../../reference/expressions.rst:410 ../../reference/expressions.rst:1176 -#: ../../reference/expressions.rst:1284 msgid "**" msgstr "" -#: ../../reference/expressions.rst:427 msgid "hashable" msgstr "" -#: ../../reference/expressions.rst:448 ../../reference/expressions.rst:504 -#: ../../reference/expressions.rst:613 msgid "generator" msgstr "" -#: ../../reference/expressions.rst:448 msgid "generator expression" msgstr "" -#: ../../reference/expressions.rst:504 ../../reference/expressions.rst:1264 msgid "keyword" msgstr "" -#: ../../reference/expressions.rst:504 ../../reference/expressions.rst:702 msgid "yield" msgstr "" -#: ../../reference/expressions.rst:504 ../../reference/expressions.rst:572 msgid "from" msgstr "" -#: ../../reference/expressions.rst:504 ../../reference/expressions.rst:1211 -#: ../../reference/expressions.rst:1225 ../../reference/expressions.rst:1957 msgid "function" msgstr "" -#: ../../reference/expressions.rst:558 msgid "coroutine" msgstr "" -#: ../../reference/expressions.rst:572 msgid "yield from expression" msgstr "" -#: ../../reference/expressions.rst:625 msgid "StopIteration" msgstr "" -#: ../../reference/expressions.rst:680 ../../reference/expressions.rst:866 msgid "GeneratorExit" msgstr "" -#: ../../reference/expressions.rst:702 msgid "examples" msgstr "" -#: ../../reference/expressions.rst:801 msgid "asynchronous-generator" msgstr "" -#: ../../reference/expressions.rst:811 msgid "StopAsyncIteration" msgstr "" -#: ../../reference/expressions.rst:890 msgid "primary" msgstr "" -#: ../../reference/expressions.rst:904 msgid "attribute" msgstr "" -#: ../../reference/expressions.rst:904 msgid "reference" msgstr "" -#: ../../reference/expressions.rst:904 msgid ". (dot)" msgstr "" -#: ../../reference/expressions.rst:904 msgid "attribute reference" msgstr "" -#: ../../reference/expressions.rst:913 msgid "AttributeError" msgstr "" -#: ../../reference/expressions.rst:913 msgid "module" msgstr "" -#: ../../reference/expressions.rst:938 msgid "subscription" msgstr "" -#: ../../reference/expressions.rst:942 ../../reference/expressions.rst:1019 -#: ../../reference/expressions.rst:1805 msgid "sequence" msgstr "" -#: ../../reference/expressions.rst:942 msgid "mapping" msgstr "" -#: ../../reference/expressions.rst:942 ../../reference/expressions.rst:999 -#: ../../reference/expressions.rst:1019 msgid "string" msgstr "" -#: ../../reference/expressions.rst:942 ../../reference/expressions.rst:999 msgid "item" msgstr "" -#: ../../reference/expressions.rst:999 msgid "character" msgstr "" -#: ../../reference/expressions.rst:1013 msgid "slicing" msgstr "" -#: ../../reference/expressions.rst:1013 msgid "slice" msgstr "" -#: ../../reference/expressions.rst:1045 msgid "start (slice object attribute)" msgstr "" -#: ../../reference/expressions.rst:1045 msgid "stop (slice object attribute)" msgstr "" -#: ../../reference/expressions.rst:1045 msgid "step (slice object attribute)" msgstr "" -#: ../../reference/expressions.rst:1063 msgid "callable" msgstr "" -#: ../../reference/expressions.rst:1063 ../../reference/expressions.rst:1211 -#: ../../reference/expressions.rst:1225 ../../reference/expressions.rst:1239 -#: ../../reference/expressions.rst:1246 ../../reference/expressions.rst:1256 msgid "call" msgstr "" -#: ../../reference/expressions.rst:1063 msgid "argument" msgstr "" -#: ../../reference/expressions.rst:1063 ../../reference/expressions.rst:1096 msgid "call semantics" msgstr "" -#: ../../reference/expressions.rst:1063 msgid "argument list" msgstr "" -#: ../../reference/expressions.rst:1063 msgid "= (equals)" msgstr "" -#: ../../reference/expressions.rst:1063 ../../reference/expressions.rst:1146 -#: ../../reference/expressions.rst:1176 msgid "in function calls" msgstr "" -#: ../../reference/expressions.rst:1096 msgid "parameter" msgstr "" -#: ../../reference/expressions.rst:1146 ../../reference/expressions.rst:1381 -#: ../../reference/expressions.rst:2004 msgid "* (asterisk)" msgstr "" -#: ../../reference/expressions.rst:1211 msgid "user-defined" msgstr "" -#: ../../reference/expressions.rst:1211 msgid "user-defined function" msgstr "" -#: ../../reference/expressions.rst:1225 msgid "built-in function" msgstr "" -#: ../../reference/expressions.rst:1225 msgid "method" msgstr "" -#: ../../reference/expressions.rst:1225 msgid "built-in method" msgstr "" -#: ../../reference/expressions.rst:1239 msgid "class" msgstr "" -#: ../../reference/expressions.rst:1239 msgid "class object" msgstr "" -#: ../../reference/expressions.rst:1246 msgid "class instance" msgstr "" -#: ../../reference/expressions.rst:1246 ../../reference/expressions.rst:1256 msgid "instance" msgstr "" -#: ../../reference/expressions.rst:1256 msgid "__call__() (object method)" msgstr "" -#: ../../reference/expressions.rst:1284 msgid "power" msgstr "" -#: ../../reference/expressions.rst:1284 ../../reference/expressions.rst:1320 -#: ../../reference/expressions.rst:1368 ../../reference/expressions.rst:1496 -#: ../../reference/expressions.rst:1525 ../../reference/expressions.rst:1840 msgid "operation" msgstr "" -#: ../../reference/expressions.rst:1284 ../../reference/expressions.rst:1329 -#: ../../reference/expressions.rst:1338 ../../reference/expressions.rst:1346 -#: ../../reference/expressions.rst:1381 ../../reference/expressions.rst:1398 -#: ../../reference/expressions.rst:1410 ../../reference/expressions.rst:1428 -#: ../../reference/expressions.rst:1458 ../../reference/expressions.rst:1475 -#: ../../reference/expressions.rst:1496 ../../reference/expressions.rst:1534 -#: ../../reference/expressions.rst:1542 ../../reference/expressions.rst:1551 -#: ../../reference/expressions.rst:1566 ../../reference/expressions.rst:1805 -#: ../../reference/expressions.rst:1814 ../../reference/expressions.rst:1856 -#: ../../reference/expressions.rst:1861 ../../reference/expressions.rst:1866 -#: ../../reference/expressions.rst:1931 ../../reference/expressions.rst:2055 msgid "operator" msgstr "" -#: ../../reference/expressions.rst:1320 msgid "unary" msgstr "" -#: ../../reference/expressions.rst:1320 ../../reference/expressions.rst:1525 -#: ../../reference/expressions.rst:1534 ../../reference/expressions.rst:1542 -#: ../../reference/expressions.rst:1551 msgid "bitwise" msgstr "" -#: ../../reference/expressions.rst:1329 msgid "negation" msgstr "" -#: ../../reference/expressions.rst:1329 msgid "minus" msgstr "" -#: ../../reference/expressions.rst:1329 ../../reference/expressions.rst:1475 msgid "- (minus)" msgstr "" -#: ../../reference/expressions.rst:1329 ../../reference/expressions.rst:1338 msgid "unary operator" msgstr "" -#: ../../reference/expressions.rst:1338 msgid "plus" msgstr "" -#: ../../reference/expressions.rst:1338 ../../reference/expressions.rst:1458 msgid "+ (plus)" msgstr "" -#: ../../reference/expressions.rst:1346 msgid "inversion" msgstr "" -#: ../../reference/expressions.rst:1346 msgid "~ (tilde)" msgstr "" -#: ../../reference/expressions.rst:1357 msgid "TypeError" msgstr "" -#: ../../reference/expressions.rst:1368 ../../reference/expressions.rst:1525 msgid "binary" msgstr "" -#: ../../reference/expressions.rst:1381 msgid "multiplication" msgstr "" -#: ../../reference/expressions.rst:1398 msgid "matrix multiplication" msgstr "" -#: ../../reference/expressions.rst:1398 msgid "@ (at)" msgstr "" -#: ../../reference/expressions.rst:1410 msgid "ZeroDivisionError" msgstr "" -#: ../../reference/expressions.rst:1410 msgid "division" msgstr "" -#: ../../reference/expressions.rst:1410 msgid "/ (slash)" msgstr "" -#: ../../reference/expressions.rst:1410 msgid "//" msgstr "" -#: ../../reference/expressions.rst:1428 msgid "modulo" msgstr "" -#: ../../reference/expressions.rst:1428 msgid "% (percent)" msgstr "" -#: ../../reference/expressions.rst:1458 msgid "addition" msgstr "" -#: ../../reference/expressions.rst:1458 ../../reference/expressions.rst:1475 msgid "binary operator" msgstr "" -#: ../../reference/expressions.rst:1475 msgid "subtraction" msgstr "" -#: ../../reference/expressions.rst:1496 msgid "shifting" msgstr "" -#: ../../reference/expressions.rst:1496 msgid "<<" msgstr "" -#: ../../reference/expressions.rst:1496 msgid ">>" msgstr "" -#: ../../reference/expressions.rst:1514 msgid "ValueError" msgstr "" -#: ../../reference/expressions.rst:1534 ../../reference/expressions.rst:1861 msgid "and" msgstr "" -#: ../../reference/expressions.rst:1534 msgid "& (ampersand)" msgstr "" -#: ../../reference/expressions.rst:1542 msgid "xor" msgstr "" -#: ../../reference/expressions.rst:1542 msgid "exclusive" msgstr "" -#: ../../reference/expressions.rst:1542 ../../reference/expressions.rst:1551 -#: ../../reference/expressions.rst:1866 msgid "or" msgstr "" -#: ../../reference/expressions.rst:1542 msgid "^ (caret)" msgstr "" -#: ../../reference/expressions.rst:1551 msgid "inclusive" msgstr "" -#: ../../reference/expressions.rst:1551 msgid "| (vertical bar)" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "comparison" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "C" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "language" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "< (less)" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "> (greater)" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "<=" msgstr "" -#: ../../reference/expressions.rst:1566 msgid ">=" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "==" msgstr "" -#: ../../reference/expressions.rst:1566 msgid "!=" msgstr "" -#: ../../reference/expressions.rst:1590 msgid "chaining" msgstr "" -#: ../../reference/expressions.rst:1590 msgid "comparisons" msgstr "" -#: ../../reference/expressions.rst:1805 msgid "in" msgstr "" -#: ../../reference/expressions.rst:1805 msgid "not in" msgstr "" -#: ../../reference/expressions.rst:1805 msgid "membership" msgstr "" -#: ../../reference/expressions.rst:1805 ../../reference/expressions.rst:1814 msgid "test" msgstr "" -#: ../../reference/expressions.rst:1814 msgid "is" msgstr "" -#: ../../reference/expressions.rst:1814 msgid "is not" msgstr "" -#: ../../reference/expressions.rst:1814 msgid "identity" msgstr "" -#: ../../reference/expressions.rst:1840 msgid "Conditional" msgstr "" -#: ../../reference/expressions.rst:1840 msgid "Boolean" msgstr "" -#: ../../reference/expressions.rst:1856 msgid "not" msgstr "" -#: ../../reference/expressions.rst:1880 msgid ":= (colon equals)" msgstr "" -#: ../../reference/expressions.rst:1880 msgid "assignment expression" msgstr "" -#: ../../reference/expressions.rst:1880 msgid "walrus operator" msgstr "" -#: ../../reference/expressions.rst:1880 msgid "named expression" msgstr "" -#: ../../reference/expressions.rst:1880 msgid "assignment" msgstr "" -#: ../../reference/expressions.rst:1931 msgid "conditional" msgstr "" -#: ../../reference/expressions.rst:1931 msgid "ternary" msgstr "" -#: ../../reference/expressions.rst:1931 msgid "conditional expression" msgstr "" -#: ../../reference/expressions.rst:1931 msgid "else" msgstr "" -#: ../../reference/expressions.rst:1957 msgid "lambda" msgstr "" -#: ../../reference/expressions.rst:1957 msgid "form" msgstr "" -#: ../../reference/expressions.rst:1957 msgid "anonymous" msgstr "" -#: ../../reference/expressions.rst:1957 msgid "lambda expression" msgstr "" -#: ../../reference/expressions.rst:2004 msgid "iterable" msgstr "" -#: ../../reference/expressions.rst:2004 msgid "in expression lists" msgstr "" -#: ../../reference/expressions.rst:2019 msgid "trailing" msgstr "" -#: ../../reference/expressions.rst:2034 msgid "evaluation" msgstr "" -#: ../../reference/expressions.rst:2034 msgid "order" msgstr "" -#: ../../reference/expressions.rst:2055 msgid "precedence" msgstr "" diff --git a/reference/grammar.po b/reference/grammar.po index caef9bd..957f5bf 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,31 +18,26 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/grammar.rst:4 msgid "Full Grammar specification" msgstr "" -#: ../../reference/grammar.rst:6 msgid "" "This is the full Python grammar, derived directly from the grammar used to " "generate the CPython parser (see :source:`Grammar/python.gram`). The version " "here omits details related to code generation and error recovery." msgstr "" -#: ../../reference/grammar.rst:11 msgid "" "The notation used here is the same as in the preceding docs, and is " "described in the :ref:`notation ` section, except for an extra " "complication:" msgstr "" -#: ../../reference/grammar.rst:15 msgid "" "``~`` (\"cut\"): commit to the current alternative and fail the rule even if " "this fails to parse" msgstr "" -#: ../../reference/grammar.rst:18 msgid "" "# PEG grammar for Python\n" "\n" @@ -152,11 +147,13 @@ msgid "" "# GENERAL STATEMENTS\n" "# ==================\n" "\n" -"statements[asdl_stmt_seq*]: a=statement+ { _PyPegen_register_stmts(p, " -"(asdl_stmt_seq*)_PyPegen_seq_flatten(p, a)) }\n" +"statements[asdl_stmt_seq*]: a=statement+ " +"{ (asdl_stmt_seq*)_PyPegen_seq_flatten(p, a) }\n" "\n" "statement[asdl_stmt_seq*]:\n" -" | a=compound_stmt { (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a) }\n" +" | a=compound_stmt { _PyPegen_register_stmts(p ,\n" +" (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a)\n" +" ) }\n" " | a[asdl_stmt_seq*]=simple_stmts { a }\n" "\n" "single_compound_stmt[asdl_stmt_seq*]:\n" @@ -414,10 +411,10 @@ msgid "" " | a[asdl_arg_seq*]=param_no_default+ '/' ',' { a }\n" " | a[asdl_arg_seq*]=param_no_default+ '/' &')' { a }\n" "slash_with_default[SlashWithDefault*]:\n" -" | a=param_no_default* b=param_with_default+ '/' ',' " -"{ _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" -" | a=param_no_default* b=param_with_default+ '/' &')' " -"{ _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" +" | a=param_no_default* b=param_with_default+ '/' " +"',' { _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" +" | a=param_no_default* b=param_with_default+ '/' " +"&')' { _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" "\n" "star_etc[StarEtc*]:\n" " | invalid_star_etc\n" @@ -455,22 +452,22 @@ msgid "" "param_no_default_star_annotation[arg_ty]:\n" " | a=param_star_annotation ',' tc=TYPE_COMMENT? " "{ _PyPegen_add_type_comment_to_arg(p, a, tc) }\n" -" | a=param_star_annotation tc=TYPE_COMMENT? &')' " -"{ _PyPegen_add_type_comment_to_arg(p, a, tc) }\n" +" | a=param_star_annotation tc=TYPE_COMMENT? " +"&')' { _PyPegen_add_type_comment_to_arg(p, a, tc) }\n" "param_with_default[NameDefaultPair*]:\n" " | a=param c=default ',' tc=TYPE_COMMENT? { _PyPegen_name_default_pair(p, " "a, c, tc) }\n" -" | a=param c=default tc=TYPE_COMMENT? &')' " -"{ _PyPegen_name_default_pair(p, a, c, tc) }\n" +" | a=param c=default tc=TYPE_COMMENT? " +"&')' { _PyPegen_name_default_pair(p, a, c, tc) }\n" "param_maybe_default[NameDefaultPair*]:\n" " | a=param c=default? ',' tc=TYPE_COMMENT? " "{ _PyPegen_name_default_pair(p, a, c, tc) }\n" -" | a=param c=default? tc=TYPE_COMMENT? &')' " -"{ _PyPegen_name_default_pair(p, a, c, tc) }\n" +" | a=param c=default? tc=TYPE_COMMENT? " +"&')' { _PyPegen_name_default_pair(p, a, c, tc) }\n" "param[arg_ty]: a=NAME b=annotation? { _PyAST_arg(a->v.Name.id, b, NULL, " "EXTRA) }\n" -"param_star_annotation[arg_ty]: a=NAME b=star_annotation { _PyAST_arg(a-" -">v.Name.id, b, NULL, EXTRA) }\n" +"param_star_annotation[arg_ty]: a=NAME b=star_annotation { _PyAST_arg(a->v." +"Name.id, b, NULL, EXTRA) }\n" "annotation[expr_ty]: ':' a=expression { a }\n" "star_annotation[expr_ty]: ':' a=star_expression { a }\n" "default[expr_ty]: '=' a=expression { a } | invalid_default\n" @@ -685,8 +682,8 @@ msgid "" " | imag=NUMBER { _PyPegen_ensure_imaginary(p, imag) }\n" "\n" "capture_pattern[pattern_ty]:\n" -" | target=pattern_capture_target { _PyAST_MatchAs(NULL, target-" -">v.Name.id, EXTRA) }\n" +" | target=pattern_capture_target { _PyAST_MatchAs(NULL, target->v.Name." +"id, EXTRA) }\n" "\n" "pattern_capture_target[expr_ty]:\n" " | !\"_\" name=NAME !('.' | '(' | '=') {\n" @@ -710,10 +707,10 @@ msgid "" " | '(' pattern=pattern ')' { pattern }\n" "\n" "sequence_pattern[pattern_ty]:\n" -" | '[' patterns=maybe_sequence_pattern? ']' " -"{ _PyAST_MatchSequence(patterns, EXTRA) }\n" -" | '(' patterns=open_sequence_pattern? ')' " -"{ _PyAST_MatchSequence(patterns, EXTRA) }\n" +" | '[' patterns=maybe_sequence_pattern? " +"']' { _PyAST_MatchSequence(patterns, EXTRA) }\n" +" | '(' patterns=open_sequence_pattern? " +"')' { _PyAST_MatchSequence(patterns, EXTRA) }\n" "\n" "open_sequence_pattern[asdl_seq*]:\n" " | pattern=maybe_star_pattern ',' patterns=maybe_sequence_pattern? {\n" @@ -813,15 +810,15 @@ msgid "" " CHECK_VERSION(asdl_type_param_seq *, 12, \"Type parameter lists " "are\", t) }\n" "\n" -"type_param_seq[asdl_type_param_seq*]: " -"a[asdl_type_param_seq*]=','.type_param+ [','] { a }\n" +"type_param_seq[asdl_type_param_seq*]: a[asdl_type_param_seq*]=','." +"type_param+ [','] { a }\n" "\n" "type_param[type_param_ty] (memo):\n" " | a=NAME b=[type_param_bound] c=[type_param_default] { _PyAST_TypeVar(a-" ">v.Name.id, b, c, EXTRA) }\n" " | invalid_type_param\n" -" | '*' a=NAME b=[type_param_starred_default] { _PyAST_TypeVarTuple(a-" -">v.Name.id, b, EXTRA) }\n" +" | '*' a=NAME b=[type_param_starred_default] { _PyAST_TypeVarTuple(a->v." +"Name.id, b, EXTRA) }\n" " | '**' a=NAME b=[type_param_default] { _PyAST_ParamSpec(a->v.Name.id, b, " "EXTRA) }\n" "\n" @@ -866,8 +863,8 @@ msgid "" " | '*' a=bitwise_or { _PyAST_Starred(a, Load, EXTRA) }\n" " | expression\n" "\n" -"star_named_expressions[asdl_expr_seq*]: " -"a[asdl_expr_seq*]=','.star_named_expression+ [','] { a }\n" +"star_named_expressions[asdl_expr_seq*]: a[asdl_expr_seq*]=','." +"star_named_expression+ [','] { a }\n" "\n" "star_named_expression[expr_ty]:\n" " | '*' a=bitwise_or { _PyAST_Starred(a, Load, EXTRA) }\n" @@ -1085,10 +1082,10 @@ msgid "" " | a[asdl_arg_seq*]=lambda_param_no_default+ '/' &':' { a }\n" "\n" "lambda_slash_with_default[SlashWithDefault*]:\n" -" | a=lambda_param_no_default* b=lambda_param_with_default+ '/' ',' " -"{ _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" -" | a=lambda_param_no_default* b=lambda_param_with_default+ '/' &':' " -"{ _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" +" | a=lambda_param_no_default* b=lambda_param_with_default+ '/' " +"',' { _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" +" | a=lambda_param_no_default* b=lambda_param_with_default+ '/' " +"&':' { _PyPegen_slash_with_default(p, (asdl_arg_seq *)a, b) }\n" "\n" "lambda_star_etc[StarEtc*]:\n" " | invalid_lambda_star_etc\n" @@ -1241,8 +1238,8 @@ msgid "" " | invalid_comprehension\n" "\n" "genexp[expr_ty]:\n" -" | '(' a=( assignment_expression | expression !':=') b=for_if_clauses ')' " -"{ _PyAST_GeneratorExp(a, b, EXTRA) }\n" +" | '(' a=( assignment_expression | expression !':=') b=for_if_clauses " +"')' { _PyAST_GeneratorExp(a, b, EXTRA) }\n" " | invalid_comprehension\n" "\n" "dictcomp[expr_ty]:\n" @@ -1282,15 +1279,15 @@ msgid "" "kwarg_or_starred[KeywordOrStarred*]:\n" " | invalid_kwarg\n" " | a=NAME '=' b=expression {\n" -" _PyPegen_keyword_or_starred(p, CHECK(keyword_ty, _PyAST_keyword(a-" -">v.Name.id, b, EXTRA)), 1) }\n" +" _PyPegen_keyword_or_starred(p, CHECK(keyword_ty, _PyAST_keyword(a->v." +"Name.id, b, EXTRA)), 1) }\n" " | a=starred_expression { _PyPegen_keyword_or_starred(p, a, 0) }\n" "\n" "kwarg_or_double_starred[KeywordOrStarred*]:\n" " | invalid_kwarg\n" " | a=NAME '=' b=expression {\n" -" _PyPegen_keyword_or_starred(p, CHECK(keyword_ty, _PyAST_keyword(a-" -">v.Name.id, b, EXTRA)), 1) }\n" +" _PyPegen_keyword_or_starred(p, CHECK(keyword_ty, _PyAST_keyword(a->v." +"Name.id, b, EXTRA)), 1) }\n" " | '**' a=expression { _PyPegen_keyword_or_starred(p, CHECK(keyword_ty, " "_PyAST_keyword(NULL, a, EXTRA)), 1) }\n" "\n" @@ -1322,8 +1319,8 @@ msgid "" " | target_with_star_atom\n" "\n" "target_with_star_atom[expr_ty] (memo):\n" -" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b-" -">v.Name.id, Store, EXTRA) }\n" +" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b->v.Name." +"id, Store, EXTRA) }\n" " | a=t_primary '[' b=slices ']' !t_lookahead { _PyAST_Subscript(a, b, " "Store, EXTRA) }\n" " | star_atom\n" @@ -1341,14 +1338,14 @@ msgid "" " | '(' a=single_target ')' { a }\n" "\n" "single_subscript_attribute_target[expr_ty]:\n" -" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b-" -">v.Name.id, Store, EXTRA) }\n" +" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b->v.Name." +"id, Store, EXTRA) }\n" " | a=t_primary '[' b=slices ']' !t_lookahead { _PyAST_Subscript(a, b, " "Store, EXTRA) }\n" "\n" "t_primary[expr_ty]:\n" -" | a=t_primary '.' b=NAME &t_lookahead { _PyAST_Attribute(a, b-" -">v.Name.id, Load, EXTRA) }\n" +" | a=t_primary '.' b=NAME &t_lookahead { _PyAST_Attribute(a, b->v.Name." +"id, Load, EXTRA) }\n" " | a=t_primary '[' b=slices ']' &t_lookahead { _PyAST_Subscript(a, b, " "Load, EXTRA) }\n" " | a=t_primary b=genexp &t_lookahead {\n" @@ -1369,8 +1366,8 @@ msgid "" "del_targets[asdl_expr_seq*]: a[asdl_expr_seq*]=','.del_target+ [','] { a }\n" "\n" "del_target[expr_ty] (memo):\n" -" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b-" -">v.Name.id, Del, EXTRA) }\n" +" | a=t_primary '.' b=NAME !t_lookahead { _PyAST_Attribute(a, b->v.Name." +"id, Del, EXTRA) }\n" " | a=t_primary '[' b=slices ']' !t_lookahead { _PyAST_Subscript(a, b, " "Del, EXTRA) }\n" " | del_t_atom\n" @@ -1419,9 +1416,8 @@ msgid "" "# From here on, there are rules for invalid syntax with specialised error " "messages\n" "invalid_arguments:\n" -" | ((','.(starred_expression | ( assignment_expression | " -"expression !':=') !'=')+ ',' kwargs) | kwargs) a=',' ','." -"(starred_expression !'=')+ {\n" +" | ((','.(starred_expression | ( assignment_expression | expression !':" +"=') !'=')+ ',' kwargs) | kwargs) a=',' ','.(starred_expression !'=')+ {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(a, \"iterable argument unpacking " "follows keyword argument unpacking\") }\n" " | a=expression b=for_if_clauses ',' [args | expression for_if_clauses] " @@ -1543,9 +1539,9 @@ msgid "" "annotation\") }\n" " | (star_targets '=')* a=star_expressions '=' {\n" " RAISE_SYNTAX_ERROR_INVALID_TARGET(STAR_TARGETS, a) }\n" -" | (star_targets '=')* a=yield_expr '=' " -"{ RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"assignment to yield expression not " -"possible\") }\n" +" | (star_targets '=')* a=yield_expr " +"'=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"assignment to yield expression " +"not possible\") }\n" " | a=star_expressions augassign annotated_rhs {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(\n" " a,\n" @@ -1606,8 +1602,8 @@ msgid "" "comment\") }\n" " | '*' param a='=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"var-" "positional argument cannot have default value\") }\n" -" | '*' (param_no_default | ',') param_maybe_default* a='*' " -"(param_no_default | ',') {\n" +" | '*' (param_no_default | ',') param_maybe_default* " +"a='*' (param_no_default | ',') {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"* argument may appear only " "once\") }\n" "invalid_kwds:\n" @@ -1650,8 +1646,8 @@ msgid "" "must follow bare *\") }\n" " | '*' lambda_param a='=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"var-" "positional argument cannot have default value\") }\n" -" | '*' (lambda_param_no_default | ',') lambda_param_maybe_default* a='*' " -"(lambda_param_no_default | ',') {\n" +" | '*' (lambda_param_no_default | ',') lambda_param_maybe_default* " +"a='*' (lambda_param_no_default | ',') {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, \"* argument may appear only " "once\") }\n" "invalid_lambda_kwds:\n" diff --git a/reference/import.po b/reference/import.po index da50758..f39ad65 100644 --- a/reference/import.po +++ b/reference/import.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,32 +22,28 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/import.rst:6 msgid "The import system" msgstr "" -#: ../../reference/import.rst:10 msgid "" "Python code in one :term:`module` gains access to the code in another module " "by the process of :term:`importing` it. The :keyword:`import` statement is " "the most common way of invoking the import machinery, but it is not the only " -"way. Functions such as :func:`importlib.import_module` and built-" -"in :func:`__import__` can also be used to invoke the import machinery." +"way. Functions such as :func:`importlib.import_module` and built-in :func:" +"`__import__` can also be used to invoke the import machinery." msgstr "" -#: ../../reference/import.rst:16 msgid "" "The :keyword:`import` statement combines two operations; it searches for the " "named module, then it binds the results of that search to a name in the " "local scope. The search operation of the :keyword:`!import` statement is " "defined as a call to the :func:`__import__` function, with the appropriate " "arguments. The return value of :func:`__import__` is used to perform the " -"name binding operation of the :keyword:`!import` statement. See " -"the :keyword:`!import` statement for the exact details of that name binding " +"name binding operation of the :keyword:`!import` statement. See the :" +"keyword:`!import` statement for the exact details of that name binding " "operation." msgstr "" -#: ../../reference/import.rst:25 msgid "" "A direct call to :func:`__import__` performs only the module search and, if " "found, the module creation operation. While certain side-effects may occur, " @@ -56,16 +52,13 @@ msgid "" "performs a name binding operation." msgstr "" -#: ../../reference/import.rst:31 msgid "" -"When an :keyword:`import` statement is executed, the standard " -"builtin :func:`__import__` function is called. Other mechanisms for invoking " -"the import system (such as :func:`importlib.import_module`) may choose to " -"bypass :func:`__import__` and use their own solutions to implement import " -"semantics." +"When an :keyword:`import` statement is executed, the standard builtin :func:" +"`__import__` function is called. Other mechanisms for invoking the import " +"system (such as :func:`importlib.import_module`) may choose to bypass :func:" +"`__import__` and use their own solutions to implement import semantics." msgstr "" -#: ../../reference/import.rst:36 msgid "" "When a module is first imported, Python searches for the module and if " "found, it creates a module object [#fnmo]_, initializing it. If the named " @@ -75,19 +68,16 @@ msgid "" "using various hooks described in the sections below." msgstr "" -#: ../../reference/import.rst:43 msgid "" -"The import system has been updated to fully implement the second phase " -"of :pep:`302`. There is no longer any implicit import machinery - the full " +"The import system has been updated to fully implement the second phase of :" +"pep:`302`. There is no longer any implicit import machinery - the full " "import system is exposed through :data:`sys.meta_path`. In addition, native " "namespace package support has been implemented (see :pep:`420`)." msgstr "" -#: ../../reference/import.rst:51 msgid ":mod:`importlib`" msgstr "" -#: ../../reference/import.rst:53 msgid "" "The :mod:`importlib` module provides a rich API for interacting with the " "import system. For example :func:`importlib.import_module` provides a " @@ -96,11 +86,9 @@ msgid "" "additional detail." msgstr "" -#: ../../reference/import.rst:62 msgid "Packages" msgstr "A csomagok" -#: ../../reference/import.rst:67 msgid "" "Python has only one type of module object, and all modules are of this type, " "regardless of whether the module is implemented in Python, C, or something " @@ -108,7 +96,6 @@ msgid "" "concept of :term:`packages `." msgstr "" -#: ../../reference/import.rst:72 msgid "" "You can think of packages as the directories on a file system and modules as " "files within directories, but don't take this analogy too literally since " @@ -119,7 +106,6 @@ msgid "" "regular modules." msgstr "" -#: ../../reference/import.rst:80 msgid "" "It's important to keep in mind that all packages are modules, but not all " "modules are packages. Or put another way, packages are just a special kind " @@ -127,7 +113,6 @@ msgid "" "is considered a package." msgstr "" -#: ../../reference/import.rst:85 msgid "" "All modules have a name. Subpackage names are separated from their parent " "package name by a dot, akin to Python's standard attribute access syntax. " @@ -136,30 +121,26 @@ msgid "" "called :mod:`email.mime.text`." msgstr "" -#: ../../reference/import.rst:93 msgid "Regular packages" msgstr "" -#: ../../reference/import.rst:98 msgid "" "Python defines two types of packages, :term:`regular packages ` and :term:`namespace packages `. Regular " "packages are traditional packages as they existed in Python 3.2 and earlier. " "A regular package is typically implemented as a directory containing an " -"``__init__.py`` file. When a regular package is imported, this " -"``__init__.py`` file is implicitly executed, and the objects it defines are " -"bound to names in the package's namespace. The ``__init__.py`` file can " -"contain the same Python code that any other module can contain, and Python " -"will add some additional attributes to the module when it is imported." +"``__init__.py`` file. When a regular package is imported, this ``__init__." +"py`` file is implicitly executed, and the objects it defines are bound to " +"names in the package's namespace. The ``__init__.py`` file can contain the " +"same Python code that any other module can contain, and Python will add some " +"additional attributes to the module when it is imported." msgstr "" -#: ../../reference/import.rst:108 msgid "" "For example, the following file system layout defines a top level ``parent`` " "package with three subpackages::" msgstr "" -#: ../../reference/import.rst:111 msgid "" "parent/\n" " __init__.py\n" @@ -171,7 +152,6 @@ msgid "" " __init__.py" msgstr "" -#: ../../reference/import.rst:120 msgid "" "Importing ``parent.one`` will implicitly execute ``parent/__init__.py`` and " "``parent/one/__init__.py``. Subsequent imports of ``parent.two`` or " @@ -179,11 +159,9 @@ msgid "" "__init__.py`` respectively." msgstr "" -#: ../../reference/import.rst:129 msgid "Namespace packages" msgstr "" -#: ../../reference/import.rst:135 msgid "" "A namespace package is a composite of various :term:`portions `, " "where each portion contributes a subpackage to the parent package. Portions " @@ -194,7 +172,6 @@ msgid "" "concrete representation." msgstr "" -#: ../../reference/import.rst:143 msgid "" "Namespace packages do not use an ordinary list for their ``__path__`` " "attribute. They instead use a custom iterable type which will automatically " @@ -203,7 +180,6 @@ msgid "" "top level package) changes." msgstr "" -#: ../../reference/import.rst:149 msgid "" "With namespace packages, there is no ``parent/__init__.py`` file. In fact, " "there may be multiple ``parent`` directories found during import search, " @@ -213,15 +189,12 @@ msgid "" "or one of its subpackages is imported." msgstr "" -#: ../../reference/import.rst:156 msgid "See also :pep:`420` for the namespace package specification." msgstr "" -#: ../../reference/import.rst:160 msgid "Searching" msgstr "" -#: ../../reference/import.rst:162 msgid "" "To begin the search, Python needs the :term:`fully qualified ` name of the module (or package, but for the purposes of this " @@ -231,20 +204,17 @@ msgid "" "functions." msgstr "" -#: ../../reference/import.rst:168 msgid "" "This name will be used in various phases of the import search, and it may be " "the dotted path to a submodule, e.g. ``foo.bar.baz``. In this case, Python " -"first tries to import ``foo``, then ``foo.bar``, and finally " -"``foo.bar.baz``. If any of the intermediate imports fail, " -"a :exc:`ModuleNotFoundError` is raised." +"first tries to import ``foo``, then ``foo.bar``, and finally ``foo.bar." +"baz``. If any of the intermediate imports fail, a :exc:`ModuleNotFoundError` " +"is raised." msgstr "" -#: ../../reference/import.rst:175 msgid "The module cache" msgstr "" -#: ../../reference/import.rst:180 msgid "" "The first place checked during import search is :data:`sys.modules`. This " "mapping serves as a cache of all modules that have been previously imported, " @@ -254,51 +224,45 @@ msgid "" "module object." msgstr "" -#: ../../reference/import.rst:187 msgid "" "During import, the module name is looked up in :data:`sys.modules` and if " "present, the associated value is the module satisfying the import, and the " -"process completes. However, if the value is ``None``, then " -"a :exc:`ModuleNotFoundError` is raised. If the module name is missing, " -"Python will continue searching for the module." +"process completes. However, if the value is ``None``, then a :exc:" +"`ModuleNotFoundError` is raised. If the module name is missing, Python will " +"continue searching for the module." msgstr "" -#: ../../reference/import.rst:193 msgid "" ":data:`sys.modules` is writable. Deleting a key may not destroy the " "associated module (as other modules may hold references to it), but it will " "invalidate the cache entry for the named module, causing Python to search " "anew for the named module upon its next import. The key can also be assigned " -"to ``None``, forcing the next import of the module to result in " -"a :exc:`ModuleNotFoundError`." +"to ``None``, forcing the next import of the module to result in a :exc:" +"`ModuleNotFoundError`." msgstr "" -#: ../../reference/import.rst:200 msgid "" "Beware though, as if you keep a reference to the module object, invalidate " "its cache entry in :data:`sys.modules`, and then re-import the named module, " -"the two module objects will *not* be the same. By " -"contrast, :func:`importlib.reload` will reuse the *same* module object, and " -"simply reinitialise the module contents by rerunning the module's code." +"the two module objects will *not* be the same. By contrast, :func:`importlib." +"reload` will reuse the *same* module object, and simply reinitialise the " +"module contents by rerunning the module's code." msgstr "" -#: ../../reference/import.rst:210 msgid "Finders and loaders" msgstr "" -#: ../../reference/import.rst:217 msgid "" "If the named module is not found in :data:`sys.modules`, then Python's " "import protocol is invoked to find and load the module. This protocol " -"consists of two conceptual objects, :term:`finders ` " -"and :term:`loaders `. A finder's job is to determine whether it can " -"find the named module using whatever strategy it knows about. Objects that " -"implement both of these interfaces are referred to as :term:`importers " -"` - they return themselves when they find that they can load the " -"requested module." +"consists of two conceptual objects, :term:`finders ` and :term:" +"`loaders `. A finder's job is to determine whether it can find the " +"named module using whatever strategy it knows about. Objects that implement " +"both of these interfaces are referred to as :term:`importers ` - " +"they return themselves when they find that they can load the requested " +"module." msgstr "" -#: ../../reference/import.rst:225 msgid "" "Python includes a number of default finders and importers. The first one " "knows how to locate built-in modules, and the second knows how to locate " @@ -308,13 +272,11 @@ msgid "" "locatable resource, such as those identified by URLs." msgstr "" -#: ../../reference/import.rst:232 msgid "" "The import machinery is extensible, so new finders can be added to extend " "the range and scope of module searching." msgstr "" -#: ../../reference/import.rst:235 msgid "" "Finders do not actually load modules. If they can find the named module, " "they return a :dfn:`module spec`, an encapsulation of the module's import-" @@ -322,32 +284,27 @@ msgid "" "module." msgstr "" -#: ../../reference/import.rst:239 msgid "" "The following sections describe the protocol for finders and loaders in more " "detail, including how you can create and register new ones to extend the " "import machinery." msgstr "" -#: ../../reference/import.rst:243 msgid "" "In previous versions of Python, finders returned :term:`loaders ` " "directly, whereas now they return module specs which *contain* loaders. " "Loaders are still used during import but have fewer responsibilities." msgstr "" -#: ../../reference/import.rst:249 msgid "Import hooks" msgstr "" -#: ../../reference/import.rst:259 msgid "" "The import machinery is designed to be extensible; the primary mechanism for " "this are the *import hooks*. There are two types of import hooks: *meta " "hooks* and *import path hooks*." msgstr "" -#: ../../reference/import.rst:263 msgid "" "Meta hooks are called at the start of import processing, before any other " "import processing has occurred, other than :data:`sys.modules` cache look " @@ -356,31 +313,27 @@ msgid "" "finder objects to :data:`sys.meta_path`, as described below." msgstr "" -#: ../../reference/import.rst:269 msgid "" -"Import path hooks are called as part of :data:`sys.path` (or " -"``package.__path__``) processing, at the point where their associated path " -"item is encountered. Import path hooks are registered by adding new " -"callables to :data:`sys.path_hooks` as described below." +"Import path hooks are called as part of :data:`sys.path` (or ``package." +"__path__``) processing, at the point where their associated path item is " +"encountered. Import path hooks are registered by adding new callables to :" +"data:`sys.path_hooks` as described below." msgstr "" -#: ../../reference/import.rst:276 msgid "The meta path" msgstr "" -#: ../../reference/import.rst:282 msgid "" "When the named module is not found in :data:`sys.modules`, Python next " "searches :data:`sys.meta_path`, which contains a list of meta path finder " "objects. These finders are queried in order to see if they know how to " -"handle the named module. Meta path finders must implement a method " -"called :meth:`~importlib.abc.MetaPathFinder.find_spec` which takes three " -"arguments: a name, an import path, and (optionally) a target module. The " -"meta path finder can use any strategy it wants to determine whether it can " -"handle the named module or not." +"handle the named module. Meta path finders must implement a method called :" +"meth:`~importlib.abc.MetaPathFinder.find_spec` which takes three arguments: " +"a name, an import path, and (optionally) a target module. The meta path " +"finder can use any strategy it wants to determine whether it can handle the " +"named module or not." msgstr "" -#: ../../reference/import.rst:291 msgid "" "If the meta path finder knows how to handle the named module, it returns a " "spec object. If it cannot handle the named module, it returns ``None``. " @@ -389,7 +342,6 @@ msgid "" "exceptions raised are simply propagated up, aborting the import process." msgstr "" -#: ../../reference/import.rst:297 msgid "" "The :meth:`~importlib.abc.MetaPathFinder.find_spec` method of meta path " "finders is called with two or three arguments. The first is the fully " @@ -403,27 +355,23 @@ msgid "" "system passes in a target module only during reload." msgstr "" -#: ../../reference/import.rst:308 msgid "" "The meta path may be traversed multiple times for a single import request. " "For example, assuming none of the modules involved has already been cached, " "importing ``foo.bar.baz`` will first perform a top level import, calling " "``mpf.find_spec(\"foo\", None, None)`` on each meta path finder (``mpf``). " "After ``foo`` has been imported, ``foo.bar`` will be imported by traversing " -"the meta path a second time, calling ``mpf.find_spec(\"foo.bar\", " -"foo.__path__, None)``. Once ``foo.bar`` has been imported, the final " -"traversal will call ``mpf.find_spec(\"foo.bar.baz\", foo.bar.__path__, " -"None)``." +"the meta path a second time, calling ``mpf.find_spec(\"foo.bar\", foo." +"__path__, None)``. Once ``foo.bar`` has been imported, the final traversal " +"will call ``mpf.find_spec(\"foo.bar.baz\", foo.bar.__path__, None)``." msgstr "" -#: ../../reference/import.rst:318 msgid "" "Some meta path finders only support top level imports. These importers will " "always return ``None`` when anything other than ``None`` is passed as the " "second argument." msgstr "" -#: ../../reference/import.rst:322 msgid "" "Python's default :data:`sys.meta_path` has three meta path finders, one that " "knows how to import built-in modules, one that knows how to import frozen " @@ -431,39 +379,33 @@ msgid "" "path` (i.e. the :term:`path based finder`)." msgstr "" -#: ../../reference/import.rst:327 msgid "" "The :meth:`~importlib.abc.MetaPathFinder.find_spec` method of meta path " "finders replaced :meth:`!find_module`, which is now deprecated. While it " "will continue to work without change, the import machinery will try it only " -"if the finder does not " -"implement :meth:`~importlib.abc.MetaPathFinder.find_spec`." +"if the finder does not implement :meth:`~importlib.abc.MetaPathFinder." +"find_spec`." msgstr "" -#: ../../reference/import.rst:334 msgid "" -"Use of :meth:`!find_module` by the import system now " -"raises :exc:`ImportWarning`." +"Use of :meth:`!find_module` by the import system now raises :exc:" +"`ImportWarning`." msgstr "" -#: ../../reference/import.rst:338 msgid "" -":meth:`!find_module` has been removed. " -"Use :meth:`~importlib.abc.MetaPathFinder.find_spec` instead." +":meth:`!find_module` has been removed. Use :meth:`~importlib.abc." +"MetaPathFinder.find_spec` instead." msgstr "" -#: ../../reference/import.rst:344 msgid "Loading" msgstr "" -#: ../../reference/import.rst:346 msgid "" "If and when a module spec is found, the import machinery will use it (and " "the loader it contains) when loading the module. Here is an approximation " "of what happens during the loading portion of import::" msgstr "" -#: ../../reference/import.rst:350 msgid "" "module = None\n" "if spec.loader is not None and hasattr(spec.loader, 'create_module'):\n" @@ -495,17 +437,14 @@ msgid "" "return sys.modules[spec.name]" msgstr "" -#: ../../reference/import.rst:379 msgid "Note the following details:" msgstr "" -#: ../../reference/import.rst:381 msgid "" -"If there is an existing module object with the given name " -"in :data:`sys.modules`, import will have already returned it." +"If there is an existing module object with the given name in :data:`sys." +"modules`, import will have already returned it." msgstr "" -#: ../../reference/import.rst:384 msgid "" "The module will exist in :data:`sys.modules` before the loader executes the " "module code. This is crucial because the module code may (directly or " @@ -514,16 +453,14 @@ msgid "" "best." msgstr "" -#: ../../reference/import.rst:390 msgid "" "If loading fails, the failing module -- and only the failing module -- gets " -"removed from :data:`sys.modules`. Any module already in " -"the :data:`sys.modules` cache, and any module that was successfully loaded " -"as a side-effect, must remain in the cache. This contrasts with reloading " -"where even the failing module is left in :data:`sys.modules`." +"removed from :data:`sys.modules`. Any module already in the :data:`sys." +"modules` cache, and any module that was successfully loaded as a side-" +"effect, must remain in the cache. This contrasts with reloading where even " +"the failing module is left in :data:`sys.modules`." msgstr "" -#: ../../reference/import.rst:396 msgid "" "After the module is created but before execution, the import machinery sets " "the import-related module attributes (\"_init_module_attrs\" in the pseudo-" @@ -531,31 +468,26 @@ msgid "" "attrs>`." msgstr "" -#: ../../reference/import.rst:401 msgid "" "Module execution is the key moment of loading in which the module's " "namespace gets populated. Execution is entirely delegated to the loader, " "which gets to decide what gets populated and how." msgstr "" -#: ../../reference/import.rst:405 msgid "" "The module created during loading and passed to exec_module() may not be the " "one returned at the end of import [#fnlo]_." msgstr "" -#: ../../reference/import.rst:408 msgid "" "The import system has taken over the boilerplate responsibilities of " -"loaders. These were previously performed by " -"the :meth:`importlib.abc.Loader.load_module` method." +"loaders. These were previously performed by the :meth:`importlib.abc.Loader." +"load_module` method." msgstr "" -#: ../../reference/import.rst:414 msgid "Loaders" msgstr "" -#: ../../reference/import.rst:416 msgid "" "Module loaders provide the critical function of loading: module execution. " "The import machinery calls the :meth:`importlib.abc.Loader.exec_module` " @@ -563,32 +495,27 @@ msgid "" "returned from :meth:`~importlib.abc.Loader.exec_module` is ignored." msgstr "" -#: ../../reference/import.rst:421 msgid "Loaders must satisfy the following requirements:" msgstr "" -#: ../../reference/import.rst:423 msgid "" "If the module is a Python module (as opposed to a built-in module or a " "dynamically loaded extension), the loader should execute the module's code " "in the module's global name space (``module.__dict__``)." msgstr "" -#: ../../reference/import.rst:427 msgid "" -"If the loader cannot execute the module, it should raise " -"an :exc:`ImportError`, although any other exception raised " -"during :meth:`~importlib.abc.Loader.exec_module` will be propagated." +"If the loader cannot execute the module, it should raise an :exc:" +"`ImportError`, although any other exception raised during :meth:`~importlib." +"abc.Loader.exec_module` will be propagated." msgstr "" -#: ../../reference/import.rst:431 msgid "" "In many cases, the finder and loader can be the same object; in such cases " "the :meth:`~importlib.abc.MetaPathFinder.find_spec` method would just return " "a spec with the loader set to ``self``." msgstr "" -#: ../../reference/import.rst:435 msgid "" "Module loaders may opt in to creating the module object during loading by " "implementing a :meth:`~importlib.abc.Loader.create_module` method. It takes " @@ -598,18 +525,15 @@ msgid "" "will create the new module itself." msgstr "" -#: ../../reference/import.rst:442 msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders." msgstr "" -#: ../../reference/import.rst:445 msgid "" -"The :meth:`~importlib.abc.Loader.load_module` method was replaced " -"by :meth:`~importlib.abc.Loader.exec_module` and the import machinery " -"assumed all the boilerplate responsibilities of loading." +"The :meth:`~importlib.abc.Loader.load_module` method was replaced by :meth:" +"`~importlib.abc.Loader.exec_module` and the import machinery assumed all the " +"boilerplate responsibilities of loading." msgstr "" -#: ../../reference/import.rst:450 msgid "" "For compatibility with existing loaders, the import machinery will use the " "``load_module()`` method of loaders if it exists and the loader does not " @@ -617,56 +541,47 @@ msgid "" "deprecated and loaders should implement ``exec_module()`` instead." msgstr "" -#: ../../reference/import.rst:455 msgid "" "The ``load_module()`` method must implement all the boilerplate loading " "functionality described above in addition to executing the module. All the " "same constraints apply, with some additional clarification:" msgstr "" -#: ../../reference/import.rst:459 msgid "" -"If there is an existing module object with the given name " -"in :data:`sys.modules`, the loader must use that existing module. " -"(Otherwise, :func:`importlib.reload` will not work correctly.) If the named " -"module does not exist in :data:`sys.modules`, the loader must create a new " -"module object and add it to :data:`sys.modules`." +"If there is an existing module object with the given name in :data:`sys." +"modules`, the loader must use that existing module. (Otherwise, :func:" +"`importlib.reload` will not work correctly.) If the named module does not " +"exist in :data:`sys.modules`, the loader must create a new module object and " +"add it to :data:`sys.modules`." msgstr "" -#: ../../reference/import.rst:465 msgid "" "The module *must* exist in :data:`sys.modules` before the loader executes " "the module code, to prevent unbounded recursion or multiple loading." msgstr "" -#: ../../reference/import.rst:469 msgid "" -"If loading fails, the loader must remove any modules it has inserted " -"into :data:`sys.modules`, but it must remove **only** the failing module(s), " -"and only if the loader itself has loaded the module(s) explicitly." +"If loading fails, the loader must remove any modules it has inserted into :" +"data:`sys.modules`, but it must remove **only** the failing module(s), and " +"only if the loader itself has loaded the module(s) explicitly." msgstr "" -#: ../../reference/import.rst:474 msgid "" "A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." msgstr "" -#: ../../reference/import.rst:478 msgid "" "An :exc:`ImportError` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." msgstr "" -#: ../../reference/import.rst:482 msgid "Use of ``load_module()`` will raise :exc:`ImportWarning`." msgstr "" -#: ../../reference/import.rst:486 msgid "Submodules" msgstr "" -#: ../../reference/import.rst:488 msgid "" "When a submodule is loaded using any mechanism (e.g. ``importlib`` APIs, the " "``import`` or ``import-from`` statements, or built-in ``__import__()``) a " @@ -676,28 +591,23 @@ msgid "" "submodule. Let's say you have the following directory structure::" msgstr "" -#: ../../reference/import.rst:495 msgid "" "spam/\n" " __init__.py\n" " foo.py" msgstr "" -#: ../../reference/import.rst:499 msgid "and ``spam/__init__.py`` has the following line in it::" msgstr "" -#: ../../reference/import.rst:501 msgid "from .foo import Foo" msgstr "" -#: ../../reference/import.rst:503 msgid "" "then executing the following puts name bindings for ``foo`` and ``Foo`` in " "the ``spam`` module::" msgstr "" -#: ../../reference/import.rst:506 msgid "" ">>> import spam\n" ">>> spam.foo\n" @@ -706,20 +616,17 @@ msgid "" "" msgstr "" -#: ../../reference/import.rst:512 msgid "" "Given Python's familiar name binding rules this might seem surprising, but " "it's actually a fundamental feature of the import system. The invariant " -"holding is that if you have ``sys.modules['spam']`` and " -"``sys.modules['spam.foo']`` (as you would after the above import), the " -"latter must appear as the ``foo`` attribute of the former." +"holding is that if you have ``sys.modules['spam']`` and ``sys.modules['spam." +"foo']`` (as you would after the above import), the latter must appear as the " +"``foo`` attribute of the former." msgstr "" -#: ../../reference/import.rst:521 msgid "Module specs" msgstr "" -#: ../../reference/import.rst:523 msgid "" "The import machinery uses a variety of information about each module during " "import, especially before loading. Most of the information is common to all " @@ -727,7 +634,6 @@ msgid "" "related information on a per-module basis." msgstr "" -#: ../../reference/import.rst:528 msgid "" "Using a spec during import allows state to be transferred between import " "system components, e.g. between the finder that creates the module spec and " @@ -736,119 +642,100 @@ msgid "" "a module spec the loader had that responsibility." msgstr "" -#: ../../reference/import.rst:534 msgid "" "The module's spec is exposed as :attr:`module.__spec__`. Setting :attr:`!" "__spec__` appropriately applies equally to :ref:`modules initialized during " -"interpreter startup `. The one exception is ``__main__``, " -"where :attr:`!__spec__` is :ref:`set to None in some cases `." +"interpreter startup `. The one exception is ``__main__``, where :" +"attr:`!__spec__` is :ref:`set to None in some cases `." msgstr "" -#: ../../reference/import.rst:540 msgid "" "See :class:`~importlib.machinery.ModuleSpec` for details on the contents of " "the module spec." msgstr "" -#: ../../reference/import.rst:548 msgid "__path__ attributes on modules" msgstr "" -#: ../../reference/import.rst:550 msgid "" -"The :attr:`~module.__path__` attribute should be a (possibly " -"empty) :term:`sequence` of strings enumerating the locations where the " -"package's submodules will be found. By definition, if a module has a :attr:`!" -"__path__` attribute, it is a :term:`package`." +"The :attr:`~module.__path__` attribute should be a (possibly empty) :term:" +"`sequence` of strings enumerating the locations where the package's " +"submodules will be found. By definition, if a module has a :attr:`!__path__` " +"attribute, it is a :term:`package`." msgstr "" -#: ../../reference/import.rst:555 msgid "" "A package's :attr:`~module.__path__` attribute is used during imports of its " -"subpackages. Within the import machinery, it functions much the same " -"as :data:`sys.path`, i.e. providing a list of locations to search for " -"modules during import. However, :attr:`!__path__` is typically much more " -"constrained than :data:`!sys.path`." +"subpackages. Within the import machinery, it functions much the same as :" +"data:`sys.path`, i.e. providing a list of locations to search for modules " +"during import. However, :attr:`!__path__` is typically much more constrained " +"than :data:`!sys.path`." msgstr "" -#: ../../reference/import.rst:562 msgid "" "The same rules used for :data:`sys.path` also apply to a package's :attr:`!" "__path__`. :data:`sys.path_hooks` (described below) are consulted when " "traversing a package's :attr:`!__path__`." msgstr "" -#: ../../reference/import.rst:566 msgid "" -"A package's ``__init__.py`` file may set or alter the " -"package's :attr:`~module.__path__` attribute, and this was typically the way " -"namespace packages were implemented prior to :pep:`420`. With the adoption " -"of :pep:`420`, namespace packages no longer need to supply ``__init__.py`` " -"files containing only :attr:`!__path__` manipulation code; the import " -"machinery automatically sets :attr:`!__path__` correctly for the namespace " -"package." +"A package's ``__init__.py`` file may set or alter the package's :attr:" +"`~module.__path__` attribute, and this was typically the way namespace " +"packages were implemented prior to :pep:`420`. With the adoption of :pep:" +"`420`, namespace packages no longer need to supply ``__init__.py`` files " +"containing only :attr:`!__path__` manipulation code; the import machinery " +"automatically sets :attr:`!__path__` correctly for the namespace package." msgstr "" -#: ../../reference/import.rst:575 msgid "Module reprs" msgstr "" -#: ../../reference/import.rst:577 msgid "" "By default, all modules have a usable repr, however depending on the " "attributes set above, and in the module's spec, you can more explicitly " "control the repr of module objects." msgstr "" -#: ../../reference/import.rst:581 msgid "" "If the module has a spec (``__spec__``), the import machinery will try to " "generate a repr from it. If that fails or there is no spec, the import " "system will craft a default repr using whatever information is available on " -"the module. It will try to use the ``module.__name__``, " -"``module.__file__``, and ``module.__loader__`` as input into the repr, with " -"defaults for whatever information is missing." +"the module. It will try to use the ``module.__name__``, ``module." +"__file__``, and ``module.__loader__`` as input into the repr, with defaults " +"for whatever information is missing." msgstr "" -#: ../../reference/import.rst:588 msgid "Here are the exact rules used:" msgstr "" -#: ../../reference/import.rst:590 msgid "" "If the module has a ``__spec__`` attribute, the information in the spec is " "used to generate the repr. The \"name\", \"loader\", \"origin\", and " "\"has_location\" attributes are consulted." msgstr "" -#: ../../reference/import.rst:594 msgid "" "If the module has a ``__file__`` attribute, this is used as part of the " "module's repr." msgstr "" -#: ../../reference/import.rst:597 msgid "" "If the module has no ``__file__`` but does have a ``__loader__`` that is not " "``None``, then the loader's repr is used as part of the module's repr." msgstr "" -#: ../../reference/import.rst:600 msgid "Otherwise, just use the module's ``__name__`` in the repr." msgstr "" -#: ../../reference/import.rst:602 msgid "" "Use of :meth:`!module_repr`, having been deprecated since Python 3.4, was " "removed in Python 3.12 and is no longer called during the resolution of a " "module's repr." msgstr "" -#: ../../reference/import.rst:610 msgid "Cached bytecode invalidation" msgstr "" -#: ../../reference/import.rst:612 msgid "" "Before Python loads cached bytecode from a ``.pyc`` file, it checks whether " "the cache is up-to-date with the source ``.py`` file. By default, Python " @@ -858,65 +745,57 @@ msgid "" "source's metadata." msgstr "" -#: ../../reference/import.rst:619 msgid "" "Python also supports \"hash-based\" cache files, which store a hash of the " "source file's contents rather than its metadata. There are two variants of " -"hash-based ``.pyc`` files: checked and unchecked. For checked hash-based " -"``.pyc`` files, Python validates the cache file by hashing the source file " -"and comparing the resulting hash with the hash in the cache file. If a " -"checked hash-based cache file is found to be invalid, Python regenerates it " -"and writes a new checked hash-based cache file. For unchecked hash-based " -"``.pyc`` files, Python simply assumes the cache file is valid if it exists. " -"Hash-based ``.pyc`` files validation behavior may be overridden with " -"the :option:`--check-hash-based-pycs` flag." +"hash-based ``.pyc`` files: checked and unchecked. For checked hash-based ``." +"pyc`` files, Python validates the cache file by hashing the source file and " +"comparing the resulting hash with the hash in the cache file. If a checked " +"hash-based cache file is found to be invalid, Python regenerates it and " +"writes a new checked hash-based cache file. For unchecked hash-based ``." +"pyc`` files, Python simply assumes the cache file is valid if it exists. " +"Hash-based ``.pyc`` files validation behavior may be overridden with the :" +"option:`--check-hash-based-pycs` flag." msgstr "" -#: ../../reference/import.rst:630 msgid "" "Added hash-based ``.pyc`` files. Previously, Python only supported timestamp-" "based invalidation of bytecode caches." msgstr "" -#: ../../reference/import.rst:636 msgid "The Path Based Finder" msgstr "" -#: ../../reference/import.rst:641 msgid "" "As mentioned previously, Python comes with several default meta path " -"finders. One of these, called the :term:`path based finder` " -"(:class:`~importlib.machinery.PathFinder`), searches an :term:`import path`, " -"which contains a list of :term:`path entries `. Each path entry " -"names a location to search for modules." +"finders. One of these, called the :term:`path based finder` (:class:" +"`~importlib.machinery.PathFinder`), searches an :term:`import path`, which " +"contains a list of :term:`path entries `. Each path entry names " +"a location to search for modules." msgstr "" -#: ../../reference/import.rst:647 msgid "" "The path based finder itself doesn't know how to import anything. Instead, " "it traverses the individual path entries, associating each of them with a " "path entry finder that knows how to handle that particular kind of path." msgstr "" -#: ../../reference/import.rst:651 msgid "" "The default set of path entry finders implement all the semantics for " "finding modules on the file system, handling special file types such as " "Python source code (``.py`` files), Python byte code (``.pyc`` files) and " -"shared libraries (e.g. ``.so`` files). When supported by " -"the :mod:`zipimport` module in the standard library, the default path entry " -"finders also handle loading all of these file types (other than shared " -"libraries) from zipfiles." +"shared libraries (e.g. ``.so`` files). When supported by the :mod:" +"`zipimport` module in the standard library, the default path entry finders " +"also handle loading all of these file types (other than shared libraries) " +"from zipfiles." msgstr "" -#: ../../reference/import.rst:658 msgid "" "Path entries need not be limited to file system locations. They can refer " "to URLs, database queries, or any other location that can be specified as a " "string." msgstr "" -#: ../../reference/import.rst:662 msgid "" "The path based finder provides additional hooks and protocols so that you " "can extend and customize the types of searchable path entries. For example, " @@ -927,18 +806,16 @@ msgid "" "from the web." msgstr "" -#: ../../reference/import.rst:670 msgid "" "A word of warning: this section and the previous both use the term *finder*, " -"distinguishing between them by using the terms :term:`meta path finder` " -"and :term:`path entry finder`. These two types of finders are very similar, " +"distinguishing between them by using the terms :term:`meta path finder` and :" +"term:`path entry finder`. These two types of finders are very similar, " "support similar protocols, and function in similar ways during the import " "process, but it's important to keep in mind that they are subtly different. " "In particular, meta path finders operate at the beginning of the import " "process, as keyed off the :data:`sys.meta_path` traversal." msgstr "" -#: ../../reference/import.rst:678 msgid "" "By contrast, path entry finders are in a sense an implementation detail of " "the path based finder, and in fact, if the path based finder were to be " @@ -946,11 +823,9 @@ msgid "" "would be invoked." msgstr "" -#: ../../reference/import.rst:685 msgid "Path entry finders" msgstr "" -#: ../../reference/import.rst:693 msgid "" "The :term:`path based finder` is responsible for finding and loading Python " "modules and packages whose location is specified with a string :term:`path " @@ -958,90 +833,81 @@ msgid "" "not be limited to this." msgstr "" -#: ../../reference/import.rst:698 msgid "" -"As a meta path finder, the :term:`path based finder` implements " -"the :meth:`~importlib.abc.MetaPathFinder.find_spec` protocol previously " -"described, however it exposes additional hooks that can be used to customize " -"how modules are found and loaded from the :term:`import path`." +"As a meta path finder, the :term:`path based finder` implements the :meth:" +"`~importlib.abc.MetaPathFinder.find_spec` protocol previously described, " +"however it exposes additional hooks that can be used to customize how " +"modules are found and loaded from the :term:`import path`." msgstr "" -#: ../../reference/import.rst:703 msgid "" -"Three variables are used by the :term:`path based " -"finder`, :data:`sys.path`, :data:`sys.path_hooks` " -"and :data:`sys.path_importer_cache`. The ``__path__`` attributes on package " -"objects are also used. These provide additional ways that the import " -"machinery can be customized." +"Three variables are used by the :term:`path based finder`, :data:`sys." +"path`, :data:`sys.path_hooks` and :data:`sys.path_importer_cache`. The " +"``__path__`` attributes on package objects are also used. These provide " +"additional ways that the import machinery can be customized." msgstr "" -#: ../../reference/import.rst:708 msgid "" ":data:`sys.path` contains a list of strings providing search locations for " "modules and packages. It is initialized from the :envvar:`PYTHONPATH` " "environment variable and various other installation- and implementation-" "specific defaults. Entries in :data:`sys.path` can name directories on the " -"file system, zip files, and potentially other \"locations\" (see " -"the :mod:`site` module) that should be searched for modules, such as URLs, " -"or database queries. Only strings should be present on :data:`sys.path`; " -"all other data types are ignored." +"file system, zip files, and potentially other \"locations\" (see the :mod:" +"`site` module) that should be searched for modules, such as URLs, or " +"database queries. Only strings should be present on :data:`sys.path`; all " +"other data types are ignored." msgstr "" -#: ../../reference/import.rst:717 msgid "" "The :term:`path based finder` is a :term:`meta path finder`, so the import " "machinery begins the :term:`import path` search by calling the path based " "finder's :meth:`~importlib.machinery.PathFinder.find_spec` method as " -"described previously. When the ``path`` argument " -"to :meth:`~importlib.machinery.PathFinder.find_spec` is given, it will be a " -"list of string paths to traverse - typically a package's ``__path__`` " -"attribute for an import within that package. If the ``path`` argument is " -"``None``, this indicates a top level import and :data:`sys.path` is used." +"described previously. When the ``path`` argument to :meth:`~importlib." +"machinery.PathFinder.find_spec` is given, it will be a list of string paths " +"to traverse - typically a package's ``__path__`` attribute for an import " +"within that package. If the ``path`` argument is ``None``, this indicates a " +"top level import and :data:`sys.path` is used." msgstr "" -#: ../../reference/import.rst:726 msgid "" "The path based finder iterates over every entry in the search path, and for " -"each of these, looks for an appropriate :term:`path entry finder` " -"(:class:`~importlib.abc.PathEntryFinder`) for the path entry. Because this " -"can be an expensive operation (e.g. there may be ``stat()`` call overheads " -"for this search), the path based finder maintains a cache mapping path " -"entries to path entry finders. This cache is maintained " -"in :data:`sys.path_importer_cache` (despite the name, this cache actually " -"stores finder objects rather than being limited to :term:`importer` " -"objects). In this way, the expensive search for a particular :term:`path " -"entry` location's :term:`path entry finder` need only be done once. User " -"code is free to remove cache entries from :data:`sys.path_importer_cache` " -"forcing the path based finder to perform the path entry search again." +"each of these, looks for an appropriate :term:`path entry finder` (:class:" +"`~importlib.abc.PathEntryFinder`) for the path entry. Because this can be " +"an expensive operation (e.g. there may be ``stat()`` call overheads for this " +"search), the path based finder maintains a cache mapping path entries to " +"path entry finders. This cache is maintained in :data:`sys." +"path_importer_cache` (despite the name, this cache actually stores finder " +"objects rather than being limited to :term:`importer` objects). In this way, " +"the expensive search for a particular :term:`path entry` location's :term:" +"`path entry finder` need only be done once. User code is free to remove " +"cache entries from :data:`sys.path_importer_cache` forcing the path based " +"finder to perform the path entry search again." msgstr "" -#: ../../reference/import.rst:739 msgid "" "If the path entry is not present in the cache, the path based finder " -"iterates over every callable in :data:`sys.path_hooks`. Each of " -"the :term:`path entry hooks ` in this list is called with a " -"single argument, the path entry to be searched. This callable may either " -"return a :term:`path entry finder` that can handle the path entry, or it may " -"raise :exc:`ImportError`. An :exc:`ImportError` is used by the path based " -"finder to signal that the hook cannot find a :term:`path entry finder` for " -"that :term:`path entry`. The exception is ignored and :term:`import path` " +"iterates over every callable in :data:`sys.path_hooks`. Each of the :term:" +"`path entry hooks ` in this list is called with a single " +"argument, the path entry to be searched. This callable may either return a :" +"term:`path entry finder` that can handle the path entry, or it may raise :" +"exc:`ImportError`. An :exc:`ImportError` is used by the path based finder " +"to signal that the hook cannot find a :term:`path entry finder` for that :" +"term:`path entry`. The exception is ignored and :term:`import path` " "iteration continues. The hook should expect either a string or bytes " "object; the encoding of bytes objects is up to the hook (e.g. it may be a " "file system encoding, UTF-8, or something else), and if the hook cannot " "decode the argument, it should raise :exc:`ImportError`." msgstr "" -#: ../../reference/import.rst:753 msgid "" "If :data:`sys.path_hooks` iteration ends with no :term:`path entry finder` " -"being returned, then the path based " -"finder's :meth:`~importlib.machinery.PathFinder.find_spec` method will store " -"``None`` in :data:`sys.path_importer_cache` (to indicate that there is no " -"finder for this path entry) and return ``None``, indicating that " -"this :term:`meta path finder` could not find the module." +"being returned, then the path based finder's :meth:`~importlib.machinery." +"PathFinder.find_spec` method will store ``None`` in :data:`sys." +"path_importer_cache` (to indicate that there is no finder for this path " +"entry) and return ``None``, indicating that this :term:`meta path finder` " +"could not find the module." msgstr "" -#: ../../reference/import.rst:760 msgid "" "If a :term:`path entry finder` *is* returned by one of the :term:`path entry " "hook` callables on :data:`sys.path_hooks`, then the following protocol is " @@ -1049,30 +915,26 @@ msgid "" "the module." msgstr "" -#: ../../reference/import.rst:765 msgid "" "The current working directory -- denoted by an empty string -- is handled " "slightly differently from other entries on :data:`sys.path`. First, if the " "current working directory cannot be determined or is found not to exist, no " "value is stored in :data:`sys.path_importer_cache`. Second, the value for " "the current working directory is looked up fresh for each module lookup. " -"Third, the path used for :data:`sys.path_importer_cache` and returned " -"by :meth:`importlib.machinery.PathFinder.find_spec` will be the actual " -"current working directory and not the empty string." +"Third, the path used for :data:`sys.path_importer_cache` and returned by :" +"meth:`importlib.machinery.PathFinder.find_spec` will be the actual current " +"working directory and not the empty string." msgstr "" -#: ../../reference/import.rst:775 msgid "Path entry finder protocol" msgstr "" -#: ../../reference/import.rst:777 msgid "" "In order to support imports of modules and initialized packages and also to " "contribute portions to namespace packages, path entry finders must implement " "the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." msgstr "" -#: ../../reference/import.rst:781 msgid "" ":meth:`~importlib.abc.PathEntryFinder.find_spec` takes two arguments: the " "fully qualified name of the module being imported, and the (optional) target " @@ -1080,21 +942,18 @@ msgid "" "spec will always have \"loader\" set (with one exception)." msgstr "" -#: ../../reference/import.rst:786 msgid "" -"To indicate to the import machinery that the spec represents a " -"namespace :term:`portion`, the path entry finder sets " -"``submodule_search_locations`` to a list containing the portion." +"To indicate to the import machinery that the spec represents a namespace :" +"term:`portion`, the path entry finder sets ``submodule_search_locations`` to " +"a list containing the portion." msgstr "" -#: ../../reference/import.rst:790 msgid "" ":meth:`~importlib.abc.PathEntryFinder.find_spec` replaced :meth:`!" "find_loader` and :meth:`!find_module`, both of which are now deprecated, but " "will be used if ``find_spec()`` is not defined." msgstr "" -#: ../../reference/import.rst:796 msgid "" "Older path entry finders may implement one of these two deprecated methods " "instead of ``find_spec()``. The methods are still respected for the sake of " @@ -1102,14 +961,12 @@ msgid "" "path entry finder, the legacy methods are ignored." msgstr "" -#: ../../reference/import.rst:801 msgid "" ":meth:`!find_loader` takes one argument, the fully qualified name of the " "module being imported. ``find_loader()`` returns a 2-tuple where the first " "item is the loader and the second item is a namespace :term:`portion`." msgstr "" -#: ../../reference/import.rst:806 msgid "" "For backwards compatibility with other implementations of the import " "protocol, many path entry finders also support the same, traditional " @@ -1119,7 +976,6 @@ msgid "" "initial call to the path hook)." msgstr "" -#: ../../reference/import.rst:813 msgid "" "The ``find_module()`` method on path entry finders is deprecated, as it does " "not allow the path entry finder to contribute portions to namespace " @@ -1128,28 +984,23 @@ msgid "" "preference to ``find_module()``." msgstr "" -#: ../../reference/import.rst:819 msgid "" "Calls to :meth:`!find_module` and :meth:`!find_loader` by the import system " "will raise :exc:`ImportWarning`." msgstr "" -#: ../../reference/import.rst:824 msgid "``find_module()`` and ``find_loader()`` have been removed." msgstr "" -#: ../../reference/import.rst:829 msgid "Replacing the standard import system" msgstr "" -#: ../../reference/import.rst:831 msgid "" "The most reliable mechanism for replacing the entire import system is to " "delete the default contents of :data:`sys.meta_path`, replacing them " "entirely with a custom meta path hook." msgstr "" -#: ../../reference/import.rst:835 msgid "" "If it is acceptable to only alter the behaviour of import statements without " "affecting other APIs that access the import system, then replacing the " @@ -1158,21 +1009,18 @@ msgid "" "statements within that module." msgstr "" -#: ../../reference/import.rst:841 msgid "" "To selectively prevent the import of some modules from a hook early on the " "meta path (rather than disabling the standard import system entirely), it is " -"sufficient to raise :exc:`ModuleNotFoundError` directly " -"from :meth:`~importlib.abc.MetaPathFinder.find_spec` instead of returning " -"``None``. The latter indicates that the meta path search should continue, " -"while raising an exception terminates it immediately." +"sufficient to raise :exc:`ModuleNotFoundError` directly from :meth:" +"`~importlib.abc.MetaPathFinder.find_spec` instead of returning ``None``. The " +"latter indicates that the meta path search should continue, while raising an " +"exception terminates it immediately." msgstr "" -#: ../../reference/import.rst:851 msgid "Package Relative Imports" msgstr "" -#: ../../reference/import.rst:853 msgid "" "Relative imports use leading dots. A single leading dot indicates a relative " "import, starting with the current package. Two or more leading dots indicate " @@ -1180,7 +1028,6 @@ msgid "" "after the first. For example, given the following package layout::" msgstr "" -#: ../../reference/import.rst:858 msgid "" "package/\n" " __init__.py\n" @@ -1194,13 +1041,11 @@ msgid "" " moduleA.py" msgstr "" -#: ../../reference/import.rst:869 msgid "" "In either ``subpackage1/moduleX.py`` or ``subpackage1/__init__.py``, the " "following are valid relative imports::" msgstr "" -#: ../../reference/import.rst:872 msgid "" "from .moduleY import spam\n" "from .moduleY import spam as ham\n" @@ -1210,49 +1055,41 @@ msgid "" "from ..moduleA import foo" msgstr "" -#: ../../reference/import.rst:879 msgid "" "Absolute imports may use either the ``import <>`` or ``from <> import <>`` " "syntax, but relative imports may only use the second form; the reason for " "this is that::" msgstr "" -#: ../../reference/import.rst:883 msgid "import XXX.YYY.ZZZ" msgstr "" -#: ../../reference/import.rst:885 msgid "" "should expose ``XXX.YYY.ZZZ`` as a usable expression, but .moduleY is not a " "valid expression." msgstr "" -#: ../../reference/import.rst:892 msgid "Special considerations for __main__" msgstr "" -#: ../../reference/import.rst:894 msgid "" "The :mod:`__main__` module is a special case relative to Python's import " "system. As noted :ref:`elsewhere `, the ``__main__`` module is " -"directly initialized at interpreter startup, much like :mod:`sys` " -"and :mod:`builtins`. However, unlike those two, it doesn't strictly qualify " -"as a built-in module. This is because the manner in which ``__main__`` is " +"directly initialized at interpreter startup, much like :mod:`sys` and :mod:" +"`builtins`. However, unlike those two, it doesn't strictly qualify as a " +"built-in module. This is because the manner in which ``__main__`` is " "initialized depends on the flags and other options with which the " "interpreter is invoked." msgstr "" -#: ../../reference/import.rst:905 msgid "__main__.__spec__" msgstr "" -#: ../../reference/import.rst:907 msgid "" "Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " "set appropriately or to ``None``." msgstr "" -#: ../../reference/import.rst:910 msgid "" "When Python is started with the :option:`-m` option, ``__spec__`` is set to " "the module spec of the corresponding module or package. ``__spec__`` is also " @@ -1260,38 +1097,31 @@ msgid "" "directory, zipfile or other :data:`sys.path` entry." msgstr "" -#: ../../reference/import.rst:915 msgid "" -"In :ref:`the remaining cases ` " -"``__main__.__spec__`` is set to ``None``, as the code used to populate " -"the :mod:`__main__` does not correspond directly with an importable module:" +"In :ref:`the remaining cases ` ``__main__." +"__spec__`` is set to ``None``, as the code used to populate the :mod:" +"`__main__` does not correspond directly with an importable module:" msgstr "" -#: ../../reference/import.rst:919 msgid "interactive prompt" msgstr "" -#: ../../reference/import.rst:920 msgid ":option:`-c` option" msgstr "" -#: ../../reference/import.rst:921 msgid "running from stdin" msgstr "" -#: ../../reference/import.rst:922 msgid "running directly from a source or bytecode file" msgstr "" -#: ../../reference/import.rst:924 msgid "" "Note that ``__main__.__spec__`` is always ``None`` in the last case, *even " "if* the file could technically be imported directly as a module instead. Use " -"the :option:`-m` switch if valid module metadata is desired " -"in :mod:`__main__`." +"the :option:`-m` switch if valid module metadata is desired in :mod:" +"`__main__`." msgstr "" -#: ../../reference/import.rst:929 msgid "" "Note also that even when ``__main__`` corresponds with an importable module " "and ``__main__.__spec__`` is set accordingly, they're still considered " @@ -1300,11 +1130,9 @@ msgid "" "populate the ``__main__`` namespace, and not during normal import." msgstr "" -#: ../../reference/import.rst:937 msgid "References" msgstr "" -#: ../../reference/import.rst:939 msgid "" "The import machinery has evolved considerably since Python's early days. " "The original `specification for packages ` for " "Python 3.3. :pep:`420` also introduced the :meth:`!find_loader` protocol as " "an alternative to :meth:`!find_module`." msgstr "" -#: ../../reference/import.rst:951 msgid "" ":pep:`366` describes the addition of the ``__package__`` attribute for " "explicit relative imports in main modules." msgstr "" -#: ../../reference/import.rst:954 msgid "" ":pep:`328` introduced absolute and explicit relative imports and initially " "proposed ``__name__`` for semantics :pep:`366` would eventually specify for " "``__package__``." msgstr "" -#: ../../reference/import.rst:958 msgid ":pep:`338` defines executing modules as scripts." msgstr "" -#: ../../reference/import.rst:960 msgid "" ":pep:`451` adds the encapsulation of per-module import state in spec " "objects. It also off-loads most of the boilerplate responsibilities of " @@ -1351,113 +1173,85 @@ msgid "" "finders and loaders." msgstr "" -#: ../../reference/import.rst:967 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../reference/import.rst:968 msgid "See :class:`types.ModuleType`." msgstr "" -#: ../../reference/import.rst:970 msgid "" "The importlib implementation avoids using the return value directly. " -"Instead, it gets the module object by looking the module name up " -"in :data:`sys.modules`. The indirect effect of this is that an imported " -"module may replace itself in :data:`sys.modules`. This is implementation-" -"specific behavior that is not guaranteed to work in other Python " -"implementations." +"Instead, it gets the module object by looking the module name up in :data:" +"`sys.modules`. The indirect effect of this is that an imported module may " +"replace itself in :data:`sys.modules`. This is implementation-specific " +"behavior that is not guaranteed to work in other Python implementations." msgstr "" -#: ../../reference/import.rst:8 msgid "import machinery" msgstr "" -#: ../../reference/import.rst:64 ../../reference/import.rst:95 -#: ../../reference/import.rst:131 msgid "package" msgstr "" -#: ../../reference/import.rst:95 msgid "regular" msgstr "" -#: ../../reference/import.rst:131 msgid "namespace" msgstr "" -#: ../../reference/import.rst:131 msgid "portion" msgstr "" -#: ../../reference/import.rst:177 msgid "sys.modules" msgstr "" -#: ../../reference/import.rst:212 ../../reference/import.rst:278 msgid "finder" msgstr "" -#: ../../reference/import.rst:212 msgid "loader" msgstr "" -#: ../../reference/import.rst:212 msgid "module spec" msgstr "" -#: ../../reference/import.rst:251 msgid "import hooks" msgstr "" -#: ../../reference/import.rst:251 msgid "meta hooks" msgstr "" -#: ../../reference/import.rst:251 msgid "path hooks" msgstr "" -#: ../../reference/import.rst:251 msgid "hooks" msgstr "" -#: ../../reference/import.rst:251 msgid "import" msgstr "" -#: ../../reference/import.rst:251 msgid "meta" msgstr "" -#: ../../reference/import.rst:251 msgid "path" msgstr "" -#: ../../reference/import.rst:278 msgid "sys.meta_path" msgstr "" -#: ../../reference/import.rst:278 msgid "find_spec" msgstr "" -#: ../../reference/import.rst:638 msgid "path based finder" msgstr "" -#: ../../reference/import.rst:687 msgid "sys.path" msgstr "" -#: ../../reference/import.rst:687 msgid "sys.path_hooks" msgstr "" -#: ../../reference/import.rst:687 msgid "sys.path_importer_cache" msgstr "" -#: ../../reference/import.rst:687 msgid "PYTHONPATH" msgstr "" diff --git a/reference/index.po b/reference/index.po index 57db2c0..488a3f9 100644 --- a/reference/index.po +++ b/reference/index.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/index.rst:5 msgid "The Python Language Reference" msgstr "" -#: ../../reference/index.rst:7 msgid "" "This reference manual describes the syntax and \"core semantics\" of the " "language. It is terse, but attempts to be exact and complete. The semantics " diff --git a/reference/introduction.po b/reference/introduction.po index ce03670..1b0767f 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,17 +22,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/introduction.rst:6 msgid "Introduction" msgstr "Bevezetés" -#: ../../reference/introduction.rst:8 msgid "" "This reference manual describes the Python programming language. It is not " "intended as a tutorial." msgstr "" -#: ../../reference/introduction.rst:11 msgid "" "While I am trying to be as precise as possible, I chose to use English " "rather than formal specifications for everything except syntax and lexical " @@ -47,7 +44,6 @@ msgid "" "volunteer your time --- or invent a cloning machine :-)." msgstr "" -#: ../../reference/introduction.rst:23 msgid "" "It is dangerous to add too many implementation details to a language " "reference document --- the implementation may change, and other " @@ -59,7 +55,6 @@ msgid "" "\"implementation notes\" sprinkled throughout the text." msgstr "" -#: ../../reference/introduction.rst:32 msgid "" "Every Python implementation comes with a number of built-in and standard " "modules. These are documented in :ref:`library-index`. A few built-in " @@ -67,49 +62,40 @@ msgid "" "language definition." msgstr "" -#: ../../reference/introduction.rst:41 msgid "Alternate Implementations" msgstr "" -#: ../../reference/introduction.rst:43 msgid "" "Though there is one Python implementation which is by far the most popular, " "there are some alternate implementations which are of particular interest to " "different audiences." msgstr "" -#: ../../reference/introduction.rst:47 msgid "Known implementations include:" msgstr "" -#: ../../reference/introduction.rst:49 msgid "CPython" msgstr "" -#: ../../reference/introduction.rst:50 msgid "" "This is the original and most-maintained implementation of Python, written " "in C. New language features generally appear here first." msgstr "" -#: ../../reference/introduction.rst:53 msgid "Jython" msgstr "" -#: ../../reference/introduction.rst:54 msgid "" "Python implemented in Java. This implementation can be used as a scripting " "language for Java applications, or can be used to create applications using " "the Java class libraries. It is also often used to create tests for Java " -"libraries. More information can be found at `the Jython website `_." +"libraries. More information can be found at `the Jython website `_." msgstr "" -#: ../../reference/introduction.rst:59 msgid "Python for .NET" msgstr "" -#: ../../reference/introduction.rst:60 msgid "" "This implementation actually uses the CPython implementation, but is a " "managed .NET application and makes .NET libraries available. It was created " @@ -117,11 +103,9 @@ msgid "" "`_." msgstr "" -#: ../../reference/introduction.rst:65 msgid "IronPython" msgstr "" -#: ../../reference/introduction.rst:66 msgid "" "An alternate Python for .NET. Unlike Python.NET, this is a complete Python " "implementation that generates IL, and compiles Python code directly to .NET " @@ -130,11 +114,9 @@ msgid "" ">`_." msgstr "" -#: ../../reference/introduction.rst:71 msgid "PyPy" msgstr "" -#: ../../reference/introduction.rst:72 msgid "" "An implementation of Python written completely in Python. It supports " "several advanced features not found in other implementations like stackless " @@ -145,7 +127,6 @@ msgid "" ">`_." msgstr "" -#: ../../reference/introduction.rst:79 msgid "" "Each of these implementations varies in some way from the language as " "documented in this manual, or introduces specific information beyond what's " @@ -154,11 +135,9 @@ msgid "" "know about the specific implementation you're using." msgstr "" -#: ../../reference/introduction.rst:89 msgid "Notation" msgstr "" -#: ../../reference/introduction.rst:93 msgid "" "The descriptions of lexical analysis and syntax use a grammar notation that " "is a mixture of `EBNF `_. For example:" msgstr "" -#: ../../reference/introduction.rst:106 msgid "" "In this example, the first line says that a ``name`` is a ``letter`` " "followed by a sequence of zero or more ``letter``\\ s, ``digit``\\ s, and " @@ -175,56 +153,47 @@ msgid "" "from ``0`` to ``9``." msgstr "" -#: ../../reference/introduction.rst:112 msgid "" "Each rule begins with a name (which identifies the rule that's being " "defined) followed by a colon, ``:``. The definition to the right of the " "colon uses the following syntax elements:" msgstr "" -#: ../../reference/introduction.rst:116 msgid "" "``name``: A name refers to another rule. Where possible, it is a link to the " "rule's definition." msgstr "" -#: ../../reference/introduction.rst:119 msgid "" "``TOKEN``: An uppercase name refers to a :term:`token`. For the purposes of " "grammar definitions, tokens are the same as rules." msgstr "" -#: ../../reference/introduction.rst:122 msgid "" "``\"text\"``, ``'text'``: Text in single or double quotes must match " "literally (without the quotes). The type of quote is chosen according to the " "meaning of ``text``:" msgstr "" -#: ../../reference/introduction.rst:126 msgid "``'if'``: A name in single quotes denotes a :ref:`keyword `." msgstr "" -#: ../../reference/introduction.rst:127 msgid "" "``\"case\"``: A name in double quotes denotes a :ref:`soft-keyword `." msgstr "" -#: ../../reference/introduction.rst:129 msgid "" -"``'@'``: A non-letter symbol in single quotes denotes " -"an :py:data:`~token.OP` token, that is, a :ref:`delimiter ` " -"or :ref:`operator `." +"``'@'``: A non-letter symbol in single quotes denotes an :py:data:`~token." +"OP` token, that is, a :ref:`delimiter ` or :ref:`operator " +"`." msgstr "" -#: ../../reference/introduction.rst:133 msgid "" "``e1 e2``: Items separated only by whitespace denote a sequence. Here, " "``e1`` must be followed by ``e2``." msgstr "" -#: ../../reference/introduction.rst:135 msgid "" "``e1 | e2``: A vertical bar is used to separate alternatives. It denotes " "PEG's \"ordered choice\": if ``e1`` matches, ``e2`` is not considered. In " @@ -232,44 +201,36 @@ msgid "" "vertical bar. See :pep:`617` for more background and details." msgstr "" -#: ../../reference/introduction.rst:141 msgid "``e*``: A star means zero or more repetitions of the preceding item." msgstr "" -#: ../../reference/introduction.rst:142 msgid "``e+``: Likewise, a plus means one or more repetitions." msgstr "" -#: ../../reference/introduction.rst:143 msgid "" "``[e]``: A phrase enclosed in square brackets means zero or one occurrences. " "In other words, the enclosed phrase is optional." msgstr "" -#: ../../reference/introduction.rst:145 msgid "" "``e?``: A question mark has exactly the same meaning as square brackets: the " "preceding item is optional." msgstr "" -#: ../../reference/introduction.rst:147 msgid "``(e)``: Parentheses are used for grouping." msgstr "" -#: ../../reference/introduction.rst:149 msgid "" "The following notation is only used in :ref:`lexical definitions `." msgstr "" -#: ../../reference/introduction.rst:152 msgid "" "``\"a\"...\"z\"``: Two literal characters separated by three dots mean a " "choice of any single character in the given (inclusive) range of ASCII " "characters." msgstr "" -#: ../../reference/introduction.rst:154 msgid "" "``<...>``: A phrase between angular brackets gives an informal description " "of the matched symbol (for example, ````)." msgstr "" -#: ../../reference/introduction.rst:160 msgid "" "Some definitions also use *lookaheads*, which indicate that an element must " "(or must not) match at a given position, but without consuming any input:" msgstr "" -#: ../../reference/introduction.rst:163 msgid "``&e``: a positive lookahead (that is, ``e`` is required to match)" msgstr "" -#: ../../reference/introduction.rst:164 msgid "" "``!e``: a negative lookahead (that is, ``e`` is required *not* to match)" msgstr "" -#: ../../reference/introduction.rst:166 msgid "" "The unary operators (``*``, ``+``, ``?``) bind as tightly as possible; the " "vertical bar (``|``) binds most loosely." msgstr "" -#: ../../reference/introduction.rst:169 msgid "White space is only meaningful to separate tokens." msgstr "" -#: ../../reference/introduction.rst:171 msgid "" "Rules are normally contained on a single line, but rules that are too long " "may be wrapped:" msgstr "" -#: ../../reference/introduction.rst:180 msgid "" "Alternatively, rules may be formatted with the first line ending at the " "colon, and each alternative beginning with a vertical bar on a new line. For " "example:" msgstr "" -#: ../../reference/introduction.rst:195 msgid "This does *not* mean that there is an empty first alternative." msgstr "" -#: ../../reference/introduction.rst:202 msgid "Lexical and Syntactic definitions" msgstr "" -#: ../../reference/introduction.rst:204 msgid "" -"There is some difference between *lexical* and *syntactic* analysis: " -"the :term:`lexical analyzer` operates on the individual characters of the " -"input source, while the *parser* (syntactic analyzer) operates on the stream " -"of :term:`tokens ` generated by the lexical analysis. However, in " -"some cases the exact boundary between the two phases is a CPython " -"implementation detail." +"There is some difference between *lexical* and *syntactic* analysis: the :" +"term:`lexical analyzer` operates on the individual characters of the input " +"source, while the *parser* (syntactic analyzer) operates on the stream of :" +"term:`tokens ` generated by the lexical analysis. However, in some " +"cases the exact boundary between the two phases is a CPython implementation " +"detail." msgstr "" -#: ../../reference/introduction.rst:211 msgid "" "The practical difference between the two is that in *lexical* definitions, " "all whitespace is significant. The lexical analyzer :ref:`discards " -"` all whitespace that is not converted to tokens " -"like :data:`token.INDENT` or :data:`~token.NEWLINE`. *Syntactic* definitions " -"then use these tokens, rather than source characters." +"` all whitespace that is not converted to tokens like :data:" +"`token.INDENT` or :data:`~token.NEWLINE`. *Syntactic* definitions then use " +"these tokens, rather than source characters." msgstr "" -#: ../../reference/introduction.rst:217 msgid "" "This documentation uses the same BNF grammar for both styles of definitions. " "All uses of BNF in the next chapter (:ref:`lexical`) are lexical " "definitions; uses in subsequent chapters are syntactic definitions." msgstr "" -#: ../../reference/introduction.rst:91 msgid "BNF" msgstr "" -#: ../../reference/introduction.rst:91 msgid "grammar" msgstr "" -#: ../../reference/introduction.rst:91 msgid "syntax" msgstr "" -#: ../../reference/introduction.rst:91 msgid "notation" msgstr "" -#: ../../reference/introduction.rst:197 msgid "lexical definitions" msgstr "" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 617f6ff..84fef94 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,73 +22,60 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/lexical_analysis.rst:6 msgid "Lexical analysis" msgstr "" -#: ../../reference/lexical_analysis.rst:10 msgid "" -"A Python program is read by a *parser*. Input to the parser is a stream " -"of :term:`tokens `, generated by the *lexical analyzer* (also known " -"as the *tokenizer*). This chapter describes how the lexical analyzer breaks " -"a file into tokens." +"A Python program is read by a *parser*. Input to the parser is a stream of :" +"term:`tokens `, generated by the *lexical analyzer* (also known as " +"the *tokenizer*). This chapter describes how the lexical analyzer breaks a " +"file into tokens." msgstr "" -#: ../../reference/lexical_analysis.rst:15 msgid "" "Python reads program text as Unicode code points; the encoding of a source " -"file can be given by an encoding declaration and defaults to UTF-8, " -"see :pep:`3120` for details. If the source file cannot be decoded, " -"a :exc:`SyntaxError` is raised." +"file can be given by an encoding declaration and defaults to UTF-8, see :pep:" +"`3120` for details. If the source file cannot be decoded, a :exc:" +"`SyntaxError` is raised." msgstr "" -#: ../../reference/lexical_analysis.rst:24 msgid "Line structure" msgstr "" -#: ../../reference/lexical_analysis.rst:28 msgid "A Python program is divided into a number of *logical lines*." msgstr "" -#: ../../reference/lexical_analysis.rst:34 msgid "Logical lines" msgstr "" -#: ../../reference/lexical_analysis.rst:38 msgid "" -"The end of a logical line is represented by the " -"token :data:`~token.NEWLINE`. Statements cannot cross logical line " -"boundaries except where :data:`!NEWLINE` is allowed by the syntax (e.g., " -"between statements in compound statements). A logical line is constructed " -"from one or more *physical lines* by following the :ref:`explicit ` or :ref:`implicit ` *line joining* rules." +"The end of a logical line is represented by the token :data:`~token." +"NEWLINE`. Statements cannot cross logical line boundaries except where :data:" +"`!NEWLINE` is allowed by the syntax (e.g., between statements in compound " +"statements). A logical line is constructed from one or more *physical lines* " +"by following the :ref:`explicit ` or :ref:`implicit " +"` *line joining* rules." msgstr "" -#: ../../reference/lexical_analysis.rst:49 msgid "Physical lines" msgstr "" -#: ../../reference/lexical_analysis.rst:51 msgid "" "A physical line is a sequence of characters terminated by one the following " "end-of-line sequences:" msgstr "" -#: ../../reference/lexical_analysis.rst:54 msgid "the Unix form using ASCII LF (linefeed)," msgstr "" -#: ../../reference/lexical_analysis.rst:55 msgid "" "the Windows form using the ASCII sequence CR LF (return followed by " "linefeed)," msgstr "" -#: ../../reference/lexical_analysis.rst:56 msgid "the '`Classic Mac OS`__' form using the ASCII CR (return) character." msgstr "" -#: ../../reference/lexical_analysis.rst:60 msgid "" "Regardless of platform, each of these sequences is replaced by a single " "ASCII LF (linefeed) character. (This is done even inside :ref:`string " @@ -97,21 +83,17 @@ msgid "" "need to be consistent within a file." msgstr "" -#: ../../reference/lexical_analysis.rst:66 msgid "" "The end of input also serves as an implicit terminator for the final " "physical line." msgstr "" -#: ../../reference/lexical_analysis.rst:69 msgid "Formally:" msgstr "" -#: ../../reference/lexical_analysis.rst:80 msgid "Comments" msgstr "" -#: ../../reference/lexical_analysis.rst:85 msgid "" "A comment starts with a hash character (``#``) that is not part of a string " "literal, and ends at the end of the physical line. A comment signifies the " @@ -119,11 +101,9 @@ msgid "" "Comments are ignored by the syntax." msgstr "" -#: ../../reference/lexical_analysis.rst:94 msgid "Encoding declarations" msgstr "" -#: ../../reference/lexical_analysis.rst:99 msgid "" "If a comment in the first or second line of the Python script matches the " "regular expression ``coding[=:]\\s*([-\\w.]+)``, this comment is processed " @@ -133,23 +113,18 @@ msgid "" "comment-only line. The recommended forms of an encoding expression are ::" msgstr "" -#: ../../reference/lexical_analysis.rst:106 msgid "# -*- coding: -*-" msgstr "" -#: ../../reference/lexical_analysis.rst:108 msgid "which is recognized also by GNU Emacs, and ::" msgstr "" -#: ../../reference/lexical_analysis.rst:110 msgid "# vim:fileencoding=" msgstr "" -#: ../../reference/lexical_analysis.rst:112 msgid "which is recognized by Bram Moolenaar's VIM." msgstr "" -#: ../../reference/lexical_analysis.rst:114 msgid "" "If no encoding declaration is found, the default encoding is UTF-8. If the " "implicit or explicit encoding of a file is UTF-8, an initial UTF-8 byte-" @@ -157,25 +132,21 @@ msgid "" "error." msgstr "" -#: ../../reference/lexical_analysis.rst:118 msgid "" "If an encoding is declared, the encoding name must be recognized by Python " "(see :ref:`standard-encodings`). The encoding is used for all lexical " "analysis, including string literals, comments and identifiers." msgstr "" -#: ../../reference/lexical_analysis.rst:123 msgid "" "All lexical analysis, including string literals, comments and identifiers, " "works on Unicode text decoded using the source encoding. Any Unicode code " "point, except the NUL control character, can appear in Python source." msgstr "" -#: ../../reference/lexical_analysis.rst:137 msgid "Explicit line joining" msgstr "" -#: ../../reference/lexical_analysis.rst:141 msgid "" "Two or more physical lines may be joined into logical lines using backslash " "characters (``\\``), as follows: when a physical line ends in a backslash " @@ -184,7 +155,6 @@ msgid "" "following end-of-line character. For example::" msgstr "" -#: ../../reference/lexical_analysis.rst:147 msgid "" "if 1900 < year < 2100 and 1 <= month <= 12 \\\n" " and 1 <= day <= 31 and 0 <= hour < 24 \\\n" @@ -192,7 +162,6 @@ msgid "" " return 1" msgstr "" -#: ../../reference/lexical_analysis.rst:152 msgid "" "A line ending in a backslash cannot carry a comment. A backslash does not " "continue a comment. A backslash does not continue a token except for string " @@ -201,17 +170,14 @@ msgid "" "line outside a string literal." msgstr "" -#: ../../reference/lexical_analysis.rst:162 msgid "Implicit line joining" msgstr "" -#: ../../reference/lexical_analysis.rst:164 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" msgstr "" -#: ../../reference/lexical_analysis.rst:167 msgid "" "month_names = ['Januari', 'Februari', 'Maart', # These are the\n" " 'April', 'Mei', 'Juni', # Dutch names\n" @@ -219,7 +185,6 @@ msgid "" " 'Oktober', 'November', 'December'] # of the year" msgstr "" -#: ../../reference/lexical_analysis.rst:172 msgid "" "Implicitly continued lines can carry comments. The indentation of the " "continuation lines is not important. Blank continuation lines are allowed. " @@ -228,11 +193,9 @@ msgid "" "that case they cannot carry comments." msgstr "" -#: ../../reference/lexical_analysis.rst:182 msgid "Blank lines" msgstr "" -#: ../../reference/lexical_analysis.rst:186 msgid "" "A logical line that contains only spaces, tabs, formfeeds and possibly a " "comment, is ignored (i.e., no :data:`~token.NEWLINE` token is generated). " @@ -243,18 +206,15 @@ msgid "" "statement." msgstr "" -#: ../../reference/lexical_analysis.rst:198 msgid "Indentation" msgstr "" -#: ../../reference/lexical_analysis.rst:202 msgid "" "Leading whitespace (spaces and tabs) at the beginning of a logical line is " "used to compute the indentation level of the line, which in turn is used to " "determine the grouping of statements." msgstr "" -#: ../../reference/lexical_analysis.rst:206 msgid "" "Tabs are replaced (from left to right) by one to eight spaces such that the " "total number of characters up to and including the replacement is a multiple " @@ -265,14 +225,12 @@ msgid "" "the indentation." msgstr "" -#: ../../reference/lexical_analysis.rst:214 msgid "" "Indentation is rejected as inconsistent if a source file mixes tabs and " "spaces in a way that makes the meaning dependent on the worth of a tab in " "spaces; a :exc:`TabError` is raised in that case." msgstr "" -#: ../../reference/lexical_analysis.rst:218 msgid "" "**Cross-platform compatibility note:** because of the nature of text editors " "on non-UNIX platforms, it is unwise to use a mixture of spaces and tabs for " @@ -280,7 +238,6 @@ msgid "" "different platforms may explicitly limit the maximum indentation level." msgstr "" -#: ../../reference/lexical_analysis.rst:223 msgid "" "A formfeed character may be present at the start of the line; it will be " "ignored for the indentation calculations above. Formfeed characters " @@ -288,14 +245,11 @@ msgid "" "instance, they may reset the space count to zero)." msgstr "" -#: ../../reference/lexical_analysis.rst:230 msgid "" -"The indentation levels of consecutive lines are used to " -"generate :data:`~token.INDENT` and :data:`~token.DEDENT` tokens, using a " -"stack, as follows." +"The indentation levels of consecutive lines are used to generate :data:" +"`~token.INDENT` and :data:`~token.DEDENT` tokens, using a stack, as follows." msgstr "" -#: ../../reference/lexical_analysis.rst:234 msgid "" "Before the first line of the file is read, a single zero is pushed on the " "stack; this will never be popped off again. The numbers pushed on the stack " @@ -304,19 +258,17 @@ msgid "" "the stack. If it is equal, nothing happens. If it is larger, it is pushed on " "the stack, and one :data:`!INDENT` token is generated. If it is smaller, it " "*must* be one of the numbers occurring on the stack; all numbers on the " -"stack that are larger are popped off, and for each number popped off " -"a :data:`!DEDENT` token is generated. At the end of the file, a :data:`!" -"DEDENT` token is generated for each number remaining on the stack that is " -"larger than zero." +"stack that are larger are popped off, and for each number popped off a :data:" +"`!DEDENT` token is generated. At the end of the file, a :data:`!DEDENT` " +"token is generated for each number remaining on the stack that is larger " +"than zero." msgstr "" -#: ../../reference/lexical_analysis.rst:245 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" msgstr "" -#: ../../reference/lexical_analysis.rst:248 msgid "" "def perm(l):\n" " # Compute the list of all permutations of l\n" @@ -331,11 +283,9 @@ msgid "" " return r" msgstr "" -#: ../../reference/lexical_analysis.rst:260 msgid "The following example shows various indentation errors::" msgstr "" -#: ../../reference/lexical_analysis.rst:262 msgid "" " def perm(l): # error: first line indented\n" "for i in range(len(l)): # error: not indented\n" @@ -346,18 +296,15 @@ msgid "" " return r # error: inconsistent dedent" msgstr "" -#: ../../reference/lexical_analysis.rst:270 msgid "" "(Actually, the first three errors are detected by the parser; only the last " "error is found by the lexical analyzer --- the indentation of ``return r`` " "does not match a level popped off the stack.)" msgstr "" -#: ../../reference/lexical_analysis.rst:278 msgid "Whitespace between tokens" msgstr "" -#: ../../reference/lexical_analysis.rst:280 msgid "" "Except at the beginning of a logical line or in string literals, the " "whitespace characters space, tab and formfeed can be used interchangeably to " @@ -368,44 +315,36 @@ msgid "" "token." msgstr "" -#: ../../reference/lexical_analysis.rst:291 msgid "End marker" msgstr "" -#: ../../reference/lexical_analysis.rst:293 msgid "" -"At the end of non-interactive input, the lexical analyzer generates " -"an :data:`~token.ENDMARKER` token." +"At the end of non-interactive input, the lexical analyzer generates an :data:" +"`~token.ENDMARKER` token." msgstr "" -#: ../../reference/lexical_analysis.rst:300 msgid "Other tokens" msgstr "" -#: ../../reference/lexical_analysis.rst:302 msgid "" -"Besides :data:`~token.NEWLINE`, :data:`~token.INDENT` " -"and :data:`~token.DEDENT`, the following categories of tokens exist: " -"*identifiers* and *keywords* (:data:`~token.NAME`), *literals* (such " -"as :data:`~token.NUMBER` and :data:`~token.STRING`), and other symbols " -"(*operators* and *delimiters*, :data:`~token.OP`). Whitespace characters " -"(other than logical line terminators, discussed earlier) are not tokens, but " -"serve to delimit tokens. Where ambiguity exists, a token comprises the " -"longest possible string that forms a legal token, when read from left to " -"right." +"Besides :data:`~token.NEWLINE`, :data:`~token.INDENT` and :data:`~token." +"DEDENT`, the following categories of tokens exist: *identifiers* and " +"*keywords* (:data:`~token.NAME`), *literals* (such as :data:`~token.NUMBER` " +"and :data:`~token.STRING`), and other symbols (*operators* and " +"*delimiters*, :data:`~token.OP`). Whitespace characters (other than logical " +"line terminators, discussed earlier) are not tokens, but serve to delimit " +"tokens. Where ambiguity exists, a token comprises the longest possible " +"string that forms a legal token, when read from left to right." msgstr "" -#: ../../reference/lexical_analysis.rst:316 msgid "Names (identifiers and keywords)" msgstr "" -#: ../../reference/lexical_analysis.rst:320 msgid "" ":data:`~token.NAME` tokens represent *identifiers*, *keywords*, and *soft " "keywords*." msgstr "" -#: ../../reference/lexical_analysis.rst:323 msgid "" "Within the ASCII range (U+0001..U+007F), the valid characters for names " "include the uppercase and lowercase letters (``A-Z`` and ``a-z``), the " @@ -413,133 +352,107 @@ msgid "" "through ``9``." msgstr "" -#: ../../reference/lexical_analysis.rst:328 msgid "" "Names must contain at least one character, but have no upper length limit. " "Case is significant." msgstr "" -#: ../../reference/lexical_analysis.rst:331 msgid "" "Besides ``A-Z``, ``a-z``, ``_`` and ``0-9``, names can also use \"letter-" "like\" and \"number-like\" characters from outside the ASCII range, as " "detailed below." msgstr "" -#: ../../reference/lexical_analysis.rst:334 msgid "" "All identifiers are converted into the `normalization form`_ NFKC while " "parsing; comparison of identifiers is based on NFKC." msgstr "" -#: ../../reference/lexical_analysis.rst:337 msgid "" "Formally, the first character of a normalized identifier must belong to the " "set ``id_start``, which is the union of:" msgstr "" -#: ../../reference/lexical_analysis.rst:340 msgid "Unicode category ```` - uppercase letters (includes ``A`` to ``Z``)" msgstr "" -#: ../../reference/lexical_analysis.rst:341 msgid "Unicode category ```` - lowercase letters (includes ``a`` to ``z``)" msgstr "" -#: ../../reference/lexical_analysis.rst:342 msgid "Unicode category ```` - titlecase letters" msgstr "" -#: ../../reference/lexical_analysis.rst:343 msgid "Unicode category ```` - modifier letters" msgstr "" -#: ../../reference/lexical_analysis.rst:344 msgid "Unicode category ```` - other letters" msgstr "" -#: ../../reference/lexical_analysis.rst:345 msgid "Unicode category ```` - letter numbers" msgstr "" -#: ../../reference/lexical_analysis.rst:346 msgid "{``\"_\"``} - the underscore" msgstr "" -#: ../../reference/lexical_analysis.rst:347 msgid "" "```` - an explicit set of characters in `PropList.txt`_ to " "support backwards compatibility" msgstr "" -#: ../../reference/lexical_analysis.rst:350 msgid "" "The remaining characters must belong to the set ``id_continue``, which is " "the union of:" msgstr "" -#: ../../reference/lexical_analysis.rst:353 msgid "all characters in ``id_start``" msgstr "" -#: ../../reference/lexical_analysis.rst:354 msgid "Unicode category ```` - decimal numbers (includes ``0`` to ``9``)" msgstr "" -#: ../../reference/lexical_analysis.rst:355 msgid "Unicode category ```` - connector punctuations" msgstr "" -#: ../../reference/lexical_analysis.rst:356 msgid "Unicode category ```` - nonspacing marks" msgstr "" -#: ../../reference/lexical_analysis.rst:357 msgid "Unicode category ```` - spacing combining marks" msgstr "" -#: ../../reference/lexical_analysis.rst:358 msgid "" -"```` - another explicit set of characters in " -"`PropList.txt`_ to support backwards compatibility" +"```` - another explicit set of characters in `PropList." +"txt`_ to support backwards compatibility" msgstr "" -#: ../../reference/lexical_analysis.rst:361 msgid "" "Unicode categories use the version of the Unicode Character Database as " "included in the :mod:`unicodedata` module." msgstr "" -#: ../../reference/lexical_analysis.rst:364 msgid "" -"These sets are based on the Unicode standard annex `UAX-31`_. See " -"also :pep:`3131` for further details." +"These sets are based on the Unicode standard annex `UAX-31`_. See also :pep:" +"`3131` for further details." msgstr "" -#: ../../reference/lexical_analysis.rst:367 msgid "" "Even more formally, names are described by the following lexical definitions:" msgstr "" -#: ../../reference/lexical_analysis.rst:381 msgid "" "A non-normative listing of all valid identifier characters as defined by " "Unicode is available in the `DerivedCoreProperties.txt`_ file in the Unicode " "Character Database." msgstr "" -#: ../../reference/lexical_analysis.rst:395 msgid "Keywords" msgstr "" -#: ../../reference/lexical_analysis.rst:401 msgid "" "The following names are used as reserved words, or *keywords* of the " "language, and cannot be used as ordinary identifiers. They must be spelled " "exactly as written here:" msgstr "" -#: ../../reference/lexical_analysis.rst:405 msgid "" "False await else import pass\n" "None break except in raise\n" @@ -550,101 +463,82 @@ msgid "" "async elif if or yield" msgstr "" -#: ../../reference/lexical_analysis.rst:419 msgid "Soft Keywords" msgstr "" -#: ../../reference/lexical_analysis.rst:425 msgid "" "Some names are only reserved under specific contexts. These are known as " "*soft keywords*:" msgstr "" -#: ../../reference/lexical_analysis.rst:428 msgid "" "``match``, ``case``, and ``_``, when used in the :keyword:`match` statement." msgstr "" -#: ../../reference/lexical_analysis.rst:429 msgid "``type``, when used in the :keyword:`type` statement." msgstr "" -#: ../../reference/lexical_analysis.rst:431 msgid "" "These syntactically act as keywords in their specific contexts, but this " "distinction is done at the parser level, not when tokenizing." msgstr "" -#: ../../reference/lexical_analysis.rst:434 msgid "" "As soft keywords, their use in the grammar is possible while still " "preserving compatibility with existing code that uses these names as " "identifier names." msgstr "" -#: ../../reference/lexical_analysis.rst:438 msgid "``type`` is now a soft keyword." msgstr "" -#: ../../reference/lexical_analysis.rst:447 msgid "Reserved classes of identifiers" msgstr "" -#: ../../reference/lexical_analysis.rst:449 msgid "" "Certain classes of identifiers (besides keywords) have special meanings. " "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" -#: ../../reference/lexical_analysis.rst:453 msgid "``_*``" msgstr "" -#: ../../reference/lexical_analysis.rst:454 msgid "Not imported by ``from module import *``." msgstr "" -#: ../../reference/lexical_analysis.rst:456 msgid "``_``" msgstr "" -#: ../../reference/lexical_analysis.rst:457 msgid "" -"In a ``case`` pattern within a :keyword:`match` statement, ``_`` is " -"a :ref:`soft keyword ` that denotes a :ref:`wildcard " -"`." +"In a ``case`` pattern within a :keyword:`match` statement, ``_`` is a :ref:" +"`soft keyword ` that denotes a :ref:`wildcard `." msgstr "" -#: ../../reference/lexical_analysis.rst:461 msgid "" "Separately, the interactive interpreter makes the result of the last " -"evaluation available in the variable ``_``. (It is stored in " -"the :mod:`builtins` module, alongside built-in functions like ``print``.)" +"evaluation available in the variable ``_``. (It is stored in the :mod:" +"`builtins` module, alongside built-in functions like ``print``.)" msgstr "" -#: ../../reference/lexical_analysis.rst:466 msgid "" "Elsewhere, ``_`` is a regular identifier. It is often used to name " "\"special\" items, but it is not special to Python itself." msgstr "" -#: ../../reference/lexical_analysis.rst:471 msgid "" "The name ``_`` is often used in conjunction with internationalization; refer " "to the documentation for the :mod:`gettext` module for more information on " "this convention." msgstr "" -#: ../../reference/lexical_analysis.rst:475 msgid "It is also commonly used for unused variables." msgstr "" -#: ../../reference/lexical_analysis.rst:477 msgid "``__*__``" msgstr "" -#: ../../reference/lexical_analysis.rst:478 msgid "" "System-defined names, informally known as \"dunder\" names. These names are " "defined by the interpreter and its implementation (including the standard " @@ -654,11 +548,9 @@ msgid "" "explicitly documented use, is subject to breakage without warning." msgstr "" -#: ../../reference/lexical_analysis.rst:485 msgid "``__*``" msgstr "" -#: ../../reference/lexical_analysis.rst:486 msgid "" "Class-private names. Names in this category, when used within the context " "of a class definition, are re-written to use a mangled form to help avoid " @@ -666,470 +558,374 @@ msgid "" "section :ref:`atom-identifiers`." msgstr "" -#: ../../reference/lexical_analysis.rst:495 msgid "Literals" msgstr "" -#: ../../reference/lexical_analysis.rst:499 msgid "Literals are notations for constant values of some built-in types." msgstr "" -#: ../../reference/lexical_analysis.rst:501 msgid "" -"In terms of lexical analysis, Python has :ref:`string, bytes ` " -"and :ref:`numeric ` literals." +"In terms of lexical analysis, Python has :ref:`string, bytes ` and :" +"ref:`numeric ` literals." msgstr "" -#: ../../reference/lexical_analysis.rst:504 msgid "" "Other \"literals\" are lexically denoted using :ref:`keywords ` " "(``None``, ``True``, ``False``) and the special :ref:`ellipsis token " "` (``...``)." msgstr "" -#: ../../reference/lexical_analysis.rst:515 msgid "String and Bytes literals" msgstr "" -#: ../../reference/lexical_analysis.rst:517 msgid "" "String literals are text enclosed in single quotes (``'``) or double quotes " "(``\"``). For example:" msgstr "" -#: ../../reference/lexical_analysis.rst:520 msgid "" "\"spam\"\n" "'eggs'" msgstr "" -#: ../../reference/lexical_analysis.rst:525 msgid "" "The quote used to start the literal also terminates it, so a string literal " "can only contain the other quote (except with escape sequences, see below). " "For example:" msgstr "" -#: ../../reference/lexical_analysis.rst:529 msgid "" "'Say \"Hello\", please.'\n" "\"Don't do that!\"" msgstr "" -#: ../../reference/lexical_analysis.rst:534 msgid "" "Except for this limitation, the choice of quote character (``'`` or ``\"``) " "does not affect how the literal is parsed." msgstr "" -#: ../../reference/lexical_analysis.rst:537 msgid "" -"Inside a string literal, the backslash (``\\``) character introduces " -"an :dfn:`escape sequence`, which has special meaning depending on the " -"character after the backslash. For example, ``\\\"`` denotes the double " -"quote character, and does *not* end the string:" +"Inside a string literal, the backslash (``\\``) character introduces an :dfn:" +"`escape sequence`, which has special meaning depending on the character " +"after the backslash. For example, ``\\\"`` denotes the double quote " +"character, and does *not* end the string:" msgstr "" -#: ../../reference/lexical_analysis.rst:543 msgid "" ">>> print(\"Say \\\"Hello\\\" to everyone!\")\n" "Say \"Hello\" to everyone!" msgstr "" -#: ../../reference/lexical_analysis.rst:548 msgid "" "See :ref:`escape sequences ` below for a full list of such " "sequences, and more details." msgstr "" -#: ../../reference/lexical_analysis.rst:557 msgid "Triple-quoted strings" msgstr "" -#: ../../reference/lexical_analysis.rst:559 msgid "" "Strings can also be enclosed in matching groups of three single or double " "quotes. These are generally referred to as :dfn:`triple-quoted strings`::" msgstr "" -#: ../../reference/lexical_analysis.rst:563 msgid "\"\"\"This is a triple-quoted string.\"\"\"" msgstr "" -#: ../../reference/lexical_analysis.rst:565 msgid "" "In triple-quoted literals, unescaped quotes are allowed (and are retained), " "except that three unescaped quotes in a row terminate the literal, if they " "are of the same kind (``'`` or ``\"``) used at the start::" msgstr "" -#: ../../reference/lexical_analysis.rst:569 msgid "\"\"\"This string has \"quotes\" inside.\"\"\"" msgstr "" -#: ../../reference/lexical_analysis.rst:571 msgid "Unescaped newlines are also allowed and retained::" msgstr "" -#: ../../reference/lexical_analysis.rst:573 msgid "" "'''This triple-quoted string\n" "continues on the next line.'''" msgstr "" -#: ../../reference/lexical_analysis.rst:582 msgid "String prefixes" msgstr "" -#: ../../reference/lexical_analysis.rst:584 msgid "" "String literals can have an optional :dfn:`prefix` that influences how the " "content of the literal is parsed, for example:" msgstr "" -#: ../../reference/lexical_analysis.rst:587 msgid "" "b\"data\"\n" "f'{result=}'" msgstr "" -#: ../../reference/lexical_analysis.rst:592 msgid "The allowed prefixes are:" msgstr "" -#: ../../reference/lexical_analysis.rst:594 msgid "``b``: :ref:`Bytes literal `" msgstr "" -#: ../../reference/lexical_analysis.rst:595 msgid "``r``: :ref:`Raw string `" msgstr "" -#: ../../reference/lexical_analysis.rst:596 msgid "``f``: :ref:`Formatted string literal ` (\"f-string\")" msgstr "" -#: ../../reference/lexical_analysis.rst:597 msgid "``t``: :ref:`Template string literal ` (\"t-string\")" msgstr "" -#: ../../reference/lexical_analysis.rst:598 msgid "``u``: No effect (allowed for backwards compatibility)" msgstr "" -#: ../../reference/lexical_analysis.rst:600 msgid "See the linked sections for details on each type." msgstr "" -#: ../../reference/lexical_analysis.rst:602 msgid "" -"Prefixes are case-insensitive (for example, ``B`` works the same as ``b``). " -"The ``r`` prefix can be combined with ``f``, ``t`` or ``b``, so ``fr``, " -"``rf``, ``tr``, ``rt``, ``br`` and ``rb`` are also valid prefixes." +"Prefixes are case-insensitive (for example, '``B``' works the same as " +"'``b``'). The '``r``' prefix can be combined with '``f``', '``t``' or " +"'``b``', so '``fr``', '``rf``', '``tr``', '``rt``', '``br``', and '``rb``' " +"are also valid prefixes." msgstr "" -#: ../../reference/lexical_analysis.rst:606 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." msgstr "" -#: ../../reference/lexical_analysis.rst:610 msgid "" "Support for the unicode legacy literal (``u'value'``) was reintroduced to " -"simplify the maintenance of dual Python 2.x and 3.x codebases. " -"See :pep:`414` for more information." +"simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" +"`414` for more information." msgstr "" -#: ../../reference/lexical_analysis.rst:616 msgid "Formal grammar" msgstr "" -#: ../../reference/lexical_analysis.rst:618 msgid "" "String literals, except :ref:`\"f-strings\" ` and :ref:`\"t-" "strings\" `, are described by the following lexical definitions." msgstr "" -#: ../../reference/lexical_analysis.rst:622 msgid "" "These definitions use :ref:`negative lookaheads ` (``!" "``) to indicate that an ending quote ends the literal." msgstr "" -#: ../../reference/lexical_analysis.rst:640 msgid "" "Note that as in all lexical definitions, whitespace is significant. In " "particular, the prefix (if any) must be immediately followed by the starting " "quote." msgstr "" -#: ../../reference/lexical_analysis.rst:662 msgid "Escape sequences" msgstr "" -#: ../../reference/lexical_analysis.rst:664 msgid "" -"Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string " +"Unless an '``r``' or '``R``' prefix is present, escape sequences in string " "and bytes literals are interpreted according to rules similar to those used " "by Standard C. The recognized escape sequences are:" msgstr "" -#: ../../reference/lexical_analysis.rst:672 msgid "Escape Sequence" msgstr "" -#: ../../reference/lexical_analysis.rst:673 msgid "Meaning" msgstr "Jelentés" -#: ../../reference/lexical_analysis.rst:674 msgid "``\\``\\ " msgstr "" -#: ../../reference/lexical_analysis.rst:675 msgid ":ref:`string-escape-ignore`" msgstr "" -#: ../../reference/lexical_analysis.rst:676 msgid "``\\\\``" msgstr "" -#: ../../reference/lexical_analysis.rst:677 msgid ":ref:`Backslash `" msgstr "" -#: ../../reference/lexical_analysis.rst:678 msgid "``\\'``" msgstr "" -#: ../../reference/lexical_analysis.rst:679 msgid ":ref:`Single quote `" msgstr "" -#: ../../reference/lexical_analysis.rst:680 msgid "``\\\"``" msgstr "" -#: ../../reference/lexical_analysis.rst:681 msgid ":ref:`Double quote `" msgstr "" -#: ../../reference/lexical_analysis.rst:682 msgid "``\\a``" msgstr "" -#: ../../reference/lexical_analysis.rst:683 msgid "ASCII Bell (BEL)" msgstr "" -#: ../../reference/lexical_analysis.rst:684 msgid "``\\b``" -msgstr "``\\b``" +msgstr "" -#: ../../reference/lexical_analysis.rst:685 msgid "ASCII Backspace (BS)" msgstr "" -#: ../../reference/lexical_analysis.rst:686 msgid "``\\f``" msgstr "" -#: ../../reference/lexical_analysis.rst:687 msgid "ASCII Formfeed (FF)" msgstr "" -#: ../../reference/lexical_analysis.rst:688 msgid "``\\n``" msgstr "" -#: ../../reference/lexical_analysis.rst:689 msgid "ASCII Linefeed (LF)" msgstr "" -#: ../../reference/lexical_analysis.rst:690 msgid "``\\r``" msgstr "" -#: ../../reference/lexical_analysis.rst:691 msgid "ASCII Carriage Return (CR)" msgstr "" -#: ../../reference/lexical_analysis.rst:692 msgid "``\\t``" msgstr "" -#: ../../reference/lexical_analysis.rst:693 msgid "ASCII Horizontal Tab (TAB)" msgstr "" -#: ../../reference/lexical_analysis.rst:694 msgid "``\\v``" msgstr "" -#: ../../reference/lexical_analysis.rst:695 msgid "ASCII Vertical Tab (VT)" msgstr "" -#: ../../reference/lexical_analysis.rst:696 msgid ":samp:`\\\\\\\\{ooo}`" msgstr "" -#: ../../reference/lexical_analysis.rst:697 msgid ":ref:`string-escape-oct`" msgstr "" -#: ../../reference/lexical_analysis.rst:698 msgid ":samp:`\\\\x{hh}`" msgstr "" -#: ../../reference/lexical_analysis.rst:699 msgid ":ref:`string-escape-hex`" msgstr "" -#: ../../reference/lexical_analysis.rst:700 msgid ":samp:`\\\\N\\\\{{name}\\\\}`" msgstr "" -#: ../../reference/lexical_analysis.rst:701 msgid ":ref:`string-escape-named`" msgstr "" -#: ../../reference/lexical_analysis.rst:702 msgid ":samp:`\\\\u{xxxx}`" msgstr "" -#: ../../reference/lexical_analysis.rst:703 -#: ../../reference/lexical_analysis.rst:705 msgid ":ref:`Hexadecimal Unicode character `" msgstr "" -#: ../../reference/lexical_analysis.rst:704 msgid ":samp:`\\\\U{xxxxxxxx}`" msgstr "" -#: ../../reference/lexical_analysis.rst:710 msgid "Ignored end of line" msgstr "" -#: ../../reference/lexical_analysis.rst:712 msgid "A backslash can be added at the end of a line to ignore the newline::" msgstr "" -#: ../../reference/lexical_analysis.rst:714 msgid "" ">>> 'This string will not include \\\n" "... backslashes or newline characters.'\n" "'This string will not include backslashes or newline characters.'" msgstr "" -#: ../../reference/lexical_analysis.rst:718 msgid "" "The same result can be achieved using :ref:`triple-quoted strings " "`, or parentheses and :ref:`string literal concatenation `." msgstr "" -#: ../../reference/lexical_analysis.rst:724 msgid "Escaped characters" msgstr "" -#: ../../reference/lexical_analysis.rst:726 msgid "" "To include a backslash in a non-:ref:`raw ` Python string " "literal, it must be doubled. The ``\\\\`` escape sequence denotes a single " "backslash character::" msgstr "" -#: ../../reference/lexical_analysis.rst:730 msgid "" ">>> print('C:\\\\Program Files')\n" "C:\\Program Files" msgstr "" -#: ../../reference/lexical_analysis.rst:733 msgid "" "Similarly, the ``\\'`` and ``\\\"`` sequences denote the single and double " "quote character, respectively::" msgstr "" -#: ../../reference/lexical_analysis.rst:736 msgid "" ">>> print('\\' and \\\"')\n" "' and \"" msgstr "" -#: ../../reference/lexical_analysis.rst:742 msgid "Octal character" msgstr "" -#: ../../reference/lexical_analysis.rst:744 msgid "" "The sequence :samp:`\\\\\\\\{ooo}` denotes a *character* with the octal " "(base 8) value *ooo*::" msgstr "" -#: ../../reference/lexical_analysis.rst:747 msgid "" ">>> '\\120'\n" "'P'" msgstr "" -#: ../../reference/lexical_analysis.rst:750 msgid "Up to three octal digits (0 through 7) are accepted." msgstr "" -#: ../../reference/lexical_analysis.rst:752 -#: ../../reference/lexical_analysis.rst:777 msgid "" "In a bytes literal, *character* means a *byte* with the given value. In a " "string literal, it means a Unicode character with the given value." msgstr "" -#: ../../reference/lexical_analysis.rst:755 msgid "" -"Octal escapes with value larger than ``0o377`` (255) produce " -"a :exc:`DeprecationWarning`." +"Octal escapes with value larger than ``0o377`` (255) produce a :exc:" +"`DeprecationWarning`." msgstr "" -#: ../../reference/lexical_analysis.rst:759 msgid "" -"Octal escapes with value larger than ``0o377`` (255) produce " -"a :exc:`SyntaxWarning`. In a future Python version they will raise " -"a :exc:`SyntaxError`." +"Octal escapes with value larger than ``0o377`` (255) produce a :exc:" +"`SyntaxWarning`. In a future Python version they will raise a :exc:" +"`SyntaxError`." msgstr "" -#: ../../reference/lexical_analysis.rst:767 msgid "Hexadecimal character" msgstr "" -#: ../../reference/lexical_analysis.rst:769 msgid "" "The sequence :samp:`\\\\x{hh}` denotes a *character* with the hex (base 16) " "value *hh*::" msgstr "" -#: ../../reference/lexical_analysis.rst:772 msgid "" ">>> '\\x50'\n" "'P'" msgstr "" -#: ../../reference/lexical_analysis.rst:775 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" -#: ../../reference/lexical_analysis.rst:783 msgid "Named Unicode character" msgstr "" -#: ../../reference/lexical_analysis.rst:785 msgid "" "The sequence :samp:`\\\\N\\\\{{name}\\\\}` denotes a Unicode character with " "the given *name*::" msgstr "" -#: ../../reference/lexical_analysis.rst:788 msgid "" ">>> '\\N{LATIN CAPITAL LETTER P}'\n" "'P'\n" @@ -1137,21 +933,17 @@ msgid "" "'🐍'" msgstr "" -#: ../../reference/lexical_analysis.rst:793 msgid "This sequence cannot appear in :ref:`bytes literals `." msgstr "" -#: ../../reference/lexical_analysis.rst:795 msgid "" "Support for `name aliases `__ has been added." msgstr "" -#: ../../reference/lexical_analysis.rst:802 msgid "Hexadecimal Unicode characters" msgstr "" -#: ../../reference/lexical_analysis.rst:804 msgid "" "These sequences :samp:`\\\\u{xxxx}` and :samp:`\\\\U{xxxxxxxx}` denote the " "Unicode character with the given hex (base 16) value. Exactly four digits " @@ -1159,7 +951,6 @@ msgid "" "latter can encode any Unicode character." msgstr "" -#: ../../reference/lexical_analysis.rst:810 msgid "" ">>> '\\u1234'\n" "'ሴ'\n" @@ -1167,21 +958,17 @@ msgid "" "'🐍'" msgstr "" -#: ../../reference/lexical_analysis.rst:817 msgid "These sequences cannot appear in :ref:`bytes literals `." msgstr "" -#: ../../reference/lexical_analysis.rst:823 msgid "Unrecognized escape sequences" msgstr "" -#: ../../reference/lexical_analysis.rst:825 msgid "" "Unlike in Standard C, all unrecognized escape sequences are left in the " "string unchanged, that is, *the backslash is left in the result*::" msgstr "" -#: ../../reference/lexical_analysis.rst:828 msgid "" ">>> print('\\q')\n" "\\q\n" @@ -1189,37 +976,31 @@ msgid "" "['\\\\', 'q']" msgstr "" -#: ../../reference/lexical_analysis.rst:833 msgid "" "Note that for bytes literals, the escape sequences only recognized in string " "literals (``\\N...``, ``\\u...``, ``\\U...``) fall into the category of " "unrecognized escapes." msgstr "" -#: ../../reference/lexical_analysis.rst:837 msgid "Unrecognized escape sequences produce a :exc:`DeprecationWarning`." msgstr "" -#: ../../reference/lexical_analysis.rst:840 msgid "" "Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future " "Python version they will raise a :exc:`SyntaxError`." msgstr "" -#: ../../reference/lexical_analysis.rst:853 msgid "Bytes literals" msgstr "" -#: ../../reference/lexical_analysis.rst:855 msgid "" -":dfn:`Bytes literals` are always prefixed with ``'b'`` or ``'B'``; they " +":dfn:`Bytes literals` are always prefixed with '``b``' or '``B``'; they " "produce an instance of the :class:`bytes` type instead of the :class:`str` " "type. They may only contain ASCII characters; bytes with a numeric value of " -"128 or greater must be expressed with escape sequences " -"(typically :ref:`string-escape-hex` or :ref:`string-escape-oct`):" +"128 or greater must be expressed with escape sequences (typically :ref:" +"`string-escape-hex` or :ref:`string-escape-oct`):" msgstr "" -#: ../../reference/lexical_analysis.rst:861 msgid "" ">>> b'\\x89PNG\\r\\n\\x1a\\n'\n" "b'\\x89PNG\\r\\n\\x1a\\n'\n" @@ -1227,32 +1008,27 @@ msgid "" "[137, 80, 78, 71, 13, 10, 26, 10]" msgstr "" -#: ../../reference/lexical_analysis.rst:868 msgid "" "Similarly, a zero byte must be expressed using an escape sequence (typically " "``\\0`` or ``\\x00``)." msgstr "" -#: ../../reference/lexical_analysis.rst:879 msgid "Raw string literals" msgstr "" -#: ../../reference/lexical_analysis.rst:881 msgid "" "Both string and bytes literals may optionally be prefixed with a letter " -"``'r'`` or ``'R'``; such constructs are called :dfn:`raw string literals` " +"'``r``' or '``R``'; such constructs are called :dfn:`raw string literals` " "and :dfn:`raw bytes literals` respectively and treat backslashes as literal " "characters. As a result, in raw string literals, :ref:`escape sequences " "` are not treated specially:" msgstr "" -#: ../../reference/lexical_analysis.rst:888 msgid "" ">>> r'\\d{4}-\\d{2}-\\d{2}'\n" "'\\\\d{4}-\\\\d{2}-\\\\d{2}'" msgstr "" -#: ../../reference/lexical_analysis.rst:893 msgid "" "Even in a raw literal, quotes can be escaped with a backslash, but the " "backslash remains in the result; for example, ``r\"\\\"\"`` is a valid " @@ -1265,27 +1041,23 @@ msgid "" "continuation." msgstr "" -#: ../../reference/lexical_analysis.rst:921 msgid "f-strings" msgstr "" -#: ../../reference/lexical_analysis.rst:925 msgid "" "A :dfn:`formatted string literal` or :dfn:`f-string` is a string literal " -"that is prefixed with ``f`` or ``F``. These strings may contain replacement " -"fields, which are expressions delimited by curly braces ``{}``. While other " -"string literals always have a constant value, formatted strings are really " -"expressions evaluated at run time." +"that is prefixed with '``f``' or '``F``'. These strings may contain " +"replacement fields, which are expressions delimited by curly braces ``{}``. " +"While other string literals always have a constant value, formatted strings " +"are really expressions evaluated at run time." msgstr "" -#: ../../reference/lexical_analysis.rst:931 msgid "" "Escape sequences are decoded like in ordinary string literals (except when a " "literal is also marked as a raw string). After decoding, the grammar for " "the contents of the string is:" msgstr "" -#: ../../reference/lexical_analysis.rst:945 msgid "" "The parts of the string outside curly braces are treated literally, except " "that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " @@ -1298,7 +1070,6 @@ msgid "" "replacement field ends with a closing curly bracket ``'}'``." msgstr "" -#: ../../reference/lexical_analysis.rst:955 msgid "" "Expressions in formatted string literals are treated like regular Python " "expressions surrounded by parentheses, with a few exceptions. An empty " @@ -1312,27 +1083,23 @@ msgid "" "replacement fields must be closed in a different line." msgstr "" -#: ../../reference/lexical_analysis.rst:966 msgid "" ">>> f\"abc{a # This is a comment }\"\n" "... + 3}\"\n" "'abc5'" msgstr "" -#: ../../reference/lexical_analysis.rst:972 msgid "" "Prior to Python 3.7, an :keyword:`await` expression and comprehensions " "containing an :keyword:`async for` clause were illegal in the expressions in " "formatted string literals due to a problem with the implementation." msgstr "" -#: ../../reference/lexical_analysis.rst:977 msgid "" "Prior to Python 3.12, comments were not allowed inside f-string replacement " "fields." msgstr "" -#: ../../reference/lexical_analysis.rst:981 msgid "" "When the equal sign ``'='`` is provided, the output will have the expression " "text, the ``'='`` and the evaluated value. Spaces after the opening brace " @@ -1343,18 +1110,15 @@ msgid "" "r'`` is declared." msgstr "" -#: ../../reference/lexical_analysis.rst:989 msgid "The equal sign ``'='``." msgstr "" -#: ../../reference/lexical_analysis.rst:992 msgid "" "If a conversion is specified, the result of evaluating the expression is " "converted before formatting. Conversion ``'!s'`` calls :func:`str` on the " "result, ``'!r'`` calls :func:`repr`, and ``'!a'`` calls :func:`ascii`." msgstr "" -#: ../../reference/lexical_analysis.rst:996 msgid "" "The result is then formatted using the :func:`format` protocol. The format " "specifier is passed to the :meth:`~object.__format__` method of the " @@ -1363,7 +1127,6 @@ msgid "" "value of the whole string." msgstr "" -#: ../../reference/lexical_analysis.rst:1002 msgid "" "Top-level format specifiers may include nested replacement fields. These " "nested fields may include their own conversion fields and :ref:`format " @@ -1372,17 +1135,14 @@ msgid "" "as that used by the :meth:`str.format` method." msgstr "" -#: ../../reference/lexical_analysis.rst:1008 msgid "" "Formatted string literals may be concatenated, but replacement fields cannot " "be split across literals." msgstr "" -#: ../../reference/lexical_analysis.rst:1011 msgid "Some examples of formatted string literals::" msgstr "" -#: ../../reference/lexical_analysis.rst:1013 msgid "" ">>> name = \"Fred\"\n" ">>> f\"He said his name is {name!r}.\"\n" @@ -1414,32 +1174,27 @@ msgid "" "'line = \"The mill\\'s closed\" '" msgstr "" -#: ../../reference/lexical_analysis.rst:1043 msgid "" "Reusing the outer f-string quoting type inside a replacement field is " "permitted::" msgstr "" -#: ../../reference/lexical_analysis.rst:1046 msgid "" ">>> a = dict(x=2)\n" ">>> f\"abc {a[\"x\"]} def\"\n" "'abc 2 def'" msgstr "" -#: ../../reference/lexical_analysis.rst:1050 msgid "" "Prior to Python 3.12, reuse of the same quoting type of the outer f-string " "inside a replacement field was not possible." msgstr "" -#: ../../reference/lexical_analysis.rst:1054 msgid "" "Backslashes are also allowed in replacement fields and are evaluated the " "same way as in any other context::" msgstr "" -#: ../../reference/lexical_analysis.rst:1057 msgid "" ">>> a = [\"a\", \"b\", \"c\"]\n" ">>> print(f\"List a contains:\\n{\"\\n\".join(a)}\")\n" @@ -1449,19 +1204,16 @@ msgid "" "c" msgstr "" -#: ../../reference/lexical_analysis.rst:1064 msgid "" "Prior to Python 3.12, backslashes were not permitted inside an f-string " "replacement field." msgstr "" -#: ../../reference/lexical_analysis.rst:1068 msgid "" "Formatted string literals cannot be used as docstrings, even if they do not " "include expressions." msgstr "" -#: ../../reference/lexical_analysis.rst:1073 msgid "" ">>> def foo():\n" "... f\"Not a docstring\"\n" @@ -1470,78 +1222,62 @@ msgid "" "True" msgstr "" -#: ../../reference/lexical_analysis.rst:1079 msgid "" "See also :pep:`498` for the proposal that added formatted string literals, " "and :meth:`str.format`, which uses a related format string mechanism." msgstr "" -#: ../../reference/lexical_analysis.rst:1087 msgid "t-strings" msgstr "" -#: ../../reference/lexical_analysis.rst:1091 msgid "" "A :dfn:`template string literal` or :dfn:`t-string` is a string literal that " -"is prefixed with ``t`` or ``T``. These strings follow the same syntax and " -"evaluation rules as :ref:`formatted string literals `, with the " -"following differences:" +"is prefixed with '``t``' or '``T``'. These strings follow the same syntax " +"and evaluation rules as :ref:`formatted string literals `, with " +"the following differences:" msgstr "" -#: ../../reference/lexical_analysis.rst:1096 msgid "" -"Rather than evaluating to a ``str`` object, t-strings evaluate to " -"a :class:`~string.templatelib.Template` object from " -"the :mod:`string.templatelib` module." +"Rather than evaluating to a ``str`` object, template string literals " +"evaluate to a :class:`string.templatelib.Template` object." msgstr "" -#: ../../reference/lexical_analysis.rst:1100 msgid "" "The :func:`format` protocol is not used. Instead, the format specifier and " -"conversions (if any) are passed to a " -"new :class:`~string.templatelib.Interpolation` object that is created for " -"each evaluated expression. It is up to code that processes the " -"resulting :class:`~string.templatelib.Template` object to decide how to " -"handle format specifiers and conversions." +"conversions (if any) are passed to a new :class:`~string.templatelib." +"Interpolation` object that is created for each evaluated expression. It is " +"up to code that processes the resulting :class:`~string.templatelib." +"Template` object to decide how to handle format specifiers and conversions." msgstr "" -#: ../../reference/lexical_analysis.rst:1106 msgid "" "Format specifiers containing nested replacement fields are evaluated " -"eagerly, prior to being passed to " -"the :class:`~string.templatelib.Interpolation` object. For instance, an " -"interpolation of the form ``{amount:.{precision}f}`` will evaluate the " -"expression ``{precision}`` before setting the ``format_spec`` attribute of " -"the resulting :class:`!Interpolation` object; if ``precision`` is (for " -"example) ``2``, the resulting format specifier will be ``'.2f'``." -msgstr "" - -#: ../../reference/lexical_analysis.rst:1113 -msgid "" -"When the equal sign ``'='`` is provided in an interpolation expression, the " -"resulting :class:`~string.templatelib.Template` object will have the " -"expression text along with a ``'='`` character placed in " -"its :attr:`~string.templatelib.Template.strings` attribute. " -"The :attr:`~string.templatelib.Template.interpolations` attribute will also " -"contain an ``Interpolation`` instance for the expression. By default, " -"the :attr:`~string.templatelib.Interpolation.conversion` attribute will be " -"set to ``'r'`` (that is, :func:`repr`), unless there is a conversion " -"explicitly specified (in which case it overrides the default) or a format " -"specifier is provided (in which case, the ``conversion`` defaults to " -"``None``)." -msgstr "" - -#: ../../reference/lexical_analysis.rst:1128 +"eagerly, prior to being passed to the :class:`~string.templatelib." +"Interpolation` object. For instance, an interpolation of the form ``{amount:." +"{precision}f}`` will evaluate the inner expression ``{precision}`` to " +"determine the value of the ``format_spec`` attribute. If ``precision`` were " +"to be ``2``, the resulting format specifier would be ``'.2f'``." +msgstr "" + +msgid "" +"When the equals sign ``'='`` is provided in an interpolation expression, the " +"text of the expression is appended to the literal string that precedes the " +"relevant interpolation. This includes the equals sign and any surrounding " +"whitespace. The :class:`!Interpolation` instance for the expression will be " +"created as normal, except that :attr:`~string.templatelib.Interpolation." +"conversion` will be set to '``r``' (:func:`repr`) by default. If an explicit " +"conversion or format specifier are provided, this will override the default " +"behaviour." +msgstr "" + msgid "Numeric literals" msgstr "" -#: ../../reference/lexical_analysis.rst:1134 msgid "" ":data:`~token.NUMBER` tokens represent numeric literals, of which there are " "three types: integers, floating-point numbers, and imaginary numbers." msgstr "" -#: ../../reference/lexical_analysis.rst:1142 msgid "" "The numeric value of a numeric literal is the same as if it were passed as a " "string to the :class:`int`, :class:`float` or :class:`complex` class " @@ -1549,58 +1285,48 @@ msgid "" "constructors are also valid literals." msgstr "" -#: ../../reference/lexical_analysis.rst:1147 msgid "" "Numeric literals do not include a sign; a phrase like ``-1`` is actually an " "expression composed of the unary operator '``-``' and the literal ``1``." msgstr "" -#: ../../reference/lexical_analysis.rst:1161 msgid "Integer literals" msgstr "" -#: ../../reference/lexical_analysis.rst:1163 msgid "Integer literals denote whole numbers. For example::" msgstr "" -#: ../../reference/lexical_analysis.rst:1165 msgid "" "7\n" "3\n" "2147483647" msgstr "" -#: ../../reference/lexical_analysis.rst:1169 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory::" msgstr "" -#: ../../reference/lexical_analysis.rst:1172 msgid "7922816251426433759354395033679228162514264337593543950336" msgstr "" -#: ../../reference/lexical_analysis.rst:1174 msgid "" "Underscores can be used to group digits for enhanced readability, and are " "ignored for determining the numeric value of the literal. For example, the " "following literals are equivalent::" msgstr "" -#: ../../reference/lexical_analysis.rst:1178 msgid "" "100_000_000_000\n" "100000000000\n" "1_00_00_00_00_000" msgstr "" -#: ../../reference/lexical_analysis.rst:1182 msgid "" "Underscores can only occur between digits. For example, ``_123``, ``321_``, " "and ``123__321`` are *not* valid literals." msgstr "" -#: ../../reference/lexical_analysis.rst:1185 msgid "" "Integers can be specified in binary (base 2), octal (base 8), or hexadecimal " "(base 16) using the prefixes ``0b``, ``0o`` and ``0x``, respectively. " @@ -1608,7 +1334,6 @@ msgid "" "case-insensitive. For example::" msgstr "" -#: ../../reference/lexical_analysis.rst:1190 msgid "" "0b100110111\n" "0b_1110_0101\n" @@ -1618,81 +1343,66 @@ msgid "" "0xDead_Beef" msgstr "" -#: ../../reference/lexical_analysis.rst:1197 msgid "" "An underscore can follow the base specifier. For example, ``0x_1f`` is a " "valid literal, but ``0_x1f`` and ``0x__1f`` are not." msgstr "" -#: ../../reference/lexical_analysis.rst:1201 msgid "" "Leading zeros in a non-zero decimal number are not allowed. For example, " "``0123`` is not a valid literal. This is for disambiguation with C-style " "octal literals, which Python used before version 3.0." msgstr "" -#: ../../reference/lexical_analysis.rst:1206 msgid "" "Formally, integer literals are described by the following lexical " "definitions:" msgstr "" -#: ../../reference/lexical_analysis.rst:1223 -#: ../../reference/lexical_analysis.rst:1287 msgid "Underscores are now allowed for grouping purposes in literals." msgstr "" -#: ../../reference/lexical_analysis.rst:1234 msgid "Floating-point literals" msgstr "" -#: ../../reference/lexical_analysis.rst:1236 msgid "" -"Floating-point (float) literals, such as ``3.14`` or ``1.5``, " -"denote :ref:`approximations of real numbers `." +"Floating-point (float) literals, such as ``3.14`` or ``1.5``, denote :ref:" +"`approximations of real numbers `." msgstr "" -#: ../../reference/lexical_analysis.rst:1239 msgid "" "They consist of *integer* and *fraction* parts, each composed of decimal " "digits. The parts are separated by a decimal point, ``.``::" msgstr "" -#: ../../reference/lexical_analysis.rst:1242 msgid "" "2.71828\n" "4.0" msgstr "" -#: ../../reference/lexical_analysis.rst:1245 msgid "" "Unlike in integer literals, leading zeros are allowed in the numeric parts. " "For example, ``077.010`` is legal, and denotes the same number as ``77.10``." msgstr "" -#: ../../reference/lexical_analysis.rst:1248 msgid "" "As in integer literals, single underscores may occur between digits to help " "readability::" msgstr "" -#: ../../reference/lexical_analysis.rst:1251 msgid "" "96_485.332_123\n" "3.14_15_93" msgstr "" -#: ../../reference/lexical_analysis.rst:1254 msgid "Either of these parts, but not both, can be empty. For example::" msgstr "" -#: ../../reference/lexical_analysis.rst:1256 msgid "" "10. # (equivalent to 10.0)\n" ".001 # (equivalent to 0.001)" msgstr "" -#: ../../reference/lexical_analysis.rst:1259 msgid "" "Optionally, the integer and fraction may be followed by an *exponent*: the " "letter ``e`` or ``E``, followed by an optional sign, ``+`` or ``-``, and a " @@ -1700,54 +1410,45 @@ msgid "" "``E`` represents \"times ten raised to the power of\"::" msgstr "" -#: ../../reference/lexical_analysis.rst:1264 msgid "" "1.0e3 # (represents 1.0×10³, or 1000.0)\n" "1.166e-5 # (represents 1.166×10⁻⁵, or 0.00001166)\n" "6.02214076e+23 # (represents 6.02214076×10²³, or 602214076000000000000000.)" msgstr "" -#: ../../reference/lexical_analysis.rst:1268 msgid "" "In floats with only integer and exponent parts, the decimal point may be " "omitted::" msgstr "" -#: ../../reference/lexical_analysis.rst:1271 msgid "" "1e3 # (equivalent to 1.e3 and 1.0e3)\n" "0e0 # (equivalent to 0.)" msgstr "" -#: ../../reference/lexical_analysis.rst:1274 msgid "" "Formally, floating-point literals are described by the following lexical " "definitions:" msgstr "" -#: ../../reference/lexical_analysis.rst:1296 msgid "Imaginary literals" msgstr "" -#: ../../reference/lexical_analysis.rst:1298 msgid "" "Python has :ref:`complex number ` objects, but no complex " "literals. Instead, *imaginary literals* denote complex numbers with a zero " "real part." msgstr "" -#: ../../reference/lexical_analysis.rst:1303 msgid "" "For example, in math, the complex number 3+4.2\\ *i* is written as the real " "number 3 added to the imaginary number 4.2\\ *i*. Python uses a similar " "syntax, except the imaginary unit is written as ``j`` rather than *i*::" msgstr "" -#: ../../reference/lexical_analysis.rst:1308 msgid "3+4.2j" msgstr "" -#: ../../reference/lexical_analysis.rst:1310 msgid "" "This is an expression composed of the :ref:`integer literal ` " "``3``, the :ref:`operator ` '``+``', and the :ref:`imaginary " @@ -1755,23 +1456,19 @@ msgid "" "whitespace is allowed between them::" msgstr "" -#: ../../reference/lexical_analysis.rst:1316 msgid "3 + 4.2j" msgstr "" -#: ../../reference/lexical_analysis.rst:1318 msgid "" "No whitespace is allowed *within* each token. In particular, the ``j`` " "suffix, may not be separated from the number before it." msgstr "" -#: ../../reference/lexical_analysis.rst:1322 msgid "" "The number before the ``j`` has the same syntax as a floating-point literal. " "Thus, the following are valid imaginary literals::" msgstr "" -#: ../../reference/lexical_analysis.rst:1325 msgid "" "4.2j\n" "3.14j\n" @@ -1782,518 +1479,365 @@ msgid "" "3.14_15_93j" msgstr "" -#: ../../reference/lexical_analysis.rst:1333 msgid "" "Unlike in a floating-point literal the decimal point can be omitted if the " "imaginary number only has an integer part. The number is still evaluated as " "a floating-point number, not an integer::" msgstr "" -#: ../../reference/lexical_analysis.rst:1337 msgid "" "10j\n" "0j\n" "1000000000000000000000000j # equivalent to 1e+24j" msgstr "" -#: ../../reference/lexical_analysis.rst:1341 msgid "" "The ``j`` suffix is case-insensitive. That means you can use ``J`` instead::" msgstr "" -#: ../../reference/lexical_analysis.rst:1344 msgid "3.14J # equivalent to 3.14j" msgstr "" -#: ../../reference/lexical_analysis.rst:1346 msgid "" "Formally, imaginary literals are described by the following lexical " "definition:" msgstr "" -#: ../../reference/lexical_analysis.rst:1357 -msgid "Operators" +msgid "Operators and delimiters" msgstr "" -#: ../../reference/lexical_analysis.rst:1361 -msgid "The following tokens are operators:" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1363 msgid "" -"+ - * ** / // % @\n" -"<< >> & | ^ ~ :=\n" -"< > <= >= == !=" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1374 -msgid "Delimiters" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1378 -msgid "The following tokens serve as delimiters in the grammar:" +"The following grammar defines :dfn:`operator` and :dfn:`delimiter` tokens, " +"that is, the generic :data:`~token.OP` token type. A :ref:`list of these " +"tokens and their names ` is also available in " +"the :mod:`!token` module documentation." msgstr "" -#: ../../reference/lexical_analysis.rst:1380 msgid "" -"( ) [ ] { }\n" -", : ! . ; @ =" +"Generally, *operators* are used to combine :ref:`expressions `, " +"while *delimiters* serve other purposes. However, there is no clear, formal " +"distinction between the two categories." msgstr "" -#: ../../reference/lexical_analysis.rst:1385 -msgid "The period can also occur in floating-point and imaginary literals." -msgstr "" - -#: ../../reference/lexical_analysis.rst:1389 msgid "" -"A sequence of three periods has a special meaning as an :py:data:`Ellipsis` " -"literal:" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1392 -msgid "..." +"Some tokens can serve as either operators or delimiters, depending on usage. " +"For example, ``*`` is both the multiplication operator and a delimiter used " +"for sequence unpacking, and ``@`` is both the matrix multiplication and a " +"delimiter that introduces decorators." msgstr "" -#: ../../reference/lexical_analysis.rst:1396 msgid "" -"The following *augmented assignment operators* serve lexically as " -"delimiters, but also perform an operation:" +"For some tokens, the distinction is unclear. For example, some people " +"consider ``.``, ``(``, and ``)`` to be delimiters, while others see the :py:" +"func:`getattr` operator and the function call operator(s)." msgstr "" -#: ../../reference/lexical_analysis.rst:1399 msgid "" -"-> += -= *= /= //= %=\n" -"@= &= |= ^= >>= <<= **=" +"Some of Python's operators, like ``and``, ``or``, and ``not in``, use :ref:" +"`keyword ` tokens rather than \"symbols\" (operator tokens)." msgstr "" -#: ../../reference/lexical_analysis.rst:1404 msgid "" -"The following printing ASCII characters have special meaning as part of " -"other tokens or are otherwise significant to the lexical analyzer:" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1407 -msgid "' \" # \\" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1411 -msgid "" -"The following printing ASCII characters are not used in Python. Their " -"occurrence outside string literals and comments is an unconditional error:" -msgstr "" - -#: ../../reference/lexical_analysis.rst:1414 -msgid "$ ? `" +"A sequence of three consecutive periods (``...``) has a special meaning as " +"an :py:data:`Ellipsis` literal." msgstr "" -#: ../../reference/lexical_analysis.rst:8 msgid "lexical analysis" msgstr "" -#: ../../reference/lexical_analysis.rst:8 msgid "parser" msgstr "" -#: ../../reference/lexical_analysis.rst:8 msgid "token" msgstr "" -#: ../../reference/lexical_analysis.rst:26 msgid "line structure" msgstr "" -#: ../../reference/lexical_analysis.rst:36 msgid "logical line" msgstr "" -#: ../../reference/lexical_analysis.rst:36 -#: ../../reference/lexical_analysis.rst:139 -#: ../../reference/lexical_analysis.rst:644 msgid "physical line" msgstr "" -#: ../../reference/lexical_analysis.rst:36 -#: ../../reference/lexical_analysis.rst:139 msgid "line joining" msgstr "" -#: ../../reference/lexical_analysis.rst:36 msgid "NEWLINE token" msgstr "" -#: ../../reference/lexical_analysis.rst:82 msgid "comment" msgstr "" -#: ../../reference/lexical_analysis.rst:82 msgid "hash character" msgstr "" -#: ../../reference/lexical_analysis.rst:82 -#: ../../reference/lexical_analysis.rst:96 msgid "# (hash)" msgstr "" -#: ../../reference/lexical_analysis.rst:96 msgid "source character set" msgstr "" -#: ../../reference/lexical_analysis.rst:96 msgid "encoding declarations (source file)" msgstr "" -#: ../../reference/lexical_analysis.rst:96 msgid "source encoding declaration" msgstr "" -#: ../../reference/lexical_analysis.rst:139 msgid "line continuation" msgstr "" -#: ../../reference/lexical_analysis.rst:139 msgid "backslash character" msgstr "" -#: ../../reference/lexical_analysis.rst:184 msgid "blank line" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "indentation" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "leading whitespace" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "space" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "tab" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "grouping" msgstr "" -#: ../../reference/lexical_analysis.rst:200 msgid "statement grouping" msgstr "" -#: ../../reference/lexical_analysis.rst:228 msgid "INDENT token" msgstr "" -#: ../../reference/lexical_analysis.rst:228 msgid "DEDENT token" msgstr "" -#: ../../reference/lexical_analysis.rst:318 msgid "identifier" msgstr "" -#: ../../reference/lexical_analysis.rst:318 msgid "name" msgstr "" -#: ../../reference/lexical_analysis.rst:397 -#: ../../reference/lexical_analysis.rst:421 msgid "keyword" msgstr "" -#: ../../reference/lexical_analysis.rst:397 msgid "reserved word" msgstr "" -#: ../../reference/lexical_analysis.rst:421 msgid "soft keyword" msgstr "" -#: ../../reference/lexical_analysis.rst:441 msgid "_, identifiers" msgstr "" -#: ../../reference/lexical_analysis.rst:441 msgid "__, identifiers" msgstr "" -#: ../../reference/lexical_analysis.rst:497 msgid "literal" msgstr "" -#: ../../reference/lexical_analysis.rst:497 msgid "constant" msgstr "" -#: ../../reference/lexical_analysis.rst:509 -#: ../../reference/lexical_analysis.rst:552 -#: ../../reference/lexical_analysis.rst:577 msgid "string literal" msgstr "" -#: ../../reference/lexical_analysis.rst:509 -#: ../../reference/lexical_analysis.rst:845 msgid "bytes literal" msgstr "" -#: ../../reference/lexical_analysis.rst:509 msgid "ASCII" msgstr "" -#: ../../reference/lexical_analysis.rst:509 msgid "' (single quote)" msgstr "" -#: ../../reference/lexical_analysis.rst:509 msgid "\" (double quote)" msgstr "" -#: ../../reference/lexical_analysis.rst:552 msgid "triple-quoted string" msgstr "" -#: ../../reference/lexical_analysis.rst:552 msgid "\"\"\"" msgstr "" -#: ../../reference/lexical_analysis.rst:552 msgid "'''" msgstr "" -#: ../../reference/lexical_analysis.rst:577 msgid "u'" msgstr "" -#: ../../reference/lexical_analysis.rst:577 msgid "u\"" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "escape sequence" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "Standard C" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "C" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\ (backslash)" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\\\" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\a" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\b" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\f" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\n" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\r" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\t" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\v" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\x" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\u" msgstr "" -#: ../../reference/lexical_analysis.rst:644 msgid "\\U" msgstr "" -#: ../../reference/lexical_analysis.rst:820 msgid "unrecognized escape sequence" msgstr "" -#: ../../reference/lexical_analysis.rst:845 msgid "b'" msgstr "" -#: ../../reference/lexical_analysis.rst:845 msgid "b\"" msgstr "" -#: ../../reference/lexical_analysis.rst:872 msgid "r'" msgstr "" -#: ../../reference/lexical_analysis.rst:872 msgid "raw string literal" msgstr "" -#: ../../reference/lexical_analysis.rst:872 msgid "r\"" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "formatted string literal" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "interpolated string literal" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "string" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "formatted literal" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "interpolated literal" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "f-string" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "fstring" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "f'" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "f\"" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "{} (curly brackets)" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "in formatted string literal" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "! (exclamation)" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid ": (colon)" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "= (equals)" msgstr "" -#: ../../reference/lexical_analysis.rst:903 msgid "for help in debugging using string literals" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "number" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "numeric literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 -#: ../../reference/lexical_analysis.rst:1152 msgid "integer literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "floating-point literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "hexadecimal literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "octal literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "binary literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "decimal literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "imaginary literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1130 msgid "complex literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1152 msgid "0b" msgstr "" -#: ../../reference/lexical_analysis.rst:1152 msgid "0o" msgstr "" -#: ../../reference/lexical_analysis.rst:1152 msgid "0x" msgstr "" -#: ../../reference/lexical_analysis.rst:1152 -#: ../../reference/lexical_analysis.rst:1227 msgid "_ (underscore)" msgstr "" -#: ../../reference/lexical_analysis.rst:1152 -#: ../../reference/lexical_analysis.rst:1227 -#: ../../reference/lexical_analysis.rst:1291 msgid "in numeric literal" msgstr "" -#: ../../reference/lexical_analysis.rst:1227 msgid ". (dot)" msgstr "" -#: ../../reference/lexical_analysis.rst:1227 msgid "e" msgstr "" -#: ../../reference/lexical_analysis.rst:1291 msgid "j" msgstr "" -#: ../../reference/lexical_analysis.rst:1359 msgid "operators" msgstr "" -#: ../../reference/lexical_analysis.rst:1376 msgid "delimiters" msgstr "" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 5763ed9..76f5676 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,22 +22,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/simple_stmts.rst:6 msgid "Simple statements" msgstr "" -#: ../../reference/simple_stmts.rst:10 msgid "" "A simple statement is comprised within a single logical line. Several simple " "statements may occur on a single line separated by semicolons. The syntax " "for simple statements is:" msgstr "" -#: ../../reference/simple_stmts.rst:37 msgid "Expression statements" msgstr "" -#: ../../reference/simple_stmts.rst:44 msgid "" "Expression statements are used (mostly interactively) to compute and write a " "value, or (usually) to call a procedure (a function that returns no " @@ -46,13 +42,11 @@ msgid "" "syntax for an expression statement is:" msgstr "" -#: ../../reference/simple_stmts.rst:53 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." msgstr "" -#: ../../reference/simple_stmts.rst:65 msgid "" "In interactive mode, if the value is not ``None``, it is converted to a " "string using the built-in :func:`repr` function and the resulting string is " @@ -60,23 +54,19 @@ msgid "" "``None``, so that procedure calls do not cause any output.)" msgstr "" -#: ../../reference/simple_stmts.rst:73 msgid "Assignment statements" msgstr "" -#: ../../reference/simple_stmts.rst:83 msgid "" "Assignment statements are used to (re)bind names to values and to modify " "attributes or items of mutable objects:" msgstr "" -#: ../../reference/simple_stmts.rst:97 msgid "" "(See section :ref:`primaries` for the syntax definitions for *attributeref*, " "*subscription*, and *slicing*.)" msgstr "" -#: ../../reference/simple_stmts.rst:100 msgid "" "An assignment statement evaluates the expression list (remember that this " "can be a single expression or a comma-separated list, the latter yielding a " @@ -84,7 +74,6 @@ msgid "" "from left to right." msgstr "" -#: ../../reference/simple_stmts.rst:109 msgid "" "Assignment is defined recursively depending on the form of the target " "(list). When a target is part of a mutable object (an attribute reference, " @@ -95,23 +84,19 @@ msgid "" "section :ref:`types`)." msgstr "" -#: ../../reference/simple_stmts.rst:122 msgid "" "Assignment of an object to a target list, optionally enclosed in parentheses " "or square brackets, is recursively defined as follows." msgstr "" -#: ../../reference/simple_stmts.rst:125 msgid "" "If the target list is a single target with no trailing comma, optionally in " "parentheses, the object is assigned to that target." msgstr "" -#: ../../reference/simple_stmts.rst:128 msgid "Else:" msgstr "" -#: ../../reference/simple_stmts.rst:130 msgid "" "If the target list contains one target prefixed with an asterisk, called a " "\"starred\" target: The object must be an iterable with at least as many " @@ -122,43 +107,36 @@ msgid "" "then assigned to the starred target (the list can be empty)." msgstr "" -#: ../../reference/simple_stmts.rst:138 msgid "" "Else: The object must be an iterable with the same number of items as there " "are targets in the target list, and the items are assigned, from left to " "right, to the corresponding targets." msgstr "" -#: ../../reference/simple_stmts.rst:142 msgid "" "Assignment of an object to a single target is recursively defined as follows." msgstr "" -#: ../../reference/simple_stmts.rst:144 msgid "If the target is an identifier (name):" msgstr "" -#: ../../reference/simple_stmts.rst:146 msgid "" "If the name does not occur in a :keyword:`global` or :keyword:`nonlocal` " "statement in the current code block: the name is bound to the object in the " "current local namespace." msgstr "" -#: ../../reference/simple_stmts.rst:150 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" -#: ../../reference/simple_stmts.rst:155 msgid "" "The name is rebound if it was already bound. This may cause the reference " "count for the object previously bound to the name to reach zero, causing the " "object to be deallocated and its destructor (if it has one) to be called." msgstr "" -#: ../../reference/simple_stmts.rst:161 msgid "" "If the target is an attribute reference: The primary expression in the " "reference is evaluated. It should yield an object with assignable " @@ -168,7 +146,6 @@ msgid "" "necessarily :exc:`AttributeError`)." msgstr "" -#: ../../reference/simple_stmts.rst:170 msgid "" "Note: If the object is a class instance and the attribute reference occurs " "on both sides of the assignment operator, the right-hand side expression, " @@ -180,7 +157,6 @@ msgid "" "side creates a new instance attribute as the target of the assignment::" msgstr "" -#: ../../reference/simple_stmts.rst:179 msgid "" "class Cls:\n" " x = 3 # class variable\n" @@ -188,13 +164,11 @@ msgid "" "inst.x = inst.x + 1 # writes inst.x as 4 leaving Cls.x as 3" msgstr "" -#: ../../reference/simple_stmts.rst:184 msgid "" "This description does not necessarily apply to descriptor attributes, such " "as properties created with :func:`property`." msgstr "" -#: ../../reference/simple_stmts.rst:191 msgid "" "If the target is a subscription: The primary expression in the reference is " "evaluated. It should yield either a mutable sequence object (such as a " @@ -202,18 +176,16 @@ msgid "" "expression is evaluated." msgstr "" -#: ../../reference/simple_stmts.rst:200 msgid "" "If the primary is a mutable sequence object (such as a list), the subscript " "must yield an integer. If it is negative, the sequence's length is added to " "it. The resulting value must be a nonnegative integer less than the " "sequence's length, and the sequence is asked to assign the assigned object " -"to its item with that index. If the index is out of " -"range, :exc:`IndexError` is raised (assignment to a subscripted sequence " -"cannot add new items to a list)." +"to its item with that index. If the index is out of range, :exc:" +"`IndexError` is raised (assignment to a subscripted sequence cannot add new " +"items to a list)." msgstr "" -#: ../../reference/simple_stmts.rst:211 msgid "" "If the primary is a mapping object (such as a dictionary), the subscript " "must have a type compatible with the mapping's key type, and the mapping is " @@ -223,13 +195,11 @@ msgid "" "value existed)." msgstr "" -#: ../../reference/simple_stmts.rst:217 msgid "" "For user-defined objects, the :meth:`~object.__setitem__` method is called " "with appropriate arguments." msgstr "" -#: ../../reference/simple_stmts.rst:222 msgid "" "If the target is a slicing: The primary expression in the reference is " "evaluated. It should yield a mutable sequence object (such as a list). The " @@ -244,14 +214,12 @@ msgid "" "length of the target sequence, if the target sequence allows it." msgstr "" -#: ../../reference/simple_stmts.rst:236 msgid "" "In the current implementation, the syntax for targets is taken to be the " "same as for expressions, and invalid syntax is rejected during the code " "generation phase, causing less detailed error messages." msgstr "" -#: ../../reference/simple_stmts.rst:240 msgid "" "Although the definition of assignment implies that overlaps between the left-" "hand side and the right-hand side are 'simultaneous' (for example ``a, b = " @@ -260,7 +228,6 @@ msgid "" "instance, the following program prints ``[0, 2]``::" msgstr "" -#: ../../reference/simple_stmts.rst:246 msgid "" "x = [0, 1]\n" "i = 0\n" @@ -268,31 +235,25 @@ msgid "" "print(x)" msgstr "" -#: ../../reference/simple_stmts.rst:254 msgid ":pep:`3132` - Extended Iterable Unpacking" msgstr "" -#: ../../reference/simple_stmts.rst:255 msgid "The specification for the ``*target`` feature." msgstr "" -#: ../../reference/simple_stmts.rst:261 msgid "Augmented assignment statements" msgstr "" -#: ../../reference/simple_stmts.rst:279 msgid "" "Augmented assignment is the combination, in a single statement, of a binary " "operation and an assignment statement:" msgstr "" -#: ../../reference/simple_stmts.rst:288 msgid "" "(See section :ref:`primaries` for the syntax definitions of the last three " "symbols.)" msgstr "" -#: ../../reference/simple_stmts.rst:291 msgid "" "An augmented assignment evaluates the target (which, unlike normal " "assignment statements, cannot be an unpacking) and the expression list, " @@ -301,7 +262,6 @@ msgid "" "evaluated once." msgstr "" -#: ../../reference/simple_stmts.rst:296 msgid "" "An augmented assignment statement like ``x += 1`` can be rewritten as ``x = " "x + 1`` to achieve a similar, but not exactly equal effect. In the augmented " @@ -310,7 +270,6 @@ msgid "" "object and assigning that to the target, the old object is modified instead." msgstr "" -#: ../../reference/simple_stmts.rst:302 msgid "" "Unlike normal assignments, augmented assignments evaluate the left-hand side " "*before* evaluating the right-hand side. For example, ``a[i] += f(x)`` " @@ -318,7 +277,6 @@ msgid "" "addition, and lastly, it writes the result back to ``a[i]``." msgstr "" -#: ../../reference/simple_stmts.rst:307 msgid "" "With the exception of assigning to tuples and multiple targets in a single " "statement, the assignment done by augmented assignment statements is handled " @@ -327,31 +285,26 @@ msgid "" "assignment is the same as the normal binary operations." msgstr "" -#: ../../reference/simple_stmts.rst:313 msgid "" "For targets which are attribute references, the same :ref:`caveat about " "class and instance attributes ` applies as for regular " "assignments." msgstr "" -#: ../../reference/simple_stmts.rst:320 msgid "Annotated assignment statements" msgstr "" -#: ../../reference/simple_stmts.rst:327 msgid "" ":term:`Annotation ` assignment is the combination, in a " "single statement, of a variable or attribute annotation and an optional " "assignment statement:" msgstr "" -#: ../../reference/simple_stmts.rst:334 msgid "" "The difference from normal :ref:`assignment` is that only a single target is " "allowed." msgstr "" -#: ../../reference/simple_stmts.rst:336 msgid "" "The assignment target is considered \"simple\" if it consists of a single " "name that is not enclosed in parentheses. For simple assignment targets, if " @@ -361,156 +314,131 @@ msgid "" "or module, or using the facilities in the :mod:`annotationlib` module." msgstr "" -#: ../../reference/simple_stmts.rst:345 msgid "" "If the assignment target is not simple (an attribute, subscript node, or " "parenthesized name), the annotation is never evaluated." msgstr "" -#: ../../reference/simple_stmts.rst:348 msgid "" "If a name is annotated in a function scope, then this name is local for that " "scope. Annotations are never evaluated and stored in function scopes." msgstr "" -#: ../../reference/simple_stmts.rst:351 msgid "" "If the right hand side is present, an annotated assignment performs the " "actual assignment as if there was no annotation present. If the right hand " "side is not present for an expression target, then the interpreter evaluates " -"the target except for the last :meth:`~object.__setitem__` " -"or :meth:`~object.__setattr__` call." +"the target except for the last :meth:`~object.__setitem__` or :meth:`~object." +"__setattr__` call." msgstr "" -#: ../../reference/simple_stmts.rst:359 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr "" -#: ../../reference/simple_stmts.rst:360 msgid "" "The proposal that added syntax for annotating the types of variables " "(including class variables and instance variables), instead of expressing " "them through comments." msgstr "" -#: ../../reference/simple_stmts.rst:364 msgid ":pep:`484` - Type hints" msgstr "" -#: ../../reference/simple_stmts.rst:365 msgid "" "The proposal that added the :mod:`typing` module to provide a standard " "syntax for type annotations that can be used in static analysis tools and " "IDEs." msgstr "" -#: ../../reference/simple_stmts.rst:369 msgid "" "Now annotated assignments allow the same expressions in the right hand side " "as regular assignments. Previously, some expressions (like un-parenthesized " "tuple expressions) caused a syntax error." msgstr "" -#: ../../reference/simple_stmts.rst:374 msgid "" "Annotations are now lazily evaluated in a separate :ref:`annotation scope " "`. If the assignment target is not simple, annotations " "are never evaluated." msgstr "" -#: ../../reference/simple_stmts.rst:382 msgid "The :keyword:`!assert` statement" msgstr "" -#: ../../reference/simple_stmts.rst:389 msgid "" "Assert statements are a convenient way to insert debugging assertions into a " "program:" msgstr "" -#: ../../reference/simple_stmts.rst:395 msgid "The simple form, ``assert expression``, is equivalent to ::" msgstr "" -#: ../../reference/simple_stmts.rst:397 msgid "" "if __debug__:\n" " if not expression: raise AssertionError" msgstr "" -#: ../../reference/simple_stmts.rst:400 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" -#: ../../reference/simple_stmts.rst:402 msgid "" "if __debug__:\n" " if not expression1: raise AssertionError(expression2)" msgstr "" -#: ../../reference/simple_stmts.rst:409 msgid "" "These equivalences assume that :const:`__debug__` and :exc:`AssertionError` " "refer to the built-in variables with those names. In the current " "implementation, the built-in variable ``__debug__`` is ``True`` under normal " "circumstances, ``False`` when optimization is requested (command line " -"option :option:`-O`). The current code generator emits no code for " -"an :keyword:`assert` statement when optimization is requested at compile " -"time. Note that it is unnecessary to include the source code for the " -"expression that failed in the error message; it will be displayed as part of " -"the stack trace." +"option :option:`-O`). The current code generator emits no code for an :" +"keyword:`assert` statement when optimization is requested at compile time. " +"Note that it is unnecessary to include the source code for the expression " +"that failed in the error message; it will be displayed as part of the stack " +"trace." msgstr "" -#: ../../reference/simple_stmts.rst:418 msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" -#: ../../reference/simple_stmts.rst:425 msgid "The :keyword:`!pass` statement" msgstr "" -#: ../../reference/simple_stmts.rst:435 msgid "" ":keyword:`pass` is a null operation --- when it is executed, nothing " "happens. It is useful as a placeholder when a statement is required " "syntactically, but no code needs to be executed, for example::" msgstr "" -#: ../../reference/simple_stmts.rst:439 msgid "" "def f(arg): pass # a function that does nothing (yet)\n" "\n" "class C: pass # a class with no methods (yet)" msgstr "" -#: ../../reference/simple_stmts.rst:447 msgid "The :keyword:`!del` statement" msgstr "" -#: ../../reference/simple_stmts.rst:457 msgid "" "Deletion is recursively defined very similar to the way assignment is " "defined. Rather than spelling it out in full details, here are some hints." msgstr "" -#: ../../reference/simple_stmts.rst:460 msgid "" "Deletion of a target list recursively deletes each target, from left to " "right." msgstr "" -#: ../../reference/simple_stmts.rst:466 msgid "" "Deletion of a name removes the binding of that name from the local or global " "namespace, depending on whether the name occurs in a :keyword:`global` " -"statement in the same code block. If the name is unbound, " -"a :exc:`NameError` exception will be raised." +"statement in the same code block. If the name is unbound, a :exc:" +"`NameError` exception will be raised." msgstr "" -#: ../../reference/simple_stmts.rst:473 msgid "" "Deletion of attribute references, subscriptions and slicings is passed to " "the primary object involved; deletion of a slicing is in general equivalent " @@ -518,63 +446,52 @@ msgid "" "determined by the sliced object)." msgstr "" -#: ../../reference/simple_stmts.rst:478 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block." msgstr "" -#: ../../reference/simple_stmts.rst:486 msgid "The :keyword:`!return` statement" msgstr "" -#: ../../reference/simple_stmts.rst:496 msgid "" ":keyword:`return` may only occur syntactically nested in a function " "definition, not within a nested class definition." msgstr "" -#: ../../reference/simple_stmts.rst:499 msgid "" "If an expression list is present, it is evaluated, else ``None`` is " "substituted." msgstr "" -#: ../../reference/simple_stmts.rst:501 msgid "" ":keyword:`return` leaves the current function call with the expression list " "(or ``None``) as return value." msgstr "" -#: ../../reference/simple_stmts.rst:506 msgid "" "When :keyword:`return` passes control out of a :keyword:`try` statement with " "a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " "before really leaving the function." msgstr "" -#: ../../reference/simple_stmts.rst:510 msgid "" "In a generator function, the :keyword:`return` statement indicates that the " "generator is done and will cause :exc:`StopIteration` to be raised. The " -"returned value (if any) is used as an argument to " -"construct :exc:`StopIteration` and becomes the :attr:`StopIteration.value` " -"attribute." +"returned value (if any) is used as an argument to construct :exc:" +"`StopIteration` and becomes the :attr:`StopIteration.value` attribute." msgstr "" -#: ../../reference/simple_stmts.rst:515 msgid "" "In an asynchronous generator function, an empty :keyword:`return` statement " -"indicates that the asynchronous generator is done and will " -"cause :exc:`StopAsyncIteration` to be raised. A non-empty :keyword:`!" -"return` statement is a syntax error in an asynchronous generator function." +"indicates that the asynchronous generator is done and will cause :exc:" +"`StopAsyncIteration` to be raised. A non-empty :keyword:`!return` statement " +"is a syntax error in an asynchronous generator function." msgstr "" -#: ../../reference/simple_stmts.rst:523 msgid "The :keyword:`!yield` statement" msgstr "" -#: ../../reference/simple_stmts.rst:535 msgid "" "A :keyword:`yield` statement is semantically equivalent to a :ref:`yield " "expression `. The ``yield`` statement can be used to omit the " @@ -582,42 +499,35 @@ msgid "" "expression statement. For example, the yield statements ::" msgstr "" -#: ../../reference/simple_stmts.rst:540 msgid "" "yield \n" "yield from " msgstr "" -#: ../../reference/simple_stmts.rst:543 msgid "are equivalent to the yield expression statements ::" msgstr "" -#: ../../reference/simple_stmts.rst:545 msgid "" "(yield )\n" "(yield from )" msgstr "" -#: ../../reference/simple_stmts.rst:548 msgid "" -"Yield expressions and statements are only used when defining " -"a :term:`generator` function, and are only used in the body of the generator " +"Yield expressions and statements are only used when defining a :term:" +"`generator` function, and are only used in the body of the generator " "function. Using :keyword:`yield` in a function definition is sufficient to " "cause that definition to create a generator function instead of a normal " "function." msgstr "" -#: ../../reference/simple_stmts.rst:553 msgid "" -"For full details of :keyword:`yield` semantics, refer to " -"the :ref:`yieldexpr` section." +"For full details of :keyword:`yield` semantics, refer to the :ref:" +"`yieldexpr` section." msgstr "" -#: ../../reference/simple_stmts.rst:559 msgid "The :keyword:`!raise` statement" msgstr "" -#: ../../reference/simple_stmts.rst:570 msgid "" "If no expressions are present, :keyword:`raise` re-raises the exception that " "is currently being handled, which is also known as the *active exception*. " @@ -625,21 +535,18 @@ msgid "" "exception is raised indicating that this is an error." msgstr "" -#: ../../reference/simple_stmts.rst:575 msgid "" "Otherwise, :keyword:`raise` evaluates the first expression as the exception " -"object. It must be either a subclass or an instance " -"of :class:`BaseException`. If it is a class, the exception instance will be " -"obtained when needed by instantiating the class with no arguments." +"object. It must be either a subclass or an instance of :class:" +"`BaseException`. If it is a class, the exception instance will be obtained " +"when needed by instantiating the class with no arguments." msgstr "" -#: ../../reference/simple_stmts.rst:580 msgid "" -"The :dfn:`type` of the exception is the exception instance's class, " -"the :dfn:`value` is the instance itself." +"The :dfn:`type` of the exception is the exception instance's class, the :dfn:" +"`value` is the instance itself." msgstr "" -#: ../../reference/simple_stmts.rst:585 msgid "" "A traceback object is normally created automatically when an exception is " "raised and attached to it as the :attr:`~BaseException.__traceback__` " @@ -649,11 +556,9 @@ msgid "" "argument), like so::" msgstr "" -#: ../../reference/simple_stmts.rst:591 msgid "raise Exception(\"foo occurred\").with_traceback(tracebackobj)" msgstr "" -#: ../../reference/simple_stmts.rst:597 msgid "" "The ``from`` clause is used for exception chaining: if given, the second " "*expression* must be another exception class or instance. If the second " @@ -665,7 +570,6 @@ msgid "" "exception is not handled, both exceptions will be printed:" msgstr "" -#: ../../reference/simple_stmts.rst:606 msgid "" ">>> try:\n" "... print(1 / 0)\n" @@ -686,16 +590,14 @@ msgid "" "RuntimeError: Something bad happened" msgstr "" -#: ../../reference/simple_stmts.rst:626 msgid "" "A similar mechanism works implicitly if a new exception is raised when an " -"exception is already being handled. An exception may be handled when " -"an :keyword:`except` or :keyword:`finally` clause, or a :keyword:`with` " +"exception is already being handled. An exception may be handled when an :" +"keyword:`except` or :keyword:`finally` clause, or a :keyword:`with` " "statement, is used. The previous exception is then attached as the new " "exception's :attr:`~BaseException.__context__` attribute:" msgstr "" -#: ../../reference/simple_stmts.rst:632 msgid "" ">>> try:\n" "... print(1 / 0)\n" @@ -716,13 +618,11 @@ msgid "" "RuntimeError: Something bad happened" msgstr "" -#: ../../reference/simple_stmts.rst:652 msgid "" "Exception chaining can be explicitly suppressed by specifying :const:`None` " "in the ``from`` clause:" msgstr "" -#: ../../reference/simple_stmts.rst:655 msgid "" ">>> try:\n" "... print(1 / 0)\n" @@ -734,24 +634,20 @@ msgid "" "RuntimeError: Something bad happened" msgstr "" -#: ../../reference/simple_stmts.rst:666 msgid "" -"Additional information on exceptions can be found in " -"section :ref:`exceptions`, and information about handling exceptions is in " -"section :ref:`try`." +"Additional information on exceptions can be found in section :ref:" +"`exceptions`, and information about handling exceptions is in section :ref:" +"`try`." msgstr "" -#: ../../reference/simple_stmts.rst:669 msgid ":const:`None` is now permitted as ``Y`` in ``raise X from Y``." msgstr "" -#: ../../reference/simple_stmts.rst:672 msgid "" "Added the :attr:`~BaseException.__suppress_context__` attribute to suppress " "automatic display of the exception context." msgstr "" -#: ../../reference/simple_stmts.rst:675 msgid "" "If the traceback of the active exception is modified in an :keyword:`except` " "clause, a subsequent ``raise`` statement re-raises the exception with the " @@ -759,41 +655,34 @@ msgid "" "traceback it had when it was caught." msgstr "" -#: ../../reference/simple_stmts.rst:684 msgid "The :keyword:`!break` statement" msgstr "" -#: ../../reference/simple_stmts.rst:695 msgid "" -":keyword:`break` may only occur syntactically nested in a :keyword:`for` " -"or :keyword:`while` loop, but not nested in a function or class definition " +":keyword:`break` may only occur syntactically nested in a :keyword:`for` or :" +"keyword:`while` loop, but not nested in a function or class definition " "within that loop." msgstr "" -#: ../../reference/simple_stmts.rst:702 msgid "" "It terminates the nearest enclosing loop, skipping the optional :keyword:`!" "else` clause if the loop has one." msgstr "" -#: ../../reference/simple_stmts.rst:705 msgid "" "If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " "target keeps its current value." msgstr "" -#: ../../reference/simple_stmts.rst:710 msgid "" "When :keyword:`break` passes control out of a :keyword:`try` statement with " "a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " "before really leaving the loop." msgstr "" -#: ../../reference/simple_stmts.rst:718 msgid "The :keyword:`!continue` statement" msgstr "" -#: ../../reference/simple_stmts.rst:730 msgid "" ":keyword:`continue` may only occur syntactically nested in a :keyword:`for` " "or :keyword:`while` loop, but not nested in a function or class definition " @@ -801,41 +690,34 @@ msgid "" "loop." msgstr "" -#: ../../reference/simple_stmts.rst:734 msgid "" "When :keyword:`continue` passes control out of a :keyword:`try` statement " "with a :keyword:`finally` clause, that :keyword:`!finally` clause is " "executed before really starting the next loop cycle." msgstr "" -#: ../../reference/simple_stmts.rst:743 msgid "The :keyword:`!import` statement" msgstr "" -#: ../../reference/simple_stmts.rst:764 msgid "" "The basic import statement (no :keyword:`from` clause) is executed in two " "steps:" msgstr "" -#: ../../reference/simple_stmts.rst:767 msgid "find a module, loading and initializing it if necessary" msgstr "" -#: ../../reference/simple_stmts.rst:768 msgid "" -"define a name or names in the local namespace for the scope where " -"the :keyword:`import` statement occurs." +"define a name or names in the local namespace for the scope where the :" +"keyword:`import` statement occurs." msgstr "" -#: ../../reference/simple_stmts.rst:771 msgid "" "When the statement contains multiple clauses (separated by commas) the two " "steps are carried out separately for each clause, just as though the clauses " "had been separated out into individual import statements." msgstr "" -#: ../../reference/simple_stmts.rst:776 msgid "" "The details of the first step, finding and loading modules, are described in " "greater detail in the section on the :ref:`import system `, " @@ -846,26 +728,22 @@ msgid "" "module, which includes execution of the module's code." msgstr "" -#: ../../reference/simple_stmts.rst:784 msgid "" "If the requested module is retrieved successfully, it will be made available " "in the local namespace in one of three ways:" msgstr "" -#: ../../reference/simple_stmts.rst:789 msgid "" -"If the module name is followed by :keyword:`!as`, then the name " -"following :keyword:`!as` is bound directly to the imported module." +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." msgstr "" -#: ../../reference/simple_stmts.rst:791 msgid "" "If no other name is specified, and the module being imported is a top level " "module, the module's name is bound in the local namespace as a reference to " "the imported module" msgstr "" -#: ../../reference/simple_stmts.rst:794 msgid "" "If the module being imported is *not* a top level module, then the name of " "the top level package that contains the module is bound in the local " @@ -873,65 +751,54 @@ msgid "" "be accessed using its full qualified name rather than directly" msgstr "" -#: ../../reference/simple_stmts.rst:804 msgid "The :keyword:`from` form uses a slightly more complex process:" msgstr "" -#: ../../reference/simple_stmts.rst:806 msgid "" "find the module specified in the :keyword:`from` clause, loading and " "initializing it if necessary;" msgstr "" -#: ../../reference/simple_stmts.rst:808 msgid "for each of the identifiers specified in the :keyword:`import` clauses:" msgstr "" -#: ../../reference/simple_stmts.rst:810 msgid "check if the imported module has an attribute by that name" msgstr "" -#: ../../reference/simple_stmts.rst:811 msgid "" "if not, attempt to import a submodule with that name and then check the " "imported module again for that attribute" msgstr "" -#: ../../reference/simple_stmts.rst:813 msgid "if the attribute is not found, :exc:`ImportError` is raised." msgstr "" -#: ../../reference/simple_stmts.rst:814 msgid "" "otherwise, a reference to that value is stored in the local namespace, using " "the name in the :keyword:`!as` clause if it is present, otherwise using the " "attribute name" msgstr "" -#: ../../reference/simple_stmts.rst:818 msgid "Examples::" msgstr "Példák::" -#: ../../reference/simple_stmts.rst:820 msgid "" "import foo # foo imported and bound locally\n" "import foo.bar.baz # foo, foo.bar, and foo.bar.baz imported, foo " "bound locally\n" -"import foo.bar.baz as fbb # foo, foo.bar, and foo.bar.baz imported, " -"foo.bar.baz bound as fbb\n" -"from foo.bar import baz # foo, foo.bar, and foo.bar.baz imported, " -"foo.bar.baz bound as baz\n" +"import foo.bar.baz as fbb # foo, foo.bar, and foo.bar.baz imported, foo.bar." +"baz bound as fbb\n" +"from foo.bar import baz # foo, foo.bar, and foo.bar.baz imported, foo.bar." +"baz bound as baz\n" "from foo import attr # foo imported and foo.attr bound as attr" msgstr "" -#: ../../reference/simple_stmts.rst:828 msgid "" "If the list of identifiers is replaced by a star (``'*'``), all public names " "defined in the module are bound in the local namespace for the scope where " "the :keyword:`import` statement occurs." msgstr "" -#: ../../reference/simple_stmts.rst:834 msgid "" "The *public names* defined by a module are determined by checking the " "module's namespace for a variable named ``__all__``; if defined, it must be " @@ -944,14 +811,12 @@ msgid "" "API (such as library modules which were imported and used within the module)." msgstr "" -#: ../../reference/simple_stmts.rst:844 msgid "" "The wild card form of import --- ``from module import *`` --- is only " "allowed at the module level. Attempting to use it in class or function " "definitions will raise a :exc:`SyntaxError`." msgstr "" -#: ../../reference/simple_stmts.rst:851 msgid "" "When specifying what module to import you do not have to specify the " "absolute name of the module. When a module or package is contained within " @@ -968,31 +833,26 @@ msgid "" "the :ref:`relativeimports` section." msgstr "" -#: ../../reference/simple_stmts.rst:865 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." msgstr "" -#: ../../reference/simple_stmts.rst:868 msgid "" "Raises an :ref:`auditing event ` ``import`` with arguments " -"``module``, ``filename``, ``sys.path``, ``sys.meta_path``, " -"``sys.path_hooks``." +"``module``, ``filename``, ``sys.path``, ``sys.meta_path``, ``sys." +"path_hooks``." msgstr "" -#: ../../reference/simple_stmts.rst:873 msgid "Future statements" msgstr "" -#: ../../reference/simple_stmts.rst:879 msgid "" "A :dfn:`future statement` is a directive to the compiler that a particular " "module should be compiled using syntax or semantics that will be available " "in a specified future release of Python where the feature becomes standard." msgstr "" -#: ../../reference/simple_stmts.rst:883 msgid "" "The future statement is intended to ease migration to future versions of " "Python that introduce incompatible changes to the language. It allows use " @@ -1000,35 +860,28 @@ msgid "" "feature becomes standard." msgstr "" -#: ../../reference/simple_stmts.rst:895 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" msgstr "" -#: ../../reference/simple_stmts.rst:898 msgid "the module docstring (if any)," msgstr "" -#: ../../reference/simple_stmts.rst:899 msgid "comments," msgstr "" -#: ../../reference/simple_stmts.rst:900 msgid "blank lines, and" msgstr "" -#: ../../reference/simple_stmts.rst:901 msgid "other future statements." msgstr "" -#: ../../reference/simple_stmts.rst:903 msgid "" "The only feature that requires using the future statement is ``annotations`` " "(see :pep:`563`)." msgstr "" -#: ../../reference/simple_stmts.rst:906 msgid "" "All historical features enabled by the future statement are still recognized " "by Python 3. The list includes ``absolute_import``, ``division``, " @@ -1038,7 +891,6 @@ msgid "" "compatibility." msgstr "" -#: ../../reference/simple_stmts.rst:913 msgid "" "A future statement is recognized and treated specially at compile time: " "Changes to the semantics of core constructs are often implemented by " @@ -1048,50 +900,42 @@ msgid "" "cannot be pushed off until runtime." msgstr "" -#: ../../reference/simple_stmts.rst:920 msgid "" "For any given release, the compiler knows which feature names have been " "defined, and raises a compile-time error if a future statement contains a " "feature not known to it." msgstr "" -#: ../../reference/simple_stmts.rst:924 msgid "" "The direct runtime semantics are the same as for any import statement: there " "is a standard module :mod:`__future__`, described later, and it will be " "imported in the usual way at the time the future statement is executed." msgstr "" -#: ../../reference/simple_stmts.rst:928 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." msgstr "" -#: ../../reference/simple_stmts.rst:931 msgid "Note that there is nothing special about the statement::" msgstr "" -#: ../../reference/simple_stmts.rst:933 msgid "import __future__ [as name]" msgstr "" -#: ../../reference/simple_stmts.rst:935 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." msgstr "" -#: ../../reference/simple_stmts.rst:938 msgid "" -"Code compiled by calls to the built-in functions :func:`exec` " -"and :func:`compile` that occur in a module :mod:`!M` containing a future " -"statement will, by default, use the new syntax or semantics associated with " -"the future statement. This can be controlled by optional arguments " -"to :func:`compile` --- see the documentation of that function for details." +"Code compiled by calls to the built-in functions :func:`exec` and :func:" +"`compile` that occur in a module :mod:`!M` containing a future statement " +"will, by default, use the new syntax or semantics associated with the future " +"statement. This can be controlled by optional arguments to :func:`compile` " +"--- see the documentation of that function for details." msgstr "" -#: ../../reference/simple_stmts.rst:944 msgid "" "A future statement typed at an interactive interpreter prompt will take " "effect for the rest of the interpreter session. If an interpreter is " @@ -1100,19 +944,15 @@ msgid "" "interactive session started after the script is executed." msgstr "" -#: ../../reference/simple_stmts.rst:952 msgid ":pep:`236` - Back to the __future__" msgstr "" -#: ../../reference/simple_stmts.rst:953 msgid "The original proposal for the __future__ mechanism." msgstr "" -#: ../../reference/simple_stmts.rst:959 msgid "The :keyword:`!global` statement" msgstr "" -#: ../../reference/simple_stmts.rst:969 msgid "" "The :keyword:`global` statement causes the listed identifiers to be " "interpreted as globals. It would be impossible to assign to a global " @@ -1120,14 +960,12 @@ msgid "" "globals without being declared global." msgstr "" -#: ../../reference/simple_stmts.rst:974 msgid "" "The :keyword:`global` statement applies to the entire scope of a function or " "class body. A :exc:`SyntaxError` is raised if a variable is used or assigned " "to prior to its global declaration in the scope." msgstr "" -#: ../../reference/simple_stmts.rst:983 msgid "" "**Programmer's note:** :keyword:`global` is a directive to the parser. It " "applies only to code parsed at the same time as the :keyword:`!global` " @@ -1135,15 +973,13 @@ msgid "" "string or code object supplied to the built-in :func:`exec` function does " "not affect the code block *containing* the function call, and code contained " "in such a string is unaffected by :keyword:`!global` statements in the code " -"containing the function call. The same applies to the :func:`eval` " -"and :func:`compile` functions." +"containing the function call. The same applies to the :func:`eval` and :" +"func:`compile` functions." msgstr "" -#: ../../reference/simple_stmts.rst:995 msgid "The :keyword:`!nonlocal` statement" msgstr "" -#: ../../reference/simple_stmts.rst:1003 msgid "" "When the definition of a function or class is nested (enclosed) within the " "definitions of other functions, its nonlocal scopes are the local scopes of " @@ -1151,569 +987,412 @@ msgid "" "identifiers to refer to names previously bound in nonlocal scopes. It allows " "encapsulated code to rebind such nonlocal identifiers. If a name is bound " "in more than one nonlocal scope, the nearest binding is used. If a name is " -"not bound in any nonlocal scope, or if there is no nonlocal scope, " -"a :exc:`SyntaxError` is raised." +"not bound in any nonlocal scope, or if there is no nonlocal scope, a :exc:" +"`SyntaxError` is raised." msgstr "" -#: ../../reference/simple_stmts.rst:1012 msgid "" "The :keyword:`nonlocal` statement applies to the entire scope of a function " "or class body. A :exc:`SyntaxError` is raised if a variable is used or " "assigned to prior to its nonlocal declaration in the scope." msgstr "" -#: ../../reference/simple_stmts.rst:1018 msgid ":pep:`3104` - Access to Names in Outer Scopes" msgstr "" -#: ../../reference/simple_stmts.rst:1019 msgid "The specification for the :keyword:`nonlocal` statement." msgstr "" -#: ../../reference/simple_stmts.rst:1021 msgid "" "**Programmer's note:** :keyword:`nonlocal` is a directive to the parser and " -"applies only to code parsed along with it. See the note for " -"the :keyword:`global` statement." +"applies only to code parsed along with it. See the note for the :keyword:" +"`global` statement." msgstr "" -#: ../../reference/simple_stmts.rst:1029 msgid "The :keyword:`!type` statement" msgstr "" -#: ../../reference/simple_stmts.rst:1036 msgid "" "The :keyword:`!type` statement declares a type alias, which is an instance " "of :class:`typing.TypeAliasType`." msgstr "" -#: ../../reference/simple_stmts.rst:1039 msgid "For example, the following statement creates a type alias::" msgstr "" -#: ../../reference/simple_stmts.rst:1041 msgid "type Point = tuple[float, float]" msgstr "" -#: ../../reference/simple_stmts.rst:1043 msgid "This code is roughly equivalent to::" msgstr "" -#: ../../reference/simple_stmts.rst:1045 msgid "" "annotation-def VALUE_OF_Point():\n" " return tuple[float, float]\n" "Point = typing.TypeAliasType(\"Point\", VALUE_OF_Point())" msgstr "" -#: ../../reference/simple_stmts.rst:1049 msgid "" "``annotation-def`` indicates an :ref:`annotation scope `, " "which behaves mostly like a function, but with several small differences." msgstr "" -#: ../../reference/simple_stmts.rst:1052 msgid "" "The value of the type alias is evaluated in the annotation scope. It is not " "evaluated when the type alias is created, but only when the value is " -"accessed through the type alias's :attr:`!__value__` attribute " -"(see :ref:`lazy-evaluation`). This allows the type alias to refer to names " -"that are not yet defined." +"accessed through the type alias's :attr:`!__value__` attribute (see :ref:" +"`lazy-evaluation`). This allows the type alias to refer to names that are " +"not yet defined." msgstr "" -#: ../../reference/simple_stmts.rst:1058 msgid "" "Type aliases may be made generic by adding a :ref:`type parameter list ` after the name. See :ref:`generic-type-aliases` for more." msgstr "" -#: ../../reference/simple_stmts.rst:1061 msgid ":keyword:`!type` is a :ref:`soft keyword `." msgstr "" -#: ../../reference/simple_stmts.rst:1067 msgid ":pep:`695` - Type Parameter Syntax" msgstr "" -#: ../../reference/simple_stmts.rst:1068 msgid "" "Introduced the :keyword:`!type` statement and syntax for generic classes and " "functions." msgstr "" -#: ../../reference/simple_stmts.rst:8 msgid "simple" msgstr "" -#: ../../reference/simple_stmts.rst:8 ../../reference/simple_stmts.rst:39 -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:263 -#: ../../reference/simple_stmts.rst:322 ../../reference/simple_stmts.rst:384 -#: ../../reference/simple_stmts.rst:427 ../../reference/simple_stmts.rst:449 -#: ../../reference/simple_stmts.rst:462 ../../reference/simple_stmts.rst:488 -#: ../../reference/simple_stmts.rst:525 ../../reference/simple_stmts.rst:561 -#: ../../reference/simple_stmts.rst:686 ../../reference/simple_stmts.rst:720 -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:875 -#: ../../reference/simple_stmts.rst:961 ../../reference/simple_stmts.rst:997 -#: ../../reference/simple_stmts.rst:1031 msgid "statement" msgstr "" -#: ../../reference/simple_stmts.rst:39 ../../reference/simple_stmts.rst:42 msgid "expression" msgstr "" -#: ../../reference/simple_stmts.rst:39 ../../reference/simple_stmts.rst:42 -#: ../../reference/simple_stmts.rst:105 ../../reference/simple_stmts.rst:116 -#: ../../reference/simple_stmts.rst:196 ../../reference/simple_stmts.rst:449 msgid "list" msgstr "" -#: ../../reference/simple_stmts.rst:56 ../../reference/simple_stmts.rst:978 msgid "built-in function" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "repr" msgstr "" -#: ../../reference/simple_stmts.rst:56 ../../reference/simple_stmts.rst:75 -#: ../../reference/simple_stmts.rst:187 ../../reference/simple_stmts.rst:196 -#: ../../reference/simple_stmts.rst:207 ../../reference/simple_stmts.rst:583 msgid "object" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "None" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "string" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "conversion" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "output" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "standard" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "writing" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "values" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "procedure" msgstr "" -#: ../../reference/simple_stmts.rst:56 msgid "call" msgstr "" -#: ../../reference/simple_stmts.rst:75 msgid "= (equals)" msgstr "" -#: ../../reference/simple_stmts.rst:75 msgid "assignment statement" msgstr "" -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:116 -#: ../../reference/simple_stmts.rst:159 ../../reference/simple_stmts.rst:187 -#: ../../reference/simple_stmts.rst:220 ../../reference/simple_stmts.rst:263 -#: ../../reference/simple_stmts.rst:322 msgid "assignment" msgstr "" -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:745 -#: ../../reference/simple_stmts.rst:800 ../../reference/simple_stmts.rst:961 msgid "binding" msgstr "" -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:462 -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:800 -#: ../../reference/simple_stmts.rst:961 msgid "name" msgstr "" -#: ../../reference/simple_stmts.rst:75 msgid "rebinding" msgstr "" -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:187 msgid "mutable" msgstr "" -#: ../../reference/simple_stmts.rst:75 ../../reference/simple_stmts.rst:159 -#: ../../reference/simple_stmts.rst:471 msgid "attribute" msgstr "" -#: ../../reference/simple_stmts.rst:105 ../../reference/simple_stmts.rst:116 -#: ../../reference/simple_stmts.rst:449 ../../reference/simple_stmts.rst:699 msgid "target" msgstr "" -#: ../../reference/simple_stmts.rst:116 ../../reference/simple_stmts.rst:384 -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:961 -#: ../../reference/simple_stmts.rst:997 msgid ", (comma)" msgstr "" -#: ../../reference/simple_stmts.rst:116 msgid "in target list" msgstr "" -#: ../../reference/simple_stmts.rst:116 ../../reference/simple_stmts.rst:826 msgid "* (asterisk)" msgstr "" -#: ../../reference/simple_stmts.rst:116 msgid "in assignment target list" msgstr "" -#: ../../reference/simple_stmts.rst:116 msgid "[] (square brackets)" msgstr "" -#: ../../reference/simple_stmts.rst:116 msgid "() (parentheses)" msgstr "" -#: ../../reference/simple_stmts.rst:153 msgid "destructor" msgstr "" -#: ../../reference/simple_stmts.rst:187 msgid "subscription" msgstr "" -#: ../../reference/simple_stmts.rst:196 msgid "sequence" msgstr "" -#: ../../reference/simple_stmts.rst:207 msgid "mapping" msgstr "" -#: ../../reference/simple_stmts.rst:207 msgid "dictionary" msgstr "" -#: ../../reference/simple_stmts.rst:220 msgid "slicing" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "augmented" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "assignment, augmented" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "+=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "augmented assignment" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "-=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "*=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "/=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "%=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "&=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "^=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "|=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "**=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "//=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid ">>=" msgstr "" -#: ../../reference/simple_stmts.rst:263 msgid "<<=" msgstr "" -#: ../../reference/simple_stmts.rst:322 msgid "annotated" msgstr "" -#: ../../reference/simple_stmts.rst:322 msgid "assignment, annotated" msgstr "" -#: ../../reference/simple_stmts.rst:322 msgid ": (colon)" msgstr "" -#: ../../reference/simple_stmts.rst:322 msgid "annotated variable" msgstr "" -#: ../../reference/simple_stmts.rst:384 msgid "assert" msgstr "" -#: ../../reference/simple_stmts.rst:384 msgid "debugging" msgstr "" -#: ../../reference/simple_stmts.rst:384 msgid "assertions" msgstr "" -#: ../../reference/simple_stmts.rst:384 msgid "expression list" msgstr "" -#: ../../reference/simple_stmts.rst:405 msgid "__debug__" msgstr "" -#: ../../reference/simple_stmts.rst:405 ../../reference/simple_stmts.rst:525 -#: ../../reference/simple_stmts.rst:561 ../../reference/simple_stmts.rst:593 -#: ../../reference/simple_stmts.rst:745 msgid "exception" msgstr "" -#: ../../reference/simple_stmts.rst:405 msgid "AssertionError" msgstr "" -#: ../../reference/simple_stmts.rst:427 msgid "pass" msgstr "" -#: ../../reference/simple_stmts.rst:427 msgid "null" msgstr "" -#: ../../reference/simple_stmts.rst:427 msgid "operation" msgstr "" -#: ../../reference/simple_stmts.rst:449 msgid "del" msgstr "" -#: ../../reference/simple_stmts.rst:449 ../../reference/simple_stmts.rst:471 msgid "deletion" msgstr "" -#: ../../reference/simple_stmts.rst:462 ../../reference/simple_stmts.rst:961 msgid "global" msgstr "" -#: ../../reference/simple_stmts.rst:462 msgid "unbinding" msgstr "" -#: ../../reference/simple_stmts.rst:488 msgid "return" msgstr "" -#: ../../reference/simple_stmts.rst:488 ../../reference/simple_stmts.rst:525 msgid "function" msgstr "" -#: ../../reference/simple_stmts.rst:488 msgid "definition" msgstr "" -#: ../../reference/simple_stmts.rst:488 msgid "class" msgstr "" -#: ../../reference/simple_stmts.rst:504 ../../reference/simple_stmts.rst:699 -#: ../../reference/simple_stmts.rst:708 ../../reference/simple_stmts.rst:720 -#: ../../reference/simple_stmts.rst:745 msgid "keyword" msgstr "" -#: ../../reference/simple_stmts.rst:504 ../../reference/simple_stmts.rst:708 -#: ../../reference/simple_stmts.rst:720 msgid "finally" msgstr "" -#: ../../reference/simple_stmts.rst:525 msgid "yield" msgstr "" -#: ../../reference/simple_stmts.rst:525 msgid "generator" msgstr "" -#: ../../reference/simple_stmts.rst:525 msgid "iterator" msgstr "" -#: ../../reference/simple_stmts.rst:525 msgid "StopIteration" msgstr "" -#: ../../reference/simple_stmts.rst:561 msgid "raise" msgstr "" -#: ../../reference/simple_stmts.rst:561 msgid "raising" msgstr "" -#: ../../reference/simple_stmts.rst:561 msgid "__traceback__ (exception attribute)" msgstr "" -#: ../../reference/simple_stmts.rst:583 msgid "traceback" msgstr "" -#: ../../reference/simple_stmts.rst:593 msgid "chaining" msgstr "" -#: ../../reference/simple_stmts.rst:593 msgid "__cause__ (exception attribute)" msgstr "" -#: ../../reference/simple_stmts.rst:593 msgid "__context__ (exception attribute)" msgstr "" -#: ../../reference/simple_stmts.rst:686 msgid "break" msgstr "" -#: ../../reference/simple_stmts.rst:686 ../../reference/simple_stmts.rst:720 msgid "for" msgstr "" -#: ../../reference/simple_stmts.rst:686 ../../reference/simple_stmts.rst:720 msgid "while" msgstr "" -#: ../../reference/simple_stmts.rst:686 ../../reference/simple_stmts.rst:720 msgid "loop" msgstr "" -#: ../../reference/simple_stmts.rst:699 msgid "else" msgstr "" -#: ../../reference/simple_stmts.rst:699 msgid "loop control" msgstr "" -#: ../../reference/simple_stmts.rst:720 msgid "continue" msgstr "" -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:848 msgid "import" msgstr "" -#: ../../reference/simple_stmts.rst:745 msgid "module" msgstr "" -#: ../../reference/simple_stmts.rst:745 msgid "importing" msgstr "" -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:800 msgid "from" msgstr "" -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:787 msgid "as" msgstr "" -#: ../../reference/simple_stmts.rst:745 msgid "ImportError" msgstr "" -#: ../../reference/simple_stmts.rst:745 ../../reference/simple_stmts.rst:787 -#: ../../reference/simple_stmts.rst:800 ../../reference/simple_stmts.rst:826 msgid "import statement" msgstr "" -#: ../../reference/simple_stmts.rst:832 msgid "__all__ (optional module attribute)" msgstr "" -#: ../../reference/simple_stmts.rst:848 msgid "relative" msgstr "" -#: ../../reference/simple_stmts.rst:875 msgid "future" msgstr "" -#: ../../reference/simple_stmts.rst:875 msgid "__future__" msgstr "" -#: ../../reference/simple_stmts.rst:875 msgid "future statement" msgstr "" -#: ../../reference/simple_stmts.rst:961 ../../reference/simple_stmts.rst:997 msgid "identifier list" msgstr "" -#: ../../reference/simple_stmts.rst:978 msgid "exec" msgstr "" -#: ../../reference/simple_stmts.rst:978 msgid "eval" msgstr "" -#: ../../reference/simple_stmts.rst:978 msgid "compile" msgstr "" -#: ../../reference/simple_stmts.rst:997 msgid "nonlocal" msgstr "" -#: ../../reference/simple_stmts.rst:1031 msgid "type" msgstr "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index bb9d3fd..f85c06d 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../reference/toplevel_components.rst:6 msgid "Top-level components" msgstr "" -#: ../../reference/toplevel_components.rst:10 msgid "" "The Python interpreter can get its input from a number of sources: from a " "script passed to it as standard input or as program argument, typed in " @@ -30,29 +28,25 @@ msgid "" "syntax used in these cases." msgstr "" -#: ../../reference/toplevel_components.rst:19 msgid "Complete Python programs" msgstr "" -#: ../../reference/toplevel_components.rst:28 msgid "" "While a language specification need not prescribe how the language " "interpreter is invoked, it is useful to have a notion of a complete Python " "program. A complete Python program is executed in a minimally initialized " "environment: all built-in and standard modules are available, but none have " -"been initialized, except for :mod:`sys` (various system " -"services), :mod:`builtins` (built-in functions, exceptions and ``None``) " -"and :mod:`__main__`. The latter is used to provide the local and global " -"namespace for execution of the complete program." +"been initialized, except for :mod:`sys` (various system services), :mod:" +"`builtins` (built-in functions, exceptions and ``None``) and :mod:" +"`__main__`. The latter is used to provide the local and global namespace " +"for execution of the complete program." msgstr "" -#: ../../reference/toplevel_components.rst:36 msgid "" "The syntax for a complete Python program is that for file input, described " "in the next section." msgstr "" -#: ../../reference/toplevel_components.rst:43 msgid "" "The interpreter may also be invoked in interactive mode; in this case, it " "does not read and execute a complete program but reads and executes one " @@ -61,7 +55,6 @@ msgid "" "namespace of :mod:`__main__`." msgstr "" -#: ../../reference/toplevel_components.rst:55 msgid "" "A complete program can be passed to the interpreter in three forms: with " "the :option:`-c` *string* command line option, as a file passed as the first " @@ -70,109 +63,82 @@ msgid "" "executes the file as a complete program." msgstr "" -#: ../../reference/toplevel_components.rst:65 msgid "File input" msgstr "" -#: ../../reference/toplevel_components.rst:67 msgid "All input read from non-interactive files has the same form:" msgstr "" -#: ../../reference/toplevel_components.rst:74 msgid "This syntax is used in the following situations:" msgstr "" -#: ../../reference/toplevel_components.rst:76 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" -#: ../../reference/toplevel_components.rst:78 msgid "when parsing a module;" msgstr "" -#: ../../reference/toplevel_components.rst:80 msgid "when parsing a string passed to the :func:`exec` function;" msgstr "" -#: ../../reference/toplevel_components.rst:86 msgid "Interactive input" msgstr "" -#: ../../reference/toplevel_components.rst:88 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" -#: ../../reference/toplevel_components.rst:95 msgid "" "Note that a (top-level) compound statement must be followed by a blank line " "in interactive mode; this is needed to help the parser detect the end of the " "input." msgstr "" -#: ../../reference/toplevel_components.rst:102 msgid "Expression input" msgstr "" -#: ../../reference/toplevel_components.rst:107 msgid "" ":func:`eval` is used for expression input. It ignores leading whitespace. " "The string argument to :func:`eval` must have the following form:" msgstr "" -#: ../../reference/toplevel_components.rst:8 msgid "interpreter" msgstr "" -#: ../../reference/toplevel_components.rst:21 msgid "program" msgstr "" -#: ../../reference/toplevel_components.rst:23 -#: ../../reference/toplevel_components.rst:39 msgid "module" msgstr "" -#: ../../reference/toplevel_components.rst:23 msgid "sys" msgstr "" -#: ../../reference/toplevel_components.rst:23 -#: ../../reference/toplevel_components.rst:39 msgid "__main__" msgstr "" -#: ../../reference/toplevel_components.rst:23 msgid "builtins" msgstr "" -#: ../../reference/toplevel_components.rst:39 msgid "interactive mode" msgstr "" -#: ../../reference/toplevel_components.rst:49 msgid "UNIX" msgstr "" -#: ../../reference/toplevel_components.rst:49 msgid "Windows" msgstr "" -#: ../../reference/toplevel_components.rst:49 msgid "command line" msgstr "" -#: ../../reference/toplevel_components.rst:49 msgid "standard input" msgstr "" -#: ../../reference/toplevel_components.rst:104 msgid "input" msgstr "" -#: ../../reference/toplevel_components.rst:105 msgid "built-in function" msgstr "" -#: ../../reference/toplevel_components.rst:105 msgid "eval" msgstr "" diff --git a/sphinx.po b/sphinx.po index 91f4741..3b9b242 100644 --- a/sphinx.po +++ b/sphinx.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,140 +22,110 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tools/templates/_docs_by_version.html:10 msgid "Stable" msgstr "" -#: ../../tools/templates/_docs_by_version.html:11 msgid "In development" msgstr "" -#: ../../tools/templates/customsourcelink.html:3 msgid "This page" msgstr "" -#: ../../tools/templates/customsourcelink.html:5 msgid "Report a bug" msgstr "" -#: ../../tools/templates/customsourcelink.html:8 msgid "Show source" msgstr "" -#: ../../tools/templates/download.html:2 -#: ../../tools/templates/indexsidebar.html:1 msgid "Download" msgstr "" -#: ../../tools/templates/download.html:30 msgid "Download Python %(dl_version)s documentation" msgstr "" -#: ../../tools/templates/download.html:32 msgid "Last updated on: %(last_updated)s." msgstr "" -#: ../../tools/templates/download.html:34 msgid "" "To download an archive containing all the documents for this version of\n" "Python in one of various formats, follow one of links in this table." msgstr "" -#: ../../tools/templates/download.html:39 msgid "Format" msgstr "" -#: ../../tools/templates/download.html:40 msgid "Packed as .zip" msgstr "" -#: ../../tools/templates/download.html:41 msgid "Packed as .tar.bz2" msgstr "" -#: ../../tools/templates/download.html:44 msgid "PDF" msgstr "" -#: ../../tools/templates/download.html:45 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:46 msgid "" "Download (ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:49 msgid "HTML" msgstr "" -#: ../../tools/templates/download.html:50 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:51 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:54 msgid "Plain text" msgstr "" -#: ../../tools/templates/download.html:55 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:56 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:59 msgid "Texinfo" msgstr "" -#: ../../tools/templates/download.html:60 msgid "" "Download " "(ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:61 msgid "" "Download (ca. %(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:64 msgid "EPUB" msgstr "" -#: ../../tools/templates/download.html:65 msgid "" -"Download (ca. %" -"(download_size)s MiB)" +"Download (ca. " +"%(download_size)s MiB)" msgstr "" -#: ../../tools/templates/download.html:70 msgid "These archives contain all the content in the documentation." msgstr "" -#: ../../tools/templates/download.html:73 msgid "Unpacking" msgstr "" -#: ../../tools/templates/download.html:75 msgid "" "Unix users should download the .tar.bz2 archives; these are bzipped tar\n" "archives and can be handled in the usual way using tar and the bzip2\n" @@ -166,343 +136,261 @@ msgid "" "best compression and fastest download times." msgstr "" -#: ../../tools/templates/download.html:81 msgid "" "Windows users can use the ZIP archives since those are customary on that\n" "platform. These are created on Unix using the Info-ZIP zip program." msgstr "" -#: ../../tools/templates/download.html:85 msgid "Problems" msgstr "" -#: ../../tools/templates/download.html:87 msgid "" "If you have comments or suggestions for the Python documentation, please " "send\n" "email to docs@python.org." msgstr "" -#: ../../tools/templates/dummy.html:6 msgid "Availability" msgstr "" -#: ../../tools/templates/dummy.html:10 msgid "Part of the" msgstr "" -#: ../../tools/templates/dummy.html:11 msgid "Limited API" msgstr "" -#: ../../tools/templates/dummy.html:12 msgid "Stable ABI" msgstr "" -#: ../../tools/templates/dummy.html:13 msgid "(as an opaque struct)" msgstr "" -#: ../../tools/templates/dummy.html:14 msgid "(including all members)" msgstr "" -#: ../../tools/templates/dummy.html:15 msgid "since version %s" msgstr "" -#: ../../tools/templates/dummy.html:16 msgid "(Only some members are part of the stable ABI.)" msgstr "" -#: ../../tools/templates/dummy.html:17 msgid "This is" msgstr "" -#: ../../tools/templates/dummy.html:18 msgid "Unstable API" msgstr "" -#: ../../tools/templates/dummy.html:19 msgid ". It may change without warning in minor releases." msgstr "" -#: ../../tools/templates/dummy.html:20 msgid "Return value: Always NULL." msgstr "" -#: ../../tools/templates/dummy.html:21 msgid "Return value: New reference." msgstr "" -#: ../../tools/templates/dummy.html:22 msgid "Return value: Borrowed reference." msgstr "" -#: ../../tools/templates/dummy.html:26 msgid "CPython implementation detail:" msgstr "" -#: ../../tools/templates/dummy.html:30 msgid "" "Deprecated since version {deprecated}, will be removed in version {removed}" msgstr "" -#: ../../tools/templates/dummy.html:31 msgid "Deprecated since version {deprecated}, removed in version {removed}" msgstr "" -#: ../../tools/templates/dummy.html:35 msgid "in development" msgstr "" -#: ../../tools/templates/dummy.html:36 msgid "pre-release" msgstr "" -#: ../../tools/templates/dummy.html:37 msgid "stable" msgstr "" -#: ../../tools/templates/dummy.html:38 msgid "security-fixes" msgstr "" -#: ../../tools/templates/dummy.html:39 msgid "EOL" msgstr "" -#: ../../tools/templates/indexcontent.html:21 msgid "Welcome! This is the official documentation for Python %(release)s." msgstr "" -#: ../../tools/templates/indexcontent.html:23 msgid "Documentation sections:" msgstr "" -#: ../../tools/templates/indexcontent.html:26 msgid "What's new in Python %(version)s?" msgstr "" -#: ../../tools/templates/indexcontent.html:27 msgid "" "Or all \"What's new\" documents since Python " "2.0" msgstr "" -#: ../../tools/templates/indexcontent.html:28 msgid "Tutorial" msgstr "" -#: ../../tools/templates/indexcontent.html:29 msgid "Start here: a tour of Python's syntax and features" msgstr "" -#: ../../tools/templates/indexcontent.html:30 msgid "Library reference" msgstr "" -#: ../../tools/templates/indexcontent.html:31 msgid "Standard library and builtins" msgstr "" -#: ../../tools/templates/indexcontent.html:32 msgid "Language reference" msgstr "" -#: ../../tools/templates/indexcontent.html:33 msgid "Syntax and language elements" msgstr "" -#: ../../tools/templates/indexcontent.html:34 msgid "Python setup and usage" msgstr "" -#: ../../tools/templates/indexcontent.html:35 msgid "How to install, configure, and use Python" msgstr "" -#: ../../tools/templates/indexcontent.html:36 msgid "Python HOWTOs" msgstr "" -#: ../../tools/templates/indexcontent.html:37 msgid "In-depth topic manuals" msgstr "" -#: ../../tools/templates/indexcontent.html:39 msgid "Installing Python modules" msgstr "" -#: ../../tools/templates/indexcontent.html:40 msgid "Third-party modules and PyPI.org" msgstr "" -#: ../../tools/templates/indexcontent.html:41 msgid "Distributing Python modules" msgstr "" -#: ../../tools/templates/indexcontent.html:42 msgid "Publishing modules for use by other people" msgstr "" -#: ../../tools/templates/indexcontent.html:43 msgid "Extending and embedding" msgstr "" -#: ../../tools/templates/indexcontent.html:44 msgid "For C/C++ programmers" msgstr "" -#: ../../tools/templates/indexcontent.html:45 msgid "Python's C API" msgstr "" -#: ../../tools/templates/indexcontent.html:46 msgid "C API reference" msgstr "" -#: ../../tools/templates/indexcontent.html:47 msgid "FAQs" msgstr "" -#: ../../tools/templates/indexcontent.html:48 msgid "Frequently asked questions (with answers!)" msgstr "" -#: ../../tools/templates/indexcontent.html:49 msgid "Deprecations" msgstr "" -#: ../../tools/templates/indexcontent.html:50 msgid "Deprecated functionality" msgstr "" -#: ../../tools/templates/indexcontent.html:54 msgid "Indices, glossary, and search:" msgstr "" -#: ../../tools/templates/indexcontent.html:57 msgid "Global module index" msgstr "" -#: ../../tools/templates/indexcontent.html:58 msgid "All modules and libraries" msgstr "" -#: ../../tools/templates/indexcontent.html:59 msgid "General index" msgstr "" -#: ../../tools/templates/indexcontent.html:60 msgid "All functions, classes, and terms" msgstr "" -#: ../../tools/templates/indexcontent.html:61 msgid "Glossary" msgstr "Szójegyzék" -#: ../../tools/templates/indexcontent.html:62 msgid "Terms explained" msgstr "" -#: ../../tools/templates/indexcontent.html:64 msgid "Search page" msgstr "" -#: ../../tools/templates/indexcontent.html:65 msgid "Search this documentation" msgstr "" -#: ../../tools/templates/indexcontent.html:66 msgid "Complete table of contents" msgstr "" -#: ../../tools/templates/indexcontent.html:67 msgid "Lists all sections and subsections" msgstr "" -#: ../../tools/templates/indexcontent.html:71 msgid "Project information:" msgstr "" -#: ../../tools/templates/indexcontent.html:74 msgid "Reporting issues" msgstr "" -#: ../../tools/templates/indexcontent.html:75 msgid "Contributing to docs" msgstr "" -#: ../../tools/templates/indexcontent.html:76 msgid "Download the documentation" msgstr "" -#: ../../tools/templates/indexcontent.html:78 msgid "History and license of Python" msgstr "" -#: ../../tools/templates/indexcontent.html:79 msgid "Copyright" msgstr "" -#: ../../tools/templates/indexcontent.html:80 msgid "About the documentation" msgstr "" -#: ../../tools/templates/indexsidebar.html:2 msgid "Download these documents" msgstr "" -#: ../../tools/templates/indexsidebar.html:3 msgid "Docs by version" msgstr "" -#: ../../tools/templates/indexsidebar.html:7 msgid "All versions" msgstr "" -#: ../../tools/templates/indexsidebar.html:9 msgid "Other resources" msgstr "" -#: ../../tools/templates/indexsidebar.html:12 msgid "PEP index" msgstr "" -#: ../../tools/templates/indexsidebar.html:13 msgid "Beginner's guide" msgstr "" -#: ../../tools/templates/indexsidebar.html:14 msgid "Book list" msgstr "" -#: ../../tools/templates/indexsidebar.html:15 msgid "Audio/visual talks" msgstr "" -#: ../../tools/templates/indexsidebar.html:16 msgid "Python developer’s guide" msgstr "" -#: ../../tools/templates/layout.html:6 msgid "" "This document is for an old version of Python that is no longer supported.\n" " You should upgrade, and read the" msgstr "" -#: ../../tools/templates/layout.html:8 msgid "Python documentation for the current stable release" msgstr "" -#: ../../tools/templates/layout.html:14 msgid "" -"This is a deploy preview created from a pull request.\n" +"This is a deploy preview created from a pull request.\n" " For authoritative documentation, see" msgstr "" -#: ../../tools/templates/layout.html:16 msgid "the current stable release" msgstr "" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 6120a48..be580f1 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,87 +22,74 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/appendix.rst:5 msgid "Appendix" msgstr "Függelék" -#: ../../tutorial/appendix.rst:11 msgid "Interactive Mode" msgstr "Interaktív (párbeszédes) mód" -#: ../../tutorial/appendix.rst:13 msgid "" "There are two variants of the interactive :term:`REPL`. The classic basic " "interpreter is supported on all platforms with minimal line control " "capabilities." msgstr "" -#: ../../tutorial/appendix.rst:17 msgid "" "On Windows, or Unix-like systems with :mod:`curses` support, a new " -"interactive shell is used by default. This one supports color, multiline " -"editing, history browsing, and paste mode. To disable color, " -"see :ref:`using-on-controlling-color` for details. Function keys provide " -"some additional functionality. :kbd:`F1` enters the interactive help " +"interactive shell is used by default since Python 3.13. This one supports " +"color, multiline editing, history browsing, and paste mode. To disable " +"color, see :ref:`using-on-controlling-color` for details. Function keys " +"provide some additional functionality. :kbd:`F1` enters the interactive help " "browser :mod:`pydoc`. :kbd:`F2` allows for browsing command-line history " "with neither output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` " "enters \"paste mode\", which makes pasting larger blocks of code easier. " "Press :kbd:`F3` to return to the regular prompt." msgstr "" -#: ../../tutorial/appendix.rst:28 msgid "" "When using the new interactive shell, exit the shell by typing :kbd:`exit` " "or :kbd:`quit`. Adding call parentheses after those commands is not required." msgstr "" -#: ../../tutorial/appendix.rst:32 msgid "" -"If the new interactive shell is not desired, it can be disabled via " -"the :envvar:`PYTHON_BASIC_REPL` environment variable." +"If the new interactive shell is not desired, it can be disabled via the :" +"envvar:`PYTHON_BASIC_REPL` environment variable." msgstr "" -#: ../../tutorial/appendix.rst:38 msgid "Error Handling" msgstr "" -#: ../../tutorial/appendix.rst:40 msgid "" "When an error occurs, the interpreter prints an error message and a stack " "trace. In interactive mode, it then returns to the primary prompt; when " "input came from a file, it exits with a nonzero exit status after printing " -"the stack trace. (Exceptions handled by an :keyword:`except` clause in " -"a :keyword:`try` statement are not errors in this context.) Some errors are " +"the stack trace. (Exceptions handled by an :keyword:`except` clause in a :" +"keyword:`try` statement are not errors in this context.) Some errors are " "unconditionally fatal and cause an exit with a nonzero exit status; this " "applies to internal inconsistencies and some cases of running out of " "memory. All error messages are written to the standard error stream; normal " "output from executed commands is written to standard output." msgstr "" -#: ../../tutorial/appendix.rst:50 msgid "" "Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) " "to the primary or secondary prompt cancels the input and returns to the " "primary prompt. [#]_ Typing an interrupt while a command is executing raises " -"the :exc:`KeyboardInterrupt` exception, which may be handled by " -"a :keyword:`try` statement." +"the :exc:`KeyboardInterrupt` exception, which may be handled by a :keyword:" +"`try` statement." msgstr "" -#: ../../tutorial/appendix.rst:60 msgid "Executable Python Scripts" msgstr "" -#: ../../tutorial/appendix.rst:62 msgid "" "On BSD'ish Unix systems, Python scripts can be made directly executable, " "like shell scripts, by putting the line ::" msgstr "" -#: ../../tutorial/appendix.rst:65 msgid "#!/usr/bin/env python3" msgstr "" -#: ../../tutorial/appendix.rst:67 msgid "" "(assuming that the interpreter is on the user's :envvar:`PATH`) at the " "beginning of the script and giving the file an executable mode. The ``#!`` " @@ -112,17 +99,14 @@ msgid "" "``'#'``, is used to start a comment in Python." msgstr "" -#: ../../tutorial/appendix.rst:74 msgid "" -"The script can be given an executable mode, or permission, using " -"the :program:`chmod` command." +"The script can be given an executable mode, or permission, using the :" +"program:`chmod` command." msgstr "" -#: ../../tutorial/appendix.rst:77 msgid "$ chmod +x myscript.py" msgstr "" -#: ../../tutorial/appendix.rst:81 msgid "" "On Windows systems, there is no notion of an \"executable mode\". The " "Python installer automatically associates ``.py`` files with ``python.exe`` " @@ -131,11 +115,9 @@ msgid "" "normally appears is suppressed." msgstr "" -#: ../../tutorial/appendix.rst:91 msgid "The Interactive Startup File" msgstr "" -#: ../../tutorial/appendix.rst:93 msgid "" "When you use Python interactively, it is frequently handy to have some " "standard commands executed every time the interpreter is started. You can " @@ -144,7 +126,6 @@ msgid "" "the :file:`.profile` feature of the Unix shells." msgstr "" -#: ../../tutorial/appendix.rst:99 msgid "" "This file is only read in interactive sessions, not when Python reads " "commands from a script, and not when :file:`/dev/tty` is given as the " @@ -155,16 +136,14 @@ msgid "" "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" -#: ../../tutorial/appendix.rst:107 msgid "" "If you want to read an additional start-up file from the current directory, " -"you can program this in the global start-up file using code like ``if " -"os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " +"you can program this in the global start-up file using code like ``if os." +"path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " "want to use the startup file in a script, you must do this explicitly in the " "script::" msgstr "" -#: ../../tutorial/appendix.rst:113 msgid "" "import os\n" "filename = os.environ.get('PYTHONSTARTUP')\n" @@ -174,11 +153,9 @@ msgid "" " exec(startup_file)" msgstr "" -#: ../../tutorial/appendix.rst:124 msgid "The Customization Modules" msgstr "" -#: ../../tutorial/appendix.rst:126 msgid "" "Python provides two hooks to let you customize it: :index:`sitecustomize` " "and :index:`usercustomize`. To see how it works, you need first to find the " @@ -186,14 +163,12 @@ msgid "" "code::" msgstr "" -#: ../../tutorial/appendix.rst:130 msgid "" ">>> import site\n" ">>> site.getusersitepackages()\n" "'/home/user/.local/lib/python3.x/site-packages'" msgstr "" -#: ../../tutorial/appendix.rst:134 msgid "" "Now you can create a file named :file:`usercustomize.py` in that directory " "and put anything you want in it. It will affect every invocation of Python, " @@ -201,19 +176,16 @@ msgid "" "import." msgstr "" -#: ../../tutorial/appendix.rst:138 msgid "" ":index:`sitecustomize` works in the same way, but is typically created by an " "administrator of the computer in the global site-packages directory, and is " -"imported before :index:`usercustomize`. See the documentation of " -"the :mod:`site` module for more details." +"imported before :index:`usercustomize`. See the documentation of the :mod:" +"`site` module for more details." msgstr "" -#: ../../tutorial/appendix.rst:145 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/appendix.rst:146 msgid "A problem with the GNU Readline package may prevent this." msgstr "" "Egy a GNU Readline csomaggal kapcsolatos probléma megakadályozhatja ezt." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index ce6306b..ac45e31 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/appetite.rst:5 msgid "Whetting Your Appetite" msgstr "Étvágygerjesztő" -#: ../../tutorial/appetite.rst:7 msgid "" "If you do much work on computers, eventually you find that there's some task " "you'd like to automate. For example, you may wish to perform a search-and-" @@ -35,7 +33,6 @@ msgid "" "custom database, or a specialized GUI application, or a simple game." msgstr "" -#: ../../tutorial/appetite.rst:13 msgid "" "If you're a professional software developer, you may have to work with " "several C/C++/Java libraries but find the usual write/compile/test/re-" @@ -45,11 +42,9 @@ msgid "" "to design and implement a whole new language for your application." msgstr ": ../../tutorial/appetite.rst:2" -#: ../../tutorial/appetite.rst:20 msgid "Python is just the language for you." msgstr "" -#: ../../tutorial/appetite.rst:22 msgid "" "You could write a Unix shell script or Windows batch files for some of these " "tasks, but shell scripts are best at moving around files and changing text " @@ -59,7 +54,6 @@ msgid "" "Unix operating systems, and will help you get the job done more quickly." msgstr "" -#: ../../tutorial/appetite.rst:29 msgid "" "Python is simple to use, but it is a real programming language, offering " "much more structure and support for large programs than shell scripts or " @@ -80,7 +74,6 @@ msgstr "" "alkalmazható mint az *Awk* vagy akár a *Perl*, ugyanakkor sok dolog legalább " "ugyanolyan könnyű Pythonban, mint ezekben a nyelvekben." -#: ../../tutorial/appetite.rst:37 msgid "" "Python allows you to split your program into modules that can be reused in " "other Python programs. It comes with a large collection of standard modules " @@ -96,7 +89,6 @@ msgstr "" "Vannak beépített modulok is mint a fájl I/O, rendszerhívások, socket-ek " "kezelése és interfészek olyan grafikus felülethez, mint a Tk." -#: ../../tutorial/appetite.rst:44 msgid "" "Python is an interpreted language, which can save you considerable time " "during program development because no compilation and linking is necessary. " @@ -112,7 +104,6 @@ msgstr "" "vagy függvényeket tesztelni az alulról felfelé történő programfejlesztés " "során. Egyben egy ügyes asztali számológép is!" -#: ../../tutorial/appetite.rst:50 msgid "" "Python enables programs to be written compactly and readably. Programs " "written in Python are typically much shorter than equivalent C, C++, or " @@ -122,7 +113,6 @@ msgstr "" "Pythonban írt programok általában sokkal rövidebbek mint a C vagy C++ " "megfelelőjük, mert:" -#: ../../tutorial/appetite.rst:54 msgid "" "the high-level data types allow you to express complex operations in a " "single statement;" @@ -130,7 +120,6 @@ msgstr "" "a magasszintű adattípusok lehetővé teszik egyetlen utasításban egy " "összetett művelet kifejtését;" -#: ../../tutorial/appetite.rst:57 msgid "" "statement grouping is done by indentation instead of beginning and ending " "brackets;" @@ -138,11 +127,9 @@ msgstr "" "az utasítások csoportosítása a sorok elejének egyenlő mértékű jobbra " "tolásával történik a kezdő és végzárójelek helyett;" -#: ../../tutorial/appetite.rst:60 msgid "no variable or argument declarations are necessary." msgstr "nem szükséges a változók és argumentumok deklarálása." -#: ../../tutorial/appetite.rst:62 msgid "" "Python is *extensible*: if you know how to program in C it is easy to add a " "new built-in function or module to the interpreter, either to perform " @@ -161,7 +148,6 @@ msgstr "" "alkalmazáshoz, és azt a program kiterjesztéseként vagy parancs-nyelvként " "használhatod." -#: ../../tutorial/appetite.rst:70 msgid "" "By the way, the language is named after the BBC show \"Monty Python's Flying " "Circus\" and has nothing to do with reptiles. Making references to Monty " @@ -171,7 +157,6 @@ msgstr "" "a nevét és semmi köze nincs a nyálas hüllőhöz... Utalásokat tenni a " "dokumentációban a Monty Pythonra nemcsak szabad, hanem ajánlott!" -#: ../../tutorial/appetite.rst:74 msgid "" "Now that you are all excited about Python, you'll want to examine it in some " "more detail. Since the best way to learn a language is to use it, the " @@ -181,7 +166,6 @@ msgstr "" "megtekinteni valamivel részletesebben. Mivel a nyelvtanulás legjobb módja " "annak használata, meghívunk Téged egy kis gyakorlásra." -#: ../../tutorial/appetite.rst:78 msgid "" "In the next chapter, the mechanics of using the interpreter are explained. " "This is rather mundane information, but essential for trying out the " @@ -191,7 +175,6 @@ msgstr "" "Ezek kissé unalmas dolgok, de szükségesek ahhoz, hogy a későbbiekeben " "mutatott példákat kipróbálhasd." -#: ../../tutorial/appetite.rst:82 msgid "" "The rest of the tutorial introduces various features of the Python language " "and system through examples, beginning with simple expressions, statements " diff --git a/tutorial/classes.po b/tutorial/classes.po index b417a2b..f9f2665 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/classes.rst:5 msgid "Classes" msgstr "Osztályok" -#: ../../tutorial/classes.rst:7 msgid "" "Classes provide a means of bundling data and functionality together. " "Creating a new class creates a new *type* of object, allowing new " @@ -35,7 +33,6 @@ msgid "" "also have methods (defined by its class) for modifying its state." msgstr "" -#: ../../tutorial/classes.rst:13 msgid "" "Compared with other programming languages, Python's class mechanism adds " "classes with a minimum of new syntax and semantics. It is a mixture of the " @@ -60,7 +57,6 @@ msgstr "" "dinamikus természetében: futás közben létrehozhatóak, és tovább " "módosíthatóak létrehozásuk után." -#: ../../tutorial/classes.rst:23 msgid "" "In C++ terminology, normally class members (including the data members) are " "*public* (except see below :ref:`tut-private`), and all member functions are " @@ -87,7 +83,6 @@ msgstr "" "(aritmetikai műveletek, indexelés stb.) újradefiniálhatók az osztály " "példányaiban." -#: ../../tutorial/classes.rst:34 msgid "" "(Lacking universally accepted terminology to talk about classes, I will make " "occasional use of Smalltalk and C++ terms. I would use Modula-3 terms, " @@ -100,11 +95,9 @@ msgstr "" "objektum-orientáció-szemlélete a Pythonhoz, mint a C++-é, de sejtésem " "szerint kevés olvasó hallott erről a nyelvről.)" -#: ../../tutorial/classes.rst:43 msgid "A Word About Names and Objects" msgstr "Pár szó a nevekről és objektumokról" -#: ../../tutorial/classes.rst:45 msgid "" "Objects have individuality, and multiple names (in multiple scopes) can be " "bound to the same object. This is known as aliasing in other languages. " @@ -134,11 +127,9 @@ msgstr "" "változást -- ez szükségtelenné teszi két különböző argumentumátadási módszer " "használatát, mint amilyen a Pascalnál van." -#: ../../tutorial/classes.rst:61 msgid "Python Scopes and Namespaces" msgstr "Hatókörök és névterek a Pythonban" -#: ../../tutorial/classes.rst:63 msgid "" "Before introducing classes, I first have to tell you something about " "Python's scope rules. Class definitions play some neat tricks with " @@ -152,11 +143,9 @@ msgstr "" "teljesen átlásd, mi is történik. Egyébként ennek a témakörnek az ismerete " "minden haladó Python programozónak a hasznára válik." -#: ../../tutorial/classes.rst:69 msgid "Let's begin with some definitions." msgstr "Kezdetnek nézzünk meg néhány definíciót." -#: ../../tutorial/classes.rst:71 msgid "" "A *namespace* is a mapping from names to objects. Most namespaces are " "currently implemented as Python dictionaries, but that's normally not " @@ -183,7 +172,6 @@ msgstr "" "modul nevével egyértelműen jelezniük kell, hogy pontosan melyik függvényt " "fogják használni." -#: ../../tutorial/classes.rst:82 msgid "" "By the way, I use the word *attribute* for any name following a dot --- for " "example, in the expression ``z.real``, ``real`` is an attribute of the " @@ -200,7 +188,6 @@ msgstr "" "közvetlen hozzárendelés történik a modul jellemzői és a modulban definiált " "globális nevek között: ezek ugyanazon a névtéren osztoznak. [#]_" -#: ../../tutorial/classes.rst:90 msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " "attributes is possible. Module attributes are writable: you can write " @@ -210,7 +197,6 @@ msgid "" "``modname``." msgstr "" -#: ../../tutorial/classes.rst:96 msgid "" "Namespaces are created at different moments and have different lifetimes. " "The namespace containing the built-in names is created when the Python " @@ -218,9 +204,9 @@ msgid "" "module is created when the module definition is read in; normally, module " "namespaces also last until the interpreter quits. The statements executed " "by the top-level invocation of the interpreter, either read from a script " -"file or interactively, are considered part of a module " -"called :mod:`__main__`, so they have their own global namespace. (The built-" -"in names actually also live in a module; this is called :mod:`builtins`.)" +"file or interactively, are considered part of a module called :mod:" +"`__main__`, so they have their own global namespace. (The built-in names " +"actually also live in a module; this is called :mod:`builtins`.)" msgstr "" "A névterek különböző időpontokban születnek, és élettartamuk is változó. Az " "a névtér, amely a Python értelmező beépített neveit tartalmazza, a Python-" @@ -232,7 +218,6 @@ msgstr "" "tekinti a Python, ezért saját névtérrel rendelkeznek. (A beépített nevek " "szintén egy modulban léteznek, :mod:`builtins` név alatt.)" -#: ../../tutorial/classes.rst:106 msgid "" "The local namespace for a function is created when the function is called, " "and deleted when the function returns or raises an exception that is not " @@ -246,7 +231,6 @@ msgstr "" "történik.) Természetesen a rekurzív hívások mindegyike saját, helyi " "névtérrel rendelkezik." -#: ../../tutorial/classes.rst:112 msgid "" "A *scope* is a textual region of a Python program where a namespace is " "directly accessible. \"Directly accessible\" here means that an unqualified " @@ -254,53 +238,46 @@ msgid "" msgstr "" "A *hatókör* (angolul scope) a Python kód azon szöveges része ahol a névtér " "közvetlenül elérhető. A közvetlen elérhetőség itt azt jelenti, hogy a név a " -"teljes elérési útjának kifejtése nélkül elérhető a névtérben. (például a " -"``z.real``-ben a . jelzi, hogy a ``z`` objektumhoz tartozó jellemzőről van " -"szó, ez itt most teljesen kifejtett.)" +"teljes elérési útjának kifejtése nélkül elérhető a névtérben. (például a ``z." +"real``-ben a . jelzi, hogy a ``z`` objektumhoz tartozó jellemzőről van szó, " +"ez itt most teljesen kifejtett.)" -#: ../../tutorial/classes.rst:116 msgid "" "Although scopes are determined statically, they are used dynamically. At any " "time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" -#: ../../tutorial/classes.rst:120 msgid "the innermost scope, which is searched first, contains the local names" msgstr "" "a legbelső hatókör, amelyben először keresünk, a helyi neveket tartalmazza" -#: ../../tutorial/classes.rst:121 msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" -#: ../../tutorial/classes.rst:123 msgid "the next-to-last scope contains the current module's global names" msgstr "" "at utolsó előttiként vizsgált hatáskör az aktuális modul globális neveit " "tartalmazza" -#: ../../tutorial/classes.rst:124 msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" "a legkülső (utolsónak vizsgált) hatókör a beépített neveket tartalmazó névtér" -#: ../../tutorial/classes.rst:126 msgid "" "If a name is declared global, then all references and assignments go " "directly to the next-to-last scope containing the module's global names. To " -"rebind variables found outside of the innermost scope, " -"the :keyword:`nonlocal` statement can be used; if not declared nonlocal, " -"those variables are read-only (an attempt to write to such a variable will " -"simply create a *new* local variable in the innermost scope, leaving the " -"identically named outer variable unchanged)." +"rebind variables found outside of the innermost scope, the :keyword:" +"`nonlocal` statement can be used; if not declared nonlocal, those variables " +"are read-only (an attempt to write to such a variable will simply create a " +"*new* local variable in the innermost scope, leaving the identically named " +"outer variable unchanged)." msgstr "" -#: ../../tutorial/classes.rst:133 msgid "" "Usually, the local scope references the local names of the (textually) " "current function. Outside functions, the local scope references the same " @@ -312,7 +289,6 @@ msgstr "" "megegyezik a globális hatókörrel: a modul névtere. Az osztálydefiníciók " "pedig még egy újabb névtereket helyeznek el a helyi hatókörben." -#: ../../tutorial/classes.rst:138 msgid "" "It is important to realize that scopes are determined textually: the global " "scope of a function defined in a module is that module's namespace, no " @@ -330,45 +306,40 @@ msgstr "" "hosszútávon ne számíts a dinamikus névfeloldásra! (Igazság szerint a helyi " "változók mindig statikusan meghatározottak.)" -#: ../../tutorial/classes.rst:146 msgid "" -"A special quirk of Python is that -- if no :keyword:`global` " -"or :keyword:`nonlocal` statement is in effect -- assignments to names always " -"go into the innermost scope. Assignments do not copy data --- they just bind " -"names to objects. The same is true for deletions: the statement ``del x`` " -"removes the binding of ``x`` from the namespace referenced by the local " -"scope. In fact, all operations that introduce new names use the local " -"scope: in particular, :keyword:`import` statements and function definitions " -"bind the module or function name in the local scope." +"A special quirk of Python is that -- if no :keyword:`global` or :keyword:" +"`nonlocal` statement is in effect -- assignments to names always go into the " +"innermost scope. Assignments do not copy data --- they just bind names to " +"objects. The same is true for deletions: the statement ``del x`` removes " +"the binding of ``x`` from the namespace referenced by the local scope. In " +"fact, all operations that introduce new names use the local scope: in " +"particular, :keyword:`import` statements and function definitions bind the " +"module or function name in the local scope." msgstr "" -#: ../../tutorial/classes.rst:154 msgid "" "The :keyword:`global` statement can be used to indicate that particular " -"variables live in the global scope and should be rebound there; " -"the :keyword:`nonlocal` statement indicates that particular variables live " -"in an enclosing scope and should be rebound there." +"variables live in the global scope and should be rebound there; the :keyword:" +"`nonlocal` statement indicates that particular variables live in an " +"enclosing scope and should be rebound there." msgstr "" "A :keyword:`global` kulcsszóval jelezheted hogy bizonyos változók a globális " "névtérben léteznek és ott újra kell csatolni, a :keyword:`nonlocal` " "kulcsszó azt jelzi, hogy a szóban forgó változó a helyi hatókörhöz " "tartozik, és ott kell újracsatolni." -#: ../../tutorial/classes.rst:162 msgid "Scopes and Namespaces Example" msgstr "Hatókör és névtér példa" -#: ../../tutorial/classes.rst:164 msgid "" "This is an example demonstrating how to reference the different scopes and " "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " "variable binding::" msgstr "" "Itt van egy példa, amely bemutatja, hogyan lehet hivatkozni a különböző " -"hatókörökre és névterekre, és hogyan hat a :keyword:`global` " -"és :keyword:`nonlocal` a változócsatolásokra::" +"hatókörökre és névterekre, és hogyan hat a :keyword:`global` és :keyword:" +"`nonlocal` a változócsatolásokra::" -#: ../../tutorial/classes.rst:168 msgid "" "def scope_test():\n" " def do_local():\n" @@ -394,11 +365,9 @@ msgid "" "print(\"In global scope:\", spam)" msgstr "" -#: ../../tutorial/classes.rst:191 msgid "The output of the example code is:" msgstr "A példakód kimenete::" -#: ../../tutorial/classes.rst:193 msgid "" "After local assignment: test spam\n" "After nonlocal assignment: nonlocal spam\n" @@ -406,7 +375,6 @@ msgid "" "In global scope: global spam" msgstr "" -#: ../../tutorial/classes.rst:200 msgid "" "Note how the *local* assignment (which is default) didn't change " "*scope_test*\\'s binding of *spam*. The :keyword:`nonlocal` assignment " @@ -414,24 +382,20 @@ msgid "" "assignment changed the module-level binding." msgstr "" "Jegyezd meg, hogy a *helyi* értékadás (amely az alapértelmezett) nem " -"változtatja meg a *scope_test* függvény *spam* csatolását. " -"A :keyword:`nonlocal` értékadás a *scope_test* *spam* nevének csatolását " -"változtatja meg, a :keyword:`global` értékadás pedig a modulszintű " -"csatolást." +"változtatja meg a *scope_test* függvény *spam* csatolását. A :keyword:" +"`nonlocal` értékadás a *scope_test* *spam* nevének csatolását változtatja " +"meg, a :keyword:`global` értékadás pedig a modulszintű csatolást." -#: ../../tutorial/classes.rst:205 msgid "" -"You can also see that there was no previous binding for *spam* before " -"the :keyword:`global` assignment." +"You can also see that there was no previous binding for *spam* before the :" +"keyword:`global` assignment." msgstr "" -"Azt is érdemes észrevenni, hogy nem csatoltunk értéket a *spam*-hez " -"a :keyword:`global` értékadás előtt." +"Azt is érdemes észrevenni, hogy nem csatoltunk értéket a *spam*-hez a :" +"keyword:`global` értékadás előtt." -#: ../../tutorial/classes.rst:212 msgid "A First Look at Classes" msgstr "Első találkozás az osztályokkal" -#: ../../tutorial/classes.rst:214 msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." @@ -439,15 +403,12 @@ msgstr "" "Az osztályok használatához szükségünk van új szintaxisra: három új " "objektumtípusra, és némi új szemantikára." -#: ../../tutorial/classes.rst:221 msgid "Class Definition Syntax" msgstr "Az osztálydefiníció szinaxisa" -#: ../../tutorial/classes.rst:223 msgid "The simplest form of class definition looks like this::" msgstr "A legegyszerűbb osztálydefiníció így néz ki::" -#: ../../tutorial/classes.rst:225 msgid "" "class ClassName:\n" " \n" @@ -457,20 +418,17 @@ msgid "" " " msgstr "" -#: ../../tutorial/classes.rst:232 msgid "" "Class definitions, like function definitions (:keyword:`def` statements) " "must be executed before they have any effect. (You could conceivably place " "a class definition in a branch of an :keyword:`if` statement, or inside a " "function.)" msgstr "" -"Az osztálydefiníciók hasonlítanak a függvények definíciójára " -"(:keyword:`def` statements) abból a szempontból, hogy az osztály " -"deklarációjának meg kell előznie az első használatot. (Osztálydefiníciót " -"elhelyzehetsz egy :keyword:`if` utasítás valamely ágában is, vagy egy " -"függvénybe beágyazva.)" +"Az osztálydefiníciók hasonlítanak a függvények definíciójára (:keyword:" +"`def` statements) abból a szempontból, hogy az osztály deklarációjának meg " +"kell előznie az első használatot. (Osztálydefiníciót elhelyzehetsz egy :" +"keyword:`if` utasítás valamely ágában is, vagy egy függvénybe beágyazva.)" -#: ../../tutorial/classes.rst:236 msgid "" "In practice, the statements inside a class definition will usually be " "function definitions, but other statements are allowed, and sometimes useful " @@ -485,7 +443,6 @@ msgstr "" "metódusainak hívására vontakozó megállapodás szerint -- ezt szintén később " "fogjuk megvizsgálni." -#: ../../tutorial/classes.rst:242 msgid "" "When a class definition is entered, a new namespace is created, and used as " "the local scope --- thus, all assignments to local variables go into this " @@ -497,7 +454,6 @@ msgstr "" "az új névtérbe kerül. A gyakorlatban általában az új függvények csatolásai " "kerülnek ide." -#: ../../tutorial/classes.rst:247 msgid "" "When a class definition is left normally (via the end), a *class object* is " "created. This is basically a wrapper around the contents of the namespace " @@ -508,11 +464,9 @@ msgid "" "ClassName` in the example)." msgstr "" -#: ../../tutorial/classes.rst:259 msgid "Class Objects" msgstr "Osztályobjektumok" -#: ../../tutorial/classes.rst:261 msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." @@ -520,7 +474,6 @@ msgstr "" "Az osztályobjektumok a műveletek kétféle típusát támogatják: a " "jellemzőhivatkozást és a példányosítás." -#: ../../tutorial/classes.rst:264 msgid "" "*Attribute references* use the standard syntax used for all attribute " "references in Python: ``obj.name``. Valid attribute names are all the names " @@ -532,7 +485,6 @@ msgstr "" "az osztály névterében volt az osztályobjektum létrehozásakor. Ha egy osztály " "definíció valahogy így néz ki::" -#: ../../tutorial/classes.rst:269 msgid "" "class MyClass:\n" " \"\"\"A simple example class\"\"\"\n" @@ -542,7 +494,6 @@ msgid "" " return 'hello world'" msgstr "" -#: ../../tutorial/classes.rst:276 msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " "returning an integer and a function object, respectively. Class attributes " @@ -551,7 +502,6 @@ msgid "" "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" -#: ../../tutorial/classes.rst:282 msgid "" "Class *instantiation* uses function notation. Just pretend that the class " "object is a parameterless function that returns a new instance of the class. " @@ -562,11 +512,9 @@ msgstr "" "függvény lenne, amit meghívva az osztály egy új példányát kapjuk " "visszatérési értékként. Például (a fenti osztályt alapul véve)::" -#: ../../tutorial/classes.rst:286 ../../tutorial/classes.rst:303 msgid "x = MyClass()" msgstr "" -#: ../../tutorial/classes.rst:288 msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." @@ -574,21 +522,18 @@ msgstr "" "létrehoz egy új *példányt* az osztályból, és hozzárendeli a visszatérési " "értékként kapott objektumot az ``x`` helyi változóhoz." -#: ../../tutorial/classes.rst:291 msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " -"specific initial state. Therefore a class may define a special method " -"named :meth:`~object.__init__`, like this::" +"specific initial state. Therefore a class may define a special method named :" +"meth:`~object.__init__`, like this::" msgstr "" -#: ../../tutorial/classes.rst:296 msgid "" "def __init__(self):\n" " self.data = []" msgstr "" -#: ../../tutorial/classes.rst:299 msgid "" "When a class defines an :meth:`~object.__init__` method, class instantiation " "automatically invokes :meth:`!__init__` for the newly created class " @@ -596,14 +541,12 @@ msgid "" "by::" msgstr "" -#: ../../tutorial/classes.rst:305 msgid "" "Of course, the :meth:`~object.__init__` method may have arguments for " "greater flexibility. In that case, arguments given to the class " "instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" -#: ../../tutorial/classes.rst:309 msgid "" ">>> class Complex:\n" "... def __init__(self, realpart, imagpart):\n" @@ -615,18 +558,15 @@ msgid "" "(3.0, -4.5)" msgstr "" -#: ../../tutorial/classes.rst:322 msgid "Instance Objects" msgstr "A létrehozott egyedek" -#: ../../tutorial/classes.rst:324 msgid "" "Now what can we do with instance objects? The only operations understood by " "instance objects are attribute references. There are two kinds of valid " "attribute names: data attributes and methods." msgstr "" -#: ../../tutorial/classes.rst:328 msgid "" "*Data attributes* correspond to \"instance variables\" in Smalltalk, and to " "\"data members\" in C++. Data attributes need not be declared; like local " @@ -636,7 +576,6 @@ msgid "" "trace::" msgstr "" -#: ../../tutorial/classes.rst:334 msgid "" "x.counter = 1\n" "while x.counter < 10:\n" @@ -645,13 +584,11 @@ msgid "" "del x.counter" msgstr "" -#: ../../tutorial/classes.rst:340 msgid "" "The other kind of instance attribute reference is a *method*. A method is a " "function that \"belongs to\" an object." msgstr "" -#: ../../tutorial/classes.rst:345 msgid "" "Valid method names of an instance object depend on its class. By " "definition, all attributes of a class that are function objects define " @@ -669,48 +606,40 @@ msgstr "" "nem ugyanaz, mint ``Osztalyom.f`` --- ez egy *metódusobjektum*, nem egy " "függvényobjektum." -#: ../../tutorial/classes.rst:356 msgid "Method Objects" msgstr "Az metódusobjektumok" -#: ../../tutorial/classes.rst:358 msgid "Usually, a method is called right after it is bound::" msgstr "Többnyire a metódusokat rögtön meghívjuk::" -#: ../../tutorial/classes.rst:360 msgid "x.f()" msgstr "" -#: ../../tutorial/classes.rst:362 msgid "" -"In the :class:`!MyClass` example, this will return the string ``'hello " +"If ``x = MyClass()``, as above, this will return the string ``'hello " "world'``. However, it is not necessary to call a method right away: ``x.f`` " "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" -#: ../../tutorial/classes.rst:366 msgid "" "xf = x.f\n" "while True:\n" " print(xf())" msgstr "" -#: ../../tutorial/classes.rst:370 msgid "will continue to print ``hello world`` until the end of time." msgstr "Ez a kód az örökkévalóságig a ``hello világ`` üzenetet írja ki." -#: ../../tutorial/classes.rst:372 msgid "" -"What exactly happens when a method is called? You may have noticed that " -"``x.f()`` was called without an argument above, even though the function " +"What exactly happens when a method is called? You may have noticed that ``x." +"f()`` was called without an argument above, even though the function " "definition for :meth:`!f` specified an argument. What happened to the " "argument? Surely Python raises an exception when a function that requires an " "argument is called without any --- even if the argument isn't actually " "used..." msgstr "" -#: ../../tutorial/classes.rst:378 msgid "" "Actually, you may have guessed the answer: the special thing about methods " "is that the instance object is passed as the first argument of the " @@ -727,7 +656,6 @@ msgstr "" "mintha az osztálydefiníció függvényét hívnánk meg úgy, hogy a legelső " "argumentum elé az aktuális példány nevét beillesztjük." -#: ../../tutorial/classes.rst:385 msgid "" "In general, methods work as follows. When a non-data attribute of an " "instance is referenced, the instance's class is searched. If the name " @@ -738,18 +666,15 @@ msgid "" "and the function object is called with this new argument list." msgstr "" -#: ../../tutorial/classes.rst:398 msgid "Class and Instance Variables" msgstr "" -#: ../../tutorial/classes.rst:400 msgid "" "Generally speaking, instance variables are for data unique to each instance " "and class variables are for attributes and methods shared by all instances " "of the class::" msgstr "" -#: ../../tutorial/classes.rst:404 msgid "" "class Dog:\n" "\n" @@ -770,7 +695,6 @@ msgid "" "'Buddy'" msgstr "" -#: ../../tutorial/classes.rst:422 msgid "" "As discussed in :ref:`tut-object`, shared data can have possibly surprising " "effects with involving :term:`mutable` objects such as lists and " @@ -779,7 +703,6 @@ msgid "" "by all *Dog* instances::" msgstr "" -#: ../../tutorial/classes.rst:428 msgid "" "class Dog:\n" "\n" @@ -799,11 +722,9 @@ msgid "" "['roll over', 'play dead']" msgstr "" -#: ../../tutorial/classes.rst:445 msgid "Correct design of the class should use an instance variable instead::" msgstr "" -#: ../../tutorial/classes.rst:447 msgid "" "class Dog:\n" "\n" @@ -824,17 +745,14 @@ msgid "" "['play dead']" msgstr "" -#: ../../tutorial/classes.rst:469 msgid "Random Remarks" msgstr "Pár megjegyzés" -#: ../../tutorial/classes.rst:473 msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" msgstr "" -#: ../../tutorial/classes.rst:476 msgid "" ">>> class Warehouse:\n" "... purpose = 'storage'\n" @@ -849,7 +767,6 @@ msgid "" "storage east" msgstr "" -#: ../../tutorial/classes.rst:488 msgid "" "Data attributes may be referenced by methods as well as by ordinary users " "(\"clients\") of an object. In other words, classes are not usable to " @@ -867,7 +784,6 @@ msgstr "" "teljesen elrejteni a megvalósítási részleteket és ellenőrizni az objektum " "elérését, ha szükséges; ehhez egy C nyelven írt kiegészítést kell használni." -#: ../../tutorial/classes.rst:496 msgid "" "Clients should use data attributes with care --- clients may mess up " "invariants maintained by the methods by stamping on their data attributes. " @@ -882,7 +798,6 @@ msgstr "" "okoznak névütközést -- az elnevezési konvenciók használatával elég sok " "fejfájástól megszabadulhatunk!" -#: ../../tutorial/classes.rst:502 msgid "" "There is no shorthand for referencing data attributes (or other methods!) " "from within methods. I find that this actually increases the readability of " @@ -894,7 +809,6 @@ msgstr "" "nem hagy esélyt a helyi és a példányosított változók összekeverésére, mikor " "a metódus forráskódját olvassuk." -#: ../../tutorial/classes.rst:507 msgid "" "Often, the first argument of a method is called ``self``. This is nothing " "more than a convention: the name ``self`` has absolutely no special meaning " @@ -909,7 +823,6 @@ msgstr "" "hagyományoktól, akkor a program nehezebben olvashatóvá válik, és a " "*osztályböngésző* is a tradicionális változónevet használja." -#: ../../tutorial/classes.rst:513 msgid "" "Any function object that is a class attribute defines a method for instances " "of that class. It is not necessary that the function definition is " @@ -922,7 +835,6 @@ msgstr "" "része legyen: egy definíción kívüli függvény helyi változóhoz való rendelése " "is megfelel a célnak. Például::" -#: ../../tutorial/classes.rst:518 msgid "" "# Function defined outside the class\n" "def f1(self, x, y):\n" @@ -937,7 +849,6 @@ msgid "" " h = g" msgstr "" -#: ../../tutorial/classes.rst:530 msgid "" "Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " "refer to function objects, and consequently they are all methods of " @@ -945,7 +856,6 @@ msgid "" "that this practice usually only serves to confuse the reader of a program." msgstr "" -#: ../../tutorial/classes.rst:535 msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" @@ -953,7 +863,6 @@ msgstr "" "Az osztályon belüli metódusok egymást is hívhatják a ``self`` argumentum " "használatával::" -#: ../../tutorial/classes.rst:538 msgid "" "class Bag:\n" " def __init__(self):\n" @@ -967,7 +876,6 @@ msgid "" " self.add(x)" msgstr "" -#: ../../tutorial/classes.rst:549 msgid "" "Methods may reference global names in the same way as ordinary functions. " "The global scope associated with a method is the module containing its " @@ -989,17 +897,14 @@ msgstr "" "definiált metódust a globális névtérben tartja, és a következő részben " "meglátjuk majd, miért jó ha a metódusok a saját osztályukra hivatkozhatnak!" -#: ../../tutorial/classes.rst:559 msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" -#: ../../tutorial/classes.rst:566 msgid "Inheritance" msgstr "Öröklés" -#: ../../tutorial/classes.rst:568 msgid "" "Of course, a language feature would not be worthy of the name \"class\" " "without supporting inheritance. The syntax for a derived class definition " @@ -1009,7 +914,6 @@ msgstr "" "osztályok használatának. A származtatott osztályok definíciója a " "következőképpen néz ki::" -#: ../../tutorial/classes.rst:572 msgid "" "class DerivedClassName(BaseClassName):\n" " \n" @@ -1019,7 +923,6 @@ msgid "" " " msgstr "" -#: ../../tutorial/classes.rst:579 msgid "" "The name :class:`!BaseClassName` must be defined in a namespace accessible " "from the scope containing the derived class definition. In place of a base " @@ -1027,11 +930,9 @@ msgid "" "useful, for example, when the base class is defined in another module::" msgstr "" -#: ../../tutorial/classes.rst:585 msgid "class DerivedClassName(modname.BaseClassName):" msgstr "" -#: ../../tutorial/classes.rst:587 msgid "" "Execution of a derived class definition proceeds the same as for a base " "class. When the class object is constructed, the base class is remembered. " @@ -1047,7 +948,6 @@ msgstr "" "a szülőosztályban folytatódik. Ez a szabályt alkalmazza a Python rekurzívan, " "hogyha a szülőosztály maga is származtatott osztálya egy másik osztálynak." -#: ../../tutorial/classes.rst:593 msgid "" "There's nothing special about instantiation of derived classes: " "``DerivedClassName()`` creates a new instance of the class. Method " @@ -1061,7 +961,6 @@ msgstr "" "jellemzőjét keresi meg, ha szükséges végigkutatva a szülőosztályok láncát, " "és ha a talált jellemző egy függvény, akkor a metódus-hivatkozás érvényes." -#: ../../tutorial/classes.rst:599 msgid "" "Derived classes may override methods of their base classes. Because methods " "have no special privileges when calling other methods of the same object, a " @@ -1077,14 +976,13 @@ msgstr "" "fogja meghívni. (C++ programozóknak: a Pythonban lényegében minden metódus " "``virtual``.)" -#: ../../tutorial/classes.rst:605 msgid "" "An overriding method in a derived class may in fact want to extend rather " "than simply replace the base class method of the same name. There is a " -"simple way to call the base class method directly: just call " -"``BaseClassName.methodname(self, arguments)``. This is occasionally useful " -"to clients as well. (Note that this only works if the base class is " -"accessible as ``BaseClassName`` in the global scope.)" +"simple way to call the base class method directly: just call ``BaseClassName." +"methodname(self, arguments)``. This is occasionally useful to clients as " +"well. (Note that this only works if the base class is accessible as " +"``BaseClassName`` in the global scope.)" msgstr "" "A származtatott osztály metódusa, amely felülírja a szülőosztály egy " "metódusát, valójában inkább kiterjeszti az eredeti metódust, és nem " @@ -1093,18 +991,15 @@ msgstr "" "(Fontos, hogy ez csak akkor működik, ha a szülőosztály a globális névtérben " "lett létrehozva, vagy közvetlenül beimportálva.)" -#: ../../tutorial/classes.rst:612 msgid "Python has two built-in functions that work with inheritance:" msgstr "" -#: ../../tutorial/classes.rst:614 msgid "" "Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)`` " "will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " "derived from :class:`int`." msgstr "" -#: ../../tutorial/classes.rst:618 msgid "" "Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)`` " "is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " @@ -1112,11 +1007,9 @@ msgid "" "subclass of :class:`int`." msgstr "" -#: ../../tutorial/classes.rst:628 msgid "Multiple Inheritance" msgstr "Többszörös öröklés" -#: ../../tutorial/classes.rst:630 msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" @@ -1124,7 +1017,6 @@ msgstr "" "A Python támogatja a többszörös öröklést egy formáját is. Egy több " "szülőosztályból származtatott osztály definíciója a következőképp néz ki::" -#: ../../tutorial/classes.rst:633 msgid "" "class DerivedClassName(Base1, Base2, Base3):\n" " \n" @@ -1134,7 +1026,6 @@ msgid "" " " msgstr "" -#: ../../tutorial/classes.rst:640 msgid "" "For most purposes, in the simplest cases, you can think of the search for " "attributes inherited from a parent class as depth-first, left-to-right, not " @@ -1145,7 +1036,6 @@ msgid "" "for in :class:`!Base2`, and so on." msgstr "" -#: ../../tutorial/classes.rst:647 msgid "" "In fact, it is slightly more complex than that; the method resolution order " "changes dynamically to support cooperative calls to :func:`super`. This " @@ -1153,15 +1043,14 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" -"Néhányan első pillanatban arra gondolnak, hogy a :class:`Szulo2`-ben és " -"a :class:`Szulo3`-ban kellene előbb keresni, a :class:`Szulo1` előtt --- " +"Néhányan első pillanatban arra gondolnak, hogy a :class:`Szulo2`-ben és a :" +"class:`Szulo3`-ban kellene előbb keresni, a :class:`Szulo1` előtt --- " "mondván hogy ez természetesebb lenne. Ez az elgondolás viszont igényli annak " "ismeretét, hogy mely jellemzőt definiáltak a :class:`Szulo1`-ben vagy annak " "egyik szülőosztályában, és csak ezután tudod elkerülni a :class:`Szulo2`-ben " "lévő névütközéseket. A mélyebb először szabály nem tesz különbséget a " "helyben definiált és öröklött változók között." -#: ../../tutorial/classes.rst:653 msgid "" "Dynamic ordering is necessary because all cases of multiple inheritance " "exhibit one or more diamond relationships (where at least one of the parent " @@ -1177,11 +1066,9 @@ msgid "" "multiple inheritance. For more detail, see :ref:`python_2.3_mro`." msgstr "" -#: ../../tutorial/classes.rst:670 msgid "Private Variables" msgstr "Privát változók" -#: ../../tutorial/classes.rst:672 msgid "" "\"Private\" instance variables that cannot be accessed except from inside an " "object don't exist in Python. However, there is a convention that is " @@ -1200,7 +1087,6 @@ msgstr "" "is, ha más osztályok példányait saját privát változói közé veszi fel (???" "Ford: ellenőrizni!)" -#: ../../tutorial/classes.rst:682 msgid "" "Since there is a valid use-case for class-private members (namely to avoid " "name clashes of names with names defined by subclasses), there is limited " @@ -1222,19 +1108,16 @@ msgstr "" "problémák elkerülését célozzák meg --- így még mindig leheséges annak, aki " "nagyon akarja, hogy elérje vagy módosítsa a privátnak tartott változókat." -#: ../../tutorial/classes.rst:693 msgid "" "The :ref:`private name mangling specifications ` for " "details and special cases." msgstr "" -#: ../../tutorial/classes.rst:696 msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" msgstr "" -#: ../../tutorial/classes.rst:699 msgid "" "class Mapping:\n" " def __init__(self, iterable):\n" @@ -1256,7 +1139,6 @@ msgid "" " self.items_list.append(item)" msgstr "" -#: ../../tutorial/classes.rst:718 msgid "" "The above example would work even if ``MappingSubclass`` were to introduce a " "``__update`` identifier since it is replaced with ``_Mapping__update`` in " @@ -1264,7 +1146,6 @@ msgid "" "``MappingSubclass`` class respectively." msgstr "" -#: ../../tutorial/classes.rst:723 msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " "still is possible to access or modify a variable that is considered " @@ -1272,7 +1153,6 @@ msgid "" "debugger." msgstr "" -#: ../../tutorial/classes.rst:727 msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " "classname of the invoking class to be the current class; this is similar to " @@ -1287,18 +1167,15 @@ msgstr "" "esetében. Hasonló korlátozások léteznek a ``getattr()``, ``setattr()`` és " "``delattr()`` esetében, ha közvetlenül hívják meg a ``__dict__`` utasítást." -#: ../../tutorial/classes.rst:738 msgid "Odds and Ends" msgstr "Egyebek..." -#: ../../tutorial/classes.rst:740 msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. The idiomatic " "approach is to use :mod:`dataclasses` for this purpose::" msgstr "" -#: ../../tutorial/classes.rst:744 msgid "" "from dataclasses import dataclass\n" "\n" @@ -1309,7 +1186,6 @@ msgid "" " salary: int" msgstr "" -#: ../../tutorial/classes.rst:754 msgid "" ">>> john = Employee('john', 'computer lab', 1000)\n" ">>> john.dept\n" @@ -1318,7 +1194,6 @@ msgid "" "1000" msgstr "" -#: ../../tutorial/classes.rst:760 msgid "" "A piece of Python code that expects a particular abstract data type can " "often be passed a class that emulates the methods of that data type " @@ -1328,27 +1203,23 @@ msgid "" "instead, and pass it as an argument." msgstr "" -#: ../../tutorial/classes.rst:772 msgid "" -":ref:`Instance method objects ` have attributes, " -"too: :attr:`m.__self__ ` is the instance object with the " -"method :meth:`!m`, and :attr:`m.__func__ ` is " -"the :ref:`function object ` corresponding to the method." +":ref:`Instance method objects ` have attributes, too: :" +"attr:`m.__self__ ` is the instance object with the method :" +"meth:`!m`, and :attr:`m.__func__ ` is the :ref:`function " +"object ` corresponding to the method." msgstr "" -#: ../../tutorial/classes.rst:782 msgid "Iterators" msgstr "Iterátorok" -#: ../../tutorial/classes.rst:784 msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" msgstr "" -"Valószínűleg már észrevetted, hogy a legtöbb tárolóobjektum bejárható " -"a :keyword:`for` ciklusutasítás használatával::" +"Valószínűleg már észrevetted, hogy a legtöbb tárolóobjektum bejárható a :" +"keyword:`for` ciklusutasítás használatával::" -#: ../../tutorial/classes.rst:787 msgid "" "for element in [1, 2, 3]:\n" " print(element)\n" @@ -1362,20 +1233,18 @@ msgid "" " print(line, end='')" msgstr "" -#: ../../tutorial/classes.rst:798 msgid "" "This style of access is clear, concise, and convenient. The use of " -"iterators pervades and unifies Python. Behind the scenes, " -"the :keyword:`for` statement calls :func:`iter` on the container object. " -"The function returns an iterator object that defines the " -"method :meth:`~iterator.__next__` which accesses elements in the container " -"one at a time. When there are no more elements, :meth:`~iterator.__next__` " -"raises a :exc:`StopIteration` exception which tells the :keyword:`!for` loop " -"to terminate. You can call the :meth:`~iterator.__next__` method using " -"the :func:`next` built-in function; this example shows how it all works::" +"iterators pervades and unifies Python. Behind the scenes, the :keyword:" +"`for` statement calls :func:`iter` on the container object. The function " +"returns an iterator object that defines the method :meth:`~iterator." +"__next__` which accesses elements in the container one at a time. When " +"there are no more elements, :meth:`~iterator.__next__` raises a :exc:" +"`StopIteration` exception which tells the :keyword:`!for` loop to " +"terminate. You can call the :meth:`~iterator.__next__` method using the :" +"func:`next` built-in function; this example shows how it all works::" msgstr "" -#: ../../tutorial/classes.rst:807 msgid "" ">>> s = 'abc'\n" ">>> it = iter(s)\n" @@ -1394,7 +1263,6 @@ msgid "" "StopIteration" msgstr "" -#: ../../tutorial/classes.rst:823 msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " "iterator behavior to your classes. Define an :meth:`~container.__iter__` " @@ -1403,7 +1271,6 @@ msgid "" "``self``::" msgstr "" -#: ../../tutorial/classes.rst:828 msgid "" "class Reverse:\n" " \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" @@ -1421,7 +1288,6 @@ msgid "" " return self.data[self.index]" msgstr "" -#: ../../tutorial/classes.rst:845 msgid "" ">>> rev = Reverse('spam')\n" ">>> iter(rev)\n" @@ -1435,28 +1301,24 @@ msgid "" "s" msgstr "" -#: ../../tutorial/classes.rst:860 msgid "Generators" msgstr "Generátorok" -#: ../../tutorial/classes.rst:862 msgid "" ":term:`Generators ` are a simple and powerful tool for creating " -"iterators. They are written like regular functions but use " -"the :keyword:`yield` statement whenever they want to return data. Each " -"time :func:`next` is called on it, the generator resumes where it left off " -"(it remembers all the data values and which statement was last executed). " -"An example shows that generators can be trivially easy to create::" +"iterators. They are written like regular functions but use the :keyword:" +"`yield` statement whenever they want to return data. Each time :func:`next` " +"is called on it, the generator resumes where it left off (it remembers all " +"the data values and which statement was last executed). An example shows " +"that generators can be trivially easy to create::" msgstr "" -#: ../../tutorial/classes.rst:869 msgid "" "def reverse(data):\n" " for index in range(len(data)-1, -1, -1):\n" " yield data[index]" msgstr "" -#: ../../tutorial/classes.rst:875 msgid "" ">>> for char in reverse('golf'):\n" "... print(char)\n" @@ -1467,25 +1329,22 @@ msgid "" "g" msgstr "" -#: ../../tutorial/classes.rst:883 msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " -"compact is that the :meth:`~iterator.__iter__` " -"and :meth:`~generator.__next__` methods are created automatically." +"compact is that the :meth:`~iterator.__iter__` and :meth:`~generator." +"__next__` methods are created automatically." msgstr "" -#: ../../tutorial/classes.rst:888 msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " -"and much more clear than an approach using instance variables like " -"``self.index`` and ``self.data``." +"and much more clear than an approach using instance variables like ``self." +"index`` and ``self.data``." msgstr "" "Egy másik fontos lehetőség hogy a helyi változók, és a végrehajtás állapota " "automatikusan tárolódik a generátor két futása között." -#: ../../tutorial/classes.rst:893 msgid "" "In addition to automatic method creation and saving program state, when " "generators terminate, they automatically raise :exc:`StopIteration`. In " @@ -1493,16 +1352,14 @@ msgid "" "effort than writing a regular function." msgstr "" "Az automatikus metóduslétrehozáson és programállapot-mentésen felül, amikor " -"a generátor futása megszakad, ez az esemény " -"automatikusan :exc:`StopIteration` kivételt vált ki. Egymással kombinálva " -"ezek a nyelvi szolgáltatások egyszerűvé teszik az iterátorok készítését " -"néhány függvény megírásának megfelelő -- viszonylag kis erőfeszítéssel." +"a generátor futása megszakad, ez az esemény automatikusan :exc:" +"`StopIteration` kivételt vált ki. Egymással kombinálva ezek a nyelvi " +"szolgáltatások egyszerűvé teszik az iterátorok készítését néhány függvény " +"megírásának megfelelő -- viszonylag kis erőfeszítéssel." -#: ../../tutorial/classes.rst:902 msgid "Generator Expressions" msgstr "Generátorkifejezések" -#: ../../tutorial/classes.rst:904 msgid "" "Some simple generators can be coded succinctly as expressions using a syntax " "similar to list comprehensions but with parentheses instead of square " @@ -1512,11 +1369,9 @@ msgid "" "more memory friendly than equivalent list comprehensions." msgstr "" -#: ../../tutorial/classes.rst:911 msgid "Examples::" msgstr "Példák::" -#: ../../tutorial/classes.rst:913 msgid "" ">>> sum(i*i for i in range(10)) # sum of squares\n" "285\n" @@ -1536,11 +1391,9 @@ msgid "" "['f', 'l', 'o', 'g']" msgstr "" -#: ../../tutorial/classes.rst:932 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/classes.rst:933 msgid "" "Except for one thing. Module objects have a secret read-only attribute " "called :attr:`~object.__dict__` which returns the dictionary used to " @@ -1550,18 +1403,14 @@ msgid "" "mortem debuggers." msgstr "" -#: ../../tutorial/classes.rst:343 msgid "object" msgstr "" -#: ../../tutorial/classes.rst:343 msgid "method" msgstr "" -#: ../../tutorial/classes.rst:679 msgid "name" msgstr "" -#: ../../tutorial/classes.rst:679 msgid "mangling" msgstr "" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 3727230..d8baf7c 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,28 +22,23 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/controlflow.rst:5 msgid "More Control Flow Tools" msgstr "További vezérlő utasítások" -#: ../../tutorial/controlflow.rst:7 msgid "" "As well as the :keyword:`while` statement just introduced, Python uses a few " "more that we will encounter in this chapter." msgstr "" -#: ../../tutorial/controlflow.rst:14 msgid ":keyword:`!if` Statements" msgstr "" -#: ../../tutorial/controlflow.rst:16 msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" msgstr "" "Talán a legjobban ismert utasítástípus az :keyword:`if` utasítás. Példa::" -#: ../../tutorial/controlflow.rst:19 msgid "" ">>> x = int(input(\"Please enter an integer: \"))\n" "Please enter an integer: 42\n" @@ -60,38 +55,33 @@ msgid "" "More" msgstr "" -#: ../../tutorial/controlflow.rst:33 msgid "" "There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " "part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " -"and is useful to avoid excessive indentation. An :keyword:`!" -"if` ... :keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute " -"for the ``switch`` or ``case`` statements found in other languages." +"and is useful to avoid excessive indentation. An :keyword:`!if` ... :" +"keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " +"``switch`` or ``case`` statements found in other languages." msgstr "" -#: ../../tutorial/controlflow.rst:39 msgid "" "If you're comparing the same value to several constants, or checking for " "specific types or attributes, you may also find the :keyword:`!match` " "statement useful. For more details see :ref:`tut-match`." msgstr "" -#: ../../tutorial/controlflow.rst:46 msgid ":keyword:`!for` Statements" msgstr "" -#: ../../tutorial/controlflow.rst:51 msgid "" "The :keyword:`for` statement in Python differs a bit from what you may be " "used to in C or Pascal. Rather than always iterating over an arithmetic " "progression of numbers (like in Pascal), or giving the user the ability to " -"define both the iteration step and halting condition (as C), " -"Python's :keyword:`!for` statement iterates over the items of any sequence " -"(a list or a string), in the order that they appear in the sequence. For " -"example (no pun intended):" +"define both the iteration step and halting condition (as C), Python's :" +"keyword:`!for` statement iterates over the items of any sequence (a list or " +"a string), in the order that they appear in the sequence. For example (no " +"pun intended):" msgstr "" -#: ../../tutorial/controlflow.rst:63 msgid "" ">>> # Measure some strings:\n" ">>> words = ['cat', 'window', 'defenestrate']\n" @@ -103,14 +93,12 @@ msgid "" "defenestrate 12" msgstr "" -#: ../../tutorial/controlflow.rst:72 msgid "" "Code that modifies a collection while iterating over that same collection " "can be tricky to get right. Instead, it is usually more straight-forward to " "loop over a copy of the collection or to create a new collection::" msgstr "" -#: ../../tutorial/controlflow.rst:76 msgid "" "# Create a sample collection\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" @@ -127,20 +115,16 @@ msgid "" " active_users[user] = status" msgstr "" -#: ../../tutorial/controlflow.rst:94 msgid "The :func:`range` Function" msgstr "A :func:`range` függvény" -#: ../../tutorial/controlflow.rst:96 msgid "" -"If you do need to iterate over a sequence of numbers, the built-in " -"function :func:`range` comes in handy. It generates arithmetic " -"progressions::" +"If you do need to iterate over a sequence of numbers, the built-in function :" +"func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" "Ha egy számsorozaton kell végighaladnunk, a :func:`range` beépített függvény " "lehet szolgálatunkra. Ez egy számtani sorozatot állít elő::" -#: ../../tutorial/controlflow.rst:99 msgid "" ">>> for i in range(5):\n" "... print(i)\n" @@ -152,7 +136,6 @@ msgid "" "4" msgstr "" -#: ../../tutorial/controlflow.rst:108 msgid "" "The given end point is never part of the generated sequence; ``range(10)`` " "generates 10 values, the legal indices for items of a sequence of length " @@ -164,7 +147,6 @@ msgstr "" "sorozat más számmal kezdődjön, vagy hogy más lépésközt adjunk meg (akár " "negatívat is)::" -#: ../../tutorial/controlflow.rst:113 msgid "" ">>> list(range(5, 10))\n" "[5, 6, 7, 8, 9]\n" @@ -176,7 +158,6 @@ msgid "" "[-10, -40, -70]" msgstr "" -#: ../../tutorial/controlflow.rst:122 msgid "" "To iterate over the indices of a sequence, you can combine :func:`range` " "and :func:`len` as follows::" @@ -184,7 +165,6 @@ msgstr "" "Ha egy sorozat indexein akarunk végighaladni, használjuk a :func:`range` " "és :func:`len` függvényeket a következőképpen::" -#: ../../tutorial/controlflow.rst:125 msgid "" ">>> a = ['Mary', 'had', 'a', 'little', 'lamb']\n" ">>> for i in range(len(a)):\n" @@ -197,23 +177,19 @@ msgid "" "4 lamb" msgstr "" -#: ../../tutorial/controlflow.rst:135 msgid "" "In most such cases, however, it is convenient to use the :func:`enumerate` " "function, see :ref:`tut-loopidioms`." msgstr "" -#: ../../tutorial/controlflow.rst:138 msgid "A strange thing happens if you just print a range::" msgstr "" -#: ../../tutorial/controlflow.rst:140 msgid "" ">>> range(10)\n" "range(0, 10)" msgstr "" -#: ../../tutorial/controlflow.rst:143 msgid "" "In many ways the object returned by :func:`range` behaves as if it is a " "list, but in fact it isn't. It is an object which returns the successive " @@ -221,39 +197,33 @@ msgid "" "really make the list, thus saving space." msgstr "" -#: ../../tutorial/controlflow.rst:148 msgid "" "We say such an object is :term:`iterable`, that is, suitable as a target for " "functions and constructs that expect something from which they can obtain " -"successive items until the supply is exhausted. We have seen that " -"the :keyword:`for` statement is such a construct, while an example of a " -"function that takes an iterable is :func:`sum`::" +"successive items until the supply is exhausted. We have seen that the :" +"keyword:`for` statement is such a construct, while an example of a function " +"that takes an iterable is :func:`sum`::" msgstr "" -#: ../../tutorial/controlflow.rst:154 msgid "" ">>> sum(range(4)) # 0 + 1 + 2 + 3\n" "6" msgstr "" -#: ../../tutorial/controlflow.rst:157 msgid "" "Later we will see more functions that return iterables and take iterables as " "arguments. In chapter :ref:`tut-structures`, we will discuss in more detail " "about :func:`list`." msgstr "" -#: ../../tutorial/controlflow.rst:164 msgid ":keyword:`!break` and :keyword:`!continue` Statements" msgstr "" -#: ../../tutorial/controlflow.rst:166 msgid "" -"The :keyword:`break` statement breaks out of the innermost " -"enclosing :keyword:`for` or :keyword:`while` loop::" +"The :keyword:`break` statement breaks out of the innermost enclosing :" +"keyword:`for` or :keyword:`while` loop::" msgstr "" -#: ../../tutorial/controlflow.rst:169 msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -267,13 +237,11 @@ msgid "" "9 equals 3 * 3" msgstr "" -#: ../../tutorial/controlflow.rst:180 msgid "" "The :keyword:`continue` statement continues with the next iteration of the " "loop::" msgstr "" -#: ../../tutorial/controlflow.rst:183 msgid "" ">>> for num in range(2, 10):\n" "... if num % 2 == 0:\n" @@ -291,11 +259,9 @@ msgid "" "Found an odd number 9" msgstr "" -#: ../../tutorial/controlflow.rst:202 msgid ":keyword:`!else` Clauses on Loops" msgstr "" -#: ../../tutorial/controlflow.rst:204 msgid "" "In a :keyword:`!for` or :keyword:`!while` loop the :keyword:`!break` " "statement may be paired with an :keyword:`!else` clause. If the loop " @@ -303,19 +269,16 @@ msgid "" "clause executes." msgstr "" -#: ../../tutorial/controlflow.rst:208 msgid "" "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " "loop finishes its final iteration, that is, if no break occurred." msgstr "" -#: ../../tutorial/controlflow.rst:211 msgid "" "In a :keyword:`while` loop, it's executed after the loop's condition becomes " "false." msgstr "" -#: ../../tutorial/controlflow.rst:213 msgid "" "In either kind of loop, the :keyword:`!else` clause is **not** executed if " "the loop was terminated by a :keyword:`break`. Of course, other ways of " @@ -323,13 +286,11 @@ msgid "" "will also skip execution of the :keyword:`else` clause." msgstr "" -#: ../../tutorial/controlflow.rst:218 msgid "" "This is exemplified in the following :keyword:`!for` loop, which searches " "for prime numbers::" msgstr "" -#: ../../tutorial/controlflow.rst:221 msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -350,13 +311,11 @@ msgid "" "9 equals 3 * 3" msgstr "" -#: ../../tutorial/controlflow.rst:239 msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" -#: ../../tutorial/controlflow.rst:242 msgid "" "One way to think of the else clause is to imagine it paired with the ``if`` " "inside the loop. As the loop executes, it will run a sequence like if/if/if/" @@ -365,7 +324,6 @@ msgid "" "true, the ``else`` clause outside the loop will execute." msgstr "" -#: ../../tutorial/controlflow.rst:248 msgid "" "When used with a loop, the ``else`` clause has more in common with the " "``else`` clause of a :keyword:`try` statement than it does with that of " @@ -375,11 +333,9 @@ msgid "" "handling`." msgstr "" -#: ../../tutorial/controlflow.rst:257 msgid ":keyword:`!pass` Statements" msgstr "" -#: ../../tutorial/controlflow.rst:259 msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" @@ -388,25 +344,21 @@ msgstr "" "szintaktikailag szükség van egy utasításra, de a programban nem kell semmit " "sem csinálni. Például::" -#: ../../tutorial/controlflow.rst:262 msgid "" ">>> while True:\n" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." msgstr "" -#: ../../tutorial/controlflow.rst:266 msgid "This is commonly used for creating minimal classes::" msgstr "Gyakran használjuk arra, hogy minimális osztályt hozzunk létre::" -#: ../../tutorial/controlflow.rst:268 msgid "" ">>> class MyEmptyClass:\n" "... pass\n" "..." msgstr "" -#: ../../tutorial/controlflow.rst:272 msgid "" "Another place :keyword:`pass` can be used is as a place-holder for a " "function or conditional body when you are working on new code, allowing you " @@ -414,18 +366,23 @@ msgid "" "ignored::" msgstr "" -#: ../../tutorial/controlflow.rst:276 msgid "" ">>> def initlog(*args):\n" "... pass # Remember to implement this!\n" "..." msgstr "" -#: ../../tutorial/controlflow.rst:284 +msgid "" +"For this last case, many people use the ellipsis literal :code:`...` instead " +"of :code:`pass`. This use has no special meaning to Python, and is not part " +"of the language definition (you could use any constant expression here), " +"but :code:`...` is used conventionally as a placeholder body as well. See :" +"ref:`bltin-ellipsis-object`." +msgstr "" + msgid ":keyword:`!match` Statements" msgstr "" -#: ../../tutorial/controlflow.rst:286 msgid "" "A :keyword:`match` statement takes an expression and compares its value to " "successive patterns given as one or more case blocks. This is superficially " @@ -436,12 +393,10 @@ msgid "" "value into variables. If no case matches, none of the branches is executed." msgstr "" -#: ../../tutorial/controlflow.rst:295 msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" -#: ../../tutorial/controlflow.rst:297 msgid "" "def http_error(status):\n" " match status:\n" @@ -455,30 +410,25 @@ msgid "" " return \"Something's wrong with the internet\"" msgstr "" -#: ../../tutorial/controlflow.rst:308 msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match." msgstr "" -#: ../../tutorial/controlflow.rst:311 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" -#: ../../tutorial/controlflow.rst:313 msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" msgstr "" -#: ../../tutorial/controlflow.rst:316 msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" msgstr "" -#: ../../tutorial/controlflow.rst:319 msgid "" "# point is an (x, y) tuple\n" "match point:\n" @@ -494,7 +444,6 @@ msgid "" " raise ValueError(\"Not a point\")" msgstr "" -#: ../../tutorial/controlflow.rst:332 msgid "" "Study that one carefully! The first pattern has two literals, and can be " "thought of as an extension of the literal pattern shown above. But the next " @@ -504,14 +453,12 @@ msgid "" "point``." msgstr "" -#: ../../tutorial/controlflow.rst:339 msgid "" "If you are using classes to structure your data you can use the class name " "followed by an argument list resembling a constructor, but with the ability " "to capture attributes into variables::" msgstr "" -#: ../../tutorial/controlflow.rst:343 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -532,7 +479,6 @@ msgid "" " print(\"Not a point\")" msgstr "" -#: ../../tutorial/controlflow.rst:361 msgid "" "You can use positional parameters with some builtin classes that provide an " "ordering for their attributes (e.g. dataclasses). You can also define a " @@ -542,7 +488,6 @@ msgid "" "attribute to the ``var`` variable)::" msgstr "" -#: ../../tutorial/controlflow.rst:367 msgid "" "Point(1, var)\n" "Point(1, y=var)\n" @@ -550,24 +495,21 @@ msgid "" "Point(y=var, x=1)" msgstr "" -#: ../../tutorial/controlflow.rst:372 msgid "" "A recommended way to read patterns is to look at them as an extended form of " "what you would put on the left of an assignment, to understand which " "variables would be set to what. Only the standalone names (like ``var`` " -"above) are assigned to by a match statement. Dotted names (like " -"``foo.bar``), attribute names (the ``x=`` and ``y=`` above) or class names " +"above) are assigned to by a match statement. Dotted names (like ``foo." +"bar``), attribute names (the ``x=`` and ``y=`` above) or class names " "(recognized by the \"(...)\" next to them like ``Point`` above) are never " "assigned to." msgstr "" -#: ../../tutorial/controlflow.rst:379 msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of " "Points, with ``__match_args__`` added, we could match it like this::" msgstr "" -#: ../../tutorial/controlflow.rst:382 msgid "" "class Point:\n" " __match_args__ = ('x', 'y')\n" @@ -588,14 +530,12 @@ msgid "" " print(\"Something else\")" msgstr "" -#: ../../tutorial/controlflow.rst:400 msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" -#: ../../tutorial/controlflow.rst:404 msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -604,18 +544,15 @@ msgid "" " print(f\"Not on the diagonal\")" msgstr "" -#: ../../tutorial/controlflow.rst:410 msgid "Several other key features of this statement:" msgstr "" -#: ../../tutorial/controlflow.rst:412 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. An important exception is " "that they don't match iterators or strings." msgstr "" -#: ../../tutorial/controlflow.rst:416 msgid "" "Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, " "*rest)`` work similar to unpacking assignments. The name after ``*`` may " @@ -623,7 +560,6 @@ msgid "" "without binding the remaining items." msgstr "" -#: ../../tutorial/controlflow.rst:421 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " @@ -631,33 +567,27 @@ msgid "" "also supported. (But ``**_`` would be redundant, so it is not allowed.)" msgstr "" -#: ../../tutorial/controlflow.rst:426 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" -#: ../../tutorial/controlflow.rst:428 msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "" -#: ../../tutorial/controlflow.rst:430 msgid "" "will capture the second element of the input as ``p2`` (as long as the input " "is a sequence of two points)" msgstr "" -#: ../../tutorial/controlflow.rst:433 msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" -#: ../../tutorial/controlflow.rst:436 msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" msgstr "" -#: ../../tutorial/controlflow.rst:439 msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -676,17 +606,14 @@ msgid "" " print(\"I'm feeling the blues :(\")" msgstr "" -#: ../../tutorial/controlflow.rst:455 msgid "" -"For a more detailed explanation and additional examples, you can look " -"into :pep:`636` which is written in a tutorial format." +"For a more detailed explanation and additional examples, you can look into :" +"pep:`636` which is written in a tutorial format." msgstr "" -#: ../../tutorial/controlflow.rst:461 msgid "Defining Functions" msgstr "Függvények definiálása" -#: ../../tutorial/controlflow.rst:463 msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" @@ -694,7 +621,6 @@ msgstr "" "Létrehozhatunk egy függvényt, amely egy megadott értékig írja ki a " "Fibonacci--sorozatot::" -#: ../../tutorial/controlflow.rst:466 msgid "" ">>> def fib(n): # write Fibonacci series less than n\n" "... \"\"\"Print a Fibonacci series less than n.\"\"\"\n" @@ -709,7 +635,6 @@ msgid "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" msgstr "" -#: ../../tutorial/controlflow.rst:483 msgid "" "The keyword :keyword:`def` introduces a function *definition*. It must be " "followed by the function name and the parenthesized list of formal " @@ -721,26 +646,24 @@ msgstr "" "utasítások -- amelyek a definíció testét alkotják -- a következő sorban " "kezdődnek, és behúzással kell kezdeni azokat." -#: ../../tutorial/controlflow.rst:488 msgid "" "The first statement of the function body can optionally be a string literal; " -"this string literal is the function's documentation string, " -"or :dfn:`docstring`. (More about docstrings can be found in the " -"section :ref:`tut-docstrings`.) There are tools which use docstrings to " -"automatically produce online or printed documentation, or to let the user " -"interactively browse through code; it's good practice to include docstrings " -"in code that you write, so make a habit of it." +"this string literal is the function's documentation string, or :dfn:" +"`docstring`. (More about docstrings can be found in the section :ref:`tut-" +"docstrings`.) There are tools which use docstrings to automatically produce " +"online or printed documentation, or to let the user interactively browse " +"through code; it's good practice to include docstrings in code that you " +"write, so make a habit of it." msgstr "" "A függvény testének első utasítása lehet egy literális karakterlánc is; ez a " -"karakterlánc a függvény dokumentációs karakterlánca, angolul " -"röviden :dfn:`docstring`. (Bővebben a docstring-ről a következő " -"fejezetben: :ref:`tut-docstrings`.) Vannak eszközök, amelyek " -"a :dfn:`docstring`-et használják ahhoz, hogy az online vagy a nyomtatott " -"dokumentációt automatikusan elkészítsék, vagy hogy a felhasználót segítsék a " -"kódban történő interaktív böngészéshez. Jó szokás, hogy a docstringet " -"beleírjuk a kódba, kérünk téged hogy te is szokjál rá." +"karakterlánc a függvény dokumentációs karakterlánca, angolul röviden :dfn:" +"`docstring`. (Bővebben a docstring-ről a következő fejezetben: :ref:`tut-" +"docstrings`.) Vannak eszközök, amelyek a :dfn:`docstring`-et használják " +"ahhoz, hogy az online vagy a nyomtatott dokumentációt automatikusan " +"elkészítsék, vagy hogy a felhasználót segítsék a kódban történő interaktív " +"böngészéshez. Jó szokás, hogy a docstringet beleírjuk a kódba, kérünk téged " +"hogy te is szokjál rá." -#: ../../tutorial/controlflow.rst:495 msgid "" "The *execution* of a function introduces a new symbol table used for the " "local variables of the function. More precisely, all variable assignments " @@ -754,7 +677,6 @@ msgid "" "statement), although they may be referenced." msgstr "" -#: ../../tutorial/controlflow.rst:506 msgid "" "The actual parameters (arguments) to a function call are introduced in the " "local symbol table of the called function when it is called; thus, arguments " @@ -764,7 +686,6 @@ msgid "" "created for that call." msgstr "" -#: ../../tutorial/controlflow.rst:513 msgid "" "A function definition associates the function name with the function object " "in the current symbol table. The interpreter recognizes the object pointed " @@ -772,7 +693,6 @@ msgid "" "that same function object and can also be used to access the function::" msgstr "" -#: ../../tutorial/controlflow.rst:518 msgid "" ">>> fib\n" "\n" @@ -781,32 +701,29 @@ msgid "" "0 1 1 2 3 5 8 13 21 34 55 89" msgstr "" -#: ../../tutorial/controlflow.rst:524 msgid "" "Coming from other languages, you might object that ``fib`` is not a function " "but a procedure since it doesn't return a value. In fact, even functions " "without a :keyword:`return` statement do return a value, albeit a rather " "boring one. This value is called ``None`` (it's a built-in name). Writing " "the value ``None`` is normally suppressed by the interpreter if it would be " -"the only value written. You can see it if you really want to " -"using :func:`print`::" +"the only value written. You can see it if you really want to using :func:" +"`print`::" msgstr "" "Más nyelvektől jőve kifogásolhatja valaki, hogy a ``fib`` nem függvény, " "hanem eljárás, mivel nem tér vissza semmilyen értékkel. Valójában azok a " "függvények is, amelyekben nincs :keyword:`return` utasítás, visszaadnak egy " "értéket, bár egy elég unalmasat. Ez az érték a ``None`` (egy beépített " "név). A ``None`` érték kiírását általában elnyomja az értelmező, ha csak " -"ezt az értéket kell kiírnia. Erről meggyőződhetünk, ha akarunk " -"a :func:`print` függvény használatával::" +"ezt az értéket kell kiírnia. Erről meggyőződhetünk, ha akarunk a :func:" +"`print` függvény használatával::" -#: ../../tutorial/controlflow.rst:531 msgid "" ">>> fib(0)\n" ">>> print(fib(0))\n" "None" msgstr "" -#: ../../tutorial/controlflow.rst:535 msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" @@ -814,7 +731,6 @@ msgstr "" "Könnyen írhatunk olyan függvényt, amely visszatér a Fibonacci-sorozat " "értékeit tartalmazó listával ahelyett, hogy kiíratná azokat::" -#: ../../tutorial/controlflow.rst:538 msgid "" ">>> def fib2(n): # return Fibonacci series up to n\n" "... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" @@ -830,18 +746,15 @@ msgid "" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" -#: ../../tutorial/controlflow.rst:551 msgid "This example, as usual, demonstrates some new Python features:" msgstr "Ez a példa néhány új vonását mutatja a Pythonnak:" -#: ../../tutorial/controlflow.rst:553 msgid "" -"The :keyword:`return` statement returns with a value from a " -"function. :keyword:`!return` without an expression argument returns " -"``None``. Falling off the end of a function also returns ``None``." +"The :keyword:`return` statement returns with a value from a function. :" +"keyword:`!return` without an expression argument returns ``None``. Falling " +"off the end of a function also returns ``None``." msgstr "" -#: ../../tutorial/controlflow.rst:557 msgid "" "The statement ``result.append(a)`` calls a *method* of the list object " "``result``. A method is a function that 'belongs' to an object and is named " @@ -849,18 +762,16 @@ msgid "" "expression), and ``methodname`` is the name of a method that is defined by " "the object's type. Different types define different methods. Methods of " "different types may have the same name without causing ambiguity. (It is " -"possible to define your own object types and methods, using *classes*, " -"see :ref:`tut-classes`) The method :meth:`!append` shown in the example is " +"possible to define your own object types and methods, using *classes*, see :" +"ref:`tut-classes`) The method :meth:`~list.append` shown in the example is " "defined for list objects; it adds a new element at the end of the list. In " "this example it is equivalent to ``result = result + [a]``, but more " "efficient." msgstr "" -#: ../../tutorial/controlflow.rst:572 msgid "More on Defining Functions" msgstr "A függvények definiálásáról bővebben" -#: ../../tutorial/controlflow.rst:574 msgid "" "It is also possible to define functions with a variable number of arguments. " "There are three forms, which can be combined." @@ -868,11 +779,9 @@ msgstr "" "Lehetőségünk van függvényeket definiálni változó számú argumentummal. Ennek " "három formája van, amelyek variálhatók." -#: ../../tutorial/controlflow.rst:581 msgid "Default Argument Values" msgstr "Alapértelmezett (default) argumentumértékek" -#: ../../tutorial/controlflow.rst:583 msgid "" "The most useful form is to specify a default value for one or more " "arguments. This creates a function that can be called with fewer arguments " @@ -883,7 +792,6 @@ msgstr "" "felvesz, ha nem adunk értéket neki). Ez így egy olyan függvényt hoz létre, " "amelyet kevesebb argumentummal is meghívhatunk, mint amennyivel definiáltuk::" -#: ../../tutorial/controlflow.rst:587 msgid "" "def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" @@ -898,18 +806,15 @@ msgid "" " print(reminder)" msgstr "" -#: ../../tutorial/controlflow.rst:599 msgid "This function can be called in several ways:" msgstr "Ez a függvény többféle módon hívható meg:" -#: ../../tutorial/controlflow.rst:601 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" "megadhatjuk csak a kötelező argumentumot: ``ask_ok('Valóban ki akarsz " "lépni?')``" -#: ../../tutorial/controlflow.rst:603 msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" @@ -917,7 +822,6 @@ msgstr "" "csak egy elhagyható argumentumot adunk meg: ``ask_ok('Felülírhatom a " "fájlt?', 2)``." -#: ../../tutorial/controlflow.rst:605 msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" @@ -925,7 +829,6 @@ msgstr "" "minden argumentumot megadunk: ``ask_ok('Felülírhatom a fájlt?', 2, 'igen-nel " "vagy nem-mel válaszolj!')``." -#: ../../tutorial/controlflow.rst:608 msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." @@ -933,7 +836,6 @@ msgstr "" "Az előző program egyben példa az :keyword:`in` kulcsszó használatára is. Így " "tesztelhetjük, hogy a sorozat vajon tartalmaz-e egy adott értéket, vagy nem." -#: ../../tutorial/controlflow.rst:611 msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" @@ -942,7 +844,6 @@ msgstr "" "definíciójával először találkozik, emiatt ezek kiszámítása csak egyszer " "történik meg! Így például a következő program::" -#: ../../tutorial/controlflow.rst:614 msgid "" "i = 5\n" "\n" @@ -953,11 +854,9 @@ msgid "" "f()" msgstr "" -#: ../../tutorial/controlflow.rst:622 msgid "will print ``5``." msgstr "``5``-öt ír ki." -#: ../../tutorial/controlflow.rst:624 msgid "" "**Important warning:** The default value is evaluated only once. This makes " "a difference when the default is a mutable object such as a list, " @@ -970,7 +869,6 @@ msgstr "" "osztály. Például az alábbi függvény összegyűjti az egymás utáni hívások " "során neki adott paramétereket::" -#: ../../tutorial/controlflow.rst:629 msgid "" "def f(a, L=[]):\n" " L.append(a)\n" @@ -981,18 +879,15 @@ msgid "" "print(f(3))" msgstr "" -#: ../../tutorial/controlflow.rst:637 msgid "This will print ::" msgstr "A program kimenete::" -#: ../../tutorial/controlflow.rst:639 msgid "" "[1]\n" "[1, 2]\n" "[1, 2, 3]" msgstr "" -#: ../../tutorial/controlflow.rst:643 msgid "" "If you don't want the default to be shared between subsequent calls, you can " "write the function like this instead::" @@ -1000,7 +895,6 @@ msgstr "" "Ha nem akarod az alapértékeket láthatóvá tenni az egymást követő hívások " "számára, akkor inkább ehhez hasonlóan írd a függvényt::" -#: ../../tutorial/controlflow.rst:646 msgid "" "def f(a, L=None):\n" " if L is None:\n" @@ -1009,11 +903,9 @@ msgid "" " return L" msgstr "" -#: ../../tutorial/controlflow.rst:656 msgid "Keyword Arguments" msgstr "Kulcsszavas argumentumok" -#: ../../tutorial/controlflow.rst:658 msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " @@ -1023,7 +915,6 @@ msgstr "" "kulcsszavas argumentumok használatával is meghívhatunk. Például a következő " "függvény::" -#: ../../tutorial/controlflow.rst:661 msgid "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" " print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -1032,14 +923,12 @@ msgid "" " print(\"-- It's\", state, \"!\")" msgstr "" -#: ../../tutorial/controlflow.rst:667 msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " "of the following ways::" msgstr "meghívható az összes alábbi módon::" -#: ../../tutorial/controlflow.rst:671 msgid "" "parrot(1000) # 1 positional " "argument\n" @@ -1052,11 +941,9 @@ msgid "" "keyword" msgstr "" -#: ../../tutorial/controlflow.rst:678 msgid "but all the following calls would be invalid::" msgstr "de a következő hívások mind érvénytelenek::" -#: ../../tutorial/controlflow.rst:680 msgid "" "parrot() # required argument missing\n" "parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword " @@ -1065,7 +952,6 @@ msgid "" "parrot(actor='John Cleese') # unknown keyword argument" msgstr "" -#: ../../tutorial/controlflow.rst:685 msgid "" "In a function call, keyword arguments must follow positional arguments. All " "the keyword arguments passed must match one of the arguments accepted by the " @@ -1084,7 +970,6 @@ msgstr "" "argumentum egynél több alkalommal értéket. Itt van egy példa, amely nem " "hajtódik végre emiatt a megkötés miatt::" -#: ../../tutorial/controlflow.rst:693 msgid "" ">>> def function(a):\n" "... pass\n" @@ -1095,7 +980,6 @@ msgid "" "TypeError: function() got multiple values for argument 'a'" msgstr "" -#: ../../tutorial/controlflow.rst:701 msgid "" "When a final formal parameter of the form ``**name`` is present, it receives " "a dictionary (see :ref:`typesmapping`) containing all keyword arguments " @@ -1106,7 +990,6 @@ msgid "" "occur before ``**name``.) For example, if we define a function like this::" msgstr "" -#: ../../tutorial/controlflow.rst:709 msgid "" "def cheeseshop(kind, *arguments, **keywords):\n" " print(\"-- Do you have any\", kind, \"?\")\n" @@ -1118,11 +1001,9 @@ msgid "" " print(kw, \":\", keywords[kw])" msgstr "" -#: ../../tutorial/controlflow.rst:718 msgid "It could be called like this::" msgstr "Ez meghívható így is::" -#: ../../tutorial/controlflow.rst:720 msgid "" "cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" " \"It's really very, VERY runny, sir.\",\n" @@ -1131,11 +1012,9 @@ msgid "" " sketch=\"Cheese Shop Sketch\")" msgstr "" -#: ../../tutorial/controlflow.rst:726 msgid "and of course it would print:" msgstr "és természetesen ezt fogja kiírni:" -#: ../../tutorial/controlflow.rst:728 msgid "" "-- Do you have any Limburger ?\n" "-- I'm sorry, we're all out of Limburger\n" @@ -1147,7 +1026,6 @@ msgid "" "sketch : Cheese Shop Sketch" msgstr "" -#: ../../tutorial/controlflow.rst:739 msgid "" "Note that the order in which the keyword arguments are printed is guaranteed " "to match the order in which they were provided in the function call." @@ -1157,11 +1035,9 @@ msgstr "" "rendezett listáját raktuk; ha nem ezt tesszük, akkor az a sorrend, ahogy az " "argumentumokat kiiratjuk határozatlan lenne." -#: ../../tutorial/controlflow.rst:743 msgid "Special parameters" msgstr "" -#: ../../tutorial/controlflow.rst:745 msgid "" "By default, arguments may be passed to a Python function either by position " "or explicitly by keyword. For readability and performance, it makes sense to " @@ -1170,11 +1046,9 @@ msgid "" "position or keyword, or by keyword." msgstr "" -#: ../../tutorial/controlflow.rst:751 msgid "A function definition may look like:" msgstr "" -#: ../../tutorial/controlflow.rst:753 msgid "" "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" @@ -1184,7 +1058,6 @@ msgid "" " -- Positional only" msgstr "" -#: ../../tutorial/controlflow.rst:762 msgid "" "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind " "of parameter by how the arguments may be passed to the function: positional-" @@ -1192,21 +1065,17 @@ msgid "" "referred to as named parameters." msgstr "" -#: ../../tutorial/controlflow.rst:769 msgid "Positional-or-Keyword Arguments" msgstr "" -#: ../../tutorial/controlflow.rst:771 msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may " "be passed to a function by position or by keyword." msgstr "" -#: ../../tutorial/controlflow.rst:776 msgid "Positional-Only Parameters" msgstr "" -#: ../../tutorial/controlflow.rst:778 msgid "" "Looking at this in a bit more detail, it is possible to mark certain " "parameters as *positional-only*. If *positional-only*, the parameters' order " @@ -1217,34 +1086,28 @@ msgid "" "positional-only parameters." msgstr "" -#: ../../tutorial/controlflow.rst:786 msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." msgstr "" -#: ../../tutorial/controlflow.rst:790 msgid "Keyword-Only Arguments" msgstr "" -#: ../../tutorial/controlflow.rst:792 msgid "" "To mark parameters as *keyword-only*, indicating the parameters must be " "passed by keyword argument, place an ``*`` in the arguments list just before " "the first *keyword-only* parameter." msgstr "" -#: ../../tutorial/controlflow.rst:798 msgid "Function Examples" msgstr "" -#: ../../tutorial/controlflow.rst:800 msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" msgstr "" -#: ../../tutorial/controlflow.rst:803 msgid "" ">>> def standard_arg(arg):\n" "... print(arg)\n" @@ -1259,14 +1122,12 @@ msgid "" "... print(pos_only, standard, kwd_only)" msgstr "" -#: ../../tutorial/controlflow.rst:816 msgid "" "The first function definition, ``standard_arg``, the most familiar form, " "places no restrictions on the calling convention and arguments may be passed " "by position or keyword::" msgstr "" -#: ../../tutorial/controlflow.rst:820 msgid "" ">>> standard_arg(2)\n" "2\n" @@ -1275,13 +1136,11 @@ msgid "" "2" msgstr "" -#: ../../tutorial/controlflow.rst:826 msgid "" "The second function ``pos_only_arg`` is restricted to only use positional " "parameters as there is a ``/`` in the function definition::" msgstr "" -#: ../../tutorial/controlflow.rst:829 msgid "" ">>> pos_only_arg(1)\n" "1\n" @@ -1293,13 +1152,11 @@ msgid "" "keyword arguments: 'arg'" msgstr "" -#: ../../tutorial/controlflow.rst:837 msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" msgstr "" -#: ../../tutorial/controlflow.rst:840 msgid "" ">>> kwd_only_arg(3)\n" "Traceback (most recent call last):\n" @@ -1310,13 +1167,11 @@ msgid "" "3" msgstr "" -#: ../../tutorial/controlflow.rst:848 msgid "" "And the last uses all three calling conventions in the same function " "definition::" msgstr "" -#: ../../tutorial/controlflow.rst:851 msgid "" ">>> combined_example(1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -1336,26 +1191,22 @@ msgid "" "keyword arguments: 'pos_only'" msgstr "" -#: ../../tutorial/controlflow.rst:868 msgid "" "Finally, consider this function definition which has a potential collision " "between the positional argument ``name`` and ``**kwds`` which has ``name`` " "as a key::" msgstr "" -#: ../../tutorial/controlflow.rst:870 msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" -#: ../../tutorial/controlflow.rst:873 msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" msgstr "" -#: ../../tutorial/controlflow.rst:876 msgid "" ">>> foo(1, **{'name': 2})\n" "Traceback (most recent call last):\n" @@ -1364,14 +1215,12 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/controlflow.rst:882 msgid "" "But using ``/`` (positional only arguments), it is possible since it allows " "``name`` as a positional argument and ``'name'`` as a key in the keyword " "arguments::" msgstr "" -#: ../../tutorial/controlflow.rst:884 msgid "" ">>> def foo(name, /, **kwds):\n" "... return 'name' in kwds\n" @@ -1380,31 +1229,25 @@ msgid "" "True" msgstr "" -#: ../../tutorial/controlflow.rst:890 msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." msgstr "" -#: ../../tutorial/controlflow.rst:895 msgid "Recap" msgstr "" -#: ../../tutorial/controlflow.rst:897 msgid "" "The use case will determine which parameters to use in the function " "definition::" msgstr "" -#: ../../tutorial/controlflow.rst:899 msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "" -#: ../../tutorial/controlflow.rst:901 msgid "As guidance:" msgstr "" -#: ../../tutorial/controlflow.rst:903 msgid "" "Use positional-only if you want the name of the parameters to not be " "available to the user. This is useful when parameter names have no real " @@ -1413,24 +1256,20 @@ msgid "" "keywords." msgstr "" -#: ../../tutorial/controlflow.rst:908 msgid "" "Use keyword-only when names have meaning and the function definition is more " "understandable by being explicit with names or you want to prevent users " "relying on the position of the argument being passed." msgstr "" -#: ../../tutorial/controlflow.rst:911 msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." msgstr "" -#: ../../tutorial/controlflow.rst:917 msgid "Arbitrary Argument Lists" msgstr "Tetszőleges hosszúságú argumentumlisták" -#: ../../tutorial/controlflow.rst:922 msgid "" "Finally, the least frequently used option is to specify that a function can " "be called with an arbitrary number of arguments. These arguments will be " @@ -1442,13 +1281,11 @@ msgstr "" "helyezi el a Python. A változó számosságú argumentum előtt akárhány (akár " "egy sem) egyszerű argumentum is előfordulhat. ::" -#: ../../tutorial/controlflow.rst:927 msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" -#: ../../tutorial/controlflow.rst:931 msgid "" "Normally, these *variadic* arguments will be last in the list of formal " "parameters, because they scoop up all remaining input arguments that are " @@ -1457,7 +1294,6 @@ msgid "" "be used as keywords rather than positional arguments. ::" msgstr "" -#: ../../tutorial/controlflow.rst:937 msgid "" ">>> def concat(*args, sep=\"/\"):\n" "... return sep.join(args)\n" @@ -1468,11 +1304,9 @@ msgid "" "'earth.mars.venus'" msgstr "" -#: ../../tutorial/controlflow.rst:948 msgid "Unpacking Argument Lists" msgstr "Argumentumlista kicsomagolása" -#: ../../tutorial/controlflow.rst:950 msgid "" "The reverse situation occurs when the arguments are already in a list or " "tuple but need to be unpacked for a function call requiring separate " @@ -1483,14 +1317,12 @@ msgid "" msgstr "" "Ennek fordítottja történik, ha listába vagy tuple-ba becsomagolt " "argumentumokat ki kellene csomagolni olyan függvény meghívásához, amely " -"elkülönített, helyhezkötött változókat vár. Például a " -"beépített :func:`range` függvény egymástól elkülönítve várja a *start* és " -"*stop* értékeket. Ha ezek nem egymástól elválasztva állnak rendelkezésre, " -"akkor a :keyword:`break` függvényhívásban a ``*`` műveletjelet tegyük az " -"összetett-típusú változó neve elé, ez kicsomagolja a listából vagy tuple-ből " -"az adatokat. ::" +"elkülönített, helyhezkötött változókat vár. Például a beépített :func:" +"`range` függvény egymástól elkülönítve várja a *start* és *stop* értékeket. " +"Ha ezek nem egymástól elválasztva állnak rendelkezésre, akkor a :keyword:" +"`break` függvényhívásban a ``*`` műveletjelet tegyük az összetett-típusú " +"változó neve elé, ez kicsomagolja a listából vagy tuple-ből az adatokat. ::" -#: ../../tutorial/controlflow.rst:957 msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" @@ -1500,13 +1332,11 @@ msgid "" "[3, 4, 5]" msgstr "" -#: ../../tutorial/controlflow.rst:966 msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" msgstr "" -#: ../../tutorial/controlflow.rst:969 msgid "" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" "... print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -1520,11 +1350,9 @@ msgid "" "bleedin' demised !" msgstr "" -#: ../../tutorial/controlflow.rst:982 msgid "Lambda Expressions" msgstr "Lambda-formák" -#: ../../tutorial/controlflow.rst:984 msgid "" "Small anonymous functions can be created with the :keyword:`lambda` keyword. " "This function returns the sum of its two arguments: ``lambda a, b: a+b``. " @@ -1542,7 +1370,6 @@ msgstr "" "beágyazott függvényekhez hasonlóan látja az őt meghívó környezet minden " "változóját. ::" -#: ../../tutorial/controlflow.rst:992 msgid "" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" @@ -1554,15 +1381,12 @@ msgid "" "43" msgstr "" -#: ../../tutorial/controlflow.rst:1001 msgid "" "The above example uses a lambda expression to return a function. Another " -"use is to pass a small function as an argument. For " -"instance, :meth:`list.sort` takes a sorting key function *key* which can be " -"a lambda function::" +"use is to pass a small function as an argument. For instance, :meth:`list." +"sort` takes a sorting key function *key* which can be a lambda function::" msgstr "" -#: ../../tutorial/controlflow.rst:1005 msgid "" ">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" ">>> pairs.sort(key=lambda pair: pair[1])\n" @@ -1570,11 +1394,9 @@ msgid "" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" msgstr "" -#: ../../tutorial/controlflow.rst:1014 msgid "Documentation Strings" msgstr "A dokumentációs karakterláncok" -#: ../../tutorial/controlflow.rst:1021 msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -1582,7 +1404,6 @@ msgstr "" "A dokumentációs karakterláncok tartalmával és formájával kapcsolatban egy " "kialakult és bevált szokásról beszélhetünk." -#: ../../tutorial/controlflow.rst:1024 msgid "" "The first line should always be a short, concise summary of the object's " "purpose. For brevity, it should not explicitly state the object's name or " @@ -1595,7 +1416,6 @@ msgstr "" "adatok más úton is kinyerhetők (kivéve, ha az objektum neve a függvény " "működését leíró ige). A szöveg nagybetűvel kezdődik és ponttal végződik." -#: ../../tutorial/controlflow.rst:1030 msgid "" "If there are more lines in the documentation string, the second line should " "be blank, visually separating the summary from the rest of the description. " @@ -1607,7 +1427,6 @@ msgstr "" "további részétől. Az üres sort egy vagy több rész követheti, ahol leírjuk az " "objektum hívásának módját, a mellékhatásokat stb." -#: ../../tutorial/controlflow.rst:1035 msgid "" "The Python parser does not strip indentation from multi-line string literals " "in Python, so tools that process documentation have to strip indentation if " @@ -1635,11 +1454,9 @@ msgstr "" "el. A behúzások egyenlőségét ajánlott mindig a tabulátorokat kibontva " "ellenőrizni (általában 1 tabulátort 8 helyközzel helyettesítünk)." -#: ../../tutorial/controlflow.rst:1047 msgid "Here is an example of a multi-line docstring::" msgstr "Itt van egy példa a többsoros docstring-re::" -#: ../../tutorial/controlflow.rst:1049 msgid "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -1654,20 +1471,17 @@ msgid "" "No, really, it doesn't do anything." msgstr "" -#: ../../tutorial/controlflow.rst:1065 msgid "Function Annotations" msgstr "" -#: ../../tutorial/controlflow.rst:1073 msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " "and :pep:`484` for more information)." msgstr "" -#: ../../tutorial/controlflow.rst:1077 msgid "" -":term:`Annotations ` are stored in the :attr:`!" +":term:`Annotations ` are stored in the :attr:`~object." "__annotations__` attribute of the function as a dictionary and have no " "effect on any other part of the function. Parameter annotations are defined " "by a colon after the parameter name, followed by an expression evaluating to " @@ -1677,7 +1491,6 @@ msgid "" "a required argument, an optional argument, and the return value annotated::" msgstr "" -#: ../../tutorial/controlflow.rst:1086 msgid "" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" @@ -1691,11 +1504,9 @@ msgid "" "'spam and eggs'" msgstr "" -#: ../../tutorial/controlflow.rst:1099 msgid "Intermezzo: Coding Style" msgstr "Intermezzo: kódolási stílus" -#: ../../tutorial/controlflow.rst:1104 msgid "" "Now that you are about to write longer, more complex pieces of Python, it is " "a good time to talk about *coding style*. Most languages can be written (or " @@ -1709,7 +1520,6 @@ msgstr "" "másikak. Az, hogy a kódunkat mások számára is olvashatóvá tegyük mindig jó " "ötlet, és egy helyes kódolási stílus elfogadása sokat segít ebben." -#: ../../tutorial/controlflow.rst:1110 msgid "" "For Python, :pep:`8` has emerged as the style guide that most projects " "adhere to; it promotes a very readable and eye-pleasing coding style. Every " @@ -1721,11 +1531,9 @@ msgstr "" "javasol. Minden Python-fejlesztőnek el kellene olvasnia valamikor. Itt " "találod a legfontosabb pontjait:" -#: ../../tutorial/controlflow.rst:1115 msgid "Use 4-space indentation, and no tabs." msgstr "Használj 4-szóköz behúzást, de tabulátorokat ne!" -#: ../../tutorial/controlflow.rst:1117 msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -1735,11 +1543,9 @@ msgstr "" "mélységet enged meg) és a nagy behúzás (egyszerűbb olvasni) között. A " "tabulátorok keveredést okozhatnak, így jobb, ha elkerüljük." -#: ../../tutorial/controlflow.rst:1121 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "Törjük úgy a sorokat, hogy ne lépjék túl a 79 karakter hosszúságot!" -#: ../../tutorial/controlflow.rst:1123 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -1748,7 +1554,6 @@ msgstr "" "teszi, hogy több programfájlt jelenítsünk meg egymás mellett nagyobb " "kijelzőn." -#: ../../tutorial/controlflow.rst:1126 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " "inside functions." @@ -1756,15 +1561,12 @@ msgstr "" "Használj üres sorokat, hogy elválaszd a függvényeket és az osztályokat, " "valamint a nagyobb blokkokat egy függvényen belül!" -#: ../../tutorial/controlflow.rst:1129 msgid "When possible, put comments on a line of their own." msgstr "Ha lehet a megjegyzéseket a saját sorába írd!" -#: ../../tutorial/controlflow.rst:1131 msgid "Use docstrings." msgstr "Használj dokumentációs karakterláncokat!" -#: ../../tutorial/controlflow.rst:1133 msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." @@ -1772,7 +1574,6 @@ msgstr "" "Használj szóközöket a műveleti jelek körül és a vesszők után ``a = f(1, 2) + " "g(3, 4)``!" -#: ../../tutorial/controlflow.rst:1136 msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " @@ -1780,7 +1581,6 @@ msgid "" "argument (see :ref:`tut-firstclasses` for more on classes and methods)." msgstr "" -#: ../../tutorial/controlflow.rst:1141 msgid "" "Don't use fancy encodings if your code is meant to be used in international " "environments. Python's default, UTF-8, or even plain ASCII work best in any " @@ -1790,7 +1590,6 @@ msgstr "" "környezetben is használni fogják! A Python alapértelmezett UTF-8 kódolása, " "vagy az ASCII minden esetben jól működik." -#: ../../tutorial/controlflow.rst:1145 msgid "" "Likewise, don't use non-ASCII characters in identifiers if there is only the " "slightest chance people speaking a different language will read or maintain " @@ -1800,11 +1599,9 @@ msgstr "" "legkisebb esélye is van, hogy más nyelvet beszélő emberek fogják olvasni " "vagy karbantartani a kódot!" -#: ../../tutorial/controlflow.rst:1151 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/controlflow.rst:1152 msgid "" "Actually, *call by object reference* would be a better description, since if " "a mutable object is passed, the caller will see any changes the callee makes " @@ -1814,62 +1611,53 @@ msgstr "" "mivel, ha egy megváltoztatható objektumot adunk át, a hívó látni fogja az " "összes változást, amit a hívott függvény végez (elem beszúrása listába)." -#: ../../tutorial/controlflow.rst:48 msgid "statement" msgstr "" -#: ../../tutorial/controlflow.rst:48 msgid "for" msgstr "" -#: ../../tutorial/controlflow.rst:478 ../../tutorial/controlflow.rst:1016 +msgid "..." +msgstr "" + +msgid "ellipsis literal" +msgstr "" + msgid "documentation strings" msgstr "" -#: ../../tutorial/controlflow.rst:478 ../../tutorial/controlflow.rst:1016 msgid "docstrings" msgstr "" -#: ../../tutorial/controlflow.rst:478 ../../tutorial/controlflow.rst:1016 msgid "strings, documentation" msgstr "" -#: ../../tutorial/controlflow.rst:919 msgid "* (asterisk)" msgstr "" -#: ../../tutorial/controlflow.rst:919 ../../tutorial/controlflow.rst:963 msgid "in function calls" msgstr "" -#: ../../tutorial/controlflow.rst:963 msgid "**" msgstr "" -#: ../../tutorial/controlflow.rst:1068 msgid "function" msgstr "" -#: ../../tutorial/controlflow.rst:1068 msgid "annotations" msgstr "" -#: ../../tutorial/controlflow.rst:1068 msgid "->" msgstr "" -#: ../../tutorial/controlflow.rst:1068 msgid "function annotations" msgstr "" -#: ../../tutorial/controlflow.rst:1068 msgid ": (colon)" msgstr "" -#: ../../tutorial/controlflow.rst:1102 msgid "coding" msgstr "" -#: ../../tutorial/controlflow.rst:1102 msgid "style" msgstr "" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index d0acbe2..0e34e55 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/datastructures.rst:5 msgid "Data Structures" msgstr "Adatstruktúrák" -#: ../../tutorial/datastructures.rst:7 msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." @@ -34,11 +32,9 @@ msgstr "" "Ez a fejezet az eddig tanultakból pár dolgot részletesebben is leír, és pár " "új dolgot is megmutat." -#: ../../tutorial/datastructures.rst:13 msgid "More on Lists" msgstr "A listákról bővebben" -#: ../../tutorial/datastructures.rst:15 msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" @@ -46,30 +42,25 @@ msgstr "" "A lista adattípusnak a már megismerteken kívül több metódusa (method) is " "van. Az összes metódus ismertetése:" -#: ../../tutorial/datastructures.rst:22 msgid "Add an item to the end of the list. Similar to ``a[len(a):] = [x]``." msgstr "" -#: ../../tutorial/datastructures.rst:28 msgid "" "Extend the list by appending all the items from the iterable. Similar to " "``a[len(a):] = iterable``." msgstr "" -#: ../../tutorial/datastructures.rst:35 msgid "" "Insert an item at a given position. The first argument is the index of the " "element before which to insert, so ``a.insert(0, x)`` inserts at the front " "of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." msgstr "" -#: ../../tutorial/datastructures.rst:43 msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." msgstr "" -#: ../../tutorial/datastructures.rst:50 msgid "" "Remove the item at the given position in the list, and return it. If no " "index is specified, ``a.pop()`` removes and returns the last item in the " @@ -77,17 +68,14 @@ msgid "" "outside the list range." msgstr "" -#: ../../tutorial/datastructures.rst:59 msgid "Remove all items from the list. Similar to ``del a[:]``." msgstr "" -#: ../../tutorial/datastructures.rst:65 msgid "" -"Return zero-based index in the list of the first item whose value is equal " -"to *x*. Raises a :exc:`ValueError` if there is no such item." +"Return zero-based index of the first occurrence of *x* in the list. Raises " +"a :exc:`ValueError` if there is no such item." msgstr "" -#: ../../tutorial/datastructures.rst:68 msgid "" "The optional arguments *start* and *end* are interpreted as in the slice " "notation and are used to limit the search to a particular subsequence of the " @@ -95,29 +83,23 @@ msgid "" "sequence rather than the *start* argument." msgstr "" -#: ../../tutorial/datastructures.rst:77 msgid "Return the number of times *x* appears in the list." msgstr "" -#: ../../tutorial/datastructures.rst:83 msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" -#: ../../tutorial/datastructures.rst:90 msgid "Reverse the elements of the list in place." msgstr "" -#: ../../tutorial/datastructures.rst:96 msgid "Return a shallow copy of the list. Similar to ``a[:]``." msgstr "" -#: ../../tutorial/datastructures.rst:99 msgid "An example that uses most of the list methods::" msgstr "Egy példa, amely tartalmazza a legtöbb metódust::" -#: ../../tutorial/datastructures.rst:101 msgid "" ">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', " "'banana']\n" @@ -142,7 +124,6 @@ msgid "" "'pear'" msgstr "" -#: ../../tutorial/datastructures.rst:122 msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " @@ -150,7 +131,6 @@ msgid "" "structures in Python." msgstr "" -#: ../../tutorial/datastructures.rst:127 msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " @@ -159,20 +139,17 @@ msgid "" "relation. For example, ``3+4j < 5+7j`` isn't a valid comparison." msgstr "" -#: ../../tutorial/datastructures.rst:138 msgid "Using Lists as Stacks" msgstr "Lista használata veremként" -#: ../../tutorial/datastructures.rst:143 msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " -"add an item to the top of the stack, use :meth:`!append`. To retrieve an " -"item from the top of the stack, use :meth:`!pop` without an explicit index. " -"For example::" +"add an item to the top of the stack, use :meth:`~list.append`. To retrieve " +"an item from the top of the stack, use :meth:`~list.pop` without an explicit " +"index. For example::" msgstr "" -#: ../../tutorial/datastructures.rst:148 msgid "" ">>> stack = [3, 4, 5]\n" ">>> stack.append(6)\n" @@ -191,11 +168,9 @@ msgid "" "[3, 4]" msgstr "" -#: ../../tutorial/datastructures.rst:168 msgid "Using Lists as Queues" msgstr "A listák használata sorként (queue)" -#: ../../tutorial/datastructures.rst:172 msgid "" "It is also possible to use a list as a queue, where the first element added " "is the first element retrieved (\"first-in, first-out\"); however, lists are " @@ -209,7 +184,6 @@ msgstr "" "(pop) az gyors, addig a lista elejére beszúrás (insert) és onnan kiszedés " "lassú (mert az egész listát eggyel el kell tolni)." -#: ../../tutorial/datastructures.rst:178 msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" @@ -218,7 +192,6 @@ msgstr "" "amely úgy lett kialakítva, hogy mindkét oldalához gyorsan hozzá lehessen " "fűzni és elvenni elemet. Például::" -#: ../../tutorial/datastructures.rst:181 msgid "" ">>> from collections import deque\n" ">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" @@ -232,11 +205,9 @@ msgid "" "deque(['Michael', 'Terry', 'Graham'])" msgstr "" -#: ../../tutorial/datastructures.rst:196 msgid "List Comprehensions" msgstr "Listaértelmezés" -#: ../../tutorial/datastructures.rst:198 msgid "" "List comprehensions provide a concise way to create lists. Common " "applications are to make new lists where each element is the result of some " @@ -249,11 +220,9 @@ msgstr "" "valamilyen műveletet végzünk, vagy az elemek egy részhalmazát vesszük, " "amelyek bizonyos feltételeknek megfelelnek." -#: ../../tutorial/datastructures.rst:203 msgid "For example, assume we want to create a list of squares, like::" msgstr "Például, ha a négyzetszámok listáját akarjuk létrehozni, mint alább::" -#: ../../tutorial/datastructures.rst:205 msgid "" ">>> squares = []\n" ">>> for x in range(10):\n" @@ -263,7 +232,6 @@ msgid "" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" msgstr "" -#: ../../tutorial/datastructures.rst:212 msgid "" "Note that this creates (or overwrites) a variable named ``x`` that still " "exists after the loop completes. We can calculate the list of squares " @@ -273,23 +241,18 @@ msgstr "" "amely a ciklus lefutása után is létezni fog. A listát ilyen mellékhatás " "nélkül is létrehozhatjuk az alábbi módon::" -#: ../../tutorial/datastructures.rst:216 msgid "squares = list(map(lambda x: x**2, range(10)))" msgstr "" -#: ../../tutorial/datastructures.rst:218 msgid "or, equivalently::" msgstr "vagy ezzel egyenértékű módon::" -#: ../../tutorial/datastructures.rst:220 msgid "squares = [x**2 for x in range(10)]" msgstr "" -#: ../../tutorial/datastructures.rst:222 msgid "which is more concise and readable." msgstr "amely sokkal tömörebb és olvashatóbb." -#: ../../tutorial/datastructures.rst:224 msgid "" "A list comprehension consists of brackets containing an expression followed " "by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" @@ -299,17 +262,14 @@ msgid "" "lists if they are not equal::" msgstr "" -#: ../../tutorial/datastructures.rst:231 msgid "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" -#: ../../tutorial/datastructures.rst:234 msgid "and it's equivalent to::" msgstr "és ez egyenértékű az alábbival::" -#: ../../tutorial/datastructures.rst:236 msgid "" ">>> combs = []\n" ">>> for x in [1,2,3]:\n" @@ -321,7 +281,6 @@ msgid "" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" -#: ../../tutorial/datastructures.rst:245 msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the " "same in both these snippets." @@ -329,7 +288,6 @@ msgstr "" "Vedd észre, hogy a :keyword:`for` és :keyword:`if` állítások sorrendje " "azonos mindkét példában." -#: ../../tutorial/datastructures.rst:248 msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" @@ -337,7 +295,6 @@ msgstr "" "Ha a kifejezés egy tuple (pl. az ``(x, y)`` az előző példában), akkor " "zárójelbe kell rakni. ::" -#: ../../tutorial/datastructures.rst:251 msgid "" ">>> vec = [-4, -2, 0, 2, 4]\n" ">>> # create a new list with the values doubled\n" @@ -368,25 +325,21 @@ msgid "" "[1, 2, 3, 4, 5, 6, 7, 8, 9]" msgstr "" -#: ../../tutorial/datastructures.rst:279 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Egy listaértelmezés összetett kifejezéseket és egymásba ágyazott " "függvényeket is tartalmazhat::" -#: ../../tutorial/datastructures.rst:281 msgid "" ">>> from math import pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" msgstr "" -#: ../../tutorial/datastructures.rst:286 msgid "Nested List Comprehensions" msgstr "Egymásba ágyazott listaértelmezések" -#: ../../tutorial/datastructures.rst:288 msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." @@ -394,7 +347,6 @@ msgstr "" "Egy listaértelmezés eredeti kifejezése tetszőleges kifejezés lehet, akár egy " "másik listaértelmezés is." -#: ../../tutorial/datastructures.rst:291 msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" @@ -402,7 +354,6 @@ msgstr "" "Tekintsük a következő példát, amelyben egy 3x4-es mátrixot egy 4-elemű " "listákból álló 3-elemű lista tárol::" -#: ../../tutorial/datastructures.rst:294 msgid "" ">>> matrix = [\n" "... [1, 2, 3, 4],\n" @@ -411,26 +362,22 @@ msgid "" "... ]" msgstr "" -#: ../../tutorial/datastructures.rst:300 msgid "The following list comprehension will transpose rows and columns::" msgstr "" "A következő listaértelmezés felcseréli a sorokat és az oszlopokat " "(transzponálja a mátrixot)::" -#: ../../tutorial/datastructures.rst:302 msgid "" ">>> [[row[i] for row in matrix] for i in range(4)]\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" -#: ../../tutorial/datastructures.rst:305 msgid "" "As we saw in the previous section, the inner list comprehension is evaluated " "in the context of the :keyword:`for` that follows it, so this example is " "equivalent to::" msgstr "" -#: ../../tutorial/datastructures.rst:309 msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -440,11 +387,9 @@ msgid "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" -#: ../../tutorial/datastructures.rst:316 msgid "which, in turn, is the same as::" msgstr "amely pedig azonos az alábbival::" -#: ../../tutorial/datastructures.rst:318 msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -458,7 +403,6 @@ msgid "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" -#: ../../tutorial/datastructures.rst:329 msgid "" "In the real world, you should prefer built-in functions to complex flow " "statements. The :func:`zip` function would do a great job for this use case::" @@ -467,33 +411,28 @@ msgstr "" "összetett folyamatok helyett. A :func:`zip` függvény remek eredményt ad " "ebben az esetben::" -#: ../../tutorial/datastructures.rst:332 msgid "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" msgstr "" -#: ../../tutorial/datastructures.rst:335 msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" "Lásd :ref:`tut-unpacking-arguments` fejezetet a fenti sorban szereplő " "csillaggal kapcsolatban." -#: ../../tutorial/datastructures.rst:340 msgid "The :keyword:`!del` statement" msgstr "" -#: ../../tutorial/datastructures.rst:342 msgid "" "There is a way to remove an item from a list given its index instead of its " -"value: the :keyword:`del` statement. This differs from the :meth:`!pop` " -"method which returns a value. The :keyword:`!del` statement can also be " -"used to remove slices from a list or clear the entire list (which we did " +"value: the :keyword:`del` statement. This differs from the :meth:`~list." +"pop` method which returns a value. The :keyword:`!del` statement can also " +"be used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" -#: ../../tutorial/datastructures.rst:348 msgid "" ">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" ">>> del a[0]\n" @@ -507,17 +446,14 @@ msgid "" "[]" msgstr "" -#: ../../tutorial/datastructures.rst:359 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" "A :keyword:`del` utasítást arra is használhatjuk, hogy az egész változót " "töröljük::" -#: ../../tutorial/datastructures.rst:361 msgid ">>> del a" msgstr "" -#: ../../tutorial/datastructures.rst:363 msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." @@ -526,11 +462,9 @@ msgstr "" "értéket adunk neki). Később a :keyword:`del` utasításnak más alkalmazásával " "is találkozunk." -#: ../../tutorial/datastructures.rst:370 msgid "Tuples and Sequences" msgstr "Tuple-ok és sorozatok" -#: ../../tutorial/datastructures.rst:372 msgid "" "We saw that lists and strings have many common properties, such as indexing " "and slicing operations. They are two examples of *sequence* data types " @@ -547,12 +481,10 @@ msgstr "" "használják még a rendezett sorozat elnevezést, de az abban szereplő " "rendezett jelző félrevezető." -#: ../../tutorial/datastructures.rst:378 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "A tuple objektumokat tartalmaz vesszőkkel elválasztva, például::" -#: ../../tutorial/datastructures.rst:380 msgid "" ">>> t = 12345, 54321, 'hello!'\n" ">>> t[0]\n" @@ -574,7 +506,6 @@ msgid "" "([1, 2, 3], [3, 2, 1])" msgstr "" -#: ../../tutorial/datastructures.rst:400 msgid "" "As you see, on output tuples are always enclosed in parentheses, so that " "nested tuples are interpreted correctly; they may be input with or without " @@ -590,26 +521,24 @@ msgstr "" "de létrehozható olyan tuple, amelynek vannak megváltoztatható elemei, " "például listák." -#: ../../tutorial/datastructures.rst:407 msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " "usually contain a heterogeneous sequence of elements that are accessed via " "unpacking (see later in this section) or indexing (or even by attribute in " -"the case of :func:`namedtuples `). Lists " -"are :term:`mutable`, and their elements are usually homogeneous and are " -"accessed by iterating over the list." +"the case of :func:`namedtuples `). Lists are :term:" +"`mutable`, and their elements are usually homogeneous and are accessed by " +"iterating over the list." msgstr "" "Habár a tuple-ok hasonlóaknak látszanak a listákhoz, gyakran eltérő " -"helyzetekben és különböző célokra használjuk azokat. A tuple-" -"ok :term:`immutable` adattípusok, és gyakran azonos típusú elemek sorozatát " -"tárolja, amelyeket az úgynevezett szétpakolás révén érjük el (lásd később " -"ebben a fejezetben) vagy indexelés révén (vagy akár jellemzőjük révén " -"a :func:`namedtuples ` esetén). A " -"listák :term:`mutable` adattípusok, és az elemeik gyakran eltérő típusúak, " -"és elmeiket általában úgy érjük el, hogy végigmegyünk az elemeiken." +"helyzetekben és különböző célokra használjuk azokat. A tuple-ok :term:" +"`immutable` adattípusok, és gyakran azonos típusú elemek sorozatát tárolja, " +"amelyeket az úgynevezett szétpakolás révén érjük el (lásd később ebben a " +"fejezetben) vagy indexelés révén (vagy akár jellemzőjük révén a :func:" +"`namedtuples ` esetén). A listák :term:`mutable` " +"adattípusok, és az elemeik gyakran eltérő típusúak, és elmeiket általában " +"úgy érjük el, hogy végigmegyünk az elemeiken." -#: ../../tutorial/datastructures.rst:415 msgid "" "A special problem is the construction of tuples containing 0 or 1 items: the " "syntax has some extra quirks to accommodate these. Empty tuples are " @@ -622,7 +551,6 @@ msgstr "" "nulla elemű; az egy elemű pedig az érték után tett vesszővel (nem elég, ha " "az értéket zárójelbe tesszük). Csúnya, de hatékony. Például::" -#: ../../tutorial/datastructures.rst:421 msgid "" ">>> empty = ()\n" ">>> singleton = 'hello', # <-- note trailing comma\n" @@ -634,7 +562,6 @@ msgid "" "('hello',)" msgstr "" -#: ../../tutorial/datastructures.rst:430 msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " @@ -644,11 +571,9 @@ msgstr "" "csomagolásra*: a ``12345``, ``54321`` és ``'hello!'`` értékek egy tuple-ba " "kerülnek becsomagolásra. A fordított művelet is lehetséges, például::" -#: ../../tutorial/datastructures.rst:434 msgid ">>> x, y, z = t" msgstr "" -#: ../../tutorial/datastructures.rst:436 msgid "" "This is called, appropriately enough, *sequence unpacking* and works for any " "sequence on the right-hand side. Sequence unpacking requires that there are " @@ -662,11 +587,9 @@ msgstr "" "meg, hogy a többszörös értékadás valójában csak a tuple-ba csomagolás és a " "sorozat-szétpakolás kombinációja!" -#: ../../tutorial/datastructures.rst:446 msgid "Sets" msgstr "A halmazok (set)" -#: ../../tutorial/datastructures.rst:448 msgid "" "Python also includes a data type for *sets*. A set is an unordered " "collection with no duplicate elements. Basic uses include membership " @@ -680,7 +603,6 @@ msgstr "" "kiszűrése. A set objektumok támogatják az olyan matematikai műveleteket, " "mint az egyesítés, metszet, különbség, és a szimmetrikus eltérés." -#: ../../tutorial/datastructures.rst:453 msgid "" "Curly braces or the :func:`set` function can be used to create sets. Note: " "to create an empty set you have to use ``set()``, not ``{}``; the latter " @@ -688,15 +610,13 @@ msgid "" "section." msgstr "" "A halmazok létrehozására a kapcsos zárójel, vagy a :func:`set()` függvény " -"használható. Jegyezzük meg, hogy az üres halmaz létrehozásához csak " -"a :func:`set()` használható, a `{}` nem, mert az utóbbi üres szótárat hoz " -"létre: egy olyan adattszerkezetet, amelyet a következő fejezetben tárgyalunk." +"használható. Jegyezzük meg, hogy az üres halmaz létrehozásához csak a :func:" +"`set()` használható, a `{}` nem, mert az utóbbi üres szótárat hoz létre: egy " +"olyan adattszerkezetet, amelyet a következő fejezetben tárgyalunk." -#: ../../tutorial/datastructures.rst:457 msgid "Here is a brief demonstration::" msgstr "Íme egy rövid bemutató::" -#: ../../tutorial/datastructures.rst:459 msgid "" ">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n" ">>> print(basket) # show that duplicates have been " @@ -723,38 +643,33 @@ msgid "" "{'r', 'd', 'b', 'm', 'z', 'l'}" msgstr "" -#: ../../tutorial/datastructures.rst:482 msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "A listaértelmezéshez hasonlóan létezik halmazértelmezés is::" -#: ../../tutorial/datastructures.rst:485 msgid "" ">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n" ">>> a\n" "{'r', 'd'}" msgstr "" -#: ../../tutorial/datastructures.rst:493 msgid "Dictionaries" msgstr "Szótárak" -#: ../../tutorial/datastructures.rst:495 msgid "" -"Another useful data type built into Python is the *dictionary* " -"(see :ref:`typesmapping`). Dictionaries are sometimes found in other " -"languages as \"associative memories\" or \"associative arrays\". Unlike " -"sequences, which are indexed by a range of numbers, dictionaries are indexed " -"by *keys*, which can be any immutable type; strings and numbers can always " -"be keys. Tuples can be used as keys if they contain only strings, numbers, " -"or tuples; if a tuple contains any mutable object either directly or " -"indirectly, it cannot be used as a key. You can't use lists as keys, since " -"lists can be modified in place using index assignments, slice assignments, " -"or methods like :meth:`!append` and :meth:`!extend`." +"Another useful data type built into Python is the *dictionary* (see :ref:" +"`typesmapping`). Dictionaries are sometimes found in other languages as " +"\"associative memories\" or \"associative arrays\". Unlike sequences, which " +"are indexed by a range of numbers, dictionaries are indexed by *keys*, which " +"can be any immutable type; strings and numbers can always be keys. Tuples " +"can be used as keys if they contain only strings, numbers, or tuples; if a " +"tuple contains any mutable object either directly or indirectly, it cannot " +"be used as a key. You can't use lists as keys, since lists can be modified " +"in place using index assignments, slice assignments, or methods like :meth:" +"`~list.append` and :meth:`~list.extend`." msgstr "" -#: ../../tutorial/datastructures.rst:506 msgid "" "It is best to think of a dictionary as a set of *key: value* pairs, with the " "requirement that the keys are unique (within one dictionary). A pair of " @@ -763,12 +678,11 @@ msgid "" "dictionary; this is also the way dictionaries are written on output." msgstr "" -#: ../../tutorial/datastructures.rst:512 msgid "" "The main operations on a dictionary are storing a value with some key and " -"extracting the value given the key. It is also possible to delete a " -"key:value pair with ``del``. If you store using a key that is already in " -"use, the old value associated with that key is forgotten. It is an error to " +"extracting the value given the key. It is also possible to delete a key:" +"value pair with ``del``. If you store using a key that is already in use, " +"the old value associated with that key is forgotten. It is an error to " "extract a value using a non-existent key." msgstr "" "A legfontosabb műveletek egy szótáron: eltárolni egy értéket egy kulccsal " @@ -777,7 +691,6 @@ msgstr "" "amilyen kulcsot már használtál, a kulcshoz az új érték fog tartozni, a régi " "érték elveszik. Hiba, ha egy nemlétező kulcsra hivatkozol." -#: ../../tutorial/datastructures.rst:518 msgid "" "Performing ``list(d)`` on a dictionary returns a list of all the keys used " "in the dictionary, in insertion order (if you want it sorted, just use " @@ -785,11 +698,9 @@ msgid "" "use the :keyword:`in` keyword." msgstr "" -#: ../../tutorial/datastructures.rst:523 msgid "Here is a small example using a dictionary::" msgstr "Íme egy kis példa a szótár használatára::" -#: ../../tutorial/datastructures.rst:525 msgid "" ">>> tel = {'jack': 4098, 'sape': 4139}\n" ">>> tel['guido'] = 4127\n" @@ -811,7 +722,6 @@ msgid "" "False" msgstr "" -#: ../../tutorial/datastructures.rst:544 msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" @@ -819,13 +729,11 @@ msgstr "" "A :func:`dict` konstruktor közvetlenül tuple-okban tárolt kulcs-érték párok " "listájából is létre tudja hozni a szótárat. ::" -#: ../../tutorial/datastructures.rst:547 msgid "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" -#: ../../tutorial/datastructures.rst:550 msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" @@ -833,13 +741,11 @@ msgstr "" "Ezen felül a szótárértelmezés használható arra, hogy szótárat hozzunk létre " "tetszőleges kulcs- és értékkifejezésekből::" -#: ../../tutorial/datastructures.rst:553 msgid "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" msgstr "" -#: ../../tutorial/datastructures.rst:556 msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" @@ -847,23 +753,19 @@ msgstr "" "Ha a kulcsok egyszerű karakterláncok, néha egyszerűbb a párokat kulcsszavas " "argumentumokkal létrehozni::" -#: ../../tutorial/datastructures.rst:559 msgid "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" -#: ../../tutorial/datastructures.rst:566 msgid "Looping Techniques" msgstr "Ciklustechnikák" -#: ../../tutorial/datastructures.rst:568 msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`~dict.items` method. ::" msgstr "" -#: ../../tutorial/datastructures.rst:571 msgid "" ">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" ">>> for k, v in knights.items():\n" @@ -873,7 +775,6 @@ msgid "" "robin the brave" msgstr "" -#: ../../tutorial/datastructures.rst:578 msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" @@ -881,7 +782,6 @@ msgstr "" "Ha sorozaton megyünk végig, akkor a helyet jelző index értékét és a hozzá " "tartozó értéket egyszerre kaphatjuk meg az :func:`enumerate` függvénnyel. ::" -#: ../../tutorial/datastructures.rst:581 msgid "" ">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n" "... print(i, v)\n" @@ -891,15 +791,13 @@ msgid "" "2 toe" msgstr "" -#: ../../tutorial/datastructures.rst:588 msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" msgstr "" -"Két vagy több sorozat egyszerre történő feldolgozásához a sorozatokat " -"a :func:`zip` függvénnyel kell párba állítani." +"Két vagy több sorozat egyszerre történő feldolgozásához a sorozatokat a :" +"func:`zip` függvénnyel kell párba állítani." -#: ../../tutorial/datastructures.rst:591 msgid "" ">>> questions = ['name', 'quest', 'favorite color']\n" ">>> answers = ['lancelot', 'the holy grail', 'blue']\n" @@ -911,7 +809,6 @@ msgid "" "What is your favorite color? It is blue." msgstr "" -#: ../../tutorial/datastructures.rst:600 msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" @@ -919,7 +816,6 @@ msgstr "" "Egy sorozaton visszafelé haladáshoz először add meg a sorozatot, majd utána " "hívd meg a :func:`reversed` függvényt." -#: ../../tutorial/datastructures.rst:603 msgid "" ">>> for i in reversed(range(1, 10, 2)):\n" "... print(i)\n" @@ -931,7 +827,6 @@ msgid "" "1" msgstr "" -#: ../../tutorial/datastructures.rst:612 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" @@ -939,7 +834,6 @@ msgstr "" "Rendezett sorrendben való listázáshoz használd a :func:`sorted` függvényt, " "amely új, rendezett listát ad vissza, változatlanul hagyva a régi listát." -#: ../../tutorial/datastructures.rst:615 msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for i in sorted(basket):\n" @@ -953,15 +847,13 @@ msgid "" "pear" msgstr "" -#: ../../tutorial/datastructures.rst:626 msgid "" -"Using :func:`set` on a sequence eliminates duplicate elements. The use " -"of :func:`sorted` in combination with :func:`set` over a sequence is an " +"Using :func:`set` on a sequence eliminates duplicate elements. The use of :" +"func:`sorted` in combination with :func:`set` over a sequence is an " "idiomatic way to loop over unique elements of the sequence in sorted " "order. ::" msgstr "" -#: ../../tutorial/datastructures.rst:630 msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for f in sorted(set(basket)):\n" @@ -973,7 +865,6 @@ msgid "" "pear" msgstr "" -#: ../../tutorial/datastructures.rst:639 msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" @@ -982,7 +873,6 @@ msgstr "" "listával, azonban gyakran egyszerűbb és biztonságosabb egy új listát " "létrehozni ehelyett. ::" -#: ../../tutorial/datastructures.rst:642 msgid "" ">>> import math\n" ">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" @@ -995,11 +885,9 @@ msgid "" "[56.2, 51.7, 55.3, 52.5, 47.8]" msgstr "" -#: ../../tutorial/datastructures.rst:656 msgid "More on Conditions" msgstr "A feltételekről bővebben" -#: ../../tutorial/datastructures.rst:658 msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." @@ -1007,7 +895,6 @@ msgstr "" "A ``while`` és az ``if`` utasításokban eddig használt feltételek egyéb " "műveleteket is tartalmazhatnak az összehasonlítás mellett." -#: ../../tutorial/datastructures.rst:662 msgid "" "The comparison operators ``in`` and ``not in`` are membership tests that " "determine whether a value is in (or not in) a container. The operators " @@ -1016,7 +903,6 @@ msgid "" "than that of all numerical operators." msgstr "" -#: ../../tutorial/datastructures.rst:668 msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " "is less than ``b`` and moreover ``b`` equals ``c``." @@ -1024,7 +910,6 @@ msgstr "" "Relációkat láncolhatunk is, például: az ``a < b == c`` megvizsgálja, hogy " "az ``a`` kisebb-e mint ``b``, és ezen felül ``b`` egyenlő-e ``c``-vel." -#: ../../tutorial/datastructures.rst:671 msgid "" "Comparisons may be combined using the Boolean operators ``and`` and ``or``, " "and the outcome of a comparison (or of any other Boolean expression) may be " @@ -1041,7 +926,6 @@ msgstr "" "mint az ``(A and (not B)) or C``. Természetesen a zárójeleket használhatjuk " "a kívánt feltétel eléréséhez." -#: ../../tutorial/datastructures.rst:678 msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " @@ -1058,7 +942,6 @@ msgstr "" "visszatérési értéke -- ha általános értékeket és nem logikai értéket " "használunk -- az utolsónak kifejtett argumantummal egyezik." -#: ../../tutorial/datastructures.rst:685 msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" @@ -1066,7 +949,6 @@ msgstr "" "Lehetséges, hogy egy reláció vagy más logikai kifejezés értékét egy " "változóba rakjuk. Például::" -#: ../../tutorial/datastructures.rst:688 msgid "" ">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" ">>> non_null = string1 or string2 or string3\n" @@ -1074,7 +956,6 @@ msgid "" "'Trondheim'" msgstr "" -#: ../../tutorial/datastructures.rst:693 msgid "" "Note that in Python, unlike C, assignment inside expressions must be done " "explicitly with the :ref:`walrus operator `` is legal " "provided that the objects have appropriate comparison methods. For example, " @@ -1128,11 +1005,9 @@ msgstr "" "Máskülönben, egy önkényes rendezés helyett, az értelmező :exc:`TypeError` " "kivételt dob. " -#: ../../tutorial/datastructures.rst:732 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/datastructures.rst:733 msgid "" "Other languages may return the mutated object, which allows method chaining, " "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." diff --git a/tutorial/errors.po b/tutorial/errors.po index f170d74..812dc21 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/errors.rst:5 msgid "Errors and Exceptions" msgstr "Hibák és kivételek" -#: ../../tutorial/errors.rst:7 msgid "" "Until now error messages haven't been more than mentioned, but if you have " "tried out the examples you have probably seen some. There are (at least) " @@ -36,11 +34,9 @@ msgstr "" "feltehetően láttál néhányat. Kétfajta megkülönböztetendő hibafajta van: " "*szintaktikai hiba (syntax error)* és *kivétel (exception)*." -#: ../../tutorial/errors.rst:15 msgid "Syntax Errors" msgstr "Szintaktikai hibák" -#: ../../tutorial/errors.rst:17 msgid "" "Syntax errors, also known as parsing errors, are perhaps the most common " "kind of complaint you get while you are still learning Python::" @@ -48,7 +44,6 @@ msgstr "" "A szintaktikai hibák, vagy másképp elemzési hibák, talán a leggyakoribb " "hibaüzenetek, amíg tanulod a Pythont::" -#: ../../tutorial/errors.rst:20 msgid "" ">>> while True print('Hello world')\n" " File \"\", line 1\n" @@ -57,7 +52,6 @@ msgid "" "SyntaxError: invalid syntax" msgstr "" -#: ../../tutorial/errors.rst:26 msgid "" "The parser repeats the offending line and displays little arrows pointing at " "the place where the error was detected. Note that this is not always the " @@ -65,17 +59,14 @@ msgid "" "function :func:`print`, since a colon (``':'``) is missing just before it." msgstr "" -#: ../../tutorial/errors.rst:31 msgid "" "The file name (```` in our example) and line number are printed so " "you know where to look in case the input came from a file." msgstr "" -#: ../../tutorial/errors.rst:38 msgid "Exceptions" msgstr "Kivételek" -#: ../../tutorial/errors.rst:40 msgid "" "Even if a statement or expression is syntactically correct, it may cause an " "error when an attempt is made to execute it. Errors detected during " @@ -91,7 +82,6 @@ msgstr "" "kivételt általában nem kezelik a programok, ekkor az alábbiakhoz hasonló " "hibaüzeneteket adnak::" -#: ../../tutorial/errors.rst:46 msgid "" ">>> 10 * (1/0)\n" "Traceback (most recent call last):\n" @@ -113,28 +103,25 @@ msgid "" "TypeError: can only concatenate str (not \"int\") to str" msgstr "" -#: ../../tutorial/errors.rst:65 msgid "" "The last line of the error message indicates what happened. Exceptions come " "in different types, and the type is printed as part of the message: the " -"types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` " -"and :exc:`TypeError`. The string printed as the exception type is the name " -"of the built-in exception that occurred. This is true for all built-in " -"exceptions, but need not be true for user-defined exceptions (although it is " -"a useful convention). Standard exception names are built-in identifiers (not " -"reserved keywords)." +"types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` and :exc:" +"`TypeError`. The string printed as the exception type is the name of the " +"built-in exception that occurred. This is true for all built-in exceptions, " +"but need not be true for user-defined exceptions (although it is a useful " +"convention). Standard exception names are built-in identifiers (not reserved " +"keywords)." msgstr "" "A hibaüzenetek utolsó sora mutatja, mi történt. Különböző típusú " "kivételeket kaphatunk, és a típus az üzenet részeként kerül kiíratásra: a " -"típusok a példákban: :exc:`ZeroDivisionError` (nullával való " -"osztás), :exc:`NameError` (név hiba) és :exc:`TypeError` (típussal " -"kapcsolatos hiba). A kivétel típusaként kiírt szöveg a fellépő kivétel " -"beépített (built-in) neve. Ez minden belső kivételre igaz, de nem " -"feltétlenül igaz a felhasználó által definiált kivételekre (habár ez egy " -"hasznos megállapodás). A szokásos kivételnevek belső azonosítók (nem " -"fenntartott kulcsszavak)." +"típusok a példákban: :exc:`ZeroDivisionError` (nullával való osztás), :exc:" +"`NameError` (név hiba) és :exc:`TypeError` (típussal kapcsolatos hiba). A " +"kivétel típusaként kiírt szöveg a fellépő kivétel beépített (built-in) neve. " +"Ez minden belső kivételre igaz, de nem feltétlenül igaz a felhasználó által " +"definiált kivételekre (habár ez egy hasznos megállapodás). A szokásos " +"kivételnevek belső azonosítók (nem fenntartott kulcsszavak)." -#: ../../tutorial/errors.rst:73 msgid "" "The rest of the line provides detail based on the type of exception and what " "caused it." @@ -142,7 +129,6 @@ msgstr "" "A sor fennmaradó része egy részletezés, amelynek alakja a kivétel fajtájától " "függ." -#: ../../tutorial/errors.rst:76 msgid "" "The preceding part of the error message shows the context where the " "exception occurred, in the form of a stack traceback. In general it contains " @@ -150,25 +136,22 @@ msgid "" "read from standard input." msgstr "" -#: ../../tutorial/errors.rst:81 msgid "" ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." msgstr "" "A Python Library Reference felsorolja a belső kivételeket és a " "jelentéseiket." -#: ../../tutorial/errors.rst:87 msgid "Handling Exceptions" msgstr "Kivételek kezelése" -#: ../../tutorial/errors.rst:89 msgid "" "It is possible to write programs that handle selected exceptions. Look at " "the following example, which asks the user for input until a valid integer " -"has been entered, but allows the user to interrupt the program " -"(using :kbd:`Control-C` or whatever the operating system supports); note " -"that a user-generated interruption is signalled by raising " -"the :exc:`KeyboardInterrupt` exception. ::" +"has been entered, but allows the user to interrupt the program (using :kbd:" +"`Control-C` or whatever the operating system supports); note that a user-" +"generated interruption is signalled by raising the :exc:`KeyboardInterrupt` " +"exception. ::" msgstr "" "Van rá lehetőség, hogy olyan programokat írjunk, amik kezelik a különböző " "kivételeket (exception). Nézzük csak a következő példát, amely addig kérdezi " @@ -178,7 +161,6 @@ msgstr "" "a felhasználó által létrehozott megszakítás :exc:`KeyboardInterrupt` " "kivételként lép fel. ::" -#: ../../tutorial/errors.rst:95 msgid "" ">>> while True:\n" "... try:\n" @@ -189,27 +171,23 @@ msgid "" "..." msgstr "" -#: ../../tutorial/errors.rst:103 msgid "The :keyword:`try` statement works as follows." msgstr "A :keyword:`try` utasítás a következőképpen működik." -#: ../../tutorial/errors.rst:105 msgid "" -"First, the *try clause* (the statement(s) between the :keyword:`try` " -"and :keyword:`except` keywords) is executed." +"First, the *try clause* (the statement(s) between the :keyword:`try` and :" +"keyword:`except` keywords) is executed." msgstr "" -"Először a *try-mellékág* hajtódik végre, azaz a :keyword:`try` " -"és :keyword:`except` közötti utasítások." +"Először a *try-mellékág* hajtódik végre, azaz a :keyword:`try` és :keyword:" +"`except` közötti utasítások." -#: ../../tutorial/errors.rst:108 msgid "" -"If no exception occurs, the *except clause* is skipped and execution of " -"the :keyword:`try` statement is finished." +"If no exception occurs, the *except clause* is skipped and execution of the :" +"keyword:`try` statement is finished." msgstr "" -"Ha nem lép fel kivétel, az *except-ágat* a program átugorja, és " -"a :keyword:`try` utasítás befejeződik." +"Ha nem lép fel kivétel, az *except-ágat* a program átugorja, és a :keyword:" +"`try` utasítás befejeződik." -#: ../../tutorial/errors.rst:111 msgid "" "If an exception occurs during execution of the :keyword:`try` clause, the " "rest of the clause is skipped. Then, if its type matches the exception " @@ -217,7 +195,6 @@ msgid "" "and then execution continues after the try/except block." msgstr "" -#: ../../tutorial/errors.rst:116 msgid "" "If an exception occurs which does not match the exception named in the " "*except clause*, it is passed on to outer :keyword:`try` statements; if no " @@ -225,7 +202,6 @@ msgid "" "error message." msgstr "" -#: ../../tutorial/errors.rst:120 msgid "" "A :keyword:`try` statement may have more than one *except clause*, to " "specify handlers for different exceptions. At most one handler will be " @@ -235,13 +211,11 @@ msgid "" "for example::" msgstr "" -#: ../../tutorial/errors.rst:126 msgid "" "... except (RuntimeError, TypeError, NameError):\n" "... pass" msgstr "" -#: ../../tutorial/errors.rst:129 msgid "" "A class in an :keyword:`except` clause matches exceptions which are " "instances of the class itself or one of its derived classes (but not the " @@ -250,7 +224,6 @@ msgid "" "print B, C, D in that order::" msgstr "" -#: ../../tutorial/errors.rst:134 msgid "" "class B(Exception):\n" " pass\n" @@ -272,21 +245,18 @@ msgid "" " print(\"B\")" msgstr "" -#: ../../tutorial/errors.rst:153 msgid "" "Note that if the *except clauses* were reversed (with ``except B`` first), " "it would have printed B, B, B --- the first matching *except clause* is " "triggered." msgstr "" -#: ../../tutorial/errors.rst:156 msgid "" "When an exception occurs, it may have associated values, also known as the " "exception's *arguments*. The presence and types of the arguments depend on " "the exception type." msgstr "" -#: ../../tutorial/errors.rst:160 msgid "" "The *except clause* may specify a variable after the exception name. The " "variable is bound to the exception instance which typically has an ``args`` " @@ -295,7 +265,6 @@ msgid "" "explicitly accessing ``.args``. ::" msgstr "" -#: ../../tutorial/errors.rst:166 msgid "" ">>> try:\n" "... raise Exception('spam', 'eggs')\n" @@ -316,24 +285,21 @@ msgid "" "y = eggs" msgstr "" -#: ../../tutorial/errors.rst:183 msgid "" "The exception's :meth:`~object.__str__` output is printed as the last part " "('detail') of the message for unhandled exceptions." msgstr "" -#: ../../tutorial/errors.rst:186 msgid "" ":exc:`BaseException` is the common base class of all exceptions. One of its " "subclasses, :exc:`Exception`, is the base class of all the non-fatal " "exceptions. Exceptions which are not subclasses of :exc:`Exception` are not " "typically handled, because they are used to indicate that the program should " -"terminate. They include :exc:`SystemExit` which is raised " -"by :meth:`sys.exit` and :exc:`KeyboardInterrupt` which is raised when a user " -"wishes to interrupt the program." +"terminate. They include :exc:`SystemExit` which is raised by :meth:`sys." +"exit` and :exc:`KeyboardInterrupt` which is raised when a user wishes to " +"interrupt the program." msgstr "" -#: ../../tutorial/errors.rst:194 msgid "" ":exc:`Exception` can be used as a wildcard that catches (almost) everything. " "However, it is good practice to be as specific as possible with the types of " @@ -341,14 +307,12 @@ msgid "" "to propagate on." msgstr "" -#: ../../tutorial/errors.rst:199 msgid "" "The most common pattern for handling :exc:`Exception` is to print or log the " "exception and then re-raise it (allowing a caller to handle the exception as " "well)::" msgstr "" -#: ../../tutorial/errors.rst:203 msgid "" "import sys\n" "\n" @@ -365,7 +329,6 @@ msgid "" " raise" msgstr "" -#: ../../tutorial/errors.rst:217 msgid "" "The :keyword:`try` ... :keyword:`except` statement has an optional *else " "clause*, which, when present, must follow all *except clauses*. It is " @@ -373,7 +336,6 @@ msgid "" "exception. For example::" msgstr "" -#: ../../tutorial/errors.rst:222 msgid "" "for arg in sys.argv[1:]:\n" " try:\n" @@ -385,7 +347,6 @@ msgid "" " f.close()" msgstr "" -#: ../../tutorial/errors.rst:231 msgid "" "The use of the :keyword:`!else` clause is better than adding additional code " "to the :keyword:`try` clause because it avoids accidentally catching an " @@ -393,14 +354,12 @@ msgid "" "try` ... :keyword:`!except` statement." msgstr "" -#: ../../tutorial/errors.rst:236 msgid "" "Exception handlers do not handle only exceptions that occur immediately in " "the *try clause*, but also those that occur inside functions that are called " "(even indirectly) in the *try clause*. For example::" msgstr "" -#: ../../tutorial/errors.rst:240 msgid "" ">>> def this_fails():\n" "... x = 1/0\n" @@ -413,11 +372,9 @@ msgid "" "Handling run-time error: division by zero" msgstr "" -#: ../../tutorial/errors.rst:254 msgid "Raising Exceptions" msgstr "Kivételek létrehozása" -#: ../../tutorial/errors.rst:256 msgid "" "The :keyword:`raise` statement allows the programmer to force a specified " "exception to occur. For example::" @@ -425,7 +382,6 @@ msgstr "" "A :keyword:`raise` utasítás lehetővé teszi a programozó számára, hogy egy " "új, általa megadott kivételt hozzon létre. Például::" -#: ../../tutorial/errors.rst:259 msgid "" ">>> raise NameError('HiThere')\n" "Traceback (most recent call last):\n" @@ -434,7 +390,6 @@ msgid "" "NameError: HiThere" msgstr "" -#: ../../tutorial/errors.rst:265 msgid "" "The sole argument to :keyword:`raise` indicates the exception to be raised. " "This must be either an exception instance or an exception class (a class " @@ -443,11 +398,9 @@ msgid "" "instantiated by calling its constructor with no arguments::" msgstr "" -#: ../../tutorial/errors.rst:271 msgid "raise ValueError # shorthand for 'raise ValueError()'" msgstr "" -#: ../../tutorial/errors.rst:273 msgid "" "If you need to determine whether an exception was raised but don't intend to " "handle it, a simpler form of the :keyword:`raise` statement allows you to re-" @@ -457,7 +410,6 @@ msgstr "" "kezelni azt, akkor a :keyword:`raise` utasítás egyszerűbb formája lehetővé " "teszi, hogy újra kidobja a kivételt::" -#: ../../tutorial/errors.rst:277 msgid "" ">>> try:\n" "... raise NameError('HiThere')\n" @@ -472,18 +424,15 @@ msgid "" "NameError: HiThere" msgstr "" -#: ../../tutorial/errors.rst:293 msgid "Exception Chaining" msgstr "" -#: ../../tutorial/errors.rst:295 msgid "" "If an unhandled exception occurs inside an :keyword:`except` section, it " "will have the exception being handled attached to it and included in the " "error message::" msgstr "" -#: ../../tutorial/errors.rst:299 msgid "" ">>> try:\n" "... open(\"database.sqlite\")\n" @@ -504,24 +453,19 @@ msgid "" "RuntimeError: unable to handle error" msgstr "" -#: ../../tutorial/errors.rst:317 msgid "" -"To indicate that an exception is a direct consequence of another, " -"the :keyword:`raise` statement allows an optional :keyword:`from` " -"clause::" +"To indicate that an exception is a direct consequence of another, the :" +"keyword:`raise` statement allows an optional :keyword:`from` clause::" msgstr "" -#: ../../tutorial/errors.rst:320 msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" msgstr "" -#: ../../tutorial/errors.rst:323 msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" -#: ../../tutorial/errors.rst:325 msgid "" ">>> def func():\n" "... raise ConnectionError\n" @@ -546,13 +490,11 @@ msgid "" "RuntimeError: Failed to open database" msgstr "" -#: ../../tutorial/errors.rst:347 msgid "" "It also allows disabling automatic exception chaining using the ``from " "None`` idiom::" msgstr "" -#: ../../tutorial/errors.rst:350 msgid "" ">>> try:\n" "... open('database.sqlite')\n" @@ -565,16 +507,13 @@ msgid "" "RuntimeError" msgstr "" -#: ../../tutorial/errors.rst:360 msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" -#: ../../tutorial/errors.rst:366 msgid "User-defined Exceptions" msgstr "Felhasználó által létrehozott kivételek" -#: ../../tutorial/errors.rst:368 msgid "" "Programs may name their own exceptions by creating a new exception class " "(see :ref:`tut-classes` for more about Python classes). Exceptions should " @@ -584,7 +523,6 @@ msgstr "" "A programok elnevezhetik a saját kivételeiket, ha karakterláncot rendelnek " "egy változóhoz, vagy egy új kivétel-osztályt hoznak létre. Például::" -#: ../../tutorial/errors.rst:372 msgid "" "Exception classes can be defined which do anything any other class can do, " "but are usually kept simple, often only offering a number of attributes that " @@ -592,7 +530,6 @@ msgid "" "exception." msgstr "" -#: ../../tutorial/errors.rst:376 msgid "" "Most exceptions are defined with names that end in \"Error\", similar to the " "naming of the standard exceptions." @@ -600,17 +537,14 @@ msgstr "" "A legtöbb kivétel \"Error\" végződésű névvel van definiálva, hasonlóan a " "szabványos kivételek nevéhez." -#: ../../tutorial/errors.rst:379 msgid "" "Many standard modules define their own exceptions to report errors that may " "occur in functions they define." msgstr "" -#: ../../tutorial/errors.rst:386 msgid "Defining Clean-up Actions" msgstr "Tisztogató eljárások definiálása" -#: ../../tutorial/errors.rst:388 msgid "" "The :keyword:`try` statement has another optional clause which is intended " "to define clean-up actions that must be executed under all circumstances. " @@ -620,7 +554,6 @@ msgstr "" "műveletek létrehozására szolgál, amelyeket mindenképpen végre kell hajtani. " "Például::" -#: ../../tutorial/errors.rst:392 msgid "" ">>> try:\n" "... raise KeyboardInterrupt\n" @@ -634,7 +567,6 @@ msgid "" "KeyboardInterrupt" msgstr "" -#: ../../tutorial/errors.rst:403 msgid "" "If a :keyword:`finally` clause is present, the :keyword:`!finally` clause " "will execute as the last task before the :keyword:`try` statement completes. " @@ -643,7 +575,6 @@ msgid "" "cases when an exception occurs:" msgstr "" -#: ../../tutorial/errors.rst:409 msgid "" "If an exception occurs during execution of the :keyword:`!try` clause, the " "exception may be handled by an :keyword:`except` clause. If the exception is " @@ -651,45 +582,38 @@ msgid "" "after the :keyword:`!finally` clause has been executed." msgstr "" -#: ../../tutorial/errors.rst:415 msgid "" -"An exception could occur during execution of an :keyword:`!except` " -"or :keyword:`!else` clause. Again, the exception is re-raised after " -"the :keyword:`!finally` clause has been executed." +"An exception could occur during execution of an :keyword:`!except` or :" +"keyword:`!else` clause. Again, the exception is re-raised after the :keyword:" +"`!finally` clause has been executed." msgstr "" -#: ../../tutorial/errors.rst:419 msgid "" -"If the :keyword:`!finally` clause executes " -"a :keyword:`break`, :keyword:`continue` or :keyword:`return` statement, " -"exceptions are not re-raised. This can be confusing and is therefore " -"discouraged. From version 3.14 the compiler emits a :exc:`SyntaxWarning` for " -"it (see :pep:`765`)." +"If the :keyword:`!finally` clause executes a :keyword:`break`, :keyword:" +"`continue` or :keyword:`return` statement, exceptions are not re-raised. " +"This can be confusing and is therefore discouraged. From version 3.14 the " +"compiler emits a :exc:`SyntaxWarning` for it (see :pep:`765`)." msgstr "" -#: ../../tutorial/errors.rst:425 msgid "" -"If the :keyword:`!try` statement reaches " -"a :keyword:`break`, :keyword:`continue` or :keyword:`return` statement, " -"the :keyword:`!finally` clause will execute just prior to the :keyword:`!" -"break`, :keyword:`!continue` or :keyword:`!return` statement's execution." +"If the :keyword:`!try` statement reaches a :keyword:`break`, :keyword:" +"`continue` or :keyword:`return` statement, the :keyword:`!finally` clause " +"will execute just prior to the :keyword:`!break`, :keyword:`!continue` or :" +"keyword:`!return` statement's execution." msgstr "" -#: ../../tutorial/errors.rst:431 msgid "" "If a :keyword:`!finally` clause includes a :keyword:`!return` statement, the " -"returned value will be the one from the :keyword:`!finally` " -"clause's :keyword:`!return` statement, not the value from the :keyword:`!" -"try` clause's :keyword:`!return` statement. This can be confusing and is " -"therefore discouraged. From version 3.14 the compiler emits " -"a :exc:`SyntaxWarning` for it (see :pep:`765`)." +"returned value will be the one from the :keyword:`!finally` clause's :" +"keyword:`!return` statement, not the value from the :keyword:`!try` " +"clause's :keyword:`!return` statement. This can be confusing and is " +"therefore discouraged. From version 3.14 the compiler emits a :exc:" +"`SyntaxWarning` for it (see :pep:`765`)." msgstr "" -#: ../../tutorial/errors.rst:439 msgid "For example::" msgstr "" -#: ../../tutorial/errors.rst:441 msgid "" ">>> def bool_return():\n" "... try:\n" @@ -701,11 +625,9 @@ msgid "" "False" msgstr "" -#: ../../tutorial/errors.rst:450 msgid "A more complicated example::" msgstr "" -#: ../../tutorial/errors.rst:452 msgid "" ">>> def divide(x, y):\n" "... try:\n" @@ -735,15 +657,13 @@ msgid "" "TypeError: unsupported operand type(s) for /: 'str' and 'str'" msgstr "" -#: ../../tutorial/errors.rst:479 msgid "" "As you can see, the :keyword:`finally` clause is executed in any event. " -"The :exc:`TypeError` raised by dividing two strings is not handled by " -"the :keyword:`except` clause and therefore re-raised after the :keyword:`!" +"The :exc:`TypeError` raised by dividing two strings is not handled by the :" +"keyword:`except` clause and therefore re-raised after the :keyword:`!" "finally` clause has been executed." msgstr "" -#: ../../tutorial/errors.rst:484 msgid "" "In real world applications, the :keyword:`finally` clause is useful for " "releasing external resources (such as files or network connections), " @@ -754,11 +674,9 @@ msgstr "" "kapcsolatok), függetlenül attól, hogy az erőforrás felhasználása sikeres " "volt-e." -#: ../../tutorial/errors.rst:492 msgid "Predefined Clean-up Actions" msgstr "Előre definiált tisztogató eljárások" -#: ../../tutorial/errors.rst:494 msgid "" "Some objects define standard clean-up actions to be undertaken when the " "object is no longer needed, regardless of whether or not the operation using " @@ -771,13 +689,11 @@ msgstr "" "következő példát, amely meg próbál nyitni egy fájlt, és kiírni a tartalmát a " "képernyőre. ::" -#: ../../tutorial/errors.rst:499 msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" msgstr "" -#: ../../tutorial/errors.rst:502 msgid "" "The problem with this code is that it leaves the file open for an " "indeterminate amount of time after this part of the code has finished " @@ -793,14 +709,12 @@ msgstr "" "hasznájuk, amely lehetővé teszi, hogy mindig azonnal és megfelelő módon " "tisztogassunk. ::" -#: ../../tutorial/errors.rst:508 msgid "" "with open(\"myfile.txt\") as f:\n" " for line in f:\n" " print(line, end=\"\")" msgstr "" -#: ../../tutorial/errors.rst:512 msgid "" "After the statement is executed, the file *f* is always closed, even if a " "problem was encountered while processing the lines. Objects which, like " @@ -812,11 +726,9 @@ msgstr "" "amilyenek a fájlok, előre definiált tisztogató eljárásokkal rendelkeznek. " "Ezt a dokumentációjukból megtudhatjuk." -#: ../../tutorial/errors.rst:520 msgid "Raising and Handling Multiple Unrelated Exceptions" msgstr "" -#: ../../tutorial/errors.rst:522 msgid "" "There are situations where it is necessary to report several exceptions that " "have occurred. This is often the case in concurrency frameworks, when " @@ -825,14 +737,12 @@ msgid "" "errors rather than raise the first exception." msgstr "" -#: ../../tutorial/errors.rst:528 msgid "" "The builtin :exc:`ExceptionGroup` wraps a list of exception instances so " "that they can be raised together. It is an exception itself, so it can be " "caught like any other exception. ::" msgstr "" -#: ../../tutorial/errors.rst:532 msgid "" ">>> def f():\n" "... excs = [OSError('error 1'), SystemError('error 2')]\n" @@ -860,7 +770,6 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/errors.rst:557 msgid "" "By using ``except*`` instead of ``except``, we can selectively handle only " "the exceptions in the group that match a certain type. In the following " @@ -869,7 +778,6 @@ msgid "" "exceptions propagate to other clauses and eventually to be reraised. ::" msgstr "" -#: ../../tutorial/errors.rst:564 msgid "" ">>> def f():\n" "... raise ExceptionGroup(\n" @@ -913,7 +821,6 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/errors.rst:605 msgid "" "Note that the exceptions nested in an exception group must be instances, not " "types. This is because in practice the exceptions would typically be ones " @@ -921,7 +828,6 @@ msgid "" "pattern::" msgstr "" -#: ../../tutorial/errors.rst:610 msgid "" ">>> excs = []\n" "... for test in tests:\n" @@ -935,11 +841,9 @@ msgid "" "..." msgstr "" -#: ../../tutorial/errors.rst:625 msgid "Enriching Exceptions with Notes" msgstr "" -#: ../../tutorial/errors.rst:627 msgid "" "When an exception is created in order to be raised, it is usually " "initialized with information that describes the error that has occurred. " @@ -950,7 +854,6 @@ msgid "" "added, after the exception. ::" msgstr "" -#: ../../tutorial/errors.rst:634 msgid "" ">>> try:\n" "... raise TypeError('bad type')\n" @@ -968,14 +871,12 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/errors.rst:649 msgid "" "For example, when collecting exceptions into an exception group, we may want " "to add context information for the individual errors. In the following each " "exception in the group has a note indicating when this error has occurred. ::" msgstr "" -#: ../../tutorial/errors.rst:653 msgid "" ">>> def f():\n" "... raise OSError('operation failed')\n" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index e5b72a2..496f393 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/floatingpoint.rst:10 msgid "Floating-Point Arithmetic: Issues and Limitations" msgstr "" -#: ../../tutorial/floatingpoint.rst:16 msgid "" "Floating-point numbers are represented in computer hardware as base 2 " "(binary) fractions. For example, the **decimal** fraction ``0.625`` has " @@ -32,7 +30,6 @@ msgid "" "fractional notation, and the second in base 2." msgstr "" -#: ../../tutorial/floatingpoint.rst:23 msgid "" "Unfortunately, most decimal fractions cannot be represented exactly as " "binary fractions. A consequence is that, in general, the decimal floating-" @@ -40,47 +37,38 @@ msgid "" "numbers actually stored in the machine." msgstr "" -#: ../../tutorial/floatingpoint.rst:28 msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" -#: ../../tutorial/floatingpoint.rst:31 msgid "0.3" msgstr "" -#: ../../tutorial/floatingpoint.rst:33 ../../tutorial/floatingpoint.rst:37 msgid "or, better, ::" msgstr "" -#: ../../tutorial/floatingpoint.rst:35 msgid "0.33" msgstr "" -#: ../../tutorial/floatingpoint.rst:39 msgid "0.333" msgstr "" -#: ../../tutorial/floatingpoint.rst:41 msgid "" "and so on. No matter how many digits you're willing to write down, the " "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" -#: ../../tutorial/floatingpoint.rst:45 msgid "" "In the same way, no matter how many base 2 digits you're willing to use, the " "decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" -#: ../../tutorial/floatingpoint.rst:49 msgid "0.0001100110011001100110011001100110011001100110011..." msgstr "" -#: ../../tutorial/floatingpoint.rst:51 msgid "" "Stop at any finite number of bits, and you get an approximation. On most " "machines today, floats are approximated using a binary fraction with the " @@ -90,7 +78,6 @@ msgid "" "equal to the true value of 1/10." msgstr "" -#: ../../tutorial/floatingpoint.rst:58 msgid "" "Many users are not aware of the approximation because of the way values are " "displayed. Python only prints a decimal approximation to the true decimal " @@ -99,31 +86,26 @@ msgid "" "stored for 0.1, it would have to display::" msgstr "" -#: ../../tutorial/floatingpoint.rst:64 msgid "" ">>> 0.1\n" "0.1000000000000000055511151231257827021181583404541015625" msgstr "" -#: ../../tutorial/floatingpoint.rst:67 msgid "" "That is more digits than most people find useful, so Python keeps the number " "of digits manageable by displaying a rounded value instead:" msgstr "" -#: ../../tutorial/floatingpoint.rst:70 msgid "" ">>> 1 / 10\n" "0.1" msgstr "" -#: ../../tutorial/floatingpoint.rst:75 msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" -#: ../../tutorial/floatingpoint.rst:78 msgid "" "Interestingly, there are many different decimal numbers that share the same " "nearest approximate binary fraction. For example, the numbers ``0.1`` and " @@ -134,7 +116,6 @@ msgid "" "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" -#: ../../tutorial/floatingpoint.rst:86 msgid "" "Historically, the Python prompt and built-in :func:`repr` function would " "choose the one with 17 significant digits, ``0.10000000000000001``. " @@ -142,7 +123,6 @@ msgid "" "shortest of these and simply display ``0.1``." msgstr "" -#: ../../tutorial/floatingpoint.rst:91 msgid "" "Note that this is in the very nature of binary floating point: this is not a " "bug in Python, and it is not a bug in your code either. You'll see the same " @@ -151,13 +131,11 @@ msgid "" "default, or in all output modes)." msgstr "" -#: ../../tutorial/floatingpoint.rst:97 msgid "" "For more pleasant output, you may wish to use string formatting to produce a " "limited number of significant digits:" msgstr "" -#: ../../tutorial/floatingpoint.rst:100 msgid "" ">>> format(math.pi, '.12g') # give 12 significant digits\n" "'3.14159265359'\n" @@ -169,62 +147,52 @@ msgid "" "'3.141592653589793'" msgstr "" -#: ../../tutorial/floatingpoint.rst:111 msgid "" "It's important to realize that this is, in a real sense, an illusion: you're " "simply rounding the *display* of the true machine value." msgstr "" -#: ../../tutorial/floatingpoint.rst:114 msgid "" "One illusion may beget another. For example, since 0.1 is not exactly 1/10, " "summing three values of 0.1 may not yield exactly 0.3, either:" msgstr "" -#: ../../tutorial/floatingpoint.rst:117 msgid "" ">>> 0.1 + 0.1 + 0.1 == 0.3\n" "False" msgstr "" -#: ../../tutorial/floatingpoint.rst:122 msgid "" "Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3 " -"cannot get any closer to the exact value of 3/10, then pre-rounding " -"with :func:`round` function cannot help:" +"cannot get any closer to the exact value of 3/10, then pre-rounding with :" +"func:`round` function cannot help:" msgstr "" -#: ../../tutorial/floatingpoint.rst:126 msgid "" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" "False" msgstr "" -#: ../../tutorial/floatingpoint.rst:131 msgid "" "Though the numbers cannot be made closer to their intended exact values, " "the :func:`math.isclose` function can be useful for comparing inexact values:" msgstr "" -#: ../../tutorial/floatingpoint.rst:134 msgid "" ">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:139 msgid "" "Alternatively, the :func:`round` function can be used to compare rough " "approximations:" msgstr "" -#: ../../tutorial/floatingpoint.rst:142 msgid "" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:147 msgid "" "Binary floating-point arithmetic holds many surprises like this. The " "problem with \"0.1\" is explained in precise detail below, in the " @@ -236,7 +204,6 @@ msgid "" "account of other common surprises." msgstr "" -#: ../../tutorial/floatingpoint.rst:156 msgid "" "As that says near the end, \"there are no easy answers.\" Still, don't be " "unduly wary of floating point! The errors in Python float operations are " @@ -247,89 +214,75 @@ msgid "" "error." msgstr "" -#: ../../tutorial/floatingpoint.rst:163 msgid "" "While pathological cases do exist, for most casual use of floating-point " "arithmetic you'll see the result you expect in the end if you simply round " "the display of your final results to the number of decimal digits you " -"expect. :func:`str` usually suffices, and for finer control see " -"the :meth:`str.format` method's format specifiers in :ref:`formatstrings`." +"expect. :func:`str` usually suffices, and for finer control see the :meth:" +"`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" -#: ../../tutorial/floatingpoint.rst:169 msgid "" -"For use cases which require exact decimal representation, try using " -"the :mod:`decimal` module which implements decimal arithmetic suitable for " -"accounting applications and high-precision applications." +"For use cases which require exact decimal representation, try using the :mod:" +"`decimal` module which implements decimal arithmetic suitable for accounting " +"applications and high-precision applications." msgstr "" -#: ../../tutorial/floatingpoint.rst:173 msgid "" "Another form of exact arithmetic is supported by the :mod:`fractions` module " "which implements arithmetic based on rational numbers (so the numbers like " "1/3 can be represented exactly)." msgstr "" -#: ../../tutorial/floatingpoint.rst:177 msgid "" "If you are a heavy user of floating-point operations you should take a look " "at the NumPy package and many other packages for mathematical and " -"statistical operations supplied by the SciPy project. See ." +"statistical operations supplied by the SciPy project. See ." msgstr "" -#: ../../tutorial/floatingpoint.rst:181 msgid "" "Python provides tools that may help on those rare occasions when you really " -"*do* want to know the exact value of a float. " -"The :meth:`float.as_integer_ratio` method expresses the value of a float as " -"a fraction:" +"*do* want to know the exact value of a float. The :meth:`float." +"as_integer_ratio` method expresses the value of a float as a fraction:" msgstr "" -#: ../../tutorial/floatingpoint.rst:186 msgid "" ">>> x = 3.14159\n" ">>> x.as_integer_ratio()\n" "(3537115888337719, 1125899906842624)" msgstr "" -#: ../../tutorial/floatingpoint.rst:192 msgid "" "Since the ratio is exact, it can be used to losslessly recreate the original " "value:" msgstr "" -#: ../../tutorial/floatingpoint.rst:195 msgid "" ">>> x == 3537115888337719 / 1125899906842624\n" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:200 msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " "again giving the exact value stored by your computer:" msgstr "" -#: ../../tutorial/floatingpoint.rst:203 msgid "" ">>> x.hex()\n" "'0x1.921f9f01b866ep+1'" msgstr "" -#: ../../tutorial/floatingpoint.rst:208 msgid "" "This precise hexadecimal representation can be used to reconstruct the float " "value exactly:" msgstr "" -#: ../../tutorial/floatingpoint.rst:211 msgid "" ">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:216 msgid "" "Since the representation is exact, it is useful for reliably porting values " "across different versions of Python (platform independence) and exchanging " @@ -337,7 +290,6 @@ msgid "" "C99)." msgstr "" -#: ../../tutorial/floatingpoint.rst:220 msgid "" "Another helpful tool is the :func:`sum` function which helps mitigate loss-" "of-precision during summation. It uses extended precision for intermediate " @@ -346,7 +298,6 @@ msgid "" "point where they affect the final total:" msgstr "" -#: ../../tutorial/floatingpoint.rst:226 msgid "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False\n" @@ -354,7 +305,6 @@ msgid "" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:233 msgid "" "The :func:`math.fsum` goes further and tracks all of the \"lost digits\" as " "values are added onto a running total so that the result has only a single " @@ -363,7 +313,6 @@ msgid "" "leaving a final sum near zero:" msgstr "" -#: ../../tutorial/floatingpoint.rst:239 msgid "" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" "... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" @@ -384,18 +333,15 @@ msgid "" "-0.0051575902860057365" msgstr "" -#: ../../tutorial/floatingpoint.rst:260 msgid "Representation Error" msgstr "" -#: ../../tutorial/floatingpoint.rst:262 msgid "" "This section explains the \"0.1\" example in detail, and shows how you can " "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" -#: ../../tutorial/floatingpoint.rst:266 msgid "" ":dfn:`Representation error` refers to the fact that some (most, actually) " "decimal fractions cannot be represented exactly as binary (base 2) " @@ -404,7 +350,6 @@ msgid "" "expect." msgstr "" -#: ../../tutorial/floatingpoint.rst:271 msgid "" "Why is that? 1/10 is not exactly representable as a binary fraction. Since " "at least 2000, almost all machines use IEEE 754 binary floating-point " @@ -415,106 +360,87 @@ msgid "" "exactly 53 bits. Rewriting ::" msgstr "" -#: ../../tutorial/floatingpoint.rst:280 msgid "1 / 10 ~= J / (2**N)" msgstr "" -#: ../../tutorial/floatingpoint.rst:282 msgid "as ::" msgstr "" -#: ../../tutorial/floatingpoint.rst:284 msgid "J ~= 2**N / 10" msgstr "" -#: ../../tutorial/floatingpoint.rst:286 msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " "2**53``), the best value for *N* is 56:" msgstr "" -#: ../../tutorial/floatingpoint.rst:289 msgid "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" "True" msgstr "" -#: ../../tutorial/floatingpoint.rst:294 msgid "" "That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits. " "The best possible value for *J* is then that quotient rounded:" msgstr "" -#: ../../tutorial/floatingpoint.rst:297 msgid "" ">>> q, r = divmod(2**56, 10)\n" ">>> r\n" "6" msgstr "" -#: ../../tutorial/floatingpoint.rst:303 msgid "" "Since the remainder is more than half of 10, the best approximation is " "obtained by rounding up:" msgstr "" -#: ../../tutorial/floatingpoint.rst:306 msgid "" ">>> q+1\n" "7205759403792794" msgstr "" -#: ../../tutorial/floatingpoint.rst:313 msgid "" "Therefore the best possible approximation to 1/10 in IEEE 754 double " "precision is::" msgstr "" -#: ../../tutorial/floatingpoint.rst:316 msgid "7205759403792794 / 2 ** 56" msgstr "" -#: ../../tutorial/floatingpoint.rst:318 msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" -#: ../../tutorial/floatingpoint.rst:320 msgid "3602879701896397 / 2 ** 55" msgstr "" -#: ../../tutorial/floatingpoint.rst:322 msgid "" "Note that since we rounded up, this is actually a little bit larger than " "1/10; if we had not rounded up, the quotient would have been a little bit " "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" -#: ../../tutorial/floatingpoint.rst:326 msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best IEEE 754 double approximation it can get:" msgstr "" -#: ../../tutorial/floatingpoint.rst:329 msgid "" ">>> 0.1 * 2 ** 55\n" "3602879701896397.0" msgstr "" -#: ../../tutorial/floatingpoint.rst:334 msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits:" msgstr "" -#: ../../tutorial/floatingpoint.rst:337 msgid "" ">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" "1000000000000000055511151231257827021181583404541015625" msgstr "" -#: ../../tutorial/floatingpoint.rst:342 msgid "" "meaning that the exact number stored in the computer is equal to the decimal " "value 0.1000000000000000055511151231257827021181583404541015625. Instead of " @@ -522,18 +448,15 @@ msgid "" "of Python), round the result to 17 significant digits:" msgstr "" -#: ../../tutorial/floatingpoint.rst:347 msgid "" ">>> format(0.1, '.17f')\n" "'0.10000000000000001'" msgstr "" -#: ../../tutorial/floatingpoint.rst:352 msgid "" "The :mod:`fractions` and :mod:`decimal` modules make these calculations easy:" msgstr "" -#: ../../tutorial/floatingpoint.rst:355 msgid "" ">>> from decimal import Decimal\n" ">>> from fractions import Fraction\n" diff --git a/tutorial/index.po b/tutorial/index.po index d6a8e03..dbbd829 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,17 +22,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/index.rst:5 msgid "The Python Tutorial" msgstr "Python-oktató" -#: ../../tutorial/index.rst:7 msgid "" "This tutorial is designed for *programmers* that are new to the Python " "language, **not** *beginners* who are new to programming." msgstr "" -#: ../../tutorial/index.rst:11 msgid "" "Python is an easy to learn, powerful programming language. It has efficient " "high-level data structures and a simple but effective approach to object-" @@ -47,7 +44,6 @@ msgstr "" "parancsértelmező jellege ideális szkriptek készítésére és gyors " "alkalmazásfejlesztésre több platformon, szerteágazó területeken." -#: ../../tutorial/index.rst:17 msgid "" "The Python interpreter and the extensive standard library are freely " "available in source or binary form for all major platforms from the Python " @@ -56,7 +52,6 @@ msgid "" "Python modules, programs and tools, and additional documentation." msgstr "" -#: ../../tutorial/index.rst:23 msgid "" "The Python interpreter is easily extended with new functions and data types " "implemented in C or C++ (or other languages callable from C). Python is also " @@ -67,7 +62,6 @@ msgstr "" "Python maga is alkalmas kiegészítő nyelv már elkészült alkalmazások " "bővítéséhez." -#: ../../tutorial/index.rst:27 msgid "" "This tutorial introduces the reader informally to the basic concepts and " "features of the Python language and system. Be aware that it expects you to " @@ -76,20 +70,17 @@ msgid "" "contained, so the tutorial can be read off-line as well." msgstr "" -#: ../../tutorial/index.rst:33 msgid "" "For a description of standard objects and modules, see :ref:`library-" "index`. :ref:`reference-index` gives a more formal definition of the " -"language. To write extensions in C or C++, read :ref:`extending-index` " -"and :ref:`c-api-index`. There are also several books covering Python in " -"depth." +"language. To write extensions in C or C++, read :ref:`extending-index` and :" +"ref:`c-api-index`. There are also several books covering Python in depth." msgstr "" "A Python Reference Manual a nyelv részletes definícióját tartalmazza. C " "vagy C++ nyelven írt kiegészítések létrehozásához hasznos olvasnivaló az " "Extending and Embedding the Python Interpreter és a Python/C API Reference. " "Ezenkívül van néhány könyv, amely a Pythonnal komolyan foglalkozik." -#: ../../tutorial/index.rst:38 msgid "" "This tutorial does not attempt to be comprehensive and cover every single " "feature, or even every commonly used feature. Instead, it introduces many of " @@ -104,6 +95,5 @@ msgstr "" "írására, és ami a legfontosabb: a további tanulásra. Az oktató után érdemes " "a :ref:`library-index` fejezetben leírt modulokkal megismerkedni." -#: ../../tutorial/index.rst:45 msgid "The :ref:`glossary` is also worth going through." msgstr "A :ref:`glossary` fejezetet is érdemes átolvasni." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 562fe17..9e4b241 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/inputoutput.rst:5 msgid "Input and Output" msgstr "Bemenet és kimenet" -#: ../../tutorial/inputoutput.rst:7 msgid "" "There are several ways to present the output of a program; data can be " "printed in a human-readable form, or written to a file for future use. This " @@ -36,27 +34,23 @@ msgstr "" "olvasható nyomtatott formában, vagy későbbi feldolgozás céljából fájlba " "írva. Ez a fejezet a lehetőségek közül többet is bemutat." -#: ../../tutorial/inputoutput.rst:15 msgid "Fancier Output Formatting" msgstr "Esztétikus kimenet kialakítása" -#: ../../tutorial/inputoutput.rst:17 msgid "" "So far we've encountered two ways of writing values: *expression statements* " -"and the :func:`print` function. (A third way is using " -"the :meth:`~io.TextIOBase.write` method of file objects; the standard output " -"file can be referenced as ``sys.stdout``. See the Library Reference for more " -"information on this.)" +"and the :func:`print` function. (A third way is using the :meth:`~io." +"TextIOBase.write` method of file objects; the standard output file can be " +"referenced as ``sys.stdout``. See the Library Reference for more information " +"on this.)" msgstr "" -#: ../../tutorial/inputoutput.rst:22 msgid "" "Often you'll want more control over the formatting of your output than " "simply printing space-separated values. There are several ways to format " "output." msgstr "" -#: ../../tutorial/inputoutput.rst:25 msgid "" "To use :ref:`formatted string literals `, begin a string with " "``f`` or ``F`` before the opening quotation mark or triple quotation mark. " @@ -64,7 +58,6 @@ msgid "" "`` characters that can refer to variables or literal values." msgstr "" -#: ../../tutorial/inputoutput.rst:32 msgid "" ">>> year = 2016\n" ">>> event = 'Referendum'\n" @@ -72,7 +65,6 @@ msgid "" "'Results of the 2016 Referendum'" msgstr "" -#: ../../tutorial/inputoutput.rst:37 msgid "" "The :meth:`str.format` method of strings requires more manual effort. " "You'll still use ``{`` and ``}`` to mark where a variable will be " @@ -81,7 +73,6 @@ msgid "" "there are two examples of how to format variables:" msgstr "" -#: ../../tutorial/inputoutput.rst:46 msgid "" ">>> yes_votes = 42_572_654\n" ">>> total_votes = 85_705_149\n" @@ -90,15 +81,13 @@ msgid "" "' 42572654 YES votes 49.67%'" msgstr "" -#: ../../tutorial/inputoutput.rst:52 msgid "" "Notice how the ``yes_votes`` are padded with spaces and a negative sign only " "for negative numbers. The example also prints ``percentage`` multiplied by " -"100, with 2 decimal places and followed by a percent sign " -"(see :ref:`formatspec` for details)." +"100, with 2 decimal places and followed by a percent sign (see :ref:" +"`formatspec` for details)." msgstr "" -#: ../../tutorial/inputoutput.rst:57 msgid "" "Finally, you can do all the string handling yourself by using string slicing " "and concatenation operations to create any layout you can imagine. The " @@ -106,21 +95,19 @@ msgid "" "strings to a given column width." msgstr "" -#: ../../tutorial/inputoutput.rst:62 msgid "" "When you don't need fancy output but just want a quick display of some " "variables for debugging purposes, you can convert any value to a string with " "the :func:`repr` or :func:`str` functions." msgstr "" -#: ../../tutorial/inputoutput.rst:66 msgid "" "The :func:`str` function is meant to return representations of values which " "are fairly human-readable, while :func:`repr` is meant to generate " -"representations which can be read by the interpreter (or will force " -"a :exc:`SyntaxError` if there is no equivalent syntax). For objects which " -"don't have a particular representation for human consumption, :func:`str` " -"will return the same value as :func:`repr`. Many values, such as numbers or " +"representations which can be read by the interpreter (or will force a :exc:" +"`SyntaxError` if there is no equivalent syntax). For objects which don't " +"have a particular representation for human consumption, :func:`str` will " +"return the same value as :func:`repr`. Many values, such as numbers or " "structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" @@ -135,11 +122,9 @@ msgstr "" "eredményt kapjuk. A karakterláncoknak nevezetesen két eltérő ábrázolási " "módjuk van." -#: ../../tutorial/inputoutput.rst:75 msgid "Some examples::" msgstr "Pár példa::" -#: ../../tutorial/inputoutput.rst:77 msgid "" ">>> s = 'Hello, world.'\n" ">>> str(s)\n" @@ -163,20 +148,17 @@ msgid "" "\"(32.5, 40000, ('spam', 'eggs'))\"" msgstr "" -#: ../../tutorial/inputoutput.rst:98 msgid "" -"The :mod:`string` module also contains support for so-called :ref:`$-strings " -"` that offer yet another way to substitute values " -"into strings, using placeholders like ``$x`` and replacing them with values " -"from a dictionary. This syntax is easy to use, although it offers much less " -"control of the formatting." +"The :mod:`string` module contains support for a simple templating approach " +"based upon regular expressions, via :class:`string.Template`. This offers " +"yet another way to substitute values into strings, using placeholders like " +"``$x`` and replacing them with values from a dictionary. This syntax is easy " +"to use, although it offers much less control for formatting." msgstr "" -#: ../../tutorial/inputoutput.rst:115 msgid "Formatted String Literals" msgstr "" -#: ../../tutorial/inputoutput.rst:117 msgid "" ":ref:`Formatted string literals ` (also called f-strings for " "short) let you include the value of Python expressions inside a string by " @@ -184,27 +166,23 @@ msgid "" "``{expression}``." msgstr "" -#: ../../tutorial/inputoutput.rst:122 msgid "" "An optional format specifier can follow the expression. This allows greater " "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" -#: ../../tutorial/inputoutput.rst:126 msgid "" ">>> import math\n" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" "The value of pi is approximately 3.142." msgstr "" -#: ../../tutorial/inputoutput.rst:130 msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" -#: ../../tutorial/inputoutput.rst:133 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" ">>> for name, phone in table.items():\n" @@ -215,14 +193,12 @@ msgid "" "Dcab ==> 7678" msgstr "" -#: ../../tutorial/inputoutput.rst:141 msgid "" "Other modifiers can be used to convert the value before it is formatted. ``'!" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" -#: ../../tutorial/inputoutput.rst:145 msgid "" ">>> animals = 'eels'\n" ">>> print(f'My hovercraft is full of {animals}.')\n" @@ -231,47 +207,40 @@ msgid "" "My hovercraft is full of 'eels'." msgstr "" -#: ../../tutorial/inputoutput.rst:151 msgid "" "The ``=`` specifier can be used to expand an expression to the text of the " "expression, an equal sign, then the representation of the evaluated " "expression:" msgstr "" -#: ../../tutorial/inputoutput.rst:160 msgid "" "See :ref:`self-documenting expressions ` for more " "information on the ``=`` specifier. For a reference on these format " "specifications, see the reference guide for the :ref:`formatspec`." msgstr "" -#: ../../tutorial/inputoutput.rst:167 msgid "The String format() Method" msgstr "" -#: ../../tutorial/inputoutput.rst:169 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "A :meth:`str.format` metódus legalapvetőbb használata így működik::" -#: ../../tutorial/inputoutput.rst:171 msgid "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" msgstr "" -#: ../../tutorial/inputoutput.rst:174 msgid "" "The brackets and characters within them (called format fields) are replaced " "with the objects passed into the :meth:`str.format` method. A number in the " -"brackets can be used to refer to the position of the object passed into " -"the :meth:`str.format` method. ::" +"brackets can be used to refer to the position of the object passed into the :" +"meth:`str.format` method. ::" msgstr "" "A kapcsos zárójelek, és az azon belül található karakterek (az úgynevezett " "formátum-mezők) helyettesítődnek a :meth:`str.format` metódusnak átadott " "objektumokkal. A zárójelben szerepelhet egy szám, amely az objektum helyére " "utal a :meth:`str.format` metódusban. ::" -#: ../../tutorial/inputoutput.rst:179 msgid "" ">>> print('{0} and {1}'.format('spam', 'eggs'))\n" "spam and eggs\n" @@ -279,7 +248,6 @@ msgid "" "eggs and spam" msgstr "" -#: ../../tutorial/inputoutput.rst:184 msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values " "are referred to by using the name of the argument. ::" @@ -287,26 +255,22 @@ msgstr "" "Ha kulcsszavas argumentumokat használunk a :meth:`str.format` metódusban, az " "értékeikre az argumentum neve alapján hivatkozhatunk. ::" -#: ../../tutorial/inputoutput.rst:187 msgid "" ">>> print('This {food} is {adjective}.'.format(\n" "... food='spam', adjective='absolutely horrible'))\n" "This spam is absolutely horrible." msgstr "" -#: ../../tutorial/inputoutput.rst:191 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" "A hely szerinti és a kulcsszavas argumentumok tetszőlegesen keverhetőek::" -#: ../../tutorial/inputoutput.rst:193 msgid "" ">>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',\n" "... other='Georg'))\n" "The story of Bill, Manfred, and Georg." msgstr "" -#: ../../tutorial/inputoutput.rst:197 msgid "" "If you have a really long format string that you don't want to split up, it " "would be nice if you could reference the variables to be formatted by name " @@ -314,7 +278,6 @@ msgid "" "using square brackets ``'[]'`` to access the keys. ::" msgstr "" -#: ../../tutorial/inputoutput.rst:202 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" @@ -322,28 +285,23 @@ msgid "" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" -#: ../../tutorial/inputoutput.rst:207 msgid "" "This could also be done by passing the ``table`` dictionary as keyword " "arguments with the ``**`` notation. ::" msgstr "" -#: ../../tutorial/inputoutput.rst:210 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" -">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: " -"{Dcab:d}'.format(**table))\n" +">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'." +"format(**table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" -#: ../../tutorial/inputoutput.rst:214 msgid "" -"This is particularly useful in combination with the built-in " -"function :func:`vars`, which returns a dictionary containing all local " -"variables::" +"This is particularly useful in combination with the built-in function :func:" +"`vars`, which returns a dictionary containing all local variables::" msgstr "" -#: ../../tutorial/inputoutput.rst:217 msgid "" ">>> table = {k: str(v) for k, v in vars().items()}\n" ">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" @@ -351,13 +309,11 @@ msgid "" "__name__: __main__; __doc__: None; __package__: None; __loader__: ..." msgstr "" -#: ../../tutorial/inputoutput.rst:222 msgid "" "As an example, the following lines produce a tidily aligned set of columns " "giving integers and their squares and cubes::" msgstr "" -#: ../../tutorial/inputoutput.rst:225 msgid "" ">>> for x in range(1, 11):\n" "... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" @@ -374,23 +330,19 @@ msgid "" "10 100 1000" msgstr "" -#: ../../tutorial/inputoutput.rst:239 msgid "" -"For a complete overview of string formatting with :meth:`str.format`, " -"see :ref:`formatstrings`." +"For a complete overview of string formatting with :meth:`str.format`, see :" +"ref:`formatstrings`." msgstr "" "A :meth:`str.format` metódussal történő karakterlánc-formázás teljes " "áttekintése itt található meg: :ref:`formatstrings`." -#: ../../tutorial/inputoutput.rst:244 msgid "Manual String Formatting" msgstr "" -#: ../../tutorial/inputoutput.rst:246 msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" -#: ../../tutorial/inputoutput.rst:248 msgid "" ">>> for x in range(1, 11):\n" "... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')\n" @@ -409,13 +361,11 @@ msgid "" "10 100 1000" msgstr "" -#: ../../tutorial/inputoutput.rst:264 msgid "" -"(Note that the one space between each column was added by the " -"way :func:`print` works: it always adds spaces between its arguments.)" +"(Note that the one space between each column was added by the way :func:" +"`print` works: it always adds spaces between its arguments.)" msgstr "" -#: ../../tutorial/inputoutput.rst:267 msgid "" "The :meth:`str.rjust` method of string objects right-justifies a string in a " "field of a given width by padding it with spaces on the left. There are " @@ -427,7 +377,6 @@ msgid "" "add a slice operation, as in ``x.ljust(n)[:n]``.)" msgstr "" -#: ../../tutorial/inputoutput.rst:276 msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" @@ -436,7 +385,6 @@ msgstr "" "karakterláncot balról nulla karakterekkel tölti fel. Ez érti a plusz és " "mínusz előjeleket::" -#: ../../tutorial/inputoutput.rst:279 msgid "" ">>> '12'.zfill(5)\n" "'00012'\n" @@ -446,11 +394,9 @@ msgid "" "'3.14159265359'" msgstr "" -#: ../../tutorial/inputoutput.rst:288 msgid "Old string formatting" msgstr "A régi típusú formázás" -#: ../../tutorial/inputoutput.rst:290 msgid "" "The % operator (modulo) can also be used for string formatting. Given " "``format % values`` (where *format* is a string), ``%`` conversion " @@ -459,35 +405,29 @@ msgid "" "example::" msgstr "" -#: ../../tutorial/inputoutput.rst:297 msgid "" ">>> import math\n" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" "The value of pi is approximately 3.142." msgstr "" -#: ../../tutorial/inputoutput.rst:301 msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" "További információ a :ref:`old-string-formatting` szakaszban található." -#: ../../tutorial/inputoutput.rst:307 msgid "Reading and Writing Files" msgstr "Fájlok írása és olvasása" -#: ../../tutorial/inputoutput.rst:313 msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two positional arguments and one keyword argument: ``open(filename, mode, " "encoding=None)``" msgstr "" -#: ../../tutorial/inputoutput.rst:319 msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" msgstr "" -#: ../../tutorial/inputoutput.rst:326 msgid "" "The first argument is a string containing the filename. The second argument " "is another string containing a few characters describing the way in which " @@ -508,28 +448,25 @@ msgstr "" "meg a fájlt írásra és olvasásra. A *mód* paraméter beállítása nem kötelező; " "elhagyása esetén ``'r'`` alapértelmezett értéket vesz fel." -#: ../../tutorial/inputoutput.rst:335 msgid "" "Normally, files are opened in :dfn:`text mode`, that means, you read and " "write strings from and to the file, which are encoded in a specific " "*encoding*. If *encoding* is not specified, the default is platform " "dependent (see :func:`open`). Because UTF-8 is the modern de-facto standard, " "``encoding=\"utf-8\"`` is recommended unless you know that you need to use a " -"different encoding. Appending a ``'b'`` to the mode opens the file " -"in :dfn:`binary mode`. Binary mode data is read and written " -"as :class:`bytes` objects. You can not specify *encoding* when opening file " -"in binary mode." +"different encoding. Appending a ``'b'`` to the mode opens the file in :dfn:" +"`binary mode`. Binary mode data is read and written as :class:`bytes` " +"objects. You can not specify *encoding* when opening file in binary mode." msgstr "" -#: ../../tutorial/inputoutput.rst:345 msgid "" "In text mode, the default when reading is to convert platform-specific line " "endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. When " "writing in text mode, the default is to convert occurrences of ``\\n`` back " "to platform-specific line endings. This behind-the-scenes modification to " -"file data is fine for text files, but will corrupt binary data like that " -"in :file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode " -"when reading and writing such files." +"file data is fine for text files, but will corrupt binary data like that in :" +"file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " +"reading and writing such files." msgstr "" "A szövegmódban az az alapértelmezett, hogy olvasáskor a platform-specifikus " "sorvégek (``\\n`` Unixon, ``\\r\\n`` Windowson) simán ``\\n`` alakra " @@ -539,16 +476,14 @@ msgstr "" "vagy :file:`.EXE` fájlokat). Ezért nagyon figyeljünk oda, hogy a bináris " "módot használjunk ilyen fájlok olvasáskor és íráskor." -#: ../../tutorial/inputoutput.rst:353 msgid "" "It is good practice to use the :keyword:`with` keyword when dealing with " "file objects. The advantage is that the file is properly closed after its " -"suite finishes, even if an exception is raised at some point. " -"Using :keyword:`!with` is also much shorter than writing " -"equivalent :keyword:`try`\\ -\\ :keyword:`finally` blocks::" +"suite finishes, even if an exception is raised at some point. Using :" +"keyword:`!with` is also much shorter than writing equivalent :keyword:" +"`try`\\ -\\ :keyword:`finally` blocks::" msgstr "" -#: ../../tutorial/inputoutput.rst:359 msgid "" ">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" @@ -558,28 +493,24 @@ msgid "" "True" msgstr "" -#: ../../tutorial/inputoutput.rst:366 msgid "" -"If you're not using the :keyword:`with` keyword, then you should call " -"``f.close()`` to close the file and immediately free up any system resources " +"If you're not using the :keyword:`with` keyword, then you should call ``f." +"close()`` to close the file and immediately free up any system resources " "used by it." msgstr "" -#: ../../tutorial/inputoutput.rst:371 msgid "" "Calling ``f.write()`` without using the :keyword:`!with` keyword or calling " "``f.close()`` **might** result in the arguments of ``f.write()`` not being " "completely written to the disk, even if the program exits successfully." msgstr "" -#: ../../tutorial/inputoutput.rst:379 msgid "" "After a file object is closed, either by a :keyword:`with` statement or by " "calling ``f.close()``, attempts to use the file object will automatically " "fail. ::" msgstr "" -#: ../../tutorial/inputoutput.rst:383 msgid "" ">>> f.close()\n" ">>> f.read()\n" @@ -588,11 +519,9 @@ msgid "" "ValueError: I/O operation on closed file." msgstr "" -#: ../../tutorial/inputoutput.rst:393 msgid "Methods of File Objects" msgstr "A fájl objektumok metódusai" -#: ../../tutorial/inputoutput.rst:395 msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." @@ -600,7 +529,6 @@ msgstr "" "A fejezet további példái feltételezik, hogy már létezik az ``f`` fájl " "objektum." -#: ../../tutorial/inputoutput.rst:398 msgid "" "To read a file's contents, call ``f.read(size)``, which reads some quantity " "of data and returns it as a string (in text mode) or bytes object (in binary " @@ -612,7 +540,6 @@ msgid "" "``f.read()`` will return an empty string (``''``). ::" msgstr "" -#: ../../tutorial/inputoutput.rst:407 msgid "" ">>> f.read()\n" "'This is the entire file.\\n'\n" @@ -620,7 +547,6 @@ msgid "" "''" msgstr "" -#: ../../tutorial/inputoutput.rst:412 msgid "" "``f.readline()`` reads a single line from the file; a newline character " "(``\\n``) is left at the end of the string, and is only omitted on the last " @@ -638,7 +564,6 @@ msgstr "" "viszont a ``'\\n'`` jelképezi a sort, a karakterlánc, amely egyetlen egy " "újsor karaktert tartalmaz. ::" -#: ../../tutorial/inputoutput.rst:419 msgid "" ">>> f.readline()\n" "'This is the first line of the file.\\n'\n" @@ -648,7 +573,6 @@ msgid "" "''" msgstr "" -#: ../../tutorial/inputoutput.rst:426 msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" @@ -657,7 +581,6 @@ msgstr "" "fájlobjektumon. Ez memóriahasználat szempontjából hatékony, gyors, és " "egyszerű kódhoz vezet::" -#: ../../tutorial/inputoutput.rst:429 msgid "" ">>> for line in f:\n" "... print(line, end='')\n" @@ -666,7 +589,6 @@ msgid "" "Second line of the file" msgstr "" -#: ../../tutorial/inputoutput.rst:435 msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." @@ -674,7 +596,6 @@ msgstr "" "Ha a fájl összes sorát egy listába szeretnénk beolvastatni, akkor " "használhatjuk ezeket is: ``list(f)`` vagy ``f.readlines()``." -#: ../../tutorial/inputoutput.rst:438 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" @@ -682,13 +603,11 @@ msgstr "" "Az ``f.write(karakterlánc)`` metódus a *karakterlánc* tartalmát a fájlba " "írja, és kiírt karakterek számával tér vissza. ::" -#: ../../tutorial/inputoutput.rst:441 msgid "" ">>> f.write('This is a test\\n')\n" "15" msgstr "" -#: ../../tutorial/inputoutput.rst:444 msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" @@ -696,7 +615,6 @@ msgstr "" "Ha egy karakterlánctól eltérő típusú változót szeretnénk kiírni, akkor azt " "előbb karakterlánccá kell konvertálni::" -#: ../../tutorial/inputoutput.rst:447 msgid "" ">>> value = ('the answer', 42)\n" ">>> s = str(value) # convert the tuple to string\n" @@ -704,7 +622,6 @@ msgid "" "18" msgstr "" -#: ../../tutorial/inputoutput.rst:452 msgid "" "``f.tell()`` returns an integer giving the file object's current position in " "the file represented as number of bytes from the beginning of the file when " @@ -714,7 +631,6 @@ msgstr "" "aktuális pozícióját adja meg bájtban mérve a fájl kezdetétől számolva, ha " "bináris módban vagyunk, szövegmódban pedig egy nehezen értelmezhető számot." -#: ../../tutorial/inputoutput.rst:456 msgid "" "To change the file object's position, use ``f.seek(offset, whence)``. The " "position is computed from adding *offset* to a reference point; the " @@ -725,7 +641,6 @@ msgid "" "point. ::" msgstr "" -#: ../../tutorial/inputoutput.rst:463 msgid "" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" @@ -740,7 +655,6 @@ msgid "" "b'd'" msgstr "" -#: ../../tutorial/inputoutput.rst:475 msgid "" "In text files (those opened without a ``b`` in the mode string), only seeks " "relative to the beginning of the file are allowed (the exception being " @@ -755,18 +669,15 @@ msgstr "" "nulla. Minden egyéb *offset* érték nem meghatározott viselkedést " "eredményezhet." -#: ../../tutorial/inputoutput.rst:481 msgid "" "File objects have some additional methods, such as :meth:`~io.IOBase.isatty` " "and :meth:`~io.IOBase.truncate` which are less frequently used; consult the " "Library Reference for a complete guide to file objects." msgstr "" -#: ../../tutorial/inputoutput.rst:489 msgid "Saving structured data with :mod:`json`" msgstr "Strukturált adat mentése :mod:`json` formátumba" -#: ../../tutorial/inputoutput.rst:493 msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " "more effort, since the :meth:`~io.TextIOBase.read` method only returns " @@ -776,12 +687,11 @@ msgid "" "parsing and serializing by hand becomes complicated." msgstr "" -#: ../../tutorial/inputoutput.rst:500 msgid "" "Rather than having users constantly writing and debugging code to save " "complicated data types to files, Python allows you to use the popular data " -"interchange format called `JSON (JavaScript Object Notation) `_. The standard module called :mod:`json` can take Python data " +"interchange format called `JSON (JavaScript Object Notation) `_. The standard module called :mod:`json` can take Python data " "hierarchies, and convert them to string representations; this process is " "called :dfn:`serializing`. Reconstructing the data from the string " "representation is called :dfn:`deserializing`. Between serializing and " @@ -789,7 +699,6 @@ msgid "" "file or data, or sent over a network connection to some distant machine." msgstr "" -#: ../../tutorial/inputoutput.rst:511 msgid "" "The JSON format is commonly used by modern applications to allow for data " "exchange. Many programmers are already familiar with it, which makes it a " @@ -799,7 +708,6 @@ msgstr "" "az adatcserét. Sok programozó számára gyarkran ismerős régebbről, ami egy jó " "választássá teszi az együttműködés szempontjából." -#: ../../tutorial/inputoutput.rst:515 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" @@ -807,7 +715,6 @@ msgstr "" "Ha van egy ``x`` objektumunk, annak a JSON karakterlánc-reprezentációját " "egyetlen sor kóddal megkaphatjuk::" -#: ../../tutorial/inputoutput.rst:518 msgid "" ">>> import json\n" ">>> x = [1, 'simple', 'list']\n" @@ -815,39 +722,32 @@ msgid "" "'[1, \"simple\", \"list\"]'" msgstr "" -#: ../../tutorial/inputoutput.rst:523 msgid "" -"Another variant of the :func:`~json.dumps` function, " -"called :func:`~json.dump`, simply serializes the object to a :term:`text " -"file`. So if ``f`` is a :term:`text file` object opened for writing, we can " -"do this::" +"Another variant of the :func:`~json.dumps` function, called :func:`~json." +"dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " +"a :term:`text file` object opened for writing, we can do this::" msgstr "" -"A :func:`~json.dumps` függvény egy másik változata, " -"amelynek :func:`~json.dump`, a neve az objektumot egy :term:`text file`-ba " -"szerializálja. Tehát, ha ``f`` egy :term:`text file` objektum, amelyet " -"írásra nyitottunk meg, megtehetjük az alábbit::" +"A :func:`~json.dumps` függvény egy másik változata, amelynek :func:`~json." +"dump`, a neve az objektumot egy :term:`text file`-ba szerializálja. Tehát, " +"ha ``f`` egy :term:`text file` objektum, amelyet írásra nyitottunk meg, " +"megtehetjük az alábbit::" -#: ../../tutorial/inputoutput.rst:527 msgid "json.dump(x, f)" msgstr "" -#: ../../tutorial/inputoutput.rst:529 msgid "" "To decode the object again, if ``f`` is a :term:`binary file` or :term:`text " "file` object which has been opened for reading::" msgstr "" -#: ../../tutorial/inputoutput.rst:532 msgid "x = json.load(f)" msgstr "" -#: ../../tutorial/inputoutput.rst:535 msgid "" "JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening " "JSON file as a :term:`text file` for both of reading and writing." msgstr "" -#: ../../tutorial/inputoutput.rst:538 msgid "" "This simple serialization technique can handle lists and dictionaries, but " "serializing arbitrary class instances in JSON requires a bit of extra " @@ -858,11 +758,9 @@ msgstr "" "de általános osztálypéldányok szerializációja további erőfeszítést igényel. " "A :mod:`json` modul referenciájában magyarázatot találhatunk erre." -#: ../../tutorial/inputoutput.rst:544 msgid ":mod:`pickle` - the pickle module" msgstr ":mod:`pickle` - a pickle modue" -#: ../../tutorial/inputoutput.rst:546 msgid "" "Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " "serialization of arbitrarily complex Python objects. As such, it is " @@ -878,54 +776,41 @@ msgstr "" "megbízhatatlan forrásból származó pickle adat deszerializációja képes " "végrehajtani tetszőleges kódot, ha az adatot gyakorlott támadó hozta létre." -#: ../../tutorial/inputoutput.rst:104 msgid "formatted string literal" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "interpolated string literal" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "string" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "formatted literal" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "interpolated literal" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "f-string" msgstr "" -#: ../../tutorial/inputoutput.rst:104 msgid "fstring" msgstr "" -#: ../../tutorial/inputoutput.rst:309 msgid "built-in function" msgstr "" -#: ../../tutorial/inputoutput.rst:309 msgid "open" msgstr "" -#: ../../tutorial/inputoutput.rst:309 msgid "object" msgstr "" -#: ../../tutorial/inputoutput.rst:309 msgid "file" msgstr "" -#: ../../tutorial/inputoutput.rst:491 msgid "module" msgstr "" -#: ../../tutorial/inputoutput.rst:491 msgid "json" msgstr "" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 90176fd..112a1f3 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/interactive.rst:5 msgid "Interactive Input Editing and History Substitution" msgstr "" -#: ../../tutorial/interactive.rst:7 msgid "" "Some versions of the Python interpreter support editing of the current input " "line and history substitution, similar to facilities found in the Korn shell " @@ -31,11 +29,9 @@ msgid "" "documentation which we won't duplicate here." msgstr "" -#: ../../tutorial/interactive.rst:17 msgid "Tab Completion and History Editing" msgstr "" -#: ../../tutorial/interactive.rst:19 msgid "" "Completion of variable and module names is :ref:`automatically enabled " "` at interpreter startup so that the :kbd:`Tab` key " @@ -45,16 +41,14 @@ msgid "" "final ``'.'`` and then suggest completions from the attributes of the " "resulting object. Note that this may execute application-defined code if an " "object with a :meth:`~object.__getattr__` method is part of the expression. " -"The default configuration also saves your history into a file " -"named :file:`.python_history` in your user directory. The history will be " -"available again during the next interactive interpreter session." +"The default configuration also saves your history into a file named :file:`." +"python_history` in your user directory. The history will be available again " +"during the next interactive interpreter session." msgstr "" -#: ../../tutorial/interactive.rst:36 msgid "Alternatives to the Interactive Interpreter" msgstr "" -#: ../../tutorial/interactive.rst:38 msgid "" "This facility is an enormous step forward compared to earlier versions of " "the interpreter; however, some wishes are left: It would be nice if the " @@ -64,7 +58,6 @@ msgid "" "suggest) matching parentheses, quotes, etc., would also be useful." msgstr "" -#: ../../tutorial/interactive.rst:45 msgid "" "One alternative enhanced interactive interpreter that has been around for " "quite some time is IPython_, which features tab completion, object " diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index f113af6..9b8fb73 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/interpreter.rst:5 msgid "Using the Python Interpreter" msgstr "A Python értelmező használata" -#: ../../tutorial/interpreter.rst:11 msgid "Invoking the Interpreter" msgstr "Az értelmező elindítása" -#: ../../tutorial/interpreter.rst:13 msgid "" "The Python interpreter is usually installed as |" "usr_local_bin_python_x_dot_y_literal| on those machines where it is " @@ -38,11 +35,9 @@ msgid "" "makes it possible to start it by typing the command:" msgstr "" -#: ../../tutorial/interpreter.rst:17 msgid "python3.14" msgstr "" -#: ../../tutorial/interpreter.rst:21 msgid "" "to the shell. [#]_ Since the choice of the directory where the interpreter " "lives is an installation option, other places are possible; check with your " @@ -53,7 +48,6 @@ msgstr "" "program; ha nem tudod az értelmezőt elindítani, kérj segítséget egy nagyobb " "tudású embertől. (Például a :file:`/usr/local/python` is egy gyakori hely.)" -#: ../../tutorial/interpreter.rst:26 msgid "" "On Windows machines where you have installed Python from the :ref:`Microsoft " "Store `, the |python_x_dot_y_literal| command will be " @@ -62,7 +56,6 @@ msgid "" "launch Python." msgstr "" -#: ../../tutorial/interpreter.rst:31 msgid "" "Typing an end-of-file character (:kbd:`Control-D` on Unix, :kbd:`Control-Z` " "on Windows) at the primary prompt causes the interpreter to exit with a zero " @@ -74,7 +67,6 @@ msgstr "" "(zero exit status) lép ki. Ha ez nem működik, akkor az értelmezőt a " "következő utasítással hagyhatod el: ``quit()``." -#: ../../tutorial/interpreter.rst:36 msgid "" "The interpreter's line-editing features include interactive editing, history " "substitution and code completion on systems that support the `GNU Readline " @@ -87,7 +79,6 @@ msgid "" "backspace to remove characters from the current line." msgstr "" -#: ../../tutorial/interpreter.rst:46 msgid "" "The interpreter operates somewhat like the Unix shell: when called with " "standard input connected to a tty device, it reads and executes commands " @@ -99,16 +90,14 @@ msgstr "" "fájlnév argumentummal vagy egy fájllal, mint szabványos bemenettel hívjuk " "meg, akkor *szkript*-ként lefuttatja a megadott fájlt." -#: ../../tutorial/interpreter.rst:51 msgid "" "A second way of starting the interpreter is ``python -c command [arg] ...``, " -"which executes the statement(s) in *command*, analogous to the " -"shell's :option:`-c` option. Since Python statements often contain spaces " -"or other characters that are special to the shell, it is usually advised to " -"quote *command* in its entirety." +"which executes the statement(s) in *command*, analogous to the shell's :" +"option:`-c` option. Since Python statements often contain spaces or other " +"characters that are special to the shell, it is usually advised to quote " +"*command* in its entirety." msgstr "" -#: ../../tutorial/interpreter.rst:57 msgid "" "Some Python modules are also useful as scripts. These can be invoked using " "``python -m module [arg] ...``, which executes the source file for *module* " @@ -118,27 +107,23 @@ msgstr "" "``python -m modul [arg] ...`` -- ez az utasítás végrehajtja a *modul* " "forráskódját." -#: ../../tutorial/interpreter.rst:61 msgid "" "When a script file is used, it is sometimes useful to be able to run the " -"script and enter interactive mode afterwards. This can be done by " -"passing :option:`-i` before the script." +"script and enter interactive mode afterwards. This can be done by passing :" +"option:`-i` before the script." msgstr "" "Sokszor hasznos, ha egy szkript-fájl futtatása után rögtön interaktív " -"üzemmódba kerülünk. Ezt egyszerű elérni, a szkript neve előtt adjuk meg " -"az :option:`-i` kapcsolót." +"üzemmódba kerülünk. Ezt egyszerű elérni, a szkript neve előtt adjuk meg az :" +"option:`-i` kapcsolót." -#: ../../tutorial/interpreter.rst:65 msgid "All command line options are described in :ref:`using-on-general`." msgstr "" "Az összes parancssori kapcsoló leírása megtalálható itt: :ref:`using-on-" "general`." -#: ../../tutorial/interpreter.rst:71 msgid "Argument Passing" msgstr "Argumentum-átadás" -#: ../../tutorial/interpreter.rst:73 msgid "" "When known to the interpreter, the script name and additional arguments " "thereafter are turned into a list of strings and assigned to the ``argv`` " @@ -159,18 +144,16 @@ msgstr "" "amennyiben sem szkrip-nevet, sem semmilyen argumentumot nem adunk meg, a " "``sys.argv[0]`` változó értéke üres string lesz. Ha a szkript neveként " "``'-'``-t adunk meg (ez a szabványos bemenetnek felel meg), ``sys.argv[0]`` " -"értéke ``'-'`` lesz. Argumentumként :option:`-c` *parancs*-ot megadva " -"``sys.argv[0]`` értéke ``'-c'`` lesz. Ha a :option:`-m` *modul* formát " -"hasznájuk, akkor a ``sys.argv[0]`` változóban a modul teljes neve kerül. " -"A :option:`-c` *parancs* vagy a :option:`-m` *modul* után álló kapcsolókat " -"az értelmező nem dolgozza fel, hanem a ``sys.argv``-ben eltárolva a " -"*parancs*-ra vagy *modul*-ra hagyja annak feldolgozását." - -#: ../../tutorial/interpreter.rst:89 +"értéke ``'-'`` lesz. Argumentumként :option:`-c` *parancs*-ot megadva ``sys." +"argv[0]`` értéke ``'-c'`` lesz. Ha a :option:`-m` *modul* formát " +"hasznájuk, akkor a ``sys.argv[0]`` változóban a modul teljes neve kerül. A :" +"option:`-c` *parancs* vagy a :option:`-m` *modul* után álló kapcsolókat az " +"értelmező nem dolgozza fel, hanem a ``sys.argv``-ben eltárolva a *parancs*-" +"ra vagy *modul*-ra hagyja annak feldolgozását." + msgid "Interactive Mode" msgstr "Interaktív (párbeszédes) mód" -#: ../../tutorial/interpreter.rst:91 msgid "" "When commands are read from a tty, the interpreter is said to be in " "*interactive mode*. In this mode it prompts for the next command with the " @@ -189,7 +172,6 @@ msgstr "" "prompt megjelenne, egy üdvözlő-szöveget ír ki, amely tartalmazza az " "értelmező verziószámát és a jogi védettséget:" -#: ../../tutorial/interpreter.rst:98 msgid "" "$ python3.14\n" "Python 3.14 (default, April 4 2024, 09:25:04)\n" @@ -199,7 +181,6 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/interpreter.rst:108 msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" @@ -207,7 +188,6 @@ msgstr "" "Folytatólagos sorok szükségesek, ha többsoros szerkezeteket írsz be. Például " "a következő :keyword:`if` utasítás esetén::" -#: ../../tutorial/interpreter.rst:111 msgid "" ">>> the_world_is_flat = True\n" ">>> if the_world_is_flat:\n" @@ -216,19 +196,15 @@ msgid "" "Be careful not to fall off!" msgstr "" -#: ../../tutorial/interpreter.rst:118 msgid "For more on interactive mode, see :ref:`tut-interac`." msgstr "Az interaktív módról itt olvashatsz bővebben: :ref:`tut-interac`." -#: ../../tutorial/interpreter.rst:124 msgid "The Interpreter and Its Environment" msgstr "Az értelmező és környezete" -#: ../../tutorial/interpreter.rst:130 msgid "Source Code Encoding" msgstr "A forráskód karakterkészlete" -#: ../../tutorial/interpreter.rst:132 msgid "" "By default, Python source files are treated as encoded in UTF-8. In that " "encoding, characters of most languages in the world can be used " @@ -247,7 +223,6 @@ msgstr "" "olyan betűtípust kell használnia, amely tartalmazza a fájlban szereplő " "összes karaktert." -#: ../../tutorial/interpreter.rst:140 msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" @@ -256,18 +231,15 @@ msgstr "" "megtehessük, még egy speciális megjegyzés-sort helyezzünk a ``#!`` sor után, " "hogy definiáljuk a kódolást::" -#: ../../tutorial/interpreter.rst:143 msgid "# -*- coding: encoding -*-" msgstr "" -#: ../../tutorial/interpreter.rst:145 msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" "A kódolás megadásával a forrásfájlban mindent *kódolás* kódolással kerül " "értelmezésre UTF-8 helyett. A lehetséges kódolások a Python Library " "Reference-ben találhatóak a :mod:`codecs` szakaszban." -#: ../../tutorial/interpreter.rst:147 msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" @@ -276,28 +248,23 @@ msgstr "" "és más kódolásra, mondjuk Windows-1252 kódolásra van szükség, az alábbi " "írható::" -#: ../../tutorial/interpreter.rst:150 msgid "# -*- coding: cp1252 -*-" msgstr "" -#: ../../tutorial/interpreter.rst:152 msgid "" "One exception to the *first line* rule is when the source code starts with " "a :ref:`UNIX \"shebang\" line `. In this case, the encoding " "declaration should be added as the second line of the file. For example::" msgstr "" -#: ../../tutorial/interpreter.rst:156 msgid "" "#!/usr/bin/env python3\n" "# -*- coding: cp1252 -*-" msgstr "" -#: ../../tutorial/interpreter.rst:160 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/interpreter.rst:161 msgid "" "On Unix, the Python 3.x interpreter is by default not installed with the " "executable named ``python``, so that it does not conflict with a " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 9346d9c..25c0ca1 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/introduction.rst:5 msgid "An Informal Introduction to Python" msgstr "Kötetlen bevezető a Pythonba" -#: ../../tutorial/introduction.rst:7 msgid "" "In the following examples, input and output are distinguished by the " "presence or absence of prompts (:term:`>>>` and :term:`...`): to repeat the " @@ -43,14 +41,12 @@ msgstr "" "jelenti, hogy csak egy Újsort kell ütni; ez jelzi egy többsoros utasítás " "végét." -#: ../../tutorial/introduction.rst:16 msgid "" "You can use the \"Copy\" button (it appears in the upper-right corner when " "hovering over or tapping a code example), which strips prompts and omits " "output, to copy and paste the input lines into your interpreter." msgstr "" -#: ../../tutorial/introduction.rst:22 msgid "" "Many of the examples in this manual, even those entered at the interactive " "prompt, include comments. Comments in Python start with the hash character, " @@ -68,11 +64,9 @@ msgstr "" "példában!). A kettőskereszt karakter egy karakterláncon belül csak egy " "kettőskeresztet jelent." -#: ../../tutorial/introduction.rst:30 msgid "Some examples::" msgstr "Pár példa::" -#: ../../tutorial/introduction.rst:32 msgid "" "# this is the first comment\n" "spam = 1 # and this is the second comment\n" @@ -80,11 +74,9 @@ msgid "" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" -#: ../../tutorial/introduction.rst:41 msgid "Using Python as a Calculator" msgstr "A Python használata számológépként" -#: ../../tutorial/introduction.rst:43 msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" @@ -92,11 +84,9 @@ msgstr "" "Próbáljunk ki néhány Python utasítást. Indítsuk el az értelmezőt, és várjuk " "meg az elsődleges promptot: ``>>>``. (Nem kell sokáig várni.)" -#: ../../tutorial/introduction.rst:50 msgid "Numbers" msgstr "Számok" -#: ../../tutorial/introduction.rst:52 msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " @@ -104,7 +94,6 @@ msgid "" "parentheses (``()``) can be used for grouping. For example::" msgstr "" -#: ../../tutorial/introduction.rst:58 msgid "" ">>> 2 + 2\n" "4\n" @@ -116,25 +105,21 @@ msgid "" "1.6" msgstr "" -#: ../../tutorial/introduction.rst:67 msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " -"ones with a fractional part (e.g. ``5.0``, ``1.6``) have " -"type :class:`float`. We will see more about numeric types later in the " -"tutorial." +"ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" +"`float`. We will see more about numeric types later in the tutorial." msgstr "" "Az egész számok (pl. ``2``, ``4``, ``20``) :class:`int` típusúak, azok, " "amiknek törtrésze is van (e.g. ``5.0``, ``1.6``) a :class:`float` típusba. " "Az oktató további részében még többet tanulunk meg a típusokról." -#: ../../tutorial/introduction.rst:71 msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result you can use the ``//`` operator; to calculate the " "remainder you can use ``%``::" msgstr "" -#: ../../tutorial/introduction.rst:75 msgid "" ">>> 17 / 3 # classic division returns a float\n" "5.666666666666667\n" @@ -147,14 +132,12 @@ msgid "" "17" msgstr "" -#: ../../tutorial/introduction.rst:85 msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" "A Pythonban a ``**`` operátor használható a hatvány kiszámítására [#]_::" -#: ../../tutorial/introduction.rst:87 msgid "" ">>> 5 ** 2 # 5 squared\n" "25\n" @@ -162,7 +145,6 @@ msgid "" "128" msgstr "" -#: ../../tutorial/introduction.rst:92 msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" @@ -171,7 +153,6 @@ msgstr "" "változónak. Az értékadás után az értelmező újabb utasításra vár, látszólag " "nem történik semmi::" -#: ../../tutorial/introduction.rst:95 msgid "" ">>> width = 20\n" ">>> height = 5 * 9\n" @@ -179,7 +160,6 @@ msgid "" "900" msgstr "" -#: ../../tutorial/introduction.rst:100 msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" @@ -187,7 +167,6 @@ msgstr "" "Ha egy változó nincs definiálva (nincs érték rendelve hozzá), és használni " "próbáljuk, akkor hibaüzenetet kapunk::" -#: ../../tutorial/introduction.rst:103 msgid "" ">>> n # try to access an undefined variable\n" "Traceback (most recent call last):\n" @@ -195,7 +174,6 @@ msgid "" "NameError: name 'n' is not defined" msgstr "" -#: ../../tutorial/introduction.rst:108 msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" @@ -204,13 +182,11 @@ msgstr "" "műveletek amelyeknél keverednek a típusok, az egészeket lebegőpontossá " "alakítják::" -#: ../../tutorial/introduction.rst:111 msgid "" ">>> 4 * 3.75 - 1\n" "14.0" msgstr "" -#: ../../tutorial/introduction.rst:114 msgid "" "In interactive mode, the last printed expression is assigned to the variable " "``_``. This means that when you are using Python as a desk calculator, it " @@ -220,7 +196,6 @@ msgstr "" "változóban van. Így, ha a Pythont asztali számológépként használod, akkor " "egyszerűbb folytatni a számolásokat, például::" -#: ../../tutorial/introduction.rst:118 msgid "" ">>> tax = 12.5 / 100\n" ">>> price = 100.50\n" @@ -232,7 +207,6 @@ msgid "" "113.06" msgstr "" -#: ../../tutorial/introduction.rst:127 msgid "" "This variable should be treated as read-only by the user. Don't explicitly " "assign a value to it --- you would create an independent local variable with " @@ -244,25 +218,22 @@ msgstr "" "viselkedik. (Ha egy globális változó nevével létrehozunk egy helyi " "változót, akkor az értelmező a helyit használja.)" -#: ../../tutorial/introduction.rst:131 msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " -"of numbers, such as :class:`~decimal.Decimal` " -"and :class:`~fractions.Fraction`. Python also has built-in support " -"for :ref:`complex numbers `, and uses the ``j`` or ``J`` " -"suffix to indicate the imaginary part (e.g. ``3+5j``)." +"of numbers, such as :class:`~decimal.Decimal` and :class:`~fractions." +"Fraction`. Python also has built-in support for :ref:`complex numbers " +"`, and uses the ``j`` or ``J`` suffix to indicate the " +"imaginary part (e.g. ``3+5j``)." msgstr "" "Az :class:`int` és :class:`float` osztályokon felül a Python támogat egyéb " -"typusokat is, mint például a :class:`~decimal.Decimal` " -"és :class:`~fractions.Fraction`. A Python beépített támogatással rendelkezik " -"a :ref:`komplex számok ` tekintetében, és a ``j`` vagy ``J`` " -"utótagot hasznája a képzetes rész jelölésére (pl. ``3+5j``, ``1j``)." +"typusokat is, mint például a :class:`~decimal.Decimal` és :class:`~fractions." +"Fraction`. A Python beépített támogatással rendelkezik a :ref:`komplex " +"számok ` tekintetében, és a ``j`` vagy ``J`` utótagot " +"hasznája a képzetes rész jelölésére (pl. ``3+5j``, ``1j``)." -#: ../../tutorial/introduction.rst:141 msgid "Text" msgstr "" -#: ../../tutorial/introduction.rst:143 msgid "" "Python can manipulate text (represented by type :class:`str`, so-called " "\"strings\") as well as numbers. This includes characters \"``!``\", words " @@ -271,7 +242,6 @@ msgid "" "quotes (``\"...\"``) with the same result [#]_." msgstr "" -#: ../../tutorial/introduction.rst:149 msgid "" ">>> 'spam eggs' # single quotes\n" "'spam eggs'\n" @@ -281,13 +251,11 @@ msgid "" "'1975'" msgstr "" -#: ../../tutorial/introduction.rst:158 msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" msgstr "" -#: ../../tutorial/introduction.rst:161 msgid "" ">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" @@ -301,7 +269,6 @@ msgid "" "'\"Isn\\'t,\" they said.'" msgstr "" -#: ../../tutorial/introduction.rst:172 msgid "" "In the Python shell, the string definition and output string can look " "different. The :func:`print` function produces a more readable output, by " @@ -309,7 +276,6 @@ msgid "" "characters::" msgstr "" -#: ../../tutorial/introduction.rst:176 msgid "" ">>> s = 'First line.\\nSecond line.' # \\n means newline\n" ">>> s # without print(), special characters are included in the string\n" @@ -320,7 +286,6 @@ msgid "" "Second line." msgstr "" -#: ../../tutorial/introduction.rst:183 msgid "" "If you don't want characters prefaced by ``\\`` to be interpreted as special " "characters, you can use *raw strings* by adding an ``r`` before the first " @@ -330,7 +295,6 @@ msgstr "" "karakterként értelmeződjenek, akkor *nyers karakterláncokat* használhatsz " "egy ``r``-et helyezve a kezdő idézőjel elé::" -#: ../../tutorial/introduction.rst:187 msgid "" ">>> print('C:\\some\\name') # here \\n means newline!\n" "C:\\some\n" @@ -339,14 +303,12 @@ msgid "" "C:\\some\\name" msgstr "" -#: ../../tutorial/introduction.rst:193 msgid "" "There is one subtle aspect to raw strings: a raw string may not end in an " "odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." msgstr "" -#: ../../tutorial/introduction.rst:198 msgid "" "String literals can span multiple lines. One way is using triple-quotes: " "``\"\"\"...\"\"\"`` or ``'''...'''``. End-of-line characters are " @@ -355,7 +317,6 @@ msgid "" "initial newline is not included::" msgstr "" -#: ../../tutorial/introduction.rst:204 msgid "" ">>> print(\"\"\"\\\n" "... Usage: thingy [OPTIONS]\n" @@ -369,7 +330,6 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/introduction.rst:215 msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" @@ -377,14 +337,12 @@ msgstr "" "Karakterláncokat a ``+`` művelettel ragaszthatunk össze és ``*``-gal " "ismételhetünk. ::" -#: ../../tutorial/introduction.rst:218 msgid "" ">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" -#: ../../tutorial/introduction.rst:222 msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" @@ -393,19 +351,16 @@ msgstr "" "vannak, és nem egy változóban, vagy nem egy függvény hoz létre) az értelmező " "magától összefűz::" -#: ../../tutorial/introduction.rst:225 msgid "" ">>> 'Py' 'thon'\n" "'Python'" msgstr "" -#: ../../tutorial/introduction.rst:228 msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "A literálisok összefűzése különösen hasznos hosszú sorok széttörésére::" -#: ../../tutorial/introduction.rst:230 msgid "" ">>> text = ('Put several strings within parentheses '\n" "... 'to have them joined together.')\n" @@ -413,13 +368,11 @@ msgid "" "'Put several strings within parentheses to have them joined together.'" msgstr "" -#: ../../tutorial/introduction.rst:235 msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" "De ez csak két literálissal működik, változóval vagy kifejezéssel nem::" -#: ../../tutorial/introduction.rst:237 msgid "" ">>> prefix = 'Py'\n" ">>> prefix 'thon' # can't concatenate a variable and a string literal\n" @@ -434,20 +387,17 @@ msgid "" "SyntaxError: invalid syntax" msgstr "" -#: ../../tutorial/introduction.rst:249 msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Ha változókat akarsz összefűzni, vagy változót literálissal, használj ``+`` " "műveletet::" -#: ../../tutorial/introduction.rst:251 msgid "" ">>> prefix + 'thon'\n" "'Python'" msgstr "" -#: ../../tutorial/introduction.rst:254 msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string " @@ -457,7 +407,6 @@ msgstr "" "a következőhöz az 1-es index és így tovább. Nincs külön karakter típus; egy " "karakter egyszerűen egy egy hosszúságú karakterlánc::" -#: ../../tutorial/introduction.rst:258 msgid "" ">>> word = 'Python'\n" ">>> word[0] # character in position 0\n" @@ -466,13 +415,11 @@ msgid "" "'n'" msgstr "" -#: ../../tutorial/introduction.rst:264 msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" "Az indexek negatívak is lehetnek, ilyenkor jobbról kezdünk el számolni::" -#: ../../tutorial/introduction.rst:266 msgid "" ">>> word[-1] # last character\n" "'n'\n" @@ -482,18 +429,15 @@ msgid "" "'P'" msgstr "" -#: ../../tutorial/introduction.rst:273 msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" -#: ../../tutorial/introduction.rst:275 msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" -#: ../../tutorial/introduction.rst:278 msgid "" ">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" @@ -501,7 +445,6 @@ msgid "" "'tho'" msgstr "" -#: ../../tutorial/introduction.rst:283 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" @@ -510,7 +453,6 @@ msgstr "" "alapértéke 0, az elhagyott második index alapértéke a szeletelendő " "karakterlánc hossza::" -#: ../../tutorial/introduction.rst:286 msgid "" ">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" @@ -520,7 +462,6 @@ msgid "" "'on'" msgstr "" -#: ../../tutorial/introduction.rst:293 msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" @@ -528,7 +469,6 @@ msgstr "" "A kezdő index mindig beleértendő az eredménybe, a végső index pedig nem. Ez " "teszi lehetővé, hogy ``s[:i] + s[i:]`` mindig egyenlő ``s``-el::" -#: ../../tutorial/introduction.rst:296 msgid "" ">>> word[:2] + word[2:]\n" "'Python'\n" @@ -536,7 +476,6 @@ msgid "" "'Python'" msgstr "" -#: ../../tutorial/introduction.rst:301 msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " @@ -548,7 +487,6 @@ msgstr "" "számozzuk nullának. Ekkor az *n* karakterből álló karakterlánc utolsó " "karakterének jobb éle az *n*, például::" -#: ../../tutorial/introduction.rst:306 msgid "" " +---+---+---+---+---+---+\n" " | P | y | t | h | o | n |\n" @@ -557,7 +495,6 @@ msgid "" "-6 -5 -4 -3 -2 -1" msgstr "" -#: ../../tutorial/introduction.rst:312 msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " @@ -569,7 +506,6 @@ msgstr "" "szelet mindazokat a karaktereket tartalmazza, amelyek az *i* és *j* jelű " "élek között vannak." -#: ../../tutorial/introduction.rst:317 msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " @@ -579,11 +515,9 @@ msgstr "" "egyenlő, ha mindkettő a valódi szóhatárokon belül van. Például a " "``szo[1:3]`` hossza 2." -#: ../../tutorial/introduction.rst:321 msgid "Attempting to use an index that is too large will result in an error::" msgstr "Ha olyan indexet használunk, amely túl nagy, az eredmény hibát ad::" -#: ../../tutorial/introduction.rst:323 msgid "" ">>> word[42] # the word only has 6 characters\n" "Traceback (most recent call last):\n" @@ -591,7 +525,6 @@ msgid "" "IndexError: string index out of range" msgstr "" -#: ../../tutorial/introduction.rst:328 msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" @@ -599,7 +532,6 @@ msgstr "" "Ellenben a tartományon kívüli indexek a szeletekben rugalmasan kezeli a " "Python nyelv::" -#: ../../tutorial/introduction.rst:331 msgid "" ">>> word[4:42]\n" "'on'\n" @@ -607,7 +539,6 @@ msgid "" "''" msgstr "" -#: ../../tutorial/introduction.rst:336 msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" @@ -615,7 +546,6 @@ msgstr "" "A Python karakterláncait nem lehet megváltoztatni azok :term:`immutable`-k. " "Ezért, ha egy adott indexű helyhez értéket rendelünk, hibát kapunk::" -#: ../../tutorial/introduction.rst:339 msgid "" ">>> word[0] = 'J'\n" "Traceback (most recent call last):\n" @@ -627,11 +557,9 @@ msgid "" "TypeError: 'str' object does not support item assignment" msgstr "" -#: ../../tutorial/introduction.rst:348 msgid "If you need a different string, you should create a new one::" msgstr "Ha másik karakterláncra van szükség, alkothatunk egy újat::" -#: ../../tutorial/introduction.rst:350 msgid "" ">>> 'J' + word[1:]\n" "'Jython'\n" @@ -639,68 +567,54 @@ msgid "" "'Pypy'" msgstr "" -#: ../../tutorial/introduction.rst:355 msgid "The built-in function :func:`len` returns the length of a string::" msgstr "A beépített :func:`len` függvény a karakterlánc hosszával tér vissza::" -#: ../../tutorial/introduction.rst:357 msgid "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" "34" msgstr "" -#: ../../tutorial/introduction.rst:364 msgid ":ref:`textseq`" msgstr "" -#: ../../tutorial/introduction.rst:365 msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -#: ../../tutorial/introduction.rst:368 msgid ":ref:`string-methods`" msgstr "" -#: ../../tutorial/introduction.rst:369 msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" -#: ../../tutorial/introduction.rst:372 msgid ":ref:`f-strings`" msgstr "" -#: ../../tutorial/introduction.rst:373 msgid "String literals that have embedded expressions." msgstr "" -#: ../../tutorial/introduction.rst:375 msgid ":ref:`formatstrings`" msgstr "" -#: ../../tutorial/introduction.rst:376 msgid "Information about string formatting with :meth:`str.format`." msgstr "" -#: ../../tutorial/introduction.rst:378 msgid ":ref:`old-string-formatting`" msgstr "" -#: ../../tutorial/introduction.rst:379 msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." msgstr "" -#: ../../tutorial/introduction.rst:386 msgid "Lists" msgstr "Listák" -#: ../../tutorial/introduction.rst:388 msgid "" "Python knows a number of *compound* data types, used to group together other " "values. The most versatile is the *list*, which can be written as a list of " @@ -713,20 +627,17 @@ msgstr "" "elemeinek nem kell azonos típusúaknak lenniük, bár gyakran minden elem " "azonos típusú. ::" -#: ../../tutorial/introduction.rst:393 msgid "" ">>> squares = [1, 4, 9, 16, 25]\n" ">>> squares\n" "[1, 4, 9, 16, 25]" msgstr "" -#: ../../tutorial/introduction.rst:397 msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" -#: ../../tutorial/introduction.rst:400 msgid "" ">>> squares[0] # indexing returns the item\n" "1\n" @@ -736,17 +647,14 @@ msgid "" "[9, 16, 25]" msgstr "" -#: ../../tutorial/introduction.rst:407 msgid "Lists also support operations like concatenation::" msgstr "A listák az összefűzést is támogatják::" -#: ../../tutorial/introduction.rst:409 msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" msgstr "" -#: ../../tutorial/introduction.rst:412 msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" @@ -754,7 +662,6 @@ msgstr "" "A karakterláncokkal ellentétben -- amelyek :term:`immutable` adattípusok -- " "a listák :term:`mutable` adattípusok, azaz módosíthatjuk a tartalmát::" -#: ../../tutorial/introduction.rst:415 msgid "" ">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" ">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" @@ -764,13 +671,11 @@ msgid "" "[1, 8, 27, 64, 125]" msgstr "" -#: ../../tutorial/introduction.rst:422 msgid "" -"You can also add new items at the end of the list, by using the :meth:`!" -"list.append` *method* (we will see more about methods later)::" +"You can also add new items at the end of the list, by using the :meth:`list." +"append` *method* (we will see more about methods later)::" msgstr "" -#: ../../tutorial/introduction.rst:425 msgid "" ">>> cubes.append(216) # add the cube of 6\n" ">>> cubes.append(7 ** 3) # and the cube of 7\n" @@ -778,7 +683,6 @@ msgid "" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" -#: ../../tutorial/introduction.rst:430 msgid "" "Simple assignment in Python never copies data. When you assign a list to a " "variable, the variable refers to the *existing list*. Any changes you make " @@ -786,7 +690,6 @@ msgid "" "that refer to it.::" msgstr "" -#: ../../tutorial/introduction.rst:435 msgid "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" @@ -797,14 +700,12 @@ msgid "" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" -#: ../../tutorial/introduction.rst:443 msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " "` of the list::" msgstr "" -#: ../../tutorial/introduction.rst:447 msgid "" ">>> correct_rgba = rgba[:]\n" ">>> correct_rgba[-1] = \"Alpha\"\n" @@ -814,7 +715,6 @@ msgid "" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" -#: ../../tutorial/introduction.rst:454 msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" @@ -822,7 +722,6 @@ msgstr "" "Akát szeletnek is adhatunk értéket, és ez akár a lista méretét is " "megváltoztathatja, vagy teljesen törölheti a tartalmát::" -#: ../../tutorial/introduction.rst:457 msgid "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" ">>> letters\n" @@ -841,18 +740,15 @@ msgid "" "[]" msgstr "" -#: ../../tutorial/introduction.rst:473 msgid "The built-in function :func:`len` also applies to lists::" msgstr "A :func:`len` beépített függvény listákra is alkalmazható::" -#: ../../tutorial/introduction.rst:475 msgid "" ">>> letters = ['a', 'b', 'c', 'd']\n" ">>> len(letters)\n" "4" msgstr "" -#: ../../tutorial/introduction.rst:479 msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" @@ -860,7 +756,6 @@ msgstr "" "Lehetséges a listákat egymásba ágyazni (olyan listákat létrehozni, amelyek " "újabb listákat tartalmaznak), például::" -#: ../../tutorial/introduction.rst:482 msgid "" ">>> a = ['a', 'b', 'c']\n" ">>> n = [1, 2, 3]\n" @@ -873,11 +768,9 @@ msgid "" "'b'" msgstr "" -#: ../../tutorial/introduction.rst:495 msgid "First Steps Towards Programming" msgstr "Első lépések a programozás felé" -#: ../../tutorial/introduction.rst:497 msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " @@ -885,7 +778,6 @@ msgid "" "follows::" msgstr "" -#: ../../tutorial/introduction.rst:502 msgid "" ">>> # Fibonacci series:\n" ">>> # the sum of two elements defines the next\n" @@ -903,11 +795,9 @@ msgid "" "8" msgstr "" -#: ../../tutorial/introduction.rst:517 msgid "This example introduces several new features." msgstr "Ebben a példában a Python több új tulajdonságát megtaláljuk:" -#: ../../tutorial/introduction.rst:519 msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -920,7 +810,6 @@ msgstr "" "megmutassuk, hogy előbb a jobboldal értékelődik ki, és csak azután megy " "végbe az értékadás. A jobboldali kifejezések jobbról balra értékelődnek ki." -#: ../../tutorial/introduction.rst:525 msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -932,7 +821,6 @@ msgid "" "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" -#: ../../tutorial/introduction.rst:534 msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -954,7 +842,6 @@ msgstr "" "(Az IDLE integrált fejlesztői környezetben található parancsértelmező és az " "ipython nevű parancsértelmező automatikusan behúzza a ciklusmagot.)" -#: ../../tutorial/introduction.rst:543 msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -964,14 +851,12 @@ msgid "" "things nicely, like this::" msgstr "" -#: ../../tutorial/introduction.rst:550 msgid "" ">>> i = 256*256\n" ">>> print('The value of i is', i)\n" "The value of i is 65536" msgstr "" -#: ../../tutorial/introduction.rst:554 msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" @@ -979,7 +864,6 @@ msgstr "" "Az *end* kulcsszavas argumentum használható arra, hogy megakadályozzuk a " "print után az újsor kiírását, vagy mást írjunk ki a print végén::" -#: ../../tutorial/introduction.rst:557 msgid "" ">>> a, b = 0, 1\n" ">>> while a < 1000:\n" @@ -989,11 +873,9 @@ msgid "" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," msgstr "" -#: ../../tutorial/introduction.rst:566 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/introduction.rst:567 msgid "" "Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " @@ -1003,7 +885,6 @@ msgstr "" "(3**2)`` fog értelmezésre kerülni, így az eredmény ``-9``. Hogy ezt " "elkerüljük, és ``9``-et kapjunk, ``(-3)**2`` formában kell írni." -#: ../../tutorial/introduction.rst:571 msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " @@ -1015,10 +896,8 @@ msgstr "" "Az egyetlen különbség a kettő között, hogy az egyszeres idézőjelben nem kell " "levédeni a ``\"`` jelet (de a ``\\'`` jelet igen) és viszont." -#: ../../tutorial/introduction.rst:20 msgid "# (hash)" msgstr "" -#: ../../tutorial/introduction.rst:20 msgid "comment" msgstr "" diff --git a/tutorial/modules.po b/tutorial/modules.po index f0a2833..3b6d07e 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/modules.rst:5 msgid "Modules" msgstr "Modulok" -#: ../../tutorial/modules.rst:7 msgid "" "If you quit from the Python interpreter and enter it again, the definitions " "you have made (functions and variables) are lost. Therefore, if you want to " @@ -48,7 +46,6 @@ msgstr "" "amit már megírt programjaidból szeretnél használni a függvénydefiníciók " "másolása nélkül." -#: ../../tutorial/modules.rst:16 msgid "" "To support this, Python has a way to put definitions in a file and use them " "in a script or in an interactive instance of the interpreter. Such a file is " @@ -64,7 +61,6 @@ msgstr "" "felhasznált változók mind a legfelső névtérben helyezkednek el, a modulok " "függvényeit itt futtatjuk, interaktív módban.)" -#: ../../tutorial/modules.rst:22 msgid "" "A module is a file containing Python definitions and statements. The file " "name is the module name with the suffix :file:`.py` appended. Within a " @@ -80,7 +76,6 @@ msgstr "" "szövegszerkesztővel (pl. az IDLE-vel) hozd létre a :file:`fibo.py` fájlt, a " "következő tartalommal::" -#: ../../tutorial/modules.rst:28 msgid "" "# Fibonacci numbers module\n" "\n" @@ -102,7 +97,6 @@ msgid "" " return result" msgstr "" -#: ../../tutorial/modules.rst:47 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" @@ -110,11 +104,9 @@ msgstr "" "Most lépj be a Python értelmezőbe, és importáld a fenti modult a következő " "paranccsal::" -#: ../../tutorial/modules.rst:50 msgid ">>> import fibo" msgstr "" -#: ../../tutorial/modules.rst:52 msgid "" "This does not add the names of the functions defined in ``fibo`` directly " "to the current :term:`namespace` (see :ref:`tut-scopes` for more details); " @@ -122,7 +114,6 @@ msgid "" "access the functions::" msgstr "" -#: ../../tutorial/modules.rst:57 msgid "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" @@ -132,25 +123,21 @@ msgid "" "'fibo'" msgstr "" -#: ../../tutorial/modules.rst:64 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" "Ha egy függvényt gyakran szeretnél használni az importált modulból, " "hozzárendelheted azt egy lokális függvénynévhez::" -#: ../../tutorial/modules.rst:66 msgid "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -#: ../../tutorial/modules.rst:74 msgid "More on Modules" msgstr "Bővebben a modulokról" -#: ../../tutorial/modules.rst:76 msgid "" "A module can contain executable statements as well as function definitions. " "These statements are intended to initialize the module. They are executed " @@ -162,7 +149,6 @@ msgstr "" "inicializálásához használjuk. Kizárólag a modul *első* importálásakor " "futnak le. [#]_" -#: ../../tutorial/modules.rst:81 msgid "" "Each module has its own private namespace, which is used as the global " "namespace by all functions defined in the module. Thus, the author of a " @@ -172,7 +158,6 @@ msgid "" "same notation used to refer to its functions, ``modname.itemname``." msgstr "" -#: ../../tutorial/modules.rst:88 msgid "" "Modules can import other modules. It is customary but not required to place " "all :keyword:`import` statements at the beginning of a module (or script, " @@ -181,39 +166,33 @@ msgid "" "global namespace." msgstr "" -#: ../../tutorial/modules.rst:93 msgid "" "There is a variant of the :keyword:`import` statement that imports names " "from a module directly into the importing module's namespace. For example::" msgstr "" -#: ../../tutorial/modules.rst:96 msgid "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -#: ../../tutorial/modules.rst:100 msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." msgstr "" -#: ../../tutorial/modules.rst:103 msgid "There is even a variant to import all names that a module defines::" msgstr "" "Ha a modulban lévő összes nevet közvetlenül a helyi szimbólumtáblába " "szeretnéd importálni, így tudod megtenni::" -#: ../../tutorial/modules.rst:105 msgid "" ">>> from fibo import *\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -#: ../../tutorial/modules.rst:109 msgid "" "This imports all names except those beginning with an underscore (``_``). In " "most cases Python programmers do not use this facility since it introduces " @@ -226,7 +205,6 @@ msgstr "" "egy halom ismeretlen nevet helyez az értelmezőbe, amelyek esetleg felülírnak " "már definiált dolgokat." -#: ../../tutorial/modules.rst:114 msgid "" "Note that in general the practice of importing ``*`` from a module or " "package is frowned upon, since it often causes poorly readable code. " @@ -237,59 +215,49 @@ msgstr "" "Azonban egy interaktív parancsértelmezőben teljesen érthető a használata a " "gépelés lerövidítésére." -#: ../../tutorial/modules.rst:118 msgid "" -"If the module name is followed by :keyword:`!as`, then the name " -"following :keyword:`!as` is bound directly to the imported module." +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." msgstr "" -#: ../../tutorial/modules.rst:123 msgid "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -#: ../../tutorial/modules.rst:127 msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." msgstr "" -#: ../../tutorial/modules.rst:130 msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" -#: ../../tutorial/modules.rst:132 msgid "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -#: ../../tutorial/modules.rst:139 msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " "interpreter -- or, if it's just one module you want to test interactively, " -"use :func:`importlib.reload`, e.g. ``import importlib; " -"importlib.reload(modulename)``." +"use :func:`importlib.reload`, e.g. ``import importlib; importlib." +"reload(modulename)``." msgstr "" -#: ../../tutorial/modules.rst:149 msgid "Executing modules as scripts" msgstr "Modulok végrehajtása szkriptként" -#: ../../tutorial/modules.rst:151 msgid "When you run a Python module with ::" msgstr "Amikor végrehajtasz egy Python modult így ::" -#: ../../tutorial/modules.rst:153 msgid "python fibo.py " msgstr "" -#: ../../tutorial/modules.rst:155 msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " @@ -299,14 +267,12 @@ msgstr "" "csak a ``__name__`` változót ``\"__main__\"`` értékre állítva. Ez azt " "jelenti, hogyha a következő kódot a modul végéhez adod::" -#: ../../tutorial/modules.rst:159 msgid "" "if __name__ == \"__main__\":\n" " import sys\n" " fib(int(sys.argv[1]))" msgstr "" -#: ../../tutorial/modules.rst:163 msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " @@ -316,23 +282,19 @@ msgstr "" "kód, amely a parancssort feldolgozza csak akkor kerül végrehajtásra, amikor " "az fő (\"main\") fájlként kerül végrehajtásra:" -#: ../../tutorial/modules.rst:167 msgid "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" msgstr "" -#: ../../tutorial/modules.rst:172 msgid "If the module is imported, the code is not run::" msgstr "Amikor a modult importáljuk, a kód nem fog lefutni::" -#: ../../tutorial/modules.rst:174 msgid "" ">>> import fibo\n" ">>>" msgstr "" -#: ../../tutorial/modules.rst:177 msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " @@ -342,55 +304,45 @@ msgstr "" "létrehozására a modulhoz, vagy tesztelési okokból (a modul futtatása " "szkriptként végrehajtja a teszteket)." -#: ../../tutorial/modules.rst:184 msgid "The Module Search Path" msgstr "A modulok keresési útvonala" -#: ../../tutorial/modules.rst:188 msgid "" "When a module named :mod:`!spam` is imported, the interpreter first searches " -"for a built-in module with that name. These module names are listed " -"in :data:`sys.builtin_module_names`. If not found, it then searches for a " -"file named :file:`spam.py` in a list of directories given by the " -"variable :data:`sys.path`. :data:`sys.path` is initialized from these " -"locations:" +"for a built-in module with that name. These module names are listed in :data:" +"`sys.builtin_module_names`. If not found, it then searches for a file named :" +"file:`spam.py` in a list of directories given by the variable :data:`sys." +"path`. :data:`sys.path` is initialized from these locations:" msgstr "" -#: ../../tutorial/modules.rst:194 msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." msgstr "" "a könyvtárból, amely a bemeneti szkriptet tartalmazza (vagy az aktuális " "könyvtárból, ha nincs fájl megadva) :envvar:`PYTHONPATH` környezeti " -"változóból (ez könyvtárnevek listája, hasonló szintaktikával, mint " -"a :envvar:`PATH` környezeti változóból). Egy telepítéstől függő " -"alapértelmezésből." +"változóból (ez könyvtárnevek listája, hasonló szintaktikával, mint a :envvar:" +"`PATH` környezeti változóból). Egy telepítéstől függő alapértelmezésből." -#: ../../tutorial/modules.rst:196 msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " "shell variable :envvar:`PATH`)." msgstr "" -#: ../../tutorial/modules.rst:198 msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." msgstr "" -#: ../../tutorial/modules.rst:201 msgid "More details are at :ref:`sys-path-init`." msgstr "" -#: ../../tutorial/modules.rst:204 msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " "directory containing the symlink is **not** added to the module search path." msgstr "" -#: ../../tutorial/modules.rst:208 msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " @@ -407,11 +359,9 @@ msgstr "" "volt szándékos a helyettesítés. A :ref:`tut-standardmodules` szakasz több " "információt nyújt erről." -#: ../../tutorial/modules.rst:221 msgid "\"Compiled\" Python files" msgstr ",,Lefordított'' Python-fájlok" -#: ../../tutorial/modules.rst:223 msgid "" "To speed up loading modules, Python caches the compiled version of each " "module in the ``__pycache__`` directory under the name :file:`module." @@ -422,15 +372,14 @@ msgid "" "different releases and different versions of Python to coexist." msgstr "" "Hogy a modulok betöltődését lerövidítsük, a Python eltárolja az összes modul " -"lefordított változatát a ``__pycache__`` könyvtárban :file:`modul." -"{verzió}.pyc` név alatt, ahol a verzió mutatja a lefordított fájl " -"formátumát; általában a Python verziószámát tartalmazza. Például a spam.py " -"fájlnak a CPython 3.4-es kiadásával fordított változata a ``__pycache__/" -"spam.cpython-34.pyc`` néven kerül eltárolásra. Ez az elnevezési szokás " -"lehetővé teszi, hogy különböző Python-verziókkal fordított modulváltozatok " -"létezzenek egyszerre. " +"lefordított változatát a ``__pycache__`` könyvtárban :file:`modul.{verzió}." +"pyc` név alatt, ahol a verzió mutatja a lefordított fájl formátumát; " +"általában a Python verziószámát tartalmazza. Például a spam.py fájlnak a " +"CPython 3.4-es kiadásával fordított változata a ``__pycache__/spam." +"cpython-34.pyc`` néven kerül eltárolásra. Ez az elnevezési szokás lehetővé " +"teszi, hogy különböző Python-verziókkal fordított modulváltozatok létezzenek " +"egyszerre. " -#: ../../tutorial/modules.rst:231 msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " @@ -443,7 +392,6 @@ msgstr "" "folyamat. A lefordított modulok teljesen platformfüggetlenek, így a " "könyvtárakat meg lehet osztani különböző architektúrájú rendszerek között." -#: ../../tutorial/modules.rst:236 msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " @@ -459,11 +407,9 @@ msgstr "" "terjesztések esetén a lefordított modulnak a forráskönyvtárban kell " "elhelyezkedniük, és nem lehet jelen forrásmodul." -#: ../../tutorial/modules.rst:243 msgid "Some tips for experts:" msgstr "Néhány tipp haladóknak:" -#: ../../tutorial/modules.rst:245 msgid "" "You can use the :option:`-O` or :option:`-OO` switches on the Python command " "to reduce the size of a compiled module. The ``-O`` switch removes assert " @@ -482,16 +428,14 @@ msgstr "" "általában kissebbek. A későbbi kiadásokban az optimalizálás hatása " "változhat." -#: ../../tutorial/modules.rst:253 msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " -"when it is read from a ``.py`` file; the only thing that's faster about " -"``.pyc`` files is the speed with which they are loaded." +"when it is read from a ``.py`` file; the only thing that's faster about ``." +"pyc`` files is the speed with which they are loaded." msgstr "" "A program semmivel sem fut gyorsabban, ha :file:`.pyc` kiterjesztésű " "bájtkódot futtatunk -- a sebességnövekedés a betöltési időben jelentkezik." -#: ../../tutorial/modules.rst:257 msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." @@ -499,17 +443,14 @@ msgstr "" "A :mod:`compileall` modul képes .pyc létrehozására egy könyvtár összel " "modulja számára." -#: ../../tutorial/modules.rst:260 msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." msgstr "" -#: ../../tutorial/modules.rst:267 msgid "Standard Modules" msgstr "Standard modulok" -#: ../../tutorial/modules.rst:271 msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " @@ -526,9 +467,9 @@ msgstr "" "A Python funkciójuk szerint csoportokba sorolt szabványos modulokkal " "rendelkezik -- egy könyvtárral -- részletesen: `Python Library Reference -- " "Python referenciakönyvtár a későbbiekben `_ `A modulok tételes felsorolása -- Module index `_ Néhány modult az értelmezőbe építettünk be, ezeken " -"keresztül olyan funkciók megvalósítása lehetséges, amelyek ugyan nem " +">`_ `A modulok tételes felsorolása -- Module index `_ Néhány modult az értelmezőbe építettünk be, " +"ezeken keresztül olyan funkciók megvalósítása lehetséges, amelyek ugyan nem " "tartoznak szorosan a nyelvhez, de például az operációs rendszerrel való " "kapcsolathoz szükségesek -- ilyenek például a rendszerhívások. Ezen modulok " "függenek a használt operációs rendszertől, hiszen annak működtetéséhez " @@ -539,7 +480,6 @@ msgstr "" "``sys.ps1`` és ``sys.ps2`` változók tartalmazzák az értelmezőben megjelenő " "elsődleges és másodlagos prompt karakterláncát::" -#: ../../tutorial/modules.rst:283 msgid "" ">>> import sys\n" ">>> sys.ps1\n" @@ -552,14 +492,12 @@ msgid "" "C>" msgstr "" -#: ../../tutorial/modules.rst:294 msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." msgstr "" "Ez a két változó csak akkor létezik, ha az értelmező interaktív módban fut." -#: ../../tutorial/modules.rst:296 msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " @@ -574,17 +512,14 @@ msgstr "" "alapértelmezett útvonalakból. A változó értékét ugyanúgy módosíthatod, mint " "egy listáét::" -#: ../../tutorial/modules.rst:302 msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" msgstr "" -#: ../../tutorial/modules.rst:309 msgid "The :func:`dir` Function" msgstr "A :func:`dir` függvény" -#: ../../tutorial/modules.rst:311 msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" @@ -593,7 +528,6 @@ msgstr "" "neveket. A :func:`dir` meghívása után a nevek rendezett listájával tér " "vissza." -#: ../../tutorial/modules.rst:314 msgid "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" @@ -629,14 +563,12 @@ msgid "" " 'warnoptions']" msgstr "" -#: ../../tutorial/modules.rst:340 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" "Ha paraméterek nélkül hívjuk meg a :func:`dir` függvényt, az aktuális " "névtérben definiált nevekkel tér vissza::" -#: ../../tutorial/modules.rst:342 msgid "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" @@ -645,23 +577,20 @@ msgid "" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" msgstr "" -#: ../../tutorial/modules.rst:348 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" "Fontos, hogy az így kapott lista az összes névfajtát tartalmazza. " "Változókat, modulokat, függvényeket, stb." -#: ../../tutorial/modules.rst:352 msgid "" ":func:`dir` does not list the names of built-in functions and variables. If " -"you want a list of those, they are defined in the standard " -"module :mod:`builtins`::" +"you want a list of those, they are defined in the standard module :mod:" +"`builtins`::" msgstr "" "A :func:`dir` nem listázza ki a nyelv beépített függvényeit és változóit. " "Ezek a :mod:`builtins` modulban vannak definiálva::" -#: ../../tutorial/modules.rst:356 msgid "" ">>> import builtins\n" ">>> dir(builtins)\n" @@ -697,11 +626,9 @@ msgid "" " 'zip']" msgstr "" -#: ../../tutorial/modules.rst:391 msgid "Packages" msgstr "A csomagok" -#: ../../tutorial/modules.rst:393 msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`!A.B` " @@ -712,19 +639,18 @@ msgid "" "to worry about each other's module names." msgstr "" -#: ../../tutorial/modules.rst:401 msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " -"sound file formats (usually recognized by their extension, for " -"example: :file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to " -"create and maintain a growing collection of modules for the conversion " -"between the various file formats. There are also many different operations " -"you might want to perform on sound data (such as mixing, adding echo, " -"applying an equalizer function, creating an artificial stereo effect), so in " -"addition you will be writing a never-ending stream of modules to perform " -"these operations. Here's a possible structure for your package (expressed " -"in terms of a hierarchical filesystem):" +"sound file formats (usually recognized by their extension, for example: :" +"file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to create and " +"maintain a growing collection of modules for the conversion between the " +"various file formats. There are also many different operations you might " +"want to perform on sound data (such as mixing, adding echo, applying an " +"equalizer function, creating an artificial stereo effect), so in addition " +"you will be writing a never-ending stream of modules to perform these " +"operations. Here's a possible structure for your package (expressed in " +"terms of a hierarchical filesystem):" msgstr "" "Tegyük fel, hogy egy modulokból álló csomagot akarsz tervezni, hogy " "egységesen tudd kezelni a hangfájlokat és a bennük lévő adattartalmat. Több " @@ -738,7 +664,6 @@ msgstr "" "műveleteket elvégzi. A csomagok egy lehetséges struktúrája -- a hierarchikus " "fájlrendszereknél használatos jelöléssel::" -#: ../../tutorial/modules.rst:412 msgid "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" @@ -765,16 +690,14 @@ msgid "" " ..." msgstr "" -#: ../../tutorial/modules.rst:438 msgid "" -"When importing the package, Python searches through the directories on " -"``sys.path`` looking for the package subdirectory." +"When importing the package, Python searches through the directories on ``sys." +"path`` looking for the package subdirectory." msgstr "" "Egy csomag importálása során a Python bejárja a ``sys.path`` változóban " "szereplő könyvtárakat, a csomag alkönyvtárak után kutatva. A ``sys.path`` az " "előre meghatározott keresési útvonalakat tartalmazza." -#: ../../tutorial/modules.rst:441 msgid "" "The :file:`__init__.py` files are required to make Python treat directories " "containing the file as packages (unless using a :term:`namespace package`, a " @@ -785,73 +708,60 @@ msgid "" "the package or set the ``__all__`` variable, described later." msgstr "" -#: ../../tutorial/modules.rst:449 msgid "" "Users of the package can import individual modules from the package, for " "example::" msgstr "" "A csomag felhasználói egyenként is importálhatnak modulokat a csomagból::" -#: ../../tutorial/modules.rst:452 msgid "import sound.effects.echo" msgstr "" -#: ../../tutorial/modules.rst:454 msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" -#: ../../tutorial/modules.rst:457 msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "" -#: ../../tutorial/modules.rst:459 msgid "An alternative way of importing the submodule is::" msgstr "Egy másik alternatíva almodulok importálására::" -#: ../../tutorial/modules.rst:461 msgid "from sound.effects import echo" msgstr "" -#: ../../tutorial/modules.rst:463 msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" -#: ../../tutorial/modules.rst:466 msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "" -#: ../../tutorial/modules.rst:468 msgid "" "Yet another variation is to import the desired function or variable " "directly::" msgstr "Van még egy lehetőség a kiválasztott függvény importálására::" -#: ../../tutorial/modules.rst:470 msgid "from sound.effects.echo import echofilter" msgstr "" -#: ../../tutorial/modules.rst:472 msgid "" -"Again, this loads the submodule :mod:`!echo`, but this makes its " -"function :func:`!echofilter` directly available::" +"Again, this loads the submodule :mod:`!echo`, but this makes its function :" +"func:`!echofilter` directly available::" msgstr "" -#: ../../tutorial/modules.rst:475 msgid "echofilter(input, output, delay=0.7, atten=4)" msgstr "" -#: ../../tutorial/modules.rst:477 msgid "" "Note that when using ``from package import item``, the item can be either a " "submodule (or subpackage) of the package, or some other name defined in the " "package, like a function, class or variable. The ``import`` statement first " "tests whether the item is defined in the package; if not, it assumes it is a " -"module and attempts to load it. If it fails to find it, " -"an :exc:`ImportError` exception is raised." +"module and attempts to load it. If it fails to find it, an :exc:" +"`ImportError` exception is raised." msgstr "" "Fontos, hogy a ``from csomag import elem`` használatakor az elem az " "importált csomag almodulja (submodule) vagy alcsomagja (subpackage) is " @@ -862,7 +772,6 @@ msgstr "" "betölteni. Ha a modul keresése sikertelen, :exc:`ImportError` kivétel " "váltódik ki." -#: ../../tutorial/modules.rst:484 msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " "item except for the last must be a package; the last item can be a module or " @@ -874,11 +783,9 @@ msgstr "" "csomagnak kell lennie. Az utolsó elem lehet modul vagy csomag is, de a " "fentiekkel ellentétben nem lehet osztály, függvény vagy definiált változó." -#: ../../tutorial/modules.rst:493 msgid "Importing \\* From a Package" msgstr "Egy csomagból \\* importálása" -#: ../../tutorial/modules.rst:497 msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " @@ -892,7 +799,6 @@ msgstr "" "importálása hosszú ideig eltarthat, és olyan mellékhatásai lehetnek, amiknek " "akkor kellene megtörténniük, amikor az almodult közvetlenül importáljuk." -#: ../../tutorial/modules.rst:503 msgid "" "The only solution is for the package author to provide an explicit index of " "the package. The :keyword:`import` statement uses the following convention: " @@ -915,17 +821,14 @@ msgstr "" "Például a :file:`sounds/effects/__init__.py` fájl a következő kódot " "tartalmazhatja::" -#: ../../tutorial/modules.rst:513 msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" msgstr "" -#: ../../tutorial/modules.rst:515 msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." msgstr "" -#: ../../tutorial/modules.rst:518 msgid "" "Be aware that submodules might become shadowed by locally defined names. For " "example, if you added a ``reverse`` function to the :file:`sound/effects/" @@ -935,7 +838,6 @@ msgid "" "function::" msgstr "" -#: ../../tutorial/modules.rst:525 msgid "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" @@ -947,35 +849,31 @@ msgid "" " return msg[::-1] # in the case of a 'from sound.effects import *'" msgstr "" -#: ../../tutorial/modules.rst:534 msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *`` " "does *not* import all submodules from the package :mod:`!sound.effects` into " -"the current namespace; it only ensures that the package :mod:`!" -"sound.effects` has been imported (possibly running any initialization code " -"in :file:`__init__.py`) and then imports whatever names are defined in the " +"the current namespace; it only ensures that the package :mod:`!sound." +"effects` has been imported (possibly running any initialization code in :" +"file:`__init__.py`) and then imports whatever names are defined in the " "package. This includes any names defined (and submodules explicitly loaded) " "by :file:`__init__.py`. It also includes any submodules of the package that " "were explicitly loaded by previous :keyword:`import` statements. Consider " "this code::" msgstr "" -#: ../../tutorial/modules.rst:543 msgid "" "import sound.effects.echo\n" "import sound.effects.surround\n" "from sound.effects import *" msgstr "" -#: ../../tutorial/modules.rst:547 msgid "" "In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " -"in the current namespace because they are defined in the :mod:`!" -"sound.effects` package when the ``from...import`` statement is executed. " -"(This also works when ``__all__`` is defined.)" +"in the current namespace because they are defined in the :mod:`!sound." +"effects` package when the ``from...import`` statement is executed. (This " +"also works when ``__all__`` is defined.)" msgstr "" -#: ../../tutorial/modules.rst:552 msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " @@ -987,7 +885,6 @@ msgstr "" "egyes modulokat úgy terveznek, hogy csak az ``__all__`` változóban megadott " "neveket exportálják." -#: ../../tutorial/modules.rst:556 msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " @@ -995,35 +892,30 @@ msgid "" "packages." msgstr "" -#: ../../tutorial/modules.rst:565 msgid "Intra-package References" msgstr "Csomagon belüli hivatkozások" -#: ../../tutorial/modules.rst:567 msgid "" "When packages are structured into subpackages (as with the :mod:`!sound` " "package in the example), you can use absolute imports to refer to submodules " -"of siblings packages. For example, if the module :mod:`!" -"sound.filters.vocoder` needs to use the :mod:`!echo` module in the :mod:`!" -"sound.effects` package, it can use ``from sound.effects import echo``." +"of siblings packages. For example, if the module :mod:`!sound.filters." +"vocoder` needs to use the :mod:`!echo` module in the :mod:`!sound.effects` " +"package, it can use ``from sound.effects import echo``." msgstr "" -#: ../../tutorial/modules.rst:573 msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " -"current and parent packages involved in the relative import. From " -"the :mod:`!surround` module for example, you might use::" +"current and parent packages involved in the relative import. From the :mod:" +"`!surround` module for example, you might use::" msgstr "" -#: ../../tutorial/modules.rst:578 msgid "" "from . import echo\n" "from .. import formats\n" "from ..filters import equalizer" msgstr "" -#: ../../tutorial/modules.rst:582 msgid "" "Note that relative imports are based on the name of the current module's " "package. Since the main module does not have a package, modules intended for " @@ -1031,11 +923,9 @@ msgid "" "imports." msgstr "" -#: ../../tutorial/modules.rst:588 msgid "Packages in Multiple Directories" msgstr "Modulok, amelyek több, különálló könyvtár moduljaiból épülnek fel" -#: ../../tutorial/modules.rst:590 msgid "" "Packages support one more special attribute, :attr:`~module.__path__`. This " "is initialized to be a :term:`sequence` of strings containing the name of " @@ -1044,7 +934,6 @@ msgid "" "future searches for modules and subpackages contained in the package." msgstr "" -#: ../../tutorial/modules.rst:597 msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." @@ -1052,38 +941,29 @@ msgstr "" "Bár erre a lehetőségre ritkán van szükség, a csomagot újabb modulokkal " "egészíthetjük ki vele." -#: ../../tutorial/modules.rst:602 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/modules.rst:603 msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " "the module's global namespace." msgstr "" -#: ../../tutorial/modules.rst:186 ../../tutorial/modules.rst:269 -#: ../../tutorial/modules.rst:350 msgid "module" msgstr "" -#: ../../tutorial/modules.rst:186 msgid "search" msgstr "" -#: ../../tutorial/modules.rst:186 msgid "path" msgstr "" -#: ../../tutorial/modules.rst:269 msgid "sys" msgstr "" -#: ../../tutorial/modules.rst:350 msgid "builtins" msgstr "" -#: ../../tutorial/modules.rst:495 msgid "__all__" msgstr "" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 442948e..023f6f3 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/stdlib.rst:5 msgid "Brief Tour of the Standard Library" msgstr "A Python alap-könyvtár rövid bemutatása - Standard Library 1." -#: ../../tutorial/stdlib.rst:11 msgid "Operating System Interface" msgstr "Felület az operációs rendszerhez" -#: ../../tutorial/stdlib.rst:13 msgid "" "The :mod:`os` module provides dozens of functions for interacting with the " "operating system::" @@ -38,7 +35,6 @@ msgstr "" "Az :mod:`os` modul nagyon sok függvényt tartalmaz, melyek az operációs " "rendszerrel kommunikálnak::" -#: ../../tutorial/stdlib.rst:16 msgid "" ">>> import os\n" ">>> os.getcwd() # Return the current working directory\n" @@ -48,7 +44,6 @@ msgid "" "0" msgstr "" -#: ../../tutorial/stdlib.rst:23 msgid "" "Be sure to use the ``import os`` style instead of ``from os import *``. " "This will keep :func:`os.open` from shadowing the built-in :func:`open` " @@ -59,7 +54,6 @@ msgstr "" "függvény elfedje (és használhatatlanná tegye) a beépített :func:`open` " "függvényt, ami teljesen másképp működik." -#: ../../tutorial/stdlib.rst:29 msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" @@ -67,7 +61,6 @@ msgstr "" "A beépített :func:`dir` és :func:`help` függvények sokat segíthetnek ha " "olyan nagy modulokkal van dolgod, mint például az :mod:`os`::" -#: ../../tutorial/stdlib.rst:32 msgid "" ">>> import os\n" ">>> dir(os)\n" @@ -76,7 +69,6 @@ msgid "" "" msgstr "" -#: ../../tutorial/stdlib.rst:38 msgid "" "For daily file and directory management tasks, the :mod:`shutil` module " "provides a higher level interface that is easier to use::" @@ -84,7 +76,6 @@ msgstr "" "A mindennapi fájl- és könyvtár-műveletekhez az :mod:`shutil` modul " "magasszintű, könnyen használható felületet nyújt::" -#: ../../tutorial/stdlib.rst:41 msgid "" ">>> import shutil\n" ">>> shutil.copyfile('data.db', 'archive.db')\n" @@ -93,11 +84,9 @@ msgid "" "'installdir'" msgstr "" -#: ../../tutorial/stdlib.rst:51 msgid "File Wildcards" msgstr "Karakterhelyettesítő jelek -- dzsóker karakterek" -#: ../../tutorial/stdlib.rst:53 msgid "" "The :mod:`glob` module provides a function for making file lists from " "directory wildcard searches::" @@ -105,49 +94,41 @@ msgstr "" "A :mod:`glob` modulban lévő függvény segít a fájl listák elkészítésében, ha " "dzsóker karaktert használsz::" -#: ../../tutorial/stdlib.rst:56 msgid "" ">>> import glob\n" ">>> glob.glob('*.py')\n" "['primes.py', 'random.py', 'quote.py']" msgstr "" -#: ../../tutorial/stdlib.rst:64 msgid "Command Line Arguments" msgstr "Parancssori paraméterek" -#: ../../tutorial/stdlib.rst:66 msgid "" "Common utility scripts often need to process command line arguments. These " "arguments are stored in the :mod:`sys` module's *argv* attribute as a list. " "For instance, let's take the following :file:`demo.py` file::" msgstr "" -#: ../../tutorial/stdlib.rst:70 msgid "" "# File demo.py\n" "import sys\n" "print(sys.argv)" msgstr "" -#: ../../tutorial/stdlib.rst:74 msgid "" "Here is the output from running ``python demo.py one two three`` at the " "command line::" msgstr "" -#: ../../tutorial/stdlib.rst:77 msgid "['demo.py', 'one', 'two', 'three']" msgstr "" -#: ../../tutorial/stdlib.rst:79 msgid "" "The :mod:`argparse` module provides a more sophisticated mechanism to " "process command line arguments. The following script extracts one or more " "filenames and an optional number of lines to be displayed::" msgstr "" -#: ../../tutorial/stdlib.rst:83 msgid "" "import argparse\n" "\n" @@ -160,18 +141,15 @@ msgid "" "print(args)" msgstr "" -#: ../../tutorial/stdlib.rst:93 msgid "" -"When run at the command line with ``python top.py --lines=5 alpha.txt " -"beta.txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` " -"to ``['alpha.txt', 'beta.txt']``." +"When run at the command line with ``python top.py --lines=5 alpha.txt beta." +"txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` to " +"``['alpha.txt', 'beta.txt']``." msgstr "" -#: ../../tutorial/stdlib.rst:101 msgid "Error Output Redirection and Program Termination" msgstr "Hiba-kimenet átirányítása, programfutás megszakítása" -#: ../../tutorial/stdlib.rst:103 msgid "" "The :mod:`sys` module also has attributes for *stdin*, *stdout*, and " "*stderr*. The latter is useful for emitting warnings and error messages to " @@ -182,22 +160,18 @@ msgstr "" "láthatóvá tételére -- például akkor, amikor a *stdout* át van irányítva, " "mondjuk egy fájlba::" -#: ../../tutorial/stdlib.rst:107 msgid "" ">>> sys.stderr.write('Warning, log file not found starting a new one\\n')\n" "Warning, log file not found starting a new one" msgstr "" -#: ../../tutorial/stdlib.rst:110 msgid "The most direct way to terminate a script is to use ``sys.exit()``." msgstr "" "A legrövidebb út egy program megszakítására a ``sys.exit()`` utasítás." -#: ../../tutorial/stdlib.rst:116 msgid "String Pattern Matching" msgstr "Reguláris kifejezések - karakterláncok" -#: ../../tutorial/stdlib.rst:118 msgid "" "The :mod:`re` module provides regular expression tools for advanced string " "processing. For complex matching and manipulation, regular expressions offer " @@ -207,7 +181,6 @@ msgstr "" "szövegfeldolgozásra. Összetett illeszkedési és módosító szabályokat " "határozhatsz meg -- a reguláris kifejezések rövid, tömör megoldást kínálnak::" -#: ../../tutorial/stdlib.rst:122 msgid "" ">>> import re\n" ">>> re.findall(r'\\bf[a-z]*', 'which foot or hand fell fastest')\n" @@ -216,7 +189,6 @@ msgid "" "'cat in the hat'" msgstr "" -#: ../../tutorial/stdlib.rst:128 msgid "" "When only simple capabilities are needed, string methods are preferred " "because they are easier to read and debug::" @@ -224,23 +196,19 @@ msgstr "" "Ha egyszerűbb szövegmódosítási igényed van, a string metódusokat javasoljuk, " "mert olvashatóak és a hibakeresés is könyebb velük::" -#: ../../tutorial/stdlib.rst:131 msgid "" ">>> 'tea for too'.replace('too', 'two')\n" "'tea for two'" msgstr "" -#: ../../tutorial/stdlib.rst:138 msgid "Mathematics" msgstr "Matematika" -#: ../../tutorial/stdlib.rst:140 msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating-point math::" msgstr "" -#: ../../tutorial/stdlib.rst:143 msgid "" ">>> import math\n" ">>> math.cos(math.pi / 4)\n" @@ -249,11 +217,9 @@ msgid "" "10.0" msgstr "" -#: ../../tutorial/stdlib.rst:149 msgid "The :mod:`random` module provides tools for making random selections::" msgstr "A :mod:`random` modullal véletlenszámokat generálhatsz::" -#: ../../tutorial/stdlib.rst:151 msgid "" ">>> import random\n" ">>> random.choice(['apple', 'pear', 'banana'])\n" @@ -266,13 +232,11 @@ msgid "" "4" msgstr "" -#: ../../tutorial/stdlib.rst:161 msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" msgstr "" -#: ../../tutorial/stdlib.rst:164 msgid "" ">>> import statistics\n" ">>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]\n" @@ -284,17 +248,14 @@ msgid "" "1.3720238095238095" msgstr "" -#: ../../tutorial/stdlib.rst:173 msgid "" "The SciPy project has many other modules for numerical " "computations." msgstr "" -#: ../../tutorial/stdlib.rst:179 msgid "Internet Access" msgstr "Internet elérés" -#: ../../tutorial/stdlib.rst:181 msgid "" "There are a number of modules for accessing the internet and processing " "internet protocols. Two of the simplest are :mod:`urllib.request` for " @@ -305,7 +266,6 @@ msgstr "" "adatfogadás url címekről, és az :mod:`smtplib` modul, amellyel levelet " "küldhetsz::" -#: ../../tutorial/stdlib.rst:185 msgid "" ">>> from urllib.request import urlopen\n" ">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as " @@ -328,15 +288,12 @@ msgid "" ">>> server.quit()" msgstr "" -#: ../../tutorial/stdlib.rst:204 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -#: ../../tutorial/stdlib.rst:210 msgid "Dates and Times" msgstr "A dátumok és az idő kezelése" -#: ../../tutorial/stdlib.rst:212 msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times " "in both simple and complex ways. While date and time arithmetic is " @@ -350,7 +307,6 @@ msgstr "" "formázása és módosítása áll. A modul támogatja azokat az objektumokat is, " "amelyek kezelni tudják az időzónákat. ::" -#: ../../tutorial/stdlib.rst:218 msgid "" ">>> # dates are easily constructed and formatted\n" ">>> from datetime import date\n" @@ -367,22 +323,18 @@ msgid "" "14368" msgstr "" -#: ../../tutorial/stdlib.rst:236 msgid "Data Compression" msgstr "Tömörítés - zip, gzip, tar..." -#: ../../tutorial/stdlib.rst:238 msgid "" "Common data archiving and compression formats are directly supported by " -"modules " -"including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:`zipfile` " -"and :mod:`tarfile`. ::" +"modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" +"`zipfile` and :mod:`tarfile`. ::" msgstr "" "Az elterjedtebb archiváló és tömörítő formátumok közvetlenül támogatottak, a " "következő modulokban: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`zipfile`, " "and :mod:`tarfile`." -#: ../../tutorial/stdlib.rst:242 msgid "" ">>> import zlib\n" ">>> s = b'witch which has which witches wrist watch'\n" @@ -397,11 +349,9 @@ msgid "" "226805979" msgstr "" -#: ../../tutorial/stdlib.rst:258 msgid "Performance Measurement" msgstr "Teljesítménymérés" -#: ../../tutorial/stdlib.rst:260 msgid "" "Some Python users develop a deep interest in knowing the relative " "performance of different approaches to the same problem. Python provides a " @@ -411,18 +361,15 @@ msgstr "" "megoldások teljesítményének összehasonlítása iránt. A Pythonban található " "egy mérőeszköz, amely azonnali választ ad ezekre a kérdésekre." -#: ../../tutorial/stdlib.rst:264 msgid "" "For example, it may be tempting to use the tuple packing and unpacking " -"feature instead of the traditional approach to swapping arguments. " -"The :mod:`timeit` module quickly demonstrates a modest performance " -"advantage::" +"feature instead of the traditional approach to swapping arguments. The :mod:" +"`timeit` module quickly demonstrates a modest performance advantage::" msgstr "" "Például használhatunk tuple becsomagolást és kicsomagolást a megszokott " "paraméter-átadás helyett. A :mod:`timeit` modul gyorsan demonstrál egy " "egyszerű teljesítmény mérést::" -#: ../../tutorial/stdlib.rst:268 msgid "" ">>> from timeit import Timer\n" ">>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()\n" @@ -431,7 +378,6 @@ msgid "" "0.54962537085770791" msgstr "" -#: ../../tutorial/stdlib.rst:274 msgid "" "In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile` " "and :mod:`pstats` modules provide tools for identifying time critical " @@ -441,11 +387,9 @@ msgstr "" "szolgál. Ezzel ellentétben a :mod:`profile` és a :mod:`pstats` modulok " "nagyobb kódrészletek futási-idő kritikus részeinek meghatározására szolgál." -#: ../../tutorial/stdlib.rst:282 msgid "Quality Control" msgstr "Minőségellenőrzés" -#: ../../tutorial/stdlib.rst:284 msgid "" "One approach for developing high quality software is to write tests for each " "function as it is developed and to run those tests frequently during the " @@ -456,7 +400,6 @@ msgstr "" "során ezeket gyakran lefuttatjuk - így azonnal kiderül, ha a várttól " "eltérően viselkedik a program." -#: ../../tutorial/stdlib.rst:288 msgid "" "The :mod:`doctest` module provides a tool for scanning a module and " "validating tests embedded in a program's docstrings. Test construction is " @@ -473,7 +416,6 @@ msgstr "" "rögtön függvényhívási példát mutathatunk -- továbbá ellenőrizhetővé teszi a " "doctest modulnak, hogy a kód a dokumentációval összhangban van-e. ::" -#: ../../tutorial/stdlib.rst:295 msgid "" "def average(values):\n" " \"\"\"Computes the arithmetic mean of a list of numbers.\n" @@ -487,7 +429,6 @@ msgid "" "doctest.testmod() # automatically validate the embedded tests" msgstr "" -#: ../../tutorial/stdlib.rst:306 msgid "" "The :mod:`unittest` module is not as effortless as the :mod:`doctest` " "module, but it allows a more comprehensive set of tests to be maintained in " @@ -497,7 +438,6 @@ msgstr "" "viszont több átfogó tesztkészlet kezeléséről gondoskodik, egy különálló " "fájlban::" -#: ../../tutorial/stdlib.rst:310 msgid "" "import unittest\n" "\n" @@ -514,11 +454,9 @@ msgid "" "unittest.main() # Calling from the command line invokes all tests" msgstr "" -#: ../../tutorial/stdlib.rst:328 msgid "Batteries Included" msgstr "Elemekkel együtt..." -#: ../../tutorial/stdlib.rst:330 msgid "" "Python has a \"batteries included\" philosophy. This is best seen through " "the sophisticated and robust capabilities of its larger packages. For " @@ -528,14 +466,12 @@ msgstr "" "észrevesszük nagyszámú moduljainak - csomagjainak kifinomultságát, " "összetettségét. Például:" -#: ../../tutorial/stdlib.rst:333 msgid "" "The :mod:`xmlrpc.client` and :mod:`xmlrpc.server` modules make implementing " "remote procedure calls into an almost trivial task. Despite the modules' " "names, no direct knowledge or handling of XML is needed." msgstr "" -#: ../../tutorial/stdlib.rst:337 msgid "" "The :mod:`email` package is a library for managing email messages, including " "MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " @@ -545,15 +481,14 @@ msgid "" "and header protocols." msgstr "" -#: ../../tutorial/stdlib.rst:344 msgid "" "The :mod:`json` package provides robust support for parsing this popular " "data interchange format. The :mod:`csv` module supports direct reading and " "writing of files in Comma-Separated Value format, commonly supported by " -"databases and spreadsheets. XML processing is supported by " -"the :mod:`xml.etree.ElementTree`, :mod:`xml.dom` and :mod:`xml.sax` " -"packages. Together, these modules and packages greatly simplify data " -"interchange between Python applications and other tools." +"databases and spreadsheets. XML processing is supported by the :mod:`xml." +"etree.ElementTree`, :mod:`xml.dom` and :mod:`xml.sax` packages. Together, " +"these modules and packages greatly simplify data interchange between Python " +"applications and other tools." msgstr "" "Az :mod:`xml.dom` és az :mod:`xml.sax` csomagok nagyon jól használhatók az " "elterjedt adat-cserélő formátumok kezelésére, értelmezésére és " @@ -562,25 +497,21 @@ msgstr "" "remekül leegyszerűsíti a Python programok és más alkalmazások közötti " "adatcserét." -#: ../../tutorial/stdlib.rst:353 msgid "" "The :mod:`sqlite3` module is a wrapper for the SQLite database library, " "providing a persistent database that can be updated and accessed using " "slightly nonstandard SQL syntax." msgstr "" -#: ../../tutorial/stdlib.rst:357 msgid "" -"Internationalization is supported by a number of modules " -"including :mod:`gettext`, :mod:`locale`, and the :mod:`codecs` package." +"Internationalization is supported by a number of modules including :mod:" +"`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" "A kultúrális tulajdonságok beállíthatók és támogatottak számos modulban, " "például: :mod:`gettext`, :mod:`locale`, és a :mod:`codecs` csomagban is." -#: ../../tutorial/stdlib.rst:27 msgid "built-in function" msgstr "" -#: ../../tutorial/stdlib.rst:27 msgid "help" msgstr "" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 1fa4012..6aa0f61 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,11 +22,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/stdlib2.rst:5 msgid "Brief Tour of the Standard Library --- Part II" msgstr "Az alap-könyvtár bemutatása 2. rész" -#: ../../tutorial/stdlib2.rst:7 msgid "" "This second tour covers more advanced modules that support professional " "programming needs. These modules rarely occur in small scripts." @@ -35,11 +33,9 @@ msgstr "" "programozás során szükség lesz. Ezen modulok kisebb szkriptekben ritkán " "fordulnak elő." -#: ../../tutorial/stdlib2.rst:14 msgid "Output Formatting" msgstr "A kimenet formázása" -#: ../../tutorial/stdlib2.rst:16 msgid "" "The :mod:`reprlib` module provides a version of :func:`repr` customized for " "abbreviated displays of large or deeply nested containers::" @@ -48,14 +44,12 @@ msgstr "" "nagyméretű, mélyen egymásba ágyazott adatszerkezetek rövid, áttekinthető " "kijelzését::" -#: ../../tutorial/stdlib2.rst:19 msgid "" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgstr "" -#: ../../tutorial/stdlib2.rst:23 msgid "" "The :mod:`pprint` module offers more sophisticated control over printing " "both built-in and user defined objects in a way that is readable by the " @@ -68,7 +62,6 @@ msgstr "" "sorban, egy \"csinos nyomtató\" sortöréseket és behúzásokat ad a kimenethez, " "hogy az jól olvasható legyen::" -#: ../../tutorial/stdlib2.rst:28 msgid "" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" @@ -82,7 +75,6 @@ msgid "" " 'blue']]]" msgstr "" -#: ../../tutorial/stdlib2.rst:39 msgid "" "The :mod:`textwrap` module formats paragraphs of text to fit a given screen " "width::" @@ -90,7 +82,6 @@ msgstr "" "A :mod:`textwrap` modullal szövegblokkokak jeleníthetünk meg adott " "szélességű blokkban::" -#: ../../tutorial/stdlib2.rst:42 msgid "" ">>> import textwrap\n" ">>> doc = \"\"\"The wrap() method is just like fill() except that it " @@ -105,7 +96,6 @@ msgid "" "to separate the wrapped lines." msgstr "" -#: ../../tutorial/stdlib2.rst:53 msgid "" "The :mod:`locale` module accesses a database of culture specific data " "formats. The grouping attribute of locale's format function provides a " @@ -116,7 +106,6 @@ msgstr "" "(csoportosítás, a következő példában helyiérték) tulajdonsága közvetlenül " "biztosítja az adott kultúrának megfelelő szám-kijelzést::" -#: ../../tutorial/stdlib2.rst:57 msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" @@ -130,22 +119,19 @@ msgid "" "'$1,234,567.80'" msgstr "" -#: ../../tutorial/stdlib2.rst:72 msgid "Templating" msgstr "Szöveg-sablonok" -#: ../../tutorial/stdlib2.rst:74 msgid "" "The :mod:`string` module includes a versatile :class:`~string.Template` " "class with a simplified syntax suitable for editing by end-users. This " "allows users to customize their applications without having to alter the " "application." msgstr "" -"A :mod:`string` modulban található egy nagyon hasznos osztály, " -"a :class:`Template`. Ez lehetőséget ad a végfelhasználóknak sablon-szövegek " +"A :mod:`string` modulban található egy nagyon hasznos osztály, a :class:" +"`Template`. Ez lehetőséget ad a végfelhasználóknak sablon-szövegek " "szerkesztésére." -#: ../../tutorial/stdlib2.rst:78 msgid "" "The format uses placeholder names formed by ``$`` with valid Python " "identifiers (alphanumeric characters and underscores). Surrounding the " @@ -160,7 +146,6 @@ msgstr "" "egyébként a zárójelpár elhagyható. Egyszerű ``$`` jelet így írhatsz: ``$" "$`` ::" -#: ../../tutorial/stdlib2.rst:83 msgid "" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" @@ -168,13 +153,12 @@ msgid "" "'Nottinghamfolk send $10 to the ditch fund.'" msgstr "" -#: ../../tutorial/stdlib2.rst:88 msgid "" "The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when " "a placeholder is not supplied in a dictionary or a keyword argument. For " -"mail-merge style applications, user supplied data may be incomplete and " -"the :meth:`~string.Template.safe_substitute` method may be more appropriate " -"--- it will leave placeholders unchanged if data is missing::" +"mail-merge style applications, user supplied data may be incomplete and the :" +"meth:`~string.Template.safe_substitute` method may be more appropriate --- " +"it will leave placeholders unchanged if data is missing::" msgstr "" "A :meth:`substitute` medódus :exc:`KeyError` kivételt dob, ha az " "adatmezőkben megadott változónevet a paraméterként átadott szótárban, vagy " @@ -183,7 +167,6 @@ msgstr "" "a :meth:`safe_substitute` metódust érdemes használni, ami a hiányzó " "adatoknál az adatmezőt változatlanul hagyja::" -#: ../../tutorial/stdlib2.rst:94 msgid "" ">>> t = Template('Return the $item to $owner.')\n" ">>> d = dict(item='unladen swallow')\n" @@ -195,7 +178,6 @@ msgid "" "'Return the unladen swallow to $owner.'" msgstr "" -#: ../../tutorial/stdlib2.rst:103 msgid "" "Template subclasses can specify a custom delimiter. For example, a batch " "renaming utility for a photo browser may elect to use percent signs for " @@ -207,7 +189,6 @@ msgstr "" "az adatmezők jelzésére használhatod a százalék jelet is, az aktuális dátum, " "a kép sorszáma, vagy a fájl formátumának jelzése esetén::" -#: ../../tutorial/stdlib2.rst:107 msgid "" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" @@ -229,7 +210,6 @@ msgid "" "img_1077.jpg --> Ashley_2.jpg" msgstr "" -#: ../../tutorial/stdlib2.rst:126 msgid "" "Another application for templating is separating program logic from the " "details of multiple output formats. This makes it possible to substitute " @@ -241,19 +221,17 @@ msgstr "" "szövegfájloknál, vagy html kimenet esetében, viszont az adattartalom " "értelemszerűen megegyezik." -#: ../../tutorial/stdlib2.rst:134 msgid "Working with Binary Data Record Layouts" msgstr "Bináris adatblokkok használata" -#: ../../tutorial/stdlib2.rst:136 msgid "" -"The :mod:`struct` module provides :func:`~struct.pack` " -"and :func:`~struct.unpack` functions for working with variable length binary " -"record formats. The following example shows how to loop through header " -"information in a ZIP file without using the :mod:`zipfile` module. Pack " -"codes ``\"H\"`` and ``\"I\"`` represent two and four byte unsigned numbers " -"respectively. The ``\"<\"`` indicates that they are standard size and in " -"little-endian byte order::" +"The :mod:`struct` module provides :func:`~struct.pack` and :func:`~struct." +"unpack` functions for working with variable length binary record formats. " +"The following example shows how to loop through header information in a ZIP " +"file without using the :mod:`zipfile` module. Pack codes ``\"H\"`` and " +"``\"I\"`` represent two and four byte unsigned numbers respectively. The " +"``\"<\"`` indicates that they are standard size and in little-endian byte " +"order::" msgstr "" "A :mod:`struct` modulban található a :func:`pack` és az :func:`unpack` " "függvények, melyekkel változó hosszúságú bináris adatblokkokat kezelhetsz. " @@ -261,7 +239,6 @@ msgstr "" "(a ``\"H\"`` és az ``\"L\"`` kódcsomag jelképezi a két és négybájtos előjel " "nélküli számokat)::" -#: ../../tutorial/stdlib2.rst:144 msgid "" "import struct\n" "\n" @@ -283,11 +260,9 @@ msgid "" " start += extra_size + comp_size # skip to the next header" msgstr "" -#: ../../tutorial/stdlib2.rst:167 msgid "Multi-threading" msgstr "Többszálúság" -#: ../../tutorial/stdlib2.rst:169 msgid "" "Threading is a technique for decoupling tasks which are not sequentially " "dependent. Threads can be used to improve the responsiveness of " @@ -301,7 +276,6 @@ msgstr "" "dolgozik - a két folyamat (kommunikáció, és háttérben munka) egymással " "párhuzamosan fut." -#: ../../tutorial/stdlib2.rst:174 msgid "" "The following code shows how the high level :mod:`threading` module can run " "tasks in background while the main program continues to run::" @@ -309,7 +283,6 @@ msgstr "" "A következő kód bemutatja a :mod:`threading` modul magasszintű használatát, " "ami egy külön háttérfolyamatot indít, miközben a program fut tovább::" -#: ../../tutorial/stdlib2.rst:177 msgid "" "import threading, zipfile\n" "\n" @@ -333,7 +306,6 @@ msgid "" "print('Main program waited until background was done.')" msgstr "" -#: ../../tutorial/stdlib2.rst:198 msgid "" "The principal challenge of multi-threaded applications is coordinating " "threads that share data or other resources. To that end, the threading " @@ -346,7 +318,6 @@ msgstr "" "Threading modul több szinkronizációs elemet tartalmaz -- ilyen a zárolás, az " "eseménykezelés, a feltételes változók és a szemaforok." -#: ../../tutorial/stdlib2.rst:203 msgid "" "While those tools are powerful, minor design errors can result in problems " "that are difficult to reproduce. So, the preferred approach to task " @@ -367,21 +338,18 @@ msgstr "" "közötti kommunikációt a :class:`Queue` objektumokkal biztosítod, a program " "koordinálásának megtervezése egyszerűbb, olvashatóbb és megbízhatóbb lesz." -#: ../../tutorial/stdlib2.rst:214 msgid "Logging" msgstr "Naplózás" -#: ../../tutorial/stdlib2.rst:216 msgid "" "The :mod:`logging` module offers a full featured and flexible logging " -"system. At its simplest, log messages are sent to a file or to " -"``sys.stderr``::" +"system. At its simplest, log messages are sent to a file or to ``sys." +"stderr``::" msgstr "" "A :mod:`logging` modul egy összetett, finoman beállítható naplózó rendszert " "tartalmaz. A legegyszerűbb esetben a naplózandó üzenetek fájlba, vagy a " "``sys.stderr`` (szabványos hibakimenetre) - küldhetők::" -#: ../../tutorial/stdlib2.rst:219 msgid "" "import logging\n" "logging.debug('Debugging information')\n" @@ -391,35 +359,30 @@ msgid "" "logging.critical('Critical error -- shutting down')" msgstr "" -#: ../../tutorial/stdlib2.rst:226 msgid "This produces the following output:" msgstr "A fenti példa kimenete::" -#: ../../tutorial/stdlib2.rst:228 msgid "" "WARNING:root:Warning:config file server.conf not found\n" "ERROR:root:Error occurred\n" "CRITICAL:root:Critical error -- shutting down" msgstr "" -#: ../../tutorial/stdlib2.rst:234 msgid "" "By default, informational and debugging messages are suppressed and the " "output is sent to standard error. Other output options include routing " "messages through email, datagrams, sockets, or to an HTTP Server. New " -"filters can select different routing based on message " -"priority: :const:`~logging.DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging.ERROR`, " -"and :const:`~logging.CRITICAL`." +"filters can select different routing based on message priority: :const:" +"`~logging.DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:" +"`~logging.ERROR`, and :const:`~logging.CRITICAL`." msgstr "" "Alapértelmezés szerint az információs és debug üzenetek elfojtottak, és a " "kimenet a szabványos hiba csatornára kerül. A kimenet célja más is lehet, " "például email, datagram, socket vagy akár egy HTTP szerver. Az új szűrők az " "üzenet prioritásától függően más-más kimenetre terelhetik a naplózandó " -"üzenetet. A " -"prioritások: :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR`, " -"és :const:`CRITICAL`." +"üzenetet. A prioritások: :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :" +"const:`ERROR`, és :const:`CRITICAL`." -#: ../../tutorial/stdlib2.rst:241 msgid "" "The logging system can be configured directly from Python or can be loaded " "from a user editable configuration file for customized logging without " @@ -429,11 +392,9 @@ msgstr "" "konfigurációs fájlt, s így a programból való kilépés nélkül " "megváltoztathatod a naplózás beállításait." -#: ../../tutorial/stdlib2.rst:249 msgid "Weak References" msgstr "Gyenge hivatkozások" -#: ../../tutorial/stdlib2.rst:251 msgid "" "Python does automatic memory management (reference counting for most objects " "and :term:`garbage collection` to eliminate cycles). The memory is freed " @@ -443,7 +404,6 @@ msgstr "" "legtöbb objektum esetében, és szemétgyűjtés). Az utolsó objektum-hivatkozás " "megsemmisülése után az elfoglalt memória felszabadul." -#: ../../tutorial/stdlib2.rst:255 msgid "" "This approach works fine for most applications but occasionally there is a " "need to track objects only as long as they are being used by something else. " @@ -464,7 +424,6 @@ msgstr "" "objektum erről értesítést kap. A tipikus programok tároló objektumokat " "tartalmaznak, melyek létrehozása erőforrásigényes::" -#: ../../tutorial/stdlib2.rst:263 msgid "" ">>> import weakref, gc\n" ">>> class A:\n" @@ -490,11 +449,9 @@ msgid "" "KeyError: 'primary'" msgstr "" -#: ../../tutorial/stdlib2.rst:290 msgid "Tools for Working with Lists" msgstr "Listakezelő eszközök" -#: ../../tutorial/stdlib2.rst:292 msgid "" "Many data structure needs can be met with the built-in list type. However, " "sometimes there is a need for alternative implementations with different " @@ -504,7 +461,6 @@ msgstr "" "előfordul, hogy a listák egy másfajta megvalósítására van szükség, az " "eredeti listáktól eltérő viselkedéssel." -#: ../../tutorial/stdlib2.rst:296 msgid "" "The :mod:`array` module provides an :class:`~array.array` object that is " "like a list that stores only homogeneous data and stores it more compactly. " @@ -513,7 +469,6 @@ msgid "" "for regular lists of Python int objects::" msgstr "" -#: ../../tutorial/stdlib2.rst:302 msgid "" ">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" @@ -523,7 +478,6 @@ msgid "" "array('H', [10, 700])" msgstr "" -#: ../../tutorial/stdlib2.rst:309 msgid "" "The :mod:`collections` module provides a :class:`~collections.deque` object " "that is like a list with faster appends and pops from the left side but " @@ -531,7 +485,6 @@ msgid "" "queues and breadth first tree searches::" msgstr "" -#: ../../tutorial/stdlib2.rst:314 msgid "" ">>> from collections import deque\n" ">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" @@ -540,7 +493,6 @@ msgid "" "Handling task1" msgstr "" -#: ../../tutorial/stdlib2.rst:322 msgid "" "unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" @@ -551,16 +503,14 @@ msgid "" " unsearched.append(m)" msgstr "" -#: ../../tutorial/stdlib2.rst:330 msgid "" "In addition to alternative list implementations, the library also offers " "other tools such as the :mod:`bisect` module with functions for manipulating " "sorted lists::" msgstr "" -"Ráadásul az Alapkönyvtár más eszközöket is tartalmaz, például " -"a :mod:`bisect` modult, ami rendezett listák módosítására szolgál::" +"Ráadásul az Alapkönyvtár más eszközöket is tartalmaz, például a :mod:" +"`bisect` modult, ami rendezett listák módosítására szolgál::" -#: ../../tutorial/stdlib2.rst:334 msgid "" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" @@ -569,7 +519,6 @@ msgid "" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" msgstr "" -#: ../../tutorial/stdlib2.rst:340 msgid "" "The :mod:`heapq` module provides functions for implementing heaps based on " "regular lists. The lowest valued entry is always kept at position zero. " @@ -582,7 +531,6 @@ msgstr "" "gyakran kell elérnie a lista legkisebb elemét, de nem akarod a listát teljes " "mértékben rendezni::" -#: ../../tutorial/stdlib2.rst:345 msgid "" ">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" @@ -592,37 +540,30 @@ msgid "" "[-5, 0, 1]" msgstr "" -#: ../../tutorial/stdlib2.rst:356 msgid "Decimal Floating-Point Arithmetic" msgstr "" -#: ../../tutorial/stdlib2.rst:358 msgid "" "The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for " "decimal floating-point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" -#: ../../tutorial/stdlib2.rst:362 msgid "" "financial applications and other uses which require exact decimal " "representation," msgstr "" "pénzügyi programoknál, és ott, ahol véges decimális ábrázolást használnak" -#: ../../tutorial/stdlib2.rst:364 msgid "control over precision," msgstr "a pontosság ellenőrzésével" -#: ../../tutorial/stdlib2.rst:365 msgid "control over rounding to meet legal or regulatory requirements," msgstr "a törvényeknek vagy a szabályoknak megfelelő kerekítés használatával" -#: ../../tutorial/stdlib2.rst:366 msgid "tracking of significant decimal places, or" msgstr "a fontos számjegyek nyomkövetésével" -#: ../../tutorial/stdlib2.rst:367 msgid "" "applications where the user expects the results to match calculations done " "by hand." @@ -630,7 +571,6 @@ msgstr "" "az olyan programoknál, ahol a felhasználó kézzel végzett számításokhoz " "akarja hasonlítani a végeredményt." -#: ../../tutorial/stdlib2.rst:370 msgid "" "For example, calculating a 5% tax on a 70 cent phone charge gives different " "results in decimal floating point and binary floating point. The difference " @@ -641,7 +581,6 @@ msgstr "" "esetén. A különbség fontos lesz, ha a kerekítés a legközelebbi centhez " "történik::" -#: ../../tutorial/stdlib2.rst:374 msgid "" ">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" @@ -650,7 +589,6 @@ msgid "" "0.73" msgstr "" -#: ../../tutorial/stdlib2.rst:380 msgid "" "The :class:`~decimal.Decimal` result keeps a trailing zero, automatically " "inferring four place significance from multiplicands with two place " @@ -665,7 +603,6 @@ msgstr "" "azokat a kérdéseket, amikor a bináris lebegőpontos számítás nem tud abszolút " "pontosan ábrázolni decimális mennyiségeket." -#: ../../tutorial/stdlib2.rst:386 msgid "" "Exact representation enables the :class:`~decimal.Decimal` class to perform " "modulo calculations and equality tests that are unsuitable for binary " @@ -675,7 +612,6 @@ msgstr "" "és az egyenlőségtesztelést, ami a bináris lebegőpontos ábrázolás esetén " "helytelen eredményre vezet::" -#: ../../tutorial/stdlib2.rst:390 msgid "" ">>> Decimal('1.00') % Decimal('.10')\n" "Decimal('0.00')\n" @@ -688,7 +624,6 @@ msgid "" "False" msgstr "" -#: ../../tutorial/stdlib2.rst:400 msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" @@ -696,7 +631,6 @@ msgstr "" "A :mod:`decimal` modulban a számítások pontosságát szükség szerint " "beállíthatod::" -#: ../../tutorial/stdlib2.rst:402 msgid "" ">>> getcontext().prec = 36\n" ">>> Decimal(1) / Decimal(7)\n" diff --git a/tutorial/venv.po b/tutorial/venv.po index 44b18bb..5fd2899 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,15 +22,12 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/venv.rst:6 msgid "Virtual Environments and Packages" msgstr "Virtuális környezetek és csomagok" -#: ../../tutorial/venv.rst:9 msgid "Introduction" msgstr "Bevezetés" -#: ../../tutorial/venv.rst:11 msgid "" "Python applications will often use packages and modules that don't come as " "part of the standard library. Applications will sometimes need a specific " @@ -44,7 +41,6 @@ msgstr "" "feltételezi, hogy egy bizonyos hibát javította, vagy esetleg az alkalmazás a " "könyvtárnak egy idejétmúlt verziójához készült." -#: ../../tutorial/venv.rst:17 msgid "" "This means it may not be possible for one Python installation to meet the " "requirements of every application. If application A needs version 1.0 of a " @@ -58,7 +54,6 @@ msgstr "" "konfliktust okoz, és akár az 1.0-ás, akár a 2.0-ás verziót telepítem, az " "egyik alkalmazás képtelen lesz működni." -#: ../../tutorial/venv.rst:23 msgid "" "The solution for this problem is to create a :term:`virtual environment`, a " "self-contained directory tree that contains a Python installation for a " @@ -68,7 +63,6 @@ msgstr "" "létre: egy könyvtárstruktúrát, amelyben egy Python van telepítve egy " "bizonyos Python-verzióval, és pár további csomaggal." -#: ../../tutorial/venv.rst:27 msgid "" "Different applications can then use different virtual environments. To " "resolve the earlier example of conflicting requirements, application A can " @@ -85,20 +79,16 @@ msgstr "" "könyvtárát 3.0-ásra kell frissíteni, az nem befolyásolja az A alkalmazás " "környezetét." -#: ../../tutorial/venv.rst:36 msgid "Creating Virtual Environments" msgstr "Virtuális környezet létrehozása" -#: ../../tutorial/venv.rst:38 msgid "" -"The module used to create and manage virtual environments is " -"called :mod:`venv`. :mod:`venv` will install the Python version from which " -"the command was run (as reported by the :option:`--version` option). For " -"instance, executing the command with ``python3.12`` will install version " -"3.12." +"The module used to create and manage virtual environments is called :mod:" +"`venv`. :mod:`venv` will install the Python version from which the command " +"was run (as reported by the :option:`--version` option). For instance, " +"executing the command with ``python3.12`` will install version 3.12." msgstr "" -#: ../../tutorial/venv.rst:44 msgid "" "To create a virtual environment, decide upon a directory where you want to " "place it, and run the :mod:`venv` module as a script with the directory " @@ -108,18 +98,15 @@ msgstr "" "szeretnénk helyezni, és futtassuk a :mod:`venv` modult szkriptként evvel a " "könyvtár-útvonallal::" -#: ../../tutorial/venv.rst:47 msgid "python -m venv tutorial-env" msgstr "" -#: ../../tutorial/venv.rst:49 msgid "" "This will create the ``tutorial-env`` directory if it doesn't exist, and " "also create directories inside it containing a copy of the Python " "interpreter and various supporting files." msgstr "" -#: ../../tutorial/venv.rst:53 msgid "" "A common directory location for a virtual environment is ``.venv``. This " "name keeps the directory typically hidden in your shell and thus out of the " @@ -128,27 +115,21 @@ msgid "" "some tooling supports." msgstr "" -#: ../../tutorial/venv.rst:59 msgid "Once you've created a virtual environment, you may activate it." msgstr "Amikor létrehoztuk a virtuális környezetet, aktiválhatjuk." -#: ../../tutorial/venv.rst:61 msgid "On Windows, run::" msgstr "Windowson így::" -#: ../../tutorial/venv.rst:63 msgid "tutorial-env\\Scripts\\activate" msgstr "" -#: ../../tutorial/venv.rst:65 msgid "On Unix or MacOS, run::" msgstr "Unixon (beleértve a Linuxokat) vagy MacOS-en így::" -#: ../../tutorial/venv.rst:67 msgid "source tutorial-env/bin/activate" msgstr "" -#: ../../tutorial/venv.rst:69 msgid "" "(This script is written for the bash shell. If you use the :program:`csh` " "or :program:`fish` shells, there are alternate ``activate.csh`` and " @@ -158,7 +139,6 @@ msgstr "" "shellt használunk, akkor a ``activate.csh`` illetve ``activate.fish`` " "szkripteket kell használnunk.)" -#: ../../tutorial/venv.rst:74 msgid "" "Activating the virtual environment will change your shell's prompt to show " "what virtual environment you're using, and modify the environment so that " @@ -170,7 +150,6 @@ msgstr "" "környezetet, hogy a ``python`` parancs futtatása a megfelelő Python-verziót " "és telepítést futtassa. Például:" -#: ../../tutorial/venv.rst:79 msgid "" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" @@ -183,44 +162,36 @@ msgid "" ">>>" msgstr "" -#: ../../tutorial/venv.rst:91 msgid "To deactivate a virtual environment, type::" msgstr "" -#: ../../tutorial/venv.rst:93 msgid "deactivate" msgstr "" -#: ../../tutorial/venv.rst:95 msgid "into the terminal." msgstr "" -#: ../../tutorial/venv.rst:98 msgid "Managing Packages with pip" msgstr "Csomagkezelés pip-pel" -#: ../../tutorial/venv.rst:100 msgid "" -"You can install, upgrade, and remove packages using a program " -"called :program:`pip`. By default ``pip`` will install packages from the " -"`Python Package Index `_. You can browse the Python " -"Package Index by going to it in your web browser." +"You can install, upgrade, and remove packages using a program called :" +"program:`pip`. By default ``pip`` will install packages from the `Python " +"Package Index `_. You can browse the Python Package Index " +"by going to it in your web browser." msgstr "" -#: ../../tutorial/venv.rst:105 msgid "" "``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\", " "etc. (Consult the :ref:`installing-index` guide for complete documentation " "for ``pip``.)" msgstr "" -#: ../../tutorial/venv.rst:109 msgid "" "You can install the latest version of a package by specifying a package's " "name:" msgstr "A csomag legfrissebb verzióját a csomagnév megadásával telepíthetjük:" -#: ../../tutorial/venv.rst:111 msgid "" "(tutorial-env) $ python -m pip install novas\n" "Collecting novas\n" @@ -230,7 +201,6 @@ msgid "" "Successfully installed novas-3.1.1.3" msgstr "" -#: ../../tutorial/venv.rst:120 msgid "" "You can also install a specific version of a package by giving the package " "name followed by ``==`` and the version number:" @@ -238,7 +208,6 @@ msgstr "" "A csomag egy adott verzióját is telepíthetjük, ha megadjuk a csomag nevét, " "amelyet ``==`` követ, majd a verziószám:" -#: ../../tutorial/venv.rst:123 msgid "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" "Collecting requests==2.6.0\n" @@ -247,7 +216,6 @@ msgid "" "Successfully installed requests-2.6.0" msgstr "" -#: ../../tutorial/venv.rst:131 msgid "" "If you re-run this command, ``pip`` will notice that the requested version " "is already installed and do nothing. You can supply a different version " @@ -255,7 +223,6 @@ msgid "" "upgrade`` to upgrade the package to the latest version:" msgstr "" -#: ../../tutorial/venv.rst:136 msgid "" "(tutorial-env) $ python -m pip install --upgrade requests\n" "Collecting requests\n" @@ -266,18 +233,15 @@ msgid "" "Successfully installed requests-2.7.0" msgstr "" -#: ../../tutorial/venv.rst:146 msgid "" "``python -m pip uninstall`` followed by one or more package names will " "remove the packages from the virtual environment." msgstr "" -#: ../../tutorial/venv.rst:149 msgid "" "``python -m pip show`` will display information about a particular package:" msgstr "" -#: ../../tutorial/venv.rst:151 msgid "" "(tutorial-env) $ python -m pip show requests\n" "---\n" @@ -293,13 +257,11 @@ msgid "" "Requires:" msgstr "" -#: ../../tutorial/venv.rst:166 msgid "" "``python -m pip list`` will display all of the packages installed in the " "virtual environment:" msgstr "" -#: ../../tutorial/venv.rst:169 msgid "" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" @@ -309,7 +271,6 @@ msgid "" "setuptools (16.0)" msgstr "" -#: ../../tutorial/venv.rst:178 msgid "" "``python -m pip freeze`` will produce a similar list of the installed " "packages, but the output uses the format that ``python -m pip install`` " @@ -317,7 +278,6 @@ msgid "" "file:" msgstr "" -#: ../../tutorial/venv.rst:182 msgid "" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" @@ -326,7 +286,6 @@ msgid "" "requests==2.7.0" msgstr "" -#: ../../tutorial/venv.rst:190 msgid "" "The ``requirements.txt`` can then be committed to version control and " "shipped as part of an application. Users can then install all the necessary " @@ -336,7 +295,6 @@ msgstr "" "alkalmazással együtt közzétehető. Ekkor a felhasználók a szükséges " "csomagokat az ``install -r`` paranccsal telepíthetik:" -#: ../../tutorial/venv.rst:194 msgid "" "(tutorial-env) $ python -m pip install -r requirements.txt\n" "Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))\n" @@ -350,7 +308,6 @@ msgid "" "Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" msgstr "" -#: ../../tutorial/venv.rst:207 msgid "" "``pip`` has many more options. Consult the :ref:`installing-index` guide " "for complete documentation for ``pip``. When you've written a package and " diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index c55f0cc..6d69731 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,28 +22,23 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../tutorial/whatnow.rst:5 msgid "What Now?" msgstr "" -#: ../../tutorial/whatnow.rst:7 msgid "" "Reading this tutorial has probably reinforced your interest in using Python " "--- you should be eager to apply Python to solving your real-world problems. " "Where should you go to learn more?" msgstr "" -#: ../../tutorial/whatnow.rst:11 msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" msgstr "" -#: ../../tutorial/whatnow.rst:14 msgid ":ref:`library-index`:" msgstr "" -#: ../../tutorial/whatnow.rst:16 msgid "" "You should browse through this manual, which gives complete (though terse) " "reference material about types, functions, and the modules in the standard " @@ -54,34 +49,28 @@ msgid "" "what's available." msgstr "" -#: ../../tutorial/whatnow.rst:24 msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." msgstr "" -#: ../../tutorial/whatnow.rst:27 msgid "" ":ref:`reference-index`: A detailed explanation of Python's syntax and " "semantics. It's heavy reading, but is useful as a complete guide to the " "language itself." msgstr "" -#: ../../tutorial/whatnow.rst:31 msgid "More Python resources:" msgstr "" -#: ../../tutorial/whatnow.rst:33 msgid "" "https://www.python.org: The major Python web site. It contains code, " "documentation, and pointers to Python-related pages around the web." msgstr "" -#: ../../tutorial/whatnow.rst:36 msgid "https://docs.python.org: Fast access to Python's documentation." msgstr "" -#: ../../tutorial/whatnow.rst:38 msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " "Cheese Shop [#]_, is an index of user-created Python modules that are " @@ -89,7 +78,6 @@ msgid "" "here so that others can find it." msgstr "" -#: ../../tutorial/whatnow.rst:43 msgid "" "https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a " "sizable collection of code examples, larger modules, and useful scripts. " @@ -97,13 +85,11 @@ msgid "" "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" -#: ../../tutorial/whatnow.rst:48 msgid "" "https://pyvideo.org collects links to Python-related videos from conferences " "and user-group meetings." msgstr "" -#: ../../tutorial/whatnow.rst:51 msgid "" "https://scipy.org: The Scientific Python project includes modules for fast " "array computations and manipulations plus a host of packages for such things " @@ -111,7 +97,6 @@ msgid "" "distributions, statistical analysis and the like." msgstr "" -#: ../../tutorial/whatnow.rst:56 msgid "" "For Python-related questions and problem reports, you can post to the " "newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at " @@ -122,7 +107,6 @@ msgid "" "available at https://mail.python.org/pipermail/." msgstr "" -#: ../../tutorial/whatnow.rst:64 msgid "" "Before posting, be sure to check the list of :ref:`Frequently Asked " "Questions ` (also called the FAQ). The FAQ answers many of the " @@ -130,11 +114,9 @@ msgid "" "for your problem." msgstr "" -#: ../../tutorial/whatnow.rst:70 msgid "Footnotes" msgstr "Lábjegyzet" -#: ../../tutorial/whatnow.rst:71 msgid "" "\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " "but whatever cheese he asks for, the clerk says it's missing." diff --git a/using/android.po b/using/android.po index f20027c..9439548 100644 --- a/using/android.po +++ b/using/android.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/android.rst:5 msgid "Using Python on Android" msgstr "" -#: ../../using/android.rst:7 msgid "" "Python on Android is unlike Python on desktop platforms. On a desktop " "platform, Python is generally installed as a system resource that can be " @@ -31,128 +29,105 @@ msgid "" "interactive prompt, or by running a Python script." msgstr "" -#: ../../using/android.rst:13 msgid "" "On Android, there is no concept of installing as a system resource. The only " "unit of software distribution is an \"app\". There is also no console where " "you could run a :program:`python` executable, or interact with a Python REPL." msgstr "" -#: ../../using/android.rst:17 msgid "" "As a result, the only way you can use Python on Android is in embedded mode " "– that is, by writing a native Android application, embedding a Python " -"interpreter using ``libpython``, and invoking Python code using " -"the :ref:`Python embedding API `. The full Python interpreter, " -"the standard library, and all your Python code is then packaged into your " -"app for its own private use." +"interpreter using ``libpython``, and invoking Python code using the :ref:" +"`Python embedding API `. The full Python interpreter, the " +"standard library, and all your Python code is then packaged into your app " +"for its own private use." msgstr "" -#: ../../using/android.rst:23 msgid "" "The Python standard library has some notable omissions and restrictions on " "Android. See the :ref:`API availability guide ` for " "details." msgstr "" -#: ../../using/android.rst:28 msgid "Adding Python to an Android app" msgstr "" -#: ../../using/android.rst:30 msgid "" "Most app developers should use one of the following tools, which will " "provide a much easier experience:" msgstr "" -#: ../../using/android.rst:33 msgid "" "`Briefcase `__, from the BeeWare project" msgstr "" -#: ../../using/android.rst:34 msgid "`Buildozer `__, from the Kivy project" msgstr "" -#: ../../using/android.rst:35 msgid "`Chaquopy `__" msgstr "" -#: ../../using/android.rst:36 msgid "" "`pyqtdeploy `__" msgstr "" -#: ../../using/android.rst:37 msgid "`Termux `__" msgstr "" -#: ../../using/android.rst:39 msgid "" "If you're sure you want to do all of this manually, read on. You can use " "the :source:`testbed app ` as a guide; each step below " "contains a link to the relevant file." msgstr "" -#: ../../using/android.rst:43 msgid "" "Build Python by following the instructions in :source:`Android/README.md`. " "This will create the directory ``cross-build/HOST/prefix``." msgstr "" -#: ../../using/android.rst:46 msgid "" -"Add code to your :source:`build.gradle ` file to copy the following items into your project. All " -"except your own Python code can be copied from ``prefix/lib``:" +"Add code to your :source:`build.gradle ` file to copy the following items into your project. All except your " +"own Python code can be copied from ``prefix/lib``:" msgstr "" -#: ../../using/android.rst:50 msgid "In your JNI libraries:" msgstr "" -#: ../../using/android.rst:52 msgid "``libpython*.*.so``" msgstr "" -#: ../../using/android.rst:53 msgid "``lib*_python.so`` (external libraries such as OpenSSL)" msgstr "" -#: ../../using/android.rst:55 msgid "In your assets:" msgstr "" -#: ../../using/android.rst:57 msgid "``python*.*`` (the Python standard library)" msgstr "" -#: ../../using/android.rst:58 msgid "``python*.*/site-packages`` (your own Python code)" msgstr "" -#: ../../using/android.rst:60 msgid "" "Add code to your app to :source:`extract the assets to the filesystem " "`." msgstr "" -#: ../../using/android.rst:63 msgid "" "Add code to your app to :source:`start Python in embedded mode `. This will need to be C code called " "via JNI." msgstr "" -#: ../../using/android.rst:68 msgid "Building a Python package for Android" msgstr "" -#: ../../using/android.rst:70 msgid "" "Python packages can be built for Android as wheels and released on PyPI. The " -"recommended tool for doing this is `cibuildwheel `__, which automates all " -"the details of setting up a cross-compilation environment, building the " -"wheel, and testing it on an emulator." +"recommended tool for doing this is `cibuildwheel `__, which automates all the details of " +"setting up a cross-compilation environment, building the wheel, and testing " +"it on an emulator." msgstr "" diff --git a/using/cmdline.po b/using/cmdline.po index 0a74529..3174a06 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,56 +18,45 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/cmdline.rst:9 msgid "Command line and environment" msgstr "" -#: ../../using/cmdline.rst:11 msgid "" "The CPython interpreter scans the command line and the environment for " "various settings." msgstr "" -#: ../../using/cmdline.rst:16 msgid "" -"Other implementations' command line schemes may differ. " -"See :ref:`implementations` for further resources." +"Other implementations' command line schemes may differ. See :ref:" +"`implementations` for further resources." msgstr "" -#: ../../using/cmdline.rst:23 msgid "Command line" msgstr "" -#: ../../using/cmdline.rst:25 msgid "When invoking Python, you may specify any of these options::" msgstr "" -#: ../../using/cmdline.rst:27 msgid "" "python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] " "[args]" msgstr "" -#: ../../using/cmdline.rst:29 msgid "" "The most common use case is, of course, a simple invocation of a script::" msgstr "" -#: ../../using/cmdline.rst:31 msgid "python myscript.py" msgstr "" -#: ../../using/cmdline.rst:37 msgid "Interface options" msgstr "" -#: ../../using/cmdline.rst:39 msgid "" "The interpreter interface resembles that of the UNIX shell, but provides " "some additional methods of invocation:" msgstr "" -#: ../../using/cmdline.rst:42 msgid "" "When called with standard input connected to a tty device, it prompts for " "commands and executes them until an EOF (an end-of-file character, you can " @@ -75,37 +64,31 @@ msgid "" "is read. For more on interactive mode, see :ref:`tut-interac`." msgstr "" -#: ../../using/cmdline.rst:46 msgid "" "When called with a file name argument or with a file as standard input, it " "reads and executes a script from that file." msgstr "" -#: ../../using/cmdline.rst:48 msgid "" "When called with a directory name argument, it reads and executes an " "appropriately named script from that directory." msgstr "" -#: ../../using/cmdline.rst:50 msgid "" "When called with ``-c command``, it executes the Python statement(s) given " "as *command*. Here *command* may contain multiple statements separated by " "newlines. Leading whitespace is significant in Python statements!" msgstr "" -#: ../../using/cmdline.rst:53 msgid "" "When called with ``-m module-name``, the given module is located on the " "Python module path and executed as a script." msgstr "" -#: ../../using/cmdline.rst:56 msgid "" "In non-interactive mode, the entire input is parsed before it is executed." msgstr "" -#: ../../using/cmdline.rst:58 msgid "" "An interface option terminates the list of options consumed by the " "interpreter, all consecutive arguments will end up in :data:`sys.argv` -- " @@ -113,38 +96,32 @@ msgid "" "reflecting the program's source." msgstr "" -#: ../../using/cmdline.rst:65 msgid "" "Execute the Python code in *command*. *command* can be one or more " "statements separated by newlines, with significant leading whitespace as in " "normal module code." msgstr "" -#: ../../using/cmdline.rst:69 msgid "" "If this option is given, the first element of :data:`sys.argv` will be ``\"-" -"c\"`` and the current directory will be added to the start " -"of :data:`sys.path` (allowing modules in that directory to be imported as " -"top level modules)." +"c\"`` and the current directory will be added to the start of :data:`sys." +"path` (allowing modules in that directory to be imported as top level " +"modules)." msgstr "" -#: ../../using/cmdline.rst:74 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_command`` with " "argument ``command``." msgstr "" -#: ../../using/cmdline.rst:76 msgid "*command* is automatically dedented before execution." msgstr "" -#: ../../using/cmdline.rst:81 msgid "" "Search :data:`sys.path` for the named module and execute its contents as " "the :mod:`__main__` module." msgstr "" -#: ../../using/cmdline.rst:84 msgid "" "Since the argument is a *module* name, you must not give a file extension " "(``.py``). The module name should be a valid absolute Python module name, " @@ -152,7 +129,6 @@ msgid "" "use a name that includes a hyphen)." msgstr "" -#: ../../using/cmdline.rst:89 msgid "" "Package names (including namespace packages) are also permitted. When a " "package name is supplied instead of a normal module, the interpreter will " @@ -161,7 +137,6 @@ msgid "" "passed to the interpreter as the script argument." msgstr "" -#: ../../using/cmdline.rst:98 msgid "" "This option cannot be used with built-in modules and extension modules " "written in C, since they do not have Python module files. However, it can " @@ -169,7 +144,6 @@ msgid "" "not available." msgstr "" -#: ../../using/cmdline.rst:103 msgid "" "If this option is given, the first element of :data:`sys.argv` will be the " "full path to the module file (while the module file is being located, the " @@ -177,72 +151,58 @@ msgid "" "the current directory will be added to the start of :data:`sys.path`." msgstr "" -#: ../../using/cmdline.rst:108 msgid "" -":option:`-I` option can be used to run the script in isolated mode " -"where :data:`sys.path` contains neither the current directory nor the user's " -"site-packages directory. All ``PYTHON*`` environment variables are ignored, " -"too." +":option:`-I` option can be used to run the script in isolated mode where :" +"data:`sys.path` contains neither the current directory nor the user's site-" +"packages directory. All ``PYTHON*`` environment variables are ignored, too." msgstr "" -#: ../../using/cmdline.rst:113 msgid "" "Many standard library modules contain code that is invoked on their " "execution as a script. An example is the :mod:`timeit` module::" msgstr "" -#: ../../using/cmdline.rst:116 msgid "" "python -m timeit -s \"setup here\" \"benchmarked code here\"\n" "python -m timeit -h # for details" msgstr "" -#: ../../using/cmdline.rst:119 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_module`` with " "argument ``module-name``." msgstr "" -#: ../../using/cmdline.rst:122 msgid ":func:`runpy.run_module`" msgstr "" -#: ../../using/cmdline.rst:123 ../../using/cmdline.rst:175 msgid "Equivalent functionality directly available to Python code" msgstr "" -#: ../../using/cmdline.rst:125 msgid ":pep:`338` -- Executing modules as scripts" msgstr "" -#: ../../using/cmdline.rst:127 msgid "Supply the package name to run a ``__main__`` submodule." msgstr "" -#: ../../using/cmdline.rst:130 msgid "namespace packages are also supported" msgstr "" -#: ../../using/cmdline.rst:137 msgid "" "Read commands from standard input (:data:`sys.stdin`). If standard input is " "a terminal, :option:`-i` is implied." msgstr "" -#: ../../using/cmdline.rst:140 msgid "" "If this option is given, the first element of :data:`sys.argv` will be ``\"-" -"\"`` and the current directory will be added to the start " -"of :data:`sys.path`." +"\"`` and the current directory will be added to the start of :data:`sys." +"path`." msgstr "" -#: ../../using/cmdline.rst:144 ../../using/cmdline.rst:834 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_stdin`` with no " "arguments." msgstr "" -#: ../../using/cmdline.rst:150 msgid "" "Execute the Python code contained in *script*, which must be a filesystem " "path (absolute or relative) referring to either a Python file, a directory " @@ -250,45 +210,37 @@ msgid "" "file." msgstr "" -#: ../../using/cmdline.rst:155 msgid "" "If this option is given, the first element of :data:`sys.argv` will be the " "script name as given on the command line." msgstr "" -#: ../../using/cmdline.rst:158 msgid "" "If the script name refers directly to a Python file, the directory " "containing that file is added to the start of :data:`sys.path`, and the file " "is executed as the :mod:`__main__` module." msgstr "" -#: ../../using/cmdline.rst:162 msgid "" "If the script name refers to a directory or zipfile, the script name is " "added to the start of :data:`sys.path` and the ``__main__.py`` file in that " "location is executed as the :mod:`__main__` module." msgstr "" -#: ../../using/cmdline.rst:166 msgid "" -":option:`-I` option can be used to run the script in isolated mode " -"where :data:`sys.path` contains neither the script's directory nor the " -"user's site-packages directory. All ``PYTHON*`` environment variables are " -"ignored, too." +":option:`-I` option can be used to run the script in isolated mode where :" +"data:`sys.path` contains neither the script's directory nor the user's site-" +"packages directory. All ``PYTHON*`` environment variables are ignored, too." msgstr "" -#: ../../using/cmdline.rst:171 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_file`` with " "argument ``filename``." msgstr "" -#: ../../using/cmdline.rst:174 msgid ":func:`runpy.run_path`" msgstr "" -#: ../../using/cmdline.rst:178 msgid "" "If no interface option is given, :option:`-i` is implied, ``sys.argv[0]`` is " "an empty string (``\"\"``) and the current directory will be added to the " @@ -297,84 +249,66 @@ msgid "" "config`)." msgstr "" -#: ../../using/cmdline.rst:184 msgid ":ref:`tut-invoking`" msgstr "" -#: ../../using/cmdline.rst:186 msgid "Automatic enabling of tab-completion and history editing." msgstr "" -#: ../../using/cmdline.rst:193 msgid "Generic options" msgstr "" -#: ../../using/cmdline.rst:199 msgid "" "Print a short description of all command line options and corresponding " "environment variables and exit." msgstr "" -#: ../../using/cmdline.rst:204 msgid "" "Print a short description of Python-specific environment variables and exit." msgstr "" -#: ../../using/cmdline.rst:211 msgid "" "Print a description of implementation-specific :option:`-X` options and exit." msgstr "" -#: ../../using/cmdline.rst:218 msgid "Print complete usage information and exit." msgstr "" -#: ../../using/cmdline.rst:225 msgid "Print the Python version number and exit. Example output could be:" msgstr "" -#: ../../using/cmdline.rst:227 msgid "Python 3.8.0b2+" msgstr "" -#: ../../using/cmdline.rst:231 msgid "When given twice, print more information about the build, like:" msgstr "" -#: ../../using/cmdline.rst:233 msgid "" "Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00)\n" "[GCC 6.2.0 20161005]" msgstr "" -#: ../../using/cmdline.rst:238 msgid "The ``-VV`` option." msgstr "" -#: ../../using/cmdline.rst:245 msgid "Miscellaneous options" msgstr "" -#: ../../using/cmdline.rst:249 msgid "" -"Issue a warning when converting :class:`bytes` or :class:`bytearray` " -"to :class:`str` without specifying encoding or comparing :class:`!bytes` " -"or :class:`!bytearray` with :class:`!str` or :class:`!bytes` " -"with :class:`int`. Issue an error when the option is given twice (:option:`!-" -"bb`)." +"Issue a warning when converting :class:`bytes` or :class:`bytearray` to :" +"class:`str` without specifying encoding or comparing :class:`!bytes` or :" +"class:`!bytearray` with :class:`!str` or :class:`!bytes` with :class:`int`. " +"Issue an error when the option is given twice (:option:`!-bb`)." msgstr "" -#: ../../using/cmdline.rst:254 msgid "Affects also comparisons of :class:`bytes` with :class:`int`." msgstr "" -#: ../../using/cmdline.rst:259 msgid "" "If given, Python won't try to write ``.pyc`` files on the import of source " "modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." msgstr "" -#: ../../using/cmdline.rst:265 msgid "" "Control the validation behavior of hash-based ``.pyc`` files. See :ref:`pyc-" "invalidation`. When set to ``default``, checked and unchecked hash-based " @@ -385,75 +319,61 @@ msgid "" "corresponding source files." msgstr "" -#: ../../using/cmdline.rst:273 msgid "" "The semantics of timestamp-based ``.pyc`` files are unaffected by this " "option." msgstr "" -#: ../../using/cmdline.rst:279 msgid "" -"Turn on parser debugging output (for expert only). See also " -"the :envvar:`PYTHONDEBUG` environment variable." +"Turn on parser debugging output (for expert only). See also the :envvar:" +"`PYTHONDEBUG` environment variable." msgstr "" -#: ../../using/cmdline.rst:282 msgid "" "This option requires a :ref:`debug build of Python `, otherwise " "it's ignored." msgstr "" -#: ../../using/cmdline.rst:288 msgid "" -"Ignore all ``PYTHON*`` environment variables, e.g. :envvar:`PYTHONPATH` " -"and :envvar:`PYTHONHOME`, that might be set." +"Ignore all ``PYTHON*`` environment variables, e.g. :envvar:`PYTHONPATH` and :" +"envvar:`PYTHONHOME`, that might be set." msgstr "" -#: ../../using/cmdline.rst:291 msgid "See also the :option:`-P` and :option:`-I` (isolated) options." msgstr "" -#: ../../using/cmdline.rst:296 msgid "Enter interactive mode after execution." msgstr "" -#: ../../using/cmdline.rst:298 msgid "" "Using the :option:`-i` option will enter interactive mode in any of the " "following circumstances\\:" msgstr "" -#: ../../using/cmdline.rst:300 msgid "When a script is passed as first argument" msgstr "" -#: ../../using/cmdline.rst:301 msgid "When the :option:`-c` option is used" msgstr "" -#: ../../using/cmdline.rst:302 msgid "When the :option:`-m` option is used" msgstr "" -#: ../../using/cmdline.rst:304 msgid "" "Interactive mode will start even when :data:`sys.stdin` does not appear to " "be a terminal. The :envvar:`PYTHONSTARTUP` file is not read." msgstr "" -#: ../../using/cmdline.rst:307 msgid "" "This can be useful to inspect global variables or a stack trace when a " "script raises an exception. See also :envvar:`PYTHONINSPECT`." msgstr "" -#: ../../using/cmdline.rst:313 msgid "" "Run Python in isolated mode. This also implies :option:`-E`, :option:`-P` " "and :option:`-s` options." msgstr "" -#: ../../using/cmdline.rst:316 msgid "" "In isolated mode :data:`sys.path` contains neither the script's directory " "nor the user's site-packages directory. All ``PYTHON*`` environment " @@ -461,66 +381,55 @@ msgid "" "the user from injecting malicious code." msgstr "" -#: ../../using/cmdline.rst:326 msgid "" -"Remove assert statements and any code conditional on the value " -"of :const:`__debug__`. Augment the filename for compiled (:term:`bytecode`) " -"files by adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). " -"See also :envvar:`PYTHONOPTIMIZE`." +"Remove assert statements and any code conditional on the value of :const:" +"`__debug__`. Augment the filename for compiled (:term:`bytecode`) files by " +"adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). See also :" +"envvar:`PYTHONOPTIMIZE`." msgstr "" -#: ../../using/cmdline.rst:331 ../../using/cmdline.rst:341 msgid "Modify ``.pyc`` filenames according to :pep:`488`." msgstr "" -#: ../../using/cmdline.rst:337 msgid "" "Do :option:`-O` and also discard docstrings. Augment the filename for " "compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " "extension (see :pep:`488`)." msgstr "" -#: ../../using/cmdline.rst:347 msgid "Don't prepend a potentially unsafe path to :data:`sys.path`:" msgstr "" -#: ../../using/cmdline.rst:349 msgid "" "``python -m module`` command line: Don't prepend the current working " "directory." msgstr "" -#: ../../using/cmdline.rst:351 msgid "" "``python script.py`` command line: Don't prepend the script's directory. If " "it's a symbolic link, resolve symbolic links." msgstr "" -#: ../../using/cmdline.rst:353 msgid "" "``python -c code`` and ``python`` (REPL) command lines: Don't prepend an " "empty string, which means the current working directory." msgstr "" -#: ../../using/cmdline.rst:356 msgid "" "See also the :envvar:`PYTHONSAFEPATH` environment variable, and :option:`-E` " "and :option:`-I` (isolated) options." msgstr "" -#: ../../using/cmdline.rst:364 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "" -#: ../../using/cmdline.rst:371 msgid "" -"Turn on hash randomization. This option only has an effect if " -"the :envvar:`PYTHONHASHSEED` environment variable is set to ``0``, since " -"hash randomization is enabled by default." +"Turn on hash randomization. This option only has an effect if the :envvar:" +"`PYTHONHASHSEED` environment variable is set to anything other than " +"``random``, since hash randomization is enabled by default." msgstr "" -#: ../../using/cmdline.rst:375 msgid "" "On previous versions of Python, this option turns on hash randomization, so " "that the :meth:`~object.__hash__` values of str and bytes objects are " @@ -529,7 +438,6 @@ msgid "" "between repeated invocations of Python." msgstr "" -#: ../../using/cmdline.rst:381 msgid "" "Hash randomization is intended to provide protection against a denial-of-" "service caused by carefully chosen inputs that exploit the worst case " @@ -537,85 +445,69 @@ msgid "" "http://ocert.org/advisories/ocert-2011-003.html for details." msgstr "" -#: ../../using/cmdline.rst:386 msgid "" ":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " "secret." msgstr "" -#: ../../using/cmdline.rst:391 msgid "The option is no longer ignored." msgstr "" -#: ../../using/cmdline.rst:397 msgid "" -"Don't add the :data:`user site-packages directory ` " -"to :data:`sys.path`." +"Don't add the :data:`user site-packages directory ` to :data:" +"`sys.path`." msgstr "" -#: ../../using/cmdline.rst:400 msgid "See also :envvar:`PYTHONNOUSERSITE`." msgstr "" -#: ../../using/cmdline.rst:404 ../../using/cmdline.rst:931 -#: ../../using/cmdline.rst:943 msgid ":pep:`370` -- Per user site-packages directory" msgstr "" -#: ../../using/cmdline.rst:409 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " -"manipulations if :mod:`site` is explicitly imported later " -"(call :func:`site.main` if you want them to be triggered)." +"manipulations if :mod:`site` is explicitly imported later (call :func:`site." +"main` if you want them to be triggered)." msgstr "" -#: ../../using/cmdline.rst:417 msgid "" "Force the stdout and stderr streams to be unbuffered. This option has no " "effect on the stdin stream." msgstr "" -#: ../../using/cmdline.rst:420 msgid "See also :envvar:`PYTHONUNBUFFERED`." msgstr "" -#: ../../using/cmdline.rst:422 msgid "The text layer of the stdout and stderr streams now is unbuffered." msgstr "" -#: ../../using/cmdline.rst:428 msgid "" "Print a message each time a module is initialized, showing the place " -"(filename or built-in module) from which it is loaded. When given twice " -"(:option:`!-vv`), print a message for each file that is checked for when " +"(filename or built-in module) from which it is loaded. When given twice (:" +"option:`!-vv`), print a message for each file that is checked for when " "searching for a module. Also provides information on module cleanup at exit." msgstr "" -#: ../../using/cmdline.rst:433 msgid "" "The :mod:`site` module reports the site-specific paths and :file:`.pth` " "files being processed." msgstr "" -#: ../../using/cmdline.rst:437 msgid "See also :envvar:`PYTHONVERBOSE`." msgstr "" -#: ../../using/cmdline.rst:443 msgid "" "Warning control. Python's warning machinery by default prints warning " "messages to :data:`sys.stderr`." msgstr "" -#: ../../using/cmdline.rst:446 ../../using/cmdline.rst:959 msgid "" "The simplest settings apply a particular action unconditionally to all " "warnings emitted by a process (even those that are otherwise ignored by " "default)::" msgstr "" -#: ../../using/cmdline.rst:450 msgid "" "-Wdefault # Warn once per call location\n" "-Werror # Convert to exceptions\n" @@ -626,41 +518,34 @@ msgid "" "-Wignore # Never warn" msgstr "" -#: ../../using/cmdline.rst:458 msgid "" "The action names can be abbreviated as desired and the interpreter will " "resolve them to the appropriate action name. For example, ``-Wi`` is the " "same as ``-Wignore``." msgstr "" -#: ../../using/cmdline.rst:462 msgid "The full form of argument is::" msgstr "" -#: ../../using/cmdline.rst:464 msgid "action:message:category:module:lineno" msgstr "" -#: ../../using/cmdline.rst:466 msgid "" "Empty fields match all values; trailing empty fields may be omitted. For " "example ``-W ignore::DeprecationWarning`` ignores all DeprecationWarning " "warnings." msgstr "" -#: ../../using/cmdline.rst:470 msgid "" "The *action* field is as explained above but only applies to warnings that " "match the remaining fields." msgstr "" -#: ../../using/cmdline.rst:473 msgid "" "The *message* field must match the whole warning message; this match is case-" "insensitive." msgstr "" -#: ../../using/cmdline.rst:476 msgid "" "The *category* field matches the warning category (ex: " "``DeprecationWarning``). This must be a class name; the match test whether " @@ -668,59 +553,50 @@ msgid "" "warning category." msgstr "" -#: ../../using/cmdline.rst:481 msgid "" "The *module* field matches the (fully qualified) module name; this match is " "case-sensitive." msgstr "" -#: ../../using/cmdline.rst:484 msgid "" "The *lineno* field matches the line number, where zero matches all line " "numbers and is thus equivalent to an omitted line number." msgstr "" -#: ../../using/cmdline.rst:487 msgid "" "Multiple :option:`-W` options can be given; when a warning matches more than " -"one option, the action for the last matching option is performed. " -"Invalid :option:`-W` options are ignored (though, a warning message is " -"printed about invalid options when the first warning is issued)." +"one option, the action for the last matching option is performed. Invalid :" +"option:`-W` options are ignored (though, a warning message is printed about " +"invalid options when the first warning is issued)." msgstr "" -#: ../../using/cmdline.rst:492 msgid "" "Warnings can also be controlled using the :envvar:`PYTHONWARNINGS` " -"environment variable and from within a Python program using " -"the :mod:`warnings` module. For example, the :func:`warnings.filterwarnings` " -"function can be used to use a regular expression on the warning message." +"environment variable and from within a Python program using the :mod:" +"`warnings` module. For example, the :func:`warnings.filterwarnings` function " +"can be used to use a regular expression on the warning message." msgstr "" -#: ../../using/cmdline.rst:497 ../../using/cmdline.rst:971 msgid "" "See :ref:`warning-filter` and :ref:`describing-warning-filters` for more " "details." msgstr "" -#: ../../using/cmdline.rst:503 msgid "" "Skip the first line of the source, allowing use of non-Unix forms of ``#!" "cmd``. This is intended for a DOS specific hack only." msgstr "" -#: ../../using/cmdline.rst:509 msgid "" "Reserved for various implementation-specific options. CPython currently " "defines the following possible values:" msgstr "" -#: ../../using/cmdline.rst:512 msgid "" -"``-X faulthandler`` to enable :mod:`faulthandler`. See " -"also :envvar:`PYTHONFAULTHANDLER`." +"``-X faulthandler`` to enable :mod:`faulthandler`. See also :envvar:" +"`PYTHONFAULTHANDLER`." msgstr "" -#: ../../using/cmdline.rst:517 msgid "" "``-X showrefcount`` to output the total reference count and number of used " "memory blocks when the program finishes or after each statement in the " @@ -728,24 +604,20 @@ msgid "" "build>`." msgstr "" -#: ../../using/cmdline.rst:524 msgid "" -"``-X tracemalloc`` to start tracing Python memory allocations using " -"the :mod:`tracemalloc` module. By default, only the most recent frame is " -"stored in a traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start " -"tracing with a traceback limit of *NFRAME* frames. " -"See :func:`tracemalloc.start` and :envvar:`PYTHONTRACEMALLOC` for more " -"information." +"``-X tracemalloc`` to start tracing Python memory allocations using the :mod:" +"`tracemalloc` module. By default, only the most recent frame is stored in a " +"traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start tracing with a " +"traceback limit of *NFRAME* frames. See :func:`tracemalloc.start` and :" +"envvar:`PYTHONTRACEMALLOC` for more information." msgstr "" -#: ../../using/cmdline.rst:533 msgid "" "``-X int_max_str_digits`` configures the :ref:`integer string conversion " -"length limitation `. See " -"also :envvar:`PYTHONINTMAXSTRDIGITS`." +"length limitation `. See also :envvar:" +"`PYTHONINTMAXSTRDIGITS`." msgstr "" -#: ../../using/cmdline.rst:539 msgid "" "``-X importtime`` to show how long each import takes. It shows module name, " "cumulative time (including nested imports) and self time (excluding nested " @@ -753,62 +625,53 @@ msgid "" "application. Typical usage is ``python -X importtime -c 'import asyncio'``." msgstr "" -#: ../../using/cmdline.rst:544 msgid "" "``-X importtime=2`` enables additional output that indicates when an " "imported module has already been loaded. In such cases, the string " "``cached`` will be printed in both time columns." msgstr "" -#: ../../using/cmdline.rst:548 msgid "See also :envvar:`PYTHONPROFILEIMPORTTIME`." msgstr "" -#: ../../using/cmdline.rst:554 msgid "" "Added ``-X importtime=2`` to also trace imports of loaded modules, and " "reserved values other than ``1`` and ``2`` for future use." msgstr "" -#: ../../using/cmdline.rst:557 msgid "" "``-X dev``: enable :ref:`Python Development Mode `, introducing " "additional runtime checks that are too expensive to be enabled by default. " "See also :envvar:`PYTHONDEVMODE`." msgstr "" -#: ../../using/cmdline.rst:563 msgid "" "``-X utf8`` enables the :ref:`Python UTF-8 Mode `. ``-X utf8=0`` " "explicitly disables :ref:`Python UTF-8 Mode ` (even when it would " "otherwise activate automatically). See also :envvar:`PYTHONUTF8`." msgstr "" -#: ../../using/cmdline.rst:570 msgid "" "``-X pycache_prefix=PATH`` enables writing ``.pyc`` files to a parallel tree " -"rooted at the given directory instead of to the code tree. See " -"also :envvar:`PYTHONPYCACHEPREFIX`." +"rooted at the given directory instead of to the code tree. See also :envvar:" +"`PYTHONPYCACHEPREFIX`." msgstr "" -#: ../../using/cmdline.rst:576 msgid "" "``-X warn_default_encoding`` issues a :class:`EncodingWarning` when the " -"locale-specific default encoding is used for opening files. See " -"also :envvar:`PYTHONWARNDEFAULTENCODING`." +"locale-specific default encoding is used for opening files. See also :envvar:" +"`PYTHONWARNDEFAULTENCODING`." msgstr "" -#: ../../using/cmdline.rst:582 msgid "" "``-X no_debug_ranges`` disables the inclusion of the tables mapping extra " "location information (end line, start column offset and end column offset) " "to every instruction in code objects. This is useful when smaller code " "objects and pyc files are desired as well as suppressing the extra visual " -"location indicators when the interpreter displays tracebacks. See " -"also :envvar:`PYTHONNODEBUGRANGES`." +"location indicators when the interpreter displays tracebacks. See also :" +"envvar:`PYTHONNODEBUGRANGES`." msgstr "" -#: ../../using/cmdline.rst:591 msgid "" "``-X frozen_modules`` determines whether or not frozen modules are ignored " "by the import machinery. A value of ``on`` means they get imported and " @@ -816,11 +679,10 @@ msgid "" "installed Python (the normal case). If it's under development (running from " "the source tree) then the default is ``off``. Note that the :mod:`!" "importlib_bootstrap` and :mod:`!importlib_bootstrap_external` frozen modules " -"are always used, even if this flag is set to ``off``. See " -"also :envvar:`PYTHON_FROZEN_MODULES`." +"are always used, even if this flag is set to ``off``. See also :envvar:" +"`PYTHON_FROZEN_MODULES`." msgstr "" -#: ../../using/cmdline.rst:602 msgid "" "``-X perf`` enables support for the Linux ``perf`` profiler. When this " "option is provided, the ``perf`` profiler will be able to report Python " @@ -829,17 +691,15 @@ msgid "" "also :envvar:`PYTHONPERFSUPPORT` and :ref:`perf_profiling`." msgstr "" -#: ../../using/cmdline.rst:610 msgid "" "``-X perf_jit`` enables support for the Linux ``perf`` profiler with DWARF " "support. When this option is provided, the ``perf`` profiler will be able to " "report Python calls using DWARF information. This option is only available " "on some platforms and will do nothing if is not supported on the current " -"system. The default value is \"off\". See " -"also :envvar:`PYTHON_PERF_JIT_SUPPORT` and :ref:`perf_profiling`." +"system. The default value is \"off\". See also :envvar:" +"`PYTHON_PERF_JIT_SUPPORT` and :ref:`perf_profiling`." msgstr "" -#: ../../using/cmdline.rst:619 msgid "" "``-X disable_remote_debug`` disables the remote debugging support as " "described in :pep:`768`. This includes both the functionality to schedule " @@ -847,34 +707,29 @@ msgid "" "for execution in the current process." msgstr "" -#: ../../using/cmdline.rst:624 msgid "" "This option is only available on some platforms and will do nothing if is " -"not supported on the current system. See " -"also :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` and :pep:`768`." +"not supported on the current system. See also :envvar:" +"`PYTHON_DISABLE_REMOTE_DEBUG` and :pep:`768`." msgstr "" -#: ../../using/cmdline.rst:630 msgid "" -":samp:`-X cpu_count={n}` " -"overrides :func:`os.cpu_count`, :func:`os.process_cpu_count`, " -"and :func:`multiprocessing.cpu_count`. *n* must be greater than or equal to " -"1. This option may be useful for users who need to limit CPU resources of a " -"container system. See also :envvar:`PYTHON_CPU_COUNT`. If *n* is " -"``default``, nothing is overridden." +":samp:`-X cpu_count={n}` overrides :func:`os.cpu_count`, :func:`os." +"process_cpu_count`, and :func:`multiprocessing.cpu_count`. *n* must be " +"greater than or equal to 1. This option may be useful for users who need to " +"limit CPU resources of a container system. See also :envvar:" +"`PYTHON_CPU_COUNT`. If *n* is ``default``, nothing is overridden." msgstr "" -#: ../../using/cmdline.rst:639 msgid "" ":samp:`-X presite={package.module}` specifies a module that should be " -"imported before the :mod:`site` module is executed and before " -"the :mod:`__main__` module exists. Therefore, the imported module " -"isn't :mod:`__main__`. This can be used to execute code early during Python " +"imported before the :mod:`site` module is executed and before the :mod:" +"`__main__` module exists. Therefore, the imported module isn't :mod:" +"`__main__`. This can be used to execute code early during Python " "initialization. Python needs to be :ref:`built in debug mode ` " "for this option to exist. See also :envvar:`PYTHON_PRESITE`." msgstr "" -#: ../../using/cmdline.rst:648 msgid "" ":samp:`-X gil={0,1}` forces the GIL to be disabled or enabled, respectively. " "Setting to ``0`` is only available in builds configured with :option:`--" @@ -882,7 +737,6 @@ msgid "" "threaded-cpython`." msgstr "" -#: ../../using/cmdline.rst:655 msgid "" ":samp:`-X thread_inherit_context={0,1}` causes :class:`~threading.Thread` " "to, by default, use a copy of context of the caller of ``Thread.start()`` " @@ -891,73 +745,61 @@ msgid "" "and to ``0`` otherwise. See also :envvar:`PYTHON_THREAD_INHERIT_CONTEXT`." msgstr "" -#: ../../using/cmdline.rst:664 msgid "" -":samp:`-X context_aware_warnings={0,1}` causes " -"the :class:`warnings.catch_warnings` context manager to use " -"a :class:`~contextvars.ContextVar` to store warnings filter state. If " -"unset, the value of this option defaults to ``1`` on free-threaded builds " -"and to ``0`` otherwise. See also :envvar:`PYTHON_CONTEXT_AWARE_WARNINGS`." +":samp:`-X context_aware_warnings={0,1}` causes the :class:`warnings." +"catch_warnings` context manager to use a :class:`~contextvars.ContextVar` to " +"store warnings filter state. If unset, the value of this option defaults to " +"``1`` on free-threaded builds and to ``0`` otherwise. See also :envvar:" +"`PYTHON_CONTEXT_AWARE_WARNINGS`." msgstr "" -#: ../../using/cmdline.rst:672 msgid "" ":samp:`-X tlbc={0,1}` enables (1, the default) or disables (0) thread-local " "bytecode in builds configured with :option:`--disable-gil`. When disabled, " -"this also disables the specializing interpreter. See " -"also :envvar:`PYTHON_TLBC`." +"this also disables the specializing interpreter. See also :envvar:" +"`PYTHON_TLBC`." msgstr "" -#: ../../using/cmdline.rst:679 msgid "" -"It also allows passing arbitrary values and retrieving them through " -"the :data:`sys._xoptions` dictionary." +"It also allows passing arbitrary values and retrieving them through the :" +"data:`sys._xoptions` dictionary." msgstr "" -#: ../../using/cmdline.rst:684 msgid "Removed the ``-X showalloccount`` option." msgstr "" -#: ../../using/cmdline.rst:687 msgid "Removed the ``-X oldparser`` option." msgstr "" -#: ../../using/cmdline.rst:692 msgid "" ":option:`!-J` is no longer reserved for use by Jython_, and now has no " "special meaning." msgstr "" -#: ../../using/cmdline.rst:700 msgid "Controlling color" msgstr "" -#: ../../using/cmdline.rst:702 msgid "" "The Python interpreter is configured by default to use colors to highlight " "output in certain situations such as when displaying tracebacks. This " "behavior can be controlled by setting different environment variables." msgstr "" -#: ../../using/cmdline.rst:706 msgid "" "Setting the environment variable ``TERM`` to ``dumb`` will disable color." msgstr "" -#: ../../using/cmdline.rst:708 msgid "" "If the |FORCE_COLOR|_ environment variable is set, then color will be " "enabled regardless of the value of TERM. This is useful on CI systems which " "aren’t terminals but can still display ANSI escape sequences." msgstr "" -#: ../../using/cmdline.rst:712 msgid "" "If the |NO_COLOR|_ environment variable is set, Python will disable all " "color in the output. This takes precedence over ``FORCE_COLOR``." msgstr "" -#: ../../using/cmdline.rst:715 msgid "" "All these environment variables are used also by other tools to control " "color output. To control the color output only in the Python interpreter, " @@ -966,11 +808,9 @@ msgid "" "``FORCE_COLOR``." msgstr "" -#: ../../using/cmdline.rst:725 msgid "Environment variables" msgstr "" -#: ../../using/cmdline.rst:727 msgid "" "These environment variables influence Python's behavior, they are processed " "before the command-line switches other than -E or -I. It is customary that " @@ -978,65 +818,56 @@ msgid "" "conflict." msgstr "" -#: ../../using/cmdline.rst:734 msgid "" "Change the location of the standard Python libraries. By default, the " -"libraries are searched in :file:`{prefix}/lib/python{version}` " -"and :file:`{exec_prefix}/lib/python{version}`, where :file:`{prefix}` " -"and :file:`{exec_prefix}` are installation-dependent directories, both " -"defaulting to :file:`/usr/local`." +"libraries are searched in :file:`{prefix}/lib/python{version}` and :file:" +"`{exec_prefix}/lib/python{version}`, where :file:`{prefix}` and :file:" +"`{exec_prefix}` are installation-dependent directories, both defaulting to :" +"file:`/usr/local`." msgstr "" -#: ../../using/cmdline.rst:740 msgid "" "When :envvar:`PYTHONHOME` is set to a single directory, its value replaces " "both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " "values for these, set :envvar:`PYTHONHOME` to :file:`{prefix}:{exec_prefix}`." msgstr "" -#: ../../using/cmdline.rst:747 msgid "" "Augment the default search path for module files. The format is the same as " -"the shell's :envvar:`PATH`: one or more directory pathnames separated " -"by :data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). Non-" +"the shell's :envvar:`PATH`: one or more directory pathnames separated by :" +"data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). Non-" "existent directories are silently ignored." msgstr "" -#: ../../using/cmdline.rst:752 msgid "" "In addition to normal directories, individual :envvar:`PYTHONPATH` entries " "may refer to zipfiles containing pure Python modules (in either source or " "compiled form). Extension modules cannot be imported from zipfiles." msgstr "" -#: ../../using/cmdline.rst:756 msgid "" "The default search path is installation dependent, but generally begins " "with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " "It is *always* appended to :envvar:`PYTHONPATH`." msgstr "" -#: ../../using/cmdline.rst:760 msgid "" -"An additional directory will be inserted in the search path in front " -"of :envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" +"An additional directory will be inserted in the search path in front of :" +"envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" "options`. The search path can be manipulated from within a Python program as " "the variable :data:`sys.path`." msgstr "" -#: ../../using/cmdline.rst:768 msgid "" "If this is set to a non-empty string, don't prepend a potentially unsafe " "path to :data:`sys.path`: see the :option:`-P` option for details." msgstr "" -#: ../../using/cmdline.rst:776 msgid "" -"If this is set to a non-empty string, it overrides " -"the :data:`sys.platlibdir` value." +"If this is set to a non-empty string, it overrides the :data:`sys." +"platlibdir` value." msgstr "" -#: ../../using/cmdline.rst:784 msgid "" "If this is the name of a readable file, the Python commands in that file are " "executed before the first prompt is displayed in interactive mode. The file " @@ -1047,92 +878,78 @@ msgid "" "file." msgstr "" -#: ../../using/cmdline.rst:791 ../../using/cmdline.rst:793 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_startup`` with the " "filename as the argument when called on startup." msgstr "" -#: ../../using/cmdline.rst:799 msgid "" -"If this is set to a non-empty string it is equivalent to specifying " -"the :option:`-O` option. If set to an integer, it is equivalent to " -"specifying :option:`-O` multiple times." +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-O` option. If set to an integer, it is equivalent to specifying :" +"option:`-O` multiple times." msgstr "" -#: ../../using/cmdline.rst:806 msgid "" "If this is set, it names a callable using dotted-path notation. The module " "containing the callable will be imported and then the callable will be run " "by the default implementation of :func:`sys.breakpointhook` which itself is " "called by built-in :func:`breakpoint`. If not set, or set to the empty " "string, it is equivalent to the value \"pdb.set_trace\". Setting this to " -"the string \"0\" causes the default implementation " -"of :func:`sys.breakpointhook` to do nothing but return immediately." +"the string \"0\" causes the default implementation of :func:`sys." +"breakpointhook` to do nothing but return immediately." msgstr "" -#: ../../using/cmdline.rst:818 msgid "" -"If this is set to a non-empty string it is equivalent to specifying " -"the :option:`-d` option. If set to an integer, it is equivalent to " -"specifying :option:`-d` multiple times." +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-d` option. If set to an integer, it is equivalent to specifying :" +"option:`-d` multiple times." msgstr "" -#: ../../using/cmdline.rst:822 msgid "" "This environment variable requires a :ref:`debug build of Python `, otherwise it's ignored." msgstr "" -#: ../../using/cmdline.rst:828 msgid "" -"If this is set to a non-empty string it is equivalent to specifying " -"the :option:`-i` option." +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-i` option." msgstr "" -#: ../../using/cmdline.rst:831 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." msgstr "" -#: ../../using/cmdline.rst:836 msgid "(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events." msgstr "" -#: ../../using/cmdline.rst:839 msgid "" "Uses PyREPL if possible, in which case :envvar:`PYTHONSTARTUP` is also " "executed. Emits audit events." msgstr "" -#: ../../using/cmdline.rst:846 msgid "" -"If this is set to a non-empty string it is equivalent to specifying " -"the :option:`-u` option." +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-u` option." msgstr "" -#: ../../using/cmdline.rst:852 msgid "" -"If this is set to a non-empty string it is equivalent to specifying " -"the :option:`-v` option. If set to an integer, it is equivalent to " -"specifying :option:`-v` multiple times." +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-v` option. If set to an integer, it is equivalent to specifying :" +"option:`-v` multiple times." msgstr "" -#: ../../using/cmdline.rst:859 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and macOS." msgstr "" -#: ../../using/cmdline.rst:865 msgid "" "If this is set to a non-empty string, Python won't try to write ``.pyc`` " "files on the import of source modules. This is equivalent to specifying " "the :option:`-B` option." msgstr "" -#: ../../using/cmdline.rst:872 msgid "" "If this is set, Python will write ``.pyc`` files in a mirror directory tree " "at this path, instead of in ``__pycache__`` directories within the source " @@ -1140,40 +957,34 @@ msgid "" "``pycache_prefix=PATH`` option." msgstr "" -#: ../../using/cmdline.rst:882 msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str and bytes objects." msgstr "" -#: ../../using/cmdline.rst:885 msgid "" "If :envvar:`PYTHONHASHSEED` is set to an integer value, it is used as a " "fixed seed for generating the hash() of the types covered by the hash " "randomization." msgstr "" -#: ../../using/cmdline.rst:889 msgid "" "Its purpose is to allow repeatable hashing, such as for selftests for the " "interpreter itself, or to allow a cluster of python processes to share hash " "values." msgstr "" -#: ../../using/cmdline.rst:893 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" -#: ../../using/cmdline.rst:900 msgid "" "If this variable is set to an integer, it is used to configure the " "interpreter's global :ref:`integer string conversion length limitation " "`." msgstr "" -#: ../../using/cmdline.rst:908 msgid "" "If this is set before running the interpreter, it overrides the encoding " "used for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. " @@ -1181,17 +992,14 @@ msgid "" "have the same meaning as in :func:`str.encode`." msgstr "" -#: ../../using/cmdline.rst:913 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." msgstr "" -#: ../../using/cmdline.rst:916 msgid "The ``encodingname`` part is now optional." msgstr "" -#: ../../using/cmdline.rst:919 msgid "" "On Windows, the encoding specified by this variable is ignored for " "interactive console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is " @@ -1199,34 +1007,29 @@ msgid "" "not affected." msgstr "" -#: ../../using/cmdline.rst:926 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." msgstr "" -#: ../../using/cmdline.rst:936 msgid "" "Defines the :data:`user base directory `, which is used to " -"compute the path of the :data:`user site-packages directory " -"` and :ref:`installation paths ` for " +"compute the path of the :data:`user site-packages directory ` and :ref:`installation paths ` for " "``python -m pip install --user``." msgstr "" -#: ../../using/cmdline.rst:948 msgid "" "If this environment variable is set, ``sys.argv[0]`` will be set to its " "value instead of the value got through the C runtime. Only works on macOS." msgstr "" -#: ../../using/cmdline.rst:954 msgid "" "This is equivalent to the :option:`-W` option. If set to a comma separated " "string, it is equivalent to specifying :option:`-W` multiple times, with " "filters later in the list taking precedence over those earlier in the list." msgstr "" -#: ../../using/cmdline.rst:963 msgid "" "PYTHONWARNINGS=default # Warn once per call location\n" "PYTHONWARNINGS=error # Convert to exceptions\n" @@ -1237,16 +1040,14 @@ msgid "" "PYTHONWARNINGS=ignore # Never warn" msgstr "" -#: ../../using/cmdline.rst:977 msgid "" -"If this environment variable is set to a non-empty " -"string, :func:`faulthandler.enable` is called at startup: install a handler " -"for :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS` " -"and :const:`~signal.SIGILL` signals to dump the Python traceback. This is " -"equivalent to :option:`-X` ``faulthandler`` option." +"If this environment variable is set to a non-empty string, :func:" +"`faulthandler.enable` is called at startup: install a handler for :const:" +"`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:" +"`~signal.SIGBUS` and :const:`~signal.SIGILL` signals to dump the Python " +"traceback. This is equivalent to :option:`-X` ``faulthandler`` option." msgstr "" -#: ../../using/cmdline.rst:989 msgid "" "If this environment variable is set to a non-empty string, start tracing " "Python memory allocations using the :mod:`tracemalloc` module. The value of " @@ -1256,107 +1057,88 @@ msgid "" "is equivalent to setting the :option:`-X` ``tracemalloc`` option." msgstr "" -#: ../../using/cmdline.rst:1002 msgid "" "If this environment variable is set to ``1``, Python will show how long each " "import takes. If set to ``2``, Python will include output for imported " -"modules that have already been loaded. This is equivalent to setting " -"the :option:`-X` ``importtime`` option." +"modules that have already been loaded. This is equivalent to setting the :" +"option:`-X` ``importtime`` option." msgstr "" -#: ../../using/cmdline.rst:1011 msgid "" "Added ``PYTHONPROFILEIMPORTTIME=2`` to also trace imports of loaded modules." msgstr "" -#: ../../using/cmdline.rst:1016 msgid "" -"If this environment variable is set to a non-empty string, enable " -"the :ref:`debug mode ` of the :mod:`asyncio` module." +"If this environment variable is set to a non-empty string, enable the :ref:" +"`debug mode ` of the :mod:`asyncio` module." msgstr "" -#: ../../using/cmdline.rst:1024 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" -#: ../../using/cmdline.rst:1026 msgid "Set the family of memory allocators used by Python:" msgstr "" -#: ../../using/cmdline.rst:1028 msgid "" "``default``: use the :ref:`default memory allocators `." msgstr "" -#: ../../using/cmdline.rst:1030 msgid "" "``malloc``: use the :c:func:`malloc` function of the C library for all " -"domains " -"(:c:macro:`PYMEM_DOMAIN_RAW`, :c:macro:`PYMEM_DOMAIN_MEM`, :c:macro:`PYMEM_DOMAIN_OBJ`)." +"domains (:c:macro:`PYMEM_DOMAIN_RAW`, :c:macro:`PYMEM_DOMAIN_MEM`, :c:macro:" +"`PYMEM_DOMAIN_OBJ`)." msgstr "" -#: ../../using/cmdline.rst:1033 msgid "" -"``pymalloc``: use the :ref:`pymalloc allocator ` " -"for :c:macro:`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and " -"use the :c:func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." +"``pymalloc``: use the :ref:`pymalloc allocator ` for :c:macro:" +"`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and use the :c:" +"func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." msgstr "" -#: ../../using/cmdline.rst:1036 msgid "" -"``mimalloc``: use the :ref:`mimalloc allocator ` " -"for :c:macro:`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and " -"use the :c:func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." +"``mimalloc``: use the :ref:`mimalloc allocator ` for :c:macro:" +"`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and use the :c:" +"func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." msgstr "" -#: ../../using/cmdline.rst:1040 msgid "Install :ref:`debug hooks `:" msgstr "" -#: ../../using/cmdline.rst:1042 msgid "" "``debug``: install debug hooks on top of the :ref:`default memory allocators " "`." msgstr "" -#: ../../using/cmdline.rst:1044 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks." msgstr "" -#: ../../using/cmdline.rst:1045 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks." msgstr "" -#: ../../using/cmdline.rst:1046 msgid "``mimalloc_debug``: same as ``mimalloc`` but also install debug hooks." msgstr "" -#: ../../using/cmdline.rst:1050 msgid "Added the ``\"default\"`` allocator." msgstr "" -#: ../../using/cmdline.rst:1056 msgid "" -"If set to a non-empty string, Python will print statistics of " -"the :ref:`pymalloc memory allocator ` every time a new pymalloc " -"object arena is created, and on shutdown." +"If set to a non-empty string, Python will print statistics of the :ref:" +"`pymalloc memory allocator ` every time a new pymalloc object " +"arena is created, and on shutdown." msgstr "" -#: ../../using/cmdline.rst:1060 msgid "" "This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable " "is used to force the :c:func:`malloc` allocator of the C library, or if " "Python is configured without ``pymalloc`` support." msgstr "" -#: ../../using/cmdline.rst:1064 msgid "" "This variable can now also be used on Python compiled in release mode. It " "now has no effect if set to an empty string." msgstr "" -#: ../../using/cmdline.rst:1071 msgid "" "If set to a non-empty string, the default :term:`filesystem encoding and " "error handler` mode will revert to their pre-3.6 values of 'mbcs' and " @@ -1364,42 +1146,34 @@ msgid "" "'surrogatepass' are used." msgstr "" -#: ../../using/cmdline.rst:1076 msgid "" -"This may also be enabled at runtime " -"with :func:`sys._enablelegacywindowsfsencoding`." +"This may also be enabled at runtime with :func:`sys." +"_enablelegacywindowsfsencoding`." msgstr "" -#: ../../using/cmdline.rst:1079 ../../using/cmdline.rst:1093 -#: ../../using/cmdline.rst:1144 msgid "Availability" msgstr "" -#: ../../using/cmdline.rst:1081 msgid "See :pep:`529` for more details." msgstr "" -#: ../../using/cmdline.rst:1086 msgid "" "If set to a non-empty string, does not use the new console reader and " "writer. This means that Unicode characters will be encoded according to the " "active console code page, rather than using utf-8." msgstr "" -#: ../../using/cmdline.rst:1090 msgid "" "This variable is ignored if the standard streams are redirected (to files or " "pipes) rather than referring to console buffers." msgstr "" -#: ../../using/cmdline.rst:1100 msgid "" "If set to the value ``0``, causes the main Python command line application " "to skip coercing the legacy ASCII-based C and POSIX locales to a more " "capable UTF-8 based alternative." msgstr "" -#: ../../using/cmdline.rst:1104 msgid "" "If this variable is *not* set (or is set to a value other than ``0``), the " "``LC_ALL`` locale override environment variable is also not set, and the " @@ -1410,19 +1184,15 @@ msgid "" "runtime:" msgstr "" -#: ../../using/cmdline.rst:1112 msgid "``C.UTF-8``" msgstr "" -#: ../../using/cmdline.rst:1113 msgid "``C.utf8``" msgstr "" -#: ../../using/cmdline.rst:1114 msgid "``UTF-8``" msgstr "" -#: ../../using/cmdline.rst:1116 msgid "" "If setting one of these locale categories succeeds, then the ``LC_CTYPE`` " "environment variable will also be set accordingly in the current process " @@ -1435,18 +1205,15 @@ msgid "" "(such as Python's own :func:`locale.getdefaultlocale`)." msgstr "" -#: ../../using/cmdline.rst:1126 msgid "" "Configuring one of these locales (either explicitly or via the above " -"implicit locale coercion) automatically enables the " -"``surrogateescape`` :ref:`error handler ` " -"for :data:`sys.stdin` and :data:`sys.stdout` (:data:`sys.stderr` continues " -"to use ``backslashreplace`` as it does in any other locale). This stream " -"handling behavior can be overridden using :envvar:`PYTHONIOENCODING` as " -"usual." +"implicit locale coercion) automatically enables the ``surrogateescape`` :ref:" +"`error handler ` for :data:`sys.stdin` and :data:`sys." +"stdout` (:data:`sys.stderr` continues to use ``backslashreplace`` as it does " +"in any other locale). This stream handling behavior can be overridden using :" +"envvar:`PYTHONIOENCODING` as usual." msgstr "" -#: ../../using/cmdline.rst:1133 msgid "" "For debugging purposes, setting ``PYTHONCOERCECLOCALE=warn`` will cause " "Python to emit warning messages on ``stderr`` if either the locale coercion " @@ -1454,7 +1221,6 @@ msgid "" "active when the Python runtime is initialized." msgstr "" -#: ../../using/cmdline.rst:1138 msgid "" "Also note that even when locale coercion is disabled, or when it fails to " "find a suitable target locale, :envvar:`PYTHONUTF8` will still activate by " @@ -1463,43 +1229,35 @@ msgid "" "system interfaces." msgstr "" -#: ../../using/cmdline.rst:1146 msgid "See :pep:`538` for more details." msgstr "" -#: ../../using/cmdline.rst:1152 msgid "" -"If this environment variable is set to a non-empty string, " -"enable :ref:`Python Development Mode `, introducing additional " -"runtime checks that are too expensive to be enabled by default. This is " -"equivalent to setting the :option:`-X` ``dev`` option." +"If this environment variable is set to a non-empty string, enable :ref:" +"`Python Development Mode `, introducing additional runtime checks " +"that are too expensive to be enabled by default. This is equivalent to " +"setting the :option:`-X` ``dev`` option." msgstr "" -#: ../../using/cmdline.rst:1161 msgid "If set to ``1``, enable the :ref:`Python UTF-8 Mode `." msgstr "" -#: ../../using/cmdline.rst:1163 msgid "If set to ``0``, disable the :ref:`Python UTF-8 Mode `." msgstr "" -#: ../../using/cmdline.rst:1165 msgid "" "Setting any other non-empty string causes an error during interpreter " "initialisation." msgstr "" -#: ../../using/cmdline.rst:1172 msgid "" -"If this environment variable is set to a non-empty string, issue " -"a :class:`EncodingWarning` when the locale-specific default encoding is used." +"If this environment variable is set to a non-empty string, issue a :class:" +"`EncodingWarning` when the locale-specific default encoding is used." msgstr "" -#: ../../using/cmdline.rst:1175 msgid "See :ref:`io-encoding-warning` for details." msgstr "" -#: ../../using/cmdline.rst:1181 msgid "" "If this variable is set, it disables the inclusion of the tables mapping " "extra location information (end line, start column offset and end column " @@ -1508,36 +1266,30 @@ msgid "" "visual location indicators when the interpreter displays tracebacks." msgstr "" -#: ../../using/cmdline.rst:1191 msgid "" "If this variable is set to a nonzero value, it enables support for the Linux " "``perf`` profiler so Python calls can be detected by it." msgstr "" -#: ../../using/cmdline.rst:1194 ../../using/cmdline.rst:1207 msgid "If set to ``0``, disable Linux ``perf`` profiler support." msgstr "" -#: ../../using/cmdline.rst:1196 msgid "" -"See also the :option:`-X perf <-X>` command-line option " -"and :ref:`perf_profiling`." +"See also the :option:`-X perf <-X>` command-line option and :ref:" +"`perf_profiling`." msgstr "" -#: ../../using/cmdline.rst:1203 msgid "" "If this variable is set to a nonzero value, it enables support for the Linux " "``perf`` profiler so Python calls can be detected by it using DWARF " "information." msgstr "" -#: ../../using/cmdline.rst:1209 msgid "" -"See also the :option:`-X perf_jit <-X>` command-line option " -"and :ref:`perf_profiling`." +"See also the :option:`-X perf_jit <-X>` command-line option and :ref:" +"`perf_profiling`." msgstr "" -#: ../../using/cmdline.rst:1216 msgid "" "If this variable is set to a non-empty string, it disables the remote " "debugging feature described in :pep:`768`. This includes both the " @@ -1545,21 +1297,17 @@ msgid "" "functionality to receive code for execution in the current process." msgstr "" -#: ../../using/cmdline.rst:1221 msgid "See also the :option:`-X disable_remote_debug` command-line option." msgstr "" -#: ../../using/cmdline.rst:1227 msgid "" "If this variable is set to a positive integer, it overrides the return " "values of :func:`os.cpu_count` and :func:`os.process_cpu_count`." msgstr "" -#: ../../using/cmdline.rst:1230 msgid "See also the :option:`-X cpu_count <-X>` command-line option." msgstr "" -#: ../../using/cmdline.rst:1236 msgid "" "If this variable is set to ``on`` or ``off``, it determines whether or not " "frozen modules are ignored by the import machinery. A value of ``on`` means " @@ -1570,46 +1318,38 @@ msgid "" "flag is set to ``off``." msgstr "" -#: ../../using/cmdline.rst:1244 msgid "See also the :option:`-X frozen_modules <-X>` command-line option." msgstr "" -#: ../../using/cmdline.rst:1250 msgid "" "If this variable is set to ``1``, the interpreter will colorize various " -"kinds of output. Setting it to ``0`` deactivates this behavior. See " -"also :ref:`using-on-controlling-color`." +"kinds of output. Setting it to ``0`` deactivates this behavior. See also :" +"ref:`using-on-controlling-color`." msgstr "" -#: ../../using/cmdline.rst:1258 msgid "" "If this variable is set to any value, the interpreter will not attempt to " -"load the Python-based :term:`REPL` that requires :mod:`curses` " -"and :mod:`readline`, and will instead use the traditional parser-" -"based :term:`REPL`." +"load the Python-based :term:`REPL` that requires :mod:`curses` and :mod:" +"`readline`, and will instead use the traditional parser-based :term:`REPL`." msgstr "" -#: ../../using/cmdline.rst:1267 msgid "" -"This environment variable can be used to set the location of a " -"``.python_history`` file (by default, it is ``.python_history`` in the " -"user's home directory)." +"This environment variable can be used to set the location of a ``." +"python_history`` file (by default, it is ``.python_history`` in the user's " +"home directory)." msgstr "" -#: ../../using/cmdline.rst:1275 msgid "" "If this variable is set to ``1``, the global interpreter lock (GIL) will be " "forced on. Setting it to ``0`` forces the GIL off (needs Python configured " "with the :option:`--disable-gil` build option)." msgstr "" -#: ../../using/cmdline.rst:1279 msgid "" "See also the :option:`-X gil <-X>` command-line option, which takes " "precedence over this variable, and :ref:`whatsnew313-free-threaded-cpython`." msgstr "" -#: ../../using/cmdline.rst:1286 msgid "" "If this variable is set to ``1`` then :class:`~threading.Thread` will, by " "default, use a copy of context of the caller of ``Thread.start()`` when " @@ -1618,7 +1358,6 @@ msgid "" "otherwise. See also :option:`-X thread_inherit_context<-X>`." msgstr "" -#: ../../using/cmdline.rst:1296 msgid "" "If set to ``1`` then the :class:`warnings.catch_warnings` context manager " "will use a :class:`~contextvars.ContextVar` to store warnings filter state. " @@ -1626,47 +1365,39 @@ msgid "" "``0`` otherwise. See :option:`-X context_aware_warnings<-X>`." msgstr "" -#: ../../using/cmdline.rst:1306 msgid "" "On builds where experimental just-in-time compilation is available, this " "variable can force the JIT to be disabled (``0``) or enabled (``1``) at " "interpreter startup." msgstr "" -#: ../../using/cmdline.rst:1314 msgid "" "If set to ``1`` enables thread-local bytecode. If set to ``0`` thread-local " "bytecode and the specializing interpreter are disabled. Only applies to " "builds configured with :option:`--disable-gil`." msgstr "" -#: ../../using/cmdline.rst:1318 msgid "See also the :option:`-X tlbc <-X>` command-line option." msgstr "" -#: ../../using/cmdline.rst:1323 msgid "Debug-mode variables" msgstr "" -#: ../../using/cmdline.rst:1327 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." msgstr "" -#: ../../using/cmdline.rst:1330 ../../using/cmdline.rst:1338 msgid "" "Needs Python configured with the :option:`--with-trace-refs` build option." msgstr "" -#: ../../using/cmdline.rst:1334 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter into a file under the path given as the value " "to this environment variable." msgstr "" -#: ../../using/cmdline.rst:1344 msgid "" "If this variable is set to a module, that module will be imported early in " "the interpreter lifecycle, before the :mod:`site` module is executed, and " @@ -1674,22 +1405,18 @@ msgid "" "is not treated as :mod:`__main__`." msgstr "" -#: ../../using/cmdline.rst:1349 msgid "This can be used to execute code early during Python initialization." msgstr "" -#: ../../using/cmdline.rst:1351 msgid "" "To import a submodule, use ``package.module`` as the value, like in an " "import statement." msgstr "" -#: ../../using/cmdline.rst:1354 msgid "" "See also the :option:`-X presite <-X>` command-line option, which takes " "precedence over this variable." msgstr "" -#: ../../using/cmdline.rst:1357 msgid "Needs Python configured with the :option:`--with-pydebug` build option." msgstr "" diff --git a/using/configure.po b/using/configure.po index 49182ee..84eb838 100644 --- a/using/configure.po +++ b/using/configure.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Rafael Fontenelle , 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,122 +18,98 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/configure.rst:3 msgid "Configure Python" msgstr "" -#: ../../using/configure.rst:8 msgid "Build Requirements" msgstr "" -#: ../../using/configure.rst:10 msgid "Features and minimum versions required to build CPython:" msgstr "" -#: ../../using/configure.rst:12 msgid "" "A `C11 `_ compiler. `Optional C11 " "features `_ are not required." msgstr "" -#: ../../using/configure.rst:17 msgid "On Windows, Microsoft Visual Studio 2017 or later is required." msgstr "" -#: ../../using/configure.rst:19 msgid "" "Support for `IEEE 754 `_ floating-" -"point numbers and `floating-point Not-a-Number (NaN) `_." +"point numbers and `floating-point Not-a-Number (NaN) `_." msgstr "" -#: ../../using/configure.rst:23 msgid "Support for threads." msgstr "" -#: ../../using/configure.rst:25 msgid "" "OpenSSL 1.1.1 is the minimum version and OpenSSL 3.0.16 is the recommended " "minimum version for the :mod:`ssl` and :mod:`hashlib` extension modules." msgstr "" -#: ../../using/configure.rst:28 msgid "SQLite 3.15.2 for the :mod:`sqlite3` extension module." msgstr "" -#: ../../using/configure.rst:30 msgid "Tcl/Tk 8.5.12 for the :mod:`tkinter` module." msgstr "" -#: ../../using/configure.rst:32 msgid "" "`libmpdec `_ 2.5.0 for " "the :mod:`decimal` module." msgstr "" -#: ../../using/configure.rst:35 msgid "" -"Autoconf 2.72 and aclocal 1.16.5 are required to regenerate " -"the :file:`configure` script." +"Autoconf 2.72 and aclocal 1.16.5 are required to regenerate the :file:" +"`configure` script." msgstr "" -#: ../../using/configure.rst:38 msgid "Tcl/Tk version 8.3.1 is now required." msgstr "" -#: ../../using/configure.rst:41 msgid "" "On Windows, Visual Studio 2015 or later is now required. Tcl/Tk version 8.4 " "is now required." msgstr "" -#: ../../using/configure.rst:45 msgid "" "Selected C99 features are now required, like ```` and ``static " "inline`` functions." msgstr "" -#: ../../using/configure.rst:49 msgid "Thread support and OpenSSL 1.0.2 are now required." msgstr "" -#: ../../using/configure.rst:52 msgid "OpenSSL 1.1.1 is now required. Require SQLite 3.7.15." msgstr "" -#: ../../using/configure.rst:56 msgid "" "C11 compiler, IEEE 754 and NaN support are now required. On Windows, Visual " "Studio 2017 or later is required. Tcl/Tk version 8.5.12 is now required for " "the :mod:`tkinter` module." msgstr "" -#: ../../using/configure.rst:61 msgid "Autoconf 2.71, aclocal 1.16.5 and SQLite 3.15.2 are now required." msgstr "" -#: ../../using/configure.rst:64 msgid "Autoconf 2.72 is now required." msgstr "" -#: ../../using/configure.rst:67 msgid "" "See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " "platform support\"." msgstr "" -#: ../../using/configure.rst:72 msgid "Generated files" msgstr "" -#: ../../using/configure.rst:74 msgid "" "To reduce build dependencies, Python source code contains multiple generated " "files. Commands to regenerate all generated files::" msgstr "" -#: ../../using/configure.rst:77 msgid "" "make regen-all\n" "make regen-stdlib-module-names\n" @@ -145,17 +117,14 @@ msgid "" "make regen-configure" msgstr "" -#: ../../using/configure.rst:82 msgid "" "The ``Makefile.pre.in`` file documents generated files, their inputs, and " "tools used to regenerate them. Search for ``regen-*`` make targets." msgstr "" -#: ../../using/configure.rst:86 msgid "configure script" msgstr "" -#: ../../using/configure.rst:88 msgid "" "The ``make regen-configure`` command regenerates the ``aclocal.m4`` file and " "the ``configure`` script using the ``Tools/build/regen-configure.sh`` shell " @@ -163,415 +132,326 @@ msgid "" "have a reproducible output." msgstr "" -#: ../../using/configure.rst:93 msgid "The container is optional, the following command can be run locally::" msgstr "" -#: ../../using/configure.rst:95 msgid "autoreconf -ivf -Werror" msgstr "" -#: ../../using/configure.rst:97 msgid "" "The generated files can change depending on the exact ``autoconf-archive``, " "``aclocal`` and ``pkg-config`` versions." msgstr "" -#: ../../using/configure.rst:104 msgid "Configure Options" msgstr "" -#: ../../using/configure.rst:106 msgid "List all :file:`configure` script options using::" msgstr "" -#: ../../using/configure.rst:108 msgid "./configure --help" msgstr "" -#: ../../using/configure.rst:110 msgid "" "See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution." msgstr "" -#: ../../using/configure.rst:113 msgid "General Options" msgstr "" -#: ../../using/configure.rst:117 msgid "" "Support loadable extensions in the :mod:`!_sqlite` extension module (default " "is no) of the :mod:`sqlite3` module." msgstr "" -#: ../../using/configure.rst:120 msgid "" -"See the :meth:`sqlite3.Connection.enable_load_extension` method of " -"the :mod:`sqlite3` module." +"See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" +"`sqlite3` module." msgstr "" -#: ../../using/configure.rst:127 msgid "" -"Disable IPv6 support (enabled by default if supported), see " -"the :mod:`socket` module." +"Disable IPv6 support (enabled by default if supported), see the :mod:" +"`socket` module." msgstr "" -#: ../../using/configure.rst:132 msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgstr "" -#: ../../using/configure.rst:134 msgid "By default, the digit size is 30." msgstr "" -#: ../../using/configure.rst:136 msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgstr "" -#: ../../using/configure.rst:138 msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "" -#: ../../using/configure.rst:142 msgid "Set the Python executable suffix to *SUFFIX*." msgstr "" -#: ../../using/configure.rst:144 msgid "" "The default suffix is ``.exe`` on Windows and macOS (``python.exe`` " -"executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, " -"``.wasm`` on WASI, and an empty string on other platforms (``python`` " +"executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, ``." +"wasm`` on WASI, and an empty string on other platforms (``python`` " "executable)." msgstr "" -#: ../../using/configure.rst:149 msgid "" -"The default suffix on WASM platform is one of ``.js``, ``.html`` or " -"``.wasm``." +"The default suffix on WASM platform is one of ``.js``, ``.html`` or ``." +"wasm``." msgstr "" -#: ../../using/configure.rst:155 msgid "" "Select the default time zone search path for :const:`zoneinfo.TZPATH`. See " "the :ref:`Compile-time configuration ` of " "the :mod:`zoneinfo` module." msgstr "" -#: ../../using/configure.rst:159 msgid "" "Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" "etc/zoneinfo``." msgstr "" -#: ../../using/configure.rst:161 msgid "See :data:`os.pathsep` path separator." msgstr "" -#: ../../using/configure.rst:167 msgid "" "Build the ``_decimal`` extension module using a thread-local context rather " "than a coroutine-local context (default), see the :mod:`decimal` module." msgstr "" -#: ../../using/configure.rst:170 msgid "See :const:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgstr "" -#: ../../using/configure.rst:176 msgid "Override order to check db backends for the :mod:`dbm` module" msgstr "" -#: ../../using/configure.rst:178 msgid "" "A valid value is a colon (``:``) separated string with the backend names:" msgstr "" -#: ../../using/configure.rst:180 msgid "``ndbm``;" msgstr "" -#: ../../using/configure.rst:181 msgid "``gdbm``;" msgstr "" -#: ../../using/configure.rst:182 msgid "``bdb``." msgstr "" -#: ../../using/configure.rst:186 msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgstr "" -#: ../../using/configure.rst:188 msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgstr "" -#: ../../using/configure.rst:190 msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgstr "" -#: ../../using/configure.rst:194 msgid "Python library directory name (default is ``lib``)." msgstr "" -#: ../../using/configure.rst:196 msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgstr "" -#: ../../using/configure.rst:198 msgid "See :data:`sys.platlibdir`." msgstr "" -#: ../../using/configure.rst:204 msgid "" "Directory of wheel packages used by the :mod:`ensurepip` module (none by " "default)." msgstr "" -#: ../../using/configure.rst:207 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" -"share/python-wheels/`` directory and don't install the :mod:`!" -"ensurepip._bundled` package." +"share/python-wheels/`` directory and don't install the :mod:`!ensurepip." +"_bundled` package." msgstr "" -#: ../../using/configure.rst:216 msgid "" "Whether configure should use :program:`pkg-config` to detect build " "dependencies." msgstr "" -#: ../../using/configure.rst:219 msgid "``check`` (default): :program:`pkg-config` is optional" msgstr "" -#: ../../using/configure.rst:220 msgid "``yes``: :program:`pkg-config` is mandatory" msgstr "" -#: ../../using/configure.rst:221 msgid "``no``: configure does not use :program:`pkg-config` even when present" msgstr "" -#: ../../using/configure.rst:227 msgid "Turn on internal Python performance statistics gathering." msgstr "" -#: ../../using/configure.rst:229 msgid "" "By default, statistics gathering is off. Use ``python3 -X pystats`` command " "or set ``PYTHONSTATS=1`` environment variable to turn on statistics " "gathering at Python startup." msgstr "" -#: ../../using/configure.rst:233 msgid "" "At Python exit, dump statistics if statistics gathering was on and not " "cleared." msgstr "" -#: ../../using/configure.rst:236 ../../using/configure.rst:759 msgid "Effects:" msgstr "" -#: ../../using/configure.rst:238 msgid "Add :option:`-X pystats <-X>` command line option." msgstr "" -#: ../../using/configure.rst:239 msgid "Add :envvar:`!PYTHONSTATS` environment variable." msgstr "" -#: ../../using/configure.rst:240 msgid "Define the ``Py_STATS`` macro." msgstr "" -#: ../../using/configure.rst:241 msgid "Add functions to the :mod:`sys` module:" msgstr "" -#: ../../using/configure.rst:243 msgid ":func:`!sys._stats_on`: Turns on statistics gathering." msgstr "" -#: ../../using/configure.rst:244 msgid ":func:`!sys._stats_off`: Turns off statistics gathering." msgstr "" -#: ../../using/configure.rst:245 msgid ":func:`!sys._stats_clear`: Clears the statistics." msgstr "" -#: ../../using/configure.rst:246 msgid "" ":func:`!sys._stats_dump`: Dump statistics to file, and clears the statistics." msgstr "" -#: ../../using/configure.rst:248 msgid "" "The statistics will be dumped to a arbitrary (probably unique) file in ``/" "tmp/py_stats/`` (Unix) or ``C:\\temp\\py_stats\\`` (Windows). If that " "directory does not exist, results will be printed on stderr." msgstr "" -#: ../../using/configure.rst:252 msgid "Use ``Tools/scripts/summarize_stats.py`` to read the stats." msgstr "" -#: ../../using/configure.rst:254 msgid "Statistics:" msgstr "" -#: ../../using/configure.rst:256 msgid "Opcode:" msgstr "" -#: ../../using/configure.rst:258 msgid "Specialization: success, failure, hit, deferred, miss, deopt, failures;" msgstr "" -#: ../../using/configure.rst:259 msgid "Execution count;" msgstr "" -#: ../../using/configure.rst:260 msgid "Pair count." msgstr "" -#: ../../using/configure.rst:262 msgid "Call:" msgstr "" -#: ../../using/configure.rst:264 msgid "Inlined Python calls;" msgstr "" -#: ../../using/configure.rst:265 msgid "PyEval calls;" msgstr "" -#: ../../using/configure.rst:266 msgid "Frames pushed;" msgstr "" -#: ../../using/configure.rst:267 msgid "Frame object created;" msgstr "" -#: ../../using/configure.rst:268 msgid "" "Eval calls: vector, generator, legacy, function VECTORCALL, build class, " "slot, function \"ex\", API, method." msgstr "" -#: ../../using/configure.rst:271 msgid "Object:" msgstr "" -#: ../../using/configure.rst:273 msgid "incref and decref;" msgstr "" -#: ../../using/configure.rst:274 msgid "interpreter incref and decref;" msgstr "" -#: ../../using/configure.rst:275 msgid "allocations: all, 512 bytes, 4 kiB, big;" msgstr "" -#: ../../using/configure.rst:276 msgid "free;" msgstr "" -#: ../../using/configure.rst:277 msgid "to/from free lists;" msgstr "" -#: ../../using/configure.rst:278 msgid "dictionary materialized/dematerialized;" msgstr "" -#: ../../using/configure.rst:279 msgid "type cache;" msgstr "" -#: ../../using/configure.rst:280 msgid "optimization attempts;" msgstr "" -#: ../../using/configure.rst:281 msgid "optimization traces created/executed;" msgstr "" -#: ../../using/configure.rst:282 msgid "uops executed." msgstr "" -#: ../../using/configure.rst:284 msgid "Garbage collector:" msgstr "" -#: ../../using/configure.rst:286 msgid "Garbage collections;" msgstr "" -#: ../../using/configure.rst:287 msgid "Objects visited;" msgstr "" -#: ../../using/configure.rst:288 msgid "Objects collected." msgstr "" -#: ../../using/configure.rst:296 msgid "" "Enables support for running Python without the :term:`global interpreter " "lock` (GIL): free threading build." msgstr "" -#: ../../using/configure.rst:299 msgid "" -"Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` " -"to :data:`sys.abiflags`." +"Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` to :data:`sys." +"abiflags`." msgstr "" -#: ../../using/configure.rst:302 msgid "See :ref:`whatsnew313-free-threaded-cpython` for more detail." msgstr "" -#: ../../using/configure.rst:308 msgid "" "Indicate how to integrate the :ref:`experimental just-in-time compiler " "`." msgstr "" -#: ../../using/configure.rst:310 msgid "``no``: Don't build the JIT." msgstr "" -#: ../../using/configure.rst:311 msgid "" "``yes``: Enable the JIT. To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: ../../using/configure.rst:313 msgid "" "``yes-off``: Build the JIT, but disable it by default. To enable it at " "runtime, set the environment variable :envvar:`PYTHON_JIT=1 `." msgstr "" -#: ../../using/configure.rst:315 msgid "" "``interpreter``: Enable the \"JIT interpreter\" (only useful for those " "debugging the JIT itself). To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: ../../using/configure.rst:319 msgid "" "``--enable-experimental-jit=no`` is the default behavior if the option is " "not provided, and ``--enable-experimental-jit`` is shorthand for ``--enable-" @@ -579,259 +459,208 @@ msgid "" "information, including how to install the necessary build-time dependencies." msgstr "" -#: ../../using/configure.rst:326 msgid "" "When building CPython with JIT enabled, ensure that your system has Python " "3.11 or later installed." msgstr "" -#: ../../using/configure.rst:332 msgid "Path to ``pkg-config`` utility." msgstr "" -#: ../../using/configure.rst:337 msgid "``pkg-config`` options." msgstr "" -#: ../../using/configure.rst:341 msgid "C compiler options" msgstr "" -#: ../../using/configure.rst:345 ../../using/configure.rst:1329 msgid "C compiler command." msgstr "" -#: ../../using/configure.rst:349 ../../using/configure.rst:1341 msgid "C compiler flags." msgstr "" -#: ../../using/configure.rst:353 msgid "C preprocessor command." msgstr "" -#: ../../using/configure.rst:357 msgid "C preprocessor flags, e.g. :samp:`-I{include_dir}`." msgstr "" -#: ../../using/configure.rst:361 ../../using/configure.rst:833 msgid "Linker options" msgstr "" -#: ../../using/configure.rst:365 msgid "Linker flags, e.g. :samp:`-L{library_directory}`." msgstr "" -#: ../../using/configure.rst:369 msgid "Libraries to pass to the linker, e.g. :samp:`-l{library}`." msgstr "" -#: ../../using/configure.rst:373 msgid "Name for machine-dependent library files." msgstr "" -#: ../../using/configure.rst:377 msgid "Options for third-party dependencies" msgstr "" -#: ../../using/configure.rst:384 msgid "" "C compiler and linker flags to link Python to ``libbz2``, used by :mod:`bz2` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:390 msgid "" -"C compiler and linker flags for ``libncurses`` or ``libncursesw``, used " -"by :mod:`curses` module, overriding ``pkg-config``." +"C compiler and linker flags for ``libncurses`` or ``libncursesw``, used by :" +"mod:`curses` module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:396 msgid "C compiler and linker flags for ``gdbm``." msgstr "" -#: ../../using/configure.rst:401 msgid "" "C compiler and linker flags for ``libb2`` (:ref:`BLAKE2 `), " "used by :mod:`hashlib` module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:407 msgid "" "C compiler and linker flags for ``libedit``, used by :mod:`readline` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:413 msgid "" "C compiler and linker flags for ``libffi``, used by :mod:`ctypes` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:419 msgid "" "C compiler and linker flags for ``libmpdec``, used by :mod:`decimal` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:424 msgid "" "These environment variables have no effect unless :option:`--with-system-" "libmpdec` is specified." msgstr "" -#: ../../using/configure.rst:430 msgid "" "C compiler and linker flags for ``liblzma``, used by :mod:`lzma` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:436 msgid "" "C compiler and linker flags for ``libreadline``, used by :mod:`readline` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:442 msgid "" "C compiler and linker flags for ``libsqlite3``, used by :mod:`sqlite3` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:448 msgid "" "C compiler and linker flags for ``libuuid``, used by :mod:`uuid` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:454 msgid "" "C compiler and linker flags for ``libzstd``, used by :mod:`compression.zstd` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:462 msgid "C compiler and linker flags for PANEL, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:464 msgid "" -"C compiler and linker flags for ``libpanel`` or ``libpanelw``, used " -"by :mod:`curses.panel` module, overriding ``pkg-config``." +"C compiler and linker flags for ``libpanel`` or ``libpanelw``, used by :mod:" +"`curses.panel` module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:470 msgid "C compiler and linker flags for TCLTK, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:475 msgid "" "C compiler and linker flags for ``libzlib``, used by :mod:`gzip` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:480 msgid "WebAssembly Options" msgstr "" -#: ../../using/configure.rst:484 msgid "Turn on dynamic linking support for WASM." msgstr "" -#: ../../using/configure.rst:486 msgid "" "Dynamic linking enables ``dlopen``. File size of the executable increases " "due to limited dead code elimination and additional features." msgstr "" -#: ../../using/configure.rst:493 msgid "Turn on pthreads support for WASM." msgstr "" -#: ../../using/configure.rst:499 msgid "Install Options" msgstr "" -#: ../../using/configure.rst:503 msgid "" -"Install architecture-independent files in PREFIX. On Unix, it defaults " -"to :file:`/usr/local`." +"Install architecture-independent files in PREFIX. On Unix, it defaults to :" +"file:`/usr/local`." msgstr "" -#: ../../using/configure.rst:506 msgid "This value can be retrieved at runtime using :data:`sys.prefix`." msgstr "" -#: ../../using/configure.rst:508 msgid "" "As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a " "Python in its home directory." msgstr "" -#: ../../using/configure.rst:513 msgid "" "Install architecture-dependent files in EPREFIX, defaults to :option:`--" "prefix`." msgstr "" -#: ../../using/configure.rst:515 msgid "This value can be retrieved at runtime using :data:`sys.exec_prefix`." msgstr "" -#: ../../using/configure.rst:519 msgid "" -"Don't build nor install test modules, like the :mod:`test` package or " -"the :mod:`!_testcapi` extension module (built and installed by default)." +"Don't build nor install test modules, like the :mod:`test` package or the :" +"mod:`!_testcapi` extension module (built and installed by default)." msgstr "" -#: ../../using/configure.rst:526 msgid "Select the :mod:`ensurepip` command run on Python installation:" msgstr "" -#: ../../using/configure.rst:528 msgid "" "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "command." msgstr "" -#: ../../using/configure.rst:530 msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgstr "" -#: ../../using/configure.rst:531 msgid "``no``: don't run ensurepip;" msgstr "" -#: ../../using/configure.rst:537 msgid "Performance options" msgstr "" -#: ../../using/configure.rst:539 msgid "" "Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) " "is recommended for best performance. The experimental ``--enable-bolt`` flag " "can also be used to improve performance." msgstr "" -#: ../../using/configure.rst:545 msgid "" "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "(disabled by default)." msgstr "" -#: ../../using/configure.rst:548 msgid "" "The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, " "GCC also requires it: GCC is just an alias to Clang on macOS." msgstr "" -#: ../../using/configure.rst:551 msgid "" "Disable also semantic interposition in libpython if ``--enable-shared`` and " "GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker " "flags." msgstr "" -#: ../../using/configure.rst:557 msgid "" "During the build, you may encounter compiler warnings about profile data not " "being available for some source files. These warnings are harmless, as only " @@ -840,58 +669,47 @@ msgid "" "profile-instr-unprofiled`` to :envvar:`CFLAGS`." msgstr "" -#: ../../using/configure.rst:566 msgid "Use ``-fno-semantic-interposition`` on GCC." msgstr "" -#: ../../using/configure.rst:571 msgid "" "Environment variable used in the Makefile: Python command line arguments for " "the PGO generation task." msgstr "" -#: ../../using/configure.rst:574 msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgstr "" -#: ../../using/configure.rst:578 msgid "Task failure is no longer ignored silently." msgstr "" -#: ../../using/configure.rst:583 msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgstr "" -#: ../../using/configure.rst:585 msgid "" "The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well " "as an LTO-aware linker (``ld.gold`` or ``lld``)." msgstr "" -#: ../../using/configure.rst:590 msgid "To use ThinLTO feature, use ``--with-lto=thin`` on Clang." msgstr "" -#: ../../using/configure.rst:593 msgid "" "Use ThinLTO as the default optimization policy on Clang if the compiler " "accepts the flag." msgstr "" -#: ../../using/configure.rst:598 msgid "" "Enable usage of the `BOLT post-link binary optimizer `_ (disabled by default)." msgstr "" -#: ../../using/configure.rst:602 msgid "" "BOLT is part of the LLVM project but is not always included in their binary " "distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` are " "available." msgstr "" -#: ../../using/configure.rst:606 msgid "" "BOLT is still a fairly new project so this flag should be considered " "experimental for now. Because this tool operates on machine code its success " @@ -902,80 +720,66 @@ msgid "" "encouraged." msgstr "" -#: ../../using/configure.rst:614 msgid "" -"The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!" -"BOLT_APPLY_FLAGS` :program:`configure` variables can be defined to override " -"the default set of arguments for :program:`llvm-bolt` to instrument and " -"apply BOLT data to binaries, respectively." +"The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` :" +"program:`configure` variables can be defined to override the default set of " +"arguments for :program:`llvm-bolt` to instrument and apply BOLT data to " +"binaries, respectively." msgstr "" -#: ../../using/configure.rst:623 msgid "" "Arguments to ``llvm-bolt`` when creating a `BOLT optimized binary `_." msgstr "" -#: ../../using/configure.rst:630 msgid "Arguments to ``llvm-bolt`` when instrumenting binaries." msgstr "" -#: ../../using/configure.rst:636 msgid "" "Enable computed gotos in evaluation loop (enabled by default on supported " "compilers)." msgstr "" -#: ../../using/configure.rst:641 msgid "" -"Enable interpreters using tail calls in CPython. If enabled, enabling PGO " -"(:option:`--enable-optimizations`) is highly recommended. This option " +"Enable interpreters using tail calls in CPython. If enabled, enabling PGO (:" +"option:`--enable-optimizations`) is highly recommended. This option " "specifically requires a C compiler with proper tail call support, and the " "`preserve_none `_ calling convention. For example, Clang 19 and newer supports this " "feature." msgstr "" -#: ../../using/configure.rst:651 msgid "" "Disable the fast :ref:`mimalloc ` allocator (enabled by default)." msgstr "" -#: ../../using/configure.rst:654 ../../using/configure.rst:661 msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgstr "" -#: ../../using/configure.rst:658 msgid "" "Disable the specialized Python memory allocator :ref:`pymalloc ` " "(enabled by default)." msgstr "" -#: ../../using/configure.rst:665 msgid "" "Disable static documentation strings to reduce the memory footprint (enabled " "by default). Documentation strings defined in Python are not affected." msgstr "" -#: ../../using/configure.rst:668 msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgstr "" -#: ../../using/configure.rst:670 msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "" -#: ../../using/configure.rst:674 msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgstr "" -#: ../../using/configure.rst:678 msgid "" "Add ``-fstrict-overflow`` to the C compiler flags (by default we add ``-fno-" "strict-overflow`` instead)." msgstr "" -#: ../../using/configure.rst:683 msgid "" "Deactivate remote debugging support described in :pep:`768` (enabled by " "default). When this flag is provided the code that allows the interpreter to " @@ -985,73 +789,59 @@ msgid "" "executed." msgstr "" -#: ../../using/configure.rst:691 msgid "" -"This macro is defined by default, unless Python is configured " -"with :option:`--without-remote-debug`." +"This macro is defined by default, unless Python is configured with :option:" +"`--without-remote-debug`." msgstr "" -#: ../../using/configure.rst:694 msgid "" "Note that even if the macro is defined, remote debugging may not be " "available (for example, on an incompatible platform)." msgstr "" -#: ../../using/configure.rst:703 msgid "Python Debug Build" msgstr "" -#: ../../using/configure.rst:705 msgid "" "A debug build is Python built with the :option:`--with-pydebug` configure " "option." msgstr "" -#: ../../using/configure.rst:708 msgid "Effects of a debug build:" msgstr "" -#: ../../using/configure.rst:710 msgid "" "Display all warnings by default: the list of default warning filters is " "empty in the :mod:`warnings` module." msgstr "" -#: ../../using/configure.rst:712 msgid "Add ``d`` to :data:`sys.abiflags`." msgstr "" -#: ../../using/configure.rst:713 msgid "Add :func:`!sys.gettotalrefcount` function." msgstr "" -#: ../../using/configure.rst:714 msgid "Add :option:`-X showrefcount <-X>` command line option." msgstr "" -#: ../../using/configure.rst:715 msgid "" "Add :option:`-d` command line option and :envvar:`PYTHONDEBUG` environment " "variable to debug the parser." msgstr "" -#: ../../using/configure.rst:717 msgid "" "Add support for the ``__lltrace__`` variable: enable low-level tracing in " "the bytecode evaluation loop if the variable is defined." msgstr "" -#: ../../using/configure.rst:719 msgid "" "Install :ref:`debug hooks on memory allocators ` " "to detect buffer overflow and other memory errors." msgstr "" -#: ../../using/configure.rst:721 msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgstr "" -#: ../../using/configure.rst:722 msgid "" "Add runtime checks: code surrounded by ``#ifdef Py_DEBUG`` and ``#endif``. " "Enable ``assert(...)`` and ``_PyObject_ASSERT(...)`` assertions: don't set " @@ -1059,320 +849,252 @@ msgid "" "option). Main runtime checks:" msgstr "" -#: ../../using/configure.rst:727 msgid "Add sanity checks on the function arguments." msgstr "" -#: ../../using/configure.rst:728 msgid "" "Unicode and int objects are created with their memory filled with a pattern " "to detect usage of uninitialized objects." msgstr "" -#: ../../using/configure.rst:730 msgid "" "Ensure that functions which can clear or replace the current exception are " "not called with an exception raised." msgstr "" -#: ../../using/configure.rst:732 msgid "Check that deallocator functions don't change the current exception." msgstr "" -#: ../../using/configure.rst:733 msgid "" "The garbage collector (:func:`gc.collect` function) runs some basic checks " "on objects consistency." msgstr "" -#: ../../using/configure.rst:735 msgid "" "The :c:macro:`!Py_SAFE_DOWNCAST()` macro checks for integer underflow and " "overflow when downcasting from wide types to narrow types." msgstr "" -#: ../../using/configure.rst:738 msgid "" "See also the :ref:`Python Development Mode ` and the :option:`--" "with-trace-refs` configure option." msgstr "" -#: ../../using/configure.rst:741 msgid "" "Release builds and debug builds are now ABI compatible: defining the " -"``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see " -"the :option:`--with-trace-refs` option)." +"``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see the :" +"option:`--with-trace-refs` option)." msgstr "" -#: ../../using/configure.rst:748 msgid "Debug options" msgstr "" -#: ../../using/configure.rst:752 msgid "" ":ref:`Build Python in debug mode `: define the ``Py_DEBUG`` " "macro (disabled by default)." msgstr "" -#: ../../using/configure.rst:757 msgid "Enable tracing references for debugging purpose (disabled by default)." msgstr "" -#: ../../using/configure.rst:761 msgid "Define the ``Py_TRACE_REFS`` macro." msgstr "" -#: ../../using/configure.rst:762 msgid "Add :func:`sys.getobjects` function." msgstr "" -#: ../../using/configure.rst:763 msgid "Add :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" -#: ../../using/configure.rst:765 msgid "" "The :envvar:`PYTHONDUMPREFS` environment variable can be used to dump " "objects and reference counts still alive at Python exit." msgstr "" -#: ../../using/configure.rst:768 msgid ":ref:`Statically allocated objects ` are not traced." msgstr "" -#: ../../using/configure.rst:772 msgid "" "This build is now ABI compatible with release build and :ref:`debug build " "`." msgstr "" -#: ../../using/configure.rst:778 msgid "" "Build with C assertions enabled (default is no): ``assert(...);`` and " "``_PyObject_ASSERT(...);``." msgstr "" -#: ../../using/configure.rst:781 msgid "" "If set, the ``NDEBUG`` macro is not defined in the :envvar:`OPT` compiler " "variable." msgstr "" -#: ../../using/configure.rst:784 msgid "" "See also the :option:`--with-pydebug` option (:ref:`debug build `) which also enables assertions." msgstr "" -#: ../../using/configure.rst:791 msgid "Enable Valgrind support (default is no)." msgstr "" -#: ../../using/configure.rst:795 msgid "Enable DTrace support (default is no)." msgstr "" -#: ../../using/configure.rst:797 msgid "" "See :ref:`Instrumenting CPython with DTrace and SystemTap `." msgstr "" -#: ../../using/configure.rst:804 msgid "" "Enable AddressSanitizer memory error detector, ``asan`` (default is no). To " -"improve ASan detection capabilities you may also want to combine this " -"with :option:`--without-pymalloc` to disable the specialized small-object " +"improve ASan detection capabilities you may also want to combine this with :" +"option:`--without-pymalloc` to disable the specialized small-object " "allocator whose allocations are not tracked by ASan." msgstr "" -#: ../../using/configure.rst:813 msgid "" "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "" -#: ../../using/configure.rst:819 msgid "" "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` " "(default is no)." msgstr "" -#: ../../using/configure.rst:826 msgid "Enable ThreadSanitizer data race detector, ``tsan`` (default is no)." msgstr "" -#: ../../using/configure.rst:837 msgid "Enable building a shared Python library: ``libpython`` (default is no)." msgstr "" -#: ../../using/configure.rst:841 msgid "" "Do not build ``libpythonMAJOR.MINOR.a`` and do not install ``python.o`` " "(built and enabled by default)." msgstr "" -#: ../../using/configure.rst:848 msgid "Libraries options" msgstr "" -#: ../../using/configure.rst:852 msgid "Link against additional libraries (default is no)." msgstr "" -#: ../../using/configure.rst:856 msgid "" "Build the :mod:`!pyexpat` module using an installed ``expat`` library " "(default is no)." msgstr "" -#: ../../using/configure.rst:861 msgid "" "Build the ``_decimal`` extension module using an installed ``mpdecimal`` " "library, see the :mod:`decimal` module (default is yes)." msgstr "" -#: ../../using/configure.rst:866 msgid "Default to using the installed ``mpdecimal`` library." msgstr "" -#: ../../using/configure.rst:869 msgid "" "A copy of the ``mpdecimal`` library sources will no longer be distributed " "with Python 3.15." msgstr "" -#: ../../using/configure.rst:873 msgid ":option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`." msgstr "" -#: ../../using/configure.rst:877 msgid "Designate a backend library for the :mod:`readline` module." msgstr "" -#: ../../using/configure.rst:879 msgid "readline: Use readline as the backend." msgstr "" -#: ../../using/configure.rst:880 msgid "editline: Use editline as the backend." msgstr "" -#: ../../using/configure.rst:886 msgid "Don't build the :mod:`readline` module (built by default)." msgstr "" -#: ../../using/configure.rst:888 msgid "Don't define the ``HAVE_LIBREADLINE`` macro." msgstr "" -#: ../../using/configure.rst:894 msgid "" "Override ``libm`` math library to *STRING* (default is system-dependent)." msgstr "" -#: ../../using/configure.rst:898 msgid "Override ``libc`` C library to *STRING* (default is system-dependent)." msgstr "" -#: ../../using/configure.rst:902 msgid "Root of the OpenSSL directory." msgstr "" -#: ../../using/configure.rst:908 msgid "Set runtime library directory (rpath) for OpenSSL libraries:" msgstr "" -#: ../../using/configure.rst:910 msgid "``no`` (default): don't set rpath;" msgstr "" -#: ../../using/configure.rst:911 msgid "" "``auto``: auto-detect rpath from :option:`--with-openssl` and ``pkg-config``;" msgstr "" -#: ../../using/configure.rst:913 msgid "*DIR*: set an explicit rpath." msgstr "" -#: ../../using/configure.rst:919 msgid "Security Options" msgstr "" -#: ../../using/configure.rst:923 msgid "Select hash algorithm for use in ``Python/pyhash.c``:" msgstr "" -#: ../../using/configure.rst:925 msgid "``siphash13`` (default);" msgstr "" -#: ../../using/configure.rst:926 msgid "``siphash24``;" msgstr "" -#: ../../using/configure.rst:927 msgid "``fnv``." msgstr "" -#: ../../using/configure.rst:931 msgid "``siphash13`` is added and it is the new default." msgstr "" -#: ../../using/configure.rst:936 msgid "Built-in hash modules:" msgstr "" -#: ../../using/configure.rst:938 msgid "``md5``;" msgstr "" -#: ../../using/configure.rst:939 msgid "``sha1``;" msgstr "" -#: ../../using/configure.rst:940 msgid "``sha256``;" msgstr "" -#: ../../using/configure.rst:941 msgid "``sha512``;" msgstr "" -#: ../../using/configure.rst:942 msgid "``sha3`` (with shake);" msgstr "" -#: ../../using/configure.rst:943 msgid "``blake2``." msgstr "" -#: ../../using/configure.rst:949 msgid "Override the OpenSSL default cipher suites string:" msgstr "" -#: ../../using/configure.rst:951 msgid "``python`` (default): use Python's preferred selection;" msgstr "" -#: ../../using/configure.rst:952 msgid "``openssl``: leave OpenSSL's defaults untouched;" msgstr "" -#: ../../using/configure.rst:953 msgid "*STRING*: use a custom string" msgstr "" -#: ../../using/configure.rst:955 msgid "See the :mod:`ssl` module." msgstr "" -#: ../../using/configure.rst:961 msgid "" "The settings ``python`` and *STRING* also set TLS 1.2 as minimum protocol " "version." msgstr "" -#: ../../using/configure.rst:966 msgid "" "Disable compiler options that are `recommended by OpenSSF`_ for security " "reasons with no performance overhead. If this option is not enabled, CPython " @@ -1381,24 +1103,20 @@ msgid "" "listed below." msgstr "" -#: ../../using/configure.rst:970 msgid "" "The following compiler options are disabled with :option:`!--disable-safety`:" msgstr "" -#: ../../using/configure.rst:972 msgid "" "`-fstack-protector-strong`_: Enable run-time checks for stack-based buffer " "overflows." msgstr "" -#: ../../using/configure.rst:973 msgid "" "`-Wtrampolines`_: Enable warnings about trampolines that require executable " "stacks." msgstr "" -#: ../../using/configure.rst:983 msgid "" "Enable compiler options that are `recommended by OpenSSF`_ for security " "reasons which require overhead. If this option is not enabled, CPython will " @@ -1407,81 +1125,64 @@ msgid "" "listed below." msgstr "" -#: ../../using/configure.rst:987 msgid "" "The following compiler options are enabled with :option:`!--enable-slower-" "safety`:" msgstr "" -#: ../../using/configure.rst:989 msgid "" "`-D_FORTIFY_SOURCE=3`_: Fortify sources with compile- and run-time checks " "for unsafe libc usage and buffer overflows." msgstr "" -#: ../../using/configure.rst:997 msgid "macOS Options" msgstr "" -#: ../../using/configure.rst:999 msgid "See :source:`Mac/README.rst`." msgstr "" -#: ../../using/configure.rst:1004 msgid "" "Create a universal binary build. *SDKDIR* specifies which macOS SDK should " "be used to perform the build (default is no)." msgstr "" -#: ../../using/configure.rst:1010 msgid "" "Create a Python.framework rather than a traditional Unix install. Optional " "*INSTALLDIR* specifies the installation path (default is no)." msgstr "" -#: ../../using/configure.rst:1015 msgid "" "Specify the kind of universal binary that should be created. This option is " "only valid when :option:`--enable-universalsdk` is set." msgstr "" -#: ../../using/configure.rst:1018 msgid "Options:" msgstr "" -#: ../../using/configure.rst:1020 msgid "``universal2`` (x86-64 and arm64);" msgstr "" -#: ../../using/configure.rst:1021 msgid "``32-bit`` (PPC and i386);" msgstr "" -#: ../../using/configure.rst:1022 msgid "``64-bit`` (PPC64 and x86-64);" msgstr "" -#: ../../using/configure.rst:1023 msgid "``3-way`` (i386, PPC and x86-64);" msgstr "" -#: ../../using/configure.rst:1024 msgid "``intel`` (i386 and x86-64);" msgstr "" -#: ../../using/configure.rst:1025 msgid "``intel-32`` (i386);" msgstr "" -#: ../../using/configure.rst:1026 msgid "``intel-64`` (x86-64);" msgstr "" -#: ../../using/configure.rst:1027 msgid "``all`` (PPC, i386, PPC64 and x86-64)." msgstr "" -#: ../../using/configure.rst:1029 msgid "" "Note that values for this configuration item are *not* the same as the " "identifiers used for universal binary wheels on macOS. See the Python " @@ -1490,13 +1191,11 @@ msgid "" "platform-compatibility-tags/#macos>`_" msgstr "" -#: ../../using/configure.rst:1037 msgid "" -"Specify the name for the python framework on macOS only valid " -"when :option:`--enable-framework` is set (default: ``Python``)." +"Specify the name for the python framework on macOS only valid when :option:" +"`--enable-framework` is set (default: ``Python``)." msgstr "" -#: ../../using/configure.rst:1043 msgid "" "The Python standard library contains strings that are known to trigger " "automated inspection tool errors when submitted for distribution by the " @@ -1505,29 +1204,23 @@ msgid "" "can also be specified. This option is disabled by default." msgstr "" -#: ../../using/configure.rst:1052 msgid "iOS Options" msgstr "" -#: ../../using/configure.rst:1054 msgid "See :source:`iOS/README.rst`." msgstr "" -#: ../../using/configure.rst:1058 msgid "" "Create a Python.framework. Unlike macOS, the *INSTALLDIR* argument " "specifying the installation path is mandatory." msgstr "" -#: ../../using/configure.rst:1063 msgid "Specify the name for the framework (default: ``Python``)." msgstr "" -#: ../../using/configure.rst:1067 msgid "Cross Compiling Options" msgstr "" -#: ../../using/configure.rst:1069 msgid "" "Cross compiling, also known as cross building, can be used to build Python " "for another CPU architecture or platform. Cross compiling requires a Python " @@ -1535,28 +1228,22 @@ msgid "" "match the version of the cross compiled host Python." msgstr "" -#: ../../using/configure.rst:1076 msgid "" "configure for building on BUILD, usually guessed by :program:`config.guess`." msgstr "" -#: ../../using/configure.rst:1080 msgid "cross-compile to build programs to run on HOST (target platform)" msgstr "" -#: ../../using/configure.rst:1084 msgid "path to build ``python`` binary for cross compiling" msgstr "" -#: ../../using/configure.rst:1090 msgid "An environment variable that points to a file with configure overrides." msgstr "" -#: ../../using/configure.rst:1092 msgid "Example *config.site* file:" msgstr "" -#: ../../using/configure.rst:1094 msgid "" "# config.site-aarch64\n" "ac_cv_buggy_getaddrinfo=no\n" @@ -1564,15 +1251,12 @@ msgid "" "ac_cv_file__dev_ptc=no" msgstr "" -#: ../../using/configure.rst:1103 msgid "Program to run CPython for the host platform for cross-compilation." msgstr "" -#: ../../using/configure.rst:1108 msgid "Cross compiling example::" msgstr "" -#: ../../using/configure.rst:1110 msgid "" "CONFIG_SITE=config.site-aarch64 ../configure \\\n" " --build=x86_64-pc-linux-gnu \\\n" @@ -1580,64 +1264,50 @@ msgid "" " --with-build-python=../x86_64/python" msgstr "" -#: ../../using/configure.rst:1117 msgid "Python Build System" msgstr "" -#: ../../using/configure.rst:1120 msgid "Main files of the build system" msgstr "" -#: ../../using/configure.rst:1122 msgid ":file:`configure.ac` => :file:`configure`;" msgstr "" -#: ../../using/configure.rst:1123 msgid "" ":file:`Makefile.pre.in` => :file:`Makefile` (created by :file:`configure`);" msgstr "" -#: ../../using/configure.rst:1124 msgid ":file:`pyconfig.h` (created by :file:`configure`);" msgstr "" -#: ../../using/configure.rst:1125 msgid "" -":file:`Modules/Setup`: C extensions built by the Makefile " -"using :file:`Module/makesetup` shell script;" +":file:`Modules/Setup`: C extensions built by the Makefile using :file:" +"`Module/makesetup` shell script;" msgstr "" -#: ../../using/configure.rst:1129 msgid "Main build steps" msgstr "" -#: ../../using/configure.rst:1131 msgid "C files (``.c``) are built as object files (``.o``)." msgstr "" -#: ../../using/configure.rst:1132 msgid "A static ``libpython`` library (``.a``) is created from objects files." msgstr "" -#: ../../using/configure.rst:1133 msgid "" "``python.o`` and the static ``libpython`` library are linked into the final " "``python`` program." msgstr "" -#: ../../using/configure.rst:1135 msgid "C extensions are built by the Makefile (see :file:`Modules/Setup`)." msgstr "" -#: ../../using/configure.rst:1138 msgid "Main Makefile targets" msgstr "" -#: ../../using/configure.rst:1141 msgid "make" msgstr "" -#: ../../using/configure.rst:1143 msgid "" "For the most part, when rebuilding after editing some code or refreshing " "your checkout from upstream, all you need to do is execute ``make``, which " @@ -1648,22 +1318,18 @@ msgid "" "all`` will build. The three choices are:" msgstr "" -#: ../../using/configure.rst:1152 msgid "``profile-opt`` (configured with ``--enable-optimizations``)" msgstr "" -#: ../../using/configure.rst:1153 msgid "" "``build_wasm`` (chosen if the host platform matches ``wasm32-wasi*`` or " "``wasm32-emscripten``)" msgstr "" -#: ../../using/configure.rst:1155 msgid "" "``build_all`` (configured without explicitly using either of the others)" msgstr "" -#: ../../using/configure.rst:1157 msgid "" "Depending on the most recent source file changes, Make will rebuild any " "targets (object files and executables) deemed out-of-date, including running " @@ -1676,11 +1342,9 @@ msgid "" "problems, at the expense of longer build times." msgstr "" -#: ../../using/configure.rst:1170 msgid "make platform" msgstr "" -#: ../../using/configure.rst:1172 msgid "" "Build the ``python`` program, but don't build the standard library extension " "modules. This generates a file named ``platform`` which contains a single " @@ -1688,91 +1352,72 @@ msgid "" "arm64-3.12`` or ``linux-x86_64-3.13``." msgstr "" -#: ../../using/configure.rst:1179 msgid "make profile-opt" msgstr "" -#: ../../using/configure.rst:1181 msgid "" "Build Python using profile-guided optimization (PGO). You can use the " "configure :option:`--enable-optimizations` option to make this the default " "target of the ``make`` command (``make all`` or just ``make``)." msgstr "" -#: ../../using/configure.rst:1189 msgid "make clean" msgstr "" -#: ../../using/configure.rst:1191 msgid "Remove built files." msgstr "" -#: ../../using/configure.rst:1195 msgid "make distclean" msgstr "" -#: ../../using/configure.rst:1197 msgid "" "In addition to the work done by ``make clean``, remove files created by the " "configure script. ``configure`` will have to be run before building again. " "[#]_" msgstr "" -#: ../../using/configure.rst:1203 msgid "make install" msgstr "" -#: ../../using/configure.rst:1205 msgid "Build the ``all`` target and install Python." msgstr "" -#: ../../using/configure.rst:1209 msgid "make test" msgstr "" -#: ../../using/configure.rst:1211 msgid "" "Build the ``all`` target and run the Python test suite with the ``--fast-" "ci`` option without GUI tests. Variables:" msgstr "" -#: ../../using/configure.rst:1214 msgid "``TESTOPTS``: additional regrtest command-line options." msgstr "" -#: ../../using/configure.rst:1215 msgid "``TESTPYTHONOPTS``: additional Python command-line options." msgstr "" -#: ../../using/configure.rst:1216 msgid "``TESTTIMEOUT``: timeout in seconds (default: 10 minutes)." msgstr "" -#: ../../using/configure.rst:1220 msgid "make ci" msgstr "" -#: ../../using/configure.rst:1222 msgid "" "This is similar to ``make test``, but uses the ``-ugui`` to also run GUI " "tests." msgstr "" -#: ../../using/configure.rst:1228 msgid "make buildbottest" msgstr "" -#: ../../using/configure.rst:1230 msgid "" "This is similar to ``make test``, but uses the ``--slow-ci`` option and " "default timeout of 20 minutes, instead of ``--fast-ci`` option." msgstr "" -#: ../../using/configure.rst:1235 msgid "make regen-all" msgstr "" -#: ../../using/configure.rst:1237 msgid "" "Regenerate (almost) all generated files. These include (but are not limited " "to) bytecode cases, and parser generator file. ``make regen-stdlib-module-" @@ -1780,18 +1425,15 @@ msgid "" "files <#generated-files>`_." msgstr "" -#: ../../using/configure.rst:1244 msgid "C extensions" msgstr "" -#: ../../using/configure.rst:1246 msgid "" "Some C extensions are built as built-in modules, like the ``sys`` module. " "They are built with the ``Py_BUILD_CORE_BUILTIN`` macro defined. Built-in " "modules have no ``__file__`` attribute:" msgstr "" -#: ../../using/configure.rst:1250 msgid "" ">>> import sys\n" ">>> sys\n" @@ -1802,24 +1444,21 @@ msgid "" "AttributeError: module 'sys' has no attribute '__file__'" msgstr "" -#: ../../using/configure.rst:1260 msgid "" "Other C extensions are built as dynamic libraries, like the ``_asyncio`` " "module. They are built with the ``Py_BUILD_CORE_MODULE`` macro defined. " "Example on Linux x86-64:" msgstr "" -#: ../../using/configure.rst:1264 msgid "" ">>> import _asyncio\n" ">>> _asyncio\n" -"\n" +"\n" ">>> _asyncio.__file__\n" "'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'" msgstr "" -#: ../../using/configure.rst:1272 msgid "" ":file:`Modules/Setup` is used to generate Makefile targets to build C " "extensions. At the beginning of the files, C extensions are built as built-" @@ -1827,307 +1466,243 @@ msgid "" "dynamic libraries." msgstr "" -#: ../../using/configure.rst:1276 msgid "" -"The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` " -"and :c:macro:`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are " -"defined differently depending if the ``Py_BUILD_CORE_MODULE`` macro is " -"defined:" +"The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` and :c:macro:" +"`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are defined differently " +"depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" msgstr "" -#: ../../using/configure.rst:1280 msgid "Use ``Py_EXPORTED_SYMBOL`` if the ``Py_BUILD_CORE_MODULE`` is defined" msgstr "" -#: ../../using/configure.rst:1281 msgid "Use ``Py_IMPORTED_SYMBOL`` otherwise." msgstr "" -#: ../../using/configure.rst:1283 msgid "" "If the ``Py_BUILD_CORE_BUILTIN`` macro is used by mistake on a C extension " "built as a shared library, its :samp:`PyInit_{xxx}()` function is not " "exported, causing an :exc:`ImportError` on import." msgstr "" -#: ../../using/configure.rst:1289 msgid "Compiler and linker flags" msgstr "" -#: ../../using/configure.rst:1291 msgid "" "Options set by the ``./configure`` script and environment variables and used " "by ``Makefile``." msgstr "" -#: ../../using/configure.rst:1295 msgid "Preprocessor flags" msgstr "" -#: ../../using/configure.rst:1299 msgid "" "Value of :envvar:`CPPFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1305 msgid "" "(Objective) C/C++ preprocessor flags, e.g. :samp:`-I{include_dir}` if you " "have headers in a nonstandard directory *include_dir*." msgstr "" -#: ../../using/configure.rst:1308 ../../using/configure.rst:1498 msgid "" "Both :envvar:`CPPFLAGS` and :envvar:`LDFLAGS` need to contain the shell's " "value to be able to build extension modules using the directories specified " "in the environment variables." msgstr "" -#: ../../using/configure.rst:1318 msgid "" "Extra preprocessor flags added for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1320 msgid "" -"Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $" -"(CPPFLAGS)``." +"Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " +"$(CPPFLAGS)``." msgstr "" -#: ../../using/configure.rst:1325 msgid "Compiler flags" msgstr "" -#: ../../using/configure.rst:1331 msgid "Example: ``gcc -pthread``." msgstr "" -#: ../../using/configure.rst:1335 msgid "C++ compiler command." msgstr "" -#: ../../using/configure.rst:1337 msgid "Example: ``g++ -pthread``." msgstr "" -#: ../../using/configure.rst:1345 msgid "" ":envvar:`CFLAGS_NODIST` is used for building the interpreter and stdlib C " -"extensions. Use it when a compiler flag should *not* be part " -"of :envvar:`CFLAGS` once Python is installed (:gh:`65320`)." +"extensions. Use it when a compiler flag should *not* be part of :envvar:" +"`CFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: ../../using/configure.rst:1349 msgid "In particular, :envvar:`CFLAGS` should not contain:" msgstr "" -#: ../../using/configure.rst:1351 msgid "" "the compiler flag ``-I`` (for setting the search path for include files). " -"The ``-I`` flags are processed from left to right, and any flags " -"in :envvar:`CFLAGS` would take precedence over user- and package-supplied ``-" -"I`` flags." +"The ``-I`` flags are processed from left to right, and any flags in :envvar:" +"`CFLAGS` would take precedence over user- and package-supplied ``-I`` flags." msgstr "" -#: ../../using/configure.rst:1356 msgid "" "hardening flags such as ``-Werror`` because distributions cannot control " "whether packages installed by users conform to such heightened standards." msgstr "" -#: ../../using/configure.rst:1364 msgid "" "Options passed to the :mod:`compileall` command line when building PYC files " "in ``make install``. Default: ``-j0``." msgstr "" -#: ../../using/configure.rst:1371 msgid "Extra C compiler flags." msgstr "" -#: ../../using/configure.rst:1375 msgid "" "Value of :envvar:`CFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1382 msgid "" "Value of :envvar:`CFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: ../../using/configure.rst:1389 msgid "Base compiler flags." msgstr "" -#: ../../using/configure.rst:1393 msgid "Optimization flags." msgstr "" -#: ../../using/configure.rst:1397 msgid "Strict or non-strict aliasing flags used to compile ``Python/dtoa.c``." msgstr "" -#: ../../using/configure.rst:1403 msgid "Compiler flags used to build a shared library." msgstr "" -#: ../../using/configure.rst:1405 msgid "For example, ``-fPIC`` is used on Linux and on BSD." msgstr "" -#: ../../using/configure.rst:1409 msgid "Extra C flags added for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1411 msgid "" "Default: ``$(CCSHARED)`` when :option:`--enable-shared` is used, or an empty " "string otherwise." msgstr "" -#: ../../using/configure.rst:1416 msgid "" -"Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $" -"(EXTRA_CFLAGS)``." +"Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " +"$(EXTRA_CFLAGS)``." msgstr "" -#: ../../using/configure.rst:1420 msgid "" "Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/" "internal``." msgstr "" -#: ../../using/configure.rst:1426 msgid "C flags used for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1428 msgid "" -"Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $" -"(CFLAGSFORSHARED)``." +"Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " +"$(CFLAGSFORSHARED)``." msgstr "" -#: ../../using/configure.rst:1434 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." msgstr "" -#: ../../using/configure.rst:1440 msgid "" "Compiler flags to build a standard library extension module as a built-in " "module, like the :mod:`posix` module." msgstr "" -#: ../../using/configure.rst:1443 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." msgstr "" -#: ../../using/configure.rst:1449 msgid "Purify command. Purify is a memory debugger program." msgstr "" -#: ../../using/configure.rst:1451 msgid "Default: empty string (not used)." msgstr "" -#: ../../using/configure.rst:1455 msgid "Linker flags" msgstr "" -#: ../../using/configure.rst:1459 msgid "" "Linker command used to build programs like ``python`` and ``_testembed``." msgstr "" -#: ../../using/configure.rst:1461 msgid "Default: ``$(PURIFY) $(CC)``." msgstr "" -#: ../../using/configure.rst:1465 msgid "" "Value of :envvar:`LDFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1467 msgid "" "Avoid assigning :envvar:`CFLAGS`, :envvar:`LDFLAGS`, etc. so users can use " "them on the command line to append to these values without stomping the pre-" "set values." msgstr "" -#: ../../using/configure.rst:1475 msgid "" -":envvar:`LDFLAGS_NODIST` is used in the same manner " -"as :envvar:`CFLAGS_NODIST`. Use it when a linker flag should *not* be part " -"of :envvar:`LDFLAGS` once Python is installed (:gh:`65320`)." +":envvar:`LDFLAGS_NODIST` is used in the same manner as :envvar:" +"`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of :envvar:" +"`LDFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: ../../using/configure.rst:1479 msgid "In particular, :envvar:`LDFLAGS` should not contain:" msgstr "" -#: ../../using/configure.rst:1481 msgid "" "the compiler flag ``-L`` (for setting the search path for libraries). The ``-" -"L`` flags are processed from left to right, and any flags " -"in :envvar:`LDFLAGS` would take precedence over user- and package-supplied " -"``-L`` flags." +"L`` flags are processed from left to right, and any flags in :envvar:" +"`LDFLAGS` would take precedence over user- and package-supplied ``-L`` flags." msgstr "" -#: ../../using/configure.rst:1488 msgid "" "Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: ../../using/configure.rst:1495 msgid "" "Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a " "nonstandard directory *lib_dir*." msgstr "" -#: ../../using/configure.rst:1504 msgid "" "Linker flags to pass libraries to the linker when linking the Python " "executable." msgstr "" -#: ../../using/configure.rst:1507 msgid "Example: ``-lrt``." msgstr "" -#: ../../using/configure.rst:1511 msgid "Command to build a shared library." msgstr "" -#: ../../using/configure.rst:1513 msgid "Default: ``@LDSHARED@ $(PY_LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1517 msgid "Command to build ``libpython`` shared library." msgstr "" -#: ../../using/configure.rst:1519 msgid "Default: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1523 msgid "Default: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1527 msgid "Default: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." msgstr "" -#: ../../using/configure.rst:1533 msgid "Linker flags used for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1539 msgid "Footnotes" -msgstr "Lábjegyzet" +msgstr "" -#: ../../using/configure.rst:1540 msgid "" "``git clean -fdx`` is an even more extreme way to \"clean\" your checkout. " "It removes all files not known to Git. When bug hunting using ``git " diff --git a/using/editors.po b/using/editors.po index 110a205..5a409b2 100644 --- a/using/editors.po +++ b/using/editors.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,22 +18,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/editors.rst:7 msgid "Editors and IDEs" msgstr "" -#: ../../using/editors.rst:9 msgid "" "There are a number of IDEs that support Python programming language. Many " "editors and IDEs provide syntax highlighting, debugging tools, and :pep:`8` " "checks." msgstr "" -#: ../../using/editors.rst:14 msgid "IDLE --- Python editor and shell" msgstr "" -#: ../../using/editors.rst:16 msgid "" "IDLE is Python’s Integrated Development and Learning Environment and is " "generally bundled with Python installs. If you are on Linux and do not have " @@ -42,15 +38,13 @@ msgid "" "`." msgstr "" -#: ../../using/editors.rst:22 msgid "Other Editors and IDEs" msgstr "" -#: ../../using/editors.rst:24 msgid "" "Python's community wiki has information submitted by the community on " "Editors and IDEs. Please go to `Python Editors `_ and `Integrated Development Environments `_ for a " -"comprehensive list." +"PythonEditors>`_ and `Integrated Development Environments `_ for a comprehensive " +"list." msgstr "" diff --git a/using/index.po b/using/index.po index 1ccc9a3..936d920 100644 --- a/using/index.po +++ b/using/index.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/index.rst:5 msgid "Python Setup and Usage" msgstr "" -#: ../../using/index.rst:8 msgid "" "This part of the documentation is devoted to general information on the " "setup of the Python environment on different platforms, the invocation of " diff --git a/using/ios.po b/using/ios.po index 556e3e6..43e3830 100644 --- a/using/ios.po +++ b/using/ios.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,45 +18,38 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/ios.rst:5 msgid "Using Python on iOS" msgstr "" -#: ../../using/ios.rst:0 msgid "Authors" msgstr "" -#: ../../using/ios.rst:8 msgid "Russell Keith-Magee (2024-03)" msgstr "" -#: ../../using/ios.rst:10 msgid "" "Python on iOS is unlike Python on desktop platforms. On a desktop platform, " "Python is generally installed as a system resource that can be used by any " -"user of that computer. Users then interact with Python by running " -"a :program:`python` executable and entering commands at an interactive " -"prompt, or by running a Python script." +"user of that computer. Users then interact with Python by running a :program:" +"`python` executable and entering commands at an interactive prompt, or by " +"running a Python script." msgstr "" -#: ../../using/ios.rst:16 msgid "" "On iOS, there is no concept of installing as a system resource. The only " "unit of software distribution is an \"app\". There is also no console where " "you could run a :program:`python` executable, or interact with a Python REPL." msgstr "" -#: ../../using/ios.rst:20 msgid "" "As a result, the only way you can use Python on iOS is in embedded mode - " "that is, by writing a native iOS application, and embedding a Python " -"interpreter using ``libPython``, and invoking Python code using " -"the :ref:`Python embedding API `. The full Python interpreter, " -"the standard library, and all your Python code is then packaged as a " -"standalone bundle that can be distributed via the iOS App Store." +"interpreter using ``libPython``, and invoking Python code using the :ref:" +"`Python embedding API `. The full Python interpreter, the " +"standard library, and all your Python code is then packaged as a standalone " +"bundle that can be distributed via the iOS App Store." msgstr "" -#: ../../using/ios.rst:27 msgid "" "If you're looking to experiment for the first time with writing an iOS app " "in Python, projects such as `BeeWare `__ and `Kivy " @@ -65,37 +58,31 @@ msgid "" "project running, so you only need to deal with the Python code itself." msgstr "" -#: ../../using/ios.rst:34 msgid "Python at runtime on iOS" msgstr "" -#: ../../using/ios.rst:37 msgid "iOS version compatibility" msgstr "" -#: ../../using/ios.rst:39 msgid "" -"The minimum supported iOS version is specified at compile time, using " -"the :option:`--host` option to ``configure``. By default, when compiled for " -"iOS, Python will be compiled with a minimum supported iOS version of 13.0. " -"To use a different minimum iOS version, provide the version number as part " -"of the :option:`!--host` argument - for example, ``--host=arm64-apple-" -"ios15.4-simulator`` would compile an ARM64 simulator build with a deployment " -"target of 15.4." +"The minimum supported iOS version is specified at compile time, using the :" +"option:`--host` option to ``configure``. By default, when compiled for iOS, " +"Python will be compiled with a minimum supported iOS version of 13.0. To use " +"a different minimum iOS version, provide the version number as part of the :" +"option:`!--host` argument - for example, ``--host=arm64-apple-ios15.4-" +"simulator`` would compile an ARM64 simulator build with a deployment target " +"of 15.4." msgstr "" -#: ../../using/ios.rst:48 msgid "Platform identification" msgstr "" -#: ../../using/ios.rst:50 msgid "" "When executing on iOS, ``sys.platform`` will report as ``ios``. This value " "will be returned on an iPhone or iPad, regardless of whether the app is " "running on the simulator or a physical device." msgstr "" -#: ../../using/ios.rst:54 msgid "" "Information about the specific runtime environment, including the iOS " "version, device model, and whether the device is a simulator, can be " @@ -103,28 +90,23 @@ msgid "" "``iOS`` or ``iPadOS``, depending on the device." msgstr "" -#: ../../using/ios.rst:59 msgid "" ":func:`os.uname` reports kernel-level details; it will report a name of " "``Darwin``." msgstr "" -#: ../../using/ios.rst:63 msgid "Standard library availability" msgstr "" -#: ../../using/ios.rst:65 msgid "" "The Python standard library has some notable omissions and restrictions on " "iOS. See the :ref:`API availability guide for iOS ` for " "details." msgstr "" -#: ../../using/ios.rst:70 msgid "Binary extension modules" msgstr "" -#: ../../using/ios.rst:72 msgid "" "One notable difference about iOS as a platform is that App Store " "distribution imposes hard requirements on the packaging of an application. " @@ -132,7 +114,6 @@ msgid "" "distributed." msgstr "" -#: ../../using/ios.rst:76 msgid "" "The iOS App Store requires that *all* binary modules in an iOS app must be " "dynamic libraries, contained in a framework with appropriate metadata, " @@ -141,18 +122,16 @@ msgid "" "outside the ``Frameworks`` folder." msgstr "" -#: ../../using/ios.rst:82 msgid "" "This conflicts with the usual Python approach for distributing binaries, " "which allows a binary extension module to be loaded from any location on " "``sys.path``. To ensure compliance with App Store policies, an iOS project " "must post-process any Python packages, converting ``.so`` binary modules " "into individual standalone frameworks with appropriate metadata and signing. " -"For details on how to perform this post-processing, see the guide " -"for :ref:`adding Python to your project `." +"For details on how to perform this post-processing, see the guide for :ref:" +"`adding Python to your project `." msgstr "" -#: ../../using/ios.rst:90 msgid "" "To help Python discover binaries in their new location, the original ``.so`` " "file on ``sys.path`` is replaced with a ``.fwork`` file. This file is a text " @@ -162,38 +141,33 @@ msgid "" "``.fwork`` file, relative to the app bundle." msgstr "" -#: ../../using/ios.rst:97 msgid "" "For example, consider the case of an import ``from foo.bar import _whiz``, " "where ``_whiz`` is implemented with the binary module ``sources/foo/bar/" -"_whiz.abi3.so``, with ``sources`` being the location registered on " -"``sys.path``, relative to the application bundle. This module *must* be " +"_whiz.abi3.so``, with ``sources`` being the location registered on ``sys." +"path``, relative to the application bundle. This module *must* be " "distributed as ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz`` " "(creating the framework name from the full import path of the module), with " "an ``Info.plist`` file in the ``.framework`` directory identifying the " "binary as a framework. The ``foo.bar._whiz`` module would be represented in " "the original location with a ``sources/foo/bar/_whiz.abi3.fwork`` marker " "file, containing the path ``Frameworks/foo.bar._whiz/foo.bar._whiz``. The " -"framework would also contain ``Frameworks/foo.bar._whiz.framework/" -"foo.bar._whiz.origin``, containing the path to the ``.fwork`` file." +"framework would also contain ``Frameworks/foo.bar._whiz.framework/foo.bar." +"_whiz.origin``, containing the path to the ``.fwork`` file." msgstr "" -#: ../../using/ios.rst:110 msgid "" -"When running on iOS, the Python interpreter will install " -"an :class:`~importlib.machinery.AppleFrameworkLoader` that is able to read " -"and import ``.fwork`` files. Once imported, the ``__file__`` attribute of " -"the binary module will report as the location of the ``.fwork`` file. " -"However, the :class:`~importlib.machinery.ModuleSpec` for the loaded module " -"will report the ``origin`` as the location of the binary in the framework " -"folder." +"When running on iOS, the Python interpreter will install an :class:" +"`~importlib.machinery.AppleFrameworkLoader` that is able to read and import " +"``.fwork`` files. Once imported, the ``__file__`` attribute of the binary " +"module will report as the location of the ``.fwork`` file. However, the :" +"class:`~importlib.machinery.ModuleSpec` for the loaded module will report " +"the ``origin`` as the location of the binary in the framework folder." msgstr "" -#: ../../using/ios.rst:118 msgid "Compiler stub binaries" msgstr "" -#: ../../using/ios.rst:120 msgid "" "Xcode doesn't expose explicit compilers for iOS; instead, it uses an " "``xcrun`` script that resolves to a full compiler path (e.g., ``xcrun --sdk " @@ -201,13 +175,11 @@ msgid "" "this script poses two problems:" msgstr "" -#: ../../using/ios.rst:125 msgid "" "The output of ``xcrun`` includes paths that are machine specific, resulting " "in a sysconfig module that cannot be shared between users; and" msgstr "" -#: ../../using/ios.rst:128 msgid "" "It results in ``CC``/``CPP``/``LD``/``AR`` definitions that include spaces. " "There is a lot of C ecosystem tooling that assumes that you can split a " @@ -215,7 +187,6 @@ msgid "" "this isn't the case when using ``xcrun``." msgstr "" -#: ../../using/ios.rst:133 msgid "" "To avoid these problems, Python provided stubs for these tools. These stubs " "are shell script wrappers around the underingly ``xcrun`` tools, distributed " @@ -227,15 +198,12 @@ msgid "" "modules for iOS, you should ensure these stub binaries are on your path." msgstr "" -#: ../../using/ios.rst:143 msgid "Installing Python on iOS" msgstr "" -#: ../../using/ios.rst:146 msgid "Tools for building iOS apps" msgstr "" -#: ../../using/ios.rst:148 msgid "" "Building for iOS requires the use of Apple's Xcode tooling. It is strongly " "recommended that you use the most recent stable release of Xcode. This will " @@ -245,7 +213,6 @@ msgid "" "*full* Xcode install." msgstr "" -#: ../../using/ios.rst:155 msgid "" "If you want to run your code on the iOS simulator, you'll also need to " "install an iOS Simulator Platform. You should be prompted to select an iOS " @@ -254,11 +221,9 @@ msgid "" "Settings panel." msgstr "" -#: ../../using/ios.rst:163 msgid "Adding Python to an iOS project" msgstr "" -#: ../../using/ios.rst:165 msgid "" "Python can be added to any iOS project, using either Swift or Objective C. " "The following examples will use Objective C; if you are using Swift, you may " @@ -266,20 +231,17 @@ msgid "" "be helpful." msgstr "" -#: ../../using/ios.rst:170 msgid "To add Python to an iOS Xcode project:" msgstr "" -#: ../../using/ios.rst:172 msgid "" -"Build or obtain a Python ``XCFramework``. See the instructions " -"in :source:`iOS/README.rst` (in the CPython source distribution) for details " -"on how to build a Python ``XCFramework``. At a minimum, you will need a " -"build that supports ``arm64-apple-ios``, plus one of either ``arm64-apple-" -"ios-simulator`` or ``x86_64-apple-ios-simulator``." +"Build or obtain a Python ``XCFramework``. See the instructions in :source:" +"`iOS/README.rst` (in the CPython source distribution) for details on how to " +"build a Python ``XCFramework``. At a minimum, you will need a build that " +"supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-" +"simulator`` or ``x86_64-apple-ios-simulator``." msgstr "" -#: ../../using/ios.rst:178 msgid "" "Drag the ``XCframework`` into your iOS project. In the following " "instructions, we'll assume you've dropped the ``XCframework`` into the root " @@ -287,13 +249,11 @@ msgid "" "adjusting paths as needed." msgstr "" -#: ../../using/ios.rst:183 msgid "" "Drag the ``iOS/Resources/dylib-Info-template.plist`` file into your project, " "and ensure it is associated with the app target." msgstr "" -#: ../../using/ios.rst:186 msgid "" "Add your application code as a folder in your Xcode project. In the " "following instructions, we'll assume that your user code is in a folder " @@ -302,56 +262,44 @@ msgid "" "app target." msgstr "" -#: ../../using/ios.rst:192 msgid "" "Select the app target by selecting the root node of your Xcode project, then " "the target name in the sidebar that appears." msgstr "" -#: ../../using/ios.rst:195 msgid "" "In the \"General\" settings, under \"Frameworks, Libraries and Embedded " "Content\", add ``Python.xcframework``, with \"Embed & Sign\" selected." msgstr "" -#: ../../using/ios.rst:198 msgid "In the \"Build Settings\" tab, modify the following:" msgstr "" -#: ../../using/ios.rst:200 msgid "Build Options" msgstr "" -#: ../../using/ios.rst:202 msgid "User Script Sandboxing: No" msgstr "" -#: ../../using/ios.rst:203 msgid "Enable Testability: Yes" msgstr "" -#: ../../using/ios.rst:205 msgid "Search Paths" msgstr "" -#: ../../using/ios.rst:207 msgid "Framework Search Paths: ``$(PROJECT_DIR)``" msgstr "" -#: ../../using/ios.rst:208 msgid "" "Header Search Paths: ``\"$(BUILT_PRODUCTS_DIR)/Python.framework/Headers\"``" msgstr "" -#: ../../using/ios.rst:210 msgid "Apple Clang - Warnings - All languages" msgstr "" -#: ../../using/ios.rst:212 msgid "Quoted Include In Framework Header: No" msgstr "" -#: ../../using/ios.rst:214 msgid "" "Add a build step that copies the Python standard library into your app. In " "the \"Build Phases\" tab, add a new \"Run Script\" build step *before* the " @@ -360,7 +308,6 @@ msgid "" "the \"Based on dependency analysis\" checkbox, and set the script content to:" msgstr "" -#: ../../using/ios.rst:220 msgid "" "set -e\n" "\n" @@ -376,13 +323,11 @@ msgid "" "fi" msgstr "" -#: ../../using/ios.rst:233 msgid "" "Note that the name of the simulator \"slice\" in the XCframework may be " "different, depending the CPU architectures your ``XCFramework`` supports." msgstr "" -#: ../../using/ios.rst:236 msgid "" "Add a second build step that processes the binary extension modules in the " "standard library into \"Framework\" format. Add a \"Run Script\" build step " @@ -391,7 +336,6 @@ msgid "" "with the following script content:" msgstr "" -#: ../../using/ios.rst:242 msgid "" "set -e\n" "\n" @@ -451,77 +395,63 @@ msgid "" " echo \"Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME " "($EXPANDED_CODE_SIGN_IDENTITY)...\"\n" " find \"$CODESIGNING_FOLDER_PATH/Frameworks\" -name \"*.framework\" -exec /" -"usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" $" -"{OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-" +"usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" " +"${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-" "metadata=identifier,entitlements,flags --generate-entitlement-der \"{}\" \\;" msgstr "" -#: ../../using/ios.rst:292 msgid "" "Add Objective C code to initialize and use a Python interpreter in embedded " "mode. You should ensure that:" msgstr "" -#: ../../using/ios.rst:295 msgid "UTF-8 mode (:c:member:`PyPreConfig.utf8_mode`) is *enabled*;" msgstr "" -#: ../../using/ios.rst:296 msgid "Buffered stdio (:c:member:`PyConfig.buffered_stdio`) is *disabled*;" msgstr "" -#: ../../using/ios.rst:297 msgid "Writing bytecode (:c:member:`PyConfig.write_bytecode`) is *disabled*;" msgstr "" -#: ../../using/ios.rst:298 msgid "" "Signal handlers (:c:member:`PyConfig.install_signal_handlers`) are *enabled*;" msgstr "" -#: ../../using/ios.rst:299 msgid "" "System logging (:c:member:`PyConfig.use_system_logger`) is *enabled* " "(optional, but strongly recommended; this is enabled by default);" msgstr "" -#: ../../using/ios.rst:301 msgid "" ":envvar:`PYTHONHOME` for the interpreter is configured to point at the " "``python`` subfolder of your app's bundle; and" msgstr "" -#: ../../using/ios.rst:303 msgid "The :envvar:`PYTHONPATH` for the interpreter includes:" msgstr "" -#: ../../using/ios.rst:305 msgid "the ``python/lib/python3.X`` subfolder of your app's bundle," msgstr "" -#: ../../using/ios.rst:306 msgid "" "the ``python/lib/python3.X/lib-dynload`` subfolder of your app's bundle, and" msgstr "" -#: ../../using/ios.rst:307 msgid "the ``app`` subfolder of your app's bundle" msgstr "" -#: ../../using/ios.rst:309 msgid "" "Your app's bundle location can be determined using ``[[NSBundle mainBundle] " "resourcePath]``." msgstr "" -#: ../../using/ios.rst:312 msgid "" "Steps 8, 9 and 10 of these instructions assume that you have a single folder " "of pure Python application code, named ``app``. If you have third-party " "binary modules in your app, some additional steps will be required:" msgstr "" -#: ../../using/ios.rst:316 msgid "" "You need to ensure that any folders containing third-party binaries are " "either associated with the app target, or copied in as part of step 8. Step " @@ -530,33 +460,28 @@ msgid "" "building an app targeting the simulator)." msgstr "" -#: ../../using/ios.rst:322 msgid "" "Any folders that contain third-party binaries must be processed into " "framework form by step 9. The invocation of ``install_dylib`` that processes " "the ``lib-dynload`` folder can be copied and adapted for this purpose." msgstr "" -#: ../../using/ios.rst:326 msgid "" "If you're using a separate folder for third-party packages, ensure that " "folder is included as part of the :envvar:`PYTHONPATH` configuration in step " "10." msgstr "" -#: ../../using/ios.rst:329 msgid "" -"If any of the folders that contain third-party packages will contain " -"``.pth`` files, you should add that folder as a *site directory* " -"(using :meth:`site.addsitedir`), rather than adding to :envvar:`PYTHONPATH` " -"or :attr:`sys.path` directly." +"If any of the folders that contain third-party packages will contain ``." +"pth`` files, you should add that folder as a *site directory* (using :meth:" +"`site.addsitedir`), rather than adding to :envvar:`PYTHONPATH` or :attr:`sys." +"path` directly." msgstr "" -#: ../../using/ios.rst:335 msgid "Testing a Python package" msgstr "" -#: ../../using/ios.rst:337 msgid "" "The CPython source tree contains :source:`a testbed project ` " "that is used to run the CPython test suite on the iOS simulator. This " @@ -564,19 +489,16 @@ msgid "" "library's test suite on iOS." msgstr "" -#: ../../using/ios.rst:341 msgid "" "After building or obtaining an iOS XCFramework (See :source:`iOS/README.rst` " "for details), create a clone of the Python iOS testbed project by running:" msgstr "" -#: ../../using/ios.rst:344 msgid "" "$ python iOS/testbed clone --framework --app " " --app app-testbed" msgstr "" -#: ../../using/ios.rst:348 msgid "" "You will need to modify the ``iOS/testbed`` reference to point to that " "directory in the CPython source tree; any folders specified with the ``--" @@ -588,41 +510,48 @@ msgid "" "testbed/iOSTestbed/app_packages`` or similar)." msgstr "" -#: ../../using/ios.rst:357 msgid "" "You can then use the ``app-testbed`` folder to run the test suite for your " "app, For example, if ``module1.tests`` was the entry point to your test " "suite, you could run:" msgstr "" -#: ../../using/ios.rst:361 msgid "$ python app-testbed run -- module1.tests" msgstr "" -#: ../../using/ios.rst:365 msgid "" "This is the equivalent of running ``python -m module1.tests`` on a desktop " "Python build. Any arguments after the ``--`` will be passed to the testbed " "as if they were arguments to ``python -m`` on a desktop machine." msgstr "" -#: ../../using/ios.rst:369 msgid "You can also open the testbed project in Xcode by running:" msgstr "" -#: ../../using/ios.rst:371 msgid "$ open app-testbed/iOSTestbed.xcodeproj" msgstr "" -#: ../../using/ios.rst:375 msgid "This will allow you to use the full Xcode suite of tools for debugging." msgstr "" -#: ../../using/ios.rst:378 +msgid "" +"The arguments used to run the test suite are defined as part of the test " +"plan. To modify the test plan, select the test plan node of the project tree " +"(it should be the first child of the root node), and select the " +"\"Configurations\" tab. Modify the \"Arguments Passed On Launch\" value to " +"change the testing arguments." +msgstr "" + +msgid "" +"The test plan also disables parallel testing, and specifies the use of the " +"``iOSTestbed.lldbinit`` file for providing configuration of the debugger. " +"The default debugger configuration disables automatic breakpoints on the " +"``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals." +msgstr "" + msgid "App Store Compliance" msgstr "" -#: ../../using/ios.rst:380 msgid "" "The only mechanism for distributing apps to third-party iOS devices is to " "submit the app to the iOS App Store; apps submitted for distribution must " @@ -631,7 +560,6 @@ msgid "" "problematic code." msgstr "" -#: ../../using/ios.rst:385 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " @@ -639,7 +567,6 @@ msgid "" "Python standard library for an app to pass App Store review." msgstr "" -#: ../../using/ios.rst:390 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " diff --git a/using/mac.po b/using/mac.po index 49c26f4..a0b4a22 100644 --- a/using/mac.po +++ b/using/mac.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,9 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/mac.rst:6 msgid "Using Python on macOS" msgstr "" -#: ../../using/mac.rst:11 msgid "" "This document aims to give an overview of macOS-specific behavior you should " "know about to get started with Python on Mac computers. Python on a Mac " @@ -30,7 +28,6 @@ msgid "" "there are some differences in installation and some features." msgstr "" -#: ../../using/mac.rst:16 msgid "" "There are various ways to obtain and install Python for macOS. Pre-built " "versions of the most recent versions of Python are available from a number " @@ -40,15 +37,12 @@ msgid "" "some other options." msgstr "" -#: ../../using/mac.rst:27 msgid "Using Python for macOS from ``python.org``" msgstr "" -#: ../../using/mac.rst:30 msgid "Installation steps" msgstr "" -#: ../../using/mac.rst:32 msgid "" "For `current Python versions `_ (other " "than those in ``security`` status), the release team produces a **Python for " @@ -58,10 +52,9 @@ msgid "" "Current installers provide a `universal2 binary `_ build of Python which runs natively on all Macs " "(Apple Silicon and Intel) that are supported by a wide range of macOS " -"versions, currently typically from at least **macOS 10.13 High Sierra** on." +"versions, currently typically from at least **macOS 10.15 Catalina** on." msgstr "" -#: ../../using/mac.rst:44 msgid "" "The downloaded file is a standard macOS installer package file (``.pkg``). " "File integrity information (checksum, size, sigstore signature, etc) for " @@ -71,14 +64,12 @@ msgid "" "`_." msgstr "" -#: ../../using/mac.rst:50 msgid "" "For a default installation, double-click on the downloaded installer package " "file. This should launch the standard macOS Installer app and display the " "first of several installer windows steps." msgstr "" -#: ../../using/mac.rst:56 msgid "" "Clicking on the **Continue** button brings up the **Read Me** for this " "installer. Besides other important information, the **Read Me** documents " @@ -88,7 +79,6 @@ msgid "" "applications_python_version_literal| and available to read anytime." msgstr "" -#: ../../using/mac.rst:64 msgid "" "Clicking on **Continue** proceeds to display the license for Python and for " "other included software. You will then need to **Agree** to the license " @@ -96,14 +86,12 @@ msgid "" "installed and available to be read later." msgstr "" -#: ../../using/mac.rst:71 msgid "" "After the license terms are accepted, the next step is the **Installation " "Type** display. For most uses, the standard set of installation operations " "is appropriate." msgstr "" -#: ../../using/mac.rst:76 msgid "" "By pressing the **Customize** button, you can choose to omit or select " "certain package components of the installer. Click on each package name to " @@ -111,7 +99,6 @@ msgid "" "optional free-threaded feature, see :ref:`install-freethreaded-macos`." msgstr "" -#: ../../using/mac.rst:84 msgid "" "In either case, clicking **Install** will begin the install process by " "asking permission to install new software. A macOS user name with " @@ -119,35 +106,29 @@ msgid "" "available to all users of the Mac." msgstr "" -#: ../../using/mac.rst:88 msgid "When the installation is complete, the **Summary** window will appear." msgstr "" -#: ../../using/mac.rst:92 msgid "" "Double-click on the :command:`Install Certificates.command` icon or file in " "the |applications_python_version_literal| window to complete the " "installation." msgstr "" -#: ../../using/mac.rst:98 msgid "" "This will open a temporary :program:`Terminal` shell window that will use " "the new Python to download and install SSL root certificates for its use." msgstr "" -#: ../../using/mac.rst:104 msgid "" "If ``Successfully installed certifi`` and ``update complete`` appears in the " "terminal window, the installation is complete. Close this terminal window " "and the installer window." msgstr "" -#: ../../using/mac.rst:108 msgid "A default install will include:" msgstr "" -#: ../../using/mac.rst:110 msgid "" "A |python_version_literal| folder in your :file:`Applications` folder. In " "here you find :program:`IDLE`, the development environment that is a " @@ -156,7 +137,6 @@ msgid "" "`Finder `_." msgstr "" -#: ../../using/mac.rst:115 msgid "" "A framework :file:`/Library/Frameworks/Python.framework`, which includes the " "Python executable and libraries. The installer adds this location to your " @@ -164,7 +144,6 @@ msgid "" "to the Python executable are placed in :file:`/usr/local/bin/`." msgstr "" -#: ../../using/mac.rst:122 msgid "" "Recent versions of macOS include a :command:`python3` command in :file:`/usr/" "bin/python3` that links to a usually older and incomplete version of Python " @@ -178,11 +157,9 @@ msgid "" "used instead of the system :command:`python3`." msgstr "" -#: ../../using/mac.rst:133 msgid "How to run a Python script" msgstr "" -#: ../../using/mac.rst:135 msgid "" "There are two ways to invoke the Python interpreter. If you are familiar " "with using a Unix shell in a terminal window, you can invoke |" @@ -192,7 +169,6 @@ msgid "" "a shell `." msgstr "" -#: ../../using/mac.rst:142 msgid "" "You can also invoke the interpreter through an integrated development " "environment. :ref:`idle` is a basic editor and interpreter environment which " @@ -202,31 +178,25 @@ msgid "" "document." msgstr "" -#: ../../using/mac.rst:150 msgid "" "There are many other editors and IDEs available, see :ref:`editors` for more " "information." msgstr "" -#: ../../using/mac.rst:153 msgid "" "To run a Python script file from the terminal window, you can invoke the " "interpreter with the name of the script file:" msgstr "" -#: ../../using/mac.rst:156 msgid "|python_x_dot_y_literal| ``myscript.py``" msgstr "" -#: ../../using/mac.rst:158 msgid "To run your script from the Finder, you can either:" msgstr "" -#: ../../using/mac.rst:160 msgid "Drag it to :program:`Python Launcher`." msgstr "" -#: ../../using/mac.rst:162 msgid "" "Select :program:`Python Launcher` as the default application to open your " "script (or any ``.py`` script) through the Finder Info window and double-" @@ -235,7 +205,6 @@ msgid "" "invocation, or use its ``Preferences`` menu to change things globally." msgstr "" -#: ../../using/mac.rst:168 msgid "" "Be aware that running the script directly from the macOS Finder might " "produce different results than when running from a terminal window as the " @@ -244,136 +213,110 @@ msgid "" "program, be certain of what you are about to run." msgstr "" -#: ../../using/mac.rst:178 msgid "Alternative Distributions" msgstr "" -#: ../../using/mac.rst:180 msgid "" "Besides the standard ``python.org`` for macOS installer, there are third-" "party distributions for macOS that may include additional functionality. " "Some popular distributions and their key features:" msgstr "" -#: ../../using/mac.rst:184 msgid "`ActivePython `_" msgstr "" -#: ../../using/mac.rst:185 msgid "Installer with multi-platform compatibility, documentation" msgstr "" -#: ../../using/mac.rst:187 msgid "`Anaconda `_" msgstr "" -#: ../../using/mac.rst:188 msgid "" "Popular scientific modules (such as numpy, scipy, and pandas) and the " "``conda`` package manager." msgstr "" -#: ../../using/mac.rst:191 msgid "`Homebrew `_" msgstr "" -#: ../../using/mac.rst:192 msgid "" "Package manager for macOS including multiple versions of Python and many " "third-party Python-based packages (including numpy, scipy, and pandas)." msgstr "" -#: ../../using/mac.rst:195 msgid "`MacPorts `_" msgstr "" -#: ../../using/mac.rst:196 msgid "" "Another package manager for macOS including multiple versions of Python and " "many third-party Python-based packages. May include pre-built versions of " "Python and many packages for older versions of macOS." msgstr "" -#: ../../using/mac.rst:200 msgid "" "Note that distributions might not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" -#: ../../using/mac.rst:206 msgid "Installing Additional Python Packages" msgstr "" -#: ../../using/mac.rst:208 msgid "Refer to the `Python Packaging User Guide`_ for more information." msgstr "" -#: ../../using/mac.rst:218 msgid "GUI Programming" msgstr "" -#: ../../using/mac.rst:220 msgid "" "There are several options for building GUI applications on the Mac with " "Python." msgstr "" -#: ../../using/mac.rst:222 msgid "" "The standard Python GUI toolkit is :mod:`tkinter`, based on the cross-" "platform Tk toolkit (https://www.tcl.tk). A macOS-native version of Tk is " "included with the installer." msgstr "" -#: ../../using/mac.rst:226 msgid "" "*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework. " "Information on PyObjC is available from :pypi:`pyobjc`." msgstr "" -#: ../../using/mac.rst:229 msgid "A number of alternative macOS GUI toolkits are available including:" msgstr "" -#: ../../using/mac.rst:231 msgid "" "`PySide `_: Official Python bindings to the " "`Qt GUI toolkit `_." msgstr "" -#: ../../using/mac.rst:234 msgid "" "`PyQt `_: Alternative Python " "bindings to Qt." msgstr "" -#: ../../using/mac.rst:237 msgid "" "`Kivy `_: A cross-platform GUI toolkit that supports " "desktop and mobile platforms." msgstr "" -#: ../../using/mac.rst:240 msgid "" "`Toga `_: Part of the `BeeWare Project `_; supports desktop, mobile, web and console apps." msgstr "" -#: ../../using/mac.rst:243 msgid "" "`wxPython `_: A cross-platform toolkit that supports " "desktop operating systems." msgstr "" -#: ../../using/mac.rst:248 msgid "Advanced Topics" msgstr "" -#: ../../using/mac.rst:253 msgid "Installing Free-threaded Binaries" msgstr "" -#: ../../using/mac.rst:257 msgid "" "The ``python.org`` :ref:`Python for macOS ` installer package can optionally install an additional build of " @@ -382,7 +325,6 @@ msgid "" "release page on ``python.org`` for possible updated information." msgstr "" -#: ../../using/mac.rst:263 msgid "" "The free-threaded mode is working and continues to be improved, but there is " "some additional overhead in single-threaded workloads compared to the " @@ -394,7 +336,6 @@ msgid "" "Type** step of the installer as described above." msgstr "" -#: ../../using/mac.rst:275 msgid "" "If the box next to the **Free-threaded Python** package name is checked, a " "separate :file:`PythonT.framework` will also be installed alongside the " @@ -405,30 +346,25 @@ msgid "" "change in future releases." msgstr "" -#: ../../using/mac.rst:283 msgid "Known cautions and limitations:" msgstr "" -#: ../../using/mac.rst:285 msgid "" "The **UNIX command-line tools** package, which is selected by default, will " "install links in :file:`/usr/local/bin` for |python_x_dot_y_t_literal|, the " "free-threaded interpreter, and |python_x_dot_y_t_literal_config|, a " -"configuration utility which may be useful for package builders. " -"Since :file:`/usr/local/bin` is typically included in your shell ``PATH``, " -"in most cases no changes to your ``PATH`` environment variables should be " -"needed to use |python_x_dot_y_t_literal|." +"configuration utility which may be useful for package builders. Since :file:" +"`/usr/local/bin` is typically included in your shell ``PATH``, in most cases " +"no changes to your ``PATH`` environment variables should be needed to use |" +"python_x_dot_y_t_literal|." msgstr "" -#: ../../using/mac.rst:293 msgid "" -"For this release, the **Shell profile updater** package and " -"the :file:`Update Shell Profile.command` in |" -"applications_python_version_literal| do not support the free-threaded " -"package." +"For this release, the **Shell profile updater** package and the :file:" +"`Update Shell Profile.command` in |applications_python_version_literal| do " +"not support the free-threaded package." msgstr "" -#: ../../using/mac.rst:297 msgid "" "The free-threaded build and the traditional build have separate search paths " "and separate :file:`site-packages` directories so, by default, if you need a " @@ -437,15 +373,12 @@ msgid "" "use with |python_x_dot_y_t_literal|." msgstr "" -#: ../../using/mac.rst:303 msgid "To install a package using :command:`pip` without a :command:`venv`:" msgstr "" -#: ../../using/mac.rst:307 msgid "python\\ |version|\\ t -m pip install " msgstr "" -#: ../../using/mac.rst:309 msgid "" "When working with multiple Python environments, it is usually safest and " "easiest to :ref:`create and use virtual environments `. This can " @@ -453,23 +386,18 @@ msgid "" "use:" msgstr "" -#: ../../using/mac.rst:315 msgid "python\\ |version|\\ t -m venv " msgstr "" -#: ../../using/mac.rst:318 msgid "then :command:`activate`." msgstr "" -#: ../../using/mac.rst:320 msgid "To run a free-threaded version of IDLE:" msgstr "" -#: ../../using/mac.rst:324 msgid "python\\ |version|\\ t -m idlelib" msgstr "" -#: ../../using/mac.rst:327 msgid "" "The interpreters in both builds respond to the same :ref:`PYTHON environment " "variables ` which may have unexpected results, for " @@ -478,7 +406,6 @@ msgid "" "E`` to ignore these environment variables." msgstr "" -#: ../../using/mac.rst:334 msgid "" "The free-threaded build links to the third-party shared libraries, such as " "``OpenSSL`` and ``Tk``, installed in the traditional framework. This means " @@ -487,7 +414,6 @@ msgid "" "run once." msgstr "" -#: ../../using/mac.rst:340 msgid "" "If you cannot depend on the link in ``/usr/local/bin`` pointing to the " "``python.org`` free-threaded |python_x_dot_y_t_literal| (for example, if you " @@ -496,13 +422,11 @@ msgid "" "``PythonT`` framework ``bin`` directory:" msgstr "" -#: ../../using/mac.rst:348 msgid "" "export PATH=\"/Library/Frameworks/PythonT.framework/Versions/\\ |version|\\ /" "bin\":\"$PATH\"" msgstr "" -#: ../../using/mac.rst:350 msgid "" "The traditional framework installation by default does something similar, " "except for :file:`Python.framework`. Be aware that having both framework " @@ -514,7 +438,6 @@ msgid "" "be to create a shell :command:`alias` to the desired interpreter, like:" msgstr "" -#: ../../using/mac.rst:361 msgid "" "alias py\\ |version|\\ =\"/Library/Frameworks/Python.framework/Versions/\\ |" "version|\\ /bin/python\\ |version|\\ \"\n" @@ -522,11 +445,9 @@ msgid "" "|version|\\ /bin/python\\ |version|\\ t\"" msgstr "" -#: ../../using/mac.rst:365 msgid "Installing using the command line" msgstr "" -#: ../../using/mac.rst:367 msgid "" "If you want to use automation to install the ``python.org`` installer " "package (rather than by using the familiar macOS :program:`Installer` GUI " @@ -538,7 +459,6 @@ msgid "" "interpreter option:" msgstr "" -#: ../../using/mac.rst:378 msgid "" "RELEASE=\"python-\\ |version|\\ 0b2-macos11.pkg\"\n" "\n" @@ -550,8 +470,8 @@ msgid "" "# while accepting the other defaults (install all other packages)\n" "cat > ./choicechanges.plist <\n" -"\n" +"\n" "\n" "\n" " \n" @@ -567,23 +487,22 @@ msgid "" "\n" "EOF\n" "\n" -"sudo installer -pkg ./${RELEASE} -applyChoiceChangesXML ./" -"choicechanges.plist -target /" +"sudo installer -pkg ./${RELEASE} -applyChoiceChangesXML ./choicechanges." +"plist -target /" msgstr "" -#: ../../using/mac.rst:406 msgid "" "You can then test that both installer builds are now available with " "something like:" msgstr "" -#: ../../using/mac.rst:410 msgid "" "$ # test that the free-threaded interpreter was installed if the Unix " "Command Tools package was enabled\n" "$ /usr/local/bin/python\\ |version|\\ t -VV\n" -"Python \\ |version|\\ .0b2 free-threading build (v\\ |version|\\ " -".0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)]\n" +"Python \\ |version|\\ .0b2 free-threading build (v\\ |version|" +"\\ .0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 " +"(clang-1500.3.9.4)]\n" "$ # and the traditional interpreter\n" "$ /usr/local/bin/python\\ |version|\\ -VV\n" "Python \\ |version|\\ .0b2 (v\\ |version|\\ .0b2:3a83b172af, Jun 5 2024, " @@ -591,38 +510,34 @@ msgid "" "$ # test that they are also available without the prefix if /usr/local/bin " "is on $PATH\n" "$ python\\ |version|\\ t -VV\n" -"Python \\ |version|\\ .0b2 free-threading build (v\\ |version|\\ " -".0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)]\n" +"Python \\ |version|\\ .0b2 free-threading build (v\\ |version|" +"\\ .0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 " +"(clang-1500.3.9.4)]\n" "$ python\\ |version|\\ -VV\n" "Python \\ |version|\\ .0b2 (v\\ |version|\\ .0b2:3a83b172af, Jun 5 2024, " "12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)]" msgstr "" -#: ../../using/mac.rst:424 msgid "" -"Current ``python.org`` installers only install to fixed locations " -"like :file:`/Library/Frameworks/`, :file:`/Applications`, and :file:`/usr/" -"local/bin`. You cannot use the :command:`installer` ``-domain`` option to " -"install to other locations." +"Current ``python.org`` installers only install to fixed locations like :file:" +"`/Library/Frameworks/`, :file:`/Applications`, and :file:`/usr/local/bin`. " +"You cannot use the :command:`installer` ``-domain`` option to install to " +"other locations." msgstr "" -#: ../../using/mac.rst:432 msgid "Distributing Python Applications" msgstr "" -#: ../../using/mac.rst:434 msgid "" "A range of tools exist for converting your Python code into a standalone " "distributable application:" msgstr "" -#: ../../using/mac.rst:437 msgid "" ":pypi:`py2app`: Supports creating macOS ``.app`` bundles from a Python " "project." msgstr "" -#: ../../using/mac.rst:440 msgid "" "`Briefcase `_: Part of the `BeeWare " "Project `_; a cross-platform packaging tool that " @@ -630,17 +545,14 @@ msgid "" "and notarization." msgstr "" -#: ../../using/mac.rst:445 msgid "" "`PyInstaller `_: A cross-platform packaging tool " "that creates a single file or folder as a distributable artifact." msgstr "" -#: ../../using/mac.rst:449 msgid "App Store Compliance" msgstr "" -#: ../../using/mac.rst:451 msgid "" "Apps submitted for distribution through the macOS App Store must pass " "Apple's app review process. This process includes a set of automated " @@ -648,7 +560,6 @@ msgid "" "problematic code." msgstr "" -#: ../../using/mac.rst:455 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " @@ -656,7 +567,6 @@ msgid "" "modify the Python standard library for an app to pass App Store review." msgstr "" -#: ../../using/mac.rst:460 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " @@ -665,7 +575,6 @@ msgid "" "compliance` option." msgstr "" -#: ../../using/mac.rst:466 msgid "" "This patch is not normally required to use CPython on a Mac; nor is it " "required if you are distributing an app *outside* the macOS App Store. It is " @@ -673,14 +582,12 @@ msgid "" "channel." msgstr "" -#: ../../using/mac.rst:471 msgid "Other Resources" msgstr "" -#: ../../using/mac.rst:473 msgid "" "The `python.org Help page `_ has links " -"to many useful resources. The `Pythonmac-SIG mailing list `_ is another support " +"to many useful resources. The `Pythonmac-SIG mailing list `_ is another support " "resource specifically for Python users and developers on the Mac." msgstr "" diff --git a/using/unix.po b/using/unix.po index a2370fc..d856179 100644 --- a/using/unix.po +++ b/using/unix.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-25 14:21+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,19 +22,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/unix.rst:7 msgid "Using Python on Unix platforms" msgstr "" -#: ../../using/unix.rst:13 msgid "Getting and installing the latest version of Python" msgstr "" -#: ../../using/unix.rst:16 msgid "On Linux" msgstr "" -#: ../../using/unix.rst:18 msgid "" "Python comes preinstalled on most Linux distributions, and is available as a " "package on all others. However there are certain features you might want to " @@ -42,106 +38,82 @@ msgid "" "latest version of Python from source." msgstr "" -#: ../../using/unix.rst:23 msgid "" "In the event that the latest version of Python doesn't come preinstalled and " "isn't in the repositories as well, you can make packages for your own " "distro. Have a look at the following links:" msgstr "" -#: ../../using/unix.rst:29 msgid "https://www.debian.org/doc/manuals/maint-guide/first.en.html" msgstr "" -#: ../../using/unix.rst:30 msgid "for Debian users" msgstr "" -#: ../../using/unix.rst:31 msgid "https://en.opensuse.org/Portal:Packaging" msgstr "" -#: ../../using/unix.rst:32 msgid "for OpenSuse users" msgstr "" -#: ../../using/unix.rst:33 msgid "" "https://docs.fedoraproject.org/en-US/package-maintainers/" "Packaging_Tutorial_GNU_Hello/" msgstr "" -#: ../../using/unix.rst:34 msgid "for Fedora users" msgstr "" -#: ../../using/unix.rst:35 msgid "https://slackbook.org/html/package-management-making-packages.html" msgstr "" -#: ../../using/unix.rst:36 msgid "for Slackware users" msgstr "" -#: ../../using/unix.rst:41 msgid "Installing IDLE" msgstr "" -#: ../../using/unix.rst:43 msgid "In some cases, IDLE might not be included in your Python installation." msgstr "" -#: ../../using/unix.rst:45 msgid "For Debian and Ubuntu users::" msgstr "" -#: ../../using/unix.rst:47 msgid "" "sudo apt update\n" "sudo apt install idle" msgstr "" -#: ../../using/unix.rst:50 msgid "For Fedora, RHEL, and CentOS users::" msgstr "" -#: ../../using/unix.rst:52 msgid "sudo dnf install python3-idle" msgstr "" -#: ../../using/unix.rst:54 msgid "For SUSE and OpenSUSE users::" msgstr "" -#: ../../using/unix.rst:56 msgid "sudo zypper install python3-idle" msgstr "" -#: ../../using/unix.rst:58 msgid "For Alpine Linux users::" msgstr "" -#: ../../using/unix.rst:60 msgid "sudo apk add python3-idle" msgstr "" -#: ../../using/unix.rst:65 msgid "On FreeBSD and OpenBSD" msgstr "" -#: ../../using/unix.rst:67 msgid "FreeBSD users, to add the package use::" msgstr "" -#: ../../using/unix.rst:69 msgid "pkg install python3" msgstr "" -#: ../../using/unix.rst:71 msgid "OpenBSD users, to add the package use::" msgstr "" -#: ../../using/unix.rst:73 msgid "" "pkg_add -r python\n" "\n" @@ -149,21 +121,17 @@ msgid "" "architecture here>/python-.tgz" msgstr "" -#: ../../using/unix.rst:77 msgid "For example i386 users get the 2.5.1 version of Python using::" msgstr "" -#: ../../using/unix.rst:79 msgid "" -"pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/" -"python-2.5.1p2.tgz" +"pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2." +"tgz" msgstr "" -#: ../../using/unix.rst:85 msgid "Building Python" msgstr "" -#: ../../using/unix.rst:87 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -172,36 +140,30 @@ msgid "" "contribute patches, you will need a clone.)" msgstr "" -#: ../../using/unix.rst:93 msgid "The build process consists of the usual commands::" msgstr "" -#: ../../using/unix.rst:95 msgid "" "./configure\n" "make\n" "make install" msgstr "" -#: ../../using/unix.rst:99 msgid "" ":ref:`Configuration options ` and caveats for specific " "Unix platforms are extensively documented in the :source:`README.rst` file " "in the root of the Python source tree." msgstr "" -#: ../../using/unix.rst:105 msgid "" "``make install`` can overwrite or masquerade the :file:`python3` binary. " "``make altinstall`` is therefore recommended instead of ``make install`` " "since it only installs :file:`{exec_prefix}/bin/python{version}`." msgstr "" -#: ../../using/unix.rst:111 msgid "Python-related paths and files" msgstr "" -#: ../../using/unix.rst:113 msgid "" "These are subject to difference depending on local installation " "conventions; :option:`prefix <--prefix>` and :option:`exec_prefix <--exec-" @@ -209,92 +171,74 @@ msgid "" "software; they may be the same." msgstr "" -#: ../../using/unix.rst:118 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" -#: ../../using/unix.rst:121 msgid "File/directory" msgstr "" -#: ../../using/unix.rst:121 msgid "Meaning" msgstr "Jelentés" -#: ../../using/unix.rst:123 msgid ":file:`{exec_prefix}/bin/python3`" msgstr "" -#: ../../using/unix.rst:123 msgid "Recommended location of the interpreter." msgstr "" -#: ../../using/unix.rst:125 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" msgstr "" -#: ../../using/unix.rst:125 msgid "" "Recommended locations of the directories containing the standard modules." msgstr "" -#: ../../using/unix.rst:128 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" msgstr "" -#: ../../using/unix.rst:128 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." msgstr "" -#: ../../using/unix.rst:136 msgid "Miscellaneous" msgstr "" -#: ../../using/unix.rst:138 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with" msgstr "" -#: ../../using/unix.rst:141 msgid "$ chmod +x script" msgstr "" -#: ../../using/unix.rst:145 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" msgstr "" -#: ../../using/unix.rst:148 msgid "#!/usr/bin/env python3" msgstr "" -#: ../../using/unix.rst:150 msgid "" "which searches for the Python interpreter in the whole :envvar:`PATH`. " "However, some Unices may not have the :program:`env` command, so you may " "need to hardcode ``/usr/bin/python3`` as the interpreter path." msgstr "" -#: ../../using/unix.rst:154 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." msgstr "" -#: ../../using/unix.rst:159 msgid "Custom OpenSSL" msgstr "" -#: ../../using/unix.rst:161 msgid "" "To use your vendor's OpenSSL configuration and system trust store, locate " "the directory with ``openssl.cnf`` file or symlink in ``/etc``. On most " @@ -303,19 +247,16 @@ msgid "" "directory." msgstr "" -#: ../../using/unix.rst:167 msgid "" "$ find /etc/ -name openssl.cnf -printf \"%h\\n\"\n" "/etc/ssl" msgstr "" -#: ../../using/unix.rst:172 msgid "" "Download, build, and install OpenSSL. Make sure you use ``install_sw`` and " "not ``install``. The ``install_sw`` target does not override ``openssl.cnf``." msgstr "" -#: ../../using/unix.rst:176 msgid "" "$ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz\n" "$ tar xzf openssl-VERSION\n" @@ -330,13 +271,11 @@ msgid "" "$ popd" msgstr "" -#: ../../using/unix.rst:190 msgid "" "Build Python with custom OpenSSL (see the configure ``--with-openssl`` and " "``--with-openssl-rpath`` options)" msgstr "" -#: ../../using/unix.rst:193 msgid "" "$ pushd python-3.x.x\n" "$ ./configure -C \\\n" @@ -347,7 +286,6 @@ msgid "" "$ make altinstall" msgstr "" -#: ../../using/unix.rst:205 msgid "" "Patch releases of OpenSSL have a backwards compatible ABI. You don't need to " "recompile Python to update OpenSSL. It's sufficient to replace the custom " diff --git a/using/windows.po b/using/windows.po index 9fa12ce..7522617 100644 --- a/using/windows.po +++ b/using/windows.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,17 +22,14 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../using/windows.rst:11 msgid "Using Python on Windows" msgstr "" -#: ../../using/windows.rst:15 msgid "" "This document aims to give an overview of Windows-specific behaviour you " "should know about when using Python on Microsoft Windows." msgstr "" -#: ../../using/windows.rst:18 msgid "" "Unlike most Unix systems and services, Windows does not include a system " "supported installation of Python. Instead, Python can be obtained from a " @@ -44,7 +40,6 @@ msgid "" "investigating your existing tools to see if they can provide Python directly." msgstr "" -#: ../../using/windows.rst:26 msgid "" "To obtain Python from the CPython team, use the Python Install Manager. This " "is a standalone tool that makes Python available as global commands on your " @@ -53,7 +48,6 @@ msgid "" "through the `Microsoft Store app`_." msgstr "" -#: ../../using/windows.rst:32 msgid "" "Once you have installed the Python Install Manager, the global ``python`` " "command can be used from any terminal to launch your current latest version " @@ -61,7 +55,6 @@ msgid "" "versions, and the ``py list`` command will show which is current." msgstr "" -#: ../../using/windows.rst:37 msgid "" "In general, we recommend that you create a :ref:`virtual environment ` for each project and run ``\\Scripts\\Activate`` in your " @@ -71,21 +64,18 @@ msgid "" "venv ``." msgstr "" -#: ../../using/windows.rst:43 msgid "" "If the ``python`` or ``py`` commands do not seem to be working, please see " "the :ref:`Troubleshooting ` section below. There are " "sometimes additional manual steps required to configure your PC." msgstr "" -#: ../../using/windows.rst:47 msgid "" "Apart from using the Python install manager, Python can also be obtained as " "NuGet packages. See :ref:`windows-nuget` below for more information on these " "packages." msgstr "" -#: ../../using/windows.rst:51 msgid "" "The embeddable distros are minimal packages of Python suitable for embedding " "into larger applications. They can be installed using the Python install " @@ -93,35 +83,29 @@ msgid "" "packages." msgstr "" -#: ../../using/windows.rst:64 msgid "Python Install Manager" msgstr "" -#: ../../using/windows.rst:67 msgid "Installation" msgstr "" -#: ../../using/windows.rst:69 msgid "" "The Python install manager can be installed from the `Microsoft Store app`_ " "or downloaded and installed from `python.org/downloads`_. The two versions " "are identical." msgstr "" -#: ../../using/windows.rst:73 msgid "" "To install through the Store, simply click \"Install\". After it has " "completed, open a terminal and type ``python`` to get started." msgstr "" -#: ../../using/windows.rst:76 msgid "" "To install the file downloaded from python.org, either double-click and " "select \"Install\", or run ``Add-AppxPackage `` in Windows " "Powershell." msgstr "" -#: ../../using/windows.rst:79 msgid "" "After installation, the ``python``, ``py``, and ``pymanager`` commands " "should be available. If you have existing installations of Python, or you " @@ -130,31 +114,27 @@ msgid "" "fixing non-working commands." msgstr "" -#: ../../using/windows.rst:85 msgid "" "When you first install a runtime, you will likely be prompted to add a " "directory to your :envvar:`PATH`. This is optional, if you prefer to use the " "``py`` command, but is offered for those who prefer the full range of " -"aliases (such as ``python3.14.exe``) to be available. The directory will " -"be :file:`%LocalAppData%\\\\Python\\\\bin` by default, but may be customized " -"by an administrator. Click Start and search for \"Edit environment variables " +"aliases (such as ``python3.14.exe``) to be available. The directory will be :" +"file:`%LocalAppData%\\\\Python\\\\bin` by default, but may be customized by " +"an administrator. Click Start and search for \"Edit environment variables " "for your account\" for the system settings page to add the path." msgstr "" -#: ../../using/windows.rst:93 msgid "" "Each Python runtime you install will have its own directory for scripts. " "These also need to be added to :envvar:`PATH` if you want to use them." msgstr "" -#: ../../using/windows.rst:96 msgid "" "The Python install manager will be automatically updated to new releases. " "This does not affect any installs of Python runtimes. Uninstalling the " "Python install manager does not uninstall any Python runtimes." msgstr "" -#: ../../using/windows.rst:100 msgid "" "If you are not able to install an MSIX in your context, for example, you are " "using automated deployment software that does not support it, or are " @@ -162,11 +142,9 @@ msgid "" "below for more information." msgstr "" -#: ../../using/windows.rst:107 msgid "Basic Use" msgstr "" -#: ../../using/windows.rst:109 msgid "" "The recommended command for launching Python is ``python``, which will " "either launch the version requested by the script being launched, an active " @@ -176,7 +154,6 @@ msgid "" "latest release will be installed automatically." msgstr "" -#: ../../using/windows.rst:116 msgid "" "For all scenarios involving multiple runtime versions, the recommended " "command is ``py``. This may be used anywhere in place of ``python`` or the " @@ -186,7 +163,6 @@ msgid "" "below." msgstr "" -#: ../../using/windows.rst:122 msgid "" "Because the ``py`` command may already be taken by the previous version, " "there is also an unambiguous ``pymanager`` command. Scripted installs that " @@ -198,7 +174,6 @@ msgid "" "provides equivalent behaviour to ``py ...``)." msgstr "" -#: ../../using/windows.rst:131 msgid "" "Each of these commands also has a windowed version that avoids creating a " "console window. These are ``pyw``, ``pythonw`` and ``pymanagerw``. A " @@ -207,14 +182,12 @@ msgid "" "Windows, but is not meant to be widely used or recommended." msgstr "" -#: ../../using/windows.rst:137 msgid "" "To launch your default runtime, run ``python`` or ``py`` with the arguments " "you want to be passed to the runtime (such as script files or the module to " "launch):" msgstr "" -#: ../../using/windows.rst:140 msgid "" "$> py\n" "...\n" @@ -224,15 +197,12 @@ msgid "" "..." msgstr "" -#: ../../using/windows.rst:149 msgid "" -"The default runtime can be overridden with " -"the :envvar:`PYTHON_MANAGER_DEFAULT` environment variable, or a " -"configuration file. See :ref:`pymanager-config` for information about " -"configuration settings." +"The default runtime can be overridden with the :envvar:" +"`PYTHON_MANAGER_DEFAULT` environment variable, or a configuration file. See :" +"ref:`pymanager-config` for information about configuration settings." msgstr "" -#: ../../using/windows.rst:153 msgid "" "To launch a specific runtime, the ``py`` command accepts a ``-V:`` " "option. This option must be specified before any others. The tag is part or " @@ -242,13 +212,11 @@ msgid "" "release and starts with ``3``." msgstr "" -#: ../../using/windows.rst:160 msgid "" "$> py -V:3.14 ...\n" "$> py -V:3-arm64 ..." msgstr "" -#: ../../using/windows.rst:165 msgid "" "Runtimes from other distributors may require the *company* to be included as " "well. This should be separated from the tag by a slash, and may be a prefix. " @@ -257,13 +225,11 @@ msgid "" "from a specific company." msgstr "" -#: ../../using/windows.rst:171 msgid "" "$> py -V:Distributor\\1.0 ...\n" "$> py -V:distrib/ ..." msgstr "" -#: ../../using/windows.rst:176 msgid "" "If no version is specified, but a script file is passed, the script will be " "inspected for a *shebang line*. This is a special format for the first line " @@ -272,7 +238,6 @@ msgid "" "resolved, the script will be launched with the default runtime." msgstr "" -#: ../../using/windows.rst:182 msgid "" "If you are running in an active virtual environment, have not requested a " "particular version, and there is no shebang line, the default runtime will " @@ -281,7 +246,6 @@ msgid "" "behaviour ensures that the ``py`` command can be used interchangeably." msgstr "" -#: ../../using/windows.rst:188 msgid "" "When you launch either ``python`` or ``py`` but do not have any runtimes " "installed, and the requested version is the default, it will be installed " @@ -291,25 +255,21 @@ msgid "" "``pymanager exec`` forms of the command were used." msgstr "" -#: ../../using/windows.rst:197 msgid "Command Help" msgstr "" -#: ../../using/windows.rst:199 msgid "" "The ``py help`` command will display the full list of supported commands, " "along with their options. Any command may be passed the ``-?`` option to " "display its help, or its name passed to ``py help``." msgstr "" -#: ../../using/windows.rst:203 msgid "" "$> py help\n" "$> py help install\n" "$> py install /?" msgstr "" -#: ../../using/windows.rst:210 msgid "" "All commands support some common options, which will be shown by ``py " "help``. These options must be specified after any subcommand. Specifying ``-" @@ -318,24 +278,20 @@ msgid "" "quiet`` will reduce output, and ``-qq`` will reduce it further." msgstr "" -#: ../../using/windows.rst:216 msgid "" "The ``--config=`` option allows specifying a configuration file to " "override multiple settings at once. See :ref:`pymanager-config` below for " "more information about these files." msgstr "" -#: ../../using/windows.rst:222 msgid "Listing Runtimes" msgstr "" -#: ../../using/windows.rst:224 msgid "" "$> py list [-f=|--format=] [-1|--one] [--online|-s=|--source=] " "[...]" msgstr "" -#: ../../using/windows.rst:228 msgid "" "The list of installed runtimes can be seen using ``py list``. A filter may " "be added in the form of one or more tags (with or without company " @@ -343,7 +299,6 @@ msgid "" "restrict to a range." msgstr "" -#: ../../using/windows.rst:232 msgid "" "A range of formats are supported, and can be passed as the ``--" "format=`` or ``-f `` option. Formats include ``table`` (a user " @@ -352,7 +307,6 @@ msgid "" "executable path), ``prefix`` (just the prefix path)." msgstr "" -#: ../../using/windows.rst:238 msgid "" "The ``--one`` or ``-1`` option only displays a single result. If the default " "runtime is included, it will be the one. Otherwise, the \"best\" result is " @@ -361,14 +315,12 @@ msgid "" "the runtime that would be launched by ``py -V:``." msgstr "" -#: ../../using/windows.rst:244 msgid "" "The ``--only-managed`` option excludes results that were not installed by " "the Python install manager. This is useful when determining which runtimes " "may be updated or uninstalled through the ``py`` command." msgstr "" -#: ../../using/windows.rst:248 msgid "" "The ``--online`` option is short for passing ``--source=`` with the " "default source. Passing either of these options will search the online index " @@ -377,48 +329,40 @@ msgid "" "``." msgstr "" -#: ../../using/windows.rst:253 msgid "$> py list --online 3.14" msgstr "" -#: ../../using/windows.rst:257 msgid "" "For compatibility with the old launcher, the ``--list``, ``--list-paths``, " "``-0`` and ``-0p`` commands (e.g. ``py -0p``) are retained. They do not " "allow additional options, and will produce legacy formatted output." msgstr "" -#: ../../using/windows.rst:263 msgid "Installing Runtimes" msgstr "" -#: ../../using/windows.rst:265 msgid "" "$> py install [-s=|--source=] [-f|--force] [-u|--update] [--dry-run] " "[...]" msgstr "" -#: ../../using/windows.rst:269 msgid "" "New runtime versions may be added using ``py install``. One or more tags may " "be specified, and the special tag ``default`` may be used to select the " "default. Ranges are not supported for installation." msgstr "" -#: ../../using/windows.rst:273 msgid "" "The ``--source=`` option allows overriding the online index that is " "used to obtain runtimes. This may be used with an offline index, as shown " "in :ref:`pymanager-offline`." msgstr "" -#: ../../using/windows.rst:277 msgid "" "Passing ``--force`` will ignore any cached files and remove any existing " "install to replace it with the specified one." msgstr "" -#: ../../using/windows.rst:280 msgid "" "Passing ``--update`` will replace existing installs if the new version is " "newer. Otherwise, they will be left. If no tags are provided with ``--" @@ -428,38 +372,31 @@ msgid "" "environments will continue to work." msgstr "" -#: ../../using/windows.rst:287 msgid "" "Passing ``--dry-run`` will generate output and logs, but will not modify any " "installs." msgstr "" -#: ../../using/windows.rst:290 msgid "" "In addition to the above options, the ``--target`` option will extract the " "runtime to the specified directory instead of doing a normal install. This " "is useful for embedding runtimes into larger applications." msgstr "" -#: ../../using/windows.rst:294 msgid "$> py install ... [-t=|--target=] " msgstr "" -#: ../../using/windows.rst:302 msgid "Offline Installs" msgstr "" -#: ../../using/windows.rst:304 msgid "" "To perform offline installs of Python, you will need to first create an " "offline index on a machine that has network access." msgstr "" -#: ../../using/windows.rst:307 msgid "$> py install --download= ... ..." msgstr "" -#: ../../using/windows.rst:311 msgid "" "The ``--download=`` option will download the packages for the listed " "tags and create a directory containing them and an ``index.json`` file " @@ -467,17 +404,14 @@ msgid "" "offline machine and used to install one or more of the bundled runtimes:" msgstr "" -#: ../../using/windows.rst:316 msgid "$> py install --source=\"\\index.json\" ..." msgstr "" -#: ../../using/windows.rst:320 msgid "" "The Python install manager can be installed by downloading its installer and " "moving it to another machine before installing." msgstr "" -#: ../../using/windows.rst:323 msgid "" "Alternatively, the ZIP files in an offline index directory can simply be " "transferred to another machine and extracted. This will not register the " @@ -487,32 +421,26 @@ msgid "" "possible or convenient." msgstr "" -#: ../../using/windows.rst:329 msgid "" "In this way, Python runtimes can be installed and managed on a machine " "without access to the internet." msgstr "" -#: ../../using/windows.rst:334 msgid "Uninstalling Runtimes" msgstr "" -#: ../../using/windows.rst:336 msgid "$> py uninstall [-y|--yes] ..." msgstr "" -#: ../../using/windows.rst:340 msgid "" "Runtimes may be removed using the ``py uninstall`` command. One or more tags " "must be specified. Ranges are not supported here." msgstr "" -#: ../../using/windows.rst:343 msgid "" "The ``--yes`` option bypasses the confirmation prompt before uninstalling." msgstr "" -#: ../../using/windows.rst:345 msgid "" "Instead of passing tags individually, the ``--purge`` option may be " "specified. This will remove all runtimes managed by the Python install " @@ -521,11 +449,9 @@ msgid "" "not be impacted, and neither will manually created configuration files." msgstr "" -#: ../../using/windows.rst:351 msgid "$> py uninstall [-y|--yes] --purge" msgstr "" -#: ../../using/windows.rst:355 msgid "" "The Python install manager can be uninstalled through the Windows " "\"Installed apps\" settings page. This does not remove any runtimes, and " @@ -535,11 +461,9 @@ msgid "" "with ``--purge`` before uninstalling the Python install manager." msgstr "" -#: ../../using/windows.rst:365 msgid "Configuration" msgstr "" -#: ../../using/windows.rst:367 msgid "" "Python install manager is configured with a hierarchy of configuration " "files, environment variables, command-line options, and registry settings. " @@ -549,13 +473,11 @@ msgid "" "options override all other settings, but not every option is available." msgstr "" -#: ../../using/windows.rst:374 msgid "" "This section will describe the defaults, but be aware that modified or " "overridden installs may resolve settings differently." msgstr "" -#: ../../using/windows.rst:377 msgid "" "A global configuration file may be configured by an administrator, and would " "be read first. The user configuration file is stored at :file:`%AppData%\\" @@ -565,54 +487,38 @@ msgid "" "config`` command line option (but not both)." msgstr "" -#: ../../using/windows.rst:384 msgid "" "The following settings are those that are considered likely to be modified " "in normal use. Later sections list those that are intended for " "administrative customization." msgstr "" -#: ../../using/windows.rst:392 msgid "Standard configuration options" msgstr "" -#: ../../using/windows.rst:396 ../../using/windows.rst:676 msgid "Config Key" msgstr "" -#: ../../using/windows.rst:397 msgid "Environment Variable" msgstr "" -#: ../../using/windows.rst:398 ../../using/windows.rst:677 -#: ../../using/windows.rst:1365 ../../using/windows.rst:1385 -#: ../../using/windows.rst:1980 msgid "Description" msgstr "" -#: ../../using/windows.rst:400 msgid "``default_tag``" msgstr "" -#: ../../using/windows.rst:401 -msgid "``PYTHON_MANAGER_DEFAULT``" -msgstr "" - -#: ../../using/windows.rst:402 msgid "" "The preferred default version to launch or install. By default, this is " "interpreted as the most recent non-prerelease version from the CPython team." msgstr "" -#: ../../using/windows.rst:406 msgid "``default_platform``" msgstr "" -#: ../../using/windows.rst:407 msgid "``PYTHON_MANAGER_DEFAULT_PLATFORM``" msgstr "" -#: ../../using/windows.rst:408 msgid "" "The preferred default platform to launch or install. This is treated as a " "suffix to the specified tag, such that ``py -V:3.14`` would prefer an " @@ -620,69 +526,54 @@ msgid "" "but will use ``3.14`` if no tagged install exists." msgstr "" -#: ../../using/windows.rst:414 msgid "``logs_dir``" msgstr "" -#: ../../using/windows.rst:415 msgid "``PYTHON_MANAGER_LOGS``" msgstr "" -#: ../../using/windows.rst:416 msgid "The location where log files are written. By default, :file:`%TEMP%`." msgstr "" -#: ../../using/windows.rst:419 msgid "``automatic_install``" msgstr "" -#: ../../using/windows.rst:420 msgid "``PYTHON_MANAGER_AUTOMATIC_INSTALL``" msgstr "" -#: ../../using/windows.rst:421 msgid "" "True to allow automatic installs when specifying a particular runtime to " "launch. By default, true." msgstr "" -#: ../../using/windows.rst:425 msgid "``include_unmanaged``" msgstr "" -#: ../../using/windows.rst:426 msgid "``PYTHON_MANAGER_INCLUDE_UNMANAGED``" msgstr "" -#: ../../using/windows.rst:427 msgid "" "True to allow listing and launching runtimes that were not installed by the " "Python install manager, or false to exclude them. By default, true." msgstr "" -#: ../../using/windows.rst:431 msgid "``shebang_can_run_anything``" msgstr "" -#: ../../using/windows.rst:432 msgid "``PYTHON_MANAGER_SHEBANG_CAN_RUN_ANYTHING``" msgstr "" -#: ../../using/windows.rst:433 msgid "" "True to allow shebangs in ``.py`` files to launch applications other than " "Python runtimes, or false to prevent it. By default, true." msgstr "" -#: ../../using/windows.rst:437 msgid "``log_level``" msgstr "" -#: ../../using/windows.rst:438 msgid "``PYMANAGER_VERBOSE``, ``PYMANAGER_DEBUG``" msgstr "" -#: ../../using/windows.rst:439 msgid "" "Set the default level of output (0-50). By default, 20. Lower values produce " "more output. The environment variables are boolean, and may produce " @@ -690,58 +581,45 @@ msgid "" "configuration." msgstr "" -#: ../../using/windows.rst:445 msgid "``confirm``" msgstr "" -#: ../../using/windows.rst:446 msgid "``PYTHON_MANAGER_CONFIRM``" msgstr "" -#: ../../using/windows.rst:447 msgid "" "True to confirm certain actions before taking them (such as uninstall), or " "false to skip the confirmation. By default, true." msgstr "" -#: ../../using/windows.rst:451 msgid "``install.source``" msgstr "" -#: ../../using/windows.rst:452 msgid "``PYTHON_MANAGER_SOURCE_URL``" msgstr "" -#: ../../using/windows.rst:453 msgid "Override the index feed to obtain new installs from." msgstr "" -#: ../../using/windows.rst:455 msgid "``list.format``" msgstr "" -#: ../../using/windows.rst:456 msgid "``PYTHON_MANAGER_LIST_FORMAT``" msgstr "" -#: ../../using/windows.rst:457 msgid "" "Specify the default format used by the ``py list`` command. By default, " "``table``." msgstr "" -#: ../../using/windows.rst:460 msgid "" -"Dotted names should be nested inside JSON objects, for example, " -"``list.format`` would be specified as ``{\"list\": {\"format\": \"table\"}}" -"``." +"Dotted names should be nested inside JSON objects, for example, ``list." +"format`` would be specified as ``{\"list\": {\"format\": \"table\"}}``." msgstr "" -#: ../../using/windows.rst:466 msgid "Shebang lines" msgstr "" -#: ../../using/windows.rst:468 msgid "" "If the first line of a script file starts with ``#!``, it is known as a " "\"shebang\" line. Linux and other Unix like operating systems have native " @@ -750,42 +628,33 @@ msgid "" "allow the same facilities to be used with Python scripts on Windows." msgstr "" -#: ../../using/windows.rst:474 msgid "" "To allow shebang lines in Python scripts to be portable between Unix and " "Windows, a number of 'virtual' commands are supported to specify which " "interpreter to use. The supported virtual commands are:" msgstr "" -#: ../../using/windows.rst:478 msgid "``/usr/bin/env ``" msgstr "" -#: ../../using/windows.rst:479 msgid "``/usr/bin/env -S ``" -msgstr "``/usr/bin/env -S ``" +msgstr "" -#: ../../using/windows.rst:480 msgid "``/usr/bin/``" msgstr "" -#: ../../using/windows.rst:481 msgid "``/usr/local/bin/``" msgstr "" -#: ../../using/windows.rst:482 msgid "````" msgstr "" -#: ../../using/windows.rst:484 ../../using/windows.rst:1754 msgid "For example, if the first line of your script starts with" msgstr "" -#: ../../using/windows.rst:486 ../../using/windows.rst:1756 msgid "#! /usr/bin/python" msgstr "" -#: ../../using/windows.rst:490 ../../using/windows.rst:1760 msgid "" "The default Python or an active virtual environment will be located and " "used. As many Python scripts written to work on Unix will already have this " @@ -795,34 +664,30 @@ msgid "" "usr``." msgstr "" -#: ../../using/windows.rst:496 msgid "" "Any of the above virtual commands can have ```` replaced by an alias " "from an installed runtime. That is, any command generated in the global " "aliases directory (which you may have added to your :envvar:`PATH` " -"environment variable) can be used in a shebang, even if it is not on " -"your :envvar:`PATH`. This allows the use of shebangs like ``/usr/bin/" -"python3.12`` to select a particular runtime." +"environment variable) can be used in a shebang, even if it is not on your :" +"envvar:`PATH`. This allows the use of shebangs like ``/usr/bin/python3.12`` " +"to select a particular runtime." msgstr "" -#: ../../using/windows.rst:502 msgid "" "If no runtimes are installed, or if automatic installation is enabled, the " "requested runtime will be installed if necessary. See :ref:`pymanager-" "config` for information about configuration settings." msgstr "" -#: ../../using/windows.rst:506 msgid "" -"The ``/usr/bin/env`` form of shebang line will also search " -"the :envvar:`PATH` environment variable for unrecognized commands. This " -"corresponds to the behaviour of the Unix ``env`` program, which performs the " -"same search, but prefers launching known Python commands. A warning may be " -"displayed when searching for arbitrary executables, and this search may be " -"disabled by the ``shebang_can_run_anything`` configuration option." +"The ``/usr/bin/env`` form of shebang line will also search the :envvar:" +"`PATH` environment variable for unrecognized commands. This corresponds to " +"the behaviour of the Unix ``env`` program, which performs the same search, " +"but prefers launching known Python commands. A warning may be displayed when " +"searching for arbitrary executables, and this search may be disabled by the " +"``shebang_can_run_anything`` configuration option." msgstr "" -#: ../../using/windows.rst:513 msgid "" "Shebang lines that do not match any of patterns are treated as *Windows* " "executable paths that are absolute or relative to the directory containing " @@ -834,7 +699,6 @@ msgid "" "``shebang_can_run_anything`` configuration option." msgstr "" -#: ../../using/windows.rst:524 msgid "" "The behaviour of shebangs in the Python install manager is subtly different " "from the previous ``py.exe`` launcher, and the old configuration options no " @@ -846,11 +710,9 @@ msgid "" "``pymanager`` commands for installing and uninstalling." msgstr "" -#: ../../using/windows.rst:545 msgid "Advanced Installation" msgstr "" -#: ../../using/windows.rst:547 msgid "" "For situations where an MSIX cannot be installed, such as some older " "administrative distribution platforms, there is an MSI available from the " @@ -861,13 +723,11 @@ msgid "" "configuration." msgstr "" -#: ../../using/windows.rst:556 msgid "" "Windows Server 2019 is the only version of Windows that CPython supports " "that does not support MSIX. For Windows Server 2019, you should use the MSI." msgstr "" -#: ../../using/windows.rst:559 msgid "" "Be aware that the MSI package does not bundle any runtimes, and so is not " "suitable for installs into offline environments without also creating an " @@ -875,7 +735,6 @@ msgid "" "admin-config` for information on handling these scenarios." msgstr "" -#: ../../using/windows.rst:564 msgid "" "Runtimes installed by the MSI are shared with those installed by the MSIX, " "and are all per-user only. The Python install manager does not support " @@ -885,26 +744,22 @@ msgid "" "menu." msgstr "" -#: ../../using/windows.rst:570 msgid "" -"When the MSIX is installed, but commands are not available in " -"the :envvar:`PATH` environment variable, they can be found " -"under :file:`%LocalAppData%\\\\Microsoft\\\\WindowsApps\\" -"\\PythonSoftwareFoundation.PythonManager_3847v3x7pw1km` " -"or :file:`%LocalAppData%\\\\Microsoft\\\\WindowsApps\\" -"\\PythonSoftwareFoundation.PythonManager_qbz5n2kfra8p0`, depending on " -"whether it was installed from python.org or through the Windows Store. " -"Attempting to run the executable directly from Program Files is not " +"When the MSIX is installed, but commands are not available in the :envvar:" +"`PATH` environment variable, they can be found under :file:`%LocalAppData%\\" +"\\Microsoft\\\\WindowsApps\\\\PythonSoftwareFoundation." +"PythonManager_3847v3x7pw1km` or :file:`%LocalAppData%\\\\Microsoft\\" +"\\WindowsApps\\\\PythonSoftwareFoundation.PythonManager_qbz5n2kfra8p0`, " +"depending on whether it was installed from python.org or through the Windows " +"Store. Attempting to run the executable directly from Program Files is not " "recommended." msgstr "" -#: ../../using/windows.rst:579 msgid "" "To programmatically install the Python install manager, it is easiest to use " "WinGet, which is included with all supported versions of Windows:" msgstr "" -#: ../../using/windows.rst:582 msgid "" "$> winget install 9NQ7512CXL7T -e --accept-package-agreements --disable-" "interactivity\n" @@ -913,7 +768,6 @@ msgid "" "$> py install --configure -y" msgstr "" -#: ../../using/windows.rst:589 msgid "" "To download the Python install manager and install on another machine, the " "following WinGet command will download the required files from the Store to " @@ -923,20 +777,17 @@ msgid "" "below." msgstr "" -#: ../../using/windows.rst:595 msgid "" "$> winget download 9NQ7512CXL7T -e --skip-license --accept-package-" "agreements --accept-source-agreements" msgstr "" -#: ../../using/windows.rst:599 msgid "" "To programmatically install or uninstall an MSIX using only PowerShell, the " "`Add-AppxPackage`_ and `Remove-AppxPackage`_ PowerShell cmdlets are " "recommended:" msgstr "" -#: ../../using/windows.rst:602 msgid "" "$> Add-AppxPackage C:\\Downloads\\python-manager-25.0.msix\n" "...\n" @@ -944,7 +795,6 @@ msgid "" "AppxPackage" msgstr "" -#: ../../using/windows.rst:608 msgid "" "The latest release can be downloaded and installed by Windows by passing the " "AppInstaller file to the Add-AppxPackage command. This installs using the " @@ -952,13 +802,11 @@ msgid "" "the Store (interactively or using WinGet) is not possible." msgstr "" -#: ../../using/windows.rst:613 msgid "" "$> Add-AppxPackage -AppInstallerFile https://www.python.org/ftp/python/" "pymanager/pymanager.appinstaller" msgstr "" -#: ../../using/windows.rst:617 msgid "" "Other tools and APIs may also be used to provision an MSIX package for all " "users on a machine, but Python does not consider this a supported scenario. " @@ -967,7 +815,6 @@ msgid "" "for your deployment tool." msgstr "" -#: ../../using/windows.rst:623 msgid "" "Regardless of the install method, users will still need to install their own " "copies of Python itself, as there is no way to trigger those installs " @@ -975,7 +822,6 @@ msgid "" "Python will be available for all users to install without network access." msgstr "" -#: ../../using/windows.rst:628 msgid "" "Note that the MSIX downloadable from the Store and from the Python website " "are subtly different and cannot be installed at the same time. Wherever " @@ -985,11 +831,9 @@ msgid "" "prevent using the Store package in this way." msgstr "" -#: ../../using/windows.rst:639 msgid "Administrative Configuration" msgstr "" -#: ../../using/windows.rst:641 msgid "" "There are a number of options that may be useful for administrators to " "override configuration of the Python install manager. These can be used to " @@ -998,7 +842,6 @@ msgid "" "below." msgstr "" -#: ../../using/windows.rst:646 msgid "" "Configuration options may be overridden in the registry by setting values " "under :file:`HKEY_LOCAL_MACHINE\\\\Software\\\\Policies\\\\Python\\" @@ -1011,7 +854,6 @@ msgid "" "``base_config`` allows users to further modify settings they may need." msgstr "" -#: ../../using/windows.rst:656 msgid "" "Note that most settings with environment variables support those variables " "because their default setting specifies the variable. If you override them, " @@ -1023,160 +865,126 @@ msgid "" "environment variable will be used instead." msgstr "" -#: ../../using/windows.rst:665 msgid "" "Configuration settings that are paths are interpreted as relative to the " "directory containing the configuration file that specified them." msgstr "" -#: ../../using/windows.rst:672 msgid "Administrative configuration options" msgstr "" -#: ../../using/windows.rst:679 msgid "``base_config``" msgstr "" -#: ../../using/windows.rst:680 msgid "" "The highest priority configuration file to read. Note that only the built-in " "configuration file and the registry can modify this setting." msgstr "" -#: ../../using/windows.rst:684 msgid "``user_config``" msgstr "" -#: ../../using/windows.rst:685 msgid "The second configuration file to read." msgstr "" -#: ../../using/windows.rst:687 msgid "``additional_config``" msgstr "" -#: ../../using/windows.rst:688 msgid "The third configuration file to read." msgstr "" -#: ../../using/windows.rst:690 msgid "``registry_override_key``" msgstr "" -#: ../../using/windows.rst:691 msgid "" "Registry location to check for overrides. Note that only the built-in " "configuration file can modify this setting." msgstr "" -#: ../../using/windows.rst:694 msgid "``bundled_dir``" msgstr "" -#: ../../using/windows.rst:695 msgid "Read-only directory containing locally cached files." msgstr "" -#: ../../using/windows.rst:697 msgid "``install.fallback_source``" msgstr "" -#: ../../using/windows.rst:698 msgid "" "Path or URL to an index to consult when the main index cannot be accessed." msgstr "" -#: ../../using/windows.rst:700 msgid "``install.enable_shortcut_kinds``" msgstr "" -#: ../../using/windows.rst:701 msgid "" "Comma-separated list of shortcut kinds to allow (e.g. ``\"pep514,start\"``). " "Enabled shortcuts may still be disabled by ``disable_shortcut_kinds``." msgstr "" -#: ../../using/windows.rst:704 msgid "``install.disable_shortcut_kinds``" msgstr "" -#: ../../using/windows.rst:705 msgid "" -"Comma-separated list of shortcut kinds to exclude (e.g. " -"``\"pep514,start\"``). Disabled shortcuts are not reactivated by " +"Comma-separated list of shortcut kinds to exclude (e.g. ``\"pep514," +"start\"``). Disabled shortcuts are not reactivated by " "``enable_shortcut_kinds``." msgstr "" -#: ../../using/windows.rst:709 msgid "``pep514_root``" msgstr "" -#: ../../using/windows.rst:710 msgid "" -"Registry location to read and write PEP 514 entries into. By " -"default, :file:`HKEY_CURRENT_USER\\\\Software\\\\Python`." +"Registry location to read and write PEP 514 entries into. By default, :file:" +"`HKEY_CURRENT_USER\\\\Software\\\\Python`." msgstr "" -#: ../../using/windows.rst:713 msgid "``start_folder``" msgstr "" -#: ../../using/windows.rst:714 msgid "" "Start menu folder to write shortcuts into. By default, ``Python``. This path " "is relative to the user's Programs folder." msgstr "" -#: ../../using/windows.rst:718 msgid "``virtual_env``" msgstr "" -#: ../../using/windows.rst:719 msgid "" "Path to the active virtual environment. By default, this is " "``%VIRTUAL_ENV%``, but may be set empty to disable venv detection." msgstr "" -#: ../../using/windows.rst:723 msgid "``shebang_can_run_anything_silently``" msgstr "" -#: ../../using/windows.rst:724 msgid "" "True to suppress visible warnings when a shebang launches an application " "other than a Python runtime." msgstr "" -#: ../../using/windows.rst:730 ../../using/windows.rst:1544 msgid "Installing Free-threaded Binaries" msgstr "" -#: ../../using/windows.rst:732 ../../using/windows.rst:992 -#: ../../using/windows.rst:1546 msgid "(Experimental)" msgstr "" -#: ../../using/windows.rst:736 ../../using/windows.rst:996 -#: ../../using/windows.rst:1550 msgid "" "Everything described in this section is considered experimental, and should " "be expected to change in future releases." msgstr "" -#: ../../using/windows.rst:739 msgid "" "Pre-built distributions of the experimental free-threaded build are " "available by installing tags with the ``t`` suffix." msgstr "" -#: ../../using/windows.rst:742 msgid "" "$> py install 3.14t\n" "$> py install 3.14t-arm64\n" "$> py install 3.14t-32" msgstr "" -#: ../../using/windows.rst:748 msgid "" "This will install and register as normal. If you have no other runtimes " "installed, then ``python`` will launch this one. Otherwise, you will need to " @@ -1185,11 +993,9 @@ msgid "" "commands." msgstr "" -#: ../../using/windows.rst:756 ../../using/windows.rst:768 msgid "Troubleshooting" msgstr "" -#: ../../using/windows.rst:758 msgid "" "If your Python install manager does not seem to be working correctly, please " "work through these tests and fixes to see if it helps. If not, please report " @@ -1198,25 +1004,20 @@ msgid "" "by default)." msgstr "" -#: ../../using/windows.rst:772 msgid "Symptom" msgstr "" -#: ../../using/windows.rst:773 msgid "Things to try" msgstr "" -#: ../../using/windows.rst:775 msgid "" "``python`` gives me a \"command not found\" error or opens the Store app " "when I type it in my terminal." msgstr "" -#: ../../using/windows.rst:777 ../../using/windows.rst:790 msgid "Did you :ref:`install the Python install manager `?" msgstr "" -#: ../../using/windows.rst:780 ../../using/windows.rst:793 msgid "" "Click Start, open \"Manage app execution aliases\", and check that the " "aliases for \"Python (default)\" are enabled. If they already are, try " @@ -1224,63 +1025,52 @@ msgid "" "windowed)\" and \"Python install manager\" commands may also need refreshing." msgstr "" -#: ../../using/windows.rst:787 msgid "Check that the ``py`` and ``pymanager`` commands work." msgstr "" -#: ../../using/windows.rst:789 msgid "" "``py`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" -#: ../../using/windows.rst:799 msgid "" "``py`` gives me a \"can't open file\" error when I type commands in my " "terminal." msgstr "" -#: ../../using/windows.rst:801 msgid "" "This usually means you have the legacy launcher installed and it has " "priority over the Python install manager. To remove, click Start, open " "\"Installed apps\", search for \"Python launcher\" and uninstall it." msgstr "" -#: ../../using/windows.rst:806 msgid "``python`` doesn't launch the same runtime as ``py``" msgstr "" -#: ../../using/windows.rst:807 msgid "" "Click Start, open \"Installed apps\", look for any existing Python runtimes, " "and either remove them or Modify and disable the :envvar:`PATH` options." msgstr "" -#: ../../using/windows.rst:811 msgid "" "Click Start, open \"Manage app execution aliases\", and check that your " "``python.exe`` alias is set to \"Python (default)\"" msgstr "" -#: ../../using/windows.rst:814 msgid "``python`` and ``py`` don't launch the runtime I expect" msgstr "" -#: ../../using/windows.rst:815 msgid "" -"Check your ``PYTHON_MANAGER_DEFAULT`` environment variable or " +"Check your :envvar:`PYTHON_MANAGER_DEFAULT` environment variable or " "``default_tag`` configuration. The ``py list`` command will show your " "default based on these settings." msgstr "" -#: ../../using/windows.rst:820 msgid "" "Installs that are managed by the Python install manager will be chosen ahead " "of unmanaged installs. Use ``py install`` to install the runtime you expect, " "or configure your default tag." msgstr "" -#: ../../using/windows.rst:826 msgid "" "Prerelease and experimental installs that are not managed by the Python " "install manager may be chosen ahead of stable releases. Configure your " @@ -1288,29 +1078,24 @@ msgid "" "install``." msgstr "" -#: ../../using/windows.rst:831 msgid "" "``pythonw`` or ``pyw`` don't launch the same runtime as ``python`` or ``py``" msgstr "" -#: ../../using/windows.rst:832 msgid "" "Click Start, open \"Manage app execution aliases\", and check that your " "``pythonw.exe`` and ``pyw.exe`` aliases are consistent with your others." msgstr "" -#: ../../using/windows.rst:835 msgid "" "``pip`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" -#: ../../using/windows.rst:836 msgid "" -"Have you activated a virtual environment? Run the " -"``.venv\\Scripts\\activate`` script in your terminal to activate." +"Have you activated a virtual environment? Run the ``." +"venv\\Scripts\\activate`` script in your terminal to activate." msgstr "" -#: ../../using/windows.rst:840 msgid "" "The package may be available but missing the generated executable. We " "recommend using the ``python -m pip`` command instead, or alternatively the " @@ -1319,28 +1104,23 @@ msgid "" "for each runtime, and so you may need to add multiple paths." msgstr "" -#: ../../using/windows.rst:852 msgid "The embeddable package" msgstr "" -#: ../../using/windows.rst:856 msgid "" "The embedded distribution is a ZIP file containing a minimal Python " "environment. It is intended for acting as part of another application, " "rather than being directly accessed by end-users." msgstr "" -#: ../../using/windows.rst:860 msgid "" "To install an embedded distribution, we recommend using ``py install`` with " "the ``--target`` option:" msgstr "" -#: ../../using/windows.rst:863 msgid "$> py install 3.14-embed --target=runtime" msgstr "" -#: ../../using/windows.rst:867 msgid "" "When extracted, the embedded distribution is (almost) fully isolated from " "the user's system, including environment variables, system registry " @@ -1351,14 +1131,12 @@ msgid "" "documentation are not included." msgstr "" -#: ../../using/windows.rst:874 msgid "" "A default ``._pth`` file is included, which further restricts the default " "search paths (as described below in :ref:`windows_finding_modules`). This " "file is intended for embedders to modify as necessary." msgstr "" -#: ../../using/windows.rst:878 msgid "" "Third-party packages should be installed by the application installer " "alongside the embedded distribution. Using pip to manage dependencies as for " @@ -1369,16 +1147,13 @@ msgid "" "compatibility with newer versions before providing updates to users." msgstr "" -#: ../../using/windows.rst:886 msgid "" "The two recommended use cases for this distribution are described below." msgstr "" -#: ../../using/windows.rst:889 msgid "Python Application" msgstr "" -#: ../../using/windows.rst:891 msgid "" "An application written in Python does not necessarily require users to be " "aware of that fact. The embedded distribution may be used in this case to " @@ -1387,7 +1162,6 @@ msgid "" "there are two options." msgstr "" -#: ../../using/windows.rst:897 msgid "" "Using a specialized executable as a launcher requires some coding, but " "provides the most transparent experience for users. With a customized " @@ -1398,7 +1172,6 @@ msgid "" "line." msgstr "" -#: ../../using/windows.rst:904 msgid "" "The simpler approach is to provide a batch file or generated shortcut that " "directly calls the ``python.exe`` or ``pythonw.exe`` with the required " @@ -1407,7 +1180,6 @@ msgid "" "from other running Python processes or file associations." msgstr "" -#: ../../using/windows.rst:910 msgid "" "With the latter approach, packages should be installed as directories " "alongside the Python executable to ensure they are available on the path. " @@ -1416,11 +1188,9 @@ msgid "" "application." msgstr "" -#: ../../using/windows.rst:916 msgid "Embedding Python" msgstr "" -#: ../../using/windows.rst:918 msgid "" "Applications written in native code often require some form of scripting " "language, and the embedded Python distribution can be used for this purpose. " @@ -1431,7 +1201,6 @@ msgid "" "interpreter." msgstr "" -#: ../../using/windows.rst:925 msgid "" "As with the application use, packages can be installed to any location as " "there is an opportunity to specify search paths before initializing the " @@ -1439,11 +1208,9 @@ msgid "" "the embedded distribution and a regular installation." msgstr "" -#: ../../using/windows.rst:934 msgid "The nuget.org packages" msgstr "" -#: ../../using/windows.rst:938 msgid "" "The nuget.org package is a reduced size Python environment intended for use " "on continuous integration and build systems that do not have a system-wide " @@ -1451,14 +1218,12 @@ msgid "" "works perfectly fine for packages containing build-time tools." msgstr "" -#: ../../using/windows.rst:943 msgid "" "Visit `nuget.org `_ for the most up-to-date " "information on using nuget. What follows is a summary that is sufficient for " "Python developers." msgstr "" -#: ../../using/windows.rst:947 msgid "" "The ``nuget.exe`` command line tool may be downloaded directly from " "``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With " @@ -1466,13 +1231,11 @@ msgid "" "installed using::" msgstr "" -#: ../../using/windows.rst:952 msgid "" "nuget.exe install python -ExcludeVersion -OutputDirectory .\n" "nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory ." msgstr "" -#: ../../using/windows.rst:955 msgid "" "To select a particular version, add a ``-Version 3.x.y``. The output " "directory may be changed from ``.``, and the package will be installed into " @@ -1482,7 +1245,6 @@ msgid "" "directory that contains the Python installation:" msgstr "" -#: ../../using/windows.rst:962 msgid "" "# Without -ExcludeVersion\n" "> .\\python.3.5.2\\tools\\python.exe -V\n" @@ -1493,7 +1255,6 @@ msgid "" "Python 3.5.2" msgstr "" -#: ../../using/windows.rst:972 msgid "" "In general, nuget packages are not upgradeable, and newer versions should be " "installed side-by-side and referenced using the full path. Alternatively, " @@ -1501,7 +1262,6 @@ msgid "" "will do this automatically if they do not preserve files between builds." msgstr "" -#: ../../using/windows.rst:977 msgid "" "Alongside the ``tools`` directory is a ``build\\native`` directory. This " "contains a MSBuild properties file ``python.props`` that can be used in a C+" @@ -1509,7 +1269,6 @@ msgid "" "automatically use the headers and import libraries in your build." msgstr "" -#: ../../using/windows.rst:982 msgid "" "The package information pages on nuget.org are `www.nuget.org/packages/" "python `_ for the 64-bit version, " @@ -1518,60 +1277,49 @@ msgid "" "`_ for the ARM64 version" msgstr "" -#: ../../using/windows.rst:990 msgid "Free-threaded packages" msgstr "" -#: ../../using/windows.rst:999 msgid "" "Packages containing free-threaded binaries are named `python-freethreaded " "`_ for the 64-bit " "version, `pythonx86-freethreaded `_ for the 32-bit version, and `pythonarm64-freethreaded " "`_ for the ARM64 " -"version. These packages contain both the ``python3.13t.exe`` and " -"``python.exe`` entry points, both of which run free threaded." +"version. These packages contain both the ``python3.13t.exe`` and ``python." +"exe`` entry points, both of which run free threaded." msgstr "" -#: ../../using/windows.rst:1010 msgid "Alternative bundles" msgstr "" -#: ../../using/windows.rst:1012 msgid "" "Besides the standard CPython distribution, there are modified packages " "including additional functionality. The following is a list of popular " "versions and their key features:" msgstr "" -#: ../../using/windows.rst:1016 msgid "`ActivePython `_" msgstr "" -#: ../../using/windows.rst:1017 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" -#: ../../using/windows.rst:1019 msgid "`Anaconda `_" msgstr "" -#: ../../using/windows.rst:1020 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." msgstr "" -#: ../../using/windows.rst:1023 msgid "" "`Enthought Deployment Manager `_" msgstr "" -#: ../../using/windows.rst:1024 msgid "\"The Next Generation Python Environment and Package Manager\"." msgstr "" -#: ../../using/windows.rst:1026 msgid "" "Previously Enthought provided Canopy, but it `reached end of life in 2016 " "`_." msgstr "" -#: ../../using/windows.rst:1029 msgid "`WinPython `_" msgstr "" -#: ../../using/windows.rst:1030 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." msgstr "" -#: ../../using/windows.rst:1033 msgid "" "Note that these packages may not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" -#: ../../using/windows.rst:1038 msgid "Supported Windows versions" msgstr "" -#: ../../using/windows.rst:1040 msgid "" "As specified in :pep:`11`, a Python release only supports a Windows platform " "while Microsoft considers the platform under extended support. This means " @@ -1608,17 +1351,14 @@ msgid "" "please install Python 3.12." msgstr "" -#: ../../using/windows.rst:1050 ../../using/windows.rst:1331 msgid "Removing the MAX_PATH Limitation" msgstr "" -#: ../../using/windows.rst:1052 ../../using/windows.rst:1333 msgid "" "Windows historically has limited path lengths to 260 characters. This meant " "that paths longer than this would not resolve and errors would result." msgstr "" -#: ../../using/windows.rst:1055 msgid "" "In the latest versions of Windows, this limitation can be expanded to over " "32,000 characters. Your administrator will need to activate the \"Enable " @@ -1627,36 +1367,30 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." msgstr "" -#: ../../using/windows.rst:1060 ../../using/windows.rst:1342 msgid "" "This allows the :func:`open` function, the :mod:`os` module and most other " "path functionality to accept and return paths longer than 260 characters." msgstr "" -#: ../../using/windows.rst:1063 msgid "" "After changing the above option and rebooting, no further configuration is " "required." msgstr "" -#: ../../using/windows.rst:1070 msgid "UTF-8 mode" msgstr "" -#: ../../using/windows.rst:1074 msgid "" "Windows still uses legacy encodings for the system encoding (the ANSI Code " -"Page). Python uses it for the default encoding of text files " -"(e.g. :func:`locale.getencoding`)." +"Page). Python uses it for the default encoding of text files (e.g. :func:" +"`locale.getencoding`)." msgstr "" -#: ../../using/windows.rst:1078 msgid "" "This may cause issues because UTF-8 is widely used on the internet and most " "Unix systems, including WSL (Windows Subsystem for Linux)." msgstr "" -#: ../../using/windows.rst:1081 msgid "" "You can use the :ref:`Python UTF-8 Mode ` to change the default " "text encoding to UTF-8. You can enable the :ref:`Python UTF-8 Mode ` is enabled, you can still use " "the system encoding (the ANSI Code Page) via the \"mbcs\" codec." msgstr "" -#: ../../using/windows.rst:1090 msgid "" "Note that adding ``PYTHONUTF8=1`` to the default environment variables will " "affect all Python 3.7+ applications on your system. If you have any Python " @@ -1680,63 +1412,53 @@ msgid "" "utf8`` command line option." msgstr "" -#: ../../using/windows.rst:1097 msgid "" "Even when UTF-8 mode is disabled, Python uses UTF-8 by default on Windows " "for:" msgstr "" -#: ../../using/windows.rst:1100 msgid "Console I/O including standard I/O (see :pep:`528` for details)." msgstr "" -#: ../../using/windows.rst:1101 msgid "" "The :term:`filesystem encoding ` " "(see :pep:`529` for details)." msgstr "" -#: ../../using/windows.rst:1108 msgid "Finding modules" msgstr "" -#: ../../using/windows.rst:1110 msgid "" "These notes supplement the description at :ref:`sys-path-init` with detailed " "Windows notes." msgstr "" -#: ../../using/windows.rst:1113 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" msgstr "" -#: ../../using/windows.rst:1116 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." msgstr "" -#: ../../using/windows.rst:1119 msgid "" -"If the environment variable :envvar:`PYTHONPATH` exists, as described " -"in :ref:`using-on-envvars`, its entries are added next. Note that on " -"Windows, paths in this variable must be separated by semicolons, to " -"distinguish them from the colon used in drive identifiers (``C:\\`` etc.)." +"If the environment variable :envvar:`PYTHONPATH` exists, as described in :" +"ref:`using-on-envvars`, its entries are added next. Note that on Windows, " +"paths in this variable must be separated by semicolons, to distinguish them " +"from the colon used in drive identifiers (``C:\\`` etc.)." msgstr "" -#: ../../using/windows.rst:1124 msgid "" -"Additional \"application paths\" can be added in the registry as subkeys " -"of :samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` " -"under both the ``HKEY_CURRENT_USER`` and ``HKEY_LOCAL_MACHINE`` hives. " -"Subkeys which have semicolon-delimited path strings as their default value " -"will cause each path to be added to :data:`sys.path`. (Note that all known " +"Additional \"application paths\" can be added in the registry as subkeys of :" +"samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " +"both the ``HKEY_CURRENT_USER`` and ``HKEY_LOCAL_MACHINE`` hives. Subkeys " +"which have semicolon-delimited path strings as their default value will " +"cause each path to be added to :data:`sys.path`. (Note that all known " "installers only use HKLM, so HKCU is typically empty.)" msgstr "" -#: ../../using/windows.rst:1131 msgid "" "If the environment variable :envvar:`PYTHONHOME` is set, it is assumed as " "\"Python Home\". Otherwise, the path of the main Python executable is used " @@ -1747,31 +1469,26 @@ msgid "" "PythonPath stored in the registry." msgstr "" -#: ../../using/windows.rst:1139 msgid "" "If the Python Home cannot be located, no :envvar:`PYTHONPATH` is specified " "in the environment, and no registry entries can be found, a default path " "with relative entries is used (e.g. ``.\\Lib;.\\plat-win``, etc)." msgstr "" -#: ../../using/windows.rst:1143 msgid "" "If a ``pyvenv.cfg`` file is found alongside the main executable or in the " "directory one level above the executable, the following variations apply:" msgstr "" -#: ../../using/windows.rst:1146 msgid "" "If ``home`` is an absolute path and :envvar:`PYTHONHOME` is not set, this " "path is used instead of the path to the main executable when deducing the " "home location." msgstr "" -#: ../../using/windows.rst:1150 msgid "The end result of all this is:" msgstr "" -#: ../../using/windows.rst:1152 msgid "" "When running :file:`python.exe`, or any other .exe in the main Python " "directory (either an installed version, or directly from the PCbuild " @@ -1779,7 +1496,6 @@ msgid "" "ignored. Other \"application paths\" in the registry are always read." msgstr "" -#: ../../using/windows.rst:1157 msgid "" "When Python is hosted in another .exe (different directory, embedded via " "COM, etc), the \"Python Home\" will not be deduced, so the core path from " @@ -1787,20 +1503,17 @@ msgid "" "always read." msgstr "" -#: ../../using/windows.rst:1161 msgid "" "If Python can't find its home and there are no registry value (frozen .exe, " "some very strange installation setup) you get a path with some default, but " "relative, paths." msgstr "" -#: ../../using/windows.rst:1165 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" msgstr "" -#: ../../using/windows.rst:1168 msgid "" "Include a ``._pth`` file alongside your executable containing the " "directories to include. This will ignore paths listed in the registry and " @@ -1808,20 +1521,17 @@ msgid "" "listed." msgstr "" -#: ../../using/windows.rst:1173 msgid "" "If you are loading :file:`python3.dll` or :file:`python37.dll` in your own " -"executable, explicitly set :c:member:`PyConfig.module_search_paths` " -"before :c:func:`Py_InitializeFromConfig`." +"executable, explicitly set :c:member:`PyConfig.module_search_paths` before :" +"c:func:`Py_InitializeFromConfig`." msgstr "" -#: ../../using/windows.rst:1177 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." msgstr "" -#: ../../using/windows.rst:1180 msgid "" "If you cannot use the previous suggestions (for example, you are a " "distribution that allows people to run :file:`python.exe` directly), ensure " @@ -1830,7 +1540,6 @@ msgid "" "correctly named ZIP file will be detected instead.)" msgstr "" -#: ../../using/windows.rst:1186 msgid "" "These will ensure that the files in a system-wide installation will not take " "precedence over the copy of the standard library bundled with your " @@ -1840,19 +1549,16 @@ msgid "" "packages." msgstr "" -#: ../../using/windows.rst:1194 msgid "" -"Add ``._pth`` file support and removes ``applocal`` option from " -"``pyvenv.cfg``." +"Add ``._pth`` file support and removes ``applocal`` option from ``pyvenv." +"cfg``." msgstr "" -#: ../../using/windows.rst:1199 msgid "" "Add :file:`python{XX}.zip` as a potential landmark when directly adjacent to " "the executable." msgstr "" -#: ../../using/windows.rst:1204 msgid "" "Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " "be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " @@ -1860,86 +1566,69 @@ msgid "" "explicitly added to :data:`sys.meta_path` in the future." msgstr "" -#: ../../using/windows.rst:1210 msgid "Additional modules" msgstr "" -#: ../../using/windows.rst:1212 msgid "" "Even though Python aims to be portable among all platforms, there are " "features that are unique to Windows. A couple of modules, both in the " "standard library and external, and snippets exist to use these features." msgstr "" -#: ../../using/windows.rst:1216 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." msgstr "" -#: ../../using/windows.rst:1220 msgid "PyWin32" msgstr "" -#: ../../using/windows.rst:1222 msgid "" "The :pypi:`PyWin32` module by Mark Hammond is a collection of modules for " "advanced Windows-specific support. This includes utilities for:" msgstr "" -#: ../../using/windows.rst:1226 msgid "" "`Component Object Model `_ (COM)" msgstr "" -#: ../../using/windows.rst:1229 msgid "Win32 API calls" msgstr "" -#: ../../using/windows.rst:1230 msgid "Registry" msgstr "" -#: ../../using/windows.rst:1231 msgid "Event log" msgstr "" -#: ../../using/windows.rst:1232 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" msgstr "" -#: ../../using/windows.rst:1236 msgid "" -"`PythonWin `_ is a sample MFC application shipped " -"with PyWin32. It is an embeddable IDE with a built-in debugger." +"`PythonWin `_ is a sample MFC application shipped with PyWin32. " +"It is an embeddable IDE with a built-in debugger." msgstr "" -#: ../../using/windows.rst:1242 msgid "" "`Win32 How Do I...? `_" msgstr "" -#: ../../using/windows.rst:1243 msgid "by Tim Golden" msgstr "" -#: ../../using/windows.rst:1245 msgid "`Python and COM `_" msgstr "" -#: ../../using/windows.rst:1246 msgid "by David and Paul Boddie" msgstr "" -#: ../../using/windows.rst:1250 msgid "cx_Freeze" msgstr "" -#: ../../using/windows.rst:1252 msgid "" "`cx_Freeze `_ wraps Python " "scripts into executable Windows programs (:file:`{*}.exe` files). When you " @@ -1947,11 +1636,9 @@ msgid "" "users to install Python." msgstr "" -#: ../../using/windows.rst:1259 msgid "Compiling Python on Windows" msgstr "" -#: ../../using/windows.rst:1261 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -1959,38 +1646,31 @@ msgid "" "devguide.python.org/setup/#get-the-source-code>`_." msgstr "" -#: ../../using/windows.rst:1266 msgid "" "The source tree contains a build solution and project files for Microsoft " "Visual Studio, which is the compiler used to build the official Python " "releases. These files are in the :file:`PCbuild` directory." msgstr "" -#: ../../using/windows.rst:1270 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." msgstr "" -#: ../../using/windows.rst:1272 msgid "For extension modules, consult :ref:`building-on-windows`." msgstr "" -#: ../../using/windows.rst:1279 msgid "The full installer (deprecated)" msgstr "" -#: ../../using/windows.rst:1283 msgid "" "This installer is deprecated since 3.14 and will not be produced for Python " "3.16 or later. See :ref:`pymanager` for the modern installer." msgstr "" -#: ../../using/windows.rst:1288 msgid "Installation steps" msgstr "" -#: ../../using/windows.rst:1290 msgid "" "Four Python |version| installers are available for download - two each for " "the 32-bit and 64-bit versions of the interpreter. The *web installer* is a " @@ -2001,43 +1681,34 @@ msgid "" "ways to avoid downloading during installation." msgstr "" -#: ../../using/windows.rst:1298 msgid "After starting the installer, one of two options may be selected:" msgstr "" -#: ../../using/windows.rst:1302 msgid "If you select \"Install Now\":" msgstr "" -#: ../../using/windows.rst:1304 msgid "" "You will *not* need to be an administrator (unless a system update for the C " "Runtime Library is required or you install the :ref:`launcher` for all users)" msgstr "" -#: ../../using/windows.rst:1307 msgid "Python will be installed into your user directory" msgstr "" -#: ../../using/windows.rst:1308 msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" msgstr "" -#: ../../using/windows.rst:1310 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" -#: ../../using/windows.rst:1311 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" -#: ../../using/windows.rst:1312 msgid "Shortcuts will only be visible for the current user" msgstr "" -#: ../../using/windows.rst:1314 msgid "" "Selecting \"Customize installation\" will allow you to select the features " "to install, the installation location and other options or post-install " @@ -2045,42 +1716,33 @@ msgid "" "option." msgstr "" -#: ../../using/windows.rst:1318 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" msgstr "" -#: ../../using/windows.rst:1321 msgid "You may be required to provide administrative credentials or approval" msgstr "" -#: ../../using/windows.rst:1322 msgid "Python will be installed into the Program Files directory" msgstr "" -#: ../../using/windows.rst:1323 msgid "The :ref:`launcher` will be installed into the Windows directory" msgstr "" -#: ../../using/windows.rst:1324 msgid "Optional features may be selected during installation" msgstr "" -#: ../../using/windows.rst:1325 msgid "The standard library can be pre-compiled to bytecode" msgstr "" -#: ../../using/windows.rst:1326 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" -#: ../../using/windows.rst:1327 msgid "Shortcuts are available for all users" msgstr "" -#: ../../using/windows.rst:1336 msgid "" "In the latest versions of Windows, this limitation can be expanded to " "approximately 32,000 characters. Your administrator will need to activate " @@ -2089,19 +1751,15 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." msgstr "" -#: ../../using/windows.rst:1345 msgid "After changing the above option, no further configuration is required." msgstr "" -#: ../../using/windows.rst:1349 msgid "Support for long paths was enabled in Python." msgstr "" -#: ../../using/windows.rst:1354 msgid "Installing Without UI" msgstr "" -#: ../../using/windows.rst:1356 msgid "" "All of the options available in the installer UI can also be specified from " "the command line, allowing scripted installers to replicate an installation " @@ -2109,367 +1767,278 @@ msgid "" "without suppressing the UI in order to change some of the defaults." msgstr "" -#: ../../using/windows.rst:1361 msgid "" "The following options (found by executing the installer with ``/?``) can be " "passed into the installer:" msgstr "" -#: ../../using/windows.rst:1365 ../../using/windows.rst:1385 -#: ../../using/windows.rst:1980 msgid "Name" msgstr "" -#: ../../using/windows.rst:1367 msgid "/passive" msgstr "" -#: ../../using/windows.rst:1367 msgid "to display progress without requiring user interaction" msgstr "" -#: ../../using/windows.rst:1369 msgid "/quiet" msgstr "" -#: ../../using/windows.rst:1369 msgid "to install/uninstall without displaying any UI" msgstr "" -#: ../../using/windows.rst:1371 msgid "/simple" msgstr "" -#: ../../using/windows.rst:1371 msgid "to prevent user customization" msgstr "" -#: ../../using/windows.rst:1373 msgid "/uninstall" msgstr "" -#: ../../using/windows.rst:1373 msgid "to remove Python (without confirmation)" msgstr "" -#: ../../using/windows.rst:1375 msgid "/layout [directory]" msgstr "" -#: ../../using/windows.rst:1375 msgid "to pre-download all components" msgstr "" -#: ../../using/windows.rst:1377 msgid "/log [filename]" msgstr "" -#: ../../using/windows.rst:1377 msgid "to specify log files location" msgstr "" -#: ../../using/windows.rst:1380 msgid "" "All other options are passed as ``name=value``, where the value is usually " "``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " "list of available options is shown below." msgstr "" -#: ../../using/windows.rst:1385 msgid "Default" msgstr "" -#: ../../using/windows.rst:1387 msgid "InstallAllUsers" msgstr "" -#: ../../using/windows.rst:1387 msgid "Perform a system-wide installation." msgstr "" -#: ../../using/windows.rst:1387 ../../using/windows.rst:1413 -#: ../../using/windows.rst:1416 ../../using/windows.rst:1420 -#: ../../using/windows.rst:1429 ../../using/windows.rst:1451 -#: ../../using/windows.rst:1459 ../../using/windows.rst:1462 msgid "0" msgstr "" -#: ../../using/windows.rst:1389 msgid "TargetDir" msgstr "" -#: ../../using/windows.rst:1389 msgid "The installation directory" msgstr "" -#: ../../using/windows.rst:1389 msgid "Selected based on InstallAllUsers" msgstr "" -#: ../../using/windows.rst:1392 msgid "DefaultAllUsersTargetDir" msgstr "" -#: ../../using/windows.rst:1392 msgid "The default installation directory for all-user installs" msgstr "" -#: ../../using/windows.rst:1392 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" msgstr "" -#: ../../using/windows.rst:1397 msgid "DefaultJustForMeTargetDir" msgstr "" -#: ../../using/windows.rst:1397 msgid "The default install directory for just-for-me installs" msgstr "" -#: ../../using/windows.rst:1397 msgid "" -":file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY` " -"or :file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-32` " -"or :file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-64`" +":file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY` or :file:" +"`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-32` or :file:" +"`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-64`" msgstr "" -#: ../../using/windows.rst:1407 msgid "DefaultCustomTargetDir" msgstr "" -#: ../../using/windows.rst:1407 msgid "The default custom install directory displayed in the UI" msgstr "" -#: ../../using/windows.rst:1407 ../../using/windows.rst:1464 msgid "(empty)" msgstr "" -#: ../../using/windows.rst:1410 msgid "AssociateFiles" msgstr "" -#: ../../using/windows.rst:1410 msgid "Create file associations if the launcher is also installed." msgstr "" -#: ../../using/windows.rst:1410 ../../using/windows.rst:1424 -#: ../../using/windows.rst:1427 ../../using/windows.rst:1431 -#: ../../using/windows.rst:1435 ../../using/windows.rst:1439 -#: ../../using/windows.rst:1441 ../../using/windows.rst:1445 -#: ../../using/windows.rst:1449 ../../using/windows.rst:1453 -#: ../../using/windows.rst:1455 ../../using/windows.rst:1457 msgid "1" msgstr "1" -#: ../../using/windows.rst:1413 msgid "CompileAll" msgstr "" -#: ../../using/windows.rst:1413 msgid "Compile all ``.py`` files to ``.pyc``." msgstr "" -#: ../../using/windows.rst:1416 msgid "PrependPath" msgstr "" -#: ../../using/windows.rst:1416 msgid "" "Prepend install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" msgstr "" -#: ../../using/windows.rst:1420 msgid "AppendPath" msgstr "" -#: ../../using/windows.rst:1420 msgid "" "Append install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" msgstr "" -#: ../../using/windows.rst:1424 msgid "Shortcuts" msgstr "" -#: ../../using/windows.rst:1424 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" -#: ../../using/windows.rst:1427 msgid "Include_doc" msgstr "" -#: ../../using/windows.rst:1427 msgid "Install Python manual" msgstr "" -#: ../../using/windows.rst:1429 msgid "Include_debug" msgstr "" -#: ../../using/windows.rst:1429 msgid "Install debug binaries" msgstr "" -#: ../../using/windows.rst:1431 msgid "Include_dev" msgstr "" -#: ../../using/windows.rst:1431 msgid "" "Install developer headers and libraries. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1435 msgid "Include_exe" msgstr "" -#: ../../using/windows.rst:1435 msgid "" "Install :file:`python.exe` and related files. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1439 msgid "Include_launcher" msgstr "" -#: ../../using/windows.rst:1439 msgid "Install :ref:`launcher`." msgstr "" -#: ../../using/windows.rst:1441 msgid "InstallLauncherAllUsers" msgstr "" -#: ../../using/windows.rst:1441 msgid "" "Installs the launcher for all users. Also requires ``Include_launcher`` to " "be set to 1" msgstr "" -#: ../../using/windows.rst:1445 msgid "Include_lib" msgstr "" -#: ../../using/windows.rst:1445 msgid "" "Install standard library and extension modules. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1449 msgid "Include_pip" msgstr "" -#: ../../using/windows.rst:1449 msgid "Install bundled pip and setuptools" msgstr "" -#: ../../using/windows.rst:1451 msgid "Include_symbols" msgstr "" -#: ../../using/windows.rst:1451 msgid "Install debugging symbols (``*.pdb``)" msgstr "" -#: ../../using/windows.rst:1453 msgid "Include_tcltk" msgstr "" -#: ../../using/windows.rst:1453 msgid "Install Tcl/Tk support and IDLE" msgstr "" -#: ../../using/windows.rst:1455 msgid "Include_test" msgstr "" -#: ../../using/windows.rst:1455 msgid "Install standard library test suite" msgstr "" -#: ../../using/windows.rst:1457 msgid "Include_tools" msgstr "" -#: ../../using/windows.rst:1457 msgid "Install utility scripts" msgstr "" -#: ../../using/windows.rst:1459 msgid "LauncherOnly" msgstr "" -#: ../../using/windows.rst:1459 msgid "Only installs the launcher. This will override most other options." msgstr "" -#: ../../using/windows.rst:1462 msgid "SimpleInstall" msgstr "" -#: ../../using/windows.rst:1462 msgid "Disable most install UI" msgstr "" -#: ../../using/windows.rst:1464 msgid "SimpleInstallDescription" msgstr "" -#: ../../using/windows.rst:1464 msgid "A custom message to display when the simplified install UI is used." msgstr "" -#: ../../using/windows.rst:1468 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" msgstr "" -#: ../../using/windows.rst:1471 msgid "python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0" msgstr "" -#: ../../using/windows.rst:1473 msgid "" "To allow users to easily install a personal copy of Python without the test " "suite, you could provide a shortcut with the following command. This will " "display a simplified initial page and disallow customization::" msgstr "" -#: ../../using/windows.rst:1477 msgid "" "python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0\n" " SimpleInstall=1 SimpleInstallDescription=\"Just for me, no test suite.\"" msgstr "" -#: ../../using/windows.rst:1480 msgid "" "(Note that omitting the launcher also omits file associations, and is only " "recommended for per-user installs when there is also a system-wide " "installation that included the launcher.)" msgstr "" -#: ../../using/windows.rst:1484 msgid "" -"The options listed above can also be provided in a file named " -"``unattend.xml`` alongside the executable. This file specifies a list of " -"options and values. When a value is provided as an attribute, it will be " -"converted to a number if possible. Values provided as element text are " -"always left as strings. This example file sets the same options as the " -"previous example:" +"The options listed above can also be provided in a file named ``unattend." +"xml`` alongside the executable. This file specifies a list of options and " +"values. When a value is provided as an attribute, it will be converted to a " +"number if possible. Values provided as element text are always left as " +"strings. This example file sets the same options as the previous example:" msgstr "" -#: ../../using/windows.rst:1490 msgid "" "\n" " " msgstr "" -#: ../../using/windows.rst:1503 msgid "Installing Without Downloading" msgstr "" -#: ../../using/windows.rst:1505 msgid "" "As some features of Python are not included in the initial installer " "download, selecting those features may require an internet connection. To " @@ -2496,7 +2063,6 @@ msgid "" "to be performed it is very useful to have a locally cached copy." msgstr "" -#: ../../using/windows.rst:1513 msgid "" "Execute the following command from Command Prompt to download all possible " "required files. Remember to substitute ``python-3.9.0.exe`` for the actual " @@ -2504,27 +2070,22 @@ msgid "" "avoid collisions between files with the same name." msgstr "" -#: ../../using/windows.rst:1520 msgid "python-3.9.0.exe /layout [optional target directory]" msgstr "" -#: ../../using/windows.rst:1522 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" -#: ../../using/windows.rst:1525 msgid "Modifying an install" msgstr "" -#: ../../using/windows.rst:1527 msgid "" "Once Python has been installed, you can add or remove features through the " "Programs and Features tool that is part of Windows. Select the Python entry " "and choose \"Uninstall/Change\" to open the installer in maintenance mode." msgstr "" -#: ../../using/windows.rst:1531 msgid "" "\"Modify\" allows you to add or remove features by modifying the checkboxes " "- unchanged checkboxes will not install or remove anything. Some options " @@ -2532,26 +2093,22 @@ msgid "" "these, you will need to remove and then reinstall Python completely." msgstr "" -#: ../../using/windows.rst:1536 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." msgstr "" -#: ../../using/windows.rst:1539 msgid "" -"\"Uninstall\" will remove Python entirely, with the exception of " -"the :ref:`launcher`, which has its own entry in Programs and Features." +"\"Uninstall\" will remove Python entirely, with the exception of the :ref:" +"`launcher`, which has its own entry in Programs and Features." msgstr "" -#: ../../using/windows.rst:1553 msgid "" "To install pre-built binaries with free-threading enabled (see :pep:`703`), " "you should select \"Customize installation\". The second page of options " "includes the \"Download free-threaded binaries\" checkbox." msgstr "" -#: ../../using/windows.rst:1559 msgid "" "Selecting this option will download and install additional binaries to the " "same location as the main Python install. The main executable is called " @@ -2560,7 +2117,6 @@ msgid "" "are shared with the main install." msgstr "" -#: ../../using/windows.rst:1565 msgid "" "The free-threaded version is registered as a regular Python install with the " "tag ``3.13t`` (with a ``-32`` or ``-arm64`` suffix as normal for those " @@ -2572,7 +2128,6 @@ msgid "" "not install the free-threaded binaries at this time." msgstr "" -#: ../../using/windows.rst:1574 msgid "" "To specify the install option at the command line, use " "``Include_freethreaded=1``. See :ref:`install-layout-option` for " @@ -2581,24 +2136,20 @@ msgid "" "apply to the free-threaded builds." msgstr "" -#: ../../using/windows.rst:1580 msgid "" "Free-threaded binaries are also available :ref:`on nuget.org `." msgstr "" -#: ../../using/windows.rst:1584 msgid "Python Launcher for Windows (Deprecated)" msgstr "" -#: ../../using/windows.rst:1588 msgid "" "The launcher and this documentation have been superseded by the Python " "Install Manager described above. This is preserved temporarily for " "historical interest." msgstr "" -#: ../../using/windows.rst:1594 msgid "" "The Python launcher for Windows is a utility which aids in locating and " "executing of different Python versions. It allows scripts (or the command-" @@ -2606,7 +2157,6 @@ msgid "" "locate and execute that version." msgstr "" -#: ../../using/windows.rst:1599 msgid "" "Unlike the :envvar:`PATH` variable, the launcher will correctly select the " "most appropriate version of Python. It will prefer per-user installations " @@ -2614,19 +2164,15 @@ msgid "" "most recently installed version." msgstr "" -#: ../../using/windows.rst:1604 msgid "The launcher was originally specified in :pep:`397`." msgstr "" -#: ../../using/windows.rst:1607 msgid "Getting started" msgstr "" -#: ../../using/windows.rst:1610 msgid "From the command-line" msgstr "" -#: ../../using/windows.rst:1614 msgid "" "System-wide installations of Python 3.3 and later will put the launcher on " "your :envvar:`PATH`. The launcher is compatible with all available versions " @@ -2634,62 +2180,50 @@ msgid "" "the launcher is available, execute the following command in Command Prompt::" msgstr "" -#: ../../using/windows.rst:1619 msgid "py" msgstr "" -#: ../../using/windows.rst:1621 msgid "" "You should find that the latest version of Python you have installed is " "started - it can be exited as normal, and any additional command-line " "arguments specified will be sent directly to Python." msgstr "" -#: ../../using/windows.rst:1625 msgid "" "If you have multiple versions of Python installed (e.g., 3.7 and |version|) " "you will have noticed that Python |version| was started - to launch Python " "3.7, try the command::" msgstr "" -#: ../../using/windows.rst:1629 msgid "py -3.7" msgstr "" -#: ../../using/windows.rst:1631 msgid "" "If you want the latest version of Python 2 you have installed, try the " "command::" msgstr "" -#: ../../using/windows.rst:1634 msgid "py -2" msgstr "" -#: ../../using/windows.rst:1636 msgid "" "If you see the following error, you do not have the launcher installed::" msgstr "" -#: ../../using/windows.rst:1638 msgid "" "'py' is not recognized as an internal or external command,\n" "operable program or batch file." msgstr "" -#: ../../using/windows.rst:1641 msgid "The command::" msgstr "" -#: ../../using/windows.rst:1643 msgid "py --list" msgstr "" -#: ../../using/windows.rst:1645 msgid "displays the currently installed version(s) of Python." msgstr "" -#: ../../using/windows.rst:1647 msgid "" "The ``-x.y`` argument is the short form of the ``-V:Company/Tag`` argument, " "which allows selecting a specific Python runtime, including those that may " @@ -2698,14 +2232,12 @@ msgid "" "available runtimes using the ``-V:`` format." msgstr "" -#: ../../using/windows.rst:1653 msgid "" "When using the ``-V:`` argument, specifying the Company will limit selection " "to runtimes from that provider, while specifying only the Tag will select " "from all providers. Note that omitting the slash implies a tag::" msgstr "" -#: ../../using/windows.rst:1657 msgid "" "# Select any '3.*' tagged runtime\n" "py -V:3\n" @@ -2717,14 +2249,12 @@ msgid "" "py -V:PythonCore/3" msgstr "" -#: ../../using/windows.rst:1666 msgid "" "The short form of the argument (``-3``) only ever selects from core Python " "releases, and not other distributions. However, the longer form (``-V:3``) " "will select from any." msgstr "" -#: ../../using/windows.rst:1670 msgid "" "The Company is matched on the full string, case-insensitive. The Tag is " "matched on either the full string, or a prefix, provided the next character " @@ -2733,11 +2263,9 @@ msgid "" "``3.1``), but are compared using text (``-V:3.01`` does not match ``3.1``)." msgstr "" -#: ../../using/windows.rst:1678 msgid "Virtual environments" msgstr "" -#: ../../using/windows.rst:1682 msgid "" "If the launcher is run with no explicit Python version specification, and a " "virtual environment (created with the standard library :mod:`venv` module or " @@ -2747,42 +2275,34 @@ msgid "" "specify the global Python version." msgstr "" -#: ../../using/windows.rst:1690 msgid "From a script" msgstr "" -#: ../../using/windows.rst:1692 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" msgstr "" -#: ../../using/windows.rst:1695 msgid "" "#! python\n" "import sys\n" "sys.stdout.write(\"hello from Python %s\\n\" % (sys.version,))" msgstr "" -#: ../../using/windows.rst:1701 msgid "From the directory in which hello.py lives, execute the command::" msgstr "" -#: ../../using/windows.rst:1703 msgid "py hello.py" msgstr "" -#: ../../using/windows.rst:1705 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" msgstr "" -#: ../../using/windows.rst:1708 msgid "#! python3" msgstr "" -#: ../../using/windows.rst:1712 msgid "" "Re-executing the command should now print the latest Python 3.x information. " "As with the above command-line examples, you can specify a more explicit " @@ -2791,7 +2311,6 @@ msgid "" "information printed." msgstr "" -#: ../../using/windows.rst:1718 msgid "" "Note that unlike interactive use, a bare \"python\" will use the latest " "version of Python 2.x that you have installed. This is for backward " @@ -2799,30 +2318,25 @@ msgid "" "typically refers to Python 2." msgstr "" -#: ../../using/windows.rst:1724 msgid "From file associations" msgstr "" -#: ../../using/windows.rst:1726 msgid "" -"The launcher should have been associated with Python files (i.e. ``.py``, " -"``.pyw``, ``.pyc`` files) when it was installed. This means that when you " +"The launcher should have been associated with Python files (i.e. ``.py``, ``." +"pyw``, ``.pyc`` files) when it was installed. This means that when you " "double-click on one of these files from Windows explorer the launcher will " "be used, and therefore you can use the same facilities described above to " "have the script specify the version which should be used." msgstr "" -#: ../../using/windows.rst:1732 msgid "" "The key benefit of this is that a single launcher can support multiple " "Python versions at the same time depending on the contents of the first line." msgstr "" -#: ../../using/windows.rst:1736 msgid "Shebang Lines" msgstr "" -#: ../../using/windows.rst:1738 msgid "" "If the first line of a script file starts with ``#!``, it is known as a " "\"shebang\" line. Linux and other Unix like operating systems have native " @@ -2832,30 +2346,24 @@ msgid "" "demonstrate their use." msgstr "" -#: ../../using/windows.rst:1745 msgid "" "To allow shebang lines in Python scripts to be portable between Unix and " "Windows, this launcher supports a number of 'virtual' commands to specify " "which interpreter to use. The supported virtual commands are:" msgstr "" -#: ../../using/windows.rst:1749 msgid "``/usr/bin/env``" msgstr "" -#: ../../using/windows.rst:1750 msgid "``/usr/bin/python``" msgstr "" -#: ../../using/windows.rst:1751 msgid "``/usr/local/bin/python``" msgstr "" -#: ../../using/windows.rst:1752 msgid "``python``" msgstr "" -#: ../../using/windows.rst:1766 msgid "" "Any of the above virtual commands can be suffixed with an explicit version " "(either just the major version, or the major and minor version). Furthermore " @@ -2865,21 +2373,18 @@ msgid "" "and the environment will be used." msgstr "" -#: ../../using/windows.rst:1775 msgid "" "Beginning with python launcher 3.7 it is possible to request 64-bit version " "by the \"-64\" suffix. Furthermore it is possible to specify a major and " "architecture without minor (i.e. ``/usr/bin/python3-64``)." msgstr "" -#: ../../using/windows.rst:1781 msgid "" "The \"-64\" suffix is deprecated, and now implies \"any architecture that is " -"not provably i386/32-bit\". To request a specific environment, use the " -"new :samp:`-V:{TAG}` argument with the complete tag." +"not provably i386/32-bit\". To request a specific environment, use the new :" +"samp:`-V:{TAG}` argument with the complete tag." msgstr "" -#: ../../using/windows.rst:1787 msgid "" "Virtual commands referencing ``python`` now prefer an active virtual " "environment rather than searching :envvar:`PATH`. This handles cases where " @@ -2887,7 +2392,6 @@ msgid "" "not present in the active environment." msgstr "" -#: ../../using/windows.rst:1792 msgid "" "The ``/usr/bin/env`` form of shebang line has one further special property. " "Before looking for installed Python interpreters, this form will search the " @@ -2896,12 +2400,11 @@ msgid "" "program, which performs a :envvar:`PATH` search. If an executable matching " "the first argument after the ``env`` command cannot be found, but the " "argument starts with ``python``, it will be handled as described for the " -"other virtual commands. The environment " -"variable :envvar:`PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to " -"skip this search of :envvar:`PATH`." +"other virtual commands. The environment variable :envvar:`!" +"PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip this search of :" +"envvar:`PATH`." msgstr "" -#: ../../using/windows.rst:1803 msgid "" "Shebang lines that do not match any of these patterns are looked up in the " "``[commands]`` section of the launcher's :ref:`.INI file `. " @@ -2912,13 +2415,11 @@ msgid "" "part of the filename)." msgstr "" -#: ../../using/windows.rst:1811 msgid "" "[commands]\n" "/bin/xpython=C:\\Program Files\\XPython\\python.exe" msgstr "" -#: ../../using/windows.rst:1816 msgid "" "Any commands not found in the .INI file are treated as **Windows** " "executable paths that are absolute or relative to the directory containing " @@ -2929,42 +2430,34 @@ msgid "" "will be appended." msgstr "" -#: ../../using/windows.rst:1825 msgid "Arguments in shebang lines" msgstr "" -#: ../../using/windows.rst:1827 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" msgstr "" -#: ../../using/windows.rst:1830 msgid "#! /usr/bin/python -v" msgstr "" -#: ../../using/windows.rst:1834 msgid "Then Python will be started with the ``-v`` option" msgstr "" -#: ../../using/windows.rst:1837 msgid "Customization" msgstr "" -#: ../../using/windows.rst:1842 msgid "Customization via INI files" msgstr "" -#: ../../using/windows.rst:1844 msgid "" "Two .ini files will be searched by the launcher - ``py.ini`` in the current " -"user's application data directory (``%LOCALAPPDATA%`` or " -"``$env:LocalAppData``) and ``py.ini`` in the same directory as the launcher. " -"The same .ini files are used for both the 'console' version of the launcher " -"(i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)." +"user's application data directory (``%LOCALAPPDATA%`` or ``$env:" +"LocalAppData``) and ``py.ini`` in the same directory as the launcher. The " +"same .ini files are used for both the 'console' version of the launcher (i." +"e. py.exe) and for the 'windows' version (i.e. pyw.exe)." msgstr "" -#: ../../using/windows.rst:1850 msgid "" "Customization specified in the \"application directory\" will have " "precedence over the one next to the executable, so a user, who may not have " @@ -2972,11 +2465,9 @@ msgid "" "that global .ini file." msgstr "" -#: ../../using/windows.rst:1855 msgid "Customizing default Python versions" msgstr "" -#: ../../using/windows.rst:1857 msgid "" "In some cases, a version qualifier can be included in a command to dictate " "which version of Python will be used by the command. A version qualifier " @@ -2986,23 +2477,20 @@ msgid "" "\"-32\" or \"-64\"." msgstr "" -#: ../../using/windows.rst:1863 msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." msgstr "" -#: ../../using/windows.rst:1866 msgid "" -"If no version qualifiers are found in a command, the environment " -"variable :envvar:`PY_PYTHON` can be set to specify the default version " -"qualifier. If it is not set, the default is \"3\". The variable can specify " -"any value that may be passed on the command line, such as \"3\", \"3.7\", " -"\"3.7-32\" or \"3.7-64\". (Note that the \"-64\" option is only available " -"with the launcher included with Python 3.7 or newer.)" +"If no version qualifiers are found in a command, the environment variable :" +"envvar:`!PY_PYTHON` can be set to specify the default version qualifier. If " +"it is not set, the default is \"3\". The variable can specify any value that " +"may be passed on the command line, such as \"3\", \"3.7\", \"3.7-32\" or " +"\"3.7-64\". (Note that the \"-64\" option is only available with the " +"launcher included with Python 3.7 or newer.)" msgstr "" -#: ../../using/windows.rst:1873 msgid "" "If no minor version qualifiers are found, the environment variable " "``PY_PYTHON{major}`` (where ``{major}`` is the current major version " @@ -3013,7 +2501,6 @@ msgid "" "version in that family." msgstr "" -#: ../../using/windows.rst:1881 msgid "" "On 64-bit Windows with both 32-bit and 64-bit implementations of the same " "(major.minor) Python version installed, the 64-bit version will always be " @@ -3027,30 +2514,25 @@ msgid "" "suffix can be used on a version specifier to change this behaviour." msgstr "" -#: ../../using/windows.rst:1892 msgid "Examples:" msgstr "" -#: ../../using/windows.rst:1894 msgid "" "If no relevant options are set, the commands ``python`` and ``python2`` will " "use the latest Python 2.x version installed and the command ``python3`` will " "use the latest Python 3.x installed." msgstr "" -#: ../../using/windows.rst:1898 msgid "" "The command ``python3.7`` will not consult any options at all as the " "versions are fully specified." msgstr "" -#: ../../using/windows.rst:1901 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." msgstr "" -#: ../../using/windows.rst:1904 msgid "" "If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit " "implementation of 3.7 whereas the command ``python3`` will use the latest " @@ -3058,13 +2540,11 @@ msgid "" "specified.)" msgstr "" -#: ../../using/windows.rst:1909 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands ``python`` and " "``python3`` will both use specifically 3.7" msgstr "" -#: ../../using/windows.rst:1912 msgid "" "In addition to environment variables, the same settings can be configured in " "the .INI file used by the launcher. The section in the INI file is called " @@ -3074,54 +2554,46 @@ msgid "" "will override things specified in the INI file." msgstr "" -#: ../../using/windows.rst:1919 msgid "For example:" msgstr "" -#: ../../using/windows.rst:1921 msgid "Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:" msgstr "" -#: ../../using/windows.rst:1923 msgid "" "[defaults]\n" "python=3.7" msgstr "" -#: ../../using/windows.rst:1928 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file " "containing:" msgstr "" -#: ../../using/windows.rst:1931 msgid "" "[defaults]\n" "python=3\n" "python3=3.7" msgstr "" -#: ../../using/windows.rst:1938 msgid "Diagnostics" msgstr "" -#: ../../using/windows.rst:1940 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_DEBUG` is set (to any value), " -"the launcher will print diagnostic information to stderr (i.e. to the " -"console). While this information manages to be simultaneously verbose *and* " -"terse, it should allow you to see what versions of Python were located, why " -"a particular version was chosen and the exact command-line used to execute " -"the target Python. It is primarily intended for testing and debugging." +"If an environment variable :envvar:`!PYLAUNCHER_DEBUG` is set (to any " +"value), the launcher will print diagnostic information to stderr (i.e. to " +"the console). While this information manages to be simultaneously verbose " +"*and* terse, it should allow you to see what versions of Python were " +"located, why a particular version was chosen and the exact command-line used " +"to execute the target Python. It is primarily intended for testing and " +"debugging." msgstr "" -#: ../../using/windows.rst:1948 msgid "Dry Run" msgstr "" -#: ../../using/windows.rst:1950 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_DRYRUN` is set (to any " +"If an environment variable :envvar:`!PYLAUNCHER_DRYRUN` is set (to any " "value), the launcher will output the command it would have run, but will not " "actually launch Python. This may be useful for tools that want to use the " "launcher to detect and then launch Python directly. Note that the command " @@ -3129,131 +2601,103 @@ msgid "" "correctly in the console." msgstr "" -#: ../../using/windows.rst:1958 msgid "Install on demand" msgstr "" -#: ../../using/windows.rst:1960 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_ALLOW_INSTALL` is set (to any " -"value), and the requested Python version is not installed but is available " -"on the Microsoft Store, the launcher will attempt to install it. This may " -"require user interaction to complete, and you may need to run the command " -"again." +"If an environment variable :envvar:`!PYLAUNCHER_ALLOW_INSTALL` is set (to " +"any value), and the requested Python version is not installed but is " +"available on the Microsoft Store, the launcher will attempt to install it. " +"This may require user interaction to complete, and you may need to run the " +"command again." msgstr "" -#: ../../using/windows.rst:1965 msgid "" -"An additional :envvar:`PYLAUNCHER_ALWAYS_INSTALL` variable causes the " +"An additional :envvar:`!PYLAUNCHER_ALWAYS_INSTALL` variable causes the " "launcher to always try to install Python, even if it is detected. This is " -"mainly intended for testing (and should be used " -"with :envvar:`PYLAUNCHER_DRYRUN`)." +"mainly intended for testing (and should be used with :envvar:`!" +"PYLAUNCHER_DRYRUN`)." msgstr "" -#: ../../using/windows.rst:1970 msgid "Return codes" msgstr "" -#: ../../using/windows.rst:1972 msgid "" "The following exit codes may be returned by the Python launcher. " "Unfortunately, there is no way to distinguish these from the exit code of " "Python itself." msgstr "" -#: ../../using/windows.rst:1975 msgid "" "The names of codes are as used in the sources, and are only for reference. " "There is no way to access or resolve them apart from reading this page. " "Entries are listed in alphabetical order of names." msgstr "" -#: ../../using/windows.rst:1980 msgid "Value" msgstr "" -#: ../../using/windows.rst:1982 msgid "RC_BAD_VENV_CFG" msgstr "" -#: ../../using/windows.rst:1982 msgid "107" msgstr "" -#: ../../using/windows.rst:1982 msgid "A :file:`pyvenv.cfg` was found but is corrupt." msgstr "" -#: ../../using/windows.rst:1984 msgid "RC_CREATE_PROCESS" msgstr "" -#: ../../using/windows.rst:1984 msgid "101" msgstr "" -#: ../../using/windows.rst:1984 msgid "Failed to launch Python." msgstr "" -#: ../../using/windows.rst:1986 msgid "RC_INSTALLING" msgstr "" -#: ../../using/windows.rst:1986 msgid "111" msgstr "" -#: ../../using/windows.rst:1986 msgid "" "An install was started, but the command will need to be re-run after it " "completes." msgstr "" -#: ../../using/windows.rst:1989 msgid "RC_INTERNAL_ERROR" msgstr "" -#: ../../using/windows.rst:1989 msgid "109" msgstr "" -#: ../../using/windows.rst:1989 msgid "Unexpected error. Please report a bug." msgstr "" -#: ../../using/windows.rst:1991 msgid "RC_NO_COMMANDLINE" msgstr "" -#: ../../using/windows.rst:1991 msgid "108" msgstr "" -#: ../../using/windows.rst:1991 msgid "Unable to obtain command line from the operating system." msgstr "" -#: ../../using/windows.rst:1994 msgid "RC_NO_PYTHON" msgstr "" -#: ../../using/windows.rst:1994 msgid "103" msgstr "" -#: ../../using/windows.rst:1994 msgid "Unable to locate the requested version." msgstr "" -#: ../../using/windows.rst:1996 msgid "RC_NO_VENV_CFG" msgstr "" -#: ../../using/windows.rst:1996 msgid "106" msgstr "" -#: ../../using/windows.rst:1996 msgid "A :file:`pyvenv.cfg` was required but not found." msgstr "" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 17b8be0..56b4c98 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,23 +22,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.0.rst:3 msgid "What's New in Python 2.0" msgstr "" -#: ../../whatsnew/2.0.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.0.rst:5 msgid "A.M. Kuchling and Moshe Zadka" msgstr "" -#: ../../whatsnew/2.0.rst:13 msgid "Introduction" msgstr "Bevezetés" -#: ../../whatsnew/2.0.rst:15 msgid "" "A new release of Python, version 2.0, was released on October 16, 2000. This " "article covers the exciting new features in 2.0, highlights some other " @@ -46,7 +41,6 @@ msgid "" "rewriting code." msgstr "" -#: ../../whatsnew/2.0.rst:20 msgid "" "Python's development never completely stops between releases, and a steady " "flow of bug fixes and improvements are always being submitted. A host of " @@ -58,11 +52,9 @@ msgid "" "also due to the improved communication resulting from moving to SourceForge." msgstr "" -#: ../../whatsnew/2.0.rst:33 msgid "What About Python 1.6?" msgstr "" -#: ../../whatsnew/2.0.rst:35 msgid "" "Python 1.6 can be thought of as the Contractual Obligations Python release. " "After the core development team left CNRI in May 2000, CNRI requested that a " @@ -74,7 +66,6 @@ msgid "" "2.0. 1.6 is therefore part of Python's evolution, and not a side branch." msgstr "" -#: ../../whatsnew/2.0.rst:44 msgid "" "So, should you take much interest in Python 1.6? Probably not. The " "1.6final and 2.0beta1 releases were made on the same day (September 5, " @@ -86,11 +77,9 @@ msgid "" "only in 2.0, because a lot of work was done between May and September." msgstr "" -#: ../../whatsnew/2.0.rst:57 msgid "New Development Process" msgstr "" -#: ../../whatsnew/2.0.rst:59 msgid "" "The most important change in Python 2.0 may not be to the code at all, but " "to how Python is developed: in May 2000 the Python developers began using " @@ -101,7 +90,6 @@ msgid "" "projects/python/." msgstr "" -#: ../../whatsnew/2.0.rst:66 msgid "" "The most important of the services now hosted at SourceForge is the Python " "CVS tree, the version-controlled repository containing the source code for " @@ -121,7 +109,6 @@ msgid "" "the time and effort needed\" and it would never have gotten done." msgstr "" -#: ../../whatsnew/2.0.rst:83 msgid "" "The shift to using SourceForge's services has resulted in a remarkable " "increase in the speed of development. Patches now get submitted, commented " @@ -136,7 +123,6 @@ msgid "" "wrote an HTML screen-scraper that sends more useful messages." msgstr "" -#: ../../whatsnew/2.0.rst:95 msgid "" "The ease of adding code caused a few initial growing pains, such as code was " "checked in before it was ready or without getting clear agreement from the " @@ -151,7 +137,6 @@ msgid "" "if the community disagrees with him." msgstr "" -#: ../../whatsnew/2.0.rst:106 msgid "" "Producing an actual patch is the last step in adding a new feature, and is " "usually easy compared to the earlier task of coming up with a good design. " @@ -161,11 +146,10 @@ msgid "" "up to write Python Enhancement Proposals (PEPs), modelled on the internet " "RFC process. PEPs are draft documents that describe a proposed new feature, " "and are continually revised until the community reaches a consensus, either " -"accepting or rejecting the proposal. Quoting from the introduction " -"to :pep:`1`, \"PEP Purpose and Guidelines\":" +"accepting or rejecting the proposal. Quoting from the introduction to :pep:" +"`1`, \"PEP Purpose and Guidelines\":" msgstr "" -#: ../../whatsnew/2.0.rst:120 msgid "" "PEP stands for Python Enhancement Proposal. A PEP is a design document " "providing information to the Python community, or describing a new feature " @@ -173,7 +157,6 @@ msgid "" "feature and a rationale for the feature." msgstr "" -#: ../../whatsnew/2.0.rst:125 msgid "" "We intend PEPs to be the primary mechanisms for proposing new features, for " "collecting community input on an issue, and for documenting the design " @@ -181,7 +164,6 @@ msgid "" "building consensus within the community and documenting dissenting opinions." msgstr "" -#: ../../whatsnew/2.0.rst:130 msgid "" "Read the rest of :pep:`1` for the details of the PEP editorial process, " "style, and format. PEPs are kept in the Python CVS tree on SourceForge, " @@ -191,11 +173,9 @@ msgid "" "225, \"Elementwise/Objectwise Operators\"." msgstr "" -#: ../../whatsnew/2.0.rst:141 msgid "Unicode" msgstr "" -#: ../../whatsnew/2.0.rst:143 msgid "" "The largest new feature in Python 2.0 is a new fundamental data type: " "Unicode strings. Unicode uses 16-bit numbers to represent characters " @@ -203,7 +183,6 @@ msgid "" "characters can be supported." msgstr "" -#: ../../whatsnew/2.0.rst:148 msgid "" "The final interface for Unicode support was arrived at through countless " "often-stormy discussions on the python-dev mailing list, and mostly " @@ -213,17 +192,15 @@ msgid "" "will simply cover the most significant points about the Unicode interfaces." msgstr "" -#: ../../whatsnew/2.0.rst:155 msgid "" "In Python source code, Unicode strings are written as ``u\"string\"``. " -"Arbitrary Unicode characters can be written using a new escape " -"sequence, :samp:`\\\\u{HHHH}`, where *HHHH* is a 4-digit hexadecimal number " -"from 0000 to FFFF. The existing :samp:`\\\\x{HH}` escape sequence can also " -"be used, and octal escapes can be used for characters up to U+01FF, which is " +"Arbitrary Unicode characters can be written using a new escape sequence, :" +"samp:`\\\\u{HHHH}`, where *HHHH* is a 4-digit hexadecimal number from 0000 " +"to FFFF. The existing :samp:`\\\\x{HH}` escape sequence can also be used, " +"and octal escapes can be used for characters up to U+01FF, which is " "represented by ``\\777``." msgstr "" -#: ../../whatsnew/2.0.rst:161 msgid "" "Unicode strings, just like regular strings, are an immutable sequence type. " "They can be indexed and sliced, but not modified in place. Unicode strings " @@ -237,31 +214,26 @@ msgid "" "a customized version of :file:`site.py`." msgstr "" -#: ../../whatsnew/2.0.rst:172 msgid "" "Combining 8-bit and Unicode strings always coerces to Unicode, using the " "default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." msgstr "" -#: ../../whatsnew/2.0.rst:175 msgid "" "New built-in functions have been added, and existing built-ins modified to " "support Unicode:" msgstr "" -#: ../../whatsnew/2.0.rst:178 msgid "" "``unichr(ch)`` returns a Unicode string 1 character long, containing the " "character *ch*." msgstr "" -#: ../../whatsnew/2.0.rst:181 msgid "" "``ord(u)``, where *u* is a 1-character regular or Unicode string, returns " "the number of the character as an integer." msgstr "" -#: ../../whatsnew/2.0.rst:184 msgid "" "``unicode(string [, encoding] [, errors] )`` creates a Unicode string from " "an 8-bit string. ``encoding`` is a string naming the encoding to use. The " @@ -272,7 +244,6 @@ msgid "" "replacement character, in case of any problems." msgstr "" -#: ../../whatsnew/2.0.rst:192 msgid "" "The ``exec`` statement, and various built-ins such as ``eval()``, " "``getattr()``, and ``setattr()`` will also accept Unicode strings as well as " @@ -281,7 +252,6 @@ msgid "" "accept Unicode strings at all, please report it as a bug.)" msgstr "" -#: ../../whatsnew/2.0.rst:198 msgid "" "A new module, :mod:`unicodedata`, provides an interface to Unicode character " "properties. For example, ``unicodedata.category(u'A')`` returns the 2-" @@ -290,7 +260,6 @@ msgid "" "meaning that U+0660 is an Arabic number." msgstr "" -#: ../../whatsnew/2.0.rst:204 msgid "" "The :mod:`codecs` module contains functions to look up existing encodings " "and register new ones. Unless you want to implement a new encoding, you'll " @@ -298,7 +267,6 @@ msgid "" "element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" -#: ../../whatsnew/2.0.rst:209 msgid "" "*encode_func* is a function that takes a Unicode string, and returns a 2-" "tuple ``(string, length)``. *string* is an 8-bit string containing a " @@ -307,7 +275,6 @@ msgid "" "converted." msgstr "" -#: ../../whatsnew/2.0.rst:214 msgid "" "*decode_func* is the opposite of *encode_func*, taking an 8-bit string and " "returning a 2-tuple ``(ustring, length)``, consisting of the resulting " @@ -315,7 +282,6 @@ msgid "" "bit string was consumed." msgstr "" -#: ../../whatsnew/2.0.rst:219 msgid "" "*stream_reader* is a class that supports decoding input from a stream. " "*stream_reader(file_obj)* returns an object that supports the :meth:`!" @@ -323,21 +289,18 @@ msgid "" "will all translate from the given encoding and return Unicode strings." msgstr "" -#: ../../whatsnew/2.0.rst:224 msgid "" "*stream_writer*, similarly, is a class that supports encoding output to a " -"stream. *stream_writer(file_obj)* returns an object that supports " -"the :meth:`!write` and :meth:`!writelines` methods. These methods expect " -"Unicode strings, translating them to the given encoding on output." +"stream. *stream_writer(file_obj)* returns an object that supports the :meth:" +"`!write` and :meth:`!writelines` methods. These methods expect Unicode " +"strings, translating them to the given encoding on output." msgstr "" -#: ../../whatsnew/2.0.rst:229 msgid "" "For example, the following code writes a Unicode string into a file, " "encoding it as UTF-8::" msgstr "" -#: ../../whatsnew/2.0.rst:232 msgid "" "import codecs\n" "\n" @@ -351,25 +314,21 @@ msgid "" "output.close()" msgstr "" -#: ../../whatsnew/2.0.rst:243 msgid "The following code would then read UTF-8 input from the file::" msgstr "" -#: ../../whatsnew/2.0.rst:245 msgid "" "input = UTF8_streamreader( open( '/tmp/output', 'rb') )\n" "print repr(input.read())\n" "input.close()" msgstr "" -#: ../../whatsnew/2.0.rst:249 msgid "" "Unicode-aware regular expressions are available through the :mod:`re` " "module, which has a new underlying implementation called SRE written by " "Fredrik Lundh of Secret Labs AB." msgstr "" -#: ../../whatsnew/2.0.rst:253 msgid "" "A ``-U`` command line option was added which causes the Python compiler to " "interpret all string literals as Unicode string literals. This is intended " @@ -378,11 +337,9 @@ msgid "" "Unicode strings." msgstr "" -#: ../../whatsnew/2.0.rst:262 msgid "List Comprehensions" msgstr "Listaértelmezés" -#: ../../whatsnew/2.0.rst:264 msgid "" "Lists are a workhorse data type in Python, and many programs manipulate a " "list at some point. Two common operations on lists are to loop over them, " @@ -392,7 +349,6 @@ msgid "" "strip off trailing whitespace from each line." msgstr "" -#: ../../whatsnew/2.0.rst:271 msgid "" "The existing :func:`map` and :func:`filter` functions can be used for this " "purpose, but they require a function as one of their arguments. This is " @@ -404,7 +360,6 @@ msgid "" "substring. You could write the following to do it::" msgstr "" -#: ../../whatsnew/2.0.rst:280 msgid "" "# Given the list L, make a list of all strings\n" "# containing the substring S.\n" @@ -413,22 +368,18 @@ msgid "" " L)" msgstr "" -#: ../../whatsnew/2.0.rst:286 msgid "" "Because of Python's scoping rules, a default argument is used so that the " "anonymous function created by the :keyword:`lambda` expression knows what " "substring is being searched for. List comprehensions make this cleaner::" msgstr "" -#: ../../whatsnew/2.0.rst:290 msgid "sublist = [ s for s in L if string.find(s, S) != -1 ]" msgstr "" -#: ../../whatsnew/2.0.rst:292 msgid "List comprehensions have the form::" msgstr "" -#: ../../whatsnew/2.0.rst:294 msgid "" "[ expression for expr in sequence1\n" " for expr2 in sequence2 ...\n" @@ -436,24 +387,21 @@ msgid "" " if condition ]" msgstr "" -#: ../../whatsnew/2.0.rst:299 msgid "" "The :keyword:`!for`...\\ :keyword:`!in` clauses contain the sequences to be " "iterated over. The sequences do not have to be the same length, because " "they are *not* iterated over in parallel, but from left to right; this is " "explained more clearly in the following paragraphs. The elements of the " -"generated list will be the successive values of *expression*. The " -"final :keyword:`!if` clause is optional; if present, *expression* is only " -"evaluated and added to the result if *condition* is true." +"generated list will be the successive values of *expression*. The final :" +"keyword:`!if` clause is optional; if present, *expression* is only evaluated " +"and added to the result if *condition* is true." msgstr "" -#: ../../whatsnew/2.0.rst:307 msgid "" "To make the semantics very clear, a list comprehension is equivalent to the " "following Python code::" msgstr "" -#: ../../whatsnew/2.0.rst:310 msgid "" "for expr1 in sequence1:\n" " for expr2 in sequence2:\n" @@ -465,7 +413,6 @@ msgid "" " # resulting list." msgstr "" -#: ../../whatsnew/2.0.rst:319 msgid "" "This means that when there are multiple :keyword:`!for`...\\ :keyword:`!in` " "clauses, the resulting list will be equal to the product of the lengths of " @@ -473,7 +420,6 @@ msgid "" "elements long::" msgstr "" -#: ../../whatsnew/2.0.rst:324 msgid "" "seq1 = 'abc'\n" "seq2 = (1,2,3)\n" @@ -482,14 +428,12 @@ msgid "" "('c', 2), ('c', 3)]" msgstr "" -#: ../../whatsnew/2.0.rst:330 msgid "" "To avoid introducing an ambiguity into Python's grammar, if *expression* is " "creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" -#: ../../whatsnew/2.0.rst:334 msgid "" "# Syntax error\n" "[ x,y for x in seq1 for y in seq2]\n" @@ -497,7 +441,6 @@ msgid "" "[ (x,y) for x in seq1 for y in seq2]" msgstr "" -#: ../../whatsnew/2.0.rst:339 msgid "" "The idea of list comprehensions originally comes from the functional " "programming language Haskell (https://www.haskell.org). Greg Ewing argued " @@ -506,11 +449,9 @@ msgid "" "on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" -#: ../../whatsnew/2.0.rst:349 msgid "Augmented Assignment" msgstr "" -#: ../../whatsnew/2.0.rst:351 msgid "" "Augmented assignment operators, another long-requested feature, have been " "added to Python 2.0. Augmented assignment operators include ``+=``, ``-=``, " @@ -519,7 +460,6 @@ msgid "" "= a + 2``." msgstr "" -#: ../../whatsnew/2.0.rst:356 msgid "" "The full list of supported assignment operators is ``+=``, ``-=``, ``*=``, " "``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, and ``<<=``. " @@ -529,7 +469,6 @@ msgid "" "create a new instance with an incremented value." msgstr "" -#: ../../whatsnew/2.0.rst:367 msgid "" "class Number:\n" " def __init__(self, value):\n" @@ -542,7 +481,6 @@ msgid "" "print n.value" msgstr "" -#: ../../whatsnew/2.0.rst:377 msgid "" "The :meth:`!__iadd__` special method is called with the value of the " "increment, and should return a new instance with an appropriately modified " @@ -550,7 +488,6 @@ msgid "" "left-hand side." msgstr "" -#: ../../whatsnew/2.0.rst:381 msgid "" "Augmented assignment operators were first introduced in the C programming " "language, and most C-derived languages, such as :program:`awk`, C++, Java, " @@ -558,29 +495,25 @@ msgid "" "implemented by Thomas Wouters." msgstr "" -#: ../../whatsnew/2.0.rst:390 msgid "String Methods" msgstr "" -#: ../../whatsnew/2.0.rst:392 msgid "" "Until now string-manipulation functionality was in the :mod:`string` module, " "which was usually a front-end for the :mod:`!strop` module written in C. " "The addition of Unicode posed a difficulty for the :mod:`!strop` module, " "because the functions would all need to be rewritten in order to accept " -"either 8-bit or Unicode strings. For functions such as :func:`!" -"string.replace`, which takes 3 string arguments, that means eight possible " +"either 8-bit or Unicode strings. For functions such as :func:`!string." +"replace`, which takes 3 string arguments, that means eight possible " "permutations, and correspondingly complicated code." msgstr "" -#: ../../whatsnew/2.0.rst:400 msgid "" "Instead, Python 2.0 pushes the problem onto the string type, making string " "manipulation functionality available through methods on both 8-bit strings " "and Unicode strings. ::" msgstr "" -#: ../../whatsnew/2.0.rst:404 msgid "" ">>> 'andrew'.capitalize()\n" "'Andrew'\n" @@ -590,7 +523,6 @@ msgid "" "2" msgstr "" -#: ../../whatsnew/2.0.rst:411 msgid "" "One thing that hasn't changed, a noteworthy April Fools' joke " "notwithstanding, is that Python strings are immutable. Thus, the string " @@ -598,13 +530,11 @@ msgid "" "operate." msgstr "" -#: ../../whatsnew/2.0.rst:415 msgid "" "The old :mod:`string` module is still around for backwards compatibility, " "but it mostly acts as a front-end to the new string methods." msgstr "" -#: ../../whatsnew/2.0.rst:418 msgid "" "Two methods which have no parallel in pre-2.0 versions, although they did " "exist in JPython for quite some time, are :meth:`!startswith` and :meth:`!" @@ -612,20 +542,17 @@ msgid "" "``s.endswith(t)`` is equivalent to ``s[-len(t):] == t``." msgstr "" -#: ../../whatsnew/2.0.rst:423 msgid "" -"One other method which deserves special mention is :meth:`!join`. " -"The :meth:`!join` method of a string receives one parameter, a sequence of " -"strings, and is equivalent to the :func:`!string.join` function from the " -"old :mod:`string` module, with the arguments reversed. In other words, " -"``s.join(seq)`` is equivalent to the old ``string.join(seq, s)``." +"One other method which deserves special mention is :meth:`!join`. The :meth:" +"`!join` method of a string receives one parameter, a sequence of strings, " +"and is equivalent to the :func:`!string.join` function from the old :mod:" +"`string` module, with the arguments reversed. In other words, ``s." +"join(seq)`` is equivalent to the old ``string.join(seq, s)``." msgstr "" -#: ../../whatsnew/2.0.rst:433 msgid "Garbage Collection of Cycles" msgstr "" -#: ../../whatsnew/2.0.rst:435 msgid "" "The C implementation of Python uses reference counting to implement garbage " "collection. Every Python object maintains a count of the number of " @@ -635,7 +562,6 @@ msgid "" "access it, and if the count is zero, no references exist any longer." msgstr "" -#: ../../whatsnew/2.0.rst:442 msgid "" "Reference counting has some pleasant properties: it's easy to understand and " "implement, and the resulting implementation is portable, fairly fast, and " @@ -645,26 +571,22 @@ msgid "" "leak. This happens when there are cycles of references." msgstr "" -#: ../../whatsnew/2.0.rst:449 msgid "" "Consider the simplest possible cycle, a class instance which has a " "reference to itself::" msgstr "" -#: ../../whatsnew/2.0.rst:452 msgid "" "instance = SomeClass()\n" "instance.myself = instance" msgstr "" -#: ../../whatsnew/2.0.rst:455 msgid "" "After the above two lines of code have been executed, the reference count of " "``instance`` is 2; one reference is from the variable named ``'instance'``, " "and the other is from the ``myself`` attribute of the instance." msgstr "" -#: ../../whatsnew/2.0.rst:459 msgid "" "If the next line of code is ``del instance``, what happens? The reference " "count of ``instance`` is decreased by 1, so it has a reference count of 1; " @@ -674,7 +596,6 @@ msgid "" "causing all of the objects to be leaked." msgstr "" -#: ../../whatsnew/2.0.rst:466 msgid "" "Python 2.0 fixes this problem by periodically executing a cycle detection " "algorithm which looks for inaccessible cycles and deletes the objects " @@ -683,7 +604,6 @@ msgid "" "parameters." msgstr "" -#: ../../whatsnew/2.0.rst:471 msgid "" "Running the cycle detection algorithm takes some time, and therefore will " "result in some additional overhead. It is hoped that after we've gotten " @@ -697,7 +617,6 @@ msgid "" "the :program:`configure` script." msgstr "" -#: ../../whatsnew/2.0.rst:482 msgid "" "Several people tackled this problem and contributed to a solution. An early " "implementation of the cycle detection approach was written by Toby Kelsey. " @@ -710,22 +629,18 @@ msgid "" "again\"." msgstr "" -#: ../../whatsnew/2.0.rst:495 msgid "Other Core Changes" msgstr "" -#: ../../whatsnew/2.0.rst:497 msgid "" "Various minor changes have been made to Python's syntax and built-in " "functions. None of the changes are very far-reaching, but they're handy " "conveniences." msgstr "" -#: ../../whatsnew/2.0.rst:502 msgid "Minor Language Changes" msgstr "" -#: ../../whatsnew/2.0.rst:504 msgid "" "A new syntax makes it more convenient to call a given function with a tuple " "of arguments and/or a dictionary of keyword arguments. In Python 1.5 and " @@ -737,7 +652,6 @@ msgid "" "the syntax for defining functions::" msgstr "" -#: ../../whatsnew/2.0.rst:513 msgid "" "def f(*args, **kw):\n" " # args is a tuple of positional args,\n" @@ -745,7 +659,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.0.rst:518 msgid "" "The ``print`` statement can now have its output directed to a file-like " "object by following the ``print`` with ``>> file``, similar to the " @@ -756,18 +669,15 @@ msgid "" "standard error, it's much easier to write this::" msgstr "" -#: ../../whatsnew/2.0.rst:526 msgid "print >> sys.stderr, \"Warning: action field not supplied\"" msgstr "" -#: ../../whatsnew/2.0.rst:528 msgid "" "Modules can now be renamed on importing them, using the syntax ``import " "module as name`` or ``from module import name as othername``. The patch was " "submitted by Thomas Wouters." msgstr "" -#: ../../whatsnew/2.0.rst:532 msgid "" "A new format style is available when using the ``%`` operator; '%r' will " "insert the :func:`repr` of its argument. This was also added from symmetry " @@ -776,7 +686,6 @@ msgid "" "('abc', 'abc')`` returns a string containing ``'abc' abc``." msgstr "" -#: ../../whatsnew/2.0.rst:538 msgid "" "Previously there was no way to implement a class that overrode Python's " "built-in :keyword:`in` operator and implemented a custom version. ``obj in " @@ -789,7 +698,6 @@ msgid "" "via a new slot in the sequence protocol." msgstr "" -#: ../../whatsnew/2.0.rst:547 msgid "" "Earlier versions of Python used a recursive algorithm for deleting objects. " "Deeply nested data structures could cause the interpreter to fill up the C " @@ -799,7 +707,6 @@ msgid "" "useful result instead. For example, after this code::" msgstr "" -#: ../../whatsnew/2.0.rst:554 msgid "" "a = []\n" "b = []\n" @@ -807,7 +714,6 @@ msgid "" "b.append(b)" msgstr "" -#: ../../whatsnew/2.0.rst:559 msgid "" "The comparison ``a==b`` returns true, because the two recursive data " "structures are isomorphic. See the thread \"trashcan and PR#7\" in the April " @@ -819,17 +725,15 @@ msgid "" "the resulting exception would simply be silently swallowed." msgstr "" -#: ../../whatsnew/2.0.rst:571 msgid "" "Work has been done on porting Python to 64-bit Windows on the Itanium " -"processor, mostly by Trent Mick of ActiveState. (Confusingly, " -"``sys.platform`` is still ``'win32'`` on Win64 because it seems that for " -"ease of porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin " -"also supports Windows CE; see the Python CE page at https://" -"pythonce.sourceforge.net/ for more information." +"processor, mostly by Trent Mick of ActiveState. (Confusingly, ``sys." +"platform`` is still ``'win32'`` on Win64 because it seems that for ease of " +"porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin also " +"supports Windows CE; see the Python CE page at https://pythonce.sourceforge." +"net/ for more information." msgstr "" -#: ../../whatsnew/2.0.rst:577 msgid "" "Another new platform is Darwin/MacOS X; initial support for it is in Python " "2.0. Dynamic loading works, if you specify \"configure --with-dyld --with-" @@ -837,19 +741,17 @@ msgid "" "instructions." msgstr "" -#: ../../whatsnew/2.0.rst:581 msgid "" "An attempt has been made to alleviate one of Python's warts, the often-" "confusing :exc:`NameError` exception when code refers to a local variable " "before the variable has been assigned a value. For example, the following " "code raises an exception on the ``print`` statement in both 1.5.2 and 2.0; " -"in 1.5.2 a :exc:`NameError` exception is raised, while 2.0 raises a " -"new :exc:`UnboundLocalError` exception. :exc:`UnboundLocalError` is a " -"subclass of :exc:`NameError`, so any existing code that " -"expects :exc:`NameError` to be raised should still work. ::" +"in 1.5.2 a :exc:`NameError` exception is raised, while 2.0 raises a new :exc:" +"`UnboundLocalError` exception. :exc:`UnboundLocalError` is a subclass of :" +"exc:`NameError`, so any existing code that expects :exc:`NameError` to be " +"raised should still work. ::" msgstr "" -#: ../../whatsnew/2.0.rst:590 msgid "" "def f():\n" " print \"i=\",i\n" @@ -857,18 +759,15 @@ msgid "" "f()" msgstr "" -#: ../../whatsnew/2.0.rst:595 msgid "" "Two new exceptions, :exc:`TabError` and :exc:`IndentationError`, have been " "introduced. They're both subclasses of :exc:`SyntaxError`, and are raised " "when Python code is found to be improperly indented." msgstr "" -#: ../../whatsnew/2.0.rst:601 msgid "Changes to Built-in Functions" msgstr "" -#: ../../whatsnew/2.0.rst:603 msgid "" "A new built-in, ``zip(seq1, seq2, ...)``, has been added. :func:`zip` " "returns a list of tuples where each tuple contains the i-th element from " @@ -878,34 +777,30 @@ msgid "" "truncates the returned list to the length of the shortest argument sequence." msgstr "" -#: ../../whatsnew/2.0.rst:610 msgid "" "The :func:`int` and :func:`!long` functions now accept an optional \"base\" " "parameter when the first argument is a string. ``int('123', 10)`` returns " -"123, while ``int('123', 16)`` returns 291. ``int(123, 16)`` raises " -"a :exc:`TypeError` exception with the message \"can't convert non-string " -"with explicit base\"." +"123, while ``int('123', 16)`` returns 291. ``int(123, 16)`` raises a :exc:" +"`TypeError` exception with the message \"can't convert non-string with " +"explicit base\"." msgstr "" -#: ../../whatsnew/2.0.rst:616 msgid "" "A new variable holding more detailed version information has been added to " "the :mod:`sys` module. ``sys.version_info`` is a tuple ``(major, minor, " -"micro, level, serial)`` For example, in a hypothetical 2.0.1beta1, " -"``sys.version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string " -"such as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." +"micro, level, serial)`` For example, in a hypothetical 2.0.1beta1, ``sys." +"version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string such " +"as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." msgstr "" -#: ../../whatsnew/2.0.rst:622 msgid "" "Dictionaries have an odd new method, ``setdefault(key, default)``, which " "behaves similarly to the existing :meth:`!get` method. However, if the key " -"is missing, :meth:`!setdefault` both returns the value of *default* " -"as :meth:`!get` would do, and also inserts it into the dictionary as the " -"value for *key*. Thus, the following lines of code::" +"is missing, :meth:`!setdefault` both returns the value of *default* as :meth:" +"`!get` would do, and also inserts it into the dictionary as the value for " +"*key*. Thus, the following lines of code::" msgstr "" -#: ../../whatsnew/2.0.rst:628 msgid "" "if dict.has_key( key ): return dict[key]\n" "else:\n" @@ -913,27 +808,23 @@ msgid "" " return dict[key]" msgstr "" -#: ../../whatsnew/2.0.rst:633 msgid "" "can be reduced to a single ``return dict.setdefault(key, [])`` statement." msgstr "" -#: ../../whatsnew/2.0.rst:635 msgid "" "The interpreter sets a maximum recursion depth in order to catch runaway " "recursion before filling the C stack and causing a core dump or GPF.. " "Previously this limit was fixed when you compiled Python, but in 2.0 the " -"maximum recursion depth can be read and modified " -"using :func:`sys.getrecursionlimit` and :func:`sys.setrecursionlimit`. The " -"default value is 1000, and a rough maximum value for a given platform can be " -"found by running a new script, :file:`Misc/find_recursionlimit.py`." +"maximum recursion depth can be read and modified using :func:`sys." +"getrecursionlimit` and :func:`sys.setrecursionlimit`. The default value is " +"1000, and a rough maximum value for a given platform can be found by running " +"a new script, :file:`Misc/find_recursionlimit.py`." msgstr "" -#: ../../whatsnew/2.0.rst:647 msgid "Porting to 2.0" msgstr "" -#: ../../whatsnew/2.0.rst:649 msgid "" "New Python releases try hard to be compatible with previous releases, and " "the record has been pretty good. However, some changes are considered " @@ -943,20 +834,18 @@ msgid "" "cause old Python code to break." msgstr "" -#: ../../whatsnew/2.0.rst:656 msgid "" "The change which will probably break the most code is tightening up the " "arguments accepted by some methods. Some methods would take multiple " "arguments and treat them as a tuple, particularly various list methods such " -"as :meth:`!append` and :meth:`!insert`. In earlier versions of Python, if " -"``L`` is a list, ``L.append( 1,2 )`` appends the tuple ``(1,2)`` to the " -"list. In Python 2.0 this causes a :exc:`TypeError` exception to be raised, " -"with the message: 'append requires exactly 1 argument; 2 given'. The fix is " -"to simply add an extra set of parentheses to pass both values as a tuple: " -"``L.append( (1,2) )``." +"as :meth:`~list.append` and :meth:`~list.insert`. In earlier versions of " +"Python, if ``L`` is a list, ``L.append( 1,2 )`` appends the tuple ``(1,2)`` " +"to the list. In Python 2.0 this causes a :exc:`TypeError` exception to be " +"raised, with the message: 'append requires exactly 1 argument; 2 given'. " +"The fix is to simply add an extra set of parentheses to pass both values as " +"a tuple: ``L.append( (1,2) )``." msgstr "" -#: ../../whatsnew/2.0.rst:665 msgid "" "The earlier versions of these methods were more forgiving because they used " "an old function in Python's C interface to parse their arguments; 2.0 " @@ -968,13 +857,12 @@ msgid "" "this isn't recommended." msgstr "" -#: ../../whatsnew/2.0.rst:673 msgid "" "Some of the functions in the :mod:`socket` module are still forgiving in " "this way. For example, ``socket.connect( ('hostname', 25) )`` is the " -"correct form, passing a tuple representing an IP address, but " -"``socket.connect('hostname', 25)`` also works. :meth:`socket.connect_ex " -"` and :meth:`socket.bind ` are " +"correct form, passing a tuple representing an IP address, but ``socket." +"connect('hostname', 25)`` also works. :meth:`socket.connect_ex ` and :meth:`socket.bind ` are " "similarly easy-going. 2.0alpha1 tightened these functions up, but because " "the documentation actually used the erroneous multiple argument form, many " "people wrote code which would break with the stricter checking. GvR backed " @@ -984,7 +872,6 @@ msgid "" "version." msgstr "" -#: ../../whatsnew/2.0.rst:684 msgid "" "The ``\\x`` escape in string literals now takes exactly 2 hex digits. " "Previously it would consume all the hex digits following the 'x' and take " @@ -992,7 +879,6 @@ msgid "" "``\\x56``." msgstr "" -#: ../../whatsnew/2.0.rst:688 msgid "" "The :exc:`AttributeError` and :exc:`NameError` exceptions have a more " "friendly error message, whose text will be something like ``'Spam' instance " @@ -1001,7 +887,6 @@ msgid "" "to take advantage of this fact will break in 2.0." msgstr "" -#: ../../whatsnew/2.0.rst:694 msgid "" "Some work has been done to make integers and long integers a bit more " "interchangeable. In 1.5.2, large-file support was added for Solaris, to " @@ -1018,7 +903,6 @@ msgid "" "2L**64`` will produce the string ``18446744073709551616``." msgstr "" -#: ../../whatsnew/2.0.rst:708 msgid "" "The subtlest long integer change of all is that the :func:`str` of a long " "integer no longer has a trailing 'L' character, though :func:`repr` still " @@ -1029,18 +913,16 @@ msgid "" "the final digit." msgstr "" -#: ../../whatsnew/2.0.rst:716 msgid "" "Taking the :func:`repr` of a float now uses a different formatting precision " "than :func:`str`. :func:`repr` uses ``%.17g`` format string for C's :func:`!" -"sprintf`, while :func:`str` uses ``%.12g`` as before. The effect is " -"that :func:`repr` may occasionally show more decimal places " -"than :func:`str`, for certain numbers. For example, the number 8.1 can't " -"be represented exactly in binary, so ``repr(8.1)`` is " -"``'8.0999999999999996'``, while str(8.1) is ``'8.1'``." +"sprintf`, while :func:`str` uses ``%.12g`` as before. The effect is that :" +"func:`repr` may occasionally show more decimal places than :func:`str`, for " +"certain numbers. For example, the number 8.1 can't be represented exactly " +"in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``, while str(8.1) is " +"``'8.1'``." msgstr "" -#: ../../whatsnew/2.0.rst:724 msgid "" "The ``-X`` command-line option, which turned all standard exceptions into " "strings instead of classes, has been removed; the standard exceptions will " @@ -1049,11 +931,9 @@ msgid "" "written by Barry Warsaw and Fredrik Lundh." msgstr "" -#: ../../whatsnew/2.0.rst:740 msgid "Extending/Embedding Changes" msgstr "" -#: ../../whatsnew/2.0.rst:742 msgid "" "Some of the changes are under the covers, and will only be apparent to " "people writing C extension modules or embedding a Python interpreter in a " @@ -1061,7 +941,6 @@ msgid "" "safely skip this section." msgstr "" -#: ../../whatsnew/2.0.rst:747 msgid "" "The version number of the Python C API was incremented, so C extensions " "compiled for 1.5.2 must be recompiled in order to work with 2.0. On " @@ -1070,16 +949,14 @@ msgid "" "exception and the import will fail." msgstr "" -#: ../../whatsnew/2.0.rst:753 msgid "" "Users of Jim Fulton's ExtensionClass module will be pleased to find out that " -"hooks have been added so that ExtensionClasses are now supported " -"by :func:`isinstance` and :func:`issubclass`. This means you no longer have " -"to remember to write code such as ``if type(obj) == myExtensionClass``, but " -"can use the more natural ``if isinstance(obj, myExtensionClass)``." +"hooks have been added so that ExtensionClasses are now supported by :func:" +"`isinstance` and :func:`issubclass`. This means you no longer have to " +"remember to write code such as ``if type(obj) == myExtensionClass``, but can " +"use the more natural ``if isinstance(obj, myExtensionClass)``." msgstr "" -#: ../../whatsnew/2.0.rst:759 msgid "" "The :file:`Python/importdl.c` file, which was a mass of #ifdefs to support " "dynamic loading on many different platforms, was cleaned up and reorganised " @@ -1090,17 +967,15 @@ msgid "" "into a single file, :file:`Include/pyport.h`." msgstr "" -#: ../../whatsnew/2.0.rst:767 msgid "" "Vladimir Marangozov's long-awaited malloc restructuring was completed, to " "make it easy to have the Python interpreter use a custom allocator instead " -"of C's standard :c:func:`malloc`. For documentation, read the comments " -"in :file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " +"of C's standard :c:func:`malloc`. For documentation, read the comments in :" +"file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " "discussions during which the interface was hammered out, see the web " "archives of the 'patches' and 'python-dev' lists at python.org." msgstr "" -#: ../../whatsnew/2.0.rst:774 msgid "" "Recent versions of the GUSI development environment for MacOS support POSIX " "threads. Therefore, Python's POSIX threading support now works on the " @@ -1108,7 +983,6 @@ msgid "" "also contributed." msgstr "" -#: ../../whatsnew/2.0.rst:779 msgid "" "Threading support on Windows was enhanced, too. Windows supports thread " "locks that use kernel objects only in case of contention; in the common case " @@ -1118,14 +992,12 @@ msgid "" "These improvements were contributed by Yakov Markovitch." msgstr "" -#: ../../whatsnew/2.0.rst:786 msgid "" "Python 2.0's source now uses only ANSI C prototypes, so compiling Python now " "requires an ANSI C compiler, and can no longer be done using a compiler that " "only supports K&R C." msgstr "" -#: ../../whatsnew/2.0.rst:790 msgid "" "Previously the Python virtual machine used 16-bit numbers in its bytecode, " "limiting the size of source files. In particular, this affected the maximum " @@ -1134,29 +1006,25 @@ msgid "" "Charles G. Waldman raises the limit from ``2**16`` to ``2**32``." msgstr "" -#: ../../whatsnew/2.0.rst:796 msgid "" "Three new convenience functions intended for adding constants to a module's " -"dictionary at module initialization time were " -"added: :c:func:`PyModule_AddObject`, :c:func:`PyModule_AddIntConstant`, " -"and :c:func:`PyModule_AddStringConstant`. Each of these functions takes a " -"module object, a null-terminated C string containing the name to be added, " -"and a third argument for the value to be assigned to the name. This third " +"dictionary at module initialization time were added: :c:func:" +"`PyModule_AddObject`, :c:func:`PyModule_AddIntConstant`, and :c:func:" +"`PyModule_AddStringConstant`. Each of these functions takes a module " +"object, a null-terminated C string containing the name to be added, and a " +"third argument for the value to be assigned to the name. This third " "argument is, respectively, a Python object, a C long, or a C string." msgstr "" -#: ../../whatsnew/2.0.rst:804 msgid "" -"A wrapper API was added for Unix-style signal " -"handlers. :c:func:`PyOS_getsig` gets a signal handler " -"and :c:func:`PyOS_setsig` will set a new handler." +"A wrapper API was added for Unix-style signal handlers. :c:func:" +"`PyOS_getsig` gets a signal handler and :c:func:`PyOS_setsig` will set a new " +"handler." msgstr "" -#: ../../whatsnew/2.0.rst:811 msgid "Distutils: Making Modules Easy to Install" msgstr "" -#: ../../whatsnew/2.0.rst:813 msgid "" "Before Python 2.0, installing modules was a tedious affair -- there was no " "way to figure out automatically where Python is installed, or what compiler " @@ -1168,7 +1036,6 @@ msgid "" "something of a chore." msgstr "" -#: ../../whatsnew/2.0.rst:821 msgid "" "The SIG for distribution utilities, shepherded by Greg Ward, has created the " "Distutils, a system to make package installation much easier. They form the " @@ -1184,40 +1051,34 @@ msgid "" "directories, and more." msgstr "" -#: ../../whatsnew/2.0.rst:833 msgid "" "In order to use the Distutils, you need to write a :file:`setup.py` script. " -"For the simple case, when the software contains only .py files, a " -"minimal :file:`setup.py` can be just a few lines long::" +"For the simple case, when the software contains only .py files, a minimal :" +"file:`setup.py` can be just a few lines long::" msgstr "" -#: ../../whatsnew/2.0.rst:837 msgid "" "from distutils.core import setup\n" "setup (name = \"foo\", version = \"1.0\",\n" " py_modules = [\"module1\", \"module2\"])" msgstr "" -#: ../../whatsnew/2.0.rst:841 msgid "" "The :file:`setup.py` file isn't much more complicated if the software " "consists of a few packages::" msgstr "" -#: ../../whatsnew/2.0.rst:844 msgid "" "from distutils.core import setup\n" "setup (name = \"foo\", version = \"1.0\",\n" " packages = [\"package\", \"package.subpackage\"])" msgstr "" -#: ../../whatsnew/2.0.rst:848 msgid "" "A C extension can be the most complicated case; here's an example taken from " "the PyXML package::" msgstr "" -#: ../../whatsnew/2.0.rst:851 msgid "" "from distutils.core import setup, Extension\n" "\n" @@ -1233,7 +1094,6 @@ msgid "" " ext_modules =[ expat_extension ] )" msgstr "" -#: ../../whatsnew/2.0.rst:864 msgid "" "The Distutils can also take care of creating source and binary " "distributions. The \"sdist\" command, run by \"``python setup.py sdist``', " @@ -1245,17 +1105,14 @@ msgid "" "are in various stages of development." msgstr "" -#: ../../whatsnew/2.0.rst:873 msgid "" "All this is documented in a new manual, *Distributing Python Modules*, that " "joins the basic set of Python documentation." msgstr "" -#: ../../whatsnew/2.0.rst:880 msgid "XML Modules" msgstr "" -#: ../../whatsnew/2.0.rst:882 msgid "" "Python 1.5.2 included a simple XML parser in the form of the :mod:`!xmllib` " "module, contributed by Sjoerd Mullender. Since 1.5.2's release, two " @@ -1270,24 +1127,20 @@ msgid "" "also working on improved documentation." msgstr "" -#: ../../whatsnew/2.0.rst:896 msgid "SAX2 Support" msgstr "" -#: ../../whatsnew/2.0.rst:898 msgid "" "SAX defines an event-driven interface for parsing XML. To use SAX, you must " "write a SAX handler class. Handler classes inherit from various classes " "provided by SAX, and override various methods that will then be called by " -"the XML parser. For example, " -"the :meth:`~xml.sax.handler.ContentHandler.startElement` " -"and :meth:`~xml.sax.handler.ContentHandler.endElement` methods are called " -"for every starting and end tag encountered by the parser, " -"the :meth:`~xml.sax.handler.ContentHandler.characters` method is called for " -"every chunk of character data, and so forth." +"the XML parser. For example, the :meth:`~xml.sax.handler.ContentHandler." +"startElement` and :meth:`~xml.sax.handler.ContentHandler.endElement` methods " +"are called for every starting and end tag encountered by the parser, the :" +"meth:`~xml.sax.handler.ContentHandler.characters` method is called for every " +"chunk of character data, and so forth." msgstr "" -#: ../../whatsnew/2.0.rst:906 msgid "" "The advantage of the event-driven approach is that the whole document " "doesn't have to be resident in memory at any one time, which matters if you " @@ -1296,14 +1149,12 @@ msgid "" "structure in some elaborate way." msgstr "" -#: ../../whatsnew/2.0.rst:912 msgid "" "For example, this little example program defines a handler that prints a " -"message for every starting and ending tag, and then parses the " -"file :file:`hamlet.xml` using it::" +"message for every starting and ending tag, and then parses the file :file:" +"`hamlet.xml` using it::" msgstr "" -#: ../../whatsnew/2.0.rst:916 msgid "" "from xml import sax\n" "\n" @@ -1325,17 +1176,14 @@ msgid "" "parser.parse( 'hamlet.xml' )" msgstr "" -#: ../../whatsnew/2.0.rst:935 msgid "" "For more information, consult the Python documentation, or the XML HOWTO at " "https://pyxml.sourceforge.net/topics/howto/xml-howto.html." msgstr "" -#: ../../whatsnew/2.0.rst:940 msgid "DOM Support" msgstr "" -#: ../../whatsnew/2.0.rst:942 msgid "" "The Document Object Model is a tree-based representation for an XML " "document. A top-level :class:`!Document` instance is the root of the tree, " @@ -1347,7 +1195,6 @@ msgid "" "the tree back into XML." msgstr "" -#: ../../whatsnew/2.0.rst:950 msgid "" "The DOM is useful for modifying XML documents, because you can create a DOM " "tree, modify it by adding new nodes or rearranging subtrees, and then " @@ -1357,22 +1204,18 @@ msgid "" "file." msgstr "" -#: ../../whatsnew/2.0.rst:956 msgid "" -"The DOM implementation included with Python lives in " -"the :mod:`xml.dom.minidom` module. It's a lightweight implementation of the " -"Level 1 DOM with support for XML namespaces. The :func:`!parse` " -"and :func:`!parseString` convenience functions are provided for generating a " -"DOM tree::" +"The DOM implementation included with Python lives in the :mod:`xml.dom." +"minidom` module. It's a lightweight implementation of the Level 1 DOM with " +"support for XML namespaces. The :func:`!parse` and :func:`!parseString` " +"convenience functions are provided for generating a DOM tree::" msgstr "" -#: ../../whatsnew/2.0.rst:961 msgid "" "from xml.dom import minidom\n" "doc = minidom.parse('hamlet.xml')" msgstr "" -#: ../../whatsnew/2.0.rst:964 msgid "" "``doc`` is a :class:`!Document` instance. :class:`!Document`, like all the " "other DOM classes such as :class:`!Element` and :class:`Text`, is a subclass " @@ -1384,31 +1227,26 @@ msgid "" "with a given tag name. Continuing from the previous 2-line example::" msgstr "" -#: ../../whatsnew/2.0.rst:973 msgid "" "perslist = doc.getElementsByTagName( 'PERSONA' )\n" "print perslist[0].toxml()\n" "print perslist[1].toxml()" msgstr "" -#: ../../whatsnew/2.0.rst:977 msgid "For the *Hamlet* XML file, the above few lines output::" msgstr "" -#: ../../whatsnew/2.0.rst:979 msgid "" "CLAUDIUS, king of Denmark. \n" "HAMLET, son to the late, and nephew to the present king." msgstr "" -#: ../../whatsnew/2.0.rst:982 msgid "" "The root element of the document is available as ``doc.documentElement``, " "and its children can be easily modified by deleting, adding, or removing " "nodes::" msgstr "" -#: ../../whatsnew/2.0.rst:985 msgid "" "root = doc.documentElement\n" "\n" @@ -1423,17 +1261,14 @@ msgid "" "root.insertBefore( root.childNodes[0], root.childNodes[20] )" msgstr "" -#: ../../whatsnew/2.0.rst:997 msgid "" "Again, I will refer you to the Python documentation for a complete listing " "of the different :class:`!Node` classes and their various methods." msgstr "" -#: ../../whatsnew/2.0.rst:1002 msgid "Relationship to PyXML" msgstr "" -#: ../../whatsnew/2.0.rst:1004 msgid "" "The XML Special Interest Group has been working on XML-related Python code " "for a while. Its code distribution, called PyXML, is available from the " @@ -1443,7 +1278,6 @@ msgid "" "compatibility with the 2.0 :mod:`xml` package." msgstr "" -#: ../../whatsnew/2.0.rst:1010 msgid "" "The answer is that Python 2.0's :mod:`xml` package isn't compatible with " "PyXML, but can be made compatible by installing a recent version PyXML. " @@ -1455,59 +1289,49 @@ msgid "" "features. Some of the additional features in PyXML include:" msgstr "" -#: ../../whatsnew/2.0.rst:1019 msgid "4DOM, a full DOM implementation from FourThought, Inc." msgstr "" -#: ../../whatsnew/2.0.rst:1021 msgid "The xmlproc validating parser, written by Lars Marius Garshol." msgstr "" -#: ../../whatsnew/2.0.rst:1023 msgid "The :mod:`!sgmlop` parser accelerator module, written by Fredrik Lundh." msgstr "" -#: ../../whatsnew/2.0.rst:1029 msgid "Module changes" msgstr "" -#: ../../whatsnew/2.0.rst:1031 msgid "" "Lots of improvements and bugfixes were made to Python's extensive standard " -"library; some of the affected modules " -"include :mod:`readline`, :mod:`ConfigParser `, :mod:`!" -"cgi`, :mod:`calendar`, :mod:`posix`, :mod:`readline`, :mod:`!xmllib`, :mod:`!" -"aifc`, :mod:`!chunk`, :mod:`wave`, :mod:`random`, :mod:`shelve`, and :mod:`!" -"nntplib`. Consult the CVS logs for the exact patch-by-patch details." +"library; some of the affected modules include :mod:`readline`, :mod:" +"`ConfigParser `, :mod:`!cgi`, :mod:`calendar`, :mod:`posix`, :" +"mod:`readline`, :mod:`!xmllib`, :mod:`!aifc`, :mod:`!chunk`, :mod:`wave`, :" +"mod:`random`, :mod:`shelve`, and :mod:`!nntplib`. Consult the CVS logs for " +"the exact patch-by-patch details." msgstr "" -#: ../../whatsnew/2.0.rst:1037 msgid "" "Brian Gallew contributed OpenSSL support for the :mod:`socket` module. " "OpenSSL is an implementation of the Secure Socket Layer, which encrypts the " -"data being sent over a socket. When compiling Python, you can " -"edit :file:`Modules/Setup` to include SSL support, which adds an additional " -"function to the :mod:`socket` module: ``socket.ssl(socket, keyfile, " -"certfile)``, which takes a socket object and returns an SSL socket. " -"The :mod:`httplib ` and :mod:`urllib` modules were also changed to " -"support ``https://`` URLs, though no one has implemented FTP or SMTP over " -"SSL." +"data being sent over a socket. When compiling Python, you can edit :file:" +"`Modules/Setup` to include SSL support, which adds an additional function to " +"the :mod:`socket` module: ``socket.ssl(socket, keyfile, certfile)``, which " +"takes a socket object and returns an SSL socket. The :mod:`httplib ` " +"and :mod:`urllib` modules were also changed to support ``https://`` URLs, " +"though no one has implemented FTP or SMTP over SSL." msgstr "" -#: ../../whatsnew/2.0.rst:1046 msgid "" "The :mod:`httplib ` module has been rewritten by Greg Stein to support " "HTTP/1.1." msgstr "" -#: ../../whatsnew/2.0.rst:1048 msgid "" "Backward compatibility with the 1.5 version of :mod:`!httplib` is provided, " "though using HTTP/1.1 features such as pipelining will require rewriting " "code to use a different set of interfaces." msgstr "" -#: ../../whatsnew/2.0.rst:1052 msgid "" "The :mod:`!Tkinter` module now supports Tcl/Tk version 8.1, 8.2, or 8.3, and " "support for the older 7.x versions has been dropped. The Tkinter module now " @@ -1516,7 +1340,6 @@ msgid "" "``create_polygon`` much faster, especially when using lots of coordinates." msgstr "" -#: ../../whatsnew/2.0.rst:1058 msgid "" "The :mod:`curses` module has been greatly extended, starting from Oliver " "Andrich's enhanced version, to provide many additional functions from " @@ -1526,27 +1349,23 @@ msgid "" "currently maintained OSes that fall into this category." msgstr "" -#: ../../whatsnew/2.0.rst:1065 msgid "" "As mentioned in the earlier discussion of 2.0's Unicode support, the " -"underlying implementation of the regular expressions provided by " -"the :mod:`re` module has been changed. SRE, a new regular expression engine " -"written by Fredrik Lundh and partially funded by Hewlett Packard, supports " -"matching against both 8-bit strings and Unicode strings." +"underlying implementation of the regular expressions provided by the :mod:" +"`re` module has been changed. SRE, a new regular expression engine written " +"by Fredrik Lundh and partially funded by Hewlett Packard, supports matching " +"against both 8-bit strings and Unicode strings." msgstr "" -#: ../../whatsnew/2.0.rst:1075 msgid "New modules" msgstr "" -#: ../../whatsnew/2.0.rst:1077 msgid "" "A number of new modules were added. We'll simply list them with brief " "descriptions; consult the 2.0 documentation for the details of a particular " "module." msgstr "" -#: ../../whatsnew/2.0.rst:1081 msgid "" ":mod:`atexit`: For registering functions to be called before the Python " "interpreter exits. Code that currently sets ``sys.exitfunc`` directly should " @@ -1555,20 +1374,17 @@ msgid "" "(Contributed by Skip Montanaro.)" msgstr "" -#: ../../whatsnew/2.0.rst:1087 msgid "" ":mod:`codecs`, :mod:`!encodings`, :mod:`unicodedata`: Added as part of the " "new Unicode support." msgstr "" -#: ../../whatsnew/2.0.rst:1090 msgid "" ":mod:`filecmp`: Supersedes the old :mod:`!cmp`, :mod:`!cmpcache` and :mod:`!" "dircmp` modules, which have now become deprecated. (Contributed by Gordon " "MacMillan and Moshe Zadka.)" msgstr "" -#: ../../whatsnew/2.0.rst:1094 msgid "" ":mod:`gettext`: This module provides internationalization (I18N) and " "localization (L10N) support for Python programs by providing an interface to " @@ -1577,30 +1393,26 @@ msgid "" "Henstridge.)" msgstr "" -#: ../../whatsnew/2.0.rst:1099 msgid "" ":mod:`!linuxaudiodev`: Support for the :file:`/dev/audio` device on Linux, a " "twin to the existing :mod:`!sunaudiodev` module. (Contributed by Peter " "Bosch, with fixes by Jeremy Hylton.)" msgstr "" -#: ../../whatsnew/2.0.rst:1103 msgid "" ":mod:`mmap`: An interface to memory-mapped files on both Windows and Unix. " "A file's contents can be mapped directly into memory, at which point it " "behaves like a mutable string, so its contents can be read and modified. " "They can even be passed to functions that expect ordinary strings, such as " -"the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by " -"A.M. Kuchling.)" +"the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by A." +"M. Kuchling.)" msgstr "" -#: ../../whatsnew/2.0.rst:1109 msgid "" ":mod:`!pyexpat`: An interface to the Expat XML parser. (Contributed by Paul " "Prescod.)" msgstr "" -#: ../../whatsnew/2.0.rst:1112 msgid "" ":mod:`robotparser `: Parse a :file:`robots.txt` file, " "which is used for writing web spiders that politely avoid certain areas of a " @@ -1609,31 +1421,27 @@ msgid "" "fetchability of a given URL. (Contributed by Skip Montanaro.)" msgstr "" -#: ../../whatsnew/2.0.rst:1118 msgid "" ":mod:`tabnanny`: A module/script to check Python source code for ambiguous " "indentation. (Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.0.rst:1121 msgid "" ":mod:`!UserString`: A base class useful for deriving objects that behave " "like strings." msgstr "" -#: ../../whatsnew/2.0.rst:1124 msgid "" ":mod:`webbrowser`: A module that provides a platform independent way to " "launch a web browser on a specific URL. For each platform, various browsers " "are tried in a specific order. The user can alter which browser is launched " "by setting the *BROWSER* environment variable. (Originally inspired by Eric " "S. Raymond's patch to :mod:`urllib` which added similar functionality, but " -"the final module comes from code originally implemented by Fred Drake " -"as :file:`Tools/idle/BrowserControl.py`, and adapted for the standard " -"library by Fred.)" +"the final module comes from code originally implemented by Fred Drake as :" +"file:`Tools/idle/BrowserControl.py`, and adapted for the standard library by " +"Fred.)" msgstr "" -#: ../../whatsnew/2.0.rst:1133 msgid "" ":mod:`_winreg `: An interface to the Windows registry. :mod:`!" "_winreg` is an adaptation of functions that have been part of PythonWin " @@ -1642,7 +1450,6 @@ msgid "" "Hammond." msgstr "" -#: ../../whatsnew/2.0.rst:1138 msgid "" ":mod:`zipfile`: A module for reading and writing ZIP-format archives. These " "are archives produced by :program:`PKZIP` on DOS/Windows or :program:`zip` " @@ -1650,7 +1457,6 @@ msgid "" "supported by the :mod:`gzip` module) (Contributed by James C. Ahlstrom.)" msgstr "" -#: ../../whatsnew/2.0.rst:1143 msgid "" ":mod:`!imputil`: A module that provides a simpler way for writing customized " "import hooks, in comparison to the existing :mod:`!ihooks` module. " @@ -1658,70 +1464,57 @@ msgid "" "way.)" msgstr "" -#: ../../whatsnew/2.0.rst:1151 msgid "IDLE Improvements" msgstr "" -#: ../../whatsnew/2.0.rst:1153 msgid "" "IDLE is the official Python cross-platform IDE, written using Tkinter. " "Python 2.0 includes IDLE 0.6, which adds a number of new features and " "improvements. A partial list:" msgstr "" -#: ../../whatsnew/2.0.rst:1157 msgid "" "UI improvements and optimizations, especially in the area of syntax " "highlighting and auto-indentation." msgstr "" -#: ../../whatsnew/2.0.rst:1160 msgid "" "The class browser now shows more information, such as the top level " "functions in a module." msgstr "" -#: ../../whatsnew/2.0.rst:1163 msgid "" "Tab width is now a user settable option. When opening an existing Python " "file, IDLE automatically detects the indentation conventions, and adapts." msgstr "" -#: ../../whatsnew/2.0.rst:1166 msgid "" "There is now support for calling browsers on various platforms, used to open " "the Python documentation in a browser." msgstr "" -#: ../../whatsnew/2.0.rst:1169 msgid "" "IDLE now has a command line, which is largely similar to the vanilla Python " "interpreter." msgstr "" -#: ../../whatsnew/2.0.rst:1172 msgid "Call tips were added in many places." msgstr "" -#: ../../whatsnew/2.0.rst:1174 msgid "IDLE can now be installed as a package." msgstr "" -#: ../../whatsnew/2.0.rst:1176 msgid "In the editor window, there is now a line/column bar at the bottom." msgstr "" -#: ../../whatsnew/2.0.rst:1178 msgid "" -"Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module " -"(:kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." +"Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module (:" +"kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." msgstr "" -#: ../../whatsnew/2.0.rst:1185 msgid "Deleted and Deprecated Modules" msgstr "" -#: ../../whatsnew/2.0.rst:1187 msgid "" "A few modules have been dropped because they're obsolete, or because there " "are now better ways to do the same thing. The :mod:`!stdwin` module is " @@ -1729,22 +1522,19 @@ msgid "" "developed." msgstr "" -#: ../../whatsnew/2.0.rst:1191 msgid "" -"A number of modules have been moved to the :file:`lib-old` " -"subdirectory: :mod:`!cmp`, :mod:`!cmpcache`, :mod:`!dircmp`, :mod:`!" -"dump`, :mod:`!find`, :mod:`!grep`, :mod:`!packmail`, :mod:`!poly`, :mod:`!" -"util`, :mod:`!whatsound`, :mod:`!zmod`. If you have code which relies on a " -"module that's been moved to :file:`lib-old`, you can simply add that " -"directory to ``sys.path`` to get them back, but you're encouraged to " -"update any code that uses these modules." +"A number of modules have been moved to the :file:`lib-old` subdirectory: :" +"mod:`!cmp`, :mod:`!cmpcache`, :mod:`!dircmp`, :mod:`!dump`, :mod:`!find`, :" +"mod:`!grep`, :mod:`!packmail`, :mod:`!poly`, :mod:`!util`, :mod:`!" +"whatsound`, :mod:`!zmod`. If you have code which relies on a module that's " +"been moved to :file:`lib-old`, you can simply add that directory to ``sys." +"path`` to get them back, but you're encouraged to update any code that " +"uses these modules." msgstr "" -#: ../../whatsnew/2.0.rst:1200 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.0.rst:1202 msgid "" "The authors would like to thank the following people for offering " "suggestions on various drafts of this article: David Bolen, Mark Hammond, " diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index 0ffaac7..64bf474 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,23 +22,18 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.1.rst:3 msgid "What's New in Python 2.1" msgstr "" -#: ../../whatsnew/2.1.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.1.rst:5 msgid "A.M. Kuchling" msgstr "" -#: ../../whatsnew/2.1.rst:13 msgid "Introduction" msgstr "Bevezetés" -#: ../../whatsnew/2.1.rst:15 msgid "" "This article explains the new features in Python 2.1. While there aren't as " "many changes in 2.1 as there were in Python 2.0, there are still some " @@ -53,7 +47,6 @@ msgid "" "particularly interests you." msgstr "" -#: ../../whatsnew/2.1.rst:25 msgid "" "One recent goal of the Python development team has been to accelerate the " "pace of new releases, with a new release coming every 6 to 9 months. 2.1 is " @@ -61,15 +54,12 @@ msgid "" "appearing in January, 3 months after the final version of 2.0 was released." msgstr "" -#: ../../whatsnew/2.1.rst:30 msgid "The final release of Python 2.1 was made on April 17, 2001." msgstr "" -#: ../../whatsnew/2.1.rst:36 msgid "PEP 227: Nested Scopes" msgstr "" -#: ../../whatsnew/2.1.rst:38 msgid "" "The largest change in Python 2.1 is to Python's scoping rules. In Python " "2.0, at any given time there are at most three namespaces used to look up " @@ -78,7 +68,6 @@ msgid "" "example, a nested recursive function definition doesn't work::" msgstr "" -#: ../../whatsnew/2.1.rst:44 msgid "" "def f():\n" " ...\n" @@ -88,7 +77,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.1.rst:51 msgid "" "The function :func:`!g` will always raise a :exc:`NameError` exception, " "because the binding of the name ``g`` isn't in either its local namespace or " @@ -100,7 +88,6 @@ msgid "" "arguments. ::" msgstr "" -#: ../../whatsnew/2.1.rst:59 msgid "" "def find(self, name):\n" " \"Return list of any entries equal to 'name'\"\n" @@ -109,26 +96,22 @@ msgid "" " return L" msgstr "" -#: ../../whatsnew/2.1.rst:65 msgid "" "The readability of Python code written in a strongly functional style " "suffers greatly as a result." msgstr "" -#: ../../whatsnew/2.1.rst:68 msgid "" "The most significant change to Python 2.1 is that static scoping has been " "added to the language to fix this problem. As a first effect, the " "``name=name`` default argument is now unnecessary in the above example. Put " "simply, when a given variable name is not assigned a value within a function " -"(by an assignment, or the :keyword:`def`, :keyword:`class`, " -"or :keyword:`import` statements), references to the variable will be looked " -"up in the local namespace of the enclosing scope. A more detailed " -"explanation of the rules, and a dissection of the implementation, can be " -"found in the PEP." +"(by an assignment, or the :keyword:`def`, :keyword:`class`, or :keyword:" +"`import` statements), references to the variable will be looked up in the " +"local namespace of the enclosing scope. A more detailed explanation of the " +"rules, and a dissection of the implementation, can be found in the PEP." msgstr "" -#: ../../whatsnew/2.1.rst:77 msgid "" "This change may cause some compatibility problems for code where the same " "variable name is used both at the module level and as a local variable " @@ -137,7 +120,6 @@ msgid "" "read in the first place." msgstr "" -#: ../../whatsnew/2.1.rst:83 msgid "" "One side effect of the change is that the ``from module import *`` and " "``exec`` statements have been made illegal inside a function scope under " @@ -153,11 +135,9 @@ msgid "" "the compiler will flag this by raising a :exc:`SyntaxError` exception." msgstr "" -#: ../../whatsnew/2.1.rst:96 msgid "To make the preceding explanation a bit clearer, here's an example::" msgstr "" -#: ../../whatsnew/2.1.rst:98 msgid "" "x = 1\n" "def f():\n" @@ -167,21 +147,18 @@ msgid "" " return x" msgstr "" -#: ../../whatsnew/2.1.rst:105 msgid "" "Line 4 containing the ``exec`` statement is a syntax error, since ``exec`` " "would define a new local variable named ``x`` whose value should be accessed " "by :func:`!g`." msgstr "" -#: ../../whatsnew/2.1.rst:109 msgid "" "This shouldn't be much of a limitation, since ``exec`` is rarely used in " "most Python code (and when it is used, it's often a sign of a poor design " "anyway)." msgstr "" -#: ../../whatsnew/2.1.rst:113 msgid "" "Compatibility concerns have led to nested scopes being introduced gradually; " "in Python 2.1, they aren't enabled by default, but can be turned on within a " @@ -192,19 +169,15 @@ msgid "" "resulting from their introduction." msgstr "" -#: ../../whatsnew/2.1.rst:123 msgid ":pep:`227` - Statically Nested Scopes" msgstr "" -#: ../../whatsnew/2.1.rst:124 msgid "Written and implemented by Jeremy Hylton." msgstr "" -#: ../../whatsnew/2.1.rst:130 msgid "PEP 236: __future__ Directives" msgstr "" -#: ../../whatsnew/2.1.rst:132 msgid "" "The reaction to nested scopes was widespread concern about the dangers of " "breaking code with the 2.1 release, and it was strong enough to make the " @@ -213,41 +186,33 @@ msgid "" "that will become compulsory in release N+1." msgstr "" -#: ../../whatsnew/2.1.rst:138 msgid "" "The syntax uses a ``from...import`` statement using the reserved module " "name :mod:`__future__`. Nested scopes can be enabled by the following " "statement::" msgstr "" -#: ../../whatsnew/2.1.rst:141 msgid "from __future__ import nested_scopes" msgstr "" -#: ../../whatsnew/2.1.rst:143 msgid "" "While it looks like a normal :keyword:`import` statement, it's not; there " "are strict rules on where such a future statement can be put. They can only " -"be at the top of a module, and must precede any Python code or " -"regular :keyword:`!import` statements. This is because such statements can " -"affect how the Python bytecode compiler parses code and generates bytecode, " -"so they must precede any statement that will result in bytecodes being " -"produced." +"be at the top of a module, and must precede any Python code or regular :" +"keyword:`!import` statements. This is because such statements can affect " +"how the Python bytecode compiler parses code and generates bytecode, so they " +"must precede any statement that will result in bytecodes being produced." msgstr "" -#: ../../whatsnew/2.1.rst:153 msgid ":pep:`236` - Back to the :mod:`__future__`" msgstr "" -#: ../../whatsnew/2.1.rst:154 msgid "Written by Tim Peters, and primarily implemented by Jeremy Hylton." msgstr "" -#: ../../whatsnew/2.1.rst:160 msgid "PEP 207: Rich Comparisons" msgstr "" -#: ../../whatsnew/2.1.rst:162 msgid "" "In earlier versions, Python's support for implementing comparisons on user-" "defined classes and extension types was quite simple. Classes could " @@ -263,7 +228,6 @@ msgid "" "error." msgstr "" -#: ../../whatsnew/2.1.rst:174 msgid "" "In Python 2.1, rich comparisons were added in order to support this need. " "Python classes can now individually overload each of the ``<``, ``<=``, " @@ -271,70 +235,54 @@ msgid "" "are:" msgstr "" -#: ../../whatsnew/2.1.rst:179 msgid "Operation" msgstr "" -#: ../../whatsnew/2.1.rst:179 msgid "Method name" msgstr "" -#: ../../whatsnew/2.1.rst:181 msgid "``<``" -msgstr "``<``" +msgstr "" -#: ../../whatsnew/2.1.rst:181 msgid ":meth:`~object.__lt__`" msgstr "" -#: ../../whatsnew/2.1.rst:183 msgid "``<=``" -msgstr "``<=``" +msgstr "" -#: ../../whatsnew/2.1.rst:183 msgid ":meth:`~object.__le__`" msgstr "" -#: ../../whatsnew/2.1.rst:185 msgid "``>``" -msgstr "``>``" +msgstr "" -#: ../../whatsnew/2.1.rst:185 msgid ":meth:`~object.__gt__`" msgstr "" -#: ../../whatsnew/2.1.rst:187 msgid "``>=``" -msgstr "``>=``" +msgstr "" -#: ../../whatsnew/2.1.rst:187 msgid ":meth:`~object.__ge__`" msgstr "" -#: ../../whatsnew/2.1.rst:189 msgid "``==``" -msgstr "``==``" +msgstr "" -#: ../../whatsnew/2.1.rst:189 msgid ":meth:`~object.__eq__`" msgstr "" -#: ../../whatsnew/2.1.rst:191 msgid "``!=``" -msgstr "``!=``" +msgstr "" -#: ../../whatsnew/2.1.rst:191 msgid ":meth:`~object.__ne__`" msgstr "" -#: ../../whatsnew/2.1.rst:194 msgid "" -"(The magic methods are named after the corresponding Fortran operators " -"``.LT.``. ``.LE.``, &c. Numeric programmers are almost certainly quite " -"familiar with these names and will find them easy to remember.)" +"(The magic methods are named after the corresponding Fortran operators ``.LT." +"``. ``.LE.``, &c. Numeric programmers are almost certainly quite familiar " +"with these names and will find them easy to remember.)" msgstr "" -#: ../../whatsnew/2.1.rst:198 msgid "" "Each of these magic methods is of the form ``method(self, other)``, where " "``self`` will be the object on the left-hand side of the operator, while " @@ -342,7 +290,6 @@ msgid "" "expression ``A < B`` will cause ``A.__lt__(B)`` to be called." msgstr "" -#: ../../whatsnew/2.1.rst:203 msgid "" "Each of these magic methods can return anything at all: a Boolean, a matrix, " "a list, or any other Python object. Alternatively they can raise an " @@ -350,7 +297,6 @@ msgid "" "meaningless." msgstr "" -#: ../../whatsnew/2.1.rst:207 msgid "" "The built-in ``cmp(A,B)`` function can use the rich comparison machinery, " "and now accepts an optional argument specifying which comparison operation " @@ -361,30 +307,25 @@ msgid "" "and can return any Python object." msgstr "" -#: ../../whatsnew/2.1.rst:214 msgid "" "There are also corresponding changes of interest to C programmers; there's a " "new slot ``tp_richcmp`` in type objects and an API for performing a given " -"rich comparison. I won't cover the C API here, but will refer you " -"to :pep:`207`, or to 2.1's C API documentation, for the full list of related " +"rich comparison. I won't cover the C API here, but will refer you to :pep:" +"`207`, or to 2.1's C API documentation, for the full list of related " "functions." msgstr "" -#: ../../whatsnew/2.1.rst:222 msgid ":pep:`207` - Rich Comparisons" msgstr "" -#: ../../whatsnew/2.1.rst:223 msgid "" "Written by Guido van Rossum, heavily based on earlier work by David Ascher, " "and implemented by Guido van Rossum." msgstr "" -#: ../../whatsnew/2.1.rst:230 msgid "PEP 230: Warning Framework" msgstr "" -#: ../../whatsnew/2.1.rst:232 msgid "" "Over its 10 years of existence, Python has accumulated a certain number of " "obsolete modules and features along the way. It's difficult to know when a " @@ -397,22 +338,19 @@ msgid "" "a full release cycle to remove uses of the old feature." msgstr "" -#: ../../whatsnew/2.1.rst:242 msgid "" -"Python 2.1 adds the warning framework to be used in this scheme. It adds " -"a :mod:`warnings` module that provide functions to issue warnings, and to " +"Python 2.1 adds the warning framework to be used in this scheme. It adds a :" +"mod:`warnings` module that provide functions to issue warnings, and to " "filter out warnings that you don't want to be displayed. Third-party modules " "can also use this framework to deprecate old features that they no longer " "wish to support." msgstr "" -#: ../../whatsnew/2.1.rst:248 msgid "" "For example, in Python 2.1 the :mod:`!regex` module is deprecated, so " "importing it causes a warning to be printed::" msgstr "" -#: ../../whatsnew/2.1.rst:251 msgid "" ">>> import regex\n" "__main__:1: DeprecationWarning: the regex module\n" @@ -420,30 +358,25 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.1.rst:256 msgid "Warnings can be issued by calling the :func:`warnings.warn` function::" msgstr "" -#: ../../whatsnew/2.1.rst:258 msgid "warnings.warn(\"feature X no longer supported\")" msgstr "" -#: ../../whatsnew/2.1.rst:260 msgid "" "The first parameter is the warning message; an additional optional " "parameters can be used to specify a particular warning category." msgstr "" -#: ../../whatsnew/2.1.rst:263 msgid "" "Filters can be added to disable certain warnings; a regular expression " "pattern can be applied to the message or to the module name in order to " -"suppress a warning. For example, you may have a program that uses " -"the :mod:`!regex` module and not want to spare the time to convert it to use " -"the :mod:`re` module right now. The warning can be suppressed by calling ::" +"suppress a warning. For example, you may have a program that uses the :mod:" +"`!regex` module and not want to spare the time to convert it to use the :mod:" +"`re` module right now. The warning can be suppressed by calling ::" msgstr "" -#: ../../whatsnew/2.1.rst:269 msgid "" "import warnings\n" "warnings.filterwarnings(action = 'ignore',\n" @@ -452,28 +385,24 @@ msgid "" " module = '__main__')" msgstr "" -#: ../../whatsnew/2.1.rst:275 msgid "" -"This adds a filter that will apply only to warnings of the " -"class :class:`DeprecationWarning` triggered in the :mod:`__main__` module, " -"and applies a regular expression to only match the message about the :mod:`!" -"regex` module being deprecated, and will cause such warnings to be ignored. " -"Warnings can also be printed only once, printed every time the offending " -"code is executed, or turned into exceptions that will cause the program to " -"stop (unless the exceptions are caught in the usual way, of course)." +"This adds a filter that will apply only to warnings of the class :class:" +"`DeprecationWarning` triggered in the :mod:`__main__` module, and applies a " +"regular expression to only match the message about the :mod:`!regex` module " +"being deprecated, and will cause such warnings to be ignored. Warnings can " +"also be printed only once, printed every time the offending code is " +"executed, or turned into exceptions that will cause the program to stop " +"(unless the exceptions are caught in the usual way, of course)." msgstr "" -#: ../../whatsnew/2.1.rst:283 msgid "" "Functions were also added to Python's C API for issuing warnings; refer to " "PEP 230 or to Python's API documentation for the details." msgstr "" -#: ../../whatsnew/2.1.rst:289 msgid ":pep:`5` - Guidelines for Language Evolution" msgstr "" -#: ../../whatsnew/2.1.rst:290 msgid "" "Written by Paul Prescod, to specify procedures to be followed when removing " "old features from Python. The policy described in this PEP hasn't been " @@ -481,19 +410,15 @@ msgid "" "from Prescod's proposal." msgstr "" -#: ../../whatsnew/2.1.rst:295 msgid ":pep:`230` - Warning Framework" msgstr "" -#: ../../whatsnew/2.1.rst:296 msgid "Written and implemented by Guido van Rossum." msgstr "" -#: ../../whatsnew/2.1.rst:302 msgid "PEP 229: New Build System" msgstr "" -#: ../../whatsnew/2.1.rst:304 msgid "" "When compiling Python, the user had to go in and edit the :file:`Modules/" "Setup` file in order to enable various additional modules; the default set " @@ -503,7 +428,6 @@ msgid "" "they could." msgstr "" -#: ../../whatsnew/2.1.rst:310 msgid "" "Python 2.0 added the Distutils, a set of modules for distributing and " "installing extensions. In Python 2.1, the Distutils are used to compile " @@ -512,7 +436,6 @@ msgid "" "installations easier and more featureful." msgstr "" -#: ../../whatsnew/2.1.rst:316 msgid "" "Instead of having to edit the :file:`Modules/Setup` file in order to enable " "modules, a :file:`setup.py` script in the top directory of the Python source " @@ -524,35 +447,29 @@ msgid "" "line flags or libraries that are required for a specific platform." msgstr "" -#: ../../whatsnew/2.1.rst:325 msgid "" "In another far-reaching change to the build mechanism, Neil Schemenauer " "restructured things so Python now uses a single makefile that isn't " -"recursive, instead of makefiles in the top directory and in each of " -"the :file:`Python/`, :file:`Parser/`, :file:`Objects/`, and :file:`Modules/` " +"recursive, instead of makefiles in the top directory and in each of the :" +"file:`Python/`, :file:`Parser/`, :file:`Objects/`, and :file:`Modules/` " "subdirectories. This makes building Python faster and also makes hacking " "the Makefiles clearer and simpler." msgstr "" -#: ../../whatsnew/2.1.rst:335 msgid ":pep:`229` - Using Distutils to Build Python" msgstr "" -#: ../../whatsnew/2.1.rst:336 ../../whatsnew/2.1.rst:575 msgid "Written and implemented by A.M. Kuchling." msgstr "" -#: ../../whatsnew/2.1.rst:342 msgid "PEP 205: Weak References" msgstr "" -#: ../../whatsnew/2.1.rst:344 msgid "" "Weak references, available through the :mod:`weakref` module, are a minor " "but useful new data type in the Python programmer's toolbox." msgstr "" -#: ../../whatsnew/2.1.rst:347 msgid "" "Storing a reference to an object (say, in a dictionary or a list) has the " "side effect of keeping that object alive forever. There are a few specific " @@ -561,14 +478,12 @@ msgid "" "trees." msgstr "" -#: ../../whatsnew/2.1.rst:352 msgid "" "For example, consider a memoizing function that caches the results of " "another function ``f(x)`` by storing the function's argument and its result " "in a dictionary::" msgstr "" -#: ../../whatsnew/2.1.rst:356 msgid "" "_cache = {}\n" "def memoize(x):\n" @@ -583,7 +498,6 @@ msgid "" " return retval" msgstr "" -#: ../../whatsnew/2.1.rst:368 msgid "" "This version works for simple things such as integers, but it has a side " "effect; the ``_cache`` dictionary holds a reference to the return values, so " @@ -593,7 +507,6 @@ msgid "" "problem." msgstr "" -#: ../../whatsnew/2.1.rst:374 msgid "" "Weak references provide a way to implement a cache that won't keep objects " "alive beyond their time. If an object is only accessible through weak " @@ -605,13 +518,11 @@ msgid "" "``None`` if the object no longer exists." msgstr "" -#: ../../whatsnew/2.1.rst:382 msgid "" "This makes it possible to write a :func:`!memoize` function whose cache " "doesn't keep objects alive, by storing weak references in the cache. ::" msgstr "" -#: ../../whatsnew/2.1.rst:385 msgid "" "_cache = {}\n" "def memoize(x):\n" @@ -629,7 +540,6 @@ msgid "" " return retval" msgstr "" -#: ../../whatsnew/2.1.rst:400 msgid "" "The :mod:`weakref` module also allows creating proxy objects which behave " "like weak references --- an object referenced only by proxy objects is " @@ -640,7 +550,6 @@ msgid "" "raised. ::" msgstr "" -#: ../../whatsnew/2.1.rst:407 msgid "" "proxy = weakref.proxy(obj)\n" "proxy.attr # Equivalent to obj.attr\n" @@ -649,19 +558,15 @@ msgid "" "proxy.attr # raises weakref.ReferenceError" msgstr "" -#: ../../whatsnew/2.1.rst:416 msgid ":pep:`205` - Weak References" msgstr "" -#: ../../whatsnew/2.1.rst:417 msgid "Written and implemented by Fred L. Drake, Jr." msgstr "" -#: ../../whatsnew/2.1.rst:423 msgid "PEP 232: Function Attributes" msgstr "" -#: ../../whatsnew/2.1.rst:425 msgid "" "In Python 2.1, functions can now have arbitrary information attached to " "them. People were often using docstrings to hold information about functions " @@ -675,13 +580,11 @@ msgid "" "intended for private use in Zope." msgstr "" -#: ../../whatsnew/2.1.rst:436 msgid "" "Arbitrary attributes can now be set and retrieved on functions using the " "regular Python syntax::" msgstr "" -#: ../../whatsnew/2.1.rst:439 msgid "" "def f(): pass\n" "\n" @@ -690,30 +593,24 @@ msgid "" "f.grammar = \"A ::= B (C D)*\"" msgstr "" -#: ../../whatsnew/2.1.rst:445 msgid "" -"The dictionary containing attributes can be accessed as the " -"function's :attr:`~function.__dict__`. Unlike the :attr:`~type.__dict__` " -"attribute of class instances, in functions you can actually assign a new " -"dictionary to :attr:`~function.__dict__`, though the new value is restricted " -"to a regular Python dictionary; you *can't* be tricky and set it to " -"a :class:`!UserDict` instance, or any other random object that behaves like " -"a mapping." +"The dictionary containing attributes can be accessed as the function's :attr:" +"`~function.__dict__`. Unlike the :attr:`~type.__dict__` attribute of class " +"instances, in functions you can actually assign a new dictionary to :attr:" +"`~function.__dict__`, though the new value is restricted to a regular Python " +"dictionary; you *can't* be tricky and set it to a :class:`!UserDict` " +"instance, or any other random object that behaves like a mapping." msgstr "" -#: ../../whatsnew/2.1.rst:455 msgid ":pep:`232` - Function Attributes" msgstr "" -#: ../../whatsnew/2.1.rst:456 msgid "Written and implemented by Barry Warsaw." msgstr "" -#: ../../whatsnew/2.1.rst:462 msgid "PEP 235: Importing Modules on Case-Insensitive Platforms" msgstr "" -#: ../../whatsnew/2.1.rst:464 msgid "" "Some operating systems have filesystems that are case-insensitive, MacOS and " "Windows being the primary examples; on these systems, it's impossible to " @@ -721,22 +618,18 @@ msgid "" "store the file's name in its original case (they're case-preserving, too)." msgstr "" -#: ../../whatsnew/2.1.rst:469 msgid "" "In Python 2.1, the :keyword:`import` statement will work to simulate case-" "sensitivity on case-insensitive platforms. Python will now search for the " "first case-sensitive match by default, raising an :exc:`ImportError` if no " -"such file is found, so ``import file`` will not import a module named " -"``FILE.PY``. Case-insensitive matching can be requested by setting " -"the :envvar:`PYTHONCASEOK` environment variable before starting the Python " -"interpreter." +"such file is found, so ``import file`` will not import a module named ``FILE." +"PY``. Case-insensitive matching can be requested by setting the :envvar:" +"`PYTHONCASEOK` environment variable before starting the Python interpreter." msgstr "" -#: ../../whatsnew/2.1.rst:480 msgid "PEP 217: Interactive Display Hook" msgstr "" -#: ../../whatsnew/2.1.rst:482 msgid "" "When using the Python interpreter interactively, the output of commands is " "displayed using the built-in :func:`repr` function. In Python 2.1, the " @@ -745,7 +638,6 @@ msgid "" "pretty-printing function::" msgstr "" -#: ../../whatsnew/2.1.rst:488 msgid "" ">>> # Create a recursive data structure\n" "... L = [1,2,3]\n" @@ -760,26 +652,21 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.1.rst:503 msgid ":pep:`217` - Display Hook for Interactive Use" msgstr "" -#: ../../whatsnew/2.1.rst:504 msgid "Written and implemented by Moshe Zadka." msgstr "" -#: ../../whatsnew/2.1.rst:510 msgid "PEP 208: New Coercion Model" msgstr "" -#: ../../whatsnew/2.1.rst:512 msgid "" "How numeric coercion is done at the C level was significantly modified. " "This will only affect the authors of C extensions to Python, allowing them " "more flexibility in writing extension types that support numeric operations." msgstr "" -#: ../../whatsnew/2.1.rst:516 msgid "" "Extension types can now set the type flag ``Py_TPFLAGS_CHECKTYPES`` in their " "``PyTypeObject`` structure to indicate that they support the new coercion " @@ -797,22 +684,18 @@ msgid "" "object's numeric methods)." msgstr "" -#: ../../whatsnew/2.1.rst:533 msgid ":pep:`208` - Reworking the Coercion Model" msgstr "" -#: ../../whatsnew/2.1.rst:534 msgid "" "Written and implemented by Neil Schemenauer, heavily based upon earlier work " "by Marc-André Lemburg. Read this to understand the fine points of how " "numeric operations will now be processed at the C level." msgstr "" -#: ../../whatsnew/2.1.rst:542 msgid "PEP 241: Metadata in Python Packages" msgstr "" -#: ../../whatsnew/2.1.rst:544 msgid "" "A common complaint from Python users is that there's no single catalog of " "all the Python modules in existence. T. Middleton's Vaults of Parnassus at " @@ -823,63 +706,53 @@ msgid "" "bother." msgstr "" -#: ../../whatsnew/2.1.rst:552 msgid "" "As a first small step toward fixing the problem, Python software packaged " -"using the Distutils :command:`sdist` command will include a file " -"named :file:`PKG-INFO` containing information about the package such as its " -"name, version, and author (metadata, in cataloguing " -"terminology). :pep:`241` contains the full list of fields that can be " -"present in the :file:`PKG-INFO` file. As people began to package their " -"software using Python 2.1, more and more packages will include metadata, " -"making it possible to build automated cataloguing systems and experiment " -"with them. With the result experience, perhaps it'll be possible to design " -"a really good catalog and then build support for it into Python 2.2. For " -"example, the Distutils :command:`sdist` and :command:`bdist_\\*` commands " -"could support an ``upload`` option that would automatically upload your " -"package to a catalog server." -msgstr "" - -#: ../../whatsnew/2.1.rst:565 +"using the Distutils :command:`sdist` command will include a file named :file:" +"`PKG-INFO` containing information about the package such as its name, " +"version, and author (metadata, in cataloguing terminology). :pep:`241` " +"contains the full list of fields that can be present in the :file:`PKG-INFO` " +"file. As people began to package their software using Python 2.1, more and " +"more packages will include metadata, making it possible to build automated " +"cataloguing systems and experiment with them. With the result experience, " +"perhaps it'll be possible to design a really good catalog and then build " +"support for it into Python 2.2. For example, the Distutils :command:`sdist` " +"and :command:`bdist_\\*` commands could support an ``upload`` option that " +"would automatically upload your package to a catalog server." +msgstr "" + msgid "" "You can start creating packages containing :file:`PKG-INFO` even if you're " "not using Python 2.1, since a new release of the Distutils will be made for " "users of earlier Python versions. Version 1.0.2 of the Distutils includes " "the changes described in :pep:`241`, as well as various bugfixes and " -"enhancements. It will be available from the Distutils SIG at https://" -"www.python.org/community/sigs/current/distutils-sig/." +"enhancements. It will be available from the Distutils SIG at https://www." +"python.org/community/sigs/current/distutils-sig/." msgstr "" -#: ../../whatsnew/2.1.rst:574 msgid ":pep:`241` - Metadata for Python Software Packages" msgstr "" -#: ../../whatsnew/2.1.rst:577 msgid ":pep:`243` - Module Repository Upload Mechanism" msgstr "" -#: ../../whatsnew/2.1.rst:578 msgid "" "Written by Sean Reifschneider, this draft PEP describes a proposed mechanism " "for uploading Python packages to a central server." msgstr "" -#: ../../whatsnew/2.1.rst:585 msgid "New and Improved Modules" msgstr "" -#: ../../whatsnew/2.1.rst:587 msgid "" "Ka-Ping Yee contributed two new modules: :mod:`!inspect.py`, a module for " "getting information about live Python code, and :mod:`!pydoc.py`, a module " -"for interactively converting docstrings to HTML or text. As a " -"bonus, :file:`Tools/scripts/pydoc`, which is now automatically installed, " -"uses :mod:`!pydoc.py` to display documentation given a Python module, " -"package, or class name. For example, ``pydoc xml.dom`` displays the " -"following::" +"for interactively converting docstrings to HTML or text. As a bonus, :file:" +"`Tools/scripts/pydoc`, which is now automatically installed, uses :mod:`!" +"pydoc.py` to display documentation given a Python module, package, or class " +"name. For example, ``pydoc xml.dom`` displays the following::" msgstr "" -#: ../../whatsnew/2.1.rst:594 msgid "" "Python Library Documentation: package xml.dom in xml\n" "\n" @@ -897,34 +770,30 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.1.rst:609 msgid "" -":file:`pydoc` also includes a Tk-based interactive help " -"browser. :file:`pydoc` quickly becomes addictive; try it out!" +":file:`pydoc` also includes a Tk-based interactive help browser. :file:" +"`pydoc` quickly becomes addictive; try it out!" msgstr "" -#: ../../whatsnew/2.1.rst:612 msgid "" "Two different modules for unit testing were added to the standard library. " "The :mod:`doctest` module, contributed by Tim Peters, provides a testing " "framework based on running embedded examples in docstrings and comparing the " "results against the expected output. PyUnit, contributed by Steve Purcell, " "is a unit testing framework inspired by JUnit, which was in turn an " -"adaptation of Kent Beck's Smalltalk testing framework. See https://" -"pyunit.sourceforge.net/ for more information about PyUnit." +"adaptation of Kent Beck's Smalltalk testing framework. See https://pyunit." +"sourceforge.net/ for more information about PyUnit." msgstr "" -#: ../../whatsnew/2.1.rst:620 msgid "" -"The :mod:`difflib` module contains a " -"class, :class:`~difflib.SequenceMatcher`, which compares two sequences and " -"computes the changes required to transform one sequence into the other. For " -"example, this module can be used to write a tool similar to the " -"Unix :program:`diff` program, and in fact the sample program :file:`Tools/" -"scripts/ndiff.py` demonstrates how to write such a script." +"The :mod:`difflib` module contains a class, :class:`~difflib." +"SequenceMatcher`, which compares two sequences and computes the changes " +"required to transform one sequence into the other. For example, this module " +"can be used to write a tool similar to the Unix :program:`diff` program, and " +"in fact the sample program :file:`Tools/scripts/ndiff.py` demonstrates how " +"to write such a script." msgstr "" -#: ../../whatsnew/2.1.rst:626 msgid "" ":mod:`curses.panel`, a wrapper for the panel library, part of ncurses and of " "SYSV curses, was contributed by Thomas Gellekum. The panel library provides " @@ -933,7 +802,6 @@ msgid "" "overlap and which sections are visible." msgstr "" -#: ../../whatsnew/2.1.rst:632 msgid "" "The PyXML package has gone through a few releases since Python 2.0, and " "Python 2.1 includes an updated version of the :mod:`xml` package. Some of " @@ -942,19 +810,17 @@ msgid "" "Python, and various bugfixes for SAX, DOM, and the :mod:`!minidom` module." msgstr "" -#: ../../whatsnew/2.1.rst:638 msgid "" -"Ping also contributed another hook for handling uncaught " -"exceptions. :func:`sys.excepthook` can be set to a callable object. When an " -"exception isn't caught by any :keyword:`try`...\\ :keyword:`except` blocks, " -"the exception will be passed to :func:`sys.excepthook`, which can then do " -"whatever it likes. At the Ninth Python Conference, Ping demonstrated an " -"application for this hook: printing an extended traceback that not only " -"lists the stack frames, but also lists the function arguments and the local " -"variables for each frame." +"Ping also contributed another hook for handling uncaught exceptions. :func:" +"`sys.excepthook` can be set to a callable object. When an exception isn't " +"caught by any :keyword:`try`...\\ :keyword:`except` blocks, the exception " +"will be passed to :func:`sys.excepthook`, which can then do whatever it " +"likes. At the Ninth Python Conference, Ping demonstrated an application for " +"this hook: printing an extended traceback that not only lists the stack " +"frames, but also lists the function arguments and the local variables for " +"each frame." msgstr "" -#: ../../whatsnew/2.1.rst:646 msgid "" "Various functions in the :mod:`time` module, such as :func:`~time.asctime` " "and :func:`~time.localtime`, require a floating-point argument containing " @@ -967,11 +833,9 @@ msgid "" "required." msgstr "" -#: ../../whatsnew/2.1.rst:655 msgid "This change was proposed and implemented by Thomas Wouters." msgstr "" -#: ../../whatsnew/2.1.rst:657 msgid "" "The :mod:`ftplib` module now defaults to retrieving files in passive mode, " "because passive mode is more likely to work from behind a firewall. This " @@ -983,41 +847,35 @@ msgid "" "``set_pasv(0)`` on FTP objects to disable passive mode." msgstr "" -#: ../../whatsnew/2.1.rst:666 msgid "" "Support for raw socket access has been added to the :mod:`socket` module, " "contributed by Grant Edwards." msgstr "" -#: ../../whatsnew/2.1.rst:669 msgid "" "The :mod:`pstats` module now contains a simple interactive statistics " "browser for displaying timing profiles for Python programs, invoked when the " "module is run as a script. Contributed by Eric S. Raymond." msgstr "" -#: ../../whatsnew/2.1.rst:673 msgid "" "A new implementation-dependent function, ``sys._getframe([depth])``, has " -"been added to return a given frame object from the current call " -"stack. :func:`sys._getframe` returns the frame at the top of the call " -"stack; if the optional integer argument *depth* is supplied, the function " -"returns the frame that is *depth* calls below the top of the stack. For " -"example, ``sys._getframe(1)`` returns the caller's frame object." +"been added to return a given frame object from the current call stack. :func:" +"`sys._getframe` returns the frame at the top of the call stack; if the " +"optional integer argument *depth* is supplied, the function returns the " +"frame that is *depth* calls below the top of the stack. For example, ``sys." +"_getframe(1)`` returns the caller's frame object." msgstr "" -#: ../../whatsnew/2.1.rst:680 msgid "" "This function is only present in CPython, not in Jython or the .NET " "implementation. Use it for debugging, and resist the temptation to put it " "into production code." msgstr "" -#: ../../whatsnew/2.1.rst:688 msgid "Other Changes and Fixes" msgstr "" -#: ../../whatsnew/2.1.rst:690 msgid "" "There were relatively few smaller changes made in Python 2.1 due to the " "shorter release cycle. A search through the CVS change logs turns up 117 " @@ -1025,39 +883,35 @@ msgid "" "underestimates. Some of the more notable changes are:" msgstr "" -#: ../../whatsnew/2.1.rst:695 msgid "" "A specialized object allocator is now optionally available, that should be " "faster than the system :c:func:`malloc` and have less memory overhead. The " "allocator uses C's :c:func:`!malloc` function to get large pools of memory, " "and then fulfills smaller memory requests from these pools. It can be " -"enabled by providing the :option:`!--with-pymalloc` option to " -"the :program:`configure` script; see :file:`Objects/obmalloc.c` for the " -"implementation details." +"enabled by providing the :option:`!--with-pymalloc` option to the :program:" +"`configure` script; see :file:`Objects/obmalloc.c` for the implementation " +"details." msgstr "" -#: ../../whatsnew/2.1.rst:702 msgid "" "Authors of C extension modules should test their code with the object " "allocator enabled, because some incorrect code may break, causing core dumps " "at runtime. There are a bunch of memory allocation functions in Python's C " -"API that have previously been just aliases for the C " -"library's :c:func:`malloc` and :c:func:`free`, meaning that if you " -"accidentally called mismatched functions, the error wouldn't be noticeable. " -"When the object allocator is enabled, these functions aren't aliases " -"of :c:func:`!malloc` and :c:func:`!free` any more, and calling the wrong " -"function to free memory will get you a core dump. For example, if memory " -"was allocated using :c:macro:`PyMem_New`, it has to be freed " -"using :c:func:`PyMem_Del`, not :c:func:`!free`. A few modules included with " -"Python fell afoul of this and had to be fixed; doubtless there are more " -"third-party modules that will have the same problem." -msgstr "" - -#: ../../whatsnew/2.1.rst:715 +"API that have previously been just aliases for the C library's :c:func:" +"`malloc` and :c:func:`free`, meaning that if you accidentally called " +"mismatched functions, the error wouldn't be noticeable. When the object " +"allocator is enabled, these functions aren't aliases of :c:func:`!malloc` " +"and :c:func:`!free` any more, and calling the wrong function to free memory " +"will get you a core dump. For example, if memory was allocated using :c:" +"macro:`PyMem_New`, it has to be freed using :c:func:`PyMem_Del`, not :c:func:" +"`!free`. A few modules included with Python fell afoul of this and had to " +"be fixed; doubtless there are more third-party modules that will have the " +"same problem." +msgstr "" + msgid "The object allocator was contributed by Vladimir Marangozov." msgstr "" -#: ../../whatsnew/2.1.rst:717 msgid "" "The speed of line-oriented file I/O has been improved because people often " "complain about its lack of speed, and because it's often been used as a " @@ -1069,31 +923,27 @@ msgid "" "this change, motivated by a discussion in comp.lang.python." msgstr "" -#: ../../whatsnew/2.1.rst:726 msgid "" "A new module and method for file objects was also added, contributed by Jeff " -"Epler. The new method, :meth:`!xreadlines`, is similar to the " -"existing :func:`!xrange` built-in. :func:`!xreadlines` returns an opaque " -"sequence object that only supports being iterated over, reading a line on " -"every iteration but not reading the entire file into memory as the " -"existing :meth:`!readlines` method does. You'd use it like this::" +"Epler. The new method, :meth:`!xreadlines`, is similar to the existing :func:" +"`!xrange` built-in. :func:`!xreadlines` returns an opaque sequence object " +"that only supports being iterated over, reading a line on every iteration " +"but not reading the entire file into memory as the existing :meth:`!" +"readlines` method does. You'd use it like this::" msgstr "" -#: ../../whatsnew/2.1.rst:733 msgid "" "for line in sys.stdin.xreadlines():\n" " # ... do something for each line ...\n" " ..." msgstr "" -#: ../../whatsnew/2.1.rst:737 msgid "" "For a fuller discussion of the line I/O changes, see the python-dev summary " "for January 1--15, 2001 at https://mail.python.org/pipermail/python-dev/2001-" "January/." msgstr "" -#: ../../whatsnew/2.1.rst:740 msgid "" "A new method, :meth:`~dict.popitem`, was added to dictionaries to enable " "destructively iterating through the contents of a dictionary; this can be " @@ -1104,7 +954,6 @@ msgid "" "suggestion and preliminary patch by Moshe Zadka." msgstr "" -#: ../../whatsnew/2.1.rst:748 msgid "" "Modules can now control which names are imported when ``from module import " "*`` is used, by defining an ``__all__`` attribute containing a list of names " @@ -1114,20 +963,17 @@ msgid "" "the public names in ``__all__``::" msgstr "" -#: ../../whatsnew/2.1.rst:755 msgid "" "# List public names\n" "__all__ = ['Database', 'open']" msgstr "" -#: ../../whatsnew/2.1.rst:758 msgid "" "A stricter version of this patch was first suggested and implemented by Ben " "Wolfson, but after some python-dev discussion, a weaker final version was " "checked in." msgstr "" -#: ../../whatsnew/2.1.rst:762 msgid "" "Applying :func:`repr` to strings previously used octal escapes for non-" "printable characters; for example, a newline was ``'\\012'``. This was a " @@ -1137,46 +983,39 @@ msgid "" "characters, and implemented this new formatting." msgstr "" -#: ../../whatsnew/2.1.rst:769 msgid "" "Syntax errors detected at compile-time can now raise exceptions containing " "the filename and line number of the error, a pleasant side effect of the " "compiler reorganization done by Jeremy Hylton." msgstr "" -#: ../../whatsnew/2.1.rst:773 msgid "" -"C extensions which import other modules have been changed to " -"use :c:func:`PyImport_ImportModule`, which means that they will use any " -"import hooks that have been installed. This is also encouraged for third-" -"party extensions that need to import some other module from C code." +"C extensions which import other modules have been changed to use :c:func:" +"`PyImport_ImportModule`, which means that they will use any import hooks " +"that have been installed. This is also encouraged for third-party " +"extensions that need to import some other module from C code." msgstr "" -#: ../../whatsnew/2.1.rst:778 msgid "" "The size of the Unicode character database was shrunk by another 340K thanks " "to Fredrik Lundh." msgstr "" -#: ../../whatsnew/2.1.rst:781 msgid "" "Some new ports were contributed: MacOS X (by Steven Majewski), Cygwin (by " "Jason Tishler); RISCOS (by Dietmar Schwertberger); Unixware 7 (by Billy G. " "Allie)." msgstr "" -#: ../../whatsnew/2.1.rst:785 msgid "" "And there's the usual list of minor bugfixes, minor memory leaks, docstring " "edits, and other tweaks, too lengthy to be worth itemizing; see the CVS logs " "for the full details if you want them." msgstr "" -#: ../../whatsnew/2.1.rst:793 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.1.rst:795 msgid "" "The author would like to thank the following people for offering suggestions " "on various drafts of this article: Graeme Cross, David Goodger, Jay Graves, " diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index e8fc89a..7b677cf 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,30 +22,24 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.2.rst:3 msgid "What's New in Python 2.2" msgstr "" -#: ../../whatsnew/2.2.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.2.rst:5 msgid "A.M. Kuchling" msgstr "" -#: ../../whatsnew/2.2.rst:13 msgid "Introduction" msgstr "Bevezetés" -#: ../../whatsnew/2.2.rst:15 msgid "" "This article explains the new features in Python 2.2.2, released on October " "14, 2002. Python 2.2.2 is a bugfix release of Python 2.2, originally " "released on December 21, 2001." msgstr "" -#: ../../whatsnew/2.2.rst:19 msgid "" "Python 2.2 can be thought of as the \"cleanup release\". There are some " "features such as generators and iterators that are completely new, but most " @@ -53,7 +47,6 @@ msgid "" "at cleaning up irregularities and dark corners of the language design." msgstr "" -#: ../../whatsnew/2.2.rst:24 msgid "" "This article doesn't attempt to provide a complete specification of the new " "features, but instead provides a convenient overview. For full details, you " @@ -64,11 +57,9 @@ msgid "" "a change, refer to the PEP for a particular new feature." msgstr "" -#: ../../whatsnew/2.2.rst:43 msgid "PEPs 252 and 253: Type and Class Changes" msgstr "" -#: ../../whatsnew/2.2.rst:45 msgid "" "The largest and most far-reaching changes in Python 2.2 are to Python's " "model of objects and classes. The changes should be backward compatible, so " @@ -78,7 +69,6 @@ msgid "" "the changes and offer some comments." msgstr "" -#: ../../whatsnew/2.2.rst:52 msgid "" "A long time ago I wrote a web page listing flaws in Python's design. One of " "the most significant flaws was that it's impossible to subclass Python types " @@ -90,25 +80,21 @@ msgid "" "a :class:`~collections.UserList` instance." msgstr "" -#: ../../whatsnew/2.2.rst:61 msgid "" "Python 2.2 fixes this, and in the process adds some exciting new " "capabilities. A brief summary:" msgstr "" -#: ../../whatsnew/2.2.rst:64 msgid "" "You can subclass built-in types such as lists and even integers, and your " "subclasses should work in every place that requires the original type." msgstr "" -#: ../../whatsnew/2.2.rst:67 msgid "" "It's now possible to define static and class methods, in addition to the " "instance methods available in previous versions of Python." msgstr "" -#: ../../whatsnew/2.2.rst:70 msgid "" "It's also possible to automatically call methods on accessing or setting an " "instance attribute by using a new mechanism called :dfn:`properties`. Many " @@ -117,14 +103,12 @@ msgid "" "benefit, attributes can now have docstrings, too." msgstr "" -#: ../../whatsnew/2.2.rst:76 msgid "" "The list of legal attributes for an instance can be limited to a particular " "set using :dfn:`slots`, making it possible to safeguard against typos and " "perhaps make more optimizations possible in future versions of Python." msgstr "" -#: ../../whatsnew/2.2.rst:80 msgid "" "Some users have voiced concern about all these changes. Sure, they say, the " "new features are neat and lend themselves to all sorts of tricks that " @@ -134,7 +118,6 @@ msgid "" "lost." msgstr "" -#: ../../whatsnew/2.2.rst:86 msgid "" "Personally, I think there's no need to worry. Many of the new features are " "quite esoteric, and you can write a lot of Python code without ever needed " @@ -145,7 +128,6 @@ msgid "" "that's all for the better." msgstr "" -#: ../../whatsnew/2.2.rst:93 msgid "" "I'm not going to attempt to cover every single corner case and small change " "that were required to make the new features work. Instead this section will " @@ -154,11 +136,9 @@ msgid "" "model." msgstr "" -#: ../../whatsnew/2.2.rst:100 msgid "Old and New Classes" msgstr "" -#: ../../whatsnew/2.2.rst:102 msgid "" "First, you should know that Python 2.2 really has two kinds of classes: " "classic or old-style classes, and new-style classes. The old-style class " @@ -168,7 +148,6 @@ msgid "" "style classes will be dropped, possibly in Python 3.0." msgstr "" -#: ../../whatsnew/2.2.rst:109 msgid "" "So how do you define a new-style class? You do it by subclassing an " "existing new-style class. Most of Python's built-in types, such as " @@ -178,7 +157,6 @@ msgid "" "subclass :class:`object`::" msgstr "" -#: ../../whatsnew/2.2.rst:116 msgid "" "class C(object):\n" " def __init__ (self):\n" @@ -186,24 +164,21 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.2.rst:121 msgid "" "This means that :keyword:`class` statements that don't have any base classes " "are always classic classes in Python 2.2. (Actually you can also change " "this by setting a module-level variable named :attr:`!__metaclass__` --- " -"see :pep:`253` for the details --- but it's easier to just " -"subclass :class:`object`.)" +"see :pep:`253` for the details --- but it's easier to just subclass :class:" +"`object`.)" msgstr "" -#: ../../whatsnew/2.2.rst:126 msgid "" "The type objects for the built-in types are available as built-ins, named " -"using a clever trick. Python has always had built-in functions " -"named :func:`int`, :func:`float`, and :func:`str`. In 2.2, they aren't " -"functions any more, but type objects that behave as factories when called. ::" +"using a clever trick. Python has always had built-in functions named :func:" +"`int`, :func:`float`, and :func:`str`. In 2.2, they aren't functions any " +"more, but type objects that behave as factories when called. ::" msgstr "" -#: ../../whatsnew/2.2.rst:131 msgid "" ">>> int\n" "\n" @@ -211,14 +186,12 @@ msgid "" "123" msgstr "" -#: ../../whatsnew/2.2.rst:136 msgid "" "To make the set of types complete, new type objects such as :func:`dict` " "and :func:`!file` have been added. Here's a more interesting example, " "adding a :meth:`!lock` method to file objects::" msgstr "" -#: ../../whatsnew/2.2.rst:140 msgid "" "class LockableFile(file):\n" " def lock (self, operation, length=0, start=0, whence=0):\n" @@ -227,7 +200,6 @@ msgid "" " length, start, whence)" msgstr "" -#: ../../whatsnew/2.2.rst:146 msgid "" "The now-obsolete :mod:`!posixfile` module contained a class that emulated " "all of a file object's methods and also added a :meth:`!lock` method, but " @@ -235,11 +207,9 @@ msgid "" "file, something which is possible with our new :class:`!LockableFile`." msgstr "" -#: ../../whatsnew/2.2.rst:153 msgid "Descriptors" msgstr "" -#: ../../whatsnew/2.2.rst:155 msgid "" "In previous versions of Python, there was no consistent way to discover what " "attributes and methods were supported by an object. There were some informal " @@ -251,7 +221,6 @@ msgid "" "still be inaccurate." msgstr "" -#: ../../whatsnew/2.2.rst:163 msgid "" "The one big idea underlying the new class model is that an API for " "describing the attributes of an object using :dfn:`descriptors` has been " @@ -260,48 +229,39 @@ msgid "" "methods become possible, as well as more exotic constructs." msgstr "" -#: ../../whatsnew/2.2.rst:169 msgid "" "Attribute descriptors are objects that live inside class objects, and have a " "few attributes of their own:" msgstr "" -#: ../../whatsnew/2.2.rst:172 msgid ":attr:`~definition.__name__` is the attribute's name." msgstr "" -#: ../../whatsnew/2.2.rst:174 msgid ":attr:`~definition.__doc__` is the attribute's docstring." msgstr "" -#: ../../whatsnew/2.2.rst:176 msgid "" "``__get__(object)`` is a method that retrieves the attribute value from " "*object*." msgstr "" -#: ../../whatsnew/2.2.rst:179 msgid "``__set__(object, value)`` sets the attribute on *object* to *value*." msgstr "" -#: ../../whatsnew/2.2.rst:181 msgid "" "``__delete__(object, value)`` deletes the *value* attribute of *object*." msgstr "" -#: ../../whatsnew/2.2.rst:183 msgid "" "For example, when you write ``obj.x``, the steps that Python actually " "performs are::" msgstr "" -#: ../../whatsnew/2.2.rst:186 msgid "" "descriptor = obj.__class__.x\n" "descriptor.__get__(obj)" msgstr "" -#: ../../whatsnew/2.2.rst:189 msgid "" "For methods, :meth:`descriptor.__get__ ` returns a temporary " "object that's callable, and wraps up the instance and the method to be " @@ -313,7 +273,6 @@ msgid "" "object itself. Static and class methods are defined like this::" msgstr "" -#: ../../whatsnew/2.2.rst:199 msgid "" "class C(object):\n" " def f(arg1, arg2):\n" @@ -325,7 +284,6 @@ msgid "" " g = classmethod(g)" msgstr "" -#: ../../whatsnew/2.2.rst:208 msgid "" "The :func:`staticmethod` function takes the function :func:`!f`, and returns " "it wrapped up in a descriptor so it can be stored in the class object. You " @@ -334,7 +292,6 @@ msgid "" "has been defined yet; that's been left for future versions of Python." msgstr "" -#: ../../whatsnew/2.2.rst:214 msgid "" "More new features, such as slots and properties, are also implemented as new " "kinds of descriptors, and it's not difficult to write a descriptor class " @@ -344,7 +301,6 @@ msgid "" "defined like this::" msgstr "" -#: ../../whatsnew/2.2.rst:221 msgid "" "from eiffel import eiffelmethod\n" "\n" @@ -362,7 +318,6 @@ msgid "" " f = eiffelmethod(f, pre_f, post_f)" msgstr "" -#: ../../whatsnew/2.2.rst:236 msgid "" "Note that a person using the new :func:`!eiffelmethod` doesn't have to " "understand anything about descriptors. This is why I think the new features " @@ -372,18 +327,15 @@ msgid "" "resulting libraries and ignore the implementation details." msgstr "" -#: ../../whatsnew/2.2.rst:245 msgid "Multiple Inheritance: The Diamond Rule" msgstr "" -#: ../../whatsnew/2.2.rst:247 msgid "" "Multiple inheritance has also been made more useful through changing the " "rules under which names are resolved. Consider this set of classes (diagram " "taken from :pep:`253` by Guido van Rossum)::" msgstr "" -#: ../../whatsnew/2.2.rst:251 msgid "" " class A:\n" " ^ ^ def save(self): ...\n" @@ -400,18 +352,16 @@ msgid "" " class D" msgstr "" -#: ../../whatsnew/2.2.rst:265 msgid "" "The lookup rule for classic classes is simple but not very smart; the base " -"classes are searched depth-first, going from left to right. A reference " -"to :meth:`!D.save` will search the classes :class:`!D`, :class:`!B`, and " -"then :class:`!A`, where :meth:`!save` would be found and returned. :meth:`!" -"C.save` would never be found at all. This is bad, because if :class:`!" -"C`'s :meth:`!save` method is saving some internal state specific to :class:`!" -"C`, not calling it will result in that state never getting saved." +"classes are searched depth-first, going from left to right. A reference to :" +"meth:`!D.save` will search the classes :class:`!D`, :class:`!B`, and then :" +"class:`!A`, where :meth:`!save` would be found and returned. :meth:`!C." +"save` would never be found at all. This is bad, because if :class:`!C`'s :" +"meth:`!save` method is saving some internal state specific to :class:`!C`, " +"not calling it will result in that state never getting saved." msgstr "" -#: ../../whatsnew/2.2.rst:273 msgid "" "New-style classes follow a different algorithm that's a bit more complicated " "to explain, but does the right thing in this situation. (Note that Python " @@ -420,7 +370,6 @@ msgid "" "graphs.)" msgstr "" -#: ../../whatsnew/2.2.rst:278 msgid "" "List all the base classes, following the classic lookup rule and include a " "class multiple times if it's visited repeatedly. In the above example, the " @@ -428,7 +377,6 @@ msgid "" "C`, :class:`!A`]." msgstr "" -#: ../../whatsnew/2.2.rst:283 msgid "" "Scan the list for duplicated classes. If any are found, remove all but one " "occurrence, leaving the *last* one in the list. In the above example, the " @@ -436,11 +384,10 @@ msgid "" "dropping duplicates." msgstr "" -#: ../../whatsnew/2.2.rst:288 msgid "" -"Following this rule, referring to :meth:`!D.save` will return :meth:`!" -"C.save`, which is the behaviour we're after. This lookup rule is the same " -"as the one followed by Common Lisp. A new built-in function, :func:`super`, " +"Following this rule, referring to :meth:`!D.save` will return :meth:`!C." +"save`, which is the behaviour we're after. This lookup rule is the same as " +"the one followed by Common Lisp. A new built-in function, :func:`super`, " "provides a way to get at a class's superclasses without having to " "reimplement Python's algorithm. The most commonly used form will be " "``super(class, obj)``, which returns a bound superclass object (not the " @@ -449,7 +396,6 @@ msgid "" "like this::" msgstr "" -#: ../../whatsnew/2.2.rst:297 msgid "" "class D (B,C):\n" " def save (self):\n" @@ -459,28 +405,23 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.2.rst:304 msgid "" ":func:`super` can also return unbound superclass objects when called as " "``super(class)`` or ``super(class1, class2)``, but this probably won't often " "be useful." msgstr "" -#: ../../whatsnew/2.2.rst:310 msgid "Attribute Access" msgstr "" -#: ../../whatsnew/2.2.rst:312 msgid "" "A fair number of sophisticated Python classes define hooks for attribute " "access using :meth:`~object.__getattr__`; most commonly this is done for " "convenience, to make code more readable by automatically mapping an " -"attribute access such as ``obj.parent`` into a method call such as " -"``obj.get_parent``. Python 2.2 adds some new ways of controlling attribute " -"access." +"attribute access such as ``obj.parent`` into a method call such as ``obj." +"get_parent``. Python 2.2 adds some new ways of controlling attribute access." msgstr "" -#: ../../whatsnew/2.2.rst:318 msgid "" "First, ``__getattr__(attr_name)`` is still supported by new-style classes, " "and nothing about it has changed. As before, it will be called when an " @@ -488,7 +429,6 @@ msgid "" "found in the instance's dictionary." msgstr "" -#: ../../whatsnew/2.2.rst:323 msgid "" "New-style classes also support a new method, " "``__getattribute__(attr_name)``. The difference between the two methods is " @@ -497,20 +437,18 @@ msgid "" "called if ``foo`` isn't found in the instance's dictionary." msgstr "" -#: ../../whatsnew/2.2.rst:329 msgid "" "However, Python 2.2's support for :dfn:`properties` will often be a simpler " "way to trap attribute references. Writing a :meth:`!__getattr__` method is " "complicated because to avoid recursion you can't use regular attribute " -"accesses inside them, and instead have to mess around with the contents " -"of :attr:`~object.__dict__`. :meth:`~object.__getattr__` methods also end up " -"being called by Python when it checks for other methods such " -"as :meth:`~object.__repr__` or :meth:`!__coerce__`, and so have to be " -"written with this in mind. Finally, calling a function on every attribute " -"access results in a sizable performance loss." +"accesses inside them, and instead have to mess around with the contents of :" +"attr:`~object.__dict__`. :meth:`~object.__getattr__` methods also end up " +"being called by Python when it checks for other methods such as :meth:" +"`~object.__repr__` or :meth:`!__coerce__`, and so have to be written with " +"this in mind. Finally, calling a function on every attribute access results " +"in a sizable performance loss." msgstr "" -#: ../../whatsnew/2.2.rst:338 msgid "" ":class:`property` is a new built-in type that packages up three functions " "that get, set, or delete an attribute, and a docstring. For example, if you " @@ -518,7 +456,6 @@ msgid "" "you could write::" msgstr "" -#: ../../whatsnew/2.2.rst:343 msgid "" "class C(object):\n" " def get_size (self):\n" @@ -536,7 +473,6 @@ msgid "" " \"Storage size of this instance\")" msgstr "" -#: ../../whatsnew/2.2.rst:358 msgid "" "That is certainly clearer and easier to write than a pair of :meth:`!" "__getattr__`/:meth:`!__setattr__` methods that check for the :attr:`!size` " @@ -546,18 +482,16 @@ msgid "" "references to other attributes run at their usual speed." msgstr "" -#: ../../whatsnew/2.2.rst:365 msgid "" "Finally, it's possible to constrain the list of attributes that can be " "referenced on an object using the new :attr:`~object.__slots__` class " "attribute. Python objects are usually very dynamic; at any time it's " -"possible to define a new attribute on an instance by just doing " -"``obj.new_attr=1``. A new-style class can define a class attribute " -"named :attr:`~object.__slots__` to limit the legal attributes to a " -"particular set of names. An example will make this clear::" +"possible to define a new attribute on an instance by just doing ``obj." +"new_attr=1``. A new-style class can define a class attribute named :attr:" +"`~object.__slots__` to limit the legal attributes to a particular set of " +"names. An example will make this clear::" msgstr "" -#: ../../whatsnew/2.2.rst:372 msgid "" ">>> class C(object):\n" "... __slots__ = ('template', 'name')\n" @@ -574,17 +508,14 @@ msgid "" "AttributeError: 'C' object has no attribute 'newattr'" msgstr "" -#: ../../whatsnew/2.2.rst:386 msgid "" "Note how you get an :exc:`AttributeError` on the attempt to assign to an " "attribute not listed in :attr:`~object.__slots__`." msgstr "" -#: ../../whatsnew/2.2.rst:393 msgid "Related Links" msgstr "" -#: ../../whatsnew/2.2.rst:395 msgid "" "This section has just been a quick overview of the new features, giving " "enough of an explanation to start you programming, but many details have " @@ -592,7 +523,6 @@ msgid "" "picture?" msgstr "" -#: ../../whatsnew/2.2.rst:399 msgid "" "The :ref:`descriptorhowto` is a lengthy tutorial introduction to the " "descriptor features, written by Guido van Rossum. If my description has " @@ -600,19 +530,17 @@ msgid "" "more detail about the new features while still remaining quite easy to read." msgstr "" -#: ../../whatsnew/2.2.rst:404 msgid "" "Next, there are two relevant PEPs, :pep:`252` and :pep:`253`. :pep:`252` is " "titled \"Making Types Look More Like Classes\", and covers the descriptor " "API. :pep:`253` is titled \"Subtyping Built-in Types\", and describes the " -"changes to type objects that make it possible to subtype built-in " -"objects. :pep:`253` is the more complicated PEP of the two, and at a few " -"points the necessary explanations of types and meta-types may cause your " -"head to explode. Both PEPs were written and implemented by Guido van " -"Rossum, with substantial assistance from the rest of the Zope Corp. team." +"changes to type objects that make it possible to subtype built-in objects. :" +"pep:`253` is the more complicated PEP of the two, and at a few points the " +"necessary explanations of types and meta-types may cause your head to " +"explode. Both PEPs were written and implemented by Guido van Rossum, with " +"substantial assistance from the rest of the Zope Corp. team." msgstr "" -#: ../../whatsnew/2.2.rst:413 msgid "" "Finally, there's the ultimate authority: the source code. Most of the " "machinery for the type handling is in :file:`Objects/typeobject.c`, but you " @@ -620,31 +548,26 @@ msgid "" "including posting a question to python-list or python-dev." msgstr "" -#: ../../whatsnew/2.2.rst:422 msgid "PEP 234: Iterators" msgstr "" -#: ../../whatsnew/2.2.rst:424 msgid "" "Another significant addition to 2.2 is an iteration interface at both the C " "and Python levels. Objects can define how they can be looped over by " "callers." msgstr "" -#: ../../whatsnew/2.2.rst:427 msgid "" "In Python versions up to 2.1, the usual way to make ``for item in obj`` work " "is to define a :meth:`~object.__getitem__` method that looks something like " "this::" msgstr "" -#: ../../whatsnew/2.2.rst:430 msgid "" "def __getitem__(self, index):\n" " return " msgstr "" -#: ../../whatsnew/2.2.rst:433 msgid "" ":meth:`~object.__getitem__` is more properly used to define an indexing " "operation on an object so that you can write ``obj[5]`` to retrieve the " @@ -658,30 +581,26 @@ msgid "" "really should." msgstr "" -#: ../../whatsnew/2.2.rst:443 msgid "" -"In Python 2.2, iteration can be implemented separately, " -"and :meth:`~object.__getitem__` methods can be limited to classes that " -"really do support random access. The basic idea of iterators is simple. A " -"new built-in function, ``iter(obj)`` or ``iter(C, sentinel)``, is used to " -"get an iterator. ``iter(obj)`` returns an iterator for the object *obj*, " -"while ``iter(C, sentinel)`` returns an iterator that will invoke the " -"callable object *C* until it returns *sentinel* to signal that the iterator " -"is done." +"In Python 2.2, iteration can be implemented separately, and :meth:`~object." +"__getitem__` methods can be limited to classes that really do support random " +"access. The basic idea of iterators is simple. A new built-in function, " +"``iter(obj)`` or ``iter(C, sentinel)``, is used to get an iterator. " +"``iter(obj)`` returns an iterator for the object *obj*, while ``iter(C, " +"sentinel)`` returns an iterator that will invoke the callable object *C* " +"until it returns *sentinel* to signal that the iterator is done." msgstr "" -#: ../../whatsnew/2.2.rst:451 msgid "" "Python classes can define an :meth:`!__iter__` method, which should create " "and return a new iterator for the object; if the object is its own iterator, " "this method can just return ``self``. In particular, iterators will usually " -"be their own iterators. Extension types implemented in C can implement " -"a :c:member:`~PyTypeObject.tp_iter` function in order to return an iterator, " -"and extension types that want to behave as iterators can define " -"a :c:member:`~PyTypeObject.tp_iternext` function." +"be their own iterators. Extension types implemented in C can implement a :c:" +"member:`~PyTypeObject.tp_iter` function in order to return an iterator, and " +"extension types that want to behave as iterators can define a :c:member:" +"`~PyTypeObject.tp_iternext` function." msgstr "" -#: ../../whatsnew/2.2.rst:458 msgid "" "So, after all this, what do iterators actually do? They have one required " "method, :meth:`next`, which takes no arguments and returns the next value. " @@ -689,7 +608,6 @@ msgid "" "raise the :exc:`StopIteration` exception. ::" msgstr "" -#: ../../whatsnew/2.2.rst:463 msgid "" ">>> L = [1,2,3]\n" ">>> i = iter(L)\n" @@ -708,19 +626,17 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.2.rst:479 msgid "" "In 2.2, Python's :keyword:`for` statement no longer expects a sequence; it " "expects something for which :func:`iter` will return an iterator. For " "backward compatibility and convenience, an iterator is automatically " -"constructed for sequences that don't implement :meth:`!__iter__` or " -"a :c:member:`~PyTypeObject.tp_iter` slot, so ``for i in [1,2,3]`` will still " +"constructed for sequences that don't implement :meth:`!__iter__` or a :c:" +"member:`~PyTypeObject.tp_iter` slot, so ``for i in [1,2,3]`` will still " "work. Wherever the Python interpreter loops over a sequence, it's been " "changed to use the iterator protocol. This means you can do things like " "this::" msgstr "" -#: ../../whatsnew/2.2.rst:487 msgid "" ">>> L = [1,2,3]\n" ">>> i = iter(L)\n" @@ -729,14 +645,12 @@ msgid "" "(1, 2, 3)" msgstr "" -#: ../../whatsnew/2.2.rst:493 msgid "" -"Iterator support has been added to some of Python's basic types. " -"Calling :func:`iter` on a dictionary will return an iterator which loops " -"over its keys::" +"Iterator support has been added to some of Python's basic types. Calling :" +"func:`iter` on a dictionary will return an iterator which loops over its " +"keys::" msgstr "" -#: ../../whatsnew/2.2.rst:496 msgid "" ">>> m = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6,\n" "... 'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, 'Dec': 12}\n" @@ -756,31 +670,26 @@ msgid "" "Oct 10" msgstr "" -#: ../../whatsnew/2.2.rst:513 msgid "" "That's just the default behaviour. If you want to iterate over keys, " -"values, or key/value pairs, you can explicitly call the :meth:`!" -"iterkeys`, :meth:`!itervalues`, or :meth:`!iteritems` methods to get an " -"appropriate iterator. In a minor related change, the :keyword:`in` operator " -"now works on dictionaries, so ``key in dict`` is now equivalent to " -"``dict.has_key(key)``." +"values, or key/value pairs, you can explicitly call the :meth:`!iterkeys`, :" +"meth:`!itervalues`, or :meth:`!iteritems` methods to get an appropriate " +"iterator. In a minor related change, the :keyword:`in` operator now works on " +"dictionaries, so ``key in dict`` is now equivalent to ``dict.has_key(key)``." msgstr "" -#: ../../whatsnew/2.2.rst:519 msgid "" "Files also provide an iterator, which calls the :meth:`readline` method " "until there are no more lines in the file. This means you can now read each " "line of a file using code like this::" msgstr "" -#: ../../whatsnew/2.2.rst:523 msgid "" "for line in file:\n" " # do something for each line\n" " ..." msgstr "" -#: ../../whatsnew/2.2.rst:527 msgid "" "Note that you can only go forward in an iterator; there's no way to get the " "previous element, reset the iterator, or make a copy of it. An iterator " @@ -788,27 +697,22 @@ msgid "" "only requires a :meth:`next` method." msgstr "" -#: ../../whatsnew/2.2.rst:535 msgid ":pep:`234` - Iterators" msgstr "" -#: ../../whatsnew/2.2.rst:536 msgid "" "Written by Ka-Ping Yee and GvR; implemented by the Python Labs crew, mostly " "by GvR and Tim Peters." msgstr "" -#: ../../whatsnew/2.2.rst:543 msgid "PEP 255: Simple Generators" msgstr "" -#: ../../whatsnew/2.2.rst:545 msgid "" "Generators are another new feature, one that interacts with the introduction " "of iterators." msgstr "" -#: ../../whatsnew/2.2.rst:548 msgid "" "You're doubtless familiar with how function calls work in Python or C. When " "you call a function, it gets a private namespace where its local variables " @@ -821,18 +725,15 @@ msgid "" "functions." msgstr "" -#: ../../whatsnew/2.2.rst:557 msgid "Here's the simplest example of a generator function::" msgstr "" -#: ../../whatsnew/2.2.rst:559 msgid "" "def generate_ints(N):\n" " for i in range(N):\n" " yield i" msgstr "" -#: ../../whatsnew/2.2.rst:563 msgid "" "A new keyword, :keyword:`yield`, was introduced for generators. Any " "function containing a :keyword:`!yield` statement is a generator function; " @@ -843,7 +744,6 @@ msgid "" "Python 2.3 this statement will become unnecessary." msgstr "" -#: ../../whatsnew/2.2.rst:571 msgid "" "When you call a generator function, it doesn't return a single value; " "instead it returns a generator object that supports the iterator protocol. " @@ -852,19 +752,16 @@ msgid "" "between :keyword:`!yield` and a :keyword:`!return` statement is that on " "reaching a :keyword:`!yield` the generator's state of execution is suspended " "and local variables are preserved. On the next call to the generator's " -"``next()`` method, the function will resume executing immediately after " -"the :keyword:`!yield` statement. (For complicated reasons, the :keyword:`!" -"yield` statement isn't allowed inside the :keyword:`!try` block of " -"a :keyword:`try`...\\ :keyword:`finally` statement; read :pep:`255` for a " -"full explanation of the interaction between :keyword:`!yield` and " -"exceptions.)" +"``next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`!try` block of a :keyword:" +"`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" -#: ../../whatsnew/2.2.rst:584 msgid "Here's a sample usage of the :func:`!generate_ints` generator::" msgstr "" -#: ../../whatsnew/2.2.rst:586 msgid "" ">>> gen = generate_ints(3)\n" ">>> gen\n" @@ -882,13 +779,11 @@ msgid "" "StopIteration" msgstr "" -#: ../../whatsnew/2.2.rst:601 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " "generate_ints(3)``." msgstr "" -#: ../../whatsnew/2.2.rst:604 msgid "" "Inside a generator function, the :keyword:`return` statement can only be " "used without a value, and signals the end of the procession of values; " @@ -899,7 +794,6 @@ msgid "" "flow of execution fall off the bottom of the function." msgstr "" -#: ../../whatsnew/2.2.rst:612 msgid "" "You could achieve the effect of generators manually by writing your own " "class and storing all the local variables of the generator as instance " @@ -912,7 +806,6 @@ msgid "" "recursively. ::" msgstr "" -#: ../../whatsnew/2.2.rst:621 msgid "" "# A recursive generator that generates Tree leaves in in-order.\n" "def inorder(t):\n" @@ -924,7 +817,6 @@ msgid "" " yield x" msgstr "" -#: ../../whatsnew/2.2.rst:630 msgid "" "Two other examples in :file:`Lib/test/test_generators.py` produce solutions " "for the N-Queens problem (placing $N$ queens on an $NxN$ chess board so that " @@ -933,7 +825,6 @@ msgid "" "twice)." msgstr "" -#: ../../whatsnew/2.2.rst:635 msgid "" "The idea of generators comes from other programming languages, especially " "Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " @@ -943,13 +834,11 @@ msgid "" "of what this looks like::" msgstr "" -#: ../../whatsnew/2.2.rst:642 msgid "" "sentence := \"Store it in the neighboring harbor\"\n" "if (i := find(\"or\", sentence)) > 5 then write(i)" msgstr "" -#: ../../whatsnew/2.2.rst:645 msgid "" "In Icon the :func:`!find` function returns the indexes at which the " "substring \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` " @@ -959,7 +848,6 @@ msgid "" "screen." msgstr "" -#: ../../whatsnew/2.2.rst:651 msgid "" "Python doesn't go nearly as far as Icon in adopting generators as a central " "concept. Generators are considered a new part of the core Python language, " @@ -970,22 +858,18 @@ msgid "" "other functions or stored in a data structure." msgstr "" -#: ../../whatsnew/2.2.rst:662 msgid ":pep:`255` - Simple Generators" msgstr "" -#: ../../whatsnew/2.2.rst:663 msgid "" "Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented " "mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " "Labs crew." msgstr "" -#: ../../whatsnew/2.2.rst:670 msgid "PEP 237: Unifying Long Integers and Integers" msgstr "" -#: ../../whatsnew/2.2.rst:672 msgid "" "In recent versions, the distinction between regular integers, which are 32-" "bit values on most machines, and long integers, which can be of arbitrary " @@ -998,7 +882,6 @@ msgid "" "exception with the message 'slice index must be int'." msgstr "" -#: ../../whatsnew/2.2.rst:682 msgid "" "Python 2.2 will shift values from short to long integers as required. The " "'L' suffix is no longer needed to indicate a long integer literal, as now " @@ -1009,7 +892,6 @@ msgid "" "result. For example::" msgstr "" -#: ../../whatsnew/2.2.rst:690 msgid "" ">>> 1234567890123\n" "1234567890123L\n" @@ -1017,28 +899,23 @@ msgid "" "18446744073709551616L" msgstr "" -#: ../../whatsnew/2.2.rst:695 msgid "" "In most cases, integers and long integers will now be treated identically. " "You can still distinguish them with the :func:`type` built-in function, but " "that's rarely needed." msgstr "" -#: ../../whatsnew/2.2.rst:702 msgid ":pep:`237` - Unifying Long Integers and Integers" msgstr "" -#: ../../whatsnew/2.2.rst:703 msgid "" "Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido " "van Rossum." msgstr "" -#: ../../whatsnew/2.2.rst:710 msgid "PEP 238: Changing the Division Operator" msgstr "" -#: ../../whatsnew/2.2.rst:712 msgid "" "The most controversial change in Python 2.2 heralds the start of an effort " "to fix an old design flaw that's been in Python from the beginning. " @@ -1051,7 +928,6 @@ msgid "" "difficult to determine the possible types of the operands." msgstr "" -#: ../../whatsnew/2.2.rst:722 msgid "" "(The controversy is over whether this is *really* a design flaw, and whether " "it's worth breaking existing code to fix this. It's caused endless " @@ -1061,14 +937,12 @@ msgid "" "Read :pep:`238` for a summary of arguments and counter-arguments.)" msgstr "" -#: ../../whatsnew/2.2.rst:729 msgid "" "Because this change might break code, it's being introduced very gradually. " "Python 2.2 begins the transition, but the switch won't be complete until " "Python 3.0." msgstr "" -#: ../../whatsnew/2.2.rst:733 msgid "" "First, I'll borrow some terminology from :pep:`238`. \"True division\" is " "the division that most non-programmers are familiar with: 3/2 is 1.5, 1/4 is " @@ -1080,11 +954,9 @@ msgid "" "the operands is a floating-point number." msgstr "" -#: ../../whatsnew/2.2.rst:741 msgid "Here are the changes 2.2 introduces:" msgstr "" -#: ../../whatsnew/2.2.rst:743 msgid "" "A new operator, ``//``, is the floor division operator. (Yes, we know it " "looks like C++'s comment symbol.) ``//`` *always* performs floor division " @@ -1092,13 +964,11 @@ msgid "" "``1.0 // 2.0`` is also 0.0." msgstr "" -#: ../../whatsnew/2.2.rst:748 msgid "" "``//`` is always available in Python 2.2; you don't need to enable it using " "a ``__future__`` statement." msgstr "" -#: ../../whatsnew/2.2.rst:751 msgid "" "By including a ``from __future__ import division`` in a module, the ``/`` " "operator will be changed to return the result of true division, so ``1/2`` " @@ -1106,40 +976,33 @@ msgid "" "division. The default meaning of ``/`` will not change until Python 3.0." msgstr "" -#: ../../whatsnew/2.2.rst:756 msgid "" -"Classes can define methods called :meth:`~object.__truediv__` " -"and :meth:`~object.__floordiv__` to overload the two division operators. At " -"the C level, there are also slots in the :c:type:`PyNumberMethods` structure " -"so extension types can define the two operators." +"Classes can define methods called :meth:`~object.__truediv__` and :meth:" +"`~object.__floordiv__` to overload the two division operators. At the C " +"level, there are also slots in the :c:type:`PyNumberMethods` structure so " +"extension types can define the two operators." msgstr "" -#: ../../whatsnew/2.2.rst:761 msgid "" "Python 2.2 supports some command-line arguments for testing whether code " -"will work with the changed division semantics. Running python " -"with :option:`!-Q warn` will cause a warning to be issued whenever division " -"is applied to two integers. You can use this to find code that's affected " -"by the change and fix it. By default, Python 2.2 will simply perform " -"classic division without a warning; the warning will be turned on by default " -"in Python 2.3." +"will work with the changed division semantics. Running python with :option:" +"`!-Q warn` will cause a warning to be issued whenever division is applied to " +"two integers. You can use this to find code that's affected by the change " +"and fix it. By default, Python 2.2 will simply perform classic division " +"without a warning; the warning will be turned on by default in Python 2.3." msgstr "" -#: ../../whatsnew/2.2.rst:771 msgid ":pep:`238` - Changing the Division Operator" msgstr "" -#: ../../whatsnew/2.2.rst:772 msgid "" "Written by Moshe Zadka and Guido van Rossum. Implemented by Guido van " "Rossum.." msgstr "" -#: ../../whatsnew/2.2.rst:778 msgid "Unicode Changes" msgstr "" -#: ../../whatsnew/2.2.rst:780 msgid "" "Python's Unicode support has been enhanced a bit in 2.2. Unicode strings " "are usually stored as UCS-2, as 16-bit unsigned integers. Python 2.2 can " @@ -1149,7 +1012,6 @@ msgid "" "completely disable Unicode support.)" msgstr "" -#: ../../whatsnew/2.2.rst:787 msgid "" "When built to use UCS-4 (a \"wide Python\"), the interpreter can natively " "handle Unicode characters from U+000000 to U+110000, so the range of legal " @@ -1160,7 +1022,6 @@ msgid "" "characters\"; consult it for further details." msgstr "" -#: ../../whatsnew/2.2.rst:795 msgid "" "Another change is simpler to explain. Since their introduction, Unicode " "strings have supported an :meth:`!encode` method to convert the string to a " @@ -1171,14 +1032,12 @@ msgid "" "codec." msgstr "" -#: ../../whatsnew/2.2.rst:802 msgid "" "Using this new feature, codecs have been added for tasks not directly " "related to Unicode. For example, codecs have been added for uu-encoding, " "MIME's base64 encoding, and compression with the :mod:`zlib` module::" msgstr "" -#: ../../whatsnew/2.2.rst:806 msgid "" ">>> s = \"\"\"Here is a lengthy piece of redundant, overly verbose,\n" "... and repetitive text.\n" @@ -1199,32 +1058,26 @@ msgid "" "'furrfu'" msgstr "" -#: ../../whatsnew/2.2.rst:823 msgid "" "To convert a class instance to Unicode, a :meth:`!__unicode__` method can be " "defined by a class, analogous to :meth:`!__str__`." msgstr "" -#: ../../whatsnew/2.2.rst:826 msgid "" ":meth:`!encode`, :meth:`!decode`, and :meth:`!__unicode__` were implemented " "by Marc-André Lemburg. The changes to support using UCS-4 internally were " "implemented by Fredrik Lundh and Martin von Löwis." msgstr "" -#: ../../whatsnew/2.2.rst:833 msgid ":pep:`261` - Support for 'wide' Unicode characters" msgstr "" -#: ../../whatsnew/2.2.rst:834 msgid "Written by Paul Prescod." msgstr "" -#: ../../whatsnew/2.2.rst:840 msgid "PEP 227: Nested Scopes" msgstr "" -#: ../../whatsnew/2.2.rst:842 msgid "" "In Python 2.1, statically nested scopes were added as an optional feature, " "to be enabled by a ``from __future__ import nested_scopes`` directive. In " @@ -1234,7 +1087,6 @@ msgid "" "2.1 came out, you can skip the rest of this section." msgstr "" -#: ../../whatsnew/2.2.rst:849 msgid "" "The largest change introduced in Python 2.1, and made complete in 2.2, is to " "Python's scoping rules. In Python 2.0, at any given time there are at most " @@ -1244,7 +1096,6 @@ msgid "" "definition doesn't work::" msgstr "" -#: ../../whatsnew/2.2.rst:856 msgid "" "def f():\n" " ...\n" @@ -1254,7 +1105,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.2.rst:863 msgid "" "The function :func:`!g` will always raise a :exc:`NameError` exception, " "because the binding of the name ``g`` isn't in either its local namespace or " @@ -1266,7 +1116,6 @@ msgid "" "arguments. ::" msgstr "" -#: ../../whatsnew/2.2.rst:871 msgid "" "def find(self, name):\n" " \"Return list of any entries equal to 'name'\"\n" @@ -1275,26 +1124,22 @@ msgid "" " return L" msgstr "" -#: ../../whatsnew/2.2.rst:877 msgid "" "The readability of Python code written in a strongly functional style " "suffers greatly as a result." msgstr "" -#: ../../whatsnew/2.2.rst:880 msgid "" "The most significant change to Python 2.2 is that static scoping has been " "added to the language to fix this problem. As a first effect, the " "``name=name`` default argument is now unnecessary in the above example. Put " "simply, when a given variable name is not assigned a value within a function " -"(by an assignment, or the :keyword:`def`, :keyword:`class`, " -"or :keyword:`import` statements), references to the variable will be looked " -"up in the local namespace of the enclosing scope. A more detailed " -"explanation of the rules, and a dissection of the implementation, can be " -"found in the PEP." +"(by an assignment, or the :keyword:`def`, :keyword:`class`, or :keyword:" +"`import` statements), references to the variable will be looked up in the " +"local namespace of the enclosing scope. A more detailed explanation of the " +"rules, and a dissection of the implementation, can be found in the PEP." msgstr "" -#: ../../whatsnew/2.2.rst:889 msgid "" "This change may cause some compatibility problems for code where the same " "variable name is used both at the module level and as a local variable " @@ -1303,7 +1148,6 @@ msgid "" "read in the first place." msgstr "" -#: ../../whatsnew/2.2.rst:895 msgid "" "One side effect of the change is that the ``from module import *`` and " "``exec`` statements have been made illegal inside a function scope under " @@ -1319,11 +1163,9 @@ msgid "" "the compiler will flag this by raising a :exc:`SyntaxError` exception." msgstr "" -#: ../../whatsnew/2.2.rst:908 msgid "To make the preceding explanation a bit clearer, here's an example::" msgstr "" -#: ../../whatsnew/2.2.rst:910 msgid "" "x = 1\n" "def f():\n" @@ -1333,33 +1175,27 @@ msgid "" " return x" msgstr "" -#: ../../whatsnew/2.2.rst:917 msgid "" "Line 4 containing the ``exec`` statement is a syntax error, since ``exec`` " "would define a new local variable named ``x`` whose value should be accessed " "by :func:`!g`." msgstr "" -#: ../../whatsnew/2.2.rst:921 msgid "" "This shouldn't be much of a limitation, since ``exec`` is rarely used in " "most Python code (and when it is used, it's often a sign of a poor design " "anyway)." msgstr "" -#: ../../whatsnew/2.2.rst:928 msgid ":pep:`227` - Statically Nested Scopes" msgstr "" -#: ../../whatsnew/2.2.rst:929 msgid "Written and implemented by Jeremy Hylton." msgstr "" -#: ../../whatsnew/2.2.rst:935 msgid "New and Improved Modules" msgstr "" -#: ../../whatsnew/2.2.rst:937 msgid "" "The :mod:`xmlrpclib ` module was contributed to the standard " "library by Fredrik Lundh, providing support for writing XML-RPC clients. " @@ -1369,7 +1205,6 @@ msgid "" "channel::" msgstr "" -#: ../../whatsnew/2.2.rst:943 msgid "" "import xmlrpclib\n" "s = xmlrpclib.Server(\n" @@ -1389,58 +1224,49 @@ msgid "" "# 'title': 'html2fo 0.3 (Default)'}, ... ]" msgstr "" -#: ../../whatsnew/2.2.rst:960 msgid "" "The :mod:`SimpleXMLRPCServer ` module makes it easy to create " "straightforward XML-RPC servers. See http://xmlrpc.scripting.com/ for more " "information about XML-RPC." msgstr "" -#: ../../whatsnew/2.2.rst:963 msgid "" -"The new :mod:`hmac` module implements the HMAC algorithm described " -"by :rfc:`2104`. (Contributed by Gerhard Häring.)" +"The new :mod:`hmac` module implements the HMAC algorithm described by :rfc:" +"`2104`. (Contributed by Gerhard Häring.)" msgstr "" -#: ../../whatsnew/2.2.rst:966 msgid "" "Several functions that originally returned lengthy tuples now return pseudo-" "sequences that still behave like tuples but also have mnemonic attributes " "such as :attr:`!memberst_mtime` or :attr:`~time.struct_time.tm_year`. The " -"enhanced functions " -"include :func:`~os.stat`, :func:`~os.fstat`, :func:`~os.statvfs`, " -"and :func:`~os.fstatvfs` in the :mod:`os` module, " -"and :func:`~time.localtime`, :func:`~time.gmtime`, " -"and :func:`~time.strptime` in the :mod:`time` module." +"enhanced functions include :func:`~os.stat`, :func:`~os.fstat`, :func:`~os." +"statvfs`, and :func:`~os.fstatvfs` in the :mod:`os` module, and :func:`~time." +"localtime`, :func:`~time.gmtime`, and :func:`~time.strptime` in the :mod:" +"`time` module." msgstr "" -#: ../../whatsnew/2.2.rst:973 msgid "" "For example, to obtain a file's size using the old tuples, you'd end up " "writing something like ``file_size = os.stat(filename)[stat.ST_SIZE]``, but " -"now this can be written more clearly as ``file_size = " -"os.stat(filename).st_size``." +"now this can be written more clearly as ``file_size = os.stat(filename)." +"st_size``." msgstr "" -#: ../../whatsnew/2.2.rst:977 msgid "The original patch for this feature was contributed by Nick Mathewson." msgstr "" -#: ../../whatsnew/2.2.rst:979 msgid "" "The Python profiler has been extensively reworked and various errors in its " "output have been corrected. (Contributed by Fred L. Drake, Jr. and Tim " "Peters.)" msgstr "" -#: ../../whatsnew/2.2.rst:982 msgid "" -"The :mod:`socket` module can be compiled to support IPv6; specify " -"the :option:`!--enable-ipv6` option to Python's configure script. " -"(Contributed by Jun-ichiro \"itojun\" Hagino.)" +"The :mod:`socket` module can be compiled to support IPv6; specify the :" +"option:`!--enable-ipv6` option to Python's configure script. (Contributed " +"by Jun-ichiro \"itojun\" Hagino.)" msgstr "" -#: ../../whatsnew/2.2.rst:986 msgid "" "Two new format characters were added to the :mod:`struct` module for 64-bit " "integers on platforms that support the C :c:expr:`long long` type. ``q`` is " @@ -1448,18 +1274,16 @@ msgid "" "returned in Python's long integer type. (Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.2.rst:991 msgid "" -"In the interpreter's interactive mode, there's a new built-in " -"function :func:`help` that uses the :mod:`pydoc` module introduced in Python " -"2.1 to provide interactive help. ``help(object)`` displays any available " -"help text about *object*. :func:`help` with no argument puts you in an " -"online help utility, where you can enter the names of functions, classes, or " -"modules to read their help text. (Contributed by Guido van Rossum, using Ka-" -"Ping Yee's :mod:`pydoc` module.)" +"In the interpreter's interactive mode, there's a new built-in function :func:" +"`help` that uses the :mod:`pydoc` module introduced in Python 2.1 to provide " +"interactive help. ``help(object)`` displays any available help text about " +"*object*. :func:`help` with no argument puts you in an online help utility, " +"where you can enter the names of functions, classes, or modules to read " +"their help text. (Contributed by Guido van Rossum, using Ka-Ping Yee's :mod:" +"`pydoc` module.)" msgstr "" -#: ../../whatsnew/2.2.rst:999 msgid "" "Various bugfixes and performance improvements have been made to the SRE " "engine underlying the :mod:`re` module. For example, the :func:`re.sub` " @@ -1470,7 +1294,6 @@ msgid "" "Fredrik Lundh. The BIGCHARSET patch was contributed by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.2.rst:1007 msgid "" "The :mod:`smtplib` module now supports :rfc:`2487`, \"Secure SMTP over " "TLS\", so it's now possible to encrypt the SMTP traffic between a Python " @@ -1478,7 +1301,6 @@ msgid "" "also supports SMTP authentication. (Contributed by Gerhard Häring.)" msgstr "" -#: ../../whatsnew/2.2.rst:1012 msgid "" "The :mod:`imaplib` module, maintained by Piers Lauder, has support for " "several new extensions: the NAMESPACE extension defined in :rfc:`2342`, " @@ -1486,7 +1308,6 @@ msgid "" "Pelletier.)" msgstr "" -#: ../../whatsnew/2.2.rst:1016 msgid "" "The :mod:`!rfc822` module's parsing of email addresses is now compliant " "with :rfc:`2822`, an update to :rfc:`822`. (The module's name is *not* " @@ -1495,7 +1316,6 @@ msgid "" "Barry Warsaw, and arising out of his work on Mailman.)" msgstr "" -#: ../../whatsnew/2.2.rst:1022 msgid "" "The :mod:`difflib` module now contains a new :class:`!Differ` class for " "producing human-readable lists of changes (a \"delta\") between two " @@ -1506,37 +1326,32 @@ msgid "" "the generatorization.)" msgstr "" -#: ../../whatsnew/2.2.rst:1029 msgid "" -"New constants :const:`!ascii_letters`, :const:`!ascii_lowercase`, " -"and :const:`!ascii_uppercase` were added to the :mod:`string` module. There " -"were several modules in the standard library that used :const:`!" -"string.letters` to mean the ranges A-Za-z, but that assumption is incorrect " -"when locales are in use, because :const:`!string.letters` varies depending " -"on the set of legal characters defined by the current locale. The buggy " -"modules have all been fixed to use :const:`!ascii_letters` instead. " -"(Reported by an unknown person; fixed by Fred L. Drake, Jr.)" +"New constants :const:`!ascii_letters`, :const:`!ascii_lowercase`, and :const:" +"`!ascii_uppercase` were added to the :mod:`string` module. There were " +"several modules in the standard library that used :const:`!string.letters` " +"to mean the ranges A-Za-z, but that assumption is incorrect when locales are " +"in use, because :const:`!string.letters` varies depending on the set of " +"legal characters defined by the current locale. The buggy modules have all " +"been fixed to use :const:`!ascii_letters` instead. (Reported by an unknown " +"person; fixed by Fred L. Drake, Jr.)" msgstr "" -#: ../../whatsnew/2.2.rst:1038 msgid "" "The :mod:`mimetypes` module now makes it easier to use alternative MIME-type " "databases by the addition of a :class:`~mimetypes.MimeTypes` class, which " "takes a list of filenames to be parsed. (Contributed by Fred L. Drake, Jr.)" msgstr "" -#: ../../whatsnew/2.2.rst:1042 msgid "" "A :class:`~threading.Timer` class was added to the :mod:`threading` module " "that allows scheduling an activity to happen at some future time. " "(Contributed by Itamar Shtull-Trauring.)" msgstr "" -#: ../../whatsnew/2.2.rst:1050 msgid "Interpreter Changes and Fixes" msgstr "" -#: ../../whatsnew/2.2.rst:1052 msgid "" "Some of the changes only affect people who deal with the Python interpreter " "at the C level because they're writing Python extension modules, embedding " @@ -1545,7 +1360,6 @@ msgid "" "much." msgstr "" -#: ../../whatsnew/2.2.rst:1057 msgid "" "Profiling and tracing functions can now be implemented in C, which can " "operate at much higher speeds than Python-based functions and should reduce " @@ -1557,18 +1371,16 @@ msgid "" "(Contributed by Fred L. Drake, Jr.)" msgstr "" -#: ../../whatsnew/2.2.rst:1066 msgid "" "Another low-level API, primarily of interest to implementers of Python " -"debuggers and development tools, was " -"added. :c:func:`PyInterpreterState_Head` " -"and :c:func:`PyInterpreterState_Next` let a caller walk through all the " -"existing interpreter objects; :c:func:`PyInterpreterState_ThreadHead` " -"and :c:func:`PyThreadState_Next` allow looping over all the thread states " -"for a given interpreter. (Contributed by David Beazley.)" +"debuggers and development tools, was added. :c:func:" +"`PyInterpreterState_Head` and :c:func:`PyInterpreterState_Next` let a caller " +"walk through all the existing interpreter objects; :c:func:" +"`PyInterpreterState_ThreadHead` and :c:func:`PyThreadState_Next` allow " +"looping over all the thread states for a given interpreter. (Contributed by " +"David Beazley.)" msgstr "" -#: ../../whatsnew/2.2.rst:1073 msgid "" "The C-level interface to the garbage collector has been changed to make it " "easier to write extension types that support garbage collection and to debug " @@ -1579,40 +1391,32 @@ msgid "" "priority." msgstr "" -#: ../../whatsnew/2.2.rst:1080 msgid "" "To upgrade an extension module to the new API, perform the following steps:" msgstr "" -#: ../../whatsnew/2.2.rst:1082 msgid "Rename :c:macro:`!Py_TPFLAGS_GC` to :c:macro:`Py_TPFLAGS_HAVE_GC`." msgstr "" -#: ../../whatsnew/2.2.rst:1084 msgid "" "Use :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar` to allocate" msgstr "" -#: ../../whatsnew/2.2.rst:1085 msgid "objects, and :c:func:`PyObject_GC_Del` to deallocate them." msgstr "" -#: ../../whatsnew/2.2.rst:1087 msgid "" -"Rename :c:func:`!PyObject_GC_Init` to :c:func:`PyObject_GC_Track` " -"and :c:func:`!PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." +"Rename :c:func:`!PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and :c:" +"func:`!PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." msgstr "" -#: ../../whatsnew/2.2.rst:1090 msgid "Remove :c:macro:`!PyGC_HEAD_SIZE` from object size calculations." msgstr "" -#: ../../whatsnew/2.2.rst:1092 msgid "" "Remove calls to :c:func:`!PyObject_AS_GC` and :c:func:`!PyObject_FROM_GC`." msgstr "" -#: ../../whatsnew/2.2.rst:1094 msgid "" "A new ``et`` format sequence was added to :c:func:`PyArg_ParseTuple`; ``et`` " "takes both a parameter and an encoding name, and converts the parameter to " @@ -1624,7 +1428,6 @@ msgid "" "and used for the MBCS support on Windows described in the following section.)" msgstr "" -#: ../../whatsnew/2.2.rst:1103 msgid "" "A different argument parsing function, :c:func:`PyArg_UnpackTuple`, has been " "added that's simpler and presumably faster. Instead of specifying a format " @@ -1633,28 +1436,24 @@ msgid "" "be filled in with argument values." msgstr "" -#: ../../whatsnew/2.2.rst:1109 msgid "" "Two new flags :c:macro:`METH_NOARGS` and :c:macro:`METH_O` are available in " "method definition tables to simplify implementation of methods with no " "arguments or a single untyped argument. Calling such methods is more " -"efficient than calling a corresponding method that " -"uses :c:macro:`METH_VARARGS`. Also, the old :c:macro:`!METH_OLDARGS` style " -"of writing C methods is now officially deprecated." +"efficient than calling a corresponding method that uses :c:macro:" +"`METH_VARARGS`. Also, the old :c:macro:`!METH_OLDARGS` style of writing C " +"methods is now officially deprecated." msgstr "" -#: ../../whatsnew/2.2.rst:1115 msgid "" -"Two new wrapper functions, :c:func:`PyOS_snprintf` " -"and :c:func:`PyOS_vsnprintf` were added to provide cross-platform " -"implementations for the relatively new :c:func:`snprintf` " -"and :c:func:`vsnprintf` C lib APIs. In contrast to the " -"standard :c:func:`sprintf` and :c:func:`!vsprintf` functions, the Python " -"versions check the bounds of the buffer used to protect against buffer " -"overruns. (Contributed by M.-A. Lemburg.)" +"Two new wrapper functions, :c:func:`PyOS_snprintf` and :c:func:" +"`PyOS_vsnprintf` were added to provide cross-platform implementations for " +"the relatively new :c:func:`snprintf` and :c:func:`vsnprintf` C lib APIs. In " +"contrast to the standard :c:func:`sprintf` and :c:func:`!vsprintf` " +"functions, the Python versions check the bounds of the buffer used to " +"protect against buffer overruns. (Contributed by M.-A. Lemburg.)" msgstr "" -#: ../../whatsnew/2.2.rst:1122 msgid "" "The :c:func:`_PyTuple_Resize` function has lost an unused parameter, so now " "it takes 2 parameters instead of 3. The third argument was never used, and " @@ -1662,11 +1461,9 @@ msgid "" "2.2." msgstr "" -#: ../../whatsnew/2.2.rst:1130 msgid "Other Changes and Fixes" msgstr "" -#: ../../whatsnew/2.2.rst:1132 msgid "" "As usual there were a bunch of other improvements and bugfixes scattered " "throughout the source tree. A search through the CVS change logs finds " @@ -1675,18 +1472,15 @@ msgid "" "and fixed 82 bugs. These figures are likely to be underestimates." msgstr "" -#: ../../whatsnew/2.2.rst:1138 msgid "Some of the more notable changes are:" msgstr "" -#: ../../whatsnew/2.2.rst:1140 msgid "" "The code for the MacOS port for Python, maintained by Jack Jansen, is now " "kept in the main Python CVS tree, and many changes have been made to support " "MacOS X." msgstr "" -#: ../../whatsnew/2.2.rst:1143 msgid "" "The most significant change is the ability to build Python as a framework, " "enabled by supplying the :option:`!--enable-framework` option to the " @@ -1700,7 +1494,6 @@ msgid "" "OSA scripting language and much more.\"" msgstr "" -#: ../../whatsnew/2.2.rst:1154 msgid "" "Most of the MacPython toolbox modules, which interface to MacOS APIs such as " "windowing, QuickTime, scripting, etc. have been ported to OS X, but they've " @@ -1708,38 +1501,33 @@ msgid "" "with these modules can uncomment them manually." msgstr "" -#: ../../whatsnew/2.2.rst:1177 msgid "" "Keyword arguments passed to built-in functions that don't take them now " "cause a :exc:`TypeError` exception to be raised, with the message " "\"*function* takes no keyword arguments\"." msgstr "" -#: ../../whatsnew/2.2.rst:1181 msgid "" "Weak references, added in Python 2.1 as an extension module, are now part of " "the core because they're used in the implementation of new-style classes. " -"The :exc:`ReferenceError` exception has therefore moved from " -"the :mod:`weakref` module to become a built-in exception." +"The :exc:`ReferenceError` exception has therefore moved from the :mod:" +"`weakref` module to become a built-in exception." msgstr "" -#: ../../whatsnew/2.2.rst:1186 msgid "" "A new script, :file:`Tools/scripts/cleanfuture.py` by Tim Peters, " "automatically removes obsolete ``__future__`` statements from Python source " "code." msgstr "" -#: ../../whatsnew/2.2.rst:1190 msgid "" -"An additional *flags* argument has been added to the built-in " -"function :func:`compile`, so the behaviour of ``__future__`` statements can " -"now be correctly observed in simulated shells, such as those presented by " -"IDLE and other development environments. This is described in :pep:`264`. " +"An additional *flags* argument has been added to the built-in function :func:" +"`compile`, so the behaviour of ``__future__`` statements can now be " +"correctly observed in simulated shells, such as those presented by IDLE and " +"other development environments. This is described in :pep:`264`. " "(Contributed by Michael Hudson.)" msgstr "" -#: ../../whatsnew/2.2.rst:1196 msgid "" "The new license introduced with Python 1.6 wasn't GPL-compatible. This is " "fixed by some minor textual changes to the 2.2 license, so it's now legal to " @@ -1749,7 +1537,6 @@ msgid "" "to the Python 2.0.1 and 2.1.1 releases." msgstr "" -#: ../../whatsnew/2.2.rst:1203 msgid "" "When presented with a Unicode filename on Windows, Python will now convert " "it to an MBCS encoded string, as used by the Microsoft file APIs. As MBCS " @@ -1760,31 +1547,27 @@ msgid "" "Unix support was added by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.2.rst:1211 msgid "" "Large file support is now enabled on Windows. (Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.2.rst:1213 msgid "" "The :file:`Tools/scripts/ftpmirror.py` script now parses a :file:`.netrc` " "file, if you have one. (Contributed by Mike Romberg.)" msgstr "" -#: ../../whatsnew/2.2.rst:1216 msgid "" "Some features of the object returned by the :func:`!xrange` function are now " "deprecated, and trigger warnings when they're accessed; they'll disappear in " "Python 2.3. :class:`!xrange` objects tried to pretend they were full " -"sequence types by supporting slicing, sequence multiplication, and " -"the :keyword:`in` operator, but these features were rarely used and " -"therefore buggy. The :meth:`!tolist` method and the :attr:`!start`, :attr:`!" -"stop`, and :attr:`!step` attributes are also being deprecated. At the C " -"level, the fourth argument to the :c:func:`!PyRange_New` function, " -"``repeat``, has also been deprecated." +"sequence types by supporting slicing, sequence multiplication, and the :" +"keyword:`in` operator, but these features were rarely used and therefore " +"buggy. The :meth:`!tolist` method and the :attr:`!start`, :attr:`!stop`, " +"and :attr:`!step` attributes are also being deprecated. At the C level, the " +"fourth argument to the :c:func:`!PyRange_New` function, ``repeat``, has also " +"been deprecated." msgstr "" -#: ../../whatsnew/2.2.rst:1225 msgid "" "There were a bunch of patches to the dictionary implementation, mostly to " "fix potential core dumps if a dictionary contains objects that sneakily " @@ -1794,14 +1577,12 @@ msgid "" "case, and round and round it went." msgstr "" -#: ../../whatsnew/2.2.rst:1232 msgid "" "On Windows, Python can now be compiled with Borland C thanks to a number of " "patches contributed by Stephen Hansen, though the result isn't fully " "functional yet. (But this *is* progress...)" msgstr "" -#: ../../whatsnew/2.2.rst:1236 msgid "" "Another Windows enhancement: Wise Solutions generously offered PythonLabs " "use of their InstallerMaster 8.1 system. Earlier PythonLabs Windows " @@ -1809,7 +1590,6 @@ msgid "" "up by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.2.rst:1240 msgid "" "Files ending in ``.pyw`` can now be imported on Windows. ``.pyw`` is a " "Windows-only thing, used to indicate that a script needs to be run using " @@ -1819,15 +1599,13 @@ msgid "" "Bolen.)" msgstr "" -#: ../../whatsnew/2.2.rst:1246 msgid "" "On platforms where Python uses the C :c:func:`dlopen` function to load " -"extension modules, it's now possible to set the flags used " -"by :c:func:`dlopen` using the :func:`sys.getdlopenflags` " -"and :func:`sys.setdlopenflags` functions. (Contributed by Bram Stolk.)" +"extension modules, it's now possible to set the flags used by :c:func:" +"`dlopen` using the :func:`sys.getdlopenflags` and :func:`sys.setdlopenflags` " +"functions. (Contributed by Bram Stolk.)" msgstr "" -#: ../../whatsnew/2.2.rst:1251 msgid "" "The :func:`pow` built-in function no longer supports 3 arguments when " "floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % " @@ -1836,11 +1614,9 @@ msgid "" "``pow(2.0, 8.0, 7.0)`` will now raise a :exc:`TypeError` exception." msgstr "" -#: ../../whatsnew/2.2.rst:1261 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.2.rst:1263 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index f44c100..ca1d1be 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.3.rst:3 msgid "What's New in Python 2.3" msgstr "" -#: ../../whatsnew/2.3.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.3.rst:5 msgid "A.M. Kuchling" msgstr "" -#: ../../whatsnew/2.3.rst:11 msgid "" "This article explains the new features in Python 2.3. Python 2.3 was " "released on July 29, 2003." msgstr "" -#: ../../whatsnew/2.3.rst:14 msgid "" "The main themes for Python 2.3 are polishing some of the features added in " "2.2, adding various small but useful enhancements to the core language, and " @@ -48,7 +43,6 @@ msgid "" "substring searches (e.g. ``\"ab\" in \"abc\"`` returns :const:`True`)." msgstr "" -#: ../../whatsnew/2.3.rst:23 msgid "" "Some of the many new library features include Boolean, set, heap, and date/" "time data types, the ability to import modules from ZIP-format archives, " @@ -58,7 +52,6 @@ msgid "" "new and enhanced modules is lengthy." msgstr "" -#: ../../whatsnew/2.3.rst:30 msgid "" "This article doesn't attempt to provide a complete specification of the new " "features, but instead provides a convenient overview. For full details, you " @@ -68,11 +61,9 @@ msgid "" "particular new feature." msgstr "" -#: ../../whatsnew/2.3.rst:41 msgid "PEP 218: A Standard Set Datatype" msgstr "" -#: ../../whatsnew/2.3.rst:43 msgid "" "The new :mod:`!sets` module contains an implementation of a set datatype. " "The :class:`Set` class is for mutable sets, sets that can have members added " @@ -82,11 +73,9 @@ msgid "" "within a set must be hashable." msgstr "" -#: ../../whatsnew/2.3.rst:50 msgid "Here's a simple example::" msgstr "" -#: ../../whatsnew/2.3.rst:52 msgid "" ">>> import sets\n" ">>> S = sets.Set([1,2,3])\n" @@ -103,16 +92,14 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:66 msgid "" -"The union and intersection of sets can be computed with " -"the :meth:`~frozenset.union` and :meth:`~frozenset.intersection` methods; an " +"The union and intersection of sets can be computed with the :meth:" +"`~frozenset.union` and :meth:`~frozenset.intersection` methods; an " "alternative notation uses the bitwise operators ``&`` and ``|``. Mutable " "sets also have in-place versions of these methods, :meth:`!union_update` " "and :meth:`~frozenset.intersection_update`. ::" msgstr "" -#: ../../whatsnew/2.3.rst:71 msgid "" ">>> S1 = sets.Set([1,2,3])\n" ">>> S2 = sets.Set([4,5,6])\n" @@ -130,17 +117,15 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:86 msgid "" "It's also possible to take the symmetric difference of two sets. This is " "the set of all elements in the union that aren't in the intersection. " "Another way of putting it is that the symmetric difference contains all " "elements that are in exactly one set. Again, there's an alternative " -"notation (``^``), and an in-place version with the ungainly " -"name :meth:`~frozenset.symmetric_difference_update`. ::" +"notation (``^``), and an in-place version with the ungainly name :meth:" +"`~frozenset.symmetric_difference_update`. ::" msgstr "" -#: ../../whatsnew/2.3.rst:92 msgid "" ">>> S1 = sets.Set([1,2,3,4])\n" ">>> S2 = sets.Set([3,4,5,6])\n" @@ -151,13 +136,11 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:100 msgid "" "There are also :meth:`!issubset` and :meth:`!issuperset` methods for " "checking whether one set is a subset or superset of another::" msgstr "" -#: ../../whatsnew/2.3.rst:103 msgid "" ">>> S1 = sets.Set([1,2,3])\n" ">>> S2 = sets.Set([2,3])\n" @@ -170,21 +153,17 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:116 msgid ":pep:`218` - Adding a Built-In Set Object Type" msgstr "" -#: ../../whatsnew/2.3.rst:117 msgid "" "PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, " "and GvR." msgstr "" -#: ../../whatsnew/2.3.rst:126 msgid "PEP 255: Simple Generators" msgstr "" -#: ../../whatsnew/2.3.rst:128 msgid "" "In Python 2.2, generators were added as an optional feature, to be enabled " "by a ``from __future__ import generators`` directive. In 2.3 generators no " @@ -195,7 +174,6 @@ msgid "" "the rest of this section." msgstr "" -#: ../../whatsnew/2.3.rst:136 msgid "" "You're doubtless familiar with how function calls work in Python or C. When " "you call a function, it gets a private namespace where its local variables " @@ -208,18 +186,15 @@ msgid "" "functions." msgstr "" -#: ../../whatsnew/2.3.rst:145 msgid "Here's the simplest example of a generator function::" msgstr "" -#: ../../whatsnew/2.3.rst:147 msgid "" "def generate_ints(N):\n" " for i in range(N):\n" " yield i" msgstr "" -#: ../../whatsnew/2.3.rst:151 msgid "" "A new keyword, :keyword:`yield`, was introduced for generators. Any " "function containing a :keyword:`!yield` statement is a generator function; " @@ -227,7 +202,6 @@ msgid "" "specially as a result." msgstr "" -#: ../../whatsnew/2.3.rst:156 msgid "" "When you call a generator function, it doesn't return a single value; " "instead it returns a generator object that supports the iterator protocol. " @@ -235,20 +209,17 @@ msgid "" "of ``i``, similar to a :keyword:`return` statement. The big difference " "between :keyword:`!yield` and a :keyword:`!return` statement is that on " "reaching a :keyword:`!yield` the generator's state of execution is suspended " -"and local variables are preserved. On the next call to the generator's " -"``.next()`` method, the function will resume executing immediately after " -"the :keyword:`!yield` statement. (For complicated reasons, the :keyword:`!" -"yield` statement isn't allowed inside the :keyword:`try` block of " -"a :keyword:`!try`...\\ :keyword:`!finally` statement; read :pep:`255` for a " -"full explanation of the interaction between :keyword:`!yield` and " -"exceptions.)" +"and local variables are preserved. On the next call to the generator's ``." +"next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`try` block of a :keyword:`!" +"try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" -#: ../../whatsnew/2.3.rst:169 msgid "Here's a sample usage of the :func:`!generate_ints` generator::" msgstr "" -#: ../../whatsnew/2.3.rst:171 msgid "" ">>> gen = generate_ints(3)\n" ">>> gen\n" @@ -266,13 +237,11 @@ msgid "" "StopIteration" msgstr "" -#: ../../whatsnew/2.3.rst:186 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " "generate_ints(3)``." msgstr "" -#: ../../whatsnew/2.3.rst:189 msgid "" "Inside a generator function, the :keyword:`return` statement can only be " "used without a value, and signals the end of the procession of values; " @@ -283,7 +252,6 @@ msgid "" "flow of execution fall off the bottom of the function." msgstr "" -#: ../../whatsnew/2.3.rst:197 msgid "" "You could achieve the effect of generators manually by writing your own " "class and storing all the local variables of the generator as instance " @@ -296,7 +264,6 @@ msgid "" "recursively. ::" msgstr "" -#: ../../whatsnew/2.3.rst:206 msgid "" "# A recursive generator that generates Tree leaves in in-order.\n" "def inorder(t):\n" @@ -308,7 +275,6 @@ msgid "" " yield x" msgstr "" -#: ../../whatsnew/2.3.rst:215 msgid "" "Two other examples in :file:`Lib/test/test_generators.py` produce solutions " "for the N-Queens problem (placing $N$ queens on an $NxN$ chess board so that " @@ -317,7 +283,6 @@ msgid "" "twice)." msgstr "" -#: ../../whatsnew/2.3.rst:220 msgid "" "The idea of generators comes from other programming languages, especially " "Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " @@ -327,13 +292,11 @@ msgid "" "of what this looks like::" msgstr "" -#: ../../whatsnew/2.3.rst:227 msgid "" "sentence := \"Store it in the neighboring harbor\"\n" "if (i := find(\"or\", sentence)) > 5 then write(i)" msgstr "" -#: ../../whatsnew/2.3.rst:230 msgid "" "In Icon the :func:`!find` function returns the indexes at which the " "substring \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` " @@ -343,7 +306,6 @@ msgid "" "screen." msgstr "" -#: ../../whatsnew/2.3.rst:236 msgid "" "Python doesn't go nearly as far as Icon in adopting generators as a central " "concept. Generators are considered part of the core Python language, but " @@ -354,22 +316,18 @@ msgid "" "functions or stored in a data structure." msgstr "" -#: ../../whatsnew/2.3.rst:247 msgid ":pep:`255` - Simple Generators" msgstr "" -#: ../../whatsnew/2.3.rst:248 msgid "" "Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented " "mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " "Labs crew." msgstr "" -#: ../../whatsnew/2.3.rst:257 msgid "PEP 263: Source Code Encodings" msgstr "" -#: ../../whatsnew/2.3.rst:259 msgid "" "Python source files can now be declared as being in different character set " "encodings. Encodings are declared by including a specially formatted " @@ -377,22 +335,19 @@ msgid "" "UTF-8 file can be declared with::" msgstr "" -#: ../../whatsnew/2.3.rst:264 msgid "" "#!/usr/bin/env python\n" "# -*- coding: UTF-8 -*-" msgstr "" -#: ../../whatsnew/2.3.rst:267 msgid "" "Without such an encoding declaration, the default encoding used is 7-bit " "ASCII. Executing or importing modules that contain string literals with 8-" -"bit characters and have no encoding declaration will result in " -"a :exc:`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will " -"be a syntax error." +"bit characters and have no encoding declaration will result in a :exc:" +"`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be a " +"syntax error." msgstr "" -#: ../../whatsnew/2.3.rst:273 msgid "" "The encoding declaration only affects Unicode string literals, which will be " "converted to Unicode using the specified encoding. Note that Python " @@ -400,29 +355,24 @@ msgid "" "variable names that use characters outside of the usual alphanumerics." msgstr "" -#: ../../whatsnew/2.3.rst:281 msgid ":pep:`263` - Defining Python Source Code Encodings" msgstr "" -#: ../../whatsnew/2.3.rst:282 msgid "" "Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki " "Hisao and Martin von Löwis." msgstr "" -#: ../../whatsnew/2.3.rst:289 msgid "PEP 273: Importing Modules from ZIP Archives" msgstr "" -#: ../../whatsnew/2.3.rst:291 msgid "" "The new :mod:`zipimport` module adds support for importing modules from a " "ZIP-format archive. You don't need to import the module explicitly; it will " -"be automatically imported if a ZIP archive's filename is added to " -"``sys.path``. For example:" +"be automatically imported if a ZIP archive's filename is added to ``sys." +"path``. For example:" msgstr "" -#: ../../whatsnew/2.3.rst:296 msgid "" "amk@nyman:~/src/python$ unzip -l /tmp/example.zip\n" "Archive: /tmp/example.zip\n" @@ -442,92 +392,76 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:314 msgid "" "An entry in ``sys.path`` can now be the filename of a ZIP archive. The ZIP " -"archive can contain any kind of files, but only files " -"named :file:`\\*.py`, :file:`\\*.pyc`, or :file:`\\*.pyo` can be imported. " -"If an archive only contains :file:`\\*.py` files, Python will not attempt to " -"modify the archive by adding the corresponding :file:`\\*.pyc` file, meaning " -"that if a ZIP archive doesn't contain :file:`\\*.pyc` files, importing may " -"be rather slow." +"archive can contain any kind of files, but only files named :file:`\\*.py`, :" +"file:`\\*.pyc`, or :file:`\\*.pyo` can be imported. If an archive only " +"contains :file:`\\*.py` files, Python will not attempt to modify the archive " +"by adding the corresponding :file:`\\*.pyc` file, meaning that if a ZIP " +"archive doesn't contain :file:`\\*.pyc` files, importing may be rather slow." msgstr "" -#: ../../whatsnew/2.3.rst:321 msgid "" "A path within the archive can also be specified to only import from a " "subdirectory; for example, the path :file:`/tmp/example.zip/lib/` would only " "import from the :file:`lib/` subdirectory within the archive." msgstr "" -#: ../../whatsnew/2.3.rst:328 msgid ":pep:`273` - Import Modules from Zip Archives" msgstr "" -#: ../../whatsnew/2.3.rst:329 msgid "" "Written by James C. Ahlstrom, who also provided an implementation. Python " "2.3 follows the specification in :pep:`273`, but uses an implementation " -"written by Just van Rossum that uses the import hooks described " -"in :pep:`302`. See section :ref:`section-pep302` for a description of the " -"new import hooks." +"written by Just van Rossum that uses the import hooks described in :pep:" +"`302`. See section :ref:`section-pep302` for a description of the new import " +"hooks." msgstr "" -#: ../../whatsnew/2.3.rst:338 msgid "PEP 277: Unicode file name support for Windows NT" msgstr "" -#: ../../whatsnew/2.3.rst:340 msgid "" "On Windows NT, 2000, and XP, the system stores file names as Unicode " "strings. Traditionally, Python has represented file names as byte strings, " "which is inadequate because it renders some file names inaccessible." msgstr "" -#: ../../whatsnew/2.3.rst:344 msgid "" "Python now allows using arbitrary Unicode strings (within the limitations of " -"the file system) for all functions that expect file names, most notably " -"the :func:`open` built-in function. If a Unicode string is passed " -"to :func:`os.listdir`, Python now returns a list of Unicode strings. A new " -"function, :func:`!os.getcwdu`, returns the current directory as a Unicode " -"string." +"the file system) for all functions that expect file names, most notably the :" +"func:`open` built-in function. If a Unicode string is passed to :func:`os." +"listdir`, Python now returns a list of Unicode strings. A new function, :" +"func:`!os.getcwdu`, returns the current directory as a Unicode string." msgstr "" -#: ../../whatsnew/2.3.rst:350 msgid "" "Byte strings still work as file names, and on Windows Python will " "transparently convert them to Unicode using the ``mbcs`` encoding." msgstr "" -#: ../../whatsnew/2.3.rst:353 msgid "" "Other systems also allow Unicode strings as file names but convert them to " -"byte strings before passing them to the system, which can cause " -"a :exc:`UnicodeError` to be raised. Applications can test whether arbitrary " -"Unicode strings are supported as file names by " -"checking :const:`os.path.supports_unicode_filenames`, a Boolean value." +"byte strings before passing them to the system, which can cause a :exc:" +"`UnicodeError` to be raised. Applications can test whether arbitrary Unicode " +"strings are supported as file names by checking :const:`os.path." +"supports_unicode_filenames`, a Boolean value." msgstr "" -#: ../../whatsnew/2.3.rst:359 msgid "Under MacOS, :func:`os.listdir` may now return Unicode filenames." msgstr "" -#: ../../whatsnew/2.3.rst:364 msgid ":pep:`277` - Unicode file name support for Windows NT" msgstr "" -#: ../../whatsnew/2.3.rst:365 msgid "" "Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and " "Mark Hammond." msgstr "" -#: ../../whatsnew/2.3.rst:375 msgid "PEP 278: Universal Newline Support" msgstr "" -#: ../../whatsnew/2.3.rst:377 msgid "" "The three major operating systems used today are Microsoft Windows, Apple's " "Macintosh OS, and the various Unix derivatives. A minor irritation of cross-" @@ -537,17 +471,15 @@ msgid "" "Windows uses a two-character sequence of a carriage return plus a newline." msgstr "" -#: ../../whatsnew/2.3.rst:384 msgid "" "Python's file objects can now support end of line conventions other than the " "one followed by the platform on which Python is running. Opening a file with " -"the mode ``'U'`` or ``'rU'`` will open a file for reading " -"in :term:`universal newlines` mode. All three line ending conventions will " -"be translated to a ``'\\n'`` in the strings returned by the various file " +"the mode ``'U'`` or ``'rU'`` will open a file for reading in :term:" +"`universal newlines` mode. All three line ending conventions will be " +"translated to a ``'\\n'`` in the strings returned by the various file " "methods such as :meth:`!read` and :meth:`!readline`." msgstr "" -#: ../../whatsnew/2.3.rst:391 msgid "" "Universal newline support is also used when importing modules and when " "executing a file with the :func:`!execfile` function. This means that " @@ -555,26 +487,21 @@ msgid "" "needing to convert the line-endings." msgstr "" -#: ../../whatsnew/2.3.rst:396 msgid "" -"This feature can be disabled when compiling Python by specifying " -"the :option:`!--without-universal-newlines` switch when running " -"Python's :program:`configure` script." +"This feature can be disabled when compiling Python by specifying the :option:" +"`!--without-universal-newlines` switch when running Python's :program:" +"`configure` script." msgstr "" -#: ../../whatsnew/2.3.rst:403 msgid ":pep:`278` - Universal Newline Support" msgstr "" -#: ../../whatsnew/2.3.rst:404 msgid "Written and implemented by Jack Jansen." msgstr "" -#: ../../whatsnew/2.3.rst:412 msgid "PEP 279: enumerate()" msgstr "" -#: ../../whatsnew/2.3.rst:414 msgid "" "A new built-in function, :func:`enumerate`, will make certain loops a bit " "clearer. ``enumerate(thing)``, where *thing* is either an iterator or a " @@ -582,11 +509,9 @@ msgid "" "thing[1])``, ``(2, thing[2])``, and so forth." msgstr "" -#: ../../whatsnew/2.3.rst:419 msgid "A common idiom to change every element of a list looks like this::" msgstr "" -#: ../../whatsnew/2.3.rst:421 msgid "" "for i in range(len(L)):\n" " item = L[i]\n" @@ -594,30 +519,24 @@ msgid "" " L[i] = result" msgstr "" -#: ../../whatsnew/2.3.rst:426 msgid "This can be rewritten using :func:`enumerate` as::" msgstr "" -#: ../../whatsnew/2.3.rst:428 msgid "" "for i, item in enumerate(L):\n" " # ... compute some result based on item ...\n" " L[i] = result" msgstr "" -#: ../../whatsnew/2.3.rst:435 msgid ":pep:`279` - The enumerate() built-in function" msgstr "" -#: ../../whatsnew/2.3.rst:436 msgid "Written and implemented by Raymond D. Hettinger." msgstr "" -#: ../../whatsnew/2.3.rst:442 msgid "PEP 282: The logging Package" msgstr "" -#: ../../whatsnew/2.3.rst:444 msgid "" "A standard package for writing logs, :mod:`logging`, has been added to " "Python 2.3. It provides a powerful and flexible mechanism for generating " @@ -629,29 +548,25 @@ msgid "" "possible to write your own handler classes." msgstr "" -#: ../../whatsnew/2.3.rst:453 msgid "" "The :class:`~logging.Logger` class is the primary class. Most application " "code will deal with one or more :class:`~logging.Logger` objects, each one " -"used by a particular subsystem of the application. " -"Each :class:`~logging.Logger` is identified by a name, and names are " -"organized into a hierarchy using ``.`` as the component separator. For " -"example, you might have :class:`~logging.Logger` instances named ``server``, " -"``server.auth`` and ``server.network``. The latter two instances are below " -"``server`` in the hierarchy. This means that if you turn up the verbosity " -"for ``server`` or direct ``server`` messages to a different handler, the " -"changes will also apply to records logged to ``server.auth`` and " -"``server.network``. There's also a root :class:`~logging.Logger` that's the " -"parent of all other loggers." +"used by a particular subsystem of the application. Each :class:`~logging." +"Logger` is identified by a name, and names are organized into a hierarchy " +"using ``.`` as the component separator. For example, you might have :class:" +"`~logging.Logger` instances named ``server``, ``server.auth`` and ``server." +"network``. The latter two instances are below ``server`` in the hierarchy. " +"This means that if you turn up the verbosity for ``server`` or direct " +"``server`` messages to a different handler, the changes will also apply to " +"records logged to ``server.auth`` and ``server.network``. There's also a " +"root :class:`~logging.Logger` that's the parent of all other loggers." msgstr "" -#: ../../whatsnew/2.3.rst:464 msgid "" "For simple uses, the :mod:`logging` package contains some convenience " "functions that always use the root log::" msgstr "" -#: ../../whatsnew/2.3.rst:467 msgid "" "import logging\n" "\n" @@ -662,26 +577,22 @@ msgid "" "logging.critical('Critical error -- shutting down')" msgstr "" -#: ../../whatsnew/2.3.rst:475 ../../whatsnew/2.3.rst:500 msgid "This produces the following output::" msgstr "" -#: ../../whatsnew/2.3.rst:477 msgid "" "WARNING:root:Warning:config file server.conf not found\n" "ERROR:root:Error occurred\n" "CRITICAL:root:Critical error -- shutting down" msgstr "" -#: ../../whatsnew/2.3.rst:481 msgid "" "In the default configuration, informational and debugging messages are " "suppressed and the output is sent to standard error. You can enable the " -"display of informational and debugging messages by calling " -"the :meth:`~logging.Logger.setLevel` method on the root logger." +"display of informational and debugging messages by calling the :meth:" +"`~logging.Logger.setLevel` method on the root logger." msgstr "" -#: ../../whatsnew/2.3.rst:486 msgid "" "Notice the :func:`~logging.warning` call's use of string formatting " "operators; all of the functions for logging messages take the arguments " @@ -689,14 +600,12 @@ msgid "" "arg2, ...)``." msgstr "" -#: ../../whatsnew/2.3.rst:490 msgid "" "There's also an :func:`~logging.exception` function that records the most " "recent traceback. Any of the other functions will also record the traceback " "if you specify a true value for the keyword argument *exc_info*. ::" msgstr "" -#: ../../whatsnew/2.3.rst:494 msgid "" "def f():\n" " try: 1/0\n" @@ -705,7 +614,6 @@ msgid "" "f()" msgstr "" -#: ../../whatsnew/2.3.rst:502 msgid "" "ERROR:root:Problem recorded\n" "Traceback (most recent call last):\n" @@ -714,7 +622,6 @@ msgid "" "ZeroDivisionError: integer division or modulo by zero" msgstr "" -#: ../../whatsnew/2.3.rst:508 msgid "" "Slightly more advanced programs will use a logger other than the root " "logger. The ``getLogger(name)`` function is used to get a particular log, " @@ -722,7 +629,6 @@ msgid "" "logger. ::" msgstr "" -#: ../../whatsnew/2.3.rst:512 msgid "" "log = logging.getLogger('server')\n" " ...\n" @@ -732,15 +638,13 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.3.rst:519 msgid "" "Log records are usually propagated up the hierarchy, so a message logged to " -"``server.auth`` is also seen by ``server`` and ``root``, but " -"a :class:`~logging.Logger` can prevent this by setting " -"its :attr:`~logging.Logger.propagate` attribute to :const:`False`." +"``server.auth`` is also seen by ``server`` and ``root``, but a :class:" +"`~logging.Logger` can prevent this by setting its :attr:`~logging.Logger." +"propagate` attribute to :const:`False`." msgstr "" -#: ../../whatsnew/2.3.rst:523 msgid "" "There are more classes provided by the :mod:`logging` package that can be " "customized. When a :class:`~logging.Logger` instance is told to log a " @@ -748,13 +652,12 @@ msgid "" "any number of different :class:`~logging.Handler` instances. Loggers and " "handlers can also have an attached list of filters, and each filter can " "cause the :class:`~logging.LogRecord` to be ignored or can modify the record " -"before passing it along. When they're finally " -"output, :class:`~logging.LogRecord` instances are converted to text by " -"a :class:`~logging.Formatter` class. All of these classes can be replaced " -"by your own specially written classes." +"before passing it along. When they're finally output, :class:`~logging." +"LogRecord` instances are converted to text by a :class:`~logging.Formatter` " +"class. All of these classes can be replaced by your own specially written " +"classes." msgstr "" -#: ../../whatsnew/2.3.rst:533 msgid "" "With all of these features the :mod:`logging` package should provide enough " "flexibility for even the most complicated applications. This is only an " @@ -763,35 +666,29 @@ msgid "" "helpful." msgstr "" -#: ../../whatsnew/2.3.rst:541 msgid ":pep:`282` - A Logging System" msgstr "" -#: ../../whatsnew/2.3.rst:542 msgid "Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip." msgstr "" -#: ../../whatsnew/2.3.rst:550 msgid "PEP 285: A Boolean Type" msgstr "" -#: ../../whatsnew/2.3.rst:552 msgid "" "A Boolean type was added to Python 2.3. Two new constants were added to " -"the :mod:`!__builtin__` module, :const:`True` and :const:`False`. " -"(:const:`True` and :const:`False` constants were added to the built-ins in " -"Python 2.2.1, but the 2.2.1 versions are simply set to integer values of 1 " -"and 0 and aren't a different type.)" +"the :mod:`!__builtin__` module, :const:`True` and :const:`False`. (:const:" +"`True` and :const:`False` constants were added to the built-ins in Python " +"2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 " +"and aren't a different type.)" msgstr "" -#: ../../whatsnew/2.3.rst:558 msgid "" "The type object for this new type is named :class:`bool`; the constructor " -"for it takes any Python value and converts it to :const:`True` " -"or :const:`False`. ::" +"for it takes any Python value and converts it to :const:`True` or :const:" +"`False`. ::" msgstr "" -#: ../../whatsnew/2.3.rst:561 msgid "" ">>> bool(1)\n" "True\n" @@ -803,13 +700,11 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/2.3.rst:570 msgid "" "Most of the standard library modules and built-in functions have been " "changed to return Booleans. ::" msgstr "" -#: ../../whatsnew/2.3.rst:573 msgid "" ">>> obj = []\n" ">>> hasattr(obj, 'append')\n" @@ -820,7 +715,6 @@ msgid "" "False" msgstr "" -#: ../../whatsnew/2.3.rst:581 msgid "" "Python's Booleans were added with the primary goal of making code clearer. " "For example, if you're reading a function and encounter the statement " @@ -830,20 +724,18 @@ msgid "" "is quite clear." msgstr "" -#: ../../whatsnew/2.3.rst:587 msgid "" "Python's Booleans were *not* added for the sake of strict type-checking. A " "very strict language such as Pascal would also prevent you performing " -"arithmetic with Booleans, and would require that the expression in " -"an :keyword:`if` statement always evaluate to a Boolean result. Python is " -"not this strict and never will be, as :pep:`285` explicitly says. This " -"means you can still use any expression in an :keyword:`!if` statement, even " -"ones that evaluate to a list or tuple or some random object. The Boolean " -"type is a subclass of the :class:`int` class so that arithmetic using a " -"Boolean still works. ::" +"arithmetic with Booleans, and would require that the expression in an :" +"keyword:`if` statement always evaluate to a Boolean result. Python is not " +"this strict and never will be, as :pep:`285` explicitly says. This means " +"you can still use any expression in an :keyword:`!if` statement, even ones " +"that evaluate to a list or tuple or some random object. The Boolean type is " +"a subclass of the :class:`int` class so that arithmetic using a Boolean " +"still works. ::" msgstr "" -#: ../../whatsnew/2.3.rst:596 msgid "" ">>> True + 1\n" "2\n" @@ -855,7 +747,6 @@ msgid "" "75" msgstr "" -#: ../../whatsnew/2.3.rst:605 msgid "" "To sum up :const:`True` and :const:`False` in a sentence: they're " "alternative ways to spell the integer values 1 and 0, with the single " @@ -863,31 +754,26 @@ msgid "" "and ``'False'`` instead of ``'1'`` and ``'0'``." msgstr "" -#: ../../whatsnew/2.3.rst:613 msgid ":pep:`285` - Adding a bool type" msgstr "" -#: ../../whatsnew/2.3.rst:614 msgid "Written and implemented by GvR." msgstr "" -#: ../../whatsnew/2.3.rst:620 msgid "PEP 293: Codec Error Handling Callbacks" msgstr "" -#: ../../whatsnew/2.3.rst:622 msgid "" "When encoding a Unicode string into a byte string, unencodable characters " "may be encountered. So far, Python has allowed specifying the error " -"processing as either \"strict\" (raising :exc:`UnicodeError`), \"ignore\" " -"(skipping the character), or \"replace\" (using a question mark in the " -"output string), with \"strict\" being the default behavior. It may be " +"processing as either \"strict\" (raising :exc:`UnicodeError`), " +"\"ignore\" (skipping the character), or \"replace\" (using a question mark " +"in the output string), with \"strict\" being the default behavior. It may be " "desirable to specify alternative processing of such errors, such as " "inserting an XML character reference or HTML entity reference into the " "converted string." msgstr "" -#: ../../whatsnew/2.3.rst:630 msgid "" "Python now has a flexible framework to add different processing strategies. " "New error handlers can be added with :func:`codecs.register_error`, and " @@ -899,32 +785,26 @@ msgid "" "replacement string." msgstr "" -#: ../../whatsnew/2.3.rst:638 msgid "" "Two additional error handlers have been implemented using this framework: " "\"backslashreplace\" uses Python backslash quoting to represent unencodable " "characters and \"xmlcharrefreplace\" emits XML character references." msgstr "" -#: ../../whatsnew/2.3.rst:645 msgid ":pep:`293` - Codec Error Handling Callbacks" msgstr "" -#: ../../whatsnew/2.3.rst:646 msgid "Written and implemented by Walter Dörwald." msgstr "" -#: ../../whatsnew/2.3.rst:654 msgid "PEP 301: Package Index and Metadata for Distutils" msgstr "" -#: ../../whatsnew/2.3.rst:656 msgid "" "Support for the long-requested Python catalog makes its first appearance in " "2.3." msgstr "" -#: ../../whatsnew/2.3.rst:658 msgid "" "The heart of the catalog is the new Distutils :command:`register` command. " "Running ``python setup.py register`` will collect the metadata describing a " @@ -933,7 +813,6 @@ msgid "" "https://pypi.org." msgstr "" -#: ../../whatsnew/2.3.rst:664 msgid "" "To make the catalog a bit more useful, a new optional *classifiers* keyword " "argument has been added to the Distutils :func:`!setup` function. A list of " @@ -941,13 +820,11 @@ msgid "" "classify the software." msgstr "" -#: ../../whatsnew/2.3.rst:669 msgid "" "Here's an example :file:`setup.py` with classifiers, written to be " "compatible with older versions of the Distutils::" msgstr "" -#: ../../whatsnew/2.3.rst:672 msgid "" "from distutils import core\n" "kw = {'name': \"Quixote\",\n" @@ -966,25 +843,20 @@ msgid "" "core.setup(**kw)" msgstr "" -#: ../../whatsnew/2.3.rst:688 msgid "" "The full list of classifiers can be obtained by running ``python setup.py " "register --list-classifiers``." msgstr "" -#: ../../whatsnew/2.3.rst:694 msgid ":pep:`301` - Package Index and Metadata for Distutils" msgstr "" -#: ../../whatsnew/2.3.rst:695 msgid "Written and implemented by Richard Jones." msgstr "" -#: ../../whatsnew/2.3.rst:703 msgid "PEP 302: New Import Hooks" msgstr "" -#: ../../whatsnew/2.3.rst:705 msgid "" "While it's been possible to write custom import hooks ever since the :mod:`!" "ihooks` module was introduced in Python 1.3, no one has ever been really " @@ -994,28 +866,24 @@ msgid "" "and none of them were easily usable from C code." msgstr "" -#: ../../whatsnew/2.3.rst:712 msgid "" ":pep:`302` borrows ideas from its predecessors, especially from Gordon " "McMillan's :mod:`!iu` module. Three new items are added to the :mod:`sys` " "module:" msgstr "" -#: ../../whatsnew/2.3.rst:716 msgid "" "``sys.path_hooks`` is a list of callable objects; most often they'll be " "classes. Each callable takes a string containing a path and either returns " -"an importer object that will handle imports from this path or raises " -"an :exc:`ImportError` exception if it can't handle this path." +"an importer object that will handle imports from this path or raises an :exc:" +"`ImportError` exception if it can't handle this path." msgstr "" -#: ../../whatsnew/2.3.rst:721 msgid "" -"``sys.path_importer_cache`` caches importer objects for each path, so " -"``sys.path_hooks`` will only need to be traversed once for each path." +"``sys.path_importer_cache`` caches importer objects for each path, so ``sys." +"path_hooks`` will only need to be traversed once for each path." msgstr "" -#: ../../whatsnew/2.3.rst:724 msgid "" "``sys.meta_path`` is a list of importer objects that will be traversed " "before ``sys.path`` is checked. This list is initially empty, but user code " @@ -1023,7 +891,6 @@ msgid "" "imported by an object added to this list." msgstr "" -#: ../../whatsnew/2.3.rst:729 msgid "" "Importer objects must have a single method, ``find_module(fullname, " "path=None)``. *fullname* will be a module or package name, e.g. ``string`` " @@ -1032,13 +899,11 @@ msgid "" "returns the corresponding module object." msgstr "" -#: ../../whatsnew/2.3.rst:735 msgid "" "Pseudo-code for Python's new import logic, therefore, looks something like " "this (simplified a bit; see :pep:`302` for the full details)::" msgstr "" -#: ../../whatsnew/2.3.rst:738 msgid "" "for mp in sys.meta_path:\n" " loader = mp(fullname)\n" @@ -1060,51 +925,41 @@ msgid "" "raise ImportError" msgstr "" -#: ../../whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" msgstr "" -#: ../../whatsnew/2.3.rst:761 msgid "" "Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum." msgstr "" -#: ../../whatsnew/2.3.rst:769 msgid "PEP 305: Comma-separated Files" msgstr "" -#: ../../whatsnew/2.3.rst:771 msgid "" "Comma-separated files are a format frequently used for exporting data from " "databases and spreadsheets. Python 2.3 adds a parser for comma-separated " "files." msgstr "" -#: ../../whatsnew/2.3.rst:774 msgid "Comma-separated format is deceptively simple at first glance::" msgstr "" -#: ../../whatsnew/2.3.rst:776 msgid "Costs,150,200,3.95" msgstr "" -#: ../../whatsnew/2.3.rst:778 msgid "" "Read a line and call ``line.split(',')``: what could be simpler? But toss in " "string data that can contain commas, and things get more complicated::" msgstr "" -#: ../../whatsnew/2.3.rst:781 msgid "\"Costs\",150,200,3.95,\"Includes taxes, shipping, and sundry items\"" msgstr "" -#: ../../whatsnew/2.3.rst:783 msgid "" "A big ugly regular expression can parse this, but using the new :mod:`csv` " "package is much simpler::" msgstr "" -#: ../../whatsnew/2.3.rst:786 msgid "" "import csv\n" "\n" @@ -1114,36 +969,30 @@ msgid "" " print line" msgstr "" -#: ../../whatsnew/2.3.rst:793 msgid "" "The :func:`~csv.reader` function takes a number of different options. The " "field separator isn't limited to the comma and can be changed to any " "character, and so can the quoting and line-ending characters." msgstr "" -#: ../../whatsnew/2.3.rst:797 msgid "" "Different dialects of comma-separated files can be defined and registered; " -"currently there are two dialects, both used by Microsoft Excel. A " -"separate :class:`csv.writer` class will generate comma-separated files from " -"a succession of tuples or lists, quoting strings that contain the delimiter." +"currently there are two dialects, both used by Microsoft Excel. A separate :" +"class:`csv.writer` class will generate comma-separated files from a " +"succession of tuples or lists, quoting strings that contain the delimiter." msgstr "" -#: ../../whatsnew/2.3.rst:805 msgid ":pep:`305` - CSV File API" msgstr "" -#: ../../whatsnew/2.3.rst:806 msgid "" "Written and implemented by Kevin Altis, Dave Cole, Andrew McNamara, Skip " "Montanaro, Cliff Wells." msgstr "" -#: ../../whatsnew/2.3.rst:815 msgid "PEP 307: Pickle Enhancements" msgstr "" -#: ../../whatsnew/2.3.rst:817 msgid "" "The :mod:`pickle` and :mod:`!cPickle` modules received some attention during " "the 2.3 development cycle. In 2.2, new-style classes could be pickled " @@ -1152,7 +1001,6 @@ msgid "" "three times longer than that for a classic class." msgstr "" -#: ../../whatsnew/2.3.rst:823 msgid "" "The solution was to invent a new pickle protocol. The :func:`pickle.dumps` " "function has supported a text-or-binary flag for a long time. In 2.3, this " @@ -1162,7 +1010,6 @@ msgid "" "select the fanciest protocol available." msgstr "" -#: ../../whatsnew/2.3.rst:830 msgid "" "Unpickling is no longer considered a safe operation. 2.2's :mod:`pickle` " "provided hooks for trying to prevent unsafe classes from being unpickled " @@ -1171,16 +1018,14 @@ msgid "" "You should not unpickle untrusted data in any version of Python." msgstr "" -#: ../../whatsnew/2.3.rst:836 msgid "" "To reduce the pickling overhead for new-style classes, a new interface for " -"customizing pickling was added using three special " -"methods: :meth:`~object.__getstate__`, :meth:`~object.__setstate__`, " -"and :meth:`~object.__getnewargs__`. Consult :pep:`307` for the full " -"semantics of these methods." +"customizing pickling was added using three special methods: :meth:`~object." +"__getstate__`, :meth:`~object.__setstate__`, and :meth:`~object." +"__getnewargs__`. Consult :pep:`307` for the full semantics of these " +"methods." msgstr "" -#: ../../whatsnew/2.3.rst:841 msgid "" "As a way to compress pickles yet further, it's now possible to use integer " "codes instead of long strings to identify pickled classes. The Python " @@ -1188,19 +1033,15 @@ msgid "" "a range of codes for private use. Currently no codes have been specified." msgstr "" -#: ../../whatsnew/2.3.rst:849 msgid ":pep:`307` - Extensions to the pickle protocol" msgstr "" -#: ../../whatsnew/2.3.rst:850 msgid "Written and implemented by Guido van Rossum and Tim Peters." msgstr "" -#: ../../whatsnew/2.3.rst:858 msgid "Extended Slices" msgstr "" -#: ../../whatsnew/2.3.rst:860 msgid "" "Ever since Python 1.4, the slicing syntax has supported an optional third " "\"step\" or \"stride\" argument. For example, these are all legal Python " @@ -1211,35 +1052,29 @@ msgid "" "if you tried it. Michael Hudson contributed a patch to fix this shortcoming." msgstr "" -#: ../../whatsnew/2.3.rst:868 msgid "" "For example, you can now easily extract the elements of a list that have " "even indexes::" msgstr "" -#: ../../whatsnew/2.3.rst:871 msgid "" ">>> L = range(10)\n" ">>> L[::2]\n" "[0, 2, 4, 6, 8]" msgstr "" -#: ../../whatsnew/2.3.rst:875 msgid "" "Negative values also work to make a copy of the same list in reverse order::" msgstr "" -#: ../../whatsnew/2.3.rst:877 msgid "" ">>> L[::-1]\n" "[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]" msgstr "" -#: ../../whatsnew/2.3.rst:880 msgid "This also works for tuples, arrays, and strings::" msgstr "" -#: ../../whatsnew/2.3.rst:882 msgid "" ">>> s='abcd'\n" ">>> s[::2]\n" @@ -1248,7 +1083,6 @@ msgid "" "'dcba'" msgstr "" -#: ../../whatsnew/2.3.rst:888 msgid "" "If you have a mutable sequence such as a list or an array you can assign to " "or delete an extended slice, but there are some differences between " @@ -1256,7 +1090,6 @@ msgid "" "can be used to change the length of the sequence::" msgstr "" -#: ../../whatsnew/2.3.rst:893 msgid "" ">>> a = range(3)\n" ">>> a\n" @@ -1266,14 +1099,12 @@ msgid "" "[0, 4, 5, 6]" msgstr "" -#: ../../whatsnew/2.3.rst:900 msgid "" "Extended slices aren't this flexible. When assigning to an extended slice, " "the list on the right hand side of the statement must contain the same " "number of items as the slice it is replacing::" msgstr "" -#: ../../whatsnew/2.3.rst:904 msgid "" ">>> a = range(4)\n" ">>> a\n" @@ -1289,11 +1120,9 @@ msgid "" "ValueError: attempt to assign sequence of size 3 to extended slice of size 2" msgstr "" -#: ../../whatsnew/2.3.rst:917 msgid "Deletion is more straightforward::" msgstr "" -#: ../../whatsnew/2.3.rst:919 msgid "" ">>> a = range(4)\n" ">>> a\n" @@ -1305,29 +1134,24 @@ msgid "" "[1, 3]" msgstr "" -#: ../../whatsnew/2.3.rst:928 msgid "" "One can also now pass slice objects to the :meth:`~object.__getitem__` " "methods of the built-in sequences::" msgstr "" -#: ../../whatsnew/2.3.rst:931 msgid "" ">>> range(10).__getitem__(slice(0, 5, 2))\n" "[0, 2, 4]" msgstr "" -#: ../../whatsnew/2.3.rst:934 msgid "Or use slice objects directly in subscripts::" msgstr "" -#: ../../whatsnew/2.3.rst:936 msgid "" ">>> range(10)[slice(0, 5, 2)]\n" "[0, 2, 4]" msgstr "" -#: ../../whatsnew/2.3.rst:939 msgid "" "To simplify implementing sequences that support extended slicing, slice " "objects now have a method ``indices(length)`` which, given the length of a " @@ -1338,7 +1162,6 @@ msgid "" "intended to be used like this::" msgstr "" -#: ../../whatsnew/2.3.rst:946 msgid "" "class FakeSeq:\n" " ...\n" @@ -1352,7 +1175,6 @@ msgid "" " return self.calc_item(i)" msgstr "" -#: ../../whatsnew/2.3.rst:957 msgid "" "From this example you can also see that the built-in :class:`slice` object " "is now the type object for the slice type, and is no longer a function. " @@ -1360,36 +1182,30 @@ msgid "" "underwent the same change." msgstr "" -#: ../../whatsnew/2.3.rst:966 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/2.3.rst:968 msgid "" "Here are all of the changes that Python 2.3 makes to the core Python " "language." msgstr "" -#: ../../whatsnew/2.3.rst:970 msgid "" "The :keyword:`yield` statement is now always a keyword, as described in " "section :ref:`section-generators` of this document." msgstr "" -#: ../../whatsnew/2.3.rst:973 msgid "" "A new built-in function :func:`enumerate` was added, as described in " "section :ref:`section-enumerate` of this document." msgstr "" -#: ../../whatsnew/2.3.rst:976 msgid "" "Two new constants, :const:`True` and :const:`False` were added along with " "the built-in :class:`bool` type, as described in section :ref:`section-bool` " "of this document." msgstr "" -#: ../../whatsnew/2.3.rst:980 msgid "" "The :func:`int` type constructor will now return a long integer instead of " "raising an :exc:`OverflowError` when a string or floating-point number is " @@ -1398,13 +1214,11 @@ msgid "" "to cause problems in practice." msgstr "" -#: ../../whatsnew/2.3.rst:986 msgid "" "Built-in types now support the extended slicing syntax, as described in " "section :ref:`section-slices` of this document." msgstr "" -#: ../../whatsnew/2.3.rst:989 msgid "" "A new built-in function, ``sum(iterable, start=0)``, adds up the numeric " "items in the iterable object and returns their sum. :func:`sum` only " @@ -1412,7 +1226,6 @@ msgid "" "strings. (Contributed by Alex Martelli.)" msgstr "" -#: ../../whatsnew/2.3.rst:994 msgid "" "``list.insert(pos, value)`` used to insert *value* at the front of the list " "when *pos* was negative. The behaviour has now been changed to be " @@ -1420,14 +1233,12 @@ msgid "" "inserted before the last element, and so forth." msgstr "" -#: ../../whatsnew/2.3.rst:999 msgid "" "``list.index(value)``, which searches for *value* within the list and " "returns its index, now takes optional *start* and *stop* arguments to limit " "the search to only part of the list." msgstr "" -#: ../../whatsnew/2.3.rst:1003 msgid "" "Dictionaries have a new method, ``pop(key[, *default*])``, that returns the " "value corresponding to *key* and removes that key/value pair from the " @@ -1435,7 +1246,6 @@ msgid "" "is returned if it's specified and :exc:`KeyError` raised if it isn't. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1008 msgid "" ">>> d = {1:2}\n" ">>> d\n" @@ -1455,34 +1265,28 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:1025 msgid "" "There's also a new class method, ``dict.fromkeys(iterable, value)``, that " "creates a dictionary with keys taken from the supplied iterator *iterable* " "and all values set to *value*, defaulting to ``None``." msgstr "" -#: ../../whatsnew/2.3.rst:1029 msgid "(Patches contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1031 msgid "" "Also, the :func:`dict` constructor now accepts keyword arguments to simplify " "creating small dictionaries::" msgstr "" -#: ../../whatsnew/2.3.rst:1034 msgid "" ">>> dict(red=1, blue=2, green=3, black=4)\n" "{'blue': 2, 'black': 4, 'green': 3, 'red': 1}" msgstr "" -#: ../../whatsnew/2.3.rst:1037 msgid "(Contributed by Just van Rossum.)" msgstr "" -#: ../../whatsnew/2.3.rst:1039 msgid "" "The :keyword:`assert` statement no longer checks the ``__debug__`` flag, so " "you can no longer disable assertions by assigning to ``__debug__``. Running " @@ -1490,16 +1294,14 @@ msgid "" "execute any assertions." msgstr "" -#: ../../whatsnew/2.3.rst:1044 msgid "" "Most type objects are now callable, so you can use them to create new " -"objects such as functions, classes, and modules. (This means that " -"the :mod:`!new` module can be deprecated in a future Python version, because " -"you can now use the type objects available in the :mod:`types` module.) For " -"example, you can create a new module object with the following code:" +"objects such as functions, classes, and modules. (This means that the :mod:" +"`!new` module can be deprecated in a future Python version, because you can " +"now use the type objects available in the :mod:`types` module.) For example, " +"you can create a new module object with the following code:" msgstr "" -#: ../../whatsnew/2.3.rst:1052 msgid "" ">>> import types\n" ">>> m = types.ModuleType('abc','docstring')\n" @@ -1509,31 +1311,27 @@ msgid "" "'docstring'" msgstr "" -#: ../../whatsnew/2.3.rst:1059 msgid "" "A new warning, :exc:`PendingDeprecationWarning` was added to indicate " "features which are in the process of being deprecated. The warning will " "*not* be printed by default. To check for use of features that will be " -"deprecated in the future, supply :option:`-" -"Walways::PendingDeprecationWarning:: <-W>` on the command line or " -"use :func:`warnings.filterwarnings`." +"deprecated in the future, supply :option:`-Walways::" +"PendingDeprecationWarning:: <-W>` on the command line or use :func:`warnings." +"filterwarnings`." msgstr "" -#: ../../whatsnew/2.3.rst:1065 msgid "" "The process of deprecating string-based exceptions, as in ``raise \"Error " -"occurred\"``, has begun. Raising a string will now " -"trigger :exc:`PendingDeprecationWarning`." +"occurred\"``, has begun. Raising a string will now trigger :exc:" +"`PendingDeprecationWarning`." msgstr "" -#: ../../whatsnew/2.3.rst:1069 msgid "" "Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " "warning. In a future version of Python, ``None`` may finally become a " "keyword." msgstr "" -#: ../../whatsnew/2.3.rst:1072 msgid "" "The :meth:`!xreadlines` method of file objects, introduced in Python 2.1, is " "no longer necessary because files now behave as their own iterator. :meth:`!" @@ -1544,7 +1342,6 @@ msgid "" "automatically converted to bytes using the given encoding." msgstr "" -#: ../../whatsnew/2.3.rst:1080 msgid "" "The method resolution order used by new-style classes has changed, though " "you'll only notice the difference if you have a really complicated " @@ -1559,7 +1356,6 @@ msgid "" "out the problem and also implemented the fix by coding the C3 algorithm." msgstr "" -#: ../../whatsnew/2.3.rst:1093 msgid "" "Python runs multithreaded programs by switching between threads after " "executing N bytecodes. The default value for N has been increased from 10 " @@ -1570,7 +1366,6 @@ msgid "" "the new :func:`!sys.getcheckinterval` function." msgstr "" -#: ../../whatsnew/2.3.rst:1101 msgid "" "One minor but far-reaching change is that the names of extension types " "defined by the modules included with Python now contain the module and a " @@ -1578,38 +1373,32 @@ msgid "" "created a socket and printed its :attr:`!__class__`, you'd get this output::" msgstr "" -#: ../../whatsnew/2.3.rst:1106 msgid "" ">>> s = socket.socket()\n" ">>> s.__class__\n" "" msgstr "" -#: ../../whatsnew/2.3.rst:1110 msgid "In 2.3, you get this::" msgstr "" -#: ../../whatsnew/2.3.rst:1112 msgid "" ">>> s.__class__\n" "" msgstr "" -#: ../../whatsnew/2.3.rst:1115 msgid "" "One of the noted incompatibilities between old- and new-style classes has " -"been removed: you can now assign to the :attr:`~type.__name__` " -"and :attr:`~type.__bases__` attributes of new-style classes. There are some " +"been removed: you can now assign to the :attr:`~type.__name__` and :attr:" +"`~type.__bases__` attributes of new-style classes. There are some " "restrictions on what can be assigned to :attr:`!__bases__` along the lines " "of those relating to assigning to an instance's :attr:`~object.__class__` " "attribute." msgstr "" -#: ../../whatsnew/2.3.rst:1125 msgid "String Changes" msgstr "" -#: ../../whatsnew/2.3.rst:1127 msgid "" "The :keyword:`in` operator now works differently for strings. Previously, " "when evaluating ``X in Y`` where *X* and *Y* are strings, *X* could only be " @@ -1618,7 +1407,6 @@ msgid "" "*X* is the empty string, the result is always :const:`True`. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1133 msgid "" ">>> 'ab' in 'abcd'\n" "True\n" @@ -1628,20 +1416,17 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/2.3.rst:1140 msgid "" "Note that this doesn't tell you where the substring starts; if you need that " "information, use the :meth:`~str.find` string method." msgstr "" -#: ../../whatsnew/2.3.rst:1143 msgid "" "The :meth:`~str.strip`, :meth:`~str.lstrip`, and :meth:`~str.rstrip` string " "methods now have an optional argument for specifying the characters to " "strip. The default is still to remove all whitespace characters::" msgstr "" -#: ../../whatsnew/2.3.rst:1147 msgid "" ">>> ' abc '.strip()\n" "'abc'\n" @@ -1654,17 +1439,14 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:1157 msgid "(Suggested by Simon Brunning and implemented by Walter Dörwald.)" msgstr "" -#: ../../whatsnew/2.3.rst:1159 msgid "" "The :meth:`~str.startswith` and :meth:`~str.endswith` string methods now " "accept negative numbers for the *start* and *end* parameters." msgstr "" -#: ../../whatsnew/2.3.rst:1162 msgid "" "Another new string method is :meth:`~str.zfill`, originally a function in " "the :mod:`string` module. :meth:`~str.zfill` pads a numeric string with " @@ -1672,7 +1454,6 @@ msgid "" "operator is still more flexible and powerful than :meth:`~str.zfill`. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1167 msgid "" ">>> '45'.zfill(4)\n" "'0045'\n" @@ -1682,11 +1463,9 @@ msgid "" "'0goofy'" msgstr "" -#: ../../whatsnew/2.3.rst:1174 msgid "(Contributed by Walter Dörwald.)" msgstr "" -#: ../../whatsnew/2.3.rst:1176 msgid "" "A new type object, :class:`!basestring`, has been added. Both 8-bit strings " "and Unicode strings inherit from this type, so ``isinstance(obj, " @@ -1694,30 +1473,25 @@ msgid "" "completely abstract type, so you can't create :class:`!basestring` instances." msgstr "" -#: ../../whatsnew/2.3.rst:1181 msgid "" "Interned strings are no longer immortal and will now be garbage-collected in " "the usual way when the only reference to them is from the internal " "dictionary of interned strings. (Implemented by Oren Tirosh.)" msgstr "" -#: ../../whatsnew/2.3.rst:1189 msgid "Optimizations" msgstr "" -#: ../../whatsnew/2.3.rst:1191 msgid "" "The creation of new-style class instances has been made much faster; they're " "now faster than classic classes!" msgstr "" -#: ../../whatsnew/2.3.rst:1194 msgid "" "The :meth:`~list.sort` method of list objects has been extensively rewritten " "by Tim Peters, and the implementation is significantly faster." msgstr "" -#: ../../whatsnew/2.3.rst:1197 msgid "" "Multiplication of large long integers is now much faster thanks to an " "implementation of Karatsuba multiplication, an algorithm that scales better " @@ -1726,22 +1500,18 @@ msgid "" "reworked by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.3.rst:1202 msgid "" "The ``SET_LINENO`` opcode is now gone. This may provide a small speed " -"increase, depending on your compiler's idiosyncrasies. See " -"section :ref:`23section-other` for a longer explanation. (Removed by Michael " -"Hudson.)" +"increase, depending on your compiler's idiosyncrasies. See section :ref:" +"`23section-other` for a longer explanation. (Removed by Michael Hudson.)" msgstr "" -#: ../../whatsnew/2.3.rst:1206 msgid "" ":func:`!xrange` objects now have their own iterator, making ``for i in " "xrange(n)`` slightly faster than ``for i in range(n)``. (Patch by Raymond " "Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1210 msgid "" "A number of small rearrangements have been made in various hotspots to " "improve performance, such as inlining a function or removing some code. " @@ -1749,17 +1519,14 @@ msgid "" "changes.)" msgstr "" -#: ../../whatsnew/2.3.rst:1214 msgid "" "The net result of the 2.3 optimizations is that Python 2.3 runs the pystone " "benchmark around 25% faster than Python 2.2." msgstr "" -#: ../../whatsnew/2.3.rst:1221 msgid "New, Improved, and Deprecated Modules" msgstr "" -#: ../../whatsnew/2.3.rst:1223 msgid "" "As usual, Python's standard library received a number of enhancements and " "bug fixes. Here's a partial list of the most notable changes, sorted " @@ -1768,7 +1535,6 @@ msgid "" "logs for all the details." msgstr "" -#: ../../whatsnew/2.3.rst:1228 msgid "" "The :mod:`array` module now supports arrays of Unicode characters using the " "``'u'`` format character. Arrays also now support using the ``+=`` " @@ -1776,14 +1542,12 @@ msgid "" "assignment operator to repeat an array. (Contributed by Jason Orendorff.)" msgstr "" -#: ../../whatsnew/2.3.rst:1233 msgid "" "The :mod:`!bsddb` module has been replaced by version 4.1.6 of the `PyBSDDB " "`_ package, providing a more complete " "interface to the transactional features of the BerkeleyDB library." msgstr "" -#: ../../whatsnew/2.3.rst:1237 msgid "" "The old version of the module has been renamed to :mod:`!bsddb185` and is " "no longer built automatically; you'll have to edit :file:`Modules/Setup` to " @@ -1792,28 +1556,24 @@ msgid "" "incompatibilities. When upgrading to Python 2.3, if the new interpreter is " "compiled with a new version of the underlying BerkeleyDB library, you will " "almost certainly have to convert your database files to the new version. " -"You can do this fairly easily with the new scripts :file:`db2pickle.py` " -"and :file:`pickle2db.py` which you will find in the " -"distribution's :file:`Tools/scripts` directory. If you've already been " -"using the PyBSDDB package and importing it as :mod:`!bsddb3`, you will have " -"to change your ``import`` statements to import it as :mod:`!bsddb`." +"You can do this fairly easily with the new scripts :file:`db2pickle.py` and :" +"file:`pickle2db.py` which you will find in the distribution's :file:`Tools/" +"scripts` directory. If you've already been using the PyBSDDB package and " +"importing it as :mod:`!bsddb3`, you will have to change your ``import`` " +"statements to import it as :mod:`!bsddb`." msgstr "" -#: ../../whatsnew/2.3.rst:1249 msgid "" "The new :mod:`bz2` module is an interface to the bz2 data compression " -"library. bz2-compressed data is usually smaller than " -"corresponding :mod:`zlib`\\ -compressed data. (Contributed by Gustavo " -"Niemeyer.)" +"library. bz2-compressed data is usually smaller than corresponding :mod:" +"`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" msgstr "" -#: ../../whatsnew/2.3.rst:1253 msgid "" "A set of standard date/time types has been added in the new :mod:`datetime` " "module. See the following section for more details." msgstr "" -#: ../../whatsnew/2.3.rst:1256 msgid "" "The Distutils :class:`!Extension` class now supports an extra constructor " "argument named *depends* for listing additional source files that an " @@ -1823,52 +1583,45 @@ msgid "" "Extension` object like this::" msgstr "" -#: ../../whatsnew/2.3.rst:1263 msgid "" "ext = Extension(\"samp\",\n" " sources=[\"sampmodule.c\"],\n" " depends=[\"sample.h\"])" msgstr "" -#: ../../whatsnew/2.3.rst:1267 msgid "" "Modifying :file:`sample.h` would then cause the module to be recompiled. " "(Contributed by Jeremy Hylton.)" msgstr "" -#: ../../whatsnew/2.3.rst:1270 msgid "" -"Other minor changes to Distutils: it now checks for " -"the :envvar:`CC`, :envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS`, " -"and :envvar:`CPPFLAGS` environment variables, using them to override the " -"settings in Python's configuration (contributed by Robert Weber)." +"Other minor changes to Distutils: it now checks for the :envvar:`CC`, :" +"envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS`, and :envvar:`CPPFLAGS` " +"environment variables, using them to override the settings in Python's " +"configuration (contributed by Robert Weber)." msgstr "" -#: ../../whatsnew/2.3.rst:1275 msgid "" "Previously the :mod:`doctest` module would only search the docstrings of " "public methods and functions for test cases, but it now also examines " -"private ones as well. The :func:`~doctest.DocTestSuite` function creates " -"a :class:`unittest.TestSuite` object from a set of :mod:`doctest` tests." +"private ones as well. The :func:`~doctest.DocTestSuite` function creates a :" +"class:`unittest.TestSuite` object from a set of :mod:`doctest` tests." msgstr "" -#: ../../whatsnew/2.3.rst:1280 msgid "" "The new ``gc.get_referents(object)`` function returns a list of all the " "objects referenced by *object*." msgstr "" -#: ../../whatsnew/2.3.rst:1283 msgid "" "The :mod:`getopt` module gained a new function, :func:`~getopt.gnu_getopt`, " "that supports the same arguments as the existing :func:`~getopt.getopt` " -"function but uses GNU-style scanning mode. The " -"existing :func:`~getopt.getopt` stops processing options as soon as a non-" -"option argument is encountered, but in GNU-style mode processing continues, " -"meaning that options and arguments can be mixed. For example::" +"function but uses GNU-style scanning mode. The existing :func:`~getopt." +"getopt` stops processing options as soon as a non-option argument is " +"encountered, but in GNU-style mode processing continues, meaning that " +"options and arguments can be mixed. For example::" msgstr "" -#: ../../whatsnew/2.3.rst:1289 msgid "" ">>> getopt.getopt(['-f', 'filename', 'output', '-v'], 'f:v')\n" "([('-f', 'filename')], ['output', '-v'])\n" @@ -1876,17 +1629,14 @@ msgid "" "([('-f', 'filename'), ('-v', '')], ['output'])" msgstr "" -#: ../../whatsnew/2.3.rst:1294 msgid "(Contributed by Peter Åstrand.)" msgstr "" -#: ../../whatsnew/2.3.rst:1296 msgid "" "The :mod:`grp`, :mod:`pwd`, and :mod:`resource` modules now return enhanced " "tuples::" msgstr "" -#: ../../whatsnew/2.3.rst:1299 msgid "" ">>> import grp\n" ">>> g = grp.getgrnam('amk')\n" @@ -1894,11 +1644,9 @@ msgid "" "('amk', 500)" msgstr "" -#: ../../whatsnew/2.3.rst:1304 msgid "The :mod:`gzip` module can now handle files exceeding 2 GiB." msgstr "" -#: ../../whatsnew/2.3.rst:1306 msgid "" "The new :mod:`heapq` module contains an implementation of a heap queue " "algorithm. A heap is an array-like data structure that keeps items in a " @@ -1910,15 +1658,13 @@ msgid "" "structure.)" msgstr "" -#: ../../whatsnew/2.3.rst:1314 msgid "" -"The :mod:`heapq` module provides :func:`~heapq.heappush` " -"and :func:`~heapq.heappop` functions for adding and removing items while " -"maintaining the heap property on top of some other mutable Python sequence " -"type. Here's an example that uses a Python list::" +"The :mod:`heapq` module provides :func:`~heapq.heappush` and :func:`~heapq." +"heappop` functions for adding and removing items while maintaining the heap " +"property on top of some other mutable Python sequence type. Here's an " +"example that uses a Python list::" msgstr "" -#: ../../whatsnew/2.3.rst:1318 msgid "" ">>> import heapq\n" ">>> heap = []\n" @@ -1935,11 +1681,9 @@ msgid "" "[5, 7, 11]" msgstr "" -#: ../../whatsnew/2.3.rst:1332 msgid "(Contributed by Kevin O'Connor.)" msgstr "" -#: ../../whatsnew/2.3.rst:1334 msgid "" "The IDLE integrated development environment has been updated using the code " "from the IDLEfork project (https://idlefork.sourceforge.net). The most " @@ -1949,13 +1693,11 @@ msgid "" "as the :mod:`idlelib` package." msgstr "" -#: ../../whatsnew/2.3.rst:1340 msgid "" "The :mod:`imaplib` module now supports IMAP over SSL. (Contributed by Piers " "Lauder and Tino Lange.)" msgstr "" -#: ../../whatsnew/2.3.rst:1343 msgid "" "The :mod:`itertools` contains a number of useful functions for use with " "iterators, inspired by various functions provided by the ML and Haskell " @@ -1967,7 +1709,6 @@ msgid "" "Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1352 msgid "" "Two new functions in the :mod:`math` module, ``degrees(rads)`` and " "``radians(degs)``, convert between radians and degrees. Other functions in " @@ -1978,7 +1719,6 @@ msgid "" "Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1359 msgid "" "Several new POSIX functions (:func:`!getpgid`, :func:`!killpg`, :func:`!" "lchown`, :func:`!loadavg`, :func:`!major`, :func:`!makedev`, :func:`!minor`, " @@ -1987,24 +1727,21 @@ msgid "" "Denis S. Otkidach.)" msgstr "" -#: ../../whatsnew/2.3.rst:1365 msgid "" "In the :mod:`os` module, the :func:`!\\*stat` family of functions can now " "report fractions of a second in a timestamp. Such time stamps are " "represented as floats, similar to the value returned by :func:`time.time`." msgstr "" -#: ../../whatsnew/2.3.rst:1369 msgid "" "During testing, it was found that some applications will break if time " "stamps are floats. For compatibility, when using the tuple interface of " "the :class:`~os.stat_result` time stamps will be represented as integers. " "When using named fields (a feature first introduced in Python 2.2), time " -"stamps are still represented as integers, unless :func:`!" -"os.stat_float_times` is invoked to enable float return values::" +"stamps are still represented as integers, unless :func:`!os." +"stat_float_times` is invoked to enable float return values::" msgstr "" -#: ../../whatsnew/2.3.rst:1376 msgid "" ">>> os.stat(\"/tmp\").st_mtime\n" "1034791200\n" @@ -2013,11 +1750,9 @@ msgid "" "1034791200.6335014" msgstr "" -#: ../../whatsnew/2.3.rst:1382 msgid "In Python 2.4, the default will change to always returning floats." msgstr "" -#: ../../whatsnew/2.3.rst:1384 msgid "" "Application developers should enable this feature only if all their " "libraries work properly when confronted with floating-point time stamps, or " @@ -2025,7 +1760,6 @@ msgid "" "application level instead of trying to enable it on a per-use basis." msgstr "" -#: ../../whatsnew/2.3.rst:1389 msgid "" "The :mod:`optparse` module contains a new parser for command-line arguments " "that can convert option values to a particular Python type and will " @@ -2033,7 +1767,6 @@ msgid "" "details." msgstr "" -#: ../../whatsnew/2.3.rst:1394 msgid "" "The old and never-documented :mod:`!linuxaudiodev` module has been " "deprecated, and a new version named :mod:`!ossaudiodev` has been added. The " @@ -2042,7 +1775,6 @@ msgid "" "date in various ways. (Contributed by Greg Ward and Nicholas FitzRoy-Dale.)" msgstr "" -#: ../../whatsnew/2.3.rst:1400 msgid "" "The new :mod:`platform` module contains a number of functions that try to " "determine various properties of the platform you're running on. There are " @@ -2050,16 +1782,14 @@ msgid "" "and even the Linux distribution version. (Contributed by Marc-André Lemburg.)" msgstr "" -#: ../../whatsnew/2.3.rst:1405 msgid "" "The parser objects provided by the :mod:`pyexpat ` module " "can now optionally buffer character data, resulting in fewer calls to your " "character data handler and therefore faster performance. Setting the parser " -"object's :attr:`~xml.parsers.expat.xmlparser.buffer_text` attribute " -"to :const:`True` will enable buffering." +"object's :attr:`~xml.parsers.expat.xmlparser.buffer_text` attribute to :" +"const:`True` will enable buffering." msgstr "" -#: ../../whatsnew/2.3.rst:1410 msgid "" "The ``sample(population, k)`` function was added to the :mod:`random` " "module. *population* is a sequence or :class:`!xrange` object containing " @@ -2068,7 +1798,6 @@ msgid "" "any value up to ``len(population)``. For example::" msgstr "" -#: ../../whatsnew/2.3.rst:1416 msgid "" ">>> days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'St', 'Sn']\n" ">>> random.sample(days, 3) # Choose 3 elements\n" @@ -2088,25 +1817,21 @@ msgid "" "[3407, 3805, 1505, 7023, 2401, 2267, 9733, 3151, 8083, 9195]" msgstr "" -#: ../../whatsnew/2.3.rst:1432 msgid "" "The :mod:`random` module now uses a new algorithm, the Mersenne Twister, " "implemented in C. It's faster and more extensively studied than the " "previous algorithm." msgstr "" -#: ../../whatsnew/2.3.rst:1436 msgid "(All changes contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1438 msgid "" -"The :mod:`readline` module also gained a number of new " -"functions: :func:`~readline.get_history_item`, :func:`~readline.get_current_history_length`, " +"The :mod:`readline` module also gained a number of new functions: :func:" +"`~readline.get_history_item`, :func:`~readline.get_current_history_length`, " "and :func:`~readline.redisplay`." msgstr "" -#: ../../whatsnew/2.3.rst:1442 msgid "" "The :mod:`!rexec` and :mod:`!Bastion` modules have been declared dead, and " "attempts to import them will fail with a :exc:`RuntimeError`. New-style " @@ -2116,34 +1841,29 @@ msgid "" "rewrite them to use something else." msgstr "" -#: ../../whatsnew/2.3.rst:1448 msgid "" "(Sticking with Python 2.2 or 2.1 will not make your applications any safer " "because there are known bugs in the :mod:`!rexec` module in those versions. " "To repeat: if you're using :mod:`!rexec`, stop using it immediately.)" msgstr "" -#: ../../whatsnew/2.3.rst:1452 msgid "" "The :mod:`!rotor` module has been deprecated because the algorithm it uses " "for encryption is not believed to be secure. If you need encryption, use " "one of the several AES Python modules that are available separately." msgstr "" -#: ../../whatsnew/2.3.rst:1456 msgid "" "The :mod:`shutil` module gained a ``move(src, dest)`` function that " "recursively moves a file or directory to a new location." msgstr "" -#: ../../whatsnew/2.3.rst:1459 msgid "" -"Support for more advanced POSIX signal handling was added to " -"the :mod:`signal` but then removed again as it proved impossible to make it " -"work reliably across platforms." +"Support for more advanced POSIX signal handling was added to the :mod:" +"`signal` but then removed again as it proved impossible to make it work " +"reliably across platforms." msgstr "" -#: ../../whatsnew/2.3.rst:1463 msgid "" "The :mod:`socket` module now supports timeouts. You can call the " "``settimeout(t)`` method on a socket object to set a timeout of *t* seconds. " @@ -2151,7 +1871,6 @@ msgid "" "will abort and raise a :exc:`socket.timeout` exception." msgstr "" -#: ../../whatsnew/2.3.rst:1468 msgid "" "The original timeout implementation was by Tim O'Malley. Michael Gilfix " "integrated it into the Python :mod:`socket` module and shepherded it through " @@ -2160,37 +1879,32 @@ msgid "" "in action.)" msgstr "" -#: ../../whatsnew/2.3.rst:1474 msgid "" "On Windows, the :mod:`socket` module now ships with Secure Sockets Layer " "(SSL) support." msgstr "" -#: ../../whatsnew/2.3.rst:1477 msgid "" "The value of the C :c:macro:`!PYTHON_API_VERSION` macro is now exposed at " "the Python level as ``sys.api_version``. The current exception can be " "cleared by calling the new :func:`!sys.exc_clear` function." msgstr "" -#: ../../whatsnew/2.3.rst:1481 msgid "" -"The new :mod:`tarfile` module allows reading from and writing " -"to :program:`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" +"The new :mod:`tarfile` module allows reading from and writing to :program:" +"`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" msgstr "" -#: ../../whatsnew/2.3.rst:1484 msgid "" "The new :mod:`textwrap` module contains functions for wrapping strings " "containing paragraphs of text. The ``wrap(text, width)`` function takes a " "string and returns a list containing the text split into lines of no more " "than the chosen width. The ``fill(text, width)`` function returns a single " "string, reformatted to fit into lines no longer than the chosen width. (As " -"you can guess, :func:`~textwrap.fill` is built on top " -"of :func:`~textwrap.wrap`. For example::" +"you can guess, :func:`~textwrap.fill` is built on top of :func:`~textwrap." +"wrap`. For example::" msgstr "" -#: ../../whatsnew/2.3.rst:1491 msgid "" ">>> import textwrap\n" ">>> paragraph = \"Not a whit, we defy augury: ... more text ...\"\n" @@ -2208,27 +1922,24 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:1506 msgid "" "The module also contains a :class:`~textwrap.TextWrapper` class that " -"actually implements the text wrapping strategy. Both " -"the :class:`~textwrap.TextWrapper` class and the :func:`~textwrap.wrap` " -"and :func:`~textwrap.fill` functions support a number of additional keyword " -"arguments for fine-tuning the formatting; consult the module's documentation " -"for details. (Contributed by Greg Ward.)" +"actually implements the text wrapping strategy. Both the :class:`~textwrap." +"TextWrapper` class and the :func:`~textwrap.wrap` and :func:`~textwrap.fill` " +"functions support a number of additional keyword arguments for fine-tuning " +"the formatting; consult the module's documentation for details. (Contributed " +"by Greg Ward.)" msgstr "" -#: ../../whatsnew/2.3.rst:1512 msgid "" -"The :mod:`!thread` and :mod:`threading` modules now have companion " -"modules, :mod:`!dummy_thread` and :mod:`!dummy_threading`, that provide a do-" -"nothing implementation of the :mod:`!thread` module's interface for " -"platforms where threads are not supported. The intention is to simplify " -"thread-aware modules (ones that *don't* rely on threads to run) by putting " -"the following code at the top::" +"The :mod:`!thread` and :mod:`threading` modules now have companion modules, :" +"mod:`!dummy_thread` and :mod:`!dummy_threading`, that provide a do-nothing " +"implementation of the :mod:`!thread` module's interface for platforms where " +"threads are not supported. The intention is to simplify thread-aware " +"modules (ones that *don't* rely on threads to run) by putting the following " +"code at the top::" msgstr "" -#: ../../whatsnew/2.3.rst:1519 msgid "" "try:\n" " import threading as _threading\n" @@ -2236,19 +1947,16 @@ msgid "" " import dummy_threading as _threading" msgstr "" -#: ../../whatsnew/2.3.rst:1524 msgid "" "In this example, :mod:`!_threading` is used as the module name to make it " -"clear that the module being used is not necessarily the " -"actual :mod:`threading` module. Code can call functions and use classes " -"in :mod:`!_threading` whether or not threads are supported, avoiding " -"an :keyword:`if` statement and making the code slightly clearer. This " -"module will not magically make multithreaded code run without threads; code " -"that waits for another thread to return or to do something will simply hang " -"forever." +"clear that the module being used is not necessarily the actual :mod:" +"`threading` module. Code can call functions and use classes in :mod:`!" +"_threading` whether or not threads are supported, avoiding an :keyword:`if` " +"statement and making the code slightly clearer. This module will not " +"magically make multithreaded code run without threads; code that waits for " +"another thread to return or to do something will simply hang forever." msgstr "" -#: ../../whatsnew/2.3.rst:1532 msgid "" "The :mod:`time` module's :func:`~time.strptime` function has long been an " "annoyance because it uses the platform C library's :func:`~time.strptime` " @@ -2257,7 +1965,6 @@ msgid "" "and should behave identically on all platforms." msgstr "" -#: ../../whatsnew/2.3.rst:1538 msgid "" "The new :mod:`timeit` module helps measure how long snippets of Python code " "take to execute. The :file:`timeit.py` file can be run directly from the " @@ -2267,7 +1974,6 @@ msgid "" "string to it or by using the :func:`!unicode` function::" msgstr "" -#: ../../whatsnew/2.3.rst:1545 msgid "" "import timeit\n" "\n" @@ -2283,13 +1989,11 @@ msgid "" "# [0.17574405670166016, 0.18193507194519043, 0.17565798759460449]" msgstr "" -#: ../../whatsnew/2.3.rst:1558 msgid "" "The :mod:`!Tix` module has received various bug fixes and updates for the " "current version of the Tix package." msgstr "" -#: ../../whatsnew/2.3.rst:1561 msgid "" "The :mod:`!Tkinter` module now works with a thread-enabled version of Tcl. " "Tcl's threading model requires that widgets only be accessed from the thread " @@ -2299,12 +2003,11 @@ msgid "" "a command, passing it to the correct thread, and waiting for the results. " "Other interfaces can't be handled automatically but :mod:`!Tkinter` will now " "raise an exception on such an access so that you can at least find out about " -"the problem. See https://mail.python.org/pipermail/python-dev/2002-December/" -"031107.html for a more detailed explanation of this change. (Implemented by " -"Martin von Löwis.)" +"the problem. See https://mail.python.org/pipermail/python-dev/2002-" +"December/031107.html for a more detailed explanation of this change. " +"(Implemented by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.3.rst:1572 msgid "" "Calling Tcl methods through :mod:`!_tkinter` no longer returns only " "strings. Instead, if Tcl returns other objects those objects are converted " @@ -2314,7 +2017,6 @@ msgid "" "objects." msgstr "" -#: ../../whatsnew/2.3.rst:1578 msgid "" "When using :mod:`!_tkinter` through the :mod:`!Tkinter` module (as most " "Tkinter applications will), this feature is always activated. It should not " @@ -2322,24 +2024,20 @@ msgid "" "results to Python types where possible." msgstr "" -#: ../../whatsnew/2.3.rst:1583 msgid "" "If any incompatibilities are found, the old behavior can be restored by " "setting the :attr:`!wantobjects` variable in the :mod:`!Tkinter` module to " "false before creating the first :class:`!tkapp` object. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1587 msgid "" "import Tkinter\n" "Tkinter.wantobjects = 0" msgstr "" -#: ../../whatsnew/2.3.rst:1590 msgid "Any breakage caused by this change should be reported as a bug." msgstr "" -#: ../../whatsnew/2.3.rst:1592 msgid "" "The :mod:`!UserDict` module has a new :class:`!DictMixin` class which " "defines all dictionary methods for classes that already have a minimum " @@ -2348,15 +2046,12 @@ msgid "" "module." msgstr "" -#: ../../whatsnew/2.3.rst:1598 msgid "" "Adding the mix-in as a superclass provides the full dictionary interface " -"whenever the class " -"defines :meth:`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__delitem__`, " -"and :meth:`!keys`. For example::" +"whenever the class defines :meth:`~object.__getitem__`, :meth:`~object." +"__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`. For example::" msgstr "" -#: ../../whatsnew/2.3.rst:1602 msgid "" ">>> import UserDict\n" ">>> class SeqDict(UserDict.DictMixin):\n" @@ -2396,19 +2091,16 @@ msgid "" " 'setdefault', 'update', 'valuelist', 'values']" msgstr "" -#: ../../whatsnew/2.3.rst:1639 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.3.rst:1641 msgid "" "The DOM implementation in :mod:`xml.dom.minidom` can now generate XML output " -"in a particular encoding by providing an optional encoding argument to " -"the :meth:`~xml.dom.minidom.Node.toxml` " -"and :meth:`~xml.dom.minidom.Node.toprettyxml` methods of DOM nodes." +"in a particular encoding by providing an optional encoding argument to the :" +"meth:`~xml.dom.minidom.Node.toxml` and :meth:`~xml.dom.minidom.Node." +"toprettyxml` methods of DOM nodes." msgstr "" -#: ../../whatsnew/2.3.rst:1645 msgid "" "The :mod:`!xmlrpclib` module now supports an XML-RPC extension for handling " "nil data values such as Python's ``None``. Nil values are always supported " @@ -2417,7 +2109,6 @@ msgid "" "creating a :class:`!Marshaller` instance." msgstr "" -#: ../../whatsnew/2.3.rst:1651 msgid "" "The new :mod:`!DocXMLRPCServer` module allows writing self-documenting XML-" "RPC servers. Run it in demo mode (as a program) to see it in action. " @@ -2426,20 +2117,17 @@ msgid "" "methods. (Contributed by Brian Quinlan.)" msgstr "" -#: ../../whatsnew/2.3.rst:1657 msgid "" "Support for internationalized domain names (RFCs 3454, 3490, 3491, and 3492) " "has been added. The \"idna\" encoding can be used to convert between a " "Unicode domain name and the ASCII-compatible encoding (ACE) of that name. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1661 msgid "" ">{}>{}> u\"www.Alliancefrançaise.nu\".encode(\"idna\")\n" "'www.xn--alliancefranaise-npb.nu'" msgstr "" -#: ../../whatsnew/2.3.rst:1664 msgid "" "The :mod:`socket` module has also been extended to transparently convert " "Unicode hostnames to the ACE version before passing them to the C library. " @@ -2450,50 +2138,43 @@ msgid "" "URL is ASCII only." msgstr "" -#: ../../whatsnew/2.3.rst:1672 msgid "" "To implement this change, the :mod:`stringprep` module, the " "``mkstringprep`` tool and the ``punycode`` encoding have been added." msgstr "" -#: ../../whatsnew/2.3.rst:1679 msgid "Date/Time Type" msgstr "" -#: ../../whatsnew/2.3.rst:1681 msgid "" -"Date and time types suitable for expressing timestamps were added as " -"the :mod:`datetime` module. The types don't support different calendars or " -"many fancy features, and just stick to the basics of representing time." +"Date and time types suitable for expressing timestamps were added as the :" +"mod:`datetime` module. The types don't support different calendars or many " +"fancy features, and just stick to the basics of representing time." msgstr "" -#: ../../whatsnew/2.3.rst:1685 msgid "" "The three primary types are: :class:`~datetime.date`, representing a day, " "month, and year; :class:`~datetime.time`, consisting of hour, minute, and " "second; and :class:`~datetime.datetime`, which contains all the attributes " -"of both :class:`~datetime.date` and :class:`~datetime.time`. There's also " -"a :class:`~datetime.timedelta` class representing differences between two " +"of both :class:`~datetime.date` and :class:`~datetime.time`. There's also a :" +"class:`~datetime.timedelta` class representing differences between two " "points in time, and time zone logic is implemented by classes inheriting " "from the abstract :class:`~datetime.tzinfo` class." msgstr "" -#: ../../whatsnew/2.3.rst:1692 msgid "" -"You can create instances of :class:`~datetime.date` " -"and :class:`~datetime.time` by either supplying keyword arguments to the " -"appropriate constructor, e.g. ``datetime.date(year=1972, month=10, " -"day=15)``, or by using one of a number of class methods. For example, " -"the :meth:`~datetime.date.today` class method returns the current local date." +"You can create instances of :class:`~datetime.date` and :class:`~datetime." +"time` by either supplying keyword arguments to the appropriate constructor, " +"e.g. ``datetime.date(year=1972, month=10, day=15)``, or by using one of a " +"number of class methods. For example, the :meth:`~datetime.date.today` " +"class method returns the current local date." msgstr "" -#: ../../whatsnew/2.3.rst:1698 msgid "" "Once created, instances of the date/time classes are all immutable. There " "are a number of methods for producing formatted strings from objects::" msgstr "" -#: ../../whatsnew/2.3.rst:1701 msgid "" ">>> import datetime\n" ">>> now = datetime.datetime.now()\n" @@ -2505,14 +2186,12 @@ msgid "" "'2002 30 Dec'" msgstr "" -#: ../../whatsnew/2.3.rst:1710 msgid "" "The :meth:`~datetime.datetime.replace` method allows modifying one or more " "fields of a :class:`~datetime.date` or :class:`~datetime.datetime` " "instance, returning a new instance::" msgstr "" -#: ../../whatsnew/2.3.rst:1713 msgid "" ">>> d = datetime.datetime.now()\n" ">>> d\n" @@ -2522,28 +2201,24 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.3.rst:1720 msgid "" "Instances can be compared, hashed, and converted to strings (the result is " -"the same as that " -"of :meth:`~datetime.datetime.isoformat`). :class:`~datetime.date` " -"and :class:`~datetime.datetime` instances can be subtracted from each other, " -"and added to :class:`~datetime.timedelta` instances. The largest missing " -"feature is that there's no standard library support for parsing strings and " -"getting back a :class:`~datetime.date` or :class:`~datetime.datetime`." +"the same as that of :meth:`~datetime.datetime.isoformat`). :class:" +"`~datetime.date` and :class:`~datetime.datetime` instances can be subtracted " +"from each other, and added to :class:`~datetime.timedelta` instances. The " +"largest missing feature is that there's no standard library support for " +"parsing strings and getting back a :class:`~datetime.date` or :class:" +"`~datetime.datetime`." msgstr "" -#: ../../whatsnew/2.3.rst:1727 msgid "" "For more information, refer to the module's reference documentation. " "(Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.3.rst:1734 msgid "The optparse Module" msgstr "" -#: ../../whatsnew/2.3.rst:1736 msgid "" "The :mod:`getopt` module provides simple parsing of command-line arguments. " "The new :mod:`optparse` module (originally named Optik) provides more " @@ -2552,13 +2227,11 @@ msgid "" "different actions for different options." msgstr "" -#: ../../whatsnew/2.3.rst:1742 msgid "" "You start by creating an instance of :class:`~optparse.OptionParser` and " "telling it what your program's options are. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1745 msgid "" "import sys\n" "from optparse import OptionParser\n" @@ -2572,32 +2245,27 @@ msgid "" " help='set maximum length of output')" msgstr "" -#: ../../whatsnew/2.3.rst:1756 msgid "" -"Parsing a command line is then done by calling " -"the :meth:`~optparse.OptionParser.parse_args` method. ::" +"Parsing a command line is then done by calling the :meth:`~optparse." +"OptionParser.parse_args` method. ::" msgstr "" -#: ../../whatsnew/2.3.rst:1758 msgid "" "options, args = op.parse_args(sys.argv[1:])\n" "print options\n" "print args" msgstr "" -#: ../../whatsnew/2.3.rst:1762 msgid "" "This returns an object containing all of the option values, and a list of " "strings containing the remaining arguments." msgstr "" -#: ../../whatsnew/2.3.rst:1765 msgid "" "Invoking the script with the various arguments now works as you'd expect it " "to. Note that the length argument is automatically converted to an integer." msgstr "" -#: ../../whatsnew/2.3.rst:1768 msgid "" "$ ./python opt.py -i data arg1\n" "\n" @@ -2608,11 +2276,9 @@ msgid "" "$" msgstr "" -#: ../../whatsnew/2.3.rst:1778 msgid "The help message is automatically generated for you:" msgstr "" -#: ../../whatsnew/2.3.rst:1780 msgid "" "$ ./python opt.py --help\n" "usage: opt.py [options]\n" @@ -2626,21 +2292,17 @@ msgid "" "$" msgstr "" -#: ../../whatsnew/2.3.rst:1793 msgid "See the module's documentation for more details." msgstr "" -#: ../../whatsnew/2.3.rst:1796 msgid "" "Optik was written by Greg Ward, with suggestions from the readers of the " "Getopt SIG." msgstr "" -#: ../../whatsnew/2.3.rst:1805 msgid "Pymalloc: A Specialized Object Allocator" msgstr "" -#: ../../whatsnew/2.3.rst:1807 msgid "" "Pymalloc, a specialized object allocator written by Vladimir Marangozov, was " "a feature added to Python 2.1. Pymalloc is intended to be faster than the " @@ -2650,7 +2312,6 @@ msgid "" "requests from these pools." msgstr "" -#: ../../whatsnew/2.3.rst:1813 msgid "" "In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by " "default; you had to explicitly enable it when compiling Python by providing " @@ -2659,7 +2320,6 @@ msgid "" "you'll have to supply :option:`!--without-pymalloc` to disable it." msgstr "" -#: ../../whatsnew/2.3.rst:1819 msgid "" "This change is transparent to code written in Python; however, pymalloc may " "expose bugs in C extensions. Authors of C extension modules should test " @@ -2667,7 +2327,6 @@ msgid "" "dumps at runtime." msgstr "" -#: ../../whatsnew/2.3.rst:1824 msgid "" "There's one particularly common error that causes problems. There are a " "number of memory allocation functions in Python's C API that have previously " @@ -2682,7 +2341,6 @@ msgid "" "are more third-party modules that will have the same problem." msgstr "" -#: ../../whatsnew/2.3.rst:1836 msgid "" "As part of this change, the confusing multiple interfaces for allocating " "memory have been consolidated down into two API families. Memory allocated " @@ -2691,38 +2349,32 @@ msgid "" "family of functions specifically for allocating Python objects." msgstr "" -#: ../../whatsnew/2.3.rst:1842 msgid "" "To allocate and free an undistinguished chunk of memory use the \"raw " -"memory\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, " -"and :c:func:`PyMem_Free`." +"memory\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:" +"func:`PyMem_Free`." msgstr "" -#: ../../whatsnew/2.3.rst:1845 msgid "" "The \"object memory\" family is the interface to the pymalloc facility " "described above and is biased towards a large number of \"small\" " -"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, " -"and :c:func:`PyObject_Free`." +"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and :c:" +"func:`PyObject_Free`." msgstr "" -#: ../../whatsnew/2.3.rst:1849 msgid "" -"To allocate and free Python objects, use the \"object\" " -"family :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, " -"and :c:func:`PyObject_Del`." +"To allocate and free Python objects, use the \"object\" family :c:macro:" +"`PyObject_New`, :c:macro:`PyObject_NewVar`, and :c:func:`PyObject_Del`." msgstr "" -#: ../../whatsnew/2.3.rst:1852 msgid "" "Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides " "debugging features to catch memory overwrites and doubled frees in both " "extension modules and in the interpreter itself. To enable this support, " -"compile a debugging version of the Python interpreter by " -"running :program:`configure` with :option:`!--with-pydebug`." +"compile a debugging version of the Python interpreter by running :program:" +"`configure` with :option:`!--with-pydebug`." msgstr "" -#: ../../whatsnew/2.3.rst:1858 msgid "" "To aid extension writers, a header file :file:`Misc/pymemcompat.h` is " "distributed with the source to Python 2.3 that allows Python extensions to " @@ -2731,42 +2383,34 @@ msgid "" "distribution and bundle it with the source of your extension." msgstr "" -#: ../../whatsnew/2.3.rst:1867 msgid "https://hg.python.org/cpython/file/default/Objects/obmalloc.c" msgstr "" -#: ../../whatsnew/2.3.rst:1868 msgid "" "For the full details of the pymalloc implementation, see the comments at the " "top of the file :file:`Objects/obmalloc.c` in the Python source code. The " "above link points to the file within the python.org SVN browser." msgstr "" -#: ../../whatsnew/2.3.rst:1876 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/2.3.rst:1878 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/2.3.rst:1880 msgid "" "The cycle detection implementation used by the garbage collection has proven " "to be stable, so it's now been made mandatory. You can no longer compile " -"Python without it, and the :option:`!--with-cycle-gc` switch " -"to :program:`configure` has been removed." +"Python without it, and the :option:`!--with-cycle-gc` switch to :program:" +"`configure` has been removed." msgstr "" -#: ../../whatsnew/2.3.rst:1885 msgid "" -"Python can now optionally be built as a shared library " -"(:file:`libpython2.3.so`) by supplying :option:`!--enable-shared` when " -"running Python's :program:`configure` script. (Contributed by Ondrej " -"Palkovsky.)" +"Python can now optionally be built as a shared library (:file:`libpython2.3." +"so`) by supplying :option:`!--enable-shared` when running Python's :program:" +"`configure` script. (Contributed by Ondrej Palkovsky.)" msgstr "" -#: ../../whatsnew/2.3.rst:1889 msgid "" "The :c:macro:`!DL_EXPORT` and :c:macro:`!DL_IMPORT` macros are now " "deprecated. Initialization functions for Python extension modules should now " @@ -2775,16 +2419,14 @@ msgid "" "PyAPI_DATA` macros." msgstr "" -#: ../../whatsnew/2.3.rst:1894 msgid "" "The interpreter can be compiled without any docstrings for the built-in " -"functions and modules by supplying :option:`!--without-doc-strings` to " -"the :program:`configure` script. This makes the Python executable about 10% " +"functions and modules by supplying :option:`!--without-doc-strings` to the :" +"program:`configure` script. This makes the Python executable about 10% " "smaller, but will also mean that you can't get help for Python's built-ins. " "(Contributed by Gustavo Niemeyer.)" msgstr "" -#: ../../whatsnew/2.3.rst:1900 msgid "" "The :c:func:`!PyArg_NoArgs` macro is now deprecated, and code that uses it " "should be changed. For Python 2.2 and later, the method definition table " @@ -2795,70 +2437,61 @@ msgid "" "using :c:macro:`METH_NOARGS`." msgstr "" -#: ../../whatsnew/2.3.rst:1907 msgid "" ":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes " -"of unsigned integers: ``B`` for :c:expr:`unsigned char`, ``H`` " -"for :c:expr:`unsigned short int`, ``I`` for :c:expr:`unsigned int`, and " -"``K`` for :c:expr:`unsigned long long`." +"of unsigned integers: ``B`` for :c:expr:`unsigned char`, ``H`` for :c:expr:" +"`unsigned short int`, ``I`` for :c:expr:`unsigned int`, and ``K`` for :c:" +"expr:`unsigned long long`." msgstr "" -#: ../../whatsnew/2.3.rst:1912 msgid "" "A new function, ``PyObject_DelItemString(mapping, char *key)`` was added as " "shorthand for ``PyObject_DelItem(mapping, PyString_New(key))``." msgstr "" -#: ../../whatsnew/2.3.rst:1915 msgid "" "File objects now manage their internal string buffer differently, increasing " -"it exponentially when needed. This results in the benchmark tests " -"in :file:`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds " -"to 1.7 seconds, according to one measurement)." +"it exponentially when needed. This results in the benchmark tests in :file:" +"`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to 1.7 " +"seconds, according to one measurement)." msgstr "" -#: ../../whatsnew/2.3.rst:1920 msgid "" "It's now possible to define class and static methods for a C extension type " "by setting either the :c:macro:`METH_CLASS` or :c:macro:`METH_STATIC` flags " "in a method's :c:type:`PyMethodDef` structure." msgstr "" -#: ../../whatsnew/2.3.rst:1924 msgid "" "Python now includes a copy of the Expat XML parser's source code, removing " "any dependence on a system version or local installation of Expat." msgstr "" -#: ../../whatsnew/2.3.rst:1927 msgid "" "If you dynamically allocate type objects in your extension, you should be " -"aware of a change in the rules relating to the :attr:`~type.__module__` " -"and :attr:`~type.__name__` attributes. In summary, you will want to ensure " -"the type's dictionary contains a ``'__module__'`` key; making the module " -"name the part of the type name leading up to the final period will no longer " -"have the desired effect. For more detail, read the API reference " -"documentation or the source." +"aware of a change in the rules relating to the :attr:`~type.__module__` and :" +"attr:`~type.__name__` attributes. In summary, you will want to ensure the " +"type's dictionary contains a ``'__module__'`` key; making the module name " +"the part of the type name leading up to the final period will no longer have " +"the desired effect. For more detail, read the API reference documentation " +"or the source." msgstr "" -#: ../../whatsnew/2.3.rst:1938 msgid "Port-Specific Changes" msgstr "" -#: ../../whatsnew/2.3.rst:1940 msgid "" "Support for a port to IBM's OS/2 using the EMX runtime environment was " "merged into the main Python source tree. EMX is a POSIX emulation layer " "over the OS/2 system APIs. The Python port for EMX tries to support all the " -"POSIX-like capability exposed by the EMX runtime, and mostly " -"succeeds; :func:`!fork` and :func:`fcntl` are restricted by the limitations " -"of the underlying emulation layer. The standard OS/2 port, which uses IBM's " -"Visual Age compiler, also gained support for case-sensitive import semantics " -"as part of the integration of the EMX port into CVS. (Contributed by Andrew " +"POSIX-like capability exposed by the EMX runtime, and mostly succeeds; :func:" +"`!fork` and :func:`fcntl` are restricted by the limitations of the " +"underlying emulation layer. The standard OS/2 port, which uses IBM's Visual " +"Age compiler, also gained support for case-sensitive import semantics as " +"part of the integration of the EMX port into CVS. (Contributed by Andrew " "MacIntyre.)" msgstr "" -#: ../../whatsnew/2.3.rst:1949 msgid "" "On MacOS, most toolbox modules have been weaklinked to improve backward " "compatibility. This means that modules will no longer fail to load if a " @@ -2866,24 +2499,20 @@ msgid "" "missing routine will raise an exception. (Contributed by Jack Jansen.)" msgstr "" -#: ../../whatsnew/2.3.rst:1954 msgid "" "The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python " "source distribution, were updated for 2.3. (Contributed by Sean " "Reifschneider.)" msgstr "" -#: ../../whatsnew/2.3.rst:1957 msgid "" -"Other new platforms now supported by Python include AtheOS (http://" -"www.atheos.cx/), GNU/Hurd, and OpenVMS." +"Other new platforms now supported by Python include AtheOS (http://www." +"atheos.cx/), GNU/Hurd, and OpenVMS." msgstr "" -#: ../../whatsnew/2.3.rst:1966 msgid "Other Changes and Fixes" msgstr "" -#: ../../whatsnew/2.3.rst:1968 msgid "" "As usual, there were a bunch of other improvements and bugfixes scattered " "throughout the source tree. A search through the CVS change logs finds " @@ -2891,11 +2520,9 @@ msgid "" "2.3. Both figures are likely to be underestimates." msgstr "" -#: ../../whatsnew/2.3.rst:1973 msgid "Some of the more notable changes are:" msgstr "" -#: ../../whatsnew/2.3.rst:1975 msgid "" "If the :envvar:`PYTHONINSPECT` environment variable is set, the Python " "interpreter will enter the interactive prompt after running a Python " @@ -2904,7 +2531,6 @@ msgid "" "can be set by the Python program as part of its execution." msgstr "" -#: ../../whatsnew/2.3.rst:1981 msgid "" "The :file:`regrtest.py` script now provides a way to allow \"all resources " "except *foo*.\" A resource name passed to the :option:`!-u` option can now " @@ -2913,13 +2539,11 @@ msgid "" "all resources except ``bsddb``." msgstr "" -#: ../../whatsnew/2.3.rst:1987 msgid "" "The tools used to build the documentation now work under Cygwin as well as " "Unix." msgstr "" -#: ../../whatsnew/2.3.rst:1990 msgid "" "The ``SET_LINENO`` opcode has been removed. Back in the mists of time, this " "opcode was needed to produce line numbers in tracebacks and support trace " @@ -2930,13 +2554,11 @@ msgid "" "``SET_LINENO`` entirely." msgstr "" -#: ../../whatsnew/2.3.rst:1998 msgid "" "It would be difficult to detect any resulting difference from Python code, " "apart from a slight speed up when Python is run without :option:`-O`." msgstr "" -#: ../../whatsnew/2.3.rst:2001 msgid "" "C extensions that access the :attr:`~frame.f_lineno` field of frame objects " "should instead call ``PyCode_Addr2Line(f->f_code, f->f_lasti)``. This will " @@ -2944,52 +2566,43 @@ msgid "" "in earlier versions of Python." msgstr "" -#: ../../whatsnew/2.3.rst:2006 msgid "" -"A nifty new feature is that trace functions can now assign to " -"the :attr:`~frame.f_lineno` attribute of frame objects, changing the line " -"that will be executed next. A ``jump`` command has been added to " -"the :mod:`pdb` debugger taking advantage of this new feature. (Implemented " -"by Richie Hindle.)" +"A nifty new feature is that trace functions can now assign to the :attr:" +"`~frame.f_lineno` attribute of frame objects, changing the line that will be " +"executed next. A ``jump`` command has been added to the :mod:`pdb` debugger " +"taking advantage of this new feature. (Implemented by Richie Hindle.)" msgstr "" -#: ../../whatsnew/2.3.rst:2015 msgid "Porting to Python 2.3" msgstr "" -#: ../../whatsnew/2.3.rst:2017 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" -#: ../../whatsnew/2.3.rst:2020 msgid "" ":keyword:`yield` is now always a keyword; if it's used as a variable name in " "your code, a different name must be chosen." msgstr "" -#: ../../whatsnew/2.3.rst:2023 msgid "" "For strings *X* and *Y*, ``X in Y`` now works if *X* is more than one " "character long." msgstr "" -#: ../../whatsnew/2.3.rst:2026 msgid "" "The :func:`int` type constructor will now return a long integer instead of " "raising an :exc:`OverflowError` when a string or floating-point number is " "too large to fit into an integer." msgstr "" -#: ../../whatsnew/2.3.rst:2030 msgid "" "If you have Unicode strings that contain 8-bit characters, you must declare " "the file's encoding (UTF-8, Latin-1, or whatever) by adding a comment to the " "top of the file. See section :ref:`section-encodings` for more information." msgstr "" -#: ../../whatsnew/2.3.rst:2034 msgid "" "Calling Tcl methods through :mod:`!_tkinter` no longer returns only " "strings. Instead, if Tcl returns other objects those objects are converted " @@ -2997,15 +2610,12 @@ msgid "" "_tkinter.Tcl_Obj` object if no Python equivalent exists." msgstr "" -#: ../../whatsnew/2.3.rst:2039 msgid "" -"Large octal and hex literals such as ``0xffffffff`` now trigger " -"a :exc:`FutureWarning`. Currently they're stored as 32-bit numbers and " -"result in a negative value, but in Python 2.4 they'll become positive long " -"integers." +"Large octal and hex literals such as ``0xffffffff`` now trigger a :exc:" +"`FutureWarning`. Currently they're stored as 32-bit numbers and result in a " +"negative value, but in Python 2.4 they'll become positive long integers." msgstr "" -#: ../../whatsnew/2.3.rst:2043 msgid "" "There are a few ways to fix this warning. If you really need a positive " "number, just add an ``L`` to the end of the literal. If you're trying to " @@ -3015,11 +2625,9 @@ msgid "" "top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``." msgstr "" -#: ../../whatsnew/2.3.rst:2050 msgid "You can no longer disable assertions by assigning to ``__debug__``." msgstr "" -#: ../../whatsnew/2.3.rst:2052 msgid "" "The Distutils :func:`!setup` function has gained various new keyword " "arguments such as *depends*. Old versions of the Distutils will abort if " @@ -3028,7 +2636,6 @@ msgid "" "uses the new keywords with a version of the Distutils that supports them::" msgstr "" -#: ../../whatsnew/2.3.rst:2058 msgid "" "from distutils import core\n" "\n" @@ -3038,23 +2645,19 @@ msgid "" "ext = Extension(**kw)" msgstr "" -#: ../../whatsnew/2.3.rst:2065 msgid "" "Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " "warning." msgstr "" -#: ../../whatsnew/2.3.rst:2068 msgid "" "Names of extension types defined by the modules included with Python now " "contain the module and a ``'.'`` in front of the type name." msgstr "" -#: ../../whatsnew/2.3.rst:2077 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.3.rst:2079 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -3066,10 +2669,8 @@ msgid "" "Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." msgstr "" -#: ../../whatsnew/2.3.rst:371 msgid "universal newlines" msgstr "" -#: ../../whatsnew/2.3.rst:371 msgid "What's new" msgstr "" diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po index 7a00bfa..6440605 100644 --- a/whatsnew/2.4.po +++ b/whatsnew/2.4.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,25 +18,20 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.4.rst:3 msgid "What's New in Python 2.4" msgstr "" -#: ../../whatsnew/2.4.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.4.rst:5 msgid "A.M. Kuchling" msgstr "" -#: ../../whatsnew/2.4.rst:14 msgid "" "This article explains the new features in Python 2.4.1, released on March " "30, 2005." msgstr "" -#: ../../whatsnew/2.4.rst:17 msgid "" "Python 2.4 is a medium-sized release. It doesn't introduce as many changes " "as the radical Python 2.2, but introduces more features than the " @@ -45,14 +40,12 @@ msgid "" "standard library." msgstr "" -#: ../../whatsnew/2.4.rst:22 msgid "" "According to the CVS change logs, there were 481 patches applied and 502 " "bugs fixed between Python 2.3 and 2.4. Both figures are likely to be " "underestimates." msgstr "" -#: ../../whatsnew/2.4.rst:25 msgid "" "This article doesn't attempt to provide a complete specification of every " "single new feature, but instead provides a brief introduction to each " @@ -62,11 +55,9 @@ msgid "" "explanations of the implementation and design rationale." msgstr "" -#: ../../whatsnew/2.4.rst:36 msgid "PEP 218: Built-In Set Objects" msgstr "" -#: ../../whatsnew/2.4.rst:38 msgid "" "Python 2.3 introduced the :mod:`sets` module. C implementations of set data " "types have now been added to the Python core as two new built-in types, " @@ -76,7 +67,6 @@ msgid "" "differences, and symmetric differences. ::" msgstr "" -#: ../../whatsnew/2.4.rst:45 msgid "" ">>> a = set('abracadabra') # form a set from a string\n" ">>> 'z' in a # fast membership testing\n" @@ -105,46 +95,38 @@ msgid "" "set(['a', 'c', 'b', 'd', 'r', 'w', 'y', 'z'])" msgstr "" -#: ../../whatsnew/2.4.rst:71 msgid "" "The :func:`frozenset` type is an immutable version of :func:`set`. Since it " "is immutable and hashable, it may be used as a dictionary key or as a member " "of another set." msgstr "" -#: ../../whatsnew/2.4.rst:75 msgid "" "The :mod:`sets` module remains in the standard library, and may be useful if " "you wish to subclass the :class:`Set` or :class:`ImmutableSet` classes. " "There are currently no plans to deprecate the module." msgstr "" -#: ../../whatsnew/2.4.rst:82 msgid ":pep:`218` - Adding a Built-In Set Object Type" msgstr "" -#: ../../whatsnew/2.4.rst:83 msgid "" "Originally proposed by Greg Wilson and ultimately implemented by Raymond " "Hettinger." msgstr "" -#: ../../whatsnew/2.4.rst:90 msgid "PEP 237: Unifying Long Integers and Integers" msgstr "" -#: ../../whatsnew/2.4.rst:92 msgid "" "The lengthy transition process for this PEP, begun in Python 2.2, takes " "another step forward in Python 2.4. In 2.3, certain integer operations that " -"would behave differently after int/long unification " -"triggered :exc:`FutureWarning` warnings and returned values limited to 32 or " -"64 bits (depending on your platform). In 2.4, these expressions no longer " -"produce a warning and instead produce a different result that's usually a " -"long integer." +"would behave differently after int/long unification triggered :exc:" +"`FutureWarning` warnings and returned values limited to 32 or 64 bits " +"(depending on your platform). In 2.4, these expressions no longer produce a " +"warning and instead produce a different result that's usually a long integer." msgstr "" -#: ../../whatsnew/2.4.rst:99 msgid "" "The problematic expressions are primarily left shifts and lengthy " "hexadecimal and octal constants. For example, ``2 << 32`` results in a " @@ -152,21 +134,17 @@ msgid "" "expression now returns the correct answer, 8589934592." msgstr "" -#: ../../whatsnew/2.4.rst:107 msgid ":pep:`237` - Unifying Long Integers and Integers" msgstr "" -#: ../../whatsnew/2.4.rst:108 msgid "" "Original PEP written by Moshe Zadka and GvR. The changes for 2.4 were " "implemented by Kalle Svensson." msgstr "" -#: ../../whatsnew/2.4.rst:115 msgid "PEP 289: Generator Expressions" msgstr "" -#: ../../whatsnew/2.4.rst:117 msgid "" "The iterator feature introduced in Python 2.2 and the :mod:`itertools` " "module make it easier to write programs that loop through large data sets " @@ -178,18 +156,15 @@ msgid "" "natural to write something like::" msgstr "" -#: ../../whatsnew/2.4.rst:125 msgid "" "links = [link for link in get_all_links() if not link.followed]\n" "for link in links:\n" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:129 msgid "instead of ::" msgstr "" -#: ../../whatsnew/2.4.rst:131 msgid "" "for link in get_all_links():\n" " if link.followed:\n" @@ -197,28 +172,24 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:136 msgid "" "The first form is more concise and perhaps more readable, but if you're " "dealing with a large number of link objects you'd have to write the second " "form to avoid having all link objects in memory at the same time." msgstr "" -#: ../../whatsnew/2.4.rst:140 msgid "" "Generator expressions work similarly to list comprehensions but don't " "materialize the entire list; instead they create a generator that will " "return elements one by one. The above example could be written as::" msgstr "" -#: ../../whatsnew/2.4.rst:144 msgid "" "links = (link for link in get_all_links() if not link.followed)\n" "for link in links:\n" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:148 msgid "" "Generator expressions always have to be written inside parentheses, as in " "the above example. The parentheses signalling a function call also count, " @@ -226,11 +197,9 @@ msgid "" "function you could write::" msgstr "" -#: ../../whatsnew/2.4.rst:153 msgid "print sum(obj.count for obj in list_all_objects())" msgstr "" -#: ../../whatsnew/2.4.rst:155 msgid "" "Generator expressions differ from list comprehensions in various small ways. " "Most notably, the loop variable (*obj* in the above example) is not " @@ -240,38 +209,31 @@ msgid "" "respect." msgstr "" -#: ../../whatsnew/2.4.rst:164 msgid ":pep:`289` - Generator Expressions" msgstr "" -#: ../../whatsnew/2.4.rst:165 msgid "" "Proposed by Raymond Hettinger and implemented by Jiwon Seo with early " "efforts steered by Hye-Shik Chang." msgstr "" -#: ../../whatsnew/2.4.rst:172 msgid "PEP 292: Simpler String Substitutions" msgstr "" -#: ../../whatsnew/2.4.rst:174 msgid "" "Some new classes in the standard library provide an alternative mechanism " "for substituting variables into strings; this style of substitution may be " "better for applications where untrained users need to edit templates." msgstr "" -#: ../../whatsnew/2.4.rst:178 msgid "The usual way of substituting variables by name is the ``%`` operator::" msgstr "" -#: ../../whatsnew/2.4.rst:180 msgid "" ">>> '%(page)i: %(title)s' % {'page':2, 'title': 'The Best of Times'}\n" "'2: The Best of Times'" msgstr "" -#: ../../whatsnew/2.4.rst:183 msgid "" "When writing the template string, it can be easy to forget the ``i`` or " "``s`` after the closing parenthesis. This isn't a big problem if the " @@ -284,13 +246,11 @@ msgid "" "feedback to them." msgstr "" -#: ../../whatsnew/2.4.rst:192 msgid "" "PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses " "``$`` to indicate a substitution::" msgstr "" -#: ../../whatsnew/2.4.rst:195 msgid "" ">>> import string\n" ">>> t = string.Template('$page: $title')\n" @@ -298,43 +258,36 @@ msgid "" "'2: The Best of Times'" msgstr "" -#: ../../whatsnew/2.4.rst:200 msgid "" "If a key is missing from the dictionary, the :meth:`substitute` method will " "raise a :exc:`KeyError`. There's also a :meth:`safe_substitute` method that " "ignores missing keys::" msgstr "" -#: ../../whatsnew/2.4.rst:204 msgid "" ">>> t = string.Template('$page: $title')\n" ">>> t.safe_substitute({'page':3})\n" "'3: $title'" msgstr "" -#: ../../whatsnew/2.4.rst:211 msgid ":pep:`292` - Simpler String Substitutions" msgstr "" -#: ../../whatsnew/2.4.rst:212 msgid "Written and implemented by Barry Warsaw." msgstr "" -#: ../../whatsnew/2.4.rst:218 msgid "PEP 318: Decorators for Functions and Methods" msgstr "" -#: ../../whatsnew/2.4.rst:220 msgid "" "Python 2.2 extended Python's object model by adding static methods and class " "methods, but it didn't extend Python's syntax to provide any new way of " -"defining static or class methods. Instead, you had to write " -"a :keyword:`def` statement in the usual way, and pass the resulting method " -"to a :func:`staticmethod` or :func:`classmethod` function that would wrap up " -"the function as a method of the new type. Your code would look like this::" +"defining static or class methods. Instead, you had to write a :keyword:" +"`def` statement in the usual way, and pass the resulting method to a :func:" +"`staticmethod` or :func:`classmethod` function that would wrap up the " +"function as a method of the new type. Your code would look like this::" msgstr "" -#: ../../whatsnew/2.4.rst:227 msgid "" "class C:\n" " def meth (cls):\n" @@ -343,13 +296,11 @@ msgid "" " meth = classmethod(meth) # Rebind name to wrapped-up class method" msgstr "" -#: ../../whatsnew/2.4.rst:233 msgid "" -"If the method was very long, it would be easy to miss or forget " -"the :func:`classmethod` invocation after the function body." +"If the method was very long, it would be easy to miss or forget the :func:" +"`classmethod` invocation after the function body." msgstr "" -#: ../../whatsnew/2.4.rst:236 msgid "" "The intention was always to add some syntax to make such definitions more " "readable, but at the time of 2.2's release a good syntax was not obvious. " @@ -358,7 +309,6 @@ msgid "" "need." msgstr "" -#: ../../whatsnew/2.4.rst:241 msgid "" "The new feature is called \"function decorators\". The name comes from the " "idea that :func:`classmethod`, :func:`staticmethod`, and friends are storing " @@ -366,13 +316,11 @@ msgid "" "with more details." msgstr "" -#: ../../whatsnew/2.4.rst:246 msgid "" "The notation borrows from Java and uses the ``'@'`` character as an " "indicator. Using the new syntax, the example above would be written::" msgstr "" -#: ../../whatsnew/2.4.rst:249 msgid "" "class C:\n" "\n" @@ -381,13 +329,11 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:256 msgid "" "The ``@classmethod`` is shorthand for the ``meth=classmethod(meth)`` " "assignment. More generally, if you have the following::" msgstr "" -#: ../../whatsnew/2.4.rst:259 msgid "" "@A\n" "@B\n" @@ -396,17 +342,14 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:265 msgid "It's equivalent to the following pre-decorator code::" msgstr "" -#: ../../whatsnew/2.4.rst:267 msgid "" "def f(): ...\n" "f = A(B(C(f)))" msgstr "" -#: ../../whatsnew/2.4.rst:270 msgid "" "Decorators must come on the line before a function definition, one decorator " "per line, and can't be on the same line as the def statement, meaning that " @@ -415,7 +358,6 @@ msgid "" "definitions." msgstr "" -#: ../../whatsnew/2.4.rst:275 msgid "" "A decorator is just a function that takes the function to be decorated as an " "argument and returns either the same function or some new object. The " @@ -425,7 +367,6 @@ msgid "" "the function object::" msgstr "" -#: ../../whatsnew/2.4.rst:282 msgid "" ">>> def deco(func):\n" "... func.attr = 'decorated'\n" @@ -441,13 +382,11 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.4.rst:295 msgid "" "As a slightly more realistic example, the following decorator checks that " "the supplied argument is an integer::" msgstr "" -#: ../../whatsnew/2.4.rst:298 msgid "" "def require_int (func):\n" " def wrapper (arg):\n" @@ -465,13 +404,11 @@ msgid "" " print arg*2" msgstr "" -#: ../../whatsnew/2.4.rst:313 msgid "" "An example in :pep:`318` contains a fancier version of this idea that lets " "you both specify the required type and check the returned type." msgstr "" -#: ../../whatsnew/2.4.rst:316 msgid "" "Decorator functions can take arguments. If arguments are supplied, your " "decorator function is called with only those arguments and must return a new " @@ -480,19 +417,16 @@ msgid "" "becomes::" msgstr "" -#: ../../whatsnew/2.4.rst:321 msgid "" "def f(): ...\n" "_deco = C(args)\n" "f = A(B(_deco(f)))" msgstr "" -#: ../../whatsnew/2.4.rst:325 msgid "" "Getting this right can be slightly brain-bending, but it's not too difficult." msgstr "" -#: ../../whatsnew/2.4.rst:327 msgid "" "A small related change makes the :attr:`func_name ` " "attribute of functions writable. This attribute is used to display function " @@ -500,36 +434,29 @@ msgid "" "function that's constructed and returned." msgstr "" -#: ../../whatsnew/2.4.rst:336 msgid ":pep:`318` - Decorators for Functions, Methods and Classes" msgstr "" -#: ../../whatsnew/2.4.rst:337 msgid "" "Written by Kevin D. Smith, Jim Jewett, and Skip Montanaro. Several people " "wrote patches implementing function decorators, but the one that was " "actually checked in was patch #979728, written by Mark Russell." msgstr "" -#: ../../whatsnew/2.4.rst:341 msgid "https://wiki.python.org/moin/PythonDecoratorLibrary" msgstr "" -#: ../../whatsnew/2.4.rst:342 msgid "This Wiki page contains several examples of decorators." msgstr "" -#: ../../whatsnew/2.4.rst:348 msgid "PEP 322: Reverse Iteration" msgstr "" -#: ../../whatsnew/2.4.rst:350 msgid "" "A new built-in function, ``reversed(seq)``, takes a sequence and returns an " "iterator that loops over the elements of the sequence in reverse order. ::" msgstr "" -#: ../../whatsnew/2.4.rst:353 msgid "" ">>> for i in reversed(xrange(1,4)):\n" "... print i\n" @@ -539,20 +466,17 @@ msgid "" "1" msgstr "" -#: ../../whatsnew/2.4.rst:360 msgid "" "Compared to extended slicing, such as ``range(1,4)[::-1]``, :func:`reversed` " "is easier to read, runs faster, and uses substantially less memory." msgstr "" -#: ../../whatsnew/2.4.rst:363 msgid "" "Note that :func:`reversed` only accepts sequences, not arbitrary iterators. " -"If you want to reverse an iterator, first convert it to a list " -"with :func:`list`. ::" +"If you want to reverse an iterator, first convert it to a list with :func:" +"`list`. ::" msgstr "" -#: ../../whatsnew/2.4.rst:367 msgid "" ">>> input = open('/etc/passwd', 'r')\n" ">>> for line in reversed(list(input)):\n" @@ -562,39 +486,32 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:377 msgid ":pep:`322` - Reverse Iteration" msgstr "" -#: ../../whatsnew/2.4.rst:378 msgid "Written and implemented by Raymond Hettinger." msgstr "" -#: ../../whatsnew/2.4.rst:384 msgid "PEP 324: New subprocess Module" msgstr "" -#: ../../whatsnew/2.4.rst:386 msgid "" "The standard library provides a number of ways to execute a subprocess, " -"offering different features and different levels of complexity. " -"``os.system(command)`` is easy to use, but slow (it runs a shell process " -"which executes the command) and dangerous (you have to be careful about " -"escaping the shell's metacharacters). The :mod:`!popen2` module offers " -"classes that can capture standard output and standard error from the " -"subprocess, but the naming is confusing. The :mod:`subprocess` module " -"cleans this up, providing a unified interface that offers all the features " -"you might need." +"offering different features and different levels of complexity. ``os." +"system(command)`` is easy to use, but slow (it runs a shell process which " +"executes the command) and dangerous (you have to be careful about escaping " +"the shell's metacharacters). The :mod:`!popen2` module offers classes that " +"can capture standard output and standard error from the subprocess, but the " +"naming is confusing. The :mod:`subprocess` module cleans this up, " +"providing a unified interface that offers all the features you might need." msgstr "" -#: ../../whatsnew/2.4.rst:395 msgid "" "Instead of :mod:`!popen2`'s collection of classes, :mod:`subprocess` " "contains a single class called :class:`subprocess.Popen` whose constructor " "supports a number of different keyword arguments. ::" msgstr "" -#: ../../whatsnew/2.4.rst:399 msgid "" "class Popen(args, bufsize=0, executable=None,\n" " stdin=None, stdout=None, stderr=None,\n" @@ -603,7 +520,6 @@ msgid "" " startupinfo=None, creationflags=0):" msgstr "" -#: ../../whatsnew/2.4.rst:405 msgid "" "*args* is commonly a sequence of strings that will be the arguments to the " "program executed as the subprocess. (If the *shell* argument is true, " @@ -611,7 +527,6 @@ msgid "" "interpretation, just as :func:`os.system` does.)" msgstr "" -#: ../../whatsnew/2.4.rst:410 msgid "" "*stdin*, *stdout*, and *stderr* specify what the subprocess's input, output, " "and error streams will be. You can provide a file object or a file " @@ -619,57 +534,47 @@ msgid "" "between the subprocess and the parent." msgstr "" -#: ../../whatsnew/2.4.rst:418 msgid "The constructor has a number of handy options:" msgstr "" -#: ../../whatsnew/2.4.rst:420 msgid "" "*close_fds* requests that all file descriptors be closed before running the " "subprocess." msgstr "" -#: ../../whatsnew/2.4.rst:423 msgid "" "*cwd* specifies the working directory in which the subprocess will be " "executed (defaulting to whatever the parent's working directory is)." msgstr "" -#: ../../whatsnew/2.4.rst:426 msgid "*env* is a dictionary specifying environment variables." msgstr "" -#: ../../whatsnew/2.4.rst:428 msgid "" "*preexec_fn* is a function that gets called before the child is started." msgstr "" -#: ../../whatsnew/2.4.rst:430 msgid "" -"*universal_newlines* opens the child's input and output using " -"Python's :term:`universal newlines` feature." +"*universal_newlines* opens the child's input and output using Python's :term:" +"`universal newlines` feature." msgstr "" -#: ../../whatsnew/2.4.rst:433 msgid "" -"Once you've created the :class:`Popen` instance, you can call " -"its :meth:`wait` method to pause until the subprocess has " -"exited, :meth:`poll` to check if it's exited without pausing, or " -"``communicate(data)`` to send the string *data* to the subprocess's standard " -"input. ``communicate(data)`` then reads any data that the subprocess has " -"sent to its standard output or standard error, returning a tuple " -"``(stdout_data, stderr_data)``." +"Once you've created the :class:`Popen` instance, you can call its :meth:" +"`wait` method to pause until the subprocess has exited, :meth:`poll` to " +"check if it's exited without pausing, or ``communicate(data)`` to send the " +"string *data* to the subprocess's standard input. ``communicate(data)`` " +"then reads any data that the subprocess has sent to its standard output or " +"standard error, returning a tuple ``(stdout_data, stderr_data)``." msgstr "" -#: ../../whatsnew/2.4.rst:440 msgid "" -":func:`call` is a shortcut that passes its arguments along to " -"the :class:`Popen` constructor, waits for the command to complete, and " -"returns the status code of the subprocess. It can serve as a safer analog " -"to :func:`os.system`::" +":func:`call` is a shortcut that passes its arguments along to the :class:" +"`Popen` constructor, waits for the command to complete, and returns the " +"status code of the subprocess. It can serve as a safer analog to :func:`os." +"system`::" msgstr "" -#: ../../whatsnew/2.4.rst:444 msgid "" "sts = subprocess.call(['dpkg', '-i', '/tmp/new-package.deb'])\n" "if sts == 0:\n" @@ -680,39 +585,32 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.4.rst:452 msgid "" "The command is invoked without use of the shell. If you really do want to " "use the shell, you can add ``shell=True`` as a keyword argument and provide " "a string instead of a sequence::" msgstr "" -#: ../../whatsnew/2.4.rst:456 msgid "sts = subprocess.call('dpkg -i /tmp/new-package.deb', shell=True)" msgstr "" -#: ../../whatsnew/2.4.rst:458 msgid "" "The PEP takes various examples of shell and Python code and shows how they'd " "be translated into Python code that uses :mod:`subprocess`. Reading this " "section of the PEP is highly recommended." msgstr "" -#: ../../whatsnew/2.4.rst:465 msgid ":pep:`324` - subprocess - New process module" msgstr "" -#: ../../whatsnew/2.4.rst:466 msgid "" "Written and implemented by Peter Åstrand, with assistance from Fredrik Lundh " "and others." msgstr "" -#: ../../whatsnew/2.4.rst:473 msgid "PEP 327: Decimal Data Type" msgstr "" -#: ../../whatsnew/2.4.rst:475 msgid "" "Python has always supported floating-point (FP) numbers, based on the " "underlying C :c:expr:`double` type, as a data type. However, while most " @@ -722,34 +620,28 @@ msgid "" "these fractions accurately, up to a user-specified precision limit." msgstr "" -#: ../../whatsnew/2.4.rst:484 msgid "Why is Decimal needed?" msgstr "" -#: ../../whatsnew/2.4.rst:486 msgid "" "The limitations arise from the representation used for floating-point " "numbers. FP numbers are made up of three components:" msgstr "" -#: ../../whatsnew/2.4.rst:489 msgid "The sign, which is positive or negative." msgstr "" -#: ../../whatsnew/2.4.rst:491 msgid "" "The mantissa, which is a single-digit binary number followed by a " "fractional part. For example, ``1.01`` in base-2 notation is ``1 + 0/2 + " "1/4``, or 1.25 in decimal notation." msgstr "" -#: ../../whatsnew/2.4.rst:495 msgid "" "The exponent, which tells where the decimal point is located in the number " "represented." msgstr "" -#: ../../whatsnew/2.4.rst:498 msgid "" "For example, the number 1.25 has positive sign, a mantissa value of 1.01 (in " "binary), and an exponent of 0 (the decimal point doesn't need to be " @@ -758,7 +650,6 @@ msgid "" "1.25 \\* 4 equals 5." msgstr "" -#: ../../whatsnew/2.4.rst:504 msgid "" "Modern systems usually provide floating-point support that conforms to a " "standard called IEEE 754. C's :c:expr:`double` type is usually implemented " @@ -773,17 +664,14 @@ msgid "" "after 52 digits, so the representation is slightly inaccurate." msgstr "" -#: ../../whatsnew/2.4.rst:516 msgid "Sometimes you can see this inaccuracy when the number is printed::" msgstr "" -#: ../../whatsnew/2.4.rst:518 msgid "" ">>> 1.1\n" "1.1000000000000001" msgstr "" -#: ../../whatsnew/2.4.rst:521 msgid "" "The inaccuracy isn't always visible when you print the number because the FP-" "to-decimal-string conversion is provided by the C library, and most C " @@ -792,7 +680,6 @@ msgid "" "the error." msgstr "" -#: ../../whatsnew/2.4.rst:526 msgid "" "For many applications this doesn't matter. If I'm plotting points and " "displaying them on my monitor, the difference between 1.1 and " @@ -803,24 +690,20 @@ msgid "" "own custom arithmetic routines." msgstr "" -#: ../../whatsnew/2.4.rst:534 msgid "Hence, the :class:`Decimal` type was created." msgstr "" -#: ../../whatsnew/2.4.rst:538 msgid "The :class:`Decimal` type" msgstr "" -#: ../../whatsnew/2.4.rst:540 msgid "" "A new module, :mod:`decimal`, was added to Python's standard library. It " -"contains two classes, :class:`Decimal` " -"and :class:`Context`. :class:`Decimal` instances represent numbers, " -"and :class:`Context` instances are used to wrap up various settings such as " -"the precision and default rounding mode." +"contains two classes, :class:`Decimal` and :class:`Context`. :class:" +"`Decimal` instances represent numbers, and :class:`Context` instances are " +"used to wrap up various settings such as the precision and default rounding " +"mode." msgstr "" -#: ../../whatsnew/2.4.rst:545 msgid "" ":class:`Decimal` instances are immutable, like regular Python integers and " "FP numbers; once it's been created, you can't change the value an instance " @@ -828,7 +711,6 @@ msgid "" "strings::" msgstr "" -#: ../../whatsnew/2.4.rst:550 msgid "" ">>> import decimal\n" ">>> decimal.Decimal(1972)\n" @@ -837,25 +719,21 @@ msgid "" "Decimal(\"1.1\")" msgstr "" -#: ../../whatsnew/2.4.rst:556 msgid "" "You can also provide tuples containing the sign, the mantissa represented " "as a tuple of decimal digits, and the exponent::" msgstr "" -#: ../../whatsnew/2.4.rst:559 msgid "" ">>> decimal.Decimal((1, (1, 4, 7, 5), -2))\n" "Decimal(\"-14.75\")" msgstr "" -#: ../../whatsnew/2.4.rst:562 msgid "" "Cautionary note: the sign bit is a Boolean value, so 0 is positive and 1 is " "negative." msgstr "" -#: ../../whatsnew/2.4.rst:565 msgid "" "Converting from floating-point numbers poses a bit of a problem: should the " "FP number representing 1.1 turn into the decimal number for exactly 1.1, or " @@ -865,7 +743,6 @@ msgid "" "and pass the string to the :class:`Decimal` constructor::" msgstr "" -#: ../../whatsnew/2.4.rst:572 msgid "" ">>> f = 1.1\n" ">>> decimal.Decimal(str(f))\n" @@ -874,14 +751,12 @@ msgid "" "Decimal(\"1.100000000000\")" msgstr "" -#: ../../whatsnew/2.4.rst:578 msgid "" "Once you have :class:`Decimal` instances, you can perform the usual " "mathematical operations on them. One limitation: exponentiation requires an " "integer exponent::" msgstr "" -#: ../../whatsnew/2.4.rst:582 msgid "" ">>> a = decimal.Decimal('35.72')\n" ">>> b = decimal.Decimal('1.73')\n" @@ -901,13 +776,11 @@ msgid "" "decimal.InvalidOperation: x ** (non-integer)" msgstr "" -#: ../../whatsnew/2.4.rst:599 msgid "" "You can combine :class:`Decimal` instances with integers, but not with " "floating-point numbers::" msgstr "" -#: ../../whatsnew/2.4.rst:602 msgid "" ">>> a + 4\n" "Decimal(\"39.72\")\n" @@ -919,7 +792,6 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.4.rst:610 msgid "" ":class:`Decimal` numbers can be used with the :mod:`math` and :mod:`cmath` " "modules, but note that they'll be immediately converted to floating-point " @@ -928,7 +800,6 @@ msgid "" "number and not a :class:`Decimal`. ::" msgstr "" -#: ../../whatsnew/2.4.rst:616 msgid "" ">>> import math, cmath\n" ">>> d = decimal.Decimal('123456789012.345')\n" @@ -938,42 +809,34 @@ msgid "" "351364.18288201344j" msgstr "" -#: ../../whatsnew/2.4.rst:623 msgid "" -":class:`Decimal` instances have a :meth:`sqrt` method that returns " -"a :class:`Decimal`, but if you need other things such as trigonometric " -"functions you'll have to implement them. ::" +":class:`Decimal` instances have a :meth:`sqrt` method that returns a :class:" +"`Decimal`, but if you need other things such as trigonometric functions " +"you'll have to implement them. ::" msgstr "" -#: ../../whatsnew/2.4.rst:627 msgid "" ">>> d.sqrt()\n" "Decimal(\"351364.1828820134592177245001\")" msgstr "" -#: ../../whatsnew/2.4.rst:632 msgid "The :class:`Context` type" msgstr "" -#: ../../whatsnew/2.4.rst:634 msgid "" "Instances of the :class:`Context` class encapsulate several settings for " "decimal operations:" msgstr "" -#: ../../whatsnew/2.4.rst:637 msgid ":attr:`prec` is the precision, the number of decimal places." msgstr "" -#: ../../whatsnew/2.4.rst:639 msgid "" ":attr:`rounding` specifies the rounding mode. The :mod:`decimal` module has " -"constants for the various " -"possibilities: :const:`ROUND_DOWN`, :const:`ROUND_CEILING`, :const:`ROUND_HALF_EVEN`, " -"and various others." +"constants for the various possibilities: :const:`ROUND_DOWN`, :const:" +"`ROUND_CEILING`, :const:`ROUND_HALF_EVEN`, and various others." msgstr "" -#: ../../whatsnew/2.4.rst:643 msgid "" ":attr:`traps` is a dictionary specifying what happens on encountering " "certain error conditions: either an exception is raised or a value is " @@ -981,15 +844,13 @@ msgid "" "precision, and overflow." msgstr "" -#: ../../whatsnew/2.4.rst:648 msgid "" -"There's a thread-local default context available by " -"calling :func:`getcontext`; you can change the properties of this context to " -"alter the default precision, rounding, or trap handling. The following " -"example shows the effect of changing the precision of the default context::" +"There's a thread-local default context available by calling :func:" +"`getcontext`; you can change the properties of this context to alter the " +"default precision, rounding, or trap handling. The following example shows " +"the effect of changing the precision of the default context::" msgstr "" -#: ../../whatsnew/2.4.rst:653 msgid "" ">>> decimal.getcontext().prec\n" "28\n" @@ -1000,14 +861,12 @@ msgid "" "Decimal(\"0.142857143\")" msgstr "" -#: ../../whatsnew/2.4.rst:661 msgid "" "The default action for error conditions is selectable; the module can either " "return a special value such as infinity or not-a-number, or exceptions can " "be raised::" msgstr "" -#: ../../whatsnew/2.4.rst:665 msgid "" ">>> decimal.Decimal(1) / decimal.Decimal(0)\n" "Traceback (most recent call last):\n" @@ -1019,45 +878,37 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.4.rst:674 msgid "" "The :class:`Context` instance also has various methods for formatting " "numbers such as :meth:`to_eng_string` and :meth:`to_sci_string`." msgstr "" -#: ../../whatsnew/2.4.rst:677 msgid "" "For more information, see the documentation for the :mod:`decimal` module, " "which includes a quick-start tutorial and a reference." msgstr "" -#: ../../whatsnew/2.4.rst:683 msgid ":pep:`327` - Decimal Data Type" msgstr "" -#: ../../whatsnew/2.4.rst:684 msgid "" "Written by Facundo Batista and implemented by Facundo Batista, Eric Price, " "Raymond Hettinger, Aahz, and Tim Peters." msgstr "" -#: ../../whatsnew/2.4.rst:687 msgid "" "`http://www.lahey.com/float.htm `__" msgstr "" -#: ../../whatsnew/2.4.rst:688 msgid "" "The article uses Fortran code to illustrate many of the problems that " "floating-point inaccuracy can cause." msgstr "" -#: ../../whatsnew/2.4.rst:691 msgid "https://speleotrove.com/decimal/" msgstr "" -#: ../../whatsnew/2.4.rst:692 msgid "" "A description of a decimal-based representation. This representation is " "being proposed as a standard, and underlies the new Python decimal type. " @@ -1065,11 +916,9 @@ msgid "" "language." msgstr "" -#: ../../whatsnew/2.4.rst:700 msgid "PEP 328: Multi-line Imports" msgstr "" -#: ../../whatsnew/2.4.rst:702 msgid "" "One language change is a small syntactic tweak aimed at making it easier to " "import many names from a module. In a ``from module import names`` " @@ -1078,7 +927,6 @@ msgid "" "module, or you can use backslashes to escape the line endings like this::" msgstr "" -#: ../../whatsnew/2.4.rst:708 msgid "" "from SimpleXMLRPCServer import SimpleXMLRPCServer,\\\n" " SimpleXMLRPCRequestHandler,\\\n" @@ -1086,14 +934,12 @@ msgid "" " resolve_dotted_attribute" msgstr "" -#: ../../whatsnew/2.4.rst:713 msgid "" "The syntactic change in Python 2.4 simply allows putting the names within " "parentheses. Python ignores newlines within a parenthesized expression, so " "the backslashes are no longer needed::" msgstr "" -#: ../../whatsnew/2.4.rst:717 msgid "" "from SimpleXMLRPCServer import (SimpleXMLRPCServer,\n" " SimpleXMLRPCRequestHandler,\n" @@ -1101,7 +947,6 @@ msgid "" " resolve_dotted_attribute)" msgstr "" -#: ../../whatsnew/2.4.rst:722 msgid "" "The PEP also proposes that all :keyword:`import` statements be absolute " "imports, with a leading ``.`` character to indicate a relative import. This " @@ -1109,19 +954,15 @@ msgid "" "Python 2.5." msgstr "" -#: ../../whatsnew/2.4.rst:729 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" msgstr "" -#: ../../whatsnew/2.4.rst:730 msgid "Written by Aahz. Multi-line imports were implemented by Dima Dorfman." msgstr "" -#: ../../whatsnew/2.4.rst:736 msgid "PEP 331: Locale-Independent Float/String Conversions" msgstr "" -#: ../../whatsnew/2.4.rst:738 msgid "" "The :mod:`locale` modules lets Python software select various conversions " "and display conventions that are localized to a particular country or " @@ -1131,7 +972,6 @@ msgid "" "code was using the C library's :c:func:`atof` function." msgstr "" -#: ../../whatsnew/2.4.rst:745 msgid "" "Not setting the numeric locale caused trouble for extensions that used third-" "party C libraries, however, because they wouldn't have the correct locale " @@ -1139,100 +979,83 @@ msgid "" "displaying numbers in the current locale." msgstr "" -#: ../../whatsnew/2.4.rst:750 msgid "" "The solution described in the PEP is to add three new functions to the " "Python API that perform ASCII-only conversions, ignoring the locale setting:" msgstr "" -#: ../../whatsnew/2.4.rst:753 msgid "" "``PyOS_ascii_strtod(str, ptr)`` and ``PyOS_ascii_atof(str, ptr)`` both " "convert a string to a C :c:expr:`double`." msgstr "" -#: ../../whatsnew/2.4.rst:756 msgid "" -"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts " -"a :c:expr:`double` to an ASCII string." +"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts a :c:expr:" +"`double` to an ASCII string." msgstr "" -#: ../../whatsnew/2.4.rst:759 msgid "" "The code for these functions came from the GLib library (`https://developer-" "old.gnome.org/glib/2.26/ `__), whose developers kindly relicensed the " -"relevant functions and donated them to the Python Software Foundation. " -"The :mod:`locale` module can now change the numeric locale, letting " -"extensions such as GTK+ produce the correct results." +"relevant functions and donated them to the Python Software Foundation. The :" +"mod:`locale` module can now change the numeric locale, letting extensions " +"such as GTK+ produce the correct results." msgstr "" -#: ../../whatsnew/2.4.rst:768 msgid ":pep:`331` - Locale-Independent Float/String Conversions" msgstr "" -#: ../../whatsnew/2.4.rst:769 msgid "Written by Christian R. Reis, and implemented by Gustavo Carneiro." msgstr "" -#: ../../whatsnew/2.4.rst:775 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/2.4.rst:777 msgid "" "Here are all of the changes that Python 2.4 makes to the core Python " "language." msgstr "" -#: ../../whatsnew/2.4.rst:779 msgid "Decorators for functions and methods were added (:pep:`318`)." msgstr "" -#: ../../whatsnew/2.4.rst:781 msgid "" "Built-in :func:`set` and :func:`frozenset` types were added (:pep:`218`). " "Other new built-ins include the ``reversed(seq)`` function (:pep:`322`)." msgstr "" -#: ../../whatsnew/2.4.rst:784 msgid "Generator expressions were added (:pep:`289`)." msgstr "" -#: ../../whatsnew/2.4.rst:786 msgid "" "Certain numeric expressions no longer return values restricted to 32 or 64 " "bits (:pep:`237`)." msgstr "" -#: ../../whatsnew/2.4.rst:789 msgid "" "You can now put parentheses around the list of names in a ``from module " "import names`` statement (:pep:`328`)." msgstr "" -#: ../../whatsnew/2.4.rst:792 msgid "" -"The :meth:`dict.update` method now accepts the same argument forms as " -"the :class:`dict` constructor. This includes any mapping, any iterable of " -"key/value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)" +"The :meth:`dict.update` method now accepts the same argument forms as the :" +"class:`dict` constructor. This includes any mapping, any iterable of key/" +"value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:796 msgid "" "The string methods :meth:`ljust`, :meth:`rjust`, and :meth:`center` now take " "an optional argument for specifying a fill character other than a space. " "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:800 msgid "" -"Strings also gained an :meth:`rsplit` method that works like " -"the :meth:`split` method but splits from the end of the string. " -"(Contributed by Sean Reifschneider.) ::" +"Strings also gained an :meth:`rsplit` method that works like the :meth:" +"`split` method but splits from the end of the string. (Contributed by Sean " +"Reifschneider.) ::" msgstr "" -#: ../../whatsnew/2.4.rst:804 msgid "" ">>> 'www.python.org'.split('.', 1)\n" "['www', 'python.org']\n" @@ -1240,30 +1063,26 @@ msgid "" "['www.python', 'org']" msgstr "" -#: ../../whatsnew/2.4.rst:809 msgid "" -"Three keyword parameters, *cmp*, *key*, and *reverse*, were added to " -"the :meth:`sort` method of lists. These parameters make some common usages " -"of :meth:`sort` simpler. All of these parameters are optional." +"Three keyword parameters, *cmp*, *key*, and *reverse*, were added to the :" +"meth:`sort` method of lists. These parameters make some common usages of :" +"meth:`sort` simpler. All of these parameters are optional." msgstr "" -#: ../../whatsnew/2.4.rst:813 msgid "" "For the *cmp* parameter, the value should be a comparison function that " "takes two parameters and returns -1, 0, or +1 depending on how the " "parameters compare. This function will then be used to sort the list. " -"Previously this was the only parameter that could be provided " -"to :meth:`sort`." +"Previously this was the only parameter that could be provided to :meth:" +"`sort`." msgstr "" -#: ../../whatsnew/2.4.rst:818 msgid "" "*key* should be a single-parameter function that takes a list element and " "returns a comparison key for the element. The list is then sorted using the " "comparison keys. The following example sorts a list case-insensitively::" msgstr "" -#: ../../whatsnew/2.4.rst:822 msgid "" ">>> L = ['A', 'b', 'c', 'D']\n" ">>> L.sort() # Case-sensitive sort\n" @@ -1279,7 +1098,6 @@ msgid "" "['A', 'b', 'c', 'D']" msgstr "" -#: ../../whatsnew/2.4.rst:835 msgid "" "The last example, which uses the *cmp* parameter, is the old way to perform " "a case-insensitive sort. It works but is slower than using a *key* " @@ -1288,28 +1106,24 @@ msgid "" "*key* saves on invocations of the :meth:`lower` method." msgstr "" -#: ../../whatsnew/2.4.rst:841 msgid "" "For simple key functions and comparison functions, it is often possible to " "avoid a :keyword:`lambda` expression by using an unbound method instead. " "For example, the above case-insensitive sort is best written as::" msgstr "" -#: ../../whatsnew/2.4.rst:845 msgid "" ">>> L.sort(key=str.lower)\n" ">>> L\n" "['A', 'b', 'c', 'D']" msgstr "" -#: ../../whatsnew/2.4.rst:849 msgid "" "Finally, the *reverse* parameter takes a Boolean value. If the value is " -"true, the list will be sorted into reverse order. Instead of ``L.sort(); " -"L.reverse()``, you can now write ``L.sort(reverse=True)``." +"true, the list will be sorted into reverse order. Instead of ``L.sort(); L." +"reverse()``, you can now write ``L.sort(reverse=True)``." msgstr "" -#: ../../whatsnew/2.4.rst:853 msgid "" "The results of sorting are now guaranteed to be stable. This means that two " "entries with equal keys will be returned in the same order as they were " @@ -1318,30 +1132,24 @@ msgid "" "age are in name-sorted order." msgstr "" -#: ../../whatsnew/2.4.rst:859 msgid "(All changes to :meth:`sort` contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:861 msgid "" "There is a new built-in function ``sorted(iterable)`` that works like the in-" "place :meth:`list.sort` method but can be used in expressions. The " "differences are:" msgstr "" -#: ../../whatsnew/2.4.rst:865 msgid "the input may be any iterable;" msgstr "" -#: ../../whatsnew/2.4.rst:867 msgid "a newly formed copy is sorted, leaving the original intact; and" msgstr "" -#: ../../whatsnew/2.4.rst:869 msgid "the expression returns the new sorted copy" msgstr "" -#: ../../whatsnew/2.4.rst:873 msgid "" ">>> L = [9,7,8,3,2,4,1,6,5]\n" ">>> [10+i for i in sorted(L)] # usable in a list comprehension\n" @@ -1363,18 +1171,14 @@ msgid "" "yellow 5" msgstr "" -#: ../../whatsnew/2.4.rst:892 ../../whatsnew/2.4.rst:920 -#: ../../whatsnew/2.4.rst:1213 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:894 ../../whatsnew/2.4.rst:1520 msgid "" -"Integer operations will no longer trigger an :exc:`OverflowWarning`. " -"The :exc:`OverflowWarning` warning will disappear in Python 2.5." +"Integer operations will no longer trigger an :exc:`OverflowWarning`. The :" +"exc:`OverflowWarning` warning will disappear in Python 2.5." msgstr "" -#: ../../whatsnew/2.4.rst:897 msgid "" "The interpreter gained a new switch, :option:`-m`, that takes a name, " "searches for the corresponding module on ``sys.path``, and runs the module " @@ -1382,7 +1186,6 @@ msgid "" "-m profile``. (Contributed by Nick Coghlan.)" msgstr "" -#: ../../whatsnew/2.4.rst:902 msgid "" "The ``eval(expr, globals, locals)`` and ``execfile(filename, globals, " "locals)`` functions and the ``exec`` statement now accept any mapping type " @@ -1390,15 +1193,13 @@ msgid "" "dictionary. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:907 msgid "" "The :func:`zip` built-in function and :func:`itertools.izip` now return an " -"empty list if called with no arguments. Previously they raised " -"a :exc:`TypeError` exception. This makes them more suitable for use with " -"variable length argument lists::" +"empty list if called with no arguments. Previously they raised a :exc:" +"`TypeError` exception. This makes them more suitable for use with variable " +"length argument lists::" msgstr "" -#: ../../whatsnew/2.4.rst:912 msgid "" ">>> def transpose(array):\n" "... return zip(*array)\n" @@ -1409,7 +1210,6 @@ msgid "" "[]" msgstr "" -#: ../../whatsnew/2.4.rst:922 msgid "" "Encountering a failure while importing a module no longer leaves a partially " "initialized module object in ``sys.modules``. The incomplete module object " @@ -1417,69 +1217,58 @@ msgid "" "leading to confusing errors. (Fixed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.4.rst:927 msgid "" ":const:`None` is now a constant; code that binds a new value to the name " "``None`` is now a syntax error. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:934 msgid "Optimizations" msgstr "" -#: ../../whatsnew/2.4.rst:936 msgid "" "The inner loops for list and tuple slicing were optimized and now run about " "one-third faster. The inner loops for dictionaries were also optimized, " -"resulting in performance boosts " -"for :meth:`keys`, :meth:`values`, :meth:`items`, :meth:`iterkeys`, :meth:`itervalues`, " -"and :meth:`iteritems`. (Contributed by Raymond Hettinger.)" +"resulting in performance boosts for :meth:`keys`, :meth:`values`, :meth:" +"`items`, :meth:`iterkeys`, :meth:`itervalues`, and :meth:`iteritems`. " +"(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:942 msgid "" "The machinery for growing and shrinking lists was optimized for speed and " "for space efficiency. Appending and popping from lists now runs faster due " -"to more efficient code paths and less frequent use of the underlying " -"system :c:func:`realloc`. List comprehensions also " -"benefit. :meth:`list.extend` was also optimized and no longer converts its " -"argument into a temporary list before extending the base list. (Contributed " -"by Raymond Hettinger.)" +"to more efficient code paths and less frequent use of the underlying system :" +"c:func:`realloc`. List comprehensions also benefit. :meth:`list.extend` " +"was also optimized and no longer converts its argument into a temporary list " +"before extending the base list. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:949 msgid "" ":func:`list`, :func:`tuple`, :func:`map`, :func:`filter`, and :func:`zip` " -"now run several times faster with non-sequence arguments that supply " -"a :meth:`__len__` method. (Contributed by Raymond Hettinger.)" +"now run several times faster with non-sequence arguments that supply a :meth:" +"`__len__` method. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:953 msgid "" -"The methods :meth:`list.__getitem__`, :meth:`dict.__getitem__`, " -"and :meth:`dict.__contains__` are now implemented " -"as :class:`method_descriptor` objects rather " -"than :class:`wrapper_descriptor` objects. This form of access doubles " -"their performance and makes them more suitable for use as arguments to " -"functionals: ``map(mydict.__getitem__, keylist)``. (Contributed by Raymond " -"Hettinger.)" +"The methods :meth:`list.__getitem__`, :meth:`dict.__getitem__`, and :meth:" +"`dict.__contains__` are now implemented as :class:`method_descriptor` " +"objects rather than :class:`wrapper_descriptor` objects. This form of " +"access doubles their performance and makes them more suitable for use as " +"arguments to functionals: ``map(mydict.__getitem__, keylist)``. (Contributed " +"by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:960 msgid "" "Added a new opcode, ``LIST_APPEND``, that simplifies the generated bytecode " "for list comprehensions and speeds them up by about a third. (Contributed " "by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:964 msgid "" "The peephole bytecode optimizer has been improved to produce shorter, " "faster bytecode; remarkably, the resulting bytecode is more readable. " "(Enhanced by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:968 msgid "" "String concatenations in statements of the form ``s = s + \"abc\"`` and ``s " "+= \"abc\"`` are now performed more efficiently in certain circumstances. " @@ -1489,7 +1278,6 @@ msgid "" "number of strings together. (Contributed by Armin Rigo.)" msgstr "" -#: ../../whatsnew/2.4.rst:975 msgid "" "The net result of the 2.4 optimizations is that Python 2.4 runs the pystone " "benchmark around 5% faster than Python 2.3 and 35% faster than Python 2.2. " @@ -1498,11 +1286,9 @@ msgid "" "greater or smaller benefits from Python 2.4.)" msgstr "" -#: ../../whatsnew/2.4.rst:991 msgid "New, Improved, and Deprecated Modules" msgstr "" -#: ../../whatsnew/2.4.rst:993 msgid "" "As usual, Python's standard library received a number of enhancements and " "bug fixes. Here's a partial list of the most notable changes, sorted " @@ -1511,61 +1297,50 @@ msgid "" "logs for all the details." msgstr "" -#: ../../whatsnew/2.4.rst:998 msgid "" "The :mod:`!asyncore` module's :func:`!loop` function now has a *count* " "parameter that lets you perform a limited number of passes through the " "polling loop. The default is still to loop forever." msgstr "" -#: ../../whatsnew/2.4.rst:1002 msgid "" "The :mod:`base64` module now has more complete :rfc:`3548` support for " "Base64, Base32, and Base16 encoding and decoding, including optional case " "folding and optional alternative alphabets. (Contributed by Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.4.rst:1006 msgid "" "The :mod:`bisect` module now has an underlying C implementation for improved " "performance. (Contributed by Dmitry Vasiliev.)" msgstr "" -#: ../../whatsnew/2.4.rst:1009 msgid "" "The CJKCodecs collections of East Asian codecs, maintained by Hye-Shik " "Chang, was integrated into 2.4. The new encodings are:" msgstr "" -#: ../../whatsnew/2.4.rst:1012 msgid "Chinese (PRC): gb2312, gbk, gb18030, big5hkscs, hz" msgstr "" -#: ../../whatsnew/2.4.rst:1014 msgid "Chinese (ROC): big5, cp950" msgstr "" -#: ../../whatsnew/2.4.rst:1016 msgid "Japanese: cp932, euc-jis-2004, euc-jp, euc-jisx0213, iso-2022-jp," msgstr "" -#: ../../whatsnew/2.4.rst:1017 msgid "" "iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, iso-2022-" "jp-2004, shift-jis, shift-jisx0213, shift-jis-2004" msgstr "" -#: ../../whatsnew/2.4.rst:1020 msgid "Korean: cp949, euc-kr, johab, iso-2022-kr" msgstr "" -#: ../../whatsnew/2.4.rst:1022 msgid "" "Some other new encodings were added: HP Roman8, ISO_8859-11, ISO_8859-16, " "PCTP-154, and TIS-620." msgstr "" -#: ../../whatsnew/2.4.rst:1025 msgid "" "The UTF-8 and UTF-16 codecs now cope better with receiving partial input. " "Previously the :class:`StreamReader` class would try to read more data, " @@ -1574,7 +1349,6 @@ msgid "" "decoding where previous ones left off. (Implemented by Walter Dörwald.)" msgstr "" -#: ../../whatsnew/2.4.rst:1031 msgid "" "There is a new :mod:`collections` module for various specialized collection " "datatypes. Currently it contains just one type, :class:`deque`, a double-" @@ -1582,7 +1356,6 @@ msgid "" "either end::" msgstr "" -#: ../../whatsnew/2.4.rst:1036 msgid "" ">>> from collections import deque\n" ">>> d = deque('ghi') # make a new deque with three items\n" @@ -1600,39 +1373,34 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/2.4.rst:1051 msgid "" "Several modules, such as the :mod:`Queue` and :mod:`threading` modules, now " "take advantage of :class:`collections.deque` for improved performance. " "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1055 msgid "" "The :mod:`ConfigParser ` classes have been enhanced slightly. " "The :meth:`~configparser.ConfigParser.read` method now returns a list of the " -"files that were successfully parsed, and " -"the :meth:`~configparser.ConfigParser.set` method raises :exc:`TypeError` if " -"passed a *value* argument that isn't a string. (Contributed by John " -"Belmonte and David Goodger.)" +"files that were successfully parsed, and the :meth:`~configparser." +"ConfigParser.set` method raises :exc:`TypeError` if passed a *value* " +"argument that isn't a string. (Contributed by John Belmonte and David " +"Goodger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1060 msgid "" -"The :mod:`curses` module now supports the ncurses " -"extension :func:`use_default_colors`. On platforms where the terminal " -"supports transparency, this makes it possible to use a transparent " -"background. (Contributed by Jörg Lehmann.)" +"The :mod:`curses` module now supports the ncurses extension :func:" +"`use_default_colors`. On platforms where the terminal supports " +"transparency, this makes it possible to use a transparent background. " +"(Contributed by Jörg Lehmann.)" msgstr "" -#: ../../whatsnew/2.4.rst:1065 msgid "" "The :mod:`difflib` module now includes an :class:`HtmlDiff` class that " "creates an HTML table showing a side by side comparison of two versions of a " "text. (Contributed by Dan Gass.)" msgstr "" -#: ../../whatsnew/2.4.rst:1069 msgid "" "The :mod:`email` package was updated to version 3.0, which dropped various " "deprecated APIs and removes support for Python versions earlier than 2.3. " @@ -1644,33 +1412,29 @@ msgid "" "Barry Warsaw, Thomas Wouters, and others.)" msgstr "" -#: ../../whatsnew/2.4.rst:1078 msgid "" "The :mod:`heapq` module has been converted to C. The resulting tenfold " "improvement in speed makes the module suitable for handling high volumes of " -"data. In addition, the module has two new functions :func:`nlargest` " -"and :func:`nsmallest` that use heaps to find the N largest or smallest " -"values in a dataset without the expense of a full sort. (Contributed by " -"Raymond Hettinger.)" +"data. In addition, the module has two new functions :func:`nlargest` and :" +"func:`nsmallest` that use heaps to find the N largest or smallest values in " +"a dataset without the expense of a full sort. (Contributed by Raymond " +"Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1084 msgid "" "The :mod:`httplib ` module now contains constants for HTTP status " "codes defined in various HTTP-related RFC documents. Constants have names " -"such as :const:`OK`, :const:`CREATED`, :const:`CONTINUE`, " -"and :const:`MOVED_PERMANENTLY`; use pydoc to get a full list. (Contributed " -"by Andrew Eland.)" +"such as :const:`OK`, :const:`CREATED`, :const:`CONTINUE`, and :const:" +"`MOVED_PERMANENTLY`; use pydoc to get a full list. (Contributed by Andrew " +"Eland.)" msgstr "" -#: ../../whatsnew/2.4.rst:1090 msgid "" "The :mod:`imaplib` module now supports IMAP's THREAD command (contributed by " "Yves Dionne) and new :meth:`deleteacl` and :meth:`myrights` methods " "(contributed by Arnaud Mazin)." msgstr "" -#: ../../whatsnew/2.4.rst:1094 msgid "" "The :mod:`itertools` module gained a ``groupby(iterable[, *func*])`` " "function. *iterable* is something that can be iterated over to return a " @@ -1681,14 +1445,12 @@ msgid "" "containing the key value and an iterator over the subsequence." msgstr "" -#: ../../whatsnew/2.4.rst:1102 msgid "" "Here's an example to make this clearer. The *key* function simply returns " "whether a number is even or odd, so the result of :func:`groupby` is to " "return consecutive runs of odd or even numbers. ::" msgstr "" -#: ../../whatsnew/2.4.rst:1106 msgid "" ">>> import itertools\n" ">>> L = [2, 4, 6, 7, 8, 9, 11, 12, 14]\n" @@ -1703,14 +1465,12 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.4.rst:1118 msgid "" -":func:`groupby` is typically used with sorted input. The logic " -"for :func:`groupby` is similar to the Unix ``uniq`` filter which makes it " -"handy for eliminating, counting, or identifying duplicate elements::" +":func:`groupby` is typically used with sorted input. The logic for :func:" +"`groupby` is similar to the Unix ``uniq`` filter which makes it handy for " +"eliminating, counting, or identifying duplicate elements::" msgstr "" -#: ../../whatsnew/2.4.rst:1122 msgid "" ">>> word = 'abracadabra'\n" ">>> letters = sorted(word) # Turn string into a sorted list of letters\n" @@ -1732,18 +1492,15 @@ msgid "" "[('a', 5), ('b', 2), ('c', 1), ('d', 1), ('r', 2)]" msgstr "" -#: ../../whatsnew/2.4.rst:1141 msgid "(Contributed by Hye-Shik Chang.)" msgstr "" -#: ../../whatsnew/2.4.rst:1143 msgid "" ":mod:`itertools` also gained a function named ``tee(iterator, N)`` that " "returns *N* independent iterators that replicate *iterator*. If *N* is " "omitted, the default is 2. ::" msgstr "" -#: ../../whatsnew/2.4.rst:1147 msgid "" ">>> L = [1,2,3]\n" ">>> i1, i2 = itertools.tee(L)\n" @@ -1756,7 +1513,6 @@ msgid "" "[1, 2, 3]" msgstr "" -#: ../../whatsnew/2.4.rst:1156 msgid "" "Note that :func:`tee` has to keep copies of the values returned by the " "iterator; in the worst case, it may need to keep all of them. This should " @@ -1768,24 +1524,21 @@ msgid "" "Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1165 msgid "" -"A number of functions were added to the :mod:`locale` module, such " -"as :func:`bind_textdomain_codeset` to specify a particular encoding and a " -"family of :func:`!l\\*gettext` functions that return messages in the chosen " -"encoding. (Contributed by Gustavo Niemeyer.)" +"A number of functions were added to the :mod:`locale` module, such as :func:" +"`bind_textdomain_codeset` to specify a particular encoding and a family of :" +"func:`!l\\*gettext` functions that return messages in the chosen encoding. " +"(Contributed by Gustavo Niemeyer.)" msgstr "" -#: ../../whatsnew/2.4.rst:1170 msgid "" -"Some keyword arguments were added to the :mod:`logging` " -"package's :func:`basicConfig` function to simplify log configuration. The " -"default behavior is to log messages to standard error, but various keyword " -"arguments can be specified to log to a particular file, change the logging " -"format, or set the logging level. For example::" +"Some keyword arguments were added to the :mod:`logging` package's :func:" +"`basicConfig` function to simplify log configuration. The default behavior " +"is to log messages to standard error, but various keyword arguments can be " +"specified to log to a particular file, change the logging format, or set the " +"logging level. For example::" msgstr "" -#: ../../whatsnew/2.4.rst:1176 msgid "" "import logging\n" "logging.basicConfig(filename='/var/log/application.log',\n" @@ -1793,21 +1546,18 @@ msgid "" " format='%(levelname):%(process):%(thread):%(message)')" msgstr "" -#: ../../whatsnew/2.4.rst:1181 msgid "" "Other additions to the :mod:`logging` package include a ``log(level, msg)`` " "convenience method, as well as a :class:`TimedRotatingFileHandler` class " -"that rotates its log files at a timed interval. The module already " -"had :class:`RotatingFileHandler`, which rotated logs once the file exceeded " -"a certain size. Both classes derive from a new :class:`BaseRotatingHandler` " +"that rotates its log files at a timed interval. The module already had :" +"class:`RotatingFileHandler`, which rotated logs once the file exceeded a " +"certain size. Both classes derive from a new :class:`BaseRotatingHandler` " "class that can be used to implement other rotating handlers." msgstr "" -#: ../../whatsnew/2.4.rst:1188 msgid "(Changes implemented by Vinay Sajip.)" msgstr "" -#: ../../whatsnew/2.4.rst:1190 msgid "" "The :mod:`marshal` module now shares interned strings on unpacking a data " "structure. This may shrink the size of certain pickle strings, but the " @@ -1815,23 +1565,20 @@ msgid "" "(Contributed by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.4.rst:1195 msgid "" "The :mod:`!nntplib` module's :class:`NNTP` class gained :meth:`description` " "and :meth:`descriptions` methods to retrieve newsgroup descriptions for a " "single group or for a range of groups. (Contributed by Jürgen A. Erhard.)" msgstr "" -#: ../../whatsnew/2.4.rst:1199 msgid "" "Two new functions were added to the :mod:`operator` module, " "``attrgetter(attr)`` and ``itemgetter(index)``. Both functions return " "callables that take a single argument and return the corresponding attribute " -"or item; these callables make excellent data extractors when used " -"with :func:`map` or :func:`sorted`. For example::" +"or item; these callables make excellent data extractors when used with :func:" +"`map` or :func:`sorted`. For example::" msgstr "" -#: ../../whatsnew/2.4.rst:1205 msgid "" ">>> L = [('c', 2), ('d', 1), ('a', 4), ('b', 3)]\n" ">>> map(operator.itemgetter(0), L)\n" @@ -1842,7 +1589,6 @@ msgid "" "[('d', 1), ('c', 2), ('b', 3), ('a', 4)]" msgstr "" -#: ../../whatsnew/2.4.rst:1215 msgid "" "The :mod:`optparse` module was updated in various ways. The module now " "passes its messages through :func:`gettext.gettext`, making it possible to " @@ -1851,17 +1597,15 @@ msgid "" "option's default value. (Contributed by Greg Ward.)" msgstr "" -#: ../../whatsnew/2.4.rst:1221 msgid "" "The long-term plan is to deprecate the :mod:`!rfc822` module in some future " -"Python release in favor of the :mod:`email` package. To this end, " -"the :func:`email.Utils.formatdate ` function has " -"been changed to make it usable as a replacement for :func:`!" -"rfc822.formatdate`. You may want to write new e-mail processing code with " -"this in mind. (Change implemented by Anthony Baxter.)" +"Python release in favor of the :mod:`email` package. To this end, the :func:" +"`email.Utils.formatdate ` function has been changed " +"to make it usable as a replacement for :func:`!rfc822.formatdate`. You may " +"want to write new e-mail processing code with this in mind. (Change " +"implemented by Anthony Baxter.)" msgstr "" -#: ../../whatsnew/2.4.rst:1227 msgid "" "A new ``urandom(n)`` function was added to the :mod:`os` module, returning a " "string containing *n* bytes of random data. This function provides access " @@ -1869,7 +1613,6 @@ msgid "" "Linux or the Windows CryptoAPI. (Contributed by Trevor Perrin.)" msgstr "" -#: ../../whatsnew/2.4.rst:1232 msgid "" "Another new function: ``os.path.lexists(path)`` returns true if the file " "specified by *path* exists, whether or not it's a symbolic link. This " @@ -1878,25 +1621,21 @@ msgid "" "exist. (Contributed by Beni Cherniavsky.)" msgstr "" -#: ../../whatsnew/2.4.rst:1238 msgid "" "A new :func:`getsid` function was added to the :mod:`posix` module that " "underlies the :mod:`os` module. (Contributed by J. Raynor.)" msgstr "" -#: ../../whatsnew/2.4.rst:1241 msgid "" "The :mod:`poplib` module now supports POP over SSL. (Contributed by Hector " "Urtubia.)" msgstr "" -#: ../../whatsnew/2.4.rst:1244 msgid "" "The :mod:`profile` module can now profile C extension functions. " "(Contributed by Nick Bastin.)" msgstr "" -#: ../../whatsnew/2.4.rst:1247 msgid "" "The :mod:`random` module has a new method called ``getrandbits(N)`` that " "returns a long integer *N* bits in length. The existing :meth:`randrange` " @@ -1905,7 +1644,6 @@ msgid "" "Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1253 msgid "" "The regular expression language accepted by the :mod:`re` module was " "extended with simple conditional expressions, written as ``(?(group)A|B)``. " @@ -1916,7 +1654,6 @@ msgid "" "Gustavo Niemeyer.)" msgstr "" -#: ../../whatsnew/2.4.rst:1260 msgid "" "The :mod:`re` module is also no longer recursive, thanks to a massive amount " "of work by Gustavo Niemeyer. In a recursive regular expression engine, " @@ -1930,7 +1667,6 @@ msgid "" "problems." msgstr "" -#: ../../whatsnew/2.4.rst:1270 msgid "" "The :mod:`signal` module now performs tighter error-checking on the " "parameters to the :func:`signal.signal` function. For example, you can't " @@ -1939,7 +1675,6 @@ msgid "" "exception." msgstr "" -#: ../../whatsnew/2.4.rst:1275 msgid "" "Two new functions were added to the :mod:`socket` module. :func:`socketpair` " "returns a pair of connected sockets and ``getservbyport(port)`` looks up the " @@ -1947,7 +1682,6 @@ msgid "" "Warsaw.)" msgstr "" -#: ../../whatsnew/2.4.rst:1280 msgid "" "The :func:`sys.exitfunc` function has been deprecated. Code should be using " "the existing :mod:`atexit` module, which correctly handles calling multiple " @@ -1955,20 +1689,17 @@ msgid "" "internal interface, accessed only by :mod:`atexit`." msgstr "" -#: ../../whatsnew/2.4.rst:1285 msgid "" "The :mod:`tarfile` module now generates GNU-format tar files by default. " "(Contributed by Lars Gustäbel.)" msgstr "" -#: ../../whatsnew/2.4.rst:1288 msgid "" "The :mod:`threading` module now has an elegantly simple way to support " "thread-local data. The module contains a :class:`local` class whose " "attribute values are local to different threads. ::" msgstr "" -#: ../../whatsnew/2.4.rst:1292 msgid "" "import threading\n" "\n" @@ -1977,22 +1708,18 @@ msgid "" "data.url = ('www.python.org', 80)" msgstr "" -#: ../../whatsnew/2.4.rst:1298 msgid "" -"Other threads can assign and retrieve their own values for " -"the :attr:`number` and :attr:`url` attributes. You can " -"subclass :class:`local` to initialize attributes or to add methods. " -"(Contributed by Jim Fulton.)" +"Other threads can assign and retrieve their own values for the :attr:" +"`number` and :attr:`url` attributes. You can subclass :class:`local` to " +"initialize attributes or to add methods. (Contributed by Jim Fulton.)" msgstr "" -#: ../../whatsnew/2.4.rst:1302 msgid "" "The :mod:`timeit` module now automatically disables periodic garbage " "collection during the timing loop. This change makes consecutive timings " "more comparable. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1306 msgid "" "The :mod:`weakref` module now supports a wider variety of objects including " "Python functions, class instances, sets, frozensets, deques, arrays, files, " @@ -2000,24 +1727,20 @@ msgid "" "Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1311 msgid "" "The :mod:`xmlrpclib ` module now supports a multi-call " "extension for transmitting multiple XML-RPC calls in a single HTTP " "operation. (Contributed by Brian Quinlan.)" msgstr "" -#: ../../whatsnew/2.4.rst:1315 msgid "" "The :mod:`mpz`, :mod:`rotor`, and :mod:`xreadlines` modules have been " "removed." msgstr "" -#: ../../whatsnew/2.4.rst:1324 msgid "cookielib" msgstr "" -#: ../../whatsnew/2.4.rst:1326 msgid "" "The :mod:`cookielib ` library supports client-side handling " "for HTTP cookies, mirroring the :mod:`Cookie ` module's server-" @@ -2027,7 +1750,6 @@ msgid "" "browsers, policy objects control whether cookies are accepted or not." msgstr "" -#: ../../whatsnew/2.4.rst:1333 msgid "" "In order to store cookies across sessions, two implementations of cookie " "jars are provided: one that stores cookies in the Netscape format so " @@ -2035,36 +1757,30 @@ msgid "" "cookies in the same format as the Perl libwww library." msgstr "" -#: ../../whatsnew/2.4.rst:1338 msgid "" -":mod:`urllib2 ` has been changed to interact " -"with :mod:`cookielib `: :class:`HTTPCookieProcessor` manages " -"a cookie jar that is used when accessing URLs." +":mod:`urllib2 ` has been changed to interact with :mod:" +"`cookielib `: :class:`HTTPCookieProcessor` manages a cookie " +"jar that is used when accessing URLs." msgstr "" -#: ../../whatsnew/2.4.rst:1342 msgid "This module was contributed by John J. Lee." msgstr "" -#: ../../whatsnew/2.4.rst:1348 msgid "doctest" msgstr "" -#: ../../whatsnew/2.4.rst:1350 msgid "" "The :mod:`doctest` module underwent considerable refactoring thanks to " -"Edward Loper and Tim Peters. Testing can still be as simple as " -"running :func:`doctest.testmod`, but the refactorings allow customizing the " -"module's operation in various ways" +"Edward Loper and Tim Peters. Testing can still be as simple as running :" +"func:`doctest.testmod`, but the refactorings allow customizing the module's " +"operation in various ways" msgstr "" -#: ../../whatsnew/2.4.rst:1355 msgid "" "The new :class:`DocTestFinder` class extracts the tests from a given " "object's docstrings::" msgstr "" -#: ../../whatsnew/2.4.rst:1358 msgid "" "def f (x, y):\n" " \"\"\">>> f(2,2)\n" @@ -2080,13 +1796,11 @@ msgid "" "tests = finder.find(f)" msgstr "" -#: ../../whatsnew/2.4.rst:1371 msgid "" "The new :class:`DocTestRunner` class then runs individual tests and can " "produce a summary of the results::" msgstr "" -#: ../../whatsnew/2.4.rst:1374 msgid "" "runner = doctest.DocTestRunner()\n" "for t in tests:\n" @@ -2095,11 +1809,9 @@ msgid "" "runner.summarize(verbose=1)" msgstr "" -#: ../../whatsnew/2.4.rst:1380 msgid "The above example produces the following output::" msgstr "" -#: ../../whatsnew/2.4.rst:1382 msgid "" "1 items passed all tests:\n" " 2 tests in f\n" @@ -2108,7 +1820,6 @@ msgid "" "Test passed." msgstr "" -#: ../../whatsnew/2.4.rst:1388 msgid "" ":class:`DocTestRunner` uses an instance of the :class:`OutputChecker` class " "to compare the expected output with the actual output. This class takes a " @@ -2116,7 +1827,6 @@ msgid "" "also write a completely new subclass of :class:`OutputChecker`." msgstr "" -#: ../../whatsnew/2.4.rst:1393 msgid "" "The default output checker provides a number of handy features. For example, " "with the :const:`doctest.ELLIPSIS` option flag, an ellipsis (``...``) in the " @@ -2124,7 +1834,6 @@ msgid "" "outputs that vary in minor ways::" msgstr "" -#: ../../whatsnew/2.4.rst:1398 msgid "" "def o (n):\n" " \"\"\">>> o(1)\n" @@ -2133,11 +1842,9 @@ msgid "" "\"\"\"" msgstr "" -#: ../../whatsnew/2.4.rst:1404 msgid "Another special string, ````, matches a blank line::" msgstr "" -#: ../../whatsnew/2.4.rst:1406 msgid "" "def p (n):\n" " \"\"\">>> p(1)\n" @@ -2146,15 +1853,13 @@ msgid "" "\"\"\"" msgstr "" -#: ../../whatsnew/2.4.rst:1412 msgid "" "Another new capability is producing a diff-style display of the output by " -"specifying the :const:`doctest.REPORT_UDIFF` (unified " -"diffs), :const:`doctest.REPORT_CDIFF` (context diffs), " -"or :const:`doctest.REPORT_NDIFF` (delta-style) option flags. For example::" +"specifying the :const:`doctest.REPORT_UDIFF` (unified diffs), :const:" +"`doctest.REPORT_CDIFF` (context diffs), or :const:`doctest.REPORT_NDIFF` " +"(delta-style) option flags. For example::" msgstr "" -#: ../../whatsnew/2.4.rst:1417 msgid "" "def g (n):\n" " \"\"\">>> g(4)\n" @@ -2168,13 +1873,11 @@ msgid "" " print word" msgstr "" -#: ../../whatsnew/2.4.rst:1428 msgid "" "Running the above function's tests with :const:`doctest.REPORT_UDIFF` " "specified, you get the following output:" msgstr "" -#: ../../whatsnew/2.4.rst:1431 msgid "" "**********************************************************************\n" "File \"t.py\", line 15, in g\n" @@ -2189,48 +1892,40 @@ msgid "" "**********************************************************************" msgstr "" -#: ../../whatsnew/2.4.rst:1449 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/2.4.rst:1451 msgid "Some of the changes to Python's build process and to the C API are:" msgstr "" -#: ../../whatsnew/2.4.rst:1453 msgid "" "Three new convenience macros were added for common return values from " "extension functions: :c:macro:`Py_RETURN_NONE`, :c:macro:`Py_RETURN_TRUE`, " "and :c:macro:`Py_RETURN_FALSE`. (Contributed by Brett Cannon.)" msgstr "" -#: ../../whatsnew/2.4.rst:1457 msgid "" "Another new macro, :c:macro:`Py_CLEAR`, decreases the reference count of " "*obj* and sets *obj* to the null pointer. (Contributed by Jim Fulton.)" msgstr "" -#: ../../whatsnew/2.4.rst:1460 msgid "" "A new function, ``PyTuple_Pack(N, obj1, obj2, ..., objN)``, constructs " "tuples from a variable length argument list of Python objects. (Contributed " "by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1464 msgid "" "A new function, ``PyDict_Contains(d, k)``, implements fast dictionary " "lookups without masking exceptions raised during the look-up process. " "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1468 msgid "" "The :c:expr:`Py_IS_NAN(X)` macro returns 1 if its float or double argument " "*X* is a NaN. (Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.4.rst:1471 msgid "" "C code can avoid unnecessary locking by using the new :c:func:`!" "PyEval_ThreadsInitialized` function to tell if any thread operations have " @@ -2238,14 +1933,12 @@ msgid "" "needed. (Contributed by Nick Coghlan.)" msgstr "" -#: ../../whatsnew/2.4.rst:1476 msgid "" -"A new function, :c:func:`PyArg_VaParseTupleAndKeywords`, is the same " -"as :c:func:`PyArg_ParseTupleAndKeywords` but takes a :c:type:`va_list` " -"instead of a number of arguments. (Contributed by Greg Chapman.)" +"A new function, :c:func:`PyArg_VaParseTupleAndKeywords`, is the same as :c:" +"func:`PyArg_ParseTupleAndKeywords` but takes a :c:type:`va_list` instead of " +"a number of arguments. (Contributed by Greg Chapman.)" msgstr "" -#: ../../whatsnew/2.4.rst:1480 msgid "" "A new method flag, :c:macro:`METH_COEXIST`, allows a function defined in " "slots to co-exist with a :c:type:`PyCFunction` having the same name. This " @@ -2253,60 +1946,51 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.4.rst:1485 msgid "" "Python can now be built with additional profiling for the interpreter " -"itself, intended as an aid to people developing the Python core. " -"Providing :option:`!--enable-profiling` to the :program:`configure` script " -"will let you profile the interpreter with :program:`gprof`, and providing " -"the :option:`!--with-tsc` switch enables profiling using the Pentium's Time-" -"Stamp-Counter register. Note that the :option:`!--with-tsc` switch is " -"slightly misnamed, because the profiling feature also works on the PowerPC " -"platform, though that processor architecture doesn't call that register " -"\"the TSC register\". (Contributed by Jeremy Hylton.)" +"itself, intended as an aid to people developing the Python core. Providing :" +"option:`!--enable-profiling` to the :program:`configure` script will let you " +"profile the interpreter with :program:`gprof`, and providing the :option:`!--" +"with-tsc` switch enables profiling using the Pentium's Time-Stamp-Counter " +"register. Note that the :option:`!--with-tsc` switch is slightly misnamed, " +"because the profiling feature also works on the PowerPC platform, though " +"that processor architecture doesn't call that register \"the TSC " +"register\". (Contributed by Jeremy Hylton.)" msgstr "" -#: ../../whatsnew/2.4.rst:1495 msgid "" -"The :c:type:`!tracebackobject` type has been renamed " -"to :c:type:`PyTracebackObject`." +"The :c:type:`!tracebackobject` type has been renamed to :c:type:" +"`PyTracebackObject`." msgstr "" -#: ../../whatsnew/2.4.rst:1502 msgid "Port-Specific Changes" msgstr "" -#: ../../whatsnew/2.4.rst:1504 msgid "" "The Windows port now builds under MSVC++ 7.1 as well as version 6. " "(Contributed by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.4.rst:1511 msgid "Porting to Python 2.4" msgstr "" -#: ../../whatsnew/2.4.rst:1513 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" -#: ../../whatsnew/2.4.rst:1516 msgid "" "Left shifts and hexadecimal/octal constants that are too large no longer " "trigger a :exc:`FutureWarning` and return a value limited to 32 or 64 bits; " "instead they return a long integer." msgstr "" -#: ../../whatsnew/2.4.rst:1523 msgid "" "The :func:`zip` built-in function and :func:`itertools.izip` now return an " "empty list instead of raising a :exc:`TypeError` exception if called with no " "arguments." msgstr "" -#: ../../whatsnew/2.4.rst:1527 msgid "" "You can no longer compare the :class:`date` and :class:`~datetime.datetime` " "instances provided by the :mod:`datetime` module. Two instances of " @@ -2314,55 +1998,46 @@ msgid "" "(``<``, ``>``) will raise a :exc:`TypeError`." msgstr "" -#: ../../whatsnew/2.4.rst:1532 msgid "" ":func:`!dircache.listdir` now passes exceptions to the caller instead of " "returning empty lists." msgstr "" -#: ../../whatsnew/2.4.rst:1535 msgid "" ":func:`LexicalHandler.startDTD` used to receive the public and system IDs in " "the wrong order. This has been corrected; applications relying on the wrong " "order need to be fixed." msgstr "" -#: ../../whatsnew/2.4.rst:1539 msgid "" ":func:`fcntl.ioctl` now warns if the *mutate* argument is omitted and " "relevant." msgstr "" -#: ../../whatsnew/2.4.rst:1542 msgid "" "The :mod:`tarfile` module now generates GNU-format tar files by default." msgstr "" -#: ../../whatsnew/2.4.rst:1544 msgid "" "Encountering a failure while importing a module no longer leaves a partially " "initialized module object in ``sys.modules``." msgstr "" -#: ../../whatsnew/2.4.rst:1547 msgid "" ":const:`None` is now a constant; code that binds a new value to the name " "``None`` is now a syntax error." msgstr "" -#: ../../whatsnew/2.4.rst:1550 msgid "" "The :func:`signals.signal` function now raises a :exc:`RuntimeError` " "exception for certain illegal values; previously these errors would pass " -"silently. For example, you can no longer set a handler on " -"the :const:`SIGKILL` signal." +"silently. For example, you can no longer set a handler on the :const:" +"`SIGKILL` signal." msgstr "" -#: ../../whatsnew/2.4.rst:1560 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.4.rst:1562 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -2370,10 +2045,8 @@ msgid "" "Hamish Lawson, Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb." msgstr "" -#: ../../whatsnew/2.4.rst:415 msgid "universal newlines" msgstr "" -#: ../../whatsnew/2.4.rst:415 msgid "What's new" msgstr "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index d646bfb..32ca745 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,26 +22,21 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.5.rst:3 msgid "What's New in Python 2.5" msgstr "" -#: ../../whatsnew/2.5.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.5.rst:5 msgid "A.M. Kuchling" msgstr "" -#: ../../whatsnew/2.5.rst:12 msgid "" "This article explains the new features in Python 2.5. The final release of " "Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned " "release schedule. Python 2.5 was released on September 19, 2006." msgstr "" -#: ../../whatsnew/2.5.rst:16 msgid "" "The changes in Python 2.5 are an interesting mix of language and library " "improvements. The library enhancements will be more important to Python's " @@ -51,7 +46,6 @@ msgid "" "calling C functions." msgstr "" -#: ../../whatsnew/2.5.rst:23 msgid "" "The language changes are of middling significance. Some pleasant new " "features were added, but most of them aren't features that you'll use every " @@ -60,13 +54,12 @@ msgid "" "statement will make writing cleanup code easier (section :ref:`pep-343`). " "Values can now be passed into generators (section :ref:`pep-342`). Imports " "are now visible as either absolute or relative (section :ref:`pep-328`). " -"Some corner cases of exception handling are handled better " -"(section :ref:`pep-341`). All these improvements are worthwhile, but " -"they're improvements to one specific language feature or another; none of " -"them are broad modifications to Python's semantics." +"Some corner cases of exception handling are handled better (section :ref:" +"`pep-341`). All these improvements are worthwhile, but they're improvements " +"to one specific language feature or another; none of them are broad " +"modifications to Python's semantics." msgstr "" -#: ../../whatsnew/2.5.rst:34 msgid "" "As well as the language and library additions, other improvements and " "bugfixes were made throughout the source tree. A search through the SVN " @@ -74,7 +67,6 @@ msgid "" "Python 2.4 and 2.5. (Both figures are likely to be underestimates.)" msgstr "" -#: ../../whatsnew/2.5.rst:39 msgid "" "This article doesn't try to be a complete specification of the new features; " "instead changes are briefly introduced using helpful examples. For full " @@ -84,17 +76,14 @@ msgid "" "feature." msgstr "" -#: ../../whatsnew/2.5.rst:45 msgid "" "Comments, suggestions, and error reports for this document are welcome; " "please e-mail them to the author or open a bug in the Python bug tracker." msgstr "" -#: ../../whatsnew/2.5.rst:54 msgid "PEP 308: Conditional Expressions" msgstr "" -#: ../../whatsnew/2.5.rst:56 msgid "" "For a long time, people have been requesting a way to write conditional " "expressions, which are expressions that return value A or value B depending " @@ -103,7 +92,6 @@ msgid "" "following::" msgstr "" -#: ../../whatsnew/2.5.rst:61 msgid "" "if condition:\n" " x = true_value\n" @@ -111,7 +99,6 @@ msgid "" " x = false_value" msgstr "" -#: ../../whatsnew/2.5.rst:66 msgid "" "There have been endless tedious discussions of syntax on both python-dev and " "comp.lang.python. A vote was even held that found the majority of voters " @@ -120,15 +107,12 @@ msgid "" "false_v``, ``if cond then true_v else false_v``, and 16 other variations." msgstr "" -#: ../../whatsnew/2.5.rst:72 msgid "Guido van Rossum eventually chose a surprising syntax::" msgstr "" -#: ../../whatsnew/2.5.rst:74 msgid "x = true_value if condition else false_value" msgstr "" -#: ../../whatsnew/2.5.rst:76 msgid "" "Evaluation is still lazy as in existing Boolean expressions, so the order of " "evaluation jumps around a bit. The *condition* expression in the middle is " @@ -137,7 +121,6 @@ msgid "" "evaluated when the condition is false." msgstr "" -#: ../../whatsnew/2.5.rst:82 msgid "" "This syntax may seem strange and backwards; why does the condition go in the " "*middle* of the expression, and not in the front as in C's ``c ? x : y``? " @@ -149,11 +132,9 @@ msgid "" "bit more obvious::" msgstr "" -#: ../../whatsnew/2.5.rst:90 msgid "contents = ((doc + '\\n') if doc else '')" msgstr "" -#: ../../whatsnew/2.5.rst:92 msgid "" "I read the above statement as meaning \"here *contents* is usually assigned " "a value of ``doc+'\\n'``; sometimes *doc* is empty, in which special case " @@ -161,7 +142,6 @@ msgid "" "very often where there isn't a clear common and uncommon case." msgstr "" -#: ../../whatsnew/2.5.rst:97 msgid "" "There was some discussion of whether the language should require surrounding " "conditional expressions with parentheses. The decision was made to *not* " @@ -169,7 +149,6 @@ msgid "" "style I think you should always use them. Consider these two statements::" msgstr "" -#: ../../whatsnew/2.5.rst:102 msgid "" "# First version -- no parens\n" "level = 1 if logging else 0\n" @@ -178,7 +157,6 @@ msgid "" "level = (1 if logging else 0)" msgstr "" -#: ../../whatsnew/2.5.rst:108 msgid "" "In the first version, I think a reader's eye might group the statement into " "'level = 1', 'if logging', 'else 0', and think that the condition decides " @@ -187,7 +165,6 @@ msgid "" "always performed and the choice is being made between two values." msgstr "" -#: ../../whatsnew/2.5.rst:114 msgid "" "Another reason for including the brackets: a few odd combinations of list " "comprehensions and lambdas could look like incorrect conditional " @@ -195,27 +172,22 @@ msgid "" "around your conditional expressions, you won't run into this case." msgstr "" -#: ../../whatsnew/2.5.rst:122 msgid ":pep:`308` - Conditional Expressions" msgstr "" -#: ../../whatsnew/2.5.rst:123 msgid "" "PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by " "Thomas Wouters." msgstr "" -#: ../../whatsnew/2.5.rst:132 msgid "PEP 309: Partial Function Application" msgstr "" -#: ../../whatsnew/2.5.rst:134 msgid "" "The :mod:`functools` module is intended to contain tools for functional-" "style programming." msgstr "" -#: ../../whatsnew/2.5.rst:137 msgid "" "One useful tool in this module is the :func:`partial` function. For programs " "written in a functional style, you'll sometimes want to construct variants " @@ -225,18 +197,15 @@ msgid "" "function application\"." msgstr "" -#: ../../whatsnew/2.5.rst:144 msgid "" ":func:`partial` takes the arguments ``(function, arg1, arg2, ... " "kwarg1=value1, kwarg2=value2)``. The resulting object is callable, so you " "can just call it to invoke *function* with the filled-in arguments." msgstr "" -#: ../../whatsnew/2.5.rst:148 msgid "Here's a small but realistic example::" msgstr "" -#: ../../whatsnew/2.5.rst:150 msgid "" "import functools\n" "\n" @@ -249,15 +218,13 @@ msgid "" "server_log('Unable to open socket')" msgstr "" -#: ../../whatsnew/2.5.rst:160 msgid "" "Here's another example, from a program that uses PyGTK. Here a context-" "sensitive pop-up menu is being constructed dynamically. The callback " -"provided for the menu option is a partially applied version of " -"the :meth:`open_item` method, where the first argument has been provided. ::" +"provided for the menu option is a partially applied version of the :meth:" +"`open_item` method, where the first argument has been provided. ::" msgstr "" -#: ../../whatsnew/2.5.rst:165 msgid "" "...\n" "class Application:\n" @@ -268,7 +235,6 @@ msgid "" " popup_menu.append( (\"Open\", open_func, 1) )" msgstr "" -#: ../../whatsnew/2.5.rst:173 msgid "" "Another function in the :mod:`functools` module is the " "``update_wrapper(wrapper, wrapped)`` function that helps you write well-" @@ -277,7 +243,6 @@ msgid "" "wrapped function are easier to understand. For example, you might write::" msgstr "" -#: ../../whatsnew/2.5.rst:179 msgid "" "def my_decorator(f):\n" " def wrapper(*args, **kwds):\n" @@ -287,14 +252,12 @@ msgid "" " return wrapper" msgstr "" -#: ../../whatsnew/2.5.rst:186 msgid "" ":func:`wraps` is a decorator that can be used inside your own decorators to " "copy the wrapped function's information. An alternate version of the " "previous example would be::" msgstr "" -#: ../../whatsnew/2.5.rst:190 msgid "" "def my_decorator(f):\n" " @functools.wraps(f)\n" @@ -304,21 +267,17 @@ msgid "" " return wrapper" msgstr "" -#: ../../whatsnew/2.5.rst:200 msgid ":pep:`309` - Partial Function Application" msgstr "" -#: ../../whatsnew/2.5.rst:201 msgid "" "PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and " "Nick Coghlan, with adaptations by Raymond Hettinger." msgstr "" -#: ../../whatsnew/2.5.rst:210 msgid "PEP 314: Metadata for Python Software Packages v1.1" msgstr "" -#: ../../whatsnew/2.5.rst:212 msgid "" "Some simple dependency support was added to Distutils. The :func:`setup` " "function now has ``requires``, ``provides``, and ``obsoletes`` keyword " @@ -327,7 +286,6 @@ msgid "" "file." msgstr "" -#: ../../whatsnew/2.5.rst:217 msgid "" "Another new keyword parameter is ``download_url``, which should be set to a " "URL for the package's source code. This means it's now possible to look up " @@ -335,7 +293,6 @@ msgid "" "download the required packages. ::" msgstr "" -#: ../../whatsnew/2.5.rst:222 msgid "" "VERSION = '1.0'\n" "setup(name='PyPackage',\n" @@ -347,14 +304,12 @@ msgid "" " )" msgstr "" -#: ../../whatsnew/2.5.rst:231 msgid "" "Another new enhancement to the Python package index at https://pypi.org is " "storing source and binary archives for a package. The new :command:`upload` " "Distutils command will upload a package to the repository." msgstr "" -#: ../../whatsnew/2.5.rst:236 msgid "" "Before a package can be uploaded, you must be able to build a distribution " "using the :command:`sdist` Distutils command. Once that works, you can run " @@ -363,26 +318,21 @@ msgid "" "and :option:`!--identity` options." msgstr "" -#: ../../whatsnew/2.5.rst:242 msgid "" "Package uploading was implemented by Martin von Löwis and Richard Jones." msgstr "" -#: ../../whatsnew/2.5.rst:247 msgid ":pep:`314` - Metadata for Python Software Packages v1.1" msgstr "" -#: ../../whatsnew/2.5.rst:248 msgid "" "PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake; " "implemented by Richard Jones and Fred Drake." msgstr "" -#: ../../whatsnew/2.5.rst:257 msgid "PEP 328: Absolute and Relative Imports" msgstr "" -#: ../../whatsnew/2.5.rst:259 msgid "" "The simpler part of :pep:`328` was implemented in Python 2.4: parentheses " "could now be used to enclose the names imported from a module using the " @@ -390,7 +340,6 @@ msgid "" "names." msgstr "" -#: ../../whatsnew/2.5.rst:263 msgid "" "The more complicated part has been implemented in Python 2.5: importing a " "module can be specified to use absolute or package-relative imports. The " @@ -398,11 +347,9 @@ msgid "" "versions of Python." msgstr "" -#: ../../whatsnew/2.5.rst:267 msgid "Let's say you have a package directory like this::" msgstr "" -#: ../../whatsnew/2.5.rst:269 msgid "" "pkg/\n" "pkg/__init__.py\n" @@ -410,23 +357,20 @@ msgid "" "pkg/string.py" msgstr "" -#: ../../whatsnew/2.5.rst:274 msgid "" -"This defines a package named :mod:`pkg` containing the :mod:`pkg.main` " -"and :mod:`pkg.string` submodules." +"This defines a package named :mod:`pkg` containing the :mod:`pkg.main` and :" +"mod:`pkg.string` submodules." msgstr "" -#: ../../whatsnew/2.5.rst:277 msgid "" "Consider the code in the :file:`main.py` module. What happens if it " "executes the statement ``import string``? In Python 2.4 and earlier, it " "will first look in the package's directory to perform a relative import, " -"finds :file:`pkg/string.py`, imports the contents of that file as " -"the :mod:`pkg.string` module, and that module is bound to the name " -"``string`` in the :mod:`pkg.main` module's namespace." +"finds :file:`pkg/string.py`, imports the contents of that file as the :mod:" +"`pkg.string` module, and that module is bound to the name ``string`` in the :" +"mod:`pkg.main` module's namespace." msgstr "" -#: ../../whatsnew/2.5.rst:284 msgid "" "That's fine if :mod:`pkg.string` was what you wanted. But what if you " "wanted Python's standard :mod:`string` module? There's no clean way to " @@ -437,17 +381,15 @@ msgid "" "that package isn't available on all Python installations." msgstr "" -#: ../../whatsnew/2.5.rst:292 msgid "" "Reading code which relies on relative imports is also less clear, because a " -"reader may be confused about which module, :mod:`string` " -"or :mod:`pkg.string`, is intended to be used. Python users soon learned not " -"to duplicate the names of standard library modules in the names of their " -"packages' submodules, but you can't protect against having your submodule's " -"name being used for a new module added in a future version of Python." +"reader may be confused about which module, :mod:`string` or :mod:`pkg." +"string`, is intended to be used. Python users soon learned not to duplicate " +"the names of standard library modules in the names of their packages' " +"submodules, but you can't protect against having your submodule's name being " +"used for a new module added in a future version of Python." msgstr "" -#: ../../whatsnew/2.5.rst:299 msgid "" "In Python 2.5, you can switch :keyword:`import`'s behaviour to absolute " "imports using a ``from __future__ import absolute_import`` directive. This " @@ -458,13 +400,11 @@ msgid "" "preferable to begin writing ``from pkg import string`` in your code." msgstr "" -#: ../../whatsnew/2.5.rst:307 msgid "" "Relative imports are still possible by adding a leading period to the " "module name when using the ``from ... import`` form::" msgstr "" -#: ../../whatsnew/2.5.rst:310 msgid "" "# Import names from pkg.string\n" "from .string import name1, name2\n" @@ -472,50 +412,41 @@ msgid "" "from . import string" msgstr "" -#: ../../whatsnew/2.5.rst:315 msgid "" "This imports the :mod:`string` module relative to the current package, so " -"in :mod:`pkg.main` this will import *name1* and *name2* " -"from :mod:`pkg.string`. Additional leading periods perform the relative " -"import starting from the parent of the current package. For example, code " -"in the :mod:`A.B.C` module can do::" +"in :mod:`pkg.main` this will import *name1* and *name2* from :mod:`pkg." +"string`. Additional leading periods perform the relative import starting " +"from the parent of the current package. For example, code in the :mod:`A.B." +"C` module can do::" msgstr "" -#: ../../whatsnew/2.5.rst:320 msgid "" "from . import D # Imports A.B.D\n" "from .. import E # Imports A.E\n" "from ..F import G # Imports A.F.G" msgstr "" -#: ../../whatsnew/2.5.rst:324 msgid "" "Leading periods cannot be used with the ``import modname`` form of the " "import statement, only the ``from ... import`` form." msgstr "" -#: ../../whatsnew/2.5.rst:330 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" msgstr "" -#: ../../whatsnew/2.5.rst:331 msgid "PEP written by Aahz; implemented by Thomas Wouters." msgstr "" -#: ../../whatsnew/2.5.rst:333 msgid "https://pylib.readthedocs.io/" msgstr "" -#: ../../whatsnew/2.5.rst:334 msgid "" "The py library by Holger Krekel, which contains the :mod:`py.std` package." msgstr "" -#: ../../whatsnew/2.5.rst:342 msgid "PEP 338: Executing Modules as Scripts" msgstr "" -#: ../../whatsnew/2.5.rst:344 msgid "" "The :option:`-m` switch added in Python 2.4 to execute a module as a script " "gained a few more abilities. Instead of being implemented in C code inside " @@ -523,29 +454,24 @@ msgid "" "module, :mod:`runpy`." msgstr "" -#: ../../whatsnew/2.5.rst:349 msgid "" "The :mod:`runpy` module implements a more sophisticated import mechanism so " -"that it's now possible to run modules in a package such " -"as :mod:`pychecker.checker`. The module also supports alternative import " -"mechanisms such as the :mod:`zipimport` module. This means you can add " -"a .zip archive's path to ``sys.path`` and then use the :option:`-m` switch " -"to execute code from the archive." +"that it's now possible to run modules in a package such as :mod:`pychecker." +"checker`. The module also supports alternative import mechanisms such as " +"the :mod:`zipimport` module. This means you can add a .zip archive's path " +"to ``sys.path`` and then use the :option:`-m` switch to execute code from " +"the archive." msgstr "" -#: ../../whatsnew/2.5.rst:359 msgid ":pep:`338` - Executing modules as scripts" msgstr "" -#: ../../whatsnew/2.5.rst:360 msgid "PEP written and implemented by Nick Coghlan." msgstr "" -#: ../../whatsnew/2.5.rst:368 msgid "PEP 341: Unified try/except/finally" msgstr "" -#: ../../whatsnew/2.5.rst:370 msgid "" "Until Python 2.5, the :keyword:`try` statement came in two flavours. You " "could use a :keyword:`finally` block to ensure that code is always executed, " @@ -556,7 +482,6 @@ msgid "" "should be." msgstr "" -#: ../../whatsnew/2.5.rst:377 msgid "" "Guido van Rossum spent some time working with Java, which does support the " "equivalent of combining :keyword:`except` blocks and a :keyword:`finally` " @@ -564,7 +489,6 @@ msgid "" "you can now write::" msgstr "" -#: ../../whatsnew/2.5.rst:382 msgid "" "try:\n" " block-1 ...\n" @@ -578,16 +502,14 @@ msgid "" " final-block" msgstr "" -#: ../../whatsnew/2.5.rst:393 msgid "" "The code in *block-1* is executed. If the code raises an exception, the " -"various :keyword:`except` blocks are tested: if the exception is of " -"class :class:`Exception1`, *handler-1* is executed; otherwise if it's of " -"class :class:`Exception2`, *handler-2* is executed, and so forth. If no " -"exception is raised, the *else-block* is executed." +"various :keyword:`except` blocks are tested: if the exception is of class :" +"class:`Exception1`, *handler-1* is executed; otherwise if it's of class :" +"class:`Exception2`, *handler-2* is executed, and so forth. If no exception " +"is raised, the *else-block* is executed." msgstr "" -#: ../../whatsnew/2.5.rst:399 msgid "" "No matter what happened previously, the *final-block* is executed once the " "code block is complete and any raised exceptions handled. Even if there's an " @@ -595,19 +517,15 @@ msgid "" "raised, the code in the *final-block* is still run." msgstr "" -#: ../../whatsnew/2.5.rst:407 msgid ":pep:`341` - Unifying try-except and try-finally" msgstr "" -#: ../../whatsnew/2.5.rst:408 msgid "PEP written by Georg Brandl; implementation by Thomas Lee." msgstr "" -#: ../../whatsnew/2.5.rst:416 msgid "PEP 342: New Generator Features" msgstr "" -#: ../../whatsnew/2.5.rst:418 msgid "" "Python 2.5 adds a simple way to pass values *into* a generator. As " "introduced in Python 2.3, generators only produce output; once a generator's " @@ -619,11 +537,9 @@ msgid "" "callers then modify." msgstr "" -#: ../../whatsnew/2.5.rst:426 msgid "To refresh your memory of basic generators, here's a simple example::" msgstr "" -#: ../../whatsnew/2.5.rst:428 msgid "" "def counter (maximum):\n" " i = 0\n" @@ -632,7 +548,6 @@ msgid "" " i += 1" msgstr "" -#: ../../whatsnew/2.5.rst:434 msgid "" "When you call ``counter(10)``, the result is an iterator that returns the " "values from 0 up to 9. On encountering the :keyword:`yield` statement, the " @@ -642,18 +557,15 @@ msgid "" "statement." msgstr "" -#: ../../whatsnew/2.5.rst:440 msgid "" "In Python 2.3, :keyword:`yield` was a statement; it didn't return any " "value. In 2.5, :keyword:`!yield` is now an expression, returning a value " "that can be assigned to a variable or otherwise operated on::" msgstr "" -#: ../../whatsnew/2.5.rst:444 msgid "val = (yield i)" msgstr "" -#: ../../whatsnew/2.5.rst:446 msgid "" "I recommend that you always put parentheses around a :keyword:`yield` " "expression when you're doing something with the returned value, as in the " @@ -661,30 +573,26 @@ msgid "" "always add them instead of having to remember when they're needed." msgstr "" -#: ../../whatsnew/2.5.rst:451 msgid "" -"(:pep:`342` explains the exact rules, which are that a :keyword:`yield`\\ " -"-expression must always be parenthesized except when it occurs at the top-" +"(:pep:`342` explains the exact rules, which are that a :keyword:`yield`\\ -" +"expression must always be parenthesized except when it occurs at the top-" "level expression on the right-hand side of an assignment. This means you " "can write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" -#: ../../whatsnew/2.5.rst:458 msgid "" "Values are sent into a generator by calling its ``send(value)`` method. The " "generator's code is then resumed and the :keyword:`yield` expression returns " -"the specified *value*. If the regular :meth:`next` method is called, " -"the :keyword:`!yield` returns :const:`None`." +"the specified *value*. If the regular :meth:`next` method is called, the :" +"keyword:`!yield` returns :const:`None`." msgstr "" -#: ../../whatsnew/2.5.rst:463 msgid "" "Here's the previous example, modified to allow changing the value of the " "internal counter. ::" msgstr "" -#: ../../whatsnew/2.5.rst:466 msgid "" "def counter (maximum):\n" " i = 0\n" @@ -697,11 +605,9 @@ msgid "" " i += 1" msgstr "" -#: ../../whatsnew/2.5.rst:476 msgid "And here's an example of changing the counter::" msgstr "" -#: ../../whatsnew/2.5.rst:478 msgid "" ">>> it = counter(10)\n" ">>> print it.next()\n" @@ -719,7 +625,6 @@ msgid "" "StopIteration" msgstr "" -#: ../../whatsnew/2.5.rst:493 msgid "" ":keyword:`yield` will usually return :const:`None`, so you should always " "check for this case. Don't just use its value in expressions unless you're " @@ -727,44 +632,38 @@ msgid "" "your generator function." msgstr "" -#: ../../whatsnew/2.5.rst:498 msgid "" "In addition to :meth:`send`, there are two other new methods on generators:" msgstr "" -#: ../../whatsnew/2.5.rst:500 msgid "" "``throw(type, value=None, traceback=None)`` is used to raise an exception " "inside the generator; the exception is raised by the :keyword:`yield` " "expression where the generator's execution is paused." msgstr "" -#: ../../whatsnew/2.5.rst:504 msgid "" ":meth:`close` raises a new :exc:`GeneratorExit` exception inside the " "generator to terminate the iteration. On receiving this exception, the " -"generator's code must either raise :exc:`GeneratorExit` " -"or :exc:`StopIteration`. Catching the :exc:`GeneratorExit` exception and " -"returning a value is illegal and will trigger a :exc:`RuntimeError`; if the " -"function raises some other exception, that exception is propagated to the " -"caller. :meth:`close` will also be called by Python's garbage collector " -"when the generator is garbage-collected." +"generator's code must either raise :exc:`GeneratorExit` or :exc:" +"`StopIteration`. Catching the :exc:`GeneratorExit` exception and returning " +"a value is illegal and will trigger a :exc:`RuntimeError`; if the function " +"raises some other exception, that exception is propagated to the caller. :" +"meth:`close` will also be called by Python's garbage collector when the " +"generator is garbage-collected." msgstr "" -#: ../../whatsnew/2.5.rst:512 msgid "" "If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " -"suggest using a ``try: ... finally:`` suite instead of " -"catching :exc:`GeneratorExit`." +"suggest using a ``try: ... finally:`` suite instead of catching :exc:" +"`GeneratorExit`." msgstr "" -#: ../../whatsnew/2.5.rst:515 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" -#: ../../whatsnew/2.5.rst:518 msgid "" "Generators also become *coroutines*, a more generalized form of subroutines. " "Subroutines are entered at one point and exited at another point (the top of " @@ -774,71 +673,59 @@ msgid "" "effectively in Python." msgstr "" -#: ../../whatsnew/2.5.rst:524 msgid "" "The addition of the :meth:`close` method has one side effect that isn't " "obvious. :meth:`close` is called when a generator is garbage-collected, so " "this means the generator's code gets one last chance to run before the " "generator is destroyed. This last chance means that ``try...finally`` " -"statements in generators can now be guaranteed to work; " -"the :keyword:`finally` clause will now always get a chance to run. The " -"syntactic restriction that you couldn't mix :keyword:`yield` statements with " -"a ``try...finally`` suite has therefore been removed. This seems like a " -"minor bit of language trivia, but using generators and ``try...finally`` is " -"actually necessary in order to implement the :keyword:`with` statement " -"described by :pep:`343`. I'll look at this new statement in the following " -"section." +"statements in generators can now be guaranteed to work; the :keyword:" +"`finally` clause will now always get a chance to run. The syntactic " +"restriction that you couldn't mix :keyword:`yield` statements with a ``try..." +"finally`` suite has therefore been removed. This seems like a minor bit of " +"language trivia, but using generators and ``try...finally`` is actually " +"necessary in order to implement the :keyword:`with` statement described by :" +"pep:`343`. I'll look at this new statement in the following section." msgstr "" -#: ../../whatsnew/2.5.rst:536 msgid "" -"Another even more esoteric effect of this change: previously, " -"the :attr:`gi_frame` attribute of a generator was always a frame object. " -"It's now possible for :attr:`gi_frame` to be ``None`` once the generator has " -"been exhausted." +"Another even more esoteric effect of this change: previously, the :attr:" +"`gi_frame` attribute of a generator was always a frame object. It's now " +"possible for :attr:`gi_frame` to be ``None`` once the generator has been " +"exhausted." msgstr "" -#: ../../whatsnew/2.5.rst:544 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr "" -#: ../../whatsnew/2.5.rst:545 msgid "" "PEP written by Guido van Rossum and Phillip J. Eby; implemented by Phillip " "J. Eby. Includes examples of some fancier uses of generators as coroutines." msgstr "" -#: ../../whatsnew/2.5.rst:548 msgid "" "Earlier versions of these features were proposed in :pep:`288` by Raymond " "Hettinger and :pep:`325` by Samuele Pedroni." msgstr "" -#: ../../whatsnew/2.5.rst:551 msgid "https://en.wikipedia.org/wiki/Coroutine" msgstr "" -#: ../../whatsnew/2.5.rst:552 msgid "The Wikipedia entry for coroutines." msgstr "" -#: ../../whatsnew/2.5.rst:554 msgid "" "https://web.archive.org/web/20160321211320/http://www.sidhe.org/~dan/blog/" "archives/000178.html" msgstr "" -#: ../../whatsnew/2.5.rst:555 msgid "" "An explanation of coroutines from a Perl point of view, written by Dan " "Sugalski." msgstr "" -#: ../../whatsnew/2.5.rst:563 msgid "PEP 343: The 'with' statement" msgstr "" -#: ../../whatsnew/2.5.rst:565 msgid "" "The ':keyword:`with`' statement clarifies code that previously would use " "``try...finally`` blocks to ensure that clean-up code is executed. In this " @@ -847,26 +734,22 @@ msgid "" "objects for use with this statement." msgstr "" -#: ../../whatsnew/2.5.rst:571 msgid "" "The ':keyword:`with`' statement is a new control-flow structure whose basic " "structure is::" msgstr "" -#: ../../whatsnew/2.5.rst:574 msgid "" "with expression [as variable]:\n" " with-block" msgstr "" -#: ../../whatsnew/2.5.rst:577 msgid "" "The expression is evaluated, and it should result in an object that supports " -"the context management protocol (that is, has :meth:`~object.__enter__` " -"and :meth:`~object.__exit__` methods." +"the context management protocol (that is, has :meth:`~object.__enter__` and :" +"meth:`~object.__exit__` methods." msgstr "" -#: ../../whatsnew/2.5.rst:581 msgid "" "The object's :meth:`~object.__enter__` is called before *with-block* is " "executed and therefore can run set-up code. It also may return a value that " @@ -874,35 +757,29 @@ msgid "" "is *not* assigned the result of *expression*.)" msgstr "" -#: ../../whatsnew/2.5.rst:586 msgid "" -"After execution of the *with-block* is finished, the " -"object's :meth:`~object.__exit__` method is called, even if the block raised " -"an exception, and can therefore run clean-up code." +"After execution of the *with-block* is finished, the object's :meth:`~object." +"__exit__` method is called, even if the block raised an exception, and can " +"therefore run clean-up code." msgstr "" -#: ../../whatsnew/2.5.rst:590 msgid "" "To enable the statement in Python 2.5, you need to add the following " "directive to your module::" msgstr "" -#: ../../whatsnew/2.5.rst:593 msgid "from __future__ import with_statement" msgstr "" -#: ../../whatsnew/2.5.rst:595 msgid "The statement will always be enabled in Python 2.6." msgstr "" -#: ../../whatsnew/2.5.rst:597 msgid "" "Some standard Python objects now support the context management protocol and " "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" -#: ../../whatsnew/2.5.rst:600 msgid "" "with open('/etc/passwd', 'r') as f:\n" " for line in f:\n" @@ -910,26 +787,22 @@ msgid "" " ... more processing code ..." msgstr "" -#: ../../whatsnew/2.5.rst:605 msgid "" "After this statement has executed, the file object in *f* will have been " "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" -#: ../../whatsnew/2.5.rst:611 msgid "" -"In this case, *f* is the same object created by :func:`open`, " -"because :meth:`~object.__enter__` returns *self*." +"In this case, *f* is the same object created by :func:`open`, because :meth:" +"`~object.__enter__` returns *self*." msgstr "" -#: ../../whatsnew/2.5.rst:614 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" -#: ../../whatsnew/2.5.rst:617 msgid "" "lock = threading.Lock()\n" "with lock:\n" @@ -937,20 +810,17 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.5.rst:622 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" -#: ../../whatsnew/2.5.rst:625 msgid "" "The new :func:`localcontext` function in the :mod:`decimal` module makes it " "easy to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" -#: ../../whatsnew/2.5.rst:629 msgid "" "from decimal import Decimal, Context, localcontext\n" "\n" @@ -964,11 +834,9 @@ msgid "" " print v.sqrt()" msgstr "" -#: ../../whatsnew/2.5.rst:644 msgid "Writing Context Managers" msgstr "" -#: ../../whatsnew/2.5.rst:646 msgid "" "Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " "people will only use ':keyword:`!with`' in company with existing objects and " @@ -977,52 +845,44 @@ msgid "" "the underlying implementation and should keep reading." msgstr "" -#: ../../whatsnew/2.5.rst:652 msgid "A high-level explanation of the context management protocol is:" msgstr "" -#: ../../whatsnew/2.5.rst:654 msgid "" "The expression is evaluated and should result in an object called a " -"\"context manager\". The context manager must " -"have :meth:`~object.__enter__` and :meth:`~object.__exit__` methods." +"\"context manager\". The context manager must have :meth:`~object." +"__enter__` and :meth:`~object.__exit__` methods." msgstr "" -#: ../../whatsnew/2.5.rst:658 msgid "" "The context manager's :meth:`~object.__enter__` method is called. The value " "returned is assigned to *VAR*. If no ``'as VAR'`` clause is present, the " "value is simply discarded." msgstr "" -#: ../../whatsnew/2.5.rst:662 msgid "The code in *BLOCK* is executed." msgstr "" -#: ../../whatsnew/2.5.rst:664 msgid "" "If *BLOCK* raises an exception, the ``__exit__(type, value, traceback)`` is " -"called with the exception details, the same values returned " -"by :func:`sys.exc_info`. The method's return value controls whether the " -"exception is re-raised: any false value re-raises the exception, and " -"``True`` will result in suppressing it. You'll only rarely want to suppress " -"the exception, because if you do the author of the code containing the " -"':keyword:`with`' statement will never realize anything went wrong." +"called with the exception details, the same values returned by :func:`sys." +"exc_info`. The method's return value controls whether the exception is re-" +"raised: any false value re-raises the exception, and ``True`` will result in " +"suppressing it. You'll only rarely want to suppress the exception, because " +"if you do the author of the code containing the ':keyword:`with`' statement " +"will never realize anything went wrong." msgstr "" -#: ../../whatsnew/2.5.rst:672 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`~object.__exit__` method " "is still called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" -#: ../../whatsnew/2.5.rst:675 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" -#: ../../whatsnew/2.5.rst:678 msgid "" "(For people unfamiliar with database terminology: a set of changes to the " "database are grouped into a transaction. Transactions can be either " @@ -1031,13 +891,11 @@ msgid "" "unchanged. See any database textbook for more information.)" msgstr "" -#: ../../whatsnew/2.5.rst:684 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" -#: ../../whatsnew/2.5.rst:687 msgid "" "db_connection = DatabaseConnection()\n" "with db_connection as cursor:\n" @@ -1046,14 +904,12 @@ msgid "" " # ... more operations ..." msgstr "" -#: ../../whatsnew/2.5.rst:693 msgid "" "The transaction should be committed if the code in the block runs flawlessly " -"or rolled back if there's an exception. Here's the basic interface " -"for :class:`DatabaseConnection` that I'll assume::" +"or rolled back if there's an exception. Here's the basic interface for :" +"class:`DatabaseConnection` that I'll assume::" msgstr "" -#: ../../whatsnew/2.5.rst:697 msgid "" "class DatabaseConnection:\n" " # Database interface\n" @@ -1065,7 +921,6 @@ msgid "" " \"Rolls back current transaction\"" msgstr "" -#: ../../whatsnew/2.5.rst:706 msgid "" "The :meth:`~object.__enter__` method is pretty easy, having only to start a " "new transaction. For this application the resulting cursor object would be " @@ -1074,7 +929,6 @@ msgid "" "variable name. ::" msgstr "" -#: ../../whatsnew/2.5.rst:711 msgid "" "class DatabaseConnection:\n" " ...\n" @@ -1084,7 +938,6 @@ msgid "" " return cursor" msgstr "" -#: ../../whatsnew/2.5.rst:718 msgid "" "The :meth:`~object.__exit__` method is the most complicated because it's " "where most of the work has to be done. The method has to check if an " @@ -1092,7 +945,6 @@ msgid "" "committed. The transaction is rolled back if there was an exception." msgstr "" -#: ../../whatsnew/2.5.rst:723 msgid "" "In the code below, execution will just fall off the end of the function, " "returning the default value of ``None``. ``None`` is false, so the " @@ -1100,7 +952,6 @@ msgid "" "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" -#: ../../whatsnew/2.5.rst:728 msgid "" "class DatabaseConnection:\n" " ...\n" @@ -1114,37 +965,32 @@ msgid "" " # return False" msgstr "" -#: ../../whatsnew/2.5.rst:743 msgid "The contextlib module" msgstr "" -#: ../../whatsnew/2.5.rst:745 msgid "" "The new :mod:`contextlib` module provides some functions and a decorator " "that are useful for writing objects for use with the ':keyword:`with`' " "statement." msgstr "" -#: ../../whatsnew/2.5.rst:748 msgid "" "The decorator is called :func:`contextmanager`, and lets you write a single " "generator function instead of defining a new class. The generator should " "yield exactly one value. The code up to the :keyword:`yield` will be " "executed as the :meth:`~object.__enter__` method, and the value yielded will " -"be the method's return value that will get bound to the variable in the " -"':keyword:`with`' statement's :keyword:`!as` clause, if any. The code after " +"be the method's return value that will get bound to the variable in the ':" +"keyword:`with`' statement's :keyword:`!as` clause, if any. The code after " "the :keyword:`yield` will be executed in the :meth:`~object.__exit__` " "method. Any exception raised in the block will be raised by the :keyword:`!" "yield` statement." msgstr "" -#: ../../whatsnew/2.5.rst:757 msgid "" "Our database example from the previous section could be written using this " "decorator as::" msgstr "" -#: ../../whatsnew/2.5.rst:760 msgid "" "from contextlib import contextmanager\n" "\n" @@ -1164,7 +1010,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.5.rst:777 msgid "" "The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " "that combines a number of context managers so you don't need to write nested " @@ -1173,20 +1018,17 @@ msgid "" "lock::" msgstr "" -#: ../../whatsnew/2.5.rst:782 msgid "" "lock = threading.Lock()\n" "with nested (db_transaction(db), lock) as (cursor, locked):\n" " ..." msgstr "" -#: ../../whatsnew/2.5.rst:786 msgid "" "Finally, the ``closing(object)`` function returns *object* so that it can be " "bound to a variable, and calls ``object.close`` at the end of the block. ::" msgstr "" -#: ../../whatsnew/2.5.rst:789 msgid "" "import urllib, sys\n" "from contextlib import closing\n" @@ -1196,11 +1038,9 @@ msgid "" " sys.stdout.write(line)" msgstr "" -#: ../../whatsnew/2.5.rst:799 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: ../../whatsnew/2.5.rst:800 msgid "" "PEP written by Guido van Rossum and Nick Coghlan; implemented by Mike Bland, " "Guido van Rossum, and Neal Norwitz. The PEP shows the code generated for a " @@ -1208,15 +1048,12 @@ msgid "" "statement works." msgstr "" -#: ../../whatsnew/2.5.rst:805 msgid "The documentation for the :mod:`contextlib` module." msgstr "" -#: ../../whatsnew/2.5.rst:813 msgid "PEP 352: Exceptions as New-Style Classes" msgstr "" -#: ../../whatsnew/2.5.rst:815 msgid "" "Exception classes can now be new-style classes, not just classic classes, " "and the built-in :exc:`Exception` class and all the standard built-in " @@ -1224,13 +1061,11 @@ msgid "" "classes." msgstr "" -#: ../../whatsnew/2.5.rst:819 msgid "" "The inheritance hierarchy for exceptions has been rearranged a bit. In 2.5, " "the inheritance relationships are::" msgstr "" -#: ../../whatsnew/2.5.rst:822 msgid "" "BaseException # New in Python 2.5\n" "|- KeyboardInterrupt\n" @@ -1239,18 +1074,16 @@ msgid "" " |- (all other current built-in exceptions)" msgstr "" -#: ../../whatsnew/2.5.rst:828 msgid "" "This rearrangement was done because people often want to catch all " -"exceptions that indicate program errors. :exc:`KeyboardInterrupt` " -"and :exc:`SystemExit` aren't errors, though, and usually represent an " -"explicit action such as the user hitting :kbd:`Control-C` or code " -"calling :func:`sys.exit`. A bare ``except:`` will catch all exceptions, so " -"you commonly need to list :exc:`KeyboardInterrupt` and :exc:`SystemExit` in " -"order to re-raise them. The usual pattern is::" +"exceptions that indicate program errors. :exc:`KeyboardInterrupt` and :exc:" +"`SystemExit` aren't errors, though, and usually represent an explicit action " +"such as the user hitting :kbd:`Control-C` or code calling :func:`sys.exit`. " +"A bare ``except:`` will catch all exceptions, so you commonly need to list :" +"exc:`KeyboardInterrupt` and :exc:`SystemExit` in order to re-raise them. " +"The usual pattern is::" msgstr "" -#: ../../whatsnew/2.5.rst:835 msgid "" "try:\n" " ...\n" @@ -1261,7 +1094,6 @@ msgid "" " # Continue running program..." msgstr "" -#: ../../whatsnew/2.5.rst:843 msgid "" "In Python 2.5, you can now write ``except Exception`` to achieve the same " "result, catching all the exceptions that usually indicate errors but " @@ -1269,7 +1101,6 @@ msgid "" "previous versions, a bare ``except:`` still catches all exceptions." msgstr "" -#: ../../whatsnew/2.5.rst:848 msgid "" "The goal for Python 3.0 is to require any class raised as an exception to " "derive from :exc:`BaseException` or some descendant of :exc:`BaseException`, " @@ -1280,28 +1111,23 @@ msgid "" "hasn't decided whether to do this or not." msgstr "" -#: ../../whatsnew/2.5.rst:856 msgid "" "Raising of strings as exceptions, as in the statement ``raise \"Error " "occurred\"``, is deprecated in Python 2.5 and will trigger a warning. The " "aim is to be able to remove the string-exception feature in a few releases." msgstr "" -#: ../../whatsnew/2.5.rst:863 msgid ":pep:`352` - Required Superclass for Exceptions" msgstr "" -#: ../../whatsnew/2.5.rst:864 msgid "" "PEP written by Brett Cannon and Guido van Rossum; implemented by Brett " "Cannon." msgstr "" -#: ../../whatsnew/2.5.rst:872 msgid "PEP 353: Using ssize_t as the index type" msgstr "" -#: ../../whatsnew/2.5.rst:874 msgid "" "A wide-ranging change to Python's C API, using a new :c:type:`Py_ssize_t` " "type definition instead of :c:expr:`int`, will permit the interpreter to " @@ -1309,7 +1135,6 @@ msgid "" "capacity on 32-bit platforms." msgstr "" -#: ../../whatsnew/2.5.rst:879 msgid "" "Various pieces of the Python interpreter used C's :c:expr:`int` type to " "store sizes or counts; for example, the number of items in a list or tuple " @@ -1321,16 +1146,14 @@ msgid "" "commonly available model leaves :c:expr:`int` as 32 bits.)" msgstr "" -#: ../../whatsnew/2.5.rst:888 msgid "" "A limit of 2147483647 items doesn't really matter on a 32-bit platform " "because you'll run out of memory before hitting the length limit. Each list " -"item requires space for a pointer, which is 4 bytes, plus space for " -"a :c:type:`PyObject` representing the item. 2147483647\\*4 is already more " -"bytes than a 32-bit address space can contain." +"item requires space for a pointer, which is 4 bytes, plus space for a :c:" +"type:`PyObject` representing the item. 2147483647\\*4 is already more bytes " +"than a 32-bit address space can contain." msgstr "" -#: ../../whatsnew/2.5.rst:894 msgid "" "It's possible to address that much memory on a 64-bit platform, however. " "The pointers for a list that size would only require 16 GiB of space, so " @@ -1343,45 +1166,36 @@ msgid "" "bit machines, and the transition would be more painful then.)" msgstr "" -#: ../../whatsnew/2.5.rst:904 msgid "" "This change most strongly affects authors of C extension modules. Python " -"strings and container types such as lists and tuples now " -"use :c:type:`Py_ssize_t` to store their size. Functions such " -"as :c:func:`PyList_Size` now return :c:type:`Py_ssize_t`. Code in " -"extension modules may therefore need to have some variables changed " -"to :c:type:`Py_ssize_t`." +"strings and container types such as lists and tuples now use :c:type:" +"`Py_ssize_t` to store their size. Functions such as :c:func:`PyList_Size` " +"now return :c:type:`Py_ssize_t`. Code in extension modules may therefore " +"need to have some variables changed to :c:type:`Py_ssize_t`." msgstr "" -#: ../../whatsnew/2.5.rst:910 msgid "" "The :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue` functions have a " -"new conversion code, ``n``, " -"for :c:type:`Py_ssize_t`. :c:func:`PyArg_ParseTuple`'s ``s#`` and ``t#`` " -"still output :c:expr:`int` by default, but you can define the " -"macro :c:macro:`PY_SSIZE_T_CLEAN` before including :file:`Python.h` to " -"make them return :c:type:`Py_ssize_t`." +"new conversion code, ``n``, for :c:type:`Py_ssize_t`. :c:func:" +"`PyArg_ParseTuple`'s ``s#`` and ``t#`` still output :c:expr:`int` by " +"default, but you can define the macro :c:macro:`PY_SSIZE_T_CLEAN` before " +"including :file:`Python.h` to make them return :c:type:`Py_ssize_t`." msgstr "" -#: ../../whatsnew/2.5.rst:916 msgid "" ":pep:`353` has a section on conversion guidelines that extension authors " "should read to learn about supporting 64-bit platforms." msgstr "" -#: ../../whatsnew/2.5.rst:922 msgid ":pep:`353` - Using ssize_t as the index type" msgstr "" -#: ../../whatsnew/2.5.rst:923 msgid "PEP written and implemented by Martin von Löwis." msgstr "" -#: ../../whatsnew/2.5.rst:931 msgid "PEP 357: The '__index__' method" msgstr "" -#: ../../whatsnew/2.5.rst:933 msgid "" "The NumPy developers had a problem that could only be solved by adding a new " "special method, :meth:`__index__`. When using slice notation, as in " @@ -1392,36 +1206,31 @@ msgid "" "could be used as slice indexes." msgstr "" -#: ../../whatsnew/2.5.rst:941 msgid "" "Slicing can't just use the existing :meth:`__int__` method because that " -"method is also used to implement coercion to integers. If slicing " -"used :meth:`__int__`, floating-point numbers would also become legal slice " -"indexes and that's clearly an undesirable behaviour." +"method is also used to implement coercion to integers. If slicing used :" +"meth:`__int__`, floating-point numbers would also become legal slice indexes " +"and that's clearly an undesirable behaviour." msgstr "" -#: ../../whatsnew/2.5.rst:946 msgid "" "Instead, a new special method called :meth:`__index__` was added. It takes " "no arguments and returns an integer giving the slice index to use. For " "example::" msgstr "" -#: ../../whatsnew/2.5.rst:949 msgid "" "class C:\n" " def __index__ (self):\n" " return self.value" msgstr "" -#: ../../whatsnew/2.5.rst:953 msgid "" "The return value must be either a Python integer or long integer. The " -"interpreter will check that the type returned is correct, and raises " -"a :exc:`TypeError` if this requirement isn't met." +"interpreter will check that the type returned is correct, and raises a :exc:" +"`TypeError` if this requirement isn't met." msgstr "" -#: ../../whatsnew/2.5.rst:957 msgid "" "A corresponding :c:member:`~PyNumberMethods.nb_index` slot was added to the " "C-level :c:type:`PyNumberMethods` structure to let C extensions implement " @@ -1429,35 +1238,29 @@ msgid "" "the :meth:`__index__` function and retrieve its result." msgstr "" -#: ../../whatsnew/2.5.rst:965 msgid ":pep:`357` - Allowing Any Object to be Used for Slicing" msgstr "" -#: ../../whatsnew/2.5.rst:966 msgid "PEP written and implemented by Travis Oliphant." msgstr "" -#: ../../whatsnew/2.5.rst:974 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/2.5.rst:976 msgid "" "Here are all of the changes that Python 2.5 makes to the core Python " "language." msgstr "" -#: ../../whatsnew/2.5.rst:978 msgid "" "The :class:`dict` type has a new hook for letting subclasses provide a " "default value when a key isn't contained in the dictionary. When a key isn't " "found, the dictionary's ``__missing__(key)`` method will be called. This " -"hook is used to implement the new :class:`defaultdict` class in " -"the :mod:`collections` module. The following example defines a dictionary " -"that returns zero for any missing key::" +"hook is used to implement the new :class:`defaultdict` class in the :mod:" +"`collections` module. The following example defines a dictionary that " +"returns zero for any missing key::" msgstr "" -#: ../../whatsnew/2.5.rst:985 msgid "" "class zerodict (dict):\n" " def __missing__ (self, key):\n" @@ -1468,13 +1271,11 @@ msgid "" "print d[3], d[4] # Prints 0, 0" msgstr "" -#: ../../whatsnew/2.5.rst:993 msgid "" "Both 8-bit and Unicode strings have new ``partition(sep)`` and " "``rpartition(sep)`` methods that simplify a common use case." msgstr "" -#: ../../whatsnew/2.5.rst:996 msgid "" "The ``find(S)`` method is often used to get an index which is then used to " "slice the string and obtain the pieces that are before and after the " @@ -1487,11 +1288,9 @@ msgid "" "'reverse'." msgstr "" -#: ../../whatsnew/2.5.rst:1005 msgid "Some examples::" msgstr "Néhány példa::" -#: ../../whatsnew/2.5.rst:1007 msgid "" ">>> ('http://www.python.org').partition('://')\n" "('http', '://', 'www.python.org')\n" @@ -1505,28 +1304,23 @@ msgid "" "('', '', 'www.python.org')" msgstr "" -#: ../../whatsnew/2.5.rst:1018 msgid "" "(Implemented by Fredrik Lundh following a suggestion by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1020 msgid "" "The :meth:`startswith` and :meth:`endswith` methods of string types now " "accept tuples of strings to check for. ::" msgstr "" -#: ../../whatsnew/2.5.rst:1023 msgid "" "def is_image_file (filename):\n" " return filename.endswith(('.gif', '.jpg', '.tiff'))" msgstr "" -#: ../../whatsnew/2.5.rst:1026 msgid "(Implemented by Georg Brandl following a suggestion by Tom Lynn.)" msgstr "" -#: ../../whatsnew/2.5.rst:1030 msgid "" "The :func:`min` and :func:`max` built-in functions gained a ``key`` keyword " "parameter analogous to the ``key`` argument for :meth:`sort`. This " @@ -1536,7 +1330,6 @@ msgid "" "find the longest string in a list, you can do::" msgstr "" -#: ../../whatsnew/2.5.rst:1037 msgid "" "L = ['medium', 'longest', 'short']\n" "# Prints 'longest'\n" @@ -1545,31 +1338,27 @@ msgid "" "print max(L)" msgstr "" -#: ../../whatsnew/2.5.rst:1043 msgid "(Contributed by Steven Bethard and Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1045 msgid "" "Two new built-in functions, :func:`any` and :func:`all`, evaluate whether an " -"iterator contains any true or false values. :func:`any` " -"returns :const:`True` if any value returned by the iterator is true; " -"otherwise it will return :const:`False`. :func:`all` returns :const:`True` " -"only if all of the values returned by the iterator evaluate as true. " -"(Suggested by Guido van Rossum, and implemented by Raymond Hettinger.)" +"iterator contains any true or false values. :func:`any` returns :const:" +"`True` if any value returned by the iterator is true; otherwise it will " +"return :const:`False`. :func:`all` returns :const:`True` only if all of the " +"values returned by the iterator evaluate as true. (Suggested by Guido van " +"Rossum, and implemented by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1052 msgid "" "The result of a class's :meth:`__hash__` method can now be either a long " "integer or a regular integer. If a long integer is returned, the hash of " "that value is taken. In earlier versions the hash value was required to be " "a regular integer, but in 2.5 the :func:`id` built-in was changed to always " -"return non-negative numbers, and users often seem to use ``id(self)`` " -"in :meth:`__hash__` methods (though this is discouraged)." +"return non-negative numbers, and users often seem to use ``id(self)`` in :" +"meth:`__hash__` methods (though this is discouraged)." msgstr "" -#: ../../whatsnew/2.5.rst:1061 msgid "" "ASCII is now the default encoding for modules. It's now a syntax error if " "a module contains string literals with 8-bit characters but doesn't have an " @@ -1578,11 +1367,9 @@ msgid "" "you might add a line like this near the top of the source file::" msgstr "" -#: ../../whatsnew/2.5.rst:1067 msgid "# -*- coding: latin1 -*-" msgstr "" -#: ../../whatsnew/2.5.rst:1069 msgid "" "A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " "compare a Unicode string and an 8-bit string that can't be converted to " @@ -1590,7 +1377,6 @@ msgid "" "false::" msgstr "" -#: ../../whatsnew/2.5.rst:1073 msgid "" ">>> chr(128) == unichr(128) # Can't convert chr(128) to Unicode\n" "__main__:1: UnicodeWarning: Unicode equal comparison failed\n" @@ -1601,7 +1387,6 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/2.5.rst:1081 msgid "" "Previously this would raise a :class:`UnicodeDecodeError` exception, but in " "2.5 this could result in puzzling problems when accessing a dictionary. If " @@ -1611,64 +1396,54 @@ msgid "" "in :file:`dictobject.c` that implements dictionaries." msgstr "" -#: ../../whatsnew/2.5.rst:1088 msgid "" "Raising an exception for such a comparison is strictly correct, but the " "change might have broken code, so instead :class:`UnicodeWarning` was " "introduced." msgstr "" -#: ../../whatsnew/2.5.rst:1091 msgid "(Implemented by Marc-André Lemburg.)" msgstr "" -#: ../../whatsnew/2.5.rst:1093 msgid "" "One error that Python programmers sometimes make is forgetting to include " "an :file:`__init__.py` module in a package directory. Debugging this mistake " "can be confusing, and usually requires running Python with the :option:`-v` " -"switch to log all the paths searched. In Python 2.5, a " -"new :exc:`ImportWarning` warning is triggered when an import would have " -"picked up a directory as a package but no :file:`__init__.py` was found. " -"This warning is silently ignored by default; provide the :option:`-Wd <-W>` " -"option when running the Python executable to display the warning message. " -"(Implemented by Thomas Wouters.)" +"switch to log all the paths searched. In Python 2.5, a new :exc:" +"`ImportWarning` warning is triggered when an import would have picked up a " +"directory as a package but no :file:`__init__.py` was found. This warning " +"is silently ignored by default; provide the :option:`-Wd <-W>` option when " +"running the Python executable to display the warning message. (Implemented " +"by Thomas Wouters.)" msgstr "" -#: ../../whatsnew/2.5.rst:1102 msgid "" "The list of base classes in a class definition can now be empty. As an " "example, this is now legal::" msgstr "" -#: ../../whatsnew/2.5.rst:1105 msgid "" "class C():\n" " pass" msgstr "" -#: ../../whatsnew/2.5.rst:1108 msgid "(Implemented by Brett Cannon.)" msgstr "" -#: ../../whatsnew/2.5.rst:1116 msgid "Interactive Interpreter Changes" msgstr "" -#: ../../whatsnew/2.5.rst:1118 msgid "" "In the interactive interpreter, ``quit`` and ``exit`` have long been " "strings so that new users get a somewhat helpful message when they try to " "quit::" msgstr "" -#: ../../whatsnew/2.5.rst:1121 msgid "" ">>> quit\n" "'Use Ctrl-D (i.e. EOF) to exit.'" msgstr "" -#: ../../whatsnew/2.5.rst:1124 msgid "" "In Python 2.5, ``quit`` and ``exit`` are now objects that still produce " "string representations of themselves, but are also callable. Newbies who try " @@ -1676,18 +1451,15 @@ msgid "" "(Implemented by Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1129 msgid "" "The Python executable now accepts the standard long options :option:`--" "help` and :option:`--version`; on Windows, it also accepts the :option:`/? " "<-?>` option for displaying a help message. (Implemented by Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1139 msgid "Optimizations" msgstr "" -#: ../../whatsnew/2.5.rst:1141 msgid "" "Several of the optimizations were developed at the NeedForSpeed sprint, an " "event held in Reykjavik, Iceland, from May 21--28 2006. The sprint focused " @@ -1696,16 +1468,14 @@ msgid "" "sprint are specially marked in the following list." msgstr "" -#: ../../whatsnew/2.5.rst:1147 msgid "" -"When they were introduced in Python 2.4, the built-in :class:`set` " -"and :class:`frozenset` types were built on top of Python's dictionary " -"type. In 2.5 the internal data structure has been customized for " -"implementing sets, and as a result sets will use a third less memory and are " -"somewhat faster. (Implemented by Raymond Hettinger.)" +"When they were introduced in Python 2.4, the built-in :class:`set` and :" +"class:`frozenset` types were built on top of Python's dictionary type. In " +"2.5 the internal data structure has been customized for implementing sets, " +"and as a result sets will use a third less memory and are somewhat faster. " +"(Implemented by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1153 msgid "" "The speed of some Unicode operations, such as finding substrings, string " "splitting, and character map encoding and decoding, has been improved. " @@ -1714,7 +1484,6 @@ msgid "" "Walter Dörwald and Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.5.rst:1161 msgid "" "The ``long(str, base)`` function is now faster on long digit strings because " "fewer intermediate results are calculated. The peak is for strings of " @@ -1722,33 +1491,28 @@ msgid "" "by Alan McIntyre and committed at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:1168 msgid "" "It's now illegal to mix iterating over a file with ``for line in file`` and " "calling the file object's :meth:`read`/:meth:`readline`/:meth:`readlines` " "methods. Iteration uses an internal buffer and the :meth:`!read\\*` " "methods don't use that buffer. Instead they would return the data " "following the buffer, causing the data to appear out of order. Mixing " -"iteration and these methods will now trigger a :exc:`ValueError` from " -"the :meth:`!read\\*` method. (Implemented by Thomas Wouters.)" +"iteration and these methods will now trigger a :exc:`ValueError` from the :" +"meth:`!read\\*` method. (Implemented by Thomas Wouters.)" msgstr "" -#: ../../whatsnew/2.5.rst:1178 msgid "" "The :mod:`struct` module now compiles structure format strings into an " "internal representation and caches this representation, yielding a 20% " "speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:1182 msgid "" "The :mod:`re` module got a 1 or 2% speedup by switching to Python's " -"allocator functions instead of the system's :c:func:`malloc` " -"and :c:func:`free`. (Contributed by Jack Diederich at the NeedForSpeed " -"sprint.)" +"allocator functions instead of the system's :c:func:`malloc` and :c:func:" +"`free`. (Contributed by Jack Diederich at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:1186 msgid "" "The code generator's peephole optimizer now performs simple constant folding " "in expressions. If you write something like ``a = 2+3``, the code generator " @@ -1756,7 +1520,6 @@ msgid "" "(Proposed and implemented by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1191 msgid "" "Function calls are now faster because code objects now keep the most " "recently finished frame (a \"zombie frame\") in an internal field of the " @@ -1767,7 +1530,6 @@ msgid "" "Neal Norwitz.)" msgstr "" -#: ../../whatsnew/2.5.rst:1201 msgid "" "Python's built-in exceptions are now new-style classes, a change that speeds " "up instantiation considerably. Exception handling in Python 2.5 is " @@ -1775,18 +1537,15 @@ msgid "" "Brandl and Sean Reifschneider at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:1206 msgid "" "Importing now caches the paths tried, recording whether they exist or not " "so that the interpreter makes fewer :c:func:`open` and :c:func:`stat` calls " "on startup. (Contributed by Martin von Löwis and Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1218 msgid "New, Improved, and Removed Modules" msgstr "" -#: ../../whatsnew/2.5.rst:1220 msgid "" "The standard library received many enhancements and bug fixes in Python 2.5. " "Here's a partial list of the most notable changes, sorted alphabetically by " @@ -1795,26 +1554,24 @@ msgid "" "details." msgstr "" -#: ../../whatsnew/2.5.rst:1225 msgid "" "The :mod:`!audioop` module now supports the a-LAW encoding, and the code for " "u-LAW encoding has been improved. (Contributed by Lars Immisch.)" msgstr "" -#: ../../whatsnew/2.5.rst:1228 msgid "" -"The :mod:`codecs` module gained support for incremental codecs. " -"The :func:`codec.lookup` function now returns a :class:`CodecInfo` instance " -"instead of a tuple. :class:`CodecInfo` instances behave like a 4-tuple to " -"preserve backward compatibility but also have the " -"attributes :attr:`encode`, :attr:`decode`, :attr:`incrementalencoder`, :attr:`incrementaldecoder`, :attr:`streamwriter`, " -"and :attr:`streamreader`. Incremental codecs can receive input and produce " -"output in multiple chunks; the output is the same as if the entire input was " -"fed to the non-incremental codec. See the :mod:`codecs` module documentation " -"for details. (Designed and implemented by Walter Dörwald.)" +"The :mod:`codecs` module gained support for incremental codecs. The :func:" +"`codec.lookup` function now returns a :class:`CodecInfo` instance instead of " +"a tuple. :class:`CodecInfo` instances behave like a 4-tuple to preserve " +"backward compatibility but also have the attributes :attr:`encode`, :attr:" +"`decode`, :attr:`incrementalencoder`, :attr:`incrementaldecoder`, :attr:" +"`streamwriter`, and :attr:`streamreader`. Incremental codecs can receive " +"input and produce output in multiple chunks; the output is the same as if " +"the entire input was fed to the non-incremental codec. See the :mod:`codecs` " +"module documentation for details. (Designed and implemented by Walter " +"Dörwald.)" msgstr "" -#: ../../whatsnew/2.5.rst:1240 msgid "" "The :mod:`collections` module gained a new type, :class:`defaultdict`, that " "subclasses the standard :class:`dict` type. The new type mostly behaves " @@ -1822,7 +1579,6 @@ msgid "" "automatically adding it to the dictionary for the requested key value." msgstr "" -#: ../../whatsnew/2.5.rst:1245 msgid "" "The first argument to :class:`defaultdict`'s constructor is a factory " "function that gets called whenever a key is requested but not found. This " @@ -1831,7 +1587,6 @@ msgid "" "make an index of words based on their initial letter like this::" msgstr "" -#: ../../whatsnew/2.5.rst:1251 msgid "" "words = \"\"\"Nel mezzo del cammin di nostra vita\n" "mi ritrovai per una selva oscura\n" @@ -1844,11 +1599,9 @@ msgid "" " index[init_letter].append(w)" msgstr "" -#: ../../whatsnew/2.5.rst:1261 msgid "Printing ``index`` results in the following output::" msgstr "" -#: ../../whatsnew/2.5.rst:1263 msgid "" "defaultdict(, {'c': ['cammin', 'che'], 'e': ['era'],\n" " 'd': ['del', 'di', 'diritta'], 'm': ['mezzo', 'mi'],\n" @@ -1857,27 +1610,22 @@ msgid "" " 'r': ['ritrovai'], 'u': ['una'], 'v': ['vita', 'via']}" msgstr "" -#: ../../whatsnew/2.5.rst:1269 msgid "(Contributed by Guido van Rossum.)" msgstr "" -#: ../../whatsnew/2.5.rst:1271 msgid "" -"The :class:`deque` double-ended queue type supplied by " -"the :mod:`collections` module now has a ``remove(value)`` method that " -"removes the first occurrence of *value* in the queue, " -"raising :exc:`ValueError` if the value isn't found. (Contributed by Raymond " -"Hettinger.)" +"The :class:`deque` double-ended queue type supplied by the :mod:" +"`collections` module now has a ``remove(value)`` method that removes the " +"first occurrence of *value* in the queue, raising :exc:`ValueError` if the " +"value isn't found. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1276 msgid "" "New module: The :mod:`contextlib` module contains helper functions for use " "with the new ':keyword:`with`' statement. See section :ref:`contextlibmod` " "for more about this module." msgstr "" -#: ../../whatsnew/2.5.rst:1280 msgid "" "New module: The :mod:`cProfile` module is a C implementation of the " "existing :mod:`profile` module that has much lower overhead. The module's " @@ -1888,7 +1636,6 @@ msgid "" "future versions of Python. (Contributed by Armin Rigo.)" msgstr "" -#: ../../whatsnew/2.5.rst:1288 msgid "" "Also, the :mod:`pstats` module for analyzing the data measured by the " "profiler now supports directing the output to any file object by supplying a " @@ -1896,19 +1643,17 @@ msgid "" "Montanaro.)" msgstr "" -#: ../../whatsnew/2.5.rst:1292 msgid "" "The :mod:`csv` module, which parses files in comma-separated value format, " "received several enhancements and a number of bugfixes. You can now set the " -"maximum size in bytes of a field by calling the " -"``csv.field_size_limit(new_limit)`` function; omitting the *new_limit* " -"argument will return the currently set limit. The :class:`reader` class now " -"has a :attr:`line_num` attribute that counts the number of physical lines " -"read from the source; records can span multiple physical lines, " -"so :attr:`line_num` is not the same as the number of records read." +"maximum size in bytes of a field by calling the ``csv." +"field_size_limit(new_limit)`` function; omitting the *new_limit* argument " +"will return the currently set limit. The :class:`reader` class now has a :" +"attr:`line_num` attribute that counts the number of physical lines read from " +"the source; records can span multiple physical lines, so :attr:`line_num` is " +"not the same as the number of records read." msgstr "" -#: ../../whatsnew/2.5.rst:1301 msgid "" "The CSV parser is now stricter about multi-line quoted fields. Previously, " "if a line ended within a quoted field without a terminating newline " @@ -1920,11 +1665,9 @@ msgid "" "preserves the newline characters." msgstr "" -#: ../../whatsnew/2.5.rst:1309 msgid "(Contributed by Skip Montanaro and Andrew McNamara.)" msgstr "" -#: ../../whatsnew/2.5.rst:1311 msgid "" "The :class:`~datetime.datetime` class in the :mod:`datetime` module now has " "a ``strptime(string, format)`` method for parsing date strings, contributed " @@ -1932,7 +1675,6 @@ msgid "" "and :func:`time.strftime`::" msgstr "" -#: ../../whatsnew/2.5.rst:1316 msgid "" "from datetime import datetime\n" "\n" @@ -1940,7 +1682,6 @@ msgid "" " '%H:%M:%S %Y-%m-%d')" msgstr "" -#: ../../whatsnew/2.5.rst:1321 msgid "" "The :meth:`SequenceMatcher.get_matching_blocks` method in the :mod:`difflib` " "module now guarantees to return a minimal list of blocks describing matching " @@ -1948,40 +1689,35 @@ msgid "" "matching elements into two list entries. (Enhancement by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.5.rst:1326 msgid "" "The :mod:`doctest` module gained a ``SKIP`` option that keeps an example " "from being executed at all. This is intended for code snippets that are " "usage examples intended for the reader and aren't actually test cases." msgstr "" -#: ../../whatsnew/2.5.rst:1330 msgid "" -"An *encoding* parameter was added to the :func:`testfile` function and " -"the :class:`DocFileSuite` class to specify the file's encoding. This makes " -"it easier to use non-ASCII characters in tests contained within a " -"docstring. (Contributed by Bjorn Tillenius.)" +"An *encoding* parameter was added to the :func:`testfile` function and the :" +"class:`DocFileSuite` class to specify the file's encoding. This makes it " +"easier to use non-ASCII characters in tests contained within a docstring. " +"(Contributed by Bjorn Tillenius.)" msgstr "" -#: ../../whatsnew/2.5.rst:1337 msgid "" "The :mod:`email` package has been updated to version 4.0. (Contributed by " "Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.5.rst:1345 msgid "" "The :mod:`fileinput` module was made more flexible. Unicode filenames are " "now supported, and a *mode* parameter that defaults to ``\"r\"`` was added " -"to the :func:`input` function to allow opening files in binary " -"or :term:`universal newlines` mode. Another new parameter, *openhook*, lets " -"you use a function other than :func:`open` to open the input files. Once " -"you're iterating over the set of files, the :class:`FileInput` object's " -"new :meth:`~fileinput.fileno` returns the file descriptor for the currently " -"opened file. (Contributed by Georg Brandl.)" +"to the :func:`input` function to allow opening files in binary or :term:" +"`universal newlines` mode. Another new parameter, *openhook*, lets you use " +"a function other than :func:`open` to open the input files. Once you're " +"iterating over the set of files, the :class:`FileInput` object's new :meth:" +"`~fileinput.fileno` returns the file descriptor for the currently opened " +"file. (Contributed by Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1354 msgid "" "In the :mod:`gc` module, the new :func:`get_count` function returns a 3-" "tuple containing the current collection counts for the three GC " @@ -1992,7 +1728,6 @@ msgid "" "(Contributed by Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.5.rst:1361 msgid "" "The :func:`nsmallest` and :func:`nlargest` functions in the :mod:`heapq` " "module now support a ``key`` keyword parameter similar to the one provided " @@ -2000,7 +1735,6 @@ msgid "" "example::" msgstr "" -#: ../../whatsnew/2.5.rst:1366 msgid "" ">>> import heapq\n" ">>> L = [\"short\", 'medium', 'longest', 'longer still']\n" @@ -2010,30 +1744,25 @@ msgid "" "['short', 'medium']" msgstr "" -#: ../../whatsnew/2.5.rst:1373 ../../whatsnew/2.5.rst:1382 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1375 msgid "" "The :func:`itertools.islice` function now accepts ``None`` for the start and " "step arguments. This makes it more compatible with the attributes of slice " "objects, so that you can now write the following::" msgstr "" -#: ../../whatsnew/2.5.rst:1379 msgid "" "s = slice(5) # Create slice object\n" "itertools.islice(iterable, s.start, s.stop, s.step)" msgstr "" -#: ../../whatsnew/2.5.rst:1384 msgid "" "The :func:`format` function in the :mod:`locale` module has been modified " "and two new functions were added, :func:`format_string` and :func:`currency`." msgstr "" -#: ../../whatsnew/2.5.rst:1387 msgid "" "The :func:`format` function's *val* parameter could previously be a string " "as long as no more than one %char specifier appeared; now the parameter must " @@ -2043,24 +1772,20 @@ msgid "" "of three digits." msgstr "" -#: ../../whatsnew/2.5.rst:1393 msgid "" -"To format strings with multiple %char specifiers, use the " -"new :func:`format_string` function that works like :func:`format` but also " -"supports mixing %char specifiers with arbitrary text." +"To format strings with multiple %char specifiers, use the new :func:" +"`format_string` function that works like :func:`format` but also supports " +"mixing %char specifiers with arbitrary text." msgstr "" -#: ../../whatsnew/2.5.rst:1397 msgid "" "A new :func:`currency` function was also added that formats a number " "according to the current locale's settings." msgstr "" -#: ../../whatsnew/2.5.rst:1400 msgid "(Contributed by Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1404 msgid "" "The :mod:`mailbox` module underwent a massive rewrite to add the capability " "to modify mailboxes in addition to reading them. A new set of classes that " @@ -2071,7 +1796,6 @@ msgid "" "into an mbox-format one::" msgstr "" -#: ../../whatsnew/2.5.rst:1412 msgid "" "import mailbox\n" "\n" @@ -2084,38 +1808,32 @@ msgid "" " dest.add(msg)" msgstr "" -#: ../../whatsnew/2.5.rst:1422 msgid "" "(Contributed by Gregory K. Johnson. Funding was provided by Google's 2005 " "Summer of Code.)" msgstr "" -#: ../../whatsnew/2.5.rst:1425 msgid "" -"New module: the :mod:`!msilib` module allows creating Microsoft " -"Installer :file:`.msi` files and CAB files. Some support for reading " -"the :file:`.msi` database is also included. (Contributed by Martin von " -"Löwis.)" +"New module: the :mod:`!msilib` module allows creating Microsoft Installer :" +"file:`.msi` files and CAB files. Some support for reading the :file:`.msi` " +"database is also included. (Contributed by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.5.rst:1429 msgid "" "The :mod:`!nis` module now supports accessing domains other than the system " "default domain by supplying a *domain* argument to the :func:`!nis.match` " "and :func:`!nis.maps` functions. (Contributed by Ben Bell.)" msgstr "" -#: ../../whatsnew/2.5.rst:1433 msgid "" "The :mod:`operator` module's :func:`itemgetter` and :func:`attrgetter` " -"functions now support multiple fields. A call such as " -"``operator.attrgetter('a', 'b')`` will return a function that retrieves " -"the :attr:`a` and :attr:`b` attributes. Combining this new feature with " -"the :meth:`sort` method's ``key`` parameter lets you easily sort lists " -"using multiple fields. (Contributed by Raymond Hettinger.)" +"functions now support multiple fields. A call such as ``operator." +"attrgetter('a', 'b')`` will return a function that retrieves the :attr:`a` " +"and :attr:`b` attributes. Combining this new feature with the :meth:`sort` " +"method's ``key`` parameter lets you easily sort lists using multiple " +"fields. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1440 msgid "" "The :mod:`optparse` module was updated to version 1.5.1 of the Optik " "library. The :class:`OptionParser` class gained an :attr:`epilog` attribute, " @@ -2124,24 +1842,21 @@ msgid "" "Ward.)" msgstr "" -#: ../../whatsnew/2.5.rst:1445 msgid "" -"The :mod:`os` module underwent several changes. " -"The :attr:`stat_float_times` variable now defaults to true, meaning " -"that :func:`os.stat` will now return time values as floats. (This doesn't " -"necessarily mean that :func:`os.stat` will return times that are precise to " -"fractions of a second; not all systems support such precision.)" +"The :mod:`os` module underwent several changes. The :attr:" +"`stat_float_times` variable now defaults to true, meaning that :func:`os." +"stat` will now return time values as floats. (This doesn't necessarily mean " +"that :func:`os.stat` will return times that are precise to fractions of a " +"second; not all systems support such precision.)" msgstr "" -#: ../../whatsnew/2.5.rst:1451 msgid "" -"Constants named :const:`os.SEEK_SET`, :const:`os.SEEK_CUR`, " -"and :const:`os.SEEK_END` have been added; these are the parameters to " -"the :func:`os.lseek` function. Two new constants for locking " -"are :const:`os.O_SHLOCK` and :const:`os.O_EXLOCK`." +"Constants named :const:`os.SEEK_SET`, :const:`os.SEEK_CUR`, and :const:`os." +"SEEK_END` have been added; these are the parameters to the :func:`os.lseek` " +"function. Two new constants for locking are :const:`os.O_SHLOCK` and :const:" +"`os.O_EXLOCK`." msgstr "" -#: ../../whatsnew/2.5.rst:1456 msgid "" "Two new functions, :func:`wait3` and :func:`wait4`, were added. They're " "similar the :func:`waitpid` function which waits for a child process to exit " @@ -2153,15 +1868,13 @@ msgid "" "ID. (Contributed by Chad J. Schroeder.)" msgstr "" -#: ../../whatsnew/2.5.rst:1465 msgid "" "On FreeBSD, the :func:`os.stat` function now returns times with nanosecond " -"resolution, and the returned object now has :attr:`st_gen` " -"and :attr:`st_birthtime`. The :attr:`st_flags` attribute is also available, " -"if the platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" +"resolution, and the returned object now has :attr:`st_gen` and :attr:" +"`st_birthtime`. The :attr:`st_flags` attribute is also available, if the " +"platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" msgstr "" -#: ../../whatsnew/2.5.rst:1472 msgid "" "The Python debugger provided by the :mod:`pdb` module can now store lists of " "commands to execute when a breakpoint is reached and execution stops. Once " @@ -2171,7 +1884,6 @@ msgid "" "``next``. (Contributed by Grégoire Dooms.)" msgstr "" -#: ../../whatsnew/2.5.rst:1481 msgid "" "The :mod:`pickle` and :mod:`!cPickle` modules no longer accept a return " "value of ``None`` from the :meth:`~object.__reduce__` method; the method " @@ -2179,7 +1891,6 @@ msgid "" "was deprecated in Python 2.4, so this completes the removal of the feature." msgstr "" -#: ../../whatsnew/2.5.rst:1486 msgid "" "The :mod:`pkgutil` module, containing various utility functions for finding " "packages, was enhanced to support :pep:`302`'s import hooks and now also " @@ -2187,24 +1898,21 @@ msgid "" "Eby.)" msgstr "" -#: ../../whatsnew/2.5.rst:1490 msgid "" -"The pybench benchmark suite by Marc-André Lemburg is now included in " -"the :file:`Tools/pybench` directory. The pybench suite is an improvement on " -"the commonly used :file:`pystone.py` program because pybench provides a more " +"The pybench benchmark suite by Marc-André Lemburg is now included in the :" +"file:`Tools/pybench` directory. The pybench suite is an improvement on the " +"commonly used :file:`pystone.py` program because pybench provides a more " "detailed measurement of the interpreter's speed. It times particular " "operations such as function calls, tuple slicing, method lookups, and " "numeric operations, instead of performing many different operations and " "reducing the result to a single number as :file:`pystone.py` does." msgstr "" -#: ../../whatsnew/2.5.rst:1498 msgid "" "The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. " "(Contributed by Trent Mick.)" msgstr "" -#: ../../whatsnew/2.5.rst:1501 msgid "" "The :class:`~queue.Queue` class provided by the :mod:`Queue` module gained " "two new methods. :meth:`join` blocks until all items in the queue have been " @@ -2214,14 +1922,12 @@ msgid "" "Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:1507 msgid "" "The old :mod:`regex` and :mod:`regsub` modules, which have been deprecated " -"ever since Python 2.0, have finally been deleted. Other deleted " -"modules: :mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." +"ever since Python 2.0, have finally been deleted. Other deleted modules: :" +"mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." msgstr "" -#: ../../whatsnew/2.5.rst:1511 msgid "" "Also deleted: the :file:`lib-old` directory, which includes ancient modules " "such as :mod:`dircmp` and :mod:`ni`, was removed. :file:`lib-old` wasn't on " @@ -2229,14 +1935,12 @@ msgid "" "directory to ``sys.path``, this removal shouldn't affect your code." msgstr "" -#: ../../whatsnew/2.5.rst:1516 msgid "" -"The :mod:`rlcompleter` module is no longer dependent on importing " -"the :mod:`readline` module and therefore now works on non-Unix platforms. " -"(Patch from Robert Kiendl.)" +"The :mod:`rlcompleter` module is no longer dependent on importing the :mod:" +"`readline` module and therefore now works on non-Unix platforms. (Patch from " +"Robert Kiendl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1522 msgid "" "The :mod:`SimpleXMLRPCServer ` and :mod:`DocXMLRPCServer " "` classes now have a :attr:`rpc_paths` attribute that " @@ -2245,17 +1949,15 @@ msgid "" "``None`` or an empty tuple disables this path checking." msgstr "" -#: ../../whatsnew/2.5.rst:1529 msgid "" "The :mod:`socket` module now supports :const:`AF_NETLINK` sockets on Linux, " "thanks to a patch from Philippe Biondi. Netlink sockets are a Linux-" "specific mechanism for communications between a user-space process and " -"kernel code; an introductory article about them is at https://" -"www.linuxjournal.com/article/7356. In Python code, netlink addresses are " +"kernel code; an introductory article about them is at https://www." +"linuxjournal.com/article/7356. In Python code, netlink addresses are " "represented as a tuple of 2 integers, ``(pid, group_mask)``." msgstr "" -#: ../../whatsnew/2.5.rst:1536 msgid "" "Two new methods on socket objects, ``recv_into(buffer)`` and " "``recvfrom_into(buffer)``, store the received data in an object that " @@ -2264,30 +1966,26 @@ msgid "" "file." msgstr "" -#: ../../whatsnew/2.5.rst:1541 msgid "" -"Socket objects also gained :meth:`getfamily`, :meth:`gettype`, " -"and :meth:`getproto` accessor methods to retrieve the family, type, and " -"protocol values for the socket." +"Socket objects also gained :meth:`getfamily`, :meth:`gettype`, and :meth:" +"`getproto` accessor methods to retrieve the family, type, and protocol " +"values for the socket." msgstr "" -#: ../../whatsnew/2.5.rst:1545 msgid "" "New module: the :mod:`!spwd` module provides functions for accessing the " "shadow password database on systems that support shadow passwords." msgstr "" -#: ../../whatsnew/2.5.rst:1548 msgid "" -"The :mod:`struct` is now faster because it compiles format strings " -"into :class:`Struct` objects with :meth:`pack` and :meth:`unpack` methods. " -"This is similar to how the :mod:`re` module lets you create compiled regular " -"expression objects. You can still use the module-level :func:`pack` " -"and :func:`unpack` functions; they'll create :class:`Struct` objects and " -"cache them. Or you can use :class:`Struct` instances directly::" +"The :mod:`struct` is now faster because it compiles format strings into :" +"class:`Struct` objects with :meth:`pack` and :meth:`unpack` methods. This " +"is similar to how the :mod:`re` module lets you create compiled regular " +"expression objects. You can still use the module-level :func:`pack` and :" +"func:`unpack` functions; they'll create :class:`Struct` objects and cache " +"them. Or you can use :class:`Struct` instances directly::" msgstr "" -#: ../../whatsnew/2.5.rst:1555 msgid "" "s = struct.Struct('ih3s')\n" "\n" @@ -2295,7 +1993,6 @@ msgid "" "year, number, name = s.unpack(data)" msgstr "" -#: ../../whatsnew/2.5.rst:1560 msgid "" "You can also pack and unpack data to and from buffer objects directly using " "the ``pack_into(buffer, offset, v1, v2, ...)`` and ``unpack_from(buffer, " @@ -2303,14 +2000,12 @@ msgid "" "memory-mapped file." msgstr "" -#: ../../whatsnew/2.5.rst:1565 msgid "" "(:class:`Struct` objects were implemented by Bob Ippolito at the " "NeedForSpeed sprint. Support for buffer objects was added by Martin Blais, " "also at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:1569 msgid "" "The Python developers switched from CVS to Subversion during the 2.5 " "development process. Information about the exact build version is available " @@ -2319,15 +2014,13 @@ msgid "" "was reporting ``('CPython', 'trunk', '45313:45315')``." msgstr "" -#: ../../whatsnew/2.5.rst:1575 msgid "" -"This information is also available to C extensions via " -"the :c:func:`Py_GetBuildInfo` function that returns a string of build " -"information like this: ``\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. " -"(Contributed by Barry Warsaw.)" +"This information is also available to C extensions via the :c:func:" +"`Py_GetBuildInfo` function that returns a string of build information like " +"this: ``\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contributed by " +"Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.5.rst:1580 msgid "" "Another new function, :func:`sys._current_frames`, returns the current stack " "frames for all running threads as a dictionary mapping thread identifiers to " @@ -2335,22 +2028,19 @@ msgid "" "function is called. (Contributed by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.5.rst:1585 msgid "" -"The :class:`TarFile` class in the :mod:`tarfile` module now has " -"an :meth:`extractall` method that extracts all members from the archive into " -"the current working directory. It's also possible to set a different " -"directory as the extraction target, and to unpack only a subset of the " -"archive's members." +"The :class:`TarFile` class in the :mod:`tarfile` module now has an :meth:" +"`extractall` method that extracts all members from the archive into the " +"current working directory. It's also possible to set a different directory " +"as the extraction target, and to unpack only a subset of the archive's " +"members." msgstr "" -#: ../../whatsnew/2.5.rst:1590 msgid "" "The compression used for a tarfile opened in stream mode can now be " "autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)" msgstr "" -#: ../../whatsnew/2.5.rst:1595 msgid "" "The :mod:`threading` module now lets you set the stack size used when new " "threads are created. The ``stack_size([*size*])`` function returns the " @@ -2359,14 +2049,12 @@ msgid "" "Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)" msgstr "" -#: ../../whatsnew/2.5.rst:1603 msgid "" "The :mod:`unicodedata` module has been updated to use version 4.1.0 of the " "Unicode character database. Version 3.2.0 is required by some " "specifications, so it's still available as :data:`unicodedata.ucd_3_2_0`." msgstr "" -#: ../../whatsnew/2.5.rst:1607 msgid "" "New module: the :mod:`uuid` module generates universally unique " "identifiers (UUIDs) according to :rfc:`4122`. The RFC defines several " @@ -2378,7 +2066,6 @@ msgid "" "module.) ::" msgstr "" -#: ../../whatsnew/2.5.rst:1615 msgid "" ">>> import uuid\n" ">>> # make a UUID based on the host ID and current time\n" @@ -2398,51 +2085,45 @@ msgid "" "UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')" msgstr "" -#: ../../whatsnew/2.5.rst:1632 msgid "(Contributed by Ka-Ping Yee.)" msgstr "" -#: ../../whatsnew/2.5.rst:1634 msgid "" -"The :mod:`weakref` module's :class:`WeakKeyDictionary` " -"and :class:`WeakValueDictionary` types gained new methods for iterating over " -"the weak references contained in the dictionary. :meth:`iterkeyrefs` " -"and :meth:`keyrefs` methods were added to :class:`WeakKeyDictionary`, " -"and :meth:`itervaluerefs` and :meth:`valuerefs` were added " -"to :class:`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" +"The :mod:`weakref` module's :class:`WeakKeyDictionary` and :class:" +"`WeakValueDictionary` types gained new methods for iterating over the weak " +"references contained in the dictionary. :meth:`iterkeyrefs` and :meth:" +"`keyrefs` methods were added to :class:`WeakKeyDictionary`, and :meth:" +"`itervaluerefs` and :meth:`valuerefs` were added to :class:" +"`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" msgstr "" -#: ../../whatsnew/2.5.rst:1641 msgid "" "The :mod:`webbrowser` module received a number of enhancements. It's now " "usable as a script with ``python -m webbrowser``, taking a URL as the " -"argument; there are a number of switches to control the behaviour " -"(:option:`!-n` for a new browser window, :option:`!-t` for a new tab). New " -"module-level functions, :func:`open_new` and :func:`open_new_tab`, were " -"added to support this. The module's :func:`open` function supports an " -"additional feature, an *autoraise* parameter that signals whether to raise " -"the open window when possible. A number of additional browsers were added to " -"the supported list such as Firefox, Opera, Konqueror, and elinks. " -"(Contributed by Oleg Broytmann and Georg Brandl.)" +"argument; there are a number of switches to control the behaviour (:option:" +"`!-n` for a new browser window, :option:`!-t` for a new tab). New module-" +"level functions, :func:`open_new` and :func:`open_new_tab`, were added to " +"support this. The module's :func:`open` function supports an additional " +"feature, an *autoraise* parameter that signals whether to raise the open " +"window when possible. A number of additional browsers were added to the " +"supported list such as Firefox, Opera, Konqueror, and elinks. (Contributed " +"by Oleg Broytmann and Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:1653 msgid "" -"The :mod:`xmlrpclib ` module now supports " -"returning :class:`~datetime.datetime` objects for the XML-RPC date type. " -"Supply ``use_datetime=True`` to the :func:`~xmlrpc.client.loads` function " -"or the :class:`!Unmarshaller` class to enable this feature. (Contributed by " -"Skip Montanaro.)" +"The :mod:`xmlrpclib ` module now supports returning :class:" +"`~datetime.datetime` objects for the XML-RPC date type. Supply " +"``use_datetime=True`` to the :func:`~xmlrpc.client.loads` function or the :" +"class:`!Unmarshaller` class to enable this feature. (Contributed by Skip " +"Montanaro.)" msgstr "" -#: ../../whatsnew/2.5.rst:1660 msgid "" "The :mod:`zipfile` module now supports the ZIP64 version of the format, " "meaning that a .zip archive can now be larger than 4 GiB and can contain " "individual files larger than 4 GiB. (Contributed by Ronald Oussoren.)" msgstr "" -#: ../../whatsnew/2.5.rst:1666 msgid "" "The :mod:`zlib` module's :class:`Compress` and :class:`Decompress` objects " "now support a :meth:`copy` method that makes a copy of the object's " @@ -2450,11 +2131,9 @@ msgid "" "object. (Contributed by Chris AtLee.)" msgstr "" -#: ../../whatsnew/2.5.rst:1679 msgid "The ctypes package" msgstr "" -#: ../../whatsnew/2.5.rst:1681 msgid "" "The :mod:`ctypes` package, written by Thomas Heller, has been added to the " "standard library. :mod:`ctypes` lets you call arbitrary functions in " @@ -2463,15 +2142,13 @@ msgid "" "functions in them. The :mod:`ctypes` package is much fancier." msgstr "" -#: ../../whatsnew/2.5.rst:1687 msgid "" -"To load a shared library or DLL, you must create an instance of " -"the :class:`CDLL` class and provide the name or path of the shared library " -"or DLL. Once that's done, you can call arbitrary functions by accessing them " -"as attributes of the :class:`CDLL` object. ::" +"To load a shared library or DLL, you must create an instance of the :class:" +"`CDLL` class and provide the name or path of the shared library or DLL. Once " +"that's done, you can call arbitrary functions by accessing them as " +"attributes of the :class:`CDLL` object. ::" msgstr "" -#: ../../whatsnew/2.5.rst:1692 msgid "" "import ctypes\n" "\n" @@ -2479,20 +2156,17 @@ msgid "" "result = libc.printf(\"Line of output\\n\")" msgstr "" -#: ../../whatsnew/2.5.rst:1697 msgid "" -"Type constructors for the various C types are " -"provided: :func:`c_int`, :func:`c_float`, :func:`c_double`, :func:`c_char_p` " -"(equivalent to :c:expr:`char \\*`), and so forth. Unlike Python's types, " -"the C versions are all mutable; you can assign to their :attr:`value` " -"attribute to change the wrapped value. Python integers and strings will be " -"automatically converted to the corresponding C types, but for other types " -"you must call the correct type constructor. (And I mean *must*; getting " -"it wrong will often result in the interpreter crashing with a segmentation " -"fault.)" +"Type constructors for the various C types are provided: :func:`c_int`, :func:" +"`c_float`, :func:`c_double`, :func:`c_char_p` (equivalent to :c:expr:`char " +"\\*`), and so forth. Unlike Python's types, the C versions are all mutable; " +"you can assign to their :attr:`value` attribute to change the wrapped " +"value. Python integers and strings will be automatically converted to the " +"corresponding C types, but for other types you must call the correct type " +"constructor. (And I mean *must*; getting it wrong will often result in the " +"interpreter crashing with a segmentation fault.)" msgstr "" -#: ../../whatsnew/2.5.rst:1706 msgid "" "You shouldn't use :func:`c_char_p` with a Python string when the C function " "will be modifying the memory area, because Python strings are supposed to " @@ -2500,20 +2174,17 @@ msgid "" "modifiable memory area, use :func:`create_string_buffer`::" msgstr "" -#: ../../whatsnew/2.5.rst:1711 msgid "" "s = \"this is a string\"\n" "buf = ctypes.create_string_buffer(s)\n" "libc.strfry(buf)" msgstr "" -#: ../../whatsnew/2.5.rst:1715 msgid "" -"C functions are assumed to return integers, but you can set " -"the :attr:`restype` attribute of the function object to change this::" +"C functions are assumed to return integers, but you can set the :attr:" +"`restype` attribute of the function object to change this::" msgstr "" -#: ../../whatsnew/2.5.rst:1718 msgid "" ">>> libc.atof('2.71828')\n" "-1783957616\n" @@ -2522,17 +2193,15 @@ msgid "" "2.71828" msgstr "" -#: ../../whatsnew/2.5.rst:1724 msgid "" -":mod:`ctypes` also provides a wrapper for Python's C API as the " -"``ctypes.pythonapi`` object. This object does *not* release the global " -"interpreter lock before calling a function, because the lock must be held " -"when calling into the interpreter's code. There's " -"a :class:`~ctypes.py_object` type constructor that will create " -"a :c:expr:`PyObject *` pointer. A simple usage::" +":mod:`ctypes` also provides a wrapper for Python's C API as the ``ctypes." +"pythonapi`` object. This object does *not* release the global interpreter " +"lock before calling a function, because the lock must be held when calling " +"into the interpreter's code. There's a :class:`~ctypes.py_object` type " +"constructor that will create a :c:expr:`PyObject *` pointer. A simple " +"usage::" msgstr "" -#: ../../whatsnew/2.5.rst:1730 msgid "" "import ctypes\n" "\n" @@ -2542,40 +2211,33 @@ msgid "" "# d is now {'abc', 1}." msgstr "" -#: ../../whatsnew/2.5.rst:1737 msgid "" "Don't forget to use :func:`~ctypes.py_object`; if it's omitted you end up " "with a segmentation fault." msgstr "" -#: ../../whatsnew/2.5.rst:1740 msgid "" ":mod:`ctypes` has been around for a while, but people still write and " -"distribution hand-coded extension modules because you can't rely " -"on :mod:`ctypes` being present. Perhaps developers will begin to write " -"Python wrappers atop a library accessed through :mod:`ctypes` instead of " -"extension modules, now that :mod:`ctypes` is included with core Python." +"distribution hand-coded extension modules because you can't rely on :mod:" +"`ctypes` being present. Perhaps developers will begin to write Python " +"wrappers atop a library accessed through :mod:`ctypes` instead of extension " +"modules, now that :mod:`ctypes` is included with core Python." msgstr "" -#: ../../whatsnew/2.5.rst:1749 msgid "" "https://web.archive.org/web/20180410025338/http://starship.python.net/crew/" "theller/ctypes/" msgstr "" -#: ../../whatsnew/2.5.rst:1750 msgid "The pre-stdlib ctypes web page, with a tutorial, reference, and FAQ." msgstr "" -#: ../../whatsnew/2.5.rst:1752 msgid "The documentation for the :mod:`ctypes` module." msgstr "" -#: ../../whatsnew/2.5.rst:1760 msgid "The ElementTree package" msgstr "" -#: ../../whatsnew/2.5.rst:1762 msgid "" "A subset of Fredrik Lundh's ElementTree library for processing XML has been " "added to the standard library as :mod:`xml.etree`. The available modules " @@ -2584,14 +2246,12 @@ msgid "" "included." msgstr "" -#: ../../whatsnew/2.5.rst:1768 msgid "" "The rest of this section will provide a brief overview of using ElementTree. " "Full documentation for ElementTree is available at https://web.archive.org/" "web/20201124024954/http://effbot.org/zone/element-index.htm." msgstr "" -#: ../../whatsnew/2.5.rst:1772 msgid "" "ElementTree represents an XML document as a tree of element nodes. The text " "content of the document is stored as the :attr:`text` and :attr:`tail` " @@ -2600,14 +2260,12 @@ msgid "" "node, including :class:`TextNode`.)" msgstr "" -#: ../../whatsnew/2.5.rst:1778 msgid "" "The most commonly used parsing function is :func:`parse`, that takes either " "a string (assumed to contain a filename) or a file-like object and returns " "an :class:`ElementTree` instance::" msgstr "" -#: ../../whatsnew/2.5.rst:1782 msgid "" "from xml.etree import ElementTree as ET\n" "\n" @@ -2618,13 +2276,11 @@ msgid "" "tree = ET.parse(feed)" msgstr "" -#: ../../whatsnew/2.5.rst:1790 msgid "" -"Once you have an :class:`ElementTree` instance, you can call " -"its :meth:`getroot` method to get the root :class:`Element` node." +"Once you have an :class:`ElementTree` instance, you can call its :meth:" +"`getroot` method to get the root :class:`Element` node." msgstr "" -#: ../../whatsnew/2.5.rst:1793 msgid "" "There's also an :func:`XML` function that takes a string literal and returns " "an :class:`Element` node (not an :class:`ElementTree`). This function " @@ -2632,7 +2288,6 @@ msgid "" "convenience of an XML literal::" msgstr "" -#: ../../whatsnew/2.5.rst:1798 msgid "" "svg = ET.XML(\"\"\"\n" " \"\"\")\n" @@ -2640,125 +2295,96 @@ msgid "" "svg.append(elem1)" msgstr "" -#: ../../whatsnew/2.5.rst:1803 msgid "" "Each XML element supports some dictionary-like and some list-like access " "methods. Dictionary-like operations are used to access attribute values, " "and list-like operations are used to access child nodes." msgstr "" -#: ../../whatsnew/2.5.rst:1808 msgid "Operation" msgstr "" -#: ../../whatsnew/2.5.rst:1808 msgid "Result" msgstr "" -#: ../../whatsnew/2.5.rst:1810 msgid "``elem[n]``" msgstr "" -#: ../../whatsnew/2.5.rst:1810 msgid "Returns n'th child element." msgstr "" -#: ../../whatsnew/2.5.rst:1812 msgid "``elem[m:n]``" msgstr "" -#: ../../whatsnew/2.5.rst:1812 msgid "Returns list of m'th through n'th child elements." msgstr "" -#: ../../whatsnew/2.5.rst:1815 msgid "``len(elem)``" msgstr "" -#: ../../whatsnew/2.5.rst:1815 msgid "Returns number of child elements." msgstr "" -#: ../../whatsnew/2.5.rst:1817 msgid "``list(elem)``" msgstr "" -#: ../../whatsnew/2.5.rst:1817 msgid "Returns list of child elements." msgstr "" -#: ../../whatsnew/2.5.rst:1819 msgid "``elem.append(elem2)``" msgstr "" -#: ../../whatsnew/2.5.rst:1819 msgid "Adds *elem2* as a child." msgstr "" -#: ../../whatsnew/2.5.rst:1821 msgid "``elem.insert(index, elem2)``" msgstr "" -#: ../../whatsnew/2.5.rst:1821 msgid "Inserts *elem2* at the specified location." msgstr "" -#: ../../whatsnew/2.5.rst:1823 msgid "``del elem[n]``" msgstr "" -#: ../../whatsnew/2.5.rst:1823 msgid "Deletes n'th child element." msgstr "" -#: ../../whatsnew/2.5.rst:1825 msgid "``elem.keys()``" msgstr "" -#: ../../whatsnew/2.5.rst:1825 msgid "Returns list of attribute names." msgstr "" -#: ../../whatsnew/2.5.rst:1827 msgid "``elem.get(name)``" msgstr "" -#: ../../whatsnew/2.5.rst:1827 msgid "Returns value of attribute *name*." msgstr "" -#: ../../whatsnew/2.5.rst:1829 msgid "``elem.set(name, value)``" msgstr "" -#: ../../whatsnew/2.5.rst:1829 msgid "Sets new value for attribute *name*." msgstr "" -#: ../../whatsnew/2.5.rst:1831 msgid "``elem.attrib``" msgstr "" -#: ../../whatsnew/2.5.rst:1831 msgid "Retrieves the dictionary containing attributes." msgstr "" -#: ../../whatsnew/2.5.rst:1834 msgid "``del elem.attrib[name]``" msgstr "" -#: ../../whatsnew/2.5.rst:1834 msgid "Deletes attribute *name*." msgstr "" -#: ../../whatsnew/2.5.rst:1837 msgid "" -"Comments and processing instructions are also represented " -"as :class:`Element` nodes. To check if a node is a comment or processing " +"Comments and processing instructions are also represented as :class:" +"`Element` nodes. To check if a node is a comment or processing " "instructions::" msgstr "" -#: ../../whatsnew/2.5.rst:1840 msgid "" "if elem.tag is ET.Comment:\n" " ...\n" @@ -2766,14 +2392,12 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.5.rst:1845 msgid "" "To generate XML output, you should call the :meth:`ElementTree.write` " "method. Like :func:`parse`, it can take either a string or a file-like " "object::" msgstr "" -#: ../../whatsnew/2.5.rst:1848 msgid "" "# Encoding is US-ASCII\n" "tree.write('output.xml')\n" @@ -2783,7 +2407,6 @@ msgid "" "tree.write(f, encoding='utf-8')" msgstr "" -#: ../../whatsnew/2.5.rst:1855 msgid "" "(Caution: the default encoding used for output is ASCII. For general XML " "work, where an element's name may contain arbitrary Unicode characters, " @@ -2793,27 +2416,22 @@ msgid "" "handle any Unicode character.)" msgstr "" -#: ../../whatsnew/2.5.rst:1862 msgid "" "This section is only a partial description of the ElementTree interfaces. " "Please read the package's official documentation for more details." msgstr "" -#: ../../whatsnew/2.5.rst:1868 msgid "" "https://web.archive.org/web/20201124024954/http://effbot.org/zone/element-" "index.htm" msgstr "" -#: ../../whatsnew/2.5.rst:1869 msgid "Official documentation for ElementTree." msgstr "" -#: ../../whatsnew/2.5.rst:1877 msgid "The hashlib package" msgstr "" -#: ../../whatsnew/2.5.rst:1879 msgid "" "A new :mod:`hashlib` module, written by Gregory P. Smith, has been added to " "replace the :mod:`!md5` and :mod:`!sha` modules. :mod:`hashlib` adds " @@ -2822,7 +2440,6 @@ msgid "" "optimized implementations of algorithms." msgstr "" -#: ../../whatsnew/2.5.rst:1885 msgid "" "The old :mod:`!md5` and :mod:`!sha` modules still exist as wrappers around " "hashlib to preserve backwards compatibility. The new module's interface is " @@ -2831,7 +2448,6 @@ msgid "" "hashing objects are named differently. ::" msgstr "" -#: ../../whatsnew/2.5.rst:1891 msgid "" "# Old versions\n" "h = md5.md5()\n" @@ -2857,7 +2473,6 @@ msgid "" "h = hashlib.new('md5') # Provide algorithm as a string" msgstr "" -#: ../../whatsnew/2.5.rst:1914 msgid "" "Once a hash object has been created, its methods are the same as before: " "``update(string)`` hashes the specified string into the current digest " @@ -2866,22 +2481,18 @@ msgid "" "hashing object with the same digest state." msgstr "" -#: ../../whatsnew/2.5.rst:1923 msgid "The documentation for the :mod:`hashlib` module." msgstr "" -#: ../../whatsnew/2.5.rst:1931 msgid "The sqlite3 package" msgstr "" -#: ../../whatsnew/2.5.rst:1933 msgid "" "The pysqlite module (https://www.pysqlite.org), a wrapper for the SQLite " "embedded database, has been added to the standard library under the package " "name :mod:`sqlite3`." msgstr "" -#: ../../whatsnew/2.5.rst:1937 msgid "" "SQLite is a C library that provides a lightweight disk-based database that " "doesn't require a separate server process and allows accessing the database " @@ -2891,13 +2502,11 @@ msgid "" "PostgreSQL or Oracle." msgstr "" -#: ../../whatsnew/2.5.rst:1944 msgid "" "pysqlite was written by Gerhard Häring and provides a SQL interface " "compliant with the DB-API 2.0 specification described by :pep:`249`." msgstr "" -#: ../../whatsnew/2.5.rst:1947 msgid "" "If you're compiling the Python source yourself, note that the source tree " "doesn't include the SQLite code, only the wrapper module. You'll need to " @@ -2906,30 +2515,25 @@ msgid "" "available." msgstr "" -#: ../../whatsnew/2.5.rst:1952 msgid "" "To use the module, you must first create a :class:`Connection` object that " "represents the database. Here the data will be stored in the :file:`/tmp/" "example` file::" msgstr "" -#: ../../whatsnew/2.5.rst:1956 msgid "conn = sqlite3.connect('/tmp/example')" msgstr "" -#: ../../whatsnew/2.5.rst:1958 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" -#: ../../whatsnew/2.5.rst:1960 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`execute` method to perform SQL commands::" msgstr "" -#: ../../whatsnew/2.5.rst:1963 msgid "" "c = conn.cursor()\n" "\n" @@ -2943,7 +2547,6 @@ msgid "" " values ('2006-01-05','BUY','RHAT',100,35.14)\"\"\")" msgstr "" -#: ../../whatsnew/2.5.rst:1974 msgid "" "Usually your SQL operations will need to use values from Python variables. " "You shouldn't assemble your query using Python's string operations because " @@ -2951,7 +2554,6 @@ msgid "" "attack." msgstr "" -#: ../../whatsnew/2.5.rst:1978 msgid "" "Instead, use the DB-API's parameter substitution. Put ``?`` as a " "placeholder wherever you want to use a value, and then provide a tuple of " @@ -2960,7 +2562,6 @@ msgid "" "``:1``.) For example::" msgstr "" -#: ../../whatsnew/2.5.rst:1983 msgid "" "# Never do this -- insecure!\n" "symbol = 'IBM'\n" @@ -2978,7 +2579,6 @@ msgid "" " c.execute('insert into stocks values (?,?,?,?,?)', t)" msgstr "" -#: ../../whatsnew/2.5.rst:1998 msgid "" "To retrieve data after executing a SELECT statement, you can either treat " "the cursor as an iterator, call the cursor's :meth:`fetchone` method to " @@ -2986,11 +2586,9 @@ msgid "" "the matching rows." msgstr "" -#: ../../whatsnew/2.5.rst:2003 msgid "This example uses the iterator form::" msgstr "" -#: ../../whatsnew/2.5.rst:2005 msgid "" ">>> c = conn.cursor()\n" ">>> c.execute('select * from stocks order by price')\n" @@ -3004,62 +2602,50 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.5.rst:2016 msgid "" "For more information about the SQL dialect supported by SQLite, see https://" "www.sqlite.org." msgstr "" -#: ../../whatsnew/2.5.rst:2022 msgid "https://www.pysqlite.org" msgstr "" -#: ../../whatsnew/2.5.rst:2023 msgid "The pysqlite web page." msgstr "" -#: ../../whatsnew/2.5.rst:2025 msgid "https://www.sqlite.org" msgstr "" -#: ../../whatsnew/2.5.rst:2026 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" -#: ../../whatsnew/2.5.rst:2029 msgid "The documentation for the :mod:`sqlite3` module." msgstr "" -#: ../../whatsnew/2.5.rst:2031 msgid ":pep:`249` - Database API Specification 2.0" msgstr "" -#: ../../whatsnew/2.5.rst:2032 msgid "PEP written by Marc-André Lemburg." msgstr "" -#: ../../whatsnew/2.5.rst:2040 msgid "The wsgiref package" msgstr "" -#: ../../whatsnew/2.5.rst:2042 msgid "" "The Web Server Gateway Interface (WSGI) v1.0 defines a standard interface " -"between web servers and Python web applications and is described " -"in :pep:`333`. The :mod:`wsgiref` package is a reference implementation of " -"the WSGI specification." +"between web servers and Python web applications and is described in :pep:" +"`333`. The :mod:`wsgiref` package is a reference implementation of the WSGI " +"specification." msgstr "" -#: ../../whatsnew/2.5.rst:2049 msgid "" "The package includes a basic HTTP server that will run a WSGI application; " "this server is useful for debugging but isn't intended for production use. " "Setting up a server takes only a few lines of code::" msgstr "" -#: ../../whatsnew/2.5.rst:2053 msgid "" "from wsgiref import simple_server\n" "\n" @@ -3071,40 +2657,32 @@ msgid "" "httpd.serve_forever()" msgstr "" -#: ../../whatsnew/2.5.rst:2068 msgid "" "https://web.archive.org/web/20160331090247/http://wsgi.readthedocs.org/en/" "latest/" msgstr "" -#: ../../whatsnew/2.5.rst:2069 msgid "A central web site for WSGI-related resources." msgstr "" -#: ../../whatsnew/2.5.rst:2071 msgid ":pep:`333` - Python Web Server Gateway Interface v1.0" msgstr "" -#: ../../whatsnew/2.5.rst:2072 msgid "PEP written by Phillip J. Eby." msgstr "" -#: ../../whatsnew/2.5.rst:2080 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/2.5.rst:2082 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/2.5.rst:2084 msgid "" "The Python source tree was converted from CVS to Subversion, in a complex " "migration procedure that was supervised and flawlessly carried out by Martin " "von Löwis. The procedure was developed as :pep:`347`." msgstr "" -#: ../../whatsnew/2.5.rst:2088 msgid "" "Coverity, a company that markets a source code analysis tool called Prevent, " "provided the results of their examination of the Python source code. The " @@ -3113,15 +2691,13 @@ msgid "" "https://scan.coverity.com for the statistics." msgstr "" -#: ../../whatsnew/2.5.rst:2094 msgid "" "The largest change to the C API came from :pep:`353`, which modifies the " -"interpreter to use a :c:type:`Py_ssize_t` type definition instead " -"of :c:expr:`int`. See the earlier section :ref:`pep-353` for a discussion " -"of this change." +"interpreter to use a :c:type:`Py_ssize_t` type definition instead of :c:expr:" +"`int`. See the earlier section :ref:`pep-353` for a discussion of this " +"change." msgstr "" -#: ../../whatsnew/2.5.rst:2099 msgid "" "The design of the bytecode compiler has changed a great deal, no longer " "generating bytecode by traversing the parse tree. Instead the parse tree is " @@ -3129,14 +2705,12 @@ msgid "" "syntax tree that's traversed to produce the bytecode." msgstr "" -#: ../../whatsnew/2.5.rst:2104 msgid "" -"It's possible for Python code to obtain AST objects by using " -"the :func:`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the " -"value of the *flags* parameter::" +"It's possible for Python code to obtain AST objects by using the :func:" +"`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the value of " +"the *flags* parameter::" msgstr "" -#: ../../whatsnew/2.5.rst:2108 msgid "" "from _ast import PyCF_ONLY_AST\n" "ast = compile(\"\"\"a=0\n" @@ -3148,21 +2722,19 @@ msgid "" "for_loop = ast.body[1]" msgstr "" -#: ../../whatsnew/2.5.rst:2117 msgid "" -"No official documentation has been written for the AST code yet, " -"but :pep:`339` discusses the design. To start learning about the code, read " -"the definition of the various AST nodes in :file:`Parser/Python.asdl`. A " -"Python script reads this file and generates a set of C structure definitions " -"in :file:`Include/Python-ast.h`. The :c:func:`PyParser_ASTFromString` " -"and :c:func:`!PyParser_ASTFromFile`, defined in :file:`Include/pythonrun.h`, " -"take Python source as input and return the root of an AST representing the " +"No official documentation has been written for the AST code yet, but :pep:" +"`339` discusses the design. To start learning about the code, read the " +"definition of the various AST nodes in :file:`Parser/Python.asdl`. A Python " +"script reads this file and generates a set of C structure definitions in :" +"file:`Include/Python-ast.h`. The :c:func:`PyParser_ASTFromString` and :c:" +"func:`!PyParser_ASTFromFile`, defined in :file:`Include/pythonrun.h`, take " +"Python source as input and return the root of an AST representing the " "contents. This AST can then be turned into a code object by :c:func:`!" "PyAST_Compile`. For more information, read the source code, and then ask " "questions on python-dev." msgstr "" -#: ../../whatsnew/2.5.rst:2127 msgid "" "The AST code was developed under Jeremy Hylton's management, and implemented " "by (in alphabetical order) Brett Cannon, Nick Coghlan, Grant Edwards, John " @@ -3171,7 +2743,6 @@ msgid "" "such as PyCon." msgstr "" -#: ../../whatsnew/2.5.rst:2136 msgid "" "Evan Jones's patch to obmalloc, first described in a talk at PyCon DC 2005, " "was applied. Python 2.4 allocated small objects in 256K-sized arenas, but " @@ -3182,39 +2753,34 @@ msgid "" "Jones, and reworked by Tim Peters.)" msgstr "" -#: ../../whatsnew/2.5.rst:2144 msgid "" "Note that this change means extension modules must be more careful when " "allocating memory. Python's API has many different functions for allocating " -"memory that are grouped into families. For " -"example, :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, " -"and :c:func:`PyMem_Free` are one family that allocates raw memory, " -"while :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, " -"and :c:func:`PyObject_Free` are another family that's supposed to be used " -"for creating Python objects." +"memory that are grouped into families. For example, :c:func:" +"`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:func:`PyMem_Free` are one " +"family that allocates raw memory, while :c:func:`PyObject_Malloc`, :c:func:" +"`PyObject_Realloc`, and :c:func:`PyObject_Free` are another family that's " +"supposed to be used for creating Python objects." msgstr "" -#: ../../whatsnew/2.5.rst:2152 msgid "" -"Previously these different families all reduced to the " -"platform's :c:func:`malloc` and :c:func:`free` functions. This meant it " -"didn't matter if you got things wrong and allocated memory with the " -"``PyMem`` function but freed it with the ``PyObject`` function. With 2.5's " -"changes to obmalloc, these families now do different things and mismatches " -"will probably result in a segfault. You should carefully test your C " -"extension modules with Python 2.5." +"Previously these different families all reduced to the platform's :c:func:" +"`malloc` and :c:func:`free` functions. This meant it didn't matter if you " +"got things wrong and allocated memory with the ``PyMem`` function but freed " +"it with the ``PyObject`` function. With 2.5's changes to obmalloc, these " +"families now do different things and mismatches will probably result in a " +"segfault. You should carefully test your C extension modules with Python " +"2.5." msgstr "" -#: ../../whatsnew/2.5.rst:2159 msgid "" "The built-in set types now have an official C API. Call :c:func:`PySet_New` " -"and :c:func:`PyFrozenSet_New` to create a new set, :c:func:`PySet_Add` " -"and :c:func:`PySet_Discard` to add and remove elements, " -"and :c:func:`PySet_Contains` and :c:func:`PySet_Size` to examine the set's " -"state. (Contributed by Raymond Hettinger.)" +"and :c:func:`PyFrozenSet_New` to create a new set, :c:func:`PySet_Add` and :" +"c:func:`PySet_Discard` to add and remove elements, and :c:func:" +"`PySet_Contains` and :c:func:`PySet_Size` to examine the set's state. " +"(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.5.rst:2165 msgid "" "C code can now obtain information about the exact revision of the Python " "interpreter by calling the :c:func:`Py_GetBuildInfo` function that returns " @@ -3222,27 +2788,24 @@ msgid "" "2006, 07:42:19\"``. (Contributed by Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.5.rst:2170 msgid "" "Two new macros can be used to indicate C functions that are local to the " "current file so that a faster calling convention can be used. " "``Py_LOCAL(type)`` declares the function as returning a value of the " "specified *type* and uses a fast-calling qualifier. " "``Py_LOCAL_INLINE(type)`` does the same thing and also requests the function " -"be inlined. If macro :c:macro:`!PY_LOCAL_AGGRESSIVE` is defined " -"before :file:`python.h` is included, a set of more aggressive optimizations " -"are enabled for the module; you should benchmark the results to find out if " +"be inlined. If macro :c:macro:`!PY_LOCAL_AGGRESSIVE` is defined before :" +"file:`python.h` is included, a set of more aggressive optimizations are " +"enabled for the module; you should benchmark the results to find out if " "these optimizations actually make the code faster. (Contributed by Fredrik " "Lundh at the NeedForSpeed sprint.)" msgstr "" -#: ../../whatsnew/2.5.rst:2181 msgid "" "``PyErr_NewException(name, base, dict)`` can now accept a tuple of base " "classes as its *base* argument. (Contributed by Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.5.rst:2184 msgid "" "The :c:func:`!PyErr_Warn` function for issuing warnings is now deprecated in " "favour of ``PyErr_WarnEx(category, message, stacklevel)`` which lets you " @@ -3251,14 +2814,12 @@ msgid "" "function above that, and so forth. (Added by Neal Norwitz.)" msgstr "" -#: ../../whatsnew/2.5.rst:2190 msgid "" "The CPython interpreter is still written in C, but the code can now be " "compiled with a C++ compiler without errors. (Implemented by Anthony " "Baxter, Martin von Löwis, Skip Montanaro.)" msgstr "" -#: ../../whatsnew/2.5.rst:2194 msgid "" "The :c:func:`!PyRange_New` function was removed. It was never documented, " "never used in the core code, and had dangerously lax error checking. In the " @@ -3266,48 +2827,40 @@ msgid "" "something like the following::" msgstr "" -#: ../../whatsnew/2.5.rst:2199 msgid "" "range = PyObject_CallFunction((PyObject*) &PyRange_Type, \"lll\",\n" " start, stop, step);" msgstr "" -#: ../../whatsnew/2.5.rst:2208 msgid "Port-Specific Changes" msgstr "" -#: ../../whatsnew/2.5.rst:2210 msgid "" -"MacOS X (10.3 and higher): dynamic loading of modules now uses " -"the :c:func:`dlopen` function instead of MacOS-specific functions." +"MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:" +"`dlopen` function instead of MacOS-specific functions." msgstr "" -#: ../../whatsnew/2.5.rst:2213 msgid "" -"MacOS X: an :option:`!--enable-universalsdk` switch was added to " -"the :program:`configure` script that compiles the interpreter as a universal " +"MacOS X: an :option:`!--enable-universalsdk` switch was added to the :" +"program:`configure` script that compiles the interpreter as a universal " "binary able to run on both PowerPC and Intel processors. (Contributed by " "Ronald Oussoren; :issue:`2573`.)" msgstr "" -#: ../../whatsnew/2.5.rst:2218 msgid "" "Windows: :file:`.dll` is no longer supported as a filename extension for " "extension modules. :file:`.pyd` is now the only filename extension that " "will be searched for." msgstr "" -#: ../../whatsnew/2.5.rst:2228 msgid "Porting to Python 2.5" msgstr "" -#: ../../whatsnew/2.5.rst:2230 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" -#: ../../whatsnew/2.5.rst:2233 msgid "" "ASCII is now the default encoding for modules. It's now a syntax error if " "a module contains string literals with 8-bit characters but doesn't have an " @@ -3315,15 +2868,12 @@ msgid "" "error." msgstr "" -#: ../../whatsnew/2.5.rst:2238 msgid "" "Previously, the :attr:`gi_frame` attribute of a generator was always a frame " -"object. Because of the :pep:`342` changes described in " -"section :ref:`pep-342`, it's now possible for :attr:`gi_frame` to be " -"``None``." +"object. Because of the :pep:`342` changes described in section :ref:" +"`pep-342`, it's now possible for :attr:`gi_frame` to be ``None``." msgstr "" -#: ../../whatsnew/2.5.rst:2242 msgid "" "A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " "compare a Unicode string and an 8-bit string that can't be converted to " @@ -3331,7 +2881,6 @@ msgid "" "raise a :class:`UnicodeDecodeError` exception." msgstr "" -#: ../../whatsnew/2.5.rst:2247 msgid "" "Library: the :mod:`csv` module is now stricter about multi-line quoted " "fields. If your files contain newlines embedded within fields, the input " @@ -3339,7 +2888,6 @@ msgid "" "characters." msgstr "" -#: ../../whatsnew/2.5.rst:2251 msgid "" "Library: the :mod:`locale` module's :func:`format` function's would " "previously accept any string as long as no more than one %char specifier " @@ -3347,7 +2895,6 @@ msgid "" "with no surrounding text." msgstr "" -#: ../../whatsnew/2.5.rst:2256 msgid "" "Library: The :mod:`pickle` and :mod:`!cPickle` modules no longer accept a " "return value of ``None`` from the :meth:`~object.__reduce__` method; the " @@ -3355,17 +2902,14 @@ msgid "" "accept the deprecated *bin* keyword parameter." msgstr "" -#: ../../whatsnew/2.5.rst:2261 msgid "" -"Library: The :mod:`SimpleXMLRPCServer ` " -"and :mod:`DocXMLRPCServer ` classes now have " -"a :attr:`rpc_paths` attribute that constrains XML-RPC operations to a " -"limited set of URL paths; the default is to allow only ``'/'`` and ``'/" -"RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " -"this path checking." +"Library: The :mod:`SimpleXMLRPCServer ` and :mod:" +"`DocXMLRPCServer ` classes now have a :attr:`rpc_paths` " +"attribute that constrains XML-RPC operations to a limited set of URL paths; " +"the default is to allow only ``'/'`` and ``'/RPC2'``. Setting :attr:" +"`rpc_paths` to ``None`` or an empty tuple disables this path checking." msgstr "" -#: ../../whatsnew/2.5.rst:2267 msgid "" "C API: Many functions now use :c:type:`Py_ssize_t` instead of :c:expr:`int` " "to allow processing more data on 64-bit machines. Extension code may need " @@ -3373,7 +2917,6 @@ msgid "" "See the earlier section :ref:`pep-353` for a discussion of this change." msgstr "" -#: ../../whatsnew/2.5.rst:2272 msgid "" "C API: The obmalloc changes mean that you must be careful to not mix usage " "of the ``PyMem_*`` and ``PyObject_*`` families of functions. Memory " @@ -3381,11 +2924,9 @@ msgid "" "corresponding family's ``*_Free`` function." msgstr "" -#: ../../whatsnew/2.5.rst:2281 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.5.rst:2283 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -3396,10 +2937,8 @@ msgid "" "Wouters." msgstr "" -#: ../../whatsnew/2.5.rst:1342 msgid "universal newlines" msgstr "" -#: ../../whatsnew/2.5.rst:1342 msgid "What's new" msgstr "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 8b11b9d..3620b60 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,44 +18,36 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.6.rst:5 msgid "What's New in Python 2.6" msgstr "" -#: ../../whatsnew/2.6.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.6.rst:7 msgid "A.M. Kuchling (amk at amk.ca)" msgstr "" -#: ../../whatsnew/2.6.rst:50 msgid "" "This article explains the new features in Python 2.6, released on October 1, " "2008. The release schedule is described in :pep:`361`." msgstr "" -#: ../../whatsnew/2.6.rst:53 msgid "" "The major theme of Python 2.6 is preparing the migration path to Python 3.0, " "a major redesign of the language. Whenever possible, Python 2.6 " "incorporates new features and syntax from 3.0 while remaining compatible " "with existing code by not removing older features or syntax. When it's not " "possible to do that, Python 2.6 tries to do what it can, adding " -"compatibility functions in a :mod:`future_builtins` module and " -"a :option:`!-3` switch to warn about usages that will become unsupported in " -"3.0." +"compatibility functions in a :mod:`future_builtins` module and a :option:" +"`!-3` switch to warn about usages that will become unsupported in 3.0." msgstr "" -#: ../../whatsnew/2.6.rst:62 msgid "" "Some significant new packages have been added to the standard library, such " "as the :mod:`multiprocessing` and :mod:`json` modules, but there aren't many " "new features that aren't related to Python 3.0 in some way." msgstr "" -#: ../../whatsnew/2.6.rst:67 msgid "" "Python 2.6 also sees a number of improvements and bugfixes throughout the " "source. A search through the change logs finds there were 259 patches " @@ -67,7 +55,6 @@ msgid "" "likely to be underestimates." msgstr "" -#: ../../whatsnew/2.6.rst:72 msgid "" "This article doesn't attempt to provide a complete specification of the new " "features, but instead provides a convenient overview. For full details, you " @@ -77,18 +64,15 @@ msgid "" "the bug/patch item for each change." msgstr "" -#: ../../whatsnew/2.6.rst:88 msgid "Python 3.0" msgstr "" -#: ../../whatsnew/2.6.rst:90 msgid "" "The development cycle for Python versions 2.6 and 3.0 was synchronized, with " "the alpha and beta releases for both versions being made on the same days. " "The development of 3.0 has influenced many features in 2.6." msgstr "" -#: ../../whatsnew/2.6.rst:95 msgid "" "Python 3.0 is a far-ranging redesign of Python that breaks compatibility " "with the 2.x series. This means that existing Python code will need some " @@ -99,22 +83,18 @@ msgid "" "derived features are:" msgstr "" -#: ../../whatsnew/2.6.rst:104 msgid "" "A :meth:`__complex__` method for converting objects to a complex number." msgstr "" -#: ../../whatsnew/2.6.rst:105 msgid "Alternate syntax for catching exceptions: ``except TypeError as exc``." msgstr "" -#: ../../whatsnew/2.6.rst:106 msgid "" -"The addition of :func:`functools.reduce` as a synonym for the built-" -"in :func:`reduce` function." +"The addition of :func:`functools.reduce` as a synonym for the built-in :func:" +"`reduce` function." msgstr "" -#: ../../whatsnew/2.6.rst:109 msgid "" "Python 3.0 adds several new built-in functions and changes the semantics of " "some existing builtins. Functions that are new in 3.0 such as :func:`bin` " @@ -124,29 +104,24 @@ msgid "" "future_builtins import hex, map`` as necessary." msgstr "" -#: ../../whatsnew/2.6.rst:117 msgid "" "A new command-line switch, :option:`!-3`, enables warnings about features " "that will be removed in Python 3.0. You can run code with this switch to " "see how much work will be necessary to port code to 3.0. The value of this " -"switch is available to Python code as the boolean " -"variable :data:`sys.py3kwarning`, and to C extension code as :c:data:`!" -"Py_Py3kWarningFlag`." +"switch is available to Python code as the boolean variable :data:`sys." +"py3kwarning`, and to C extension code as :c:data:`!Py_Py3kWarningFlag`." msgstr "" -#: ../../whatsnew/2.6.rst:126 msgid "" -"The 3\\ *xxx* series of PEPs, which contains proposals for Python " -"3.0. :pep:`3000` describes the development process for Python 3.0. Start " -"with :pep:`3100` that describes the general goals for Python 3.0, and then " -"explore the higher-numbered PEPs that propose specific features." +"The 3\\ *xxx* series of PEPs, which contains proposals for Python 3.0. :pep:" +"`3000` describes the development process for Python 3.0. Start with :pep:" +"`3100` that describes the general goals for Python 3.0, and then explore the " +"higher-numbered PEPs that propose specific features." msgstr "" -#: ../../whatsnew/2.6.rst:134 msgid "Changes to the Development Process" msgstr "" -#: ../../whatsnew/2.6.rst:136 msgid "" "While 2.6 was being developed, the Python development process underwent two " "significant changes: we switched from SourceForge's issue tracker to a " @@ -154,11 +129,9 @@ msgid "" "LaTeX to reStructuredText." msgstr "" -#: ../../whatsnew/2.6.rst:143 msgid "New Issue Tracker: Roundup" msgstr "" -#: ../../whatsnew/2.6.rst:145 msgid "" "For a long time, the Python developers had been growing increasingly annoyed " "by SourceForge's bug tracker. SourceForge's hosted solution doesn't permit " @@ -166,21 +139,19 @@ msgid "" "cycle of issues." msgstr "" -#: ../../whatsnew/2.6.rst:150 msgid "" "The infrastructure committee of the Python Software Foundation therefore " "posted a call for issue trackers, asking volunteers to set up different " "products and import some of the bugs and patches from SourceForge. Four " "different trackers were examined: `Jira `__, `Launchpad `__, `Roundup `__, and `Trac `__. The " +"jira/>`__, `Launchpad `__, `Roundup `__, and `Trac `__. The " "committee eventually settled on Jira and Roundup as the two candidates. " "Jira is a commercial product that offers no-cost hosted instances to free-" "software projects; Roundup is an open-source project that requires " "volunteers to administer it and a server to host it." msgstr "" -#: ../../whatsnew/2.6.rst:164 msgid "" "After posting a call for volunteers, a new Roundup installation was set up " "at https://bugs.python.org. One installation of Roundup can host multiple " @@ -190,53 +161,42 @@ msgid "" "item for each change." msgstr "" -#: ../../whatsnew/2.6.rst:172 msgid "" "Hosting of the Python bug tracker is kindly provided by `Upfront Systems " "`__ of Stellenbosch, South Africa. Martin " "von Löwis put a lot of effort into importing existing bugs and patches from " -"SourceForge; his scripts for this import operation are at ``https://" -"svn.python.org/view/tracker/importer/`` and may be useful to other projects " +"SourceForge; his scripts for this import operation are at ``https://svn." +"python.org/view/tracker/importer/`` and may be useful to other projects " "wishing to move from SourceForge to Roundup." msgstr "" -#: ../../whatsnew/2.6.rst:182 msgid "https://bugs.python.org" msgstr "" -#: ../../whatsnew/2.6.rst:183 msgid "The Python bug tracker." msgstr "" -#: ../../whatsnew/2.6.rst:185 msgid "https://bugs.jython.org:" msgstr "" -#: ../../whatsnew/2.6.rst:186 msgid "The Jython bug tracker." msgstr "" -#: ../../whatsnew/2.6.rst:188 msgid "https://roundup.sourceforge.io/" msgstr "" -#: ../../whatsnew/2.6.rst:189 msgid "Roundup downloads and documentation." msgstr "" -#: ../../whatsnew/2.6.rst:191 msgid "https://svn.python.org/view/tracker/importer/" msgstr "" -#: ../../whatsnew/2.6.rst:192 msgid "Martin von Löwis's conversion scripts." msgstr "" -#: ../../whatsnew/2.6.rst:195 msgid "New Documentation Format: reStructuredText Using Sphinx" msgstr "" -#: ../../whatsnew/2.6.rst:197 msgid "" "The Python documentation was written using LaTeX since the project started " "around 1989. In the 1980s and early 1990s, most documentation was printed " @@ -245,7 +205,6 @@ msgid "" "once the basic rules of the markup were learned." msgstr "" -#: ../../whatsnew/2.6.rst:204 msgid "" "Today LaTeX is still used for writing publications destined for printing, " "but the landscape for programming tools has shifted. We no longer print out " @@ -258,14 +217,12 @@ msgid "" "and no one ever committed the time required to finish the job." msgstr "" -#: ../../whatsnew/2.6.rst:215 msgid "" "During the 2.6 development cycle, Georg Brandl put a lot of effort into " "building a new toolchain for processing the documentation. The resulting " "package is called Sphinx, and is available from https://www.sphinx-doc.org/." msgstr "" -#: ../../whatsnew/2.6.rst:220 msgid "" "Sphinx concentrates on HTML output, producing attractively styled and modern " "HTML; printed output is still supported through conversion to LaTeX. The " @@ -273,43 +230,34 @@ msgid "" "extensions and directives that is commonly used in the Python community." msgstr "" -#: ../../whatsnew/2.6.rst:226 msgid "" "Sphinx is a standalone package that can be used for writing, and almost two " -"dozen other projects (`listed on the Sphinx web site `__) have adopted Sphinx as their " -"documentation tool." +"dozen other projects (`listed on the Sphinx web site `__) have adopted Sphinx as their documentation " +"tool." msgstr "" -#: ../../whatsnew/2.6.rst:233 msgid "`Documenting Python `__" msgstr "" -#: ../../whatsnew/2.6.rst:234 msgid "Describes how to write for Python's documentation." msgstr "" -#: ../../whatsnew/2.6.rst:236 msgid "`Sphinx `__" msgstr "" -#: ../../whatsnew/2.6.rst:237 msgid "Documentation and code for the Sphinx toolchain." msgstr "" -#: ../../whatsnew/2.6.rst:239 msgid "`Docutils `__" msgstr "" -#: ../../whatsnew/2.6.rst:240 msgid "The underlying reStructuredText parser and toolset." msgstr "" -#: ../../whatsnew/2.6.rst:246 msgid "PEP 343: The 'with' statement" msgstr "" -#: ../../whatsnew/2.6.rst:248 msgid "" "The previous version, Python 2.5, added the ':keyword:`with`' statement as " "an optional feature, to be enabled by a ``from __future__ import " @@ -320,7 +268,6 @@ msgid "" "':keyword:`!with`' statement from Python 2.5, you can skip this section." msgstr "" -#: ../../whatsnew/2.6.rst:257 msgid "" "The ':keyword:`with`' statement clarifies code that previously would use " "``try...finally`` blocks to ensure that clean-up code is executed. In this " @@ -329,26 +276,22 @@ msgid "" "objects for use with this statement." msgstr "" -#: ../../whatsnew/2.6.rst:263 msgid "" "The ':keyword:`with`' statement is a control-flow structure whose basic " "structure is::" msgstr "" -#: ../../whatsnew/2.6.rst:266 msgid "" "with expression [as variable]:\n" " with-block" msgstr "" -#: ../../whatsnew/2.6.rst:269 msgid "" "The expression is evaluated, and it should result in an object that supports " -"the context management protocol (that is, has :meth:`~object.__enter__` " -"and :meth:`~object.__exit__` methods)." +"the context management protocol (that is, has :meth:`~object.__enter__` and :" +"meth:`~object.__exit__` methods)." msgstr "" -#: ../../whatsnew/2.6.rst:273 msgid "" "The object's :meth:`~object.__enter__` is called before *with-block* is " "executed and therefore can run set-up code. It also may return a value that " @@ -356,21 +299,18 @@ msgid "" "is *not* assigned the result of *expression*.)" msgstr "" -#: ../../whatsnew/2.6.rst:278 msgid "" -"After execution of the *with-block* is finished, the " -"object's :meth:`~object.__exit__` method is called, even if the block raised " -"an exception, and can therefore run clean-up code." +"After execution of the *with-block* is finished, the object's :meth:`~object." +"__exit__` method is called, even if the block raised an exception, and can " +"therefore run clean-up code." msgstr "" -#: ../../whatsnew/2.6.rst:282 msgid "" "Some standard Python objects now support the context management protocol and " "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" -#: ../../whatsnew/2.6.rst:285 msgid "" "with open('/etc/passwd', 'r') as f:\n" " for line in f:\n" @@ -378,26 +318,22 @@ msgid "" " ... more processing code ..." msgstr "" -#: ../../whatsnew/2.6.rst:290 msgid "" "After this statement has executed, the file object in *f* will have been " "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" -#: ../../whatsnew/2.6.rst:296 msgid "" -"In this case, *f* is the same object created by :func:`open`, " -"because :meth:`~object.__enter__` returns *self*." +"In this case, *f* is the same object created by :func:`open`, because :meth:" +"`~object.__enter__` returns *self*." msgstr "" -#: ../../whatsnew/2.6.rst:299 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" -#: ../../whatsnew/2.6.rst:302 msgid "" "lock = threading.Lock()\n" "with lock:\n" @@ -405,20 +341,17 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:307 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" -#: ../../whatsnew/2.6.rst:310 msgid "" "The :func:`localcontext` function in the :mod:`decimal` module makes it easy " "to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" -#: ../../whatsnew/2.6.rst:314 msgid "" "from decimal import Decimal, Context, localcontext\n" "\n" @@ -432,11 +365,9 @@ msgid "" " print v.sqrt()" msgstr "" -#: ../../whatsnew/2.6.rst:329 msgid "Writing Context Managers" msgstr "" -#: ../../whatsnew/2.6.rst:331 msgid "" "Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " "people will only use ':keyword:`!with`' in company with existing objects and " @@ -445,54 +376,46 @@ msgid "" "the underlying implementation and should keep reading." msgstr "" -#: ../../whatsnew/2.6.rst:337 msgid "A high-level explanation of the context management protocol is:" msgstr "" -#: ../../whatsnew/2.6.rst:339 msgid "" "The expression is evaluated and should result in an object called a " -"\"context manager\". The context manager must " -"have :meth:`~object.__enter__` and :meth:`~object.__exit__` methods." +"\"context manager\". The context manager must have :meth:`~object." +"__enter__` and :meth:`~object.__exit__` methods." msgstr "" -#: ../../whatsnew/2.6.rst:343 msgid "" "The context manager's :meth:`~object.__enter__` method is called. The value " "returned is assigned to *VAR*. If no ``as VAR`` clause is present, the " "value is simply discarded." msgstr "" -#: ../../whatsnew/2.6.rst:347 msgid "The code in *BLOCK* is executed." msgstr "" -#: ../../whatsnew/2.6.rst:349 msgid "" -"If *BLOCK* raises an exception, the context " -"manager's :meth:`~object.__exit__` method is called with three arguments, " -"the exception details (``type, value, traceback``, the same values returned " -"by :func:`sys.exc_info`, which can also be ``None`` if no exception " -"occurred). The method's return value controls whether an exception is re-" -"raised: any false value re-raises the exception, and ``True`` will result in " -"suppressing it. You'll only rarely want to suppress the exception, because " -"if you do the author of the code containing the ':keyword:`with`' statement " -"will never realize anything went wrong." +"If *BLOCK* raises an exception, the context manager's :meth:`~object." +"__exit__` method is called with three arguments, the exception details " +"(``type, value, traceback``, the same values returned by :func:`sys." +"exc_info`, which can also be ``None`` if no exception occurred). The " +"method's return value controls whether an exception is re-raised: any false " +"value re-raises the exception, and ``True`` will result in suppressing it. " +"You'll only rarely want to suppress the exception, because if you do the " +"author of the code containing the ':keyword:`with`' statement will never " +"realize anything went wrong." msgstr "" -#: ../../whatsnew/2.6.rst:358 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`~object.__exit__` method " "is still called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" -#: ../../whatsnew/2.6.rst:361 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" -#: ../../whatsnew/2.6.rst:364 msgid "" "(For people unfamiliar with database terminology: a set of changes to the " "database are grouped into a transaction. Transactions can be either " @@ -501,13 +424,11 @@ msgid "" "unchanged. See any database textbook for more information.)" msgstr "" -#: ../../whatsnew/2.6.rst:370 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" -#: ../../whatsnew/2.6.rst:373 msgid "" "db_connection = DatabaseConnection()\n" "with db_connection as cursor:\n" @@ -516,14 +437,12 @@ msgid "" " # ... more operations ..." msgstr "" -#: ../../whatsnew/2.6.rst:379 msgid "" "The transaction should be committed if the code in the block runs flawlessly " -"or rolled back if there's an exception. Here's the basic interface " -"for :class:`DatabaseConnection` that I'll assume::" +"or rolled back if there's an exception. Here's the basic interface for :" +"class:`DatabaseConnection` that I'll assume::" msgstr "" -#: ../../whatsnew/2.6.rst:383 msgid "" "class DatabaseConnection:\n" " # Database interface\n" @@ -535,7 +454,6 @@ msgid "" " \"Rolls back current transaction\"" msgstr "" -#: ../../whatsnew/2.6.rst:392 msgid "" "The :meth:`~object.__enter__` method is pretty easy, having only to start a " "new transaction. For this application the resulting cursor object would be " @@ -544,7 +462,6 @@ msgid "" "variable name. ::" msgstr "" -#: ../../whatsnew/2.6.rst:397 msgid "" "class DatabaseConnection:\n" " ...\n" @@ -554,7 +471,6 @@ msgid "" " return cursor" msgstr "" -#: ../../whatsnew/2.6.rst:404 msgid "" "The :meth:`~object.__exit__` method is the most complicated because it's " "where most of the work has to be done. The method has to check if an " @@ -562,7 +478,6 @@ msgid "" "committed. The transaction is rolled back if there was an exception." msgstr "" -#: ../../whatsnew/2.6.rst:409 msgid "" "In the code below, execution will just fall off the end of the function, " "returning the default value of ``None``. ``None`` is false, so the " @@ -570,7 +485,6 @@ msgid "" "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" -#: ../../whatsnew/2.6.rst:414 msgid "" "class DatabaseConnection:\n" " ...\n" @@ -584,36 +498,31 @@ msgid "" " # return False" msgstr "" -#: ../../whatsnew/2.6.rst:429 msgid "The contextlib module" msgstr "" -#: ../../whatsnew/2.6.rst:431 msgid "" "The :mod:`contextlib` module provides some functions and a decorator that " "are useful when writing objects for use with the ':keyword:`with`' statement." msgstr "" -#: ../../whatsnew/2.6.rst:434 msgid "" "The decorator is called :func:`contextmanager`, and lets you write a single " "generator function instead of defining a new class. The generator should " "yield exactly one value. The code up to the :keyword:`yield` will be " "executed as the :meth:`~object.__enter__` method, and the value yielded will " -"be the method's return value that will get bound to the variable in the " -"':keyword:`with`' statement's :keyword:`!as` clause, if any. The code after " +"be the method's return value that will get bound to the variable in the ':" +"keyword:`with`' statement's :keyword:`!as` clause, if any. The code after " "the :keyword:`!yield` will be executed in the :meth:`~object.__exit__` " "method. Any exception raised in the block will be raised by the :keyword:`!" "yield` statement." msgstr "" -#: ../../whatsnew/2.6.rst:443 msgid "" "Using this decorator, our database example from the previous section could " "be written as::" msgstr "" -#: ../../whatsnew/2.6.rst:446 msgid "" "from contextlib import contextmanager\n" "\n" @@ -633,7 +542,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:463 msgid "" "The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " "that combines a number of context managers so you don't need to write nested " @@ -642,21 +550,18 @@ msgid "" "lock::" msgstr "" -#: ../../whatsnew/2.6.rst:468 msgid "" "lock = threading.Lock()\n" "with nested (db_transaction(db), lock) as (cursor, locked):\n" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:472 msgid "" "Finally, the :func:`closing` function returns its argument so that it can be " "bound to a variable, and calls the argument's ``.close()`` method at the end " "of the block. ::" msgstr "" -#: ../../whatsnew/2.6.rst:476 msgid "" "import urllib, sys\n" "from contextlib import closing\n" @@ -666,11 +571,9 @@ msgid "" " sys.stdout.write(line)" msgstr "" -#: ../../whatsnew/2.6.rst:486 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: ../../whatsnew/2.6.rst:487 msgid "" "PEP written by Guido van Rossum and Nick Coghlan; implemented by Mike Bland, " "Guido van Rossum, and Neal Norwitz. The PEP shows the code generated for a " @@ -678,29 +581,24 @@ msgid "" "statement works." msgstr "" -#: ../../whatsnew/2.6.rst:492 msgid "The documentation for the :mod:`contextlib` module." msgstr "" -#: ../../whatsnew/2.6.rst:499 msgid "PEP 366: Explicit Relative Imports From a Main Module" msgstr "" -#: ../../whatsnew/2.6.rst:501 msgid "" "Python's :option:`-m` switch allows running a module as a script. When you " "ran a module that was located inside a package, relative imports didn't work " "correctly." msgstr "" -#: ../../whatsnew/2.6.rst:505 msgid "" "The fix for Python 2.6 adds a :attr:`module.__package__` attribute. When " "this attribute is present, relative imports will be relative to the value of " "this attribute instead of the :attr:`~module.__name__` attribute." msgstr "" -#: ../../whatsnew/2.6.rst:510 msgid "" "PEP 302-style importers can then set :attr:`~module.__package__` as " "necessary. The :mod:`runpy` module that implements the :option:`-m` switch " @@ -708,11 +606,9 @@ msgid "" "running from inside a package." msgstr "" -#: ../../whatsnew/2.6.rst:520 msgid "PEP 370: Per-user ``site-packages`` Directory" msgstr "" -#: ../../whatsnew/2.6.rst:522 msgid "" "When you run Python, the module search path ``sys.path`` usually includes a " "directory whose path ends in ``\"site-packages\"``. This directory is " @@ -720,56 +616,46 @@ msgid "" "machine or a particular site installation." msgstr "" -#: ../../whatsnew/2.6.rst:527 msgid "" "Python 2.6 introduces a convention for user-specific site directories. The " "directory varies depending on the platform:" msgstr "" -#: ../../whatsnew/2.6.rst:530 msgid "Unix and Mac OS X: :file:`~/.local/`" msgstr "" -#: ../../whatsnew/2.6.rst:531 msgid "Windows: :file:`%APPDATA%/Python`" msgstr "" -#: ../../whatsnew/2.6.rst:533 msgid "" "Within this directory, there will be version-specific subdirectories, such " "as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/" "site-packages` on Windows." msgstr "" -#: ../../whatsnew/2.6.rst:537 msgid "" "If you don't like the default directory, it can be overridden by an " "environment variable. :envvar:`PYTHONUSERBASE` sets the root directory used " "for all Python versions supporting this feature. On Windows, the directory " -"for application-specific data can be changed by setting " -"the :envvar:`APPDATA` environment variable. You can also modify " -"the :file:`site.py` file for your Python installation." +"for application-specific data can be changed by setting the :envvar:" +"`APPDATA` environment variable. You can also modify the :file:`site.py` " +"file for your Python installation." msgstr "" -#: ../../whatsnew/2.6.rst:544 msgid "" "The feature can be disabled entirely by running Python with the :option:`-s` " "option or setting the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" -#: ../../whatsnew/2.6.rst:550 msgid ":pep:`370` - Per-user ``site-packages`` Directory" msgstr "" -#: ../../whatsnew/2.6.rst:551 msgid "PEP written and implemented by Christian Heimes." msgstr "" -#: ../../whatsnew/2.6.rst:559 msgid "PEP 371: The ``multiprocessing`` Package" msgstr "" -#: ../../whatsnew/2.6.rst:561 msgid "" "The new :mod:`multiprocessing` package lets Python programs create new " "processes that will perform a computation and return a result to the " @@ -778,27 +664,23 @@ msgid "" "share simple arrays of data." msgstr "" -#: ../../whatsnew/2.6.rst:567 msgid "" -"The :mod:`multiprocessing` module started out as an exact emulation of " -"the :mod:`threading` module using processes instead of threads. That goal " -"was discarded along the path to Python 2.6, but the general approach of the " +"The :mod:`multiprocessing` module started out as an exact emulation of the :" +"mod:`threading` module using processes instead of threads. That goal was " +"discarded along the path to Python 2.6, but the general approach of the " "module is still similar. The fundamental class is the :class:`Process`, " -"which is passed a callable object and a collection of arguments. " -"The :meth:`start` method sets the callable running in a subprocess, after " -"which you can call the :meth:`is_alive` method to check whether the " -"subprocess is still running and the :meth:`join` method to wait for the " -"process to exit." +"which is passed a callable object and a collection of arguments. The :meth:" +"`start` method sets the callable running in a subprocess, after which you " +"can call the :meth:`is_alive` method to check whether the subprocess is " +"still running and the :meth:`join` method to wait for the process to exit." msgstr "" -#: ../../whatsnew/2.6.rst:577 msgid "" "Here's a simple example where the subprocess will calculate a factorial. " "The function doing the calculation is written strangely so that it takes " "significantly longer when the input argument is a multiple of 4." msgstr "" -#: ../../whatsnew/2.6.rst:584 msgid "" "import time\n" "from multiprocessing import Process, Queue\n" @@ -831,7 +713,6 @@ msgid "" " print 'Factorial', N, '=', result" msgstr "" -#: ../../whatsnew/2.6.rst:614 msgid "" "A :class:`~queue.Queue` is used to communicate the result of the factorial. " "The :class:`~queue.Queue` object is stored in a global variable. The child " @@ -841,18 +722,16 @@ msgid "" "variable, the child's value would be unaffected, and vice versa.)" msgstr "" -#: ../../whatsnew/2.6.rst:622 msgid "" "Two other classes, :class:`Pool` and :class:`Manager`, provide higher-level " "interfaces. :class:`Pool` will create a fixed number of worker processes, " "and requests can then be distributed to the workers by calling :meth:`apply` " -"or :meth:`apply_async` to add a single request, and :meth:`map` " -"or :meth:`map_async` to add a number of requests. The following code uses " -"a :class:`Pool` to spread requests across 5 worker processes and retrieve a " -"list of results::" +"or :meth:`apply_async` to add a single request, and :meth:`map` or :meth:" +"`map_async` to add a number of requests. The following code uses a :class:" +"`Pool` to spread requests across 5 worker processes and retrieve a list of " +"results::" msgstr "" -#: ../../whatsnew/2.6.rst:630 msgid "" "from multiprocessing import Pool\n" "\n" @@ -865,11 +744,9 @@ msgid "" " print v" msgstr "" -#: ../../whatsnew/2.6.rst:640 msgid "This produces the following output::" msgstr "" -#: ../../whatsnew/2.6.rst:642 msgid "" "1\n" "39916800\n" @@ -879,7 +756,6 @@ msgid "" "..." msgstr "" -#: ../../whatsnew/2.6.rst:649 msgid "" "The other high-level interface, the :class:`Manager` class, creates a " "separate server process that can hold master copies of Python data " @@ -892,7 +768,6 @@ msgid "" "create shared locks.)" msgstr "" -#: ../../whatsnew/2.6.rst:661 msgid "" "import time\n" "from multiprocessing import Pool, Manager\n" @@ -927,11 +802,9 @@ msgid "" " print k, v" msgstr "" -#: ../../whatsnew/2.6.rst:693 msgid "This will produce the output::" msgstr "" -#: ../../whatsnew/2.6.rst:695 msgid "" "1 1\n" "11 39916800\n" @@ -941,32 +814,26 @@ msgid "" "51 15511187532873822802242430164693032110632597200169861120000..." msgstr "" -#: ../../whatsnew/2.6.rst:704 msgid "The documentation for the :mod:`multiprocessing` module." msgstr "" -#: ../../whatsnew/2.6.rst:706 msgid ":pep:`371` - Addition of the multiprocessing package" msgstr "" -#: ../../whatsnew/2.6.rst:707 msgid "" "PEP written by Jesse Noller and Richard Oudkerk; implemented by Richard " "Oudkerk and Jesse Noller." msgstr "" -#: ../../whatsnew/2.6.rst:716 msgid "PEP 3101: Advanced String Formatting" msgstr "" -#: ../../whatsnew/2.6.rst:718 msgid "" "In Python 3.0, the ``%`` operator is supplemented by a more powerful string " "formatting method, :meth:`format`. Support for the :meth:`str.format` " "method has been backported to Python 2.6." msgstr "" -#: ../../whatsnew/2.6.rst:722 msgid "" "In 2.6, both 8-bit and Unicode strings have a ``.format()`` method that " "treats the string as a template and takes the arguments to be formatted. The " @@ -974,7 +841,6 @@ msgid "" "characters::" msgstr "" -#: ../../whatsnew/2.6.rst:726 msgid "" ">>> # Substitute positional argument 0 into the string.\n" ">>> \"User ID: {0}\".format(\"root\")\n" @@ -986,28 +852,24 @@ msgid "" "'User ID: root Last seen: 5 Mar 2008 07:20'" msgstr "" -#: ../../whatsnew/2.6.rst:735 msgid "Curly brackets can be escaped by doubling them::" msgstr "" -#: ../../whatsnew/2.6.rst:737 msgid "" ">>> \"Empty dict: {{}}\".format()\n" "\"Empty dict: {}\"" msgstr "" -#: ../../whatsnew/2.6.rst:740 msgid "" "Field names can be integers indicating positional arguments, such as ``{0}" "``, ``{1}``, etc. or names of keyword arguments. You can also supply " "compound field names that read attributes or access dictionary keys::" msgstr "" -#: ../../whatsnew/2.6.rst:744 msgid "" ">>> import sys\n" -">>> print 'Platform: {0.platform}\\nPython version: " -"{0.version}'.format(sys)\n" +">>> print 'Platform: {0.platform}\\nPython version: {0.version}'." +"format(sys)\n" "Platform: darwin\n" "Python version: 2.6a1+ (trunk:61261M, Mar 5 2008, 20:29:41)\n" "[GCC 4.0.1 (Apple Computer, Inc. build 5367)]'\n" @@ -1017,7 +879,6 @@ msgid "" "'Content-type: video/mp4'" msgstr "" -#: ../../whatsnew/2.6.rst:754 msgid "" "Note that when using dictionary-style notation such as ``[.mp4]``, you don't " "need to put any quotation marks around the string; it will look up the value " @@ -1026,14 +887,12 @@ msgid "" "inside a format string." msgstr "" -#: ../../whatsnew/2.6.rst:760 msgid "" "So far we've shown how to specify which field to substitute into the " "resulting string. The precise formatting used is also controllable by " "adding a colon followed by a format specifier. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:764 msgid "" ">>> # Field 0: left justify, pad to 15 characters\n" ">>> # Field 1: right justify, pad to 6 characters\n" @@ -1046,11 +905,9 @@ msgid "" "'Banquet $ 125'" msgstr "" -#: ../../whatsnew/2.6.rst:774 msgid "Format specifiers can reference other fields through nesting::" msgstr "" -#: ../../whatsnew/2.6.rst:776 msgid "" ">>> fmt = '{0:{1}}'\n" ">>> width = 15\n" @@ -1061,58 +918,45 @@ msgid "" "'Invoice #1234 '" msgstr "" -#: ../../whatsnew/2.6.rst:784 msgid "The alignment of a field within the desired width can be specified:" msgstr "" -#: ../../whatsnew/2.6.rst:787 msgid "Character" msgstr "" -#: ../../whatsnew/2.6.rst:787 msgid "Effect" msgstr "" -#: ../../whatsnew/2.6.rst:789 msgid "< (default)" msgstr "" -#: ../../whatsnew/2.6.rst:789 msgid "Left-align" msgstr "" -#: ../../whatsnew/2.6.rst:790 msgid ">" msgstr "" -#: ../../whatsnew/2.6.rst:790 msgid "Right-align" msgstr "" -#: ../../whatsnew/2.6.rst:791 msgid "^" msgstr "" -#: ../../whatsnew/2.6.rst:791 msgid "Center" msgstr "" -#: ../../whatsnew/2.6.rst:792 msgid "=" msgstr "" -#: ../../whatsnew/2.6.rst:792 msgid "(For numeric types only) Pad after the sign." msgstr "" -#: ../../whatsnew/2.6.rst:795 msgid "" "Format specifiers can also include a presentation type, which controls how " "the value is formatted. For example, floating-point numbers can be " "formatted as a general number or in exponential notation::" msgstr "" -#: ../../whatsnew/2.6.rst:799 msgid "" ">>> '{0:g}'.format(3.75)\n" "'3.75'\n" @@ -1120,104 +964,83 @@ msgid "" "'3.750000e+00'" msgstr "" -#: ../../whatsnew/2.6.rst:804 msgid "" "A variety of presentation types are available. Consult the 2.6 " "documentation for a :ref:`complete list `; here's a sample:" msgstr "" -#: ../../whatsnew/2.6.rst:808 msgid "``b``" msgstr "" -#: ../../whatsnew/2.6.rst:808 msgid "Binary. Outputs the number in base 2." msgstr "" -#: ../../whatsnew/2.6.rst:809 msgid "``c``" -msgstr "``c``" +msgstr "" -#: ../../whatsnew/2.6.rst:809 msgid "" "Character. Converts the integer to the corresponding Unicode character " "before printing." msgstr "" -#: ../../whatsnew/2.6.rst:811 msgid "``d``" msgstr "" -#: ../../whatsnew/2.6.rst:811 msgid "Decimal Integer. Outputs the number in base 10." msgstr "" -#: ../../whatsnew/2.6.rst:812 msgid "``o``" -msgstr "``o``" +msgstr "" -#: ../../whatsnew/2.6.rst:812 msgid "Octal format. Outputs the number in base 8." msgstr "" -#: ../../whatsnew/2.6.rst:813 msgid "``x``" -msgstr "``x``" +msgstr "" -#: ../../whatsnew/2.6.rst:813 msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" -#: ../../whatsnew/2.6.rst:815 msgid "``e``" msgstr "" -#: ../../whatsnew/2.6.rst:815 msgid "" "Exponent notation. Prints the number in scientific notation using the letter " "'e' to indicate the exponent." msgstr "" -#: ../../whatsnew/2.6.rst:817 msgid "``g``" msgstr "" -#: ../../whatsnew/2.6.rst:817 msgid "" "General format. This prints the number as a fixed-point number, unless the " "number is too large, in which case it switches to 'e' exponent notation." msgstr "" -#: ../../whatsnew/2.6.rst:820 msgid "``n``" msgstr "" -#: ../../whatsnew/2.6.rst:820 msgid "" "Number. This is the same as 'g' (for floats) or 'd' (for integers), except " "that it uses the current locale setting to insert the appropriate number " "separator characters." msgstr "" -#: ../../whatsnew/2.6.rst:823 msgid "``%``" -msgstr "``%``" +msgstr "" -#: ../../whatsnew/2.6.rst:823 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed ('f') format, " "followed by a percent sign." msgstr "" -#: ../../whatsnew/2.6.rst:827 msgid "" "Classes and types can define a :meth:`__format__` method to control how " "they're formatted. It receives a single argument, the format specifier::" msgstr "" -#: ../../whatsnew/2.6.rst:830 msgid "" "def __format__(self, format_spec):\n" " if isinstance(format_spec, unicode):\n" @@ -1226,106 +1049,84 @@ msgid "" " return str(self)" msgstr "" -#: ../../whatsnew/2.6.rst:836 msgid "" "There's also a :func:`format` builtin that will format a single value. It " "calls the type's :meth:`__format__` method with the provided specifier::" msgstr "" -#: ../../whatsnew/2.6.rst:840 msgid "" ">>> format(75.6564, '.2f')\n" "'75.66'" msgstr "" -#: ../../whatsnew/2.6.rst:846 msgid ":ref:`formatstrings`" msgstr "" -#: ../../whatsnew/2.6.rst:847 msgid "The reference documentation for format fields." msgstr "" -#: ../../whatsnew/2.6.rst:849 msgid ":pep:`3101` - Advanced String Formatting" msgstr "" -#: ../../whatsnew/2.6.rst:850 msgid "PEP written by Talin. Implemented by Eric Smith." msgstr "" -#: ../../whatsnew/2.6.rst:857 msgid "PEP 3105: ``print`` As a Function" msgstr "" -#: ../../whatsnew/2.6.rst:859 msgid "" "The ``print`` statement becomes the :func:`print` function in Python 3.0. " "Making :func:`print` a function makes it possible to replace the function by " "doing ``def print(...)`` or importing a new function from somewhere else." msgstr "" -#: ../../whatsnew/2.6.rst:863 msgid "" "Python 2.6 has a ``__future__`` import that removes ``print`` as language " "syntax, letting you use the functional form instead. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:866 msgid "" ">>> from __future__ import print_function\n" ">>> print('# of entries', len(dictionary), file=sys.stderr)" msgstr "" -#: ../../whatsnew/2.6.rst:869 msgid "The signature of the new function is::" msgstr "" -#: ../../whatsnew/2.6.rst:871 msgid "def print(*args, sep=' ', end='\\n', file=None)" msgstr "" -#: ../../whatsnew/2.6.rst:874 msgid "The parameters are:" msgstr "" -#: ../../whatsnew/2.6.rst:876 msgid "*args*: positional arguments whose values will be printed out." msgstr "" -#: ../../whatsnew/2.6.rst:877 msgid "*sep*: the separator, which will be printed between arguments." msgstr "" -#: ../../whatsnew/2.6.rst:878 msgid "" "*end*: the ending text, which will be printed after all of the arguments " "have been output." msgstr "" -#: ../../whatsnew/2.6.rst:880 msgid "*file*: the file object to which the output will be sent." msgstr "" -#: ../../whatsnew/2.6.rst:884 msgid ":pep:`3105` - Make print a function" msgstr "" -#: ../../whatsnew/2.6.rst:885 msgid "PEP written by Georg Brandl." msgstr "" -#: ../../whatsnew/2.6.rst:892 msgid "PEP 3110: Exception-Handling Changes" msgstr "" -#: ../../whatsnew/2.6.rst:894 msgid "" "One error that Python programmers occasionally make is writing the following " "code::" msgstr "" -#: ../../whatsnew/2.6.rst:897 msgid "" "try:\n" " ...\n" @@ -1333,17 +1134,14 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:902 msgid "" -"The author is probably trying to catch both :exc:`TypeError` " -"and :exc:`ValueError` exceptions, but this code actually does something " -"different: it will catch :exc:`TypeError` and bind the resulting exception " -"object to the local name ``\"ValueError\"``. The :exc:`ValueError` " -"exception will not be caught at all. The correct code specifies a tuple of " -"exceptions::" +"The author is probably trying to catch both :exc:`TypeError` and :exc:" +"`ValueError` exceptions, but this code actually does something different: it " +"will catch :exc:`TypeError` and bind the resulting exception object to the " +"local name ``\"ValueError\"``. The :exc:`ValueError` exception will not be " +"caught at all. The correct code specifies a tuple of exceptions::" msgstr "" -#: ../../whatsnew/2.6.rst:909 msgid "" "try:\n" " ...\n" @@ -1351,21 +1149,18 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:914 msgid "" "This error happens because the use of the comma here is ambiguous: does it " "indicate two different nodes in the parse tree, or a single node that's a " "tuple?" msgstr "" -#: ../../whatsnew/2.6.rst:918 msgid "" "Python 3.0 makes this unambiguous by replacing the comma with the word " "\"as\". To catch an exception and store the exception object in the " "variable ``exc``, you must write::" msgstr "" -#: ../../whatsnew/2.6.rst:922 msgid "" "try:\n" " ...\n" @@ -1373,7 +1168,6 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:927 msgid "" "Python 3.0 will only support the use of \"as\", and therefore interprets the " "first example as catching two different exceptions. Python 2.6 supports " @@ -1382,54 +1176,46 @@ msgid "" "be executed with 2.6." msgstr "" -#: ../../whatsnew/2.6.rst:935 msgid ":pep:`3110` - Catching Exceptions in Python 3000" msgstr "" -#: ../../whatsnew/2.6.rst:936 msgid "PEP written and implemented by Collin Winter." msgstr "" -#: ../../whatsnew/2.6.rst:943 msgid "PEP 3112: Byte Literals" msgstr "" -#: ../../whatsnew/2.6.rst:945 msgid "" "Python 3.0 adopts Unicode as the language's fundamental string type and " -"denotes 8-bit literals differently, either as ``b'string'`` or using " -"a :class:`bytes` constructor. For future compatibility, Python 2.6 " -"adds :class:`bytes` as a synonym for the :class:`str` type, and it also " -"supports the ``b''`` notation." +"denotes 8-bit literals differently, either as ``b'string'`` or using a :" +"class:`bytes` constructor. For future compatibility, Python 2.6 adds :class:" +"`bytes` as a synonym for the :class:`str` type, and it also supports the " +"``b''`` notation." msgstr "" -#: ../../whatsnew/2.6.rst:952 msgid "" "The 2.6 :class:`str` differs from 3.0's :class:`bytes` type in various ways; " "most notably, the constructor is completely different. In 3.0, ``bytes([65, " "66, 67])`` is 3 elements long, containing the bytes representing ``ABC``; in " -"2.6, ``bytes([65, 66, 67])`` returns the 12-byte string representing " -"the :func:`str` of the list." +"2.6, ``bytes([65, 66, 67])`` returns the 12-byte string representing the :" +"func:`str` of the list." msgstr "" -#: ../../whatsnew/2.6.rst:958 msgid "" "The primary use of :class:`bytes` in 2.6 will be to write tests of object " "type such as ``isinstance(x, bytes)``. This will help the 2to3 converter, " "which can't tell whether 2.x code intends strings to contain either " -"characters or 8-bit bytes; you can now use either :class:`bytes` " -"or :class:`str` to represent your intention exactly, and the resulting code " -"will also be correct in Python 3.0." +"characters or 8-bit bytes; you can now use either :class:`bytes` or :class:" +"`str` to represent your intention exactly, and the resulting code will also " +"be correct in Python 3.0." msgstr "" -#: ../../whatsnew/2.6.rst:965 msgid "" "There's also a ``__future__`` import that causes all string literals to " "become Unicode strings. This means that ``\\u`` escape sequences can be " "used to include Unicode characters::" msgstr "" -#: ../../whatsnew/2.6.rst:970 msgid "" "from __future__ import unicode_literals\n" "\n" @@ -1439,22 +1225,20 @@ msgid "" "print len(s) # 12 Unicode characters" msgstr "" -#: ../../whatsnew/2.6.rst:977 msgid "" "At the C level, Python 3.0 will rename the existing 8-bit string type, " "called :c:type:`!PyStringObject` in Python 2.x, to :c:type:`PyBytesObject`. " -"Python 2.6 uses ``#define`` to support using the " -"names :c:func:`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:`PyBytes_FromStringAndSize`, " -"and all the other functions and macros used with strings." +"Python 2.6 uses ``#define`` to support using the names :c:func:" +"`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:" +"`PyBytes_FromStringAndSize`, and all the other functions and macros used " +"with strings." msgstr "" -#: ../../whatsnew/2.6.rst:984 msgid "" "Instances of the :class:`bytes` type are immutable just as strings are. A " "new :class:`bytearray` type stores a mutable sequence of bytes::" msgstr "" -#: ../../whatsnew/2.6.rst:988 msgid "" ">>> bytearray([65, 66, 67])\n" "bytearray(b'ABC')\n" @@ -1468,15 +1252,14 @@ msgid "" "u'\\u31ef \\u3244'" msgstr "" -#: ../../whatsnew/2.6.rst:999 msgid "" -"Byte arrays support most of the methods of string types, such " -"as :meth:`startswith`/:meth:`endswith`, :meth:`find`/:meth:`rfind`, and some " -"of the methods of lists, such as :meth:`append`, :meth:`pop`, " -"and :meth:`reverse`." +"Byte arrays support most of the methods of string types, such as :meth:" +"`~bytearray.startswith`/:meth:`~bytearray.endswith`, :meth:`~bytearray." +"find`/:meth:`~bytearray.rfind`, and some of the methods of lists, such as :" +"meth:`~bytearray.append`, :meth:`~bytearray.pop`, and :meth:`~bytearray." +"reverse`." msgstr "" -#: ../../whatsnew/2.6.rst:1006 msgid "" ">>> b = bytearray('ABC')\n" ">>> b.append('d')\n" @@ -1485,95 +1268,81 @@ msgid "" "bytearray(b'ABCde')" msgstr "" -#: ../../whatsnew/2.6.rst:1012 msgid "" -"There's also a corresponding C API, " -"with :c:func:`PyByteArray_FromObject`, :c:func:`PyByteArray_FromStringAndSize`, " -"and various other functions." +"There's also a corresponding C API, with :c:func:`PyByteArray_FromObject`, :" +"c:func:`PyByteArray_FromStringAndSize`, and various other functions." msgstr "" -#: ../../whatsnew/2.6.rst:1019 msgid ":pep:`3112` - Bytes literals in Python 3000" msgstr "" -#: ../../whatsnew/2.6.rst:1020 msgid "PEP written by Jason Orendorff; backported to 2.6 by Christian Heimes." msgstr "" -#: ../../whatsnew/2.6.rst:1027 msgid "PEP 3116: New I/O Library" msgstr "" -#: ../../whatsnew/2.6.rst:1029 msgid "" "Python's built-in file objects support a number of methods, but file-like " "objects don't necessarily support all of them. Objects that imitate files " -"usually support :meth:`read` and :meth:`write`, but they may not " -"support :meth:`readline`, for example. Python 3.0 introduces a layered I/O " -"library in the :mod:`io` module that separates buffering and text-handling " -"features from the fundamental read and write operations." +"usually support :meth:`read` and :meth:`write`, but they may not support :" +"meth:`readline`, for example. Python 3.0 introduces a layered I/O library " +"in the :mod:`io` module that separates buffering and text-handling features " +"from the fundamental read and write operations." msgstr "" -#: ../../whatsnew/2.6.rst:1037 msgid "" "There are three levels of abstract base classes provided by the :mod:`io` " "module:" msgstr "" -#: ../../whatsnew/2.6.rst:1040 msgid "" -":class:`RawIOBase` defines raw I/O " -"operations: :meth:`read`, :meth:`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " +":class:`RawIOBase` defines raw I/O operations: :meth:`read`, :meth:" +"`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " "and :meth:`close`. Most of the methods of this class will often map to a " -"single system call. There are also :meth:`readable`, :meth:`writable`, " -"and :meth:`seekable` methods for determining what operations a given object " -"will allow." +"single system call. There are also :meth:`readable`, :meth:`writable`, and :" +"meth:`seekable` methods for determining what operations a given object will " +"allow." msgstr "" -#: ../../whatsnew/2.6.rst:1048 msgid "" "Python 3.0 has concrete implementations of this class for files and sockets, " "but Python 2.6 hasn't restructured its file and socket objects in this way." msgstr "" -#: ../../whatsnew/2.6.rst:1052 msgid "" ":class:`BufferedIOBase` is an abstract base class that buffers data in " "memory to reduce the number of system calls used, making I/O processing more " -"efficient. It supports all of the methods of :class:`RawIOBase`, and adds " -"a :attr:`raw` attribute holding the underlying raw object." +"efficient. It supports all of the methods of :class:`RawIOBase`, and adds a :" +"attr:`raw` attribute holding the underlying raw object." msgstr "" -#: ../../whatsnew/2.6.rst:1058 msgid "" -"There are five concrete classes implementing this " -"ABC. :class:`BufferedWriter` and :class:`BufferedReader` are for objects " -"that support write-only or read-only usage that have a :meth:`seek` method " -"for random access. :class:`BufferedRandom` objects support read and write " -"access upon the same underlying stream, and :class:`BufferedRWPair` is for " -"objects such as TTYs that have both read and write operations acting upon " -"unconnected streams of data. The :class:`BytesIO` class supports reading, " -"writing, and seeking over an in-memory buffer." +"There are five concrete classes implementing this ABC. :class:" +"`BufferedWriter` and :class:`BufferedReader` are for objects that support " +"write-only or read-only usage that have a :meth:`seek` method for random " +"access. :class:`BufferedRandom` objects support read and write access upon " +"the same underlying stream, and :class:`BufferedRWPair` is for objects such " +"as TTYs that have both read and write operations acting upon unconnected " +"streams of data. The :class:`BytesIO` class supports reading, writing, and " +"seeking over an in-memory buffer." msgstr "" -#: ../../whatsnew/2.6.rst:1071 msgid "" ":class:`TextIOBase`: Provides functions for reading and writing strings " -"(remember, strings will be Unicode in Python 3.0), and " -"supporting :term:`universal newlines`. :class:`TextIOBase` defines " -"the :meth:`readline` method and supports iteration upon objects." +"(remember, strings will be Unicode in Python 3.0), and supporting :term:" +"`universal newlines`. :class:`TextIOBase` defines the :meth:`readline` " +"method and supports iteration upon objects." msgstr "" -#: ../../whatsnew/2.6.rst:1077 msgid "" "There are two concrete implementations. :class:`TextIOWrapper` wraps a " "buffered I/O object, supporting all of the methods for text I/O and adding " -"a :attr:`buffer` attribute for access to the underlying " -"object. :class:`StringIO` simply buffers everything in memory without ever " -"writing anything to disk." +"a :attr:`buffer` attribute for access to the underlying object. :class:" +"`StringIO` simply buffers everything in memory without ever writing anything " +"to disk." msgstr "" -#: ../../whatsnew/2.6.rst:1083 msgid "" "(In Python 2.6, :class:`io.StringIO` is implemented in pure Python, so it's " "pretty slow. You should therefore stick with the existing :mod:`!StringIO` " @@ -1582,7 +1351,6 @@ msgid "" "will be backported to the 2.x releases.)" msgstr "" -#: ../../whatsnew/2.6.rst:1089 msgid "" "In Python 2.6, the underlying implementations haven't been restructured to " "build on top of the :mod:`io` module's classes. The module is being " @@ -1591,22 +1359,18 @@ msgid "" "buffering and text I/O." msgstr "" -#: ../../whatsnew/2.6.rst:1097 msgid ":pep:`3116` - New I/O" msgstr "" -#: ../../whatsnew/2.6.rst:1098 msgid "" "PEP written by Daniel Stutzbach, Mike Verdone, and Guido van Rossum. Code by " "Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " "Löwis, Tony Lownds, and others." msgstr "" -#: ../../whatsnew/2.6.rst:1107 msgid "PEP 3118: Revised Buffer Protocol" msgstr "" -#: ../../whatsnew/2.6.rst:1109 msgid "" "The buffer protocol is a C-level API that lets Python types exchange " "pointers into their internal representations. A memory-mapped file can be " @@ -1615,7 +1379,6 @@ msgid "" "searched." msgstr "" -#: ../../whatsnew/2.6.rst:1115 msgid "" "The primary users of the buffer protocol are numeric-processing packages " "such as NumPy, which expose the internal representation of arrays so that " @@ -1625,7 +1388,6 @@ msgid "" "the shape of an array or locking a memory region." msgstr "" -#: ../../whatsnew/2.6.rst:1122 msgid "" "The most important new C API function is ``PyObject_GetBuffer(PyObject *obj, " "Py_buffer *view, int flags)``, which takes an object and a set of flags, and " @@ -1636,49 +1398,40 @@ msgid "" "external caller is done." msgstr "" -#: ../../whatsnew/2.6.rst:1132 msgid "" "The *flags* argument to :c:func:`PyObject_GetBuffer` specifies constraints " "upon the memory returned. Some examples are:" msgstr "" -#: ../../whatsnew/2.6.rst:1135 msgid ":c:macro:`PyBUF_WRITABLE` indicates that the memory must be writable." msgstr "" -#: ../../whatsnew/2.6.rst:1137 msgid "" ":c:macro:`PyBUF_LOCK` requests a read-only or exclusive lock on the memory." msgstr "" -#: ../../whatsnew/2.6.rst:1139 msgid "" ":c:macro:`PyBUF_C_CONTIGUOUS` and :c:macro:`PyBUF_F_CONTIGUOUS` requests a C-" "contiguous (last dimension varies the fastest) or Fortran-contiguous (first " "dimension varies the fastest) array layout." msgstr "" -#: ../../whatsnew/2.6.rst:1143 msgid "" "Two new argument codes for :c:func:`PyArg_ParseTuple`, ``s*`` and ``z*``, " "return locked buffer objects for a parameter." msgstr "" -#: ../../whatsnew/2.6.rst:1148 msgid ":pep:`3118` - Revising the buffer protocol" msgstr "" -#: ../../whatsnew/2.6.rst:1149 msgid "" "PEP written by Travis Oliphant and Carl Banks; implemented by Travis " "Oliphant." msgstr "" -#: ../../whatsnew/2.6.rst:1158 msgid "PEP 3119: Abstract Base Classes" msgstr "" -#: ../../whatsnew/2.6.rst:1160 msgid "" "Some object-oriented languages such as Java support interfaces, declaring " "that a class has a given set of methods or supports a given access " @@ -1690,35 +1443,31 @@ msgid "" "versions of Python will probably add more ABCs." msgstr "" -#: ../../whatsnew/2.6.rst:1170 msgid "" "Let's say you have a particular class and wish to know whether it supports " "dictionary-style access. The phrase \"dictionary-style\" is vague, however. " "It probably means that accessing items with ``obj[1]`` works. Does it imply " "that setting items with ``obj[2] = value`` works? Or that the object will " "have :meth:`keys`, :meth:`values`, and :meth:`items` methods? What about " -"the iterative variants such as :meth:`iterkeys`? :meth:`copy` " -"and :meth:`update`? Iterating over the object with :func:`iter`?" +"the iterative variants such as :meth:`iterkeys`? :meth:`copy` and :meth:" +"`update`? Iterating over the object with :func:`iter`?" msgstr "" -#: ../../whatsnew/2.6.rst:1178 msgid "" "The Python 2.6 :mod:`collections` module includes a number of different ABCs " "that represent these distinctions. :class:`Iterable` indicates that a class " -"defines :meth:`__iter__`, and :class:`Container` means the class defines " -"a :meth:`__contains__` method and therefore supports ``x in y`` " -"expressions. The basic dictionary interface of getting items, setting " -"items, and :meth:`keys`, :meth:`values`, and :meth:`items`, is defined by " -"the :class:`MutableMapping` ABC." +"defines :meth:`__iter__`, and :class:`Container` means the class defines a :" +"meth:`__contains__` method and therefore supports ``x in y`` expressions. " +"The basic dictionary interface of getting items, setting items, and :meth:" +"`keys`, :meth:`values`, and :meth:`items`, is defined by the :class:" +"`MutableMapping` ABC." msgstr "" -#: ../../whatsnew/2.6.rst:1187 msgid "" "You can derive your own classes from a particular ABC to indicate they " "support that ABC's interface::" msgstr "" -#: ../../whatsnew/2.6.rst:1190 msgid "" "import collections\n" "\n" @@ -1726,14 +1475,12 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:1196 msgid "" "Alternatively, you could write the class without deriving from the desired " "ABC and instead register the class by calling the ABC's :meth:`register` " "method::" msgstr "" -#: ../../whatsnew/2.6.rst:1200 msgid "" "import collections\n" "\n" @@ -1743,16 +1490,14 @@ msgid "" "collections.MutableMapping.register(Storage)" msgstr "" -#: ../../whatsnew/2.6.rst:1207 msgid "" -"For classes that you write, deriving from the ABC is probably clearer. " -"The :meth:`register` method is useful when you've written a new ABC that " -"can describe an existing type or class, or if you want to declare that some " -"third-party class implements an ABC. For example, if you defined " -"a :class:`PrintableType` ABC, it's legal to do::" +"For classes that you write, deriving from the ABC is probably clearer. The :" +"meth:`register` method is useful when you've written a new ABC that can " +"describe an existing type or class, or if you want to declare that some " +"third-party class implements an ABC. For example, if you defined a :class:" +"`PrintableType` ABC, it's legal to do::" msgstr "" -#: ../../whatsnew/2.6.rst:1214 msgid "" "# Register Python's types\n" "PrintableType.register(int)\n" @@ -1760,27 +1505,23 @@ msgid "" "PrintableType.register(str)" msgstr "" -#: ../../whatsnew/2.6.rst:1219 msgid "" "Classes should obey the semantics specified by an ABC, but Python can't " "check this; it's up to the class author to understand the ABC's requirements " "and to implement the code accordingly." msgstr "" -#: ../../whatsnew/2.6.rst:1223 msgid "" "To check whether an object supports a particular interface, you can now " "write::" msgstr "" -#: ../../whatsnew/2.6.rst:1226 msgid "" "def func(d):\n" " if not isinstance(d, collections.MutableMapping):\n" " raise ValueError(\"Mapping object expected, not %r\" % d)" msgstr "" -#: ../../whatsnew/2.6.rst:1230 msgid "" "Don't feel that you must now begin writing lots of checks as in the above " "example. Python has a strong tradition of duck-typing, where explicit type-" @@ -1790,13 +1531,11 @@ msgid "" "necessary." msgstr "" -#: ../../whatsnew/2.6.rst:1237 msgid "" "You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a " "class definition::" msgstr "" -#: ../../whatsnew/2.6.rst:1240 msgid "" "from abc import ABCMeta, abstractmethod\n" "\n" @@ -1816,27 +1555,23 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:1258 msgid "" "In the :class:`Drawable` ABC above, the :meth:`draw_doubled` method renders " "the object at twice its size and can be implemented in terms of other " "methods described in :class:`Drawable`. Classes implementing this ABC " -"therefore don't need to provide their own implementation " -"of :meth:`draw_doubled`, though they can do so. An implementation " -"of :meth:`draw` is necessary, though; the ABC can't provide a useful generic " -"implementation." +"therefore don't need to provide their own implementation of :meth:" +"`draw_doubled`, though they can do so. An implementation of :meth:`draw` is " +"necessary, though; the ABC can't provide a useful generic implementation." msgstr "" -#: ../../whatsnew/2.6.rst:1266 msgid "" -"You can apply the ``@abstractmethod`` decorator to methods such " -"as :meth:`draw` that must be implemented; Python will then raise an " -"exception for classes that don't define the method. Note that the exception " -"is only raised when you actually try to create an instance of a subclass " -"lacking the method::" +"You can apply the ``@abstractmethod`` decorator to methods such as :meth:" +"`draw` that must be implemented; Python will then raise an exception for " +"classes that don't define the method. Note that the exception is only raised " +"when you actually try to create an instance of a subclass lacking the " +"method::" msgstr "" -#: ../../whatsnew/2.6.rst:1272 msgid "" ">>> class Circle(Drawable):\n" "... pass\n" @@ -1849,13 +1584,11 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.6.rst:1281 msgid "" "Abstract data attributes can be declared using the ``@abstractproperty`` " "decorator::" msgstr "" -#: ../../whatsnew/2.6.rst:1284 msgid "" "from abc import abstractproperty\n" "...\n" @@ -1865,38 +1598,31 @@ msgid "" " return self._x" msgstr "" -#: ../../whatsnew/2.6.rst:1291 msgid "Subclasses must then define a :meth:`readonly` property." msgstr "" -#: ../../whatsnew/2.6.rst:1295 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr "" -#: ../../whatsnew/2.6.rst:1296 msgid "" "PEP written by Guido van Rossum and Talin. Implemented by Guido van Rossum. " "Backported to 2.6 by Benjamin Aranguren, with Alex Martelli." msgstr "" -#: ../../whatsnew/2.6.rst:1305 msgid "PEP 3127: Integer Literal Support and Syntax" msgstr "" -#: ../../whatsnew/2.6.rst:1307 msgid "" "Python 3.0 changes the syntax for octal (base-8) integer literals, prefixing " "them with \"0o\" or \"0O\" instead of a leading zero, and adds support for " "binary (base-2) integer literals, signalled by a \"0b\" or \"0B\" prefix." msgstr "" -#: ../../whatsnew/2.6.rst:1312 msgid "" "Python 2.6 doesn't drop support for a leading 0 signalling an octal number, " "but it does add support for \"0o\" and \"0b\"::" msgstr "" -#: ../../whatsnew/2.6.rst:1315 msgid "" ">>> 0o21, 2*8 + 1\n" "(17, 17)\n" @@ -1904,14 +1630,12 @@ msgid "" "47" msgstr "" -#: ../../whatsnew/2.6.rst:1320 msgid "" "The :func:`oct` builtin still returns numbers prefixed with a leading zero, " "and a new :func:`bin` builtin returns the binary representation for a " "number::" msgstr "" -#: ../../whatsnew/2.6.rst:1324 msgid "" ">>> oct(42)\n" "'052'\n" @@ -1921,7 +1645,6 @@ msgid "" "'0b10101101'" msgstr "" -#: ../../whatsnew/2.6.rst:1331 msgid "" "The :func:`int` and :func:`long` builtins will now accept the \"0o\" and " "\"0b\" prefixes when base-8 or base-2 are requested, or when the *base* " @@ -1929,7 +1652,6 @@ msgid "" "the string)::" msgstr "" -#: ../../whatsnew/2.6.rst:1336 msgid "" ">>> int ('0o52', 0)\n" "42\n" @@ -1941,25 +1663,20 @@ msgid "" "13" msgstr "" -#: ../../whatsnew/2.6.rst:1348 msgid ":pep:`3127` - Integer Literal Support and Syntax" msgstr "" -#: ../../whatsnew/2.6.rst:1349 msgid "PEP written by Patrick Maupin; backported to 2.6 by Eric Smith." msgstr "" -#: ../../whatsnew/2.6.rst:1357 msgid "PEP 3129: Class Decorators" msgstr "" -#: ../../whatsnew/2.6.rst:1359 msgid "" "Decorators have been extended from functions to classes. It's now legal to " "write::" msgstr "" -#: ../../whatsnew/2.6.rst:1362 msgid "" "@foo\n" "@bar\n" @@ -1967,11 +1684,9 @@ msgid "" " pass" msgstr "" -#: ../../whatsnew/2.6.rst:1367 msgid "This is equivalent to::" msgstr "" -#: ../../whatsnew/2.6.rst:1369 msgid "" "class A:\n" " pass\n" @@ -1979,33 +1694,27 @@ msgid "" "A = foo(bar(A))" msgstr "" -#: ../../whatsnew/2.6.rst:1376 msgid ":pep:`3129` - Class Decorators" msgstr "" -#: ../../whatsnew/2.6.rst:1377 msgid "PEP written by Collin Winter." msgstr "" -#: ../../whatsnew/2.6.rst:1384 msgid "PEP 3141: A Type Hierarchy for Numbers" msgstr "" -#: ../../whatsnew/2.6.rst:1386 msgid "" "Python 3.0 adds several abstract base classes for numeric types inspired by " -"Scheme's numeric tower. These classes were backported to 2.6 as " -"the :mod:`numbers` module." +"Scheme's numeric tower. These classes were backported to 2.6 as the :mod:" +"`numbers` module." msgstr "" -#: ../../whatsnew/2.6.rst:1390 msgid "" "The most general ABC is :class:`Number`. It defines no operations at all, " "and only exists to allow checking if an object is a number by doing " "``isinstance(obj, Number)``." msgstr "" -#: ../../whatsnew/2.6.rst:1394 msgid "" ":class:`Complex` is a subclass of :class:`Number`. Complex numbers can " "undergo the basic operations of addition, subtraction, multiplication, " @@ -2014,23 +1723,20 @@ msgid "" "implementation of :class:`Complex`." msgstr "" -#: ../../whatsnew/2.6.rst:1400 msgid "" ":class:`Real` further derives from :class:`Complex`, and adds operations " "that only work on real numbers: :func:`floor`, :func:`trunc`, rounding, " "taking the remainder mod N, floor division, and comparisons." msgstr "" -#: ../../whatsnew/2.6.rst:1405 msgid "" ":class:`Rational` numbers derive from :class:`Real`, have :attr:`numerator` " "and :attr:`denominator` properties, and can be converted to floats. Python " -"2.6 adds a simple rational-number class, :class:`Fraction`, in " -"the :mod:`fractions` module. (It's called :class:`Fraction` instead " -"of :class:`Rational` to avoid a name clash with :class:`numbers.Rational`.)" +"2.6 adds a simple rational-number class, :class:`Fraction`, in the :mod:" +"`fractions` module. (It's called :class:`Fraction` instead of :class:" +"`Rational` to avoid a name clash with :class:`numbers.Rational`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1412 msgid "" ":class:`Integral` numbers derive from :class:`Rational`, and can be shifted " "left and right with ``<<`` and ``>>``, combined using bitwise operations " @@ -2038,41 +1744,34 @@ msgid "" "boundaries." msgstr "" -#: ../../whatsnew/2.6.rst:1417 msgid "" -"In Python 3.0, the PEP slightly redefines the existing " -"builtins :func:`round`, :func:`math.floor`, :func:`math.ceil`, and adds a " -"new one, :func:`math.trunc`, that's been backported to Python " -"2.6. :func:`math.trunc` rounds toward zero, returning the " -"closest :class:`Integral` that's between the function's argument and zero." +"In Python 3.0, the PEP slightly redefines the existing builtins :func:" +"`round`, :func:`math.floor`, :func:`math.ceil`, and adds a new one, :func:" +"`math.trunc`, that's been backported to Python 2.6. :func:`math.trunc` " +"rounds toward zero, returning the closest :class:`Integral` that's between " +"the function's argument and zero." msgstr "" -#: ../../whatsnew/2.6.rst:1425 msgid ":pep:`3141` - A Type Hierarchy for Numbers" msgstr "" -#: ../../whatsnew/2.6.rst:1426 msgid "PEP written by Jeffrey Yasskin." msgstr "" -#: ../../whatsnew/2.6.rst:1428 msgid "" "`Scheme's numerical tower `__, from the Guile manual." msgstr "" -#: ../../whatsnew/2.6.rst:1430 msgid "" "`Scheme's number datatypes `__ from the R5RS " "Scheme specification." msgstr "" -#: ../../whatsnew/2.6.rst:1434 msgid "The :mod:`fractions` Module" msgstr "" -#: ../../whatsnew/2.6.rst:1436 msgid "" "To fill out the hierarchy of numeric types, the :mod:`fractions` module " "provides a rational-number class. Rational numbers store their values as a " @@ -2080,13 +1779,11 @@ msgid "" "numbers such as ``2/3`` that floating-point numbers can only approximate." msgstr "" -#: ../../whatsnew/2.6.rst:1442 msgid "" "The :class:`Fraction` constructor takes two :class:`Integral` values that " "will be the numerator and denominator of the resulting fraction. ::" msgstr "" -#: ../../whatsnew/2.6.rst:1445 msgid "" ">>> from fractions import Fraction\n" ">>> a = Fraction(2, 3)\n" @@ -2099,14 +1796,12 @@ msgid "" "Fraction(5, 3)" msgstr "" -#: ../../whatsnew/2.6.rst:1455 msgid "" "For converting floating-point numbers to rationals, the float type now has " "an :meth:`as_integer_ratio` method that returns the numerator and " "denominator for a fraction that evaluates to the same floating-point value::" msgstr "" -#: ../../whatsnew/2.6.rst:1460 msgid "" ">>> (2.5) .as_integer_ratio()\n" "(5, 2)\n" @@ -2116,29 +1811,24 @@ msgid "" "(6004799503160661L, 18014398509481984L)" msgstr "" -#: ../../whatsnew/2.6.rst:1467 msgid "" "Note that values that can only be approximated by floating-point numbers, " "such as 1./3, are not simplified to the number being approximated; the " "fraction attempts to match the floating-point value **exactly**." msgstr "" -#: ../../whatsnew/2.6.rst:1472 msgid "" "The :mod:`fractions` module is based upon an implementation by Sjoerd " "Mullender that was in Python's :file:`Demo/classes/` directory for a long " "time. This implementation was significantly updated by Jeffrey Yasskin." msgstr "" -#: ../../whatsnew/2.6.rst:1479 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/2.6.rst:1481 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/2.6.rst:1483 msgid "" "Directories and zip archives containing a :file:`__main__.py` file can now " "be executed directly by passing their name to the interpreter. The directory " @@ -2147,25 +1837,22 @@ msgid "" "J. Eby and Nick Coghlan; :issue:`1739468`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1490 msgid "" "The :func:`hasattr` function was catching and ignoring all errors, under the " "assumption that they meant a :meth:`__getattr__` method was failing somehow " "and the return value of :func:`hasattr` would therefore be ``False``. This " -"logic shouldn't be applied to :exc:`KeyboardInterrupt` " -"and :exc:`SystemExit`, however; Python 2.6 will no longer discard such " -"exceptions when :func:`hasattr` encounters them. (Fixed by Benjamin " -"Peterson; :issue:`2196`.)" +"logic shouldn't be applied to :exc:`KeyboardInterrupt` and :exc:" +"`SystemExit`, however; Python 2.6 will no longer discard such exceptions " +"when :func:`hasattr` encounters them. (Fixed by Benjamin Peterson; :issue:" +"`2196`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1498 msgid "" "When calling a function using the ``**`` syntax to provide keyword " "arguments, you are no longer required to use a Python dictionary; any " "mapping will now work::" msgstr "" -#: ../../whatsnew/2.6.rst:1502 msgid "" ">>> def f(**kw):\n" "... print sorted(kw)\n" @@ -2177,17 +1864,14 @@ msgid "" "['a', 'b']" msgstr "" -#: ../../whatsnew/2.6.rst:1511 msgid "(Contributed by Alexander Belopolsky; :issue:`1686487`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1513 msgid "" "It's also become legal to provide keyword arguments after a ``*args`` " "argument to a function call. ::" msgstr "" -#: ../../whatsnew/2.6.rst:1516 msgid "" ">>> def f(*args, **kw):\n" "... print args, kw\n" @@ -2196,28 +1880,24 @@ msgid "" "(1, 2, 3, 4, 5, 6) {'keyword': 13}" msgstr "" -#: ../../whatsnew/2.6.rst:1522 msgid "" "Previously this would have been a syntax error. (Contributed by Amaury " "Forgeot d'Arc; :issue:`3473`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1525 msgid "" "A new builtin, ``next(iterator, [default])`` returns the next item from the " "specified iterator. If the *default* argument is supplied, it will be " -"returned if *iterator* has been exhausted; otherwise, " -"the :exc:`StopIteration` exception will be raised. (Backported " -"in :issue:`2719`.)" +"returned if *iterator* has been exhausted; otherwise, the :exc:" +"`StopIteration` exception will be raised. (Backported in :issue:`2719`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1531 msgid "" -"Tuples now have :meth:`index` and :meth:`count` methods matching the list " -"type's :meth:`index` and :meth:`count` methods::" +"Tuples now have :meth:`~tuple.index` and :meth:`~tuple.count` methods " +"matching the list type's :meth:`~list.index` and :meth:`~list.count` " +"methods::" msgstr "" -#: ../../whatsnew/2.6.rst:1534 msgid "" ">>> t = (0,1,2,3,4,0,1,2)\n" ">>> t.index(3)\n" @@ -2226,11 +1906,9 @@ msgid "" "2" msgstr "" -#: ../../whatsnew/2.6.rst:1540 msgid "(Contributed by Raymond Hettinger)" msgstr "" -#: ../../whatsnew/2.6.rst:1542 msgid "" "The built-in types now have improved support for extended slicing syntax, " "accepting various combinations of ``(start, stop, step)``. Previously, the " @@ -2238,15 +1916,13 @@ msgid "" "Thomas Wouters.)" msgstr "" -#: ../../whatsnew/2.6.rst:1549 msgid "" -"Properties now have three attributes, :attr:`getter`, :attr:`setter` " -"and :attr:`deleter`, that are decorators providing useful shortcuts for " -"adding a getter, setter or deleter function to an existing property. You " -"would use them like this::" +"Properties now have three attributes, :attr:`getter`, :attr:`setter` and :" +"attr:`deleter`, that are decorators providing useful shortcuts for adding a " +"getter, setter or deleter function to an existing property. You would use " +"them like this::" msgstr "" -#: ../../whatsnew/2.6.rst:1554 msgid "" "class C(object):\n" " @property\n" @@ -2271,14 +1947,12 @@ msgid "" " self._x = value / 2" msgstr "" -#: ../../whatsnew/2.6.rst:1576 msgid "" -"Several methods of the built-in set types now accept multiple " -"iterables: :meth:`intersection`, :meth:`intersection_update`, :meth:`union`, :meth:`update`, :meth:`difference` " -"and :meth:`difference_update`." +"Several methods of the built-in set types now accept multiple iterables: :" +"meth:`intersection`, :meth:`intersection_update`, :meth:`union`, :meth:" +"`update`, :meth:`difference` and :meth:`difference_update`." msgstr "" -#: ../../whatsnew/2.6.rst:1584 msgid "" ">>> s=set('1234567890')\n" ">>> s.intersection('abc123', 'cdf246') # Intersection between all inputs\n" @@ -2287,28 +1961,23 @@ msgid "" "set(['1', '0', '3', '5'])" msgstr "" -#: ../../whatsnew/2.6.rst:1590 ../../whatsnew/2.6.rst:1875 -#: ../../whatsnew/2.6.rst:1896 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:1592 msgid "" "Many floating-point features were added. The :func:`float` function will " "now turn the string ``nan`` into an IEEE 754 Not A Number value, and " "``+inf`` and ``-inf`` into positive or negative infinity. This works on any " -"platform with IEEE 754 semantics. (Contributed by Christian " -"Heimes; :issue:`1635`.)" +"platform with IEEE 754 semantics. (Contributed by Christian Heimes; :issue:" +"`1635`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1598 msgid "" "Other functions in the :mod:`math` module, :func:`isinf` and :func:`isnan`, " -"return true if their floating-point argument is infinite or Not A Number. " -"(:issue:`1640`)" +"return true if their floating-point argument is infinite or Not A Number. (:" +"issue:`1640`)" msgstr "" -#: ../../whatsnew/2.6.rst:1602 msgid "" "Conversion functions were added to convert floating-point numbers into " "hexadecimal strings (:issue:`3008`). These functions convert floats to and " @@ -2318,7 +1987,6 @@ msgid "" "converts a string back into a number::" msgstr "" -#: ../../whatsnew/2.6.rst:1610 msgid "" ">>> a = 3.75\n" ">>> a.hex()\n" @@ -2330,7 +1998,6 @@ msgid "" "'0x1.5555555555555p-2'" msgstr "" -#: ../../whatsnew/2.6.rst:1619 msgid "" "A numerical nicety: when creating a complex number from two floats on " "systems that support signed zeros (-0 and +0), the :func:`complex` " @@ -2338,7 +2005,6 @@ msgid "" "Dickinson; :issue:`1507`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1624 msgid "" "Classes that inherit a :meth:`__hash__` method from a parent class can set " "``__hash__ = None`` to indicate that the class isn't hashable. This will " @@ -2346,19 +2012,17 @@ msgid "" "indicated as implementing the :class:`Hashable` ABC." msgstr "" -#: ../../whatsnew/2.6.rst:1630 msgid "" "You should do this when you've defined a :meth:`__cmp__` or :meth:`__eq__` " "method that compares objects by their value rather than by identity. All " "objects have a default hash method that uses ``id(obj)`` as the hash value. " "There's no tidy way to remove the :meth:`__hash__` method inherited from a " "parent class, so assigning ``None`` was implemented as an override. At the " -"C level, extensions can set ``tp_hash`` " -"to :c:func:`PyObject_HashNotImplemented`. (Fixed by Nick Coghlan and Amaury " -"Forgeot d'Arc; :issue:`2235`.)" +"C level, extensions can set ``tp_hash`` to :c:func:" +"`PyObject_HashNotImplemented`. (Fixed by Nick Coghlan and Amaury Forgeot " +"d'Arc; :issue:`2235`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1640 msgid "" "The :exc:`GeneratorExit` exception now subclasses :exc:`BaseException` " "instead of :exc:`Exception`. This means that an exception handler that does " @@ -2366,76 +2030,66 @@ msgid "" "(Contributed by Chad Austin; :issue:`1537`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1646 msgid "" "Generator objects now have a :attr:`gi_code` attribute that refers to the " -"original code object backing the generator. (Contributed by Collin " -"Winter; :issue:`1473257`.)" +"original code object backing the generator. (Contributed by Collin Winter; :" +"issue:`1473257`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1650 msgid "" "The :func:`compile` built-in function now accepts keyword arguments as well " "as positional parameters. (Contributed by Thomas Wouters; :issue:`1444529`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1654 msgid "" "The :func:`complex` constructor now accepts strings containing parenthesized " "complex numbers, meaning that ``complex(repr(cplx))`` will now round-trip " -"values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). " -"(:issue:`1491866`)" +"values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). (:" +"issue:`1491866`)" msgstr "" -#: ../../whatsnew/2.6.rst:1659 msgid "" "The string :meth:`translate` method now accepts ``None`` as the translation " "table parameter, which is treated as the identity transformation. This " "makes it easier to carry out operations that only delete characters. " -"(Contributed by Bengt Richter and implemented by Raymond " -"Hettinger; :issue:`1193128`.)" +"(Contributed by Bengt Richter and implemented by Raymond Hettinger; :issue:" +"`1193128`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1665 msgid "" "The built-in :func:`dir` function now checks for a :meth:`__dir__` method on " "the objects it receives. This method must return a list of strings " "containing the names of valid attributes for the object, and lets the object " -"control the value that :func:`dir` produces. Objects that " -"have :meth:`__getattr__` or :meth:`__getattribute__` methods can use this to " -"advertise pseudo-attributes they will honor. (:issue:`1591665`)" +"control the value that :func:`dir` produces. Objects that have :meth:" +"`__getattr__` or :meth:`__getattribute__` methods can use this to advertise " +"pseudo-attributes they will honor. (:issue:`1591665`)" msgstr "" -#: ../../whatsnew/2.6.rst:1673 msgid "" "Instance method objects have new attributes for the object and function " -"comprising the method; the new synonym for :attr:`!im_self` " -"is :attr:`~method.__self__`, and :attr:`!im_func` is also available " -"as :attr:`~method.__func__`. The old names are still supported in Python " -"2.6, but are gone in 3.0." +"comprising the method; the new synonym for :attr:`!im_self` is :attr:" +"`~method.__self__`, and :attr:`!im_func` is also available as :attr:`~method." +"__func__`. The old names are still supported in Python 2.6, but are gone in " +"3.0." msgstr "" -#: ../../whatsnew/2.6.rst:1679 msgid "" -"An obscure change: when you use the :func:`locals` function inside " -"a :keyword:`class` statement, the resulting dictionary no longer returns " -"free variables. (Free variables, in this case, are variables referenced in " -"the :keyword:`!class` statement that aren't attributes of the class.)" +"An obscure change: when you use the :func:`locals` function inside a :" +"keyword:`class` statement, the resulting dictionary no longer returns free " +"variables. (Free variables, in this case, are variables referenced in the :" +"keyword:`!class` statement that aren't attributes of the class.)" msgstr "" -#: ../../whatsnew/2.6.rst:1688 msgid "Optimizations" msgstr "" -#: ../../whatsnew/2.6.rst:1690 msgid "" "The :mod:`warnings` module has been rewritten in C. This makes it possible " "to invoke warnings from the parser, and may also make the interpreter's " -"startup faster. (Contributed by Neal Norwitz and Brett " -"Cannon; :issue:`1631171`.)" +"startup faster. (Contributed by Neal Norwitz and Brett Cannon; :issue:" +"`1631171`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1695 msgid "" "Type objects now have a cache of methods that can reduce the work required " "to find the correct method implementation for a particular class; once " @@ -2446,7 +2100,6 @@ msgid "" "updated for Python 2.6 by Kevin Jacobs; :issue:`1700288`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1705 msgid "" "By default, this change is only applied to types that are included with the " "Python core. Extension modules may not necessarily be compatible with this " @@ -2458,7 +2111,6 @@ msgid "" "interpreter to determine that. See :issue:`1878` for some discussion.)" msgstr "" -#: ../../whatsnew/2.6.rst:1716 msgid "" "Function calls that use keyword arguments are significantly faster by doing " "a quick pointer comparison, usually saving the time of a full string " @@ -2466,46 +2118,39 @@ msgid "" "implementation by Antoine Pitrou; :issue:`1819`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1721 msgid "" "All of the functions in the :mod:`struct` module have been rewritten in C, " "thanks to work at the Need For Speed sprint. (Contributed by Raymond " "Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:1725 msgid "" "Some of the standard built-in types now set a bit in their type objects. " "This speeds up checking whether an object is a subclass of one of these " "types. (Contributed by Neal Norwitz.)" msgstr "" -#: ../../whatsnew/2.6.rst:1729 msgid "" "Unicode strings now use faster code for detecting whitespace and line " -"breaks; this speeds up the :meth:`split` method by about 25% " -"and :meth:`splitlines` by 35%. (Contributed by Antoine Pitrou.) Memory " -"usage is reduced by using pymalloc for the Unicode string's data." +"breaks; this speeds up the :meth:`split` method by about 25% and :meth:" +"`splitlines` by 35%. (Contributed by Antoine Pitrou.) Memory usage is " +"reduced by using pymalloc for the Unicode string's data." msgstr "" -#: ../../whatsnew/2.6.rst:1735 msgid "" "The ``with`` statement now stores the :meth:`~object.__exit__` method on the " "stack, producing a small speedup. (Implemented by Jeffrey Yasskin.)" msgstr "" -#: ../../whatsnew/2.6.rst:1738 msgid "" "To reduce memory usage, the garbage collector will now clear internal free " "lists when garbage-collecting the highest generation of objects. This may " "return memory to the operating system sooner." msgstr "" -#: ../../whatsnew/2.6.rst:1747 msgid "Interpreter Changes" msgstr "" -#: ../../whatsnew/2.6.rst:1749 msgid "" "Two command-line options have been reserved for use by other Python " "implementations. The :option:`!-J` switch has been reserved for use by " @@ -2516,7 +2161,6 @@ msgid "" "the option isn't currently used." msgstr "" -#: ../../whatsnew/2.6.rst:1757 msgid "" "Python can now be prevented from writing :file:`.pyc` or :file:`.pyo` files " "by supplying the :option:`-B` switch to the Python interpreter, or by " @@ -2527,7 +2171,6 @@ msgid "" "and Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.6.rst:1765 msgid "" "The encoding used for standard input, output, and standard error can be " "specified by setting the :envvar:`PYTHONIOENCODING` environment variable " @@ -2539,11 +2182,9 @@ msgid "" "\"replace\". (Contributed by Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.6.rst:1778 msgid "New and Improved Modules" msgstr "" -#: ../../whatsnew/2.6.rst:1780 msgid "" "As in every release, Python's standard library received a number of " "enhancements and bug fixes. Here's a partial list of the most notable " @@ -2552,14 +2193,12 @@ msgid "" "the Subversion logs for all the details." msgstr "" -#: ../../whatsnew/2.6.rst:1786 msgid "" "The :mod:`!asyncore` and :mod:`!asynchat` modules are being actively " "maintained again, and a number of patches and bugfixes were applied. " "(Maintained by Josiah Carlson; see :issue:`1736190` for one patch.)" msgstr "" -#: ../../whatsnew/2.6.rst:1791 msgid "" "The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the " "package is now available as a standalone package. The web page for the " @@ -2569,14 +2208,12 @@ msgid "" "frequent than Python's." msgstr "" -#: ../../whatsnew/2.6.rst:1799 msgid "" "The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol " "available, instead of restricting itself to protocol 1. (Contributed by W. " "Barnes.)" msgstr "" -#: ../../whatsnew/2.6.rst:1803 msgid "" "The :mod:`!cgi` module will now read variables from the query string of an " "HTTP POST request. This makes it possible to use form actions with URLs " @@ -2584,80 +2221,68 @@ msgid "" "(Contributed by Alexandre Fiori and Nubis; :issue:`1817`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1809 msgid "" "The :func:`parse_qs` and :func:`parse_qsl` functions have been relocated " "from the :mod:`!cgi` module to the :mod:`urlparse ` module. " -"The versions still available in the :mod:`!cgi` module will " -"trigger :exc:`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." +"The versions still available in the :mod:`!cgi` module will trigger :exc:" +"`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." msgstr "" -#: ../../whatsnew/2.6.rst:1815 msgid "" "The :mod:`cmath` module underwent extensive revision, contributed by Mark " "Dickinson and Christian Heimes. Five new functions were added:" msgstr "" -#: ../../whatsnew/2.6.rst:1819 msgid "" ":func:`polar` converts a complex number to polar form, returning the modulus " "and argument of the complex number." msgstr "" -#: ../../whatsnew/2.6.rst:1822 msgid "" ":func:`rect` does the opposite, turning a modulus, argument pair back into " "the corresponding complex number." msgstr "" -#: ../../whatsnew/2.6.rst:1825 msgid "" ":func:`phase` returns the argument (also called the angle) of a complex " "number." msgstr "" -#: ../../whatsnew/2.6.rst:1828 msgid "" ":func:`isnan` returns True if either the real or imaginary part of its " "argument is a NaN." msgstr "" -#: ../../whatsnew/2.6.rst:1831 msgid "" ":func:`isinf` returns True if either the real or imaginary part of its " "argument is infinite." msgstr "" -#: ../../whatsnew/2.6.rst:1834 msgid "" "The revisions also improved the numerical soundness of the :mod:`cmath` " "module. For all functions, the real and imaginary parts of the results are " "accurate to within a few units of least precision (ulps) whenever possible. " -"See :issue:`1381` for the details. The branch cuts " -"for :func:`asinh`, :func:`atanh`: and :func:`atan` have also been corrected." +"See :issue:`1381` for the details. The branch cuts for :func:`asinh`, :func:" +"`atanh`: and :func:`atan` have also been corrected." msgstr "" -#: ../../whatsnew/2.6.rst:1841 msgid "" "The tests for the module have been greatly expanded; nearly 2000 new test " "cases exercise the algebraic functions." msgstr "" -#: ../../whatsnew/2.6.rst:1844 msgid "" "On IEEE 754 platforms, the :mod:`cmath` module now handles IEEE 754 special " "values and floating-point exceptions in a manner consistent with Annex 'G' " "of the C99 standard." msgstr "" -#: ../../whatsnew/2.6.rst:1848 msgid "" "A new data type in the :mod:`collections` module: ``namedtuple(typename, " "fieldnames)`` is a factory function that creates subclasses of the standard " "tuple whose fields are accessible by name as well as index. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:1852 msgid "" ">>> var_type = collections.namedtuple('variable',\n" "... 'id name type size')\n" @@ -2678,15 +2303,13 @@ msgid "" "variable(id=1, name='amplitude', type='int', size=4)" msgstr "" -#: ../../whatsnew/2.6.rst:1870 msgid "" "Several places in the standard library that returned tuples have been " -"modified to return :func:`namedtuple` instances. For example, " -"the :meth:`Decimal.as_tuple` method now returns a named tuple " -"with :attr:`sign`, :attr:`digits`, and :attr:`exponent` fields." +"modified to return :func:`namedtuple` instances. For example, the :meth:" +"`Decimal.as_tuple` method now returns a named tuple with :attr:`sign`, :attr:" +"`digits`, and :attr:`exponent` fields." msgstr "" -#: ../../whatsnew/2.6.rst:1877 msgid "" "Another change to the :mod:`collections` module is that the :class:`deque` " "type now supports an optional *maxlen* parameter; if supplied, the deque's " @@ -2694,7 +2317,6 @@ msgid "" "to a full deque causes old items to be discarded." msgstr "" -#: ../../whatsnew/2.6.rst:1885 msgid "" ">>> from collections import deque\n" ">>> dq=deque(maxlen=3)\n" @@ -2708,46 +2330,40 @@ msgid "" "deque([2, 3, 4], maxlen=3)" msgstr "" -#: ../../whatsnew/2.6.rst:1898 msgid "" "The :mod:`Cookie ` module's :class:`~http.cookies.Morsel` " "objects now support an :attr:`~http.cookies.Morsel.httponly` attribute. In " "some browsers. cookies with this attribute set cannot be accessed or " -"manipulated by JavaScript code. (Contributed by Arvin " -"Schnell; :issue:`1638033`.)" +"manipulated by JavaScript code. (Contributed by Arvin Schnell; :issue:" +"`1638033`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1903 msgid "" "A new window method in the :mod:`curses` module, :meth:`chgat`, changes the " "display attributes for a certain number of characters on a single line. " "(Contributed by Fabian Kreutz.)" msgstr "" -#: ../../whatsnew/2.6.rst:1909 msgid "" "# Boldface text starting at y=0,x=21\n" "# and affecting the rest of the line.\n" "stdscr.chgat(0, 21, curses.A_BOLD)" msgstr "" -#: ../../whatsnew/2.6.rst:1913 msgid "" "The :class:`Textbox` class in the :mod:`curses.textpad` module now supports " "editing in insert mode as well as overwrite mode. Insert mode is enabled by " -"supplying a true value for the *insert_mode* parameter when creating " -"the :class:`Textbox` instance." +"supplying a true value for the *insert_mode* parameter when creating the :" +"class:`Textbox` instance." msgstr "" -#: ../../whatsnew/2.6.rst:1918 msgid "" "The :mod:`datetime` module's :meth:`strftime` methods now support a ``%f`` " "format code that expands to the number of microseconds in the object, zero-" -"padded on the left to six places. (Contributed by Skip " -"Montanaro; :issue:`1158`.)" +"padded on the left to six places. (Contributed by Skip Montanaro; :issue:" +"`1158`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1923 msgid "" "The :mod:`decimal` module was updated to version 1.66 of `the General " "Decimal Specification `__. " @@ -2755,7 +2371,6 @@ msgid "" "as :meth:`exp` and :meth:`log10`::" msgstr "" -#: ../../whatsnew/2.6.rst:1928 msgid "" ">>> Decimal(1).exp()\n" "Decimal(\"2.718281828459045235360287471\")\n" @@ -2765,46 +2380,39 @@ msgid "" "Decimal(\"3\")" msgstr "" -#: ../../whatsnew/2.6.rst:1935 msgid "" "The :meth:`as_tuple` method of :class:`Decimal` objects now returns a named " "tuple with :attr:`sign`, :attr:`digits`, and :attr:`exponent` fields." msgstr "" -#: ../../whatsnew/2.6.rst:1938 msgid "" "(Implemented by Facundo Batista and Mark Dickinson. Named tuple support " "added by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:1941 msgid "" "The :mod:`difflib` module's :class:`SequenceMatcher` class now returns named " "tuples representing matches, with :attr:`a`, :attr:`b`, and :attr:`size` " "attributes. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:1946 msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " -"was added to the :class:`ftplib.FTP` class constructor as well as " -"the :meth:`connect` method. (Added by Facundo Batista.) Also, " -"the :class:`FTP` class's :meth:`storbinary` and :meth:`storlines` now take " -"an optional *callback* parameter that will be called with each block of data " -"after the data has been sent. (Contributed by Phil " -"Schwartz; :issue:`1221598`.)" +"was added to the :class:`ftplib.FTP` class constructor as well as the :meth:" +"`connect` method. (Added by Facundo Batista.) Also, the :class:`FTP` " +"class's :meth:`storbinary` and :meth:`storlines` now take an optional " +"*callback* parameter that will be called with each block of data after the " +"data has been sent. (Contributed by Phil Schwartz; :issue:`1221598`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1954 msgid "" -"The :func:`reduce` built-in function is also available in " -"the :mod:`functools` module. In Python 3.0, the builtin has been dropped " -"and :func:`reduce` is only available from :mod:`functools`; currently there " -"are no plans to drop the builtin in the 2.x series. (Patched by Christian " -"Heimes; :issue:`1739906`.)" +"The :func:`reduce` built-in function is also available in the :mod:" +"`functools` module. In Python 3.0, the builtin has been dropped and :func:" +"`reduce` is only available from :mod:`functools`; currently there are no " +"plans to drop the builtin in the 2.x series. (Patched by Christian Heimes; :" +"issue:`1739906`.)" msgstr "" -#: ../../whatsnew/2.6.rst:1960 msgid "" "When possible, the :mod:`getpass` module will now use :file:`/dev/tty` to " "print a prompt message and read the password, falling back to standard error " @@ -2813,14 +2421,12 @@ msgid "" "P. Smith.)" msgstr "" -#: ../../whatsnew/2.6.rst:1966 msgid "" "The :func:`glob.glob` function can now return Unicode filenames if a Unicode " -"path was used and Unicode filenames are matched within the directory. " -"(:issue:`1001604`)" +"path was used and Unicode filenames are matched within the directory. (:" +"issue:`1001604`)" msgstr "" -#: ../../whatsnew/2.6.rst:1970 msgid "" "A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``, " "takes any number of iterables returning data in sorted order, and returns a " @@ -2828,37 +2434,31 @@ msgid "" "order. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:1975 msgid "" ">>> list(heapq.merge([1, 3, 5, 9], [2, 8, 16]))\n" "[1, 2, 3, 5, 8, 9, 16]" msgstr "" -#: ../../whatsnew/2.6.rst:1978 msgid "" "Another new function, ``heappushpop(heap, item)``, pushes *item* onto " "*heap*, then pops off and returns the smallest item. This is more efficient " "than making a call to :func:`heappush` and then :func:`heappop`." msgstr "" -#: ../../whatsnew/2.6.rst:1983 msgid "" ":mod:`heapq` is now implemented to only use less-than comparison, instead of " -"the less-than-or-equal comparison it previously used. This " -"makes :mod:`heapq`'s usage of a type match the :meth:`list.sort` method. " -"(Contributed by Raymond Hettinger.)" +"the less-than-or-equal comparison it previously used. This makes :mod:" +"`heapq`'s usage of a type match the :meth:`list.sort` method. (Contributed " +"by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:1989 msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " -"was added to the :class:`httplib.HTTPConnection " -"` and :class:`HTTPSConnection " -"` class constructors. (Added by Facundo " -"Batista.)" +"was added to the :class:`httplib.HTTPConnection ` and :class:`HTTPSConnection ` " +"class constructors. (Added by Facundo Batista.)" msgstr "" -#: ../../whatsnew/2.6.rst:1994 msgid "" "Most of the :mod:`inspect` module's functions, such as :func:`getmoduleinfo` " "and :func:`getargs`, now return named tuples. In addition to behaving like " @@ -2866,38 +2466,31 @@ msgid "" "attributes. (Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:2000 msgid "" -"Some new functions in the module " -"include :func:`isgenerator`, :func:`isgeneratorfunction`, " -"and :func:`isabstract`." +"Some new functions in the module include :func:`isgenerator`, :func:" +"`isgeneratorfunction`, and :func:`isabstract`." msgstr "" -#: ../../whatsnew/2.6.rst:2004 msgid "The :mod:`itertools` module gained several new functions." msgstr "" -#: ../../whatsnew/2.6.rst:2006 msgid "" "``izip_longest(iter1, iter2, ...[, fillvalue])`` makes tuples from each of " "the elements; if some of the iterables are shorter than others, the missing " "values are set to *fillvalue*. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:2010 msgid "" ">>> tuple(itertools.izip_longest([1,2,3], [1,2,3,4,5]))\n" "((1, 1), (2, 2), (3, 3), (None, 4), (None, 5))" msgstr "" -#: ../../whatsnew/2.6.rst:2013 msgid "" "``product(iter1, iter2, ..., [repeat=N])`` returns the Cartesian product of " "the supplied iterables, a set of tuples containing every possible " "combination of the elements returned from each iterable. ::" msgstr "" -#: ../../whatsnew/2.6.rst:2017 msgid "" ">>> list(itertools.product([1,2,3], [4,5,6]))\n" "[(1, 4), (1, 5), (1, 6),\n" @@ -2905,25 +2498,21 @@ msgid "" " (3, 4), (3, 5), (3, 6)]" msgstr "" -#: ../../whatsnew/2.6.rst:2022 msgid "" "The optional *repeat* keyword argument is used for taking the product of an " "iterable or a set of iterables with themselves, repeated *N* times. With a " "single iterable argument, *N*-tuples are returned::" msgstr "" -#: ../../whatsnew/2.6.rst:2027 msgid "" ">>> list(itertools.product([1,2], repeat=3))\n" "[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2),\n" " (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]" msgstr "" -#: ../../whatsnew/2.6.rst:2031 msgid "With two iterables, *2N*-tuples are returned. ::" msgstr "" -#: ../../whatsnew/2.6.rst:2033 msgid "" ">>> list(itertools.product([1,2], [3,4], repeat=2))\n" "[(1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4),\n" @@ -2932,13 +2521,11 @@ msgid "" " (2, 4, 1, 3), (2, 4, 1, 4), (2, 4, 2, 3), (2, 4, 2, 4)]" msgstr "" -#: ../../whatsnew/2.6.rst:2039 msgid "" "``combinations(iterable, r)`` returns sub-sequences of length *r* from the " "elements of *iterable*. ::" msgstr "" -#: ../../whatsnew/2.6.rst:2042 msgid "" ">>> list(itertools.combinations('123', 2))\n" "[('1', '2'), ('1', '3'), ('2', '3')]\n" @@ -2949,14 +2536,12 @@ msgid "" " ('1', '3', '4'), ('2', '3', '4')]" msgstr "" -#: ../../whatsnew/2.6.rst:2050 msgid "" "``permutations(iter[, r])`` returns all the permutations of length *r* of " "the iterable's elements. If *r* is not specified, it will default to the " "number of elements produced by the iterable. ::" msgstr "" -#: ../../whatsnew/2.6.rst:2054 msgid "" ">>> list(itertools.permutations([1,2,3,4], 2))\n" "[(1, 2), (1, 3), (1, 4),\n" @@ -2965,99 +2550,81 @@ msgid "" " (4, 1), (4, 2), (4, 3)]" msgstr "" -#: ../../whatsnew/2.6.rst:2060 msgid "" "``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` " -"that gained a new constructor in Python 2.6. " -"``itertools.chain.from_iterable(iterable)`` takes a single iterable that " -"should return other iterables. :func:`chain` will then return all the " -"elements of the first iterable, then all the elements of the second, and so " -"on. ::" +"that gained a new constructor in Python 2.6. ``itertools.chain." +"from_iterable(iterable)`` takes a single iterable that should return other " +"iterables. :func:`chain` will then return all the elements of the first " +"iterable, then all the elements of the second, and so on. ::" msgstr "" -#: ../../whatsnew/2.6.rst:2067 msgid "" ">>> list(itertools.chain.from_iterable([[1,2,3], [4,5,6]]))\n" "[1, 2, 3, 4, 5, 6]" msgstr "" -#: ../../whatsnew/2.6.rst:2070 msgid "(All contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:2072 msgid "" -"The :mod:`logging` module's :class:`FileHandler` class and its " -"subclasses :class:`WatchedFileHandler`, :class:`RotatingFileHandler`, " -"and :class:`TimedRotatingFileHandler` now have an optional *delay* parameter " -"to their constructors. If *delay* is true, opening of the log file is " -"deferred until the first :meth:`emit` call is made. (Contributed by Vinay " -"Sajip.)" +"The :mod:`logging` module's :class:`FileHandler` class and its subclasses :" +"class:`WatchedFileHandler`, :class:`RotatingFileHandler`, and :class:" +"`TimedRotatingFileHandler` now have an optional *delay* parameter to their " +"constructors. If *delay* is true, opening of the log file is deferred until " +"the first :meth:`emit` call is made. (Contributed by Vinay Sajip.)" msgstr "" -#: ../../whatsnew/2.6.rst:2079 msgid "" ":class:`TimedRotatingFileHandler` also has a *utc* constructor parameter. " "If the argument is true, UTC time will be used in determining when midnight " "occurs and in generating filenames; otherwise local time will be used." msgstr "" -#: ../../whatsnew/2.6.rst:2084 msgid "Several new functions were added to the :mod:`math` module:" msgstr "" -#: ../../whatsnew/2.6.rst:2086 msgid "" ":func:`~math.isinf` and :func:`~math.isnan` determine whether a given float " "is a (positive or negative) infinity or a NaN (Not a Number), respectively." msgstr "" -#: ../../whatsnew/2.6.rst:2089 msgid "" ":func:`~math.copysign` copies the sign bit of an IEEE 754 number, returning " "the absolute value of *x* combined with the sign bit of *y*. For example, " "``math.copysign(1, -0.0)`` returns -1.0. (Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:2094 msgid "" ":func:`~math.factorial` computes the factorial of a number. (Contributed by " "Raymond Hettinger; :issue:`2138`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2097 msgid "" ":func:`~math.fsum` adds up the stream of numbers from an iterable, and is " "careful to avoid loss of precision through using partial sums. (Contributed " "by Jean Brouwers, Raymond Hettinger, and Mark Dickinson; :issue:`2819`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2102 msgid "" ":func:`~math.acosh`, :func:`~math.asinh` and :func:`~math.atanh` compute the " "inverse hyperbolic functions." msgstr "" -#: ../../whatsnew/2.6.rst:2105 msgid ":func:`~math.log1p` returns the natural logarithm of *1+x* (base *e*)." msgstr "" -#: ../../whatsnew/2.6.rst:2108 msgid "" -":func:`trunc` rounds a number toward zero, returning the " -"closest :class:`Integral` that's between the function's argument and zero. " -"Added as part of the backport of `PEP 3141's type hierarchy for numbers " -"<#pep-3141>`__." +":func:`trunc` rounds a number toward zero, returning the closest :class:" +"`Integral` that's between the function's argument and zero. Added as part of " +"the backport of `PEP 3141's type hierarchy for numbers <#pep-3141>`__." msgstr "" -#: ../../whatsnew/2.6.rst:2113 msgid "" "The :mod:`math` module has been improved to give more consistent behaviour " "across platforms, especially with respect to handling of floating-point " "exceptions and IEEE 754 special values." msgstr "" -#: ../../whatsnew/2.6.rst:2117 msgid "" "Whenever possible, the module follows the recommendations of the C99 " "standard about 754's special values. For example, ``sqrt(-1.)`` should now " @@ -3065,15 +2632,13 @@ msgid "" "``sqrt(float('NaN'))`` should return a NaN on all IEEE 754 platforms. Where " "Annex 'F' of the C99 standard recommends signaling 'divide-by-zero' or " "'invalid', Python will raise :exc:`ValueError`. Where Annex 'F' of the C99 " -"standard recommends signaling 'overflow', Python will " -"raise :exc:`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" +"standard recommends signaling 'overflow', Python will raise :exc:" +"`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2127 msgid "(Contributed by Christian Heimes and Mark Dickinson.)" msgstr "" -#: ../../whatsnew/2.6.rst:2129 msgid "" ":class:`~mmap.mmap` objects now have a :meth:`rfind` method that searches " "for a substring beginning at the end of the string and searching backwards. " @@ -3081,14 +2646,12 @@ msgid "" "which to stop searching. (Contributed by John Lenton.)" msgstr "" -#: ../../whatsnew/2.6.rst:2135 msgid "" "The :mod:`operator` module gained a :func:`methodcaller` function that takes " "a name and an optional set of arguments, returning a callable that will call " "the named function on any arguments passed to it. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:2140 msgid "" ">>> # Equivalent to lambda s: s.replace('old', 'new')\n" ">>> replacer = operator.methodcaller('replace', 'old', 'new')\n" @@ -3096,17 +2659,14 @@ msgid "" "'new wine in new bottles'" msgstr "" -#: ../../whatsnew/2.6.rst:2145 msgid "(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)" msgstr "" -#: ../../whatsnew/2.6.rst:2147 msgid "" "The :func:`attrgetter` function now accepts dotted names and performs the " "corresponding attribute lookups::" msgstr "" -#: ../../whatsnew/2.6.rst:2150 msgid "" ">>> inst_name = operator.attrgetter(\n" "... '__class__.__name__')\n" @@ -3116,11 +2676,9 @@ msgid "" "'_Helper'" msgstr "" -#: ../../whatsnew/2.6.rst:2157 msgid "(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)" msgstr "" -#: ../../whatsnew/2.6.rst:2159 msgid "" "The :mod:`os` module now wraps several new system calls. ``fchmod(fd, " "mode)`` and ``fchown(fd, uid, gid)`` change the mode and ownership of an " @@ -3128,7 +2686,6 @@ msgid "" "(Contributed by Georg Brandl and Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:2165 msgid "" ":func:`chflags` and :func:`lchflags` are wrappers for the corresponding " "system calls (where they're available), changing the flags set on a file. " @@ -3138,7 +2695,6 @@ msgid "" "the file. (Contributed by M. Levinson.)" msgstr "" -#: ../../whatsnew/2.6.rst:2173 msgid "" "``os.closerange(low, high)`` efficiently closes all file descriptors from " "*low* to *high*, ignoring any errors and not including *high* itself. This " @@ -3146,14 +2702,12 @@ msgid "" "processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2178 msgid "" "The ``os.environ`` object's :meth:`clear` method will now unset the " "environment variables using :func:`os.unsetenv` in addition to clearing the " "object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2182 msgid "" "The :func:`os.walk` function now has a ``followlinks`` parameter. If set to " "True, it will follow symlinks pointing to directories and visit the " @@ -3162,31 +2716,27 @@ msgid "" "if there's a symlink that points to a parent directory. (:issue:`1273829`)" msgstr "" -#: ../../whatsnew/2.6.rst:2189 msgid "" "In the :mod:`os.path` module, the :func:`splitext` function has been changed " "to not split on leading period characters. This produces better results when " "operating on Unix's dot-files. For example, ``os.path.splitext('.ipython')`` " -"now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. " -"(:issue:`1115886`)" +"now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. (:issue:" +"`1115886`)" msgstr "" -#: ../../whatsnew/2.6.rst:2196 msgid "" "A new function, ``os.path.relpath(path, start='.')``, returns a relative " "path from the ``start`` path, if it's supplied, or from the current working " -"directory to the destination ``path``. (Contributed by Richard " -"Barran; :issue:`1339796`.)" +"directory to the destination ``path``. (Contributed by Richard Barran; :" +"issue:`1339796`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2201 msgid "" "On Windows, :func:`os.path.expandvars` will now expand environment variables " "given in the form \"%var%\", and \"~user\" will be expanded into the user's " "home directory path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2206 msgid "" "The Python debugger provided by the :mod:`pdb` module gained a new command: " "\"run\" restarts the Python program being debugged and can optionally take " @@ -3194,14 +2744,12 @@ msgid "" "Bernstein; :issue:`1393667`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2211 msgid "" "The :func:`pdb.post_mortem` function, used to begin debugging a traceback, " "will now use the traceback returned by :func:`sys.exc_info` if no traceback " "is supplied. (Contributed by Facundo Batista; :issue:`1106316`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2216 msgid "" "The :mod:`pickletools` module now has an :func:`optimize` function that " "takes a string containing a pickle and removes some unused opcodes, " @@ -3209,14 +2757,12 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:2221 msgid "" "A :func:`get_data` function was added to the :mod:`pkgutil` module that " "returns the contents of resource files included with an installed Python " "package. For example::" msgstr "" -#: ../../whatsnew/2.6.rst:2225 msgid "" ">>> import pkgutil\n" ">>> print pkgutil.get_data('test', 'exception_hierarchy.txt')\n" @@ -3230,18 +2776,15 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:2236 msgid "(Contributed by Paul Moore; :issue:`2439`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2238 msgid "" -"The :mod:`pyexpat` module's :class:`Parser` objects now allow setting " -"their :attr:`buffer_size` attribute to change the size of the buffer used to " -"hold character data. (Contributed by Achim Gaedke; :issue:`1137`.)" +"The :mod:`pyexpat` module's :class:`Parser` objects now allow setting their :" +"attr:`buffer_size` attribute to change the size of the buffer used to hold " +"character data. (Contributed by Achim Gaedke; :issue:`1137`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2243 msgid "" "The :mod:`Queue` module now provides queue variants that retrieve entries in " "different orders. The :class:`PriorityQueue` class stores queued items in a " @@ -3250,7 +2793,6 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/2.6.rst:2250 msgid "" "The :mod:`random` module's :class:`Random` objects can now be pickled on a " "32-bit system and unpickled on a 64-bit system, and vice versa. " @@ -3259,7 +2801,6 @@ msgid "" "(Contributed by Shawn Ligocki; :issue:`1727780`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2257 msgid "" "The new ``triangular(low, high, mode)`` function returns random numbers " "following a triangular distribution. The returned values are between *low* " @@ -3268,14 +2809,12 @@ msgid "" "der Laan and Raymond Hettinger; :issue:`1681432`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2264 msgid "" "Long regular expression searches carried out by the :mod:`re` module will " "check for signals being delivered, so time-consuming searches can now be " "interrupted. (Contributed by Josh Hoyt and Ralf Schmitt; :issue:`846388`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2269 msgid "" "The regular expression module is implemented by compiling bytecodes for a " "tiny regex-specific virtual machine. Untrusted code could create malicious " @@ -3284,23 +2823,19 @@ msgid "" "for Google App Engine; :issue:`3487`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2276 msgid "" "The :mod:`rlcompleter` module's :meth:`Completer.complete` method will now " "ignore exceptions triggered while evaluating a name. (Fixed by Lorenz " "Quack; :issue:`2250`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2280 msgid "" -"The :mod:`sched` module's :class:`scheduler` instances now have a read-" -"only :attr:`queue` attribute that returns the contents of the scheduler's " -"queue, represented as a list of named tuples with the fields ``(time, " -"priority, action, argument)``. (Contributed by Raymond " -"Hettinger; :issue:`1861`.)" +"The :mod:`sched` module's :class:`scheduler` instances now have a read-only :" +"attr:`queue` attribute that returns the contents of the scheduler's queue, " +"represented as a list of named tuples with the fields ``(time, priority, " +"action, argument)``. (Contributed by Raymond Hettinger; :issue:`1861`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2286 msgid "" "The :mod:`select` module now has wrapper functions for the Linux :c:func:`!" "epoll` and BSD :c:func:`!kqueue` system calls. :meth:`modify` method was " @@ -3310,7 +2845,6 @@ msgid "" "Heimes; :issue:`1657`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2294 msgid "" "The :func:`shutil.copytree` function now has an optional *ignore* argument " "that takes a callable object. This callable will receive each directory " @@ -3318,7 +2852,6 @@ msgid "" "that will be ignored, not copied." msgstr "" -#: ../../whatsnew/2.6.rst:2299 msgid "" "The :mod:`shutil` module also provides an :func:`ignore_patterns` function " "for use with this new parameter. :func:`ignore_patterns` takes an arbitrary " @@ -3328,17 +2861,14 @@ msgid "" "Emacs backup files, which have names ending with '~'::" msgstr "" -#: ../../whatsnew/2.6.rst:2307 msgid "" "shutil.copytree('Doc/library', '/tmp/library',\n" " ignore=shutil.ignore_patterns('*~', '.svn'))" msgstr "" -#: ../../whatsnew/2.6.rst:2310 msgid "(Contributed by Tarek Ziadé; :issue:`2663`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2312 msgid "" "Integrating signal handling with GUI handling event loops like those used by " "Tkinter or GTk+ has long been a problem; most software ends up polling, " @@ -3350,28 +2880,24 @@ msgid "" "descriptor." msgstr "" -#: ../../whatsnew/2.6.rst:2322 msgid "" "Event loops will use this by opening a pipe to create two descriptors, one " -"for reading and one for writing. The writable descriptor will be passed " -"to :func:`set_wakeup_fd`, and the readable descriptor will be added to the " -"list of descriptors monitored by the event loop via :c:func:`!select` " -"or :c:func:`!poll`. On receiving a signal, a byte will be written and the " -"main event loop will be woken up, avoiding the need to poll." +"for reading and one for writing. The writable descriptor will be passed to :" +"func:`set_wakeup_fd`, and the readable descriptor will be added to the list " +"of descriptors monitored by the event loop via :c:func:`!select` or :c:func:" +"`!poll`. On receiving a signal, a byte will be written and the main event " +"loop will be woken up, avoiding the need to poll." msgstr "" -#: ../../whatsnew/2.6.rst:2330 msgid "(Contributed by Adam Olsen; :issue:`1583`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2332 msgid "" "The :func:`siginterrupt` function is now available from Python code, and " "allows changing whether signals can interrupt system calls or not. " "(Contributed by Ralf Schmitt.)" msgstr "" -#: ../../whatsnew/2.6.rst:2336 msgid "" "The :func:`setitimer` and :func:`getitimer` functions have also been added " "(where they're available). :func:`setitimer` allows setting interval timers " @@ -3380,7 +2906,6 @@ msgid "" "process+system time. (Contributed by Guilherme Polo; :issue:`2240`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2343 msgid "" "The :mod:`smtplib` module now supports SMTP over SSL thanks to the addition " "of the :class:`SMTP_SSL` class. This class supports an interface identical " @@ -3390,22 +2915,19 @@ msgid "" "seconds. (Contributed by Facundo Batista.)" msgstr "" -#: ../../whatsnew/2.6.rst:2351 msgid "" "An implementation of the LMTP protocol (:rfc:`2033`) was also added to the " "module. LMTP is used in place of SMTP when transferring e-mail between " -"agents that don't manage a mail queue. (LMTP implemented by Leif " -"Hedstrom; :issue:`957003`.)" +"agents that don't manage a mail queue. (LMTP implemented by Leif Hedstrom; :" +"issue:`957003`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2356 msgid "" ":meth:`SMTP.starttls` now complies with :rfc:`3207` and forgets any " "knowledge obtained from the server not obtained from the TLS negotiation " "itself. (Patch contributed by Bill Fenner; :issue:`829951`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2361 msgid "" "The :mod:`socket` module now supports TIPC (https://tipc.sourceforge.net/), " "a high-performance non-IP-based protocol designed for use in clustered " @@ -3413,7 +2935,6 @@ msgid "" "Bertogli; :issue:`1646`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2366 msgid "" "A new function, :func:`create_connection`, takes an address and connects to " "it using an optional timeout value, returning the connected socket object. " @@ -3423,52 +2944,45 @@ msgid "" "make your code work with IPv6." msgstr "" -#: ../../whatsnew/2.6.rst:2374 msgid "" "The base classes in the :mod:`SocketServer ` module now " "support calling a :meth:`~socketserver.BaseServer.handle_timeout` method " -"after a span of inactivity specified by the " -"server's :attr:`~socketserver.BaseServer.timeout` attribute. (Contributed " -"by Michael Pomraning.) The :meth:`~socketserver.BaseServer.serve_forever` " -"method now takes an optional poll interval measured in seconds, controlling " -"how often the server will check for a shutdown request. (Contributed by " -"Pedro Werneck and Jeffrey Yasskin; :issue:`742598`, :issue:`1193577`.)" +"after a span of inactivity specified by the server's :attr:`~socketserver." +"BaseServer.timeout` attribute. (Contributed by Michael Pomraning.) The :" +"meth:`~socketserver.BaseServer.serve_forever` method now takes an optional " +"poll interval measured in seconds, controlling how often the server will " +"check for a shutdown request. (Contributed by Pedro Werneck and Jeffrey " +"Yasskin; :issue:`742598`, :issue:`1193577`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2383 msgid "" "The :mod:`sqlite3` module, maintained by Gerhard Häring, has been updated " "from version 2.3.2 in Python 2.5 to version 2.4.1." msgstr "" -#: ../../whatsnew/2.6.rst:2387 msgid "" "The :mod:`struct` module now supports the C99 :c:expr:`_Bool` type, using " "the format character ``'?'``. (Contributed by David Remahl.)" msgstr "" -#: ../../whatsnew/2.6.rst:2391 msgid "" "The :class:`~subprocess.Popen` objects provided by the :mod:`subprocess` " -"module now " -"have :meth:`~subprocess.Popen.terminate`, :meth:`~subprocess.Popen.kill`, " -"and :meth:`~subprocess.Popen.send_signal` methods. On Windows, :meth:`!" -"send_signal` only supports the :py:const:`~signal.SIGTERM` signal, and all " -"these methods are aliases for the Win32 API function :c:func:`!" +"module now have :meth:`~subprocess.Popen.terminate`, :meth:`~subprocess." +"Popen.kill`, and :meth:`~subprocess.Popen.send_signal` methods. On Windows, :" +"meth:`!send_signal` only supports the :py:const:`~signal.SIGTERM` signal, " +"and all these methods are aliases for the Win32 API function :c:func:`!" "TerminateProcess`. (Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:2398 msgid "" "A new variable in the :mod:`sys` module, :attr:`float_info`, is an object " "containing information derived from the :file:`float.h` file about the " -"platform's floating-point support. Attributes of this object " -"include :attr:`mant_dig` (number of digits in the mantissa), :attr:`epsilon` " -"(smallest difference between 1.0 and the next largest value representable), " -"and several others. (Contributed by Christian Heimes; :issue:`1534`.)" +"platform's floating-point support. Attributes of this object include :attr:" +"`mant_dig` (number of digits in the mantissa), :attr:`epsilon` (smallest " +"difference between 1.0 and the next largest value representable), and " +"several others. (Contributed by Christian Heimes; :issue:`1534`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2406 msgid "" "Another new variable, :attr:`dont_write_bytecode`, controls whether Python " "writes any :file:`.pyc` or :file:`.pyo` files on importing a module. If this " @@ -3480,7 +2994,6 @@ msgid "" "written or not. (Contributed by Neal Norwitz and Georg Brandl.)" msgstr "" -#: ../../whatsnew/2.6.rst:2417 msgid "" "Information about the command-line arguments supplied to the Python " "interpreter is available by reading attributes of a named tuple available as " @@ -3489,23 +3002,20 @@ msgid "" "These attributes are all read-only. (Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:2425 msgid "" "A new function, :func:`getsizeof`, takes a Python object and returns the " "amount of memory used by the object, measured in bytes. Built-in objects " -"return correct results; third-party extensions may not, but can define " -"a :meth:`__sizeof__` method to return the object's size. (Contributed by " -"Robert Schuppenies; :issue:`2898`.)" +"return correct results; third-party extensions may not, but can define a :" +"meth:`__sizeof__` method to return the object's size. (Contributed by Robert " +"Schuppenies; :issue:`2898`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2432 msgid "" "It's now possible to determine the current profiler and tracer functions by " "calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by " "Georg Brandl; :issue:`1648`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2436 msgid "" "The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in " "addition to the POSIX.1-1988 (ustar) and GNU tar formats that were already " @@ -3513,13 +3023,11 @@ msgid "" "to open a file using a different format::" msgstr "" -#: ../../whatsnew/2.6.rst:2441 msgid "" "tar = tarfile.open(\"output.tar\", \"w\",\n" " format=tarfile.PAX_FORMAT)" msgstr "" -#: ../../whatsnew/2.6.rst:2444 msgid "" "The new ``encoding`` and ``errors`` parameters specify an encoding and an " "error handling scheme for character conversions. ``'strict'``, " @@ -3529,7 +3037,6 @@ msgid "" "PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)" msgstr "" -#: ../../whatsnew/2.6.rst:2452 msgid "" "The :meth:`TarFile.add` method now accepts an ``exclude`` argument that's a " "function that can be used to exclude certain filenames from an archive. The " @@ -3539,18 +3046,15 @@ msgid "" "added directories." msgstr "" -#: ../../whatsnew/2.6.rst:2460 msgid "(All changes contributed by Lars Gustäbel)." msgstr "" -#: ../../whatsnew/2.6.rst:2462 msgid "" -"An optional ``timeout`` parameter was added to the :class:`!" -"telnetlib.Telnet` class constructor, specifying a timeout measured in " -"seconds. (Added by Facundo Batista.)" +"An optional ``timeout`` parameter was added to the :class:`!telnetlib." +"Telnet` class constructor, specifying a timeout measured in seconds. (Added " +"by Facundo Batista.)" msgstr "" -#: ../../whatsnew/2.6.rst:2466 msgid "" "The :class:`tempfile.NamedTemporaryFile` class usually deletes the temporary " "file it created when the file is closed. This behaviour can now be changed " @@ -3558,7 +3062,6 @@ msgid "" "Miller; :issue:`1537850`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2471 msgid "" "A new class, :class:`SpooledTemporaryFile`, behaves like a temporary file " "but stores its data in memory until a maximum size is exceeded. On reaching " @@ -3566,24 +3069,20 @@ msgid "" "(Contributed by Dustin J. Mitchell.)" msgstr "" -#: ../../whatsnew/2.6.rst:2476 msgid "" "The :class:`NamedTemporaryFile` and :class:`SpooledTemporaryFile` classes " -"both work as context managers, so you can write ``with " -"tempfile.NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander " -"Belopolsky; :issue:`2021`.)" +"both work as context managers, so you can write ``with tempfile." +"NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander Belopolsky; :" +"issue:`2021`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2481 msgid "" "The :mod:`test.test_support ` module gained a number of " -"context managers useful for writing " -"tests. :func:`~test.support.os_helper.EnvironmentVarGuard` is a context " -"manager that temporarily changes environment variables and automatically " -"restores them to their old values." +"context managers useful for writing tests. :func:`~test.support.os_helper." +"EnvironmentVarGuard` is a context manager that temporarily changes " +"environment variables and automatically restores them to their old values." msgstr "" -#: ../../whatsnew/2.6.rst:2487 msgid "" "Another context manager, :class:`TransientResource`, can surround calls to " "resources that may or may not be available; it will catch and ignore a " @@ -3591,7 +3090,6 @@ msgid "" "certain failures when connecting to an external web site::" msgstr "" -#: ../../whatsnew/2.6.rst:2493 msgid "" "with test_support.TransientResource(IOError,\n" " errno=errno.ETIMEDOUT):\n" @@ -3599,14 +3097,12 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/2.6.rst:2498 msgid "" "Finally, :func:`check_warnings` resets the :mod:`warning` module's warning " "filters and returns an object that will record all warning messages " "triggered (:issue:`3781`)::" msgstr "" -#: ../../whatsnew/2.6.rst:2502 msgid "" "with test_support.check_warnings() as wrec:\n" " warnings.simplefilter(\"always\")\n" @@ -3615,18 +3111,15 @@ msgid "" " assert len(wrec.warnings) == 1, \"Multiple warnings raised\"" msgstr "" -#: ../../whatsnew/2.6.rst:2508 msgid "(Contributed by Brett Cannon.)" msgstr "" -#: ../../whatsnew/2.6.rst:2510 msgid "" "The :mod:`textwrap` module can now preserve existing whitespace at the " "beginnings and ends of the newly created lines by specifying " "``drop_whitespace=False`` as an argument::" msgstr "" -#: ../../whatsnew/2.6.rst:2515 msgid "" ">>> S = \"\"\"This sentence has a bunch of\n" "... extra whitespace.\"\"\"\n" @@ -3643,96 +3136,81 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.6.rst:2529 msgid "(Contributed by Dwayne Bailey; :issue:`1581073`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2531 msgid "" -"The :mod:`threading` module API is being changed to use properties such " -"as :attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, " -"and some methods have been renamed to use underscores instead of camel-case; " -"for example, the :meth:`activeCount` method is renamed " -"to :meth:`active_count`. Both the 2.6 and 3.0 versions of the module " -"support the same properties and renamed methods, but don't remove the old " -"methods. No date has been set for the deprecation of the old APIs in Python " -"3.x; the old APIs won't be removed in any 2.x version. (Carried out by " -"several people, most notably Benjamin Peterson.)" +"The :mod:`threading` module API is being changed to use properties such as :" +"attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and " +"some methods have been renamed to use underscores instead of camel-case; for " +"example, the :meth:`activeCount` method is renamed to :meth:`active_count`. " +"Both the 2.6 and 3.0 versions of the module support the same properties and " +"renamed methods, but don't remove the old methods. No date has been set for " +"the deprecation of the old APIs in Python 3.x; the old APIs won't be removed " +"in any 2.x version. (Carried out by several people, most notably Benjamin " +"Peterson.)" msgstr "" -#: ../../whatsnew/2.6.rst:2542 msgid "" -"The :mod:`threading` module's :class:`Thread` objects gained " -"an :attr:`ident` property that returns the thread's identifier, a nonzero " -"integer. (Contributed by Gregory P. Smith; :issue:`2871`.)" +"The :mod:`threading` module's :class:`Thread` objects gained an :attr:" +"`ident` property that returns the thread's identifier, a nonzero integer. " +"(Contributed by Gregory P. Smith; :issue:`2871`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2547 msgid "" "The :mod:`timeit` module now accepts callables as well as strings for the " "statement being timed and for the setup code. Two convenience functions were " "added for creating :class:`Timer` instances: ``repeat(stmt, setup, time, " "repeat, number)`` and ``timeit(stmt, setup, time, number)`` create an " -"instance and call the corresponding method. (Contributed by Erik " -"Demaine; :issue:`1533909`.)" +"instance and call the corresponding method. (Contributed by Erik Demaine; :" +"issue:`1533909`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2556 msgid "" "The :mod:`Tkinter` module now accepts lists and tuples for options, " "separating the elements by spaces before passing the resulting value to Tcl/" "Tk. (Contributed by Guilherme Polo; :issue:`2906`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2561 msgid "" "The :mod:`turtle` module for turtle graphics was greatly enhanced by Gregor " "Lingl. New features in the module include:" msgstr "" -#: ../../whatsnew/2.6.rst:2564 msgid "Better animation of turtle movement and rotation." msgstr "" -#: ../../whatsnew/2.6.rst:2565 msgid "" "Control over turtle movement using the new :meth:`delay`, :meth:`tracer`, " "and :meth:`speed` methods." msgstr "" -#: ../../whatsnew/2.6.rst:2567 msgid "" "The ability to set new shapes for the turtle, and to define a new coordinate " "system." msgstr "" -#: ../../whatsnew/2.6.rst:2569 msgid "Turtles now have an :meth:`undo` method that can roll back actions." msgstr "" -#: ../../whatsnew/2.6.rst:2570 msgid "" "Simple support for reacting to input events such as mouse and keyboard " "activity, making it possible to write simple games." msgstr "" -#: ../../whatsnew/2.6.rst:2572 msgid "" "A :file:`turtle.cfg` file can be used to customize the starting appearance " "of the turtle's screen." msgstr "" -#: ../../whatsnew/2.6.rst:2574 msgid "" "The module's docstrings can be replaced by new docstrings that have been " "translated into another language." msgstr "" -#: ../../whatsnew/2.6.rst:2577 msgid "(:issue:`1513695`)" msgstr "" -#: ../../whatsnew/2.6.rst:2579 msgid "" "An optional ``timeout`` parameter was added to the :func:`urllib.urlopen " "` function and the :class:`urllib.ftpwrapper` class " @@ -3741,7 +3219,6 @@ msgid "" "example::" msgstr "" -#: ../../whatsnew/2.6.rst:2585 msgid "" ">>> u = urllib2.urlopen(\"http://slow.example.com\",\n" " timeout=3)\n" @@ -3751,17 +3228,14 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.6.rst:2592 msgid "(Added by Facundo Batista.)" msgstr "" -#: ../../whatsnew/2.6.rst:2594 msgid "" "The Unicode database provided by the :mod:`unicodedata` module has been " "updated to version 5.1.0. (Updated by Martin von Löwis; :issue:`3811`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2598 msgid "" "The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning` " "gained an optional *line* argument that can be used to supply the line of " @@ -3769,26 +3243,23 @@ msgid "" "of the :mod:`warnings` module in C code.)" msgstr "" -#: ../../whatsnew/2.6.rst:2603 msgid "" "A new function, :func:`catch_warnings`, is a context manager intended for " "testing purposes that lets you temporarily modify the warning filters and " "then restore their original values (:issue:`3781`)." msgstr "" -#: ../../whatsnew/2.6.rst:2607 msgid "" -"The XML-RPC :class:`SimpleXMLRPCServer ` " -"and :class:`DocXMLRPCServer ` classes can now be prevented " -"from immediately opening and binding to their socket by passing ``False`` as " -"the *bind_and_activate* constructor parameter. This can be used to modify " -"the instance's :attr:`allow_reuse_address` attribute before calling " -"the :meth:`server_bind` and :meth:`server_activate` methods to open the " -"socket and begin listening for connections. (Contributed by Peter " -"Parente; :issue:`1599845`.)" +"The XML-RPC :class:`SimpleXMLRPCServer ` and :class:" +"`DocXMLRPCServer ` classes can now be prevented from " +"immediately opening and binding to their socket by passing ``False`` as the " +"*bind_and_activate* constructor parameter. This can be used to modify the " +"instance's :attr:`allow_reuse_address` attribute before calling the :meth:" +"`server_bind` and :meth:`server_activate` methods to open the socket and " +"begin listening for connections. (Contributed by Peter Parente; :issue:" +"`1599845`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2616 msgid "" ":class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` " "attribute; if true, the exception and formatted traceback are returned as " @@ -3799,27 +3270,24 @@ msgid "" "Code 2007.)" msgstr "" -#: ../../whatsnew/2.6.rst:2624 msgid "" "The :mod:`xmlrpclib ` module no longer automatically " -"converts :class:`datetime.date` and :class:`datetime.time` to " -"the :class:`xmlrpclib.DateTime ` type; the " -"conversion semantics were not necessarily correct for all applications. " -"Code using :mod:`!xmlrpclib` should convert :class:`date` " -"and :class:`~datetime.time` instances. (:issue:`1330538`) The code can also " -"handle dates before 1900 (contributed by Ralf Schmitt; :issue:`2014`) and 64-" -"bit integers represented by using ```` in XML-RPC responses (contributed " -"by Riku Lindblad; :issue:`2985`)." +"converts :class:`datetime.date` and :class:`datetime.time` to the :class:" +"`xmlrpclib.DateTime ` type; the conversion semantics " +"were not necessarily correct for all applications. Code using :mod:`!" +"xmlrpclib` should convert :class:`date` and :class:`~datetime.time` " +"instances. (:issue:`1330538`) The code can also handle dates before 1900 " +"(contributed by Ralf Schmitt; :issue:`2014`) and 64-bit integers represented " +"by using ```` in XML-RPC responses (contributed by Riku Lindblad; :issue:" +"`2985`)." msgstr "" -#: ../../whatsnew/2.6.rst:2634 msgid "" "The :mod:`zipfile` module's :class:`ZipFile` class now has :meth:`extract` " "and :meth:`extractall` methods that will unpack a single file or all the " "files in the archive to the current directory, or to a specified directory::" msgstr "" -#: ../../whatsnew/2.6.rst:2639 msgid "" "z = zipfile.ZipFile('python-251.zip')\n" "\n" @@ -3831,11 +3299,9 @@ msgid "" "z.extractall()" msgstr "" -#: ../../whatsnew/2.6.rst:2648 msgid "(Contributed by Alan McIntyre; :issue:`467924`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2650 msgid "" "The :meth:`open`, :meth:`read` and :meth:`extract` methods can now take " "either a filename or a :class:`ZipInfo` object. This is useful when an " @@ -3843,17 +3309,14 @@ msgid "" "Horler; :issue:`1775025`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2655 msgid "" "Finally, :mod:`zipfile` now supports using Unicode filenames for archived " "files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2662 msgid "The :mod:`ast` module" msgstr "" -#: ../../whatsnew/2.6.rst:2664 msgid "" "The :mod:`ast` module provides an Abstract Syntax Tree representation of " "Python code, and Armin Ronacher contributed a set of helper functions that " @@ -3861,14 +3324,11 @@ msgid "" "packages, code analyzers, and similar tools that process Python code." msgstr "" -#: ../../whatsnew/2.6.rst:2671 msgid "" -"The :func:`parse` function takes an expression and returns an AST. " -"The :func:`dump` function outputs a representation of a tree, suitable for " -"debugging::" +"The :func:`parse` function takes an expression and returns an AST. The :func:" +"`dump` function outputs a representation of a tree, suitable for debugging::" msgstr "" -#: ../../whatsnew/2.6.rst:2675 msgid "" "import ast\n" "\n" @@ -3881,11 +3341,9 @@ msgid "" "print ast.dump(t)" msgstr "" -#: ../../whatsnew/2.6.rst:2685 msgid "This outputs a deeply nested tree::" msgstr "" -#: ../../whatsnew/2.6.rst:2687 msgid "" "Module(body=[\n" " Assign(targets=[\n" @@ -3919,7 +3377,6 @@ msgid "" " ])" msgstr "" -#: ../../whatsnew/2.6.rst:2718 msgid "" "The :func:`literal_eval` method takes a string or an AST representing a " "literal expression, parses and evaluates it, and returns the resulting " @@ -3929,7 +3386,6 @@ msgid "" "an :func:`eval` call, :func:`literal_eval` will handle it safely::" msgstr "" -#: ../../whatsnew/2.6.rst:2726 msgid "" ">>> literal = '(\"a\", \"b\", {2:4, 3:8, 1:2})'\n" ">>> print ast.literal_eval(literal)\n" @@ -3940,18 +3396,15 @@ msgid "" "ValueError: malformed string" msgstr "" -#: ../../whatsnew/2.6.rst:2734 msgid "" "The module also includes :class:`NodeVisitor` and :class:`NodeTransformer` " "classes for traversing and modifying an AST, and functions for common " "transformations such as changing line numbers." msgstr "" -#: ../../whatsnew/2.6.rst:2742 msgid "The :mod:`future_builtins` module" msgstr "" -#: ../../whatsnew/2.6.rst:2744 msgid "" "Python 3.0 makes many changes to the repertoire of built-in functions, and " "most of the changes can't be introduced in the Python 2.x series because " @@ -3960,36 +3413,30 @@ msgid "" "compatible code." msgstr "" -#: ../../whatsnew/2.6.rst:2751 msgid "The functions in this module currently include:" msgstr "" -#: ../../whatsnew/2.6.rst:2753 msgid "" "``ascii(obj)``: equivalent to :func:`repr`. In Python 3.0, :func:`repr` " "will return a Unicode string, while :func:`ascii` will return a pure ASCII " "bytestring." msgstr "" -#: ../../whatsnew/2.6.rst:2757 msgid "" "``filter(predicate, iterable)``, ``map(func, iterable1, ...)``: the 3.0 " "versions return iterators, unlike the 2.x builtins which return lists." msgstr "" -#: ../../whatsnew/2.6.rst:2761 msgid "" -"``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` " -"or :meth:`__oct__` methods, these versions will call the :meth:`__index__` " +"``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :" +"meth:`__oct__` methods, these versions will call the :meth:`__index__` " "method and convert the result to hexadecimal or octal. :func:`oct` will use " "the new ``0o`` notation for its result." msgstr "" -#: ../../whatsnew/2.6.rst:2770 msgid "The :mod:`json` module: JavaScript Object Notation" msgstr "" -#: ../../whatsnew/2.6.rst:2772 msgid "" "The new :mod:`json` module supports the encoding and decoding of Python " "types in JSON (Javascript Object Notation). JSON is a lightweight " @@ -3997,13 +3444,11 @@ msgid "" "about JSON, see http://www.json.org." msgstr "" -#: ../../whatsnew/2.6.rst:2777 msgid "" ":mod:`json` comes with support for decoding and encoding most built-in " "Python types. The following example encodes and decodes a dictionary::" msgstr "" -#: ../../whatsnew/2.6.rst:2780 msgid "" ">>> import json\n" ">>> data = {\"spam\": \"foo\", \"parrot\": 42}\n" @@ -4014,28 +3459,23 @@ msgid "" "{\"spam\": \"foo\", \"parrot\": 42}" msgstr "" -#: ../../whatsnew/2.6.rst:2788 msgid "" "It's also possible to write your own decoders and encoders to support more " "types. Pretty-printing of the JSON strings is also supported." msgstr "" -#: ../../whatsnew/2.6.rst:2791 msgid ":mod:`json` (originally called simplejson) was written by Bob Ippolito." msgstr "" -#: ../../whatsnew/2.6.rst:2798 msgid "The :mod:`plistlib` module: A Property-List Parser" msgstr "" -#: ../../whatsnew/2.6.rst:2800 msgid "" "The ``.plist`` format is commonly used on Mac OS X to store basic data types " "(numbers, strings, lists, and dictionaries) by serializing them into an XML-" "based format. It resembles the XML-RPC serialization of data types." msgstr "" -#: ../../whatsnew/2.6.rst:2805 msgid "" "Despite being primarily used on Mac OS X, the format has nothing Mac-" "specific about it and the Python implementation works on any platform that " @@ -4043,11 +3483,9 @@ msgid "" "standard library." msgstr "" -#: ../../whatsnew/2.6.rst:2810 msgid "Using the module is simple::" msgstr "" -#: ../../whatsnew/2.6.rst:2812 msgid "" "import sys\n" "import plistlib\n" @@ -4072,44 +3510,37 @@ msgid "" "plistlib.writePlist(data_struct, sys.stdout)" msgstr "" -#: ../../whatsnew/2.6.rst:2837 msgid "ctypes Enhancements" msgstr "" -#: ../../whatsnew/2.6.rst:2839 msgid "" "Thomas Heller continued to maintain and enhance the :mod:`ctypes` module." msgstr "" -#: ../../whatsnew/2.6.rst:2842 msgid "" ":mod:`ctypes` now supports a :class:`c_bool` datatype that represents the " "C99 ``bool`` type. (Contributed by David Remahl; :issue:`1649190`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2846 msgid "" "The :mod:`ctypes` string, buffer and array types have improved support for " "extended slicing syntax, where various combinations of ``(start, stop, " "step)`` are supplied. (Implemented by Thomas Wouters.)" msgstr "" -#: ../../whatsnew/2.6.rst:2853 msgid "" -"All :mod:`ctypes` data types now support :meth:`from_buffer` " -"and :meth:`from_buffer_copy` methods that create a ctypes instance based on " -"a provided buffer object. :meth:`from_buffer_copy` copies the contents of " -"the object, while :meth:`from_buffer` will share the same memory area." +"All :mod:`ctypes` data types now support :meth:`from_buffer` and :meth:" +"`from_buffer_copy` methods that create a ctypes instance based on a provided " +"buffer object. :meth:`from_buffer_copy` copies the contents of the object, " +"while :meth:`from_buffer` will share the same memory area." msgstr "" -#: ../../whatsnew/2.6.rst:2860 msgid "" "A new calling convention tells :mod:`ctypes` to clear the ``errno`` or Win32 " "LastError variables at the outset of each wrapped call. (Implemented by " "Thomas Heller; :issue:`1798`.)" msgstr "" -#: ../../whatsnew/2.6.rst:2864 msgid "" "You can now retrieve the Unix ``errno`` variable after a function call. " "When creating a wrapped function, you can supply ``use_errno=True`` as a " @@ -4118,26 +3549,22 @@ msgid "" "error value." msgstr "" -#: ../../whatsnew/2.6.rst:2870 msgid "" -"The Win32 LastError variable is similarly supported by " -"the :func:`DLL`, :func:`OleDLL`, and :func:`WinDLL` functions. You supply " +"The Win32 LastError variable is similarly supported by the :func:`DLL`, :" +"func:`OleDLL`, and :func:`WinDLL` functions. You supply " "``use_last_error=True`` as a keyword parameter and then call the module-" "level methods :meth:`set_last_error` and :meth:`get_last_error`." msgstr "" -#: ../../whatsnew/2.6.rst:2876 msgid "" "The :func:`byref` function, used to retrieve a pointer to a ctypes instance, " "now has an optional *offset* parameter that is a byte count that will be " "added to the returned pointer." msgstr "" -#: ../../whatsnew/2.6.rst:2883 msgid "Improved SSL Support" msgstr "" -#: ../../whatsnew/2.6.rst:2885 msgid "" "Bill Janssen made extensive improvements to Python 2.6's support for the " "Secure Sockets Layer by adding a new module, :mod:`ssl`, that's built atop " @@ -4148,7 +3575,6 @@ msgid "" "removed and continues to work, though it will be removed in Python 3.0." msgstr "" -#: ../../whatsnew/2.6.rst:2894 msgid "" "To use the new module, you must first create a TCP connection in the usual " "way and then pass it to the :func:`ssl.wrap_socket` function. It's possible " @@ -4156,122 +3582,102 @@ msgid "" "by calling the :meth:`getpeercert` method." msgstr "" -#: ../../whatsnew/2.6.rst:2901 msgid "The documentation for the :mod:`ssl` module." msgstr "" -#: ../../whatsnew/2.6.rst:2906 msgid "Deprecations and Removals" msgstr "" -#: ../../whatsnew/2.6.rst:2908 ../../whatsnew/2.6.rst:3262 msgid "" -"String exceptions have been removed. Attempting to use them raises " -"a :exc:`TypeError`." +"String exceptions have been removed. Attempting to use them raises a :exc:" +"`TypeError`." msgstr "" -#: ../../whatsnew/2.6.rst:2911 msgid "" "Changes to the :class:`Exception` interface as dictated by :pep:`352` " "continue to be made. For 2.6, the :attr:`!message` attribute is being " "deprecated in favor of the :attr:`~BaseException.args` attribute." msgstr "" -#: ../../whatsnew/2.6.rst:2916 msgid "" "(3.0-warning mode) Python 3.0 will feature a reorganized standard library " "that will drop many outdated modules and rename others. Python 2.6 running " "in 3.0-warning mode will warn about these modules when they are imported." msgstr "" -#: ../../whatsnew/2.6.rst:2921 msgid "" -"The list of deprecated modules is: :mod:`!audiodev`, :mod:`!" -"bgenlocations`, :mod:`!buildtools`, :mod:`!bundlebuilder`, :mod:`!" -"Canvas`, :mod:`!compiler`, :mod:`!dircache`, :mod:`!dl`, :mod:`!" -"fpformat`, :mod:`!gensuitemodule`, :mod:`!ihooks`, :mod:`!imageop`, :mod:`!" -"imgfile`, :mod:`!linuxaudiodev`, :mod:`!mhlib`, :mod:`!mimetools`, :mod:`!" -"multifile`, :mod:`!new`, :mod:`!pure`, :mod:`!statvfs`, :mod:`!" -"sunaudiodev`, :mod:`!test.testall`, and :mod:`!toaiff`." +"The list of deprecated modules is: :mod:`!audiodev`, :mod:`!bgenlocations`, :" +"mod:`!buildtools`, :mod:`!bundlebuilder`, :mod:`!Canvas`, :mod:`!compiler`, :" +"mod:`!dircache`, :mod:`!dl`, :mod:`!fpformat`, :mod:`!gensuitemodule`, :mod:" +"`!ihooks`, :mod:`!imageop`, :mod:`!imgfile`, :mod:`!linuxaudiodev`, :mod:`!" +"mhlib`, :mod:`!mimetools`, :mod:`!multifile`, :mod:`!new`, :mod:`!pure`, :" +"mod:`!statvfs`, :mod:`!sunaudiodev`, :mod:`!test.testall`, and :mod:`!" +"toaiff`." msgstr "" -#: ../../whatsnew/2.6.rst:2946 msgid "The :mod:`!gopherlib` module has been removed." msgstr "" -#: ../../whatsnew/2.6.rst:2948 msgid "" "The :mod:`!MimeWriter` module and :mod:`!mimify` module have been " "deprecated; use the :mod:`email` package instead." msgstr "" -#: ../../whatsnew/2.6.rst:2952 msgid "" "The :mod:`!md5` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" -#: ../../whatsnew/2.6.rst:2955 msgid "" "The :mod:`!posixfile` module has been deprecated; :func:`fcntl.lockf` " "provides better locking." msgstr "" -#: ../../whatsnew/2.6.rst:2958 msgid "" "The :mod:`!popen2` module has been deprecated; use the :mod:`subprocess` " "module." msgstr "" -#: ../../whatsnew/2.6.rst:2961 msgid "The :mod:`!rgbimg` module has been removed." msgstr "" -#: ../../whatsnew/2.6.rst:2963 msgid "" "The :mod:`!sets` module has been deprecated; it's better to use the built-" "in :class:`set` and :class:`frozenset` types." msgstr "" -#: ../../whatsnew/2.6.rst:2966 msgid "" "The :mod:`!sha` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" -#: ../../whatsnew/2.6.rst:2974 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/2.6.rst:2976 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/2.6.rst:2978 msgid "" "Python now must be compiled with C89 compilers (after 19 years!). This " -"means that the Python source tree has dropped its own implementations " -"of :c:func:`!memmove` and :c:func:`!strerror`, which are in the C89 standard " +"means that the Python source tree has dropped its own implementations of :c:" +"func:`!memmove` and :c:func:`!strerror`, which are in the C89 standard " "library." msgstr "" -#: ../../whatsnew/2.6.rst:2983 msgid "" "Python 2.6 can be built with Microsoft Visual Studio 2008 (version 9.0), and " "this is the new default compiler. See the :file:`PCbuild` directory for the " "build files. (Implemented by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:2988 msgid "" -"On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. " -"The :program:`configure` script can take a :option:`!--with-universal-" -"archs=[32-bit|64-bit|all]` switch, controlling whether the binaries are " -"built for 32-bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), " -"or both. (Contributed by Ronald Oussoren.)" +"On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :" +"program:`configure` script can take a :option:`!--with-universal-archs=[32-" +"bit|64-bit|all]` switch, controlling whether the binaries are built for 32-" +"bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), or both. " +"(Contributed by Ronald Oussoren.)" msgstr "" -#: ../../whatsnew/2.6.rst:2995 msgid "" "A new function added in Python 2.6.6, :c:func:`!PySys_SetArgvEx`, sets the " "value of ``sys.argv`` and can optionally update ``sys.path`` to include the " @@ -4279,7 +3685,6 @@ msgid "" "value of an *updatepath* parameter." msgstr "" -#: ../../whatsnew/2.6.rst:3000 msgid "" "This function was added to close a security hole for applications that embed " "Python. The old function, :c:func:`!PySys_SetArgv`, would always update " @@ -4290,7 +3695,6 @@ msgid "" "and run." msgstr "" -#: ../../whatsnew/2.6.rst:3008 msgid "" "If you maintain a C/C++ application that embeds Python, check whether you're " "calling :c:func:`!PySys_SetArgv` and carefully consider whether the " @@ -4302,28 +3706,23 @@ msgid "" "discard the first ``sys.path`` component." msgstr "" -#: ../../whatsnew/2.6.rst:3018 msgid "" "Security issue reported as :cve:`2008-5983`; discussed in :gh:`50003`, and " "fixed by Antoine Pitrou." msgstr "" -#: ../../whatsnew/2.6.rst:3021 msgid "" -"The BerkeleyDB module now has a C API object, available as " -"``bsddb.db.api``. This object can be used by other C extensions that wish " -"to use the :mod:`bsddb` module for their own purposes. (Contributed by " -"Duncan Grisby.)" +"The BerkeleyDB module now has a C API object, available as ``bsddb.db." +"api``. This object can be used by other C extensions that wish to use the :" +"mod:`bsddb` module for their own purposes. (Contributed by Duncan Grisby.)" msgstr "" -#: ../../whatsnew/2.6.rst:3026 msgid "" "The new buffer interface, previously described in `the PEP 3118 section " "<#pep-3118-revised-buffer-protocol>`__, adds :c:func:`PyObject_GetBuffer` " "and :c:func:`PyBuffer_Release`, as well as a few other functions." msgstr "" -#: ../../whatsnew/2.6.rst:3031 msgid "" "Python's use of the C stdio library is now thread-safe, or at least as " "thread-safe as the underlying library is. A long-standing potential bug " @@ -4338,17 +3737,15 @@ msgid "" "Gregory P. Smith.)" msgstr "" -#: ../../whatsnew/2.6.rst:3044 msgid "" "Importing modules simultaneously in two different threads no longer " -"deadlocks; it will now raise an :exc:`ImportError`. A new API " -"function, :c:func:`PyImport_ImportModuleNoBlock`, will look for a module in " -"``sys.modules`` first, then try to import it after acquiring an import " -"lock. If the import lock is held by another thread, an :exc:`ImportError` " -"is raised. (Contributed by Christian Heimes.)" +"deadlocks; it will now raise an :exc:`ImportError`. A new API function, :c:" +"func:`PyImport_ImportModuleNoBlock`, will look for a module in ``sys." +"modules`` first, then try to import it after acquiring an import lock. If " +"the import lock is held by another thread, an :exc:`ImportError` is raised. " +"(Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:3052 msgid "" "Several functions return information about the platform's floating-point " "support. :c:func:`PyFloat_GetMax` returns the maximum representable " @@ -4360,7 +3757,6 @@ msgid "" "by Christian Heimes; :issue:`1534`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3063 msgid "" "C functions and methods that use :c:func:`PyComplex_AsCComplex` will now " "accept arguments that have a :meth:`__complex__` method. In particular, the " @@ -4369,40 +3765,34 @@ msgid "" "Dickinson; :issue:`1675423`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3070 msgid "" "Python's C API now includes two functions for case-insensitive string " "comparisons, ``PyOS_stricmp(char*, char*)`` and ``PyOS_strnicmp(char*, " "char*, Py_ssize_t)``. (Contributed by Christian Heimes; :issue:`1635`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3075 msgid "" "Many C extensions define their own little macro for adding integers and " "strings to the module's dictionary in the ``init*`` function. Python 2.6 " -"finally defines standard macros for adding values to a " -"module, :c:macro:`PyModule_AddStringMacro` " -"and :c:macro:`PyModule_AddIntMacro()`. (Contributed by Christian Heimes.)" +"finally defines standard macros for adding values to a module, :c:macro:" +"`PyModule_AddStringMacro` and :c:macro:`PyModule_AddIntMacro()`. " +"(Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:3082 msgid "" "Some macros were renamed in both 3.0 and 2.6 to make it clearer that they " -"are macros, not functions. :c:macro:`!Py_Size()` " -"became :c:macro:`Py_SIZE()`, :c:macro:`!Py_Type()` " -"became :c:macro:`Py_TYPE()`, and :c:macro:`!Py_Refcnt()` " -"became :c:macro:`Py_REFCNT()`. The mixed-case macros are still available in " -"Python 2.6 for backward compatibility. (:issue:`1629`)" +"are macros, not functions. :c:macro:`!Py_Size()` became :c:macro:" +"`Py_SIZE()`, :c:macro:`!Py_Type()` became :c:macro:`Py_TYPE()`, and :c:macro:" +"`!Py_Refcnt()` became :c:macro:`Py_REFCNT()`. The mixed-case macros are " +"still available in Python 2.6 for backward compatibility. (:issue:`1629`)" msgstr "" -#: ../../whatsnew/2.6.rst:3091 msgid "" "Distutils now places C extensions it builds in a different directory when " -"running on a debug version of Python. (Contributed by Collin " -"Winter; :issue:`1530959`.)" +"running on a debug version of Python. (Contributed by Collin Winter; :issue:" +"`1530959`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3095 msgid "" "Several basic data types, such as integers and strings, maintain internal " "free lists of objects that can be re-used. The data structures for these " @@ -4411,7 +3801,6 @@ msgid "" "``Py_MAXFREELIST`` is always defined." msgstr "" -#: ../../whatsnew/2.6.rst:3102 msgid "" "A new Makefile target, \"make patchcheck\", prepares the Python source tree " "for making a patch: it fixes trailing whitespace in all modified ``.py`` " @@ -4420,7 +3809,6 @@ msgid "" "(Contributed by Brett Cannon.)" msgstr "" -#: ../../whatsnew/2.6.rst:3109 msgid "" "Another new target, \"make profile-opt\", compiles a Python binary using " "GCC's profile-guided optimization. It compiles Python with profiling " @@ -4429,17 +3817,14 @@ msgid "" "Smith.)" msgstr "" -#: ../../whatsnew/2.6.rst:3118 msgid "Port-Specific Changes: Windows" msgstr "" -#: ../../whatsnew/2.6.rst:3120 msgid "" "The support for Windows 95, 98, ME and NT4 has been dropped. Python 2.6 " "requires at least Windows 2000 SP4." msgstr "" -#: ../../whatsnew/2.6.rst:3123 msgid "" "The new default compiler on Windows is Visual Studio 2008 (version 9.0). The " "build directories for Visual Studio 2003 (version 7.1) and 2005 (version " @@ -4450,7 +3835,6 @@ msgid "" "Martin von Löwis.)" msgstr "" -#: ../../whatsnew/2.6.rst:3131 msgid "" "The :mod:`msvcrt` module now supports both the normal and wide char variants " "of the console I/O API. The :func:`~msvcrt.getwch` function reads a " @@ -4459,118 +3843,101 @@ msgid "" "writes it to the console. (Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:3138 msgid "" ":func:`os.path.expandvars` will now expand environment variables in the form " "\"%var%\", and \"~user\" will be expanded into the user's home directory " "path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3142 msgid "" -"The :mod:`socket` module's socket objects now have " -"an :meth:`~socket.socket.ioctl` method that provides a limited interface to " -"the :c:func:`WSAIoctl` system interface." +"The :mod:`socket` module's socket objects now have an :meth:`~socket.socket." +"ioctl` method that provides a limited interface to the :c:func:`WSAIoctl` " +"system interface." msgstr "" -#: ../../whatsnew/2.6.rst:3146 msgid "" -"The :mod:`_winreg ` module now has a " -"function, :func:`~winreg.ExpandEnvironmentStrings`, that expands environment " -"variable references such as ``%NAME%`` in an input string. The handle " -"objects provided by this module now support the context protocol, so they " -"can be used in :keyword:`with` statements. (Contributed by Christian Heimes.)" +"The :mod:`_winreg ` module now has a function, :func:`~winreg." +"ExpandEnvironmentStrings`, that expands environment variable references such " +"as ``%NAME%`` in an input string. The handle objects provided by this " +"module now support the context protocol, so they can be used in :keyword:" +"`with` statements. (Contributed by Christian Heimes.)" msgstr "" -#: ../../whatsnew/2.6.rst:3153 msgid "" ":mod:`_winreg ` also has better support for x64 systems, exposing " -"the :func:`~winreg.DisableReflectionKey`, :func:`~winreg.EnableReflectionKey`, " -"and :func:`~winreg.QueryReflectionKey` functions, which enable and disable " -"registry reflection for 32-bit processes running on 64-bit systems. " -"(:issue:`1753245`)" +"the :func:`~winreg.DisableReflectionKey`, :func:`~winreg." +"EnableReflectionKey`, and :func:`~winreg.QueryReflectionKey` functions, " +"which enable and disable registry reflection for 32-bit processes running on " +"64-bit systems. (:issue:`1753245`)" msgstr "" -#: ../../whatsnew/2.6.rst:3159 msgid "" "The :mod:`!msilib` module's :class:`!Record` object gained :meth:`!" "GetInteger` and :meth:`!GetString` methods that return field values as an " "integer or a string. (Contributed by Floris Bruynooghe; :issue:`2125`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3167 msgid "Port-Specific Changes: Mac OS X" msgstr "" -#: ../../whatsnew/2.6.rst:3169 msgid "" "When compiling a framework build of Python, you can now specify the " "framework name to be used by providing the :option:`!--with-framework-name=` " "option to the :program:`configure` script." msgstr "" -#: ../../whatsnew/2.6.rst:3174 msgid "" -"The :mod:`!macfs` module has been removed. This in turn required " -"the :func:`!macostools.touched` function to be removed because it depended " -"on the :mod:`!macfs` module. (:issue:`1490190`)" +"The :mod:`!macfs` module has been removed. This in turn required the :func:" +"`!macostools.touched` function to be removed because it depended on the :mod:" +"`!macfs` module. (:issue:`1490190`)" msgstr "" -#: ../../whatsnew/2.6.rst:3178 msgid "" "Many other Mac OS modules have been deprecated and will be removed in Python " "3.0: :mod:`!_builtinSuites`, :mod:`!aepack`, :mod:`!aetools`, :mod:`!" -"aetypes`, :mod:`!applesingle`, :mod:`!appletrawmain`, :mod:`!" -"appletrunner`, :mod:`!argvemulator`, :mod:`!Audio_mac`, :mod:`!" -"autoGIL`, :mod:`!Carbon`, :mod:`!cfmfile`, :mod:`!CodeWarrior`, :mod:`!" -"ColorPicker`, :mod:`!EasyDialogs`, :mod:`!Explorer`, :mod:`!Finder`, :mod:`!" -"FrameWork`, :mod:`!findertools`, :mod:`!ic`, :mod:`!icglue`, :mod:`!" -"icopen`, :mod:`!macerrors`, :mod:`!MacOS`, :mod:`!macfs`, :mod:`!" -"macostools`, :mod:`!macresource`, :mod:`!MiniAEFrame`, :mod:`!Nav`, :mod:`!" -"Netscape`, :mod:`!OSATerminology`, :mod:`!pimp`, :mod:`!" -"PixMapWrapper`, :mod:`!StdSuites`, :mod:`!SystemEvents`, :mod:`!Terminal`, " -"and :mod:`!terminalcommand`." -msgstr "" - -#: ../../whatsnew/2.6.rst:3221 +"aetypes`, :mod:`!applesingle`, :mod:`!appletrawmain`, :mod:`!appletrunner`, :" +"mod:`!argvemulator`, :mod:`!Audio_mac`, :mod:`!autoGIL`, :mod:`!Carbon`, :" +"mod:`!cfmfile`, :mod:`!CodeWarrior`, :mod:`!ColorPicker`, :mod:`!" +"EasyDialogs`, :mod:`!Explorer`, :mod:`!Finder`, :mod:`!FrameWork`, :mod:`!" +"findertools`, :mod:`!ic`, :mod:`!icglue`, :mod:`!icopen`, :mod:`!" +"macerrors`, :mod:`!MacOS`, :mod:`!macfs`, :mod:`!macostools`, :mod:`!" +"macresource`, :mod:`!MiniAEFrame`, :mod:`!Nav`, :mod:`!Netscape`, :mod:`!" +"OSATerminology`, :mod:`!pimp`, :mod:`!PixMapWrapper`, :mod:`!StdSuites`, :" +"mod:`!SystemEvents`, :mod:`!Terminal`, and :mod:`!terminalcommand`." +msgstr "" + msgid "Port-Specific Changes: IRIX" msgstr "" -#: ../../whatsnew/2.6.rst:3223 msgid "" "A number of old IRIX-specific modules were deprecated and will be removed in " "Python 3.0: :mod:`!al` and :mod:`!AL`, :mod:`!cd`, :mod:`!cddb`, :mod:`!" "cdplayer`, :mod:`!CL` and :mod:`!cl`, :mod:`!DEVICE`, :mod:`!ERRNO`, :mod:`!" -"FILE`, :mod:`!FL` and :mod:`!fl`, :mod:`!flp`, :mod:`!fm`, :mod:`!" -"GET`, :mod:`!GLWS`, :mod:`!GL` and :mod:`!gl`, :mod:`!IN`, :mod:`!" -"IOCTL`, :mod:`!jpeg`, :mod:`!panelparser`, :mod:`!readcd`, :mod:`!SV` " -"and :mod:`!sv`, :mod:`!torgb`, :mod:`!videoreader`, and :mod:`!WAIT`." +"FILE`, :mod:`!FL` and :mod:`!fl`, :mod:`!flp`, :mod:`!fm`, :mod:`!GET`, :mod:" +"`!GLWS`, :mod:`!GL` and :mod:`!gl`, :mod:`!IN`, :mod:`!IOCTL`, :mod:`!" +"jpeg`, :mod:`!panelparser`, :mod:`!readcd`, :mod:`!SV` and :mod:`!sv`, :mod:" +"`!torgb`, :mod:`!videoreader`, and :mod:`!WAIT`." msgstr "" -#: ../../whatsnew/2.6.rst:3253 msgid "Porting to Python 2.6" msgstr "" -#: ../../whatsnew/2.6.rst:3255 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: ../../whatsnew/2.6.rst:3258 msgid "" "Classes that aren't supposed to be hashable should set ``__hash__ = None`` " "in their definitions to indicate the fact." msgstr "" -#: ../../whatsnew/2.6.rst:3265 msgid "" "The :meth:`__init__` method of :class:`collections.deque` now clears any " "existing contents of the deque before adding elements from the iterable. " "This change makes the behavior match ``list.__init__()``." msgstr "" -#: ../../whatsnew/2.6.rst:3270 msgid "" ":meth:`object.__init__` previously accepted arbitrary arguments and keyword " "arguments, ignoring them. In Python 2.6, this is no longer allowed and will " @@ -4579,16 +3946,14 @@ msgid "" "through using :func:`super`). See :issue:`1683368` for discussion." msgstr "" -#: ../../whatsnew/2.6.rst:3277 msgid "" "The :class:`Decimal` constructor now accepts leading and trailing whitespace " "when passed a string. Previously it would raise an :exc:`InvalidOperation` " -"exception. On the other hand, the :meth:`create_decimal` method " -"of :class:`Context` objects now explicitly disallows extra whitespace, " -"raising a :exc:`ConversionSyntax` exception." +"exception. On the other hand, the :meth:`create_decimal` method of :class:" +"`Context` objects now explicitly disallows extra whitespace, raising a :exc:" +"`ConversionSyntax` exception." msgstr "" -#: ../../whatsnew/2.6.rst:3284 msgid "" "Due to an implementation accident, if you passed a file path to the built-" "in :func:`__import__` function, it would actually import the specified " @@ -4596,63 +3961,54 @@ msgid "" "explicitly checks for this case and raises an :exc:`ImportError`." msgstr "" -#: ../../whatsnew/2.6.rst:3290 msgid "" "C API: the :c:func:`PyImport_Import` and :c:func:`PyImport_ImportModule` " "functions now default to absolute imports, not relative imports. This will " "affect C extensions that import other modules." msgstr "" -#: ../../whatsnew/2.6.rst:3294 msgid "" "C API: extension data types that shouldn't be hashable should define their " "``tp_hash`` slot to :c:func:`PyObject_HashNotImplemented`." msgstr "" -#: ../../whatsnew/2.6.rst:3298 msgid "" -"The :mod:`socket` module exception :exc:`socket.error` now inherits " -"from :exc:`IOError`. Previously it wasn't a subclass " -"of :exc:`StandardError` but now it is, through :exc:`IOError`. (Implemented " -"by Gregory P. Smith; :issue:`1706815`.)" +"The :mod:`socket` module exception :exc:`socket.error` now inherits from :" +"exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but " +"now it is, through :exc:`IOError`. (Implemented by Gregory P. Smith; :issue:" +"`1706815`.)" msgstr "" -#: ../../whatsnew/2.6.rst:3303 msgid "" "The :mod:`xmlrpclib ` module no longer automatically " -"converts :class:`datetime.date` and :class:`datetime.time` to " -"the :class:`xmlrpclib.DateTime ` type; the " -"conversion semantics were not necessarily correct for all applications. " -"Code using :mod:`!xmlrpclib` should convert :class:`date` " -"and :class:`~datetime.time` instances. (:issue:`1330538`)" +"converts :class:`datetime.date` and :class:`datetime.time` to the :class:" +"`xmlrpclib.DateTime ` type; the conversion semantics " +"were not necessarily correct for all applications. Code using :mod:`!" +"xmlrpclib` should convert :class:`date` and :class:`~datetime.time` " +"instances. (:issue:`1330538`)" msgstr "" -#: ../../whatsnew/2.6.rst:3310 msgid "" "(3.0-warning mode) The :class:`Exception` class now warns when accessed " "using slicing or index access; having :class:`Exception` behave like a tuple " "is being phased out." msgstr "" -#: ../../whatsnew/2.6.rst:3314 msgid "" "(3.0-warning mode) inequality comparisons between two dictionaries or two " "objects that don't implement comparison methods are reported as warnings. " "``dict1 == dict2`` still works, but ``dict1 < dict2`` is being phased out." msgstr "" -#: ../../whatsnew/2.6.rst:3319 msgid "" "Comparisons between cells, which are an implementation detail of Python's " "scoping rules, also cause warnings because such comparisons are forbidden " "entirely in 3.0." msgstr "" -#: ../../whatsnew/2.6.rst:3323 msgid "For applications that embed Python:" msgstr "" -#: ../../whatsnew/2.6.rst:3325 msgid "" "The :c:func:`!PySys_SetArgvEx` function was added in Python 2.6.6, letting " "applications close a security hole when the existing :c:func:`!" @@ -4661,11 +4017,9 @@ msgid "" "using :c:func:`!PySys_SetArgvEx` with *updatepath* set to false." msgstr "" -#: ../../whatsnew/2.6.rst:3338 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.6.rst:3340 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -4673,10 +4027,8 @@ msgid "" "Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." msgstr "" -#: ../../whatsnew/2.6.rst:1068 msgid "universal newlines" msgstr "" -#: ../../whatsnew/2.6.rst:1068 msgid "What's new" msgstr "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 677908b..78d92a3 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,58 +18,49 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/2.7.rst:3 msgid "What's New in Python 2.7" msgstr "" -#: ../../whatsnew/2.7.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/2.7.rst:5 msgid "A.M. Kuchling (amk at amk.ca)" msgstr "" -#: ../../whatsnew/2.7.rst:52 msgid "" "This article explains the new features in Python 2.7. Python 2.7 was " "released on July 3, 2010." msgstr "" -#: ../../whatsnew/2.7.rst:55 msgid "" "Numeric handling has been improved in many ways, for both floating-point " "numbers and for the :class:`~decimal.Decimal` class. There are some useful " -"additions to the standard library, such as a greatly " -"enhanced :mod:`unittest` module, the :mod:`argparse` module for parsing " -"command-line options, convenient :class:`~collections.OrderedDict` " -"and :class:`~collections.Counter` classes in the :mod:`collections` module, " -"and many other improvements." +"additions to the standard library, such as a greatly enhanced :mod:" +"`unittest` module, the :mod:`argparse` module for parsing command-line " +"options, convenient :class:`~collections.OrderedDict` and :class:" +"`~collections.Counter` classes in the :mod:`collections` module, and many " +"other improvements." msgstr "" -#: ../../whatsnew/2.7.rst:63 msgid "" "Python 2.7 is planned to be the last of the 2.x releases, so we worked on " "making it a good release for the long term. To help with porting to Python " "3, several new features from the Python 3.x series have been included in 2.7." msgstr "" -#: ../../whatsnew/2.7.rst:68 msgid "" "This article doesn't attempt to provide a complete specification of the new " "features, but instead provides a convenient overview. For full details, you " "should refer to the documentation for Python 2.7 at https://docs.python.org. " "If you want to understand the rationale for the design and implementation, " -"refer to the PEP for a particular new feature or the issue on https://" -"bugs.python.org in which a change was discussed. Whenever possible, " -"\"What's New in Python\" links to the bug/patch item for each change." +"refer to the PEP for a particular new feature or the issue on https://bugs." +"python.org in which a change was discussed. Whenever possible, \"What's New " +"in Python\" links to the bug/patch item for each change." msgstr "" -#: ../../whatsnew/2.7.rst:80 msgid "The Future for Python 2.x" msgstr "" -#: ../../whatsnew/2.7.rst:82 msgid "" "Python 2.7 is the last major release in the 2.x series, as the Python " "maintainers have shifted the focus of their new feature development efforts " @@ -79,7 +70,6 @@ msgid "" "releases for the language or standard library." msgstr "" -#: ../../whatsnew/2.7.rst:89 msgid "" "However, while there is a large common subset between Python 2.7 and Python " "3, and many of the changes involved in migrating to that common subset, or " @@ -89,7 +79,6 @@ msgid "" "effectively." msgstr "" -#: ../../whatsnew/2.7.rst:96 msgid "" "This means that Python 2.7 will remain in place for a long time, providing a " "stable and supported base platform for production systems that have not yet " @@ -97,11 +86,9 @@ msgid "" "series is detailed in :pep:`373`." msgstr "" -#: ../../whatsnew/2.7.rst:101 msgid "Some key consequences of the long-term significance of 2.7 are:" msgstr "" -#: ../../whatsnew/2.7.rst:103 msgid "" "As noted above, the 2.7 release has a much longer period of maintenance when " "compared to earlier 2.x versions. Python 2.7 is currently expected to remain " @@ -110,7 +97,6 @@ msgid "" "to the more typical support period of 18--24 months)." msgstr "" -#: ../../whatsnew/2.7.rst:109 msgid "" "As the Python 2.7 standard library ages, making effective use of the Python " "Package Index (either directly or via a redistributor) becomes more " @@ -123,7 +109,6 @@ msgid "" "software from the Python Package Index." msgstr "" -#: ../../whatsnew/2.7.rst:119 msgid "" "While the preferred approach to enhancing Python 2 is now the publication of " "new packages on the Python Package Index, this approach doesn't necessarily " @@ -136,7 +121,6 @@ msgid "" "section below." msgstr "" -#: ../../whatsnew/2.7.rst:129 msgid "" "For projects wishing to migrate from Python 2 to Python 3, or for library " "and framework developers wishing to support users on both Python 2 and " @@ -145,11 +129,9 @@ msgid "" "The recommended starting point is the :ref:`pyporting-howto` HOWTO guide." msgstr "" -#: ../../whatsnew/2.7.rst:137 msgid "Changes to the Handling of Deprecation Warnings" msgstr "" -#: ../../whatsnew/2.7.rst:139 msgid "" "For Python 2.7, a policy decision was made to silence warnings only of " "interest to developers by default. :exc:`DeprecationWarning` and its " @@ -159,24 +141,20 @@ msgid "" "out in :issue:`7319`.)" msgstr "" -#: ../../whatsnew/2.7.rst:146 msgid "" "In previous releases, :exc:`DeprecationWarning` messages were enabled by " "default, providing Python developers with a clear indication of where their " "code may break in a future major version of Python." msgstr "" -#: ../../whatsnew/2.7.rst:151 msgid "" "However, there are increasingly many users of Python-based applications who " -"are not directly involved in the development of those " -"applications. :exc:`DeprecationWarning` messages are irrelevant to such " -"users, making them worry about an application that's actually working " -"correctly and burdening application developers with responding to these " -"concerns." +"are not directly involved in the development of those applications. :exc:" +"`DeprecationWarning` messages are irrelevant to such users, making them " +"worry about an application that's actually working correctly and burdening " +"application developers with responding to these concerns." msgstr "" -#: ../../whatsnew/2.7.rst:158 msgid "" "You can re-enable display of :exc:`DeprecationWarning` messages by running " "Python with the :option:`-Wdefault <-W>` (short form: :option:`-Wd <-W>`) " @@ -185,62 +163,49 @@ msgid "" "re-enable them by calling ``warnings.simplefilter('default')``." msgstr "" -#: ../../whatsnew/2.7.rst:165 msgid "" "The ``unittest`` module also automatically reenables deprecation warnings " "when running tests." msgstr "" -#: ../../whatsnew/2.7.rst:170 msgid "Python 3.1 Features" msgstr "" -#: ../../whatsnew/2.7.rst:172 msgid "" "Much as Python 2.6 incorporated features from Python 3.0, version 2.7 " "incorporates some of the new features in Python 3.1. The 2.x series " "continues to provide tools for migrating to the 3.x series." msgstr "" -#: ../../whatsnew/2.7.rst:177 msgid "A partial list of 3.1 features that were backported to 2.7:" msgstr "" -#: ../../whatsnew/2.7.rst:179 msgid "The syntax for set literals (``{1,2,3}`` is a mutable set)." msgstr "" -#: ../../whatsnew/2.7.rst:180 msgid "Dictionary and set comprehensions (``{i: i*2 for i in range(3)}``)." msgstr "" -#: ../../whatsnew/2.7.rst:181 msgid "Multiple context managers in a single :keyword:`with` statement." msgstr "" -#: ../../whatsnew/2.7.rst:182 msgid "A new version of the :mod:`io` library, rewritten in C for performance." msgstr "" -#: ../../whatsnew/2.7.rst:183 msgid "The ordered-dictionary type described in :ref:`pep-0372`." msgstr "" -#: ../../whatsnew/2.7.rst:184 msgid "The new ``\",\"`` format specifier described in :ref:`pep-0378`." msgstr "" -#: ../../whatsnew/2.7.rst:185 msgid "The :class:`memoryview` object." msgstr "" -#: ../../whatsnew/2.7.rst:186 msgid "" "A small subset of the :mod:`importlib` module, `described below <#importlib-" "section>`__." msgstr "" -#: ../../whatsnew/2.7.rst:188 msgid "" "The :func:`repr` of a float ``x`` is shorter in many cases: it's now based " "on the shortest decimal string that's guaranteed to round back to ``x``. As " @@ -248,59 +213,49 @@ msgid "" "recovers ``x``." msgstr "" -#: ../../whatsnew/2.7.rst:192 msgid "" -"Float-to-string and string-to-float conversions are correctly rounded. " -"The :func:`round` function is also now correctly rounded." +"Float-to-string and string-to-float conversions are correctly rounded. The :" +"func:`round` function is also now correctly rounded." msgstr "" -#: ../../whatsnew/2.7.rst:194 msgid "" "The :c:type:`PyCapsule` type, used to provide a C API for extension modules." msgstr "" -#: ../../whatsnew/2.7.rst:195 msgid "The :c:func:`PyLong_AsLongAndOverflow` C API function." msgstr "" -#: ../../whatsnew/2.7.rst:197 msgid "Other new Python3-mode warnings include:" msgstr "" -#: ../../whatsnew/2.7.rst:199 msgid "" ":func:`!operator.isCallable` and :func:`!operator.sequenceIncludes`, which " "are not supported in 3.x, now trigger warnings." msgstr "" -#: ../../whatsnew/2.7.rst:201 msgid "" "The :option:`!-3` switch now automatically enables the :option:`!-Qwarn` " "switch that causes warnings about using classic division with integers and " "long integers." msgstr "" -#: ../../whatsnew/2.7.rst:214 msgid "PEP 372: Adding an Ordered Dictionary to collections" msgstr "" -#: ../../whatsnew/2.7.rst:216 msgid "" "Regular Python dictionaries iterate over key/value pairs in arbitrary order. " "Over the years, a number of authors have written alternative implementations " "that remember the order that the keys were originally inserted. Based on " -"the experiences from those implementations, 2.7 introduces a " -"new :class:`~collections.OrderedDict` class in the :mod:`collections` module." +"the experiences from those implementations, 2.7 introduces a new :class:" +"`~collections.OrderedDict` class in the :mod:`collections` module." msgstr "" -#: ../../whatsnew/2.7.rst:222 msgid "" "The :class:`~collections.OrderedDict` API provides the same interface as " "regular dictionaries but iterates over keys and values in a guaranteed order " "depending on when a key was first inserted::" msgstr "" -#: ../../whatsnew/2.7.rst:226 msgid "" ">>> from collections import OrderedDict\n" ">>> d = OrderedDict([('first', 1),\n" @@ -310,24 +265,20 @@ msgid "" "[('first', 1), ('second', 2), ('third', 3)]" msgstr "" -#: ../../whatsnew/2.7.rst:233 msgid "" "If a new entry overwrites an existing entry, the original insertion position " "is left unchanged::" msgstr "" -#: ../../whatsnew/2.7.rst:236 msgid "" ">>> d['second'] = 4\n" ">>> d.items()\n" "[('first', 1), ('second', 4), ('third', 3)]" msgstr "" -#: ../../whatsnew/2.7.rst:240 msgid "Deleting an entry and reinserting it will move it to the end::" msgstr "" -#: ../../whatsnew/2.7.rst:242 msgid "" ">>> del d['second']\n" ">>> d['second'] = 5\n" @@ -335,7 +286,6 @@ msgid "" "[('first', 1), ('third', 3), ('second', 5)]" msgstr "" -#: ../../whatsnew/2.7.rst:247 msgid "" "The :meth:`~collections.OrderedDict.popitem` method has an optional *last* " "argument that defaults to ``True``. If *last* is true, the most recently " @@ -343,7 +293,6 @@ msgid "" "selected::" msgstr "" -#: ../../whatsnew/2.7.rst:252 msgid "" ">>> od = OrderedDict([(x,0) for x in range(20)])\n" ">>> od.popitem()\n" @@ -356,13 +305,11 @@ msgid "" "(1, 0)" msgstr "" -#: ../../whatsnew/2.7.rst:262 msgid "" "Comparing two ordered dictionaries checks both the keys and values, and " "requires that the insertion order was the same::" msgstr "" -#: ../../whatsnew/2.7.rst:265 msgid "" ">>> od1 = OrderedDict([('first', 1),\n" "... ('second', 2),\n" @@ -378,13 +325,11 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/2.7.rst:278 msgid "" "Comparing an :class:`~collections.OrderedDict` with a regular dictionary " "ignores the insertion order and just compares the keys and values." msgstr "" -#: ../../whatsnew/2.7.rst:281 msgid "" "How does the :class:`~collections.OrderedDict` work? It maintains a doubly " "linked list of keys, appending new keys to the list as they're inserted. A " @@ -393,27 +338,23 @@ msgid "" "(1)." msgstr "" -#: ../../whatsnew/2.7.rst:287 msgid "" "The standard library now supports use of ordered dictionaries in several " "modules." msgstr "" -#: ../../whatsnew/2.7.rst:290 msgid "" "The :mod:`ConfigParser ` module uses them by default, meaning " "that configuration files can now be read, modified, and then written back in " "their original order." msgstr "" -#: ../../whatsnew/2.7.rst:294 msgid "" -"The :meth:`~collections.somenamedtuple._asdict` method " -"for :func:`collections.namedtuple` now returns an ordered dictionary with " -"the values appearing in the same order as the underlying tuple indices." +"The :meth:`~collections.somenamedtuple._asdict` method for :func:" +"`collections.namedtuple` now returns an ordered dictionary with the values " +"appearing in the same order as the underlying tuple indices." msgstr "" -#: ../../whatsnew/2.7.rst:298 msgid "" "The :mod:`json` module's :class:`~json.JSONDecoder` class constructor was " "extended with an *object_pairs_hook* parameter to allow :class:`OrderedDict` " @@ -421,28 +362,23 @@ msgid "" "tools like `PyYAML `_." msgstr "" -#: ../../whatsnew/2.7.rst:306 msgid ":pep:`372` - Adding an ordered dictionary to collections" msgstr "" -#: ../../whatsnew/2.7.rst:307 msgid "" "PEP written by Armin Ronacher and Raymond Hettinger; implemented by Raymond " "Hettinger." msgstr "" -#: ../../whatsnew/2.7.rst:313 msgid "PEP 378: Format Specifier for Thousands Separator" msgstr "" -#: ../../whatsnew/2.7.rst:315 msgid "" "To make program output more readable, it can be useful to add separators to " "large numbers, rendering them as 18,446,744,073,709,551,616 instead of " "18446744073709551616." msgstr "" -#: ../../whatsnew/2.7.rst:319 msgid "" "The fully general solution for doing this is the :mod:`locale` module, which " "can use different separators (\",\" in North America, \".\" in Europe) and " @@ -451,24 +387,20 @@ msgid "" "producing output for different locales." msgstr "" -#: ../../whatsnew/2.7.rst:325 msgid "" "Therefore, a simple comma-grouping mechanism has been added to the mini-" "language used by the :meth:`str.format` method. When formatting a floating-" "point number, simply include a comma between the width and the precision::" msgstr "" -#: ../../whatsnew/2.7.rst:330 msgid "" ">>> '{:20,.2f}'.format(18446744073709551616.0)\n" "'18,446,744,073,709,551,616.00'" msgstr "" -#: ../../whatsnew/2.7.rst:333 msgid "When formatting an integer, include the comma after the width:" msgstr "" -#: ../../whatsnew/2.7.rst:338 msgid "" "This mechanism is not adaptable at all; commas are always used as the " "separator and the grouping is always into three-digit groups. The comma-" @@ -476,49 +408,41 @@ msgid "" "easier to use." msgstr "" -#: ../../whatsnew/2.7.rst:345 msgid ":pep:`378` - Format Specifier for Thousands Separator" msgstr "" -#: ../../whatsnew/2.7.rst:346 msgid "PEP written by Raymond Hettinger; implemented by Eric Smith." msgstr "" -#: ../../whatsnew/2.7.rst:349 msgid "PEP 389: The argparse Module for Parsing Command Lines" msgstr "" -#: ../../whatsnew/2.7.rst:351 msgid "" "The :mod:`argparse` module for parsing command-line arguments was added as a " "more powerful replacement for the :mod:`optparse` module." msgstr "" -#: ../../whatsnew/2.7.rst:355 msgid "" "This means Python now supports three different modules for parsing command-" -"line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. " -"The :mod:`getopt` module closely resembles the C library's :c:func:`!getopt` " +"line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. The :" +"mod:`getopt` module closely resembles the C library's :c:func:`!getopt` " "function, so it remains useful if you're writing a Python prototype that " "will eventually be rewritten in C. :mod:`optparse` becomes redundant, but " "there are no plans to remove it because there are many scripts still using " -"it, and there's no automated way to update these scripts. (Making " -"the :mod:`argparse` API consistent with :mod:`optparse`'s interface was " -"discussed but rejected as too messy and difficult.)" +"it, and there's no automated way to update these scripts. (Making the :mod:" +"`argparse` API consistent with :mod:`optparse`'s interface was discussed but " +"rejected as too messy and difficult.)" msgstr "" -#: ../../whatsnew/2.7.rst:366 msgid "" "In short, if you're writing a new script and don't need to worry about " "compatibility with earlier versions of Python, use :mod:`argparse` instead " "of :mod:`optparse`." msgstr "" -#: ../../whatsnew/2.7.rst:370 msgid "Here's an example::" msgstr "" -#: ../../whatsnew/2.7.rst:372 msgid "" "import argparse\n" "\n" @@ -542,13 +466,11 @@ msgid "" "print args.__dict__" msgstr "" -#: ../../whatsnew/2.7.rst:393 msgid "" "Unless you override it, :option:`!-h` and :option:`!--help` switches are " "automatically added, and produce neatly formatted output::" msgstr "" -#: ../../whatsnew/2.7.rst:396 msgid "" "-> ./python.exe argparse-example.py --help\n" "usage: argparse-example.py [-h] [-v] [-o FILE] [-C NUM] [inputs " @@ -566,13 +488,11 @@ msgid "" " -C NUM display NUM lines of added context" msgstr "" -#: ../../whatsnew/2.7.rst:410 msgid "" "As with :mod:`optparse`, the command-line switches and arguments are " "returned as an object with attributes named by the *dest* parameters::" msgstr "" -#: ../../whatsnew/2.7.rst:413 msgid "" "-> ./python.exe argparse-example.py -v\n" "{'output': None,\n" @@ -587,49 +507,40 @@ msgid "" " 'inputs': ['file1', 'file2']}" msgstr "" -#: ../../whatsnew/2.7.rst:425 msgid "" ":mod:`argparse` has much fancier validation than :mod:`optparse`; you can " "specify an exact number of arguments as an integer, 0 or more arguments by " "passing ``'*'``, 1 or more by passing ``'+'``, or an optional argument with " "``'?'``. A top-level parser can contain sub-parsers to define subcommands " "that have different sets of switches, as in ``svn commit``, ``svn " -"checkout``, etc. You can specify an argument's type " -"as :class:`~argparse.FileType`, which will automatically open files for you " -"and understands that ``'-'`` means standard input or output." +"checkout``, etc. You can specify an argument's type as :class:`~argparse." +"FileType`, which will automatically open files for you and understands that " +"``'-'`` means standard input or output." msgstr "" -#: ../../whatsnew/2.7.rst:437 msgid ":mod:`argparse` documentation" msgstr "" -#: ../../whatsnew/2.7.rst:438 msgid "The documentation page of the argparse module." msgstr "" -#: ../../whatsnew/2.7.rst:440 msgid ":ref:`upgrading-optparse-code`" msgstr "" -#: ../../whatsnew/2.7.rst:441 msgid "" -"Part of the Python documentation, describing how to convert code that " -"uses :mod:`optparse`." +"Part of the Python documentation, describing how to convert code that uses :" +"mod:`optparse`." msgstr "" -#: ../../whatsnew/2.7.rst:444 msgid ":pep:`389` - argparse - New Command Line Parsing Module" msgstr "" -#: ../../whatsnew/2.7.rst:445 msgid "PEP written and implemented by Steven Bethard." msgstr "" -#: ../../whatsnew/2.7.rst:448 msgid "PEP 391: Dictionary-Based Configuration For Logging" msgstr "" -#: ../../whatsnew/2.7.rst:450 msgid "" "The :mod:`logging` module is very flexible; applications can define a tree " "of logging subsystems, and each logger in this tree can filter out certain " @@ -637,17 +548,15 @@ msgid "" "of handlers." msgstr "" -#: ../../whatsnew/2.7.rst:455 msgid "" "All this flexibility can require a lot of configuration. You can write " "Python statements to create objects and set their properties, but a complex " -"set-up requires verbose but boring code. :mod:`logging` also supports " -"a :func:`~logging.config.fileConfig` function that parses a file, but the " -"file format doesn't support configuring filters, and it's messier to " -"generate programmatically." +"set-up requires verbose but boring code. :mod:`logging` also supports a :" +"func:`~logging.config.fileConfig` function that parses a file, but the file " +"format doesn't support configuring filters, and it's messier to generate " +"programmatically." msgstr "" -#: ../../whatsnew/2.7.rst:462 msgid "" "Python 2.7 adds a :func:`~logging.config.dictConfig` function that uses a " "dictionary to configure logging. There are many ways to produce a " @@ -656,7 +565,6 @@ msgid "" "more information see :ref:`logging-config-api`." msgstr "" -#: ../../whatsnew/2.7.rst:468 msgid "" "The following example configures two loggers, the root logger and a logger " "named \"network\". Messages sent to the root logger will be sent to the " @@ -665,7 +573,6 @@ msgid "" "log reaches 1MB." msgstr "" -#: ../../whatsnew/2.7.rst:476 msgid "" "import logging\n" "import logging.config\n" @@ -710,66 +617,54 @@ msgid "" "netlogger.error('Connection failed')" msgstr "" -#: ../../whatsnew/2.7.rst:518 msgid "" "Three smaller enhancements to the :mod:`logging` module, all implemented by " "Vinay Sajip, are:" msgstr "" -#: ../../whatsnew/2.7.rst:523 msgid "" "The :class:`~logging.handlers.SysLogHandler` class now supports syslogging " "over TCP. The constructor has a *socktype* parameter giving the type of " -"socket to use, either :const:`socket.SOCK_DGRAM` for UDP " -"or :const:`socket.SOCK_STREAM` for TCP. The default protocol remains UDP." +"socket to use, either :const:`socket.SOCK_DGRAM` for UDP or :const:`socket." +"SOCK_STREAM` for TCP. The default protocol remains UDP." msgstr "" -#: ../../whatsnew/2.7.rst:529 msgid "" ":class:`~logging.Logger` instances gained a :meth:`~logging.Logger.getChild` " "method that retrieves a descendant logger using a relative path. For " "example, once you retrieve a logger by doing ``log = getLogger('app')``, " -"calling ``log.getChild('network.listen')`` is equivalent to " -"``getLogger('app.network.listen')``." +"calling ``log.getChild('network.listen')`` is equivalent to ``getLogger('app." +"network.listen')``." msgstr "" -#: ../../whatsnew/2.7.rst:535 msgid "" -"The :class:`~logging.LoggerAdapter` class gained " -"an :meth:`~logging.Logger.isEnabledFor` method that takes a *level* and " -"returns whether the underlying logger would process a message of that level " -"of importance." +"The :class:`~logging.LoggerAdapter` class gained an :meth:`~logging.Logger." +"isEnabledFor` method that takes a *level* and returns whether the underlying " +"logger would process a message of that level of importance." msgstr "" -#: ../../whatsnew/2.7.rst:544 msgid ":pep:`391` - Dictionary-Based Configuration For Logging" msgstr "" -#: ../../whatsnew/2.7.rst:545 msgid "PEP written and implemented by Vinay Sajip." msgstr "" -#: ../../whatsnew/2.7.rst:548 msgid "PEP 3106: Dictionary Views" msgstr "" -#: ../../whatsnew/2.7.rst:550 msgid "" -"The dictionary methods :meth:`~dict.keys`, :meth:`~dict.values`, " -"and :meth:`~dict.items` are different in Python 3.x. They return an object " -"called a :dfn:`view` instead of a fully materialized list." +"The dictionary methods :meth:`~dict.keys`, :meth:`~dict.values`, and :meth:" +"`~dict.items` are different in Python 3.x. They return an object called a :" +"dfn:`view` instead of a fully materialized list." msgstr "" -#: ../../whatsnew/2.7.rst:554 msgid "" -"It's not possible to change the return values " -"of :meth:`~dict.keys`, :meth:`~dict.values`, and :meth:`~dict.items` in " -"Python 2.7 because too much code would break. Instead the 3.x versions were " -"added under the new names :meth:`!viewkeys`, :meth:`!viewvalues`, " -"and :meth:`!viewitems`." +"It's not possible to change the return values of :meth:`~dict.keys`, :meth:" +"`~dict.values`, and :meth:`~dict.items` in Python 2.7 because too much code " +"would break. Instead the 3.x versions were added under the new names :meth:" +"`!viewkeys`, :meth:`!viewvalues`, and :meth:`!viewitems`." msgstr "" -#: ../../whatsnew/2.7.rst:562 msgid "" ">>> d = dict((i*10, chr(65+i)) for i in range(26))\n" ">>> d\n" @@ -778,13 +673,11 @@ msgid "" "dict_keys([0, 130, 10, 140, 20, 150, 30, ..., 250])" msgstr "" -#: ../../whatsnew/2.7.rst:568 msgid "" "Views can be iterated over, but the key and item views also behave like " "sets. The ``&`` operator performs intersection, and ``|`` performs a union::" msgstr "" -#: ../../whatsnew/2.7.rst:572 msgid "" ">>> d1 = dict((i*10, chr(65+i)) for i in range(26))\n" ">>> d2 = dict((i**.5, i) for i in range(1000))\n" @@ -794,13 +687,11 @@ msgid "" "set([0, 1, 130, 3, 4, 5, 6, ..., 120, 250])" msgstr "" -#: ../../whatsnew/2.7.rst:579 msgid "" "The view keeps track of the dictionary and its contents change as the " "dictionary is modified::" msgstr "" -#: ../../whatsnew/2.7.rst:582 msgid "" ">>> vk = d.viewkeys()\n" ">>> vk\n" @@ -810,13 +701,11 @@ msgid "" "dict_keys([0, 130, 260, 10, ..., 250])" msgstr "" -#: ../../whatsnew/2.7.rst:589 msgid "" "However, note that you can't add or remove keys while you're iterating over " "the view::" msgstr "" -#: ../../whatsnew/2.7.rst:592 msgid "" ">>> for k in vk:\n" "... d[k*2] = k\n" @@ -826,34 +715,28 @@ msgid "" "RuntimeError: dictionary changed size during iteration" msgstr "" -#: ../../whatsnew/2.7.rst:599 msgid "" "You can use the view methods in Python 2.x code, and the 2to3 converter will " -"change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, " -"and :meth:`~dict.items` methods." +"change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, and :" +"meth:`~dict.items` methods." msgstr "" -#: ../../whatsnew/2.7.rst:605 msgid ":pep:`3106` - Revamping dict.keys(), .values() and .items()" msgstr "" -#: ../../whatsnew/2.7.rst:606 msgid "" -"PEP written by Guido van Rossum. Backported to 2.7 by Alexandre " -"Vassalotti; :issue:`1967`." +"PEP written by Guido van Rossum. Backported to 2.7 by Alexandre Vassalotti; :" +"issue:`1967`." msgstr "" -#: ../../whatsnew/2.7.rst:611 msgid "PEP 3137: The memoryview Object" msgstr "" -#: ../../whatsnew/2.7.rst:613 msgid "" "The :class:`memoryview` object provides a view of another object's memory " "content that matches the :class:`bytes` type's interface." msgstr "" -#: ../../whatsnew/2.7.rst:616 msgid "" ">>> import string\n" ">>> m = memoryview(string.letters)\n" @@ -868,13 +751,11 @@ msgid "" "" msgstr "" -#: ../../whatsnew/2.7.rst:631 msgid "" "The content of the view can be converted to a string of bytes or a list of " "integers:" msgstr "" -#: ../../whatsnew/2.7.rst:634 msgid "" ">>> m2.tobytes()\n" "'abcdefghijklmnopqrstuvwxyz'\n" @@ -883,13 +764,11 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.7.rst:643 msgid "" ":class:`memoryview` objects allow modifying the underlying object if it's a " "mutable object." msgstr "" -#: ../../whatsnew/2.7.rst:646 msgid "" ">>> m2[0] = 75\n" "Traceback (most recent call last):\n" @@ -905,25 +784,20 @@ msgid "" ">>>" msgstr "" -#: ../../whatsnew/2.7.rst:664 msgid ":pep:`3137` - Immutable Bytes and Mutable Buffer" msgstr "" -#: ../../whatsnew/2.7.rst:665 msgid "" "PEP written by Guido van Rossum. Implemented by Travis Oliphant, Antoine " "Pitrou and others. Backported to 2.7 by Antoine Pitrou; :issue:`2396`." msgstr "" -#: ../../whatsnew/2.7.rst:672 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/2.7.rst:674 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/2.7.rst:676 msgid "" "The syntax for set literals has been backported from Python 3.x. Curly " "brackets are used to surround the contents of the resulting mutable set; set " @@ -932,7 +806,6 @@ msgid "" "an empty set." msgstr "" -#: ../../whatsnew/2.7.rst:683 msgid "" ">>> {1, 2, 3, 4, 5}\n" "set([1, 2, 3, 4, 5])\n" @@ -942,18 +815,15 @@ msgid "" "{}" msgstr "" -#: ../../whatsnew/2.7.rst:693 msgid "Backported by Alexandre Vassalotti; :issue:`2335`." msgstr "" -#: ../../whatsnew/2.7.rst:695 msgid "" "Dictionary and set comprehensions are another feature backported from 3.x, " "generalizing list/generator comprehensions to use the literal syntax for " "sets and dictionaries." msgstr "" -#: ../../whatsnew/2.7.rst:699 msgid "" ">>> {x: x*x for x in range(6)}\n" "{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n" @@ -961,59 +831,49 @@ msgid "" "set(['', 'a', 'aa', 'aaa', 'aaaa', 'aaaaa'])" msgstr "" -#: ../../whatsnew/2.7.rst:707 msgid "Backported by Alexandre Vassalotti; :issue:`2333`." msgstr "" -#: ../../whatsnew/2.7.rst:709 msgid "" "The :keyword:`with` statement can now use multiple context managers in one " "statement. Context managers are processed from left to right and each one " "is treated as beginning a new :keyword:`!with` statement. This means that::" msgstr "" -#: ../../whatsnew/2.7.rst:714 msgid "" "with A() as a, B() as b:\n" " ... suite of statements ..." msgstr "" -#: ../../whatsnew/2.7.rst:717 msgid "is equivalent to::" msgstr "" -#: ../../whatsnew/2.7.rst:719 msgid "" "with A() as a:\n" " with B() as b:\n" " ... suite of statements ..." msgstr "" -#: ../../whatsnew/2.7.rst:723 msgid "" "The :func:`!contextlib.nested` function provides a very similar function, so " "it's no longer necessary and has been deprecated." msgstr "" -#: ../../whatsnew/2.7.rst:726 msgid "" "(Proposed in https://codereview.appspot.com/53094; implemented by Georg " "Brandl.)" msgstr "" -#: ../../whatsnew/2.7.rst:729 msgid "" "Conversions between floating-point numbers and strings are now correctly " "rounded on most platforms. These conversions occur in many different " -"places: :func:`str` on floats and complex numbers; the :class:`float` " -"and :class:`complex` constructors; numeric formatting; serializing and " -"deserializing floats and complex numbers using " -"the :mod:`marshal`, :mod:`pickle` and :mod:`json` modules; parsing of float " -"and imaginary literals in Python code; and :class:`~decimal.Decimal`-to-" -"float conversion." +"places: :func:`str` on floats and complex numbers; the :class:`float` and :" +"class:`complex` constructors; numeric formatting; serializing and " +"deserializing floats and complex numbers using the :mod:`marshal`, :mod:" +"`pickle` and :mod:`json` modules; parsing of float and imaginary literals in " +"Python code; and :class:`~decimal.Decimal`-to-float conversion." msgstr "" -#: ../../whatsnew/2.7.rst:741 msgid "" "Related to this, the :func:`repr` of a floating-point number *x* now returns " "a result based on the shortest decimal string that's guaranteed to round " @@ -1021,7 +881,6 @@ msgid "" "Previously it gave a string based on rounding x to 17 decimal digits." msgstr "" -#: ../../whatsnew/2.7.rst:749 msgid "" "The rounding library responsible for this improvement works on Windows and " "on Unix platforms using the gcc, icc, or suncc compilers. There may be a " @@ -1031,13 +890,11 @@ msgid "" "``short`` if the new code is in use and ``legacy`` if it isn't." msgstr "" -#: ../../whatsnew/2.7.rst:757 msgid "" -"Implemented by Eric Smith and Mark Dickinson, using David " -"Gay's :file:`dtoa.c` library; :issue:`7117`." +"Implemented by Eric Smith and Mark Dickinson, using David Gay's :file:`dtoa." +"c` library; :issue:`7117`." msgstr "" -#: ../../whatsnew/2.7.rst:760 msgid "" "Conversions from long integers and regular integers to floating point now " "round differently, returning the floating-point number closest to the " @@ -1047,7 +904,6 @@ msgid "" "following::" msgstr "" -#: ../../whatsnew/2.7.rst:767 msgid "" ">>> n = 295147905179352891391\n" ">>> float(n)\n" @@ -1056,13 +912,11 @@ msgid "" "65535L" msgstr "" -#: ../../whatsnew/2.7.rst:773 msgid "" "Python 2.7's floating-point result is larger, but much closer to the true " "value::" msgstr "" -#: ../../whatsnew/2.7.rst:776 msgid "" ">>> n = 295147905179352891391\n" ">>> float(n)\n" @@ -1071,31 +925,26 @@ msgid "" "-1L" msgstr "" -#: ../../whatsnew/2.7.rst:782 msgid "(Implemented by Mark Dickinson; :issue:`3166`.)" msgstr "" -#: ../../whatsnew/2.7.rst:784 msgid "" "Integer division is also more accurate in its rounding behaviours. (Also " "implemented by Mark Dickinson; :issue:`1811`.)" msgstr "" -#: ../../whatsnew/2.7.rst:787 msgid "" "Implicit coercion for complex numbers has been removed; the interpreter will " "no longer ever attempt to call a :meth:`!__coerce__` method on complex " "objects. (Removed by Meador Inge and Mark Dickinson; :issue:`5211`.)" msgstr "" -#: ../../whatsnew/2.7.rst:791 msgid "" "The :meth:`str.format` method now supports automatic numbering of the " "replacement fields. This makes using :meth:`str.format` more closely " "resemble using ``%s`` formatting::" msgstr "" -#: ../../whatsnew/2.7.rst:795 msgid "" ">>> '{}:{}:{}'.format(2009, 04, 'Sunday')\n" "'2009:4:Sunday'\n" @@ -1103,7 +952,6 @@ msgid "" "'2009:4:Sunday'" msgstr "" -#: ../../whatsnew/2.7.rst:800 msgid "" "The auto-numbering takes the fields from left to right, so the first ``{...}" "`` specifier will use the first argument to :meth:`str.format`, the next " @@ -1113,7 +961,6 @@ msgid "" "as in the second example above. (Contributed by Eric Smith; :issue:`5237`.)" msgstr "" -#: ../../whatsnew/2.7.rst:807 msgid "" "Complex numbers now correctly support usage with :func:`format`, and default " "to being right-aligned. Specifying a precision or comma-separation applies " @@ -1122,18 +969,16 @@ msgid "" "output. (Contributed by Eric Smith; :issue:`1588` and :issue:`7988`.)" msgstr "" -#: ../../whatsnew/2.7.rst:814 msgid "" "The 'F' format code now always formats its output using uppercase " "characters, so it will now produce 'INF' and 'NAN'. (Contributed by Eric " "Smith; :issue:`3382`.)" msgstr "" -#: ../../whatsnew/2.7.rst:818 msgid "" -"A low-level change: the :meth:`object.__format__` method now triggers " -"a :exc:`PendingDeprecationWarning` if it's passed a format string, because " -"the :meth:`!__format__` method for :class:`object` converts the object to a " +"A low-level change: the :meth:`object.__format__` method now triggers a :exc:" +"`PendingDeprecationWarning` if it's passed a format string, because the :" +"meth:`!__format__` method for :class:`object` converts the object to a " "string representation and formats that. Previously the method silently " "applied the format string to the string representation, but that could hide " "mistakes in Python code. If you're supplying formatting information such as " @@ -1141,13 +986,11 @@ msgid "" "applied in some object-specific way. (Fixed by Eric Smith; :issue:`7994`.)" msgstr "" -#: ../../whatsnew/2.7.rst:828 msgid "" "The :func:`int` and :func:`!long` types gained a ``bit_length`` method that " "returns the number of bits necessary to represent its argument in binary::" msgstr "" -#: ../../whatsnew/2.7.rst:832 msgid "" ">>> n = 37\n" ">>> bin(n)\n" @@ -1161,11 +1004,9 @@ msgid "" "124" msgstr "" -#: ../../whatsnew/2.7.rst:843 msgid "(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)" msgstr "" -#: ../../whatsnew/2.7.rst:845 msgid "" "The :keyword:`import` statement will no longer try an absolute import if a " "relative import (e.g. ``from .os import sep``) fails. This fixes a bug, but " @@ -1173,21 +1014,18 @@ msgid "" "working by accident. (Fixed by Meador Inge; :issue:`7902`.)" msgstr "" -#: ../../whatsnew/2.7.rst:851 msgid "" "It's now possible for a subclass of the built-in :class:`!unicode` type to " -"override the :meth:`!__unicode__` method. (Implemented by Victor " -"Stinner; :issue:`1583863`.)" +"override the :meth:`!__unicode__` method. (Implemented by Victor Stinner; :" +"issue:`1583863`.)" msgstr "" -#: ../../whatsnew/2.7.rst:855 msgid "" "The :class:`bytearray` type's :meth:`~bytearray.translate` method now " -"accepts ``None`` as its first argument. (Fixed by Georg " -"Brandl; :issue:`4759`.)" +"accepts ``None`` as its first argument. (Fixed by Georg Brandl; :issue:" +"`4759`.)" msgstr "" -#: ../../whatsnew/2.7.rst:861 msgid "" "When using :class:`@classmethod ` and :class:`@staticmethod " "` to wrap methods as class or static methods, the wrapper " @@ -1196,40 +1034,35 @@ msgid "" "George Sakkis; :issue:`5982`.)" msgstr "" -#: ../../whatsnew/2.7.rst:869 ../../whatsnew/2.7.rst:2466 msgid "" "When a restricted set of attributes were set using ``__slots__``, deleting " "an unset attribute would not raise :exc:`AttributeError` as you would " "expect. Fixed by Benjamin Peterson; :issue:`7604`.)" msgstr "" -#: ../../whatsnew/2.7.rst:873 msgid "" "Two new encodings are now supported: \"cp720\", used primarily for Arabic " "text; and \"cp858\", a variant of CP 850 that adds the euro symbol. (CP720 " -"contributed by Alexander Belchenko and Amaury Forgeot d'Arc " -"in :issue:`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" +"contributed by Alexander Belchenko and Amaury Forgeot d'Arc in :issue:" +"`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" msgstr "" -#: ../../whatsnew/2.7.rst:879 msgid "" "The :class:`!file` object will now set the :attr:`!filename` attribute on " "the :exc:`IOError` exception when trying to open a directory on POSIX " "platforms (noted by Jan Kaliszewski; :issue:`4764`), and now explicitly " "checks for and forbids writing to read-only file objects instead of trusting " -"the C library to catch and report the error (fixed by Stefan " -"Krah; :issue:`5677`)." +"the C library to catch and report the error (fixed by Stefan Krah; :issue:" +"`5677`)." msgstr "" -#: ../../whatsnew/2.7.rst:886 msgid "" -"The Python tokenizer now translates line endings itself, so " -"the :func:`compile` built-in function now accepts code using any line-ending " +"The Python tokenizer now translates line endings itself, so the :func:" +"`compile` built-in function now accepts code using any line-ending " "convention. Additionally, it no longer requires that the code end in a " "newline." msgstr "" -#: ../../whatsnew/2.7.rst:891 msgid "" "Extra parentheses in function definitions are illegal in Python 3.x, meaning " "that you get a syntax error from ``def f((x)): pass``. In Python3-warning " @@ -1237,25 +1070,21 @@ msgid "" "Lingard; :issue:`7362`.)" msgstr "" -#: ../../whatsnew/2.7.rst:896 msgid "" "It's now possible to create weak references to old-style class objects. New-" -"style classes were always weak-referenceable. (Fixed by Antoine " -"Pitrou; :issue:`8268`.)" +"style classes were always weak-referenceable. (Fixed by Antoine Pitrou; :" +"issue:`8268`.)" msgstr "" -#: ../../whatsnew/2.7.rst:900 msgid "" "When a module object is garbage-collected, the module's dictionary is now " -"only cleared if no one else is holding a reference to the dictionary " -"(:issue:`7140`)." +"only cleared if no one else is holding a reference to the dictionary (:issue:" +"`7140`)." msgstr "" -#: ../../whatsnew/2.7.rst:909 msgid "Interpreter Changes" msgstr "" -#: ../../whatsnew/2.7.rst:911 msgid "" "A new environment variable, :envvar:`PYTHONWARNINGS`, allows controlling " "warnings. It should be set to a string containing warning settings, " @@ -1263,7 +1092,6 @@ msgid "" "(Contributed by Brian Curtin; :issue:`7301`.)" msgstr "" -#: ../../whatsnew/2.7.rst:917 msgid "" "For example, the following setting will print warnings every time they " "occur, but turn warnings from the :mod:`Cookie ` module into " @@ -1271,26 +1099,21 @@ msgid "" "across operating systems and shells.)" msgstr "" -#: ../../whatsnew/2.7.rst:924 msgid "export PYTHONWARNINGS=all,error:::Cookie:0" msgstr "" -#: ../../whatsnew/2.7.rst:930 msgid "Optimizations" msgstr "" -#: ../../whatsnew/2.7.rst:932 msgid "Several performance enhancements have been added:" msgstr "" -#: ../../whatsnew/2.7.rst:934 msgid "" "A new opcode was added to perform the initial setup for :keyword:`with` " -"statements, looking up the :meth:`~object.__enter__` " -"and :meth:`~object.__exit__` methods. (Contributed by Benjamin Peterson.)" +"statements, looking up the :meth:`~object.__enter__` and :meth:`~object." +"__exit__` methods. (Contributed by Benjamin Peterson.)" msgstr "" -#: ../../whatsnew/2.7.rst:938 msgid "" "The garbage collector now performs better for one common usage pattern: when " "many objects are being allocated without deallocating any of them. This " @@ -1303,7 +1126,6 @@ msgid "" "implemented by Antoine Pitrou; :issue:`4074`.)" msgstr "" -#: ../../whatsnew/2.7.rst:949 msgid "" "The garbage collector tries to avoid tracking simple containers which can't " "be part of a cycle. In Python 2.7, this is now true for tuples and dicts " @@ -1314,7 +1136,6 @@ msgid "" "Pitrou; :issue:`4688`.)" msgstr "" -#: ../../whatsnew/2.7.rst:958 msgid "" "Long integers are now stored internally either in base ``2**15`` or in base " "``2**30``, the base being determined at build time. Previously, they were " @@ -1326,7 +1147,6 @@ msgid "" "override this default." msgstr "" -#: ../../whatsnew/2.7.rst:967 msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " @@ -1335,25 +1155,21 @@ msgid "" "of the C type used to store each digit::" msgstr "" -#: ../../whatsnew/2.7.rst:974 msgid "" ">>> import sys\n" ">>> sys.long_info\n" "sys.long_info(bits_per_digit=30, sizeof_digit=4)" msgstr "" -#: ../../whatsnew/2.7.rst:978 msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" msgstr "" -#: ../../whatsnew/2.7.rst:980 msgid "" "Another set of changes made long objects a few bytes smaller: 2 bytes " "smaller on 32-bit systems and 6 bytes on 64-bit. (Contributed by Mark " "Dickinson; :issue:`5260`.)" msgstr "" -#: ../../whatsnew/2.7.rst:984 msgid "" "The division algorithm for long integers has been made faster by tightening " "the inner loop, doing shifts instead of multiplications, and fixing an " @@ -1363,7 +1179,6 @@ msgid "" "faster (initial patch by Gregory Smith; :issue:`1087418`)." msgstr "" -#: ../../whatsnew/2.7.rst:993 msgid "" "The implementation of ``%`` checks for the left-side operand being a Python " "string and special-cases it; this results in a 1--3% performance increase " @@ -1371,21 +1186,18 @@ msgid "" "libraries. (Implemented by Collin Winter; :issue:`5176`.)" msgstr "" -#: ../../whatsnew/2.7.rst:999 msgid "" "List comprehensions with an ``if`` condition are compiled into faster " -"bytecode. (Patch by Antoine Pitrou, back-ported to 2.7 by Jeffrey " -"Yasskin; :issue:`4715`.)" +"bytecode. (Patch by Antoine Pitrou, back-ported to 2.7 by Jeffrey Yasskin; :" +"issue:`4715`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1003 msgid "" "Converting an integer or long integer to a decimal string was made faster by " "special-casing base 10 instead of using a generalized conversion function " "that supports arbitrary bases. (Patch by Gawain Bolton; :issue:`6713`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1008 msgid "" "The :meth:`!split`, :meth:`!replace`, :meth:`!rindex`, :meth:`!rpartition`, " "and :meth:`!rsplit` methods of string-like types (strings, Unicode strings, " @@ -1394,25 +1206,21 @@ msgid "" "factor of 10. (Added by Florent Xicluna; :issue:`7462` and :issue:`7622`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1015 msgid "" "The :mod:`pickle` and :mod:`!cPickle` modules now automatically intern the " "strings used for attribute names, reducing memory usage of the objects " "resulting from unpickling. (Contributed by Jake McGuire; :issue:`5084`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1020 msgid "" "The :mod:`!cPickle` module now special-cases dictionaries, nearly halving " -"the time required to pickle them. (Contributed by Collin " -"Winter; :issue:`5670`.)" +"the time required to pickle them. (Contributed by Collin Winter; :issue:" +"`5670`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1027 msgid "New and Improved Modules" msgstr "" -#: ../../whatsnew/2.7.rst:1029 msgid "" "As in every release, Python's standard library received a number of " "enhancements and bug fixes. Here's a partial list of the most notable " @@ -1421,24 +1229,21 @@ msgid "" "the Subversion logs for all the details." msgstr "" -#: ../../whatsnew/2.7.rst:1035 msgid "" "The :mod:`bdb` module's base debugging class :class:`~bdb.Bdb` gained a " "feature for skipping modules. The constructor now takes an iterable " "containing glob-style patterns such as ``django.*``; the debugger will not " "step into stack frames from a module that matches one of these patterns. " -"(Contributed by Maru Newby after a suggestion by Senthil " -"Kumaran; :issue:`5142`.)" +"(Contributed by Maru Newby after a suggestion by Senthil Kumaran; :issue:" +"`5142`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1043 msgid "" "The :mod:`binascii` module now supports the buffer API, so it can be used " "with :class:`memoryview` instances and other similar buffer objects. " "(Backported from 3.x by Florent Xicluna; :issue:`7703`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1047 msgid "" "Updated module: the :mod:`!bsddb` module has been updated from 4.7.2devel9 " "to version 4.8.4 of `the pybsddb package >> from collections import Counter\n" ">>> c = Counter()\n" @@ -1480,18 +1282,16 @@ msgid "" "0" msgstr "" -#: ../../whatsnew/2.7.rst:1081 msgid "" -"There are three additional :class:`~collections.Counter` " -"methods. :meth:`~collections.Counter.most_common` returns the N most common " -"elements and their counts. :meth:`~collections.Counter.elements` returns an " -"iterator over the contained elements, repeating each element as many times " -"as its count. :meth:`~collections.Counter.subtract` takes an iterable and " -"subtracts one for each element instead of adding; if the argument is a " -"dictionary or another :class:`Counter`, the counts are subtracted. ::" +"There are three additional :class:`~collections.Counter` methods. :meth:" +"`~collections.Counter.most_common` returns the N most common elements and " +"their counts. :meth:`~collections.Counter.elements` returns an iterator " +"over the contained elements, repeating each element as many times as its " +"count. :meth:`~collections.Counter.subtract` takes an iterable and subtracts " +"one for each element instead of adding; if the argument is a dictionary or " +"another :class:`Counter`, the counts are subtracted. ::" msgstr "" -#: ../../whatsnew/2.7.rst:1091 msgid "" ">>> c.most_common(5)\n" "[(' ', 6), ('e', 5), ('s', 3), ('a', 2), ('i', 2)]\n" @@ -1507,28 +1307,24 @@ msgid "" "-1" msgstr "" -#: ../../whatsnew/2.7.rst:1104 msgid "Contributed by Raymond Hettinger; :issue:`1696199`." msgstr "" -#: ../../whatsnew/2.7.rst:1108 msgid "" "New class: :class:`~collections.OrderedDict` is described in the earlier " "section :ref:`pep-0372`." msgstr "" -#: ../../whatsnew/2.7.rst:1111 msgid "" -"New method: The :class:`~collections.deque` data type now has " -"a :meth:`~collections.deque.count` method that returns the number of " -"contained elements equal to the supplied argument *x*, and " -"a :meth:`~collections.deque.reverse` method that reverses the elements of " -"the deque in-place. :class:`~collections.deque` also exposes its maximum " -"length as the read-only :attr:`~collections.deque.maxlen` attribute. (Both " -"features added by Raymond Hettinger.)" +"New method: The :class:`~collections.deque` data type now has a :meth:" +"`~collections.deque.count` method that returns the number of contained " +"elements equal to the supplied argument *x*, and a :meth:`~collections.deque." +"reverse` method that reverses the elements of the deque in-place. :class:" +"`~collections.deque` also exposes its maximum length as the read-only :attr:" +"`~collections.deque.maxlen` attribute. (Both features added by Raymond " +"Hettinger.)" msgstr "" -#: ../../whatsnew/2.7.rst:1119 msgid "" "The :class:`~collections.namedtuple` class now has an optional *rename* " "parameter. If *rename* is true, field names that are invalid because they've " @@ -1536,25 +1332,21 @@ msgid "" "names that are derived from the field's position within the list of fields:" msgstr "" -#: ../../whatsnew/2.7.rst:1130 msgid "(Added by Raymond Hettinger; :issue:`1818`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1132 msgid "" "Finally, the :class:`~collections.abc.Mapping` abstract base class now " "returns :data:`NotImplemented` if a mapping is compared to another type that " "isn't a :class:`Mapping`. (Fixed by Daniel Stutzbach; :issue:`8729`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1137 msgid "" "Constructors for the parsing classes in the :mod:`ConfigParser " "` module now take an *allow_no_value* parameter, defaulting to " "false; if true, options without values will be allowed. For example::" msgstr "" -#: ../../whatsnew/2.7.rst:1141 msgid "" ">>> import ConfigParser, StringIO\n" ">>> sample_config = \"\"\"\n" @@ -1575,11 +1367,9 @@ msgid "" "NoOptionError: No option 'unknown' in section: 'mysqld'" msgstr "" -#: ../../whatsnew/2.7.rst:1159 msgid "(Contributed by Mats Kindahl; :issue:`7005`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1161 msgid "" "Deprecated function: :func:`!contextlib.nested`, which allows handling more " "than one context manager with a single :keyword:`with` statement, has been " @@ -1587,51 +1377,43 @@ msgid "" "context managers." msgstr "" -#: ../../whatsnew/2.7.rst:1166 msgid "" "The :mod:`cookielib ` module now ignores cookies that have " "an invalid version field, one that doesn't contain an integer value. (Fixed " "by John J. Lee; :issue:`3924`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1170 msgid "" "The :mod:`copy` module's :func:`~copy.deepcopy` function will now correctly " "copy bound instance methods. (Implemented by Robert Collins; :issue:`1515`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1174 msgid "" "The :mod:`ctypes` module now always converts ``None`` to a C ``NULL`` " -"pointer for arguments declared as pointers. (Changed by Thomas " -"Heller; :issue:`4606`.) The underlying `libffi library `__ has been updated to version 3.0.9, containing " -"various fixes for different platforms. (Updated by Matthias " -"Klose; :issue:`8142`.)" +"pointer for arguments declared as pointers. (Changed by Thomas Heller; :" +"issue:`4606`.) The underlying `libffi library `__ has been updated to version 3.0.9, containing various fixes for " +"different platforms. (Updated by Matthias Klose; :issue:`8142`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1181 msgid "" "New method: the :mod:`datetime` module's :class:`~datetime.timedelta` class " "gained a :meth:`~datetime.timedelta.total_seconds` method that returns the " -"number of seconds in the duration. (Contributed by Brian " -"Quinlan; :issue:`5788`.)" +"number of seconds in the duration. (Contributed by Brian Quinlan; :issue:" +"`5788`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1185 msgid "" -"New method: the :class:`~decimal.Decimal` class gained " -"a :meth:`~decimal.Decimal.from_float` class method that performs an exact " -"conversion of a floating-point number to a :class:`!Decimal`. This exact " -"conversion strives for the closest decimal approximation to the floating-" -"point representation's value; the resulting decimal value will therefore " -"still include the inaccuracy, if any. For example, " -"``Decimal.from_float(0.1)`` returns " +"New method: the :class:`~decimal.Decimal` class gained a :meth:`~decimal." +"Decimal.from_float` class method that performs an exact conversion of a " +"floating-point number to a :class:`!Decimal`. This exact conversion strives " +"for the closest decimal approximation to the floating-point representation's " +"value; the resulting decimal value will therefore still include the " +"inaccuracy, if any. For example, ``Decimal.from_float(0.1)`` returns " "``Decimal('0.1000000000000000055511151231257827021181583404541015625')``. " "(Implemented by Raymond Hettinger; :issue:`4796`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1196 msgid "" "Comparing instances of :class:`~decimal.Decimal` with floating-point numbers " "now produces sensible results based on the numeric values of the operands. " @@ -1643,40 +1425,34 @@ msgid "" "Dickinson; :issue:`2531`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1205 msgid "" "The constructor for :class:`~decimal.Decimal` now accepts floating-point " "numbers (added by Raymond Hettinger; :issue:`8257`) and non-European Unicode " -"characters such as Arabic-Indic digits (contributed by Mark " -"Dickinson; :issue:`6595`)." +"characters such as Arabic-Indic digits (contributed by Mark Dickinson; :" +"issue:`6595`)." msgstr "" -#: ../../whatsnew/2.7.rst:1210 msgid "" "Most of the methods of the :class:`~decimal.Context` class now accept " "integers as well as :class:`~decimal.Decimal` instances; the only exceptions " -"are the :meth:`~decimal.Context.canonical` " -"and :meth:`~decimal.Context.is_canonical` methods. (Patch by Juan José " -"Conti; :issue:`7633`.)" +"are the :meth:`~decimal.Context.canonical` and :meth:`~decimal.Context." +"is_canonical` methods. (Patch by Juan José Conti; :issue:`7633`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1215 msgid "" -"When using :class:`~decimal.Decimal` instances with a " -"string's :meth:`~str.format` method, the default alignment was previously " -"left-alignment. This has been changed to right-alignment, which is more " -"sensible for numeric types. (Changed by Mark Dickinson; :issue:`6857`.)" +"When using :class:`~decimal.Decimal` instances with a string's :meth:`~str." +"format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which is more sensible for numeric " +"types. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1220 ../../whatsnew/2.7.rst:2484 msgid "" -"Comparisons involving a signaling NaN value (or ``sNAN``) now " -"signal :const:`~decimal.InvalidOperation` instead of silently returning a " -"true or false value depending on the comparison operator. Quiet NaN values " -"(or ``NaN``) are now hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" +"Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" +"`~decimal.InvalidOperation` instead of silently returning a true or false " +"value depending on the comparison operator. Quiet NaN values (or ``NaN``) " +"are now hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1226 msgid "" "The :mod:`difflib` module now produces output that is more compatible with " "modern :command:`diff`/:command:`patch` tools through one small change, " @@ -1684,7 +1460,6 @@ msgid "" "the filename. (Fixed by Anatoly Techtonik; :issue:`7585`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1232 msgid "" "The Distutils ``sdist`` command now always regenerates the :file:`MANIFEST` " "file, since even if the :file:`MANIFEST.in` or :file:`setup.py` files " @@ -1692,100 +1467,87 @@ msgid "" "should be included. (Fixed by Tarek Ziadé; :issue:`8688`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1238 msgid "" "The :mod:`doctest` module's :const:`~doctest.IGNORE_EXCEPTION_DETAIL` flag " "will now ignore the name of the module containing the exception being " "tested. (Patch by Lennart Regebro; :issue:`7490`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1242 msgid "" "The :mod:`email` module's :class:`~email.message.Message` class will now " "accept a Unicode-valued payload, automatically converting the payload to the " -"encoding specified by :attr:`!output_charset`. (Added by R. David " -"Murray; :issue:`1368247`.)" +"encoding specified by :attr:`!output_charset`. (Added by R. David Murray; :" +"issue:`1368247`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1247 msgid "" -"The :class:`~fractions.Fraction` class now accepts a single float " -"or :class:`~decimal.Decimal` instance, or two rational numbers, as arguments " -"to its constructor. (Implemented by Mark Dickinson; rationals added " -"in :issue:`5812`, and float/decimal in :issue:`8294`.)" +"The :class:`~fractions.Fraction` class now accepts a single float or :class:" +"`~decimal.Decimal` instance, or two rational numbers, as arguments to its " +"constructor. (Implemented by Mark Dickinson; rationals added in :issue:" +"`5812`, and float/decimal in :issue:`8294`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1253 msgid "" "Ordering comparisons (``<``, ``<=``, ``>``, ``>=``) between fractions and " "complex numbers now raise a :exc:`TypeError`. This fixes an oversight, " "making the :class:`~fractions.Fraction` match the other numeric types." msgstr "" -#: ../../whatsnew/2.7.rst:1260 msgid "" "New class: :class:`~ftplib.FTP_TLS` in the :mod:`ftplib` module provides " "secure FTP connections using TLS encapsulation of authentication as well as " -"subsequent control and data transfers. (Contributed by Giampaolo " -"Rodola; :issue:`2054`.)" +"subsequent control and data transfers. (Contributed by Giampaolo Rodola; :" +"issue:`2054`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1266 msgid "" "The :meth:`~ftplib.FTP.storbinary` method for binary uploads can now restart " -"uploads thanks to an added *rest* parameter (patch by Pablo " -"Mouzo; :issue:`6845`.)" +"uploads thanks to an added *rest* parameter (patch by Pablo Mouzo; :issue:" +"`6845`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1270 msgid "" -"New class decorator: :func:`~functools.total_ordering` in " -"the :mod:`functools` module takes a class that defines " -"an :meth:`~object.__eq__` method and one " -"of :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " -"or :meth:`~object.__ge__`, and generates the missing comparison methods. " -"Since the :meth:`!__cmp__` method is being deprecated in Python 3.x, this " -"decorator makes it easier to define ordered classes. (Added by Raymond " -"Hettinger; :issue:`5479`.)" +"New class decorator: :func:`~functools.total_ordering` in the :mod:" +"`functools` module takes a class that defines an :meth:`~object.__eq__` " +"method and one of :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:" +"`~object.__gt__`, or :meth:`~object.__ge__`, and generates the missing " +"comparison methods. Since the :meth:`!__cmp__` method is being deprecated " +"in Python 3.x, this decorator makes it easier to define ordered classes. " +"(Added by Raymond Hettinger; :issue:`5479`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1278 msgid "" "New function: :func:`~functools.cmp_to_key` will take an old-style " "comparison function that expects two arguments and return a new callable " -"that can be used as the *key* parameter to functions such " -"as :func:`sorted`, :func:`min` and :func:`max`, etc. The primary intended " -"use is to help with making code compatible with Python 3.x. (Added by " -"Raymond Hettinger.)" +"that can be used as the *key* parameter to functions such as :func:" +"`sorted`, :func:`min` and :func:`max`, etc. The primary intended use is to " +"help with making code compatible with Python 3.x. (Added by Raymond " +"Hettinger.)" msgstr "" -#: ../../whatsnew/2.7.rst:1285 msgid "" "New function: the :mod:`gc` module's :func:`~gc.is_tracked` returns true if " "a given instance is tracked by the garbage collector, false otherwise. " "(Contributed by Antoine Pitrou; :issue:`4688`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1289 msgid "" "The :mod:`gzip` module's :class:`~gzip.GzipFile` now supports the context " "management protocol, so you can write ``with gzip.GzipFile(...) as f:`` " -"(contributed by Hagen Fürstenau; :issue:`3860`), and it now implements " -"the :class:`io.BufferedIOBase` ABC, so you can wrap it " -"with :class:`io.BufferedReader` for faster processing (contributed by Nir " -"Aides; :issue:`7471`). It's also now possible to override the modification " -"time recorded in a gzipped file by providing an optional timestamp to the " -"constructor. (Contributed by Jacques Frechet; :issue:`4272`.)" +"(contributed by Hagen Fürstenau; :issue:`3860`), and it now implements the :" +"class:`io.BufferedIOBase` ABC, so you can wrap it with :class:`io." +"BufferedReader` for faster processing (contributed by Nir Aides; :issue:" +"`7471`). It's also now possible to override the modification time recorded " +"in a gzipped file by providing an optional timestamp to the constructor. " +"(Contributed by Jacques Frechet; :issue:`4272`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1299 msgid "" "Files in gzip format can be padded with trailing zero bytes; the :mod:`gzip` " "module will now consume these trailing bytes. (Fixed by Tadek Pietraszek " "and Brian Curtin; :issue:`2846`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1303 msgid "" "New attribute: the :mod:`hashlib` module now has an :attr:`!algorithms` " "attribute containing a tuple naming the supported algorithms. In Python 2.7, " @@ -1793,24 +1555,20 @@ msgid "" "'sha384', 'sha512')``. (Contributed by Carl Chenet; :issue:`7418`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1309 msgid "" -"The default :class:`~http.client.HTTPResponse` class used by " -"the :mod:`httplib ` module now supports buffering, resulting in much " -"faster reading of HTTP responses. (Contributed by Kristján Valur " -"Jónsson; :issue:`4879`.)" +"The default :class:`~http.client.HTTPResponse` class used by the :mod:" +"`httplib ` module now supports buffering, resulting in much faster " +"reading of HTTP responses. (Contributed by Kristján Valur Jónsson; :issue:" +"`4879`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1313 msgid "" -"The :class:`~http.client.HTTPConnection` " -"and :class:`~http.client.HTTPSConnection` classes now support a " -"*source_address* parameter, a ``(host, port)`` 2-tuple giving the source " -"address that will be used for the connection. (Contributed by Eldon " -"Ziegler; :issue:`3972`.)" +"The :class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` classes now support a *source_address* parameter, a " +"``(host, port)`` 2-tuple giving the source address that will be used for the " +"connection. (Contributed by Eldon Ziegler; :issue:`3972`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1318 msgid "" "The :mod:`!ihooks` module now supports relative imports. Note that :mod:`!" "ihooks` is an older module for customizing imports, superseded by the :mod:`!" @@ -1818,13 +1576,11 @@ msgid "" "Schemenauer.)" msgstr "" -#: ../../whatsnew/2.7.rst:1325 msgid "" "The :mod:`imaplib` module now supports IPv6 addresses. (Contributed by Derek " "Morr; :issue:`1655`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1328 msgid "" "New function: the :mod:`inspect` module's :func:`~inspect.getcallargs` takes " "a callable and its positional and keyword arguments, and figures out which " @@ -1832,7 +1588,6 @@ msgid "" "dictionary mapping argument names to their values. For example::" msgstr "" -#: ../../whatsnew/2.7.rst:1333 msgid "" ">>> from inspect import getcallargs\n" ">>> def f(a, b=1, *pos, **named):\n" @@ -1848,11 +1603,9 @@ msgid "" "TypeError: f() takes at least 1 argument (0 given)" msgstr "" -#: ../../whatsnew/2.7.rst:1346 msgid "Contributed by George Sakkis; :issue:`3135`." msgstr "" -#: ../../whatsnew/2.7.rst:1348 msgid "" "Updated module: The :mod:`io` library has been upgraded to the version " "shipped with Python 3.1. For 3.1, the I/O library was entirely rewritten in " @@ -1860,37 +1613,32 @@ msgid "" "original Python version was renamed to the :mod:`!_pyio` module." msgstr "" -#: ../../whatsnew/2.7.rst:1353 msgid "" -"One minor resulting change: the :class:`io.TextIOBase` class now has " -"an :attr:`~io.TextIOBase.errors` attribute giving the error setting used for " +"One minor resulting change: the :class:`io.TextIOBase` class now has an :" +"attr:`~io.TextIOBase.errors` attribute giving the error setting used for " "encoding and decoding errors (one of ``'strict'``, ``'replace'``, " "``'ignore'``)." msgstr "" -#: ../../whatsnew/2.7.rst:1358 msgid "" "The :class:`io.FileIO` class now raises an :exc:`OSError` when passed an " -"invalid file descriptor. (Implemented by Benjamin " -"Peterson; :issue:`4991`.) The :meth:`~io.IOBase.truncate` method now " -"preserves the file position; previously it would change the file position to " -"the end of the new file. (Fixed by Pascal Chambon; :issue:`6939`.)" +"invalid file descriptor. (Implemented by Benjamin Peterson; :issue:" +"`4991`.) The :meth:`~io.IOBase.truncate` method now preserves the file " +"position; previously it would change the file position to the end of the new " +"file. (Fixed by Pascal Chambon; :issue:`6939`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1364 msgid "" "New function: ``itertools.compress(data, selectors)`` takes two iterators. " "Elements of *data* are returned if the corresponding value in *selectors* is " "true::" msgstr "" -#: ../../whatsnew/2.7.rst:1368 msgid "" "itertools.compress('ABCDEF', [1,0,1,0,1,1]) =>\n" " A, C, E, F" msgstr "" -#: ../../whatsnew/2.7.rst:1373 msgid "" "New function: ``itertools.combinations_with_replacement(iter, r)`` returns " "all the possible *r*-length combinations of elements from the iterable " @@ -1898,29 +1646,25 @@ msgid "" "repeated in the generated combinations::" msgstr "" -#: ../../whatsnew/2.7.rst:1378 msgid "" "itertools.combinations_with_replacement('abc', 2) =>\n" " ('a', 'a'), ('a', 'b'), ('a', 'c'),\n" " ('b', 'b'), ('b', 'c'), ('c', 'c')" msgstr "" -#: ../../whatsnew/2.7.rst:1382 msgid "" "Note that elements are treated as unique depending on their position in the " "input, not their actual values." msgstr "" -#: ../../whatsnew/2.7.rst:1385 msgid "" "The :func:`itertools.count` function now has a *step* argument that allows " "incrementing by values other than 1. :func:`~itertools.count` also now " -"allows keyword arguments, and using non-integer values such as floats " -"or :class:`~decimal.Decimal` instances. (Implemented by Raymond " -"Hettinger; :issue:`5032`.)" +"allows keyword arguments, and using non-integer values such as floats or :" +"class:`~decimal.Decimal` instances. (Implemented by Raymond Hettinger; :" +"issue:`5032`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1391 msgid "" ":func:`itertools.combinations` and :func:`itertools.product` previously " "raised :exc:`ValueError` for values of *r* larger than the input iterable. " @@ -1928,14 +1672,12 @@ msgid "" "iterator. (Fixed by Raymond Hettinger; :issue:`4816`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1396 msgid "" "Updated module: The :mod:`json` module was upgraded to version 2.0.9 of the " "simplejson package, which includes a C extension that makes encoding and " "decoding faster. (Contributed by Bob Ippolito; :issue:`4136`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1401 msgid "" "To support the new :class:`collections.OrderedDict` type, :func:`json.load` " "now has an optional *object_pairs_hook* parameter that will be called with " @@ -1943,7 +1685,6 @@ msgid "" "Hettinger; :issue:`5381`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1406 msgid "" "The :mod:`mailbox` module's :class:`~mailbox.Maildir` class now records the " "timestamp on the directories it reads, and only re-reads them if the " @@ -1952,18 +1693,16 @@ msgid "" "Pitrou; :issue:`1607951`, :issue:`6896`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1412 msgid "" -"New functions: the :mod:`math` module gained :func:`~math.erf` " -"and :func:`~math.erfc` for the error function and the complementary error " -"function, :func:`~math.expm1` which computes ``e**x - 1`` with more " -"precision than using :func:`~math.exp` and subtracting " -"1, :func:`~math.gamma` for the Gamma function, and :func:`~math.lgamma` for " -"the natural log of the Gamma function. (Contributed by Mark Dickinson and " -"nirinA raseliarison; :issue:`3366`.)" +"New functions: the :mod:`math` module gained :func:`~math.erf` and :func:" +"`~math.erfc` for the error function and the complementary error function, :" +"func:`~math.expm1` which computes ``e**x - 1`` with more precision than " +"using :func:`~math.exp` and subtracting 1, :func:`~math.gamma` for the Gamma " +"function, and :func:`~math.lgamma` for the natural log of the Gamma " +"function. (Contributed by Mark Dickinson and nirinA raseliarison; :issue:" +"`3366`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1420 msgid "" "The :mod:`multiprocessing` module's :class:`!Manager*` classes can now be " "passed a callable that will be called whenever a subprocess is started, " @@ -1971,7 +1710,6 @@ msgid "" "(Contributed by lekma; :issue:`5585`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1426 msgid "" "The :class:`~multiprocessing.pool.Pool` class, which controls a pool of " "worker processes, now has an optional *maxtasksperchild* parameter. Worker " @@ -1981,73 +1719,61 @@ msgid "" "very large. (Contributed by Charles Cazabon; :issue:`6963`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1434 msgid "" "The :mod:`!nntplib` module now supports IPv6 addresses. (Contributed by " "Derek Morr; :issue:`1664`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1437 msgid "" -"New functions: the :mod:`os` module wraps the following POSIX system " -"calls: :func:`~os.getresgid` and :func:`~os.getresuid`, which return the " -"real, effective, and saved GIDs and UIDs; :func:`~os.setresgid` " -"and :func:`~os.setresuid`, which set real, effective, and saved GIDs and " -"UIDs to new values; :func:`~os.initgroups`, which initialize the group " -"access list for the current process. (GID/UID functions contributed by " -"Travis H.; :issue:`6508`. Support for initgroups added by Jean-Paul " -"Calderone; :issue:`7333`.)" +"New functions: the :mod:`os` module wraps the following POSIX system calls: :" +"func:`~os.getresgid` and :func:`~os.getresuid`, which return the real, " +"effective, and saved GIDs and UIDs; :func:`~os.setresgid` and :func:`~os." +"setresuid`, which set real, effective, and saved GIDs and UIDs to new " +"values; :func:`~os.initgroups`, which initialize the group access list for " +"the current process. (GID/UID functions contributed by Travis H.; :issue:" +"`6508`. Support for initgroups added by Jean-Paul Calderone; :issue:`7333`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1447 msgid "" "The :func:`os.fork` function now re-initializes the import lock in the child " "process; this fixes problems on Solaris when :func:`~os.fork` is called from " "a thread. (Fixed by Zsolt Cserna; :issue:`7242`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1451 msgid "" -"In the :mod:`os.path` module, the :func:`~os.path.normpath` " -"and :func:`~os.path.abspath` functions now preserve Unicode; if their input " -"path is a Unicode string, the return value is also a Unicode string. " -"(:meth:`~os.path.normpath` fixed by Matt Giuca " -"in :issue:`5827`; :meth:`~os.path.abspath` fixed by Ezio Melotti " -"in :issue:`3426`.)" +"In the :mod:`os.path` module, the :func:`~os.path.normpath` and :func:`~os." +"path.abspath` functions now preserve Unicode; if their input path is a " +"Unicode string, the return value is also a Unicode string. (:meth:`~os.path." +"normpath` fixed by Matt Giuca in :issue:`5827`; :meth:`~os.path.abspath` " +"fixed by Ezio Melotti in :issue:`3426`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1457 msgid "" "The :mod:`pydoc` module now has help for the various symbols that Python " "uses. You can now do ``help('<<')`` or ``help('@')``, for example. " "(Contributed by David Laban; :issue:`4739`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1461 msgid "" -"The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, " -"and :func:`~re.subn` now accept an optional *flags* argument, for " -"consistency with the other functions in the module. (Added by Gregory P. " -"Smith.)" +"The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, and :func:`~re." +"subn` now accept an optional *flags* argument, for consistency with the " +"other functions in the module. (Added by Gregory P. Smith.)" msgstr "" -#: ../../whatsnew/2.7.rst:1465 msgid "" "New function: :func:`~runpy.run_path` in the :mod:`runpy` module will " "execute the code at a provided *path* argument. *path* can be the path of a " -"Python source file (:file:`example.py`), a compiled bytecode file " -"(:file:`example.pyc`), a directory (:file:`./package/`), or a zip archive " -"(:file:`example.zip`). If a directory or zip path is provided, it will be " -"added to the front of ``sys.path`` and the module :mod:`__main__` will be " -"imported. It's expected that the directory or zip contains " -"a :file:`__main__.py`; if it doesn't, some other :file:`__main__.py` might " -"be imported from a location later in ``sys.path``. This makes more of the " -"machinery of :mod:`runpy` available to scripts that want to mimic the way " -"Python's command line processes an explicit path name. (Added by Nick " -"Coghlan; :issue:`6816`.)" +"Python source file (:file:`example.py`), a compiled bytecode file (:file:" +"`example.pyc`), a directory (:file:`./package/`), or a zip archive (:file:" +"`example.zip`). If a directory or zip path is provided, it will be added to " +"the front of ``sys.path`` and the module :mod:`__main__` will be imported. " +"It's expected that the directory or zip contains a :file:`__main__.py`; if " +"it doesn't, some other :file:`__main__.py` might be imported from a location " +"later in ``sys.path``. This makes more of the machinery of :mod:`runpy` " +"available to scripts that want to mimic the way Python's command line " +"processes an explicit path name. (Added by Nick Coghlan; :issue:`6816`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1479 msgid "" "New function: in the :mod:`shutil` module, :func:`~shutil.make_archive` " "takes a filename, archive type (zip or tar-format), and a directory path, " @@ -2055,7 +1781,6 @@ msgid "" "Ziadé.)" msgstr "" -#: ../../whatsnew/2.7.rst:1484 msgid "" ":mod:`shutil`'s :func:`~shutil.copyfile` and :func:`~shutil.copytree` " "functions now raise a :exc:`~shutil.SpecialFileError` exception when asked " @@ -2064,88 +1789,76 @@ msgid "" "indefinitely. (Fixed by Antoine Pitrou; :issue:`3002`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1490 msgid "" "The :mod:`signal` module no longer re-installs the signal handler unless " "this is truly necessary, which fixes a bug that could make it impossible to " -"catch the EINTR signal robustly. (Fixed by Charles-Francois " -"Natali; :issue:`8354`.)" +"catch the EINTR signal robustly. (Fixed by Charles-Francois Natali; :issue:" +"`8354`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1495 msgid "" "New functions: in the :mod:`site` module, three new functions return various " "site- and user-specific paths. :func:`~site.getsitepackages` returns a list " -"containing all global site-packages " -"directories, :func:`~site.getusersitepackages` returns the path of the " -"user's site-packages directory, and :func:`~site.getuserbase` returns the " -"value of the :data:`~site.USER_BASE` environment variable, giving the path " -"to a directory that can be used to store data. (Contributed by Tarek " -"Ziadé; :issue:`6693`.)" +"containing all global site-packages directories, :func:`~site." +"getusersitepackages` returns the path of the user's site-packages directory, " +"and :func:`~site.getuserbase` returns the value of the :data:`~site." +"USER_BASE` environment variable, giving the path to a directory that can be " +"used to store data. (Contributed by Tarek Ziadé; :issue:`6693`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1506 msgid "" -"The :mod:`site` module now reports exceptions occurring when " -"the :mod:`sitecustomize` module is imported, and will no longer catch and " -"swallow the :exc:`KeyboardInterrupt` exception. (Fixed by Victor " -"Stinner; :issue:`3137`.)" +"The :mod:`site` module now reports exceptions occurring when the :mod:" +"`sitecustomize` module is imported, and will no longer catch and swallow " +"the :exc:`KeyboardInterrupt` exception. (Fixed by Victor Stinner; :issue:" +"`3137`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1511 msgid "" "The :func:`~socket.create_connection` function gained a *source_address* " "parameter, a ``(host, port)`` 2-tuple giving the source address that will be " "used for the connection. (Contributed by Eldon Ziegler; :issue:`3972`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1516 msgid "" -"The :meth:`~socket.socket.recv_into` " -"and :meth:`~socket.socket.recvfrom_into` methods will now write into objects " -"that support the buffer API, most usefully the :class:`bytearray` " -"and :class:`memoryview` objects. (Implemented by Antoine " -"Pitrou; :issue:`8104`.)" +"The :meth:`~socket.socket.recv_into` and :meth:`~socket.socket." +"recvfrom_into` methods will now write into objects that support the buffer " +"API, most usefully the :class:`bytearray` and :class:`memoryview` objects. " +"(Implemented by Antoine Pitrou; :issue:`8104`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1521 msgid "" -"The :mod:`SocketServer ` " -"module's :class:`~socketserver.TCPServer` class now supports socket timeouts " -"and disabling the Nagle algorithm. The :attr:`!disable_nagle_algorithm` " -"class attribute defaults to ``False``; if overridden to be true, new request " -"connections will have the TCP_NODELAY option set to prevent buffering many " -"small sends into a single TCP packet. " -"The :attr:`~socketserver.BaseServer.timeout` class attribute can hold a " -"timeout in seconds that will be applied to the request socket; if no request " -"is received within that " -"time, :meth:`~socketserver.BaseServer.handle_timeout` will be called " -"and :meth:`~socketserver.BaseServer.handle_request` will return. " -"(Contributed by Kristján Valur Jónsson; :issue:`6192` and :issue:`6267`.)" +"The :mod:`SocketServer ` module's :class:`~socketserver." +"TCPServer` class now supports socket timeouts and disabling the Nagle " +"algorithm. The :attr:`!disable_nagle_algorithm` class attribute defaults to " +"``False``; if overridden to be true, new request connections will have the " +"TCP_NODELAY option set to prevent buffering many small sends into a single " +"TCP packet. The :attr:`~socketserver.BaseServer.timeout` class attribute can " +"hold a timeout in seconds that will be applied to the request socket; if no " +"request is received within that time, :meth:`~socketserver.BaseServer." +"handle_timeout` will be called and :meth:`~socketserver.BaseServer." +"handle_request` will return. (Contributed by Kristján Valur Jónsson; :issue:" +"`6192` and :issue:`6267`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1533 msgid "" "Updated module: the :mod:`sqlite3` module has been updated to version 2.6.0 " "of the `pysqlite package `__. Version " "2.6.0 includes a number of bugfixes, and adds the ability to load SQLite " "extensions from shared libraries. Call the ``enable_load_extension(True)`` " -"method to enable extensions, and then " -"call :meth:`~sqlite3.Connection.load_extension` to load a particular shared " -"library. (Updated by Gerhard Häring.)" +"method to enable extensions, and then call :meth:`~sqlite3.Connection." +"load_extension` to load a particular shared library. (Updated by Gerhard " +"Häring.)" msgstr "" -#: ../../whatsnew/2.7.rst:1540 msgid "" "The :mod:`ssl` module's :class:`~ssl.SSLSocket` objects now support the " -"buffer API, which fixed a test suite failure (fix by Antoine " -"Pitrou; :issue:`7133`) and automatically set OpenSSL's :c:macro:`!" -"SSL_MODE_AUTO_RETRY`, which will prevent an error code being returned " -"from :meth:`recv` operations that trigger an SSL renegotiation (fix by " -"Antoine Pitrou; :issue:`8222`)." +"buffer API, which fixed a test suite failure (fix by Antoine Pitrou; :issue:" +"`7133`) and automatically set OpenSSL's :c:macro:`!SSL_MODE_AUTO_RETRY`, " +"which will prevent an error code being returned from :meth:`!recv` " +"operations that trigger an SSL renegotiation (fix by Antoine Pitrou; :issue:" +"`8222`)." msgstr "" -#: ../../whatsnew/2.7.rst:1547 msgid "" "The :func:`~ssl.SSLContext.wrap_socket` constructor function now takes a " "*ciphers* argument that's a string listing the encryption algorithms to be " @@ -2154,7 +1867,6 @@ msgid "" "Pitrou; :issue:`8322`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1554 msgid "" "Another change makes the extension load all of OpenSSL's ciphers and digest " "algorithms so that they're all available. Some SSL certificates couldn't be " @@ -2162,16 +1874,13 @@ msgid "" "Kosata, and fixed by Antoine Pitrou; :issue:`8484`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1560 msgid "" -"The version of OpenSSL being used is now available as the module " -"attributes :const:`ssl.OPENSSL_VERSION` (a " -"string), :const:`ssl.OPENSSL_VERSION_INFO` (a 5-tuple), " -"and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by Antoine " -"Pitrou; :issue:`8321`.)" +"The version of OpenSSL being used is now available as the module attributes :" +"const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl.OPENSSL_VERSION_INFO` (a " +"5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " +"Antoine Pitrou; :issue:`8321`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1566 msgid "" "The :mod:`struct` module will no longer silently ignore overflow errors when " "a value is too large for a particular integer format code (one of " @@ -2182,16 +1891,13 @@ msgid "" "reporting an error. (Changed by Mark Dickinson; :issue:`8300`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1575 msgid "" -"New function: the :mod:`subprocess` " -"module's :func:`~subprocess.check_output` runs a command with a specified " -"set of arguments and returns the command's output as a string when the " -"command runs without error, or raises " -"a :exc:`~subprocess.CalledProcessError` exception otherwise." +"New function: the :mod:`subprocess` module's :func:`~subprocess." +"check_output` runs a command with a specified set of arguments and returns " +"the command's output as a string when the command runs without error, or " +"raises a :exc:`~subprocess.CalledProcessError` exception otherwise." msgstr "" -#: ../../whatsnew/2.7.rst:1582 msgid "" ">>> subprocess.check_output(['df', '-h', '.'])\n" "'Filesystem Size Used Avail Capacity Mounted on\\n\n" @@ -2203,49 +1909,42 @@ msgid "" "zero exit status 1" msgstr "" -#: ../../whatsnew/2.7.rst:1590 msgid "(Contributed by Gregory P. Smith.)" msgstr "" -#: ../../whatsnew/2.7.rst:1592 msgid "" "The :mod:`subprocess` module will now retry its internal system calls on " "receiving an :const:`~errno.EINTR` signal. (Reported by several people; " "final patch by Gregory P. Smith in :issue:`1068268`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1596 msgid "" -"New function: :func:`~symtable.Symbol.is_declared_global` in " -"the :mod:`symtable` module returns true for variables that are explicitly " -"declared to be global, false for ones that are implicitly global. " -"(Contributed by Jeremy Hylton.)" +"New function: :func:`~symtable.Symbol.is_declared_global` in the :mod:" +"`symtable` module returns true for variables that are explicitly declared to " +"be global, false for ones that are implicitly global. (Contributed by Jeremy " +"Hylton.)" msgstr "" -#: ../../whatsnew/2.7.rst:1601 ../../whatsnew/2.7.rst:2500 msgid "" "The :mod:`syslog` module will now use the value of ``sys.argv[0]`` as the " "identifier instead of the previous default value of ``'python'``. (Changed " "by Sean Reifschneider; :issue:`8451`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1605 msgid "" "The :data:`sys.version_info` value is now a named tuple, with attributes " "named :attr:`!major`, :attr:`!minor`, :attr:`!micro`, :attr:`!releaselevel`, " "and :attr:`!serial`. (Contributed by Ross Light; :issue:`4285`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1610 msgid "" ":func:`sys.getwindowsversion` also returns a named tuple, with attributes " -"named :attr:`!major`, :attr:`!minor`, :attr:`!build`, :attr:`!" -"platform`, :attr:`!service_pack`, :attr:`!service_pack_major`, :attr:`!" +"named :attr:`!major`, :attr:`!minor`, :attr:`!build`, :attr:`!platform`, :" +"attr:`!service_pack`, :attr:`!service_pack_major`, :attr:`!" "service_pack_minor`, :attr:`!suite_mask`, and :attr:`!product_type`. " "(Contributed by Brian Curtin; :issue:`7766`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1616 ../../whatsnew/2.7.rst:2504 msgid "" "The :mod:`tarfile` module's default error handling has changed, to no longer " "suppress fatal errors. The default error level was previously 0, which " @@ -2255,7 +1954,6 @@ msgid "" "there's an error. (Changed by Lars Gustäbel; :issue:`7357`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1624 msgid "" ":mod:`tarfile` now supports filtering the :class:`~tarfile.TarInfo` objects " "being added to a tar file. When you call :meth:`~tarfile.TarFile.add`, you " @@ -2265,11 +1963,10 @@ msgid "" "file will be excluded from the resulting archive. This is more powerful " "than the existing *exclude* argument, which has therefore been deprecated. " "(Added by Lars Gustäbel; :issue:`6856`.) The :class:`~tarfile.TarFile` class " -"also now supports the context management protocol. (Added by Lars " -"Gustäbel; :issue:`7232`.)" +"also now supports the context management protocol. (Added by Lars Gustäbel; :" +"issue:`7232`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1636 msgid "" "The :meth:`~threading.Event.wait` method of the :class:`threading.Event` " "class now returns the internal flag on exit. This means the method will " @@ -2279,17 +1976,15 @@ msgid "" "Tim Lesher; :issue:`1674032`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1643 msgid "" "The Unicode database provided by the :mod:`unicodedata` module is now used " "internally to determine which characters are numeric, whitespace, or " -"represent line breaks. The database also includes information from " -"the :file:`Unihan.txt` data file (patch by Anders Chrigström and Amaury " -"Forgeot d'Arc; :issue:`1571184`) and has been updated to version 5.2.0 " -"(updated by Florent Xicluna; :issue:`8024`)." +"represent line breaks. The database also includes information from the :" +"file:`Unihan.txt` data file (patch by Anders Chrigström and Amaury Forgeot " +"d'Arc; :issue:`1571184`) and has been updated to version 5.2.0 (updated by " +"Florent Xicluna; :issue:`8024`)." msgstr "" -#: ../../whatsnew/2.7.rst:1651 ../../whatsnew/2.7.rst:2512 msgid "" "The :mod:`urlparse ` module's :func:`~urllib.parse.urlsplit` " "now handles unknown URL schemes in a fashion compliant with :rfc:`3986`: if " @@ -2299,45 +1994,38 @@ msgid "" "behaviour. For example, Python 2.6.4 or 2.5 will return the following:" msgstr "" -#: ../../whatsnew/2.7.rst:1659 ../../whatsnew/2.7.rst:2520 msgid "" ">>> import urlparse\n" ">>> urlparse.urlsplit('invented://host/filename?query')\n" "('invented', '', '//host/filename?query', '', '')" msgstr "" -#: ../../whatsnew/2.7.rst:1666 ../../whatsnew/2.7.rst:2527 msgid "Python 2.7 (and Python 2.6.5) will return:" msgstr "" -#: ../../whatsnew/2.7.rst:1668 ../../whatsnew/2.7.rst:2529 msgid "" ">>> import urlparse\n" ">>> urlparse.urlsplit('invented://host/filename?query')\n" "('invented', 'host', '/filename?query', '', '')" msgstr "" -#: ../../whatsnew/2.7.rst:1675 ../../whatsnew/2.7.rst:2536 msgid "" "(Python 2.7 actually produces slightly different output, since it returns a " "named tuple instead of a standard tuple.)" msgstr "" -#: ../../whatsnew/2.7.rst:1678 msgid "" "The :mod:`urlparse ` module also supports IPv6 literal " -"addresses as defined by :rfc:`2732` (contributed by Senthil " -"Kumaran; :issue:`2987`)." +"addresses as defined by :rfc:`2732` (contributed by Senthil Kumaran; :issue:" +"`2987`)." msgstr "" -#: ../../whatsnew/2.7.rst:1681 msgid "" ">>> urlparse.urlparse('http://[1080::8:800:200C:417A]/foo')\n" "ParseResult(scheme='http', netloc='[1080::8:800:200C:417A]',\n" " path='/foo', params='', query='', fragment='')" msgstr "" -#: ../../whatsnew/2.7.rst:1688 msgid "" "New class: the :class:`~weakref.WeakSet` class in the :mod:`weakref` module " "is a set that only holds weak references to its elements; elements will be " @@ -2346,7 +2034,6 @@ msgid "" "Michael Foord.)" msgstr "" -#: ../../whatsnew/2.7.rst:1694 msgid "" "The :mod:`xml.etree.ElementTree` library, no longer escapes ampersands and " "angle brackets when outputting an XML processing instruction (which looks " @@ -2354,42 +2041,37 @@ msgid "" "````). (Patch by Neil Muller; :issue:`2746`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1700 msgid "" -"The XML-RPC client and server, provided by the :mod:`xmlrpclib " -"` and :mod:`SimpleXMLRPCServer ` modules, have " +"The XML-RPC client and server, provided by the :mod:`xmlrpclib ` and :mod:`SimpleXMLRPCServer ` modules, have " "improved performance by supporting HTTP/1.1 keep-alive and by optionally " "using gzip encoding to compress the XML being exchanged. The gzip " -"compression is controlled by the :attr:`!encode_threshold` attribute " -"of :class:`~xmlrpc.server.SimpleXMLRPCRequestHandler`, which contains a size " -"in bytes; responses larger than this will be compressed. (Contributed by " +"compression is controlled by the :attr:`!encode_threshold` attribute of :" +"class:`~xmlrpc.server.SimpleXMLRPCRequestHandler`, which contains a size in " +"bytes; responses larger than this will be compressed. (Contributed by " "Kristján Valur Jónsson; :issue:`6267`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1709 msgid "" "The :mod:`zipfile` module's :class:`~zipfile.ZipFile` now supports the " "context management protocol, so you can write ``with zipfile.ZipFile(...) as " "f:``. (Contributed by Brian Curtin; :issue:`5511`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1713 msgid "" ":mod:`zipfile` now also supports archiving empty directories and extracts " "them correctly. (Fixed by Kuba Wieczorek; :issue:`4710`.) Reading files out " -"of an archive is faster, and interleaving :meth:`read() " -"` and :meth:`readline() ` now " -"works correctly. (Contributed by Nir Aides; :issue:`7610`.)" +"of an archive is faster, and interleaving :meth:`read() ` and :meth:`readline() ` now works correctly. " +"(Contributed by Nir Aides; :issue:`7610`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1720 msgid "" "The :func:`~zipfile.is_zipfile` function now accepts a file object, in " "addition to the path names accepted in earlier versions. (Contributed by " "Gabriel Genellina; :issue:`4756`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1724 msgid "" "The :meth:`~zipfile.ZipFile.writestr` method now has an optional " "*compress_type* parameter that lets you override the default compression " @@ -2397,22 +2079,19 @@ msgid "" "by Ronald Oussoren; :issue:`6003`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1737 msgid "New module: importlib" msgstr "" -#: ../../whatsnew/2.7.rst:1739 msgid "" "Python 3.1 includes the :mod:`importlib` package, a re-implementation of the " "logic underlying Python's :keyword:`import` statement. :mod:`importlib` is " "useful for implementers of Python interpreters and to users who wish to " "write new importers that can participate in the import process. Python 2.7 " "doesn't contain the complete :mod:`importlib` package, but instead has a " -"tiny subset that contains a single " -"function, :func:`~importlib.import_module`." +"tiny subset that contains a single function, :func:`~importlib." +"import_module`." msgstr "" -#: ../../whatsnew/2.7.rst:1747 msgid "" "``import_module(name, package=None)`` imports a module. *name* is a string " "containing the module or package's name. It's possible to do relative " @@ -2423,11 +2102,9 @@ msgid "" "imported module into ``sys.modules`` and returns the module object." msgstr "" -#: ../../whatsnew/2.7.rst:1756 msgid "Here are some examples::" msgstr "" -#: ../../whatsnew/2.7.rst:1758 msgid "" ">>> from importlib import import_module\n" ">>> anydbm = import_module('anydbm') # Standard absolute import\n" @@ -2439,17 +2116,14 @@ msgid "" "" msgstr "" -#: ../../whatsnew/2.7.rst:1767 msgid "" ":mod:`importlib` was implemented by Brett Cannon and introduced in Python " "3.1." msgstr "" -#: ../../whatsnew/2.7.rst:1772 msgid "New module: sysconfig" msgstr "" -#: ../../whatsnew/2.7.rst:1774 msgid "" "The :mod:`sysconfig` module has been pulled out of the Distutils package, " "becoming a new top-level module in its own right. :mod:`sysconfig` provides " @@ -2458,42 +2132,35 @@ msgid "" "running from its source directory." msgstr "" -#: ../../whatsnew/2.7.rst:1781 msgid "Some of the functions in the module are:" msgstr "" -#: ../../whatsnew/2.7.rst:1783 msgid "" ":func:`~sysconfig.get_config_var` returns variables from Python's Makefile " "and the :file:`pyconfig.h` file." msgstr "" -#: ../../whatsnew/2.7.rst:1785 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary containing all of " "the configuration variables." msgstr "" -#: ../../whatsnew/2.7.rst:1787 msgid "" ":func:`~sysconfig.get_path` returns the configured path for a particular " "type of module: the standard library, site-specific modules, platform-" "specific modules, etc." msgstr "" -#: ../../whatsnew/2.7.rst:1790 msgid "" ":func:`~sysconfig.is_python_build` returns true if you're running a binary " "from a Python source tree, and false otherwise." msgstr "" -#: ../../whatsnew/2.7.rst:1793 msgid "" "Consult the :mod:`sysconfig` documentation for more details and for a " "complete list of functions." msgstr "" -#: ../../whatsnew/2.7.rst:1796 msgid "" "The Distutils package and :mod:`sysconfig` are now maintained by Tarek " "Ziadé, who has also started a Distutils2 package (source repository at " @@ -2501,11 +2168,9 @@ msgid "" "of Distutils." msgstr "" -#: ../../whatsnew/2.7.rst:1803 msgid "ttk: Themed Widgets for Tk" msgstr "" -#: ../../whatsnew/2.7.rst:1805 msgid "" "Tcl/Tk 8.5 includes a set of themed widgets that re-implement basic Tk " "widgets but have a more customizable appearance and can therefore more " @@ -2514,7 +2179,6 @@ msgid "" "added to Tcl/Tck release 8.5." msgstr "" -#: ../../whatsnew/2.7.rst:1811 msgid "" "To learn more, read the :mod:`~tkinter.ttk` module documentation. You may " "also wish to read the Tcl/Tk manual page describing the Ttk theme engine, " @@ -2523,20 +2187,17 @@ msgid "" "archive/p/python-ttk/wikis/Screenshots.wiki." msgstr "" -#: ../../whatsnew/2.7.rst:1818 msgid "" -"The :mod:`tkinter.ttk` module was written by Guilherme Polo and added " -"in :issue:`2983`. An alternate version called ``Tile.py``, written by " -"Martin Franklin and maintained by Kevin Walzer, was proposed for inclusion " -"in :issue:`2618`, but the authors argued that Guilherme Polo's work was more " +"The :mod:`tkinter.ttk` module was written by Guilherme Polo and added in :" +"issue:`2983`. An alternate version called ``Tile.py``, written by Martin " +"Franklin and maintained by Kevin Walzer, was proposed for inclusion in :" +"issue:`2618`, but the authors argued that Guilherme Polo's work was more " "comprehensive." msgstr "" -#: ../../whatsnew/2.7.rst:1828 msgid "Updated module: unittest" msgstr "" -#: ../../whatsnew/2.7.rst:1830 msgid "" "The :mod:`unittest` module was greatly enhanced; many new features were " "added. Most of these features were implemented by Michael Foord, unless " @@ -2545,7 +2206,6 @@ msgid "" "unittest2` package, from :pypi:`unittest2`." msgstr "" -#: ../../whatsnew/2.7.rst:1836 msgid "" "When used from the command line, the module can automatically discover " "tests. It's not as fancy as `py.test `__ or `nose " @@ -2555,21 +2215,17 @@ msgid "" "files named ``test*.py``::" msgstr "" -#: ../../whatsnew/2.7.rst:1843 msgid "python -m unittest discover -s test" msgstr "" -#: ../../whatsnew/2.7.rst:1845 msgid "" "Consult the :mod:`unittest` module documentation for more details. " "(Developed in :issue:`6001`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1848 msgid "The :func:`~unittest.main` function supports some other new options:" msgstr "" -#: ../../whatsnew/2.7.rst:1850 msgid "" ":option:`-b ` or :option:`!--buffer` will buffer the standard " "output and standard error streams during each test. If the test passes, any " @@ -2577,7 +2233,6 @@ msgid "" "displayed." msgstr "" -#: ../../whatsnew/2.7.rst:1855 msgid "" ":option:`-c ` or :option:`!--catch` will cause the control-C " "interrupt to be handled more gracefully. Instead of interrupting the test " @@ -2586,7 +2241,6 @@ msgid "" "impatient, a second press of control-C will cause an immediate interruption." msgstr "" -#: ../../whatsnew/2.7.rst:1862 msgid "" "This control-C handler tries to avoid causing problems when the code being " "tested or the tests being run have defined a signal handler of their own, by " @@ -2596,79 +2250,67 @@ msgid "" "disabled." msgstr "" -#: ../../whatsnew/2.7.rst:1869 msgid "" ":option:`-f ` or :option:`!--failfast` makes test execution " "stop immediately when a test fails instead of continuing to execute further " -"tests. (Suggested by Cliff Dyer and implemented by Michael " -"Foord; :issue:`8074`.)" +"tests. (Suggested by Cliff Dyer and implemented by Michael Foord; :issue:" +"`8074`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1874 msgid "" "The progress messages now show 'x' for expected failures and 'u' for " "unexpected successes when run in verbose mode. (Contributed by Benjamin " "Peterson.)" msgstr "" -#: ../../whatsnew/2.7.rst:1878 msgid "" "Test cases can raise the :exc:`~unittest.SkipTest` exception to skip a test " "(:issue:`1034053`)." msgstr "" -#: ../../whatsnew/2.7.rst:1881 msgid "" -"The error messages " -"for :meth:`~unittest.TestCase.assertEqual`, :meth:`~unittest.TestCase.assertTrue`, " -"and :meth:`~unittest.TestCase.assertFalse` failures now provide more " -"information. If you set the :attr:`~unittest.TestCase.longMessage` " -"attribute of your :class:`~unittest.TestCase` classes to true, both the " -"standard error message and any additional message you provide will be " -"printed for failures. (Added by Michael Foord; :issue:`5663`.)" +"The error messages for :meth:`~unittest.TestCase.assertEqual`, :meth:" +"`~unittest.TestCase.assertTrue`, and :meth:`~unittest.TestCase.assertFalse` " +"failures now provide more information. If you set the :attr:`~unittest." +"TestCase.longMessage` attribute of your :class:`~unittest.TestCase` classes " +"to true, both the standard error message and any additional message you " +"provide will be printed for failures. (Added by Michael Foord; :issue:" +"`5663`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1888 msgid "" "The :meth:`~unittest.TestCase.assertRaises` method now returns a context " "handler when called without providing a callable object to run. For " "example, you can write this::" msgstr "" -#: ../../whatsnew/2.7.rst:1892 msgid "" "with self.assertRaises(KeyError):\n" " {}['foo']" msgstr "" -#: ../../whatsnew/2.7.rst:1895 msgid "(Implemented by Antoine Pitrou; :issue:`4444`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1899 msgid "" "Module- and class-level setup and teardown fixtures are now supported. " -"Modules can contain :func:`~unittest.setUpModule` " -"and :func:`~unittest.tearDownModule` functions. Classes can " -"have :meth:`~unittest.TestCase.setUpClass` " -"and :meth:`~unittest.TestCase.tearDownClass` methods that must be defined as " -"class methods (using ``@classmethod`` or equivalent). These functions and " -"methods are invoked when the test runner switches to a test case in a " -"different module or class." +"Modules can contain :func:`~unittest.setUpModule` and :func:`~unittest." +"tearDownModule` functions. Classes can have :meth:`~unittest.TestCase." +"setUpClass` and :meth:`~unittest.TestCase.tearDownClass` methods that must " +"be defined as class methods (using ``@classmethod`` or equivalent). These " +"functions and methods are invoked when the test runner switches to a test " +"case in a different module or class." msgstr "" -#: ../../whatsnew/2.7.rst:1907 msgid "" -"The methods :meth:`~unittest.TestCase.addCleanup` " -"and :meth:`~unittest.TestCase.doCleanups` were " -"added. :meth:`~unittest.TestCase.addCleanup` lets you add cleanup functions " -"that will be called unconditionally (after :meth:`~unittest.TestCase.setUp` " -"if :meth:`~unittest.TestCase.setUp` fails, otherwise " -"after :meth:`~unittest.TestCase.tearDown`). This allows for much simpler " -"resource allocation and deallocation during tests (:issue:`5679`)." +"The methods :meth:`~unittest.TestCase.addCleanup` and :meth:`~unittest." +"TestCase.doCleanups` were added. :meth:`~unittest.TestCase.addCleanup` lets " +"you add cleanup functions that will be called unconditionally (after :meth:" +"`~unittest.TestCase.setUp` if :meth:`~unittest.TestCase.setUp` fails, " +"otherwise after :meth:`~unittest.TestCase.tearDown`). This allows for much " +"simpler resource allocation and deallocation during tests (:issue:`5679`)." msgstr "" -#: ../../whatsnew/2.7.rst:1915 msgid "" "A number of new methods were added that provide more specialized tests. " "Many of these methods were written by Google engineers for use in their test " @@ -2676,36 +2318,31 @@ msgid "" "Python's version of :mod:`unittest`." msgstr "" -#: ../../whatsnew/2.7.rst:1920 msgid "" -":meth:`~unittest.TestCase.assertIsNone` " -"and :meth:`~unittest.TestCase.assertIsNotNone` take one expression and " -"verify that the result is or is not ``None``." +":meth:`~unittest.TestCase.assertIsNone` and :meth:`~unittest.TestCase." +"assertIsNotNone` take one expression and verify that the result is or is not " +"``None``." msgstr "" -#: ../../whatsnew/2.7.rst:1923 msgid "" -":meth:`~unittest.TestCase.assertIs` " -"and :meth:`~unittest.TestCase.assertIsNot` take two values and check whether " -"the two values evaluate to the same object or not. (Added by Michael " -"Foord; :issue:`2578`.)" +":meth:`~unittest.TestCase.assertIs` and :meth:`~unittest.TestCase." +"assertIsNot` take two values and check whether the two values evaluate to " +"the same object or not. (Added by Michael Foord; :issue:`2578`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1927 msgid "" -":meth:`~unittest.TestCase.assertIsInstance` " -"and :meth:`~unittest.TestCase.assertNotIsInstance` check whether the " -"resulting object is an instance of a particular class, or of one of a tuple " -"of classes. (Added by Georg Brandl; :issue:`7031`.)" +":meth:`~unittest.TestCase.assertIsInstance` and :meth:`~unittest.TestCase." +"assertNotIsInstance` check whether the resulting object is an instance of a " +"particular class, or of one of a tuple of classes. (Added by Georg Brandl; :" +"issue:`7031`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1932 msgid "" -":meth:`~unittest.TestCase.assertGreater`, :meth:`~unittest.TestCase.assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, " -"and :meth:`~unittest.TestCase.assertLessEqual` compare two quantities." +":meth:`~unittest.TestCase.assertGreater`, :meth:`~unittest.TestCase." +"assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, and :meth:" +"`~unittest.TestCase.assertLessEqual` compare two quantities." msgstr "" -#: ../../whatsnew/2.7.rst:1936 msgid "" ":meth:`~unittest.TestCase.assertMultiLineEqual` compares two strings, and if " "they're not equal, displays a helpful comparison that highlights the " @@ -2713,15 +2350,13 @@ msgid "" "Unicode strings are compared with :meth:`~unittest.TestCase.assertEqual`." msgstr "" -#: ../../whatsnew/2.7.rst:1941 msgid "" -":meth:`assertRegexpMatches() ` " -"and :meth:`assertNotRegexpMatches() ` " -"checks whether the first argument is a string matching or not matching the " -"regular expression provided as the second argument (:issue:`8038`)." +":meth:`assertRegexpMatches() ` and :meth:" +"`assertNotRegexpMatches() ` checks whether " +"the first argument is a string matching or not matching the regular " +"expression provided as the second argument (:issue:`8038`)." msgstr "" -#: ../../whatsnew/2.7.rst:1946 msgid "" ":meth:`assertRaisesRegexp() ` checks " "whether a particular exception is raised, and then also checks that the " @@ -2729,38 +2364,31 @@ msgid "" "expression." msgstr "" -#: ../../whatsnew/2.7.rst:1951 msgid "" -":meth:`~unittest.TestCase.assertIn` " -"and :meth:`~unittest.TestCase.assertNotIn` tests whether *first* is or is " -"not in *second*." +":meth:`~unittest.TestCase.assertIn` and :meth:`~unittest.TestCase." +"assertNotIn` tests whether *first* is or is not in *second*." msgstr "" -#: ../../whatsnew/2.7.rst:1954 msgid "" ":meth:`assertItemsEqual() ` tests " "whether two provided sequences contain the same elements." msgstr "" -#: ../../whatsnew/2.7.rst:1957 msgid "" ":meth:`~unittest.TestCase.assertSetEqual` compares whether two sets are " "equal, and only reports the differences between the sets in case of error." msgstr "" -#: ../../whatsnew/2.7.rst:1960 msgid "" -"Similarly, :meth:`~unittest.TestCase.assertListEqual` " -"and :meth:`~unittest.TestCase.assertTupleEqual` compare the specified types " -"and explain any differences without necessarily printing their full values; " -"these methods are now used by default when comparing lists and tuples " -"using :meth:`~unittest.TestCase.assertEqual`. More " -"generally, :meth:`~unittest.TestCase.assertSequenceEqual` compares two " -"sequences and can optionally check whether both sequences are of a " -"particular type." +"Similarly, :meth:`~unittest.TestCase.assertListEqual` and :meth:`~unittest." +"TestCase.assertTupleEqual` compare the specified types and explain any " +"differences without necessarily printing their full values; these methods " +"are now used by default when comparing lists and tuples using :meth:" +"`~unittest.TestCase.assertEqual`. More generally, :meth:`~unittest.TestCase." +"assertSequenceEqual` compares two sequences and can optionally check whether " +"both sequences are of a particular type." msgstr "" -#: ../../whatsnew/2.7.rst:1968 msgid "" ":meth:`~unittest.TestCase.assertDictEqual` compares two dictionaries and " "reports the differences; it's now used by default when you compare two " @@ -2769,53 +2397,45 @@ msgid "" "*first* are found in *second*." msgstr "" -#: ../../whatsnew/2.7.rst:1973 msgid "" -":meth:`~unittest.TestCase.assertAlmostEqual` " -"and :meth:`~unittest.TestCase.assertNotAlmostEqual` test whether *first* and " -"*second* are approximately equal. This method can either round their " -"difference to an optionally specified number of *places* (the default is 7) " -"and compare it to zero, or require the difference to be smaller than a " -"supplied *delta* value." +":meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase." +"assertNotAlmostEqual` test whether *first* and *second* are approximately " +"equal. This method can either round their difference to an optionally " +"specified number of *places* (the default is 7) and compare it to zero, or " +"require the difference to be smaller than a supplied *delta* value." msgstr "" -#: ../../whatsnew/2.7.rst:1979 msgid "" -":meth:`~unittest.TestLoader.loadTestsFromName` properly honors " -"the :attr:`~unittest.TestLoader.suiteClass` attribute of " -"the :class:`~unittest.TestLoader`. (Fixed by Mark Roddy; :issue:`6866`.)" +":meth:`~unittest.TestLoader.loadTestsFromName` properly honors the :attr:" +"`~unittest.TestLoader.suiteClass` attribute of the :class:`~unittest." +"TestLoader`. (Fixed by Mark Roddy; :issue:`6866`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1983 msgid "" "A new hook lets you extend the :meth:`~unittest.TestCase.assertEqual` method " -"to handle new data types. " -"The :meth:`~unittest.TestCase.addTypeEqualityFunc` method takes a type " -"object and a function. The function will be used when both of the objects " -"being compared are of the specified type. This function should compare the " -"two objects and raise an exception if they don't match; it's a good idea for " -"the function to provide additional information about why the two objects " -"aren't matching, much as the new sequence comparison methods do." +"to handle new data types. The :meth:`~unittest.TestCase." +"addTypeEqualityFunc` method takes a type object and a function. The function " +"will be used when both of the objects being compared are of the specified " +"type. This function should compare the two objects and raise an exception " +"if they don't match; it's a good idea for the function to provide additional " +"information about why the two objects aren't matching, much as the new " +"sequence comparison methods do." msgstr "" -#: ../../whatsnew/2.7.rst:1992 msgid "" -":func:`unittest.main` now takes an optional ``exit`` argument. If " -"false, :func:`~unittest.main` doesn't call :func:`sys.exit`, " -"allowing :func:`~unittest.main` to be used from the interactive interpreter. " -"(Contributed by J. Pablo Fernández; :issue:`3379`.)" +":func:`unittest.main` now takes an optional ``exit`` argument. If false, :" +"func:`~unittest.main` doesn't call :func:`sys.exit`, allowing :func:" +"`~unittest.main` to be used from the interactive interpreter. (Contributed " +"by J. Pablo Fernández; :issue:`3379`.)" msgstr "" -#: ../../whatsnew/2.7.rst:1997 msgid "" -":class:`~unittest.TestResult` has " -"new :meth:`~unittest.TestResult.startTestRun` " -"and :meth:`~unittest.TestResult.stopTestRun` methods that are called " -"immediately before and after a test run. (Contributed by Robert " +":class:`~unittest.TestResult` has new :meth:`~unittest.TestResult." +"startTestRun` and :meth:`~unittest.TestResult.stopTestRun` methods that are " +"called immediately before and after a test run. (Contributed by Robert " "Collins; :issue:`5728`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2001 msgid "" "With all these changes, the :file:`unittest.py` was becoming awkwardly " "large, so the module was turned into a package and the code split into " @@ -2823,83 +2443,71 @@ msgid "" "imported or used." msgstr "" -#: ../../whatsnew/2.7.rst:2008 msgid "" "https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/" "python/articles/unittest2.shtml" msgstr "" -#: ../../whatsnew/2.7.rst:2009 msgid "" "Describes the new features, how to use them, and the rationale for various " "design decisions. (By Michael Foord.)" msgstr "" -#: ../../whatsnew/2.7.rst:2015 msgid "Updated module: ElementTree 1.3" msgstr "" -#: ../../whatsnew/2.7.rst:2017 msgid "" "The version of the ElementTree library included with Python was updated to " "version 1.3. Some of the new features are:" msgstr "" -#: ../../whatsnew/2.7.rst:2020 msgid "" "The various parsing functions now take a *parser* keyword argument giving " "an :class:`~xml.etree.ElementTree.XMLParser` instance that will be used. " "This makes it possible to override the file's internal encoding::" msgstr "" -#: ../../whatsnew/2.7.rst:2024 msgid "" "p = ET.XMLParser(encoding='utf-8')\n" "t = ET.XML(\"\"\"\"\"\", parser=p)" msgstr "" -#: ../../whatsnew/2.7.rst:2027 msgid "" "Errors in parsing XML now raise a :exc:`~xml.etree.ElementTree.ParseError` " "exception, whose instances have a :attr:`!position` attribute containing a " "(*line*, *column*) tuple giving the location of the problem." msgstr "" -#: ../../whatsnew/2.7.rst:2031 msgid "" "ElementTree's code for converting trees to a string has been significantly " -"reworked, making it roughly twice as fast in many cases. " -"The :meth:`ElementTree.write() ` " -"and :meth:`Element.write` methods now have a *method* parameter that can be " +"reworked, making it roughly twice as fast in many cases. The :meth:" +"`ElementTree.write() ` and :meth:`!" +"Element.write` methods now have a *method* parameter that can be " "\"xml\" (the default), \"html\", or \"text\". HTML mode will output empty " "elements as ```` instead of ````, and text mode will " -"skip over elements and only output the text chunks. If you set " -"the :attr:`~xml.etree.ElementTree.Element.tag` attribute of an element to " -"``None`` but leave its children in place, the element will be omitted when " -"the tree is written out, so you don't need to do more extensive " -"rearrangement to remove a single element." +"skip over elements and only output the text chunks. If you set the :attr:" +"`~xml.etree.ElementTree.Element.tag` attribute of an element to ``None`` but " +"leave its children in place, the element will be omitted when the tree is " +"written out, so you don't need to do more extensive rearrangement to remove " +"a single element." msgstr "" -#: ../../whatsnew/2.7.rst:2044 msgid "" "Namespace handling has also been improved. All ``xmlns:`` " "declarations are now output on the root element, not scattered throughout " "the resulting XML. You can set the default namespace for a tree by setting " -"the :attr:`default_namespace` attribute and can register new prefixes " -"with :meth:`~xml.etree.ElementTree.register_namespace`. In XML mode, you " -"can use the true/false *xml_declaration* parameter to suppress the XML " -"declaration." +"the :attr:`!default_namespace` attribute and can register new prefixes with :" +"meth:`~xml.etree.ElementTree.register_namespace`. In XML mode, you can use " +"the true/false *xml_declaration* parameter to suppress the XML declaration." msgstr "" -#: ../../whatsnew/2.7.rst:2052 msgid "" -"New :class:`~xml.etree.ElementTree.Element` " -"method: :meth:`~xml.etree.ElementTree.Element.extend` appends the items from " -"a sequence to the element's children. Elements themselves behave like " -"sequences, so it's easy to move children from one element to another::" +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.extend` appends the items from a sequence to the " +"element's children. Elements themselves behave like sequences, so it's easy " +"to move children from one element to another::" msgstr "" -#: ../../whatsnew/2.7.rst:2058 msgid "" "from xml.etree import ElementTree as ET\n" "\n" @@ -2913,24 +2521,21 @@ msgid "" "print ET.tostring(new)" msgstr "" -#: ../../whatsnew/2.7.rst:2069 msgid "" -"New :class:`~xml.etree.ElementTree.Element` " -"method: :meth:`~xml.etree.ElementTree.Element.iter` yields the children of " -"the element as a generator. It's also possible to write ``for child in " -"elem:`` to loop over an element's children. The existing method :meth:`!" -"getiterator` is now deprecated, as is :meth:`!getchildren` which constructs " -"and returns a list of children." +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.iter` yields the children of the element as a " +"generator. It's also possible to write ``for child in elem:`` to loop over " +"an element's children. The existing method :meth:`!getiterator` is now " +"deprecated, as is :meth:`!getchildren` which constructs and returns a list " +"of children." msgstr "" -#: ../../whatsnew/2.7.rst:2076 msgid "" -"New :class:`~xml.etree.ElementTree.Element` " -"method: :meth:`~xml.etree.ElementTree.Element.itertext` yields all chunks of " -"text that are descendants of the element. For example::" +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.itertext` yields all chunks of text that are descendants " +"of the element. For example::" msgstr "" -#: ../../whatsnew/2.7.rst:2080 msgid "" "t = ET.XML(\"\"\"\n" " 1 2 3\n" @@ -2940,7 +2545,6 @@ msgid "" "print list(t.itertext())" msgstr "" -#: ../../whatsnew/2.7.rst:2087 msgid "" "Deprecated: using an element as a Boolean (i.e., ``if elem:``) would return " "true if the element had any children, or false if there were no children. " @@ -2950,24 +2554,20 @@ msgid "" "number of children, or ``elem is not None``." msgstr "" -#: ../../whatsnew/2.7.rst:2095 msgid "" "Fredrik Lundh develops ElementTree and produced the 1.3 version; you can " -"read his article describing 1.3 at https://web.archive.org/web/" -"20200703234532/http://effbot.org/zone/elementtree-13-intro.htm. Florent " +"read his article describing 1.3 at https://web.archive.org/" +"web/20200703234532/http://effbot.org/zone/elementtree-13-intro.htm. Florent " "Xicluna updated the version included with Python, after discussions on " "python-dev and in :issue:`6472`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2105 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/2.7.rst:2107 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/2.7.rst:2109 msgid "" "The latest release of the GNU Debugger, GDB 7, can be `scripted using Python " "` module to use the system " -"Expat library. (Contributed by Arfrever Frehtes Taifersar " -"Arahesis; :issue:`7609`.)" +"Expat library. (Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:" +"`7609`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2249 msgid "" "New configure option: the :option:`!--with-valgrind` option will now disable " "the pymalloc allocator, which is difficult for the Valgrind memory-error " "detector to analyze correctly. Valgrind will therefore be better at " -"detecting memory leaks and overruns. (Contributed by James " -"Henstridge; :issue:`2422`.)" +"detecting memory leaks and overruns. (Contributed by James Henstridge; :" +"issue:`2422`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2256 msgid "" "New configure option: you can now supply an empty string to :option:`!--with-" "dbmliborder=` in order to disable all of the various DBM modules. (Added by " "Arfrever Frehtes Taifersar Arahesis; :issue:`6491`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2261 msgid "" "The :program:`configure` script now checks for floating-point rounding bugs " -"on certain 32-bit Intel chips and defines a :c:macro:`X87_DOUBLE_ROUNDING` " +"on certain 32-bit Intel chips and defines a :c:macro:`!X87_DOUBLE_ROUNDING` " "preprocessor definition. No code currently uses this definition, but it's " -"available if anyone wishes to use it. (Added by Mark " -"Dickinson; :issue:`2937`.)" +"available if anyone wishes to use it. (Added by Mark Dickinson; :issue:" +"`2937`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2267 msgid "" -":program:`configure` also now sets a :envvar:`LDCXXSHARED` Makefile variable " -"for supporting C++ linking. (Contributed by Arfrever Frehtes Taifersar " -"Arahesis; :issue:`1222585`.)" +":program:`configure` also now sets a :envvar:`!LDCXXSHARED` Makefile " +"variable for supporting C++ linking. (Contributed by Arfrever Frehtes " +"Taifersar Arahesis; :issue:`1222585`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2271 msgid "" "The build process now creates the necessary files for pkg-config support. " "(Contributed by Clinton Roy; :issue:`3585`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2274 msgid "" "The build process now supports Subversion 1.7. (Contributed by Arfrever " "Frehtes Taifersar Arahesis; :issue:`6094`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2281 msgid "Capsules" msgstr "" -#: ../../whatsnew/2.7.rst:2283 msgid "" "Python 3.1 adds a new C datatype, :c:type:`PyCapsule`, for providing a C API " "to an extension module. A capsule is essentially the holder of a C ``void " -"*`` pointer, and is made available as a module attribute; for example, " -"the :mod:`socket` module's API is exposed as ``socket.CAPI``, " -"and :mod:`unicodedata` exposes ``ucnhash_CAPI``. Other extensions can " -"import the module, access its dictionary to get the capsule object, and then " -"get the ``void *`` pointer, which will usually point to an array of pointers " -"to the module's various API functions." +"*`` pointer, and is made available as a module attribute; for example, the :" +"mod:`socket` module's API is exposed as ``socket.CAPI``, and :mod:" +"`unicodedata` exposes ``ucnhash_CAPI``. Other extensions can import the " +"module, access its dictionary to get the capsule object, and then get the " +"``void *`` pointer, which will usually point to an array of pointers to the " +"module's various API functions." msgstr "" -#: ../../whatsnew/2.7.rst:2292 msgid "" "There is an existing data type already used for this, :c:type:`!PyCObject`, " "but it doesn't provide type safety. Evil code written in pure Python could " @@ -3223,7 +2793,6 @@ msgid "" "name:" msgstr "" -#: ../../whatsnew/2.7.rst:2299 msgid "" "void *vtable;\n" "\n" @@ -3235,7 +2804,6 @@ msgid "" "vtable = PyCapsule_GetPointer(capsule, \"mymodule.CAPI\");" msgstr "" -#: ../../whatsnew/2.7.rst:2310 msgid "" "You are assured that ``vtable`` points to whatever you're expecting. If a " "different capsule was passed in, :c:func:`PyCapsule_IsValid` would detect " @@ -3243,88 +2811,74 @@ msgid "" "more information on using these objects." msgstr "" -#: ../../whatsnew/2.7.rst:2315 msgid "" "Python 2.7 now uses capsules internally to provide various extension-module " "APIs, but the :c:func:`!PyCObject_AsVoidPtr` was modified to handle " "capsules, preserving compile-time compatibility with the :c:type:`!" -"PyCObject` interface. Use of :c:func:`!PyCObject_AsVoidPtr` will signal " -"a :exc:`PendingDeprecationWarning`, which is silent by default." +"PyCObject` interface. Use of :c:func:`!PyCObject_AsVoidPtr` will signal a :" +"exc:`PendingDeprecationWarning`, which is silent by default." msgstr "" -#: ../../whatsnew/2.7.rst:2322 msgid "" "Implemented in Python 3.1 and backported to 2.7 by Larry Hastings; discussed " "in :issue:`5630`." msgstr "" -#: ../../whatsnew/2.7.rst:2329 msgid "Port-Specific Changes: Windows" msgstr "" -#: ../../whatsnew/2.7.rst:2331 msgid "" -"The :mod:`msvcrt` module now contains some constants from " -"the :file:`crtassem.h` header " -"file: :data:`~msvcrt.CRT_ASSEMBLY_VERSION`, :data:`~msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN`, " -"and :data:`~msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX`. (Contributed by David " -"Cournapeau; :issue:`4365`.)" +"The :mod:`msvcrt` module now contains some constants from the :file:" +"`crtassem.h` header file: :data:`~msvcrt.CRT_ASSEMBLY_VERSION`, :data:" +"`~msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN`, and :data:`~msvcrt." +"LIBRARIES_ASSEMBLY_NAME_PREFIX`. (Contributed by David Cournapeau; :issue:" +"`4365`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2338 msgid "" "The :mod:`_winreg ` module for accessing the registry now implements " "the :func:`~winreg.CreateKeyEx` and :func:`~winreg.DeleteKeyEx` functions, " "extended versions of previously supported functions that take several extra " -"arguments. " -"The :func:`~winreg.DisableReflectionKey`, :func:`~winreg.EnableReflectionKey`, " -"and :func:`~winreg.QueryReflectionKey` were also tested and documented. " -"(Implemented by Brian Curtin: :issue:`7347`.)" +"arguments. The :func:`~winreg.DisableReflectionKey`, :func:`~winreg." +"EnableReflectionKey`, and :func:`~winreg.QueryReflectionKey` were also " +"tested and documented. (Implemented by Brian Curtin: :issue:`7347`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2346 msgid "" "The new :c:func:`!_beginthreadex` API is used to start threads, and the " "native thread-local storage functions are now used. (Contributed by Kristján " "Valur Jónsson; :issue:`3582`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2350 msgid "" "The :func:`os.kill` function now works on Windows. The signal value can be " -"the " -"constants :const:`~signal.CTRL_C_EVENT`, :const:`~signal.CTRL_BREAK_EVENT`, " -"or any integer. The first two constants will send :kbd:`Control-C` " -"and :kbd:`Control-Break` keystroke events to subprocesses; any other value " -"will use the :c:func:`!TerminateProcess` API. (Contributed by Miki " -"Tebeka; :issue:`1220212`.)" +"the constants :const:`~signal.CTRL_C_EVENT`, :const:`~signal." +"CTRL_BREAK_EVENT`, or any integer. The first two constants will send :kbd:" +"`Control-C` and :kbd:`Control-Break` keystroke events to subprocesses; any " +"other value will use the :c:func:`!TerminateProcess` API. (Contributed by " +"Miki Tebeka; :issue:`1220212`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2357 msgid "" "The :func:`os.listdir` function now correctly fails for an empty path. " "(Fixed by Hirokazu Yamamoto; :issue:`5913`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2360 msgid "" "The :mod:`mimetypes` module will now read the MIME database from the Windows " "registry when initializing. (Patch by Gabriel Genellina; :issue:`4969`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2367 msgid "Port-Specific Changes: Mac OS X" msgstr "" -#: ../../whatsnew/2.7.rst:2369 msgid "" -"The path ``/Library/Python/2.7/site-packages`` is now appended to " -"``sys.path``, in order to share added packages between the system " -"installation and a user-installed copy of the same version. (Changed by " -"Ronald Oussoren; :issue:`4865`.)" +"The path ``/Library/Python/2.7/site-packages`` is now appended to ``sys." +"path``, in order to share added packages between the system installation and " +"a user-installed copy of the same version. (Changed by Ronald Oussoren; :" +"issue:`4865`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2376 msgid "" "As of 2.7.13, this change was removed. ``/Library/Python/2.7/site-" "packages``, the site-packages directory used by the Apple-supplied system " @@ -3336,24 +2890,19 @@ msgid "" "Pythons. (:issue:`28440`)" msgstr "" -#: ../../whatsnew/2.7.rst:2387 msgid "Port-Specific Changes: FreeBSD" msgstr "" -#: ../../whatsnew/2.7.rst:2389 msgid "" -"FreeBSD 7.1's :const:`!SO_SETFIB` constant, used with " -"the :func:`~socket.socket` " -"methods :func:`~socket.socket.getsockopt`/:func:`~socket.socket.setsockopt` " -"to select an alternate routing table, is now available in the :mod:`socket` " -"module. (Added by Kyle VanderBeek; :issue:`8235`.)" +"FreeBSD 7.1's :const:`!SO_SETFIB` constant, used with the :func:`~socket." +"socket` methods :func:`~socket.socket.getsockopt`/:func:`~socket.socket." +"setsockopt` to select an alternate routing table, is now available in the :" +"mod:`socket` module. (Added by Kyle VanderBeek; :issue:`8235`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2395 msgid "Other Changes and Fixes" msgstr "" -#: ../../whatsnew/2.7.rst:2397 msgid "" "Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to " "the :file:`Tools` directory. :file:`iobench` measures the speed of the " @@ -3363,13 +2912,11 @@ msgid "" "bandwidth when performing several tasks using a varying number of threads." msgstr "" -#: ../../whatsnew/2.7.rst:2405 msgid "" -"The :file:`Tools/i18n/msgfmt.py` script now understands plural forms " -"in :file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" +"The :file:`Tools/i18n/msgfmt.py` script now understands plural forms in :" +"file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2409 msgid "" "When importing a module from a :file:`.pyc` or :file:`.pyo` file with an " "existing :file:`.py` counterpart, the :attr:`~codeobject.co_filename` " @@ -3379,15 +2926,13 @@ msgid "" "Paul Calderone; :issue:`1180193`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2416 msgid "" "The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch " -"that takes an integer that will be used as the random seed for " -"the :option:`!-r` option that executes tests in random order. The :option:`!-" -"r` option also reports the seed that was used (Added by Collin Winter.)" +"that takes an integer that will be used as the random seed for the :option:" +"`!-r` option that executes tests in random order. The :option:`!-r` option " +"also reports the seed that was used (Added by Collin Winter.)" msgstr "" -#: ../../whatsnew/2.7.rst:2422 msgid "" "Another :file:`regrtest.py` switch is :option:`!-j`, which takes an integer " "specifying how many tests run in parallel. This allows reducing the total " @@ -3398,39 +2943,33 @@ msgid "" "they fail. (Added by Antoine Pitrou; :issue:`7312`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2431 msgid "" "When executed as a script, the :file:`py_compile.py` module now accepts " "``'-'`` as an argument, which will read standard input for the list of " "filenames to be compiled. (Contributed by Piotr Ożarowski; :issue:`8233`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2439 msgid "Porting to Python 2.7" msgstr "" -#: ../../whatsnew/2.7.rst:2441 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: ../../whatsnew/2.7.rst:2444 msgid "" "The :func:`range` function processes its arguments more consistently; it " "will now call :meth:`~object.__int__` on non-float, non-integer arguments " "that are supplied to it. (Fixed by Alexander Belopolsky; :issue:`1533`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2449 msgid "" "The string :meth:`format` method changed the default precision used for " "floating-point and complex numbers from 6 decimal places to 12, which " -"matches the precision used by :func:`str`. (Changed by Eric " -"Smith; :issue:`5920`.)" +"matches the precision used by :func:`str`. (Changed by Eric Smith; :issue:" +"`5920`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2454 msgid "" "Because of an optimization for the :keyword:`with` statement, the special " "methods :meth:`~object.__enter__` and :meth:`~object.__exit__` must belong " @@ -3439,36 +2978,31 @@ msgid "" "C extension types. (:issue:`6101`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2460 msgid "" -"Due to a bug in Python 2.6, the *exc_value* parameter " -"to :meth:`~object.__exit__` methods was often the string representation of " -"the exception, not an instance. This was fixed in 2.7, so *exc_value* will " -"be an instance as expected. (Fixed by Florent Xicluna; :issue:`7853`.)" +"Due to a bug in Python 2.6, the *exc_value* parameter to :meth:`~object." +"__exit__` methods was often the string representation of the exception, not " +"an instance. This was fixed in 2.7, so *exc_value* will be an instance as " +"expected. (Fixed by Florent Xicluna; :issue:`7853`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2470 msgid "In the standard library:" msgstr "" -#: ../../whatsnew/2.7.rst:2472 msgid "" "Operations with :class:`~datetime.datetime` instances that resulted in a " -"year falling outside the supported range didn't always " -"raise :exc:`OverflowError`. Such errors are now checked more carefully and " -"will now raise the exception. (Reported by Mark Leander, patch by Anand B. " -"Pillai and Alexander Belopolsky; :issue:`7150`.)" +"year falling outside the supported range didn't always raise :exc:" +"`OverflowError`. Such errors are now checked more carefully and will now " +"raise the exception. (Reported by Mark Leander, patch by Anand B. Pillai and " +"Alexander Belopolsky; :issue:`7150`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2478 msgid "" -"When using :class:`~decimal.Decimal` instances with a " -"string's :meth:`format` method, the default alignment was previously left-" -"alignment. This has been changed to right-alignment, which might change the " -"output of your programs. (Changed by Mark Dickinson; :issue:`6857`.)" +"When using :class:`~decimal.Decimal` instances with a string's :meth:" +"`format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which might change the output of your " +"programs. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2490 msgid "" "The :mod:`xml.etree.ElementTree` library no longer escapes ampersands and " "angle brackets when outputting an XML processing instruction (which looks " @@ -3476,36 +3010,30 @@ msgid "" "````). (Patch by Neil Muller; :issue:`2746`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2496 msgid "" "The :meth:`!readline` method of :class:`~io.StringIO` objects now does " "nothing when a negative length is requested, as other file-like objects do. " "(:issue:`7348`)." msgstr "" -#: ../../whatsnew/2.7.rst:2539 msgid "For C extensions:" msgstr "" -#: ../../whatsnew/2.7.rst:2541 msgid "" "C extensions that use integer format codes with the ``PyArg_Parse*`` family " "of functions will now raise a :exc:`TypeError` exception instead of " "triggering a :exc:`DeprecationWarning` (:issue:`5080`)." msgstr "" -#: ../../whatsnew/2.7.rst:2545 msgid "" -"Use the new :c:func:`PyOS_string_to_double` function instead of the " -"old :c:func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions, " -"which are now deprecated." +"Use the new :c:func:`PyOS_string_to_double` function instead of the old :c:" +"func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions, which " +"are now deprecated." msgstr "" -#: ../../whatsnew/2.7.rst:2549 msgid "For applications that embed Python:" msgstr "" -#: ../../whatsnew/2.7.rst:2551 msgid "" "The :c:func:`!PySys_SetArgvEx` function was added, letting applications " "close a security hole when the existing :c:func:`!PySys_SetArgv` function " @@ -3514,11 +3042,9 @@ msgid "" "PySys_SetArgvEx` with *updatepath* set to false." msgstr "" -#: ../../whatsnew/2.7.rst:2564 msgid "New Features Added to Python 2.7 Maintenance Releases" msgstr "" -#: ../../whatsnew/2.7.rst:2566 msgid "" "New features may be added to Python 2.7 maintenance releases when the " "situation genuinely calls for it. Any such additions must go through the " @@ -3527,38 +3053,32 @@ msgid "" "Python 3, or else by publishing it on the Python Package Index." msgstr "" -#: ../../whatsnew/2.7.rst:2572 msgid "" "In addition to the specific proposals listed below, there is a general " "exemption allowing new ``-3`` warnings to be added in any Python 2.7 " "maintenance release." msgstr "" -#: ../../whatsnew/2.7.rst:2578 msgid "Two new environment variables for debug mode" msgstr "" -#: ../../whatsnew/2.7.rst:2580 msgid "" -"In debug mode, the ``[xxx refs]`` statistic is not written by default, " -"the :envvar:`!PYTHONSHOWREFCOUNT` environment variable now must also be set. " +"In debug mode, the ``[xxx refs]`` statistic is not written by default, the :" +"envvar:`!PYTHONSHOWREFCOUNT` environment variable now must also be set. " "(Contributed by Victor Stinner; :issue:`31733`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2584 msgid "" "When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are " "no longer dumped by default anymore: the :envvar:`!PYTHONSHOWALLOCCOUNT` " "environment variable must now also be set. Moreover, allocation counts are " -"now dumped into stderr, rather than stdout. (Contributed by Victor " -"Stinner; :issue:`31692`.)" +"now dumped into stderr, rather than stdout. (Contributed by Victor Stinner; :" +"issue:`31692`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2593 msgid "PEP 434: IDLE Enhancement Exception for All Branches" msgstr "" -#: ../../whatsnew/2.7.rst:2595 msgid "" ":pep:`434` describes a general exemption for changes made to the IDLE " "development environment shipped along with Python. This exemption makes it " @@ -3566,63 +3086,52 @@ msgid "" "experience across all supported versions of Python 2 and 3." msgstr "" -#: ../../whatsnew/2.7.rst:2600 msgid "" "For details of any IDLE changes, refer to the NEWS file for the specific " "release." msgstr "" -#: ../../whatsnew/2.7.rst:2605 msgid "PEP 466: Network Security Enhancements for Python 2.7" msgstr "" -#: ../../whatsnew/2.7.rst:2607 msgid "" ":pep:`466` describes a number of network security enhancement proposals that " "have been approved for inclusion in Python 2.7 maintenance releases, with " "the first of those changes appearing in the Python 2.7.7 release." msgstr "" -#: ../../whatsnew/2.7.rst:2611 msgid ":pep:`466` related features added in Python 2.7.7:" msgstr "" -#: ../../whatsnew/2.7.rst:2613 msgid "" ":func:`hmac.compare_digest` was backported from Python 3 to make a timing " "attack resistant comparison operation available to Python 2 applications. " "(Contributed by Alex Gaynor; :issue:`21306`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2617 msgid "" "OpenSSL 1.0.1g was upgraded in the official Windows installers published on " "python.org. (Contributed by Zachary Ware; :issue:`21462`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2620 msgid ":pep:`466` related features added in Python 2.7.8:" msgstr "" -#: ../../whatsnew/2.7.rst:2622 msgid "" ":func:`hashlib.pbkdf2_hmac` was backported from Python 3 to make a hashing " "algorithm suitable for secure password storage broadly available to Python 2 " "applications. (Contributed by Alex Gaynor; :issue:`21304`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2626 msgid "" "OpenSSL 1.0.1h was upgraded for the official Windows installers published on " -"python.org. (Contributed by Zachary Ware in :issue:`21671` " -"for :cve:`2014-0224`.)" +"python.org. (Contributed by Zachary Ware in :issue:`21671` for :cve:" +"`2014-0224`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2629 msgid ":pep:`466` related features added in Python 2.7.9:" msgstr "" -#: ../../whatsnew/2.7.rst:2631 msgid "" "Most of Python 3.4's :mod:`ssl` module was backported. This means :mod:`ssl` " "now supports Server Name Indication, TLS1.x settings, access to the platform " @@ -3630,43 +3139,36 @@ msgid "" "(Contributed by Alex Gaynor and David Reid; :issue:`21308`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2636 msgid "" "Refer to the \"Version added: 2.7.9\" notes in the module documentation for " "specific details." msgstr "" -#: ../../whatsnew/2.7.rst:2639 msgid "" ":func:`os.urandom` was changed to cache a file descriptor to ``/dev/" "urandom`` instead of reopening ``/dev/urandom`` on every call. (Contributed " "by Alex Gaynor; :issue:`21305`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2643 msgid "" -":data:`hashlib.algorithms_guaranteed` " -"and :data:`hashlib.algorithms_available` were backported from Python 3 to " -"make it easier for Python 2 applications to select the strongest available " -"hash algorithm. (Contributed by Alex Gaynor in :issue:`21307`)" +":data:`hashlib.algorithms_guaranteed` and :data:`hashlib." +"algorithms_available` were backported from Python 3 to make it easier for " +"Python 2 applications to select the strongest available hash algorithm. " +"(Contributed by Alex Gaynor in :issue:`21307`)" msgstr "" -#: ../../whatsnew/2.7.rst:2650 msgid "PEP 477: Backport ensurepip (PEP 453) to Python 2.7" msgstr "" -#: ../../whatsnew/2.7.rst:2652 msgid "" ":pep:`477` approves the inclusion of the :pep:`453` ensurepip module and the " "improved documentation that was enabled by it in the Python 2.7 maintenance " "releases, appearing first in the Python 2.7.9 release." msgstr "" -#: ../../whatsnew/2.7.rst:2658 msgid "Bootstrapping pip By Default" msgstr "" -#: ../../whatsnew/2.7.rst:2660 msgid "" "The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " "cross-platform mechanism to bootstrap the pip installer into Python " @@ -3676,14 +3178,12 @@ msgid "" "the release candidate." msgstr "" -#: ../../whatsnew/2.7.rst:2667 msgid "" "By default, the commands ``pip``, ``pipX`` and ``pipX.Y`` will be installed " "on all platforms (where X.Y stands for the version of the Python " "installation), along with the ``pip`` Python package and its dependencies." msgstr "" -#: ../../whatsnew/2.7.rst:2671 msgid "" "For CPython :ref:`source builds on POSIX systems `, " "the ``make install`` and ``make altinstall`` commands do not bootstrap " @@ -3691,7 +3191,6 @@ msgid "" "options, and overridden through Makefile options." msgstr "" -#: ../../whatsnew/2.7.rst:2676 msgid "" "On Windows and Mac OS X, the CPython installers now default to installing " "``pip`` along with CPython itself (users may opt out of installing it during " @@ -3701,7 +3200,6 @@ msgid "" "Windows as ``py -m pip``." msgstr "" -#: ../../whatsnew/2.7.rst:2683 msgid "" "As :pep:`discussed in the PEP <0477#disabling-ensurepip-by-downstream-" "distributors>`, platform packagers may choose not to install these commands " @@ -3710,11 +3208,9 @@ msgid "" "package manager)." msgstr "" -#: ../../whatsnew/2.7.rst:2690 msgid "Documentation Changes" msgstr "" -#: ../../whatsnew/2.7.rst:2692 msgid "" "As part of this change, the :ref:`installing-index` and :ref:`distributing-" "index` sections of the documentation have been completely redesigned as " @@ -3724,45 +3220,38 @@ msgid "" "of the individual projects." msgstr "" -#: ../../whatsnew/2.7.rst:2700 msgid "" "However, as this migration is currently still incomplete, the legacy " -"versions of those guides remaining available as :ref:`install-index` " -"and :ref:`setuptools-index`." +"versions of those guides remaining available as :ref:`install-index` and :" +"ref:`setuptools-index`." msgstr "" -#: ../../whatsnew/2.7.rst:2706 msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" msgstr "" -#: ../../whatsnew/2.7.rst:2707 msgid "" "PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " "Nick Coghlan, Martin von Löwis and Ned Deily." msgstr "" -#: ../../whatsnew/2.7.rst:2711 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" -#: ../../whatsnew/2.7.rst:2713 msgid "" -":pep:`476` updated :mod:`httplib ` and modules which use it, such " -"as :mod:`urllib2 ` and :mod:`xmlrpclib `, to " -"now verify that the server presents a certificate which is signed by a " +":pep:`476` updated :mod:`httplib ` and modules which use it, such as :" +"mod:`urllib2 ` and :mod:`xmlrpclib `, to now " +"verify that the server presents a certificate which is signed by a " "Certificate Authority in the platform trust store and whose hostname matches " "the hostname being requested by default, significantly improving security " "for many applications. This change was made in the Python 2.7.9 release." msgstr "" -#: ../../whatsnew/2.7.rst:2721 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" msgstr "" -#: ../../whatsnew/2.7.rst:2724 msgid "" "import urllib2\n" "import ssl\n" @@ -3777,11 +3266,9 @@ msgid "" "urllib2.urlopen(\"https://invalid-cert\", context=context)" msgstr "" -#: ../../whatsnew/2.7.rst:2738 msgid "PEP 493: HTTPS verification migration tools for Python 2.7" msgstr "" -#: ../../whatsnew/2.7.rst:2740 msgid "" ":pep:`493` provides additional migration tools to support a more incremental " "infrastructure upgrade process for environments containing applications and " @@ -3790,14 +3277,12 @@ msgid "" "were made in the Python 2.7.12 release." msgstr "" -#: ../../whatsnew/2.7.rst:2746 msgid "" "These tools are intended for use in cases where affected applications and " "services can't be modified to explicitly pass a more permissive SSL context " "when establishing the connection." msgstr "" -#: ../../whatsnew/2.7.rst:2750 msgid "" "For applications and services which can't be modified at all, the new " "``PYTHONHTTPSVERIFY`` environment variable may be set to ``0`` to revert an " @@ -3805,18 +3290,15 @@ msgid "" "2.7.8 and earlier." msgstr "" -#: ../../whatsnew/2.7.rst:2755 msgid "" "For cases where the connection establishment code can't be modified, but the " "overall application can be, the new :func:`!ssl._https_verify_certificates` " "function can be used to adjust the default behaviour at runtime." msgstr "" -#: ../../whatsnew/2.7.rst:2761 msgid "New ``make regen-all`` build target" msgstr "" -#: ../../whatsnew/2.7.rst:2763 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3824,43 +3306,35 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: ../../whatsnew/2.7.rst:2768 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" -#: ../../whatsnew/2.7.rst:2772 msgid "" -"More selective regeneration targets are also defined - " -"see :source:`Makefile.pre.in` for details." +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." msgstr "" -#: ../../whatsnew/2.7.rst:2775 ../../whatsnew/2.7.rst:2788 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: ../../whatsnew/2.7.rst:2781 msgid "Removal of ``make touch`` build target" msgstr "" -#: ../../whatsnew/2.7.rst:2783 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: ../../whatsnew/2.7.rst:2786 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" -#: ../../whatsnew/2.7.rst:2797 msgid "Acknowledgements" msgstr "" -#: ../../whatsnew/2.7.rst:2799 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index c4bdf1c..6ed480c 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,19 +18,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.0.rst:3 msgid "What's New In Python 3.0" msgstr "" -#: ../../whatsnew/3.0.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/3.0.rst:7 msgid "Guido van Rossum" msgstr "" -#: ../../whatsnew/3.0.rst:54 msgid "" "This article explains the new features in Python 3.0, compared to 2.6. " "Python 3.0, also known as \"Python 3000\" or \"Py3K\", is the first ever " @@ -42,7 +38,6 @@ msgid "" "warts, and removing a lot of old cruft." msgstr "" -#: ../../whatsnew/3.0.rst:63 msgid "" "This article doesn't attempt to provide a complete specification of all new " "features, but instead tries to give a convenient overview. For full details, " @@ -53,7 +48,6 @@ msgid "" "are not kept up-to-date once a feature has been fully implemented." msgstr "" -#: ../../whatsnew/3.0.rst:72 msgid "" "Due to time constraints this document is not as complete as it should have " "been. As always for a new release, the ``Misc/NEWS`` file in the source " @@ -61,28 +55,23 @@ msgid "" "thing that was changed." msgstr "" -#: ../../whatsnew/3.0.rst:89 msgid "Common Stumbling Blocks" msgstr "" -#: ../../whatsnew/3.0.rst:91 msgid "" "This section lists those few changes that are most likely to trip you up if " "you're used to Python 2.5." msgstr "" -#: ../../whatsnew/3.0.rst:95 msgid "Print Is A Function" msgstr "" -#: ../../whatsnew/3.0.rst:97 msgid "" "The ``print`` statement has been replaced with a :func:`print` function, " "with keyword arguments to replace most of the special syntax of the old " "``print`` statement (:pep:`3105`). Examples::" msgstr "" -#: ../../whatsnew/3.0.rst:101 msgid "" "Old: print \"The answer is\", 2*2\n" "New: print(\"The answer is\", 2*2)\n" @@ -100,27 +89,21 @@ msgid "" "New: print((x, y)) # Not the same as print(x, y)!" msgstr "" -#: ../../whatsnew/3.0.rst:116 msgid "You can also customize the separator between items, e.g.::" msgstr "" -#: ../../whatsnew/3.0.rst:118 msgid "print(\"There are <\", 2**32, \"> possibilities!\", sep=\"\")" msgstr "" -#: ../../whatsnew/3.0.rst:120 msgid "which produces:" msgstr "" -#: ../../whatsnew/3.0.rst:122 msgid "There are <4294967296> possibilities!" msgstr "" -#: ../../whatsnew/3.0.rst:126 msgid "Note:" msgstr "" -#: ../../whatsnew/3.0.rst:128 msgid "" "The :func:`print` function doesn't support the \"softspace\" feature of the " "old ``print`` statement. For example, in Python 2.x, ``print \"A\\n\", " @@ -128,81 +111,68 @@ msgid "" "\"B\")`` writes ``\"A\\n B\\n\"``." msgstr "" -#: ../../whatsnew/3.0.rst:133 msgid "" "Initially, you'll be finding yourself typing the old ``print x`` a lot in " "interactive mode. Time to retrain your fingers to type ``print(x)`` instead!" msgstr "" -#: ../../whatsnew/3.0.rst:137 msgid "" "When using the ``2to3`` source-to-source conversion tool, all ``print`` " "statements are automatically converted to :func:`print` function calls, so " "this is mostly a non-issue for larger projects." msgstr "" -#: ../../whatsnew/3.0.rst:143 msgid "Views And Iterators Instead Of Lists" msgstr "" -#: ../../whatsnew/3.0.rst:145 msgid "Some well-known APIs no longer return lists:" msgstr "" -#: ../../whatsnew/3.0.rst:147 msgid "" -":class:`dict` methods :meth:`dict.keys`, :meth:`dict.items` " -"and :meth:`dict.values` return \"views\" instead of lists. For example, " -"this no longer works: ``k = d.keys(); k.sort()``. Use ``k = sorted(d)`` " -"instead (this works in Python 2.5 too and is just as efficient)." +":class:`dict` methods :meth:`dict.keys`, :meth:`dict.items` and :meth:`dict." +"values` return \"views\" instead of lists. For example, this no longer " +"works: ``k = d.keys(); k.sort()``. Use ``k = sorted(d)`` instead (this " +"works in Python 2.5 too and is just as efficient)." msgstr "" -#: ../../whatsnew/3.0.rst:153 msgid "" -"Also, the :meth:`!dict.iterkeys`, :meth:`!dict.iteritems` and :meth:`!" -"dict.itervalues` methods are no longer supported." +"Also, the :meth:`!dict.iterkeys`, :meth:`!dict.iteritems` and :meth:`!dict." +"itervalues` methods are no longer supported." msgstr "" -#: ../../whatsnew/3.0.rst:156 msgid "" ":func:`map` and :func:`filter` return iterators. If you really need a list " -"and the input sequences are all of equal length, a quick fix is to " -"wrap :func:`map` in :func:`list`, e.g. ``list(map(...))``, but a better fix " -"is often to use a list comprehension (especially when the original code " -"uses :keyword:`lambda`), or rewriting the code so it doesn't need a list at " -"all. Particularly tricky is :func:`map` invoked for the side effects of the " +"and the input sequences are all of equal length, a quick fix is to wrap :" +"func:`map` in :func:`list`, e.g. ``list(map(...))``, but a better fix is " +"often to use a list comprehension (especially when the original code uses :" +"keyword:`lambda`), or rewriting the code so it doesn't need a list at all. " +"Particularly tricky is :func:`map` invoked for the side effects of the " "function; the correct transformation is to use a regular :keyword:`for` loop " "(since creating a list would just be wasteful)." msgstr "" -#: ../../whatsnew/3.0.rst:167 msgid "" "If the input sequences are not of equal length, :func:`map` will stop at the " -"termination of the shortest of the sequences. For full compatibility " -"with :func:`map` from Python 2.x, also wrap the sequences " -"in :func:`itertools.zip_longest`, e.g. ``map(func, *sequences)`` becomes " -"``list(map(func, itertools.zip_longest(*sequences)))``." +"termination of the shortest of the sequences. For full compatibility with :" +"func:`map` from Python 2.x, also wrap the sequences in :func:`itertools." +"zip_longest`, e.g. ``map(func, *sequences)`` becomes ``list(map(func, " +"itertools.zip_longest(*sequences)))``." msgstr "" -#: ../../whatsnew/3.0.rst:173 msgid "" ":func:`range` now behaves like :func:`!xrange` used to behave, except it " "works with values of arbitrary size. The latter no longer exists." msgstr "" -#: ../../whatsnew/3.0.rst:177 msgid ":func:`zip` now returns an iterator." msgstr "" -#: ../../whatsnew/3.0.rst:180 msgid "Ordering Comparisons" msgstr "" -#: ../../whatsnew/3.0.rst:182 msgid "Python 3.0 has simplified the rules for ordering comparisons:" msgstr "" -#: ../../whatsnew/3.0.rst:184 msgid "" "The ordering comparison operators (``<``, ``<=``, ``>=``, ``>``) raise a " "TypeError exception when the operands don't have a meaningful natural " @@ -214,14 +184,12 @@ msgid "" "objects of different incomparable types always compare unequal to each other." msgstr "" -#: ../../whatsnew/3.0.rst:195 msgid "" ":meth:`sorted` and :meth:`list.sort` no longer accept the *cmp* argument " "providing a comparison function. Use the *key* argument instead. N.B. the " "*key* and *reverse* arguments are now \"keyword-only\"." msgstr "" -#: ../../whatsnew/3.0.rst:200 msgid "" "The :func:`!cmp` function should be treated as gone, and the :meth:`!" "__cmp__` special method is no longer supported. Use :meth:`~object.__lt__` " @@ -231,105 +199,91 @@ msgid "" "equivalent for ``cmp(a, b)``.)" msgstr "" -#: ../../whatsnew/3.0.rst:207 msgid "Integers" msgstr "" -#: ../../whatsnew/3.0.rst:209 msgid "" ":pep:`237`: Essentially, :class:`!long` renamed to :class:`int`. That is, " "there is only one built-in integral type, named :class:`int`; but it behaves " "mostly like the old :class:`!long` type." msgstr "" -#: ../../whatsnew/3.0.rst:213 msgid "" ":pep:`238`: An expression like ``1/2`` returns a float. Use ``1//2`` to get " "the truncating behavior. (The latter syntax has existed for years, at least " "since Python 2.2.)" msgstr "" -#: ../../whatsnew/3.0.rst:217 msgid "" "The :data:`!sys.maxint` constant was removed, since there is no longer a " "limit to the value of integers. However, :data:`sys.maxsize` can be used as " "an integer larger than any practical list or string index. It conforms to " -"the implementation's \"natural\" integer size and is typically the same " -"as :data:`!sys.maxint` in previous releases on the same platform (assuming " -"the same build options)." +"the implementation's \"natural\" integer size and is typically the same as :" +"data:`!sys.maxint` in previous releases on the same platform (assuming the " +"same build options)." msgstr "" -#: ../../whatsnew/3.0.rst:224 msgid "" "The :func:`repr` of a long integer doesn't include the trailing ``L`` " "anymore, so code that unconditionally strips that character will chop off " "the last digit instead. (Use :func:`str` instead.)" msgstr "" -#: ../../whatsnew/3.0.rst:228 msgid "" "Octal literals are no longer of the form ``0720``; use ``0o720`` instead." msgstr "" -#: ../../whatsnew/3.0.rst:232 msgid "Text Vs. Data Instead Of Unicode Vs. 8-bit" msgstr "" -#: ../../whatsnew/3.0.rst:234 msgid "" "Everything you thought you knew about binary data and Unicode has changed." msgstr "" -#: ../../whatsnew/3.0.rst:237 msgid "" "Python 3.0 uses the concepts of *text* and (binary) *data* instead of " "Unicode strings and 8-bit strings. All text is Unicode; however *encoded* " -"Unicode is represented as binary data. The type used to hold text " -"is :class:`str`, the type used to hold data is :class:`bytes`. The biggest " -"difference with the 2.x situation is that any attempt to mix text and data " -"in Python 3.0 raises :exc:`TypeError`, whereas if you were to mix Unicode " -"and 8-bit strings in Python 2.x, it would work if the 8-bit string happened " -"to contain only 7-bit (ASCII) bytes, but you would " -"get :exc:`UnicodeDecodeError` if it contained non-ASCII values. This value-" -"specific behavior has caused numerous sad faces over the years." +"Unicode is represented as binary data. The type used to hold text is :class:" +"`str`, the type used to hold data is :class:`bytes`. The biggest difference " +"with the 2.x situation is that any attempt to mix text and data in Python " +"3.0 raises :exc:`TypeError`, whereas if you were to mix Unicode and 8-bit " +"strings in Python 2.x, it would work if the 8-bit string happened to contain " +"only 7-bit (ASCII) bytes, but you would get :exc:`UnicodeDecodeError` if it " +"contained non-ASCII values. This value-specific behavior has caused " +"numerous sad faces over the years." msgstr "" -#: ../../whatsnew/3.0.rst:250 msgid "" "As a consequence of this change in philosophy, pretty much all code that " "uses Unicode, encodings or binary data most likely has to change. The " "change is for the better, as in the 2.x world there were numerous bugs " "having to do with mixing encoded and unencoded text. To be prepared in " -"Python 2.x, start using :class:`!unicode` for all unencoded text, " -"and :class:`str` for binary or encoded data only. Then the ``2to3`` tool " -"will do most of the work for you." +"Python 2.x, start using :class:`!unicode` for all unencoded text, and :class:" +"`str` for binary or encoded data only. Then the ``2to3`` tool will do most " +"of the work for you." msgstr "" -#: ../../whatsnew/3.0.rst:258 msgid "" "You can no longer use ``u\"...\"`` literals for Unicode text. However, you " "must use ``b\"...\"`` literals for binary data." msgstr "" -#: ../../whatsnew/3.0.rst:261 msgid "" "As the :class:`str` and :class:`bytes` types cannot be mixed, you must " -"always explicitly convert between them. Use :meth:`str.encode` to go " -"from :class:`str` to :class:`bytes`, and :meth:`bytes.decode` to go " -"from :class:`bytes` to :class:`str`. You can also use ``bytes(s, " -"encoding=...)`` and ``str(b, encoding=...)``, respectively." +"always explicitly convert between them. Use :meth:`str.encode` to go from :" +"class:`str` to :class:`bytes`, and :meth:`bytes.decode` to go from :class:" +"`bytes` to :class:`str`. You can also use ``bytes(s, encoding=...)`` and " +"``str(b, encoding=...)``, respectively." msgstr "" -#: ../../whatsnew/3.0.rst:268 msgid "" "Like :class:`str`, the :class:`bytes` type is immutable. There is a " "separate *mutable* type to hold buffered binary data, :class:`bytearray`. " "Nearly all APIs that accept :class:`bytes` also accept :class:`bytearray`. " -"The mutable API is based on :class:`collections.MutableSequence " -"`." +"The mutable API is based on :class:`collections.MutableSequence `." msgstr "" -#: ../../whatsnew/3.0.rst:274 msgid "" "All backslashes in raw string literals are interpreted literally. This means " "that ``'\\U'`` and ``'\\u'`` escapes in raw strings are not treated " @@ -339,16 +293,14 @@ msgid "" "euro character is ``'\\u20ac'`` in Python 3.0.)" msgstr "" -#: ../../whatsnew/3.0.rst:281 msgid "" -"The built-in :class:`!basestring` abstract type was removed. " -"Use :class:`str` instead. The :class:`str` and :class:`bytes` types don't " -"have functionality enough in common to warrant a shared base class. The " -"``2to3`` tool (see below) replaces every occurrence of :class:`!basestring` " -"with :class:`str`." +"The built-in :class:`!basestring` abstract type was removed. Use :class:" +"`str` instead. The :class:`str` and :class:`bytes` types don't have " +"functionality enough in common to warrant a shared base class. The ``2to3`` " +"tool (see below) replaces every occurrence of :class:`!basestring` with :" +"class:`str`." msgstr "" -#: ../../whatsnew/3.0.rst:287 msgid "" "Files opened as text files (still the default mode for :func:`open`) always " "use an encoding to map between strings (in memory) and bytes (on disk). " @@ -366,31 +318,28 @@ msgid "" "the encoding-aware streams in the :mod:`codecs` module." msgstr "" -#: ../../whatsnew/3.0.rst:304 msgid "" -"The initial values of :data:`sys.stdin`, :data:`sys.stdout` " -"and :data:`sys.stderr` are now unicode-only text files (i.e., they are " -"instances of :class:`io.TextIOBase`). To read and write bytes data with " -"these streams, you need to use their :data:`io.TextIOBase.buffer` attribute." +"The initial values of :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys." +"stderr` are now unicode-only text files (i.e., they are instances of :class:" +"`io.TextIOBase`). To read and write bytes data with these streams, you need " +"to use their :data:`io.TextIOBase.buffer` attribute." msgstr "" -#: ../../whatsnew/3.0.rst:310 msgid "" "Filenames are passed to and returned from APIs as (Unicode) strings. This " "can present platform-specific problems because on some platforms filenames " "are arbitrary byte strings. (On the other hand, on Windows filenames are " "natively stored as Unicode.) As a work-around, most APIs (e.g. :func:`open` " -"and many functions in the :mod:`os` module) that take filenames " -"accept :class:`bytes` objects as well as strings, and a few APIs have a way " -"to ask for a :class:`bytes` return value. Thus, :func:`os.listdir` returns " -"a list of :class:`bytes` instances if the argument is a :class:`bytes` " -"instance, and :func:`os.getcwdb` returns the current working directory as " -"a :class:`bytes` instance. Note that when :func:`os.listdir` returns a list " -"of strings, filenames that cannot be decoded properly are omitted rather " -"than raising :exc:`UnicodeError`." +"and many functions in the :mod:`os` module) that take filenames accept :" +"class:`bytes` objects as well as strings, and a few APIs have a way to ask " +"for a :class:`bytes` return value. Thus, :func:`os.listdir` returns a list " +"of :class:`bytes` instances if the argument is a :class:`bytes` instance, " +"and :func:`os.getcwdb` returns the current working directory as a :class:" +"`bytes` instance. Note that when :func:`os.listdir` returns a list of " +"strings, filenames that cannot be decoded properly are omitted rather than " +"raising :exc:`UnicodeError`." msgstr "" -#: ../../whatsnew/3.0.rst:325 msgid "" "Some system APIs like :data:`os.environ` and :data:`sys.argv` can also " "present problems when the bytes made available by the system is not " @@ -398,50 +347,41 @@ msgid "" "rerunning the program is probably the best approach." msgstr "" -#: ../../whatsnew/3.0.rst:330 msgid "" ":pep:`3138`: The :func:`repr` of a string no longer escapes non-ASCII " "characters. It still escapes control characters and code points with non-" "printable status in the Unicode standard, however." msgstr "" -#: ../../whatsnew/3.0.rst:334 msgid ":pep:`3120`: The default source encoding is now UTF-8." msgstr "" -#: ../../whatsnew/3.0.rst:336 msgid "" ":pep:`3131`: Non-ASCII letters are now allowed in identifiers. (However, the " "standard library remains ASCII-only with the exception of contributor names " "in comments.)" msgstr "" -#: ../../whatsnew/3.0.rst:340 msgid "" "The :mod:`!StringIO` and :mod:`!cStringIO` modules are gone. Instead, " -"import the :mod:`io` module and use :class:`io.StringIO` " -"or :class:`io.BytesIO` for text and data respectively." +"import the :mod:`io` module and use :class:`io.StringIO` or :class:`io." +"BytesIO` for text and data respectively." msgstr "" -#: ../../whatsnew/3.0.rst:344 msgid "See also the :ref:`unicode-howto`, which was updated for Python 3.0." msgstr "" -#: ../../whatsnew/3.0.rst:348 msgid "Overview Of Syntax Changes" msgstr "" -#: ../../whatsnew/3.0.rst:350 msgid "" "This section gives a brief overview of every *syntactic* change in Python " "3.0." msgstr "" -#: ../../whatsnew/3.0.rst:354 msgid "New Syntax" msgstr "" -#: ../../whatsnew/3.0.rst:356 msgid "" ":pep:`3107`: Function argument and return value annotations. This provides " "a standardized way of annotating a function's parameters and return value. " @@ -451,7 +391,6 @@ msgid "" "decorators or frameworks." msgstr "" -#: ../../whatsnew/3.0.rst:363 msgid "" ":pep:`3102`: Keyword-only arguments. Named parameters occurring after " "``*args`` in the parameter list *must* be specified using keyword syntax in " @@ -460,7 +399,6 @@ msgid "" "keyword-only arguments." msgstr "" -#: ../../whatsnew/3.0.rst:369 msgid "" "Keyword arguments are allowed after the list of base classes in a class " "definition. This is used by the new convention for specifying a metaclass " @@ -468,14 +406,12 @@ msgid "" "the metaclass supports it." msgstr "" -#: ../../whatsnew/3.0.rst:374 msgid "" ":pep:`3104`: :keyword:`nonlocal` statement. Using ``nonlocal x`` you can " -"now assign directly to a variable in an outer (but non-global) " -"scope. :keyword:`!nonlocal` is a new reserved word." +"now assign directly to a variable in an outer (but non-global) scope. :" +"keyword:`!nonlocal` is a new reserved word." msgstr "" -#: ../../whatsnew/3.0.rst:378 msgid "" ":pep:`3132`: Extended Iterable Unpacking. You can now write things like " "``a, b, *rest = some_sequence``. And even ``*rest, a = stuff``. The " @@ -483,21 +419,17 @@ msgid "" "be any iterable. Example::" msgstr "" -#: ../../whatsnew/3.0.rst:383 msgid "(a, *rest, b) = range(5)" msgstr "" -#: ../../whatsnew/3.0.rst:385 msgid "This sets *a* to ``0``, *b* to ``4``, and *rest* to ``[1, 2, 3]``." msgstr "" -#: ../../whatsnew/3.0.rst:387 msgid "" "Dictionary comprehensions: ``{k: v for k, v in stuff}`` means the same thing " "as ``dict(stuff)`` but is more flexible. (This is :pep:`274` vindicated. :-)" msgstr "" -#: ../../whatsnew/3.0.rst:391 msgid "" "Set literals, e.g. ``{1, 2}``. Note that ``{}`` is an empty dictionary; use " "``set()`` for an empty set. Set comprehensions are also supported; e.g., " @@ -505,81 +437,67 @@ msgid "" "flexible." msgstr "" -#: ../../whatsnew/3.0.rst:396 msgid "" "New octal literals, e.g. ``0o720`` (already in 2.6). The old octal literals " "(``0720``) are gone." msgstr "" -#: ../../whatsnew/3.0.rst:399 msgid "" "New binary literals, e.g. ``0b1010`` (already in 2.6), and there is a new " "corresponding built-in function, :func:`bin`." msgstr "" -#: ../../whatsnew/3.0.rst:402 msgid "" "Bytes literals are introduced with a leading ``b`` or ``B``, and there is a " "new corresponding built-in function, :func:`bytes`." msgstr "" -#: ../../whatsnew/3.0.rst:406 msgid "Changed Syntax" msgstr "" -#: ../../whatsnew/3.0.rst:408 msgid "" -":pep:`3109` and :pep:`3134`: new :keyword:`raise` statement " -"syntax: :samp:`raise [{expr} [from {expr}]]`. See below." +":pep:`3109` and :pep:`3134`: new :keyword:`raise` statement syntax: :samp:" +"`raise [{expr} [from {expr}]]`. See below." msgstr "" -#: ../../whatsnew/3.0.rst:411 msgid "" ":keyword:`!as` and :keyword:`with` are now reserved words. (Since 2.6, " "actually.)" msgstr "" -#: ../../whatsnew/3.0.rst:414 msgid "" "``True``, ``False``, and ``None`` are reserved words. (2.6 partially " "enforced the restrictions on ``None`` already.)" msgstr "" -#: ../../whatsnew/3.0.rst:417 msgid "" -"Change from :keyword:`except` *exc*, *var* to :keyword:`!except` " -"*exc* :keyword:`!as` *var*. See :pep:`3110`." +"Change from :keyword:`except` *exc*, *var* to :keyword:`!except` *exc* :" +"keyword:`!as` *var*. See :pep:`3110`." msgstr "" -#: ../../whatsnew/3.0.rst:420 msgid ":pep:`3115`: New Metaclass Syntax. Instead of::" msgstr "" -#: ../../whatsnew/3.0.rst:422 msgid "" "class C:\n" " __metaclass__ = M\n" " ..." msgstr "" -#: ../../whatsnew/3.0.rst:426 msgid "you must now use::" msgstr "" -#: ../../whatsnew/3.0.rst:428 msgid "" "class C(metaclass=M):\n" " ..." msgstr "" -#: ../../whatsnew/3.0.rst:431 msgid "" "The module-global :data:`!__metaclass__` variable is no longer supported. " "(It was a crutch to make it easier to default to new-style classes without " "deriving every class from :class:`object`.)" msgstr "" -#: ../../whatsnew/3.0.rst:436 msgid "" "List comprehensions no longer support the syntactic form :samp:`[... for " "{var} in {item1}, {item2}, ...]`. Use :samp:`[... for {var} in ({item1}, " @@ -589,7 +507,6 @@ msgid "" "variables are no longer leaked into the surrounding scope." msgstr "" -#: ../../whatsnew/3.0.rst:444 msgid "" "The *ellipsis* (``...``) can be used as an atomic expression anywhere. " "(Previously it was only allowed in slices.) Also, it *must* now be spelled " @@ -597,25 +514,20 @@ msgid "" "accident of the grammar.)" msgstr "" -#: ../../whatsnew/3.0.rst:450 msgid "Removed Syntax" msgstr "" -#: ../../whatsnew/3.0.rst:452 msgid "" ":pep:`3113`: Tuple parameter unpacking removed. You can no longer write " "``def foo(a, (b, c)): ...``. Use ``def foo(a, b_c): b, c = b_c`` instead." msgstr "" -#: ../../whatsnew/3.0.rst:456 msgid "Removed backticks (use :func:`repr` instead)." msgstr "" -#: ../../whatsnew/3.0.rst:458 msgid "Removed ``<>`` (use ``!=`` instead)." msgstr "" -#: ../../whatsnew/3.0.rst:460 msgid "" "Removed keyword: :func:`exec` is no longer a keyword; it remains as a " "function. (Fortunately the function syntax was also accepted in 2.x.) Also " @@ -623,36 +535,29 @@ msgid "" "``exec(f)`` you can use ``exec(f.read())``." msgstr "" -#: ../../whatsnew/3.0.rst:465 msgid "Integer literals no longer support a trailing ``l`` or ``L``." msgstr "" -#: ../../whatsnew/3.0.rst:467 msgid "String literals no longer support a leading ``u`` or ``U``." msgstr "" -#: ../../whatsnew/3.0.rst:469 msgid "" "The :keyword:`from` *module* :keyword:`import` ``*`` syntax is only allowed " "at the module level, no longer inside functions." msgstr "" -#: ../../whatsnew/3.0.rst:472 msgid "" "The only acceptable syntax for relative imports is :samp:`from .[{module}] " "import {name}`. All :keyword:`import` forms not starting with ``.`` are " "interpreted as absolute imports. (:pep:`328`)" msgstr "" -#: ../../whatsnew/3.0.rst:476 msgid "Classic classes are gone." msgstr "" -#: ../../whatsnew/3.0.rst:480 msgid "Changes Already Present In Python 2.6" msgstr "" -#: ../../whatsnew/3.0.rst:482 msgid "" "Since many users presumably make the jump straight from Python 2.5 to Python " "3.0, this section reminds the reader of new features that were originally " @@ -661,114 +566,96 @@ msgid "" "longer descriptions." msgstr "" -#: ../../whatsnew/3.0.rst:488 msgid "" ":ref:`pep-0343`. The :keyword:`with` statement is now a standard feature " "and no longer needs to be imported from the :mod:`__future__`. Also check " "out :ref:`new-26-context-managers` and :ref:`new-module-contextlib`." msgstr "" -#: ../../whatsnew/3.0.rst:493 msgid "" ":ref:`pep-0366`. This enhances the usefulness of the :option:`-m` option " "when the referenced module lives in a package." msgstr "" -#: ../../whatsnew/3.0.rst:496 msgid ":ref:`pep-0370`." msgstr "" -#: ../../whatsnew/3.0.rst:498 msgid ":ref:`pep-0371`." msgstr "" -#: ../../whatsnew/3.0.rst:500 msgid "" ":ref:`pep-3101`. Note: the 2.6 description mentions the :meth:`format` " "method for both 8-bit and Unicode strings. In 3.0, only the :class:`str` " -"type (text strings with Unicode support) supports this method; " -"the :class:`bytes` type does not. The plan is to eventually make this the " -"only API for string formatting, and to start deprecating the ``%`` operator " -"in Python 3.1." +"type (text strings with Unicode support) supports this method; the :class:" +"`bytes` type does not. The plan is to eventually make this the only API for " +"string formatting, and to start deprecating the ``%`` operator in Python 3.1." msgstr "" -#: ../../whatsnew/3.0.rst:507 msgid "" ":ref:`pep-3105`. This is now a standard feature and no longer needs to be " "imported from :mod:`__future__`. More details were given above." msgstr "" -#: ../../whatsnew/3.0.rst:510 msgid "" ":ref:`pep-3110`. The :keyword:`except` *exc* :keyword:`!as` *var* syntax is " "now standard and :keyword:`!except` *exc*, *var* is no longer supported. " "(Of course, the :keyword:`!as` *var* part is still optional.)" msgstr "" -#: ../../whatsnew/3.0.rst:515 msgid "" ":ref:`pep-3112`. The ``b\"...\"`` string literal notation (and its variants " "like ``b'...'``, ``b\"\"\"...\"\"\"``, and ``br\"...\"``) now produces a " "literal of type :class:`bytes`." msgstr "" -#: ../../whatsnew/3.0.rst:519 msgid "" ":ref:`pep-3116`. The :mod:`io` module is now the standard way of doing file " "I/O. The built-in :func:`open` function is now an alias for :func:`io.open` " "and has additional keyword arguments *encoding*, *errors*, *newline* and " -"*closefd*. Also note that an invalid *mode* argument now " -"raises :exc:`ValueError`, not :exc:`IOError`. The binary file object " -"underlying a text file object can be accessed as :attr:`!f.buffer` (but " -"beware that the text object maintains a buffer of itself in order to speed " -"up the encoding and decoding operations)." +"*closefd*. Also note that an invalid *mode* argument now raises :exc:" +"`ValueError`, not :exc:`IOError`. The binary file object underlying a text " +"file object can be accessed as :attr:`!f.buffer` (but beware that the text " +"object maintains a buffer of itself in order to speed up the encoding and " +"decoding operations)." msgstr "" -#: ../../whatsnew/3.0.rst:529 msgid "" ":ref:`pep-3118`. The old builtin :func:`!buffer` is now really gone; the " "new builtin :func:`memoryview` provides (mostly) similar functionality." msgstr "" -#: ../../whatsnew/3.0.rst:533 msgid "" -":ref:`pep-3119`. The :mod:`abc` module and the ABCs defined in " -"the :mod:`collections` module plays a somewhat more prominent role in the " -"language now, and built-in collection types like :class:`dict` " -"and :class:`list` conform to the :class:`collections.MutableMapping " -"` and :class:`collections.MutableSequence " -"` ABCs, respectively." +":ref:`pep-3119`. The :mod:`abc` module and the ABCs defined in the :mod:" +"`collections` module plays a somewhat more prominent role in the language " +"now, and built-in collection types like :class:`dict` and :class:`list` " +"conform to the :class:`collections.MutableMapping ` and :class:`collections.MutableSequence ` ABCs, respectively." msgstr "" -#: ../../whatsnew/3.0.rst:539 msgid "" ":ref:`pep-3127`. As mentioned above, the new octal literal notation is the " "only one supported, and binary literals have been added." msgstr "" -#: ../../whatsnew/3.0.rst:543 msgid ":ref:`pep-3129`." msgstr "" -#: ../../whatsnew/3.0.rst:545 msgid "" ":ref:`pep-3141`. The :mod:`numbers` module is another new use of ABCs, " "defining Python's \"numeric tower\". Also note the new :mod:`fractions` " "module which implements :class:`numbers.Rational`." msgstr "" -#: ../../whatsnew/3.0.rst:551 msgid "Library Changes" msgstr "" -#: ../../whatsnew/3.0.rst:553 msgid "" "Due to time constraints, this document does not exhaustively cover the very " "extensive changes to the standard library. :pep:`3108` is the reference for " "the major changes to the library. Here's a capsule review:" msgstr "" -#: ../../whatsnew/3.0.rst:558 msgid "" "Many old modules were removed. Some, like :mod:`!gopherlib` (no longer " "used) and :mod:`!md5` (replaced by :mod:`hashlib`), were already deprecated " @@ -778,94 +665,73 @@ msgid "" "because a better replacement exists. See :pep:`3108` for an exhaustive list." msgstr "" -#: ../../whatsnew/3.0.rst:566 msgid "" "The :mod:`!bsddb3` package was removed because its presence in the core " "standard library has proved over time to be a particular burden for the core " "developers due to testing instability and Berkeley DB's release schedule. " -"However, the package is alive and well, externally maintained at https://" -"www.jcea.es/programacion/pybsddb.htm." +"However, the package is alive and well, externally maintained at https://www." +"jcea.es/programacion/pybsddb.htm." msgstr "" -#: ../../whatsnew/3.0.rst:572 msgid "" "Some modules were renamed because their old name disobeyed :pep:`8`, or for " "various other reasons. Here's the list:" msgstr "" -#: ../../whatsnew/3.0.rst:576 msgid "Old Name" msgstr "" -#: ../../whatsnew/3.0.rst:576 msgid "New Name" msgstr "" -#: ../../whatsnew/3.0.rst:578 msgid "_winreg" msgstr "" -#: ../../whatsnew/3.0.rst:578 msgid "winreg" msgstr "" -#: ../../whatsnew/3.0.rst:579 msgid "ConfigParser" msgstr "" -#: ../../whatsnew/3.0.rst:579 msgid "configparser" msgstr "" -#: ../../whatsnew/3.0.rst:580 msgid "copy_reg" msgstr "" -#: ../../whatsnew/3.0.rst:580 msgid "copyreg" msgstr "" -#: ../../whatsnew/3.0.rst:581 msgid "Queue" msgstr "" -#: ../../whatsnew/3.0.rst:581 msgid "queue" msgstr "" -#: ../../whatsnew/3.0.rst:582 msgid "SocketServer" msgstr "" -#: ../../whatsnew/3.0.rst:582 msgid "socketserver" msgstr "" -#: ../../whatsnew/3.0.rst:583 msgid "markupbase" msgstr "" -#: ../../whatsnew/3.0.rst:583 msgid "_markupbase" msgstr "" -#: ../../whatsnew/3.0.rst:584 msgid "repr" msgstr "" -#: ../../whatsnew/3.0.rst:584 msgid "reprlib" msgstr "" -#: ../../whatsnew/3.0.rst:585 msgid "test.test_support" msgstr "" -#: ../../whatsnew/3.0.rst:585 msgid "test.support" msgstr "" -#: ../../whatsnew/3.0.rst:588 msgid "" "A common pattern in Python 2.x is to have one version of a module " "implemented in pure Python, with an optional accelerated version implemented " @@ -880,29 +746,24 @@ msgid "" "module has been turned into a class in the :mod:`io` module." msgstr "" -#: ../../whatsnew/3.0.rst:602 msgid "" "Some related modules have been grouped into packages, and usually the " "submodule names have been simplified. The resulting new packages are:" msgstr "" -#: ../../whatsnew/3.0.rst:606 msgid "" -":mod:`dbm` (:mod:`!anydbm`, :mod:`!dbhash`, :mod:`!dbm`, :mod:`!" -"dumbdbm`, :mod:`!gdbm`, :mod:`!whichdb`)." +":mod:`dbm` (:mod:`!anydbm`, :mod:`!dbhash`, :mod:`!dbm`, :mod:`!dumbdbm`, :" +"mod:`!gdbm`, :mod:`!whichdb`)." msgstr "" -#: ../../whatsnew/3.0.rst:609 msgid ":mod:`html` (:mod:`!HTMLParser`, :mod:`!htmlentitydefs`)." msgstr "" -#: ../../whatsnew/3.0.rst:611 msgid "" ":mod:`http` (:mod:`!httplib`, :mod:`!BaseHTTPServer`, :mod:`!" "CGIHTTPServer`, :mod:`!SimpleHTTPServer`, :mod:`!Cookie`, :mod:`!cookielib`)." msgstr "" -#: ../../whatsnew/3.0.rst:615 msgid "" ":mod:`tkinter` (all ``Tkinter``-related modules except :mod:`turtle`). The " "target audience of :mod:`turtle` doesn't really care about :mod:`tkinter`. " @@ -910,99 +771,82 @@ msgid "" "greatly enhanced." msgstr "" -#: ../../whatsnew/3.0.rst:620 msgid "" ":mod:`urllib` (:mod:`!urllib`, :mod:`!urllib2`, :mod:`!urlparse`, :mod:`!" "robotparse`)." msgstr "" -#: ../../whatsnew/3.0.rst:623 msgid "" ":mod:`xmlrpc` (:mod:`!xmlrpclib`, :mod:`!DocXMLRPCServer`, :mod:`!" "SimpleXMLRPCServer`)." msgstr "" -#: ../../whatsnew/3.0.rst:626 msgid "" "Some other changes to standard library modules, not covered by :pep:`3108`:" msgstr "" -#: ../../whatsnew/3.0.rst:629 msgid "Killed :mod:`!sets`. Use the built-in :func:`set` class." msgstr "" -#: ../../whatsnew/3.0.rst:631 msgid "" -"Cleanup of the :mod:`sys` module: removed :func:`!sys.exitfunc`, :func:`!" -"sys.exc_clear`, :data:`!sys.exc_type`, :data:`!sys.exc_value`, :data:`!" -"sys.exc_traceback`. (Note that :data:`sys.last_type` etc. remain.)" +"Cleanup of the :mod:`sys` module: removed :func:`!sys.exitfunc`, :func:`!sys." +"exc_clear`, :data:`!sys.exc_type`, :data:`!sys.exc_value`, :data:`!sys." +"exc_traceback`. (Note that :data:`sys.last_type` etc. remain.)" msgstr "" -#: ../../whatsnew/3.0.rst:636 msgid "" "Cleanup of the :class:`array.array` type: the :meth:`!read` and :meth:`!" -"write` methods are gone; use :meth:`~array.array.fromfile` " -"and :meth:`~array.array.tofile` instead. Also, the ``'c'`` typecode for " -"array is gone -- use either ``'b'`` for bytes or ``'u'`` for Unicode " -"characters." +"write` methods are gone; use :meth:`~array.array.fromfile` and :meth:`~array." +"array.tofile` instead. Also, the ``'c'`` typecode for array is gone -- use " +"either ``'b'`` for bytes or ``'u'`` for Unicode characters." msgstr "" -#: ../../whatsnew/3.0.rst:642 msgid "" "Cleanup of the :mod:`operator` module: removed :func:`!sequenceIncludes` " "and :func:`!isCallable`." msgstr "" -#: ../../whatsnew/3.0.rst:645 msgid "" "Cleanup of the :mod:`!thread` module: :func:`!acquire_lock` and :func:`!" -"release_lock` are gone; use :meth:`~threading.Lock.acquire` " -"and :meth:`~threading.Lock.release` instead." +"release_lock` are gone; use :meth:`~threading.Lock.acquire` and :meth:" +"`~threading.Lock.release` instead." msgstr "" -#: ../../whatsnew/3.0.rst:649 msgid "" "Cleanup of the :mod:`random` module: removed the :func:`!jumpahead` API." msgstr "" -#: ../../whatsnew/3.0.rst:651 msgid "The :mod:`!new` module is gone." msgstr "" -#: ../../whatsnew/3.0.rst:653 msgid "" -"The functions :func:`!os.tmpnam`, :func:`!os.tempnam` and :func:`!" -"os.tmpfile` have been removed in favor of the :mod:`tempfile` module." +"The functions :func:`!os.tmpnam`, :func:`!os.tempnam` and :func:`!os." +"tmpfile` have been removed in favor of the :mod:`tempfile` module." msgstr "" -#: ../../whatsnew/3.0.rst:657 msgid "" "The :mod:`tokenize` module has been changed to work with bytes. The main " "entry point is now :func:`tokenize.tokenize`, instead of generate_tokens." msgstr "" -#: ../../whatsnew/3.0.rst:661 msgid "" -":data:`!string.letters` and its friends (:data:`!string.lowercase` " -"and :data:`!string.uppercase`) are gone. Use :data:`string.ascii_letters` " -"etc. instead. (The reason for the removal is that :data:`!string.letters` " -"and friends had locale-specific behavior, which is a bad idea for such " +":data:`!string.letters` and its friends (:data:`!string.lowercase` and :data:" +"`!string.uppercase`) are gone. Use :data:`string.ascii_letters` etc. " +"instead. (The reason for the removal is that :data:`!string.letters` and " +"friends had locale-specific behavior, which is a bad idea for such " "attractively named global \"constants\".)" msgstr "" -#: ../../whatsnew/3.0.rst:668 msgid "" "Renamed module :mod:`!__builtin__` to :mod:`builtins` (removing the " "underscores, adding an 's'). The :data:`!__builtins__` variable found in " -"most global namespaces is unchanged. To modify a builtin, you should " -"use :mod:`builtins`, not :data:`!__builtins__`!" +"most global namespaces is unchanged. To modify a builtin, you should use :" +"mod:`builtins`, not :data:`!__builtins__`!" msgstr "" -#: ../../whatsnew/3.0.rst:675 msgid ":pep:`3101`: A New Approach To String Formatting" msgstr "" -#: ../../whatsnew/3.0.rst:677 msgid "" "A new system for built-in string formatting operations replaces the ``%`` " "string formatting operator. (However, the ``%`` operator is still " @@ -1010,47 +854,39 @@ msgid "" "language at some later time.) Read :pep:`3101` for the full scoop." msgstr "" -#: ../../whatsnew/3.0.rst:685 msgid "Changes To Exceptions" msgstr "" -#: ../../whatsnew/3.0.rst:687 msgid "" "The APIs for raising and catching exception have been cleaned up and new " "powerful features added:" msgstr "" -#: ../../whatsnew/3.0.rst:690 msgid "" -":pep:`352`: All exceptions must be derived (directly or indirectly) " -"from :exc:`BaseException`. This is the root of the exception hierarchy. " -"This is not new as a recommendation, but the *requirement* to inherit " -"from :exc:`BaseException` is new. (Python 2.6 still allowed classic classes " -"to be raised, and placed no restriction on what you can catch.) As a " -"consequence, string exceptions are finally truly and utterly dead." +":pep:`352`: All exceptions must be derived (directly or indirectly) from :" +"exc:`BaseException`. This is the root of the exception hierarchy. This is " +"not new as a recommendation, but the *requirement* to inherit from :exc:" +"`BaseException` is new. (Python 2.6 still allowed classic classes to be " +"raised, and placed no restriction on what you can catch.) As a consequence, " +"string exceptions are finally truly and utterly dead." msgstr "" -#: ../../whatsnew/3.0.rst:698 msgid "" -"Almost all exceptions should actually derive " -"from :exc:`Exception`; :exc:`BaseException` should only be used as a base " -"class for exceptions that should only be handled at the top level, such " -"as :exc:`SystemExit` or :exc:`KeyboardInterrupt`. The recommended idiom for " -"handling all exceptions except for this latter category is to " -"use :keyword:`except` :exc:`Exception`." +"Almost all exceptions should actually derive from :exc:`Exception`; :exc:" +"`BaseException` should only be used as a base class for exceptions that " +"should only be handled at the top level, such as :exc:`SystemExit` or :exc:" +"`KeyboardInterrupt`. The recommended idiom for handling all exceptions " +"except for this latter category is to use :keyword:`except` :exc:`Exception`." msgstr "" -#: ../../whatsnew/3.0.rst:705 msgid ":exc:`!StandardError` was removed." msgstr "" -#: ../../whatsnew/3.0.rst:707 msgid "" -"Exceptions no longer behave as sequences. Use " -"the :attr:`~BaseException.args` attribute instead." +"Exceptions no longer behave as sequences. Use the :attr:`~BaseException." +"args` attribute instead." msgstr "" -#: ../../whatsnew/3.0.rst:710 msgid "" ":pep:`3109`: Raising exceptions. You must now use :samp:`raise {Exception}" "({args})` instead of :samp:`raise {Exception}, {args}`. Additionally, you " @@ -1059,15 +895,13 @@ msgid "" "attribute (see below)." msgstr "" -#: ../../whatsnew/3.0.rst:716 msgid "" ":pep:`3110`: Catching exceptions. You must now use :samp:`except " "{SomeException} as {variable}` instead of :samp:`except {SomeException}, " -"{variable}`. Moreover, the *variable* is explicitly deleted when " -"the :keyword:`except` block is left." +"{variable}`. Moreover, the *variable* is explicitly deleted when the :" +"keyword:`except` block is left." msgstr "" -#: ../../whatsnew/3.0.rst:722 msgid "" ":pep:`3134`: Exception chaining. There are two cases: implicit chaining and " "explicit chaining. Implicit chaining happens when an exception is raised in " @@ -1078,60 +912,51 @@ msgid "" "exception. Explicit chaining is invoked with this syntax::" msgstr "" -#: ../../whatsnew/3.0.rst:731 msgid "raise SecondaryException() from primary_exception" msgstr "" -#: ../../whatsnew/3.0.rst:733 msgid "" "(where *primary_exception* is any expression that produces an exception " "object, probably an exception that was previously caught). In this case, the " "primary exception is stored on the :attr:`~BaseException.__cause__` " "attribute of the secondary exception. The traceback printed when an " -"unhandled exception occurs walks the chain of :attr:`!__cause__` " -"and :attr:`~BaseException.__context__` attributes and prints a separate " -"traceback for each component of the chain, with the primary exception at the " -"top. (Java users may recognize this behavior.)" +"unhandled exception occurs walks the chain of :attr:`!__cause__` and :attr:" +"`~BaseException.__context__` attributes and prints a separate traceback for " +"each component of the chain, with the primary exception at the top. (Java " +"users may recognize this behavior.)" msgstr "" -#: ../../whatsnew/3.0.rst:743 msgid "" -":pep:`3134`: Exception objects now store their traceback as " -"the :attr:`~BaseException.__traceback__` attribute. This means that an " -"exception object now contains all the information pertaining to an " -"exception, and there are fewer reasons to use :func:`sys.exc_info` (though " -"the latter is not removed)." +":pep:`3134`: Exception objects now store their traceback as the :attr:" +"`~BaseException.__traceback__` attribute. This means that an exception " +"object now contains all the information pertaining to an exception, and " +"there are fewer reasons to use :func:`sys.exc_info` (though the latter is " +"not removed)." msgstr "" -#: ../../whatsnew/3.0.rst:749 msgid "" "A few exception messages are improved when Windows fails to load an " "extension module. For example, ``error code 193`` is now ``%1 is not a " "valid Win32 application``. Strings now deal with non-English locales." msgstr "" -#: ../../whatsnew/3.0.rst:756 msgid "Miscellaneous Other Changes" msgstr "" -#: ../../whatsnew/3.0.rst:759 msgid "Operators And Special Methods" msgstr "" -#: ../../whatsnew/3.0.rst:761 msgid "" -"``!=`` now returns the opposite of ``==``, unless ``==`` " -"returns :data:`NotImplemented`." +"``!=`` now returns the opposite of ``==``, unless ``==`` returns :data:" +"`NotImplemented`." msgstr "" -#: ../../whatsnew/3.0.rst:764 msgid "" "The concept of \"unbound methods\" has been removed from the language. When " "referencing a method as a class attribute, you now get a plain function " "object." msgstr "" -#: ../../whatsnew/3.0.rst:768 msgid "" ":meth:`!__getslice__`, :meth:`!__setslice__` and :meth:`!__delslice__` were " "killed. The syntax ``a[i:j]`` now translates to ``a.__getitem__(slice(i, " @@ -1139,44 +964,37 @@ msgid "" "used as an assignment or deletion target, respectively)." msgstr "" -#: ../../whatsnew/3.0.rst:774 msgid "" -":pep:`3114`: the standard :meth:`next` method has been renamed " -"to :meth:`~iterator.__next__`." +":pep:`3114`: the standard :meth:`next` method has been renamed to :meth:" +"`~iterator.__next__`." msgstr "" -#: ../../whatsnew/3.0.rst:777 msgid "" -"The :meth:`!__oct__` and :meth:`!__hex__` special methods are removed " -"-- :func:`oct` and :func:`hex` use :meth:`~object.__index__` now to convert " -"the argument to an integer." +"The :meth:`!__oct__` and :meth:`!__hex__` special methods are removed -- :" +"func:`oct` and :func:`hex` use :meth:`~object.__index__` now to convert the " +"argument to an integer." msgstr "" -#: ../../whatsnew/3.0.rst:781 msgid "Removed support for :attr:`!__members__` and :attr:`!__methods__`." msgstr "" -#: ../../whatsnew/3.0.rst:783 msgid "" -"The function attributes named :attr:`!func_X` have been renamed to use " -"the :attr:`!__X__` form, freeing up these names in the function attribute " -"namespace for user-defined attributes. To wit, :attr:`!" -"func_closure`, :attr:`!func_code`, :attr:`!func_defaults`, :attr:`!" -"func_dict`, :attr:`!func_doc`, :attr:`!func_globals`, :attr:`!func_name` " -"were renamed " -"to :attr:`~function.__closure__`, :attr:`~function.__code__`, :attr:`~function.__defaults__`, :attr:`~function.__dict__`, :attr:`~function.__doc__`, :attr:`~function.__globals__`, :attr:`~function.__name__`, " -"respectively." +"The function attributes named :attr:`!func_X` have been renamed to use the :" +"attr:`!__X__` form, freeing up these names in the function attribute " +"namespace for user-defined attributes. To wit, :attr:`!func_closure`, :attr:" +"`!func_code`, :attr:`!func_defaults`, :attr:`!func_dict`, :attr:`!" +"func_doc`, :attr:`!func_globals`, :attr:`!func_name` were renamed to :attr:" +"`~function.__closure__`, :attr:`~function.__code__`, :attr:`~function." +"__defaults__`, :attr:`~function.__dict__`, :attr:`~function.__doc__`, :attr:" +"`~function.__globals__`, :attr:`~function.__name__`, respectively." msgstr "" -#: ../../whatsnew/3.0.rst:794 msgid ":meth:`!__nonzero__` is now :meth:`~object.__bool__`." msgstr "" -#: ../../whatsnew/3.0.rst:797 msgid "Builtins" msgstr "" -#: ../../whatsnew/3.0.rst:799 msgid "" ":pep:`3135`: New :func:`super`. You can now invoke :func:`super` without " "arguments and (assuming this is in a regular instance method defined inside " @@ -1185,7 +1003,6 @@ msgid "" "unchanged." msgstr "" -#: ../../whatsnew/3.0.rst:805 msgid "" ":pep:`3111`: :func:`!raw_input` was renamed to :func:`input`. That is, the " "new :func:`input` function reads a line from :data:`sys.stdin` and returns " @@ -1194,13 +1011,11 @@ msgid "" "use ``eval(input())``." msgstr "" -#: ../../whatsnew/3.0.rst:811 msgid "" -"A new built-in function :func:`next` was added to call " -"the :meth:`~iterator.__next__` method on an object." +"A new built-in function :func:`next` was added to call the :meth:`~iterator." +"__next__` method on an object." msgstr "" -#: ../../whatsnew/3.0.rst:814 msgid "" "The :func:`round` function rounding strategy and return type have changed. " "Exact halfway cases are now rounded to the nearest even result instead of " @@ -1211,118 +1026,96 @@ msgid "" "arguments." msgstr "" -#: ../../whatsnew/3.0.rst:823 msgid "Moved :func:`!intern` to :func:`sys.intern`." msgstr "" -#: ../../whatsnew/3.0.rst:825 msgid "" "Removed: :func:`!apply`. Instead of ``apply(f, args)`` use ``f(*args)``." msgstr "" -#: ../../whatsnew/3.0.rst:828 msgid "" "Removed :func:`callable`. Instead of ``callable(f)`` you can use " "``isinstance(f, collections.Callable)``. The :func:`!operator.isCallable` " "function is also gone." msgstr "" -#: ../../whatsnew/3.0.rst:832 msgid "" "Removed :func:`!coerce`. This function no longer serves a purpose now that " "classic classes are gone." msgstr "" -#: ../../whatsnew/3.0.rst:835 msgid "" -"Removed :func:`!execfile`. Instead of ``execfile(fn)`` use " -"``exec(open(fn).read())``." +"Removed :func:`!execfile`. Instead of ``execfile(fn)`` use ``exec(open(fn)." +"read())``." msgstr "" -#: ../../whatsnew/3.0.rst:838 msgid "" "Removed the :class:`!file` type. Use :func:`open`. There are now several " "different kinds of streams that open can return in the :mod:`io` module." msgstr "" -#: ../../whatsnew/3.0.rst:841 msgid "" "Removed :func:`!reduce`. Use :func:`functools.reduce` if you really need " "it; however, 99 percent of the time an explicit :keyword:`for` loop is more " "readable." msgstr "" -#: ../../whatsnew/3.0.rst:845 msgid "Removed :func:`!reload`. Use :func:`!imp.reload`." msgstr "" -#: ../../whatsnew/3.0.rst:847 msgid "" "Removed. :meth:`!dict.has_key` -- use the :keyword:`in` operator instead." msgstr "" -#: ../../whatsnew/3.0.rst:854 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.0.rst:856 msgid "" "Due to time constraints, here is a *very* incomplete list of changes to the " "C API." msgstr "" -#: ../../whatsnew/3.0.rst:859 msgid "" "Support for several platforms was dropped, including but not limited to Mac " "OS 9, BeOS, RISCOS, Irix, and Tru64." msgstr "" -#: ../../whatsnew/3.0.rst:862 msgid ":pep:`3118`: New Buffer API." msgstr "" -#: ../../whatsnew/3.0.rst:864 msgid ":pep:`3121`: Extension Module Initialization & Finalization." msgstr "" -#: ../../whatsnew/3.0.rst:866 msgid ":pep:`3123`: Making :c:macro:`PyObject_HEAD` conform to standard C." msgstr "" -#: ../../whatsnew/3.0.rst:868 msgid "No more C API support for restricted execution." msgstr "" -#: ../../whatsnew/3.0.rst:870 msgid "" ":c:func:`!PyNumber_Coerce`, :c:func:`!PyNumber_CoerceEx`, :c:func:`!" "PyMember_Get`, and :c:func:`!PyMember_Set` C APIs are removed." msgstr "" -#: ../../whatsnew/3.0.rst:873 msgid "" -"New C API :c:func:`PyImport_ImportModuleNoBlock`, works " -"like :c:func:`PyImport_ImportModule` but won't block on the import lock " -"(returning an error instead)." +"New C API :c:func:`PyImport_ImportModuleNoBlock`, works like :c:func:" +"`PyImport_ImportModule` but won't block on the import lock (returning an " +"error instead)." msgstr "" -#: ../../whatsnew/3.0.rst:877 msgid "" "Renamed the boolean conversion C-level slot and method: ``nb_nonzero`` is " "now ``nb_bool``." msgstr "" -#: ../../whatsnew/3.0.rst:880 msgid "" "Removed :c:macro:`!METH_OLDARGS` and :c:macro:`!WITH_CYCLE_GC` from the C " "API." msgstr "" -#: ../../whatsnew/3.0.rst:886 msgid "Performance" msgstr "" -#: ../../whatsnew/3.0.rst:888 msgid "" "The net result of the 3.0 generalizations is that Python 3.0 runs the " "pystone benchmark around 10% slower than Python 2.5. Most likely the " @@ -1330,27 +1123,22 @@ msgid "" "room for improvement, but it will happen after 3.0 is released!" msgstr "" -#: ../../whatsnew/3.0.rst:898 msgid "Porting To Python 3.0" msgstr "" -#: ../../whatsnew/3.0.rst:900 msgid "" "For porting existing Python 2.5 or 2.6 source code to Python 3.0, the best " "strategy is the following:" msgstr "" -#: ../../whatsnew/3.0.rst:903 msgid "(Prerequisite:) Start with excellent test coverage." msgstr "" -#: ../../whatsnew/3.0.rst:905 msgid "" "Port to Python 2.6. This should be no more work than the average port from " "Python 2.x to Python 2.(x+1). Make sure all your tests pass." msgstr "" -#: ../../whatsnew/3.0.rst:909 msgid "" "(Still using 2.6:) Turn on the :option:`!-3` command line switch. This " "enables warnings about features that will be removed (or change) in 3.0. " @@ -1358,25 +1146,22 @@ msgid "" "there are no warnings left, and all your tests still pass." msgstr "" -#: ../../whatsnew/3.0.rst:915 msgid "" "Run the ``2to3`` source-to-source translator over your source code tree. " "Run the result of the translation under Python 3.0. Manually fix up any " "remaining issues, fixing problems until all tests pass again." msgstr "" -#: ../../whatsnew/3.0.rst:920 msgid "" "It is not recommended to try to write source code that runs unchanged under " -"both Python 2.6 and 3.0; you'd have to use a very contorted coding style, " -"e.g. avoiding ``print`` statements, metaclasses, and much more. If you are " +"both Python 2.6 and 3.0; you'd have to use a very contorted coding style, e." +"g. avoiding ``print`` statements, metaclasses, and much more. If you are " "maintaining a library that needs to support both Python 2.6 and Python 3.0, " "the best approach is to modify step 3 above by editing the 2.6 version of " "the source code and running the ``2to3`` translator again, rather than " "editing the 3.0 version of the source code." msgstr "" -#: ../../whatsnew/3.0.rst:929 msgid "" "For porting C extensions to Python 3.0, please see :ref:`cporting-howto`." msgstr "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index ac4a72c..b6502d7 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,38 +18,31 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.1.rst:3 msgid "What's New In Python 3.1" msgstr "" -#: ../../whatsnew/3.1.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/3.1.rst:5 msgid "Raymond Hettinger" msgstr "" -#: ../../whatsnew/3.1.rst:49 msgid "" "This article explains the new features in Python 3.1, compared to 3.0. " "Python 3.1 was released on June 27, 2009." msgstr "" -#: ../../whatsnew/3.1.rst:54 msgid "PEP 372: Ordered Dictionaries" msgstr "" -#: ../../whatsnew/3.1.rst:56 msgid "" "Regular Python dictionaries iterate over key/value pairs in arbitrary order. " "Over the years, a number of authors have written alternative implementations " "that remember the order that the keys were originally inserted. Based on " -"the experiences from those implementations, a " -"new :class:`collections.OrderedDict` class has been introduced." +"the experiences from those implementations, a new :class:`collections." +"OrderedDict` class has been introduced." msgstr "" -#: ../../whatsnew/3.1.rst:62 msgid "" "The OrderedDict API is substantially the same as regular dictionaries but " "will iterate over keys and values in a guaranteed order depending on when a " @@ -58,7 +51,6 @@ msgid "" "reinserting it will move it to the end." msgstr "" -#: ../../whatsnew/3.1.rst:68 msgid "" "The standard library now supports use of ordered dictionaries in several " "modules. The :mod:`configparser` module uses them by default. This lets " @@ -71,23 +63,19 @@ msgid "" "`_." msgstr "" -#: ../../whatsnew/3.1.rst:79 msgid ":pep:`372` - Ordered Dictionaries" msgstr "" -#: ../../whatsnew/3.1.rst:80 msgid "" "PEP written by Armin Ronacher and Raymond Hettinger. Implementation written " "by Raymond Hettinger." msgstr "" -#: ../../whatsnew/3.1.rst:83 msgid "" "Since an ordered dictionary remembers its insertion order, it can be used in " "conjunction with sorting to make a sorted dictionary::" msgstr "" -#: ../../whatsnew/3.1.rst:86 msgid "" ">>> # regular unsorted dictionary\n" ">>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}\n" @@ -105,18 +93,15 @@ msgid "" "OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])" msgstr "" -#: ../../whatsnew/3.1.rst:101 msgid "" "The new sorted dictionaries maintain their sort order when entries are " "deleted. But when new keys are added, the keys are appended to the end and " "the sort is not maintained." msgstr "" -#: ../../whatsnew/3.1.rst:107 msgid "PEP 378: Format Specifier for Thousands Separator" msgstr "" -#: ../../whatsnew/3.1.rst:109 msgid "" "The built-in :func:`format` function and the :meth:`str.format` method use a " "mini-language that now includes a simple, non-locale aware way to format a " @@ -124,7 +109,6 @@ msgid "" "program's output, improving its professional appearance and readability::" msgstr "" -#: ../../whatsnew/3.1.rst:114 msgid "" ">>> format(1234567, ',d')\n" "'1,234,567'\n" @@ -136,13 +120,11 @@ msgid "" "'1,234,567.89'" msgstr "" -#: ../../whatsnew/3.1.rst:123 msgid "" -"The supported types are :class:`int`, :class:`float`, :class:`complex` " -"and :class:`decimal.Decimal`." +"The supported types are :class:`int`, :class:`float`, :class:`complex` and :" +"class:`decimal.Decimal`." msgstr "" -#: ../../whatsnew/3.1.rst:126 msgid "" "Discussions are underway about how to specify alternative separators like " "dots, spaces, apostrophes, or underscores. Locale-aware applications should " @@ -150,25 +132,20 @@ msgid "" "thousands separators." msgstr "" -#: ../../whatsnew/3.1.rst:133 msgid ":pep:`378` - Format Specifier for Thousands Separator" msgstr "" -#: ../../whatsnew/3.1.rst:134 msgid "" "PEP written by Raymond Hettinger and implemented by Eric Smith and Mark " "Dickinson." msgstr "" -#: ../../whatsnew/3.1.rst:139 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.1.rst:141 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.1.rst:143 msgid "" "Directories and zip archives containing a :file:`__main__.py` file can now " "be executed directly by passing their name to the interpreter. The directory/" @@ -177,13 +154,11 @@ msgid "" "and Nick Coghlan; :issue:`1739468`.)" msgstr "" -#: ../../whatsnew/3.1.rst:149 msgid "" "The :func:`int` type gained a ``bit_length`` method that returns the number " "of bits necessary to represent its argument in binary::" msgstr "" -#: ../../whatsnew/3.1.rst:152 msgid "" ">>> n = 37\n" ">>> bin(37)\n" @@ -197,54 +172,45 @@ msgid "" "124" msgstr "" -#: ../../whatsnew/3.1.rst:163 msgid "" "(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger, and " "Mark Dickinson; :issue:`3439`.)" msgstr "" -#: ../../whatsnew/3.1.rst:166 msgid "" "The fields in :func:`format` strings can now be automatically numbered::" msgstr "" -#: ../../whatsnew/3.1.rst:169 msgid "" ">>> 'Sir {} of {}'.format('Gallahad', 'Camelot')\n" "'Sir Gallahad of Camelot'" msgstr "" -#: ../../whatsnew/3.1.rst:172 msgid "" "Formerly, the string would have required numbered fields such as: ``'Sir {0} " "of {1}'``." msgstr "" -#: ../../whatsnew/3.1.rst:175 msgid "(Contributed by Eric Smith; :issue:`5237`.)" msgstr "" -#: ../../whatsnew/3.1.rst:177 msgid "" "The :func:`!string.maketrans` function is deprecated and is replaced by new " "static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. " -"This change solves the confusion around which types were supported by " -"the :mod:`string` module. Now, :class:`str`, :class:`bytes`, " -"and :class:`bytearray` each have their own **maketrans** and **translate** " -"methods with intermediate translation tables of the appropriate type." +"This change solves the confusion around which types were supported by the :" +"mod:`string` module. Now, :class:`str`, :class:`bytes`, and :class:" +"`bytearray` each have their own **maketrans** and **translate** methods with " +"intermediate translation tables of the appropriate type." msgstr "" -#: ../../whatsnew/3.1.rst:184 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "" -#: ../../whatsnew/3.1.rst:186 msgid "" "The syntax of the :keyword:`with` statement now allows multiple context " "managers in a single statement::" msgstr "" -#: ../../whatsnew/3.1.rst:189 msgid "" ">>> with open('mylog.txt') as infile, open('a.out', 'w') as outfile:\n" "... for line in infile:\n" @@ -252,42 +218,35 @@ msgid "" "... outfile.write(line)" msgstr "" -#: ../../whatsnew/3.1.rst:194 msgid "" "With the new syntax, the :func:`!contextlib.nested` function is no longer " "needed and is now deprecated." msgstr "" -#: ../../whatsnew/3.1.rst:197 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" -#: ../../whatsnew/3.1.rst:200 msgid "" "``round(x, n)`` now returns an integer if *x* is an integer. Previously it " "returned a float::" msgstr "" -#: ../../whatsnew/3.1.rst:203 msgid "" ">>> round(1123, -2)\n" "1100" msgstr "" -#: ../../whatsnew/3.1.rst:206 msgid "(Contributed by Mark Dickinson; :issue:`4707`.)" msgstr "" -#: ../../whatsnew/3.1.rst:208 msgid "" "Python now uses David Gay's algorithm for finding the shortest floating-" "point representation that doesn't change its value. This should help " "mitigate some of the confusion surrounding binary floating-point numbers." msgstr "" -#: ../../whatsnew/3.1.rst:213 msgid "" "The significance is easily seen with a number like ``1.1`` which does not " "have an exact equivalent in binary floating point. Since there is no exact " @@ -298,7 +257,6 @@ msgid "" "calculations." msgstr "" -#: ../../whatsnew/3.1.rst:221 msgid "" "What is new is how the number gets displayed. Formerly, Python used a " "simple approach. The value of ``repr(1.1)`` was computed as ``format(1.1, " @@ -310,7 +268,6 @@ msgid "" "problem with Python itself)." msgstr "" -#: ../../whatsnew/3.1.rst:230 msgid "" "The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``. " "Effectively, it searches all equivalent string representations (ones that " @@ -318,14 +275,12 @@ msgid "" "representation." msgstr "" -#: ../../whatsnew/3.1.rst:235 msgid "" "The new algorithm tends to emit cleaner representations when possible, but " "it does not change the underlying values. So, it is still the case that " "``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise." msgstr "" -#: ../../whatsnew/3.1.rst:239 msgid "" "The new algorithm depends on certain features in the underlying floating-" "point implementation. If the required features are not found, the old " @@ -333,94 +288,78 @@ msgid "" "cross-platform portability by using the old algorithm." msgstr "" -#: ../../whatsnew/3.1.rst:244 msgid "(Contributed by Eric Smith and Mark Dickinson; :issue:`1580`)" msgstr "" -#: ../../whatsnew/3.1.rst:247 msgid "New, Improved, and Deprecated Modules" msgstr "" -#: ../../whatsnew/3.1.rst:249 msgid "" "Added a :class:`collections.Counter` class to support convenient counting of " "unique items in a sequence or iterable::" msgstr "" -#: ../../whatsnew/3.1.rst:252 msgid "" ">>> Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])\n" "Counter({'blue': 3, 'red': 2, 'green': 1})" msgstr "" -#: ../../whatsnew/3.1.rst:255 msgid "(Contributed by Raymond Hettinger; :issue:`1696199`.)" msgstr "" -#: ../../whatsnew/3.1.rst:257 msgid "" "Added a new module, :mod:`tkinter.ttk` for access to the Tk themed widget " "set. The basic idea of ttk is to separate, to the extent possible, the code " "implementing a widget's behavior from the code implementing its appearance." msgstr "" -#: ../../whatsnew/3.1.rst:261 msgid "(Contributed by Guilherme Polo; :issue:`2983`.)" msgstr "" -#: ../../whatsnew/3.1.rst:263 msgid "" "The :class:`gzip.GzipFile` and :class:`bz2.BZ2File` classes now support the " "context management protocol::" msgstr "" -#: ../../whatsnew/3.1.rst:266 msgid "" ">>> # Automatically close file after writing\n" ">>> with gzip.GzipFile(filename, \"wb\") as f:\n" "... f.write(b\"xxx\")" msgstr "" -#: ../../whatsnew/3.1.rst:270 msgid "(Contributed by Antoine Pitrou.)" msgstr "" -#: ../../whatsnew/3.1.rst:272 msgid "" "The :mod:`decimal` module now supports methods for creating a decimal object " "from a binary :class:`float`. The conversion is exact but can sometimes be " "surprising::" msgstr "" -#: ../../whatsnew/3.1.rst:276 msgid "" ">>> Decimal.from_float(1.1)\n" "Decimal('1.100000000000000088817841970012523233890533447265625')" msgstr "" -#: ../../whatsnew/3.1.rst:279 msgid "" "The long decimal result shows the actual binary fraction being stored for " "*1.1*. The fraction has many digits because *1.1* cannot be exactly " "represented in binary." msgstr "" -#: ../../whatsnew/3.1.rst:283 msgid "(Contributed by Raymond Hettinger and Mark Dickinson.)" msgstr "" -#: ../../whatsnew/3.1.rst:285 msgid "" -"The :mod:`itertools` module grew two new functions. " -"The :func:`itertools.combinations_with_replacement` function is one of four " -"for generating combinatorics including permutations and Cartesian products. " -"The :func:`itertools.compress` function mimics its namesake from APL. Also, " -"the existing :func:`itertools.count` function now has an optional *step* " -"argument and can accept any type of counting sequence " -"including :class:`fractions.Fraction` and :class:`decimal.Decimal`::" +"The :mod:`itertools` module grew two new functions. The :func:`itertools." +"combinations_with_replacement` function is one of four for generating " +"combinatorics including permutations and Cartesian products. The :func:" +"`itertools.compress` function mimics its namesake from APL. Also, the " +"existing :func:`itertools.count` function now has an optional *step* " +"argument and can accept any type of counting sequence including :class:" +"`fractions.Fraction` and :class:`decimal.Decimal`::" msgstr "" -#: ../../whatsnew/3.1.rst:294 msgid "" ">>> [p+q for p,q in combinations_with_replacement('LOVE', 2)]\n" "['LL', 'LO', 'LV', 'LE', 'OO', 'OV', 'OE', 'VV', 'VE', 'EE']\n" @@ -433,11 +372,9 @@ msgid "" "[Fraction(1, 2), Fraction(2, 3), Fraction(5, 6), Fraction(1, 1)]" msgstr "" -#: ../../whatsnew/3.1.rst:304 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/3.1.rst:306 msgid "" ":func:`collections.namedtuple` now supports a keyword argument *rename* " "which lets invalid fieldnames be automatically converted to positional names " @@ -446,7 +383,6 @@ msgid "" "input::" msgstr "" -#: ../../whatsnew/3.1.rst:312 msgid "" ">>> query = input()\n" "SELECT region, dept, count(*) FROM main GROUPBY region, dept\n" @@ -460,81 +396,65 @@ msgid "" " UserQuery(region='West', dept='Sales', _2=419)]" msgstr "" -#: ../../whatsnew/3.1.rst:323 msgid "(Contributed by Raymond Hettinger; :issue:`1818`.)" msgstr "" -#: ../../whatsnew/3.1.rst:325 msgid "" "The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now " "accept a flags parameter." msgstr "" -#: ../../whatsnew/3.1.rst:328 msgid "(Contributed by Gregory Smith.)" msgstr "" -#: ../../whatsnew/3.1.rst:330 msgid "" -"The :mod:`logging` module now implements a " -"simple :class:`logging.NullHandler` class for applications that are not " -"using logging but are calling library code that does. Setting-up a null " -"handler will suppress spurious warnings such as \"No handlers could be found " -"for logger foo\"::" +"The :mod:`logging` module now implements a simple :class:`logging." +"NullHandler` class for applications that are not using logging but are " +"calling library code that does. Setting-up a null handler will suppress " +"spurious warnings such as \"No handlers could be found for logger foo\"::" msgstr "" -#: ../../whatsnew/3.1.rst:335 msgid "" ">>> h = logging.NullHandler()\n" ">>> logging.getLogger(\"foo\").addHandler(h)" msgstr "" -#: ../../whatsnew/3.1.rst:338 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." msgstr "" -#: ../../whatsnew/3.1.rst:340 msgid "" "The :mod:`runpy` module which supports the ``-m`` command line switch now " "supports the execution of packages by looking for and executing a " "``__main__`` submodule when a package name is supplied." msgstr "" -#: ../../whatsnew/3.1.rst:344 msgid "(Contributed by Andi Vajda; :issue:`4195`.)" msgstr "" -#: ../../whatsnew/3.1.rst:346 msgid "" -"The :mod:`pdb` module can now access and display source code loaded " -"via :mod:`zipimport` (or any other conformant :pep:`302` loader)." +"The :mod:`pdb` module can now access and display source code loaded via :mod:" +"`zipimport` (or any other conformant :pep:`302` loader)." msgstr "" -#: ../../whatsnew/3.1.rst:349 msgid "(Contributed by Alexander Belopolsky; :issue:`4201`.)" msgstr "" -#: ../../whatsnew/3.1.rst:351 msgid ":class:`functools.partial` objects can now be pickled." msgstr "" -#: ../../whatsnew/3.1.rst:353 msgid "" "(Suggested by Antoine Pitrou and Jesse Noller. Implemented by Jack " "Diederich; :issue:`5228`.)" msgstr "" -#: ../../whatsnew/3.1.rst:356 msgid "" "Add :mod:`pydoc` help topics for symbols so that ``help('@')`` works as " "expected in the interactive environment." msgstr "" -#: ../../whatsnew/3.1.rst:359 msgid "(Contributed by David Laban; :issue:`4739`.)" msgstr "" -#: ../../whatsnew/3.1.rst:361 msgid "" "The :mod:`unittest` module now supports skipping individual tests or classes " "of tests. And it supports marking a test as an expected failure, a test that " @@ -542,7 +462,6 @@ msgid "" "TestResult::" msgstr "" -#: ../../whatsnew/3.1.rst:366 msgid "" "class TestGizmo(unittest.TestCase):\n" "\n" @@ -556,61 +475,52 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.1.rst:376 msgid "" "Also, tests for exceptions have been builtout to work with context managers " "using the :keyword:`with` statement::" msgstr "" -#: ../../whatsnew/3.1.rst:379 msgid "" "def test_division_by_zero(self):\n" " with self.assertRaises(ZeroDivisionError):\n" " x / 0" msgstr "" -#: ../../whatsnew/3.1.rst:383 msgid "" -"In addition, several new assertion methods were added " -"including :meth:`~unittest.TestCase.assertSetEqual`, :meth:`~unittest.TestCase.assertDictEqual`, :meth:`!" -"assertDictContainsSubset`, :meth:`~unittest.TestCase.assertListEqual`, :meth:`~unittest.TestCase.assertTupleEqual`, :meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() " -"`, :meth:`~unittest.TestCase.assertIsNone`, " -"and :meth:`~unittest.TestCase.assertIsNotNone`." +"In addition, several new assertion methods were added including :meth:" +"`~unittest.TestCase.assertSetEqual`, :meth:`~unittest.TestCase." +"assertDictEqual`, :meth:`!assertDictContainsSubset`, :meth:`~unittest." +"TestCase.assertListEqual`, :meth:`~unittest.TestCase.assertTupleEqual`, :" +"meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() " +"`, :meth:`~unittest.TestCase." +"assertIsNone`, and :meth:`~unittest.TestCase.assertIsNotNone`." msgstr "" -#: ../../whatsnew/3.1.rst:394 msgid "(Contributed by Benjamin Peterson and Antoine Pitrou.)" msgstr "" -#: ../../whatsnew/3.1.rst:396 msgid "" "The :mod:`io` module has three new constants for the :meth:`~io.IOBase.seek` " "method: :data:`~os.SEEK_SET`, :data:`~os.SEEK_CUR`, and :data:`~os.SEEK_END`." msgstr "" -#: ../../whatsnew/3.1.rst:399 msgid "The :data:`sys.version_info` tuple is now a named tuple::" msgstr "" -#: ../../whatsnew/3.1.rst:401 msgid "" ">>> sys.version_info\n" "sys.version_info(major=3, minor=1, micro=0, releaselevel='alpha', serial=2)" msgstr "" -#: ../../whatsnew/3.1.rst:404 msgid "(Contributed by Ross Light; :issue:`4285`.)" msgstr "" -#: ../../whatsnew/3.1.rst:406 msgid "The :mod:`!nntplib` and :mod:`imaplib` modules now support IPv6." msgstr "" -#: ../../whatsnew/3.1.rst:408 msgid "(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)" msgstr "" -#: ../../whatsnew/3.1.rst:410 msgid "" "The :mod:`pickle` module has been adapted for better interoperability with " "Python 2.x when used with protocol 2 or lower. The reorganization of the " @@ -623,7 +533,6 @@ msgid "" "*fix_imports* option::" msgstr "" -#: ../../whatsnew/3.1.rst:420 msgid "" ">>> s = {1, 2, 3}\n" ">>> pickle.dumps(s, protocol=0)\n" @@ -632,7 +541,6 @@ msgid "" "b'cbuiltins\\nset\\np0\\n((lp1\\nL1L\\naL2L\\naL3L\\natp2\\nRp3\\n.'" msgstr "" -#: ../../whatsnew/3.1.rst:426 msgid "" "An unfortunate but unavoidable side-effect of this change is that protocol 2 " "pickles produced by Python 3.1 won't be readable with Python 3.0. The latest " @@ -641,12 +549,10 @@ msgid "" "Python 2.x." msgstr "" -#: ../../whatsnew/3.1.rst:432 msgid "" "(Contributed by Alexandre Vassalotti and Antoine Pitrou, :issue:`6137`.)" msgstr "" -#: ../../whatsnew/3.1.rst:434 msgid "" "A new module, :mod:`importlib` was added. It provides a complete, portable, " "pure Python reference implementation of the :keyword:`import` statement and " @@ -655,19 +561,15 @@ msgid "" "place during imports." msgstr "" -#: ../../whatsnew/3.1.rst:440 msgid "(Contributed by Brett Cannon.)" msgstr "" -#: ../../whatsnew/3.1.rst:443 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.1.rst:445 msgid "Major performance enhancements have been added:" msgstr "" -#: ../../whatsnew/3.1.rst:447 msgid "" "The new I/O library (as defined in :pep:`3116`) was mostly written in Python " "and quickly proved to be a problematic bottleneck in Python 3.0. In Python " @@ -676,11 +578,9 @@ msgid "" "available for experimentation purposes through the ``_pyio`` module." msgstr "" -#: ../../whatsnew/3.1.rst:454 msgid "(Contributed by Amaury Forgeot d'Arc and Antoine Pitrou.)" msgstr "" -#: ../../whatsnew/3.1.rst:456 msgid "" "Added a heuristic so that tuples and dicts containing only untrackable " "objects are not tracked by the garbage collector. This can reduce the size " @@ -688,11 +588,9 @@ msgid "" "programs, depending on their particular use of datatypes." msgstr "" -#: ../../whatsnew/3.1.rst:461 msgid "(Contributed by Antoine Pitrou, :issue:`4688`.)" msgstr "" -#: ../../whatsnew/3.1.rst:463 msgid "" "Enabling a configure option named ``--with-computed-gotos`` on compilers " "that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is " @@ -700,23 +598,19 @@ msgid "" "depending on the system, the compiler, and the benchmark." msgstr "" -#: ../../whatsnew/3.1.rst:469 msgid "" -"(Contributed by Antoine Pitrou along with a number of other " -"participants, :issue:`4753`)." +"(Contributed by Antoine Pitrou along with a number of other participants, :" +"issue:`4753`)." msgstr "" -#: ../../whatsnew/3.1.rst:472 msgid "" "The decoding of UTF-8, UTF-16 and LATIN-1 is now two to four times faster." msgstr "" -#: ../../whatsnew/3.1.rst:475 msgid "" "(Contributed by Antoine Pitrou and Amaury Forgeot d'Arc, :issue:`4868`.)" msgstr "" -#: ../../whatsnew/3.1.rst:477 msgid "" "The :mod:`json` module now has a C extension to substantially improve its " "performance. In addition, the API was modified so that json works only " @@ -725,45 +619,36 @@ msgid "" "in terms of Unicode." msgstr "" -#: ../../whatsnew/3.1.rst:483 msgid "" "(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou and " "Benjamin Peterson; :issue:`4136`.)" msgstr "" -#: ../../whatsnew/3.1.rst:486 msgid "" "Unpickling now interns the attribute names of pickled objects. This saves " "memory and allows pickles to be smaller." msgstr "" -#: ../../whatsnew/3.1.rst:489 msgid "(Contributed by Jake McGuire and Antoine Pitrou; :issue:`5084`.)" msgstr "" -#: ../../whatsnew/3.1.rst:492 msgid "IDLE" msgstr "" -#: ../../whatsnew/3.1.rst:494 msgid "" "IDLE's format menu now provides an option to strip trailing whitespace from " "a source file." msgstr "" -#: ../../whatsnew/3.1.rst:497 msgid "(Contributed by Roger D. Serwy; :issue:`5150`.)" msgstr "" -#: ../../whatsnew/3.1.rst:500 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.1.rst:502 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/3.1.rst:504 msgid "" "Integers are now stored internally either in base ``2**15`` or in base " "``2**30``, the base being determined at build time. Previously, they were " @@ -775,7 +660,6 @@ msgid "" "this default." msgstr "" -#: ../../whatsnew/3.1.rst:513 msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " @@ -784,48 +668,39 @@ msgid "" "type used to store each digit::" msgstr "" -#: ../../whatsnew/3.1.rst:519 msgid "" ">>> import sys\n" ">>> sys.int_info\n" "sys.int_info(bits_per_digit=30, sizeof_digit=4)" msgstr "" -#: ../../whatsnew/3.1.rst:523 msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" msgstr "" -#: ../../whatsnew/3.1.rst:525 msgid "" "The :c:func:`PyLong_AsUnsignedLongLong()` function now handles a negative " "*pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`." msgstr "" -#: ../../whatsnew/3.1.rst:528 msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)" msgstr "" -#: ../../whatsnew/3.1.rst:530 msgid "" "Deprecated :c:func:`!PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." msgstr "" -#: ../../whatsnew/3.1.rst:532 msgid "(Contributed by Mark Dickinson; :issue:`4910`.)" msgstr "" -#: ../../whatsnew/3.1.rst:534 msgid "" "Added a new :c:func:`PyOS_string_to_double` function to replace the " "deprecated functions :c:func:`!PyOS_ascii_strtod` and :c:func:`!" "PyOS_ascii_atof`." msgstr "" -#: ../../whatsnew/3.1.rst:537 msgid "(Contributed by Mark Dickinson; :issue:`5914`.)" msgstr "" -#: ../../whatsnew/3.1.rst:539 msgid "" "Added :c:type:`PyCapsule` as a replacement for the :c:type:`!PyCObject` API. " "The principal difference is that the new type has a well defined interface " @@ -834,27 +709,22 @@ msgid "" "deprecated." msgstr "" -#: ../../whatsnew/3.1.rst:545 msgid "(Contributed by Larry Hastings; :issue:`5630`.)" msgstr "" -#: ../../whatsnew/3.1.rst:548 msgid "Porting to Python 3.1" msgstr "" -#: ../../whatsnew/3.1.rst:550 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: ../../whatsnew/3.1.rst:553 msgid "" "The new floating-point string representations can break existing doctests. " "For example::" msgstr "" -#: ../../whatsnew/3.1.rst:556 msgid "" "def e():\n" " '''Compute the base of natural logarithms.\n" @@ -877,7 +747,6 @@ msgid "" "**********************************************************************" msgstr "" -#: ../../whatsnew/3.1.rst:576 msgid "" "The automatic name remapping in the pickle module for protocol 2 or lower " "can make Python 3.1 pickles unreadable in Python 3.0. One solution is to " diff --git a/whatsnew/3.10.po b/whatsnew/3.10.po index 34fad9b..ef997e2 100644 --- a/whatsnew/3.10.po +++ b/whatsnew/3.10.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,121 +18,93 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.10.rst:3 msgid "What's New In Python 3.10" msgstr "" -#: ../../whatsnew/3.10.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.10.rst:5 msgid "Pablo Galindo Salgado" msgstr "" -#: ../../whatsnew/3.10.rst:47 msgid "" "This article explains the new features in Python 3.10, compared to 3.9. " -"Python 3.10 was released on October 4, 2021. For full details, see " -"the :ref:`changelog `." +"Python 3.10 was released on October 4, 2021. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.10.rst:52 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.10.rst:60 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.10.rst:62 msgid ":pep:`634`, Structural Pattern Matching: Specification" msgstr "" -#: ../../whatsnew/3.10.rst:63 msgid ":pep:`635`, Structural Pattern Matching: Motivation and Rationale" msgstr "" -#: ../../whatsnew/3.10.rst:64 msgid ":pep:`636`, Structural Pattern Matching: Tutorial" msgstr "" -#: ../../whatsnew/3.10.rst:65 msgid "" ":issue:`12782`, Parenthesized context managers are now officially allowed." msgstr "" -#: ../../whatsnew/3.10.rst:67 msgid "New features in the standard library:" msgstr "" -#: ../../whatsnew/3.10.rst:69 msgid ":pep:`618`, Add Optional Length-Checking To zip." msgstr "" -#: ../../whatsnew/3.10.rst:71 msgid "Interpreter improvements:" msgstr "" -#: ../../whatsnew/3.10.rst:73 msgid ":pep:`626`, Precise line numbers for debugging and other tools." msgstr "" -#: ../../whatsnew/3.10.rst:75 msgid "New typing features:" msgstr "" -#: ../../whatsnew/3.10.rst:77 msgid ":pep:`604`, Allow writing union types as X | Y" msgstr "" -#: ../../whatsnew/3.10.rst:78 msgid ":pep:`612`, Parameter Specification Variables" msgstr "" -#: ../../whatsnew/3.10.rst:79 msgid ":pep:`613`, Explicit Type Aliases" msgstr "" -#: ../../whatsnew/3.10.rst:80 msgid ":pep:`647`, User-Defined Type Guards" msgstr "" -#: ../../whatsnew/3.10.rst:82 msgid "Important deprecations, removals or restrictions:" msgstr "" -#: ../../whatsnew/3.10.rst:84 msgid ":pep:`644`, Require OpenSSL 1.1.1 or newer" msgstr "" -#: ../../whatsnew/3.10.rst:85 msgid ":pep:`632`, Deprecate distutils module." msgstr "" -#: ../../whatsnew/3.10.rst:86 msgid "" ":pep:`623`, Deprecate and prepare for the removal of the wstr member in " "PyUnicodeObject." msgstr "" -#: ../../whatsnew/3.10.rst:87 msgid ":pep:`624`, Remove Py_UNICODE encoder APIs" msgstr "" -#: ../../whatsnew/3.10.rst:88 msgid ":pep:`597`, Add optional EncodingWarning" msgstr "" -#: ../../whatsnew/3.10.rst:92 ../../whatsnew/3.10.rst:2054 msgid "New Features" msgstr "" -#: ../../whatsnew/3.10.rst:97 msgid "Parenthesized context managers" msgstr "" -#: ../../whatsnew/3.10.rst:99 msgid "" "Using enclosing parentheses for continuation across multiple lines in " "context managers is now supported. This allows formatting a long collection " @@ -145,7 +113,6 @@ msgid "" "valid:" msgstr "" -#: ../../whatsnew/3.10.rst:105 msgid "" "with (CtxManager() as example):\n" " ...\n" @@ -171,12 +138,10 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.10.rst:130 msgid "" "it is also possible to use a trailing comma at the end of the enclosed group:" msgstr "" -#: ../../whatsnew/3.10.rst:133 msgid "" "with (\n" " CtxManager1() as example1,\n" @@ -186,27 +151,22 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.10.rst:142 msgid "" -"This new syntax uses the non LL(1) capacities of the new parser. " -"Check :pep:`617` for more details." +"This new syntax uses the non LL(1) capacities of the new parser. Check :pep:" +"`617` for more details." msgstr "" -#: ../../whatsnew/3.10.rst:145 msgid "" -"(Contributed by Guido van Rossum, Pablo Galindo and Lysandros Nikolaou " -"in :issue:`12782` and :issue:`40334`.)" +"(Contributed by Guido van Rossum, Pablo Galindo and Lysandros Nikolaou in :" +"issue:`12782` and :issue:`40334`.)" msgstr "" -#: ../../whatsnew/3.10.rst:150 msgid "Better error messages" msgstr "" -#: ../../whatsnew/3.10.rst:153 msgid "SyntaxErrors" msgstr "" -#: ../../whatsnew/3.10.rst:155 msgid "" "When parsing code that contains unclosed parentheses or brackets the " "interpreter now includes the location of the unclosed bracket of parentheses " @@ -215,20 +175,17 @@ msgid "" "code (notice the unclosed '{'):" msgstr "" -#: ../../whatsnew/3.10.rst:160 msgid "" "expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,\n" " 38: 4, 39: 4, 45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 54: 6,\n" "some_other_code = foo()" msgstr "" -#: ../../whatsnew/3.10.rst:166 msgid "" "Previous versions of the interpreter reported confusing places as the " "location of the syntax error:" msgstr "" -#: ../../whatsnew/3.10.rst:169 msgid "" "File \"example.py\", line 3\n" " some_other_code = foo()\n" @@ -236,11 +193,9 @@ msgid "" "SyntaxError: invalid syntax" msgstr "" -#: ../../whatsnew/3.10.rst:176 msgid "but in Python 3.10 a more informative error is emitted:" msgstr "" -#: ../../whatsnew/3.10.rst:178 msgid "" "File \"example.py\", line 1\n" " expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,\n" @@ -248,25 +203,21 @@ msgid "" "SyntaxError: '{' was never closed" msgstr "" -#: ../../whatsnew/3.10.rst:186 msgid "" "In a similar way, errors involving unclosed string literals (single and " "triple quoted) now point to the start of the string instead of reporting EOF/" "EOL." msgstr "" -#: ../../whatsnew/3.10.rst:189 msgid "" "These improvements are inspired by previous work in the PyPy interpreter." msgstr "" -#: ../../whatsnew/3.10.rst:191 msgid "" -"(Contributed by Pablo Galindo in :issue:`42864` and Batuhan Taskaya " -"in :issue:`40176`.)" +"(Contributed by Pablo Galindo in :issue:`42864` and Batuhan Taskaya in :" +"issue:`40176`.)" msgstr "" -#: ../../whatsnew/3.10.rst:194 msgid "" ":exc:`SyntaxError` exceptions raised by the interpreter will now highlight " "the full error range of the expression that constitutes the syntax error " @@ -274,7 +225,6 @@ msgid "" "of displaying (before Python 3.10):" msgstr "" -#: ../../whatsnew/3.10.rst:199 msgid "" ">>> foo(x, z for z in range(10), t, w)\n" " File \"\", line 1\n" @@ -283,11 +233,9 @@ msgid "" "SyntaxError: Generator expression must be parenthesized" msgstr "" -#: ../../whatsnew/3.10.rst:207 msgid "now Python 3.10 will display the exception as:" msgstr "" -#: ../../whatsnew/3.10.rst:209 msgid "" ">>> foo(x, z for z in range(10), t, w)\n" " File \"\", line 1\n" @@ -296,22 +244,18 @@ msgid "" "SyntaxError: Generator expression must be parenthesized" msgstr "" -#: ../../whatsnew/3.10.rst:217 msgid "This improvement was contributed by Pablo Galindo in :issue:`43914`." msgstr "" -#: ../../whatsnew/3.10.rst:219 msgid "" "A considerable amount of new specialized messages for :exc:`SyntaxError` " "exceptions have been incorporated. Some of the most notable ones are as " "follows:" msgstr "" -#: ../../whatsnew/3.10.rst:222 msgid "Missing ``:`` before blocks:" msgstr "" -#: ../../whatsnew/3.10.rst:224 msgid "" ">>> if rocket.position > event_horizon\n" " File \"\", line 1\n" @@ -320,15 +264,12 @@ msgid "" "SyntaxError: expected ':'" msgstr "" -#: ../../whatsnew/3.10.rst:232 msgid "(Contributed by Pablo Galindo in :issue:`42997`.)" msgstr "" -#: ../../whatsnew/3.10.rst:234 msgid "Unparenthesised tuples in comprehensions targets:" msgstr "" -#: ../../whatsnew/3.10.rst:236 msgid "" ">>> {x,y for x,y in zip('abcd', '1234')}\n" " File \"\", line 1\n" @@ -337,15 +278,12 @@ msgid "" "SyntaxError: did you forget parentheses around the comprehension target?" msgstr "" -#: ../../whatsnew/3.10.rst:244 msgid "(Contributed by Pablo Galindo in :issue:`43017`.)" msgstr "" -#: ../../whatsnew/3.10.rst:246 msgid "Missing commas in collection literals and between expressions:" msgstr "" -#: ../../whatsnew/3.10.rst:248 msgid "" ">>> items = {\n" "... x: 1,\n" @@ -357,15 +295,12 @@ msgid "" "SyntaxError: invalid syntax. Perhaps you forgot a comma?" msgstr "" -#: ../../whatsnew/3.10.rst:259 msgid "(Contributed by Pablo Galindo in :issue:`43822`.)" msgstr "" -#: ../../whatsnew/3.10.rst:261 msgid "Multiple Exception types without parentheses:" msgstr "" -#: ../../whatsnew/3.10.rst:263 msgid "" ">>> try:\n" "... build_dyson_sphere()\n" @@ -376,15 +311,12 @@ msgid "" "SyntaxError: multiple exception types must be parenthesized" msgstr "" -#: ../../whatsnew/3.10.rst:273 msgid "(Contributed by Pablo Galindo in :issue:`43149`.)" msgstr "" -#: ../../whatsnew/3.10.rst:275 msgid "Missing ``:`` and values in dictionary literals:" msgstr "" -#: ../../whatsnew/3.10.rst:277 msgid "" ">>> values = {\n" "... x: 1,\n" @@ -403,15 +335,12 @@ msgid "" "SyntaxError: ':' expected after dictionary key" msgstr "" -#: ../../whatsnew/3.10.rst:295 msgid "(Contributed by Pablo Galindo in :issue:`43823`.)" msgstr "" -#: ../../whatsnew/3.10.rst:297 msgid "``try`` blocks without ``except`` or ``finally`` blocks:" msgstr "" -#: ../../whatsnew/3.10.rst:299 msgid "" ">>> try:\n" "... x = 2\n" @@ -422,15 +351,12 @@ msgid "" "SyntaxError: expected 'except' or 'finally' block" msgstr "" -#: ../../whatsnew/3.10.rst:309 msgid "(Contributed by Pablo Galindo in :issue:`44305`.)" msgstr "" -#: ../../whatsnew/3.10.rst:311 msgid "Usage of ``=`` instead of ``==`` in comparisons:" msgstr "" -#: ../../whatsnew/3.10.rst:313 msgid "" ">>> if rocket.position = event_horizon:\n" " File \"\", line 1\n" @@ -440,15 +366,12 @@ msgid "" "of '='?" msgstr "" -#: ../../whatsnew/3.10.rst:321 msgid "(Contributed by Pablo Galindo in :issue:`43797`.)" msgstr "" -#: ../../whatsnew/3.10.rst:323 msgid "Usage of ``*`` in f-strings:" msgstr "" -#: ../../whatsnew/3.10.rst:325 msgid "" ">>> f\"Black holes {*all_black_holes} and revelations\"\n" " File \"\", line 1\n" @@ -457,22 +380,18 @@ msgid "" "SyntaxError: f-string: cannot use starred expression here" msgstr "" -#: ../../whatsnew/3.10.rst:333 msgid "(Contributed by Pablo Galindo in :issue:`41064`.)" msgstr "" -#: ../../whatsnew/3.10.rst:336 msgid "IndentationErrors" msgstr "" -#: ../../whatsnew/3.10.rst:338 msgid "" "Many :exc:`IndentationError` exceptions now have more context regarding what " "kind of block was expecting an indentation, including the location of the " "statement:" msgstr "" -#: ../../whatsnew/3.10.rst:341 msgid "" ">>> def foo():\n" "... if lel:\n" @@ -483,18 +402,15 @@ msgid "" "IndentationError: expected an indented block after 'if' statement in line 2" msgstr "" -#: ../../whatsnew/3.10.rst:353 msgid "AttributeErrors" msgstr "" -#: ../../whatsnew/3.10.rst:355 msgid "" "When printing :exc:`AttributeError`, :c:func:`!PyErr_Display` will offer " "suggestions of similar attribute names in the object that the exception was " "raised from:" msgstr "" -#: ../../whatsnew/3.10.rst:359 msgid "" ">>> collections.namedtoplo\n" "Traceback (most recent call last):\n" @@ -503,29 +419,24 @@ msgid "" "mean: namedtuple?" msgstr "" -#: ../../whatsnew/3.10.rst:366 ../../whatsnew/3.10.rst:388 msgid "(Contributed by Pablo Galindo in :issue:`38530`.)" msgstr "" -#: ../../whatsnew/3.10.rst:369 msgid "" "Notice this won't work if :c:func:`!PyErr_Display` is not called to display " "the error which can happen if some other custom error display function is " "used. This is a common scenario in some REPLs like IPython." msgstr "" -#: ../../whatsnew/3.10.rst:374 msgid "NameErrors" msgstr "" -#: ../../whatsnew/3.10.rst:376 msgid "" "When printing :exc:`NameError` raised by the interpreter, :c:func:`!" "PyErr_Display` will offer suggestions of similar variable names in the " "function that the exception was raised from:" msgstr "" -#: ../../whatsnew/3.10.rst:380 msgid "" ">>> schwarzschild_black_hole = None\n" ">>> schwarschild_black_hole\n" @@ -535,18 +446,15 @@ msgid "" "schwarzschild_black_hole?" msgstr "" -#: ../../whatsnew/3.10.rst:391 msgid "" "Notice this won't work if :c:func:`!PyErr_Display` is not called to display " "the error, which can happen if some other custom error display function is " "used. This is a common scenario in some REPLs like IPython." msgstr "" -#: ../../whatsnew/3.10.rst:397 msgid "PEP 626: Precise line numbers for debugging and other tools" msgstr "" -#: ../../whatsnew/3.10.rst:399 msgid "" "PEP 626 brings more precise and reliable line numbers for debugging, " "profiling and coverage tools. Tracing events, with the correct line number, " @@ -554,25 +462,21 @@ msgid "" "are executed." msgstr "" -#: ../../whatsnew/3.10.rst:402 msgid "" "The :attr:`~frame.f_lineno` attribute of frame objects will always contain " "the expected line number." msgstr "" -#: ../../whatsnew/3.10.rst:405 msgid "" "The :attr:`~codeobject.co_lnotab` attribute of :ref:`code objects ` is deprecated and will be removed in 3.12. Code that needs to " -"convert from offset to line number should use the " -"new :meth:`~codeobject.co_lines` method instead." +"convert from offset to line number should use the new :meth:`~codeobject." +"co_lines` method instead." msgstr "" -#: ../../whatsnew/3.10.rst:412 msgid "PEP 634: Structural Pattern Matching" msgstr "" -#: ../../whatsnew/3.10.rst:414 msgid "" "Structural pattern matching has been added in the form of a *match " "statement* and *case statements* of patterns with associated actions. " @@ -582,15 +486,12 @@ msgid "" "actions based on different forms of data." msgstr "" -#: ../../whatsnew/3.10.rst:422 msgid "Syntax and operations" msgstr "" -#: ../../whatsnew/3.10.rst:424 msgid "The generic syntax of pattern matching is::" msgstr "" -#: ../../whatsnew/3.10.rst:426 msgid "" "match subject:\n" " case :\n" @@ -603,32 +504,26 @@ msgid "" " " msgstr "" -#: ../../whatsnew/3.10.rst:436 msgid "" "A match statement takes an expression and compares its value to successive " "patterns given as one or more case blocks. Specifically, pattern matching " "operates by:" msgstr "" -#: ../../whatsnew/3.10.rst:440 msgid "using data with type and shape (the ``subject``)" msgstr "" -#: ../../whatsnew/3.10.rst:441 msgid "evaluating the ``subject`` in the ``match`` statement" msgstr "" -#: ../../whatsnew/3.10.rst:442 msgid "" "comparing the subject with each pattern in a ``case`` statement from top to " "bottom until a match is confirmed." msgstr "" -#: ../../whatsnew/3.10.rst:444 msgid "executing the action associated with the pattern of the confirmed match" msgstr "" -#: ../../whatsnew/3.10.rst:446 msgid "" "If an exact match is not confirmed, the last case, a wildcard ``_``, if " "provided, will be used as the matching case. If an exact match is not " @@ -636,11 +531,9 @@ msgid "" "op." msgstr "" -#: ../../whatsnew/3.10.rst:452 msgid "Declarative approach" msgstr "" -#: ../../whatsnew/3.10.rst:454 msgid "" "Readers may be aware of pattern matching through the simple example of " "matching a subject (data object) to a literal (pattern) with the switch " @@ -649,7 +542,6 @@ msgid "" "case statements containing literals." msgstr "" -#: ../../whatsnew/3.10.rst:460 msgid "" "More powerful examples of pattern matching can be found in languages such as " "Scala and Elixir. With structural pattern matching, the approach is " @@ -657,7 +549,6 @@ msgid "" "to match." msgstr "" -#: ../../whatsnew/3.10.rst:464 msgid "" "While an \"imperative\" series of instructions using nested \"if\" " "statements could be used to accomplish something similar to structural " @@ -669,11 +560,9 @@ msgid "" "of the subject's type and shape." msgstr "" -#: ../../whatsnew/3.10.rst:473 msgid "Simple pattern: match to a literal" msgstr "" -#: ../../whatsnew/3.10.rst:475 msgid "" "Let's look at this example as pattern matching in its simplest form: a " "value, the subject, being matched to several literals, the patterns. In the " @@ -682,7 +571,6 @@ msgid "" "status codes. The associated action to the case is executed after a match::" msgstr "" -#: ../../whatsnew/3.10.rst:481 msgid "" "def http_error(status):\n" " match status:\n" @@ -696,7 +584,6 @@ msgid "" " return \"Something's wrong with the internet\"" msgstr "" -#: ../../whatsnew/3.10.rst:492 msgid "" "If the above function is passed a ``status`` of 418, \"I'm a teapot\" is " "returned. If the above function is passed a ``status`` of 500, the case " @@ -706,28 +593,23 @@ msgid "" "``_`` is optional." msgstr "" -#: ../../whatsnew/3.10.rst:499 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" -#: ../../whatsnew/3.10.rst:501 msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" msgstr "" -#: ../../whatsnew/3.10.rst:505 msgid "Behavior without the wildcard" msgstr "" -#: ../../whatsnew/3.10.rst:507 msgid "" "If we modify the above example by removing the last case block, the example " "becomes::" msgstr "" -#: ../../whatsnew/3.10.rst:510 msgid "" "def http_error(status):\n" " match status:\n" @@ -739,25 +621,21 @@ msgid "" " return \"I'm a teapot\"" msgstr "" -#: ../../whatsnew/3.10.rst:519 msgid "" "Without the use of ``_`` in a case statement, a match may not exist. If no " "match exists, the behavior is a no-op. For example, if ``status`` of 500 is " "passed, a no-op occurs." msgstr "" -#: ../../whatsnew/3.10.rst:524 msgid "Patterns with a literal and variable" msgstr "" -#: ../../whatsnew/3.10.rst:526 msgid "" "Patterns can look like unpacking assignments, and a pattern may be used to " "bind variables. In this example, a data point can be unpacked to its x-" "coordinate and y-coordinate::" msgstr "" -#: ../../whatsnew/3.10.rst:530 msgid "" "# point is an (x, y) tuple\n" "match point:\n" @@ -773,7 +651,6 @@ msgid "" " raise ValueError(\"Not a point\")" msgstr "" -#: ../../whatsnew/3.10.rst:543 msgid "" "The first pattern has two literals, ``(0, 0)``, and may be thought of as an " "extension of the literal pattern shown above. The next two patterns combine " @@ -782,18 +659,15 @@ msgid "" "conceptually similar to the unpacking assignment ``(x, y) = point``." msgstr "" -#: ../../whatsnew/3.10.rst:550 msgid "Patterns and classes" msgstr "" -#: ../../whatsnew/3.10.rst:552 msgid "" "If you are using classes to structure your data, you can use as a pattern " "the class name followed by an argument list resembling a constructor. This " "pattern has the ability to capture instance attributes into variables::" msgstr "" -#: ../../whatsnew/3.10.rst:556 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -814,11 +688,9 @@ msgid "" " print(\"Not a point\")" msgstr "" -#: ../../whatsnew/3.10.rst:575 msgid "Patterns with positional parameters" msgstr "" -#: ../../whatsnew/3.10.rst:577 msgid "" "You can use positional parameters with some builtin classes that provide an " "ordering for their attributes (e.g. dataclasses). You can also define a " @@ -828,7 +700,6 @@ msgid "" "attribute to the ``var`` variable)::" msgstr "" -#: ../../whatsnew/3.10.rst:583 msgid "" "Point(1, var)\n" "Point(1, y=var)\n" @@ -836,17 +707,14 @@ msgid "" "Point(y=var, x=1)" msgstr "" -#: ../../whatsnew/3.10.rst:589 msgid "Nested patterns" msgstr "" -#: ../../whatsnew/3.10.rst:591 msgid "" "Patterns can be arbitrarily nested. For example, if our data is a short " "list of points, it could be matched like this::" msgstr "" -#: ../../whatsnew/3.10.rst:594 msgid "" "match points:\n" " case []:\n" @@ -861,18 +729,15 @@ msgid "" " print(\"Something else is found in the list.\")" msgstr "" -#: ../../whatsnew/3.10.rst:607 msgid "Complex patterns and the wildcard" msgstr "" -#: ../../whatsnew/3.10.rst:609 msgid "" "To this point, the examples have used ``_`` alone in the last case " "statement. A wildcard can be used in more complex patterns, such as " "``('error', code, _)``. For example::" msgstr "" -#: ../../whatsnew/3.10.rst:613 msgid "" "match test_variable:\n" " case ('warning', code, 40):\n" @@ -881,24 +746,20 @@ msgid "" " print(f\"An error {code} occurred.\")" msgstr "" -#: ../../whatsnew/3.10.rst:619 msgid "" "In the above case, ``test_variable`` will match for ('error', code, 100) and " "('error', code, 800)." msgstr "" -#: ../../whatsnew/3.10.rst:623 msgid "Guard" msgstr "" -#: ../../whatsnew/3.10.rst:625 msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" -#: ../../whatsnew/3.10.rst:629 msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -907,15 +768,12 @@ msgid "" " print(f\"Point is not on the diagonal.\")" msgstr "" -#: ../../whatsnew/3.10.rst:636 msgid "Other Key Features" msgstr "" -#: ../../whatsnew/3.10.rst:638 msgid "Several other key features:" msgstr "" -#: ../../whatsnew/3.10.rst:640 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. Technically, the subject " @@ -924,7 +782,6 @@ msgid "" "match strings." msgstr "" -#: ../../whatsnew/3.10.rst:646 msgid "" "Sequence patterns support wildcards: ``[x, y, *rest]`` and ``(x, y, *rest)`` " "work similar to wildcards in unpacking assignments. The name after ``*`` " @@ -932,7 +789,6 @@ msgid "" "items without binding the remaining items." msgstr "" -#: ../../whatsnew/3.10.rst:651 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dict. Unlike sequence " @@ -940,34 +796,28 @@ msgid "" "(But ``**_`` would be redundant, so is not allowed.)" msgstr "" -#: ../../whatsnew/3.10.rst:656 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" -#: ../../whatsnew/3.10.rst:658 msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "" -#: ../../whatsnew/3.10.rst:660 msgid "" "This binds x1, y1, x2, y2 like you would expect without the ``as`` clause, " "and p2 to the entire second item of the subject." msgstr "" -#: ../../whatsnew/3.10.rst:663 msgid "" "Most literals are compared by equality. However, the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" -#: ../../whatsnew/3.10.rst:666 msgid "" "Named constants may be used in patterns. These named constants must be " "dotted names to prevent the constant from being interpreted as a capture " "variable::" msgstr "" -#: ../../whatsnew/3.10.rst:670 msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -985,17 +835,14 @@ msgid "" " print(\"I'm feeling the blues :(\")" msgstr "" -#: ../../whatsnew/3.10.rst:685 msgid "" -"For the full specification see :pep:`634`. Motivation and rationale are " -"in :pep:`635`, and a longer tutorial is in :pep:`636`." +"For the full specification see :pep:`634`. Motivation and rationale are in :" +"pep:`635`, and a longer tutorial is in :pep:`636`." msgstr "" -#: ../../whatsnew/3.10.rst:692 msgid "Optional ``EncodingWarning`` and ``encoding=\"locale\"`` option" msgstr "" -#: ../../whatsnew/3.10.rst:694 msgid "" "The default encoding of :class:`~io.TextIOWrapper` and :func:`open` is " "platform and locale dependent. Since UTF-8 is used on most Unix platforms, " @@ -1003,106 +850,87 @@ msgid "" "TOML, Markdown) is a very common bug. For example::" msgstr "" -#: ../../whatsnew/3.10.rst:699 msgid "" "# BUG: \"rb\" mode or encoding=\"utf-8\" should be used.\n" "with open(\"data.json\") as f:\n" " data = json.load(f)" msgstr "" -#: ../../whatsnew/3.10.rst:703 msgid "" "To find this type of bug, an optional ``EncodingWarning`` is added. It is " "emitted when :data:`sys.flags.warn_default_encoding ` is true and " "locale-specific default encoding is used." msgstr "" -#: ../../whatsnew/3.10.rst:707 msgid "" "``-X warn_default_encoding`` option and :envvar:`PYTHONWARNDEFAULTENCODING` " "are added to enable the warning." msgstr "" -#: ../../whatsnew/3.10.rst:710 msgid "See :ref:`io-text-encoding` for more information." msgstr "" -#: ../../whatsnew/3.10.rst:715 msgid "New Features Related to Type Hints" msgstr "" -#: ../../whatsnew/3.10.rst:717 msgid "" -"This section covers major changes affecting :pep:`484` type hints and " -"the :mod:`typing` module." +"This section covers major changes affecting :pep:`484` type hints and the :" +"mod:`typing` module." msgstr "" -#: ../../whatsnew/3.10.rst:722 msgid "PEP 604: New Type Union Operator" msgstr "" -#: ../../whatsnew/3.10.rst:724 msgid "" "A new type union operator was introduced which enables the syntax ``X | Y``. " "This provides a cleaner way of expressing 'either type X or type Y' instead " "of using :class:`typing.Union`, especially in type hints." msgstr "" -#: ../../whatsnew/3.10.rst:728 msgid "" "In previous versions of Python, to apply a type hint for functions accepting " "arguments of multiple types, :class:`typing.Union` was used::" msgstr "" -#: ../../whatsnew/3.10.rst:731 msgid "" "def square(number: Union[int, float]) -> Union[int, float]:\n" " return number ** 2" msgstr "" -#: ../../whatsnew/3.10.rst:735 msgid "Type hints can now be written in a more succinct manner::" msgstr "" -#: ../../whatsnew/3.10.rst:737 msgid "" "def square(number: int | float) -> int | float:\n" " return number ** 2" msgstr "" -#: ../../whatsnew/3.10.rst:741 msgid "" -"This new syntax is also accepted as the second argument " -"to :func:`isinstance` and :func:`issubclass`::" +"This new syntax is also accepted as the second argument to :func:" +"`isinstance` and :func:`issubclass`::" msgstr "" -#: ../../whatsnew/3.10.rst:744 msgid "" ">>> isinstance(1, int | str)\n" "True" msgstr "" -#: ../../whatsnew/3.10.rst:747 msgid "See :ref:`types-union` and :pep:`604` for more details." msgstr "" -#: ../../whatsnew/3.10.rst:749 msgid "" "(Contributed by Maggie Moss and Philippe Prados in :issue:`41428`, with " "additions by Yurii Karabas and Serhiy Storchaka in :issue:`44490`.)" msgstr "" -#: ../../whatsnew/3.10.rst:754 msgid "PEP 612: Parameter Specification Variables" msgstr "" -#: ../../whatsnew/3.10.rst:756 msgid "" "Two new options to improve the information provided to static type checkers " "for :pep:`484`\\ 's ``Callable`` have been added to the :mod:`typing` module." msgstr "" -#: ../../whatsnew/3.10.rst:759 msgid "" "The first is the parameter specification variable. They are used to forward " "the parameter types of one callable to another callable -- a pattern " @@ -1111,7 +939,6 @@ msgid "" "to type annotate dependency of parameter types in such a precise manner." msgstr "" -#: ../../whatsnew/3.10.rst:765 msgid "" "The second option is the new ``Concatenate`` operator. It's used in " "conjunction with parameter specification variables to type annotate a higher " @@ -1119,23 +946,20 @@ msgid "" "Examples of usage can be found in :class:`typing.Concatenate`." msgstr "" -#: ../../whatsnew/3.10.rst:770 msgid "" -"See :class:`typing.Callable`, :class:`typing.ParamSpec`, :class:`typing.Concatenate`, :class:`typing.ParamSpecArgs`, :class:`typing.ParamSpecKwargs`, " -"and :pep:`612` for more details." +"See :class:`typing.Callable`, :class:`typing.ParamSpec`, :class:`typing." +"Concatenate`, :class:`typing.ParamSpecArgs`, :class:`typing." +"ParamSpecKwargs`, and :pep:`612` for more details." msgstr "" -#: ../../whatsnew/3.10.rst:774 msgid "" "(Contributed by Ken Jin in :issue:`41559`, with minor enhancements by Jelle " "Zijlstra in :issue:`43783`. PEP written by Mark Mendoza.)" msgstr "" -#: ../../whatsnew/3.10.rst:779 msgid "PEP 613: TypeAlias" msgstr "" -#: ../../whatsnew/3.10.rst:781 msgid "" ":pep:`484` introduced the concept of type aliases, only requiring them to be " "top-level unannotated assignments. This simplicity sometimes made it " @@ -1144,99 +968,82 @@ msgid "" "involved. Compare::" msgstr "" -#: ../../whatsnew/3.10.rst:786 msgid "" "StrCache = 'Cache[str]' # a type alias\n" "LOG_PREFIX = 'LOG[DEBUG]' # a module constant" msgstr "" -#: ../../whatsnew/3.10.rst:789 msgid "" "Now the :mod:`typing` module has a special value :data:`~typing.TypeAlias` " "which lets you declare type aliases more explicitly::" msgstr "" -#: ../../whatsnew/3.10.rst:792 msgid "" "StrCache: TypeAlias = 'Cache[str]' # a type alias\n" "LOG_PREFIX = 'LOG[DEBUG]' # a module constant" msgstr "" -#: ../../whatsnew/3.10.rst:795 msgid "See :pep:`613` for more details." msgstr "" -#: ../../whatsnew/3.10.rst:797 msgid "(Contributed by Mikhail Golubev in :issue:`41923`.)" msgstr "" -#: ../../whatsnew/3.10.rst:800 msgid "PEP 647: User-Defined Type Guards" msgstr "" -#: ../../whatsnew/3.10.rst:802 msgid "" ":data:`~typing.TypeGuard` has been added to the :mod:`typing` module to " "annotate type guard functions and improve information provided to static " -"type checkers during type narrowing. For more information, please " -"see :data:`~typing.TypeGuard`\\ 's documentation, and :pep:`647`." +"type checkers during type narrowing. For more information, please see :data:" +"`~typing.TypeGuard`\\ 's documentation, and :pep:`647`." msgstr "" -#: ../../whatsnew/3.10.rst:807 msgid "" "(Contributed by Ken Jin and Guido van Rossum in :issue:`43766`. PEP written " "by Eric Traut.)" msgstr "" -#: ../../whatsnew/3.10.rst:811 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.10.rst:813 msgid "" "The :class:`int` type has a new method :meth:`int.bit_count`, returning the " "number of ones in the binary expansion of a given integer, also known as the " "population count. (Contributed by Niklas Fiekas in :issue:`29882`.)" msgstr "" -#: ../../whatsnew/3.10.rst:817 msgid "" -"The views returned by :meth:`dict.keys`, :meth:`dict.values` " -"and :meth:`dict.items` now all have a ``mapping`` attribute that gives " -"a :class:`types.MappingProxyType` object wrapping the original dictionary. " -"(Contributed by Dennis Sweeney in :issue:`40890`.)" +"The views returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:`dict." +"items` now all have a ``mapping`` attribute that gives a :class:`types." +"MappingProxyType` object wrapping the original dictionary. (Contributed by " +"Dennis Sweeney in :issue:`40890`.)" msgstr "" -#: ../../whatsnew/3.10.rst:822 msgid "" ":pep:`618`: The :func:`zip` function now has an optional ``strict`` flag, " "used to require that all the iterables have an equal length." msgstr "" -#: ../../whatsnew/3.10.rst:825 msgid "" "Builtin and extension functions that take integer arguments no longer " "accept :class:`~decimal.Decimal`\\ s, :class:`~fractions.Fraction`\\ s and " "other objects that can be converted to integers only with a loss (e.g. that " -"have the :meth:`~object.__int__` method but do not have " -"the :meth:`~object.__index__` method). (Contributed by Serhiy Storchaka " -"in :issue:`37999`.)" +"have the :meth:`~object.__int__` method but do not have the :meth:`~object." +"__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.)" msgstr "" -#: ../../whatsnew/3.10.rst:832 msgid "" "If :func:`object.__ipow__` returns :data:`NotImplemented`, the operator will " "correctly fall back to :func:`object.__pow__` and :func:`object.__rpow__` as " "expected. (Contributed by Alex Shkop in :issue:`38302`.)" msgstr "" -#: ../../whatsnew/3.10.rst:836 msgid "" "Assignment expressions can now be used unparenthesized within set literals " "and set comprehensions, as well as in sequence indexes (but not slices)." msgstr "" -#: ../../whatsnew/3.10.rst:839 msgid "" "Functions have a new ``__builtins__`` attribute which is used to look for " "builtin symbols when a function is executed, instead of looking into " @@ -1245,7 +1052,6 @@ msgid "" "builtins. (Contributed by Mark Shannon in :issue:`42990`.)" msgstr "" -#: ../../whatsnew/3.10.rst:845 msgid "" "Two new builtin functions -- :func:`aiter` and :func:`anext` have been added " "to provide asynchronous counterparts to :func:`iter` and :func:`next`, " @@ -1253,25 +1059,22 @@ msgid "" "in :issue:`31861`.)" msgstr "" -#: ../../whatsnew/3.10.rst:850 msgid "" -"Static methods (:func:`@staticmethod `) and class methods " -"(:func:`@classmethod `) now inherit the method attributes " +"Static methods (:func:`@staticmethod `) and class methods (:" +"func:`@classmethod `) now inherit the method attributes " "(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, " "``__annotations__``) and have a new ``__wrapped__`` attribute. Moreover, " "static methods are now callable as regular functions. (Contributed by Victor " "Stinner in :issue:`43682`.)" msgstr "" -#: ../../whatsnew/3.10.rst:857 msgid "" "Annotations for complex targets (everything beside ``simple name`` targets " "defined by :pep:`526`) no longer cause any runtime effects with ``from " -"__future__ import annotations``. (Contributed by Batuhan Taskaya " -"in :issue:`42737`.)" +"__future__ import annotations``. (Contributed by Batuhan Taskaya in :issue:" +"`42737`.)" msgstr "" -#: ../../whatsnew/3.10.rst:861 msgid "" "Class and module objects now lazy-create empty annotations dicts on demand. " "The annotations dicts are stored in the object’s ``__dict__`` for backwards " @@ -1280,15 +1083,13 @@ msgid "" "howto`. (Contributed by Larry Hastings in :issue:`43901`.)" msgstr "" -#: ../../whatsnew/3.10.rst:868 msgid "" "Annotations consist of ``yield``, ``yield from``, ``await`` or named " "expressions are now forbidden under ``from __future__ import annotations`` " -"due to their side effects. (Contributed by Batuhan Taskaya " -"in :issue:`42725`.)" +"due to their side effects. (Contributed by Batuhan Taskaya in :issue:" +"`42725`.)" msgstr "" -#: ../../whatsnew/3.10.rst:873 msgid "" "Usage of unbound variables, ``super()`` and other expressions that might " "alter the processing of symbol table as annotations are now rendered " @@ -1296,221 +1097,181 @@ msgid "" "Batuhan Taskaya in :issue:`42725`.)" msgstr "" -#: ../../whatsnew/3.10.rst:878 msgid "" -"Hashes of NaN values of both :class:`float` type " -"and :class:`decimal.Decimal` type now depend on object identity. Formerly, " -"they always hashed to ``0`` even though NaN values are not equal to one " -"another. This caused potentially quadratic runtime behavior due to excessive " -"hash collisions when creating dictionaries and sets containing multiple " -"NaNs. (Contributed by Raymond Hettinger in :issue:`43475`.)" +"Hashes of NaN values of both :class:`float` type and :class:`decimal." +"Decimal` type now depend on object identity. Formerly, they always hashed to " +"``0`` even though NaN values are not equal to one another. This caused " +"potentially quadratic runtime behavior due to excessive hash collisions when " +"creating dictionaries and sets containing multiple NaNs. (Contributed by " +"Raymond Hettinger in :issue:`43475`.)" msgstr "" -#: ../../whatsnew/3.10.rst:885 msgid "" "A :exc:`SyntaxError` (instead of a :exc:`NameError`) will be raised when " -"deleting the :const:`__debug__` constant. (Contributed by Donghee Na " -"in :issue:`45000`.)" +"deleting the :const:`__debug__` constant. (Contributed by Donghee Na in :" +"issue:`45000`.)" msgstr "" -#: ../../whatsnew/3.10.rst:888 msgid "" ":exc:`SyntaxError` exceptions now have ``end_lineno`` and ``end_offset`` " "attributes. They will be ``None`` if not determined. (Contributed by Pablo " "Galindo in :issue:`43914`.)" msgstr "" -#: ../../whatsnew/3.10.rst:893 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.10.rst:895 msgid "None." msgstr "" -#: ../../whatsnew/3.10.rst:899 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.10.rst:902 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.10.rst:904 msgid "" -"Add " -"missing :meth:`~asyncio.events.AbstractEventLoop.connect_accepted_socket` " -"method. (Contributed by Alex Grönholm in :issue:`41332`.)" +"Add missing :meth:`~asyncio.loop.connect_accepted_socket` method. " +"(Contributed by Alex Grönholm in :issue:`41332`.)" msgstr "" -#: ../../whatsnew/3.10.rst:909 msgid "argparse" msgstr "" -#: ../../whatsnew/3.10.rst:911 msgid "" "Misleading phrase \"optional arguments\" was replaced with \"options\" in " "argparse help. Some tests might require adaptation if they rely on exact " "output match. (Contributed by Raymond Hettinger in :issue:`9694`.)" msgstr "" -#: ../../whatsnew/3.10.rst:915 msgid "array" msgstr "" -#: ../../whatsnew/3.10.rst:917 msgid "" "The :meth:`~array.array.index` method of :class:`array.array` now has " "optional *start* and *stop* parameters. (Contributed by Anders Lorentsen and " "Zackery Spytz in :issue:`31956`.)" msgstr "" -#: ../../whatsnew/3.10.rst:922 msgid "asynchat, asyncore, smtpd" msgstr "" -#: ../../whatsnew/3.10.rst:923 msgid "" "These modules have been marked as deprecated in their module documentation " "since Python 3.6. An import-time :class:`DeprecationWarning` has now been " "added to all three of these modules." msgstr "" -#: ../../whatsnew/3.10.rst:928 msgid "base64" msgstr "" -#: ../../whatsnew/3.10.rst:930 msgid "" "Add :func:`base64.b32hexencode` and :func:`base64.b32hexdecode` to support " "the Base32 Encoding with Extended Hex Alphabet." msgstr "" -#: ../../whatsnew/3.10.rst:934 msgid "bdb" msgstr "" -#: ../../whatsnew/3.10.rst:936 msgid "" -"Add :meth:`~bdb.Breakpoint.clearBreakpoints` to reset all set breakpoints. " -"(Contributed by Irit Katriel in :issue:`24160`.)" +"Add :meth:`!clearBreakpoints` to reset all set breakpoints. (Contributed by " +"Irit Katriel in :issue:`24160`.)" msgstr "" -#: ../../whatsnew/3.10.rst:940 msgid "bisect" msgstr "" -#: ../../whatsnew/3.10.rst:942 msgid "" -"Added the possibility of providing a *key* function to the APIs in " -"the :mod:`bisect` module. (Contributed by Raymond Hettinger " -"in :issue:`4356`.)" +"Added the possibility of providing a *key* function to the APIs in the :mod:" +"`bisect` module. (Contributed by Raymond Hettinger in :issue:`4356`.)" msgstr "" -#: ../../whatsnew/3.10.rst:946 msgid "codecs" msgstr "" -#: ../../whatsnew/3.10.rst:948 msgid "" "Add a :func:`codecs.unregister` function to unregister a codec search " "function. (Contributed by Hai Shi in :issue:`41842`.)" msgstr "" -#: ../../whatsnew/3.10.rst:952 msgid "collections.abc" msgstr "" -#: ../../whatsnew/3.10.rst:954 msgid "" "The ``__args__`` of the :ref:`parameterized generic ` " -"for :class:`collections.abc.Callable` are now consistent " -"with :data:`typing.Callable`. :class:`collections.abc.Callable` generic now " -"flattens type parameters, similar to what :data:`typing.Callable` currently " -"does. This means that ``collections.abc.Callable[[int, str], str]`` will " -"have ``__args__`` of ``(int, str, str)``; previously this was ``([int, str], " +"for :class:`collections.abc.Callable` are now consistent with :data:`typing." +"Callable`. :class:`collections.abc.Callable` generic now flattens type " +"parameters, similar to what :data:`typing.Callable` currently does. This " +"means that ``collections.abc.Callable[[int, str], str]`` will have " +"``__args__`` of ``(int, str, str)``; previously this was ``([int, str], " "str)``. To allow this change, :class:`types.GenericAlias` can now be " -"subclassed, and a subclass will be returned when subscripting " -"the :class:`collections.abc.Callable` type. Note that a :exc:`TypeError` " -"may be raised for invalid forms of " -"parameterizing :class:`collections.abc.Callable` which may have passed " -"silently in Python 3.9. (Contributed by Ken Jin in :issue:`42195`.)" +"subclassed, and a subclass will be returned when subscripting the :class:" +"`collections.abc.Callable` type. Note that a :exc:`TypeError` may be raised " +"for invalid forms of parameterizing :class:`collections.abc.Callable` which " +"may have passed silently in Python 3.9. (Contributed by Ken Jin in :issue:" +"`42195`.)" msgstr "" -#: ../../whatsnew/3.10.rst:967 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.10.rst:969 msgid "" "Add a :func:`contextlib.aclosing` context manager to safely close async " "generators and objects representing asynchronously released resources. " "(Contributed by Joongi Kim and John Belmonte in :issue:`41229`.)" msgstr "" -#: ../../whatsnew/3.10.rst:973 msgid "" "Add asynchronous context manager support to :func:`contextlib.nullcontext`. " "(Contributed by Tom Gringauz in :issue:`41543`.)" msgstr "" -#: ../../whatsnew/3.10.rst:976 msgid "" "Add :class:`~contextlib.AsyncContextDecorator`, for supporting usage of " "async context managers as decorators." msgstr "" -#: ../../whatsnew/3.10.rst:980 msgid "curses" msgstr "" -#: ../../whatsnew/3.10.rst:982 msgid "" "The extended color functions added in ncurses 6.1 will be used transparently " -"by :func:`curses.color_content`, :func:`curses.init_color`, :func:`curses.init_pair`, " -"and :func:`curses.pair_content`. A new " -"function, :func:`curses.has_extended_color_support`, indicates whether " -"extended color support is provided by the underlying ncurses library. " -"(Contributed by Jeffrey Kintscher and Hans Petter Jansson in :issue:`36982`.)" +"by :func:`curses.color_content`, :func:`curses.init_color`, :func:`curses." +"init_pair`, and :func:`curses.pair_content`. A new function, :func:`curses." +"has_extended_color_support`, indicates whether extended color support is " +"provided by the underlying ncurses library. (Contributed by Jeffrey " +"Kintscher and Hans Petter Jansson in :issue:`36982`.)" msgstr "" -#: ../../whatsnew/3.10.rst:989 msgid "" "The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if " "they are provided by the underlying curses library. (Contributed by Zackery " "Spytz in :issue:`39273`.)" msgstr "" -#: ../../whatsnew/3.10.rst:994 msgid "dataclasses" msgstr "" -#: ../../whatsnew/3.10.rst:997 msgid "__slots__" msgstr "" -#: ../../whatsnew/3.10.rst:999 msgid "" "Added ``slots`` parameter in :func:`dataclasses.dataclass` decorator. " "(Contributed by Yurii Karabas in :issue:`42269`)" msgstr "" -#: ../../whatsnew/3.10.rst:1003 msgid "Keyword-only fields" msgstr "" -#: ../../whatsnew/3.10.rst:1005 msgid "" "dataclasses now supports fields that are keyword-only in the generated " "__init__ method. There are a number of ways of specifying keyword-only " "fields." msgstr "" -#: ../../whatsnew/3.10.rst:1009 msgid "You can say that every field is keyword-only:" msgstr "" -#: ../../whatsnew/3.10.rst:1011 msgid "" "from dataclasses import dataclass\n" "\n" @@ -1520,17 +1281,14 @@ msgid "" " birthday: datetime.date" msgstr "" -#: ../../whatsnew/3.10.rst:1020 msgid "" "Both ``name`` and ``birthday`` are keyword-only parameters to the generated " "__init__ method." msgstr "" -#: ../../whatsnew/3.10.rst:1023 msgid "You can specify keyword-only on a per-field basis:" msgstr "" -#: ../../whatsnew/3.10.rst:1025 msgid "" "from dataclasses import dataclass, field\n" "\n" @@ -1540,7 +1298,6 @@ msgid "" " birthday: datetime.date = field(kw_only=True)" msgstr "" -#: ../../whatsnew/3.10.rst:1034 msgid "" "Here only ``birthday`` is keyword-only. If you set ``kw_only`` on " "individual fields, be aware that there are rules about re-ordering fields " @@ -1548,13 +1305,11 @@ msgid "" "the full dataclasses documentation for details." msgstr "" -#: ../../whatsnew/3.10.rst:1039 msgid "" "You can also specify that all fields following a KW_ONLY marker are keyword-" "only. This will probably be the most common usage:" msgstr "" -#: ../../whatsnew/3.10.rst:1042 msgid "" "from dataclasses import dataclass, KW_ONLY\n" "\n" @@ -1567,187 +1322,152 @@ msgid "" " t: float = 0.0" msgstr "" -#: ../../whatsnew/3.10.rst:1054 msgid "" "Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and ``y`` are " "not. (Contributed by Eric V. Smith in :issue:`43532`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1061 msgid "distutils" msgstr "" -#: ../../whatsnew/3.10.rst:1063 msgid "" "The entire ``distutils`` package is deprecated, to be removed in Python " "3.12. Its functionality for specifying package builds has already been " "completely replaced by third-party packages ``setuptools`` and " "``packaging``, and most other commonly used APIs are available elsewhere in " -"the standard library (such " -"as :mod:`platform`, :mod:`shutil`, :mod:`subprocess` or :mod:`sysconfig`). " -"There are no plans to migrate any other functionality from ``distutils``, " -"and applications that are using other functions should plan to make private " -"copies of the code. Refer to :pep:`632` for discussion." +"the standard library (such as :mod:`platform`, :mod:`shutil`, :mod:" +"`subprocess` or :mod:`sysconfig`). There are no plans to migrate any other " +"functionality from ``distutils``, and applications that are using other " +"functions should plan to make private copies of the code. Refer to :pep:" +"`632` for discussion." msgstr "" -#: ../../whatsnew/3.10.rst:1073 msgid "" "The ``bdist_wininst`` command deprecated in Python 3.8 has been removed. The " "``bdist_wheel`` command is now recommended to distribute binary packages on " "Windows. (Contributed by Victor Stinner in :issue:`42802`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1079 msgid "doctest" msgstr "" -#: ../../whatsnew/3.10.rst:1081 ../../whatsnew/3.10.rst:1216 -#: ../../whatsnew/3.10.rst:1243 ../../whatsnew/3.10.rst:1342 msgid "" -"When a module does not define ``__loader__``, fall back to " -"``__spec__.loader``. (Contributed by Brett Cannon in :issue:`42133`.)" +"When a module does not define ``__loader__``, fall back to ``__spec__." +"loader``. (Contributed by Brett Cannon in :issue:`42133`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1085 msgid "encodings" msgstr "" -#: ../../whatsnew/3.10.rst:1087 msgid "" ":func:`encodings.normalize_encoding` now ignores non-ASCII characters. " "(Contributed by Hai Shi in :issue:`39337`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1091 msgid "enum" msgstr "" -#: ../../whatsnew/3.10.rst:1093 msgid "" -":class:`~enum.Enum` :func:`~object.__repr__` now returns " -"``enum_name.member_name`` and :func:`~object.__str__` now returns " -"``member_name``. Stdlib enums available as module constants have " -"a :func:`repr` of ``module_name.member_name``. (Contributed by Ethan Furman " -"in :issue:`40066`.)" +":class:`~enum.Enum` :func:`~object.__repr__` now returns ``enum_name." +"member_name`` and :func:`~object.__str__` now returns ``member_name``. " +"Stdlib enums available as module constants have a :func:`repr` of " +"``module_name.member_name``. (Contributed by Ethan Furman in :issue:`40066`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1098 msgid "" "Add :class:`enum.StrEnum` for enums where all members are strings. " "(Contributed by Ethan Furman in :issue:`41816`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1102 msgid "fileinput" msgstr "" -#: ../../whatsnew/3.10.rst:1104 msgid "" -"Add *encoding* and *errors* parameters in :func:`fileinput.input` " -"and :class:`fileinput.FileInput`. (Contributed by Inada Naoki " -"in :issue:`43712`.)" +"Add *encoding* and *errors* parameters in :func:`fileinput.input` and :class:" +"`fileinput.FileInput`. (Contributed by Inada Naoki in :issue:`43712`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1108 msgid "" ":func:`fileinput.hook_compressed` now returns :class:`~io.TextIOWrapper` " "object when *mode* is \"r\" and file is compressed, like uncompressed files. " "(Contributed by Inada Naoki in :issue:`5758`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1113 msgid "faulthandler" msgstr "" -#: ../../whatsnew/3.10.rst:1115 msgid "" "The :mod:`faulthandler` module now detects if a fatal error occurs during a " -"garbage collector collection. (Contributed by Victor Stinner " -"in :issue:`44466`.)" +"garbage collector collection. (Contributed by Victor Stinner in :issue:" +"`44466`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1120 msgid "gc" msgstr "" -#: ../../whatsnew/3.10.rst:1122 msgid "" -"Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` " -"and :func:`gc.get_referents`. (Contributed by Pablo Galindo " -"in :issue:`43439`.)" +"Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and :" +"func:`gc.get_referents`. (Contributed by Pablo Galindo in :issue:`43439`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1126 msgid "glob" msgstr "" -#: ../../whatsnew/3.10.rst:1128 msgid "" -"Add the *root_dir* and *dir_fd* parameters in :func:`~glob.glob` " -"and :func:`~glob.iglob` which allow to specify the root directory for " -"searching. (Contributed by Serhiy Storchaka in :issue:`38144`.)" +"Add the *root_dir* and *dir_fd* parameters in :func:`~glob.glob` and :func:" +"`~glob.iglob` which allow to specify the root directory for searching. " +"(Contributed by Serhiy Storchaka in :issue:`38144`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1133 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.10.rst:1135 msgid "" "The hashlib module requires OpenSSL 1.1.1 or newer. (Contributed by " "Christian Heimes in :pep:`644` and :issue:`43669`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1138 msgid "" "The hashlib module has preliminary support for OpenSSL 3.0.0. (Contributed " "by Christian Heimes in :issue:`38820` and other issues.)" msgstr "" -#: ../../whatsnew/3.10.rst:1141 msgid "" "The pure-Python fallback of :func:`~hashlib.pbkdf2_hmac` is deprecated. In " "the future PBKDF2-HMAC will only be available when Python has been built " "with OpenSSL support. (Contributed by Christian Heimes in :issue:`43880`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1147 msgid "hmac" msgstr "" -#: ../../whatsnew/3.10.rst:1149 msgid "" "The hmac module now uses OpenSSL's HMAC implementation internally. " "(Contributed by Christian Heimes in :issue:`40645`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1153 msgid "IDLE and idlelib" msgstr "" -#: ../../whatsnew/3.10.rst:1155 msgid "" "Make IDLE invoke :func:`sys.excepthook` (when started without '-n'). User " -"hooks were previously ignored. (Contributed by Ken Hilton " -"in :issue:`43008`.)" +"hooks were previously ignored. (Contributed by Ken Hilton in :issue:" +"`43008`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1159 msgid "" "Rearrange the settings dialog. Split the General tab into Windows and Shell/" "Ed tabs. Move help sources, which extend the Help menu, to the Extensions " "tab. Make space for new options and shorten the dialog. The latter makes " -"the dialog better fit small screens. (Contributed by Terry Jan Reedy " -"in :issue:`40468`.) Move the indent space setting from the Font tab to the " -"new Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy " -"in :issue:`33962`.)" +"the dialog better fit small screens. (Contributed by Terry Jan Reedy in :" +"issue:`40468`.) Move the indent space setting from the Font tab to the new " +"Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy in :issue:" +"`33962`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1167 msgid "The changes above were backported to a 3.9 maintenance release." msgstr "" -#: ../../whatsnew/3.10.rst:1169 msgid "" "Add a Shell sidebar. Move the primary prompt ('>>>') to the sidebar. Add " "secondary prompts ('...') to the sidebar. Left click and optional drag " @@ -1758,7 +1478,6 @@ msgid "" "text. (Contributed by Tal Einat in :issue:`37903`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1178 msgid "" "Use spaces instead of tabs to indent interactive code. This makes " "interactive code entries 'look right'. Making this feasible was a major " @@ -1766,112 +1485,93 @@ msgid "" "in :issue:`37892`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1183 msgid "" -"Highlight the new :ref:`soft keywords ` :keyword:`match`, :keyword:`case `, and :keyword:`_ " -"` in pattern-matching statements. However, this " -"highlighting is not perfect and will be incorrect in some rare cases, " -"including some ``_``-s in ``case`` patterns. (Contributed by Tal Einat " -"in :issue:`44010`.)" +"Highlight the new :ref:`soft keywords ` :keyword:`match`, :" +"keyword:`case `, and :keyword:`_ ` in pattern-" +"matching statements. However, this highlighting is not perfect and will be " +"incorrect in some rare cases, including some ``_``-s in ``case`` patterns. " +"(Contributed by Tal Einat in :issue:`44010`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1189 msgid "New in 3.10 maintenance releases." msgstr "" -#: ../../whatsnew/3.10.rst:1191 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1194 msgid "" "Include prompts when saving Shell with inputs and outputs. (Contributed by " "Terry Jan Reedy in :gh:`95191`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1198 msgid "importlib.metadata" msgstr "" -#: ../../whatsnew/3.10.rst:1200 msgid "" "Feature parity with ``importlib_metadata`` 4.6 (`history `_)." msgstr "" -#: ../../whatsnew/3.10.rst:1203 msgid "" ":ref:`importlib.metadata entry points ` now provide a nicer " -"experience for selecting entry points by group and name through a " -"new :ref:`importlib.metadata.EntryPoints ` class. See the " -"Compatibility Note in the docs for more info on the deprecation and usage." +"experience for selecting entry points by group and name through a new :ref:" +"`importlib.metadata.EntryPoints ` class. See the Compatibility " +"Note in the docs for more info on the deprecation and usage." msgstr "" -#: ../../whatsnew/3.10.rst:1209 msgid "" "Added :ref:`importlib.metadata.packages_distributions() ` for resolving top-level Python modules and packages to " "their :ref:`importlib.metadata.Distribution `." msgstr "" -#: ../../whatsnew/3.10.rst:1214 msgid "inspect" msgstr "" -#: ../../whatsnew/3.10.rst:1219 msgid "" "Add :func:`inspect.get_annotations`, which safely computes the annotations " "defined on an object. It works around the quirks of accessing the " "annotations on various types of objects, and makes very few assumptions " "about the object it examines. :func:`inspect.get_annotations` can also " -"correctly un-stringize stringized " -"annotations. :func:`inspect.get_annotations` is now considered best " -"practice for accessing the annotations dict defined on any Python object; " -"for more information on best practices for working with annotations, please " -"see :ref:`annotations-howto`. " -"Relatedly, :func:`inspect.signature`, :func:`inspect.Signature.from_callable`, " -"and :func:`!inspect.Signature.from_function` now " -"call :func:`inspect.get_annotations` to retrieve annotations. This " -"means :func:`inspect.signature` and :func:`inspect.Signature.from_callable` " -"can also now un-stringize stringized annotations. (Contributed by Larry " -"Hastings in :issue:`43817`.)" -msgstr "" - -#: ../../whatsnew/3.10.rst:1235 +"correctly un-stringize stringized annotations. :func:`inspect." +"get_annotations` is now considered best practice for accessing the " +"annotations dict defined on any Python object; for more information on best " +"practices for working with annotations, please see :ref:`annotations-howto`. " +"Relatedly, :func:`inspect.signature`, :func:`inspect.Signature." +"from_callable`, and :func:`!inspect.Signature.from_function` now call :func:" +"`inspect.get_annotations` to retrieve annotations. This means :func:`inspect." +"signature` and :func:`inspect.Signature.from_callable` can also now un-" +"stringize stringized annotations. (Contributed by Larry Hastings in :issue:" +"`43817`.)" +msgstr "" + msgid "itertools" msgstr "" -#: ../../whatsnew/3.10.rst:1237 msgid "" -"Add :func:`itertools.pairwise`. (Contributed by Raymond Hettinger " -"in :issue:`38200`.)" +"Add :func:`itertools.pairwise`. (Contributed by Raymond Hettinger in :issue:" +"`38200`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1241 msgid "linecache" msgstr "" -#: ../../whatsnew/3.10.rst:1247 msgid "os" msgstr "" -#: ../../whatsnew/3.10.rst:1249 msgid "" "Add :func:`os.cpu_count` support for VxWorks RTOS. (Contributed by Peixing " "Xin in :issue:`41440`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1252 msgid "" "Add a new function :func:`os.eventfd` and related helpers to wrap the " -"``eventfd2`` syscall on Linux. (Contributed by Christian Heimes " -"in :issue:`41001`.)" +"``eventfd2`` syscall on Linux. (Contributed by Christian Heimes in :issue:" +"`41001`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1256 msgid "" "Add :func:`os.splice` that allows to move data between two file descriptors " "without copying between kernel address space and user address space, where " @@ -1879,62 +1579,51 @@ msgid "" "Galindo in :issue:`41625`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1261 msgid "" "Add :const:`~os.O_EVTONLY`, :const:`~os.O_FSYNC`, :const:`~os.O_SYMLINK` " -"and :const:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Donghee Na " -"in :issue:`43106`.)" +"and :const:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Donghee Na in :" +"issue:`43106`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1266 msgid "os.path" msgstr "" -#: ../../whatsnew/3.10.rst:1268 msgid "" ":func:`os.path.realpath` now accepts a *strict* keyword-only argument. When " "set to ``True``, :exc:`OSError` is raised if a path doesn't exist or a " "symlink loop is encountered. (Contributed by Barney Gale in :issue:`43757`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1274 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.10.rst:1276 msgid "" "Add slice support to :attr:`PurePath.parents `. " "(Contributed by Joshua Cannon in :issue:`35498`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1279 msgid "" -"Add negative indexing support to :attr:`PurePath.parents " -"`. (Contributed by Yaroslav Pankovych " -"in :issue:`21041`.)" +"Add negative indexing support to :attr:`PurePath.parents `. (Contributed by Yaroslav Pankovych in :issue:`21041`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1283 msgid "" "Add :meth:`Path.hardlink_to ` method that " -"supersedes :meth:`!link_to`. The new method has the same argument order " -"as :meth:`~pathlib.Path.symlink_to`. (Contributed by Barney Gale " -"in :issue:`39950`.)" +"supersedes :meth:`!link_to`. The new method has the same argument order as :" +"meth:`~pathlib.Path.symlink_to`. (Contributed by Barney Gale in :issue:" +"`39950`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1288 msgid "" ":meth:`pathlib.Path.stat` and :meth:`~pathlib.Path.chmod` now accept a " "*follow_symlinks* keyword-only argument for consistency with corresponding " -"functions in the :mod:`os` module. (Contributed by Barney Gale " -"in :issue:`39906`.)" +"functions in the :mod:`os` module. (Contributed by Barney Gale in :issue:" +"`39906`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1294 msgid "platform" msgstr "" -#: ../../whatsnew/3.10.rst:1296 msgid "" "Add :func:`platform.freedesktop_os_release` to retrieve operation system " "identification from `freedesktop.org os-release ` has a list of deprecated features. " -"(Contributed by Christian Heimes in :issue:`43880`.)" +"Deprecated function and use of deprecated constants now result in a :exc:" +"`DeprecationWarning`. :attr:`ssl.SSLContext.options` has :data:`~ssl." +"OP_NO_SSLv2` and :data:`~ssl.OP_NO_SSLv3` set by default and therefore " +"cannot warn about setting the flag again. The :ref:`deprecation section " +"` has a list of deprecated features. (Contributed by " +"Christian Heimes in :issue:`43880`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1377 msgid "" "The ssl module now has more secure default settings. Ciphers without forward " "secrecy or SHA-1 MAC are disabled by default. Security level 2 prohibits " -"weak RSA, DH, and ECC keys with less than 112 bits of " -"security. :class:`~ssl.SSLContext` defaults to minimum protocol version TLS " -"1.2. Settings are based on Hynek Schlawack's research. (Contributed by " -"Christian Heimes in :issue:`43998`.)" +"weak RSA, DH, and ECC keys with less than 112 bits of security. :class:`~ssl." +"SSLContext` defaults to minimum protocol version TLS 1.2. Settings are based " +"on Hynek Schlawack's research. (Contributed by Christian Heimes in :issue:" +"`43998`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1384 msgid "" "The deprecated protocols SSL 3.0, TLS 1.0, and TLS 1.1 are no longer " "officially supported. Python does not block them actively. However OpenSSL " @@ -2076,132 +1741,106 @@ msgid "" "prevent a successful handshake." msgstr "" -#: ../../whatsnew/3.10.rst:1389 msgid "" "Add a *timeout* parameter to the :func:`ssl.get_server_certificate` " "function. (Contributed by Zackery Spytz in :issue:`31870`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1392 msgid "" "The ssl module uses heap-types and multi-phase initialization. (Contributed " "by Christian Heimes in :issue:`42333`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1395 msgid "" "A new verify flag :const:`~ssl.VERIFY_X509_PARTIAL_CHAIN` has been added. " "(Contributed by l0x in :issue:`40849`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1399 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.10.rst:1401 msgid "" -"Add audit events for :func:`~sqlite3.connect/" -"handle`, :meth:`~sqlite3.Connection.enable_load_extension`, " -"and :meth:`~sqlite3.Connection.load_extension`. (Contributed by Erlend E. " -"Aasland in :issue:`43762`.)" +"Add audit events for :func:`~sqlite3.connect`, :meth:`~sqlite3.Connection." +"enable_load_extension`, and :meth:`~sqlite3.Connection.load_extension`. " +"(Contributed by Erlend E. Aasland in :issue:`43762`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1407 msgid "sys" msgstr "" -#: ../../whatsnew/3.10.rst:1409 msgid "" "Add :data:`sys.orig_argv` attribute: the list of the original command line " "arguments passed to the Python executable. (Contributed by Victor Stinner " "in :issue:`23427`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1413 msgid "" "Add :data:`sys.stdlib_module_names`, containing the list of the standard " "library module names. (Contributed by Victor Stinner in :issue:`42955`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1418 msgid "_thread" msgstr "" -#: ../../whatsnew/3.10.rst:1420 msgid "" ":func:`_thread.interrupt_main` now takes an optional signal number to " "simulate (the default is still :const:`signal.SIGINT`). (Contributed by " "Antoine Pitrou in :issue:`43356`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1425 msgid "threading" msgstr "" -#: ../../whatsnew/3.10.rst:1427 msgid "" "Add :func:`threading.gettrace` and :func:`threading.getprofile` to retrieve " -"the functions set by :func:`threading.settrace` " -"and :func:`threading.setprofile` respectively. (Contributed by Mario " -"Corchero in :issue:`42251`.)" +"the functions set by :func:`threading.settrace` and :func:`threading." +"setprofile` respectively. (Contributed by Mario Corchero in :issue:`42251`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1432 msgid "" "Add :data:`threading.__excepthook__` to allow retrieving the original value " "of :func:`threading.excepthook` in case it is set to a broken or a different " "value. (Contributed by Mario Corchero in :issue:`42308`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1438 msgid "traceback" msgstr "" -#: ../../whatsnew/3.10.rst:1440 msgid "" -"The :func:`~traceback.format_exception`, :func:`~traceback.format_exception_only`, " -"and :func:`~traceback.print_exception` functions can now take an exception " -"object as a positional-only argument. (Contributed by Zackery Spytz and " -"Matthias Bussonnier in :issue:`26389`.)" +"The :func:`~traceback.format_exception`, :func:`~traceback." +"format_exception_only`, and :func:`~traceback.print_exception` functions can " +"now take an exception object as a positional-only argument. (Contributed by " +"Zackery Spytz and Matthias Bussonnier in :issue:`26389`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1447 msgid "types" msgstr "" -#: ../../whatsnew/3.10.rst:1449 msgid "" -"Reintroduce the :data:`types.EllipsisType`, :data:`types.NoneType` " -"and :data:`types.NotImplementedType` classes, providing a new set of types " -"readily interpretable by type checkers. (Contributed by Bas van Beek " -"in :issue:`41810`.)" +"Reintroduce the :data:`types.EllipsisType`, :data:`types.NoneType` and :data:" +"`types.NotImplementedType` classes, providing a new set of types readily " +"interpretable by type checkers. (Contributed by Bas van Beek in :issue:" +"`41810`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1455 msgid "typing" msgstr "" -#: ../../whatsnew/3.10.rst:1457 msgid "For major changes, see :ref:`new-feat-related-type-hints`." msgstr "" -#: ../../whatsnew/3.10.rst:1459 msgid "" -"The behavior of :class:`typing.Literal` was changed to conform " -"with :pep:`586` and to match the behavior of static type checkers specified " -"in the PEP." +"The behavior of :class:`typing.Literal` was changed to conform with :pep:" +"`586` and to match the behavior of static type checkers specified in the PEP." msgstr "" -#: ../../whatsnew/3.10.rst:1462 msgid "``Literal`` now de-duplicates parameters." msgstr "" -#: ../../whatsnew/3.10.rst:1463 msgid "" "Equality comparisons between ``Literal`` objects are now order independent." msgstr "" -#: ../../whatsnew/3.10.rst:1464 msgid "" "``Literal`` comparisons now respect types. For example, ``Literal[0] == " "Literal[False]`` previously evaluated to ``True``. It is now ``False``. To " @@ -2209,7 +1848,6 @@ msgid "" "differentiating types." msgstr "" -#: ../../whatsnew/3.10.rst:1468 msgid "" "``Literal`` objects will now raise a :exc:`TypeError` exception during " "equality comparisons if any of their parameters are not :term:`hashable`. " @@ -2217,7 +1855,6 @@ msgid "" "error::" msgstr "" -#: ../../whatsnew/3.10.rst:1473 msgid "" ">>> from typing import Literal\n" ">>> Literal[{0}]\n" @@ -2227,125 +1864,106 @@ msgid "" "TypeError: unhashable type: 'set'" msgstr "" -#: ../../whatsnew/3.10.rst:1480 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1482 msgid "" "Add new function :func:`typing.is_typeddict` to introspect if an annotation " -"is a :class:`typing.TypedDict`. (Contributed by Patrick Reader " -"in :issue:`41792`.)" +"is a :class:`typing.TypedDict`. (Contributed by Patrick Reader in :issue:" +"`41792`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1486 msgid "" "Subclasses of ``typing.Protocol`` which only have data variables declared " "will now raise a ``TypeError`` when checked with ``isinstance`` unless they " "are decorated with :func:`~typing.runtime_checkable`. Previously, these " -"checks passed silently. Users should decorate their subclasses with " -"the :func:`!runtime_checkable` decorator if they want runtime protocols. " +"checks passed silently. Users should decorate their subclasses with the :" +"func:`!runtime_checkable` decorator if they want runtime protocols. " "(Contributed by Yurii Karabas in :issue:`38908`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1494 msgid "" -"Importing from the ``typing.io`` and ``typing.re`` submodules will now " -"emit :exc:`DeprecationWarning`. These submodules have been deprecated since " +"Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :" +"exc:`DeprecationWarning`. These submodules have been deprecated since " "Python 3.8 and will be removed in a future version of Python. Anything " "belonging to those submodules should be imported directly from :mod:`typing` " "instead. (Contributed by Sebastian Rittau in :issue:`38291`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1502 msgid "unittest" msgstr "" -#: ../../whatsnew/3.10.rst:1504 msgid "" "Add new method :meth:`~unittest.TestCase.assertNoLogs` to complement the " "existing :meth:`~unittest.TestCase.assertLogs`. (Contributed by Kit Yan Choi " "in :issue:`39385`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1509 msgid "urllib.parse" msgstr "" -#: ../../whatsnew/3.10.rst:1511 msgid "" "Python versions earlier than Python 3.10 allowed using both ``;`` and ``&`` " -"as query parameter separators in :func:`urllib.parse.parse_qs` " -"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " -"conform with newer W3C recommendations, this has been changed to allow only " -"a single separator key, with ``&`` as the default. This change also " -"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " -"affected functions internally. For more details, please see their " -"respective documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran " -"and Ken Jin in :issue:`42967`.)" +"as query parameter separators in :func:`urllib.parse.parse_qs` and :func:" +"`urllib.parse.parse_qsl`. Due to security concerns, and to conform with " +"newer W3C recommendations, this has been changed to allow only a single " +"separator key, with ``&`` as the default. This change also affects :func:`!" +"cgi.parse` and :func:`!cgi.parse_multipart` as they use the affected " +"functions internally. For more details, please see their respective " +"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " +"in :issue:`42967`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1521 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " -"forms of attacks. Following the WHATWG specification that " -"updates :rfc:`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` " -"characters are stripped from the URL by the parser in :mod:`urllib.parse` " -"preventing such attacks. The removal characters are controlled by a new " -"module level variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. " -"(See :gh:`88048`)" +"forms of attacks. Following the WHATWG specification that updates :rfc:" +"`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are " +"stripped from the URL by the parser in :mod:`urllib.parse` preventing such " +"attacks. The removal characters are controlled by a new module level " +"variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" -#: ../../whatsnew/3.10.rst:1529 msgid "xml" msgstr "" -#: ../../whatsnew/3.10.rst:1531 msgid "" -"Add a :class:`~xml.sax.handler.LexicalHandler` class to " -"the :mod:`xml.sax.handler` module. (Contributed by Jonathan Gossage and " -"Zackery Spytz in :issue:`35018`.)" +"Add a :class:`~xml.sax.handler.LexicalHandler` class to the :mod:`xml.sax." +"handler` module. (Contributed by Jonathan Gossage and Zackery Spytz in :" +"issue:`35018`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1536 msgid "zipimport" msgstr "" -#: ../../whatsnew/3.10.rst:1537 msgid "" -"Add methods related " -"to :pep:`451`: :meth:`~zipimport.zipimporter.find_spec`, :meth:`zipimport.zipimporter.create_module`, " -"and :meth:`zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon " -"in :issue:`42131`.)" +"Add methods related to :pep:`451`: :meth:`~zipimport.zipimporter." +"find_spec`, :meth:`zipimport.zipimporter.create_module`, and :meth:" +"`zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon in :issue:" +"`42131`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1542 msgid "" "Add :meth:`~zipimport.zipimporter.invalidate_caches` method. (Contributed by " "Desmond Cheong in :issue:`14678`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1547 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.10.rst:1549 msgid "" "Constructors :func:`str`, :func:`bytes` and :func:`bytearray` are now faster " -"(around 30--40% for small objects). (Contributed by Serhiy Storchaka " -"in :issue:`41334`.)" +"(around 30--40% for small objects). (Contributed by Serhiy Storchaka in :" +"issue:`41334`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1553 msgid "" "The :mod:`runpy` module now imports fewer modules. The ``python3 -m module-" -"name`` command startup time is 1.4x faster in average. On Linux, ``python3 " -"-I -m module-name`` imports 69 modules on Python 3.9, whereas it only " -"imports 51 modules (-18) on Python 3.10. (Contributed by Victor Stinner " -"in :issue:`41006` and :issue:`41718`.)" +"name`` command startup time is 1.4x faster in average. On Linux, ``python3 -" +"I -m module-name`` imports 69 modules on Python 3.9, whereas it only imports " +"51 modules (-18) on Python 3.10. (Contributed by Victor Stinner in :issue:" +"`41006` and :issue:`41718`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1559 msgid "" "The ``LOAD_ATTR`` instruction now uses new \"per opcode cache\" mechanism. " "It is about 36% faster now for regular attributes and 44% faster for slots. " @@ -2354,28 +1972,25 @@ msgid "" "and MicroPython.)" msgstr "" -#: ../../whatsnew/3.10.rst:1565 msgid "" "When building Python with :option:`--enable-optimizations` now ``-fno-" "semantic-interposition`` is added to both the compile and link line. This " "speeds builds of the Python interpreter created with :option:`--enable-" -"shared` with ``gcc`` by up to 30%. See `this article `_ for more details. (Contributed by Victor " -"Stinner and Pablo Galindo in :issue:`38980`.)" +"shared` with ``gcc`` by up to 30%. See `this article `_ for more details. (Contributed by Victor Stinner " +"and Pablo Galindo in :issue:`38980`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1573 msgid "" -"Use a new output buffer management code " -"for :mod:`bz2` / :mod:`lzma` / :mod:`zlib` modules, and add ``.readall()`` " -"function to ``_compression.DecompressReader`` class. bz2 decompression is " -"now 1.09x ~ 1.17x faster, lzma decompression 1.20x ~ 1.32x faster, " -"``GzipFile.read(-1)`` 1.11x ~ 1.18x faster. (Contributed by Ma Lin, reviewed " -"by Gregory P. Smith, in :issue:`41486`)" +"Use a new output buffer management code for :mod:`bz2` / :mod:`lzma` / :mod:" +"`zlib` modules, and add ``.readall()`` function to ``_compression." +"DecompressReader`` class. bz2 decompression is now 1.09x ~ 1.17x faster, " +"lzma decompression 1.20x ~ 1.32x faster, ``GzipFile.read(-1)`` 1.11x ~ 1.18x " +"faster. (Contributed by Ma Lin, reviewed by Gregory P. Smith, in :issue:" +"`41486`)" msgstr "" -#: ../../whatsnew/3.10.rst:1579 msgid "" "When using stringized annotations, annotations dicts for functions are no " "longer created when the function is created. Instead, they are stored as a " @@ -2385,7 +2000,6 @@ msgid "" "Inada Naoki in :issue:`42202`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1586 msgid "" "Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` " "now sometimes use Crochemore & Perrin's \"Two-Way\" string searching " @@ -2393,25 +2007,21 @@ msgid "" "Dennis Sweeney in :issue:`41972`)" msgstr "" -#: ../../whatsnew/3.10.rst:1591 msgid "" "Add micro-optimizations to ``_PyType_Lookup()`` to improve type attribute " "cache lookup performance in the common case of cache hits. This makes the " -"interpreter 1.04 times faster on average. (Contributed by Dino Viehland " -"in :issue:`43452`.)" +"interpreter 1.04 times faster on average. (Contributed by Dino Viehland in :" +"issue:`43452`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1595 msgid "" "The following built-in functions now support the faster :pep:`590` " -"vectorcall calling " -"convention: :func:`map`, :func:`filter`, :func:`reversed`, :func:`bool` " -"and :func:`float`. (Contributed by Donghee Na and Jeroen Demeyer " -"in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:`41873` " -"and :issue:`41870`.)" +"vectorcall calling convention: :func:`map`, :func:`filter`, :func:" +"`reversed`, :func:`bool` and :func:`float`. (Contributed by Donghee Na and " +"Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:" +"`41873` and :issue:`41870`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1599 msgid "" ":class:`~bz2.BZ2File` performance is improved by removing internal " "``RLock``. This makes :class:`!BZ2File` thread unsafe in the face of " @@ -2420,79 +2030,68 @@ msgid "" "Naoki in :issue:`43785`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1607 ../../whatsnew/3.10.rst:2213 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.10.rst:1609 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " "ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " "``[0x1 for x in y]`` or ``[0x1f or x in y]``). Starting in this release, a " "deprecation warning is raised if the numeric literal is immediately followed " -"by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In future releases it will be changed to syntax warning, " -"and finally to syntax error. (Contributed by Serhiy Storchaka " -"in :issue:`43833`.)" +"by one of keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:" +"`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. In future releases it " +"will be changed to syntax warning, and finally to syntax error. (Contributed " +"by Serhiy Storchaka in :issue:`43833`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1620 msgid "" "Starting in this release, there will be a concerted effort to begin cleaning " "up old import semantics that were kept for Python 2.7 compatibility. " -"Specifically, :meth:`!find_loader`/:meth:`!find_module` (superseded " -"by :meth:`~importlib.abc.MetaPathFinder.find_spec`), :meth:`~importlib.abc.Loader.load_module` " -"(superseded by :meth:`~importlib.abc.Loader.exec_module`), :meth:`!" -"module_repr` (which the import system takes care of for you), the " +"Specifically, :meth:`!find_loader`/:meth:`!find_module` (superseded by :meth:" +"`~importlib.abc.MetaPathFinder.find_spec`), :meth:`~importlib.abc.Loader." +"load_module` (superseded by :meth:`~importlib.abc.Loader.exec_module`), :" +"meth:`!module_repr` (which the import system takes care of for you), the " "``__package__`` attribute (superseded by ``__spec__.parent``), the " "``__loader__`` attribute (superseded by ``__spec__.loader``), and the " "``__cached__`` attribute (superseded by ``__spec__.cached``) will slowly be " -"removed (as well as other classes and methods " -"in :mod:`importlib`). :exc:`ImportWarning` and/or :exc:`DeprecationWarning` " -"will be raised as appropriate to help identify code which needs updating " -"during this transition." +"removed (as well as other classes and methods in :mod:`importlib`). :exc:" +"`ImportWarning` and/or :exc:`DeprecationWarning` will be raised as " +"appropriate to help identify code which needs updating during this " +"transition." msgstr "" -#: ../../whatsnew/3.10.rst:1637 msgid "" "The entire ``distutils`` namespace is deprecated, to be removed in Python " "3.12. Refer to the :ref:`module changes ` section for " "more information." msgstr "" -#: ../../whatsnew/3.10.rst:1641 msgid "" -"Non-integer arguments to :func:`random.randrange` are deprecated. " -"The :exc:`ValueError` is deprecated in favor of a :exc:`TypeError`. " -"(Contributed by Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)" +"Non-integer arguments to :func:`random.randrange` are deprecated. The :exc:" +"`ValueError` is deprecated in favor of a :exc:`TypeError`. (Contributed by " +"Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1645 msgid "" "The various ``load_module()`` methods of :mod:`importlib` have been " -"documented as deprecated since Python 3.6, but will now also trigger " -"a :exc:`DeprecationWarning`. Use :meth:`~importlib.abc.Loader.exec_module` " -"instead. (Contributed by Brett Cannon in :issue:`26131`.)" +"documented as deprecated since Python 3.6, but will now also trigger a :exc:" +"`DeprecationWarning`. Use :meth:`~importlib.abc.Loader.exec_module` instead. " +"(Contributed by Brett Cannon in :issue:`26131`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1651 msgid "" ":meth:`!zimport.zipimporter.load_module` has been deprecated in preference " "for :meth:`~zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon " "in :issue:`26131`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1655 msgid "" "The use of :meth:`~importlib.abc.Loader.load_module` by the import system " -"now triggers an :exc:`ImportWarning` " -"as :meth:`~importlib.abc.Loader.exec_module` is preferred. (Contributed by " -"Brett Cannon in :issue:`26131`.)" +"now triggers an :exc:`ImportWarning` as :meth:`~importlib.abc.Loader." +"exec_module` is preferred. (Contributed by Brett Cannon in :issue:`26131`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1660 msgid "" "The use of :meth:`!importlib.abc.MetaPathFinder.find_module` and :meth:`!" "importlib.abc.PathEntryFinder.find_module` by the import system now trigger " @@ -2502,55 +2101,46 @@ msgid "" "porting. (Contributed by Brett Cannon in :issue:`42134`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1669 msgid "" "The use of :meth:`!importlib.abc.PathEntryFinder.find_loader` by the import " -"system now triggers an :exc:`ImportWarning` " -"as :meth:`importlib.abc.PathEntryFinder.find_spec` is preferred. You can " -"use :func:`importlib.util.spec_from_loader` to help in porting. (Contributed " -"by Brett Cannon in :issue:`43672`.)" -msgstr "" - -#: ../../whatsnew/3.10.rst:1675 -msgid "" -"The various implementations of :meth:`!" -"importlib.abc.MetaPathFinder.find_module` ( :meth:`!" -"importlib.machinery.BuiltinImporter.find_module`, :meth:`!" -"importlib.machinery.FrozenImporter.find_module`, :meth:`!" -"importlib.machinery.WindowsRegistryFinder.find_module`, :meth:`!" -"importlib.machinery.PathFinder.find_module`, :meth:`!" -"importlib.abc.MetaPathFinder.find_module` ), :meth:`!" -"importlib.abc.PathEntryFinder.find_module` ( :meth:`!" -"importlib.machinery.FileFinder.find_module` ), and :meth:`!" -"importlib.abc.PathEntryFinder.find_loader` ( :meth:`!" -"importlib.machinery.FileFinder.find_loader` ) now " -"raise :exc:`DeprecationWarning` and are slated for removal in Python 3.12 " -"(previously they were documented as deprecated in Python 3.4). (Contributed " -"by Brett Cannon in :issue:`42135`.)" -msgstr "" - -#: ../../whatsnew/3.10.rst:1690 -msgid "" -":class:`!importlib.abc.Finder` is deprecated (including its sole " -"method, :meth:`!find_module`). Both :class:`importlib.abc.MetaPathFinder` " -"and :class:`importlib.abc.PathEntryFinder` no longer inherit from the class. " -"Users should inherit from one of these two classes as appropriate instead. " +"system now triggers an :exc:`ImportWarning` as :meth:`importlib.abc." +"PathEntryFinder.find_spec` is preferred. You can use :func:`importlib.util." +"spec_from_loader` to help in porting. (Contributed by Brett Cannon in :issue:" +"`43672`.)" +msgstr "" + +msgid "" +"The various implementations of :meth:`!importlib.abc.MetaPathFinder." +"find_module` ( :meth:`!importlib.machinery.BuiltinImporter.find_module`, :" +"meth:`!importlib.machinery.FrozenImporter.find_module`, :meth:`!importlib." +"machinery.WindowsRegistryFinder.find_module`, :meth:`!importlib.machinery." +"PathFinder.find_module`, :meth:`!importlib.abc.MetaPathFinder." +"find_module` ), :meth:`!importlib.abc.PathEntryFinder.find_module` ( :meth:`!" +"importlib.machinery.FileFinder.find_module` ), and :meth:`!importlib.abc." +"PathEntryFinder.find_loader` ( :meth:`!importlib.machinery.FileFinder." +"find_loader` ) now raise :exc:`DeprecationWarning` and are slated for " +"removal in Python 3.12 (previously they were documented as deprecated in " +"Python 3.4). (Contributed by Brett Cannon in :issue:`42135`.)" +msgstr "" + +msgid "" +":class:`!importlib.abc.Finder` is deprecated (including its sole method, :" +"meth:`!find_module`). Both :class:`importlib.abc.MetaPathFinder` and :class:" +"`importlib.abc.PathEntryFinder` no longer inherit from the class. Users " +"should inherit from one of these two classes as appropriate instead. " "(Contributed by Brett Cannon in :issue:`42135`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1697 msgid "" "The deprecations of :mod:`!imp`, :func:`!importlib.find_loader`, :func:`!" -"importlib.util.set_package_wrapper`, :func:`!" -"importlib.util.set_loader_wrapper`, :func:`!" -"importlib.util.module_for_loader`, :class:`!pkgutil.ImpImporter`, " -"and :class:`!pkgutil.ImpLoader` have all been updated to list Python 3.12 as " -"the slated version of removal (they began raising :exc:`DeprecationWarning` " -"in previous versions of Python). (Contributed by Brett Cannon " -"in :issue:`43720`.)" +"importlib.util.set_package_wrapper`, :func:`!importlib.util." +"set_loader_wrapper`, :func:`!importlib.util.module_for_loader`, :class:`!" +"pkgutil.ImpImporter`, and :class:`!pkgutil.ImpLoader` have all been updated " +"to list Python 3.12 as the slated version of removal (they began raising :" +"exc:`DeprecationWarning` in previous versions of Python). (Contributed by " +"Brett Cannon in :issue:`43720`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1707 msgid "" "The import system now uses the ``__spec__`` attribute on modules before " "falling back on :meth:`!module_repr` for a module's ``__repr__()`` method. " @@ -2558,23 +2148,20 @@ msgid "" "(Contributed by Brett Cannon in :issue:`42137`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1713 msgid "" -":meth:`!importlib.abc.Loader.module_repr`, :meth:`!" -"importlib.machinery.FrozenLoader.module_repr`, and :meth:`!" -"importlib.machinery.BuiltinLoader.module_repr` are deprecated and slated for " -"removal in Python 3.12. (Contributed by Brett Cannon in :issue:`42136`.)" +":meth:`!importlib.abc.Loader.module_repr`, :meth:`!importlib.machinery." +"FrozenLoader.module_repr`, and :meth:`!importlib.machinery.BuiltinLoader." +"module_repr` are deprecated and slated for removal in Python 3.12. " +"(Contributed by Brett Cannon in :issue:`42136`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1719 msgid "" "``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python " "3.3, when it was made an alias to :class:`str`. It is now deprecated, " -"scheduled for removal in Python 3.12. (Contributed by Erlend E. Aasland " -"in :issue:`42264`.)" +"scheduled for removal in Python 3.12. (Contributed by Erlend E. Aasland in :" +"issue:`42264`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1724 msgid "" "The undocumented built-in function ``sqlite3.enable_shared_cache`` is now " "deprecated, scheduled for removal in Python 3.12. Its use is strongly " @@ -2584,103 +2171,81 @@ msgid "" "query parameter. (Contributed by Erlend E. Aasland in :issue:`24464`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1732 msgid "The following ``threading`` methods are now deprecated:" msgstr "" -#: ../../whatsnew/3.10.rst:1734 msgid "``threading.currentThread`` => :func:`threading.current_thread`" -msgstr "``threading.currentThread`` => :func:`threading.current_thread`" +msgstr "" -#: ../../whatsnew/3.10.rst:1736 msgid "``threading.activeCount`` => :func:`threading.active_count`" -msgstr "``threading.activeCount`` => :func:`threading.active_count`" +msgstr "" -#: ../../whatsnew/3.10.rst:1738 msgid "" "``threading.Condition.notifyAll`` => :meth:`threading.Condition.notify_all`" msgstr "" -"``threading.Condition.notifyAll`` => :meth:`threading.Condition.notify_all`" -#: ../../whatsnew/3.10.rst:1741 msgid "``threading.Event.isSet`` => :meth:`threading.Event.is_set`" -msgstr "``threading.Event.isSet`` => :meth:`threading.Event.is_set`" +msgstr "" -#: ../../whatsnew/3.10.rst:1743 msgid "``threading.Thread.setName`` => :attr:`threading.Thread.name`" -msgstr "``threading.Thread.setName`` => :attr:`threading.Thread.name`" +msgstr "" -#: ../../whatsnew/3.10.rst:1745 msgid "``threading.thread.getName`` => :attr:`threading.Thread.name`" -msgstr "``threading.thread.getName`` => :attr:`threading.Thread.name`" +msgstr "" -#: ../../whatsnew/3.10.rst:1747 msgid "``threading.Thread.isDaemon`` => :attr:`threading.Thread.daemon`" -msgstr "``threading.Thread.isDaemon`` => :attr:`threading.Thread.daemon`" +msgstr "" -#: ../../whatsnew/3.10.rst:1749 msgid "``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon`" -msgstr "``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon`" +msgstr "" -#: ../../whatsnew/3.10.rst:1751 msgid "(Contributed by Jelle Zijlstra in :gh:`87889`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1753 msgid "" ":meth:`!pathlib.Path.link_to` is deprecated and slated for removal in Python " "3.12. Use :meth:`pathlib.Path.hardlink_to` instead. (Contributed by Barney " "Gale in :issue:`39950`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1757 msgid "" "``cgi.log()`` is deprecated and slated for removal in Python 3.12. " "(Contributed by Inada Naoki in :issue:`41139`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1760 msgid "" "The following :mod:`ssl` features have been deprecated since Python 3.6, " "Python 3.7, or OpenSSL 1.1.0 and will be removed in 3.11:" msgstr "" -#: ../../whatsnew/3.10.rst:1763 msgid "" ":data:`!OP_NO_SSLv2`, :data:`!OP_NO_SSLv3`, :data:`!OP_NO_TLSv1`, :data:`!" "OP_NO_TLSv1_1`, :data:`!OP_NO_TLSv1_2`, and :data:`!OP_NO_TLSv1_3` are " -"replaced by :attr:`~ssl.SSLContext.minimum_version` " -"and :attr:`~ssl.SSLContext.maximum_version`." +"replaced by :attr:`~ssl.SSLContext.minimum_version` and :attr:`~ssl." +"SSLContext.maximum_version`." msgstr "" -#: ../../whatsnew/3.10.rst:1769 msgid "" -":data:`!PROTOCOL_SSLv2`, :data:`!PROTOCOL_SSLv3`, :data:`!" -"PROTOCOL_SSLv23`, :data:`!PROTOCOL_TLSv1`, :data:`!" -"PROTOCOL_TLSv1_1`, :data:`!PROTOCOL_TLSv1_2`, and :const:`!PROTOCOL_TLS` are " -"deprecated in favor of :const:`~ssl.PROTOCOL_TLS_CLIENT` " -"and :const:`~ssl.PROTOCOL_TLS_SERVER`" +":data:`!PROTOCOL_SSLv2`, :data:`!PROTOCOL_SSLv3`, :data:`!PROTOCOL_SSLv23`, :" +"data:`!PROTOCOL_TLSv1`, :data:`!PROTOCOL_TLSv1_1`, :data:`!" +"PROTOCOL_TLSv1_2`, and :const:`!PROTOCOL_TLS` are deprecated in favor of :" +"const:`~ssl.PROTOCOL_TLS_CLIENT` and :const:`~ssl.PROTOCOL_TLS_SERVER`" msgstr "" -#: ../../whatsnew/3.10.rst:1775 msgid ":func:`!wrap_socket` is replaced by :meth:`ssl.SSLContext.wrap_socket`" msgstr "" -#: ../../whatsnew/3.10.rst:1777 msgid ":func:`!match_hostname`" msgstr "" -#: ../../whatsnew/3.10.rst:1779 msgid ":func:`!RAND_pseudo_bytes`, :func:`!RAND_egd`" msgstr "" -#: ../../whatsnew/3.10.rst:1781 msgid "" -"NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` " -"and :meth:`ssl.SSLContext.set_npn_protocols` are replaced by ALPN." +"NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` and :meth:`ssl." +"SSLContext.set_npn_protocols` are replaced by ALPN." msgstr "" -#: ../../whatsnew/3.10.rst:1784 msgid "" "The threading debug (:envvar:`!PYTHONTHREADDEBUG` environment variable) is " "deprecated in Python 3.10 and will be removed in Python 3.12. This feature " @@ -2688,45 +2253,39 @@ msgid "" "Victor Stinner in :issue:`44584`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1789 msgid "" -"Importing from the ``typing.io`` and ``typing.re`` submodules will now " -"emit :exc:`DeprecationWarning`. These submodules will be removed in a " -"future version of Python. Anything belonging to these submodules should be " +"Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :" +"exc:`DeprecationWarning`. These submodules will be removed in a future " +"version of Python. Anything belonging to these submodules should be " "imported directly from :mod:`typing` instead. (Contributed by Sebastian " "Rittau in :issue:`38291`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1798 ../../whatsnew/3.10.rst:2221 msgid "Removed" msgstr "" -#: ../../whatsnew/3.10.rst:1800 msgid "" "Removed special methods ``__int__``, ``__float__``, ``__floordiv__``, " "``__mod__``, ``__divmod__``, ``__rfloordiv__``, ``__rmod__`` and " -"``__rdivmod__`` of the :class:`complex` class. They always raised " -"a :exc:`TypeError`. (Contributed by Serhiy Storchaka in :issue:`41974`.)" +"``__rdivmod__`` of the :class:`complex` class. They always raised a :exc:" +"`TypeError`. (Contributed by Serhiy Storchaka in :issue:`41974`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1806 msgid "" "The ``ParserBase.error()`` method from the private and undocumented " "``_markupbase`` module has been removed. :class:`html.parser.HTMLParser` is " "the only subclass of ``ParserBase`` and its ``error()`` implementation was " -"already removed in Python 3.5. (Contributed by Berker Peksag " -"in :issue:`31844`.)" +"already removed in Python 3.5. (Contributed by Berker Peksag in :issue:" +"`31844`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1812 msgid "" "Removed the ``unicodedata.ucnhash_CAPI`` attribute which was an internal " "PyCapsule object. The related private ``_PyUnicode_Name_CAPI`` structure was " -"moved to the internal C API. (Contributed by Victor Stinner " -"in :issue:`42157`.)" +"moved to the internal C API. (Contributed by Victor Stinner in :issue:" +"`42157`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1817 msgid "" "Removed the ``parser`` module, which was deprecated in 3.9 due to the switch " "to the new PEG parser, as well as all the C source and header files that " @@ -2734,7 +2293,6 @@ msgid "" "``graminit.h`` and ``grammar.h``." msgstr "" -#: ../../whatsnew/3.10.rst:1822 msgid "" "Removed the Public C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -2742,7 +2300,6 @@ msgid "" "deprecated in 3.9 due to the switch to the new PEG parser." msgstr "" -#: ../../whatsnew/3.10.rst:1827 msgid "" "Removed the ``formatter`` module, which was deprecated in Python 3.4. It is " "somewhat obsolete, little used, and not tested. It was originally scheduled " @@ -2751,71 +2308,59 @@ msgid "" "their code. (Contributed by Donghee Na and Terry J. Reedy in :issue:`42299`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1834 msgid "" "Removed the :c:func:`!PyModule_GetWarningsModule` function that was useless " "now due to the :mod:`!_warnings` module was converted to a builtin module in " "2.6. (Contributed by Hai Shi in :issue:`42599`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1838 msgid "" "Remove deprecated aliases to :ref:`collections-abstract-base-classes` from " -"the :mod:`collections` module. (Contributed by Victor Stinner " -"in :issue:`37324`.)" +"the :mod:`collections` module. (Contributed by Victor Stinner in :issue:" +"`37324`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1842 msgid "" -"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ " -"'s :doc:`high-level API <../library/asyncio-api-index>` following " -"deprecation in Python 3.8. The motivation behind this change is multifold:" +"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" +"doc:`high-level API <../library/asyncio-api-index>` following deprecation in " +"Python 3.8. The motivation behind this change is multifold:" msgstr "" -#: ../../whatsnew/3.10.rst:1846 msgid "This simplifies the high-level API." msgstr "" -#: ../../whatsnew/3.10.rst:1847 msgid "" "The functions in the high-level API have been implicitly getting the current " "thread's running event loop since Python 3.7. There isn't a need to pass " "the event loop to the API in most normal use cases." msgstr "" -#: ../../whatsnew/3.10.rst:1850 msgid "" "Event loop passing is error-prone especially when dealing with loops running " "in different threads." msgstr "" -#: ../../whatsnew/3.10.rst:1853 msgid "" "Note that the low-level API will still accept ``loop``. See :ref:`changes-" "python-api` for examples of how to replace existing code." msgstr "" -#: ../../whatsnew/3.10.rst:1856 ../../whatsnew/3.10.rst:1928 msgid "" "(Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle " "Stanley in :issue:`42392`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1861 ../../whatsnew/3.10.rst:2148 msgid "Porting to Python 3.10" msgstr "" -#: ../../whatsnew/3.10.rst:1863 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.10.rst:1868 msgid "Changes in the Python syntax" msgstr "" -#: ../../whatsnew/3.10.rst:1870 msgid "" "Deprecation warning is now emitted when compiling previously valid syntax if " "the numeric literal is immediately followed by a keyword (like in ``0in " @@ -2825,28 +2370,23 @@ msgid "" "following keyword. (Contributed by Serhiy Storchaka in :issue:`43833`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1881 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.10.rst:1883 msgid "" -"The *etype* parameters of " -"the :func:`~traceback.format_exception`, :func:`~traceback.format_exception_only`, " -"and :func:`~traceback.print_exception` functions in the :mod:`traceback` " -"module have been renamed to *exc*. (Contributed by Zackery Spytz and " -"Matthias Bussonnier in :issue:`26389`.)" +"The *etype* parameters of the :func:`~traceback.format_exception`, :func:" +"`~traceback.format_exception_only`, and :func:`~traceback.print_exception` " +"functions in the :mod:`traceback` module have been renamed to *exc*. " +"(Contributed by Zackery Spytz and Matthias Bussonnier in :issue:`26389`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1889 msgid "" -":mod:`atexit`: At Python exit, if a callback registered " -"with :func:`atexit.register` fails, its exception is now logged. Previously, " -"only some exceptions were logged, and the last exception was always silently " -"ignored. (Contributed by Victor Stinner in :issue:`42639`.)" +":mod:`atexit`: At Python exit, if a callback registered with :func:`atexit." +"register` fails, its exception is now logged. Previously, only some " +"exceptions were logged, and the last exception was always silently ignored. " +"(Contributed by Victor Stinner in :issue:`42639`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1895 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " @@ -2855,68 +2395,58 @@ msgid "" "accesses the arguments via :func:`typing.get_args` or ``__args__`` need to " "account for this change. Furthermore, :exc:`TypeError` may be raised for " "invalid forms of parameterizing :class:`collections.abc.Callable` which may " -"have passed silently in Python 3.9. (Contributed by Ken Jin " -"in :issue:`42195`.)" +"have passed silently in Python 3.9. (Contributed by Ken Jin in :issue:" +"`42195`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1905 msgid "" ":meth:`socket.htons` and :meth:`socket.ntohs` now raise :exc:`OverflowError` " "instead of :exc:`DeprecationWarning` if the given parameter will not fit in " -"a 16-bit unsigned integer. (Contributed by Erlend E. Aasland " -"in :issue:`42393`.)" +"a 16-bit unsigned integer. (Contributed by Erlend E. Aasland in :issue:" +"`42393`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1910 msgid "" -"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ " -"'s :doc:`high-level API <../library/asyncio-api-index>` following " -"deprecation in Python 3.8." +"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" +"doc:`high-level API <../library/asyncio-api-index>` following deprecation in " +"Python 3.8." msgstr "" -#: ../../whatsnew/3.10.rst:1914 msgid "A coroutine that currently looks like this::" msgstr "" -#: ../../whatsnew/3.10.rst:1916 msgid "" "async def foo(loop):\n" " await asyncio.sleep(1, loop=loop)" msgstr "" -#: ../../whatsnew/3.10.rst:1919 msgid "Should be replaced with this::" msgstr "" -#: ../../whatsnew/3.10.rst:1921 msgid "" "async def foo():\n" " await asyncio.sleep(1)" msgstr "" -#: ../../whatsnew/3.10.rst:1924 msgid "" "If ``foo()`` was specifically designed *not* to run in the current thread's " "running event loop (e.g. running in another thread's event loop), consider " "using :func:`asyncio.run_coroutine_threadsafe` instead." msgstr "" -#: ../../whatsnew/3.10.rst:1931 msgid "" "The :data:`types.FunctionType` constructor now inherits the current builtins " "if the *globals* dictionary has no ``\"__builtins__\"`` key, rather than " -"using ``{\"None\": None}`` as builtins: same behavior as :func:`eval` " -"and :func:`exec` functions. Defining a function with ``def " -"function(...): ...`` in Python is not affected, globals cannot be overridden " -"with this syntax: it also inherits the current builtins. (Contributed by " -"Victor Stinner in :issue:`42990`.)" +"using ``{\"None\": None}`` as builtins: same behavior as :func:`eval` and :" +"func:`exec` functions. Defining a function with ``def function(...): ...`` " +"in Python is not affected, globals cannot be overridden with this syntax: it " +"also inherits the current builtins. (Contributed by Victor Stinner in :issue:" +"`42990`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1940 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.10.rst:1942 msgid "" "The C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -2925,41 +2455,34 @@ msgid "" "PEG parser." msgstr "" -#: ../../whatsnew/3.10.rst:1948 msgid "" "Source should be now be compiled directly to a code object using, for " "example, :c:func:`Py_CompileString`. The resulting code object can then be " "evaluated using, for example, :c:func:`PyEval_EvalCode`." msgstr "" -#: ../../whatsnew/3.10.rst:1952 msgid "Specifically:" msgstr "" -#: ../../whatsnew/3.10.rst:1954 msgid "" "A call to ``PyParser_SimpleParseStringFlags`` followed by ``PyNode_Compile`` " "can be replaced by calling :c:func:`Py_CompileString`." msgstr "" -#: ../../whatsnew/3.10.rst:1957 msgid "" "There is no direct replacement for ``PyParser_SimpleParseFileFlags``. To " "compile code from a ``FILE *`` argument, you will need to read the file in C " "and pass the resulting buffer to :c:func:`Py_CompileString`." msgstr "" -#: ../../whatsnew/3.10.rst:1961 msgid "" "To compile a file given a ``char *`` filename, explicitly open the file, " "read it and compile the result. One way to do this is using the :py:mod:`io` " -"module " -"with :c:func:`PyImport_ImportModule`, :c:func:`PyObject_CallMethod`, :c:func:`PyBytes_AsString` " -"and :c:func:`Py_CompileString`, as sketched below. (Declarations and error " -"handling are omitted.) ::" +"module with :c:func:`PyImport_ImportModule`, :c:func:`PyObject_CallMethod`, :" +"c:func:`PyBytes_AsString` and :c:func:`Py_CompileString`, as sketched below. " +"(Declarations and error handling are omitted.) ::" msgstr "" -#: ../../whatsnew/3.10.rst:1967 msgid "" "io_module = Import_ImportModule(\"io\");\n" "fileobject = PyObject_CallMethod(io_module, \"open\", \"ss\", filename, " @@ -2970,64 +2493,54 @@ msgid "" "code = Py_CompileString(source_buf, filename, Py_file_input);" msgstr "" -#: ../../whatsnew/3.10.rst:1974 msgid "" "For ``FrameObject`` objects, the :attr:`~frame.f_lasti` member now " "represents a wordcode offset instead of a simple offset into the bytecode " "string. This means that this number needs to be multiplied by 2 to be used " "with APIs that expect a byte offset instead (like :c:func:`PyCode_Addr2Line` " "for example). Notice as well that the :attr:`!f_lasti` member of " -"``FrameObject`` objects is not considered stable: please " -"use :c:func:`PyFrame_GetLineNumber` instead." +"``FrameObject`` objects is not considered stable: please use :c:func:" +"`PyFrame_GetLineNumber` instead." msgstr "" -#: ../../whatsnew/3.10.rst:1982 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.10.rst:1984 msgid "" "The ``MAKE_FUNCTION`` instruction now accepts either a dict or a tuple of " "strings as the function's annotations. (Contributed by Yurii Karabas and " "Inada Naoki in :issue:`42202`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1989 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.10.rst:1991 msgid "" ":pep:`644`: Python now requires OpenSSL 1.1.1 or newer. OpenSSL 1.0.2 is no " "longer supported. (Contributed by Christian Heimes in :issue:`43669`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1995 msgid "" "The C99 functions :c:func:`snprintf` and :c:func:`vsnprintf` are now " "required to build Python. (Contributed by Victor Stinner in :issue:`36020`.)" msgstr "" -#: ../../whatsnew/3.10.rst:1999 msgid "" ":mod:`sqlite3` requires SQLite 3.7.15 or higher. (Contributed by Sergey " "Fedoseev and Erlend E. Aasland in :issue:`40744` and :issue:`40810`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2002 msgid "" "The :mod:`atexit` module must now always be built as a built-in module. " "(Contributed by Victor Stinner in :issue:`42639`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2005 msgid "" "Add :option:`--disable-test-modules` option to the ``configure`` script: " "don't build nor install test modules. (Contributed by Xavier de Gaye, Thomas " "Petazzoni and Peixing Xin in :issue:`27640`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2009 msgid "" "Add :option:`--with-wheel-pkg-dir=PATH option <--with-wheel-pkg-dir>` to the " "``./configure`` script. If specified, the :mod:`ensurepip` module looks for " @@ -3036,30 +2549,25 @@ msgid "" "packages." msgstr "" -#: ../../whatsnew/3.10.rst:2015 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" -"share/python-wheels/`` directory and don't install the " -"``ensurepip._bundled`` package." +"share/python-wheels/`` directory and don't install the ``ensurepip." +"_bundled`` package." msgstr "" -#: ../../whatsnew/3.10.rst:2020 msgid "(Contributed by Victor Stinner in :issue:`42856`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2022 msgid "" "Add a new :option:`configure --without-static-libpython option <--without-" "static-libpython>` to not build the ``libpythonMAJOR.MINOR.a`` static " "library and not install the ``python.o`` object file." msgstr "" -#: ../../whatsnew/3.10.rst:2026 msgid "(Contributed by Victor Stinner in :issue:`43103`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2028 msgid "" "The ``configure`` script now uses the ``pkg-config`` utility, if available, " "to detect the location of Tcl/Tk headers and libraries. As before, those " @@ -3068,7 +2576,6 @@ msgid "" "Stamatogiannakis in :issue:`42603`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2034 msgid "" "Add :option:`--with-openssl-rpath` option to ``configure`` script. The " "option simplifies building Python with a custom OpenSSL installation, e.g. " @@ -3076,15 +2583,12 @@ msgid "" "(Contributed by Christian Heimes in :issue:`43466`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2041 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.10.rst:2044 msgid "PEP 652: Maintaining the Stable ABI" msgstr "" -#: ../../whatsnew/3.10.rst:2046 msgid "" "The Stable ABI (Application Binary Interface) for extension modules or " "embedding Python is now explicitly defined. :ref:`stable` describes C API " @@ -3092,159 +2596,136 @@ msgid "" "ABI." msgstr "" -#: ../../whatsnew/3.10.rst:2051 msgid "(Contributed by Petr Viktorin in :pep:`652` and :issue:`43795`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2056 msgid "" -"The result of :c:func:`PyNumber_Index` now always has exact " -"type :class:`int`. Previously, the result could have been an instance of a " -"subclass of ``int``. (Contributed by Serhiy Storchaka in :issue:`40792`.)" +"The result of :c:func:`PyNumber_Index` now always has exact type :class:" +"`int`. Previously, the result could have been an instance of a subclass of " +"``int``. (Contributed by Serhiy Storchaka in :issue:`40792`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2060 msgid "" "Add a new :c:member:`~PyConfig.orig_argv` member to the :c:type:`PyConfig` " "structure: the list of the original command line arguments passed to the " "Python executable. (Contributed by Victor Stinner in :issue:`23427`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2065 msgid "" -"The :c:func:`PyDateTime_DATE_GET_TZINFO` " -"and :c:func:`PyDateTime_TIME_GET_TZINFO` macros have been added for " -"accessing the ``tzinfo`` attributes of :class:`datetime.datetime` " -"and :class:`datetime.time` objects. (Contributed by Zackery Spytz " -"in :issue:`30155`.)" +"The :c:func:`PyDateTime_DATE_GET_TZINFO` and :c:func:" +"`PyDateTime_TIME_GET_TZINFO` macros have been added for accessing the " +"``tzinfo`` attributes of :class:`datetime.datetime` and :class:`datetime." +"time` objects. (Contributed by Zackery Spytz in :issue:`30155`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2071 msgid "" "Add a :c:func:`PyCodec_Unregister` function to unregister a codec search " "function. (Contributed by Hai Shi in :issue:`41842`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2075 msgid "" "The :c:func:`PyIter_Send` function was added to allow sending value into " "iterator without raising ``StopIteration`` exception. (Contributed by " "Vladimir Matveev in :issue:`41756`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2079 msgid "" "Add :c:func:`PyUnicode_AsUTF8AndSize` to the limited C API. (Contributed by " "Alex Gaynor in :issue:`41784`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2082 msgid "" -"Add :c:func:`PyModule_AddObjectRef` function: similar " -"to :c:func:`PyModule_AddObject` but don't steal a reference to the value on " -"success. (Contributed by Victor Stinner in :issue:`1635741`.)" +"Add :c:func:`PyModule_AddObjectRef` function: similar to :c:func:" +"`PyModule_AddObject` but don't steal a reference to the value on success. " +"(Contributed by Victor Stinner in :issue:`1635741`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2087 msgid "" "Add :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment the " "reference count of an object and return the object. (Contributed by Victor " "Stinner in :issue:`42262`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2091 msgid "" -"The :c:func:`PyType_FromSpecWithBases` " -"and :c:func:`PyType_FromModuleAndSpec` functions now accept a single class " -"as the *bases* argument. (Contributed by Serhiy Storchaka in :issue:`42423`.)" +"The :c:func:`PyType_FromSpecWithBases` and :c:func:" +"`PyType_FromModuleAndSpec` functions now accept a single class as the " +"*bases* argument. (Contributed by Serhiy Storchaka in :issue:`42423`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2095 msgid "" "The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` " "slot. (Contributed by Hai Shi in :issue:`41832`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2099 msgid "" "The :c:func:`PyType_GetSlot` function can accept :ref:`static types `. (Contributed by Hai Shi and Petr Viktorin in :issue:`41073`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2103 msgid "" "Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an " "object is an instance of :class:`set` but not an instance of a subtype. " "(Contributed by Pablo Galindo in :issue:`43277`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2107 msgid "" "Add :c:func:`PyErr_SetInterruptEx` which allows passing a signal number to " "simulate. (Contributed by Antoine Pitrou in :issue:`43356`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2111 msgid "" "The limited C API is now supported if :ref:`Python is built in debug mode " "` (if the ``Py_DEBUG`` macro is defined). In the limited C API, " "the :c:func:`Py_INCREF` and :c:func:`Py_DECREF` functions are now " -"implemented as opaque function calls, rather than accessing directly " -"the :c:member:`PyObject.ob_refcnt` member, if Python is built in debug mode " -"and the ``Py_LIMITED_API`` macro targets Python 3.10 or newer. It became " -"possible to support the limited C API in debug mode because " -"the :c:type:`PyObject` structure is the same in release and debug mode since " -"Python 3.8 (see :issue:`36465`)." +"implemented as opaque function calls, rather than accessing directly the :c:" +"member:`PyObject.ob_refcnt` member, if Python is built in debug mode and the " +"``Py_LIMITED_API`` macro targets Python 3.10 or newer. It became possible to " +"support the limited C API in debug mode because the :c:type:`PyObject` " +"structure is the same in release and debug mode since Python 3.8 (see :issue:" +"`36465`)." msgstr "" -#: ../../whatsnew/3.10.rst:2121 msgid "" "The limited C API is still not supported in the :option:`--with-trace-refs` " -"special build (``Py_TRACE_REFS`` macro). (Contributed by Victor Stinner " -"in :issue:`43688`.)" +"special build (``Py_TRACE_REFS`` macro). (Contributed by Victor Stinner in :" +"issue:`43688`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2125 msgid "" "Add the :c:func:`Py_Is(x, y) ` function to test if the *x* object is " -"the *y* object, the same as ``x is y`` in Python. Add also " -"the :c:func:`Py_IsNone`, :c:func:`Py_IsTrue`, :c:func:`Py_IsFalse` functions " -"to test if an object is, respectively, the ``None`` singleton, the ``True`` " -"singleton or the ``False`` singleton. (Contributed by Victor Stinner " -"in :issue:`43753`.)" +"the *y* object, the same as ``x is y`` in Python. Add also the :c:func:" +"`Py_IsNone`, :c:func:`Py_IsTrue`, :c:func:`Py_IsFalse` functions to test if " +"an object is, respectively, the ``None`` singleton, the ``True`` singleton " +"or the ``False`` singleton. (Contributed by Victor Stinner in :issue:" +"`43753`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2132 msgid "" -"Add new functions to control the garbage collector from C " -"code: :c:func:`PyGC_Enable()`, :c:func:`PyGC_Disable()`, :c:func:`PyGC_IsEnabled()`. " -"These functions allow to activate, deactivate and query the state of the " -"garbage collector from C code without having to import the :mod:`gc` module." +"Add new functions to control the garbage collector from C code: :c:func:" +"`PyGC_Enable()`, :c:func:`PyGC_Disable()`, :c:func:`PyGC_IsEnabled()`. These " +"functions allow to activate, deactivate and query the state of the garbage " +"collector from C code without having to import the :mod:`gc` module." msgstr "" -#: ../../whatsnew/3.10.rst:2139 msgid "" "Add a new :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` type flag to disallow " "creating type instances. (Contributed by Victor Stinner in :issue:`43916`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2143 msgid "" "Add a new :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag for creating " "immutable type objects: type attributes cannot be set nor deleted. " "(Contributed by Victor Stinner and Erlend E. Aasland in :issue:`43908`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2150 msgid "" -"The ``PY_SSIZE_T_CLEAN`` macro must now be defined to " -"use :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue` formats which use " -"``#``: ``es#``, ``et#``, ``s#``, ``u#``, ``y#``, ``z#``, ``U#`` and ``Z#``. " -"See :ref:`arg-parsing` and :pep:`353`. (Contributed by Victor Stinner " -"in :issue:`40943`.)" +"The ``PY_SSIZE_T_CLEAN`` macro must now be defined to use :c:func:" +"`PyArg_ParseTuple` and :c:func:`Py_BuildValue` formats which use ``#``: " +"``es#``, ``et#``, ``s#``, ``u#``, ``y#``, ``z#``, ``U#`` and ``Z#``. See :" +"ref:`arg-parsing` and :pep:`353`. (Contributed by Victor Stinner in :issue:" +"`40943`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2156 msgid "" "Since :c:func:`Py_REFCNT()` is changed to the inline static function, " "``Py_REFCNT(obj) = new_refcnt`` must be replaced with ``Py_SET_REFCNT(obj, " @@ -3252,25 +2733,21 @@ msgid "" "For backward compatibility, this macro can be used::" msgstr "" -#: ../../whatsnew/3.10.rst:2161 msgid "" "#if PY_VERSION_HEX < 0x030900A4\n" "# define Py_SET_REFCNT(obj, refcnt) ((Py_REFCNT(obj) = (refcnt)), (void)0)\n" "#endif" msgstr "" -#: ../../whatsnew/3.10.rst:2165 msgid "(Contributed by Victor Stinner in :issue:`39573`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2167 msgid "" "Calling :c:func:`PyDict_GetItem` without :term:`GIL` held had been allowed " "for historical reason. It is no longer allowed. (Contributed by Victor " "Stinner in :issue:`40839`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2171 msgid "" "``PyUnicode_FromUnicode(NULL, size)`` and " "``PyUnicode_FromStringAndSize(NULL, size)`` raise ``DeprecationWarning`` " @@ -3278,148 +2755,126 @@ msgid "" "data. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2176 msgid "" "The private ``_PyUnicode_Name_CAPI`` structure of the PyCapsule API " "``unicodedata.ucnhash_CAPI`` has been moved to the internal C API. " "(Contributed by Victor Stinner in :issue:`42157`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2180 msgid "" -":c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` " -"and :c:func:`Py_GetProgramName` functions now return ``NULL`` if called " -"before :c:func:`Py_Initialize` (before Python is initialized). Use the " -"new :ref:`init-config` API to get the :ref:`init-path-config`. (Contributed " -"by Victor Stinner in :issue:`42260`.)" +":c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:" +"func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and :c:func:" +"`Py_GetProgramName` functions now return ``NULL`` if called before :c:func:" +"`Py_Initialize` (before Python is initialized). Use the new :ref:`init-" +"config` API to get the :ref:`init-path-config`. (Contributed by Victor " +"Stinner in :issue:`42260`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2187 msgid "" -":c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` " -"and :c:func:`PyCell_SET` macros can no longer be used as l-value or r-value. " -"For example, ``x = PyList_SET_ITEM(a, b, c)`` and ``PyList_SET_ITEM(a, b, c) " -"= x`` now fail with a compiler error. It prevents bugs like ``if " +":c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and :c:func:" +"`PyCell_SET` macros can no longer be used as l-value or r-value. For " +"example, ``x = PyList_SET_ITEM(a, b, c)`` and ``PyList_SET_ITEM(a, b, c) = " +"x`` now fail with a compiler error. It prevents bugs like ``if " "(PyList_SET_ITEM (a, b, c) < 0) ...`` test. (Contributed by Zackery Spytz " "and Victor Stinner in :issue:`30459`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2194 msgid "" "The non-limited API files ``odictobject.h``, ``parser_interface.h``, " -"``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``, " -"``pyfpe.h``, and ``pytime.h`` have been moved to the ``Include/cpython`` " -"directory. These files must not be included directly, as they are already " -"included in ``Python.h``; see :ref:`api-includes`. If they have been " -"included directly, consider including ``Python.h`` instead. (Contributed by " -"Nicholas Sim in :issue:`35134`.)" +"``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``, ``pyfpe." +"h``, and ``pytime.h`` have been moved to the ``Include/cpython`` directory. " +"These files must not be included directly, as they are already included in " +"``Python.h``; see :ref:`api-includes`. If they have been included directly, " +"consider including ``Python.h`` instead. (Contributed by Nicholas Sim in :" +"issue:`35134`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2202 msgid "" "Use the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable " "type objects. Do not rely on :c:macro:`Py_TPFLAGS_HEAPTYPE` to decide if a " "type object is mutable or not; check if :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` " -"is set instead. (Contributed by Victor Stinner and Erlend E. Aasland " -"in :issue:`43908`.)" +"is set instead. (Contributed by Victor Stinner and Erlend E. Aasland in :" +"issue:`43908`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2208 msgid "" "The undocumented function ``Py_FrozenMain`` has been removed from the " "limited API. The function is mainly useful for custom builds of Python. " "(Contributed by Petr Viktorin in :issue:`26241`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2215 msgid "" "The ``PyUnicode_InternImmortal()`` function is now deprecated and will be " "removed in Python 3.12: use :c:func:`PyUnicode_InternInPlace` instead. " "(Contributed by Victor Stinner in :issue:`41692`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2223 msgid "" "Removed ``Py_UNICODE_str*`` functions manipulating ``Py_UNICODE*`` strings. " "(Contributed by Inada Naoki in :issue:`41123`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2226 msgid "" -"``Py_UNICODE_strlen``: use :c:func:`PyUnicode_GetLength` " -"or :c:macro:`PyUnicode_GET_LENGTH`" +"``Py_UNICODE_strlen``: use :c:func:`PyUnicode_GetLength` or :c:macro:" +"`PyUnicode_GET_LENGTH`" msgstr "" -#: ../../whatsnew/3.10.rst:2228 msgid "" -"``Py_UNICODE_strcat``: use :c:func:`PyUnicode_CopyCharacters` " -"or :c:func:`PyUnicode_FromFormat`" +"``Py_UNICODE_strcat``: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" +"`PyUnicode_FromFormat`" msgstr "" -#: ../../whatsnew/3.10.rst:2230 msgid "" -"``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: " -"use :c:func:`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`" +"``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: use :c:func:" +"`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`" msgstr "" -#: ../../whatsnew/3.10.rst:2232 msgid "``Py_UNICODE_strcmp``: use :c:func:`PyUnicode_Compare`" msgstr "" -#: ../../whatsnew/3.10.rst:2233 msgid "``Py_UNICODE_strncmp``: use :c:func:`PyUnicode_Tailmatch`" msgstr "" -#: ../../whatsnew/3.10.rst:2234 msgid "" -"``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: " -"use :c:func:`PyUnicode_FindChar`" +"``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: use :c:func:" +"`PyUnicode_FindChar`" msgstr "" -#: ../../whatsnew/3.10.rst:2237 msgid "" "Removed ``PyUnicode_GetMax()``. Please migrate to new (:pep:`393`) APIs. " "(Contributed by Inada Naoki in :issue:`41103`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2240 msgid "" -"Removed ``PyLong_FromUnicode()``. Please migrate " -"to :c:func:`PyLong_FromUnicodeObject`. (Contributed by Inada Naoki " -"in :issue:`41103`.)" +"Removed ``PyLong_FromUnicode()``. Please migrate to :c:func:" +"`PyLong_FromUnicodeObject`. (Contributed by Inada Naoki in :issue:`41103`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2243 msgid "" -"Removed ``PyUnicode_AsUnicodeCopy()``. Please " -"use :c:func:`PyUnicode_AsUCS4Copy` or :c:func:`PyUnicode_AsWideCharString` " -"(Contributed by Inada Naoki in :issue:`41103`.)" +"Removed ``PyUnicode_AsUnicodeCopy()``. Please use :c:func:" +"`PyUnicode_AsUCS4Copy` or :c:func:`PyUnicode_AsWideCharString` (Contributed " +"by Inada Naoki in :issue:`41103`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2247 msgid "" "Removed ``_Py_CheckRecursionLimit`` variable: it has been replaced by " "``ceval.recursion_limit`` of the :c:type:`PyInterpreterState` structure. " "(Contributed by Victor Stinner in :issue:`41834`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2251 msgid "" "Removed undocumented macros ``Py_ALLOW_RECURSION`` and " -"``Py_END_ALLOW_RECURSION`` and the ``recursion_critical`` field of " -"the :c:type:`PyInterpreterState` structure. (Contributed by Serhiy Storchaka " -"in :issue:`41936`.)" +"``Py_END_ALLOW_RECURSION`` and the ``recursion_critical`` field of the :c:" +"type:`PyInterpreterState` structure. (Contributed by Serhiy Storchaka in :" +"issue:`41936`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2256 msgid "" "Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing " -"Python already implicitly installs signal handlers: " -"see :c:member:`PyConfig.install_signal_handlers`. (Contributed by Victor " -"Stinner in :issue:`41713`.)" +"Python already implicitly installs signal handlers: see :c:member:`PyConfig." +"install_signal_handlers`. (Contributed by Victor Stinner in :issue:`41713`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2261 msgid "" "Remove the ``PyAST_Validate()`` function. It is no longer possible to build " "a AST object (``mod_ty`` type) with the public C API. The function was " @@ -3427,48 +2882,38 @@ msgid "" "Stinner in :issue:`43244`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2266 msgid "Remove the ``symtable.h`` header file and the undocumented functions:" msgstr "" -#: ../../whatsnew/3.10.rst:2268 msgid "``PyST_GetScope()``" msgstr "" -#: ../../whatsnew/3.10.rst:2269 msgid "``PySymtable_Build()``" msgstr "" -#: ../../whatsnew/3.10.rst:2270 msgid "``PySymtable_BuildObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2271 msgid "``PySymtable_Free()``" msgstr "" -#: ../../whatsnew/3.10.rst:2272 msgid "``Py_SymtableString()``" msgstr "" -#: ../../whatsnew/3.10.rst:2273 msgid "``Py_SymtableStringObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2275 msgid "" "The ``Py_SymtableString()`` function was part the stable ABI by mistake but " "it could not be used, because the ``symtable.h`` header file was excluded " "from the limited C API." msgstr "" -#: ../../whatsnew/3.10.rst:2279 msgid "" "Use Python :mod:`symtable` module instead. (Contributed by Victor Stinner " "in :issue:`43244`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2282 msgid "" "Remove :c:func:`PyOS_ReadlineFunctionPointer` from the limited C API headers " "and from ``python3.dll``, the library that provides the stable ABI on " @@ -3476,7 +2921,6 @@ msgid "" "cannot be guaranteed. (Contributed by Petr Viktorin in :issue:`43868`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2288 msgid "" "Remove ``ast.h``, ``asdl.h``, and ``Python-ast.h`` header files. These " "functions were undocumented and excluded from the limited C API. Most names " @@ -3487,96 +2931,75 @@ msgid "" "(Contributed by Victor Stinner in :issue:`43244`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2296 msgid "" "Remove the compiler and parser functions using ``struct _mod`` type, because " "the public AST C API was removed:" msgstr "" -#: ../../whatsnew/3.10.rst:2299 msgid "``PyAST_Compile()``" msgstr "" -#: ../../whatsnew/3.10.rst:2300 msgid "``PyAST_CompileEx()``" msgstr "" -#: ../../whatsnew/3.10.rst:2301 msgid "``PyAST_CompileObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2302 msgid "``PyFuture_FromAST()``" msgstr "" -#: ../../whatsnew/3.10.rst:2303 msgid "``PyFuture_FromASTObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2304 msgid "``PyParser_ASTFromFile()``" msgstr "" -#: ../../whatsnew/3.10.rst:2305 msgid "``PyParser_ASTFromFileObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2306 msgid "``PyParser_ASTFromFilename()``" msgstr "" -#: ../../whatsnew/3.10.rst:2307 msgid "``PyParser_ASTFromString()``" msgstr "" -#: ../../whatsnew/3.10.rst:2308 msgid "``PyParser_ASTFromStringObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2310 msgid "" "These functions were undocumented and excluded from the limited C API. " "(Contributed by Victor Stinner in :issue:`43244`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2313 msgid "Remove the ``pyarena.h`` header file with functions:" msgstr "" -#: ../../whatsnew/3.10.rst:2315 msgid "``PyArena_New()``" msgstr "" -#: ../../whatsnew/3.10.rst:2316 msgid "``PyArena_Free()``" msgstr "" -#: ../../whatsnew/3.10.rst:2317 msgid "``PyArena_Malloc()``" msgstr "" -#: ../../whatsnew/3.10.rst:2318 msgid "``PyArena_AddPyObject()``" msgstr "" -#: ../../whatsnew/3.10.rst:2320 msgid "" "These functions were undocumented, excluded from the limited C API, and were " -"only used internally by the compiler. (Contributed by Victor Stinner " -"in :issue:`43244`.)" +"only used internally by the compiler. (Contributed by Victor Stinner in :" +"issue:`43244`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2324 msgid "" "The ``PyThreadState.use_tracing`` member has been removed to optimize " "Python. (Contributed by Mark Shannon in :issue:`43760`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2329 msgid "Notable security feature in 3.10.7" msgstr "" -#: ../../whatsnew/3.10.rst:2331 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " @@ -3589,28 +3012,23 @@ msgid "" "digits in string form." msgstr "" -#: ../../whatsnew/3.10.rst:2342 msgid "Notable security feature in 3.10.8" msgstr "" -#: ../../whatsnew/3.10.rst:2344 msgid "" "The deprecated :mod:`!mailcap` module now refuses to inject unsafe text " "(filenames, MIME types, parameters) into shell commands. Instead of using " "such text, it will warn and act as if a match was not found (or for test " -"commands, as if the test failed). (Contributed by Petr Viktorin " -"in :gh:`98966`.)" +"commands, as if the test failed). (Contributed by Petr Viktorin in :gh:" +"`98966`.)" msgstr "" -#: ../../whatsnew/3.10.rst:2351 msgid "Notable changes in 3.10.12" msgstr "" -#: ../../whatsnew/3.10.rst:2354 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.10.rst:2356 msgid "" "The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " "have a new a *filter* argument that allows limiting tar features than may be " diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index 8fc35c2..4f53280 100644 --- a/whatsnew/3.11.po +++ b/whatsnew/3.11.po @@ -4,17 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 -# Stan Ulbrych, 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -23,138 +22,109 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.11.rst:3 msgid "What's New In Python 3.11" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.11.rst:5 msgid "Pablo Galindo Salgado" msgstr "" -#: ../../whatsnew/3.11.rst:47 msgid "" "This article explains the new features in Python 3.11, compared to 3.10. " -"Python 3.11 was released on October 24, 2022. For full details, see " -"the :ref:`changelog `." +"Python 3.11 was released on October 24, 2022. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.11.rst:55 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.11.rst:60 msgid "" "Python 3.11 is between 10-60% faster than Python 3.10. On average, we " -"measured a 1.25x speedup on the standard benchmark suite. " -"See :ref:`whatsnew311-faster-cpython` for details." +"measured a 1.25x speedup on the standard benchmark suite. See :ref:" +"`whatsnew311-faster-cpython` for details." msgstr "" -#: ../../whatsnew/3.11.rst:66 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.11.rst:68 msgid ":ref:`whatsnew311-pep654`" msgstr "" -#: ../../whatsnew/3.11.rst:70 msgid "New built-in features:" msgstr "" -#: ../../whatsnew/3.11.rst:72 msgid ":ref:`whatsnew311-pep678`" msgstr "" -#: ../../whatsnew/3.11.rst:74 msgid "New standard library modules:" msgstr "" -#: ../../whatsnew/3.11.rst:76 msgid "" ":pep:`680`: :mod:`tomllib` — Support for parsing `TOML `_ " "in the Standard Library" msgstr "" -#: ../../whatsnew/3.11.rst:79 msgid "Interpreter improvements:" msgstr "" -#: ../../whatsnew/3.11.rst:81 msgid ":ref:`whatsnew311-pep657`" msgstr "" -#: ../../whatsnew/3.11.rst:82 msgid "" "New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` " "environment variable to :ref:`disable automatically prepending potentially " "unsafe paths ` to :data:`sys.path`" msgstr "" -#: ../../whatsnew/3.11.rst:86 msgid "New typing features:" msgstr "" -#: ../../whatsnew/3.11.rst:88 msgid ":ref:`whatsnew311-pep646`" msgstr "" -#: ../../whatsnew/3.11.rst:89 msgid ":ref:`whatsnew311-pep655`" msgstr "" -#: ../../whatsnew/3.11.rst:90 msgid ":ref:`whatsnew311-pep673`" msgstr "" -#: ../../whatsnew/3.11.rst:91 msgid ":ref:`whatsnew311-pep675`" msgstr "" -#: ../../whatsnew/3.11.rst:92 msgid ":ref:`whatsnew311-pep681`" msgstr "" -#: ../../whatsnew/3.11.rst:94 msgid "Important deprecations, removals and restrictions:" msgstr "" -#: ../../whatsnew/3.11.rst:96 msgid "" ":pep:`594`: :ref:`Many legacy standard library modules have been deprecated " "` and will be removed in Python 3.13" msgstr "" -#: ../../whatsnew/3.11.rst:99 msgid "" ":pep:`624`: :ref:`Py_UNICODE encoder APIs have been removed `" msgstr "" -#: ../../whatsnew/3.11.rst:101 msgid "" ":pep:`670`: :ref:`Macros converted to static inline functions `" msgstr "" -#: ../../whatsnew/3.11.rst:108 ../../whatsnew/3.11.rst:2211 msgid "New Features" msgstr "" -#: ../../whatsnew/3.11.rst:113 msgid "PEP 657: Fine-grained error locations in tracebacks" msgstr "" -#: ../../whatsnew/3.11.rst:115 msgid "" "When printing tracebacks, the interpreter will now point to the exact " "expression that caused the error, instead of just the line. For example:" msgstr "" -#: ../../whatsnew/3.11.rst:118 msgid "" "Traceback (most recent call last):\n" " File \"distance.py\", line 11, in \n" @@ -166,7 +136,6 @@ msgid "" "AttributeError: 'NoneType' object has no attribute 'x'" msgstr "" -#: ../../whatsnew/3.11.rst:129 msgid "" "Previous versions of the interpreter would point to just the line, making it " "ambiguous which object was ``None``. These enhanced errors can also be " @@ -174,7 +143,6 @@ msgid "" "function calls:" msgstr "" -#: ../../whatsnew/3.11.rst:133 msgid "" "Traceback (most recent call last):\n" " File \"query.py\", line 37, in \n" @@ -191,11 +159,9 @@ msgid "" "TypeError: 'NoneType' object is not subscriptable" msgstr "" -#: ../../whatsnew/3.11.rst:149 msgid "As well as complex arithmetic expressions:" msgstr "" -#: ../../whatsnew/3.11.rst:151 msgid "" "Traceback (most recent call last):\n" " File \"calculation.py\", line 54, in \n" @@ -204,67 +170,56 @@ msgid "" "ZeroDivisionError: division by zero" msgstr "" -#: ../../whatsnew/3.11.rst:159 msgid "" "Additionally, the information used by the enhanced traceback feature is made " -"available via a general API, that can be used to " -"correlate :term:`bytecode` :ref:`instructions ` with source code " -"location. This information can be retrieved using:" +"available via a general API, that can be used to correlate :term:`bytecode` :" +"ref:`instructions ` with source code location. This information " +"can be retrieved using:" msgstr "" -#: ../../whatsnew/3.11.rst:164 msgid "The :meth:`codeobject.co_positions` method in Python." msgstr "" -#: ../../whatsnew/3.11.rst:165 msgid "The :c:func:`PyCode_Addr2Location` function in the C API." msgstr "" -#: ../../whatsnew/3.11.rst:167 msgid "" "See :pep:`657` for more details. (Contributed by Pablo Galindo, Batuhan " "Taskaya and Ammar Askar in :issue:`43950`.)" msgstr "" -#: ../../whatsnew/3.11.rst:171 msgid "" "This feature requires storing column positions in :ref:`codeobjects`, which " "may result in a small increase in interpreter memory usage and disk usage " "for compiled Python files. To avoid storing the extra information and " "deactivate printing the extra traceback information, use the :option:`-X " -"no_debug_ranges <-X>` command line option or " -"the :envvar:`PYTHONNODEBUGRANGES` environment variable." +"no_debug_ranges <-X>` command line option or the :envvar:" +"`PYTHONNODEBUGRANGES` environment variable." msgstr "" -#: ../../whatsnew/3.11.rst:183 msgid "PEP 654: Exception Groups and ``except*``" msgstr "" -#: ../../whatsnew/3.11.rst:185 msgid "" ":pep:`654` introduces language features that enable a program to raise and " -"handle multiple unrelated exceptions simultaneously. The builtin " -"types :exc:`ExceptionGroup` and :exc:`BaseExceptionGroup` make it possible " -"to group exceptions and raise them together, and the new :keyword:`except* " +"handle multiple unrelated exceptions simultaneously. The builtin types :exc:" +"`ExceptionGroup` and :exc:`BaseExceptionGroup` make it possible to group " +"exceptions and raise them together, and the new :keyword:`except* " "` syntax generalizes :keyword:`except` to match subgroups of " "exception groups." msgstr "" -#: ../../whatsnew/3.11.rst:192 msgid "See :pep:`654` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:194 msgid "" "(Contributed by Irit Katriel in :issue:`45292`. PEP written by Irit Katriel, " "Yury Selivanov and Guido van Rossum.)" msgstr "" -#: ../../whatsnew/3.11.rst:201 msgid "PEP 678: Exceptions can be enriched with notes" msgstr "" -#: ../../whatsnew/3.11.rst:203 msgid "" "The :meth:`~BaseException.add_note` method is added to :exc:`BaseException`. " "It can be used to enrich exceptions with context information that is not " @@ -272,43 +227,37 @@ msgid "" "in the default traceback." msgstr "" -#: ../../whatsnew/3.11.rst:208 msgid "See :pep:`678` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:210 msgid "" "(Contributed by Irit Katriel in :issue:`45607`. PEP written by Zac Hatfield-" "Dodds.)" msgstr "" -#: ../../whatsnew/3.11.rst:217 msgid "Windows ``py.exe`` launcher improvements" msgstr "" -#: ../../whatsnew/3.11.rst:219 msgid "" "The copy of the :ref:`launcher` included with Python 3.11 has been " -"significantly updated. It now supports company/tag syntax as defined " -"in :pep:`514` using the :samp:`-V:{}/{}` argument instead of " -"the limited :samp:`-{}.{}`. This allows launching " -"distributions other than ``PythonCore``, the one hosted on `python.org " -"`_." +"significantly updated. It now supports company/tag syntax as defined in :pep:" +"`514` using the :samp:`-V:{}/{}` argument instead of the " +"limited :samp:`-{}.{}`. This allows launching distributions " +"other than ``PythonCore``, the one hosted on `python.org `_." msgstr "" -#: ../../whatsnew/3.11.rst:225 msgid "" "When using ``-V:`` selectors, either company or tag can be omitted, but all " "installs will be searched. For example, ``-V:OtherPython/`` will select the " -"\"best\" tag registered for ``OtherPython``, while ``-V:3.11`` or ``-V:/" -"3.11`` will select the \"best\" distribution with tag ``3.11``." +"\"best\" tag registered for ``OtherPython``, while ``-V:3.11`` or ``-" +"V:/3.11`` will select the \"best\" distribution with tag ``3.11``." msgstr "" -#: ../../whatsnew/3.11.rst:230 msgid "" -"When using the legacy :samp:`-{}`, :samp:`-{}.{}" -"`, :samp:`-{}-{}` or :samp:`-{}.{}-{}" -"` arguments, all existing behaviour should be preserved from past versions, " +"When using the legacy :samp:`-{}`, :samp:`-{}.{}`, :" +"samp:`-{}-{}` or :samp:`-{}.{}-{}` " +"arguments, all existing behaviour should be preserved from past versions, " "and only releases from ``PythonCore`` will be selected. However, the ``-64`` " "suffix now implies \"not 32-bit\" (not necessarily x86-64), as there are " "multiple supported 64-bit platforms. 32-bit runtimes are detected by " @@ -316,30 +265,25 @@ msgid "" "since 3.5 have included this in their 32-bit builds." msgstr "" -#: ../../whatsnew/3.11.rst:244 msgid "New Features Related to Type Hints" msgstr "" -#: ../../whatsnew/3.11.rst:246 msgid "" -"This section covers major changes affecting :pep:`484` type hints and " -"the :mod:`typing` module." +"This section covers major changes affecting :pep:`484` type hints and the :" +"mod:`typing` module." msgstr "" -#: ../../whatsnew/3.11.rst:253 msgid "PEP 646: Variadic generics" msgstr "" -#: ../../whatsnew/3.11.rst:255 msgid "" ":pep:`484` previously introduced :data:`~typing.TypeVar`, enabling creation " -"of generics parameterised with a single type. :pep:`646` " -"adds :data:`~typing.TypeVarTuple`, enabling parameterisation with an " -"*arbitrary* number of types. In other words, a :data:`~typing.TypeVarTuple` " -"is a *variadic* type variable, enabling *variadic* generics." +"of generics parameterised with a single type. :pep:`646` adds :data:`~typing." +"TypeVarTuple`, enabling parameterisation with an *arbitrary* number of " +"types. In other words, a :data:`~typing.TypeVarTuple` is a *variadic* type " +"variable, enabling *variadic* generics." msgstr "" -#: ../../whatsnew/3.11.rst:262 msgid "" "This enables a wide variety of use cases. In particular, it allows the type " "of array-like structures in numerical computing libraries such as NumPy and " @@ -348,31 +292,26 @@ msgid "" "libraries." msgstr "" -#: ../../whatsnew/3.11.rst:268 msgid "See :pep:`646` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:270 msgid "" "(Contributed by Matthew Rahtz in :issue:`43224`, with contributions by " "Serhiy Storchaka and Jelle Zijlstra. PEP written by Mark Mendoza, Matthew " "Rahtz, Pradeep Kumar Srinivasan, and Vincent Siles.)" msgstr "" -#: ../../whatsnew/3.11.rst:278 msgid "" "PEP 655: Marking individual ``TypedDict`` items as required or not-required" msgstr "" -#: ../../whatsnew/3.11.rst:280 msgid "" ":data:`~typing.Required` and :data:`~typing.NotRequired` provide a " -"straightforward way to mark whether individual items in " -"a :class:`~typing.TypedDict` must be present. Previously, this was only " -"possible using inheritance." +"straightforward way to mark whether individual items in a :class:`~typing." +"TypedDict` must be present. Previously, this was only possible using " +"inheritance." msgstr "" -#: ../../whatsnew/3.11.rst:285 msgid "" "All fields are still required by default, unless the *total* parameter is " "set to ``False``, in which case all fields are still not-required by " @@ -380,7 +319,6 @@ msgid "" "required and one not-required key::" msgstr "" -#: ../../whatsnew/3.11.rst:291 msgid "" "class Movie(TypedDict):\n" " title: str\n" @@ -391,32 +329,26 @@ msgid "" "m3: Movie = {\"year\": 2022} # ERROR (missing required field title)" msgstr "" -#: ../../whatsnew/3.11.rst:299 msgid "The following definition is equivalent::" msgstr "" -#: ../../whatsnew/3.11.rst:301 msgid "" "class Movie(TypedDict, total=False):\n" " title: Required[str]\n" " year: int" msgstr "" -#: ../../whatsnew/3.11.rst:305 msgid "See :pep:`655` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:307 msgid "" "(Contributed by David Foster and Jelle Zijlstra in :issue:`47087`. PEP " "written by David Foster.)" msgstr "" -#: ../../whatsnew/3.11.rst:314 msgid "PEP 673: ``Self`` type" msgstr "" -#: ../../whatsnew/3.11.rst:316 msgid "" "The new :data:`~typing.Self` annotation provides a simple and intuitive way " "to annotate methods that return an instance of their class. This behaves the " @@ -425,14 +357,12 @@ msgid "" "easier to follow." msgstr "" -#: ../../whatsnew/3.11.rst:322 msgid "" -"Common use cases include alternative constructors provided " -"as :func:`classmethod `\\s, and :meth:`~object.__enter__` " -"methods that return ``self``::" +"Common use cases include alternative constructors provided as :func:" +"`classmethod `\\s, and :meth:`~object.__enter__` methods that " +"return ``self``::" msgstr "" -#: ../../whatsnew/3.11.rst:326 msgid "" "class MyLock:\n" " def __enter__(self) -> Self:\n" @@ -449,27 +379,22 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.11.rst:340 msgid "" ":data:`~typing.Self` can also be used to annotate method parameters or " "attributes of the same type as their enclosing class." msgstr "" -#: ../../whatsnew/3.11.rst:343 msgid "See :pep:`673` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:345 msgid "" "(Contributed by James Hilton-Balfe in :issue:`46534`. PEP written by Pradeep " "Kumar Srinivasan and James Hilton-Balfe.)" msgstr "" -#: ../../whatsnew/3.11.rst:352 msgid "PEP 675: Arbitrary literal string type" msgstr "" -#: ../../whatsnew/3.11.rst:354 msgid "" "The new :data:`~typing.LiteralString` annotation may be used to indicate " "that a function parameter can be of any literal string type. This allows a " @@ -480,11 +405,9 @@ msgid "" "against injection attacks." msgstr "" -#: ../../whatsnew/3.11.rst:362 msgid "For example, a SQL query function could be annotated as follows::" msgstr "" -#: ../../whatsnew/3.11.rst:364 msgid "" "def run_query(sql: LiteralString) -> ...\n" " ...\n" @@ -503,34 +426,28 @@ msgid "" " )" msgstr "" -#: ../../whatsnew/3.11.rst:380 msgid "See :pep:`675` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:382 msgid "" "(Contributed by Jelle Zijlstra in :issue:`47088`. PEP written by Pradeep " "Kumar Srinivasan and Graham Bleaney.)" msgstr "" -#: ../../whatsnew/3.11.rst:389 msgid "PEP 681: Data class transforms" msgstr "" -#: ../../whatsnew/3.11.rst:391 msgid "" ":data:`~typing.dataclass_transform` may be used to decorate a class, " "metaclass, or a function that is itself a decorator. The presence of " "``@dataclass_transform()`` tells a static type checker that the decorated " -"object performs runtime \"magic\" that transforms a class, giving " -"it :func:`dataclass `-like behaviors." +"object performs runtime \"magic\" that transforms a class, giving it :func:" +"`dataclass `-like behaviors." msgstr "" -#: ../../whatsnew/3.11.rst:397 msgid "For example::" msgstr "" -#: ../../whatsnew/3.11.rst:399 msgid "" "# The create_model decorator is defined by a library.\n" "@typing.dataclass_transform()\n" @@ -549,21 +466,17 @@ msgid "" "c = CustomerModel(id=327, name=\"Eric Idle\")" msgstr "" -#: ../../whatsnew/3.11.rst:415 msgid "See :pep:`681` for more details." msgstr "" -#: ../../whatsnew/3.11.rst:417 msgid "" "(Contributed by Jelle Zijlstra in :gh:`91860`. PEP written by Erik De Bonte " "and Eric Traut.)" msgstr "" -#: ../../whatsnew/3.11.rst:424 msgid "PEP 563 may not be the future" msgstr "" -#: ../../whatsnew/3.11.rst:426 msgid "" ":pep:`563` Postponed Evaluation of Annotations (the ``from __future__ import " "annotations`` :ref:`future statement `) that was originally planned " @@ -573,17 +486,14 @@ msgid "" "information." msgstr "" -#: ../../whatsnew/3.11.rst:437 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.11.rst:439 msgid "" "Starred unpacking expressions can now be used in :keyword:`for` statements. " "(See :issue:`46725` for more details.)" msgstr "" -#: ../../whatsnew/3.11.rst:442 msgid "" "Asynchronous :ref:`comprehensions ` are now allowed inside " "comprehensions in :ref:`asynchronous functions `. Outer " @@ -591,51 +501,46 @@ msgid "" "Serhiy Storchaka in :issue:`33346`.)" msgstr "" -#: ../../whatsnew/3.11.rst:447 msgid "" -"A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` " -"in :keyword:`with` statements and :meth:`contextlib.ExitStack.enter_context` " -"for objects that do not support the :term:`context manager` protocol, and " -"in :keyword:`async with` statements " -"and :meth:`contextlib.AsyncExitStack.enter_async_context` for objects not " -"supporting the :term:`asynchronous context manager` protocol. (Contributed " -"by Serhiy Storchaka in :issue:`12022` and :issue:`44471`.)" +"A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in :" +"keyword:`with` statements and :meth:`contextlib.ExitStack.enter_context` for " +"objects that do not support the :term:`context manager` protocol, and in :" +"keyword:`async with` statements and :meth:`contextlib.AsyncExitStack." +"enter_async_context` for objects not supporting the :term:`asynchronous " +"context manager` protocol. (Contributed by Serhiy Storchaka in :issue:" +"`12022` and :issue:`44471`.)" msgstr "" -#: ../../whatsnew/3.11.rst:455 msgid "" "Added :meth:`object.__getstate__`, which provides the default implementation " "of the :meth:`!__getstate__` method. :mod:`copy`\\ing and :mod:`pickle`\\ing " -"instances of subclasses of builtin " -"types :class:`bytearray`, :class:`set`, :class:`frozenset`, :class:`collections.OrderedDict`, :class:`collections.deque`, :class:`weakref.WeakSet`, " -"and :class:`datetime.tzinfo` now copies and pickles instance attributes " -"implemented as :term:`slots <__slots__>`. This change has an unintended side " -"effect: It trips up a small minority of existing Python projects not " -"expecting :meth:`object.__getstate__` to exist. See the later comments " -"on :gh:`70766` for discussions of what workarounds such code may need. " -"(Contributed by Serhiy Storchaka in :issue:`26579`.)" +"instances of subclasses of builtin types :class:`bytearray`, :class:`set`, :" +"class:`frozenset`, :class:`collections.OrderedDict`, :class:`collections." +"deque`, :class:`weakref.WeakSet`, and :class:`datetime.tzinfo` now copies " +"and pickles instance attributes implemented as :term:`slots <__slots__>`. " +"This change has an unintended side effect: It trips up a small minority of " +"existing Python projects not expecting :meth:`object.__getstate__` to exist. " +"See the later comments on :gh:`70766` for discussions of what workarounds " +"such code may need. (Contributed by Serhiy Storchaka in :issue:`26579`.)" msgstr "" -#: ../../whatsnew/3.11.rst:470 msgid "" "Added a :option:`-P` command line option and a :envvar:`PYTHONSAFEPATH` " -"environment variable, which disable the automatic prepending " -"to :data:`sys.path` of the script's directory when running a script, or the " -"current directory when using :option:`-c` and :option:`-m`. This ensures " -"only stdlib and installed modules are picked up by :keyword:`import`, and " -"avoids unintentionally or maliciously shadowing modules with those in a " -"local (and typically user-writable) directory. (Contributed by Victor " -"Stinner in :gh:`57684`.)" +"environment variable, which disable the automatic prepending to :data:`sys." +"path` of the script's directory when running a script, or the current " +"directory when using :option:`-c` and :option:`-m`. This ensures only stdlib " +"and installed modules are picked up by :keyword:`import`, and avoids " +"unintentionally or maliciously shadowing modules with those in a local (and " +"typically user-writable) directory. (Contributed by Victor Stinner in :gh:" +"`57684`.)" msgstr "" -#: ../../whatsnew/3.11.rst:481 msgid "" "A ``\"z\"`` option was added to the :ref:`formatspec` that coerces negative " "to positive zero after rounding to the format precision. See :pep:`682` for " "more details. (Contributed by John Belmonte in :gh:`90153`.)" msgstr "" -#: ../../whatsnew/3.11.rst:486 msgid "" "Bytes are no longer accepted on :data:`sys.path`. Support broke sometime " "between Python 3.2 and 3.6, with no one noticing until after Python 3.10.0 " @@ -645,19 +550,16 @@ msgid "" "Thomas Grainger in :gh:`91181`.)" msgstr "" -#: ../../whatsnew/3.11.rst:497 msgid "Other CPython Implementation Changes" msgstr "" -#: ../../whatsnew/3.11.rst:499 msgid "" -"The special methods :meth:`~object.__complex__` for :class:`complex` " -"and :meth:`~object.__bytes__` for :class:`bytes` are implemented to support " -"the :class:`typing.SupportsComplex` and :class:`typing.SupportsBytes` " -"protocols. (Contributed by Mark Dickinson and Donghee Na in :issue:`24234`.)" +"The special methods :meth:`~object.__complex__` for :class:`complex` and :" +"meth:`~object.__bytes__` for :class:`bytes` are implemented to support the :" +"class:`typing.SupportsComplex` and :class:`typing.SupportsBytes` protocols. " +"(Contributed by Mark Dickinson and Donghee Na in :issue:`24234`.)" msgstr "" -#: ../../whatsnew/3.11.rst:504 msgid "" "``siphash13`` is added as a new internal hashing algorithm. It has similar " "security properties as ``siphash24``, but it is slightly faster for long " @@ -667,16 +569,14 @@ msgid "" "in :issue:`29410`.)" msgstr "" -#: ../../whatsnew/3.11.rst:513 msgid "" "When an active exception is re-raised by a :keyword:`raise` statement with " -"no parameters, the traceback attached to this exception is now always " -"``sys.exc_info()[1].__traceback__``. This means that changes made to the " -"traceback in the current :keyword:`except` clause are reflected in the re-" -"raised exception. (Contributed by Irit Katriel in :issue:`45711`.)" +"no parameters, the traceback attached to this exception is now always ``sys." +"exc_info()[1].__traceback__``. This means that changes made to the traceback " +"in the current :keyword:`except` clause are reflected in the re-raised " +"exception. (Contributed by Irit Katriel in :issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:519 msgid "" "The interpreter state's representation of handled exceptions (aka " "``exc_info`` or ``_PyErr_StackItem``) now only has the ``exc_value`` field; " @@ -684,7 +584,6 @@ msgid "" "from ``exc_value``. (Contributed by Irit Katriel in :issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:525 msgid "" "A new :ref:`command line option `, ``AppendPath``, has " "been added for the Windows installer. It behaves similarly to " @@ -692,7 +591,6 @@ msgid "" "prepending them. (Contributed by Bastian Neuburger in :issue:`44934`.)" msgstr "" -#: ../../whatsnew/3.11.rst:531 msgid "" "The :c:member:`PyConfig.module_search_paths_set` field must now be set to " "``1`` for initialization to use :c:member:`PyConfig.module_search_paths` to " @@ -700,7 +598,6 @@ msgid "" "path and replace any values added to ``module_search_paths``." msgstr "" -#: ../../whatsnew/3.11.rst:536 msgid "" "The output of the :option:`--help` option now fits in 50 lines/80 columns. " "Information about :ref:`Python environment variables ` " @@ -709,7 +606,6 @@ msgid "" "help-all`. (Contributed by Éric Araujo in :issue:`46142`.)" msgstr "" -#: ../../whatsnew/3.11.rst:543 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " @@ -722,126 +618,104 @@ msgid "" "digits in string form." msgstr "" -#: ../../whatsnew/3.11.rst:557 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.11.rst:559 msgid "" ":mod:`tomllib`: For parsing `TOML `_. See :pep:`680` for " "more details. (Contributed by Taneli Hukkinen in :issue:`40059`.)" msgstr "" -#: ../../whatsnew/3.11.rst:563 msgid "" ":mod:`wsgiref.types`: :pep:`WSGI <3333>`-specific types for static type " "checking. (Contributed by Sebastian Rittau in :issue:`42012`.)" msgstr "" -#: ../../whatsnew/3.11.rst:571 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.11.rst:576 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.11.rst:578 msgid "" "Added the :class:`~asyncio.TaskGroup` class, an :ref:`asynchronous context " "manager ` holding a group of tasks that will wait " -"for all of them upon exit. For new code this is recommended over " -"using :func:`~asyncio.create_task` and :func:`~asyncio.gather` directly. " -"(Contributed by Yury Selivanov and others in :gh:`90908`.)" +"for all of them upon exit. For new code this is recommended over using :func:" +"`~asyncio.create_task` and :func:`~asyncio.gather` directly. (Contributed by " +"Yury Selivanov and others in :gh:`90908`.)" msgstr "" -#: ../../whatsnew/3.11.rst:585 msgid "" "Added :func:`~asyncio.timeout`, an asynchronous context manager for setting " "a timeout on asynchronous operations. For new code this is recommended over " -"using :func:`~asyncio.wait_for` directly. (Contributed by Andrew Svetlov " -"in :gh:`90927`.)" +"using :func:`~asyncio.wait_for` directly. (Contributed by Andrew Svetlov in :" +"gh:`90927`.)" msgstr "" -#: ../../whatsnew/3.11.rst:590 msgid "" "Added the :class:`~asyncio.Runner` class, which exposes the machinery used " "by :func:`~asyncio.run`. (Contributed by Andrew Svetlov in :gh:`91218`.)" msgstr "" -#: ../../whatsnew/3.11.rst:594 msgid "" "Added the :class:`~asyncio.Barrier` class to the synchronization primitives " "in the asyncio library, and the related :exc:`~asyncio.BrokenBarrierError` " "exception. (Contributed by Yves Duprat and Andrew Svetlov in :gh:`87518`.)" msgstr "" -#: ../../whatsnew/3.11.rst:599 msgid "" -"Added keyword argument *all_errors* " -"to :meth:`asyncio.loop.create_connection` so that multiple connection errors " -"can be raised as an :exc:`ExceptionGroup`." +"Added keyword argument *all_errors* to :meth:`asyncio.loop." +"create_connection` so that multiple connection errors can be raised as an :" +"exc:`ExceptionGroup`." msgstr "" -#: ../../whatsnew/3.11.rst:602 msgid "" "Added the :meth:`asyncio.StreamWriter.start_tls` method for upgrading " -"existing stream-based connections to TLS. (Contributed by Ian Good " -"in :issue:`34975`.)" +"existing stream-based connections to TLS. (Contributed by Ian Good in :issue:" +"`34975`.)" msgstr "" -#: ../../whatsnew/3.11.rst:606 msgid "" -"Added raw datagram socket functions to the event " -"loop: :meth:`~asyncio.loop.sock_sendto`, :meth:`~asyncio.loop.sock_recvfrom` " -"and :meth:`~asyncio.loop.sock_recvfrom_into`. These have implementations " -"in :class:`~asyncio.SelectorEventLoop` " -"and :class:`~asyncio.ProactorEventLoop`. (Contributed by Alex Grönholm " -"in :issue:`46805`.)" +"Added raw datagram socket functions to the event loop: :meth:`~asyncio.loop." +"sock_sendto`, :meth:`~asyncio.loop.sock_recvfrom` and :meth:`~asyncio.loop." +"sock_recvfrom_into`. These have implementations in :class:`~asyncio." +"SelectorEventLoop` and :class:`~asyncio.ProactorEventLoop`. (Contributed by " +"Alex Grönholm in :issue:`46805`.)" msgstr "" -#: ../../whatsnew/3.11.rst:614 msgid "" "Added :meth:`~asyncio.Task.cancelling` and :meth:`~asyncio.Task.uncancel` " "methods to :class:`~asyncio.Task`. These are primarily intended for internal " "use, notably by :class:`~asyncio.TaskGroup`." msgstr "" -#: ../../whatsnew/3.11.rst:623 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.11.rst:625 msgid "" "Added non parallel-safe :func:`~contextlib.chdir` context manager to change " "the current working directory and then restore it on exit. Simple wrapper " "around :func:`~os.chdir`. (Contributed by Filipe Laíns in :issue:`25625`)" msgstr "" -#: ../../whatsnew/3.11.rst:633 msgid "dataclasses" msgstr "" -#: ../../whatsnew/3.11.rst:635 msgid "" -"Change field default mutability check, allowing only defaults which " -"are :term:`hashable` instead of any object which is not an instance " -"of :class:`dict`, :class:`list` or :class:`set`. (Contributed by Eric V. " -"Smith in :issue:`44674`.)" +"Change field default mutability check, allowing only defaults which are :" +"term:`hashable` instead of any object which is not an instance of :class:" +"`dict`, :class:`list` or :class:`set`. (Contributed by Eric V. Smith in :" +"issue:`44674`.)" msgstr "" -#: ../../whatsnew/3.11.rst:644 msgid "datetime" msgstr "" -#: ../../whatsnew/3.11.rst:646 msgid "" -"Add :const:`datetime.UTC`, a convenience alias " -"for :attr:`datetime.timezone.utc`. (Contributed by Kabir Kwatra " -"in :gh:`91973`.)" +"Add :const:`datetime.UTC`, a convenience alias for :attr:`datetime.timezone." +"utc`. (Contributed by Kabir Kwatra in :gh:`91973`.)" msgstr "" -#: ../../whatsnew/3.11.rst:649 msgid "" ":meth:`datetime.date.fromisoformat`, :meth:`datetime.time.fromisoformat` " "and :meth:`datetime.datetime.fromisoformat` can now be used to parse most " @@ -849,137 +723,114 @@ msgid "" "minutes). (Contributed by Paul Ganssle in :gh:`80010`.)" msgstr "" -#: ../../whatsnew/3.11.rst:658 msgid "enum" msgstr "" -#: ../../whatsnew/3.11.rst:660 msgid "" "Renamed :class:`!EnumMeta` to :class:`~enum.EnumType` (:class:`!EnumMeta` " "kept as an alias)." msgstr "" -#: ../../whatsnew/3.11.rst:663 msgid "" "Added :class:`~enum.StrEnum`, with members that can be used as (and must be) " "strings." msgstr "" -#: ../../whatsnew/3.11.rst:666 msgid "" -"Added :class:`~enum.ReprEnum`, which only modifies " -"the :meth:`~object.__repr__` of members while returning their literal values " -"(rather than names) for :meth:`~object.__str__` " -"and :meth:`~object.__format__` (used by :func:`str`, :func:`format` " -"and :term:`f-string`\\s)." +"Added :class:`~enum.ReprEnum`, which only modifies the :meth:`~object." +"__repr__` of members while returning their literal values (rather than " +"names) for :meth:`~object.__str__` and :meth:`~object.__format__` (used by :" +"func:`str`, :func:`format` and :term:`f-string`\\s)." msgstr "" -#: ../../whatsnew/3.11.rst:672 msgid "" -"Changed :meth:`Enum.__format__() ` (the default " -"for :func:`format`, :meth:`str.format` and :term:`f-string`\\s) to always " -"produce the same result as :meth:`Enum.__str__() `: for " -"enums inheriting from :class:`~enum.ReprEnum` it will be the member's value; " -"for all other enums it will be the enum and member name (e.g. ``Color.RED``)." +"Changed :meth:`Enum.__format__() ` (the default for :" +"func:`format`, :meth:`str.format` and :term:`f-string`\\s) to always produce " +"the same result as :meth:`Enum.__str__() `: for enums " +"inheriting from :class:`~enum.ReprEnum` it will be the member's value; for " +"all other enums it will be the enum and member name (e.g. ``Color.RED``)." msgstr "" -#: ../../whatsnew/3.11.rst:678 msgid "" -"Added a new *boundary* class parameter to :class:`~enum.Flag` enums and " -"the :class:`~enum.FlagBoundary` enum with its options, to control how to " -"handle out-of-range flag values." +"Added a new *boundary* class parameter to :class:`~enum.Flag` enums and the :" +"class:`~enum.FlagBoundary` enum with its options, to control how to handle " +"out-of-range flag values." msgstr "" -#: ../../whatsnew/3.11.rst:682 msgid "" -"Added the :func:`~enum.verify` enum decorator and " -"the :class:`~enum.EnumCheck` enum with its options, to check enum classes " -"against several specific constraints." +"Added the :func:`~enum.verify` enum decorator and the :class:`~enum." +"EnumCheck` enum with its options, to check enum classes against several " +"specific constraints." msgstr "" -#: ../../whatsnew/3.11.rst:686 msgid "" "Added the :func:`~enum.member` and :func:`~enum.nonmember` decorators, to " "ensure the decorated object is/is not converted to an enum member." msgstr "" -#: ../../whatsnew/3.11.rst:689 msgid "" -"Added the :func:`~enum.property` decorator, which works " -"like :func:`property` except for enums. Use this instead " -"of :func:`types.DynamicClassAttribute`." +"Added the :func:`~enum.property` decorator, which works like :func:" +"`property` except for enums. Use this instead of :func:`types." +"DynamicClassAttribute`." msgstr "" -#: ../../whatsnew/3.11.rst:693 msgid "" -"Added the :func:`~enum.global_enum` enum decorator, which " -"adjusts :meth:`~object.__repr__` and :meth:`~object.__str__` to show values " -"as members of their module rather than the enum class. For example, " -"``'re.ASCII'`` for the :const:`~re.ASCII` member of :class:`re.RegexFlag` " -"rather than ``'RegexFlag.ASCII'``." +"Added the :func:`~enum.global_enum` enum decorator, which adjusts :meth:" +"`~object.__repr__` and :meth:`~object.__str__` to show values as members of " +"their module rather than the enum class. For example, ``'re.ASCII'`` for " +"the :const:`~re.ASCII` member of :class:`re.RegexFlag` rather than " +"``'RegexFlag.ASCII'``." msgstr "" -#: ../../whatsnew/3.11.rst:699 msgid "" -"Enhanced :class:`~enum.Flag` to support :func:`len`, iteration " -"and :keyword:`in`/:keyword:`not in` on its members. For example, the " -"following now works: ``len(AFlag(3)) == 2 and list(AFlag(3)) == (AFlag.ONE, " -"AFlag.TWO)``" +"Enhanced :class:`~enum.Flag` to support :func:`len`, iteration and :keyword:" +"`in`/:keyword:`not in` on its members. For example, the following now works: " +"``len(AFlag(3)) == 2 and list(AFlag(3)) == (AFlag.ONE, AFlag.TWO)``" msgstr "" -#: ../../whatsnew/3.11.rst:704 msgid "" "Changed :class:`~enum.Enum` and :class:`~enum.Flag` so that members are now " "defined before :meth:`~object.__init_subclass__` is called; :func:`dir` now " "includes methods, etc., from mixed-in data types." msgstr "" -#: ../../whatsnew/3.11.rst:709 msgid "" "Changed :class:`~enum.Flag` to only consider primary values (power of two) " "canonical while composite values (``3``, ``6``, ``10``, etc.) are considered " "aliases; inverted flags are coerced to their positive equivalent." msgstr "" -#: ../../whatsnew/3.11.rst:718 msgid "fcntl" msgstr "" -#: ../../whatsnew/3.11.rst:720 msgid "" "On FreeBSD, the :data:`!F_DUP2FD` and :data:`!F_DUP2FD_CLOEXEC` flags " "respectively are supported, the former equals to ``dup2`` usage while the " "latter set the ``FD_CLOEXEC`` flag in addition." msgstr "" -#: ../../whatsnew/3.11.rst:728 msgid "fractions" msgstr "" -#: ../../whatsnew/3.11.rst:730 msgid "" "Support :PEP:`515`-style initialization of :class:`~fractions.Fraction` from " "string. (Contributed by Sergey B Kirpichev in :issue:`44258`.)" msgstr "" -#: ../../whatsnew/3.11.rst:733 msgid "" ":class:`~fractions.Fraction` now implements an ``__int__`` method, so that " "an ``isinstance(some_fraction, typing.SupportsInt)`` check passes. " "(Contributed by Mark Dickinson in :issue:`44547`.)" msgstr "" -#: ../../whatsnew/3.11.rst:741 msgid "functools" msgstr "" -#: ../../whatsnew/3.11.rst:743 msgid "" -":func:`functools.singledispatch` now supports :class:`types.UnionType` " -"and :class:`typing.Union` as annotations to the dispatch argument.::" +":func:`functools.singledispatch` now supports :class:`types.UnionType` and :" +"class:`typing.Union` as annotations to the dispatch argument.::" msgstr "" -#: ../../whatsnew/3.11.rst:746 msgid "" ">>> from functools import singledispatch\n" ">>> @singledispatch\n" @@ -1004,38 +855,31 @@ msgid "" "..." msgstr "" -#: ../../whatsnew/3.11.rst:768 msgid "(Contributed by Yurii Karabas in :issue:`46014`.)" msgstr "" -#: ../../whatsnew/3.11.rst:774 msgid "gzip" msgstr "" -#: ../../whatsnew/3.11.rst:776 msgid "" "The :func:`gzip.compress` function is now faster when used with the " -"**mtime=0** argument as it delegates the compression entirely to a " -"single :func:`zlib.compress` operation. There is one side effect of this " -"change: The gzip file header contains an \"OS\" byte in its header. That was " -"traditionally always set to a value of 255 representing \"unknown\" by " -"the :mod:`gzip` module. Now, when using :func:`~gzip.compress` with " -"**mtime=0**, it may be set to a different value by the underlying zlib C " -"library Python was linked against. (See :gh:`112346` for details on the side " -"effect.)" +"**mtime=0** argument as it delegates the compression entirely to a single :" +"func:`zlib.compress` operation. There is one side effect of this change: The " +"gzip file header contains an \"OS\" byte in its header. That was " +"traditionally always set to a value of 255 representing \"unknown\" by the :" +"mod:`gzip` module. Now, when using :func:`~gzip.compress` with **mtime=0**, " +"it may be set to a different value by the underlying zlib C library Python " +"was linked against. (See :gh:`112346` for details on the side effect.)" msgstr "" -#: ../../whatsnew/3.11.rst:789 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.11.rst:791 msgid "" ":func:`hashlib.blake2b` and :func:`hashlib.blake2s` now prefer `libb2`_ over " "Python's vendored copy. (Contributed by Christian Heimes in :issue:`47095`.)" msgstr "" -#: ../../whatsnew/3.11.rst:795 msgid "" "The internal ``_sha3`` module with SHA3 and SHAKE algorithms now uses " "*tiny_sha3* instead of the *Keccak Code Package* to reduce code and binary " @@ -1044,47 +888,39 @@ msgid "" "OpenSSL support. (Contributed by Christian Heimes in :issue:`47098`.)" msgstr "" -#: ../../whatsnew/3.11.rst:802 msgid "" "Add :func:`hashlib.file_digest`, a helper function for efficient hashing of " "files or file-like objects. (Contributed by Christian Heimes in :gh:`89313`.)" msgstr "" -#: ../../whatsnew/3.11.rst:810 msgid "IDLE and idlelib" msgstr "" -#: ../../whatsnew/3.11.rst:812 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" msgstr "" -#: ../../whatsnew/3.11.rst:815 msgid "" "Include prompts when saving Shell with inputs and outputs. (Contributed by " "Terry Jan Reedy in :gh:`95191`.)" msgstr "" -#: ../../whatsnew/3.11.rst:822 msgid "inspect" msgstr "" -#: ../../whatsnew/3.11.rst:824 msgid "" "Add :func:`~inspect.getmembers_static` to return all members without " "triggering dynamic lookup via the descriptor protocol. (Contributed by " "Weipeng Hong in :issue:`30533`.)" msgstr "" -#: ../../whatsnew/3.11.rst:828 msgid "" "Add :func:`~inspect.ismethodwrapper` for checking if the type of an object " -"is a :class:`~types.MethodWrapperType`. (Contributed by Hakan Çelik " -"in :issue:`29418`.)" +"is a :class:`~types.MethodWrapperType`. (Contributed by Hakan Çelik in :" +"issue:`29418`.)" msgstr "" -#: ../../whatsnew/3.11.rst:832 msgid "" "Change the frame-related functions in the :mod:`inspect` module to return " "new :class:`~inspect.FrameInfo` and :class:`~inspect.Traceback` class " @@ -1093,209 +929,172 @@ msgid "" "line number, column and end column). The affected functions are:" msgstr "" -#: ../../whatsnew/3.11.rst:838 msgid ":func:`inspect.getframeinfo`" msgstr "" -#: ../../whatsnew/3.11.rst:839 msgid ":func:`inspect.getouterframes`" msgstr "" -#: ../../whatsnew/3.11.rst:840 msgid ":func:`inspect.getinnerframes`," msgstr "" -#: ../../whatsnew/3.11.rst:841 msgid ":func:`inspect.stack`" msgstr "" -#: ../../whatsnew/3.11.rst:842 msgid ":func:`inspect.trace`" msgstr "" -#: ../../whatsnew/3.11.rst:844 msgid "(Contributed by Pablo Galindo in :gh:`88116`.)" msgstr "" -#: ../../whatsnew/3.11.rst:850 msgid "locale" msgstr "" -#: ../../whatsnew/3.11.rst:852 msgid "" "Add :func:`locale.getencoding` to get the current locale encoding. It is " -"similar to ``locale.getpreferredencoding(False)`` but ignores " -"the :ref:`Python UTF-8 Mode `." +"similar to ``locale.getpreferredencoding(False)`` but ignores the :ref:" +"`Python UTF-8 Mode `." msgstr "" -#: ../../whatsnew/3.11.rst:860 msgid "logging" msgstr "" -#: ../../whatsnew/3.11.rst:862 msgid "" "Added :func:`~logging.getLevelNamesMapping` to return a mapping from logging " -"level names (e.g. ``'CRITICAL'``) to the values of their " -"corresponding :ref:`levels` (e.g. ``50``, by default). (Contributed by " -"Andrei Kulakovin in :gh:`88024`.)" +"level names (e.g. ``'CRITICAL'``) to the values of their corresponding :ref:" +"`levels` (e.g. ``50``, by default). (Contributed by Andrei Kulakovin in :gh:" +"`88024`.)" msgstr "" -#: ../../whatsnew/3.11.rst:867 msgid "" -"Added a :meth:`~logging.handlers.SysLogHandler.createSocket` method " -"to :class:`~logging.handlers.SysLogHandler`, to " -"match :meth:`SocketHandler.createSocket() " -"`. It is called automatically " -"during handler initialization and when emitting an event, if there is no " -"active socket. (Contributed by Kirill Pinchuk in :gh:`88457`.)" +"Added a :meth:`~logging.handlers.SysLogHandler.createSocket` method to :" +"class:`~logging.handlers.SysLogHandler`, to match :meth:`SocketHandler." +"createSocket() `. It is called " +"automatically during handler initialization and when emitting an event, if " +"there is no active socket. (Contributed by Kirill Pinchuk in :gh:`88457`.)" msgstr "" -#: ../../whatsnew/3.11.rst:879 msgid "math" msgstr "" -#: ../../whatsnew/3.11.rst:881 msgid "" "Add :func:`math.exp2`: return 2 raised to the power of x. (Contributed by " "Gideon Mitchell in :issue:`45917`.)" msgstr "" -#: ../../whatsnew/3.11.rst:884 msgid "" "Add :func:`math.cbrt`: return the cube root of x. (Contributed by Ajith " "Ramachandran in :issue:`44357`.)" msgstr "" -#: ../../whatsnew/3.11.rst:887 msgid "" "The behaviour of two :func:`math.pow` corner cases was changed, for " -"consistency with the IEEE 754 specification. The operations ``math.pow(0.0, " -"-math.inf)`` and ``math.pow(-0.0, -math.inf)`` now return ``inf``. " -"Previously they raised :exc:`ValueError`. (Contributed by Mark Dickinson " -"in :issue:`44339`.)" +"consistency with the IEEE 754 specification. The operations ``math.pow(0.0, -" +"math.inf)`` and ``math.pow(-0.0, -math.inf)`` now return ``inf``. Previously " +"they raised :exc:`ValueError`. (Contributed by Mark Dickinson in :issue:" +"`44339`.)" msgstr "" -#: ../../whatsnew/3.11.rst:893 msgid "" "The :data:`math.nan` value is now always available. (Contributed by Victor " "Stinner in :issue:`46917`.)" msgstr "" -#: ../../whatsnew/3.11.rst:900 msgid "operator" msgstr "" -#: ../../whatsnew/3.11.rst:902 msgid "" -"A new function ``operator.call`` has been added, such that " -"``operator.call(obj, *args, **kwargs) == obj(*args, **kwargs)``. " -"(Contributed by Antony Lee in :issue:`44019`.)" +"A new function ``operator.call`` has been added, such that ``operator." +"call(obj, *args, **kwargs) == obj(*args, **kwargs)``. (Contributed by Antony " +"Lee in :issue:`44019`.)" msgstr "" -#: ../../whatsnew/3.11.rst:910 msgid "os" msgstr "" -#: ../../whatsnew/3.11.rst:912 msgid "" "On Windows, :func:`os.urandom` now uses ``BCryptGenRandom()``, instead of " -"``CryptGenRandom()`` which is deprecated. (Contributed by Donghee Na " -"in :issue:`44611`.)" +"``CryptGenRandom()`` which is deprecated. (Contributed by Donghee Na in :" +"issue:`44611`.)" msgstr "" -#: ../../whatsnew/3.11.rst:920 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.11.rst:922 msgid "" ":meth:`~pathlib.Path.glob` and :meth:`~pathlib.Path.rglob` return only " -"directories if *pattern* ends with a pathname components " -"separator: :data:`~os.sep` or :data:`~os.altsep`. (Contributed by Eisuke " -"Kawasima in :issue:`22276` and :issue:`33392`.)" +"directories if *pattern* ends with a pathname components separator: :data:" +"`~os.sep` or :data:`~os.altsep`. (Contributed by Eisuke Kawasima in :issue:" +"`22276` and :issue:`33392`.)" msgstr "" -#: ../../whatsnew/3.11.rst:931 msgid "re" msgstr "" -#: ../../whatsnew/3.11.rst:933 msgid "" "Atomic grouping (``(?>...)``) and possessive quantifiers (``*+``, ``++``, ``?" "+``, ``{m,n}+``) are now supported in regular expressions. (Contributed by " "Jeffrey C. Jacobs and Serhiy Storchaka in :issue:`433030`.)" msgstr "" -#: ../../whatsnew/3.11.rst:941 msgid "shutil" msgstr "" -#: ../../whatsnew/3.11.rst:943 msgid "" "Add optional parameter *dir_fd* in :func:`shutil.rmtree`. (Contributed by " "Serhiy Storchaka in :issue:`46245`.)" msgstr "" -#: ../../whatsnew/3.11.rst:950 msgid "socket" msgstr "" -#: ../../whatsnew/3.11.rst:952 msgid "" -"Add CAN Socket support for NetBSD. (Contributed by Thomas Klausner " -"in :issue:`30512`.)" +"Add CAN Socket support for NetBSD. (Contributed by Thomas Klausner in :issue:" +"`30512`.)" msgstr "" -#: ../../whatsnew/3.11.rst:955 msgid "" ":meth:`~socket.create_connection` has an option to raise, in case of failure " "to connect, an :exc:`ExceptionGroup` containing all errors instead of only " "raising the last error. (Contributed by Irit Katriel in :issue:`29980`.)" msgstr "" -#: ../../whatsnew/3.11.rst:964 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.11.rst:966 msgid "" -"You can now disable the authorizer by passing :const:`None` " -"to :meth:`~sqlite3.Connection.set_authorizer`. (Contributed by Erlend E. " -"Aasland in :issue:`44491`.)" +"You can now disable the authorizer by passing :const:`None` to :meth:" +"`~sqlite3.Connection.set_authorizer`. (Contributed by Erlend E. Aasland in :" +"issue:`44491`.)" msgstr "" -#: ../../whatsnew/3.11.rst:970 msgid "" "Collation name :meth:`~sqlite3.Connection.create_collation` can now contain " -"any Unicode character. Collation names with invalid characters now " -"raise :exc:`UnicodeEncodeError` instead of :exc:`sqlite3.ProgrammingError`. " +"any Unicode character. Collation names with invalid characters now raise :" +"exc:`UnicodeEncodeError` instead of :exc:`sqlite3.ProgrammingError`. " "(Contributed by Erlend E. Aasland in :issue:`44688`.)" msgstr "" -#: ../../whatsnew/3.11.rst:975 msgid "" -":mod:`sqlite3` exceptions now include the SQLite extended error code " -"as :attr:`~sqlite3.Error.sqlite_errorcode` and the SQLite error name " -"as :attr:`~sqlite3.Error.sqlite_errorname`. (Contributed by Aviv Palivoda, " -"Daniel Shahaf, and Erlend E. Aasland in :issue:`16379` and :issue:`24139`.)" +":mod:`sqlite3` exceptions now include the SQLite extended error code as :" +"attr:`~sqlite3.Error.sqlite_errorcode` and the SQLite error name as :attr:" +"`~sqlite3.Error.sqlite_errorname`. (Contributed by Aviv Palivoda, Daniel " +"Shahaf, and Erlend E. Aasland in :issue:`16379` and :issue:`24139`.)" msgstr "" -#: ../../whatsnew/3.11.rst:981 msgid "" -"Add :meth:`~sqlite3.Connection.setlimit` " -"and :meth:`~sqlite3.Connection.getlimit` to :class:`sqlite3.Connection` for " -"setting and getting SQLite limits by connection basis. (Contributed by " -"Erlend E. Aasland in :issue:`45243`.)" +"Add :meth:`~sqlite3.Connection.setlimit` and :meth:`~sqlite3.Connection." +"getlimit` to :class:`sqlite3.Connection` for setting and getting SQLite " +"limits by connection basis. (Contributed by Erlend E. Aasland in :issue:" +"`45243`.)" msgstr "" -#: ../../whatsnew/3.11.rst:986 msgid "" ":mod:`sqlite3` now sets :attr:`sqlite3.threadsafety` based on the default " "threading mode the underlying SQLite library has been compiled with. " "(Contributed by Erlend E. Aasland in :issue:`45613`.)" msgstr "" -#: ../../whatsnew/3.11.rst:990 msgid "" ":mod:`sqlite3` C callbacks now use unraisable exceptions if callback " "tracebacks are enabled. Users can now register an :func:`unraisable hook " @@ -1303,79 +1102,66 @@ msgid "" "(Contributed by Erlend E. Aasland in :issue:`45828`.)" msgstr "" -#: ../../whatsnew/3.11.rst:996 msgid "" "Fetch across rollback no longer raises :exc:`~sqlite3.InterfaceError`. " "Instead we leave it to the SQLite library to handle these cases. " "(Contributed by Erlend E. Aasland in :issue:`44092`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1000 msgid "" -"Add :meth:`~sqlite3.Connection.serialize` " -"and :meth:`~sqlite3.Connection.deserialize` to :class:`sqlite3.Connection` " -"for serializing and deserializing databases. (Contributed by Erlend E. " -"Aasland in :issue:`41930`.)" +"Add :meth:`~sqlite3.Connection.serialize` and :meth:`~sqlite3.Connection." +"deserialize` to :class:`sqlite3.Connection` for serializing and " +"deserializing databases. (Contributed by Erlend E. Aasland in :issue:" +"`41930`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1005 msgid "" -"Add :meth:`~sqlite3.Connection.create_window_function` " -"to :class:`sqlite3.Connection` for creating aggregate window functions. " -"(Contributed by Erlend E. Aasland in :issue:`34916`.)" +"Add :meth:`~sqlite3.Connection.create_window_function` to :class:`sqlite3." +"Connection` for creating aggregate window functions. (Contributed by Erlend " +"E. Aasland in :issue:`34916`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1009 msgid "" -"Add :meth:`~sqlite3.Connection.blobopen` " -"to :class:`sqlite3.Connection`. :class:`sqlite3.Blob` allows incremental I/O " -"operations on blobs. (Contributed by Aviv Palivoda and Erlend E. Aasland " -"in :issue:`24905`.)" +"Add :meth:`~sqlite3.Connection.blobopen` to :class:`sqlite3.Connection`. :" +"class:`sqlite3.Blob` allows incremental I/O operations on blobs. " +"(Contributed by Aviv Palivoda and Erlend E. Aasland in :issue:`24905`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1017 msgid "string" msgstr "" -#: ../../whatsnew/3.11.rst:1019 msgid "" -"Add :meth:`~string.Template.get_identifiers` " -"and :meth:`~string.Template.is_valid` to :class:`string.Template`, which " -"respectively return all valid placeholders, and whether any invalid " -"placeholders are present. (Contributed by Ben Kehoe in :gh:`90465`.)" +"Add :meth:`~string.Template.get_identifiers` and :meth:`~string.Template." +"is_valid` to :class:`string.Template`, which respectively return all valid " +"placeholders, and whether any invalid placeholders are present. (Contributed " +"by Ben Kehoe in :gh:`90465`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1029 msgid "sys" msgstr "" -#: ../../whatsnew/3.11.rst:1031 msgid "" ":func:`sys.exc_info` now derives the ``type`` and ``traceback`` fields from " "the ``value`` (the exception instance), so when an exception is modified " "while it is being handled, the changes are reflected in the results of " -"subsequent calls to :func:`!exc_info`. (Contributed by Irit Katriel " -"in :issue:`45711`.)" +"subsequent calls to :func:`!exc_info`. (Contributed by Irit Katriel in :" +"issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1037 msgid "" "Add :func:`sys.exception` which returns the active exception instance " -"(equivalent to ``sys.exc_info()[1]``). (Contributed by Irit Katriel " -"in :issue:`46328`.)" +"(equivalent to ``sys.exc_info()[1]``). (Contributed by Irit Katriel in :" +"issue:`46328`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1041 msgid "" "Add the :data:`sys.flags.safe_path ` flag. (Contributed by Victor " "Stinner in :gh:`57684`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1048 msgid "sysconfig" msgstr "" -#: ../../whatsnew/3.11.rst:1050 msgid "" "Three new :ref:`installation schemes ` (*posix_venv*, " "*nt_venv* and *venv*) were added and are used when Python creates new " @@ -1389,38 +1175,32 @@ msgid "" "(Contributed by Miro Hrončok in :issue:`45413`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1067 msgid "tempfile" msgstr "" -#: ../../whatsnew/3.11.rst:1069 msgid "" ":class:`~tempfile.SpooledTemporaryFile` objects now fully implement the " "methods of :class:`io.BufferedIOBase` or :class:`io.TextIOBase` (depending " "on file mode). This lets them work correctly with APIs that expect file-like " -"objects, such as compression modules. (Contributed by Carey Metcalfe " -"in :gh:`70363`.)" +"objects, such as compression modules. (Contributed by Carey Metcalfe in :gh:" +"`70363`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1080 msgid "threading" msgstr "" -#: ../../whatsnew/3.11.rst:1082 msgid "" "On Unix, if the ``sem_clockwait()`` function is available in the C library " "(glibc 2.30 and newer), the :meth:`threading.Lock.acquire` method now uses " "the monotonic clock (:const:`time.CLOCK_MONOTONIC`) for the timeout, rather " "than using the system clock (:const:`time.CLOCK_REALTIME`), to not be " -"affected by system clock changes. (Contributed by Victor Stinner " -"in :issue:`41710`.)" +"affected by system clock changes. (Contributed by Victor Stinner in :issue:" +"`41710`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1093 msgid "time" msgstr "" -#: ../../whatsnew/3.11.rst:1095 msgid "" "On Unix, :func:`time.sleep` now uses the ``clock_nanosleep()`` or " "``nanosleep()`` function, if available, which has a resolution of 1 " @@ -1429,71 +1209,59 @@ msgid "" "Benjamin Szőke and Victor Stinner in :issue:`21302`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1101 msgid "" "On Windows 8.1 and newer, :func:`time.sleep` now uses a waitable timer based " "on `high-resolution timers `_ which has a resolution of " "100 nanoseconds (10\\ :sup:`-7` seconds). Previously, it had a resolution of " "1 millisecond (10\\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, " -"Donghee Na, Eryk Sun and Victor Stinner in :issue:`21302` " -"and :issue:`45429`.)" +"Donghee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:" +"`45429`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1112 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.11.rst:1114 msgid "" "Added method ``info_patchlevel()`` which returns the exact version of the " "Tcl library as a named tuple similar to :data:`sys.version_info`. " "(Contributed by Serhiy Storchaka in :gh:`91827`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1122 msgid "traceback" msgstr "" -#: ../../whatsnew/3.11.rst:1124 msgid "" "Add :func:`traceback.StackSummary.format_frame_summary` to allow users to " "override which frames appear in the traceback, and how they are formatted. " "(Contributed by Ammar Askar in :issue:`44569`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1129 msgid "" -"Add :func:`traceback.TracebackException.print`, which prints the " -"formatted :exc:`~traceback.TracebackException` instance to a file. " -"(Contributed by Irit Katriel in :issue:`33809`.)" +"Add :func:`traceback.TracebackException.print`, which prints the formatted :" +"exc:`~traceback.TracebackException` instance to a file. (Contributed by Irit " +"Katriel in :issue:`33809`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1137 msgid "typing" msgstr "" -#: ../../whatsnew/3.11.rst:1139 msgid "For major changes, see :ref:`new-feat-related-type-hints-311`." msgstr "" -#: ../../whatsnew/3.11.rst:1141 msgid "" -"Add :func:`typing.assert_never` " -"and :class:`typing.Never`. :func:`typing.assert_never` is useful for asking " -"a type checker to confirm that a line of code is not reachable. At runtime, " -"it raises an :exc:`AssertionError`. (Contributed by Jelle Zijlstra " -"in :gh:`90633`.)" +"Add :func:`typing.assert_never` and :class:`typing.Never`. :func:`typing." +"assert_never` is useful for asking a type checker to confirm that a line of " +"code is not reachable. At runtime, it raises an :exc:`AssertionError`. " +"(Contributed by Jelle Zijlstra in :gh:`90633`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1147 msgid "" "Add :func:`typing.reveal_type`. This is useful for asking a type checker " "what type it has inferred for a given expression. At runtime it prints the " "type of the received value. (Contributed by Jelle Zijlstra in :gh:`90572`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1152 msgid "" "Add :func:`typing.assert_type`. This is useful for asking a type checker to " "confirm that the type it has inferred for a given expression matches the " @@ -1501,117 +1269,97 @@ msgid "" "Jelle Zijlstra in :gh:`90638`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1157 msgid "" ":data:`typing.TypedDict` types can now be generic. (Contributed by Samodya " "Abeysiriwardane in :gh:`89026`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1160 msgid "" ":class:`~typing.NamedTuple` types can now be generic. (Contributed by Serhiy " "Storchaka in :issue:`43923`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1163 msgid "" "Allow subclassing of :class:`typing.Any`. This is useful for avoiding type " "checker errors related to highly dynamic class, such as mocks. (Contributed " "by Shantanu Jain in :gh:`91154`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1167 msgid "" "The :func:`typing.final` decorator now sets the ``__final__`` attributed on " "the decorated object. (Contributed by Jelle Zijlstra in :gh:`90500`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1171 msgid "" "The :func:`typing.get_overloads` function can be used for introspecting the " "overloads of a function. :func:`typing.clear_overloads` can be used to clear " -"all registered overloads of a function. (Contributed by Jelle Zijlstra " -"in :gh:`89263`.)" +"all registered overloads of a function. (Contributed by Jelle Zijlstra in :" +"gh:`89263`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1176 msgid "" "The :meth:`~object.__init__` method of :class:`~typing.Protocol` subclasses " "is now preserved. (Contributed by Adrian Garcia Badarasco in :gh:`88970`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1179 msgid "" "The representation of empty tuple types (``Tuple[()]``) is simplified. This " "affects introspection, e.g. ``get_args(Tuple[()])`` now evaluates to ``()`` " "instead of ``((),)``. (Contributed by Serhiy Storchaka in :gh:`91137`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1184 msgid "" "Loosen runtime requirements for type annotations by removing the callable " "check in the private ``typing._type_check`` function. (Contributed by " "Gregory Beauregard in :gh:`90802`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1188 msgid "" ":func:`typing.get_type_hints` now supports evaluating strings as forward " "references in :ref:`PEP 585 generic aliases `. " "(Contributed by Niklas Rosenstein in :gh:`85542`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1192 msgid "" ":func:`typing.get_type_hints` no longer adds :data:`~typing.Optional` to " -"parameters with ``None`` as a default. (Contributed by Nikita Sobolev " -"in :gh:`90353`.)" +"parameters with ``None`` as a default. (Contributed by Nikita Sobolev in :gh:" +"`90353`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1196 msgid "" -":func:`typing.get_type_hints` now supports evaluating bare " -"stringified :data:`~typing.ClassVar` annotations. (Contributed by Gregory " -"Beauregard in :gh:`90711`.)" +":func:`typing.get_type_hints` now supports evaluating bare stringified :data:" +"`~typing.ClassVar` annotations. (Contributed by Gregory Beauregard in :gh:" +"`90711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1200 msgid "" ":func:`typing.no_type_check` no longer modifies external classes and " "functions. It also now correctly marks classmethods as not to be type " "checked. (Contributed by Nikita Sobolev in :gh:`90729`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1208 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.11.rst:1210 msgid "" "The Unicode database has been updated to version 14.0.0. (Contributed by " "Benjamin Peterson in :issue:`45190`)." msgstr "" -#: ../../whatsnew/3.11.rst:1217 msgid "unittest" msgstr "" -#: ../../whatsnew/3.11.rst:1219 msgid "" -"Added methods :meth:`~unittest.TestCase.enterContext` " -"and :meth:`~unittest.TestCase.enterClassContext` of " -"class :class:`~unittest.TestCase`, " -"method :meth:`~unittest.IsolatedAsyncioTestCase.enterAsyncContext` of " -"class :class:`~unittest.IsolatedAsyncioTestCase` and " -"function :func:`unittest.enterModuleContext`. (Contributed by Serhiy " -"Storchaka in :issue:`45046`.)" +"Added methods :meth:`~unittest.TestCase.enterContext` and :meth:`~unittest." +"TestCase.enterClassContext` of class :class:`~unittest.TestCase`, method :" +"meth:`~unittest.IsolatedAsyncioTestCase.enterAsyncContext` of class :class:" +"`~unittest.IsolatedAsyncioTestCase` and function :func:`unittest." +"enterModuleContext`. (Contributed by Serhiy Storchaka in :issue:`45046`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1231 msgid "venv" msgstr "" -#: ../../whatsnew/3.11.rst:1233 msgid "" "When new Python virtual environments are created, the *venv* :ref:`sysconfig " "installation scheme ` is used to determine the paths " @@ -1619,58 +1367,48 @@ msgid "" "installation scheme is the default. That means that downstream distributors " "can change the default sysconfig install scheme without changing behavior of " "virtual environments. Third party code that also creates new virtual " -"environments should do the same. (Contributed by Miro Hrončok " -"in :issue:`45413`.)" +"environments should do the same. (Contributed by Miro Hrončok in :issue:" +"`45413`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1247 msgid "warnings" msgstr "" -#: ../../whatsnew/3.11.rst:1249 msgid "" -":func:`warnings.catch_warnings` now accepts arguments " -"for :func:`warnings.simplefilter`, providing a more concise way to locally " -"ignore warnings or convert them to errors. (Contributed by Zac Hatfield-" -"Dodds in :issue:`47074`.)" +":func:`warnings.catch_warnings` now accepts arguments for :func:`warnings." +"simplefilter`, providing a more concise way to locally ignore warnings or " +"convert them to errors. (Contributed by Zac Hatfield-Dodds in :issue:" +"`47074`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1257 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.11.rst:1259 msgid "" -"Added support for specifying member name encoding for reading metadata in " -"a :class:`~zipfile.ZipFile`'s directory and file headers. (Contributed by " +"Added support for specifying member name encoding for reading metadata in a :" +"class:`~zipfile.ZipFile`'s directory and file headers. (Contributed by " "Stephen J. Turnbull and Serhiy Storchaka in :issue:`28080`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1263 msgid "" "Added :meth:`ZipFile.mkdir() ` for creating new " "directories inside ZIP archives. (Contributed by Sam Ezeh in :gh:`49083`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1267 msgid "" -"Added :attr:`~zipfile.Path.stem`, :attr:`~zipfile.Path.suffix` " -"and :attr:`~zipfile.Path.suffixes` to :class:`zipfile.Path`. (Contributed by " -"Miguel Brito in :gh:`88261`.)" +"Added :attr:`~zipfile.Path.stem`, :attr:`~zipfile.Path.suffix` and :attr:" +"`~zipfile.Path.suffixes` to :class:`zipfile.Path`. (Contributed by Miguel " +"Brito in :gh:`88261`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1275 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.11.rst:1277 msgid "" -"This section covers specific optimizations independent of " -"the :ref:`whatsnew311-faster-cpython` project, which is covered in its own " -"section." +"This section covers specific optimizations independent of the :ref:" +"`whatsnew311-faster-cpython` project, which is covered in its own section." msgstr "" -#: ../../whatsnew/3.11.rst:1280 msgid "" "The compiler now optimizes simple :ref:`printf-style % formatting ` on string literals containing only the format codes " @@ -1678,70 +1416,59 @@ msgid "" "string` expression. (Contributed by Serhiy Storchaka in :issue:`28307`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1286 msgid "" "Integer division (``//``) is better tuned for optimization by compilers. It " "is now around 20% faster on x86-64 when dividing an :class:`int` by a value " -"smaller than ``2**30``. (Contributed by Gregory P. Smith and Tim Peters " -"in :gh:`90564`.)" +"smaller than ``2**30``. (Contributed by Gregory P. Smith and Tim Peters in :" +"gh:`90564`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1291 msgid "" ":func:`sum` is now nearly 30% faster for integers smaller than ``2**30``. " "(Contributed by Stefan Behnel in :gh:`68264`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1294 msgid "" -"Resizing lists is streamlined for the common case, speeding up :meth:`!" -"list.append` by ≈15% and simple :term:`list comprehension`\\s by up to " -"20-30% (Contributed by Dennis Sweeney in :gh:`91165`.)" +"Resizing lists is streamlined for the common case, speeding up :meth:`list." +"append` by ≈15% and simple :term:`list comprehension`\\s by up to 20-30% " +"(Contributed by Dennis Sweeney in :gh:`91165`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1299 msgid "" "Dictionaries don't store hash values when all keys are Unicode objects, " -"decreasing :class:`dict` size. For example, " -"``sys.getsizeof(dict.fromkeys(\"abcdefg\"))`` is reduced from 352 bytes to " -"272 bytes (23% smaller) on 64-bit platforms. (Contributed by Inada Naoki " -"in :issue:`46845`.)" +"decreasing :class:`dict` size. For example, ``sys.getsizeof(dict." +"fromkeys(\"abcdefg\"))`` is reduced from 352 bytes to 272 bytes (23% " +"smaller) on 64-bit platforms. (Contributed by Inada Naoki in :issue:`46845`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1305 msgid "" "Using :class:`asyncio.DatagramProtocol` is now orders of magnitude faster " "when transferring large files over UDP, with speeds over 100 times higher " "for a ≈60 MiB file. (Contributed by msoxzw in :gh:`91487`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1310 msgid "" ":mod:`math` functions :func:`~math.comb` and :func:`~math.perm` are now ≈10 " "times faster for large arguments (with a larger speedup for larger *k*). " "(Contributed by Serhiy Storchaka in :issue:`37295`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1314 msgid "" -"The :mod:`statistics` " -"functions :func:`~statistics.mean`, :func:`~statistics.variance` " -"and :func:`~statistics.stdev` now consume iterators in one pass rather than " -"converting them to a :class:`list` first. This is twice as fast and can save " -"substantial memory. (Contributed by Raymond Hettinger in :gh:`90415`.)" +"The :mod:`statistics` functions :func:`~statistics.mean`, :func:`~statistics." +"variance` and :func:`~statistics.stdev` now consume iterators in one pass " +"rather than converting them to a :class:`list` first. This is twice as fast " +"and can save substantial memory. (Contributed by Raymond Hettinger in :gh:" +"`90415`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1320 msgid "" ":func:`unicodedata.normalize` now normalizes pure-ASCII strings in constant " "time. (Contributed by Donghee Na in :issue:`44987`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1328 msgid "Faster CPython" msgstr "" -#: ../../whatsnew/3.11.rst:1330 msgid "" "CPython 3.11 is an average of `25% faster `_ than CPython 3.10 as measured with the " @@ -1750,36 +1477,29 @@ msgid "" "overall speedup could be 10-60%." msgstr "" -#: ../../whatsnew/3.11.rst:1337 msgid "" "This project focuses on two major areas in Python: :ref:`whatsnew311-faster-" "startup` and :ref:`whatsnew311-faster-runtime`. Optimizations not covered by " "this project are listed separately under :ref:`whatsnew311-optimizations`." msgstr "" -#: ../../whatsnew/3.11.rst:1346 msgid "Faster Startup" msgstr "" -#: ../../whatsnew/3.11.rst:1351 msgid "Frozen imports / Static code objects" msgstr "" -#: ../../whatsnew/3.11.rst:1353 msgid "" "Python caches :term:`bytecode` in the :ref:`__pycache__ ` " "directory to speed up module loading." msgstr "" -#: ../../whatsnew/3.11.rst:1356 msgid "Previously in 3.10, Python module execution looked like this:" msgstr "" -#: ../../whatsnew/3.11.rst:1358 msgid "Read __pycache__ -> Unmarshal -> Heap allocated code object -> Evaluate" msgstr "" -#: ../../whatsnew/3.11.rst:1362 msgid "" "In Python 3.11, the core modules essential for Python startup are " "\"frozen\". This means that their :ref:`codeobjects` (and bytecode) are " @@ -1787,101 +1507,82 @@ msgid "" "execution process to:" msgstr "" -#: ../../whatsnew/3.11.rst:1367 msgid "Statically allocated code object -> Evaluate" msgstr "" -#: ../../whatsnew/3.11.rst:1371 msgid "" "Interpreter startup is now 10-15% faster in Python 3.11. This has a big " "impact for short-running programs using Python." msgstr "" -#: ../../whatsnew/3.11.rst:1374 msgid "" "(Contributed by Eric Snow, Guido van Rossum and Kumar Aditya in many issues.)" msgstr "" -#: ../../whatsnew/3.11.rst:1380 msgid "Faster Runtime" msgstr "" -#: ../../whatsnew/3.11.rst:1385 msgid "Cheaper, lazy Python frames" msgstr "" -#: ../../whatsnew/3.11.rst:1387 msgid "" "Python frames, holding execution information, are created whenever Python " "calls a Python function. The following are new frame optimizations:" msgstr "" -#: ../../whatsnew/3.11.rst:1391 msgid "Streamlined the frame creation process." msgstr "" -#: ../../whatsnew/3.11.rst:1392 msgid "" "Avoided memory allocation by generously re-using frame space on the C stack." msgstr "" -#: ../../whatsnew/3.11.rst:1393 msgid "" "Streamlined the internal frame struct to contain only essential information. " "Frames previously held extra debugging and memory management information." msgstr "" -#: ../../whatsnew/3.11.rst:1396 msgid "" "Old-style :ref:`frame objects ` are now created only when " -"requested by debuggers or by Python introspection functions such " -"as :func:`sys._getframe` and :func:`inspect.currentframe`. For most user " -"code, no frame objects are created at all. As a result, nearly all Python " -"functions calls have sped up significantly. We measured a 3-7% speedup in " +"requested by debuggers or by Python introspection functions such as :func:" +"`sys._getframe` and :func:`inspect.currentframe`. For most user code, no " +"frame objects are created at all. As a result, nearly all Python functions " +"calls have sped up significantly. We measured a 3-7% speedup in " "pyperformance." msgstr "" -#: ../../whatsnew/3.11.rst:1403 msgid "(Contributed by Mark Shannon in :issue:`44590`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1410 msgid "Inlined Python function calls" msgstr "" -#: ../../whatsnew/3.11.rst:1412 msgid "" "During a Python function call, Python will call an evaluating C function to " "interpret that function's code. This effectively limits pure Python " "recursion to what's safe for the C stack." msgstr "" -#: ../../whatsnew/3.11.rst:1416 msgid "" "In 3.11, when CPython detects Python code calling another Python function, " "it sets up a new frame, and \"jumps\" to the new code inside the new frame. " "This avoids calling the C interpreting function altogether." msgstr "" -#: ../../whatsnew/3.11.rst:1420 msgid "" "Most Python function calls now consume no C stack space, speeding them up. " "In simple recursive functions like fibonacci or factorial, we observed a " "1.7x speedup. This also means recursive functions can recurse significantly " -"deeper (if the user increases the recursion limit " -"with :func:`sys.setrecursionlimit`). We measured a 1-3% improvement in " -"pyperformance." +"deeper (if the user increases the recursion limit with :func:`sys." +"setrecursionlimit`). We measured a 1-3% improvement in pyperformance." msgstr "" -#: ../../whatsnew/3.11.rst:1427 msgid "(Contributed by Pablo Galindo and Mark Shannon in :issue:`45256`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1433 msgid "PEP 659: Specializing Adaptive Interpreter" msgstr "" -#: ../../whatsnew/3.11.rst:1435 msgid "" ":pep:`659` is one of the key parts of the Faster CPython project. The " "general idea is that while Python is a dynamic language, most code has " @@ -1889,24 +1590,21 @@ msgid "" "*type stability*." msgstr "" -#: ../../whatsnew/3.11.rst:1439 msgid "" "At runtime, Python will try to look for common patterns and type stability " "in the executing code. Python will then replace the current operation with a " "more specialized one. This specialized operation uses fast paths available " "only to those use cases/types, which generally outperform their generic " "counterparts. This also brings in another concept called *inline caching*, " -"where Python caches the results of expensive operations directly in " -"the :term:`bytecode`." +"where Python caches the results of expensive operations directly in the :" +"term:`bytecode`." msgstr "" -#: ../../whatsnew/3.11.rst:1447 msgid "" "The specializer will also combine certain common instruction pairs into one " "superinstruction, reducing the overhead during execution." msgstr "" -#: ../../whatsnew/3.11.rst:1450 msgid "" "Python will only specialize when it sees code that is \"hot\" (executed " "multiple times). This prevents Python from wasting time on run-once code. " @@ -1916,320 +1614,252 @@ msgid "" "circumstances." msgstr "" -#: ../../whatsnew/3.11.rst:1457 msgid "" -"(PEP written by Mark Shannon, with ideas inspired by Stefan Brunthaler. " -"See :pep:`659` for more information. Implementation by Mark Shannon and " -"Brandt Bucher, with additional help from Irit Katriel and Dennis Sweeney.)" +"(PEP written by Mark Shannon, with ideas inspired by Stefan Brunthaler. See :" +"pep:`659` for more information. Implementation by Mark Shannon and Brandt " +"Bucher, with additional help from Irit Katriel and Dennis Sweeney.)" msgstr "" -#: ../../whatsnew/3.11.rst:1465 msgid "Operation" msgstr "" -#: ../../whatsnew/3.11.rst:1465 msgid "Form" msgstr "" -#: ../../whatsnew/3.11.rst:1465 msgid "Specialization" msgstr "" -#: ../../whatsnew/3.11.rst:1465 msgid "Operation speedup (up to)" msgstr "" -#: ../../whatsnew/3.11.rst:1465 msgid "Contributor(s)" msgstr "" -#: ../../whatsnew/3.11.rst:1468 msgid "Binary operations" msgstr "" -#: ../../whatsnew/3.11.rst:1468 msgid "``x + x``" -msgstr "``x + x``" +msgstr "" -#: ../../whatsnew/3.11.rst:1470 msgid "``x - x``" -msgstr "``x - x``" +msgstr "" -#: ../../whatsnew/3.11.rst:1472 msgid "``x * x``" -msgstr "``x * x``" +msgstr "" -#: ../../whatsnew/3.11.rst:1468 msgid "" -"Binary add, multiply and subtract for common types such " -"as :class:`int`, :class:`float` and :class:`str` take custom fast paths for " -"their underlying types." +"Binary add, multiply and subtract for common types such as :class:`int`, :" +"class:`float` and :class:`str` take custom fast paths for their underlying " +"types." msgstr "" -#: ../../whatsnew/3.11.rst:1468 msgid "10%" msgstr "" -#: ../../whatsnew/3.11.rst:1468 msgid "Mark Shannon, Donghee Na, Brandt Bucher, Dennis Sweeney" msgstr "" -#: ../../whatsnew/3.11.rst:1474 msgid "Subscript" msgstr "" -#: ../../whatsnew/3.11.rst:1474 msgid "``a[i]``" msgstr "" -#: ../../whatsnew/3.11.rst:1474 msgid "" -"Subscripting container types such as :class:`list`, :class:`tuple` " -"and :class:`dict` directly index the underlying data structures." +"Subscripting container types such as :class:`list`, :class:`tuple` and :" +"class:`dict` directly index the underlying data structures." msgstr "" -#: ../../whatsnew/3.11.rst:1478 msgid "" -"Subscripting custom :meth:`~object.__getitem__` is also inlined similar " -"to :ref:`inline-calls`." +"Subscripting custom :meth:`~object.__getitem__` is also inlined similar to :" +"ref:`inline-calls`." msgstr "" -#: ../../whatsnew/3.11.rst:1474 ../../whatsnew/3.11.rst:1481 msgid "10-25%" msgstr "" -#: ../../whatsnew/3.11.rst:1474 msgid "Irit Katriel, Mark Shannon" msgstr "" -#: ../../whatsnew/3.11.rst:1481 msgid "Store subscript" msgstr "" -#: ../../whatsnew/3.11.rst:1481 msgid "``a[i] = z``" -msgstr "``a[i] = z``" +msgstr "" -#: ../../whatsnew/3.11.rst:1481 msgid "Similar to subscripting specialization above." msgstr "" -#: ../../whatsnew/3.11.rst:1481 msgid "Dennis Sweeney" msgstr "" -#: ../../whatsnew/3.11.rst:1484 msgid "Calls" msgstr "" -#: ../../whatsnew/3.11.rst:1484 msgid "``f(arg)``" msgstr "" -#: ../../whatsnew/3.11.rst:1486 msgid "``C(arg)``" msgstr "" -#: ../../whatsnew/3.11.rst:1484 msgid "" -"Calls to common builtin (C) functions and types such as :func:`len` " -"and :class:`str` directly call their underlying C version. This avoids going " +"Calls to common builtin (C) functions and types such as :func:`len` and :" +"class:`str` directly call their underlying C version. This avoids going " "through the internal calling convention." msgstr "" -#: ../../whatsnew/3.11.rst:1484 msgid "20%" msgstr "" -#: ../../whatsnew/3.11.rst:1484 msgid "Mark Shannon, Ken Jin" msgstr "" -#: ../../whatsnew/3.11.rst:1489 msgid "Load global variable" msgstr "" -#: ../../whatsnew/3.11.rst:1489 msgid "``print``" msgstr "" -#: ../../whatsnew/3.11.rst:1491 msgid "``len``" msgstr "" -#: ../../whatsnew/3.11.rst:1489 msgid "" "The object's index in the globals/builtins namespace is cached. Loading " "globals and builtins require zero namespace lookups." msgstr "" -#: ../../whatsnew/3.11.rst:1489 msgid "[#load-global]_" msgstr "" -#: ../../whatsnew/3.11.rst:1489 ../../whatsnew/3.11.rst:1493 -#: ../../whatsnew/3.11.rst:1502 msgid "Mark Shannon" msgstr "" -#: ../../whatsnew/3.11.rst:1493 msgid "Load attribute" msgstr "" -#: ../../whatsnew/3.11.rst:1493 msgid "``o.attr``" msgstr "" -#: ../../whatsnew/3.11.rst:1493 msgid "" "Similar to loading global variables. The attribute's index inside the class/" "object's namespace is cached. In most cases, attribute loading will require " "zero namespace lookups." msgstr "" -#: ../../whatsnew/3.11.rst:1493 msgid "[#load-attr]_" msgstr "" -#: ../../whatsnew/3.11.rst:1498 msgid "Load methods for call" msgstr "" -#: ../../whatsnew/3.11.rst:1498 msgid "``o.meth()``" msgstr "" -#: ../../whatsnew/3.11.rst:1498 msgid "" "The actual address of the method is cached. Method loading now has no " "namespace lookups -- even for classes with long inheritance chains." msgstr "" -#: ../../whatsnew/3.11.rst:1498 msgid "10-20%" msgstr "" -#: ../../whatsnew/3.11.rst:1498 msgid "Ken Jin, Mark Shannon" msgstr "" -#: ../../whatsnew/3.11.rst:1502 msgid "Store attribute" msgstr "" -#: ../../whatsnew/3.11.rst:1502 msgid "``o.attr = z``" -msgstr "``o.attr = z``" +msgstr "" -#: ../../whatsnew/3.11.rst:1502 msgid "Similar to load attribute optimization." msgstr "" -#: ../../whatsnew/3.11.rst:1502 msgid "2% in pyperformance" msgstr "" -#: ../../whatsnew/3.11.rst:1505 msgid "Unpack Sequence" msgstr "" -#: ../../whatsnew/3.11.rst:1505 msgid "``*seq``" msgstr "" -#: ../../whatsnew/3.11.rst:1505 msgid "" "Specialized for common containers such as :class:`list` and :class:`tuple`. " "Avoids internal calling convention." msgstr "" -#: ../../whatsnew/3.11.rst:1505 msgid "8%" msgstr "" -#: ../../whatsnew/3.11.rst:1505 msgid "Brandt Bucher" msgstr "" -#: ../../whatsnew/3.11.rst:1510 msgid "" "A similar optimization already existed since Python 3.8. 3.11 specializes " "for more forms and reduces some overhead." msgstr "" -#: ../../whatsnew/3.11.rst:1513 msgid "" "A similar optimization already existed since Python 3.10. 3.11 specializes " -"for more forms. Furthermore, all attribute loads should be sped up " -"by :issue:`45947`." +"for more forms. Furthermore, all attribute loads should be sped up by :issue:" +"`45947`." msgstr "" -#: ../../whatsnew/3.11.rst:1521 msgid "Misc" msgstr "" -#: ../../whatsnew/3.11.rst:1523 msgid "" "Objects now require less memory due to lazily created object namespaces. " "Their namespace dictionaries now also share keys more freely. (Contributed " "Mark Shannon in :issue:`45340` and :issue:`40116`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1527 msgid "" -"\"Zero-cost\" exceptions are implemented, eliminating the cost " -"of :keyword:`try` statements when no exception is raised. (Contributed by " -"Mark Shannon in :issue:`40222`.)" +"\"Zero-cost\" exceptions are implemented, eliminating the cost of :keyword:" +"`try` statements when no exception is raised. (Contributed by Mark Shannon " +"in :issue:`40222`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1531 msgid "" "A more concise representation of exceptions in the interpreter reduced the " "time required for catching an exception by about 10%. (Contributed by Irit " "Katriel in :issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1535 msgid "" ":mod:`re`'s regular expression matching engine has been partially " "refactored, and now uses computed gotos (or \"threaded code\") on supported " "platforms. As a result, Python 3.11 executes the `pyperformance regular " -"expression benchmarks `_ up to 10% faster than Python 3.10. (Contributed " -"by Brandt Bucher in :gh:`91404`.)" +"expression benchmarks `_ up to 10% faster than Python 3.10. (Contributed by Brandt " +"Bucher in :gh:`91404`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1546 msgid "FAQ" msgstr "" -#: ../../whatsnew/3.11.rst:1551 msgid "How should I write my code to utilize these speedups?" msgstr "" -#: ../../whatsnew/3.11.rst:1553 msgid "" "Write Pythonic code that follows common best practices; you don't have to " "change your code. The Faster CPython project optimizes for common code " "patterns we observe." msgstr "" -#: ../../whatsnew/3.11.rst:1561 msgid "Will CPython 3.11 use more memory?" msgstr "" -#: ../../whatsnew/3.11.rst:1563 msgid "" "Maybe not; we don't expect memory use to exceed 20% higher than 3.10. This " "is offset by memory optimizations for frame objects and object dictionaries " "as mentioned above." msgstr "" -#: ../../whatsnew/3.11.rst:1571 msgid "I don't see any speedups in my workload. Why?" msgstr "" -#: ../../whatsnew/3.11.rst:1573 msgid "" "Certain code won't have noticeable benefits. If your code spends most of its " "time on I/O operations, or already does most of its computation in a C " @@ -2237,26 +1867,21 @@ msgid "" "project currently benefits pure-Python workloads the most." msgstr "" -#: ../../whatsnew/3.11.rst:1578 msgid "" "Furthermore, the pyperformance figures are a geometric mean. Even within the " "pyperformance benchmarks, certain benchmarks have slowed down slightly, " "while others have sped up by nearly 2x!" msgstr "" -#: ../../whatsnew/3.11.rst:1586 msgid "Is there a JIT compiler?" msgstr "" -#: ../../whatsnew/3.11.rst:1588 msgid "No. We're still exploring other optimizations." msgstr "" -#: ../../whatsnew/3.11.rst:1594 msgid "About" msgstr "" -#: ../../whatsnew/3.11.rst:1596 msgid "" "Faster CPython explores optimizations for :term:`CPython`. The main team is " "funded by Microsoft to work on this full-time. Pablo Galindo Salgado is also " @@ -2264,11 +1889,9 @@ msgid "" "contributors are volunteers from the community." msgstr "" -#: ../../whatsnew/3.11.rst:1605 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.11.rst:1607 msgid "" "The bytecode now contains inline cache entries, which take the form of the " "newly-added :opcode:`CACHE` instructions. Many opcodes expect to be followed " @@ -2278,379 +1901,296 @@ msgid "" "containing quickened data." msgstr "" -#: ../../whatsnew/3.11.rst:1619 msgid "New opcodes" msgstr "" -#: ../../whatsnew/3.11.rst:1621 msgid "" ":opcode:`!ASYNC_GEN_WRAP`, :opcode:`RETURN_GENERATOR` and :opcode:`SEND`, " "used in generators and co-routines." msgstr "" -#: ../../whatsnew/3.11.rst:1624 msgid "" ":opcode:`COPY_FREE_VARS`, which avoids needing special caller-side code for " "closures." msgstr "" -#: ../../whatsnew/3.11.rst:1627 msgid "" ":opcode:`JUMP_BACKWARD_NO_INTERRUPT`, for use in certain loops where " "handling interrupts is undesirable." msgstr "" -#: ../../whatsnew/3.11.rst:1630 msgid ":opcode:`MAKE_CELL`, to create :ref:`cell-objects`." msgstr "" -#: ../../whatsnew/3.11.rst:1632 msgid "" -":opcode:`CHECK_EG_MATCH` and :opcode:`!PREP_RERAISE_STAR`, to handle " -"the :ref:`new exception groups and except* ` added " -"in :pep:`654`." +":opcode:`CHECK_EG_MATCH` and :opcode:`!PREP_RERAISE_STAR`, to handle the :" +"ref:`new exception groups and except* ` added in :pep:" +"`654`." msgstr "" -#: ../../whatsnew/3.11.rst:1636 msgid ":opcode:`PUSH_EXC_INFO`, for use in exception handlers." msgstr "" -#: ../../whatsnew/3.11.rst:1638 msgid "" ":opcode:`RESUME`, a no-op, for internal tracing, debugging and optimization " "checks." msgstr "" -#: ../../whatsnew/3.11.rst:1645 msgid "Replaced opcodes" msgstr "" -#: ../../whatsnew/3.11.rst:1648 msgid "Replaced Opcode(s)" msgstr "" -#: ../../whatsnew/3.11.rst:1648 msgid "New Opcode(s)" msgstr "" -#: ../../whatsnew/3.11.rst:1648 msgid "Notes" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!BINARY_*`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!INPLACE_*`" msgstr "" -#: ../../whatsnew/3.11.rst:1650 msgid ":opcode:`BINARY_OP`" msgstr "" -#: ../../whatsnew/3.11.rst:1650 msgid "Replaced all numeric binary/in-place opcodes with a single opcode" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!CALL_FUNCTION`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!CALL_FUNCTION_KW`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!CALL_METHOD`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`CALL`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!KW_NAMES`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!PRECALL`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`PUSH_NULL`" msgstr "" -#: ../../whatsnew/3.11.rst:1653 msgid "" "Decouples argument shifting for methods from handling of keyword arguments; " "allows better specialization of calls" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!DUP_TOP`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!DUP_TOP_TWO`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!ROT_TWO`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!ROT_THREE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!ROT_FOUR`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!ROT_N`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`COPY`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`SWAP`" msgstr "" -#: ../../whatsnew/3.11.rst:1658 msgid "Stack manipulation instructions" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!JUMP_IF_NOT_EXC_MATCH`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`CHECK_EXC_MATCH`" msgstr "" -#: ../../whatsnew/3.11.rst:1665 msgid "Now performs check but doesn't jump" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!JUMP_ABSOLUTE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!POP_JUMP_IF_FALSE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!POP_JUMP_IF_TRUE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`JUMP_BACKWARD`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!POP_JUMP_BACKWARD_IF_*`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!POP_JUMP_FORWARD_IF_*`" msgstr "" -#: ../../whatsnew/3.11.rst:1667 msgid "" "See [#bytecode-jump]_; ``TRUE``, ``FALSE``, ``NONE`` and ``NOT_NONE`` " "variants for each direction" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!SETUP_WITH`" msgstr "" -#: ../../whatsnew/3.11.rst:0 msgid ":opcode:`!SETUP_ASYNC_WITH`" msgstr "" -#: ../../whatsnew/3.11.rst:1673 msgid ":opcode:`!BEFORE_WITH`" msgstr "" -#: ../../whatsnew/3.11.rst:1673 msgid ":keyword:`with` block setup" msgstr "" -#: ../../whatsnew/3.11.rst:1677 msgid "" "All jump opcodes are now relative, including the existing :opcode:`!" "JUMP_IF_TRUE_OR_POP` and :opcode:`!JUMP_IF_FALSE_OR_POP`. The argument is " "now an offset from the current instruction rather than an absolute location." msgstr "" -#: ../../whatsnew/3.11.rst:1688 msgid "Changed/removed opcodes" msgstr "" -#: ../../whatsnew/3.11.rst:1690 msgid "" "Changed :opcode:`MATCH_CLASS` and :opcode:`MATCH_KEYS` to no longer push an " "additional boolean value to indicate success/failure. Instead, ``None`` is " "pushed on failure in place of the tuple of extracted values." msgstr "" -#: ../../whatsnew/3.11.rst:1695 msgid "" "Changed opcodes that work with exceptions to reflect them now being " "represented as one item on the stack instead of three (see :gh:`89874`)." msgstr "" -#: ../../whatsnew/3.11.rst:1699 msgid "" "Removed :opcode:`!COPY_DICT_WITHOUT_KEYS`, :opcode:`!GEN_START`, :opcode:`!" "POP_BLOCK`, :opcode:`!SETUP_FINALLY` and :opcode:`!YIELD_FROM`." msgstr "" -#: ../../whatsnew/3.11.rst:1707 ../../whatsnew/3.11.rst:2580 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.11.rst:1709 msgid "" "This section lists Python APIs that have been deprecated in Python 3.11." msgstr "" -#: ../../whatsnew/3.11.rst:1711 msgid "" "Deprecated C APIs are :ref:`listed separately `." msgstr "" -#: ../../whatsnew/3.11.rst:1718 msgid "Language/Builtins" msgstr "" -#: ../../whatsnew/3.11.rst:1720 msgid "" "Chaining :class:`classmethod` descriptors (introduced in :issue:`19072`) is " -"now deprecated. It can no longer be used to wrap other descriptors such " -"as :class:`property`. The core design of this feature was flawed and caused " -"a number of downstream problems. To \"pass-through\" " -"a :class:`classmethod`, consider using the :attr:`!__wrapped__` attribute " -"that was added in Python 3.10. (Contributed by Raymond Hettinger " -"in :gh:`89519`.)" +"now deprecated. It can no longer be used to wrap other descriptors such as :" +"class:`property`. The core design of this feature was flawed and caused a " +"number of downstream problems. To \"pass-through\" a :class:`classmethod`, " +"consider using the :attr:`!__wrapped__` attribute that was added in Python " +"3.10. (Contributed by Raymond Hettinger in :gh:`89519`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1728 msgid "" "Octal escapes in string and bytes literals with values larger than ``0o377`` " "(255 in decimal) now produce a :exc:`DeprecationWarning`. In a future Python " -"version, they will raise a :exc:`SyntaxWarning` and eventually " -"a :exc:`SyntaxError`. (Contributed by Serhiy Storchaka in :gh:`81548`.)" +"version, they will raise a :exc:`SyntaxWarning` and eventually a :exc:" +"`SyntaxError`. (Contributed by Serhiy Storchaka in :gh:`81548`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1734 msgid "" "The delegation of :func:`int` to :meth:`~object.__trunc__` is now " "deprecated. Calling ``int(a)`` when ``type(a)`` implements :meth:`!" "__trunc__` but not :meth:`~object.__int__` or :meth:`~object.__index__` now " -"raises a :exc:`DeprecationWarning`. (Contributed by Zackery Spytz " -"in :issue:`44977`.)" +"raises a :exc:`DeprecationWarning`. (Contributed by Zackery Spytz in :issue:" +"`44977`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1744 msgid "Modules" msgstr "Modulok" -#: ../../whatsnew/3.11.rst:1748 msgid "" ":pep:`594` led to the deprecations of the following modules slated for " "removal in Python 3.13:" msgstr "" -#: ../../whatsnew/3.11.rst:1752 msgid ":mod:`!aifc`" msgstr "" -#: ../../whatsnew/3.11.rst:1752 msgid ":mod:`!chunk`" msgstr "" -#: ../../whatsnew/3.11.rst:1752 msgid ":mod:`!msilib`" msgstr "" -#: ../../whatsnew/3.11.rst:1752 msgid ":mod:`!pipes`" msgstr "" -#: ../../whatsnew/3.11.rst:1752 msgid ":mod:`!telnetlib`" msgstr "" -#: ../../whatsnew/3.11.rst:1754 msgid ":mod:`!audioop`" msgstr "" -#: ../../whatsnew/3.11.rst:1754 msgid ":mod:`!crypt`" msgstr "" -#: ../../whatsnew/3.11.rst:1754 msgid ":mod:`!nis`" msgstr "" -#: ../../whatsnew/3.11.rst:1754 msgid ":mod:`!sndhdr`" msgstr "" -#: ../../whatsnew/3.11.rst:1754 msgid ":mod:`!uu`" msgstr "" -#: ../../whatsnew/3.11.rst:1756 msgid ":mod:`!cgi`" msgstr "" -#: ../../whatsnew/3.11.rst:1756 msgid ":mod:`!imghdr`" msgstr "" -#: ../../whatsnew/3.11.rst:1756 msgid ":mod:`!nntplib`" msgstr "" -#: ../../whatsnew/3.11.rst:1756 msgid ":mod:`!spwd`" msgstr "" -#: ../../whatsnew/3.11.rst:1756 msgid ":mod:`!xdrlib`" msgstr "" -#: ../../whatsnew/3.11.rst:1758 msgid ":mod:`!cgitb`" msgstr "" -#: ../../whatsnew/3.11.rst:1758 msgid ":mod:`!mailcap`" msgstr "" -#: ../../whatsnew/3.11.rst:1758 msgid ":mod:`!ossaudiodev`" msgstr "" -#: ../../whatsnew/3.11.rst:1758 msgid ":mod:`!sunau`" msgstr "" -#: ../../whatsnew/3.11.rst:1761 msgid "" -"(Contributed by Brett Cannon in :issue:`47061` and Victor Stinner " -"in :gh:`68966`.)" +"(Contributed by Brett Cannon in :issue:`47061` and Victor Stinner in :gh:" +"`68966`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1764 msgid "" "The :mod:`!asynchat`, :mod:`!asyncore` and :mod:`!smtpd` modules have been " "deprecated since at least Python 3.6. Their documentation and deprecation " @@ -2658,58 +2198,48 @@ msgid "" "(Contributed by Hugo van Kemenade in :issue:`47022`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1769 msgid "" "The :mod:`!lib2to3` package and ``2to3`` tool are now deprecated and may not " "be able to parse Python 3.10 or newer. See :pep:`617`, introducing the new " "PEG parser, for details. (Contributed by Victor Stinner in :issue:`40360`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1774 msgid "" "Undocumented modules :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!" -"sre_parse` are now deprecated. (Contributed by Serhiy Storchaka " -"in :issue:`47152`.)" +"sre_parse` are now deprecated. (Contributed by Serhiy Storchaka in :issue:" +"`47152`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1782 msgid "Standard Library" msgstr "" -#: ../../whatsnew/3.11.rst:1784 msgid "" "The following have been deprecated in :mod:`configparser` since Python 3.2. " "Their deprecation warnings have now been updated to note they will be " "removed in Python 3.12:" msgstr "" -#: ../../whatsnew/3.11.rst:1788 msgid "the :class:`!configparser.SafeConfigParser` class" msgstr "" -#: ../../whatsnew/3.11.rst:1789 msgid "the :attr:`!configparser.ParsingError.filename` property" msgstr "" -#: ../../whatsnew/3.11.rst:1790 msgid "the :meth:`!configparser.RawConfigParser.readfp` method" msgstr "" -#: ../../whatsnew/3.11.rst:1792 msgid "(Contributed by Hugo van Kemenade in :issue:`45173`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1794 msgid "" ":class:`!configparser.LegacyInterpolation` has been deprecated in the " "docstring since Python 3.2, and is not listed in the :mod:`configparser` " "documentation. It now emits a :exc:`DeprecationWarning` and will be removed " -"in Python 3.13. Use :class:`configparser.BasicInterpolation` " -"or :class:`configparser.ExtendedInterpolation` instead. (Contributed by Hugo " -"van Kemenade in :issue:`46607`.)" +"in Python 3.13. Use :class:`configparser.BasicInterpolation` or :class:" +"`configparser.ExtendedInterpolation` instead. (Contributed by Hugo van " +"Kemenade in :issue:`46607`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1801 msgid "" "The older set of :mod:`importlib.resources` functions were deprecated in " "favor of the replacements added in Python 3.9 and will be removed in a " @@ -2717,62 +2247,50 @@ msgid "" "package subdirectories:" msgstr "" -#: ../../whatsnew/3.11.rst:1806 msgid ":func:`!importlib.resources.contents`" msgstr "" -#: ../../whatsnew/3.11.rst:1807 msgid ":func:`!importlib.resources.is_resource`" msgstr "" -#: ../../whatsnew/3.11.rst:1808 msgid ":func:`!importlib.resources.open_binary`" msgstr "" -#: ../../whatsnew/3.11.rst:1809 msgid ":func:`!importlib.resources.open_text`" msgstr "" -#: ../../whatsnew/3.11.rst:1810 msgid ":func:`!importlib.resources.read_binary`" msgstr "" -#: ../../whatsnew/3.11.rst:1811 msgid ":func:`!importlib.resources.read_text`" msgstr "" -#: ../../whatsnew/3.11.rst:1812 msgid ":func:`!importlib.resources.path`" msgstr "" -#: ../../whatsnew/3.11.rst:1814 msgid "" "The :func:`locale.getdefaultlocale` function is deprecated and will be " -"removed in Python 3.15. " -"Use :func:`locale.setlocale`, :func:`locale.getpreferredencoding(False) " -"` and :func:`locale.getlocale` functions " -"instead. (Contributed by Victor Stinner in :gh:`90817`.)" +"removed in Python 3.15. Use :func:`locale.setlocale`, :func:`locale." +"getpreferredencoding(False) ` and :func:`locale." +"getlocale` functions instead. (Contributed by Victor Stinner in :gh:`90817`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1820 msgid "" "The :func:`!locale.resetlocale` function is deprecated and will be removed " "in Python 3.13. Use ``locale.setlocale(locale.LC_ALL, \"\")`` instead. " "(Contributed by Victor Stinner in :gh:`90817`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1824 msgid "" "Stricter rules will now be applied for numerical group references and group " "names in :ref:`regular expressions `. Only sequences of ASCII " -"digits will now be accepted as a numerical reference, and the group name " -"in :class:`bytes` patterns and replacement strings can only contain ASCII " +"digits will now be accepted as a numerical reference, and the group name in :" +"class:`bytes` patterns and replacement strings can only contain ASCII " "letters, digits and underscores. For now, a deprecation warning is raised " -"for syntax violating these rules. (Contributed by Serhiy Storchaka " -"in :gh:`91760`.)" +"for syntax violating these rules. (Contributed by Serhiy Storchaka in :gh:" +"`91760`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1832 msgid "" "In the :mod:`re` module, the :func:`!re.template` function and the " "corresponding :const:`!re.TEMPLATE` and :const:`!re.T` flags are deprecated, " @@ -2781,16 +2299,14 @@ msgid "" "in :gh:`92728`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1838 msgid "" ":func:`!turtle.settiltangle` has been deprecated since Python 3.1; it now " -"emits a deprecation warning and will be removed in Python 3.13. " -"Use :func:`turtle.tiltangle` instead (it was earlier incorrectly marked as " -"deprecated, and its docstring is now corrected). (Contributed by Hugo van " -"Kemenade in :issue:`45837`.)" +"emits a deprecation warning and will be removed in Python 3.13. Use :func:" +"`turtle.tiltangle` instead (it was earlier incorrectly marked as deprecated, " +"and its docstring is now corrected). (Contributed by Hugo van Kemenade in :" +"issue:`45837`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1844 msgid "" ":class:`typing.Text`, which exists solely to provide compatibility support " "between Python 2 and Python 3 code, is now deprecated. Its removal is " @@ -2798,490 +2314,378 @@ msgid "" "wherever possible. (Contributed by Alex Waygood in :gh:`92332`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1850 msgid "" "The keyword argument syntax for constructing :data:`typing.TypedDict` types " "is now deprecated. Support will be removed in Python 3.13. (Contributed by " "Jingchen Ye in :gh:`90224`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1854 msgid "" ":class:`!webbrowser.MacOSX` is deprecated and will be removed in Python " "3.13. It is untested, undocumented, and not used by :mod:`webbrowser` " "itself. (Contributed by Donghee Na in :issue:`42255`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1858 msgid "" -"The behavior of returning a value from a :class:`~unittest.TestCase` " -"and :class:`~unittest.IsolatedAsyncioTestCase` test methods (other than the " +"The behavior of returning a value from a :class:`~unittest.TestCase` and :" +"class:`~unittest.IsolatedAsyncioTestCase` test methods (other than the " "default ``None`` value) is now deprecated." msgstr "" -#: ../../whatsnew/3.11.rst:1862 msgid "" "Deprecated the following not-formally-documented :mod:`unittest` functions, " "scheduled for removal in Python 3.13:" msgstr "" -#: ../../whatsnew/3.11.rst:1865 msgid ":func:`!unittest.findTestCases`" msgstr "" -#: ../../whatsnew/3.11.rst:1866 msgid ":func:`!unittest.makeSuite`" msgstr "" -#: ../../whatsnew/3.11.rst:1867 msgid ":func:`!unittest.getTestCaseNames`" msgstr "" -#: ../../whatsnew/3.11.rst:1869 msgid "Use :class:`~unittest.TestLoader` methods instead:" msgstr "" -#: ../../whatsnew/3.11.rst:1871 msgid ":meth:`unittest.TestLoader.loadTestsFromModule`" msgstr "" -#: ../../whatsnew/3.11.rst:1872 msgid ":meth:`unittest.TestLoader.loadTestsFromTestCase`" msgstr "" -#: ../../whatsnew/3.11.rst:1873 msgid ":meth:`unittest.TestLoader.getTestCaseNames`" msgstr "" -#: ../../whatsnew/3.11.rst:1875 msgid "(Contributed by Erlend E. Aasland in :issue:`5846`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1877 msgid "" ":meth:`!unittest.TestProgram.usageExit` is marked deprecated, to be removed " "in 3.13. (Contributed by Carlos Damázio in :gh:`67048`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1886 ../../whatsnew/3.11.rst:2608 msgid "Pending Removal in Python 3.12" msgstr "" -#: ../../whatsnew/3.11.rst:1888 msgid "" "The following Python APIs have been deprecated in earlier Python releases, " "and will be removed in Python 3.12." msgstr "" -#: ../../whatsnew/3.11.rst:1891 msgid "" "C APIs pending removal are :ref:`listed separately `." msgstr "" -#: ../../whatsnew/3.11.rst:1894 msgid "The :mod:`!asynchat` module" msgstr "" -#: ../../whatsnew/3.11.rst:1895 msgid "The :mod:`!asyncore` module" msgstr "" -#: ../../whatsnew/3.11.rst:1896 msgid "The :ref:`entire distutils package `" msgstr "" -#: ../../whatsnew/3.11.rst:1897 msgid "The :mod:`!imp` module" msgstr "" -#: ../../whatsnew/3.11.rst:1898 msgid "The :class:`typing.io ` namespace" msgstr "" -#: ../../whatsnew/3.11.rst:1899 msgid "The :class:`typing.re ` namespace" msgstr "" -#: ../../whatsnew/3.11.rst:1900 msgid ":func:`!cgi.log`" msgstr "" -#: ../../whatsnew/3.11.rst:1901 msgid ":func:`!importlib.find_loader`" msgstr "" -#: ../../whatsnew/3.11.rst:1902 msgid ":meth:`!importlib.abc.Loader.module_repr`" msgstr "" -#: ../../whatsnew/3.11.rst:1903 msgid ":meth:`!importlib.abc.MetaPathFinder.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1904 msgid ":meth:`!importlib.abc.PathEntryFinder.find_loader`" msgstr "" -#: ../../whatsnew/3.11.rst:1905 msgid ":meth:`!importlib.abc.PathEntryFinder.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1906 msgid ":meth:`!importlib.machinery.BuiltinImporter.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1907 msgid ":meth:`!importlib.machinery.BuiltinLoader.module_repr`" msgstr "" -#: ../../whatsnew/3.11.rst:1908 msgid ":meth:`!importlib.machinery.FileFinder.find_loader`" msgstr "" -#: ../../whatsnew/3.11.rst:1909 msgid ":meth:`!importlib.machinery.FileFinder.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1910 msgid ":meth:`!importlib.machinery.FrozenImporter.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1911 msgid ":meth:`!importlib.machinery.FrozenLoader.module_repr`" msgstr "" -#: ../../whatsnew/3.11.rst:1912 msgid ":meth:`!importlib.machinery.PathFinder.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1913 msgid ":meth:`!importlib.machinery.WindowsRegistryFinder.find_module`" msgstr "" -#: ../../whatsnew/3.11.rst:1914 msgid ":func:`!importlib.util.module_for_loader`" msgstr "" -#: ../../whatsnew/3.11.rst:1915 msgid ":func:`!importlib.util.set_loader_wrapper`" msgstr "" -#: ../../whatsnew/3.11.rst:1916 msgid ":func:`!importlib.util.set_package_wrapper`" msgstr "" -#: ../../whatsnew/3.11.rst:1917 msgid ":class:`!pkgutil.ImpImporter`" msgstr "" -#: ../../whatsnew/3.11.rst:1918 msgid ":class:`!pkgutil.ImpLoader`" msgstr "" -#: ../../whatsnew/3.11.rst:1919 msgid ":meth:`!pathlib.Path.link_to`" msgstr "" -#: ../../whatsnew/3.11.rst:1920 msgid ":func:`!sqlite3.enable_shared_cache`" msgstr "" -#: ../../whatsnew/3.11.rst:1921 msgid ":func:`!sqlite3.OptimizedUnicode`" msgstr "" -#: ../../whatsnew/3.11.rst:1922 msgid ":envvar:`!PYTHONTHREADDEBUG` environment variable" msgstr "" -#: ../../whatsnew/3.11.rst:1923 msgid "The following deprecated aliases in :mod:`unittest`:" msgstr "" -#: ../../whatsnew/3.11.rst:1926 msgid "Deprecated alias" msgstr "" -#: ../../whatsnew/3.11.rst:1926 msgid "Method Name" msgstr "" -#: ../../whatsnew/3.11.rst:1926 msgid "Deprecated in" msgstr "" -#: ../../whatsnew/3.11.rst:1928 msgid "``failUnless``" msgstr "" -#: ../../whatsnew/3.11.rst:1928 ../../whatsnew/3.11.rst:1935 msgid ":meth:`.assertTrue`" msgstr "" -#: ../../whatsnew/3.11.rst:1928 ../../whatsnew/3.11.rst:1929 -#: ../../whatsnew/3.11.rst:1930 ../../whatsnew/3.11.rst:1931 -#: ../../whatsnew/3.11.rst:1932 ../../whatsnew/3.11.rst:1933 -#: ../../whatsnew/3.11.rst:1934 msgid "3.1" msgstr "" -#: ../../whatsnew/3.11.rst:1929 msgid "``failIf``" msgstr "" -#: ../../whatsnew/3.11.rst:1929 msgid ":meth:`.assertFalse`" msgstr "" -#: ../../whatsnew/3.11.rst:1930 msgid "``failUnlessEqual``" msgstr "" -#: ../../whatsnew/3.11.rst:1930 ../../whatsnew/3.11.rst:1936 msgid ":meth:`.assertEqual`" msgstr "" -#: ../../whatsnew/3.11.rst:1931 msgid "``failIfEqual``" msgstr "" -#: ../../whatsnew/3.11.rst:1931 ../../whatsnew/3.11.rst:1937 msgid ":meth:`.assertNotEqual`" msgstr "" -#: ../../whatsnew/3.11.rst:1932 msgid "``failUnlessAlmostEqual``" msgstr "" -#: ../../whatsnew/3.11.rst:1932 ../../whatsnew/3.11.rst:1938 msgid ":meth:`.assertAlmostEqual`" msgstr "" -#: ../../whatsnew/3.11.rst:1933 msgid "``failIfAlmostEqual``" msgstr "" -#: ../../whatsnew/3.11.rst:1933 ../../whatsnew/3.11.rst:1939 msgid ":meth:`.assertNotAlmostEqual`" msgstr "" -#: ../../whatsnew/3.11.rst:1934 msgid "``failUnlessRaises``" msgstr "" -#: ../../whatsnew/3.11.rst:1934 msgid ":meth:`.assertRaises`" msgstr "" -#: ../../whatsnew/3.11.rst:1935 msgid "``assert_``" msgstr "" -#: ../../whatsnew/3.11.rst:1935 ../../whatsnew/3.11.rst:1936 -#: ../../whatsnew/3.11.rst:1937 ../../whatsnew/3.11.rst:1938 -#: ../../whatsnew/3.11.rst:1939 ../../whatsnew/3.11.rst:1940 -#: ../../whatsnew/3.11.rst:1941 msgid "3.2" msgstr "" -#: ../../whatsnew/3.11.rst:1936 msgid "``assertEquals``" msgstr "" -#: ../../whatsnew/3.11.rst:1937 msgid "``assertNotEquals``" msgstr "" -#: ../../whatsnew/3.11.rst:1938 msgid "``assertAlmostEquals``" msgstr "" -#: ../../whatsnew/3.11.rst:1939 msgid "``assertNotAlmostEquals``" msgstr "" -#: ../../whatsnew/3.11.rst:1940 msgid "``assertRegexpMatches``" msgstr "" -#: ../../whatsnew/3.11.rst:1940 msgid ":meth:`.assertRegex`" msgstr "" -#: ../../whatsnew/3.11.rst:1941 msgid "``assertRaisesRegexp``" msgstr "" -#: ../../whatsnew/3.11.rst:1941 msgid ":meth:`.assertRaisesRegex`" msgstr "" -#: ../../whatsnew/3.11.rst:1942 msgid "``assertNotRegexpMatches``" msgstr "" -#: ../../whatsnew/3.11.rst:1942 msgid ":meth:`.assertNotRegex`" msgstr "" -#: ../../whatsnew/3.11.rst:1942 msgid "3.5" msgstr "" -#: ../../whatsnew/3.11.rst:1949 ../../whatsnew/3.11.rst:2634 msgid "Removed" msgstr "" -#: ../../whatsnew/3.11.rst:1951 msgid "This section lists Python APIs that have been removed in Python 3.11." msgstr "" -#: ../../whatsnew/3.11.rst:1953 msgid "" "Removed C APIs are :ref:`listed separately `." msgstr "" -#: ../../whatsnew/3.11.rst:1955 msgid "" "Removed the :func:`!@asyncio.coroutine` :term:`decorator` enabling legacy " -"generator-based coroutines to be compatible " -"with :keyword:`async` / :keyword:`await` code. The function has been " -"deprecated since Python 3.8 and the removal was initially scheduled for " -"Python 3.10. Use :keyword:`async def` instead. (Contributed by Illia " -"Volochii in :issue:`43216`.)" +"generator-based coroutines to be compatible with :keyword:`async` / :keyword:" +"`await` code. The function has been deprecated since Python 3.8 and the " +"removal was initially scheduled for Python 3.10. Use :keyword:`async def` " +"instead. (Contributed by Illia Volochii in :issue:`43216`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1962 msgid "" "Removed :class:`!asyncio.coroutines.CoroWrapper` used for wrapping legacy " "generator-based coroutine objects in the debug mode. (Contributed by Illia " "Volochii in :issue:`43216`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1966 msgid "" -"Due to significant security concerns, the *reuse_address* parameter " -"of :meth:`asyncio.loop.create_datagram_endpoint`, disabled in Python 3.9, is " -"now entirely removed. This is because of the behavior of the socket option " -"``SO_REUSEADDR`` in UDP. (Contributed by Hugo van Kemenade " -"in :issue:`45129`.)" +"Due to significant security concerns, the *reuse_address* parameter of :meth:" +"`asyncio.loop.create_datagram_endpoint`, disabled in Python 3.9, is now " +"entirely removed. This is because of the behavior of the socket option " +"``SO_REUSEADDR`` in UDP. (Contributed by Hugo van Kemenade in :issue:" +"`45129`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1972 msgid "" "Removed the :mod:`!binhex` module, deprecated in Python 3.9. Also removed " "the related, similarly-deprecated :mod:`binascii` functions:" msgstr "" -#: ../../whatsnew/3.11.rst:1975 msgid ":func:`!binascii.a2b_hqx`" msgstr "" -#: ../../whatsnew/3.11.rst:1976 msgid ":func:`!binascii.b2a_hqx`" msgstr "" -#: ../../whatsnew/3.11.rst:1977 msgid ":func:`!binascii.rlecode_hqx`" msgstr "" -#: ../../whatsnew/3.11.rst:1978 msgid ":func:`!binascii.rldecode_hqx`" msgstr "" -#: ../../whatsnew/3.11.rst:1980 msgid "The :func:`binascii.crc_hqx` function remains available." msgstr "" -#: ../../whatsnew/3.11.rst:1982 msgid "(Contributed by Victor Stinner in :issue:`45085`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1984 msgid "" "Removed the :mod:`!distutils` ``bdist_msi`` command deprecated in Python " "3.9. Use ``bdist_wheel`` (wheel packages) instead. (Contributed by Hugo van " "Kemenade in :issue:`45124`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1988 msgid "" -"Removed the :meth:`~object.__getitem__` methods " -"of :class:`xml.dom.pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` " -"and :class:`fileinput.FileInput`, deprecated since Python 3.9. (Contributed " -"by Hugo van Kemenade in :issue:`45132`.)" +"Removed the :meth:`~object.__getitem__` methods of :class:`xml.dom.pulldom." +"DOMEventStream`, :class:`wsgiref.util.FileWrapper` and :class:`fileinput." +"FileInput`, deprecated since Python 3.9. (Contributed by Hugo van Kemenade " +"in :issue:`45132`.)" msgstr "" -#: ../../whatsnew/3.11.rst:1993 msgid "" "Removed the deprecated :mod:`gettext` functions :func:`!lgettext`, :func:`!" -"ldgettext`, :func:`!lngettext` and :func:`!ldngettext`. Also removed " -"the :func:`!bind_textdomain_codeset` function, the :meth:`!" -"NullTranslations.output_charset` and :meth:`!" -"NullTranslations.set_output_charset` methods, and the *codeset* parameter " -"of :func:`!translation` and :func:`!install`, since they are only used for " -"the :func:`!l*gettext` functions. (Contributed by Donghee Na and Serhiy " -"Storchaka in :issue:`44235`.)" +"ldgettext`, :func:`!lngettext` and :func:`!ldngettext`. Also removed the :" +"func:`!bind_textdomain_codeset` function, the :meth:`!NullTranslations." +"output_charset` and :meth:`!NullTranslations.set_output_charset` methods, " +"and the *codeset* parameter of :func:`!translation` and :func:`!install`, " +"since they are only used for the :func:`!l*gettext` functions. (Contributed " +"by Donghee Na and Serhiy Storchaka in :issue:`44235`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2003 msgid "Removed from the :mod:`inspect` module:" msgstr "" -#: ../../whatsnew/3.11.rst:2005 msgid "" -"The :func:`!getargspec` function, deprecated since Python 3.0; " -"use :func:`inspect.signature` or :func:`inspect.getfullargspec` instead." +"The :func:`!getargspec` function, deprecated since Python 3.0; use :func:" +"`inspect.signature` or :func:`inspect.getfullargspec` instead." msgstr "" -#: ../../whatsnew/3.11.rst:2008 msgid "" -"The :func:`!formatargspec` function, deprecated since Python 3.5; use " -"the :func:`inspect.signature` function or the :class:`inspect.Signature` " -"object directly." +"The :func:`!formatargspec` function, deprecated since Python 3.5; use the :" +"func:`inspect.signature` function or the :class:`inspect.Signature` object " +"directly." msgstr "" -#: ../../whatsnew/3.11.rst:2012 msgid "" -"The undocumented :meth:`!Signature.from_builtin` and :meth:`!" -"Signature.from_function` methods, deprecated since Python 3.5; use " -"the :meth:`Signature.from_callable() ` " -"method instead." +"The undocumented :meth:`!Signature.from_builtin` and :meth:`!Signature." +"from_function` methods, deprecated since Python 3.5; use the :meth:" +"`Signature.from_callable() ` method instead." msgstr "" -#: ../../whatsnew/3.11.rst:2017 msgid "(Contributed by Hugo van Kemenade in :issue:`45320`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2019 msgid "" -"Removed the :meth:`~object.__class_getitem__` method " -"from :class:`pathlib.PurePath`, because it was not used and added by mistake " -"in previous versions. (Contributed by Nikita Sobolev in :issue:`46483`.)" +"Removed the :meth:`~object.__class_getitem__` method from :class:`pathlib." +"PurePath`, because it was not used and added by mistake in previous " +"versions. (Contributed by Nikita Sobolev in :issue:`46483`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2024 msgid "" "Removed the :class:`!MailmanProxy` class in the :mod:`!smtpd` module, as it " "is unusable without the external :mod:`!mailman` package. (Contributed by " "Donghee Na in :issue:`35800`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2028 msgid "" -"Removed the deprecated :meth:`!split` method of :class:`!" -"_tkinter.TkappType`. (Contributed by Erlend E. Aasland in :issue:`38371`.)" +"Removed the deprecated :meth:`!split` method of :class:`!_tkinter." +"TkappType`. (Contributed by Erlend E. Aasland in :issue:`38371`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2031 msgid "" "Removed namespace package support from :mod:`unittest` discovery. It was " "introduced in Python 3.4 but has been broken since Python 3.7. (Contributed " "by Inada Naoki in :issue:`23882`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2035 msgid "" "Removed the undocumented private :meth:`!float.__set_format__` method, " "previously known as :meth:`!float.__setformat__` in Python 3.7. Its " @@ -3290,103 +2694,88 @@ msgid "" "in :issue:`46852`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2041 msgid "" "The :option:`!--experimental-isolated-subinterpreters` configure flag (and " "corresponding :c:macro:`!EXPERIMENTAL_ISOLATED_SUBINTERPRETERS` macro) have " "been removed." msgstr "" -#: ../../whatsnew/3.11.rst:2045 msgid "" ":pypi:`Pynche` --- The Pythonically Natural Color and Hue Editor --- has " "been moved out of ``Tools/scripts`` and is `being developed independently " "`_ from the Python source tree." msgstr "" -#: ../../whatsnew/3.11.rst:2055 ../../whatsnew/3.11.rst:2277 msgid "Porting to Python 3.11" msgstr "" -#: ../../whatsnew/3.11.rst:2057 msgid "" "This section lists previously described changes and other bugfixes in the " "Python API that may require changes to your Python code." msgstr "" -#: ../../whatsnew/3.11.rst:2060 msgid "" "Porting notes for the C API are :ref:`listed separately `." msgstr "" -#: ../../whatsnew/3.11.rst:2063 msgid "" -":func:`open`, :func:`io.open`, :func:`codecs.open` " -"and :class:`fileinput.FileInput` no longer accept ``'U'`` (\"universal " -"newline\") in the file mode. In Python 3, \"universal newline\" mode is used " -"by default whenever a file is opened in text mode, and the ``'U'`` flag has " -"been deprecated since Python 3.3. The :ref:`newline parameter ` to these functions controls how universal newlines work. " -"(Contributed by Victor Stinner in :issue:`37330`.)" +":func:`open`, :func:`io.open`, :func:`codecs.open` and :class:`fileinput." +"FileInput` no longer accept ``'U'`` (\"universal newline\") in the file " +"mode. In Python 3, \"universal newline\" mode is used by default whenever a " +"file is opened in text mode, and the ``'U'`` flag has been deprecated since " +"Python 3.3. The :ref:`newline parameter ` to these " +"functions controls how universal newlines work. (Contributed by Victor " +"Stinner in :issue:`37330`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2072 msgid "" -":class:`ast.AST` node positions are now validated when provided " -"to :func:`compile` and other related functions. If invalid positions are " -"detected, a :exc:`ValueError` will be raised. (Contributed by Pablo Galindo " -"in :gh:`93351`)" +":class:`ast.AST` node positions are now validated when provided to :func:" +"`compile` and other related functions. If invalid positions are detected, a :" +"exc:`ValueError` will be raised. (Contributed by Pablo Galindo in :gh:" +"`93351`)" msgstr "" -#: ../../whatsnew/3.11.rst:2076 msgid "" "Prohibited passing non-:class:`concurrent.futures.ThreadPoolExecutor` " "executors to :meth:`asyncio.loop.set_default_executor` following a " "deprecation in Python 3.8. (Contributed by Illia Volochii in :issue:`43234`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2081 msgid "" -":mod:`calendar`: The :class:`calendar.LocaleTextCalendar` " -"and :class:`calendar.LocaleHTMLCalendar` classes now " -"use :func:`locale.getlocale`, instead of " -"using :func:`locale.getdefaultlocale`, if no locale is specified. " +":mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and :class:" +"`calendar.LocaleHTMLCalendar` classes now use :func:`locale.getlocale`, " +"instead of using :func:`locale.getdefaultlocale`, if no locale is specified. " "(Contributed by Victor Stinner in :issue:`46659`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2087 msgid "" "The :mod:`pdb` module now reads the :file:`.pdbrc` configuration file with " "the ``'UTF-8'`` encoding. (Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ " "రెడ్డి తాటిపర్తి) in :issue:`41137`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2091 msgid "" "The *population* parameter of :func:`random.sample` must be a sequence, and " "automatic conversion of :class:`set`\\s to :class:`list`\\s is no longer " -"supported. Also, if the sample size is larger than the population size, " -"a :exc:`ValueError` is raised. (Contributed by Raymond Hettinger " -"in :issue:`40465`.)" +"supported. Also, if the sample size is larger than the population size, a :" +"exc:`ValueError` is raised. (Contributed by Raymond Hettinger in :issue:" +"`40465`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2097 msgid "" "The *random* optional parameter of :func:`random.shuffle` was removed. It " -"was previously an arbitrary random function to use for the shuffle; " -"now, :func:`random.random` (its previous default) will always be used." +"was previously an arbitrary random function to use for the shuffle; now, :" +"func:`random.random` (its previous default) will always be used." msgstr "" -#: ../../whatsnew/3.11.rst:2101 msgid "" "In :mod:`re` :ref:`re-syntax`, global inline flags (e.g. ``(?i)``) can now " "only be used at the start of regular expressions. Using them elsewhere has " -"been deprecated since Python 3.6. (Contributed by Serhiy Storchaka " -"in :issue:`47066`.)" +"been deprecated since Python 3.6. (Contributed by Serhiy Storchaka in :issue:" +"`47066`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2106 msgid "" "In the :mod:`re` module, several long-standing bugs where fixed that, in " "rare cases, could cause capture groups to get the wrong result. Therefore, " @@ -3394,11 +2783,9 @@ msgid "" "in :issue:`35859`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2115 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.11.rst:2117 msgid "" "CPython now has :pep:`11` :pep:`Tier 3 support <11#tier-3>` for cross " "compiling to the `WebAssembly `_ platforms " @@ -3409,43 +2796,37 @@ msgid "" "limited subset of POSIX APIs; Python standard libraries features and modules " "related to networking, processes, threading, signals, mmap, and users/groups " "are not available or don't work. (Emscripten contributed by Christian Heimes " -"and Ethan Smith in :gh:`84461` and WASI contributed by Christian Heimes " -"in :gh:`90473`; platforms promoted in :gh:`95085`)" +"and Ethan Smith in :gh:`84461` and WASI contributed by Christian Heimes in :" +"gh:`90473`; platforms promoted in :gh:`95085`)" msgstr "" -#: ../../whatsnew/3.11.rst:2131 msgid "Building CPython now requires:" msgstr "" -#: ../../whatsnew/3.11.rst:2133 msgid "" "A `C11 `_ compiler and standard library. " "`Optional C11 features `_ are not required. " -"(Contributed by Victor Stinner in :issue:`46656`, :issue:`45440` " -"and :issue:`46640`.)" +"(Contributed by Victor Stinner in :issue:`46656`, :issue:`45440` and :issue:" +"`46640`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2140 msgid "" "Support for `IEEE 754 `_ floating-" "point numbers. (Contributed by Victor Stinner in :issue:`46917`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2144 msgid "" "The :c:macro:`!Py_NO_NAN` macro has been removed. Since CPython now requires " "IEEE 754 floats, NaN values are always available. (Contributed by Victor " "Stinner in :issue:`46656`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2148 msgid "" "The :mod:`tkinter` package now requires `Tcl/Tk `_ " "version 8.5.12 or newer. (Contributed by Serhiy Storchaka in :issue:`46996`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2152 msgid "" "Build dependencies, compiler flags, and linker flags for most stdlib " "extension modules are now detected by :program:`configure`. libffi, libnsl, " @@ -3453,41 +2834,36 @@ msgid "" "detected by `pkg-config `_ (when available). :mod:`tkinter` now requires a pkg-config " "command to detect development settings for `Tcl/Tk`_ headers and libraries. " -"(Contributed by Christian Heimes and Erlend Egeberg Aasland " -"in :issue:`45847`, :issue:`45747`, and :issue:`45763`.)" +"(Contributed by Christian Heimes and Erlend Egeberg Aasland in :issue:" +"`45847`, :issue:`45747`, and :issue:`45763`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2162 msgid "" "libpython is no longer linked against libcrypt. (Contributed by Mike Gilbert " "in :issue:`45433`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2165 msgid "" "CPython can now be built with the `ThinLTO `_ option via passing ``thin`` to :option:`--with-lto`, i.e. " -"``--with-lto=thin``. (Contributed by Donghee Na and Brett Holman " -"in :issue:`44340`.)" +"``--with-lto=thin``. (Contributed by Donghee Na and Brett Holman in :issue:" +"`44340`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2170 msgid "" "Freelists for object structs can now be disabled. A new :program:`configure` " "option ``--without-freelists`` can be used to disable all freelists except " "empty tuple singleton. (Contributed by Christian Heimes in :issue:`45522`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2175 msgid "" "``Modules/Setup`` and ``Modules/makesetup`` have been improved and tied up. " "Extension modules can now be built through ``makesetup``. All except some " "test modules can be linked statically into a main binary or library. " -"(Contributed by Brett Cannon and Christian Heimes " -"in :issue:`45548`, :issue:`45570`, :issue:`45571`, and :issue:`43974`.)" +"(Contributed by Brett Cannon and Christian Heimes in :issue:`45548`, :issue:" +"`45570`, :issue:`45571`, and :issue:`43974`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2182 msgid "" "Use the environment variables :envvar:`!TCLTK_CFLAGS` and :envvar:`!" "TCLTK_LIBS` to manually specify the location of Tcl/Tk headers and " @@ -3495,7 +2871,6 @@ msgid "" "and :option:`!--with-tcltk-libs` have been removed." msgstr "" -#: ../../whatsnew/3.11.rst:2188 msgid "" "On RHEL 7 and CentOS 7 the development packages do not provide ``tcl.pc`` " "and ``tk.pc``; use ``TCLTK_LIBS=\"-ltk8.5 -ltkstub8.5 -ltcl8.5\"``. The " @@ -3503,114 +2878,92 @@ msgid "" "build Python with RHEL 7's and CentOS 7's Tcl/Tk and OpenSSL." msgstr "" -#: ../../whatsnew/3.11.rst:2193 msgid "" "CPython will now use 30-bit digits by default for the Python :class:`int` " "implementation. Previously, the default was to use 30-bit digits on " "platforms with ``SIZEOF_VOID_P >= 8``, and 15-bit digits otherwise. It's " -"still possible to explicitly request use of 15-bit digits via either " -"the :option:`--enable-big-digits` option to the configure script or (for " -"Windows) the ``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``, but " -"this option may be removed at some point in the future. (Contributed by Mark " -"Dickinson in :issue:`45569`.)" +"still possible to explicitly request use of 15-bit digits via either the :" +"option:`--enable-big-digits` option to the configure script or (for Windows) " +"the ``PYLONG_BITS_IN_DIGIT`` variable in ``PC/pyconfig.h``, but this option " +"may be removed at some point in the future. (Contributed by Mark Dickinson " +"in :issue:`45569`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2206 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.11.rst:2213 msgid "" "Add a new :c:func:`PyType_GetName` function to get type's short name. " "(Contributed by Hai Shi in :issue:`42035`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2216 msgid "" "Add a new :c:func:`PyType_GetQualName` function to get type's qualified " "name. (Contributed by Hai Shi in :issue:`42035`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2219 msgid "" -"Add new :c:func:`PyThreadState_EnterTracing` " -"and :c:func:`PyThreadState_LeaveTracing` functions to the limited C API to " -"suspend and resume tracing and profiling. (Contributed by Victor Stinner " -"in :issue:`43760`.)" +"Add new :c:func:`PyThreadState_EnterTracing` and :c:func:" +"`PyThreadState_LeaveTracing` functions to the limited C API to suspend and " +"resume tracing and profiling. (Contributed by Victor Stinner in :issue:" +"`43760`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2224 msgid "" -"Added the :c:data:`Py_Version` constant which bears the same value " -"as :c:macro:`PY_VERSION_HEX`. (Contributed by Gabriele N. Tornetta " -"in :issue:`43931`.)" +"Added the :c:data:`Py_Version` constant which bears the same value as :c:" +"macro:`PY_VERSION_HEX`. (Contributed by Gabriele N. Tornetta in :issue:" +"`43931`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2228 msgid "" ":c:type:`Py_buffer` and APIs are now part of the limited API and the stable " "ABI:" msgstr "" -#: ../../whatsnew/3.11.rst:2231 msgid ":c:func:`PyObject_CheckBuffer`" msgstr "" -#: ../../whatsnew/3.11.rst:2232 msgid ":c:func:`PyObject_GetBuffer`" msgstr "" -#: ../../whatsnew/3.11.rst:2233 msgid ":c:func:`PyBuffer_GetPointer`" msgstr "" -#: ../../whatsnew/3.11.rst:2234 msgid ":c:func:`PyBuffer_SizeFromFormat`" msgstr "" -#: ../../whatsnew/3.11.rst:2235 msgid ":c:func:`PyBuffer_ToContiguous`" msgstr "" -#: ../../whatsnew/3.11.rst:2236 msgid ":c:func:`PyBuffer_FromContiguous`" msgstr "" -#: ../../whatsnew/3.11.rst:2237 msgid ":c:func:`PyObject_CopyData`" msgstr "" -#: ../../whatsnew/3.11.rst:2238 msgid ":c:func:`PyBuffer_IsContiguous`" msgstr "" -#: ../../whatsnew/3.11.rst:2239 msgid ":c:func:`PyBuffer_FillContiguousStrides`" msgstr "" -#: ../../whatsnew/3.11.rst:2240 msgid ":c:func:`PyBuffer_FillInfo`" msgstr "" -#: ../../whatsnew/3.11.rst:2241 msgid ":c:func:`PyBuffer_Release`" msgstr "" -#: ../../whatsnew/3.11.rst:2242 msgid ":c:func:`PyMemoryView_FromBuffer`" msgstr "" -#: ../../whatsnew/3.11.rst:2243 msgid "" -":c:member:`~PyBufferProcs.bf_getbuffer` " -"and :c:member:`~PyBufferProcs.bf_releasebuffer` type slots" +":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs." +"bf_releasebuffer` type slots" msgstr "" -#: ../../whatsnew/3.11.rst:2246 msgid "(Contributed by Christian Heimes in :issue:`45459`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2248 msgid "" "Added the :c:func:`PyType_GetModuleByDef` function, used to get the module " "in which a method was defined, in cases where this information is not " @@ -3618,37 +2971,32 @@ msgid "" "in :issue:`46613`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2253 msgid "" -"Add new functions to pack and unpack C double (serialize and " -"deserialize): :c:func:`PyFloat_Pack2`, :c:func:`PyFloat_Pack4`, :c:func:`PyFloat_Pack8`, :c:func:`PyFloat_Unpack2`, :c:func:`PyFloat_Unpack4` " -"and :c:func:`PyFloat_Unpack8`. (Contributed by Victor Stinner " -"in :issue:`46906`.)" +"Add new functions to pack and unpack C double (serialize and deserialize): :" +"c:func:`PyFloat_Pack2`, :c:func:`PyFloat_Pack4`, :c:func:`PyFloat_Pack8`, :c:" +"func:`PyFloat_Unpack2`, :c:func:`PyFloat_Unpack4` and :c:func:" +"`PyFloat_Unpack8`. (Contributed by Victor Stinner in :issue:`46906`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2259 msgid "" -"Add new functions to get frame object " -"attributes: :c:func:`PyFrame_GetBuiltins`, :c:func:`PyFrame_GetGenerator`, :c:func:`PyFrame_GetGlobals`, :c:func:`PyFrame_GetLasti`." +"Add new functions to get frame object attributes: :c:func:" +"`PyFrame_GetBuiltins`, :c:func:`PyFrame_GetGenerator`, :c:func:" +"`PyFrame_GetGlobals`, :c:func:`PyFrame_GetLasti`." msgstr "" -#: ../../whatsnew/3.11.rst:2263 msgid "" -"Added two new functions to get and set the active exception " -"instance: :c:func:`PyErr_GetHandledException` " -"and :c:func:`PyErr_SetHandledException`. These are alternatives " -"to :c:func:`PyErr_SetExcInfo()` and :c:func:`PyErr_GetExcInfo()` which work " -"with the legacy 3-tuple representation of exceptions. (Contributed by Irit " -"Katriel in :issue:`46343`.)" +"Added two new functions to get and set the active exception instance: :c:" +"func:`PyErr_GetHandledException` and :c:func:`PyErr_SetHandledException`. " +"These are alternatives to :c:func:`PyErr_SetExcInfo()` and :c:func:" +"`PyErr_GetExcInfo()` which work with the legacy 3-tuple representation of " +"exceptions. (Contributed by Irit Katriel in :issue:`46343`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2270 msgid "" "Added the :c:member:`PyConfig.safe_path` member. (Contributed by Victor " "Stinner in :gh:`57684`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2281 msgid "" "Some macros have been converted to static inline functions to avoid `macro " "pitfalls `_. The " @@ -3660,7 +3008,6 @@ msgid "" "Stinner and Erlend E. Aasland in :gh:`89653`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2292 msgid "" ":c:func:`PyErr_SetExcInfo()` no longer uses the ``type`` and ``traceback`` " "arguments, the interpreter now derives those values from the exception " @@ -3668,14 +3015,12 @@ msgid "" "all three arguments. (Contributed by Irit Katriel in :issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2298 msgid "" ":c:func:`PyErr_GetExcInfo()` now derives the ``type`` and ``traceback`` " "fields of the result from the exception instance (the ``value`` field). " "(Contributed by Irit Katriel in :issue:`45711`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2302 msgid "" ":c:struct:`_frozen` has a new ``is_package`` field to indicate whether or " "not the frozen module is a package. Previously, a negative value in the " @@ -3683,14 +3028,12 @@ msgid "" "``size``. (Contributed by Kumar Aditya in :issue:`46608`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2308 msgid "" ":c:func:`_PyFrameEvalFunction` now takes ``_PyInterpreterFrame*`` as its " "second parameter, instead of ``PyFrameObject*``. See :pep:`523` for more " "details of how to use this function pointer type." msgstr "" -#: ../../whatsnew/3.11.rst:2312 msgid "" ":c:func:`!PyCode_New` and :c:func:`!PyCode_NewWithPosOnlyArgs` now take an " "additional ``exception_table`` argument. Using these functions should be " @@ -3699,28 +3042,24 @@ msgid "" "method." msgstr "" -#: ../../whatsnew/3.11.rst:2318 msgid "" ":c:type:`PyCodeObject` no longer has the ``co_code``, ``co_varnames``, " -"``co_cellvars`` and ``co_freevars`` fields. Instead, " -"use :c:func:`PyCode_GetCode`, :c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars` " +"``co_cellvars`` and ``co_freevars`` fields. Instead, use :c:func:" +"`PyCode_GetCode`, :c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars` " "and :c:func:`PyCode_GetFreevars` respectively to access them via the C API. " "(Contributed by Brandt Bucher in :issue:`46841` and Ken Jin in :gh:`92154` " "and :gh:`94936`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2326 msgid "" "The old trashcan macros (``Py_TRASHCAN_SAFE_BEGIN``/" "``Py_TRASHCAN_SAFE_END``) are now deprecated. They should be replaced by the " "new macros ``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``." msgstr "" -#: ../../whatsnew/3.11.rst:2330 msgid "A tp_dealloc function that has the old macros, such as::" msgstr "" -#: ../../whatsnew/3.11.rst:2332 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -3732,11 +3071,9 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.11.rst:2341 msgid "should migrate to the new macros as follows::" msgstr "" -#: ../../whatsnew/3.11.rst:2343 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -3748,20 +3085,17 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.11.rst:2352 msgid "" "Note that ``Py_TRASHCAN_BEGIN`` has a second argument which should be the " "deallocation function it is in." msgstr "" -#: ../../whatsnew/3.11.rst:2355 msgid "" "To support older Python versions in the same codebase, you can define the " "following macros and use them throughout the code (credit: these were copied " "from the ``mypy`` codebase)::" msgstr "" -#: ../../whatsnew/3.11.rst:2359 msgid "" "#if PY_VERSION_HEX >= 0x03080000\n" "# define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_BEGIN(op, dealloc)\n" @@ -3772,23 +3106,20 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2367 msgid "" "The :c:func:`PyType_Ready` function now raises an error if a type is defined " "with the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set but has no traverse function " -"(:c:member:`PyTypeObject.tp_traverse`). (Contributed by Victor Stinner " -"in :issue:`44263`.)" +"(:c:member:`PyTypeObject.tp_traverse`). (Contributed by Victor Stinner in :" +"issue:`44263`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2372 msgid "" "Heap types with the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag can now inherit " -"the :pep:`590` vectorcall protocol. Previously, this was only possible " -"for :ref:`static types `. (Contributed by Erlend E. Aasland " -"in :issue:`43908`)" +"the :pep:`590` vectorcall protocol. Previously, this was only possible for :" +"ref:`static types `. (Contributed by Erlend E. Aasland in :" +"issue:`43908`)" msgstr "" -#: ../../whatsnew/3.11.rst:2377 msgid "" "Since :c:func:`Py_TYPE()` is changed to a inline static function, " "``Py_TYPE(obj) = new_type`` must be replaced with ``Py_SET_TYPE(obj, " @@ -3796,7 +3127,6 @@ msgid "" "Python 3.9). For backward compatibility, this macro can be used::" msgstr "" -#: ../../whatsnew/3.11.rst:2383 msgid "" "#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_TYPE)\n" "static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type)\n" @@ -3805,11 +3135,9 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2389 ../../whatsnew/3.11.rst:2403 msgid "(Contributed by Victor Stinner in :issue:`39573`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2391 msgid "" "Since :c:func:`Py_SIZE()` is changed to a inline static function, " "``Py_SIZE(obj) = new_size`` must be replaced with ``Py_SET_SIZE(obj, " @@ -3817,7 +3145,6 @@ msgid "" "Python 3.9). For backward compatibility, this macro can be used::" msgstr "" -#: ../../whatsnew/3.11.rst:2397 msgid "" "#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_SIZE)\n" "static inline void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size)\n" @@ -3826,16 +3153,14 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2405 msgid "" -"```` no longer includes the header files ````, " -"````, ```` and ```` when the ``Py_LIMITED_API`` " -"macro is set to ``0x030b0000`` (Python 3.11) or higher. C extensions should " +"```` no longer includes the header files ````, ````, ```` and ```` when the ``Py_LIMITED_API`` macro is " +"set to ``0x030b0000`` (Python 3.11) or higher. C extensions should " "explicitly include the header files after ``#include ``. " "(Contributed by Victor Stinner in :issue:`45434`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2411 msgid "" "The non-limited API files ``cellobject.h``, ``classobject.h``, ``code.h``, " "``context.h``, ``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have " @@ -3846,7 +3171,6 @@ msgid "" "instead. (Contributed by Victor Stinner in :issue:`35134`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2419 msgid "" "The :c:func:`!PyUnicode_CHECK_INTERNED` macro has been excluded from the " "limited C API. It was never usable there, because it used internal " @@ -3854,170 +3178,135 @@ msgid "" "Victor Stinner in :issue:`46007`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2424 msgid "" "The following frame functions and type are now directly available with " "``#include ``, it's no longer needed to add ``#include " "``:" msgstr "" -#: ../../whatsnew/3.11.rst:2428 msgid ":c:func:`PyFrame_Check`" msgstr "" -#: ../../whatsnew/3.11.rst:2429 msgid ":c:func:`PyFrame_GetBack`" msgstr "" -#: ../../whatsnew/3.11.rst:2430 msgid ":c:func:`PyFrame_GetBuiltins`" msgstr "" -#: ../../whatsnew/3.11.rst:2431 msgid ":c:func:`PyFrame_GetGenerator`" msgstr "" -#: ../../whatsnew/3.11.rst:2432 msgid ":c:func:`PyFrame_GetGlobals`" msgstr "" -#: ../../whatsnew/3.11.rst:2433 msgid ":c:func:`PyFrame_GetLasti`" msgstr "" -#: ../../whatsnew/3.11.rst:2434 msgid ":c:func:`PyFrame_GetLocals`" msgstr "" -#: ../../whatsnew/3.11.rst:2435 msgid ":c:type:`PyFrame_Type`" msgstr "" -#: ../../whatsnew/3.11.rst:2437 msgid "(Contributed by Victor Stinner in :gh:`93937`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2441 msgid "" "The :c:type:`PyFrameObject` structure members have been removed from the " "public C API." msgstr "" -#: ../../whatsnew/3.11.rst:2444 msgid "" "While the documentation notes that the :c:type:`PyFrameObject` fields are " "subject to change at any time, they have been stable for a long time and " "were used in several popular extensions." msgstr "" -#: ../../whatsnew/3.11.rst:2448 msgid "" "In Python 3.11, the frame struct was reorganized to allow performance " "optimizations. Some fields were removed entirely, as they were details of " "the old implementation." msgstr "" -#: ../../whatsnew/3.11.rst:2452 msgid ":c:type:`PyFrameObject` fields:" msgstr "" -#: ../../whatsnew/3.11.rst:2454 msgid "``f_back``: use :c:func:`PyFrame_GetBack`." msgstr "" -#: ../../whatsnew/3.11.rst:2455 msgid "``f_blockstack``: removed." msgstr "" -#: ../../whatsnew/3.11.rst:2456 msgid "``f_builtins``: use :c:func:`PyFrame_GetBuiltins`." msgstr "" -#: ../../whatsnew/3.11.rst:2457 msgid "``f_code``: use :c:func:`PyFrame_GetCode`." msgstr "" -#: ../../whatsnew/3.11.rst:2458 msgid "``f_gen``: use :c:func:`PyFrame_GetGenerator`." msgstr "" -#: ../../whatsnew/3.11.rst:2459 msgid "``f_globals``: use :c:func:`PyFrame_GetGlobals`." msgstr "" -#: ../../whatsnew/3.11.rst:2460 msgid "``f_iblock``: removed." msgstr "" -#: ../../whatsnew/3.11.rst:2461 msgid "" "``f_lasti``: use :c:func:`PyFrame_GetLasti`. Code using ``f_lasti`` with " "``PyCode_Addr2Line()`` should use :c:func:`PyFrame_GetLineNumber` instead; " "it may be faster." msgstr "" -#: ../../whatsnew/3.11.rst:2464 msgid "``f_lineno``: use :c:func:`PyFrame_GetLineNumber`" msgstr "" -#: ../../whatsnew/3.11.rst:2465 msgid "``f_locals``: use :c:func:`PyFrame_GetLocals`." msgstr "" -#: ../../whatsnew/3.11.rst:2466 msgid "``f_stackdepth``: removed." msgstr "" -#: ../../whatsnew/3.11.rst:2467 msgid "``f_state``: no public API (renamed to ``f_frame.f_state``)." msgstr "" -#: ../../whatsnew/3.11.rst:2468 msgid "``f_trace``: no public API." msgstr "" -#: ../../whatsnew/3.11.rst:2469 msgid "" "``f_trace_lines``: use ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_lines\")``." msgstr "" -#: ../../whatsnew/3.11.rst:2470 msgid "" "``f_trace_opcodes``: use ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_opcodes\")``." msgstr "" -#: ../../whatsnew/3.11.rst:2471 msgid "``f_localsplus``: no public API (renamed to ``f_frame.localsplus``)." msgstr "" -#: ../../whatsnew/3.11.rst:2472 msgid "``f_valuestack``: removed." msgstr "" -#: ../../whatsnew/3.11.rst:2474 msgid "" -"The Python frame object is now created lazily. A side effect is that " -"the :attr:`~frame.f_back` member must not be accessed directly, since its " -"value is now also computed lazily. The :c:func:`PyFrame_GetBack` function " -"must be called instead." +"The Python frame object is now created lazily. A side effect is that the :" +"attr:`~frame.f_back` member must not be accessed directly, since its value " +"is now also computed lazily. The :c:func:`PyFrame_GetBack` function must be " +"called instead." msgstr "" -#: ../../whatsnew/3.11.rst:2480 msgid "" -"Debuggers that accessed the :attr:`~frame.f_locals` directly *must* " -"call :c:func:`PyFrame_GetLocals` instead. They no longer need to " -"call :c:func:`!PyFrame_FastToLocalsWithError` or :c:func:`!" -"PyFrame_LocalsToFast`, in fact they should not call those functions. The " -"necessary updating of the frame is now managed by the virtual machine." +"Debuggers that accessed the :attr:`~frame.f_locals` directly *must* call :c:" +"func:`PyFrame_GetLocals` instead. They no longer need to call :c:func:`!" +"PyFrame_FastToLocalsWithError` or :c:func:`!PyFrame_LocalsToFast`, in fact " +"they should not call those functions. The necessary updating of the frame is " +"now managed by the virtual machine." msgstr "" -#: ../../whatsnew/3.11.rst:2486 msgid "Code defining ``PyFrame_GetCode()`` on Python 3.8 and older::" msgstr "" -#: ../../whatsnew/3.11.rst:2488 msgid "" "#if PY_VERSION_HEX < 0x030900B1\n" "static inline PyCodeObject* PyFrame_GetCode(PyFrameObject *frame)\n" @@ -4028,11 +3317,9 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2496 msgid "Code defining ``PyFrame_GetBack()`` on Python 3.8 and older::" msgstr "" -#: ../../whatsnew/3.11.rst:2498 msgid "" "#if PY_VERSION_HEX < 0x030900B1\n" "static inline PyFrameObject* PyFrame_GetBack(PyFrameObject *frame)\n" @@ -4043,45 +3330,37 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2506 msgid "" "Or use the `pythoncapi_compat project `__ to get these two functions on older Python versions." msgstr "" -#: ../../whatsnew/3.11.rst:2510 msgid "Changes of the :c:type:`PyThreadState` structure members:" msgstr "" -#: ../../whatsnew/3.11.rst:2512 msgid "" "``frame``: removed, use :c:func:`PyThreadState_GetFrame` (function added to " "Python 3.9 by :issue:`40429`). Warning: the function returns a :term:`strong " "reference`, need to call :c:func:`Py_XDECREF`." msgstr "" -#: ../../whatsnew/3.11.rst:2516 msgid "" -"``tracing``: changed, use :c:func:`PyThreadState_EnterTracing` " -"and :c:func:`PyThreadState_LeaveTracing` (functions added to Python 3.11 " -"by :issue:`43760`)." +"``tracing``: changed, use :c:func:`PyThreadState_EnterTracing` and :c:func:" +"`PyThreadState_LeaveTracing` (functions added to Python 3.11 by :issue:" +"`43760`)." msgstr "" -#: ../../whatsnew/3.11.rst:2519 msgid "" "``recursion_depth``: removed, use ``(tstate->recursion_limit - tstate-" ">recursion_remaining)`` instead." msgstr "" -#: ../../whatsnew/3.11.rst:2521 msgid "``stackcheck_counter``: removed." msgstr "" -#: ../../whatsnew/3.11.rst:2523 msgid "Code defining ``PyThreadState_GetFrame()`` on Python 3.8 and older::" msgstr "" -#: ../../whatsnew/3.11.rst:2525 msgid "" "#if PY_VERSION_HEX < 0x030900B1\n" "static inline PyFrameObject* PyThreadState_GetFrame(PyThreadState *tstate)\n" @@ -4092,13 +3371,11 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2533 msgid "" "Code defining ``PyThreadState_EnterTracing()`` and " "``PyThreadState_LeaveTracing()`` on Python 3.10 and older::" msgstr "" -#: ../../whatsnew/3.11.rst:2536 msgid "" "#if PY_VERSION_HEX < 0x030B00A2\n" "static inline void PyThreadState_EnterTracing(PyThreadState *tstate)\n" @@ -4125,19 +3402,16 @@ msgid "" "#endif" msgstr "" -#: ../../whatsnew/3.11.rst:2559 msgid "" "Or use `the pythoncapi-compat project `__ to get these functions on old Python functions." msgstr "" -#: ../../whatsnew/3.11.rst:2563 msgid "" "Distributors are encouraged to build Python with the optimized Blake2 " "library `libb2`_." msgstr "" -#: ../../whatsnew/3.11.rst:2566 msgid "" "The :c:member:`PyConfig.module_search_paths_set` field must now be set to 1 " "for initialization to use :c:member:`PyConfig.module_search_paths` to " @@ -4145,187 +3419,144 @@ msgid "" "path and replace any values added to ``module_search_paths``." msgstr "" -#: ../../whatsnew/3.11.rst:2571 msgid "" ":c:func:`PyConfig_Read` no longer calculates the initial search path, and " "will not fill any values into :c:member:`PyConfig.module_search_paths`. To " -"calculate default paths and then modify them, finish initialization and " -"use :c:func:`PySys_GetObject` to retrieve :data:`sys.path` as a Python list " +"calculate default paths and then modify them, finish initialization and use :" +"c:func:`PySys_GetObject` to retrieve :data:`sys.path` as a Python list " "object and modify it directly." msgstr "" -#: ../../whatsnew/3.11.rst:2582 msgid "" "Deprecate the following functions to configure the Python initialization:" msgstr "" -#: ../../whatsnew/3.11.rst:2584 msgid ":c:func:`!PySys_AddWarnOptionUnicode`" msgstr "" -#: ../../whatsnew/3.11.rst:2585 msgid ":c:func:`!PySys_AddWarnOption`" msgstr "" -#: ../../whatsnew/3.11.rst:2586 msgid ":c:func:`!PySys_AddXOption`" msgstr "" -#: ../../whatsnew/3.11.rst:2587 msgid ":c:func:`!PySys_HasWarnOptions`" msgstr "" -#: ../../whatsnew/3.11.rst:2588 msgid ":c:func:`!PySys_SetArgvEx`" msgstr "" -#: ../../whatsnew/3.11.rst:2589 msgid ":c:func:`!PySys_SetArgv`" msgstr "" -#: ../../whatsnew/3.11.rst:2590 msgid ":c:func:`!PySys_SetPath`" msgstr "" -#: ../../whatsnew/3.11.rst:2591 msgid ":c:func:`!Py_SetPath`" msgstr "" -#: ../../whatsnew/3.11.rst:2592 msgid ":c:func:`!Py_SetProgramName`" msgstr "" -#: ../../whatsnew/3.11.rst:2593 msgid ":c:func:`!Py_SetPythonHome`" msgstr "" -#: ../../whatsnew/3.11.rst:2594 msgid ":c:func:`!Py_SetStandardStreamEncoding`" msgstr "" -#: ../../whatsnew/3.11.rst:2595 msgid ":c:func:`!_Py_SetProgramFullPath`" msgstr "" -#: ../../whatsnew/3.11.rst:2597 msgid "" "Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization " "Configuration ` instead (:pep:`587`). (Contributed by Victor " "Stinner in :gh:`88279`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2601 msgid "" -"Deprecate the ``ob_shash`` member of the :c:type:`PyBytesObject`. " -"Use :c:func:`PyObject_Hash` instead. (Contributed by Inada Naoki " -"in :issue:`46864`.)" +"Deprecate the ``ob_shash`` member of the :c:type:`PyBytesObject`. Use :c:" +"func:`PyObject_Hash` instead. (Contributed by Inada Naoki in :issue:`46864`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2610 msgid "" "The following C APIs have been deprecated in earlier Python releases, and " "will be removed in Python 3.12." msgstr "" -#: ../../whatsnew/3.11.rst:2613 msgid ":c:func:`!PyUnicode_AS_DATA`" msgstr "" -#: ../../whatsnew/3.11.rst:2614 msgid ":c:func:`!PyUnicode_AS_UNICODE`" msgstr "" -#: ../../whatsnew/3.11.rst:2615 msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" msgstr "" -#: ../../whatsnew/3.11.rst:2616 msgid ":c:func:`!PyUnicode_AsUnicode`" msgstr "" -#: ../../whatsnew/3.11.rst:2617 msgid ":c:func:`!PyUnicode_FromUnicode`" msgstr "" -#: ../../whatsnew/3.11.rst:2618 msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" msgstr "" -#: ../../whatsnew/3.11.rst:2619 msgid ":c:func:`!PyUnicode_GET_SIZE`" msgstr "" -#: ../../whatsnew/3.11.rst:2620 msgid ":c:func:`!PyUnicode_GetSize`" msgstr "" -#: ../../whatsnew/3.11.rst:2621 msgid ":c:func:`!PyUnicode_IS_COMPACT`" msgstr "" -#: ../../whatsnew/3.11.rst:2622 msgid ":c:func:`!PyUnicode_IS_READY`" msgstr "" -#: ../../whatsnew/3.11.rst:2623 msgid ":c:func:`PyUnicode_READY`" msgstr "" -#: ../../whatsnew/3.11.rst:2624 msgid ":c:func:`!PyUnicode_WSTR_LENGTH`" msgstr "" -#: ../../whatsnew/3.11.rst:2625 msgid ":c:func:`!_PyUnicode_AsUnicode`" msgstr "" -#: ../../whatsnew/3.11.rst:2626 msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" msgstr "" -#: ../../whatsnew/3.11.rst:2627 msgid ":c:type:`PyUnicodeObject`" msgstr "" -#: ../../whatsnew/3.11.rst:2628 msgid ":c:func:`!PyUnicode_InternImmortal`" msgstr "" -#: ../../whatsnew/3.11.rst:2636 msgid "" ":c:func:`!PyFrame_BlockSetup` and :c:func:`!PyFrame_BlockPop` have been " "removed. (Contributed by Mark Shannon in :issue:`40222`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2640 msgid "Remove the following math macros using the ``errno`` variable:" msgstr "" -#: ../../whatsnew/3.11.rst:2642 msgid "``Py_ADJUST_ERANGE1()``" msgstr "" -#: ../../whatsnew/3.11.rst:2643 msgid "``Py_ADJUST_ERANGE2()``" msgstr "" -#: ../../whatsnew/3.11.rst:2644 msgid "``Py_OVERFLOWED()``" msgstr "" -#: ../../whatsnew/3.11.rst:2645 msgid "``Py_SET_ERANGE_IF_OVERFLOW()``" msgstr "" -#: ../../whatsnew/3.11.rst:2646 msgid "``Py_SET_ERRNO_ON_MATH_ERROR()``" msgstr "" -#: ../../whatsnew/3.11.rst:2648 msgid "(Contributed by Victor Stinner in :issue:`45412`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2650 msgid "" "Remove ``Py_UNICODE_COPY()`` and ``Py_UNICODE_FILL()`` macros, deprecated " "since Python 3.3. Use ``PyUnicode_CopyCharacters()`` or ``memcpy()`` " @@ -4333,62 +3564,50 @@ msgid "" "(Contributed by Victor Stinner in :issue:`41123`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2655 msgid "" "Remove the ``pystrhex.h`` header file. It only contains private functions. C " "extensions should only include the main ```` header file. " "(Contributed by Victor Stinner in :issue:`45434`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2659 msgid "" "Remove the ``Py_FORCE_DOUBLE()`` macro. It was used by the " -"``Py_IS_INFINITY()`` macro. (Contributed by Victor Stinner " -"in :issue:`45440`.)" +"``Py_IS_INFINITY()`` macro. (Contributed by Victor Stinner in :issue:" +"`45440`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2663 msgid "" "The following items are no longer available when :c:macro:`Py_LIMITED_API` " "is defined:" msgstr "" -#: ../../whatsnew/3.11.rst:2666 msgid ":c:func:`PyMarshal_WriteLongToFile`" msgstr "" -#: ../../whatsnew/3.11.rst:2667 msgid ":c:func:`PyMarshal_WriteObjectToFile`" msgstr "" -#: ../../whatsnew/3.11.rst:2668 msgid ":c:func:`PyMarshal_ReadObjectFromString`" msgstr "" -#: ../../whatsnew/3.11.rst:2669 msgid ":c:func:`PyMarshal_WriteObjectToString`" msgstr "" -#: ../../whatsnew/3.11.rst:2670 msgid "the ``Py_MARSHAL_VERSION`` macro" msgstr "" -#: ../../whatsnew/3.11.rst:2672 msgid "These are not part of the :ref:`limited API `." msgstr "" -#: ../../whatsnew/3.11.rst:2674 msgid "(Contributed by Victor Stinner in :issue:`45474`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2676 msgid "" "Exclude :c:func:`PyWeakref_GET_OBJECT` from the limited C API. It never " "worked since the :c:type:`!PyWeakReference` structure is opaque in the " "limited C API. (Contributed by Victor Stinner in :issue:`35134`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2681 msgid "" "Remove the ``PyHeapType_GET_MEMBERS()`` macro. It was exposed in the public " "C API by mistake, it must only be used by Python internally. Use the " @@ -4396,90 +3615,70 @@ msgid "" "in :issue:`40170`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2686 msgid "" "Remove the ``HAVE_PY_SET_53BIT_PRECISION`` macro (moved to the internal C " "API). (Contributed by Victor Stinner in :issue:`45412`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2692 msgid "" "Remove the :c:type:`Py_UNICODE` encoder APIs, as they have been deprecated " "since Python 3.3, are little used and are inefficient relative to the " "recommended alternatives." msgstr "" -#: ../../whatsnew/3.11.rst:2697 msgid "The removed functions are:" msgstr "" -#: ../../whatsnew/3.11.rst:2699 msgid ":func:`!PyUnicode_Encode`" msgstr "" -#: ../../whatsnew/3.11.rst:2700 msgid ":func:`!PyUnicode_EncodeASCII`" msgstr "" -#: ../../whatsnew/3.11.rst:2701 msgid ":func:`!PyUnicode_EncodeLatin1`" msgstr "" -#: ../../whatsnew/3.11.rst:2702 msgid ":func:`!PyUnicode_EncodeUTF7`" msgstr "" -#: ../../whatsnew/3.11.rst:2703 msgid ":func:`!PyUnicode_EncodeUTF8`" msgstr "" -#: ../../whatsnew/3.11.rst:2704 msgid ":func:`!PyUnicode_EncodeUTF16`" msgstr "" -#: ../../whatsnew/3.11.rst:2705 msgid ":func:`!PyUnicode_EncodeUTF32`" msgstr "" -#: ../../whatsnew/3.11.rst:2706 msgid ":func:`!PyUnicode_EncodeUnicodeEscape`" msgstr "" -#: ../../whatsnew/3.11.rst:2707 msgid ":func:`!PyUnicode_EncodeRawUnicodeEscape`" msgstr "" -#: ../../whatsnew/3.11.rst:2708 msgid ":func:`!PyUnicode_EncodeCharmap`" msgstr "" -#: ../../whatsnew/3.11.rst:2709 msgid ":func:`!PyUnicode_TranslateCharmap`" msgstr "" -#: ../../whatsnew/3.11.rst:2710 msgid ":func:`!PyUnicode_EncodeDecimal`" msgstr "" -#: ../../whatsnew/3.11.rst:2711 msgid ":func:`!PyUnicode_TransformDecimalToASCII`" msgstr "" -#: ../../whatsnew/3.11.rst:2713 msgid "" "See :pep:`624` for details and :pep:`migration guidance <624#alternative-" "apis>`. (Contributed by Inada Naoki in :issue:`44029`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2719 msgid "Notable changes in 3.11.4" msgstr "" -#: ../../whatsnew/3.11.rst:2722 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.11.rst:2724 msgid "" "The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " "have a new a *filter* argument that allows limiting tar features than may be " @@ -4490,15 +3689,12 @@ msgid "" "Viktorin in :pep:`706`.)" msgstr "" -#: ../../whatsnew/3.11.rst:2736 msgid "Notable changes in 3.11.5" msgstr "" -#: ../../whatsnew/3.11.rst:2739 msgid "OpenSSL" msgstr "" -#: ../../whatsnew/3.11.rst:2741 msgid "" "Windows builds and macOS installers from python.org now use OpenSSL 3.0." msgstr "" diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po index 2fd18ec..0d9c997 100644 --- a/whatsnew/3.12.po +++ b/whatsnew/3.12.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,34 +18,27 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.12.rst:4 msgid "What's New In Python 3.12" msgstr "" -#: ../../whatsnew/3.12.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.12.rst:6 msgid "Adam Turner" msgstr "" -#: ../../whatsnew/3.12.rst:48 msgid "" "This article explains the new features in Python 3.12, compared to 3.11. " -"Python 3.12 was released on October 2, 2023. For full details, see " -"the :ref:`changelog `." +"Python 3.12 was released on October 2, 2023. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.12.rst:54 msgid ":pep:`693` -- Python 3.12 Release Schedule" msgstr "" -#: ../../whatsnew/3.12.rst:57 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.12.rst:62 msgid "" "Python 3.12 is a stable release of the Python programming language, with a " "mix of changes to the language and the standard library. The library changes " @@ -59,17 +48,15 @@ msgid "" "improvements, and several modules have better performance." msgstr "" -#: ../../whatsnew/3.12.rst:69 msgid "" "The language changes focus on usability, as :term:`f-strings ` " "have had many limitations removed and 'Did you mean ...' suggestions " "continue to improve. The new :ref:`type parameter syntax ` and :keyword:`type` statement improve ergonomics for " -"using :term:`generic types ` and :term:`type aliases ` with static type checkers." +"pep695>` and :keyword:`type` statement improve ergonomics for using :term:" +"`generic types ` and :term:`type aliases ` with " +"static type checkers." msgstr "" -#: ../../whatsnew/3.12.rst:76 msgid "" "This article doesn't attempt to provide a complete specification of all new " "features, but instead gives a convenient overview. For full details, you " @@ -80,103 +67,83 @@ msgid "" "usually are not kept up-to-date once a feature has been fully implemented." msgstr "" -#: ../../whatsnew/3.12.rst:90 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.12.rst:92 msgid "" -":ref:`PEP 695 `, type parameter syntax and " -"the :keyword:`type` statement" +":ref:`PEP 695 `, type parameter syntax and the :keyword:" +"`type` statement" msgstr "" -#: ../../whatsnew/3.12.rst:94 msgid "New grammar features:" msgstr "" -#: ../../whatsnew/3.12.rst:96 msgid "" ":ref:`PEP 701 `, :term:`f-strings ` in the " "grammar" msgstr "" -#: ../../whatsnew/3.12.rst:98 msgid "Interpreter improvements:" msgstr "" -#: ../../whatsnew/3.12.rst:100 msgid "" ":ref:`PEP 684 `, a unique per-interpreter :term:`GIL " "`" msgstr "" -#: ../../whatsnew/3.12.rst:102 msgid ":ref:`PEP 669 `, low impact monitoring" msgstr "" -#: ../../whatsnew/3.12.rst:103 msgid "" -"`Improved 'Did you mean ...' suggestions `_ " -"for :exc:`NameError`, :exc:`ImportError`, and :exc:`SyntaxError` exceptions" +"`Improved 'Did you mean ...' suggestions `_ for :" +"exc:`NameError`, :exc:`ImportError`, and :exc:`SyntaxError` exceptions" msgstr "" -#: ../../whatsnew/3.12.rst:106 msgid "Python data model improvements:" msgstr "" -#: ../../whatsnew/3.12.rst:108 msgid "" ":ref:`PEP 688 `, using the :ref:`buffer protocol " "` from Python" msgstr "" -#: ../../whatsnew/3.12.rst:111 msgid "Significant improvements in the standard library:" msgstr "" -#: ../../whatsnew/3.12.rst:113 msgid "The :class:`pathlib.Path` class now supports subclassing" msgstr "" -#: ../../whatsnew/3.12.rst:114 msgid "The :mod:`os` module received several improvements for Windows support" msgstr "" -#: ../../whatsnew/3.12.rst:115 msgid "" -"A :ref:`command-line interface ` has been added to " -"the :mod:`sqlite3` module" +"A :ref:`command-line interface ` has been added to the :mod:" +"`sqlite3` module" msgstr "" -#: ../../whatsnew/3.12.rst:117 msgid "" -":func:`isinstance` checks against :func:`runtime-checkable protocols " -"` enjoy a speed up of between two and 20 times" +":func:`isinstance` checks against :func:`runtime-checkable protocols ` enjoy a speed up of between two and 20 times" msgstr "" -#: ../../whatsnew/3.12.rst:119 msgid "" "The :mod:`asyncio` package has had a number of performance improvements, " "with some benchmarks showing a 75% speed up." msgstr "" -#: ../../whatsnew/3.12.rst:121 msgid "" "A :ref:`command-line interface ` has been added to the :mod:`uuid` " "module" msgstr "" -#: ../../whatsnew/3.12.rst:123 msgid "" "Due to the changes in :ref:`PEP 701 `, producing tokens " "via the :mod:`tokenize` module is up to 64% faster." msgstr "" -#: ../../whatsnew/3.12.rst:126 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.12.rst:128 msgid "" "Replace the builtin :mod:`hashlib` implementations of SHA1, SHA3, SHA2-384, " "SHA2-512, and MD5 with formally verified code from the `HACL* `, unstable C API tier" msgstr "" -#: ../../whatsnew/3.12.rst:137 msgid ":ref:`PEP 683 `, immortal objects" msgstr "" -#: ../../whatsnew/3.12.rst:139 msgid "CPython implementation improvements:" msgstr "" -#: ../../whatsnew/3.12.rst:141 msgid ":ref:`PEP 709 `, comprehension inlining" msgstr "" -#: ../../whatsnew/3.12.rst:142 msgid ":ref:`CPython support ` for the Linux ``perf`` profiler" msgstr "" -#: ../../whatsnew/3.12.rst:143 msgid "Implement stack overflow protection on supported platforms" msgstr "" -#: ../../whatsnew/3.12.rst:145 msgid "New typing features:" msgstr "" -#: ../../whatsnew/3.12.rst:147 msgid "" ":ref:`PEP 692 `, using :class:`~typing.TypedDict` to " "annotate :term:`**kwargs `" msgstr "" -#: ../../whatsnew/3.12.rst:149 msgid ":ref:`PEP 698 `, :func:`typing.override` decorator" msgstr "" -#: ../../whatsnew/3.12.rst:151 msgid "Important deprecations, removals or restrictions:" msgstr "" -#: ../../whatsnew/3.12.rst:153 msgid "" ":pep:`623`: Remove ``wstr`` from Unicode objects in Python's C API, reducing " "the size of every :class:`str` object by at least 8 bytes." msgstr "" -#: ../../whatsnew/3.12.rst:156 msgid "" ":pep:`632`: Remove the :mod:`!distutils` package. See :pep:`the migration " "guide <0632#migration-advice>` for advice replacing the APIs it provided. " @@ -245,7 +199,6 @@ msgid "" "you still require it in Python 3.12 and beyond." msgstr "" -#: ../../whatsnew/3.12.rst:163 msgid "" ":gh:`95299`: Do not pre-install ``setuptools`` in virtual environments " "created with :mod:`venv`. This means that ``distutils``, ``setuptools``, " @@ -254,36 +207,30 @@ msgid "" "explanation>` virtual environment." msgstr "" -#: ../../whatsnew/3.12.rst:170 msgid "" "The :mod:`!asynchat`, :mod:`!asyncore`, and :mod:`!imp` modules have been " "removed, along with several :class:`unittest.TestCase` `method aliases " "`_." msgstr "" -#: ../../whatsnew/3.12.rst:176 ../../whatsnew/3.12.rst:1842 msgid "New Features" msgstr "" -#: ../../whatsnew/3.12.rst:181 msgid "PEP 695: Type Parameter Syntax" msgstr "" -#: ../../whatsnew/3.12.rst:183 msgid "" "Generic classes and functions under :pep:`484` were declared using a verbose " "syntax that left the scope of type parameters unclear and required explicit " "declarations of variance." msgstr "" -#: ../../whatsnew/3.12.rst:187 msgid "" -":pep:`695` introduces a new, more compact and explicit way to " -"create :ref:`generic classes ` and :ref:`functions ` and :ref:`functions `::" msgstr "" -#: ../../whatsnew/3.12.rst:190 msgid "" "def max[T](args: Iterable[T]) -> T:\n" " ...\n" @@ -296,33 +243,27 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.12.rst:200 msgid "" "In addition, the PEP introduces a new way to declare :ref:`type aliases " "` using the :keyword:`type` statement, which creates an " "instance of :class:`~typing.TypeAliasType`::" msgstr "" -#: ../../whatsnew/3.12.rst:204 msgid "type Point = tuple[float, float]" msgstr "" -#: ../../whatsnew/3.12.rst:206 msgid "Type aliases can also be :ref:`generic `::" msgstr "" -#: ../../whatsnew/3.12.rst:208 msgid "type Point[T] = tuple[T, T]" msgstr "" -#: ../../whatsnew/3.12.rst:210 msgid "" -"The new syntax allows declaring :class:`~typing.TypeVarTuple` " -"and :class:`~typing.ParamSpec` parameters, as well " -"as :class:`~typing.TypeVar` parameters with bounds or constraints::" +"The new syntax allows declaring :class:`~typing.TypeVarTuple` and :class:" +"`~typing.ParamSpec` parameters, as well as :class:`~typing.TypeVar` " +"parameters with bounds or constraints::" msgstr "" -#: ../../whatsnew/3.12.rst:214 msgid "" "type IntFunc[**P] = Callable[P, int] # ParamSpec\n" "type LabeledTuple[*Ts] = tuple[str, *Ts] # TypeVarTuple\n" @@ -331,7 +272,6 @@ msgid "" "constraints" msgstr "" -#: ../../whatsnew/3.12.rst:219 msgid "" "The value of type aliases and the bound and constraints of type variables " "created through this syntax are evaluated only on demand (see :ref:`lazy " @@ -339,7 +279,6 @@ msgid "" "other types defined later in the file." msgstr "" -#: ../../whatsnew/3.12.rst:224 msgid "" "Type parameters declared through a type parameter list are visible within " "the scope of the declaration and any nested scopes, but not in the outer " @@ -349,7 +288,6 @@ msgid "" "detailed description of the runtime semantics of type parameters." msgstr "" -#: ../../whatsnew/3.12.rst:231 msgid "" "In order to support these scoping semantics, a new kind of scope is " "introduced, the :ref:`annotation scope `. Annotation " @@ -358,21 +296,17 @@ msgid "" "` will also be evaluated in annotation scopes." msgstr "" -#: ../../whatsnew/3.12.rst:237 msgid "See :pep:`695` for more details." msgstr "" -#: ../../whatsnew/3.12.rst:239 msgid "" "(PEP written by Eric Traut. Implementation by Jelle Zijlstra, Eric Traut, " "and others in :gh:`103764`.)" msgstr "" -#: ../../whatsnew/3.12.rst:245 msgid "PEP 701: Syntactic formalization of f-strings" msgstr "" -#: ../../whatsnew/3.12.rst:247 msgid "" ":pep:`701` lifts some restrictions on the usage of :term:`f-strings `. Expression components inside f-strings can now be any valid Python " @@ -381,7 +315,6 @@ msgid "" "sequences. Let's cover these in detail:" msgstr "" -#: ../../whatsnew/3.12.rst:253 msgid "" "Quote reuse: in Python 3.11, reusing the same quotes as the enclosing f-" "string raises a :exc:`SyntaxError`, forcing the user to either use other " @@ -389,7 +322,6 @@ msgid "" "uses single quotes). In Python 3.12, you can now do things like this:" msgstr "" -#: ../../whatsnew/3.12.rst:262 msgid "" "Note that before this change there was no explicit limit in how f-strings " "can be nested, but the fact that string quotes cannot be reused inside the " @@ -397,13 +329,11 @@ msgid "" "arbitrarily. In fact, this is the most nested f-string that could be written:" msgstr "" -#: ../../whatsnew/3.12.rst:270 msgid "" "As now f-strings can contain any valid Python expression inside expression " "components, it is now possible to nest f-strings arbitrarily:" msgstr "" -#: ../../whatsnew/3.12.rst:276 msgid "" "Multi-line expressions and comments: In Python 3.11, f-string expressions " "must be defined in a single line, even if the expression within the f-string " @@ -412,21 +342,17 @@ msgid "" "define f-strings spanning multiple lines, and add inline comments:" msgstr "" -#: ../../whatsnew/3.12.rst:290 msgid "" "Backslashes and unicode characters: before Python 3.12 f-string expressions " -"couldn't contain any ``\\`` character. This also affected " -"unicode :ref:`escape sequences ` (such as ``\\N{snowman}" -"``) as these contain the ``\\N`` part that previously could not be part of " -"expression components of f-strings. Now, you can define expressions like " -"this:" +"couldn't contain any ``\\`` character. This also affected unicode :ref:" +"`escape sequences ` (such as ``\\N{snowman}``) as these " +"contain the ``\\N`` part that previously could not be part of expression " +"components of f-strings. Now, you can define expressions like this:" msgstr "" -#: ../../whatsnew/3.12.rst:303 msgid "See :pep:`701` for more details." msgstr "" -#: ../../whatsnew/3.12.rst:305 msgid "" "As a positive side-effect of how this feature has been implemented (by " "parsing f-strings with :pep:`the PEG parser <617>`), now error messages for " @@ -434,7 +360,6 @@ msgid "" "example, in Python 3.11, the following f-string raises a :exc:`SyntaxError`:" msgstr "" -#: ../../whatsnew/3.12.rst:310 msgid "" ">>> my_string = f\"{x z y}\" + f\"{1 + 1}\"\n" " File \"\", line 1\n" @@ -443,7 +368,6 @@ msgid "" "SyntaxError: f-string: invalid syntax. Perhaps you forgot a comma?" msgstr "" -#: ../../whatsnew/3.12.rst:318 msgid "" "but the error message doesn't include the exact location of the error within " "the line and also has the expression artificially surrounded by parentheses. " @@ -451,7 +375,6 @@ msgid "" "can be more precise and show the entire line:" msgstr "" -#: ../../whatsnew/3.12.rst:322 msgid "" ">>> my_string = f\"{x z y}\" + f\"{1 + 1}\"\n" " File \"\", line 1\n" @@ -460,18 +383,15 @@ msgid "" "SyntaxError: invalid syntax. Perhaps you forgot a comma?" msgstr "" -#: ../../whatsnew/3.12.rst:330 msgid "" "(Contributed by Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Cristián " "Maureira-Fredes and Marta Gómez in :gh:`102856`. PEP written by Pablo " "Galindo, Batuhan Taskaya, Lysandros Nikolaou and Marta Gómez)." msgstr "" -#: ../../whatsnew/3.12.rst:337 msgid "PEP 684: A Per-Interpreter GIL" msgstr "" -#: ../../whatsnew/3.12.rst:339 msgid "" ":pep:`684` introduces a per-interpreter :term:`GIL `, so that sub-interpreters may now be created with a unique GIL per " @@ -480,13 +400,11 @@ msgid "" "Python API is :pep:`anticipated for 3.13 <554>`." msgstr "" -#: ../../whatsnew/3.12.rst:345 msgid "" "Use the new :c:func:`Py_NewInterpreterFromConfig` function to create an " "interpreter with its own GIL:" msgstr "" -#: ../../whatsnew/3.12.rst:348 msgid "" "PyInterpreterConfig config = {\n" " .check_multi_interp_extensions = 1,\n" @@ -500,21 +418,17 @@ msgid "" "/* The new interpreter is now active in the current thread. */" msgstr "" -#: ../../whatsnew/3.12.rst:361 msgid "" "For further examples how to use the C-API for sub-interpreters with a per-" "interpreter GIL, see ``Modules/_xxsubinterpretersmodule.c``." msgstr "" -#: ../../whatsnew/3.12.rst:364 msgid "(Contributed by Eric Snow in :gh:`104210`, etc.)" msgstr "" -#: ../../whatsnew/3.12.rst:369 msgid "PEP 669: Low impact monitoring for CPython" msgstr "" -#: ../../whatsnew/3.12.rst:371 msgid "" ":pep:`669` defines a new :mod:`API ` for profilers, " "debuggers, and other tools to monitor events in CPython. It covers a wide " @@ -524,35 +438,28 @@ msgid "" "for details." msgstr "" -#: ../../whatsnew/3.12.rst:379 msgid "(Contributed by Mark Shannon in :gh:`103082`.)" msgstr "" -#: ../../whatsnew/3.12.rst:384 msgid "PEP 688: Making the buffer protocol accessible in Python" msgstr "" -#: ../../whatsnew/3.12.rst:386 msgid "" ":pep:`688` introduces a way to use the :ref:`buffer protocol " -"` from Python code. Classes that implement " -"the :meth:`~object.__buffer__` method are now usable as buffer types." +"` from Python code. Classes that implement the :meth:`~object." +"__buffer__` method are now usable as buffer types." msgstr "" -#: ../../whatsnew/3.12.rst:390 msgid "" "The new :class:`collections.abc.Buffer` ABC provides a standard way to " -"represent buffer objects, for example in type annotations. The " -"new :class:`inspect.BufferFlags` enum represents the flags that can be used " -"to customize buffer creation. (Contributed by Jelle Zijlstra " -"in :gh:`102500`.)" +"represent buffer objects, for example in type annotations. The new :class:" +"`inspect.BufferFlags` enum represents the flags that can be used to " +"customize buffer creation. (Contributed by Jelle Zijlstra in :gh:`102500`.)" msgstr "" -#: ../../whatsnew/3.12.rst:399 msgid "PEP 709: Comprehension inlining" msgstr "" -#: ../../whatsnew/3.12.rst:401 msgid "" "Dictionary, list, and set comprehensions are now inlined, rather than " "creating a new single-use function object for each execution of the " @@ -560,34 +467,29 @@ msgid "" "times. See :pep:`709` for further details." msgstr "" -#: ../../whatsnew/3.12.rst:406 msgid "" "Comprehension iteration variables remain isolated and don't overwrite a " "variable of the same name in the outer scope, nor are they visible after the " "comprehension. Inlining does result in a few visible behavior changes:" msgstr "" -#: ../../whatsnew/3.12.rst:410 msgid "" "There is no longer a separate frame for the comprehension in tracebacks, and " "tracing/profiling no longer shows the comprehension as a function call." msgstr "" -#: ../../whatsnew/3.12.rst:412 msgid "" "The :mod:`symtable` module will no longer produce child symbol tables for " "each comprehension; instead, the comprehension's locals will be included in " "the parent function's symbol table." msgstr "" -#: ../../whatsnew/3.12.rst:415 msgid "" "Calling :func:`locals` inside a comprehension now includes variables from " "outside the comprehension, and no longer includes the synthetic ``.0`` " "variable for the comprehension \"argument\"." msgstr "" -#: ../../whatsnew/3.12.rst:418 msgid "" "A comprehension iterating directly over ``locals()`` (e.g. ``[k for k in " "locals()]``) may see \"RuntimeError: dictionary changed size during " @@ -597,22 +499,18 @@ msgid "" "[k for k in keys]``." msgstr "" -#: ../../whatsnew/3.12.rst:425 msgid "(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.)" msgstr "" -#: ../../whatsnew/3.12.rst:428 msgid "Improved Error Messages" msgstr "" -#: ../../whatsnew/3.12.rst:430 msgid "" "Modules from the standard library are now potentially suggested as part of " "the error messages displayed by the interpreter when a :exc:`NameError` is " "raised to the top level. (Contributed by Pablo Galindo in :gh:`98254`.)" msgstr "" -#: ../../whatsnew/3.12.rst:439 msgid "" "Improve the error suggestion for :exc:`NameError` exceptions for instances. " "Now if a :exc:`NameError` is raised in a method and the instance has an " @@ -621,14 +519,12 @@ msgid "" "scope. (Contributed by Pablo Galindo in :gh:`99139`.)" msgstr "" -#: ../../whatsnew/3.12.rst:459 msgid "" "Improve the :exc:`SyntaxError` error message when the user types ``import x " -"from y`` instead of ``from y import x``. (Contributed by Pablo Galindo " -"in :gh:`98931`.)" +"from y`` instead of ``from y import x``. (Contributed by Pablo Galindo in :" +"gh:`98931`.)" msgstr "" -#: ../../whatsnew/3.12.rst:469 msgid "" ":exc:`ImportError` exceptions raised from failed ``from import " "`` statements now include suggestions for the value of ```` " @@ -636,34 +532,28 @@ msgid "" "in :gh:`91058`.)" msgstr "" -#: ../../whatsnew/3.12.rst:480 msgid "New Features Related to Type Hints" msgstr "" -#: ../../whatsnew/3.12.rst:482 msgid "" -"This section covers major changes affecting :pep:`type hints <484>` and " -"the :mod:`typing` module." +"This section covers major changes affecting :pep:`type hints <484>` and the :" +"mod:`typing` module." msgstr "" -#: ../../whatsnew/3.12.rst:488 msgid "PEP 692: Using ``TypedDict`` for more precise ``**kwargs`` typing" msgstr "" -#: ../../whatsnew/3.12.rst:490 msgid "" "Typing ``**kwargs`` in a function signature as introduced by :pep:`484` " "allowed for valid annotations only in cases where all of the ``**kwargs`` " "were of the same type." msgstr "" -#: ../../whatsnew/3.12.rst:494 msgid "" ":pep:`692` specifies a more precise way of typing ``**kwargs`` by relying on " "typed dictionaries::" msgstr "" -#: ../../whatsnew/3.12.rst:497 msgid "" "from typing import TypedDict, Unpack\n" "\n" @@ -674,19 +564,15 @@ msgid "" "def foo(**kwargs: Unpack[Movie]): ..." msgstr "" -#: ../../whatsnew/3.12.rst:505 msgid "See :pep:`692` for more details." msgstr "" -#: ../../whatsnew/3.12.rst:507 msgid "(Contributed by Franek Magiera in :gh:`103629`.)" msgstr "" -#: ../../whatsnew/3.12.rst:512 msgid "PEP 698: Override Decorator for Static Typing" msgstr "" -#: ../../whatsnew/3.12.rst:514 msgid "" "A new decorator :func:`typing.override` has been added to the :mod:`typing` " "module. It indicates to type checkers that the method is intended to " @@ -695,11 +581,9 @@ msgid "" "class does not in fact do so." msgstr "" -#: ../../whatsnew/3.12.rst:520 msgid "Example::" msgstr "" -#: ../../whatsnew/3.12.rst:522 msgid "" "from typing import override\n" "\n" @@ -718,45 +602,37 @@ msgid "" " return \"red\"" msgstr "" -#: ../../whatsnew/3.12.rst:538 msgid "See :pep:`698` for more details." msgstr "" -#: ../../whatsnew/3.12.rst:540 msgid "(Contributed by Steven Troxler in :gh:`101561`.)" msgstr "" -#: ../../whatsnew/3.12.rst:543 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.12.rst:545 msgid "" "The parser now raises :exc:`SyntaxError` when parsing source code containing " "null bytes. (Contributed by Pablo Galindo in :gh:`96670`.)" msgstr "" -#: ../../whatsnew/3.12.rst:548 msgid "" "A backslash-character pair that is not a valid escape sequence now generates " "a :exc:`SyntaxWarning`, instead of :exc:`DeprecationWarning`. For example, " "``re.compile(\"\\d+\\.\\d+\")`` now emits a :exc:`SyntaxWarning` " "(``\"\\d\"`` is an invalid escape sequence, use raw strings for regular " -"expression: ``re.compile(r\"\\d+\\.\\d+\")``). In a future Python " -"version, :exc:`SyntaxError` will eventually be raised, instead " -"of :exc:`SyntaxWarning`. (Contributed by Victor Stinner in :gh:`98401`.)" +"expression: ``re.compile(r\"\\d+\\.\\d+\")``). In a future Python version, :" +"exc:`SyntaxError` will eventually be raised, instead of :exc:" +"`SyntaxWarning`. (Contributed by Victor Stinner in :gh:`98401`.)" msgstr "" -#: ../../whatsnew/3.12.rst:557 msgid "" "Octal escapes with value larger than ``0o377`` (ex: ``\"\\477\"``), " -"deprecated in Python 3.11, now produce a :exc:`SyntaxWarning`, instead " -"of :exc:`DeprecationWarning`. In a future Python version they will be " -"eventually a :exc:`SyntaxError`. (Contributed by Victor Stinner " -"in :gh:`98401`.)" +"deprecated in Python 3.11, now produce a :exc:`SyntaxWarning`, instead of :" +"exc:`DeprecationWarning`. In a future Python version they will be eventually " +"a :exc:`SyntaxError`. (Contributed by Victor Stinner in :gh:`98401`.)" msgstr "" -#: ../../whatsnew/3.12.rst:563 msgid "" "Variables used in the target part of comprehensions that are not stored to " "can now be used in assignment expressions (``:=``). For example, in ``[(b := " @@ -766,66 +642,57 @@ msgid "" "(Contributed by Nikita Sobolev in :gh:`100581`.)" msgstr "" -#: ../../whatsnew/3.12.rst:570 msgid "" "Exceptions raised in a class or type's ``__set_name__`` method are no longer " "wrapped by a :exc:`RuntimeError`. Context information is added to the " "exception as a :pep:`678` note. (Contributed by Irit Katriel in :gh:`77757`.)" msgstr "" -#: ../../whatsnew/3.12.rst:574 msgid "" "When a ``try-except*`` construct handles the entire :exc:`ExceptionGroup` " -"and raises one other exception, that exception is no longer wrapped in " -"an :exc:`ExceptionGroup`. Also changed in version 3.11.4. (Contributed by " -"Irit Katriel in :gh:`103590`.)" +"and raises one other exception, that exception is no longer wrapped in an :" +"exc:`ExceptionGroup`. Also changed in version 3.11.4. (Contributed by Irit " +"Katriel in :gh:`103590`.)" msgstr "" -#: ../../whatsnew/3.12.rst:579 msgid "" "The Garbage Collector now runs only on the eval breaker mechanism of the " "Python bytecode evaluation loop instead of object allocations. The GC can " "also run when :c:func:`PyErr_CheckSignals` is called so C extensions that " "need to run for a long time without executing any Python code also have a " -"chance to execute the GC periodically. (Contributed by Pablo Galindo " -"in :gh:`97922`.)" +"chance to execute the GC periodically. (Contributed by Pablo Galindo in :gh:" +"`97922`.)" msgstr "" -#: ../../whatsnew/3.12.rst:586 msgid "" "All builtin and extension callables expecting boolean parameters now accept " "arguments of any type instead of just :class:`bool` and :class:`int`. " "(Contributed by Serhiy Storchaka in :gh:`60203`.)" msgstr "" -#: ../../whatsnew/3.12.rst:590 msgid "" ":class:`memoryview` now supports the half-float type (the \"e\" format " "code). (Contributed by Donghee Na and Antoine Pitrou in :gh:`90751`.)" msgstr "" -#: ../../whatsnew/3.12.rst:593 msgid "" ":class:`slice` objects are now hashable, allowing them to be used as dict " "keys and set items. (Contributed by Will Bradshaw, Furkan Onder, and Raymond " "Hettinger in :gh:`101264`.)" msgstr "" -#: ../../whatsnew/3.12.rst:596 msgid "" ":func:`sum` now uses Neumaier summation to improve accuracy and " "commutativity when summing floats or mixed ints and floats. (Contributed by " "Raymond Hettinger in :gh:`100425`.)" msgstr "" -#: ../../whatsnew/3.12.rst:600 msgid "" ":func:`ast.parse` now raises :exc:`SyntaxError` instead of :exc:`ValueError` " "when parsing source code containing null bytes. (Contributed by Pablo " "Galindo in :gh:`96670`.)" msgstr "" -#: ../../whatsnew/3.12.rst:604 msgid "" "The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " "have a new a *filter* argument that allows limiting tar features than may be " @@ -835,51 +702,41 @@ msgid "" "(Contributed by Petr Viktorin in :pep:`706`.)" msgstr "" -#: ../../whatsnew/3.12.rst:612 msgid "" ":class:`types.MappingProxyType` instances are now hashable if the underlying " "mapping is hashable. (Contributed by Serhiy Storchaka in :gh:`87995`.)" msgstr "" -#: ../../whatsnew/3.12.rst:616 msgid "" "Add :ref:`support for the perf profiler ` through the new " -"environment variable :envvar:`PYTHONPERFSUPPORT` and command-line " -"option :option:`-X perf <-X>`, as well as the " -"new :func:`sys.activate_stack_trampoline`, :func:`sys.deactivate_stack_trampoline`, " -"and :func:`sys.is_stack_trampoline_active` functions. (Design by Pablo " -"Galindo. Contributed by Pablo Galindo and Christian Heimes with " -"contributions from Gregory P. Smith [Google] and Mark Shannon " -"in :gh:`96123`.)" +"environment variable :envvar:`PYTHONPERFSUPPORT` and command-line option :" +"option:`-X perf <-X>`, as well as the new :func:`sys." +"activate_stack_trampoline`, :func:`sys.deactivate_stack_trampoline`, and :" +"func:`sys.is_stack_trampoline_active` functions. (Design by Pablo Galindo. " +"Contributed by Pablo Galindo and Christian Heimes with contributions from " +"Gregory P. Smith [Google] and Mark Shannon in :gh:`96123`.)" msgstr "" -#: ../../whatsnew/3.12.rst:628 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.12.rst:630 msgid "None." msgstr "" -#: ../../whatsnew/3.12.rst:634 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.12.rst:637 msgid "array" msgstr "" -#: ../../whatsnew/3.12.rst:639 msgid "" -"The :class:`array.array` class now supports subscripting, making it " -"a :term:`generic type`. (Contributed by Jelle Zijlstra in :gh:`98658`.)" +"The :class:`array.array` class now supports subscripting, making it a :term:" +"`generic type`. (Contributed by Jelle Zijlstra in :gh:`98658`.)" msgstr "" -#: ../../whatsnew/3.12.rst:643 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.12.rst:645 msgid "" "The performance of writing to sockets in :mod:`asyncio` has been " "significantly improved. ``asyncio`` now avoids unnecessary copying when " @@ -887,201 +744,167 @@ msgid "" "supports it. (Contributed by Kumar Aditya in :gh:`91166`.)" msgstr "" -#: ../../whatsnew/3.12.rst:650 msgid "" -"Add :func:`asyncio.eager_task_factory` " -"and :func:`asyncio.create_eager_task_factory` functions to allow opting an " -"event loop in to eager task execution, making some use-cases 2x to 5x " -"faster. (Contributed by Jacob Bower & Itamar Oren " -"in :gh:`102853`, :gh:`104140`, and :gh:`104138`)" +"Add :func:`asyncio.eager_task_factory` and :func:`asyncio." +"create_eager_task_factory` functions to allow opting an event loop in to " +"eager task execution, making some use-cases 2x to 5x faster. (Contributed by " +"Jacob Bower & Itamar Oren in :gh:`102853`, :gh:`104140`, and :gh:`104138`)" msgstr "" -#: ../../whatsnew/3.12.rst:655 msgid "" "On Linux, :mod:`asyncio` uses :class:`!asyncio.PidfdChildWatcher` by default " "if :func:`os.pidfd_open` is available and functional instead of :class:`!" "asyncio.ThreadedChildWatcher`. (Contributed by Kumar Aditya in :gh:`98024`.)" msgstr "" -#: ../../whatsnew/3.12.rst:660 msgid "" -"The event loop now uses the best available child watcher for each platform " -"(:class:`!asyncio.PidfdChildWatcher` if supported and :class:`!" -"asyncio.ThreadedChildWatcher` otherwise), so manually configuring a child " -"watcher is not recommended. (Contributed by Kumar Aditya in :gh:`94597`.)" +"The event loop now uses the best available child watcher for each platform (:" +"class:`!asyncio.PidfdChildWatcher` if supported and :class:`!asyncio." +"ThreadedChildWatcher` otherwise), so manually configuring a child watcher is " +"not recommended. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" -#: ../../whatsnew/3.12.rst:666 msgid "" "Add *loop_factory* parameter to :func:`asyncio.run` to allow specifying a " "custom event loop factory. (Contributed by Kumar Aditya in :gh:`99388`.)" msgstr "" -#: ../../whatsnew/3.12.rst:670 msgid "" "Add C implementation of :func:`asyncio.current_task` for 4x-6x speedup. " "(Contributed by Itamar Oren and Pranav Thulasiram Bhat in :gh:`100344`.)" msgstr "" -#: ../../whatsnew/3.12.rst:673 msgid "" -":func:`asyncio.iscoroutine` now returns ``False`` for generators " -"as :mod:`asyncio` does not support legacy generator-based coroutines. " -"(Contributed by Kumar Aditya in :gh:`102748`.)" +":func:`asyncio.iscoroutine` now returns ``False`` for generators as :mod:" +"`asyncio` does not support legacy generator-based coroutines. (Contributed " +"by Kumar Aditya in :gh:`102748`.)" msgstr "" -#: ../../whatsnew/3.12.rst:677 msgid "" ":func:`asyncio.wait` and :func:`asyncio.as_completed` now accepts generators " "yielding tasks. (Contributed by Kumar Aditya in :gh:`78530`.)" msgstr "" -#: ../../whatsnew/3.12.rst:682 msgid "calendar" msgstr "" -#: ../../whatsnew/3.12.rst:684 msgid "" "Add enums :data:`calendar.Month` and :data:`calendar.Day` defining months of " -"the year and days of the week. (Contributed by Prince Roshan " -"in :gh:`103636`.)" +"the year and days of the week. (Contributed by Prince Roshan in :gh:" +"`103636`.)" msgstr "" -#: ../../whatsnew/3.12.rst:689 msgid "csv" msgstr "" -#: ../../whatsnew/3.12.rst:691 msgid "" "Add :const:`csv.QUOTE_NOTNULL` and :const:`csv.QUOTE_STRINGS` flags to " -"provide finer grained control of ``None`` and empty strings " -"by :class:`~csv.reader` and :class:`~csv.writer` objects." +"provide finer grained control of ``None`` and empty strings by :class:`~csv." +"reader` and :class:`~csv.writer` objects." msgstr "" -#: ../../whatsnew/3.12.rst:696 msgid "dis" msgstr "" -#: ../../whatsnew/3.12.rst:698 msgid "" "Pseudo instruction opcodes (which are used by the compiler but do not appear " -"in executable bytecode) are now exposed in the :mod:`dis` " -"module. :opcode:`HAVE_ARGUMENT` is still relevant to real opcodes, but it is " -"not useful for pseudo instructions. Use the new :data:`dis.hasarg` " -"collection instead. (Contributed by Irit Katriel in :gh:`94216`.)" +"in executable bytecode) are now exposed in the :mod:`dis` module. :opcode:" +"`HAVE_ARGUMENT` is still relevant to real opcodes, but it is not useful for " +"pseudo instructions. Use the new :data:`dis.hasarg` collection instead. " +"(Contributed by Irit Katriel in :gh:`94216`.)" msgstr "" -#: ../../whatsnew/3.12.rst:706 msgid "" "Add the :data:`dis.hasexc` collection to signify instructions that set an " "exception handler. (Contributed by Irit Katriel in :gh:`94216`.)" msgstr "" -#: ../../whatsnew/3.12.rst:710 msgid "fractions" msgstr "" -#: ../../whatsnew/3.12.rst:712 msgid "" "Objects of type :class:`fractions.Fraction` now support float-style " "formatting. (Contributed by Mark Dickinson in :gh:`100161`.)" msgstr "" -#: ../../whatsnew/3.12.rst:716 msgid "importlib.resources" msgstr "" -#: ../../whatsnew/3.12.rst:718 msgid "" ":func:`importlib.resources.as_file` now supports resource directories. " "(Contributed by Jason R. Coombs in :gh:`97930`.)" msgstr "" -#: ../../whatsnew/3.12.rst:721 msgid "" "Rename first parameter of :func:`importlib.resources.files` to *anchor*. " "(Contributed by Jason R. Coombs in :gh:`100598`.)" msgstr "" -#: ../../whatsnew/3.12.rst:725 msgid "inspect" msgstr "" -#: ../../whatsnew/3.12.rst:727 msgid "" "Add :func:`inspect.markcoroutinefunction` to mark sync functions that return " "a :term:`coroutine` for use with :func:`inspect.iscoroutinefunction`. " "(Contributed by Carlton Gibson in :gh:`99247`.)" msgstr "" -#: ../../whatsnew/3.12.rst:731 msgid "" "Add :func:`inspect.getasyncgenstate` and :func:`inspect.getasyncgenlocals` " "for determining the current state of asynchronous generators. (Contributed " "by Thomas Krennwallner in :gh:`79940`.)" msgstr "" -#: ../../whatsnew/3.12.rst:735 msgid "" "The performance of :func:`inspect.getattr_static` has been considerably " "improved. Most calls to the function should be at least 2x faster than they " "were in Python 3.11. (Contributed by Alex Waygood in :gh:`103193`.)" msgstr "" -#: ../../whatsnew/3.12.rst:740 msgid "itertools" msgstr "" -#: ../../whatsnew/3.12.rst:742 msgid "" "Add :func:`itertools.batched` for collecting into even-sized tuples where " "the last batch may be shorter than the rest. (Contributed by Raymond " "Hettinger in :gh:`98363`.)" msgstr "" -#: ../../whatsnew/3.12.rst:747 msgid "math" msgstr "" -#: ../../whatsnew/3.12.rst:749 msgid "" "Add :func:`math.sumprod` for computing a sum of products. (Contributed by " "Raymond Hettinger in :gh:`100485`.)" msgstr "" -#: ../../whatsnew/3.12.rst:752 msgid "" "Extend :func:`math.nextafter` to include a *steps* argument for moving up or " "down multiple steps at a time. (Contributed by Matthias Goergens, Mark " "Dickinson, and Raymond Hettinger in :gh:`94906`.)" msgstr "" -#: ../../whatsnew/3.12.rst:757 msgid "os" msgstr "" -#: ../../whatsnew/3.12.rst:759 msgid "" -"Add :const:`os.PIDFD_NONBLOCK` to open a file descriptor for a process " -"with :func:`os.pidfd_open` in non-blocking mode. (Contributed by Kumar " -"Aditya in :gh:`93312`.)" +"Add :const:`os.PIDFD_NONBLOCK` to open a file descriptor for a process with :" +"func:`os.pidfd_open` in non-blocking mode. (Contributed by Kumar Aditya in :" +"gh:`93312`.)" msgstr "" -#: ../../whatsnew/3.12.rst:763 msgid "" ":class:`os.DirEntry` now includes an :meth:`os.DirEntry.is_junction` method " -"to check if the entry is a junction. (Contributed by Charles Machalow " -"in :gh:`99547`.)" +"to check if the entry is a junction. (Contributed by Charles Machalow in :gh:" +"`99547`.)" msgstr "" -#: ../../whatsnew/3.12.rst:767 msgid "" "Add :func:`os.listdrives`, :func:`os.listvolumes` and :func:`os.listmounts` " "functions on Windows for enumerating drives, volumes and mount points. " "(Contributed by Steve Dower in :gh:`102519`.)" msgstr "" -#: ../../whatsnew/3.12.rst:771 msgid "" ":func:`os.stat` and :func:`os.lstat` are now more accurate on Windows. The " "``st_birthtime`` field will now be filled with the creation time of the " @@ -1090,73 +913,61 @@ msgid "" "with other platforms). ``st_dev`` may be up to 64 bits and ``st_ino`` up to " "128 bits depending on your file system, and ``st_rdev`` is always set to " "zero rather than incorrect values. Both functions may be significantly " -"faster on newer releases of Windows. (Contributed by Steve Dower " -"in :gh:`99726`.)" +"faster on newer releases of Windows. (Contributed by Steve Dower in :gh:" +"`99726`.)" msgstr "" -#: ../../whatsnew/3.12.rst:782 msgid "os.path" msgstr "" -#: ../../whatsnew/3.12.rst:784 msgid "" "Add :func:`os.path.isjunction` to check if a given path is a junction. " "(Contributed by Charles Machalow in :gh:`99547`.)" msgstr "" -#: ../../whatsnew/3.12.rst:787 msgid "" "Add :func:`os.path.splitroot` to split a path into a triad ``(drive, root, " "tail)``. (Contributed by Barney Gale in :gh:`101000`.)" msgstr "" -#: ../../whatsnew/3.12.rst:791 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.12.rst:793 msgid "" -"Add support for subclassing :class:`pathlib.PurePath` " -"and :class:`pathlib.Path`, plus their Posix- and Windows-specific variants. " -"Subclasses may override the :meth:`pathlib.PurePath.with_segments` method to " -"pass information between path instances." +"Add support for subclassing :class:`pathlib.PurePath` and :class:`pathlib." +"Path`, plus their Posix- and Windows-specific variants. Subclasses may " +"override the :meth:`pathlib.PurePath.with_segments` method to pass " +"information between path instances." msgstr "" -#: ../../whatsnew/3.12.rst:798 msgid "" "Add :meth:`pathlib.Path.walk` for walking the directory trees and generating " "all file or directory names within them, similar to :func:`os.walk`. " "(Contributed by Stanislav Zmiev in :gh:`90385`.)" msgstr "" -#: ../../whatsnew/3.12.rst:802 msgid "" "Add *walk_up* optional parameter to :meth:`pathlib.PurePath.relative_to` to " "allow the insertion of ``..`` entries in the result; this behavior is more " -"consistent with :func:`os.path.relpath`. (Contributed by Domenico Ragusa " -"in :gh:`84538`.)" +"consistent with :func:`os.path.relpath`. (Contributed by Domenico Ragusa in :" +"gh:`84538`.)" msgstr "" -#: ../../whatsnew/3.12.rst:807 msgid "" -"Add :meth:`pathlib.Path.is_junction` as a proxy " -"to :func:`os.path.isjunction`. (Contributed by Charles Machalow " -"in :gh:`99547`.)" +"Add :meth:`pathlib.Path.is_junction` as a proxy to :func:`os.path." +"isjunction`. (Contributed by Charles Machalow in :gh:`99547`.)" msgstr "" -#: ../../whatsnew/3.12.rst:810 msgid "" -"Add *case_sensitive* optional parameter " -"to :meth:`pathlib.Path.glob`, :meth:`pathlib.Path.rglob` " -"and :meth:`pathlib.PurePath.match` for matching the path's case sensitivity, " -"allowing for more precise control over the matching process." +"Add *case_sensitive* optional parameter to :meth:`pathlib.Path.glob`, :meth:" +"`pathlib.Path.rglob` and :meth:`pathlib.PurePath.match` for matching the " +"path's case sensitivity, allowing for more precise control over the matching " +"process." msgstr "" -#: ../../whatsnew/3.12.rst:815 msgid "platform" msgstr "" -#: ../../whatsnew/3.12.rst:817 msgid "" "Add support for detecting Windows 11 and Windows Server releases past 2012. " "Previously, lookups on Windows Server platforms newer than Windows Server " @@ -1164,38 +975,31 @@ msgid "" "Dower in :gh:`89545`.)" msgstr "" -#: ../../whatsnew/3.12.rst:823 msgid "pdb" msgstr "" -#: ../../whatsnew/3.12.rst:825 msgid "" "Add convenience variables to hold values temporarily for debug session and " "provide quick access to values like the current frame or the return value. " "(Contributed by Tian Gao in :gh:`103693`.)" msgstr "" -#: ../../whatsnew/3.12.rst:831 msgid "random" msgstr "" -#: ../../whatsnew/3.12.rst:833 msgid "" -"Add :func:`random.binomialvariate`. (Contributed by Raymond Hettinger " -"in :gh:`81620`.)" +"Add :func:`random.binomialvariate`. (Contributed by Raymond Hettinger in :gh:" +"`81620`.)" msgstr "" -#: ../../whatsnew/3.12.rst:836 msgid "" "Add a default of ``lambd=1.0`` to :func:`random.expovariate`. (Contributed " "by Raymond Hettinger in :gh:`100234`.)" msgstr "" -#: ../../whatsnew/3.12.rst:840 msgid "shutil" msgstr "" -#: ../../whatsnew/3.12.rst:842 msgid "" ":func:`shutil.make_archive` now passes the *root_dir* argument to custom " "archivers which support it. In this case it no longer temporarily changes " @@ -1203,7 +1007,6 @@ msgid "" "archiving. (Contributed by Serhiy Storchaka in :gh:`74696`.)" msgstr "" -#: ../../whatsnew/3.12.rst:848 msgid "" ":func:`shutil.rmtree` now accepts a new argument *onexc* which is an error " "handler like *onerror* but which expects an exception instance rather than a " @@ -1211,14 +1014,12 @@ msgid "" "Katriel in :gh:`102828`.)" msgstr "" -#: ../../whatsnew/3.12.rst:853 msgid "" ":func:`shutil.which` now consults the *PATHEXT* environment variable to find " "matches within *PATH* on Windows even when the given *cmd* includes a " "directory component. (Contributed by Charles Machalow in :gh:`103179`.)" msgstr "" -#: ../../whatsnew/3.12.rst:858 msgid "" ":func:`shutil.which` will call ``NeedCurrentDirectoryForExePathW`` when " "querying for executables on Windows to determine if the current working " @@ -1226,97 +1027,80 @@ msgid "" "Machalow in :gh:`103179`.)" msgstr "" -#: ../../whatsnew/3.12.rst:863 msgid "" ":func:`shutil.which` will return a path matching the *cmd* with a component " "from ``PATHEXT`` prior to a direct match elsewhere in the search path on " "Windows. (Contributed by Charles Machalow in :gh:`103179`.)" msgstr "" -#: ../../whatsnew/3.12.rst:869 ../../whatsnew/3.12.rst:1546 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.12.rst:871 msgid "" "Add a :ref:`command-line interface `. (Contributed by Erlend E. " "Aasland in :gh:`77617`.)" msgstr "" -#: ../../whatsnew/3.12.rst:874 msgid "" -"Add the :attr:`sqlite3.Connection.autocommit` attribute " -"to :class:`sqlite3.Connection` and the *autocommit* parameter " -"to :func:`sqlite3.connect` to control :pep:`249`-compliant :ref:`transaction " -"handling `. (Contributed by Erlend " -"E. Aasland in :gh:`83638`.)" +"Add the :attr:`sqlite3.Connection.autocommit` attribute to :class:`sqlite3." +"Connection` and the *autocommit* parameter to :func:`sqlite3.connect` to " +"control :pep:`249`-compliant :ref:`transaction handling `. (Contributed by Erlend E. Aasland in :gh:`83638`.)" msgstr "" -#: ../../whatsnew/3.12.rst:881 msgid "" -"Add *entrypoint* keyword-only parameter " -"to :meth:`sqlite3.Connection.load_extension`, for overriding the SQLite " -"extension entry point. (Contributed by Erlend E. Aasland in :gh:`103015`.)" +"Add *entrypoint* keyword-only parameter to :meth:`sqlite3.Connection." +"load_extension`, for overriding the SQLite extension entry point. " +"(Contributed by Erlend E. Aasland in :gh:`103015`.)" msgstr "" -#: ../../whatsnew/3.12.rst:886 msgid "" -"Add :meth:`sqlite3.Connection.getconfig` " -"and :meth:`sqlite3.Connection.setconfig` to :class:`sqlite3.Connection` to " -"make configuration changes to a database connection. (Contributed by Erlend " -"E. Aasland in :gh:`103489`.)" +"Add :meth:`sqlite3.Connection.getconfig` and :meth:`sqlite3.Connection." +"setconfig` to :class:`sqlite3.Connection` to make configuration changes to a " +"database connection. (Contributed by Erlend E. Aasland in :gh:`103489`.)" msgstr "" -#: ../../whatsnew/3.12.rst:892 msgid "statistics" msgstr "" -#: ../../whatsnew/3.12.rst:894 msgid "" "Extend :func:`statistics.correlation` to include as a ``ranked`` method for " "computing the Spearman correlation of ranked data. (Contributed by Raymond " "Hettinger in :gh:`95861`.)" msgstr "" -#: ../../whatsnew/3.12.rst:899 msgid "sys" msgstr "" -#: ../../whatsnew/3.12.rst:901 msgid "" "Add the :mod:`sys.monitoring` namespace to expose the new :ref:`PEP 669 " -"` monitoring API. (Contributed by Mark Shannon " -"in :gh:`103082`.)" +"` monitoring API. (Contributed by Mark Shannon in :gh:" +"`103082`.)" msgstr "" -#: ../../whatsnew/3.12.rst:905 msgid "" -"Add :func:`sys.activate_stack_trampoline` " -"and :func:`sys.deactivate_stack_trampoline` for activating and deactivating " -"stack profiler trampolines, and :func:`sys.is_stack_trampoline_active` for " -"querying if stack profiler trampolines are active. (Contributed by Pablo " -"Galindo and Christian Heimes with contributions from Gregory P. Smith " -"[Google] and Mark Shannon in :gh:`96123`.)" +"Add :func:`sys.activate_stack_trampoline` and :func:`sys." +"deactivate_stack_trampoline` for activating and deactivating stack profiler " +"trampolines, and :func:`sys.is_stack_trampoline_active` for querying if " +"stack profiler trampolines are active. (Contributed by Pablo Galindo and " +"Christian Heimes with contributions from Gregory P. Smith [Google] and Mark " +"Shannon in :gh:`96123`.)" msgstr "" -#: ../../whatsnew/3.12.rst:914 msgid "" "Add :data:`sys.last_exc` which holds the last unhandled exception that was " "raised (for post-mortem debugging use cases). Deprecate the three fields " -"that have the same information in its legacy " -"form: :data:`sys.last_type`, :data:`sys.last_value` " -"and :data:`sys.last_traceback`. (Contributed by Irit Katriel " -"in :gh:`102778`.)" +"that have the same information in its legacy form: :data:`sys.last_type`, :" +"data:`sys.last_value` and :data:`sys.last_traceback`. (Contributed by Irit " +"Katriel in :gh:`102778`.)" msgstr "" -#: ../../whatsnew/3.12.rst:920 ../../whatsnew/3.12.rst:1741 msgid "" ":func:`sys._current_exceptions` now returns a mapping from thread-id to an " "exception instance, rather than to a ``(typ, exc, tb)`` tuple. (Contributed " "by Irit Katriel in :gh:`103176`.)" msgstr "" -#: ../../whatsnew/3.12.rst:924 msgid "" ":func:`sys.setrecursionlimit` and :func:`sys.getrecursionlimit`. The " "recursion limit now applies only to Python code. Builtin functions do not " @@ -1324,39 +1108,32 @@ msgid "" "prevents recursion from causing a virtual machine crash." msgstr "" -#: ../../whatsnew/3.12.rst:930 msgid "tempfile" msgstr "" -#: ../../whatsnew/3.12.rst:932 msgid "" "The :class:`tempfile.NamedTemporaryFile` function has a new optional " "parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)" msgstr "" -#: ../../whatsnew/3.12.rst:934 msgid "" ":func:`tempfile.mkdtemp` now always returns an absolute path, even if the " "argument provided to the *dir* parameter is a relative path." msgstr "" -#: ../../whatsnew/3.12.rst:938 msgid "threading" msgstr "" -#: ../../whatsnew/3.12.rst:940 msgid "" -"Add :func:`threading.settrace_all_threads` " -"and :func:`threading.setprofile_all_threads` that allow to set tracing and " -"profiling functions in all running threads in addition to the calling one. " -"(Contributed by Pablo Galindo in :gh:`93503`.)" +"Add :func:`threading.settrace_all_threads` and :func:`threading." +"setprofile_all_threads` that allow to set tracing and profiling functions in " +"all running threads in addition to the calling one. (Contributed by Pablo " +"Galindo in :gh:`93503`.)" msgstr "" -#: ../../whatsnew/3.12.rst:946 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.12.rst:948 msgid "" "``tkinter.Canvas.coords()`` now flattens its arguments. It now accepts not " "only coordinates as separate arguments (``x1, y1, x2, y2, ...``) and a " @@ -1366,48 +1143,40 @@ msgid "" "in :gh:`94473`.)" msgstr "" -#: ../../whatsnew/3.12.rst:957 msgid "tokenize" msgstr "" -#: ../../whatsnew/3.12.rst:959 msgid "" "The :mod:`tokenize` module includes the changes introduced in :pep:`701`. " -"(Contributed by Marta Gómez Macías and Pablo Galindo in :gh:`102856`.) " -"See :ref:`whatsnew312-porting-to-python312` for more information on the " -"changes to the :mod:`tokenize` module." +"(Contributed by Marta Gómez Macías and Pablo Galindo in :gh:`102856`.) See :" +"ref:`whatsnew312-porting-to-python312` for more information on the changes " +"to the :mod:`tokenize` module." msgstr "" -#: ../../whatsnew/3.12.rst:965 msgid "types" msgstr "" -#: ../../whatsnew/3.12.rst:967 msgid "" -"Add :func:`types.get_original_bases` to allow for further introspection " -"of :ref:`user-defined-generics` when subclassed. (Contributed by James " -"Hilton-Balfe and Alex Waygood in :gh:`101827`.)" +"Add :func:`types.get_original_bases` to allow for further introspection of :" +"ref:`user-defined-generics` when subclassed. (Contributed by James Hilton-" +"Balfe and Alex Waygood in :gh:`101827`.)" msgstr "" -#: ../../whatsnew/3.12.rst:974 msgid "typing" msgstr "" -#: ../../whatsnew/3.12.rst:976 msgid "" -":func:`isinstance` checks against :func:`runtime-checkable protocols " -"` now use :func:`inspect.getattr_static` rather " -"than :func:`hasattr` to lookup whether attributes exist. This means that " -"descriptors and :meth:`~object.__getattr__` methods are no longer " -"unexpectedly evaluated during ``isinstance()`` checks against runtime-" -"checkable protocols. However, it may also mean that some objects which used " -"to be considered instances of a runtime-checkable protocol may no longer be " -"considered instances of that protocol on Python 3.12+, and vice versa. Most " -"users are unlikely to be affected by this change. (Contributed by Alex " -"Waygood in :gh:`102433`.)" +":func:`isinstance` checks against :func:`runtime-checkable protocols ` now use :func:`inspect.getattr_static` rather than :func:" +"`hasattr` to lookup whether attributes exist. This means that descriptors " +"and :meth:`~object.__getattr__` methods are no longer unexpectedly evaluated " +"during ``isinstance()`` checks against runtime-checkable protocols. However, " +"it may also mean that some objects which used to be considered instances of " +"a runtime-checkable protocol may no longer be considered instances of that " +"protocol on Python 3.12+, and vice versa. Most users are unlikely to be " +"affected by this change. (Contributed by Alex Waygood in :gh:`102433`.)" msgstr "" -#: ../../whatsnew/3.12.rst:987 msgid "" "The members of a runtime-checkable protocol are now considered \"frozen\" at " "runtime as soon as the class has been created. Monkey-patching attributes " @@ -1415,7 +1184,6 @@ msgid "" "on :func:`isinstance` checks comparing objects to the protocol. For example::" msgstr "" -#: ../../whatsnew/3.12.rst:992 msgid "" ">>> from typing import Protocol, runtime_checkable\n" ">>> @runtime_checkable\n" @@ -1436,56 +1204,47 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/3.12.rst:1009 msgid "" "This change was made in order to speed up ``isinstance()`` checks against " "runtime-checkable protocols." msgstr "" -#: ../../whatsnew/3.12.rst:1012 msgid "" "The performance profile of :func:`isinstance` checks against :func:`runtime-" "checkable protocols ` has changed significantly. " "Most ``isinstance()`` checks against protocols with only a few members " "should be at least 2x faster than in 3.11, and some may be 20x faster or " "more. However, ``isinstance()`` checks against protocols with many members " -"may be slower than in Python 3.11. (Contributed by Alex Waygood " -"in :gh:`74690` and :gh:`103193`.)" +"may be slower than in Python 3.11. (Contributed by Alex Waygood in :gh:" +"`74690` and :gh:`103193`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1020 msgid "" "All :data:`typing.TypedDict` and :data:`typing.NamedTuple` classes now have " "the ``__orig_bases__`` attribute. (Contributed by Adrian Garcia Badaracco " "in :gh:`103699`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1024 msgid "" "Add ``frozen_default`` parameter to :func:`typing.dataclass_transform`. " "(Contributed by Erik De Bonte in :gh:`99957`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1028 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.12.rst:1030 msgid "" "The Unicode database has been updated to version 15.0.0. (Contributed by " "Benjamin Peterson in :gh:`96734`)." msgstr "" -#: ../../whatsnew/3.12.rst:1034 ../../whatsnew/3.12.rst:1586 msgid "unittest" msgstr "" -#: ../../whatsnew/3.12.rst:1036 msgid "" "Add a ``--durations`` command line option, showing the N slowest test cases::" msgstr "" -#: ../../whatsnew/3.12.rst:1038 msgid "" "python3 -m unittest --durations=3 lib.tests.test_threading\n" ".....\n" @@ -1502,187 +1261,155 @@ msgid "" "OK (skipped=3)" msgstr "" -#: ../../whatsnew/3.12.rst:1052 msgid "(Contributed by Giampaolo Rodola in :gh:`48330`)" msgstr "" -#: ../../whatsnew/3.12.rst:1055 msgid "uuid" msgstr "" -#: ../../whatsnew/3.12.rst:1057 msgid "" "Add a :ref:`command-line interface `. (Contributed by Adam Chhina " "in :gh:`88597`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1062 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.12.rst:1064 msgid "" "Remove ``wstr`` and ``wstr_length`` members from Unicode objects. It reduces " "object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by " "Inada Naoki in :gh:`92536`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1068 msgid "" "Add experimental support for using the BOLT binary optimizer in the build " "process, which improves performance by 1-5%. (Contributed by Kevin " "Modzelewski in :gh:`90536` and tuned by Donghee Na in :gh:`101525`)" msgstr "" -#: ../../whatsnew/3.12.rst:1072 msgid "" -"Speed up the regular expression substitution (functions :func:`re.sub` " -"and :func:`re.subn` and corresponding :class:`!re.Pattern` methods) for " +"Speed up the regular expression substitution (functions :func:`re.sub` and :" +"func:`re.subn` and corresponding :class:`!re.Pattern` methods) for " "replacement strings containing group references by 2--3 times. (Contributed " "by Serhiy Storchaka in :gh:`91524`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1077 msgid "" "Speed up :class:`asyncio.Task` creation by deferring expensive string " "formatting. (Contributed by Itamar Oren in :gh:`103793`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1080 msgid "" "The :func:`tokenize.tokenize` and :func:`tokenize.generate_tokens` functions " -"are up to 64% faster as a side effect of the changes required to " -"cover :pep:`701` in the :mod:`tokenize` module. (Contributed by Marta Gómez " -"Macías and Pablo Galindo in :gh:`102856`.)" +"are up to 64% faster as a side effect of the changes required to cover :pep:" +"`701` in the :mod:`tokenize` module. (Contributed by Marta Gómez Macías and " +"Pablo Galindo in :gh:`102856`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1085 msgid "" -"Speed up :func:`super` method calls and attribute loads via the " -"new :opcode:`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer and " -"Vladimir Matveev in :gh:`103497`.)" +"Speed up :func:`super` method calls and attribute loads via the new :opcode:" +"`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer and Vladimir " +"Matveev in :gh:`103497`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1091 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.12.rst:1093 msgid "" -"Remove the :opcode:`!LOAD_METHOD` instruction. It has been merged " -"into :opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the " -"old :opcode:`!LOAD_METHOD` instruction if the low bit of its oparg is set. " -"(Contributed by Ken Jin in :gh:`93429`.)" +"Remove the :opcode:`!LOAD_METHOD` instruction. It has been merged into :" +"opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the old :opcode:" +"`!LOAD_METHOD` instruction if the low bit of its oparg is set. (Contributed " +"by Ken Jin in :gh:`93429`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1098 msgid "" "Remove the :opcode:`!JUMP_IF_FALSE_OR_POP` and :opcode:`!" -"JUMP_IF_TRUE_OR_POP` instructions. (Contributed by Irit Katriel " -"in :gh:`102859`.)" +"JUMP_IF_TRUE_OR_POP` instructions. (Contributed by Irit Katriel in :gh:" +"`102859`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1101 msgid "" -"Remove the :opcode:`!PRECALL` instruction. (Contributed by Mark Shannon " -"in :gh:`92925`.)" +"Remove the :opcode:`!PRECALL` instruction. (Contributed by Mark Shannon in :" +"gh:`92925`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1104 msgid "" "Add the :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions. " "(Contributed by Mark Shannon in :gh:`94163`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1107 msgid "" "Add the :opcode:`CALL_INTRINSIC_1` instructions. (Contributed by Mark " "Shannon in :gh:`99005`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1110 msgid "" "Add the :opcode:`CALL_INTRINSIC_2` instruction. (Contributed by Irit Katriel " "in :gh:`101799`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1113 msgid "" "Add the :opcode:`CLEANUP_THROW` instruction. (Contributed by Brandt Bucher " "in :gh:`90997`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1116 msgid "" -"Add the :opcode:`!END_SEND` instruction. (Contributed by Mark Shannon " -"in :gh:`103082`.)" +"Add the :opcode:`!END_SEND` instruction. (Contributed by Mark Shannon in :gh:" +"`103082`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1119 msgid "" "Add the :opcode:`LOAD_FAST_AND_CLEAR` instruction as part of the " "implementation of :pep:`709`. (Contributed by Carl Meyer in :gh:`101441`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1122 msgid "" "Add the :opcode:`LOAD_FAST_CHECK` instruction. (Contributed by Dennis " "Sweeney in :gh:`93143`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1125 msgid "" -"Add " -"the :opcode:`LOAD_FROM_DICT_OR_DEREF`, :opcode:`LOAD_FROM_DICT_OR_GLOBALS`, " -"and :opcode:`LOAD_LOCALS` opcodes as part of the implementation " -"of :pep:`695`. Remove the :opcode:`!LOAD_CLASSDEREF` opcode, which can be " -"replaced with :opcode:`LOAD_LOCALS` plus :opcode:`LOAD_FROM_DICT_OR_DEREF`. " -"(Contributed by Jelle Zijlstra in :gh:`103764`.)" +"Add the :opcode:`LOAD_FROM_DICT_OR_DEREF`, :opcode:" +"`LOAD_FROM_DICT_OR_GLOBALS`, and :opcode:`LOAD_LOCALS` opcodes as part of " +"the implementation of :pep:`695`. Remove the :opcode:`!LOAD_CLASSDEREF` " +"opcode, which can be replaced with :opcode:`LOAD_LOCALS` plus :opcode:" +"`LOAD_FROM_DICT_OR_DEREF`. (Contributed by Jelle Zijlstra in :gh:`103764`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1131 msgid "" "Add the :opcode:`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer " "and Vladimir Matveev in :gh:`103497`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1134 msgid "" -"Add the ``RETURN_CONST`` instruction. (Contributed by Wenyang Wang " -"in :gh:`101632`.)" +"Add the ``RETURN_CONST`` instruction. (Contributed by Wenyang Wang in :gh:" +"`101632`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1137 msgid "Demos and Tools" msgstr "" -#: ../../whatsnew/3.12.rst:1139 msgid "" "Remove the ``Tools/demo/`` directory which contained old demo scripts. A " "copy can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97681`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1144 msgid "" "Remove outdated example scripts of the ``Tools/scripts/`` directory. A copy " "can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97669`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1151 ../../whatsnew/3.12.rst:2144 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.12.rst:1153 -#: ../../deprecations/pending-removal-in-3.14.rst:4 msgid "" ":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" "argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " "(Contributed by Nikita Sobolev in :gh:`92248`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1158 msgid "" ":mod:`ast`: The following :mod:`ast` features have been deprecated in " "documentation since Python 3.8, now cause a :exc:`DeprecationWarning` to be " @@ -1690,65 +1417,43 @@ msgid "" "Python 3.14:" msgstr "" -#: ../../whatsnew/3.12.rst:1162 -#: ../../deprecations/pending-removal-in-3.14.rst:13 msgid ":class:`!ast.Num`" msgstr "" -#: ../../whatsnew/3.12.rst:1163 -#: ../../deprecations/pending-removal-in-3.14.rst:14 msgid ":class:`!ast.Str`" msgstr "" -#: ../../whatsnew/3.12.rst:1164 -#: ../../deprecations/pending-removal-in-3.14.rst:15 msgid ":class:`!ast.Bytes`" msgstr "" -#: ../../whatsnew/3.12.rst:1165 -#: ../../deprecations/pending-removal-in-3.14.rst:16 msgid ":class:`!ast.NameConstant`" msgstr "" -#: ../../whatsnew/3.12.rst:1166 -#: ../../deprecations/pending-removal-in-3.14.rst:17 msgid ":class:`!ast.Ellipsis`" msgstr "" -#: ../../whatsnew/3.12.rst:1168 -#: ../../deprecations/pending-removal-in-3.14.rst:19 msgid "" -"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka " -"in :gh:`90953`.)" +"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:" +"`90953`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1171 -#: ../../deprecations/pending-removal-in-3.14.rst:22 -#: ../../deprecations/pending-removal-in-3.16.rst:19 msgid ":mod:`asyncio`:" msgstr "" -#: ../../whatsnew/3.12.rst:1173 -#: ../../deprecations/pending-removal-in-3.14.rst:24 msgid "" "The child watcher classes :class:`!asyncio.MultiLoopChildWatcher`, :class:`!" -"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` " -"and :class:`!asyncio.SafeChildWatcher` are deprecated and will be removed in " -"Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` and :class:" +"`!asyncio.SafeChildWatcher` are deprecated and will be removed in Python " +"3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1179 -#: ../../deprecations/pending-removal-in-3.14.rst:30 msgid "" -":func:`!asyncio.set_child_watcher`, :func:`!" -"asyncio.get_child_watcher`, :meth:`!" -"asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" +":func:`!asyncio.set_child_watcher`, :func:`!asyncio.get_child_watcher`, :" +"meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" "asyncio.AbstractEventLoopPolicy.get_child_watcher` are deprecated and will " "be removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1185 -#: ../../deprecations/pending-removal-in-3.14.rst:36 msgid "" "The :meth:`~asyncio.get_event_loop` method of the default event loop policy " "now emits a :exc:`DeprecationWarning` if there is no current event loop set " @@ -1756,114 +1461,84 @@ msgid "" "Rossum in :gh:`100160`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1190 -#: ../../deprecations/pending-removal-in-future.rst:45 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " -"are deprecated and replaced by :data:`calendar.JANUARY` " -"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " -"in :gh:`103636`.)" +"are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." +"FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1194 msgid "" ":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " "Prefer :class:`Sequence` or :class:`collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, " -"or :class:`collections.abc.Buffer`. (Contributed by Shantanu Jain " -"in :gh:`91896`.)" +"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." +"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1199 msgid "" -":mod:`datetime`: :class:`datetime.datetime`'s :meth:`~datetime.datetime.utcnow` " -"and :meth:`~datetime.datetime.utcfromtimestamp` are deprecated and will be " -"removed in a future version. Instead, use timezone-aware objects to " -"represent datetimes in UTC: respectively, " -"call :meth:`~datetime.datetime.now` " -"and :meth:`~datetime.datetime.fromtimestamp` with the *tz* parameter set " -"to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)" +":mod:`datetime`: :class:`datetime.datetime`'s :meth:`~datetime.datetime." +"utcnow` and :meth:`~datetime.datetime.utcfromtimestamp` are deprecated and " +"will be removed in a future version. Instead, use timezone-aware objects to " +"represent datetimes in UTC: respectively, call :meth:`~datetime.datetime." +"now` and :meth:`~datetime.datetime.fromtimestamp` with the *tz* parameter " +"set to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1207 msgid "" -":mod:`email`: Deprecate the *isdst* parameter " -"in :func:`email.utils.localtime`. (Contributed by Alan Williams " -"in :gh:`72346`.)" +":mod:`email`: Deprecate the *isdst* parameter in :func:`email.utils." +"localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1210 msgid "" ":mod:`importlib.abc`: Deprecated the following classes, scheduled for " "removal in Python 3.14:" msgstr "" -#: ../../whatsnew/3.12.rst:1213 -#: ../../deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: ../../whatsnew/3.12.rst:1214 -#: ../../deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: ../../whatsnew/3.12.rst:1215 -#: ../../deprecations/pending-removal-in-3.14.rst:54 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: ../../whatsnew/3.12.rst:1217 -#: ../../deprecations/pending-removal-in-3.14.rst:56 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: ../../whatsnew/3.12.rst:1219 -#: ../../deprecations/pending-removal-in-3.14.rst:58 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: ../../whatsnew/3.12.rst:1220 -#: ../../deprecations/pending-removal-in-3.14.rst:59 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: ../../whatsnew/3.12.rst:1222 -#: ../../deprecations/pending-removal-in-3.14.rst:61 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1224 msgid "" ":mod:`itertools`: Deprecate the support for copy, deepcopy, and pickle " "operations, which is undocumented, inefficient, historically buggy, and " "inconsistent. This will be removed in 3.14 for a significant reduction in " -"code volume and maintenance burden. (Contributed by Raymond Hettinger " -"in :gh:`101588`.)" +"code volume and maintenance burden. (Contributed by Raymond Hettinger in :gh:" +"`101588`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1230 msgid "" ":mod:`multiprocessing`: In Python 3.14, the default :mod:`multiprocessing` " "start method will change to a safer one on Linux, BSDs, and other non-macOS " "POSIX platforms where ``'fork'`` is currently the default (:gh:`84559`). " "Adding a runtime warning about this was deemed too disruptive as the " -"majority of code is not expected to care. Use " -"the :func:`~multiprocessing.get_context` " -"or :func:`~multiprocessing.set_start_method` APIs to explicitly specify when " -"your code *requires* ``'fork'``. See :ref:`contexts and start methods " -"`." +"majority of code is not expected to care. Use the :func:`~multiprocessing." +"get_context` or :func:`~multiprocessing.set_start_method` APIs to explicitly " +"specify when your code *requires* ``'fork'``. See :ref:`contexts and start " +"methods `." msgstr "" -#: ../../whatsnew/3.12.rst:1240 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " -"are deprecated and will be removed in Python 3.14; " -"use :func:`importlib.util.find_spec` instead. (Contributed by Nikita Sobolev " -"in :gh:`97850`.)" +"are deprecated and will be removed in Python 3.14; use :func:`importlib.util." +"find_spec` instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1245 msgid "" ":mod:`pty`: The module has two undocumented ``master_open()`` and " "``slave_open()`` functions that have been deprecated since Python 2 but only " @@ -1871,11 +1546,9 @@ msgid "" "(Contributed by Soumendra Ganguly and Gregory P. Smith in :gh:`85984`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1250 msgid ":mod:`os`:" msgstr "" -#: ../../whatsnew/3.12.rst:1252 msgid "" "The ``st_ctime`` fields return by :func:`os.stat` and :func:`os.lstat` on " "Windows are deprecated. In a future release, they will contain the last " @@ -1884,48 +1557,40 @@ msgid "" "``st_birthtime`` field. (Contributed by Steve Dower in :gh:`99726`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1258 msgid "" -"On POSIX platforms, :func:`os.fork` can now raise " -"a :exc:`DeprecationWarning` when it can detect being called from a " -"multithreaded process. There has always been a fundamental incompatibility " -"with the POSIX platform when doing so. Even if such code *appeared* to work. " -"We added the warning to raise awareness as issues encountered by code doing " -"this are becoming more frequent. See the :func:`os.fork` documentation for " -"more details along with `this discussion on fork being incompatible with " -"threads `_ for *why* we're now surfacing this longstanding " +"On POSIX platforms, :func:`os.fork` can now raise a :exc:" +"`DeprecationWarning` when it can detect being called from a multithreaded " +"process. There has always been a fundamental incompatibility with the POSIX " +"platform when doing so. Even if such code *appeared* to work. We added the " +"warning to raise awareness as issues encountered by code doing this are " +"becoming more frequent. See the :func:`os.fork` documentation for more " +"details along with `this discussion on fork being incompatible with threads " +"`_ for *why* we're now surfacing this longstanding " "platform compatibility problem to developers." msgstr "" -#: ../../whatsnew/3.12.rst:1268 msgid "" -"When this warning appears due to usage of :mod:`multiprocessing` " -"or :mod:`concurrent.futures` the fix is to use a " -"different :mod:`multiprocessing` start method such as ``\"spawn\"`` or " -"``\"forkserver\"``." +"When this warning appears due to usage of :mod:`multiprocessing` or :mod:" +"`concurrent.futures` the fix is to use a different :mod:`multiprocessing` " +"start method such as ``\"spawn\"`` or ``\"forkserver\"``." msgstr "" -#: ../../whatsnew/3.12.rst:1272 msgid "" ":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree` is " -"deprecated; use *onexc* instead. (Contributed by Irit Katriel " -"in :gh:`102828`.)" +"deprecated; use *onexc* instead. (Contributed by Irit Katriel in :gh:" +"`102828`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1275 -#: ../../deprecations/pending-removal-in-3.14.rst:91 msgid ":mod:`sqlite3`:" msgstr "" -#: ../../whatsnew/3.12.rst:1277 msgid "" ":ref:`default adapters and converters ` are now " "deprecated. Instead, use the :ref:`sqlite3-adapter-converter-recipes` and " "tailor them to your needs. (Contributed by Erlend E. Aasland in :gh:`90016`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1283 msgid "" "In :meth:`~sqlite3.Cursor.execute`, :exc:`DeprecationWarning` is now emitted " "when :ref:`named placeholders ` are used together with " @@ -1935,42 +1600,33 @@ msgid "" "Erlend E. Aasland in :gh:`101698`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1290 msgid "" -":mod:`sys`: The :data:`sys.last_type`, :data:`sys.last_value` " -"and :data:`sys.last_traceback` fields are deprecated. " -"Use :data:`sys.last_exc` instead. (Contributed by Irit Katriel " -"in :gh:`102778`.)" +":mod:`sys`: The :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys." +"last_traceback` fields are deprecated. Use :data:`sys.last_exc` instead. " +"(Contributed by Irit Katriel in :gh:`102778`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1294 msgid "" ":mod:`tarfile`: Extracting tar archives without specifying *filter* is " "deprecated until Python 3.14, when ``'data'`` filter will become the " "default. See :ref:`tarfile-extraction-filter` for details." msgstr "" -#: ../../whatsnew/3.12.rst:1298 -#: ../../deprecations/pending-removal-in-3.15.rst:80 -#: ../../deprecations/pending-removal-in-3.17.rst:4 msgid ":mod:`typing`:" msgstr "" -#: ../../whatsnew/3.12.rst:1300 msgid "" -":class:`typing.Hashable` and :class:`typing.Sized`, aliases " -"for :class:`collections.abc.Hashable` and :class:`collections.abc.Sized` " -"respectively, are deprecated. (:gh:`94309`.)" +":class:`typing.Hashable` and :class:`typing.Sized`, aliases for :class:" +"`collections.abc.Hashable` and :class:`collections.abc.Sized` respectively, " +"are deprecated. (:gh:`94309`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1304 msgid "" -":class:`!typing.ByteString`, deprecated since Python 3.9, now causes " -"a :exc:`DeprecationWarning` to be emitted when it is used. (Contributed by " -"Alex Waygood in :gh:`91896`.)" +":class:`!typing.ByteString`, deprecated since Python 3.9, now causes a :exc:" +"`DeprecationWarning` to be emitted when it is used. (Contributed by Alex " +"Waygood in :gh:`91896`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1308 msgid "" ":mod:`xml.etree.ElementTree`: The module now emits :exc:`DeprecationWarning` " "when testing the truth value of an :class:`xml.etree.ElementTree.Element`. " @@ -1978,32 +1634,28 @@ msgid "" "implementation emitted nothing. (Contributed by Jacob Walls in :gh:`83122`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1314 msgid "" "The 3-arg signatures (type, value, traceback) of :meth:`coroutine throw() " -"`, :meth:`generator throw() ` " -"and :meth:`async generator throw() ` are deprecated and may be " -"removed in a future version of Python. Use the single-arg versions of these " -"functions instead. (Contributed by Ofey Chan in :gh:`89874`.)" +"`, :meth:`generator throw() ` and :meth:" +"`async generator throw() ` are deprecated and may be removed in " +"a future version of Python. Use the single-arg versions of these functions " +"instead. (Contributed by Ofey Chan in :gh:`89874`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1320 msgid "" ":exc:`DeprecationWarning` is now raised when :attr:`~module.__package__` on " -"a module differs from :attr:`__spec__.parent " -"` (previously it " -"was :exc:`ImportWarning`). (Contributed by Brett Cannon in :gh:`65961`.)" +"a module differs from :attr:`__spec__.parent ` (previously it was :exc:`ImportWarning`). (Contributed by Brett " +"Cannon in :gh:`65961`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1326 msgid "" "Setting :attr:`~module.__package__` or :attr:`~module.__cached__` on a " "module is deprecated, and will cease to be set or taken into consideration " -"by the import system in Python 3.14. (Contributed by Brett Cannon " -"in :gh:`65961`.)" +"by the import system in Python 3.14. (Contributed by Brett Cannon in :gh:" +"`65961`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1330 msgid "" "The bitwise inversion operator (``~``) on bool is deprecated. It will throw " "an error in Python 3.16. Use ``not`` for logical negation of bools instead. " @@ -2012,218 +1664,166 @@ msgid "" "Tim Hoffmann in :gh:`103487`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1336 msgid "" "Accessing :attr:`~codeobject.co_lnotab` on code objects was deprecated in " -"Python 3.10 via :pep:`626`, but it only got a " -"proper :exc:`DeprecationWarning` in 3.12. May be removed in 3.15. " -"(Contributed by Nikita Sobolev in :gh:`101866`.)" +"Python 3.10 via :pep:`626`, but it only got a proper :exc:" +"`DeprecationWarning` in 3.12. May be removed in 3.15. (Contributed by Nikita " +"Sobolev in :gh:`101866`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:2 msgid "Pending removal in Python 3.13" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:4 msgid "Modules (see :pep:`594`):" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:6 msgid ":mod:`!aifc`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:7 msgid ":mod:`!audioop`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:8 msgid ":mod:`!cgi`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:9 msgid ":mod:`!cgitb`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:10 msgid ":mod:`!chunk`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:11 msgid ":mod:`!crypt`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:12 msgid ":mod:`!imghdr`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:13 msgid ":mod:`!mailcap`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:14 msgid ":mod:`!msilib`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:15 msgid ":mod:`!nis`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:16 msgid ":mod:`!nntplib`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:17 msgid ":mod:`!ossaudiodev`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:18 msgid ":mod:`!pipes`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:19 msgid ":mod:`!sndhdr`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:20 msgid ":mod:`!spwd`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:21 msgid ":mod:`!sunau`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:22 msgid ":mod:`!telnetlib`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:23 msgid ":mod:`!uu`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:24 msgid ":mod:`!xdrlib`" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:26 msgid "Other modules:" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:28 msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:30 msgid "APIs:" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:32 msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:33 msgid "``locale.resetlocale()`` (:gh:`90817`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:34 msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:35 msgid ":func:`!unittest.findTestCases` (:gh:`50096`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:36 msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:37 msgid ":func:`!unittest.makeSuite` (:gh:`50096`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:38 msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:39 msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:40 msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:41 msgid ":mod:`importlib.resources` deprecated methods:" msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:43 msgid "``contents()``" -msgstr "``contents()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:44 msgid "``is_resource()``" -msgstr "``is_resource()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:45 msgid "``open_binary()``" -msgstr "``open_binary()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:46 msgid "``open_text()``" -msgstr "``open_text()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:47 msgid "``path()``" -msgstr "``path()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:48 msgid "``read_binary()``" -msgstr "``read_binary()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:49 msgid "``read_text()``" -msgstr "``read_text()``" +msgstr "" -#: ../../deprecations/pending-removal-in-3.13.rst:51 msgid "" "Use :func:`importlib.resources.files` instead. Refer to `importlib-" "resources: Migrating from Legacy `_ (:gh:`106531`)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:2 -#: ../../deprecations/pending-removal-in-3.14.rst:2 msgid "Pending removal in Python 3.14" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:9 msgid "" ":mod:`ast`: The following features have been deprecated in documentation " "since Python 3.8, now cause a :exc:`DeprecationWarning` to be emitted at " "runtime when they are accessed or used, and will be removed in Python 3.14:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:41 msgid "" ":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " "Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, " -"or :class:`collections.abc.Buffer`. (Contributed by Shantanu Jain " -"in :gh:`91896`.)" +"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." +"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:47 msgid "" -":mod:`email`: Deprecated the *isdst* parameter " -"in :func:`email.utils.localtime`. (Contributed by Alan Williams " -"in :gh:`72346`.)" +":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." +"localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:50 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:63 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -2231,181 +1831,143 @@ msgid "" "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:69 msgid "" ":mod:`multiprocessing`: The default start method will change to a safer one " "on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " "currently the default (:gh:`84559`). Adding a runtime warning about this was " "deemed too disruptive as the majority of code is not expected to care. Use " -"the :func:`~multiprocessing.get_context` " -"or :func:`~multiprocessing.set_start_method` APIs to explicitly specify when " -"your code *requires* ``'fork'``. See :ref:`multiprocessing-start-methods`." +"the :func:`~multiprocessing.get_context` or :func:`~multiprocessing." +"set_start_method` APIs to explicitly specify when your code *requires* " +"``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:77 msgid "" -":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` " -"and :meth:`~pathlib.PurePath.relative_to`: passing additional arguments is " -"deprecated." +":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." +"PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:81 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:86 msgid ":mod:`pty`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:88 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:89 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:93 msgid ":data:`!version` and :data:`!version_info`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:95 msgid "" -":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` " -"if :ref:`named placeholders ` are used and " -"*parameters* is a sequence instead of a :class:`dict`." +":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` if :" +"ref:`named placeholders ` are used and *parameters* is " +"a sequence instead of a :class:`dict`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:99 msgid "" ":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " "causes a :exc:`DeprecationWarning` to be emitted when it is used." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:102 msgid "" ":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " -"intended to be a public API. (Contributed by Gregory P. Smith " -"in :gh:`88168`.)" +"intended to be a public API. (Contributed by Gregory P. Smith in :gh:" +"`88168`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:2 -#: ../../deprecations/pending-removal-in-3.15.rst:2 msgid "Pending removal in Python 3.15" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:4 -#: ../../deprecations/pending-removal-in-3.16.rst:4 msgid "The import system:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:6 msgid "" -"Setting :attr:`~module.__cached__` on a module while failing to " -"set :attr:`__spec__.cached ` is " -"deprecated. In Python 3.15, :attr:`!__cached__` will cease to be set or take " -"into consideration by the import system or standard library. (:gh:`97879`)" +"Setting :attr:`~module.__cached__` on a module while failing to set :attr:" +"`__spec__.cached ` is deprecated. In " +"Python 3.15, :attr:`!__cached__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:11 msgid "" -"Setting :attr:`~module.__package__` on a module while failing to " -"set :attr:`__spec__.parent ` is " -"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " -"take into consideration by the import system or standard library. " -"(:gh:`97879`)" +"Setting :attr:`~module.__package__` on a module while failing to set :attr:" +"`__spec__.parent ` is deprecated. In " +"Python 3.15, :attr:`!__package__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:16 msgid ":mod:`ctypes`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:18 msgid "" "The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " "since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:21 msgid ":mod:`http.server`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:23 msgid "" "The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " "been deprecated since Python 3.13. No direct replacement exists. *Anything* " "is better than CGI to interface a web server with a request handler." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:29 msgid "" "The :option:`!--cgi` flag to the :program:`python -m http.server` command-" "line interface has been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:32 -#: ../../deprecations/pending-removal-in-future.rst:64 msgid ":mod:`importlib`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:34 msgid "``load_module()`` method: use ``exec_module()`` instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:36 msgid ":class:`locale`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:38 msgid "" "The :func:`~locale.getdefaultlocale` function has been deprecated since " -"Python 3.11. Its removal was originally planned for Python 3.13 " -"(:gh:`90817`), but has been postponed to Python 3.15. " -"Use :func:`~locale.getlocale`, :func:`~locale.setlocale`, " -"and :func:`~locale.getencoding` instead. (Contributed by Hugo van Kemenade " -"in :gh:`111187`.)" +"Python 3.11. Its removal was originally planned for Python 3.13 (:gh:" +"`90817`), but has been postponed to Python 3.15. Use :func:`~locale." +"getlocale`, :func:`~locale.setlocale`, and :func:`~locale.getencoding` " +"instead. (Contributed by Hugo van Kemenade in :gh:`111187`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:46 msgid ":mod:`pathlib`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:48 msgid "" -":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows." +":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. Use :" +"func:`os.path.isreserved` to detect reserved paths on Windows." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:52 msgid ":mod:`platform`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:54 msgid "" ":func:`~platform.java_ver` has been deprecated since Python 3.13. This " "function is only useful for Jython support, has a confusing API, and is " "largely untested." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:58 -#: ../../deprecations/pending-removal-in-3.16.rst:96 msgid ":mod:`sysconfig`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:60 msgid "" "The *check_home* argument of :func:`sysconfig.is_python_build` has been " "deprecated since Python 3.12." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:63 msgid ":mod:`threading`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:65 msgid "" ":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " "arguments has been deprecated since Python 3.14, as the Python version does " @@ -2413,11 +1975,9 @@ msgid "" "or keyword arguments, ignoring every argument." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:71 msgid ":mod:`types`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:73 msgid "" ":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " "deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " @@ -2425,15 +1985,13 @@ msgid "" "in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:82 msgid "" -"The undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " -"3.13. Use the class-based syntax or the functional syntax instead." +"The undocumented keyword argument syntax for creating :class:`~typing." +"NamedTuple` classes (for example, ``Point = NamedTuple(\"Point\", x=int, " +"y=int)``) has been deprecated since Python 3.13. Use the class-based syntax " +"or the functional syntax instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:88 msgid "" "When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " "to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " @@ -2442,108 +2000,86 @@ msgid "" "TypedDict(\"TD\", {})`` to create a TypedDict with zero field." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:95 msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:102 msgid "" -"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " -"and :meth:`~wave.Wave_read.getmarkers` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " -"deprecated since Python 3.13." +"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." +"Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" +"`~wave.Wave_write` classes have been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:107 msgid ":mod:`zipimport`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:109 msgid "" ":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " "3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " "by Jiahao Li in :gh:`125746`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:2 -#: ../../deprecations/pending-removal-in-3.16.rst:2 msgid "Pending removal in Python 3.16" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:6 msgid "" -"Setting :attr:`~module.__loader__` on a module while failing to " -"set :attr:`__spec__.loader ` is " -"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " -"taken into consideration by the import system or the standard library." +"Setting :attr:`~module.__loader__` on a module while failing to set :attr:" +"`__spec__.loader ` is deprecated. In " +"Python 3.16, :attr:`!__loader__` will cease to be set or taken into " +"consideration by the import system or the standard library." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:11 msgid ":mod:`array`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:13 msgid "" "The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " "documentation since Python 3.3 and at runtime since Python 3.13. Use the " "``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:21 msgid "" ":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " "Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " "by Jiahao Li and Kumar Aditya in :gh:`122875`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:26 msgid "" ":mod:`asyncio` policy system is deprecated and will be removed in Python " "3.16. In particular, the following classes and functions are deprecated:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:29 msgid ":class:`asyncio.AbstractEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:30 msgid ":class:`asyncio.DefaultEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:31 msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:32 msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:33 msgid ":func:`asyncio.get_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:34 msgid ":func:`asyncio.set_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:36 msgid "" "Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " "*loop_factory* to use the desired event loop implementation." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:39 msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:41 msgid "" "import asyncio\n" "\n" @@ -2553,16 +2089,12 @@ msgid "" "asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:48 msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:50 -#: ../../deprecations/pending-removal-in-future.rst:16 msgid ":mod:`builtins`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:52 msgid "" "Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " "deprecated since Python 3.12, as it produces surprising and unintuitive " @@ -2571,94 +2103,77 @@ msgid "" "underlying integer, convert to ``int`` explicitly (``~int(x)``)." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:59 msgid ":mod:`functools`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:61 msgid "" "Calling the Python implementation of :func:`functools.reduce` with " "*function* or *sequence* as keyword arguments has been deprecated since " "Python 3.14." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:64 msgid ":mod:`logging`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:66 msgid "" "Support for custom logging handlers with the *strm* argument is deprecated " "and scheduled for removal in Python 3.16. Define handlers with the *stream* " "argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:70 msgid ":mod:`mimetypes`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:72 msgid "" -"Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" +"Valid extensions start with a '.' or are empty for :meth:`mimetypes." +"MimeTypes.add_type`. Undotted extensions are deprecated and will raise a :" +"exc:`ValueError` in Python 3.16. (Contributed by Hugo van Kemenade in :gh:" +"`75223`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:78 msgid ":mod:`shutil`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:80 msgid "" "The :class:`!ExecError` exception has been deprecated since Python 3.14. It " "has not been used by any function in :mod:`!shutil` since Python 3.4, and is " "now an alias of :exc:`RuntimeError`." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:85 msgid ":mod:`symtable`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:87 msgid "" "The :meth:`Class.get_methods ` method has been " "deprecated since Python 3.14." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:90 msgid ":mod:`sys`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:92 msgid "" "The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " "since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:98 msgid "" "The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " "since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " "instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:102 msgid ":mod:`tarfile`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:104 msgid "" "The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " "deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:2 msgid "Pending removal in Python 3.17" msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:6 msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " @@ -2668,166 +2183,136 @@ msgid "" "of relying on private implementation details." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:2 -#: ../../deprecations/pending-removal-in-future.rst:2 msgid "Pending removal in future versions" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:4 msgid "" "The following APIs will be removed in the future, although there is " "currently no date scheduled for their removal." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:7 msgid ":mod:`argparse`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:9 msgid "" "Nesting argument groups and nesting mutually exclusive groups are deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:11 msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." +"Passing the undocumented keyword argument *prefix_chars* to :meth:`~argparse." +"ArgumentParser.add_argument_group` is now deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:14 msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:18 msgid "``bool(NotImplemented)``." -msgstr "``bool(NotImplemented)``." +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:22 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " "ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " "``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " -"if the numeric literal is immediately followed by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In a future release it will be changed to a syntax " -"error. (:gh:`87999`)" +"if the numeric literal is immediately followed by one of keywords :keyword:" +"`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :" +"keyword:`is` and :keyword:`or`. In a future release it will be changed to a " +"syntax error. (:gh:`87999`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:30 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:33 msgid "" -"Support for ``__float__()`` method returning a strict subclass " -"of :class:`float`: these methods will be required to return an instance " -"of :class:`float`." +"Support for ``__float__()`` method returning a strict subclass of :class:" +"`float`: these methods will be required to return an instance of :class:" +"`float`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:36 msgid "" -"Support for ``__complex__()`` method returning a strict subclass " -"of :class:`complex`: these methods will be required to return an instance " -"of :class:`complex`." +"Support for ``__complex__()`` method returning a strict subclass of :class:" +"`complex`: these methods will be required to return an instance of :class:" +"`complex`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:39 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:40 msgid "" -"Passing a complex number as the *real* or *imag* argument in " -"the :func:`complex` constructor is now deprecated; it should only be passed " -"as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" +"Passing a complex number as the *real* or *imag* argument in the :func:" +"`complex` constructor is now deprecated; it should only be passed as a " +"single positional argument. (Contributed by Serhiy Storchaka in :gh:" +"`109218`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:50 msgid "" -":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " -"(:gh:`133038`)" +":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" +"`133038`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:52 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:55 msgid ":mod:`datetime`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:57 msgid "" -":meth:`~datetime.datetime.utcnow`: use " -"``datetime.datetime.now(tz=datetime.UTC)``." +":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." +"UTC)``." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:59 msgid "" -":meth:`~datetime.datetime.utcfromtimestamp`: use " -"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." +":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." +"fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:62 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:66 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:69 msgid ":mod:`importlib.metadata`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:71 msgid "``EntryPoints`` tuple interface." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:72 msgid "Implicit ``None`` on return values." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:74 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:77 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:80 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:82 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:85 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -2836,110 +2321,86 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:92 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:94 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:97 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:99 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:100 msgid "" -":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " -"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" +"`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:104 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "``ssl.PROTOCOL_SSLv3``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLS``" -msgstr "``ssl.PROTOCOL_TLS``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "``ssl.PROTOCOL_TLSv1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "``ssl.PROTOCOL_TLSv1_1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:109 msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "``ssl.PROTOCOL_TLSv1_2``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.SSLv3``" -msgstr "``ssl.TLSVersion.SSLv3``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1``" -msgstr "``ssl.TLSVersion.TLSv1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:112 msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "``ssl.TLSVersion.TLSv1_1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:114 msgid ":mod:`threading` methods:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:116 msgid "" -":meth:`!threading.Condition.notifyAll`: " -"use :meth:`~threading.Condition.notify_all`." +":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." +"notify_all`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:117 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:118 msgid "" -":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " -"use :attr:`threading.Thread.daemon` attribute." +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" +"attr:`threading.Thread.daemon` attribute." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:120 msgid "" -":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " -"use :attr:`threading.Thread.name` attribute." +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" +"attr:`threading.Thread.name` attribute." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:123 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:125 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:127 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -2947,130 +2408,104 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:132 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:137 msgid "``splitattr()``" -msgstr "``splitattr()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:138 msgid "``splithost()``" -msgstr "``splithost()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:139 msgid "``splitnport()``" -msgstr "``splitnport()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:140 msgid "``splitpasswd()``" -msgstr "``splitpasswd()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:141 msgid "``splitport()``" -msgstr "``splitport()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:142 msgid "``splitquery()``" -msgstr "``splitquery()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:143 msgid "``splittag()``" -msgstr "``splittag()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:144 msgid "``splittype()``" -msgstr "``splittype()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:145 msgid "``splituser()``" -msgstr "``splituser()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:146 msgid "``splitvalue()``" -msgstr "``splitvalue()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:147 msgid "``to_bytes()``" -msgstr "``to_bytes()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:149 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:152 msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of " -"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " -"release it will always return ``True``. Prefer explicit ``len(elem)`` or " -"``elem is not None`` tests instead." +":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." +"etree.ElementTree.Element` is deprecated. In a future release it will always " +"return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " +"instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:157 msgid "" -":func:`sys._clear_type_cache` is deprecated: " -"use :func:`sys._clear_internal_caches` instead." +":func:`sys._clear_type_cache` is deprecated: use :func:`sys." +"_clear_internal_caches` instead." msgstr "" -#: ../../whatsnew/3.12.rst:1357 ../../whatsnew/3.12.rst:2241 msgid "Removed" msgstr "" -#: ../../whatsnew/3.12.rst:1360 msgid "asynchat and asyncore" msgstr "" -#: ../../whatsnew/3.12.rst:1362 msgid "" "These two modules have been removed according to the schedule in :pep:`594`, " "having been deprecated in Python 3.6. Use :mod:`asyncio` instead. " "(Contributed by Nikita Sobolev in :gh:`96580`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1369 msgid "configparser" msgstr "" -#: ../../whatsnew/3.12.rst:1371 msgid "" "Several names deprecated in the :mod:`configparser` way back in 3.2 have " "been removed per :gh:`89336`:" msgstr "" -#: ../../whatsnew/3.12.rst:1374 msgid "" ":class:`configparser.ParsingError` no longer has a ``filename`` attribute or " "argument. Use the ``source`` attribute and argument instead." msgstr "" -#: ../../whatsnew/3.12.rst:1376 msgid "" ":mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the " "shorter :class:`~configparser.ConfigParser` name instead." msgstr "" -#: ../../whatsnew/3.12.rst:1378 msgid "" -":class:`configparser.ConfigParser` no longer has a ``readfp`` method. " -"Use :meth:`~configparser.ConfigParser.read_file` instead." +":class:`configparser.ConfigParser` no longer has a ``readfp`` method. Use :" +"meth:`~configparser.ConfigParser.read_file` instead." msgstr "" -#: ../../whatsnew/3.12.rst:1384 msgid "distutils" msgstr "" -#: ../../whatsnew/3.12.rst:1386 msgid "" "Remove the :py:mod:`!distutils` package. It was deprecated in Python 3.10 " "by :pep:`632` \"Deprecate distutils module\". For projects still using " @@ -3079,17 +2514,14 @@ msgid "" "Victor Stinner in :gh:`92584`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1393 msgid "ensurepip" msgstr "" -#: ../../whatsnew/3.12.rst:1395 msgid "" "Remove the bundled setuptools wheel from :mod:`ensurepip`, and stop " "installing setuptools in environments created by :mod:`venv`." msgstr "" -#: ../../whatsnew/3.12.rst:1398 msgid "" "``pip (>= 22.1)`` does not require setuptools to be installed in the " "environment. ``setuptools``-based (and ``distutils``-based) packages can " @@ -3097,7 +2529,6 @@ msgid "" "the build environment it uses for building a package." msgstr "" -#: ../../whatsnew/3.12.rst:1404 msgid "" "``easy_install``, ``pkg_resources``, ``setuptools`` and ``distutils`` are no " "longer provided by default in environments created with ``venv`` or " @@ -3107,200 +2538,158 @@ msgid "" "(typically, using pip)." msgstr "" -#: ../../whatsnew/3.12.rst:1411 msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1414 msgid "enum" msgstr "" -#: ../../whatsnew/3.12.rst:1416 msgid "" "Remove :mod:`enum`'s ``EnumMeta.__getattr__``, which is no longer needed for " "enum attribute access. (Contributed by Ethan Furman in :gh:`95083`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1421 msgid "ftplib" msgstr "" -#: ../../whatsnew/3.12.rst:1423 msgid "" "Remove :mod:`ftplib`'s ``FTP_TLS.ssl_version`` class attribute: use the " "*context* parameter instead. (Contributed by Victor Stinner in :gh:`94172`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1428 msgid "gzip" msgstr "" -#: ../../whatsnew/3.12.rst:1430 msgid "" "Remove the ``filename`` attribute of :mod:`gzip`'s :class:`gzip.GzipFile`, " "deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute " "instead. In write mode, the ``filename`` attribute added ``'.gz'`` file " -"extension if it was not present. (Contributed by Victor Stinner " -"in :gh:`94196`.)" +"extension if it was not present. (Contributed by Victor Stinner in :gh:" +"`94196`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1437 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.12.rst:1439 msgid "" -"Remove the pure Python implementation " -"of :mod:`hashlib`'s :func:`hashlib.pbkdf2_hmac`, deprecated in Python 3.10. " -"Python 3.10 and newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL " -"version provides a C implementation of :func:`~hashlib.pbkdf2_hmac` which is " -"faster. (Contributed by Victor Stinner in :gh:`94199`.)" +"Remove the pure Python implementation of :mod:`hashlib`'s :func:`hashlib." +"pbkdf2_hmac`, deprecated in Python 3.10. Python 3.10 and newer requires " +"OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides a C implementation " +"of :func:`~hashlib.pbkdf2_hmac` which is faster. (Contributed by Victor " +"Stinner in :gh:`94199`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1446 ../../whatsnew/3.12.rst:1475 msgid "importlib" msgstr "" -#: ../../whatsnew/3.12.rst:1448 msgid "" "Many previously deprecated cleanups in :mod:`importlib` have now been " "completed:" msgstr "" -#: ../../whatsnew/3.12.rst:1451 msgid "" "References to, and support for :meth:`!module_repr` has been removed. " "(Contributed by Barry Warsaw in :gh:`97850`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1454 msgid "" "``importlib.util.set_package``, ``importlib.util.set_loader`` and " "``importlib.util.module_for_loader`` have all been removed. (Contributed by " "Brett Cannon and Nikita Sobolev in :gh:`65961` and :gh:`97850`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1458 msgid "" "Support for ``find_loader()`` and ``find_module()`` APIs have been removed. " "(Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1461 msgid "" "``importlib.abc.Finder``, ``pkgutil.ImpImporter``, and ``pkgutil.ImpLoader`` " "have been removed. (Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1467 ../../whatsnew/3.12.rst:1475 msgid "imp" msgstr "" -#: ../../whatsnew/3.12.rst:1469 msgid "" -"The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw " -"in :gh:`98040`.)" +"The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw in :" +"gh:`98040`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1472 msgid "To migrate, consult the following correspondence table:" msgstr "" -#: ../../whatsnew/3.12.rst:1477 msgid "``imp.NullImporter``" msgstr "" -#: ../../whatsnew/3.12.rst:1477 msgid "Insert ``None`` into ``sys.path_importer_cache``" msgstr "" -#: ../../whatsnew/3.12.rst:1478 msgid "``imp.cache_from_source()``" msgstr "" -#: ../../whatsnew/3.12.rst:1478 msgid ":func:`importlib.util.cache_from_source`" msgstr "" -#: ../../whatsnew/3.12.rst:1479 msgid "``imp.find_module()``" msgstr "" -#: ../../whatsnew/3.12.rst:1479 msgid ":func:`importlib.util.find_spec`" msgstr "" -#: ../../whatsnew/3.12.rst:1480 msgid "``imp.get_magic()``" msgstr "" -#: ../../whatsnew/3.12.rst:1480 msgid ":const:`importlib.util.MAGIC_NUMBER`" msgstr "" -#: ../../whatsnew/3.12.rst:1481 msgid "``imp.get_suffixes()``" msgstr "" -#: ../../whatsnew/3.12.rst:1481 msgid "" -":const:`importlib.machinery.SOURCE_SUFFIXES`, :const:`importlib.machinery.EXTENSION_SUFFIXES`, " -"and :const:`importlib.machinery.BYTECODE_SUFFIXES`" +":const:`importlib.machinery.SOURCE_SUFFIXES`, :const:`importlib.machinery." +"EXTENSION_SUFFIXES`, and :const:`importlib.machinery.BYTECODE_SUFFIXES`" msgstr "" -#: ../../whatsnew/3.12.rst:1482 msgid "``imp.get_tag()``" msgstr "" -#: ../../whatsnew/3.12.rst:1482 msgid ":attr:`sys.implementation.cache_tag `" msgstr "" -#: ../../whatsnew/3.12.rst:1483 msgid "``imp.load_module()``" msgstr "" -#: ../../whatsnew/3.12.rst:1483 msgid ":func:`importlib.import_module`" msgstr "" -#: ../../whatsnew/3.12.rst:1484 msgid "``imp.new_module(name)``" msgstr "" -#: ../../whatsnew/3.12.rst:1484 msgid "``types.ModuleType(name)``" msgstr "" -#: ../../whatsnew/3.12.rst:1485 msgid "``imp.reload()``" msgstr "" -#: ../../whatsnew/3.12.rst:1485 msgid ":func:`importlib.reload`" msgstr "" -#: ../../whatsnew/3.12.rst:1486 msgid "``imp.source_from_cache()``" msgstr "" -#: ../../whatsnew/3.12.rst:1486 msgid ":func:`importlib.util.source_from_cache`" msgstr "" -#: ../../whatsnew/3.12.rst:1487 msgid "``imp.load_source()``" msgstr "" -#: ../../whatsnew/3.12.rst:1487 msgid "*See below*" msgstr "" -#: ../../whatsnew/3.12.rst:1490 msgid "Replace ``imp.load_source()`` with::" msgstr "" -#: ../../whatsnew/3.12.rst:1492 msgid "" "import importlib.util\n" "import importlib.machinery\n" @@ -3317,123 +2706,100 @@ msgid "" " return module" msgstr "" -#: ../../whatsnew/3.12.rst:1505 msgid "Remove :mod:`!imp` functions and attributes with no replacements:" msgstr "" -#: ../../whatsnew/3.12.rst:1507 msgid "Undocumented functions:" msgstr "" -#: ../../whatsnew/3.12.rst:1509 msgid "``imp.init_builtin()``" msgstr "" -#: ../../whatsnew/3.12.rst:1510 msgid "``imp.load_compiled()``" msgstr "" -#: ../../whatsnew/3.12.rst:1511 msgid "``imp.load_dynamic()``" msgstr "" -#: ../../whatsnew/3.12.rst:1512 msgid "``imp.load_package()``" msgstr "" -#: ../../whatsnew/3.12.rst:1514 msgid "" "``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: the " "locking scheme has changed in Python 3.3 to per-module locks." msgstr "" -#: ../../whatsnew/3.12.rst:1516 msgid "" "``imp.find_module()`` constants: ``SEARCH_ERROR``, ``PY_SOURCE``, " "``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, " "``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``." msgstr "" -#: ../../whatsnew/3.12.rst:1521 msgid "io" msgstr "" -#: ../../whatsnew/3.12.rst:1523 msgid "" "Remove :mod:`io`'s ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated " -"in Python 3.10: just use :func:`open` instead. The :func:`open` " -"(:func:`io.open`) function is a built-in function. Since Python " -"3.10, :func:`!_pyio.open` is also a static method. (Contributed by Victor " -"Stinner in :gh:`94169`.)" +"in Python 3.10: just use :func:`open` instead. The :func:`open` (:func:`io." +"open`) function is a built-in function. Since Python 3.10, :func:`!_pyio." +"open` is also a static method. (Contributed by Victor Stinner in :gh:" +"`94169`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1530 msgid "locale" msgstr "" -#: ../../whatsnew/3.12.rst:1532 msgid "" "Remove :mod:`locale`'s :func:`!locale.format` function, deprecated in Python " "3.7: use :func:`locale.format_string` instead. (Contributed by Victor " "Stinner in :gh:`94226`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1537 msgid "smtpd" msgstr "" -#: ../../whatsnew/3.12.rst:1539 msgid "" -"The ``smtpd`` module has been removed according to the schedule " -"in :pep:`594`, having been deprecated in Python 3.4.7 and 3.5.4. Use " -"the :pypi:`aiosmtpd` PyPI module or any other :mod:`asyncio`-based server " -"instead. (Contributed by Oleg Iarygin in :gh:`93243`.)" +"The ``smtpd`` module has been removed according to the schedule in :pep:" +"`594`, having been deprecated in Python 3.4.7 and 3.5.4. Use the :pypi:" +"`aiosmtpd` PyPI module or any other :mod:`asyncio`-based server instead. " +"(Contributed by Oleg Iarygin in :gh:`93243`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1548 msgid "" "The following undocumented :mod:`sqlite3` features, deprecated in Python " "3.10, are now removed:" msgstr "" -#: ../../whatsnew/3.12.rst:1551 msgid "``sqlite3.enable_shared_cache()``" msgstr "" -#: ../../whatsnew/3.12.rst:1552 msgid "``sqlite3.OptimizedUnicode``" msgstr "" -#: ../../whatsnew/3.12.rst:1554 msgid "" "If a shared cache must be used, open the database in URI mode using the " "``cache=shared`` query parameter." msgstr "" -#: ../../whatsnew/3.12.rst:1557 msgid "" -"The ``sqlite3.OptimizedUnicode`` text factory has been an alias " -"for :class:`str` since Python 3.3. Code that previously set the text factory " -"to ``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the " +"The ``sqlite3.OptimizedUnicode`` text factory has been an alias for :class:" +"`str` since Python 3.3. Code that previously set the text factory to " +"``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the " "default value which is also ``str``." msgstr "" -#: ../../whatsnew/3.12.rst:1562 msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1565 msgid "ssl" msgstr "" -#: ../../whatsnew/3.12.rst:1567 msgid "" "Remove :mod:`ssl`'s :func:`!ssl.RAND_pseudo_bytes` function, deprecated in " "Python 3.6: use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. " "(Contributed by Victor Stinner in :gh:`94199`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1571 msgid "" "Remove the :func:`!ssl.match_hostname` function. It was deprecated in Python " "3.7. OpenSSL performs hostname matching since Python 3.7, Python no longer " @@ -3441,200 +2807,151 @@ msgid "" "Stinner in :gh:`94199`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1577 msgid "" "Remove the :func:`!ssl.wrap_socket` function, deprecated in Python 3.7: " -"instead, create a :class:`ssl.SSLContext` object and call " -"its :class:`ssl.SSLContext.wrap_socket` method. Any package that still " -"uses :func:`!ssl.wrap_socket` is broken and insecure. The function neither " -"sends a SNI TLS extension nor validates the server hostname. Code is subject " -"to :cwe:`295` (Improper Certificate Validation). (Contributed by Victor " -"Stinner in :gh:`94199`.)" +"instead, create a :class:`ssl.SSLContext` object and call its :class:`ssl." +"SSLContext.wrap_socket` method. Any package that still uses :func:`!ssl." +"wrap_socket` is broken and insecure. The function neither sends a SNI TLS " +"extension nor validates the server hostname. Code is subject to :cwe:`295` " +"(Improper Certificate Validation). (Contributed by Victor Stinner in :gh:" +"`94199`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1588 msgid "Remove many long-deprecated :mod:`unittest` features:" msgstr "" -#: ../../whatsnew/3.12.rst:1592 msgid "A number of :class:`~unittest.TestCase` method aliases:" msgstr "" -#: ../../whatsnew/3.12.rst:1595 msgid "Deprecated alias" msgstr "" -#: ../../whatsnew/3.12.rst:1595 msgid "Method Name" msgstr "" -#: ../../whatsnew/3.12.rst:1595 msgid "Deprecated in" msgstr "" -#: ../../whatsnew/3.12.rst:1597 msgid "``failUnless``" msgstr "" -#: ../../whatsnew/3.12.rst:1597 ../../whatsnew/3.12.rst:1604 msgid ":meth:`.assertTrue`" msgstr "" -#: ../../whatsnew/3.12.rst:1597 ../../whatsnew/3.12.rst:1598 -#: ../../whatsnew/3.12.rst:1599 ../../whatsnew/3.12.rst:1600 -#: ../../whatsnew/3.12.rst:1601 ../../whatsnew/3.12.rst:1602 -#: ../../whatsnew/3.12.rst:1603 msgid "3.1" msgstr "" -#: ../../whatsnew/3.12.rst:1598 msgid "``failIf``" msgstr "" -#: ../../whatsnew/3.12.rst:1598 msgid ":meth:`.assertFalse`" msgstr "" -#: ../../whatsnew/3.12.rst:1599 msgid "``failUnlessEqual``" msgstr "" -#: ../../whatsnew/3.12.rst:1599 ../../whatsnew/3.12.rst:1605 msgid ":meth:`.assertEqual`" msgstr "" -#: ../../whatsnew/3.12.rst:1600 msgid "``failIfEqual``" msgstr "" -#: ../../whatsnew/3.12.rst:1600 ../../whatsnew/3.12.rst:1606 msgid ":meth:`.assertNotEqual`" msgstr "" -#: ../../whatsnew/3.12.rst:1601 msgid "``failUnlessAlmostEqual``" msgstr "" -#: ../../whatsnew/3.12.rst:1601 ../../whatsnew/3.12.rst:1607 msgid ":meth:`.assertAlmostEqual`" msgstr "" -#: ../../whatsnew/3.12.rst:1602 msgid "``failIfAlmostEqual``" msgstr "" -#: ../../whatsnew/3.12.rst:1602 ../../whatsnew/3.12.rst:1608 msgid ":meth:`.assertNotAlmostEqual`" msgstr "" -#: ../../whatsnew/3.12.rst:1603 msgid "``failUnlessRaises``" msgstr "" -#: ../../whatsnew/3.12.rst:1603 msgid ":meth:`.assertRaises`" msgstr "" -#: ../../whatsnew/3.12.rst:1604 msgid "``assert_``" msgstr "" -#: ../../whatsnew/3.12.rst:1604 ../../whatsnew/3.12.rst:1605 -#: ../../whatsnew/3.12.rst:1606 ../../whatsnew/3.12.rst:1607 -#: ../../whatsnew/3.12.rst:1608 ../../whatsnew/3.12.rst:1609 -#: ../../whatsnew/3.12.rst:1610 msgid "3.2" msgstr "" -#: ../../whatsnew/3.12.rst:1605 msgid "``assertEquals``" msgstr "" -#: ../../whatsnew/3.12.rst:1606 msgid "``assertNotEquals``" msgstr "" -#: ../../whatsnew/3.12.rst:1607 msgid "``assertAlmostEquals``" msgstr "" -#: ../../whatsnew/3.12.rst:1608 msgid "``assertNotAlmostEquals``" msgstr "" -#: ../../whatsnew/3.12.rst:1609 msgid "``assertRegexpMatches``" msgstr "" -#: ../../whatsnew/3.12.rst:1609 msgid ":meth:`.assertRegex`" msgstr "" -#: ../../whatsnew/3.12.rst:1610 msgid "``assertRaisesRegexp``" msgstr "" -#: ../../whatsnew/3.12.rst:1610 msgid ":meth:`.assertRaisesRegex`" msgstr "" -#: ../../whatsnew/3.12.rst:1611 msgid "``assertNotRegexpMatches``" msgstr "" -#: ../../whatsnew/3.12.rst:1611 msgid ":meth:`.assertNotRegex`" msgstr "" -#: ../../whatsnew/3.12.rst:1611 msgid "3.5" msgstr "" -#: ../../whatsnew/3.12.rst:1614 msgid "" "You can use https://github.com/isidentical/teyit to automatically modernise " "your unit tests." msgstr "" -#: ../../whatsnew/3.12.rst:1617 msgid "" "Undocumented and broken :class:`~unittest.TestCase` method " "``assertDictContainsSubset`` (deprecated in Python 3.2)." msgstr "" -#: ../../whatsnew/3.12.rst:1620 msgid "" -"Undocumented :meth:`TestLoader.loadTestsFromModule " -"` parameter *use_load_tests* " -"(deprecated and ignored since Python 3.5)." +"Undocumented :meth:`TestLoader.loadTestsFromModule ` parameter *use_load_tests* (deprecated and ignored " +"since Python 3.5)." msgstr "" -#: ../../whatsnew/3.12.rst:1624 msgid "" "An alias of the :class:`~unittest.TextTestResult` class: ``_TextTestResult`` " "(deprecated in Python 3.2)." msgstr "" -#: ../../whatsnew/3.12.rst:1627 msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1630 msgid "webbrowser" msgstr "" -#: ../../whatsnew/3.12.rst:1632 msgid "" "Remove support for obsolete browsers from :mod:`webbrowser`. The removed " "browsers include: Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, " "Firebird, and Firefox versions 35 and below (:gh:`102871`)." msgstr "" -#: ../../whatsnew/3.12.rst:1637 msgid "xml.etree.ElementTree" msgstr "" -#: ../../whatsnew/3.12.rst:1639 msgid "" "Remove the ``ElementTree.Element.copy()`` method of the pure Python " "implementation, deprecated in Python 3.10, use the :func:`copy.copy` " @@ -3643,67 +2960,55 @@ msgid "" "Stinner in :gh:`94383`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1646 msgid "zipimport" msgstr "" -#: ../../whatsnew/3.12.rst:1648 msgid "" "Remove :mod:`zipimport`'s ``find_loader()`` and ``find_module()`` methods, " -"deprecated in Python 3.10: use the ``find_spec()`` method instead. " -"See :pep:`451` for the rationale. (Contributed by Victor Stinner " -"in :gh:`94379`.)" +"deprecated in Python 3.10: use the ``find_spec()`` method instead. See :pep:" +"`451` for the rationale. (Contributed by Victor Stinner in :gh:`94379`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1654 msgid "Others" msgstr "" -#: ../../whatsnew/3.12.rst:1656 msgid "" -"Remove the ``suspicious`` rule from the documentation :file:`Makefile` " -"and :file:`Doc/tools/rstlint.py`, both in favor of `sphinx-lint `_. (Contributed by Julien Palard " -"in :gh:`98179`.)" +"Remove the ``suspicious`` rule from the documentation :file:`Makefile` and :" +"file:`Doc/tools/rstlint.py`, both in favor of `sphinx-lint `_. (Contributed by Julien Palard in :gh:" +"`98179`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1661 msgid "" -"Remove the *keyfile* and *certfile* parameters from " -"the :mod:`ftplib`, :mod:`imaplib`, :mod:`poplib` and :mod:`smtplib` modules, " -"and the *key_file*, *cert_file* and *check_hostname* parameters from " -"the :mod:`http.client` module, all deprecated since Python 3.6. Use the " -"*context* parameter (*ssl_context* in :mod:`imaplib`) instead. (Contributed " -"by Victor Stinner in :gh:`94172`.)" +"Remove the *keyfile* and *certfile* parameters from the :mod:`ftplib`, :mod:" +"`imaplib`, :mod:`poplib` and :mod:`smtplib` modules, and the *key_file*, " +"*cert_file* and *check_hostname* parameters from the :mod:`http.client` " +"module, all deprecated since Python 3.6. Use the *context* parameter " +"(*ssl_context* in :mod:`imaplib`) instead. (Contributed by Victor Stinner " +"in :gh:`94172`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1669 msgid "" "Remove ``Jython`` compatibility hacks from several stdlib modules and tests. " "(Contributed by Nikita Sobolev in :gh:`99482`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1672 msgid "" -"Remove ``_use_broken_old_ctypes_structure_semantics_`` flag " -"from :mod:`ctypes` module. (Contributed by Nikita Sobolev in :gh:`99285`.)" +"Remove ``_use_broken_old_ctypes_structure_semantics_`` flag from :mod:" +"`ctypes` module. (Contributed by Nikita Sobolev in :gh:`99285`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1680 ../../whatsnew/3.12.rst:2004 msgid "Porting to Python 3.12" msgstr "" -#: ../../whatsnew/3.12.rst:1682 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.12.rst:1686 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.12.rst:1688 msgid "" "More strict rules are now applied for numerical group references and group " "names in regular expressions. Only sequence of ASCII digits is now accepted " @@ -3712,7 +3017,6 @@ msgid "" "(Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1695 msgid "" "Remove ``randrange()`` functionality deprecated since Python 3.10. " "Formerly, ``randrange(10.0)`` losslessly converted to ``randrange(10)``. " @@ -3720,11 +3024,10 @@ msgid "" "integer values such as ``randrange(10.5)`` or ``randrange('10')`` has been " "changed from :exc:`ValueError` to :exc:`TypeError`. This also prevents bugs " "where ``randrange(1e25)`` would silently select from a larger range than " -"``randrange(10**25)``. (Originally suggested by Serhiy " -"Storchaka :gh:`86388`.)" +"``randrange(10**25)``. (Originally suggested by Serhiy Storchaka :gh:" +"`86388`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1703 msgid "" ":class:`argparse.ArgumentParser` changed encoding and error handler for " "reading arguments from file (e.g. ``fromfile_prefix_chars`` option) from " @@ -3734,29 +3037,25 @@ msgid "" "on Windows." msgstr "" -#: ../../whatsnew/3.12.rst:1709 msgid "" "Remove the ``asyncore``-based ``smtpd`` module deprecated in Python 3.4.7 " -"and 3.5.4. A recommended replacement is the :mod:`asyncio`-" -"based :pypi:`aiosmtpd` PyPI module." +"and 3.5.4. A recommended replacement is the :mod:`asyncio`-based :pypi:" +"`aiosmtpd` PyPI module." msgstr "" -#: ../../whatsnew/3.12.rst:1713 msgid "" ":func:`shlex.split`: Passing ``None`` for *s* argument now raises an " "exception, rather than reading :data:`sys.stdin`. The feature was deprecated " "in Python 3.9. (Contributed by Victor Stinner in :gh:`94352`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1718 msgid "" -"The :mod:`os` module no longer accepts bytes-like paths, " -"like :class:`bytearray` and :class:`memoryview` types: only the " -"exact :class:`bytes` type is accepted for bytes strings. (Contributed by " -"Victor Stinner in :gh:`98393`.)" +"The :mod:`os` module no longer accepts bytes-like paths, like :class:" +"`bytearray` and :class:`memoryview` types: only the exact :class:`bytes` " +"type is accepted for bytes strings. (Contributed by Victor Stinner in :gh:" +"`98393`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1723 msgid "" ":func:`syslog.openlog` and :func:`syslog.closelog` now fail if used in " "subinterpreters. :func:`syslog.syslog` may still be used in subinterpreters, " @@ -3768,7 +3067,6 @@ msgid "" "(Contributed by Donghee Na in :gh:`99127`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1732 msgid "" "The undocumented locking behavior of :func:`~functools.cached_property` is " "removed, because it locked across all instances of the class, leading to " @@ -3780,36 +3078,29 @@ msgid "" "property getter function or around multi-threaded access points." msgstr "" -#: ../../whatsnew/3.12.rst:1745 msgid "" -"When extracting tar files using :mod:`tarfile` " -"or :func:`shutil.unpack_archive`, pass the *filter* argument to limit " -"features that may be surprising or dangerous. See :ref:`tarfile-extraction-" -"filter` for details." +"When extracting tar files using :mod:`tarfile` or :func:`shutil." +"unpack_archive`, pass the *filter* argument to limit features that may be " +"surprising or dangerous. See :ref:`tarfile-extraction-filter` for details." msgstr "" -#: ../../whatsnew/3.12.rst:1750 msgid "" -"The output of the :func:`tokenize.tokenize` " -"and :func:`tokenize.generate_tokens` functions is now changed due to the " -"changes introduced in :pep:`701`. This means that ``STRING`` tokens are not " -"emitted any more for f-strings and the tokens described in :pep:`701` are " -"now produced instead: ``FSTRING_START``, ``FSTRING_MIDDLE`` and " -"``FSTRING_END`` are now emitted for f-string \"string\" parts in addition to " -"the appropriate tokens for the tokenization in the expression components. " -"For example for the f-string ``f\"start {1+1} end\"`` the old version of the " -"tokenizer emitted::" +"The output of the :func:`tokenize.tokenize` and :func:`tokenize." +"generate_tokens` functions is now changed due to the changes introduced in :" +"pep:`701`. This means that ``STRING`` tokens are not emitted any more for f-" +"strings and the tokens described in :pep:`701` are now produced instead: " +"``FSTRING_START``, ``FSTRING_MIDDLE`` and ``FSTRING_END`` are now emitted " +"for f-string \"string\" parts in addition to the appropriate tokens for the " +"tokenization in the expression components. For example for the f-string " +"``f\"start {1+1} end\"`` the old version of the tokenizer emitted::" msgstr "" -#: ../../whatsnew/3.12.rst:1759 msgid "1,0-1,18: STRING 'f\"start {1+1} end\"'" msgstr "" -#: ../../whatsnew/3.12.rst:1761 msgid "while the new version emits::" msgstr "" -#: ../../whatsnew/3.12.rst:1763 msgid "" "1,0-1,2: FSTRING_START 'f\"'\n" "1,2-1,8: FSTRING_MIDDLE 'start '\n" @@ -3822,54 +3113,45 @@ msgid "" "1,17-1,18: FSTRING_END '\"'" msgstr "" -#: ../../whatsnew/3.12.rst:1773 msgid "" "Additionally, there may be some minor behavioral changes as a consequence of " "the changes required to support :pep:`701`. Some of these changes include:" msgstr "" -#: ../../whatsnew/3.12.rst:1776 msgid "" "The ``type`` attribute of the tokens emitted when tokenizing some invalid " "Python characters such as ``!`` has changed from ``ERRORTOKEN`` to ``OP``." msgstr "" -#: ../../whatsnew/3.12.rst:1779 msgid "" "Incomplete single-line strings now also raise :exc:`tokenize.TokenError` as " "incomplete multiline strings do." msgstr "" -#: ../../whatsnew/3.12.rst:1782 msgid "" "Some incomplete or invalid Python code now raises :exc:`tokenize.TokenError` " "instead of returning arbitrary ``ERRORTOKEN`` tokens when tokenizing it." msgstr "" -#: ../../whatsnew/3.12.rst:1785 msgid "" "Mixing tabs and spaces as indentation in the same file is not supported " "anymore and will raise a :exc:`TabError`." msgstr "" -#: ../../whatsnew/3.12.rst:1788 msgid "" "The :mod:`threading` module now expects the :mod:`!_thread` module to have " "an ``_is_main_interpreter`` attribute. It is a function with no arguments " "that returns ``True`` if the current interpreter is the main interpreter." msgstr "" -#: ../../whatsnew/3.12.rst:1793 msgid "" "Any library or application that provides a custom ``_thread`` module should " "provide ``_is_main_interpreter()``. (See :gh:`112826`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1798 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.12.rst:1800 msgid "" "Python no longer uses :file:`setup.py` to build shared C extension modules. " "Build parameters like headers and libraries are detected in ``configure`` " @@ -3878,70 +3160,56 @@ msgid "" "in :gh:`93939`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1806 msgid "" "``va_start()`` with two parameters, like ``va_start(args, format),`` is now " "required to build Python. ``va_start()`` is no longer called with a single " "parameter. (Contributed by Kumar Aditya in :gh:`93207`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1811 msgid "" "CPython now uses the ThinLTO option as the default link time optimization " "policy if the Clang compiler accepts the flag. (Contributed by Donghee Na " "in :gh:`89536`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1815 msgid "" -"Add ``COMPILEALL_OPTS`` variable in :file:`Makefile` to " -"override :mod:`compileall` options (default: ``-j0``) in ``make install``. " -"Also merged the 3 ``compileall`` commands into a single command to " -"build .pyc files for all optimization levels (0, 1, 2) at once. (Contributed " -"by Victor Stinner in :gh:`99289`.)" +"Add ``COMPILEALL_OPTS`` variable in :file:`Makefile` to override :mod:" +"`compileall` options (default: ``-j0``) in ``make install``. Also merged the " +"3 ``compileall`` commands into a single command to build .pyc files for all " +"optimization levels (0, 1, 2) at once. (Contributed by Victor Stinner in :gh:" +"`99289`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1821 msgid "Add platform triplets for 64-bit LoongArch:" msgstr "" -#: ../../whatsnew/3.12.rst:1823 msgid "loongarch64-linux-gnusf" msgstr "" -#: ../../whatsnew/3.12.rst:1824 msgid "loongarch64-linux-gnuf32" msgstr "" -#: ../../whatsnew/3.12.rst:1825 msgid "loongarch64-linux-gnu" msgstr "" -#: ../../whatsnew/3.12.rst:1827 msgid "(Contributed by Zhang Na in :gh:`90656`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1829 msgid "``PYTHON_FOR_REGEN`` now require Python 3.10 or newer." msgstr "" -#: ../../whatsnew/3.12.rst:1831 msgid "" -"Autoconf 2.71 and aclocal 1.16.4 is now required to " -"regenerate :file:`configure`. (Contributed by Christian Heimes " -"in :gh:`89886`.)" +"Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate :file:" +"`configure`. (Contributed by Christian Heimes in :gh:`89886`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1835 msgid "" "Windows builds and macOS installers from python.org now use OpenSSL 3.0." msgstr "" -#: ../../whatsnew/3.12.rst:1839 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.12.rst:1846 msgid "" ":pep:`697`: Introduce the :ref:`Unstable C API tier `, " "intended for low-level tools like debuggers and JIT compilers. This API may " @@ -3949,321 +3217,264 @@ msgid "" "contents are marked by the ``PyUnstable_`` prefix in names." msgstr "" -#: ../../whatsnew/3.12.rst:1852 msgid "Code object constructors:" msgstr "" -#: ../../whatsnew/3.12.rst:1854 msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)" msgstr "" -#: ../../whatsnew/3.12.rst:1855 msgid "" "``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from " "``PyCode_NewWithPosOnlyArgs``)" msgstr "" -#: ../../whatsnew/3.12.rst:1857 msgid "Extra storage for code objects (:pep:`523`):" msgstr "" -#: ../../whatsnew/3.12.rst:1859 msgid "" "``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from " "``_PyEval_RequestCodeExtraIndex``)" msgstr "" -#: ../../whatsnew/3.12.rst:1860 msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)" msgstr "" -#: ../../whatsnew/3.12.rst:1861 msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)" msgstr "" -#: ../../whatsnew/3.12.rst:1863 msgid "" "The original names will continue to be available until the respective API " "changes." msgstr "" -#: ../../whatsnew/3.12.rst:1866 msgid "(Contributed by Petr Viktorin in :gh:`101101`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1868 msgid "" ":pep:`697`: Add an API for extending types whose instance memory layout is " "opaque:" msgstr "" -#: ../../whatsnew/3.12.rst:1871 msgid "" ":c:member:`PyType_Spec.basicsize` can be zero or negative to specify " "inheriting or extending the base class size." msgstr "" -#: ../../whatsnew/3.12.rst:1873 msgid "" ":c:func:`PyObject_GetTypeData` and :c:func:`PyType_GetTypeDataSize` added to " "allow access to subclass-specific instance data." msgstr "" -#: ../../whatsnew/3.12.rst:1875 msgid "" ":c:macro:`Py_TPFLAGS_ITEMS_AT_END` and :c:func:`PyObject_GetItemData` added " -"to allow safely extending certain variable-sized types, " -"including :c:var:`PyType_Type`." +"to allow safely extending certain variable-sized types, including :c:var:" +"`PyType_Type`." msgstr "" -#: ../../whatsnew/3.12.rst:1878 msgid "" ":c:macro:`Py_RELATIVE_OFFSET` added to allow defining :c:type:`members " "` in terms of a subclass-specific struct." msgstr "" -#: ../../whatsnew/3.12.rst:1881 msgid "(Contributed by Petr Viktorin in :gh:`103509`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1883 msgid "" -"Add the new :ref:`limited C API ` " -"function :c:func:`PyType_FromMetaclass`, which generalizes the " -"existing :c:func:`PyType_FromModuleAndSpec` using an additional metaclass " -"argument. (Contributed by Wenzel Jakob in :gh:`93012`.)" +"Add the new :ref:`limited C API ` function :c:func:" +"`PyType_FromMetaclass`, which generalizes the existing :c:func:" +"`PyType_FromModuleAndSpec` using an additional metaclass argument. " +"(Contributed by Wenzel Jakob in :gh:`93012`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1888 msgid "" "API for creating objects that can be called using :ref:`the vectorcall " "protocol ` was added to the :ref:`Limited API `:" msgstr "" -#: ../../whatsnew/3.12.rst:1892 msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" msgstr "" -#: ../../whatsnew/3.12.rst:1893 msgid ":c:func:`PyVectorcall_NARGS`" msgstr "" -#: ../../whatsnew/3.12.rst:1894 msgid ":c:func:`PyVectorcall_Call`" msgstr "" -#: ../../whatsnew/3.12.rst:1895 msgid ":c:type:`vectorcallfunc`" msgstr "" -#: ../../whatsnew/3.12.rst:1897 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 " "makes vectorcall safe to use with mutable types (i.e. heap types without the " "immutable flag, :c:macro:`Py_TPFLAGS_IMMUTABLETYPE`). Mutable types that do " "not override :c:member:`~PyTypeObject.tp_call` now inherit the " -"``Py_TPFLAGS_HAVE_VECTORCALL`` flag. (Contributed by Petr Viktorin " -"in :gh:`93274`.)" +"``Py_TPFLAGS_HAVE_VECTORCALL`` flag. (Contributed by Petr Viktorin in :gh:" +"`93274`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1905 msgid "" -"The :c:macro:`Py_TPFLAGS_MANAGED_DICT` " -"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` flags have been added. This allows " -"extensions classes to support object :attr:`~object.__dict__` and weakrefs " -"with less bookkeeping, using less memory and with faster access." +"The :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` flags have been added. This allows extensions " +"classes to support object :attr:`~object.__dict__` and weakrefs with less " +"bookkeeping, using less memory and with faster access." msgstr "" -#: ../../whatsnew/3.12.rst:1910 msgid "" "API for performing calls using :ref:`the vectorcall protocol ` " "was added to the :ref:`Limited API `:" msgstr "" -#: ../../whatsnew/3.12.rst:1914 msgid ":c:func:`PyObject_Vectorcall`" msgstr "" -#: ../../whatsnew/3.12.rst:1915 msgid ":c:func:`PyObject_VectorcallMethod`" msgstr "" -#: ../../whatsnew/3.12.rst:1916 msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" msgstr "" -#: ../../whatsnew/3.12.rst:1918 msgid "" "This means that both the incoming and outgoing ends of the vector call " "protocol are now available in the :ref:`Limited API `. (Contributed " "by Wenzel Jakob in :gh:`98586`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1922 msgid "" -"Add two new public functions, :c:func:`PyEval_SetProfileAllThreads` " -"and :c:func:`PyEval_SetTraceAllThreads`, that allow to set tracing and " -"profiling functions in all running threads in addition to the calling one. " +"Add two new public functions, :c:func:`PyEval_SetProfileAllThreads` and :c:" +"func:`PyEval_SetTraceAllThreads`, that allow to set tracing and profiling " +"functions in all running threads in addition to the calling one. " "(Contributed by Pablo Galindo in :gh:`93503`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1928 msgid "" "Add new function :c:func:`PyFunction_SetVectorcall` to the C API which sets " "the vectorcall field of a given :c:type:`PyFunctionObject`. (Contributed by " "Andrew Frost in :gh:`92257`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1932 msgid "" -"The C API now permits registering callbacks " -"via :c:func:`PyDict_AddWatcher`, :c:func:`PyDict_Watch` and related APIs to " -"be called whenever a dictionary is modified. This is intended for use by " -"optimizing interpreters, JIT compilers, or debuggers. (Contributed by Carl " -"Meyer in :gh:`91052`.)" +"The C API now permits registering callbacks via :c:func:" +"`PyDict_AddWatcher`, :c:func:`PyDict_Watch` and related APIs to be called " +"whenever a dictionary is modified. This is intended for use by optimizing " +"interpreters, JIT compilers, or debuggers. (Contributed by Carl Meyer in :gh:" +"`91052`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1938 msgid "" "Add :c:func:`PyType_AddWatcher` and :c:func:`PyType_Watch` API to register " "callbacks to receive notification on changes to a type. (Contributed by Carl " "Meyer in :gh:`91051`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1942 msgid "" "Add :c:func:`PyCode_AddWatcher` and :c:func:`PyCode_ClearWatcher` APIs to " "register callbacks to receive notification on creation and destruction of " "code objects. (Contributed by Itamar Oren in :gh:`91054`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1947 msgid "" "Add :c:func:`PyFrame_GetVar` and :c:func:`PyFrame_GetVarString` functions to " -"get a frame variable by its name. (Contributed by Victor Stinner " -"in :gh:`91248`.)" +"get a frame variable by its name. (Contributed by Victor Stinner in :gh:" +"`91248`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1951 msgid "" -"Add :c:func:`PyErr_GetRaisedException` " -"and :c:func:`PyErr_SetRaisedException` for saving and restoring the current " -"exception. These functions return and accept a single exception object, " -"rather than the triple arguments of the now-deprecated :c:func:`PyErr_Fetch` " -"and :c:func:`PyErr_Restore`. This is less error prone and a bit more " -"efficient. (Contributed by Mark Shannon in :gh:`101578`.)" +"Add :c:func:`PyErr_GetRaisedException` and :c:func:" +"`PyErr_SetRaisedException` for saving and restoring the current exception. " +"These functions return and accept a single exception object, rather than the " +"triple arguments of the now-deprecated :c:func:`PyErr_Fetch` and :c:func:" +"`PyErr_Restore`. This is less error prone and a bit more efficient. " +"(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1959 msgid "" "Add ``_PyErr_ChainExceptions1``, which takes an exception instance, to " "replace the legacy-API ``_PyErr_ChainExceptions``, which is now deprecated. " "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1963 msgid "" "Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs` as " -"convenience functions for retrieving and modifying " -"the :attr:`~BaseException.args` passed to the exception's constructor. " -"(Contributed by Mark Shannon in :gh:`101578`.)" +"convenience functions for retrieving and modifying the :attr:`~BaseException." +"args` passed to the exception's constructor. (Contributed by Mark Shannon " +"in :gh:`101578`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1968 msgid "" "Add :c:func:`PyErr_DisplayException`, which takes an exception instance, to " "replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit " "Katriel in :gh:`102755`)." msgstr "" -#: ../../whatsnew/3.12.rst:1974 msgid "" ":pep:`683`: Introduce *Immortal Objects*, which allows objects to bypass " "reference counts, and related changes to the C-API:" msgstr "" -#: ../../whatsnew/3.12.rst:1977 msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object" msgstr "" -#: ../../whatsnew/3.12.rst:1978 msgid "as immortal." msgstr "" -#: ../../whatsnew/3.12.rst:1979 msgid "" "``_Py_IsImmortal`` Checks if an object has the immortal reference count." msgstr "" -#: ../../whatsnew/3.12.rst:1980 msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to" msgstr "" -#: ../../whatsnew/3.12.rst:1981 msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``." msgstr "" -#: ../../whatsnew/3.12.rst:1982 msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects" msgstr "" -#: ../../whatsnew/3.12.rst:1983 msgid "that are immortal." msgstr "" -#: ../../whatsnew/3.12.rst:1984 msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode" msgstr "" -#: ../../whatsnew/3.12.rst:1985 msgid "objects that are immortal and static" msgstr "" -#: ../../whatsnew/3.12.rst:1986 msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode" msgstr "" -#: ../../whatsnew/3.12.rst:1987 msgid "" "objects that have been interned. This is now needed for :file:`refleak.py` " "to correctly track reference counts and allocated blocks" msgstr "" -#: ../../whatsnew/3.12.rst:1990 msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1992 msgid "" -":pep:`684`: Add the new :c:func:`Py_NewInterpreterFromConfig` function " -"and :c:type:`PyInterpreterConfig`, which may be used to create sub-" -"interpreters with their own GILs. (See :ref:`whatsnew312-pep684` for more " -"info.) (Contributed by Eric Snow in :gh:`104110`.)" +":pep:`684`: Add the new :c:func:`Py_NewInterpreterFromConfig` function and :" +"c:type:`PyInterpreterConfig`, which may be used to create sub-interpreters " +"with their own GILs. (See :ref:`whatsnew312-pep684` for more info.) " +"(Contributed by Eric Snow in :gh:`104110`.)" msgstr "" -#: ../../whatsnew/3.12.rst:1998 msgid "" -"In the limited C API version 3.12, :c:func:`Py_INCREF` " -"and :c:func:`Py_DECREF` functions are now implemented as opaque function " -"calls to hide implementation details. (Contributed by Victor Stinner " -"in :gh:`105387`.)" +"In the limited C API version 3.12, :c:func:`Py_INCREF` and :c:func:" +"`Py_DECREF` functions are now implemented as opaque function calls to hide " +"implementation details. (Contributed by Victor Stinner in :gh:`105387`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2006 msgid "" "Legacy Unicode APIs based on ``Py_UNICODE*`` representation has been " "removed. Please migrate to APIs based on UTF-8 or ``wchar_t*``." msgstr "" -#: ../../whatsnew/3.12.rst:2009 msgid "" "Argument parsing functions like :c:func:`PyArg_ParseTuple` doesn't support " "``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to " "other formats for Unicode like ``s``, ``z``, ``es``, and ``U``." msgstr "" -#: ../../whatsnew/3.12.rst:2013 msgid "" "``tp_weaklist`` for all static builtin types is always ``NULL``. This is an " "internal-only field on ``PyTypeObject`` but we're pointing out the change in " @@ -4272,7 +3483,6 @@ msgid "" "necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro." msgstr "" -#: ../../whatsnew/3.12.rst:2020 msgid "" "This internal-only :c:member:`PyTypeObject.tp_subclasses` may now not be a " "valid object pointer. Its type was changed to :c:expr:`void *` to reflect " @@ -4280,53 +3490,45 @@ msgid "" "only field directly." msgstr "" -#: ../../whatsnew/3.12.rst:2025 msgid "" -"To get a list of subclasses, call the Python " -"method :py:meth:`~type.__subclasses__` (using :c:func:`PyObject_CallMethod`, " -"for example)." +"To get a list of subclasses, call the Python method :py:meth:`~type." +"__subclasses__` (using :c:func:`PyObject_CallMethod`, for example)." msgstr "" -#: ../../whatsnew/3.12.rst:2029 msgid "" "Add support of more formatting options (left aligning, octals, uppercase " "hexadecimals, :c:type:`intmax_t`, :c:type:`ptrdiff_t`, :c:type:`wchar_t` C " "strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` " -"and :c:func:`PyUnicode_FromFormatV`. (Contributed by Serhiy Storchaka " -"in :gh:`98836`.)" +"and :c:func:`PyUnicode_FromFormatV`. (Contributed by Serhiy Storchaka in :gh:" +"`98836`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2035 msgid "" -"An unrecognized format character in :c:func:`PyUnicode_FromFormat` " -"and :c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. In " -"previous versions it caused all the rest of the format string to be copied " -"as-is to the result string, and any extra arguments discarded. (Contributed " -"by Serhiy Storchaka in :gh:`95781`.)" +"An unrecognized format character in :c:func:`PyUnicode_FromFormat` and :c:" +"func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. In previous " +"versions it caused all the rest of the format string to be copied as-is to " +"the result string, and any extra arguments discarded. (Contributed by Serhiy " +"Storchaka in :gh:`95781`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2041 msgid "" -"Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` " -"and :c:func:`PyUnicode_FromFormatV`. (Contributed by Philip Georgi " -"in :gh:`95504`.)" +"Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` and :c:func:" +"`PyUnicode_FromFormatV`. (Contributed by Philip Georgi in :gh:`95504`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2045 msgid "" "Extension classes wanting to add a :attr:`~object.__dict__` or weak " -"reference slot should use :c:macro:`Py_TPFLAGS_MANAGED_DICT` " -"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead of ``tp_dictoffset`` and " +"reference slot should use :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` instead of ``tp_dictoffset`` and " "``tp_weaklistoffset``, respectively. The use of ``tp_dictoffset`` and " "``tp_weaklistoffset`` is still supported, but does not fully support " "multiple inheritance (:gh:`95589`), and performance may be worse. Classes " "declaring :c:macro:`Py_TPFLAGS_MANAGED_DICT` must call :c:func:`!" "_PyObject_VisitManagedDict` and :c:func:`!_PyObject_ClearManagedDict` to " -"traverse and clear their instance's dictionaries. To clear weakrefs, " -"call :c:func:`PyObject_ClearWeakRefs`, as before." +"traverse and clear their instance's dictionaries. To clear weakrefs, call :c:" +"func:`PyObject_ClearWeakRefs`, as before." msgstr "" -#: ../../whatsnew/3.12.rst:2057 msgid "" "The :c:func:`PyUnicode_FSDecoder` function no longer accepts bytes-like " "paths, like :class:`bytearray` and :class:`memoryview` types: only the " @@ -4334,7 +3536,6 @@ msgid "" "Victor Stinner in :gh:`98393`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2062 msgid "" "The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` " "macros now only evaluate their arguments once. If an argument has side " @@ -4342,15 +3543,13 @@ msgid "" "Stinner in :gh:`98724`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2067 msgid "" -"The interpreter's error indicator is now always normalized. This means " -"that :c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` and the other " -"functions that set the error indicator now normalize the exception before " -"storing it. (Contributed by Mark Shannon in :gh:`101578`.)" +"The interpreter's error indicator is now always normalized. This means that :" +"c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` and the other functions " +"that set the error indicator now normalize the exception before storing it. " +"(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2072 msgid "" "``_Py_RefTotal`` is no longer authoritative and only kept around for ABI " "compatibility. Note that it is an internal global and only available on " @@ -4358,25 +3557,20 @@ msgid "" "``_Py_GetGlobalRefTotal()``." msgstr "" -#: ../../whatsnew/3.12.rst:2077 msgid "" "The following functions now select an appropriate metaclass for the newly " "created type:" msgstr "" -#: ../../whatsnew/3.12.rst:2080 msgid ":c:func:`PyType_FromSpec`" msgstr "" -#: ../../whatsnew/3.12.rst:2081 msgid ":c:func:`PyType_FromSpecWithBases`" msgstr "" -#: ../../whatsnew/3.12.rst:2082 msgid ":c:func:`PyType_FromModuleAndSpec`" msgstr "" -#: ../../whatsnew/3.12.rst:2084 msgid "" "Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " "is deprecated, and in Python 3.14+ it will be disallowed. Note that these " @@ -4384,14 +3578,12 @@ msgid "" "initialization." msgstr "" -#: ../../whatsnew/3.12.rst:2089 msgid "" "Note that :c:func:`PyType_FromMetaclass` (added in Python 3.12) already " -"disallows creating classes whose metaclass overrides ``tp_new`` " -"(:meth:`~object.__new__` in Python)." +"disallows creating classes whose metaclass overrides ``tp_new`` (:meth:" +"`~object.__new__` in Python)." msgstr "" -#: ../../whatsnew/3.12.rst:2093 msgid "" "Since ``tp_new`` overrides almost everything ``PyType_From*`` functions do, " "the two are incompatible with each other. The existing behavior -- ignoring " @@ -4400,38 +3592,32 @@ msgid "" "general workaround. One of the following may work for you:" msgstr "" -#: ../../whatsnew/3.12.rst:2100 msgid "If you control the metaclass, avoid using ``tp_new`` in it:" msgstr "" -#: ../../whatsnew/3.12.rst:2102 msgid "" -"If initialization can be skipped, it can be done " -"in :c:member:`~PyTypeObject.tp_init` instead." +"If initialization can be skipped, it can be done in :c:member:`~PyTypeObject." +"tp_init` instead." msgstr "" -#: ../../whatsnew/3.12.rst:2104 msgid "" "If the metaclass doesn't need to be instantiated from Python, set its " -"``tp_new`` to ``NULL`` using " -"the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. This makes it " -"acceptable for ``PyType_From*`` functions." +"``tp_new`` to ``NULL`` using the :c:macro:" +"`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. This makes it acceptable for " +"``PyType_From*`` functions." msgstr "" -#: ../../whatsnew/3.12.rst:2109 msgid "" "Avoid ``PyType_From*`` functions: if you don't need C-specific features " "(slots or setting the instance size), create types by :ref:`calling ` " "the metaclass." msgstr "" -#: ../../whatsnew/3.12.rst:2113 msgid "" "If you *know* the ``tp_new`` can be skipped safely, filter the deprecation " "warning out using :func:`warnings.catch_warnings` from Python." msgstr "" -#: ../../whatsnew/3.12.rst:2116 msgid "" ":c:var:`PyOS_InputHook` and :c:var:`PyOS_ReadlineFunctionPointer` are no " "longer called in :ref:`subinterpreters `. This is " @@ -4439,33 +3625,28 @@ msgid "" "callbacks have no way of recovering extension module state)." msgstr "" -#: ../../whatsnew/3.12.rst:2121 msgid "" "This also avoids situations where extensions may find themselves running in " "a subinterpreter that they don't support (or haven't yet been loaded in). " "See :gh:`104668` for more info." msgstr "" -#: ../../whatsnew/3.12.rst:2125 msgid "" ":c:struct:`PyLongObject` has had its internals changed for better " "performance. Although the internals of :c:struct:`PyLongObject` are private, " "they are used by some extension modules. The internal fields should no " -"longer be accessed directly, instead the API functions beginning " -"``PyLong_...`` should be used instead. Two new *unstable* API functions are " -"provided for efficient access to the value of :c:struct:`PyLongObject`\\s " -"which fit into a single machine word:" +"longer be accessed directly, instead the API functions beginning ``PyLong_..." +"`` should be used instead. Two new *unstable* API functions are provided for " +"efficient access to the value of :c:struct:`PyLongObject`\\s which fit into " +"a single machine word:" msgstr "" -#: ../../whatsnew/3.12.rst:2133 msgid ":c:func:`PyUnstable_Long_IsCompact`" msgstr "" -#: ../../whatsnew/3.12.rst:2134 msgid ":c:func:`PyUnstable_Long_CompactValue`" msgstr "" -#: ../../whatsnew/3.12.rst:2136 msgid "" "Custom allocators, set via :c:func:`PyMem_SetAllocator`, are now required to " "be thread-safe, regardless of memory domain. Allocators that don't have " @@ -4474,662 +3655,536 @@ msgid "" "create a new GitHub issue and CC ``@ericsnowcurrently``." msgstr "" -#: ../../whatsnew/3.12.rst:2146 msgid "" -"In accordance with :pep:`699`, the ``ma_version_tag`` field " -"in :c:type:`PyDictObject` is deprecated for extension modules. Accessing " -"this field will generate a compiler warning at compile time. This field will " -"be removed in Python 3.14. (Contributed by Ramvikrams and Kumar Aditya " -"in :gh:`101193`. PEP by Ken Jin.)" +"In accordance with :pep:`699`, the ``ma_version_tag`` field in :c:type:" +"`PyDictObject` is deprecated for extension modules. Accessing this field " +"will generate a compiler warning at compile time. This field will be removed " +"in Python 3.14. (Contributed by Ramvikrams and Kumar Aditya in :gh:`101193`. " +"PEP by Ken Jin.)" msgstr "" -#: ../../whatsnew/3.12.rst:2151 msgid "Deprecate global configuration variable:" msgstr "" -#: ../../whatsnew/3.12.rst:2153 msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" msgstr "" -#: ../../whatsnew/3.12.rst:2154 msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" msgstr "" -#: ../../whatsnew/3.12.rst:2155 msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" msgstr "" -#: ../../whatsnew/3.12.rst:2156 msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" msgstr "" -#: ../../whatsnew/3.12.rst:2157 msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" msgstr "" -#: ../../whatsnew/3.12.rst:2158 msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" msgstr "" -#: ../../whatsnew/3.12.rst:2159 msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" msgstr "" -#: ../../whatsnew/3.12.rst:2160 msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" msgstr "" -#: ../../whatsnew/3.12.rst:2161 msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" msgstr "" -#: ../../whatsnew/3.12.rst:2162 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" msgstr "" -#: ../../whatsnew/3.12.rst:2163 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" msgstr "" -#: ../../whatsnew/3.12.rst:2164 msgid "" ":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" msgstr "" -#: ../../whatsnew/3.12.rst:2165 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" msgstr "" -#: ../../whatsnew/3.12.rst:2166 msgid "" ":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed`" msgstr "" -#: ../../whatsnew/3.12.rst:2168 msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" msgstr "" -#: ../../whatsnew/3.12.rst:2169 msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"use :c:member:`PyPreConfig.legacy_windows_fs_encoding`" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding`" msgstr "" -#: ../../whatsnew/3.12.rst:2170 msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"use :c:member:`PyConfig.legacy_windows_stdio`" +":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." +"legacy_windows_stdio`" msgstr "" -#: ../../whatsnew/3.12.rst:2171 msgid "" -":c:var:`!Py_FileSystemDefaultEncoding`: " -"use :c:member:`PyConfig.filesystem_encoding`" +":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" msgstr "" -#: ../../whatsnew/3.12.rst:2172 msgid "" -":c:var:`!Py_HasFileSystemDefaultEncoding`: " -"use :c:member:`PyConfig.filesystem_encoding`" +":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" msgstr "" -#: ../../whatsnew/3.12.rst:2173 msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"use :c:member:`PyConfig.filesystem_errors`" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." +"filesystem_errors`" msgstr "" -#: ../../whatsnew/3.12.rst:2174 msgid "" -":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` " -"(see :c:func:`Py_PreInitialize`)" +":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:" +"`Py_PreInitialize`)" msgstr "" -#: ../../whatsnew/3.12.rst:2176 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead. (Contributed by Victor Stinner " -"in :gh:`77782`.)" +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead. (Contributed by Victor Stinner in :gh:`77782`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2180 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases is deprecated and will be disabled in Python 3.14. (:gh:`95388`)" msgstr "" -#: ../../whatsnew/3.12.rst:2183 msgid "" "The :file:`structmember.h` header is deprecated, though it continues to be " "available and there are no plans to remove it." msgstr "" -#: ../../whatsnew/3.12.rst:2186 msgid "" "Its contents are now available just by including :file:`Python.h`, with a " "``Py`` prefix added if it was missing:" msgstr "" -#: ../../whatsnew/3.12.rst:2189 msgid "" -":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` " -"and :c:func:`PyMember_SetOne`" +":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:" +"`PyMember_SetOne`" msgstr "" -#: ../../whatsnew/3.12.rst:2191 msgid "" "Type macros like :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. " "(previously ``T_INT``, ``T_DOUBLE``, etc.)" msgstr "" -#: ../../whatsnew/3.12.rst:2193 msgid "" -"The flags :c:macro:`Py_READONLY` (previously ``READONLY``) " -"and :c:macro:`Py_AUDIT_READ` (previously all uppercase)" +"The flags :c:macro:`Py_READONLY` (previously ``READONLY``) and :c:macro:" +"`Py_AUDIT_READ` (previously all uppercase)" msgstr "" -#: ../../whatsnew/3.12.rst:2196 msgid "Several items are not exposed from :file:`Python.h`:" msgstr "" -#: ../../whatsnew/3.12.rst:2198 msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" msgstr "" -#: ../../whatsnew/3.12.rst:2199 msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)" msgstr "" -#: ../../whatsnew/3.12.rst:2200 msgid "The macro ``WRITE_RESTRICTED`` which does nothing." msgstr "" -#: ../../whatsnew/3.12.rst:2201 msgid "" -"The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents " -"of :c:macro:`Py_AUDIT_READ`." +"The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:" +"`Py_AUDIT_READ`." msgstr "" -#: ../../whatsnew/3.12.rst:2203 msgid "" -"In some configurations, ```` is not included " -"from :file:`Python.h`. It should be included manually when using " -"``offsetof()``." +"In some configurations, ```` is not included from :file:`Python." +"h`. It should be included manually when using ``offsetof()``." msgstr "" -#: ../../whatsnew/3.12.rst:2206 msgid "" "The deprecated header continues to provide its original contents under the " "original names. Your old code can stay unchanged, unless the extra include " "and non-namespaced macros bother you greatly." msgstr "" -#: ../../whatsnew/3.12.rst:2211 msgid "" "(Contributed in :gh:`47146` by Petr Viktorin, based on earlier work by " "Alexander Belopolsky and Matthias Braun.)" msgstr "" -#: ../../whatsnew/3.12.rst:2214 msgid "" -":c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` are deprecated. " -"Use :c:func:`PyErr_GetRaisedException` " -"and :c:func:`PyErr_SetRaisedException` instead. (Contributed by Mark Shannon " -"in :gh:`101578`.)" +":c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` are deprecated. Use :c:" +"func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` " +"instead. (Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2219 msgid "" ":c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException` " "instead. (Contributed by Irit Katriel in :gh:`102755`)." msgstr "" -#: ../../whatsnew/3.12.rst:2222 msgid "" "``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1`` " "instead. (Contributed by Irit Katriel in :gh:`102192`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2225 msgid "" -"Using :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` " -"or :c:func:`PyType_FromModuleAndSpec` to create a class whose metaclass " -"overrides :c:member:`~PyTypeObject.tp_new` is deprecated. Call the metaclass " -"instead." +"Using :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` or :c:" +"func:`PyType_FromModuleAndSpec` to create a class whose metaclass overrides :" +"c:member:`~PyTypeObject.tp_new` is deprecated. Call the metaclass instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:4 msgid "" "The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " "(:pep:`699`; :gh:`101193`)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:7 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases (:gh:`95388`)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:4 msgid "" -"The :c:func:`PyImport_ImportModuleNoBlock`: " -"Use :c:func:`PyImport_ImportModule` instead." +"The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" +"`PyImport_ImportModule` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" -":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: " -"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " -"`__ can be used to " -"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" +"func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project `__ can be used to get :c:func:" +"`PyWeakref_GetRef` on Python 3.12 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "" -":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: " -"Use :c:type:`wchar_t` instead." +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" +"type:`wchar_t` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`str`, such as :class:`bytes`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:17 msgid "" ":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:19 msgid "" ":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`bytes`, such as :class:`str`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:22 msgid "Python initialization functions, deprecated in Python 3.13:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " "` (:data:`sys.path`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " -"if :ref:`virtual environments ` need to be handled." +"` (:data:`sys.base_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) if :ref:" +"`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " -"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " -"be handled." +"` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"exec_prefix\") ` (:data:`sys.exec_prefix`) if :" +"ref:`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " -"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" +"`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " -"or :c:func:`PyConfig_Get(\"verbose\") ` instead." +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" +"`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " -"or :c:func:`PyConfig_Get(\"quiet\") ` instead." +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" +"`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " -"or :c:func:`PyConfig_Get(\"interactive\") ` instead." +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" +"`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " -"or :c:func:`PyConfig_Get(\"inspect\") ` instead." +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" +"`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " -"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" +"func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " -"or :c:func:`PyConfig_Get(\"site_import\") ` instead." +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" +"`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " -"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" +"func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " -"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" +"func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" -":c:var:`Py_NoUserSiteDirectory`: " -"Use :c:member:`PyConfig.user_site_directory` " -"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." +":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." +"user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " -"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" +"c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " -"or :c:func:`PyConfig_Get(\"isolated\") ` instead." +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" +"`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " -"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " -"instead." +":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding` or :c:func:" +"`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"Use :c:member:`PyConfig.legacy_windows_stdio` " -"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." +":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." +"legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: " -"Use :c:member:`PyConfig.filesystem_encoding` " -"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." +"Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." +"filesystem_encoding` or :c:func:`PyConfig_Get(\"filesystem_encoding\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"Use :c:member:`PyConfig.filesystem_errors` " -"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." +":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." +"filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " -"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " -"(see :c:func:`Py_PreInitialize`)" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" +"`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" +"`Py_PreInitialize`)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " -"be used to get these options at runtime." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " +"get these options at runtime." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:4 msgid "The bundled copy of ``libmpdec``." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:4 msgid "" "The following APIs are deprecated and will be removed, although there is " "currently no date scheduled for their removal." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:7 msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:9 msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:11 msgid "" ":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:13 msgid "" ":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:15 msgid "" ":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:17 msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:19 msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` instead." +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:21 msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:23 msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:25 msgid "" ":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:27 msgid "" ":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:29 msgid "Thread Local Storage (TLS) API:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:31 msgid "" ":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:33 msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:35 msgid "" ":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:37 msgid "" ":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:39 msgid "" ":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:41 msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: ../../whatsnew/3.12.rst:2243 msgid "" "Remove the :file:`token.h` header file. There was never any public tokenizer " "C API. The :file:`token.h` header file was only designed to be used by " "Python internals. (Contributed by Victor Stinner in :gh:`92651`.)" msgstr "" -#: ../../whatsnew/3.12.rst:2248 msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail." msgstr "" -#: ../../whatsnew/3.12.rst:2250 msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" msgstr "" -#: ../../whatsnew/3.12.rst:2251 msgid ":c:func:`!PyUnicode_AS_UNICODE`" msgstr "" -#: ../../whatsnew/3.12.rst:2252 msgid ":c:func:`!PyUnicode_AsUnicode`" msgstr "" -#: ../../whatsnew/3.12.rst:2253 msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" msgstr "" -#: ../../whatsnew/3.12.rst:2254 msgid ":c:func:`!PyUnicode_AS_DATA`" msgstr "" -#: ../../whatsnew/3.12.rst:2255 msgid ":c:func:`!PyUnicode_FromUnicode`" msgstr "" -#: ../../whatsnew/3.12.rst:2256 msgid ":c:func:`!PyUnicode_GET_SIZE`" msgstr "" -#: ../../whatsnew/3.12.rst:2257 msgid ":c:func:`!PyUnicode_GetSize`" msgstr "" -#: ../../whatsnew/3.12.rst:2258 msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" msgstr "" -#: ../../whatsnew/3.12.rst:2260 msgid "" "Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by " "Victor Stinner in :gh:`85858`.)" diff --git a/whatsnew/3.13.po b/whatsnew/3.13.po index 9184639..f40f473 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,45 +18,37 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.13.rst:4 msgid "What's New In Python 3.13" msgstr "" -#: ../../whatsnew/3.13.rst:0 msgid "Editors" msgstr "" -#: ../../whatsnew/3.13.rst:6 msgid "Adam Turner and Thomas Wouters" msgstr "" -#: ../../whatsnew/3.13.rst:48 msgid "" "This article explains the new features in Python 3.13, compared to 3.12. " -"Python 3.13 was released on October 7, 2024. For full details, see " -"the :ref:`changelog `." +"Python 3.13 was released on October 7, 2024. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.13.rst:54 msgid ":pep:`719` -- Python 3.13 Release Schedule" msgstr "" -#: ../../whatsnew/3.13.rst:58 msgid "Summary -- Release Highlights" msgstr "" -#: ../../whatsnew/3.13.rst:63 msgid "" "Python 3.13 is the latest stable release of the Python programming language, " "with a mix of changes to the language, the implementation and the standard " "library. The biggest changes include a new `interactive interpreter " "`_, experimental support for " -"running in a `free-threaded mode `_ " -"(:pep:`703`), and a `Just-In-Time compiler `_ " -"(:pep:`744`)." +"running in a `free-threaded mode `_ (:" +"pep:`703`), and a `Just-In-Time compiler `_ (:pep:" +"`744`)." msgstr "" -#: ../../whatsnew/3.13.rst:72 msgid "" "Error messages continue to improve, with tracebacks now highlighted in color " "by default. The :func:`locals` builtin now has :ref:`defined semantics " @@ -68,7 +56,6 @@ msgid "" "parameters now support default values." msgstr "" -#: ../../whatsnew/3.13.rst:77 msgid "" "The library changes contain removal of deprecated APIs and modules, as well " "as the usual improvements in user-friendliness and correctness. Several " @@ -76,30 +63,26 @@ msgid "" "pep594_>`_ following their deprecation in Python 3.11 (:pep:`594`)." msgstr "" -#: ../../whatsnew/3.13.rst:82 msgid "" "This article doesn't attempt to provide a complete specification of all new " "features, but instead gives a convenient overview. For full details refer to " -"the documentation, such as the :ref:`Library Reference ` " -"and :ref:`Language Reference `. To understand the complete " +"the documentation, such as the :ref:`Library Reference ` and :" +"ref:`Language Reference `. To understand the complete " "implementation and design rationale for a change, refer to the PEP for a " "particular new feature; but note that PEPs usually are not kept up-to-date " "once a feature has been fully implemented. See `Porting to Python 3.13`_ for " "guidance on upgrading from earlier versions of Python." msgstr "" -#: ../../whatsnew/3.13.rst:98 msgid "Interpreter improvements:" msgstr "" -#: ../../whatsnew/3.13.rst:100 msgid "" "A greatly improved :ref:`interactive interpreter ` and :ref:`improved error messages `." msgstr "" -#: ../../whatsnew/3.13.rst:103 msgid "" ":pep:`667`: The :func:`locals` builtin now has :ref:`defined semantics " "` when mutating the returned mapping. Python " @@ -107,14 +90,12 @@ msgid "" "optimized scopes even during concurrent code execution." msgstr "" -#: ../../whatsnew/3.13.rst:108 msgid "" -":pep:`703`: CPython 3.13 has experimental support for running with " -"the :term:`global interpreter lock` disabled. See :ref:`Free-threaded " -"CPython ` for more details." +":pep:`703`: CPython 3.13 has experimental support for running with the :term:" +"`global interpreter lock` disabled. See :ref:`Free-threaded CPython " +"` for more details." msgstr "" -#: ../../whatsnew/3.13.rst:111 msgid "" ":pep:`744`: A basic :ref:`JIT compiler ` was " "added. It is currently disabled by default (though we may turn it on later). " @@ -122,7 +103,6 @@ msgid "" "next few releases." msgstr "" -#: ../../whatsnew/3.13.rst:115 msgid "" "Color support in the new :ref:`interactive interpreter `, as well as in :ref:`tracebacks `." msgstr "" -#: ../../whatsnew/3.13.rst:133 msgid "" "The :mod:`argparse` module now supports deprecating command-line options, " "positional arguments, and subcommands." msgstr "" -#: ../../whatsnew/3.13.rst:135 msgid "" "The new functions :func:`base64.z85encode` and :func:`base64.z85decode` " "support encoding and decoding `Z85 data`_." msgstr "" -#: ../../whatsnew/3.13.rst:137 msgid "" "The :mod:`copy` module now has a :func:`copy.replace` function, with support " -"for many builtin types and any class defining " -"the :func:`~object.__replace__` method." +"for many builtin types and any class defining the :func:`~object." +"__replace__` method." msgstr "" -#: ../../whatsnew/3.13.rst:140 msgid "" "The new :mod:`dbm.sqlite3` module is now the default :mod:`dbm` backend." msgstr "" -#: ../../whatsnew/3.13.rst:141 msgid "" "The :mod:`os` module has a :ref:`suite of new functions ` for " "working with Linux's timer notification file descriptors." msgstr "" -#: ../../whatsnew/3.13.rst:143 msgid "" "The :mod:`random` module now has a :ref:`command-line interface `." msgstr "" -#: ../../whatsnew/3.13.rst:145 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.13.rst:147 msgid "" -":func:`ssl.create_default_context` " -"sets :data:`ssl.VERIFY_X509_PARTIAL_CHAIN` " -"and :data:`ssl.VERIFY_X509_STRICT` as default flags." +":func:`ssl.create_default_context` sets :data:`ssl." +"VERIFY_X509_PARTIAL_CHAIN` and :data:`ssl.VERIFY_X509_STRICT` as default " +"flags." msgstr "" -#: ../../whatsnew/3.13.rst:150 msgid "C API improvements:" msgstr "" -#: ../../whatsnew/3.13.rst:152 msgid "" "The :c:data:`Py_mod_gil` slot is now used to indicate that an extension " "module supports running with the :term:`GIL` disabled." msgstr "" -#: ../../whatsnew/3.13.rst:154 msgid "" "The :doc:`PyTime C API ` has been added, providing access to " "system clocks." msgstr "" -#: ../../whatsnew/3.13.rst:156 msgid "" ":c:type:`PyMutex` is a new lightweight mutex that occupies a single byte." msgstr "" -#: ../../whatsnew/3.13.rst:157 msgid "" -"There is a new :ref:`suite of functions ` for " -"generating :pep:`669` monitoring events in the C API." +"There is a new :ref:`suite of functions ` for generating :" +"pep:`669` monitoring events in the C API." msgstr "" -#: ../../whatsnew/3.13.rst:160 msgid "New typing features:" msgstr "" -#: ../../whatsnew/3.13.rst:162 msgid "" -":pep:`696`: Type parameters " -"(:data:`typing.TypeVar`, :data:`typing.ParamSpec`, " -"and :data:`typing.TypeVarTuple`) now support defaults." +":pep:`696`: Type parameters (:data:`typing.TypeVar`, :data:`typing." +"ParamSpec`, and :data:`typing.TypeVarTuple`) now support defaults." msgstr "" -#: ../../whatsnew/3.13.rst:164 msgid "" ":pep:`702`: The new :func:`warnings.deprecated` decorator adds support for " "marking deprecations in the type system and at runtime." msgstr "" -#: ../../whatsnew/3.13.rst:166 msgid "" -":pep:`705`: :data:`typing.ReadOnly` can be used to mark an item of " -"a :class:`typing.TypedDict` as read-only for type checkers." +":pep:`705`: :data:`typing.ReadOnly` can be used to mark an item of a :class:" +"`typing.TypedDict` as read-only for type checkers." msgstr "" -#: ../../whatsnew/3.13.rst:168 msgid "" ":pep:`742`: :data:`typing.TypeIs` provides more intuitive type narrowing " "behavior, as an alternative to :data:`typing.TypeGuard`." msgstr "" -#: ../../whatsnew/3.13.rst:171 msgid "Platform support:" msgstr "" -#: ../../whatsnew/3.13.rst:173 msgid "" ":pep:`730`: Apple's iOS is now an :ref:`officially supported platform " "`, at :pep:`tier 3 <11#tier-3>`." msgstr "" -#: ../../whatsnew/3.13.rst:175 msgid "" ":pep:`738`: Android is now an :ref:`officially supported platform " "`, at :pep:`tier 3 <11#tier-3>`." msgstr "" -#: ../../whatsnew/3.13.rst:177 msgid "" "``wasm32-wasi`` is now supported as a :pep:`tier 2 <11#tier-2>` platform." msgstr "" -#: ../../whatsnew/3.13.rst:178 msgid "``wasm32-emscripten`` is no longer an officially supported platform." msgstr "" -#: ../../whatsnew/3.13.rst:180 msgid "Important removals:" msgstr "" -#: ../../whatsnew/3.13.rst:182 msgid "" -":ref:`PEP 594 `: The remaining 19 \"dead batteries\" " -"(legacy stdlib modules) have been removed from the standard library: :mod:`!" -"aifc`, :mod:`!audioop`, :mod:`!cgi`, :mod:`!cgitb`, :mod:`!chunk`, :mod:`!" -"crypt`, :mod:`!imghdr`, :mod:`!mailcap`, :mod:`!msilib`, :mod:`!nis`, :mod:`!" -"nntplib`, :mod:`!ossaudiodev`, :mod:`!pipes`, :mod:`!sndhdr`, :mod:`!" -"spwd`, :mod:`!sunau`, :mod:`!telnetlib`, :mod:`!uu` and :mod:`!xdrlib`." +":ref:`PEP 594 `: The remaining 19 \"dead " +"batteries\" (legacy stdlib modules) have been removed from the standard " +"library: :mod:`!aifc`, :mod:`!audioop`, :mod:`!cgi`, :mod:`!cgitb`, :mod:`!" +"chunk`, :mod:`!crypt`, :mod:`!imghdr`, :mod:`!mailcap`, :mod:`!msilib`, :mod:" +"`!nis`, :mod:`!nntplib`, :mod:`!ossaudiodev`, :mod:`!pipes`, :mod:`!" +"sndhdr`, :mod:`!spwd`, :mod:`!sunau`, :mod:`!telnetlib`, :mod:`!uu` and :mod:" +"`!xdrlib`." msgstr "" -#: ../../whatsnew/3.13.rst:188 msgid "" "Remove the :program:`2to3` tool and :mod:`!lib2to3` module (deprecated in " "Python 3.11)." msgstr "" -#: ../../whatsnew/3.13.rst:190 msgid "Remove the :mod:`!tkinter.tix` module (deprecated in Python 3.6)." msgstr "" -#: ../../whatsnew/3.13.rst:191 msgid "Remove the :func:`!locale.resetlocale` function." msgstr "" -#: ../../whatsnew/3.13.rst:192 msgid "Remove the :mod:`!typing.io` and :mod:`!typing.re` namespaces." msgstr "" -#: ../../whatsnew/3.13.rst:193 msgid "Remove chained :class:`classmethod` descriptors." msgstr "" -#: ../../whatsnew/3.13.rst:195 msgid "Release schedule changes:" msgstr "" -#: ../../whatsnew/3.13.rst:197 msgid "" ":pep:`602` (\"Annual Release Cycle for Python\") has been updated to extend " "the full support ('bugfix') period for new releases to two years. This " "updated policy means that:" msgstr "" -#: ../../whatsnew/3.13.rst:201 msgid "" "Python 3.9--3.12 have one and a half years of full support, followed by " "three and a half years of security fixes." msgstr "" -#: ../../whatsnew/3.13.rst:203 msgid "" "Python 3.13 and later have two years of full support, followed by three " "years of security fixes." msgstr "" -#: ../../whatsnew/3.13.rst:208 ../../whatsnew/3.13.rst:2046 msgid "New Features" msgstr "" -#: ../../whatsnew/3.13.rst:214 msgid "A better interactive interpreter" msgstr "" -#: ../../whatsnew/3.13.rst:216 msgid "" "Python now uses a new :term:`interactive` shell by default, based on code " "from the `PyPy project`_. When the user starts the :term:`REPL` from an " "interactive terminal, the following new features are now supported:" msgstr "" -#: ../../whatsnew/3.13.rst:221 msgid "Multiline editing with history preservation." msgstr "" -#: ../../whatsnew/3.13.rst:222 msgid "" "Direct support for REPL-specific commands like :kbd:`help`, :kbd:`exit`, " "and :kbd:`quit`, without the need to call them as functions." msgstr "" -#: ../../whatsnew/3.13.rst:224 msgid "" "Prompts and tracebacks with :ref:`color enabled by default `." msgstr "" -#: ../../whatsnew/3.13.rst:226 msgid "" "Interactive help browsing using :kbd:`F1` with a separate command history." msgstr "" -#: ../../whatsnew/3.13.rst:228 msgid "" -"History browsing using :kbd:`F2` that skips output as well as " -"the :term:`>>>` and :term:`...` prompts." +"History browsing using :kbd:`F2` that skips output as well as the :term:" +"`>>>` and :term:`...` prompts." msgstr "" -#: ../../whatsnew/3.13.rst:230 msgid "" "\"Paste mode\" with :kbd:`F3` that makes pasting larger blocks of code " "easier (press :kbd:`F3` again to return to the regular prompt)." msgstr "" -#: ../../whatsnew/3.13.rst:233 msgid "" "To disable the new interactive shell, set the :envvar:`PYTHON_BASIC_REPL` " "environment variable. For more on interactive mode, see :ref:`tut-interac`." msgstr "" -#: ../../whatsnew/3.13.rst:237 msgid "" "(Contributed by Pablo Galindo Salgado, Łukasz Langa, and Lysandros Nikolaou " "in :gh:`111201` based on code from the PyPy project. Windows support " "contributed by Dino Viehland and Anthony Shaw.)" msgstr "" -#: ../../whatsnew/3.13.rst:247 msgid "Improved error messages" msgstr "" -#: ../../whatsnew/3.13.rst:249 msgid "" "The interpreter now uses color by default when displaying tracebacks in the " "terminal. This feature :ref:`can be controlled ` " @@ -418,14 +346,12 @@ msgid "" "by Pablo Galindo Salgado in :gh:`112730`.)" msgstr "" -#: ../../whatsnew/3.13.rst:255 msgid "" "A common mistake is to write a script with the same name as a standard " "library module. When this results in errors, we now display a more helpful " "error message:" msgstr "" -#: ../../whatsnew/3.13.rst:259 msgid "" "$ python random.py\n" "Traceback (most recent call last):\n" @@ -440,14 +366,12 @@ msgid "" "module)" msgstr "" -#: ../../whatsnew/3.13.rst:270 msgid "" "Similarly, if a script has the same name as a third-party module that it " "attempts to import and this results in errors, we also display a more " "helpful error message:" msgstr "" -#: ../../whatsnew/3.13.rst:274 msgid "" "$ python numpy.py\n" "Traceback (most recent call last):\n" @@ -461,17 +385,14 @@ msgid "" "import)" msgstr "" -#: ../../whatsnew/3.13.rst:285 msgid "(Contributed by Shantanu Jain in :gh:`95754`.)" msgstr "" -#: ../../whatsnew/3.13.rst:287 msgid "" "The error message now tries to suggest the correct keyword argument when an " "incorrect keyword argument is passed to a function." msgstr "" -#: ../../whatsnew/3.13.rst:290 msgid "" ">>> \"Better error messages!\".split(max_split=1)\n" "Traceback (most recent call last):\n" @@ -482,16 +403,13 @@ msgid "" "mean 'maxsplit'?" msgstr "" -#: ../../whatsnew/3.13.rst:299 msgid "" "(Contributed by Pablo Galindo Salgado and Shantanu Jain in :gh:`107944`.)" msgstr "" -#: ../../whatsnew/3.13.rst:305 msgid "Free-threaded CPython" msgstr "" -#: ../../whatsnew/3.13.rst:307 msgid "" "CPython now has experimental support for running in a free-threaded mode, " "with the :term:`global interpreter lock` (GIL) disabled. This is an " @@ -504,7 +422,6 @@ msgid "" "gil` option." msgstr "" -#: ../../whatsnew/3.13.rst:317 msgid "" "Free-threaded execution allows for full utilization of the available " "processing power by running threads in parallel on available CPU cores. " @@ -517,7 +434,6 @@ msgid "" "command-line option :option:`-X gil=1`." msgstr "" -#: ../../whatsnew/3.13.rst:327 msgid "" "To check if the current interpreter supports free-threading, :option:`python " "-VV <-V>` and :data:`sys.version` contain \"experimental free-threading " @@ -525,7 +441,6 @@ msgid "" "whether the GIL is actually disabled in the running process." msgstr "" -#: ../../whatsnew/3.13.rst:332 msgid "" "C-API extension modules need to be built specifically for the free-threaded " "build. Extensions that support running with the :term:`GIL` disabled should " @@ -538,7 +453,6 @@ msgid "" "extensions in the free-threaded build." msgstr "" -#: ../../whatsnew/3.13.rst:343 msgid "" "This work was made possible thanks to many individuals and organizations, " "including the large community of contributors to Python and third-party " @@ -549,24 +463,20 @@ msgid "" "which has provided significant engineering resources to support this project." msgstr "" -#: ../../whatsnew/3.13.rst:355 msgid "" ":pep:`703` \"Making the Global Interpreter Lock Optional in CPython\" " "contains rationale and information surrounding this work." msgstr "" -#: ../../whatsnew/3.13.rst:358 msgid "" "`Porting Extension Modules to Support Free-Threading `_: A community-maintained porting guide for " "extension authors." msgstr "" -#: ../../whatsnew/3.13.rst:366 msgid "An experimental just-in-time (JIT) compiler" msgstr "" -#: ../../whatsnew/3.13.rst:368 msgid "" "When CPython is configured and built using the :option:`!--enable-" "experimental-jit` option, a just-in-time (JIT) compiler is added which may " @@ -576,133 +486,114 @@ msgid "" "information `are contained at`__ :file:`Tools/jit/README.md`." msgstr "" -#: ../../whatsnew/3.13.rst:378 msgid "" "The :option:`!--enable-experimental-jit` option takes these (optional) " "values, defaulting to ``yes`` if :option:`!--enable-experimental-jit` is " "present without the optional value." msgstr "" -#: ../../whatsnew/3.13.rst:382 msgid "``no``: Disable the entire Tier 2 and JIT pipeline." msgstr "" -#: ../../whatsnew/3.13.rst:383 msgid "" "``yes``: Enable the JIT. To disable the JIT at runtime, pass the environment " "variable ``PYTHON_JIT=0``." msgstr "" -#: ../../whatsnew/3.13.rst:385 msgid "" "``yes-off``: Build the JIT but disable it by default. To enable the JIT at " "runtime, pass the environment variable ``PYTHON_JIT=1``." msgstr "" -#: ../../whatsnew/3.13.rst:387 msgid "" "``interpreter``: Enable the Tier 2 interpreter but disable the JIT. The " "interpreter can be disabled by running with ``PYTHON_JIT=0``." msgstr "" -#: ../../whatsnew/3.13.rst:390 msgid "The internal architecture is roughly as follows:" msgstr "" -#: ../../whatsnew/3.13.rst:392 msgid "" "We start with specialized *Tier 1 bytecode*. See :ref:`What's new in 3.11 " "` for details." msgstr "" -#: ../../whatsnew/3.13.rst:394 msgid "" "When the Tier 1 bytecode gets hot enough, it gets translated to a new purely " "internal intermediate representation (IR), called the *Tier 2 IR*, and " "sometimes referred to as micro-ops (\"uops\")." msgstr "" -#: ../../whatsnew/3.13.rst:397 msgid "" "The Tier 2 IR uses the same stack-based virtual machine as Tier 1, but the " "instruction format is better suited to translation to machine code." msgstr "" -#: ../../whatsnew/3.13.rst:399 msgid "" "We have several optimization passes for Tier 2 IR, which are applied before " "it is interpreted or translated to machine code." msgstr "" -#: ../../whatsnew/3.13.rst:401 msgid "" "There is a Tier 2 interpreter, but it is mostly intended for debugging the " "earlier stages of the optimization pipeline. The Tier 2 interpreter can be " "enabled by configuring Python with ``--enable-experimental-jit=interpreter``." msgstr "" -#: ../../whatsnew/3.13.rst:405 msgid "" "When the JIT is enabled, the optimized Tier 2 IR is translated to machine " "code, which is then executed." msgstr "" -#: ../../whatsnew/3.13.rst:407 msgid "" "The machine code translation process uses a technique called *copy-and-" "patch*. It has no runtime dependencies, but there is a new build-time " "dependency on LLVM." msgstr "" -#: ../../whatsnew/3.13.rst:411 msgid ":pep:`744`" msgstr "" -#: ../../whatsnew/3.13.rst:413 msgid "" "(JIT by Brandt Bucher, inspired by a paper by Haoran Xu and Fredrik " "Kjolstad. Tier 2 IR by Mark Shannon and Guido van Rossum. Tier 2 optimizer " "by Ken Jin.)" msgstr "" -#: ../../whatsnew/3.13.rst:421 msgid "Defined mutation semantics for :py:func:`locals`" msgstr "" -#: ../../whatsnew/3.13.rst:423 msgid "" -"Historically, the expected result of mutating the return value " -"of :func:`locals` has been left to individual Python implementations to " -"define. Starting from Python 3.13, :pep:`667` standardises the historical " -"behavior of CPython for most code execution scopes, but " -"changes :term:`optimized scopes ` (functions, generators, " -"coroutines, comprehensions, and generator expressions) to explicitly return " -"independent snapshots of the currently assigned local variables, including " -"locally referenced nonlocal variables captured in closures." +"Historically, the expected result of mutating the return value of :func:" +"`locals` has been left to individual Python implementations to define. " +"Starting from Python 3.13, :pep:`667` standardises the historical behavior " +"of CPython for most code execution scopes, but changes :term:`optimized " +"scopes ` (functions, generators, coroutines, " +"comprehensions, and generator expressions) to explicitly return independent " +"snapshots of the currently assigned local variables, including locally " +"referenced nonlocal variables captured in closures." msgstr "" -#: ../../whatsnew/3.13.rst:432 msgid "" "This change to the semantics of :func:`locals` in optimized scopes also " "affects the default behavior of code execution functions that implicitly " -"target :func:`!locals` if no explicit namespace is provided (such " -"as :func:`exec` and :func:`eval`). In previous versions, whether or not " -"changes could be accessed by calling :func:`!locals` after calling the code " -"execution function was implementation-dependent. In CPython specifically, " -"such code would typically appear to work as desired, but could sometimes " -"fail in optimized scopes based on other code (including debuggers and code " -"execution tracing tools) potentially resetting the shared snapshot in that " -"scope. Now, the code will always run against an independent snapshot of the " -"local variables in optimized scopes, and hence the changes will never be " -"visible in subsequent calls to :func:`!locals`. To access the changes made " -"in these cases, an explicit namespace reference must now be passed to the " -"relevant function. Alternatively, it may make sense to update affected code " -"to use a higher level code execution API that returns the resulting code " -"execution namespace (e.g. :func:`runpy.run_path` when executing Python files " -"from disk)." -msgstr "" - -#: ../../whatsnew/3.13.rst:451 +"target :func:`!locals` if no explicit namespace is provided (such as :func:" +"`exec` and :func:`eval`). In previous versions, whether or not changes could " +"be accessed by calling :func:`!locals` after calling the code execution " +"function was implementation-dependent. In CPython specifically, such code " +"would typically appear to work as desired, but could sometimes fail in " +"optimized scopes based on other code (including debuggers and code execution " +"tracing tools) potentially resetting the shared snapshot in that scope. Now, " +"the code will always run against an independent snapshot of the local " +"variables in optimized scopes, and hence the changes will never be visible " +"in subsequent calls to :func:`!locals`. To access the changes made in these " +"cases, an explicit namespace reference must now be passed to the relevant " +"function. Alternatively, it may make sense to update affected code to use a " +"higher level code execution API that returns the resulting code execution " +"namespace (e.g. :func:`runpy.run_path` when executing Python files from " +"disk)." +msgstr "" + msgid "" "To ensure debuggers and similar tools can reliably update local variables in " "scopes affected by this change, :attr:`FrameType.f_locals ` " @@ -712,26 +603,22 @@ msgid "" "semantics." msgstr "" -#: ../../whatsnew/3.13.rst:457 msgid "" "See :pep:`667` for more details, including related C API changes and " -"deprecations. Porting notes are also provided below for the " -"affected :ref:`Python APIs ` and :ref:`C APIs " -"`." +"deprecations. Porting notes are also provided below for the affected :ref:" +"`Python APIs ` and :ref:`C APIs `." msgstr "" -#: ../../whatsnew/3.13.rst:462 msgid "" -"(PEP and implementation contributed by Mark Shannon and Tian Gao " -"in :gh:`74929`. Documentation updates provided by Guido van Rossum and " -"Alyssa Coghlan.)" +"(PEP and implementation contributed by Mark Shannon and Tian Gao in :gh:" +"`74929`. Documentation updates provided by Guido van Rossum and Alyssa " +"Coghlan.)" msgstr "" -#: ../../whatsnew/3.13.rst:470 msgid "Support for mobile platforms" msgstr "" -#: ../../whatsnew/3.13.rst:472 msgid "" ":pep:`730`: iOS is now a :pep:`11` supported platform, with the ``arm64-" "apple-ios`` and ``arm64-apple-ios-simulator`` targets at tier 3 (iPhone and " @@ -742,7 +629,6 @@ msgid "" "implementation contributed by Russell Keith-Magee in :gh:`114099`.)" msgstr "" -#: ../../whatsnew/3.13.rst:482 msgid "" ":pep:`738`: Android is now a :pep:`11` supported platform, with the " "``aarch64-linux-android`` and ``x86_64-linux-android`` targets at tier 3. " @@ -751,15 +637,12 @@ msgid "" "written and implementation contributed by Malcolm Smith in :gh:`116622`.)" msgstr "" -#: ../../whatsnew/3.13.rst:489 msgid ":pep:`730`, :pep:`738`" msgstr "" -#: ../../whatsnew/3.13.rst:493 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.13.rst:495 msgid "" "The compiler now strips common leading whitespace from every line in a " "docstring. This reduces the size of the :term:`bytecode cache ` " @@ -768,7 +651,6 @@ msgid "" "affects tools that use docstrings, such as :mod:`doctest`." msgstr "" -#: ../../whatsnew/3.13.rst:502 msgid "" ">>> def spam():\n" "... \"\"\"\n" @@ -783,28 +665,23 @@ msgid "" "multiple paragraphs!\\n'" msgstr "" -#: ../../whatsnew/3.13.rst:515 msgid "(Contributed by Inada Naoki in :gh:`81283`.)" msgstr "" -#: ../../whatsnew/3.13.rst:517 msgid "" ":ref:`Annotation scopes ` within class scopes can now " "contain lambdas and comprehensions. Comprehensions that are located within " "class scopes are not inlined into their parent scope." msgstr "" -#: ../../whatsnew/3.13.rst:522 msgid "" "class C[T]:\n" " type Alias = lambda: T" msgstr "" -#: ../../whatsnew/3.13.rst:527 msgid "(Contributed by Jelle Zijlstra in :gh:`109118` and :gh:`118160`.)" msgstr "" -#: ../../whatsnew/3.13.rst:529 msgid "" ":ref:`Future statements ` are no longer triggered by relative " "imports of the :mod:`__future__` module, meaning that statements of the form " @@ -813,15 +690,13 @@ msgid "" "in :gh:`118216`.)" msgstr "" -#: ../../whatsnew/3.13.rst:535 msgid "" ":keyword:`global` declarations are now permitted in :keyword:`except` blocks " "when that global is used in the :keyword:`else` block. Previously this " -"raised an erroneous :exc:`SyntaxError`. (Contributed by Irit Katriel " -"in :gh:`111123`.)" +"raised an erroneous :exc:`SyntaxError`. (Contributed by Irit Katriel in :gh:" +"`111123`.)" msgstr "" -#: ../../whatsnew/3.13.rst:540 msgid "" "Add :envvar:`PYTHON_FROZEN_MODULES`, a new environment variable that " "determines whether frozen modules are ignored by the import machinery, " @@ -829,23 +704,20 @@ msgid "" "(Contributed by Yilei Yang in :gh:`111374`.)" msgstr "" -#: ../../whatsnew/3.13.rst:545 msgid "" "Add :ref:`support for the perf profiler ` working without " "`frame pointers `_ through the new " "environment variable :envvar:`PYTHON_PERF_JIT_SUPPORT` and command-line " -"option :option:`-X perf_jit <-X>`. (Contributed by Pablo Galindo " -"in :gh:`118518`.)" +"option :option:`-X perf_jit <-X>`. (Contributed by Pablo Galindo in :gh:" +"`118518`.)" msgstr "" -#: ../../whatsnew/3.13.rst:551 msgid "" -"The location of a :file:`.python_history` file can be changed via the " -"new :envvar:`PYTHON_HISTORY` environment variable. (Contributed by Levi " -"Sabah, Zackery Spytz and Hugo van Kemenade in :gh:`73965`.)" +"The location of a :file:`.python_history` file can be changed via the new :" +"envvar:`PYTHON_HISTORY` environment variable. (Contributed by Levi Sabah, " +"Zackery Spytz and Hugo van Kemenade in :gh:`73965`.)" msgstr "" -#: ../../whatsnew/3.13.rst:556 msgid "" "Classes have a new :attr:`~type.__static_attributes__` attribute. This is " "populated by the compiler with a tuple of the class's attribute names which " @@ -853,139 +725,114 @@ msgid "" "(Contributed by Irit Katriel in :gh:`115775`.)" msgstr "" -#: ../../whatsnew/3.13.rst:561 msgid "" "The compiler now creates a :attr:`!__firstlineno__` attribute on classes " "with the line number of the first line of the class definition. (Contributed " "by Serhiy Storchaka in :gh:`118465`.)" msgstr "" -#: ../../whatsnew/3.13.rst:565 msgid "" "The :func:`exec` and :func:`eval` builtins now accept the *globals* and " -"*locals* arguments as keywords. (Contributed by Raphael Gaschignard " -"in :gh:`105879`)" +"*locals* arguments as keywords. (Contributed by Raphael Gaschignard in :gh:" +"`105879`)" msgstr "" -#: ../../whatsnew/3.13.rst:569 msgid "" -"The :func:`compile` builtin now accepts a new flag, " -"``ast.PyCF_OPTIMIZED_AST``, which is similar to ``ast.PyCF_ONLY_AST`` except " -"that the returned AST is optimized according to the value of the *optimize* " +"The :func:`compile` builtin now accepts a new flag, ``ast." +"PyCF_OPTIMIZED_AST``, which is similar to ``ast.PyCF_ONLY_AST`` except that " +"the returned AST is optimized according to the value of the *optimize* " "argument. (Contributed by Irit Katriel in :gh:`108113`)." msgstr "" -#: ../../whatsnew/3.13.rst:575 msgid "" "Add a :attr:`~property.__name__` attribute on :class:`property` objects. " "(Contributed by Eugene Toder in :gh:`101860`.)" msgstr "" -#: ../../whatsnew/3.13.rst:578 msgid "" -"Add :exc:`PythonFinalizationError`, a new exception derived " -"from :exc:`RuntimeError` and used to signal when operations are blocked " -"during :term:`finalization `. The following callables " -"now raise :exc:`!PythonFinalizationError`, instead of :exc:`RuntimeError`:" +"Add :exc:`PythonFinalizationError`, a new exception derived from :exc:" +"`RuntimeError` and used to signal when operations are blocked during :term:" +"`finalization `. The following callables now raise :" +"exc:`!PythonFinalizationError`, instead of :exc:`RuntimeError`:" msgstr "" -#: ../../whatsnew/3.13.rst:584 msgid ":func:`_thread.start_new_thread`" msgstr "" -#: ../../whatsnew/3.13.rst:585 msgid ":func:`os.fork`" msgstr "" -#: ../../whatsnew/3.13.rst:586 msgid ":func:`os.forkpty`" msgstr "" -#: ../../whatsnew/3.13.rst:587 msgid ":class:`subprocess.Popen`" msgstr "" -#: ../../whatsnew/3.13.rst:589 msgid "(Contributed by Victor Stinner in :gh:`114570`.)" msgstr "" -#: ../../whatsnew/3.13.rst:591 msgid "" "Allow the *count* argument of :meth:`str.replace` to be a keyword. " "(Contributed by Hugo van Kemenade in :gh:`106487`.)" msgstr "" -#: ../../whatsnew/3.13.rst:594 msgid "" "Many functions now emit a warning if a boolean value is passed as a file " "descriptor argument. This can help catch some errors earlier. (Contributed " "by Serhiy Storchaka in :gh:`82626`.)" msgstr "" -#: ../../whatsnew/3.13.rst:599 msgid "" "Added :attr:`!name` and :attr:`!mode` attributes for compressed and archived " -"file-like objects in the :mod:`bz2`, :mod:`lzma`, :mod:`tarfile`, " -"and :mod:`zipfile` modules. (Contributed by Serhiy Storchaka " -"in :gh:`115961`.)" +"file-like objects in the :mod:`bz2`, :mod:`lzma`, :mod:`tarfile`, and :mod:" +"`zipfile` modules. (Contributed by Serhiy Storchaka in :gh:`115961`.)" msgstr "" -#: ../../whatsnew/3.13.rst:606 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.13.rst:608 msgid "" ":mod:`dbm.sqlite3`: An SQLite backend for :mod:`dbm`. (Contributed by " "Raymond Hettinger and Erlend E. Aasland in :gh:`100414`.)" msgstr "" -#: ../../whatsnew/3.13.rst:613 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.13.rst:617 msgid "argparse" msgstr "" -#: ../../whatsnew/3.13.rst:619 msgid "" -"Add the *deprecated* parameter to " -"the :meth:`~argparse.ArgumentParser.add_argument` and :meth:`!add_parser` " -"methods, to enable deprecating command-line options, positional arguments, " -"and subcommands. (Contributed by Serhiy Storchaka in :gh:`83648`.)" +"Add the *deprecated* parameter to the :meth:`~argparse.ArgumentParser." +"add_argument` and :meth:`!add_parser` methods, to enable deprecating command-" +"line options, positional arguments, and subcommands. (Contributed by Serhiy " +"Storchaka in :gh:`83648`.)" msgstr "" -#: ../../whatsnew/3.13.rst:627 msgid "array" msgstr "" -#: ../../whatsnew/3.13.rst:629 msgid "" "Add the ``'w'`` type code (``Py_UCS4``) for Unicode characters. It should be " "used instead of the deprecated ``'u'`` type code. (Contributed by Inada " "Naoki in :gh:`80480`.)" msgstr "" -#: ../../whatsnew/3.13.rst:633 msgid "" "Register :class:`array.array` as a :class:`~collections.abc.MutableSequence` " "by implementing the :meth:`~array.array.clear` method. (Contributed by Mike " "Zimin in :gh:`114894`.)" msgstr "" -#: ../../whatsnew/3.13.rst:639 msgid "ast" msgstr "" -#: ../../whatsnew/3.13.rst:641 msgid "" "The constructors of node types in the :mod:`ast` module are now stricter in " "the arguments they accept, with more intuitive behavior when arguments are " "omitted." msgstr "" -#: ../../whatsnew/3.13.rst:645 msgid "" "If an optional field on an AST node is not included as an argument when " "constructing an instance, the field will now be set to ``None``. Similarly, " @@ -995,7 +842,6 @@ msgid "" "the newly constructed AST node instance.)" msgstr "" -#: ../../whatsnew/3.13.rst:653 msgid "" "In all other cases, where a required argument is omitted, the node " "constructor will emit a :exc:`DeprecationWarning`. This will raise an " @@ -1004,48 +850,41 @@ msgid "" "and will raise an exception in Python 3.15." msgstr "" -#: ../../whatsnew/3.13.rst:660 msgid "" "These changes do not apply to user-defined subclasses of :class:`ast.AST` " -"unless the class opts in to the new behavior by defining " -"the :attr:`.AST._field_types` mapping." +"unless the class opts in to the new behavior by defining the :attr:`.AST." +"_field_types` mapping." msgstr "" -#: ../../whatsnew/3.13.rst:664 msgid "" -"(Contributed by Jelle Zijlstra in :gh:`105858`, :gh:`117486`, " -"and :gh:`118851`.)" +"(Contributed by Jelle Zijlstra in :gh:`105858`, :gh:`117486`, and :gh:" +"`118851`.)" msgstr "" -#: ../../whatsnew/3.13.rst:666 msgid "" ":func:`ast.parse` now accepts an optional argument *optimize* which is " "passed on to :func:`compile`. This makes it possible to obtain an optimized " "AST. (Contributed by Irit Katriel in :gh:`108113`.)" msgstr "" -#: ../../whatsnew/3.13.rst:673 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.13.rst:675 msgid "" -":func:`asyncio.as_completed` now returns an object that is both " -"an :term:`asynchronous iterator` and a plain :term:`iterator` " -"of :term:`awaitables `. The awaitables yielded by asynchronous " -"iteration include original task or future objects that were passed in, " -"making it easier to associate results with the tasks being completed. " -"(Contributed by Justin Arthur in :gh:`77714`.)" +":func:`asyncio.as_completed` now returns an object that is both an :term:" +"`asynchronous iterator` and a plain :term:`iterator` of :term:`awaitables " +"`. The awaitables yielded by asynchronous iteration include " +"original task or future objects that were passed in, making it easier to " +"associate results with the tasks being completed. (Contributed by Justin " +"Arthur in :gh:`77714`.)" msgstr "" -#: ../../whatsnew/3.13.rst:683 msgid "" ":meth:`asyncio.loop.create_unix_server` will now automatically remove the " -"Unix socket when the server is closed. (Contributed by Pierre Ossman " -"in :gh:`111246`.)" +"Unix socket when the server is closed. (Contributed by Pierre Ossman in :gh:" +"`111246`.)" msgstr "" -#: ../../whatsnew/3.13.rst:687 msgid "" ":meth:`.DatagramTransport.sendto` will now send zero-length datagrams if " "called with an empty bytes object. The transport flow control also now " @@ -1053,28 +892,24 @@ msgid "" "(Contributed by Jamie Phan in :gh:`115199`.)" msgstr "" -#: ../../whatsnew/3.13.rst:693 msgid "" -"Add :meth:`Queue.shutdown ` " -"and :exc:`~asyncio.QueueShutDown` to manage queue termination. (Contributed " -"by Laurie Opperman and Yves Duprat in :gh:`104228`.)" +"Add :meth:`Queue.shutdown ` and :exc:`~asyncio." +"QueueShutDown` to manage queue termination. (Contributed by Laurie Opperman " +"and Yves Duprat in :gh:`104228`.)" msgstr "" -#: ../../whatsnew/3.13.rst:697 msgid "" "Add the :meth:`.Server.close_clients` and :meth:`.Server.abort_clients` " "methods, which more forcefully close an asyncio server. (Contributed by " "Pierre Ossman in :gh:`113538`.)" msgstr "" -#: ../../whatsnew/3.13.rst:701 msgid "" "Accept a tuple of separators in :meth:`.StreamReader.readuntil`, stopping " -"when any one of them is encountered. (Contributed by Bruce Merry " -"in :gh:`81322`.)" +"when any one of them is encountered. (Contributed by Bruce Merry in :gh:" +"`81322`.)" msgstr "" -#: ../../whatsnew/3.13.rst:705 msgid "" "Improve the behavior of :class:`~asyncio.TaskGroup` when an external " "cancellation collides with an internal cancellation. For example, when two " @@ -1083,42 +918,34 @@ msgid "" "because its internal cancellation was swallowed by the inner task group." msgstr "" -#: ../../whatsnew/3.13.rst:712 msgid "" "In the case where a task group is cancelled externally and also must raise " -"an :exc:`ExceptionGroup`, it will now call the parent " -"task's :meth:`~asyncio.Task.cancel` method. This ensures that " -"a :exc:`~asyncio.CancelledError` will be raised at the " -"next :keyword:`await`, so the cancellation is not lost." +"an :exc:`ExceptionGroup`, it will now call the parent task's :meth:`~asyncio." +"Task.cancel` method. This ensures that a :exc:`~asyncio.CancelledError` will " +"be raised at the next :keyword:`await`, so the cancellation is not lost." msgstr "" -#: ../../whatsnew/3.13.rst:718 msgid "" "An added benefit of these changes is that task groups now preserve the " "cancellation count (:meth:`~asyncio.Task.cancelling`)." msgstr "" -#: ../../whatsnew/3.13.rst:721 msgid "" "In order to handle some corner cases, :meth:`~asyncio.Task.uncancel` may now " "reset the undocumented ``_must_cancel`` flag when the cancellation count " "reaches zero." msgstr "" -#: ../../whatsnew/3.13.rst:725 msgid "(Inspired by an issue reported by Arthur Tacca in :gh:`116720`.)" msgstr "" -#: ../../whatsnew/3.13.rst:727 msgid "" -"When :meth:`.TaskGroup.create_task` is called on an " -"inactive :class:`~asyncio.TaskGroup`, the given coroutine will be closed " -"(which prevents a :exc:`RuntimeWarning` about the given coroutine being " -"never awaited). (Contributed by Arthur Tacca and Jason Zhang " -"in :gh:`115957`.)" +"When :meth:`.TaskGroup.create_task` is called on an inactive :class:" +"`~asyncio.TaskGroup`, the given coroutine will be closed (which prevents a :" +"exc:`RuntimeWarning` about the given coroutine being never awaited). " +"(Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.)" msgstr "" -#: ../../whatsnew/3.13.rst:733 msgid "" "The function and methods named ``create_task`` have received a new " "``**kwargs`` argument that is passed through to the task constructor. This " @@ -1130,57 +957,46 @@ msgid "" "arguments to :class:`~asyncio.Task` and to custom task factories." msgstr "" -#: ../../whatsnew/3.13.rst:744 msgid "" -"This affects the following function and " -"methods: :meth:`asyncio.create_task`, :meth:`asyncio.loop.create_task`, :meth:`asyncio.TaskGroup.create_task`. " -"(Contributed by Thomas Grainger in :gh:`128307`.)" +"This affects the following function and methods: :meth:`asyncio." +"create_task`, :meth:`asyncio.loop.create_task`, :meth:`asyncio.TaskGroup." +"create_task`. (Contributed by Thomas Grainger in :gh:`128307`.)" msgstr "" -#: ../../whatsnew/3.13.rst:751 msgid "base64" msgstr "" -#: ../../whatsnew/3.13.rst:753 msgid "" "Add :func:`~base64.z85encode` and :func:`~base64.z85decode` functions for " -"encoding :class:`bytes` as `Z85 data`_ and decoding Z85-encoded data " -"to :class:`!bytes`. (Contributed by Matan Perelman in :gh:`75299`.)" +"encoding :class:`bytes` as `Z85 data`_ and decoding Z85-encoded data to :" +"class:`!bytes`. (Contributed by Matan Perelman in :gh:`75299`.)" msgstr "" -#: ../../whatsnew/3.13.rst:762 msgid "compileall" msgstr "" -#: ../../whatsnew/3.13.rst:764 ../../whatsnew/3.13.rst:772 -#: ../../whatsnew/3.13.rst:1031 msgid "" -"The default number of worker threads and processes is now selected " -"using :func:`os.process_cpu_count` instead of :func:`os.cpu_count`. " -"(Contributed by Victor Stinner in :gh:`109649`.)" +"The default number of worker threads and processes is now selected using :" +"func:`os.process_cpu_count` instead of :func:`os.cpu_count`. (Contributed by " +"Victor Stinner in :gh:`109649`.)" msgstr "" -#: ../../whatsnew/3.13.rst:770 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.13.rst:778 ../../whatsnew/3.13.rst:1680 msgid "configparser" msgstr "" -#: ../../whatsnew/3.13.rst:780 msgid "" ":class:`~configparser.ConfigParser` now has support for unnamed sections, " "which allows for top-level key-value pairs. This can be enabled with the new " -"*allow_unnamed_section* parameter. (Contributed by Pedro Sousa Lacerda " -"in :gh:`66449`.)" +"*allow_unnamed_section* parameter. (Contributed by Pedro Sousa Lacerda in :" +"gh:`66449`.)" msgstr "" -#: ../../whatsnew/3.13.rst:787 msgid "copy" msgstr "" -#: ../../whatsnew/3.13.rst:789 msgid "" "The new :func:`~copy.replace` function and the :meth:`replace protocol " "` make creating modified copies of objects much simpler. " @@ -1189,42 +1005,34 @@ msgid "" "protocol:" msgstr "" -#: ../../whatsnew/3.13.rst:795 msgid ":func:`collections.namedtuple`" msgstr "" -#: ../../whatsnew/3.13.rst:796 msgid ":class:`dataclasses.dataclass`" msgstr "" -#: ../../whatsnew/3.13.rst:797 -msgid ":class:`datetime.datetime`, :class:`datetime.date`, :class:`datetime.time`" +msgid "" +":class:`datetime.datetime`, :class:`datetime.date`, :class:`datetime.time`" msgstr "" -#: ../../whatsnew/3.13.rst:798 msgid ":class:`inspect.Signature`, :class:`inspect.Parameter`" msgstr "" -#: ../../whatsnew/3.13.rst:799 msgid ":class:`types.SimpleNamespace`" msgstr "" -#: ../../whatsnew/3.13.rst:800 msgid ":ref:`code objects `" msgstr "" -#: ../../whatsnew/3.13.rst:802 msgid "" "Any user-defined class can also support :func:`copy.replace` by defining " -"the :meth:`~object.__replace__` method. (Contributed by Serhiy Storchaka " -"in :gh:`108751`.)" +"the :meth:`~object.__replace__` method. (Contributed by Serhiy Storchaka in :" +"gh:`108751`.)" msgstr "" -#: ../../whatsnew/3.13.rst:808 msgid "ctypes" msgstr "" -#: ../../whatsnew/3.13.rst:810 msgid "" "As a consequence of necessary internal refactoring, initialization of " "internal metaclasses now happens in ``__init__`` rather than in ``__new__``. " @@ -1232,55 +1040,46 @@ msgid "" "custom initialization. Generally:" msgstr "" -#: ../../whatsnew/3.13.rst:816 msgid "" "Custom logic that was done in ``__new__`` after calling ``super().__new__`` " "should be moved to ``__init__``." msgstr "" -#: ../../whatsnew/3.13.rst:818 msgid "" "To create a class, call the metaclass, not only the metaclass's ``__new__`` " "method." msgstr "" -#: ../../whatsnew/3.13.rst:821 msgid "" "See :gh:`124520` for discussion and links to changes in some affected " "projects." msgstr "" -#: ../../whatsnew/3.13.rst:824 msgid "" -":class:`ctypes.Structure` objects have a " -"new :attr:`~ctypes.Structure._align_` attribute which allows the alignment " -"of the structure being packed to/from memory to be specified explicitly. " -"(Contributed by Matt Sanderson in :gh:`112433`)" +":class:`ctypes.Structure` objects have a new :attr:`~ctypes.Structure." +"_align_` attribute which allows the alignment of the structure being packed " +"to/from memory to be specified explicitly. (Contributed by Matt Sanderson " +"in :gh:`112433`)" msgstr "" -#: ../../whatsnew/3.13.rst:830 msgid "dbm" msgstr "" -#: ../../whatsnew/3.13.rst:832 msgid "" "Add :mod:`dbm.sqlite3`, a new module which implements an SQLite backend, and " "make it the default :mod:`!dbm` backend. (Contributed by Raymond Hettinger " "and Erlend E. Aasland in :gh:`100414`.)" msgstr "" -#: ../../whatsnew/3.13.rst:836 msgid "" -"Allow removing all items from the database through the " -"new :meth:`.gdbm.clear` and :meth:`.ndbm.clear` methods. (Contributed by " -"Donghee Na in :gh:`107122`.)" +"Allow removing all items from the database through the new :meth:`.gdbm." +"clear` and :meth:`.ndbm.clear` methods. (Contributed by Donghee Na in :gh:" +"`107122`.)" msgstr "" -#: ../../whatsnew/3.13.rst:842 msgid "dis" msgstr "" -#: ../../whatsnew/3.13.rst:844 msgid "" "Change the output of :mod:`dis` module functions to show logical labels for " "jump targets and exception handlers, rather than offsets. The offsets can be " @@ -1288,100 +1087,84 @@ msgid "" "the *show_offsets* argument. (Contributed by Irit Katriel in :gh:`112137`.)" msgstr "" -#: ../../whatsnew/3.13.rst:851 msgid "" ":meth:`~dis.get_instructions` no longer represents cache entries as separate " -"instructions. Instead, it returns them as part of " -"the :class:`~dis.Instruction`, in the new *cache_info* field. The " -"*show_caches* argument to :meth:`~dis.get_instructions` is deprecated and no " -"longer has any effect. (Contributed by Irit Katriel in :gh:`112962`.)" +"instructions. Instead, it returns them as part of the :class:`~dis." +"Instruction`, in the new *cache_info* field. The *show_caches* argument to :" +"meth:`~dis.get_instructions` is deprecated and no longer has any effect. " +"(Contributed by Irit Katriel in :gh:`112962`.)" msgstr "" -#: ../../whatsnew/3.13.rst:863 msgid "doctest" msgstr "" -#: ../../whatsnew/3.13.rst:865 msgid "" ":mod:`doctest` output is now colored by default. This can be controlled via " "the new :envvar:`PYTHON_COLORS` environment variable as well as the " -"canonical |NO_COLOR|_ and |FORCE_COLOR|_ environment variables. See " -"also :ref:`using-on-controlling-color`. (Contributed by Hugo van Kemenade " -"in :gh:`117225`.)" +"canonical |NO_COLOR|_ and |FORCE_COLOR|_ environment variables. See also :" +"ref:`using-on-controlling-color`. (Contributed by Hugo van Kemenade in :gh:" +"`117225`.)" msgstr "" -#: ../../whatsnew/3.13.rst:872 msgid "" "The :meth:`.DocTestRunner.run` method now counts the number of skipped " "tests. Add the :attr:`.DocTestRunner.skips` and :attr:`.TestResults.skipped` " "attributes. (Contributed by Victor Stinner in :gh:`108794`.)" msgstr "" -#: ../../whatsnew/3.13.rst:878 msgid "email" msgstr "" -#: ../../whatsnew/3.13.rst:880 msgid "" -"Headers with embedded newlines are now quoted on output. " -"The :mod:`~email.generator` will now refuse to serialize (write) headers " -"that are improperly folded or delimited, such that they would be parsed as " -"multiple headers or joined with adjacent data. If you need to turn this " -"safety feature off, " -"set :attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by " -"Bas Bloemsaat and Petr Viktorin in :gh:`121650`.)" +"Headers with embedded newlines are now quoted on output. The :mod:`~email." +"generator` will now refuse to serialize (write) headers that are improperly " +"folded or delimited, such that they would be parsed as multiple headers or " +"joined with adjacent data. If you need to turn this safety feature off, set :" +"attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas " +"Bloemsaat and Petr Viktorin in :gh:`121650`.)" msgstr "" -#: ../../whatsnew/3.13.rst:888 msgid "" ":func:`~email.utils.getaddresses` and :func:`~email.utils.parseaddr` now " "return ``('', '')`` pairs in more situations where invalid email addresses " "are encountered instead of potentially inaccurate values. The two functions " "have a new optional *strict* parameter (default ``True``). To get the old " -"behavior (accepting malformed input), use ``strict=False``. " -"``getattr(email.utils, 'supports_strict_parsing', False)`` can be used to " -"check if the *strict* parameter is available. (Contributed by Thomas Dwyer " -"and Victor Stinner for :gh:`102988` to improve the :cve:`2023-27043` fix.)" +"behavior (accepting malformed input), use ``strict=False``. ``getattr(email." +"utils, 'supports_strict_parsing', False)`` can be used to check if the " +"*strict* parameter is available. (Contributed by Thomas Dwyer and Victor " +"Stinner for :gh:`102988` to improve the :cve:`2023-27043` fix.)" msgstr "" -#: ../../whatsnew/3.13.rst:900 msgid "enum" msgstr "" -#: ../../whatsnew/3.13.rst:902 msgid "" -":class:`~enum.EnumDict` has been made public to better support " -"subclassing :class:`~enum.EnumType`." +":class:`~enum.EnumDict` has been made public to better support subclassing :" +"class:`~enum.EnumType`." msgstr "" -#: ../../whatsnew/3.13.rst:907 msgid "fractions" msgstr "" -#: ../../whatsnew/3.13.rst:909 msgid "" ":class:`~fractions.Fraction` objects now support the standard :ref:`format " "specification mini-language ` rules for fill, alignment, sign " -"handling, minimum width, and grouping. (Contributed by Mark Dickinson " -"in :gh:`111320`.)" +"handling, minimum width, and grouping. (Contributed by Mark Dickinson in :gh:" +"`111320`.)" msgstr "" -#: ../../whatsnew/3.13.rst:916 msgid "glob" msgstr "" -#: ../../whatsnew/3.13.rst:918 msgid "" "Add :func:`~glob.translate`, a function to convert a path specification with " "shell-style wildcards to a regular expression. (Contributed by Barney Gale " "in :gh:`72904`.)" msgstr "" -#: ../../whatsnew/3.13.rst:924 msgid "importlib" msgstr "" -#: ../../whatsnew/3.13.rst:926 msgid "" "The following functions in :mod:`importlib.resources` now allow accessing a " "directory (or tree) of resources, using multiple positional arguments (the " @@ -1389,91 +1172,74 @@ msgid "" "keyword-only):" msgstr "" -#: ../../whatsnew/3.13.rst:931 msgid ":func:`~importlib.resources.is_resource`" msgstr "" -#: ../../whatsnew/3.13.rst:932 msgid ":func:`~importlib.resources.open_binary`" msgstr "" -#: ../../whatsnew/3.13.rst:933 msgid ":func:`~importlib.resources.open_text`" msgstr "" -#: ../../whatsnew/3.13.rst:934 msgid ":func:`~importlib.resources.path`" msgstr "" -#: ../../whatsnew/3.13.rst:935 msgid ":func:`~importlib.resources.read_binary`" msgstr "" -#: ../../whatsnew/3.13.rst:936 msgid ":func:`~importlib.resources.read_text`" msgstr "" -#: ../../whatsnew/3.13.rst:938 msgid "" "These functions are no longer deprecated and are not scheduled for removal. " "(Contributed by Petr Viktorin in :gh:`116608`.)" msgstr "" -#: ../../whatsnew/3.13.rst:941 msgid "" ":func:`~importlib.resources.contents` remains deprecated in favor of the " "fully-featured :class:`~importlib.resources.abc.Traversable` API. However, " -"there is now no plan to remove it. (Contributed by Petr Viktorin " -"in :gh:`116608`.)" +"there is now no plan to remove it. (Contributed by Petr Viktorin in :gh:" +"`116608`.)" msgstr "" -#: ../../whatsnew/3.13.rst:948 msgid "io" msgstr "" -#: ../../whatsnew/3.13.rst:950 msgid "" -"The :class:`~io.IOBase` finalizer now logs any errors raised by " -"the :meth:`~io.IOBase.close` method with :data:`sys.unraisablehook`. " -"Previously, errors were ignored silently by default, and only logged " -"in :ref:`Python Development Mode ` or when using a :ref:`Python " -"debug build `. (Contributed by Victor Stinner in :gh:`62948`.)" +"The :class:`~io.IOBase` finalizer now logs any errors raised by the :meth:" +"`~io.IOBase.close` method with :data:`sys.unraisablehook`. Previously, " +"errors were ignored silently by default, and only logged in :ref:`Python " +"Development Mode ` or when using a :ref:`Python debug build `. (Contributed by Victor Stinner in :gh:`62948`.)" msgstr "" -#: ../../whatsnew/3.13.rst:959 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.13.rst:961 msgid "" "Add the :attr:`.IPv4Address.ipv6_mapped` property, which returns the IPv4-" "mapped IPv6 address. (Contributed by Charles Machalow in :gh:`109466`.)" msgstr "" -#: ../../whatsnew/3.13.rst:965 msgid "" -"Fix ``is_global`` and ``is_private`` behavior " -"in :class:`~ipaddress.IPv4Address`, :class:`~ipaddress.IPv6Address`, :class:`~ipaddress.IPv4Network`, " -"and :class:`~ipaddress.IPv6Network`. (Contributed by Jakub Stasiak " -"in :gh:`113171`.)" +"Fix ``is_global`` and ``is_private`` behavior in :class:`~ipaddress." +"IPv4Address`, :class:`~ipaddress.IPv6Address`, :class:`~ipaddress." +"IPv4Network`, and :class:`~ipaddress.IPv6Network`. (Contributed by Jakub " +"Stasiak in :gh:`113171`.)" msgstr "" -#: ../../whatsnew/3.13.rst:972 msgid "itertools" msgstr "" -#: ../../whatsnew/3.13.rst:974 msgid "" -":func:`~itertools.batched` has a new *strict* parameter, which raises " -"a :exc:`ValueError` if the final batch is shorter than the specified batch " -"size. (Contributed by Raymond Hettinger in :gh:`113202`.)" +":func:`~itertools.batched` has a new *strict* parameter, which raises a :exc:" +"`ValueError` if the final batch is shorter than the specified batch size. " +"(Contributed by Raymond Hettinger in :gh:`113202`.)" msgstr "" -#: ../../whatsnew/3.13.rst:981 msgid "marshal" msgstr "" -#: ../../whatsnew/3.13.rst:983 msgid "" "Add the *allow_code* parameter in module functions. Passing " "``allow_code=False`` prevents serialization and de-serialization of code " @@ -1481,11 +1247,9 @@ msgid "" "Serhiy Storchaka in :gh:`113626`.)" msgstr "" -#: ../../whatsnew/3.13.rst:990 msgid "math" msgstr "" -#: ../../whatsnew/3.13.rst:992 msgid "" "The new function :func:`~math.fma` performs fused multiply-add operations. " "This computes ``x * y + z`` with only a single round, and so avoids any " @@ -1495,61 +1259,51 @@ msgid "" "Stinner in :gh:`73468`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1002 msgid "mimetypes" msgstr "" -#: ../../whatsnew/3.13.rst:1004 msgid "" "Add the :func:`~mimetypes.guess_file_type` function to guess a MIME type " "from a filesystem path. Using paths with :func:`~mimetypes.guess_type` is " -"now :term:`soft deprecated`. (Contributed by Serhiy Storchaka " -"in :gh:`66543`.)" +"now :term:`soft deprecated`. (Contributed by Serhiy Storchaka in :gh:" +"`66543`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1011 msgid "mmap" msgstr "" -#: ../../whatsnew/3.13.rst:1013 msgid "" ":class:`~mmap.mmap` is now protected from crashing on Windows when the " "mapped memory is inaccessible due to file system errors or access " "violations. (Contributed by Jannis Weigend in :gh:`118209`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1017 msgid "" ":class:`~mmap.mmap` has a new :meth:`~mmap.mmap.seekable` method that can be " -"used when a seekable file-like object is required. " -"The :meth:`~mmap.mmap.seek` method now returns the new absolute position. " -"(Contributed by Donghee Na and Sylvie Liberman in :gh:`111835`.)" +"used when a seekable file-like object is required. The :meth:`~mmap.mmap." +"seek` method now returns the new absolute position. (Contributed by Donghee " +"Na and Sylvie Liberman in :gh:`111835`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1022 msgid "" "The new UNIX-only *trackfd* parameter for :class:`~mmap.mmap` controls file " "descriptor duplication; if false, the file descriptor specified by *fileno* " -"will not be duplicated. (Contributed by Zackery Spytz and Petr Viktorin " -"in :gh:`78502`.)" +"will not be duplicated. (Contributed by Zackery Spytz and Petr Viktorin in :" +"gh:`78502`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1029 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.13.rst:1037 msgid "os" msgstr "" -#: ../../whatsnew/3.13.rst:1039 msgid "" "Add :func:`~os.process_cpu_count` function to get the number of logical CPU " "cores usable by the calling thread of the current process. (Contributed by " "Victor Stinner in :gh:`109649`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1043 msgid "" ":func:`~os.cpu_count` and :func:`~os.process_cpu_count` can be overridden " "through the new environment variable :envvar:`PYTHON_CPU_COUNT` or the new " @@ -1559,16 +1313,16 @@ msgid "" "Na in :gh:`109595`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1051 msgid "" "Add a :ref:`low level interface ` to Linux's :manpage:`timer " -"file descriptors ` " -"via :func:`~os.timerfd_create`, :func:`~os.timerfd_settime`, :func:`~os.timerfd_settime_ns`, :func:`~os.timerfd_gettime`, :func:`~os.timerfd_gettime_ns`, :const:`~os.TFD_NONBLOCK`, :const:`~os.TFD_CLOEXEC`, :const:`~os.TFD_TIMER_ABSTIME`, " +"file descriptors ` via :func:`~os.timerfd_create`, :func:" +"`~os.timerfd_settime`, :func:`~os.timerfd_settime_ns`, :func:`~os." +"timerfd_gettime`, :func:`~os.timerfd_gettime_ns`, :const:`~os." +"TFD_NONBLOCK`, :const:`~os.TFD_CLOEXEC`, :const:`~os.TFD_TIMER_ABSTIME`, " "and :const:`~os.TFD_TIMER_CANCEL_ON_SET` (Contributed by Masaru Tsuchiyama " "in :gh:`108277`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1060 msgid "" ":func:`~os.lchmod` and the *follow_symlinks* argument of :func:`~os.chmod` " "are both now available on Windows. Note that the default value of " @@ -1576,119 +1330,101 @@ msgid "" "by Serhiy Storchaka in :gh:`59616`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1066 msgid "" ":func:`~os.fchmod` and support for file descriptors in :func:`~os.chmod` are " -"both now available on Windows. (Contributed by Serhiy Storchaka " -"in :gh:`113191`.)" +"both now available on Windows. (Contributed by Serhiy Storchaka in :gh:" +"`113191`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1070 msgid "" "On Windows, :func:`~os.mkdir` and :func:`~os.makedirs` now support passing a " "*mode* value of ``0o700`` to apply access control to the new directory. This " -"implicitly affects :func:`tempfile.mkdtemp` and is a mitigation " -"for :cve:`2024-4030`. Other values for *mode* continue to be ignored. " -"(Contributed by Steve Dower in :gh:`118486`.)" +"implicitly affects :func:`tempfile.mkdtemp` and is a mitigation for :cve:" +"`2024-4030`. Other values for *mode* continue to be ignored. (Contributed by " +"Steve Dower in :gh:`118486`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1077 msgid "" ":func:`~os.posix_spawn` now accepts ``None`` for the *env* argument, which " "makes the newly spawned process use the current process environment. " "(Contributed by Jakub Kulik in :gh:`113119`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1081 msgid "" ":func:`~os.posix_spawn` can now use the :const:`~os.POSIX_SPAWN_CLOSEFROM` " -"attribute in the *file_actions* parameter on platforms that " -"support :c:func:`!posix_spawn_file_actions_addclosefrom_np`. (Contributed by " -"Jakub Kulik in :gh:`113117`.)" +"attribute in the *file_actions* parameter on platforms that support :c:func:" +"`!posix_spawn_file_actions_addclosefrom_np`. (Contributed by Jakub Kulik in :" +"gh:`113117`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1088 msgid "os.path" msgstr "" -#: ../../whatsnew/3.13.rst:1090 msgid "" "Add :func:`~os.path.isreserved` to check if a path is reserved on the " "current system. This function is only available on Windows. (Contributed by " "Barney Gale in :gh:`88569`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1095 msgid "" "On Windows, :func:`~os.path.isabs` no longer considers paths starting with " "exactly one slash (``\\`` or ``/``) to be absolute. (Contributed by Barney " "Gale and Jon Foster in :gh:`44626`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1099 msgid "" ":func:`~os.path.realpath` now resolves MS-DOS style file names even if the " "file is not accessible. (Contributed by Moonsik Park in :gh:`82367`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1105 ../../whatsnew/3.13.rst:1736 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.13.rst:1107 msgid "" -"Add :exc:`~pathlib.UnsupportedOperation`, which is raised instead " -"of :exc:`NotImplementedError` when a path operation isn't supported. " -"(Contributed by Barney Gale in :gh:`89812`.)" +"Add :exc:`~pathlib.UnsupportedOperation`, which is raised instead of :exc:" +"`NotImplementedError` when a path operation isn't supported. (Contributed by " +"Barney Gale in :gh:`89812`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1111 msgid "" "Add a new constructor for creating :class:`~pathlib.Path` objects from " "'file' URIs (``file:///``), :meth:`.Path.from_uri`. (Contributed by Barney " "Gale in :gh:`107465`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1115 msgid "" "Add :meth:`.PurePath.full_match` for matching paths with shell-style " "wildcards, including the recursive wildcard \"``**``\". (Contributed by " "Barney Gale in :gh:`73435`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1119 msgid "" "Add the :attr:`.PurePath.parser` class attribute to store the implementation " "of :mod:`os.path` used for low-level path parsing and joining. This will be " "either :mod:`!posixpath` or :mod:`!ntpath`." msgstr "" -#: ../../whatsnew/3.13.rst:1124 msgid "" -"Add *recurse_symlinks* keyword-only argument to :meth:`.Path.glob` " -"and :meth:`~pathlib.Path.rglob`. (Contributed by Barney Gale in :gh:`77609`.)" +"Add *recurse_symlinks* keyword-only argument to :meth:`.Path.glob` and :meth:" +"`~pathlib.Path.rglob`. (Contributed by Barney Gale in :gh:`77609`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1128 msgid "" ":meth:`.Path.glob` and :meth:`~pathlib.Path.rglob` now return files and " "directories when given a pattern that ends with \"``**``\". Previously, only " "directories were returned. (Contributed by Barney Gale in :gh:`70303`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1133 msgid "" "Add the *follow_symlinks* keyword-only argument to :meth:`Path.is_file " -"`, :meth:`Path.is_dir " -"`, :meth:`.Path.owner`, and :meth:`.Path.group`. " -"(Contributed by Barney Gale in :gh:`105793` and Kamil Turek in :gh:`107962`.)" +"`, :meth:`Path.is_dir `, :meth:`." +"Path.owner`, and :meth:`.Path.group`. (Contributed by Barney Gale in :gh:" +"`105793` and Kamil Turek in :gh:`107962`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1141 msgid "pdb" msgstr "" -#: ../../whatsnew/3.13.rst:1143 msgid "" ":func:`breakpoint` and :func:`~pdb.set_trace` now enter the debugger " "immediately rather than on the next line of code to be executed. This change " @@ -1697,123 +1433,101 @@ msgid "" "Gao in :gh:`118579`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1149 msgid "" "``sys.path[0]`` is no longer replaced by the directory of the script being " "debugged when :attr:`sys.flags.safe_path` is set. (Contributed by Tian Gao " "and Christian Walther in :gh:`111762`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1153 msgid "" ":mod:`zipapp` is now supported as a debugging target. (Contributed by Tian " "Gao in :gh:`118501`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1156 msgid "" "Add ability to move between chained exceptions during post-mortem debugging " "in :func:`~pdb.pm` using the new :pdbcmd:`exceptions [exc_number] " -"` command for Pdb. (Contributed by Matthias Bussonnier " -"in :gh:`106676`.)" +"` command for Pdb. (Contributed by Matthias Bussonnier in :gh:" +"`106676`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1161 msgid "" "Expressions and statements whose prefix is a pdb command are now correctly " "identified and executed. (Contributed by Tian Gao in :gh:`108464`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1167 msgid "queue" msgstr "" -#: ../../whatsnew/3.13.rst:1169 msgid "" "Add :meth:`Queue.shutdown ` and :exc:`~queue.ShutDown` " "to manage queue termination. (Contributed by Laurie Opperman and Yves Duprat " "in :gh:`104750`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1175 msgid "random" msgstr "" -#: ../../whatsnew/3.13.rst:1177 msgid "" "Add a :ref:`command-line interface `. (Contributed by Hugo van " "Kemenade in :gh:`118131`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1182 ../../whatsnew/3.13.rst:1744 msgid "re" msgstr "" -#: ../../whatsnew/3.13.rst:1184 msgid "" -"Rename :exc:`!re.error` to :exc:`~re.PatternError` for improved " -"clarity. :exc:`!re.error` is kept for backward compatibility." +"Rename :exc:`!re.error` to :exc:`~re.PatternError` for improved clarity. :" +"exc:`!re.error` is kept for backward compatibility." msgstr "" -#: ../../whatsnew/3.13.rst:1189 msgid "shutil" msgstr "" -#: ../../whatsnew/3.13.rst:1191 msgid "" -"Support the *dir_fd* and *follow_symlinks* keyword arguments " -"in :func:`~shutil.chown`. (Contributed by Berker Peksag and Tahia K " -"in :gh:`62308`)" +"Support the *dir_fd* and *follow_symlinks* keyword arguments in :func:" +"`~shutil.chown`. (Contributed by Berker Peksag and Tahia K in :gh:`62308`)" msgstr "" -#: ../../whatsnew/3.13.rst:1197 msgid "site" msgstr "" -#: ../../whatsnew/3.13.rst:1199 msgid "" -":file:`.pth` files are now decoded using UTF-8 first, and then with " -"the :term:`locale encoding` if UTF-8 decoding fails. (Contributed by Inada " -"Naoki in :gh:`117802`.)" +":file:`.pth` files are now decoded using UTF-8 first, and then with the :" +"term:`locale encoding` if UTF-8 decoding fails. (Contributed by Inada Naoki " +"in :gh:`117802`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1205 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.13.rst:1207 msgid "" "A :exc:`ResourceWarning` is now emitted if a :class:`~sqlite3.Connection` " "object is not :meth:`closed ` explicitly. " "(Contributed by Erlend E. Aasland in :gh:`105539`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1211 msgid "" "Add the *filter* keyword-only parameter to :meth:`.Connection.iterdump` for " -"filtering database objects to dump. (Contributed by Mariusz Felisiak " -"in :gh:`91602`.)" +"filtering database objects to dump. (Contributed by Mariusz Felisiak in :gh:" +"`91602`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1217 msgid "ssl" msgstr "" -#: ../../whatsnew/3.13.rst:1219 msgid "" -"The :func:`~ssl.create_default_context` API now " -"includes :data:`~ssl.VERIFY_X509_PARTIAL_CHAIN` " -"and :data:`~ssl.VERIFY_X509_STRICT` in its default flags." +"The :func:`~ssl.create_default_context` API now includes :data:`~ssl." +"VERIFY_X509_PARTIAL_CHAIN` and :data:`~ssl.VERIFY_X509_STRICT` in its " +"default flags." msgstr "" -#: ../../whatsnew/3.13.rst:1225 msgid "" ":data:`~ssl.VERIFY_X509_STRICT` may reject pre-:rfc:`5280` or malformed " "certificates that the underlying OpenSSL implementation might otherwise " "accept. Whilst disabling this is not recommended, you can do so using:" msgstr "" -#: ../../whatsnew/3.13.rst:1230 msgid "" "import ssl\n" "\n" @@ -1821,40 +1535,33 @@ msgid "" "ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT" msgstr "" -#: ../../whatsnew/3.13.rst:1237 msgid "(Contributed by William Woodruff in :gh:`112389`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1241 msgid "statistics" msgstr "" -#: ../../whatsnew/3.13.rst:1243 msgid "" "Add :func:`~statistics.kde` for kernel density estimation. This makes it " "possible to estimate a continuous probability density function from a fixed " -"number of discrete samples. (Contributed by Raymond Hettinger " -"in :gh:`115863`.)" +"number of discrete samples. (Contributed by Raymond Hettinger in :gh:" +"`115863`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1248 msgid "" "Add :func:`~statistics.kde_random` for sampling from an estimated " "probability density function created by :func:`~statistics.kde`. " "(Contributed by Raymond Hettinger in :gh:`115863`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1256 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.13.rst:1258 msgid "" "The :mod:`subprocess` module now uses the :func:`~os.posix_spawn` function " "in more situations." msgstr "" -#: ../../whatsnew/3.13.rst:1261 msgid "" "Notably, when *close_fds* is ``True`` (the default), :func:`~os.posix_spawn` " "will be used when the C library provides :c:func:`!" @@ -1863,44 +1570,37 @@ msgid "" "existing Linux :c:func:`!vfork` based code." msgstr "" -#: ../../whatsnew/3.13.rst:1268 msgid "" "A private control knob :attr:`!subprocess._USE_POSIX_SPAWN` can be set to " -"``False`` if you need to force :mod:`subprocess` to never " -"use :func:`~os.posix_spawn`. Please report your reason and platform details " -"in the :ref:`issue tracker ` if you set this so that we " -"can improve our API selection logic for everyone. (Contributed by Jakub " -"Kulik in :gh:`113117`.)" +"``False`` if you need to force :mod:`subprocess` to never use :func:`~os." +"posix_spawn`. Please report your reason and platform details in the :ref:" +"`issue tracker ` if you set this so that we can improve " +"our API selection logic for everyone. (Contributed by Jakub Kulik in :gh:" +"`113117`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1278 msgid "sys" msgstr "" -#: ../../whatsnew/3.13.rst:1280 msgid "" "Add the :func:`~sys._is_interned` function to test if a string was interned. " "This function is not guaranteed to exist in all implementations of Python. " "(Contributed by Serhiy Storchaka in :gh:`78573`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1286 msgid "tempfile" msgstr "" -#: ../../whatsnew/3.13.rst:1288 msgid "" "On Windows, the default mode ``0o700`` used by :func:`tempfile.mkdtemp` now " "limits access to the new directory due to changes to :func:`os.mkdir`. This " -"is a mitigation for :cve:`2024-4030`. (Contributed by Steve Dower " -"in :gh:`118486`.)" +"is a mitigation for :cve:`2024-4030`. (Contributed by Steve Dower in :gh:" +"`118486`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1295 msgid "time" msgstr "" -#: ../../whatsnew/3.13.rst:1297 msgid "" "On Windows, :func:`~time.monotonic` now uses the " "``QueryPerformanceCounter()`` clock for a resolution of 1 microsecond, " @@ -1908,20 +1608,17 @@ msgid "" "milliseconds. (Contributed by Victor Stinner in :gh:`88494`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1303 msgid "" "On Windows, :func:`~time.time` now uses the " "``GetSystemTimePreciseAsFileTime()`` clock for a resolution of 1 " "microsecond, instead of the ``GetSystemTimeAsFileTime()`` clock which has a " -"resolution of 15.6 milliseconds. (Contributed by Victor Stinner " -"in :gh:`63207`.)" +"resolution of 15.6 milliseconds. (Contributed by Victor Stinner in :gh:" +"`63207`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1311 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.13.rst:1313 msgid "" "Add :mod:`tkinter` widget methods: :meth:`!tk_busy_hold`, :meth:`!" "tk_busy_configure`, :meth:`!tk_busy_cget`, :meth:`!tk_busy_forget`, :meth:`!" @@ -1929,24 +1626,20 @@ msgid "" "klappnase and Serhiy Storchaka in :gh:`72684`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1319 msgid "" "The :mod:`tkinter` widget method :meth:`!wm_attributes` now accepts the " "attribute name without the minus prefix to get window attributes, for " "example ``w.wm_attributes('alpha')`` and allows specifying attributes and " -"values to set as keyword arguments, for example " -"``w.wm_attributes(alpha=0.5)``. (Contributed by Serhiy Storchaka " -"in :gh:`43457`.)" +"values to set as keyword arguments, for example ``w." +"wm_attributes(alpha=0.5)``. (Contributed by Serhiy Storchaka in :gh:`43457`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1326 msgid "" ":meth:`!wm_attributes` can now return attributes as a :class:`dict`, by " "using the new optional keyword-only parameter *return_python_dict*. " "(Contributed by Serhiy Storchaka in :gh:`43457`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1330 msgid "" ":meth:`!Text.count` can now return a simple :class:`int` when the new " "optional keyword-only parameter *return_ints* is used. Otherwise, the single " @@ -1954,28 +1647,23 @@ msgid "" "in :gh:`97928`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1335 msgid "" -"Support the \"vsapi\" element type in " -"the :meth:`~tkinter.ttk.Style.element_create` method " -"of :class:`tkinter.ttk.Style`. (Contributed by Serhiy Storchaka " -"in :gh:`68166`.)" +"Support the \"vsapi\" element type in the :meth:`~tkinter.ttk.Style." +"element_create` method of :class:`tkinter.ttk.Style`. (Contributed by Serhiy " +"Storchaka in :gh:`68166`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1340 msgid "" "Add the :meth:`!after_info` method for Tkinter widgets. (Contributed by " "Cheryl Sabella in :gh:`77020`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1343 msgid "" "Add a new :meth:`!copy_replace` method to :class:`!PhotoImage` to copy a " "region from one image to another, possibly with pixel zooming, subsampling, " "or both. (Contributed by Serhiy Storchaka in :gh:`118225`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1348 msgid "" "Add *from_coords* parameter to the :class:`!PhotoImage` methods :meth:`!" "copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and *subsample* " @@ -1983,7 +1671,6 @@ msgid "" "Serhiy Storchaka in :gh:`118225`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1354 msgid "" "Add the :class:`!PhotoImage` methods :meth:`!read` to read an image from a " "file and :meth:`!data` to get the image data. Add *background* and " @@ -1991,97 +1678,81 @@ msgid "" "Storchaka in :gh:`118271`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1362 msgid "traceback" msgstr "" -#: ../../whatsnew/3.13.rst:1364 msgid "" -"Add the :attr:`~traceback.TracebackException.exc_type_str` attribute " -"to :class:`~traceback.TracebackException`, which holds a string display of " -"the *exc_type*. Deprecate the :attr:`~traceback.TracebackException.exc_type` " +"Add the :attr:`~traceback.TracebackException.exc_type_str` attribute to :" +"class:`~traceback.TracebackException`, which holds a string display of the " +"*exc_type*. Deprecate the :attr:`~traceback.TracebackException.exc_type` " "attribute, which holds the type object itself. Add parameter *save_exc_type* " "(default ``True``) to indicate whether ``exc_type`` should be saved. " "(Contributed by Irit Katriel in :gh:`112332`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1373 msgid "" -"Add a new *show_group* keyword-only parameter " -"to :meth:`.TracebackException.format_exception_only` to (recursively) format " -"the nested exceptions of a :exc:`BaseExceptionGroup` instance. (Contributed " -"by Irit Katriel in :gh:`105292`.)" +"Add a new *show_group* keyword-only parameter to :meth:`.TracebackException." +"format_exception_only` to (recursively) format the nested exceptions of a :" +"exc:`BaseExceptionGroup` instance. (Contributed by Irit Katriel in :gh:" +"`105292`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1380 msgid "types" msgstr "" -#: ../../whatsnew/3.13.rst:1382 msgid "" ":class:`~types.SimpleNamespace` can now take a single positional argument to " "initialise the namespace's arguments. This argument must either be a mapping " -"or an iterable of key-value pairs. (Contributed by Serhiy Storchaka " -"in :gh:`108191`.)" +"or an iterable of key-value pairs. (Contributed by Serhiy Storchaka in :gh:" +"`108191`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1389 ../../whatsnew/3.13.rst:1769 msgid "typing" msgstr "" -#: ../../whatsnew/3.13.rst:1391 msgid "" ":pep:`705`: Add :data:`~typing.ReadOnly`, a special typing construct to mark " "a :class:`~typing.TypedDict` item as read-only for type checkers." msgstr "" -#: ../../whatsnew/3.13.rst:1394 msgid "" ":pep:`742`: Add :data:`~typing.TypeIs`, a typing construct that can be used " "to instruct a type checker how to narrow a type." msgstr "" -#: ../../whatsnew/3.13.rst:1397 msgid "" "Add :data:`~typing.NoDefault`, a sentinel object used to represent the " "defaults of some parameters in the :mod:`typing` module. (Contributed by " "Jelle Zijlstra in :gh:`116126`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1401 msgid "" "Add :func:`~typing.get_protocol_members` to return the set of members " -"defining a :class:`typing.Protocol`. (Contributed by Jelle Zijlstra " -"in :gh:`104873`.)" +"defining a :class:`typing.Protocol`. (Contributed by Jelle Zijlstra in :gh:" +"`104873`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1405 msgid "" -"Add :func:`~typing.is_protocol` to check whether a class is " -"a :class:`~typing.Protocol`. (Contributed by Jelle Zijlstra in :gh:`104873`.)" +"Add :func:`~typing.is_protocol` to check whether a class is a :class:" +"`~typing.Protocol`. (Contributed by Jelle Zijlstra in :gh:`104873`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1409 msgid "" ":data:`~typing.ClassVar` can now be nested in :data:`~typing.Final`, and " "vice versa. (Contributed by Mehdi Drissi in :gh:`89547`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1415 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.13.rst:1417 msgid "" "Update the Unicode database to `version 15.1.0`__. (Contributed by James " "Gerity in :gh:`109559`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1424 msgid "venv" msgstr "" -#: ../../whatsnew/3.13.rst:1426 msgid "" "Add support for creating source control management (SCM) ignore files in a " "virtual environment's directory. By default, Git is supported. This is " @@ -2091,11 +1762,9 @@ msgid "" "Cannon in :gh:`108125`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1437 msgid "warnings" msgstr "" -#: ../../whatsnew/3.13.rst:1439 msgid "" ":pep:`702`: The new :func:`warnings.deprecated` decorator provides a way to " "communicate deprecations to a :term:`static type checker` and to warn on " @@ -2104,79 +1773,64 @@ msgid "" "(Contributed by Jelle Zijlstra in :gh:`104003`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1448 msgid "xml" msgstr "" -#: ../../whatsnew/3.13.rst:1450 msgid "" "Allow controlling Expat >=2.6.0 reparse deferral (:cve:`2023-52425`) by " "adding five new methods:" msgstr "" -#: ../../whatsnew/3.13.rst:1453 msgid ":meth:`xml.etree.ElementTree.XMLParser.flush`" msgstr "" -#: ../../whatsnew/3.13.rst:1454 msgid ":meth:`xml.etree.ElementTree.XMLPullParser.flush`" msgstr "" -#: ../../whatsnew/3.13.rst:1455 msgid ":meth:`xml.parsers.expat.xmlparser.GetReparseDeferralEnabled`" msgstr "" -#: ../../whatsnew/3.13.rst:1456 msgid ":meth:`xml.parsers.expat.xmlparser.SetReparseDeferralEnabled`" msgstr "" -#: ../../whatsnew/3.13.rst:1457 msgid ":meth:`!xml.sax.expatreader.ExpatParser.flush`" msgstr "" -#: ../../whatsnew/3.13.rst:1459 msgid "(Contributed by Sebastian Pipping in :gh:`115623`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1461 msgid "" -"Add the :meth:`!close` method for the iterator returned " -"by :func:`~xml.etree.ElementTree.iterparse` for explicit cleanup. " -"(Contributed by Serhiy Storchaka in :gh:`69893`.)" +"Add the :meth:`!close` method for the iterator returned by :func:`~xml.etree." +"ElementTree.iterparse` for explicit cleanup. (Contributed by Serhiy " +"Storchaka in :gh:`69893`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1467 msgid "zipimport" msgstr "" -#: ../../whatsnew/3.13.rst:1469 msgid "" "Add support for ZIP64_ format files. Everybody loves huge data, right? " "(Contributed by Tim Hatch in :gh:`94146`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1477 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.13.rst:1479 msgid "" "Several standard library modules have had their import times significantly " "improved. For example, the import time of the :mod:`typing` module has been " -"reduced by around a third by removing dependencies on :mod:`re` " -"and :mod:`contextlib`. Other modules to enjoy import-time speedups " -"include :mod:`email.utils`, :mod:`enum`, :mod:`functools`, :mod:`importlib.metadata`, " +"reduced by around a third by removing dependencies on :mod:`re` and :mod:" +"`contextlib`. Other modules to enjoy import-time speedups include :mod:" +"`email.utils`, :mod:`enum`, :mod:`functools`, :mod:`importlib.metadata`, " "and :mod:`threading`. (Contributed by Alex Waygood, Shantanu Jain, Adam " "Turner, Daniel Hollas, and others in :gh:`109653`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1490 msgid "" ":func:`textwrap.indent` is now around 30% faster than before for large " "input. (Contributed by Inada Naoki in :gh:`107369`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1493 msgid "" "The :mod:`subprocess` module now uses the :func:`~os.posix_spawn` function " "in more situations, including when *close_fds* is ``True`` (the default) on " @@ -2186,15 +1840,12 @@ msgid "" "Kulik in :gh:`113117`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1503 msgid "Removed Modules And APIs" msgstr "" -#: ../../whatsnew/3.13.rst:1509 msgid "PEP 594: Remove \"dead batteries\" from the standard library" msgstr "" -#: ../../whatsnew/3.13.rst:1511 msgid "" ":pep:`594` proposed removing 19 modules from the standard library, " "colloquially referred to as 'dead batteries' due to their historic, " @@ -2202,61 +1853,50 @@ msgid "" "in Python 3.11, and are now removed:" msgstr "" -#: ../../whatsnew/3.13.rst:1517 msgid ":mod:`!aifc`" msgstr "" -#: ../../whatsnew/3.13.rst:1519 msgid "" ":pypi:`standard-aifc`: Use the redistribution of ``aifc`` library from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1522 msgid ":mod:`!audioop`" msgstr "" -#: ../../whatsnew/3.13.rst:1524 msgid ":pypi:`audioop-lts`: Use ``audioop-lts`` library from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1527 msgid ":mod:`!chunk`" msgstr "" -#: ../../whatsnew/3.13.rst:1529 msgid "" ":pypi:`standard-chunk`: Use the redistribution of ``chunk`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1532 msgid ":mod:`!cgi` and :mod:`!cgitb`" msgstr "" -#: ../../whatsnew/3.13.rst:1534 msgid "" -":class:`!cgi.FieldStorage` can typically be replaced " -"with :func:`urllib.parse.parse_qsl` for ``GET`` and ``HEAD`` requests, and " -"the :mod:`email.message` module or the :pypi:`multipart` library for " -"``POST`` and ``PUT`` requests." +":class:`!cgi.FieldStorage` can typically be replaced with :func:`urllib." +"parse.parse_qsl` for ``GET`` and ``HEAD`` requests, and the :mod:`email." +"message` module or the :pypi:`multipart` library for ``POST`` and ``PUT`` " +"requests." msgstr "" -#: ../../whatsnew/3.13.rst:1539 msgid "" ":func:`!cgi.parse` can be replaced by calling :func:`urllib.parse.parse_qs` " "directly on the desired query string, unless the input is ``multipart/form-" -"data``, which should be replaced as described below for :func:`!" -"cgi.parse_multipart`." +"data``, which should be replaced as described below for :func:`!cgi." +"parse_multipart`." msgstr "" -#: ../../whatsnew/3.13.rst:1544 msgid "" -":func:`!cgi.parse_header` can be replaced with the functionality in " -"the :mod:`email` package, which implements the same MIME RFCs. For example, " -"with :class:`email.message.EmailMessage`:" +":func:`!cgi.parse_header` can be replaced with the functionality in the :mod:" +"`email` package, which implements the same MIME RFCs. For example, with :" +"class:`email.message.EmailMessage`:" msgstr "" -#: ../../whatsnew/3.13.rst:1548 msgid "" "from email.message import EmailMessage\n" "\n" @@ -2265,63 +1905,52 @@ msgid "" "main, params = msg.get_content_type(), msg['content-type'].params" msgstr "" -#: ../../whatsnew/3.13.rst:1556 msgid "" -":func:`!cgi.parse_multipart` can be replaced with the functionality in " -"the :mod:`email` package, which implements the same MIME RFCs, or with " -"the :pypi:`multipart` library. For example, " -"the :class:`email.message.EmailMessage` and :class:`email.message.Message` " -"classes." +":func:`!cgi.parse_multipart` can be replaced with the functionality in the :" +"mod:`email` package, which implements the same MIME RFCs, or with the :pypi:" +"`multipart` library. For example, the :class:`email.message.EmailMessage` " +"and :class:`email.message.Message` classes." msgstr "" -#: ../../whatsnew/3.13.rst:1562 msgid "" ":pypi:`standard-cgi`: and :pypi:`standard-cgitb`: Use the redistribution of " "``cgi`` and ``cgitb`` library from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1565 msgid "" ":mod:`!crypt` and the private :mod:`!_crypt` extension. The :mod:`hashlib` " "module may be an appropriate replacement when simply hashing a value is " "required. Otherwise, various third-party libraries on PyPI are available:" msgstr "" -#: ../../whatsnew/3.13.rst:1570 msgid "" ":pypi:`bcrypt`: Modern password hashing for your software and your servers." msgstr "" -#: ../../whatsnew/3.13.rst:1572 msgid "" ":pypi:`passlib`: Comprehensive password hashing framework supporting over 30 " "schemes." msgstr "" -#: ../../whatsnew/3.13.rst:1574 msgid ":pypi:`argon2-cffi`: The secure Argon2 password hashing algorithm." msgstr "" -#: ../../whatsnew/3.13.rst:1576 msgid "" ":pypi:`legacycrypt`: :mod:`ctypes` wrapper to the POSIX crypt library call " "and associated functionality." msgstr "" -#: ../../whatsnew/3.13.rst:1579 msgid "" -":pypi:`crypt_r`: Fork of the :mod:`!crypt` module, wrapper to " -"the :manpage:`crypt_r(3)` library call and associated functionality." +":pypi:`crypt_r`: Fork of the :mod:`!crypt` module, wrapper to the :manpage:" +"`crypt_r(3)` library call and associated functionality." msgstr "" -#: ../../whatsnew/3.13.rst:1583 msgid "" ":pypi:`standard-crypt` and :pypi:`deprecated-crypt-alternative`: Use the " "redistribution of ``crypt`` and reimplementation of ``_crypt`` libraries " "from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1586 msgid "" ":mod:`!imghdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements. For example, the :func:`!" @@ -2329,362 +1958,297 @@ msgid "" "function for all file formats that were supported by :mod:`!imghdr`." msgstr "" -#: ../../whatsnew/3.13.rst:1593 msgid "" ":pypi:`standard-imghdr`: Use the redistribution of ``imghdr`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1596 msgid ":mod:`!mailcap`: Use the :mod:`mimetypes` module instead." msgstr "" -#: ../../whatsnew/3.13.rst:1599 msgid "" ":pypi:`standard-mailcap`: Use the redistribution of ``mailcap`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1602 msgid ":mod:`!msilib`" msgstr "" -#: ../../whatsnew/3.13.rst:1603 msgid ":mod:`!nis`" msgstr "" -#: ../../whatsnew/3.13.rst:1604 msgid ":mod:`!nntplib`: Use the :pypi:`pynntp` library from PyPI instead." msgstr "" -#: ../../whatsnew/3.13.rst:1607 msgid "" ":pypi:`standard-nntplib`: Use the redistribution of ``nntplib`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1610 msgid "" ":mod:`!ossaudiodev`: For audio playback, use the :pypi:`pygame` library from " "PyPI instead." msgstr "" -#: ../../whatsnew/3.13.rst:1612 msgid "" -":mod:`!pipes`: Use the :mod:`subprocess` module instead. " -"Use :func:`shlex.quote` to replace the undocumented ``pipes.quote`` function." +":mod:`!pipes`: Use the :mod:`subprocess` module instead. Use :func:`shlex." +"quote` to replace the undocumented ``pipes.quote`` function." msgstr "" -#: ../../whatsnew/3.13.rst:1617 msgid "" ":pypi:`standard-pipes`: Use the redistribution of ``pipes`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1620 msgid "" ":mod:`!sndhdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements." msgstr "" -#: ../../whatsnew/3.13.rst:1624 msgid "" ":pypi:`standard-sndhdr`: Use the redistribution of ``sndhdr`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1627 msgid ":mod:`!spwd`: Use the :pypi:`python-pam` library from PyPI instead." msgstr "" -#: ../../whatsnew/3.13.rst:1629 msgid ":mod:`!sunau`" msgstr "" -#: ../../whatsnew/3.13.rst:1631 msgid "" ":pypi:`standard-sunau`: Use the redistribution of ``sunau`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1634 msgid "" ":mod:`!telnetlib`, Use the :pypi:`telnetlib3` or :pypi:`Exscript` libraries " "from PyPI instead." msgstr "" -#: ../../whatsnew/3.13.rst:1637 msgid "" ":pypi:`standard-telnetlib`: Use the redistribution of ``telnetlib`` library " "from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1640 msgid "" ":mod:`!uu`: Use the :mod:`base64` module instead, as a modern alternative." msgstr "" -#: ../../whatsnew/3.13.rst:1643 msgid "" ":pypi:`standard-uu`: Use the redistribution of ``uu`` library from PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1646 msgid ":mod:`!xdrlib`" msgstr "" -#: ../../whatsnew/3.13.rst:1648 msgid "" ":pypi:`standard-xdrlib`: Use the redistribution of ``xdrlib`` library from " "PyPI." msgstr "" -#: ../../whatsnew/3.13.rst:1651 msgid "" -"(Contributed by Victor Stinner and Zachary Ware in :gh:`104773` " -"and :gh:`104780`.)" +"(Contributed by Victor Stinner and Zachary Ware in :gh:`104773` and :gh:" +"`104780`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1655 msgid "2to3" msgstr "" -#: ../../whatsnew/3.13.rst:1657 msgid "" "Remove the :program:`2to3` program and the :mod:`!lib2to3` module, " -"previously deprecated in Python 3.11. (Contributed by Victor Stinner " -"in :gh:`104780`.)" +"previously deprecated in Python 3.11. (Contributed by Victor Stinner in :gh:" +"`104780`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1663 msgid "builtins" msgstr "" -#: ../../whatsnew/3.13.rst:1665 msgid "" -"Remove support for chained :class:`classmethod` descriptors (introduced " -"in :gh:`63272`). These can no longer be used to wrap other descriptors, such " -"as :class:`property`. The core design of this feature was flawed and led to " +"Remove support for chained :class:`classmethod` descriptors (introduced in :" +"gh:`63272`). These can no longer be used to wrap other descriptors, such as :" +"class:`property`. The core design of this feature was flawed and led to " "several problems. To \"pass-through\" a :class:`classmethod`, consider using " "the :attr:`!__wrapped__` attribute that was added in Python 3.10. " "(Contributed by Raymond Hettinger in :gh:`89519`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1674 msgid "" "Raise a :exc:`RuntimeError` when calling :meth:`frame.clear` on a suspended " "frame (as has always been the case for an executing frame). (Contributed by " "Irit Katriel in :gh:`79932`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1682 msgid "" "Remove the undocumented :class:`!LegacyInterpolation` class, deprecated in " "the docstring since Python 3.2, and at runtime since Python 3.11. " "(Contributed by Hugo van Kemenade in :gh:`104886`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1689 msgid "importlib.metadata" msgstr "" -#: ../../whatsnew/3.13.rst:1691 msgid "" -"Remove deprecated subscript (:meth:`~object.__getitem__`) access " -"for :ref:`EntryPoint ` objects. (Contributed by Jason R. " -"Coombs in :gh:`113175`.)" +"Remove deprecated subscript (:meth:`~object.__getitem__`) access for :ref:" +"`EntryPoint ` objects. (Contributed by Jason R. Coombs in :gh:" +"`113175`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1697 msgid "locale" msgstr "" -#: ../../whatsnew/3.13.rst:1699 msgid "" "Remove the :func:`!locale.resetlocale` function, deprecated in Python 3.11. " "Use ``locale.setlocale(locale.LC_ALL, \"\")`` instead. (Contributed by " "Victor Stinner in :gh:`104783`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1705 msgid "opcode" msgstr "" -#: ../../whatsnew/3.13.rst:1707 msgid "" -"Move :attr:`!opcode.ENABLE_SPECIALIZATION` to :attr:`!" -"_opcode.ENABLE_SPECIALIZATION`. This field was added in 3.12, it was never " +"Move :attr:`!opcode.ENABLE_SPECIALIZATION` to :attr:`!_opcode." +"ENABLE_SPECIALIZATION`. This field was added in 3.12, it was never " "documented, and is not intended for external use. (Contributed by Irit " "Katriel in :gh:`105481`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1712 msgid "" -"Remove :func:`!opcode.is_pseudo`, :attr:`!opcode.MIN_PSEUDO_OPCODE`, " -"and :attr:`!opcode.MAX_PSEUDO_OPCODE`, which were added in Python 3.12, but " -"were neither documented nor exposed through :mod:`dis`, and were not " -"intended to be used externally. (Contributed by Irit Katriel " -"in :gh:`105481`.)" +"Remove :func:`!opcode.is_pseudo`, :attr:`!opcode.MIN_PSEUDO_OPCODE`, and :" +"attr:`!opcode.MAX_PSEUDO_OPCODE`, which were added in Python 3.12, but were " +"neither documented nor exposed through :mod:`dis`, and were not intended to " +"be used externally. (Contributed by Irit Katriel in :gh:`105481`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1720 msgid "optparse" msgstr "" -#: ../../whatsnew/3.13.rst:1722 msgid "" -"This module is no longer considered :term:`soft deprecated`. " -"While :mod:`argparse` remains preferred for new projects that aren't using a " -"third party command line argument processing library, there are aspects of " -"the way ``argparse`` works that mean the lower level ``optparse`` module may " -"provide a better foundation for *writing* argument processing libraries, and " -"for implementing command line applications which adhere more strictly than " +"This module is no longer considered :term:`soft deprecated`. While :mod:" +"`argparse` remains preferred for new projects that aren't using a third " +"party command line argument processing library, there are aspects of the way " +"``argparse`` works that mean the lower level ``optparse`` module may provide " +"a better foundation for *writing* argument processing libraries, and for " +"implementing command line applications which adhere more strictly than " "``argparse`` does to various Unix command line processing conventions that " "originate in the behaviour of the C :c:func:`!getopt` function . " "(Contributed by Alyssa Coghlan and Serhiy Storchaka in :gh:`126180`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1738 msgid "" "Remove the ability to use :class:`~pathlib.Path` objects as context " "managers. This functionality was deprecated and has had no effect since " "Python 3.9. (Contributed by Barney Gale in :gh:`83863`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1746 msgid "" "Remove the undocumented, deprecated, and broken :func:`!re.template` " "function and :attr:`!re.TEMPLATE` / :attr:`!re.T` flag. (Contributed by " "Serhiy Storchaka and Nikita Sobolev in :gh:`105687`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1752 msgid "tkinter.tix" msgstr "" -#: ../../whatsnew/3.13.rst:1754 msgid "" "Remove the :mod:`!tkinter.tix` module, deprecated in Python 3.6. The third-" "party Tix library which the module wrapped is unmaintained. (Contributed by " "Zachary Ware in :gh:`75552`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1760 msgid "turtle" msgstr "" -#: ../../whatsnew/3.13.rst:1762 msgid "" "Remove the :meth:`!RawTurtle.settiltangle` method, deprecated in the " "documentation since Python 3.1 and at runtime since Python 3.11. " "(Contributed by Hugo van Kemenade in :gh:`104876`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1771 msgid "" "Remove the :mod:`!typing.io` and :mod:`!typing.re` namespaces, deprecated " "since Python 3.8. The items in those namespaces can be imported directly " -"from the :mod:`typing` module. (Contributed by Sebastian Rittau " -"in :gh:`92871`.)" +"from the :mod:`typing` module. (Contributed by Sebastian Rittau in :gh:" +"`92871`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1777 msgid "" "Remove the keyword-argument method of creating :class:`~typing.TypedDict` " -"types, deprecated in Python 3.11. (Contributed by Tomas Roun " -"in :gh:`104786`.)" +"types, deprecated in Python 3.11. (Contributed by Tomas Roun in :gh:" +"`104786`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1783 msgid "unittest" msgstr "" -#: ../../whatsnew/3.13.rst:1785 msgid "" "Remove the following :mod:`unittest` functions, deprecated in Python 3.11:" msgstr "" -#: ../../whatsnew/3.13.rst:1787 msgid ":func:`!unittest.findTestCases`" msgstr "" -#: ../../whatsnew/3.13.rst:1788 msgid ":func:`!unittest.makeSuite`" msgstr "" -#: ../../whatsnew/3.13.rst:1789 msgid ":func:`!unittest.getTestCaseNames`" msgstr "" -#: ../../whatsnew/3.13.rst:1791 msgid "Use :class:`~unittest.TestLoader` methods instead:" msgstr "" -#: ../../whatsnew/3.13.rst:1793 msgid ":meth:`~unittest.TestLoader.loadTestsFromModule`" msgstr "" -#: ../../whatsnew/3.13.rst:1794 msgid ":meth:`~unittest.TestLoader.loadTestsFromTestCase`" msgstr "" -#: ../../whatsnew/3.13.rst:1795 msgid ":meth:`~unittest.TestLoader.getTestCaseNames`" msgstr "" -#: ../../whatsnew/3.13.rst:1797 msgid "(Contributed by Hugo van Kemenade in :gh:`104835`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1799 msgid "" "Remove the untested and undocumented :meth:`!TestProgram.usageExit` method, " -"deprecated in Python 3.11. (Contributed by Hugo van Kemenade " -"in :gh:`104992`.)" +"deprecated in Python 3.11. (Contributed by Hugo van Kemenade in :gh:" +"`104992`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1805 msgid "urllib" msgstr "" -#: ../../whatsnew/3.13.rst:1807 msgid "" -"Remove the *cafile*, *capath*, and *cadefault* parameters of " -"the :func:`urllib.request.urlopen` function, deprecated in Python 3.6. Use " -"the *context* parameter instead with an :class:`~ssl.SSLContext` instance. " -"The :meth:`ssl.SSLContext.load_cert_chain` function can be used to load " -"specific certificates, or let :func:`ssl.create_default_context` select the " -"operating system's trusted certificate authority (CA) certificates. " -"(Contributed by Victor Stinner in :gh:`105382`.)" +"Remove the *cafile*, *capath*, and *cadefault* parameters of the :func:" +"`urllib.request.urlopen` function, deprecated in Python 3.6. Use the " +"*context* parameter instead with an :class:`~ssl.SSLContext` instance. The :" +"meth:`ssl.SSLContext.load_cert_chain` function can be used to load specific " +"certificates, or let :func:`ssl.create_default_context` select the operating " +"system's trusted certificate authority (CA) certificates. (Contributed by " +"Victor Stinner in :gh:`105382`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1818 msgid "webbrowser" msgstr "" -#: ../../whatsnew/3.13.rst:1820 msgid "" "Remove the untested and undocumented :class:`!MacOSX` class, deprecated in " "Python 3.11. Use the :class:`!MacOSXOSAScript` class (introduced in Python " "3.2) instead. (Contributed by Hugo van Kemenade in :gh:`104804`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1825 msgid "" -"Remove the deprecated :attr:`!MacOSXOSAScript._name` attribute. Use " -"the :attr:`MacOSXOSAScript.name ` attribute " -"instead. (Contributed by Nikita Sobolev in :gh:`105546`.)" +"Remove the deprecated :attr:`!MacOSXOSAScript._name` attribute. Use the :" +"attr:`MacOSXOSAScript.name ` attribute instead. " +"(Contributed by Nikita Sobolev in :gh:`105546`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1832 msgid "New Deprecations" msgstr "" -#: ../../whatsnew/3.13.rst:1834 msgid ":ref:`User-defined functions `:" msgstr "" -#: ../../whatsnew/3.13.rst:1836 msgid "" "Deprecate assignment to a function's :attr:`~function.__code__` attribute, " "where the new code object's type does not match the function's type. The " @@ -2692,89 +2256,70 @@ msgid "" "coroutine. (Contributed by Irit Katriel in :gh:`81137`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1842 -#: ../../deprecations/pending-removal-in-3.16.rst:11 msgid ":mod:`array`:" msgstr "" -#: ../../whatsnew/3.13.rst:1844 msgid "" "Deprecate the ``'u'`` format code (:c:type:`wchar_t`) at runtime. This " "format code has been deprecated in documentation since Python 3.3, and will " "be removed in Python 3.16. Use the ``'w'`` format code (:c:type:`Py_UCS4`) " -"for Unicode characters instead. (Contributed by Hugo van Kemenade " -"in :gh:`80480`.)" +"for Unicode characters instead. (Contributed by Hugo van Kemenade in :gh:" +"`80480`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1851 -#: ../../deprecations/pending-removal-in-3.15.rst:16 msgid ":mod:`ctypes`:" msgstr "" -#: ../../whatsnew/3.13.rst:1853 msgid "" "Deprecate the undocumented :func:`!SetPointerType` function, to be removed " "in Python 3.15. (Contributed by Victor Stinner in :gh:`105733`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1857 msgid "" ":term:`Soft-deprecate ` the :func:`~ctypes.ARRAY` function " "in favour of ``type * length`` multiplication. (Contributed by Victor " "Stinner in :gh:`105733`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1861 msgid ":mod:`decimal`:" msgstr "" -#: ../../whatsnew/3.13.rst:1863 msgid "" "Deprecate the non-standard and undocumented :class:`~decimal.Decimal` format " "specifier ``'N'``, which is only supported in the :mod:`!decimal` module's C " "implementation. (Contributed by Serhiy Storchaka in :gh:`89902`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1868 msgid ":mod:`dis`:" msgstr "" -#: ../../whatsnew/3.13.rst:1870 msgid "" -"Deprecate the :attr:`!HAVE_ARGUMENT` separator. Check membership " -"in :data:`~dis.hasarg` instead. (Contributed by Irit Katriel " -"in :gh:`109319`.)" +"Deprecate the :attr:`!HAVE_ARGUMENT` separator. Check membership in :data:" +"`~dis.hasarg` instead. (Contributed by Irit Katriel in :gh:`109319`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1874 msgid ":mod:`gettext`:" msgstr "" -#: ../../whatsnew/3.13.rst:1876 msgid "" "Deprecate non-integer numbers as arguments to functions and methods that " "consider plural forms in the :mod:`!gettext` module, even if no translation " "was found. (Contributed by Serhiy Storchaka in :gh:`88434`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1881 msgid ":mod:`glob`:" msgstr "" -#: ../../whatsnew/3.13.rst:1883 msgid "" -"Deprecate the undocumented :func:`!glob0` and :func:`!glob1` functions. " -"Use :func:`~glob.glob` and pass a :term:`path-like object` specifying the " -"root directory to the *root_dir* parameter instead. (Contributed by Barney " -"Gale in :gh:`117337`.)" +"Deprecate the undocumented :func:`!glob0` and :func:`!glob1` functions. Use :" +"func:`~glob.glob` and pass a :term:`path-like object` specifying the root " +"directory to the *root_dir* parameter instead. (Contributed by Barney Gale " +"in :gh:`117337`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1888 -#: ../../deprecations/pending-removal-in-3.15.rst:21 msgid ":mod:`http.server`:" msgstr "" -#: ../../whatsnew/3.13.rst:1890 msgid "" "Deprecate :class:`~http.server.CGIHTTPRequestHandler`, to be removed in " "Python 3.15. Process-based CGI HTTP servers have been out of favor for a " @@ -2783,30 +2328,24 @@ msgid "" "by Gregory P. Smith in :gh:`109096`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1897 msgid "" "Deprecate the :option:`!--cgi` flag to the :program:`python -m http.server` " "command-line interface, to be removed in Python 3.15. (Contributed by " "Gregory P. Smith in :gh:`109096`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1902 -#: ../../deprecations/pending-removal-in-3.16.rst:70 msgid ":mod:`mimetypes`:" msgstr "" -#: ../../whatsnew/3.13.rst:1904 msgid "" -":term:`Soft-deprecate ` file path arguments " -"to :func:`~mimetypes.guess_type`, use :func:`~mimetypes.guess_file_type` " -"instead. (Contributed by Serhiy Storchaka in :gh:`66543`.)" +":term:`Soft-deprecate ` file path arguments to :func:" +"`~mimetypes.guess_type`, use :func:`~mimetypes.guess_file_type` instead. " +"(Contributed by Serhiy Storchaka in :gh:`66543`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1909 msgid ":mod:`re`:" msgstr "" -#: ../../whatsnew/3.13.rst:1911 msgid "" "Deprecate passing the optional *maxsplit*, *count*, or *flags* arguments as " "positional arguments to the module-level :func:`~re.split`, :func:`~re.sub`, " @@ -2815,133 +2354,105 @@ msgid "" "by Serhiy Storchaka in :gh:`56166`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1918 -#: ../../deprecations/pending-removal-in-3.15.rst:46 msgid ":mod:`pathlib`:" msgstr "" -#: ../../whatsnew/3.13.rst:1920 msgid "" -"Deprecate :meth:`.PurePath.is_reserved`, to be removed in Python 3.15. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows. " -"(Contributed by Barney Gale in :gh:`88569`.)" +"Deprecate :meth:`.PurePath.is_reserved`, to be removed in Python 3.15. Use :" +"func:`os.path.isreserved` to detect reserved paths on Windows. (Contributed " +"by Barney Gale in :gh:`88569`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1925 -#: ../../deprecations/pending-removal-in-3.15.rst:52 msgid ":mod:`platform`:" msgstr "" -#: ../../whatsnew/3.13.rst:1927 msgid "" "Deprecate :func:`~platform.java_ver`, to be removed in Python 3.15. This " "function is only useful for Jython support, has a confusing API, and is " "largely untested. (Contributed by Nikita Sobolev in :gh:`116349`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1933 msgid ":mod:`pydoc`:" msgstr "" -#: ../../whatsnew/3.13.rst:1935 msgid "" "Deprecate the undocumented :func:`!ispackage` function. (Contributed by " "Zackery Spytz in :gh:`64020`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1938 -#: ../../deprecations/pending-removal-in-3.14.rst:91 msgid ":mod:`sqlite3`:" msgstr "" -#: ../../whatsnew/3.13.rst:1940 msgid "" -"Deprecate passing more than one positional argument to " -"the :func:`~sqlite3.connect` function and the :class:`~sqlite3.Connection` " -"constructor. The remaining parameters will become keyword-only in Python " -"3.15. (Contributed by Erlend E. Aasland in :gh:`107948`.)" +"Deprecate passing more than one positional argument to the :func:`~sqlite3." +"connect` function and the :class:`~sqlite3.Connection` constructor. The " +"remaining parameters will become keyword-only in Python 3.15. (Contributed " +"by Erlend E. Aasland in :gh:`107948`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1946 msgid "" "Deprecate passing name, number of arguments, and the callable as keyword " -"arguments for :meth:`.Connection.create_function` " -"and :meth:`.Connection.create_aggregate` These parameters will become " -"positional-only in Python 3.15. (Contributed by Erlend E. Aasland " -"in :gh:`108278`.)" +"arguments for :meth:`.Connection.create_function` and :meth:`.Connection." +"create_aggregate` These parameters will become positional-only in Python " +"3.15. (Contributed by Erlend E. Aasland in :gh:`108278`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1952 msgid "" -"Deprecate passing the callback callable by keyword for " -"the :meth:`~sqlite3.Connection.set_authorizer`, :meth:`~sqlite3.Connection.set_progress_handler`, " -"and :meth:`~sqlite3.Connection.set_trace_callback` :class:`~sqlite3.Connection` " -"methods. The callback callables will become positional-only in Python 3.15. " -"(Contributed by Erlend E. Aasland in :gh:`108278`.)" +"Deprecate passing the callback callable by keyword for the :meth:`~sqlite3." +"Connection.set_authorizer`, :meth:`~sqlite3.Connection." +"set_progress_handler`, and :meth:`~sqlite3.Connection.set_trace_callback` :" +"class:`~sqlite3.Connection` methods. The callback callables will become " +"positional-only in Python 3.15. (Contributed by Erlend E. Aasland in :gh:" +"`108278`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1960 -#: ../../deprecations/pending-removal-in-3.16.rst:90 msgid ":mod:`sys`:" msgstr "" -#: ../../whatsnew/3.13.rst:1962 msgid "" "Deprecate the :func:`~sys._enablelegacywindowsfsencoding` function, to be " "removed in Python 3.16. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable instead. (Contributed by Inada Naoki in :gh:`73427`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1967 -#: ../../deprecations/pending-removal-in-3.16.rst:102 msgid ":mod:`tarfile`:" msgstr "" -#: ../../whatsnew/3.13.rst:1969 msgid "" "Deprecate the undocumented and unused :attr:`!TarFile.tarfile` attribute, to " "be removed in Python 3.16. (Contributed in :gh:`115256`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1973 msgid ":mod:`traceback`:" msgstr "" -#: ../../whatsnew/3.13.rst:1975 msgid "" -"Deprecate the :attr:`.TracebackException.exc_type` attribute. " -"Use :attr:`.TracebackException.exc_type_str` instead. (Contributed by Irit " -"Katriel in :gh:`112332`.)" +"Deprecate the :attr:`.TracebackException.exc_type` attribute. Use :attr:`." +"TracebackException.exc_type_str` instead. (Contributed by Irit Katriel in :" +"gh:`112332`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1979 -#: ../../deprecations/pending-removal-in-3.15.rst:80 -#: ../../deprecations/pending-removal-in-3.17.rst:4 msgid ":mod:`typing`:" msgstr "" -#: ../../whatsnew/3.13.rst:1981 msgid "" -"Deprecate the undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (e.g. ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``), to be removed in Python 3.15. Use " -"the class-based syntax or the functional syntax instead. (Contributed by " -"Alex Waygood in :gh:`105566`.)" +"Deprecate the undocumented keyword argument syntax for creating :class:" +"`~typing.NamedTuple` classes (e.g. ``Point = NamedTuple(\"Point\", x=int, " +"y=int)``), to be removed in Python 3.15. Use the class-based syntax or the " +"functional syntax instead. (Contributed by Alex Waygood in :gh:`105566`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1988 msgid "" -"Deprecate omitting the *fields* parameter when creating " -"a :class:`~typing.NamedTuple` or :class:`typing.TypedDict` class, and " -"deprecate passing ``None`` to the *fields* parameter of both types. Python " -"3.15 will require a valid sequence for the *fields* parameter. To create a " -"NamedTuple class with zero fields, use ``class NT(NamedTuple): pass`` or " -"``NT = NamedTuple(\"NT\", ())``. To create a TypedDict class with zero " -"fields, use ``class TD(TypedDict): pass`` or ``TD = TypedDict(\"TD\", {})``. " -"(Contributed by Alex Waygood in :gh:`105566` and :gh:`105570`.)" +"Deprecate omitting the *fields* parameter when creating a :class:`~typing." +"NamedTuple` or :class:`typing.TypedDict` class, and deprecate passing " +"``None`` to the *fields* parameter of both types. Python 3.15 will require a " +"valid sequence for the *fields* parameter. To create a NamedTuple class with " +"zero fields, use ``class NT(NamedTuple): pass`` or ``NT = NamedTuple(\"NT\", " +"())``. To create a TypedDict class with zero fields, use ``class " +"TD(TypedDict): pass`` or ``TD = TypedDict(\"TD\", {})``. (Contributed by " +"Alex Waygood in :gh:`105566` and :gh:`105570`.)" msgstr "" -#: ../../whatsnew/3.13.rst:1998 msgid "" "Deprecate the :func:`typing.no_type_check_decorator` decorator function, to " "be removed in Python 3.15. After eight years in the :mod:`typing` module, it " @@ -2949,7 +2460,6 @@ msgid "" "Waygood in :gh:`106309`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2004 msgid "" "Deprecate :data:`typing.AnyStr`. In Python 3.16, it will be removed from " "``typing.__all__``, and a :exc:`DeprecationWarning` will be emitted at " @@ -2958,87 +2468,68 @@ msgid "" "(Contributed by Michael The in :gh:`107116`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2012 -#: ../../deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: ../../whatsnew/3.13.rst:2014 msgid "" -"Deprecate the :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " -"and :meth:`~wave.Wave_read.getmarkers` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes, to be " -"removed in Python 3.15. (Contributed by Victor Stinner in :gh:`105096`.)" +"Deprecate the :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:" +"`~wave.Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :" +"class:`~wave.Wave_write` classes, to be removed in Python 3.15. (Contributed " +"by Victor Stinner in :gh:`105096`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:2 -#: ../../deprecations/pending-removal-in-3.14.rst:2 msgid "Pending removal in Python 3.14" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:4 msgid "" ":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" "argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " "(Contributed by Nikita Sobolev in :gh:`92248`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:9 msgid "" ":mod:`ast`: The following features have been deprecated in documentation " "since Python 3.8, now cause a :exc:`DeprecationWarning` to be emitted at " "runtime when they are accessed or used, and will be removed in Python 3.14:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:13 msgid ":class:`!ast.Num`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:14 msgid ":class:`!ast.Str`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:15 msgid ":class:`!ast.Bytes`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:16 msgid ":class:`!ast.NameConstant`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:17 msgid ":class:`!ast.Ellipsis`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:19 msgid "" -"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka " -"in :gh:`90953`.)" +"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:" +"`90953`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:22 -#: ../../deprecations/pending-removal-in-3.16.rst:19 msgid ":mod:`asyncio`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:24 msgid "" "The child watcher classes :class:`!asyncio.MultiLoopChildWatcher`, :class:`!" -"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` " -"and :class:`!asyncio.SafeChildWatcher` are deprecated and will be removed in " -"Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` and :class:" +"`!asyncio.SafeChildWatcher` are deprecated and will be removed in Python " +"3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:30 msgid "" -":func:`!asyncio.set_child_watcher`, :func:`!" -"asyncio.get_child_watcher`, :meth:`!" -"asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" +":func:`!asyncio.set_child_watcher`, :func:`!asyncio.get_child_watcher`, :" +"meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" "asyncio.AbstractEventLoopPolicy.get_child_watcher` are deprecated and will " "be removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:36 msgid "" "The :meth:`~asyncio.get_event_loop` method of the default event loop policy " "now emits a :exc:`DeprecationWarning` if there is no current event loop set " @@ -3046,55 +2537,42 @@ msgid "" "Rossum in :gh:`100160`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:41 msgid "" ":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " "Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, " -"or :class:`collections.abc.Buffer`. (Contributed by Shantanu Jain " -"in :gh:`91896`.)" +"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." +"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:47 msgid "" -":mod:`email`: Deprecated the *isdst* parameter " -"in :func:`email.utils.localtime`. (Contributed by Alan Williams " -"in :gh:`72346`.)" +":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." +"localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:50 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:54 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:56 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:58 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:59 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:61 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:63 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -3102,165 +2580,131 @@ msgid "" "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:69 msgid "" ":mod:`multiprocessing`: The default start method will change to a safer one " "on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " "currently the default (:gh:`84559`). Adding a runtime warning about this was " "deemed too disruptive as the majority of code is not expected to care. Use " -"the :func:`~multiprocessing.get_context` " -"or :func:`~multiprocessing.set_start_method` APIs to explicitly specify when " -"your code *requires* ``'fork'``. See :ref:`multiprocessing-start-methods`." +"the :func:`~multiprocessing.get_context` or :func:`~multiprocessing." +"set_start_method` APIs to explicitly specify when your code *requires* " +"``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:77 msgid "" -":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` " -"and :meth:`~pathlib.PurePath.relative_to`: passing additional arguments is " -"deprecated." +":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." +"PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:81 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:86 msgid ":mod:`pty`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:88 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:89 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:93 msgid ":data:`!version` and :data:`!version_info`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:95 msgid "" -":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` " -"if :ref:`named placeholders ` are used and " -"*parameters* is a sequence instead of a :class:`dict`." +":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` if :" +"ref:`named placeholders ` are used and *parameters* is " +"a sequence instead of a :class:`dict`." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:99 msgid "" ":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " "causes a :exc:`DeprecationWarning` to be emitted when it is used." msgstr "" -#: ../../deprecations/pending-removal-in-3.14.rst:102 msgid "" ":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " -"intended to be a public API. (Contributed by Gregory P. Smith " -"in :gh:`88168`.)" +"intended to be a public API. (Contributed by Gregory P. Smith in :gh:" +"`88168`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:2 -#: ../../deprecations/pending-removal-in-3.15.rst:2 msgid "Pending removal in Python 3.15" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:4 -#: ../../deprecations/pending-removal-in-3.16.rst:4 msgid "The import system:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:6 msgid "" -"Setting :attr:`~module.__cached__` on a module while failing to " -"set :attr:`__spec__.cached ` is " -"deprecated. In Python 3.15, :attr:`!__cached__` will cease to be set or take " -"into consideration by the import system or standard library. (:gh:`97879`)" +"Setting :attr:`~module.__cached__` on a module while failing to set :attr:" +"`__spec__.cached ` is deprecated. In " +"Python 3.15, :attr:`!__cached__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:11 msgid "" -"Setting :attr:`~module.__package__` on a module while failing to " -"set :attr:`__spec__.parent ` is " -"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " -"take into consideration by the import system or standard library. " -"(:gh:`97879`)" +"Setting :attr:`~module.__package__` on a module while failing to set :attr:" +"`__spec__.parent ` is deprecated. In " +"Python 3.15, :attr:`!__package__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:18 msgid "" "The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " "since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:23 msgid "" "The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " "been deprecated since Python 3.13. No direct replacement exists. *Anything* " "is better than CGI to interface a web server with a request handler." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:29 msgid "" "The :option:`!--cgi` flag to the :program:`python -m http.server` command-" "line interface has been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:32 -#: ../../deprecations/pending-removal-in-future.rst:64 msgid ":mod:`importlib`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:34 msgid "``load_module()`` method: use ``exec_module()`` instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:36 msgid ":class:`locale`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:38 msgid "" "The :func:`~locale.getdefaultlocale` function has been deprecated since " -"Python 3.11. Its removal was originally planned for Python 3.13 " -"(:gh:`90817`), but has been postponed to Python 3.15. " -"Use :func:`~locale.getlocale`, :func:`~locale.setlocale`, " -"and :func:`~locale.getencoding` instead. (Contributed by Hugo van Kemenade " -"in :gh:`111187`.)" +"Python 3.11. Its removal was originally planned for Python 3.13 (:gh:" +"`90817`), but has been postponed to Python 3.15. Use :func:`~locale." +"getlocale`, :func:`~locale.setlocale`, and :func:`~locale.getencoding` " +"instead. (Contributed by Hugo van Kemenade in :gh:`111187`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:48 msgid "" -":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows." +":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. Use :" +"func:`os.path.isreserved` to detect reserved paths on Windows." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:54 msgid "" ":func:`~platform.java_ver` has been deprecated since Python 3.13. This " "function is only useful for Jython support, has a confusing API, and is " "largely untested." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:58 -#: ../../deprecations/pending-removal-in-3.16.rst:96 msgid ":mod:`sysconfig`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:60 msgid "" "The *check_home* argument of :func:`sysconfig.is_python_build` has been " "deprecated since Python 3.12." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:63 msgid ":mod:`threading`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:65 msgid "" ":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " "arguments has been deprecated since Python 3.14, as the Python version does " @@ -3268,11 +2712,9 @@ msgid "" "or keyword arguments, ignoring every argument." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:71 msgid ":mod:`types`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:73 msgid "" ":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " "deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " @@ -3280,15 +2722,13 @@ msgid "" "in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:82 msgid "" -"The undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " -"3.13. Use the class-based syntax or the functional syntax instead." +"The undocumented keyword argument syntax for creating :class:`~typing." +"NamedTuple` classes (for example, ``Point = NamedTuple(\"Point\", x=int, " +"y=int)``) has been deprecated since Python 3.13. Use the class-based syntax " +"or the functional syntax instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:88 msgid "" "When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " "to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " @@ -3297,100 +2737,80 @@ msgid "" "TypedDict(\"TD\", {})`` to create a TypedDict with zero field." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:95 msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:102 msgid "" -"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " -"and :meth:`~wave.Wave_read.getmarkers` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " -"deprecated since Python 3.13." +"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." +"Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" +"`~wave.Wave_write` classes have been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:107 msgid ":mod:`zipimport`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:109 msgid "" ":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " "3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " "by Jiahao Li in :gh:`125746`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:2 -#: ../../deprecations/pending-removal-in-3.16.rst:2 msgid "Pending removal in Python 3.16" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:6 msgid "" -"Setting :attr:`~module.__loader__` on a module while failing to " -"set :attr:`__spec__.loader ` is " -"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " -"taken into consideration by the import system or the standard library." +"Setting :attr:`~module.__loader__` on a module while failing to set :attr:" +"`__spec__.loader ` is deprecated. In " +"Python 3.16, :attr:`!__loader__` will cease to be set or taken into " +"consideration by the import system or the standard library." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:13 msgid "" "The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " "documentation since Python 3.3 and at runtime since Python 3.13. Use the " "``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:21 msgid "" ":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " "Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " "by Jiahao Li and Kumar Aditya in :gh:`122875`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:26 msgid "" ":mod:`asyncio` policy system is deprecated and will be removed in Python " "3.16. In particular, the following classes and functions are deprecated:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:29 msgid ":class:`asyncio.AbstractEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:30 msgid ":class:`asyncio.DefaultEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:31 msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:32 msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:33 msgid ":func:`asyncio.get_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:34 msgid ":func:`asyncio.set_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:36 msgid "" "Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " "*loop_factory* to use the desired event loop implementation." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:39 msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:41 msgid "" "import asyncio\n" "\n" @@ -3400,16 +2820,12 @@ msgid "" "asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:48 msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:50 -#: ../../deprecations/pending-removal-in-future.rst:16 msgid ":mod:`builtins`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:52 msgid "" "Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " "deprecated since Python 3.12, as it produces surprising and unintuitive " @@ -3418,82 +2834,68 @@ msgid "" "underlying integer, convert to ``int`` explicitly (``~int(x)``)." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:59 msgid ":mod:`functools`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:61 msgid "" "Calling the Python implementation of :func:`functools.reduce` with " "*function* or *sequence* as keyword arguments has been deprecated since " "Python 3.14." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:64 msgid ":mod:`logging`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:66 msgid "" "Support for custom logging handlers with the *strm* argument is deprecated " "and scheduled for removal in Python 3.16. Define handlers with the *stream* " "argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:72 msgid "" -"Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" +"Valid extensions start with a '.' or are empty for :meth:`mimetypes." +"MimeTypes.add_type`. Undotted extensions are deprecated and will raise a :" +"exc:`ValueError` in Python 3.16. (Contributed by Hugo van Kemenade in :gh:" +"`75223`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:78 msgid ":mod:`shutil`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:80 msgid "" "The :class:`!ExecError` exception has been deprecated since Python 3.14. It " "has not been used by any function in :mod:`!shutil` since Python 3.4, and is " "now an alias of :exc:`RuntimeError`." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:85 msgid ":mod:`symtable`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:87 msgid "" "The :meth:`Class.get_methods ` method has been " "deprecated since Python 3.14." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:92 msgid "" "The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " "since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:98 msgid "" "The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " "since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " "instead." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:104 msgid "" "The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " "deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:2 msgid "Pending removal in Python 3.17" msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:6 msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " @@ -3503,174 +2905,142 @@ msgid "" "of relying on private implementation details." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:2 -#: ../../deprecations/pending-removal-in-future.rst:2 msgid "Pending removal in future versions" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:4 msgid "" "The following APIs will be removed in the future, although there is " "currently no date scheduled for their removal." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:7 msgid ":mod:`argparse`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:9 msgid "" "Nesting argument groups and nesting mutually exclusive groups are deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:11 msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." +"Passing the undocumented keyword argument *prefix_chars* to :meth:`~argparse." +"ArgumentParser.add_argument_group` is now deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:14 msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:18 msgid "``bool(NotImplemented)``." -msgstr "``bool(NotImplemented)``." +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:22 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " "ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " "``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " -"if the numeric literal is immediately followed by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In a future release it will be changed to a syntax " -"error. (:gh:`87999`)" +"if the numeric literal is immediately followed by one of keywords :keyword:" +"`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :" +"keyword:`is` and :keyword:`or`. In a future release it will be changed to a " +"syntax error. (:gh:`87999`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:30 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:33 msgid "" -"Support for ``__float__()`` method returning a strict subclass " -"of :class:`float`: these methods will be required to return an instance " -"of :class:`float`." +"Support for ``__float__()`` method returning a strict subclass of :class:" +"`float`: these methods will be required to return an instance of :class:" +"`float`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:36 msgid "" -"Support for ``__complex__()`` method returning a strict subclass " -"of :class:`complex`: these methods will be required to return an instance " -"of :class:`complex`." +"Support for ``__complex__()`` method returning a strict subclass of :class:" +"`complex`: these methods will be required to return an instance of :class:" +"`complex`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:39 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:40 msgid "" -"Passing a complex number as the *real* or *imag* argument in " -"the :func:`complex` constructor is now deprecated; it should only be passed " -"as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" +"Passing a complex number as the *real* or *imag* argument in the :func:" +"`complex` constructor is now deprecated; it should only be passed as a " +"single positional argument. (Contributed by Serhiy Storchaka in :gh:" +"`109218`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:45 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " -"are deprecated and replaced by :data:`calendar.JANUARY` " -"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " -"in :gh:`103636`.)" +"are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." +"FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:50 msgid "" -":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " -"(:gh:`133038`)" +":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" +"`133038`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:52 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:55 msgid ":mod:`datetime`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:57 msgid "" -":meth:`~datetime.datetime.utcnow`: use " -"``datetime.datetime.now(tz=datetime.UTC)``." +":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." +"UTC)``." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:59 msgid "" -":meth:`~datetime.datetime.utcfromtimestamp`: use " -"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." +":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." +"fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:62 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:66 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:69 msgid ":mod:`importlib.metadata`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:71 msgid "``EntryPoints`` tuple interface." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:72 msgid "Implicit ``None`` on return values." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:74 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:77 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:80 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:82 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:85 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -3679,110 +3049,86 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:92 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:94 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:97 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:99 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:100 msgid "" -":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " -"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" +"`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:104 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "``ssl.PROTOCOL_SSLv3``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLS``" -msgstr "``ssl.PROTOCOL_TLS``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "``ssl.PROTOCOL_TLSv1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "``ssl.PROTOCOL_TLSv1_1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:109 msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "``ssl.PROTOCOL_TLSv1_2``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.SSLv3``" -msgstr "``ssl.TLSVersion.SSLv3``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1``" -msgstr "``ssl.TLSVersion.TLSv1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:112 msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "``ssl.TLSVersion.TLSv1_1``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:114 msgid ":mod:`threading` methods:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:116 msgid "" -":meth:`!threading.Condition.notifyAll`: " -"use :meth:`~threading.Condition.notify_all`." +":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." +"notify_all`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:117 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:118 msgid "" -":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " -"use :attr:`threading.Thread.daemon` attribute." +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" +"attr:`threading.Thread.daemon` attribute." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:120 msgid "" -":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " -"use :attr:`threading.Thread.name` attribute." +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" +"attr:`threading.Thread.name` attribute." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:123 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:125 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:127 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -3790,328 +3136,262 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:132 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:137 msgid "``splitattr()``" -msgstr "``splitattr()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:138 msgid "``splithost()``" -msgstr "``splithost()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:139 msgid "``splitnport()``" -msgstr "``splitnport()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:140 msgid "``splitpasswd()``" -msgstr "``splitpasswd()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:141 msgid "``splitport()``" -msgstr "``splitport()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:142 msgid "``splitquery()``" -msgstr "``splitquery()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:143 msgid "``splittag()``" -msgstr "``splittag()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:144 msgid "``splittype()``" -msgstr "``splittype()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:145 msgid "``splituser()``" -msgstr "``splituser()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:146 msgid "``splitvalue()``" -msgstr "``splitvalue()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:147 msgid "``to_bytes()``" -msgstr "``to_bytes()``" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:149 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:152 msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of " -"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " -"release it will always return ``True``. Prefer explicit ``len(elem)`` or " -"``elem is not None`` tests instead." +":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." +"etree.ElementTree.Element` is deprecated. In a future release it will always " +"return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " +"instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:157 msgid "" -":func:`sys._clear_type_cache` is deprecated: " -"use :func:`sys._clear_internal_caches` instead." +":func:`sys._clear_type_cache` is deprecated: use :func:`sys." +"_clear_internal_caches` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2033 msgid "CPython Bytecode Changes" msgstr "" -#: ../../whatsnew/3.13.rst:2035 msgid "" "The oparg of :opcode:`YIELD_VALUE` is now ``1`` if the yield is part of a " "yield-from or await, and ``0`` otherwise. The oparg of :opcode:`RESUME` was " "changed to add a bit indicating if the except-depth is 1, which is needed to " -"optimize closing of generators. (Contributed by Irit Katriel " -"in :gh:`111354`.)" +"optimize closing of generators. (Contributed by Irit Katriel in :gh:" +"`111354`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2043 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.13.rst:2048 msgid "" -"Add the :ref:`PyMonitoring C API ` for " -"generating :pep:`669` monitoring events:" +"Add the :ref:`PyMonitoring C API ` for generating :pep:" +"`669` monitoring events:" msgstr "" -#: ../../whatsnew/3.13.rst:2051 msgid ":c:type:`PyMonitoringState`" msgstr "" -#: ../../whatsnew/3.13.rst:2052 msgid ":c:func:`PyMonitoring_FirePyStartEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2053 msgid ":c:func:`PyMonitoring_FirePyResumeEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2054 msgid ":c:func:`PyMonitoring_FirePyReturnEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2055 msgid ":c:func:`PyMonitoring_FirePyYieldEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2056 msgid ":c:func:`PyMonitoring_FireCallEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2057 msgid ":c:func:`PyMonitoring_FireLineEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2058 msgid ":c:func:`PyMonitoring_FireJumpEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2059 msgid "``PyMonitoring_FireBranchEvent``" msgstr "" -#: ../../whatsnew/3.13.rst:2060 msgid ":c:func:`PyMonitoring_FireCReturnEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2061 msgid ":c:func:`PyMonitoring_FirePyThrowEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2062 msgid ":c:func:`PyMonitoring_FireRaiseEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2063 msgid ":c:func:`PyMonitoring_FireCRaiseEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2064 msgid ":c:func:`PyMonitoring_FireReraiseEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2065 msgid ":c:func:`PyMonitoring_FireExceptionHandledEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2066 msgid ":c:func:`PyMonitoring_FirePyUnwindEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2067 msgid ":c:func:`PyMonitoring_FireStopIterationEvent`" msgstr "" -#: ../../whatsnew/3.13.rst:2068 msgid ":c:func:`PyMonitoring_EnterScope`" msgstr "" -#: ../../whatsnew/3.13.rst:2069 msgid ":c:func:`PyMonitoring_ExitScope`" msgstr "" -#: ../../whatsnew/3.13.rst:2071 msgid "(Contributed by Irit Katriel in :gh:`111997`)." msgstr "" -#: ../../whatsnew/3.13.rst:2073 msgid "" "Add :c:type:`PyMutex`, a lightweight mutex that occupies a single byte, and " -"the new :c:func:`PyMutex_Lock` and :c:func:`PyMutex_Unlock` " -"functions. :c:func:`!PyMutex_Lock` will release the :term:`GIL` (if " -"currently held) if the operation needs to block. (Contributed by Sam Gross " -"in :gh:`108724`.)" +"the new :c:func:`PyMutex_Lock` and :c:func:`PyMutex_Unlock` functions. :c:" +"func:`!PyMutex_Lock` will release the :term:`GIL` (if currently held) if the " +"operation needs to block. (Contributed by Sam Gross in :gh:`108724`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2079 msgid "" "Add the :ref:`PyTime C API ` to provide access to system clocks:" msgstr "" -#: ../../whatsnew/3.13.rst:2081 msgid ":c:type:`PyTime_t`." msgstr "" -#: ../../whatsnew/3.13.rst:2082 msgid ":c:var:`PyTime_MIN` and :c:var:`PyTime_MAX`." msgstr "" -#: ../../whatsnew/3.13.rst:2083 msgid ":c:func:`PyTime_AsSecondsDouble`." msgstr "" -#: ../../whatsnew/3.13.rst:2084 msgid ":c:func:`PyTime_Monotonic`." msgstr "" -#: ../../whatsnew/3.13.rst:2085 msgid ":c:func:`PyTime_MonotonicRaw`." msgstr "" -#: ../../whatsnew/3.13.rst:2086 msgid ":c:func:`PyTime_PerfCounter`." msgstr "" -#: ../../whatsnew/3.13.rst:2087 msgid ":c:func:`PyTime_PerfCounterRaw`." msgstr "" -#: ../../whatsnew/3.13.rst:2088 msgid ":c:func:`PyTime_Time`." msgstr "" -#: ../../whatsnew/3.13.rst:2089 msgid ":c:func:`PyTime_TimeRaw`." msgstr "" -#: ../../whatsnew/3.13.rst:2091 msgid "(Contributed by Victor Stinner and Petr Viktorin in :gh:`110850`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2093 msgid "" -"Add the :c:func:`PyDict_ContainsString` function with the same behavior " -"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*`. " -"(Contributed by Victor Stinner in :gh:`108314`.)" +"Add the :c:func:`PyDict_ContainsString` function with the same behavior 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*`. (Contributed " +"by Victor Stinner in :gh:`108314`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2099 msgid "" "Add the :c:func:`PyDict_GetItemRef` and :c:func:`PyDict_GetItemStringRef` " "functions, which behave similarly to :c:func:`PyDict_GetItemWithError`, but " "return a :term:`strong reference` instead of a :term:`borrowed reference`. " "Moreover, these functions return ``-1`` on error, removing the need to " -"check :c:func:`!PyErr_Occurred`. (Contributed by Victor Stinner " -"in :gh:`106004`.)" +"check :c:func:`!PyErr_Occurred`. (Contributed by Victor Stinner in :gh:" +"`106004`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2107 msgid "" -"Add the :c:func:`PyDict_SetDefaultRef` function, which behaves similarly " -"to :c:func:`PyDict_SetDefault`, but returns a :term:`strong reference` " -"instead of a :term:`borrowed reference`. This function returns ``-1`` on " -"error, ``0`` on insertion, and ``1`` if the key was already present in the " +"Add the :c:func:`PyDict_SetDefaultRef` function, which behaves similarly to :" +"c:func:`PyDict_SetDefault`, but returns a :term:`strong reference` instead " +"of a :term:`borrowed reference`. This function returns ``-1`` on error, " +"``0`` on insertion, and ``1`` if the key was already present in the " "dictionary. (Contributed by Sam Gross in :gh:`112066`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2115 msgid "" "Add the :c:func:`PyDict_Pop` and :c:func:`PyDict_PopString` functions to " "remove a key from a dictionary and optionally return the removed value. This " -"is similar to :meth:`dict.pop`, though there is no default value, " -"and :exc:`KeyError` is not raised for missing keys. (Contributed by Stefan " -"Behnel and Victor Stinner in :gh:`111262`.)" +"is similar to :meth:`dict.pop`, though there is no default value, and :exc:" +"`KeyError` is not raised for missing keys. (Contributed by Stefan Behnel and " +"Victor Stinner in :gh:`111262`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2122 msgid "" -"Add the :c:func:`PyMapping_GetOptionalItem` " -"and :c:func:`PyMapping_GetOptionalItemString` functions as alternatives " -"to :c:func:`PyObject_GetItem` and :c:func:`PyMapping_GetItemString` " -"respectively. The new functions do not raise :exc:`KeyError` if the " -"requested key is missing from the mapping. These variants are more " -"convenient and faster if a missing key should not be treated as a failure. " -"(Contributed by Serhiy Storchaka in :gh:`106307`.)" +"Add the :c:func:`PyMapping_GetOptionalItem` and :c:func:" +"`PyMapping_GetOptionalItemString` functions as alternatives to :c:func:" +"`PyObject_GetItem` and :c:func:`PyMapping_GetItemString` respectively. The " +"new functions do not raise :exc:`KeyError` if the requested key is missing " +"from the mapping. These variants are more convenient and faster if a missing " +"key should not be treated as a failure. (Contributed by Serhiy Storchaka in :" +"gh:`106307`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2132 msgid "" -"Add the :c:func:`PyObject_GetOptionalAttr` " -"and :c:func:`PyObject_GetOptionalAttrString` functions as alternatives " -"to :c:func:`PyObject_GetAttr` and :c:func:`PyObject_GetAttrString` " -"respectively. The new functions do not raise :exc:`AttributeError` if the " -"requested attribute is not found on the object. These variants are more " -"convenient and faster if the missing attribute should not be treated as a " -"failure. (Contributed by Serhiy Storchaka in :gh:`106521`.)" +"Add the :c:func:`PyObject_GetOptionalAttr` and :c:func:" +"`PyObject_GetOptionalAttrString` functions as alternatives to :c:func:" +"`PyObject_GetAttr` and :c:func:`PyObject_GetAttrString` respectively. The " +"new functions do not raise :exc:`AttributeError` if the requested attribute " +"is not found on the object. These variants are more convenient and faster if " +"the missing attribute should not be treated as a failure. (Contributed by " +"Serhiy Storchaka in :gh:`106521`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2142 msgid "" -"Add the :c:func:`PyErr_FormatUnraisable` function as an extension " -"to :c:func:`PyErr_WriteUnraisable` that allows customizing the warning " -"message. (Contributed by Serhiy Storchaka in :gh:`108082`.)" +"Add the :c:func:`PyErr_FormatUnraisable` function as an extension to :c:func:" +"`PyErr_WriteUnraisable` that allows customizing the warning message. " +"(Contributed by Serhiy Storchaka in :gh:`108082`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2147 msgid "" -"Add new functions that return a :term:`strong reference` instead of " -"a :term:`borrowed reference` for frame locals, globals, and builtins, as " -"part of :ref:`PEP 667 `:" +"Add new functions that return a :term:`strong reference` instead of a :term:" +"`borrowed reference` for frame locals, globals, and builtins, as part of :" +"ref:`PEP 667 `:" msgstr "" -#: ../../whatsnew/3.13.rst:2151 msgid ":c:func:`PyEval_GetFrameBuiltins` replaces :c:func:`PyEval_GetBuiltins`" msgstr "" -#: ../../whatsnew/3.13.rst:2152 msgid ":c:func:`PyEval_GetFrameGlobals` replaces :c:func:`PyEval_GetGlobals`" msgstr "" -#: ../../whatsnew/3.13.rst:2153 msgid ":c:func:`PyEval_GetFrameLocals` replaces :c:func:`PyEval_GetLocals`" msgstr "" -#: ../../whatsnew/3.13.rst:2155 msgid "(Contributed by Mark Shannon and Tian Gao in :gh:`74929`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2157 msgid "" "Add the :c:func:`Py_GetConstant` and :c:func:`Py_GetConstantBorrowed` " "functions to get :term:`strong ` or :term:`borrowed " @@ -4120,44 +3400,37 @@ msgid "" "constant zero. (Contributed by Victor Stinner in :gh:`115754`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2164 msgid "" -"Add the :c:func:`PyImport_AddModuleRef` function as a replacement " -"for :c:func:`PyImport_AddModule` that returns a :term:`strong reference` " -"instead of a :term:`borrowed reference`. (Contributed by Victor Stinner " -"in :gh:`105922`.)" +"Add the :c:func:`PyImport_AddModuleRef` function as a replacement for :c:" +"func:`PyImport_AddModule` that returns a :term:`strong reference` instead of " +"a :term:`borrowed reference`. (Contributed by Victor Stinner in :gh:" +"`105922`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2169 msgid "" "Add the :c:func:`Py_IsFinalizing` function to check whether the main Python " "interpreter is :term:`shutting down `. (Contributed by " "Victor Stinner in :gh:`108014`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2174 msgid "" -"Add the :c:func:`PyList_GetItemRef` function as a replacement " -"for :c:func:`PyList_GetItem` that returns a :term:`strong reference` instead " -"of a :term:`borrowed reference`. (Contributed by Sam Gross in :gh:`114329`.)" +"Add the :c:func:`PyList_GetItemRef` function as a replacement for :c:func:" +"`PyList_GetItem` that returns a :term:`strong reference` instead of a :term:" +"`borrowed reference`. (Contributed by Sam Gross in :gh:`114329`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2179 msgid "" "Add the :c:func:`PyList_Extend` and :c:func:`PyList_Clear` functions, " -"mirroring the Python :meth:`!list.extend` and :meth:`!list.clear` methods. " +"mirroring the Python :meth:`list.extend` and :meth:`list.clear` methods. " "(Contributed by Victor Stinner in :gh:`111138`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2183 msgid "" -"Add the :c:func:`PyLong_AsInt` function. It behaves similarly " -"to :c:func:`PyLong_AsLong`, but stores the result in a C :c:expr:`int` " -"instead of a C :c:expr:`long`. (Contributed by Victor Stinner " -"in :gh:`108014`.)" +"Add the :c:func:`PyLong_AsInt` function. It behaves similarly to :c:func:" +"`PyLong_AsLong`, but stores the result in a C :c:expr:`int` instead of a C :" +"c:expr:`long`. (Contributed by Victor Stinner in :gh:`108014`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2188 msgid "" "Add the :c:func:`PyLong_AsNativeBytes`, :c:func:`PyLong_FromNativeBytes`, " "and :c:func:`PyLong_FromUnsignedNativeBytes` functions to simplify " @@ -4165,38 +3438,31 @@ msgid "" "(Contributed by Steve Dower in :gh:`111140`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2194 msgid "" -"Add :c:func:`PyModule_Add` function, which is similar " -"to :c:func:`PyModule_AddObjectRef` and :c:func:`PyModule_AddObject`, but " -"always steals a reference to the value. (Contributed by Serhiy Storchaka " -"in :gh:`86493`.)" +"Add :c:func:`PyModule_Add` function, which is similar to :c:func:" +"`PyModule_AddObjectRef` and :c:func:`PyModule_AddObject`, but always steals " +"a reference to the value. (Contributed by Serhiy Storchaka in :gh:`86493`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2199 msgid "" "Add the :c:func:`PyObject_GenericHash` function that implements the default " -"hashing function of a Python object. (Contributed by Serhiy Storchaka " -"in :gh:`113024`.)" +"hashing function of a Python object. (Contributed by Serhiy Storchaka in :gh:" +"`113024`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2203 msgid "" "Add the :c:func:`Py_HashPointer` function to hash a raw pointer. " "(Contributed by Victor Stinner in :gh:`111545`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2206 msgid "" -"Add the :c:func:`PyObject_VisitManagedDict` " -"and :c:func:`PyObject_ClearManagedDict` functions. which must be called by " -"the traverse and clear functions of a type using " -"the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag. The `pythoncapi-compat " -"project`_ can be used to use these functions with Python 3.11 and 3.12. " -"(Contributed by Victor Stinner in :gh:`107073`.)" +"Add the :c:func:`PyObject_VisitManagedDict` and :c:func:" +"`PyObject_ClearManagedDict` functions. which must be called by the traverse " +"and clear functions of a type using the :c:macro:`Py_TPFLAGS_MANAGED_DICT` " +"flag. The `pythoncapi-compat project`_ can be used to use these functions " +"with Python 3.11 and 3.12. (Contributed by Victor Stinner in :gh:`107073`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2214 msgid "" "Add the :c:func:`PyRefTracer_SetTracer` and :c:func:`PyRefTracer_GetTracer` " "functions, which enable tracking object creation and destruction in the same " @@ -4204,14 +3470,12 @@ msgid "" "in :gh:`93502`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2220 msgid "" -"Add the :c:func:`PySys_AuditTuple` function as an alternative " -"to :c:func:`PySys_Audit` that takes event arguments as a " -"Python :class:`tuple` object. (Contributed by Victor Stinner in :gh:`85283`.)" +"Add the :c:func:`PySys_AuditTuple` function as an alternative to :c:func:" +"`PySys_Audit` that takes event arguments as a Python :class:`tuple` object. " +"(Contributed by Victor Stinner in :gh:`85283`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2225 msgid "" "Add the :c:func:`PyThreadState_GetUnchecked()` function as an alternative " "to :c:func:`PyThreadState_Get()` that doesn't kill the process with a fatal " @@ -4219,214 +3483,177 @@ msgid "" "result is ``NULL``. (Contributed by Victor Stinner in :gh:`108867`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2231 msgid "" "Add the :c:func:`PyType_GetFullyQualifiedName` function to get the type's " -"fully qualified name. The module name is prepended " -"if :attr:`type.__module__` is a string and is not equal to either " -"``'builtins'`` or ``'__main__'``. (Contributed by Victor Stinner " -"in :gh:`111696`.)" +"fully qualified name. The module name is prepended if :attr:`type." +"__module__` is a string and is not equal to either ``'builtins'`` or " +"``'__main__'``. (Contributed by Victor Stinner in :gh:`111696`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2237 msgid "" "Add the :c:func:`PyType_GetModuleName` function to get the type's module " "name. This is equivalent to getting the :attr:`type.__module__` attribute. " "(Contributed by Eric Snow and Victor Stinner in :gh:`111696`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2242 msgid "" -"Add the :c:func:`PyUnicode_EqualToUTF8AndSize` " -"and :c:func:`PyUnicode_EqualToUTF8` functions to compare a Unicode object " -"with a :c:expr:`const char*` UTF-8 encoded string and ``1`` if they are " -"equal or ``0`` otherwise. These functions do not raise exceptions. " -"(Contributed by Serhiy Storchaka in :gh:`110289`.)" +"Add the :c:func:`PyUnicode_EqualToUTF8AndSize` and :c:func:" +"`PyUnicode_EqualToUTF8` functions to compare a Unicode object with a :c:expr:" +"`const char*` UTF-8 encoded string and ``1`` if they are equal or ``0`` " +"otherwise. These functions do not raise exceptions. (Contributed by Serhiy " +"Storchaka in :gh:`110289`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2249 msgid "" -"Add the :c:func:`PyWeakref_GetRef` function as an alternative " -"to :c:func:`PyWeakref_GetObject` that returns a :term:`strong reference` or " -"``NULL`` if the referent is no longer live. (Contributed by Victor Stinner " -"in :gh:`105927`.)" +"Add the :c:func:`PyWeakref_GetRef` function as an alternative to :c:func:" +"`PyWeakref_GetObject` that returns a :term:`strong reference` or ``NULL`` if " +"the referent is no longer live. (Contributed by Victor Stinner in :gh:" +"`105927`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2255 msgid "Add fixed variants of functions which silently ignore errors:" msgstr "" -#: ../../whatsnew/3.13.rst:2257 msgid "" ":c:func:`PyObject_HasAttrWithError` replaces :c:func:`PyObject_HasAttr`." msgstr "" -#: ../../whatsnew/3.13.rst:2258 msgid "" -":c:func:`PyObject_HasAttrStringWithError` " -"replaces :c:func:`PyObject_HasAttrString`." +":c:func:`PyObject_HasAttrStringWithError` replaces :c:func:" +"`PyObject_HasAttrString`." msgstr "" -#: ../../whatsnew/3.13.rst:2260 msgid "" ":c:func:`PyMapping_HasKeyWithError` replaces :c:func:`PyMapping_HasKey`." msgstr "" -#: ../../whatsnew/3.13.rst:2261 msgid "" -":c:func:`PyMapping_HasKeyStringWithError` " -"replaces :c:func:`PyMapping_HasKeyString`." +":c:func:`PyMapping_HasKeyStringWithError` replaces :c:func:" +"`PyMapping_HasKeyString`." msgstr "" -#: ../../whatsnew/3.13.rst:2264 msgid "" "The new functions return ``-1`` for errors and the standard ``1`` for true " "and ``0`` for false." msgstr "" -#: ../../whatsnew/3.13.rst:2267 msgid "(Contributed by Serhiy Storchaka in :gh:`108511`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2271 msgid "Changed C APIs" msgstr "" -#: ../../whatsnew/3.13.rst:2273 msgid "" -"The *keywords* parameter of :c:func:`PyArg_ParseTupleAndKeywords` " -"and :c:func:`PyArg_VaParseTupleAndKeywords` now has type :c:expr:`char * " -"const *` in C and :c:expr:`const char * const *` in C++, instead " -"of :c:expr:`char **`. In C++, this makes these functions compatible with " -"arguments of type :c:expr:`const char * const *`, :c:expr:`const char **`, " -"or :c:expr:`char * const *` without an explicit type cast. In C, the " -"functions only support arguments of type :c:expr:`char * const *`. This can " -"be overridden with the :c:macro:`PY_CXX_CONST` macro. (Contributed by Serhiy " -"Storchaka in :gh:`65210`.)" +"The *keywords* parameter of :c:func:`PyArg_ParseTupleAndKeywords` and :c:" +"func:`PyArg_VaParseTupleAndKeywords` now has type :c:expr:`char * const *` " +"in C and :c:expr:`const char * const *` in C++, instead of :c:expr:`char " +"**`. In C++, this makes these functions compatible with arguments of type :c:" +"expr:`const char * const *`, :c:expr:`const char **`, or :c:expr:`char * " +"const *` without an explicit type cast. In C, the functions only support " +"arguments of type :c:expr:`char * const *`. This can be overridden with the :" +"c:macro:`PY_CXX_CONST` macro. (Contributed by Serhiy Storchaka in :gh:" +"`65210`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2285 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports non-ASCII keyword " "parameter names. (Contributed by Serhiy Storchaka in :gh:`110815`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2289 msgid "" "The :c:func:`!PyCode_GetFirstFree` function is now unstable API and is now " "named :c:func:`PyUnstable_Code_GetFirstFree`. (Contributed by Bogdan " "Romanyuk in :gh:`115781`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2293 msgid "" -"The :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`, :c:func:`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`, :c:func:`PyObject_HasAttr`, :c:func:`PyObject_HasAttrString`, " -"and :c:func:`PySys_GetObject` functions, each of which clears all errors " -"which occurred when calling them now reports these errors " -"using :func:`sys.unraisablehook`. You may replace them with other functions " -"as recommended in the documentation. (Contributed by Serhiy Storchaka " -"in :gh:`106672`.)" +"The :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`, :c:func:" +"`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`, :c:func:" +"`PyObject_HasAttr`, :c:func:`PyObject_HasAttrString`, and :c:func:" +"`PySys_GetObject` functions, each of which clears all errors which occurred " +"when calling them now reports these errors using :func:`sys.unraisablehook`. " +"You may replace them with other functions as recommended in the " +"documentation. (Contributed by Serhiy Storchaka in :gh:`106672`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2302 msgid "" -"Add support for the ``%T``, ``%#T``, ``%N`` and ``%#N`` formats " -"to :c:func:`PyUnicode_FromFormat`:" +"Add support for the ``%T``, ``%#T``, ``%N`` and ``%#N`` formats to :c:func:" +"`PyUnicode_FromFormat`:" msgstr "" -#: ../../whatsnew/3.13.rst:2305 msgid "``%T``: Get the fully qualified name of an object type" msgstr "" -#: ../../whatsnew/3.13.rst:2306 msgid "``%#T``: As above, but use a colon as the separator" msgstr "" -#: ../../whatsnew/3.13.rst:2307 msgid "``%N``: Get the fully qualified name of a type" msgstr "" -#: ../../whatsnew/3.13.rst:2308 msgid "``%#N``: As above, but use a colon as the separator" msgstr "" -#: ../../whatsnew/3.13.rst:2310 msgid "" -"See :pep:`737` for more information. (Contributed by Victor Stinner " -"in :gh:`111696`.)" +"See :pep:`737` for more information. (Contributed by Victor Stinner in :gh:" +"`111696`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2313 msgid "" "You no longer have to define the ``PY_SSIZE_T_CLEAN`` macro before " "including :file:`Python.h` when using ``#`` formats in :ref:`format codes " "`. APIs accepting the format codes always " -"use ``Py_ssize_t`` for ``#`` formats. (Contributed by Inada Naoki " -"in :gh:`104922`.)" +"use ``Py_ssize_t`` for ``#`` formats. (Contributed by Inada Naoki in :gh:" +"`104922`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2319 msgid "" "If Python is built in :ref:`debug mode ` or :option:`with " -"assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` " -"and :c:func:`PyList_SET_ITEM` now check the index argument with an " -"assertion. (Contributed by Victor Stinner in :gh:`106168`.)" +"assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` and :c:func:" +"`PyList_SET_ITEM` now check the index argument with an assertion. " +"(Contributed by Victor Stinner in :gh:`106168`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2327 msgid "Limited C API Changes" msgstr "" -#: ../../whatsnew/3.13.rst:2329 msgid "The following functions are now included in the Limited C API:" msgstr "" -#: ../../whatsnew/3.13.rst:2331 msgid ":c:func:`PyMem_RawMalloc`" msgstr "" -#: ../../whatsnew/3.13.rst:2332 msgid ":c:func:`PyMem_RawCalloc`" msgstr "" -#: ../../whatsnew/3.13.rst:2333 msgid ":c:func:`PyMem_RawRealloc`" msgstr "" -#: ../../whatsnew/3.13.rst:2334 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../../whatsnew/3.13.rst:2335 msgid ":c:func:`PySys_Audit`" msgstr "" -#: ../../whatsnew/3.13.rst:2336 msgid ":c:func:`PySys_AuditTuple`" msgstr "" -#: ../../whatsnew/3.13.rst:2337 msgid ":c:func:`PyType_GetModuleByDef`" msgstr "" -#: ../../whatsnew/3.13.rst:2339 msgid "" -"(Contributed by Victor Stinner in :gh:`85283`, :gh:`85283`, " -"and :gh:`116936`.)" +"(Contributed by Victor Stinner in :gh:`85283`, :gh:`85283`, and :gh:" +"`116936`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2341 msgid "" "Python built with :option:`--with-trace-refs` (tracing references) now " "supports the :ref:`Limited API `. (Contributed by Victor " "Stinner in :gh:`108634`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2347 msgid "Removed C APIs" msgstr "" -#: ../../whatsnew/3.13.rst:2349 msgid "" "Remove several functions, macros, variables, etc with names prefixed by " "``_Py`` or ``_PY`` (which are considered private). If your project is " @@ -4436,28 +3663,24 @@ msgid "" "Victor Stinner. (Contributed by Victor Stinner in :gh:`106320`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2357 msgid "" -"Remove old buffer protocols deprecated in Python 3.0. " -"Use :ref:`bufferobjects` instead." +"Remove old buffer protocols deprecated in Python 3.0. Use :ref:" +"`bufferobjects` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2360 msgid "" ":c:func:`!PyObject_CheckReadBuffer`: Use :c:func:`PyObject_CheckBuffer` to " -"test whether the object supports the buffer protocol. Note " -"that :c:func:`PyObject_CheckBuffer` doesn't guarantee " -"that :c:func:`PyObject_GetBuffer` will succeed. To test if the object is " -"actually readable, see the next example of :c:func:`PyObject_GetBuffer`." +"test whether the object supports the buffer protocol. Note that :c:func:" +"`PyObject_CheckBuffer` doesn't guarantee that :c:func:`PyObject_GetBuffer` " +"will succeed. To test if the object is actually readable, see the next " +"example of :c:func:`PyObject_GetBuffer`." msgstr "" -#: ../../whatsnew/3.13.rst:2368 msgid "" -":c:func:`!PyObject_AsCharBuffer`, :c:func:`!PyObject_AsReadBuffer`: " -"Use :c:func:`PyObject_GetBuffer` and :c:func:`PyBuffer_Release` instead:" +":c:func:`!PyObject_AsCharBuffer`, :c:func:`!PyObject_AsReadBuffer`: Use :c:" +"func:`PyObject_GetBuffer` and :c:func:`PyBuffer_Release` instead:" msgstr "" -#: ../../whatsnew/3.13.rst:2371 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_SIMPLE) < 0) {\n" @@ -4468,13 +3691,11 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: ../../whatsnew/3.13.rst:2381 msgid "" -":c:func:`!PyObject_AsWriteBuffer`: Use :c:func:`PyObject_GetBuffer` " -"and :c:func:`PyBuffer_Release` instead:" +":c:func:`!PyObject_AsWriteBuffer`: Use :c:func:`PyObject_GetBuffer` and :c:" +"func:`PyBuffer_Release` instead:" msgstr "" -#: ../../whatsnew/3.13.rst:2384 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_WRITABLE) < 0) {\n" @@ -4484,131 +3705,107 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: ../../whatsnew/3.13.rst:2393 msgid "(Contributed by Inada Naoki in :gh:`85275`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2395 msgid "Remove various functions deprecated in Python 3.9:" msgstr "" -#: ../../whatsnew/3.13.rst:2397 msgid "" -":c:func:`!PyEval_CallObject`, :c:func:`!PyEval_CallObjectWithKeywords`: " -"Use :c:func:`PyObject_CallNoArgs` or :c:func:`PyObject_Call` instead." +":c:func:`!PyEval_CallObject`, :c:func:`!PyEval_CallObjectWithKeywords`: Use :" +"c:func:`PyObject_CallNoArgs` or :c:func:`PyObject_Call` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2402 msgid "" "In :c:func:`PyObject_Call`, positional arguments must be a :class:`tuple` " "and must not be ``NULL``, and keyword arguments must be a :class:`dict` or " "``NULL``, whereas the removed functions checked argument types and accepted " "``NULL`` positional and keyword arguments. To replace " -"``PyEval_CallObjectWithKeywords(func, NULL, kwargs)`` " -"with :c:func:`PyObject_Call`, pass an empty tuple as positional arguments " -"using :c:func:`PyTuple_New(0) `." +"``PyEval_CallObjectWithKeywords(func, NULL, kwargs)`` with :c:func:" +"`PyObject_Call`, pass an empty tuple as positional arguments using :c:func:" +"`PyTuple_New(0) `." msgstr "" -#: ../../whatsnew/3.13.rst:2412 msgid "" ":c:func:`!PyEval_CallFunction`: Use :c:func:`PyObject_CallFunction` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2414 msgid "" ":c:func:`!PyEval_CallMethod`: Use :c:func:`PyObject_CallMethod` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2416 msgid ":c:func:`!PyCFunction_Call`: Use :c:func:`PyObject_Call` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2419 msgid "(Contributed by Victor Stinner in :gh:`105107`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2421 msgid "" "Remove the following old functions to configure the Python initialization, " "deprecated in Python 3.11:" msgstr "" -#: ../../whatsnew/3.13.rst:2424 msgid "" ":c:func:`!PySys_AddWarnOptionUnicode`: Use :c:member:`PyConfig.warnoptions` " "instead." msgstr "" -#: ../../whatsnew/3.13.rst:2426 msgid "" ":c:func:`!PySys_AddWarnOption`: Use :c:member:`PyConfig.warnoptions` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2428 msgid ":c:func:`!PySys_AddXOption`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2430 msgid "" ":c:func:`!PySys_HasWarnOptions`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2432 msgid "" ":c:func:`!PySys_SetPath`: Set :c:member:`PyConfig.module_search_paths` " "instead." msgstr "" -#: ../../whatsnew/3.13.rst:2434 msgid "" ":c:func:`!Py_SetPath`: Set :c:member:`PyConfig.module_search_paths` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2436 msgid "" -":c:func:`!Py_SetStandardStreamEncoding`: " -"Set :c:member:`PyConfig.stdio_encoding` instead, and set also " -"maybe :c:member:`PyConfig.legacy_windows_stdio` (on Windows)." +":c:func:`!Py_SetStandardStreamEncoding`: Set :c:member:`PyConfig." +"stdio_encoding` instead, and set also maybe :c:member:`PyConfig." +"legacy_windows_stdio` (on Windows)." msgstr "" -#: ../../whatsnew/3.13.rst:2439 msgid "" ":c:func:`!_Py_SetProgramFullPath`: Set :c:member:`PyConfig.executable` " "instead." msgstr "" -#: ../../whatsnew/3.13.rst:2442 msgid "" "Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization " "Configuration ` instead (:pep:`587`), added to Python 3.8. " "(Contributed by Victor Stinner in :gh:`105145`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2446 msgid "" "Remove :c:func:`!PyEval_AcquireLock` and :c:func:`!PyEval_ReleaseLock` " "functions, deprecated in Python 3.2. They didn't update the current thread " "state. They can be replaced with:" msgstr "" -#: ../../whatsnew/3.13.rst:2451 msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: ../../whatsnew/3.13.rst:2452 msgid "" "low-level :c:func:`PyEval_AcquireThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: ../../whatsnew/3.13.rst:2453 msgid "or :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`." msgstr "" -#: ../../whatsnew/3.13.rst:2455 msgid "(Contributed by Victor Stinner in :gh:`105182`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2457 msgid "" "Remove the :c:func:`!PyEval_ThreadsInitialized` function, deprecated in " "Python 3.9. Since Python 3.7, :c:func:`!Py_Initialize` always creates the " @@ -4617,35 +3814,30 @@ msgid "" "Stinner in :gh:`105182`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2464 msgid "" -"Remove the :c:func:`!_PyInterpreterState_Get` alias " -"to :c:func:`PyInterpreterState_Get()` which was kept for backward " -"compatibility with Python 3.8. The `pythoncapi-compat project`_ can be used " -"to get :c:func:`PyInterpreterState_Get()` on Python 3.8 and older. " -"(Contributed by Victor Stinner in :gh:`106320`.)" +"Remove the :c:func:`!_PyInterpreterState_Get` alias to :c:func:" +"`PyInterpreterState_Get()` which was kept for backward compatibility with " +"Python 3.8. The `pythoncapi-compat project`_ can be used to get :c:func:" +"`PyInterpreterState_Get()` on Python 3.8 and older. (Contributed by Victor " +"Stinner in :gh:`106320`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2471 msgid "" "Remove the private :c:func:`!_PyObject_FastCall` function: use :c:func:`!" "PyObject_Vectorcall` which is available since Python 3.8 (:pep:`590`). " "(Contributed by Victor Stinner in :gh:`106023`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2476 msgid "" "Remove the ``cpython/pytime.h`` header file, which only contained private " "functions. (Contributed by Victor Stinner in :gh:`106316`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2480 msgid "" "Remove the undocumented ``PY_TIMEOUT_MAX`` constant from the limited C API. " "(Contributed by Victor Stinner in :gh:`110014`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2483 msgid "" "Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and " "``Py_TRASHCAN_SAFE_END``. Replace both with the new macros " @@ -4653,642 +3845,521 @@ msgid "" "in :gh:`105111`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2490 msgid "Deprecated C APIs" msgstr "" -#: ../../whatsnew/3.13.rst:2492 msgid "Deprecate old Python initialization functions:" msgstr "" -#: ../../whatsnew/3.13.rst:2494 -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2496 msgid ":c:func:`Py_GetExecPrefix`: Get :data:`sys.exec_prefix` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2498 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2500 msgid ":c:func:`Py_GetPrefix`: Get :data:`sys.prefix` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2502 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2504 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: ../../whatsnew/3.13.rst:2506 msgid "" -":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or " -"the :envvar:`PYTHONHOME` environment variable instead." +":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" +"`PYTHONHOME` environment variable instead." msgstr "" -#: ../../whatsnew/3.13.rst:2510 msgid "(Contributed by Victor Stinner in :gh:`105145`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2512 msgid "" -":term:`Soft deprecate ` " -"the :c:func:`PyEval_GetBuiltins`, :c:func:`PyEval_GetGlobals`, " -"and :c:func:`PyEval_GetLocals` functions, which return a :term:`borrowed " -"reference`. (Soft deprecated as part of :pep:`667`.)" +":term:`Soft deprecate ` the :c:func:`PyEval_GetBuiltins`, :" +"c:func:`PyEval_GetGlobals`, and :c:func:`PyEval_GetLocals` functions, which " +"return a :term:`borrowed reference`. (Soft deprecated as part of :pep:`667`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2518 msgid "" "Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function, which is just " "an alias to :c:func:`PyImport_ImportModule` since Python 3.3. (Contributed " "by Victor Stinner in :gh:`105396`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2522 msgid "" ":term:`Soft deprecate ` the :c:func:`PyModule_AddObject` " -"function. It should be replaced with :c:func:`PyModule_Add` " -"or :c:func:`PyModule_AddObjectRef`. (Contributed by Serhiy Storchaka " -"in :gh:`86493`.)" +"function. It should be replaced with :c:func:`PyModule_Add` or :c:func:" +"`PyModule_AddObjectRef`. (Contributed by Serhiy Storchaka in :gh:`86493`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2528 msgid "" -"Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types and " -"the :c:macro:`!Py_UNICODE_WIDE` define. Use the :c:type:`wchar_t` type " -"directly instead. Since Python 3.3, ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` " -"are just aliases to :c:type:`!wchar_t`. (Contributed by Victor Stinner " -"in :gh:`105156`.)" +"Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types and the :c:" +"macro:`!Py_UNICODE_WIDE` define. Use the :c:type:`wchar_t` type directly " +"instead. Since Python 3.3, ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` are just " +"aliases to :c:type:`!wchar_t`. (Contributed by Victor Stinner in :gh:" +"`105156`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2535 msgid "" -"Deprecate the :c:func:`PyWeakref_GetObject` " -"and :c:func:`PyWeakref_GET_OBJECT` functions, which return a :term:`borrowed " -"reference`. Replace them with the new :c:func:`PyWeakref_GetRef` function, " -"which returns a :term:`strong reference`. The `pythoncapi-compat project`_ " -"can be used to get :c:func:`PyWeakref_GetRef` on Python 3.12 and older. " -"(Contributed by Victor Stinner in :gh:`105927`.)" +"Deprecate the :c:func:`PyWeakref_GetObject` and :c:func:" +"`PyWeakref_GET_OBJECT` functions, which return a :term:`borrowed reference`. " +"Replace them with the new :c:func:`PyWeakref_GetRef` function, which returns " +"a :term:`strong reference`. The `pythoncapi-compat project`_ can be used to " +"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older. (Contributed by " +"Victor Stinner in :gh:`105927`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:4 msgid "" "The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " "(:pep:`699`; :gh:`101193`)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.14.rst:7 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases (:gh:`95388`)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:4 msgid "" -"The :c:func:`PyImport_ImportModuleNoBlock`: " -"Use :c:func:`PyImport_ImportModule` instead." +"The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" +"`PyImport_ImportModule` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" -":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: " -"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " -"`__ can be used to " -"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" +"func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project `__ can be used to get :c:func:" +"`PyWeakref_GetRef` on Python 3.12 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "" -":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: " -"Use :c:type:`wchar_t` instead." +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" +"type:`wchar_t` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`str`, such as :class:`bytes`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:17 msgid "" ":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:19 msgid "" ":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`bytes`, such as :class:`str`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:22 msgid "Python initialization functions, deprecated in Python 3.13:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " "` (:data:`sys.path`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " -"if :ref:`virtual environments ` need to be handled." +"` (:data:`sys.base_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) if :ref:" +"`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " -"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " -"be handled." +"` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"exec_prefix\") ` (:data:`sys.exec_prefix`) if :" +"ref:`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " -"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" +"`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " -"or :c:func:`PyConfig_Get(\"verbose\") ` instead." +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" +"`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " -"or :c:func:`PyConfig_Get(\"quiet\") ` instead." +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" +"`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " -"or :c:func:`PyConfig_Get(\"interactive\") ` instead." +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" +"`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " -"or :c:func:`PyConfig_Get(\"inspect\") ` instead." +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" +"`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " -"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" +"func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " -"or :c:func:`PyConfig_Get(\"site_import\") ` instead." +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" +"`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " -"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" +"func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " -"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" +"func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" -":c:var:`Py_NoUserSiteDirectory`: " -"Use :c:member:`PyConfig.user_site_directory` " -"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." +":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." +"user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " -"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" +"c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " -"or :c:func:`PyConfig_Get(\"isolated\") ` instead." +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" +"`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " -"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " -"instead." +":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding` or :c:func:" +"`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"Use :c:member:`PyConfig.legacy_windows_stdio` " -"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." +":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." +"legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: " -"Use :c:member:`PyConfig.filesystem_encoding` " -"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." +"Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." +"filesystem_encoding` or :c:func:`PyConfig_Get(\"filesystem_encoding\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"Use :c:member:`PyConfig.filesystem_errors` " -"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." +":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." +"filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " -"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " -"(see :c:func:`Py_PreInitialize`)" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" +"`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" +"`Py_PreInitialize`)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " -"be used to get these options at runtime." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " +"get these options at runtime." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:4 msgid "The bundled copy of ``libmpdec``." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:2 msgid "Pending removal in Python 3.18" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:4 msgid "Deprecated private functions (:gh:`128863`):" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:6 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:7 msgid "" -":c:func:`!_PyDict_GetItemStringWithError`: " -"use :c:func:`PyDict_GetItemStringRef`." +":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" +"`PyDict_GetItemStringRef`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:8 msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:9 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:10 msgid "" -":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " -"use :c:func:`PyLongWriter_Create`." +":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" +"`PyLongWriter_Create`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:12 msgid "" -":c:func:`!_PyThreadState_UncheckedGet`: " -"use :c:func:`PyThreadState_GetUnchecked`." +":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" +"`PyThreadState_GetUnchecked`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:13 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:14 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:17 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " -"``_PyUnicodeWriter_Finish(&writer)`` " -"with :c:func:`PyUnicodeWriter_Finish(writer) `." +"``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" +"`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:20 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " -"``_PyUnicodeWriter_Dealloc(&writer)`` " -"with :c:func:`PyUnicodeWriter_Discard(writer) `." +"``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" +"`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:23 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " -"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " -"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " -"`." +"``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" +"`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:26 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " -"``_PyUnicodeWriter_WriteStr(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " -"`." +"``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:29 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " -"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " -"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " +"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" +"`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " "`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:32 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." +"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:35 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " -"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." +"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:38 msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:39 msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:40 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:43 msgid "" "The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:4 msgid "" "The following APIs are deprecated and will be removed, although there is " "currently no date scheduled for their removal." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:7 msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:9 msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:11 msgid "" ":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:13 msgid "" ":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:15 msgid "" ":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:17 msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:19 msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` instead." +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:21 msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:23 msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:25 msgid "" ":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:27 msgid "" ":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:29 msgid "Thread Local Storage (TLS) API:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:31 msgid "" ":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:33 msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:35 msgid "" ":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:37 msgid "" ":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:39 msgid "" ":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:41 msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: ../../whatsnew/3.13.rst:2559 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.13.rst:2561 msgid "" "``arm64-apple-ios`` and ``arm64-apple-ios-simulator`` are both now :pep:`11` " "tier 3 platforms. (:ref:`PEP 730 ` written and " "implementation contributed by Russell Keith-Magee in :gh:`114099`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2566 msgid "" -"``aarch64-linux-android`` and ``x86_64-linux-android`` are both " -"now :pep:`11` tier 3 platforms. (:ref:`PEP 738 ` written and implementation contributed by Malcolm Smith " -"in :gh:`116622`.)" +"``aarch64-linux-android`` and ``x86_64-linux-android`` are both now :pep:" +"`11` tier 3 platforms. (:ref:`PEP 738 ` " +"written and implementation contributed by Malcolm Smith in :gh:`116622`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2571 msgid "" "``wasm32-wasi`` is now a :pep:`11` tier 2 platform. (Contributed by Brett " "Cannon in :gh:`115192`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2574 msgid "" "``wasm32-emscripten`` is no longer a :pep:`11` supported platform. " "(Contributed by Brett Cannon in :gh:`115192`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2577 msgid "" "Building CPython now requires a compiler with support for the C11 atomic " "library, GCC built-in atomic functions, or MSVC interlocked intrinsics." msgstr "" -#: ../../whatsnew/3.13.rst:2580 msgid "" -"Autoconf 2.71 and aclocal 1.16.5 are now required to regenerate " -"the :file:`configure` script. (Contributed by Christian Heimes " -"in :gh:`89886` and by Victor Stinner in :gh:`112090`.)" +"Autoconf 2.71 and aclocal 1.16.5 are now required to regenerate the :file:" +"`configure` script. (Contributed by Christian Heimes in :gh:`89886` and by " +"Victor Stinner in :gh:`112090`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2584 msgid "" "SQLite 3.15.2 or newer is required to build the :mod:`sqlite3` extension " "module. (Contributed by Erlend Aasland in :gh:`105875`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2588 msgid "" "CPython now bundles the `mimalloc library`_ by default. It is licensed under " "the MIT license; see :ref:`mimalloc license `. The bundled " @@ -5296,58 +4367,48 @@ msgid "" "Dino Viehland in :gh:`109914`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2596 msgid "" "The :file:`configure` option :option:`--with-system-libmpdec` now defaults " "to ``yes``. The bundled copy of ``libmpdec`` will be removed in Python 3.16." msgstr "" -#: ../../whatsnew/3.13.rst:2600 msgid "" "Python built with :file:`configure` :option:`--with-trace-refs` (tracing " -"references) is now ABI compatible with the Python release build " -"and :ref:`debug build `. (Contributed by Victor Stinner " -"in :gh:`108634`.)" +"references) is now ABI compatible with the Python release build and :ref:" +"`debug build `. (Contributed by Victor Stinner in :gh:`108634`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2605 msgid "" "On POSIX systems, the pkg-config (``.pc``) filenames now include the ABI " "flags. For example, the free-threaded build generates ``python-3.13t.pc`` " "and the debug build generates ``python-3.13d.pc``." msgstr "" -#: ../../whatsnew/3.13.rst:2609 msgid "" "The ``errno``, ``fcntl``, ``grp``, ``md5``, ``pwd``, ``resource``, " -"``termios``, ``winsound``, ``_ctypes_test``, " -"``_multiprocessing.posixshmem``, ``_scproxy``, ``_stat``, ``_statistics``, " -"``_testconsole``, ``_testimportmultiple`` and ``_uuid`` C extensions are now " -"built with the :ref:`limited C API `. (Contributed by Victor " -"Stinner in :gh:`85283`.)" +"``termios``, ``winsound``, ``_ctypes_test``, ``_multiprocessing." +"posixshmem``, ``_scproxy``, ``_stat``, ``_statistics``, ``_testconsole``, " +"``_testimportmultiple`` and ``_uuid`` C extensions are now built with the :" +"ref:`limited C API `. (Contributed by Victor Stinner in :gh:" +"`85283`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2618 msgid "Porting to Python 3.13" msgstr "" -#: ../../whatsnew/3.13.rst:2620 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.13.rst:2624 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.13.rst:2628 msgid "" ":ref:`PEP 667 ` introduces several changes to " "the semantics of :func:`locals` and :attr:`f_locals `:" msgstr "" -#: ../../whatsnew/3.13.rst:2631 msgid "" "Calling :func:`locals` in an :term:`optimized scope` now produces an " "independent snapshot on each call, and hence no longer implicitly updates " @@ -5359,7 +4420,6 @@ msgid "" "scope. (Changed as part of :pep:`667`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2640 msgid "" "Calling :func:`locals` from a comprehension at module or class scope " "(including via ``exec`` or ``eval``) once more behaves as if the " @@ -5369,7 +4429,6 @@ msgid "" "implementing :pep:`709`. (Changed as part of :pep:`667`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2647 msgid "" "Accessing :attr:`FrameType.f_locals ` in an :term:`optimized " "scope` now returns a write-through proxy rather than a snapshot that gets " @@ -5378,22 +4437,19 @@ msgid "" "of :pep:`667`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2653 msgid "" ":class:`functools.partial` now emits a :exc:`FutureWarning` when used as a " -"method. The behavior will change in future Python versions. Wrap it " -"in :func:`staticmethod` if you want to preserve the old behavior. " -"(Contributed by Serhiy Storchaka in :gh:`121027`.)" +"method. The behavior will change in future Python versions. Wrap it in :func:" +"`staticmethod` if you want to preserve the old behavior. (Contributed by " +"Serhiy Storchaka in :gh:`121027`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2659 msgid "" "An :exc:`OSError` is now raised by :func:`getpass.getuser` for any failure " "to retrieve a username, instead of :exc:`ImportError` on non-Unix platforms " "or :exc:`KeyError` on Unix platforms where the password database is empty." msgstr "" -#: ../../whatsnew/3.13.rst:2664 msgid "" "The value of the :attr:`!mode` attribute of :class:`gzip.GzipFile` is now a " "string (``'rb'`` or ``'wb'``) instead of an integer (``1`` or ``2``). The " @@ -5402,13 +4458,11 @@ msgid "" "(Contributed by Serhiy Storchaka in :gh:`115961`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2670 msgid "" ":class:`mailbox.Maildir` now ignores files with a leading dot (``.``). " "(Contributed by Zackery Spytz in :gh:`65559`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2673 msgid "" ":meth:`pathlib.Path.glob` and :meth:`~pathlib.Path.rglob` now return both " "files and directories if a pattern that ends with \"``**``\" is given, " @@ -5416,45 +4470,39 @@ msgid "" "behavior and only match directories." msgstr "" -#: ../../whatsnew/3.13.rst:2678 msgid "" "The :mod:`threading` module now expects the :mod:`!_thread` module to have " "an :func:`!_is_main_interpreter` function. This function takes no arguments " "and returns ``True`` if the current interpreter is the main interpreter." msgstr "" -#: ../../whatsnew/3.13.rst:2683 msgid "" "Any library or application that provides a custom :mod:`!_thread` module " "must provide :func:`!_is_main_interpreter`, just like the module's other " "\"private\" attributes. (:gh:`112826`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2690 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.13.rst:2692 msgid "" "``Python.h`` no longer includes the ```` standard header. It was " "included for the :c:func:`!finite` function which is now provided by the " "```` header. It should now be included explicitly if needed. Remove " -"also the ``HAVE_IEEEFP_H`` macro. (Contributed by Victor Stinner " -"in :gh:`108765`.)" +"also the ``HAVE_IEEEFP_H`` macro. (Contributed by Victor Stinner in :gh:" +"`108765`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2698 msgid "" "``Python.h`` no longer includes these standard header files: ````, " "```` and ````. If needed, they should now be " "included explicitly. For example, ```` provides the :c:func:`!clock` " "and :c:func:`!gmtime` functions, ```` provides the :c:func:`!" -"select` function, and ```` provides the :c:func:`!" -"futimes`, :c:func:`!gettimeofday` and :c:func:`!setitimer` functions. " -"(Contributed by Victor Stinner in :gh:`108765`.)" +"select` function, and ```` provides the :c:func:`!futimes`, :c:" +"func:`!gettimeofday` and :c:func:`!setitimer` functions. (Contributed by " +"Victor Stinner in :gh:`108765`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2706 msgid "" "On Windows, ``Python.h`` no longer includes the ```` standard " "header file. If needed, it should now be included explicitly. For example, " @@ -5464,7 +4512,6 @@ msgid "" "(Contributed by Victor Stinner in :gh:`108765`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2713 msgid "" "If the :c:macro:`Py_LIMITED_API` macro is defined, :c:macro:`!" "Py_BUILD_CORE`, :c:macro:`!Py_BUILD_CORE_BUILTIN` and :c:macro:`!" @@ -5472,18 +4519,15 @@ msgid "" "(Contributed by Victor Stinner in :gh:`85283`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2718 msgid "" "The old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and " "``Py_TRASHCAN_SAFE_END`` were removed. They should be replaced by the new " "macros ``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``." msgstr "" -#: ../../whatsnew/3.13.rst:2722 msgid "A ``tp_dealloc`` function that has the old macros, such as::" msgstr "" -#: ../../whatsnew/3.13.rst:2724 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -5495,11 +4539,9 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.13.rst:2733 msgid "should migrate to the new macros as follows::" msgstr "" -#: ../../whatsnew/3.13.rst:2735 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -5511,7 +4553,6 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.13.rst:2744 msgid "" "Note that ``Py_TRASHCAN_BEGIN`` has a second argument which should be the " "deallocation function it is in. The new macros were added in Python 3.8 and " @@ -5519,158 +4560,129 @@ msgid "" "in :gh:`105111`.)" msgstr "" -#: ../../whatsnew/3.13.rst:2751 msgid "" ":ref:`PEP 667 ` introduces several changes to " "frame-related functions:" msgstr "" -#: ../../whatsnew/3.13.rst:2754 msgid "" -"The effects of mutating the dictionary returned " -"from :c:func:`PyEval_GetLocals` in an :term:`optimized scope` have changed. " -"New dict entries added this way will now *only* be visible to " -"subsequent :c:func:`PyEval_GetLocals` calls in that frame, " -"as :c:func:`PyFrame_GetLocals`, :func:`locals`, " -"and :attr:`FrameType.f_locals ` no longer access the same " -"underlying cached dictionary. Changes made to entries for actual variable " -"names and names added via the write-through proxy interfaces will be " -"overwritten on subsequent calls to :c:func:`PyEval_GetLocals` in that frame. " -"The recommended code update depends on how the function was being used, so " -"refer to the deprecation notice on the function for details." +"The effects of mutating the dictionary returned from :c:func:" +"`PyEval_GetLocals` in an :term:`optimized scope` have changed. New dict " +"entries added this way will now *only* be visible to subsequent :c:func:" +"`PyEval_GetLocals` calls in that frame, as :c:func:`PyFrame_GetLocals`, :" +"func:`locals`, and :attr:`FrameType.f_locals ` no longer " +"access the same underlying cached dictionary. Changes made to entries for " +"actual variable names and names added via the write-through proxy interfaces " +"will be overwritten on subsequent calls to :c:func:`PyEval_GetLocals` in " +"that frame. The recommended code update depends on how the function was " +"being used, so refer to the deprecation notice on the function for details." msgstr "" -#: ../../whatsnew/3.13.rst:2767 msgid "" "Calling :c:func:`PyFrame_GetLocals` in an :term:`optimized scope` now " "returns a write-through proxy rather than a snapshot that gets updated at " "ill-specified times. If a snapshot is desired, it must be created explicitly " -"(e.g. with :c:func:`PyDict_Copy`), or by calling the " -"new :c:func:`PyEval_GetFrameLocals` API." +"(e.g. with :c:func:`PyDict_Copy`), or by calling the new :c:func:" +"`PyEval_GetFrameLocals` API." msgstr "" -#: ../../whatsnew/3.13.rst:2774 msgid "" ":c:func:`!PyFrame_FastToLocals` and :c:func:`!PyFrame_FastToLocalsWithError` " "no longer have any effect. Calling these functions has been redundant since " "Python 3.11, when :c:func:`PyFrame_GetLocals` was first introduced." msgstr "" -#: ../../whatsnew/3.13.rst:2779 msgid "" ":c:func:`!PyFrame_LocalsToFast` no longer has any effect. Calling this " "function is redundant now that :c:func:`PyFrame_GetLocals` returns a write-" "through proxy for :term:`optimized scopes `." msgstr "" -#: ../../whatsnew/3.13.rst:2783 msgid "" "Python 3.13 removed many private functions. Some of them can be replaced " "using these alternatives:" msgstr "" -#: ../../whatsnew/3.13.rst:2786 msgid "``_PyDict_Pop()``: :c:func:`PyDict_Pop` or :c:func:`PyDict_PopString`;" msgstr "" -#: ../../whatsnew/3.13.rst:2787 msgid "``_PyDict_GetItemWithError()``: :c:func:`PyDict_GetItemRef`;" msgstr "" -#: ../../whatsnew/3.13.rst:2788 msgid "``_PyErr_WriteUnraisableMsg()``: :c:func:`PyErr_FormatUnraisable`;" msgstr "" -#: ../../whatsnew/3.13.rst:2789 msgid "" -"``_PyEval_SetTrace()``: :c:func:`PyEval_SetTrace` " -"or :c:func:`PyEval_SetTraceAllThreads`;" +"``_PyEval_SetTrace()``: :c:func:`PyEval_SetTrace` or :c:func:" +"`PyEval_SetTraceAllThreads`;" msgstr "" -#: ../../whatsnew/3.13.rst:2790 msgid "``_PyList_Extend()``: :c:func:`PyList_Extend`;" msgstr "" -#: ../../whatsnew/3.13.rst:2791 msgid "``_PyLong_AsInt()``: :c:func:`PyLong_AsInt`;" msgstr "" -#: ../../whatsnew/3.13.rst:2792 msgid "``_PyMem_RawStrdup()``: ``strdup()``;" msgstr "" -#: ../../whatsnew/3.13.rst:2793 msgid "``_PyMem_Strdup()``: ``strdup()``;" msgstr "" -#: ../../whatsnew/3.13.rst:2794 msgid "``_PyObject_ClearManagedDict()``: :c:func:`PyObject_ClearManagedDict`;" msgstr "" -#: ../../whatsnew/3.13.rst:2795 msgid "``_PyObject_VisitManagedDict()``: :c:func:`PyObject_VisitManagedDict`;" msgstr "" -#: ../../whatsnew/3.13.rst:2796 -msgid "``_PyThreadState_UncheckedGet()``: :c:func:`PyThreadState_GetUnchecked()`;" +msgid "" +"``_PyThreadState_UncheckedGet()``: :c:func:`PyThreadState_GetUnchecked()`;" msgstr "" -#: ../../whatsnew/3.13.rst:2797 msgid "``_PyTime_AsSecondsDouble()``: :c:func:`PyTime_AsSecondsDouble`;" msgstr "" -#: ../../whatsnew/3.13.rst:2798 msgid "" -"``_PyTime_GetMonotonicClock()``: :c:func:`PyTime_Monotonic` " -"or :c:func:`PyTime_MonotonicRaw`;" +"``_PyTime_GetMonotonicClock()``: :c:func:`PyTime_Monotonic` or :c:func:" +"`PyTime_MonotonicRaw`;" msgstr "" -#: ../../whatsnew/3.13.rst:2799 msgid "" -"``_PyTime_GetPerfCounter()``: :c:func:`PyTime_PerfCounter` " -"or :c:func:`PyTime_PerfCounterRaw`;" +"``_PyTime_GetPerfCounter()``: :c:func:`PyTime_PerfCounter` or :c:func:" +"`PyTime_PerfCounterRaw`;" msgstr "" -#: ../../whatsnew/3.13.rst:2800 msgid "" -"``_PyTime_GetSystemClock()``: :c:func:`PyTime_Time` " -"or :c:func:`PyTime_TimeRaw`;" +"``_PyTime_GetSystemClock()``: :c:func:`PyTime_Time` or :c:func:" +"`PyTime_TimeRaw`;" msgstr "" -#: ../../whatsnew/3.13.rst:2801 msgid "``_PyTime_MAX``: :c:var:`PyTime_MAX`;" msgstr "" -#: ../../whatsnew/3.13.rst:2802 msgid "``_PyTime_MIN``: :c:var:`PyTime_MIN`;" msgstr "" -#: ../../whatsnew/3.13.rst:2803 msgid "``_PyTime_t``: :c:type:`PyTime_t`;" msgstr "" -#: ../../whatsnew/3.13.rst:2804 msgid "``_Py_HashPointer()``: :c:func:`Py_HashPointer`;" msgstr "" -#: ../../whatsnew/3.13.rst:2805 msgid "``_Py_IsFinalizing()``: :c:func:`Py_IsFinalizing`." msgstr "" -#: ../../whatsnew/3.13.rst:2807 msgid "" "The `pythoncapi-compat project`_ can be used to get most of these new " "functions on Python 3.12 and older." msgstr "" -#: ../../whatsnew/3.13.rst:2811 msgid "Regression Test Changes" msgstr "" -#: ../../whatsnew/3.13.rst:2813 msgid "" -"Python built with :file:`configure` :option:`--with-pydebug` now supports " -"a :option:`-X presite=package.module <-X>` command-line option. If used, it " +"Python built with :file:`configure` :option:`--with-pydebug` now supports a :" +"option:`-X presite=package.module <-X>` command-line option. If used, it " "specifies a module that should be imported early in the lifecycle of the " "interpreter, before ``site.py`` is executed. (Contributed by Łukasz Langa " "in :gh:`110769`.)" diff --git a/whatsnew/3.14.po b/whatsnew/3.14.po index bfb1ef0..fe2722d 100644 --- a/whatsnew/3.14.po +++ b/whatsnew/3.14.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,57 +18,46 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.14.rst:3 msgid "What's new in Python 3.14" msgstr "" -#: ../../whatsnew/3.14.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.14.rst:5 msgid "Hugo van Kemenade" msgstr "" -#: ../../whatsnew/3.14.rst:47 msgid "" "This article explains the new features in Python 3.14, compared to 3.13." msgstr "" -#: ../../whatsnew/3.14.rst:49 msgid "For full details, see the :ref:`changelog `." msgstr "" -#: ../../whatsnew/3.14.rst:53 msgid ":pep:`745` -- Python 3.14 release schedule" msgstr "" -#: ../../whatsnew/3.14.rst:57 msgid "" "Prerelease users should be aware that this document is currently in draft " "form. It will be updated substantially as Python 3.14 moves towards release, " "so it's worth checking back even after reading earlier versions." msgstr "" -#: ../../whatsnew/3.14.rst:63 msgid "Summary -- release highlights" msgstr "" -#: ../../whatsnew/3.14.rst:68 msgid "" -"Python 3.14 beta is the pre-release of the next version of the Python " -"programming language, with a mix of changes to the language, the " -"implementation and the standard library." +"Python 3.14 will be the latest stable release of the Python programming " +"language, with a mix of changes to the language, the implementation and the " +"standard library." msgstr "" -#: ../../whatsnew/3.14.rst:72 msgid "" -"The biggest changes to the implementation include template strings " -"(:pep:`750`), deferred evaluation of annotations (:pep:`649`), and a new " -"type of interpreter that uses tail calls." +"The biggest changes to the implementation include template strings (:pep:" +"`750`), deferred evaluation of annotations (:pep:`649`), and a new type of " +"interpreter that uses tail calls." msgstr "" -#: ../../whatsnew/3.14.rst:76 msgid "" "The library changes include the addition of a new :mod:`!annotationlib` " "module for introspecting and wrapping annotations (:pep:`749`), a new :mod:`!" @@ -81,137 +66,114 @@ msgid "" "and improvements in user-friendliness and correctness." msgstr "" -#: ../../whatsnew/3.14.rst:85 msgid "" ":ref:`PEP 779: Free-threaded Python is officially supported `" msgstr "" -#: ../../whatsnew/3.14.rst:86 msgid "" ":ref:`PEP 649 and 749: deferred evaluation of annotations `" msgstr "" -#: ../../whatsnew/3.14.rst:87 msgid "" ":ref:`PEP 734: Multiple interpreters in the stdlib `" msgstr "" -#: ../../whatsnew/3.14.rst:88 msgid ":ref:`PEP 741: Python configuration C API `" msgstr "" -#: ../../whatsnew/3.14.rst:89 msgid ":ref:`PEP 750: Template strings `" msgstr "" -#: ../../whatsnew/3.14.rst:90 msgid "" ":ref:`PEP 758: Allow except and except* expressions without parentheses " "`" msgstr "" -#: ../../whatsnew/3.14.rst:91 -msgid ":ref:`PEP 761: Discontinuation of PGP signatures `" +msgid "" +":ref:`PEP 761: Discontinuation of PGP signatures `" msgstr "" -#: ../../whatsnew/3.14.rst:92 msgid "" ":ref:`PEP 765: Disallow return/break/continue that exit a finally block " "`" msgstr "" -#: ../../whatsnew/3.14.rst:93 msgid "" ":ref:`Free-threaded mode improvements `" msgstr "" -#: ../../whatsnew/3.14.rst:94 msgid "" ":ref:`PEP 768: Safe external debugger interface for CPython `" msgstr "" -#: ../../whatsnew/3.14.rst:95 msgid "" ":ref:`PEP 784: Adding Zstandard to the standard library `" msgstr "" -#: ../../whatsnew/3.14.rst:96 msgid ":ref:`A new type of interpreter `" msgstr "" -#: ../../whatsnew/3.14.rst:97 msgid "" ":ref:`Syntax highlighting in PyREPL `, and " "color output in :ref:`unittest `, :ref:`argparse " -"`, :ref:`json ` " -"and :ref:`calendar ` CLIs" +"`, :ref:`json ` and :ref:" +"`calendar ` CLIs" msgstr "" -#: ../../whatsnew/3.14.rst:102 msgid "" ":ref:`Binary releases for the experimental just-in-time compiler " "`" msgstr "" -#: ../../whatsnew/3.14.rst:106 msgid "Incompatible changes" msgstr "" -#: ../../whatsnew/3.14.rst:108 msgid "" "On platforms other than macOS and Windows, the default :ref:`start method " -"` for :mod:`multiprocessing` " -"and :class:`~concurrent.futures.ProcessPoolExecutor` switches from *fork* to " +"` for :mod:`multiprocessing` and :class:" +"`~concurrent.futures.ProcessPoolExecutor` switches from *fork* to " "*forkserver*." msgstr "" -#: ../../whatsnew/3.14.rst:113 msgid "" "See :ref:`(1) ` and :ref:`(2) " "` for details." msgstr "" -#: ../../whatsnew/3.14.rst:116 msgid "" -"If you encounter :exc:`NameError`\\s or pickling errors coming out " -"of :mod:`multiprocessing` or :mod:`concurrent.futures`, see " -"the :ref:`forkserver restrictions `." +"If you encounter :exc:`NameError`\\s or pickling errors coming out of :mod:" +"`multiprocessing` or :mod:`concurrent.futures`, see the :ref:`forkserver " +"restrictions `." msgstr "" -#: ../../whatsnew/3.14.rst:120 msgid "" "The interpreter avoids some reference count modifications internally when " -"it's safe to do so. This can lead to different values returned " -"from :func:`sys.getrefcount` and :c:func:`Py_REFCNT` compared to previous " -"versions of Python. See :ref:`below ` for details." +"it's safe to do so. This can lead to different values returned from :func:" +"`sys.getrefcount` and :c:func:`Py_REFCNT` compared to previous versions of " +"Python. See :ref:`below ` for details." msgstr "" -#: ../../whatsnew/3.14.rst:126 ../../whatsnew/3.14.rst:2835 msgid "New features" msgstr "" -#: ../../whatsnew/3.14.rst:131 msgid "PEP 779: Free-threaded Python is officially supported" msgstr "" -#: ../../whatsnew/3.14.rst:133 msgid "" "The free-threaded build of Python is now supported and no longer " "experimental. This is the start of phase II where free-threaded Python is " "officially supported but still optional." msgstr "" -#: ../../whatsnew/3.14.rst:137 msgid "" "We are confident that the project is on the right path, and we appreciate " "the continued dedication from everyone working to make free-threading ready " "for broader adoption across the Python community." msgstr "" -#: ../../whatsnew/3.14.rst:141 msgid "" "With these recommendations and the acceptance of this PEP, we as the Python " "developer community should broadly advertise that free-threading is a " @@ -219,7 +181,6 @@ msgid "" "be removed without a proper deprecation schedule." msgstr "" -#: ../../whatsnew/3.14.rst:146 msgid "" "Any decision to transition to phase III, with free-threading as the default " "or sole build of Python is still undecided, and dependent on many factors " @@ -227,17 +188,14 @@ msgid "" "future." msgstr "" -#: ../../whatsnew/3.14.rst:151 msgid "" ":pep:`779` and its `acceptance `__." msgstr "" -#: ../../whatsnew/3.14.rst:157 msgid "PEP 734: Multiple interpreters in the stdlib" msgstr "" -#: ../../whatsnew/3.14.rst:159 msgid "" "The CPython runtime supports running multiple copies of Python in the same " "process simultaneously and has done so for over 20 years. Each of these " @@ -245,36 +203,30 @@ msgid "" "available only through the C-API." msgstr "" -#: ../../whatsnew/3.14.rst:164 msgid "" -"That limitation is removed in the 3.14 release, with the " -"new :mod:`concurrent.interpreters` module." +"That limitation is removed in the 3.14 release, with the new :mod:" +"`concurrent.interpreters` module." msgstr "" -#: ../../whatsnew/3.14.rst:167 msgid "" "There are at least two notable reasons why using multiple interpreters is " "worth considering:" msgstr "" -#: ../../whatsnew/3.14.rst:170 msgid "they support a new (to Python), human-friendly concurrency model" msgstr "" -#: ../../whatsnew/3.14.rst:171 msgid "true multi-core parallelism" msgstr "" -#: ../../whatsnew/3.14.rst:173 msgid "" "For some use cases, concurrency in software enables efficiency and can " "simplify software, at a high level. At the same time, implementing and " "maintaining all but the simplest concurrency is often a struggle for the " -"human brain. That especially applies to plain threads (for " -"example, :mod:`threading`), where all memory is shared between all threads." +"human brain. That especially applies to plain threads (for example, :mod:" +"`threading`), where all memory is shared between all threads." msgstr "" -#: ../../whatsnew/3.14.rst:179 msgid "" "With multiple isolated interpreters, you can take advantage of a class of " "concurrency models, like CSP or the actor model, that have found success in " @@ -282,26 +234,23 @@ msgid "" "of multiple interpreters like threads but with opt-in sharing." msgstr "" -#: ../../whatsnew/3.14.rst:185 msgid "" "Regarding multi-core parallelism: as of the 3.12 release, interpreters are " -"now sufficiently isolated from one another to be used in parallel. " -"(See :pep:`684`.) This unlocks a variety of CPU-intensive use cases for " -"Python that were limited by the :term:`GIL`." +"now sufficiently isolated from one another to be used in parallel. (See :pep:" +"`684`.) This unlocks a variety of CPU-intensive use cases for Python that " +"were limited by the :term:`GIL`." msgstr "" -#: ../../whatsnew/3.14.rst:190 msgid "" -"Using multiple interpreters is similar in many ways " -"to :mod:`multiprocessing`, in that they both provide isolated logical " -"\"processes\" that can run in parallel, with no sharing by default. However, " -"when using multiple interpreters, an application will use fewer system " -"resources and will operate more efficiently (since it stays within the same " -"process). Think of multiple interpreters as having the isolation of " -"processes with the efficiency of threads." +"Using multiple interpreters is similar in many ways to :mod:" +"`multiprocessing`, in that they both provide isolated logical \"processes\" " +"that can run in parallel, with no sharing by default. However, when using " +"multiple interpreters, an application will use fewer system resources and " +"will operate more efficiently (since it stays within the same process). " +"Think of multiple interpreters as having the isolation of processes with the " +"efficiency of threads." msgstr "" -#: ../../whatsnew/3.14.rst:201 msgid "" "While the feature has been around for decades, multiple interpreters have " "not been used widely, due to low awareness and the lack of a stdlib module. " @@ -309,39 +258,32 @@ msgid "" "improve significantly now that the feature is finally going mainstream." msgstr "" -#: ../../whatsnew/3.14.rst:207 msgid "Current limitations:" msgstr "" -#: ../../whatsnew/3.14.rst:209 msgid "starting each interpreter has not been optimized yet" msgstr "" -#: ../../whatsnew/3.14.rst:210 msgid "" "each interpreter uses more memory than necessary (we will be working next on " "extensive internal sharing between interpreters)" msgstr "" -#: ../../whatsnew/3.14.rst:213 msgid "" "there aren't many options *yet* for truly sharing objects or other data " "between interpreters (other than :type:`memoryview`)" msgstr "" -#: ../../whatsnew/3.14.rst:215 msgid "" "many extension modules on PyPI are not compatible with multiple interpreters " "yet (stdlib extension modules *are* compatible)" msgstr "" -#: ../../whatsnew/3.14.rst:217 msgid "" "the approach to writing applications that use multiple isolated interpreters " "is mostly unfamiliar to Python users, for now" msgstr "" -#: ../../whatsnew/3.14.rst:220 msgid "" "The impact of these limitations will depend on future CPython improvements, " "how interpreters are used, and what the community solves through PyPI " @@ -349,18 +291,16 @@ msgid "" "impact, so try it out!" msgstr "" -#: ../../whatsnew/3.14.rst:225 msgid "" "Furthermore, future CPython releases will reduce or eliminate overhead and " "provide utilities that are less appropriate on PyPI. In the meantime, most " "of the limitations can also be addressed through extension modules, meaning " "PyPI packages can fill any gap for 3.14, and even back to 3.12 where " -"interpreters were finally properly isolated and stopped sharing " -"the :term:`GIL`. Likewise, we expect to slowly see libraries on PyPI for " -"high-level abstractions on top of interpreters." +"interpreters were finally properly isolated and stopped sharing the :term:" +"`GIL`. Likewise, we expect to slowly see libraries on PyPI for high-level " +"abstractions on top of interpreters." msgstr "" -#: ../../whatsnew/3.14.rst:233 msgid "" "Regarding extension modules, work is in progress to update some PyPI " "projects, as well as tools like Cython, pybind11, nanobind, and PyO3. The " @@ -371,29 +311,24 @@ msgid "" "accelerate support for multiple interpreters." msgstr "" -#: ../../whatsnew/3.14.rst:242 msgid "" "Also added in 3.14: :ref:`concurrent.futures.InterpreterPoolExecutor " "`." msgstr "" -#: ../../whatsnew/3.14.rst:246 msgid ":pep:`734`." msgstr "" -#: ../../whatsnew/3.14.rst:252 msgid "PEP 750: Template strings" msgstr "" -#: ../../whatsnew/3.14.rst:254 msgid "" "Template string literals (t-strings) are a generalization of f-strings, " -"using a ``t`` in place of the ``f`` prefix. Instead of evaluating " -"to :class:`str`, t-strings evaluate to a new :class:`!" -"string.templatelib.Template` type:" +"using a ``t`` in place of the ``f`` prefix. Instead of evaluating to :class:" +"`str`, t-strings evaluate to a new :class:`!string.templatelib.Template` " +"type:" msgstr "" -#: ../../whatsnew/3.14.rst:258 msgid "" "from string.templatelib import Template\n" "\n" @@ -401,14 +336,12 @@ msgid "" "template: Template = t\"Hello {name}\"" msgstr "" -#: ../../whatsnew/3.14.rst:265 msgid "" "The template can then be combined with functions that operate on the " "template's structure to produce a :class:`str` or a string-like result. For " "example, sanitizing input:" msgstr "" -#: ../../whatsnew/3.14.rst:269 msgid "" "evil = \"\"\n" "template = t\"

{evil}

\"\n" @@ -416,18 +349,15 @@ msgid "" "p>\"" msgstr "" -#: ../../whatsnew/3.14.rst:275 msgid "As another example, generating HTML attributes from data:" msgstr "" -#: ../../whatsnew/3.14.rst:277 msgid "" "attributes = {\"src\": \"shrubbery.jpg\", \"alt\": \"looks nice\"}\n" "template = t\"\"\n" "assert html(template) == '\"looks'" msgstr "" -#: ../../whatsnew/3.14.rst:283 msgid "" "Compared to using an f-string, the ``html`` function has access to template " "attributes containing the original information: static strings, " @@ -437,11 +367,9 @@ msgid "" "much closer to the Python language, syntax, scoping, and more." msgstr "" -#: ../../whatsnew/3.14.rst:290 msgid "Writing template handlers is straightforward:" msgstr "" -#: ../../whatsnew/3.14.rst:292 msgid "" "from string.templatelib import Template, Interpolation\n" "\n" @@ -460,7 +388,6 @@ msgid "" "assert lower_upper(t\"HELLO {name}\") == \"hello WORLD\"" msgstr "" -#: ../../whatsnew/3.14.rst:309 msgid "" "With this in place, developers can write template systems to sanitize SQL, " "make safe shell operations, improve logging, tackle modern ideas in web " @@ -468,22 +395,18 @@ msgid "" "business DSLs." msgstr "" -#: ../../whatsnew/3.14.rst:313 msgid "" "(Contributed by Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, " "Lysandros Nikolaou, Dave Peck, Adam Turner, Jelle Zijlstra, Bénédikt Tran, " "and Pablo Galindo Salgado in :gh:`132661`.)" msgstr "" -#: ../../whatsnew/3.14.rst:318 msgid ":pep:`750`." msgstr "" -#: ../../whatsnew/3.14.rst:324 msgid "PEP 768: Safe external debugger interface for CPython" msgstr "" -#: ../../whatsnew/3.14.rst:326 msgid "" ":pep:`768` introduces a zero-overhead debugging interface that allows " "debuggers and profilers to safely attach to running Python processes. This " @@ -493,7 +416,6 @@ msgid "" "module's remote attaching capabilities." msgstr "" -#: ../../whatsnew/3.14.rst:332 msgid "" "The new interface provides safe execution points for attaching debugger code " "without modifying the interpreter's normal execution path or adding runtime " @@ -502,17 +424,14 @@ msgid "" "capability for high-availability systems and production environments." msgstr "" -#: ../../whatsnew/3.14.rst:337 msgid "" "For convenience, CPython implements this interface through the :mod:`sys` " "module with a :func:`sys.remote_exec` function::" msgstr "" -#: ../../whatsnew/3.14.rst:340 msgid "sys.remote_exec(pid, script_path)" msgstr "" -#: ../../whatsnew/3.14.rst:342 msgid "" "This function allows sending Python code to be executed in a target process " "at the next safe execution point. However, tool authors can also implement " @@ -520,13 +439,11 @@ msgid "" "mechanisms used to safely attach to running processes." msgstr "" -#: ../../whatsnew/3.14.rst:346 msgid "" "Here's a simple example that inspects object types in a running Python " "process:" msgstr "" -#: ../../whatsnew/3.14.rst:348 msgid "" "import os\n" "import sys\n" @@ -545,27 +462,22 @@ msgid "" " os.unlink(script_path)" msgstr "" -#: ../../whatsnew/3.14.rst:365 msgid "" "The debugging interface has been carefully designed with security in mind " "and includes several mechanisms to control access:" msgstr "" -#: ../../whatsnew/3.14.rst:368 msgid "A :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` environment variable." msgstr "" -#: ../../whatsnew/3.14.rst:369 msgid "A :option:`-X disable-remote-debug` command-line option." msgstr "" -#: ../../whatsnew/3.14.rst:370 msgid "" "A :option:`--without-remote-debug` configure flag to completely disable the " "feature at build time." msgstr "" -#: ../../whatsnew/3.14.rst:372 msgid "" "A key implementation detail is that the interface piggybacks on the " "interpreter's existing evaluation loop and safe points, ensuring zero " @@ -573,49 +485,41 @@ msgid "" "processes to coordinate debugging operations." msgstr "" -#: ../../whatsnew/3.14.rst:376 msgid "" "(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic " "in :gh:`131591`.)" msgstr "" -#: ../../whatsnew/3.14.rst:379 ../../whatsnew/3.14.rst:453 msgid ":pep:`768`." msgstr "" -#: ../../whatsnew/3.14.rst:385 msgid "PEP 784: Adding Zstandard to the standard library" msgstr "" -#: ../../whatsnew/3.14.rst:387 msgid "" -"The new ``compression`` package contains modules :mod:`!" -"compression.lzma`, :mod:`!compression.bz2`, :mod:`!compression.gzip` " -"and :mod:`!compression.zlib` which re-export " -"the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` and :mod:`zlib` modules " -"respectively. The new import names under ``compression`` are the canonical " -"names for importing these compression modules going forward. However, the " -"existing modules names have not been deprecated. Any deprecation or removal " -"of the existing compression modules will occur no sooner than five years " -"after the release of 3.14." +"The new ``compression`` package contains modules :mod:`!compression.lzma`, :" +"mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!compression." +"zlib` which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` and :mod:" +"`zlib` modules respectively. The new import names under ``compression`` are " +"the canonical names for importing these compression modules going forward. " +"However, the existing modules names have not been deprecated. Any " +"deprecation or removal of the existing compression modules will occur no " +"sooner than five years after the release of 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:396 msgid "" "The new :mod:`!compression.zstd` module provides compression and " "decompression APIs for the Zstandard format via bindings to `Meta's zstd " "library `__. Zstandard is a widely " "adopted, highly efficient, and fast compression format. In addition to the " "APIs introduced in :mod:`!compression.zstd`, support for reading and writing " -"Zstandard compressed archives has been added to " -"the :mod:`tarfile`, :mod:`zipfile`, and :mod:`shutil` modules." +"Zstandard compressed archives has been added to the :mod:`tarfile`, :mod:" +"`zipfile`, and :mod:`shutil` modules." msgstr "" -#: ../../whatsnew/3.14.rst:404 msgid "Here's an example of using the new module to compress some data:" msgstr "" -#: ../../whatsnew/3.14.rst:406 msgid "" "from compression import zstd\n" "import math\n" @@ -628,37 +532,30 @@ msgid "" "print(f\"Achieved compression ratio of {ratio}\")" msgstr "" -#: ../../whatsnew/3.14.rst:418 msgid "" -"As can be seen, the API is similar to the APIs of the :mod:`!lzma` " -"and :mod:`!bz2` modules." +"As can be seen, the API is similar to the APIs of the :mod:`!lzma` and :mod:" +"`!bz2` modules." msgstr "" -#: ../../whatsnew/3.14.rst:421 msgid "" "(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas " "Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" msgstr "" -#: ../../whatsnew/3.14.rst:425 msgid ":pep:`784`." msgstr "" -#: ../../whatsnew/3.14.rst:431 msgid "Remote attaching to a running Python process with PDB" msgstr "" -#: ../../whatsnew/3.14.rst:433 msgid "" "The :mod:`pdb` module now supports remote attaching to a running Python " "process using a new ``-p PID`` command-line option:" msgstr "" -#: ../../whatsnew/3.14.rst:436 msgid "python -m pdb -p 1234" msgstr "" -#: ../../whatsnew/3.14.rst:440 msgid "" "This will connect to the Python process with the given PID and allow you to " "debug it interactively. Notice that due to how the Python interpreter works " @@ -667,21 +564,17 @@ msgid "" "when the process receives a signal." msgstr "" -#: ../../whatsnew/3.14.rst:446 msgid "" "This feature uses :pep:`768` and the :func:`sys.remote_exec` function to " "attach to the remote process and send the PDB commands to it." msgstr "" -#: ../../whatsnew/3.14.rst:450 msgid "(Contributed by Matt Wozniski and Pablo Galindo in :gh:`131591`.)" msgstr "" -#: ../../whatsnew/3.14.rst:459 msgid "PEP 758 – Allow except and except* expressions without parentheses" msgstr "" -#: ../../whatsnew/3.14.rst:461 msgid "" "The :keyword:`except` and :keyword:`except* ` expressions now " "allow parentheses to be omitted when there are multiple exception types and " @@ -689,7 +582,6 @@ msgid "" "valid:" msgstr "" -#: ../../whatsnew/3.14.rst:465 msgid "" "try:\n" " connect_to_server()\n" @@ -704,23 +596,18 @@ msgid "" " print(\"Network issue encountered.\")" msgstr "" -#: ../../whatsnew/3.14.rst:479 msgid "Check :pep:`758` for more details." msgstr "" -#: ../../whatsnew/3.14.rst:481 msgid "(Contributed by Pablo Galindo and Brett Cannon in :gh:`131831`.)" msgstr "" -#: ../../whatsnew/3.14.rst:484 msgid ":pep:`758`." msgstr "" -#: ../../whatsnew/3.14.rst:490 msgid "PEP 649 and 749: deferred evaluation of annotations" msgstr "" -#: ../../whatsnew/3.14.rst:492 msgid "" "The :term:`annotations ` on functions, classes, and modules are " "no longer evaluated eagerly. Instead, annotations are stored in special-" @@ -729,7 +616,6 @@ msgid "" "This is specified in :pep:`649` and :pep:`749`." msgstr "" -#: ../../whatsnew/3.14.rst:498 msgid "" "This change is designed to make annotations in Python more performant and " "more usable in most circumstances. The runtime cost for defining annotations " @@ -738,23 +624,19 @@ msgid "" "forward references." msgstr "" -#: ../../whatsnew/3.14.rst:504 msgid "" "The new :mod:`annotationlib` module provides tools for inspecting deferred " -"annotations. Annotations may be evaluated in " -"the :attr:`~annotationlib.Format.VALUE` format (which evaluates annotations " -"to runtime values, similar to the behavior in earlier Python versions), " -"the :attr:`~annotationlib.Format.FORWARDREF` format (which replaces " -"undefined names with special markers), and " -"the :attr:`~annotationlib.Format.STRING` format (which returns annotations " -"as strings)." +"annotations. Annotations may be evaluated in the :attr:`~annotationlib." +"Format.VALUE` format (which evaluates annotations to runtime values, similar " +"to the behavior in earlier Python versions), the :attr:`~annotationlib." +"Format.FORWARDREF` format (which replaces undefined names with special " +"markers), and the :attr:`~annotationlib.Format.STRING` format (which returns " +"annotations as strings)." msgstr "" -#: ../../whatsnew/3.14.rst:511 msgid "This example shows how these formats behave:" msgstr "" -#: ../../whatsnew/3.14.rst:513 msgid "" ">>> from annotationlib import get_annotations, Format\n" ">>> def func(arg: Undefined):\n" @@ -769,18 +651,15 @@ msgid "" "{'arg': 'Undefined'}" msgstr "" -#: ../../whatsnew/3.14.rst:528 msgid "Implications for annotated code" msgstr "" -#: ../../whatsnew/3.14.rst:530 msgid "" "If you define annotations in your code (for example, for use with a static " "type checker), then this change probably does not affect you: you can keep " "writing annotations the same way you did with previous versions of Python." msgstr "" -#: ../../whatsnew/3.14.rst:534 msgid "" "You will likely be able to remove quoted strings in annotations, which are " "frequently used for forward references. Similarly, if you use ``from " @@ -791,35 +670,28 @@ msgid "" "annotations before they work as expected." msgstr "" -#: ../../whatsnew/3.14.rst:543 msgid "Implications for readers of ``__annotations__``" msgstr "" -#: ../../whatsnew/3.14.rst:545 msgid "" "If your code reads the ``__annotations__`` attribute on objects, you may " "want to make changes in order to support code that relies on deferred " -"evaluation of annotations. For example, you may want to " -"use :func:`annotationlib.get_annotations` with " -"the :attr:`~annotationlib.Format.FORWARDREF` format, as " -"the :mod:`dataclasses` module now does." +"evaluation of annotations. For example, you may want to use :func:" +"`annotationlib.get_annotations` with the :attr:`~annotationlib.Format." +"FORWARDREF` format, as the :mod:`dataclasses` module now does." msgstr "" -#: ../../whatsnew/3.14.rst:551 msgid "" "The external :pypi:`typing_extensions` package provides partial backports of " -"some of the functionality of the :mod:`annotationlib` module, such as " -"the :class:`~annotationlib.Format` enum and " -"the :func:`~annotationlib.get_annotations` function. These can be used to " -"write cross-version code that takes advantage of the new behavior in Python " -"3.14." +"some of the functionality of the :mod:`annotationlib` module, such as the :" +"class:`~annotationlib.Format` enum and the :func:`~annotationlib." +"get_annotations` function. These can be used to write cross-version code " +"that takes advantage of the new behavior in Python 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:557 msgid "Related changes" msgstr "" -#: ../../whatsnew/3.14.rst:559 msgid "" "The changes in Python 3.14 are designed to rework how ``__annotations__`` " "works at runtime while minimizing breakage to code that contains annotations " @@ -830,26 +702,22 @@ msgid "" "use only the documented functionality of the :mod:`annotationlib` module." msgstr "" -#: ../../whatsnew/3.14.rst:567 msgid "" "In particular, do not read annotations directly from the namespace " -"dictionary attribute of type objects. " -"Use :func:`annotationlib.get_annotate_from_class_namespace` during class " -"construction and :func:`annotationlib.get_annotations` afterwards." +"dictionary attribute of type objects. Use :func:`annotationlib." +"get_annotate_from_class_namespace` during class construction and :func:" +"`annotationlib.get_annotations` afterwards." msgstr "" -#: ../../whatsnew/3.14.rst:571 msgid "" "In previous releases, it was sometimes possible to access class annotations " "from an instance of an annotated class. This behavior was undocumented and " "accidental, and will no longer work in Python 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:576 msgid "``from __future__ import annotations``" msgstr "" -#: ../../whatsnew/3.14.rst:578 msgid "" "In Python 3.7, :pep:`563` introduced the ``from __future__ import " "annotations`` directive, which turns all annotations into strings. This " @@ -860,21 +728,17 @@ msgid "" "of code using ``from __future__ import annotations`` is unchanged." msgstr "" -#: ../../whatsnew/3.14.rst:586 msgid "" "(Contributed by Jelle Zijlstra in :gh:`119180`; :pep:`649` was written by " "Larry Hastings.)" msgstr "" -#: ../../whatsnew/3.14.rst:589 msgid ":pep:`649` and :pep:`749`." msgstr "" -#: ../../whatsnew/3.14.rst:593 msgid "Improved error messages" msgstr "" -#: ../../whatsnew/3.14.rst:595 msgid "" "The interpreter now provides helpful suggestions when it detects typos in " "Python keywords. When a word that closely resembles a Python keyword is " @@ -883,7 +747,6 @@ msgid "" "typing mistakes. For example:" msgstr "" -#: ../../whatsnew/3.14.rst:601 msgid "" ">>> whille True:\n" "... pass\n" @@ -917,21 +780,18 @@ msgid "" "SyntaxError: invalid syntax. Did you mean 'raise'?" msgstr "" -#: ../../whatsnew/3.14.rst:634 msgid "" "While the feature focuses on the most common cases, some variations of " "misspellings may still result in regular syntax errors. (Contributed by " "Pablo Galindo in :gh:`132449`.)" msgstr "" -#: ../../whatsnew/3.14.rst:638 msgid "" -"When unpacking assignment fails due to incorrect number of variables, the " -"error message prints the received number of values in more cases than " +"When an unpacking assignment fails due to an incorrect number of variables, " +"the error message prints the received number of values in more cases than " "before. (Contributed by Tushar Sadhwani in :gh:`122239`.)" msgstr "" -#: ../../whatsnew/3.14.rst:642 msgid "" ">>> x, y, z = 1, 2, 3, 4\n" "Traceback (most recent call last):\n" @@ -941,13 +801,11 @@ msgid "" "ValueError: too many values to unpack (expected 3, got 4)" msgstr "" -#: ../../whatsnew/3.14.rst:651 msgid "" ":keyword:`elif` statements that follow an :keyword:`else` block now have a " "specific error message. (Contributed by Steele Farnsworth in :gh:`129902`.)" msgstr "" -#: ../../whatsnew/3.14.rst:654 msgid "" ">>> if who == \"me\":\n" "... print(\"It's me!\")\n" @@ -961,18 +819,16 @@ msgid "" "SyntaxError: 'elif' block follows an 'else' block" msgstr "" -#: ../../whatsnew/3.14.rst:667 msgid "" -"If a statement " -"(:keyword:`pass`, :keyword:`del`, :keyword:`return`, :keyword:`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, :keyword:`assert`, :keyword:`import`, :keyword:`from`) " -"is passed to the :ref:`if_expr` after :keyword:`else`, or one " -"of :keyword:`pass`, :keyword:`break`, or :keyword:`continue` is passed " -"before :keyword:`if`, then the error message highlights where " -"the :token:`~python-grammar:expression` is required. (Contributed by Sergey " -"Miryanov in :gh:`129515`.)" +"If a statement (:keyword:`pass`, :keyword:`del`, :keyword:`return`, :keyword:" +"`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, :keyword:" +"`assert`, :keyword:`import`, :keyword:`from`) is passed to the :ref:" +"`if_expr` after :keyword:`else`, or one of :keyword:`pass`, :keyword:" +"`break`, or :keyword:`continue` is passed before :keyword:`if`, then the " +"error message highlights where the :token:`~python-grammar:expression` is " +"required. (Contributed by Sergey Miryanov in :gh:`129515`.)" msgstr "" -#: ../../whatsnew/3.14.rst:675 msgid "" ">>> x = 1 if True else pass\n" "Traceback (most recent call last):\n" @@ -989,27 +845,23 @@ msgid "" "SyntaxError: expected expression before 'if', but statement is given" msgstr "" -#: ../../whatsnew/3.14.rst:692 msgid "" "When incorrectly closed strings are detected, the error message suggests " "that the string may be intended to be part of the string. (Contributed by " "Pablo Galindo in :gh:`88535`.)" msgstr "" -#: ../../whatsnew/3.14.rst:696 msgid "" ">>> \"The interesting object \"The important object\" is very important\"\n" "Traceback (most recent call last):\n" "SyntaxError: invalid syntax. Is this intended to be part of the string?" msgstr "" -#: ../../whatsnew/3.14.rst:702 msgid "" "When strings have incompatible prefixes, the error now shows which prefixes " "are incompatible. (Contributed by Nikita Sobolev in :gh:`133197`.)" msgstr "" -#: ../../whatsnew/3.14.rst:706 msgid "" ">>> ub'abc'\n" " File \"\", line 1\n" @@ -1018,33 +870,26 @@ msgid "" "SyntaxError: 'u' and 'b' prefixes are incompatible" msgstr "" -#: ../../whatsnew/3.14.rst:714 msgid "Improved error messages when using ``as`` with incompatible targets in:" msgstr "" -#: ../../whatsnew/3.14.rst:716 msgid "Imports: ``import ... as ...``" msgstr "" -#: ../../whatsnew/3.14.rst:717 msgid "From imports: ``from ... import ... as ...``" msgstr "" -#: ../../whatsnew/3.14.rst:718 msgid "Except handlers: ``except ... as ...``" msgstr "" -#: ../../whatsnew/3.14.rst:719 msgid "Pattern-match cases: ``case ... as ...``" msgstr "" -#: ../../whatsnew/3.14.rst:721 msgid "" -"(Contributed by Nikita Sobolev in :gh:`123539`, :gh:`123562`, " -"and :gh:`123440`.)" +"(Contributed by Nikita Sobolev in :gh:`123539`, :gh:`123562`, and :gh:" +"`123440`.)" msgstr "" -#: ../../whatsnew/3.14.rst:724 msgid "" ">>> import ast as arr[0]\n" " File \"\", line 1\n" @@ -1053,14 +898,12 @@ msgid "" "SyntaxError: cannot use subscript as import target" msgstr "" -#: ../../whatsnew/3.14.rst:732 msgid "" "Improved error message when trying to add an instance of an unhashable type " "to a :class:`dict` or :class:`set`. (Contributed by CF Bolz-Tereick and " "Victor Stinner in :gh:`132828`.)" msgstr "" -#: ../../whatsnew/3.14.rst:736 msgid "" ">>> s = set()\n" ">>> s.add({'pages': 12, 'grade': 'A'})\n" @@ -1079,31 +922,26 @@ msgid "" "TypeError: cannot use 'list' as a dict key (unhashable type: 'list')" msgstr "" -#: ../../whatsnew/3.14.rst:758 msgid "PEP 741: Python configuration C API" msgstr "" -#: ../../whatsnew/3.14.rst:760 msgid "" "Add a :ref:`PyInitConfig C API ` to configure the Python " "initialization without relying on C structures and the ability to make ABI-" "compatible changes in the future." msgstr "" -#: ../../whatsnew/3.14.rst:764 msgid "" -"Complete the :pep:`587` :ref:`PyConfig C API ` by " -"adding :c:func:`PyInitConfig_AddModule` which can be used to add a built-in " -"extension module; feature previously referred to as the “inittab”." +"Complete the :pep:`587` :ref:`PyConfig C API ` by adding :c:" +"func:`PyInitConfig_AddModule` which can be used to add a built-in extension " +"module; a feature previously referred to as the “inittab”." msgstr "" -#: ../../whatsnew/3.14.rst:768 msgid "" "Add :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions to get and " "set the current runtime configuration." msgstr "" -#: ../../whatsnew/3.14.rst:771 msgid "" "PEP 587 “Python Initialization Configuration” unified all the ways to " "configure the Python initialization. This PEP unifies also the configuration " @@ -1113,7 +951,6 @@ msgid "" "the API further." msgstr "" -#: ../../whatsnew/3.14.rst:778 msgid "" "The lower level PEP 587 PyConfig API remains available for use cases with an " "intentionally higher level of coupling to CPython implementation details " @@ -1121,30 +958,23 @@ msgid "" "configuration mechanisms)." msgstr "" -#: ../../whatsnew/3.14.rst:783 ../../whatsnew/3.14.rst:2897 -#: ../../whatsnew/3.14.rst:2916 msgid "(Contributed by Victor Stinner in :gh:`107954`.)" msgstr "" -#: ../../whatsnew/3.14.rst:786 msgid ":pep:`741`." msgstr "" -#: ../../whatsnew/3.14.rst:791 msgid "Asyncio introspection capabilities" msgstr "" -#: ../../whatsnew/3.14.rst:793 msgid "" "Added a new command-line interface to inspect running Python processes using " "asynchronous tasks, available via:" msgstr "" -#: ../../whatsnew/3.14.rst:796 msgid "python -m asyncio ps PID" msgstr "" -#: ../../whatsnew/3.14.rst:800 msgid "" "This tool inspects the given process ID (PID) and displays information about " "currently running asyncio tasks. It outputs a task table: a flat listing of " @@ -1152,11 +982,9 @@ msgid "" "them." msgstr "" -#: ../../whatsnew/3.14.rst:805 msgid "python -m asyncio pstree PID" msgstr "" -#: ../../whatsnew/3.14.rst:809 msgid "" "This tool fetches the same information, but renders a visual async call " "tree, showing coroutine relationships in a hierarchical format. This " @@ -1166,11 +994,9 @@ msgid "" "together." msgstr "" -#: ../../whatsnew/3.14.rst:815 msgid "For example given this code:" msgstr "" -#: ../../whatsnew/3.14.rst:817 msgid "" "import asyncio\n" "\n" @@ -1195,12 +1021,10 @@ msgid "" " asyncio.run(main())" msgstr "" -#: ../../whatsnew/3.14.rst:840 msgid "" "Executing the new tool on the running process will yield a table like this:" msgstr "" -#: ../../whatsnew/3.14.rst:842 msgid "" "python -m asyncio ps 12345\n" "\n" @@ -1219,24 +1043,22 @@ msgid "" "TaskGroup.__aexit__ -> album TaskGroup._aexit -> TaskGroup.__aexit__ -> " "main Task-1 0x7fc930c18050\n" "1935500 0x7fc93173fdf0 TNDNBTG sleep -> " -"play TaskGroup._aexit -> " -"TaskGroup.__aexit__ -> album Sundowning 0x7fc930c18230\n" +"play TaskGroup._aexit -> TaskGroup." +"__aexit__ -> album Sundowning 0x7fc930c18230\n" "1935500 0x7fc930d32510 Levitate sleep -> " -"play TaskGroup._aexit -> " -"TaskGroup.__aexit__ -> album Sundowning 0x7fc930c18230\n" +"play TaskGroup._aexit -> TaskGroup." +"__aexit__ -> album Sundowning 0x7fc930c18230\n" "1935500 0x7fc930d32890 DYWTYLM sleep -> " -"play TaskGroup._aexit -> " -"TaskGroup.__aexit__ -> album TMBTE 0x7fc93173fa50\n" +"play TaskGroup._aexit -> TaskGroup." +"__aexit__ -> album TMBTE 0x7fc93173fa50\n" "1935500 0x7fc93161ec30 Aqua Regia sleep -> " -"play TaskGroup._aexit -> " -"TaskGroup.__aexit__ -> album TMBTE 0x7fc93173fa50" +"play TaskGroup._aexit -> TaskGroup." +"__aexit__ -> album TMBTE 0x7fc93173fa50" msgstr "" -#: ../../whatsnew/3.14.rst:856 msgid "or a tree like this:" msgstr "" -#: ../../whatsnew/3.14.rst:858 msgid "" "python -m asyncio pstree 12345\n" "\n" @@ -1246,10 +1068,10 @@ msgid "" " └── TaskGroup._aexit Lib/asyncio/taskgroups.py:121\n" " ├── (T) Sundowning\n" " │ └── album example.py:8\n" -" │ └── TaskGroup.__aexit__ Lib/asyncio/" -"taskgroups.py:72\n" -" │ └── TaskGroup._aexit Lib/asyncio/" -"taskgroups.py:121\n" +" │ └── TaskGroup.__aexit__ Lib/asyncio/taskgroups." +"py:72\n" +" │ └── TaskGroup._aexit Lib/asyncio/taskgroups." +"py:121\n" " │ ├── (T) TNDNBTG\n" " │ │ └── play example.py:4\n" " │ │ └── sleep Lib/asyncio/tasks.py:702\n" @@ -1258,10 +1080,10 @@ msgid "" " │ └── sleep Lib/asyncio/tasks.py:702\n" " └── (T) TMBTE\n" " └── album example.py:8\n" -" └── TaskGroup.__aexit__ Lib/asyncio/" -"taskgroups.py:72\n" -" └── TaskGroup._aexit Lib/asyncio/" -"taskgroups.py:121\n" +" └── TaskGroup.__aexit__ Lib/asyncio/taskgroups." +"py:72\n" +" └── TaskGroup._aexit Lib/asyncio/taskgroups." +"py:121\n" " ├── (T) DYWTYLM\n" " │ └── play example.py:4\n" " │ └── sleep Lib/asyncio/tasks.py:702\n" @@ -1270,14 +1092,12 @@ msgid "" " └── sleep Lib/asyncio/tasks.py:702" msgstr "" -#: ../../whatsnew/3.14.rst:887 msgid "" "If a cycle is detected in the async await graph (which could indicate a " "programming issue), the tool raises an error and lists the cycle paths that " "prevent tree construction:" msgstr "" -#: ../../whatsnew/3.14.rst:891 msgid "" "python -m asyncio pstree 12345\n" "\n" @@ -1286,17 +1106,14 @@ msgid "" "cycle: Task-2 → Task-3 → Task-2" msgstr "" -#: ../../whatsnew/3.14.rst:899 msgid "" "(Contributed by Pablo Galindo, Łukasz Langa, Yury Selivanov, and Marta Gomez " "Macias in :gh:`91048`.)" msgstr "" -#: ../../whatsnew/3.14.rst:905 msgid "A new type of interpreter" msgstr "" -#: ../../whatsnew/3.14.rst:907 msgid "" "A new type of interpreter has been added to CPython. It uses tail calls " "between small C functions that implement individual Python opcodes, rather " @@ -1308,14 +1125,12 @@ msgid "" "new interpreter." msgstr "" -#: ../../whatsnew/3.14.rst:916 msgid "" "This interpreter currently only works with Clang 19 and newer on x86-64 and " "AArch64 architectures. However, we expect that a future release of GCC will " "support this as well." msgstr "" -#: ../../whatsnew/3.14.rst:920 msgid "" "This feature is opt-in for now. We highly recommend enabling profile-guided " "optimization with the new interpreter as it is the only configuration we " @@ -1323,13 +1138,11 @@ msgid "" "information on how to build Python, see :option:`--with-tail-call-interp`." msgstr "" -#: ../../whatsnew/3.14.rst:928 msgid "" "This is not to be confused with `tail call optimization`__ of Python " "functions, which is currently not implemented in CPython." msgstr "" -#: ../../whatsnew/3.14.rst:931 msgid "" "This new interpreter type is an internal implementation detail of the " "CPython interpreter. It doesn't change the visible behavior of Python " @@ -1337,7 +1150,6 @@ msgid "" "anything else." msgstr "" -#: ../../whatsnew/3.14.rst:939 msgid "" "This section previously reported a 9-15% geometric mean speedup. This number " "has since been cautiously revised down to 3-5%. While we expect performance " @@ -1353,17 +1165,14 @@ msgid "" "light.)" msgstr "" -#: ../../whatsnew/3.14.rst:951 msgid "" "(Contributed by Ken Jin in :gh:`128563`, with ideas on how to implement this " "in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)" msgstr "" -#: ../../whatsnew/3.14.rst:957 msgid "Free-threaded mode" msgstr "" -#: ../../whatsnew/3.14.rst:959 msgid "" "Free-threaded mode (:pep:`703`), initially added in 3.13, has been " "significantly improved. The implementation described in PEP 703 was " @@ -1375,7 +1184,6 @@ msgid "" "roughly 5-10%, depending on platform and C compiler used." msgstr "" -#: ../../whatsnew/3.14.rst:967 msgid "" "This work was done by many contributors: Sam Gross, Matt Page, Neil " "Schemenauer, Thomas Wouters, Donghee Na, Kirill Podoprigora, Ken Jin, Itamar " @@ -1383,13 +1191,11 @@ msgid "" "Nikolaou, Kumar Aditya, Edgar Margffoy, and many others." msgstr "" -#: ../../whatsnew/3.14.rst:972 msgid "" "Some of these contributors are employed by Meta, which has continued to " "provide significant engineering resources to support this project." msgstr "" -#: ../../whatsnew/3.14.rst:975 msgid "" "From 3.14, when compiling extension modules for the free-threaded build of " "CPython on Windows, the preprocessor variable ``Py_GIL_DISABLED`` now needs " @@ -1398,44 +1204,37 @@ msgid "" "was used at compile time can be found using :func:`sysconfig.get_config_var`." msgstr "" -#: ../../whatsnew/3.14.rst:981 msgid "" "A new flag has been added, :data:`~sys.flags.context_aware_warnings`. This " "flag defaults to true for the free-threaded build and false for the GIL-" "enabled build. If the flag is true then the :class:`warnings.catch_warnings` " "context manager uses a context variable for warning filters. This makes the " -"context manager behave predicably when used with multiple threads or " +"context manager behave predictably when used with multiple threads or " "asynchronous tasks." msgstr "" -#: ../../whatsnew/3.14.rst:988 msgid "" "A new flag has been added, :data:`~sys.flags.thread_inherit_context`. This " "flag defaults to true for the free-threaded build and false for the GIL-" -"enabled build. If the flag is true then threads created " -"with :class:`threading.Thread` start with a copy of " -"the :class:`~contextvars.Context()` of the caller " -"of :meth:`~threading.Thread.start`. Most significantly, this makes the " -"warning filtering context established by :class:`~warnings.catch_warnings` " -"be \"inherited\" by threads (or asyncio tasks) started within that context. " -"It also affects other modules that use context variables, such as " -"the :mod:`decimal` context manager." +"enabled build. If the flag is true then threads created with :class:" +"`threading.Thread` start with a copy of the :class:`~contextvars.Context()` " +"of the caller of :meth:`~threading.Thread.start`. Most significantly, this " +"makes the warning filtering context established by :class:`~warnings." +"catch_warnings` be \"inherited\" by threads (or asyncio tasks) started " +"within that context. It also affects other modules that use context " +"variables, such as the :mod:`decimal` context manager." msgstr "" -#: ../../whatsnew/3.14.rst:1002 msgid "Syntax highlighting in PyREPL" msgstr "" -#: ../../whatsnew/3.14.rst:1004 msgid "" "The default :term:`interactive` shell now highlights Python syntax as you " -"type. The feature is enabled by default unless " -"the :envvar:`PYTHON_BASIC_REPL` environment is set or any color-disabling " -"environment variables are used. See :ref:`using-on-controlling-color` for " -"details." +"type. The feature is enabled by default unless the :envvar:" +"`PYTHON_BASIC_REPL` environment is set or any color-disabling environment " +"variables are used. See :ref:`using-on-controlling-color` for details." msgstr "" -#: ../../whatsnew/3.14.rst:1010 msgid "" "The default color theme for syntax highlighting strives for good contrast " "and uses exclusively the 4-bit VGA standard ANSI color codes for maximum " @@ -1444,84 +1243,71 @@ msgid "" "the :envvar:`PYTHONSTARTUP` script." msgstr "" -#: ../../whatsnew/3.14.rst:1016 msgid "(Contributed by Łukasz Langa in :gh:`131507`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1022 msgid "Binary releases for the experimental just-in-time compiler" msgstr "" -#: ../../whatsnew/3.14.rst:1024 msgid "" "The official macOS and Windows release binaries now include an " "*experimental* just-in-time (JIT) compiler. Although it is **not** " -"recommended for production use, it can be tested by " -"setting :envvar:`PYTHON_JIT=1 ` as an environment variable. " -"Downstream source builds and redistributors can use the :option:`--enable-" -"experimental-jit=yes-off` configuration option for similar behavior." +"recommended for production use, it can be tested by setting :envvar:" +"`PYTHON_JIT=1 ` as an environment variable. Downstream source " +"builds and redistributors can use the :option:`--enable-experimental-jit=yes-" +"off` configuration option for similar behavior." msgstr "" -#: ../../whatsnew/3.14.rst:1031 msgid "" "The JIT is at an early stage and still in active development. As such, the " "typical performance impact of enabling it can range from 10% slower to 20% " "faster, depending on workload. To aid in testing and evaluation, a set of " "introspection functions has been provided in the :data:`sys._jit` " "namespace. :func:`sys._jit.is_available` can be used to determine if the " -"current executable supports JIT compilation, " -"while :func:`sys._jit.is_enabled` can be used to tell if JIT compilation has " -"been enabled for the current process." +"current executable supports JIT compilation, while :func:`sys._jit." +"is_enabled` can be used to tell if JIT compilation has been enabled for the " +"current process." msgstr "" -#: ../../whatsnew/3.14.rst:1039 msgid "" "Currently, the most significant missing functionality is that native " "debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " -"through JIT frames (Python debuggers and profilers, like :mod:`pdb` " -"or :mod:`profile`, continue to work without modification). Free-threaded " -"builds do not support JIT compilation." +"through JIT frames (Python debuggers and profilers, like :mod:`pdb` or :mod:" +"`profile`, continue to work without modification). Free-threaded builds do " +"not support JIT compilation." msgstr "" -#: ../../whatsnew/3.14.rst:1044 msgid "" "Please report any bugs or major performance regressions that you encounter!" msgstr "" -#: ../../whatsnew/3.14.rst:1046 msgid ":pep:`744`" msgstr "" -#: ../../whatsnew/3.14.rst:1049 msgid "Concurrent safe warnings control" msgstr "" -#: ../../whatsnew/3.14.rst:1051 msgid "" "The :class:`warnings.catch_warnings` context manager will now optionally use " -"a context variable for warning filters. This is enabled by setting " -"the :data:`~sys.flags.context_aware_warnings` flag, either with the ``-X`` " -"command-line option or an environment variable. This gives predicable " +"a context variable for warning filters. This is enabled by setting the :" +"data:`~sys.flags.context_aware_warnings` flag, either with the ``-X`` " +"command-line option or an environment variable. This gives predictable " "warnings control when using :class:`~warnings.catch_warnings` combined with " "multiple threads or asynchronous tasks. The flag defaults to true for the " "free-threaded build and false for the GIL-enabled build." msgstr "" -#: ../../whatsnew/3.14.rst:1059 msgid "(Contributed by Neil Schemenauer and Kumar Aditya in :gh:`130010`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1064 msgid "Incremental garbage collection" msgstr "" -#: ../../whatsnew/3.14.rst:1066 msgid "" "The cycle garbage collector is now incremental. This means that maximum " "pause times are reduced by an order of magnitude or more for larger heaps." msgstr "" -#: ../../whatsnew/3.14.rst:1070 msgid "" "There are now only two generations: young and old. When :func:`gc.collect` " "is not called directly, the GC is invoked a little less frequently. When " @@ -1529,48 +1315,39 @@ msgid "" "generation, instead of collecting one or more generations." msgstr "" -#: ../../whatsnew/3.14.rst:1076 msgid "The behavior of :func:`!gc.collect` changes slightly:" msgstr "" -#: ../../whatsnew/3.14.rst:1078 ../../whatsnew/3.14.rst:2788 msgid "" "``gc.collect(1)``: Performs an increment of garbage collection, rather than " "collecting generation 1." msgstr "" -#: ../../whatsnew/3.14.rst:1080 ../../whatsnew/3.14.rst:2790 msgid "Other calls to :func:`!gc.collect` are unchanged." msgstr "" -#: ../../whatsnew/3.14.rst:1082 msgid "(Contributed by Mark Shannon in :gh:`108362`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1085 msgid "Platform support" msgstr "" -#: ../../whatsnew/3.14.rst:1087 msgid "" ":pep:`776`: Emscripten is now an officially supported platform at :pep:`tier " "3 <11#tier-3>`. As a part of this effort, more than 25 bugs in `Emscripten " -"libc`__ were fixed. Emscripten now includes support " -"for :mod:`ctypes`, :mod:`termios`, and :mod:`fcntl`, as well as experimental " -"support for :ref:`PyREPL `." +"libc`__ were fixed. Emscripten now includes support for :mod:`ctypes`, :mod:" +"`termios`, and :mod:`fcntl`, as well as experimental support for :ref:" +"`PyREPL `." msgstr "" -#: ../../whatsnew/3.14.rst:1093 msgid "" -"(Contributed by R. Hood Chatham in :gh:`127146`, :gh:`127683`, " -"and :gh:`136931`.)" +"(Contributed by R. Hood Chatham in :gh:`127146`, :gh:`127683`, and :gh:" +"`136931`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1098 msgid "Other language changes" msgstr "" -#: ../../whatsnew/3.14.rst:1100 msgid "" "The default :term:`interactive` shell now supports import autocompletion. " "This means that typing ``import foo`` and pressing ```` will suggest " @@ -1580,22 +1357,19 @@ msgid "" "in :gh:`69605`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1107 msgid "" "The :func:`map` built-in now has an optional keyword-only *strict* flag " "like :func:`zip` to check that all the iterables are of equal length. " "(Contributed by Wannes Boeykens in :gh:`119793`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1111 msgid "" "Incorrect usage of :keyword:`await` and asynchronous comprehensions is now " "detected even if the code is optimized away by the :option:`-O` command-line " -"option. For example, ``python -O -c 'assert await 1'`` now produces " -"a :exc:`SyntaxError`. (Contributed by Jelle Zijlstra in :gh:`121637`.)" +"option. For example, ``python -O -c 'assert await 1'`` now produces a :exc:" +"`SyntaxError`. (Contributed by Jelle Zijlstra in :gh:`121637`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1116 msgid "" "Writes to ``__debug__`` are now detected even if the code is optimized away " "by the :option:`-O` command-line option. For example, ``python -O -c 'assert " @@ -1603,7 +1377,6 @@ msgid "" "Katriel in :gh:`122245`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1121 msgid "" "Add class methods :meth:`float.from_number` and :meth:`complex.from_number` " "to convert a number to :class:`float` or :class:`complex` type " @@ -1611,32 +1384,27 @@ msgid "" "(Contributed by Serhiy Storchaka in :gh:`84978`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1126 msgid "" "Implement mixed-mode arithmetic rules combining real and complex numbers as " -"specified by C standards since C99. (Contributed by Sergey B Kirpichev " -"in :gh:`69639`.)" +"specified by C standards since C99. (Contributed by Sergey B Kirpichev in :" +"gh:`69639`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1130 msgid "" "All Windows code pages are now supported as \"cpXXX\" codecs on Windows. " "(Contributed by Serhiy Storchaka in :gh:`123803`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1133 msgid "" ":class:`super` objects are now :mod:`pickleable ` and :mod:`copyable " "`. (Contributed by Serhiy Storchaka in :gh:`125767`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1137 msgid "" -"The :class:`memoryview` type now supports subscription, making it " -"a :term:`generic type`. (Contributed by Brian Schubert in :gh:`126012`.)" +"The :class:`memoryview` type now supports subscription, making it a :term:" +"`generic type`. (Contributed by Brian Schubert in :gh:`126012`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1141 msgid "" "Support underscore and comma as thousands separators in the fractional part " "for floating-point presentation types of the new-style string formatting " @@ -1644,14 +1412,12 @@ msgid "" "Kirpichev in :gh:`87790`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1146 msgid "" "The :func:`bytes.fromhex` and :func:`bytearray.fromhex` methods now accept " "ASCII :class:`bytes` and :term:`bytes-like objects `. " "(Contributed by Daniel Pope in :gh:`129349`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1150 msgid "" "Support ``\\z`` as a synonym for ``\\Z`` in :mod:`regular expressions `. " "It is interpreted unambiguously in many other regular expression engines, " @@ -1659,35 +1425,30 @@ msgid "" "Storchaka in :gh:`133306`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1155 msgid "" -"``\\B`` in :mod:`regular expression ` now matches empty input string. " -"Now it is always the opposite of ``\\b``. (Contributed by Serhiy Storchaka " -"in :gh:`124130`.)" +"``\\B`` in :mod:`regular expression ` now matches the empty input " +"string. Now it is always the opposite of ``\\b``. (Contributed by Serhiy " +"Storchaka in :gh:`124130`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1159 msgid "" "iOS and macOS apps can now be configured to redirect ``stdout`` and " "``stderr`` content to the system log. (Contributed by Russell Keith-Magee " "in :gh:`127592`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1163 msgid "" "The iOS testbed is now able to stream test output while the test is running. " "The testbed can also be used to run the test suite of projects other than " "CPython itself. (Contributed by Russell Keith-Magee in :gh:`127592`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1167 msgid "" "Three-argument :func:`pow` now tries calling :meth:`~object.__rpow__` if " "necessary. Previously it was only called in two-argument :func:`!pow` and " "the binary power operator. (Contributed by Serhiy Storchaka in :gh:`130104`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1172 msgid "" "Add a built-in implementation for HMAC (:rfc:`2104`) using formally verified " "code from the `HACL* `__ project. " @@ -1695,7 +1456,6 @@ msgid "" "HMAC is not available. (Contributed by Bénédikt Tran in :gh:`99108`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1178 msgid "" "The import time flag can now track modules that are already loaded " "('cached'), via the new :option:`-X importtime=2 <-X>`. When such a module " @@ -1704,86 +1464,84 @@ msgid "" "for future use. (Contributed by Noah Kim and Adam Turner in :gh:`118655`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1185 msgid "" "When subclassing from a pure C type, the C slots for the new type are no " "longer replaced with a wrapped version on class creation if they are not " -"explicitly overridden in the subclass. (Contributed by Tomasz Pytel " -"in :gh:`132329`.)" +"explicitly overridden in the subclass. (Contributed by Tomasz Pytel in :gh:" +"`132329`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1190 msgid "" "The command-line option :option:`-c` now automatically dedents its code " -"argument before execution. The auto-dedentation behavior " -"mirrors :func:`textwrap.dedent`. (Contributed by Jon Crall and Steven Sun " -"in :gh:`103998`.)" +"argument before execution. The auto-dedentation behavior mirrors :func:" +"`textwrap.dedent`. (Contributed by Jon Crall and Steven Sun in :gh:`103998`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1195 msgid "" "Improve error message when an object supporting the synchronous context " -"manager protocol is entered using :keyword:`async with` instead " -"of :keyword:`with`. And vice versa with the asynchronous context manager " -"protocol. (Contributed by Bénédikt Tran in :gh:`128398`.)" +"manager protocol is entered using :keyword:`async with` instead of :keyword:" +"`with`. And vice versa with the asynchronous context manager protocol. " +"(Contributed by Bénédikt Tran in :gh:`128398`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1201 msgid "" ":option:`!-J` is no longer a reserved flag for Jython_, and now has no " "special meaning. (Contributed by Adam Turner in :gh:`133336`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1210 +msgid "" +"The :func:`int` built-in no longer delegates to :meth:`~object.__trunc__`. " +"Classes that want to support conversion to :func:`!int` must implement " +"either :meth:`~object.__int__` or :meth:`~object.__index__`. (Contributed by " +"Mark Dickinson in :gh:`119743`.)" +msgstr "" + +msgid "" +"Using :data:`NotImplemented` in a boolean context will now raise a :exc:" +"`TypeError`. This has raised a :exc:`DeprecationWarning` since Python 3.9. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" +msgstr "" + msgid "" "PEP 765: Disallow ``return``/``break``/``continue`` that exit a ``finally`` " "block" msgstr "" -#: ../../whatsnew/3.14.rst:1212 msgid "" -"The compiler emits a :exc:`SyntaxWarning` when " -"a :keyword:`return`, :keyword:`break` or :keyword:`continue` statements " -"appears where it exits a :keyword:`finally` block. This change is specified " -"in :pep:`765`." +"The compiler emits a :exc:`SyntaxWarning` when a :keyword:`return`, :keyword:" +"`break` or :keyword:`continue` statement appears where it exits a :keyword:" +"`finally` block. This change is specified in :pep:`765`." msgstr "" -#: ../../whatsnew/3.14.rst:1218 msgid "New modules" msgstr "" -#: ../../whatsnew/3.14.rst:1220 msgid "" ":mod:`annotationlib`: For introspecting :term:`annotations `. " -"See :pep:`749` for more details. (Contributed by Jelle Zijlstra " -"in :gh:`119180`.)" +"See :pep:`749` for more details. (Contributed by Jelle Zijlstra in :gh:" +"`119180`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1226 msgid "Improved modules" msgstr "" -#: ../../whatsnew/3.14.rst:1229 ../../whatsnew/3.14.rst:2499 msgid "argparse" msgstr "" -#: ../../whatsnew/3.14.rst:1231 msgid "" -"The default value of the :ref:`program name ` " -"for :class:`argparse.ArgumentParser` now reflects the way the Python " -"interpreter was instructed to find the ``__main__`` module code. " -"(Contributed by Serhiy Storchaka and Alyssa Coghlan in :gh:`66436`.)" +"The default value of the :ref:`program name ` for :class:`argparse." +"ArgumentParser` now reflects the way the Python interpreter was instructed " +"to find the ``__main__`` module code. (Contributed by Serhiy Storchaka and " +"Alyssa Coghlan in :gh:`66436`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1236 msgid "" -"Introduced the optional *suggest_on_error* parameter " -"to :class:`argparse.ArgumentParser`, enabling suggestions for argument " -"choices and subparser names if mistyped by the user. (Contributed by " -"Savannah Ostrowski in :gh:`124456`.)" +"Introduced the optional *suggest_on_error* parameter to :class:`argparse." +"ArgumentParser`, enabling suggestions for argument choices and subparser " +"names if mistyped by the user. (Contributed by Savannah Ostrowski in :gh:" +"`124456`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1243 msgid "" "Enable color for help text, which can be disabled with the optional *color* " "parameter to :class:`argparse.ArgumentParser`. This can also be controlled " @@ -1791,97 +1549,78 @@ msgid "" "by Hugo van Kemenade in :gh:`130645`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1251 ../../whatsnew/3.14.rst:2514 msgid "ast" msgstr "" -#: ../../whatsnew/3.14.rst:1253 msgid "" "Add :func:`ast.compare` for comparing two ASTs. (Contributed by Batuhan " "Taskaya and Jeremy Hylton in :gh:`60191`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1256 msgid "" "Add support for :func:`copy.replace` for AST nodes. (Contributed by Bénédikt " "Tran in :gh:`121141`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1259 msgid "" "Docstrings are now removed from an optimized AST in optimization level 2. " "(Contributed by Irit Katriel in :gh:`123958`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1262 msgid "" "The ``repr()`` output for AST nodes now includes more information. " "(Contributed by Tomas Roun in :gh:`116022`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1265 msgid "" ":func:`ast.parse`, when called with an AST as input, now always verifies " -"that the root node type is appropriate. (Contributed by Irit Katriel " -"in :gh:`130139`.)" +"that the root node type is appropriate. (Contributed by Irit Katriel in :gh:" +"`130139`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1269 msgid "" "Add new ``--feature-version``, ``--optimize``, ``--show-empty`` options to " -"command-line interface. (Contributed by Semyon Moroz in :gh:`133367`.)" +"the command-line interface. (Contributed by Semyon Moroz in :gh:`133367`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1275 ../../whatsnew/3.14.rst:2281 -#: ../../whatsnew/3.14.rst:2542 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.14.rst:1277 msgid "" "The function and methods named :func:`!create_task` now take an arbitrary " -"list of keyword arguments. All keyword arguments are passed to " -"the :class:`~asyncio.Task` constructor or the custom task factory. " -"(See :meth:`~asyncio.loop.set_task_factory` for details.) The ``name`` and " -"``context`` keyword arguments are no longer special; the name should now be " -"set using the ``name`` keyword argument of the factory, and ``context`` may " -"be ``None``." +"list of keyword arguments. All keyword arguments are passed to the :class:" +"`~asyncio.Task` constructor or the custom task factory. (See :meth:`~asyncio." +"loop.set_task_factory` for details.) The ``name`` and ``context`` keyword " +"arguments are no longer special; the name should now be set using the " +"``name`` keyword argument of the factory, and ``context`` may be ``None``." msgstr "" -#: ../../whatsnew/3.14.rst:1285 msgid "" -"This affects the following function and " -"methods: :meth:`asyncio.create_task`, :meth:`asyncio.loop.create_task`, :meth:`asyncio.TaskGroup.create_task`. " -"(Contributed by Thomas Grainger in :gh:`128307`.)" -msgstr "" - -#: ../../whatsnew/3.14.rst:1293 -msgid "bdb" +"This affects the following function and methods: :meth:`asyncio." +"create_task`, :meth:`asyncio.loop.create_task`, :meth:`asyncio.TaskGroup." +"create_task`. (Contributed by Thomas Grainger in :gh:`128307`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1295 msgid "" -"The :mod:`bdb` module now supports the :mod:`sys.monitoring` backend. " -"(Contributed by Tian Gao in :gh:`124533`.)" +"There are two new utility functions for introspecting and printing a " +"program's call graph: :func:`~asyncio.capture_call_graph` and :func:" +"`~asyncio.print_call_graph`. (Contributed by Yury Selivanov, Pablo Galindo " +"Salgado, and Łukasz Langa in :gh:`91048`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1302 msgid "calendar" msgstr "" -#: ../../whatsnew/3.14.rst:1304 msgid "" -"By default, today's date is highlighted in color " -"in :mod:`calendar`'s :ref:`command-line ` text output. This " -"can be controlled by :ref:`environment variables `. (Contributed by Hugo van Kemenade in :gh:`128317`.)" +"By default, today's date is highlighted in color in :mod:`calendar`'s :ref:" +"`command-line ` text output. This can be controlled by :ref:" +"`environment variables `. (Contributed by Hugo " +"van Kemenade in :gh:`128317`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1312 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.14.rst:1316 msgid "" "Add :class:`~concurrent.futures.InterpreterPoolExecutor`, which exposes " "\"subinterpreters\" (multiple Python interpreters in the same process) to " @@ -1889,7 +1628,6 @@ msgid "" "(Contributed by Eric Snow in :gh:`124548`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1324 msgid "" "The default :class:`~concurrent.futures.ProcessPoolExecutor` :ref:`start " "method ` changed from :ref:`fork " @@ -1898,14 +1636,12 @@ msgid "" "was already :ref:`spawn `." msgstr "" -#: ../../whatsnew/3.14.rst:1330 msgid "" "If the threading incompatible *fork* method is required, you must explicitly " -"request it by supplying a multiprocessing context *mp_context* " -"to :class:`~concurrent.futures.ProcessPoolExecutor`." +"request it by supplying a multiprocessing context *mp_context* to :class:" +"`~concurrent.futures.ProcessPoolExecutor`." msgstr "" -#: ../../whatsnew/3.14.rst:1334 ../../whatsnew/3.14.rst:1794 msgid "" "See :ref:`forkserver restrictions ` " "for information and differences with the *fork* method and how this change " @@ -1913,69 +1649,57 @@ msgid "" "objects that can not be automatically :mod:`pickled `." msgstr "" -#: ../../whatsnew/3.14.rst:1339 ../../whatsnew/3.14.rst:1799 msgid "(Contributed by Gregory P. Smith in :gh:`84559`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1341 msgid "" -"Add :meth:`concurrent.futures.ProcessPoolExecutor.terminate_workers` " -"and :meth:`concurrent.futures.ProcessPoolExecutor.kill_workers` as ways to " +"Add :meth:`concurrent.futures.ProcessPoolExecutor.terminate_workers` and :" +"meth:`concurrent.futures.ProcessPoolExecutor.kill_workers` as ways to " "terminate or kill all living worker processes in the given pool. " "(Contributed by Charles Machalow in :gh:`130849`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1346 msgid "" -"Add the optional ``buffersize`` parameter " -"to :meth:`concurrent.futures.Executor.map` to limit the number of submitted " -"tasks whose results have not yet been yielded. If the buffer is full, " -"iteration over the *iterables* pauses until a result is yielded from the " -"buffer. (Contributed by Enzo Bonnal and Josh Rosenberg in :gh:`74028`.)" +"Add the optional ``buffersize`` parameter to :meth:`concurrent.futures." +"Executor.map` to limit the number of submitted tasks whose results have not " +"yet been yielded. If the buffer is full, iteration over the *iterables* " +"pauses until a result is yielded from the buffer. (Contributed by Enzo " +"Bonnal and Josh Rosenberg in :gh:`74028`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1354 msgid "configparser" msgstr "" -#: ../../whatsnew/3.14.rst:1356 msgid "" "Security fix: will no longer write config files it cannot read. Attempting " "to :meth:`configparser.ConfigParser.write` keys containing delimiters or " -"beginning with the section header pattern will raise " -"a :class:`configparser.InvalidWriteError`. (Contributed by Jacob Lincoln " -"in :gh:`129270`.)" +"beginning with the section header pattern will raise a :class:`configparser." +"InvalidWriteError`. (Contributed by Jacob Lincoln in :gh:`129270`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1363 msgid "contextvars" msgstr "" -#: ../../whatsnew/3.14.rst:1365 msgid "" "Support context manager protocol by :class:`contextvars.Token`. (Contributed " "by Andrew Svetlov in :gh:`129889`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1370 msgid "ctypes" msgstr "" -#: ../../whatsnew/3.14.rst:1372 msgid "" -"The layout of :ref:`bit fields ` " -"in :class:`~ctypes.Structure` and :class:`~ctypes.Union` now matches " -"platform defaults (GCC/Clang or MSVC) more closely. In particular, fields no " -"longer overlap. (Contributed by Matthias Görgens in :gh:`97702`.)" +"The layout of :ref:`bit fields ` in :" +"class:`~ctypes.Structure` and :class:`~ctypes.Union` now matches platform " +"defaults (GCC/Clang or MSVC) more closely. In particular, fields no longer " +"overlap. (Contributed by Matthias Görgens in :gh:`97702`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1378 msgid "" "The :attr:`.Structure._layout_` class attribute can now be set to help match " "a non-default ABI. (Contributed by Petr Viktorin in :gh:`97702`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1382 msgid "" "The class of :class:`~ctypes.Structure`/:class:`~ctypes.Union` field " "descriptors is now available as :class:`~ctypes.CField`, and has new " @@ -1983,44 +1707,36 @@ msgid "" "in :gh:`128715`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1387 msgid "" "On Windows, the :exc:`~ctypes.COMError` exception is now public. " "(Contributed by Jun Komoda in :gh:`126686`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1390 msgid "" "On Windows, the :func:`~ctypes.CopyComPointer` function is now public. " "(Contributed by Jun Komoda in :gh:`127275`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1393 msgid "" ":func:`ctypes.memoryview_at` now exists to create a :class:`memoryview` " -"object that refers to the supplied pointer and length. This works " -"like :func:`ctypes.string_at` except it avoids a buffer copy, and is " -"typically useful when implementing pure Python callback functions that are " -"passed dynamically-sized buffers. (Contributed by Rian Hunter " -"in :gh:`112018`.)" +"object that refers to the supplied pointer and length. This works like :func:" +"`ctypes.string_at` except it avoids a buffer copy, and is typically useful " +"when implementing pure Python callback functions that are passed dynamically-" +"sized buffers. (Contributed by Rian Hunter in :gh:`112018`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1400 msgid "" -"Complex " -"types, :class:`~ctypes.c_float_complex`, :class:`~ctypes.c_double_complex` " -"and :class:`~ctypes.c_longdouble_complex`, are now available if both the " -"compiler and the ``libffi`` library support complex C types. (Contributed by " -"Sergey B Kirpichev in :gh:`61103`.)" +"Complex types, :class:`~ctypes.c_float_complex`, :class:`~ctypes." +"c_double_complex` and :class:`~ctypes.c_longdouble_complex`, are now " +"available if both the compiler and the ``libffi`` library support complex C " +"types. (Contributed by Sergey B Kirpichev in :gh:`61103`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1406 msgid "" "Add :func:`ctypes.util.dllist` for listing the shared libraries loaded by " "the current process. (Contributed by Brian Ward in :gh:`119349`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1410 msgid "" "Move :func:`ctypes.POINTER` types cache from a global internal cache " "(``_pointer_type_cache``) to the :attr:`ctypes._CData.__pointer_type__` " @@ -2029,123 +1745,100 @@ msgid "" "Miryanov in :gh:`100926`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1416 msgid "" -"The :class:`ctypes.py_object` type now supports subscription, making it " -"a :term:`generic type`. (Contributed by Brian Schubert in :gh:`132168`.)" +"The :class:`ctypes.py_object` type now supports subscription, making it a :" +"term:`generic type`. (Contributed by Brian Schubert in :gh:`132168`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1420 msgid "" ":mod:`ctypes` now supports :term:`free-threading builds `. " "(Contributed by Kumar Aditya and Peter Bierma in :gh:`127945`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1424 msgid "curses" msgstr "" -#: ../../whatsnew/3.14.rst:1426 msgid "" -"Add the :func:`~curses.assume_default_colors` function, a refinement of " -"the :func:`~curses.use_default_colors` function which allows to change the " -"color pair ``0``. (Contributed by Serhiy Storchaka in :gh:`133139`.)" +"Add the :func:`~curses.assume_default_colors` function, a refinement of the :" +"func:`~curses.use_default_colors` function which allows to change the color " +"pair ``0``. (Contributed by Serhiy Storchaka in :gh:`133139`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1432 msgid "datetime" msgstr "" -#: ../../whatsnew/3.14.rst:1434 msgid "" "Add :meth:`datetime.time.strptime` and :meth:`datetime.date.strptime`. " "(Contributed by Wannes Boeykens in :gh:`41431`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1438 msgid "decimal" msgstr "" -#: ../../whatsnew/3.14.rst:1440 msgid "" -"Add alternative :class:`~decimal.Decimal` " -"constructor :meth:`Decimal.from_number() `. " -"(Contributed by Serhiy Storchaka in :gh:`121798`.)" +"Add alternative :class:`~decimal.Decimal` constructor :meth:`Decimal." +"from_number() `. (Contributed by Serhiy " +"Storchaka in :gh:`121798`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1444 msgid "" "Expose :func:`decimal.IEEEContext` to support creation of contexts " "corresponding to the IEEE 754 (2008) decimal interchange formats. " "(Contributed by Sergey B Kirpichev in :gh:`53032`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1449 msgid "difflib" msgstr "" -#: ../../whatsnew/3.14.rst:1451 msgid "" -"Comparison pages with highlighted changes generated by " -"the :class:`difflib.HtmlDiff` class now support dark mode. (Contributed by " -"Jiahao Li in :gh:`129939`.)" +"Comparison pages with highlighted changes generated by the :class:`difflib." +"HtmlDiff` class now support dark mode. (Contributed by Jiahao Li in :gh:" +"`129939`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1456 msgid "dis" msgstr "" -#: ../../whatsnew/3.14.rst:1458 msgid "" -"Add support for rendering full source location information " -"of :class:`instructions `, rather than only the line " -"number. This feature is added to the following interfaces via the " -"*show_positions* keyword argument:" +"Add support for rendering full source location information of :class:" +"`instructions `, rather than only the line number. This " +"feature is added to the following interfaces via the *show_positions* " +"keyword argument:" msgstr "" -#: ../../whatsnew/3.14.rst:1463 msgid ":class:`dis.Bytecode`" msgstr "" -#: ../../whatsnew/3.14.rst:1464 msgid ":func:`dis.dis`" msgstr "" -#: ../../whatsnew/3.14.rst:1465 msgid ":func:`dis.distb`" msgstr "" -#: ../../whatsnew/3.14.rst:1466 msgid ":func:`dis.disassemble`" msgstr "" -#: ../../whatsnew/3.14.rst:1468 msgid "" "This feature is also exposed via :option:`dis --show-positions`. " "(Contributed by Bénédikt Tran in :gh:`123165`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1471 msgid "" "Add the :option:`dis --specialized` command-line option to show specialized " "bytecode. (Contributed by Bénédikt Tran in :gh:`127413`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1477 msgid "errno" msgstr "" -#: ../../whatsnew/3.14.rst:1479 msgid "" -"Add :data:`errno.EHWPOISON` error code. (Contributed by James Roy " -"in :gh:`126585`.)" +"Add :data:`errno.EHWPOISON` error code. (Contributed by James Roy in :gh:" +"`126585`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1484 msgid "faulthandler" msgstr "" -#: ../../whatsnew/3.14.rst:1486 msgid "" "Add support for printing the C stack trace on systems that :ref:`support it " "` via :func:`faulthandler.dump_c_stack` or via the " @@ -2153,111 +1846,59 @@ msgid "" "Bierma in :gh:`127604`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1493 msgid "fnmatch" msgstr "" -#: ../../whatsnew/3.14.rst:1495 msgid "" "Added :func:`fnmatch.filterfalse` for excluding names matching a pattern. " "(Contributed by Bénédikt Tran in :gh:`74598`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1500 msgid "fractions" msgstr "" -#: ../../whatsnew/3.14.rst:1502 msgid "" "Add support for converting any objects that have the :meth:`!" "as_integer_ratio` method to a :class:`~fractions.Fraction`. (Contributed by " "Serhiy Storchaka in :gh:`82017`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1506 msgid "" -"Add alternative :class:`~fractions.Fraction` " -"constructor :meth:`Fraction.from_number() `. " -"(Contributed by Serhiy Storchaka in :gh:`121797`.)" +"Add alternative :class:`~fractions.Fraction` constructor :meth:`Fraction." +"from_number() `. (Contributed by Serhiy " +"Storchaka in :gh:`121797`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1512 msgid "functools" msgstr "" -#: ../../whatsnew/3.14.rst:1514 msgid "" "Add support to :func:`functools.partial` and :func:`functools.partialmethod` " "for :data:`functools.Placeholder` sentinels to reserve a place for " "positional arguments. (Contributed by Dominykas Grigonis in :gh:`119127`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1519 msgid "" "Allow the *initial* parameter of :func:`functools.reduce` to be passed as a " "keyword argument. (Contributed by Sayandip Dutta in :gh:`125916`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1525 ../../whatsnew/3.14.rst:2312 -msgid "gc" -msgstr "" - -#: ../../whatsnew/3.14.rst:1527 -msgid "" -"The cyclic garbage collector is now incremental, which changes the meaning " -"of the results of :meth:`~gc.get_threshold` and :meth:`~gc.set_threshold` as " -"well as :meth:`~gc.get_count` and :meth:`~gc.get_stats`." -msgstr "" - -#: ../../whatsnew/3.14.rst:1532 -msgid "" -"For backwards compatibility, :meth:`~gc.get_threshold` continues to return a " -"three-item tuple. The first value is the threshold for young collections, as " -"before; the second value determines the rate at which the old collection is " -"scanned (the default is 10, and higher values mean that the old collection " -"is scanned more slowly). The third value is meaningless and is always zero." -msgstr "" - -#: ../../whatsnew/3.14.rst:1540 -msgid ":meth:`~gc.set_threshold` ignores any items after the second." -msgstr "" - -#: ../../whatsnew/3.14.rst:1542 -msgid "" -":meth:`~gc.get_count` and :meth:`~gc.get_stats` continue to return the same " -"format of results. The only difference is that instead of the results " -"referring to the young, aging and old generations, the results refer to the " -"young generation and the aging and collecting spaces of the old generation." -msgstr "" - -#: ../../whatsnew/3.14.rst:1549 -msgid "" -"In summary, code that attempted to manipulate the behavior of the cycle GC " -"may not work exactly as intended, but it is very unlikely to be harmful. All " -"other code will work just fine." -msgstr "" - -#: ../../whatsnew/3.14.rst:1555 msgid "getopt" msgstr "" -#: ../../whatsnew/3.14.rst:1557 msgid "" "Add support for options with optional arguments. (Contributed by Serhiy " "Storchaka in :gh:`126374`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1560 msgid "" "Add support for returning intermixed options and non-option arguments in " "order. (Contributed by Serhiy Storchaka in :gh:`126390`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1565 msgid "getpass" msgstr "" -#: ../../whatsnew/3.14.rst:1567 msgid "" "Support keyboard feedback by :func:`getpass.getpass` via the keyword-only " "optional argument ``echo_char``. Placeholder characters are rendered " @@ -2265,217 +1906,176 @@ msgid "" "(Contributed by Semyon Moroz in :gh:`77065`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1574 msgid "graphlib" msgstr "" -#: ../../whatsnew/3.14.rst:1576 msgid "" "Allow :meth:`graphlib.TopologicalSorter.prepare` to be called more than once " -"as long as sorting has not started. (Contributed by Daniel Pope " -"in :gh:`130914`.)" +"as long as sorting has not started. (Contributed by Daniel Pope in :gh:" +"`130914`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1582 msgid "heapq" msgstr "" -#: ../../whatsnew/3.14.rst:1584 msgid "Add functions for working with max-heaps:" msgstr "" -#: ../../whatsnew/3.14.rst:1586 msgid ":func:`heapq.heapify_max`," msgstr "" -#: ../../whatsnew/3.14.rst:1587 msgid ":func:`heapq.heappush_max`," msgstr "" -#: ../../whatsnew/3.14.rst:1588 msgid ":func:`heapq.heappop_max`," msgstr "" -#: ../../whatsnew/3.14.rst:1589 msgid ":func:`heapq.heapreplace_max`" msgstr "" -#: ../../whatsnew/3.14.rst:1590 msgid ":func:`heapq.heappushpop_max`" msgstr "" -#: ../../whatsnew/3.14.rst:1594 msgid "hmac" msgstr "" -#: ../../whatsnew/3.14.rst:1596 msgid "" "Add a built-in implementation for HMAC (:rfc:`2104`) using formally verified " "code from the `HACL* `__ project. " "(Contributed by Bénédikt Tran in :gh:`99108`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1602 msgid "http" msgstr "" -#: ../../whatsnew/3.14.rst:1604 msgid "" "Directory lists and error pages generated by the :mod:`http.server` module " "allow the browser to apply its default dark mode. (Contributed by Yorik " "Hansen in :gh:`123430`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1608 msgid "" -"The :mod:`http.server` module now supports serving over HTTPS using " -"the :class:`http.server.HTTPSServer` class. This functionality is exposed by " -"the command-line interface (``python -m http.server``) through the following " +"The :mod:`http.server` module now supports serving over HTTPS using the :" +"class:`http.server.HTTPSServer` class. This functionality is exposed by the " +"command-line interface (``python -m http.server``) through the following " "options:" msgstr "" -#: ../../whatsnew/3.14.rst:1613 msgid "``--tls-cert ``: Path to the TLS certificate file." msgstr "" -#: ../../whatsnew/3.14.rst:1614 msgid "``--tls-key ``: Optional path to the private key file." msgstr "" -#: ../../whatsnew/3.14.rst:1615 msgid "" "``--tls-password-file ``: Optional path to the password file for the " "private key." msgstr "" -#: ../../whatsnew/3.14.rst:1617 msgid "(Contributed by Semyon Moroz in :gh:`85162`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1621 msgid "imaplib" msgstr "" -#: ../../whatsnew/3.14.rst:1623 msgid "" "Add :meth:`IMAP4.idle() `, implementing the IMAP4 " -"``IDLE`` command as defined in :rfc:`2177`. (Contributed by Forest " -"in :gh:`55454`.)" +"``IDLE`` command as defined in :rfc:`2177`. (Contributed by Forest in :gh:" +"`55454`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1629 msgid "inspect" msgstr "" -#: ../../whatsnew/3.14.rst:1631 msgid "" ":func:`inspect.signature` takes a new argument *annotation_format* to " "control the :class:`annotationlib.Format` used for representing annotations. " "(Contributed by Jelle Zijlstra in :gh:`101552`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1635 msgid "" ":meth:`inspect.Signature.format` takes a new argument *unquote_annotations*. " "If true, string :term:`annotations ` are displayed without " "surrounding quotes. (Contributed by Jelle Zijlstra in :gh:`101552`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1639 msgid "" -"Add function :func:`inspect.ispackage` to determine whether an object is " -"a :term:`package` or not. (Contributed by Zhikang Yan in :gh:`125634`.)" +"Add function :func:`inspect.ispackage` to determine whether an object is a :" +"term:`package` or not. (Contributed by Zhikang Yan in :gh:`125634`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1645 ../../whatsnew/3.14.rst:2321 msgid "io" msgstr "" -#: ../../whatsnew/3.14.rst:1647 msgid "" -"Reading text from a non-blocking stream with ``read`` may now raise " -"a :exc:`BlockingIOError` if the operation cannot immediately return bytes. " +"Reading text from a non-blocking stream with ``read`` may now raise a :exc:" +"`BlockingIOError` if the operation cannot immediately return bytes. " "(Contributed by Giovanni Siragusa in :gh:`109523`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1651 msgid "" -"Add protocols :class:`io.Reader` and :class:`io.Writer` as a simpler " -"alternatives to the pseudo-" -"protocols :class:`typing.IO`, :class:`typing.TextIO`, " -"and :class:`typing.BinaryIO`. (Contributed by Sebastian Rittau " -"in :gh:`127648`.)" +"Add protocols :class:`io.Reader` and :class:`io.Writer` as simpler " +"alternatives to the pseudo-protocols :class:`typing.IO`, :class:`typing." +"TextIO`, and :class:`typing.BinaryIO`. (Contributed by Sebastian Rittau in :" +"gh:`127648`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1658 msgid "json" msgstr "" -#: ../../whatsnew/3.14.rst:1660 msgid "" "Add notes for JSON serialization errors that allow to identify the source of " "the error. (Contributed by Serhiy Storchaka in :gh:`122163`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1664 msgid "" "Enable the :mod:`json` module to work as a script using the :option:`-m` " "switch: :program:`python -m json`. See the :ref:`JSON command-line interface " -"` documentation. (Contributed by Trey Hunner " -"in :gh:`122873`.)" +"` documentation. (Contributed by Trey Hunner in :gh:" +"`122873`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1671 msgid "" "By default, the output of the :ref:`JSON command-line interface ` is highlighted in color. This can be controlled " -"by :ref:`environment variables `. (Contributed " -"by Tomas Roun in :gh:`131952`.)" +"commandline>` is highlighted in color. This can be controlled by :ref:" +"`environment variables `. (Contributed by Tomas " +"Roun in :gh:`131952`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1678 msgid "linecache" msgstr "" -#: ../../whatsnew/3.14.rst:1680 msgid "" ":func:`linecache.getline` can retrieve source code for frozen modules. " "(Contributed by Tian Gao in :gh:`131638`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1685 msgid "logging.handlers" msgstr "" -#: ../../whatsnew/3.14.rst:1687 msgid "" ":class:`logging.handlers.QueueListener` now implements the context manager " "protocol, allowing it to be used in a :keyword:`with` statement. " "(Contributed by Charles Machalow in :gh:`132106`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1691 msgid "" ":meth:`QueueListener.start ` now " "raises a :exc:`RuntimeError` if the listener is already started. " "(Contributed by Charles Machalow in :gh:`132106`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1697 msgid "math" msgstr "" -#: ../../whatsnew/3.14.rst:1699 msgid "" "Added more detailed error messages for domain errors in the module. " -"(Contributed by by Charlie Zhao and Sergey B Kirpichev in :gh:`101410`.)" +"(Contributed by Charlie Zhao and Sergey B Kirpichev in :gh:`101410`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1704 msgid "mimetypes" msgstr "" -#: ../../whatsnew/3.14.rst:1706 msgid "" "Document the command-line for :mod:`mimetypes`. It now exits with ``1`` on " "failure instead of ``0`` and ``2`` on incorrect command-line parameters " @@ -2484,202 +2084,157 @@ msgid "" "Kemenade in :gh:`93096`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1713 msgid "Add MS and :rfc:`8081` MIME types for fonts:" msgstr "" -#: ../../whatsnew/3.14.rst:1715 msgid "Embedded OpenType: ``application/vnd.ms-fontobject``" msgstr "" -#: ../../whatsnew/3.14.rst:1716 msgid "OpenType Layout (OTF) ``font/otf``" msgstr "" -#: ../../whatsnew/3.14.rst:1717 msgid "TrueType: ``font/ttf``" msgstr "" -#: ../../whatsnew/3.14.rst:1718 msgid "WOFF 1.0 ``font/woff``" msgstr "" -#: ../../whatsnew/3.14.rst:1719 msgid "WOFF 2.0 ``font/woff2``" msgstr "" -#: ../../whatsnew/3.14.rst:1721 msgid "(Contributed by Sahil Prajapati and Hugo van Kemenade in :gh:`84852`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1723 msgid "" "Add :rfc:`9559` MIME types for Matroska audiovisual data container " "structures, containing:" msgstr "" -#: ../../whatsnew/3.14.rst:1726 msgid "audio with no video: ``audio/matroska`` (``.mka``)" msgstr "" -#: ../../whatsnew/3.14.rst:1727 msgid "video: ``video/matroska`` (``.mkv``)" msgstr "" -#: ../../whatsnew/3.14.rst:1728 msgid "stereoscopic video: ``video/matroska-3d`` (``.mk3d``)" msgstr "" -#: ../../whatsnew/3.14.rst:1730 msgid "(Contributed by Hugo van Kemenade in :gh:`89416`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1732 msgid "Add MIME types for images with RFCs:" msgstr "" -#: ../../whatsnew/3.14.rst:1734 msgid ":rfc:`1494`: CCITT Group 3 (``.g3``)" msgstr "" -#: ../../whatsnew/3.14.rst:1735 msgid ":rfc:`3362`: Real-time Facsimile, T.38 (``.t38``)" msgstr "" -#: ../../whatsnew/3.14.rst:1736 msgid "" -":rfc:`3745`: JPEG 2000 (``.jp2``), extension (``.jpx``) and compound " -"(``.jpm``)" +":rfc:`3745`: JPEG 2000 (``.jp2``), extension (``.jpx``) and compound (``." +"jpm``)" msgstr "" -#: ../../whatsnew/3.14.rst:1737 msgid ":rfc:`3950`: Tag Image File Format Fax eXtended, TIFF-FX (``.tfx``)" msgstr "" -#: ../../whatsnew/3.14.rst:1738 msgid ":rfc:`4047`: Flexible Image Transport System (``.fits``)" msgstr "" -#: ../../whatsnew/3.14.rst:1739 msgid "" ":rfc:`7903`: Enhanced Metafile (``.emf``) and Windows Metafile (``.wmf``)" msgstr "" -#: ../../whatsnew/3.14.rst:1741 msgid "(Contributed by Hugo van Kemenade in :gh:`85957`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1743 msgid "More MIME type changes:" msgstr "" -#: ../../whatsnew/3.14.rst:1745 msgid "" ":rfc:`2361`: Change type for ``.avi`` to ``video/vnd.avi`` and for ``.wav`` " "to ``audio/vnd.wave``" msgstr "" -#: ../../whatsnew/3.14.rst:1747 msgid ":rfc:`4337`: Add MPEG-4 ``audio/mp4`` (``.m4a``)" msgstr "" -#: ../../whatsnew/3.14.rst:1748 msgid ":rfc:`5334`: Add Ogg media (``.oga``, ``.ogg`` and ``.ogx``)" msgstr "" -#: ../../whatsnew/3.14.rst:1749 msgid ":rfc:`6713`: Add gzip ``application/gzip`` (``.gz``)" msgstr "" -#: ../../whatsnew/3.14.rst:1750 msgid ":rfc:`9639`: Add FLAC ``audio/flac`` (``.flac``)" msgstr "" -#: ../../whatsnew/3.14.rst:1751 msgid "Add 7z ``application/x-7z-compressed`` (``.7z``)" msgstr "" -#: ../../whatsnew/3.14.rst:1752 msgid "" "Add Android Package ``application/vnd.android.package-archive`` (``.apk``) " "when not strict" msgstr "" -#: ../../whatsnew/3.14.rst:1754 msgid "Add deb ``application/x-debian-package`` (``.deb``)" msgstr "" -#: ../../whatsnew/3.14.rst:1755 msgid "Add glTF binary ``model/gltf-binary`` (``.glb``)" msgstr "" -#: ../../whatsnew/3.14.rst:1756 msgid "Add glTF JSON/ASCII ``model/gltf+json`` (``.gltf``)" msgstr "" -#: ../../whatsnew/3.14.rst:1757 msgid "Add M4V ``video/x-m4v`` (``.m4v``)" msgstr "" -#: ../../whatsnew/3.14.rst:1758 msgid "Add PHP ``application/x-httpd-php`` (``.php``)" msgstr "" -#: ../../whatsnew/3.14.rst:1759 msgid "Add RAR ``application/vnd.rar`` (``.rar``)" msgstr "" -#: ../../whatsnew/3.14.rst:1760 msgid "Add RPM ``application/x-rpm`` (``.rpm``)" msgstr "" -#: ../../whatsnew/3.14.rst:1761 msgid "Add STL ``model/stl`` (``.stl``)" msgstr "" -#: ../../whatsnew/3.14.rst:1762 msgid "Add Windows Media Video ``video/x-ms-wmv`` (``.wmv``)" msgstr "" -#: ../../whatsnew/3.14.rst:1763 msgid "De facto: Add WebM ``audio/webm`` (``.weba``)" msgstr "" -#: ../../whatsnew/3.14.rst:1764 msgid "" "`ECMA-376 `__: Add ``.docx``, ``.pptx`` and ``.xlsx`` types" msgstr "" -#: ../../whatsnew/3.14.rst:1767 msgid "" "`OASIS `__: Add OpenDocument ``.odg``, ``.odp``, ``.ods`` and " "``.odt`` types" msgstr "" -#: ../../whatsnew/3.14.rst:1770 msgid "" "`W3C `__: Add EPUB " "``application/epub+zip`` (``.epub``)" msgstr "" -#: ../../whatsnew/3.14.rst:1773 msgid "(Contributed by Hugo van Kemenade in :gh:`129965`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1775 msgid "" "Add :rfc:`9512` ``application/yaml`` MIME type for YAML files (``.yaml`` and " "``.yml``). (Contributed by Sasha \"Nelie\" Chernykh and Hugo van Kemenade " "in :gh:`132056`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1781 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.14.rst:1785 msgid "" "The default :ref:`start method ` changed " "from :ref:`fork ` to :ref:`forkserver " @@ -2688,15 +2243,13 @@ msgid "" "spawn>`." msgstr "" -#: ../../whatsnew/3.14.rst:1790 msgid "" "If the threading incompatible *fork* method is required, you must explicitly " "request it via a context from :func:`multiprocessing.get_context` " -"(preferred) or change the default " -"via :func:`multiprocessing.set_start_method`." +"(preferred) or change the default via :func:`multiprocessing." +"set_start_method`." msgstr "" -#: ../../whatsnew/3.14.rst:1801 msgid "" ":mod:`multiprocessing`'s ``\"forkserver\"`` start method now authenticates " "its control socket to avoid solely relying on filesystem permissions to " @@ -2704,47 +2257,39 @@ msgid "" "and run code. (Contributed by Gregory P. Smith for :gh:`97514`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1807 msgid "" "The :ref:`multiprocessing proxy objects ` for " "*list* and *dict* types gain previously overlooked missing methods:" msgstr "" -#: ../../whatsnew/3.14.rst:1810 msgid ":meth:`!clear` and :meth:`!copy` for proxies of :class:`list`" msgstr "" -#: ../../whatsnew/3.14.rst:1811 msgid "" ":meth:`~dict.fromkeys`, ``reversed(d)``, ``d | {}``, ``{} | d``, ``d |= " "{'b': 2}`` for proxies of :class:`dict`" msgstr "" -#: ../../whatsnew/3.14.rst:1814 msgid "(Contributed by Roy Hyunjin Han for :gh:`103134`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1816 msgid "" "Add support for shared :class:`set` objects via :meth:`SyncManager.set() " -"`. The :func:`set` " -"in :func:`multiprocessing.Manager` method is now available. (Contributed by " -"Mingyu Park in :gh:`129949`.)" +"`. The :func:`set` in :func:" +"`multiprocessing.Manager` method is now available. (Contributed by Mingyu " +"Park in :gh:`129949`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1821 msgid "" "Add :func:`multiprocessing.Process.interrupt` which terminates the child " -"process by sending :py:const:`~signal.SIGINT`. This " -"enables :keyword:`finally` clauses to print a stack trace for the terminated " -"process. (Contributed by Artem Pulkin in :gh:`131913`.)" +"process by sending :py:const:`~signal.SIGINT`. This enables :keyword:" +"`finally` clauses to print a stack trace for the terminated process. " +"(Contributed by Artem Pulkin in :gh:`131913`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1827 msgid "operator" msgstr "" -#: ../../whatsnew/3.14.rst:1829 msgid "" "Two new functions :func:`operator.is_none` and :func:`operator.is_not_none` " "have been added, such that ``operator.is_none(obj)`` is equivalent to ``obj " @@ -2752,77 +2297,63 @@ msgid "" "None``. (Contributed by Raymond Hettinger and Nico Mexis in :gh:`115808`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1837 msgid "os" msgstr "" -#: ../../whatsnew/3.14.rst:1839 msgid "" -"Add the :func:`os.reload_environ` function to update :data:`os.environ` " -"and :data:`os.environb` with changes to the environment made " -"by :func:`os.putenv`, by :func:`os.unsetenv`, or made outside Python in the " -"same process. (Contributed by Victor Stinner in :gh:`120057`.)" +"Add the :func:`os.reload_environ` function to update :data:`os.environ` and :" +"data:`os.environb` with changes to the environment made by :func:`os." +"putenv`, by :func:`os.unsetenv`, or made outside Python in the same process. " +"(Contributed by Victor Stinner in :gh:`120057`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1845 msgid "" "Add the :data:`~os.SCHED_DEADLINE` and :data:`~os.SCHED_NORMAL` constants to " "the :mod:`os` module. (Contributed by James Roy in :gh:`127688`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1849 msgid "" "Add the :func:`os.readinto` function to read into a :ref:`buffer object " -"` from a file descriptor. (Contributed by Cody Maloney " -"in :gh:`129205`.)" +"` from a file descriptor. (Contributed by Cody Maloney in :gh:" +"`129205`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1855 msgid "os.path" msgstr "" -#: ../../whatsnew/3.14.rst:1857 msgid "" -"The *strict* parameter to :func:`os.path.realpath` accepts a new " -"value, :data:`os.path.ALLOW_MISSING`. If used, errors other " -"than :exc:`FileNotFoundError` will be re-raised; the resulting path can be " -"missing but it will be free of symlinks. (Contributed by Petr Viktorin " -"for :cve:`2025-4517`.)" +"The *strict* parameter to :func:`os.path.realpath` accepts a new value, :" +"data:`os.path.ALLOW_MISSING`. If used, errors other than :exc:" +"`FileNotFoundError` will be re-raised; the resulting path can be missing but " +"it will be free of symlinks. (Contributed by Petr Viktorin for :cve:" +"`2025-4517`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1865 ../../whatsnew/3.14.rst:2691 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.14.rst:1867 msgid "" "Add methods to :class:`pathlib.Path` to recursively copy or move files and " "directories:" msgstr "" -#: ../../whatsnew/3.14.rst:1870 msgid "" ":meth:`~pathlib.Path.copy` copies a file or directory tree to a destination." msgstr "" -#: ../../whatsnew/3.14.rst:1871 msgid ":meth:`~pathlib.Path.copy_into` copies *into* a destination directory." msgstr "" -#: ../../whatsnew/3.14.rst:1872 msgid "" ":meth:`~pathlib.Path.move` moves a file or directory tree to a destination." msgstr "" -#: ../../whatsnew/3.14.rst:1873 msgid ":meth:`~pathlib.Path.move_into` moves *into* a destination directory." msgstr "" -#: ../../whatsnew/3.14.rst:1875 msgid "(Contributed by Barney Gale in :gh:`73991`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1877 msgid "" "Add :attr:`pathlib.Path.info` attribute, which stores an object implementing " "the :class:`pathlib.types.PathInfo` protocol (also new). The object supports " @@ -2832,28 +2363,24 @@ msgid "" "Barney Gale in :gh:`125413`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1887 msgid "pdb" msgstr "" -#: ../../whatsnew/3.14.rst:1889 msgid "" "Hardcoded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace`) now " -"reuse the most recent :class:`~pdb.Pdb` instance that " -"calls :meth:`~pdb.Pdb.set_trace`, instead of creating a new one each time. " -"As a result, all the instance specific data like :pdbcmd:`display` " -"and :pdbcmd:`commands` are preserved across hardcoded breakpoints. " -"(Contributed by Tian Gao in :gh:`121450`.)" +"reuse the most recent :class:`~pdb.Pdb` instance that calls :meth:`~pdb.Pdb." +"set_trace`, instead of creating a new one each time. As a result, all the " +"instance specific data like :pdbcmd:`display` and :pdbcmd:`commands` are " +"preserved across hardcoded breakpoints. (Contributed by Tian Gao in :gh:" +"`121450`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1896 msgid "" "Add a new argument *mode* to :class:`pdb.Pdb`. Disable the ``restart`` " -"command when :mod:`pdb` is in ``inline`` mode. (Contributed by Tian Gao " -"in :gh:`123757`.)" +"command when :mod:`pdb` is in ``inline`` mode. (Contributed by Tian Gao in :" +"gh:`123757`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1900 msgid "" "A confirmation prompt will be shown when the user tries to quit :mod:`pdb` " "in ``inline`` mode. ``y``, ``Y``, ```` or ``EOF`` will confirm the " @@ -2861,51 +2388,35 @@ msgid "" "(Contributed by Tian Gao in :gh:`124704`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1905 msgid "" "Inline breakpoints like :func:`breakpoint` or :func:`pdb.set_trace` will " "always stop the program at calling frame, ignoring the ``skip`` pattern (if " "any). (Contributed by Tian Gao in :gh:`130493`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1910 msgid "" "```` at the beginning of the line in :mod:`pdb` multi-line input will " "fill in a 4-space indentation now, instead of inserting a ``\\t`` character. " "(Contributed by Tian Gao in :gh:`130471`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1914 msgid "" "Auto-indent is introduced in :mod:`pdb` multi-line input. It will either " "keep the indentation of the last line or insert a 4-space indentation when " "it detects a new code block. (Contributed by Tian Gao in :gh:`133350`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1919 msgid "" "``$_asynctask`` is added to access the current asyncio task if applicable. " "(Contributed by Tian Gao in :gh:`124367`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1922 -msgid "" -":mod:`pdb` now supports two backends: :func:`sys.settrace` " -"and :mod:`sys.monitoring`. Using :mod:`pdb` CLI or :func:`breakpoint` will " -"always use the :mod:`sys.monitoring` backend. Explicitly " -"instantiating :class:`pdb.Pdb` and its derived classes will use " -"the :func:`sys.settrace` backend by default, which is configurable. " -"(Contributed by Tian Gao in :gh:`124533`.)" -msgstr "" - -#: ../../whatsnew/3.14.rst:1929 msgid "" ":func:`pdb.set_trace_async` is added to support debugging asyncio " "coroutines. :keyword:`await` statements are supported with this function. " "(Contributed by Tian Gao in :gh:`132576`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1934 msgid "" "Source code displayed in :mod:`pdb` will be syntax-highlighted. This feature " "can be controlled using the same methods as PyREPL, in addition to the newly " @@ -2913,286 +2424,231 @@ msgid "" "and Łukasz Langa in :gh:`133355`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1941 msgid "pickle" msgstr "" -#: ../../whatsnew/3.14.rst:1943 msgid "" "Set the default protocol version on the :mod:`pickle` module to 5. For more " "details, see :ref:`pickle protocols `." msgstr "" -#: ../../whatsnew/3.14.rst:1946 msgid "" "Add notes for pickle serialization errors that allow to identify the source " "of the error. (Contributed by Serhiy Storchaka in :gh:`122213`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1952 msgid "platform" msgstr "" -#: ../../whatsnew/3.14.rst:1954 msgid "" "Add :func:`platform.invalidate_caches` to invalidate the cached results. " "(Contributed by Bénédikt Tran in :gh:`122549`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1959 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.14.rst:1961 msgid "" ":term:`Annotations ` in help output are now usually displayed in " "a format closer to that in the original source. (Contributed by Jelle " "Zijlstra in :gh:`101552`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1967 msgid "socket" msgstr "" -#: ../../whatsnew/3.14.rst:1969 msgid "Improve and fix support for Bluetooth sockets." msgstr "" -#: ../../whatsnew/3.14.rst:1971 msgid "" "Fix support of Bluetooth sockets on NetBSD and DragonFly BSD. (Contributed " "by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1973 msgid "" "Fix support for :const:`~socket.BTPROTO_HCI` on FreeBSD. (Contributed by " "Victor Stinner in :gh:`111178`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1975 msgid "" "Add support for :const:`~socket.BTPROTO_SCO` on FreeBSD. (Contributed by " "Serhiy Storchaka in :gh:`85302`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1977 msgid "" -"Add support for *cid* and *bdaddr_type* in the address " -"for :const:`~socket.BTPROTO_L2CAP` on FreeBSD. (Contributed by Serhiy " -"Storchaka in :gh:`132429`.)" +"Add support for *cid* and *bdaddr_type* in the address for :const:`~socket." +"BTPROTO_L2CAP` on FreeBSD. (Contributed by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1980 msgid "" "Add support for *channel* in the address for :const:`~socket.BTPROTO_HCI` on " "Linux. (Contributed by Serhiy Storchaka in :gh:`70145`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1983 msgid "" "Accept an integer as the address for :const:`~socket.BTPROTO_HCI` on Linux. " "(Contributed by Serhiy Storchaka in :gh:`132099`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1986 msgid "" -"Return *cid* in :meth:`~socket.socket.getsockname` " -"for :const:`~socket.BTPROTO_L2CAP`. (Contributed by Serhiy Storchaka " -"in :gh:`132429`.)" +"Return *cid* in :meth:`~socket.socket.getsockname` for :const:`~socket." +"BTPROTO_L2CAP`. (Contributed by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1989 msgid "" "Add many new constants. (Contributed by Serhiy Storchaka in :gh:`132734`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1993 msgid "ssl" msgstr "" -#: ../../whatsnew/3.14.rst:1995 msgid "" "Indicate through :data:`ssl.HAS_PHA` whether the :mod:`ssl` module supports " "TLSv1.3 post-handshake client authentication (PHA). (Contributed by Will " "Childs-Klein in :gh:`128036`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2001 msgid "struct" msgstr "" -#: ../../whatsnew/3.14.rst:2003 msgid "" "Support the :c:expr:`float complex` and :c:expr:`double complex` C types in " "the :mod:`struct` module (formatting characters ``'F'`` and ``'D'`` " "respectively). (Contributed by Sergey B Kirpichev in :gh:`121249`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2010 msgid "symtable" msgstr "" -#: ../../whatsnew/3.14.rst:2012 msgid "Expose the following :class:`symtable.Symbol` methods:" msgstr "" -#: ../../whatsnew/3.14.rst:2014 msgid ":meth:`~symtable.Symbol.is_comp_cell`" msgstr "" -#: ../../whatsnew/3.14.rst:2015 msgid ":meth:`~symtable.Symbol.is_comp_iter`" msgstr "" -#: ../../whatsnew/3.14.rst:2016 msgid ":meth:`~symtable.Symbol.is_free_class`" msgstr "" -#: ../../whatsnew/3.14.rst:2018 msgid "(Contributed by Bénédikt Tran in :gh:`120029`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2022 msgid "sys" msgstr "" -#: ../../whatsnew/3.14.rst:2024 msgid "" "The previously undocumented special function :func:`sys.getobjects`, which " "only exists in specialized builds of Python, may now return objects from " "other interpreters than the one it's called in." msgstr "" -#: ../../whatsnew/3.14.rst:2028 msgid "" -"Add :func:`sys._is_immortal` for determining if an object " -"is :term:`immortal`. (Contributed by Peter Bierma in :gh:`128509`.)" +"Add :func:`sys._is_immortal` for determining if an object is :term:" +"`immortal`. (Contributed by Peter Bierma in :gh:`128509`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2031 msgid "" "On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. " "It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``." msgstr "" -#: ../../whatsnew/3.14.rst:2034 msgid "" "Raise :exc:`DeprecationWarning` for :func:`sys._clear_type_cache`. This " "function was deprecated in Python 3.13 but it didn't raise a runtime warning." msgstr "" -#: ../../whatsnew/3.14.rst:2039 msgid "sys.monitoring" msgstr "" -#: ../../whatsnew/3.14.rst:2041 msgid "" "Two new events are added: :monitoring-event:`BRANCH_LEFT` and :monitoring-" "event:`BRANCH_RIGHT`. The ``BRANCH`` event is deprecated." msgstr "" -#: ../../whatsnew/3.14.rst:2046 msgid "sysconfig" msgstr "" -#: ../../whatsnew/3.14.rst:2048 msgid "" "Add ``ABIFLAGS`` key to :func:`sysconfig.get_config_vars` on Windows. " "(Contributed by Xuehai Pan in :gh:`131799`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2053 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.14.rst:2055 msgid "" ":func:`~tarfile.data_filter` now normalizes symbolic link targets in order " -"to avoid path traversal attacks. (Contributed by Petr Viktorin " -"in :gh:`127987` and :cve:`2025-4138`.)" +"to avoid path traversal attacks. (Contributed by Petr Viktorin in :gh:" +"`127987` and :cve:`2025-4138`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2058 msgid "" ":func:`~tarfile.TarFile.extractall` now skips fixing up directory attributes " "when a directory was removed or replaced by another kind of file. " "(Contributed by Petr Viktorin in :gh:`127987` and :cve:`2024-12718`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2061 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` now " "(re-)apply the extraction filter when substituting a link (hard or symbolic) " "with a copy of another archive member, and when fixing up directory " -"attributes. The former raises a new " -"exception, :exc:`~tarfile.LinkFallbackError`. (Contributed by Petr Viktorin " -"for :cve:`2025-4330` and :cve:`2024-12718`.)" +"attributes. The former raises a new exception, :exc:`~tarfile." +"LinkFallbackError`. (Contributed by Petr Viktorin for :cve:`2025-4330` and :" +"cve:`2024-12718`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2067 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` no " "longer extract rejected members when :func:`~tarfile.TarFile.errorlevel` is " -"zero. (Contributed by Matt Prodani and Petr Viktorin in :gh:`112887` " -"and :cve:`2025-4435`.)" +"zero. (Contributed by Matt Prodani and Petr Viktorin in :gh:`112887` and :" +"cve:`2025-4435`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2075 msgid "threading" msgstr "" -#: ../../whatsnew/3.14.rst:2077 msgid "" -":meth:`threading.Thread.start` now sets the operating system thread name " -"to :attr:`threading.Thread.name`. (Contributed by Victor Stinner " -"in :gh:`59705`.)" +":meth:`threading.Thread.start` now sets the operating system thread name to :" +"attr:`threading.Thread.name`. (Contributed by Victor Stinner in :gh:`59705`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2083 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.14.rst:2085 msgid "" "Make :mod:`tkinter` widget methods :meth:`!after` and :meth:`!after_idle` " -"accept arguments passed by keyword. (Contributed by Zhikang Yan " -"in :gh:`126899`.)" +"accept arguments passed by keyword. (Contributed by Zhikang Yan in :gh:" +"`126899`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2089 msgid "" "Add ability to specify name for :class:`!tkinter.OptionMenu` and :class:`!" "tkinter.ttk.OptionMenu`. (Contributed by Zhikang Yan in :gh:`130482`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2094 msgid "turtle" msgstr "" -#: ../../whatsnew/3.14.rst:2096 msgid "" -"Add context managers for :func:`turtle.fill`, :func:`turtle.poly` " -"and :func:`turtle.no_animation`. (Contributed by Marie Roald and Yngve " -"Mardal Moe in :gh:`126350`.)" +"Add context managers for :func:`turtle.fill`, :func:`turtle.poly` and :func:" +"`turtle.no_animation`. (Contributed by Marie Roald and Yngve Mardal Moe in :" +"gh:`126350`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2102 msgid "types" msgstr "" -#: ../../whatsnew/3.14.rst:2104 msgid "" -":class:`types.UnionType` is now an alias for :class:`typing.Union`. " -"See :ref:`below ` for more details. (Contributed " -"by Jelle Zijlstra in :gh:`105499`.)" +":class:`types.UnionType` is now an alias for :class:`typing.Union`. See :ref:" +"`below ` for more details. (Contributed by Jelle " +"Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2110 ../../whatsnew/3.14.rst:2729 msgid "typing" msgstr "" -#: ../../whatsnew/3.14.rst:2114 msgid "" ":class:`types.UnionType` and :class:`typing.Union` are now aliases for each " "other, meaning that both old-style unions (created with ``Union[int, str]``) " @@ -3202,14 +2658,12 @@ msgid "" "at runtime:" msgstr "" -#: ../../whatsnew/3.14.rst:2120 msgid "" "Both syntaxes for creating a union now produce the same string " "representation in ``repr()``. For example, ``repr(Union[int, str])`` is now " "``\"int | str\"`` instead of ``\"typing.Union[int, str]\"``." msgstr "" -#: ../../whatsnew/3.14.rst:2123 msgid "" "Unions created using the old syntax are no longer cached. Previously, " "running ``Union[int, str]`` multiple times would return the same object " @@ -3219,14 +2673,13 @@ msgid "" "change could increase memory usage for some programs that use a large number " "of unions created by subscripting ``typing.Union``. However, several factors " "offset this cost: unions used in annotations are no longer evaluated by " -"default in Python 3.14 because of :pep:`649`; an instance " -"of :class:`types.UnionType` is itself much smaller than the object returned " -"by ``Union[]`` was on prior Python versions; and removing the cache also " -"saves some space. It is therefore unlikely that this change will cause a " -"significant increase in memory usage for most users." +"default in Python 3.14 because of :pep:`649`; an instance of :class:`types." +"UnionType` is itself much smaller than the object returned by ``Union[]`` " +"was on prior Python versions; and removing the cache also saves some space. " +"It is therefore unlikely that this change will cause a significant increase " +"in memory usage for most users." msgstr "" -#: ../../whatsnew/3.14.rst:2136 msgid "" "Previously, old-style unions were implemented using the private class " "``typing._UnionGenericAlias``. This class is no longer needed for the " @@ -3236,2005 +2689,1574 @@ msgid "" "of relying on private implementation details." msgstr "" -#: ../../whatsnew/3.14.rst:2141 msgid "" "It is now possible to use :class:`typing.Union` itself in :func:`isinstance` " "checks. For example, ``isinstance(int | str, typing.Union)`` will return " "``True``; previously this raised :exc:`TypeError`." msgstr "" -#: ../../whatsnew/3.14.rst:2144 msgid "" "The ``__args__`` attribute of :class:`typing.Union` objects is no longer " "writable." msgstr "" -#: ../../whatsnew/3.14.rst:2145 msgid "" "It is no longer possible to set any attributes on :class:`typing.Union` " "objects. This only ever worked for dunder attributes on previous versions, " "was never documented to work, and was subtly broken in many cases." msgstr "" -#: ../../whatsnew/3.14.rst:2149 msgid "(Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2153 +msgid ":class:`typing.TypeAliasType` now supports star unpacking." +msgstr "" + msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.14.rst:2155 msgid "The Unicode database has been updated to Unicode 16.0.0." msgstr "" -#: ../../whatsnew/3.14.rst:2161 msgid "unittest" msgstr "" -#: ../../whatsnew/3.14.rst:2163 msgid "" -":mod:`unittest` output is now colored by default. This can be controlled " -"by :ref:`environment variables `. (Contributed " -"by Hugo van Kemenade in :gh:`127221`.)" +":mod:`unittest` output is now colored by default. This can be controlled by :" +"ref:`environment variables `. (Contributed by " +"Hugo van Kemenade in :gh:`127221`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2168 msgid "" "unittest discovery supports :term:`namespace package` as start directory " -"again. It was removed in Python 3.11. (Contributed by Jacob Walls " -"in :gh:`80958`.)" +"again. It was removed in Python 3.11. (Contributed by Jacob Walls in :gh:" +"`80958`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2172 msgid "" "A number of new methods were added in the :class:`~unittest.TestCase` class " "that provide more specialized tests." msgstr "" -#: ../../whatsnew/3.14.rst:2175 msgid "" -":meth:`~unittest.TestCase.assertHasAttr` " -"and :meth:`~unittest.TestCase.assertNotHasAttr` check whether the object has " -"a particular attribute." +":meth:`~unittest.TestCase.assertHasAttr` and :meth:`~unittest.TestCase." +"assertNotHasAttr` check whether the object has a particular attribute." msgstr "" -#: ../../whatsnew/3.14.rst:2178 msgid "" -":meth:`~unittest.TestCase.assertIsSubclass` " -"and :meth:`~unittest.TestCase.assertNotIsSubclass` check whether the object " -"is a subclass of a particular class, or of one of a tuple of classes." +":meth:`~unittest.TestCase.assertIsSubclass` and :meth:`~unittest.TestCase." +"assertNotIsSubclass` check whether the object is a subclass of a particular " +"class, or of one of a tuple of classes." msgstr "" -#: ../../whatsnew/3.14.rst:2181 msgid "" -":meth:`~unittest.TestCase.assertStartsWith`, :meth:`~unittest.TestCase.assertNotStartsWith`, :meth:`~unittest.TestCase.assertEndsWith` " -"and :meth:`~unittest.TestCase.assertNotEndsWith` check whether the Unicode " -"or byte string starts or ends with particular string(s)." +":meth:`~unittest.TestCase.assertStartsWith`, :meth:`~unittest.TestCase." +"assertNotStartsWith`, :meth:`~unittest.TestCase.assertEndsWith` and :meth:" +"`~unittest.TestCase.assertNotEndsWith` check whether the Unicode or byte " +"string starts or ends with particular strings." msgstr "" -#: ../../whatsnew/3.14.rst:2187 msgid "(Contributed by Serhiy Storchaka in :gh:`71339`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2191 ../../whatsnew/3.14.rst:2737 msgid "urllib" msgstr "" -#: ../../whatsnew/3.14.rst:2193 msgid "" "Upgrade HTTP digest authentication algorithm for :mod:`urllib.request` by " "supporting SHA-256 digest authentication as specified in :rfc:`7616`. " "(Contributed by Calvin Bui in :gh:`128193`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2197 msgid "" -"Improve ergonomics and standards compliance when parsing and emitting " -"``file:`` URLs." +"Improve ergonomics and standards compliance when parsing and emitting ``file:" +"`` URLs." msgstr "" -#: ../../whatsnew/3.14.rst:2200 msgid "In :func:`urllib.request.url2pathname`:" msgstr "" -#: ../../whatsnew/3.14.rst:2202 msgid "" "Accept a complete URL when the new *require_scheme* argument is set to true." msgstr "" -#: ../../whatsnew/3.14.rst:2204 msgid "Discard URL authority if it matches the local hostname." msgstr "" -#: ../../whatsnew/3.14.rst:2205 msgid "" "Discard URL authority if it resolves to a local IP address when the new " "*resolve_host* argument is set to true." msgstr "" -#: ../../whatsnew/3.14.rst:2207 msgid "Discard URL query and fragment components." msgstr "" -#: ../../whatsnew/3.14.rst:2208 msgid "" "Raise :exc:`~urllib.error.URLError` if a URL authority isn't local, except " "on Windows where we return a UNC path as before." msgstr "" -#: ../../whatsnew/3.14.rst:2211 msgid "In :func:`urllib.request.pathname2url`:" msgstr "" -#: ../../whatsnew/3.14.rst:2213 msgid "" "Return a complete URL when the new *add_scheme* argument is set to true." msgstr "" -#: ../../whatsnew/3.14.rst:2214 msgid "" "Include an empty URL authority when a path begins with a slash. For example, " "the path ``/etc/hosts`` is converted to the URL ``///etc/hosts``." msgstr "" -#: ../../whatsnew/3.14.rst:2217 msgid "" "On Windows, drive letters are no longer converted to uppercase, and ``:`` " "characters not following a drive letter no longer cause an :exc:`OSError` " "exception to be raised." msgstr "" -#: ../../whatsnew/3.14.rst:2221 msgid "(Contributed by Barney Gale in :gh:`125866`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2225 ../../whatsnew/3.14.rst:2331 msgid "uuid" msgstr "" -#: ../../whatsnew/3.14.rst:2227 msgid "" -"Add support for UUID versions 6, 7, and 8 " -"via :func:`uuid.uuid6`, :func:`uuid.uuid7`, and :func:`uuid.uuid8` " -"respectively, as specified in :rfc:`9562`. (Contributed by Bénédikt Tran " -"in :gh:`89083`.)" +"Add support for UUID versions 6, 7, and 8 via :func:`uuid.uuid6`, :func:" +"`uuid.uuid7`, and :func:`uuid.uuid8` respectively, as specified in :rfc:" +"`9562`. (Contributed by Bénédikt Tran in :gh:`89083`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2232 msgid "" ":const:`uuid.NIL` and :const:`uuid.MAX` are now available to represent the " "Nil and Max UUID formats as defined by :rfc:`9562`. (Contributed by Nick " "Pope in :gh:`128427`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2236 msgid "" "Allow to generate multiple UUIDs at once via :option:`python -m uuid --count " "`. (Contributed by Simon Legner in :gh:`131236`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2241 msgid "webbrowser" msgstr "" -#: ../../whatsnew/3.14.rst:2243 msgid "" "Names in the :envvar:`BROWSER` environment variable can now refer to already " "registered browsers for the :mod:`webbrowser` module, instead of always " "generating a new browser command." msgstr "" -#: ../../whatsnew/3.14.rst:2247 msgid "" "This makes it possible to set :envvar:`BROWSER` to the value of one of the " "supported browsers on macOS." msgstr "" -#: ../../whatsnew/3.14.rst:2252 -msgid "zipinfo" +msgid "zipfile" msgstr "" -#: ../../whatsnew/3.14.rst:2254 msgid "" "Added :func:`ZipInfo._for_archive ` to resolve " -"suitable defaults for a :class:`~zipfile.ZipInfo` object as used " -"by :func:`ZipFile.writestr `. (Contributed by " -"Bénédikt Tran in :gh:`123424`.)" +"suitable defaults for a :class:`~zipfile.ZipInfo` object as used by :func:" +"`ZipFile.writestr `. (Contributed by Bénédikt Tran " +"in :gh:`123424`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2259 msgid "" -":meth:`zipfile.ZipFile.writestr` now respect ``SOURCE_DATE_EPOCH`` that " +":meth:`zipfile.ZipFile.writestr` now respects ``SOURCE_DATE_EPOCH`` that " "distributions can set centrally and have build tools consume this in order " "to produce reproducible output. (Contributed by Jiahao Li in :gh:`91279`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2268 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.14.rst:2270 msgid "" "The import time for several standard library modules has been improved, " -"including :mod:`ast`, :mod:`asyncio`, :mod:`base64`, :mod:`cmd`, :mod:`csv`, :mod:`gettext`, :mod:`importlib.util`, :mod:`locale`, :mod:`mimetypes`, :mod:`optparse`, :mod:`pickle`, :mod:`pprint`, :mod:`pstats`, :mod:`socket`, :mod:`subprocess`, :mod:`threading`, :mod:`tomllib`, " -"and :mod:`zipfile`." +"including :mod:`annotationlib`, :mod:`ast`, :mod:`asyncio`, :mod:`base64`, :" +"mod:`cmd`, :mod:`csv`, :mod:`gettext`, :mod:`importlib.util`, :mod:" +"`locale`, :mod:`mimetypes`, :mod:`optparse`, :mod:`pickle`, :mod:`pprint`, :" +"mod:`pstats`, :mod:`shlex`, :mod:`socket`, :mod:`string`, :mod:" +"`subprocess`, :mod:`threading`, :mod:`tomllib`, :mod:`types`, and :mod:" +"`zipfile`." msgstr "" -#: ../../whatsnew/3.14.rst:2276 msgid "" "(Contributed by Adam Turner, Bénédikt Tran, Chris Markiewicz, Eli Schwartz, " "Hugo van Kemenade, Jelle Zijlstra, and others in :gh:`118761`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2283 msgid "" -":mod:`asyncio` has a new per-thread double linked list implementation " -"internally for :class:`native tasks ` which speeds up " -"execution by 10-20% on standard pyperformance benchmarks and reduces memory " -"usage. This enables external introspection tools such as :ref:`python -m " -"asyncio pstree ` to introspect the call " -"graph of asyncio tasks running in all threads. (Contributed by Kumar Aditya " -"in :gh:`107803`.)" +"Standard benchmark results have improved by 10-20%, following the " +"implementation of a new per-thread double linked list for :class:`native " +"tasks `, also reducing memory usage. This enables external " +"introspection tools such as :ref:`python -m asyncio pstree ` to introspect the call graph of asyncio tasks " +"running in all threads. (Contributed by Kumar Aditya in :gh:`107803`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2291 msgid "" -":mod:`asyncio` has first class support for :term:`free-threading builds " +"The module now has first class support for :term:`free-threading builds " "`. This enables parallel execution of multiple event loops " -"across different threads and scales linearly with the number of threads. " +"across different threads, scaling linearly with the number of threads. " "(Contributed by Kumar Aditya in :gh:`128002`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2296 +msgid "base64" +msgstr "" + msgid "" -":mod:`asyncio` has new utility functions for introspecting and printing the " -"program's call graph: :func:`asyncio.capture_call_graph` " -"and :func:`asyncio.print_call_graph`. (Contributed by Yury Selivanov, Pablo " -"Galindo Salgado, and Łukasz Langa in :gh:`91048`.)" +":func:`~base64.b16decode` is now up to six times faster. (Contributed by " +"Bénédikt Tran, Chris Markiewicz, and Adam Turner in :gh:`118761`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2304 -msgid "base64" +msgid "bdb" msgstr "" -#: ../../whatsnew/3.14.rst:2306 msgid "" -"Improve the performance of :func:`base64.b16decode` by up to ten times, and " -"reduce the import time of :mod:`base64` by up to six times. (Contributed by " -"Bénédikt Tran, Chris Markiewicz, and Adam Turner in :gh:`118761`.)" +"The basic debugger now has a :mod:`sys.monitoring`-based backend, which can " +"be selected via the passing ``'monitoring'`` to the :class:`~bdb.Bdb` " +"class's new *backend* parameter. (Contributed by Tian Gao in :gh:`124533`.)" +msgstr "" + +msgid "" +"The :func:`~difflib.IS_LINE_JUNK` function is now up to twice as fast. " +"(Contributed by Adam Turner and Semyon Moroz in :gh:`130167`.)" +msgstr "" + +msgid "gc" msgstr "" -#: ../../whatsnew/3.14.rst:2314 msgid "" "The new :ref:`incremental garbage collector ` " "means that maximum pause times are reduced by an order of magnitude or more " -"for larger heaps. (Contributed by Mark Shannon in :gh:`108362`.)" +"for larger heaps." +msgstr "" + +msgid "" +"Because of this optimization, the meaning of the results of :meth:`~gc." +"get_threshold` and :meth:`~gc.set_threshold` have changed, along with :meth:" +"`~gc.get_count` and :meth:`~gc.get_stats`." msgstr "" -#: ../../whatsnew/3.14.rst:2322 msgid "" -":mod:`io` which provides the built-in :func:`open` makes less system calls " -"when opening regular files as well as reading whole files. Reading a small " -"operating system cached file in full is up to 15% " -"faster. :func:`pathlib.Path.read_bytes` has the most optimizations for " -"reading a file's bytes in full. (Contributed by Cody Maloney and Victor " -"Stinner in :gh:`120754` and :gh:`90102`.)" +"For backwards compatibility, :meth:`~gc.get_threshold` continues to return a " +"three-item tuple. The first value is the threshold for young collections, as " +"before; the second value determines the rate at which the old collection is " +"scanned (the default is 10, and higher values mean that the old collection " +"is scanned more slowly). The third value is now meaningless and is always " +"zero." +msgstr "" + +msgid ":meth:`~gc.set_threshold` now ignores any items after the second." msgstr "" -#: ../../whatsnew/3.14.rst:2333 msgid "" -"Improve generation of :class:`~uuid.UUID` objects via their dedicated " -"functions:" +":meth:`~gc.get_count` and :meth:`~gc.get_stats` continue to return the same " +"format of results. The only difference is that instead of the results " +"referring to the young, aging and old generations, the results refer to the " +"young generation and the aging and collecting spaces of the old generation." msgstr "" -#: ../../whatsnew/3.14.rst:2336 msgid "" -":func:`~uuid.uuid3` and :func:`~uuid.uuid5` are both roughly 40% faster for " -"16-byte names and 20% faster for 1024-byte names. Performance for longer " -"names remains unchanged." +"In summary, code that attempted to manipulate the behavior of the cycle GC " +"may not work exactly as intended, but it is very unlikely to be harmful. All " +"other code will work just fine." msgstr "" -#: ../../whatsnew/3.14.rst:2339 -msgid ":func:`~uuid.uuid4` is 30% faster." +msgid "" +"Opening and reading files now executes fewer system calls. Reading a small " +"operating system cached file in full is up to 15% faster. (Contributed by " +"Cody Maloney and Victor Stinner in :gh:`120754` and :gh:`90102`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2341 -msgid "(Contributed by Bénédikt Tran in :gh:`128150`.)" +msgid "" +":func:`Path.read_bytes ` now uses unbuffered mode " +"to open files, which is between 9% and 17% faster to read in full. " +"(Contributed by Cody Maloney in :gh:`120754`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2345 -msgid "zlib" +msgid "" +":mod:`pdb` now supports two backends, based on either :func:`sys.settrace` " +"or :mod:`sys.monitoring`. Using the :ref:`pdb CLI ` or :func:" +"`breakpoint` will always use the :mod:`sys.monitoring` backend. Explicitly " +"instantiating :class:`pdb.Pdb` and its derived classes will use the :func:" +"`sys.settrace` backend by default, which is configurable. (Contributed by " +"Tian Gao in :gh:`124533`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2347 msgid "" -"On Windows, ``zlib-ng`` is now used as the implementation of the :mod:`zlib` " -"module. This should produce compatible and comparable results with better " -"performance, though it is worth noting that ``zlib.Z_BEST_SPEED`` (1) may " -"result in significantly less compression than the previous implementation " -"(while also significantly reducing the time taken to compress). (Contributed " -"by Steve Dower in :gh:`91349`.)" +":func:`~uuid.uuid3` and :func:`~uuid.uuid5` are now both roughly 40% faster " +"for 16-byte names and 20% faster for 1024-byte names. Performance for longer " +"names remains unchanged. (Contributed by Bénédikt Tran in :gh:`128150`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2357 ../../whatsnew/3.14.rst:3061 -msgid "Deprecated" +msgid "" +":func:`~uuid.uuid4` is now c. 30% faster. (Contributed by Bénédikt Tran in :" +"gh:`128150`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2359 -#: ../../deprecations/pending-removal-in-future.rst:7 -msgid ":mod:`argparse`:" +msgid "zlib" msgstr "" -#: ../../whatsnew/3.14.rst:2361 msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated. " -"(Contributed by Savannah Ostrowski in :gh:`125563`.)" +"On Windows, `zlib-ng `__ is now used as " +"the implementation of the :mod:`zlib` module in the default binaries. There " +"are no known incompatibilities between ``zlib-ng`` and the previously-used " +"``zlib`` implementation. This should result in better performance at all " +"compression levels." msgstr "" -#: ../../whatsnew/3.14.rst:2365 msgid "" -"Deprecated the :class:`argparse.FileType` type converter. Anything with " -"resource management should be done downstream after the arguments are " -"parsed. (Contributed by Serhiy Storchaka in :gh:`58032`.)" +"It is worth noting that ``zlib.Z_BEST_SPEED`` (``1``) may result in " +"significantly less compression than the previous implementation, whilst also " +"significantly reducing the time taken to compress." msgstr "" -#: ../../whatsnew/3.14.rst:2370 -#: ../../deprecations/pending-removal-in-3.16.rst:19 -msgid ":mod:`asyncio`:" +msgid "(Contributed by Steve Dower in :gh:`91349`.)" +msgstr "" + +msgid "Removed" msgstr "" -#: ../../whatsnew/3.14.rst:2372 -#: ../../deprecations/pending-removal-in-3.16.rst:21 msgid "" -":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " -"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " -"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +"Remove the *type*, *choices*, and *metavar* parameters of :class:`!" +"BooleanOptionalAction`. These have been deprecated since Python 3.12. " +"(Contributed by Nikita Sobolev in :gh:`118805`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2377 -#: ../../deprecations/pending-removal-in-3.16.rst:26 msgid "" -":mod:`asyncio` policy system is deprecated and will be removed in Python " -"3.16. In particular, the following classes and functions are deprecated:" +"Calling :meth:`~argparse.ArgumentParser.add_argument_group` on an argument " +"group now raises a :exc:`ValueError`. Similarly, :meth:`~argparse." +"ArgumentParser.add_argument_group` or :meth:`~argparse.ArgumentParser." +"add_mutually_exclusive_group` on a mutually exclusive group now both raise :" +"exc:`ValueError`\\ s. This 'nesting' was never supported, often failed to " +"work correctly, and was unintentionally exposed through inheritance. This " +"functionality has been deprecated since Python 3.11. (Contributed by " +"Savannah Ostrowski in :gh:`127186`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2380 -#: ../../deprecations/pending-removal-in-3.16.rst:29 -msgid ":class:`asyncio.AbstractEventLoopPolicy`" +msgid "" +"Remove the following classes, which have been deprecated aliases of :class:" +"`~ast.Constant` since Python 3.8 and have emitted deprecation warnings since " +"Python 3.12:" msgstr "" -#: ../../whatsnew/3.14.rst:2381 -#: ../../deprecations/pending-removal-in-3.16.rst:30 -msgid ":class:`asyncio.DefaultEventLoopPolicy`" +msgid ":class:`!Bytes`" msgstr "" -#: ../../whatsnew/3.14.rst:2382 -#: ../../deprecations/pending-removal-in-3.16.rst:31 -msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" +msgid ":class:`!Ellipsis`" msgstr "" -#: ../../whatsnew/3.14.rst:2383 -#: ../../deprecations/pending-removal-in-3.16.rst:32 -msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" +msgid ":class:`!NameConstant`" msgstr "" -#: ../../whatsnew/3.14.rst:2384 -#: ../../deprecations/pending-removal-in-3.16.rst:33 -msgid ":func:`asyncio.get_event_loop_policy`" +msgid ":class:`!Num`" msgstr "" -#: ../../whatsnew/3.14.rst:2385 -#: ../../deprecations/pending-removal-in-3.16.rst:34 -msgid ":func:`asyncio.set_event_loop_policy`" +msgid ":class:`!Str`" msgstr "" -#: ../../whatsnew/3.14.rst:2387 -#: ../../deprecations/pending-removal-in-3.16.rst:36 msgid "" -"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " -"*loop_factory* to use the desired event loop implementation." +"As a consequence of these removals, user-defined ``visit_Num``, " +"``visit_Str``, ``visit_Bytes``, ``visit_NameConstant`` and " +"``visit_Ellipsis`` methods on custom :class:`~ast.NodeVisitor` subclasses " +"will no longer be called when the :class:`!NodeVisitor` subclass is visiting " +"an AST. Define a ``visit_Constant`` method instead." msgstr "" -#: ../../whatsnew/3.14.rst:2390 -#: ../../deprecations/pending-removal-in-3.16.rst:39 -msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" +msgid "(Contributed by Alex Waygood in :gh:`119562`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2392 -#: ../../deprecations/pending-removal-in-3.16.rst:41 msgid "" -"import asyncio\n" -"\n" -"async def main():\n" -" ...\n" -"\n" -"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" +"Remove the following deprecated properties on :class:`ast.Constant`, which " +"were present for compatibility with the now-removed AST classes:" msgstr "" -#: ../../whatsnew/3.14.rst:2399 -#: ../../deprecations/pending-removal-in-3.16.rst:48 -msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" +msgid ":attr:`!Constant.n`" +msgstr "" + +msgid ":attr:`!Constant.s`" msgstr "" -#: ../../whatsnew/3.14.rst:2401 msgid "" -":mod:`builtins`: Passing a complex number as the *real* or *imag* argument " -"in the :func:`complex` constructor is now deprecated; it should only be " -"passed as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" +"Use :attr:`!Constant.value` instead. (Contributed by Alex Waygood in :gh:" +"`119562`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2407 msgid "" -":mod:`codecs`: :func:`codecs.open` is now deprecated. Use :func:`open` " -"instead. (Contributed by Inada Naoki in :gh:`133036`.)" +"Remove the following classes, methods, and functions, which have been " +"deprecated since Python 3.12:" msgstr "" -#: ../../whatsnew/3.14.rst:2411 -#: ../../deprecations/pending-removal-in-3.15.rst:16 -#: ../../deprecations/pending-removal-in-3.19.rst:4 -msgid ":mod:`ctypes`:" +msgid ":class:`!AbstractChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2413 -msgid "" -"On non-Windows platforms, setting :attr:`.Structure._pack_` to use a MSVC-" -"compatible default memory layout is deprecated in favor of " -"setting :attr:`.Structure._layout_` to ``'ms'``. (Contributed by Petr " -"Viktorin in :gh:`131747`.)" +msgid ":class:`!FastChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2418 -msgid "" -"Calling :func:`ctypes.POINTER` on a string is deprecated. Use :ref:`ctypes-" -"incomplete-types` for self-referential structures. Also, the internal " -"``ctypes._pointer_type_cache`` is deprecated. See :func:`ctypes.POINTER` for " -"updated implementation details. (Contributed by Sergey Myrianov " -"in :gh:`100926`.)" +msgid ":class:`!MultiLoopChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2424 -msgid "" -":mod:`functools`: Calling the Python implementation " -"of :func:`functools.reduce` with *function* or *sequence* as keyword " -"arguments is now deprecated. (Contributed by Kirill Podoprigora " -"in :gh:`121676`.)" +msgid ":class:`!PidfdChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2429 -msgid "" -":mod:`logging`: Support for custom logging handlers with the *strm* argument " -"is deprecated and scheduled for removal in Python 3.16. Define handlers with " -"the *stream* argument instead. (Contributed by Mariusz Felisiak " -"in :gh:`115032`.)" +msgid ":class:`!SafeChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2434 -msgid "" -":mod:`mimetypes`: Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" +msgid ":class:`!ThreadedChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2441 -msgid "" -":mod:`!nturl2path`: This module is now deprecated. " -"Call :func:`urllib.request.url2pathname` " -"and :func:`~urllib.request.pathname2url` instead. (Contributed by Barney " -"Gale in :gh:`125866`.)" +msgid ":meth:`!AbstractEventLoopPolicy.get_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2446 -msgid "" -":mod:`os`: :term:`Soft deprecate ` :func:`os.popen` " -"and :func:`os.spawn* ` functions. They should no longer be used " -"to write new code. The :mod:`subprocess` module is recommended instead. " -"(Contributed by Victor Stinner in :gh:`120743`.)" +msgid ":meth:`!AbstractEventLoopPolicy.set_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2452 -msgid "" -":mod:`pathlib`: :meth:`!pathlib.PurePath.as_uri` is deprecated and will be " -"removed in Python 3.19. Use :meth:`pathlib.Path.as_uri` instead. " -"(Contributed by Barney Gale in :gh:`123599`.)" +msgid ":func:`!get_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2457 -msgid "" -":mod:`pdb`: The undocumented ``pdb.Pdb.curframe_locals`` attribute is now a " -"deprecated read-only property. The low overhead dynamic frame locals access " -"added in Python 3.13 by PEP 667 means the frame locals cache reference " -"previously stored in this attribute is no longer needed. Derived debuggers " -"should access ``pdb.Pdb.curframe.f_locals`` directly in Python 3.13 and " -"later versions. (Contributed by Tian Gao in :gh:`124369` and :gh:`125951`.)" +msgid ":func:`!set_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2465 -msgid "" -":mod:`symtable`: Deprecate :meth:`symtable.Class.get_methods` due to the " -"lack of interest. (Contributed by Bénédikt Tran in :gh:`119698`.)" +msgid "(Contributed by Kumar Aditya in :gh:`120804`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2469 msgid "" -":mod:`tkinter`: The :class:`!tkinter.Variable` methods :meth:`!" -"trace_variable`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now " -"deprecated. Use :meth:`!trace_add`, :meth:`!trace_remove` and :meth:`!" -"trace_info` instead. (Contributed by Serhiy Storchaka in :gh:`120220`.)" +":func:`asyncio.get_event_loop` now raises a :exc:`RuntimeError` if there is " +"no current event loop, and no longer implicitly creates an event loop." +msgstr "" + +msgid "(Contributed by Kumar Aditya in :gh:`126353`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2476 msgid "" -":mod:`urllib.parse`: Accepting objects with false values (like ``0`` and " -"``[]``) except empty strings, byte-like objects and ``None`` " -"in :mod:`urllib.parse` functions :func:`~urllib.parse.parse_qsl` " -"and :func:`~urllib.parse.parse_qs` is now deprecated. (Contributed by Serhiy " -"Storchaka in :gh:`116897`.)" +"There's a few patterns that use :func:`asyncio.get_event_loop`, most of them " +"can be replaced with :func:`asyncio.run`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:2 -#: ../../deprecations/pending-removal-in-3.15.rst:2 -msgid "Pending removal in Python 3.15" +msgid "If you're running an async function, simply use :func:`asyncio.run`." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:4 -#: ../../deprecations/pending-removal-in-3.16.rst:4 -msgid "The import system:" +msgid "Before:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:6 msgid "" -"Setting :attr:`~module.__cached__` on a module while failing to " -"set :attr:`__spec__.cached ` is " -"deprecated. In Python 3.15, :attr:`!__cached__` will cease to be set or take " -"into consideration by the import system or standard library. (:gh:`97879`)" +"async def main():\n" +" ...\n" +"\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" loop.run_until_complete(main())\n" +"finally:\n" +" loop.close()" +msgstr "" + +msgid "After:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:11 msgid "" -"Setting :attr:`~module.__package__` on a module while failing to " -"set :attr:`__spec__.parent ` is " -"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " -"take into consideration by the import system or standard library. " -"(:gh:`97879`)" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main())" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:18 msgid "" -"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " -"since Python 3.13." +"If you need to start something, for example, a server listening on a socket " +"and then run forever, use :func:`asyncio.run` and an :class:`asyncio.Event`." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:21 -msgid ":mod:`http.server`:" +msgid "" +"def start_server(loop): ...\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" start_server(loop)\n" +" loop.run_forever()\n" +"finally:\n" +" loop.close()" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:23 msgid "" -"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " -"been deprecated since Python 3.13. No direct replacement exists. *Anything* " -"is better than CGI to interface a web server with a request handler." +"def start_server(loop): ...\n" +"\n" +"async def main():\n" +" start_server(asyncio.get_running_loop())\n" +" await asyncio.Event().wait()\n" +"\n" +"asyncio.run(main())" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:29 msgid "" -"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" -"line interface has been deprecated since Python 3.13." +"If you need to run something in an event loop, then run some blocking code " +"around it, use :class:`asyncio.Runner`." msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:32 -#: ../../deprecations/pending-removal-in-future.rst:64 -msgid ":mod:`importlib`:" +msgid "" +"async def operation_one(): ...\n" +"def blocking_code(): ...\n" +"async def operation_two(): ...\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" loop.run_until_complete(operation_one())\n" +" blocking_code()\n" +" loop.run_until_complete(operation_two())\n" +"finally:\n" +" loop.close()" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:34 -msgid "``load_module()`` method: use ``exec_module()`` instead." +msgid "" +"async def operation_one(): ...\n" +"def blocking_code(): ...\n" +"async def operation_two(): ...\n" +"\n" +"with asyncio.Runner() as runner:\n" +" runner.run(operation_one())\n" +" blocking_code()\n" +" runner.run(operation_two())" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:36 -msgid ":class:`locale`:" +msgid "collections.abc" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:38 msgid "" -"The :func:`~locale.getdefaultlocale` function has been deprecated since " -"Python 3.11. Its removal was originally planned for Python 3.13 " -"(:gh:`90817`), but has been postponed to Python 3.15. " -"Use :func:`~locale.getlocale`, :func:`~locale.setlocale`, " -"and :func:`~locale.getencoding` instead. (Contributed by Hugo van Kemenade " -"in :gh:`111187`.)" +"Remove :class:`!ByteString`, which has been deprecated since Python 3.12. " +"(Contributed by Nikita Sobolev in :gh:`118803`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:46 -msgid ":mod:`pathlib`:" +msgid "email" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:48 msgid "" -":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows." +"Remove :func:`email.utils.localtime`'s *isdst* parameter, which was " +"deprecated in and has been ignored since Python 3.12. (Contributed by Hugo " +"van Kemenade in :gh:`118798`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:52 -msgid ":mod:`platform`:" +msgid "importlib.abc" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:54 -msgid "" -":func:`~platform.java_ver` has been deprecated since Python 3.13. This " -"function is only useful for Jython support, has a confusing API, and is " -"largely untested." +msgid "Remove deprecated :mod:`importlib.abc` classes:" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:58 -#: ../../deprecations/pending-removal-in-3.16.rst:96 -msgid ":mod:`sysconfig`:" +msgid "" +":class:`!ResourceReader` (use :class:`~importlib.resources.abc." +"TraversableResources`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:60 msgid "" -"The *check_home* argument of :func:`sysconfig.is_python_build` has been " -"deprecated since Python 3.12." +":class:`!Traversable` (use :class:`~importlib.resources.abc.Traversable`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:63 -msgid ":mod:`threading`:" +msgid "" +":class:`!TraversableResources` (use :class:`~importlib.resources.abc." +"TraversableResources`)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:65 -msgid "" -":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " -"arguments has been deprecated since Python 3.14, as the Python version does " -"not permit any arguments, but the C version allows any number of positional " -"or keyword arguments, ignoring every argument." +msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:71 -msgid ":mod:`types`:" +msgid "itertools" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:73 msgid "" -":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " -"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " -"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " -"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" +"Remove support for copy, deepcopy, and pickle operations from :mod:" +"`itertools` iterators. These have emitted a :exc:`DeprecationWarning` since " +"Python 3.12. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:80 -#: ../../deprecations/pending-removal-in-3.17.rst:4 -msgid ":mod:`typing`:" +msgid "" +"Remove support for passing additional keyword arguments to :class:`~pathlib." +"Path`. In previous versions, any such arguments are ignored. (Contributed by " +"Barney Gale in :gh:`74033`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:82 msgid "" -"The undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " -"3.13. Use the class-based syntax or the functional syntax instead." +"Remove support for passing additional positional arguments to :meth:`." +"PurePath.relative_to` and :meth:`~pathlib.PurePath.is_relative_to`. In " +"previous versions, any such arguments are joined onto *other*. (Contributed " +"by Barney Gale in :gh:`78707`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:88 -msgid "" -"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " -"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " -"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " -"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " -"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgid "pkgutil" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:95 msgid "" -"The :func:`typing.no_type_check_decorator` decorator function has been " -"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " -"it has yet to be supported by any major type checker." +"Remove the :func:`!get_loader` and :func:`!find_loader` functions, which " +"have been deprecated since Python 3.12. (Contributed by Bénédikt Tran in :gh:" +"`97850`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:100 -msgid ":mod:`wave`:" +msgid "pty" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:102 msgid "" -"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, " -"and :meth:`~wave.Wave_read.getmarkers` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " -"deprecated since Python 3.13." +"Remove the :func:`!master_open` and :func:`!slave_open` functions, which " +"have been deprecated since Python 3.12. Use :func:`pty.openpty` instead. " +"(Contributed by Nikita Sobolev in :gh:`118824`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:107 -msgid ":mod:`zipimport`:" +msgid "sqlite3" msgstr "" -#: ../../deprecations/pending-removal-in-3.15.rst:109 msgid "" -":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " -"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " -"by Jiahao Li in :gh:`125746`.)" +"Remove :data:`!version` and :data:`!version_info` from the :mod:`sqlite3` " +"module; use :data:`~sqlite3.sqlite_version` and :data:`~sqlite3." +"sqlite_version_info` for the actual version number of the runtime SQLite " +"library. (Contributed by Hugo van Kemenade in :gh:`118924`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:2 -#: ../../deprecations/pending-removal-in-3.16.rst:2 -msgid "Pending removal in Python 3.16" +msgid "" +"Using a sequence of parameters with named placeholders now raises a :exc:" +"`~sqlite3.ProgrammingError`, having been deprecated since Python 3.12. " +"(Contributed by Erlend E. Aasland in :gh:`118928` and :gh:`101693`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:6 msgid "" -"Setting :attr:`~module.__loader__` on a module while failing to " -"set :attr:`__spec__.loader ` is " -"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " -"taken into consideration by the import system or the standard library." +"Remove the :class:`!Quoter` class from :mod:`urllib.parse`, which has been " +"deprecated since Python 3.11. (Contributed by Nikita Sobolev in :gh:" +"`118827`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:11 -msgid ":mod:`array`:" +msgid "" +"Remove the :class:`!URLopener` and :class:`!FancyURLopener` classes from :" +"mod:`urllib.request`, which have been deprecated since Python 3.3." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:13 msgid "" -"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " -"documentation since Python 3.3 and at runtime since Python 3.13. Use the " -"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." +"``myopener.open()`` can be replaced with :func:`~urllib.request.urlopen`. " +"``myopener.retrieve()`` can be replaced with :func:`~urllib.request." +"urlretrieve`. Customisations to the opener classes can be replaced by " +"passing customized handlers to :func:`~urllib.request.build_opener`. " +"(Contributed by Barney Gale in :gh:`84850`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:50 -#: ../../deprecations/pending-removal-in-future.rst:16 -msgid ":mod:`builtins`:" +msgid "Deprecated" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:52 -msgid "" -"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " -"deprecated since Python 3.12, as it produces surprising and unintuitive " -"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " -"of a Boolean. In the rare case that you need the bitwise inversion of the " -"underlying integer, convert to ``int`` explicitly (``~int(x)``)." +msgid ":mod:`argparse`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:59 -msgid ":mod:`functools`:" +msgid "" +"Passing the undocumented keyword argument *prefix_chars* to :meth:`~argparse." +"ArgumentParser.add_argument_group` is now deprecated. (Contributed by " +"Savannah Ostrowski in :gh:`125563`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:61 msgid "" -"Calling the Python implementation of :func:`functools.reduce` with " -"*function* or *sequence* as keyword arguments has been deprecated since " -"Python 3.14." +"Deprecated the :class:`argparse.FileType` type converter. Anything with " +"resource management should be done downstream after the arguments are " +"parsed. (Contributed by Serhiy Storchaka in :gh:`58032`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:64 -msgid ":mod:`logging`:" +msgid ":mod:`asyncio`:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:66 msgid "" -"Support for custom logging handlers with the *strm* argument is deprecated " -"and scheduled for removal in Python 3.16. Define handlers with the *stream* " -"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" -msgstr "" - -#: ../../deprecations/pending-removal-in-3.16.rst:70 -msgid ":mod:`mimetypes`:" +":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " +"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " +"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:72 msgid "" -"Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" +":mod:`asyncio` policy system is deprecated and will be removed in Python " +"3.16. In particular, the following classes and functions are deprecated:" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:78 -msgid ":mod:`shutil`:" +msgid ":class:`asyncio.AbstractEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:80 -msgid "" -"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " -"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " -"now an alias of :exc:`RuntimeError`." +msgid ":class:`asyncio.DefaultEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:85 -msgid ":mod:`symtable`:" +msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:87 -msgid "" -"The :meth:`Class.get_methods ` method has been " -"deprecated since Python 3.14." +msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:90 -msgid ":mod:`sys`:" +msgid ":func:`asyncio.get_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:92 -msgid "" -"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " -"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " -"environment variable instead." +msgid ":func:`asyncio.set_event_loop_policy`" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:98 msgid "" -"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " -"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " -"instead." +"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " +"*loop_factory* to use the desired event loop implementation." msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:102 -msgid ":mod:`tarfile`:" +msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" msgstr "" -#: ../../deprecations/pending-removal-in-3.16.rst:104 msgid "" -"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " -"deprecated since Python 3.13." +"import asyncio\n" +"\n" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:2 -msgid "Pending removal in Python 3.17" +msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.17.rst:6 msgid "" -"Before Python 3.14, old-style unions were implemented using the private " -"class ``typing._UnionGenericAlias``. This class is no longer needed for the " -"implementation, but it has been retained for backward compatibility, with " -"removal scheduled for Python 3.17. Users should use documented introspection " -"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " -"of relying on private implementation details." -msgstr "" - -#: ../../deprecations/pending-removal-in-3.19.rst:2 -msgid "Pending removal in Python 3.19" +":mod:`builtins`: Passing a complex number as the *real* or *imag* argument " +"in the :func:`complex` constructor is now deprecated; it should only be " +"passed as a single positional argument. (Contributed by Serhiy Storchaka in :" +"gh:`109218`.)" msgstr "" -#: ../../deprecations/pending-removal-in-3.19.rst:6 msgid "" -"Implicitly switching to the MSVC-compatible struct layout by " -"setting :attr:`~ctypes.Structure._pack_` but " -"not :attr:`~ctypes.Structure._layout_` on non-Windows platforms." +":mod:`codecs`: :func:`codecs.open` is now deprecated. Use :func:`open` " +"instead. (Contributed by Inada Naoki in :gh:`133036`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:2 -#: ../../deprecations/pending-removal-in-future.rst:2 -msgid "Pending removal in future versions" +msgid ":mod:`ctypes`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:4 msgid "" -"The following APIs will be removed in the future, although there is " -"currently no date scheduled for their removal." +"On non-Windows platforms, setting :attr:`.Structure._pack_` to use a MSVC-" +"compatible default memory layout is deprecated in favor of setting :attr:`." +"Structure._layout_` to ``'ms'``. (Contributed by Petr Viktorin in :gh:" +"`131747`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:9 msgid "" -"Nesting argument groups and nesting mutually exclusive groups are deprecated." +"Calling :func:`ctypes.POINTER` on a string is deprecated. Use :ref:`ctypes-" +"incomplete-types` for self-referential structures. Also, the internal " +"``ctypes._pointer_type_cache`` is deprecated. See :func:`ctypes.POINTER` for " +"updated implementation details. (Contributed by Sergey Myrianov in :gh:" +"`100926`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:11 msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." +":mod:`functools`: Calling the Python implementation of :func:`functools." +"reduce` with *function* or *sequence* as keyword arguments is now " +"deprecated. (Contributed by Kirill Podoprigora in :gh:`121676`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:14 -msgid "The :class:`argparse.FileType` type converter is deprecated." +msgid "" +":mod:`logging`: Support for custom logging handlers with the *strm* argument " +"is deprecated and scheduled for removal in Python 3.16. Define handlers with " +"the *stream* argument instead. (Contributed by Mariusz Felisiak in :gh:" +"`115032`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "``bool(NotImplemented)``." - -#: ../../deprecations/pending-removal-in-future.rst:19 msgid "" -"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " -"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " -"argument signature." +":mod:`mimetypes`: Valid extensions start with a '.' or are empty for :meth:" +"`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated and will " +"raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van Kemenade " +"in :gh:`75223`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:22 msgid "" -"Currently Python accepts numeric literals immediately followed by keywords, " -"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " -"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " -"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " -"if the numeric literal is immediately followed by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In a future release it will be changed to a syntax " -"error. (:gh:`87999`)" +":mod:`!nturl2path`: This module is now deprecated. Call :func:`urllib." +"request.url2pathname` and :func:`~urllib.request.pathname2url` instead. " +"(Contributed by Barney Gale in :gh:`125866`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:30 msgid "" -"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " -"these methods will be required to return an instance of a strict subclass " -"of :class:`int`." +":mod:`os`: :term:`Soft deprecate ` :func:`os.popen` and :" +"func:`os.spawn* ` functions. They should no longer be used to " +"write new code. The :mod:`subprocess` module is recommended instead. " +"(Contributed by Victor Stinner in :gh:`120743`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:33 msgid "" -"Support for ``__float__()`` method returning a strict subclass " -"of :class:`float`: these methods will be required to return an instance " -"of :class:`float`." +":mod:`pathlib`: :meth:`!pathlib.PurePath.as_uri` is deprecated and will be " +"removed in Python 3.19. Use :meth:`pathlib.Path.as_uri` instead. " +"(Contributed by Barney Gale in :gh:`123599`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:36 msgid "" -"Support for ``__complex__()`` method returning a strict subclass " -"of :class:`complex`: these methods will be required to return an instance " -"of :class:`complex`." +":mod:`pdb`: The undocumented ``pdb.Pdb.curframe_locals`` attribute is now a " +"deprecated read-only property. The low overhead dynamic frame locals access " +"added in Python 3.13 by PEP 667 means the frame locals cache reference " +"previously stored in this attribute is no longer needed. Derived debuggers " +"should access ``pdb.Pdb.curframe.f_locals`` directly in Python 3.13 and " +"later versions. (Contributed by Tian Gao in :gh:`124369` and :gh:`125951`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:39 -msgid "Delegation of ``int()`` to ``__trunc__()`` method." +msgid "" +":mod:`symtable`: Deprecate :meth:`symtable.Class.get_methods` due to the " +"lack of interest. (Contributed by Bénédikt Tran in :gh:`119698`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:40 msgid "" -"Passing a complex number as the *real* or *imag* argument in " -"the :func:`complex` constructor is now deprecated; it should only be passed " -"as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" +":mod:`tkinter`: The :class:`!tkinter.Variable` methods :meth:`!" +"trace_variable`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now " +"deprecated. Use :meth:`!trace_add`, :meth:`!trace_remove` and :meth:`!" +"trace_info` instead. (Contributed by Serhiy Storchaka in :gh:`120220`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:45 msgid "" -":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " -"are deprecated and replaced by :data:`calendar.JANUARY` " -"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " -"in :gh:`103636`.)" +":mod:`urllib.parse`: Accepting objects with false values (like ``0`` and " +"``[]``) except empty strings, byte-like objects and ``None`` in :mod:`urllib." +"parse` functions :func:`~urllib.parse.parse_qsl` and :func:`~urllib.parse." +"parse_qs` is now deprecated. (Contributed by Serhiy Storchaka in :gh:" +"`116897`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:50 -msgid "" -":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " -"(:gh:`133038`)" +msgid "Pending removal in Python 3.15" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:52 -msgid "" -":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " -"instead." +msgid "The import system:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:55 -msgid ":mod:`datetime`:" +msgid "" +"Setting :attr:`~module.__cached__` on a module while failing to set :attr:" +"`__spec__.cached ` is deprecated. In " +"Python 3.15, :attr:`!__cached__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:57 msgid "" -":meth:`~datetime.datetime.utcnow`: use " -"``datetime.datetime.now(tz=datetime.UTC)``." +"Setting :attr:`~module.__package__` on a module while failing to set :attr:" +"`__spec__.parent ` is deprecated. In " +"Python 3.15, :attr:`!__package__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:59 msgid "" -":meth:`~datetime.datetime.utcfromtimestamp`: use " -"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." +"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " +"since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:62 -msgid ":mod:`gettext`: Plural value must be an integer." +msgid ":mod:`http.server`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:66 msgid "" -":func:`~importlib.util.cache_from_source` *debug_override* parameter is " -"deprecated: use the *optimization* parameter instead." +"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " +"been deprecated since Python 3.13. No direct replacement exists. *Anything* " +"is better than CGI to interface a web server with a request handler." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:69 -msgid ":mod:`importlib.metadata`:" +msgid "" +"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" +"line interface has been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:71 -msgid "``EntryPoints`` tuple interface." +msgid ":mod:`importlib`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:72 -msgid "Implicit ``None`` on return values." +msgid "``load_module()`` method: use ``exec_module()`` instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:74 -msgid "" -":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " -"use :meth:`~logging.warning` instead." +msgid ":class:`locale`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:77 msgid "" -":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " -"BytesIO and binary mode instead." +"The :func:`~locale.getdefaultlocale` function has been deprecated since " +"Python 3.11. Its removal was originally planned for Python 3.13 (:gh:" +"`90817`), but has been postponed to Python 3.15. Use :func:`~locale." +"getlocale`, :func:`~locale.setlocale`, and :func:`~locale.getencoding` " +"instead. (Contributed by Hugo van Kemenade in :gh:`111187`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:80 -msgid "" -":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." +msgid ":mod:`pathlib`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:82 msgid "" -":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " -"deprecated, use an exception instance." +":meth:`.PurePath.is_reserved` has been deprecated since Python 3.13. Use :" +"func:`os.path.isreserved` to detect reserved paths on Windows." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:85 -msgid "" -":mod:`re`: More strict rules are now applied for numerical group references " -"and group names in regular expressions. Only sequence of ASCII digits is " -"now accepted as a numerical reference. The group name in bytes patterns and " -"replacement strings can now only contain ASCII letters and digits and " -"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" +msgid ":mod:`platform`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:92 msgid "" -":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." +":func:`~platform.java_ver` has been deprecated since Python 3.13. This " +"function is only useful for Jython support, has a confusing API, and is " +"largely untested." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:94 -msgid "" -":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " -"Python 3.12; use the *onexc* parameter instead." +msgid ":mod:`sysconfig`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:97 -msgid ":mod:`ssl` options and protocols:" +msgid "" +"The *check_home* argument of :func:`sysconfig.is_python_build` has been " +"deprecated since Python 3.12." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:99 -msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." +msgid ":mod:`threading`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:100 msgid "" -":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " -"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." +":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " +"arguments has been deprecated since Python 3.14, as the Python version does " +"not permit any arguments, but the C version allows any number of positional " +"or keyword arguments, ignoring every argument." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:103 -msgid "``ssl.OP_NO_SSL*`` options" +msgid ":mod:`types`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:104 -msgid "``ssl.OP_NO_TLS*`` options" +msgid "" +":class:`types.CodeType`: Accessing :attr:`~codeobject.co_lnotab` was " +"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " +"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " +"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:105 -msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "``ssl.PROTOCOL_SSLv3``" - -#: ../../deprecations/pending-removal-in-future.rst:106 -msgid "``ssl.PROTOCOL_TLS``" -msgstr "``ssl.PROTOCOL_TLS``" - -#: ../../deprecations/pending-removal-in-future.rst:107 -msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "``ssl.PROTOCOL_TLSv1``" - -#: ../../deprecations/pending-removal-in-future.rst:108 -msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "``ssl.PROTOCOL_TLSv1_1``" - -#: ../../deprecations/pending-removal-in-future.rst:109 -msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "``ssl.PROTOCOL_TLSv1_2``" - -#: ../../deprecations/pending-removal-in-future.rst:110 -msgid "``ssl.TLSVersion.SSLv3``" -msgstr "``ssl.TLSVersion.SSLv3``" - -#: ../../deprecations/pending-removal-in-future.rst:111 -msgid "``ssl.TLSVersion.TLSv1``" -msgstr "``ssl.TLSVersion.TLSv1``" - -#: ../../deprecations/pending-removal-in-future.rst:112 -msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "``ssl.TLSVersion.TLSv1_1``" - -#: ../../deprecations/pending-removal-in-future.rst:114 -msgid ":mod:`threading` methods:" +msgid ":mod:`typing`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:116 msgid "" -":meth:`!threading.Condition.notifyAll`: " -"use :meth:`~threading.Condition.notify_all`." +"The undocumented keyword argument syntax for creating :class:`~typing." +"NamedTuple` classes (for example, ``Point = NamedTuple(\"Point\", x=int, " +"y=int)``) has been deprecated since Python 3.13. Use the class-based syntax " +"or the functional syntax instead." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:117 -msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." -msgstr "" - -#: ../../deprecations/pending-removal-in-future.rst:118 msgid "" -":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " -"use :attr:`threading.Thread.daemon` attribute." +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:120 msgid "" -":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " -"use :attr:`threading.Thread.name` attribute." +"The :func:`typing.no_type_check_decorator` decorator function has been " +"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " +"it has yet to be supported by any major type checker." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:122 -msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." +msgid ":mod:`wave`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:123 -msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." +msgid "" +"The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." +"Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" +"`~wave.Wave_write` classes have been deprecated since Python 3.13." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:125 -msgid ":class:`typing.Text` (:gh:`92332`)." +msgid ":mod:`zipimport`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:127 msgid "" -"The internal class ``typing._UnionGenericAlias`` is no longer used to " -"implement :class:`typing.Union`. To preserve compatibility with users using " -"this private class, a compatibility shim will be provided until at least " -"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +":meth:`~zipimport.zipimporter.load_module` has been deprecated since Python " +"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (Contributed " +"by Jiahao Li in :gh:`125746`.)" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:132 -msgid "" -":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " -"value that is not ``None`` from a test case." +msgid "Pending removal in Python 3.16" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:135 msgid "" -":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " -"instead" +"Setting :attr:`~module.__loader__` on a module while failing to set :attr:" +"`__spec__.loader ` is deprecated. In " +"Python 3.16, :attr:`!__loader__` will cease to be set or taken into " +"consideration by the import system or the standard library." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:137 -msgid "``splitattr()``" -msgstr "``splitattr()``" - -#: ../../deprecations/pending-removal-in-future.rst:138 -msgid "``splithost()``" -msgstr "``splithost()``" - -#: ../../deprecations/pending-removal-in-future.rst:139 -msgid "``splitnport()``" -msgstr "``splitnport()``" - -#: ../../deprecations/pending-removal-in-future.rst:140 -msgid "``splitpasswd()``" -msgstr "``splitpasswd()``" - -#: ../../deprecations/pending-removal-in-future.rst:141 -msgid "``splitport()``" -msgstr "``splitport()``" - -#: ../../deprecations/pending-removal-in-future.rst:142 -msgid "``splitquery()``" -msgstr "``splitquery()``" - -#: ../../deprecations/pending-removal-in-future.rst:143 -msgid "``splittag()``" -msgstr "``splittag()``" - -#: ../../deprecations/pending-removal-in-future.rst:144 -msgid "``splittype()``" -msgstr "``splittype()``" - -#: ../../deprecations/pending-removal-in-future.rst:145 -msgid "``splituser()``" -msgstr "``splituser()``" +msgid ":mod:`array`:" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:146 -msgid "``splitvalue()``" -msgstr "``splitvalue()``" +msgid "" +"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " +"documentation since Python 3.3 and at runtime since Python 3.13. Use the " +"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:147 -msgid "``to_bytes()``" -msgstr "``to_bytes()``" +msgid ":mod:`builtins`:" +msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:149 msgid "" -":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " -"writes." +"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " +"deprecated since Python 3.12, as it produces surprising and unintuitive " +"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " +"of a Boolean. In the rare case that you need the bitwise inversion of the " +"underlying integer, convert to ``int`` explicitly (``~int(x)``)." msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:152 -msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of " -"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " -"release it will always return ``True``. Prefer explicit ``len(elem)`` or " -"``elem is not None`` tests instead." +msgid ":mod:`functools`:" msgstr "" -#: ../../deprecations/pending-removal-in-future.rst:157 msgid "" -":func:`sys._clear_type_cache` is deprecated: " -"use :func:`sys._clear_internal_caches` instead." +"Calling the Python implementation of :func:`functools.reduce` with " +"*function* or *sequence* as keyword arguments has been deprecated since " +"Python 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:2496 ../../whatsnew/3.14.rst:3144 -msgid "Removed" +msgid ":mod:`logging`:" msgstr "" -#: ../../whatsnew/3.14.rst:2501 msgid "" -"Remove the *type*, *choices*, and *metavar* parameters of :class:`!" -"argparse.BooleanOptionalAction`. They were deprecated since 3.12." +"Support for custom logging handlers with the *strm* argument is deprecated " +"and scheduled for removal in Python 3.16. Define handlers with the *stream* " +"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2505 -msgid "" -"Calling :meth:`~argparse.ArgumentParser.add_argument_group` on an argument " -"group, and calling :meth:`~argparse.ArgumentParser.add_argument_group` " -"or :meth:`~argparse.ArgumentParser.add_mutually_exclusive_group` on a " -"mutually exclusive group now raise exceptions. This nesting was never " -"supported, often failed to work correctly, and was unintentionally exposed " -"through inheritance. This functionality has been deprecated since Python " -"3.11. (Contributed by Savannah Ostrowski in :gh:`127186`.)" +msgid ":mod:`mimetypes`:" msgstr "" -#: ../../whatsnew/3.14.rst:2516 msgid "" -"Remove the following classes. They were all deprecated since Python 3.8, and " -"have emitted deprecation warnings since Python 3.12:" +"Valid extensions start with a '.' or are empty for :meth:`mimetypes." +"MimeTypes.add_type`. Undotted extensions are deprecated and will raise a :" +"exc:`ValueError` in Python 3.16. (Contributed by Hugo van Kemenade in :gh:" +"`75223`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2519 -msgid ":class:`!ast.Bytes`" +msgid ":mod:`shutil`:" msgstr "" -#: ../../whatsnew/3.14.rst:2520 -msgid ":class:`!ast.Ellipsis`" +msgid "" +"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " +"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " +"now an alias of :exc:`RuntimeError`." msgstr "" -#: ../../whatsnew/3.14.rst:2521 -msgid ":class:`!ast.NameConstant`" +msgid ":mod:`symtable`:" msgstr "" -#: ../../whatsnew/3.14.rst:2522 -msgid ":class:`!ast.Num`" +msgid "" +"The :meth:`Class.get_methods ` method has been " +"deprecated since Python 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:2523 -msgid ":class:`!ast.Str`" +msgid ":mod:`sys`:" msgstr "" -#: ../../whatsnew/3.14.rst:2525 msgid "" -"Use :class:`ast.Constant` instead. As a consequence of these removals, user-" -"defined ``visit_Num``, ``visit_Str``, ``visit_Bytes``, " -"``visit_NameConstant`` and ``visit_Ellipsis`` methods on " -"custom :class:`ast.NodeVisitor` subclasses will no longer be called when " -"the :class:`!NodeVisitor` subclass is visiting an AST. Define a " -"``visit_Constant`` method instead." +"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " +"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " +"environment variable instead." msgstr "" -#: ../../whatsnew/3.14.rst:2532 msgid "" -"Also, remove the following deprecated properties on :class:`ast.Constant`, " -"which were present for compatibility with the now-removed AST classes:" +"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " +"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " +"instead." msgstr "" -#: ../../whatsnew/3.14.rst:2535 -msgid ":attr:`!ast.Constant.n`" +msgid ":mod:`tarfile`:" msgstr "" -#: ../../whatsnew/3.14.rst:2536 -msgid ":attr:`!ast.Constant.s`" +msgid "" +"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " +"deprecated since Python 3.13." msgstr "" -#: ../../whatsnew/3.14.rst:2538 -msgid "" -"Use :attr:`!ast.Constant.value` instead. (Contributed by Alex Waygood " -"in :gh:`119562`.)" +msgid "Pending removal in Python 3.17" msgstr "" -#: ../../whatsnew/3.14.rst:2544 msgid "" -"Remove the following classes and functions. They were all deprecated and " -"emitted deprecation warnings since Python 3.12:" +"Before Python 3.14, old-style unions were implemented using the private " +"class ``typing._UnionGenericAlias``. This class is no longer needed for the " +"implementation, but it has been retained for backward compatibility, with " +"removal scheduled for Python 3.17. Users should use documented introspection " +"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " +"of relying on private implementation details." msgstr "" -#: ../../whatsnew/3.14.rst:2547 -msgid ":func:`!asyncio.get_child_watcher`" +msgid "Pending removal in Python 3.19" msgstr "" -#: ../../whatsnew/3.14.rst:2548 -msgid ":func:`!asyncio.set_child_watcher`" +msgid "" +"Implicitly switching to the MSVC-compatible struct layout by setting :attr:" +"`~ctypes.Structure._pack_` but not :attr:`~ctypes.Structure._layout_` on non-" +"Windows platforms." msgstr "" -#: ../../whatsnew/3.14.rst:2549 -msgid ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`" +msgid "Pending removal in future versions" msgstr "" -#: ../../whatsnew/3.14.rst:2550 -msgid ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`" +msgid "" +"The following APIs will be removed in the future, although there is " +"currently no date scheduled for their removal." msgstr "" -#: ../../whatsnew/3.14.rst:2551 -msgid ":class:`!asyncio.AbstractChildWatcher`" +msgid "" +"Nesting argument groups and nesting mutually exclusive groups are deprecated." msgstr "" -#: ../../whatsnew/3.14.rst:2552 -msgid ":class:`!asyncio.FastChildWatcher`" +msgid "" +"Passing the undocumented keyword argument *prefix_chars* to :meth:`~argparse." +"ArgumentParser.add_argument_group` is now deprecated." msgstr "" -#: ../../whatsnew/3.14.rst:2553 -msgid ":class:`!asyncio.MultiLoopChildWatcher`" +msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" -#: ../../whatsnew/3.14.rst:2554 -msgid ":class:`!asyncio.PidfdChildWatcher`" +msgid "``bool(NotImplemented)``." msgstr "" -#: ../../whatsnew/3.14.rst:2555 -msgid ":class:`!asyncio.SafeChildWatcher`" +msgid "" +"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " +"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " +"argument signature." msgstr "" -#: ../../whatsnew/3.14.rst:2556 -msgid ":class:`!asyncio.ThreadedChildWatcher`" +msgid "" +"Currently Python accepts numeric literals immediately followed by keywords, " +"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " +"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " +"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " +"if the numeric literal is immediately followed by one of keywords :keyword:" +"`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :" +"keyword:`is` and :keyword:`or`. In a future release it will be changed to a " +"syntax error. (:gh:`87999`)" msgstr "" -#: ../../whatsnew/3.14.rst:2558 -msgid "(Contributed by Kumar Aditya in :gh:`120804`.)" +msgid "" +"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " +"these methods will be required to return an instance of a strict subclass " +"of :class:`int`." msgstr "" -#: ../../whatsnew/3.14.rst:2560 msgid "" -"Removed implicit creation of event loop by :func:`asyncio.get_event_loop`. " -"It now raises a :exc:`RuntimeError` if there is no current event loop. " -"(Contributed by Kumar Aditya in :gh:`126353`.)" +"Support for ``__float__()`` method returning a strict subclass of :class:" +"`float`: these methods will be required to return an instance of :class:" +"`float`." msgstr "" -#: ../../whatsnew/3.14.rst:2564 msgid "" -"There's a few patterns that use :func:`asyncio.get_event_loop`, most of them " -"can be replaced with :func:`asyncio.run`." +"Support for ``__complex__()`` method returning a strict subclass of :class:" +"`complex`: these methods will be required to return an instance of :class:" +"`complex`." msgstr "" -#: ../../whatsnew/3.14.rst:2567 -msgid "If you're running an async function, simply use :func:`asyncio.run`." +msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: ../../whatsnew/3.14.rst:2569 ../../whatsnew/3.14.rst:2592 -#: ../../whatsnew/3.14.rst:2618 -msgid "Before::" +msgid "" +"Passing a complex number as the *real* or *imag* argument in the :func:" +"`complex` constructor is now deprecated; it should only be passed as a " +"single positional argument. (Contributed by Serhiy Storchaka in :gh:" +"`109218`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2571 msgid "" -"async def main():\n" -" ...\n" -"\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" loop.run_until_complete(main())\n" -"finally:\n" -" loop.close()" +":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " +"are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." +"FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2581 ../../whatsnew/3.14.rst:2604 -#: ../../whatsnew/3.14.rst:2637 -msgid "After::" +msgid "" +":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" +"`133038`)" msgstr "" -#: ../../whatsnew/3.14.rst:2583 msgid "" -"async def main():\n" -" ...\n" -"\n" -"asyncio.run(main())" +":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " +"instead." msgstr "" -#: ../../whatsnew/3.14.rst:2588 -msgid "" -"If you need to start something, for example, a server listening on a socket " -"and then run forever, use :func:`asyncio.run` and an :class:`asyncio.Event`." +msgid ":mod:`datetime`:" msgstr "" -#: ../../whatsnew/3.14.rst:2594 msgid "" -"def start_server(loop):\n" -" ...\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" start_server(loop)\n" -" loop.run_forever()\n" -"finally:\n" -" loop.close()" +":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." +"UTC)``." msgstr "" -#: ../../whatsnew/3.14.rst:2606 msgid "" -"def start_server(loop):\n" -" ...\n" -"\n" -"async def main():\n" -" start_server(asyncio.get_running_loop())\n" -" await asyncio.Event().wait()\n" -"\n" -"asyncio.run(main())" +":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." +"fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: ../../whatsnew/3.14.rst:2615 -msgid "" -"If you need to run something in an event loop, then run some blocking code " -"around it, use :class:`asyncio.Runner`." +msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: ../../whatsnew/3.14.rst:2620 msgid "" -"async def operation_one():\n" -" ...\n" -"\n" -"def blocking_code():\n" -" ...\n" -"\n" -"async def operation_two():\n" -" ...\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" loop.run_until_complete(operation_one())\n" -" blocking_code()\n" -" loop.run_until_complete(operation_two())\n" -"finally:\n" -" loop.close()" +":func:`~importlib.util.cache_from_source` *debug_override* parameter is " +"deprecated: use the *optimization* parameter instead." msgstr "" -#: ../../whatsnew/3.14.rst:2639 -msgid "" -"async def operation_one():\n" -" ...\n" -"\n" -"def blocking_code():\n" -" ...\n" -"\n" -"async def operation_two():\n" -" ...\n" -"\n" -"with asyncio.Runner() as runner:\n" -" runner.run(operation_one())\n" -" blocking_code()\n" -" runner.run(operation_two())" +msgid ":mod:`importlib.metadata`:" msgstr "" -#: ../../whatsnew/3.14.rst:2656 -msgid "collections.abc" +msgid "``EntryPoints`` tuple interface." +msgstr "" + +msgid "Implicit ``None`` on return values." msgstr "" -#: ../../whatsnew/3.14.rst:2658 msgid "" -"Remove :class:`!collections.abc.ByteString`. It had previously raised " -"a :exc:`DeprecationWarning` since Python 3.12." +":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " +"use :meth:`~logging.warning` instead." msgstr "" -#: ../../whatsnew/3.14.rst:2662 -msgid "email" +msgid "" +":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " +"BytesIO and binary mode instead." msgstr "" -#: ../../whatsnew/3.14.rst:2664 msgid "" -"Remove the *isdst* parameter from :func:`email.utils.localtime`. " -"(Contributed by Hugo van Kemenade in :gh:`118798`.)" +":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: ../../whatsnew/3.14.rst:2668 -msgid "importlib" +msgid "" +":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " +"deprecated, use an exception instance." msgstr "" -#: ../../whatsnew/3.14.rst:2670 -msgid "Remove deprecated :mod:`importlib.abc` classes:" +msgid "" +":mod:`re`: More strict rules are now applied for numerical group references " +"and group names in regular expressions. Only sequence of ASCII digits is " +"now accepted as a numerical reference. The group name in bytes patterns and " +"replacement strings can now only contain ASCII letters and digits and " +"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2672 -msgid ":class:`!importlib.abc.ResourceReader`" +msgid "" +":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: ../../whatsnew/3.14.rst:2673 -msgid ":class:`!importlib.abc.Traversable`" +msgid "" +":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " +"Python 3.12; use the *onexc* parameter instead." msgstr "" -#: ../../whatsnew/3.14.rst:2674 -msgid ":class:`!importlib.abc.TraversableResources`" +msgid ":mod:`ssl` options and protocols:" msgstr "" -#: ../../whatsnew/3.14.rst:2676 -msgid "Use :mod:`importlib.resources.abc` classes instead:" +msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: ../../whatsnew/3.14.rst:2678 -msgid ":class:`importlib.resources.abc.Traversable`" +msgid "" +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" +"`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: ../../whatsnew/3.14.rst:2679 -msgid ":class:`importlib.resources.abc.TraversableResources`" +msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: ../../whatsnew/3.14.rst:2681 -msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" +msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: ../../whatsnew/3.14.rst:2684 -msgid "itertools" +msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: ../../whatsnew/3.14.rst:2686 -msgid "" -"Remove :mod:`itertools` support for copy, deepcopy, and pickle operations. " -"These had previously raised a :exc:`DeprecationWarning` since Python 3.12. " -"(Contributed by Raymond Hettinger in :gh:`101588`.)" +msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: ../../whatsnew/3.14.rst:2693 -msgid "" -"Remove support for passing additional keyword arguments " -"to :class:`pathlib.Path`. In previous versions, any such arguments are " -"ignored." +msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: ../../whatsnew/3.14.rst:2695 -msgid "" -"Remove support for passing additional positional arguments " -"to :meth:`pathlib.PurePath.relative_to` " -"and :meth:`~pathlib.PurePath.is_relative_to`. In previous versions, any such " -"arguments are joined onto *other*." +msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: ../../whatsnew/3.14.rst:2701 -msgid "pkgutil" +msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: ../../whatsnew/3.14.rst:2703 -msgid "" -"Remove deprecated :func:`!pkgutil.get_loader` and :func:`!" -"pkgutil.find_loader`. These had previously raised " -"a :exc:`DeprecationWarning` since Python 3.12. (Contributed by Bénédikt Tran " -"in :gh:`97850`.)" +msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: ../../whatsnew/3.14.rst:2708 -msgid "pty" +msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: ../../whatsnew/3.14.rst:2710 -msgid "" -"Remove deprecated :func:`!pty.master_open` and :func:`!pty.slave_open`. They " -"had previously raised a :exc:`DeprecationWarning` since Python 3.12. " -"Use :func:`pty.openpty` instead. (Contributed by Nikita Sobolev " -"in :gh:`118824`.)" +msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: ../../whatsnew/3.14.rst:2716 -msgid "sqlite3" +msgid ":mod:`threading` methods:" msgstr "" -#: ../../whatsnew/3.14.rst:2718 msgid "" -"Remove :data:`!version` and :data:`!version_info` from :mod:`sqlite3`; " -"use :data:`~sqlite3.sqlite_version` and :data:`~sqlite3.sqlite_version_info` " -"for the actual version number of the runtime SQLite library. (Contributed by " -"Hugo van Kemenade in :gh:`118924`.)" +":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." +"notify_all`." +msgstr "" + +msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: ../../whatsnew/3.14.rst:2723 msgid "" -"Disallow using a sequence of parameters with named placeholders. This had " -"previously raised a :exc:`DeprecationWarning` since Python 3.12; it will now " -"raise a :exc:`sqlite3.ProgrammingError`. (Contributed by Erlend E. Aasland " -"in :gh:`118928` and :gh:`101693`.)" +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" +"attr:`threading.Thread.daemon` attribute." msgstr "" -#: ../../whatsnew/3.14.rst:2731 msgid "" -"Remove :class:`!typing.ByteString`. It had previously raised " -"a :exc:`DeprecationWarning` since Python 3.12." +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" +"attr:`threading.Thread.name` attribute." msgstr "" -#: ../../whatsnew/3.14.rst:2734 -msgid ":class:`typing.TypeAliasType` now supports star unpacking." +msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: ../../whatsnew/3.14.rst:2739 -msgid "" -"Remove deprecated :class:`!Quoter` class from :mod:`urllib.parse`. It had " -"previously raised a :exc:`DeprecationWarning` since Python 3.11. " -"(Contributed by Nikita Sobolev in :gh:`118827`.)" +msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: ../../whatsnew/3.14.rst:2742 -msgid "" -"Remove deprecated :class:`!URLopener` and :class:`!FancyURLopener` classes " -"from :mod:`urllib.request`. They had previously raised " -"a :exc:`DeprecationWarning` since Python 3.3." +msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: ../../whatsnew/3.14.rst:2746 msgid "" -"``myopener.open()`` can be replaced with :func:`~urllib.request.urlopen`, " -"and ``myopener.retrieve()`` can be replaced " -"with :func:`~urllib.request.urlretrieve`. Customizations to the opener " -"classes can be replaced by passing customized handlers " -"to :func:`~urllib.request.build_opener`. (Contributed by Barney Gale " -"in :gh:`84850`.)" +"The internal class ``typing._UnionGenericAlias`` is no longer used to " +"implement :class:`typing.Union`. To preserve compatibility with users using " +"this private class, a compatibility shim will be provided until at least " +"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2754 -msgid "Others" +msgid "" +":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " +"value that is not ``None`` from a test case." msgstr "" -#: ../../whatsnew/3.14.rst:2756 msgid "" -"Using :data:`NotImplemented` in a boolean context will now raise " -"a :exc:`TypeError`. It had previously raised a :exc:`DeprecationWarning` " -"since Python 3.9. (Contributed by Jelle Zijlstra in :gh:`118767`.)" +":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " +"instead" msgstr "" -#: ../../whatsnew/3.14.rst:2760 -msgid "" -"The :func:`int` built-in no longer delegates to :meth:`~object.__trunc__`. " -"Classes that want to support conversion to integer must implement " -"either :meth:`~object.__int__` or :meth:`~object.__index__`. (Contributed by " -"Mark Dickinson in :gh:`119743`.)" +msgid "``splitattr()``" msgstr "" -#: ../../whatsnew/3.14.rst:2767 -msgid "CPython bytecode changes" +msgid "``splithost()``" msgstr "" -#: ../../whatsnew/3.14.rst:2769 -msgid "" -"Replaced the opcode ``BINARY_SUBSCR`` by :opcode:`BINARY_OP` with oparg " -"``NB_SUBSCR``. (Contributed by Irit Katriel in :gh:`100239`.)" +msgid "``splitnport()``" msgstr "" -#: ../../whatsnew/3.14.rst:2773 ../../whatsnew/3.14.rst:3002 -msgid "Porting to Python 3.14" +msgid "``splitpasswd()``" msgstr "" -#: ../../whatsnew/3.14.rst:2775 -msgid "" -"This section lists previously described changes and other bugfixes that may " -"require changes to your code." +msgid "``splitport()``" msgstr "" -#: ../../whatsnew/3.14.rst:2779 -msgid "Changes in the Python API" +msgid "``splitquery()``" msgstr "" -#: ../../whatsnew/3.14.rst:2781 -msgid "" -":class:`functools.partial` is now a method descriptor. Wrap it " -"in :func:`staticmethod` if you want to preserve the old behavior. " -"(Contributed by Serhiy Storchaka and Dominykas Grigonis in :gh:`121027`.)" +msgid "``splittag()``" msgstr "" -#: ../../whatsnew/3.14.rst:2785 -msgid "" -"The :ref:`garbage collector is now incremental `, which means that the behavior of :func:`gc.collect` changes slightly:" +msgid "``splittype()``" msgstr "" -#: ../../whatsnew/3.14.rst:2792 -msgid "" -"The :func:`locale.nl_langinfo` function now sets temporarily the " -"``LC_CTYPE`` locale in some cases. This temporary change affects other " -"threads. (Contributed by Serhiy Storchaka in :gh:`69998`.)" +msgid "``splituser()``" msgstr "" -#: ../../whatsnew/3.14.rst:2797 -msgid "" -":class:`types.UnionType` is now an alias for :class:`typing.Union`, causing " -"changes in some behaviors. See :ref:`above ` for " -"more details. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +msgid "``splitvalue()``" msgstr "" -#: ../../whatsnew/3.14.rst:2802 -msgid "" -"The runtime behavior of annotations has changed in various ways; " -"see :ref:`above ` for details. While most code that " -"interacts with annotations should continue to work, some undocumented " -"details may behave differently." +msgid "``to_bytes()``" msgstr "" -#: ../../whatsnew/3.14.rst:2809 -msgid "Build changes" +msgid "" +":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " +"writes." msgstr "" -#: ../../whatsnew/3.14.rst:2811 msgid "" -"GNU Autoconf 2.72 is now required to generate :file:`configure`. " -"(Contributed by Erlend Aasland in :gh:`115765`.)" +":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." +"etree.ElementTree.Element` is deprecated. In a future release it will always " +"return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " +"instead." msgstr "" -#: ../../whatsnew/3.14.rst:2814 msgid "" -"``#pragma``-based linking with ``python3*.lib`` can now be switched off " -"with :c:expr:`Py_NO_LINK_LIB`. (Contributed by Jean-Christophe Fillion-Robin " -"in :gh:`82909`.)" +":func:`sys._clear_type_cache` is deprecated: use :func:`sys." +"_clear_internal_caches` instead." msgstr "" -#: ../../whatsnew/3.14.rst:2821 -msgid "PEP 761: Discontinuation of PGP signatures" +msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.14.rst:2823 msgid "" -"PGP signatures will not be available for CPython 3.14 and onwards. Users " -"verifying artifacts must use `Sigstore verification materials`_ for " -"verifying CPython artifacts. This change in release process is specified " -"in :pep:`761`." +"Replaced the opcode ``BINARY_SUBSCR`` by :opcode:`BINARY_OP` with oparg " +"``NB_SUBSCR``. (Contributed by Irit Katriel in :gh:`100239`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2832 msgid "C API changes" msgstr "" -#: ../../whatsnew/3.14.rst:2837 msgid "" "Add :c:func:`PyLong_GetSign` function to get the sign of :class:`int` " "objects. (Contributed by Sergey B Kirpichev in :gh:`116560`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2840 msgid "" "Add a new :c:type:`PyUnicodeWriter` API to create a Python :class:`str` " "object:" msgstr "" -#: ../../whatsnew/3.14.rst:2843 msgid ":c:func:`PyUnicodeWriter_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2844 msgid ":c:func:`PyUnicodeWriter_DecodeUTF8Stateful`" msgstr "" -#: ../../whatsnew/3.14.rst:2845 msgid ":c:func:`PyUnicodeWriter_Discard`" msgstr "" -#: ../../whatsnew/3.14.rst:2846 msgid ":c:func:`PyUnicodeWriter_Finish`" msgstr "" -#: ../../whatsnew/3.14.rst:2847 msgid ":c:func:`PyUnicodeWriter_Format`" msgstr "" -#: ../../whatsnew/3.14.rst:2848 msgid ":c:func:`PyUnicodeWriter_WriteASCII`" msgstr "" -#: ../../whatsnew/3.14.rst:2849 msgid ":c:func:`PyUnicodeWriter_WriteChar`" msgstr "" -#: ../../whatsnew/3.14.rst:2850 msgid ":c:func:`PyUnicodeWriter_WriteRepr`" msgstr "" -#: ../../whatsnew/3.14.rst:2851 msgid ":c:func:`PyUnicodeWriter_WriteStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2852 msgid ":c:func:`PyUnicodeWriter_WriteSubstring`" msgstr "" -#: ../../whatsnew/3.14.rst:2853 msgid ":c:func:`PyUnicodeWriter_WriteUCS4`" msgstr "" -#: ../../whatsnew/3.14.rst:2854 msgid ":c:func:`PyUnicodeWriter_WriteUTF8`" msgstr "" -#: ../../whatsnew/3.14.rst:2855 msgid ":c:func:`PyUnicodeWriter_WriteWideChar`" msgstr "" -#: ../../whatsnew/3.14.rst:2857 msgid "(Contributed by Victor Stinner in :gh:`119182`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2859 msgid "" "Add :c:func:`PyIter_NextItem` to replace :c:func:`PyIter_Next`, which has an " -"ambiguous return value. (Contributed by Irit Katriel and Erlend Aasland " -"in :gh:`105201`.)" +"ambiguous return value. (Contributed by Irit Katriel and Erlend Aasland in :" +"gh:`105201`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2863 msgid "" -"Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative` " -"and :c:func:`PyLong_IsZero` for checking if :c:type:`PyLongObject` is " -"positive, negative, or zero, respectively. (Contributed by James Roy and " -"Sergey B Kirpichev in :gh:`126061`.)" +"Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative` and :c:func:" +"`PyLong_IsZero` for checking if :c:type:`PyLongObject` is positive, " +"negative, or zero, respectively. (Contributed by James Roy and Sergey B " +"Kirpichev in :gh:`126061`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2868 msgid "" -"Add new functions to convert C ```` numbers from/to " -"Python :class:`int`:" +"Add new functions to convert C ```` numbers from/to Python :class:" +"`int`:" msgstr "" -#: ../../whatsnew/3.14.rst:2871 msgid ":c:func:`PyLong_AsInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2872 msgid ":c:func:`PyLong_AsInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2873 msgid ":c:func:`PyLong_AsUInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2874 msgid ":c:func:`PyLong_AsUInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2875 msgid ":c:func:`PyLong_FromInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2876 msgid ":c:func:`PyLong_FromInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2877 msgid ":c:func:`PyLong_FromUInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2878 msgid ":c:func:`PyLong_FromUInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2880 msgid "(Contributed by Victor Stinner in :gh:`120389`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2882 msgid "" "Add :c:func:`PyBytes_Join(sep, iterable) ` function, similar " -"to ``sep.join(iterable)`` in Python. (Contributed by Victor Stinner " -"in :gh:`121645`.)" +"to ``sep.join(iterable)`` in Python. (Contributed by Victor Stinner in :gh:" +"`121645`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2886 msgid "" "Add :c:func:`Py_HashBuffer` to compute and return the hash value of a " "buffer. (Contributed by Antoine Pitrou and Victor Stinner in :gh:`122854`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2889 msgid "" -"Add functions to get and set the current runtime Python configuration " -"(:pep:`741`):" +"Add functions to get and set the current runtime Python configuration (:pep:" +"`741`):" msgstr "" -#: ../../whatsnew/3.14.rst:2892 msgid ":c:func:`PyConfig_Get`" msgstr "" -#: ../../whatsnew/3.14.rst:2893 msgid ":c:func:`PyConfig_GetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2894 msgid ":c:func:`PyConfig_Set`" msgstr "" -#: ../../whatsnew/3.14.rst:2895 msgid ":c:func:`PyConfig_Names`" msgstr "" -#: ../../whatsnew/3.14.rst:2899 msgid "Add functions to configure the Python initialization (:pep:`741`):" msgstr "" -#: ../../whatsnew/3.14.rst:2901 msgid ":c:func:`Py_InitializeFromInitConfig`" msgstr "" -#: ../../whatsnew/3.14.rst:2902 msgid ":c:func:`PyInitConfig_AddModule`" msgstr "" -#: ../../whatsnew/3.14.rst:2903 msgid ":c:func:`PyInitConfig_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2904 msgid ":c:func:`PyInitConfig_Free`" msgstr "" -#: ../../whatsnew/3.14.rst:2905 msgid ":c:func:`PyInitConfig_FreeStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2906 msgid ":c:func:`PyInitConfig_GetError`" msgstr "" -#: ../../whatsnew/3.14.rst:2907 msgid ":c:func:`PyInitConfig_GetExitCode`" msgstr "" -#: ../../whatsnew/3.14.rst:2908 msgid ":c:func:`PyInitConfig_GetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2909 msgid ":c:func:`PyInitConfig_GetStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2910 msgid ":c:func:`PyInitConfig_GetStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2911 msgid ":c:func:`PyInitConfig_HasOption`" msgstr "" -#: ../../whatsnew/3.14.rst:2912 msgid ":c:func:`PyInitConfig_SetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2913 msgid ":c:func:`PyInitConfig_SetStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2914 msgid ":c:func:`PyInitConfig_SetStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2918 msgid "" "Add a new import and export API for Python :class:`int` objects (:pep:`757`):" msgstr "" -#: ../../whatsnew/3.14.rst:2920 msgid ":c:func:`PyLong_GetNativeLayout`" msgstr "" -#: ../../whatsnew/3.14.rst:2921 msgid ":c:func:`PyLong_Export`" msgstr "" -#: ../../whatsnew/3.14.rst:2922 msgid ":c:func:`PyLong_FreeExport`" msgstr "" -#: ../../whatsnew/3.14.rst:2923 msgid ":c:func:`PyLongWriter_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2924 msgid ":c:func:`PyLongWriter_Finish`" msgstr "" -#: ../../whatsnew/3.14.rst:2925 msgid ":c:func:`PyLongWriter_Discard`" msgstr "" -#: ../../whatsnew/3.14.rst:2927 msgid "(Contributed by Sergey B Kirpichev and Victor Stinner in :gh:`102471`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2929 msgid "" "Add :c:func:`PyType_GetBaseByToken` and :c:data:`Py_tp_token` slot for " "easier superclass identification, which attempts to resolve the `type " @@ -5242,33 +4264,27 @@ msgid "" "mentioned in :pep:`630`. (Contributed in :gh:`124153`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2934 msgid "" "Add :c:func:`PyUnicode_Equal` function to the limited C API: test if two " "strings are equal. (Contributed by Victor Stinner in :gh:`124502`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2938 msgid "" "Add :c:func:`PyType_Freeze` function to make a type immutable. (Contributed " "by Victor Stinner in :gh:`121654`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2941 msgid "" "Add :c:func:`PyUnstable_Object_EnableDeferredRefcount` for enabling deferred " "reference counting, as outlined in :pep:`703`." msgstr "" -#: ../../whatsnew/3.14.rst:2944 msgid "" -"Add :c:func:`PyMonitoring_FireBranchLeftEvent` " -"and :c:func:`PyMonitoring_FireBranchRightEvent` for generating :monitoring-" -"event:`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events, " -"respectively." +"Add :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:func:" +"`PyMonitoring_FireBranchRightEvent` for generating :monitoring-event:" +"`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events, respectively." msgstr "" -#: ../../whatsnew/3.14.rst:2949 msgid "" "Add :c:func:`Py_fopen` function to open a file. Similar to the :c:func:`!" "fopen` function, but the *path* parameter is a Python object and an " @@ -5276,793 +4292,760 @@ msgid "" "file. (Contributed by Victor Stinner in :gh:`127350`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2955 msgid "" "The ``k`` and ``K`` formats in :c:func:`PyArg_ParseTuple` and similar " "functions now use :meth:`~object.__index__` if available, like all other " "integer formats. (Contributed by Serhiy Storchaka in :gh:`112068`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2960 msgid "" "Add macros :c:func:`Py_PACK_VERSION` and :c:func:`Py_PACK_FULL_VERSION` for " -"bit-packing Python version numbers. (Contributed by Petr Viktorin " -"in :gh:`128629`.)" +"bit-packing Python version numbers. (Contributed by Petr Viktorin in :gh:" +"`128629`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2964 msgid "" -"Add :c:func:`PyUnstable_IsImmortal` for determining whether an object " -"is :term:`immortal`, for debugging purposes." +"Add :c:func:`PyUnstable_IsImmortal` for determining whether an object is :" +"term:`immortal`, for debugging purposes." msgstr "" -#: ../../whatsnew/3.14.rst:2967 msgid "" -"Add :c:func:`PyImport_ImportModuleAttr` " -"and :c:func:`PyImport_ImportModuleAttrString` helper functions to import a " -"module and get an attribute of the module. (Contributed by Victor Stinner " -"in :gh:`128911`.)" +"Add :c:func:`PyImport_ImportModuleAttr` and :c:func:" +"`PyImport_ImportModuleAttrString` helper functions to import a module and " +"get an attribute of the module. (Contributed by Victor Stinner in :gh:" +"`128911`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2972 msgid "" "Add support for a new ``p`` format unit in :c:func:`Py_BuildValue` that " -"allows to take a C integer and produce a Python :class:`bool` object. " +"allows taking a C integer and produces a Python :class:`bool` object. " "(Contributed by Pablo Galindo in :issue:`45325`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2976 msgid "" "Add :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary` to determine if " "an object is a unique temporary object on the interpreter's operand stack. " -"This can be used in some cases as a replacement for checking " -"if :c:func:`Py_REFCNT` is ``1`` for Python objects passed as arguments to C " -"API functions." +"This can be used in some cases as a replacement for checking if :c:func:" +"`Py_REFCNT` is ``1`` for Python objects passed as arguments to C API " +"functions." msgstr "" -#: ../../whatsnew/3.14.rst:2981 msgid "" "Add :c:func:`PyUnstable_Object_IsUniquelyReferenced` as a replacement for " "``Py_REFCNT(op) == 1`` on :term:`free threaded ` builds. " "(Contributed by Peter Bierma in :gh:`133140`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2987 msgid "Limited C API changes" msgstr "" -#: ../../whatsnew/3.14.rst:2989 msgid "" -"In the limited C API 3.14 and newer, :c:func:`Py_TYPE` " -"and :c:func:`Py_REFCNT` are now implemented as an opaque function call to " -"hide implementation details. (Contributed by Victor Stinner in :gh:`120600` " -"and :gh:`124127`.)" +"In the limited C API 3.14 and newer, :c:func:`Py_TYPE` and :c:func:" +"`Py_REFCNT` are now implemented as an opaque function call to hide " +"implementation details. (Contributed by Victor Stinner in :gh:`120600` and :" +"gh:`124127`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2994 msgid "" -"Remove " -"the :c:macro:`PySequence_Fast_GET_SIZE`, :c:macro:`PySequence_Fast_GET_ITEM` " -"and :c:macro:`PySequence_Fast_ITEMS` macros from the limited C API, since " -"these macros never worked in the limited C API. " +"Remove the :c:macro:`PySequence_Fast_GET_SIZE`, :c:macro:" +"`PySequence_Fast_GET_ITEM` and :c:macro:`PySequence_Fast_ITEMS` macros from " +"the limited C API, since these macros never worked in the limited C API. " "Keep :c:func:`PySequence_Fast` in the limited C API. (Contributed by Victor " "Stinner in :gh:`91417`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3004 -msgid "" -":c:func:`Py_Finalize` now deletes all interned strings. This is backwards " -"incompatible to any C-Extension that holds onto an interned string after a " -"call to :c:func:`Py_Finalize` and is then reused after a call " -"to :c:func:`Py_Initialize`. Any issues arising from this behavior will " -"normally result in crashes during the execution of the subsequent call " -"to :c:func:`Py_Initialize` from accessing uninitialized memory. To fix, use " -"an address sanitizer to identify any use-after-free coming from an interned " -"string and deallocate it during module shutdown. (Contributed by Eddie " -"Elizondo in :gh:`113601`.)" -msgstr "" - -#: ../../whatsnew/3.14.rst:3014 -msgid "" -"The :ref:`Unicode Exception Objects ` C API now raises " -"a :exc:`TypeError` if its exception argument is not a :exc:`UnicodeError` " -"object. (Contributed by Bénédikt Tran in :gh:`127691`.)" -msgstr "" - -#: ../../whatsnew/3.14.rst:3021 -msgid "" -"The interpreter internally avoids some reference count modifications when " -"loading objects onto the operands stack by :term:`borrowing ` references when possible. This can lead to smaller reference " -"count values compared to previous Python versions. C API extensions that " -"checked :c:func:`Py_REFCNT` of ``1`` to determine if an function argument is " -"not referenced by any other code should instead " -"use :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary` as a safer " -"replacement." -msgstr "" - -#: ../../whatsnew/3.14.rst:3030 -msgid "Private functions promoted to public C APIs:" -msgstr "" - -#: ../../whatsnew/3.14.rst:3032 -msgid "``_PyBytes_Join()``: :c:func:`PyBytes_Join`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3033 -msgid "``_PyLong_IsNegative()``: :c:func:`PyLong_IsNegative`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3034 -msgid "``_PyLong_IsPositive()``: :c:func:`PyLong_IsPositive`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3035 -msgid "``_PyLong_IsZero()``: :c:func:`PyLong_IsZero`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3036 -msgid "``_PyLong_Sign()``: :c:func:`PyLong_GetSign`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3037 -msgid "``_PyMutex_IsLocked()`` : :c:func:`PyMutex_IsLocked`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3038 -msgid "``_PyUnicodeWriter_Dealloc()``: :c:func:`PyUnicodeWriter_Discard`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3039 -msgid "``_PyUnicodeWriter_Finish()``: :c:func:`PyUnicodeWriter_Finish`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3040 -msgid "``_PyUnicodeWriter_Init()``: use :c:func:`PyUnicodeWriter_Create`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3041 -msgid "``_PyUnicodeWriter_Prepare()``: (no replacement)" -msgstr "" - -#: ../../whatsnew/3.14.rst:3042 -msgid "``_PyUnicodeWriter_PrepareKind()``: (no replacement)" -msgstr "" - -#: ../../whatsnew/3.14.rst:3043 -msgid "``_PyUnicodeWriter_WriteChar()``: :c:func:`PyUnicodeWriter_WriteChar`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3044 -msgid "``_PyUnicodeWriter_WriteStr()``: :c:func:`PyUnicodeWriter_WriteStr`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3045 -msgid "``_PyUnicodeWriter_WriteSubstring()``: :c:func:`PyUnicodeWriter_WriteSubstring`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3046 -msgid "``_PyUnicode_EQ()``: :c:func:`PyUnicode_Equal`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3047 -msgid "``_PyUnicode_Equal()``: :c:func:`PyUnicode_Equal`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3048 -msgid "" -"``_Py_GetConfig()``: :c:func:`PyConfig_Get` and :c:func:`PyConfig_GetInt`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3049 -msgid "``_Py_HashBytes()``: :c:func:`Py_HashBuffer`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3050 -msgid "``_Py_fopen_obj()``: :c:func:`Py_fopen`" -msgstr "" - -#: ../../whatsnew/3.14.rst:3052 -msgid "" -"The `pythoncapi-compat project`_ can be used to get most of these new " -"functions on Python 3.13 and older." -msgstr "" - -#: ../../whatsnew/3.14.rst:3063 msgid "" "The :c:macro:`!Py_HUGE_VAL` macro is :term:`soft deprecated`, use :c:macro:`!" "Py_INFINITY` instead. (Contributed by Sergey B Kirpichev in :gh:`120026`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3067 msgid "" "Macros :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY` and :c:macro:`!" -"Py_IS_FINITE` are :term:`soft deprecated`, use instead :c:macro:`!" -"isnan`, :c:macro:`!isinf` and :c:macro:`!isfinite` available " -"from :file:`math.h` since C99. (Contributed by Sergey B Kirpichev " -"in :gh:`119613`.)" +"Py_IS_FINITE` are :term:`soft deprecated`, use instead :c:macro:`!isnan`, :c:" +"macro:`!isinf` and :c:macro:`!isfinite` available from :file:`math.h` since " +"C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3073 msgid "" "Non-tuple sequences are deprecated as argument for the ``(items)`` format " "unit in :c:func:`PyArg_ParseTuple` and other :ref:`argument parsing ` functions if *items* contains format units which store " -"a :ref:`borrowed buffer ` or a :term:`borrowed " -"reference`. (Contributed by Serhiy Storchaka in :gh:`50333`.)" +"parsing>` functions if *items* contains format units which store a :ref:" +"`borrowed buffer ` or a :term:`borrowed reference`. " +"(Contributed by Serhiy Storchaka in :gh:`50333`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3080 msgid "" "The previously undocumented function :c:func:`PySequence_In` is :term:`soft " "deprecated`. Use :c:func:`PySequence_Contains` instead. (Contributed by Yuki " "Kobayashi in :gh:`127896`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3086 msgid "" "The ``PyMonitoring_FireBranchEvent`` function is deprecated and should be " -"replaced with calls to :c:func:`PyMonitoring_FireBranchLeftEvent` " -"and :c:func:`PyMonitoring_FireBranchRightEvent`." +"replaced with calls to :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:" +"func:`PyMonitoring_FireBranchRightEvent`." msgstr "" -#: ../../whatsnew/3.14.rst:3090 msgid "" "The following private functions are deprecated and planned for removal in " "Python 3.18:" msgstr "" -#: ../../whatsnew/3.14.rst:3093 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:6 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: ../../whatsnew/3.14.rst:3094 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:7 msgid "" -":c:func:`!_PyDict_GetItemStringWithError`: " -"use :c:func:`PyDict_GetItemStringRef`." +":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" +"`PyDict_GetItemStringRef`." msgstr "" -#: ../../whatsnew/3.14.rst:3095 msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." msgstr "" -#: ../../whatsnew/3.14.rst:3096 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:9 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: ../../whatsnew/3.14.rst:3097 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:10 msgid "" -":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " -"use :c:func:`PyLongWriter_Create`." +":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" +"`PyLongWriter_Create`." msgstr "" -#: ../../whatsnew/3.14.rst:3099 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:12 msgid "" -":c:func:`!_PyThreadState_UncheckedGet`: " -"use :c:func:`PyThreadState_GetUnchecked`." +":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" +"`PyThreadState_GetUnchecked`." msgstr "" -#: ../../whatsnew/3.14.rst:3100 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:13 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: ../../whatsnew/3.14.rst:3101 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:14 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: ../../whatsnew/3.14.rst:3104 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:17 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " -"``_PyUnicodeWriter_Finish(&writer)`` " -"with :c:func:`PyUnicodeWriter_Finish(writer) `." +"``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" +"`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: ../../whatsnew/3.14.rst:3107 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:20 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " -"``_PyUnicodeWriter_Dealloc(&writer)`` " -"with :c:func:`PyUnicodeWriter_Discard(writer) `." +"``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" +"`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: ../../whatsnew/3.14.rst:3110 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:23 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " -"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " -"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " -"`." +"``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" +"`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: ../../whatsnew/3.14.rst:3113 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:26 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " -"``_PyUnicodeWriter_WriteStr(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " -"`." +"``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: ../../whatsnew/3.14.rst:3116 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:29 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " -"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " -"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " +"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" +"`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " "`." msgstr "" -#: ../../whatsnew/3.14.rst:3119 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteASCII(writer, str) " -"`." +"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteASCII(writer, str) `." msgstr "" -#: ../../whatsnew/3.14.rst:3122 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:35 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " -"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." +"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: ../../whatsnew/3.14.rst:3125 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:40 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: ../../whatsnew/3.14.rst:3126 -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: ../../whatsnew/3.14.rst:3128 msgid "" "The `pythoncapi-compat project`_ can be used to get these new public " -"functions on Python 3.13 and older. (Contributed by Victor Stinner " -"in :gh:`128863`.)" +"functions on Python 3.13 and older. (Contributed by Victor Stinner in :gh:" +"`128863`.)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:4 msgid "" -"The :c:func:`PyImport_ImportModuleNoBlock`: " -"Use :c:func:`PyImport_ImportModule` instead." +"The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" +"`PyImport_ImportModule` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" -":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: " -"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " -"`__ can be used to " -"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" +"func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project `__ can be used to get :c:func:" +"`PyWeakref_GetRef` on Python 3.12 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "" -":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: " -"Use :c:type:`wchar_t` instead." +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" +"type:`wchar_t` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`str`, such as :class:`bytes`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:17 msgid "" ":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:19 msgid "" ":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " "Note that some codecs (for example, \"base64\") may return a type other " "than :class:`bytes`, such as :class:`str`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:22 msgid "Python initialization functions, deprecated in Python 3.13:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " "` (:data:`sys.path`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " -"if :ref:`virtual environments ` need to be handled." +"` (:data:`sys.base_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) if :ref:" +"`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " -"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " -"be handled." +"` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"exec_prefix\") ` (:data:`sys.exec_prefix`) if :" +"ref:`virtual environments ` need to be handled." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " -"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" +"`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " -"or :c:func:`PyConfig_Get(\"verbose\") ` instead." +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" +"`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " -"or :c:func:`PyConfig_Get(\"quiet\") ` instead." +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" +"`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " -"or :c:func:`PyConfig_Get(\"interactive\") ` instead." +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" +"`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " -"or :c:func:`PyConfig_Get(\"inspect\") ` instead." +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" +"`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " -"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" +"func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " -"or :c:func:`PyConfig_Get(\"site_import\") ` instead." +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" +"`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " -"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" +"func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " -"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" +"func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" -":c:var:`Py_NoUserSiteDirectory`: " -"Use :c:member:`PyConfig.user_site_directory` " -"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." +":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." +"user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " -"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" +"c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " -"or :c:func:`PyConfig_Get(\"isolated\") ` instead." +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" +"`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " -"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " -"instead." +":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding` or :c:func:" +"`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"Use :c:member:`PyConfig.legacy_windows_stdio` " -"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." +":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." +"legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: " -"Use :c:member:`PyConfig.filesystem_encoding` " -"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." +"Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." +"filesystem_encoding` or :c:func:`PyConfig_Get(\"filesystem_encoding\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"Use :c:member:`PyConfig.filesystem_errors` " -"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." +":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." +"filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " +"` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " -"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " -"(see :c:func:`Py_PreInitialize`)" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" +"`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" +"`Py_PreInitialize`)" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " -"be used to get these options at runtime." +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " +"get these options at runtime." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.16.rst:4 msgid "The bundled copy of ``libmpdec``." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:2 msgid "Pending removal in Python 3.18" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:4 msgid "Deprecated private functions (:gh:`128863`):" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:8 msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:32 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." +"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" +"`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:38 msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:39 msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-3.18.rst:43 msgid "" "The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:4 msgid "" "The following APIs are deprecated and will be removed, although there is " "currently no date scheduled for their removal." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:7 msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:9 msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:11 msgid "" ":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:13 msgid "" ":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:15 msgid "" ":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:17 msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:19 msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` instead." +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:21 msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:23 msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:25 msgid "" ":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:27 msgid "" ":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:29 msgid "Thread Local Storage (TLS) API:" msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:31 msgid "" ":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:33 msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:35 msgid "" ":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:37 msgid "" ":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:39 msgid "" ":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " "instead." msgstr "" -#: ../../deprecations/c-api-pending-removal-in-future.rst:41 msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: ../../whatsnew/3.14.rst:3146 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases was deprecated since 3.12 and now raises a :exc:`TypeError`." msgstr "" -#: ../../whatsnew/3.14.rst:3149 msgid "" "Remove ``PyDictObject.ma_version_tag`` member which was deprecated since " "Python 3.12. Use the :c:func:`PyDict_AddWatcher` API instead. (Contributed " "by Sam Gross in :gh:`124296`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3153 msgid "" -"Remove the private ``_Py_InitializeMain()`` function. It was " -"a :term:`provisional API` added to Python 3.8 by :pep:`587`. (Contributed by " -"Victor Stinner in :gh:`129033`.)" +"Remove the private ``_Py_InitializeMain()`` function. It was a :term:" +"`provisional API` added to Python 3.8 by :pep:`587`. (Contributed by Victor " +"Stinner in :gh:`129033`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3157 msgid "" "The undocumented APIs :c:macro:`!Py_C_RECURSION_LIMIT` and :c:member:`!" "PyThreadState.c_recursion_remaining`, added in 3.13, are removed without a " "deprecation period. Please use :c:func:`Py_EnterRecursiveCall` to guard " -"against runaway recursion in C code. (Removed in :gh:`133079`, see " -"also :gh:`130396`.)" +"against runaway recursion in C code. (Removed in :gh:`133079`, see also :gh:" +"`130396`.)" +msgstr "" + +msgid "Build Changes" +msgstr "" + +msgid "" +"GNU Autoconf 2.72 is now required to generate :file:`configure`. " +"(Contributed by Erlend Aasland in :gh:`115765`.)" +msgstr "" + +msgid "" +"``wasm32-unknown-emscripten`` is now a :pep:`11` tier 3 platform. " +"(Contributed by R. Hood Chatham in :gh:`127146`, :gh:`127683`, and :gh:" +"`136931`.)" +msgstr "" + +msgid "" +"``#pragma``-based linking with ``python3*.lib`` can now be switched off " +"with :c:expr:`Py_NO_LINK_LIB`. (Contributed by Jean-Christophe Fillion-Robin " +"in :gh:`82909`.)" +msgstr "" + +msgid "" +"CPython now enables a set of recommended compiler options by default for " +"improved security. Use the :option:`--disable-safety` :file:`configure` " +"option to disable them, or the :option:`--enable-slower-safety` option for a " +"larger set of compiler options, albeit with a performance cost." +msgstr "" + +msgid "" +"The ``WITH_FREELISTS`` macro and ``--without-freelists`` :file:`configure` " +"option have been removed." +msgstr "" + +msgid "" +"The new :file:`configure` option :option:`--with-tail-call-interp` may be " +"used to enable the experimental tail call interpreter. See :ref:`whatsnew314-" +"tail-call` for further details." +msgstr "" + +msgid "" +"To disable the new remote debugging support, use the :option:`--without-" +"remote-debug` :file:`configure` option. This may be useful for security " +"reasons." +msgstr "" + +msgid ":file:`build-details.json`" +msgstr "" + +msgid "" +"Installations of Python now contain a new file, :file:`build-details.json`. " +"This is a static JSON document containing build details for CPython, to " +"allow for introspection without needing to run code. This is helpful for use-" +"cases such as Python launchers, cross-compilation, and so on." +msgstr "" + +msgid "" +":file:`build-details.json` must be installed in the platform-independent " +"standard library directory. This corresponds to the :ref:`'stdlib' " +"` :mod:`sysconfig` installation path, which can be found " +"by running ``sysconfig.get_path('stdlib')``." +msgstr "" + +msgid "" +":pep:`739` -- ``build-details.json`` 1.0 -- a static description file for " +"Python build details" +msgstr "" + +msgid "Discontinuation of PGP signatures" +msgstr "" + +msgid "" +"PGP (Pretty Good Privacy) signatures will not be provided for releases of " +"Python 3.14 or future versions. To verify CPython artifacts, users must use " +"`Sigstore verification materials `__. Releases have been signed using Sigstore_ since Python 3.11." +msgstr "" + +msgid "This change in release process was specified in :pep:`761`." +msgstr "" + +msgid "Porting to Python 3.14" +msgstr "" + +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +msgid "Changes in the Python API" +msgstr "" + +msgid "" +":class:`functools.partial` is now a method descriptor. Wrap it in :func:" +"`staticmethod` if you want to preserve the old behavior. (Contributed by " +"Serhiy Storchaka and Dominykas Grigonis in :gh:`121027`.)" +msgstr "" + +msgid "" +"The :ref:`garbage collector is now incremental `, which means that the behavior of :func:`gc.collect` changes slightly:" +msgstr "" + +msgid "" +"The :func:`locale.nl_langinfo` function now temporarily sets the " +"``LC_CTYPE`` locale in some cases. This temporary change affects other " +"threads. (Contributed by Serhiy Storchaka in :gh:`69998`.)" +msgstr "" + +msgid "" +":class:`types.UnionType` is now an alias for :class:`typing.Union`, causing " +"changes in some behaviors. See :ref:`above ` for " +"more details. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +msgstr "" + +msgid "" +"The runtime behavior of annotations has changed in various ways; see :ref:" +"`above ` for details. While most code that interacts " +"with annotations should continue to work, some undocumented details may " +"behave differently." +msgstr "" + +msgid "Changes in the C API" +msgstr "" + +msgid "" +":c:func:`Py_Finalize` now deletes all interned strings. This is backwards " +"incompatible to any C extension that holds onto an interned string after a " +"call to :c:func:`Py_Finalize` and is then reused after a call to :c:func:" +"`Py_Initialize`. Any issues arising from this behavior will normally result " +"in crashes during the execution of the subsequent call to :c:func:" +"`Py_Initialize` from accessing uninitialized memory. To fix, use an address " +"sanitizer to identify any use-after-free coming from an interned string and " +"deallocate it during module shutdown. (Contributed by Eddie Elizondo in :gh:" +"`113601`.)" +msgstr "" + +msgid "" +"The :ref:`Unicode Exception Objects ` C API now raises a :" +"exc:`TypeError` if its exception argument is not a :exc:`UnicodeError` " +"object. (Contributed by Bénédikt Tran in :gh:`127691`.)" +msgstr "" + +msgid "" +"The interpreter internally avoids some reference count modifications when " +"loading objects onto the operands stack by :term:`borrowing ` references when possible. This can lead to smaller reference " +"count values compared to previous Python versions. C API extensions that " +"checked :c:func:`Py_REFCNT` of ``1`` to determine if an function argument is " +"not referenced by any other code should instead use :c:func:" +"`PyUnstable_Object_IsUniqueReferencedTemporary` as a safer replacement." +msgstr "" + +msgid "Private functions promoted to public C APIs:" +msgstr "" + +msgid "``_PyBytes_Join()``: :c:func:`PyBytes_Join`" +msgstr "" + +msgid "``_PyLong_IsNegative()``: :c:func:`PyLong_IsNegative`" +msgstr "" + +msgid "``_PyLong_IsPositive()``: :c:func:`PyLong_IsPositive`" +msgstr "" + +msgid "``_PyLong_IsZero()``: :c:func:`PyLong_IsZero`" +msgstr "" + +msgid "``_PyLong_Sign()``: :c:func:`PyLong_GetSign`" +msgstr "" + +msgid "``_PyUnicodeWriter_Dealloc()``: :c:func:`PyUnicodeWriter_Discard`" +msgstr "" + +msgid "``_PyUnicodeWriter_Finish()``: :c:func:`PyUnicodeWriter_Finish`" +msgstr "" + +msgid "``_PyUnicodeWriter_Init()``: use :c:func:`PyUnicodeWriter_Create`" +msgstr "" + +msgid "``_PyUnicodeWriter_Prepare()``: (no replacement)" +msgstr "" + +msgid "``_PyUnicodeWriter_PrepareKind()``: (no replacement)" +msgstr "" + +msgid "``_PyUnicodeWriter_WriteChar()``: :c:func:`PyUnicodeWriter_WriteChar`" +msgstr "" + +msgid "``_PyUnicodeWriter_WriteStr()``: :c:func:`PyUnicodeWriter_WriteStr`" +msgstr "" + +msgid "" +"``_PyUnicodeWriter_WriteSubstring()``: :c:func:" +"`PyUnicodeWriter_WriteSubstring`" +msgstr "" + +msgid "``_PyUnicode_EQ()``: :c:func:`PyUnicode_Equal`" +msgstr "" + +msgid "``_PyUnicode_Equal()``: :c:func:`PyUnicode_Equal`" +msgstr "" + +msgid "" +"``_Py_GetConfig()``: :c:func:`PyConfig_Get` and :c:func:`PyConfig_GetInt`" +msgstr "" + +msgid "``_Py_HashBytes()``: :c:func:`Py_HashBuffer`" +msgstr "" + +msgid "``_Py_fopen_obj()``: :c:func:`Py_fopen`" +msgstr "" + +msgid "``PyMutex_IsLocked()`` : :c:func:`PyMutex_IsLocked`" +msgstr "" + +msgid "" +"The `pythoncapi-compat project`_ can be used to get most of these new " +"functions on Python 3.13 and older." msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 06514af..800cd90 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,19 +22,15 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.2.rst:3 msgid "What's New In Python 3.2" msgstr "" -#: ../../whatsnew/3.2.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/3.2.rst:5 msgid "Raymond Hettinger" msgstr "" -#: ../../whatsnew/3.2.rst:51 msgid "" "This article explains the new features in Python 3.2 as compared to 3.1. " "Python 3.2 was released on February 20, 2011. It focuses on a few highlights " @@ -43,15 +39,12 @@ msgid "" "NEWS>`__ file." msgstr "" -#: ../../whatsnew/3.2.rst:60 msgid ":pep:`392` - Python 3.2 Release Schedule" msgstr "" -#: ../../whatsnew/3.2.rst:64 msgid "PEP 384: Defining a Stable ABI" msgstr "" -#: ../../whatsnew/3.2.rst:66 msgid "" "In the past, extension modules built for one Python version were often not " "usable with other Python versions. Particularly on Windows, every feature " @@ -60,7 +53,6 @@ msgid "" "interpreter internals that extension modules could use." msgstr "" -#: ../../whatsnew/3.2.rst:72 msgid "" "With Python 3.2, an alternative approach becomes available: extension " "modules which restrict themselves to a limited API (by defining " @@ -72,19 +64,15 @@ msgid "" "every feature release." msgstr "" -#: ../../whatsnew/3.2.rst:83 msgid ":pep:`384` - Defining a Stable ABI" msgstr "" -#: ../../whatsnew/3.2.rst:84 msgid "PEP written by Martin von Löwis." msgstr "" -#: ../../whatsnew/3.2.rst:88 msgid "PEP 389: Argparse Command Line Parsing Module" msgstr "" -#: ../../whatsnew/3.2.rst:90 msgid "" "A new module for command line parsing, :mod:`argparse`, was introduced to " "overcome the limitations of :mod:`optparse` which did not provide support " @@ -92,23 +80,20 @@ msgid "" "and other common patterns of specifying and validating options." msgstr "" -#: ../../whatsnew/3.2.rst:95 msgid "" "This module has already had widespread success in the community as a third-" -"party module. Being more fully featured than its predecessor, " -"the :mod:`argparse` module is now the preferred module for command-line " -"processing. The older module is still being kept available because of the " -"substantial amount of legacy code that depends on it." +"party module. Being more fully featured than its predecessor, the :mod:" +"`argparse` module is now the preferred module for command-line processing. " +"The older module is still being kept available because of the substantial " +"amount of legacy code that depends on it." msgstr "" -#: ../../whatsnew/3.2.rst:101 msgid "" "Here's an annotated example parser showing features like limiting results to " "a set of choices, specifying a *metavar* in the help screen, validating that " "one or more positional arguments is present, and making a required option::" msgstr "" -#: ../../whatsnew/3.2.rst:105 msgid "" "import argparse\n" "parser = argparse.ArgumentParser(\n" @@ -130,11 +115,9 @@ msgid "" " help = 'login as user')" msgstr "" -#: ../../whatsnew/3.2.rst:120 msgid "Example of calling the parser on a command string::" msgstr "" -#: ../../whatsnew/3.2.rst:122 msgid "" ">>> cmd = 'deploy sneezy.example.com sleepy.example.com -u skycaptain'\n" ">>> result = parser.parse_args(cmd.split())\n" @@ -146,11 +129,9 @@ msgid "" "'skycaptain'" msgstr "" -#: ../../whatsnew/3.2.rst:131 msgid "Example of the parser's automatically generated help::" msgstr "" -#: ../../whatsnew/3.2.rst:133 msgid "" ">>> parser.parse_args('-h'.split())\n" "\n" @@ -170,13 +151,11 @@ msgid "" "Tested on Solaris and Linux" msgstr "" -#: ../../whatsnew/3.2.rst:150 msgid "" "An especially nice :mod:`argparse` feature is the ability to define " "subparsers, each with their own argument patterns and help displays::" msgstr "" -#: ../../whatsnew/3.2.rst:153 msgid "" "import argparse\n" "parser = argparse.ArgumentParser(prog='HELM')\n" @@ -195,7 +174,6 @@ msgid "" "parser_m.add_argument('-s', '--speed', type=int, default=0)" msgstr "" -#: ../../whatsnew/3.2.rst:166 msgid "" "$ ./helm.py --help # top level help (launch and " "move)\n" @@ -205,25 +183,20 @@ msgid "" "$ ./helm.py steer --course 180 --speed 5 # set movement parameters" msgstr "" -#: ../../whatsnew/3.2.rst:175 msgid ":pep:`389` - New Command Line Parsing Module" msgstr "" -#: ../../whatsnew/3.2.rst:176 msgid "PEP written by Steven Bethard." msgstr "" -#: ../../whatsnew/3.2.rst:178 msgid "" -":ref:`upgrading-optparse-code` for details on the differences " -"from :mod:`optparse`." +":ref:`upgrading-optparse-code` for details on the differences from :mod:" +"`optparse`." msgstr "" -#: ../../whatsnew/3.2.rst:182 msgid "PEP 391: Dictionary Based Configuration for Logging" msgstr "" -#: ../../whatsnew/3.2.rst:184 msgid "" "The :mod:`logging` module provided two kinds of configuration, one style " "with function calls for each option or another style driven by an external " @@ -233,22 +206,20 @@ msgid "" "logger options from a command line." msgstr "" -#: ../../whatsnew/3.2.rst:191 msgid "" -"To support a more flexible style, the module now " -"offers :func:`logging.config.dictConfig` for specifying logging " -"configuration with plain Python dictionaries. The configuration options " -"include formatters, handlers, filters, and loggers. Here's a working " -"example of a configuration dictionary::" +"To support a more flexible style, the module now offers :func:`logging." +"config.dictConfig` for specifying logging configuration with plain Python " +"dictionaries. The configuration options include formatters, handlers, " +"filters, and loggers. Here's a working example of a configuration " +"dictionary::" msgstr "" -#: ../../whatsnew/3.2.rst:197 msgid "" "{\"version\": 1,\n" -" \"formatters\": {\"brief\": {\"format\": \"%(levelname)-8s: %(name)-15s: %" -"(message)s\"},\n" -" \"full\": {\"format\": \"%(asctime)s %(name)-15s %" -"(levelname)-8s %(message)s\"}\n" +" \"formatters\": {\"brief\": {\"format\": \"%(levelname)-8s: %(name)-15s: " +"%(message)s\"},\n" +" \"full\": {\"format\": \"%(asctime)s %(name)-15s " +"%(levelname)-8s %(message)s\"}\n" " },\n" " \"handlers\": {\"console\": {\n" " \"class\": \"logging.StreamHandler\",\n" @@ -265,13 +236,11 @@ msgid "" "\"console_priority\"]}}" msgstr "" -#: ../../whatsnew/3.2.rst:215 msgid "" "If that dictionary is stored in a file called :file:`conf.json`, it can be " "loaded and called with code like this::" msgstr "" -#: ../../whatsnew/3.2.rst:218 msgid "" ">>> import json, logging.config\n" ">>> with open('conf.json') as f:\n" @@ -284,19 +253,15 @@ msgid "" "2011-02-17 11:14:36,694 root CRITICAL Abnormal termination" msgstr "" -#: ../../whatsnew/3.2.rst:230 msgid ":pep:`391` - Dictionary Based Configuration for Logging" msgstr "" -#: ../../whatsnew/3.2.rst:231 msgid "PEP written by Vinay Sajip." msgstr "" -#: ../../whatsnew/3.2.rst:235 msgid "PEP 3148: The ``concurrent.futures`` module" msgstr "" -#: ../../whatsnew/3.2.rst:237 msgid "" "Code for creating and managing concurrency is being collected in a new top-" "level namespace, *concurrent*. Its first member is a *futures* package " @@ -304,17 +269,15 @@ msgid "" "processes." msgstr "" -#: ../../whatsnew/3.2.rst:241 msgid "" -"The design for :mod:`concurrent.futures` was inspired by the " -"*java.util.concurrent* package. In that model, a running call and its " -"result are represented by a :class:`~concurrent.futures.Future` object that " -"abstracts features common to threads, processes, and remote procedure " -"calls. That object supports status checks (running or done), timeouts, " -"cancellations, adding callbacks, and access to results or exceptions." +"The design for :mod:`concurrent.futures` was inspired by the *java.util." +"concurrent* package. In that model, a running call and its result are " +"represented by a :class:`~concurrent.futures.Future` object that abstracts " +"features common to threads, processes, and remote procedure calls. That " +"object supports status checks (running or done), timeouts, cancellations, " +"adding callbacks, and access to results or exceptions." msgstr "" -#: ../../whatsnew/3.2.rst:248 msgid "" "The primary offering of the new module is a pair of executor classes for " "launching and managing calls. The goal of the executors is to make it " @@ -324,7 +287,6 @@ msgid "" "processes, or remote procedure calls." msgstr "" -#: ../../whatsnew/3.2.rst:255 msgid "" "Ideally, each application should share a single executor across multiple " "components so that process and thread limits can be centrally managed. This " @@ -332,26 +294,22 @@ msgid "" "competing strategy for resource management." msgstr "" -#: ../../whatsnew/3.2.rst:260 msgid "" -"Both classes share a common interface with three " -"methods: :meth:`~concurrent.futures.Executor.submit` for scheduling a " -"callable and returning a :class:`~concurrent.futures.Future` " -"object; :meth:`~concurrent.futures.Executor.map` for scheduling many " -"asynchronous calls at a time, " -"and :meth:`~concurrent.futures.Executor.shutdown` for freeing resources. " -"The class is a :term:`context manager` and can be used in a :keyword:`with` " -"statement to assure that resources are automatically released when currently " -"pending futures are done executing." +"Both classes share a common interface with three methods: :meth:`~concurrent." +"futures.Executor.submit` for scheduling a callable and returning a :class:" +"`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor." +"map` for scheduling many asynchronous calls at a time, and :meth:" +"`~concurrent.futures.Executor.shutdown` for freeing resources. The class is " +"a :term:`context manager` and can be used in a :keyword:`with` statement to " +"assure that resources are automatically released when currently pending " +"futures are done executing." msgstr "" -#: ../../whatsnew/3.2.rst:269 msgid "" "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a " "launch of four parallel threads for copying files::" msgstr "" -#: ../../whatsnew/3.2.rst:272 msgid "" "import concurrent.futures, shutil\n" "with concurrent.futures.ThreadPoolExecutor(max_workers=4) as e:\n" @@ -361,32 +319,26 @@ msgid "" " e.submit(shutil.copy, 'src3.txt', 'dest4.txt')" msgstr "" -#: ../../whatsnew/3.2.rst:281 msgid ":pep:`3148` - Futures -- Execute Computations Asynchronously" msgstr "" -#: ../../whatsnew/3.2.rst:282 msgid "PEP written by Brian Quinlan." msgstr "" -#: ../../whatsnew/3.2.rst:284 msgid "" ":ref:`Code for Threaded Parallel URL reads`, an " "example using threads to fetch multiple web pages in parallel." msgstr "" -#: ../../whatsnew/3.2.rst:287 msgid "" ":ref:`Code for computing prime numbers in parallel`, an example " -"demonstrating :class:`~concurrent.futures.ProcessPoolExecutor`." +"example>`, an example demonstrating :class:`~concurrent.futures." +"ProcessPoolExecutor`." msgstr "" -#: ../../whatsnew/3.2.rst:293 msgid "PEP 3147: PYC Repository Directories" msgstr "" -#: ../../whatsnew/3.2.rst:295 msgid "" "Python's scheme for caching bytecode in *.pyc* files did not work well in " "environments with multiple Python interpreters. If one interpreter " @@ -395,7 +347,6 @@ msgid "" "caching." msgstr "" -#: ../../whatsnew/3.2.rst:300 msgid "" "The issue of \"pyc fights\" has become more pronounced as it has become " "commonplace for Linux distributions to ship with multiple versions of " @@ -403,44 +354,37 @@ msgid "" "Swallow." msgstr "" -#: ../../whatsnew/3.2.rst:304 msgid "" "To solve this problem, Python's import machinery has been extended to use " "distinct filenames for each interpreter. Instead of Python 3.2 and Python " "3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", " -"they will now look for \"mymodule.cpython-32.pyc\", " -"\"mymodule.cpython-33.pyc\", and \"mymodule.unladen10.pyc\". And to prevent " -"all of these new files from cluttering source directories, the *pyc* files " -"are now collected in a \"__pycache__\" directory stored under the package " -"directory." +"they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33." +"pyc\", and \"mymodule.unladen10.pyc\". And to prevent all of these new " +"files from cluttering source directories, the *pyc* files are now collected " +"in a \"__pycache__\" directory stored under the package directory." msgstr "" -#: ../../whatsnew/3.2.rst:312 msgid "" "Aside from the filenames and target directories, the new scheme has a few " "aspects that are visible to the programmer:" msgstr "" -#: ../../whatsnew/3.2.rst:315 msgid "" "Imported modules now have a :attr:`~module.__cached__` attribute which " "stores the name of the actual file that was imported:" msgstr "" -#: ../../whatsnew/3.2.rst:322 msgid "" "The tag that is unique to each interpreter is accessible from the :mod:`!" "imp` module:" msgstr "" -#: ../../whatsnew/3.2.rst:329 msgid "" "Scripts that try to deduce source filename from the imported file now need " "to be smarter. It is no longer sufficient to simply strip the \"c\" from a " "\".pyc\" filename. Instead, use the new functions in the :mod:`!imp` module:" msgstr "" -#: ../../whatsnew/3.2.rst:338 msgid "" "The :mod:`py_compile` and :mod:`compileall` modules have been updated to " "reflect the new naming convention and target directory. The command-line " @@ -449,7 +393,6 @@ msgid "" "be written to their legacy location rather than *__pycache__*." msgstr "" -#: ../../whatsnew/3.2.rst:345 msgid "" "The :mod:`importlib.abc` module has been updated with new :term:`abstract " "base classes ` for loading bytecode files. The " @@ -458,26 +401,21 @@ msgid "" "with the documentation)." msgstr "" -#: ../../whatsnew/3.2.rst:353 msgid ":pep:`3147` - PYC Repository Directories" msgstr "" -#: ../../whatsnew/3.2.rst:354 ../../whatsnew/3.2.rst:385 msgid "PEP written by Barry Warsaw." msgstr "" -#: ../../whatsnew/3.2.rst:358 msgid "PEP 3149: ABI Version Tagged .so Files" msgstr "" -#: ../../whatsnew/3.2.rst:360 msgid "" "The PYC repository directory allows multiple bytecode cache files to be co-" "located. This PEP implements a similar mechanism for shared object files by " "giving them a common directory and distinct names for each version." msgstr "" -#: ../../whatsnew/3.2.rst:364 msgid "" "The common directory is \"pyshared\" and the file names are made distinct by " "identifying the Python implementation (such as CPython, PyPy, Jython, etc.), " @@ -487,19 +425,16 @@ msgid "" "installed::" msgstr "" -#: ../../whatsnew/3.2.rst:370 msgid "" "/usr/share/pyshared/foo.cpython-32m.so\n" "/usr/share/pyshared/foo.cpython-33md.so" msgstr "" -#: ../../whatsnew/3.2.rst:373 msgid "" -"In Python itself, the tags are accessible from functions in " -"the :mod:`sysconfig` module::" +"In Python itself, the tags are accessible from functions in the :mod:" +"`sysconfig` module::" msgstr "" -#: ../../whatsnew/3.2.rst:376 msgid "" ">>> import sysconfig\n" ">>> sysconfig.get_config_var('SOABI') # find the version tag\n" @@ -509,15 +444,12 @@ msgid "" "'.cpython-32mu.so'" msgstr "" -#: ../../whatsnew/3.2.rst:384 msgid ":pep:`3149` - ABI Version Tagged .so Files" msgstr "" -#: ../../whatsnew/3.2.rst:389 msgid "PEP 3333: Python Web Server Gateway Interface v1.0.1" msgstr "" -#: ../../whatsnew/3.2.rst:391 msgid "" "This informational PEP clarifies how bytes/text issues are to be handled by " "the WSGI protocol. The challenge is that string handling in Python 3 is " @@ -525,14 +457,12 @@ msgid "" "protocol is itself bytes oriented." msgstr "" -#: ../../whatsnew/3.2.rst:396 msgid "" "The PEP differentiates so-called *native strings* that are used for request/" "response headers and metadata versus *byte strings* which are used for the " "bodies of requests and responses." msgstr "" -#: ../../whatsnew/3.2.rst:400 msgid "" "The *native strings* are always of type :class:`str` but are restricted to " "code points between *U+0000* through *U+00FF* which are translatable to " @@ -543,18 +473,15 @@ msgid "" "use :rfc:`2047` MIME encoding." msgstr "" -#: ../../whatsnew/3.2.rst:408 msgid "" "For developers porting WSGI applications from Python 2, here are the salient " "points:" msgstr "" -#: ../../whatsnew/3.2.rst:411 msgid "" "If the app already used strings for headers in Python 2, no change is needed." msgstr "" -#: ../../whatsnew/3.2.rst:413 msgid "" "If instead, the app encoded output headers or decoded input headers, then " "the headers will need to be re-encoded to Latin-1. For example, an output " @@ -562,14 +489,12 @@ msgid "" "from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``." msgstr "" -#: ../../whatsnew/3.2.rst:418 msgid "" "Values yielded by an application or sent using the :meth:`!write` method " "must be byte strings. The :func:`!start_response` function and environ must " "use native strings. The two cannot be mixed." msgstr "" -#: ../../whatsnew/3.2.rst:422 msgid "" "For server implementers writing CGI-to-WSGI pathways or other CGI-style " "protocols, the users must to be able access the environment using native " @@ -580,23 +505,18 @@ msgid "" "dictionary." msgstr "" -#: ../../whatsnew/3.2.rst:431 msgid ":pep:`3333` - Python Web Server Gateway Interface v1.0.1" msgstr "" -#: ../../whatsnew/3.2.rst:432 msgid "PEP written by Phillip Eby." msgstr "" -#: ../../whatsnew/3.2.rst:436 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.2.rst:438 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.2.rst:440 msgid "" "String formatting for :func:`format` and :meth:`str.format` gained new " "capabilities for the format character **#**. Previously, for integers in " @@ -606,24 +526,21 @@ msgid "" "digits follow it." msgstr "" -#: ../../whatsnew/3.2.rst:452 msgid "" "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)" msgstr "" -#: ../../whatsnew/3.2.rst:454 msgid "" "There is also a new :meth:`str.format_map` method that extends the " "capabilities of the existing :meth:`str.format` method by accepting " "arbitrary :term:`mapping` objects. This new method makes it possible to use " -"string formatting with any of Python's many dictionary-like objects such " -"as :class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:`~configparser.ConfigParser`, " -"or :mod:`dbm`. It is also useful with custom :class:`dict` subclasses that " -"normalize keys before look-up or that supply a :meth:`__missing__` method " -"for unknown keys::" +"string formatting with any of Python's many dictionary-like objects such as :" +"class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:" +"`~configparser.ConfigParser`, or :mod:`dbm`. It is also useful with custom :" +"class:`dict` subclasses that normalize keys before look-up or that supply a :" +"meth:`~object.__missing__` method for unknown keys::" msgstr "" -#: ../../whatsnew/3.2.rst:463 msgid "" ">>> import shelve\n" ">>> d = shelve.open('tmp.shl')\n" @@ -646,21 +563,18 @@ msgid "" "'Hello , welcome to '" msgstr "" -#: ../../whatsnew/3.2.rst:483 msgid "" -"(Suggested by Raymond Hettinger and implemented by Eric Smith " -"in :issue:`6081`.)" +"(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:" +"`6081`.)" msgstr "" -#: ../../whatsnew/3.2.rst:486 msgid "" "The interpreter can now be started with a quiet option, ``-q``, to prevent " "the copyright and version information from being displayed in the " -"interactive mode. The option can be introspected using " -"the :data:`sys.flags` attribute:" +"interactive mode. The option can be introspected using the :data:`sys." +"flags` attribute:" msgstr "" -#: ../../whatsnew/3.2.rst:490 msgid "" "$ python -q\n" ">>> sys.flags\n" @@ -669,22 +583,19 @@ msgid "" "ignore_environment=0, verbose=0, bytes_warning=0, quiet=1)" msgstr "" -#: ../../whatsnew/3.2.rst:498 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." msgstr "" -#: ../../whatsnew/3.2.rst:500 msgid "" "The :func:`hasattr` function works by calling :func:`getattr` and detecting " "whether an exception is raised. This technique allows it to detect methods " -"created dynamically by :meth:`~object.__getattr__` " -"or :meth:`~object.__getattribute__` which would otherwise be absent from the " -"class dictionary. Formerly, *hasattr* would catch any exception, possibly " -"masking genuine errors. Now, *hasattr* has been tightened to only " -"catch :exc:`AttributeError` and let other exceptions pass through::" +"created dynamically by :meth:`~object.__getattr__` or :meth:`~object." +"__getattribute__` which would otherwise be absent from the class " +"dictionary. Formerly, *hasattr* would catch any exception, possibly masking " +"genuine errors. Now, *hasattr* has been tightened to only catch :exc:" +"`AttributeError` and let other exceptions pass through::" msgstr "" -#: ../../whatsnew/3.2.rst:508 msgid "" ">>> class A:\n" "... @property\n" @@ -698,24 +609,20 @@ msgid "" "ZeroDivisionError: integer division or modulo by zero" msgstr "" -#: ../../whatsnew/3.2.rst:519 msgid "" "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)" msgstr "" -#: ../../whatsnew/3.2.rst:521 msgid "" -"The :func:`str` of a float or complex number is now the same as " -"its :func:`repr`. Previously, the :func:`str` form was shorter but that just " -"caused confusion and is no longer needed now that the shortest " -"possible :func:`repr` is displayed by default:" +"The :func:`str` of a float or complex number is now the same as its :func:" +"`repr`. Previously, the :func:`str` form was shorter but that just caused " +"confusion and is no longer needed now that the shortest possible :func:" +"`repr` is displayed by default:" msgstr "" -#: ../../whatsnew/3.2.rst:532 msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)" msgstr "" -#: ../../whatsnew/3.2.rst:534 msgid "" ":class:`memoryview` objects now have a :meth:`~memoryview.release` method " "and they also now support the context management protocol. This allows " @@ -723,17 +630,14 @@ msgid "" "from the original object." msgstr "" -#: ../../whatsnew/3.2.rst:543 msgid "(Added by Antoine Pitrou; :issue:`9757`.)" msgstr "" -#: ../../whatsnew/3.2.rst:545 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block::" msgstr "" -#: ../../whatsnew/3.2.rst:548 msgid "" "def outer(x):\n" " def inner():\n" @@ -742,14 +646,12 @@ msgid "" " del x" msgstr "" -#: ../../whatsnew/3.2.rst:554 msgid "" "This is now allowed. Remember that the target of an :keyword:`except` " "clause is cleared, so this code which used to work with Python 2.6, raised " "a :exc:`SyntaxError` with Python 3.1 and now works again::" msgstr "" -#: ../../whatsnew/3.2.rst:558 msgid "" "def f():\n" " def print_error():\n" @@ -761,44 +663,37 @@ msgid "" " # implicit \"del e\" here" msgstr "" -#: ../../whatsnew/3.2.rst:567 msgid "(See :issue:`4617`.)" msgstr "" -#: ../../whatsnew/3.2.rst:569 msgid "" ":ref:`Struct sequence types ` are now subclasses of " -"tuple. This means that C structures like those returned " -"by :func:`os.stat`, :func:`time.gmtime`, and :data:`sys.version_info` now " -"work like a :term:`named tuple` and now work with functions and methods that " -"expect a tuple as an argument. This is a big step forward in making the C " -"structures as flexible as their pure Python counterparts:" +"tuple. This means that C structures like those returned by :func:`os.stat`, :" +"func:`time.gmtime`, and :data:`sys.version_info` now work like a :term:" +"`named tuple` and now work with functions and methods that expect a tuple as " +"an argument. This is a big step forward in making the C structures as " +"flexible as their pure Python counterparts:" msgstr "" -#: ../../whatsnew/3.2.rst:582 msgid "" "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by " "Benjamin Peterson in :issue:`8413`.)" msgstr "" -#: ../../whatsnew/3.2.rst:585 msgid "" "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` " "environment variable as an alternative to using ``-W`` at the command line:" msgstr "" -#: ../../whatsnew/3.2.rst:588 msgid "" "$ export PYTHONWARNINGS='ignore::RuntimeWarning::,once::UnicodeWarning::'" msgstr "" -#: ../../whatsnew/3.2.rst:592 msgid "" -"(Suggested by Barry Warsaw and implemented by Philip Jenvey " -"in :issue:`7301`.)" +"(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:" +"`7301`.)" msgstr "" -#: ../../whatsnew/3.2.rst:594 msgid "" "A new warning category, :exc:`ResourceWarning`, has been added. It is " "emitted when potential issues with resource consumption or cleanup are " @@ -807,16 +702,13 @@ msgid "" "command line." msgstr "" -#: ../../whatsnew/3.2.rst:600 msgid "" -"A :exc:`ResourceWarning` is issued at interpreter shutdown if " -"the :data:`gc.garbage` list isn't empty, and " -"if :const:`gc.DEBUG_UNCOLLECTABLE` is set, all uncollectable objects are " -"printed. This is meant to make the programmer aware that their code " -"contains object finalization issues." +"A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc." +"garbage` list isn't empty, and if :const:`gc.DEBUG_UNCOLLECTABLE` is set, " +"all uncollectable objects are printed. This is meant to make the programmer " +"aware that their code contains object finalization issues." msgstr "" -#: ../../whatsnew/3.2.rst:605 msgid "" "A :exc:`ResourceWarning` is also issued when a :term:`file object` is " "destroyed without having been explicitly closed. While the deallocator for " @@ -826,7 +718,6 @@ msgid "" "enabling the warning from the command line:" msgstr "" -#: ../../whatsnew/3.2.rst:612 msgid "" "$ python -q -Wdefault\n" ">>> f = open(\"foo\", \"wb\")\n" @@ -834,24 +725,21 @@ msgid "" "__main__:1: ResourceWarning: unclosed file <_io.BufferedWriter name='foo'>" msgstr "" -#: ../../whatsnew/3.2.rst:619 msgid "" -"(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` " -"and :issue:`477863`.)" +"(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:" +"`477863`.)" msgstr "" -#: ../../whatsnew/3.2.rst:621 msgid "" ":class:`range` objects now support *index* and *count* methods. This is part " -"of an effort to make more objects fully implement " -"the :class:`collections.Sequence ` :term:`abstract " -"base class`. As a result, the language will have a more uniform API. In " -"addition, :class:`range` objects now support slicing and negative indices, " -"even with values larger than :data:`sys.maxsize`. This makes *range* more " -"interoperable with lists::" +"of an effort to make more objects fully implement the :class:`collections." +"Sequence ` :term:`abstract base class`. As a " +"result, the language will have a more uniform API. In addition, :class:" +"`range` objects now support slicing and negative indices, even with values " +"larger than :data:`sys.maxsize`. This makes *range* more interoperable with " +"lists::" msgstr "" -#: ../../whatsnew/3.2.rst:628 msgid "" ">>> range(0, 100, 2).count(10)\n" "1\n" @@ -863,53 +751,44 @@ msgid "" "range(0, 10, 2)" msgstr "" -#: ../../whatsnew/3.2.rst:637 msgid "" "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky " "in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)" msgstr "" -#: ../../whatsnew/3.2.rst:640 msgid "" "The :func:`callable` builtin function from Py2.x was resurrected. It " "provides a concise, readable alternative to using an :term:`abstract base " "class` in an expression like ``isinstance(x, collections.Callable)``:" msgstr "" -#: ../../whatsnew/3.2.rst:649 msgid "(See :issue:`10518`.)" msgstr "" -#: ../../whatsnew/3.2.rst:651 msgid "" "Python's import mechanism can now load modules installed in directories with " "non-ASCII characters in the path name. This solved an aggravating problem " "with home directories for users with non-ASCII characters in their usernames." msgstr "" -#: ../../whatsnew/3.2.rst:655 msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)" msgstr "" -#: ../../whatsnew/3.2.rst:659 msgid "New, Improved, and Deprecated Modules" msgstr "" -#: ../../whatsnew/3.2.rst:661 msgid "" "Python's standard library has undergone significant maintenance efforts and " "quality improvements." msgstr "" -#: ../../whatsnew/3.2.rst:664 msgid "" -"The biggest news for Python 3.2 is that the :mod:`email` " -"package, :mod:`mailbox` module, and :mod:`!nntplib` modules now work " -"correctly with the bytes/text model in Python 3. For the first time, there " -"is correct handling of messages with mixed encodings." +"The biggest news for Python 3.2 is that the :mod:`email` package, :mod:" +"`mailbox` module, and :mod:`!nntplib` modules now work correctly with the " +"bytes/text model in Python 3. For the first time, there is correct handling " +"of messages with mixed encodings." msgstr "" -#: ../../whatsnew/3.2.rst:669 msgid "" "Throughout the standard library, there has been more careful attention to " "encodings and text versus bytes issues. In particular, interactions with " @@ -917,42 +796,35 @@ msgid "" "the Windows MBCS encoding, locale-aware encodings, or UTF-8." msgstr "" -#: ../../whatsnew/3.2.rst:674 msgid "" "Another significant win is the addition of substantially better support for " "*SSL* connections and security certificates." msgstr "" -#: ../../whatsnew/3.2.rst:677 msgid "" "In addition, more classes now implement a :term:`context manager` to support " "convenient and reliable resource clean-up using a :keyword:`with` statement." msgstr "" -#: ../../whatsnew/3.2.rst:681 msgid "email" msgstr "" -#: ../../whatsnew/3.2.rst:683 msgid "" "The usability of the :mod:`email` package in Python 3 has been mostly fixed " "by the extensive efforts of R. David Murray. The problem was that emails " -"are typically read and stored in the form of :class:`bytes` rather " -"than :class:`str` text, and they may contain multiple encodings within a " -"single email. So, the email package had to be extended to parse and " -"generate email messages in bytes format." +"are typically read and stored in the form of :class:`bytes` rather than :" +"class:`str` text, and they may contain multiple encodings within a single " +"email. So, the email package had to be extended to parse and generate email " +"messages in bytes format." msgstr "" -#: ../../whatsnew/3.2.rst:690 msgid "" -"New functions :func:`~email.message_from_bytes` " -"and :func:`~email.message_from_binary_file`, and new " -"classes :class:`~email.parser.BytesFeedParser` " -"and :class:`~email.parser.BytesParser` allow binary message data to be " -"parsed into model objects." +"New functions :func:`~email.message_from_bytes` and :func:`~email." +"message_from_binary_file`, and new classes :class:`~email.parser." +"BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message " +"data to be parsed into model objects." msgstr "" -#: ../../whatsnew/3.2.rst:695 msgid "" "Given bytes input to the model, :meth:`~email.message.Message.get_payload` " "will by default decode a message body that has a :mailheader:`Content-" @@ -960,202 +832,168 @@ msgid "" "and return the resulting string." msgstr "" -#: ../../whatsnew/3.2.rst:700 msgid "" "Given bytes input to the model, :class:`~email.generator.Generator` will " "convert message bodies that have a :mailheader:`Content-Transfer-Encoding` " "of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`." msgstr "" -#: ../../whatsnew/3.2.rst:704 msgid "" -"Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ " -"-encoded using the *unknown-8bit* character set." +"Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -" +"encoded using the *unknown-8bit* character set." msgstr "" -#: ../../whatsnew/3.2.rst:707 msgid "" "A new class :class:`~email.generator.BytesGenerator` produces bytes as " "output, preserving any unchanged non-ASCII data that was present in the " -"input used to build the model, including message bodies with " -"a :mailheader:`Content-Transfer-Encoding` of *8bit*." +"input used to build the model, including message bodies with a :mailheader:" +"`Content-Transfer-Encoding` of *8bit*." msgstr "" -#: ../../whatsnew/3.2.rst:712 msgid "" "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string " "for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a " -"new method, :meth:`~smtplib.SMTP.send_message` accepts " -"a :class:`~email.message.Message` object and can optionally obtain the " -"*from_addr* and *to_addrs* addresses directly from the object." +"new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email." +"message.Message` object and can optionally obtain the *from_addr* and " +"*to_addrs* addresses directly from the object." msgstr "" -#: ../../whatsnew/3.2.rst:718 msgid "" -"(Proposed and implemented by R. David Murray, :issue:`4661` " -"and :issue:`10321`.)" +"(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:" +"`10321`.)" msgstr "" -#: ../../whatsnew/3.2.rst:721 msgid "elementtree" msgstr "" -#: ../../whatsnew/3.2.rst:723 msgid "" -"The :mod:`xml.etree.ElementTree` package and its :mod:`!" -"xml.etree.cElementTree` counterpart have been updated to version 1.3." +"The :mod:`xml.etree.ElementTree` package and its :mod:`!xml.etree." +"cElementTree` counterpart have been updated to version 1.3." msgstr "" -#: ../../whatsnew/3.2.rst:726 msgid "Several new and useful functions and methods have been added:" msgstr "" -#: ../../whatsnew/3.2.rst:728 msgid "" ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document " "from a sequence of fragments" msgstr "" -#: ../../whatsnew/3.2.rst:730 msgid "" ":func:`xml.etree.ElementTree.register_namespace` for registering a global " "namespace prefix" msgstr "" -#: ../../whatsnew/3.2.rst:732 msgid "" ":func:`xml.etree.ElementTree.tostringlist` for string representation " "including all sublists" msgstr "" -#: ../../whatsnew/3.2.rst:734 msgid "" ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of " "zero or more elements" msgstr "" -#: ../../whatsnew/3.2.rst:736 msgid "" ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and " "subelements" msgstr "" -#: ../../whatsnew/3.2.rst:738 msgid "" ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over " "an element and its subelements" msgstr "" -#: ../../whatsnew/3.2.rst:740 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element" msgstr "" -#: ../../whatsnew/3.2.rst:741 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype " "declaration" msgstr "" -#: ../../whatsnew/3.2.rst:744 msgid "Two methods have been deprecated:" msgstr "" -#: ../../whatsnew/3.2.rst:746 msgid ":meth:`!xml.etree.ElementTree.getchildren` use ``list(elem)`` instead." msgstr "" -#: ../../whatsnew/3.2.rst:747 msgid "" ":meth:`!xml.etree.ElementTree.getiterator` use ``Element.iter`` instead." msgstr "" -#: ../../whatsnew/3.2.rst:749 msgid "" -"For details of the update, see `Introducing ElementTree `_ on Fredrik Lundh's website." +"For details of the update, see `Introducing ElementTree `_ on " +"Fredrik Lundh's website." msgstr "" -#: ../../whatsnew/3.2.rst:753 msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)" msgstr "" -#: ../../whatsnew/3.2.rst:756 msgid "functools" msgstr "" -#: ../../whatsnew/3.2.rst:758 msgid "" "The :mod:`functools` module includes a new decorator for caching function " "calls. :func:`functools.lru_cache` can save repeated queries to an external " "resource whenever the results are expected to be the same." msgstr "" -#: ../../whatsnew/3.2.rst:762 msgid "" "For example, adding a caching decorator to a database query function can " "save database accesses for popular searches:" msgstr "" -#: ../../whatsnew/3.2.rst:775 msgid "" "To help with choosing an effective cache size, the wrapped function is " "instrumented for tracking cache statistics:" msgstr "" -#: ../../whatsnew/3.2.rst:781 msgid "" "If the phonelist table gets updated, the outdated contents of the cache can " "be cleared with:" msgstr "" -#: ../../whatsnew/3.2.rst:786 msgid "" "(Contributed by Raymond Hettinger and incorporating design ideas from Jim " -"Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, " -"`recipe 577479 `_\\, :issue:`10586`, and :issue:`10593`.)" +"Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, `recipe " +"577479 `_\\, :issue:`10586`, and :issue:`10593`.)" msgstr "" -#: ../../whatsnew/3.2.rst:792 msgid "" "The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` " "attribute pointing to the original callable function. This allows wrapped " -"functions to be introspected. It also " -"copies :attr:`~function.__annotations__` if defined. And now it also " -"gracefully skips over missing attributes such as :attr:`~function.__doc__` " -"which might not be defined for the wrapped callable." +"functions to be introspected. It also copies :attr:`~function." +"__annotations__` if defined. And now it also gracefully skips over missing " +"attributes such as :attr:`~function.__doc__` which might not be defined for " +"the wrapped callable." msgstr "" -#: ../../whatsnew/3.2.rst:799 msgid "" "In the above example, the cache can be removed by recovering the original " "function:" msgstr "" -#: ../../whatsnew/3.2.rst:804 msgid "" -"(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, " -"and :issue:`8814`.)" +"(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and :issue:" +"`8814`.)" msgstr "" -#: ../../whatsnew/3.2.rst:807 msgid "" -"To help write classes with rich comparison methods, a new " -"decorator :func:`functools.total_ordering` will use existing equality and " -"inequality methods to fill in the remaining methods." +"To help write classes with rich comparison methods, a new decorator :func:" +"`functools.total_ordering` will use existing equality and inequality methods " +"to fill in the remaining methods." msgstr "" -#: ../../whatsnew/3.2.rst:811 msgid "" -"For example, supplying *__eq__* and *__lt__* will " -"enable :func:`~functools.total_ordering` to fill-in *__le__*, *__gt__* and " -"*__ge__*::" +"For example, supplying *__eq__* and *__lt__* will enable :func:`~functools." +"total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::" msgstr "" -#: ../../whatsnew/3.2.rst:814 msgid "" "@total_ordering\n" "class Student:\n" @@ -1168,103 +1006,82 @@ msgid "" " (other.lastname.lower(), other.firstname.lower()))" msgstr "" -#: ../../whatsnew/3.2.rst:824 msgid "" "With the *total_ordering* decorator, the remaining comparison methods are " "filled in automatically." msgstr "" -#: ../../whatsnew/3.2.rst:827 ../../whatsnew/3.2.rst:839 -#: ../../whatsnew/3.2.rst:883 ../../whatsnew/3.2.rst:904 -#: ../../whatsnew/3.2.rst:918 ../../whatsnew/3.2.rst:1788 -#: ../../whatsnew/3.2.rst:1832 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/3.2.rst:829 msgid "" "To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` " "function converts an old-style comparison function to modern :term:`key " "function`:" msgstr "" -#: ../../whatsnew/3.2.rst:836 msgid "" "For sorting examples and a brief sorting tutorial, see the `Sorting HowTo " "`_ tutorial." msgstr "" -#: ../../whatsnew/3.2.rst:842 msgid "itertools" msgstr "" -#: ../../whatsnew/3.2.rst:844 msgid "" "The :mod:`itertools` module has a new :func:`~itertools.accumulate` function " "modeled on APL's *scan* operator and Numpy's *accumulate* function:" msgstr "" -#: ../../whatsnew/3.2.rst:855 msgid "" "For an example using :func:`~itertools.accumulate`, see the :ref:`examples " "for the random module `." msgstr "" -#: ../../whatsnew/3.2.rst:858 msgid "" "(Contributed by Raymond Hettinger and incorporating design suggestions from " "Mark Dickinson.)" msgstr "" -#: ../../whatsnew/3.2.rst:862 msgid "collections" msgstr "" -#: ../../whatsnew/3.2.rst:864 msgid "" "The :class:`collections.Counter` class now has two forms of in-place " "subtraction, the existing *-=* operator for `saturating subtraction `_ and the " -"new :meth:`~collections.Counter.subtract` method for regular subtraction. " -"The former is suitable for `multisets `_ which only have positive counts, and the latter is more suitable " -"for use cases that allow negative counts:" +"en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new :meth:" +"`~collections.Counter.subtract` method for regular subtraction. The former " +"is suitable for `multisets `_ which " +"only have positive counts, and the latter is more suitable for use cases " +"that allow negative counts:" msgstr "" -#: ../../whatsnew/3.2.rst:885 msgid "" -"The :class:`collections.OrderedDict` class has a new " -"method :meth:`~collections.OrderedDict.move_to_end` which takes an existing " -"key and moves it to either the first or last position in the ordered " -"sequence." +"The :class:`collections.OrderedDict` class has a new method :meth:" +"`~collections.OrderedDict.move_to_end` which takes an existing key and moves " +"it to either the first or last position in the ordered sequence." msgstr "" -#: ../../whatsnew/3.2.rst:889 msgid "" "The default is to move an item to the last position. This is equivalent of " "renewing an entry with ``od[k] = od.pop(k)``." msgstr "" -#: ../../whatsnew/3.2.rst:892 msgid "" "A fast move-to-end operation is useful for resequencing entries. For " "example, an ordered dictionary can be used to track order of access by aging " "entries from the oldest to the most recently accessed." msgstr "" -#: ../../whatsnew/3.2.rst:906 msgid "" -"The :class:`collections.deque` class grew two new " -"methods :meth:`~collections.deque.count` " -"and :meth:`~collections.deque.reverse` that make them more substitutable " -"for :class:`list` objects:" +"The :class:`collections.deque` class grew two new methods :meth:" +"`~collections.deque.count` and :meth:`~collections.deque.reverse` that make " +"them more substitutable for :class:`list` objects:" msgstr "" -#: ../../whatsnew/3.2.rst:921 msgid "threading" msgstr "" -#: ../../whatsnew/3.2.rst:923 msgid "" "The :mod:`threading` module has a new :class:`~threading.Barrier` " "synchronization class for making multiple threads wait until all of them " @@ -1273,14 +1090,12 @@ msgid "" "predecessor tasks are complete." msgstr "" -#: ../../whatsnew/3.2.rst:929 msgid "" "Barriers can work with an arbitrary number of threads. This is a " "generalization of a `Rendezvous `_ which is defined for only two threads." msgstr "" -#: ../../whatsnew/3.2.rst:933 msgid "" "Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` " "objects are suitable for use in loops. The separate *filling* and " @@ -1289,11 +1104,9 @@ msgid "" "resets after each cycle." msgstr "" -#: ../../whatsnew/3.2.rst:938 msgid "Example of using barriers::" msgstr "" -#: ../../whatsnew/3.2.rst:940 msgid "" "from threading import Barrier, Thread\n" "\n" @@ -1309,7 +1122,6 @@ msgid "" " Thread(target=get_votes, args=(site,)).start()" msgstr "" -#: ../../whatsnew/3.2.rst:952 msgid "" "In this example, the barrier enforces a rule that votes cannot be counted at " "any polling site until all polls are closed. Notice how a solution with a " @@ -1318,7 +1130,6 @@ msgid "" "barrier point is crossed." msgstr "" -#: ../../whatsnew/3.2.rst:958 msgid "" "If any of the predecessor tasks can hang or be delayed, a barrier can be " "created with an optional *timeout* parameter. Then if the timeout period " @@ -1327,7 +1138,6 @@ msgid "" "exception is raised::" msgstr "" -#: ../../whatsnew/3.2.rst:963 msgid "" "def get_votes(site):\n" " ballots = conduct_election(site)\n" @@ -1341,14 +1151,12 @@ msgid "" " publish(site, totals)" msgstr "" -#: ../../whatsnew/3.2.rst:974 msgid "" "In this example, the barrier enforces a more robust rule. If some election " "sites do not finish before midnight, the barrier times-out and the ballots " "are sealed and deposited in a queue for later handling." msgstr "" -#: ../../whatsnew/3.2.rst:978 msgid "" "See `Barrier Synchronization Patterns `_ for more examples " @@ -1358,17 +1166,14 @@ msgid "" "*section 3.6*." msgstr "" -#: ../../whatsnew/3.2.rst:984 msgid "" "(Contributed by Kristján Valur Jónsson with an API review by Jeffrey Yasskin " "in :issue:`8777`.)" msgstr "" -#: ../../whatsnew/3.2.rst:988 msgid "datetime and time" msgstr "" -#: ../../whatsnew/3.2.rst:990 msgid "" "The :mod:`datetime` module has a new type :class:`~datetime.timezone` that " "implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC " @@ -1376,32 +1181,28 @@ msgid "" "datetime objects::" msgstr "" -#: ../../whatsnew/3.2.rst:995 msgid "" ">>> from datetime import datetime, timezone\n" "\n" ">>> datetime.now(timezone.utc)\n" -"datetime.datetime(2010, 12, 8, 21, 4, 2, 923754, " -"tzinfo=datetime.timezone.utc)\n" +"datetime.datetime(2010, 12, 8, 21, 4, 2, 923754, tzinfo=datetime.timezone." +"utc)\n" "\n" ">>> datetime.strptime(\"01/01/2000 12:00 +0000\", \"%m/%d/%Y %H:%M %z\")\n" "datetime.datetime(2000, 1, 1, 12, 0, tzinfo=datetime.timezone.utc)" msgstr "" -#: ../../whatsnew/3.2.rst:1003 msgid "" -"Also, :class:`~datetime.timedelta` objects can now be multiplied " -"by :class:`float` and divided by :class:`float` and :class:`int` objects. " -"And :class:`~datetime.timedelta` objects can now divide one another." +"Also, :class:`~datetime.timedelta` objects can now be multiplied by :class:" +"`float` and divided by :class:`float` and :class:`int` objects. And :class:" +"`~datetime.timedelta` objects can now divide one another." msgstr "" -#: ../../whatsnew/3.2.rst:1007 msgid "" "The :meth:`datetime.date.strftime` method is no longer restricted to years " "after 1900. The new supported year range is from 1000 to 9999 inclusive." msgstr "" -#: ../../whatsnew/3.2.rst:1010 msgid "" "Whenever a two-digit year is used in a time tuple, the interpretation has " "been governed by :data:`!time.accept2dyear`. The default is ``True`` which " @@ -1409,15 +1210,13 @@ msgid "" "POSIX rules governing the ``%y`` strptime format." msgstr "" -#: ../../whatsnew/3.2.rst:1015 msgid "" -"Starting with Py3.2, use of the century guessing heuristic will emit " -"a :exc:`DeprecationWarning`. Instead, it is recommended that :data:`!" -"time.accept2dyear` be set to ``False`` so that large date ranges can be used " +"Starting with Py3.2, use of the century guessing heuristic will emit a :exc:" +"`DeprecationWarning`. Instead, it is recommended that :data:`!time." +"accept2dyear` be set to ``False`` so that large date ranges can be used " "without guesswork::" msgstr "" -#: ../../whatsnew/3.2.rst:1020 msgid "" ">>> import time, warnings\n" ">>> warnings.resetwarnings() # remove the default warning filters\n" @@ -1434,54 +1233,46 @@ msgid "" "'Fri Jan 1 12:34:56 11'" msgstr "" -#: ../../whatsnew/3.2.rst:1034 msgid "" "Several functions now have significantly expanded date ranges. When :data:`!" "time.accept2dyear` is false, the :func:`time.asctime` function will accept " -"any year that fits in a C int, while the :func:`time.mktime` " -"and :func:`time.strftime` functions will accept the full range supported by " -"the corresponding operating system functions." +"any year that fits in a C int, while the :func:`time.mktime` and :func:`time." +"strftime` functions will accept the full range supported by the " +"corresponding operating system functions." msgstr "" -#: ../../whatsnew/3.2.rst:1040 msgid "" -"(Contributed by Alexander Belopolsky and Victor Stinner " -"in :issue:`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :issue:`8013`, " -"and :issue:`10827`.)" +"(Contributed by Alexander Belopolsky and Victor Stinner in :issue:" +"`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :" +"issue:`8013`, and :issue:`10827`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1047 msgid "math" msgstr "" -#: ../../whatsnew/3.2.rst:1049 msgid "" "The :mod:`math` module has been updated with six new functions inspired by " "the C99 standard." msgstr "" -#: ../../whatsnew/3.2.rst:1052 msgid "" "The :func:`~math.isfinite` function provides a reliable and fast way to " "detect special values. It returns ``True`` for regular numbers and " "``False`` for *Nan* or *Infinity*:" msgstr "" -#: ../../whatsnew/3.2.rst:1060 msgid "" "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* " "without incurring the loss of precision that usually accompanies the " "subtraction of nearly equal quantities:" msgstr "" -#: ../../whatsnew/3.2.rst:1068 msgid "" "The :func:`~math.erf` function computes a probability integral or `Gaussian " "error function `_. The " "complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:" msgstr "" -#: ../../whatsnew/3.2.rst:1072 msgid "" ">>> from math import erf, erfc, sqrt\n" ">>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard " @@ -1494,7 +1285,6 @@ msgid "" "1.0" msgstr "" -#: ../../whatsnew/3.2.rst:1083 msgid "" "The :func:`~math.gamma` function is a continuous extension of the factorial " "function. See https://en.wikipedia.org/wiki/Gamma_function for details. " @@ -1503,28 +1293,23 @@ msgid "" "computing the natural logarithm of the gamma function:" msgstr "" -#: ../../whatsnew/3.2.rst:1095 msgid "(Contributed by Mark Dickinson.)" msgstr "" -#: ../../whatsnew/3.2.rst:1098 msgid "abc" msgstr "" -#: ../../whatsnew/3.2.rst:1100 msgid "" -"The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` " -"and :func:`~abc.abstractstaticmethod`." +"The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :" +"func:`~abc.abstractstaticmethod`." msgstr "" -#: ../../whatsnew/3.2.rst:1103 msgid "" "These tools make it possible to define an :term:`abstract base class` that " "requires a particular :func:`classmethod` or :func:`staticmethod` to be " "implemented::" msgstr "" -#: ../../whatsnew/3.2.rst:1107 msgid "" "class Temperature(metaclass=abc.ABCMeta):\n" " @abc.abstractclassmethod\n" @@ -1535,15 +1320,12 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.2.rst:1115 msgid "(Patch submitted by Daniel Urban; :issue:`5867`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1118 msgid "io" msgstr "" -#: ../../whatsnew/3.2.rst:1120 msgid "" "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, " "which provides functionality similar to :func:`memoryview`. It creates an " @@ -1551,7 +1333,6 @@ msgid "" "and support for slice notation are well-suited to in-place editing::" msgstr "" -#: ../../whatsnew/3.2.rst:1125 msgid "" ">>> REC_LEN, LOC_START, LOC_LEN = 34, 7, 11\n" "\n" @@ -1575,24 +1356,20 @@ msgid "" "b'L6988 receiving Primary sprocket'" msgstr "" -#: ../../whatsnew/3.2.rst:1146 msgid "(Contributed by Antoine Pitrou in :issue:`5506`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1149 msgid "reprlib" msgstr "" -#: ../../whatsnew/3.2.rst:1151 msgid "" "When writing a :meth:`~object.__repr__` method for a custom container, it is " "easy to forget to handle the case where a member refers back to the " -"container itself. Python's builtin objects such as :class:`list` " -"and :class:`set` handle self-reference by displaying \"...\" in the " -"recursive part of the representation string." +"container itself. Python's builtin objects such as :class:`list` and :class:" +"`set` handle self-reference by displaying \"...\" in the recursive part of " +"the representation string." msgstr "" -#: ../../whatsnew/3.2.rst:1157 msgid "" "To help write such :meth:`~object.__repr__` methods, the :mod:`reprlib` " "module has a new decorator, :func:`~reprlib.recursive_repr`, for detecting " @@ -1600,7 +1377,6 @@ msgid "" "instead::" msgstr "" -#: ../../whatsnew/3.2.rst:1161 msgid "" ">>> class MyList(list):\n" "... @recursive_repr()\n" @@ -1614,21 +1390,17 @@ msgid "" "<'a'|'b'|'c'|...|'x'>" msgstr "" -#: ../../whatsnew/3.2.rst:1172 msgid "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1175 msgid "logging" msgstr "" -#: ../../whatsnew/3.2.rst:1177 msgid "" -"In addition to dictionary-based configuration described above, " -"the :mod:`logging` package has many other improvements." +"In addition to dictionary-based configuration described above, the :mod:" +"`logging` package has many other improvements." msgstr "" -#: ../../whatsnew/3.2.rst:1180 msgid "" "The logging documentation has been augmented by a :ref:`basic tutorial " "`\\, an :ref:`advanced tutorial >> from logging import basicConfig\n" -">>> basicConfig(style='%', format=\"%(name)s -> %(levelname)s: %" -"(message)s\")\n" +">>> basicConfig(style='%', format=\"%(name)s -> %(levelname)s: " +"%(message)s\")\n" ">>> basicConfig(style='{', format=\"{name} -> {levelname} {message}\")\n" ">>> basicConfig(style='$', format=\"$name -> $levelname: $message\")" msgstr "" -#: ../../whatsnew/3.2.rst:1196 msgid "" "If no configuration is set-up before a logging event occurs, there is now a " -"default configuration using a :class:`~logging.StreamHandler` directed " -"to :data:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, " -"an event occurring before a configuration was set-up would either raise an " -"exception or silently drop the event depending on the value " -"of :data:`logging.raiseExceptions`. The new default handler is stored " -"in :data:`logging.lastResort`." +"default configuration using a :class:`~logging.StreamHandler` directed to :" +"data:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, an " +"event occurring before a configuration was set-up would either raise an " +"exception or silently drop the event depending on the value of :data:" +"`logging.raiseExceptions`. The new default handler is stored in :data:" +"`logging.lastResort`." msgstr "" -#: ../../whatsnew/3.2.rst:1204 msgid "" -"The use of filters has been simplified. Instead of creating " -"a :class:`~logging.Filter` object, the predicate can be any Python callable " -"that returns ``True`` or ``False``." +"The use of filters has been simplified. Instead of creating a :class:" +"`~logging.Filter` object, the predicate can be any Python callable that " +"returns ``True`` or ``False``." msgstr "" -#: ../../whatsnew/3.2.rst:1208 msgid "" "There were a number of other improvements that add flexibility and simplify " "configuration. See the module documentation for a full listing of changes " "in Python 3.2." msgstr "" -#: ../../whatsnew/3.2.rst:1213 msgid "csv" msgstr "" -#: ../../whatsnew/3.2.rst:1215 msgid "" -"The :mod:`csv` module now supports a new " -"dialect, :class:`~csv.unix_dialect`, which applies quoting for all fields " -"and a traditional Unix style with ``'\\n'`` as the line terminator. The " -"registered dialect name is ``unix``." +"The :mod:`csv` module now supports a new dialect, :class:`~csv." +"unix_dialect`, which applies quoting for all fields and a traditional Unix " +"style with ``'\\n'`` as the line terminator. The registered dialect name is " +"``unix``." msgstr "" -#: ../../whatsnew/3.2.rst:1219 msgid "" -"The :class:`csv.DictWriter` has a new " -"method, :meth:`~csv.DictWriter.writeheader` for writing-out an initial row " -"to document the field names::" +"The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter." +"writeheader` for writing-out an initial row to document the field names::" msgstr "" -#: ../../whatsnew/3.2.rst:1223 msgid "" ">>> import csv, sys\n" ">>> w = csv.DictWriter(sys.stdout, ['name', 'dept'], dialect='unix')\n" @@ -1712,31 +1474,25 @@ msgid "" "\"susan\",\"sales\"" msgstr "" -#: ../../whatsnew/3.2.rst:1233 msgid "" "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method " "suggested by Ed Abraham in :issue:`1537721`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1237 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.2.rst:1239 msgid "" -"There is a new and slightly mind-blowing " -"tool :class:`~contextlib.ContextDecorator` that is helpful for creating " -"a :term:`context manager` that does double duty as a function decorator." +"There is a new and slightly mind-blowing tool :class:`~contextlib." +"ContextDecorator` that is helpful for creating a :term:`context manager` " +"that does double duty as a function decorator." msgstr "" -#: ../../whatsnew/3.2.rst:1243 msgid "" -"As a convenience, this new functionality is used " -"by :func:`~contextlib.contextmanager` so that no extra effort is needed to " -"support both roles." +"As a convenience, this new functionality is used by :func:`~contextlib." +"contextmanager` so that no extra effort is needed to support both roles." msgstr "" -#: ../../whatsnew/3.2.rst:1247 msgid "" "The basic idea is that both context managers and function decorators can be " "used for pre-action and post-action wrappers. Context managers wrap a group " @@ -1746,7 +1502,6 @@ msgid "" "either role." msgstr "" -#: ../../whatsnew/3.2.rst:1253 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " @@ -1755,7 +1510,6 @@ msgid "" "single definition::" msgstr "" -#: ../../whatsnew/3.2.rst:1259 msgid "" "from contextlib import contextmanager\n" "import logging\n" @@ -1769,22 +1523,18 @@ msgid "" " logging.info('Exiting: %s', name)" msgstr "" -#: ../../whatsnew/3.2.rst:1270 msgid "Formerly, this would have only been usable as a context manager::" msgstr "" -#: ../../whatsnew/3.2.rst:1272 msgid "" "with track_entry_and_exit('widget loader'):\n" " print('Some time consuming activity goes here')\n" " load_widget()" msgstr "" -#: ../../whatsnew/3.2.rst:1276 msgid "Now, it can be used as a decorator as well::" msgstr "" -#: ../../whatsnew/3.2.rst:1278 msgid "" "@track_entry_and_exit('widget loader')\n" "def activity():\n" @@ -1792,7 +1542,6 @@ msgid "" " load_widget()" msgstr "" -#: ../../whatsnew/3.2.rst:1283 msgid "" "Trying to fulfill two roles at once places some limitations on the " "technique. Context managers normally have the flexibility to return an " @@ -1800,43 +1549,36 @@ msgid "" "function decorators." msgstr "" -#: ../../whatsnew/3.2.rst:1287 msgid "" "In the above example, there is not a clean way for the " "*track_entry_and_exit* context manager to return a logging instance for use " "in the body of enclosed statements." msgstr "" -#: ../../whatsnew/3.2.rst:1291 msgid "(Contributed by Michael Foord in :issue:`9110`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1294 msgid "decimal and fractions" msgstr "" -#: ../../whatsnew/3.2.rst:1296 msgid "" "Mark Dickinson crafted an elegant and efficient scheme for assuring that " "different numeric datatypes will have the same hash value whenever their " "actual values are equal (:issue:`8188`)::" msgstr "" -#: ../../whatsnew/3.2.rst:1300 msgid "" "assert hash(Fraction(3, 2)) == hash(1.5) == \\\n" " hash(Decimal(\"1.5\")) == hash(complex(1.5, 0))" msgstr "" -#: ../../whatsnew/3.2.rst:1303 msgid "" -"Some of the hashing details are exposed through a new " -"attribute, :data:`sys.hash_info`, which describes the bit width of the hash " -"value, the prime modulus, the hash values for *infinity* and *nan*, and the " -"multiplier used for the imaginary part of a number:" +"Some of the hashing details are exposed through a new attribute, :data:`sys." +"hash_info`, which describes the bit width of the hash value, the prime " +"modulus, the hash values for *infinity* and *nan*, and the multiplier used " +"for the imaginary part of a number:" msgstr "" -#: ../../whatsnew/3.2.rst:1311 msgid "" "An early decision to limit the interoperability of various numeric types has " "been relaxed. It is still unsupported (and ill-advised) to have implicit " @@ -1847,53 +1589,43 @@ msgid "" "add them to the constructor and to support mixed-type comparisons." msgstr "" -#: ../../whatsnew/3.2.rst:1319 msgid "" "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects " -"directly so there in no longer a need to use " -"the :meth:`~decimal.Decimal.from_float` method (:issue:`8257`)." +"directly so there in no longer a need to use the :meth:`~decimal.Decimal." +"from_float` method (:issue:`8257`)." msgstr "" -#: ../../whatsnew/3.2.rst:1323 msgid "" -"Mixed type comparisons are now fully supported so " -"that :class:`~decimal.Decimal` objects can be directly compared " -"with :class:`float` and :class:`fractions.Fraction` (:issue:`2531` " -"and :issue:`8188`)." +"Mixed type comparisons are now fully supported so that :class:`~decimal." +"Decimal` objects can be directly compared with :class:`float` and :class:" +"`fractions.Fraction` (:issue:`2531` and :issue:`8188`)." msgstr "" -#: ../../whatsnew/3.2.rst:1327 msgid "" -"Similar changes were made to :class:`fractions.Fraction` so that " -"the :meth:`~fractions.Fraction.from_float` " -"and :meth:`~fractions.Fraction.from_decimal` methods are no longer needed " -"(:issue:`8294`):" +"Similar changes were made to :class:`fractions.Fraction` so that the :meth:" +"`~fractions.Fraction.from_float` and :meth:`~fractions.Fraction." +"from_decimal` methods are no longer needed (:issue:`8294`):" msgstr "" -#: ../../whatsnew/3.2.rst:1338 msgid "" -"Another useful change for the :mod:`decimal` module is that " -"the :attr:`Context.clamp ` attribute is now public. " -"This is useful in creating contexts that correspond to the decimal " -"interchange formats specified in IEEE 754 (see :issue:`8540`)." +"Another useful change for the :mod:`decimal` module is that the :attr:" +"`Context.clamp ` attribute is now public. This is " +"useful in creating contexts that correspond to the decimal interchange " +"formats specified in IEEE 754 (see :issue:`8540`)." msgstr "" -#: ../../whatsnew/3.2.rst:1343 msgid "(Contributed by Mark Dickinson and Raymond Hettinger.)" msgstr "" -#: ../../whatsnew/3.2.rst:1346 msgid "ftp" msgstr "" -#: ../../whatsnew/3.2.rst:1348 msgid "" "The :class:`ftplib.FTP` class now supports the context management protocol " "to unconditionally consume :exc:`socket.error` exceptions and to close the " "FTP connection when done::" msgstr "" -#: ../../whatsnew/3.2.rst:1352 msgid "" ">>> from ftplib import FTP\n" ">>> with FTP(\"ftp1.at.proftpd.org\") as ftp:\n" @@ -1907,26 +1639,22 @@ msgid "" "dr-xr-xr-x 3 ftp ftp 18 Jul 10 2008 Fedora" msgstr "" -#: ../../whatsnew/3.2.rst:1363 msgid "" -"Other file-like objects such as :class:`mmap.mmap` " -"and :func:`fileinput.input` also grew auto-closing context managers::" +"Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput." +"input` also grew auto-closing context managers::" msgstr "" -#: ../../whatsnew/3.2.rst:1366 msgid "" "with fileinput.input(files=('log1.txt', 'log2.txt')) as f:\n" " for line in f:\n" " process(line)" msgstr "" -#: ../../whatsnew/3.2.rst:1370 msgid "" "(Contributed by Tarek Ziadé and Giampaolo Rodolà in :issue:`4972`, and by " "Georg Brandl in :issue:`8046` and :issue:`1286`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1373 msgid "" "The :class:`~ftplib.FTP_TLS` class now accepts a *context* parameter, which " "is a :class:`ssl.SSLContext` object allowing bundling SSL configuration " @@ -1934,88 +1662,72 @@ msgid "" "lived) structure." msgstr "" -#: ../../whatsnew/3.2.rst:1377 msgid "(Contributed by Giampaolo Rodolà; :issue:`8806`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1380 msgid "popen" msgstr "" -#: ../../whatsnew/3.2.rst:1382 msgid "" -"The :func:`os.popen` and :func:`subprocess.Popen` functions now " -"support :keyword:`with` statements for auto-closing of the file descriptors." +"The :func:`os.popen` and :func:`subprocess.Popen` functions now support :" +"keyword:`with` statements for auto-closing of the file descriptors." msgstr "" -#: ../../whatsnew/3.2.rst:1385 msgid "" -"(Contributed by Antoine Pitrou and Brian Curtin in :issue:`7461` " -"and :issue:`10554`.)" +"(Contributed by Antoine Pitrou and Brian Curtin in :issue:`7461` and :issue:" +"`10554`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1389 msgid "select" msgstr "" -#: ../../whatsnew/3.2.rst:1391 msgid "" -"The :mod:`select` module now exposes a new, constant " -"attribute, :const:`~select.PIPE_BUF`, which gives the minimum number of " -"bytes which are guaranteed not to block when :func:`select.select` says a " -"pipe is ready for writing." +"The :mod:`select` module now exposes a new, constant attribute, :const:" +"`~select.PIPE_BUF`, which gives the minimum number of bytes which are " +"guaranteed not to block when :func:`select.select` says a pipe is ready for " +"writing." msgstr "" -#: ../../whatsnew/3.2.rst:1400 msgid "(Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`)" msgstr "" -#: ../../whatsnew/3.2.rst:1403 msgid "gzip and zipfile" msgstr "" -#: ../../whatsnew/3.2.rst:1405 msgid "" -":class:`gzip.GzipFile` now implements " -"the :class:`io.BufferedIOBase` :term:`abstract base class` (except for " -"``truncate()``). It also has a :meth:`~gzip.GzipFile.peek` method and " -"supports unseekable as well as zero-padded file objects." +":class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase` :term:" +"`abstract base class` (except for ``truncate()``). It also has a :meth:" +"`~gzip.GzipFile.peek` method and supports unseekable as well as zero-padded " +"file objects." msgstr "" -#: ../../whatsnew/3.2.rst:1410 msgid "" -"The :mod:`gzip` module also gains the :func:`~gzip.compress` " -"and :func:`~gzip.decompress` functions for easier in-memory compression and " +"The :mod:`gzip` module also gains the :func:`~gzip.compress` and :func:" +"`~gzip.decompress` functions for easier in-memory compression and " "decompression. Keep in mind that text needs to be encoded as :class:`bytes` " "before compressing and decompressing:" msgstr "" -#: ../../whatsnew/3.2.rst:1427 msgid "" "(Contributed by Anand B. Pillai in :issue:`3488`; and by Antoine Pitrou, Nir " "Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` " "and :issue:`2846`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1431 msgid "" "Also, the :class:`zipfile.ZipExtFile ` class was " "reworked internally to represent files stored inside an archive. The new " -"implementation is significantly faster and can be wrapped in " -"an :class:`io.BufferedReader` object for more speedups. It also solves an " -"issue where interleaved calls to *read* and *readline* gave the wrong " -"results." +"implementation is significantly faster and can be wrapped in an :class:`io." +"BufferedReader` object for more speedups. It also solves an issue where " +"interleaved calls to *read* and *readline* gave the wrong results." msgstr "" -#: ../../whatsnew/3.2.rst:1437 msgid "(Patch submitted by Nir Aides in :issue:`7610`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1440 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.2.rst:1442 msgid "" "The :class:`~tarfile.TarFile` class can now be used as a context manager. " "In addition, its :meth:`~tarfile.TarFile.add` method has a new option, " @@ -2023,17 +1735,15 @@ msgid "" "file metadata to be edited." msgstr "" -#: ../../whatsnew/3.2.rst:1447 msgid "" "The new *filter* option replaces the older, less flexible *exclude* " "parameter which is now deprecated. If specified, the optional *filter* " "parameter needs to be a :term:`keyword argument`. The user-supplied filter " -"function accepts a :class:`~tarfile.TarInfo` object and returns an " -"updated :class:`~tarfile.TarInfo` object, or if it wants the file to be " -"excluded, the function can return ``None``::" +"function accepts a :class:`~tarfile.TarInfo` object and returns an updated :" +"class:`~tarfile.TarInfo` object, or if it wants the file to be excluded, the " +"function can return ``None``::" msgstr "" -#: ../../whatsnew/3.2.rst:1454 msgid "" ">>> import tarfile, glob\n" "\n" @@ -2053,23 +1763,19 @@ msgid "" "-rw-r--r-- monty/501 1399 2011-01-26 17:59:11 semaphore_notes.txt" msgstr "" -#: ../../whatsnew/3.2.rst:1471 msgid "" "(Proposed by Tarek Ziadé and implemented by Lars Gustäbel in :issue:`6856`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1474 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.2.rst:1476 msgid "" "The :mod:`hashlib` module has two new constant attributes listing the " "hashing algorithms guaranteed to be present in all implementations and those " "available on the current implementation::" msgstr "" -#: ../../whatsnew/3.2.rst:1480 msgid "" ">>> import hashlib\n" "\n" @@ -2084,26 +1790,21 @@ msgid "" "'dsaEncryption', 'DSA', 'RIPEMD160', 'sha', 'MD5', 'sha384'}" msgstr "" -#: ../../whatsnew/3.2.rst:1491 msgid "(Suggested by Carl Chenet in :issue:`7418`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1494 msgid "ast" msgstr "" -#: ../../whatsnew/3.2.rst:1496 msgid "" "The :mod:`ast` module has a wonderful a general-purpose tool for safely " -"evaluating expression strings using the Python literal syntax. " -"The :func:`ast.literal_eval` function serves as a secure alternative to the " -"builtin :func:`eval` function which is easily abused. Python 3.2 " -"adds :class:`bytes` and :class:`set` literals to the list of supported " -"types: strings, bytes, numbers, tuples, lists, dicts, sets, booleans, and " -"``None``." +"evaluating expression strings using the Python literal syntax. The :func:" +"`ast.literal_eval` function serves as a secure alternative to the builtin :" +"func:`eval` function which is easily abused. Python 3.2 adds :class:`bytes` " +"and :class:`set` literals to the list of supported types: strings, bytes, " +"numbers, tuples, lists, dicts, sets, booleans, and ``None``." msgstr "" -#: ../../whatsnew/3.2.rst:1505 msgid "" ">>> from ast import literal_eval\n" "\n" @@ -2118,66 +1819,54 @@ msgid "" "ValueError: malformed node or string: <_ast.Call object at 0x101739a10>" msgstr "" -#: ../../whatsnew/3.2.rst:1517 msgid "(Implemented by Benjamin Peterson and Georg Brandl.)" msgstr "" -#: ../../whatsnew/3.2.rst:1520 msgid "os" msgstr "" -#: ../../whatsnew/3.2.rst:1522 msgid "" "Different operating systems use various encodings for filenames and " -"environment variables. The :mod:`os` module provides two new " -"functions, :func:`~os.fsencode` and :func:`~os.fsdecode`, for encoding and " -"decoding filenames:" +"environment variables. The :mod:`os` module provides two new functions, :" +"func:`~os.fsencode` and :func:`~os.fsdecode`, for encoding and decoding " +"filenames:" msgstr "" -#: ../../whatsnew/3.2.rst:1532 msgid "" "Some operating systems allow direct access to encoded bytes in the " "environment. If so, the :const:`os.supports_bytes_environ` constant will be " "true." msgstr "" -#: ../../whatsnew/3.2.rst:1536 msgid "" "For direct access to encoded environment variables (if available), use the " "new :func:`os.getenvb` function or use :data:`os.environb` which is a bytes " "version of :data:`os.environ`." msgstr "" -#: ../../whatsnew/3.2.rst:1540 msgid "(Contributed by Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.2.rst:1543 msgid "shutil" msgstr "" -#: ../../whatsnew/3.2.rst:1545 msgid "The :func:`shutil.copytree` function has two new options:" msgstr "" -#: ../../whatsnew/3.2.rst:1547 msgid "" "*ignore_dangling_symlinks*: when ``symlinks=False`` so that the function " "copies a file pointed to by a symlink, not the symlink itself. This option " "will silence the error raised if the file doesn't exist." msgstr "" -#: ../../whatsnew/3.2.rst:1551 msgid "" -"*copy_function*: is a callable that will be used to copy " -"files. :func:`shutil.copy2` is used by default." +"*copy_function*: is a callable that will be used to copy files. :func:" +"`shutil.copy2` is used by default." msgstr "" -#: ../../whatsnew/3.2.rst:1554 ../../whatsnew/3.2.rst:1592 msgid "(Contributed by Tarek Ziadé.)" msgstr "" -#: ../../whatsnew/3.2.rst:1556 msgid "" "In addition, the :mod:`shutil` module now supports :ref:`archiving " "operations ` for zipfiles, uncompressed tarfiles, " @@ -2186,16 +1875,14 @@ msgid "" "tarfiles or custom formats)." msgstr "" -#: ../../whatsnew/3.2.rst:1561 msgid "" -"The principal functions are :func:`~shutil.make_archive` " -"and :func:`~shutil.unpack_archive`. By default, both operate on the current " -"directory (which can be set by :func:`os.chdir`) and on any sub-directories. " -"The archive filename needs to be specified with a full pathname. The " -"archiving step is non-destructive (the original files are left unchanged)." +"The principal functions are :func:`~shutil.make_archive` and :func:`~shutil." +"unpack_archive`. By default, both operate on the current directory (which " +"can be set by :func:`os.chdir`) and on any sub-directories. The archive " +"filename needs to be specified with a full pathname. The archiving step is " +"non-destructive (the original files are left unchanged)." msgstr "" -#: ../../whatsnew/3.2.rst:1569 msgid "" ">>> import shutil, pprint\n" "\n" @@ -2221,54 +1908,44 @@ msgid "" "... )" msgstr "" -#: ../../whatsnew/3.2.rst:1595 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.2.rst:1597 msgid "" "The :mod:`sqlite3` module was updated to pysqlite version 2.6.0. It has two " "new capabilities." msgstr "" -#: ../../whatsnew/3.2.rst:1599 msgid "" "The :attr:`!sqlite3.Connection.in_transit` attribute is true if there is an " "active transaction for uncommitted changes." msgstr "" -#: ../../whatsnew/3.2.rst:1602 msgid "" -"The :meth:`sqlite3.Connection.enable_load_extension` " -"and :meth:`sqlite3.Connection.load_extension` methods allows you to load " -"SQLite extensions from \".so\" files. One well-known extension is the " -"fulltext-search extension distributed with SQLite." +"The :meth:`sqlite3.Connection.enable_load_extension` and :meth:`sqlite3." +"Connection.load_extension` methods allows you to load SQLite extensions from " +"\".so\" files. One well-known extension is the fulltext-search extension " +"distributed with SQLite." msgstr "" -#: ../../whatsnew/3.2.rst:1607 msgid "(Contributed by R. David Murray and Shashwat Anand; :issue:`8845`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1610 msgid "html" msgstr "" -#: ../../whatsnew/3.2.rst:1612 msgid "" -"A new :mod:`html` module was introduced with only a single " -"function, :func:`~html.escape`, which is used for escaping reserved " -"characters from HTML markup:" +"A new :mod:`html` module was introduced with only a single function, :func:" +"`~html.escape`, which is used for escaping reserved characters from HTML " +"markup:" msgstr "" -#: ../../whatsnew/3.2.rst:1621 msgid "socket" msgstr "" -#: ../../whatsnew/3.2.rst:1623 msgid "The :mod:`socket` module has two new improvements." msgstr "" -#: ../../whatsnew/3.2.rst:1625 msgid "" "Socket objects now have a :meth:`~socket.socket.detach` method which puts " "the socket into closed state without actually closing the underlying file " @@ -2276,24 +1953,20 @@ msgid "" "Antoine Pitrou; :issue:`8524`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1630 msgid "" ":func:`socket.create_connection` now supports the context management " "protocol to unconditionally consume :exc:`socket.error` exceptions and to " "close the socket when done. (Contributed by Giampaolo Rodolà; :issue:`9794`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1636 msgid "ssl" msgstr "" -#: ../../whatsnew/3.2.rst:1638 msgid "" "The :mod:`ssl` module added a number of features to satisfy common " "requirements for secure (encrypted, authenticated) internet connections:" msgstr "" -#: ../../whatsnew/3.2.rst:1641 msgid "" "A new class, :class:`~ssl.SSLContext`, serves as a container for persistent " "SSL data, such as protocol settings, certificates, private keys, and various " @@ -2301,14 +1974,12 @@ msgid "" "creating an SSL socket from an SSL context." msgstr "" -#: ../../whatsnew/3.2.rst:1646 msgid "" "A new function, :func:`!ssl.match_hostname`, supports server identity " "verification for higher-level protocols by implementing the rules of HTTPS " "(from :rfc:`2818`) which are also suitable for other protocols." msgstr "" -#: ../../whatsnew/3.2.rst:1650 msgid "" "The :func:`ssl.wrap_socket() ` constructor " "function now takes a *ciphers* argument. The *ciphers* string lists the " @@ -2317,7 +1988,6 @@ msgid "" "format>`__." msgstr "" -#: ../../whatsnew/3.2.rst:1655 msgid "" "When linked against recent versions of OpenSSL, the :mod:`ssl` module now " "supports the Server Name Indication extension to the TLS protocol, allowing " @@ -2326,40 +1996,32 @@ msgid "" "the *server_hostname* argument to :meth:`ssl.SSLContext.wrap_socket`." msgstr "" -#: ../../whatsnew/3.2.rst:1661 msgid "" -"Various options have been added to the :mod:`ssl` module, such " -"as :data:`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 " -"protocol." +"Various options have been added to the :mod:`ssl` module, such as :data:" +"`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 protocol." msgstr "" -#: ../../whatsnew/3.2.rst:1665 msgid "" "The extension now loads all the OpenSSL ciphers and digest algorithms. If " "some SSL certificates cannot be verified, they are reported as an \"unknown " "algorithm\" error." msgstr "" -#: ../../whatsnew/3.2.rst:1669 msgid "" "The version of OpenSSL being used is now accessible using the module " -"attributes :const:`ssl.OPENSSL_VERSION` (a " -"string), :const:`ssl.OPENSSL_VERSION_INFO` (a 5-tuple), " -"and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer)." +"attributes :const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl." +"OPENSSL_VERSION_INFO` (a 5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` " +"(an integer)." msgstr "" -#: ../../whatsnew/3.2.rst:1674 msgid "" -"(Contributed by Antoine Pitrou " -"in :issue:`8850`, :issue:`1589`, :issue:`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, " -"and :issue:`8321`.)" +"(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:" +"`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1678 msgid "nntp" msgstr "" -#: ../../whatsnew/3.2.rst:1680 msgid "" "The :mod:`!nntplib` module has a revamped implementation with better bytes " "and text semantics as well as more practical APIs. These improvements break " @@ -2367,24 +2029,20 @@ msgid "" "dysfunctional in itself." msgstr "" -#: ../../whatsnew/3.2.rst:1685 msgid "" -"Support for secure connections through both implicit (using :class:`!" -"nntplib.NNTP_SSL`) and explicit (using :meth:`!nntplib.NNTP.starttls`) TLS " -"has also been added." +"Support for secure connections through both implicit (using :class:`!nntplib." +"NNTP_SSL`) and explicit (using :meth:`!nntplib.NNTP.starttls`) TLS has also " +"been added." msgstr "" -#: ../../whatsnew/3.2.rst:1689 msgid "" -"(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant " -"in :issue:`1926`.)" +"(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant in :issue:" +"`1926`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1692 msgid "certificates" msgstr "" -#: ../../whatsnew/3.2.rst:1694 msgid "" ":class:`http.client.HTTPSConnection`, :class:`urllib.request.HTTPSHandler` " "and :func:`urllib.request.urlopen` now take optional arguments to allow for " @@ -2392,50 +2050,40 @@ msgid "" "recommended in public uses of HTTPS." msgstr "" -#: ../../whatsnew/3.2.rst:1699 msgid "(Added by Antoine Pitrou, :issue:`9003`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1702 msgid "imaplib" msgstr "" -#: ../../whatsnew/3.2.rst:1704 msgid "" "Support for explicit TLS on standard IMAP4 connections has been added " "through the new :mod:`imaplib.IMAP4.starttls` method." msgstr "" -#: ../../whatsnew/3.2.rst:1707 msgid "(Contributed by Lorenzo M. Catucci and Antoine Pitrou, :issue:`4471`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1710 msgid "http.client" msgstr "" -#: ../../whatsnew/3.2.rst:1712 msgid "" "There were a number of small API improvements in the :mod:`http.client` " "module. The old-style HTTP 0.9 simple responses are no longer supported and " "the *strict* parameter is deprecated in all classes." msgstr "" -#: ../../whatsnew/3.2.rst:1716 msgid "" -"The :class:`~http.client.HTTPConnection` " -"and :class:`~http.client.HTTPSConnection` classes now have a " -"*source_address* parameter for a (host, port) tuple indicating where the " -"HTTP connection is made from." +"The :class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` classes now have a *source_address* parameter for a (host, " +"port) tuple indicating where the HTTP connection is made from." msgstr "" -#: ../../whatsnew/3.2.rst:1721 msgid "" -"Support for certificate checking and HTTPS virtual hosts were added " -"to :class:`~http.client.HTTPSConnection`." +"Support for certificate checking and HTTPS virtual hosts were added to :" +"class:`~http.client.HTTPSConnection`." msgstr "" -#: ../../whatsnew/3.2.rst:1724 msgid "" "The :meth:`~http.client.HTTPConnection.request` method on connection objects " "allowed an optional *body* argument so that a :term:`file object` could be " @@ -2445,27 +2093,23 @@ msgid "" "flexible than before." msgstr "" -#: ../../whatsnew/3.2.rst:1731 msgid "" -"To establish an HTTPS connection through a proxy server, there is a " -"new :meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host " -"and port for HTTP Connect tunneling." +"To establish an HTTPS connection through a proxy server, there is a new :" +"meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host and " +"port for HTTP Connect tunneling." msgstr "" -#: ../../whatsnew/3.2.rst:1735 msgid "" "To match the behavior of :mod:`http.server`, the HTTP client library now " "also encodes headers with ISO-8859-1 (Latin-1) encoding. It was already " "doing that for incoming headers, so now the behavior is consistent for both " -"incoming and outgoing traffic. (See work by Armin Ronacher " -"in :issue:`10980`.)" +"incoming and outgoing traffic. (See work by Armin Ronacher in :issue:" +"`10980`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1741 msgid "unittest" msgstr "" -#: ../../whatsnew/3.2.rst:1743 msgid "" "The unittest module has a number of improvements supporting test discovery " "for packages, easier experimentation at the interactive prompt, new testcase " @@ -2473,7 +2117,6 @@ msgid "" "names." msgstr "" -#: ../../whatsnew/3.2.rst:1748 msgid "" "The command-line call ``python -m unittest`` can now accept file paths " "instead of module names for running specific tests (:issue:`10620`). The " @@ -2483,41 +2126,31 @@ msgid "" "and a directory to start discovery with ``-s``:" msgstr "" -#: ../../whatsnew/3.2.rst:1755 msgid "$ python -m unittest discover -s my_proj_dir -p _test.py" msgstr "" -#: ../../whatsnew/3.2.rst:1759 ../../whatsnew/3.2.rst:1768 -#: ../../whatsnew/3.2.rst:1924 msgid "(Contributed by Michael Foord.)" msgstr "" -#: ../../whatsnew/3.2.rst:1761 msgid "" -"Experimentation at the interactive prompt is now easier because " -"the :class:`unittest.TestCase` class can now be instantiated without " -"arguments:" +"Experimentation at the interactive prompt is now easier because the :class:" +"`unittest.TestCase` class can now be instantiated without arguments:" msgstr "" -#: ../../whatsnew/3.2.rst:1770 msgid "" -"The :mod:`unittest` module has two new " -"methods, :meth:`~unittest.TestCase.assertWarns` " -"and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that a given " -"warning type is triggered by the code under test::" +"The :mod:`unittest` module has two new methods, :meth:`~unittest.TestCase." +"assertWarns` and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that " +"a given warning type is triggered by the code under test::" msgstr "" -#: ../../whatsnew/3.2.rst:1775 msgid "" "with self.assertWarns(DeprecationWarning):\n" " legacy_function('XYZ')" msgstr "" -#: ../../whatsnew/3.2.rst:1778 msgid "(Contributed by Antoine Pitrou, :issue:`9754`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1780 msgid "" "Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to " "compare two iterables to determine if their element counts are equal " @@ -2525,13 +2158,11 @@ msgid "" "regardless of order)::" msgstr "" -#: ../../whatsnew/3.2.rst:1785 msgid "" "def test_anagram(self):\n" " self.assertCountEqual('algorithm', 'logarithm')" msgstr "" -#: ../../whatsnew/3.2.rst:1790 msgid "" "A principal feature of the unittest module is an effort to produce " "meaningful diagnostics when a test fails. When possible, the failure is " @@ -2541,124 +2172,99 @@ msgid "" "that sets maximum length of diffs displayed." msgstr "" -#: ../../whatsnew/3.2.rst:1797 msgid "" "In addition, the method names in the module have undergone a number of clean-" "ups." msgstr "" -#: ../../whatsnew/3.2.rst:1799 msgid "" -"For example, :meth:`~unittest.TestCase.assertRegex` is the new name " -"for :meth:`!assertRegexpMatches` which was misnamed because the test " -"uses :func:`re.search`, not :func:`re.match`. Other methods using regular " -"expressions are now named using short form \"Regex\" in preference to " -"\"Regexp\" -- this matches the names used in other unittest implementations, " -"matches Python's old name for the :mod:`re` module, and it has unambiguous " -"camel-casing." +"For example, :meth:`~unittest.TestCase.assertRegex` is the new name for :" +"meth:`!assertRegexpMatches` which was misnamed because the test uses :func:" +"`re.search`, not :func:`re.match`. Other methods using regular expressions " +"are now named using short form \"Regex\" in preference to \"Regexp\" -- this " +"matches the names used in other unittest implementations, matches Python's " +"old name for the :mod:`re` module, and it has unambiguous camel-casing." msgstr "" -#: ../../whatsnew/3.2.rst:1807 msgid "(Contributed by Raymond Hettinger and implemented by Ezio Melotti.)" msgstr "" -#: ../../whatsnew/3.2.rst:1809 msgid "" "To improve consistency, some long-standing method aliases are being " "deprecated in favor of the preferred names:" msgstr "" -#: ../../whatsnew/3.2.rst:1813 msgid "Old Name" msgstr "" -#: ../../whatsnew/3.2.rst:1813 msgid "Preferred Name" msgstr "" -#: ../../whatsnew/3.2.rst:1815 msgid ":meth:`!assert_`" msgstr "" -#: ../../whatsnew/3.2.rst:1815 msgid ":meth:`.assertTrue`" msgstr "" -#: ../../whatsnew/3.2.rst:1816 msgid ":meth:`!assertEquals`" msgstr "" -#: ../../whatsnew/3.2.rst:1816 msgid ":meth:`.assertEqual`" msgstr "" -#: ../../whatsnew/3.2.rst:1817 msgid ":meth:`!assertNotEquals`" msgstr "" -#: ../../whatsnew/3.2.rst:1817 msgid ":meth:`.assertNotEqual`" msgstr "" -#: ../../whatsnew/3.2.rst:1818 msgid ":meth:`!assertAlmostEquals`" msgstr "" -#: ../../whatsnew/3.2.rst:1818 msgid ":meth:`.assertAlmostEqual`" msgstr "" -#: ../../whatsnew/3.2.rst:1819 msgid ":meth:`!assertNotAlmostEquals`" msgstr "" -#: ../../whatsnew/3.2.rst:1819 msgid ":meth:`.assertNotAlmostEqual`" msgstr "" -#: ../../whatsnew/3.2.rst:1822 msgid "" "Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are " "expected to be removed in Python 3.3." msgstr "" -#: ../../whatsnew/3.2.rst:1825 msgid "(Contributed by Ezio Melotti; :issue:`9424`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1827 msgid "" "The :meth:`!assertDictContainsSubset` method was deprecated because it was " "misimplemented with the arguments in the wrong order. This created hard-to-" -"debug optical illusions where tests like " -"``TestCase().assertDictContainsSubset({'a':1, 'b':2}, {'a':1})`` would fail." +"debug optical illusions where tests like ``TestCase()." +"assertDictContainsSubset({'a':1, 'b':2}, {'a':1})`` would fail." msgstr "" -#: ../../whatsnew/3.2.rst:1835 msgid "random" msgstr "" -#: ../../whatsnew/3.2.rst:1837 msgid "" "The integer methods in the :mod:`random` module now do a better job of " "producing uniform distributions. Previously, they computed selections with " "``int(n*random())`` which had a slight bias whenever *n* was not a power of " "two. Now, multiple selections are made from a range up to the next power of " "two and a selection is kept only when it falls within the range ``0 <= x < " -"n``. The functions and methods affected " -"are :func:`~random.randrange`, :func:`~random.randint`, :func:`~random.choice`, :func:`~random.shuffle` " -"and :func:`~random.sample`." +"n``. The functions and methods affected are :func:`~random.randrange`, :" +"func:`~random.randint`, :func:`~random.choice`, :func:`~random.shuffle` and :" +"func:`~random.sample`." msgstr "" -#: ../../whatsnew/3.2.rst:1846 msgid "(Contributed by Raymond Hettinger; :issue:`9025`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1849 msgid "poplib" msgstr "" -#: ../../whatsnew/3.2.rst:1851 msgid "" ":class:`~poplib.POP3_SSL` class now accepts a *context* parameter, which is " "a :class:`ssl.SSLContext` object allowing bundling SSL configuration " @@ -2666,15 +2272,12 @@ msgid "" "lived) structure." msgstr "" -#: ../../whatsnew/3.2.rst:1856 msgid "(Contributed by Giampaolo Rodolà; :issue:`8807`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1859 msgid "asyncore" msgstr "" -#: ../../whatsnew/3.2.rst:1861 msgid "" ":class:`!asyncore.dispatcher` now provides a :meth:`!handle_accepted` method " "returning a ``(sock, addr)`` pair which is called when a connection has " @@ -2683,43 +2286,35 @@ msgid "" "call :meth:`!accept` directly." msgstr "" -#: ../../whatsnew/3.2.rst:1868 msgid "(Contributed by Giampaolo Rodolà; :issue:`6706`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1871 msgid "tempfile" msgstr "" -#: ../../whatsnew/3.2.rst:1873 msgid "" -"The :mod:`tempfile` module has a new context " -"manager, :class:`~tempfile.TemporaryDirectory` which provides easy " -"deterministic cleanup of temporary directories::" +"The :mod:`tempfile` module has a new context manager, :class:`~tempfile." +"TemporaryDirectory` which provides easy deterministic cleanup of temporary " +"directories::" msgstr "" -#: ../../whatsnew/3.2.rst:1877 msgid "" "with tempfile.TemporaryDirectory() as tmpdirname:\n" " print('created temporary dir:', tmpdirname)" msgstr "" -#: ../../whatsnew/3.2.rst:1880 msgid "(Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1883 msgid "inspect" msgstr "" -#: ../../whatsnew/3.2.rst:1885 msgid "" -"The :mod:`inspect` module has a new " -"function :func:`~inspect.getgeneratorstate` to easily identify the current " -"state of a generator-iterator::" +"The :mod:`inspect` module has a new function :func:`~inspect." +"getgeneratorstate` to easily identify the current state of a generator-" +"iterator::" msgstr "" -#: ../../whatsnew/3.2.rst:1889 msgid "" ">>> from inspect import getgeneratorstate\n" ">>> def gen():\n" @@ -2737,19 +2332,16 @@ msgid "" "'GEN_CLOSED'" msgstr "" -#: ../../whatsnew/3.2.rst:1904 msgid "(Contributed by Rodolpho Eckhardt and Nick Coghlan, :issue:`10220`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1906 msgid "" "To support lookups without the possibility of activating a dynamic " -"attribute, the :mod:`inspect` module has a new " -"function, :func:`~inspect.getattr_static`. Unlike :func:`hasattr`, this is a " -"true read-only search, guaranteed not to change state while it is searching::" +"attribute, the :mod:`inspect` module has a new function, :func:`~inspect." +"getattr_static`. Unlike :func:`hasattr`, this is a true read-only search, " +"guaranteed not to change state while it is searching::" msgstr "" -#: ../../whatsnew/3.2.rst:1911 msgid "" ">>> class A:\n" "... @property\n" @@ -2765,39 +2357,31 @@ msgid "" "" msgstr "" -#: ../../whatsnew/3.2.rst:1927 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.2.rst:1929 msgid "" "The :mod:`pydoc` module now provides a much-improved web server interface, " "as well as a new command-line option ``-b`` to automatically open a browser " "window to display that server:" msgstr "" -#: ../../whatsnew/3.2.rst:1933 msgid "$ pydoc3.2 -b" msgstr "" -#: ../../whatsnew/3.2.rst:1937 msgid "(Contributed by Ron Adam; :issue:`2001`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1940 msgid "dis" msgstr "" -#: ../../whatsnew/3.2.rst:1942 msgid "" -"The :mod:`dis` module gained two new functions for inspecting " -"code, :func:`~dis.code_info` and :func:`~dis.show_code`. Both provide " -"detailed code object information for the supplied function, method, source " -"code string or code object. The former returns a string and the latter " -"prints it::" +"The :mod:`dis` module gained two new functions for inspecting code, :func:" +"`~dis.code_info` and :func:`~dis.show_code`. Both provide detailed code " +"object information for the supplied function, method, source code string or " +"code object. The former returns a string and the latter prints it::" msgstr "" -#: ../../whatsnew/3.2.rst:1947 msgid "" ">>> import dis, random\n" ">>> dis.show_code(random.choice)\n" @@ -2823,14 +2407,12 @@ msgid "" " 2: i" msgstr "" -#: ../../whatsnew/3.2.rst:1969 msgid "" "In addition, the :func:`~dis.dis` function now accepts string arguments so " "that the common idiom ``dis(compile(s, '', 'eval'))`` can be shortened to " "``dis(s)``::" msgstr "" -#: ../../whatsnew/3.2.rst:1973 msgid "" ">>> dis('3*x+1 if x%2==1 else x//2')\n" " 1 0 LOAD_NAME 0 (x)\n" @@ -2851,69 +2433,56 @@ msgid "" " 35 RETURN_VALUE" msgstr "" -#: ../../whatsnew/3.2.rst:1991 msgid "" "Taken together, these improvements make it easier to explore how CPython is " "implemented and to see for yourself what the language syntax does under-the-" "hood." msgstr "" -#: ../../whatsnew/3.2.rst:1995 msgid "(Contributed by Nick Coghlan in :issue:`9147`.)" msgstr "" -#: ../../whatsnew/3.2.rst:1998 msgid "dbm" msgstr "" -#: ../../whatsnew/3.2.rst:2000 msgid "" "All database modules now support the :meth:`!get` and :meth:`!setdefault` " "methods." msgstr "" -#: ../../whatsnew/3.2.rst:2002 msgid "(Suggested by Ray Allen in :issue:`9523`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2005 msgid "ctypes" msgstr "" -#: ../../whatsnew/3.2.rst:2007 msgid "" "A new type, :class:`ctypes.c_ssize_t` represents the C :c:type:`ssize_t` " "datatype." msgstr "" -#: ../../whatsnew/3.2.rst:2010 msgid "site" msgstr "" -#: ../../whatsnew/3.2.rst:2012 msgid "" "The :mod:`site` module has three new functions useful for reporting on the " "details of a given Python installation." msgstr "" -#: ../../whatsnew/3.2.rst:2015 msgid "" ":func:`~site.getsitepackages` lists all global site-packages directories." msgstr "" -#: ../../whatsnew/3.2.rst:2017 msgid "" ":func:`~site.getuserbase` reports on the user's base directory where data " "can be stored." msgstr "" -#: ../../whatsnew/3.2.rst:2020 msgid "" ":func:`~site.getusersitepackages` reveals the user-specific site-packages " "directory path." msgstr "" -#: ../../whatsnew/3.2.rst:2025 msgid "" ">>> import site\n" ">>> site.getsitepackages()\n" @@ -2927,13 +2496,11 @@ msgid "" "'/Users/raymondhettinger/Library/Python/3.2/lib/python/site-packages'" msgstr "" -#: ../../whatsnew/3.2.rst:2035 msgid "" "Conveniently, some of site's functionality is accessible directly from the " "command-line:" msgstr "" -#: ../../whatsnew/3.2.rst:2038 msgid "" "$ python -m site --user-base\n" "/Users/raymondhettinger/.local\n" @@ -2941,63 +2508,52 @@ msgid "" "/Users/raymondhettinger/.local/lib/python3.2/site-packages" msgstr "" -#: ../../whatsnew/3.2.rst:2045 msgid "(Contributed by Tarek Ziadé in :issue:`6693`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2048 msgid "sysconfig" msgstr "" -#: ../../whatsnew/3.2.rst:2050 msgid "" "The new :mod:`sysconfig` module makes it straightforward to discover " "installation paths and configuration variables that vary across platforms " "and installations." msgstr "" -#: ../../whatsnew/3.2.rst:2054 msgid "" "The module offers access simple access functions for platform and version " "information:" msgstr "" -#: ../../whatsnew/3.2.rst:2057 msgid "" ":func:`~sysconfig.get_platform` returning values like *linux-i586* or " "*macosx-10.6-ppc*." msgstr "" -#: ../../whatsnew/3.2.rst:2059 msgid "" ":func:`~sysconfig.get_python_version` returns a Python version string such " "as \"3.2\"." msgstr "" -#: ../../whatsnew/3.2.rst:2062 msgid "" "It also provides access to the paths and variables corresponding to one of " "seven named schemes used by ``distutils``. Those include *posix_prefix*, " "*posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*:" msgstr "" -#: ../../whatsnew/3.2.rst:2066 msgid "" ":func:`~sysconfig.get_paths` makes a dictionary containing installation " "paths for the current installation scheme." msgstr "" -#: ../../whatsnew/3.2.rst:2068 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary of platform specific " "variables." msgstr "" -#: ../../whatsnew/3.2.rst:2071 msgid "There is also a convenient command-line interface:" msgstr "" -#: ../../whatsnew/3.2.rst:2073 msgid "" "C:\\Python32>python -m sysconfig\n" "Platform: \"win32\"\n" @@ -3036,82 +2592,67 @@ msgid "" "Data\\Python\"" msgstr "" -#: ../../whatsnew/3.2.rst:2110 msgid "(Moved out of Distutils by Tarek Ziadé.)" msgstr "" -#: ../../whatsnew/3.2.rst:2113 msgid "pdb" msgstr "" -#: ../../whatsnew/3.2.rst:2115 msgid "" "The :mod:`pdb` debugger module gained a number of usability improvements:" msgstr "" -#: ../../whatsnew/3.2.rst:2117 msgid "" -":file:`pdb.py` now has a ``-c`` option that executes commands as given in " -"a :file:`.pdbrc` script file." +":file:`pdb.py` now has a ``-c`` option that executes commands as given in a :" +"file:`.pdbrc` script file." msgstr "" -#: ../../whatsnew/3.2.rst:2119 msgid "" "A :file:`.pdbrc` script file can contain ``continue`` and ``next`` commands " "that continue debugging." msgstr "" -#: ../../whatsnew/3.2.rst:2121 msgid "" "The :class:`~pdb.Pdb` class constructor now accepts a *nosigint* argument." msgstr "" -#: ../../whatsnew/3.2.rst:2122 msgid "" "New commands: ``l(list)``, ``ll(long list)`` and ``source`` for listing " "source code." msgstr "" -#: ../../whatsnew/3.2.rst:2124 msgid "" "New commands: ``display`` and ``undisplay`` for showing or hiding the value " "of an expression if it has changed." msgstr "" -#: ../../whatsnew/3.2.rst:2126 msgid "" "New command: ``interact`` for starting an interactive interpreter containing " "the global and local names found in the current scope." msgstr "" -#: ../../whatsnew/3.2.rst:2128 msgid "Breakpoints can be cleared by breakpoint number." msgstr "" -#: ../../whatsnew/3.2.rst:2130 msgid "(Contributed by Georg Brandl, Antonio Cuni and Ilya Sandler.)" msgstr "" -#: ../../whatsnew/3.2.rst:2133 msgid "configparser" msgstr "" -#: ../../whatsnew/3.2.rst:2135 msgid "" "The :mod:`configparser` module was modified to improve usability and " -"predictability of the default parser and its supported INI syntax. The " -"old :class:`!ConfigParser` class was removed in favor of :class:`!" -"SafeConfigParser` which has in turn been renamed " -"to :class:`~configparser.ConfigParser`. Support for inline comments is now " -"turned off by default and section or option duplicates are not allowed in a " -"single configuration source." +"predictability of the default parser and its supported INI syntax. The old :" +"class:`!ConfigParser` class was removed in favor of :class:`!" +"SafeConfigParser` which has in turn been renamed to :class:`~configparser." +"ConfigParser`. Support for inline comments is now turned off by default and " +"section or option duplicates are not allowed in a single configuration " +"source." msgstr "" -#: ../../whatsnew/3.2.rst:2142 msgid "Config parsers gained a new API based on the mapping protocol::" msgstr "" -#: ../../whatsnew/3.2.rst:2144 msgid "" ">>> parser = ConfigParser()\n" ">>> parser.read_string(\"\"\"\n" @@ -3140,26 +2681,22 @@ msgid "" "'Options (editable: no)'" msgstr "" -#: ../../whatsnew/3.2.rst:2170 msgid "" "The new API is implemented on top of the classical API, so custom parser " "subclasses should be able to use it without modifications." msgstr "" -#: ../../whatsnew/3.2.rst:2173 msgid "" "The INI file structure accepted by config parsers can now be customized. " "Users can specify alternative option/value delimiters and comment prefixes, " "change the name of the *DEFAULT* section or switch the interpolation syntax." msgstr "" -#: ../../whatsnew/3.2.rst:2177 msgid "" "There is support for pluggable interpolation including an additional " "interpolation handler :class:`~configparser.ExtendedInterpolation`::" msgstr "" -#: ../../whatsnew/3.2.rst:2180 msgid "" ">>> parser = ConfigParser(interpolation=ExtendedInterpolation())\n" ">>> parser.read_dict({'buildout': {'directory': '/home/ambv/zope9'},\n" @@ -3192,40 +2729,33 @@ msgid "" "'/opt/zope'" msgstr "" -#: ../../whatsnew/3.2.rst:2210 msgid "" "A number of smaller features were also introduced, like support for " "specifying encoding in read operations, specifying fallback values for get-" "functions, or reading directly from dictionaries and strings." msgstr "" -#: ../../whatsnew/3.2.rst:2214 msgid "(All changes contributed by Łukasz Langa.)" msgstr "" -#: ../../whatsnew/3.2.rst:2219 msgid "urllib.parse" msgstr "" -#: ../../whatsnew/3.2.rst:2221 msgid "" "A number of usability improvements were made for the :mod:`urllib.parse` " "module." msgstr "" -#: ../../whatsnew/3.2.rst:2223 msgid "" -"The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" +"The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" msgstr "" -#: ../../whatsnew/3.2.rst:2235 msgid "" "The :func:`~urllib.parse.urldefrag` function now returns a :term:`named " "tuple`::" msgstr "" -#: ../../whatsnew/3.2.rst:2237 msgid "" ">>> r = urllib.parse.urldefrag('http://python.org/about/#target')\n" ">>> r\n" @@ -3236,15 +2766,13 @@ msgid "" "'target'" msgstr "" -#: ../../whatsnew/3.2.rst:2245 msgid "" "And, the :func:`~urllib.parse.urlencode` function is now much more flexible, " "accepting either a string or bytes type for the *query* argument. If it is " -"a string, then the *safe*, *encoding*, and *error* parameters are sent " -"to :func:`~urllib.parse.quote_plus` for encoding::" +"a string, then the *safe*, *encoding*, and *error* parameters are sent to :" +"func:`~urllib.parse.quote_plus` for encoding::" msgstr "" -#: ../../whatsnew/3.2.rst:2250 msgid "" ">>> urllib.parse.urlencode([\n" "... ('type', 'telenovela'),\n" @@ -3253,26 +2781,22 @@ msgid "" "'type=telenovela&name=%BFD%F3nde+Est%E1+Elisa%3F'" msgstr "" -#: ../../whatsnew/3.2.rst:2256 msgid "" -"As detailed in :ref:`parsing-ascii-encoded-bytes`, all " -"the :mod:`urllib.parse` functions now accept ASCII-encoded byte strings as " -"input, so long as they are not mixed with regular strings. If ASCII-encoded " -"byte strings are given as parameters, the return types will also be an ASCII-" -"encoded byte strings:" +"As detailed in :ref:`parsing-ascii-encoded-bytes`, all the :mod:`urllib." +"parse` functions now accept ASCII-encoded byte strings as input, so long as " +"they are not mixed with regular strings. If ASCII-encoded byte strings are " +"given as parameters, the return types will also be an ASCII-encoded byte " +"strings:" msgstr "" -#: ../../whatsnew/3.2.rst:2265 msgid "" -"(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran " -"in :issue:`2987`, :issue:`5468`, and :issue:`9873`.)" +"(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran in :issue:`2987`, :" +"issue:`5468`, and :issue:`9873`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2269 msgid "mailbox" msgstr "" -#: ../../whatsnew/3.2.rst:2271 msgid "" "Thanks to a concerted effort by R. David Murray, the :mod:`mailbox` module " "has been fixed for Python 3.2. The challenge was that mailbox had been " @@ -3281,54 +2805,46 @@ msgid "" "different encodings." msgstr "" -#: ../../whatsnew/3.2.rst:2276 msgid "" "The solution harnessed the :mod:`email` package's binary support for parsing " "arbitrary email messages. In addition, the solution required a number of " "API changes." msgstr "" -#: ../../whatsnew/3.2.rst:2280 msgid "" -"As expected, the :meth:`~mailbox.Mailbox.add` method " -"for :class:`mailbox.Mailbox` objects now accepts binary input." +"As expected, the :meth:`~mailbox.Mailbox.add` method for :class:`mailbox." +"Mailbox` objects now accepts binary input." msgstr "" -#: ../../whatsnew/3.2.rst:2283 msgid "" ":class:`~io.StringIO` and text file input are deprecated. Also, string " "input will fail early if non-ASCII characters are used. Previously it would " "fail when the email was processed in a later step." msgstr "" -#: ../../whatsnew/3.2.rst:2287 msgid "" -"There is also support for binary output. " -"The :meth:`~mailbox.Mailbox.get_file` method now returns a file in the " -"binary mode (where it used to incorrectly set the file to text-mode). There " -"is also a new :meth:`~mailbox.Mailbox.get_bytes` method that returns " -"a :class:`bytes` representation of a message corresponding to a given *key*." +"There is also support for binary output. The :meth:`~mailbox.Mailbox." +"get_file` method now returns a file in the binary mode (where it used to " +"incorrectly set the file to text-mode). There is also a new :meth:`~mailbox." +"Mailbox.get_bytes` method that returns a :class:`bytes` representation of a " +"message corresponding to a given *key*." msgstr "" -#: ../../whatsnew/3.2.rst:2293 msgid "" -"It is still possible to get non-binary output using the old " -"API's :meth:`~mailbox.Mailbox.get_string` method, but that approach is not " -"very useful. Instead, it is best to extract messages from " -"a :class:`~mailbox.Message` object or to load them from binary input." +"It is still possible to get non-binary output using the old API's :meth:" +"`~mailbox.Mailbox.get_string` method, but that approach is not very useful. " +"Instead, it is best to extract messages from a :class:`~mailbox.Message` " +"object or to load them from binary input." msgstr "" -#: ../../whatsnew/3.2.rst:2298 msgid "" "(Contributed by R. David Murray, with efforts from Steffen Daode Nurpmeso " "and an initial patch by Victor Stinner in :issue:`9124`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2302 msgid "turtledemo" msgstr "" -#: ../../whatsnew/3.2.rst:2304 msgid "" "The demonstration code for the :mod:`turtle` module was moved from the " "*Demo* directory to main library. It includes over a dozen sample scripts " @@ -3336,20 +2852,16 @@ msgid "" "from the command-line:" msgstr "" -#: ../../whatsnew/3.2.rst:2309 msgid "$ python -m turtledemo" msgstr "" -#: ../../whatsnew/3.2.rst:2313 msgid "" "(Moved from the Demo directory by Alexander Belopolsky in :issue:`10199`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2316 msgid "Multi-threading" msgstr "Többszálúság" -#: ../../whatsnew/3.2.rst:2318 msgid "" "The mechanism for serializing execution of concurrently running Python " "threads (generally known as the :term:`GIL` or Global Interpreter Lock) has " @@ -3357,12 +2869,10 @@ msgid "" "intervals and reduced overhead due to lock contention and the number of " "ensuing system calls. The notion of a \"check interval\" to allow thread " "switches has been abandoned and replaced by an absolute duration expressed " -"in seconds. This parameter is tunable " -"through :func:`sys.setswitchinterval`. It currently defaults to 5 " -"milliseconds." +"in seconds. This parameter is tunable through :func:`sys." +"setswitchinterval`. It currently defaults to 5 milliseconds." msgstr "" -#: ../../whatsnew/3.2.rst:2327 msgid "" "Additional details about the implementation can be read from a `python-dev " "mailing-list message `_ used " -"in :meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " +"The `Timsort algorithm `_ used in :" +"meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " "when called with a :term:`key function`. Previously, every element of a " "list was wrapped with a temporary object that remembered the key value " "associated with each element. Now, two arrays of keys and values are sorted " @@ -3453,76 +2950,63 @@ msgid "" "saves time lost to delegating comparisons." msgstr "" -#: ../../whatsnew/3.2.rst:2382 msgid "(Patch by Daniel Stutzbach in :issue:`9915`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2384 msgid "" "JSON decoding performance is improved and memory consumption is reduced " "whenever the same string is repeated for multiple keys. Also, JSON encoding " "now uses the C speedups when the ``sort_keys`` argument is true." msgstr "" -#: ../../whatsnew/3.2.rst:2388 msgid "" "(Contributed by Antoine Pitrou in :issue:`7451` and by Raymond Hettinger and " "Antoine Pitrou in :issue:`10314`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2391 msgid "" "Recursive locks (created with the :func:`threading.RLock` API) now benefit " "from a C implementation which makes them as fast as regular locks, and " "between 10x and 15x faster than their previous pure Python implementation." msgstr "" -#: ../../whatsnew/3.2.rst:2395 msgid "(Contributed by Antoine Pitrou; :issue:`3001`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2397 msgid "" -"The fast-search algorithm in stringlib is now used by " -"the :meth:`~str.split`, :meth:`~str.rsplit`, :meth:`~str.splitlines` " -"and :meth:`~str.replace` methods on :class:`bytes`, :class:`bytearray` " -"and :class:`str` objects. Likewise, the algorithm is also used " -"by :meth:`~str.rfind`, :meth:`~str.rindex`, :meth:`~str.rsplit` " -"and :meth:`~str.rpartition`." +"The fast-search algorithm in stringlib is now used by the :meth:`~str." +"split`, :meth:`~str.rsplit`, :meth:`~str.splitlines` and :meth:`~str." +"replace` methods on :class:`bytes`, :class:`bytearray` and :class:`str` " +"objects. Likewise, the algorithm is also used by :meth:`~str.rfind`, :meth:" +"`~str.rindex`, :meth:`~str.rsplit` and :meth:`~str.rpartition`." msgstr "" -#: ../../whatsnew/3.2.rst:2403 msgid "(Patch by Florent Xicluna in :issue:`7622` and :issue:`7462`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2406 msgid "" "Integer to string conversions now work two \"digits\" at a time, reducing " "the number of division and modulo operations." msgstr "" -#: ../../whatsnew/3.2.rst:2409 msgid "(:issue:`6713` by Gawain Bolton, Mark Dickinson, and Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.2.rst:2411 msgid "" "There were several other minor optimizations. Set differencing now runs " "faster when one operand is much larger than the other (patch by Andress " "Bennetts in :issue:`8685`). The :meth:`!array.repeat` method has a faster " -"implementation (:issue:`1569291` by Alexander Belopolsky). " -"The :class:`~http.server.BaseHTTPRequestHandler` has more efficient " -"buffering (:issue:`3709` by Andrew Schaaf). The :func:`operator.attrgetter` " -"function has been sped-up (:issue:`10160` by Christos Georgiou). " -"And :class:`~configparser.ConfigParser` loads multi-line arguments a bit " -"faster (:issue:`7113` by Łukasz Langa)." +"implementation (:issue:`1569291` by Alexander Belopolsky). The :class:`~http." +"server.BaseHTTPRequestHandler` has more efficient buffering (:issue:`3709` " +"by Andrew Schaaf). The :func:`operator.attrgetter` function has been sped-" +"up (:issue:`10160` by Christos Georgiou). And :class:`~configparser." +"ConfigParser` loads multi-line arguments a bit faster (:issue:`7113` by " +"Łukasz Langa)." msgstr "" -#: ../../whatsnew/3.2.rst:2422 msgid "Unicode" msgstr "" -#: ../../whatsnew/3.2.rst:2424 msgid "" "Python has been updated to `Unicode 6.0.0 `_. The update to the standard adds over 2,000 new characters " @@ -3530,7 +3014,6 @@ msgid "" "important for mobile phones." msgstr "" -#: ../../whatsnew/3.2.rst:2429 msgid "" "In addition, the updated standard has altered the character properties for " "two Kannada characters (U+0CF1, U+0CF2) and one New Tai Lue numeric " @@ -3540,15 +3023,12 @@ msgid "" "#Database_Changes>`_." msgstr "" -#: ../../whatsnew/3.2.rst:2437 msgid "Codecs" msgstr "" -#: ../../whatsnew/3.2.rst:2439 msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." msgstr "" -#: ../../whatsnew/3.2.rst:2441 msgid "" "MBCS encoding no longer ignores the error handler argument. In the default " "strict mode, it raises an :exc:`UnicodeDecodeError` when it encounters an " @@ -3556,40 +3036,33 @@ msgid "" "unencodable character." msgstr "" -#: ../../whatsnew/3.2.rst:2446 msgid "" "The MBCS codec supports ``'strict'`` and ``'ignore'`` error handlers for " "decoding, and ``'strict'`` and ``'replace'`` for encoding." msgstr "" -#: ../../whatsnew/3.2.rst:2449 msgid "" "To emulate Python3.1 MBCS encoding, select the ``'ignore'`` handler for " "decoding and the ``'replace'`` handler for encoding." msgstr "" -#: ../../whatsnew/3.2.rst:2452 msgid "" "On Mac OS X, Python decodes command line arguments with ``'utf-8'`` rather " "than the locale encoding." msgstr "" -#: ../../whatsnew/3.2.rst:2455 msgid "" "By default, :mod:`tarfile` uses ``'utf-8'`` encoding on Windows (instead of " "``'mbcs'``) and the ``'surrogateescape'`` error handler on all operating " "systems." msgstr "" -#: ../../whatsnew/3.2.rst:2461 msgid "Documentation" msgstr "" -#: ../../whatsnew/3.2.rst:2463 msgid "The documentation continues to be improved." msgstr "" -#: ../../whatsnew/3.2.rst:2465 msgid "" "A table of quick links has been added to the top of lengthy sections such " "as :ref:`built-in-funcs`. In the case of :mod:`itertools`, the links are " @@ -3597,7 +3070,6 @@ msgid "" "and memory jog without having to read all of the docs." msgstr "" -#: ../../whatsnew/3.2.rst:2470 msgid "" "In some cases, the pure Python source code can be a helpful adjunct to the " "documentation, so now many modules now feature quick links to the latest " @@ -3605,110 +3077,89 @@ msgid "" "documentation has a quick link at the top labeled:" msgstr "" -#: ../../whatsnew/3.2.rst:2475 msgid "**Source code** :source:`Lib/functools.py`." msgstr "" -#: ../../whatsnew/3.2.rst:2477 msgid "" -"(Contributed by Raymond Hettinger; see `rationale `_.)" +"(Contributed by Raymond Hettinger; see `rationale `_.)" msgstr "" -#: ../../whatsnew/3.2.rst:2480 msgid "" "The docs now contain more examples and recipes. In particular, :mod:`re` " -"module has an extensive section, :ref:`re-examples`. Likewise, " -"the :mod:`itertools` module continues to be updated with new :ref:`itertools-" -"recipes`." +"module has an extensive section, :ref:`re-examples`. Likewise, the :mod:" +"`itertools` module continues to be updated with new :ref:`itertools-recipes`." msgstr "" -#: ../../whatsnew/3.2.rst:2485 msgid "" "The :mod:`datetime` module now has an auxiliary implementation in pure " "Python. No functionality was changed. This just provides an easier-to-read " "alternate implementation." msgstr "" -#: ../../whatsnew/3.2.rst:2489 msgid "(Contributed by Alexander Belopolsky in :issue:`9528`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2491 msgid "" "The unmaintained :file:`Demo` directory has been removed. Some demos were " "integrated into the documentation, some were moved to the :file:`Tools/demo` " "directory, and others were removed altogether." msgstr "" -#: ../../whatsnew/3.2.rst:2495 msgid "(Contributed by Georg Brandl in :issue:`7962`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2499 msgid "IDLE" msgstr "" -#: ../../whatsnew/3.2.rst:2501 msgid "" "The format menu now has an option to clean source files by stripping " "trailing whitespace." msgstr "" -#: ../../whatsnew/3.2.rst:2504 msgid "(Contributed by Raymond Hettinger; :issue:`5150`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2506 msgid "IDLE on Mac OS X now works with both Carbon AquaTk and Cocoa AquaTk." msgstr "" -#: ../../whatsnew/3.2.rst:2508 msgid "" "(Contributed by Kevin Walzer, Ned Deily, and Ronald Oussoren; :issue:`6075`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2511 msgid "Code Repository" msgstr "" -#: ../../whatsnew/3.2.rst:2513 msgid "" -"In addition to the existing Subversion code repository at https://" -"svn.python.org there is now a `Mercurial `_ " -"repository at https://hg.python.org/\\ ." +"In addition to the existing Subversion code repository at https://svn.python." +"org there is now a `Mercurial `_ repository " +"at https://hg.python.org/\\ ." msgstr "" -#: ../../whatsnew/3.2.rst:2517 msgid "" "After the 3.2 release, there are plans to switch to Mercurial as the primary " "repository. This distributed version control system should make it easier " -"for members of the community to create and share external changesets. " -"See :pep:`385` for details." +"for members of the community to create and share external changesets. See :" +"pep:`385` for details." msgstr "" -#: ../../whatsnew/3.2.rst:2522 msgid "" "To learn to use the new version control system, see the `Quick Start " "`_ or the `Guide to Mercurial " "Workflows `_." msgstr "" -#: ../../whatsnew/3.2.rst:2528 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.2.rst:2530 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/3.2.rst:2532 msgid "" "The *idle*, *pydoc* and *2to3* scripts are now installed with a version-" "specific suffix on ``make altinstall`` (:issue:`10679`)." msgstr "" -#: ../../whatsnew/3.2.rst:2535 msgid "" "The C functions that access the Unicode Database now accept and return " "characters from the full Unicode range, even on narrow unicode builds " @@ -3718,33 +3169,27 @@ msgid "" "characters as printable." msgstr "" -#: ../../whatsnew/3.2.rst:2542 msgid "" "(Reported by Bupjoe Lee and fixed by Amaury Forgeot D'Arc; :issue:`5127`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2544 msgid "" "Computed gotos are now enabled by default on supported compilers (which are " "detected by the configure script). They can still be disabled selectively " "by specifying ``--without-computed-gotos``." msgstr "" -#: ../../whatsnew/3.2.rst:2548 msgid "(Contributed by Antoine Pitrou; :issue:`9203`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2550 msgid "" "The option ``--with-wctype-functions`` was removed. The built-in unicode " "database is now used for all functions." msgstr "" -#: ../../whatsnew/3.2.rst:2553 msgid "(Contributed by Amaury Forgeot D'Arc; :issue:`9210`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2555 msgid "" "Hash values are now values of a new type, :c:type:`Py_hash_t`, which is " "defined to be the same size as a pointer. Previously they were of type " @@ -3754,34 +3199,29 @@ msgid "" "grow to that size but their performance degraded catastrophically)." msgstr "" -#: ../../whatsnew/3.2.rst:2562 msgid "" -"(Suggested by Raymond Hettinger and implemented by Benjamin " -"Peterson; :issue:`9778`.)" +"(Suggested by Raymond Hettinger and implemented by Benjamin Peterson; :issue:" +"`9778`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2565 msgid "" "A new macro :c:macro:`!Py_VA_COPY` copies the state of the variable argument " "list. It is equivalent to C99 *va_copy* but available on all Python " "platforms (:issue:`2443`)." msgstr "" -#: ../../whatsnew/3.2.rst:2569 msgid "" "A new C API function :c:func:`!PySys_SetArgvEx` allows an embedded " "interpreter to set :data:`sys.argv` without also modifying :data:`sys.path` " "(:issue:`5753`)." msgstr "" -#: ../../whatsnew/3.2.rst:2573 msgid "" ":c:func:`!PyEval_CallObject` is now only available in macro form. The " "function declaration, which was kept for backwards compatibility reasons, is " "now removed -- the macro was introduced in 1997 (:issue:`8276`)." msgstr "" -#: ../../whatsnew/3.2.rst:2577 msgid "" "There is a new function :c:func:`PyLong_AsLongLongAndOverflow` which is " "analogous to :c:func:`PyLong_AsLongAndOverflow`. They both serve to convert " @@ -3789,21 +3229,18 @@ msgid "" "of cases where the conversion won't fit (:issue:`7767`)." msgstr "" -#: ../../whatsnew/3.2.rst:2582 msgid "" "The :c:func:`PyUnicode_CompareWithASCIIString` function now returns *not " "equal* if the Python string is *NUL* terminated." msgstr "" -#: ../../whatsnew/3.2.rst:2585 msgid "" -"There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is " -"like :c:func:`PyErr_NewException` but allows a docstring to be specified. " -"This lets C exceptions have the same self-documenting capabilities as their " -"pure Python counterparts (:issue:`7033`)." +"There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is like :c:" +"func:`PyErr_NewException` but allows a docstring to be specified. This lets " +"C exceptions have the same self-documenting capabilities as their pure " +"Python counterparts (:issue:`7033`)." msgstr "" -#: ../../whatsnew/3.2.rst:2590 msgid "" "When compiled with the ``--with-valgrind`` option, the pymalloc allocator " "will be automatically disabled when running under Valgrind. This gives " @@ -3811,20 +3248,17 @@ msgid "" "advantage of pymalloc at other times (:issue:`2422`)." msgstr "" -#: ../../whatsnew/3.2.rst:2595 msgid "" "Removed the ``O?`` format from the *PyArg_Parse* functions. The format is " "no longer used and it had never been documented (:issue:`8837`)." msgstr "" -#: ../../whatsnew/3.2.rst:2598 msgid "" "There were a number of other small changes to the C-API. See the `Misc/NEWS " "`__ file for a " "complete list." msgstr "" -#: ../../whatsnew/3.2.rst:2602 msgid "" "Also, there were a number of updates to the Mac OS X build, see `Mac/" "BuildScript/README.txt `_\\. See https://" -"www.python.org/download/mac/tcltk/ for additional details." +"https://www.activestate.com/activetcl/downloads>`_\\. See https://www.python." +"org/download/mac/tcltk/ for additional details." msgstr "" -#: ../../whatsnew/3.2.rst:2611 msgid "Porting to Python 3.2" msgstr "" -#: ../../whatsnew/3.2.rst:2613 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: ../../whatsnew/3.2.rst:2616 msgid "" "The :mod:`configparser` module has a number of clean-ups. The major change " "is to replace the old :class:`!ConfigParser` class with long-standing " @@ -3854,83 +3285,68 @@ msgid "" "number of smaller incompatibilities:" msgstr "" -#: ../../whatsnew/3.2.rst:2621 msgid "" -"The interpolation syntax is now validated " -"on :meth:`~configparser.ConfigParser.get` " -"and :meth:`~configparser.ConfigParser.set` operations. In the default " -"interpolation scheme, only two tokens with percent signs are valid: ``%" -"(name)s`` and ``%%``, the latter being an escaped percent sign." +"The interpolation syntax is now validated on :meth:`~configparser." +"ConfigParser.get` and :meth:`~configparser.ConfigParser.set` operations. In " +"the default interpolation scheme, only two tokens with percent signs are " +"valid: ``%(name)s`` and ``%%``, the latter being an escaped percent sign." msgstr "" -#: ../../whatsnew/3.2.rst:2627 msgid "" -"The :meth:`~configparser.ConfigParser.set` " -"and :meth:`~configparser.ConfigParser.add_section` methods now verify that " -"values are actual strings. Formerly, unsupported types could be introduced " -"unintentionally." +"The :meth:`~configparser.ConfigParser.set` and :meth:`~configparser." +"ConfigParser.add_section` methods now verify that values are actual " +"strings. Formerly, unsupported types could be introduced unintentionally." msgstr "" -#: ../../whatsnew/3.2.rst:2632 msgid "" -"Duplicate sections or options from a single source now raise " -"either :exc:`~configparser.DuplicateSectionError` " -"or :exc:`~configparser.DuplicateOptionError`. Formerly, duplicates would " -"silently overwrite a previous entry." +"Duplicate sections or options from a single source now raise either :exc:" +"`~configparser.DuplicateSectionError` or :exc:`~configparser." +"DuplicateOptionError`. Formerly, duplicates would silently overwrite a " +"previous entry." msgstr "" -#: ../../whatsnew/3.2.rst:2637 msgid "" "Inline comments are now disabled by default so now the **;** character can " "be safely used in values." msgstr "" -#: ../../whatsnew/3.2.rst:2640 msgid "" "Comments now can be indented. Consequently, for **;** or **#** to appear at " "the start of a line in multiline values, it has to be interpolated. This " "keeps comment prefix characters in values from being mistaken as comments." msgstr "" -#: ../../whatsnew/3.2.rst:2644 msgid "" "``\"\"`` is now a valid value and is no longer automatically converted to an " "empty string. For empty strings, use ``\"option =\"`` in a line." msgstr "" -#: ../../whatsnew/3.2.rst:2647 msgid "" "The :mod:`!nntplib` module was reworked extensively, meaning that its APIs " "are often incompatible with the 3.1 APIs." msgstr "" -#: ../../whatsnew/3.2.rst:2650 msgid "" ":class:`bytearray` objects can no longer be used as filenames; instead, they " "should be converted to :class:`bytes`." msgstr "" -#: ../../whatsnew/3.2.rst:2653 msgid "" "The :meth:`!array.tostring` and :meth:`!array.fromstring` have been renamed " -"to :meth:`array.tobytes() ` " -"and :meth:`array.frombytes() ` for clarity. The old " -"names have been deprecated. (See :issue:`8990`.)" +"to :meth:`array.tobytes() ` and :meth:`array." +"frombytes() ` for clarity. The old names have been " +"deprecated. (See :issue:`8990`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2658 msgid "``PyArg_Parse*()`` functions:" msgstr "" -#: ../../whatsnew/3.2.rst:2660 msgid "\"t#\" format has been removed: use \"s#\" or \"s*\" instead" msgstr "" -#: ../../whatsnew/3.2.rst:2661 msgid "\"w\" and \"w#\" formats has been removed: use \"w*\" instead" msgstr "" -#: ../../whatsnew/3.2.rst:2663 msgid "" "The :c:type:`!PyCObject` type, deprecated in 3.1, has been removed. To wrap " "opaque C pointers in Python objects, the :c:type:`PyCapsule` API should be " @@ -3938,36 +3354,31 @@ msgid "" "safety information and a less complicated signature for calling a destructor." msgstr "" -#: ../../whatsnew/3.2.rst:2668 msgid "" "The :func:`!sys.setfilesystemencoding` function was removed because it had a " "flawed design." msgstr "" -#: ../../whatsnew/3.2.rst:2671 msgid "" "The :func:`random.seed` function and method now salt string seeds with an " "sha512 hash function. To access the previous version of *seed* in order to " -"reproduce Python 3.1 sequences, set the *version* argument to *1*, " -"``random.seed(s, version=1)``." +"reproduce Python 3.1 sequences, set the *version* argument to *1*, ``random." +"seed(s, version=1)``." msgstr "" -#: ../../whatsnew/3.2.rst:2676 msgid "" "The previously deprecated :func:`!string.maketrans` function has been " -"removed in favor of the static methods :meth:`bytes.maketrans` " -"and :meth:`bytearray.maketrans`. This change solves the confusion around " -"which types were supported by the :mod:`string` module. " -"Now, :class:`str`, :class:`bytes`, and :class:`bytearray` each have their " -"own **maketrans** and **translate** methods with intermediate translation " -"tables of the appropriate type." +"removed in favor of the static methods :meth:`bytes.maketrans` and :meth:" +"`bytearray.maketrans`. This change solves the confusion around which types " +"were supported by the :mod:`string` module. Now, :class:`str`, :class:" +"`bytes`, and :class:`bytearray` each have their own **maketrans** and " +"**translate** methods with intermediate translation tables of the " +"appropriate type." msgstr "" -#: ../../whatsnew/3.2.rst:2684 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2686 msgid "" "The previously deprecated :func:`!contextlib.nested` function has been " "removed in favor of a plain :keyword:`with` statement which can accept " @@ -3976,7 +3387,6 @@ msgid "" "when one of them raises an exception::" msgstr "" -#: ../../whatsnew/3.2.rst:2692 msgid "" "with open('mylog.txt') as infile, open('a.out', 'w') as outfile:\n" " for line in infile:\n" @@ -3984,13 +3394,11 @@ msgid "" " outfile.write(line)" msgstr "" -#: ../../whatsnew/3.2.rst:2697 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" -#: ../../whatsnew/3.2.rst:2700 msgid "" ":func:`struct.pack` now only allows bytes for the ``s`` string pack code. " "Formerly, it would accept text arguments and implicitly encode them to bytes " @@ -3999,32 +3407,27 @@ msgid "" "writing to fixed length segment of a structure." msgstr "" -#: ../../whatsnew/3.2.rst:2706 msgid "" "Code such as ``struct.pack('<6sHHBBB', 'GIF87a', x, y)`` should be rewritten " "with to use bytes instead of text, ``struct.pack('<6sHHBBB', b'GIF87a', x, " "y)``." msgstr "" -#: ../../whatsnew/3.2.rst:2709 msgid "" "(Discovered by David Beazley and fixed by Victor Stinner; :issue:`10783`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2711 msgid "" -"The :class:`xml.etree.ElementTree` class now raises " -"an :exc:`xml.etree.ElementTree.ParseError` when a parse fails. Previously it " -"raised an :exc:`xml.parsers.expat.ExpatError`." +"The :class:`xml.etree.ElementTree` class now raises an :exc:`xml.etree." +"ElementTree.ParseError` when a parse fails. Previously it raised an :exc:" +"`xml.parsers.expat.ExpatError`." msgstr "" -#: ../../whatsnew/3.2.rst:2715 msgid "" "The new, longer :func:`str` value on floats may break doctests which rely on " "the old output format." msgstr "" -#: ../../whatsnew/3.2.rst:2718 msgid "" "In :class:`subprocess.Popen`, the default value for *close_fds* is now " "``True`` under Unix; under Windows, it is ``True`` if the three standard " @@ -4033,47 +3436,39 @@ msgid "" "race conditions when open file descriptors would leak into the child process." msgstr "" -#: ../../whatsnew/3.2.rst:2725 msgid "" -"Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` " -"and :mod:`http.client`. Such support is still present on the server side " -"(in :mod:`http.server`)." +"Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` and :" +"mod:`http.client`. Such support is still present on the server side (in :" +"mod:`http.server`)." msgstr "" -#: ../../whatsnew/3.2.rst:2729 msgid "(Contributed by Antoine Pitrou, :issue:`10711`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2731 msgid "" "SSL sockets in timeout mode now raise :exc:`socket.timeout` when a timeout " "occurs, rather than a generic :exc:`~ssl.SSLError`." msgstr "" -#: ../../whatsnew/3.2.rst:2734 msgid "(Contributed by Antoine Pitrou, :issue:`10272`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2736 msgid "" "The misleading functions :c:func:`!PyEval_AcquireLock` and :c:func:`!" "PyEval_ReleaseLock` have been officially deprecated. The thread-state aware " -"APIs (such as :c:func:`PyEval_SaveThread` " -"and :c:func:`PyEval_RestoreThread`) should be used instead." +"APIs (such as :c:func:`PyEval_SaveThread` and :c:func:" +"`PyEval_RestoreThread`) should be used instead." msgstr "" -#: ../../whatsnew/3.2.rst:2741 msgid "" "Due to security risks, :func:`!asyncore.handle_accept` has been deprecated, " "and a new function, :func:`!asyncore.handle_accepted`, was added to replace " "it." msgstr "" -#: ../../whatsnew/3.2.rst:2744 msgid "(Contributed by Giampaolo Rodola in :issue:`6706`.)" msgstr "" -#: ../../whatsnew/3.2.rst:2746 msgid "" "Due to the new :term:`GIL` implementation, :c:func:`!PyEval_InitThreads` " "cannot be called before :c:func:`Py_Initialize` anymore." diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index d8b3715..cf36011 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,123 +18,96 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.3.rst:3 msgid "What's New In Python 3.3" msgstr "" -#: ../../whatsnew/3.3.rst:45 msgid "" "This article explains the new features in Python 3.3, compared to 3.2. " "Python 3.3 was released on September 29, 2012. For full details, see the " "`changelog `_." msgstr "" -#: ../../whatsnew/3.3.rst:51 msgid ":pep:`398` - Python 3.3 Release Schedule" msgstr "" -#: ../../whatsnew/3.3.rst:55 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.3.rst:60 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.3.rst:62 msgid "" "New ``yield from`` expression for :ref:`generator delegation `." msgstr "" -#: ../../whatsnew/3.3.rst:63 msgid "The ``u'unicode'`` syntax is accepted again for :class:`str` objects." msgstr "" -#: ../../whatsnew/3.3.rst:65 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.3.rst:67 msgid ":mod:`faulthandler` (helps debugging low-level crashes)" msgstr "" -#: ../../whatsnew/3.3.rst:68 msgid "" ":mod:`ipaddress` (high-level objects representing IP addresses and masks)" msgstr "" -#: ../../whatsnew/3.3.rst:69 msgid ":mod:`lzma` (compress data using the XZ / LZMA algorithm)" msgstr "" -#: ../../whatsnew/3.3.rst:70 msgid "" ":mod:`unittest.mock` (replace parts of your system under test with mock " "objects)" msgstr "" -#: ../../whatsnew/3.3.rst:71 msgid "" ":mod:`venv` (Python :ref:`virtual environments `, as in the popular " "``virtualenv`` package)" msgstr "" -#: ../../whatsnew/3.3.rst:74 msgid "New built-in features:" msgstr "" -#: ../../whatsnew/3.3.rst:76 msgid "Reworked :ref:`I/O exception hierarchy `." msgstr "" -#: ../../whatsnew/3.3.rst:78 msgid "Implementation improvements:" msgstr "" -#: ../../whatsnew/3.3.rst:80 msgid "" "Rewritten :ref:`import machinery ` based on :mod:`importlib`." msgstr "" -#: ../../whatsnew/3.3.rst:81 msgid "More compact :ref:`unicode strings `." msgstr "" -#: ../../whatsnew/3.3.rst:82 msgid "More compact :ref:`attribute dictionaries `." msgstr "" -#: ../../whatsnew/3.3.rst:84 msgid "Significantly Improved Library Modules:" msgstr "" -#: ../../whatsnew/3.3.rst:86 msgid "C Accelerator for the :ref:`decimal ` module." msgstr "" -#: ../../whatsnew/3.3.rst:87 msgid "" -"Better unicode handling in the :ref:`email ` module " -"(:term:`provisional `)." +"Better unicode handling in the :ref:`email ` module (:term:" +"`provisional `)." msgstr "" -#: ../../whatsnew/3.3.rst:90 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.3.rst:92 msgid "Hash randomization is switched on by default." msgstr "" -#: ../../whatsnew/3.3.rst:94 msgid "Please read on for a comprehensive list of user-facing changes." msgstr "" -#: ../../whatsnew/3.3.rst:100 msgid "PEP 405: Virtual Environments" msgstr "" -#: ../../whatsnew/3.3.rst:102 msgid "" "Virtual environments help create separate Python setups while sharing a " "system-wide base install, for ease of maintenance. Virtual environments " @@ -149,7 +118,6 @@ msgid "" "with the interpreter core." msgstr "" -#: ../../whatsnew/3.3.rst:110 msgid "" "This PEP adds the :mod:`venv` module for programmatic access, and the " "``pyvenv`` script for command-line access and administration. The Python " @@ -157,46 +125,37 @@ msgid "" "base of a virtual environment's directory tree." msgstr "" -#: ../../whatsnew/3.3.rst:118 msgid ":pep:`405` - Python Virtual Environments" msgstr "" -#: ../../whatsnew/3.3.rst:119 msgid "PEP written by Carl Meyer; implementation by Carl Meyer and Vinay Sajip" msgstr "" -#: ../../whatsnew/3.3.rst:123 msgid "PEP 420: Implicit Namespace Packages" msgstr "" -#: ../../whatsnew/3.3.rst:125 msgid "" "Native support for package directories that don't require ``__init__.py`` " "marker files and can automatically span multiple path segments (inspired by " -"various third party approaches to namespace packages, as described " -"in :pep:`420`)" +"various third party approaches to namespace packages, as described in :pep:" +"`420`)" msgstr "" -#: ../../whatsnew/3.3.rst:132 msgid ":pep:`420` - Implicit Namespace Packages" msgstr "" -#: ../../whatsnew/3.3.rst:133 msgid "" "PEP written by Eric V. Smith; implementation by Eric V. Smith and Barry " "Warsaw" msgstr "" -#: ../../whatsnew/3.3.rst:140 msgid "" "PEP 3118: New memoryview implementation and buffer protocol documentation" msgstr "" -#: ../../whatsnew/3.3.rst:142 msgid "The implementation of :pep:`3118` has been significantly improved." msgstr "" -#: ../../whatsnew/3.3.rst:144 msgid "" "The new memoryview implementation comprehensively fixes all ownership and " "lifetime issues of dynamically allocated fields in the Py_buffer struct that " @@ -205,7 +164,6 @@ msgid "" "have been fixed." msgstr "" -#: ../../whatsnew/3.3.rst:150 msgid "" "The memoryview object now has a PEP-3118 compliant getbufferproc() that " "checks the consumer's request type. Many new features have been added, most " @@ -213,7 +171,6 @@ msgid "" "suboffsets." msgstr "" -#: ../../whatsnew/3.3.rst:155 msgid "" "The documentation has been updated, clearly spelling out responsibilities " "for both exporters and consumers. Buffer request flags are grouped into " @@ -221,65 +178,53 @@ msgid "" "dimensional NumPy-style arrays is explained." msgstr "" -#: ../../whatsnew/3.3.rst:161 ../../whatsnew/3.3.rst:1125 msgid "Features" msgstr "" -#: ../../whatsnew/3.3.rst:163 msgid "" "All native single character format specifiers in struct module syntax " "(optionally prefixed with '@') are now supported." msgstr "" -#: ../../whatsnew/3.3.rst:166 msgid "" "With some restrictions, the cast() method allows changing of format and " "shape of C-contiguous arrays." msgstr "" -#: ../../whatsnew/3.3.rst:169 msgid "" "Multi-dimensional list representations are supported for any array type." msgstr "" -#: ../../whatsnew/3.3.rst:171 msgid "Multi-dimensional comparisons are supported for any array type." msgstr "" -#: ../../whatsnew/3.3.rst:173 msgid "" "One-dimensional memoryviews of hashable (read-only) types with formats B, b " "or c are now hashable. (Contributed by Antoine Pitrou in :issue:`13411`.)" msgstr "" -#: ../../whatsnew/3.3.rst:176 msgid "" "Arbitrary slicing of any 1-D arrays type is supported. For example, it is " "now possible to reverse a memoryview in *O*\\ (1) by using a negative step." msgstr "" -#: ../../whatsnew/3.3.rst:180 ../../whatsnew/3.3.rst:1135 msgid "API changes" msgstr "" -#: ../../whatsnew/3.3.rst:182 msgid "The maximum number of dimensions is officially limited to 64." msgstr "" -#: ../../whatsnew/3.3.rst:184 msgid "" "The representation of empty shape, strides and suboffsets is now an empty " "tuple instead of ``None``." msgstr "" -#: ../../whatsnew/3.3.rst:187 msgid "" "Accessing a memoryview element with format 'B' (unsigned bytes) now returns " "an integer (in accordance with the struct module syntax). For returning a " "bytes object the view must be cast to 'c' first." msgstr "" -#: ../../whatsnew/3.3.rst:191 msgid "" "memoryview comparisons now use the logical structure of the operands and " "compare all array elements by value. All format strings in struct module " @@ -287,24 +232,19 @@ msgid "" "permitted, but will always compare as unequal, regardless of view contents." msgstr "" -#: ../../whatsnew/3.3.rst:197 msgid "" "For further changes see `Build and C API Changes`_ and `Porting C code`_." msgstr "" -#: ../../whatsnew/3.3.rst:199 msgid "(Contributed by Stefan Krah in :issue:`10181`.)" msgstr "" -#: ../../whatsnew/3.3.rst:203 msgid ":pep:`3118` - Revising the Buffer Protocol" msgstr "" -#: ../../whatsnew/3.3.rst:209 msgid "PEP 393: Flexible String Representation" msgstr "" -#: ../../whatsnew/3.3.rst:211 msgid "" "The Unicode string type is changed to support multiple internal " "representations, depending on the character with the largest Unicode ordinal " @@ -314,11 +254,9 @@ msgid "" "exist in parallel; over time, this compatibility should be phased out." msgstr "" -#: ../../whatsnew/3.3.rst:218 msgid "On the Python side, there should be no downside to this change." msgstr "" -#: ../../whatsnew/3.3.rst:220 msgid "" "On the C API side, :pep:`393` is fully backward compatible. The legacy API " "should remain available at least five years. Applications using the legacy " @@ -327,15 +265,12 @@ msgid "" "string (in the legacy format and in the new efficient storage)." msgstr "" -#: ../../whatsnew/3.3.rst:227 msgid "Functionality" msgstr "" -#: ../../whatsnew/3.3.rst:229 msgid "Changes introduced by :pep:`393` are the following:" msgstr "" -#: ../../whatsnew/3.3.rst:231 msgid "" "Python now always supports the full range of Unicode code points, including " "non-BMP ones (i.e. from ``U+0000`` to ``U+10FFFF``). The distinction " @@ -343,37 +278,31 @@ msgid "" "a wide build, even under Windows." msgstr "" -#: ../../whatsnew/3.3.rst:236 msgid "" "With the death of narrow builds, the problems specific to narrow builds have " "also been fixed, for example:" msgstr "" -#: ../../whatsnew/3.3.rst:239 msgid "" ":func:`len` now always returns 1 for non-BMP characters, so " "``len('\\U0010FFFF') == 1``;" msgstr "" -#: ../../whatsnew/3.3.rst:242 msgid "" "surrogate pairs are not recombined in string literals, so " "``'\\uDBFF\\uDFFF' != '\\U0010FFFF'``;" msgstr "" -#: ../../whatsnew/3.3.rst:245 msgid "" "indexing or slicing non-BMP characters returns the expected value, so " "``'\\U0010FFFF'[0]`` now returns ``'\\U0010FFFF'`` and not ``'\\uDBFF'``;" msgstr "" -#: ../../whatsnew/3.3.rst:248 msgid "" "all other functions in the standard library now correctly handle non-BMP " "code points." msgstr "" -#: ../../whatsnew/3.3.rst:251 msgid "" "The value of :data:`sys.maxunicode` is now always ``1114111`` (``0x10FFFF`` " "in hexadecimal). The :c:func:`!PyUnicode_GetMax` function still returns " @@ -381,34 +310,27 @@ msgid "" "not be used with the new Unicode API (see :issue:`13054`)." msgstr "" -#: ../../whatsnew/3.3.rst:256 msgid "The :file:`./configure` flag ``--with-wide-unicode`` has been removed." msgstr "" -#: ../../whatsnew/3.3.rst:259 msgid "Performance and resource usage" msgstr "" -#: ../../whatsnew/3.3.rst:261 msgid "" "The storage of Unicode strings now depends on the highest code point in the " "string:" msgstr "" -#: ../../whatsnew/3.3.rst:263 msgid "" "pure ASCII and Latin1 strings (``U+0000-U+00FF``) use 1 byte per code point;" msgstr "" -#: ../../whatsnew/3.3.rst:265 msgid "BMP strings (``U+0000-U+FFFF``) use 2 bytes per code point;" msgstr "" -#: ../../whatsnew/3.3.rst:267 msgid "non-BMP strings (``U+10000-U+10FFFF``) use 4 bytes per code point." msgstr "" -#: ../../whatsnew/3.3.rst:269 msgid "" "The net effect is that for most applications, memory usage of string storage " "should decrease significantly - especially compared to former wide unicode " @@ -421,28 +343,23 @@ msgid "" "benchmark (see the PEP for details)." msgstr "" -#: ../../whatsnew/3.3.rst:282 msgid ":pep:`393` - Flexible String Representation" msgstr "" -#: ../../whatsnew/3.3.rst:283 msgid "" "PEP written by Martin von Löwis; implementation by Torsten Becker and Martin " "von Löwis." msgstr "" -#: ../../whatsnew/3.3.rst:290 msgid "PEP 397: Python Launcher for Windows" msgstr "" -#: ../../whatsnew/3.3.rst:292 msgid "" "The Python 3.3 Windows installer now includes a ``py`` launcher application " "that can be used to launch Python applications in a version independent " "fashion." msgstr "" -#: ../../whatsnew/3.3.rst:296 msgid "" "This launcher is invoked implicitly when double-clicking ``*.py`` files. If " "only a single Python version is installed on the system, that version will " @@ -451,7 +368,6 @@ msgid "" "style \"shebang line\" in the Python script." msgstr "" -#: ../../whatsnew/3.3.rst:302 msgid "" "The launcher can also be used explicitly from the command line as the ``py`` " "application. Running ``py`` follows the same version selection rules as " @@ -461,131 +377,102 @@ msgid "" "Python version when a more recent version is installed)." msgstr "" -#: ../../whatsnew/3.3.rst:309 msgid "" "In addition to the launcher, the Windows installer now includes an option to " "add the newly installed Python to the system PATH. (Contributed by Brian " "Curtin in :issue:`3561`.)" msgstr "" -#: ../../whatsnew/3.3.rst:315 msgid ":pep:`397` - Python Launcher for Windows" msgstr "" -#: ../../whatsnew/3.3.rst:316 msgid "" "PEP written by Mark Hammond and Martin v. Löwis; implementation by Vinay " "Sajip." msgstr "" -#: ../../whatsnew/3.3.rst:319 msgid "Launcher documentation: :ref:`launcher`" msgstr "" -#: ../../whatsnew/3.3.rst:321 msgid "Installer PATH modification: :ref:`windows-path-mod`" msgstr "" -#: ../../whatsnew/3.3.rst:327 msgid "PEP 3151: Reworking the OS and IO exception hierarchy" msgstr "" -#: ../../whatsnew/3.3.rst:329 msgid "" "The hierarchy of exceptions raised by operating system errors is now both " "simplified and finer-grained." msgstr "" -#: ../../whatsnew/3.3.rst:332 msgid "" "You don't have to worry anymore about choosing the appropriate exception " -"type " -"between :exc:`OSError`, :exc:`IOError`, :exc:`EnvironmentError`, :exc:`WindowsError`, :exc:`mmap.error`, :exc:`socket.error` " -"or :exc:`select.error`. All these exception types are now only " -"one: :exc:`OSError`. The other names are kept as aliases for compatibility " -"reasons." +"type between :exc:`OSError`, :exc:`IOError`, :exc:`EnvironmentError`, :exc:" +"`WindowsError`, :exc:`!mmap.error`, :exc:`socket.error` or :exc:`select." +"error`. All these exception types are now only one: :exc:`OSError`. The " +"other names are kept as aliases for compatibility reasons." msgstr "" -#: ../../whatsnew/3.3.rst:339 msgid "" "Also, it is now easier to catch a specific error condition. Instead of " "inspecting the ``errno`` attribute (or ``args[0]``) for a particular " -"constant from the :mod:`errno` module, you can catch the " -"adequate :exc:`OSError` subclass. The available subclasses are the " -"following:" +"constant from the :mod:`errno` module, you can catch the adequate :exc:" +"`OSError` subclass. The available subclasses are the following:" msgstr "" -#: ../../whatsnew/3.3.rst:344 msgid ":exc:`BlockingIOError`" msgstr "" -#: ../../whatsnew/3.3.rst:345 msgid ":exc:`ChildProcessError`" msgstr "" -#: ../../whatsnew/3.3.rst:346 msgid ":exc:`ConnectionError`" msgstr "" -#: ../../whatsnew/3.3.rst:347 msgid ":exc:`FileExistsError`" msgstr "" -#: ../../whatsnew/3.3.rst:348 msgid ":exc:`FileNotFoundError`" msgstr "" -#: ../../whatsnew/3.3.rst:349 msgid ":exc:`InterruptedError`" msgstr "" -#: ../../whatsnew/3.3.rst:350 msgid ":exc:`IsADirectoryError`" msgstr "" -#: ../../whatsnew/3.3.rst:351 msgid ":exc:`NotADirectoryError`" msgstr "" -#: ../../whatsnew/3.3.rst:352 msgid ":exc:`PermissionError`" msgstr "" -#: ../../whatsnew/3.3.rst:353 msgid ":exc:`ProcessLookupError`" msgstr "" -#: ../../whatsnew/3.3.rst:354 msgid ":exc:`TimeoutError`" msgstr "" -#: ../../whatsnew/3.3.rst:356 msgid "And the :exc:`ConnectionError` itself has finer-grained subclasses:" msgstr "" -#: ../../whatsnew/3.3.rst:358 msgid ":exc:`BrokenPipeError`" msgstr "" -#: ../../whatsnew/3.3.rst:359 msgid ":exc:`ConnectionAbortedError`" msgstr "" -#: ../../whatsnew/3.3.rst:360 msgid ":exc:`ConnectionRefusedError`" msgstr "" -#: ../../whatsnew/3.3.rst:361 msgid ":exc:`ConnectionResetError`" msgstr "" -#: ../../whatsnew/3.3.rst:363 msgid "" "Thanks to the new exceptions, common usages of the :mod:`errno` can now be " "avoided. For example, the following code written for Python 3.2::" msgstr "" -#: ../../whatsnew/3.3.rst:366 msgid "" "from errno import ENOENT, EACCES, EPERM\n" "\n" @@ -601,13 +488,11 @@ msgid "" " raise" msgstr "" -#: ../../whatsnew/3.3.rst:379 msgid "" "can now be written without the :mod:`errno` import and without manual " "inspection of exception attributes::" msgstr "" -#: ../../whatsnew/3.3.rst:382 msgid "" "try:\n" " with open(\"document.txt\") as f:\n" @@ -618,19 +503,15 @@ msgid "" " print(\"You are not allowed to read document.txt\")" msgstr "" -#: ../../whatsnew/3.3.rst:392 msgid ":pep:`3151` - Reworking the OS and IO Exception Hierarchy" msgstr "" -#: ../../whatsnew/3.3.rst:393 msgid "PEP written and implemented by Antoine Pitrou" msgstr "" -#: ../../whatsnew/3.3.rst:402 msgid "PEP 380: Syntax for Delegating to a Subgenerator" msgstr "" -#: ../../whatsnew/3.3.rst:404 msgid "" "PEP 380 adds the ``yield from`` expression, allowing a :term:`generator` to " "delegate part of its operations to another generator. This allows a section " @@ -639,20 +520,17 @@ msgid "" "and the value is made available to the delegating generator." msgstr "" -#: ../../whatsnew/3.3.rst:411 msgid "" "While designed primarily for use in delegating to a subgenerator, the " "``yield from`` expression actually allows delegation to arbitrary " "subiterators." msgstr "" -#: ../../whatsnew/3.3.rst:414 msgid "" "For simple iterators, ``yield from iterable`` is essentially just a " "shortened form of ``for item in iterable: yield item``::" msgstr "" -#: ../../whatsnew/3.3.rst:417 msgid "" ">>> def g(x):\n" "... yield from range(x, 0, -1)\n" @@ -662,14 +540,12 @@ msgid "" "[5, 4, 3, 2, 1, 0, 1, 2, 3, 4]" msgstr "" -#: ../../whatsnew/3.3.rst:424 msgid "" "However, unlike an ordinary loop, ``yield from`` allows subgenerators to " "receive sent and thrown values directly from the calling scope, and return a " "final value to the outer generator::" msgstr "" -#: ../../whatsnew/3.3.rst:428 msgid "" ">>> def accumulate():\n" "... tally = 0\n" @@ -699,7 +575,6 @@ msgid "" "[6, 10]" msgstr "" -#: ../../whatsnew/3.3.rst:455 msgid "" "The main principle driving this change is to allow even generators that are " "designed to be used with the ``send`` and ``throw`` methods to be split into " @@ -707,29 +582,24 @@ msgid "" "into multiple subfunctions." msgstr "" -#: ../../whatsnew/3.3.rst:462 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr "" -#: ../../whatsnew/3.3.rst:463 msgid "" "PEP written by Greg Ewing; implementation by Greg Ewing, integrated into 3.3 " "by Renaud Blanch, Ryan Kelly and Nick Coghlan; documentation by Zbigniew " "Jędrzejewski-Szmek and Nick Coghlan" msgstr "" -#: ../../whatsnew/3.3.rst:469 msgid "PEP 409: Suppressing exception context" msgstr "" -#: ../../whatsnew/3.3.rst:471 msgid "" "PEP 409 introduces new syntax that allows the display of the chained " "exception context to be disabled. This allows cleaner error messages in " "applications that convert between exception types::" msgstr "" -#: ../../whatsnew/3.3.rst:475 msgid "" ">>> class D:\n" "... def __init__(self, extra):\n" @@ -747,13 +617,11 @@ msgid "" "AttributeError: x" msgstr "" -#: ../../whatsnew/3.3.rst:490 msgid "" "Without the ``from None`` suffix to suppress the cause, the original " "exception would be displayed by default::" msgstr "" -#: ../../whatsnew/3.3.rst:493 msgid "" ">>> class C:\n" "... def __init__(self, extra):\n" @@ -777,14 +645,12 @@ msgid "" "AttributeError: x" msgstr "" -#: ../../whatsnew/3.3.rst:514 msgid "" "No debugging capability is lost, as the original exception context remains " "available if needed (for example, if an intervening library has incorrectly " "suppressed valuable underlying details)::" msgstr "" -#: ../../whatsnew/3.3.rst:518 msgid "" ">>> try:\n" "... D({}).x\n" @@ -794,20 +660,16 @@ msgid "" "KeyError('x',)" msgstr "" -#: ../../whatsnew/3.3.rst:527 msgid ":pep:`409` - Suppressing exception context" msgstr "" -#: ../../whatsnew/3.3.rst:528 msgid "" "PEP written by Ethan Furman; implemented by Ethan Furman and Nick Coghlan." msgstr "" -#: ../../whatsnew/3.3.rst:533 msgid "PEP 414: Explicit Unicode literals" msgstr "" -#: ../../whatsnew/3.3.rst:535 msgid "" "To ease the transition from Python 2 for Unicode aware Python applications " "that make heavy use of Unicode literals, Python 3.3 once again supports the " @@ -818,33 +680,27 @@ msgid "" "stricter default separation of binary and text data)." msgstr "" -#: ../../whatsnew/3.3.rst:545 msgid ":pep:`414` - Explicit Unicode literals" msgstr "" -#: ../../whatsnew/3.3.rst:546 msgid "PEP written by Armin Ronacher." msgstr "" -#: ../../whatsnew/3.3.rst:550 msgid "PEP 3155: Qualified name for classes and functions" msgstr "" -#: ../../whatsnew/3.3.rst:552 msgid "" "Functions and class objects have a new :attr:`~definition.__qualname__` " "attribute representing the \"path\" from the module top-level to their " -"definition. For global functions and classes, this is the same " -"as :attr:`~definition.__name__`. For other functions and classes, it " -"provides better information about where they were actually defined, and how " -"they might be accessible from the global scope." +"definition. For global functions and classes, this is the same as :attr:" +"`~definition.__name__`. For other functions and classes, it provides better " +"information about where they were actually defined, and how they might be " +"accessible from the global scope." msgstr "" -#: ../../whatsnew/3.3.rst:560 msgid "Example with (non-bound) methods::" msgstr "" -#: ../../whatsnew/3.3.rst:562 msgid "" ">>> class C:\n" "... def meth(self):\n" @@ -856,11 +712,9 @@ msgid "" "'C.meth'" msgstr "" -#: ../../whatsnew/3.3.rst:571 msgid "Example with nested classes::" msgstr "" -#: ../../whatsnew/3.3.rst:573 msgid "" ">>> class C:\n" "... class D:\n" @@ -877,11 +731,9 @@ msgid "" "'C.D.meth'" msgstr "" -#: ../../whatsnew/3.3.rst:587 msgid "Example with nested functions::" msgstr "" -#: ../../whatsnew/3.3.rst:589 msgid "" ">>> def outer():\n" "... def inner():\n" @@ -894,13 +746,11 @@ msgid "" "'outer..inner'" msgstr "" -#: ../../whatsnew/3.3.rst:599 msgid "" "The string representation of those objects is also changed to include the " "new, more precise information::" msgstr "" -#: ../../whatsnew/3.3.rst:602 msgid "" ">>> str(C.D)\n" "\"\"\n" @@ -908,19 +758,15 @@ msgid "" "''" msgstr "" -#: ../../whatsnew/3.3.rst:609 msgid ":pep:`3155` - Qualified name for classes and functions" msgstr "" -#: ../../whatsnew/3.3.rst:610 msgid "PEP written and implemented by Antoine Pitrou." msgstr "" -#: ../../whatsnew/3.3.rst:616 msgid "PEP 412: Key-Sharing Dictionary" msgstr "" -#: ../../whatsnew/3.3.rst:618 msgid "" "Dictionaries used for the storage of objects' attributes are now able to " "share part of their internal storage between each other (namely, the part " @@ -928,46 +774,37 @@ msgid "" "consumption of programs creating many instances of non-builtin types." msgstr "" -#: ../../whatsnew/3.3.rst:625 msgid ":pep:`412` - Key-Sharing Dictionary" msgstr "" -#: ../../whatsnew/3.3.rst:626 msgid "PEP written and implemented by Mark Shannon." msgstr "" -#: ../../whatsnew/3.3.rst:630 msgid "PEP 362: Function Signature Object" msgstr "" -#: ../../whatsnew/3.3.rst:632 msgid "" "A new function :func:`inspect.signature` makes introspection of python " "callables easy and straightforward. A broad range of callables is " -"supported: python functions, decorated or not, classes, " -"and :func:`functools.partial` objects. New " -"classes :class:`inspect.Signature`, :class:`inspect.Parameter` " -"and :class:`inspect.BoundArguments` hold information about the call " -"signatures, such as, annotations, default values, parameters kinds, and " +"supported: python functions, decorated or not, classes, and :func:`functools." +"partial` objects. New classes :class:`inspect.Signature`, :class:`inspect." +"Parameter` and :class:`inspect.BoundArguments` hold information about the " +"call signatures, such as, annotations, default values, parameters kinds, and " "bound arguments, which considerably simplifies writing decorators and any " "code that validates or amends calling signatures or arguments." msgstr "" -#: ../../whatsnew/3.3.rst:643 msgid ":pep:`362`: - Function Signature Object" msgstr "" -#: ../../whatsnew/3.3.rst:644 msgid "" "PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo; " "implemented by Yury Selivanov." msgstr "" -#: ../../whatsnew/3.3.rst:649 msgid "PEP 421: Adding sys.implementation" msgstr "" -#: ../../whatsnew/3.3.rst:651 msgid "" "A new attribute on the :mod:`sys` module exposes details specific to the " "implementation of the currently running interpreter. The initial set of " @@ -975,7 +812,6 @@ msgid "" "``hexversion``, and ``cache_tag``." msgstr "" -#: ../../whatsnew/3.3.rst:656 msgid "" "The intention of ``sys.implementation`` is to consolidate into one namespace " "the implementation-specific data used by the standard library. This allows " @@ -985,7 +821,6 @@ msgid "" "ratio will shift in order to make the standard library more portable." msgstr "" -#: ../../whatsnew/3.3.rst:663 msgid "" "One example of improved standard library portability is ``cache_tag``. As " "of Python 3.3, ``sys.implementation.cache_tag`` is used by :mod:`importlib` " @@ -994,33 +829,27 @@ msgid "" "control the caching behavior for modules." msgstr "" -#: ../../whatsnew/3.3.rst:670 msgid "SimpleNamespace" msgstr "" -#: ../../whatsnew/3.3.rst:672 msgid "" "The implementation of ``sys.implementation`` also introduces a new type to " "Python: :class:`types.SimpleNamespace`. In contrast to a mapping-based " -"namespace, like :class:`dict`, ``SimpleNamespace`` is attribute-based, " -"like :class:`object`. However, unlike ``object``, ``SimpleNamespace`` " -"instances are writable. This means that you can add, remove, and modify the " -"namespace through normal attribute access." +"namespace, like :class:`dict`, ``SimpleNamespace`` is attribute-based, like :" +"class:`object`. However, unlike ``object``, ``SimpleNamespace`` instances " +"are writable. This means that you can add, remove, and modify the namespace " +"through normal attribute access." msgstr "" -#: ../../whatsnew/3.3.rst:681 msgid ":pep:`421` - Adding sys.implementation" msgstr "" -#: ../../whatsnew/3.3.rst:682 msgid "PEP written and implemented by Eric Snow." msgstr "" -#: ../../whatsnew/3.3.rst:688 msgid "Using importlib as the Implementation of Import" msgstr "" -#: ../../whatsnew/3.3.rst:689 msgid "" ":issue:`2377` - Replace __import__ w/ importlib.__import__ :issue:`13959` - " "Re-implement parts of :mod:`!imp` in pure Python :issue:`14605` - Make " @@ -1028,20 +857,17 @@ msgid "" "and __package__" msgstr "" -#: ../../whatsnew/3.3.rst:694 msgid "" -"The :func:`__import__` function is now powered " -"by :func:`importlib.__import__`. This work leads to the completion of " -"\"phase 2\" of :pep:`302`. There are multiple benefits to this change. " -"First, it has allowed for more of the machinery powering import to be " -"exposed instead of being implicit and hidden within the C code. It also " -"provides a single implementation for all Python VMs supporting Python 3.3 to " -"use, helping to end any VM-specific deviations in import semantics. And " -"finally it eases the maintenance of import, allowing for future growth to " -"occur." +"The :func:`__import__` function is now powered by :func:`importlib." +"__import__`. This work leads to the completion of \"phase 2\" of :pep:`302`. " +"There are multiple benefits to this change. First, it has allowed for more " +"of the machinery powering import to be exposed instead of being implicit and " +"hidden within the C code. It also provides a single implementation for all " +"Python VMs supporting Python 3.3 to use, helping to end any VM-specific " +"deviations in import semantics. And finally it eases the maintenance of " +"import, allowing for future growth to occur." msgstr "" -#: ../../whatsnew/3.3.rst:703 msgid "" "For the common user, there should be no visible change in semantics. For " "those whose code currently manipulates import or calls import " @@ -1049,47 +875,40 @@ msgid "" "covered in the `Porting Python code`_ section of this document." msgstr "" -#: ../../whatsnew/3.3.rst:709 msgid "New APIs" msgstr "" -#: ../../whatsnew/3.3.rst:710 msgid "" "One of the large benefits of this work is the exposure of what goes into " "making the import statement work. That means the various importers that were " "once implicit are now fully exposed as part of the :mod:`importlib` package." msgstr "" -#: ../../whatsnew/3.3.rst:714 msgid "" "The abstract base classes defined in :mod:`importlib.abc` have been expanded " "to properly delineate between :term:`meta path finders ` " -"and :term:`path entry finders ` by " -"introducing :class:`importlib.abc.MetaPathFinder` " -"and :class:`importlib.abc.PathEntryFinder`, respectively. The old ABC " -"of :class:`!importlib.abc.Finder` is now only provided for backwards-" -"compatibility and does not enforce any method requirements." +"and :term:`path entry finders ` by introducing :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.PathEntryFinder`, " +"respectively. The old ABC of :class:`!importlib.abc.Finder` is now only " +"provided for backwards-compatibility and does not enforce any method " +"requirements." msgstr "" -#: ../../whatsnew/3.3.rst:722 msgid "" "In terms of finders, :class:`importlib.machinery.FileFinder` exposes the " "mechanism used to search for source and bytecode files of a module. " "Previously this class was an implicit member of :data:`sys.path_hooks`." msgstr "" -#: ../../whatsnew/3.3.rst:726 msgid "" "For loaders, the new abstract base class :class:`importlib.abc.FileLoader` " "helps write a loader that uses the file system as the storage mechanism for " -"a module's code. The loader for source files " -"(:class:`importlib.machinery.SourceFileLoader`), sourceless bytecode files " -"(:class:`importlib.machinery.SourcelessFileLoader`), and extension modules " -"(:class:`importlib.machinery.ExtensionFileLoader`) are now available for " -"direct use." +"a module's code. The loader for source files (:class:`importlib.machinery." +"SourceFileLoader`), sourceless bytecode files (:class:`importlib.machinery." +"SourcelessFileLoader`), and extension modules (:class:`importlib.machinery." +"ExtensionFileLoader`) are now available for direct use." msgstr "" -#: ../../whatsnew/3.3.rst:734 msgid "" ":exc:`ImportError` now has ``name`` and ``path`` attributes which are set " "when there is relevant data to provide. The message for failed imports will " @@ -1097,35 +916,30 @@ msgid "" "the module's name." msgstr "" -#: ../../whatsnew/3.3.rst:739 msgid "" "The :func:`importlib.invalidate_caches` function will now call the method " "with the same name on all finders cached in :data:`sys.path_importer_cache` " "to help clean up any stored state as necessary." msgstr "" -#: ../../whatsnew/3.3.rst:744 msgid "Visible Changes" msgstr "" -#: ../../whatsnew/3.3.rst:746 msgid "" "For potential required changes to code, see the `Porting Python code`_ " "section." msgstr "" -#: ../../whatsnew/3.3.rst:749 msgid "" "Beyond the expanse of what :mod:`importlib` now exposes, there are other " -"visible changes to import. The biggest is that :data:`sys.meta_path` " -"and :data:`sys.path_hooks` now store all of the meta path finders and path " -"entry hooks used by import. Previously the finders were implicit and hidden " +"visible changes to import. The biggest is that :data:`sys.meta_path` and :" +"data:`sys.path_hooks` now store all of the meta path finders and path entry " +"hooks used by import. Previously the finders were implicit and hidden " "within the C code of import instead of being directly exposed. This means " "that one can now easily remove or change the order of the various finders to " "fit one's needs." msgstr "" -#: ../../whatsnew/3.3.rst:756 msgid "" "Another change is that all modules have a ``__loader__`` attribute, storing " "the loader used to create the module. :pep:`302` has been updated to make " @@ -1135,15 +949,12 @@ msgid "" "load." msgstr "" -#: ../../whatsnew/3.3.rst:762 msgid "" -"Loaders are also now expected to set the ``__package__`` attribute " -"from :pep:`366`. Once again, import itself is already setting this on all " -"loaders from :mod:`importlib` and import itself is setting the attribute " -"post-load." +"Loaders are also now expected to set the ``__package__`` attribute from :pep:" +"`366`. Once again, import itself is already setting this on all loaders " +"from :mod:`importlib` and import itself is setting the attribute post-load." msgstr "" -#: ../../whatsnew/3.3.rst:766 msgid "" "``None`` is now inserted into :data:`sys.path_importer_cache` when no finder " "can be found on :data:`sys.path_hooks`. Since :class:`!imp.NullImporter` is " @@ -1151,116 +962,95 @@ msgid "" "upon to always be available to use as a value representing no finder found." msgstr "" -#: ../../whatsnew/3.3.rst:771 msgid "" "All other changes relate to semantic changes which should be taken into " "consideration when updating code for Python 3.3, and thus should be read " "about in the `Porting Python code`_ section of this document." msgstr "" -#: ../../whatsnew/3.3.rst:775 msgid "(Implementation by Brett Cannon)" msgstr "" -#: ../../whatsnew/3.3.rst:779 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.3.rst:781 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.3.rst:783 msgid "" -"Added support for Unicode name aliases and named sequences. " -"Both :func:`unicodedata.lookup` and ``'\\N{...}'`` now resolve name aliases, " -"and :func:`unicodedata.lookup` resolves named sequences too." +"Added support for Unicode name aliases and named sequences. Both :func:" +"`unicodedata.lookup` and ``'\\N{...}'`` now resolve name aliases, and :func:" +"`unicodedata.lookup` resolves named sequences too." msgstr "" -#: ../../whatsnew/3.3.rst:787 msgid "(Contributed by Ezio Melotti in :issue:`12753`.)" msgstr "" -#: ../../whatsnew/3.3.rst:789 msgid "Unicode database updated to UCD version 6.1.0" msgstr "" -#: ../../whatsnew/3.3.rst:791 msgid "" "Equality comparisons on :func:`range` objects now return a result reflecting " -"the equality of the underlying sequences generated by those range objects. " -"(:issue:`13201`)" +"the equality of the underlying sequences generated by those range objects. (:" +"issue:`13201`)" msgstr "" -#: ../../whatsnew/3.3.rst:795 msgid "" "The ``count()``, ``find()``, ``rfind()``, ``index()`` and ``rindex()`` " "methods of :class:`bytes` and :class:`bytearray` objects now accept an " "integer between 0 and 255 as their first argument." msgstr "" -#: ../../whatsnew/3.3.rst:799 msgid "(Contributed by Petri Lehtinen in :issue:`12170`.)" msgstr "" -#: ../../whatsnew/3.3.rst:801 msgid "" "The ``rjust()``, ``ljust()``, and ``center()`` methods of :class:`bytes` " "and :class:`bytearray` now accept a :class:`bytearray` for the ``fill`` " "argument. (Contributed by Petri Lehtinen in :issue:`12380`.)" msgstr "" -#: ../../whatsnew/3.3.rst:805 msgid "" "New methods have been added to :class:`list` and :class:`bytearray`: " -"``copy()`` and ``clear()`` (:issue:`10516`). " -"Consequently, :class:`~collections.abc.MutableSequence` now also defines " -"a :meth:`~collections.abc.MutableSequence.clear` method (:issue:`11388`)." +"``copy()`` and ``clear()`` (:issue:`10516`). Consequently, :class:" +"`~collections.abc.MutableSequence` now also defines a :meth:`!clear` method " +"(:issue:`11388`)." msgstr "" -#: ../../whatsnew/3.3.rst:810 msgid "" "Raw bytes literals can now be written ``rb\"...\"`` as well as ``br\"...\"``." msgstr "" -#: ../../whatsnew/3.3.rst:812 msgid "(Contributed by Antoine Pitrou in :issue:`13748`.)" msgstr "" -#: ../../whatsnew/3.3.rst:814 msgid "" ":meth:`dict.setdefault` now does only one lookup for the given key, making " "it atomic when used with built-in types." msgstr "" -#: ../../whatsnew/3.3.rst:817 msgid "(Contributed by Filip Gruszczyński in :issue:`13521`.)" msgstr "" -#: ../../whatsnew/3.3.rst:819 msgid "" "The error messages produced when a function call does not match the function " "signature have been significantly improved." msgstr "" -#: ../../whatsnew/3.3.rst:822 msgid "(Contributed by Benjamin Peterson.)" msgstr "" -#: ../../whatsnew/3.3.rst:826 msgid "A Finer-Grained Import Lock" msgstr "" -#: ../../whatsnew/3.3.rst:828 msgid "" "Previous versions of CPython have always relied on a global import lock. " "This led to unexpected annoyances, such as deadlocks when importing a module " "would trigger code execution in a different thread as a side-effect. Clumsy " -"workarounds were sometimes employed, such as " -"the :c:func:`PyImport_ImportModuleNoBlock` C API function." +"workarounds were sometimes employed, such as the :c:func:" +"`PyImport_ImportModuleNoBlock` C API function." msgstr "" -#: ../../whatsnew/3.3.rst:834 msgid "" "In Python 3.3, importing a module takes a per-module lock. This correctly " "serializes importation of a given module from multiple threads (preventing " @@ -1268,15 +1058,12 @@ msgid "" "aforementioned annoyances." msgstr "" -#: ../../whatsnew/3.3.rst:839 msgid "(Contributed by Antoine Pitrou in :issue:`9260`.)" msgstr "" -#: ../../whatsnew/3.3.rst:843 msgid "Builtin functions and types" msgstr "" -#: ../../whatsnew/3.3.rst:845 msgid "" ":func:`open` gets a new *opener* parameter: the underlying file descriptor " "for the file object is then obtained by calling *opener* with (*file*, " @@ -1285,58 +1072,49 @@ msgid "" "the file already exists." msgstr "" -#: ../../whatsnew/3.3.rst:850 msgid "" ":func:`print`: added the *flush* keyword argument. If the *flush* keyword " "argument is true, the stream is forcibly flushed." msgstr "" -#: ../../whatsnew/3.3.rst:852 msgid "" -":func:`hash`: hash randomization is enabled by default, " -"see :meth:`object.__hash__` and :envvar:`PYTHONHASHSEED`." +":func:`hash`: hash randomization is enabled by default, see :meth:`object." +"__hash__` and :envvar:`PYTHONHASHSEED`." msgstr "" -#: ../../whatsnew/3.3.rst:854 msgid "" "The :class:`str` type gets a new :meth:`~str.casefold` method: return a " "casefolded copy of the string, casefolded strings may be used for caseless " "matching. For example, ``'ß'.casefold()`` returns ``'ss'``." msgstr "" -#: ../../whatsnew/3.3.rst:857 msgid "" "The sequence documentation has been substantially rewritten to better " "explain the binary/text sequence distinction and to provide specific " -"documentation sections for the individual builtin sequence types " -"(:issue:`4966`)." +"documentation sections for the individual builtin sequence types (:issue:" +"`4966`)." msgstr "" -#: ../../whatsnew/3.3.rst:864 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.3.rst:867 msgid "faulthandler" msgstr "" -#: ../../whatsnew/3.3.rst:869 msgid "" "This new debug module :mod:`faulthandler` contains functions to dump Python " "tracebacks explicitly, on a fault (a crash like a segmentation fault), after " "a timeout, or on a user signal. Call :func:`faulthandler.enable` to install " -"fault handlers for " -"the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS`, " -"and :const:`SIGILL` signals. You can also enable them at startup by setting " -"the :envvar:`PYTHONFAULTHANDLER` environment variable or by using :option:`-" -"X` ``faulthandler`` command line option." +"fault handlers for the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :" +"const:`~signal.SIGABRT`, :const:`~signal.SIGBUS`, and :const:`~signal." +"SIGILL` signals. You can also enable them at startup by setting the :envvar:" +"`PYTHONFAULTHANDLER` environment variable or by using :option:`-X` " +"``faulthandler`` command line option." msgstr "" -#: ../../whatsnew/3.3.rst:877 msgid "Example of a segmentation fault on Linux:" msgstr "" -#: ../../whatsnew/3.3.rst:879 msgid "" "$ python -q -X faulthandler\n" ">>> import ctypes\n" @@ -1350,174 +1128,142 @@ msgid "" "Segmentation fault" msgstr "" -#: ../../whatsnew/3.3.rst:893 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.3.rst:895 msgid "" "The new :mod:`ipaddress` module provides tools for creating and manipulating " "objects representing IPv4 and IPv6 addresses, networks and interfaces (i.e. " "an IP address associated with a specific IP subnet)." msgstr "" -#: ../../whatsnew/3.3.rst:899 msgid "(Contributed by Google and Peter Moody in :pep:`3144`.)" msgstr "" -#: ../../whatsnew/3.3.rst:902 msgid "lzma" msgstr "" -#: ../../whatsnew/3.3.rst:904 msgid "" "The newly added :mod:`lzma` module provides data compression and " "decompression using the LZMA algorithm, including support for the ``.xz`` " "and ``.lzma`` file formats." msgstr "" -#: ../../whatsnew/3.3.rst:908 msgid "(Contributed by Nadeem Vawda and Per Øyvind Karlsen in :issue:`6715`.)" msgstr "" -#: ../../whatsnew/3.3.rst:912 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.3.rst:915 msgid "abc" msgstr "" -#: ../../whatsnew/3.3.rst:917 msgid "" "Improved support for abstract base classes containing descriptors composed " "with abstract methods. The recommended approach to declaring abstract " -"descriptors is now to provide :attr:`__isabstractmethod__` as a dynamically " +"descriptors is now to provide :attr:`!__isabstractmethod__` as a dynamically " "updated property. The built-in descriptors have been updated accordingly." msgstr "" -#: ../../whatsnew/3.3.rst:922 ../../whatsnew/3.3.rst:2248 msgid "" ":class:`abc.abstractproperty` has been deprecated, use :class:`property` " "with :func:`abc.abstractmethod` instead." msgstr "" -#: ../../whatsnew/3.3.rst:924 ../../whatsnew/3.3.rst:2250 msgid "" -":class:`abc.abstractclassmethod` has been deprecated, " -"use :class:`classmethod` with :func:`abc.abstractmethod` instead." +":class:`abc.abstractclassmethod` has been deprecated, use :class:" +"`classmethod` with :func:`abc.abstractmethod` instead." msgstr "" -#: ../../whatsnew/3.3.rst:926 ../../whatsnew/3.3.rst:2252 msgid "" -":class:`abc.abstractstaticmethod` has been deprecated, " -"use :class:`staticmethod` with :func:`abc.abstractmethod` instead." +":class:`abc.abstractstaticmethod` has been deprecated, use :class:" +"`staticmethod` with :func:`abc.abstractmethod` instead." msgstr "" -#: ../../whatsnew/3.3.rst:929 msgid "(Contributed by Darren Dale in :issue:`11610`.)" msgstr "" -#: ../../whatsnew/3.3.rst:931 msgid "" ":meth:`abc.ABCMeta.register` now returns the registered subclass, which " "means it can now be used as a class decorator (:issue:`10868`)." msgstr "" -#: ../../whatsnew/3.3.rst:936 msgid "array" msgstr "" -#: ../../whatsnew/3.3.rst:938 msgid "" "The :mod:`array` module supports the :c:expr:`long long` type using ``q`` " "and ``Q`` type codes." msgstr "" -#: ../../whatsnew/3.3.rst:941 msgid "(Contributed by Oren Tirosh and Hirokazu Yamamoto in :issue:`1172711`.)" msgstr "" -#: ../../whatsnew/3.3.rst:945 msgid "base64" msgstr "" -#: ../../whatsnew/3.3.rst:947 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of " -"the :mod:`base64` modern interface. For example, " -"``base64.b64decode('YWJj')`` returns ``b'abc'``. (Contributed by Catalin " -"Iacob in :issue:`13641`.)" +"the :mod:`base64` modern interface. For example, ``base64." +"b64decode('YWJj')`` returns ``b'abc'``. (Contributed by Catalin Iacob in :" +"issue:`13641`.)" msgstr "" -#: ../../whatsnew/3.3.rst:953 msgid "binascii" msgstr "" -#: ../../whatsnew/3.3.rst:955 msgid "" "In addition to the binary objects they normally accept, the ``a2b_`` " "functions now all also accept ASCII-only strings as input. (Contributed by " "Antoine Pitrou in :issue:`13637`.)" msgstr "" -#: ../../whatsnew/3.3.rst:961 msgid "bz2" msgstr "" -#: ../../whatsnew/3.3.rst:963 msgid "" "The :mod:`bz2` module has been rewritten from scratch. In the process, " "several new features have been added:" msgstr "" -#: ../../whatsnew/3.3.rst:966 msgid "" "New :func:`bz2.open` function: open a bzip2-compressed file in binary or " "text mode." msgstr "" -#: ../../whatsnew/3.3.rst:969 msgid "" ":class:`bz2.BZ2File` can now read from and write to arbitrary file-like " "objects, by means of its constructor's *fileobj* argument." msgstr "" -#: ../../whatsnew/3.3.rst:972 msgid "(Contributed by Nadeem Vawda in :issue:`5863`.)" msgstr "" -#: ../../whatsnew/3.3.rst:974 msgid "" ":class:`bz2.BZ2File` and :func:`bz2.decompress` can now decompress multi-" -"stream inputs (such as those produced by the :program:`pbzip2` " -"tool). :class:`bz2.BZ2File` can now also be used to create this type of " -"file, using the ``'a'`` (append) mode." +"stream inputs (such as those produced by the :program:`pbzip2` tool). :class:" +"`bz2.BZ2File` can now also be used to create this type of file, using the " +"``'a'`` (append) mode." msgstr "" -#: ../../whatsnew/3.3.rst:979 msgid "(Contributed by Nir Aides in :issue:`1625`.)" msgstr "" -#: ../../whatsnew/3.3.rst:981 msgid "" ":class:`bz2.BZ2File` now implements all of the :class:`io.BufferedIOBase` " -"API, except for the :meth:`detach` and :meth:`truncate` methods." +"API, except for the :meth:`!detach` and :meth:`!truncate` methods." msgstr "" -#: ../../whatsnew/3.3.rst:986 msgid "codecs" msgstr "" -#: ../../whatsnew/3.3.rst:988 msgid "" "The :mod:`~encodings.mbcs` codec has been rewritten to handle correctly " -"``replace`` and ``ignore`` error handlers on all Windows versions. " -"The :mod:`~encodings.mbcs` codec now supports all error handlers, instead of " -"only ``replace`` to encode and ``ignore`` to decode." +"``replace`` and ``ignore`` error handlers on all Windows versions. The :mod:" +"`~encodings.mbcs` codec now supports all error handlers, instead of only " +"``replace`` to encode and ``ignore`` to decode." msgstr "" -#: ../../whatsnew/3.3.rst:993 msgid "" "A new Windows-only codec has been added: ``cp65001`` (:issue:`13216`). It is " "the Windows code page 65001 (Windows UTF-8, ``CP_UTF8``). For example, it " @@ -1525,25 +1271,21 @@ msgid "" "(e.g., using ``chcp 65001`` command)." msgstr "" -#: ../../whatsnew/3.3.rst:998 msgid "" "Multibyte CJK decoders now resynchronize faster. They only ignore the first " -"byte of an invalid byte sequence. For example, " -"``b'\\xff\\n'.decode('gb2312', 'replace')`` now returns a ``\\n`` after the " -"replacement character." +"byte of an invalid byte sequence. For example, ``b'\\xff\\n'." +"decode('gb2312', 'replace')`` now returns a ``\\n`` after the replacement " +"character." msgstr "" -#: ../../whatsnew/3.3.rst:1002 msgid "(:issue:`12016`)" msgstr "" -#: ../../whatsnew/3.3.rst:1004 msgid "" "Incremental CJK codec encoders are no longer reset at each call to their " "encode() methods. For example::" msgstr "" -#: ../../whatsnew/3.3.rst:1007 msgid "" ">>> import codecs\n" ">>> encoder = codecs.getincrementalencoder('hz')('strict')\n" @@ -1552,51 +1294,42 @@ msgid "" "b'~{NpJ)l6HK!#~} Bye.'" msgstr "" -#: ../../whatsnew/3.3.rst:1012 msgid "" "This example gives ``b'~{Np~}~{J)~}~{l6~}~{HK~}~{!#~} Bye.'`` with older " "Python versions." msgstr "" -#: ../../whatsnew/3.3.rst:1015 msgid "(:issue:`12100`)" msgstr "" -#: ../../whatsnew/3.3.rst:1017 msgid "The ``unicode_internal`` codec has been deprecated." msgstr "" -#: ../../whatsnew/3.3.rst:1021 msgid "collections" msgstr "" -#: ../../whatsnew/3.3.rst:1023 msgid "" "Addition of a new :class:`~collections.ChainMap` class to allow treating a " -"number of mappings as a single unit. (Written by Raymond Hettinger " -"for :issue:`11089`, made public in :issue:`11297`.)" +"number of mappings as a single unit. (Written by Raymond Hettinger for :" +"issue:`11089`, made public in :issue:`11297`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1027 msgid "" "The abstract base classes have been moved in a new :mod:`collections.abc` " "module, to better differentiate between the abstract and the concrete " -"collections classes. Aliases for ABCs are still present in " -"the :mod:`collections` module to preserve existing imports. (:issue:`11085`)" +"collections classes. Aliases for ABCs are still present in the :mod:" +"`collections` module to preserve existing imports. (:issue:`11085`)" msgstr "" -#: ../../whatsnew/3.3.rst:1034 msgid "" "The :class:`~collections.Counter` class now supports the unary ``+`` and ``-" "`` operators, as well as the in-place operators ``+=``, ``-=``, ``|=``, and " "``&=``. (Contributed by Raymond Hettinger in :issue:`13121`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1040 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.3.rst:1042 msgid "" ":class:`~contextlib.ExitStack` now provides a solid foundation for " "programmatic manipulation of context managers and similar cleanup " @@ -1608,104 +1341,83 @@ msgid "" "module)." msgstr "" -#: ../../whatsnew/3.3.rst:1051 msgid "(:issue:`13585`)" msgstr "" -#: ../../whatsnew/3.3.rst:1055 msgid "crypt" msgstr "" -#: ../../whatsnew/3.3.rst:1057 msgid "" "Addition of salt and modular crypt format (hashing method) and the :func:`!" "mksalt` function to the :mod:`!crypt` module." msgstr "" -#: ../../whatsnew/3.3.rst:1060 msgid "(:issue:`10924`)" msgstr "" -#: ../../whatsnew/3.3.rst:1063 msgid "curses" msgstr "" -#: ../../whatsnew/3.3.rst:1065 msgid "" "If the :mod:`curses` module is linked to the ncursesw library, use Unicode " -"functions when Unicode strings or characters are passed " -"(e.g. :c:func:`waddwstr`), and bytes functions otherwise " -"(e.g. :c:func:`waddstr`)." +"functions when Unicode strings or characters are passed (e.g. :c:func:`!" +"waddwstr`), and bytes functions otherwise (e.g. :c:func:`!waddstr`)." msgstr "" -#: ../../whatsnew/3.3.rst:1068 msgid "Use the locale encoding instead of ``utf-8`` to encode Unicode strings." msgstr "" -#: ../../whatsnew/3.3.rst:1069 msgid "" ":class:`curses.window` has a new :attr:`curses.window.encoding` attribute." msgstr "" -#: ../../whatsnew/3.3.rst:1070 msgid "" "The :class:`curses.window` class has a new :meth:`~curses.window.get_wch` " "method to get a wide character" msgstr "" -#: ../../whatsnew/3.3.rst:1072 msgid "" "The :mod:`curses` module has a new :meth:`~curses.unget_wch` function to " "push a wide character so the next :meth:`~curses.window.get_wch` will return " "it" msgstr "" -#: ../../whatsnew/3.3.rst:1076 msgid "(Contributed by Iñigo Serna in :issue:`6755`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1079 msgid "datetime" msgstr "" -#: ../../whatsnew/3.3.rst:1081 msgid "" "Equality comparisons between naive and aware :class:`~datetime.datetime` " -"instances now return :const:`False` instead of raising :exc:`TypeError` " -"(:issue:`15006`)." +"instances now return :const:`False` instead of raising :exc:`TypeError` (:" +"issue:`15006`)." msgstr "" -#: ../../whatsnew/3.3.rst:1084 msgid "" "New :meth:`datetime.datetime.timestamp` method: Return POSIX timestamp " "corresponding to the :class:`~datetime.datetime` instance." msgstr "" -#: ../../whatsnew/3.3.rst:1086 msgid "" "The :meth:`datetime.datetime.strftime` method supports formatting years " "older than 1000." msgstr "" -#: ../../whatsnew/3.3.rst:1088 msgid "" "The :meth:`datetime.datetime.astimezone` method can now be called without " "arguments to convert datetime instance to the system timezone." msgstr "" -#: ../../whatsnew/3.3.rst:1096 msgid "decimal" msgstr "" -#: ../../whatsnew/3.3.rst:1098 msgid ":issue:`7652` - integrate fast native decimal arithmetic." msgstr "" -#: ../../whatsnew/3.3.rst:1099 msgid "C-module and libmpdec written by Stefan Krah." msgstr "" -#: ../../whatsnew/3.3.rst:1101 msgid "" "The new C version of the decimal module integrates the high speed libmpdec " "library for arbitrary precision correctly rounded decimal floating-point " @@ -1713,7 +1425,6 @@ msgid "" "Specification." msgstr "" -#: ../../whatsnew/3.3.rst:1105 msgid "" "Performance gains range from 10x for database applications to 100x for " "numerically intensive applications. These numbers are expected gains for " @@ -1722,269 +1433,216 @@ msgid "" "integer bignum arithmetic the differences can be significantly higher." msgstr "" -#: ../../whatsnew/3.3.rst:1111 msgid "" "The following table is meant as an illustration. Benchmarks are available at " "https://www.bytereef.org/mpdecimal/quickstart.html." msgstr "" -#: ../../whatsnew/3.3.rst:1115 msgid "decimal.py" msgstr "" -#: ../../whatsnew/3.3.rst:1115 msgid "_decimal" msgstr "" -#: ../../whatsnew/3.3.rst:1115 msgid "speedup" msgstr "" -#: ../../whatsnew/3.3.rst:1117 msgid "pi" msgstr "" -#: ../../whatsnew/3.3.rst:1117 msgid "42.02s" msgstr "" -#: ../../whatsnew/3.3.rst:1117 msgid "0.345s" msgstr "" -#: ../../whatsnew/3.3.rst:1117 msgid "120x" msgstr "" -#: ../../whatsnew/3.3.rst:1119 msgid "telco" msgstr "" -#: ../../whatsnew/3.3.rst:1119 msgid "172.19s" msgstr "" -#: ../../whatsnew/3.3.rst:1119 msgid "5.68s" msgstr "" -#: ../../whatsnew/3.3.rst:1119 msgid "30x" msgstr "" -#: ../../whatsnew/3.3.rst:1121 msgid "psycopg" msgstr "" -#: ../../whatsnew/3.3.rst:1121 msgid "3.57s" msgstr "" -#: ../../whatsnew/3.3.rst:1121 msgid "0.29s" msgstr "" -#: ../../whatsnew/3.3.rst:1121 msgid "12x" msgstr "" -#: ../../whatsnew/3.3.rst:1127 msgid "" "The :exc:`~decimal.FloatOperation` signal optionally enables stricter " "semantics for mixing floats and Decimals." msgstr "" -#: ../../whatsnew/3.3.rst:1130 msgid "" "If Python is compiled without threads, the C version automatically disables " -"the expensive thread local context machinery. In this case, the " -"variable :const:`~decimal.HAVE_THREADS` is set to ``False``." +"the expensive thread local context machinery. In this case, the variable :" +"const:`~decimal.HAVE_THREADS` is set to ``False``." msgstr "" -#: ../../whatsnew/3.3.rst:1137 msgid "" "The C module has the following context limits, depending on the machine " "architecture:" msgstr "" -#: ../../whatsnew/3.3.rst:1141 msgid "32-bit" msgstr "" -#: ../../whatsnew/3.3.rst:1141 msgid "64-bit" msgstr "" -#: ../../whatsnew/3.3.rst:1143 -msgid ":const:`MAX_PREC`" +msgid ":const:`~decimal.MAX_PREC`" msgstr "" -#: ../../whatsnew/3.3.rst:1143 ../../whatsnew/3.3.rst:1145 msgid "``425000000``" -msgstr "``425000000``" +msgstr "" -#: ../../whatsnew/3.3.rst:1143 ../../whatsnew/3.3.rst:1145 msgid "``999999999999999999``" -msgstr "``999999999999999999``" +msgstr "" -#: ../../whatsnew/3.3.rst:1145 -msgid ":const:`MAX_EMAX`" +msgid ":const:`~decimal.MAX_EMAX`" msgstr "" -#: ../../whatsnew/3.3.rst:1147 -msgid ":const:`MIN_EMIN`" +msgid ":const:`~decimal.MIN_EMIN`" msgstr "" -#: ../../whatsnew/3.3.rst:1147 msgid "``-425000000``" -msgstr "``-425000000``" +msgstr "" -#: ../../whatsnew/3.3.rst:1147 msgid "``-999999999999999999``" -msgstr "``-999999999999999999``" +msgstr "" -#: ../../whatsnew/3.3.rst:1150 msgid "" -"In the context templates " -"(:const:`~decimal.DefaultContext`, :const:`~decimal.BasicContext` " -"and :const:`~decimal.ExtendedContext`) the magnitude " -"of :attr:`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has " -"changed to ``999999``." +"In the context templates (:const:`~decimal.DefaultContext`, :const:`~decimal." +"BasicContext` and :const:`~decimal.ExtendedContext`) the magnitude of :attr:" +"`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has changed to " +"``999999``." msgstr "" -#: ../../whatsnew/3.3.rst:1155 msgid "" "The :class:`~decimal.Decimal` constructor in decimal.py does not observe the " "context limits and converts values with arbitrary exponents or precision " "exactly. Since the C version has internal limits, the following scheme is " -"used: If possible, values are converted exactly, " -"otherwise :exc:`~decimal.InvalidOperation` is raised and the result is NaN. " -"In the latter case it is always possible to " -"use :meth:`~decimal.Context.create_decimal` in order to obtain a rounded or " -"inexact value." +"used: If possible, values are converted exactly, otherwise :exc:`~decimal." +"InvalidOperation` is raised and the result is NaN. In the latter case it is " +"always possible to use :meth:`~decimal.Context.create_decimal` in order to " +"obtain a rounded or inexact value." msgstr "" -#: ../../whatsnew/3.3.rst:1164 msgid "" "The power function in decimal.py is always correctly rounded. In the C " -"version, it is defined in terms of the correctly " -"rounded :meth:`~decimal.Decimal.exp` and :meth:`~decimal.Decimal.ln` " -"functions, but the final result is only \"almost always correctly rounded\"." +"version, it is defined in terms of the correctly rounded :meth:`~decimal." +"Decimal.exp` and :meth:`~decimal.Decimal.ln` functions, but the final result " +"is only \"almost always correctly rounded\"." msgstr "" -#: ../../whatsnew/3.3.rst:1170 msgid "" -"In the C version, the context dictionary containing the signals is " -"a :class:`~collections.abc.MutableMapping`. For speed " -"reasons, :attr:`~decimal.Context.flags` and :attr:`~decimal.Context.traps` " -"always refer to the same :class:`~collections.abc.MutableMapping` that the " -"context was initialized with. If a new signal dictionary is " -"assigned, :attr:`~decimal.Context.flags` and :attr:`~decimal.Context.traps` " -"are updated with the new values, but they do not reference the RHS " -"dictionary." +"In the C version, the context dictionary containing the signals is a :class:" +"`~collections.abc.MutableMapping`. For speed reasons, :attr:`~decimal." +"Context.flags` and :attr:`~decimal.Context.traps` always refer to the same :" +"class:`~collections.abc.MutableMapping` that the context was initialized " +"with. If a new signal dictionary is assigned, :attr:`~decimal.Context.flags` " +"and :attr:`~decimal.Context.traps` are updated with the new values, but they " +"do not reference the RHS dictionary." msgstr "" -#: ../../whatsnew/3.3.rst:1180 msgid "" "Pickling a :class:`~decimal.Context` produces a different output in order to " "have a common interchange format for the Python and C versions." msgstr "" -#: ../../whatsnew/3.3.rst:1184 msgid "" "The order of arguments in the :class:`~decimal.Context` constructor has been " "changed to match the order displayed by :func:`repr`." msgstr "" -#: ../../whatsnew/3.3.rst:1188 msgid "" "The ``watchexp`` parameter in the :meth:`~decimal.Decimal.quantize` method " "is deprecated." msgstr "" -#: ../../whatsnew/3.3.rst:1195 msgid "email" msgstr "" -#: ../../whatsnew/3.3.rst:1198 msgid "Policy Framework" msgstr "" -#: ../../whatsnew/3.3.rst:1200 msgid "" -"The email package now has a :mod:`~email.policy` framework. " -"A :class:`~email.policy.Policy` is an object with several methods and " -"properties that control how the email package behaves. The primary policy " -"for Python 3.3 is the :class:`~email.policy.Compat32` policy, which provides " -"backward compatibility with the email package in Python 3.2. A ``policy`` " -"can be specified when an email message is parsed by a :mod:`~email.parser`, " -"or when a :class:`~email.message.Message` object is created, or when an " -"email is serialized using a :mod:`~email.generator`. Unless overridden, a " -"policy passed to a ``parser`` is inherited by all the ``Message`` object and " -"sub-objects created by the ``parser``. By default a ``generator`` will use " -"the policy of the ``Message`` object it is serializing. The default policy " -"is :data:`~email.policy.compat32`." +"The email package now has a :mod:`~email.policy` framework. A :class:" +"`~email.policy.Policy` is an object with several methods and properties that " +"control how the email package behaves. The primary policy for Python 3.3 is " +"the :class:`~email.policy.Compat32` policy, which provides backward " +"compatibility with the email package in Python 3.2. A ``policy`` can be " +"specified when an email message is parsed by a :mod:`~email.parser`, or when " +"a :class:`~email.message.Message` object is created, or when an email is " +"serialized using a :mod:`~email.generator`. Unless overridden, a policy " +"passed to a ``parser`` is inherited by all the ``Message`` object and sub-" +"objects created by the ``parser``. By default a ``generator`` will use the " +"policy of the ``Message`` object it is serializing. The default policy is :" +"data:`~email.policy.compat32`." msgstr "" -#: ../../whatsnew/3.3.rst:1213 msgid "The minimum set of controls implemented by all ``policy`` objects are:" msgstr "" -#: ../../whatsnew/3.3.rst:1218 msgid "max_line_length" msgstr "" -#: ../../whatsnew/3.3.rst:1218 msgid "" "The maximum length, excluding the linesep character(s), individual lines may " "have when a ``Message`` is serialized. Defaults to 78." msgstr "" -#: ../../whatsnew/3.3.rst:1222 msgid "linesep" msgstr "" -#: ../../whatsnew/3.3.rst:1222 msgid "" "The character used to separate individual lines when a ``Message`` is " "serialized. Defaults to ``\\n``." msgstr "" -#: ../../whatsnew/3.3.rst:1225 msgid "cte_type" msgstr "" -#: ../../whatsnew/3.3.rst:1225 msgid "" "``7bit`` or ``8bit``. ``8bit`` applies only to a ``Bytes`` ``generator``, " "and means that non-ASCII may be used where allowed by the protocol (or where " "it exists in the original input)." msgstr "" -#: ../../whatsnew/3.3.rst:1230 msgid "raise_on_defect" msgstr "" -#: ../../whatsnew/3.3.rst:1230 msgid "" "Causes a ``parser`` to raise error when defects are encountered instead of " "adding them to the ``Message`` object's ``defects`` list." msgstr "" -#: ../../whatsnew/3.3.rst:1235 msgid "" -"A new policy instance, with new settings, is created using " -"the :meth:`~email.policy.Policy.clone` method of policy objects. ``clone`` " -"takes any of the above controls as keyword arguments. Any control not " -"specified in the call retains its default value. Thus you can create a " -"policy that uses ``\\r\\n`` linesep characters like this::" +"A new policy instance, with new settings, is created using the :meth:`~email." +"policy.Policy.clone` method of policy objects. ``clone`` takes any of the " +"above controls as keyword arguments. Any control not specified in the call " +"retains its default value. Thus you can create a policy that uses " +"``\\r\\n`` linesep characters like this::" msgstr "" -#: ../../whatsnew/3.3.rst:1241 msgid "mypolicy = compat32.clone(linesep='\\r\\n')" msgstr "" -#: ../../whatsnew/3.3.rst:1243 msgid "" "Policies can be used to make the generation of messages in the format needed " "by your application simpler. Instead of having to remember to specify " @@ -1997,33 +1655,28 @@ msgid "" "when you create the ``generator``." msgstr "" -#: ../../whatsnew/3.3.rst:1255 msgid "Provisional Policy with New Header API" msgstr "" -#: ../../whatsnew/3.3.rst:1257 msgid "" "While the policy framework is worthwhile all by itself, the main motivation " "for introducing it is to allow the creation of new policies that implement " "new features for the email package in a way that maintains backward " "compatibility for those who do not use the new policies. Because the new " -"policies introduce a new API, we are releasing them in Python 3.3 as " -"a :term:`provisional policy `. Backwards incompatible " -"changes (up to and including removal of the code) may occur if deemed " -"necessary by the core developers." +"policies introduce a new API, we are releasing them in Python 3.3 as a :term:" +"`provisional policy `. Backwards incompatible changes " +"(up to and including removal of the code) may occur if deemed necessary by " +"the core developers." msgstr "" -#: ../../whatsnew/3.3.rst:1265 msgid "" "The new policies are instances of :class:`~email.policy.EmailPolicy`, and " "add the following additional controls:" msgstr "" -#: ../../whatsnew/3.3.rst:1271 msgid "refold_source" msgstr "" -#: ../../whatsnew/3.3.rst:1271 msgid "" "Controls whether or not headers parsed by a :mod:`~email.parser` are " "refolded by the :mod:`~email.generator`. It can be ``none``, ``long``, or " @@ -2032,17 +1685,14 @@ msgid "" "get refolded, and ``all`` means that all lines get refolded." msgstr "" -#: ../../whatsnew/3.3.rst:1280 msgid "header_factory" msgstr "" -#: ../../whatsnew/3.3.rst:1280 msgid "" "A callable that take a ``name`` and ``value`` and produces a custom header " "object." msgstr "" -#: ../../whatsnew/3.3.rst:1284 msgid "" "The ``header_factory`` is the key to the new features provided by the new " "policies. When one of the new policies is used, any header retrieved from a " @@ -2054,7 +1704,6 @@ msgid "" "now do things like this::" msgstr "" -#: ../../whatsnew/3.3.rst:1293 msgid "" ">>> m = Message(policy=SMTP)\n" ">>> m['To'] = 'Éric '\n" @@ -2068,8 +1717,8 @@ msgid "" "'Éric'\n" ">>> m['Date'] = email.utils.localtime()\n" ">>> m['Date'].datetime\n" -"datetime.datetime(2012, 5, 25, 21, 39, 24, 465484, " -"tzinfo=datetime.timezone(datetime.timedelta(-1, 72000), 'EDT'))\n" +"datetime.datetime(2012, 5, 25, 21, 39, 24, 465484, tzinfo=datetime." +"timezone(datetime.timedelta(-1, 72000), 'EDT'))\n" ">>> m['Date']\n" "'Fri, 25 May 2012 21:44:27 -0400'\n" ">>> print(m)\n" @@ -2077,20 +1726,17 @@ msgid "" "Date: Fri, 25 May 2012 21:44:27 -0400" msgstr "" -#: ../../whatsnew/3.3.rst:1312 msgid "" "You will note that the unicode display name is automatically encoded as " "``utf-8`` when the message is serialized, but that when the header is " "accessed directly, you get the unicode version. This eliminates any need to " -"deal with the :mod:`email.header` :meth:`~email.header.decode_header` " -"or :meth:`~email.header.make_header` functions." +"deal with the :mod:`email.header` :meth:`~email.header.decode_header` or :" +"meth:`~email.header.make_header` functions." msgstr "" -#: ../../whatsnew/3.3.rst:1318 msgid "You can also create addresses from parts::" msgstr "" -#: ../../whatsnew/3.3.rst:1320 msgid "" ">>> m['cc'] = [Group('pals', [Address('Bob', 'bob', 'example.com'),\n" "... Address('Sally', 'sally', 'example.com')]),\n" @@ -2102,25 +1748,21 @@ msgid "" "" msgstr "" -#: ../../whatsnew/3.3.rst:1328 msgid "Decoding to unicode is done automatically::" msgstr "" -#: ../../whatsnew/3.3.rst:1330 msgid "" ">>> m2 = message_from_string(str(m))\n" ">>> m2['to']\n" "'Éric '" msgstr "" -#: ../../whatsnew/3.3.rst:1334 msgid "" "When you parse a message, you can use the ``addresses`` and ``groups`` " "attributes of the header objects to access the groups and individual " "addresses::" msgstr "" -#: ../../whatsnew/3.3.rst:1338 msgid "" ">>> m2['cc'].addresses\n" "(Address(display_name='Bob', username='bob', domain='example.com'), " @@ -2130,11 +1772,10 @@ msgid "" "(Group(display_name='pals', addresses=(Address(display_name='Bob', " "username='bob', domain='example.com'), Address(display_name='Sally', " "username='sally', domain='example.com')), Group(display_name=None, " -"addresses=(Address(display_name='Bonzo', username='bonz', " -"domain='laugh.com'),))" +"addresses=(Address(display_name='Bonzo', username='bonz', domain='laugh." +"com'),))" msgstr "" -#: ../../whatsnew/3.3.rst:1343 msgid "" "In summary, if you use one of the new policies, header manipulation works " "the way it ought to: your application works with unicode strings, and the " @@ -2142,78 +1783,64 @@ msgid "" "RFC standard Content Transfer Encodings." msgstr "" -#: ../../whatsnew/3.3.rst:1349 msgid "Other API Changes" msgstr "" -#: ../../whatsnew/3.3.rst:1351 msgid "" -"New :class:`~email.parser.BytesHeaderParser`, added to " -"the :mod:`~email.parser` module to " -"complement :class:`~email.parser.HeaderParser` and complete the Bytes API." +"New :class:`~email.parser.BytesHeaderParser`, added to the :mod:`~email." +"parser` module to complement :class:`~email.parser.HeaderParser` and " +"complete the Bytes API." msgstr "" -#: ../../whatsnew/3.3.rst:1355 msgid "New utility functions:" msgstr "" -#: ../../whatsnew/3.3.rst:1357 msgid "" ":func:`~email.utils.format_datetime`: given a :class:`~datetime.datetime`, " "produce a string formatted for use in an email header." msgstr "" -#: ../../whatsnew/3.3.rst:1360 msgid "" ":func:`~email.utils.parsedate_to_datetime`: given a date string from an " "email header, convert it into an aware :class:`~datetime.datetime`, or a " "naive :class:`~datetime.datetime` if the offset is ``-0000``." msgstr "" -#: ../../whatsnew/3.3.rst:1364 msgid "" ":func:`~email.utils.localtime`: With no argument, returns the current local " -"time as an aware :class:`~datetime.datetime` using the " -"local :class:`~datetime.timezone`. Given an " -"aware :class:`~datetime.datetime`, converts it into an " -"aware :class:`~datetime.datetime` using the " -"local :class:`~datetime.timezone`." +"time as an aware :class:`~datetime.datetime` using the local :class:" +"`~datetime.timezone`. Given an aware :class:`~datetime.datetime`, converts " +"it into an aware :class:`~datetime.datetime` using the local :class:" +"`~datetime.timezone`." msgstr "" -#: ../../whatsnew/3.3.rst:1372 msgid "ftplib" msgstr "" -#: ../../whatsnew/3.3.rst:1374 msgid "" ":class:`ftplib.FTP` now accepts a ``source_address`` keyword argument to " "specify the ``(host, port)`` to use as the source address in the bind call " -"when creating the outgoing socket. (Contributed by Giampaolo Rodolà " -"in :issue:`8594`.)" +"when creating the outgoing socket. (Contributed by Giampaolo Rodolà in :" +"issue:`8594`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1379 msgid "" -"The :class:`~ftplib.FTP_TLS` class now provides a " -"new :func:`~ftplib.FTP_TLS.ccc` function to revert control channel back to " -"plaintext. This can be useful to take advantage of firewalls that know how " -"to handle NAT with non-secure FTP without opening fixed ports. (Contributed " -"by Giampaolo Rodolà in :issue:`12139`.)" +"The :class:`~ftplib.FTP_TLS` class now provides a new :func:`~ftplib.FTP_TLS." +"ccc` function to revert control channel back to plaintext. This can be " +"useful to take advantage of firewalls that know how to handle NAT with non-" +"secure FTP without opening fixed ports. (Contributed by Giampaolo Rodolà " +"in :issue:`12139`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1385 msgid "" "Added :meth:`ftplib.FTP.mlsd` method which provides a parsable directory " -"listing format and deprecates :meth:`ftplib.FTP.nlst` " -"and :meth:`ftplib.FTP.dir`. (Contributed by Giampaolo Rodolà " -"in :issue:`11072`.)" +"listing format and deprecates :meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP." +"dir`. (Contributed by Giampaolo Rodolà in :issue:`11072`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1391 msgid "functools" msgstr "" -#: ../../whatsnew/3.3.rst:1393 msgid "" "The :func:`functools.lru_cache` decorator now accepts a ``typed`` keyword " "argument (that defaults to ``False`` to ensure that it caches values of " @@ -2221,71 +1848,61 @@ msgid "" "Raymond Hettinger in :issue:`13227`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1400 msgid "gc" msgstr "" -#: ../../whatsnew/3.3.rst:1402 msgid "" "It is now possible to register callbacks invoked by the garbage collector " "before and after collection using the new :data:`~gc.callbacks` list." msgstr "" -#: ../../whatsnew/3.3.rst:1407 msgid "hmac" msgstr "" -#: ../../whatsnew/3.3.rst:1409 msgid "" "A new :func:`~hmac.compare_digest` function has been added to prevent side " "channel attacks on digests through timing analysis. (Contributed by Nick " "Coghlan and Christian Heimes in :issue:`15061`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1415 msgid "http" msgstr "" -#: ../../whatsnew/3.3.rst:1417 msgid "" ":class:`http.server.BaseHTTPRequestHandler` now buffers the headers and " -"writes them all at once " -"when :meth:`~http.server.BaseHTTPRequestHandler.end_headers` is called. A " -"new method :meth:`~http.server.BaseHTTPRequestHandler.flush_headers` can be " -"used to directly manage when the accumulated headers are sent. (Contributed " -"by Andrew Schaaf in :issue:`3709`.)" +"writes them all at once when :meth:`~http.server.BaseHTTPRequestHandler." +"end_headers` is called. A new method :meth:`~http.server." +"BaseHTTPRequestHandler.flush_headers` can be used to directly manage when " +"the accumulated headers are sent. (Contributed by Andrew Schaaf in :issue:" +"`3709`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1423 msgid "" ":class:`http.server` now produces valid ``HTML 4.01 strict`` output. " "(Contributed by Ezio Melotti in :issue:`13295`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1426 msgid "" -":class:`http.client.HTTPResponse` now has " -"a :meth:`~http.client.HTTPResponse.readinto` method, which means it can be " -"used as an :class:`io.RawIOBase` class. (Contributed by John Kuhn " -"in :issue:`13464`.)" +":class:`http.client.HTTPResponse` now has a :meth:`~http.client.HTTPResponse." +"readinto` method, which means it can be used as an :class:`io.RawIOBase` " +"class. (Contributed by John Kuhn in :issue:`13464`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1433 msgid "html" msgstr "" -#: ../../whatsnew/3.3.rst:1435 msgid "" ":class:`html.parser.HTMLParser` is now able to parse broken markup without " -"raising errors, therefore the *strict* argument of the constructor and " -"the :exc:`~html.parser.HTMLParseError` exception are now deprecated. The " -"ability to parse broken markup is the result of a number of bug fixes that " -"are also available on the latest bug fix releases of Python 2.7/3.2. " -"(Contributed by Ezio Melotti in :issue:`15114`, " -"and :issue:`14538`, :issue:`13993`, :issue:`13960`, :issue:`13358`, :issue:`1745761`, :issue:`755670`, :issue:`13357`, :issue:`12629`, :issue:`1200313`, :issue:`670664`, :issue:`13273`, :issue:`12888`, :issue:`7311`.)" +"raising errors, therefore the *strict* argument of the constructor and the :" +"exc:`!HTMLParseError` exception are now deprecated. The ability to parse " +"broken markup is the result of a number of bug fixes that are also available " +"on the latest bug fix releases of Python 2.7/3.2. (Contributed by Ezio " +"Melotti in :issue:`15114`, and :issue:`14538`, :issue:`13993`, :issue:" +"`13960`, :issue:`13358`, :issue:`1745761`, :issue:`755670`, :issue:`13357`, :" +"issue:`12629`, :issue:`1200313`, :issue:`670664`, :issue:`13273`, :issue:" +"`12888`, :issue:`7311`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1445 msgid "" "A new :data:`~html.entities.html5` dictionary that maps HTML5 named " "character references to the equivalent Unicode character(s) (e.g. " @@ -2294,25 +1911,20 @@ msgid "" "(Contributed by Ezio Melotti in :issue:`11113` and :issue:`15156`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1453 msgid "imaplib" msgstr "" -#: ../../whatsnew/3.3.rst:1455 msgid "" "The :class:`~imaplib.IMAP4_SSL` constructor now accepts an SSLContext " "parameter to control parameters of the secure channel." msgstr "" -#: ../../whatsnew/3.3.rst:1458 msgid "(Contributed by Sijin Joseph in :issue:`8808`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1462 msgid "inspect" msgstr "" -#: ../../whatsnew/3.3.rst:1464 msgid "" "A new :func:`~inspect.getclosurevars` function has been added. This function " "reports the current binding of all names referenced from the function body " @@ -2320,11 +1932,9 @@ msgid "" "internal state when testing code that relies on stateful closures." msgstr "" -#: ../../whatsnew/3.3.rst:1469 msgid "(Contributed by Meador Inge and Nick Coghlan in :issue:`13062`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1471 msgid "" "A new :func:`~inspect.getgeneratorlocals` function has been added. This " "function reports the current binding of local variables in the generator's " @@ -2332,83 +1942,67 @@ msgid "" "generators." msgstr "" -#: ../../whatsnew/3.3.rst:1476 msgid "(Contributed by Meador Inge in :issue:`15153`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1479 msgid "io" msgstr "" -#: ../../whatsnew/3.3.rst:1481 msgid "" "The :func:`~io.open` function has a new ``'x'`` mode that can be used to " "exclusively create a new file, and raise a :exc:`FileExistsError` if the " "file already exists. It is based on the C11 'x' mode to fopen()." msgstr "" -#: ../../whatsnew/3.3.rst:1485 msgid "(Contributed by David Townshend in :issue:`12760`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1487 msgid "" "The constructor of the :class:`~io.TextIOWrapper` class has a new " -"*write_through* optional argument. If *write_through* is ``True``, calls " -"to :meth:`~io.TextIOWrapper.write` are guaranteed not to be buffered: any " -"data written on the :class:`~io.TextIOWrapper` object is immediately handled " -"to its underlying binary buffer." +"*write_through* optional argument. If *write_through* is ``True``, calls to :" +"meth:`!write` are guaranteed not to be buffered: any data written on the :" +"class:`~io.TextIOWrapper` object is immediately handled to its underlying " +"binary buffer." msgstr "" -#: ../../whatsnew/3.3.rst:1495 msgid "itertools" msgstr "" -#: ../../whatsnew/3.3.rst:1497 msgid "" ":func:`~itertools.accumulate` now takes an optional ``func`` argument for " "providing a user-supplied binary function." msgstr "" -#: ../../whatsnew/3.3.rst:1502 msgid "logging" msgstr "" -#: ../../whatsnew/3.3.rst:1504 msgid "" "The :func:`~logging.basicConfig` function now supports an optional " "``handlers`` argument taking an iterable of handlers to be added to the root " "logger." msgstr "" -#: ../../whatsnew/3.3.rst:1507 msgid "" -"A class level attribute :attr:`~logging.handlers.SysLogHandler.append_nul` " -"has been added to :class:`~logging.handlers.SysLogHandler` to allow control " -"of the appending of the ``NUL`` (``\\000``) byte to syslog records, since " -"for some daemons it is required while for others it is passed through to the " -"log." +"A class level attribute :attr:`!append_nul` has been added to :class:" +"`~logging.handlers.SysLogHandler` to allow control of the appending of the " +"``NUL`` (``\\000``) byte to syslog records, since for some daemons it is " +"required while for others it is passed through to the log." msgstr "" -#: ../../whatsnew/3.3.rst:1515 msgid "math" msgstr "" -#: ../../whatsnew/3.3.rst:1517 msgid "" "The :mod:`math` module has a new function, :func:`~math.log2`, which " "returns the base-2 logarithm of *x*." msgstr "" -#: ../../whatsnew/3.3.rst:1520 msgid "(Written by Mark Dickinson in :issue:`11888`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1524 msgid "mmap" msgstr "" -#: ../../whatsnew/3.3.rst:1526 msgid "" "The :meth:`~mmap.mmap.read` method is now more compatible with other file-" "like objects: if the argument is omitted or specified as ``None``, it " @@ -2416,87 +2010,73 @@ msgid "" "(Contributed by Petri Lehtinen in :issue:`12021`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1533 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.3.rst:1535 msgid "" "The new :func:`multiprocessing.connection.wait` function allows polling " "multiple objects (such as connections, sockets and pipes) with a timeout. " "(Contributed by Richard Oudkerk in :issue:`12328`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1539 msgid "" -":class:`multiprocessing.Connection` objects can now be transferred over " -"multiprocessing connections. (Contributed by Richard Oudkerk " -"in :issue:`4892`.)" +":class:`multiprocessing.connection.Connection` objects can now be " +"transferred over multiprocessing connections. (Contributed by Richard " +"Oudkerk in :issue:`4892`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1543 msgid "" ":class:`multiprocessing.Process` now accepts a ``daemon`` keyword argument " "to override the default behavior of inheriting the ``daemon`` flag from the " "parent process (:issue:`6064`)." msgstr "" -#: ../../whatsnew/3.3.rst:1547 msgid "" "New attribute :data:`multiprocessing.Process.sentinel` allows a program to " "wait on multiple :class:`~multiprocessing.Process` objects at one time using " "the appropriate OS primitives (for example, :mod:`select` on posix systems)." msgstr "" -#: ../../whatsnew/3.3.rst:1552 msgid "" -"New methods :meth:`multiprocessing.pool.Pool.starmap` " -"and :meth:`~multiprocessing.pool.Pool.starmap_async` " -"provide :func:`itertools.starmap` equivalents to the " -"existing :meth:`multiprocessing.pool.Pool.map` " -"and :meth:`~multiprocessing.pool.Pool.map_async` functions. (Contributed by " -"Hynek Schlawack in :issue:`12708`.)" +"New methods :meth:`multiprocessing.pool.Pool.starmap` and :meth:" +"`~multiprocessing.pool.Pool.starmap_async` provide :func:`itertools.starmap` " +"equivalents to the existing :meth:`multiprocessing.pool.Pool.map` and :meth:" +"`~multiprocessing.pool.Pool.map_async` functions. (Contributed by Hynek " +"Schlawack in :issue:`12708`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1561 msgid "nntplib" msgstr "" -#: ../../whatsnew/3.3.rst:1563 msgid "" "The :class:`!nntplib.NNTP` class now supports the context management " "protocol to unconditionally consume :exc:`socket.error` exceptions and to " "close the NNTP connection when done::" msgstr "" -#: ../../whatsnew/3.3.rst:1567 msgid "" ">>> from nntplib import NNTP\n" ">>> with NNTP('news.gmane.org') as n:\n" "... n.group('gmane.comp.python.committers')\n" "...\n" -"('211 1755 1 1755 gmane.comp.python.committers', 1755, 1, 1755, " -"'gmane.comp.python.committers')\n" +"('211 1755 1 1755 gmane.comp.python.committers', 1755, 1, 1755, 'gmane.comp." +"python.committers')\n" ">>>" msgstr "" -#: ../../whatsnew/3.3.rst:1574 msgid "(Contributed by Giampaolo Rodolà in :issue:`9795`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1578 msgid "os" msgstr "" -#: ../../whatsnew/3.3.rst:1580 msgid "" "The :mod:`os` module has a new :func:`~os.pipe2` function that makes it " -"possible to create a pipe with :const:`~os.O_CLOEXEC` " -"or :const:`~os.O_NONBLOCK` flags set atomically. This is especially useful " -"to avoid race conditions in multi-threaded programs." +"possible to create a pipe with :const:`~os.O_CLOEXEC` or :const:`~os." +"O_NONBLOCK` flags set atomically. This is especially useful to avoid race " +"conditions in multi-threaded programs." msgstr "" -#: ../../whatsnew/3.3.rst:1585 msgid "" "The :mod:`os` module has a new :func:`~os.sendfile` function which provides " "an efficient \"zero-copy\" way for copying data from one file (or socket) " @@ -2507,65 +2087,62 @@ msgid "" "socket, e.g. for downloading a file." msgstr "" -#: ../../whatsnew/3.3.rst:1593 msgid "" "(Patch submitted by Ross Lagerwall and Giampaolo Rodolà in :issue:`10882`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1595 msgid "" "To avoid race conditions like symlink attacks and issues with temporary " "files and directories, it is more reliable (and also faster) to manipulate " "file descriptors instead of file names. Python 3.3 enhances existing " -"functions and introduces new functions to work on file descriptors " -"(:issue:`4761`, :issue:`10755` and :issue:`14626`)." +"functions and introduces new functions to work on file descriptors (:issue:" +"`4761`, :issue:`10755` and :issue:`14626`)." msgstr "" -#: ../../whatsnew/3.3.rst:1601 msgid "" -"The :mod:`os` module has a new :func:`~os.fwalk` function similar " -"to :func:`~os.walk` except that it also yields file descriptors referring to " -"the directories visited. This is especially useful to avoid symlink races." +"The :mod:`os` module has a new :func:`~os.fwalk` function similar to :func:" +"`~os.walk` except that it also yields file descriptors referring to the " +"directories visited. This is especially useful to avoid symlink races." msgstr "" -#: ../../whatsnew/3.3.rst:1605 msgid "" "The following functions get new optional *dir_fd* (:ref:`paths relative to " "directory descriptors `) and/or *follow_symlinks* (:ref:`not " -"following symlinks " -"`): :func:`~os.access`, :func:`~os.chflags`, :func:`~os.chmod`, :func:`~os.chown`, :func:`~os.link`, :func:`~os.lstat`, :func:`~os.mkdir`, :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os.open`, :func:`~os.readlink`, :func:`~os.remove`, :func:`~os.rename`, :func:`~os.replace`, :func:`~os.rmdir`, :func:`~os.stat`, :func:`~os.symlink`, :func:`~os.unlink`, :func:`~os.utime`. " -"Platform support for using these parameters can be checked via the " -"sets :data:`os.supports_dir_fd` and :data:`os.supports_follows_symlinks`." +"following symlinks `): :func:`~os.access`, :func:`~os." +"chflags`, :func:`~os.chmod`, :func:`~os.chown`, :func:`~os.link`, :func:`~os." +"lstat`, :func:`~os.mkdir`, :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os." +"open`, :func:`~os.readlink`, :func:`~os.remove`, :func:`~os.rename`, :func:" +"`~os.replace`, :func:`~os.rmdir`, :func:`~os.stat`, :func:`~os.symlink`, :" +"func:`~os.unlink`, :func:`~os.utime`. Platform support for using these " +"parameters can be checked via the sets :data:`os.supports_dir_fd` and :data:" +"`os.supports_follow_symlinks`." msgstr "" -#: ../../whatsnew/3.3.rst:1616 msgid "" "The following functions now support a file descriptor for their path " -"argument: :func:`~os.chdir`, :func:`~os.chmod`, :func:`~os.chown`, :func:`~os.execve`, :func:`~os.listdir`, :func:`~os.pathconf`, :func:`~os.path.exists`, :func:`~os.stat`, :func:`~os.statvfs`, :func:`~os.utime`. " -"Platform support for this can be checked via the :data:`os.supports_fd` set." +"argument: :func:`~os.chdir`, :func:`~os.chmod`, :func:`~os.chown`, :func:" +"`~os.execve`, :func:`~os.listdir`, :func:`~os.pathconf`, :func:`~os.path." +"exists`, :func:`~os.stat`, :func:`~os.statvfs`, :func:`~os.utime`. Platform " +"support for this can be checked via the :data:`os.supports_fd` set." msgstr "" -#: ../../whatsnew/3.3.rst:1622 msgid "" ":func:`~os.access` accepts an ``effective_ids`` keyword argument to turn on " "using the effective uid/gid rather than the real uid/gid in the access " -"check. Platform support for this can be checked via " -"the :data:`~os.supports_effective_ids` set." +"check. Platform support for this can be checked via the :data:`~os." +"supports_effective_ids` set." msgstr "" -#: ../../whatsnew/3.3.rst:1627 msgid "" -"The :mod:`os` module has two new functions: :func:`~os.getpriority` " -"and :func:`~os.setpriority`. They can be used to get or set process niceness/" +"The :mod:`os` module has two new functions: :func:`~os.getpriority` and :" +"func:`~os.setpriority`. They can be used to get or set process niceness/" "priority in a fashion similar to :func:`os.nice` but extended to all " "processes instead of just the current one." msgstr "" -#: ../../whatsnew/3.3.rst:1632 msgid "(Patch submitted by Giampaolo Rodolà in :issue:`10784`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1634 msgid "" "The new :func:`os.replace` function allows cross-platform renaming of a file " "with overwriting the destination. With :func:`os.rename`, an existing " @@ -2573,194 +2150,164 @@ msgid "" "Windows. (Contributed by Antoine Pitrou in :issue:`8828`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1640 msgid "" -"The stat family of functions (:func:`~os.stat`, :func:`~os.fstat`, " -"and :func:`~os.lstat`) now support reading a file's timestamps with " -"nanosecond precision. Symmetrically, :func:`~os.utime` can now write file " -"timestamps with nanosecond precision. (Contributed by Larry Hastings " -"in :issue:`14127`.)" +"The stat family of functions (:func:`~os.stat`, :func:`~os.fstat`, and :func:" +"`~os.lstat`) now support reading a file's timestamps with nanosecond " +"precision. Symmetrically, :func:`~os.utime` can now write file timestamps " +"with nanosecond precision. (Contributed by Larry Hastings in :issue:" +"`14127`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1646 msgid "" "The new :func:`os.get_terminal_size` function queries the size of the " -"terminal attached to a file descriptor. See " -"also :func:`shutil.get_terminal_size`. (Contributed by Zbigniew Jędrzejewski-" -"Szmek in :issue:`13609`.)" +"terminal attached to a file descriptor. See also :func:`shutil." +"get_terminal_size`. (Contributed by Zbigniew Jędrzejewski-Szmek in :issue:" +"`13609`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1653 msgid "" -"New functions to support Linux extended attributes " -"(:issue:`12720`): :func:`~os.getxattr`, :func:`~os.listxattr`, :func:`~os.removexattr`, :func:`~os.setxattr`." +"New functions to support Linux extended attributes (:issue:`12720`): :func:" +"`~os.getxattr`, :func:`~os.listxattr`, :func:`~os.removexattr`, :func:`~os." +"setxattr`." msgstr "" -#: ../../whatsnew/3.3.rst:1657 msgid "" "New interface to the scheduler. These functions control how a process is " -"allocated CPU time by the operating system. New " -"functions: :func:`~os.sched_get_priority_max`, :func:`~os.sched_get_priority_min`, :func:`~os.sched_getaffinity`, :func:`~os.sched_getparam`, :func:`~os.sched_getscheduler`, :func:`~os.sched_rr_get_interval`, :func:`~os.sched_setaffinity`, :func:`~os.sched_setparam`, :func:`~os.sched_setscheduler`, :func:`~os.sched_yield`," +"allocated CPU time by the operating system. New functions: :func:`~os." +"sched_get_priority_max`, :func:`~os.sched_get_priority_min`, :func:`~os." +"sched_getaffinity`, :func:`~os.sched_getparam`, :func:`~os." +"sched_getscheduler`, :func:`~os.sched_rr_get_interval`, :func:`~os." +"sched_setaffinity`, :func:`~os.sched_setparam`, :func:`~os." +"sched_setscheduler`, :func:`~os.sched_yield`," msgstr "" -#: ../../whatsnew/3.3.rst:1666 msgid "New functions to control the file system:" msgstr "" -#: ../../whatsnew/3.3.rst:1668 msgid "" ":func:`~os.posix_fadvise`: Announces an intention to access data in a " "specific pattern thus allowing the kernel to make optimizations." msgstr "" -#: ../../whatsnew/3.3.rst:1670 msgid "" ":func:`~os.posix_fallocate`: Ensures that enough disk space is allocated for " "a file." msgstr "" -#: ../../whatsnew/3.3.rst:1672 msgid ":func:`~os.sync`: Force write of everything to disk." msgstr "" -#: ../../whatsnew/3.3.rst:1674 msgid "Additional new posix functions:" msgstr "" -#: ../../whatsnew/3.3.rst:1676 msgid "" ":func:`~os.lockf`: Apply, test or remove a POSIX lock on an open file " "descriptor." msgstr "" -#: ../../whatsnew/3.3.rst:1677 msgid "" ":func:`~os.pread`: Read from a file descriptor at an offset, the file offset " "remains unchanged." msgstr "" -#: ../../whatsnew/3.3.rst:1679 msgid "" ":func:`~os.pwrite`: Write to a file descriptor from an offset, leaving the " "file offset unchanged." msgstr "" -#: ../../whatsnew/3.3.rst:1681 msgid "" ":func:`~os.readv`: Read from a file descriptor into a number of writable " "buffers." msgstr "" -#: ../../whatsnew/3.3.rst:1682 msgid "" ":func:`~os.truncate`: Truncate the file corresponding to *path*, so that it " "is at most *length* bytes in size." msgstr "" -#: ../../whatsnew/3.3.rst:1684 msgid "" ":func:`~os.waitid`: Wait for the completion of one or more child processes." msgstr "" -#: ../../whatsnew/3.3.rst:1685 msgid "" ":func:`~os.writev`: Write the contents of *buffers* to a file descriptor, " "where *buffers* is an arbitrary sequence of buffers." msgstr "" -#: ../../whatsnew/3.3.rst:1687 msgid "" ":func:`~os.getgrouplist` (:issue:`9344`): Return list of group ids that " "specified user belongs to." msgstr "" -#: ../../whatsnew/3.3.rst:1690 msgid "" ":func:`~os.times` and :func:`~os.uname`: Return type changed from a tuple to " "a tuple-like object with named attributes." msgstr "" -#: ../../whatsnew/3.3.rst:1693 msgid "" "Some platforms now support additional constants for the :func:`~os.lseek` " "function, such as ``os.SEEK_HOLE`` and ``os.SEEK_DATA``." msgstr "" -#: ../../whatsnew/3.3.rst:1696 msgid "" -"New " -"constants :const:`~os.RTLD_LAZY`, :const:`~os.RTLD_NOW`, :const:`~os.RTLD_GLOBAL`, :const:`~os.RTLD_LOCAL`, :const:`~os.RTLD_NODELETE`, :const:`~os.RTLD_NOLOAD`, " -"and :const:`~os.RTLD_DEEPBIND` are available on platforms that support " -"them. These are for use with the :func:`sys.setdlopenflags` function, and " -"supersede the similar constants defined in :mod:`ctypes` and :mod:`DLFCN`. " -"(Contributed by Victor Stinner in :issue:`13226`.)" +"New constants :const:`~os.RTLD_LAZY`, :const:`~os.RTLD_NOW`, :const:`~os." +"RTLD_GLOBAL`, :const:`~os.RTLD_LOCAL`, :const:`~os.RTLD_NODELETE`, :const:" +"`~os.RTLD_NOLOAD`, and :const:`~os.RTLD_DEEPBIND` are available on platforms " +"that support them. These are for use with the :func:`sys.setdlopenflags` " +"function, and supersede the similar constants defined in :mod:`ctypes` and :" +"mod:`!DLFCN`. (Contributed by Victor Stinner in :issue:`13226`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1704 msgid "" ":func:`os.symlink` now accepts (and ignores) the ``target_is_directory`` " "keyword argument on non-Windows platforms, to ease cross-platform support." msgstr "" -#: ../../whatsnew/3.3.rst:1709 msgid "pdb" msgstr "" -#: ../../whatsnew/3.3.rst:1711 msgid "" "Tab-completion is now available not only for command names, but also their " "arguments. For example, for the ``break`` command, function and file names " "are completed." msgstr "" -#: ../../whatsnew/3.3.rst:1715 msgid "(Contributed by Georg Brandl in :issue:`14210`)" msgstr "" -#: ../../whatsnew/3.3.rst:1719 msgid "pickle" msgstr "" -#: ../../whatsnew/3.3.rst:1721 msgid "" -":class:`pickle.Pickler` objects now have an " -"optional :attr:`~pickle.Pickler.dispatch_table` attribute allowing per-" -"pickler reduction functions to be set." +":class:`pickle.Pickler` objects now have an optional :attr:`~pickle.Pickler." +"dispatch_table` attribute allowing per-pickler reduction functions to be set." msgstr "" -#: ../../whatsnew/3.3.rst:1725 msgid "(Contributed by Richard Oudkerk in :issue:`14166`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1729 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.3.rst:1731 msgid "" -"The Tk GUI and the :func:`~pydoc.serve` function have been removed from " -"the :mod:`pydoc` module: ``pydoc -g`` and :func:`~pydoc.serve` have been " -"deprecated in Python 3.2." +"The Tk GUI and the :func:`!serve` function have been removed from the :mod:" +"`pydoc` module: ``pydoc -g`` and :func:`!serve` have been deprecated in " +"Python 3.2." msgstr "" -#: ../../whatsnew/3.3.rst:1737 msgid "re" msgstr "" -#: ../../whatsnew/3.3.rst:1739 msgid "" ":class:`str` regular expressions now support ``\\u`` and ``\\U`` escapes." msgstr "" -#: ../../whatsnew/3.3.rst:1741 msgid "(Contributed by Serhiy Storchaka in :issue:`3665`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1745 msgid "sched" msgstr "" -#: ../../whatsnew/3.3.rst:1747 msgid "" ":meth:`~sched.scheduler.run` now accepts a *blocking* parameter which when " "set to false makes the method execute the scheduled events due to expire " @@ -2769,86 +2316,71 @@ msgid "" "(Contributed by Giampaolo Rodolà in :issue:`13449`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1753 msgid "" ":class:`~sched.scheduler` class can now be safely used in multi-threaded " -"environments. (Contributed by Josiah Carlson and Giampaolo Rodolà " -"in :issue:`8684`.)" +"environments. (Contributed by Josiah Carlson and Giampaolo Rodolà in :issue:" +"`8684`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1757 msgid "" "*timefunc* and *delayfunct* parameters of :class:`~sched.scheduler` class " -"constructor are now optional and defaults to :func:`time.time` " -"and :func:`time.sleep` respectively. (Contributed by Chris Clark " -"in :issue:`13245`.)" +"constructor are now optional and defaults to :func:`time.time` and :func:" +"`time.sleep` respectively. (Contributed by Chris Clark in :issue:`13245`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1762 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` " -"*argument* parameter is now optional. (Contributed by Chris Clark " -"in :issue:`13245`.)" +"*argument* parameter is now optional. (Contributed by Chris Clark in :issue:" +"`13245`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1766 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` now " "accept a *kwargs* parameter. (Contributed by Chris Clark in :issue:`13245`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1772 msgid "select" msgstr "" -#: ../../whatsnew/3.3.rst:1774 msgid "" "Solaris and derivative platforms have a new class :class:`select.devpoll` " "for high performance asynchronous sockets via :file:`/dev/poll`. " "(Contributed by Jesús Cea Avión in :issue:`6397`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1780 msgid "shlex" msgstr "" -#: ../../whatsnew/3.3.rst:1782 msgid "" "The previously undocumented helper function ``quote`` from the :mod:`!pipes` " -"modules has been moved to the :mod:`shlex` module and " -"documented. :func:`~shlex.quote` properly escapes all characters in a " -"string that might be otherwise given special meaning by the shell." +"modules has been moved to the :mod:`shlex` module and documented. :func:" +"`~shlex.quote` properly escapes all characters in a string that might be " +"otherwise given special meaning by the shell." msgstr "" -#: ../../whatsnew/3.3.rst:1789 msgid "shutil" msgstr "" -#: ../../whatsnew/3.3.rst:1791 msgid "New functions:" msgstr "" -#: ../../whatsnew/3.3.rst:1793 msgid "" ":func:`~shutil.disk_usage`: provides total, used and free disk space " "statistics. (Contributed by Giampaolo Rodolà in :issue:`12442`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1795 msgid "" ":func:`~shutil.chown`: allows one to change user and/or group of the given " "path also specifying the user/group names and not only their numeric ids. " "(Contributed by Sandro Tosi in :issue:`12191`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1798 msgid "" ":func:`shutil.get_terminal_size`: returns the size of the terminal window to " "which the interpreter is attached. (Contributed by Zbigniew Jędrzejewski-" "Szmek in :issue:`13609`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1802 msgid "" ":func:`~shutil.copy2` and :func:`~shutil.copystat` now preserve file " "timestamps with nanosecond precision on platforms that support it. They also " @@ -2856,7 +2388,6 @@ msgid "" "Hastings in :issue:`14127` and :issue:`15238`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1807 msgid "" "Several functions now take an optional ``symlinks`` argument: when that " "parameter is true, symlinks aren't dereferenced and the operation instead " @@ -2864,7 +2395,6 @@ msgid "" "Hynek Schlawack in :issue:`12715`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1812 msgid "" "When copying files to a different file system, :func:`~shutil.move` now " "handles symlinks the way the posix ``mv`` command does, recreating the " @@ -2873,390 +2403,320 @@ msgid "" "the ``dst`` argument as its result." msgstr "" -#: ../../whatsnew/3.3.rst:1818 msgid "" ":func:`~shutil.rmtree` is now resistant to symlink attacks on platforms " -"which support the new ``dir_fd`` parameter in :func:`os.open` " -"and :func:`os.unlink`. (Contributed by Martin von Löwis and Hynek Schlawack " -"in :issue:`4489`.)" +"which support the new ``dir_fd`` parameter in :func:`os.open` and :func:`os." +"unlink`. (Contributed by Martin von Löwis and Hynek Schlawack in :issue:" +"`4489`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1825 msgid "signal" msgstr "" -#: ../../whatsnew/3.3.rst:1827 msgid "The :mod:`signal` module has new functions:" msgstr "" -#: ../../whatsnew/3.3.rst:1829 msgid "" ":func:`~signal.pthread_sigmask`: fetch and/or change the signal mask of the " "calling thread (Contributed by Jean-Paul Calderone in :issue:`8407`);" msgstr "" -#: ../../whatsnew/3.3.rst:1831 msgid ":func:`~signal.pthread_kill`: send a signal to a thread;" msgstr "" -#: ../../whatsnew/3.3.rst:1832 msgid ":func:`~signal.sigpending`: examine pending functions;" msgstr "" -#: ../../whatsnew/3.3.rst:1833 msgid ":func:`~signal.sigwait`: wait a signal;" msgstr "" -#: ../../whatsnew/3.3.rst:1834 msgid "" ":func:`~signal.sigwaitinfo`: wait for a signal, returning detailed " "information about it;" msgstr "" -#: ../../whatsnew/3.3.rst:1836 msgid "" ":func:`~signal.sigtimedwait`: like :func:`~signal.sigwaitinfo` but with a " "timeout." msgstr "" -#: ../../whatsnew/3.3.rst:1839 msgid "" "The signal handler writes the signal number as a single byte instead of a " "nul byte into the wakeup file descriptor. So it is possible to wait more " "than one signal and know which signals were raised." msgstr "" -#: ../../whatsnew/3.3.rst:1843 msgid "" ":func:`signal.signal` and :func:`signal.siginterrupt` raise an OSError, " "instead of a RuntimeError: OSError has an errno attribute." msgstr "" -#: ../../whatsnew/3.3.rst:1848 msgid "smtpd" msgstr "" -#: ../../whatsnew/3.3.rst:1850 msgid "" -"The :mod:`!smtpd` module now supports :rfc:`5321` (extended SMTP) " -"and :rfc:`1870` (size extension). Per the standard, these extensions are " -"enabled if and only if the client initiates the session with an ``EHLO`` " -"command." +"The :mod:`!smtpd` module now supports :rfc:`5321` (extended SMTP) and :rfc:" +"`1870` (size extension). Per the standard, these extensions are enabled if " +"and only if the client initiates the session with an ``EHLO`` command." msgstr "" -#: ../../whatsnew/3.3.rst:1854 msgid "" "(Initial ``ELHO`` support by Alberto Trevino. Size extension by Juhana " "Jauhiainen. Substantial additional work on the patch contributed by Michele " "Orrù and Dan Boswell. :issue:`8739`)" msgstr "" -#: ../../whatsnew/3.3.rst:1860 msgid "smtplib" msgstr "" -#: ../../whatsnew/3.3.rst:1862 msgid "" -"The :class:`~smtplib.SMTP`, :class:`~smtplib.SMTP_SSL`, " -"and :class:`~smtplib.LMTP` classes now accept a ``source_address`` keyword " -"argument to specify the ``(host, port)`` to use as the source address in the " -"bind call when creating the outgoing socket. (Contributed by Paulo Scardine " -"in :issue:`11281`.)" +"The :class:`~smtplib.SMTP`, :class:`~smtplib.SMTP_SSL`, and :class:`~smtplib." +"LMTP` classes now accept a ``source_address`` keyword argument to specify " +"the ``(host, port)`` to use as the source address in the bind call when " +"creating the outgoing socket. (Contributed by Paulo Scardine in :issue:" +"`11281`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1868 msgid "" ":class:`~smtplib.SMTP` now supports the context management protocol, " "allowing an ``SMTP`` instance to be used in a ``with`` statement. " "(Contributed by Giampaolo Rodolà in :issue:`11289`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1872 msgid "" -"The :class:`~smtplib.SMTP_SSL` constructor and " -"the :meth:`~smtplib.SMTP.starttls` method now accept an SSLContext parameter " -"to control parameters of the secure channel. (Contributed by Kasun Herath " -"in :issue:`8809`.)" +"The :class:`~smtplib.SMTP_SSL` constructor and the :meth:`~smtplib.SMTP." +"starttls` method now accept an SSLContext parameter to control parameters of " +"the secure channel. (Contributed by Kasun Herath in :issue:`8809`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1878 msgid "socket" msgstr "" -#: ../../whatsnew/3.3.rst:1880 msgid "" "The :class:`~socket.socket` class now exposes additional methods to process " "ancillary data when supported by the underlying platform:" msgstr "" -#: ../../whatsnew/3.3.rst:1883 msgid ":func:`~socket.socket.sendmsg`" msgstr "" -#: ../../whatsnew/3.3.rst:1884 msgid ":func:`~socket.socket.recvmsg`" msgstr "" -#: ../../whatsnew/3.3.rst:1885 msgid ":func:`~socket.socket.recvmsg_into`" msgstr "" -#: ../../whatsnew/3.3.rst:1887 msgid "" "(Contributed by David Watson in :issue:`6560`, based on an earlier patch by " "Heiko Wundram)" msgstr "" -#: ../../whatsnew/3.3.rst:1890 msgid "" "The :class:`~socket.socket` class now supports the PF_CAN protocol family " "(https://en.wikipedia.org/wiki/Socketcan), on Linux (https://lwn.net/" "Articles/253425)." msgstr "" -#: ../../whatsnew/3.3.rst:1894 msgid "" -"(Contributed by Matthias Fuchs, updated by Tiago Gonçalves " -"in :issue:`10141`.)" +"(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:" +"`10141`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1896 msgid "" "The :class:`~socket.socket` class now supports the PF_RDS protocol family " -"(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and `https://" -"oss.oracle.com/projects/rds `__)." +"(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and `https://oss." +"oracle.com/projects/rds `__)." msgstr "" -#: ../../whatsnew/3.3.rst:1900 msgid "" "The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol " "family on OS X. (Contributed by Michael Goderbauer in :issue:`13777`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1903 msgid "" "New function :func:`~socket.sethostname` allows the hostname to be set on " "Unix systems if the calling process has sufficient privileges. (Contributed " "by Ross Lagerwall in :issue:`10866`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1909 msgid "socketserver" msgstr "" -#: ../../whatsnew/3.3.rst:1911 msgid "" -":class:`~socketserver.BaseServer` now has an overridable " -"method :meth:`~socketserver.BaseServer.service_actions` that is called by " -"the :meth:`~socketserver.BaseServer.serve_forever` method in the service " -"loop. :class:`~socketserver.ForkingMixIn` now uses this to clean up zombie " -"child processes. (Contributed by Justin Warkentin in :issue:`11109`.)" +":class:`~socketserver.BaseServer` now has an overridable method :meth:" +"`~socketserver.BaseServer.service_actions` that is called by the :meth:" +"`~socketserver.BaseServer.serve_forever` method in the service loop. :class:" +"`~socketserver.ForkingMixIn` now uses this to clean up zombie child " +"processes. (Contributed by Justin Warkentin in :issue:`11109`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1919 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.3.rst:1921 msgid "" -"New :class:`sqlite3.Connection` " -"method :meth:`~sqlite3.Connection.set_trace_callback` can be used to capture " -"a trace of all sql commands processed by sqlite. (Contributed by Torsten " -"Landschoff in :issue:`11688`.)" +"New :class:`sqlite3.Connection` method :meth:`~sqlite3.Connection." +"set_trace_callback` can be used to capture a trace of all sql commands " +"processed by sqlite. (Contributed by Torsten Landschoff in :issue:`11688`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1928 msgid "ssl" msgstr "" -#: ../../whatsnew/3.3.rst:1930 msgid "The :mod:`ssl` module has two new random generation functions:" msgstr "" -#: ../../whatsnew/3.3.rst:1932 msgid "" ":func:`~ssl.RAND_bytes`: generate cryptographically strong pseudo-random " "bytes." msgstr "" -#: ../../whatsnew/3.3.rst:1934 -msgid ":func:`~ssl.RAND_pseudo_bytes`: generate pseudo-random bytes." +msgid ":func:`!RAND_pseudo_bytes`: generate pseudo-random bytes." msgstr "" -#: ../../whatsnew/3.3.rst:1936 msgid "(Contributed by Victor Stinner in :issue:`12049`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1938 msgid "" "The :mod:`ssl` module now exposes a finer-grained exception hierarchy in " "order to make it easier to inspect the various kinds of errors. (Contributed " "by Antoine Pitrou in :issue:`11183`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1942 msgid "" ":meth:`~ssl.SSLContext.load_cert_chain` now accepts a *password* argument to " -"be used if the private key is encrypted. (Contributed by Adam Simpkins " -"in :issue:`12803`.)" +"be used if the private key is encrypted. (Contributed by Adam Simpkins in :" +"issue:`12803`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1946 msgid "" "Diffie-Hellman key exchange, both regular and Elliptic Curve-based, is now " -"supported through the :meth:`~ssl.SSLContext.load_dh_params` " -"and :meth:`~ssl.SSLContext.set_ecdh_curve` methods. (Contributed by Antoine " -"Pitrou in :issue:`13626` and :issue:`13627`.)" +"supported through the :meth:`~ssl.SSLContext.load_dh_params` and :meth:`~ssl." +"SSLContext.set_ecdh_curve` methods. (Contributed by Antoine Pitrou in :issue:" +"`13626` and :issue:`13627`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1951 msgid "" "SSL sockets have a new :meth:`~ssl.SSLSocket.get_channel_binding` method " "allowing the implementation of certain authentication mechanisms such as " "SCRAM-SHA-1-PLUS. (Contributed by Jacek Konieczny in :issue:`12551`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1955 msgid "" "You can query the SSL compression algorithm used by an SSL socket, thanks to " -"its new :meth:`~ssl.SSLSocket.compression` method. The new " -"attribute :const:`~ssl.OP_NO_COMPRESSION` can be used to disable " -"compression. (Contributed by Antoine Pitrou in :issue:`13634`.)" +"its new :meth:`~ssl.SSLSocket.compression` method. The new attribute :const:" +"`~ssl.OP_NO_COMPRESSION` can be used to disable compression. (Contributed by " +"Antoine Pitrou in :issue:`13634`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1960 msgid "" "Support has been added for the Next Protocol Negotiation extension using " "the :meth:`ssl.SSLContext.set_npn_protocols` method. (Contributed by Colin " "Marc in :issue:`14204`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1964 msgid "" -"SSL errors can now be introspected more easily thanks " -"to :attr:`~ssl.SSLError.library` and :attr:`~ssl.SSLError.reason` " -"attributes. (Contributed by Antoine Pitrou in :issue:`14837`.)" +"SSL errors can now be introspected more easily thanks to :attr:`~ssl." +"SSLError.library` and :attr:`~ssl.SSLError.reason` attributes. (Contributed " +"by Antoine Pitrou in :issue:`14837`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1968 msgid "" "The :func:`~ssl.get_server_certificate` function now supports IPv6. " "(Contributed by Charles-François Natali in :issue:`11811`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1971 msgid "" "New attribute :const:`~ssl.OP_CIPHER_SERVER_PREFERENCE` allows setting SSLv3 " "server sockets to use the server's cipher ordering preference rather than " "the client's (:issue:`13635`)." msgstr "" -#: ../../whatsnew/3.3.rst:1977 msgid "stat" msgstr "" -#: ../../whatsnew/3.3.rst:1979 msgid "" -"The undocumented tarfile.filemode function has been moved " -"to :func:`stat.filemode`. It can be used to convert a file's mode to a " -"string of the form '-rwxrwxrwx'." +"The undocumented tarfile.filemode function has been moved to :func:`stat." +"filemode`. It can be used to convert a file's mode to a string of the form '-" +"rwxrwxrwx'." msgstr "" -#: ../../whatsnew/3.3.rst:1983 msgid "(Contributed by Giampaolo Rodolà in :issue:`14807`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1987 msgid "struct" msgstr "" -#: ../../whatsnew/3.3.rst:1989 msgid "" "The :mod:`struct` module now supports :c:type:`ssize_t` and :c:type:`size_t` " "via the new codes ``n`` and ``N``, respectively. (Contributed by Antoine " "Pitrou in :issue:`3163`.)" msgstr "" -#: ../../whatsnew/3.3.rst:1995 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.3.rst:1997 msgid "" "Command strings can now be bytes objects on posix platforms. (Contributed " "by Victor Stinner in :issue:`8513`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2000 msgid "" "A new constant :const:`~subprocess.DEVNULL` allows suppressing output in a " -"platform-independent fashion. (Contributed by Ross Lagerwall " -"in :issue:`5870`.)" +"platform-independent fashion. (Contributed by Ross Lagerwall in :issue:" +"`5870`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2006 msgid "sys" msgstr "" -#: ../../whatsnew/3.3.rst:2008 msgid "" "The :mod:`sys` module has a new :data:`~sys.thread_info` :term:`named tuple` " "holding information about the thread implementation (:issue:`11223`)." msgstr "" -#: ../../whatsnew/3.3.rst:2014 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.3.rst:2016 msgid "" ":mod:`tarfile` now supports ``lzma`` encoding via the :mod:`lzma` module. " "(Contributed by Lars Gustäbel in :issue:`5689`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2021 msgid "tempfile" msgstr "" -#: ../../whatsnew/3.3.rst:2023 msgid "" -":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`~tempfile.SpooledTemporaryFile.truncate` " -"method now accepts a ``size`` parameter. (Contributed by Ryan Kelly " -"in :issue:`9957`.)" +":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`!truncate` method now " +"accepts a ``size`` parameter. (Contributed by Ryan Kelly in :issue:`9957`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2029 msgid "textwrap" msgstr "" -#: ../../whatsnew/3.3.rst:2031 msgid "" "The :mod:`textwrap` module has a new :func:`~textwrap.indent` that makes it " "straightforward to add a common prefix to selected lines in a block of text " "(:issue:`13857`)." msgstr "" -#: ../../whatsnew/3.3.rst:2037 msgid "threading" msgstr "" -#: ../../whatsnew/3.3.rst:2039 msgid "" -":class:`threading.Condition`, :class:`threading.Semaphore`, :class:`threading.BoundedSemaphore`, :class:`threading.Event`, " -"and :class:`threading.Timer`, all of which used to be factory functions " -"returning a class instance, are now classes and may be subclassed. " -"(Contributed by Éric Araujo in :issue:`10968`.)" +":class:`threading.Condition`, :class:`threading.Semaphore`, :class:" +"`threading.BoundedSemaphore`, :class:`threading.Event`, and :class:" +"`threading.Timer`, all of which used to be factory functions returning a " +"class instance, are now classes and may be subclassed. (Contributed by Éric " +"Araujo in :issue:`10968`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2045 msgid "" "The :class:`threading.Thread` constructor now accepts a ``daemon`` keyword " "argument to override the default behavior of inheriting the ``daemon`` flag " "value from the parent thread (:issue:`6064`)." msgstr "" -#: ../../whatsnew/3.3.rst:2049 msgid "" "The formerly private function ``_thread.get_ident`` is now available as the " "public function :func:`threading.get_ident`. This eliminates several cases " @@ -3265,379 +2725,309 @@ msgid "" "public interface." msgstr "" -#: ../../whatsnew/3.3.rst:2057 msgid "time" msgstr "" -#: ../../whatsnew/3.3.rst:2059 msgid "The :pep:`418` added new functions to the :mod:`time` module:" msgstr "" -#: ../../whatsnew/3.3.rst:2061 msgid ":func:`~time.get_clock_info`: Get information on a clock." msgstr "" -#: ../../whatsnew/3.3.rst:2062 msgid "" ":func:`~time.monotonic`: Monotonic clock (cannot go backward), not affected " "by system clock updates." msgstr "" -#: ../../whatsnew/3.3.rst:2064 msgid "" ":func:`~time.perf_counter`: Performance counter with the highest available " "resolution to measure a short duration." msgstr "" -#: ../../whatsnew/3.3.rst:2066 msgid "" ":func:`~time.process_time`: Sum of the system and user CPU time of the " "current process." msgstr "" -#: ../../whatsnew/3.3.rst:2069 msgid "Other new functions:" msgstr "" -#: ../../whatsnew/3.3.rst:2071 msgid "" -":func:`~time.clock_getres`, :func:`~time.clock_gettime` " -"and :func:`~time.clock_settime` functions with :samp:`CLOCK_{xxx}` " -"constants. (Contributed by Victor Stinner in :issue:`10278`.)" +":func:`~time.clock_getres`, :func:`~time.clock_gettime` and :func:`~time." +"clock_settime` functions with :samp:`CLOCK_{xxx}` constants. (Contributed by " +"Victor Stinner in :issue:`10278`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2075 msgid "" -"To improve cross platform consistency, :func:`~time.sleep` now raises " -"a :exc:`ValueError` when passed a negative sleep value. Previously this was " -"an error on posix, but produced an infinite sleep on Windows." +"To improve cross platform consistency, :func:`~time.sleep` now raises a :exc:" +"`ValueError` when passed a negative sleep value. Previously this was an " +"error on posix, but produced an infinite sleep on Windows." msgstr "" -#: ../../whatsnew/3.3.rst:2081 msgid "types" msgstr "" -#: ../../whatsnew/3.3.rst:2083 msgid "" "Add a new :class:`types.MappingProxyType` class: Read-only proxy of a " "mapping. (:issue:`14386`)" msgstr "" -#: ../../whatsnew/3.3.rst:2087 msgid "" "The new functions :func:`types.new_class` and :func:`types.prepare_class` " -"provide support for :pep:`3115` compliant dynamic type creation. " -"(:issue:`14588`)" +"provide support for :pep:`3115` compliant dynamic type creation. (:issue:" +"`14588`)" msgstr "" -#: ../../whatsnew/3.3.rst:2092 msgid "unittest" msgstr "" -#: ../../whatsnew/3.3.rst:2094 msgid "" ":meth:`.assertRaises`, :meth:`.assertRaisesRegex`, :meth:`.assertWarns`, " "and :meth:`.assertWarnsRegex` now accept a keyword argument *msg* when used " -"as context managers. (Contributed by Ezio Melotti and Winston Ewert " -"in :issue:`10775`.)" +"as context managers. (Contributed by Ezio Melotti and Winston Ewert in :" +"issue:`10775`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2099 msgid "" ":meth:`unittest.TestCase.run` now returns the :class:`~unittest.TestResult` " "object." msgstr "" -#: ../../whatsnew/3.3.rst:2104 msgid "urllib" msgstr "" -#: ../../whatsnew/3.3.rst:2106 msgid "" "The :class:`~urllib.request.Request` class, now accepts a *method* argument " "used by :meth:`~urllib.request.Request.get_method` to determine what HTTP " "method should be used. For example, this will send a ``'HEAD'`` request::" msgstr "" -#: ../../whatsnew/3.3.rst:2110 msgid ">>> urlopen(Request('https://www.python.org', method='HEAD'))" msgstr "" -#: ../../whatsnew/3.3.rst:2112 msgid "(:issue:`1673007`)" msgstr "" -#: ../../whatsnew/3.3.rst:2116 msgid "webbrowser" msgstr "" -#: ../../whatsnew/3.3.rst:2118 msgid "" "The :mod:`webbrowser` module supports more \"browsers\": Google Chrome " -"(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` " -"or :program:`chromium-browser` depending on the version and operating " -"system), and the generic launchers :program:`xdg-open`, from the " -"FreeDesktop.org project, and :program:`gvfs-open`, which is the default URI " -"handler for GNOME 3. (The former contributed by Arnaud Calmettes " -"in :issue:`13620`, the latter by Matthias Klose in :issue:`14493`.)" +"(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` or :" +"program:`chromium-browser` depending on the version and operating system), " +"and the generic launchers :program:`xdg-open`, from the FreeDesktop.org " +"project, and :program:`gvfs-open`, which is the default URI handler for " +"GNOME 3. (The former contributed by Arnaud Calmettes in :issue:`13620`, the " +"latter by Matthias Klose in :issue:`14493`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2128 msgid "xml.etree.ElementTree" msgstr "" -#: ../../whatsnew/3.3.rst:2130 msgid "" "The :mod:`xml.etree.ElementTree` module now imports its C accelerator by " -"default; there is no longer a need to explicitly " -"import :mod:`xml.etree.cElementTree` (this module stays for backwards " -"compatibility, but is now deprecated). In addition, the ``iter`` family of " -"methods of :class:`~xml.etree.ElementTree.Element` has been optimized " -"(rewritten in C). The module's documentation has also been greatly improved " -"with added examples and a more detailed reference." +"default; there is no longer a need to explicitly import :mod:`!xml.etree." +"cElementTree` (this module stays for backwards compatibility, but is now " +"deprecated). In addition, the ``iter`` family of methods of :class:`~xml." +"etree.ElementTree.Element` has been optimized (rewritten in C). The module's " +"documentation has also been greatly improved with added examples and a more " +"detailed reference." msgstr "" -#: ../../whatsnew/3.3.rst:2140 msgid "zlib" msgstr "" -#: ../../whatsnew/3.3.rst:2142 msgid "" "New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish " "between a properly formed compressed stream and an incomplete or truncated " "one. (Contributed by Nadeem Vawda in :issue:`12646`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2146 msgid "" "New attribute :const:`zlib.ZLIB_RUNTIME_VERSION` reports the version string " "of the underlying ``zlib`` library that is loaded at runtime. (Contributed " "by Torsten Landschoff in :issue:`12306`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2152 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.3.rst:2154 msgid "Major performance enhancements have been added:" msgstr "" -#: ../../whatsnew/3.3.rst:2156 msgid "" "Thanks to :pep:`393`, some operations on Unicode strings have been optimized:" msgstr "" -#: ../../whatsnew/3.3.rst:2158 msgid "the memory footprint is divided by 2 to 4 depending on the text" msgstr "" -#: ../../whatsnew/3.3.rst:2159 msgid "" "encode an ASCII string to UTF-8 doesn't need to encode characters anymore, " "the UTF-8 representation is shared with the ASCII representation" msgstr "" -#: ../../whatsnew/3.3.rst:2161 msgid "the UTF-8 encoder has been optimized" msgstr "" -#: ../../whatsnew/3.3.rst:2162 msgid "" "repeating a single ASCII letter and getting a substring of an ASCII string " "is 4 times faster" msgstr "" -#: ../../whatsnew/3.3.rst:2165 msgid "UTF-8 is now 2x to 4x faster. UTF-16 encoding is now up to 10x faster." msgstr "" -#: ../../whatsnew/3.3.rst:2167 msgid "" -"(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` " -"and :issue:`15026`.)" +"(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` and :issue:" +"`15026`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2172 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.3.rst:2174 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: ../../whatsnew/3.3.rst:2176 msgid "New :pep:`3118` related function:" msgstr "" -#: ../../whatsnew/3.3.rst:2178 msgid ":c:func:`PyMemoryView_FromMemory`" msgstr "" -#: ../../whatsnew/3.3.rst:2180 msgid ":pep:`393` added new Unicode types, macros and functions:" msgstr "" -#: ../../whatsnew/3.3.rst:2182 msgid "High-level API:" msgstr "" -#: ../../whatsnew/3.3.rst:2184 msgid ":c:func:`PyUnicode_CopyCharacters`" msgstr "" -#: ../../whatsnew/3.3.rst:2185 msgid ":c:func:`PyUnicode_FindChar`" msgstr "" -#: ../../whatsnew/3.3.rst:2186 msgid ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" msgstr "" -#: ../../whatsnew/3.3.rst:2187 msgid ":c:func:`PyUnicode_New`" msgstr "" -#: ../../whatsnew/3.3.rst:2188 msgid ":c:func:`PyUnicode_Substring`" msgstr "" -#: ../../whatsnew/3.3.rst:2189 msgid ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" msgstr "" -#: ../../whatsnew/3.3.rst:2191 msgid "Low-level API:" msgstr "" -#: ../../whatsnew/3.3.rst:2193 msgid ":c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4` types" msgstr "" -#: ../../whatsnew/3.3.rst:2194 msgid ":c:type:`PyASCIIObject` and :c:type:`PyCompactUnicodeObject` structures" msgstr "" -#: ../../whatsnew/3.3.rst:2195 msgid ":c:macro:`PyUnicode_READY`" msgstr "" -#: ../../whatsnew/3.3.rst:2196 msgid ":c:func:`PyUnicode_FromKindAndData`" msgstr "" -#: ../../whatsnew/3.3.rst:2197 msgid ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" msgstr "" -#: ../../whatsnew/3.3.rst:2198 -msgid ":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" +msgid "" +":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" +"`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" msgstr "" -#: ../../whatsnew/3.3.rst:2200 msgid "" -":c:macro:`PyUnicode_KIND` with :c:enum:`PyUnicode_Kind` enum: :c:data:`!" -"PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" +":c:macro:`PyUnicode_KIND` with :c:enum:`!PyUnicode_Kind` enum: :c:data:`!" +"PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" +"`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" msgstr "" -#: ../../whatsnew/3.3.rst:2203 -msgid ":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:`PyUnicode_WRITE`" +msgid "" +":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" +"`PyUnicode_WRITE`" msgstr "" -#: ../../whatsnew/3.3.rst:2204 msgid ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" msgstr "" -#: ../../whatsnew/3.3.rst:2206 msgid "" ":c:macro:`PyArg_ParseTuple` now accepts a :class:`bytearray` for the ``c`` " "format (:issue:`12380`)." msgstr "" -#: ../../whatsnew/3.3.rst:2212 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.3.rst:2215 msgid "Unsupported Operating Systems" msgstr "" -#: ../../whatsnew/3.3.rst:2217 msgid "OS/2 and VMS are no longer supported due to the lack of a maintainer." msgstr "" -#: ../../whatsnew/3.3.rst:2219 msgid "" "Windows 2000 and Windows platforms which set ``COMSPEC`` to ``command.com`` " "are no longer supported due to maintenance burden." msgstr "" -#: ../../whatsnew/3.3.rst:2222 msgid "OSF support, which was deprecated in 3.2, has been completely removed." msgstr "" -#: ../../whatsnew/3.3.rst:2226 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../../whatsnew/3.3.rst:2228 msgid "" "Passing a non-empty string to ``object.__format__()`` is deprecated, and " "will produce a :exc:`TypeError` in Python 3.4 (:issue:`9856`)." msgstr "" -#: ../../whatsnew/3.3.rst:2230 msgid "" -"The ``unicode_internal`` codec has been deprecated because of " -"the :pep:`393`, use UTF-8, UTF-16 (``utf-16-le`` or ``utf-16-be``), or " -"UTF-32 (``utf-32-le`` or ``utf-32-be``)" +"The ``unicode_internal`` codec has been deprecated because of the :pep:" +"`393`, use UTF-8, UTF-16 (``utf-16-le`` or ``utf-16-be``), or UTF-32 " +"(``utf-32-le`` or ``utf-32-be``)" msgstr "" -#: ../../whatsnew/3.3.rst:2233 msgid "" -":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: " -"use :meth:`ftplib.FTP.mlsd`" +":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP." +"mlsd`" msgstr "" -#: ../../whatsnew/3.3.rst:2235 msgid "" -":func:`platform.popen`: use the :mod:`subprocess` module. Check especially " +":func:`!platform.popen`: use the :mod:`subprocess` module. Check especially " "the :ref:`subprocess-replacements` section (:issue:`11377`)." msgstr "" -#: ../../whatsnew/3.3.rst:2237 msgid "" ":issue:`13374`: The Windows bytes API has been deprecated in the :mod:`os` " "module. Use Unicode filenames, instead of bytes filenames, to not depend on " "the ANSI code page anymore and to support any filename." msgstr "" -#: ../../whatsnew/3.3.rst:2240 msgid "" -":issue:`13988`: The :mod:`xml.etree.cElementTree` module is deprecated. The " -"accelerator is used automatically whenever available." +":issue:`13988`: The :mod:`!xml.etree.cElementTree` module is deprecated. " +"The accelerator is used automatically whenever available." msgstr "" -#: ../../whatsnew/3.3.rst:2242 msgid "" -"The behaviour of :func:`time.clock` depends on the platform: use the " -"new :func:`time.perf_counter` or :func:`time.process_time` function instead, " +"The behaviour of :func:`!time.clock` depends on the platform: use the new :" +"func:`time.perf_counter` or :func:`time.process_time` function instead, " "depending on your requirements, to have a well defined behaviour." msgstr "" -#: ../../whatsnew/3.3.rst:2245 -msgid "The :func:`os.stat_float_times` function is deprecated." +msgid "The :func:`!os.stat_float_times` function is deprecated." msgstr "" -#: ../../whatsnew/3.3.rst:2246 msgid ":mod:`abc` module:" msgstr "" -#: ../../whatsnew/3.3.rst:2255 msgid ":mod:`importlib` package:" msgstr "" -#: ../../whatsnew/3.3.rst:2257 msgid "" ":meth:`importlib.abc.SourceLoader.path_mtime` is now deprecated in favour " "of :meth:`importlib.abc.SourceLoader.path_stats` as bytecode files now store " @@ -3645,206 +3035,166 @@ msgid "" "compiled from." msgstr "" -#: ../../whatsnew/3.3.rst:2267 msgid "Deprecated functions and types of the C API" msgstr "" -#: ../../whatsnew/3.3.rst:2269 msgid "" "The :c:type:`Py_UNICODE` has been deprecated by :pep:`393` and will be " "removed in Python 4. All functions using this type are deprecated:" msgstr "" -#: ../../whatsnew/3.3.rst:2272 msgid "" -"Unicode functions and methods using :c:type:`Py_UNICODE` " -"and :c:expr:`Py_UNICODE*` types:" +"Unicode functions and methods using :c:type:`Py_UNICODE` and :c:expr:" +"`Py_UNICODE*` types:" msgstr "" -#: ../../whatsnew/3.3.rst:2275 msgid "" -":c:macro:`!PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` " -"or :c:func:`PyUnicode_FromKindAndData`" +":c:macro:`!PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :" +"c:func:`PyUnicode_FromKindAndData`" msgstr "" -#: ../../whatsnew/3.3.rst:2277 msgid "" ":c:macro:`!PyUnicode_AS_UNICODE`, :c:func:`!PyUnicode_AsUnicode`, :c:func:`!" "PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" msgstr "" -#: ../../whatsnew/3.3.rst:2279 msgid "" -":c:macro:`!PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` " -"with :c:macro:`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" +":c:macro:`!PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" +"`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" msgstr "" -#: ../../whatsnew/3.3.rst:2281 msgid "" -":c:macro:`!PyUnicode_GET_SIZE`, :c:func:`!PyUnicode_GetSize`: " -"use :c:macro:`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" +":c:macro:`!PyUnicode_GET_SIZE`, :c:func:`!PyUnicode_GetSize`: use :c:macro:" +"`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" msgstr "" -#: ../../whatsnew/3.3.rst:2283 msgid "" ":c:macro:`!PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " "PyUnicode_KIND(str)`` (only work on ready strings)" msgstr "" -#: ../../whatsnew/3.3.rst:2286 msgid "" -":c:func:`!PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` " -"or :c:func:`PyUnicode_AsWideCharString`" +":c:func:`!PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" +"func:`PyUnicode_AsWideCharString`" msgstr "" -#: ../../whatsnew/3.3.rst:2288 msgid ":c:func:`!PyUnicode_GetMax`" msgstr "" -#: ../../whatsnew/3.3.rst:2291 msgid "Functions and macros manipulating Py_UNICODE* strings:" msgstr "" -#: ../../whatsnew/3.3.rst:2293 msgid "" -":c:macro:`!Py_UNICODE_strlen()`: use :c:func:`PyUnicode_GetLength` " -"or :c:macro:`PyUnicode_GET_LENGTH`" +":c:macro:`!Py_UNICODE_strlen()`: use :c:func:`PyUnicode_GetLength` or :c:" +"macro:`PyUnicode_GET_LENGTH`" msgstr "" -#: ../../whatsnew/3.3.rst:2295 msgid "" -":c:macro:`!Py_UNICODE_strcat()`: use :c:func:`PyUnicode_CopyCharacters` " -"or :c:func:`PyUnicode_FromFormat`" +":c:macro:`!Py_UNICODE_strcat()`: use :c:func:`PyUnicode_CopyCharacters` or :" +"c:func:`PyUnicode_FromFormat`" msgstr "" -#: ../../whatsnew/3.3.rst:2297 msgid "" -":c:macro:`!Py_UNICODE_strcpy()`, :c:macro:`!" -"Py_UNICODE_strncpy()`, :c:macro:`!Py_UNICODE_COPY()`: " -"use :c:func:`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`" +":c:macro:`!Py_UNICODE_strcpy()`, :c:macro:`!Py_UNICODE_strncpy()`, :c:macro:" +"`!Py_UNICODE_COPY()`: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" +"`PyUnicode_Substring`" msgstr "" -#: ../../whatsnew/3.3.rst:2300 msgid ":c:macro:`!Py_UNICODE_strcmp()`: use :c:func:`PyUnicode_Compare`" msgstr "" -#: ../../whatsnew/3.3.rst:2301 msgid ":c:macro:`!Py_UNICODE_strncmp()`: use :c:func:`PyUnicode_Tailmatch`" msgstr "" -#: ../../whatsnew/3.3.rst:2302 msgid "" -":c:macro:`!Py_UNICODE_strchr()`, :c:macro:`!Py_UNICODE_strrchr()`: " -"use :c:func:`PyUnicode_FindChar`" +":c:macro:`!Py_UNICODE_strchr()`, :c:macro:`!Py_UNICODE_strrchr()`: use :c:" +"func:`PyUnicode_FindChar`" msgstr "" -#: ../../whatsnew/3.3.rst:2304 msgid ":c:macro:`!Py_UNICODE_FILL()`: use :c:func:`PyUnicode_Fill`" msgstr "" -#: ../../whatsnew/3.3.rst:2305 msgid ":c:macro:`!Py_UNICODE_MATCH`" msgstr "" -#: ../../whatsnew/3.3.rst:2307 msgid "Encoders:" msgstr "" -#: ../../whatsnew/3.3.rst:2309 msgid ":c:func:`!PyUnicode_Encode`: use :c:func:`!PyUnicode_AsEncodedObject`" msgstr "" -#: ../../whatsnew/3.3.rst:2310 msgid ":c:func:`!PyUnicode_EncodeUTF7`" msgstr "" -#: ../../whatsnew/3.3.rst:2311 msgid "" -":c:func:`!PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` " -"or :c:func:`PyUnicode_AsUTF8String`" +":c:func:`!PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" +"`PyUnicode_AsUTF8String`" msgstr "" -#: ../../whatsnew/3.3.rst:2313 msgid ":c:func:`!PyUnicode_EncodeUTF32`" msgstr "" -#: ../../whatsnew/3.3.rst:2314 msgid ":c:func:`!PyUnicode_EncodeUTF16`" msgstr "" -#: ../../whatsnew/3.3.rst:2315 msgid "" -":c:func:`!PyUnicode_EncodeUnicodeEscape` " -"use :c:func:`PyUnicode_AsUnicodeEscapeString`" +":c:func:`!PyUnicode_EncodeUnicodeEscape` use :c:func:" +"`PyUnicode_AsUnicodeEscapeString`" msgstr "" -#: ../../whatsnew/3.3.rst:2317 msgid "" -":c:func:`!PyUnicode_EncodeRawUnicodeEscape` " -"use :c:func:`PyUnicode_AsRawUnicodeEscapeString`" +":c:func:`!PyUnicode_EncodeRawUnicodeEscape` use :c:func:" +"`PyUnicode_AsRawUnicodeEscapeString`" msgstr "" -#: ../../whatsnew/3.3.rst:2319 msgid "" ":c:func:`!PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" msgstr "" -#: ../../whatsnew/3.3.rst:2320 msgid ":c:func:`!PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" msgstr "" -#: ../../whatsnew/3.3.rst:2321 msgid ":c:func:`!PyUnicode_EncodeCharmap`" msgstr "" -#: ../../whatsnew/3.3.rst:2322 msgid ":c:func:`!PyUnicode_TranslateCharmap`" msgstr "" -#: ../../whatsnew/3.3.rst:2323 msgid "" -":c:func:`!PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` " -"or :c:func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" +":c:func:`!PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" +"func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" msgstr "" -#: ../../whatsnew/3.3.rst:2325 msgid "" ":c:func:`!PyUnicode_EncodeDecimal`, :c:func:`!" "PyUnicode_TransformDecimalToASCII`" msgstr "" -#: ../../whatsnew/3.3.rst:2330 msgid "Deprecated features" msgstr "" -#: ../../whatsnew/3.3.rst:2332 msgid "" "The :mod:`array` module's ``'u'`` format code is now deprecated and will be " "removed in Python 4 together with the rest of the (:c:type:`Py_UNICODE`) API." msgstr "" -#: ../../whatsnew/3.3.rst:2337 msgid "Porting to Python 3.3" msgstr "" -#: ../../whatsnew/3.3.rst:2339 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.3.rst:2345 msgid "Porting Python code" msgstr "" -#: ../../whatsnew/3.3.rst:2347 msgid "" "Hash randomization is enabled by default. Set the :envvar:`PYTHONHASHSEED` " -"environment variable to ``0`` to disable hash randomization. See also " -"the :meth:`object.__hash__` method." +"environment variable to ``0`` to disable hash randomization. See also the :" +"meth:`object.__hash__` method." msgstr "" -#: ../../whatsnew/3.3.rst:2351 msgid "" ":issue:`12326`: On Linux, sys.platform doesn't contain the major version " "anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending " @@ -3853,24 +3203,21 @@ msgid "" "if you don't need to support older Python versions." msgstr "" -#: ../../whatsnew/3.3.rst:2357 msgid "" -":issue:`13847`, :issue:`14180`: :mod:`time` " -"and :mod:`datetime`: :exc:`OverflowError` is now raised instead " -"of :exc:`ValueError` if a timestamp is out of range. :exc:`OSError` is now " -"raised if C functions :c:func:`gmtime` or :c:func:`localtime` failed." +":issue:`13847`, :issue:`14180`: :mod:`time` and :mod:`datetime`: :exc:" +"`OverflowError` is now raised instead of :exc:`ValueError` if a timestamp is " +"out of range. :exc:`OSError` is now raised if C functions :c:func:`gmtime` " +"or :c:func:`localtime` failed." msgstr "" -#: ../../whatsnew/3.3.rst:2362 msgid "" "The default finders used by import now utilize a cache of what is contained " "within a specific directory. If you create a Python source file or " -"sourceless bytecode file, make sure to " -"call :func:`importlib.invalidate_caches` to clear out the cache for the " -"finders to notice the new file." +"sourceless bytecode file, make sure to call :func:`importlib." +"invalidate_caches` to clear out the cache for the finders to notice the new " +"file." msgstr "" -#: ../../whatsnew/3.3.rst:2367 msgid "" ":exc:`ImportError` now uses the full name of the module that was attempted " "to be imported. Doctests that check ImportErrors' message will need to be " @@ -3878,43 +3225,37 @@ msgid "" "name." msgstr "" -#: ../../whatsnew/3.3.rst:2372 msgid "" "The *index* argument to :func:`__import__` now defaults to 0 instead of -1 " "and no longer support negative values. It was an oversight when :pep:`328` " "was implemented that the default value remained -1. If you need to continue " "to perform a relative import followed by an absolute import, then perform " "the relative import using an index of 1, followed by another import using an " -"index of 0. It is preferred, though, that you " -"use :func:`importlib.import_module` rather than call :func:`__import__` " -"directly." +"index of 0. It is preferred, though, that you use :func:`importlib." +"import_module` rather than call :func:`__import__` directly." msgstr "" -#: ../../whatsnew/3.3.rst:2380 msgid "" ":func:`__import__` no longer allows one to use an index value other than 0 " "for top-level modules. E.g. ``__import__('sys', level=1)`` is now an error." msgstr "" -#: ../../whatsnew/3.3.rst:2383 msgid "" "Because :data:`sys.meta_path` and :data:`sys.path_hooks` now have finders on " "them by default, you will most likely want to use :meth:`list.insert` " "instead of :meth:`list.append` to add to those lists." msgstr "" -#: ../../whatsnew/3.3.rst:2387 msgid "" "Because ``None`` is now inserted into :data:`sys.path_importer_cache`, if " "you are clearing out entries in the dictionary of paths that do not have a " -"finder, you will need to remove keys paired with values of ``None`` " -"**and** :class:`!imp.NullImporter` to be backwards-compatible. This will " -"lead to extra overhead on older versions of Python that re-insert ``None`` " -"into :data:`sys.path_importer_cache` where it represents the use of implicit " +"finder, you will need to remove keys paired with values of ``None`` **and** :" +"class:`!imp.NullImporter` to be backwards-compatible. This will lead to " +"extra overhead on older versions of Python that re-insert ``None`` into :" +"data:`sys.path_importer_cache` where it represents the use of implicit " "finders, but semantically it should not change anything." msgstr "" -#: ../../whatsnew/3.3.rst:2395 msgid "" ":class:`!importlib.abc.Finder` no longer specifies a ``find_module()`` " "abstract method that must be implemented. If you were relying on subclasses " @@ -3923,21 +3264,19 @@ msgid "" "in the case of working with :term:`path entry finders `." msgstr "" -#: ../../whatsnew/3.3.rst:2401 msgid "" ":mod:`pkgutil` has been converted to use :mod:`importlib` internally. This " "eliminates many edge cases where the old behaviour of the :pep:`302` import " "emulation failed to match the behaviour of the real import system. The " -"import emulation itself is still present, but is now deprecated. " -"The :func:`pkgutil.iter_importers` and :func:`pkgutil.walk_packages` " -"functions special case the standard import hooks so they are still supported " -"even though they do not provide the non-standard ``iter_modules()`` method." +"import emulation itself is still present, but is now deprecated. The :func:" +"`pkgutil.iter_importers` and :func:`pkgutil.walk_packages` functions special " +"case the standard import hooks so they are still supported even though they " +"do not provide the non-standard ``iter_modules()`` method." msgstr "" -#: ../../whatsnew/3.3.rst:2409 msgid "" -"A longstanding RFC-compliance bug (:issue:`1079`) in the parsing done " -"by :func:`email.header.decode_header` has been fixed. Code that uses the " +"A longstanding RFC-compliance bug (:issue:`1079`) in the parsing done by :" +"func:`email.header.decode_header` has been fixed. Code that uses the " "standard idiom to convert encoded headers into unicode " "(``str(make_header(decode_header(h))``) will see no change, but code that " "looks at the individual tuples returned by decode_header will see that " @@ -3948,7 +3287,6 @@ msgid "" "already present in the input strings." msgstr "" -#: ../../whatsnew/3.3.rst:2420 msgid "" ":func:`email.utils.formataddr` now does the correct content transfer " "encoding when passed non-``ASCII`` display names. Any code that depended on " @@ -3956,65 +3294,55 @@ msgid "" "formatted output string will need to be changed (:issue:`1690608`)." msgstr "" -#: ../../whatsnew/3.3.rst:2425 msgid "" ":meth:`poplib.POP3.quit` may now raise protocol errors like all other " -"``poplib`` methods. Code that assumes ``quit`` does not " -"raise :exc:`poplib.error_proto` errors may need to be changed if errors on " -"``quit`` are encountered by a particular application (:issue:`11291`)." +"``poplib`` methods. Code that assumes ``quit`` does not raise :exc:`poplib." +"error_proto` errors may need to be changed if errors on ``quit`` are " +"encountered by a particular application (:issue:`11291`)." msgstr "" -#: ../../whatsnew/3.3.rst:2430 msgid "" "The ``strict`` argument to :class:`email.parser.Parser`, deprecated since " "Python 2.4, has finally been removed." msgstr "" -#: ../../whatsnew/3.3.rst:2433 msgid "" "The deprecated method ``unittest.TestCase.assertSameElements`` has been " "removed." msgstr "" -#: ../../whatsnew/3.3.rst:2436 msgid "The deprecated variable ``time.accept2dyear`` has been removed." msgstr "" -#: ../../whatsnew/3.3.rst:2438 msgid "" -"The deprecated ``Context._clamp`` attribute has been removed from " -"the :mod:`decimal` module. It was previously replaced by the public " -"attribute :attr:`~decimal.Context.clamp`. (See :issue:`8540`.)" +"The deprecated ``Context._clamp`` attribute has been removed from the :mod:" +"`decimal` module. It was previously replaced by the public attribute :attr:" +"`~decimal.Context.clamp`. (See :issue:`8540`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2442 msgid "" "The undocumented internal helper class ``SSLFakeFile`` has been removed " "from :mod:`smtplib`, since its functionality has long been provided directly " "by :meth:`socket.socket.makefile`." msgstr "" -#: ../../whatsnew/3.3.rst:2446 msgid "" "Passing a negative value to :func:`time.sleep` on Windows now raises an " "error instead of sleeping forever. It has always raised an error on posix." msgstr "" -#: ../../whatsnew/3.3.rst:2449 msgid "" "The ``ast.__version__`` constant has been removed. If you need to make " "decisions affected by the AST version, use :data:`sys.version_info` to make " "the decision." msgstr "" -#: ../../whatsnew/3.3.rst:2453 msgid "" "Code that used to work around the fact that the :mod:`threading` module used " "factory functions by subclassing the private classes will need to change to " "subclass the now-public classes." msgstr "" -#: ../../whatsnew/3.3.rst:2457 msgid "" "The undocumented debugging machinery in the threading module has been " "removed, simplifying the code. This should have no effect on production " @@ -4022,58 +3350,49 @@ msgid "" "interacting with it (:issue:`13550`)." msgstr "" -#: ../../whatsnew/3.3.rst:2464 msgid "Porting C code" msgstr "" -#: ../../whatsnew/3.3.rst:2466 msgid "" "In the course of changes to the buffer API the undocumented :c:member:`!" "smalltable` member of the :c:type:`Py_buffer` structure has been removed and " -"the layout of the :c:type:`PyMemoryViewObject` has changed." +"the layout of the :c:type:`!PyMemoryViewObject` has changed." msgstr "" -#: ../../whatsnew/3.3.rst:2471 msgid "" "All extensions relying on the relevant parts in ``memoryobject.h`` or " "``object.h`` must be rebuilt." msgstr "" -#: ../../whatsnew/3.3.rst:2474 msgid "" "Due to :ref:`PEP 393 `, the :c:type:`Py_UNICODE` type and all " "functions using this type are deprecated (but will stay available for at " "least five years). If you were using low-level Unicode APIs to construct " "and access unicode objects and you want to benefit of the memory footprint " -"reduction provided by :pep:`393`, you have to convert your code to the " -"new :doc:`Unicode API <../c-api/unicode>`." +"reduction provided by :pep:`393`, you have to convert your code to the new :" +"doc:`Unicode API <../c-api/unicode>`." msgstr "" -#: ../../whatsnew/3.3.rst:2481 msgid "" -"However, if you only have been using high-level functions such " -"as :c:func:`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` " -"or :c:func:`PyUnicode_FromFormat()`, your code will automatically take " -"advantage of the new unicode representations." +"However, if you only have been using high-level functions such as :c:func:" +"`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` or :c:func:" +"`PyUnicode_FromFormat()`, your code will automatically take advantage of the " +"new unicode representations." msgstr "" -#: ../../whatsnew/3.3.rst:2486 msgid ":c:func:`PyImport_GetMagicNumber` now returns ``-1`` upon failure." msgstr "" -#: ../../whatsnew/3.3.rst:2488 msgid "" "As a negative value for the *level* argument to :func:`__import__` is no " "longer valid, the same now holds for :c:func:`PyImport_ImportModuleLevel`. " -"This also means that the value of *level* used " -"by :c:func:`PyImport_ImportModuleEx` is now ``0`` instead of ``-1``." +"This also means that the value of *level* used by :c:func:" +"`PyImport_ImportModuleEx` is now ``0`` instead of ``-1``." msgstr "" -#: ../../whatsnew/3.3.rst:2495 msgid "Building C extensions" msgstr "" -#: ../../whatsnew/3.3.rst:2497 msgid "" "The range of possible file names for C extensions has been narrowed. Very " "rarely used spellings have been suppressed: under POSIX, files named " @@ -4083,40 +3402,32 @@ msgid "" "remove the ``module`` string from the file names)." msgstr "" -#: ../../whatsnew/3.3.rst:2505 msgid "(implemented in :issue:`14040`.)" msgstr "" -#: ../../whatsnew/3.3.rst:2509 msgid "Command Line Switch Changes" msgstr "" -#: ../../whatsnew/3.3.rst:2511 msgid "" "The -Q command-line flag and related artifacts have been removed. Code " "checking sys.flags.division_warning will need updating." msgstr "" -#: ../../whatsnew/3.3.rst:2514 msgid "(:issue:`10998`, contributed by Éric Araujo.)" msgstr "" -#: ../../whatsnew/3.3.rst:2516 msgid "" "When :program:`python` is started with :option:`-S`, ``import site`` will no " "longer add site-specific paths to the module search paths. In previous " "versions, it did." msgstr "" -#: ../../whatsnew/3.3.rst:2520 msgid "" "(:issue:`11591`, contributed by Carl Meyer with editions by Éric Araujo.)" msgstr "" -#: ../../whatsnew/3.3.rst:396 msgid "yield" msgstr "" -#: ../../whatsnew/3.3.rst:396 msgid "yield from (in What's New)" msgstr "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index 3f46c5e..ae333a7 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,279 +18,227 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.4.rst:3 msgid "What's New In Python 3.4" msgstr "" -#: ../../whatsnew/3.4.rst:0 msgid "Author" msgstr "" -#: ../../whatsnew/3.4.rst:5 msgid "R. David Murray (Editor)" msgstr "" -#: ../../whatsnew/3.4.rst:63 msgid "" "This article explains the new features in Python 3.4, compared to 3.3. " "Python 3.4 was released on March 16, 2014. For full details, see the " "`changelog `_." msgstr "" -#: ../../whatsnew/3.4.rst:70 msgid ":pep:`429` -- Python 3.4 Release Schedule" msgstr "" -#: ../../whatsnew/3.4.rst:75 msgid "Summary -- Release Highlights" msgstr "" -#: ../../whatsnew/3.4.rst:80 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.4.rst:82 msgid "No new syntax features were added in Python 3.4." msgstr "" -#: ../../whatsnew/3.4.rst:84 msgid "Other new features:" msgstr "" -#: ../../whatsnew/3.4.rst:86 msgid ":ref:`pip should always be available ` (:pep:`453`)." msgstr "" -#: ../../whatsnew/3.4.rst:87 msgid "" ":ref:`Newly created file descriptors are non-inheritable ` " "(:pep:`446`)." msgstr "" -#: ../../whatsnew/3.4.rst:89 msgid "" -"command line option for :ref:`isolated mode ` " -"(:issue:`16499`)." +"command line option for :ref:`isolated mode ` (:" +"issue:`16499`)." msgstr "" -#: ../../whatsnew/3.4.rst:91 msgid "" ":ref:`improvements in the handling of codecs ` " "that are not text encodings (multiple issues)." msgstr "" -#: ../../whatsnew/3.4.rst:93 msgid "" -":ref:`A ModuleSpec Type ` for the Import System " -"(:pep:`451`). (Affects importer authors.)" +":ref:`A ModuleSpec Type ` for the Import System (:pep:" +"`451`). (Affects importer authors.)" msgstr "" -#: ../../whatsnew/3.4.rst:95 msgid "" "The :mod:`marshal` format has been made :ref:`more compact and efficient " "` (:issue:`16475`)." msgstr "" -#: ../../whatsnew/3.4.rst:98 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.4.rst:100 msgid "" ":mod:`asyncio`: :ref:`New provisional API for asynchronous IO ` (:pep:`3156`)." msgstr "" -#: ../../whatsnew/3.4.rst:102 msgid "" ":mod:`ensurepip`: :ref:`Bootstrapping the pip installer ` (:pep:`453`)." msgstr "" -#: ../../whatsnew/3.4.rst:104 msgid "" -":mod:`enum`: :ref:`Support for enumeration types ` " -"(:pep:`435`)." +":mod:`enum`: :ref:`Support for enumeration types ` (:pep:" +"`435`)." msgstr "" -#: ../../whatsnew/3.4.rst:106 msgid "" -":mod:`pathlib`: :ref:`Object-oriented filesystem paths ` " -"(:pep:`428`)." +":mod:`pathlib`: :ref:`Object-oriented filesystem paths ` (:" +"pep:`428`)." msgstr "" -#: ../../whatsnew/3.4.rst:108 msgid "" ":mod:`selectors`: :ref:`High-level and efficient I/O multiplexing `, built upon the :mod:`select` module primitives (part " -"of :pep:`3156`)." +"selectors>`, built upon the :mod:`select` module primitives (part of :pep:" +"`3156`)." msgstr "" -#: ../../whatsnew/3.4.rst:111 msgid "" ":mod:`statistics`: A basic :ref:`numerically stable statistics library " "` (:pep:`450`)." msgstr "" -#: ../../whatsnew/3.4.rst:113 msgid "" ":mod:`tracemalloc`: :ref:`Trace Python memory allocations ` (:pep:`454`)." msgstr "" -#: ../../whatsnew/3.4.rst:116 msgid "Significantly improved library modules:" msgstr "" -#: ../../whatsnew/3.4.rst:118 msgid "" -":ref:`Single-dispatch generic functions ` " -"in :mod:`functools` (:pep:`443`)." +":ref:`Single-dispatch generic functions ` in :mod:" +"`functools` (:pep:`443`)." msgstr "" -#: ../../whatsnew/3.4.rst:120 msgid "" "New :mod:`pickle` :ref:`protocol 4 ` (:pep:`3154`)." msgstr "" -#: ../../whatsnew/3.4.rst:121 msgid "" ":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " "Unix ` (:issue:`8713`)." msgstr "" -#: ../../whatsnew/3.4.rst:123 msgid "" -":mod:`email` has a new submodule, :mod:`~email.contentmanager`, and a " -"new :mod:`~email.message.Message` subclass " -"(:class:`~email.contentmanager.EmailMessage`) that :ref:`simplify MIME " -"handling ` (:issue:`18891`)." +":mod:`email` has a new submodule, :mod:`~email.contentmanager`, and a new :" +"mod:`~email.message.Message` subclass (:class:`~email.message.EmailMessage`) " +"that :ref:`simplify MIME handling ` (:issue:" +"`18891`)." msgstr "" -#: ../../whatsnew/3.4.rst:127 msgid "" "The :mod:`inspect` and :mod:`pydoc` modules are now capable of correct " "introspection of a much wider variety of callable objects, which improves " "the output of the Python :func:`help` system." msgstr "" -#: ../../whatsnew/3.4.rst:130 msgid "The :mod:`ipaddress` module API has been declared stable" msgstr "" -#: ../../whatsnew/3.4.rst:132 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.4.rst:134 msgid "" -":ref:`Secure and interchangeable hash algorithm ` " -"(:pep:`456`)." +":ref:`Secure and interchangeable hash algorithm ` (:pep:" +"`456`)." msgstr "" -#: ../../whatsnew/3.4.rst:136 msgid "" ":ref:`Make newly created file descriptors non-inheritable ` (:pep:`446`) to avoid leaking file descriptors to child processes." msgstr "" -#: ../../whatsnew/3.4.rst:138 msgid "" -"New command line option for :ref:`isolated mode `, " -"(:issue:`16499`)." +"New command line option for :ref:`isolated mode `, (:" +"issue:`16499`)." msgstr "" -#: ../../whatsnew/3.4.rst:140 msgid "" ":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " "Unix `. *spawn* and *forkserver* are more " "secure because they avoid sharing data with child processes." msgstr "" -#: ../../whatsnew/3.4.rst:143 msgid "" ":mod:`multiprocessing` child processes on Windows no longer inherit all of " "the parent's inheritable handles, only the necessary ones." msgstr "" -#: ../../whatsnew/3.4.rst:145 msgid "" "A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" "based key derivation function 2 `_." msgstr "" -#: ../../whatsnew/3.4.rst:148 msgid ":ref:`TLSv1.1 and TLSv1.2 support ` for :mod:`ssl`." msgstr "" -#: ../../whatsnew/3.4.rst:149 msgid "" ":ref:`Retrieving certificates from the Windows system cert store support " "` for :mod:`ssl`." msgstr "" -#: ../../whatsnew/3.4.rst:151 msgid "" ":ref:`Server-side SNI (Server Name Indication) support ` " "for :mod:`ssl`." msgstr "" -#: ../../whatsnew/3.4.rst:153 msgid "" "The :class:`ssl.SSLContext` class has a :ref:`lot of improvements " "`." msgstr "" -#: ../../whatsnew/3.4.rst:155 msgid "" "All modules in the standard library that support SSL now support server " -"certificate verification, including hostname matching " -"(:func:`ssl.match_hostname`) and CRLs (Certificate Revocation lists, " -"see :func:`ssl.SSLContext.load_verify_locations`)." +"certificate verification, including hostname matching (:func:`!ssl." +"match_hostname`) and CRLs (Certificate Revocation lists, see :func:`ssl." +"SSLContext.load_verify_locations`)." msgstr "" -#: ../../whatsnew/3.4.rst:160 msgid "CPython implementation improvements:" msgstr "" -#: ../../whatsnew/3.4.rst:162 msgid ":ref:`Safe object finalization ` (:pep:`442`)." msgstr "" -#: ../../whatsnew/3.4.rst:163 msgid "" "Leveraging :pep:`442`, in most cases :ref:`module globals are no longer set " "to None during finalization ` (:issue:`18214`)." msgstr "" -#: ../../whatsnew/3.4.rst:165 msgid ":ref:`Configurable memory allocators ` (:pep:`445`)." msgstr "" -#: ../../whatsnew/3.4.rst:166 msgid ":ref:`Argument Clinic ` (:pep:`436`)." msgstr "" -#: ../../whatsnew/3.4.rst:168 msgid "" "Please read on for a comprehensive list of user-facing changes, including " "many other smaller improvements, CPython optimizations, deprecations, and " "potential porting issues." msgstr "" -#: ../../whatsnew/3.4.rst:175 msgid "New Features" msgstr "" -#: ../../whatsnew/3.4.rst:180 msgid "PEP 453: Explicit Bootstrapping of PIP in Python Installations" msgstr "" -#: ../../whatsnew/3.4.rst:183 msgid "Bootstrapping pip By Default" msgstr "" -#: ../../whatsnew/3.4.rst:185 msgid "" "The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " "cross-platform mechanism to bootstrap the pip installer into Python " @@ -300,7 +248,6 @@ msgid "" "available at the time of creating the release candidate." msgstr "" -#: ../../whatsnew/3.4.rst:192 msgid "" "By default, the commands ``pipX`` and ``pipX.Y`` will be installed on all " "platforms (where X.Y stands for the version of the Python installation), " @@ -311,7 +258,6 @@ msgid "" "version." msgstr "" -#: ../../whatsnew/3.4.rst:200 msgid "" "The ``pyvenv`` command line utility and the :mod:`venv` module make use of " "the :mod:`ensurepip` module to make ``pip`` readily available in virtual " @@ -320,7 +266,6 @@ msgid "" "installation of ``pip`` must be requested explicitly." msgstr "" -#: ../../whatsnew/3.4.rst:206 msgid "" "For CPython :ref:`source builds on POSIX systems `, " "the ``make install`` and ``make altinstall`` commands bootstrap ``pip`` by " @@ -328,7 +273,6 @@ msgid "" "overridden through Makefile options." msgstr "" -#: ../../whatsnew/3.4.rst:211 msgid "" "On Windows and Mac OS X, the CPython installers now default to installing " "``pip`` along with CPython itself (users may opt out of installing it during " @@ -338,7 +282,6 @@ msgid "" "Windows as ``py -m pip``." msgstr "" -#: ../../whatsnew/3.4.rst:218 msgid "" "As :pep:`discussed in the PEP <0453#recommendations-for-downstream-" "distributors>` platform packagers may choose not to install these commands " @@ -347,7 +290,6 @@ msgid "" "package manager)." msgstr "" -#: ../../whatsnew/3.4.rst:226 msgid "" "To avoid conflicts between parallel Python 2 and Python 3 installations, " "only the versioned ``pip3`` and ``pip3.4`` commands are bootstrapped by " @@ -359,11 +301,9 @@ msgid "" "multiple Python installations." msgstr "" -#: ../../whatsnew/3.4.rst:237 msgid "Documentation Changes" msgstr "" -#: ../../whatsnew/3.4.rst:239 msgid "" "As part of this change, the :ref:`installing-index` and :ref:`distributing-" "index` sections of the documentation have been completely redesigned as " @@ -373,28 +313,23 @@ msgid "" "of the individual projects." msgstr "" -#: ../../whatsnew/3.4.rst:247 msgid "" "However, as this migration is currently still incomplete, the legacy " -"versions of those guides remaining available as :ref:`install-index` " -"and :ref:`setuptools-index`." +"versions of those guides remaining available as :ref:`install-index` and :" +"ref:`setuptools-index`." msgstr "" -#: ../../whatsnew/3.4.rst:253 msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" msgstr "" -#: ../../whatsnew/3.4.rst:254 msgid "" "PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " "Nick Coghlan, Martin von Löwis and Ned Deily." msgstr "" -#: ../../whatsnew/3.4.rst:261 msgid "PEP 446: Newly Created File Descriptors Are Non-Inheritable" msgstr "" -#: ../../whatsnew/3.4.rst:263 msgid "" ":pep:`446` makes newly created file descriptors :ref:`non-inheritable " "`. In general, this is the behavior an application will " @@ -403,37 +338,30 @@ msgid "" "to security issues." msgstr "" -#: ../../whatsnew/3.4.rst:269 msgid "" "However, there are occasions when inheritance is desired. To support these " "cases, the following new functions and methods are available:" msgstr "" -#: ../../whatsnew/3.4.rst:272 msgid ":func:`os.get_inheritable`, :func:`os.set_inheritable`" msgstr "" -#: ../../whatsnew/3.4.rst:273 msgid ":func:`os.get_handle_inheritable`, :func:`os.set_handle_inheritable`" msgstr "" -#: ../../whatsnew/3.4.rst:274 -msgid ":meth:`socket.socket.get_inheritable`, :meth:`socket.socket.set_inheritable`" +msgid "" +":meth:`socket.socket.get_inheritable`, :meth:`socket.socket.set_inheritable`" msgstr "" -#: ../../whatsnew/3.4.rst:278 msgid ":pep:`446` -- Make newly created file descriptors non-inheritable" msgstr "" -#: ../../whatsnew/3.4.rst:279 ../../whatsnew/3.4.rst:1811 msgid "PEP written and implemented by Victor Stinner." msgstr "" -#: ../../whatsnew/3.4.rst:285 msgid "Improvements to Codec Handling" msgstr "" -#: ../../whatsnew/3.4.rst:287 msgid "" "Since it was first introduced, the :mod:`codecs` module has always been " "intended to operate as a type-neutral dynamic encoding and decoding system. " @@ -442,33 +370,28 @@ msgid "" "and :class:`bytearray` types, has historically obscured that fact." msgstr "" -#: ../../whatsnew/3.4.rst:294 msgid "" -"As a key step in clarifying the situation, the :meth:`codecs.encode` " -"and :meth:`codecs.decode` convenience functions are now properly documented " -"in Python 2.7, 3.3 and 3.4. These functions have existed in " -"the :mod:`codecs` module (and have been covered by the regression test " -"suite) since Python 2.4, but were previously only discoverable through " -"runtime introspection." +"As a key step in clarifying the situation, the :meth:`codecs.encode` and :" +"meth:`codecs.decode` convenience functions are now properly documented in " +"Python 2.7, 3.3 and 3.4. These functions have existed in the :mod:`codecs` " +"module (and have been covered by the regression test suite) since Python " +"2.4, but were previously only discoverable through runtime introspection." msgstr "" -#: ../../whatsnew/3.4.rst:300 msgid "" -"Unlike the convenience methods on :class:`str`, :class:`bytes` " -"and :class:`bytearray`, the :mod:`codecs` convenience functions support " -"arbitrary codecs in both Python 2 and Python 3, rather than being limited to " -"Unicode text encodings (in Python 3) or ``basestring`` <-> ``basestring`` " +"Unlike the convenience methods on :class:`str`, :class:`bytes` and :class:" +"`bytearray`, the :mod:`codecs` convenience functions support arbitrary " +"codecs in both Python 2 and Python 3, rather than being limited to Unicode " +"text encodings (in Python 3) or ``basestring`` <-> ``basestring`` " "conversions (in Python 2)." msgstr "" -#: ../../whatsnew/3.4.rst:306 msgid "" "In Python 3.4, the interpreter is able to identify the known non-text " "encodings provided in the standard library and direct users towards these " "general purpose convenience functions when appropriate::" msgstr "" -#: ../../whatsnew/3.4.rst:310 msgid "" ">>> b\"abcdef\".decode(\"hex\")\n" "Traceback (most recent call last):\n" @@ -489,7 +412,6 @@ msgid "" "arbitrary codecs" msgstr "" -#: ../../whatsnew/3.4.rst:325 msgid "" "In a related change, whenever it is feasible without breaking backwards " "compatibility, exceptions raised during encoding and decoding operations are " @@ -497,7 +419,6 @@ msgid "" "the codec responsible for producing the error::" msgstr "" -#: ../../whatsnew/3.4.rst:330 msgid "" ">>> import codecs\n" "\n" @@ -532,7 +453,6 @@ msgid "" "support the buffer interface)" msgstr "" -#: ../../whatsnew/3.4.rst:358 msgid "" "Finally, as the examples above show, these improvements have permitted the " "restoration of the convenience aliases for the non-Unicode codecs that were " @@ -540,7 +460,6 @@ msgid "" "and from its hexadecimal representation (for example) can now be written as::" msgstr "" -#: ../../whatsnew/3.4.rst:364 msgid "" ">>> from codecs import encode, decode\n" ">>> encode(b\"hello\", \"hex\")\n" @@ -549,23 +468,19 @@ msgid "" "b'hello'" msgstr "" -#: ../../whatsnew/3.4.rst:370 msgid "" "The binary and text transforms provided in the standard library are detailed " "in :ref:`binary-transforms` and :ref:`text-transforms`." msgstr "" -#: ../../whatsnew/3.4.rst:373 msgid "" -"(Contributed by Nick Coghlan " -"in :issue:`7475`, :issue:`17827`, :issue:`17828` and :issue:`19619`.)" +"(Contributed by Nick Coghlan in :issue:`7475`, :issue:`17827`, :issue:" +"`17828` and :issue:`19619`.)" msgstr "" -#: ../../whatsnew/3.4.rst:380 msgid "PEP 451: A ModuleSpec Type for the Import System" msgstr "" -#: ../../whatsnew/3.4.rst:382 msgid "" ":pep:`451` provides an encapsulation of the information about a module that " "the import machinery will use to load it (that is, a module specification). " @@ -574,50 +489,42 @@ msgid "" "related improvements`__." msgstr "" -#: ../../whatsnew/3.4.rst:390 msgid "" "The public-facing changes from the PEP are entirely backward-compatible. " "Furthermore, they should be transparent to everyone but importer authors. " "Key finder and loader methods have been deprecated, but they will continue " "working. New importers should use the new methods described in the PEP. " -"Existing importers should be updated to implement the new methods. See " -"the :ref:`deprecated-3.4` section for a list of methods that should be " -"replaced and their replacements." +"Existing importers should be updated to implement the new methods. See the :" +"ref:`deprecated-3.4` section for a list of methods that should be replaced " +"and their replacements." msgstr "" -#: ../../whatsnew/3.4.rst:400 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.4.rst:402 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.4.rst:404 msgid "Unicode database updated to UCD version 6.3." msgstr "" -#: ../../whatsnew/3.4.rst:406 msgid "" ":func:`min` and :func:`max` now accept a *default* keyword-only argument " "that can be used to specify the value they return if the iterable they are " -"evaluating has no elements. (Contributed by Julian Berman " -"in :issue:`18111`.)" +"evaluating has no elements. (Contributed by Julian Berman in :issue:" +"`18111`.)" msgstr "" -#: ../../whatsnew/3.4.rst:411 msgid "Module objects are now :ref:`weakly referenceable `." msgstr "" -#: ../../whatsnew/3.4.rst:413 msgid "" "Module ``__file__`` attributes (and related values) should now always " -"contain absolute paths by default, with the sole exception of " -"``__main__.__file__`` when a script has been executed directly using a " -"relative path. (Contributed by Brett Cannon in :issue:`18416`.)" +"contain absolute paths by default, with the sole exception of ``__main__." +"__file__`` when a script has been executed directly using a relative path. " +"(Contributed by Brett Cannon in :issue:`18416`.)" msgstr "" -#: ../../whatsnew/3.4.rst:418 msgid "" "All the UTF-\\* codecs (except UTF-7) now reject surrogates during both " "encoding and decoding unless the ``surrogatepass`` error handler is used, " @@ -627,69 +534,58 @@ msgid "" "Storchaka in :issue:`12892`.)" msgstr "" -#: ../../whatsnew/3.4.rst:425 msgid "" "New German EBCDIC :ref:`codec ` ``cp273``. (Contributed " "by Michael Bierenfeld and Andrew Kuchling in :issue:`1097797`.)" msgstr "" -#: ../../whatsnew/3.4.rst:428 msgid "" "New Ukrainian :ref:`codec ` ``cp1125``. (Contributed by " "Serhiy Storchaka in :issue:`19668`.)" msgstr "" -#: ../../whatsnew/3.4.rst:431 msgid "" ":class:`bytes`.join() and :class:`bytearray`.join() now accept arbitrary " -"buffer objects as arguments. (Contributed by Antoine Pitrou " -"in :issue:`15958`.)" +"buffer objects as arguments. (Contributed by Antoine Pitrou in :issue:" +"`15958`.)" msgstr "" -#: ../../whatsnew/3.4.rst:435 msgid "" "The :class:`int` constructor now accepts any object that has an " "``__index__`` method for its *base* argument. (Contributed by Mark " "Dickinson in :issue:`16772`.)" msgstr "" -#: ../../whatsnew/3.4.rst:439 msgid "" "Frame objects now have a :func:`~frame.clear` method that clears all " "references to local variables from the frame. (Contributed by Antoine " "Pitrou in :issue:`17934`.)" msgstr "" -#: ../../whatsnew/3.4.rst:443 msgid "" -":class:`memoryview` is now registered as a :class:`Sequence " -"`, and supports the :func:`reversed` builtin. (Contributed " -"by Nick Coghlan and Claudiu Popa in :issue:`18690` and :issue:`19078`.)" +":class:`memoryview` is now registered as a :class:`Sequence `, and supports the :func:`reversed` builtin. (Contributed by Nick " +"Coghlan and Claudiu Popa in :issue:`18690` and :issue:`19078`.)" msgstr "" -#: ../../whatsnew/3.4.rst:447 msgid "" "Signatures reported by :func:`help` have been modified and improved in " "several cases as a result of the introduction of Argument Clinic and other " "changes to the :mod:`inspect` and :mod:`pydoc` modules." msgstr "" -#: ../../whatsnew/3.4.rst:451 msgid "" ":meth:`~object.__length_hint__` is now part of the formal language " -"specification (see :pep:`424`). (Contributed by Armin Ronacher " -"in :issue:`16148`.)" +"specification (see :pep:`424`). (Contributed by Armin Ronacher in :issue:" +"`16148`.)" msgstr "" -#: ../../whatsnew/3.4.rst:457 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.4.rst:463 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.4.rst:465 msgid "" "The new :mod:`asyncio` module (defined in :pep:`3156`) provides a standard " "pluggable event loop model for Python, providing solid asynchronous IO " @@ -697,32 +593,26 @@ msgid "" "implementations to interoperate with the standard library and each other." msgstr "" -#: ../../whatsnew/3.4.rst:470 ../../whatsnew/3.4.rst:533 msgid "For Python 3.4, this module is considered a :term:`provisional API`." msgstr "" -#: ../../whatsnew/3.4.rst:474 msgid ":pep:`3156` -- Asynchronous IO Support Rebooted: the \"asyncio\" Module" msgstr "" -#: ../../whatsnew/3.4.rst:475 msgid "PEP written and implementation led by Guido van Rossum." msgstr "" -#: ../../whatsnew/3.4.rst:481 msgid "ensurepip" msgstr "" -#: ../../whatsnew/3.4.rst:483 msgid "" -"The new :mod:`ensurepip` module is the primary infrastructure for " -"the :pep:`453` implementation. In the normal course of events end users " -"will not need to interact with this module, but it can be used to manually " -"bootstrap ``pip`` if the automated bootstrapping into an installation or " -"virtual environment was declined." +"The new :mod:`ensurepip` module is the primary infrastructure for the :pep:" +"`453` implementation. In the normal course of events end users will not " +"need to interact with this module, but it can be used to manually bootstrap " +"``pip`` if the automated bootstrapping into an installation or virtual " +"environment was declined." msgstr "" -#: ../../whatsnew/3.4.rst:489 msgid "" ":mod:`ensurepip` includes a bundled copy of ``pip``, up-to-date as of the " "first release candidate of the release of CPython with which it ships (this " @@ -734,7 +624,6 @@ msgid "" "package and will not be removed if Python is uninstalled.)" msgstr "" -#: ../../whatsnew/3.4.rst:498 msgid "" "The module is named *ensure*\\ pip because if called when ``pip`` is already " "installed, it does nothing. It also has an ``--upgrade`` option that will " @@ -742,34 +631,28 @@ msgid "" "version of ``pip`` is older than the bundled copy." msgstr "" -#: ../../whatsnew/3.4.rst:507 msgid "enum" msgstr "" -#: ../../whatsnew/3.4.rst:509 msgid "" "The new :mod:`enum` module (defined in :pep:`435`) provides a standard " -"implementation of enumeration types, allowing other modules (such " -"as :mod:`socket`) to provide more informative error messages and better " -"debugging support by replacing opaque integer constants with backwards " -"compatible enumeration values." +"implementation of enumeration types, allowing other modules (such as :mod:" +"`socket`) to provide more informative error messages and better debugging " +"support by replacing opaque integer constants with backwards compatible " +"enumeration values." msgstr "" -#: ../../whatsnew/3.4.rst:517 msgid ":pep:`435` -- Adding an Enum type to the Python standard library" msgstr "" -#: ../../whatsnew/3.4.rst:518 msgid "" "PEP written by Barry Warsaw, Eli Bendersky and Ethan Furman, implemented by " "Ethan Furman." msgstr "" -#: ../../whatsnew/3.4.rst:525 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.4.rst:527 msgid "" "The new :mod:`pathlib` module offers classes representing filesystem paths " "with semantics appropriate for different operating systems. Path classes " @@ -778,30 +661,24 @@ msgid "" "but also provide I/O operations." msgstr "" -#: ../../whatsnew/3.4.rst:537 msgid ":pep:`428` -- The pathlib module -- object-oriented filesystem paths" msgstr "" -#: ../../whatsnew/3.4.rst:538 ../../whatsnew/3.4.rst:1834 msgid "PEP written and implemented by Antoine Pitrou." msgstr "" -#: ../../whatsnew/3.4.rst:544 msgid "selectors" msgstr "" -#: ../../whatsnew/3.4.rst:546 msgid "" -"The new :mod:`selectors` module (created as part of " -"implementing :pep:`3156`) allows high-level and efficient I/O multiplexing, " -"built upon the :mod:`select` module primitives." +"The new :mod:`selectors` module (created as part of implementing :pep:" +"`3156`) allows high-level and efficient I/O multiplexing, built upon the :" +"mod:`select` module primitives." msgstr "" -#: ../../whatsnew/3.4.rst:554 msgid "statistics" msgstr "" -#: ../../whatsnew/3.4.rst:556 msgid "" "The new :mod:`statistics` module (defined in :pep:`450`) offers some core " "statistics functionality directly in the standard library. This module " @@ -809,64 +686,51 @@ msgid "" "deviation of a data series." msgstr "" -#: ../../whatsnew/3.4.rst:563 msgid ":pep:`450` -- Adding A Statistics Module To The Standard Library" msgstr "" -#: ../../whatsnew/3.4.rst:564 msgid "PEP written and implemented by Steven D'Aprano" msgstr "" -#: ../../whatsnew/3.4.rst:570 msgid "tracemalloc" msgstr "" -#: ../../whatsnew/3.4.rst:572 msgid "" "The new :mod:`tracemalloc` module (defined in :pep:`454`) is a debug tool to " "trace memory blocks allocated by Python. It provides the following " "information:" msgstr "" -#: ../../whatsnew/3.4.rst:575 msgid "Trace where an object was allocated" msgstr "" -#: ../../whatsnew/3.4.rst:576 msgid "" "Statistics on allocated memory blocks per filename and per line number: " "total size, number and average size of allocated memory blocks" msgstr "" -#: ../../whatsnew/3.4.rst:578 msgid "Compute the differences between two snapshots to detect memory leaks" msgstr "" -#: ../../whatsnew/3.4.rst:582 msgid "" ":pep:`454` -- Add a new tracemalloc module to trace Python memory allocations" msgstr "" -#: ../../whatsnew/3.4.rst:583 msgid "PEP written and implemented by Victor Stinner" msgstr "" -#: ../../whatsnew/3.4.rst:588 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.4.rst:592 msgid "abc" msgstr "" -#: ../../whatsnew/3.4.rst:594 msgid "" "New function :func:`abc.get_cache_token` can be used to know when to " "invalidate caches that are affected by changes in the object graph. " "(Contributed by Łukasz Langa in :issue:`16832`.)" msgstr "" -#: ../../whatsnew/3.4.rst:598 msgid "" "New class :class:`~abc.ABC` has :class:`~abc.ABCMeta` as its meta class. " "Using ``ABC`` as a base class has essentially the same effect as specifying " @@ -874,17 +738,14 @@ msgid "" "(Contributed by Bruno Dupuis in :issue:`16049`.)" msgstr "" -#: ../../whatsnew/3.4.rst:605 msgid "aifc" msgstr "" -#: ../../whatsnew/3.4.rst:607 msgid "" "The :meth:`!getparams` method now returns a namedtuple rather than a plain " "tuple. (Contributed by Claudiu Popa in :issue:`17818`.)" msgstr "" -#: ../../whatsnew/3.4.rst:610 msgid "" ":func:`!aifc.open` now supports the context management protocol: when used " "in a :keyword:`with` block, the :meth:`!close` method of the returned object " @@ -892,76 +753,63 @@ msgid "" "Serhiy Storchacha in :issue:`16486`.)" msgstr "" -#: ../../whatsnew/3.4.rst:615 ../../whatsnew/3.4.rst:1542 msgid "" -"The :meth:`!writeframesraw` and :meth:`!writeframes` methods now accept " -"any :term:`bytes-like object`. (Contributed by Serhiy Storchaka " -"in :issue:`8311`.)" +"The :meth:`!writeframesraw` and :meth:`!writeframes` methods now accept any :" +"term:`bytes-like object`. (Contributed by Serhiy Storchaka in :issue:" +"`8311`.)" msgstr "" -#: ../../whatsnew/3.4.rst:621 msgid "argparse" msgstr "" -#: ../../whatsnew/3.4.rst:623 msgid "" "The :class:`~argparse.FileType` class now accepts *encoding* and *errors* " "arguments, which are passed through to :func:`open`. (Contributed by Lucas " "Maystre in :issue:`11175`.)" msgstr "" -#: ../../whatsnew/3.4.rst:629 msgid "audioop" msgstr "" -#: ../../whatsnew/3.4.rst:631 msgid "" ":mod:`!audioop` now supports 24-bit samples. (Contributed by Serhiy " "Storchaka in :issue:`12866`.)" msgstr "" -#: ../../whatsnew/3.4.rst:634 msgid "" "New :func:`!byteswap` function converts big-endian samples to little-endian " "and vice versa. (Contributed by Serhiy Storchaka in :issue:`19641`.)" msgstr "" -#: ../../whatsnew/3.4.rst:638 msgid "" "All :mod:`!audioop` functions now accept any :term:`bytes-like object`. " "Strings are not accepted: they didn't work before, now they raise an error " "right away. (Contributed by Serhiy Storchaka in :issue:`16685`.)" msgstr "" -#: ../../whatsnew/3.4.rst:644 msgid "base64" msgstr "" -#: ../../whatsnew/3.4.rst:646 msgid "" -"The encoding and decoding functions in :mod:`base64` now accept " -"any :term:`bytes-like object` in cases where it previously required " -"a :class:`bytes` or :class:`bytearray` instance. (Contributed by Nick " -"Coghlan in :issue:`17839`.)" +"The encoding and decoding functions in :mod:`base64` now accept any :term:" +"`bytes-like object` in cases where it previously required a :class:`bytes` " +"or :class:`bytearray` instance. (Contributed by Nick Coghlan in :issue:" +"`17839`.)" msgstr "" -#: ../../whatsnew/3.4.rst:651 msgid "" -"New " -"functions :func:`~base64.a85encode`, :func:`~base64.a85decode`, :func:`~base64.b85encode`, " -"and :func:`~base64.b85decode` provide the ability to encode and decode " -"binary data from and to ``Ascii85`` and the git/mercurial ``Base85`` " -"formats, respectively. The ``a85`` functions have options that can be used " -"to make them compatible with the variants of the ``Ascii85`` encoding, " -"including the Adobe variant. (Contributed by Martin Morrison, the Mercurial " -"project, Serhiy Storchaka, and Antoine Pitrou in :issue:`17618`.)" +"New functions :func:`~base64.a85encode`, :func:`~base64.a85decode`, :func:" +"`~base64.b85encode`, and :func:`~base64.b85decode` provide the ability to " +"encode and decode binary data from and to ``Ascii85`` and the git/mercurial " +"``Base85`` formats, respectively. The ``a85`` functions have options that " +"can be used to make them compatible with the variants of the ``Ascii85`` " +"encoding, including the Adobe variant. (Contributed by Martin Morrison, the " +"Mercurial project, Serhiy Storchaka, and Antoine Pitrou in :issue:`17618`.)" msgstr "" -#: ../../whatsnew/3.4.rst:661 msgid "collections" msgstr "" -#: ../../whatsnew/3.4.rst:663 msgid "" "The :meth:`.ChainMap.new_child` method now accepts an *m* argument " "specifying the child map to add to the chain. This allows an existing " @@ -969,11 +817,9 @@ msgid "" "by Vinay Sajip in :issue:`16613`.)" msgstr "" -#: ../../whatsnew/3.4.rst:670 msgid "colorsys" msgstr "" -#: ../../whatsnew/3.4.rst:672 msgid "" "The number of digits in the coefficients for the RGB --- YIQ conversions " "have been expanded so that they match the FCC NTSC versions. The change in " @@ -981,11 +827,9 @@ msgid "" "(Contributed by Brian Landers and Serhiy Storchaka in :issue:`14323`.)" msgstr "" -#: ../../whatsnew/3.4.rst:679 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.4.rst:681 msgid "" "The new :class:`contextlib.suppress` context manager helps to clarify the " "intent of code that deliberately suppresses exceptions from a single " @@ -993,31 +837,27 @@ msgid "" "Piraeus in :issue:`19266`.)" msgstr "" -#: ../../whatsnew/3.4.rst:686 msgid "" "The new :func:`contextlib.redirect_stdout` context manager makes it easier " -"for utility scripts to handle inflexible APIs that write their output " -"to :data:`sys.stdout` and don't provide any options to redirect it. Using " -"the context manager, the :data:`sys.stdout` output can be redirected to any " +"for utility scripts to handle inflexible APIs that write their output to :" +"data:`sys.stdout` and don't provide any options to redirect it. Using the " +"context manager, the :data:`sys.stdout` output can be redirected to any " "other stream or, in conjunction with :class:`io.StringIO`, to a string. The " "latter can be especially useful, for example, to capture output from a " "function that was written to implement a command line interface. It is " -"recommended only for utility scripts because it affects the global state " -"of :data:`sys.stdout`. (Contributed by Raymond Hettinger in :issue:`15805`.)" +"recommended only for utility scripts because it affects the global state of :" +"data:`sys.stdout`. (Contributed by Raymond Hettinger in :issue:`15805`.)" msgstr "" -#: ../../whatsnew/3.4.rst:697 msgid "" -"The :mod:`contextlib` documentation has also been updated to include " -"a :ref:`discussion ` of the " -"differences between single use, reusable and reentrant context managers." +"The :mod:`contextlib` documentation has also been updated to include a :ref:" +"`discussion ` of the differences " +"between single use, reusable and reentrant context managers." msgstr "" -#: ../../whatsnew/3.4.rst:703 msgid "dbm" msgstr "" -#: ../../whatsnew/3.4.rst:705 msgid "" ":func:`dbm.open` objects now support the context management protocol. When " "used in a :keyword:`with` statement, the ``close`` method of the database " @@ -1025,25 +865,21 @@ msgid "" "by Claudiu Popa and Nick Coghlan in :issue:`19282`.)" msgstr "" -#: ../../whatsnew/3.4.rst:712 msgid "dis" msgstr "" -#: ../../whatsnew/3.4.rst:714 msgid "" -"Functions :func:`~dis.show_code`, :func:`~dis.dis`, :func:`~dis.distb`, " -"and :func:`~dis.disassemble` now accept a keyword-only *file* argument that " +"Functions :func:`~dis.show_code`, :func:`~dis.dis`, :func:`~dis.distb`, and :" +"func:`~dis.disassemble` now accept a keyword-only *file* argument that " "controls where they write their output." msgstr "" -#: ../../whatsnew/3.4.rst:718 msgid "" "The :mod:`dis` module is now built around an :class:`~dis.Instruction` class " "that provides object oriented access to the details of each individual " "bytecode operation." msgstr "" -#: ../../whatsnew/3.4.rst:722 msgid "" "A new method, :func:`~dis.get_instructions`, provides an iterator that emits " "the Instruction stream for a given piece of Python code. Thus it is now " @@ -1052,7 +888,6 @@ msgid "" "example::" msgstr "" -#: ../../whatsnew/3.4.rst:728 msgid "" ">>> import dis\n" ">>> for instr in dis.get_instructions(lambda x: x + 1):\n" @@ -1063,26 +898,23 @@ msgid "" "RETURN_VALUE" msgstr "" -#: ../../whatsnew/3.4.rst:736 msgid "" "The various display tools in the :mod:`dis` module have been rewritten to " "use these new components." msgstr "" -#: ../../whatsnew/3.4.rst:739 msgid "" "In addition, a new application-friendly class :class:`~dis.Bytecode` " "provides an object-oriented API for inspecting bytecode in both in human-" -"readable form and for iterating over instructions. " -"The :class:`~dis.Bytecode` constructor takes the same arguments " -"that :func:`~dis.get_instruction` does (plus an optional *current_offset*), " -"and the resulting object can be iterated to " -"produce :class:`~dis.Instruction` objects. But it also has " -"a :mod:`~dis.Bytecode.dis` method, equivalent to calling :mod:`~dis.dis` on " -"the constructor argument, but returned as a multi-line string::" +"readable form and for iterating over instructions. The :class:`~dis." +"Bytecode` constructor takes the same arguments that :func:`~dis." +"get_instructions` does (plus an optional *current_offset*), and the " +"resulting object can be iterated to produce :class:`~dis.Instruction` " +"objects. But it also has a :mod:`~dis.Bytecode.dis` method, equivalent to " +"calling :mod:`~dis.dis` on the constructor argument, but returned as a multi-" +"line string::" msgstr "" -#: ../../whatsnew/3.4.rst:748 msgid "" ">>> bytecode = dis.Bytecode(lambda x: x + 1, current_offset=3)\n" ">>> for instr in bytecode:\n" @@ -1098,59 +930,50 @@ msgid "" " ' 7 RETURN_VALUE']" msgstr "" -#: ../../whatsnew/3.4.rst:761 msgid "" -":class:`~dis.Bytecode` also has a class " -"method, :meth:`~dis.Bytecode.from_traceback`, that provides the ability to " -"manipulate a traceback (that is, " -"``print(Bytecode.from_traceback(tb).dis())`` is equivalent to ``distb(tb)``)." +":class:`~dis.Bytecode` also has a class method, :meth:`~dis.Bytecode." +"from_traceback`, that provides the ability to manipulate a traceback (that " +"is, ``print(Bytecode.from_traceback(tb).dis())`` is equivalent to " +"``distb(tb)``)." msgstr "" -#: ../../whatsnew/3.4.rst:766 msgid "" -"(Contributed by Nick Coghlan, Ryan Kelly and Thomas Kluyver " -"in :issue:`11816` and Claudiu Popa in :issue:`17916`.)" +"(Contributed by Nick Coghlan, Ryan Kelly and Thomas Kluyver in :issue:" +"`11816` and Claudiu Popa in :issue:`17916`.)" msgstr "" -#: ../../whatsnew/3.4.rst:769 msgid "" "New function :func:`~dis.stack_effect` computes the effect on the Python " "stack of a given opcode and argument, information that is not otherwise " "available. (Contributed by Larry Hastings in :issue:`19722`.)" msgstr "" -#: ../../whatsnew/3.4.rst:775 msgid "doctest" msgstr "" -#: ../../whatsnew/3.4.rst:777 msgid "" "A new :ref:`option flag `, :const:`~doctest.FAIL_FAST`, " "halts test running as soon as the first failure is detected. (Contributed " "by R. David Murray and Daniel Urban in :issue:`16522`.)" msgstr "" -#: ../../whatsnew/3.4.rst:781 msgid "" "The :mod:`doctest` command line interface now uses :mod:`argparse`, and has " "two new options, ``-o`` and ``-f``. ``-o`` allows :ref:`doctest options " "` to be specified on the command line, and ``-f`` is a " "shorthand for ``-o FAIL_FAST`` (to parallel the similar option supported by " -"the :mod:`unittest` CLI). (Contributed by R. David Murray " -"in :issue:`11390`.)" +"the :mod:`unittest` CLI). (Contributed by R. David Murray in :issue:" +"`11390`.)" msgstr "" -#: ../../whatsnew/3.4.rst:787 msgid "" ":mod:`doctest` will now find doctests in extension module ``__doc__`` " "strings. (Contributed by Zachary Ware in :issue:`3158`.)" msgstr "" -#: ../../whatsnew/3.4.rst:792 msgid "email" msgstr "" -#: ../../whatsnew/3.4.rst:794 msgid "" ":meth:`~email.message.Message.as_string` now accepts a *policy* argument to " "override the default policy of the message when generating a string " @@ -1160,28 +983,25 @@ msgid "" "(Contributed by R. David Murray in :issue:`18600`.)" msgstr "" -#: ../../whatsnew/3.4.rst:801 msgid "" "New method :meth:`~email.message.Message.as_bytes` added to produce a bytes " "representation of the message in a fashion similar to how ``as_string`` " "produces a string representation. It does not accept the *maxheaderlen* " -"argument, but does accept the *unixfrom* and *policy* arguments. " -"The :class:`~email.message.Message` :meth:`~email.message.Message.__bytes__` " -"method calls it, meaning that ``bytes(mymsg)`` will now produce the " -"intuitive result: a bytes object containing the fully formatted message. " +"argument, but does accept the *unixfrom* and *policy* arguments. The :class:" +"`~email.message.Message` :meth:`~email.message.Message.__bytes__` method " +"calls it, meaning that ``bytes(mymsg)`` will now produce the intuitive " +"result: a bytes object containing the fully formatted message. " "(Contributed by R. David Murray in :issue:`18600`.)" msgstr "" -#: ../../whatsnew/3.4.rst:810 msgid "" "The :meth:`.Message.set_param` message now accepts a *replace* keyword " "argument. When specified, the associated header will be updated without " "changing its location in the list of headers. For backward compatibility, " -"the default is ``False``. (Contributed by R. David Murray " -"in :issue:`18891`.)" +"the default is ``False``. (Contributed by R. David Murray in :issue:" +"`18891`.)" msgstr "" -#: ../../whatsnew/3.4.rst:818 msgid "" "A pair of new subclasses of :class:`~email.message.Message` have been added " "(:class:`.EmailMessage` and :class:`.MIMEPart`), along with a new sub-" @@ -1190,20 +1010,17 @@ msgid "" "documentation is currently in the new module, which is being added as part " "of email's new :term:`provisional API`. These classes provide a number of " "new methods that make extracting content from and inserting content into " -"email messages much easier. For details, see " -"the :mod:`~email.contentmanager` documentation and the :ref:`email-" -"examples`. These API additions complete the bulk of the work that was " -"planned as part of the email6 project. The currently provisional API is " -"scheduled to become final in Python 3.5 (possibly with a few minor additions " -"in the area of error handling). (Contributed by R. David Murray " -"in :issue:`18891`.)" +"email messages much easier. For details, see the :mod:`~email." +"contentmanager` documentation and the :ref:`email-examples`. These API " +"additions complete the bulk of the work that was planned as part of the " +"email6 project. The currently provisional API is scheduled to become final " +"in Python 3.5 (possibly with a few minor additions in the area of error " +"handling). (Contributed by R. David Murray in :issue:`18891`.)" msgstr "" -#: ../../whatsnew/3.4.rst:834 msgid "filecmp" msgstr "" -#: ../../whatsnew/3.4.rst:836 msgid "" "A new :func:`~filecmp.clear_cache` function provides the ability to clear " "the :mod:`filecmp` comparison cache, which uses :func:`os.stat` information " @@ -1213,19 +1030,16 @@ msgid "" "time field. (Contributed by Mark Levitt in :issue:`18149`.)" msgstr "" -#: ../../whatsnew/3.4.rst:843 msgid "" "New module attribute :const:`~filecmp.DEFAULT_IGNORES` provides the list of " "directories that are used as the default value for the *ignore* parameter of " -"the :func:`~filecmp.dircmp` function. (Contributed by Eli Bendersky " -"in :issue:`15442`.)" +"the :func:`~filecmp.dircmp` function. (Contributed by Eli Bendersky in :" +"issue:`15442`.)" msgstr "" -#: ../../whatsnew/3.4.rst:850 msgid "functools" msgstr "" -#: ../../whatsnew/3.4.rst:852 msgid "" "The new :func:`~functools.partialmethod` descriptor brings partial argument " "application to descriptors, just as :func:`~functools.partial` provides for " @@ -1235,7 +1049,6 @@ msgid "" "Alon Horev and Nick Coghlan in :issue:`4331`.)" msgstr "" -#: ../../whatsnew/3.4.rst:861 msgid "" "The new :func:`~functools.singledispatch` decorator brings support for " "single-dispatch generic functions to the Python standard library. Where " @@ -1245,22 +1058,18 @@ msgid "" "*different* kinds of data." msgstr "" -#: ../../whatsnew/3.4.rst:870 msgid ":pep:`443` -- Single-dispatch generic functions" msgstr "" -#: ../../whatsnew/3.4.rst:871 msgid "PEP written and implemented by Łukasz Langa." msgstr "" -#: ../../whatsnew/3.4.rst:873 msgid "" -":func:`~functools.total_ordering` now supports a return value " -"of :data:`NotImplemented` from the underlying comparison function. " -"(Contributed by Katie Miller in :issue:`10042`.)" +":func:`~functools.total_ordering` now supports a return value of :data:" +"`NotImplemented` from the underlying comparison function. (Contributed by " +"Katie Miller in :issue:`10042`.)" msgstr "" -#: ../../whatsnew/3.4.rst:877 msgid "" "A pure-python version of the :func:`~functools.partial` function is now in " "the stdlib; in CPython it is overridden by the C accelerated version, but it " @@ -1268,22 +1077,18 @@ msgid "" "in :issue:`12428`.)" msgstr "" -#: ../../whatsnew/3.4.rst:884 msgid "gc" msgstr "" -#: ../../whatsnew/3.4.rst:886 msgid "" "New function :func:`~gc.get_stats` returns a list of three per-generation " "dictionaries containing the collections statistics since interpreter " "startup. (Contributed by Antoine Pitrou in :issue:`16351`.)" msgstr "" -#: ../../whatsnew/3.4.rst:892 msgid "glob" msgstr "" -#: ../../whatsnew/3.4.rst:894 msgid "" "A new function :func:`~glob.escape` provides a way to escape special " "characters in a filename so that they do not become part of the globbing " @@ -1291,32 +1096,27 @@ msgid "" "Storchaka in :issue:`8402`.)" msgstr "" -#: ../../whatsnew/3.4.rst:900 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.4.rst:902 msgid "" "A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" "based key derivation function 2 `_. " "(Contributed by Christian Heimes in :issue:`18582`.)" msgstr "" -#: ../../whatsnew/3.4.rst:907 msgid "" "The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is " -"now a formally supported interface. It has always existed in " -"CPython's :mod:`hashlib` (although it did not return lower case names for " -"all supported hashes), but it was not a public interface and so some other " -"Python implementations have not previously supported it. (Contributed by " -"Jason R. Coombs in :issue:`18532`.)" +"now a formally supported interface. It has always existed in CPython's :mod:" +"`hashlib` (although it did not return lower case names for all supported " +"hashes), but it was not a public interface and so some other Python " +"implementations have not previously supported it. (Contributed by Jason R. " +"Coombs in :issue:`18532`.)" msgstr "" -#: ../../whatsnew/3.4.rst:916 msgid "hmac" msgstr "" -#: ../../whatsnew/3.4.rst:918 msgid "" ":mod:`hmac` now accepts ``bytearray`` as well as ``bytes`` for the *key* " "argument to the :func:`~hmac.new` function, and the *msg* parameter to both " @@ -1325,7 +1125,6 @@ msgid "" "Jonas Borgström in :issue:`18240`.)" msgstr "" -#: ../../whatsnew/3.4.rst:924 msgid "" "The *digestmod* argument to the :func:`hmac.new` function may now be any " "hash digest name recognized by :mod:`hashlib`. In addition, the current " @@ -1334,27 +1133,22 @@ msgid "" "(Contributed by Christian Heimes in :issue:`17276`.)" msgstr "" -#: ../../whatsnew/3.4.rst:930 msgid "" -"With the addition of :attr:`~hmac.HMAC.block_size` " -"and :attr:`~hmac.HMAC.name` attributes (and the formal documentation of " -"the :attr:`~hmac.HMAC.digest_size` attribute), the :mod:`hmac` module now " -"conforms fully to the :pep:`247` API. (Contributed by Christian Heimes " -"in :issue:`18775`.)" +"With the addition of :attr:`~hmac.HMAC.block_size` and :attr:`~hmac.HMAC." +"name` attributes (and the formal documentation of the :attr:`~hmac.HMAC." +"digest_size` attribute), the :mod:`hmac` module now conforms fully to the :" +"pep:`247` API. (Contributed by Christian Heimes in :issue:`18775`.)" msgstr "" -#: ../../whatsnew/3.4.rst:937 msgid "html" msgstr "" -#: ../../whatsnew/3.4.rst:939 msgid "" "New function :func:`~html.unescape` function converts HTML5 character " "references to the corresponding Unicode characters. (Contributed by Ezio " "Melotti in :issue:`2927`.)" msgstr "" -#: ../../whatsnew/3.4.rst:943 msgid "" ":class:`~html.parser.HTMLParser` accepts a new keyword argument " "*convert_charrefs* that, when ``True``, automatically converts all character " @@ -1364,61 +1158,52 @@ msgid "" "(Contributed by Ezio Melotti in :issue:`13633`.)" msgstr "" -#: ../../whatsnew/3.4.rst:950 msgid "" "The *strict* argument of :class:`~html.parser.HTMLParser` is now deprecated. " "(Contributed by Ezio Melotti in :issue:`15114`.)" msgstr "" -#: ../../whatsnew/3.4.rst:955 msgid "http" msgstr "" -#: ../../whatsnew/3.4.rst:957 msgid "" ":meth:`~http.server.BaseHTTPRequestHandler.send_error` now accepts an " "optional additional *explain* parameter which can be used to provide an " "extended error description, overriding the hardcoded default if there is " -"one. This extended error description will be formatted using " -"the :attr:`~http.server.HTTP.error_message_format` attribute and sent as the " -"body of the error response. (Contributed by Karl Cow in :issue:`12921`.)" +"one. This extended error description will be formatted using the :attr:" +"`~http.server.BaseHTTPRequestHandler.error_message_format` attribute and " +"sent as the body of the error response. (Contributed by Karl Cow in :issue:" +"`12921`.)" msgstr "" -#: ../../whatsnew/3.4.rst:964 msgid "" "The :mod:`http.server` :ref:`command line interface ` now " "has a ``-b/--bind`` option that causes the server to listen on a specific " "address. (Contributed by Malte Swart in :issue:`17764`.)" msgstr "" -#: ../../whatsnew/3.4.rst:970 msgid "idlelib and IDLE" msgstr "" -#: ../../whatsnew/3.4.rst:972 msgid "" "Since idlelib implements the IDLE shell and editor and is not intended for " -"import by other programs, it gets improvements with every release. " -"See :file:`Lib/idlelib/NEWS.txt` for a cumulative list of changes since " -"3.3.0, as well as changes made in future 3.4.x releases. This file is also " -"available from the IDLE :menuselection:`Help --> About IDLE` dialog." +"import by other programs, it gets improvements with every release. See :file:" +"`Lib/idlelib/NEWS.txt` for a cumulative list of changes since 3.3.0, as well " +"as changes made in future 3.4.x releases. This file is also available from " +"the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" -#: ../../whatsnew/3.4.rst:980 msgid "importlib" msgstr "" -#: ../../whatsnew/3.4.rst:982 msgid "" -"The :class:`~importlib.abc.InspectLoader` ABC defines a new " -"method, :meth:`~importlib.abc.InspectLoader.source_to_code` that accepts " -"source data and a path and returns a code object. The default " -"implementation is equivalent to ``compile(data, path, 'exec', " -"dont_inherit=True)``. (Contributed by Eric Snow and Brett Cannon " -"in :issue:`15627`.)" +"The :class:`~importlib.abc.InspectLoader` ABC defines a new method, :meth:" +"`~importlib.abc.InspectLoader.source_to_code` that accepts source data and a " +"path and returns a code object. The default implementation is equivalent to " +"``compile(data, path, 'exec', dont_inherit=True)``. (Contributed by Eric " +"Snow and Brett Cannon in :issue:`15627`.)" msgstr "" -#: ../../whatsnew/3.4.rst:988 msgid "" ":class:`~importlib.abc.InspectLoader` also now has a default implementation " "for the :meth:`~importlib.abc.InspectLoader.get_code` method. However, it " @@ -1426,14 +1211,12 @@ msgid "" "performance reasons. (Contributed by Brett Cannon in :issue:`18072`.)" msgstr "" -#: ../../whatsnew/3.4.rst:993 msgid "" -"The :func:`~importlib.reload` function has been moved from :mod:`!imp` " -"to :mod:`importlib` as part of the :mod:`!imp` module deprecation. " -"(Contributed by Berker Peksag in :issue:`18193`.)" +"The :func:`~importlib.reload` function has been moved from :mod:`!imp` to :" +"mod:`importlib` as part of the :mod:`!imp` module deprecation. (Contributed " +"by Berker Peksag in :issue:`18193`.)" msgstr "" -#: ../../whatsnew/3.4.rst:997 msgid "" ":mod:`importlib.util` now has a :const:`~importlib.util.MAGIC_NUMBER` " "attribute providing access to the bytecode version number. This replaces " @@ -1441,44 +1224,37 @@ msgid "" "(Contributed by Brett Cannon in :issue:`18192`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1002 msgid "" -"New :mod:`importlib.util` " -"functions :func:`~importlib.util.cache_from_source` " -"and :func:`~importlib.util.source_from_cache` replace the same-named " -"functions in the deprecated :mod:`!imp` module. (Contributed by Brett " -"Cannon in :issue:`18194`.)" +"New :mod:`importlib.util` functions :func:`~importlib.util." +"cache_from_source` and :func:`~importlib.util.source_from_cache` replace the " +"same-named functions in the deprecated :mod:`!imp` module. (Contributed by " +"Brett Cannon in :issue:`18194`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1007 msgid "" "The :mod:`importlib` bootstrap :class:`.NamespaceLoader` now conforms to " -"the :class:`.InspectLoader` ABC, which means that ``runpy`` and ``python " -"-m`` can now be used with namespace packages. (Contributed by Brett Cannon " +"the :class:`.InspectLoader` ABC, which means that ``runpy`` and ``python -" +"m`` can now be used with namespace packages. (Contributed by Brett Cannon " "in :issue:`18058`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1012 msgid "" -":mod:`importlib.util` has a new " -"function :func:`~importlib.util.decode_source` that decodes source from " -"bytes using universal newline processing. This is useful for " -"implementing :meth:`.InspectLoader.get_source` methods." +":mod:`importlib.util` has a new function :func:`~importlib.util." +"decode_source` that decodes source from bytes using universal newline " +"processing. This is useful for implementing :meth:`.InspectLoader." +"get_source` methods." msgstr "" -#: ../../whatsnew/3.4.rst:1016 msgid "" -":class:`importlib.machinery.ExtensionFileLoader` now has " -"a :meth:`~importlib.machinery.ExtensionFileLoader.get_filename` method. " -"This was inadvertently omitted in the original implementation. (Contributed " -"by Eric Snow in :issue:`19152`.)" +":class:`importlib.machinery.ExtensionFileLoader` now has a :meth:`~importlib." +"machinery.ExtensionFileLoader.get_filename` method. This was inadvertently " +"omitted in the original implementation. (Contributed by Eric Snow in :issue:" +"`19152`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1023 msgid "inspect" msgstr "" -#: ../../whatsnew/3.4.rst:1025 msgid "" "The :mod:`inspect` module now offers a basic :ref:`command line interface " "` to quickly display source code and other information " @@ -1486,7 +1262,6 @@ msgid "" "Coghlan in :issue:`18626`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1030 msgid "" ":func:`~inspect.unwrap` makes it easy to unravel wrapper function chains " "created by :func:`functools.wraps` (and any other API that sets the " @@ -1494,161 +1269,134 @@ msgid "" "Urban, Aaron Iles and Nick Coghlan in :issue:`13266`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1035 msgid "" -"As part of the implementation of the new :mod:`enum` module, " -"the :mod:`inspect` module now has substantially better support for custom " -"``__dir__`` methods and dynamic class attributes provided through " -"metaclasses. (Contributed by Ethan Furman in :issue:`18929` " -"and :issue:`19030`.)" +"As part of the implementation of the new :mod:`enum` module, the :mod:" +"`inspect` module now has substantially better support for custom ``__dir__`` " +"methods and dynamic class attributes provided through metaclasses. " +"(Contributed by Ethan Furman in :issue:`18929` and :issue:`19030`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1041 msgid "" -":func:`~inspect.getfullargspec` and :func:`~inspect.getargspec` now use " -"the :func:`~inspect.signature` API. This allows them to support a much " -"broader range of callables, including those with ``__signature__`` " -"attributes, those with metadata provided by argument " -"clinic, :func:`functools.partial` objects and more. Note that, " -"unlike :func:`~inspect.signature`, these functions still ignore " -"``__wrapped__`` attributes, and report the already bound first argument for " -"bound methods, so it is still necessary to update your code to " +":func:`~inspect.getfullargspec` and :func:`!getargspec` now use the :func:" +"`~inspect.signature` API. This allows them to support a much broader range " +"of callables, including those with ``__signature__`` attributes, those with " +"metadata provided by argument clinic, :func:`functools.partial` objects and " +"more. Note that, unlike :func:`~inspect.signature`, these functions still " +"ignore ``__wrapped__`` attributes, and report the already bound first " +"argument for bound methods, so it is still necessary to update your code to " "use :func:`~inspect.signature` directly if those features are desired. " "(Contributed by Yury Selivanov in :issue:`17481`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1052 msgid "" ":func:`~inspect.signature` now supports duck types of CPython functions, " "which adds support for functions compiled with Cython. (Contributed by " "Stefan Behnel and Yury Selivanov in :issue:`17159`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1058 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.4.rst:1060 msgid "" -":mod:`ipaddress` was added to the standard library in Python 3.3 as " -"a :term:`provisional API`. With the release of Python 3.4, this " -"qualification has been removed: :mod:`ipaddress` is now considered a stable " -"API, covered by the normal standard library requirements to maintain " -"backwards compatibility." +":mod:`ipaddress` was added to the standard library in Python 3.3 as a :term:" +"`provisional API`. With the release of Python 3.4, this qualification has " +"been removed: :mod:`ipaddress` is now considered a stable API, covered by " +"the normal standard library requirements to maintain backwards compatibility." msgstr "" -#: ../../whatsnew/3.4.rst:1066 msgid "" "A new :attr:`~ipaddress.IPv4Address.is_global` property is ``True`` if an " -"address is globally routeable. (Contributed by Peter Moody " -"in :issue:`17400`.)" +"address is globally routeable. (Contributed by Peter Moody in :issue:" +"`17400`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1072 msgid "logging" msgstr "" -#: ../../whatsnew/3.4.rst:1074 msgid "" "The :class:`~logging.handlers.TimedRotatingFileHandler` has a new *atTime* " "parameter that can be used to specify the time of day when rollover should " "happen. (Contributed by Ronald Oussoren in :issue:`9556`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1078 msgid "" -":class:`~logging.handlers.SocketHandler` " -"and :class:`~logging.handlers.DatagramHandler` now support Unix domain " -"sockets (by setting *port* to ``None``). (Contributed by Vinay Sajip in " -"commit ce46195b56a9.)" +":class:`~logging.handlers.SocketHandler` and :class:`~logging.handlers." +"DatagramHandler` now support Unix domain sockets (by setting *port* to " +"``None``). (Contributed by Vinay Sajip in commit ce46195b56a9.)" msgstr "" -#: ../../whatsnew/3.4.rst:1083 msgid "" -":func:`~logging.config.fileConfig` now accepts " -"a :class:`configparser.RawConfigParser` subclass instance for the *fname* " -"parameter. This facilitates using a configuration file when logging " -"configuration is just a part of the overall application configuration, or " -"where the application modifies the configuration before passing it " -"to :func:`~logging.config.fileConfig`. (Contributed by Vinay Sajip " -"in :issue:`16110`.)" +":func:`~logging.config.fileConfig` now accepts a :class:`configparser." +"RawConfigParser` subclass instance for the *fname* parameter. This " +"facilitates using a configuration file when logging configuration is just a " +"part of the overall application configuration, or where the application " +"modifies the configuration before passing it to :func:`~logging.config." +"fileConfig`. (Contributed by Vinay Sajip in :issue:`16110`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1091 msgid "" -"Logging configuration data received from a socket via " -"the :func:`logging.config.listen` function can now be validated before being " -"processed by supplying a verification function as the argument to the new " -"*verify* keyword argument. (Contributed by Vinay Sajip in :issue:`15452`.)" +"Logging configuration data received from a socket via the :func:`logging." +"config.listen` function can now be validated before being processed by " +"supplying a verification function as the argument to the new *verify* " +"keyword argument. (Contributed by Vinay Sajip in :issue:`15452`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1100 msgid "marshal" msgstr "" -#: ../../whatsnew/3.4.rst:1102 msgid "" "The default :mod:`marshal` version has been bumped to 3. The code " "implementing the new version restores the Python2 behavior of recording only " "one copy of interned strings and preserving the interning on " "deserialization, and extends this \"one copy\" ability to any object type " -"(including handling recursive references). This reduces both the size of " -"``.pyc`` files and the amount of memory a module occupies in memory when it " -"is loaded from a ``.pyc`` (or ``.pyo``) file. (Contributed by Kristján " -"Valur Jónsson in :issue:`16475`, with additional speedups by Antoine Pitrou " -"in :issue:`19219`.)" +"(including handling recursive references). This reduces both the size of ``." +"pyc`` files and the amount of memory a module occupies in memory when it is " +"loaded from a ``.pyc`` (or ``.pyo``) file. (Contributed by Kristján Valur " +"Jónsson in :issue:`16475`, with additional speedups by Antoine Pitrou in :" +"issue:`19219`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1113 msgid "mmap" msgstr "" -#: ../../whatsnew/3.4.rst:1115 msgid "" "mmap objects are now :ref:`weakly referenceable `. (Contributed " "by Valerie Lambert in :issue:`4885`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1120 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.4.rst:1124 msgid "" "On Unix two new :ref:`start methods `, " -"``spawn`` and ``forkserver``, have been added for starting processes " -"using :mod:`multiprocessing`. These make the mixing of processes with " -"threads more robust, and the ``spawn`` method matches the semantics that " -"multiprocessing has always used on Windows. New " -"function :func:`~multiprocessing.get_all_start_methods` reports all start " -"methods available on the platform, :func:`~multiprocessing.get_start_method` " -"reports the current start method, " +"``spawn`` and ``forkserver``, have been added for starting processes using :" +"mod:`multiprocessing`. These make the mixing of processes with threads more " +"robust, and the ``spawn`` method matches the semantics that multiprocessing " +"has always used on Windows. New function :func:`~multiprocessing." +"get_all_start_methods` reports all start methods available on the platform, :" +"func:`~multiprocessing.get_start_method` reports the current start method, " "and :func:`~multiprocessing.set_start_method` sets the start method. " "(Contributed by Richard Oudkerk in :issue:`8713`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1134 msgid "" ":mod:`multiprocessing` also now has the concept of a ``context``, which " -"determines how child processes are created. New " -"function :func:`~multiprocessing.get_context` returns a context that uses a " -"specified start method. It has the same API as the :mod:`multiprocessing` " -"module itself, so you can use it to " -"create :class:`~multiprocessing.pool.Pool`\\ s and other objects that will " -"operate within that context. This allows a framework and an application or " -"different parts of the same application to use multiprocessing without " -"interfering with each other. (Contributed by Richard Oudkerk " -"in :issue:`18999`.)" +"determines how child processes are created. New function :func:" +"`~multiprocessing.get_context` returns a context that uses a specified start " +"method. It has the same API as the :mod:`multiprocessing` module itself, so " +"you can use it to create :class:`~multiprocessing.pool.Pool`\\ s and other " +"objects that will operate within that context. This allows a framework and " +"an application or different parts of the same application to use " +"multiprocessing without interfering with each other. (Contributed by " +"Richard Oudkerk in :issue:`18999`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1144 msgid "" "Except when using the old *fork* start method, child processes no longer " -"inherit unneeded handles/file descriptors from their parents (part " -"of :issue:`8713`)." +"inherit unneeded handles/file descriptors from their parents (part of :issue:" +"`8713`)." msgstr "" -#: ../../whatsnew/3.4.rst:1148 msgid "" ":mod:`multiprocessing` now relies on :mod:`runpy` (which implements the ``-" "m`` switch) to initialise ``__main__`` appropriately in child processes when " @@ -1658,11 +1406,9 @@ msgid "" "(Contributed by Nick Coghlan in :issue:`19946`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1157 msgid "operator" msgstr "" -#: ../../whatsnew/3.4.rst:1159 msgid "" "New function :func:`~operator.length_hint` provides an implementation of the " "specification for how the :meth:`~object.__length_hint__` special method " @@ -1670,63 +1416,54 @@ msgid "" "language feature. (Contributed by Armin Ronacher in :issue:`16148`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1164 msgid "" "There is now a pure-python version of the :mod:`operator` module available " "for reference and for use by alternate implementations of Python. " "(Contributed by Zachary Ware in :issue:`16694`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1170 msgid "os" msgstr "" -#: ../../whatsnew/3.4.rst:1172 msgid "" "There are new functions to get and set the :ref:`inheritable flag " -"` of a file descriptor " -"(:func:`os.get_inheritable`, :func:`os.set_inheritable`) or a Windows handle " -"(:func:`os.get_handle_inheritable`, :func:`os.set_handle_inheritable`)." +"` of a file descriptor (:func:`os.get_inheritable`, :func:" +"`os.set_inheritable`) or a Windows handle (:func:`os." +"get_handle_inheritable`, :func:`os.set_handle_inheritable`)." msgstr "" -#: ../../whatsnew/3.4.rst:1177 msgid "" "New function :func:`~os.cpu_count` reports the number of CPUs available on " "the platform on which Python is running (or ``None`` if the count can't be " "determined). The :func:`multiprocessing.cpu_count` function is now " "implemented in terms of this function). (Contributed by Trent Nelson, " -"Yogesh Chaudhari, Victor Stinner, and Charles-François Natali " -"in :issue:`17914`.)" +"Yogesh Chaudhari, Victor Stinner, and Charles-François Natali in :issue:" +"`17914`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1183 msgid "" -":func:`os.path.samestat` is now available on the Windows platform (and " -"the :func:`os.path.samefile` implementation is now shared between Unix and " +":func:`os.path.samestat` is now available on the Windows platform (and the :" +"func:`os.path.samefile` implementation is now shared between Unix and " "Windows). (Contributed by Brian Curtin in :issue:`11939`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1187 msgid "" ":func:`os.path.ismount` now recognizes volumes mounted below a drive root on " "Windows. (Contributed by Tim Golden in :issue:`9035`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1190 msgid "" -":func:`os.open` supports two new flags on platforms that provide " -"them, :const:`~os.O_PATH` (un-opened file descriptor), " -"and :const:`~os.O_TMPFILE` (unnamed temporary file; as of 3.4.0 release " -"available only on Linux systems with a kernel version of 3.11 or newer that " -"have uapi headers). (Contributed by Christian Heimes in :issue:`18673` and " -"Benjamin Peterson, respectively.)" +":func:`os.open` supports two new flags on platforms that provide them, :" +"const:`~os.O_PATH` (un-opened file descriptor), and :const:`~os.O_TMPFILE` " +"(unnamed temporary file; as of 3.4.0 release available only on Linux systems " +"with a kernel version of 3.11 or newer that have uapi headers). " +"(Contributed by Christian Heimes in :issue:`18673` and Benjamin Peterson, " +"respectively.)" msgstr "" -#: ../../whatsnew/3.4.rst:1198 msgid "pdb" msgstr "" -#: ../../whatsnew/3.4.rst:1200 msgid "" ":mod:`pdb` has been enhanced to handle generators, :keyword:`yield`, and " "``yield from`` in a more useful fashion. This is especially helpful when " @@ -1734,7 +1471,6 @@ msgid "" "Xavier de Gaye in :issue:`16596`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1205 msgid "" "The ``print`` command has been removed from :mod:`pdb`, restoring access to " "the Python :func:`print` function from the pdb command line. Python2's " @@ -1747,130 +1483,108 @@ msgid "" "(Contributed by Connor Osborn in :issue:`18764`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1219 msgid "pickle" msgstr "" -#: ../../whatsnew/3.4.rst:1221 msgid "" ":mod:`pickle` now supports (but does not use by default) a new pickle " "protocol, protocol 4. This new protocol addresses a number of issues that " "were present in previous protocols, such as the serialization of nested " -"classes, very large strings and containers, and classes " -"whose :meth:`__new__` method takes keyword-only arguments. It also provides " -"some efficiency improvements." +"classes, very large strings and containers, and classes whose :meth:`~object." +"__new__` method takes keyword-only arguments. It also provides some " +"efficiency improvements." msgstr "" -#: ../../whatsnew/3.4.rst:1229 msgid ":pep:`3154` -- Pickle protocol 4" msgstr "" -#: ../../whatsnew/3.4.rst:1230 msgid "PEP written by Antoine Pitrou and implemented by Alexandre Vassalotti." msgstr "" -#: ../../whatsnew/3.4.rst:1234 msgid "plistlib" msgstr "" -#: ../../whatsnew/3.4.rst:1236 msgid "" ":mod:`plistlib` now has an API that is similar to the standard pattern for " -"stdlib serialization protocols, with " -"new :func:`~plistlib.load`, :func:`~plistlib.dump`, :func:`~plistlib.loads`, " -"and :func:`~plistlib.dumps` functions. (The older API is now deprecated.) " -"In addition to the already supported XML plist format " -"(:const:`~plistlib.FMT_XML`), it also now supports the binary plist format " -"(:const:`~plistlib.FMT_BINARY`). (Contributed by Ronald Oussoren and others " -"in :issue:`14455`.)" +"stdlib serialization protocols, with new :func:`~plistlib.load`, :func:" +"`~plistlib.dump`, :func:`~plistlib.loads`, and :func:`~plistlib.dumps` " +"functions. (The older API is now deprecated.) In addition to the already " +"supported XML plist format (:const:`~plistlib.FMT_XML`), it also now " +"supports the binary plist format (:const:`~plistlib.FMT_BINARY`). " +"(Contributed by Ronald Oussoren and others in :issue:`14455`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1246 msgid "poplib" msgstr "" -#: ../../whatsnew/3.4.rst:1248 msgid "" "Two new methods have been added to :mod:`poplib`: :meth:`~poplib.POP3.capa`, " -"which returns the list of capabilities advertised by the POP server, " -"and :meth:`~poplib.POP3.stls`, which switches a clear-text POP3 session into " -"an encrypted POP3 session if the POP server supports it. (Contributed by " +"which returns the list of capabilities advertised by the POP server, and :" +"meth:`~poplib.POP3.stls`, which switches a clear-text POP3 session into an " +"encrypted POP3 session if the POP server supports it. (Contributed by " "Lorenzo Catucci in :issue:`4473`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1256 msgid "pprint" msgstr "" -#: ../../whatsnew/3.4.rst:1258 msgid "" -"The :mod:`pprint` module's :class:`~pprint.PrettyPrinter` class and " -"its :func:`~pprint.pformat`, and :func:`~pprint.pprint` functions have a new " +"The :mod:`pprint` module's :class:`~pprint.PrettyPrinter` class and its :" +"func:`~pprint.pformat`, and :func:`~pprint.pprint` functions have a new " "option, *compact*, that controls how the output is formatted. Currently " "setting *compact* to ``True`` means that sequences will be printed with as " "many sequence elements as will fit within *width* on each (indented) line. " "(Contributed by Serhiy Storchaka in :issue:`19132`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1265 msgid "" "Long strings are now wrapped using Python's normal line continuation " "syntax. (Contributed by Antoine Pitrou in :issue:`17150`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1270 msgid "pty" msgstr "" -#: ../../whatsnew/3.4.rst:1272 msgid "" ":func:`pty.spawn` now returns the status value from :func:`os.waitpid` on " "the child process, instead of ``None``. (Contributed by Gregory P. Smith.)" msgstr "" -#: ../../whatsnew/3.4.rst:1277 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.4.rst:1279 msgid "" -"The :mod:`pydoc` module is now based directly on " -"the :func:`inspect.signature` introspection API, allowing it to provide " -"signature information for a wider variety of callable objects. This change " -"also means that ``__wrapped__`` attributes are now taken into account when " -"displaying help information. (Contributed by Larry Hastings " -"in :issue:`19674`.)" +"The :mod:`pydoc` module is now based directly on the :func:`inspect." +"signature` introspection API, allowing it to provide signature information " +"for a wider variety of callable objects. This change also means that " +"``__wrapped__`` attributes are now taken into account when displaying help " +"information. (Contributed by Larry Hastings in :issue:`19674`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1285 msgid "" "The :mod:`pydoc` module no longer displays the ``self`` parameter for " "already bound methods. Instead, it aims to always display the exact current " -"signature of the supplied callable. (Contributed by Larry Hastings " -"in :issue:`20710`.)" +"signature of the supplied callable. (Contributed by Larry Hastings in :" +"issue:`20710`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1290 msgid "" "In addition to the changes that have been made to :mod:`pydoc` directly, its " "handling of custom ``__dir__`` methods and various descriptor behaviours has " -"also been improved substantially by the underlying changes in " -"the :mod:`inspect` module." +"also been improved substantially by the underlying changes in the :mod:" +"`inspect` module." msgstr "" -#: ../../whatsnew/3.4.rst:1295 msgid "" "As the :func:`help` builtin is based on :mod:`pydoc`, the above changes also " "affect the behaviour of :func:`help`." msgstr "" -#: ../../whatsnew/3.4.rst:1300 msgid "re" msgstr "" -#: ../../whatsnew/3.4.rst:1302 msgid "" -"New :func:`~re.fullmatch` function and :meth:`.regex.fullmatch` method " +"New :func:`~re.fullmatch` function and :meth:`.Pattern.fullmatch` method " "anchor the pattern at both ends of the string to match. This provides a way " "to be explicit about the goal of the match, which avoids a class of subtle " "bugs where ``$`` characters get lost during code changes or the addition of " @@ -1878,7 +1592,6 @@ msgid "" "Barnett in :issue:`16203`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1309 msgid "" "The repr of :ref:`regex objects ` now includes the pattern and " "the flags; the repr of :ref:`match objects ` now includes the " @@ -1886,11 +1599,9 @@ msgid "" "Lopes Tavares and Serhiy Storchaka in :issue:`13592` and :issue:`17087`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1317 msgid "resource" msgstr "" -#: ../../whatsnew/3.4.rst:1319 msgid "" "New :func:`~resource.prlimit` function, available on Linux platforms with a " "kernel version of 2.6.36 or later and glibc of 2.13 or later, provides the " @@ -1898,28 +1609,23 @@ msgid "" "making the call. (Contributed by Christian Heimes in :issue:`16595`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1324 msgid "" "On Linux kernel version 2.6.36 or later, there are also some new Linux " -"specific " -"constants: :const:`~resource.RLIMIT_MSGQUEUE`, :const:`~resource.RLIMIT_NICE`, :const:`~resource.RLIMIT_RTPRIO`, :const:`~resource.RLIMIT_RTTIME`, " -"and :const:`~resource.RLIMIT_SIGPENDING`. (Contributed by Christian Heimes " -"in :issue:`19324`.)" +"specific constants: :const:`~resource.RLIMIT_MSGQUEUE`, :const:`~resource." +"RLIMIT_NICE`, :const:`~resource.RLIMIT_RTPRIO`, :const:`~resource." +"RLIMIT_RTTIME`, and :const:`~resource.RLIMIT_SIGPENDING`. (Contributed by " +"Christian Heimes in :issue:`19324`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1330 msgid "" -"On FreeBSD version 9 and later, there some new FreeBSD specific " -"constants: :const:`~resource.RLIMIT_SBSIZE`, :const:`~resource.RLIMIT_SWAP`, " -"and :const:`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa " -"in :issue:`19343`.)" +"On FreeBSD version 9 and later, there some new FreeBSD specific constants: :" +"const:`~resource.RLIMIT_SBSIZE`, :const:`~resource.RLIMIT_SWAP`, and :const:" +"`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa in :issue:`19343`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1337 msgid "select" msgstr "" -#: ../../whatsnew/3.4.rst:1339 msgid "" ":class:`~select.epoll` objects now support the context management protocol. " "When used in a :keyword:`with` statement, the :meth:`~select.epoll.close` " @@ -1927,56 +1633,46 @@ msgid "" "by Serhiy Storchaka in :issue:`16488`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1344 msgid "" ":class:`~select.devpoll` objects now have :meth:`~select.devpoll.fileno` " -"and :meth:`~select.devpoll.close` methods, as well as a new " -"attribute :attr:`~select.devpoll.closed`. (Contributed by Victor Stinner " -"in :issue:`18794`.)" +"and :meth:`~select.devpoll.close` methods, as well as a new attribute :attr:" +"`~select.devpoll.closed`. (Contributed by Victor Stinner in :issue:`18794`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1351 msgid "shelve" msgstr "" -#: ../../whatsnew/3.4.rst:1353 msgid "" ":class:`~shelve.Shelf` instances may now be used in :keyword:`with` " "statements, and will be automatically closed at the end of the :keyword:`!" "with` block. (Contributed by Filip Gruszczyński in :issue:`13896`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1359 msgid "shutil" msgstr "" -#: ../../whatsnew/3.4.rst:1361 msgid "" ":func:`~shutil.copyfile` now raises a specific :exc:`~shutil.Error` " "subclass, :exc:`~shutil.SameFileError`, when the source and destination are " "the same file, which allows an application to take appropriate action on " -"this specific error. (Contributed by Atsuo Ishimoto and Hynek Schlawack " -"in :issue:`1492704`.)" +"this specific error. (Contributed by Atsuo Ishimoto and Hynek Schlawack in :" +"issue:`1492704`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1369 msgid "smtpd" msgstr "" -#: ../../whatsnew/3.4.rst:1371 msgid "" "The :class:`!SMTPServer` and :class:`!SMTPChannel` classes now accept a " "*map* keyword argument which, if specified, is passed in to :class:`!" "asynchat.async_chat` as its *map* argument. This allows an application to " -"avoid affecting the global socket map. (Contributed by Vinay Sajip " -"in :issue:`11959`.)" +"avoid affecting the global socket map. (Contributed by Vinay Sajip in :" +"issue:`11959`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1379 msgid "smtplib" msgstr "" -#: ../../whatsnew/3.4.rst:1381 msgid "" ":exc:`~smtplib.SMTPException` is now a subclass of :exc:`OSError`, which " "allows both socket level errors and SMTP protocol level errors to be caught " @@ -1984,45 +1680,37 @@ msgid "" "occurred. (Contributed by Ned Jackson Lovely in :issue:`2118`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1388 msgid "socket" msgstr "" -#: ../../whatsnew/3.4.rst:1390 msgid "" "The socket module now supports the :const:`~socket.CAN_BCM` protocol on " "platforms that support it. (Contributed by Brian Thorne in :issue:`15359`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1393 msgid "" "Socket objects have new methods to get or set their :ref:`inheritable flag " -"`, :meth:`~socket.socket.get_inheritable` " -"and :meth:`~socket.socket.set_inheritable`." +"`, :meth:`~socket.socket.get_inheritable` and :meth:`~socket." +"socket.set_inheritable`." msgstr "" -#: ../../whatsnew/3.4.rst:1397 msgid "" "The ``socket.AF_*`` and ``socket.SOCK_*`` constants are now enumeration " "values using the new :mod:`enum` module. This allows meaningful names to be " "printed during debugging, instead of integer \"magic numbers\"." msgstr "" -#: ../../whatsnew/3.4.rst:1401 msgid "The :const:`~socket.AF_LINK` constant is now available on BSD and OSX." msgstr "" -#: ../../whatsnew/3.4.rst:1403 msgid "" ":func:`~socket.inet_pton` and :func:`~socket.inet_ntop` are now supported on " "Windows. (Contributed by Atsuo Ishimoto in :issue:`7171`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1408 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.4.rst:1410 msgid "" "A new boolean parameter to the :func:`~sqlite3.connect` function, *uri*, can " "be used to indicate that the *database* parameter is a ``uri`` (see the " @@ -2030,11 +1718,9 @@ msgid "" "(Contributed by poq in :issue:`13773`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1417 msgid "ssl" msgstr "" -#: ../../whatsnew/3.4.rst:1421 msgid "" ":data:`~ssl.PROTOCOL_TLSv1_1` and :data:`~ssl.PROTOCOL_TLSv1_2` (TLSv1.1 and " "TLSv1.2 support) have been added; support for these protocols is only " @@ -2042,7 +1728,6 @@ msgid "" "Michele Orrù and Antoine Pitrou in :issue:`16692`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1428 msgid "" "New function :func:`~ssl.create_default_context` provides a standard way to " "obtain an :class:`~ssl.SSLContext` whose settings are intended to be a " @@ -2050,149 +1735,125 @@ msgid "" "more stringent than the defaults provided by the :class:`~ssl.SSLContext` " "constructor, and may be adjusted in the future, without prior deprecation, " "if best-practice security requirements change. The new recommended best " -"practice for using stdlib libraries that support SSL is to " -"use :func:`~ssl.create_default_context` to obtain " -"an :class:`~ssl.SSLContext` object, modify it if needed, and then pass it as " -"the *context* argument of the appropriate stdlib API. (Contributed by " -"Christian Heimes in :issue:`19689`.)" +"practice for using stdlib libraries that support SSL is to use :func:`~ssl." +"create_default_context` to obtain an :class:`~ssl.SSLContext` object, modify " +"it if needed, and then pass it as the *context* argument of the appropriate " +"stdlib API. (Contributed by Christian Heimes in :issue:`19689`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1440 msgid "" -":class:`~ssl.SSLContext` " -"method :meth:`~ssl.SSLContext.load_verify_locations` accepts a new optional " -"argument *cadata*, which can be used to provide PEM or DER encoded " -"certificates directly via strings or bytes, respectively. (Contributed by " -"Christian Heimes in :issue:`18138`.)" +":class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." +"load_verify_locations` accepts a new optional argument *cadata*, which can " +"be used to provide PEM or DER encoded certificates directly via strings or " +"bytes, respectively. (Contributed by Christian Heimes in :issue:`18138`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1445 msgid "" "New function :func:`~ssl.get_default_verify_paths` returns a named tuple of " -"the paths and environment variables that " -"the :meth:`~ssl.SSLContext.set_default_verify_paths` method uses to set " -"OpenSSL's default ``cafile`` and ``capath``. This can be an aid in " -"debugging default verification issues. (Contributed by Christian Heimes " -"in :issue:`18143`.)" +"the paths and environment variables that the :meth:`~ssl.SSLContext." +"set_default_verify_paths` method uses to set OpenSSL's default ``cafile`` " +"and ``capath``. This can be an aid in debugging default verification " +"issues. (Contributed by Christian Heimes in :issue:`18143`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1452 msgid "" -":class:`~ssl.SSLContext` has a new " -"method, :meth:`~ssl.SSLContext.cert_store_stats`, that reports the number of " -"loaded ``X.509`` certs, ``X.509 CA`` certs, and certificate revocation lists " -"(``crl``\\ s), as well as a :meth:`~ssl.SSLContext.get_ca_certs` method that " -"returns a list of the loaded ``CA`` certificates. (Contributed by Christian " -"Heimes in :issue:`18147`.)" +":class:`~ssl.SSLContext` has a new method, :meth:`~ssl.SSLContext." +"cert_store_stats`, that reports the number of loaded ``X.509`` certs, " +"``X.509 CA`` certs, and certificate revocation lists (``crl``\\ s), as well " +"as a :meth:`~ssl.SSLContext.get_ca_certs` method that returns a list of the " +"loaded ``CA`` certificates. (Contributed by Christian Heimes in :issue:" +"`18147`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1459 msgid "" "If OpenSSL 0.9.8 or later is available, :class:`~ssl.SSLContext` has a new " "attribute :attr:`~ssl.SSLContext.verify_flags` that can be used to control " "the certificate verification process by setting it to some combination of " -"the new " -"constants :const:`~ssl.VERIFY_DEFAULT`, :const:`~ssl.VERIFY_CRL_CHECK_LEAF`, :const:`~ssl.VERIFY_CRL_CHECK_CHAIN`, " -"or :const:`~ssl.VERIFY_X509_STRICT`. OpenSSL does not do any CRL " -"verification by default. (Contributed by Christien Heimes in :issue:`8813`.)" +"the new constants :const:`~ssl.VERIFY_DEFAULT`, :const:`~ssl." +"VERIFY_CRL_CHECK_LEAF`, :const:`~ssl.VERIFY_CRL_CHECK_CHAIN`, or :const:" +"`~ssl.VERIFY_X509_STRICT`. OpenSSL does not do any CRL verification by " +"default. (Contributed by Christien Heimes in :issue:`8813`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1467 msgid "" -"New :class:`~ssl.SSLContext` " -"method :meth:`~ssl.SSLContext.load_default_certs` loads a set of default " -"\"certificate authority\" (CA) certificates from default locations, which " -"vary according to the platform. It can be used to load both TLS web server " -"authentication certificates (``purpose=``:data:`~ssl.Purpose.SERVER_AUTH`) " -"for a client to use to verify a server, and certificates for a server to use " -"in verifying client certificates " -"(``purpose=``:data:`~ssl.Purpose.CLIENT_AUTH`). (Contributed by Christian " -"Heimes in :issue:`19292`.)" +"New :class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." +"load_default_certs` loads a set of default \"certificate authority\" (CA) " +"certificates from default locations, which vary according to the platform. " +"It can be used to load both TLS web server authentication certificates " +"(``purpose=``:data:`~ssl.Purpose.SERVER_AUTH`) for a client to use to verify " +"a server, and certificates for a server to use in verifying client " +"certificates (``purpose=``:data:`~ssl.Purpose.CLIENT_AUTH`). (Contributed " +"by Christian Heimes in :issue:`19292`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1478 msgid "" -"Two new windows-only functions, :func:`~ssl.enum_certificates` " -"and :func:`~ssl.enum_crls` provide the ability to retrieve certificates, " -"certificate information, and CRLs from the Windows cert store. (Contributed " -"by Christian Heimes in :issue:`17134`.)" +"Two new windows-only functions, :func:`~ssl.enum_certificates` and :func:" +"`~ssl.enum_crls` provide the ability to retrieve certificates, certificate " +"information, and CRLs from the Windows cert store. (Contributed by " +"Christian Heimes in :issue:`17134`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1485 msgid "" -"Support for server-side SNI (Server Name Indication) using the " -"new :meth:`ssl.SSLContext.set_servername_callback` method. (Contributed by " -"Daniel Black in :issue:`8109`.)" +"Support for server-side SNI (Server Name Indication) using the new :meth:" +"`ssl.SSLContext.set_servername_callback` method. (Contributed by Daniel " +"Black in :issue:`8109`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1489 msgid "" "The dictionary returned by :meth:`.SSLSocket.getpeercert` contains " "additional ``X509v3`` extension items: ``crlDistributionPoints``, " -"``calIssuers``, and ``OCSP`` URIs. (Contributed by Christian Heimes " -"in :issue:`18379`.)" +"``calIssuers``, and ``OCSP`` URIs. (Contributed by Christian Heimes in :" +"issue:`18379`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1495 msgid "stat" msgstr "" -#: ../../whatsnew/3.4.rst:1497 msgid "" "The :mod:`stat` module is now backed by a C implementation in :mod:`!_stat`. " "A C implementation is required as most of the values aren't standardized and " "are platform-dependent. (Contributed by Christian Heimes in :issue:`11016`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1501 msgid "" -"The module supports new :mod:`~stat.ST_MODE` " -"flags, :mod:`~stat.S_IFDOOR`, :const:`~stat.S_IFPORT`, " -"and :const:`~stat.S_IFWHT`. (Contributed by Christian Hiemes " -"in :issue:`11016`.)" +"The module supports new :mod:`~stat.ST_MODE` flags, :mod:`~stat.S_IFDOOR`, :" +"const:`~stat.S_IFPORT`, and :const:`~stat.S_IFWHT`. (Contributed by " +"Christian Hiemes in :issue:`11016`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1507 msgid "struct" msgstr "" -#: ../../whatsnew/3.4.rst:1509 msgid "" -"New function :mod:`~struct.iter_unpack` and a " -"new :meth:`struct.Struct.iter_unpack` method on compiled formats provide " -"streamed unpacking of a buffer containing repeated instances of a given " -"format of data. (Contributed by Antoine Pitrou in :issue:`17804`.)" +"New function :mod:`~struct.iter_unpack` and a new :meth:`struct.Struct." +"iter_unpack` method on compiled formats provide streamed unpacking of a " +"buffer containing repeated instances of a given format of data. (Contributed " +"by Antoine Pitrou in :issue:`17804`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1516 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.4.rst:1518 msgid "" ":func:`~subprocess.check_output` now accepts an *input* argument that can be " "used to provide the contents of ``stdin`` for the command that is run. " "(Contributed by Zack Weinberg in :issue:`16624`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1522 msgid "" -":func:`~subprocess.getstatus` and :func:`~subprocess.getstatusoutput` now " +":func:`~subprocess.getoutput` and :func:`~subprocess.getstatusoutput` now " "work on Windows. This change was actually inadvertently made in 3.3.4. " "(Contributed by Tim Golden in :issue:`10197`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1528 msgid "sunau" msgstr "" -#: ../../whatsnew/3.4.rst:1530 msgid "" "The :meth:`!getparams` method now returns a namedtuple rather than a plain " "tuple. (Contributed by Claudiu Popa in :issue:`18901`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1533 msgid "" ":meth:`!sunau.open` now supports the context management protocol: when used " "in a :keyword:`with` block, the ``close`` method of the returned object will " @@ -2200,28 +1861,24 @@ msgid "" "Storchaka in :issue:`18878`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1538 msgid "" -":meth:`.AU_write.setsampwidth` now supports 24 bit samples, thus adding " +":meth:`!AU_write.setsampwidth` now supports 24 bit samples, thus adding " "support for writing 24 sample using the module. (Contributed by Serhiy " "Storchaka in :issue:`19261`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1548 msgid "sys" msgstr "" -#: ../../whatsnew/3.4.rst:1550 msgid "" "New function :func:`sys.getallocatedblocks` returns the current number of " "blocks allocated by the interpreter. (In CPython with the default ``--with-" -"pymalloc`` setting, this is allocations made through " -"the :c:func:`PyObject_Malloc` API.) This can be useful for tracking memory " -"leaks, especially if automated via a test suite. (Contributed by Antoine " -"Pitrou in :issue:`13390`.)" +"pymalloc`` setting, this is allocations made through the :c:func:" +"`PyObject_Malloc` API.) This can be useful for tracking memory leaks, " +"especially if automated via a test suite. (Contributed by Antoine Pitrou " +"in :issue:`13390`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1557 msgid "" "When the Python interpreter starts in :ref:`interactive mode `, it checks for an :data:`~sys.__interactivehook__` attribute " @@ -2231,29 +1888,25 @@ msgid "" "The :mod:`site` module :ref:`sets it ` to a function " "that enables tab completion and history saving (in :file:`~/.python-" "history`) if the platform supports :mod:`readline`. If you do not want this " -"(new) behavior, you can override it " -"in :envvar:`PYTHONSTARTUP`, :mod:`sitecustomize`, or :mod:`usercustomize` by " -"deleting this attribute from :mod:`sys` (or setting it to some other " -"callable). (Contributed by Éric Araujo and Antoine Pitrou in :issue:`5845`.)" +"(new) behavior, you can override it in :envvar:`PYTHONSTARTUP`, :mod:" +"`sitecustomize`, or :mod:`usercustomize` by deleting this attribute from :" +"mod:`sys` (or setting it to some other callable). (Contributed by Éric " +"Araujo and Antoine Pitrou in :issue:`5845`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1572 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.4.rst:1574 msgid "" "The :mod:`tarfile` module now supports a simple :ref:`tarfile-commandline` " "when called as a script directly or via ``-m``. This can be used to create " -"and extract tarfile archives. (Contributed by Berker Peksag " -"in :issue:`13477`.)" +"and extract tarfile archives. (Contributed by Berker Peksag in :issue:" +"`13477`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1580 msgid "textwrap" msgstr "" -#: ../../whatsnew/3.4.rst:1582 msgid "" "The :class:`~textwrap.TextWrapper` class has two new attributes/constructor " "arguments: :attr:`~textwrap.TextWrapper.max_lines`, which limits the number " @@ -2263,15 +1916,13 @@ msgid "" "convenience function :func:`~textwrap.shorten` collapses all of the " "whitespace in the input to single spaces and produces a single line of a " "given *width* that ends with the *placeholder* (by default, ``[...]``). " -"(Contributed by Antoine Pitrou and Serhiy Storchaka in :issue:`18585` " -"and :issue:`18725`.)" +"(Contributed by Antoine Pitrou and Serhiy Storchaka in :issue:`18585` and :" +"issue:`18725`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1594 msgid "threading" msgstr "" -#: ../../whatsnew/3.4.rst:1596 msgid "" "The :class:`~threading.Thread` object representing the main thread can be " "obtained from the new :func:`~threading.main_thread` function. In normal " @@ -2279,91 +1930,78 @@ msgid "" "started. (Contributed by Andrew Svetlov in :issue:`18882`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1603 msgid "traceback" msgstr "" -#: ../../whatsnew/3.4.rst:1605 msgid "" "A new :func:`traceback.clear_frames` function takes a traceback object and " "clears the local variables in all of the frames it references, reducing the " -"amount of memory consumed. (Contributed by Andrew Kuchling " -"in :issue:`1565525`.)" +"amount of memory consumed. (Contributed by Andrew Kuchling in :issue:" +"`1565525`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1612 msgid "types" msgstr "" -#: ../../whatsnew/3.4.rst:1614 msgid "" "A new :func:`~types.DynamicClassAttribute` descriptor provides a way to " "define an attribute that acts normally when looked up through an instance " "object, but which is routed to the *class* ``__getattr__`` when looked up " "through the class. This allows one to have properties active on a class, " -"and have virtual attributes on the class with the same name (see :mod:`Enum` " +"and have virtual attributes on the class with the same name (see :mod:`enum` " "for an example). (Contributed by Ethan Furman in :issue:`19030`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1623 msgid "urllib" msgstr "" -#: ../../whatsnew/3.4.rst:1625 msgid "" -":mod:`urllib.request` now supports ``data:`` URLs via " -"the :class:`~urllib.request.DataHandler` class. (Contributed by Mathias " -"Panzenböck in :issue:`16423`.)" +":mod:`urllib.request` now supports ``data:`` URLs via the :class:`~urllib." +"request.DataHandler` class. (Contributed by Mathias Panzenböck in :issue:" +"`16423`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1629 msgid "" "The http method that will be used by a :class:`~urllib.request.Request` " -"class can now be specified by setting " -"a :class:`~urllib.request.Request.method` class attribute on the subclass. " -"(Contributed by Jason R Coombs in :issue:`18978`.)" +"class can now be specified by setting a :class:`~urllib.request.Request." +"method` class attribute on the subclass. (Contributed by Jason R Coombs in :" +"issue:`18978`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1634 msgid "" -":class:`~urllib.request.Request` objects are now reusable: if " -"the :attr:`~urllib.request.Request.full_url` " -"or :attr:`~urllib.request.Request.data` attributes are modified, all " -"relevant internal properties are updated. This means, for example, that it " -"is now possible to use the same :class:`~urllib.request.Request` object in " -"more than one :meth:`.OpenerDirector.open` call with different *data* " -"arguments, or to modify a :class:`~urllib.request.Request`\\ 's ``url`` " -"rather than recomputing it from scratch. There is also a " -"new :meth:`~urllib.request.Request.remove_header` method that can be used to " -"remove headers from a :class:`~urllib.request.Request`. (Contributed by " -"Alexey Kachayev in :issue:`16464`, Daniel Wozniak in :issue:`17485`, and " -"Damien Brecht and Senthil Kumaran in :issue:`17272`.)" +":class:`~urllib.request.Request` objects are now reusable: if the :attr:" +"`~urllib.request.Request.full_url` or :attr:`~urllib.request.Request.data` " +"attributes are modified, all relevant internal properties are updated. This " +"means, for example, that it is now possible to use the same :class:`~urllib." +"request.Request` object in more than one :meth:`.OpenerDirector.open` call " +"with different *data* arguments, or to modify a :class:`~urllib.request." +"Request`\\ 's ``url`` rather than recomputing it from scratch. There is " +"also a new :meth:`~urllib.request.Request.remove_header` method that can be " +"used to remove headers from a :class:`~urllib.request.Request`. " +"(Contributed by Alexey Kachayev in :issue:`16464`, Daniel Wozniak in :issue:" +"`17485`, and Damien Brecht and Senthil Kumaran in :issue:`17272`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1647 msgid "" -":class:`~urllib.error.HTTPError` objects now have " -"a :attr:`~urllib.error.HTTPError.headers` attribute that provides access to " -"the HTTP response headers associated with the error. (Contributed by Berker " -"Peksag in :issue:`15701`.)" +":class:`~urllib.error.HTTPError` objects now have a :attr:`~urllib.error." +"HTTPError.headers` attribute that provides access to the HTTP response " +"headers associated with the error. (Contributed by Berker Peksag in :issue:" +"`15701`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1654 msgid "unittest" msgstr "" -#: ../../whatsnew/3.4.rst:1656 msgid "" -"The :class:`~unittest.TestCase` class has a new " -"method, :meth:`~unittest.TestCase.subTest`, that produces a context manager " -"whose :keyword:`with` block becomes a \"sub-test\". This context manager " -"allows a test method to dynamically generate subtests by, say, calling the " -"``subTest`` context manager inside a loop. A single test method can thereby " -"produce an indefinite number of separately identified and separately counted " -"tests, all of which will run even if one or more of them fail. For example::" +"The :class:`~unittest.TestCase` class has a new method, :meth:`~unittest." +"TestCase.subTest`, that produces a context manager whose :keyword:`with` " +"block becomes a \"sub-test\". This context manager allows a test method to " +"dynamically generate subtests by, say, calling the ``subTest`` context " +"manager inside a loop. A single test method can thereby produce an " +"indefinite number of separately identified and separately counted tests, all " +"of which will run even if one or more of them fail. For example::" msgstr "" -#: ../../whatsnew/3.4.rst:1664 msgid "" "class NumbersTest(unittest.TestCase):\n" " def test_even(self):\n" @@ -2372,7 +2010,6 @@ msgid "" " self.assertEqual(i % 2, 0)" msgstr "" -#: ../../whatsnew/3.4.rst:1670 msgid "" "will result in six subtests, each identified in the unittest verbose output " "with a label consisting of the variable name ``i`` and a particular value " @@ -2380,28 +2017,24 @@ msgid "" "version of this example. (Contributed by Antoine Pitrou in :issue:`16997`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1675 msgid "" ":func:`unittest.main` now accepts an iterable of test names for " "*defaultTest*, where previously it only accepted a single test name as a " "string. (Contributed by Jyrki Pulliainen in :issue:`15132`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1679 msgid "" "If :class:`~unittest.SkipTest` is raised during test discovery (that is, at " "the module level in the test file), it is now reported as a skip instead of " "an error. (Contributed by Zach Ware in :issue:`16935`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1683 msgid "" ":meth:`~unittest.TestLoader.discover` now sorts the discovered files to " "provide consistent test ordering. (Contributed by Martin Melin and Jeff " "Ramnani in :issue:`16709`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1687 msgid "" ":class:`~unittest.TestSuite` now drops references to tests as soon as the " "test has been run, if the test is successful. On Python interpreters that " @@ -2412,25 +2045,22 @@ msgid "" "Wardill, Matt McClure, and Andrew Svetlov in :issue:`11798`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1695 msgid "" "A new test assertion context-manager, :meth:`~unittest.TestCase.assertLogs`, " -"will ensure that a given block of code emits a log message using " -"the :mod:`logging` module. By default the message can come from any logger " -"and have a priority of ``INFO`` or higher, but both the logger name and an " +"will ensure that a given block of code emits a log message using the :mod:" +"`logging` module. By default the message can come from any logger and have " +"a priority of ``INFO`` or higher, but both the logger name and an " "alternative minimum logging level may be specified. The object returned by " "the context manager can be queried for the :class:`~logging.LogRecord`\\ s " "and/or formatted messages that were logged. (Contributed by Antoine Pitrou " "in :issue:`18937`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1704 msgid "" "Test discovery now works with namespace packages (Contributed by Claudiu " "Popa in :issue:`17457`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1707 msgid "" ":mod:`unittest.mock` objects now inspect their specification signatures when " "matching calls, which means an argument can now be matched by either " @@ -2438,72 +2068,60 @@ msgid "" "Pitrou in :issue:`17015`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1712 msgid "" -":func:`~mock.mock_open` objects now have ``readline`` and ``readlines`` " -"methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" +":func:`~unittest.mock.mock_open` objects now have ``readline`` and " +"``readlines`` methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1717 msgid "venv" msgstr "" -#: ../../whatsnew/3.4.rst:1719 msgid "" ":mod:`venv` now includes activation scripts for the ``csh`` and ``fish`` " "shells. (Contributed by Andrew Svetlov in :issue:`15417`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1722 msgid "" ":class:`~venv.EnvBuilder` and the :func:`~venv.create` convenience function " "take a new keyword argument *with_pip*, which defaults to ``False``, that " "controls whether or not :class:`~venv.EnvBuilder` ensures that ``pip`` is " -"installed in the virtual environment. (Contributed by Nick Coghlan " -"in :issue:`19552` as part of the :pep:`453` implementation.)" +"installed in the virtual environment. (Contributed by Nick Coghlan in :" +"issue:`19552` as part of the :pep:`453` implementation.)" msgstr "" -#: ../../whatsnew/3.4.rst:1730 msgid "wave" msgstr "" -#: ../../whatsnew/3.4.rst:1732 msgid "" -"The :meth:`~wave.getparams` method now returns a namedtuple rather than a " -"plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)" +"The :meth:`~wave.Wave_read.getparams` method now returns a namedtuple rather " +"than a plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1735 msgid "" ":meth:`wave.open` now supports the context management protocol. " "(Contributed by Claudiu Popa in :issue:`17616`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1738 msgid "" ":mod:`wave` can now :ref:`write output to unseekable files `. (Contributed by David Jones, Guilherme Polo, and Serhiy " "Storchaka in :issue:`5202`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1742 msgid "" -"The :meth:`~wave.Wave_write.writeframesraw` " -"and :meth:`~wave.Wave_write.writeframes` methods now accept any :term:`bytes-" -"like object`. (Contributed by Serhiy Storchaka in :issue:`8311`.)" +"The :meth:`~wave.Wave_write.writeframesraw` and :meth:`~wave.Wave_write." +"writeframes` methods now accept any :term:`bytes-like object`. (Contributed " +"by Serhiy Storchaka in :issue:`8311`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1748 msgid "weakref" msgstr "" -#: ../../whatsnew/3.4.rst:1750 msgid "" "New :class:`~weakref.WeakMethod` class simulates weak references to bound " "methods. (Contributed by Antoine Pitrou in :issue:`14631`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1753 msgid "" "New :class:`~weakref.finalize` class makes it possible to register a " "callback to be invoked when an object is garbage collected, without needing " @@ -2511,106 +2129,88 @@ msgid "" "(Contributed by Richard Oudkerk in :issue:`15528`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1758 msgid "" "The callback, if any, associated with a :class:`~weakref.ref` is now exposed " "via the :attr:`~weakref.ref.__callback__` attribute. (Contributed by Mark " "Dickinson in :issue:`17643`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1764 msgid "xml.etree" msgstr "" -#: ../../whatsnew/3.4.rst:1766 msgid "" "A new parser, :class:`~xml.etree.ElementTree.XMLPullParser`, allows a non-" -"blocking applications to parse XML documents. An example can be seen " -"at :ref:`elementtree-pull-parsing`. (Contributed by Antoine Pitrou " -"in :issue:`17741`.)" +"blocking applications to parse XML documents. An example can be seen at :" +"ref:`elementtree-pull-parsing`. (Contributed by Antoine Pitrou in :issue:" +"`17741`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1771 msgid "" "The :mod:`xml.etree.ElementTree` :func:`~xml.etree.ElementTree.tostring` " -"and :func:`~xml.etree.ElementTree.tostringlist` functions, and " -"the :class:`~xml.etree.ElementTree.ElementTree` :meth:`~xml.etree.ElementTree.ElementTree.write` " -"method, now have a *short_empty_elements* :ref:`keyword-only parameter " -"` providing control over whether elements with no " -"content are written in abbreviated (````) or expanded (````) form. (Contributed by Ariel Poliak and Serhiy Storchaka " -"in :issue:`14377`.)" +"and :func:`~xml.etree.ElementTree.tostringlist` functions, and the :class:" +"`~xml.etree.ElementTree.ElementTree` :meth:`~xml.etree.ElementTree." +"ElementTree.write` method, now have a *short_empty_elements* :ref:`keyword-" +"only parameter ` providing control over whether " +"elements with no content are written in abbreviated (````) or " +"expanded (````) form. (Contributed by Ariel Poliak and Serhiy " +"Storchaka in :issue:`14377`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1782 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.4.rst:1784 msgid "" -"The :meth:`~zipfile.PyZipFile.writepy` method of " -"the :class:`~zipfile.PyZipFile` class has a new *filterfunc* option that can " -"be used to control which directories and files are added to the archive. " -"For example, this could be used to exclude test files from the archive. " -"(Contributed by Christian Tismer in :issue:`19274`.)" +"The :meth:`~zipfile.PyZipFile.writepy` method of the :class:`~zipfile." +"PyZipFile` class has a new *filterfunc* option that can be used to control " +"which directories and files are added to the archive. For example, this " +"could be used to exclude test files from the archive. (Contributed by " +"Christian Tismer in :issue:`19274`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1790 msgid "" -"The *allowZip64* parameter to :class:`~zipfile.ZipFile` " -"and :class:`~zipfile.PyZipfile` is now ``True`` by default. (Contributed by " -"William Mallard in :issue:`17201`.)" +"The *allowZip64* parameter to :class:`~zipfile.ZipFile` and :class:`~zipfile." +"PyZipFile` is now ``True`` by default. (Contributed by William Mallard in :" +"issue:`17201`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1797 msgid "CPython Implementation Changes" msgstr "" -#: ../../whatsnew/3.4.rst:1803 msgid "PEP 445: Customization of CPython Memory Allocators" msgstr "" -#: ../../whatsnew/3.4.rst:1805 msgid "" ":pep:`445` adds new C level interfaces to customize memory allocation in the " "CPython interpreter." msgstr "" -#: ../../whatsnew/3.4.rst:1810 msgid ":pep:`445` -- Add new APIs to customize Python memory allocators" msgstr "" -#: ../../whatsnew/3.4.rst:1817 msgid "PEP 442: Safe Object Finalization" msgstr "" -#: ../../whatsnew/3.4.rst:1819 msgid "" ":pep:`442` removes the current limitations and quirks of object finalization " -"in CPython. With it, objects with :meth:`__del__` methods, as well as " -"generators with :keyword:`finally` clauses, can be finalized when they are " -"part of a reference cycle." +"in CPython. With it, objects with :meth:`~object.__del__` methods, as well " +"as generators with :keyword:`finally` clauses, can be finalized when they " +"are part of a reference cycle." msgstr "" -#: ../../whatsnew/3.4.rst:1824 msgid "" -"As part of this change, module globals are no longer forcibly set " -"to :const:`None` during interpreter shutdown in most cases, instead relying " -"on the normal operation of the cyclic garbage collector. This avoids a " -"whole class of interpreter-shutdown-time errors, usually involving " -"``__del__`` methods, that have plagued Python since the cyclic GC was first " -"introduced." +"As part of this change, module globals are no longer forcibly set to :const:" +"`None` during interpreter shutdown in most cases, instead relying on the " +"normal operation of the cyclic garbage collector. This avoids a whole class " +"of interpreter-shutdown-time errors, usually involving ``__del__`` methods, " +"that have plagued Python since the cyclic GC was first introduced." msgstr "" -#: ../../whatsnew/3.4.rst:1833 msgid ":pep:`442` -- Safe object finalization" msgstr "" -#: ../../whatsnew/3.4.rst:1840 msgid "PEP 456: Secure and Interchangeable Hash Algorithm" msgstr "" -#: ../../whatsnew/3.4.rst:1842 msgid "" ":pep:`456` follows up on earlier security fix work done on Python's hash " "algorithm to address certain DOS attacks to which public facing APIs backed " @@ -2622,18 +2222,15 @@ msgid "" "comparison with the older FNV algorithm are trivial." msgstr "" -#: ../../whatsnew/3.4.rst:1851 msgid "" "The PEP adds additional fields to the :data:`sys.hash_info` named tuple to " "describe the hash algorithm in use by the currently executing binary. " "Otherwise, the PEP does not alter any existing CPython APIs." msgstr "" -#: ../../whatsnew/3.4.rst:1859 msgid "PEP 436: Argument Clinic" msgstr "" -#: ../../whatsnew/3.4.rst:1861 msgid "" "\"Argument Clinic\" (:pep:`436`) is now part of the CPython build process " "and can be used to simplify the process of defining and maintaining accurate " @@ -2641,21 +2238,18 @@ msgid "" "in C." msgstr "" -#: ../../whatsnew/3.4.rst:1866 msgid "" "Some standard library extension modules have been converted to use Argument " "Clinic in Python 3.4, and :mod:`pydoc` and :mod:`inspect` have been updated " "accordingly." msgstr "" -#: ../../whatsnew/3.4.rst:1870 msgid "" "It is expected that signature metadata for programmatic introspection will " "be added to additional callables implemented in C as part of Python 3.4 " "maintenance releases." msgstr "" -#: ../../whatsnew/3.4.rst:1875 msgid "" "The Argument Clinic PEP is not fully up to date with the state of the " "implementation. This has been deemed acceptable by the release manager and " @@ -2663,26 +2257,21 @@ msgid "" "available as a public API for third party use in Python 3.4." msgstr "" -#: ../../whatsnew/3.4.rst:1882 msgid ":pep:`436` -- The Argument Clinic DSL" msgstr "" -#: ../../whatsnew/3.4.rst:1883 msgid "PEP written and implemented by Larry Hastings." msgstr "" -#: ../../whatsnew/3.4.rst:1887 msgid "Other Build and C API Changes" msgstr "" -#: ../../whatsnew/3.4.rst:1889 msgid "" "The new :c:func:`PyType_GetSlot` function has been added to the stable ABI, " "allowing retrieval of function pointers from named type slots when using the " "limited API. (Contributed by Martin von Löwis in :issue:`17162`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1893 msgid "" "The new :c:func:`!Py_SetStandardStreamEncoding` pre-initialization API " "allows applications embedding the CPython interpreter to reliably force a " @@ -2690,62 +2279,51 @@ msgid "" "by Bastien Montagne and Nick Coghlan in :issue:`16129`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1898 msgid "" "Most Python C APIs that don't mutate string arguments are now correctly " "marked as accepting ``const char *`` rather than ``char *``. (Contributed " "by Serhiy Storchaka in :issue:`1772673`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1902 msgid "" "A new shell version of ``python-config`` can be used even when a python " "interpreter is not available (for example, in cross compilation scenarios)." msgstr "" -#: ../../whatsnew/3.4.rst:1905 msgid "" ":c:func:`PyUnicode_FromFormat` now supports width and precision " "specifications for ``%s``, ``%A``, ``%U``, ``%V``, ``%S``, and ``%R``. " "(Contributed by Ysj Ray and Victor Stinner in :issue:`7330`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1909 msgid "" -"New function :c:func:`PyStructSequence_InitType2` supplements the " -"existing :c:func:`PyStructSequence_InitType` function. The difference is " -"that it returns ``0`` on success and ``-1`` on failure." +"New function :c:func:`PyStructSequence_InitType2` supplements the existing :" +"c:func:`PyStructSequence_InitType` function. The difference is that it " +"returns ``0`` on success and ``-1`` on failure." msgstr "" -#: ../../whatsnew/3.4.rst:1913 msgid "" "The CPython source can now be compiled using the address sanity checking " "features of recent versions of GCC and clang: the false alarms in the small " -"object allocator have been silenced. (Contributed by Dhiru Kholia " -"in :issue:`18596`.)" +"object allocator have been silenced. (Contributed by Dhiru Kholia in :issue:" +"`18596`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1918 msgid "" -"The Windows build now uses `Address Space Layout Randomization `_ and `Data " -"Execution Prevention `_. (Contributed by Christian Heimes " -"in :issue:`16632`.)" +"The Windows build now uses `Address Space Layout Randomization `_ and `Data Execution " +"Prevention `_. " +"(Contributed by Christian Heimes in :issue:`16632`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1923 msgid "" -"New function :c:func:`PyObject_LengthHint` is the C API equivalent " -"of :func:`operator.length_hint`. (Contributed by Armin Ronacher " -"in :issue:`16148`.)" +"New function :c:func:`PyObject_LengthHint` is the C API equivalent of :func:" +"`operator.length_hint`. (Contributed by Armin Ronacher in :issue:`16148`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1931 msgid "Other Improvements" msgstr "" -#: ../../whatsnew/3.4.rst:1935 msgid "" "The :ref:`python ` command has a new :ref:`option `, ``-I``, which causes it to run in \"isolated mode\", " @@ -2759,7 +2337,6 @@ msgid "" "scripts. (Contributed by Christian Heimes in :issue:`16499`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1946 msgid "" "Tab-completion is now enabled by default in the interactive interpreter on " "systems that support :mod:`readline`. History is also enabled by default, " @@ -2767,7 +2344,6 @@ msgid "" "(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1951 msgid "" "Invoking the Python interpreter with ``--version`` now outputs the version " "to standard output instead of standard error (:issue:`18338`). Similar " @@ -2775,15 +2351,13 @@ msgid "" "have script-like invocation capabilities (:issue:`18922`)." msgstr "" -#: ../../whatsnew/3.4.rst:1956 msgid "" "The CPython Windows installer now adds ``.py`` to the :envvar:`PATHEXT` " "variable when extensions are registered, allowing users to run a python " -"script at the windows command prompt by just typing its name without the " -"``.py`` extension. (Contributed by Paul Moore in :issue:`18569`.)" +"script at the windows command prompt by just typing its name without the ``." +"py`` extension. (Contributed by Paul Moore in :issue:`18569`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1961 msgid "" "A new ``make`` target `coverage-report `_ will build python, run " @@ -2791,55 +2365,46 @@ msgid "" "using ``gcov`` and `lcov `_." msgstr "" -#: ../../whatsnew/3.4.rst:1967 msgid "" "The ``-R`` option to the :ref:`python regression test suite ` now " -"also checks for memory allocation leaks, " -"using :func:`sys.getallocatedblocks`. (Contributed by Antoine Pitrou " -"in :issue:`13390`.)" +"also checks for memory allocation leaks, using :func:`sys." +"getallocatedblocks`. (Contributed by Antoine Pitrou in :issue:`13390`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1972 msgid "``python -m`` now works with namespace packages." msgstr "" -#: ../../whatsnew/3.4.rst:1974 msgid "" "The :mod:`stat` module is now implemented in C, which means it gets the " "values for its constants from the C header files, instead of having the " "values hard-coded in the python module as was previously the case." msgstr "" -#: ../../whatsnew/3.4.rst:1978 msgid "" "Loading multiple python modules from a single OS module (``.so``, ``.dll``) " "now works correctly (previously it silently returned the first python module " "in the file). (Contributed by Václav Šmilauer in :issue:`16421`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1982 msgid "" "A new opcode, :opcode:`!LOAD_CLASSDEREF`, has been added to fix a bug in the " "loading of free variables in class bodies that could be triggered by certain " -"uses of :ref:`__prepare__ `. (Contributed by Benjamin Peterson " -"in :issue:`17853`.)" +"uses of :ref:`__prepare__ `. (Contributed by Benjamin Peterson in :" +"issue:`17853`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1987 msgid "" "A number of MemoryError-related crashes were identified and fixed by Victor " -"Stinner using his :pep:`445`-based ``pyfailmalloc`` tool " -"(:issue:`18408`, :issue:`18520`)." +"Stinner using his :pep:`445`-based ``pyfailmalloc`` tool (:issue:`18408`, :" +"issue:`18520`)." msgstr "" -#: ../../whatsnew/3.4.rst:1991 msgid "" "The ``pyvenv`` command now accepts a ``--copies`` option to use copies " "rather than symlinks even on systems where symlinks are the default. " "(Contributed by Vinay Sajip in :issue:`18807`.)" msgstr "" -#: ../../whatsnew/3.4.rst:1995 msgid "" "The ``pyvenv`` command also accepts a ``--without-pip`` option to suppress " "the otherwise-automatic bootstrapping of pip into the virtual environment. " @@ -2847,32 +2412,27 @@ msgid "" "implementation.)" msgstr "" -#: ../../whatsnew/3.4.rst:2000 msgid "" -"The encoding name is now optional in the value set for " -"the :envvar:`PYTHONIOENCODING` environment variable. This makes it possible " -"to set just the error handler, without changing the default encoding. " -"(Contributed by Serhiy Storchaka in :issue:`18818`.)" +"The encoding name is now optional in the value set for the :envvar:" +"`PYTHONIOENCODING` environment variable. This makes it possible to set just " +"the error handler, without changing the default encoding. (Contributed by " +"Serhiy Storchaka in :issue:`18818`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2005 msgid "" "The :mod:`bz2`, :mod:`lzma`, and :mod:`gzip` module ``open`` functions now " "support ``x`` (exclusive creation) mode. (Contributed by Tim Heaney and " "Vajrasky Kok in :issue:`19201`, :issue:`19222`, and :issue:`19223`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2011 msgid "Significant Optimizations" msgstr "" -#: ../../whatsnew/3.4.rst:2013 msgid "" "The UTF-32 decoder is now 3x to 4x faster. (Contributed by Serhiy Storchaka " "in :issue:`14625`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2016 msgid "" "The cost of hash collisions for sets is now reduced. Each hash table probe " "now checks a series of consecutive, adjacent key/hash pairs before " @@ -2885,163 +2445,139 @@ msgid "" "Raymond Hettinger in :issue:`18771`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2027 msgid "" "The interpreter starts about 30% faster. A couple of measures lead to the " -"speedup. The interpreter loads fewer modules on startup, e.g. " -"the :mod:`re`, :mod:`collections` and :mod:`locale` modules and their " -"dependencies are no longer imported by default. The marshal module has been " -"improved to load compiled Python code faster. (Contributed by Antoine " -"Pitrou, Christian Heimes and Victor Stinner " -"in :issue:`19219`, :issue:`19218`, :issue:`19209`, :issue:`19205` " -"and :issue:`9548`.)" +"speedup. The interpreter loads fewer modules on startup, e.g. the :mod:" +"`re`, :mod:`collections` and :mod:`locale` modules and their dependencies " +"are no longer imported by default. The marshal module has been improved to " +"load compiled Python code faster. (Contributed by Antoine Pitrou, Christian " +"Heimes and Victor Stinner in :issue:`19219`, :issue:`19218`, :issue:" +"`19209`, :issue:`19205` and :issue:`9548`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2035 msgid "" ":class:`bz2.BZ2File` is now as fast or faster than the Python2 version for " "most cases. :class:`lzma.LZMAFile` has also been optimized. (Contributed " "by Serhiy Storchaka and Nadeem Vawda in :issue:`16034`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2039 msgid "" ":func:`random.getrandbits` is 20%-40% faster for small integers (the most " "common use case). (Contributed by Serhiy Storchaka in :issue:`16674`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2042 msgid "" "By taking advantage of the new storage format for strings, pickling of " "strings is now significantly faster. (Contributed by Victor Stinner and " "Antoine Pitrou in :issue:`15596`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2046 msgid "" -"A performance issue in :meth:`io.FileIO.readall` has been solved. This " +"A performance issue in :meth:`!io.FileIO.readall` has been solved. This " "particularly affects Windows, and significantly speeds up the case of piping " "significant amounts of data through :mod:`subprocess`. (Contributed by " "Richard Oudkerk in :issue:`15758`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2051 msgid "" -":func:`html.escape` is now 10x faster. (Contributed by Matt Bryant " -"in :issue:`18020`.)" +":func:`html.escape` is now 10x faster. (Contributed by Matt Bryant in :" +"issue:`18020`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2054 msgid "" "On Windows, the native ``VirtualAlloc`` is now used instead of the CRT " "``malloc`` in ``obmalloc``. Artificial benchmarks show about a 3% memory " "savings." msgstr "" -#: ../../whatsnew/3.4.rst:2058 msgid "" ":func:`os.urandom` now uses a lazily opened persistent file descriptor so as " "to avoid using many file descriptors when run in parallel from multiple " "threads. (Contributed by Antoine Pitrou in :issue:`18756`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2066 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.4.rst:2068 msgid "" "This section covers various APIs and other features that have been " "deprecated in Python 3.4, and will be removed in Python 3.5 or later. In " -"most (but not all) cases, using the deprecated APIs will produce " -"a :exc:`DeprecationWarning` when the interpreter is run with deprecation " -"warnings enabled (for example, by using ``-Wd``)." +"most (but not all) cases, using the deprecated APIs will produce a :exc:" +"`DeprecationWarning` when the interpreter is run with deprecation warnings " +"enabled (for example, by using ``-Wd``)." msgstr "" -#: ../../whatsnew/3.4.rst:2076 msgid "Deprecations in the Python API" msgstr "" -#: ../../whatsnew/3.4.rst:2078 msgid "" "As mentioned in :ref:`whatsnew-pep-451`, a number of :mod:`importlib` " "methods and functions are deprecated: :meth:`!importlib.find_loader` is " -"replaced by :func:`importlib.util.find_spec`; :meth:`!" -"importlib.machinery.PathFinder.find_module` is replaced " -"by :meth:`importlib.machinery.PathFinder.find_spec`; :meth:`!" -"importlib.abc.MetaPathFinder.find_module` is replaced " -"by :meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`!" -"importlib.abc.PathEntryFinder.find_loader` and :meth:`!find_module` are " -"replaced by :meth:`importlib.abc.PathEntryFinder.find_spec`; all of " -"the :samp:`{xxx}Loader` ABC ``load_module`` methods (:meth:`!" -"importlib.abc.Loader.load_module`, :meth:`!" -"importlib.abc.InspectLoader.load_module`, :meth:`!" -"importlib.abc.FileLoader.load_module`, :meth:`!" -"importlib.abc.SourceLoader.load_module`) should no longer be implemented, " -"instead loaders should implement an ``exec_module`` method " -"(:meth:`importlib.abc.Loader.exec_module`, :meth:`importlib.abc.InspectLoader.exec_module` :meth:`importlib.abc.SourceLoader.exec_module`) " -"and let the import system take care of the rest; and :meth:`!" -"importlib.abc.Loader.module_repr`, :meth:`!" -"importlib.util.module_for_loader`, :meth:`!importlib.util.set_loader`, " -"and :meth:`!importlib.util.set_package` are no longer needed because their " -"functions are now handled automatically by the import system." -msgstr "" - -#: ../../whatsnew/3.4.rst:2103 +"replaced by :func:`importlib.util.find_spec`; :meth:`!importlib.machinery." +"PathFinder.find_module` is replaced by :meth:`importlib.machinery.PathFinder." +"find_spec`; :meth:`!importlib.abc.MetaPathFinder.find_module` is replaced " +"by :meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`!importlib.abc." +"PathEntryFinder.find_loader` and :meth:`!find_module` are replaced by :meth:" +"`importlib.abc.PathEntryFinder.find_spec`; all of the :samp:`{xxx}Loader` " +"ABC ``load_module`` methods (:meth:`!importlib.abc.Loader.load_module`, :" +"meth:`!importlib.abc.InspectLoader.load_module`, :meth:`!importlib.abc." +"FileLoader.load_module`, :meth:`!importlib.abc.SourceLoader.load_module`) " +"should no longer be implemented, instead loaders should implement an " +"``exec_module`` method (:meth:`importlib.abc.Loader.exec_module`, :meth:" +"`importlib.abc.InspectLoader.exec_module` :meth:`importlib.abc.SourceLoader." +"exec_module`) and let the import system take care of the rest; and :meth:`!" +"importlib.abc.Loader.module_repr`, :meth:`!importlib.util." +"module_for_loader`, :meth:`!importlib.util.set_loader`, and :meth:`!" +"importlib.util.set_package` are no longer needed because their functions are " +"now handled automatically by the import system." +msgstr "" + msgid "" "The :mod:`!imp` module is pending deprecation. To keep compatibility with " "Python 2/3 code bases, the module's removal is currently not scheduled." msgstr "" -#: ../../whatsnew/3.4.rst:2106 msgid "" -"The :mod:`formatter` module is pending deprecation and is slated for removal " -"in Python 3.6." +"The :mod:`!formatter` module is pending deprecation and is slated for " +"removal in Python 3.6." msgstr "" -#: ../../whatsnew/3.4.rst:2109 msgid "" "``MD5`` as the default *digestmod* for the :func:`hmac.new` function is " "deprecated. Python 3.6 will require an explicit digest name or constructor " "as *digestmod* argument." msgstr "" -#: ../../whatsnew/3.4.rst:2113 msgid "" "The internal ``Netrc`` class in the :mod:`ftplib` module has been documented " -"as deprecated in its docstring for quite some time. It now emits " -"a :exc:`DeprecationWarning` and will be removed completely in Python 3.5." +"as deprecated in its docstring for quite some time. It now emits a :exc:" +"`DeprecationWarning` and will be removed completely in Python 3.5." msgstr "" -#: ../../whatsnew/3.4.rst:2117 msgid "" "The undocumented *endtime* argument to :meth:`subprocess.Popen.wait` should " "not have been exposed and is hopefully not in use; it is deprecated and will " "mostly likely be removed in Python 3.5." msgstr "" -#: ../../whatsnew/3.4.rst:2121 msgid "" "The *strict* argument of :class:`~html.parser.HTMLParser` is deprecated." msgstr "" -#: ../../whatsnew/3.4.rst:2123 msgid "" -"The :mod:`plistlib` :func:`~plistlib.readPlist`, :func:`~plistlib.writePlist`, :func:`~plistlib.readPlistFromBytes`, " -"and :func:`~plistlib.writePlistToBytes` functions are deprecated in favor of " -"the corresponding new " -"functions :func:`~plistlib.load`, :func:`~plistlib.dump`, :func:`~plistlib.loads`, " -"and :func:`~plistlib.dumps`. :func:`~plistlib.Data` is deprecated in favor " -"of just using the :class:`bytes` constructor." +"The :mod:`plistlib` :func:`!readPlist`, :func:`!writePlist`, :func:`!" +"readPlistFromBytes`, and :func:`!writePlistToBytes` functions are deprecated " +"in favor of the corresponding new functions :func:`~plistlib.load`, :func:" +"`~plistlib.dump`, :func:`~plistlib.loads`, and :func:`~plistlib.dumps`. :" +"func:`!Data` is deprecated in favor of just using the :class:`bytes` " +"constructor." msgstr "" -#: ../../whatsnew/3.4.rst:2130 msgid "" "The :mod:`sysconfig` key ``SO`` is deprecated, it has been replaced by " "``EXT_SUFFIX``." msgstr "" -#: ../../whatsnew/3.4.rst:2133 msgid "" "The ``U`` mode accepted by various ``open`` functions is deprecated. In " "Python3 it does not do anything useful, and should be replaced by " @@ -3049,105 +2585,86 @@ msgid "" "argument." msgstr "" -#: ../../whatsnew/3.4.rst:2138 msgid "" "The *parser* argument of :func:`xml.etree.ElementTree.iterparse` has been " -"deprecated, as has the *html* argument " -"of :func:`~xml.etree.ElementTree.XMLParser`. To prepare for the removal of " -"the latter, all arguments to ``XMLParser`` should be passed by keyword." +"deprecated, as has the *html* argument of :func:`~xml.etree.ElementTree." +"XMLParser`. To prepare for the removal of the latter, all arguments to " +"``XMLParser`` should be passed by keyword." msgstr "" -#: ../../whatsnew/3.4.rst:2145 msgid "Deprecated Features" msgstr "" -#: ../../whatsnew/3.4.rst:2147 msgid "" "Running :ref:`idle` with the ``-n`` flag (no subprocess) is deprecated. " "However, the feature will not be removed until :issue:`18823` is resolved." msgstr "" -#: ../../whatsnew/3.4.rst:2150 msgid "" "The site module adding a \"site-python\" directory to sys.path, if it " "exists, is deprecated (:issue:`19375`)." msgstr "" -#: ../../whatsnew/3.4.rst:2156 msgid "Removed" msgstr "" -#: ../../whatsnew/3.4.rst:2160 msgid "Operating Systems No Longer Supported" msgstr "" -#: ../../whatsnew/3.4.rst:2162 msgid "" "Support for the following operating systems has been removed from the source " "and build tools:" msgstr "" -#: ../../whatsnew/3.4.rst:2165 msgid "OS/2 (:issue:`16135`)." msgstr "" -#: ../../whatsnew/3.4.rst:2166 msgid "Windows 2000 (changeset e52df05b496a)." msgstr "" -#: ../../whatsnew/3.4.rst:2167 msgid "" "Windows systems where ``COMSPEC`` points to ``command.com`` (:issue:`14470`)." msgstr "" -#: ../../whatsnew/3.4.rst:2168 msgid "VMS (:issue:`16136`)." msgstr "" -#: ../../whatsnew/3.4.rst:2172 msgid "API and Feature Removals" msgstr "" -#: ../../whatsnew/3.4.rst:2174 msgid "" "The following obsolete and previously deprecated APIs and features have been " "removed:" msgstr "" -#: ../../whatsnew/3.4.rst:2177 msgid "" "The unmaintained ``Misc/TextMate`` and ``Misc/vim`` directories have been " "removed (see the `devguide `_ for suggestions " "on what to use instead)." msgstr "" -#: ../../whatsnew/3.4.rst:2181 msgid "" "The ``SO`` makefile macro is removed (it was replaced by the " "``SHLIB_SUFFIX`` and ``EXT_SUFFIX`` macros) (:issue:`16754`)." msgstr "" -#: ../../whatsnew/3.4.rst:2184 msgid "" "The ``PyThreadState.tick_counter`` field has been removed; its value has " -"been meaningless since Python 3.2, when the \"new GIL\" was introduced " -"(:issue:`19199`)." +"been meaningless since Python 3.2, when the \"new GIL\" was introduced (:" +"issue:`19199`)." msgstr "" -#: ../../whatsnew/3.4.rst:2188 msgid "" "``PyLoader`` and ``PyPycLoader`` have been removed from :mod:`importlib`. " "(Contributed by Taras Lyapun in :issue:`15641`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2191 msgid "" -"The *strict* argument to :class:`~http.client.HTTPConnection` " -"and :class:`~http.client.HTTPSConnection` has been removed. HTTP 0.9-style " -"\"Simple Responses\" are no longer supported." +"The *strict* argument to :class:`~http.client.HTTPConnection` and :class:" +"`~http.client.HTTPSConnection` has been removed. HTTP 0.9-style \"Simple " +"Responses\" are no longer supported." msgstr "" -#: ../../whatsnew/3.4.rst:2195 msgid "" "The deprecated :mod:`urllib.request.Request` getter and setter methods " "``add_data``, ``has_data``, ``get_data``, ``get_type``, ``get_host``, " @@ -3155,19 +2672,16 @@ msgid "" "``is_unverifiable`` have been removed (use direct attribute access instead)." msgstr "" -#: ../../whatsnew/3.4.rst:2200 msgid "" -"Support for loading the deprecated ``TYPE_INT64`` has been removed " -"from :mod:`marshal`. (Contributed by Dan Riti in :issue:`15480`.)" +"Support for loading the deprecated ``TYPE_INT64`` has been removed from :mod:" +"`marshal`. (Contributed by Dan Riti in :issue:`15480`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2203 msgid "" ":class:`inspect.Signature`: positional-only parameters are now required to " "have a valid name." msgstr "" -#: ../../whatsnew/3.4.rst:2206 msgid "" ":meth:`object.__format__` no longer accepts non-empty format strings, it now " "raises a :exc:`TypeError` instead. Using a non-empty string has been " @@ -3175,29 +2689,25 @@ msgid "" "situation where previously working (but incorrect) code would start failing " "if an object gained a __format__ method, which means that your code may now " "raise a :exc:`TypeError` if you are using an ``'s'`` format code with " -"objects that do not have a __format__ method that handles it. " -"See :issue:`7994` for background." +"objects that do not have a __format__ method that handles it. See :issue:" +"`7994` for background." msgstr "" -#: ../../whatsnew/3.4.rst:2215 msgid "" -":meth:`difflib.SequenceMatcher.isbjunk` " -"and :meth:`difflib.SequenceMatcher.isbpopular` were deprecated in 3.2, and " -"have now been removed: use ``x in sm.bjunk`` and ``x in sm.bpopular``, where " -"*sm* is a :class:`~difflib.SequenceMatcher` object (:issue:`13248`)." +":meth:`!difflib.SequenceMatcher.isbjunk` and :meth:`!difflib.SequenceMatcher." +"isbpopular` were deprecated in 3.2, and have now been removed: use ``x in sm." +"bjunk`` and ``x in sm.bpopular``, where *sm* is a :class:`~difflib." +"SequenceMatcher` object (:issue:`13248`)." msgstr "" -#: ../../whatsnew/3.4.rst:2223 msgid "Code Cleanups" msgstr "" -#: ../../whatsnew/3.4.rst:2225 msgid "" "The unused and undocumented internal ``Scanner`` class has been removed from " "the :mod:`pydoc` module." msgstr "" -#: ../../whatsnew/3.4.rst:2228 msgid "" "The private and effectively unused ``_gestalt`` module has been removed, " "along with the private :mod:`platform` functions ``_mac_ver_lookup``, " @@ -3205,83 +2715,69 @@ msgid "" "called on badly broken OSX systems (see :issue:`18393`)." msgstr "" -#: ../../whatsnew/3.4.rst:2233 msgid "" "The hardcoded copies of certain :mod:`stat` constants that were included in " "the :mod:`tarfile` module namespace have been removed." msgstr "" -#: ../../whatsnew/3.4.rst:2239 msgid "Porting to Python 3.4" msgstr "" -#: ../../whatsnew/3.4.rst:2241 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.4.rst:2246 msgid "Changes in 'python' Command Behavior" msgstr "" -#: ../../whatsnew/3.4.rst:2248 msgid "" "In a posix shell, setting the :envvar:`PATH` environment variable to an " -"empty value is equivalent to not setting it at all. However, " -"setting :envvar:`PYTHONPATH` to an empty value was *not* equivalent to not " -"setting it at all: setting :envvar:`PYTHONPATH` to an empty value was " -"equivalent to setting it to ``.``, which leads to confusion when reasoning " -"by analogy to how :envvar:`PATH` works. The behavior now conforms to the " -"posix convention for :envvar:`PATH`." +"empty value is equivalent to not setting it at all. However, setting :" +"envvar:`PYTHONPATH` to an empty value was *not* equivalent to not setting it " +"at all: setting :envvar:`PYTHONPATH` to an empty value was equivalent to " +"setting it to ``.``, which leads to confusion when reasoning by analogy to " +"how :envvar:`PATH` works. The behavior now conforms to the posix convention " +"for :envvar:`PATH`." msgstr "" -#: ../../whatsnew/3.4.rst:2256 msgid "" "The [X refs, Y blocks] output of a debug (``--with-pydebug``) build of the " "CPython interpreter is now off by default. It can be re-enabled using the " "``-X showrefcount`` option. (Contributed by Ezio Melotti in :issue:`17323`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2260 msgid "" "The python command and most stdlib scripts (as well as :mod:`argparse`) now " "output ``--version`` information to ``stdout`` instead of ``stderr`` (for " "issue list see :ref:`other-improvements-3.4` above)." msgstr "" -#: ../../whatsnew/3.4.rst:2266 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.4.rst:2268 msgid "" "The ABCs defined in :mod:`importlib.abc` now either raise the appropriate " -"exception or return a default value instead of " -"raising :exc:`NotImplementedError` blindly. This will only affect code " -"calling :func:`super` and falling through all the way to the ABCs. For " -"compatibility, catch both :exc:`NotImplementedError` or the appropriate " -"exception as needed." +"exception or return a default value instead of raising :exc:" +"`NotImplementedError` blindly. This will only affect code calling :func:" +"`super` and falling through all the way to the ABCs. For compatibility, " +"catch both :exc:`NotImplementedError` or the appropriate exception as needed." msgstr "" -#: ../../whatsnew/3.4.rst:2274 msgid "" -"The module type now initializes the :attr:`~module.__package__` " -"and :attr:`~module.__loader__` attributes to ``None`` by default. To " -"determine if these attributes were set in a backwards-compatible fashion, " -"use e.g. ``getattr(module, '__loader__', None) is not None``. " -"(:issue:`17115`.)" +"The module type now initializes the :attr:`~module.__package__` and :attr:" +"`~module.__loader__` attributes to ``None`` by default. To determine if " +"these attributes were set in a backwards-compatible fashion, use e.g. " +"``getattr(module, '__loader__', None) is not None``. (:issue:`17115`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2280 msgid "" ":meth:`!importlib.util.module_for_loader` now sets ``__loader__`` and " "``__package__`` unconditionally to properly support reloading. If this is " "not desired then you will need to set these attributes manually. You can " -"use :func:`importlib.util.module_to_load` for module management." +"use :func:`!importlib.util.module_to_load` for module management." msgstr "" -#: ../../whatsnew/3.4.rst:2285 msgid "" "Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``, " "``__package__``, ``__file__``, ``__cached__``) unconditionally when " @@ -3289,7 +2785,6 @@ msgid "" "module is re-found when re-loaded (:issue:`19413`)." msgstr "" -#: ../../whatsnew/3.4.rst:2290 msgid "" "Frozen packages no longer set ``__path__`` to a list containing the package " "name, they now set it to an empty list. The previous behavior could cause " @@ -3299,18 +2794,16 @@ msgid "" "'__path__')`` (:issue:`18065`)." msgstr "" -#: ../../whatsnew/3.4.rst:2297 msgid "" "Frozen modules no longer define a ``__file__`` attribute. It's semantically " "incorrect for frozen modules to set the attribute as they are not loaded " "from any explicit location. If you must know that a module comes from frozen " "code then you can see if the module's ``__spec__.location`` is set to " -"``'frozen'``, check if the loader is a subclass " -"of :class:`importlib.machinery.FrozenImporter`, or if Python 2 compatibility " -"is necessary you can use :func:`!imp.is_frozen`." +"``'frozen'``, check if the loader is a subclass of :class:`importlib." +"machinery.FrozenImporter`, or if Python 2 compatibility is necessary you can " +"use :func:`!imp.is_frozen`." msgstr "" -#: ../../whatsnew/3.4.rst:2305 msgid "" ":func:`py_compile.compile` now raises :exc:`FileExistsError` if the file " "path it would write to is a symlink or a non-regular file. This is to act as " @@ -3318,19 +2811,17 @@ msgid "" "regardless of what type of file path they were originally." msgstr "" -#: ../../whatsnew/3.4.rst:2310 msgid "" -":meth:`importlib.abc.SourceLoader.get_source` no longer " -"raises :exc:`ImportError` when the source code being loaded triggers " -"a :exc:`SyntaxError` or :exc:`UnicodeDecodeError`. As :exc:`ImportError` is " -"meant to be raised only when source code cannot be found but it should, it " -"was felt to be over-reaching/overloading of that meaning when the source " -"code is found but improperly structured. If you were catching ImportError " -"before and wish to continue to ignore syntax or decoding issues, catch all " -"three exceptions now." +":meth:`importlib.abc.SourceLoader.get_source` no longer raises :exc:" +"`ImportError` when the source code being loaded triggers a :exc:" +"`SyntaxError` or :exc:`UnicodeDecodeError`. As :exc:`ImportError` is meant " +"to be raised only when source code cannot be found but it should, it was " +"felt to be over-reaching/overloading of that meaning when the source code is " +"found but improperly structured. If you were catching ImportError before and " +"wish to continue to ignore syntax or decoding issues, catch all three " +"exceptions now." msgstr "" -#: ../../whatsnew/3.4.rst:2319 msgid "" ":func:`functools.update_wrapper` and :func:`functools.wraps` now correctly " "set the ``__wrapped__`` attribute to the function being wrapped, even if " @@ -3342,18 +2833,15 @@ msgid "" "function in the chain that has no ``__wrapped__`` attribute." msgstr "" -#: ../../whatsnew/3.4.rst:2329 msgid "" -":func:`inspect.getfullargspec` has been reimplemented on top " -"of :func:`inspect.signature` and hence handles a much wider variety of " -"callable objects than it did in the past. It is expected that additional " -"builtin and extension module callables will gain signature metadata over the " -"course of the Python 3.4 series. Code that assumes " -"that :func:`inspect.getfullargspec` will fail on non-Python callables may " -"need to be adjusted accordingly." +":func:`inspect.getfullargspec` has been reimplemented on top of :func:" +"`inspect.signature` and hence handles a much wider variety of callable " +"objects than it did in the past. It is expected that additional builtin and " +"extension module callables will gain signature metadata over the course of " +"the Python 3.4 series. Code that assumes that :func:`inspect.getfullargspec` " +"will fail on non-Python callables may need to be adjusted accordingly." msgstr "" -#: ../../whatsnew/3.4.rst:2337 msgid "" ":class:`importlib.machinery.PathFinder` now passes on the current working " "directory to objects in :data:`sys.path_hooks` for the empty string. This " @@ -3363,11 +2851,10 @@ msgid "" "working directory will also now have an absolute path, including when using " "``-m`` with the interpreter (except for ``__main__.__file__`` when a script " "has been executed directly using a relative path) (Contributed by Brett " -"Cannon in :issue:`18416`). is specified on the command-line) " -"(:issue:`18416`)." +"Cannon in :issue:`18416`). is specified on the command-line) (:issue:" +"`18416`)." msgstr "" -#: ../../whatsnew/3.4.rst:2348 msgid "" "The removal of the *strict* argument to :class:`~http.client.HTTPConnection` " "and :class:`~http.client.HTTPSConnection` changes the meaning of the " @@ -3376,84 +2863,71 @@ msgid "" "should already be specifying any additional arguments via keywords." msgstr "" -#: ../../whatsnew/3.4.rst:2354 msgid "" "Strings between ``from __future__ import ...`` statements now *always* raise " "a :exc:`SyntaxError`. Previously if there was no leading docstring, an " "interstitial string would sometimes be ignored. This brings CPython into " -"compliance with the language spec; Jython and PyPy already were. " -"(:issue:`17434`)." +"compliance with the language spec; Jython and PyPy already were. (:issue:" +"`17434`)." msgstr "" -#: ../../whatsnew/3.4.rst:2360 msgid "" ":meth:`ssl.SSLSocket.getpeercert` and :meth:`ssl.SSLSocket.do_handshake` now " "raise an :exc:`OSError` with ``ENOTCONN`` when the ``SSLSocket`` is not " -"connected, instead of the previous behavior of raising " -"an :exc:`AttributeError`. In addition, :meth:`~ssl.SSLSocket.getpeercert` " -"will raise a :exc:`ValueError` if the handshake has not yet been done." +"connected, instead of the previous behavior of raising an :exc:" +"`AttributeError`. In addition, :meth:`~ssl.SSLSocket.getpeercert` will " +"raise a :exc:`ValueError` if the handshake has not yet been done." msgstr "" -#: ../../whatsnew/3.4.rst:2366 msgid "" ":func:`base64.b32decode` now raises a :exc:`binascii.Error` when the input " "string contains non-b32-alphabet characters, instead of a :exc:`TypeError`. " -"This particular :exc:`TypeError` was missed when the " -"other :exc:`TypeError`\\ s were converted. (Contributed by Serhiy Storchaka " -"in :issue:`18011`.) Note: this change was also inadvertently applied in " -"Python 3.3.3." +"This particular :exc:`TypeError` was missed when the other :exc:" +"`TypeError`\\ s were converted. (Contributed by Serhiy Storchaka in :issue:" +"`18011`.) Note: this change was also inadvertently applied in Python 3.3.3." msgstr "" -#: ../../whatsnew/3.4.rst:2373 msgid "" -"The :attr:`!file` attribute is now automatically closed when the " -"creating :class:`!cgi.FieldStorage` instance is garbage collected. If you " -"were pulling the file object out separately from the :class:`!" -"cgi.FieldStorage` instance and not keeping the instance alive, then you " -"should either store the entire :class:`!cgi.FieldStorage` instance or read " -"the contents of the file before the :class:`!cgi.FieldStorage` instance is " -"garbage collected." +"The :attr:`!file` attribute is now automatically closed when the creating :" +"class:`!cgi.FieldStorage` instance is garbage collected. If you were pulling " +"the file object out separately from the :class:`!cgi.FieldStorage` instance " +"and not keeping the instance alive, then you should either store the entire :" +"class:`!cgi.FieldStorage` instance or read the contents of the file before " +"the :class:`!cgi.FieldStorage` instance is garbage collected." msgstr "" -#: ../../whatsnew/3.4.rst:2380 msgid "" "Calling ``read`` or ``write`` on a closed SSL socket now raises an " -"informative :exc:`ValueError` rather than the previous more " -"mysterious :exc:`AttributeError` (:issue:`9177`)." +"informative :exc:`ValueError` rather than the previous more mysterious :exc:" +"`AttributeError` (:issue:`9177`)." msgstr "" -#: ../../whatsnew/3.4.rst:2384 msgid "" ":meth:`slice.indices` no longer produces an :exc:`OverflowError` for huge " -"values. As a consequence of this fix, :meth:`slice.indices` now raises " -"a :exc:`ValueError` if given a negative length; previously it returned " -"nonsense values (:issue:`14794`)." +"values. As a consequence of this fix, :meth:`slice.indices` now raises a :" +"exc:`ValueError` if given a negative length; previously it returned nonsense " +"values (:issue:`14794`)." msgstr "" -#: ../../whatsnew/3.4.rst:2389 msgid "" "The :class:`complex` constructor, unlike the :mod:`cmath` functions, was " "incorrectly accepting :class:`float` values if an object's ``__complex__`` " -"special method returned one. This now raises a :exc:`TypeError`. " -"(:issue:`16290`.)" +"special method returned one. This now raises a :exc:`TypeError`. (:issue:" +"`16290`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2394 msgid "" -"The :class:`int` constructor in 3.2 and 3.3 erroneously " -"accepts :class:`float` values for the *base* parameter. It is unlikely " -"anyone was doing this, but if so, it will now raise a :exc:`TypeError` " -"(:issue:`16772`)." +"The :class:`int` constructor in 3.2 and 3.3 erroneously accepts :class:" +"`float` values for the *base* parameter. It is unlikely anyone was doing " +"this, but if so, it will now raise a :exc:`TypeError` (:issue:`16772`)." msgstr "" -#: ../../whatsnew/3.4.rst:2398 msgid "" "Defaults for keyword-only arguments are now evaluated *after* defaults for " "regular keyword arguments, instead of before. Hopefully no one wrote any " "code that depends on the previous buggy behavior (:issue:`16967`)." msgstr "" -#: ../../whatsnew/3.4.rst:2402 msgid "" "Stale thread states are now cleared after :func:`~os.fork`. This may cause " "some system resources to be released that previously were incorrectly kept " @@ -3461,21 +2935,18 @@ msgid "" "storage). (:issue:`17094`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2407 msgid "" "Parameter names in ``__annotations__`` dicts are now mangled properly, " "similarly to :attr:`~function.__kwdefaults__`. (Contributed by Yury " "Selivanov in :issue:`20625`.)" msgstr "" -#: ../../whatsnew/3.4.rst:2411 msgid "" ":attr:`hashlib.hash.name` now always returns the identifier in lower case. " "Previously some builtin hashes had uppercase names, but now that it is a " "formal public interface the naming has been made consistent (:issue:`18532`)." msgstr "" -#: ../../whatsnew/3.4.rst:2415 msgid "" "Because :mod:`unittest.TestSuite` now drops references to tests after they " "are run, test harnesses that reuse a :class:`~unittest.TestSuite` to re-run " @@ -3484,11 +2955,10 @@ msgid "" "isolation that :mod:`unittest` is designed to provide. However, if the lack " "of isolation is considered acceptable, the old behavior can be restored by " "creating a :mod:`~unittest.TestSuite` subclass that defines a " -"``_removeTestAtIndex`` method that does nothing " -"(see :meth:`.TestSuite.__iter__`) (:issue:`11798`)." +"``_removeTestAtIndex`` method that does nothing (see :meth:`.TestSuite." +"__iter__`) (:issue:`11798`)." msgstr "" -#: ../../whatsnew/3.4.rst:2425 msgid "" ":mod:`unittest` now uses :mod:`argparse` for command line parsing. There " "are certain invalid command forms that used to work that are no longer " @@ -3497,39 +2967,34 @@ msgid "" "use." msgstr "" -#: ../../whatsnew/3.4.rst:2430 msgid "" "The :func:`re.split`, :func:`re.findall`, and :func:`re.sub` functions, and " -"the :meth:`~re.match.group` and :meth:`~re.match.groups` methods of " +"the :meth:`~re.Match.group` and :meth:`~re.Match.groups` methods of " "``match`` objects now always return a *bytes* object when the string to be " "matched is a :term:`bytes-like object`. Previously the return type matched " "the input type, so if your code was depending on the return value being, " "say, a ``bytearray``, you will need to change your code." msgstr "" -#: ../../whatsnew/3.4.rst:2437 msgid "" ":mod:`!audioop` functions now raise an error immediately if passed string " "input, instead of failing randomly later on (:issue:`16685`)." msgstr "" -#: ../../whatsnew/3.4.rst:2440 msgid "" "The new *convert_charrefs* argument to :class:`~html.parser.HTMLParser` " "currently defaults to ``False`` for backward compatibility, but will " "eventually be changed to default to ``True``. It is recommended that you " -"add this keyword, with the appropriate value, to " -"any :class:`~html.parser.HTMLParser` calls in your code (:issue:`13633`)." +"add this keyword, with the appropriate value, to any :class:`~html.parser." +"HTMLParser` calls in your code (:issue:`13633`)." msgstr "" -#: ../../whatsnew/3.4.rst:2446 msgid "" "Since the *digestmod* argument to the :func:`hmac.new` function will in the " "future have no default, all calls to :func:`hmac.new` should be changed to " "explicitly specify a *digestmod* (:issue:`17276`)." msgstr "" -#: ../../whatsnew/3.4.rst:2450 msgid "" "Calling :func:`sysconfig.get_config_var` with the ``SO`` key, or looking " "``SO`` up in the results of a call to :func:`sysconfig.get_config_vars` is " @@ -3537,23 +3002,20 @@ msgid "" "``SHLIB_SUFFIX``, depending on the context (:issue:`19555`)." msgstr "" -#: ../../whatsnew/3.4.rst:2455 msgid "" "Any calls to ``open`` functions that specify ``U`` should be modified. ``U`` " "is ineffective in Python3 and will eventually raise an error if used. " "Depending on the function, the equivalent of its old Python2 behavior can be " "achieved using either a *newline* argument, or if necessary by wrapping the " -"stream in :mod:`~io.TextIOWrapper` to use its *newline* argument " -"(:issue:`15204`)." +"stream in :mod:`~io.TextIOWrapper` to use its *newline* argument (:issue:" +"`15204`)." msgstr "" -#: ../../whatsnew/3.4.rst:2462 msgid "" "If you use ``pyvenv`` in a script and desire that pip *not* be installed, " "you must add ``--without-pip`` to your command invocation." msgstr "" -#: ../../whatsnew/3.4.rst:2466 msgid "" "The default behavior of :func:`json.dump` and :func:`json.dumps` when an " "indent is specified has changed: it no longer produces trailing spaces after " @@ -3562,7 +3024,6 @@ msgid "" "output (:issue:`16333`)." msgstr "" -#: ../../whatsnew/3.4.rst:2472 msgid "" ":mod:`doctest` now looks for doctests in extension module ``__doc__`` " "strings, so if your doctest test discovery includes extension modules that " @@ -3570,74 +3031,64 @@ msgid "" "never seen before when running your tests (:issue:`3158`)." msgstr "" -#: ../../whatsnew/3.4.rst:2477 msgid "" "The :mod:`collections.abc` module has been slightly refactored as part of " "the Python startup improvements. As a consequence of this, it is no longer " -"the case that importing :mod:`collections` automatically " -"imports :mod:`collections.abc`. If your program depended on the " -"(undocumented) implicit import, you will need to add an explicit ``import " -"collections.abc`` (:issue:`20784`)." +"the case that importing :mod:`collections` automatically imports :mod:" +"`collections.abc`. If your program depended on the (undocumented) implicit " +"import, you will need to add an explicit ``import collections.abc`` (:issue:" +"`20784`)." msgstr "" -#: ../../whatsnew/3.4.rst:2486 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.4.rst:2488 msgid "" -":c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr`, " -"and :c:func:`PyObject_Str`, along with some other internal C APIs, now " -"include a debugging assertion that ensures they are not used in situations " -"where they may silently discard a currently active exception. In cases where " -"discarding the active exception is expected and desired (for example, " -"because it has already been saved locally with :c:func:`PyErr_Fetch` or is " -"being deliberately replaced with a different exception), an " -"explicit :c:func:`PyErr_Clear` call will be needed to avoid triggering the " -"assertion when invoking these operations (directly or indirectly) and " -"running against a version of Python that is compiled with assertions enabled." +":c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr`, and :c:func:" +"`PyObject_Str`, along with some other internal C APIs, now include a " +"debugging assertion that ensures they are not used in situations where they " +"may silently discard a currently active exception. In cases where discarding " +"the active exception is expected and desired (for example, because it has " +"already been saved locally with :c:func:`PyErr_Fetch` or is being " +"deliberately replaced with a different exception), an explicit :c:func:" +"`PyErr_Clear` call will be needed to avoid triggering the assertion when " +"invoking these operations (directly or indirectly) and running against a " +"version of Python that is compiled with assertions enabled." msgstr "" -#: ../../whatsnew/3.4.rst:2500 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned with no exception " "set." msgstr "" -#: ../../whatsnew/3.4.rst:2504 msgid "" "The result of the :c:data:`PyOS_ReadlineFunctionPointer` callback must now " -"be a string allocated by :c:func:`PyMem_RawMalloc` " -"or :c:func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred, instead of " -"a string allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc` " -"(:issue:`16742`)" +"be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:" +"`PyMem_RawRealloc`, or ``NULL`` if an error occurred, instead of a string " +"allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc` (:issue:" +"`16742`)" msgstr "" -#: ../../whatsnew/3.4.rst:2510 msgid "" ":c:func:`PyThread_set_key_value` now always set the value. In Python 3.3, " "the function did nothing if the key already exists (if the current value is " "a non-``NULL`` pointer)." msgstr "" -#: ../../whatsnew/3.4.rst:2514 msgid "" "The ``f_tstate`` (thread state) field of the :c:type:`PyFrameObject` " "structure has been removed to fix a bug: see :issue:`14432` for the " "rationale." msgstr "" -#: ../../whatsnew/3.4.rst:2519 msgid "Changed in 3.4.3" msgstr "" -#: ../../whatsnew/3.4.rst:2524 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" -#: ../../whatsnew/3.4.rst:2526 msgid "" ":mod:`http.client` and modules which use it, such as :mod:`urllib.request` " "and :mod:`xmlrpc.client`, will now verify that the server presents a " @@ -3646,13 +3097,11 @@ msgid "" "improving security for many applications." msgstr "" -#: ../../whatsnew/3.4.rst:2532 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" msgstr "" -#: ../../whatsnew/3.4.rst:2535 msgid "" "import urllib.request\n" "import ssl\n" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index 6cf4c7f..92977f8 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2025\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,218 +22,177 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.5.rst:3 msgid "What's New In Python 3.5" msgstr "" -#: ../../whatsnew/3.5.rst:0 msgid "Editors" msgstr "" -#: ../../whatsnew/3.5.rst:5 msgid "Elvis Pranskevichus , Yury Selivanov " msgstr "" -#: ../../whatsnew/3.5.rst:47 msgid "" "This article explains the new features in Python 3.5, compared to 3.4. " "Python 3.5 was released on September 13, 2015. See the `changelog `_ for a full list of changes." msgstr "" -#: ../../whatsnew/3.5.rst:54 msgid ":pep:`478` - Python 3.5 Release Schedule" msgstr "" -#: ../../whatsnew/3.5.rst:58 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.5.rst:60 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.5.rst:62 msgid "" ":ref:`PEP 492 `, coroutines with async and await syntax." msgstr "" -#: ../../whatsnew/3.5.rst:63 msgid "" ":ref:`PEP 465 `, a new matrix multiplication operator: ``a " "@ b``." msgstr "" -#: ../../whatsnew/3.5.rst:64 msgid "" ":ref:`PEP 448 `, additional unpacking generalizations." msgstr "" -#: ../../whatsnew/3.5.rst:67 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.5.rst:69 msgid ":mod:`typing`: :ref:`PEP 484 -- Type Hints `." msgstr "" -#: ../../whatsnew/3.5.rst:70 msgid "" ":mod:`zipapp`: :ref:`PEP 441 Improving Python ZIP Application Support " "`." msgstr "" -#: ../../whatsnew/3.5.rst:74 msgid "New built-in features:" msgstr "" -#: ../../whatsnew/3.5.rst:76 msgid "" "``bytes % args``, ``bytearray % args``: :ref:`PEP 461 ` -- " "Adding ``%`` formatting to bytes and bytearray." msgstr "" -#: ../../whatsnew/3.5.rst:79 msgid "" "New :meth:`bytes.hex`, :meth:`bytearray.hex` and :meth:`memoryview.hex` " "methods. (Contributed by Arnon Yaari in :issue:`9951`.)" msgstr "" -#: ../../whatsnew/3.5.rst:82 msgid "" ":class:`memoryview` now supports tuple indexing (including multi-" "dimensional). (Contributed by Antoine Pitrou in :issue:`23632`.)" msgstr "" -#: ../../whatsnew/3.5.rst:85 msgid "" "Generators have a new ``gi_yieldfrom`` attribute, which returns the object " "being iterated by ``yield from`` expressions. (Contributed by Benno Leslie " "and Yury Selivanov in :issue:`24450`.)" msgstr "" -#: ../../whatsnew/3.5.rst:89 msgid "" "A new :exc:`RecursionError` exception is now raised when maximum recursion " "depth is reached. (Contributed by Georg Brandl in :issue:`19235`.)" msgstr "" -#: ../../whatsnew/3.5.rst:94 msgid "CPython implementation improvements:" msgstr "" -#: ../../whatsnew/3.5.rst:96 msgid "" -"When the ``LC_TYPE`` locale is the POSIX locale (``C`` " -"locale), :py:data:`sys.stdin` and :py:data:`sys.stdout` now use the " -"``surrogateescape`` error handler, instead of the ``strict`` error handler. " -"(Contributed by Victor Stinner in :issue:`19977`.)" +"When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale), :py:data:" +"`sys.stdin` and :py:data:`sys.stdout` now use the ``surrogateescape`` error " +"handler, instead of the ``strict`` error handler. (Contributed by Victor " +"Stinner in :issue:`19977`.)" msgstr "" -#: ../../whatsnew/3.5.rst:101 msgid "" "``.pyo`` files are no longer used and have been replaced by a more flexible " "scheme that includes the optimization level explicitly in ``.pyc`` name. " "(See :ref:`PEP 488 overview `.)" msgstr "" -#: ../../whatsnew/3.5.rst:105 msgid "" "Builtin and extension modules are now initialized in a multi-phase process, " "which is similar to how Python modules are loaded. (See :ref:`PEP 489 " "overview `.)" msgstr "" -#: ../../whatsnew/3.5.rst:110 msgid "Significant improvements in the standard library:" msgstr "" -#: ../../whatsnew/3.5.rst:112 msgid "" ":class:`collections.OrderedDict` is now :ref:`implemented in C `, which makes it 4 to 100 times faster." msgstr "" -#: ../../whatsnew/3.5.rst:116 msgid "" "The :mod:`ssl` module gained :ref:`support for Memory BIO `, which decouples SSL protocol handling from network IO." msgstr "" -#: ../../whatsnew/3.5.rst:120 msgid "" "The new :func:`os.scandir` function provides a :ref:`better and " "significantly faster way ` of directory traversal." msgstr "" -#: ../../whatsnew/3.5.rst:124 msgid "" ":func:`functools.lru_cache` has been mostly :ref:`reimplemented in C " "`, yielding much better performance." msgstr "" -#: ../../whatsnew/3.5.rst:128 msgid "" "The new :func:`subprocess.run` function provides a :ref:`streamlined way to " "run subprocesses `." msgstr "" -#: ../../whatsnew/3.5.rst:131 msgid "" "The :mod:`traceback` module has been significantly :ref:`enhanced ` for improved performance and developer convenience." msgstr "" -#: ../../whatsnew/3.5.rst:136 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.5.rst:138 msgid "" "SSLv3 is now disabled throughout the standard library. It can still be " -"enabled by instantiating a :class:`ssl.SSLContext` manually. " -"(See :issue:`22638` for more details; this change was backported to CPython " -"3.4 and 2.7.)" +"enabled by instantiating a :class:`ssl.SSLContext` manually. (See :issue:" +"`22638` for more details; this change was backported to CPython 3.4 and 2.7.)" msgstr "" -#: ../../whatsnew/3.5.rst:143 msgid "" "HTTP cookie parsing is now stricter, in order to protect against potential " "injection attacks. (Contributed by Antoine Pitrou in :issue:`22796`.)" msgstr "" -#: ../../whatsnew/3.5.rst:148 msgid "Windows improvements:" msgstr "" -#: ../../whatsnew/3.5.rst:150 msgid "" "A new installer for Windows has replaced the old MSI. See :ref:`using-on-" "windows` for more information." msgstr "" -#: ../../whatsnew/3.5.rst:153 msgid "" "Windows builds now use Microsoft Visual C++ 14.0, and extension modules " "should use the same." msgstr "" -#: ../../whatsnew/3.5.rst:157 msgid "" "Please read on for a comprehensive list of user-facing changes, including " "many other smaller improvements, CPython optimizations, deprecations, and " "potential porting issues." msgstr "" -#: ../../whatsnew/3.5.rst:163 msgid "New Features" msgstr "" -#: ../../whatsnew/3.5.rst:168 msgid "PEP 492 - Coroutines with async and await syntax" msgstr "" -#: ../../whatsnew/3.5.rst:170 msgid "" ":pep:`492` greatly improves support for asynchronous programming in Python " "by adding :term:`awaitable objects `, :term:`coroutine functions " @@ -242,36 +201,30 @@ msgid "" "manager>`." msgstr "" -#: ../../whatsnew/3.5.rst:176 msgid "" "Coroutine functions are declared using the new :keyword:`async def` syntax::" msgstr "" -#: ../../whatsnew/3.5.rst:178 msgid "" ">>> async def coro():\n" "... return 'spam'" msgstr "" -#: ../../whatsnew/3.5.rst:181 msgid "" "Inside a coroutine function, the new :keyword:`await` expression can be used " "to suspend coroutine execution until the result is available. Any object " "can be *awaited*, as long as it implements the :term:`awaitable` protocol by " -"defining the :meth:`__await__` method." +"defining the :meth:`~object.__await__` method." msgstr "" -#: ../../whatsnew/3.5.rst:186 msgid "" "PEP 492 also adds :keyword:`async for` statement for convenient iteration " "over asynchronous iterables." msgstr "" -#: ../../whatsnew/3.5.rst:189 msgid "An example of a rudimentary HTTP client written using the new syntax::" msgstr "" -#: ../../whatsnew/3.5.rst:191 msgid "" "import asyncio\n" "\n" @@ -297,13 +250,11 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.5.rst:215 msgid "" "Similarly to asynchronous iteration, there is a new syntax for asynchronous " "context managers. The following script::" msgstr "" -#: ../../whatsnew/3.5.rst:218 msgid "" "import asyncio\n" "\n" @@ -323,11 +274,9 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.5.rst:235 msgid "will output::" msgstr "" -#: ../../whatsnew/3.5.rst:237 msgid "" "coro 2: waiting for lock\n" "coro 2: holding the lock\n" @@ -337,78 +286,63 @@ msgid "" "coro 1: releasing the lock" msgstr "" -#: ../../whatsnew/3.5.rst:244 msgid "" "Note that both :keyword:`async for` and :keyword:`async with` can only be " "used inside a coroutine function declared with :keyword:`async def`." msgstr "" -#: ../../whatsnew/3.5.rst:247 msgid "" "Coroutine functions are intended to be run inside a compatible event loop, " "such as the :ref:`asyncio loop `." msgstr "" -#: ../../whatsnew/3.5.rst:253 msgid "" -"Starting with CPython 3.5.2, ``__aiter__`` can directly " -"return :term:`asynchronous iterators `. Returning " -"an :term:`awaitable` object will result in " -"a :exc:`PendingDeprecationWarning`." +"Starting with CPython 3.5.2, ``__aiter__`` can directly return :term:" +"`asynchronous iterators `. Returning an :term:" +"`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" -#: ../../whatsnew/3.5.rst:259 msgid "See more details in the :ref:`async-iterators` documentation section." msgstr "" -#: ../../whatsnew/3.5.rst:265 msgid ":pep:`492` -- Coroutines with async and await syntax" msgstr "" -#: ../../whatsnew/3.5.rst:266 msgid "PEP written and implemented by Yury Selivanov." msgstr "" -#: ../../whatsnew/3.5.rst:272 msgid "PEP 465 - A dedicated infix operator for matrix multiplication" msgstr "" -#: ../../whatsnew/3.5.rst:274 msgid "" ":pep:`465` adds the ``@`` infix operator for matrix multiplication. " "Currently, no builtin Python types implement the new operator, however, it " -"can be implemented by defining :meth:`__matmul__`, :meth:`__rmatmul__`, " -"and :meth:`__imatmul__` for regular, reflected, and in-place matrix " -"multiplication. The semantics of these methods is similar to that of " -"methods defining other infix arithmetic operators." +"can be implemented by defining :meth:`~object.__matmul__`, :meth:`~object." +"__rmatmul__`, and :meth:`~object.__imatmul__` for regular, reflected, and in-" +"place matrix multiplication. The semantics of these methods is similar to " +"that of methods defining other infix arithmetic operators." msgstr "" -#: ../../whatsnew/3.5.rst:281 msgid "" "Matrix multiplication is a notably common operation in many fields of " "mathematics, science, engineering, and the addition of ``@`` allows writing " "cleaner code::" msgstr "" -#: ../../whatsnew/3.5.rst:285 msgid "S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)" msgstr "" -#: ../../whatsnew/3.5.rst:287 msgid "instead of::" msgstr "" -#: ../../whatsnew/3.5.rst:289 msgid "" "S = dot((dot(H, beta) - r).T,\n" " dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))" msgstr "" -#: ../../whatsnew/3.5.rst:292 msgid "NumPy 1.10 has support for the new operator::" msgstr "" -#: ../../whatsnew/3.5.rst:294 msgid "" ">>> import numpy\n" "\n" @@ -426,26 +360,21 @@ msgid "" "array([ 1., 1., 1.])" msgstr "" -#: ../../whatsnew/3.5.rst:312 msgid ":pep:`465` -- A dedicated infix operator for matrix multiplication" msgstr "" -#: ../../whatsnew/3.5.rst:313 msgid "PEP written by Nathaniel J. Smith; implemented by Benjamin Peterson." msgstr "" -#: ../../whatsnew/3.5.rst:319 msgid "PEP 448 - Additional Unpacking Generalizations" msgstr "" -#: ../../whatsnew/3.5.rst:321 msgid "" ":pep:`448` extends the allowed uses of the ``*`` iterable unpacking operator " "and ``**`` dictionary unpacking operator. It is now possible to use an " "arbitrary number of unpackings in :ref:`function calls `::" msgstr "" -#: ../../whatsnew/3.5.rst:325 msgid "" ">>> print(*[1], *[2], 3, *[4, 5])\n" "1 2 3 4 5\n" @@ -458,13 +387,11 @@ msgid "" "1 2 3 4" msgstr "" -#: ../../whatsnew/3.5.rst:335 msgid "" "Similarly, tuple, list, set, and dictionary displays allow multiple " "unpackings (see :ref:`exprlists` and :ref:`dict`)::" msgstr "" -#: ../../whatsnew/3.5.rst:338 msgid "" ">>> *range(4), 4\n" "(0, 1, 2, 3, 4)\n" @@ -479,27 +406,22 @@ msgid "" "{'x': 1, 'y': 2}" msgstr "" -#: ../../whatsnew/3.5.rst:352 msgid ":pep:`448` -- Additional Unpacking Generalizations" msgstr "" -#: ../../whatsnew/3.5.rst:353 msgid "" "PEP written by Joshua Landau; implemented by Neil Girdhar, Thomas Wouters, " "and Joshua Landau." msgstr "" -#: ../../whatsnew/3.5.rst:360 msgid "PEP 461 - percent formatting support for bytes and bytearray" msgstr "" -#: ../../whatsnew/3.5.rst:362 msgid "" ":pep:`461` adds support for the ``%`` :ref:`interpolation operator ` to :class:`bytes` and :class:`bytearray`." msgstr "" -#: ../../whatsnew/3.5.rst:366 msgid "" "While interpolation is usually thought of as a string operation, there are " "cases where interpolation on ``bytes`` or ``bytearrays`` makes sense, and " @@ -509,11 +431,9 @@ msgid "" "ASCII compatible text." msgstr "" -#: ../../whatsnew/3.5.rst:373 ../../whatsnew/3.5.rst:1848 msgid "Examples::" msgstr "Példák::" -#: ../../whatsnew/3.5.rst:375 msgid "" ">>> b'Hello %b!' % b'World'\n" "b'Hello World!'\n" @@ -522,13 +442,11 @@ msgid "" "b'x=1 y=2.500000'" msgstr "" -#: ../../whatsnew/3.5.rst:381 msgid "" "Unicode is not allowed for ``%b``, but it is accepted by ``%a`` (equivalent " "of ``repr(obj).encode('ascii', 'backslashreplace')``)::" msgstr "" -#: ../../whatsnew/3.5.rst:384 msgid "" ">>> b'Hello %b!' % 'World'\n" "Traceback (most recent call last):\n" @@ -540,33 +458,27 @@ msgid "" "b\"price: '10\\\\u20ac'\"" msgstr "" -#: ../../whatsnew/3.5.rst:392 msgid "" "Note that ``%s`` and ``%r`` conversion types, although supported, should " "only be used in codebases that need compatibility with Python 2." msgstr "" -#: ../../whatsnew/3.5.rst:397 msgid ":pep:`461` -- Adding % formatting to bytes and bytearray" msgstr "" -#: ../../whatsnew/3.5.rst:398 msgid "" "PEP written by Ethan Furman; implemented by Neil Schemenauer and Ethan " "Furman." msgstr "" -#: ../../whatsnew/3.5.rst:405 msgid "PEP 484 - Type Hints" msgstr "" -#: ../../whatsnew/3.5.rst:407 msgid "" -"Function annotation syntax has been a Python feature since version 3.0 " -"(:pep:`3107`), however the semantics of annotations has been left undefined." +"Function annotation syntax has been a Python feature since version 3.0 (:pep:" +"`3107`), however the semantics of annotations has been left undefined." msgstr "" -#: ../../whatsnew/3.5.rst:410 msgid "" "Experience has shown that the majority of function annotation uses were to " "provide type hints to function parameters and return values. It became " @@ -574,69 +486,57 @@ msgid "" "library included the base definitions and tools for type annotations." msgstr "" -#: ../../whatsnew/3.5.rst:415 msgid "" ":pep:`484` introduces a :term:`provisional module ` to " "provide these standard definitions and tools, along with some conventions " "for situations where annotations are not available." msgstr "" -#: ../../whatsnew/3.5.rst:419 msgid "" "For example, here is a simple function whose argument and return type are " "declared in the annotations::" msgstr "" -#: ../../whatsnew/3.5.rst:422 msgid "" "def greeting(name: str) -> str:\n" " return 'Hello ' + name" msgstr "" -#: ../../whatsnew/3.5.rst:425 msgid "" -"While these annotations are available at runtime through the " -"usual :attr:`~object.__annotations__` attribute, *no automatic type checking " -"happens at runtime*. Instead, it is assumed that a separate off-line type " -"checker (e.g. `mypy `_) will be used for on-demand " -"source code analysis." +"While these annotations are available at runtime through the usual :attr:" +"`~object.__annotations__` attribute, *no automatic type checking happens at " +"runtime*. Instead, it is assumed that a separate off-line type checker (e." +"g. `mypy `_) will be used for on-demand source code " +"analysis." msgstr "" -#: ../../whatsnew/3.5.rst:431 msgid "" -"The type system supports unions, generic types, and a special type " -"named :class:`~typing.Any` which is consistent with (i.e. assignable to and " -"from) all types." +"The type system supports unions, generic types, and a special type named :" +"class:`~typing.Any` which is consistent with (i.e. assignable to and from) " +"all types." msgstr "" -#: ../../whatsnew/3.5.rst:437 msgid ":mod:`typing` module documentation" msgstr "" -#: ../../whatsnew/3.5.rst:438 msgid ":pep:`484` -- Type Hints" msgstr "" -#: ../../whatsnew/3.5.rst:439 msgid "" "PEP written by Guido van Rossum, Jukka Lehtosalo, and Łukasz Langa; " "implemented by Guido van Rossum." msgstr "" -#: ../../whatsnew/3.5.rst:441 msgid ":pep:`483` -- The Theory of Type Hints" msgstr "" -#: ../../whatsnew/3.5.rst:442 msgid "PEP written by Guido van Rossum" msgstr "" -#: ../../whatsnew/3.5.rst:448 msgid "" "PEP 471 - os.scandir() function -- a better and faster directory iterator" msgstr "" -#: ../../whatsnew/3.5.rst:450 msgid "" ":pep:`471` adds a new directory iteration function, :func:`os.scandir`, to " "the standard library. Additionally, :func:`os.walk` is now implemented " @@ -646,14 +546,12 @@ msgid "" "tree." msgstr "" -#: ../../whatsnew/3.5.rst:457 msgid "" "Additionally, ``scandir`` returns an iterator, as opposed to returning a " "list of file names, which improves memory efficiency when iterating over " "very large directories." msgstr "" -#: ../../whatsnew/3.5.rst:461 msgid "" "The following example shows a simple use of :func:`os.scandir` to display " "all the files (excluding directories) in the given *path* that don't start " @@ -661,28 +559,23 @@ msgid "" "generally not make an additional system call::" msgstr "" -#: ../../whatsnew/3.5.rst:466 msgid "" "for entry in os.scandir(path):\n" " if not entry.name.startswith('.') and entry.is_file():\n" " print(entry.name)" msgstr "" -#: ../../whatsnew/3.5.rst:472 msgid "" ":pep:`471` -- os.scandir() function -- a better and faster directory iterator" msgstr "" -#: ../../whatsnew/3.5.rst:473 msgid "" "PEP written and implemented by Ben Hoyt with the help of Victor Stinner." msgstr "" -#: ../../whatsnew/3.5.rst:479 msgid "PEP 475: Retry system calls failing with EINTR" msgstr "" -#: ../../whatsnew/3.5.rst:481 msgid "" "An :py:const:`errno.EINTR` error code is returned whenever a system call, " "that is waiting for I/O, is interrupted by a signal. Previously, Python " @@ -690,32 +583,26 @@ msgid "" "writing a Python application, the developer had two choices:" msgstr "" -#: ../../whatsnew/3.5.rst:486 msgid "Ignore the ``InterruptedError``." msgstr "" -#: ../../whatsnew/3.5.rst:487 msgid "" "Handle the ``InterruptedError`` and attempt to restart the interrupted " "system call at every call site." msgstr "" -#: ../../whatsnew/3.5.rst:490 msgid "" "The first option makes an application fail intermittently. The second option " "adds a large amount of boilerplate that makes the code nearly unreadable. " "Compare::" msgstr "" -#: ../../whatsnew/3.5.rst:494 msgid "print(\"Hello World\")" msgstr "" -#: ../../whatsnew/3.5.rst:496 msgid "and::" msgstr "" -#: ../../whatsnew/3.5.rst:498 msgid "" "while True:\n" " try:\n" @@ -725,7 +612,6 @@ msgid "" " continue" msgstr "" -#: ../../whatsnew/3.5.rst:505 msgid "" ":pep:`475` implements automatic retry of system calls on ``EINTR``. This " "removes the burden of dealing with ``EINTR`` or :exc:`InterruptedError` in " @@ -734,73 +620,65 @@ msgid "" "the signal handler does not raise an exception." msgstr "" -#: ../../whatsnew/3.5.rst:512 msgid "" "Below is a list of functions which are now retried when interrupted by a " "signal:" msgstr "" -#: ../../whatsnew/3.5.rst:515 msgid ":func:`open` and :func:`io.open`;" msgstr "" -#: ../../whatsnew/3.5.rst:517 msgid "functions of the :mod:`faulthandler` module;" msgstr "" -#: ../../whatsnew/3.5.rst:519 msgid "" -":mod:`os` " -"functions: :func:`~os.fchdir`, :func:`~os.fchmod`, :func:`~os.fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, :func:`~os.fstatvfs`, :func:`~os.fsync`, :func:`~os.ftruncate`, :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os.open`, :func:`~os.posix_fadvise`, :func:`~os.posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`, :func:`~os.read`, :func:`~os.readv`, :func:`~os.sendfile`, :func:`~os.wait3`, :func:`~os.wait4`, :func:`~os.wait`, :func:`~os.waitid`, :func:`~os.waitpid`, :func:`~os.write`, :func:`~os.writev`;" +":mod:`os` functions: :func:`~os.fchdir`, :func:`~os.fchmod`, :func:`~os." +"fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, :func:`~os.fstatvfs`, :" +"func:`~os.fsync`, :func:`~os.ftruncate`, :func:`~os.mkfifo`, :func:`~os." +"mknod`, :func:`~os.open`, :func:`~os.posix_fadvise`, :func:`~os." +"posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`, :func:`~os.read`, :" +"func:`~os.readv`, :func:`~os.sendfile`, :func:`~os.wait3`, :func:`~os." +"wait4`, :func:`~os.wait`, :func:`~os.waitid`, :func:`~os.waitpid`, :func:" +"`~os.write`, :func:`~os.writev`;" msgstr "" -#: ../../whatsnew/3.5.rst:529 msgid "" -"special cases: :func:`os.close` and :func:`os.dup2` now " -"ignore :py:const:`~errno.EINTR` errors; the syscall is not retried (see the " -"PEP for the rationale);" +"special cases: :func:`os.close` and :func:`os.dup2` now ignore :py:const:" +"`~errno.EINTR` errors; the syscall is not retried (see the PEP for the " +"rationale);" msgstr "" -#: ../../whatsnew/3.5.rst:533 msgid "" -":mod:`select` functions: :func:`devpoll.poll() " -"`, :func:`epoll.poll() " -"`, :func:`kqueue.control() " -"`, :func:`poll.poll() " -"`, :func:`~select.select`;" +":mod:`select` functions: :func:`devpoll.poll() `, :func:" +"`epoll.poll() `, :func:`kqueue.control() `, :func:`poll.poll() `, :func:`~select.select`;" msgstr "" -#: ../../whatsnew/3.5.rst:538 msgid "" -"methods of the :class:`~socket.socket` " -"class: :meth:`~socket.socket.accept`, :meth:`~socket.socket.connect` (except " -"for non-blocking " -"sockets), :meth:`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`, :meth:`~socket.socket.recvmsg`, :meth:`~socket.socket.send`, :meth:`~socket.socket.sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" +"methods of the :class:`~socket.socket` class: :meth:`~socket.socket." +"accept`, :meth:`~socket.socket.connect` (except for non-blocking sockets), :" +"meth:`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`, :meth:`~socket." +"socket.recvmsg`, :meth:`~socket.socket.send`, :meth:`~socket.socket." +"sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" msgstr "" -#: ../../whatsnew/3.5.rst:545 msgid ":func:`signal.sigtimedwait` and :func:`signal.sigwaitinfo`;" msgstr "" -#: ../../whatsnew/3.5.rst:547 msgid ":func:`time.sleep`." msgstr "" -#: ../../whatsnew/3.5.rst:551 msgid ":pep:`475` -- Retry system calls failing with EINTR" msgstr "" -#: ../../whatsnew/3.5.rst:552 msgid "" "PEP and implementation written by Charles-François Natali and Victor " "Stinner, with the help of Antoine Pitrou (the French connection)." msgstr "" -#: ../../whatsnew/3.5.rst:559 msgid "PEP 479: Change StopIteration handling inside generators" msgstr "" -#: ../../whatsnew/3.5.rst:561 msgid "" "The interaction of generators and :exc:`StopIteration` in Python 3.4 and " "earlier was sometimes surprising, and could conceal obscure bugs. " @@ -809,24 +687,21 @@ msgid "" "driving the generator." msgstr "" -#: ../../whatsnew/3.5.rst:567 msgid "" ":pep:`479` changes the behavior of generators: when a ``StopIteration`` " -"exception is raised inside a generator, it is replaced with " -"a :exc:`RuntimeError` before it exits the generator frame. The main goal of " -"this change is to ease debugging in the situation where an " -"unguarded :func:`next` call raises ``StopIteration`` and causes the " -"iteration controlled by the generator to terminate silently. This is " -"particularly pernicious in combination with the ``yield from`` construct." +"exception is raised inside a generator, it is replaced with a :exc:" +"`RuntimeError` before it exits the generator frame. The main goal of this " +"change is to ease debugging in the situation where an unguarded :func:`next` " +"call raises ``StopIteration`` and causes the iteration controlled by the " +"generator to terminate silently. This is particularly pernicious in " +"combination with the ``yield from`` construct." msgstr "" -#: ../../whatsnew/3.5.rst:575 msgid "" -"This is a backwards incompatible change, so to enable the new behavior, " -"a :term:`__future__` import is necessary::" +"This is a backwards incompatible change, so to enable the new behavior, a :" +"term:`__future__` import is necessary::" msgstr "" -#: ../../whatsnew/3.5.rst:578 msgid "" ">>> from __future__ import generator_stop\n" "\n" @@ -846,28 +721,23 @@ msgid "" "RuntimeError: generator raised StopIteration" msgstr "" -#: ../../whatsnew/3.5.rst:595 msgid "" "Without a ``__future__`` import, a :exc:`PendingDeprecationWarning` will be " "raised whenever a :exc:`StopIteration` exception is raised inside a " "generator." msgstr "" -#: ../../whatsnew/3.5.rst:600 msgid ":pep:`479` -- Change StopIteration handling inside generators" msgstr "" -#: ../../whatsnew/3.5.rst:601 msgid "" "PEP written by Chris Angelico and Guido van Rossum. Implemented by Chris " "Angelico, Yury Selivanov and Nick Coghlan." msgstr "" -#: ../../whatsnew/3.5.rst:608 msgid "PEP 485: A function for testing approximate equality" msgstr "" -#: ../../whatsnew/3.5.rst:610 msgid "" ":pep:`485` adds the :func:`math.isclose` and :func:`cmath.isclose` functions " "which tell whether two values are approximately equal or \"close\" to each " @@ -877,7 +747,6 @@ msgid "" "the larger absolute value::" msgstr "" -#: ../../whatsnew/3.5.rst:617 msgid "" ">>> import math\n" ">>> a = 5.0\n" @@ -888,13 +757,11 @@ msgid "" "False" msgstr "" -#: ../../whatsnew/3.5.rst:625 msgid "" "It is also possible to compare two values using absolute tolerance, which " "must be a non-negative value::" msgstr "" -#: ../../whatsnew/3.5.rst:628 msgid "" ">>> import math\n" ">>> a = 5.0\n" @@ -905,20 +772,16 @@ msgid "" "False" msgstr "" -#: ../../whatsnew/3.5.rst:638 msgid ":pep:`485` -- A function for testing approximate equality" msgstr "" -#: ../../whatsnew/3.5.rst:639 msgid "" "PEP written by Christopher Barker; implemented by Chris Barker and Tal Einat." msgstr "" -#: ../../whatsnew/3.5.rst:646 msgid "PEP 486: Make the Python Launcher aware of virtual environments" msgstr "" -#: ../../whatsnew/3.5.rst:648 msgid "" ":pep:`486` makes the Windows launcher (see :pep:`397`) aware of an active " "virtual environment. When the default interpreter would be used and the " @@ -926,50 +789,41 @@ msgid "" "environment will be used." msgstr "" -#: ../../whatsnew/3.5.rst:655 msgid ":pep:`486` -- Make the Python Launcher aware of virtual environments" msgstr "" -#: ../../whatsnew/3.5.rst:656 msgid "PEP written and implemented by Paul Moore." msgstr "" -#: ../../whatsnew/3.5.rst:662 msgid "PEP 488: Elimination of PYO files" msgstr "" -#: ../../whatsnew/3.5.rst:664 msgid "" -":pep:`488` does away with the concept of ``.pyo`` files. This means that " -"``.pyc`` files represent both unoptimized and optimized bytecode. To prevent " +":pep:`488` does away with the concept of ``.pyo`` files. This means that ``." +"pyc`` files represent both unoptimized and optimized bytecode. To prevent " "the need to constantly regenerate bytecode files, ``.pyc`` files now have an " "optional ``opt-`` tag in their name when the bytecode is optimized. This has " "the side-effect of no more bytecode file name clashes when running under " "either :option:`-O` or :option:`-OO`. Consequently, bytecode files generated " -"from :option:`-O`, and :option:`-OO` may now exist " -"simultaneously. :func:`importlib.util.cache_from_source` has an updated API " -"to help with this change." +"from :option:`-O`, and :option:`-OO` may now exist simultaneously. :func:" +"`importlib.util.cache_from_source` has an updated API to help with this " +"change." msgstr "" -#: ../../whatsnew/3.5.rst:676 msgid ":pep:`488` -- Elimination of PYO files" msgstr "" -#: ../../whatsnew/3.5.rst:677 msgid "PEP written and implemented by Brett Cannon." msgstr "" -#: ../../whatsnew/3.5.rst:683 msgid "PEP 489: Multi-phase extension module initialization" msgstr "" -#: ../../whatsnew/3.5.rst:685 msgid "" ":pep:`489` updates extension module initialization to take advantage of the " "two step module loading mechanism introduced by :pep:`451` in Python 3.4." msgstr "" -#: ../../whatsnew/3.5.rst:688 msgid "" "This change brings the import semantics of extension modules that opt-in to " "using the new mechanism much closer to those of Python source and bytecode " @@ -977,77 +831,63 @@ msgid "" "rather than being restricted to ASCII." msgstr "" -#: ../../whatsnew/3.5.rst:695 msgid ":pep:`489` -- Multi-phase extension module initialization" msgstr "" -#: ../../whatsnew/3.5.rst:696 msgid "" "PEP written by Petr Viktorin, Stefan Behnel, and Nick Coghlan; implemented " "by Petr Viktorin." msgstr "" -#: ../../whatsnew/3.5.rst:701 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.5.rst:703 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.5.rst:705 msgid "" "Added the ``\"namereplace\"`` error handlers. The ``\"backslashreplace\"`` " "error handlers now work with decoding and translating. (Contributed by " "Serhiy Storchaka in :issue:`19676` and :issue:`22286`.)" msgstr "" -#: ../../whatsnew/3.5.rst:709 msgid "" -"The :option:`-b` option now affects comparisons of :class:`bytes` " -"with :class:`int`. (Contributed by Serhiy Storchaka in :issue:`23681`.)" +"The :option:`-b` option now affects comparisons of :class:`bytes` with :" +"class:`int`. (Contributed by Serhiy Storchaka in :issue:`23681`.)" msgstr "" -#: ../../whatsnew/3.5.rst:712 msgid "" "New Kazakh ``kz1048`` and Tajik ``koi8_t`` :ref:`codecs `. (Contributed by Serhiy Storchaka in :issue:`22682` " -"and :issue:`22681`.)" +"encodings>`. (Contributed by Serhiy Storchaka in :issue:`22682` and :issue:" +"`22681`.)" msgstr "" -#: ../../whatsnew/3.5.rst:715 msgid "" -"Property docstrings are now writable. This is especially useful " -"for :func:`collections.namedtuple` docstrings. (Contributed by Berker Peksag " -"in :issue:`24064`.)" +"Property docstrings are now writable. This is especially useful for :func:" +"`collections.namedtuple` docstrings. (Contributed by Berker Peksag in :issue:" +"`24064`.)" msgstr "" -#: ../../whatsnew/3.5.rst:719 msgid "" "Circular imports involving relative imports are now supported. (Contributed " "by Brett Cannon and Antoine Pitrou in :issue:`17636`.)" msgstr "" -#: ../../whatsnew/3.5.rst:724 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.5.rst:727 msgid "typing" msgstr "" -#: ../../whatsnew/3.5.rst:729 msgid "" "The new :mod:`typing` :term:`provisional ` module provides " "standard definitions and tools for function type annotations. See :ref:`Type " "Hints ` for more information." msgstr "" -#: ../../whatsnew/3.5.rst:736 msgid "zipapp" msgstr "" -#: ../../whatsnew/3.5.rst:738 msgid "" "The new :mod:`zipapp` module (specified in :pep:`441`) provides an API and " "command line tool for creating executable Python Zip Applications, which " @@ -1055,80 +895,66 @@ msgid "" "publicized, either at the time or since." msgstr "" -#: ../../whatsnew/3.5.rst:743 msgid "" "With the new module, bundling your application is as simple as putting all " "the files, including a ``__main__.py`` file, into a directory ``myapp`` and " "running:" msgstr "" -#: ../../whatsnew/3.5.rst:747 msgid "" "$ python -m zipapp myapp\n" "$ python myapp.pyz" msgstr "" -#: ../../whatsnew/3.5.rst:752 msgid "" -"The module implementation has been contributed by Paul Moore " -"in :issue:`23491`." +"The module implementation has been contributed by Paul Moore in :issue:" +"`23491`." msgstr "" -#: ../../whatsnew/3.5.rst:757 msgid ":pep:`441` -- Improving Python ZIP Application Support" msgstr "" -#: ../../whatsnew/3.5.rst:761 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.5.rst:764 msgid "argparse" msgstr "" -#: ../../whatsnew/3.5.rst:766 msgid "" -"The :class:`~argparse.ArgumentParser` class now allows " -"disabling :ref:`abbreviated usage ` of long options by " -"setting :ref:`allow_abbrev` to ``False``. (Contributed by Jonathan Paugh, " -"Steven Bethard, paul j3 and Daniel Eriksson in :issue:`14910`.)" +"The :class:`~argparse.ArgumentParser` class now allows disabling :ref:" +"`abbreviated usage ` of long options by setting :ref:" +"`allow_abbrev` to ``False``. (Contributed by Jonathan Paugh, Steven " +"Bethard, paul j3 and Daniel Eriksson in :issue:`14910`.)" msgstr "" -#: ../../whatsnew/3.5.rst:773 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.5.rst:775 msgid "" "Since the :mod:`asyncio` module is :term:`provisional `, " -"all changes introduced in Python 3.5 have also been backported to Python " -"3.4.x." +"all changes introduced in Python 3.5 have also been backported to Python 3.4." +"x." msgstr "" -#: ../../whatsnew/3.5.rst:778 msgid "Notable changes in the :mod:`asyncio` module since Python 3.4.0:" msgstr "" -#: ../../whatsnew/3.5.rst:780 msgid "" -"New debugging APIs: :meth:`loop.set_debug() ` " -"and :meth:`loop.get_debug() ` methods. (Contributed " -"by Victor Stinner.)" +"New debugging APIs: :meth:`loop.set_debug() ` and :" +"meth:`loop.get_debug() ` methods. (Contributed by " +"Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.5.rst:784 msgid "" "The proactor event loop now supports SSL. (Contributed by Antoine Pitrou and " "Victor Stinner in :issue:`22560`.)" msgstr "" -#: ../../whatsnew/3.5.rst:787 msgid "" "A new :meth:`loop.is_closed() ` method to check if " "the event loop is closed. (Contributed by Victor Stinner in :issue:`21326`.)" msgstr "" -#: ../../whatsnew/3.5.rst:791 msgid "" "A new :meth:`loop.create_task() ` to conveniently " "create and schedule a new :class:`~asyncio.Task` for a coroutine. The " @@ -1137,45 +963,37 @@ msgid "" "etc. (Contributed by Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.5.rst:798 msgid "" -"A new :meth:`transport.get_write_buffer_limits() " -"` method to inquire for " -"*high-* and *low-* water limits of the flow control. (Contributed by Victor " -"Stinner.)" +"A new :meth:`transport.get_write_buffer_limits() ` method to inquire for *high-* and *low-* water " +"limits of the flow control. (Contributed by Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.5.rst:803 msgid "" -"The :func:`~asyncio.async` function is deprecated in favor " -"of :func:`~asyncio.ensure_future`. (Contributed by Yury Selivanov.)" +"The :func:`!async` function is deprecated in favor of :func:`~asyncio." +"ensure_future`. (Contributed by Yury Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:807 msgid "" -"New :meth:`loop.set_task_factory() ` " -"and :meth:`loop.get_task_factory() ` methods " -"to customize the task factory that :meth:`loop.create_task() " -"` method uses. (Contributed by Yury Selivanov.)" +"New :meth:`loop.set_task_factory() ` and :" +"meth:`loop.get_task_factory() ` methods to " +"customize the task factory that :meth:`loop.create_task() ` method uses. (Contributed by Yury Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:814 msgid "" "New :meth:`Queue.join() ` and :meth:`Queue.task_done() " "` queue methods. (Contributed by Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.5.rst:818 msgid "" -"The ``JoinableQueue`` class was removed, in favor of " -"the :class:`asyncio.Queue` class. (Contributed by Victor Stinner.)" +"The ``JoinableQueue`` class was removed, in favor of the :class:`asyncio." +"Queue` class. (Contributed by Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.5.rst:822 msgid "Updates in 3.5.1:" msgstr "" -#: ../../whatsnew/3.5.rst:824 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " "such as :meth:`loop.run_until_complete() `, " @@ -1183,30 +1001,25 @@ msgid "" "by Yury Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:829 msgid "" "New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " "to event loops from other threads. (Contributed by Vincent Michel.)" msgstr "" -#: ../../whatsnew/3.5.rst:833 msgid "" "New :meth:`Transport.is_closing() ` method " "to check if the transport is closing or closed. (Contributed by Yury " "Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:837 msgid "" "The :meth:`loop.create_server() ` method can now " "accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" -#: ../../whatsnew/3.5.rst:841 msgid "Updates in 3.5.2:" msgstr "" -#: ../../whatsnew/3.5.rst:843 msgid "" "New :meth:`loop.create_future() ` method to " "create Future objects. This allows alternative event loop implementations, " @@ -1215,115 +1028,94 @@ msgid "" "Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:850 msgid "" -"New :meth:`loop.get_exception_handler() " -"` method to get the current exception " -"handler. (Contributed by Yury Selivanov.)" +"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " +"(Contributed by Yury Selivanov.)" msgstr "" -#: ../../whatsnew/3.5.rst:854 msgid "" "New :meth:`StreamReader.readuntil() ` method " "to read data from the stream until a separator bytes sequence appears. " "(Contributed by Mark Korenberg.)" msgstr "" -#: ../../whatsnew/3.5.rst:859 msgid "" -"The :meth:`loop.create_connection() ` " -"and :meth:`loop.create_server() ` methods are " +"The :meth:`loop.create_connection() ` and :" +"meth:`loop.create_server() ` methods are " "optimized to avoid calling the system ``getaddrinfo`` function if the " "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" -#: ../../whatsnew/3.5.rst:865 msgid "" "The :meth:`loop.sock_connect(sock, address) ` no " "longer requires the *address* to be resolved prior to the call. (Contributed " "by A. Jesse Jiryu Davis.)" msgstr "" -#: ../../whatsnew/3.5.rst:871 msgid "bz2" msgstr "" -#: ../../whatsnew/3.5.rst:873 msgid "" "The :meth:`BZ2Decompressor.decompress ` " "method now accepts an optional *max_length* argument to limit the maximum " "size of decompressed data. (Contributed by Nikolaus Rath in :issue:`15955`.)" msgstr "" -#: ../../whatsnew/3.5.rst:879 msgid "cgi" msgstr "" -#: ../../whatsnew/3.5.rst:881 msgid "" "The :class:`!FieldStorage` class now supports the :term:`context manager` " "protocol. (Contributed by Berker Peksag in :issue:`20289`.)" msgstr "" -#: ../../whatsnew/3.5.rst:886 msgid "cmath" msgstr "" -#: ../../whatsnew/3.5.rst:888 msgid "" "A new function :func:`~cmath.isclose` provides a way to test for approximate " "equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" msgstr "" -#: ../../whatsnew/3.5.rst:893 msgid "code" msgstr "" -#: ../../whatsnew/3.5.rst:895 msgid "" -"The :func:`InteractiveInterpreter.showtraceback() " -"` method now prints the full " -"chained traceback, just like the interactive interpreter. (Contributed by " -"Claudiu Popa in :issue:`17442`.)" +"The :func:`InteractiveInterpreter.showtraceback() ` method now prints the full chained " +"traceback, just like the interactive interpreter. (Contributed by Claudiu " +"Popa in :issue:`17442`.)" msgstr "" -#: ../../whatsnew/3.5.rst:901 msgid "collections" msgstr "" -#: ../../whatsnew/3.5.rst:905 msgid "" "The :class:`~collections.OrderedDict` class is now implemented in C, which " -"makes it 4 to 100 times faster. (Contributed by Eric Snow " -"in :issue:`16991`.)" +"makes it 4 to 100 times faster. (Contributed by Eric Snow in :issue:" +"`16991`.)" msgstr "" -#: ../../whatsnew/3.5.rst:908 msgid "" -":meth:`OrderedDict.items() " -"`, :meth:`OrderedDict.keys() " -"`, :meth:`OrderedDict.values() " -"` views now support :func:`reversed` " -"iteration. (Contributed by Serhiy Storchaka in :issue:`19505`.)" +":meth:`!OrderedDict.items`, :meth:`!OrderedDict.keys`, and :meth:`!" +"OrderedDict.values` views now support :func:`reversed` iteration. " +"(Contributed by Serhiy Storchaka in :issue:`19505`.)" msgstr "" -#: ../../whatsnew/3.5.rst:914 msgid "" -"The :class:`~collections.deque` class now " -"defines :meth:`~collections.deque.index`, :meth:`~collections.deque.insert`, " -"and :meth:`~collections.deque.copy`, and supports the ``+`` and ``*`` " -"operators. This allows deques to be recognized as " -"a :class:`~collections.abc.MutableSequence` and improves their " -"substitutability for lists. (Contributed by Raymond Hettinger " -"in :issue:`23704`.)" +"The :class:`~collections.deque` class now defines :meth:`~collections.deque." +"index`, :meth:`~collections.deque.insert`, and :meth:`~collections.deque." +"copy`, and supports the ``+`` and ``*`` operators. This allows deques to be " +"recognized as a :class:`~collections.abc.MutableSequence` and improves their " +"substitutability for lists. (Contributed by Raymond Hettinger in :issue:" +"`23704`.)" msgstr "" -#: ../../whatsnew/3.5.rst:921 msgid "" "Docstrings produced by :func:`~collections.namedtuple` can now be updated::" msgstr "" -#: ../../whatsnew/3.5.rst:923 msgid "" "Point = namedtuple('Point', ['x', 'y'])\n" "Point.__doc__ += ': Cartesian coordinate'\n" @@ -1331,83 +1123,71 @@ msgid "" "Point.y.__doc__ = 'ordinate'" msgstr "" -#: ../../whatsnew/3.5.rst:928 msgid "(Contributed by Berker Peksag in :issue:`24064`.)" msgstr "" -#: ../../whatsnew/3.5.rst:930 msgid "" -"The :class:`~collections.UserString` class now implements " -"the :meth:`__getnewargs__`, :meth:`__rmod__`, :meth:`~str.casefold`, :meth:`~str.format_map`, :meth:`~str.isprintable`, " -"and :meth:`~str.maketrans` methods to match the corresponding methods " -"of :class:`str`. (Contributed by Joe Jevnik in :issue:`22189`.)" +"The :class:`~collections.UserString` class now implements the :meth:`~object." +"__getnewargs__`, :meth:`~object.__rmod__`, :meth:`~str.casefold`, :meth:" +"`~str.format_map`, :meth:`~str.isprintable`, and :meth:`~str.maketrans` " +"methods to match the corresponding methods of :class:`str`. (Contributed by " +"Joe Jevnik in :issue:`22189`.)" msgstr "" -#: ../../whatsnew/3.5.rst:938 msgid "collections.abc" msgstr "" -#: ../../whatsnew/3.5.rst:940 msgid "" -"The :meth:`Sequence.index() ` method now " -"accepts *start* and *stop* arguments to match the corresponding methods " -"of :class:`tuple`, :class:`list`, etc. (Contributed by Devin Jeanpierre " -"in :issue:`23086`.)" +"The :meth:`Sequence.index() ` method " +"now accepts *start* and *stop* arguments to match the corresponding methods " +"of :class:`tuple`, :class:`list`, etc. (Contributed by Devin Jeanpierre in :" +"issue:`23086`.)" msgstr "" -#: ../../whatsnew/3.5.rst:945 msgid "" "A new :class:`~collections.abc.Generator` abstract base class. (Contributed " "by Stefan Behnel in :issue:`24018`.)" msgstr "" -#: ../../whatsnew/3.5.rst:948 msgid "" -"New :class:`~collections.abc.Awaitable`, :class:`~collections.abc.Coroutine`, :class:`~collections.abc.AsyncIterator`, " -"and :class:`~collections.abc.AsyncIterable` abstract base classes. " -"(Contributed by Yury Selivanov in :issue:`24184`.)" +"New :class:`~collections.abc.Awaitable`, :class:`~collections.abc." +"Coroutine`, :class:`~collections.abc.AsyncIterator`, and :class:" +"`~collections.abc.AsyncIterable` abstract base classes. (Contributed by Yury " +"Selivanov in :issue:`24184`.)" msgstr "" -#: ../../whatsnew/3.5.rst:953 msgid "" "For earlier Python versions, a backport of the new ABCs is available in an " "external :pypi:`PyPI package `." msgstr "" -#: ../../whatsnew/3.5.rst:958 msgid "compileall" msgstr "" -#: ../../whatsnew/3.5.rst:960 msgid "" "A new :mod:`compileall` option, :samp:`-j {N}`, allows running *N* workers " -"simultaneously to perform parallel bytecode compilation. " -"The :func:`~compileall.compile_dir` function has a corresponding ``workers`` " +"simultaneously to perform parallel bytecode compilation. The :func:" +"`~compileall.compile_dir` function has a corresponding ``workers`` " "parameter. (Contributed by Claudiu Popa in :issue:`16104`.)" msgstr "" -#: ../../whatsnew/3.5.rst:965 msgid "" "Another new option, ``-r``, allows controlling the maximum recursion level " "for subdirectories. (Contributed by Claudiu Popa in :issue:`19628`.)" msgstr "" -#: ../../whatsnew/3.5.rst:968 msgid "" "The ``-q`` command line option can now be specified more than once, in which " "case all output, including errors, will be suppressed. The corresponding " -"``quiet`` parameter " -"in :func:`~compileall.compile_dir`, :func:`~compileall.compile_file`, " -"and :func:`~compileall.compile_path` can now accept an integer value " -"indicating the level of output suppression. (Contributed by Thomas Kluyver " -"in :issue:`21338`.)" +"``quiet`` parameter in :func:`~compileall.compile_dir`, :func:`~compileall." +"compile_file`, and :func:`~compileall.compile_path` can now accept an " +"integer value indicating the level of output suppression. (Contributed by " +"Thomas Kluyver in :issue:`21338`.)" msgstr "" -#: ../../whatsnew/3.5.rst:977 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.5.rst:979 msgid "" "The :meth:`Executor.map() ` method now " "accepts a *chunksize* argument to allow batching of tasks to improve " @@ -1415,31 +1195,26 @@ msgid "" "(Contributed by Dan O'Reilly in :issue:`11271`.)" msgstr "" -#: ../../whatsnew/3.5.rst:984 msgid "" "The number of workers in the :class:`~concurrent.futures.ThreadPoolExecutor` " "constructor is optional now. The default value is 5 times the number of " "CPUs. (Contributed by Claudiu Popa in :issue:`21527`.)" msgstr "" -#: ../../whatsnew/3.5.rst:990 msgid "configparser" msgstr "" -#: ../../whatsnew/3.5.rst:992 msgid "" ":mod:`configparser` now provides a way to customize the conversion of values " -"by specifying a dictionary of converters in " -"the :class:`~configparser.ConfigParser` constructor, or by defining them as " -"methods in ``ConfigParser`` subclasses. Converters defined in a parser " -"instance are inherited by its section proxies." +"by specifying a dictionary of converters in the :class:`~configparser." +"ConfigParser` constructor, or by defining them as methods in " +"``ConfigParser`` subclasses. Converters defined in a parser instance are " +"inherited by its section proxies." msgstr "" -#: ../../whatsnew/3.5.rst:998 msgid "Example::" msgstr "" -#: ../../whatsnew/3.5.rst:1000 msgid "" ">>> import configparser\n" ">>> conv = {}\n" @@ -1458,15 +1233,12 @@ msgid "" "['a', 'b', 'c', 'd', 'e', 'f', 'g']" msgstr "" -#: ../../whatsnew/3.5.rst:1016 msgid "(Contributed by Łukasz Langa in :issue:`18159`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1020 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.5.rst:1022 msgid "" "The new :func:`~contextlib.redirect_stderr` :term:`context manager` (similar " "to :func:`~contextlib.redirect_stdout`) makes it easier for utility scripts " @@ -1474,7 +1246,6 @@ msgid "" "don't provide any options to redirect it::" msgstr "" -#: ../../whatsnew/3.5.rst:1027 msgid "" ">>> import contextlib, io, logging\n" ">>> f = io.StringIO()\n" @@ -1485,142 +1256,118 @@ msgid "" "'WARNING:root:warning\\n'" msgstr "" -#: ../../whatsnew/3.5.rst:1035 msgid "(Contributed by Berker Peksag in :issue:`22389`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1039 msgid "csv" msgstr "" -#: ../../whatsnew/3.5.rst:1041 msgid "" "The :meth:`~csv.csvwriter.writerow` method now supports arbitrary iterables, " "not just sequences. (Contributed by Serhiy Storchaka in :issue:`23171`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1046 msgid "curses" msgstr "" -#: ../../whatsnew/3.5.rst:1048 msgid "" -"The new :func:`~curses.update_lines_cols` function updates the :data:`LINES` " -"and :data:`COLS` module variables. This is useful for detecting manual " -"screen resizing. (Contributed by Arnon Yaari in :issue:`4254`.)" +"The new :func:`~curses.update_lines_cols` function updates the :data:" +"`~curses.LINES` and :data:`~curses.COLS` module variables. This is useful " +"for detecting manual screen resizing. (Contributed by Arnon Yaari in :issue:" +"`4254`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1054 msgid "dbm" msgstr "" -#: ../../whatsnew/3.5.rst:1056 msgid "" ":func:`dumb.open ` always creates a new database when the " -"flag has the value ``\"n\"``. (Contributed by Claudiu Popa " -"in :issue:`18039`.)" +"flag has the value ``\"n\"``. (Contributed by Claudiu Popa in :issue:" +"`18039`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1061 msgid "difflib" msgstr "" -#: ../../whatsnew/3.5.rst:1063 msgid "" "The charset of HTML documents generated by :meth:`HtmlDiff.make_file() " "` can now be customized by using a new *charset* " "keyword-only argument. The default charset of HTML document changed from " -"``\"ISO-8859-1\"`` to ``\"utf-8\"``. (Contributed by Berker Peksag " -"in :issue:`2052`.)" +"``\"ISO-8859-1\"`` to ``\"utf-8\"``. (Contributed by Berker Peksag in :issue:" +"`2052`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1070 msgid "" "The :func:`~difflib.diff_bytes` function can now compare lists of byte " "strings. This fixes a regression from Python 2. (Contributed by Terry J. " "Reedy and Greg Ward in :issue:`17445`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1076 msgid "distutils" msgstr "" -#: ../../whatsnew/3.5.rst:1078 msgid "" "Both the ``build`` and ``build_ext`` commands now accept a ``-j`` option to " "enable parallel building of extension modules. (Contributed by Antoine " "Pitrou in :issue:`5309`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1082 msgid "" "The ``distutils`` module now supports ``xz`` compression, and can be enabled " "by passing ``xztar`` as an argument to ``bdist --format``. (Contributed by " "Serhiy Storchaka in :issue:`16314`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1088 msgid "doctest" msgstr "" -#: ../../whatsnew/3.5.rst:1090 msgid "" -"The :func:`~doctest.DocTestSuite` function returns an " -"empty :class:`unittest.TestSuite` if *module* contains no docstrings, " -"instead of raising :exc:`ValueError`. (Contributed by Glenn Jones " -"in :issue:`15916`.)" +"The :func:`~doctest.DocTestSuite` function returns an empty :class:`unittest." +"TestSuite` if *module* contains no docstrings, instead of raising :exc:" +"`ValueError`. (Contributed by Glenn Jones in :issue:`15916`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1096 msgid "email" msgstr "" -#: ../../whatsnew/3.5.rst:1098 msgid "" -"A new policy option :attr:`Policy.mangle_from_ " -"` controls whether or not lines that start " -"with ``\"From \"`` in email bodies are prefixed with a ``\">\"`` character " -"by generators. The default is ``True`` for :attr:`~email.policy.compat32` " -"and ``False`` for all other policies. (Contributed by Milan Oberkirch " -"in :issue:`20098`.)" +"A new policy option :attr:`Policy.mangle_from_ ` controls whether or not lines that start with ``\"From \"`` " +"in email bodies are prefixed with a ``\">\"`` character by generators. The " +"default is ``True`` for :attr:`~email.policy.compat32` and ``False`` for all " +"other policies. (Contributed by Milan Oberkirch in :issue:`20098`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1104 msgid "" -"A new :meth:`Message.get_content_disposition() " -"` method provides easy access " -"to a canonical value for the :mailheader:`Content-Disposition` header. " -"(Contributed by Abhilash Raj in :issue:`21083`.)" +"A new :meth:`Message.get_content_disposition() ` method provides easy access to a canonical value " +"for the :mailheader:`Content-Disposition` header. (Contributed by Abhilash " +"Raj in :issue:`21083`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1110 msgid "" "A new policy option :attr:`EmailPolicy.utf8 ` " "can be set to ``True`` to encode email headers using the UTF-8 charset " "instead of using encoded words. This allows ``Messages`` to be formatted " -"according to :rfc:`6532` and used with an SMTP server that supports " -"the :rfc:`6531` ``SMTPUTF8`` extension. (Contributed by R. David Murray " -"in :issue:`24211`.)" +"according to :rfc:`6532` and used with an SMTP server that supports the :rfc:" +"`6531` ``SMTPUTF8`` extension. (Contributed by R. David Murray in :issue:" +"`24211`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1117 msgid "" "The :class:`mime.text.MIMEText ` constructor now " "accepts a :class:`charset.Charset ` instance. " "(Contributed by Claude Paroz and Berker Peksag in :issue:`16324`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1123 msgid "enum" msgstr "" -#: ../../whatsnew/3.5.rst:1125 msgid "" "The :class:`~enum.Enum` callable has a new parameter *start* to specify the " "initial number of enum values if only *names* are provided::" msgstr "" -#: ../../whatsnew/3.5.rst:1128 msgid "" ">>> Animal = enum.Enum('Animal', 'cat dog', start=10)\n" ">>> Animal.cat\n" @@ -1629,60 +1376,49 @@ msgid "" "" msgstr "" -#: ../../whatsnew/3.5.rst:1134 msgid "(Contributed by Ethan Furman in :issue:`21706`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1138 msgid "faulthandler" msgstr "" -#: ../../whatsnew/3.5.rst:1140 msgid "" -"The :func:`~faulthandler.enable`, :func:`~faulthandler.register`, :func:`~faulthandler.dump_traceback` " -"and :func:`~faulthandler.dump_traceback_later` functions now accept file " -"descriptors in addition to file-like objects. (Contributed by Wei Wu " -"in :issue:`23566`.)" +"The :func:`~faulthandler.enable`, :func:`~faulthandler.register`, :func:" +"`~faulthandler.dump_traceback` and :func:`~faulthandler." +"dump_traceback_later` functions now accept file descriptors in addition to " +"file-like objects. (Contributed by Wei Wu in :issue:`23566`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1148 msgid "functools" msgstr "" -#: ../../whatsnew/3.5.rst:1152 msgid "" "Most of the :func:`~functools.lru_cache` machinery is now implemented in C, " "making it significantly faster. (Contributed by Matt Joiner, Alexey " "Kachayev, and Serhiy Storchaka in :issue:`14373`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1158 msgid "glob" msgstr "" -#: ../../whatsnew/3.5.rst:1160 msgid "" "The :func:`~glob.iglob` and :func:`~glob.glob` functions now support " "recursive search in subdirectories, using the ``\"**\"`` pattern. " "(Contributed by Serhiy Storchaka in :issue:`13968`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1166 msgid "gzip" msgstr "" -#: ../../whatsnew/3.5.rst:1168 msgid "" "The *mode* argument of the :class:`~gzip.GzipFile` constructor now accepts " -"``\"x\"`` to request exclusive creation. (Contributed by Tim Heaney " -"in :issue:`19222`.)" +"``\"x\"`` to request exclusive creation. (Contributed by Tim Heaney in :" +"issue:`19222`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1174 msgid "heapq" msgstr "" -#: ../../whatsnew/3.5.rst:1176 msgid "" "Element comparison in :func:`~heapq.merge` can now be customized by passing " "a :term:`key function` in a new optional *key* keyword argument, and a new " @@ -1690,7 +1426,6 @@ msgid "" "comparison::" msgstr "" -#: ../../whatsnew/3.5.rst:1181 msgid "" ">>> import heapq\n" ">>> a = ['9', '777', '55555']\n" @@ -1701,37 +1436,30 @@ msgid "" "['55555', '6666', '777', '88', '9']" msgstr "" -#: ../../whatsnew/3.5.rst:1189 msgid "(Contributed by Raymond Hettinger in :issue:`13742`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1193 msgid "http" msgstr "" -#: ../../whatsnew/3.5.rst:1195 msgid "" "A new :class:`HTTPStatus ` enum that defines a set of HTTP " "status codes, reason phrases and long descriptions written in English. " "(Contributed by Demian Brecht in :issue:`21793`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1201 msgid "http.client" msgstr "" -#: ../../whatsnew/3.5.rst:1203 msgid "" -":meth:`HTTPConnection.getresponse() " -"` now raises " -"a :exc:`~http.client.RemoteDisconnected` exception when a remote server " -"connection is closed unexpectedly. Additionally, if " -"a :exc:`ConnectionError` (of which ``RemoteDisconnected`` is a subclass) is " +":meth:`HTTPConnection.getresponse() ` now raises a :exc:`~http.client.RemoteDisconnected` exception " +"when a remote server connection is closed unexpectedly. Additionally, if a :" +"exc:`ConnectionError` (of which ``RemoteDisconnected`` is a subclass) is " "raised, the client socket is now closed automatically, and will reconnect on " "the next request::" msgstr "" -#: ../../whatsnew/3.5.rst:1210 msgid "" "import http.client\n" "conn = http.client.HTTPConnection('www.python.org')\n" @@ -1743,28 +1471,23 @@ msgid "" " pass" msgstr "" -#: ../../whatsnew/3.5.rst:1219 msgid "(Contributed by Martin Panter in :issue:`3566`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1223 msgid "idlelib and IDLE" msgstr "" -#: ../../whatsnew/3.5.rst:1225 msgid "" "Since idlelib implements the IDLE shell and editor and is not intended for " -"import by other programs, it gets improvements with every release. " -"See :file:`Lib/idlelib/NEWS.txt` for a cumulative list of changes since " -"3.4.0, as well as changes made in future 3.5.x releases. This file is also " -"available from the IDLE :menuselection:`Help --> About IDLE` dialog." +"import by other programs, it gets improvements with every release. See :" +"file:`Lib/idlelib/NEWS.txt` for a cumulative list of changes since 3.4.0, as " +"well as changes made in future 3.5.x releases. This file is also available " +"from the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" -#: ../../whatsnew/3.5.rst:1233 msgid "imaplib" msgstr "" -#: ../../whatsnew/3.5.rst:1235 msgid "" "The :class:`~imaplib.IMAP4` class now supports the :term:`context manager` " "protocol. When used in a :keyword:`with` statement, the IMAP4 ``LOGOUT`` " @@ -1772,56 +1495,48 @@ msgid "" "by Tarek Ziadé and Serhiy Storchaka in :issue:`4972`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1240 msgid "" -"The :mod:`imaplib` module now supports :rfc:`5161` (ENABLE Extension) " -"and :rfc:`6855` (UTF-8 Support) via the :meth:`IMAP4.enable() " -"` method. A new :attr:`IMAP4.utf8_enabled " -"` attribute tracks whether or not :rfc:`6855` " -"support is enabled. (Contributed by Milan Oberkirch, R. David Murray, and " -"Maciej Szulik in :issue:`21800`.)" +"The :mod:`imaplib` module now supports :rfc:`5161` (ENABLE Extension) and :" +"rfc:`6855` (UTF-8 Support) via the :meth:`IMAP4.enable() ` method. A new :attr:`IMAP4.utf8_enabled ` attribute tracks whether or not :rfc:`6855` support is " +"enabled. (Contributed by Milan Oberkirch, R. David Murray, and Maciej Szulik " +"in :issue:`21800`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1247 msgid "" "The :mod:`imaplib` module now automatically encodes non-ASCII string " "usernames and passwords using UTF-8, as recommended by the RFCs. " "(Contributed by Milan Oberkirch in :issue:`21800`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1253 msgid "imghdr" msgstr "" -#: ../../whatsnew/3.5.rst:1255 msgid "" -"The :func:`!what` function now recognizes the `OpenEXR `_ format (contributed by Martin Vignali and Claudiu Popa " -"in :issue:`20295`), and the `WebP `_ " -"format (contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.)" +"The :func:`!what` function now recognizes the `OpenEXR `_ format (contributed by Martin Vignali and Claudiu Popa in :issue:" +"`20295`), and the `WebP `_ format " +"(contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1263 msgid "importlib" msgstr "" -#: ../../whatsnew/3.5.rst:1265 msgid "" "The :class:`util.LazyLoader ` class allows for " "lazy loading of modules in applications where startup time is important. " "(Contributed by Brett Cannon in :issue:`17621`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1269 msgid "" -"The :func:`abc.InspectLoader.source_to_code() " -"` method is now a static " -"method. This makes it easier to initialize a module object with code " -"compiled from a string by running ``exec(code, module.__dict__)``. " -"(Contributed by Brett Cannon in :issue:`21156`.)" +"The :func:`abc.InspectLoader.source_to_code() ` method is now a static method. This makes it easier to " +"initialize a module object with code compiled from a string by running " +"``exec(code, module.__dict__)``. (Contributed by Brett Cannon in :issue:" +"`21156`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1275 msgid "" "The new :func:`util.module_from_spec() ` " "function is now the preferred way to create a new module. As opposed to " @@ -1830,25 +1545,21 @@ msgid "" "spec object. (Contributed by Brett Cannon in :issue:`20383`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1283 msgid "inspect" msgstr "" -#: ../../whatsnew/3.5.rst:1285 msgid "" "Both the :class:`~inspect.Signature` and :class:`~inspect.Parameter` classes " -"are now picklable and hashable. (Contributed by Yury Selivanov " -"in :issue:`20726` and :issue:`20334`.)" +"are now picklable and hashable. (Contributed by Yury Selivanov in :issue:" +"`20726` and :issue:`20334`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1289 msgid "" -"A new :meth:`BoundArguments.apply_defaults() " -"` method provides a way to set " -"default values for missing arguments::" +"A new :meth:`BoundArguments.apply_defaults() ` method provides a way to set default values for missing " +"arguments::" msgstr "" -#: ../../whatsnew/3.5.rst:1293 msgid "" ">>> def foo(a, b='ham', *args): pass\n" ">>> ba = inspect.signature(foo).bind('spam')\n" @@ -1857,67 +1568,57 @@ msgid "" "OrderedDict([('a', 'spam'), ('b', 'ham'), ('args', ())])" msgstr "" -#: ../../whatsnew/3.5.rst:1299 msgid "(Contributed by Yury Selivanov in :issue:`24190`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1301 msgid "" -"A new class method :meth:`Signature.from_callable() " -"` makes subclassing " -"of :class:`~inspect.Signature` easier. (Contributed by Yury Selivanov and " -"Eric Snow in :issue:`17373`.)" +"A new class method :meth:`Signature.from_callable() ` makes subclassing of :class:`~inspect.Signature` easier. " +"(Contributed by Yury Selivanov and Eric Snow in :issue:`17373`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1306 msgid "" "The :func:`~inspect.signature` function now accepts a *follow_wrapped* " "optional keyword argument, which, when set to ``False``, disables automatic " -"following of ``__wrapped__`` links. (Contributed by Yury Selivanov " -"in :issue:`20691`.)" +"following of ``__wrapped__`` links. (Contributed by Yury Selivanov in :issue:" +"`20691`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1311 msgid "" "A set of new functions to inspect :term:`coroutine functions ` and :term:`coroutine objects ` has been " -"added: :func:`~inspect.iscoroutine`, :func:`~inspect.iscoroutinefunction`, :func:`~inspect.isawaitable`, :func:`~inspect.getcoroutinelocals`, " -"and :func:`~inspect.getcoroutinestate`. (Contributed by Yury Selivanov " -"in :issue:`24017` and :issue:`24400`.)" +"function>` and :term:`coroutine objects ` has been added: :func:" +"`~inspect.iscoroutine`, :func:`~inspect.iscoroutinefunction`, :func:" +"`~inspect.isawaitable`, :func:`~inspect.getcoroutinelocals`, and :func:" +"`~inspect.getcoroutinestate`. (Contributed by Yury Selivanov in :issue:" +"`24017` and :issue:`24400`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1319 msgid "" -"The :func:`~inspect.stack`, :func:`~inspect.trace`, :func:`~inspect.getouterframes`, " -"and :func:`~inspect.getinnerframes` functions now return a list of named " -"tuples. (Contributed by Daniel Shahaf in :issue:`16808`.)" +"The :func:`~inspect.stack`, :func:`~inspect.trace`, :func:`~inspect." +"getouterframes`, and :func:`~inspect.getinnerframes` functions now return a " +"list of named tuples. (Contributed by Daniel Shahaf in :issue:`16808`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1326 msgid "io" msgstr "" -#: ../../whatsnew/3.5.rst:1328 msgid "" "A new :meth:`BufferedIOBase.readinto1() ` " -"method, that uses at most one call to the underlying raw " -"stream's :meth:`RawIOBase.read() ` " -"or :meth:`RawIOBase.readinto() ` methods. " -"(Contributed by Nikolaus Rath in :issue:`20578`.)" +"method, that uses at most one call to the underlying raw stream's :meth:" +"`RawIOBase.read() ` or :meth:`RawIOBase.readinto() ` methods. (Contributed by Nikolaus Rath in :issue:" +"`20578`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1336 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.5.rst:1338 msgid "" "Both the :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " "classes now accept an ``(address, netmask)`` tuple argument, so as to easily " "construct network objects from existing addresses::" msgstr "" -#: ../../whatsnew/3.5.rst:1342 msgid "" ">>> import ipaddress\n" ">>> ipaddress.IPv4Network(('127.0.0.0', 8))\n" @@ -1926,18 +1627,15 @@ msgid "" "IPv4Network('127.0.0.0/8')" msgstr "" -#: ../../whatsnew/3.5.rst:1348 msgid "(Contributed by Peter Moody and Antoine Pitrou in :issue:`16531`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1350 msgid "" -"A new :attr:`~ipaddress.IPv4Network.reverse_pointer` attribute for " -"the :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " -"classes returns the name of the reverse DNS PTR record::" +"A new :attr:`~ipaddress.IPv4Address.reverse_pointer` attribute for the :" +"class:`~ipaddress.IPv4Address` and :class:`~ipaddress.IPv6Address` classes " +"returns the name of the reverse DNS PTR record::" msgstr "" -#: ../../whatsnew/3.5.rst:1354 msgid "" ">>> import ipaddress\n" ">>> addr = ipaddress.IPv4Address('127.0.0.1')\n" @@ -1948,34 +1646,28 @@ msgid "" "'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa'" msgstr "" -#: ../../whatsnew/3.5.rst:1362 msgid "(Contributed by Leon Weber in :issue:`20480`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1366 msgid "json" msgstr "" -#: ../../whatsnew/3.5.rst:1368 msgid "" "The :mod:`json.tool` command line interface now preserves the order of keys " "in JSON objects passed in input. The new ``--sort-keys`` option can be used " -"to sort the keys alphabetically. (Contributed by Berker Peksag " -"in :issue:`21650`.)" +"to sort the keys alphabetically. (Contributed by Berker Peksag in :issue:" +"`21650`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1373 msgid "" -"JSON decoder now raises :exc:`~json.JSONDecodeError` instead " -"of :exc:`ValueError` to provide better context information about the error. " +"JSON decoder now raises :exc:`~json.JSONDecodeError` instead of :exc:" +"`ValueError` to provide better context information about the error. " "(Contributed by Serhiy Storchaka in :issue:`19361`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1379 msgid "linecache" msgstr "" -#: ../../whatsnew/3.5.rst:1381 msgid "" "A new :func:`~linecache.lazycache` function can be used to capture " "information about a non-file-based module to permit getting its lines later " @@ -1984,18 +1676,15 @@ msgid "" "indefinitely. (Contributed by Robert Collins in :issue:`17911`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1389 msgid "locale" msgstr "" -#: ../../whatsnew/3.5.rst:1391 msgid "" "A new :func:`~locale.delocalize` function can be used to convert a string " "into a normalized number string, taking the ``LC_NUMERIC`` settings into " "account::" msgstr "" -#: ../../whatsnew/3.5.rst:1394 msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_NUMERIC, 'de_DE.UTF-8')\n" @@ -2008,23 +1697,19 @@ msgid "" "'1234.56'" msgstr "" -#: ../../whatsnew/3.5.rst:1404 msgid "(Contributed by Cédric Krier in :issue:`13918`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1408 msgid "logging" msgstr "" -#: ../../whatsnew/3.5.rst:1410 msgid "" -"All logging methods " -"(:class:`~logging.Logger` :meth:`~logging.Logger.log`, :meth:`~logging.Logger.exception`, :meth:`~logging.Logger.critical`, :meth:`~logging.Logger.debug`, " -"etc.), now accept exception instances as an *exc_info* argument, in addition " -"to boolean values and exception tuples::" +"All logging methods (:class:`~logging.Logger` :meth:`~logging.Logger.log`, :" +"meth:`~logging.Logger.exception`, :meth:`~logging.Logger.critical`, :meth:" +"`~logging.Logger.debug`, etc.), now accept exception instances as an " +"*exc_info* argument, in addition to boolean values and exception tuples::" msgstr "" -#: ../../whatsnew/3.5.rst:1416 msgid "" ">>> import logging\n" ">>> try:\n" @@ -2034,19 +1719,16 @@ msgid "" "ERROR:root:exception" msgstr "" -#: ../../whatsnew/3.5.rst:1423 msgid "(Contributed by Yury Selivanov in :issue:`20537`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1425 msgid "" "The :class:`handlers.HTTPHandler ` class now " "accepts an optional :class:`ssl.SSLContext` instance to configure SSL " -"settings used in an HTTP connection. (Contributed by Alex Gaynor " -"in :issue:`22788`.)" +"settings used in an HTTP connection. (Contributed by Alex Gaynor in :issue:" +"`22788`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1430 msgid "" "The :class:`handlers.QueueListener ` class " "now takes a *respect_handler_level* keyword argument which, if set to " @@ -2054,96 +1736,79 @@ msgid "" "(Contributed by Vinay Sajip.)" msgstr "" -#: ../../whatsnew/3.5.rst:1437 msgid "lzma" msgstr "" -#: ../../whatsnew/3.5.rst:1439 msgid "" "The :meth:`LZMADecompressor.decompress() ` " "method now accepts an optional *max_length* argument to limit the maximum " "size of decompressed data. (Contributed by Martin Panter in :issue:`15955`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1446 msgid "math" msgstr "" -#: ../../whatsnew/3.5.rst:1448 msgid "" -"Two new constants have been added to the :mod:`math` " -"module: :data:`~math.inf` and :data:`~math.nan`. (Contributed by Mark " -"Dickinson in :issue:`23185`.)" +"Two new constants have been added to the :mod:`math` module: :data:`~math." +"inf` and :data:`~math.nan`. (Contributed by Mark Dickinson in :issue:" +"`23185`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1451 msgid "" "A new function :func:`~math.isclose` provides a way to test for approximate " "equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1454 msgid "" -"A new :func:`~math.gcd` function has been added. The :func:`fractions.gcd` " +"A new :func:`~math.gcd` function has been added. The :func:`!fractions.gcd` " "function is now deprecated. (Contributed by Mark Dickinson and Serhiy " "Storchaka in :issue:`22486`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1460 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.5.rst:1462 msgid "" -":func:`sharedctypes.synchronized() " -"` objects now support " -"the :term:`context manager` protocol. (Contributed by Charles-François " -"Natali in :issue:`21565`.)" +":func:`sharedctypes.synchronized() ` objects now support the :term:`context manager` protocol. " +"(Contributed by Charles-François Natali in :issue:`21565`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1468 msgid "operator" msgstr "" -#: ../../whatsnew/3.5.rst:1470 msgid "" -":func:`~operator.attrgetter`, :func:`~operator.itemgetter`, " -"and :func:`~operator.methodcaller` objects now support pickling. " -"(Contributed by Josh Rosenberg and Serhiy Storchaka in :issue:`22955`.)" +":func:`~operator.attrgetter`, :func:`~operator.itemgetter`, and :func:" +"`~operator.methodcaller` objects now support pickling. (Contributed by Josh " +"Rosenberg and Serhiy Storchaka in :issue:`22955`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1474 msgid "" "New :func:`~operator.matmul` and :func:`~operator.imatmul` functions to " -"perform matrix multiplication. (Contributed by Benjamin Peterson " -"in :issue:`21176`.)" +"perform matrix multiplication. (Contributed by Benjamin Peterson in :issue:" +"`21176`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1480 msgid "os" msgstr "" -#: ../../whatsnew/3.5.rst:1482 msgid "" -"The new :func:`~os.scandir` function returning an iterator " -"of :class:`~os.DirEntry` objects has been added. If " -"possible, :func:`~os.scandir` extracts file attributes while scanning a " -"directory, removing the need to perform subsequent system calls to determine " -"file type or attributes, which may significantly improve performance. " -"(Contributed by Ben Hoyt with the help of Victor Stinner in :issue:`22524`.)" +"The new :func:`~os.scandir` function returning an iterator of :class:`~os." +"DirEntry` objects has been added. If possible, :func:`~os.scandir` extracts " +"file attributes while scanning a directory, removing the need to perform " +"subsequent system calls to determine file type or attributes, which may " +"significantly improve performance. (Contributed by Ben Hoyt with the help " +"of Victor Stinner in :issue:`22524`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1489 msgid "" -"On Windows, a new :attr:`stat_result.st_file_attributes " -"` attribute is now available. It " -"corresponds to the ``dwFileAttributes`` member of the " -"``BY_HANDLE_FILE_INFORMATION`` structure returned by " -"``GetFileInformationByHandle()``. (Contributed by Ben Hoyt " -"in :issue:`21719`.)" +"On Windows, a new :attr:`stat_result.st_file_attributes ` attribute is now available. It corresponds to the " +"``dwFileAttributes`` member of the ``BY_HANDLE_FILE_INFORMATION`` structure " +"returned by ``GetFileInformationByHandle()``. (Contributed by Ben Hoyt in :" +"issue:`21719`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1495 msgid "" "The :func:`~os.urandom` function now uses the ``getrandom()`` syscall on " "Linux 3.17 or newer, and ``getentropy()`` on OpenBSD 5.6 and newer, removing " @@ -2151,27 +1816,23 @@ msgid "" "descriptor exhaustion. (Contributed by Victor Stinner in :issue:`22181`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1500 msgid "" "New :func:`~os.get_blocking` and :func:`~os.set_blocking` functions allow " -"getting and setting a file descriptor's blocking mode " -"(:const:`~os.O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" +"getting and setting a file descriptor's blocking mode (:const:`~os." +"O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1504 msgid "" "The :func:`~os.truncate` and :func:`~os.ftruncate` functions are now " "supported on Windows. (Contributed by Steve Dower in :issue:`23668`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1507 msgid "" "There is a new :func:`os.path.commonpath` function returning the longest " -"common sub-path of each passed pathname. Unlike " -"the :func:`os.path.commonprefix` function, it always returns a valid path::" +"common sub-path of each passed pathname. Unlike the :func:`os.path." +"commonprefix` function, it always returns a valid path::" msgstr "" -#: ../../whatsnew/3.5.rst:1512 msgid "" ">>> os.path.commonprefix(['/usr/lib', '/usr/local/lib'])\n" "'/usr/l'\n" @@ -2180,22 +1841,18 @@ msgid "" "'/usr'" msgstr "" -#: ../../whatsnew/3.5.rst:1518 msgid "(Contributed by Rafik Draoui and Serhiy Storchaka in :issue:`10395`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1522 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.5.rst:1524 msgid "" "The new :meth:`Path.samefile() ` method can be used " "to check whether the path points to the same file as another path, which can " "be either another :class:`~pathlib.Path` object, or a string::" msgstr "" -#: ../../whatsnew/3.5.rst:1528 msgid "" ">>> import pathlib\n" ">>> p1 = pathlib.Path('/etc/hosts')\n" @@ -2204,49 +1861,40 @@ msgid "" "True" msgstr "" -#: ../../whatsnew/3.5.rst:1534 msgid "(Contributed by Vajrasky Kok and Antoine Pitrou in :issue:`19775`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1536 msgid "" "The :meth:`Path.mkdir() ` method now accepts a new " "optional *exist_ok* argument to match ``mkdir -p`` and :func:`os.makedirs` " "functionality. (Contributed by Berker Peksag in :issue:`21539`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1540 msgid "" "There is a new :meth:`Path.expanduser() ` method to " "expand ``~`` and ``~user`` prefixes. (Contributed by Serhiy Storchaka and " "Claudiu Popa in :issue:`19776`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1544 msgid "" "A new :meth:`Path.home() ` class method can be used to " "get a :class:`~pathlib.Path` instance representing the user’s home " -"directory. (Contributed by Victor Salgado and Mayank Tripathi " -"in :issue:`19777`.)" +"directory. (Contributed by Victor Salgado and Mayank Tripathi in :issue:" +"`19777`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1549 msgid "" -"New :meth:`Path.write_text() " -"`, :meth:`Path.read_text() " -"`, :meth:`Path.write_bytes() " -"`, :meth:`Path.read_bytes() " -"` methods to simplify read/write operations on " -"files." +"New :meth:`Path.write_text() `, :meth:`Path." +"read_text() `, :meth:`Path.write_bytes() `, :meth:`Path.read_bytes() ` " +"methods to simplify read/write operations on files." msgstr "" -#: ../../whatsnew/3.5.rst:1555 msgid "" "The following code snippet will create or rewrite existing file ``~/" "spam42``::" msgstr "" -#: ../../whatsnew/3.5.rst:1558 msgid "" ">>> import pathlib\n" ">>> p = pathlib.Path('~/spam42')\n" @@ -2254,15 +1902,12 @@ msgid "" "3" msgstr "" -#: ../../whatsnew/3.5.rst:1563 msgid "(Contributed by Christopher Welborn in :issue:`20218`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1567 msgid "pickle" msgstr "" -#: ../../whatsnew/3.5.rst:1569 msgid "" "Nested objects, such as unbound methods or nested classes, can now be " "pickled using :ref:`pickle protocols ` older than protocol " @@ -2270,28 +1915,23 @@ msgid "" "Serhiy Storchaka in :issue:`23611`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1576 msgid "poplib" msgstr "" -#: ../../whatsnew/3.5.rst:1578 msgid "" "A new :meth:`POP3.utf8() ` command enables :rfc:`6856` " "(Internationalized Email) support, if a POP server supports it. (Contributed " "by Milan OberKirch in :issue:`21804`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1584 msgid "re" msgstr "" -#: ../../whatsnew/3.5.rst:1586 msgid "" "References and conditional references to groups with fixed length are now " "allowed in lookbehind assertions::" msgstr "" -#: ../../whatsnew/3.5.rst:1589 msgid "" ">>> import re\n" ">>> pat = re.compile(r'(a|b).(?<=\\1)c')\n" @@ -2301,32 +1941,28 @@ msgid "" "<_sre.SRE_Match object; span=(0, 3), match='bbc'>" msgstr "" -#: ../../whatsnew/3.5.rst:1596 msgid "(Contributed by Serhiy Storchaka in :issue:`9179`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1598 msgid "" "The number of capturing groups in regular expressions is no longer limited " "to 100. (Contributed by Serhiy Storchaka in :issue:`22437`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1601 msgid "" "The :func:`~re.sub` and :func:`~re.subn` functions now replace unmatched " "groups with empty strings instead of raising an exception. (Contributed by " "Serhiy Storchaka in :issue:`1519638`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1605 msgid "" -"The :class:`re.error` exceptions have new " -"attributes, :attr:`~re.error.msg`, :attr:`~re.error.pattern`, :attr:`~re.error.pos`, :attr:`~re.error.lineno`, " -"and :attr:`~re.error.colno`, that provide better context information about " -"the error::" +"The :class:`re.error ` exceptions have new attributes, :" +"attr:`~re.PatternError.msg`, :attr:`~re.PatternError.pattern`, :attr:`~re." +"PatternError.pos`, :attr:`~re.PatternError.lineno`, and :attr:`~re." +"PatternError.colno`, that provide better context information about the " +"error::" msgstr "" -#: ../../whatsnew/3.5.rst:1611 msgid "" ">>> re.compile(\"\"\"\n" "... (?x)\n" @@ -2337,36 +1973,29 @@ msgid "" "sre_constants.error: multiple repeat at position 16 (line 3, column 7)" msgstr "" -#: ../../whatsnew/3.5.rst:1619 msgid "(Contributed by Serhiy Storchaka in :issue:`22578`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1623 msgid "readline" msgstr "" -#: ../../whatsnew/3.5.rst:1625 msgid "" "A new :func:`~readline.append_history_file` function can be used to append " "the specified number of trailing elements in history to the given file. " "(Contributed by Bruno Cauet in :issue:`22940`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1631 msgid "selectors" msgstr "" -#: ../../whatsnew/3.5.rst:1633 msgid "" "The new :class:`~selectors.DevpollSelector` supports efficient ``/dev/poll`` " "polling on Solaris. (Contributed by Giampaolo Rodola' in :issue:`18931`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1639 msgid "shutil" msgstr "" -#: ../../whatsnew/3.5.rst:1641 msgid "" "The :func:`~shutil.move` function now accepts a *copy_function* argument, " "allowing, for example, the :func:`~shutil.copy` function to be used instead " @@ -2374,23 +2003,19 @@ msgid "" "metadata when moving. (Contributed by Claudiu Popa in :issue:`19840`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1647 msgid "" "The :func:`~shutil.make_archive` function now supports the *xztar* format. " "(Contributed by Serhiy Storchaka in :issue:`5411`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1652 msgid "signal" msgstr "" -#: ../../whatsnew/3.5.rst:1654 msgid "" "On Windows, the :func:`~signal.set_wakeup_fd` function now also supports " "socket handles. (Contributed by Victor Stinner in :issue:`22018`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1657 msgid "" "Various ``SIG*`` constants in the :mod:`signal` module have been converted " "into :mod:`Enums `. This allows meaningful names to be printed during " @@ -2398,11 +2023,9 @@ msgid "" "Rodola' in :issue:`21076`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1664 msgid "smtpd" msgstr "" -#: ../../whatsnew/3.5.rst:1666 msgid "" "Both the :class:`!SMTPServer` and :class:`!SMTPChannel` classes now accept a " "*decode_data* keyword argument to determine if the ``DATA`` portion of the " @@ -2414,16 +2037,14 @@ msgid "" "arguments. (Contributed by Maciej Szulik in :issue:`19662`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1677 msgid "" -"The :class:`!SMTPServer` class now advertises the ``8BITMIME`` extension " -"(:rfc:`6152`) if *decode_data* has been set ``True``. If the client " -"specifies ``BODY=8BITMIME`` on the ``MAIL`` command, it is passed to :meth:`!" +"The :class:`!SMTPServer` class now advertises the ``8BITMIME`` extension (:" +"rfc:`6152`) if *decode_data* has been set ``True``. If the client specifies " +"``BODY=8BITMIME`` on the ``MAIL`` command, it is passed to :meth:`!" "SMTPServer.process_message` via the *mail_options* keyword. (Contributed by " "Milan Oberkirch and R. David Murray in :issue:`21795`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1684 msgid "" "The :class:`!SMTPServer` class now also supports the ``SMTPUTF8`` extension " "(:rfc:`6531`: Internationalized Email). If the client specified ``SMTPUTF8 " @@ -2433,71 +2054,59 @@ msgid "" "``SMTPUTF8`` data. (Contributed by Milan Oberkirch in :issue:`21725`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1692 msgid "" "It is now possible to provide, directly or via name resolution, IPv6 " "addresses in the :class:`!SMTPServer` constructor, and have it successfully " "connect. (Contributed by Milan Oberkirch in :issue:`14758`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1698 msgid "smtplib" msgstr "" -#: ../../whatsnew/3.5.rst:1700 msgid "" "A new :meth:`SMTP.auth() ` method provides a convenient " "way to implement custom authentication mechanisms. (Contributed by Milan " "Oberkirch in :issue:`15014`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1704 msgid "" "The :meth:`SMTP.set_debuglevel() ` method now " "accepts an additional debuglevel (2), which enables timestamps in debug " -"messages. (Contributed by Gavin Chappell and Maciej Szulik " -"in :issue:`16914`.)" +"messages. (Contributed by Gavin Chappell and Maciej Szulik in :issue:" +"`16914`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1708 msgid "" -"Both the :meth:`SMTP.sendmail() ` " -"and :meth:`SMTP.send_message() ` methods now " -"support :rfc:`6531` (SMTPUTF8). (Contributed by Milan Oberkirch and R. David " -"Murray in :issue:`22027`.)" +"Both the :meth:`SMTP.sendmail() ` and :meth:`SMTP." +"send_message() ` methods now support :rfc:`6531` " +"(SMTPUTF8). (Contributed by Milan Oberkirch and R. David Murray in :issue:" +"`22027`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1715 msgid "sndhdr" msgstr "" -#: ../../whatsnew/3.5.rst:1717 msgid "" -"The :func:`!what` and :func:`!whathdr` functions now return " -"a :func:`~collections.namedtuple`. (Contributed by Claudiu Popa " -"in :issue:`18615`.)" +"The :func:`!what` and :func:`!whathdr` functions now return a :func:" +"`~collections.namedtuple`. (Contributed by Claudiu Popa in :issue:`18615`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1723 msgid "socket" msgstr "" -#: ../../whatsnew/3.5.rst:1725 msgid "" "Functions with timeouts now use a monotonic clock, instead of a system " "clock. (Contributed by Victor Stinner in :issue:`22043`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1728 msgid "" "A new :meth:`socket.sendfile() ` method allows " -"sending a file over a socket by using the high-" -"performance :func:`os.sendfile` function on UNIX, resulting in uploads being " -"from 2 to 3 times faster than when using plain :meth:`socket.send() " -"`. (Contributed by Giampaolo Rodola' in :issue:`17552`.)" +"sending a file over a socket by using the high-performance :func:`os." +"sendfile` function on UNIX, resulting in uploads being from 2 to 3 times " +"faster than when using plain :meth:`socket.send() `. " +"(Contributed by Giampaolo Rodola' in :issue:`17552`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1734 msgid "" "The :meth:`socket.sendall() ` method no longer resets " "the socket timeout every time bytes are received or sent. The socket " @@ -2505,144 +2114,118 @@ msgid "" "Victor Stinner in :issue:`23853`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1739 msgid "" "The *backlog* argument of the :meth:`socket.listen() ` " -"method is now optional. By default it is set to :data:`SOMAXCONN " -"` or to ``128``, whichever is less. (Contributed by " -"Charles-François Natali in :issue:`21455`.)" +"method is now optional. By default it is set to :data:`SOMAXCONN ` or to ``128``, whichever is less. (Contributed by Charles-" +"François Natali in :issue:`21455`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1746 msgid "ssl" msgstr "" -#: ../../whatsnew/3.5.rst:1751 msgid "Memory BIO Support" msgstr "" -#: ../../whatsnew/3.5.rst:1753 msgid "(Contributed by Geert Jansen in :issue:`21965`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1755 msgid "" "The new :class:`~ssl.SSLObject` class has been added to provide SSL protocol " -"support for cases when the network I/O capabilities " -"of :class:`~ssl.SSLSocket` are not necessary or are suboptimal. " -"``SSLObject`` represents an SSL protocol instance, but does not implement " -"any network I/O methods, and instead provides a memory buffer interface. " -"The new :class:`~ssl.MemoryBIO` class can be used to pass data between " -"Python and an SSL protocol instance." +"support for cases when the network I/O capabilities of :class:`~ssl." +"SSLSocket` are not necessary or are suboptimal. ``SSLObject`` represents an " +"SSL protocol instance, but does not implement any network I/O methods, and " +"instead provides a memory buffer interface. The new :class:`~ssl.MemoryBIO` " +"class can be used to pass data between Python and an SSL protocol instance." msgstr "" -#: ../../whatsnew/3.5.rst:1762 msgid "" "The memory BIO SSL support is primarily intended to be used in frameworks " "implementing asynchronous I/O for which :class:`~ssl.SSLSocket`'s readiness " "model (\"select/poll\") is inefficient." msgstr "" -#: ../../whatsnew/3.5.rst:1766 msgid "" "A new :meth:`SSLContext.wrap_bio() ` method can be " "used to create a new ``SSLObject`` instance." msgstr "" -#: ../../whatsnew/3.5.rst:1771 msgid "Application-Layer Protocol Negotiation Support" msgstr "" -#: ../../whatsnew/3.5.rst:1773 msgid "(Contributed by Benjamin Peterson in :issue:`20188`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1775 msgid "" "Where OpenSSL support is present, the :mod:`ssl` module now implements the " -"*Application-Layer Protocol Negotiation* TLS extension as described " -"in :rfc:`7301`." +"*Application-Layer Protocol Negotiation* TLS extension as described in :rfc:" +"`7301`." msgstr "" -#: ../../whatsnew/3.5.rst:1779 msgid "" -"The new :meth:`SSLContext.set_alpn_protocols() " -"` can be used to specify which protocols " -"a socket should advertise during the TLS handshake." +"The new :meth:`SSLContext.set_alpn_protocols() ` can be used to specify which protocols a socket should " +"advertise during the TLS handshake." msgstr "" -#: ../../whatsnew/3.5.rst:1783 msgid "" -"The new :meth:`SSLSocket.selected_alpn_protocol() " -"` returns the protocol that was " -"selected during the TLS handshake. The :const:`~ssl.HAS_ALPN` flag indicates " -"whether ALPN support is present." +"The new :meth:`SSLSocket.selected_alpn_protocol() ` returns the protocol that was selected during the " +"TLS handshake. The :const:`~ssl.HAS_ALPN` flag indicates whether ALPN " +"support is present." msgstr "" -#: ../../whatsnew/3.5.rst:1790 msgid "Other Changes" msgstr "" -#: ../../whatsnew/3.5.rst:1792 msgid "" "There is a new :meth:`SSLSocket.version() ` method to " -"query the actual protocol version in use. (Contributed by Antoine Pitrou " -"in :issue:`20421`.)" +"query the actual protocol version in use. (Contributed by Antoine Pitrou in :" +"issue:`20421`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1796 msgid "" -"The :class:`~ssl.SSLSocket` class now implements " -"a :meth:`SSLSocket.sendfile() ` method. (Contributed " -"by Giampaolo Rodola' in :issue:`17552`.)" +"The :class:`~ssl.SSLSocket` class now implements a :meth:`!SSLSocket." +"sendfile` method. (Contributed by Giampaolo Rodola' in :issue:`17552`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1800 msgid "" -"The :meth:`SSLSocket.send() ` method now raises either " -"the :exc:`ssl.SSLWantReadError` or :exc:`ssl.SSLWantWriteError` exception on " -"a non-blocking socket if the operation would block. Previously, it would " -"return ``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)" +"The :meth:`!SSLSocket.send` method now raises either the :exc:`ssl." +"SSLWantReadError` or :exc:`ssl.SSLWantWriteError` exception on a non-" +"blocking socket if the operation would block. Previously, it would return " +"``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1805 msgid "" "The :func:`~ssl.cert_time_to_seconds` function now interprets the input time " "as UTC and not as local time, per :rfc:`5280`. Additionally, the return " "value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1809 msgid "" -"New :meth:`SSLObject.shared_ciphers() ` " -"and :meth:`SSLSocket.shared_ciphers() ` " -"methods return the list of ciphers sent by the client during the handshake. " -"(Contributed by Benjamin Peterson in :issue:`23186`.)" +"New :meth:`!SSLObject.shared_ciphers` and :meth:`SSLSocket.shared_ciphers() " +"` methods return the list of ciphers sent by " +"the client during the handshake. (Contributed by Benjamin Peterson in :issue:" +"`23186`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1814 msgid "" -"The :meth:`SSLSocket.do_handshake() " -"`, :meth:`SSLSocket.read() " -"`, :meth:`SSLSocket.shutdown() " -"`, and :meth:`SSLSocket.write() " -"` methods of the :class:`~ssl.SSLSocket` class no " -"longer reset the socket timeout every time bytes are received or sent. The " -"socket timeout is now the maximum total duration of the method. (Contributed " -"by Victor Stinner in :issue:`23853`.)" +"The :meth:`SSLSocket.do_handshake() `, :meth:" +"`SSLSocket.read() `, :meth:`!SSLSocket.shutdown`, and :" +"meth:`SSLSocket.write() ` methods of the :class:`~ssl." +"SSLSocket` class no longer reset the socket timeout every time bytes are " +"received or sent. The socket timeout is now the maximum total duration of " +"the method. (Contributed by Victor Stinner in :issue:`23853`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1822 msgid "" -"The :func:`~ssl.match_hostname` function now supports matching of IP " -"addresses. (Contributed by Antoine Pitrou in :issue:`23239`.)" +"The :func:`!match_hostname` function now supports matching of IP addresses. " +"(Contributed by Antoine Pitrou in :issue:`23239`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1827 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.5.rst:1829 msgid "" "The :class:`~sqlite3.Row` class now fully supports the sequence protocol, in " "particular :func:`reversed` iteration and slice indexing. (Contributed by " @@ -2650,11 +2233,9 @@ msgid "" "Serhiy Storchaka in :issue:`13583`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1838 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.5.rst:1840 msgid "" "The new :func:`~subprocess.run` function has been added. It runs the " "specified command and returns a :class:`~subprocess.CompletedProcess` " @@ -2664,7 +2245,6 @@ msgid "" "(Contributed by Thomas Kluyver in :issue:`23342`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1850 msgid "" ">>> subprocess.run([\"ls\", \"-l\"]) # doesn't capture output\n" "CompletedProcess(args=['ls', '-l'], returncode=0)\n" @@ -2680,62 +2260,52 @@ msgid "" "stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\\n')" msgstr "" -#: ../../whatsnew/3.5.rst:1864 msgid "sys" msgstr "" -#: ../../whatsnew/3.5.rst:1866 msgid "" -"A new :func:`~sys.set_coroutine_wrapper` function allows setting a global " -"hook that will be called whenever a :term:`coroutine object ` is " -"created by an :keyword:`async def` function. A " -"corresponding :func:`~sys.get_coroutine_wrapper` can be used to obtain a " -"currently set wrapper. Both functions are :term:`provisional `, and are intended for debugging purposes only. (Contributed by Yury " -"Selivanov in :issue:`24017`.)" +"A new :func:`!set_coroutine_wrapper` function allows setting a global hook " +"that will be called whenever a :term:`coroutine object ` is " +"created by an :keyword:`async def` function. A corresponding :func:`!" +"get_coroutine_wrapper` can be used to obtain a currently set wrapper. Both " +"functions are :term:`provisional `, and are intended for " +"debugging purposes only. (Contributed by Yury Selivanov in :issue:`24017`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1874 msgid "" "A new :func:`~sys.is_finalizing` function can be used to check if the Python " "interpreter is :term:`shutting down `. (Contributed by " "Antoine Pitrou in :issue:`22696`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1880 msgid "sysconfig" msgstr "" -#: ../../whatsnew/3.5.rst:1882 msgid "" "The name of the user scripts directory on Windows now includes the first two " -"components of the Python version. (Contributed by Paul Moore " -"in :issue:`23437`.)" +"components of the Python version. (Contributed by Paul Moore in :issue:" +"`23437`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1888 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.5.rst:1890 msgid "" "The *mode* argument of the :func:`~tarfile.open` function now accepts " -"``\"x\"`` to request exclusive creation. (Contributed by Berker Peksag " -"in :issue:`21717`.)" +"``\"x\"`` to request exclusive creation. (Contributed by Berker Peksag in :" +"issue:`21717`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1893 msgid "" -"The :meth:`TarFile.extractall() ` " -"and :meth:`TarFile.extract() ` methods now take a " -"keyword argument *numeric_owner*. If set to ``True``, the extracted files " -"and directories will be owned by the numeric ``uid`` and ``gid`` from the " +"The :meth:`TarFile.extractall() ` and :meth:" +"`TarFile.extract() ` methods now take a keyword " +"argument *numeric_owner*. If set to ``True``, the extracted files and " +"directories will be owned by the numeric ``uid`` and ``gid`` from the " "tarfile. If set to ``False`` (the default, and the behavior in versions " "prior to 3.5), they will be owned by the named user and group in the " "tarfile. (Contributed by Michael Vogt and Eric Smith in :issue:`23193`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1901 msgid "" "The :meth:`TarFile.list() ` now accepts an optional " "*members* keyword argument that can be set to a subset of the list returned " @@ -2743,51 +2313,41 @@ msgid "" "by Serhiy Storchaka in :issue:`21549`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1908 msgid "threading" msgstr "" -#: ../../whatsnew/3.5.rst:1910 msgid "" -"Both the :meth:`Lock.acquire() ` " -"and :meth:`RLock.acquire() ` methods now use a " -"monotonic clock for timeout management. (Contributed by Victor Stinner " -"in :issue:`22043`.)" +"Both the :meth:`Lock.acquire() ` and :meth:`RLock." +"acquire() ` methods now use a monotonic clock for " +"timeout management. (Contributed by Victor Stinner in :issue:`22043`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1917 msgid "time" msgstr "" -#: ../../whatsnew/3.5.rst:1919 msgid "" "The :func:`~time.monotonic` function is now always available. (Contributed " "by Victor Stinner in :issue:`22043`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1924 msgid "timeit" msgstr "" -#: ../../whatsnew/3.5.rst:1926 msgid "" "A new command line option ``-u`` or :samp:`--unit={U}` can be used to " "specify the time unit for the timer output. Supported options are ``usec``, " "``msec``, or ``sec``. (Contributed by Julian Gindi in :issue:`18983`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1930 msgid "" "The :func:`~timeit.timeit` function has a new *globals* parameter for " "specifying the namespace in which the code will be running. (Contributed by " "Ben Roberts in :issue:`2527`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1936 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.5.rst:1938 msgid "" "The :mod:`!tkinter._fix` module used for setting up the Tcl/Tk environment " "on Windows has been replaced by a private function in the :mod:`!_tkinter` " @@ -2795,443 +2355,368 @@ msgid "" "(Contributed by Zachary Ware in :issue:`20035`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1947 msgid "traceback" msgstr "" -#: ../../whatsnew/3.5.rst:1949 msgid "" "New :func:`~traceback.walk_stack` and :func:`~traceback.walk_tb` functions " "to conveniently traverse frame and :ref:`traceback objects `. (Contributed by Robert Collins in :issue:`17911`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1954 msgid "" -"New lightweight " -"classes: :class:`~traceback.TracebackException`, :class:`~traceback.StackSummary`, " -"and :class:`~traceback.FrameSummary`. (Contributed by Robert Collins " -"in :issue:`17911`.)" +"New lightweight classes: :class:`~traceback.TracebackException`, :class:" +"`~traceback.StackSummary`, and :class:`~traceback.FrameSummary`. " +"(Contributed by Robert Collins in :issue:`17911`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1958 msgid "" "Both the :func:`~traceback.print_tb` and :func:`~traceback.print_stack` " "functions now support negative values for the *limit* argument. (Contributed " "by Dmitry Kazakov in :issue:`22619`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1964 msgid "types" msgstr "" -#: ../../whatsnew/3.5.rst:1966 msgid "" "A new :func:`~types.coroutine` function to transform :term:`generator " -"` and :class:`generator-like " -"` objects into :term:`awaitables `. " -"(Contributed by Yury Selivanov in :issue:`24017`.)" +"` and :class:`generator-like ` objects into :term:`awaitables `. (Contributed by " +"Yury Selivanov in :issue:`24017`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1972 msgid "" -"A new type called :class:`~types.CoroutineType`, which is used " -"for :term:`coroutine` objects created by :keyword:`async def` functions. " -"(Contributed by Yury Selivanov in :issue:`24400`.)" +"A new type called :class:`~types.CoroutineType`, which is used for :term:" +"`coroutine` objects created by :keyword:`async def` functions. (Contributed " +"by Yury Selivanov in :issue:`24400`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1978 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.5.rst:1980 msgid "" "The :mod:`unicodedata` module now uses data from `Unicode 8.0.0 `_." msgstr "" -#: ../../whatsnew/3.5.rst:1985 msgid "unittest" msgstr "" -#: ../../whatsnew/3.5.rst:1987 msgid "" -"The :meth:`TestLoader.loadTestsFromModule() " -"` method now accepts a keyword-only " -"argument *pattern* which is passed to ``load_tests`` as the third argument. " -"Found packages are now checked for ``load_tests`` regardless of whether " -"their path matches *pattern*, because it is impossible for a package name to " -"match the default pattern. (Contributed by Robert Collins and Barry A. " -"Warsaw in :issue:`16662`.)" +"The :meth:`TestLoader.loadTestsFromModule() ` method now accepts a keyword-only argument *pattern* " +"which is passed to ``load_tests`` as the third argument. Found packages are " +"now checked for ``load_tests`` regardless of whether their path matches " +"*pattern*, because it is impossible for a package name to match the default " +"pattern. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" +"`16662`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1994 msgid "" "Unittest discovery errors now are exposed in the :data:`TestLoader.errors " "` attribute of the :class:`~unittest.TestLoader` " "instance. (Contributed by Robert Collins in :issue:`19746`.)" msgstr "" -#: ../../whatsnew/3.5.rst:1999 msgid "" "A new command line option ``--locals`` to show local variables in " "tracebacks. (Contributed by Robert Collins in :issue:`22936`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2004 msgid "unittest.mock" msgstr "" -#: ../../whatsnew/3.5.rst:2006 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" msgstr "" -#: ../../whatsnew/3.5.rst:2008 msgid "" "The class constructor has a new *unsafe* parameter, which causes mock " "objects to raise :exc:`AttributeError` on attribute names starting with " "``\"assert\"``. (Contributed by Kushal Das in :issue:`21238`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2013 msgid "" -"A new :meth:`Mock.assert_not_called() " -"` method to check if the mock object " -"was called. (Contributed by Kushal Das in :issue:`21262`.)" +"A new :meth:`Mock.assert_not_called() ` method to check if the mock object was called. " +"(Contributed by Kushal Das in :issue:`21262`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2017 msgid "" -"The :class:`~unittest.mock.MagicMock` class now " -"supports :meth:`__truediv__`, :meth:`__divmod__` and :meth:`__matmul__` " +"The :class:`~unittest.mock.MagicMock` class now supports :meth:`~object." +"__truediv__`, :meth:`~object.__divmod__` and :meth:`~object.__matmul__` " "operators. (Contributed by Johannes Baiter in :issue:`20968`, and Håkan " "Lövdahl in :issue:`23581` and :issue:`23568`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2022 msgid "" -"It is no longer necessary to explicitly pass ``create=True`` to " -"the :func:`~unittest.mock.patch` function when patching builtin names. " -"(Contributed by Kushal Das in :issue:`17660`.)" +"It is no longer necessary to explicitly pass ``create=True`` to the :func:" +"`~unittest.mock.patch` function when patching builtin names. (Contributed by " +"Kushal Das in :issue:`17660`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2028 msgid "urllib" msgstr "" -#: ../../whatsnew/3.5.rst:2030 msgid "" -"A new :class:`request.HTTPPasswordMgrWithPriorAuth " -"` class allows HTTP Basic " -"Authentication credentials to be managed so as to eliminate unnecessary " -"``401`` response handling, or to unconditionally send credentials on the " -"first request in order to communicate with servers that return a ``404`` " -"response instead of a ``401`` if the ``Authorization`` header is not sent. " -"(Contributed by Matej Cepl in :issue:`19494` and Akshit Khurana " -"in :issue:`7159`.)" +"A new :class:`request.HTTPPasswordMgrWithPriorAuth ` class allows HTTP Basic Authentication " +"credentials to be managed so as to eliminate unnecessary ``401`` response " +"handling, or to unconditionally send credentials on the first request in " +"order to communicate with servers that return a ``404`` response instead of " +"a ``401`` if the ``Authorization`` header is not sent. (Contributed by Matej " +"Cepl in :issue:`19494` and Akshit Khurana in :issue:`7159`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2039 msgid "" -"A new *quote_via* argument for the :func:`parse.urlencode() " -"` function provides a way to control the encoding of " -"query parts if needed. (Contributed by Samwyse and Arnon Yaari " -"in :issue:`13866`.)" +"A new *quote_via* argument for the :func:`parse.urlencode() ` function provides a way to control the encoding of query parts " +"if needed. (Contributed by Samwyse and Arnon Yaari in :issue:`13866`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2044 msgid "" -"The :func:`request.urlopen() ` function accepts " -"an :class:`ssl.SSLContext` object as a *context* argument, which will be " -"used for the HTTPS connection. (Contributed by Alex Gaynor " -"in :issue:`22366`.)" +"The :func:`request.urlopen() ` function accepts an :" +"class:`ssl.SSLContext` object as a *context* argument, which will be used " +"for the HTTPS connection. (Contributed by Alex Gaynor in :issue:`22366`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2048 msgid "" -"The :func:`parse.urljoin() ` was updated to use " -"the :rfc:`3986` semantics for the resolution of relative URLs, rather " -"than :rfc:`1808` and :rfc:`2396`. (Contributed by Demian Brecht and Senthil " -"Kumaran in :issue:`22118`.)" +"The :func:`parse.urljoin() ` was updated to use the :" +"rfc:`3986` semantics for the resolution of relative URLs, rather than :rfc:" +"`1808` and :rfc:`2396`. (Contributed by Demian Brecht and Senthil Kumaran " +"in :issue:`22118`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2055 msgid "wsgiref" msgstr "" -#: ../../whatsnew/3.5.rst:2057 msgid "" -"The *headers* argument of the :class:`headers.Headers " -"` class constructor is now optional. (Contributed " -"by Pablo Torres Navarrete and SilentGhost in :issue:`5800`.)" +"The *headers* argument of the :class:`headers.Headers ` class constructor is now optional. (Contributed by Pablo Torres " +"Navarrete and SilentGhost in :issue:`5800`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2063 msgid "xmlrpc" msgstr "" -#: ../../whatsnew/3.5.rst:2065 msgid "" "The :class:`client.ServerProxy ` class now " "supports the :term:`context manager` protocol. (Contributed by Claudiu Popa " "in :issue:`20627`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2069 msgid "" "The :class:`client.ServerProxy ` constructor now " "accepts an optional :class:`ssl.SSLContext` instance. (Contributed by Alex " "Gaynor in :issue:`22960`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2075 msgid "xml.sax" msgstr "" -#: ../../whatsnew/3.5.rst:2077 msgid "" -"SAX parsers now support a character stream of " -"the :class:`xmlreader.InputSource ` object. " -"(Contributed by Serhiy Storchaka in :issue:`2175`.)" +"SAX parsers now support a character stream of the :class:`xmlreader." +"InputSource ` object. (Contributed by Serhiy " +"Storchaka in :issue:`2175`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2081 msgid "" ":func:`~xml.sax.parseString` now accepts a :class:`str` instance. " "(Contributed by Serhiy Storchaka in :issue:`10590`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2086 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.5.rst:2088 msgid "" "ZIP output can now be written to unseekable streams. (Contributed by Serhiy " "Storchaka in :issue:`23252`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2091 msgid "" "The *mode* argument of :meth:`ZipFile.open() ` method " "now accepts ``\"x\"`` to request exclusive creation. (Contributed by Serhiy " "Storchaka in :issue:`21717`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2097 msgid "Other module-level changes" msgstr "" -#: ../../whatsnew/3.5.rst:2099 msgid "" -"Many functions in the :mod:`mmap`, :mod:`!" -"ossaudiodev`, :mod:`socket`, :mod:`ssl`, and :mod:`codecs` modules now " -"accept writable :term:`bytes-like objects `. (Contributed " -"by Serhiy Storchaka in :issue:`23001`.)" +"Many functions in the :mod:`mmap`, :mod:`!ossaudiodev`, :mod:`socket`, :mod:" +"`ssl`, and :mod:`codecs` modules now accept writable :term:`bytes-like " +"objects `. (Contributed by Serhiy Storchaka in :issue:" +"`23001`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2106 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.5.rst:2108 msgid "" "The :func:`os.walk` function has been sped up by 3 to 5 times on POSIX " -"systems, and by 7 to 20 times on Windows. This was done using the " -"new :func:`os.scandir` function, which exposes file information from the " -"underlying ``readdir`` or ``FindFirstFile``/``FindNextFile`` system calls. " +"systems, and by 7 to 20 times on Windows. This was done using the new :func:" +"`os.scandir` function, which exposes file information from the underlying " +"``readdir`` or ``FindFirstFile``/``FindNextFile`` system calls. " "(Contributed by Ben Hoyt with help from Victor Stinner in :issue:`23605`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2114 msgid "" "Construction of ``bytes(int)`` (filled by zero bytes) is faster and uses " "less memory for large objects. ``calloc()`` is used instead of ``malloc()`` " -"to allocate memory for these objects. (Contributed by Victor Stinner " -"in :issue:`21233`.)" +"to allocate memory for these objects. (Contributed by Victor Stinner in :" +"issue:`21233`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2119 msgid "" -"Some operations on :mod:`ipaddress` :class:`~ipaddress.IPv4Network` " -"and :class:`~ipaddress.IPv6Network` have been massively sped up, such " -"as :meth:`~ipaddress.IPv4Network.subnets`, :meth:`~ipaddress.IPv4Network.supernet`, :func:`~ipaddress.summarize_address_range`, :func:`~ipaddress.collapse_addresses`. " -"The speed up can range from 3 to 15 times. (Contributed by Antoine Pitrou, " -"Michel Albert, and Markus " -"in :issue:`21486`, :issue:`21487`, :issue:`20826`, :issue:`23266`.)" +"Some operations on :mod:`ipaddress` :class:`~ipaddress.IPv4Network` and :" +"class:`~ipaddress.IPv6Network` have been massively sped up, such as :meth:" +"`~ipaddress.IPv4Network.subnets`, :meth:`~ipaddress.IPv4Network.supernet`, :" +"func:`~ipaddress.summarize_address_range`, :func:`~ipaddress." +"collapse_addresses`. The speed up can range from 3 to 15 times. (Contributed " +"by Antoine Pitrou, Michel Albert, and Markus in :issue:`21486`, :issue:" +"`21487`, :issue:`20826`, :issue:`23266`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2127 msgid "" "Pickling of :mod:`ipaddress` objects was optimized to produce significantly " "smaller output. (Contributed by Serhiy Storchaka in :issue:`23133`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2130 msgid "" "Many operations on :class:`io.BytesIO` are now 50% to 100% faster. " -"(Contributed by Serhiy Storchaka in :issue:`15381` and David Wilson " -"in :issue:`22003`.)" +"(Contributed by Serhiy Storchaka in :issue:`15381` and David Wilson in :" +"issue:`22003`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2134 msgid "" "The :func:`marshal.dumps` function is now faster: 65--85% with versions 3 " "and 4, 20--25% with versions 0 to 2 on typical data, and up to 5 times in " -"best cases. (Contributed by Serhiy Storchaka in :issue:`20416` " -"and :issue:`23344`.)" +"best cases. (Contributed by Serhiy Storchaka in :issue:`20416` and :issue:" +"`23344`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2139 msgid "" "The UTF-32 encoder is now 3 to 7 times faster. (Contributed by Serhiy " "Storchaka in :issue:`15027`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2142 msgid "" "Regular expressions are now parsed up to 10% faster. (Contributed by Serhiy " "Storchaka in :issue:`19380`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2145 msgid "" "The :func:`json.dumps` function was optimized to run with " "``ensure_ascii=False`` as fast as with ``ensure_ascii=True``. (Contributed " "by Naoki Inada in :issue:`23206`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2149 msgid "" "The :c:func:`PyObject_IsInstance` and :c:func:`PyObject_IsSubclass` " -"functions have been sped up in the common case that the second argument " -"has :class:`type` as its metaclass. (Contributed Georg Brandl by " -"in :issue:`22540`.)" +"functions have been sped up in the common case that the second argument has :" +"class:`type` as its metaclass. (Contributed Georg Brandl by in :issue:" +"`22540`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2154 msgid "" "Method caching was slightly improved, yielding up to 5% performance " -"improvement in some benchmarks. (Contributed by Antoine Pitrou " -"in :issue:`22847`.)" +"improvement in some benchmarks. (Contributed by Antoine Pitrou in :issue:" +"`22847`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2158 msgid "" "Objects from the :mod:`random` module now use 50% less memory on 64-bit " "builds. (Contributed by Serhiy Storchaka in :issue:`23488`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2161 msgid "" "The :func:`property` getter calls are up to 25% faster. (Contributed by Joe " "Jevnik in :issue:`23910`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2164 msgid "" "Instantiation of :class:`fractions.Fraction` is now up to 30% faster. " "(Contributed by Stefan Behnel in :issue:`22464`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2167 msgid "" -"String " -"methods :meth:`~str.find`, :meth:`~str.rfind`, :meth:`~str.split`, :meth:`~str.partition` " -"and the :keyword:`in` string operator are now significantly faster for " -"searching 1-character substrings. (Contributed by Serhiy Storchaka " -"in :issue:`23573`.)" +"String methods :meth:`~str.find`, :meth:`~str.rfind`, :meth:`~str.split`, :" +"meth:`~str.partition` and the :keyword:`in` string operator are now " +"significantly faster for searching 1-character substrings. (Contributed by " +"Serhiy Storchaka in :issue:`23573`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2174 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.5.rst:2176 msgid "New ``calloc`` functions were added:" msgstr "" -#: ../../whatsnew/3.5.rst:2178 msgid ":c:func:`PyMem_RawCalloc`," msgstr "" -#: ../../whatsnew/3.5.rst:2179 msgid ":c:func:`PyMem_Calloc`," msgstr "" -#: ../../whatsnew/3.5.rst:2180 msgid ":c:func:`PyObject_Calloc`." msgstr "" -#: ../../whatsnew/3.5.rst:2182 msgid "(Contributed by Victor Stinner in :issue:`21233`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2184 msgid "New encoding/decoding helper functions:" msgstr "" -#: ../../whatsnew/3.5.rst:2186 msgid ":c:func:`Py_DecodeLocale` (replaced ``_Py_char2wchar()``)," msgstr "" -#: ../../whatsnew/3.5.rst:2187 msgid ":c:func:`Py_EncodeLocale` (replaced ``_Py_wchar2char()``)." msgstr "" -#: ../../whatsnew/3.5.rst:2189 msgid "(Contributed by Victor Stinner in :issue:`18395`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2191 msgid "" "A new :c:func:`PyCodec_NameReplaceErrors` function to replace the unicode " -"encode error with ``\\N{...}`` escapes. (Contributed by Serhiy Storchaka " -"in :issue:`19676`.)" +"encode error with ``\\N{...}`` escapes. (Contributed by Serhiy Storchaka in :" +"issue:`19676`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2195 msgid "" "A new :c:func:`PyErr_FormatV` function similar to :c:func:`PyErr_Format`, " -"but accepts a :c:type:`va_list` argument. (Contributed by Antoine Pitrou " -"in :issue:`18711`.)" +"but accepts a :c:type:`va_list` argument. (Contributed by Antoine Pitrou in :" +"issue:`18711`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2199 msgid "" "A new :c:data:`PyExc_RecursionError` exception. (Contributed by Georg Brandl " "in :issue:`19235`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2202 msgid "" "New :c:func:`PyModule_FromDefAndSpec`, :c:func:`PyModule_FromDefAndSpec2`, " "and :c:func:`PyModule_ExecDef` functions introduced by :pep:`489` -- multi-" -"phase extension module initialization. (Contributed by Petr Viktorin " -"in :issue:`24268`.)" +"phase extension module initialization. (Contributed by Petr Viktorin in :" +"issue:`24268`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2207 msgid "" -"New :c:func:`PyNumber_MatrixMultiply` " -"and :c:func:`PyNumber_InPlaceMatrixMultiply` functions to perform matrix " -"multiplication. (Contributed by Benjamin Peterson in :issue:`21176`. See " -"also :pep:`465` for details.)" +"New :c:func:`PyNumber_MatrixMultiply` and :c:func:" +"`PyNumber_InPlaceMatrixMultiply` functions to perform matrix multiplication. " +"(Contributed by Benjamin Peterson in :issue:`21176`. See also :pep:`465` " +"for details.)" msgstr "" -#: ../../whatsnew/3.5.rst:2213 msgid "" "The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI." msgstr "" -#: ../../whatsnew/3.5.rst:2215 msgid "" "Windows builds now require Microsoft Visual C++ 14.0, which is available as " "part of `Visual Studio 2015 `_." msgstr "" -#: ../../whatsnew/3.5.rst:2218 msgid "" "Extension modules now include a platform information tag in their filename " "on some platforms (the tag is optional, and CPython will import extensions " @@ -3239,123 +2724,102 @@ msgid "" "won't be loaded):" msgstr "" -#: ../../whatsnew/3.5.rst:2223 msgid "" "On Linux, extension module filenames end with ``.cpython-m-" "-.pyd``:" msgstr "" -#: ../../whatsnew/3.5.rst:2226 ../../whatsnew/3.5.rst:2243 msgid "" "```` is the major number of the Python version; for Python 3.5 this " "is ``3``." msgstr "" -#: ../../whatsnew/3.5.rst:2229 ../../whatsnew/3.5.rst:2246 msgid "" "```` is the minor number of the Python version; for Python 3.5 this " "is ``5``." msgstr "" -#: ../../whatsnew/3.5.rst:2232 msgid "" "```` is the hardware architecture the extension module was " "built to run on. It's most commonly either ``i386`` for 32-bit Intel " "platforms or ``x86_64`` for 64-bit Intel (and AMD) platforms." msgstr "" -#: ../../whatsnew/3.5.rst:2236 msgid "" "```` is always ``linux-gnu``, except for extensions built to talk to the " "32-bit ABI on 64-bit platforms, in which case it is ``linux-gnu32`` (and " "```` will be ``x86_64``)." msgstr "" -#: ../../whatsnew/3.5.rst:2240 msgid "" "On Windows, extension module filenames end with ``.cp-" ".pyd``:" msgstr "" -#: ../../whatsnew/3.5.rst:2249 msgid "" "```` is the platform the extension module was built for, either " "``win32`` for Win32, ``win_amd64`` for Win64, ``win_ia64`` for Windows " "Itanium 64, and ``win_arm`` for Windows on ARM." msgstr "" -#: ../../whatsnew/3.5.rst:2253 msgid "" "If built in debug mode, ```` will be ``_d``, otherwise it will be " "blank." msgstr "" -#: ../../whatsnew/3.5.rst:2256 msgid "" "On OS X platforms, extension module filenames now end with ``-darwin.so``." msgstr "" -#: ../../whatsnew/3.5.rst:2258 msgid "" "On all other platforms, extension module filenames are the same as they were " "with Python 3.4." msgstr "" -#: ../../whatsnew/3.5.rst:2263 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.5.rst:2266 msgid "New Keywords" msgstr "" -#: ../../whatsnew/3.5.rst:2268 msgid "" "``async`` and ``await`` are not recommended to be used as variable, class, " "function or module names. Introduced by :pep:`492` in Python 3.5, they will " "become proper keywords in Python 3.7." msgstr "" -#: ../../whatsnew/3.5.rst:2274 msgid "Deprecated Python Behavior" msgstr "" -#: ../../whatsnew/3.5.rst:2276 msgid "" "Raising the :exc:`StopIteration` exception inside a generator will now " "generate a silent :exc:`PendingDeprecationWarning`, which will become a non-" -"silent deprecation warning in Python 3.6 and will trigger " -"a :exc:`RuntimeError` in Python 3.7. See :ref:`PEP 479: Change StopIteration " +"silent deprecation warning in Python 3.6 and will trigger a :exc:" +"`RuntimeError` in Python 3.7. See :ref:`PEP 479: Change StopIteration " "handling inside generators ` for details." msgstr "" -#: ../../whatsnew/3.5.rst:2284 msgid "Unsupported Operating Systems" msgstr "" -#: ../../whatsnew/3.5.rst:2286 msgid "" "Windows XP is no longer supported by Microsoft, thus, per :PEP:`11`, CPython " "3.5 is no longer officially supported on this OS." msgstr "" -#: ../../whatsnew/3.5.rst:2291 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../../whatsnew/3.5.rst:2293 msgid "" -"The :mod:`formatter` module has now graduated to full deprecation and is " +"The :mod:`!formatter` module has now graduated to full deprecation and is " "still slated for removal in Python 3.6." msgstr "" -#: ../../whatsnew/3.5.rst:2296 msgid "" -"The :func:`asyncio.async` function is deprecated in favor " -"of :func:`~asyncio.ensure_future`." +"The :func:`!asyncio.async` function is deprecated in favor of :func:" +"`~asyncio.ensure_future`." msgstr "" -#: ../../whatsnew/3.5.rst:2299 msgid "" "The :mod:`!smtpd` module has in the past always decoded the DATA portion of " "email messages using the ``utf-8`` codec. This can now be controlled by the " @@ -3364,67 +2828,57 @@ msgid "" "with an appropriate value to avoid the deprecation warning." msgstr "" -#: ../../whatsnew/3.5.rst:2305 msgid "" -"Directly assigning values to " -"the :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel.value` " -"and :attr:`~http.cookies.Morsel.coded_value` of :class:`http.cookies.Morsel` " -"objects is deprecated. Use the :meth:`~http.cookies.Morsel.set` method " -"instead. In addition, the undocumented *LegalChars* parameter " -"of :meth:`~http.cookies.Morsel.set` is deprecated, and is now ignored." +"Directly assigning values to the :attr:`~http.cookies.Morsel.key`, :attr:" +"`~http.cookies.Morsel.value` and :attr:`~http.cookies.Morsel.coded_value` " +"of :class:`http.cookies.Morsel` objects is deprecated. Use the :meth:`~http." +"cookies.Morsel.set` method instead. In addition, the undocumented " +"*LegalChars* parameter of :meth:`~http.cookies.Morsel.set` is deprecated, " +"and is now ignored." msgstr "" -#: ../../whatsnew/3.5.rst:2312 msgid "" -"Passing a format string as keyword argument *format_string* to " -"the :meth:`~string.Formatter.format` method of the :class:`string.Formatter` " -"class has been deprecated. (Contributed by Serhiy Storchaka " -"in :issue:`23671`.)" +"Passing a format string as keyword argument *format_string* to the :meth:" +"`~string.Formatter.format` method of the :class:`string.Formatter` class has " +"been deprecated. (Contributed by Serhiy Storchaka in :issue:`23671`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2317 msgid "" -"The :func:`platform.dist` and :func:`platform.linux_distribution` functions " -"are now deprecated. Linux distributions use too many different ways of " -"describing themselves, so the functionality is left to a package. " +"The :func:`!platform.dist` and :func:`!platform.linux_distribution` " +"functions are now deprecated. Linux distributions use too many different " +"ways of describing themselves, so the functionality is left to a package. " "(Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2322 msgid "" "The previously undocumented ``from_function`` and ``from_builtin`` methods " -"of :class:`inspect.Signature` are deprecated. Use the " -"new :meth:`Signature.from_callable() ` " -"method instead. (Contributed by Yury Selivanov in :issue:`24248`.)" +"of :class:`inspect.Signature` are deprecated. Use the new :meth:`Signature." +"from_callable() ` method instead. " +"(Contributed by Yury Selivanov in :issue:`24248`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2327 msgid "" -"The :func:`inspect.getargspec` function is deprecated and scheduled to be " +"The :func:`!inspect.getargspec` function is deprecated and scheduled to be " "removed in Python 3.6. (See :issue:`20438` for details.)" msgstr "" -#: ../../whatsnew/3.5.rst:2330 msgid "" -"The :mod:`inspect` :func:`~inspect.getfullargspec`, :func:`~inspect.getcallargs`, " -"and :func:`~inspect.formatargspec` functions are deprecated in favor of " -"the :func:`inspect.signature` API. (Contributed by Yury Selivanov " -"in :issue:`20438`.)" +"The :mod:`inspect` :func:`~inspect.getfullargspec`, :func:`~inspect." +"getcallargs`, and :func:`!formatargspec` functions are deprecated in favor " +"of the :func:`inspect.signature` API. (Contributed by Yury Selivanov in :" +"issue:`20438`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2335 msgid "" ":func:`~inspect.getargvalues` and :func:`~inspect.formatargvalues` functions " "were inadvertently marked as deprecated with the release of Python 3.5.0." msgstr "" -#: ../../whatsnew/3.5.rst:2338 msgid "" "Use of :const:`re.LOCALE` flag with str patterns or :const:`re.ASCII` is now " "deprecated. (Contributed by Serhiy Storchaka in :issue:`22407`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2341 msgid "" "Use of unrecognized special sequences consisting of ``'\\'`` and an ASCII " "letter in regular expression patterns and replacement patterns now raises a " @@ -3432,112 +2886,93 @@ msgid "" "Serhiy Storchaka in :issue:`23622`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2346 msgid "" -"The undocumented and unofficial *use_load_tests* default argument of " -"the :meth:`unittest.TestLoader.loadTestsFromModule` method now is deprecated " -"and ignored. (Contributed by Robert Collins and Barry A. Warsaw " -"in :issue:`16662`.)" +"The undocumented and unofficial *use_load_tests* default argument of the :" +"meth:`unittest.TestLoader.loadTestsFromModule` method now is deprecated and " +"ignored. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" +"`16662`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2353 msgid "Removed" msgstr "" -#: ../../whatsnew/3.5.rst:2356 msgid "API and Feature Removals" msgstr "" -#: ../../whatsnew/3.5.rst:2358 msgid "" "The following obsolete and previously deprecated APIs and features have been " "removed:" msgstr "" -#: ../../whatsnew/3.5.rst:2361 msgid "" "The ``__version__`` attribute has been dropped from the email package. The " "email code hasn't been shipped separately from the stdlib for a long time, " "and the ``__version__`` string was not updated in the last few releases." msgstr "" -#: ../../whatsnew/3.5.rst:2365 msgid "" "The internal ``Netrc`` class in the :mod:`ftplib` module was deprecated in " "3.4, and has now been removed. (Contributed by Matt Chaput in :issue:`6623`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2369 msgid "The concept of ``.pyo`` files has been removed." msgstr "" -#: ../../whatsnew/3.5.rst:2371 msgid "" "The JoinableQueue class in the provisional :mod:`asyncio` module was " "deprecated in 3.4.4 and is now removed. (Contributed by A. Jesse Jiryu Davis " "in :issue:`23464`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2377 msgid "Porting to Python 3.5" msgstr "" -#: ../../whatsnew/3.5.rst:2379 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.5.rst:2384 msgid "Changes in Python behavior" msgstr "" -#: ../../whatsnew/3.5.rst:2386 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" -#: ../../whatsnew/3.5.rst:2389 msgid "" "f(1 for x in [1], *args)\n" "f(1 for x in [1], **kwargs)" msgstr "" -#: ../../whatsnew/3.5.rst:2392 msgid "" "Python 3.5 now correctly raises a :exc:`SyntaxError`, as generator " "expressions must be put in parentheses if not a sole argument to a function." msgstr "" -#: ../../whatsnew/3.5.rst:2397 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.5.rst:2399 msgid "" ":pep:`475`: System calls are now retried when interrupted by a signal " "instead of raising :exc:`InterruptedError` if the Python signal handler does " "not raise an exception." msgstr "" -#: ../../whatsnew/3.5.rst:2403 msgid "" "Before Python 3.5, a :class:`datetime.time` object was considered to be " "false if it represented midnight in UTC. This behavior was considered " -"obscure and error-prone and has been removed in Python 3.5. " -"See :issue:`13936` for full details." +"obscure and error-prone and has been removed in Python 3.5. See :issue:" +"`13936` for full details." msgstr "" -#: ../../whatsnew/3.5.rst:2408 msgid "" -"The :meth:`ssl.SSLSocket.send` method now raises " -"either :exc:`ssl.SSLWantReadError` or :exc:`ssl.SSLWantWriteError` on a non-" -"blocking socket if the operation would block. Previously, it would return " -"``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)" +"The :meth:`!ssl.SSLSocket.send` method now raises either :exc:`ssl." +"SSLWantReadError` or :exc:`ssl.SSLWantWriteError` on a non-blocking socket " +"if the operation would block. Previously, it would return ``0``. " +"(Contributed by Nikolaus Rath in :issue:`20951`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2413 msgid "" "The ``__name__`` attribute of generators is now set from the function name, " "instead of being set from the code name. Use ``gen.gi_code.co_name`` to " @@ -3546,17 +2981,15 @@ msgid "" "generator (``repr(gen)``). (Contributed by Victor Stinner in :issue:`21205`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2420 msgid "" -"The deprecated \"strict\" mode and argument " -"of :class:`~html.parser.HTMLParser`, :meth:`!HTMLParser.error`, and " -"the :exc:`!HTMLParserError` exception have been removed. (Contributed by " -"Ezio Melotti in :issue:`15114`.) The *convert_charrefs* argument " -"of :class:`~html.parser.HTMLParser` is now ``True`` by default. " -"(Contributed by Berker Peksag in :issue:`21047`.)" +"The deprecated \"strict\" mode and argument of :class:`~html.parser." +"HTMLParser`, :meth:`!HTMLParser.error`, and the :exc:`!HTMLParserError` " +"exception have been removed. (Contributed by Ezio Melotti in :issue:" +"`15114`.) The *convert_charrefs* argument of :class:`~html.parser." +"HTMLParser` is now ``True`` by default. (Contributed by Berker Peksag in :" +"issue:`21047`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2426 msgid "" "Although it is not formally part of the API, it is worth noting for porting " "purposes (ie: fixing tests) that error messages that were previously of the " @@ -3565,16 +2998,14 @@ msgid "" "Ezio Melotti in :issue:`16518`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2432 msgid "" -"If the current directory is set to a directory that no longer exists " -"then :exc:`FileNotFoundError` will no longer be raised and " -"instead :meth:`~importlib.machinery.FileFinder.find_spec` will return " -"``None`` **without** caching ``None`` in :data:`sys.path_importer_cache`, " -"which is different than the typical case (:issue:`22834`)." +"If the current directory is set to a directory that no longer exists then :" +"exc:`FileNotFoundError` will no longer be raised and instead :meth:" +"`~importlib.machinery.FileFinder.find_spec` will return ``None`` **without** " +"caching ``None`` in :data:`sys.path_importer_cache`, which is different than " +"the typical case (:issue:`22834`)." msgstr "" -#: ../../whatsnew/3.5.rst:2438 msgid "" "HTTP status code and messages from :mod:`http.client` and :mod:`http.server` " "were refactored into a common :class:`~http.HTTPStatus` enum. The values " @@ -3582,18 +3013,15 @@ msgid "" "compatibility. (Contributed by Demian Brecht in :issue:`21793`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2443 msgid "" -"When an import loader defines :meth:`importlib.machinery.Loader.exec_module` " -"it is now expected to also " -"define :meth:`~importlib.machinery.Loader.create_module` (raises " -"a :exc:`DeprecationWarning` now, will be an error in Python 3.6). If the " -"loader inherits from :class:`importlib.abc.Loader` then there is nothing to " -"do, else simply define :meth:`~importlib.machinery.Loader.create_module` to " +"When an import loader defines :meth:`~importlib.abc.Loader.exec_module` it " +"is now expected to also define :meth:`~importlib.abc.Loader.create_module` " +"(raises a :exc:`DeprecationWarning` now, will be an error in Python 3.6). If " +"the loader inherits from :class:`importlib.abc.Loader` then there is nothing " +"to do, else simply define :meth:`~importlib.abc.Loader.create_module` to " "return ``None``. (Contributed by Brett Cannon in :issue:`23014`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2451 msgid "" "The :func:`re.split` function always ignored empty pattern matches, so the " "``\"x*\"`` pattern worked the same as ``\"x+\"``, and the ``\"\\b\"`` " @@ -3604,107 +3032,91 @@ msgid "" "error. (Contributed by Serhiy Storchaka in :issue:`22818`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2459 msgid "" "The :class:`http.cookies.Morsel` dict-like interface has been made self " -"consistent: morsel comparison now takes " -"the :attr:`~http.cookies.Morsel.key` and :attr:`~http.cookies.Morsel.value` " -"into account, :meth:`~http.cookies.Morsel.copy` now results in " -"a :class:`~http.cookies.Morsel` instance rather than a :class:`dict`, " -"and :meth:`~http.cookies.Morsel.update` will now raise an exception if any " -"of the keys in the update dictionary are invalid. In addition, the " -"undocumented *LegalChars* parameter of :func:`~http.cookies.Morsel.set` is " -"deprecated and is now ignored. (Contributed by Demian Brecht " -"in :issue:`2211`.)" +"consistent: morsel comparison now takes the :attr:`~http.cookies.Morsel." +"key` and :attr:`~http.cookies.Morsel.value` into account, :meth:`~http." +"cookies.Morsel.copy` now results in a :class:`~http.cookies.Morsel` instance " +"rather than a :class:`dict`, and :meth:`~http.cookies.Morsel.update` will " +"now raise an exception if any of the keys in the update dictionary are " +"invalid. In addition, the undocumented *LegalChars* parameter of :func:" +"`~http.cookies.Morsel.set` is deprecated and is now ignored. (Contributed " +"by Demian Brecht in :issue:`2211`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2469 msgid "" ":pep:`488` has removed ``.pyo`` files from Python and introduced the " -"optional ``opt-`` tag in ``.pyc`` file names. " -"The :func:`importlib.util.cache_from_source` has gained an *optimization* " -"parameter to help control the ``opt-`` tag. Because of this, the " -"*debug_override* parameter of the function is now deprecated. ``.pyo`` files " -"are also no longer supported as a file argument to the Python interpreter " -"and thus serve no purpose when distributed on their own (i.e. sourceless " -"code distribution). Due to the fact that the magic number for bytecode has " -"changed in Python 3.5, all old ``.pyo`` files from previous versions of " -"Python are invalid regardless of this PEP." +"optional ``opt-`` tag in ``.pyc`` file names. The :func:`importlib.util." +"cache_from_source` has gained an *optimization* parameter to help control " +"the ``opt-`` tag. Because of this, the *debug_override* parameter of the " +"function is now deprecated. ``.pyo`` files are also no longer supported as a " +"file argument to the Python interpreter and thus serve no purpose when " +"distributed on their own (i.e. sourceless code distribution). Due to the " +"fact that the magic number for bytecode has changed in Python 3.5, all old " +"``.pyo`` files from previous versions of Python are invalid regardless of " +"this PEP." msgstr "" -#: ../../whatsnew/3.5.rst:2480 msgid "" "The :mod:`socket` module now exports the :const:`~socket.CAN_RAW_FD_FRAMES` " "constant on linux 3.6 and greater." msgstr "" -#: ../../whatsnew/3.5.rst:2483 msgid "" "The :func:`ssl.cert_time_to_seconds` function now interprets the input time " "as UTC and not as local time, per :rfc:`5280`. Additionally, the return " "value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2487 msgid "" "The ``pygettext.py`` Tool now uses the standard +NNNN format for timezones " "in the POT-Creation-Date header." msgstr "" -#: ../../whatsnew/3.5.rst:2490 msgid "" "The :mod:`smtplib` module now uses :data:`sys.stderr` instead of the " -"previous module-level :data:`stderr` variable for debug output. If your " +"previous module-level :data:`!stderr` variable for debug output. If your " "(test) program depends on patching the module-level variable to capture the " "debug output, you will need to update it to capture sys.stderr instead." msgstr "" -#: ../../whatsnew/3.5.rst:2495 msgid "" "The :meth:`str.startswith` and :meth:`str.endswith` methods no longer return " "``True`` when finding the empty string and the indexes are completely out of " "range. (Contributed by Serhiy Storchaka in :issue:`24284`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2499 msgid "" "The :func:`inspect.getdoc` function now returns documentation strings " "inherited from base classes. Documentation strings no longer need to be " "duplicated if the inherited documentation is appropriate. To suppress an " "inherited string, an empty string must be specified (or the documentation " "may be filled in). This change affects the output of the :mod:`pydoc` " -"module and the :func:`help` function. (Contributed by Serhiy Storchaka " -"in :issue:`15582`.)" +"module and the :func:`help` function. (Contributed by Serhiy Storchaka in :" +"issue:`15582`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2507 msgid "" "Nested :func:`functools.partial` calls are now flattened. If you were " -"relying on the previous behavior, you can now either add an attribute to " -"a :func:`functools.partial` object or you can create a subclass " -"of :func:`functools.partial`. (Contributed by Alexander Belopolsky " -"in :issue:`7830`.)" +"relying on the previous behavior, you can now either add an attribute to a :" +"func:`functools.partial` object or you can create a subclass of :func:" +"`functools.partial`. (Contributed by Alexander Belopolsky in :issue:`7830`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2514 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.5.rst:2516 msgid "" -"The undocumented :c:member:`!format` member of the (non-" -"public) :c:type:`PyMemoryViewObject` structure has been removed. All " -"extensions relying on the relevant parts in ``memoryobject.h`` must be " -"rebuilt." +"The undocumented :c:member:`!format` member of the (non-public) :c:type:`!" +"PyMemoryViewObject` structure has been removed. All extensions relying on " +"the relevant parts in ``memoryobject.h`` must be rebuilt." msgstr "" -#: ../../whatsnew/3.5.rst:2521 msgid "" -"The :c:type:`PyMemAllocator` structure was renamed " -"to :c:type:`PyMemAllocatorEx` and a new ``calloc`` field was added." +"The :c:type:`!PyMemAllocator` structure was renamed to :c:type:" +"`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" -#: ../../whatsnew/3.5.rst:2524 msgid "" "Removed non-documented macro :c:macro:`!PyObject_REPR()` which leaked " "references. Use format character ``%R`` in :c:func:`PyUnicode_FromFormat`-" @@ -3712,32 +3124,27 @@ msgid "" "Serhiy Storchaka in :issue:`22453`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2529 msgid "" "Because the lack of the :attr:`~type.__module__` attribute breaks pickling " "and introspection, a deprecation warning is now raised for builtin types " -"without the :attr:`~type.__module__` attribute. This will be " -"an :exc:`AttributeError` in the future. (Contributed by Serhiy Storchaka " -"in :issue:`20204`.)" +"without the :attr:`~type.__module__` attribute. This will be an :exc:" +"`AttributeError` in the future. (Contributed by Serhiy Storchaka in :issue:" +"`20204`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2535 msgid "" -"As part of the :pep:`492` implementation, the ``tp_reserved`` slot " -"of :c:type:`PyTypeObject` was replaced with " -"a :c:member:`~PyTypeObject.tp_as_async` slot. Refer to :ref:`coro-objects` " -"for new types, structures and functions." +"As part of the :pep:`492` implementation, the ``tp_reserved`` slot of :c:" +"type:`PyTypeObject` was replaced with a :c:member:`~PyTypeObject." +"tp_as_async` slot. Refer to :ref:`coro-objects` for new types, structures " +"and functions." msgstr "" -#: ../../whatsnew/3.5.rst:2542 msgid "Notable changes in Python 3.5.4" msgstr "" -#: ../../whatsnew/3.5.rst:2545 msgid "New ``make regen-all`` build target" msgstr "" -#: ../../whatsnew/3.5.rst:2547 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3745,34 +3152,28 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: ../../whatsnew/3.5.rst:2552 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" -#: ../../whatsnew/3.5.rst:2556 msgid "" -"More selective regeneration targets are also defined - " -"see :source:`Makefile.pre.in` for details." +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." msgstr "" -#: ../../whatsnew/3.5.rst:2559 ../../whatsnew/3.5.rst:2572 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: ../../whatsnew/3.5.rst:2565 msgid "Removal of ``make touch`` build target" msgstr "" -#: ../../whatsnew/3.5.rst:2567 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: ../../whatsnew/3.5.rst:2570 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index 6458ee7..cbfa30e 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,116 +18,93 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.6.rst:3 msgid "What's New In Python 3.6" msgstr "" -#: ../../whatsnew/3.6.rst:0 msgid "Editors" msgstr "" -#: ../../whatsnew/3.6.rst:5 msgid "Elvis Pranskevichus , Yury Selivanov " msgstr "" -#: ../../whatsnew/3.6.rst:47 msgid "" "This article explains the new features in Python 3.6, compared to 3.5. " "Python 3.6 was released on December 23, 2016. See the `changelog `_ for a full list of changes." msgstr "" -#: ../../whatsnew/3.6.rst:54 msgid ":pep:`494` - Python 3.6 Release Schedule" msgstr "" -#: ../../whatsnew/3.6.rst:58 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.6.rst:60 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.6.rst:62 msgid ":ref:`PEP 498 `, formatted string literals." msgstr "" -#: ../../whatsnew/3.6.rst:64 msgid ":ref:`PEP 515 `, underscores in numeric literals." msgstr "" -#: ../../whatsnew/3.6.rst:66 msgid ":ref:`PEP 526 `, syntax for variable annotations." msgstr "" -#: ../../whatsnew/3.6.rst:68 msgid ":ref:`PEP 525 `, asynchronous generators." msgstr "" -#: ../../whatsnew/3.6.rst:70 msgid ":ref:`PEP 530 `: asynchronous comprehensions." msgstr "" -#: ../../whatsnew/3.6.rst:73 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.6.rst:75 msgid "" ":mod:`secrets`: :ref:`PEP 506 -- Adding A Secrets Module To The Standard " "Library `." msgstr "" -#: ../../whatsnew/3.6.rst:78 msgid "CPython implementation improvements:" msgstr "" -#: ../../whatsnew/3.6.rst:80 msgid "" -"The :ref:`dict ` type has been reimplemented to use " -"a :ref:`more compact representation ` based on `a " -"proposal by Raymond Hettinger `_ and similar to the `PyPy dict " -"implementation`_. This resulted in dictionaries using 20% to 25% less " -"memory when compared to Python 3.5." +"The :ref:`dict ` type has been reimplemented to use a :ref:" +"`more compact representation ` based on `a proposal " +"by Raymond Hettinger `_ and similar to the `PyPy dict implementation`_. " +"This resulted in dictionaries using 20% to 25% less memory when compared to " +"Python 3.5." msgstr "" -#: ../../whatsnew/3.6.rst:87 msgid "" "Customization of class creation has been simplified with the :ref:`new " "protocol `." msgstr "" -#: ../../whatsnew/3.6.rst:90 msgid "" "The class attribute definition order is :ref:`now preserved `." msgstr "" -#: ../../whatsnew/3.6.rst:93 msgid "" "The order of elements in ``**kwargs`` now :ref:`corresponds to the order " "` in which keyword arguments were passed to the function." msgstr "" -#: ../../whatsnew/3.6.rst:97 msgid "" "DTrace and SystemTap :ref:`probing support ` has been " "added." msgstr "" -#: ../../whatsnew/3.6.rst:100 msgid "" "The new :ref:`PYTHONMALLOC ` environment variable " "can now be used to debug the interpreter memory allocation and access errors." msgstr "" -#: ../../whatsnew/3.6.rst:105 msgid "Significant improvements in the standard library:" msgstr "" -#: ../../whatsnew/3.6.rst:107 msgid "" "The :mod:`asyncio` module has received new features, significant usability " "and performance improvements, and a fair amount of bug fixes. Starting with " @@ -135,7 +112,6 @@ msgid "" "considered stable." msgstr "" -#: ../../whatsnew/3.6.rst:112 msgid "" "A new :ref:`file system path protocol ` has been " "implemented to support :term:`path-like objects `. All " @@ -143,19 +119,16 @@ msgid "" "the new protocol." msgstr "" -#: ../../whatsnew/3.6.rst:117 msgid "" "The :mod:`datetime` module has gained support for :ref:`Local Time " "Disambiguation `." msgstr "" -#: ../../whatsnew/3.6.rst:120 msgid "" "The :mod:`typing` module received a number of :ref:`improvements `." msgstr "" -#: ../../whatsnew/3.6.rst:123 msgid "" "The :mod:`tracemalloc` module has been significantly reworked and is now " "used to provide better output for :exc:`ResourceWarning` as well as provide " @@ -163,51 +136,42 @@ msgid "" "section ` for more information." msgstr "" -#: ../../whatsnew/3.6.rst:130 msgid "Security improvements:" msgstr "" -#: ../../whatsnew/3.6.rst:132 msgid "" "The new :mod:`secrets` module has been added to simplify the generation of " "cryptographically strong pseudo-random numbers suitable for managing secrets " "such as account authentication, tokens, and similar." msgstr "" -#: ../../whatsnew/3.6.rst:136 ../../whatsnew/3.6.rst:1283 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security. See the :pep:`524` for the " "rationale." msgstr "" -#: ../../whatsnew/3.6.rst:140 msgid "The :mod:`hashlib` and :mod:`ssl` modules now support OpenSSL 1.1.0." msgstr "" -#: ../../whatsnew/3.6.rst:142 msgid "" "The default settings and feature set of the :mod:`ssl` module have been " "improved." msgstr "" -#: ../../whatsnew/3.6.rst:145 msgid "" "The :mod:`hashlib` module received support for the BLAKE2, SHA-3 and SHAKE " "hash algorithms and the :func:`~hashlib.scrypt` key derivation function." msgstr "" -#: ../../whatsnew/3.6.rst:149 msgid "Windows improvements:" msgstr "" -#: ../../whatsnew/3.6.rst:151 msgid "" ":ref:`PEP 528 ` and :ref:`PEP 529 `, " "Windows filesystem and console encoding changed to UTF-8." msgstr "" -#: ../../whatsnew/3.6.rst:154 msgid "" "The ``py.exe`` launcher, when used interactively, no longer prefers Python 2 " "over Python 3 when the user doesn't specify a version (via command line " @@ -215,42 +179,35 @@ msgid "" "\"python\" refers to Python 2 in that case." msgstr "" -#: ../../whatsnew/3.6.rst:159 msgid "" "``python.exe`` and ``pythonw.exe`` have been marked as long-path aware, " -"which means that the 260 character path limit may no longer apply. " -"See :ref:`removing the MAX_PATH limitation ` for details." +"which means that the 260 character path limit may no longer apply. See :ref:" +"`removing the MAX_PATH limitation ` for details." msgstr "" -#: ../../whatsnew/3.6.rst:163 msgid "" "A ``._pth`` file can be added to force isolated mode and fully specify all " "search paths to avoid registry and environment lookup. See :ref:`the " "documentation ` for more information." msgstr "" -#: ../../whatsnew/3.6.rst:167 msgid "" -"A ``python36.zip`` file now works as a landmark to " -"infer :envvar:`PYTHONHOME`. See :ref:`the documentation " -"` for more information." +"A ``python36.zip`` file now works as a landmark to infer :envvar:" +"`PYTHONHOME`. See :ref:`the documentation ` for " +"more information." msgstr "" -#: ../../whatsnew/3.6.rst:176 msgid "New Features" msgstr "" -#: ../../whatsnew/3.6.rst:181 msgid "PEP 498: Formatted string literals" msgstr "" -#: ../../whatsnew/3.6.rst:183 msgid "" -":pep:`498` introduces a new kind of string literals: *f-strings*, " -"or :ref:`formatted string literals `." +":pep:`498` introduces a new kind of string literals: *f-strings*, or :ref:" +"`formatted string literals `." msgstr "" -#: ../../whatsnew/3.6.rst:186 msgid "" "Formatted string literals are prefixed with ``'f'`` and are similar to the " "format strings accepted by :meth:`str.format`. They contain replacement " @@ -259,7 +216,6 @@ msgid "" "protocol::" msgstr "" -#: ../../whatsnew/3.6.rst:192 msgid "" ">>> name = \"Fred\"\n" ">>> f\"He said his name is {name}.\"\n" @@ -271,30 +227,24 @@ msgid "" "'result: 12.35'" msgstr "" -#: ../../whatsnew/3.6.rst:203 msgid ":pep:`498` -- Literal String Interpolation." msgstr "" -#: ../../whatsnew/3.6.rst:204 msgid "PEP written and implemented by Eric V. Smith." msgstr "" -#: ../../whatsnew/3.6.rst:206 msgid ":ref:`Feature documentation `." msgstr "" -#: ../../whatsnew/3.6.rst:212 msgid "PEP 526: Syntax for variable annotations" msgstr "" -#: ../../whatsnew/3.6.rst:214 msgid "" ":pep:`484` introduced the standard for type annotations of function " "parameters, a.k.a. type hints. This PEP adds syntax to Python for annotating " "the types of variables including class variables and instance variables::" msgstr "" -#: ../../whatsnew/3.6.rst:218 msgid "" "primes: List[int] = []\n" "\n" @@ -304,14 +254,12 @@ msgid "" " stats: Dict[str, int] = {}" msgstr "" -#: ../../whatsnew/3.6.rst:225 msgid "" "Just as for function annotations, the Python interpreter does not attach any " "particular meaning to variable annotations and only stores them in the " "``__annotations__`` attribute of a class or module." msgstr "" -#: ../../whatsnew/3.6.rst:229 msgid "" "In contrast to variable declarations in statically typed languages, the goal " "of annotation syntax is to provide an easy way to specify structured type " @@ -319,33 +267,27 @@ msgid "" "and the ``__annotations__`` attribute." msgstr "" -#: ../../whatsnew/3.6.rst:236 msgid ":pep:`526` -- Syntax for variable annotations." msgstr "" -#: ../../whatsnew/3.6.rst:237 msgid "" "PEP written by Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, and " "Guido van Rossum. Implemented by Ivan Levkivskyi." msgstr "" -#: ../../whatsnew/3.6.rst:240 msgid "" "Tools that use or will use the new syntax: `mypy `_, `pytype `_, PyCharm, etc." msgstr "" -#: ../../whatsnew/3.6.rst:248 msgid "PEP 515: Underscores in Numeric Literals" msgstr "" -#: ../../whatsnew/3.6.rst:250 msgid "" ":pep:`515` adds the ability to use underscores in numeric literals for " "improved readability. For example::" msgstr "" -#: ../../whatsnew/3.6.rst:253 msgid "" ">>> 1_000_000_000_000_000\n" "1000000000000000\n" @@ -353,13 +295,11 @@ msgid "" "4294967295" msgstr "" -#: ../../whatsnew/3.6.rst:258 msgid "" "Single underscores are allowed between digits and after any base specifier. " "Leading, trailing, or multiple underscores in a row are not allowed." msgstr "" -#: ../../whatsnew/3.6.rst:262 msgid "" "The :ref:`string formatting ` language also now has support for " "the ``'_'`` option to signal the use of an underscore for a thousands " @@ -368,7 +308,6 @@ msgid "" "``'X'``, underscores will be inserted every 4 digits::" msgstr "" -#: ../../whatsnew/3.6.rst:269 msgid "" ">>> '{:_}'.format(1000000)\n" "'1_000_000'\n" @@ -376,19 +315,15 @@ msgid "" "'ffff_ffff'" msgstr "" -#: ../../whatsnew/3.6.rst:276 msgid ":pep:`515` -- Underscores in Numeric Literals" msgstr "" -#: ../../whatsnew/3.6.rst:277 msgid "PEP written by Georg Brandl and Serhiy Storchaka." msgstr "" -#: ../../whatsnew/3.6.rst:283 msgid "PEP 525: Asynchronous Generators" msgstr "" -#: ../../whatsnew/3.6.rst:285 msgid "" ":pep:`492` introduced support for native coroutines and ``async`` / " "``await`` syntax to Python 3.5. A notable limitation of the Python 3.5 " @@ -397,7 +332,6 @@ msgid "" "making it possible to define *asynchronous generators*::" msgstr "" -#: ../../whatsnew/3.6.rst:291 msgid "" "async def ticker(delay, to):\n" " \"\"\"Yield numbers from 0 to *to* every *delay* seconds.\"\"\"\n" @@ -406,58 +340,46 @@ msgid "" " await asyncio.sleep(delay)" msgstr "" -#: ../../whatsnew/3.6.rst:297 msgid "The new syntax allows for faster and more concise code." msgstr "" -#: ../../whatsnew/3.6.rst:301 msgid ":pep:`525` -- Asynchronous Generators" msgstr "" -#: ../../whatsnew/3.6.rst:302 ../../whatsnew/3.6.rst:323 msgid "PEP written and implemented by Yury Selivanov." msgstr "" -#: ../../whatsnew/3.6.rst:308 msgid "PEP 530: Asynchronous Comprehensions" msgstr "" -#: ../../whatsnew/3.6.rst:310 msgid "" ":pep:`530` adds support for using ``async for`` in list, set, dict " "comprehensions and generator expressions::" msgstr "" -#: ../../whatsnew/3.6.rst:313 msgid "result = [i async for i in aiter() if i % 2]" msgstr "" -#: ../../whatsnew/3.6.rst:315 msgid "" "Additionally, ``await`` expressions are supported in all kinds of " "comprehensions::" msgstr "" -#: ../../whatsnew/3.6.rst:318 msgid "result = [await fun() for fun in funcs if await condition()]" msgstr "" -#: ../../whatsnew/3.6.rst:322 msgid ":pep:`530` -- Asynchronous Comprehensions" msgstr "" -#: ../../whatsnew/3.6.rst:329 msgid "PEP 487: Simpler customization of class creation" msgstr "" -#: ../../whatsnew/3.6.rst:331 msgid "" "It is now possible to customize subclass creation without using a metaclass. " "The new ``__init_subclass__`` classmethod will be called on the base class " "whenever a new subclass is created::" msgstr "" -#: ../../whatsnew/3.6.rst:335 msgid "" "class PluginBase:\n" " subclasses = []\n" @@ -473,42 +395,35 @@ msgid "" " pass" msgstr "" -#: ../../whatsnew/3.6.rst:348 msgid "" -"In order to allow zero-argument :func:`super` calls to work correctly " -"from :meth:`~object.__init_subclass__` implementations, custom metaclasses " -"must ensure that the new ``__classcell__`` namespace entry is propagated to " +"In order to allow zero-argument :func:`super` calls to work correctly from :" +"meth:`~object.__init_subclass__` implementations, custom metaclasses must " +"ensure that the new ``__classcell__`` namespace entry is propagated to " "``type.__new__`` (as described in :ref:`class-object-creation`)." msgstr "" -#: ../../whatsnew/3.6.rst:355 ../../whatsnew/3.6.rst:393 msgid ":pep:`487` -- Simpler customization of class creation" msgstr "" -#: ../../whatsnew/3.6.rst:356 ../../whatsnew/3.6.rst:394 msgid "PEP written and implemented by Martin Teichmann." msgstr "" -#: ../../whatsnew/3.6.rst:358 msgid ":ref:`Feature documentation `" msgstr "" -#: ../../whatsnew/3.6.rst:364 msgid "PEP 487: Descriptor Protocol Enhancements" msgstr "" -#: ../../whatsnew/3.6.rst:366 msgid "" -":pep:`487` extends the descriptor protocol to include the new " -"optional :meth:`~object.__set_name__` method. Whenever a new class is " -"defined, the new method will be called on all descriptors included in the " -"definition, providing them with a reference to the class being defined and " -"the name given to the descriptor within the class namespace. In other " -"words, instances of descriptors can now know the attribute name of the " -"descriptor in the owner class::" +":pep:`487` extends the descriptor protocol to include the new optional :meth:" +"`~object.__set_name__` method. Whenever a new class is defined, the new " +"method will be called on all descriptors included in the definition, " +"providing them with a reference to the class being defined and the name " +"given to the descriptor within the class namespace. In other words, " +"instances of descriptors can now know the attribute name of the descriptor " +"in the owner class::" msgstr "" -#: ../../whatsnew/3.6.rst:374 msgid "" "class IntField:\n" " def __get__(self, instance, owner):\n" @@ -527,66 +442,56 @@ msgid "" " int_field = IntField()" msgstr "" -#: ../../whatsnew/3.6.rst:396 msgid ":ref:`Feature documentation `" msgstr "" -#: ../../whatsnew/3.6.rst:402 msgid "PEP 519: Adding a file system path protocol" msgstr "" -#: ../../whatsnew/3.6.rst:404 msgid "" -"File system paths have historically been represented as :class:`str` " -"or :class:`bytes` objects. This has led to people who write code which " -"operate on file system paths to assume that such objects are only one of " -"those two types (an :class:`int` representing a file descriptor does not " -"count as that is not a file path). Unfortunately that assumption prevents " -"alternative object representations of file system paths like :mod:`pathlib` " -"from working with pre-existing code, including Python's standard library." +"File system paths have historically been represented as :class:`str` or :" +"class:`bytes` objects. This has led to people who write code which operate " +"on file system paths to assume that such objects are only one of those two " +"types (an :class:`int` representing a file descriptor does not count as that " +"is not a file path). Unfortunately that assumption prevents alternative " +"object representations of file system paths like :mod:`pathlib` from working " +"with pre-existing code, including Python's standard library." msgstr "" -#: ../../whatsnew/3.6.rst:413 msgid "" "To fix this situation, a new interface represented by :class:`os.PathLike` " "has been defined. By implementing the :meth:`~os.PathLike.__fspath__` " "method, an object signals that it represents a path. An object can then " "provide a low-level representation of a file system path as a :class:`str` " "or :class:`bytes` object. This means an object is considered :term:`path-" -"like ` if it implements :class:`os.PathLike` or is " -"a :class:`str` or :class:`bytes` object which represents a file system path. " +"like ` if it implements :class:`os.PathLike` or is a :" +"class:`str` or :class:`bytes` object which represents a file system path. " "Code can use :func:`os.fspath`, :func:`os.fsdecode`, or :func:`os.fsencode` " "to explicitly get a :class:`str` and/or :class:`bytes` representation of a " "path-like object." msgstr "" -#: ../../whatsnew/3.6.rst:426 msgid "" -"The built-in :func:`open` function has been updated to " -"accept :class:`os.PathLike` objects, as have all relevant functions in " -"the :mod:`os` and :mod:`os.path` modules, and most other functions and " -"classes in the standard library. The :class:`os.DirEntry` class and " -"relevant classes in :mod:`pathlib` have also been updated to " -"implement :class:`os.PathLike`." +"The built-in :func:`open` function has been updated to accept :class:`os." +"PathLike` objects, as have all relevant functions in the :mod:`os` and :mod:" +"`os.path` modules, and most other functions and classes in the standard " +"library. The :class:`os.DirEntry` class and relevant classes in :mod:" +"`pathlib` have also been updated to implement :class:`os.PathLike`." msgstr "" -#: ../../whatsnew/3.6.rst:433 msgid "" "The hope is that updating the fundamental functions for operating on file " -"system paths will lead to third-party code to implicitly support " -"all :term:`path-like objects ` without any code changes, " -"or at least very minimal ones (e.g. calling :func:`os.fspath` at the " -"beginning of code before operating on a path-like object)." +"system paths will lead to third-party code to implicitly support all :term:" +"`path-like objects ` without any code changes, or at least " +"very minimal ones (e.g. calling :func:`os.fspath` at the beginning of code " +"before operating on a path-like object)." msgstr "" -#: ../../whatsnew/3.6.rst:440 msgid "" -"Here are some examples of how the new interface allows " -"for :class:`pathlib.Path` to be used more easily and transparently with pre-" -"existing code::" +"Here are some examples of how the new interface allows for :class:`pathlib." +"Path` to be used more easily and transparently with pre-existing code::" msgstr "" -#: ../../whatsnew/3.6.rst:444 msgid "" ">>> import pathlib\n" ">>> with open(pathlib.Path(\"README\")) as f:\n" @@ -602,25 +507,20 @@ msgid "" "'some_file.txt'" msgstr "" -#: ../../whatsnew/3.6.rst:457 msgid "" "(Implemented by Brett Cannon, Ethan Furman, Dusty Phillips, and Jelle " "Zijlstra.)" msgstr "" -#: ../../whatsnew/3.6.rst:461 msgid ":pep:`519` -- Adding a file system path protocol" msgstr "" -#: ../../whatsnew/3.6.rst:462 msgid "PEP written by Brett Cannon and Koos Zevenhoven." msgstr "" -#: ../../whatsnew/3.6.rst:468 msgid "PEP 495: Local Time Disambiguation" msgstr "" -#: ../../whatsnew/3.6.rst:470 msgid "" "In most world locations, there have been and will be times when local clocks " "are moved back. In those times, intervals are introduced in which local " @@ -629,15 +529,12 @@ msgid "" "instance) is insufficient to identify a particular moment in time." msgstr "" -#: ../../whatsnew/3.6.rst:476 msgid "" -":pep:`495` adds the new *fold* attribute to instances " -"of :class:`datetime.datetime` and :class:`datetime.time` classes to " -"differentiate between two moments in time for which local times are the " -"same::" +":pep:`495` adds the new *fold* attribute to instances of :class:`datetime." +"datetime` and :class:`datetime.time` classes to differentiate between two " +"moments in time for which local times are the same::" msgstr "" -#: ../../whatsnew/3.6.rst:480 msgid "" ">>> u0 = datetime(2016, 11, 6, 4, tzinfo=timezone.utc)\n" ">>> for i in range(4):\n" @@ -651,138 +548,113 @@ msgid "" "07:00:00 UTC = 02:00:00 EST 0" msgstr "" -#: ../../whatsnew/3.6.rst:491 msgid "" "The values of the :attr:`fold ` attribute have the " "value ``0`` for all instances except those that represent the second " "(chronologically) moment in time in an ambiguous case." msgstr "" -#: ../../whatsnew/3.6.rst:497 msgid ":pep:`495` -- Local Time Disambiguation" msgstr "" -#: ../../whatsnew/3.6.rst:498 msgid "" "PEP written by Alexander Belopolsky and Tim Peters, implementation by " "Alexander Belopolsky." msgstr "" -#: ../../whatsnew/3.6.rst:505 msgid "PEP 529: Change Windows filesystem encoding to UTF-8" msgstr "" -#: ../../whatsnew/3.6.rst:507 msgid "" "Representing filesystem paths is best performed with str (Unicode) rather " "than bytes. However, there are some situations where using bytes is " "sufficient and correct." msgstr "" -#: ../../whatsnew/3.6.rst:511 msgid "" "Prior to Python 3.6, data loss could result when using bytes paths on " "Windows. With this change, using bytes to represent paths is now supported " -"on Windows, provided those bytes are encoded with the encoding returned " -"by :func:`sys.getfilesystemencoding`, which now defaults to ``'utf-8'``." +"on Windows, provided those bytes are encoded with the encoding returned by :" +"func:`sys.getfilesystemencoding`, which now defaults to ``'utf-8'``." msgstr "" -#: ../../whatsnew/3.6.rst:516 msgid "" -"Applications that do not use str to represent paths should " -"use :func:`os.fsencode` and :func:`os.fsdecode` to ensure their bytes are " -"correctly encoded. To revert to the previous behaviour, " -"set :envvar:`PYTHONLEGACYWINDOWSFSENCODING` or " -"call :func:`sys._enablelegacywindowsfsencoding`." +"Applications that do not use str to represent paths should use :func:`os." +"fsencode` and :func:`os.fsdecode` to ensure their bytes are correctly " +"encoded. To revert to the previous behaviour, set :envvar:" +"`PYTHONLEGACYWINDOWSFSENCODING` or call :func:`sys." +"_enablelegacywindowsfsencoding`." msgstr "" -#: ../../whatsnew/3.6.rst:522 msgid "" "See :pep:`529` for more information and discussion of code modifications " "that may be required." msgstr "" -#: ../../whatsnew/3.6.rst:529 msgid "PEP 528: Change Windows console encoding to UTF-8" msgstr "" -#: ../../whatsnew/3.6.rst:531 msgid "" "The default console on Windows will now accept all Unicode characters and " -"provide correctly read str objects to Python code. ``sys.stdin``, " -"``sys.stdout`` and ``sys.stderr`` now default to utf-8 encoding." +"provide correctly read str objects to Python code. ``sys.stdin``, ``sys." +"stdout`` and ``sys.stderr`` now default to utf-8 encoding." msgstr "" -#: ../../whatsnew/3.6.rst:535 msgid "" "This change only applies when using an interactive console, and not when " "redirecting files or pipes. To revert to the previous behaviour for " "interactive console use, set :envvar:`PYTHONLEGACYWINDOWSSTDIO`." msgstr "" -#: ../../whatsnew/3.6.rst:541 msgid ":pep:`528` -- Change Windows console encoding to UTF-8" msgstr "" -#: ../../whatsnew/3.6.rst:542 msgid "PEP written and implemented by Steve Dower." msgstr "" -#: ../../whatsnew/3.6.rst:548 msgid "PEP 520: Preserving Class Attribute Definition Order" msgstr "" -#: ../../whatsnew/3.6.rst:550 msgid "" "Attributes in a class definition body have a natural ordering: the same " "order in which the names appear in the source. This order is now preserved " "in the new class's :attr:`~type.__dict__` attribute." msgstr "" -#: ../../whatsnew/3.6.rst:554 msgid "" -"Also, the effective default class *execution* namespace (returned " -"from :ref:`type.__prepare__() `) is now an insertion-order-" -"preserving mapping." +"Also, the effective default class *execution* namespace (returned from :ref:" +"`type.__prepare__() `) is now an insertion-order-preserving mapping." msgstr "" -#: ../../whatsnew/3.6.rst:560 msgid ":pep:`520` -- Preserving Class Attribute Definition Order" msgstr "" -#: ../../whatsnew/3.6.rst:561 ../../whatsnew/3.6.rst:575 msgid "PEP written and implemented by Eric Snow." msgstr "" -#: ../../whatsnew/3.6.rst:567 msgid "PEP 468: Preserving Keyword Argument Order" msgstr "" -#: ../../whatsnew/3.6.rst:569 msgid "" "``**kwargs`` in a function signature is now guaranteed to be an insertion-" "order-preserving mapping." msgstr "" -#: ../../whatsnew/3.6.rst:574 msgid ":pep:`468` -- Preserving Keyword Argument Order" msgstr "" -#: ../../whatsnew/3.6.rst:581 msgid "New :ref:`dict ` implementation" msgstr "" -#: ../../whatsnew/3.6.rst:583 msgid "" "The :ref:`dict ` type now uses a \"compact\" representation " "based on `a proposal by Raymond Hettinger `_ which was `first implemented by PyPy " -"`_. The memory usage of the new :func:`dict` is between 20% and " -"25% smaller compared to Python 3.5." +"`_. The memory usage of the new :func:`dict` is between 20% and 25% " +"smaller compared to Python 3.5." msgstr "" -#: ../../whatsnew/3.6.rst:591 msgid "" "The order-preserving aspect of this new implementation is considered an " "implementation detail and should not be relied upon (this may change in the " @@ -790,22 +662,19 @@ msgid "" "language for a few releases before changing the language spec to mandate " "order-preserving semantics for all current and future Python " "implementations; this also helps preserve backwards-compatibility with older " -"versions of the language where random iteration order is still in effect, " -"e.g. Python 3.5)." +"versions of the language where random iteration order is still in effect, e." +"g. Python 3.5)." msgstr "" -#: ../../whatsnew/3.6.rst:600 msgid "" "(Contributed by INADA Naoki in :issue:`27350`. Idea `originally suggested by " "Raymond Hettinger `_.)" msgstr "" -#: ../../whatsnew/3.6.rst:608 msgid "PEP 523: Adding a frame evaluation API to CPython" msgstr "" -#: ../../whatsnew/3.6.rst:610 msgid "" "While Python provides extensive support to customize how code executes, one " "place it has not done so is in the evaluation of frame objects. If you " @@ -814,7 +683,6 @@ msgid "" "functions." msgstr "" -#: ../../whatsnew/3.6.rst:616 msgid "" ":pep:`523` changes this by providing an API to make frame evaluation " "pluggable at the C level. This will allow for tools such as debuggers and " @@ -823,7 +691,6 @@ msgid "" "Python code, tracking frame evaluation, etc." msgstr "" -#: ../../whatsnew/3.6.rst:623 msgid "" "This API is not part of the limited C API and is marked as private to signal " "that usage of this API is expected to be limited and only applicable to very " @@ -831,55 +698,43 @@ msgid "" "necessary." msgstr "" -#: ../../whatsnew/3.6.rst:630 msgid ":pep:`523` -- Adding a frame evaluation API to CPython" msgstr "" -#: ../../whatsnew/3.6.rst:631 msgid "PEP written by Brett Cannon and Dino Viehland." msgstr "" -#: ../../whatsnew/3.6.rst:637 msgid "PYTHONMALLOC environment variable" msgstr "" -#: ../../whatsnew/3.6.rst:639 msgid "" "The new :envvar:`PYTHONMALLOC` environment variable allows setting the " "Python memory allocators and installing debug hooks." msgstr "" -#: ../../whatsnew/3.6.rst:642 msgid "" "It is now possible to install debug hooks on Python memory allocators on " "Python compiled in release mode using ``PYTHONMALLOC=debug``. Effects of " "debug hooks:" msgstr "" -#: ../../whatsnew/3.6.rst:645 msgid "Newly allocated memory is filled with the byte ``0xCB``" msgstr "" -#: ../../whatsnew/3.6.rst:646 msgid "Freed memory is filled with the byte ``0xDB``" msgstr "" -#: ../../whatsnew/3.6.rst:647 msgid "" -"Detect violations of the Python memory allocator API. For " -"example, :c:func:`PyObject_Free` called on a memory block allocated " -"by :c:func:`PyMem_Malloc`." +"Detect violations of the Python memory allocator API. For example, :c:func:" +"`PyObject_Free` called on a memory block allocated by :c:func:`PyMem_Malloc`." msgstr "" -#: ../../whatsnew/3.6.rst:650 msgid "Detect writes before the start of a buffer (buffer underflows)" msgstr "" -#: ../../whatsnew/3.6.rst:651 msgid "Detect writes after the end of a buffer (buffer overflows)" msgstr "" -#: ../../whatsnew/3.6.rst:652 msgid "" "Check that the :term:`GIL ` is held when allocator " "functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " @@ -887,17 +742,14 @@ msgid "" "called." msgstr "" -#: ../../whatsnew/3.6.rst:656 msgid "Checking if the GIL is held is also a new feature of Python 3.6." msgstr "" -#: ../../whatsnew/3.6.rst:658 msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." msgstr "" -#: ../../whatsnew/3.6.rst:661 msgid "" "It is now also possible to force the usage of the :c:func:`malloc` allocator " "of the C library for all Python memory allocations using " @@ -905,20 +757,16 @@ msgid "" "debuggers like Valgrind on a Python compiled in release mode." msgstr "" -#: ../../whatsnew/3.6.rst:666 msgid "" -"On error, the debug hooks on Python memory allocators now use " -"the :mod:`tracemalloc` module to get the traceback where a memory block was " -"allocated." +"On error, the debug hooks on Python memory allocators now use the :mod:" +"`tracemalloc` module to get the traceback where a memory block was allocated." msgstr "" -#: ../../whatsnew/3.6.rst:670 msgid "" "Example of fatal error on buffer overflow using ``python3.6 -X " "tracemalloc=5`` (store 5 frames in traces)::" msgstr "" -#: ../../whatsnew/3.6.rst:673 msgid "" "Debug memory block at address p=0x7fbcd41666f8: API 'o'\n" " 4 bytes originally requested\n" @@ -956,109 +804,90 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.6.rst:707 msgid "(Contributed by Victor Stinner in :issue:`26516` and :issue:`26564`.)" msgstr "" -#: ../../whatsnew/3.6.rst:713 msgid "DTrace and SystemTap probing support" msgstr "" -#: ../../whatsnew/3.6.rst:715 msgid "" "Python can now be built ``--with-dtrace`` which enables static markers for " "the following events in the interpreter:" msgstr "" -#: ../../whatsnew/3.6.rst:718 msgid "function call/return" msgstr "" -#: ../../whatsnew/3.6.rst:720 msgid "garbage collection started/finished" msgstr "" -#: ../../whatsnew/3.6.rst:722 msgid "line of code executed." msgstr "" -#: ../../whatsnew/3.6.rst:724 msgid "" "This can be used to instrument running interpreters in production, without " "the need to recompile specific :ref:`debug builds ` or " "providing application-specific profiling/debugging code." msgstr "" -#: ../../whatsnew/3.6.rst:728 msgid "More details in :ref:`instrumentation`." msgstr "" -#: ../../whatsnew/3.6.rst:730 msgid "" "The current implementation is tested on Linux and macOS. Additional markers " "may be added in the future." msgstr "" -#: ../../whatsnew/3.6.rst:733 msgid "" "(Contributed by Łukasz Langa in :issue:`21590`, based on patches by Jesús " "Cea Avión, David Malcolm, and Nikhil Benesch.)" msgstr "" -#: ../../whatsnew/3.6.rst:738 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.6.rst:740 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: ../../whatsnew/3.6.rst:742 msgid "" "A ``global`` or ``nonlocal`` statement must now textually appear before the " -"first use of the affected name in the same scope. Previously this was " -"a :exc:`SyntaxWarning`." +"first use of the affected name in the same scope. Previously this was a :exc:" +"`SyntaxWarning`." msgstr "" -#: ../../whatsnew/3.6.rst:746 msgid "" "It is now possible to set a :ref:`special method ` to ``None`` " "to indicate that the corresponding operation is not available. For example, " -"if a class sets :meth:`__iter__` to ``None``, the class is not iterable. " -"(Contributed by Andrew Barnert and Ivan Levkivskyi in :issue:`25958`.)" +"if a class sets :meth:`~object.__iter__` to ``None``, the class is not " +"iterable. (Contributed by Andrew Barnert and Ivan Levkivskyi in :issue:" +"`25958`.)" msgstr "" -#: ../../whatsnew/3.6.rst:752 msgid "" "Long sequences of repeated traceback lines are now abbreviated as " "``\"[Previous line repeated {count} more times]\"`` (see :ref:`whatsnew36-" "traceback` for an example). (Contributed by Emanuel Barry in :issue:`26823`.)" msgstr "" -#: ../../whatsnew/3.6.rst:757 msgid "" -"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass " -"of :exc:`ImportError`) when it cannot find a module. Code that currently " -"checks for ImportError (in try-except) will still work. (Contributed by Eric " -"Snow in :issue:`15767`.)" +"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" +"exc:`ImportError`) when it cannot find a module. Code that currently checks " +"for ImportError (in try-except) will still work. (Contributed by Eric Snow " +"in :issue:`15767`.)" msgstr "" -#: ../../whatsnew/3.6.rst:762 msgid "" "Class methods relying on zero-argument ``super()`` will now work correctly " "when called from metaclass methods during class creation. (Contributed by " "Martin Teichmann in :issue:`23722`.)" msgstr "" -#: ../../whatsnew/3.6.rst:768 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.6.rst:773 msgid "secrets" msgstr "" -#: ../../whatsnew/3.6.rst:775 msgid "" "The main purpose of the new :mod:`secrets` module is to provide an obvious " "way to reliably generate cryptographically strong pseudo-random values " @@ -1066,78 +895,63 @@ msgid "" "similar." msgstr "" -#: ../../whatsnew/3.6.rst:781 msgid "" "Note that the pseudo-random generators in the :mod:`random` module should " -"*NOT* be used for security purposes. Use :mod:`secrets` on Python 3.6+ " -"and :func:`os.urandom` on Python 3.5 and earlier." +"*NOT* be used for security purposes. Use :mod:`secrets` on Python 3.6+ and :" +"func:`os.urandom` on Python 3.5 and earlier." msgstr "" -#: ../../whatsnew/3.6.rst:787 msgid ":pep:`506` -- Adding A Secrets Module To The Standard Library" msgstr "" -#: ../../whatsnew/3.6.rst:788 msgid "PEP written and implemented by Steven D'Aprano." msgstr "" -#: ../../whatsnew/3.6.rst:792 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.6.rst:795 msgid "array" msgstr "" -#: ../../whatsnew/3.6.rst:797 msgid "" "Exhausted iterators of :class:`array.array` will now stay exhausted even if " "the iterated array is extended. This is consistent with the behavior of " "other mutable sequences." msgstr "" -#: ../../whatsnew/3.6.rst:801 msgid "Contributed by Serhiy Storchaka in :issue:`26492`." msgstr "" -#: ../../whatsnew/3.6.rst:804 msgid "ast" msgstr "" -#: ../../whatsnew/3.6.rst:806 msgid "" "The new :class:`ast.Constant` AST node has been added. It can be used by " "external AST optimizers for the purposes of constant folding." msgstr "" -#: ../../whatsnew/3.6.rst:809 msgid "Contributed by Victor Stinner in :issue:`26146`." msgstr "" -#: ../../whatsnew/3.6.rst:813 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.6.rst:815 msgid "" "Starting with Python 3.6 the ``asyncio`` module is no longer provisional and " "its API is considered stable." msgstr "" -#: ../../whatsnew/3.6.rst:818 msgid "" "Notable changes in the :mod:`asyncio` module since Python 3.5.0 (all " "backported to 3.5.x due to the provisional status):" msgstr "" -#: ../../whatsnew/3.6.rst:821 msgid "" "The :func:`~asyncio.get_event_loop` function has been changed to always " "return the currently running loop when called from coroutines and callbacks. " "(Contributed by Yury Selivanov in :issue:`28613`.)" msgstr "" -#: ../../whatsnew/3.6.rst:826 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " "such as :meth:`loop.run_until_complete() `, " @@ -1145,26 +959,22 @@ msgid "" "by Yury Selivanov.)" msgstr "" -#: ../../whatsnew/3.6.rst:831 msgid "" "New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " "to event loops from other threads. (Contributed by Vincent Michel.)" msgstr "" -#: ../../whatsnew/3.6.rst:835 msgid "" "New :meth:`Transport.is_closing() ` method " "to check if the transport is closing or closed. (Contributed by Yury " "Selivanov.)" msgstr "" -#: ../../whatsnew/3.6.rst:839 msgid "" "The :meth:`loop.create_server() ` method can now " "accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" -#: ../../whatsnew/3.6.rst:843 msgid "" "New :meth:`loop.create_future() ` method to " "create Future objects. This allows alternative event loop implementations, " @@ -1173,35 +983,30 @@ msgid "" "Selivanov in :issue:`27041`.)" msgstr "" -#: ../../whatsnew/3.6.rst:850 msgid "" -"New :meth:`loop.get_exception_handler() " -"` method to get the current exception " -"handler. (Contributed by Yury Selivanov in :issue:`27040`.)" +"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " +"(Contributed by Yury Selivanov in :issue:`27040`.)" msgstr "" -#: ../../whatsnew/3.6.rst:854 msgid "" "New :meth:`StreamReader.readuntil() ` method " "to read data from the stream until a separator bytes sequence appears. " "(Contributed by Mark Korenberg.)" msgstr "" -#: ../../whatsnew/3.6.rst:859 msgid "" -"The performance of :meth:`StreamReader.readexactly() " -"` has been improved. (Contributed by Mark " -"Korenberg in :issue:`28370`.)" +"The performance of :meth:`StreamReader.readexactly() ` has been improved. (Contributed by Mark Korenberg in :issue:" +"`28370`.)" msgstr "" -#: ../../whatsnew/3.6.rst:863 msgid "" "The :meth:`loop.getaddrinfo() ` method is " "optimized to avoid calling the system ``getaddrinfo`` function if the " "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" -#: ../../whatsnew/3.6.rst:868 msgid "" "The :meth:`loop.stop() ` method has been changed to stop " "the loop immediately after the current iteration. Any new callbacks " @@ -1209,35 +1014,30 @@ msgid "" "by Guido van Rossum in :issue:`25593`.)" msgstr "" -#: ../../whatsnew/3.6.rst:874 msgid "" -":meth:`Future.set_exception ` will now " -"raise :exc:`TypeError` when passed an instance of the :exc:`StopIteration` " +":meth:`Future.set_exception ` will now raise :" +"exc:`TypeError` when passed an instance of the :exc:`StopIteration` " "exception. (Contributed by Chris Angelico in :issue:`26221`.)" msgstr "" -#: ../../whatsnew/3.6.rst:879 msgid "" -"New :meth:`loop.connect_accepted_socket() " -"` method to be used by servers that " -"accept connections outside of asyncio, but that use asyncio to handle them. " +"New :meth:`loop.connect_accepted_socket() ` method to be used by servers that accept " +"connections outside of asyncio, but that use asyncio to handle them. " "(Contributed by Jim Fulton in :issue:`27392`.)" msgstr "" -#: ../../whatsnew/3.6.rst:884 msgid "" "``TCP_NODELAY`` flag is now set for all TCP transports by default. " "(Contributed by Yury Selivanov in :issue:`27456`.)" msgstr "" -#: ../../whatsnew/3.6.rst:887 msgid "" "New :meth:`loop.shutdown_asyncgens() ` to " "properly close pending asynchronous generators before closing the loop. " "(Contributed by Yury Selivanov in :issue:`28003`.)" msgstr "" -#: ../../whatsnew/3.6.rst:892 msgid "" ":class:`Future ` and :class:`Task ` classes " "now have an optimized C implementation which makes asyncio code up to 30% " @@ -1245,85 +1045,71 @@ msgid "" "and :issue:`28544`.)" msgstr "" -#: ../../whatsnew/3.6.rst:900 msgid "binascii" msgstr "" -#: ../../whatsnew/3.6.rst:902 msgid "" "The :func:`~binascii.b2a_base64` function now accepts an optional *newline* " "keyword argument to control whether the newline character is appended to the " "return value. (Contributed by Victor Stinner in :issue:`25357`.)" msgstr "" -#: ../../whatsnew/3.6.rst:909 msgid "cmath" msgstr "" -#: ../../whatsnew/3.6.rst:911 msgid "" "The new :const:`cmath.tau` (*τ*) constant has been added. (Contributed by " "Lisa Roach in :issue:`12345`, see :pep:`628` for details.)" msgstr "" -#: ../../whatsnew/3.6.rst:914 msgid "" -"New constants: :const:`cmath.inf` and :const:`cmath.nan` to " -"match :const:`math.inf` and :const:`math.nan`, and also :const:`cmath.infj` " -"and :const:`cmath.nanj` to match the format used by complex repr. " -"(Contributed by Mark Dickinson in :issue:`23229`.)" +"New constants: :const:`cmath.inf` and :const:`cmath.nan` to match :const:" +"`math.inf` and :const:`math.nan`, and also :const:`cmath.infj` and :const:" +"`cmath.nanj` to match the format used by complex repr. (Contributed by Mark " +"Dickinson in :issue:`23229`.)" msgstr "" -#: ../../whatsnew/3.6.rst:921 msgid "collections" msgstr "" -#: ../../whatsnew/3.6.rst:923 msgid "" "The new :class:`~collections.abc.Collection` abstract base class has been " "added to represent sized iterable container classes. (Contributed by Ivan " "Levkivskyi, docs by Neil Girdhar in :issue:`27598`.)" msgstr "" -#: ../../whatsnew/3.6.rst:927 msgid "" "The new :class:`~collections.abc.Reversible` abstract base class represents " -"iterable classes that also provide the :meth:`__reversed__` method. " +"iterable classes that also provide the :meth:`~object.__reversed__` method. " "(Contributed by Ivan Levkivskyi in :issue:`25987`.)" msgstr "" -#: ../../whatsnew/3.6.rst:931 msgid "" "The new :class:`~collections.abc.AsyncGenerator` abstract base class " -"represents asynchronous generators. (Contributed by Yury Selivanov " -"in :issue:`28720`.)" +"represents asynchronous generators. (Contributed by Yury Selivanov in :issue:" +"`28720`.)" msgstr "" -#: ../../whatsnew/3.6.rst:935 msgid "" "The :func:`~collections.namedtuple` function now accepts an optional keyword " -"argument *module*, which, when specified, is used for " -"the :attr:`~type.__module__` attribute of the returned named tuple class. " -"(Contributed by Raymond Hettinger in :issue:`17941`.)" +"argument *module*, which, when specified, is used for the :attr:`~type." +"__module__` attribute of the returned named tuple class. (Contributed by " +"Raymond Hettinger in :issue:`17941`.)" msgstr "" -#: ../../whatsnew/3.6.rst:940 ../../whatsnew/3.6.rst:2295 msgid "" "The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " "now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" msgstr "" -#: ../../whatsnew/3.6.rst:944 msgid "" "Recursive :class:`collections.deque` instances can now be pickled. " "(Contributed by Serhiy Storchaka in :issue:`26482`.)" msgstr "" -#: ../../whatsnew/3.6.rst:949 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.6.rst:951 msgid "" "The :class:`ThreadPoolExecutor ` " "class constructor now accepts an optional *thread_name_prefix* argument to " @@ -1331,43 +1117,37 @@ msgid "" "(Contributed by Gregory P. Smith in :issue:`27664`.)" msgstr "" -#: ../../whatsnew/3.6.rst:959 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.6.rst:961 msgid "" "The :class:`contextlib.AbstractContextManager` class has been added to " "provide an abstract base class for context managers. It provides a sensible " "default implementation for ``__enter__()`` which returns ``self`` and leaves " -"``__exit__()`` an abstract method. A matching class has been added to " -"the :mod:`typing` module as :class:`typing.ContextManager`. (Contributed by " -"Brett Cannon in :issue:`25609`.)" +"``__exit__()`` an abstract method. A matching class has been added to the :" +"mod:`typing` module as :class:`typing.ContextManager`. (Contributed by Brett " +"Cannon in :issue:`25609`.)" msgstr "" -#: ../../whatsnew/3.6.rst:971 msgid "datetime" msgstr "" -#: ../../whatsnew/3.6.rst:973 msgid "" "The :class:`~datetime.datetime` and :class:`~datetime.time` classes have the " -"new :attr:`~time.fold` attribute used to disambiguate local time when " -"necessary. Many functions in the :mod:`datetime` have been updated to " +"new :attr:`~datetime.time.fold` attribute used to disambiguate local time " +"when necessary. Many functions in the :mod:`datetime` have been updated to " "support local time disambiguation. See :ref:`Local Time Disambiguation " "` section for more information. (Contributed by Alexander " "Belopolsky in :issue:`24773`.)" msgstr "" -#: ../../whatsnew/3.6.rst:981 msgid "" -"The :meth:`datetime.strftime() ` " -"and :meth:`date.strftime() ` methods now support ISO " -"8601 date directives ``%G``, ``%u`` and ``%V``. (Contributed by Ashley " -"Anderson in :issue:`12006`.)" +"The :meth:`datetime.strftime() ` and :meth:`date." +"strftime() ` methods now support ISO 8601 date " +"directives ``%G``, ``%u`` and ``%V``. (Contributed by Ashley Anderson in :" +"issue:`12006`.)" msgstr "" -#: ../../whatsnew/3.6.rst:986 msgid "" "The :func:`datetime.isoformat() ` function now " "accepts an optional *timespec* argument that specifies the number of " @@ -1375,120 +1155,100 @@ msgid "" "Alessandro Cucci and Alexander Belopolsky in :issue:`19475`.)" msgstr "" -#: ../../whatsnew/3.6.rst:991 msgid "" "The :meth:`datetime.combine() ` now accepts an " -"optional *tzinfo* argument. (Contributed by Alexander Belopolsky " -"in :issue:`27661`.)" +"optional *tzinfo* argument. (Contributed by Alexander Belopolsky in :issue:" +"`27661`.)" msgstr "" -#: ../../whatsnew/3.6.rst:997 msgid "decimal" msgstr "" -#: ../../whatsnew/3.6.rst:999 msgid "" "New :meth:`Decimal.as_integer_ratio() ` " -"method that returns a pair ``(n, d)`` of integers that represent the " -"given :class:`~decimal.Decimal` instance as a fraction, in lowest terms and " -"with a positive denominator::" +"method that returns a pair ``(n, d)`` of integers that represent the given :" +"class:`~decimal.Decimal` instance as a fraction, in lowest terms and with a " +"positive denominator::" msgstr "" -#: ../../whatsnew/3.6.rst:1004 msgid "" ">>> Decimal('-3.14').as_integer_ratio()\n" "(-157, 50)" msgstr "" -#: ../../whatsnew/3.6.rst:1007 msgid "(Contributed by Stefan Krah amd Mark Dickinson in :issue:`25928`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1012 ../../whatsnew/3.6.rst:1990 msgid "distutils" msgstr "" -#: ../../whatsnew/3.6.rst:1014 msgid "" -"The ``default_format`` attribute has been removed from " -"``distutils.command.sdist.sdist`` and the ``formats`` attribute defaults to " -"``['gztar']``. Although not anticipated, any code relying on the presence of " +"The ``default_format`` attribute has been removed from ``distutils.command." +"sdist.sdist`` and the ``formats`` attribute defaults to ``['gztar']``. " +"Although not anticipated, any code relying on the presence of " "``default_format`` may need to be adapted. See :issue:`27819` for more " "details." msgstr "" -#: ../../whatsnew/3.6.rst:1022 msgid "email" msgstr "" -#: ../../whatsnew/3.6.rst:1024 msgid "" "The new email API, enabled via the *policy* keyword to various constructors, " "is no longer provisional. The :mod:`email` documentation has been " "reorganized and rewritten to focus on the new API, while retaining the old " -"documentation for the legacy API. (Contributed by R. David Murray " -"in :issue:`24277`.)" +"documentation for the legacy API. (Contributed by R. David Murray in :issue:" +"`24277`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1029 msgid "" "The :mod:`email.mime` classes now all accept an optional *policy* keyword. " "(Contributed by Berker Peksag in :issue:`27331`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1032 msgid "" "The :class:`~email.generator.DecodedGenerator` now supports the *policy* " "keyword." msgstr "" -#: ../../whatsnew/3.6.rst:1035 msgid "" -"There is a new :mod:`~email.policy` " -"attribute, :attr:`~email.policy.Policy.message_factory`, that controls what " -"class is used by default when the parser creates new message objects. For " -"the :attr:`email.policy.compat32` policy this " -"is :class:`~email.message.Message`, for the new policies it " -"is :class:`~email.message.EmailMessage`. (Contributed by R. David Murray " -"in :issue:`20476`.)" +"There is a new :mod:`~email.policy` attribute, :attr:`~email.policy.Policy." +"message_factory`, that controls what class is used by default when the " +"parser creates new message objects. For the :attr:`email.policy.compat32` " +"policy this is :class:`~email.message.Message`, for the new policies it is :" +"class:`~email.message.EmailMessage`. (Contributed by R. David Murray in :" +"issue:`20476`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1044 msgid "encodings" msgstr "" -#: ../../whatsnew/3.6.rst:1046 msgid "" "On Windows, added the ``'oem'`` encoding to use ``CP_OEMCP``, and the " "``'ansi'`` alias for the existing ``'mbcs'`` encoding, which uses the " "``CP_ACP`` code page. (Contributed by Steve Dower in :issue:`27959`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1052 msgid "enum" msgstr "" -#: ../../whatsnew/3.6.rst:1054 msgid "" -"Two new enumeration base classes have been added to the :mod:`enum` " -"module: :class:`~enum.Flag` and :class:`~enum.IntFlags`. Both are used to " -"define constants that can be combined using the bitwise operators. " -"(Contributed by Ethan Furman in :issue:`23591`.)" +"Two new enumeration base classes have been added to the :mod:`enum` module: :" +"class:`~enum.Flag` and :class:`~enum.IntFlag`. Both are used to define " +"constants that can be combined using the bitwise operators. (Contributed by " +"Ethan Furman in :issue:`23591`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1059 msgid "" -"Many standard library modules have been updated to use " -"the :class:`~enum.IntFlags` class for their constants." +"Many standard library modules have been updated to use the :class:`~enum." +"IntFlag` class for their constants." msgstr "" -#: ../../whatsnew/3.6.rst:1062 msgid "" "The new :class:`enum.auto` value can be used to assign values to enum " "members automatically::" msgstr "" -#: ../../whatsnew/3.6.rst:1065 msgid "" ">>> from enum import Enum, auto\n" ">>> class Color(Enum):\n" @@ -1500,38 +1260,31 @@ msgid "" "[, , ]" msgstr "" -#: ../../whatsnew/3.6.rst:1076 msgid "faulthandler" msgstr "" -#: ../../whatsnew/3.6.rst:1078 msgid "" "On Windows, the :mod:`faulthandler` module now installs a handler for " "Windows exceptions: see :func:`faulthandler.enable`. (Contributed by Victor " "Stinner in :issue:`23848`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1084 msgid "fileinput" msgstr "" -#: ../../whatsnew/3.6.rst:1086 msgid "" ":func:`~fileinput.hook_encoded` now supports the *errors* argument. " "(Contributed by Joseph Hackman in :issue:`25788`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1091 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.6.rst:1093 msgid "" ":mod:`hashlib` supports OpenSSL 1.1.0. The minimum recommend version is " "1.0.2. (Contributed by Christian Heimes in :issue:`26470`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1096 msgid "" "BLAKE2 hash functions were added to the module. :func:`~hashlib.blake2b` " "and :func:`~hashlib.blake2s` are always available and support the full " @@ -1540,40 +1293,34 @@ msgid "" "Dmitry Chestnykh.)" msgstr "" -#: ../../whatsnew/3.6.rst:1102 msgid "" -"The SHA-3 hash " -"functions :func:`~hashlib.sha3_224`, :func:`~hashlib.sha3_256`, :func:`~hashlib.sha3_384`, :func:`~hashlib.sha3_512`, " -"and SHAKE hash functions :func:`~hashlib.shake_128` " -"and :func:`~hashlib.shake_256` were added. (Contributed by Christian Heimes " -"in :issue:`16113`. Keccak Code Package by Guido Bertoni, Joan Daemen, " -"Michaël Peeters, Gilles Van Assche, and Ronny Van Keer.)" +"The SHA-3 hash functions :func:`~hashlib.sha3_224`, :func:`~hashlib." +"sha3_256`, :func:`~hashlib.sha3_384`, :func:`~hashlib.sha3_512`, and SHAKE " +"hash functions :func:`~hashlib.shake_128` and :func:`~hashlib.shake_256` " +"were added. (Contributed by Christian Heimes in :issue:`16113`. Keccak Code " +"Package by Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche, " +"and Ronny Van Keer.)" msgstr "" -#: ../../whatsnew/3.6.rst:1109 msgid "" "The password-based key derivation function :func:`~hashlib.scrypt` is now " -"available with OpenSSL 1.1.0 and newer. (Contributed by Christian Heimes " -"in :issue:`27928`.)" +"available with OpenSSL 1.1.0 and newer. (Contributed by Christian Heimes in :" +"issue:`27928`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1114 msgid "http.client" msgstr "" -#: ../../whatsnew/3.6.rst:1116 msgid "" -":meth:`HTTPConnection.request() ` " -"and :meth:`~http.client.HTTPConnection.endheaders` both now support chunked " -"encoding request bodies. (Contributed by Demian Brecht and Rolf Krahl " -"in :issue:`12319`.)" +":meth:`HTTPConnection.request() ` and :" +"meth:`~http.client.HTTPConnection.endheaders` both now support chunked " +"encoding request bodies. (Contributed by Demian Brecht and Rolf Krahl in :" +"issue:`12319`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1123 msgid "idlelib and IDLE" msgstr "" -#: ../../whatsnew/3.6.rst:1125 msgid "" "The idlelib package is being modernized and refactored to make IDLE look and " "work better and to make the code easier to understand, test, and improve. " @@ -1583,40 +1330,34 @@ msgid "" "release of either." msgstr "" -#: ../../whatsnew/3.6.rst:1132 msgid "" "'Modernizing' includes renaming and consolidation of idlelib modules. The " "renaming of files with partial uppercase names is similar to the renaming " "of, for instance, Tkinter and TkFont to tkinter and tkinter.font in 3.0. As " "a result, imports of idlelib files that worked in 3.5 will usually not work " -"in 3.6. At least a module name change will be needed (see idlelib/" -"README.txt), sometimes more. (Name changes contributed by Al Swiegart and " -"Terry Reedy in :issue:`24225`. Most idlelib patches since have been and " -"will be part of the process.)" +"in 3.6. At least a module name change will be needed (see idlelib/README." +"txt), sometimes more. (Name changes contributed by Al Swiegart and Terry " +"Reedy in :issue:`24225`. Most idlelib patches since have been and will be " +"part of the process.)" msgstr "" -#: ../../whatsnew/3.6.rst:1141 msgid "" "In compensation, the eventual result with be that some idlelib classes will " "be easier to use, with better APIs and docstrings explaining them. " "Additional useful information will be added to idlelib when available." msgstr "" -#: ../../whatsnew/3.6.rst:1145 msgid "New in 3.6.2:" msgstr "" -#: ../../whatsnew/3.6.rst:1147 msgid "" -"Multiple fixes for autocompletion. (Contributed by Louie Lu " -"in :issue:`15786`.)" +"Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" +"`15786`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1149 msgid "New in 3.6.3:" msgstr "" -#: ../../whatsnew/3.6.rst:1151 msgid "" "Module Browser (on the File menu, formerly called Class Browser), now " "displays nested functions and classes in addition to top-level functions and " @@ -1624,7 +1365,6 @@ msgid "" "in :issue:`1612262`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1157 msgid "" "The IDLE features formerly implemented as extensions have been reimplemented " "as normal features. Their settings have been moved from the Extensions tab " @@ -1632,18 +1372,15 @@ msgid "" "in :issue:`27099`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1162 msgid "" "The Settings dialog (Options, Configure IDLE) has been partly rewritten to " "improve both appearance and function. (Contributed by Cheryl Sabella and " "Terry Jan Reedy in multiple issues.)" msgstr "" -#: ../../whatsnew/3.6.rst:1166 msgid "New in 3.6.4:" msgstr "" -#: ../../whatsnew/3.6.rst:1168 msgid "" "The font sample now includes a selection of non-Latin characters so that " "users can better see the effect of selecting a particular font. (Contributed " @@ -1651,20 +1388,17 @@ msgid "" "other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1174 msgid "New in 3.6.6:" msgstr "" -#: ../../whatsnew/3.6.rst:1176 msgid "" "Editor code context option revised. Box displays all context lines up to " "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " -"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy " -"in :issue:`33642`, :issue:`33768`, and :issue:`33679`.)" +"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" +"`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1182 msgid "" "On Windows, a new API call tells Windows that tk scales for DPI. On Windows " "8.1+ or 10, with DPI compatibility properties of the Python binary " @@ -1673,11 +1407,9 @@ msgid "" "Terry Jan Reedy in :issue:`33656`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1188 msgid "New in 3.6.7:" msgstr "" -#: ../../whatsnew/3.6.rst:1190 msgid "" "Output over N lines (50 by default) is squeezed down to a button. N can be " "changed in the PyShell section of the General page of the Settings dialog. " @@ -1687,39 +1419,33 @@ msgid "" "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1199 ../../whatsnew/3.6.rst:2007 msgid "importlib" msgstr "" -#: ../../whatsnew/3.6.rst:1201 msgid "" -"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass " -"of :exc:`ImportError`) when it cannot find a module. Code that current " -"checks for ``ImportError`` (in try-except) will still work. (Contributed by " -"Eric Snow in :issue:`15767`.)" +"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" +"exc:`ImportError`) when it cannot find a module. Code that current checks " +"for ``ImportError`` (in try-except) will still work. (Contributed by Eric " +"Snow in :issue:`15767`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1206 msgid "" -":class:`importlib.util.LazyLoader` now " -"calls :meth:`~importlib.abc.Loader.create_module` on the wrapped loader, " -"removing the restriction that :class:`importlib.machinery.BuiltinImporter` " -"and :class:`importlib.machinery.ExtensionFileLoader` couldn't be used " -"with :class:`importlib.util.LazyLoader`." +":class:`importlib.util.LazyLoader` now calls :meth:`~importlib.abc.Loader." +"create_module` on the wrapped loader, removing the restriction that :class:" +"`importlib.machinery.BuiltinImporter` and :class:`importlib.machinery." +"ExtensionFileLoader` couldn't be used with :class:`importlib.util." +"LazyLoader`." msgstr "" -#: ../../whatsnew/3.6.rst:1212 msgid "" -":func:`importlib.util.cache_from_source`, :func:`importlib.util.source_from_cache`, " -"and :func:`importlib.util.spec_from_file_location` now accept a :term:`path-" -"like object`." +":func:`importlib.util.cache_from_source`, :func:`importlib.util." +"source_from_cache`, and :func:`importlib.util.spec_from_file_location` now " +"accept a :term:`path-like object`." msgstr "" -#: ../../whatsnew/3.6.rst:1219 msgid "inspect" msgstr "" -#: ../../whatsnew/3.6.rst:1221 msgid "" "The :func:`inspect.signature() ` function now reports the " "implicit ``.0`` parameters generated by the compiler for comprehension and " @@ -1727,122 +1453,100 @@ msgid "" "called ``implicit0``. (Contributed by Jelle Zijlstra in :issue:`19611`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1226 msgid "" -"To reduce code churn when upgrading from Python 2.7 and the " -"legacy :func:`inspect.getargspec` API, the previously documented deprecation " -"of :func:`inspect.getfullargspec` has been reversed. While this function is " -"convenient for single/source Python 2/3 code bases, the " -"richer :func:`inspect.signature` interface remains the recommended approach " -"for new code. (Contributed by Nick Coghlan in :issue:`27172`)" +"To reduce code churn when upgrading from Python 2.7 and the legacy :func:`!" +"inspect.getargspec` API, the previously documented deprecation of :func:" +"`inspect.getfullargspec` has been reversed. While this function is " +"convenient for single/source Python 2/3 code bases, the richer :func:" +"`inspect.signature` interface remains the recommended approach for new code. " +"(Contributed by Nick Coghlan in :issue:`27172`)" msgstr "" -#: ../../whatsnew/3.6.rst:1235 msgid "json" msgstr "" -#: ../../whatsnew/3.6.rst:1237 msgid "" ":func:`json.load` and :func:`json.loads` now support binary input. Encoded " "JSON should be represented using either UTF-8, UTF-16, or UTF-32. " "(Contributed by Serhiy Storchaka in :issue:`17909`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1243 msgid "logging" msgstr "" -#: ../../whatsnew/3.6.rst:1245 msgid "" -"The new :meth:`WatchedFileHandler.reopenIfNeeded() " -"` method has been added " -"to add the ability to check if the log file needs to be reopened. " -"(Contributed by Marian Horban in :issue:`24884`.)" +"The new :meth:`WatchedFileHandler.reopenIfNeeded() ` method has been added to add the ability " +"to check if the log file needs to be reopened. (Contributed by Marian Horban " +"in :issue:`24884`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1252 msgid "math" msgstr "" -#: ../../whatsnew/3.6.rst:1254 msgid "" "The tau (*τ*) constant has been added to the :mod:`math` and :mod:`cmath` " "modules. (Contributed by Lisa Roach in :issue:`12345`, see :pep:`628` for " "details.)" msgstr "" -#: ../../whatsnew/3.6.rst:1260 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.6.rst:1262 msgid "" -":ref:`Proxy Objects ` returned " -"by :func:`multiprocessing.Manager` can now be nested. (Contributed by Davin " -"Potts in :issue:`6766`.)" +":ref:`Proxy Objects ` returned by :func:" +"`multiprocessing.Manager` can now be nested. (Contributed by Davin Potts in :" +"issue:`6766`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1268 ../../whatsnew/3.6.rst:2021 msgid "os" msgstr "" -#: ../../whatsnew/3.6.rst:1270 msgid "" "See the summary of :ref:`PEP 519 ` for details on how " "the :mod:`os` and :mod:`os.path` modules now support :term:`path-like " "objects `." msgstr "" -#: ../../whatsnew/3.6.rst:1274 msgid ":func:`~os.scandir` now supports :class:`bytes` paths on Windows." msgstr "" -#: ../../whatsnew/3.6.rst:1276 msgid "" -"A new :meth:`~os.scandir.close` method allows explicitly closing " -"a :func:`~os.scandir` iterator. The :func:`~os.scandir` iterator now " -"supports the :term:`context manager` protocol. If a :func:`scandir` " -"iterator is neither exhausted nor explicitly closed a :exc:`ResourceWarning` " -"will be emitted in its destructor. (Contributed by Serhiy Storchaka " -"in :issue:`25994`.)" +"A new :meth:`~os.scandir.close` method allows explicitly closing a :func:" +"`~os.scandir` iterator. The :func:`~os.scandir` iterator now supports the :" +"term:`context manager` protocol. If a :func:`!scandir` iterator is neither " +"exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted in " +"its destructor. (Contributed by Serhiy Storchaka in :issue:`25994`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1286 msgid "" "The Linux ``getrandom()`` syscall (get random bytes) is now exposed as the " "new :func:`os.getrandom` function. (Contributed by Victor Stinner, part of " "the :pep:`524`)" msgstr "" -#: ../../whatsnew/3.6.rst:1292 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.6.rst:1294 msgid "" ":mod:`pathlib` now supports :term:`path-like objects `. " "(Contributed by Brett Cannon in :issue:`27186`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1297 msgid "See the summary of :ref:`PEP 519 ` for details." msgstr "" -#: ../../whatsnew/3.6.rst:1301 msgid "pdb" msgstr "" -#: ../../whatsnew/3.6.rst:1303 msgid "" "The :class:`~pdb.Pdb` class constructor has a new optional *readrc* argument " "to control whether ``.pdbrc`` files should be read." msgstr "" -#: ../../whatsnew/3.6.rst:1308 msgid "pickle" msgstr "" -#: ../../whatsnew/3.6.rst:1310 msgid "" "Objects that need ``__new__`` called with keyword arguments can now be " "pickled using :ref:`pickle protocols ` older than protocol " @@ -1850,98 +1554,81 @@ msgid "" "Serhiy Storchaka in :issue:`24164`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1317 msgid "pickletools" msgstr "" -#: ../../whatsnew/3.6.rst:1319 msgid "" ":func:`pickletools.dis` now outputs the implicit memo index for the " "``MEMOIZE`` opcode. (Contributed by Serhiy Storchaka in :issue:`25382`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1325 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.6.rst:1327 msgid "" "The :mod:`pydoc` module has learned to respect the ``MANPAGER`` environment " "variable. (Contributed by Matthias Klose in :issue:`8637`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1331 msgid "" ":func:`help` and :mod:`pydoc` can now list named tuple fields in the order " "they were defined rather than alphabetically. (Contributed by Raymond " "Hettinger in :issue:`24879`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1337 msgid "random" msgstr "" -#: ../../whatsnew/3.6.rst:1339 msgid "" "The new :func:`~random.choices` function returns a list of elements of " "specified size from the given population with optional weights. (Contributed " "by Raymond Hettinger in :issue:`18844`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1345 ../../whatsnew/3.6.rst:2029 msgid "re" msgstr "" -#: ../../whatsnew/3.6.rst:1347 msgid "" -"Added support of modifier spans in regular expressions. Examples: ``'(?" -"i:p)ython'`` matches ``'python'`` and ``'Python'``, but not ``'PYTHON'``; " -"``'(?i)g(?-i:v)r'`` matches ``'GvR'`` and ``'gvr'``, but not ``'GVR'``. " +"Added support of modifier spans in regular expressions. Examples: ``'(?i:" +"p)ython'`` matches ``'python'`` and ``'Python'``, but not ``'PYTHON'``; ``'(?" +"i)g(?-i:v)r'`` matches ``'GvR'`` and ``'gvr'``, but not ``'GVR'``. " "(Contributed by Serhiy Storchaka in :issue:`433028`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1352 msgid "" "Match object groups can be accessed by ``__getitem__``, which is equivalent " -"to ``group()``. So ``mo['name']`` is now equivalent to " -"``mo.group('name')``. (Contributed by Eric Smith in :issue:`24454`.)" +"to ``group()``. So ``mo['name']`` is now equivalent to ``mo." +"group('name')``. (Contributed by Eric Smith in :issue:`24454`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1356 msgid "" -":class:`~re.Match` objects now support :meth:`index-like objects " -"` as group indices. (Contributed by Jeroen Demeyer and " -"Xiang Zhang in :issue:`27177`.)" +":class:`~re.Match` objects now support :meth:`index-like objects ` as group indices. (Contributed by Jeroen Demeyer and Xiang Zhang " +"in :issue:`27177`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1363 msgid "readline" msgstr "" -#: ../../whatsnew/3.6.rst:1365 msgid "" "Added :func:`~readline.set_auto_history` to enable or disable automatic " -"addition of input to the history list. (Contributed by Tyler Crompton " -"in :issue:`26870`.)" +"addition of input to the history list. (Contributed by Tyler Crompton in :" +"issue:`26870`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1371 msgid "rlcompleter" msgstr "" -#: ../../whatsnew/3.6.rst:1373 msgid "" "Private and special attribute names now are omitted unless the prefix starts " "with underscores. A space or a colon is added after some completed " -"keywords. (Contributed by Serhiy Storchaka in :issue:`25011` " -"and :issue:`25209`.)" +"keywords. (Contributed by Serhiy Storchaka in :issue:`25011` and :issue:" +"`25209`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1379 msgid "shlex" msgstr "" -#: ../../whatsnew/3.6.rst:1381 msgid "" "The :class:`~shlex.shlex` has much :ref:`improved shell compatibility " "` through the new *punctuation_chars* argument " @@ -1949,111 +1636,93 @@ msgid "" "Vinay Sajip in :issue:`1521950`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1389 msgid "site" msgstr "" -#: ../../whatsnew/3.6.rst:1391 msgid "" "When specifying paths to add to :data:`sys.path` in a ``.pth`` file, you may " "now specify file paths on top of directories (e.g. zip files). (Contributed " "by Wolfgang Langner in :issue:`26587`)." msgstr "" -#: ../../whatsnew/3.6.rst:1397 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.6.rst:1399 msgid "" ":attr:`sqlite3.Cursor.lastrowid` now supports the ``REPLACE`` statement. " "(Contributed by Alex LordThorsen in :issue:`16864`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1404 msgid "socket" msgstr "" -#: ../../whatsnew/3.6.rst:1406 msgid "" -"The :func:`~socket.socket.ioctl` function now supports " -"the :const:`~socket.SIO_LOOPBACK_FAST_PATH` control code. (Contributed by " -"Daniel Stokes in :issue:`26536`.)" +"The :func:`~socket.socket.ioctl` function now supports the :const:`~socket." +"SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" +"issue:`26536`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1410 msgid "" "The :meth:`~socket.socket.getsockopt` constants ``SO_DOMAIN``, " "``SO_PROTOCOL``, ``SO_PEERSEC``, and ``SO_PASSSEC`` are now supported. " "(Contributed by Christian Heimes in :issue:`26907`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1414 msgid "" "The :meth:`~socket.socket.setsockopt` now supports the ``setsockopt(level, " -"optname, None, optlen: int)`` form. (Contributed by Christian Heimes " -"in :issue:`27744`.)" +"optname, None, optlen: int)`` form. (Contributed by Christian Heimes in :" +"issue:`27744`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1418 msgid "" "The socket module now supports the address family :const:`~socket.AF_ALG` to " -"interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` " -"and :meth:`~socket.socket.sendmsg_afalg` were added. (Contributed by " -"Christian Heimes in :issue:`27744` with support from Victor Stinner.)" +"interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" +"`~socket.socket.sendmsg_afalg` were added. (Contributed by Christian Heimes " +"in :issue:`27744` with support from Victor Stinner.)" msgstr "" -#: ../../whatsnew/3.6.rst:1424 msgid "" "New Linux constants ``TCP_USER_TIMEOUT`` and ``TCP_CONGESTION`` were added. " "(Contributed by Omar Sandoval, :issue:`26273`)." msgstr "" -#: ../../whatsnew/3.6.rst:1429 msgid "socketserver" msgstr "" -#: ../../whatsnew/3.6.rst:1431 msgid "" -"Servers based on the :mod:`socketserver` module, including those defined " -"in :mod:`http.server`, :mod:`xmlrpc.server` " -"and :mod:`wsgiref.simple_server`, now support the :term:`context manager` " -"protocol. (Contributed by Aviv Palivoda in :issue:`26404`.)" +"Servers based on the :mod:`socketserver` module, including those defined in :" +"mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " +"now support the :term:`context manager` protocol. (Contributed by Aviv " +"Palivoda in :issue:`26404`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1437 msgid "" -"The :attr:`~socketserver.StreamRequestHandler.wfile` attribute " -"of :class:`~socketserver.StreamRequestHandler` classes now implements " -"the :class:`io.BufferedIOBase` writable interface. In particular, " -"calling :meth:`~io.BufferedIOBase.write` is now guaranteed to send the data " -"in full. (Contributed by Martin Panter in :issue:`26721`.)" +"The :attr:`wfile ` attribute of :" +"class:`~socketserver.StreamRequestHandler` classes now implements the :class:" +"`io.BufferedIOBase` writable interface. In particular, calling :meth:`~io." +"BufferedIOBase.write` is now guaranteed to send the data in full. " +"(Contributed by Martin Panter in :issue:`26721`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1445 ../../whatsnew/3.6.rst:2037 msgid "ssl" msgstr "" -#: ../../whatsnew/3.6.rst:1447 msgid "" ":mod:`ssl` supports OpenSSL 1.1.0. The minimum recommend version is 1.0.2. " "(Contributed by Christian Heimes in :issue:`26470`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1450 msgid "" "3DES has been removed from the default cipher suites and ChaCha20 Poly1305 " -"cipher suites have been added. (Contributed by Christian Heimes " -"in :issue:`27850` and :issue:`27766`.)" +"cipher suites have been added. (Contributed by Christian Heimes in :issue:" +"`27850` and :issue:`27766`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1454 msgid "" ":class:`~ssl.SSLContext` has better default configuration for options and " "ciphers. (Contributed by Christian Heimes in :issue:`28043`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1458 msgid "" "SSL session can be copied from one client-side connection to another with " "the new :class:`~ssl.SSLSession` class. TLS session resumption can speed up " @@ -2061,68 +1730,55 @@ msgid "" "by Christian Heimes in :issue:`19500` based on a draft by Alex Warhawk.)" msgstr "" -#: ../../whatsnew/3.6.rst:1464 msgid "" "The new :meth:`~ssl.SSLContext.get_ciphers` method can be used to get a list " "of enabled ciphers in order of cipher priority." msgstr "" -#: ../../whatsnew/3.6.rst:1467 msgid "" -"All constants and flags have been converted to :class:`~enum.IntEnum` " -"and :class:`~enum.IntFlags`. (Contributed by Christian Heimes " -"in :issue:`28025`.)" +"All constants and flags have been converted to :class:`~enum.IntEnum` and :" +"class:`~enum.IntFlag`. (Contributed by Christian Heimes in :issue:`28025`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1471 msgid "" "Server and client-side specific TLS protocols for :class:`~ssl.SSLContext` " "were added. (Contributed by Christian Heimes in :issue:`28085`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1475 msgid "" -"Added :attr:`ssl.SSLContext.post_handshake_auth` to enable " -"and :meth:`ssl.SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 " -"post-handshake authentication. (Contributed by Christian Heimes " -"in :gh:`78851`.)" +"Added :attr:`ssl.SSLContext.post_handshake_auth` to enable and :meth:`ssl." +"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " +"authentication. (Contributed by Christian Heimes in :gh:`78851`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1481 msgid "statistics" msgstr "" -#: ../../whatsnew/3.6.rst:1483 msgid "" "A new :func:`~statistics.harmonic_mean` function has been added. " "(Contributed by Steven D'Aprano in :issue:`27181`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1488 msgid "struct" msgstr "" -#: ../../whatsnew/3.6.rst:1490 msgid "" ":mod:`struct` now supports IEEE 754 half-precision floats via the ``'e'`` " -"format specifier. (Contributed by Eli Stevens, Mark Dickinson " -"in :issue:`11734`.)" +"format specifier. (Contributed by Eli Stevens, Mark Dickinson in :issue:" +"`11734`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1496 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.6.rst:1498 msgid "" ":class:`subprocess.Popen` destructor now emits a :exc:`ResourceWarning` " "warning if the child process is still running. Use the context manager " -"protocol (``with proc: ...``) or explicitly call " -"the :meth:`~subprocess.Popen.wait` method to read the exit status of the " -"child process. (Contributed by Victor Stinner in :issue:`26741`.)" +"protocol (``with proc: ...``) or explicitly call the :meth:`~subprocess." +"Popen.wait` method to read the exit status of the child process. " +"(Contributed by Victor Stinner in :issue:`26741`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1504 msgid "" "The :class:`subprocess.Popen` constructor and all functions that pass " "arguments through to it now accept *encoding* and *errors* arguments. " @@ -2130,18 +1786,15 @@ msgid "" "and *stderr* streams. (Contributed by Steve Dower in :issue:`6135`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1511 msgid "sys" msgstr "" -#: ../../whatsnew/3.6.rst:1513 msgid "" "The new :func:`~sys.getfilesystemencodeerrors` function returns the name of " "the error mode used to convert between Unicode filenames and bytes " "filenames. (Contributed by Steve Dower in :issue:`27781`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1517 msgid "" "On Windows the return value of the :func:`~sys.getwindowsversion` function " "now includes the *platform_version* field which contains the accurate major " @@ -2150,31 +1803,25 @@ msgid "" "by Steve Dower in :issue:`27932`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1525 msgid "telnetlib" msgstr "" -#: ../../whatsnew/3.6.rst:1527 msgid "" ":class:`!telnetlib.Telnet` is now a context manager (contributed by Stéphane " "Wirtel in :issue:`25485`)." msgstr "" -#: ../../whatsnew/3.6.rst:1532 msgid "time" msgstr "" -#: ../../whatsnew/3.6.rst:1534 msgid "" -"The :class:`~time.struct_time` attributes :attr:`tm_gmtoff` " -"and :attr:`tm_zone` are now available on all platforms." +"The :class:`~time.struct_time` attributes :attr:`!tm_gmtoff` and :attr:`!" +"tm_zone` are now available on all platforms." msgstr "" -#: ../../whatsnew/3.6.rst:1539 msgid "timeit" msgstr "" -#: ../../whatsnew/3.6.rst:1541 msgid "" "The new :meth:`Timer.autorange() ` convenience " "method has been added to call :meth:`Timer.timeit() ` " @@ -2182,40 +1829,32 @@ msgid "" "milliseconds. (Contributed by Steven D'Aprano in :issue:`6422`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1546 msgid "" ":mod:`timeit` now warns when there is substantial (4x) variance between best " "and worst times. (Contributed by Serhiy Storchaka in :issue:`23552`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1552 ../../whatsnew/3.6.rst:2054 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.6.rst:1554 msgid "" -"Added " -"methods :meth:`~tkinter.Variable.trace_add`, :meth:`~tkinter.Variable.trace_remove` " -"and :meth:`~tkinter.Variable.trace_info` in the :class:`tkinter.Variable` " -"class. They replace old " -"methods :meth:`~tkinter.Variable.trace_variable`, :meth:`~tkinter.Variable.trace`, :meth:`~tkinter.Variable.trace_vdelete` " -"and :meth:`~tkinter.Variable.trace_vinfo` that use obsolete Tcl commands and " +"Added methods :meth:`!Variable.trace_add`, :meth:`!Variable.trace_remove` " +"and :meth:`!trace_info` in the :class:`!tkinter.Variable` class. They " +"replace old methods :meth:`!trace_variable`, :meth:`!trace`, :meth:`!" +"trace_vdelete` and :meth:`!trace_vinfo` that use obsolete Tcl commands and " "might not work in future versions of Tcl. (Contributed by Serhiy Storchaka " "in :issue:`22115`)." msgstr "" -#: ../../whatsnew/3.6.rst:1567 msgid "traceback" msgstr "" -#: ../../whatsnew/3.6.rst:1569 msgid "" "Both the traceback module and the interpreter's builtin exception display " "now abbreviate long sequences of repeated lines in tracebacks as shown in " "the following example::" msgstr "" -#: ../../whatsnew/3.6.rst:1573 msgid "" ">>> def f(): f()\n" "...\n" @@ -2229,87 +1868,73 @@ msgid "" "RecursionError: maximum recursion depth exceeded" msgstr "" -#: ../../whatsnew/3.6.rst:1584 msgid "(Contributed by Emanuel Barry in :issue:`26823`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1588 msgid "tracemalloc" msgstr "" -#: ../../whatsnew/3.6.rst:1590 msgid "" "The :mod:`tracemalloc` module now supports tracing memory allocations in " "multiple different address spaces." msgstr "" -#: ../../whatsnew/3.6.rst:1593 msgid "" "The new :class:`~tracemalloc.DomainFilter` filter class has been added to " "filter block traces by their address space (domain)." msgstr "" -#: ../../whatsnew/3.6.rst:1596 msgid "(Contributed by Victor Stinner in :issue:`26588`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1602 msgid "typing" msgstr "" -#: ../../whatsnew/3.6.rst:1604 msgid "" "Since the :mod:`typing` module is :term:`provisional `, all " "changes introduced in Python 3.6 have also been backported to Python 3.5.x." msgstr "" -#: ../../whatsnew/3.6.rst:1608 msgid "" "The :mod:`typing` module has a much improved support for generic type " "aliases. For example ``Dict[str, Tuple[S, T]]`` is now a valid type " -"annotation. (Contributed by Guido van Rossum in `Github #195 `_.)" +"annotation. (Contributed by Guido van Rossum in `Github #195 `_.)" msgstr "" -#: ../../whatsnew/3.6.rst:1614 msgid "" -"The :class:`typing.ContextManager` class has been added for " -"representing :class:`contextlib.AbstractContextManager`. (Contributed by " -"Brett Cannon in :issue:`25609`.)" +"The :class:`typing.ContextManager` class has been added for representing :" +"class:`contextlib.AbstractContextManager`. (Contributed by Brett Cannon in :" +"issue:`25609`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1618 msgid "" -"The :class:`typing.Collection` class has been added for " -"representing :class:`collections.abc.Collection`. (Contributed by Ivan " -"Levkivskyi in :issue:`27598`.)" +"The :class:`typing.Collection` class has been added for representing :class:" +"`collections.abc.Collection`. (Contributed by Ivan Levkivskyi in :issue:" +"`27598`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1622 msgid "" "The :const:`typing.ClassVar` type construct has been added to mark class " "variables. As introduced in :pep:`526`, a variable annotation wrapped in " "ClassVar indicates that a given attribute is intended to be used as a class " "variable and should not be set on instances of that class. (Contributed by " -"Ivan Levkivskyi in `Github #280 `_.)" +"Ivan Levkivskyi in `Github #280 `_.)" msgstr "" -#: ../../whatsnew/3.6.rst:1629 msgid "" "A new :const:`~typing.TYPE_CHECKING` constant that is assumed to be ``True`` " "by the static type checkers, but is ``False`` at runtime. (Contributed by " -"Guido van Rossum in `Github #230 `_.)" +"Guido van Rossum in `Github #230 `_.)" msgstr "" -#: ../../whatsnew/3.6.rst:1634 msgid "" "A new :func:`~typing.NewType` helper function has been added to create " "lightweight distinct types for annotations::" msgstr "" -#: ../../whatsnew/3.6.rst:1637 msgid "" "from typing import NewType\n" "\n" @@ -2317,106 +1942,88 @@ msgid "" "some_id = UserId(524313)" msgstr "" -#: ../../whatsnew/3.6.rst:1642 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. (Contributed by Ivan Levkivskyi in `Github #189 `_.)" msgstr "" -#: ../../whatsnew/3.6.rst:1648 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.6.rst:1650 msgid "" "The :mod:`unicodedata` module now uses data from `Unicode 9.0.0 `_. (Contributed by Benjamin Peterson.)" msgstr "" -#: ../../whatsnew/3.6.rst:1656 msgid "unittest.mock" msgstr "" -#: ../../whatsnew/3.6.rst:1658 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" msgstr "" -#: ../../whatsnew/3.6.rst:1660 msgid "" -"Two new methods, :meth:`Mock.assert_called() " -"` and :meth:`Mock.assert_called_once() " -"` to check if the mock object was " -"called. (Contributed by Amit Saha in :issue:`26323`.)" +"Two new methods, :meth:`Mock.assert_called() ` and :meth:`Mock.assert_called_once() ` to check if the mock object was called. (Contributed by " +"Amit Saha in :issue:`26323`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1666 msgid "" "The :meth:`Mock.reset_mock() ` method now has " "two optional keyword only arguments: *return_value* and *side_effect*. " "(Contributed by Kushal Das in :issue:`21271`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1673 msgid "urllib.request" msgstr "" -#: ../../whatsnew/3.6.rst:1675 msgid "" "If a HTTP request has a file or iterable body (other than a bytes object) " -"but no ``Content-Length`` header, rather than throwing an " -"error, :class:`~urllib.request.AbstractHTTPHandler` now falls back to use " -"chunked transfer encoding. (Contributed by Demian Brecht and Rolf Krahl " -"in :issue:`12319`.)" +"but no ``Content-Length`` header, rather than throwing an error, :class:" +"`AbstractHTTPHandler ` now falls back to use " +"chunked transfer encoding. (Contributed by Demian Brecht and Rolf Krahl in :" +"issue:`12319`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1683 msgid "urllib.robotparser" msgstr "" -#: ../../whatsnew/3.6.rst:1685 msgid "" ":class:`~urllib.robotparser.RobotFileParser` now supports the ``Crawl-" "delay`` and ``Request-rate`` extensions. (Contributed by Nikolay Bogoychev " "in :issue:`16099`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1691 ../../whatsnew/3.6.rst:2062 msgid "venv" msgstr "" -#: ../../whatsnew/3.6.rst:1693 msgid "" ":mod:`venv` accepts a new parameter ``--prompt``. This parameter provides an " "alternative prefix for the virtual environment. (Proposed by Łukasz " "Balcerzak and ported to 3.6 by Stéphane Wirtel in :issue:`22829`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1699 msgid "warnings" msgstr "" -#: ../../whatsnew/3.6.rst:1701 msgid "" -"A new optional *source* parameter has been added to " -"the :func:`warnings.warn_explicit` function: the destroyed object which " -"emitted a :exc:`ResourceWarning`. A *source* attribute has also been added " -"to :class:`warnings.WarningMessage` (contributed by Victor Stinner " -"in :issue:`26568` and :issue:`26567`)." +"A new optional *source* parameter has been added to the :func:`warnings." +"warn_explicit` function: the destroyed object which emitted a :exc:" +"`ResourceWarning`. A *source* attribute has also been added to :class:`!" +"warnings.WarningMessage` (contributed by Victor Stinner in :issue:`26568` " +"and :issue:`26567`)." msgstr "" -#: ../../whatsnew/3.6.rst:1707 msgid "" "When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc` " "module is now used to try to retrieve the traceback where the destroyed " "object was allocated." msgstr "" -#: ../../whatsnew/3.6.rst:1710 msgid "Example with the script ``example.py``::" msgstr "" -#: ../../whatsnew/3.6.rst:1712 msgid "" "import warnings\n" "\n" @@ -2427,11 +2034,9 @@ msgid "" "f = None" msgstr "" -#: ../../whatsnew/3.6.rst:1720 msgid "Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::" msgstr "" -#: ../../whatsnew/3.6.rst:1722 msgid "" "example.py:7: ResourceWarning: unclosed file <_io.TextIOWrapper " "name='example.py' mode='r' encoding='UTF-8'>\n" @@ -2443,50 +2048,41 @@ msgid "" " f = func()" msgstr "" -#: ../../whatsnew/3.6.rst:1730 msgid "" -"The \"Object allocated at\" traceback is new and is only displayed " -"if :mod:`tracemalloc` is tracing Python memory allocations and if " -"the :mod:`warnings` module was already imported." +"The \"Object allocated at\" traceback is new and is only displayed if :mod:" +"`tracemalloc` is tracing Python memory allocations and if the :mod:" +"`warnings` module was already imported." msgstr "" -#: ../../whatsnew/3.6.rst:1736 msgid "winreg" msgstr "" -#: ../../whatsnew/3.6.rst:1738 msgid "" "Added the 64-bit integer type :data:`REG_QWORD `. " "(Contributed by Clement Rouault in :issue:`23026`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1743 msgid "winsound" msgstr "" -#: ../../whatsnew/3.6.rst:1745 msgid "" -"Allowed keyword arguments to be passed to :func:`Beep " -"`, :func:`MessageBeep `, " -"and :func:`PlaySound ` (:issue:`27982`)." +"Allowed keyword arguments to be passed to :func:`Beep `, :" +"func:`MessageBeep `, and :func:`PlaySound ` (:issue:`27982`)." msgstr "" -#: ../../whatsnew/3.6.rst:1751 msgid "xmlrpc.client" msgstr "" -#: ../../whatsnew/3.6.rst:1753 msgid "" "The :mod:`xmlrpc.client` module now supports unmarshalling additional data " "types used by the Apache XML-RPC implementation for numerics and ``None``. " "(Contributed by Serhiy Storchaka in :issue:`26885`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1760 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.6.rst:1762 msgid "" "A new :meth:`ZipInfo.from_file() ` class method " "allows making a :class:`~zipfile.ZipInfo` instance from a filesystem file. A " @@ -2495,126 +2091,107 @@ msgid "" "(Contributed by Thomas Kluyver in :issue:`26039`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1768 msgid "" "The :meth:`ZipFile.open() ` method can now be used to " "write data into a ZIP file, as well as for extracting data. (Contributed by " "Thomas Kluyver in :issue:`26039`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1774 msgid "zlib" msgstr "" -#: ../../whatsnew/3.6.rst:1776 msgid "" "The :func:`~zlib.compress` and :func:`~zlib.decompress` functions now accept " "keyword arguments. (Contributed by Aviv Palivoda in :issue:`26243` and Xiang " "Zhang in :issue:`16764` respectively.)" msgstr "" -#: ../../whatsnew/3.6.rst:1783 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.6.rst:1785 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode which " "made a number of opcode optimizations possible. (Contributed by Demur Rumed " -"with input and reviews from Serhiy Storchaka and Victor Stinner " -"in :issue:`26647` and :issue:`28050`.)" +"with input and reviews from Serhiy Storchaka and Victor Stinner in :issue:" +"`26647` and :issue:`28050`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1790 msgid "" "The :class:`asyncio.Future` class now has an optimized C implementation. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26081`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1793 msgid "" "The :class:`asyncio.Task` class now has an optimized C implementation. " "(Contributed by Yury Selivanov in :issue:`28544`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1796 msgid "" "Various implementation improvements in the :mod:`typing` module (such as " "caching of generic types) allow up to 30 times performance improvements and " "reduced memory footprint." msgstr "" -#: ../../whatsnew/3.6.rst:1800 msgid "" "The ASCII decoder is now up to 60 times as fast for error handlers " "``surrogateescape``, ``ignore`` and ``replace`` (Contributed by Victor " "Stinner in :issue:`24870`)." msgstr "" -#: ../../whatsnew/3.6.rst:1804 msgid "" "The ASCII and the Latin1 encoders are now up to 3 times as fast for the " -"error handler ``surrogateescape`` (Contributed by Victor Stinner " -"in :issue:`25227`)." +"error handler ``surrogateescape`` (Contributed by Victor Stinner in :issue:" +"`25227`)." msgstr "" -#: ../../whatsnew/3.6.rst:1808 msgid "" "The UTF-8 encoder is now up to 75 times as fast for error handlers " "``ignore``, ``replace``, ``surrogateescape``, ``surrogatepass`` (Contributed " "by Victor Stinner in :issue:`25267`)." msgstr "" -#: ../../whatsnew/3.6.rst:1812 msgid "" "The UTF-8 decoder is now up to 15 times as fast for error handlers " "``ignore``, ``replace`` and ``surrogateescape`` (Contributed by Victor " "Stinner in :issue:`25301`)." msgstr "" -#: ../../whatsnew/3.6.rst:1816 msgid "" "``bytes % args`` is now up to 2 times faster. (Contributed by Victor Stinner " "in :issue:`25349`)." msgstr "" -#: ../../whatsnew/3.6.rst:1819 msgid "" "``bytearray % args`` is now between 2.5 and 5 times faster. (Contributed by " "Victor Stinner in :issue:`25399`)." msgstr "" -#: ../../whatsnew/3.6.rst:1822 msgid "" "Optimize :meth:`bytes.fromhex` and :meth:`bytearray.fromhex`: they are now " -"between 2x and 3.5x faster. (Contributed by Victor Stinner " -"in :issue:`25401`)." +"between 2x and 3.5x faster. (Contributed by Victor Stinner in :issue:" +"`25401`)." msgstr "" -#: ../../whatsnew/3.6.rst:1825 msgid "" "Optimize ``bytes.replace(b'', b'.')`` and ``bytearray.replace(b'', b'.')``: " "up to 80% faster. (Contributed by Josh Snider in :issue:`26574`)." msgstr "" -#: ../../whatsnew/3.6.rst:1828 msgid "" -"Allocator functions of the :c:func:`PyMem_Malloc` domain " -"(:c:macro:`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator " -"` instead of :c:func:`malloc` function of the C library. The " -"pymalloc allocator is optimized for objects smaller or equal to 512 bytes " -"with a short lifetime, and use :c:func:`malloc` for larger memory blocks. " +"Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:macro:" +"`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " +"instead of :c:func:`malloc` function of the C library. The pymalloc " +"allocator is optimized for objects smaller or equal to 512 bytes with a " +"short lifetime, and use :c:func:`malloc` for larger memory blocks. " "(Contributed by Victor Stinner in :issue:`26249`)." msgstr "" -#: ../../whatsnew/3.6.rst:1835 msgid "" ":func:`pickle.load` and :func:`pickle.loads` are now up to 10% faster when " -"deserializing many small objects (Contributed by Victor Stinner " -"in :issue:`27056`)." +"deserializing many small objects (Contributed by Victor Stinner in :issue:" +"`27056`)." msgstr "" -#: ../../whatsnew/3.6.rst:1839 msgid "" "Passing :term:`keyword arguments ` to a function has an " "overhead in comparison with passing :term:`positional arguments ` must now be held when allocator " "functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " @@ -2687,79 +2255,66 @@ msgid "" "called." msgstr "" -#: ../../whatsnew/3.6.rst:1884 msgid "" "New :c:func:`Py_FinalizeEx` API which indicates if flushing buffered data " "failed. (Contributed by Martin Panter in :issue:`5319`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1888 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports :ref:`positional-only " "parameters `. Positional-only parameters are " "defined by empty names. (Contributed by Serhiy Storchaka in :issue:`26282`)." msgstr "" -#: ../../whatsnew/3.6.rst:1893 msgid "" "``PyTraceback_Print`` method now abbreviates long sequences of repeated " "lines as ``\"[Previous line repeated {count} more times]\"``. (Contributed " "by Emanuel Barry in :issue:`26823`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1897 msgid "" "The new :c:func:`PyErr_SetImportErrorSubclass` function allows for " "specifying a subclass of :exc:`ImportError` to raise. (Contributed by Eric " "Snow in :issue:`15767`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1901 msgid "" -"The new :c:func:`PyErr_ResourceWarning` function can be used to generate " -"a :exc:`ResourceWarning` providing the source of the resource allocation. " +"The new :c:func:`PyErr_ResourceWarning` function can be used to generate a :" +"exc:`ResourceWarning` providing the source of the resource allocation. " "(Contributed by Victor Stinner in :issue:`26567`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1905 msgid "" "The new :c:func:`PyOS_FSPath` function returns the file system " "representation of a :term:`path-like object`. (Contributed by Brett Cannon " "in :issue:`27186`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1909 msgid "" "The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder` " "functions will now accept :term:`path-like objects `." msgstr "" -#: ../../whatsnew/3.6.rst:1914 msgid "Other Improvements" msgstr "" -#: ../../whatsnew/3.6.rst:1916 msgid "" "When :option:`--version` (short form: :option:`-V`) is supplied twice, " "Python prints :data:`sys.version` for detailed information." msgstr "" -#: ../../whatsnew/3.6.rst:1919 msgid "" "$ ./python -VV\n" "Python 3.6.0b4+ (3.6:223967b49e49+, Nov 21 2016, 20:55:04)\n" "[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]" msgstr "" -#: ../../whatsnew/3.6.rst:1927 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.6.rst:1930 msgid "New Keywords" msgstr "" -#: ../../whatsnew/3.6.rst:1932 msgid "" "``async`` and ``await`` are not recommended to be used as variable, class, " "function or module names. Introduced by :pep:`492` in Python 3.5, they will " @@ -2767,35 +2322,30 @@ msgid "" "``async`` or ``await`` as names will generate a :exc:`DeprecationWarning`." msgstr "" -#: ../../whatsnew/3.6.rst:1939 msgid "Deprecated Python behavior" msgstr "" -#: ../../whatsnew/3.6.rst:1941 msgid "" "Raising the :exc:`StopIteration` exception inside a generator will now " "generate a :exc:`DeprecationWarning`, and will trigger a :exc:`RuntimeError` " "in Python 3.7. See :ref:`whatsnew-pep-479` for details." msgstr "" -#: ../../whatsnew/3.6.rst:1945 msgid "" -"The :meth:`__aiter__` method is now expected to return an asynchronous " -"iterator directly instead of returning an awaitable as previously. Doing the " -"former will trigger a :exc:`DeprecationWarning`. Backward compatibility " -"will be removed in Python 3.7. (Contributed by Yury Selivanov " -"in :issue:`27243`.)" +"The :meth:`~object.__aiter__` method is now expected to return an " +"asynchronous iterator directly instead of returning an awaitable as " +"previously. Doing the former will trigger a :exc:`DeprecationWarning`. " +"Backward compatibility will be removed in Python 3.7. (Contributed by Yury " +"Selivanov in :issue:`27243`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1951 msgid "" "A backslash-character pair that is not a valid escape sequence now generates " -"a :exc:`DeprecationWarning`. Although this will eventually become " -"a :exc:`SyntaxError`, that will not be for several Python releases. " -"(Contributed by Emanuel Barry in :issue:`27364`.)" +"a :exc:`DeprecationWarning`. Although this will eventually become a :exc:" +"`SyntaxError`, that will not be for several Python releases. (Contributed by " +"Emanuel Barry in :issue:`27364`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1956 msgid "" "When performing a relative import, falling back on ``__name__`` and " "``__path__`` from the calling module when ``__spec__`` or ``__package__`` " @@ -2803,35 +2353,28 @@ msgid "" "Ames in :issue:`25791`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1963 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../../whatsnew/3.6.rst:1966 msgid "asynchat" msgstr "" -#: ../../whatsnew/3.6.rst:1968 msgid "" "The :mod:`!asynchat` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1973 msgid "asyncore" msgstr "" -#: ../../whatsnew/3.6.rst:1975 msgid "" "The :mod:`!asyncore` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1980 msgid "dbm" msgstr "" -#: ../../whatsnew/3.6.rst:1982 msgid "" "Unlike other :mod:`dbm` implementations, the :mod:`dbm.dumb` module creates " "databases with the ``'rw'`` mode and allows modifying the database opened " @@ -2839,50 +2382,43 @@ msgid "" "in 3.8. (Contributed by Serhiy Storchaka in :issue:`21708`.)" msgstr "" -#: ../../whatsnew/3.6.rst:1992 msgid "" "The undocumented ``extra_path`` argument to the ``distutils.Distribution`` " "constructor is now considered deprecated and will raise a warning if set. " -"Support for this parameter will be removed in a future Python release. " -"See :issue:`27919` for details." +"Support for this parameter will be removed in a future Python release. See :" +"issue:`27919` for details." msgstr "" -#: ../../whatsnew/3.6.rst:1999 msgid "grp" msgstr "" -#: ../../whatsnew/3.6.rst:2001 msgid "" "The support of non-integer arguments in :func:`~grp.getgrgid` has been " "deprecated. (Contributed by Serhiy Storchaka in :issue:`26129`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2009 msgid "" -"The :meth:`importlib.machinery.SourceFileLoader.load_module` " -"and :meth:`importlib.machinery.SourcelessFileLoader.load_module` methods are " -"now deprecated. They were the only remaining implementations " -"of :meth:`importlib.abc.Loader.load_module` in :mod:`importlib` that had not " -"been deprecated in previous versions of Python in favour " -"of :meth:`importlib.abc.Loader.exec_module`." +"The :meth:`importlib.machinery.SourceFileLoader.load_module` and :meth:" +"`importlib.machinery.SourcelessFileLoader.load_module` methods are now " +"deprecated. They were the only remaining implementations of :meth:`importlib." +"abc.Loader.load_module` in :mod:`importlib` that had not been deprecated in " +"previous versions of Python in favour of :meth:`importlib.abc.Loader." +"exec_module`." msgstr "" -#: ../../whatsnew/3.6.rst:2016 msgid "" "The :class:`importlib.machinery.WindowsRegistryFinder` class is now " "deprecated. As of 3.6.0, it is still added to :data:`sys.meta_path` by " "default (on Windows), but this may change in future releases." msgstr "" -#: ../../whatsnew/3.6.rst:2023 msgid "" "Undocumented support of general :term:`bytes-like objects ` as paths in :mod:`os` functions, :func:`compile` and similar " -"functions is now deprecated. (Contributed by Serhiy Storchaka " -"in :issue:`25791` and :issue:`26754`.)" +"functions is now deprecated. (Contributed by Serhiy Storchaka in :issue:" +"`25791` and :issue:`26754`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2031 msgid "" "Support for inline flags ``(?letters)`` in the middle of the regular " "expression has been deprecated and will be removed in a future Python " @@ -2890,22 +2426,19 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`22493`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2039 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the :mod:`ssl` module will require at least OpenSSL 1.0.2 or " "1.1.0." msgstr "" -#: ../../whatsnew/3.6.rst:2043 msgid "" "SSL-related arguments like ``certfile``, ``keyfile`` and ``check_hostname`` " -"in :mod:`ftplib`, :mod:`http.client`, :mod:`imaplib`, :mod:`poplib`, " -"and :mod:`smtplib` have been deprecated in favor of ``context``. " -"(Contributed by Christian Heimes in :issue:`28022`.)" +"in :mod:`ftplib`, :mod:`http.client`, :mod:`imaplib`, :mod:`poplib`, and :" +"mod:`smtplib` have been deprecated in favor of ``context``. (Contributed by " +"Christian Heimes in :issue:`28022`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2048 msgid "" "A couple of protocols and functions of the :mod:`ssl` module are now " "deprecated. Some features will no longer be available in future versions of " @@ -2913,13 +2446,11 @@ msgid "" "(Contributed by Christian Heimes in :issue:`28022` and :issue:`26470`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2056 msgid "" "The :mod:`!tkinter.tix` module is now deprecated. :mod:`tkinter` users " "should use :mod:`tkinter.ttk` instead." msgstr "" -#: ../../whatsnew/3.6.rst:2064 msgid "" "The ``pyvenv`` script has been deprecated in favour of ``python3 -m venv``. " "This prevents confusion as to what Python interpreter ``pyvenv`` is " @@ -2927,35 +2458,28 @@ msgid "" "environment. (Contributed by Brett Cannon in :issue:`25154`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2071 msgid "xml" msgstr "" -#: ../../whatsnew/3.6.rst:2073 msgid "" -"As mitigation against DTD and external entity retrieval, " -"the :mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process " -"external entities by default. (Contributed by Christian Heimes " -"in :gh:`61441`.)" +"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." +"minidom` and :mod:`xml.sax` modules no longer process external entities by " +"default. (Contributed by Christian Heimes in :gh:`61441`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2080 msgid "Deprecated functions and types of the C API" msgstr "" -#: ../../whatsnew/3.6.rst:2082 msgid "" "Undocumented functions :c:func:`!PyUnicode_AsEncodedObject`, :c:func:`!" -"PyUnicode_AsDecodedObject`, :c:func:`!PyUnicode_AsEncodedUnicode` " -"and :c:func:`!PyUnicode_AsDecodedUnicode` are deprecated now. Use " -"the :ref:`generic codec based API ` instead." +"PyUnicode_AsDecodedObject`, :c:func:`!PyUnicode_AsEncodedUnicode` and :c:" +"func:`!PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " +"codec based API ` instead." msgstr "" -#: ../../whatsnew/3.6.rst:2089 msgid "Deprecated Build Options" msgstr "" -#: ../../whatsnew/3.6.rst:2091 msgid "" "The ``--with-system-ffi`` configure flag is now on by default on non-macOS " "UNIX platforms. It may be disabled by using ``--without-system-ffi``, but " @@ -2964,55 +2488,47 @@ msgid "" "the ``--with-system-ffi`` flag when building their system Python." msgstr "" -#: ../../whatsnew/3.6.rst:2099 msgid "Removed" msgstr "" -#: ../../whatsnew/3.6.rst:2102 msgid "API and Feature Removals" msgstr "" -#: ../../whatsnew/3.6.rst:2104 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in regular " -"expressions will now cause an error. In replacement templates " -"for :func:`re.sub` they are still allowed, but deprecated. " -"The :const:`re.LOCALE` flag can now only be used with binary patterns." +"expressions will now cause an error. In replacement templates for :func:`re." +"sub` they are still allowed, but deprecated. The :const:`re.LOCALE` flag can " +"now only be used with binary patterns." msgstr "" -#: ../../whatsnew/3.6.rst:2109 msgid "" -"``inspect.getmoduleinfo()`` was removed (was deprecated since CPython " -"3.3). :func:`inspect.getmodulename` should be used for obtaining the module " -"name for a given path. (Contributed by Yury Selivanov in :issue:`13248`.)" +"``inspect.getmoduleinfo()`` was removed (was deprecated since CPython 3.3). :" +"func:`inspect.getmodulename` should be used for obtaining the module name " +"for a given path. (Contributed by Yury Selivanov in :issue:`13248`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2114 msgid "" "``traceback.Ignore`` class and ``traceback.usage``, ``traceback.modname``, " -"``traceback.fullmodname``, ``traceback.find_lines_from_code``, " -"``traceback.find_lines``, ``traceback.find_strings``, " -"``traceback.find_executable_lines`` methods were removed from " -"the :mod:`traceback` module. They were undocumented methods deprecated since " -"Python 3.2 and equivalent functionality is available from private methods." +"``traceback.fullmodname``, ``traceback.find_lines_from_code``, ``traceback." +"find_lines``, ``traceback.find_strings``, ``traceback." +"find_executable_lines`` methods were removed from the :mod:`traceback` " +"module. They were undocumented methods deprecated since Python 3.2 and " +"equivalent functionality is available from private methods." msgstr "" -#: ../../whatsnew/3.6.rst:2121 msgid "" -"The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods " -"in :mod:`tkinter` widget classes were removed (corresponding Tk commands " -"were obsolete since Tk 4.0)." +"The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods in :mod:" +"`tkinter` widget classes were removed (corresponding Tk commands were " +"obsolete since Tk 4.0)." msgstr "" -#: ../../whatsnew/3.6.rst:2125 msgid "" "The :meth:`~zipfile.ZipFile.open` method of the :class:`zipfile.ZipFile` " "class no longer supports the ``'U'`` mode (was deprecated since Python 3.4). " -"Use :class:`io.TextIOWrapper` for reading compressed text files " -"in :term:`universal newlines` mode." +"Use :class:`io.TextIOWrapper` for reading compressed text files in :term:" +"`universal newlines` mode." msgstr "" -#: ../../whatsnew/3.6.rst:2130 msgid "" "The undocumented ``IN``, ``CDROM``, ``DLFCN``, ``TYPES``, ``CDIO``, and " "``STROPTS`` modules have been removed. They had been available in the " @@ -3023,83 +2539,69 @@ msgid "" "blob/v3.6.15/Tools/scripts/h2py.py>`_." msgstr "" -#: ../../whatsnew/3.6.rst:2138 msgid "The deprecated ``asynchat.fifo`` class has been removed." msgstr "" -#: ../../whatsnew/3.6.rst:2142 msgid "Porting to Python 3.6" msgstr "" -#: ../../whatsnew/3.6.rst:2144 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.6.rst:2148 msgid "Changes in 'python' Command Behavior" msgstr "" -#: ../../whatsnew/3.6.rst:2150 msgid "" "The output of a special Python build with defined ``COUNT_ALLOCS``, " "``SHOW_ALLOC_COUNT`` or ``SHOW_TRACK_COUNT`` macros is now off by default. " "It can be re-enabled using the ``-X showalloccount`` option. It now outputs " -"to ``stderr`` instead of ``stdout``. (Contributed by Serhiy Storchaka " -"in :issue:`23034`.)" +"to ``stderr`` instead of ``stdout``. (Contributed by Serhiy Storchaka in :" +"issue:`23034`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2158 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.6.rst:2160 msgid "" ":func:`open() ` will no longer allow combining the ``'U'`` mode flag " -"with ``'+'``. (Contributed by Jeff Balogh and John O'Connor " -"in :issue:`2091`.)" +"with ``'+'``. (Contributed by Jeff Balogh and John O'Connor in :issue:" +"`2091`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2164 msgid "" ":mod:`sqlite3` no longer implicitly commits an open transaction before DDL " "statements." msgstr "" -#: ../../whatsnew/3.6.rst:2167 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security." msgstr "" -#: ../../whatsnew/3.6.rst:2170 msgid "" -"When :meth:`importlib.abc.Loader.exec_module` is " -"defined, :meth:`importlib.abc.Loader.create_module` must also be defined." +"When :meth:`importlib.abc.Loader.exec_module` is defined, :meth:`importlib." +"abc.Loader.create_module` must also be defined." msgstr "" -#: ../../whatsnew/3.6.rst:2173 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned." msgstr "" -#: ../../whatsnew/3.6.rst:2176 msgid "" "The format of the :attr:`~codeobject.co_lnotab` attribute of code objects " "changed to support a negative line number delta. By default, Python does not " -"emit bytecode with a negative line number delta. Functions " -"using :attr:`frame.f_lineno`, ``PyFrame_GetLineNumber()`` or " -"``PyCode_Addr2Line()`` are not affected. Functions directly decoding :attr:`!" -"co_lnotab` should be updated to use a signed 8-bit integer type for the line " -"number delta, but this is only required to support applications using a " -"negative line number delta. See ``Objects/lnotab_notes.txt`` for the :attr:`!" -"co_lnotab` format and how to decode it, and see the :pep:`511` for the " -"rationale." +"emit bytecode with a negative line number delta. Functions using :attr:" +"`frame.f_lineno`, ``PyFrame_GetLineNumber()`` or ``PyCode_Addr2Line()`` are " +"not affected. Functions directly decoding :attr:`!co_lnotab` should be " +"updated to use a signed 8-bit integer type for the line number delta, but " +"this is only required to support applications using a negative line number " +"delta. See ``Objects/lnotab_notes.txt`` for the :attr:`!co_lnotab` format " +"and how to decode it, and see the :pep:`511` for the rationale." msgstr "" -#: ../../whatsnew/3.6.rst:2187 msgid "" "The functions in the :mod:`compileall` module now return booleans instead of " "``1`` or ``0`` to represent success or failure, respectively. Thanks to " @@ -3107,70 +2609,61 @@ msgid "" "were doing identity checks for ``1`` or ``0``. See :issue:`25768`." msgstr "" -#: ../../whatsnew/3.6.rst:2192 msgid "" -"Reading the :attr:`~urllib.parse.SplitResult.port` attribute " -"of :func:`urllib.parse.urlsplit` and :func:`~urllib.parse.urlparse` results " -"now raises :exc:`ValueError` for out-of-range values, rather than " -"returning :const:`None`. See :issue:`20059`." +"Reading the :attr:`!port` attribute of :func:`urllib.parse.urlsplit` and :" +"func:`~urllib.parse.urlparse` results now raises :exc:`ValueError` for out-" +"of-range values, rather than returning :const:`None`. See :issue:`20059`." msgstr "" -#: ../../whatsnew/3.6.rst:2197 msgid "" -"The :mod:`!imp` module now raises a :exc:`DeprecationWarning` instead " -"of :exc:`PendingDeprecationWarning`." +"The :mod:`!imp` module now raises a :exc:`DeprecationWarning` instead of :" +"exc:`PendingDeprecationWarning`." msgstr "" -#: ../../whatsnew/3.6.rst:2200 msgid "" -"The following modules have had missing APIs added to their :attr:`__all__` " -"attributes to match the documented APIs: :mod:`calendar`, :mod:`!" -"cgi`, :mod:`csv`, :mod:`~xml.etree.ElementTree`, :mod:`enum`, :mod:`fileinput`, :mod:`ftplib`, :mod:`logging`, :mod:`mailbox`, :mod:`mimetypes`, :mod:`optparse`, :mod:`plistlib`, :mod:`!" -"smtpd`, :mod:`subprocess`, :mod:`tarfile`, :mod:`threading` " -"and :mod:`wave`. This means they will export new symbols when ``import *`` " -"is used. (Contributed by Joel Taddei and Jacek Kołodziej in :issue:`23883`.)" +"The following modules have had missing APIs added to their :attr:`~module." +"__all__` attributes to match the documented APIs: :mod:`calendar`, :mod:`!" +"cgi`, :mod:`csv`, :mod:`~xml.etree.ElementTree`, :mod:`enum`, :mod:" +"`fileinput`, :mod:`ftplib`, :mod:`logging`, :mod:`mailbox`, :mod:" +"`mimetypes`, :mod:`optparse`, :mod:`plistlib`, :mod:`!smtpd`, :mod:" +"`subprocess`, :mod:`tarfile`, :mod:`threading` and :mod:`wave`. This means " +"they will export new symbols when ``import *`` is used. (Contributed by Joel " +"Taddei and Jacek Kołodziej in :issue:`23883`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2211 msgid "" "When performing a relative import, if ``__package__`` does not compare equal " "to ``__spec__.parent`` then :exc:`ImportWarning` is raised. (Contributed by " "Brett Cannon in :issue:`25791`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2215 msgid "" -"When a relative import is performed and no parent package is known, " -"then :exc:`ImportError` will be raised. Previously, :exc:`SystemError` could " -"be raised. (Contributed by Brett Cannon in :issue:`18018`.)" +"When a relative import is performed and no parent package is known, then :" +"exc:`ImportError` will be raised. Previously, :exc:`SystemError` could be " +"raised. (Contributed by Brett Cannon in :issue:`18018`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2219 msgid "" -"Servers based on the :mod:`socketserver` module, including those defined " -"in :mod:`http.server`, :mod:`xmlrpc.server` " -"and :mod:`wsgiref.simple_server`, now only catch exceptions derived " -"from :exc:`Exception`. Therefore if a request handler raises an exception " -"like :exc:`SystemExit` " -"or :exc:`KeyboardInterrupt`, :meth:`~socketserver.BaseServer.handle_error` " -"is no longer called, and the exception will stop a single-threaded server. " +"Servers based on the :mod:`socketserver` module, including those defined in :" +"mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " +"now only catch exceptions derived from :exc:`Exception`. Therefore if a " +"request handler raises an exception like :exc:`SystemExit` or :exc:" +"`KeyboardInterrupt`, :meth:`~socketserver.BaseServer.handle_error` is no " +"longer called, and the exception will stop a single-threaded server. " "(Contributed by Martin Panter in :issue:`23430`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2228 msgid "" -":func:`!spwd.getspnam` now raises a :exc:`PermissionError` instead " -"of :exc:`KeyError` if the user doesn't have privileges." +":func:`!spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" +"`KeyError` if the user doesn't have privileges." msgstr "" -#: ../../whatsnew/3.6.rst:2231 msgid "" "The :meth:`socket.socket.close` method now raises an exception if an error " "(e.g. ``EBADF``) was reported by the underlying system call. (Contributed by " "Martin Panter in :issue:`26685`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2235 msgid "" "The *decode_data* argument for the :class:`!smtpd.SMTPChannel` and :class:`!" "smtpd.SMTPServer` constructors is now ``False`` by default. This means that " @@ -3180,36 +2673,31 @@ msgid "" "generated by 3.5 will not be affected." msgstr "" -#: ../../whatsnew/3.6.rst:2243 msgid "" -"All optional arguments of " -"the :func:`~json.dump`, :func:`~json.dumps`, :func:`~json.load` " -"and :func:`~json.loads` functions and :class:`~json.JSONEncoder` " -"and :class:`~json.JSONDecoder` class constructors in the :mod:`json` module " -"are now :ref:`keyword-only `. (Contributed by Serhiy " -"Storchaka in :issue:`18726`.)" +"All optional arguments of the :func:`~json.dump`, :func:`~json.dumps`, :func:" +"`~json.load` and :func:`~json.loads` functions and :class:`~json." +"JSONEncoder` and :class:`~json.JSONDecoder` class constructors in the :mod:" +"`json` module are now :ref:`keyword-only `. " +"(Contributed by Serhiy Storchaka in :issue:`18726`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2250 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" -#: ../../whatsnew/3.6.rst:2253 msgid "" -"As part of :pep:`487`, the handling of keyword arguments passed " -"to :class:`type` (other than the metaclass hint, ``metaclass``) is now " -"consistently delegated to :meth:`object.__init_subclass__`. This means " -"that :meth:`type.__new__` and :meth:`type.__init__` both now accept " -"arbitrary keyword arguments, but :meth:`object.__init_subclass__` (which is " -"called from :meth:`type.__new__`) will reject them by default. Custom " -"metaclasses accepting additional keyword arguments will need to adjust their " -"calls to :meth:`type.__new__` (whether direct or via :class:`super`) " -"accordingly." +"As part of :pep:`487`, the handling of keyword arguments passed to :class:" +"`type` (other than the metaclass hint, ``metaclass``) is now consistently " +"delegated to :meth:`object.__init_subclass__`. This means that :meth:`type." +"__new__ ` and :meth:`type.__init__ ` both " +"now accept arbitrary keyword arguments, but :meth:`object.__init_subclass__` " +"(which is called from :meth:`type.__new__ `) will reject " +"them by default. Custom metaclasses accepting additional keyword arguments " +"will need to adjust their calls to :meth:`type.__new__ ` " +"(whether direct or via :class:`super`) accordingly." msgstr "" -#: ../../whatsnew/3.6.rst:2262 msgid "" "In ``distutils.command.sdist.sdist``, the ``default_format`` attribute has " "been removed and is no longer honored. Instead, the gzipped tarfile format " @@ -3219,71 +2707,59 @@ msgid "" "containing the following:" msgstr "" -#: ../../whatsnew/3.6.rst:2270 msgid "" "[sdist]\n" "formats=zip" msgstr "" -#: ../../whatsnew/3.6.rst:2275 msgid "" "This behavior has also been backported to earlier Python versions by " "Setuptools 26.0.0." msgstr "" -#: ../../whatsnew/3.6.rst:2278 msgid "" -"In the :mod:`urllib.request` module and " -"the :meth:`http.client.HTTPConnection.request` method, if no Content-Length " -"header field has been specified and the request body is a file object, it is " -"now sent with HTTP 1.1 chunked encoding. If a file object has to be sent to " -"a HTTP 1.0 server, the Content-Length value now has to be specified by the " -"caller. (Contributed by Demian Brecht and Rolf Krahl with tweaks from Martin " -"Panter in :issue:`12319`.)" +"In the :mod:`urllib.request` module and the :meth:`http.client." +"HTTPConnection.request` method, if no Content-Length header field has been " +"specified and the request body is a file object, it is now sent with HTTP " +"1.1 chunked encoding. If a file object has to be sent to a HTTP 1.0 server, " +"the Content-Length value now has to be specified by the caller. (Contributed " +"by Demian Brecht and Rolf Krahl with tweaks from Martin Panter in :issue:" +"`12319`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2287 msgid "" -"The :class:`~csv.DictReader` now returns rows of " -"type :class:`~collections.OrderedDict`. (Contributed by Steve Holden " -"in :issue:`27842`.)" +"The :class:`~csv.DictReader` now returns rows of type :class:`~collections." +"OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2291 msgid "" -"The :const:`!crypt.METHOD_CRYPT` will no longer be added to " -"``crypt.methods`` if unsupported by the platform. (Contributed by Victor " -"Stinner in :issue:`25287`.)" +"The :const:`!crypt.METHOD_CRYPT` will no longer be added to ``crypt." +"methods`` if unsupported by the platform. (Contributed by Victor Stinner in :" +"issue:`25287`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2299 msgid "" "On Linux, :func:`ctypes.util.find_library` now looks in ``LD_LIBRARY_PATH`` " "for shared libraries. (Contributed by Vinay Sajip in :issue:`9998`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2303 msgid "" "The :class:`imaplib.IMAP4` class now handles flags containing the ``']'`` " "character in messages sent from the server to improve real-world " "compatibility. (Contributed by Lita Cho in :issue:`21815`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2308 msgid "" -"The :func:`mmap.write() ` function now returns the number of " -"bytes written like other write methods. (Contributed by Jakub Stasiak " -"in :issue:`26335`.)" +"The :func:`mmap.mmap.write` function now returns the number of bytes written " +"like other write methods. (Contributed by Jakub Stasiak in :issue:`26335`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2312 msgid "" "The :func:`pkgutil.iter_modules` and :func:`pkgutil.walk_packages` functions " "now return :class:`~pkgutil.ModuleInfo` named tuples. (Contributed by " "Ramchandra Apte in :issue:`17211`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2316 msgid "" ":func:`re.sub` now raises an error for invalid numerical group references in " "replacement templates even if the pattern is not found in the string. The " @@ -3292,17 +2768,15 @@ msgid "" "in :issue:`25953`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2322 msgid "" ":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " "unrecognized compression values. Previously a plain :exc:`RuntimeError` was " "raised. Additionally, calling :class:`~zipfile.ZipFile` methods on a closed " "ZipFile or calling the :meth:`~zipfile.ZipFile.write` method on a ZipFile " -"created with mode ``'r'`` will raise a :exc:`ValueError`. Previously, " -"a :exc:`RuntimeError` was raised in those scenarios." +"created with mode ``'r'`` will raise a :exc:`ValueError`. Previously, a :exc:" +"`RuntimeError` was raised in those scenarios." msgstr "" -#: ../../whatsnew/3.6.rst:2329 msgid "" "when custom metaclasses are combined with zero-argument :func:`super` or " "direct references from methods to the implicit ``__class__`` closure " @@ -3312,25 +2786,21 @@ msgid "" "Python 3.8." msgstr "" -#: ../../whatsnew/3.6.rst:2336 msgid "" "With the introduction of :exc:`ModuleNotFoundError`, import system consumers " "may start expecting import system replacements to raise that more specific " -"exception when appropriate, rather than the less-" -"specific :exc:`ImportError`. To provide future compatibility with such " -"consumers, implementers of alternative import systems that completely " -"replace :func:`__import__` will need to update their implementations to " -"raise the new subclass when a module can't be found at all. Implementers of " -"compliant plugins to the default import system shouldn't need to make any " -"changes, as the default import system will raise the new subclass when " -"appropriate." +"exception when appropriate, rather than the less-specific :exc:" +"`ImportError`. To provide future compatibility with such consumers, " +"implementers of alternative import systems that completely replace :func:" +"`__import__` will need to update their implementations to raise the new " +"subclass when a module can't be found at all. Implementers of compliant " +"plugins to the default import system shouldn't need to make any changes, as " +"the default import system will raise the new subclass when appropriate." msgstr "" -#: ../../whatsnew/3.6.rst:2348 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.6.rst:2350 msgid "" "The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " "allocator ` rather than the system :c:func:`malloc`. Applications " @@ -3339,71 +2809,60 @@ msgid "" "usage of memory allocators in your application. See :issue:`26249`." msgstr "" -#: ../../whatsnew/3.6.rst:2356 msgid "" ":c:func:`Py_Exit` (and the main interpreter) now override the exit status " "with 120 if flushing buffered data failed. See :issue:`5319`." msgstr "" -#: ../../whatsnew/3.6.rst:2361 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.6.rst:2363 msgid "" "There have been several major changes to the :term:`bytecode` in Python 3.6." msgstr "" -#: ../../whatsnew/3.6.rst:2365 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode. " "(Contributed by Demur Rumed with input and reviews from Serhiy Storchaka and " "Victor Stinner in :issue:`26647` and :issue:`28050`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2369 msgid "" "The new :opcode:`!FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part " "of the :ref:`formatted string literal ` implementation. " -"(Contributed by Eric Smith in :issue:`25483` and Serhiy Storchaka " -"in :issue:`27078`.)" +"(Contributed by Eric Smith in :issue:`25483` and Serhiy Storchaka in :issue:" +"`27078`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2374 msgid "" "The new :opcode:`!BUILD_CONST_KEY_MAP` opcode to optimize the creation of " -"dictionaries with constant keys. (Contributed by Serhiy Storchaka " -"in :issue:`27140`.)" +"dictionaries with constant keys. (Contributed by Serhiy Storchaka in :issue:" +"`27140`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2378 msgid "" "The function call opcodes have been heavily reworked for better performance " "and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:`!" "CALL_FUNCTION`, :opcode:`!CALL_FUNCTION_KW` and :opcode:`!" -"BUILD_MAP_UNPACK_WITH_CALL` opcodes have been modified, the " -"new :opcode:`CALL_FUNCTION_EX` and :opcode:`!BUILD_TUPLE_UNPACK_WITH_CALL` " -"have been added, and ``CALL_FUNCTION_VAR``, ``CALL_FUNCTION_VAR_KW`` and " -"``MAKE_CLOSURE`` opcodes have been removed. (Contributed by Demur Rumed " -"in :issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" +"BUILD_MAP_UNPACK_WITH_CALL` opcodes have been modified, the new :opcode:" +"`CALL_FUNCTION_EX` and :opcode:`!BUILD_TUPLE_UNPACK_WITH_CALL` have been " +"added, and ``CALL_FUNCTION_VAR``, ``CALL_FUNCTION_VAR_KW`` and " +"``MAKE_CLOSURE`` opcodes have been removed. (Contributed by Demur Rumed in :" +"issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2389 msgid "" "The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`!STORE_ANNOTATION` opcodes " "have been added to support the new :term:`variable annotation` syntax. " "(Contributed by Ivan Levkivskyi in :issue:`27985`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2395 msgid "Notable changes in Python 3.6.2" msgstr "" -#: ../../whatsnew/3.6.rst:2398 msgid "New ``make regen-all`` build target" msgstr "" -#: ../../whatsnew/3.6.rst:2400 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3411,72 +2870,59 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: ../../whatsnew/3.6.rst:2405 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" -#: ../../whatsnew/3.6.rst:2409 msgid "" -"More selective regeneration targets are also defined - " -"see :source:`Makefile.pre.in` for details." +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." msgstr "" -#: ../../whatsnew/3.6.rst:2412 ../../whatsnew/3.6.rst:2425 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2418 msgid "Removal of ``make touch`` build target" msgstr "" -#: ../../whatsnew/3.6.rst:2420 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: ../../whatsnew/3.6.rst:2423 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" -#: ../../whatsnew/3.6.rst:2431 msgid "Notable changes in Python 3.6.4" msgstr "" -#: ../../whatsnew/3.6.rst:2433 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " -"during finalization of the interpreter. (Contributed by Xavier de Gaye " -"in :issue:`22898` and :issue:`30697`.)" +"during finalization of the interpreter. (Contributed by Xavier de Gaye in :" +"issue:`22898` and :issue:`30697`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2440 msgid "Notable changes in Python 3.6.5" msgstr "" -#: ../../whatsnew/3.6.rst:2442 msgid "" "The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` " "locale to the ``LC_NUMERIC`` locale in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2448 msgid "Notable changes in Python 3.6.7" msgstr "" -#: ../../whatsnew/3.6.rst:2450 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. See also :gh:`61441`." msgstr "" -#: ../../whatsnew/3.6.rst:2453 msgid "" "In 3.6.7 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " "when provided with input that does not have a trailing new line. This " @@ -3484,42 +2930,35 @@ msgid "" "Ammar Askar in :issue:`33899`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2459 msgid "Notable changes in Python 3.6.10" msgstr "" -#: ../../whatsnew/3.6.rst:2461 msgid "" -"Due to significant security concerns, the *reuse_address* parameter " -"of :meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. " -"This is because of the behavior of the socket option ``SO_REUSEADDR`` in " -"UDP. For more details, see the documentation for " -"``loop.create_datagram_endpoint()``. (Contributed by Kyle Stanley, Antoine " -"Pitrou, and Yury Selivanov in :issue:`37228`.)" +"Due to significant security concerns, the *reuse_address* parameter of :meth:" +"`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " +"because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " +"more details, see the documentation for ``loop.create_datagram_endpoint()``. " +"(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" +"`37228`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2469 msgid "Notable changes in Python 3.6.13" msgstr "" -#: ../../whatsnew/3.6.rst:2471 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " -"parameter separators in :func:`urllib.parse.parse_qs` " -"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " -"conform with newer W3C recommendations, this has been changed to allow only " -"a single separator key, with ``&`` as the default. This change also " -"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " -"affected functions internally. For more details, please see their respective " -"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " -"in :issue:`42967`.)" +"parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." +"parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " +"recommendations, this has been changed to allow only a single separator key, " +"with ``&`` as the default. This change also affects :func:`!cgi.parse` and :" +"func:`!cgi.parse_multipart` as they use the affected functions internally. " +"For more details, please see their respective documentation. (Contributed by " +"Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" -#: ../../whatsnew/3.6.rst:2482 msgid "Notable changes in Python 3.6.14" msgstr "" -#: ../../whatsnew/3.6.rst:2484 msgid "" "A security fix alters the :class:`ftplib.FTP` behavior to not trust the IPv4 " "address sent from the remote server when setting up a passive data channel. " @@ -3528,12 +2967,11 @@ msgid "" "instance to ``True``. (See :gh:`87451`)" msgstr "" -#: ../../whatsnew/3.6.rst:2490 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " "forms of attacks. Following the WHATWG specification that updates RFC 3986, " "ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are stripped from " "the URL by the parser :func:`urllib.parse` preventing such attacks. The " -"removal characters are controlled by a new module level variable " -"``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" +"removal characters are controlled by a new module level variable ``urllib." +"parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index 77a08a0..38f1846 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,205 +18,162 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.7.rst:3 msgid "What's New In Python 3.7" msgstr "" -#: ../../whatsnew/3.7.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.7.rst:5 msgid "Elvis Pranskevichus " msgstr "" -#: ../../whatsnew/3.7.rst:47 msgid "" "This article explains the new features in Python 3.7, compared to 3.6. " -"Python 3.7 was released on June 27, 2018. For full details, see " -"the :ref:`changelog `." +"Python 3.7 was released on June 27, 2018. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.7.rst:53 msgid "Summary -- Release Highlights" msgstr "" -#: ../../whatsnew/3.7.rst:58 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.7.rst:60 msgid "" ":ref:`PEP 563 `, postponed evaluation of type annotations." msgstr "" -#: ../../whatsnew/3.7.rst:62 msgid "Backwards incompatible syntax changes:" msgstr "" -#: ../../whatsnew/3.7.rst:64 msgid ":keyword:`async` and :keyword:`await` are now reserved keywords." msgstr "" -#: ../../whatsnew/3.7.rst:66 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.7.rst:68 msgid "" ":mod:`contextvars`: :ref:`PEP 567 -- Context Variables `" msgstr "" -#: ../../whatsnew/3.7.rst:69 msgid ":mod:`dataclasses`: :ref:`PEP 557 -- Data Classes `" msgstr "" -#: ../../whatsnew/3.7.rst:70 msgid ":ref:`whatsnew37_importlib_resources`" msgstr "" -#: ../../whatsnew/3.7.rst:72 msgid "New built-in features:" msgstr "" -#: ../../whatsnew/3.7.rst:74 msgid "" ":ref:`PEP 553 `, the new :func:`breakpoint` function." msgstr "" -#: ../../whatsnew/3.7.rst:76 msgid "Python data model improvements:" msgstr "" -#: ../../whatsnew/3.7.rst:78 msgid "" ":ref:`PEP 562 `, customization of access to module " "attributes." msgstr "" -#: ../../whatsnew/3.7.rst:81 msgid "" ":ref:`PEP 560 `, core support for typing module and " "generic types." msgstr "" -#: ../../whatsnew/3.7.rst:84 msgid "" "the insertion-order preservation nature of :ref:`dict ` " "objects `has been declared`_ to be an official part of the Python language " "spec." msgstr "" -#: ../../whatsnew/3.7.rst:90 msgid "Significant improvements in the standard library:" msgstr "" -#: ../../whatsnew/3.7.rst:92 msgid "" -"The :mod:`asyncio` module has received new features, " -"significant :ref:`usability and performance improvements " -"`." +"The :mod:`asyncio` module has received new features, significant :ref:" +"`usability and performance improvements `." msgstr "" -#: ../../whatsnew/3.7.rst:95 msgid "" "The :mod:`time` module gained support for :ref:`functions with nanosecond " "resolution `." msgstr "" -#: ../../whatsnew/3.7.rst:98 msgid "CPython implementation improvements:" msgstr "" -#: ../../whatsnew/3.7.rst:100 msgid "Avoiding the use of ASCII as a default text encoding:" msgstr "" -#: ../../whatsnew/3.7.rst:102 msgid ":ref:`PEP 538 `, legacy C locale coercion" msgstr "" -#: ../../whatsnew/3.7.rst:103 msgid ":ref:`PEP 540 `, forced UTF-8 runtime mode" msgstr "" -#: ../../whatsnew/3.7.rst:104 msgid ":ref:`PEP 552 `, deterministic .pycs" msgstr "" -#: ../../whatsnew/3.7.rst:105 msgid ":ref:`New Python Development Mode `" msgstr "" -#: ../../whatsnew/3.7.rst:106 msgid "" ":ref:`PEP 565 `, improved :exc:`DeprecationWarning` " "handling" msgstr "" -#: ../../whatsnew/3.7.rst:109 msgid "C API improvements:" msgstr "" -#: ../../whatsnew/3.7.rst:111 msgid ":ref:`PEP 539 `, new C API for thread-local storage" msgstr "" -#: ../../whatsnew/3.7.rst:113 msgid "Documentation improvements:" msgstr "" -#: ../../whatsnew/3.7.rst:115 msgid ":ref:`PEP 545 `, Python documentation translations" msgstr "" -#: ../../whatsnew/3.7.rst:116 msgid "" "New documentation translations: `Japanese `_, " -"`French `_, and `Korean `_." +"`French `_, and `Korean `_." msgstr "" -#: ../../whatsnew/3.7.rst:120 msgid "" -"This release features notable performance improvements in many areas. " -"The :ref:`whatsnew37-perf` section lists them in detail." +"This release features notable performance improvements in many areas. The :" +"ref:`whatsnew37-perf` section lists them in detail." msgstr "" -#: ../../whatsnew/3.7.rst:123 msgid "" "For a list of changes that may affect compatibility with previous Python " "releases please refer to the :ref:`porting-to-python-37` section." msgstr "" -#: ../../whatsnew/3.7.rst:128 msgid "New Features" msgstr "" -#: ../../whatsnew/3.7.rst:133 msgid "PEP 563: Postponed Evaluation of Annotations" msgstr "" -#: ../../whatsnew/3.7.rst:135 msgid "" "The advent of type hints in Python uncovered two glaring usability issues " "with the functionality of annotations added in :pep:`3107` and refined " "further in :pep:`526`:" msgstr "" -#: ../../whatsnew/3.7.rst:139 msgid "" "annotations could only use names which were already available in the current " "scope, in other words they didn't support forward references of any kind; and" msgstr "" -#: ../../whatsnew/3.7.rst:143 msgid "" "annotating source code had adverse effects on startup time of Python " "programs." msgstr "" -#: ../../whatsnew/3.7.rst:146 msgid "" "Both of these issues are fixed by postponing the evaluation of annotations. " "Instead of compiling code which executes expressions in annotations at their " @@ -228,13 +185,11 @@ msgid "" "faster." msgstr "" -#: ../../whatsnew/3.7.rst:155 msgid "" "Usability-wise, annotations now support forward references, making the " "following syntax valid::" msgstr "" -#: ../../whatsnew/3.7.rst:158 msgid "" "class C:\n" " @classmethod\n" @@ -248,33 +203,26 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.7.rst:169 msgid "" "Since this change breaks compatibility, the new behavior needs to be enabled " "on a per-module basis in Python 3.7 using a :mod:`__future__` import::" msgstr "" -#: ../../whatsnew/3.7.rst:172 msgid "from __future__ import annotations" msgstr "" -#: ../../whatsnew/3.7.rst:174 msgid "It will become the default in Python 3.10." msgstr "" -#: ../../whatsnew/3.7.rst:178 msgid ":pep:`563` -- Postponed evaluation of annotations" msgstr "" -#: ../../whatsnew/3.7.rst:179 msgid "PEP written and implemented by Łukasz Langa." msgstr "" -#: ../../whatsnew/3.7.rst:185 msgid "PEP 538: Legacy C Locale Coercion" msgstr "" -#: ../../whatsnew/3.7.rst:187 msgid "" "An ongoing challenge within the Python 3 series has been determining a " "sensible default strategy for handling the \"7-bit ASCII\" text encoding " @@ -282,44 +230,38 @@ msgid "" "non-Windows platforms." msgstr "" -#: ../../whatsnew/3.7.rst:192 msgid "" ":pep:`538` updates the default interpreter command line interface to " "automatically coerce that locale to an available UTF-8 based locale as " "described in the documentation of the new :envvar:`PYTHONCOERCECLOCALE` " "environment variable. Automatically setting ``LC_CTYPE`` this way means that " -"both the core interpreter and locale-aware C extensions (such " -"as :mod:`readline`) will assume the use of UTF-8 as the default text " -"encoding, rather than ASCII." +"both the core interpreter and locale-aware C extensions (such as :mod:" +"`readline`) will assume the use of UTF-8 as the default text encoding, " +"rather than ASCII." msgstr "" -#: ../../whatsnew/3.7.rst:200 msgid "" "The platform support definition in :pep:`11` has also been updated to limit " "full text handling support to suitably configured non-ASCII based locales." msgstr "" -#: ../../whatsnew/3.7.rst:203 msgid "" "As part of this change, the default error handler for :data:`~sys.stdin` " "and :data:`~sys.stdout` is now ``surrogateescape`` (rather than ``strict``) " -"when using any of the defined coercion target locales (currently " -"``C.UTF-8``, ``C.utf8``, and ``UTF-8``). The default error handler " -"for :data:`~sys.stderr` continues to be ``backslashreplace``, regardless of " -"locale." +"when using any of the defined coercion target locales (currently ``C." +"UTF-8``, ``C.utf8``, and ``UTF-8``). The default error handler for :data:" +"`~sys.stderr` continues to be ``backslashreplace``, regardless of locale." msgstr "" -#: ../../whatsnew/3.7.rst:209 msgid "" "Locale coercion is silent by default, but to assist in debugging potentially " -"locale related integration problems, explicit warnings (emitted directly " -"on :data:`~sys.stderr`) can be requested by setting " +"locale related integration problems, explicit warnings (emitted directly on :" +"data:`~sys.stderr`) can be requested by setting " "``PYTHONCOERCECLOCALE=warn``. This setting will also cause the Python " "runtime to emit a warning if the legacy C locale remains active when the " "core interpreter is initialized." msgstr "" -#: ../../whatsnew/3.7.rst:215 msgid "" "While :pep:`538`'s locale coercion has the benefit of also affecting " "extension modules (such as GNU ``readline``), as well as child processes " @@ -330,40 +272,33 @@ msgid "" "3.7 also implements :ref:`whatsnew37-pep540`." msgstr "" -#: ../../whatsnew/3.7.rst:225 msgid ":pep:`538` -- Coercing the legacy C locale to a UTF-8 based locale" msgstr "" -#: ../../whatsnew/3.7.rst:226 msgid "PEP written and implemented by Nick Coghlan." msgstr "" -#: ../../whatsnew/3.7.rst:232 msgid "PEP 540: Forced UTF-8 Runtime Mode" msgstr "" -#: ../../whatsnew/3.7.rst:234 msgid "" "The new :option:`-X` ``utf8`` command line option and :envvar:`PYTHONUTF8` " "environment variable can be used to enable the :ref:`Python UTF-8 Mode `." msgstr "" -#: ../../whatsnew/3.7.rst:238 msgid "" "When in UTF-8 mode, CPython ignores the locale settings, and uses the UTF-8 " -"encoding by default. The error handlers for :data:`sys.stdin` " -"and :data:`sys.stdout` streams are set to ``surrogateescape``." +"encoding by default. The error handlers for :data:`sys.stdin` and :data:" +"`sys.stdout` streams are set to ``surrogateescape``." msgstr "" -#: ../../whatsnew/3.7.rst:242 msgid "" "The forced UTF-8 mode can be used to change the text handling behavior in an " "embedded Python interpreter without changing the locale settings of an " "embedding application." msgstr "" -#: ../../whatsnew/3.7.rst:246 msgid "" "While :pep:`540`'s UTF-8 mode has the benefit of working regardless of which " "locales are available on the running system, it has the downside of having " @@ -373,7 +308,6 @@ msgid "" "with such components, Python 3.7 also implements :ref:`whatsnew37-pep540`)." msgstr "" -#: ../../whatsnew/3.7.rst:253 msgid "" "The UTF-8 mode is enabled by default when the locale is ``C`` or ``POSIX``, " "and the :pep:`538` locale coercion feature fails to change it to a UTF-8 " @@ -381,48 +315,38 @@ msgid "" "being set, ``LC_ALL`` being set, or the lack of a suitable target locale)." msgstr "" -#: ../../whatsnew/3.7.rst:260 msgid ":pep:`540` -- Add a new UTF-8 mode" msgstr "" -#: ../../whatsnew/3.7.rst:261 ../../whatsnew/3.7.rst:363 msgid "PEP written and implemented by Victor Stinner" msgstr "" -#: ../../whatsnew/3.7.rst:267 msgid "PEP 553: Built-in ``breakpoint()``" msgstr "" -#: ../../whatsnew/3.7.rst:269 msgid "" "Python 3.7 includes the new built-in :func:`breakpoint` function as an easy " "and consistent way to enter the Python debugger." msgstr "" -#: ../../whatsnew/3.7.rst:272 msgid "" "Built-in ``breakpoint()`` calls :func:`sys.breakpointhook`. By default, the " "latter imports :mod:`pdb` and then calls ``pdb.set_trace()``, but by binding " "``sys.breakpointhook()`` to the function of your choosing, ``breakpoint()`` " -"can enter any debugger. Additionally, the environment " -"variable :envvar:`PYTHONBREAKPOINT` can be set to the callable of your " -"debugger of choice. Set ``PYTHONBREAKPOINT=0`` to completely disable built-" -"in ``breakpoint()``." +"can enter any debugger. Additionally, the environment variable :envvar:" +"`PYTHONBREAKPOINT` can be set to the callable of your debugger of choice. " +"Set ``PYTHONBREAKPOINT=0`` to completely disable built-in ``breakpoint()``." msgstr "" -#: ../../whatsnew/3.7.rst:282 msgid ":pep:`553` -- Built-in breakpoint()" msgstr "" -#: ../../whatsnew/3.7.rst:283 msgid "PEP written and implemented by Barry Warsaw" msgstr "" -#: ../../whatsnew/3.7.rst:289 msgid "PEP 539: New C API for Thread-Local Storage" msgstr "" -#: ../../whatsnew/3.7.rst:291 msgid "" "While Python provides a C API for thread-local storage support; the " "existing :ref:`Thread Local Storage (TLS) API ` " @@ -431,19 +355,17 @@ msgid "" "neither POSIX-compliant, nor portable in any practical sense." msgstr "" -#: ../../whatsnew/3.7.rst:297 msgid "" ":pep:`539` changes this by providing a new :ref:`Thread Specific Storage " "(TSS) API ` to CPython which supersedes use of " "the existing TLS API within the CPython interpreter, while deprecating the " -"existing API. The TSS API uses a new type :c:type:`Py_tss_t` instead " -"of :c:expr:`int` to represent TSS keys--an opaque type the definition of " -"which may depend on the underlying TLS implementation. Therefore, this will " -"allow to build CPython on platforms where the native TLS key is defined in a " -"way that cannot be safely cast to :c:expr:`int`." +"existing API. The TSS API uses a new type :c:type:`Py_tss_t` instead of :c:" +"expr:`int` to represent TSS keys--an opaque type the definition of which may " +"depend on the underlying TLS implementation. Therefore, this will allow to " +"build CPython on platforms where the native TLS key is defined in a way that " +"cannot be safely cast to :c:expr:`int`." msgstr "" -#: ../../whatsnew/3.7.rst:306 msgid "" "Note that on platforms where the native TLS key is defined in a way that " "cannot be safely cast to :c:expr:`int`, all functions of the existing TLS " @@ -452,44 +374,35 @@ msgid "" "reliably, and that no effort will be made to add such support." msgstr "" -#: ../../whatsnew/3.7.rst:314 msgid ":pep:`539` -- A New C-API for Thread-Local Storage in CPython" msgstr "" -#: ../../whatsnew/3.7.rst:315 msgid "PEP written by Erik M. Bray; implementation by Masayuki Yamamoto." msgstr "" -#: ../../whatsnew/3.7.rst:321 msgid "PEP 562: Customization of Access to Module Attributes" msgstr "" -#: ../../whatsnew/3.7.rst:323 msgid "" -"Python 3.7 allows defining :meth:`__getattr__` on modules and will call it " -"whenever a module attribute is otherwise not found. " -"Defining :meth:`__dir__` on modules is now also allowed." +"Python 3.7 allows defining :meth:`~module.__getattr__` on modules and will " +"call it whenever a module attribute is otherwise not found. Defining :meth:" +"`~module.__dir__` on modules is now also allowed." msgstr "" -#: ../../whatsnew/3.7.rst:327 msgid "" "A typical example of where this may be useful is module attribute " "deprecation and lazy loading." msgstr "" -#: ../../whatsnew/3.7.rst:332 msgid ":pep:`562` -- Module ``__getattr__`` and ``__dir__``" msgstr "" -#: ../../whatsnew/3.7.rst:333 ../../whatsnew/3.7.rst:422 msgid "PEP written and implemented by Ivan Levkivskyi" msgstr "" -#: ../../whatsnew/3.7.rst:339 msgid "PEP 564: New Time Functions With Nanosecond Resolution" msgstr "" -#: ../../whatsnew/3.7.rst:341 msgid "" "The resolution of clocks in modern systems can exceed the limited precision " "of a floating-point number returned by the :func:`time.time` function and " @@ -498,50 +411,39 @@ msgid "" "module:" msgstr "" -#: ../../whatsnew/3.7.rst:347 ../../whatsnew/3.7.rst:1451 msgid ":func:`time.clock_gettime_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:348 ../../whatsnew/3.7.rst:1452 msgid ":func:`time.clock_settime_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:349 ../../whatsnew/3.7.rst:1453 msgid ":func:`time.monotonic_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:350 ../../whatsnew/3.7.rst:1454 msgid ":func:`time.perf_counter_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:351 ../../whatsnew/3.7.rst:1455 msgid ":func:`time.process_time_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:352 ../../whatsnew/3.7.rst:1456 msgid ":func:`time.time_ns`" msgstr "" -#: ../../whatsnew/3.7.rst:354 msgid "The new functions return the number of nanoseconds as an integer value." msgstr "" -#: ../../whatsnew/3.7.rst:356 msgid "" ":pep:`Measurements <0564#annex-clocks-resolution-in-python>` show that on " "Linux and Windows the resolution of :func:`time.time_ns` is approximately 3 " "times better than that of :func:`time.time`." msgstr "" -#: ../../whatsnew/3.7.rst:362 msgid ":pep:`564` -- Add new time functions with nanosecond resolution" msgstr "" -#: ../../whatsnew/3.7.rst:369 msgid "PEP 565: Show DeprecationWarning in ``__main__``" msgstr "" -#: ../../whatsnew/3.7.rst:371 msgid "" "The default handling of :exc:`DeprecationWarning` has been changed such that " "these warnings are once more shown by default, but only when the code " @@ -552,20 +454,17 @@ msgid "" "library and framework modules will continue to be hidden by default." msgstr "" -#: ../../whatsnew/3.7.rst:379 msgid "" "As a result of this change, the standard library now allows developers to " "choose between three different deprecation warning behaviours:" msgstr "" -#: ../../whatsnew/3.7.rst:382 msgid "" ":exc:`FutureWarning`: always displayed by default, recommended for warnings " "intended to be seen by application end users (e.g. for deprecated " "application configuration settings)." msgstr "" -#: ../../whatsnew/3.7.rst:385 msgid "" ":exc:`DeprecationWarning`: displayed by default only in :mod:`__main__` and " "when running tests, recommended for warnings intended to be seen by other " @@ -573,56 +472,46 @@ msgid "" "an error." msgstr "" -#: ../../whatsnew/3.7.rst:389 msgid "" ":exc:`PendingDeprecationWarning`: displayed by default only when running " "tests, intended for cases where a future version upgrade will change the " "warning category to :exc:`DeprecationWarning` or :exc:`FutureWarning`." msgstr "" -#: ../../whatsnew/3.7.rst:393 msgid "" -"Previously both :exc:`DeprecationWarning` " -"and :exc:`PendingDeprecationWarning` were only visible when running tests, " -"which meant that developers primarily writing single file scripts or using " -"Python interactively could be surprised by breaking changes in the APIs they " -"used." +"Previously both :exc:`DeprecationWarning` and :exc:" +"`PendingDeprecationWarning` were only visible when running tests, which " +"meant that developers primarily writing single file scripts or using Python " +"interactively could be surprised by breaking changes in the APIs they used." msgstr "" -#: ../../whatsnew/3.7.rst:400 msgid ":pep:`565` -- Show DeprecationWarning in ``__main__``" msgstr "" -#: ../../whatsnew/3.7.rst:401 msgid "PEP written and implemented by Nick Coghlan" msgstr "" -#: ../../whatsnew/3.7.rst:407 msgid "PEP 560: Core Support for ``typing`` module and Generic Types" msgstr "" -#: ../../whatsnew/3.7.rst:409 msgid "" "Initially :pep:`484` was designed in such way that it would not introduce " -"*any* changes to the core CPython interpreter. Now type hints and " -"the :mod:`typing` module are extensively used by the community, so this " -"restriction is removed. The PEP introduces two special " -"methods :meth:`__class_getitem__` and ``__mro_entries__``, these methods are " +"*any* changes to the core CPython interpreter. Now type hints and the :mod:" +"`typing` module are extensively used by the community, so this restriction " +"is removed. The PEP introduces two special methods :meth:`~object." +"__class_getitem__` and :meth:`~object.__mro_entries__`, these methods are " "now used by most classes and special constructs in :mod:`typing`. As a " "result, the speed of various operations with types increased up to 7 times, " "the generic types can be used without metaclass conflicts, and several long " "standing bugs in :mod:`typing` module are fixed." msgstr "" -#: ../../whatsnew/3.7.rst:421 msgid ":pep:`560` -- Core support for typing module and generic types" msgstr "" -#: ../../whatsnew/3.7.rst:428 msgid "PEP 552: Hash-based .pyc Files" msgstr "" -#: ../../whatsnew/3.7.rst:430 msgid "" "Python has traditionally checked the up-to-dateness of bytecode cache files " "(i.e., ``.pyc`` files) by comparing the source metadata (last-modified " @@ -634,17 +523,15 @@ msgid "" "reproducible-builds.org/>`_ and content-based build systems." msgstr "" -#: ../../whatsnew/3.7.rst:439 msgid "" ":pep:`552` extends the pyc format to allow the hash of the source file to be " "used for invalidation instead of the source timestamp. Such ``.pyc`` files " "are called \"hash-based\". By default, Python still uses timestamp-based " "invalidation and does not generate hash-based ``.pyc`` files at runtime. " -"Hash-based ``.pyc`` files may be generated with :mod:`py_compile` " -"or :mod:`compileall`." +"Hash-based ``.pyc`` files may be generated with :mod:`py_compile` or :mod:" +"`compileall`." msgstr "" -#: ../../whatsnew/3.7.rst:445 msgid "" "Hash-based ``.pyc`` files come in two variants: checked and unchecked. " "Python validates checked hash-based ``.pyc`` files against the corresponding " @@ -654,94 +541,76 @@ msgid "" "is responsible for keeping ``.pyc`` files up-to-date." msgstr "" -#: ../../whatsnew/3.7.rst:452 msgid "See :ref:`pyc-invalidation` for more information." msgstr "" -#: ../../whatsnew/3.7.rst:456 msgid ":pep:`552` -- Deterministic pycs" msgstr "" -#: ../../whatsnew/3.7.rst:457 msgid "PEP written and implemented by Benjamin Peterson" msgstr "" -#: ../../whatsnew/3.7.rst:463 msgid "PEP 545: Python Documentation Translations" msgstr "" -#: ../../whatsnew/3.7.rst:465 msgid "" ":pep:`545` describes the process of creating and maintaining Python " "documentation translations." msgstr "" -#: ../../whatsnew/3.7.rst:468 msgid "Three new translations have been added:" msgstr "" -#: ../../whatsnew/3.7.rst:470 msgid "Japanese: https://docs.python.org/ja/" msgstr "" -#: ../../whatsnew/3.7.rst:471 msgid "French: https://docs.python.org/fr/" msgstr "" -#: ../../whatsnew/3.7.rst:472 msgid "Korean: https://docs.python.org/ko/" msgstr "" -#: ../../whatsnew/3.7.rst:476 msgid ":pep:`545` -- Python Documentation Translations" msgstr "" -#: ../../whatsnew/3.7.rst:477 msgid "" "PEP written and implemented by Julien Palard, Inada Naoki, and Victor " "Stinner." msgstr "" -#: ../../whatsnew/3.7.rst:484 msgid "Python Development Mode (-X dev)" msgstr "" -#: ../../whatsnew/3.7.rst:486 msgid "" -"The new :option:`-X` ``dev`` command line option or the " -"new :envvar:`PYTHONDEVMODE` environment variable can be used to " -"enable :ref:`Python Development Mode `. When in development mode, " -"Python performs additional runtime checks that are too expensive to be " -"enabled by default. See :ref:`Python Development Mode ` " -"documentation for the full description." +"The new :option:`-X` ``dev`` command line option or the new :envvar:" +"`PYTHONDEVMODE` environment variable can be used to enable :ref:`Python " +"Development Mode `. When in development mode, Python performs " +"additional runtime checks that are too expensive to be enabled by default. " +"See :ref:`Python Development Mode ` documentation for the full " +"description." msgstr "" -#: ../../whatsnew/3.7.rst:495 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.7.rst:497 msgid "" -"An :keyword:`await` expression and comprehensions containing " -"an :keyword:`async for` clause were illegal in the expressions " -"in :ref:`formatted string literals ` due to a problem with the " -"implementation. In Python 3.7 this restriction was lifted." +"An :keyword:`await` expression and comprehensions containing an :keyword:" +"`async for` clause were illegal in the expressions in :ref:`formatted string " +"literals ` due to a problem with the implementation. In Python " +"3.7 this restriction was lifted." msgstr "" -#: ../../whatsnew/3.7.rst:502 msgid "" "More than 255 arguments can now be passed to a function, and a function can " -"now have more than 255 parameters. (Contributed by Serhiy Storchaka " -"in :issue:`12844` and :issue:`18896`.)" +"now have more than 255 parameters. (Contributed by Serhiy Storchaka in :" +"issue:`12844` and :issue:`18896`.)" msgstr "" -#: ../../whatsnew/3.7.rst:506 msgid "" ":meth:`bytes.fromhex` and :meth:`bytearray.fromhex` now ignore all ASCII " "whitespace, not only spaces. (Contributed by Robert Xiao in :issue:`28927`.)" msgstr "" -#: ../../whatsnew/3.7.rst:509 msgid "" ":class:`str`, :class:`bytes`, and :class:`bytearray` gained support for the " "new :meth:`isascii() ` method, which can be used to test if a " @@ -749,36 +618,30 @@ msgid "" "Naoki in :issue:`32677`.)" msgstr "" -#: ../../whatsnew/3.7.rst:514 msgid "" ":exc:`ImportError` now displays module name and module ``__file__`` path " -"when ``from ... import ...`` fails. (Contributed by Matthias Bussonnier " -"in :issue:`29546`.)" +"when ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :" +"issue:`29546`.)" msgstr "" -#: ../../whatsnew/3.7.rst:518 msgid "" "Circular imports involving absolute imports with binding a submodule to a " "name are now supported. (Contributed by Serhiy Storchaka in :issue:`30024`.)" msgstr "" -#: ../../whatsnew/3.7.rst:522 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " -"``format(str(self), '')``. (Contributed by Serhiy Storchaka " -"in :issue:`28974`.)" +"``format(str(self), '')``. (Contributed by Serhiy Storchaka in :issue:" +"`28974`.)" msgstr "" -#: ../../whatsnew/3.7.rst:526 msgid "" -"In order to better support dynamic creation of stack " -"traces, :class:`types.TracebackType` can now be instantiated from Python " -"code, and the :attr:`~traceback.tb_next` attribute on :ref:`tracebacks " -"` is now writable. (Contributed by Nathaniel J. Smith " -"in :issue:`30579`.)" +"In order to better support dynamic creation of stack traces, :class:`types." +"TracebackType` can now be instantiated from Python code, and the :attr:" +"`~traceback.tb_next` attribute on :ref:`tracebacks ` is " +"now writable. (Contributed by Nathaniel J. Smith in :issue:`30579`.)" msgstr "" -#: ../../whatsnew/3.7.rst:532 msgid "" "When using the :option:`-m` switch, ``sys.path[0]`` is now eagerly expanded " "to the full starting directory path, rather than being left as the empty " @@ -786,23 +649,18 @@ msgid "" "time when an import occurs) (Contributed by Nick Coghlan in :issue:`33053`.)" msgstr "" -#: ../../whatsnew/3.7.rst:538 msgid "" -"The new :option:`-X` ``importtime`` option or " -"the :envvar:`PYTHONPROFILEIMPORTTIME` environment variable can be used to " -"show the timing of each module import. (Contributed by Inada Naoki " -"in :issue:`31415`.)" +"The new :option:`-X` ``importtime`` option or the :envvar:" +"`PYTHONPROFILEIMPORTTIME` environment variable can be used to show the " +"timing of each module import. (Contributed by Inada Naoki in :issue:`31415`.)" msgstr "" -#: ../../whatsnew/3.7.rst:545 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.7.rst:550 msgid "contextvars" msgstr "" -#: ../../whatsnew/3.7.rst:552 msgid "" "The new :mod:`contextvars` module and a set of :ref:`new C APIs " "` introduce support for *context variables*. Context " @@ -810,7 +668,6 @@ msgid "" "context variables support asynchronous code correctly." msgstr "" -#: ../../whatsnew/3.7.rst:558 msgid "" "The :mod:`asyncio` and :mod:`decimal` modules have been updated to use and " "support context variables out of the box. Particularly the active decimal " @@ -818,32 +675,26 @@ msgid "" "to work with the correct context in asynchronous code." msgstr "" -#: ../../whatsnew/3.7.rst:565 msgid ":pep:`567` -- Context Variables" msgstr "" -#: ../../whatsnew/3.7.rst:566 msgid "PEP written and implemented by Yury Selivanov" msgstr "" -#: ../../whatsnew/3.7.rst:572 msgid "dataclasses" msgstr "" -#: ../../whatsnew/3.7.rst:574 msgid "" "The new :func:`~dataclasses.dataclass` decorator provides a way to declare " "*data classes*. A data class describes its attributes using class variable " -"annotations. Its constructor and other magic methods, such " -"as :meth:`~object.__repr__`, :meth:`~object.__eq__`, " -"and :meth:`~object.__hash__` are generated automatically." +"annotations. Its constructor and other magic methods, such as :meth:" +"`~object.__repr__`, :meth:`~object.__eq__`, and :meth:`~object.__hash__` are " +"generated automatically." msgstr "" -#: ../../whatsnew/3.7.rst:580 msgid "Example::" msgstr "" -#: ../../whatsnew/3.7.rst:582 msgid "" "@dataclass\n" "class Point:\n" @@ -855,175 +706,150 @@ msgid "" "print(p) # produces \"Point(x=1.5, y=2.5, z=0.0)\"" msgstr "" -#: ../../whatsnew/3.7.rst:593 msgid ":pep:`557` -- Data Classes" msgstr "" -#: ../../whatsnew/3.7.rst:594 msgid "PEP written and implemented by Eric V. Smith" msgstr "" -#: ../../whatsnew/3.7.rst:600 msgid "importlib.resources" msgstr "" -#: ../../whatsnew/3.7.rst:602 msgid "" "The new :mod:`importlib.resources` module provides several new APIs and one " "new ABC for access to, opening, and reading *resources* inside packages. " "Resources are roughly similar to files inside packages, but they needn't be " -"actual files on the physical file system. Module loaders can provide " -"a :meth:`get_resource_reader` function which returns " -"a :class:`importlib.abc.ResourceReader` instance to support this new API. " -"Built-in file path loaders and zip file loaders both support this." +"actual files on the physical file system. Module loaders can provide a :" +"meth:`!get_resource_reader` function which returns a :class:`importlib.abc." +"ResourceReader` instance to support this new API. Built-in file path " +"loaders and zip file loaders both support this." msgstr "" -#: ../../whatsnew/3.7.rst:610 msgid "Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`." msgstr "" -#: ../../whatsnew/3.7.rst:614 msgid "" "`importlib_resources `_ -- a PyPI backport for earlier Python versions." msgstr "" -#: ../../whatsnew/3.7.rst:619 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.7.rst:623 msgid "argparse" msgstr "" -#: ../../whatsnew/3.7.rst:625 msgid "" -"The new :meth:`ArgumentParser.parse_intermixed_args() " -"` method allows intermixing " -"options and positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" +"The new :meth:`ArgumentParser.parse_intermixed_args() ` method allows intermixing options and " +"positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" msgstr "" -#: ../../whatsnew/3.7.rst:634 ../../whatsnew/3.7.rst:1964 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.7.rst:636 msgid "" -"The :mod:`asyncio` module has received many new features, usability " -"and :ref:`performance improvements `. Notable " -"changes include:" +"The :mod:`asyncio` module has received many new features, usability and :ref:" +"`performance improvements `. Notable changes " +"include:" msgstr "" -#: ../../whatsnew/3.7.rst:640 msgid "" "The new :term:`provisional ` :func:`asyncio.run` function " "can be used to run a coroutine from synchronous code by automatically " -"creating and destroying the event loop. (Contributed by Yury Selivanov " -"in :issue:`32314`.)" +"creating and destroying the event loop. (Contributed by Yury Selivanov in :" +"issue:`32314`.)" msgstr "" -#: ../../whatsnew/3.7.rst:645 msgid "" "asyncio gained support for :mod:`contextvars`. :meth:`loop.call_soon() " -"`, :meth:`loop.call_soon_threadsafe() " -"`, :meth:`loop.call_later() " -"`, :meth:`loop.call_at() `, " -"and :meth:`Future.add_done_callback() ` " -"have a new optional keyword-only *context* parameter. :class:`Tasks " -"` now track their context automatically. See :pep:`567` for " -"more details. (Contributed by Yury Selivanov in :issue:`32436`.)" +"`, :meth:`loop.call_soon_threadsafe() `, :meth:`loop.call_later() `, :meth:`loop.call_at() `, and :meth:" +"`Future.add_done_callback() ` have a new " +"optional keyword-only *context* parameter. :class:`Tasks ` now " +"track their context automatically. See :pep:`567` for more details. " +"(Contributed by Yury Selivanov in :issue:`32436`.)" msgstr "" -#: ../../whatsnew/3.7.rst:656 msgid "" "The new :func:`asyncio.create_task` function has been added as a shortcut to " "``asyncio.get_event_loop().create_task()``. (Contributed by Andrew Svetlov " "in :issue:`32311`.)" msgstr "" -#: ../../whatsnew/3.7.rst:660 msgid "" "The new :meth:`loop.start_tls() ` method can be used " -"to upgrade an existing connection to TLS. (Contributed by Yury Selivanov " -"in :issue:`23749`.)" +"to upgrade an existing connection to TLS. (Contributed by Yury Selivanov in :" +"issue:`23749`.)" msgstr "" -#: ../../whatsnew/3.7.rst:664 msgid "" "The new :meth:`loop.sock_recv_into() ` method " "allows reading data from a socket directly into a provided buffer making it " -"possible to reduce data copies. (Contributed by Antoine Pitrou " -"in :issue:`31819`.)" +"possible to reduce data copies. (Contributed by Antoine Pitrou in :issue:" +"`31819`.)" msgstr "" -#: ../../whatsnew/3.7.rst:669 msgid "" -"The new :func:`asyncio.current_task` function returns the currently " -"running :class:`~asyncio.Task` instance, and the " -"new :func:`asyncio.all_tasks` function returns a set of all existing " -"``Task`` instances in a given loop. The :meth:`!Task.current_task` " -"and :meth:`!Task.all_tasks` methods have been deprecated. (Contributed by " -"Andrew Svetlov in :issue:`32250`.)" +"The new :func:`asyncio.current_task` function returns the currently running :" +"class:`~asyncio.Task` instance, and the new :func:`asyncio.all_tasks` " +"function returns a set of all existing ``Task`` instances in a given loop. " +"The :meth:`!Task.current_task` and :meth:`!Task.all_tasks` methods have been " +"deprecated. (Contributed by Andrew Svetlov in :issue:`32250`.)" msgstr "" -#: ../../whatsnew/3.7.rst:676 msgid "" "The new *provisional* :class:`~asyncio.BufferedProtocol` class allows " "implementing streaming protocols with manual control over the receive " "buffer. (Contributed by Yury Selivanov in :issue:`32251`.)" msgstr "" -#: ../../whatsnew/3.7.rst:680 msgid "" "The new :func:`asyncio.get_running_loop` function returns the currently " "running loop, and raises a :exc:`RuntimeError` if no loop is running. This " "is in contrast with :func:`asyncio.get_event_loop`, which will *create* a " -"new event loop if none is running. (Contributed by Yury Selivanov " -"in :issue:`32269`.)" +"new event loop if none is running. (Contributed by Yury Selivanov in :issue:" +"`32269`.)" msgstr "" -#: ../../whatsnew/3.7.rst:686 msgid "" -"The new :meth:`StreamWriter.wait_closed() " -"` coroutine method allows waiting until " -"the stream writer is closed. The new :meth:`StreamWriter.is_closing() " -"` method can be used to determine if the " -"writer is closing. (Contributed by Andrew Svetlov in :issue:`32391`.)" +"The new :meth:`StreamWriter.wait_closed() ` coroutine method allows waiting until the stream writer is " +"closed. The new :meth:`StreamWriter.is_closing() ` method can be used to determine if the writer is closing. " +"(Contributed by Andrew Svetlov in :issue:`32391`.)" msgstr "" -#: ../../whatsnew/3.7.rst:692 msgid "" "The new :meth:`loop.sock_sendfile() ` coroutine " "method allows sending files using :mod:`os.sendfile` when possible. " "(Contributed by Andrew Svetlov in :issue:`32410`.)" msgstr "" -#: ../../whatsnew/3.7.rst:696 msgid "" -"The new :meth:`Future.get_loop() ` and " -"``Task.get_loop()`` methods return the instance of the loop on which a task " -"or a future were created. :meth:`Server.get_loop() " -"` allows doing the same for :class:`asyncio.Server` " -"objects. (Contributed by Yury Selivanov in :issue:`32415` and Srinivas Reddy " -"Thatiparthy in :issue:`32418`.)" +"The new :meth:`Future.get_loop() ` and ``Task." +"get_loop()`` methods return the instance of the loop on which a task or a " +"future were created. :meth:`Server.get_loop() ` " +"allows doing the same for :class:`asyncio.Server` objects. (Contributed by " +"Yury Selivanov in :issue:`32415` and Srinivas Reddy Thatiparthy in :issue:" +"`32418`.)" msgstr "" -#: ../../whatsnew/3.7.rst:704 msgid "" "It is now possible to control how instances of :class:`asyncio.Server` begin " "serving. Previously, the server would start serving immediately when " -"created. The new *start_serving* keyword argument " -"to :meth:`loop.create_server() ` " -"and :meth:`loop.create_unix_server() `, as " -"well as :meth:`Server.start_serving() `, " -"and :meth:`Server.serve_forever() ` can be " -"used to decouple server instantiation and serving. The " -"new :meth:`Server.is_serving() ` method returns " -"``True`` if the server is serving. :class:`~asyncio.Server` objects are now " -"asynchronous context managers::" +"created. The new *start_serving* keyword argument to :meth:`loop." +"create_server() ` and :meth:`loop." +"create_unix_server() `, as well as :meth:" +"`Server.start_serving() `, and :meth:`Server." +"serve_forever() ` can be used to decouple " +"server instantiation and serving. The new :meth:`Server.is_serving() " +"` method returns ``True`` if the server is " +"serving. :class:`~asyncio.Server` objects are now asynchronous context " +"managers::" msgstr "" -#: ../../whatsnew/3.7.rst:716 msgid "" "srv = await loop.create_server(...)\n" "\n" @@ -1033,132 +859,109 @@ msgid "" "# At this point, srv is closed and no longer accepts new connections." msgstr "" -#: ../../whatsnew/3.7.rst:723 msgid "(Contributed by Yury Selivanov in :issue:`32662`.)" msgstr "" -#: ../../whatsnew/3.7.rst:725 msgid "" -"Callback objects returned by :func:`loop.call_later() " -"` gained the new :meth:`when() " -"` method which returns an absolute scheduled " -"callback timestamp. (Contributed by Andrew Svetlov in :issue:`32741`.)" +"Callback objects returned by :func:`loop.call_later() ` gained the new :meth:`when() ` method " +"which returns an absolute scheduled callback timestamp. (Contributed by " +"Andrew Svetlov in :issue:`32741`.)" msgstr "" -#: ../../whatsnew/3.7.rst:731 msgid "" -"The :meth:`loop.create_datagram_endpoint() \\ " -"` method gained support for Unix " -"sockets. (Contributed by Quentin Dawans in :issue:`31245`.)" +"The :meth:`loop.create_datagram_endpoint() \\ ` method gained support for Unix sockets. " +"(Contributed by Quentin Dawans in :issue:`31245`.)" msgstr "" -#: ../../whatsnew/3.7.rst:736 msgid "" "The :func:`asyncio.open_connection`, :func:`asyncio.start_server` " -"functions, :meth:`loop.create_connection() " -"`, :meth:`loop.create_server() " -"`, :meth:`loop.create_accepted_socket() " -"` methods and their corresponding UNIX " -"socket variants now accept the *ssl_handshake_timeout* keyword argument. " +"functions, :meth:`loop.create_connection() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() ` methods and their corresponding UNIX socket " +"variants now accept the *ssl_handshake_timeout* keyword argument. " "(Contributed by Neil Aspinall in :issue:`29970`.)" msgstr "" -#: ../../whatsnew/3.7.rst:744 msgid "" "The new :meth:`Handle.cancelled() ` method returns " "``True`` if the callback was cancelled. (Contributed by Marat Sharafutdinov " "in :issue:`31943`.)" msgstr "" -#: ../../whatsnew/3.7.rst:748 msgid "" -"The asyncio source has been converted to use " -"the :keyword:`async`/:keyword:`await` syntax. (Contributed by Andrew Svetlov " -"in :issue:`32193`.)" +"The asyncio source has been converted to use the :keyword:`async`/:keyword:" +"`await` syntax. (Contributed by Andrew Svetlov in :issue:`32193`.)" msgstr "" -#: ../../whatsnew/3.7.rst:752 msgid "" -"The new :meth:`ReadTransport.is_reading() " -"` method can be used to determine the " -"reading state of the transport. Additionally, calls " -"to :meth:`ReadTransport.resume_reading() " -"` " -"and :meth:`ReadTransport.pause_reading() " -"` are now idempotent. (Contributed by " -"Yury Selivanov in :issue:`32356`.)" +"The new :meth:`ReadTransport.is_reading() ` method can be used to determine the reading state of the " +"transport. Additionally, calls to :meth:`ReadTransport.resume_reading() " +"` and :meth:`ReadTransport." +"pause_reading() ` are now idempotent. " +"(Contributed by Yury Selivanov in :issue:`32356`.)" msgstr "" -#: ../../whatsnew/3.7.rst:760 msgid "" "Loop methods which accept socket paths now support passing :term:`path-like " -"objects `. (Contributed by Yury Selivanov " -"in :issue:`32066`.)" +"objects `. (Contributed by Yury Selivanov in :issue:" +"`32066`.)" msgstr "" -#: ../../whatsnew/3.7.rst:764 msgid "" "In :mod:`asyncio` TCP sockets on Linux are now created with ``TCP_NODELAY`` " -"flag set by default. (Contributed by Yury Selivanov and Victor Stinner " -"in :issue:`27456`.)" +"flag set by default. (Contributed by Yury Selivanov and Victor Stinner in :" +"issue:`27456`.)" msgstr "" -#: ../../whatsnew/3.7.rst:768 msgid "" "Exceptions occurring in cancelled tasks are no longer logged. (Contributed " "by Yury Selivanov in :issue:`30508`.)" msgstr "" -#: ../../whatsnew/3.7.rst:771 msgid "" "New ``WindowsSelectorEventLoopPolicy`` and " "``WindowsProactorEventLoopPolicy`` classes. (Contributed by Yury Selivanov " "in :issue:`33792`.)" msgstr "" -#: ../../whatsnew/3.7.rst:775 msgid "" "Several ``asyncio`` APIs have been :ref:`deprecated `." msgstr "" -#: ../../whatsnew/3.7.rst:780 msgid "binascii" msgstr "" -#: ../../whatsnew/3.7.rst:782 msgid "" "The :func:`~binascii.b2a_uu` function now accepts an optional *backtick* " "keyword argument. When it's true, zeros are represented by ``'`'`` instead " "of spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" -#: ../../whatsnew/3.7.rst:788 msgid "calendar" msgstr "" -#: ../../whatsnew/3.7.rst:790 msgid "" "The :class:`~calendar.HTMLCalendar` class has new class attributes which " "ease the customization of CSS classes in the produced HTML calendar. " "(Contributed by Oz Tiram in :issue:`30095`.)" msgstr "" -#: ../../whatsnew/3.7.rst:796 ../../whatsnew/3.7.rst:1978 msgid "collections" msgstr "" -#: ../../whatsnew/3.7.rst:798 msgid "" "``collections.namedtuple()`` now supports default values. (Contributed by " "Raymond Hettinger in :issue:`32320`.)" msgstr "" -#: ../../whatsnew/3.7.rst:803 msgid "compileall" msgstr "" -#: ../../whatsnew/3.7.rst:805 msgid "" ":func:`compileall.compile_dir` learned the new *invalidation_mode* " "parameter, which can be used to enable :ref:`hash-based .pyc invalidation " @@ -1167,118 +970,96 @@ msgid "" "Benjamin Peterson in :issue:`31650`.)" msgstr "" -#: ../../whatsnew/3.7.rst:814 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.7.rst:816 msgid "" -":class:`ProcessPoolExecutor ` " -"and :class:`ThreadPoolExecutor ` now " +":class:`ProcessPoolExecutor ` and :" +"class:`ThreadPoolExecutor ` now " "support the new *initializer* and *initargs* constructor arguments. " "(Contributed by Antoine Pitrou in :issue:`21423`.)" msgstr "" -#: ../../whatsnew/3.7.rst:821 msgid "" "The :class:`ProcessPoolExecutor ` " "can now take the multiprocessing context via the new *mp_context* argument. " "(Contributed by Thomas Moreau in :issue:`31540`.)" msgstr "" -#: ../../whatsnew/3.7.rst:827 msgid "contextlib" msgstr "" -#: ../../whatsnew/3.7.rst:829 msgid "" "The new :func:`~contextlib.nullcontext` is a simpler and faster no-op " "context manager than :class:`~contextlib.ExitStack`. (Contributed by Jesse-" "Bakker in :issue:`10049`.)" msgstr "" -#: ../../whatsnew/3.7.rst:833 msgid "" -"The " -"new :func:`~contextlib.asynccontextmanager`, :class:`~contextlib.AbstractAsyncContextManager`, " -"and :class:`~contextlib.AsyncExitStack` have been added to complement their " -"synchronous counterparts. (Contributed by Jelle Zijlstra in :issue:`29679` " -"and :issue:`30241`, and by Alexander Mohr and Ilya Kulakov " -"in :issue:`29302`.)" +"The new :func:`~contextlib.asynccontextmanager`, :class:`~contextlib." +"AbstractAsyncContextManager`, and :class:`~contextlib.AsyncExitStack` have " +"been added to complement their synchronous counterparts. (Contributed by " +"Jelle Zijlstra in :issue:`29679` and :issue:`30241`, and by Alexander Mohr " +"and Ilya Kulakov in :issue:`29302`.)" msgstr "" -#: ../../whatsnew/3.7.rst:842 msgid "cProfile" msgstr "" -#: ../../whatsnew/3.7.rst:844 msgid "" "The :mod:`cProfile` command line now accepts ``-m module_name`` as an " -"alternative to script path. (Contributed by Sanyam Khurana " -"in :issue:`21862`.)" +"alternative to script path. (Contributed by Sanyam Khurana in :issue:" +"`21862`.)" msgstr "" -#: ../../whatsnew/3.7.rst:849 msgid "crypt" msgstr "" -#: ../../whatsnew/3.7.rst:851 msgid "" "The :mod:`!crypt` module now supports the Blowfish hashing method. " "(Contributed by Serhiy Storchaka in :issue:`31664`.)" msgstr "" -#: ../../whatsnew/3.7.rst:854 msgid "" "The :func:`!mksalt` function now allows specifying the number of rounds for " "hashing. (Contributed by Serhiy Storchaka in :issue:`31702`.)" msgstr "" -#: ../../whatsnew/3.7.rst:859 msgid "datetime" msgstr "" -#: ../../whatsnew/3.7.rst:861 msgid "" "The new :meth:`datetime.fromisoformat() ` " "method constructs a :class:`~datetime.datetime` object from a string in one " -"of the formats output by :meth:`datetime.isoformat() " -"`. (Contributed by Paul Ganssle " -"in :issue:`15873`.)" +"of the formats output by :meth:`datetime.isoformat() `. (Contributed by Paul Ganssle in :issue:`15873`.)" msgstr "" -#: ../../whatsnew/3.7.rst:867 msgid "" "The :class:`tzinfo ` class now supports sub-minute offsets. " "(Contributed by Alexander Belopolsky in :issue:`5288`.)" msgstr "" -#: ../../whatsnew/3.7.rst:872 ../../whatsnew/3.7.rst:1988 msgid "dbm" msgstr "" -#: ../../whatsnew/3.7.rst:874 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed." msgstr "" -#: ../../whatsnew/3.7.rst:879 msgid "decimal" msgstr "" -#: ../../whatsnew/3.7.rst:881 msgid "" "The :mod:`decimal` module now uses :ref:`context variables ` to store the decimal context. (Contributed by Yury Selivanov " -"in :issue:`32630`.)" +"pep567>` to store the decimal context. (Contributed by Yury Selivanov in :" +"issue:`32630`.)" msgstr "" -#: ../../whatsnew/3.7.rst:887 msgid "dis" msgstr "" -#: ../../whatsnew/3.7.rst:889 msgid "" "The :func:`~dis.dis` function is now able to disassemble nested code objects " "(the code of comprehensions, generator expressions and nested functions, and " @@ -1287,91 +1068,75 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`11822`.)" msgstr "" -#: ../../whatsnew/3.7.rst:898 msgid "distutils" msgstr "" -#: ../../whatsnew/3.7.rst:900 msgid "" "``README.rst`` is now included in the list of distutils standard READMEs and " "therefore included in source distributions. (Contributed by Ryan Gonzalez " "in :issue:`11913`.)" msgstr "" -#: ../../whatsnew/3.7.rst:906 ../../whatsnew/3.7.rst:1998 msgid "enum" msgstr "" -#: ../../whatsnew/3.7.rst:908 msgid "" "The :class:`Enum ` learned the new ``_ignore_`` class property, " "which allows listing the names of properties which should not become enum " "members. (Contributed by Ethan Furman in :issue:`31801`.)" msgstr "" -#: ../../whatsnew/3.7.rst:913 msgid "" -"In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " -"classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " -"attempting to check for non-Flag objects in a :class:`Flag` member will " -"raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " -"return :const:`False` instead and are deprecated. (Contributed by Ethan " -"Furman in :issue:`33217`.)" +"In Python 3.8, attempting to check for non-Enum objects in :class:`~enum." +"Enum` classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); " +"similarly, attempting to check for non-Flag objects in a :class:`~enum.Flag` " +"member will raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both " +"operations return :const:`False` instead and are deprecated. (Contributed by " +"Ethan Furman in :issue:`33217`.)" msgstr "" -#: ../../whatsnew/3.7.rst:922 msgid "functools" msgstr "" -#: ../../whatsnew/3.7.rst:924 msgid "" ":func:`functools.singledispatch` now supports registering implementations " "using type annotations. (Contributed by Łukasz Langa in :issue:`32227`.)" msgstr "" -#: ../../whatsnew/3.7.rst:930 msgid "gc" msgstr "" -#: ../../whatsnew/3.7.rst:932 msgid "" "The new :func:`gc.freeze` function allows freezing all objects tracked by " "the garbage collector and excluding them from future collections. This can " "be used before a POSIX ``fork()`` call to make the GC copy-on-write friendly " "or to speed up collection. The new :func:`gc.unfreeze` functions reverses " "this operation. Additionally, :func:`gc.get_freeze_count` can be used to " -"obtain the number of frozen objects. (Contributed by Li Zekun " -"in :issue:`31558`.)" +"obtain the number of frozen objects. (Contributed by Li Zekun in :issue:" +"`31558`.)" msgstr "" -#: ../../whatsnew/3.7.rst:942 msgid "hmac" msgstr "" -#: ../../whatsnew/3.7.rst:944 msgid "" "The :mod:`hmac` module now has an optimized one-shot :func:`~hmac.digest` " "function, which is up to three times faster than :func:`~hmac.HMAC`. " "(Contributed by Christian Heimes in :issue:`32433`.)" msgstr "" -#: ../../whatsnew/3.7.rst:950 msgid "http.client" msgstr "" -#: ../../whatsnew/3.7.rst:952 msgid "" -":class:`~http.client.HTTPConnection` " -"and :class:`~http.client.HTTPSConnection` now support the new *blocksize* " -"argument for improved upload throughput. (Contributed by Nir Soffer " -"in :issue:`31945`.)" +":class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` now support the new *blocksize* argument for improved " +"upload throughput. (Contributed by Nir Soffer in :issue:`31945`.)" msgstr "" -#: ../../whatsnew/3.7.rst:958 msgid "http.server" msgstr "" -#: ../../whatsnew/3.7.rst:960 msgid "" ":class:`~http.server.SimpleHTTPRequestHandler` now supports the HTTP ``If-" "Modified-Since`` header. The server returns the 304 response status if the " @@ -1379,7 +1144,6 @@ msgid "" "(Contributed by Pierre Quentel in :issue:`29654`.)" msgstr "" -#: ../../whatsnew/3.7.rst:965 msgid "" ":class:`~http.server.SimpleHTTPRequestHandler` accepts the new *directory* " "argument, in addition to the new ``--directory`` command line argument. With " @@ -1388,25 +1152,21 @@ msgid "" "Julien Palard in :issue:`28707`.)" msgstr "" -#: ../../whatsnew/3.7.rst:971 msgid "" "The new :class:`ThreadingHTTPServer ` class " -"uses threads to handle requests using :class:`~socketserver.ThreadingMixin`. " +"uses threads to handle requests using :class:`~socketserver.ThreadingMixIn`. " "It is used when ``http.server`` is run with ``-m``. (Contributed by Julien " "Palard in :issue:`31639`.)" msgstr "" -#: ../../whatsnew/3.7.rst:978 msgid "idlelib and IDLE" msgstr "" -#: ../../whatsnew/3.7.rst:980 msgid "" -"Multiple fixes for autocompletion. (Contributed by Louie Lu " -"in :issue:`15786`.)" +"Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" +"`15786`.)" msgstr "" -#: ../../whatsnew/3.7.rst:982 msgid "" "Module Browser (on the File menu, formerly called Class Browser), now " "displays nested functions and classes in addition to top-level functions and " @@ -1414,14 +1174,12 @@ msgid "" "in :issue:`1612262`.)" msgstr "" -#: ../../whatsnew/3.7.rst:988 msgid "" "The Settings dialog (Options, Configure IDLE) has been partly rewritten to " "improve both appearance and function. (Contributed by Cheryl Sabella and " "Terry Jan Reedy in multiple issues.)" msgstr "" -#: ../../whatsnew/3.7.rst:992 msgid "" "The font sample now includes a selection of non-Latin characters so that " "users can better see the effect of selecting a particular font. (Contributed " @@ -1429,7 +1187,6 @@ msgid "" "other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" msgstr "" -#: ../../whatsnew/3.7.rst:998 msgid "" "The IDLE features formerly implemented as extensions have been reimplemented " "as normal features. Their settings have been moved from the Extensions tab " @@ -1437,16 +1194,14 @@ msgid "" "in :issue:`27099`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1003 msgid "" "Editor code context option revised. Box displays all context lines up to " "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " -"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy " -"in :issue:`33642`, :issue:`33768`, and :issue:`33679`.)" +"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" +"`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1009 msgid "" "On Windows, a new API call tells Windows that tk scales for DPI. On Windows " "8.1+ or 10, with DPI compatibility properties of the Python binary " @@ -1455,11 +1210,9 @@ msgid "" "Terry Jan Reedy in :issue:`33656`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1015 msgid "New in 3.7.1:" msgstr "" -#: ../../whatsnew/3.7.rst:1017 msgid "" "Output over N lines (50 by default) is squeezed down to a button. N can be " "changed in the PyShell section of the General page of the Settings dialog. " @@ -1469,15 +1222,12 @@ msgid "" "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1024 msgid "The changes above have been backported to 3.6 maintenance releases." msgstr "" -#: ../../whatsnew/3.7.rst:1026 msgid "NEW in 3.7.4:" msgstr "" -#: ../../whatsnew/3.7.rst:1028 msgid "" "Add \"Run Customized\" to the Run menu to run a module with customized " "settings. Any command line arguments entered are added to sys.argv. They re-" @@ -1486,164 +1236,136 @@ msgid "" "Reedy, and others in :issue:`5680` and :issue:`37627`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1034 msgid "New in 3.7.5:" msgstr "" -#: ../../whatsnew/3.7.rst:1036 msgid "" "Add optional line numbers for IDLE editor windows. Windows open without line " "numbers unless set otherwise in the General tab of the configuration " "dialog. Line numbers for an existing window are shown and hidden in the " -"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar " -"in :issue:`17535`.)" +"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" +"`17535`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1044 ../../whatsnew/3.7.rst:2017 msgid "importlib" msgstr "" -#: ../../whatsnew/3.7.rst:1046 msgid "" "The :class:`importlib.abc.ResourceReader` ABC was introduced to support the " -"loading of resources from packages. See " -"also :ref:`whatsnew37_importlib_resources`. (Contributed by Barry Warsaw, " -"Brett Cannon in :issue:`32248`.)" +"loading of resources from packages. See also :ref:" +"`whatsnew37_importlib_resources`. (Contributed by Barry Warsaw, Brett Cannon " +"in :issue:`32248`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1051 msgid "" ":func:`importlib.reload` now raises :exc:`ModuleNotFoundError` if the module " "lacks a spec. (Contributed by Garvit Khatri in :issue:`29851`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1055 msgid "" -":func:`importlib.find_spec` now raises :exc:`ModuleNotFoundError` instead " -"of :exc:`AttributeError` if the specified parent module is not a package " -"(i.e. lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch " -"in :issue:`30436`.)" +":func:`importlib.util.find_spec` now raises :exc:`ModuleNotFoundError` " +"instead of :exc:`AttributeError` if the specified parent module is not a " +"package (i.e. lacks a ``__path__`` attribute). (Contributed by Milan " +"Oberkirch in :issue:`30436`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1060 msgid "" -"The new :func:`importlib.source_hash` can be used to compute the hash of the " -"passed source. A :ref:`hash-based .pyc file ` embeds the " -"value returned by this function." +"The new :func:`importlib.util.source_hash` can be used to compute the hash " +"of the passed source. A :ref:`hash-based .pyc file ` " +"embeds the value returned by this function." msgstr "" -#: ../../whatsnew/3.7.rst:1066 msgid "io" msgstr "" -#: ../../whatsnew/3.7.rst:1068 msgid "" "The new :meth:`TextIOWrapper.reconfigure() ` " "method can be used to reconfigure the text stream with the new settings. " -"(Contributed by Antoine Pitrou in :issue:`30526` and INADA Naoki " -"in :issue:`15216`.)" +"(Contributed by Antoine Pitrou in :issue:`30526` and INADA Naoki in :issue:" +"`15216`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1075 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.7.rst:1077 msgid "" -"The new ``subnet_of()`` and ``supernet_of()`` methods " -"of :class:`ipaddress.IPv6Network` and :class:`ipaddress.IPv4Network` can be " -"used for network containment tests. (Contributed by Michel Albert and Cheryl " -"Sabella in :issue:`20825`.)" +"The new ``subnet_of()`` and ``supernet_of()`` methods of :class:`ipaddress." +"IPv6Network` and :class:`ipaddress.IPv4Network` can be used for network " +"containment tests. (Contributed by Michel Albert and Cheryl Sabella in :" +"issue:`20825`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1084 msgid "itertools" msgstr "" -#: ../../whatsnew/3.7.rst:1086 msgid "" -":func:`itertools.islice` now accepts :meth:`integer-like objects " -"` as start, stop, and slice arguments. (Contributed by " -"Will Roberts in :issue:`30537`.)" +":func:`itertools.islice` now accepts :meth:`integer-like objects ` as start, stop, and slice arguments. (Contributed by Will " +"Roberts in :issue:`30537`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1093 ../../whatsnew/3.7.rst:2035 msgid "locale" msgstr "" -#: ../../whatsnew/3.7.rst:1095 msgid "" "The new *monetary* argument to :func:`locale.format_string` can be used to " "make the conversion use monetary thousands separators and grouping strings. " "(Contributed by Garvit in :issue:`10379`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1099 msgid "" "The :func:`locale.getpreferredencoding` function now always returns " "``'UTF-8'`` on Android or when in the :ref:`forced UTF-8 mode `." msgstr "" -#: ../../whatsnew/3.7.rst:1104 msgid "logging" msgstr "" -#: ../../whatsnew/3.7.rst:1106 msgid "" ":class:`~logging.Logger` instances can now be pickled. (Contributed by Vinay " "Sajip in :issue:`30520`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1109 msgid "" "The new :meth:`StreamHandler.setStream() ` " "method can be used to replace the logger stream after handler creation. " "(Contributed by Vinay Sajip in :issue:`30522`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1113 msgid "" "It is now possible to specify keyword arguments to handler constructors in " "configuration passed to :func:`logging.config.fileConfig`. (Contributed by " "Preston Landers in :issue:`31080`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1119 msgid "math" msgstr "" -#: ../../whatsnew/3.7.rst:1121 msgid "" "The new :func:`math.remainder` function implements the IEEE 754-style " "remainder operation. (Contributed by Mark Dickinson in :issue:`29962`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1126 msgid "mimetypes" msgstr "" -#: ../../whatsnew/3.7.rst:1128 msgid "" "The MIME type of .bmp has been changed from ``'image/x-ms-bmp'`` to ``'image/" "bmp'``. (Contributed by Nitish Chandra in :issue:`22589`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1134 msgid "msilib" msgstr "" -#: ../../whatsnew/3.7.rst:1136 msgid "" "The new :meth:`!Database.Close` method can be used to close the :abbr:`MSI` " "database. (Contributed by Berker Peksag in :issue:`20486`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1142 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.7.rst:1144 msgid "" "The new :meth:`Process.close() ` method " "explicitly closes the process object and releases all resources associated " @@ -1651,152 +1373,127 @@ msgid "" "running. (Contributed by Antoine Pitrou in :issue:`30596`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1150 msgid "" "The new :meth:`Process.kill() ` method can be " -"used to terminate the process using the :data:`SIGKILL` signal on Unix. " -"(Contributed by Vitor Pereira in :issue:`30794`.)" +"used to terminate the process using the :data:`~signal.SIGKILL` signal on " +"Unix. (Contributed by Vitor Pereira in :issue:`30794`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1154 msgid "" "Non-daemonic threads created by :class:`~multiprocessing.Process` are now " "joined on process exit. (Contributed by Antoine Pitrou in :issue:`18966`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1160 msgid "os" msgstr "" -#: ../../whatsnew/3.7.rst:1162 msgid "" ":func:`os.fwalk` now accepts the *path* argument as :class:`bytes`. " "(Contributed by Serhiy Storchaka in :issue:`28682`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1165 msgid "" ":func:`os.scandir` gained support for :ref:`file descriptors `. " "(Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1168 msgid "" "The new :func:`~os.register_at_fork` function allows registering Python " -"callbacks to be executed at process fork. (Contributed by Antoine Pitrou " -"in :issue:`16500`.)" +"callbacks to be executed at process fork. (Contributed by Antoine Pitrou in :" +"issue:`16500`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1172 msgid "" -"Added :func:`os.preadv` (combine the functionality of :func:`os.readv` " -"and :func:`os.pread`) and :func:`os.pwritev` functions (combine the " -"functionality of :func:`os.writev` and :func:`os.pwrite`). (Contributed by " -"Pablo Galindo in :issue:`31368`.)" +"Added :func:`os.preadv` (combine the functionality of :func:`os.readv` and :" +"func:`os.pread`) and :func:`os.pwritev` functions (combine the functionality " +"of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo " +"in :issue:`31368`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1177 msgid "" "The mode argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly created intermediate-level directories. " "(Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1181 msgid "" ":func:`os.dup2` now returns the new file descriptor. Previously, ``None`` " "was always returned. (Contributed by Benjamin Peterson in :issue:`32441`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1185 msgid "" -"The structure returned by :func:`os.stat` now contains " -"the :attr:`~os.stat_result.st_fstype` attribute on Solaris and its " -"derivatives. (Contributed by Jesús Cea Avión in :issue:`32659`.)" +"The structure returned by :func:`os.stat` now contains the :attr:`~os." +"stat_result.st_fstype` attribute on Solaris and its derivatives. " +"(Contributed by Jesús Cea Avión in :issue:`32659`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1191 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.7.rst:1193 msgid "" "The new :meth:`Path.is_mount() ` method is now " "available on POSIX systems and can be used to determine whether a path is a " "mount point. (Contributed by Cooper Ry Lees in :issue:`30897`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1199 msgid "pdb" msgstr "" -#: ../../whatsnew/3.7.rst:1201 msgid "" ":func:`pdb.set_trace` now takes an optional *header* keyword-only argument. " "If given, it is printed to the console just before debugging begins. " "(Contributed by Barry Warsaw in :issue:`31389`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1205 msgid "" ":mod:`pdb` command line now accepts ``-m module_name`` as an alternative to " "script file. (Contributed by Mario Corchero in :issue:`32206`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1210 msgid "py_compile" msgstr "" -#: ../../whatsnew/3.7.rst:1212 msgid "" ":func:`py_compile.compile` -- and by extension, :mod:`compileall` -- now " "respects the :envvar:`SOURCE_DATE_EPOCH` environment variable by " "unconditionally creating ``.pyc`` files for hash-based validation. This " -"allows for guaranteeing `reproducible builds `_ of ``.pyc`` files when they are created eagerly. (Contributed " -"by Bernhard M. Wiedemann in :issue:`29708`.)" +"allows for guaranteeing `reproducible builds `_ of ``.pyc`` files when they are created eagerly. (Contributed by " +"Bernhard M. Wiedemann in :issue:`29708`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1222 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.7.rst:1224 msgid "" "The pydoc server can now bind to an arbitrary hostname specified by the new " -"``-n`` command-line argument. (Contributed by Feanil Patel " -"in :issue:`31128`.)" +"``-n`` command-line argument. (Contributed by Feanil Patel in :issue:" +"`31128`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1230 msgid "queue" msgstr "" -#: ../../whatsnew/3.7.rst:1232 msgid "" "The new :class:`~queue.SimpleQueue` class is an unbounded :abbr:`FIFO` " "queue. (Contributed by Antoine Pitrou in :issue:`14976`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1237 msgid "re" msgstr "" -#: ../../whatsnew/3.7.rst:1239 msgid "" "The flags :const:`re.ASCII`, :const:`re.LOCALE` and :const:`re.UNICODE` can " -"be set within the scope of a group. (Contributed by Serhiy Storchaka " -"in :issue:`31690`.)" +"be set within the scope of a group. (Contributed by Serhiy Storchaka in :" +"issue:`31690`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1243 msgid "" ":func:`re.split` now supports splitting on a pattern like ``r'\\b'``, " "``'^$'`` or ``(?=-)`` that matches an empty string. (Contributed by Serhiy " "Storchaka in :issue:`25054`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1247 msgid "" "Regular expressions compiled with the :const:`re.LOCALE` flag no longer " "depend on the locale at compile time. Locale settings are applied only when " @@ -1804,26 +1501,22 @@ msgid "" "in :issue:`30215`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1252 msgid "" ":exc:`FutureWarning` is now emitted if a regular expression contains " "character set constructs that will change semantically in the future, such " -"as nested sets and set operations. (Contributed by Serhiy Storchaka " -"in :issue:`30349`.)" +"as nested sets and set operations. (Contributed by Serhiy Storchaka in :" +"issue:`30349`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1257 msgid "" -"Compiled regular expression and match objects can now be copied " -"using :func:`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy " -"Storchaka in :issue:`10076`.)" +"Compiled regular expression and match objects can now be copied using :func:" +"`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy Storchaka in :" +"issue:`10076`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1263 msgid "signal" msgstr "" -#: ../../whatsnew/3.7.rst:1265 msgid "" "The new *warn_on_full_buffer* argument to the :func:`signal.set_wakeup_fd` " "function makes it possible to specify whether Python prints a warning on " @@ -1831,103 +1524,88 @@ msgid "" "in :issue:`30050`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1272 ../../whatsnew/3.7.rst:2058 msgid "socket" msgstr "" -#: ../../whatsnew/3.7.rst:1274 msgid "" "The new :func:`socket.getblocking() ` method " "returns ``True`` if the socket is in blocking mode and ``False`` otherwise. " "(Contributed by Yury Selivanov in :issue:`32373`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1278 msgid "" "The new :func:`socket.close` function closes the passed socket file " "descriptor. This function should be used instead of :func:`os.close` for " -"better compatibility across platforms. (Contributed by Christian Heimes " -"in :issue:`32454`.)" +"better compatibility across platforms. (Contributed by Christian Heimes in :" +"issue:`32454`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1283 msgid "" -"The :mod:`socket` module now exposes the :const:`socket.TCP_CONGESTION` " -"(Linux 2.6.13), :const:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), " -"and :const:`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed " -"by Omar Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" +"The :mod:`socket` module now exposes the :ref:`socket.TCP_CONGESTION ` (Linux 2.6.13), :ref:`socket.TCP_USER_TIMEOUT ` (Linux 2.6.37), and :ref:`socket.TCP_NOTSENT_LOWAT ` (Linux 3.12) constants. (Contributed by Omar Sandoval in :issue:" +"`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1289 msgid "" "Support for :const:`socket.AF_VSOCK` sockets has been added to allow " "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1293 msgid "" "Sockets now auto-detect family, type and protocol from file descriptor by " "default. (Contributed by Christian Heimes in :issue:`28134`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1299 msgid "socketserver" msgstr "" -#: ../../whatsnew/3.7.rst:1301 msgid "" -":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" -"daemon threads complete. :meth:`socketserver.ForkingMixIn.server_close` now " -"waits until all child processes complete." +":meth:`socketserver.ThreadingMixIn.server_close ` now waits until all non-daemon threads complete. :meth:" +"`socketserver.ForkingMixIn.server_close ` now waits until all child processes complete." msgstr "" -#: ../../whatsnew/3.7.rst:1305 msgid "" -"Add a new :attr:`socketserver.ForkingMixIn.block_on_close` class attribute " -"to :class:`socketserver.ForkingMixIn` " -"and :class:`socketserver.ThreadingMixIn` classes. Set the class attribute to " -"``False`` to get the pre-3.7 behaviour." +"Add a new :attr:`socketserver.ForkingMixIn.block_on_close ` class attribute to :class:`socketserver." +"ForkingMixIn` and :class:`socketserver.ThreadingMixIn` classes. Set the " +"class attribute to ``False`` to get the pre-3.7 behaviour." msgstr "" -#: ../../whatsnew/3.7.rst:1311 msgid "sqlite3" msgstr "" -#: ../../whatsnew/3.7.rst:1313 msgid "" -":class:`sqlite3.Connection` now exposes " -"the :meth:`~sqlite3.Connection.backup` method when the underlying SQLite " -"library is at version 3.6.11 or higher. (Contributed by Lele Gaifax " -"in :issue:`27645`.)" +":class:`sqlite3.Connection` now exposes the :meth:`~sqlite3.Connection." +"backup` method when the underlying SQLite library is at version 3.6.11 or " +"higher. (Contributed by Lele Gaifax in :issue:`27645`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1317 msgid "" -"The *database* argument of :func:`sqlite3.connect` now accepts " -"any :term:`path-like object`, instead of just a string. (Contributed by " -"Anders Lorentsen in :issue:`31843`.)" +"The *database* argument of :func:`sqlite3.connect` now accepts any :term:" +"`path-like object`, instead of just a string. (Contributed by Anders " +"Lorentsen in :issue:`31843`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1323 ../../whatsnew/3.7.rst:2067 msgid "ssl" msgstr "" -#: ../../whatsnew/3.7.rst:1325 msgid "" -"The :mod:`ssl` module now uses OpenSSL's builtin API instead " -"of :func:`~ssl.match_hostname` to check a host name or an IP address. " -"Values are validated during TLS handshake. Any certificate validation error " -"including failing the host name check now " -"raises :exc:`~ssl.SSLCertVerificationError` and aborts the handshake with a " -"proper TLS Alert message. The new exception contains additional " -"information. Host name validation can be customized " -"with :attr:`SSLContext.hostname_checks_common_name " -"`. (Contributed by Christian " -"Heimes in :issue:`31399`.)" +"The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`!" +"match_hostname` to check a host name or an IP address. Values are validated " +"during TLS handshake. Any certificate validation error including failing " +"the host name check now raises :exc:`~ssl.SSLCertVerificationError` and " +"aborts the handshake with a proper TLS Alert message. The new exception " +"contains additional information. Host name validation can be customized " +"with :attr:`SSLContext.hostname_checks_common_name `. (Contributed by Christian Heimes in :issue:" +"`31399`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1336 msgid "" "The improved host name check requires a *libssl* implementation compatible " "with OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0.1 are no " @@ -1935,20 +1613,17 @@ msgid "" "The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." msgstr "" -#: ../../whatsnew/3.7.rst:1341 msgid "" "The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " "(Contributed by Christian Heimes in :issue:`32185`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1344 msgid "" -":func:`~ssl.match_hostname` no longer supports partial wildcards like " -"``www*.example.org``. (Contributed by Mandeep Singh in :issue:`23033` and " -"Christian Heimes in :issue:`31399`.)" +":func:`!match_hostname` no longer supports partial wildcards like ``www*." +"example.org``. (Contributed by Mandeep Singh in :issue:`23033` and Christian " +"Heimes in :issue:`31399`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1349 msgid "" "The default cipher suite selection of the ``ssl`` module now uses a " "blacklist approach rather than a hard-coded whitelist. Python no longer re-" @@ -1957,71 +1632,59 @@ msgid "" "Christian Heimes in :issue:`31429`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1355 msgid "" "Validation of server certificates containing internationalized domain names " -"(IDNs) is now supported. As part of this change, " -"the :attr:`SSLSocket.server_hostname ` " -"attribute now stores the expected hostname in A-label form (``\"xn--pythn-" -"mua.org\"``), rather than the U-label form (``\"pythön.org\"``). " -"(Contributed by Nathaniel J. Smith and Christian Heimes in :issue:`28414`.)" +"(IDNs) is now supported. As part of this change, the :attr:`SSLSocket." +"server_hostname ` attribute now stores the " +"expected hostname in A-label form (``\"xn--pythn-mua.org\"``), rather than " +"the U-label form (``\"pythön.org\"``). (Contributed by Nathaniel J. Smith " +"and Christian Heimes in :issue:`28414`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1362 msgid "" "The ``ssl`` module has preliminary and experimental support for TLS 1.3 and " "OpenSSL 1.1.1. At the time of Python 3.7.0 release, OpenSSL 1.1.1 is still " "under development and TLS 1.3 hasn't been finalized yet. The TLS 1.3 " "handshake and protocol behaves slightly differently than TLS 1.2 and " -"earlier, see :ref:`ssl-tlsv1_3`. (Contributed by Christian Heimes " -"in :issue:`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` " -"and :issue:`33618`)" +"earlier, see :ref:`ssl-tlsv1_3`. (Contributed by Christian Heimes in :issue:" +"`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" msgstr "" -#: ../../whatsnew/3.7.rst:1370 msgid "" ":class:`~ssl.SSLSocket` and :class:`~ssl.SSLObject` no longer have a public " "constructor. Direct instantiation was never a documented and supported " -"feature. Instances must be created with :class:`~ssl.SSLContext` " -"methods :meth:`~ssl.SSLContext.wrap_socket` " -"and :meth:`~ssl.SSLContext.wrap_bio`. (Contributed by Christian Heimes " -"in :issue:`32951`)" +"feature. Instances must be created with :class:`~ssl.SSLContext` methods :" +"meth:`~ssl.SSLContext.wrap_socket` and :meth:`~ssl.SSLContext.wrap_bio`. " +"(Contributed by Christian Heimes in :issue:`32951`)" msgstr "" -#: ../../whatsnew/3.7.rst:1376 msgid "" "OpenSSL 1.1 APIs for setting the minimum and maximum TLS protocol version " -"are available as :attr:`SSLContext.minimum_version " -"` and :attr:`SSLContext.maximum_version " -"`. Supported protocols are indicated by " -"several new flags, such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by " -"Christian Heimes in :issue:`32609`.)" +"are available as :attr:`SSLContext.minimum_version ` and :attr:`SSLContext.maximum_version `. Supported protocols are indicated by several new flags, " +"such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by Christian Heimes in :issue:" +"`32609`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1383 msgid "" -"Added :attr:`ssl.SSLContext.post_handshake_auth` to enable " -"and :meth:`ssl.SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 " -"post-handshake authentication. (Contributed by Christian Heimes " -"in :gh:`78851`.)" +"Added :attr:`ssl.SSLContext.post_handshake_auth` to enable and :meth:`ssl." +"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " +"authentication. (Contributed by Christian Heimes in :gh:`78851`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1389 msgid "string" msgstr "" -#: ../../whatsnew/3.7.rst:1391 msgid "" ":class:`string.Template` now lets you to optionally modify the regular " "expression pattern for braced placeholders and non-braced placeholders " "separately. (Contributed by Barry Warsaw in :issue:`1198569`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1397 msgid "subprocess" msgstr "" -#: ../../whatsnew/3.7.rst:1399 msgid "" "The :func:`subprocess.run` function accepts the new *capture_output* keyword " "argument. When true, stdout and stderr will be captured. This is equivalent " @@ -2029,122 +1692,101 @@ msgid "" "(Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1405 msgid "" "The ``subprocess.run`` function and the :class:`subprocess.Popen` " "constructor now accept the *text* keyword argument as an alias to " "*universal_newlines*. (Contributed by Andrew Clegg in :issue:`31756`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1410 msgid "" "On Windows the default for *close_fds* was changed from ``False`` to " "``True`` when redirecting the standard handles. It's now possible to set " -"*close_fds* to true when redirecting the standard handles. " -"See :class:`subprocess.Popen`. This means that *close_fds* now defaults to " -"``True`` on all supported platforms. (Contributed by Segev Finer " -"in :issue:`19764`.)" +"*close_fds* to true when redirecting the standard handles. See :class:" +"`subprocess.Popen`. This means that *close_fds* now defaults to ``True`` on " +"all supported platforms. (Contributed by Segev Finer in :issue:`19764`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1417 msgid "" -"The subprocess module is now more graceful when " -"handling :exc:`KeyboardInterrupt` " -"during :func:`subprocess.call`, :func:`subprocess.run`, or in " -"a :class:`~subprocess.Popen` context manager. It now waits a short amount " -"of time for the child to exit, before continuing the handling of the " -"``KeyboardInterrupt`` exception. (Contributed by Gregory P. Smith " -"in :issue:`25942`.)" +"The subprocess module is now more graceful when handling :exc:" +"`KeyboardInterrupt` during :func:`subprocess.call`, :func:`subprocess.run`, " +"or in a :class:`~subprocess.Popen` context manager. It now waits a short " +"amount of time for the child to exit, before continuing the handling of the " +"``KeyboardInterrupt`` exception. (Contributed by Gregory P. Smith in :issue:" +"`25942`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1427 ../../whatsnew/3.7.rst:2083 msgid "sys" msgstr "" -#: ../../whatsnew/3.7.rst:1429 msgid "" -"The new :func:`sys.breakpointhook` hook function is called by the built-" -"in :func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" +"The new :func:`sys.breakpointhook` hook function is called by the built-in :" +"func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1433 msgid "" "On Android, the new :func:`sys.getandroidapilevel` returns the build-time " "Android API version. (Contributed by Victor Stinner in :issue:`28740`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1437 msgid "" "The new :func:`sys.get_coroutine_origin_tracking_depth` function returns the " -"current coroutine origin tracking depth, as set by the " -"new :func:`sys.set_coroutine_origin_tracking_depth`. :mod:`asyncio` has " -"been converted to use this new API instead of the " -"deprecated :func:`sys.set_coroutine_wrapper`. (Contributed by Nathaniel J. " -"Smith in :issue:`32591`.)" +"current coroutine origin tracking depth, as set by the new :func:`sys." +"set_coroutine_origin_tracking_depth`. :mod:`asyncio` has been converted to " +"use this new API instead of the deprecated :func:`!sys." +"set_coroutine_wrapper`. (Contributed by Nathaniel J. Smith in :issue:" +"`32591`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1446 msgid "time" msgstr "" -#: ../../whatsnew/3.7.rst:1448 msgid "" -":pep:`564` adds six new functions with nanosecond resolution to " -"the :mod:`time` module:" +":pep:`564` adds six new functions with nanosecond resolution to the :mod:" +"`time` module:" msgstr "" -#: ../../whatsnew/3.7.rst:1458 msgid "New clock identifiers have been added:" msgstr "" -#: ../../whatsnew/3.7.rst:1460 msgid "" -":const:`time.CLOCK_BOOTTIME` (Linux): Identical " -"to :const:`time.CLOCK_MONOTONIC`, except it also includes any time that the " -"system is suspended." +":const:`time.CLOCK_BOOTTIME` (Linux): Identical to :const:`time." +"CLOCK_MONOTONIC`, except it also includes any time that the system is " +"suspended." msgstr "" -#: ../../whatsnew/3.7.rst:1463 msgid "" ":const:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" "process CPU timer." msgstr "" -#: ../../whatsnew/3.7.rst:1465 msgid "" ":const:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " "the time the system has been running and not suspended, providing accurate " "uptime measurement." msgstr "" -#: ../../whatsnew/3.7.rst:1469 msgid "" "The new :func:`time.thread_time` and :func:`time.thread_time_ns` functions " "can be used to get per-thread CPU time measurements. (Contributed by Antoine " "Pitrou in :issue:`32025`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1473 msgid "" "The new :func:`time.pthread_getcpuclockid` function returns the clock ID of " "the thread-specific CPU-time clock." msgstr "" -#: ../../whatsnew/3.7.rst:1478 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.7.rst:1480 msgid "" "The new :class:`tkinter.ttk.Spinbox` class is now available. (Contributed by " "Alan Moore in :issue:`32585`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1485 msgid "tracemalloc" msgstr "" -#: ../../whatsnew/3.7.rst:1487 msgid "" ":class:`tracemalloc.Traceback` behaves more like regular tracebacks, sorting " "the frames from oldest to most recent. :meth:`Traceback.format() " @@ -2154,106 +1796,87 @@ msgid "" "by Jesse Bakker in :issue:`32121`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1497 msgid "types" msgstr "" -#: ../../whatsnew/3.7.rst:1499 msgid "" -"The " -"new :class:`~types.WrapperDescriptorType`, :class:`~types.MethodWrapperType`, :class:`~types.MethodDescriptorType`, " -"and :class:`~types.ClassMethodDescriptorType` classes are now available. " -"(Contributed by Manuel Krebber and Guido van Rossum in :issue:`29377`, and " -"Serhiy Storchaka in :issue:`32265`.)" +"The new :class:`~types.WrapperDescriptorType`, :class:`~types." +"MethodWrapperType`, :class:`~types.MethodDescriptorType`, and :class:`~types." +"ClassMethodDescriptorType` classes are now available. (Contributed by Manuel " +"Krebber and Guido van Rossum in :issue:`29377`, and Serhiy Storchaka in :" +"issue:`32265`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1505 msgid "" "The new :func:`types.resolve_bases` function resolves MRO entries " -"dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi " -"in :issue:`32717`.)" +"dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi in :" +"issue:`32717`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1511 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.7.rst:1513 msgid "" "The internal :mod:`unicodedata` database has been upgraded to use `Unicode " "11 `_. (Contributed by " "Benjamin Peterson.)" msgstr "" -#: ../../whatsnew/3.7.rst:1519 msgid "unittest" msgstr "" -#: ../../whatsnew/3.7.rst:1521 msgid "" "The new ``-k`` command-line option allows filtering tests by a name " "substring or a Unix shell-like pattern. For example, ``python -m unittest -k " -"foo`` runs ``foo_tests.SomeTest.test_something``, " -"``bar_tests.SomeTest.test_foo``, but not " -"``bar_tests.FooTest.test_something``. (Contributed by Jonas Haag " -"in :issue:`32071`.)" +"foo`` runs ``foo_tests.SomeTest.test_something``, ``bar_tests.SomeTest." +"test_foo``, but not ``bar_tests.FooTest.test_something``. (Contributed by " +"Jonas Haag in :issue:`32071`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1530 msgid "unittest.mock" msgstr "" -#: ../../whatsnew/3.7.rst:1532 msgid "" "The :const:`~unittest.mock.sentinel` attributes now preserve their identity " "when they are :mod:`copied ` or :mod:`pickled `. (Contributed " "by Serhiy Storchaka in :issue:`20804`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1536 msgid "" -"The new :func:`~unittest.mock.seal` function allows " -"sealing :class:`~unittest.mock.Mock` instances, which will disallow further " -"creation of attribute mocks. The seal is applied recursively to all " -"attributes that are themselves mocks. (Contributed by Mario Corchero " -"in :issue:`30541`.)" +"The new :func:`~unittest.mock.seal` function allows sealing :class:" +"`~unittest.mock.Mock` instances, which will disallow further creation of " +"attribute mocks. The seal is applied recursively to all attributes that are " +"themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1544 msgid "urllib.parse" msgstr "" -#: ../../whatsnew/3.7.rst:1546 msgid "" ":func:`urllib.parse.quote` has been updated from :rfc:`2396` to :rfc:`3986`, " "adding ``~`` to the set of characters that are never quoted by default. " "(Contributed by Christian Theune and Ratnadeep Debnath in :issue:`16285`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1552 msgid "uu" msgstr "" -#: ../../whatsnew/3.7.rst:1554 msgid "" "The :func:`!uu.encode` function now accepts an optional *backtick* keyword " "argument. When it's true, zeros are represented by ``'`'`` instead of " "spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1560 msgid "uuid" msgstr "" -#: ../../whatsnew/3.7.rst:1562 msgid "" "The new :attr:`UUID.is_safe ` attribute relays " "information from the platform about whether generated UUIDs are generated " -"with a multiprocessing-safe method. (Contributed by Barry Warsaw " -"in :issue:`22807`.)" +"with a multiprocessing-safe method. (Contributed by Barry Warsaw in :issue:" +"`22807`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1567 msgid "" ":func:`uuid.getnode` now prefers universally administered MAC addresses over " "locally administered MAC addresses. This makes a better guarantee for global " @@ -2262,117 +1885,94 @@ msgid "" "returned. (Contributed by Barry Warsaw in :issue:`32107`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1576 msgid "warnings" msgstr "" -#: ../../whatsnew/3.7.rst:1578 msgid "" "The initialization of the default warnings filters has changed as follows:" msgstr "" -#: ../../whatsnew/3.7.rst:1580 msgid "" "warnings enabled via command line options (including those for :option:`-b` " "and the new CPython-specific :option:`-X` ``dev`` option) are always passed " "to the warnings machinery via the :data:`sys.warnoptions` attribute." msgstr "" -#: ../../whatsnew/3.7.rst:1584 msgid "" "warnings filters enabled via the command line or the environment now have " "the following order of precedence:" msgstr "" -#: ../../whatsnew/3.7.rst:1587 msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" msgstr "" -#: ../../whatsnew/3.7.rst:1588 msgid "any filters specified with the :option:`-W` option" msgstr "" -#: ../../whatsnew/3.7.rst:1589 msgid "" "any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" msgstr "" -#: ../../whatsnew/3.7.rst:1591 msgid "" "any other CPython specific filters (e.g. the ``default`` filter added for " "the new ``-X dev`` mode)" msgstr "" -#: ../../whatsnew/3.7.rst:1593 msgid "any implicit filters defined directly by the warnings machinery" msgstr "" -#: ../../whatsnew/3.7.rst:1595 msgid "" "in :ref:`CPython debug builds `, all warnings are now displayed " "by default (the implicit filter list is empty)" msgstr "" -#: ../../whatsnew/3.7.rst:1598 msgid "" -"(Contributed by Nick Coghlan and Victor Stinner " -"in :issue:`20361`, :issue:`32043`, and :issue:`32230`.)" +"(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" +"`32043`, and :issue:`32230`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1601 msgid "" "Deprecation warnings are once again shown by default in single-file scripts " "and at the interactive prompt. See :ref:`whatsnew37-pep565` for details. " "(Contributed by Nick Coghlan in :issue:`31975`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1607 msgid "xml" msgstr "" -#: ../../whatsnew/3.7.rst:1609 msgid "" -"As mitigation against DTD and external entity retrieval, " -"the :mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process " -"external entities by default. (Contributed by Christian Heimes " -"in :gh:`61441`.)" +"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." +"minidom` and :mod:`xml.sax` modules no longer process external entities by " +"default. (Contributed by Christian Heimes in :gh:`61441`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1616 msgid "xml.etree" msgstr "" -#: ../../whatsnew/3.7.rst:1618 msgid "" -":ref:`ElementPath ` predicates in the :meth:`find` " +":ref:`ElementPath ` predicates in the :meth:`!find` " "methods can now compare text of the current node with ``[. = \"text\"]``, " "not only text in children. Predicates also allow adding spaces for better " "readability. (Contributed by Stefan Behnel in :issue:`31648`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1625 msgid "xmlrpc.server" msgstr "" -#: ../../whatsnew/3.7.rst:1627 msgid "" -":meth:`SimpleXMLRPCDispatcher.register_function " -"` can now be used as a decorator. " -"(Contributed by Xiang Zhang in :issue:`7769`.)" +":meth:`!SimpleXMLRPCDispatcher.register_function` can now be used as a " +"decorator. (Contributed by Xiang Zhang in :issue:`7769`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1633 msgid "zipapp" msgstr "" -#: ../../whatsnew/3.7.rst:1635 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *filter* " "argument to allow the user to select which files should be included in the " "archive. (Contributed by Irmen de Jong in :issue:`31072`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1639 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *compressed* " "argument to generate a compressed archive. A command line option ``--" @@ -2380,201 +1980,169 @@ msgid "" "Zhiming Wang in :issue:`31638`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1646 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.7.rst:1648 msgid "" ":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " "control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1652 msgid "" "Subdirectories in archives created by ``ZipFile`` are now stored in " "alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1658 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.7.rst:1660 msgid "" -"A new API for thread-local storage has been implemented. " -"See :ref:`whatsnew37-pep539` for an overview and :ref:`thread-specific-" -"storage-api` for a complete reference. (Contributed by Masayuki Yamamoto " -"in :issue:`25658`.)" +"A new API for thread-local storage has been implemented. See :ref:" +"`whatsnew37-pep539` for an overview and :ref:`thread-specific-storage-api` " +"for a complete reference. (Contributed by Masayuki Yamamoto in :issue:" +"`25658`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1665 msgid "" "The new :ref:`context variables ` functionality exposes a " "number of :ref:`new C APIs `." msgstr "" -#: ../../whatsnew/3.7.rst:1668 msgid "" "The new :c:func:`PyImport_GetModule` function returns the previously " -"imported module with the given name. (Contributed by Eric Snow " -"in :issue:`28411`.)" +"imported module with the given name. (Contributed by Eric Snow in :issue:" +"`28411`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1672 msgid "" "The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " "functions. (Contributed by Petr Victorin in :issue:`23699`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1676 msgid "" "The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " "paths. (Contributed by Barry Warsaw in :issue:`31338`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1680 msgid "" -"The :mod:`tracemalloc` now exposes a C API through the " -"new :c:func:`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` " -"functions. (Contributed by Victor Stinner in :issue:`30054`.)" +"The :mod:`tracemalloc` now exposes a C API through the new :c:func:" +"`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` functions. " +"(Contributed by Victor Stinner in :issue:`30054`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1685 msgid "" -"The new :c:func:`import__find__load__start` " -"and :c:func:`import__find__load__done` static markers can be used to trace " -"module imports. (Contributed by Christian Heimes in :issue:`31574`.)" +"The new :ref:`import__find__load__start ` and :ref:" +"`import__find__load__done ` static markers can be used to " +"trace module imports. (Contributed by Christian Heimes in :issue:`31574`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1690 msgid "" -"The fields :c:member:`!name` and :c:member:`!doc` of " -"structures :c:type:`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:type:`PyStructSequence_Desc`, " -"and :c:struct:`wrapperbase` are now of type ``const char *`` rather of " -"``char *``. (Contributed by Serhiy Storchaka in :issue:`28761`.)" +"The fields :c:member:`!name` and :c:member:`!doc` of structures :c:type:" +"`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" +"type:`PyStructSequence_Desc`, and :c:struct:`!wrapperbase` are now of type " +"``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" +"issue:`28761`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1696 msgid "" -"The result of :c:func:`PyUnicode_AsUTF8AndSize` " -"and :c:func:`PyUnicode_AsUTF8` is now of type ``const char *`` rather of " -"``char *``. (Contributed by Serhiy Storchaka in :issue:`28769`.)" +"The result of :c:func:`PyUnicode_AsUTF8AndSize` and :c:func:" +"`PyUnicode_AsUTF8` is now of type ``const char *`` rather of ``char *``. " +"(Contributed by Serhiy Storchaka in :issue:`28769`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1700 msgid "" -"The result of :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` " -"and :c:func:`PyMapping_Items` is now always a list, rather than a list or a " -"tuple. (Contributed by Oren Milman in :issue:`28280`.)" +"The result of :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` and :c:" +"func:`PyMapping_Items` is now always a list, rather than a list or a tuple. " +"(Contributed by Oren Milman in :issue:`28280`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1704 msgid "" -"Added functions :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka " -"in :issue:`27867`.)" +"Added functions :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1707 msgid "" -":c:func:`PyOS_AfterFork` is deprecated in favour of the new " -"functions :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` " -"and :c:func:`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou " -"in :issue:`16500`.)" +":c:func:`PyOS_AfterFork` is deprecated in favour of the new functions :c:" +"func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` and :c:func:" +"`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou in :issue:`16500`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1712 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " -"during finalization of the interpreter. Contributed by Xavier de Gaye " -"in :issue:`22898` and :issue:`30697`." +"during finalization of the interpreter. Contributed by Xavier de Gaye in :" +"issue:`22898` and :issue:`30697`." msgstr "" -#: ../../whatsnew/3.7.rst:1717 msgid "" -"Added C API support for timezones with timezone " -"constructors :c:func:`PyTimeZone_FromOffset` " -"and :c:func:`PyTimeZone_FromOffsetAndName`, and access to the UTC singleton " -"with :c:data:`PyDateTime_TimeZone_UTC`. Contributed by Paul Ganssle " -"in :issue:`10381`." +"Added C API support for timezones with timezone constructors :c:func:" +"`PyTimeZone_FromOffset` and :c:func:`PyTimeZone_FromOffsetAndName`, and " +"access to the UTC singleton with :c:data:`PyDateTime_TimeZone_UTC`. " +"Contributed by Paul Ganssle in :issue:`10381`." msgstr "" -#: ../../whatsnew/3.7.rst:1722 msgid "" -"The type of results of :c:func:`PyThread_start_new_thread` " -"and :c:func:`PyThread_get_thread_ident`, and the *id* parameter " -"of :c:func:`PyThreadState_SetAsyncExc` changed from :c:expr:`long` " -"to :c:expr:`unsigned long`. (Contributed by Serhiy Storchaka " -"in :issue:`6532`.)" +"The type of results of :c:func:`!PyThread_start_new_thread` and :c:func:`!" +"PyThread_get_thread_ident`, and the *id* parameter of :c:func:" +"`PyThreadState_SetAsyncExc` changed from :c:expr:`long` to :c:expr:`unsigned " +"long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1728 msgid "" ":c:func:`PyUnicode_AsWideCharString` now raises a :exc:`ValueError` if the " "second argument is ``NULL`` and the :c:expr:`wchar_t*` string contains null " "characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1732 msgid "" "Changes to the startup sequence and the management of dynamic memory " -"allocators mean that the long documented requirement to " -"call :c:func:`Py_Initialize` before calling most C API functions is now " -"relied on more heavily, and failing to abide by it may lead to segfaults in " -"embedding applications. See the :ref:`porting-to-python-37` section in this " -"document and the :ref:`pre-init-safe` section in the C API documentation for " -"more details." +"allocators mean that the long documented requirement to call :c:func:" +"`Py_Initialize` before calling most C API functions is now relied on more " +"heavily, and failing to abide by it may lead to segfaults in embedding " +"applications. See the :ref:`porting-to-python-37` section in this document " +"and the :ref:`pre-init-safe` section in the C API documentation for more " +"details." msgstr "" -#: ../../whatsnew/3.7.rst:1740 msgid "" "The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " "interpreter. (Contributed by Eric Snow in :issue:`29102`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1744 msgid "" ":c:func:`Py_DecodeLocale`, :c:func:`Py_EncodeLocale` now use the UTF-8 " "encoding when the :ref:`UTF-8 mode ` is enabled. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1748 msgid "" ":c:func:`PyUnicode_DecodeLocaleAndSize` and :c:func:`PyUnicode_EncodeLocale` " "now use the current locale encoding for ``surrogateescape`` error handler. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1752 msgid "" "The *start* and *end* parameters of :c:func:`PyUnicode_FindChar` are now " -"adjusted to behave like string slices. (Contributed by Xiang Zhang " -"in :issue:`28822`.)" +"adjusted to behave like string slices. (Contributed by Xiang Zhang in :issue:" +"`28822`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1758 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.7.rst:1760 msgid "" -"Support for building ``--without-threads`` has been removed. " -"The :mod:`threading` module is now always available. (Contributed by Antoine " -"Pitrou in :issue:`31370`.)." +"Support for building ``--without-threads`` has been removed. The :mod:" +"`threading` module is now always available. (Contributed by Antoine Pitrou " +"in :issue:`31370`.)." msgstr "" -#: ../../whatsnew/3.7.rst:1764 msgid "" -"A full copy of libffi is no longer bundled for use when building " -"the :mod:`_ctypes ` module on non-OSX UNIX platforms. An installed " -"copy of libffi is now required when building ``_ctypes`` on such platforms. " +"A full copy of libffi is no longer bundled for use when building the :mod:" +"`_ctypes ` module on non-OSX UNIX platforms. An installed copy of " +"libffi is now required when building ``_ctypes`` on such platforms. " "(Contributed by Zachary Ware in :issue:`27979`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1769 msgid "" "The Windows build process no longer depends on Subversion to pull in " "external sources, a Python script is used to download zipfiles from GitHub " @@ -2583,7 +2151,6 @@ msgid "" "by Zachary Ware in :issue:`30450`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1775 msgid "" "The :mod:`ssl` module requires OpenSSL 1.0.2 or 1.1 compatible libssl. " "OpenSSL 1.0.1 has reached end of lifetime on 2016-12-31 and is no longer " @@ -2591,99 +2158,82 @@ msgid "" "up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." msgstr "" -#: ../../whatsnew/3.7.rst:1784 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.7.rst:1786 msgid "" "The overhead of calling many methods of various standard library classes " "implemented in C has been significantly reduced by porting more code to use " -"the ``METH_FASTCALL`` convention. (Contributed by Victor Stinner " -"in :issue:`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" +"the ``METH_FASTCALL`` convention. (Contributed by Victor Stinner in :issue:" +"`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1792 msgid "" "Various optimizations have reduced Python startup time by 10% on Linux and " -"up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki " -"in :issue:`29585`, and Ivan Levkivskyi in :issue:`31333`.)" +"up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki in :issue:" +"`29585`, and Ivan Levkivskyi in :issue:`31333`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1797 msgid "" "Method calls are now up to 20% faster due to the bytecode changes which " "avoid creating bound method instances. (Contributed by Yury Selivanov and " "INADA Naoki in :issue:`26110`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1803 msgid "" "The :mod:`asyncio` module received a number of notable optimizations for " "commonly used functions:" msgstr "" -#: ../../whatsnew/3.7.rst:1806 msgid "" "The :func:`asyncio.get_event_loop` function has been reimplemented in C to " -"make it up to 15 times faster. (Contributed by Yury Selivanov " -"in :issue:`32296`.)" +"make it up to 15 times faster. (Contributed by Yury Selivanov in :issue:" +"`32296`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1810 msgid "" ":class:`asyncio.Future` callback management has been optimized. (Contributed " "by Yury Selivanov in :issue:`32348`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1813 msgid "" ":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " "Selivanov in :issue:`32355`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1816 msgid "" ":func:`asyncio.sleep` is now up to 2 times faster when the *delay* argument " "is zero or negative. (Contributed by Andrew Svetlov in :issue:`32351`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1820 msgid "" "The performance overhead of asyncio debug mode has been reduced. " "(Contributed by Antoine Pitrou in :issue:`31970`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1823 msgid "" -"As a result of :ref:`PEP 560 work `, the import time " -"of :mod:`typing` has been reduced by a factor of 7, and many typing " -"operations are now faster. (Contributed by Ivan Levkivskyi " -"in :issue:`32226`.)" +"As a result of :ref:`PEP 560 work `, the import time of :" +"mod:`typing` has been reduced by a factor of 7, and many typing operations " +"are now faster. (Contributed by Ivan Levkivskyi in :issue:`32226`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1828 msgid "" ":func:`sorted` and :meth:`list.sort` have been optimized for common cases to " -"be up to 40-75% faster. (Contributed by Elliot Gorokhovsky " -"in :issue:`28685`.)" +"be up to 40-75% faster. (Contributed by Elliot Gorokhovsky in :issue:" +"`28685`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1832 msgid "" ":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " "Selivanov in :issue:`31179`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1835 msgid "" ":func:`hasattr` and :func:`getattr` are now about 4 times faster when *name* " -"is not found and *obj* does not override :meth:`object.__getattr__` " -"or :meth:`object.__getattribute__`. (Contributed by INADA Naoki " -"in :issue:`32544`.)" +"is not found and *obj* does not override :meth:`object.__getattr__` or :meth:" +"`object.__getattribute__`. (Contributed by INADA Naoki in :issue:`32544`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1840 msgid "" "Searching for certain Unicode characters (like Ukrainian capital \"Є\") in a " "string was up to 25 times slower than searching for other characters. It is " @@ -2691,7 +2241,6 @@ msgid "" "in :issue:`24821`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1845 msgid "" "The :func:`collections.namedtuple` factory has been reimplemented to make " "the creation of named tuples 4 to 6 times faster. (Contributed by Jelle " @@ -2699,74 +2248,65 @@ msgid "" "Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1850 msgid "" -":meth:`date.fromordinal` and :meth:`date.fromtimestamp` are now up to 30% " -"faster in the common case. (Contributed by Paul Ganssle in :issue:`32403`.)" +":meth:`datetime.date.fromordinal` and :meth:`datetime.date.fromtimestamp` " +"are now up to 30% faster in the common case. (Contributed by Paul Ganssle " +"in :issue:`32403`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1854 msgid "" "The :func:`os.fwalk` function is now up to 2 times faster thanks to the use " "of :func:`os.scandir`. (Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1858 msgid "" "The speed of the :func:`shutil.rmtree` function has been improved by 20--40% " "thanks to the use of the :func:`os.scandir` function. (Contributed by Serhiy " "Storchaka in :issue:`28564`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1862 msgid "" "Optimized case-insensitive matching and searching of :mod:`regular " "expressions `. Searching some patterns can now be up to 20 times " "faster. (Contributed by Serhiy Storchaka in :issue:`30285`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1866 msgid "" ":func:`re.compile` now converts ``flags`` parameter to int object if it is " "``RegexFlag``. It is now as fast as Python 3.5, and faster than Python 3.6 " -"by about 10% depending on the pattern. (Contributed by INADA Naoki " -"in :issue:`31671`.)" +"by about 10% depending on the pattern. (Contributed by INADA Naoki in :issue:" +"`31671`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1871 msgid "" -"The :meth:`~selectors.BaseSelector.modify` methods of " -"classes :class:`selectors.EpollSelector`, :class:`selectors.PollSelector` " -"and :class:`selectors.DevpollSelector` may be around 10% faster under heavy " -"loads. (Contributed by Giampaolo Rodola' in :issue:`30014`)" +"The :meth:`~selectors.BaseSelector.modify` methods of classes :class:" +"`selectors.EpollSelector`, :class:`selectors.PollSelector` and :class:" +"`selectors.DevpollSelector` may be around 10% faster under heavy loads. " +"(Contributed by Giampaolo Rodola' in :issue:`30014`)" msgstr "" -#: ../../whatsnew/3.7.rst:1876 msgid "" "Constant folding has been moved from the peephole optimizer to the new AST " "optimizer, which is able perform optimizations more consistently. " -"(Contributed by Eugene Toder and INADA Naoki in :issue:`29469` " -"and :issue:`11549`.)" +"(Contributed by Eugene Toder and INADA Naoki in :issue:`29469` and :issue:" +"`11549`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1881 msgid "" "Most functions and methods in :mod:`abc` have been rewritten in C. This " -"makes creation of abstract base classes, and calling :func:`isinstance` " -"and :func:`issubclass` on them 1.5x faster. This also reduces Python start-" -"up time by up to 10%. (Contributed by Ivan Levkivskyi and INADA Naoki " -"in :issue:`31333`)" +"makes creation of abstract base classes, and calling :func:`isinstance` and :" +"func:`issubclass` on them 1.5x faster. This also reduces Python start-up " +"time by up to 10%. (Contributed by Ivan Levkivskyi and INADA Naoki in :issue:" +"`31333`)" msgstr "" -#: ../../whatsnew/3.7.rst:1887 msgid "" -"Significant speed improvements to alternate constructors " -"for :class:`datetime.date` and :class:`datetime.datetime` by using fast-path " +"Significant speed improvements to alternate constructors for :class:" +"`datetime.date` and :class:`datetime.datetime` by using fast-path " "constructors when not constructing subclasses. (Contributed by Paul Ganssle " "in :issue:`32403`)" msgstr "" -#: ../../whatsnew/3.7.rst:1892 msgid "" "The speed of comparison of :class:`array.array` instances has been improved " "considerably in certain cases. It is now from 10x to 70x faster when " @@ -2774,57 +2314,48 @@ msgid "" "Adrian Wielgosik in :issue:`24700`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1897 msgid "" "The :func:`math.erf` and :func:`math.erfc` functions now use the (faster) C " "library implementation on most platforms. (Contributed by Serhiy Storchaka " "in :issue:`26121`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1903 msgid "Other CPython Implementation Changes" msgstr "" -#: ../../whatsnew/3.7.rst:1905 msgid "" "Trace hooks may now opt out of receiving the ``line`` and opt into receiving " -"the ``opcode`` events from the interpreter by setting the corresponding " -"new :attr:`~frame.f_trace_lines` and :attr:`~frame.f_trace_opcodes` " -"attributes on the frame being traced. (Contributed by Nick Coghlan " -"in :issue:`31344`.)" +"the ``opcode`` events from the interpreter by setting the corresponding new :" +"attr:`~frame.f_trace_lines` and :attr:`~frame.f_trace_opcodes` attributes on " +"the frame being traced. (Contributed by Nick Coghlan in :issue:`31344`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1910 msgid "" "Fixed some consistency problems with namespace package module attributes. " "Namespace module objects now have an ``__file__`` that is set to ``None`` " "(previously unset), and their ``__spec__.origin`` is also set to ``None`` " "(previously the string ``\"namespace\"``). See :issue:`32305`. Also, the " "namespace module object's ``__spec__.loader`` is set to the same value as " -"``__loader__`` (previously, the former was set to ``None``). " -"See :issue:`32303`." +"``__loader__`` (previously, the former was set to ``None``). See :issue:" +"`32303`." msgstr "" -#: ../../whatsnew/3.7.rst:1918 msgid "" "The :func:`locals` dictionary now displays in the lexical order that " "variables were defined. Previously, the order was undefined. (Contributed " "by Raymond Hettinger in :issue:`32690`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1922 msgid "" "The ``distutils`` ``upload`` command no longer tries to change CR end-of-" "line characters to CRLF. This fixes a corruption issue with sdists that " -"ended with a byte equivalent to CR. (Contributed by Bo Bayles " -"in :issue:`32304`.)" +"ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:" +"`32304`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1929 msgid "Deprecated Python Behavior" msgstr "" -#: ../../whatsnew/3.7.rst:1931 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "deprecated in comprehensions and generator expressions (aside from the " @@ -2838,47 +2369,39 @@ msgid "" "Storchaka in :issue:`10544`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1942 msgid "" "Returning a subclass of :class:`complex` from :meth:`object.__complex__` is " "deprecated and will be an error in future Python versions. This makes " -"``__complex__()`` consistent with :meth:`object.__int__` " -"and :meth:`object.__float__`. (Contributed by Serhiy Storchaka " -"in :issue:`28894`.)" +"``__complex__()`` consistent with :meth:`object.__int__` and :meth:`object." +"__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1951 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: ../../whatsnew/3.7.rst:1954 msgid "aifc" msgstr "" -#: ../../whatsnew/3.7.rst:1956 msgid "" ":func:`!aifc.openfp` has been deprecated and will be removed in Python 3.9. " -"Use :func:`!aifc.open` instead. (Contributed by Brian Curtin " -"in :issue:`31985`.)" +"Use :func:`!aifc.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1966 msgid "" "Support for directly ``await``-ing instances of :class:`asyncio.Lock` and " "other asyncio synchronization primitives has been deprecated. An " "asynchronous context manager must be used in order to acquire and release " -"the synchronization resource. (Contributed by Andrew Svetlov " -"in :issue:`32253`.)" +"the synchronization resource. (Contributed by Andrew Svetlov in :issue:" +"`32253`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1972 msgid "" "The :meth:`!asyncio.Task.current_task` and :meth:`!asyncio.Task.all_tasks` " -"methods have been deprecated. (Contributed by Andrew Svetlov " -"in :issue:`32250`.)" +"methods have been deprecated. (Contributed by Andrew Svetlov in :issue:" +"`32250`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1980 msgid "" "In Python 3.8, the abstract base classes in :mod:`collections.abc` will no " "longer be exposed in the regular :mod:`collections` module. This will help " @@ -2886,7 +2409,6 @@ msgid "" "base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" msgstr "" -#: ../../whatsnew/3.7.rst:1990 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed. A deprecation warning is now emitted " @@ -2895,152 +2417,125 @@ msgid "" "Storchaka in :issue:`28847`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2000 msgid "" -"In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " -"classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " -"attempting to check for non-Flag objects in a :class:`Flag` member will " -"raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " -"return :const:`False` instead. (Contributed by Ethan Furman " -"in :issue:`33217`.)" +"In Python 3.8, attempting to check for non-Enum objects in :class:`~enum." +"Enum` classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); " +"similarly, attempting to check for non-Flag objects in a :class:`~enum.Flag` " +"member will raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both " +"operations return :const:`False` instead. (Contributed by Ethan Furman in :" +"issue:`33217`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2009 msgid "gettext" msgstr "" -#: ../../whatsnew/3.7.rst:2011 msgid "" "Using non-integer value for selecting a plural form in :mod:`gettext` is now " -"deprecated. It never correctly worked. (Contributed by Serhiy Storchaka " -"in :issue:`28692`.)" +"deprecated. It never correctly worked. (Contributed by Serhiy Storchaka in :" +"issue:`28692`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2019 msgid "" -"Methods :meth:`!MetaPathFinder.find_module` (replaced " -"by :meth:`MetaPathFinder.find_spec() " -"`) and :meth:`!" -"PathEntryFinder.find_loader` (replaced by :meth:`PathEntryFinder.find_spec() " -"`) both deprecated in Python 3.4 " -"now emit :exc:`DeprecationWarning`. (Contributed by Matthias Bussonnier " -"in :issue:`29576`.)" +"Methods :meth:`!MetaPathFinder.find_module` (replaced by :meth:" +"`MetaPathFinder.find_spec() `) and :" +"meth:`!PathEntryFinder.find_loader` (replaced by :meth:`PathEntryFinder." +"find_spec() `) both deprecated in " +"Python 3.4 now emit :exc:`DeprecationWarning`. (Contributed by Matthias " +"Bussonnier in :issue:`29576`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2030 msgid "" "The :class:`importlib.abc.ResourceLoader` ABC has been deprecated in favour " "of :class:`importlib.abc.ResourceReader`." msgstr "" -#: ../../whatsnew/3.7.rst:2037 msgid "" -":func:`locale.format` has been deprecated, use :meth:`locale.format_string` " +":func:`!locale.format` has been deprecated, use :meth:`locale.format_string` " "instead. (Contributed by Garvit in :issue:`10379`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2042 msgid "macpath" msgstr "" -#: ../../whatsnew/3.7.rst:2044 msgid "" -"The :mod:`macpath` is now deprecated and will be removed in Python 3.8. " +"The :mod:`!macpath` is now deprecated and will be removed in Python 3.8. " "(Contributed by Chi Hsuan Yen in :issue:`9850`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2049 msgid "threading" msgstr "" -#: ../../whatsnew/3.7.rst:2051 msgid "" ":mod:`!dummy_threading` and :mod:`!_dummy_thread` have been deprecated. It " -"is no longer possible to build Python with threading disabled. " -"Use :mod:`threading` instead. (Contributed by Antoine Pitrou " -"in :issue:`31370`.)" +"is no longer possible to build Python with threading disabled. Use :mod:" +"`threading` instead. (Contributed by Antoine Pitrou in :issue:`31370`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2060 msgid "" -"The silent argument value truncation in :func:`socket.htons` " -"and :func:`socket.ntohs` has been deprecated. In future versions of Python, " -"if the passed argument is larger than 16 bits, an exception will be raised. " +"The silent argument value truncation in :func:`socket.htons` and :func:" +"`socket.ntohs` has been deprecated. In future versions of Python, if the " +"passed argument is larger than 16 bits, an exception will be raised. " "(Contributed by Oren Milman in :issue:`28332`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2069 msgid "" -":func:`ssl.wrap_socket` is deprecated. " -"Use :meth:`ssl.SSLContext.wrap_socket` instead. (Contributed by Christian " -"Heimes in :issue:`28124`.)" +":func:`!ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." +"wrap_socket` instead. (Contributed by Christian Heimes in :issue:`28124`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2075 msgid "sunau" msgstr "" -#: ../../whatsnew/3.7.rst:2077 msgid "" ":func:`!sunau.openfp` has been deprecated and will be removed in Python 3.9. " -"Use :func:`!sunau.open` instead. (Contributed by Brian Curtin " -"in :issue:`31985`.)" +"Use :func:`!sunau.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2085 msgid "" -"Deprecated :func:`sys.set_coroutine_wrapper` " -"and :func:`sys.get_coroutine_wrapper`." +"Deprecated :func:`!sys.set_coroutine_wrapper` and :func:`!sys." +"get_coroutine_wrapper`." msgstr "" -#: ../../whatsnew/3.7.rst:2088 msgid "" "The undocumented ``sys.callstats()`` function has been deprecated and will " -"be removed in a future Python version. (Contributed by Victor Stinner " -"in :issue:`28799`.)" +"be removed in a future Python version. (Contributed by Victor Stinner in :" +"issue:`28799`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2094 msgid "wave" msgstr "" -#: ../../whatsnew/3.7.rst:2096 msgid "" -":func:`wave.openfp` has been deprecated and will be removed in Python 3.9. " -"Use :func:`wave.open` instead. (Contributed by Brian Curtin " -"in :issue:`31985`.)" +":func:`!wave.openfp` has been deprecated and will be removed in Python 3.9. " +"Use :func:`wave.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2102 msgid "Deprecated functions and types of the C API" msgstr "" -#: ../../whatsnew/3.7.rst:2104 msgid "" "Function :c:func:`PySlice_GetIndicesEx` is deprecated and replaced with a " "macro if ``Py_LIMITED_API`` is not set or set to a value in the range " "between ``0x03050400`` and ``0x03060000`` (not inclusive), or is " -"``0x03060100`` or higher. (Contributed by Serhiy Storchaka " -"in :issue:`27867`.)" +"``0x03060100`` or higher. (Contributed by Serhiy Storchaka in :issue:" +"`27867`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2109 msgid "" -":c:func:`PyOS_AfterFork` has been deprecated. " -"Use :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` " -"or :c:func:`PyOS_AfterFork_Child()` instead. (Contributed by Antoine Pitrou " -"in :issue:`16500`.)" +":c:func:`PyOS_AfterFork` has been deprecated. Use :c:func:" +"`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` or :c:func:" +"`PyOS_AfterFork_Child()` instead. (Contributed by Antoine Pitrou in :issue:" +"`16500`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2117 msgid "Platform Support Removals" msgstr "" -#: ../../whatsnew/3.7.rst:2119 msgid "FreeBSD 9 and older are no longer officially supported." msgstr "" -#: ../../whatsnew/3.7.rst:2120 msgid "" "For full Unicode support, including within extension modules, \\*nix " "platforms are now expected to provide at least one of ``C.UTF-8`` (full " @@ -3048,7 +2543,6 @@ msgid "" "an alternative to the legacy ``ASCII``-based ``C`` locale." msgstr "" -#: ../../whatsnew/3.7.rst:2124 msgid "" "OpenSSL 0.9.8 and 1.0.1 are no longer supported, which means building " "CPython 3.7 with SSL/TLS support on older platforms still using these " @@ -3056,14 +2550,12 @@ msgid "" "OpenSSL." msgstr "" -#: ../../whatsnew/3.7.rst:2128 msgid "" "Notably, this issue affects the Debian 8 (aka \"jessie\") and Ubuntu 14.04 " "(aka \"Trusty\") LTS Linux distributions, as they still use OpenSSL 1.0.1 by " "default." msgstr "" -#: ../../whatsnew/3.7.rst:2132 msgid "" "Debian 9 (\"stretch\") and Ubuntu 16.04 (\"xenial\"), as well as recent " "releases of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), " @@ -3071,50 +2563,42 @@ msgid "" "configuration." msgstr "" -#: ../../whatsnew/3.7.rst:2136 msgid "" "CPython's own `CI configuration file `_ provides an example of using the " -"SSL :source:`compatibility testing infrastructure ` in CPython's test suite to build and link against OpenSSL " -"1.1.0 rather than an outdated system provided OpenSSL." +"v3.7.13/.travis.yml>`_ provides an example of using the SSL :source:" +"`compatibility testing infrastructure ` in " +"CPython's test suite to build and link against OpenSSL 1.1.0 rather than an " +"outdated system provided OpenSSL." msgstr "" -#: ../../whatsnew/3.7.rst:2145 msgid "API and Feature Removals" msgstr "" -#: ../../whatsnew/3.7.rst:2147 msgid "The following features and APIs have been removed from Python 3.7:" msgstr "" -#: ../../whatsnew/3.7.rst:2149 msgid "" "The ``os.stat_float_times()`` function has been removed. It was introduced " "in Python 2.3 for backward compatibility with Python 2.2, and was deprecated " "since Python 3.1." msgstr "" -#: ../../whatsnew/3.7.rst:2153 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in replacement " "templates for :func:`re.sub` were deprecated in Python 3.5, and will now " "cause an error." msgstr "" -#: ../../whatsnew/3.7.rst:2157 msgid "" "Removed support of the *exclude* argument in :meth:`tarfile.TarFile.add`. It " "was deprecated in Python 2.7 and 3.2. Use the *filter* argument instead." msgstr "" -#: ../../whatsnew/3.7.rst:2160 msgid "" "The :func:`!ntpath.splitunc` function was deprecated in Python 3.1, and has " "now been removed. Use :func:`~os.path.splitdrive` instead." msgstr "" -#: ../../whatsnew/3.7.rst:2164 msgid "" ":func:`collections.namedtuple` no longer supports the *verbose* parameter or " "``_source`` attribute which showed the generated source code for the named " @@ -3123,23 +2607,20 @@ msgid "" "Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2170 msgid "" "Functions :func:`bool`, :func:`float`, :func:`list` and :func:`tuple` no " "longer take keyword arguments. The first argument of :func:`int` can now be " "passed only as positional argument." msgstr "" -#: ../../whatsnew/3.7.rst:2174 msgid "" "Removed previously deprecated in Python 2.4 classes ``Plist``, ``Dict`` and " "``_InternalDict`` in the :mod:`plistlib` module. Dict values in the result " -"of functions :func:`~plistlib.readPlist` " -"and :func:`~plistlib.readPlistFromBytes` are now normal dicts. You no " -"longer can use attribute access to access items of these dictionaries." +"of functions :func:`!readPlist` and :func:`!readPlistFromBytes` are now " +"normal dicts. You no longer can use attribute access to access items of " +"these dictionaries." msgstr "" -#: ../../whatsnew/3.7.rst:2180 msgid "" "The ``asyncio.windows_utils.socketpair()`` function has been removed. Use " "the :func:`socket.socketpair` function instead, it is available on all " @@ -3147,33 +2628,28 @@ msgid "" "alias to ``socket.socketpair`` on Python 3.5 and newer." msgstr "" -#: ../../whatsnew/3.7.rst:2186 msgid "" ":mod:`asyncio` no longer exports the :mod:`selectors` and :mod:`!" "_overlapped` modules as ``asyncio.selectors`` and ``asyncio._overlapped``. " "Replace ``from asyncio import selectors`` with ``import selectors``." msgstr "" -#: ../../whatsnew/3.7.rst:2191 msgid "" "Direct instantiation of :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` " "objects is now prohibited. The constructors were never documented, tested, " -"or designed as public constructors. Users were supposed to " -"use :func:`ssl.wrap_socket` or :class:`ssl.SSLContext`. (Contributed by " -"Christian Heimes in :issue:`32951`.)" +"or designed as public constructors. Users were supposed to use :func:`!ssl." +"wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes " +"in :issue:`32951`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2197 msgid "" "The unused ``distutils`` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2202 msgid "Module Removals" msgstr "" -#: ../../whatsnew/3.7.rst:2204 msgid "" "The ``fpectl`` module has been removed. It was never enabled by default, " "never worked correctly on x86-64, and it changed the Python ABI in ways that " @@ -3181,11 +2657,9 @@ msgid "" "Smith in :issue:`29137`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2211 ../../whatsnew/3.7.rst:2487 msgid "Windows-only Changes" msgstr "" -#: ../../whatsnew/3.7.rst:2213 msgid "" "The python launcher, (py.exe), can accept 32 & 64 bit specifiers **without** " "having to specify a minor version as well. So ``py -3-32`` and ``py -3-64`` " @@ -3195,7 +2669,6 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30291`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2220 msgid "" "The launcher can be run as ``py -0`` to produce a list of the installed " "pythons, *with default marked with an asterisk*. Running ``py -0p`` will " @@ -3204,48 +2677,40 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30362`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2230 msgid "Porting to Python 3.7" msgstr "" -#: ../../whatsnew/3.7.rst:2232 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.7.rst:2237 msgid "Changes in Python Behavior" msgstr "" -#: ../../whatsnew/3.7.rst:2239 msgid "" ":keyword:`async` and :keyword:`await` names are now reserved keywords. Code " "using these names as identifiers will now raise a :exc:`SyntaxError`. " "(Contributed by Jelle Zijlstra in :issue:`30406`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2243 msgid "" -":pep:`479` is enabled for all code in Python 3.7, meaning " -"that :exc:`StopIteration` exceptions raised directly or indirectly in " -"coroutines and generators are transformed into :exc:`RuntimeError` " -"exceptions. (Contributed by Yury Selivanov in :issue:`32670`.)" +":pep:`479` is enabled for all code in Python 3.7, meaning that :exc:" +"`StopIteration` exceptions raised directly or indirectly in coroutines and " +"generators are transformed into :exc:`RuntimeError` exceptions. (Contributed " +"by Yury Selivanov in :issue:`32670`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2249 msgid "" ":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " "(Contributed by Yury Selivanov in :issue:`31709`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2252 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" -#: ../../whatsnew/3.7.rst:2255 msgid "" "f(1 for x in [1],)\n" "\n" @@ -3253,16 +2718,14 @@ msgid "" " pass" msgstr "" -#: ../../whatsnew/3.7.rst:2260 msgid "" "Python 3.7 now correctly raises a :exc:`SyntaxError`, as a generator " "expression always needs to be directly inside a set of parentheses and " "cannot have a comma on either side, and the duplication of the parentheses " -"can be omitted only on calls. (Contributed by Serhiy Storchaka " -"in :issue:`32012` and :issue:`32023`.)" +"can be omitted only on calls. (Contributed by Serhiy Storchaka in :issue:" +"`32012` and :issue:`32023`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2266 msgid "" "When using the :option:`-m` switch, the initial working directory is now " "added to :data:`sys.path`, rather than an empty string (which dynamically " @@ -3274,60 +2737,52 @@ msgid "" "place)." msgstr "" -#: ../../whatsnew/3.7.rst:2276 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.7.rst:2278 msgid "" -":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" -"daemon threads complete. Set the " +":meth:`socketserver.ThreadingMixIn.server_close ` now waits until all non-daemon threads complete. Set the " "new :attr:`socketserver.ThreadingMixIn.block_on_close` class attribute to " -"``False`` to get the pre-3.7 behaviour. (Contributed by Victor Stinner " -"in :issue:`31233` and :issue:`33540`.)" +"``False`` to get the pre-3.7 behaviour. (Contributed by Victor Stinner in :" +"issue:`31233` and :issue:`33540`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2284 msgid "" -":meth:`socketserver.ForkingMixIn.server_close` now waits until all child " -"processes complete. Set the " -"new :attr:`socketserver.ForkingMixIn.block_on_close` class attribute to " -"``False`` to get the pre-3.7 behaviour. (Contributed by Victor Stinner " -"in :issue:`31151` and :issue:`33540`.)" +":meth:`socketserver.ForkingMixIn.server_close ` now waits until all child processes complete. Set the new :" +"attr:`socketserver.ForkingMixIn.block_on_close ` class attribute to ``False`` to get the pre-3.7 behaviour. " +"(Contributed by Victor Stinner in :issue:`31151` and :issue:`33540`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2290 msgid "" "The :func:`locale.localeconv` function now temporarily sets the ``LC_CTYPE`` " "locale to the value of ``LC_NUMERIC`` in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2294 msgid "" ":meth:`pkgutil.walk_packages` now raises a :exc:`ValueError` if *path* is a " "string. Previously an empty list was returned. (Contributed by Sanyam " "Khurana in :issue:`24744`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2298 msgid "" -"A format string argument for :meth:`string.Formatter.format` is " -"now :ref:`positional-only `. Passing it as a " -"keyword argument was deprecated in Python 3.5. (Contributed by Serhiy " -"Storchaka in :issue:`29193`.)" +"A format string argument for :meth:`string.Formatter.format` is now :ref:" +"`positional-only `. Passing it as a keyword " +"argument was deprecated in Python 3.5. (Contributed by Serhiy Storchaka in :" +"issue:`29193`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2303 msgid "" -"Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel.value` " -"and :attr:`~http.cookies.Morsel.coded_value` of " -"class :class:`http.cookies.Morsel` are now read-only. Assigning to them was " -"deprecated in Python 3.5. Use the :meth:`~http.cookies.Morsel.set` method " -"for setting them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" +"Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." +"value` and :attr:`~http.cookies.Morsel.coded_value` of class :class:`http." +"cookies.Morsel` are now read-only. Assigning to them was deprecated in " +"Python 3.5. Use the :meth:`~http.cookies.Morsel.set` method for setting " +"them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2311 msgid "" "The *mode* argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly created intermediate-level directories. To set " @@ -3335,13 +2790,11 @@ msgid "" "``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2317 msgid "" -"The :attr:`struct.Struct.format` type is now :class:`str` instead " -"of :class:`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" +"The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" +"`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2320 msgid "" ":func:`!cgi.parse_multipart` now accepts the *encoding* and *errors* " "arguments and returns the same results as :class:`!FieldStorage`: for non-" @@ -3349,35 +2802,30 @@ msgid "" "(Contributed by Pierre Quentel in :issue:`29979`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2326 msgid "" "Due to internal changes in :mod:`socket`, calling :func:`socket.fromshare` " "on a socket created by :func:`socket.share ` in older " "Python versions is not supported." msgstr "" -#: ../../whatsnew/3.7.rst:2330 msgid "" "``repr`` for :exc:`BaseException` has changed to not include the trailing " "comma. Most exceptions are affected by this change. (Contributed by Serhiy " "Storchaka in :issue:`30399`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2334 msgid "" "``repr`` for :class:`datetime.timedelta` has changed to include the keyword " "arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2337 msgid "" -"Because :func:`shutil.rmtree` is now implemented using " -"the :func:`os.scandir` function, the user specified handler *onerror* is now " -"called with the first argument ``os.scandir`` instead of ``os.listdir`` when " -"listing the directory is failed." +"Because :func:`shutil.rmtree` is now implemented using the :func:`os." +"scandir` function, the user specified handler *onerror* is now called with " +"the first argument ``os.scandir`` instead of ``os.listdir`` when listing the " +"directory is failed." msgstr "" -#: ../../whatsnew/3.7.rst:2342 msgid "" "Support for nested sets and set operations in regular expressions as in " "`Unicode Technical Standard #18`_ might be added in the future. This would " @@ -3388,7 +2836,6 @@ msgid "" "with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2353 msgid "" "The result of splitting a string on a :mod:`regular expression ` that " "could match an empty string has been changed. For example splitting on " @@ -3399,7 +2846,6 @@ msgid "" "patterns since Python 3.5." msgstr "" -#: ../../whatsnew/3.7.rst:2362 msgid "" "For patterns that match both empty and non-empty strings, the result of " "searching for all matches may also be changed in other cases. For example " @@ -3409,7 +2855,6 @@ msgid "" "as ``r'(?m)^[^\\S\\n]*$'``." msgstr "" -#: ../../whatsnew/3.7.rst:2369 msgid "" ":func:`re.sub` now replaces empty matches adjacent to a previous non-empty " "match. For example ``re.sub('x*', '-', 'abxd')`` returns now ``'-a-b--d-'`` " @@ -3417,95 +2862,80 @@ msgid "" "and the second minus replaces an empty string between 'x' and 'd')." msgstr "" -#: ../../whatsnew/3.7.rst:2375 msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2377 msgid "" "Change :func:`re.escape` to only escape regex special characters instead of " "escaping all characters other than ASCII letters, numbers, and ``'_'``. " "(Contributed by Serhiy Storchaka in :issue:`29995`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2381 msgid "" ":class:`tracemalloc.Traceback` frames are now sorted from oldest to most " "recent to be more consistent with :mod:`traceback`. (Contributed by Jesse " "Bakker in :issue:`32121`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2385 msgid "" -"On OSes that support :const:`socket.SOCK_NONBLOCK` " -"or :const:`socket.SOCK_CLOEXEC` bit flags, the :attr:`socket.type " -"` no longer has them applied. Therefore, checks like " -"``if sock.type == socket.SOCK_STREAM`` work as expected on all platforms. " -"(Contributed by Yury Selivanov in :issue:`32331`.)" +"On OSes that support :const:`socket.SOCK_NONBLOCK` or :const:`socket." +"SOCK_CLOEXEC` bit flags, the :attr:`socket.type ` no " +"longer has them applied. Therefore, checks like ``if sock.type == socket." +"SOCK_STREAM`` work as expected on all platforms. (Contributed by Yury " +"Selivanov in :issue:`32331`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2392 msgid "" -"On Windows the default for the *close_fds* argument " -"of :class:`subprocess.Popen` was changed from :const:`False` " -"to :const:`True` when redirecting the standard handles. If you previously " -"depended on handles being inherited when using :class:`subprocess.Popen` " -"with standard io redirection, you will have to pass ``close_fds=False`` to " -"preserve the previous behaviour, or use :attr:`STARTUPINFO.lpAttributeList " -"`." +"On Windows the default for the *close_fds* argument of :class:`subprocess." +"Popen` was changed from :const:`False` to :const:`True` when redirecting the " +"standard handles. If you previously depended on handles being inherited when " +"using :class:`subprocess.Popen` with standard io redirection, you will have " +"to pass ``close_fds=False`` to preserve the previous behaviour, or use :attr:" +"`STARTUPINFO.lpAttributeList `." msgstr "" -#: ../../whatsnew/3.7.rst:2400 msgid "" ":meth:`importlib.machinery.PathFinder.invalidate_caches` -- which implicitly " -"affects :func:`importlib.invalidate_caches` -- now deletes entries " -"in :data:`sys.path_importer_cache` which are set to ``None``. (Contributed " -"by Brett Cannon in :issue:`33169`.)" +"affects :func:`importlib.invalidate_caches` -- now deletes entries in :data:" +"`sys.path_importer_cache` which are set to ``None``. (Contributed by Brett " +"Cannon in :issue:`33169`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2405 msgid "" -"In :mod:`asyncio`, :meth:`loop.sock_recv() " -"`, :meth:`loop.sock_sendall() " -"`, :meth:`loop.sock_accept() " -"`, :meth:`loop.getaddrinfo() " -"`, :meth:`loop.getnameinfo() " -"` have been changed to be proper coroutine methods " -"to match their documentation. Previously, these methods " -"returned :class:`asyncio.Future` instances. (Contributed by Yury Selivanov " -"in :issue:`32327`.)" +"In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" +"`loop.sock_sendall() `, :meth:`loop.sock_accept() " +"`, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` have " +"been changed to be proper coroutine methods to match their documentation. " +"Previously, these methods returned :class:`asyncio.Future` instances. " +"(Contributed by Yury Selivanov in :issue:`32327`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2416 msgid "" ":attr:`asyncio.Server.sockets` now returns a copy of the internal list of " "server sockets, instead of returning it directly. (Contributed by Yury " "Selivanov in :issue:`32662`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2420 msgid "" ":attr:`Struct.format ` is now a :class:`str` instance " -"instead of a :class:`bytes` instance. (Contributed by Victor Stinner " -"in :issue:`21071`.)" +"instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" +"issue:`21071`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2424 msgid "" ":mod:`argparse` subparsers can now be made mandatory by passing " -"``required=True`` to :meth:`ArgumentParser.add_subparsers() " -"`. (Contributed by Anthony Sottile " -"in :issue:`26510`.)" +"``required=True`` to :meth:`ArgumentParser.add_subparsers() `. (Contributed by Anthony Sottile in :issue:" +"`26510`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2428 msgid "" ":meth:`ast.literal_eval` is now stricter. Addition and subtraction of " "arbitrary numbers are no longer allowed. (Contributed by Serhiy Storchaka " "in :issue:`31778`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2432 msgid "" ":meth:`Calendar.itermonthdates ` will now " "consistently raise an exception when a date falls outside of the " @@ -3513,26 +2943,22 @@ msgid "" "cannot tolerate such exceptions, the new :meth:`Calendar.itermonthdays3 " "` and :meth:`Calendar.itermonthdays4 " "` can be used. The new methods return " -"tuples and are not restricted by the range supported " -"by :class:`datetime.date`. (Contributed by Alexander Belopolsky " -"in :issue:`28292`.)" +"tuples and are not restricted by the range supported by :class:`datetime." +"date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2442 msgid "" ":class:`collections.ChainMap` now preserves the order of the underlying " "mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2445 msgid "" "The ``submit()`` method of :class:`concurrent.futures.ThreadPoolExecutor` " -"and :class:`concurrent.futures.ProcessPoolExecutor` now raises " -"a :exc:`RuntimeError` if called during interpreter shutdown. (Contributed by " -"Mark Nemec in :issue:`33097`.)" +"and :class:`concurrent.futures.ProcessPoolExecutor` now raises a :exc:" +"`RuntimeError` if called during interpreter shutdown. (Contributed by Mark " +"Nemec in :issue:`33097`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2450 msgid "" "The :class:`configparser.ConfigParser` constructor now uses ``read_dict()`` " "to process the default values, making its behavior consistent with the rest " @@ -3541,59 +2967,50 @@ msgid "" "in :issue:`23835`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2456 msgid "" -"Several undocumented internal imports were removed. One example is that " -"``os.errno`` is no longer available; use ``import errno`` directly instead. " -"Note that such undocumented internal imports may be removed any time without " +"Several undocumented internal imports were removed. One example is that ``os." +"errno`` is no longer available; use ``import errno`` directly instead. Note " +"that such undocumented internal imports may be removed any time without " "notice, even in micro version releases." msgstr "" -#: ../../whatsnew/3.7.rst:2464 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.7.rst:2466 msgid "" "The function :c:func:`PySlice_GetIndicesEx` is considered unsafe for " -"resizable sequences. If the slice indices are not instances " -"of :class:`int`, but objects that implement the :meth:`!__index__` method, " -"the sequence can be resized after passing its length to :c:func:`!" +"resizable sequences. If the slice indices are not instances of :class:" +"`int`, but objects that implement the :meth:`!__index__` method, the " +"sequence can be resized after passing its length to :c:func:`!" "PySlice_GetIndicesEx`. This can lead to returning indices out of the length " -"of the sequence. For avoiding possible problems use new " -"functions :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`. " -"(Contributed by Serhiy Storchaka in :issue:`27867`.)" +"of the sequence. For avoiding possible problems use new functions :c:func:" +"`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`. (Contributed by Serhiy " +"Storchaka in :issue:`27867`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2477 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.7.rst:2479 msgid "" "There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`!CALL_METHOD`. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2482 msgid "" "The :opcode:`!STORE_ANNOTATION` opcode has been removed. (Contributed by " "Mark Shannon in :issue:`32550`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2489 msgid "" "The file used to override :data:`sys.path` is now called ``._pth`` instead of ``'sys.path'``. " -"See :ref:`windows_finding_modules` for more information. (Contributed by " -"Steve Dower in :issue:`28137`.)" +"executable>._pth`` instead of ``'sys.path'``. See :ref:" +"`windows_finding_modules` for more information. (Contributed by Steve Dower " +"in :issue:`28137`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2496 msgid "Other CPython implementation changes" msgstr "" -#: ../../whatsnew/3.7.rst:2498 msgid "" "In preparation for potential future changes to the public CPython runtime " "initialization API (see :pep:`432` for an initial, but somewhat outdated, " @@ -3608,31 +3025,27 @@ msgid "" "Stinner in a number of other issues). Some known details affected:" msgstr "" -#: ../../whatsnew/3.7.rst:2511 msgid "" ":c:func:`!PySys_AddWarnOptionUnicode` is not currently usable by embedding " "applications due to the requirement to create a Unicode object prior to " "calling ``Py_Initialize``. Use :c:func:`!PySys_AddWarnOption` instead." msgstr "" -#: ../../whatsnew/3.7.rst:2515 msgid "" "warnings filters added by an embedding application with :c:func:`!" "PySys_AddWarnOption` should now more consistently take precedence over the " "default filters set by the interpreter" msgstr "" -#: ../../whatsnew/3.7.rst:2519 msgid "" "Due to changes in the way the default warnings filters are configured, " "setting :c:data:`Py_BytesWarningFlag` to a value greater than one is no " "longer sufficient to both emit :exc:`BytesWarning` messages and have them " "converted to exceptions. Instead, the flag must be set (to cause the " -"warnings to be emitted in the first place), and an explicit " -"``error::BytesWarning`` warnings filter added to convert them to exceptions." +"warnings to be emitted in the first place), and an explicit ``error::" +"BytesWarning`` warnings filter added to convert them to exceptions." msgstr "" -#: ../../whatsnew/3.7.rst:2526 msgid "" "Due to a change in the way docstrings are handled by the compiler, the " "implicit ``return None`` in a function body consisting solely of a docstring " @@ -3640,7 +3053,6 @@ msgid "" "function's header line." msgstr "" -#: ../../whatsnew/3.7.rst:2531 msgid "" "The current exception state has been moved from the frame object to the co-" "routine. This simplified the interpreter and fixed a couple of obscure bugs " @@ -3648,29 +3060,24 @@ msgid "" "(Contributed by Mark Shannon in :issue:`25612`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2537 msgid "Notable changes in Python 3.7.1" msgstr "" -#: ../../whatsnew/3.7.rst:2539 msgid "" "Starting in 3.7.1, :c:func:`Py_Initialize` now consistently reads and " "respects all of the same environment settings as :c:func:`Py_Main` (in " "earlier Python versions, it respected an ill-defined subset of those " "environment variables, while in Python 3.7.0 it didn't read any of them due " -"to :issue:`34247`). If this behavior is unwanted, " -"set :c:data:`Py_IgnoreEnvironmentFlag` to 1 before " -"calling :c:func:`Py_Initialize`." +"to :issue:`34247`). If this behavior is unwanted, set :c:data:" +"`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." msgstr "" -#: ../../whatsnew/3.7.rst:2546 msgid "" "In 3.7.1 the C API for Context Variables :ref:`was updated " "` to use :c:type:`PyObject` " "pointers. See also :issue:`34762`." msgstr "" -#: ../../whatsnew/3.7.rst:2550 msgid "" "In 3.7.1 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " "when provided with input that does not have a trailing new line. This " @@ -3678,11 +3085,9 @@ msgid "" "Ammar Askar in :issue:`33899`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2556 msgid "Notable changes in Python 3.7.2" msgstr "" -#: ../../whatsnew/3.7.rst:2558 msgid "" "In 3.7.2, :mod:`venv` on Windows no longer copies the original binaries, but " "creates redirector scripts named ``python.exe`` and ``pythonw.exe`` instead. " @@ -3692,42 +3097,35 @@ msgid "" "to get the new scripts." msgstr "" -#: ../../whatsnew/3.7.rst:2566 msgid "Notable changes in Python 3.7.6" msgstr "" -#: ../../whatsnew/3.7.rst:2568 msgid "" -"Due to significant security concerns, the *reuse_address* parameter " -"of :meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. " -"This is because of the behavior of the socket option ``SO_REUSEADDR`` in " -"UDP. For more details, see the documentation for " -"``loop.create_datagram_endpoint()``. (Contributed by Kyle Stanley, Antoine " -"Pitrou, and Yury Selivanov in :issue:`37228`.)" +"Due to significant security concerns, the *reuse_address* parameter of :meth:" +"`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " +"because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " +"more details, see the documentation for ``loop.create_datagram_endpoint()``. " +"(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" +"`37228`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2576 msgid "Notable changes in Python 3.7.10" msgstr "" -#: ../../whatsnew/3.7.rst:2578 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " -"parameter separators in :func:`urllib.parse.parse_qs` " -"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " -"conform with newer W3C recommendations, this has been changed to allow only " -"a single separator key, with ``&`` as the default. This change also " -"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " -"affected functions internally. For more details, please see their respective " -"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " -"in :issue:`42967`.)" +"parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." +"parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " +"recommendations, this has been changed to allow only a single separator key, " +"with ``&`` as the default. This change also affects :func:`!cgi.parse` and :" +"func:`!cgi.parse_multipart` as they use the affected functions internally. " +"For more details, please see their respective documentation. (Contributed by " +"Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" -#: ../../whatsnew/3.7.rst:2589 msgid "Notable changes in Python 3.7.11" msgstr "" -#: ../../whatsnew/3.7.rst:2591 msgid "" "A security fix alters the :class:`ftplib.FTP` behavior to not trust the IPv4 " "address sent from the remote server when setting up a passive data channel. " @@ -3736,21 +3134,18 @@ msgid "" "instance to ``True``. (See :gh:`87451`)" msgstr "" -#: ../../whatsnew/3.7.rst:2598 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " "forms of attacks. Following the WHATWG specification that updates RFC 3986, " "ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are stripped from " "the URL by the parser :func:`urllib.parse` preventing such attacks. The " -"removal characters are controlled by a new module level variable " -"``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" +"removal characters are controlled by a new module level variable ``urllib." +"parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" -#: ../../whatsnew/3.7.rst:2606 msgid "Notable security feature in 3.7.14" msgstr "" -#: ../../whatsnew/3.7.rst:2608 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index 6ad73b4..b88e1c3 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" +"POT-Creation-Date: 2025-09-08 14:49-0300\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -18,182 +18,149 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/3.8.rst:3 msgid "What's New In Python 3.8" msgstr "" -#: ../../whatsnew/3.8.rst:0 msgid "Editor" msgstr "" -#: ../../whatsnew/3.8.rst:45 msgid "Raymond Hettinger" msgstr "" -#: ../../whatsnew/3.8.rst:47 msgid "" "This article explains the new features in Python 3.8, compared to 3.7. " -"Python 3.8 was released on October 14, 2019. For full details, see " -"the :ref:`changelog `." +"Python 3.8 was released on October 14, 2019. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.8.rst:61 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.8.rst:72 msgid "New Features" msgstr "" -#: ../../whatsnew/3.8.rst:75 msgid "Assignment expressions" msgstr "" -#: ../../whatsnew/3.8.rst:77 msgid "" "There is new syntax ``:=`` that assigns values to variables as part of a " "larger expression. It is affectionately known as \"the walrus operator\" due " -"to its resemblance to `the eyes and tusks of a walrus `_." +"to its resemblance to `the eyes and tusks of a walrus `_." msgstr "" -#: ../../whatsnew/3.8.rst:82 msgid "" "In this example, the assignment expression helps avoid calling :func:`len` " "twice::" msgstr "" -#: ../../whatsnew/3.8.rst:85 msgid "" "if (n := len(a)) > 10:\n" " print(f\"List is too long ({n} elements, expected <= 10)\")" msgstr "" -#: ../../whatsnew/3.8.rst:88 msgid "" "A similar benefit arises during regular expression matching where match " "objects are needed twice, once to test whether a match occurred and another " "to extract a subgroup::" msgstr "" -#: ../../whatsnew/3.8.rst:92 msgid "" "discount = 0.0\n" "if (mo := re.search(r'(\\d+)% discount', advertisement)):\n" " discount = float(mo.group(1)) / 100.0" msgstr "" -#: ../../whatsnew/3.8.rst:96 msgid "" "The operator is also useful with while-loops that compute a value to test " "loop termination and then need that same value again in the body of the " "loop::" msgstr "" -#: ../../whatsnew/3.8.rst:100 msgid "" "# Loop over fixed length blocks\n" "while (block := f.read(256)) != '':\n" " process(block)" msgstr "" -#: ../../whatsnew/3.8.rst:104 msgid "" "Another motivating use case arises in list comprehensions where a value " "computed in a filtering condition is also needed in the expression body::" msgstr "" -#: ../../whatsnew/3.8.rst:108 msgid "" "[clean_name.title() for name in names\n" " if (clean_name := normalize('NFC', name)) in allowed_names]" msgstr "" -#: ../../whatsnew/3.8.rst:111 msgid "" "Try to limit use of the walrus operator to clean cases that reduce " "complexity and improve readability." msgstr "" -#: ../../whatsnew/3.8.rst:114 msgid "See :pep:`572` for a full description." msgstr "" -#: ../../whatsnew/3.8.rst:116 msgid "(Contributed by Emily Morehouse in :issue:`35224`.)" msgstr "" -#: ../../whatsnew/3.8.rst:120 msgid "Positional-only parameters" msgstr "" -#: ../../whatsnew/3.8.rst:122 msgid "" "There is a new function parameter syntax ``/`` to indicate that some " "function parameters must be specified positionally and cannot be used as " "keyword arguments. This is the same notation shown by ``help()`` for C " -"functions annotated with Larry Hastings' `Argument Clinic `__ tool." +"functions annotated with Larry Hastings' `Argument Clinic `__ tool." msgstr "" -#: ../../whatsnew/3.8.rst:128 msgid "" "In the following example, parameters *a* and *b* are positional-only, while " "*c* or *d* can be positional or keyword, and *e* or *f* are required to be " "keywords::" msgstr "" -#: ../../whatsnew/3.8.rst:132 msgid "" "def f(a, b, /, c, d, *, e, f):\n" " print(a, b, c, d, e, f)" msgstr "" -#: ../../whatsnew/3.8.rst:135 msgid "The following is a valid call::" msgstr "" -#: ../../whatsnew/3.8.rst:137 msgid "f(10, 20, 30, d=40, e=50, f=60)" msgstr "" -#: ../../whatsnew/3.8.rst:139 msgid "However, these are invalid calls::" msgstr "" -#: ../../whatsnew/3.8.rst:141 msgid "" "f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument\n" "f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument" msgstr "" -#: ../../whatsnew/3.8.rst:144 msgid "" "One use case for this notation is that it allows pure Python functions to " "fully emulate behaviors of existing C coded functions. For example, the " "built-in :func:`divmod` function does not accept keyword arguments::" msgstr "" -#: ../../whatsnew/3.8.rst:148 msgid "" "def divmod(a, b, /):\n" " \"Emulate the built in divmod() function\"\n" " return (a // b, a % b)" msgstr "" -#: ../../whatsnew/3.8.rst:152 msgid "" "Another use case is to preclude keyword arguments when the parameter name is " "not helpful. For example, the builtin :func:`len` function has the " "signature ``len(obj, /)``. This precludes awkward calls such as::" msgstr "" -#: ../../whatsnew/3.8.rst:156 msgid "len(obj='hello') # The \"obj\" keyword argument impairs readability" msgstr "" -#: ../../whatsnew/3.8.rst:158 msgid "" "A further benefit of marking a parameter as positional-only is that it " "allows the parameter name to be changed in the future without risk of " @@ -202,19 +169,16 @@ msgid "" "with the following function specification::" msgstr "" -#: ../../whatsnew/3.8.rst:164 msgid "" "def quantiles(dist, /, *, n=4, method='exclusive')\n" " ..." msgstr "" -#: ../../whatsnew/3.8.rst:167 msgid "" "Since the parameters to the left of ``/`` are not exposed as possible " "keywords, the parameters names remain available for use in ``**kwargs``::" msgstr "" -#: ../../whatsnew/3.8.rst:170 msgid "" ">>> def f(a, b, /, **kwargs):\n" "... print(a, b, kwargs)\n" @@ -223,14 +187,12 @@ msgid "" "10 20 {'a': 1, 'b': 2, 'c': 3}" msgstr "" -#: ../../whatsnew/3.8.rst:176 msgid "" "This greatly simplifies the implementation of functions and methods that " "need to accept arbitrary keyword arguments. For example, here is an excerpt " "from code in the :mod:`collections` module::" msgstr "" -#: ../../whatsnew/3.8.rst:180 msgid "" "class Counter(dict):\n" "\n" @@ -238,19 +200,15 @@ msgid "" " # Note \"iterable\" is a possible keyword argument" msgstr "" -#: ../../whatsnew/3.8.rst:185 msgid "See :pep:`570` for a full description." msgstr "" -#: ../../whatsnew/3.8.rst:187 msgid "(Contributed by Pablo Galindo in :issue:`36540`.)" msgstr "" -#: ../../whatsnew/3.8.rst:193 msgid "Parallel filesystem cache for compiled bytecode files" msgstr "" -#: ../../whatsnew/3.8.rst:195 msgid "" "The new :envvar:`PYTHONPYCACHEPREFIX` setting (also available as :option:`-" "X` ``pycache_prefix``) configures the implicit bytecode cache to use a " @@ -258,40 +216,33 @@ msgid "" "subdirectories within each source directory." msgstr "" -#: ../../whatsnew/3.8.rst:201 msgid "" -"The location of the cache is reported in :data:`sys.pycache_prefix` " -"(:const:`None` indicates the default location in ``__pycache__`` " -"subdirectories)." +"The location of the cache is reported in :data:`sys.pycache_prefix` (:const:" +"`None` indicates the default location in ``__pycache__`` subdirectories)." msgstr "" -#: ../../whatsnew/3.8.rst:205 msgid "(Contributed by Carl Meyer in :issue:`33499`.)" msgstr "" -#: ../../whatsnew/3.8.rst:209 msgid "Debug build uses the same ABI as release build" msgstr "" -#: ../../whatsnew/3.8.rst:211 msgid "" "Python now uses the same ABI whether it's built in release or debug mode. On " "Unix, when Python is built in debug mode, it is now possible to load C " "extensions built in release mode and C extensions built using the stable ABI." msgstr "" -#: ../../whatsnew/3.8.rst:215 msgid "" "Release builds and :ref:`debug builds ` are now ABI compatible: " "defining the ``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` " "macro, which introduces the only ABI incompatibility. The ``Py_TRACE_REFS`` " -"macro, which adds the :func:`sys.getobjects` function and " -"the :envvar:`PYTHONDUMPREFS` environment variable, can be set using the " -"new :option:`./configure --with-trace-refs <--with-trace-refs>` build " -"option. (Contributed by Victor Stinner in :issue:`36465`.)" +"macro, which adds the :func:`sys.getobjects` function and the :envvar:" +"`PYTHONDUMPREFS` environment variable, can be set using the new :option:`./" +"configure --with-trace-refs <--with-trace-refs>` build option. (Contributed " +"by Victor Stinner in :issue:`36465`.)" msgstr "" -#: ../../whatsnew/3.8.rst:223 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin. It is now possible for a statically linked Python to load a C " @@ -299,14 +250,12 @@ msgid "" "Stinner in :issue:`21536`.)" msgstr "" -#: ../../whatsnew/3.8.rst:230 msgid "" "On Unix, when Python is built in debug mode, import now also looks for C " "extensions compiled in release mode and for C extensions compiled with the " "stable ABI. (Contributed by Victor Stinner in :issue:`36722`.)" msgstr "" -#: ../../whatsnew/3.8.rst:235 msgid "" "To embed Python into an application, a new ``--embed`` option must be passed " "to ``python3-config --libs --embed`` to get ``-lpython3.8`` (link the " @@ -315,7 +264,6 @@ msgid "" "(without ``--embed``) if the previous command fails." msgstr "" -#: ../../whatsnew/3.8.rst:241 msgid "" "Add a pkg-config ``python-3.8-embed`` module to embed Python into an " "application: ``pkg-config python-3.8-embed --libs`` includes ``-" @@ -325,60 +273,50 @@ msgid "" "the Python version)." msgstr "" -#: ../../whatsnew/3.8.rst:247 msgid "" "On the other hand, ``pkg-config python3.8 --libs`` no longer contains ``-" "lpython3.8``. C extensions must not be linked to libpython (except on " "Android and Cygwin, whose cases are handled by the script); this change is " -"backward incompatible on purpose. (Contributed by Victor Stinner " -"in :issue:`36721`.)" +"backward incompatible on purpose. (Contributed by Victor Stinner in :issue:" +"`36721`.)" msgstr "" -#: ../../whatsnew/3.8.rst:256 msgid "f-strings support ``=`` for self-documenting expressions and debugging" msgstr "" -#: ../../whatsnew/3.8.rst:258 msgid "" "Added an ``=`` specifier to :term:`f-string`\\s. An f-string such as " "``f'{expr=}'`` will expand to the text of the expression, an equal sign, " "then the representation of the evaluated expression. For example:" msgstr "" -#: ../../whatsnew/3.8.rst:267 msgid "" "The usual :ref:`f-string format specifiers ` allow more control " "over how the result of the expression is displayed::" msgstr "" -#: ../../whatsnew/3.8.rst:270 msgid "" ">>> delta = date.today() - member_since\n" ">>> f'{user=!s} {delta.days=:,d}'\n" "'user=eric_idle delta.days=16,075'" msgstr "" -#: ../../whatsnew/3.8.rst:274 msgid "" "The ``=`` specifier will display the whole expression so that calculations " "can be shown::" msgstr "" -#: ../../whatsnew/3.8.rst:277 msgid "" ">>> print(f'{theta=} {cos(radians(theta))=:.3f}')\n" "theta=30 cos(radians(theta))=0.866" msgstr "" -#: ../../whatsnew/3.8.rst:280 msgid "(Contributed by Eric V. Smith and Larry Hastings in :issue:`36817`.)" msgstr "" -#: ../../whatsnew/3.8.rst:284 msgid "PEP 578: Python Runtime Audit Hooks" msgstr "" -#: ../../whatsnew/3.8.rst:286 msgid "" "The PEP adds an Audit Hook and Verified Open Hook. Both are available from " "Python and native code, allowing applications and frameworks written in pure " @@ -387,150 +325,114 @@ msgid "" "is always enabled." msgstr "" -#: ../../whatsnew/3.8.rst:292 msgid "See :pep:`578` for full details." msgstr "" -#: ../../whatsnew/3.8.rst:296 msgid "PEP 587: Python Initialization Configuration" msgstr "" -#: ../../whatsnew/3.8.rst:298 msgid "" "The :pep:`587` adds a new C API to configure the Python Initialization " "providing finer control on the whole configuration and better error " "reporting." msgstr "" -#: ../../whatsnew/3.8.rst:301 msgid "New structures:" msgstr "" -#: ../../whatsnew/3.8.rst:303 msgid ":c:type:`PyConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:304 msgid ":c:type:`PyPreConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:305 msgid ":c:type:`PyStatus`" msgstr "" -#: ../../whatsnew/3.8.rst:306 msgid ":c:type:`PyWideStringList`" msgstr "" -#: ../../whatsnew/3.8.rst:308 msgid "New functions:" msgstr "" -#: ../../whatsnew/3.8.rst:310 msgid ":c:func:`PyConfig_Clear`" msgstr "" -#: ../../whatsnew/3.8.rst:311 msgid ":c:func:`PyConfig_InitIsolatedConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:312 msgid ":c:func:`PyConfig_InitPythonConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:313 msgid ":c:func:`PyConfig_Read`" msgstr "" -#: ../../whatsnew/3.8.rst:314 msgid ":c:func:`PyConfig_SetArgv`" msgstr "" -#: ../../whatsnew/3.8.rst:315 msgid ":c:func:`PyConfig_SetBytesArgv`" msgstr "" -#: ../../whatsnew/3.8.rst:316 msgid ":c:func:`PyConfig_SetBytesString`" msgstr "" -#: ../../whatsnew/3.8.rst:317 msgid ":c:func:`PyConfig_SetString`" msgstr "" -#: ../../whatsnew/3.8.rst:318 msgid ":c:func:`PyPreConfig_InitIsolatedConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:319 msgid ":c:func:`PyPreConfig_InitPythonConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:320 msgid ":c:func:`PyStatus_Error`" msgstr "" -#: ../../whatsnew/3.8.rst:321 msgid ":c:func:`PyStatus_Exception`" msgstr "" -#: ../../whatsnew/3.8.rst:322 msgid ":c:func:`PyStatus_Exit`" msgstr "" -#: ../../whatsnew/3.8.rst:323 msgid ":c:func:`PyStatus_IsError`" msgstr "" -#: ../../whatsnew/3.8.rst:324 msgid ":c:func:`PyStatus_IsExit`" msgstr "" -#: ../../whatsnew/3.8.rst:325 msgid ":c:func:`PyStatus_NoMemory`" msgstr "" -#: ../../whatsnew/3.8.rst:326 msgid ":c:func:`PyStatus_Ok`" msgstr "" -#: ../../whatsnew/3.8.rst:327 msgid ":c:func:`PyWideStringList_Append`" msgstr "" -#: ../../whatsnew/3.8.rst:328 msgid ":c:func:`PyWideStringList_Insert`" msgstr "" -#: ../../whatsnew/3.8.rst:329 msgid ":c:func:`Py_BytesMain`" msgstr "" -#: ../../whatsnew/3.8.rst:330 msgid ":c:func:`Py_ExitStatusException`" msgstr "" -#: ../../whatsnew/3.8.rst:331 msgid ":c:func:`Py_InitializeFromConfig`" msgstr "" -#: ../../whatsnew/3.8.rst:332 msgid ":c:func:`Py_PreInitialize`" msgstr "" -#: ../../whatsnew/3.8.rst:333 msgid ":c:func:`Py_PreInitializeFromArgs`" msgstr "" -#: ../../whatsnew/3.8.rst:334 msgid ":c:func:`Py_PreInitializeFromBytesArgs`" msgstr "" -#: ../../whatsnew/3.8.rst:335 msgid ":c:func:`Py_RunMain`" msgstr "" -#: ../../whatsnew/3.8.rst:337 msgid "" "This PEP also adds ``_PyRuntimeState.preconfig`` (:c:type:`PyPreConfig` " "type) and ``PyInterpreterState.config`` (:c:type:`PyConfig` type) fields to " @@ -539,53 +441,42 @@ msgid "" "private variables." msgstr "" -#: ../../whatsnew/3.8.rst:343 msgid "" "See :ref:`Python Initialization Configuration ` for the " "documentation." msgstr "" -#: ../../whatsnew/3.8.rst:346 msgid "See :pep:`587` for a full description." msgstr "" -#: ../../whatsnew/3.8.rst:348 msgid "(Contributed by Victor Stinner in :issue:`36763`.)" msgstr "" -#: ../../whatsnew/3.8.rst:352 msgid "PEP 590: Vectorcall: a fast calling protocol for CPython" msgstr "" -#: ../../whatsnew/3.8.rst:354 msgid "" ":ref:`vectorcall` is added to the Python/C API. It is meant to formalize " -"existing optimizations which were already done for various classes. " -"Any :ref:`static type ` implementing a callable can use this " -"protocol." +"existing optimizations which were already done for various classes. Any :ref:" +"`static type ` implementing a callable can use this protocol." msgstr "" -#: ../../whatsnew/3.8.rst:360 msgid "" "This is currently provisional. The aim is to make it fully public in Python " "3.9." msgstr "" -#: ../../whatsnew/3.8.rst:363 msgid "See :pep:`590` for a full description." msgstr "" -#: ../../whatsnew/3.8.rst:365 msgid "" -"(Contributed by Jeroen Demeyer, Mark Shannon and Petr Viktorin " -"in :issue:`36974`.)" +"(Contributed by Jeroen Demeyer, Mark Shannon and Petr Viktorin in :issue:" +"`36974`.)" msgstr "" -#: ../../whatsnew/3.8.rst:369 msgid "Pickle protocol 5 with out-of-band data buffers" msgstr "" -#: ../../whatsnew/3.8.rst:371 msgid "" "When :mod:`pickle` is used to transfer large data between Python processes " "in order to take advantage of multi-core or multi-machine processing, it is " @@ -593,58 +484,49 @@ msgid "" "by applying custom techniques such as data-dependent compression." msgstr "" -#: ../../whatsnew/3.8.rst:376 msgid "" "The :mod:`pickle` protocol 5 introduces support for out-of-band buffers " "where :pep:`3118`-compatible data can be transmitted separately from the " "main pickle stream, at the discretion of the communication layer." msgstr "" -#: ../../whatsnew/3.8.rst:380 msgid "See :pep:`574` for a full description." msgstr "" -#: ../../whatsnew/3.8.rst:382 msgid "(Contributed by Antoine Pitrou in :issue:`36785`.)" msgstr "" -#: ../../whatsnew/3.8.rst:386 msgid "Other Language Changes" msgstr "" -#: ../../whatsnew/3.8.rst:388 msgid "" "A :keyword:`continue` statement was illegal in the :keyword:`finally` clause " "due to a problem with the implementation. In Python 3.8 this restriction " "was lifted. (Contributed by Serhiy Storchaka in :issue:`32489`.)" msgstr "" -#: ../../whatsnew/3.8.rst:393 msgid "" "The :class:`bool`, :class:`int`, and :class:`fractions.Fraction` types now " -"have an :meth:`~int.as_integer_ratio` method like that found " -"in :class:`float` and :class:`decimal.Decimal`. This minor API extension " -"makes it possible to write ``numerator, denominator = x.as_integer_ratio()`` " -"and have it work across multiple numeric types. (Contributed by Lisa Roach " -"in :issue:`33073` and Raymond Hettinger in :issue:`37819`.)" +"have an :meth:`~int.as_integer_ratio` method like that found in :class:" +"`float` and :class:`decimal.Decimal`. This minor API extension makes it " +"possible to write ``numerator, denominator = x.as_integer_ratio()`` and have " +"it work across multiple numeric types. (Contributed by Lisa Roach in :issue:" +"`33073` and Raymond Hettinger in :issue:`37819`.)" msgstr "" -#: ../../whatsnew/3.8.rst:401 msgid "" "Constructors of :class:`int`, :class:`float` and :class:`complex` will now " "use the :meth:`~object.__index__` special method, if available and the " -"corresponding method :meth:`~object.__int__`, :meth:`~object.__float__` " -"or :meth:`~object.__complex__` is not available. (Contributed by Serhiy " +"corresponding method :meth:`~object.__int__`, :meth:`~object.__float__` or :" +"meth:`~object.__complex__` is not available. (Contributed by Serhiy " "Storchaka in :issue:`20092`.)" msgstr "" -#: ../../whatsnew/3.8.rst:407 msgid "" "Added support of :samp:`\\\\N\\\\{{name}\\\\}` escapes in :mod:`regular " "expressions `::" msgstr "" -#: ../../whatsnew/3.8.rst:409 msgid "" ">>> notice = 'Copyright © 2019'\n" ">>> copyright_year_pattern = re.compile(r'\\N{copyright sign}\\s*(\\d{4})')\n" @@ -652,34 +534,29 @@ msgid "" "2019" msgstr "" -#: ../../whatsnew/3.8.rst:414 msgid "" "(Contributed by Jonathan Eunice and Serhiy Storchaka in :issue:`30688`.)" msgstr "" -#: ../../whatsnew/3.8.rst:416 msgid "" -"Dict and dictviews are now iterable in reversed insertion order " -"using :func:`reversed`. (Contributed by Rémi Lapeyre in :issue:`33462`.)" +"Dict and dictviews are now iterable in reversed insertion order using :func:" +"`reversed`. (Contributed by Rémi Lapeyre in :issue:`33462`.)" msgstr "" -#: ../../whatsnew/3.8.rst:419 msgid "" "The syntax allowed for keyword names in function calls was further " "restricted. In particular, ``f((keyword)=arg)`` is no longer allowed. It was " "never intended to permit more than a bare name on the left-hand side of a " -"keyword argument assignment term. (Contributed by Benjamin Peterson " -"in :issue:`34641`.)" +"keyword argument assignment term. (Contributed by Benjamin Peterson in :" +"issue:`34641`.)" msgstr "" -#: ../../whatsnew/3.8.rst:425 msgid "" "Generalized iterable unpacking in :keyword:`yield` and :keyword:`return` " "statements no longer requires enclosing parentheses. This brings the *yield* " "and *return* syntax into better agreement with normal assignment syntax::" msgstr "" -#: ../../whatsnew/3.8.rst:430 msgid "" ">>> def parse(family):\n" "... lastname, *members = family.split()\n" @@ -689,11 +566,9 @@ msgid "" "('SIMPSONS', 'homer', 'marge', 'bart', 'lisa', 'maggie')" msgstr "" -#: ../../whatsnew/3.8.rst:437 msgid "(Contributed by David Cuthbert and Jordan Chapman in :issue:`32117`.)" msgstr "" -#: ../../whatsnew/3.8.rst:439 msgid "" "When a comma is missed in code such as ``[(10, 20) (30, 40)]``, the compiler " "displays a :exc:`SyntaxWarning` with a helpful suggestion. This improves on " @@ -701,18 +576,15 @@ msgid "" "callable. (Contributed by Serhiy Storchaka in :issue:`15248`.)" msgstr "" -#: ../../whatsnew/3.8.rst:445 msgid "" -"Arithmetic operations between subclasses of :class:`datetime.date` " -"or :class:`datetime.datetime` and :class:`datetime.timedelta` objects now " -"return an instance of the subclass, rather than the base class. This also " -"affects the return type of operations whose implementation (directly or " -"indirectly) uses :class:`datetime.timedelta` arithmetic, such " -"as :meth:`~datetime.datetime.astimezone`. (Contributed by Paul Ganssle " -"in :issue:`32417`.)" +"Arithmetic operations between subclasses of :class:`datetime.date` or :class:" +"`datetime.datetime` and :class:`datetime.timedelta` objects now return an " +"instance of the subclass, rather than the base class. This also affects the " +"return type of operations whose implementation (directly or indirectly) " +"uses :class:`datetime.timedelta` arithmetic, such as :meth:`~datetime." +"datetime.astimezone`. (Contributed by Paul Ganssle in :issue:`32417`.)" msgstr "" -#: ../../whatsnew/3.8.rst:453 msgid "" "When the Python interpreter is interrupted by Ctrl-C (SIGINT) and the " "resulting :exc:`KeyboardInterrupt` exception is not caught, the Python " @@ -722,23 +594,20 @@ msgid "" "sessions. (Contributed by Google via Gregory P. Smith in :issue:`1054041`.)" msgstr "" -#: ../../whatsnew/3.8.rst:460 msgid "" -"Some advanced styles of programming require updating " -"the :class:`types.CodeType` object for an existing function. Since code " -"objects are immutable, a new code object needs to be created, one that is " -"modeled on the existing code object. With 19 parameters, this was somewhat " -"tedious. Now, the new ``replace()`` method makes it possible to create a " -"clone with a few altered parameters." +"Some advanced styles of programming require updating the :class:`types." +"CodeType` object for an existing function. Since code objects are " +"immutable, a new code object needs to be created, one that is modeled on the " +"existing code object. With 19 parameters, this was somewhat tedious. Now, " +"the new ``replace()`` method makes it possible to create a clone with a few " +"altered parameters." msgstr "" -#: ../../whatsnew/3.8.rst:467 msgid "" "Here's an example that alters the :func:`statistics.mean` function to " "prevent the *data* parameter from being used as a keyword argument::" msgstr "" -#: ../../whatsnew/3.8.rst:470 msgid "" ">>> from statistics import mean\n" ">>> mean(data=[10, 20, 90])\n" @@ -751,11 +620,9 @@ msgid "" "arguments: 'data'" msgstr "" -#: ../../whatsnew/3.8.rst:479 msgid "(Contributed by Victor Stinner in :issue:`37032`.)" msgstr "" -#: ../../whatsnew/3.8.rst:481 msgid "" "For integers, the three-argument form of the :func:`pow` function now " "permits the exponent to be negative in the case where the base is relatively " @@ -766,7 +633,6 @@ msgid "" "38 modulo 137, write::" msgstr "" -#: ../../whatsnew/3.8.rst:490 msgid "" ">>> pow(38, -1, 137)\n" "119\n" @@ -774,7 +640,6 @@ msgid "" "1" msgstr "" -#: ../../whatsnew/3.8.rst:495 msgid "" "Modular inverses arise in the solution of `linear Diophantine equations " "`_. For example, to find " @@ -782,17 +647,14 @@ msgid "" "(mod 147)`` then solve:" msgstr "" -#: ../../whatsnew/3.8.rst:505 msgid "(Contributed by Mark Dickinson in :issue:`36027`.)" msgstr "" -#: ../../whatsnew/3.8.rst:507 msgid "" "Dict comprehensions have been synced-up with dict literals so that the key " "is computed first and the value second::" msgstr "" -#: ../../whatsnew/3.8.rst:510 msgid "" ">>> # Dict comprehension\n" ">>> cast = {input('role? '): input('actor? ') for i in range(2)}\n" @@ -807,14 +669,12 @@ msgid "" "actor? Eric Idle" msgstr "" -#: ../../whatsnew/3.8.rst:522 msgid "" "The guaranteed execution order is helpful with assignment expressions " "because variables assigned in the key expression will be available in the " "value expression::" msgstr "" -#: ../../whatsnew/3.8.rst:526 msgid "" ">>> names = ['Martin von Löwis', 'Łukasz Langa', 'Walter Dörwald']\n" ">>> {(n := normalize('NFC', name)).casefold() : n for name in names}\n" @@ -823,33 +683,28 @@ msgid "" " 'walter dörwald': 'Walter Dörwald'}" msgstr "" -#: ../../whatsnew/3.8.rst:532 msgid "(Contributed by Jörn Heissler in :issue:`35224`.)" msgstr "" -#: ../../whatsnew/3.8.rst:534 msgid "" "The :meth:`object.__reduce__` method can now return a tuple from two to six " "elements long. Formerly, five was the limit. The new, optional sixth " "element is a callable with a ``(obj, state)`` signature. This allows the " "direct control over the state-updating behavior of a specific object. If " -"not *None*, this callable will have priority over the " -"object's :meth:`~__setstate__` method. (Contributed by Pierre Glaser and " -"Olivier Grisel in :issue:`35900`.)" +"not *None*, this callable will have priority over the object's :meth:" +"`~object.__setstate__` method. (Contributed by Pierre Glaser and Olivier " +"Grisel in :issue:`35900`.)" msgstr "" -#: ../../whatsnew/3.8.rst:543 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.8.rst:545 msgid "" "The new :mod:`importlib.metadata` module provides (provisional) support for " "reading metadata from third-party packages. For example, it can extract an " "installed package's version number, list of entry points, and more::" msgstr "" -#: ../../whatsnew/3.8.rst:549 msgid "" ">>> # Note following example requires that the popular \"requests\"\n" ">>> # package has been installed.\n" @@ -867,74 +722,60 @@ msgid "" " PackagePath('requests-2.22.0.dist-info/WHEEL')]" msgstr "" -#: ../../whatsnew/3.8.rst:564 msgid "(Contributed by Barry Warsaw and Jason R. Coombs in :issue:`34632`.)" msgstr "" -#: ../../whatsnew/3.8.rst:568 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.8.rst:571 msgid "ast" msgstr "" -#: ../../whatsnew/3.8.rst:573 msgid "" "AST nodes now have ``end_lineno`` and ``end_col_offset`` attributes, which " "give the precise location of the end of the node. (This only applies to " "nodes that have ``lineno`` and ``col_offset`` attributes.)" msgstr "" -#: ../../whatsnew/3.8.rst:577 msgid "" "New function :func:`ast.get_source_segment` returns the source code for a " "specific AST node." msgstr "" -#: ../../whatsnew/3.8.rst:580 msgid "(Contributed by Ivan Levkivskyi in :issue:`33416`.)" msgstr "" -#: ../../whatsnew/3.8.rst:582 msgid "The :func:`ast.parse` function has some new flags:" msgstr "" -#: ../../whatsnew/3.8.rst:584 msgid "" -"``type_comments=True`` causes it to return the text of :pep:`484` " -"and :pep:`526` type comments associated with certain AST nodes;" +"``type_comments=True`` causes it to return the text of :pep:`484` and :pep:" +"`526` type comments associated with certain AST nodes;" msgstr "" -#: ../../whatsnew/3.8.rst:587 msgid "" "``mode='func_type'`` can be used to parse :pep:`484` \"signature type " "comments\" (returned for function definition AST nodes);" msgstr "" -#: ../../whatsnew/3.8.rst:590 msgid "" "``feature_version=(3, N)`` allows specifying an earlier Python 3 version. " -"For example, ``feature_version=(3, 4)`` will treat :keyword:`async` " -"and :keyword:`await` as non-reserved words." +"For example, ``feature_version=(3, 4)`` will treat :keyword:`async` and :" +"keyword:`await` as non-reserved words." msgstr "" -#: ../../whatsnew/3.8.rst:594 msgid "(Contributed by Guido van Rossum in :issue:`35766`.)" msgstr "" -#: ../../whatsnew/3.8.rst:598 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.8.rst:600 msgid "" ":func:`asyncio.run` has graduated from the provisional to stable API. This " "function can be used to execute a :term:`coroutine` and return the result " "while automatically managing the event loop. For example::" msgstr "" -#: ../../whatsnew/3.8.rst:604 msgid "" "import asyncio\n" "\n" @@ -945,11 +786,9 @@ msgid "" "asyncio.run(main())" msgstr "" -#: ../../whatsnew/3.8.rst:612 msgid "This is *roughly* equivalent to::" msgstr "" -#: ../../whatsnew/3.8.rst:614 msgid "" "import asyncio\n" "\n" @@ -966,18 +805,14 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.8.rst:629 msgid "" -"The actual implementation is significantly more complex. " -"Thus, :func:`asyncio.run` should be the preferred way of running asyncio " -"programs." +"The actual implementation is significantly more complex. Thus, :func:" +"`asyncio.run` should be the preferred way of running asyncio programs." msgstr "" -#: ../../whatsnew/3.8.rst:632 msgid "(Contributed by Yury Selivanov in :issue:`32314`.)" msgstr "" -#: ../../whatsnew/3.8.rst:634 msgid "" "Running ``python -m asyncio`` launches a natively async REPL. This allows " "rapid experimentation with code that has a top-level :keyword:`await`. " @@ -985,7 +820,6 @@ msgid "" "spawn a new event loop on every invocation:" msgstr "" -#: ../../whatsnew/3.8.rst:639 msgid "" "$ python -m asyncio\n" "asyncio REPL 3.8.0\n" @@ -997,56 +831,47 @@ msgid "" "hello" msgstr "" -#: ../../whatsnew/3.8.rst:649 msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" msgstr "" -#: ../../whatsnew/3.8.rst:651 ../../whatsnew/3.8.rst:1970 msgid "" -"The exception :class:`asyncio.CancelledError` now inherits " -"from :class:`BaseException` rather than :class:`Exception` and no longer " -"inherits from :class:`concurrent.futures.CancelledError`. (Contributed by " -"Yury Selivanov in :issue:`32528`.)" +"The exception :class:`asyncio.CancelledError` now inherits from :class:" +"`BaseException` rather than :class:`Exception` and no longer inherits from :" +"class:`concurrent.futures.CancelledError`. (Contributed by Yury Selivanov " +"in :issue:`32528`.)" msgstr "" -#: ../../whatsnew/3.8.rst:656 msgid "" -"On Windows, the default event loop is " -"now :class:`~asyncio.ProactorEventLoop`. (Contributed by Victor Stinner " -"in :issue:`34687`.)" +"On Windows, the default event loop is now :class:`~asyncio." +"ProactorEventLoop`. (Contributed by Victor Stinner in :issue:`34687`.)" msgstr "" -#: ../../whatsnew/3.8.rst:659 msgid "" ":class:`~asyncio.ProactorEventLoop` now also supports UDP. (Contributed by " "Adam Meily and Andrew Svetlov in :issue:`29883`.)" msgstr "" -#: ../../whatsnew/3.8.rst:662 msgid "" -":class:`~asyncio.ProactorEventLoop` can now be interrupted " -"by :exc:`KeyboardInterrupt` (\"CTRL+C\"). (Contributed by Vladimir Matveev " -"in :issue:`23057`.)" +":class:`~asyncio.ProactorEventLoop` can now be interrupted by :exc:" +"`KeyboardInterrupt` (\"CTRL+C\"). (Contributed by Vladimir Matveev in :issue:" +"`23057`.)" msgstr "" -#: ../../whatsnew/3.8.rst:666 msgid "" "Added :meth:`asyncio.Task.get_coro` for getting the wrapped coroutine within " "an :class:`asyncio.Task`. (Contributed by Alex Grönholm in :issue:`36999`.)" msgstr "" -#: ../../whatsnew/3.8.rst:670 msgid "" "Asyncio tasks can now be named, either by passing the ``name`` keyword " -"argument to :func:`asyncio.create_task` or " -"the :meth:`~asyncio.loop.create_task` event loop method, or by calling " -"the :meth:`~asyncio.Task.set_name` method on the task object. The task name " -"is visible in the ``repr()`` output of :class:`asyncio.Task` and can also be " -"retrieved using the :meth:`~asyncio.Task.get_name` method. (Contributed by " -"Alex Grönholm in :issue:`34270`.)" +"argument to :func:`asyncio.create_task` or the :meth:`~asyncio.loop." +"create_task` event loop method, or by calling the :meth:`~asyncio.Task." +"set_name` method on the task object. The task name is visible in the " +"``repr()`` output of :class:`asyncio.Task` and can also be retrieved using " +"the :meth:`~asyncio.Task.get_name` method. (Contributed by Alex Grönholm in :" +"issue:`34270`.)" msgstr "" -#: ../../whatsnew/3.8.rst:678 msgid "" "Added support for `Happy Eyeballs `_ to :func:`asyncio.loop.create_connection`. To specify the " @@ -1056,46 +881,39 @@ msgid "" "connect using both. (Contributed by twisteroid ambassador in :issue:`33530`.)" msgstr "" -#: ../../whatsnew/3.8.rst:688 msgid "builtins" msgstr "" -#: ../../whatsnew/3.8.rst:690 msgid "" -"The :func:`compile` built-in has been improved to accept the " -"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag. With this new flag " -"passed, :func:`compile` will allow top-level ``await``, ``async for`` and " -"``async with`` constructs that are usually considered invalid syntax. " -"Asynchronous code object marked with the ``CO_COROUTINE`` flag may then be " -"returned. (Contributed by Matthias Bussonnier in :issue:`34616`)" +"The :func:`compile` built-in has been improved to accept the ``ast." +"PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag. With this new flag passed, :func:" +"`compile` will allow top-level ``await``, ``async for`` and ``async with`` " +"constructs that are usually considered invalid syntax. Asynchronous code " +"object marked with the ``CO_COROUTINE`` flag may then be returned. " +"(Contributed by Matthias Bussonnier in :issue:`34616`)" msgstr "" -#: ../../whatsnew/3.8.rst:699 msgid "collections" msgstr "" -#: ../../whatsnew/3.8.rst:701 msgid "" -"The :meth:`~collections.somenamedtuple._asdict` method " -"for :func:`collections.namedtuple` now returns a :class:`dict` instead of " -"a :class:`collections.OrderedDict`. This works because regular dicts have " -"guaranteed ordering since Python 3.7. If the extra features " -"of :class:`OrderedDict` are required, the suggested remediation is to cast " -"the result to the desired type: ``OrderedDict(nt._asdict())``. (Contributed " -"by Raymond Hettinger in :issue:`35864`.)" +"The :meth:`~collections.somenamedtuple._asdict` method for :func:" +"`collections.namedtuple` now returns a :class:`dict` instead of a :class:" +"`collections.OrderedDict`. This works because regular dicts have guaranteed " +"ordering since Python 3.7. If the extra features of :class:`OrderedDict` are " +"required, the suggested remediation is to cast the result to the desired " +"type: ``OrderedDict(nt._asdict())``. (Contributed by Raymond Hettinger in :" +"issue:`35864`.)" msgstr "" -#: ../../whatsnew/3.8.rst:711 msgid "cProfile" msgstr "" -#: ../../whatsnew/3.8.rst:713 msgid "" "The :class:`cProfile.Profile ` class can now be used as a " "context manager. Profile a block of code by running::" msgstr "" -#: ../../whatsnew/3.8.rst:716 msgid "" "import cProfile\n" "\n" @@ -1104,15 +922,12 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.8.rst:722 msgid "(Contributed by Scott Sanderson in :issue:`29235`.)" msgstr "" -#: ../../whatsnew/3.8.rst:726 msgid "csv" msgstr "" -#: ../../whatsnew/3.8.rst:728 msgid "" "The :class:`csv.DictReader` now returns instances of :class:`dict` instead " "of a :class:`collections.OrderedDict`. The tool is now faster and uses less " @@ -1120,58 +935,47 @@ msgid "" "in :issue:`34003`.)" msgstr "" -#: ../../whatsnew/3.8.rst:735 msgid "curses" msgstr "" -#: ../../whatsnew/3.8.rst:737 msgid "" "Added a new variable holding structured version information for the " "underlying ncurses library: :data:`~curses.ncurses_version`. (Contributed by " "Serhiy Storchaka in :issue:`31680`.)" msgstr "" -#: ../../whatsnew/3.8.rst:743 msgid "ctypes" msgstr "" -#: ../../whatsnew/3.8.rst:745 msgid "" "On Windows, :class:`~ctypes.CDLL` and subclasses now accept a *winmode* " "parameter to specify flags for the underlying ``LoadLibraryEx`` call. The " "default flags are set to only load DLL dependencies from trusted locations, " "including the path where the DLL is stored (if a full or partial path is " -"used to load the initial DLL) and paths added " -"by :func:`~os.add_dll_directory`. (Contributed by Steve Dower " -"in :issue:`36085`.)" +"used to load the initial DLL) and paths added by :func:`~os." +"add_dll_directory`. (Contributed by Steve Dower in :issue:`36085`.)" msgstr "" -#: ../../whatsnew/3.8.rst:754 msgid "datetime" msgstr "" -#: ../../whatsnew/3.8.rst:756 msgid "" -"Added new alternate constructors :meth:`datetime.date.fromisocalendar` " -"and :meth:`datetime.datetime.fromisocalendar`, which " -"construct :class:`~datetime.date` and :class:`~datetime.datetime` objects " -"respectively from ISO year, week number, and weekday; these are the inverse " -"of each class's ``isocalendar`` method. (Contributed by Paul Ganssle " -"in :issue:`36004`.)" +"Added new alternate constructors :meth:`datetime.date.fromisocalendar` and :" +"meth:`datetime.datetime.fromisocalendar`, which construct :class:`~datetime." +"date` and :class:`~datetime.datetime` objects respectively from ISO year, " +"week number, and weekday; these are the inverse of each class's " +"``isocalendar`` method. (Contributed by Paul Ganssle in :issue:`36004`.)" msgstr "" -#: ../../whatsnew/3.8.rst:764 msgid "functools" msgstr "" -#: ../../whatsnew/3.8.rst:766 msgid "" ":func:`functools.lru_cache` can now be used as a straight decorator rather " "than as a function returning a decorator. So both of these are now " "supported::" msgstr "" -#: ../../whatsnew/3.8.rst:769 msgid "" "@lru_cache\n" "def f(x):\n" @@ -1182,17 +986,14 @@ msgid "" " ..." msgstr "" -#: ../../whatsnew/3.8.rst:777 msgid "(Contributed by Raymond Hettinger in :issue:`36772`.)" msgstr "" -#: ../../whatsnew/3.8.rst:779 msgid "" "Added a new :func:`functools.cached_property` decorator, for computed " "properties cached for the life of the instance. ::" msgstr "" -#: ../../whatsnew/3.8.rst:782 msgid "" "import functools\n" "import statistics\n" @@ -1206,18 +1007,15 @@ msgid "" " return statistics.variance(self.data)" msgstr "" -#: ../../whatsnew/3.8.rst:793 msgid "(Contributed by Carl Meyer in :issue:`21145`)" msgstr "" -#: ../../whatsnew/3.8.rst:796 msgid "" "Added a new :func:`functools.singledispatchmethod` decorator that converts " -"methods into :term:`generic functions ` " -"using :term:`single dispatch`::" +"methods into :term:`generic functions ` using :term:" +"`single dispatch`::" msgstr "" -#: ../../whatsnew/3.8.rst:800 msgid "" "from functools import singledispatchmethod\n" "from contextlib import suppress\n" @@ -1238,53 +1036,43 @@ msgid "" " self.tasks = [x for x in self.tasks if x not in targets]" msgstr "" -#: ../../whatsnew/3.8.rst:818 msgid "(Contributed by Ethan Smith in :issue:`32380`)" msgstr "" -#: ../../whatsnew/3.8.rst:821 msgid "gc" msgstr "" -#: ../../whatsnew/3.8.rst:823 msgid "" ":func:`~gc.get_objects` can now receive an optional *generation* parameter " "indicating a generation to get objects from. (Contributed by Pablo Galindo " "in :issue:`36016`.)" msgstr "" -#: ../../whatsnew/3.8.rst:829 msgid "gettext" msgstr "" -#: ../../whatsnew/3.8.rst:831 msgid "" "Added :func:`~gettext.pgettext` and its variants. (Contributed by Franz " "Glasner, Éric Araujo, and Cheryl Sabella in :issue:`2504`.)" msgstr "" -#: ../../whatsnew/3.8.rst:836 msgid "gzip" msgstr "" -#: ../../whatsnew/3.8.rst:838 msgid "" "Added the *mtime* parameter to :func:`gzip.compress` for reproducible " "output. (Contributed by Guo Ci Teo in :issue:`34898`.)" msgstr "" -#: ../../whatsnew/3.8.rst:841 msgid "" "A :exc:`~gzip.BadGzipFile` exception is now raised instead of :exc:`OSError` " "for certain types of invalid or corrupt gzip files. (Contributed by Filip " "Gruszczyński, Michele Orrù, and Zackery Spytz in :issue:`6584`.)" msgstr "" -#: ../../whatsnew/3.8.rst:848 msgid "IDLE and idlelib" msgstr "" -#: ../../whatsnew/3.8.rst:850 msgid "" "Output over N lines (50 by default) is squeezed down to a button. N can be " "changed in the PyShell section of the General page of the Settings dialog. " @@ -1294,7 +1082,6 @@ msgid "" "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" -#: ../../whatsnew/3.8.rst:857 msgid "" "Add \"Run Customized\" to the Run menu to run a module with customized " "settings. Any command line arguments entered are added to sys.argv. They " @@ -1303,16 +1090,14 @@ msgid "" "Sabella, Terry Jan Reedy, and others in :issue:`5680` and :issue:`37627`.)" msgstr "" -#: ../../whatsnew/3.8.rst:863 msgid "" "Added optional line numbers for IDLE editor windows. Windows open without " "line numbers unless set otherwise in the General tab of the configuration " "dialog. Line numbers for an existing window are shown and hidden in the " -"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar " -"in :issue:`17535`.)" +"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" +"`17535`.)" msgstr "" -#: ../../whatsnew/3.8.rst:869 msgid "" "OS native encoding is now used for converting between Python strings and Tcl " "objects. This allows IDLE to work with emoji and other non-BMP characters. " @@ -1322,37 +1107,30 @@ msgid "" "solved by Serhiy Storchaka in :issue:`13153`.)" msgstr "" -#: ../../whatsnew/3.8.rst:876 msgid "New in 3.8.1:" msgstr "" -#: ../../whatsnew/3.8.rst:878 msgid "" -"Add option to toggle cursor blink off. (Contributed by Zackery Spytz " -"in :issue:`4603`.)" +"Add option to toggle cursor blink off. (Contributed by Zackery Spytz in :" +"issue:`4603`.)" msgstr "" -#: ../../whatsnew/3.8.rst:881 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" msgstr "" -#: ../../whatsnew/3.8.rst:884 msgid "The changes above have been backported to 3.7 maintenance releases." msgstr "" -#: ../../whatsnew/3.8.rst:886 msgid "" "Add keywords to module name completion list. (Contributed by Terry J. Reedy " "in :issue:`37765`.)" msgstr "" -#: ../../whatsnew/3.8.rst:890 msgid "inspect" msgstr "" -#: ../../whatsnew/3.8.rst:892 msgid "" "The :func:`inspect.getdoc` function can now find docstrings for " "``__slots__`` if that attribute is a :class:`dict` where the values are " @@ -1360,7 +1138,6 @@ msgid "" "have for :func:`property`, :func:`classmethod`, and :func:`staticmethod`::" msgstr "" -#: ../../whatsnew/3.8.rst:897 msgid "" "class AudioClip:\n" " __slots__ = {'bit_rate': 'expressed in kilohertz to one decimal place',\n" @@ -1370,15 +1147,12 @@ msgid "" " self.duration = ceil(duration)" msgstr "" -#: ../../whatsnew/3.8.rst:904 msgid "(Contributed by Raymond Hettinger in :issue:`36326`.)" msgstr "" -#: ../../whatsnew/3.8.rst:908 msgid "io" msgstr "" -#: ../../whatsnew/3.8.rst:910 msgid "" "In development mode (:option:`-X` ``env``) and in :ref:`debug build `, the :class:`io.IOBase` finalizer now logs the exception if the " @@ -1386,42 +1160,34 @@ msgid "" "release build. (Contributed by Victor Stinner in :issue:`18748`.)" msgstr "" -#: ../../whatsnew/3.8.rst:917 msgid "itertools" msgstr "" -#: ../../whatsnew/3.8.rst:919 msgid "" "The :func:`itertools.accumulate` function added an option *initial* keyword " "argument to specify an initial value::" msgstr "" -#: ../../whatsnew/3.8.rst:922 msgid "" ">>> from itertools import accumulate\n" ">>> list(accumulate([10, 5, 30, 15], initial=1000))\n" "[1000, 1010, 1015, 1045, 1060]" msgstr "" -#: ../../whatsnew/3.8.rst:926 msgid "(Contributed by Lisa Roach in :issue:`34659`.)" msgstr "" -#: ../../whatsnew/3.8.rst:930 msgid "json.tool" msgstr "" -#: ../../whatsnew/3.8.rst:932 msgid "" "Add option ``--json-lines`` to parse every input line as a separate JSON " "object. (Contributed by Weipeng Hong in :issue:`31553`.)" msgstr "" -#: ../../whatsnew/3.8.rst:937 msgid "logging" msgstr "" -#: ../../whatsnew/3.8.rst:939 msgid "" "Added a *force* keyword argument to :func:`logging.basicConfig`. When set to " "true, any existing handlers attached to the root logger are removed and " @@ -1429,7 +1195,6 @@ msgid "" "arguments." msgstr "" -#: ../../whatsnew/3.8.rst:944 msgid "" "This solves a long-standing problem. Once a logger or *basicConfig()* had " "been called, subsequent calls to *basicConfig()* were silently ignored. This " @@ -1437,37 +1202,31 @@ msgid "" "configuration options using the interactive prompt or a Jupyter notebook." msgstr "" -#: ../../whatsnew/3.8.rst:950 msgid "" "(Suggested by Raymond Hettinger, implemented by Donghee Na, and reviewed by " "Vinay Sajip in :issue:`33897`.)" msgstr "" -#: ../../whatsnew/3.8.rst:955 msgid "math" msgstr "" -#: ../../whatsnew/3.8.rst:957 msgid "" "Added new function :func:`math.dist` for computing Euclidean distance " "between two points. (Contributed by Raymond Hettinger in :issue:`33089`.)" msgstr "" -#: ../../whatsnew/3.8.rst:960 msgid "" "Expanded the :func:`math.hypot` function to handle multiple dimensions. " "Formerly, it only supported the 2-D case. (Contributed by Raymond Hettinger " "in :issue:`33089`.)" msgstr "" -#: ../../whatsnew/3.8.rst:964 msgid "" "Added new function, :func:`math.prod`, as analogous function to :func:`sum` " "that returns the product of a 'start' value (default: 1) times an iterable " "of numbers::" msgstr "" -#: ../../whatsnew/3.8.rst:968 msgid "" ">>> prior = 0.8\n" ">>> likelihoods = [0.625, 0.84, 0.30]\n" @@ -1475,17 +1234,14 @@ msgid "" "0.126" msgstr "" -#: ../../whatsnew/3.8.rst:973 msgid "(Contributed by Pablo Galindo in :issue:`35606`.)" msgstr "" -#: ../../whatsnew/3.8.rst:975 msgid "" -"Added two new combinatoric functions :func:`math.perm` " -"and :func:`math.comb`::" +"Added two new combinatoric functions :func:`math.perm` and :func:`math." +"comb`::" msgstr "" -#: ../../whatsnew/3.8.rst:977 msgid "" ">>> math.perm(10, 3) # Permutations of 10 things taken 3 at a time\n" "720\n" @@ -1493,13 +1249,11 @@ msgid "" "120" msgstr "" -#: ../../whatsnew/3.8.rst:982 msgid "" "(Contributed by Yash Aggarwal, Keller Fuchs, Serhiy Storchaka, and Raymond " "Hettinger in :issue:`37128`, :issue:`37178`, and :issue:`35431`.)" msgstr "" -#: ../../whatsnew/3.8.rst:985 msgid "" "Added a new function :func:`math.isqrt` for computing accurate integer " "square roots without conversion to floating point. The new function " @@ -1507,7 +1261,6 @@ msgid "" "but slower than :func:`math.sqrt`::" msgstr "" -#: ../../whatsnew/3.8.rst:990 msgid "" ">>> r = 650320427\n" ">>> s = r ** 2\n" @@ -1517,138 +1270,119 @@ msgid "" "650320427" msgstr "" -#: ../../whatsnew/3.8.rst:997 msgid "(Contributed by Mark Dickinson in :issue:`36887`.)" msgstr "" -#: ../../whatsnew/3.8.rst:999 msgid "" "The function :func:`math.factorial` no longer accepts arguments that are not " "int-like. (Contributed by Pablo Galindo in :issue:`33083`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1004 msgid "mmap" msgstr "" -#: ../../whatsnew/3.8.rst:1006 msgid "" "The :class:`mmap.mmap` class now has an :meth:`~mmap.mmap.madvise` method to " -"access the ``madvise()`` system call. (Contributed by Zackery Spytz " -"in :issue:`32941`.)" +"access the ``madvise()`` system call. (Contributed by Zackery Spytz in :" +"issue:`32941`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1012 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.8.rst:1014 msgid "" "Added new :mod:`multiprocessing.shared_memory` module. (Contributed by Davin " "Potts in :issue:`35813`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1017 msgid "" "On macOS, the *spawn* start method is now used by default. (Contributed by " "Victor Stinner in :issue:`33725`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1022 msgid "os" msgstr "" -#: ../../whatsnew/3.8.rst:1024 msgid "" "Added new function :func:`~os.add_dll_directory` on Windows for providing " "additional search paths for native dependencies when importing extension " -"modules or loading DLLs using :mod:`ctypes`. (Contributed by Steve Dower " -"in :issue:`36085`.)" +"modules or loading DLLs using :mod:`ctypes`. (Contributed by Steve Dower in :" +"issue:`36085`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1029 msgid "" "A new :func:`os.memfd_create` function was added to wrap the " "``memfd_create()`` syscall. (Contributed by Zackery Spytz and Christian " "Heimes in :issue:`26836`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1033 msgid "" "On Windows, much of the manual logic for handling reparse points (including " "symlinks and directory junctions) has been delegated to the operating " "system. Specifically, :func:`os.stat` will now traverse anything supported " "by the operating system, while :func:`os.lstat` will only open reparse " -"points that identify as \"name surrogates\" while others are opened as " -"for :func:`os.stat`. In all cases, :attr:`stat_result.st_mode` will only " -"have ``S_IFLNK`` set for symbolic links and not other kinds of reparse " -"points. To identify other kinds of reparse point, check the " -"new :attr:`stat_result.st_reparse_tag` attribute." +"points that identify as \"name surrogates\" while others are opened as for :" +"func:`os.stat`. In all cases, :attr:`os.stat_result.st_mode` will only have " +"``S_IFLNK`` set for symbolic links and not other kinds of reparse points. To " +"identify other kinds of reparse point, check the new :attr:`os.stat_result." +"st_reparse_tag` attribute." msgstr "" -#: ../../whatsnew/3.8.rst:1042 msgid "" "On Windows, :func:`os.readlink` is now able to read directory junctions. " "Note that :func:`~os.path.islink` will return ``False`` for directory " "junctions, and so code that checks ``islink`` first will continue to treat " -"junctions as directories, while code that handles errors " -"from :func:`os.readlink` may now treat junctions as links." +"junctions as directories, while code that handles errors from :func:`os." +"readlink` may now treat junctions as links." msgstr "" -#: ../../whatsnew/3.8.rst:1048 ../../whatsnew/3.8.rst:1073 msgid "(Contributed by Steve Dower in :issue:`37834`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1052 msgid "os.path" msgstr "" -#: ../../whatsnew/3.8.rst:1054 msgid "" -":mod:`os.path` functions that return a boolean result " -"like :func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :func:`~os.path.isfile`, :func:`~os.path.islink`, " -"and :func:`~os.path.ismount` now return ``False`` instead of " -"raising :exc:`ValueError` or its subclasses :exc:`UnicodeEncodeError` " -"and :exc:`UnicodeDecodeError` for paths that contain characters or bytes " -"unrepresentable at the OS level. (Contributed by Serhiy Storchaka " -"in :issue:`33721`.)" +":mod:`os.path` functions that return a boolean result like :func:`~os.path." +"exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :func:`~os.path." +"isfile`, :func:`~os.path.islink`, and :func:`~os.path.ismount` now return " +"``False`` instead of raising :exc:`ValueError` or its subclasses :exc:" +"`UnicodeEncodeError` and :exc:`UnicodeDecodeError` for paths that contain " +"characters or bytes unrepresentable at the OS level. (Contributed by Serhiy " +"Storchaka in :issue:`33721`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1062 ../../whatsnew/3.8.rst:1965 msgid "" ":func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE` " "environment variable and does not use :envvar:`HOME`, which is not normally " -"set for regular user accounts. (Contributed by Anthony Sottile " -"in :issue:`36264`.)" +"set for regular user accounts. (Contributed by Anthony Sottile in :issue:" +"`36264`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1067 msgid "" ":func:`~os.path.isdir` on Windows no longer returns ``True`` for a link to a " "non-existent directory." msgstr "" -#: ../../whatsnew/3.8.rst:1070 msgid "" ":func:`~os.path.realpath` on Windows now resolves reparse points, including " "symlinks and directory junctions." msgstr "" -#: ../../whatsnew/3.8.rst:1077 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.8.rst:1079 msgid "" -":mod:`pathlib.Path` methods that return a boolean result " -"like :meth:`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path.is_file`, :meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`, :meth:`~pathlib.Path.is_block_device`, :meth:`~pathlib.Path.is_char_device`, :meth:`~pathlib.Path.is_fifo`, :meth:`~pathlib.Path.is_socket` " -"now return ``False`` instead of raising :exc:`ValueError` or its " -"subclass :exc:`UnicodeEncodeError` for paths that contain characters " -"unrepresentable at the OS level. (Contributed by Serhiy Storchaka " -"in :issue:`33721`.)" +":mod:`pathlib.Path` methods that return a boolean result like :meth:" +"`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path." +"is_file`, :meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`, :" +"meth:`~pathlib.Path.is_block_device`, :meth:`~pathlib.Path.is_char_device`, :" +"meth:`~pathlib.Path.is_fifo`, :meth:`~pathlib.Path.is_socket` now return " +"``False`` instead of raising :exc:`ValueError` or its subclass :exc:" +"`UnicodeEncodeError` for paths that contain characters unrepresentable at " +"the OS level. (Contributed by Serhiy Storchaka in :issue:`33721`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1089 msgid "" "Added :meth:`!pathlib.Path.link_to` which creates a hard link pointing to a " "path. (Contributed by Joannah Nanjekye in :issue:`26978`) Note that " @@ -1657,35 +1391,28 @@ msgid "" "existing ``symlink_to`` method." msgstr "" -#: ../../whatsnew/3.8.rst:1098 msgid "pickle" msgstr "" -#: ../../whatsnew/3.8.rst:1100 msgid "" -":mod:`pickle` extensions subclassing the C-" -"optimized :class:`~pickle.Pickler` can now override the pickling logic of " -"functions and classes by defining the " -"special :meth:`~pickle.Pickler.reducer_override` method. (Contributed by " -"Pierre Glaser and Olivier Grisel in :issue:`35900`.)" +":mod:`pickle` extensions subclassing the C-optimized :class:`~pickle." +"Pickler` can now override the pickling logic of functions and classes by " +"defining the special :meth:`~pickle.Pickler.reducer_override` method. " +"(Contributed by Pierre Glaser and Olivier Grisel in :issue:`35900`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1107 msgid "plistlib" msgstr "" -#: ../../whatsnew/3.8.rst:1109 msgid "" "Added new :class:`plistlib.UID` and enabled support for reading and writing " -"NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen " -"in :issue:`26707`.)" +"NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen in :issue:" +"`26707`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1115 msgid "pprint" msgstr "" -#: ../../whatsnew/3.8.rst:1117 msgid "" "The :mod:`pprint` module added a *sort_dicts* parameter to several " "functions. By default, those functions continue to sort dictionaries before " @@ -1694,17 +1421,15 @@ msgid "" "for comparison to JSON inputs during debugging." msgstr "" -#: ../../whatsnew/3.8.rst:1123 msgid "" "In addition, there is a convenience new function, :func:`pprint.pp` that is " "like :func:`pprint.pprint` but with *sort_dicts* defaulting to ``False``::" msgstr "" -#: ../../whatsnew/3.8.rst:1126 msgid "" ">>> from pprint import pprint, pp\n" -">>> d = dict(source='input.txt', operation='filter', " -"destination='output.txt')\n" +">>> d = dict(source='input.txt', operation='filter', destination='output." +"txt')\n" ">>> pp(d, width=40) # Original order\n" "{'source': 'input.txt',\n" " 'operation': 'filter',\n" @@ -1715,41 +1440,33 @@ msgid "" " 'source': 'input.txt'}" msgstr "" -#: ../../whatsnew/3.8.rst:1137 msgid "(Contributed by Rémi Lapeyre in :issue:`30670`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1141 msgid "py_compile" msgstr "" -#: ../../whatsnew/3.8.rst:1143 msgid "" ":func:`py_compile.compile` now supports silent mode. (Contributed by Joannah " "Nanjekye in :issue:`22640`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1148 msgid "shlex" msgstr "" -#: ../../whatsnew/3.8.rst:1150 msgid "" -"The new :func:`shlex.join` function acts as the inverse " -"of :func:`shlex.split`. (Contributed by Bo Bayles in :issue:`32102`.)" +"The new :func:`shlex.join` function acts as the inverse of :func:`shlex." +"split`. (Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1155 msgid "shutil" msgstr "" -#: ../../whatsnew/3.8.rst:1157 msgid "" ":func:`shutil.copytree` now accepts a new ``dirs_exist_ok`` keyword " "argument. (Contributed by Josh Bronson in :issue:`20849`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1160 msgid "" ":func:`shutil.make_archive` now defaults to the modern pax (POSIX.1-2001) " "format for new archives to improve portability and standards conformance, " @@ -1757,18 +1474,15 @@ msgid "" "(Contributed by C.A.M. Gerlach in :issue:`30661`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1165 msgid "" ":func:`shutil.rmtree` on Windows now removes directory junctions without " -"recursively removing their contents first. (Contributed by Steve Dower " -"in :issue:`37834`.)" +"recursively removing their contents first. (Contributed by Steve Dower in :" +"issue:`37834`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1171 msgid "socket" msgstr "" -#: ../../whatsnew/3.8.rst:1173 msgid "" "Added :meth:`~socket.create_server` and :meth:`~socket.has_dualstack_ipv6` " "convenience functions to automate the necessary tasks usually involved when " @@ -1776,63 +1490,52 @@ msgid "" "on the same socket. (Contributed by Giampaolo Rodolà in :issue:`17561`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1178 msgid "" -"The :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`, " -"and :func:`socket.if_indextoname` functions have been implemented on " -"Windows. (Contributed by Zackery Spytz in :issue:`37007`.)" +"The :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`, and :func:" +"`socket.if_indextoname` functions have been implemented on Windows. " +"(Contributed by Zackery Spytz in :issue:`37007`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1184 msgid "ssl" msgstr "" -#: ../../whatsnew/3.8.rst:1186 msgid "" -"Added :attr:`~ssl.SSLContext.post_handshake_auth` to enable " -"and :meth:`~ssl.SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 " -"post-handshake authentication. (Contributed by Christian Heimes " -"in :issue:`34670`.)" +"Added :attr:`~ssl.SSLContext.post_handshake_auth` to enable and :meth:`~ssl." +"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " +"authentication. (Contributed by Christian Heimes in :issue:`34670`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1193 msgid "statistics" msgstr "" -#: ../../whatsnew/3.8.rst:1195 msgid "" -"Added :func:`statistics.fmean` as a faster, floating-point variant " -"of :func:`statistics.mean`. (Contributed by Raymond Hettinger and Steven " -"D'Aprano in :issue:`35904`.)" +"Added :func:`statistics.fmean` as a faster, floating-point variant of :func:" +"`statistics.mean`. (Contributed by Raymond Hettinger and Steven D'Aprano " +"in :issue:`35904`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1199 msgid "" "Added :func:`statistics.geometric_mean` (Contributed by Raymond Hettinger " "in :issue:`27181`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1202 msgid "" "Added :func:`statistics.multimode` that returns a list of the most common " "values. (Contributed by Raymond Hettinger in :issue:`35892`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1205 msgid "" "Added :func:`statistics.quantiles` that divides data or a distribution in to " "equiprobable intervals (e.g. quartiles, deciles, or percentiles). " "(Contributed by Raymond Hettinger in :issue:`36546`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1209 msgid "" "Added :class:`statistics.NormalDist`, a tool for creating and manipulating " "normal distributions of a random variable. (Contributed by Raymond Hettinger " "in :issue:`36018`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1215 msgid "" ">>> temperature_feb = NormalDist.from_samples([4, 12, -3, 2, 7, 14])\n" ">>> temperature_feb.mean\n" @@ -1857,11 +1560,9 @@ msgid "" "[7.672102882379219, 12.000027119750287, 4.647488369766392]" msgstr "" -#: ../../whatsnew/3.8.rst:1239 msgid "sys" msgstr "" -#: ../../whatsnew/3.8.rst:1241 msgid "" "Add new :func:`sys.unraisablehook` function which can be overridden to " "control how \"unraisable exceptions\" are handled. It is called when an " @@ -1870,11 +1571,9 @@ msgid "" "(:func:`gc.collect`). (Contributed by Victor Stinner in :issue:`36829`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1250 ../../whatsnew/3.8.rst:2350 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.8.rst:1252 msgid "" "The :mod:`tarfile` module now defaults to the modern pax (POSIX.1-2001) " "format for new archives, instead of the previous GNU-specific one. This " @@ -1883,34 +1582,28 @@ msgid "" "(Contributed by C.A.M. Gerlach in :issue:`36268`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1260 msgid "threading" msgstr "" -#: ../../whatsnew/3.8.rst:1262 msgid "" -"Add a new :func:`threading.excepthook` function which handles " -"uncaught :meth:`threading.Thread.run` exception. It can be overridden to " -"control how uncaught :meth:`threading.Thread.run` exceptions are handled. " -"(Contributed by Victor Stinner in :issue:`1230540`.)" +"Add a new :func:`threading.excepthook` function which handles uncaught :meth:" +"`threading.Thread.run` exception. It can be overridden to control how " +"uncaught :meth:`threading.Thread.run` exceptions are handled. (Contributed " +"by Victor Stinner in :issue:`1230540`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1267 msgid "" -"Add a new :func:`threading.get_native_id` function and " -"a :data:`~threading.Thread.native_id` attribute to " -"the :class:`threading.Thread` class. These return the native integral Thread " -"ID of the current thread assigned by the kernel. This feature is only " -"available on certain platforms, see :func:`get_native_id " -"` for more information. (Contributed by Jake Tesler " -"in :issue:`36084`.)" +"Add a new :func:`threading.get_native_id` function and a :data:`~threading." +"Thread.native_id` attribute to the :class:`threading.Thread` class. These " +"return the native integral Thread ID of the current thread assigned by the " +"kernel. This feature is only available on certain platforms, see :func:" +"`get_native_id ` for more information. (Contributed " +"by Jake Tesler in :issue:`36084`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1277 msgid "tokenize" msgstr "" -#: ../../whatsnew/3.8.rst:1279 msgid "" "The :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token when " "provided with input that does not have a trailing new line. This behavior " @@ -1918,59 +1611,47 @@ msgid "" "Askar in :issue:`33899`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1286 msgid "tkinter" msgstr "" -#: ../../whatsnew/3.8.rst:1288 msgid "" -"Added " -"methods :meth:`~tkinter.Spinbox.selection_from`, :meth:`~tkinter.Spinbox.selection_present`, :meth:`~tkinter.Spinbox.selection_range` " -"and :meth:`~tkinter.Spinbox.selection_to` in the :class:`tkinter.Spinbox` " +"Added methods :meth:`!selection_from`, :meth:`!selection_present`, :meth:`!" +"selection_range` and :meth:`!selection_to` in the :class:`!tkinter.Spinbox` " "class. (Contributed by Juliette Monsel in :issue:`34829`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1295 msgid "" -"Added method :meth:`~tkinter.Canvas.moveto` in the :class:`tkinter.Canvas` " -"class. (Contributed by Juliette Monsel in :issue:`23831`.)" +"Added method :meth:`!moveto` in the :class:`!tkinter.Canvas` class. " +"(Contributed by Juliette Monsel in :issue:`23831`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1299 msgid "" -"The :class:`tkinter.PhotoImage` class now " -"has :meth:`~tkinter.PhotoImage.transparency_get` " -"and :meth:`~tkinter.PhotoImage.transparency_set` methods. (Contributed by " -"Zackery Spytz in :issue:`25451`.)" +"The :class:`!tkinter.PhotoImage` class now has :meth:`!transparency_get` " +"and :meth:`!transparency_set` methods. (Contributed by Zackery Spytz in :" +"issue:`25451`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1306 msgid "time" msgstr "" -#: ../../whatsnew/3.8.rst:1308 msgid "" "Added new clock :const:`~time.CLOCK_UPTIME_RAW` for macOS 10.12. " "(Contributed by Joannah Nanjekye in :issue:`35702`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1313 msgid "typing" msgstr "" -#: ../../whatsnew/3.8.rst:1315 msgid "The :mod:`typing` module incorporates several new features:" msgstr "" -#: ../../whatsnew/3.8.rst:1317 msgid "" -"A dictionary type with per-key types. See :pep:`589` " -"and :class:`typing.TypedDict`. TypedDict uses only string keys. By default, " -"every key is required to be present. Specify \"total=False\" to allow keys " -"to be optional::" +"A dictionary type with per-key types. See :pep:`589` and :class:`typing." +"TypedDict`. TypedDict uses only string keys. By default, every key is " +"required to be present. Specify \"total=False\" to allow keys to be " +"optional::" msgstr "" -#: ../../whatsnew/3.8.rst:1322 msgid "" "class Location(TypedDict, total=False):\n" " lat_long: tuple\n" @@ -1978,57 +1659,46 @@ msgid "" " xy_coordinate: tuple" msgstr "" -#: ../../whatsnew/3.8.rst:1327 msgid "" "Literal types. See :pep:`586` and :class:`typing.Literal`. Literal types " "indicate that a parameter or return value is constrained to one or more " "specific literal values::" msgstr "" -#: ../../whatsnew/3.8.rst:1331 msgid "" "def get_status(port: int) -> Literal['connected', 'disconnected']:\n" " ..." msgstr "" -#: ../../whatsnew/3.8.rst:1334 msgid "" -"\"Final\" variables, functions, methods and classes. " -"See :pep:`591`, :class:`typing.Final` and :func:`typing.final`. The final " -"qualifier instructs a static type checker to restrict subclassing, " -"overriding, or reassignment::" +"\"Final\" variables, functions, methods and classes. See :pep:`591`, :class:" +"`typing.Final` and :func:`typing.final`. The final qualifier instructs a " +"static type checker to restrict subclassing, overriding, or reassignment::" msgstr "" -#: ../../whatsnew/3.8.rst:1339 msgid "pi: Final[float] = 3.1415926536" msgstr "" -#: ../../whatsnew/3.8.rst:1341 msgid "" -"Protocol definitions. See :pep:`544`, :class:`typing.Protocol` " -"and :func:`typing.runtime_checkable`. Simple ABCs " -"like :class:`typing.SupportsInt` are now ``Protocol`` subclasses." +"Protocol definitions. See :pep:`544`, :class:`typing.Protocol` and :func:" +"`typing.runtime_checkable`. Simple ABCs like :class:`typing.SupportsInt` " +"are now ``Protocol`` subclasses." msgstr "" -#: ../../whatsnew/3.8.rst:1345 msgid "New protocol class :class:`typing.SupportsIndex`." msgstr "" -#: ../../whatsnew/3.8.rst:1347 msgid "New functions :func:`typing.get_origin` and :func:`typing.get_args`." msgstr "" -#: ../../whatsnew/3.8.rst:1351 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.8.rst:1353 msgid "" "The :mod:`unicodedata` module has been upgraded to use the `Unicode 12.1.0 " "`_ release." msgstr "" -#: ../../whatsnew/3.8.rst:1356 msgid "" "New function :func:`~unicodedata.is_normalized` can be used to verify a " "string is in a specific normal form, often much faster than by actually " @@ -2036,45 +1706,37 @@ msgid "" "Greg Price in :issue:`32285` and :issue:`37966`)." msgstr "" -#: ../../whatsnew/3.8.rst:1363 msgid "unittest" msgstr "" -#: ../../whatsnew/3.8.rst:1365 msgid "" "Added :class:`~unittest.mock.AsyncMock` to support an asynchronous version " "of :class:`~unittest.mock.Mock`. Appropriate new assert functions for " -"testing have been added as well. (Contributed by Lisa Roach " -"in :issue:`26467`)." +"testing have been added as well. (Contributed by Lisa Roach in :issue:" +"`26467`)." msgstr "" -#: ../../whatsnew/3.8.rst:1370 msgid "" -"Added :func:`~unittest.addModuleCleanup` " -"and :meth:`~unittest.TestCase.addClassCleanup` to unittest to support " -"cleanups for :func:`~unittest.setUpModule` " -"and :meth:`~unittest.TestCase.setUpClass`. (Contributed by Lisa Roach " -"in :issue:`24412`.)" +"Added :func:`~unittest.addModuleCleanup` and :meth:`~unittest.TestCase." +"addClassCleanup` to unittest to support cleanups for :func:`~unittest." +"setUpModule` and :meth:`~unittest.TestCase.setUpClass`. (Contributed by Lisa " +"Roach in :issue:`24412`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1376 msgid "" "Several mock assert functions now also print a list of actual calls upon " "failure. (Contributed by Petter Strandmark in :issue:`35047`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1379 msgid "" ":mod:`unittest` module gained support for coroutines to be used as test " "cases with :class:`unittest.IsolatedAsyncioTestCase`. (Contributed by Andrew " "Svetlov in :issue:`32972`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1383 msgid "Example::" msgstr "" -#: ../../whatsnew/3.8.rst:1385 msgid "" "import unittest\n" "\n" @@ -2096,41 +1758,33 @@ msgid "" " unittest.main()" msgstr "" -#: ../../whatsnew/3.8.rst:1406 msgid "venv" msgstr "" -#: ../../whatsnew/3.8.rst:1408 msgid "" ":mod:`venv` now includes an ``Activate.ps1`` script on all platforms for " "activating virtual environments under PowerShell Core 6.1. (Contributed by " "Brett Cannon in :issue:`32718`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1414 msgid "weakref" msgstr "" -#: ../../whatsnew/3.8.rst:1416 msgid "" "The proxy objects returned by :func:`weakref.proxy` now support the matrix " "multiplication operators ``@`` and ``@=`` in addition to the other numeric " "operators. (Contributed by Mark Dickinson in :issue:`36669`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1422 msgid "xml" msgstr "" -#: ../../whatsnew/3.8.rst:1424 msgid "" -"As mitigation against DTD and external entity retrieval, " -"the :mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process " -"external entities by default. (Contributed by Christian Heimes " -"in :issue:`17239`.)" +"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." +"minidom` and :mod:`xml.sax` modules no longer process external entities by " +"default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1429 msgid "" "The ``.find*()`` methods in the :mod:`xml.etree.ElementTree` module support " "wildcard searches like ``{*}tag`` which ignores the namespace and " @@ -2138,29 +1792,24 @@ msgid "" "by Stefan Behnel in :issue:`28238`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1434 msgid "" -"The :mod:`xml.etree.ElementTree` module provides a new function :func:`–" -"xml.etree.ElementTree.canonicalize` that implements C14N 2.0. (Contributed " -"by Stefan Behnel in :issue:`13611`.)" +"The :mod:`xml.etree.ElementTree` module provides a new function :func:`~xml." +"etree.ElementTree.canonicalize` that implements C14N 2.0. (Contributed by " +"Stefan Behnel in :issue:`13611`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1438 msgid "" "The target object of :class:`xml.etree.ElementTree.XMLParser` can receive " "namespace declaration events through the new callback methods ``start_ns()`` " -"and ``end_ns()``. Additionally, " -"the :class:`xml.etree.ElementTree.TreeBuilder` target can be configured to " -"process events about comments and processing instructions to include them in " -"the generated tree. (Contributed by Stefan Behnel in :issue:`36676` " -"and :issue:`36673`.)" +"and ``end_ns()``. Additionally, the :class:`xml.etree.ElementTree." +"TreeBuilder` target can be configured to process events about comments and " +"processing instructions to include them in the generated tree. (Contributed " +"by Stefan Behnel in :issue:`36676` and :issue:`36673`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1448 msgid "xmlrpc" msgstr "" -#: ../../whatsnew/3.8.rst:1450 msgid "" ":class:`xmlrpc.client.ServerProxy` now supports an optional *headers* " "keyword argument for a sequence of HTTP headers to be sent with each " @@ -2169,52 +1818,44 @@ msgid "" "Cédric Krier in :issue:`35153`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1458 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.8.rst:1460 msgid "" "The :mod:`subprocess` module can now use the :func:`os.posix_spawn` function " "in some cases for better performance. Currently, it is only used on macOS " "and Linux (using glibc 2.24 or newer) if all these conditions are met:" msgstr "" -#: ../../whatsnew/3.8.rst:1464 msgid "*close_fds* is false;" msgstr "" -#: ../../whatsnew/3.8.rst:1465 msgid "" "*preexec_fn*, *pass_fds*, *cwd* and *start_new_session* parameters are not " "set;" msgstr "" -#: ../../whatsnew/3.8.rst:1467 msgid "the *executable* path contains a directory." msgstr "" -#: ../../whatsnew/3.8.rst:1469 msgid "(Contributed by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1471 msgid "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " -"and :func:`shutil.move` use platform-specific \"fast-copy\" syscalls on " -"Linux and macOS in order to copy the file more efficiently. \"fast-copy\" " -"means that the copying operation occurs within the kernel, avoiding the use " -"of userspace buffers in Python as in \"``outfd.write(infd.read())``\". On " -"Windows :func:`shutil.copyfile` uses a bigger default buffer size (1 MiB " -"instead of 16 KiB) and a :func:`memoryview`-based variant " -"of :func:`shutil.copyfileobj` is used. The speedup for copying a 512 MiB " -"file within the same partition is about +26% on Linux, +50% on macOS and " +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" +"`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" +"copy\" syscalls on Linux and macOS in order to copy the file more " +"efficiently. \"fast-copy\" means that the copying operation occurs within " +"the kernel, avoiding the use of userspace buffers in Python as in \"``outfd." +"write(infd.read())``\". On Windows :func:`shutil.copyfile` uses a bigger " +"default buffer size (1 MiB instead of 16 KiB) and a :func:`memoryview`-based " +"variant of :func:`shutil.copyfileobj` is used. The speedup for copying a 512 " +"MiB file within the same partition is about +26% on Linux, +50% on macOS and " "+40% on Windows. Also, much less CPU cycles are consumed. See :ref:`shutil-" "platform-dependent-efficient-copy-operations` section. (Contributed by " "Giampaolo Rodolà in :issue:`33671`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1487 msgid "" ":func:`shutil.copytree` uses :func:`os.scandir` function and all copy " "functions depending from it use cached :func:`os.stat` values. The speedup " @@ -2224,27 +1865,23 @@ msgid "" "on network filesystems. (Contributed by Giampaolo Rodolà in :issue:`33695`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1494 msgid "" "The default protocol in the :mod:`pickle` module is now Protocol 4, first " "introduced in Python 3.4. It offers better performance and smaller size " "compared to Protocol 3 available since Python 3.0." msgstr "" -#: ../../whatsnew/3.8.rst:1498 msgid "" "Removed one :c:type:`Py_ssize_t` member from ``PyGC_Head``. All GC tracked " "objects (e.g. tuple, list, dict) size is reduced 4 or 8 bytes. (Contributed " "by Inada Naoki in :issue:`33597`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1502 msgid "" ":class:`uuid.UUID` now uses ``__slots__`` to reduce its memory footprint. " "(Contributed by Wouter Bolsterlee and Tal Einat in :issue:`30977`)" msgstr "" -#: ../../whatsnew/3.8.rst:1505 msgid "" "Improved performance of :func:`operator.itemgetter` by 33%. Optimized " "argument handling and added a fast path for the common case of a single non-" @@ -2252,7 +1889,6 @@ msgid "" "standard library). (Contributed by Raymond Hettinger in :issue:`35664`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1511 msgid "" "Sped-up field lookups in :func:`collections.namedtuple`. They are now more " "than two times faster, making them the fastest form of instance variable " @@ -2260,7 +1896,6 @@ msgid "" "Jevnik, Serhiy Storchaka in :issue:`32492`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1516 msgid "" "The :class:`list` constructor does not overallocate the internal item buffer " "if the input iterable has a known length (the input implements ``__len__``). " @@ -2268,7 +1903,6 @@ msgid "" "Hettinger and Pablo Galindo in :issue:`33234`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1521 msgid "" "Doubled the speed of class variable writes. When a non-dunder attribute was " "updated, there was an unnecessary call to update slots. (Contributed by " @@ -2276,49 +1910,41 @@ msgid "" "and Serhiy Storchaka in :issue:`36012`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1526 msgid "" "Reduced an overhead of converting arguments passed to many builtin functions " "and methods. This sped up calling some simple builtin functions and methods " -"up to 20--50%. (Contributed by Serhiy Storchaka " -"in :issue:`23867`, :issue:`35582` and :issue:`36127`.)" +"up to 20--50%. (Contributed by Serhiy Storchaka in :issue:`23867`, :issue:" +"`35582` and :issue:`36127`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1531 msgid "" "``LOAD_GLOBAL`` instruction now uses new \"per opcode cache\" mechanism. It " -"is about 40% faster now. (Contributed by Yury Selivanov and Inada Naoki " -"in :issue:`26219`.)" +"is about 40% faster now. (Contributed by Yury Selivanov and Inada Naoki in :" +"issue:`26219`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1537 msgid "Build and C API Changes" msgstr "" -#: ../../whatsnew/3.8.rst:1539 msgid "" "Default :data:`sys.abiflags` became an empty string: the ``m`` flag for " "pymalloc became useless (builds with and without pymalloc are ABI " -"compatible) and so has been removed. (Contributed by Victor Stinner " -"in :issue:`36707`.)" +"compatible) and so has been removed. (Contributed by Victor Stinner in :" +"issue:`36707`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1543 msgid "Example of changes:" msgstr "" -#: ../../whatsnew/3.8.rst:1545 msgid "" "Only ``python3.8`` program is installed, ``python3.8m`` program is gone." msgstr "" -#: ../../whatsnew/3.8.rst:1546 msgid "" "Only ``python3.8-config`` script is installed, ``python3.8m-config`` script " "is gone." msgstr "" -#: ../../whatsnew/3.8.rst:1548 msgid "" "The ``m`` flag has been removed from the suffix of dynamic library " "filenames: extension modules in the standard library as well as those " @@ -2327,23 +1953,19 @@ msgid "" "linux-gnu.so`` became ``.cpython-38-x86_64-linux-gnu.so`` in Python 3.8." msgstr "" -#: ../../whatsnew/3.8.rst:1555 msgid "" "The header files have been reorganized to better separate the different " "kinds of APIs:" msgstr "" -#: ../../whatsnew/3.8.rst:1558 msgid "``Include/*.h`` should be the portable public stable C API." msgstr "" -#: ../../whatsnew/3.8.rst:1559 msgid "" "``Include/cpython/*.h`` should be the unstable C API specific to CPython; " "public API, with some private API prefixed by ``_Py`` or ``_PY``." msgstr "" -#: ../../whatsnew/3.8.rst:1561 msgid "" "``Include/internal/*.h`` is the private internal C API very specific to " "CPython. This API comes with no backward compatibility warranty and should " @@ -2352,42 +1974,34 @@ msgid "" "calling functions. This API is now installed by ``make install``." msgstr "" -#: ../../whatsnew/3.8.rst:1567 msgid "" "(Contributed by Victor Stinner in :issue:`35134` and :issue:`35081`, work " "initiated by Eric Snow in Python 3.7.)" msgstr "" -#: ../../whatsnew/3.8.rst:1570 msgid "" "Some macros have been converted to static inline functions: parameter types " "and return type are well defined, they don't have issues specific to macros, " "variables have a local scopes. Examples:" msgstr "" -#: ../../whatsnew/3.8.rst:1574 msgid ":c:func:`Py_INCREF`, :c:func:`Py_DECREF`" msgstr "" -#: ../../whatsnew/3.8.rst:1575 msgid ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" msgstr "" -#: ../../whatsnew/3.8.rst:1576 -msgid ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" +msgid ":c:macro:`!PyObject_INIT`, :c:macro:`!PyObject_INIT_VAR`" msgstr "" -#: ../../whatsnew/3.8.rst:1577 msgid "" "Private functions: :c:func:`!_PyObject_GC_TRACK`, :c:func:`!" "_PyObject_GC_UNTRACK`, :c:func:`!_Py_Dealloc`" msgstr "" -#: ../../whatsnew/3.8.rst:1580 msgid "(Contributed by Victor Stinner in :issue:`35059`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1582 msgid "" "The :c:func:`!PyByteArray_Init` and :c:func:`!PyByteArray_Fini` functions " "have been removed. They did nothing since Python 2.7.4 and Python 3.2.0, " @@ -2395,14 +2009,12 @@ msgid "" "(Contributed by Victor Stinner in :issue:`35713`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1587 msgid "" "The result of :c:func:`PyExceptionClass_Name` is now of type ``const char " -"*`` rather of ``char *``. (Contributed by Serhiy Storchaka " -"in :issue:`33818`.)" +"*`` rather of ``char *``. (Contributed by Serhiy Storchaka in :issue:" +"`33818`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1591 msgid "" "The duality of ``Modules/Setup.dist`` and ``Modules/Setup`` has been " "removed. Previously, when updating the CPython source tree, one had to " @@ -2413,7 +2025,6 @@ msgid "" "the file could produce build failures." msgstr "" -#: ../../whatsnew/3.8.rst:1599 msgid "" "Now the build system always reads from ``Modules/Setup`` inside the source " "tree. People who want to customize that file are encouraged to maintain " @@ -2421,37 +2032,32 @@ msgid "" "for any other change to the source tree." msgstr "" -#: ../../whatsnew/3.8.rst:1604 msgid "(Contributed by Antoine Pitrou in :issue:`32430`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1606 msgid "" -"Functions that convert Python number to C integer " -"like :c:func:`PyLong_AsLong` and argument parsing functions " -"like :c:func:`PyArg_ParseTuple` with integer converting format units like " -"``'i'`` will now use the :meth:`~object.__index__` special method instead " -"of :meth:`~object.__int__`, if available. The deprecation warning will be " -"emitted for objects with the ``__int__()`` method but without the " -"``__index__()`` method (like :class:`~decimal.Decimal` " -"and :class:`~fractions.Fraction`). :c:func:`PyNumber_Check` will now return " -"``1`` for objects implementing " -"``__index__()``. :c:func:`PyNumber_Long`, :c:func:`PyNumber_Float` " -"and :c:func:`PyFloat_AsDouble` also now use the ``__index__()`` method if " -"available. (Contributed by Serhiy Storchaka in :issue:`36048` " -"and :issue:`20092`.)" +"Functions that convert Python number to C integer like :c:func:" +"`PyLong_AsLong` and argument parsing functions like :c:func:" +"`PyArg_ParseTuple` with integer converting format units like ``'i'`` will " +"now use the :meth:`~object.__index__` special method instead of :meth:" +"`~object.__int__`, if available. The deprecation warning will be emitted " +"for objects with the ``__int__()`` method but without the ``__index__()`` " +"method (like :class:`~decimal.Decimal` and :class:`~fractions.Fraction`). :" +"c:func:`PyNumber_Check` will now return ``1`` for objects implementing " +"``__index__()``. :c:func:`PyNumber_Long`, :c:func:`PyNumber_Float` and :c:" +"func:`PyFloat_AsDouble` also now use the ``__index__()`` method if " +"available. (Contributed by Serhiy Storchaka in :issue:`36048` and :issue:" +"`20092`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1620 msgid "" -"Heap-allocated type objects will now increase their reference count " -"in :c:func:`PyObject_Init` (and its parallel macro ``PyObject_INIT``) " -"instead of in :c:func:`PyType_GenericAlloc`. Types that modify instance " -"allocation or deallocation may need to be adjusted. (Contributed by Eddie " -"Elizondo in :issue:`35810`.)" +"Heap-allocated type objects will now increase their reference count in :c:" +"func:`PyObject_Init` (and its parallel macro ``PyObject_INIT``) instead of " +"in :c:func:`PyType_GenericAlloc`. Types that modify instance allocation or " +"deallocation may need to be adjusted. (Contributed by Eddie Elizondo in :" +"issue:`35810`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1626 msgid "" "The new function :c:func:`!PyCode_NewWithPosOnlyArgs` allows to create code " "objects like :c:func:`!PyCode_New`, but with an extra *posonlyargcount* " @@ -2459,65 +2065,53 @@ msgid "" "(Contributed by Pablo Galindo in :issue:`37221`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1631 msgid "" ":c:func:`!Py_SetPath` now sets :data:`sys.executable` to the program full " -"path (:c:func:`Py_GetProgramFullPath`) rather than to the program name " -"(:c:func:`Py_GetProgramName`). (Contributed by Victor Stinner " -"in :issue:`38234`.)" +"path (:c:func:`Py_GetProgramFullPath`) rather than to the program name (:c:" +"func:`Py_GetProgramName`). (Contributed by Victor Stinner in :issue:`38234`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1638 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.8.rst:1640 msgid "" "The distutils ``bdist_wininst`` command is now deprecated, use " -"``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner " -"in :issue:`37481`.)" +"``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner in :" +"issue:`37481`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1644 msgid "" -"Deprecated methods ``getchildren()`` and ``getiterator()`` in " -"the :mod:`~xml.etree.ElementTree` module now emit " -"a :exc:`DeprecationWarning` instead of :exc:`PendingDeprecationWarning`. " -"They will be removed in Python 3.9. (Contributed by Serhiy Storchaka " -"in :issue:`29209`.)" +"Deprecated methods ``getchildren()`` and ``getiterator()`` in the :mod:`~xml." +"etree.ElementTree` module now emit a :exc:`DeprecationWarning` instead of :" +"exc:`PendingDeprecationWarning`. They will be removed in Python 3.9. " +"(Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1650 msgid "" -"Passing an object that is not an instance " -"of :class:`concurrent.futures.ThreadPoolExecutor` " -"to :meth:`loop.set_default_executor() ` " -"is deprecated and will be prohibited in Python 3.9. (Contributed by Elvis " -"Pranskevichus in :issue:`34075`.)" +"Passing an object that is not an instance of :class:`concurrent.futures." +"ThreadPoolExecutor` to :meth:`loop.set_default_executor() ` is deprecated and will be prohibited in Python 3.9. " +"(Contributed by Elvis Pranskevichus in :issue:`34075`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1656 msgid "" -"The :meth:`~object.__getitem__` methods " -"of :class:`xml.dom.pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` " -"and :class:`fileinput.FileInput` have been deprecated." +"The :meth:`~object.__getitem__` methods of :class:`xml.dom.pulldom." +"DOMEventStream`, :class:`wsgiref.util.FileWrapper` and :class:`fileinput." +"FileInput` have been deprecated." msgstr "" -#: ../../whatsnew/3.8.rst:1660 msgid "" "Implementations of these methods have been ignoring their *index* parameter, " -"and returning the next item instead. (Contributed by Berker Peksag " -"in :issue:`9372`.)" +"and returning the next item instead. (Contributed by Berker Peksag in :issue:" +"`9372`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1664 msgid "" "The :class:`typing.NamedTuple` class has deprecated the ``_field_types`` " "attribute in favor of the ``__annotations__`` attribute which has the same " "information. (Contributed by Raymond Hettinger in :issue:`36320`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1668 msgid "" ":mod:`ast` classes ``Num``, ``Str``, ``Bytes``, ``NameConstant`` and " "``Ellipsis`` are considered deprecated and will be removed in future Python " @@ -2525,132 +2119,113 @@ msgid "" "Serhiy Storchaka in :issue:`32892`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1673 msgid "" ":class:`ast.NodeVisitor` methods ``visit_Num()``, ``visit_Str()``, " "``visit_Bytes()``, ``visit_NameConstant()`` and ``visit_Ellipsis()`` are " -"deprecated now and will not be called in future Python versions. Add " -"the :meth:`~ast.NodeVisitor.visit_Constant` method to handle all constant " -"nodes. (Contributed by Serhiy Storchaka in :issue:`36917`.)" +"deprecated now and will not be called in future Python versions. Add the :" +"meth:`~ast.NodeVisitor.visit_Constant` method to handle all constant nodes. " +"(Contributed by Serhiy Storchaka in :issue:`36917`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1680 msgid "" -"The :func:`asyncio.coroutine` :term:`decorator` is deprecated and will be " -"removed in version 3.10. Instead of ``@asyncio.coroutine``, " -"use :keyword:`async def` instead. (Contributed by Andrew Svetlov " -"in :issue:`36921`.)" +"The :deco:`!asyncio.coroutine` :term:`decorator` is deprecated and will be " +"removed in version 3.10. Instead of ``@asyncio.coroutine``, use :keyword:" +"`async def` instead. (Contributed by Andrew Svetlov in :issue:`36921`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1685 msgid "" "In :mod:`asyncio`, the explicit passing of a *loop* argument has been " -"deprecated and will be removed in version 3.10 for the " -"following: :func:`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio.shield`, :func:`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio.as_completed`, :class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio.Event`, :class:`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:`asyncio.BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio.create_subprocess_exec`, " -"and :func:`asyncio.create_subprocess_shell`." +"deprecated and will be removed in version 3.10 for the following: :func:" +"`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio.shield`, :func:" +"`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio.as_completed`, :" +"class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio.Event`, :class:" +"`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:`asyncio." +"BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio." +"create_subprocess_exec`, and :func:`asyncio.create_subprocess_shell`." msgstr "" -#: ../../whatsnew/3.8.rst:1695 msgid "" "The explicit passing of coroutine objects to :func:`asyncio.wait` has been " "deprecated and will be removed in version 3.11. (Contributed by Yury " "Selivanov in :issue:`34790`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1699 msgid "" "The following functions and methods are deprecated in the :mod:`gettext` " -"module: :func:`~gettext.lgettext`, :func:`~gettext.ldgettext`, :func:`~gettext.lngettext` " -"and :func:`~gettext.ldngettext`. They return encoded bytes, and it's " -"possible that you will get unexpected Unicode-related exceptions if there " -"are encoding problems with the translated strings. It's much better to use " -"alternatives which return Unicode strings in Python 3. These functions have " -"been broken for a long time." +"module: :func:`!lgettext`, :func:`!ldgettext`, :func:`!lngettext` and :func:" +"`!ldngettext`. They return encoded bytes, and it's possible that you will " +"get unexpected Unicode-related exceptions if there are encoding problems " +"with the translated strings. It's much better to use alternatives which " +"return Unicode strings in Python 3. These functions have been broken for a " +"long time." msgstr "" -#: ../../whatsnew/3.8.rst:1707 msgid "" -"Function :func:`~gettext.bind_textdomain_codeset`, " -"methods :meth:`~gettext.NullTranslations.output_charset` " -"and :meth:`~gettext.NullTranslations.set_output_charset`, and the *codeset* " -"parameter of functions :func:`~gettext.translation` " -"and :func:`~gettext.install` are also deprecated, since they are only used " -"for the ``l*gettext()`` functions. (Contributed by Serhiy Storchaka " -"in :issue:`33710`.)" +"Function :func:`!bind_textdomain_codeset`, methods :meth:`!NullTranslations." +"output_charset` and :meth:`!NullTranslations.set_output_charset`, and the " +"*codeset* parameter of functions :func:`~gettext.translation` and :func:" +"`~gettext.install` are also deprecated, since they are only used for the " +"``l*gettext()`` functions. (Contributed by Serhiy Storchaka in :issue:" +"`33710`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1715 msgid "" -"The :meth:`~threading.Thread.isAlive` method of :class:`threading.Thread` " -"has been deprecated. (Contributed by Donghee Na in :issue:`35283`.)" +"The :meth:`!isAlive` method of :class:`threading.Thread` has been " +"deprecated. (Contributed by Donghee Na in :issue:`35283`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1719 msgid "" "Many builtin and extension functions that take integer arguments will now " -"emit a deprecation warning for :class:`~decimal.Decimal`\\ " -"s, :class:`~fractions.Fraction`\\ s and any other objects that can be " -"converted to integers only with a loss (e.g. that have " -"the :meth:`~object.__int__` method but do not have " -"the :meth:`~object.__index__` method). In future version they will be " -"errors. (Contributed by Serhiy Storchaka in :issue:`36048`.)" +"emit a deprecation warning for :class:`~decimal.Decimal`\\ s, :class:" +"`~fractions.Fraction`\\ s and any other objects that can be converted to " +"integers only with a loss (e.g. that have the :meth:`~object.__int__` method " +"but do not have the :meth:`~object.__index__` method). In future version " +"they will be errors. (Contributed by Serhiy Storchaka in :issue:`36048`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1727 msgid "Deprecated passing the following arguments as keyword arguments:" msgstr "" -#: ../../whatsnew/3.8.rst:1729 msgid "" -"*func* " -"in :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:`profile.Profile.runcall`, :meth:`cProfile.Profile.runcall`, :meth:`bdb.Bdb.runcall`, :meth:`trace.Trace.runfunc` " -"and :func:`curses.wrapper`." +"*func* in :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:" +"`profile.Profile.runcall`, :meth:`!cProfile.Profile.runcall`, :meth:`bdb.Bdb." +"runcall`, :meth:`trace.Trace.runfunc` and :func:`curses.wrapper`." msgstr "" -#: ../../whatsnew/3.8.rst:1733 msgid "*function* in :meth:`unittest.TestCase.addCleanup`." msgstr "" -#: ../../whatsnew/3.8.rst:1734 msgid "" -"*fn* in the :meth:`~concurrent.futures.Executor.submit` method " -"of :class:`concurrent.futures.ThreadPoolExecutor` " -"and :class:`concurrent.futures.ProcessPoolExecutor`." +"*fn* in the :meth:`~concurrent.futures.Executor.submit` method of :class:" +"`concurrent.futures.ThreadPoolExecutor` and :class:`concurrent.futures." +"ProcessPoolExecutor`." msgstr "" -#: ../../whatsnew/3.8.rst:1737 msgid "" -"*callback* " -"in :meth:`contextlib.ExitStack.callback`, :meth:`contextlib.AsyncExitStack.callback` " -"and :meth:`contextlib.AsyncExitStack.push_async_callback`." +"*callback* in :meth:`contextlib.ExitStack.callback`, :meth:`!contextlib." +"AsyncExitStack.callback` and :meth:`contextlib.AsyncExitStack." +"push_async_callback`." msgstr "" -#: ../../whatsnew/3.8.rst:1740 msgid "" -"*c* and *typeid* in the :meth:`~multiprocessing.managers.Server.create` " -"method of :class:`multiprocessing.managers.Server` " -"and :class:`multiprocessing.managers.SharedMemoryServer`." +"*c* and *typeid* in the :meth:`!create` method of :class:`!multiprocessing." +"managers.Server` and :class:`!multiprocessing.managers.SharedMemoryServer`." msgstr "" -#: ../../whatsnew/3.8.rst:1743 msgid "*obj* in :func:`weakref.finalize`." msgstr "" -#: ../../whatsnew/3.8.rst:1745 msgid "" "In future releases of Python, they will be :ref:`positional-only `. (Contributed by Serhiy Storchaka in :issue:`36492`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1751 msgid "API and Feature Removals" msgstr "" -#: ../../whatsnew/3.8.rst:1753 msgid "The following features and APIs have been removed from Python 3.8:" msgstr "" -#: ../../whatsnew/3.8.rst:1755 msgid "" "Starting with Python 3.3, importing ABCs from :mod:`collections` was " "deprecated, and importing should be done from :mod:`collections.abc`. Being " @@ -2658,49 +2233,41 @@ msgid "" "delayed to 3.9. (See :gh:`81134`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1760 msgid "" -"The :mod:`macpath` module, deprecated in Python 3.7, has been removed. " +"The :mod:`!macpath` module, deprecated in Python 3.7, has been removed. " "(Contributed by Victor Stinner in :issue:`35471`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1763 ../../whatsnew/3.8.rst:1882 msgid "" -"The function :func:`platform.popen` has been removed, after having been " +"The function :func:`!platform.popen` has been removed, after having been " "deprecated since Python 3.3: use :func:`os.popen` instead. (Contributed by " "Victor Stinner in :issue:`35345`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1767 msgid "" -"The function :func:`time.clock` has been removed, after having been " -"deprecated since Python 3.3: use :func:`time.perf_counter` " -"or :func:`time.process_time` instead, depending on your requirements, to " -"have well-defined behavior. (Contributed by Matthias Bussonnier " -"in :issue:`36895`.)" +"The function :func:`!time.clock` has been removed, after having been " +"deprecated since Python 3.3: use :func:`time.perf_counter` or :func:`time." +"process_time` instead, depending on your requirements, to have well-defined " +"behavior. (Contributed by Matthias Bussonnier in :issue:`36895`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1773 msgid "" "The ``pyvenv`` script has been removed in favor of ``python3.8 -m venv`` to " "help eliminate confusion as to what Python interpreter the ``pyvenv`` script " "is tied to. (Contributed by Brett Cannon in :issue:`25427`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1777 msgid "" "``parse_qs``, ``parse_qsl``, and ``escape`` are removed from the :mod:`!cgi` " "module. They are deprecated in Python 3.2 or older. They should be imported " "from the ``urllib.parse`` and ``html`` modules instead." msgstr "" -#: ../../whatsnew/3.8.rst:1781 msgid "" "``filemode`` function is removed from the :mod:`tarfile` module. It is not " "documented and deprecated since Python 3.3." msgstr "" -#: ../../whatsnew/3.8.rst:1784 msgid "" "The :class:`~xml.etree.ElementTree.XMLParser` constructor no longer accepts " "the *html* argument. It never had an effect and was deprecated in Python " @@ -2708,55 +2275,44 @@ msgid "" "only_parameter>`. (Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1789 msgid "" -"Removed the ``doctype()`` method " -"of :class:`~xml.etree.ElementTree.XMLParser`. (Contributed by Serhiy " -"Storchaka in :issue:`29209`.)" +"Removed the ``doctype()`` method of :class:`~xml.etree.ElementTree." +"XMLParser`. (Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1792 msgid "" -"\"unicode_internal\" codec is removed. (Contributed by Inada Naoki " -"in :issue:`36297`.)" +"\"unicode_internal\" codec is removed. (Contributed by Inada Naoki in :issue:" +"`36297`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1795 msgid "" "The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not " "exposed to the user. (Contributed by Aviv Palivoda in :issue:`30262`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1799 msgid "" -"The ``bufsize`` keyword argument of :func:`fileinput.input` " -"and :func:`fileinput.FileInput` which was ignored and deprecated since " -"Python 3.6 has been removed. :issue:`36952` (Contributed by Matthias " -"Bussonnier.)" +"The ``bufsize`` keyword argument of :func:`fileinput.input` and :func:" +"`fileinput.FileInput` which was ignored and deprecated since Python 3.6 has " +"been removed. :issue:`36952` (Contributed by Matthias Bussonnier.)" msgstr "" -#: ../../whatsnew/3.8.rst:1803 msgid "" -"The functions :func:`sys.set_coroutine_wrapper` " -"and :func:`sys.get_coroutine_wrapper` deprecated in Python 3.7 have been " -"removed; :issue:`36933` (Contributed by Matthias Bussonnier.)" +"The functions :func:`!sys.set_coroutine_wrapper` and :func:`!sys." +"get_coroutine_wrapper` deprecated in Python 3.7 have been removed; :issue:" +"`36933` (Contributed by Matthias Bussonnier.)" msgstr "" -#: ../../whatsnew/3.8.rst:1809 msgid "Porting to Python 3.8" msgstr "" -#: ../../whatsnew/3.8.rst:1811 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.8.rst:1816 msgid "Changes in Python behavior" msgstr "" -#: ../../whatsnew/3.8.rst:1818 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "disallowed in comprehensions and generator expressions (aside from the " @@ -2764,17 +2320,15 @@ msgid "" "Serhiy Storchaka in :issue:`10544`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1823 msgid "" "The compiler now produces a :exc:`SyntaxWarning` when identity checks " "(``is`` and ``is not``) are used with certain types of literals (e.g. " "strings, numbers). These can often work by accident in CPython, but are not " "guaranteed by the language spec. The warning advises users to use equality " -"tests (``==`` and ``!=``) instead. (Contributed by Serhiy Storchaka " -"in :issue:`34850`.)" +"tests (``==`` and ``!=``) instead. (Contributed by Serhiy Storchaka in :" +"issue:`34850`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1830 msgid "" "The CPython interpreter can swallow exceptions in some circumstances. In " "Python 3.8 this happens in fewer cases. In particular, exceptions raised " @@ -2782,41 +2336,35 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`35459`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1835 msgid "" -"Removed ``__str__`` implementations from builtin " -"types :class:`bool`, :class:`int`, :class:`float`, :class:`complex` and few " -"classes from the standard library. They now inherit ``__str__()`` " -"from :class:`object`. As result, defining the ``__repr__()`` method in the " -"subclass of these classes will affect their string representation. " -"(Contributed by Serhiy Storchaka in :issue:`36793`.)" +"Removed ``__str__`` implementations from builtin types :class:`bool`, :class:" +"`int`, :class:`float`, :class:`complex` and few classes from the standard " +"library. They now inherit ``__str__()`` from :class:`object`. As result, " +"defining the ``__repr__()`` method in the subclass of these classes will " +"affect their string representation. (Contributed by Serhiy Storchaka in :" +"issue:`36793`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1842 msgid "" "On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix3'`` .. ``'aix7'``. Since older " "Python versions include the version number, so it is recommended to always " -"use ``sys.platform.startswith('aix')``. (Contributed by M. Felt " -"in :issue:`36588`.)" +"use ``sys.platform.startswith('aix')``. (Contributed by M. Felt in :issue:" +"`36588`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1848 msgid "" ":c:func:`!PyEval_AcquireLock` and :c:func:`!PyEval_AcquireThread` now " "terminate the current thread if called while the interpreter is finalizing, " -"making them consistent " -"with :c:func:`PyEval_RestoreThread`, :c:func:`Py_END_ALLOW_THREADS`, " -"and :c:func:`PyGILState_Ensure`. If this behavior is not desired, guard the " -"call by checking :c:func:`!_Py_IsFinalizing` or :func:`sys.is_finalizing`. " -"(Contributed by Joannah Nanjekye in :issue:`36475`.)" +"making them consistent with :c:func:`PyEval_RestoreThread`, :c:func:" +"`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`. If this behavior is " +"not desired, guard the call by checking :c:func:`!_Py_IsFinalizing` or :func:" +"`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:`36475`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1858 ../../whatsnew/3.8.rst:2321 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.8.rst:1860 msgid "" "The :func:`os.getcwdb` function now uses the UTF-8 encoding on Windows, " "rather than the ANSI code page: see :pep:`529` for the rationale. The " @@ -2824,106 +2372,95 @@ msgid "" "in :issue:`37412`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1865 msgid "" ":class:`subprocess.Popen` can now use :func:`os.posix_spawn` in some cases " "for better performance. On Windows Subsystem for Linux and QEMU User " -"Emulation, the :class:`Popen` constructor using :func:`os.posix_spawn` no " -"longer raises an exception on errors like \"missing program\". Instead the " -"child process fails with a non-zero :attr:`~Popen.returncode`. (Contributed " -"by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" +"Emulation, the :class:`~subprocess.Popen` constructor using :func:`os." +"posix_spawn` no longer raises an exception on errors like \"missing " +"program\". Instead the child process fails with a non-zero :attr:" +"`~subprocess.Popen.returncode`. (Contributed by Joannah Nanjekye and Victor " +"Stinner in :issue:`35537`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1872 msgid "" "The *preexec_fn* argument of * :class:`subprocess.Popen` is no longer " "compatible with subinterpreters. The use of the parameter in a " -"subinterpreter now raises :exc:`RuntimeError`. (Contributed by Eric Snow " -"in :issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" +"subinterpreter now raises :exc:`RuntimeError`. (Contributed by Eric Snow in :" +"issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1878 msgid "" -"The :meth:`imap.IMAP4.logout` method no longer silently ignores arbitrary " +"The :meth:`imaplib.IMAP4.logout` method no longer silently ignores arbitrary " "exceptions. (Contributed by Victor Stinner in :issue:`36348`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1886 msgid "" "The :func:`statistics.mode` function no longer raises an exception when " "given multimodal data. Instead, it returns the first mode encountered in " "the input data. (Contributed by Raymond Hettinger in :issue:`35892`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1891 msgid "" -"The :meth:`~tkinter.ttk.Treeview.selection` method of " -"the :class:`tkinter.ttk.Treeview` class no longer takes arguments. Using it " -"with arguments for changing the selection was deprecated in Python 3.6. Use " -"specialized methods like :meth:`~tkinter.ttk.Treeview.selection_set` for " -"changing the selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" +"The :meth:`~tkinter.ttk.Treeview.selection` method of the :class:`tkinter." +"ttk.Treeview` class no longer takes arguments. Using it with arguments for " +"changing the selection was deprecated in Python 3.6. Use specialized " +"methods like :meth:`~tkinter.ttk.Treeview.selection_set` for changing the " +"selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1897 msgid "" -"The :meth:`writexml`, :meth:`toxml` and :meth:`toprettyxml` methods " -"of :mod:`xml.dom.minidom`, and the :meth:`write` method of :mod:`xml.etree`, " -"now preserve the attribute order specified by the user. (Contributed by " -"Diego Rojas and Raymond Hettinger in :issue:`34160`.)" +"The :meth:`~xml.dom.minidom.Node.writexml`, :meth:`~xml.dom.minidom.Node." +"toxml` and :meth:`~xml.dom.minidom.Node.toprettyxml` methods of :mod:`xml." +"dom.minidom` and the :meth:`~xml.etree.ElementTree.ElementTree.write` method " +"of :mod:`xml.etree.ElementTree` now preserve the attribute order specified " +"by the user. (Contributed by Diego Rojas and Raymond Hettinger in :issue:" +"`34160`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1902 msgid "" -"A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-" -"only. :func:`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates " -"a database if it does not exist. (Contributed by Serhiy Storchaka " -"in :issue:`32749`.)" +"A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-only. :func:" +"`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates a database " +"if it does not exist. (Contributed by Serhiy Storchaka in :issue:`32749`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1907 msgid "" -"The ``doctype()`` method defined in a subclass " -"of :class:`~xml.etree.ElementTree.XMLParser` will no longer be called and " -"will emit a :exc:`RuntimeWarning` instead of a :exc:`DeprecationWarning`. " -"Define the :meth:`doctype() ` " -"method on a target for handling an XML doctype declaration. (Contributed by " -"Serhiy Storchaka in :issue:`29209`.)" +"The ``doctype()`` method defined in a subclass of :class:`~xml.etree." +"ElementTree.XMLParser` will no longer be called and will emit a :exc:" +"`RuntimeWarning` instead of a :exc:`DeprecationWarning`. Define the :meth:" +"`doctype() ` method on a target " +"for handling an XML doctype declaration. (Contributed by Serhiy Storchaka " +"in :issue:`29209`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1914 msgid "" "A :exc:`RuntimeError` is now raised when the custom metaclass doesn't " -"provide the ``__classcell__`` entry in the namespace passed to " -"``type.__new__``. A :exc:`DeprecationWarning` was emitted in Python " -"3.6--3.7. (Contributed by Serhiy Storchaka in :issue:`23722`.)" +"provide the ``__classcell__`` entry in the namespace passed to ``type." +"__new__``. A :exc:`DeprecationWarning` was emitted in Python 3.6--3.7. " +"(Contributed by Serhiy Storchaka in :issue:`23722`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1919 msgid "" -"The :class:`cProfile.Profile` class can now be used as a context manager. " -"(Contributed by Scott Sanderson in :issue:`29235`.)" +"The :class:`cProfile.Profile ` class can now be used as a " +"context manager. (Contributed by Scott Sanderson in :issue:`29235`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1922 msgid "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " -"and :func:`shutil.move` use platform-specific \"fast-copy\" syscalls " -"(see :ref:`shutil-platform-dependent-efficient-copy-operations` section)." +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" +"`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" +"copy\" syscalls (see :ref:`shutil-platform-dependent-efficient-copy-" +"operations` section)." msgstr "" -#: ../../whatsnew/3.8.rst:1927 msgid "" ":func:`shutil.copyfile` default buffer size on Windows was changed from 16 " "KiB to 1 MiB." msgstr "" -#: ../../whatsnew/3.8.rst:1930 msgid "" "The ``PyGC_Head`` struct has changed completely. All code that touched the " "struct member should be rewritten. (See :issue:`33597`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1933 msgid "" "The :c:type:`PyInterpreterState` struct has been moved into the \"internal\" " "header files (specifically Include/internal/pycore_pystate.h). An opaque " @@ -2935,7 +2472,6 @@ msgid "" "functions to the public API). (See :issue:`35886`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1943 msgid "" "The :meth:`mmap.flush() ` method now returns ``None`` on " "success and raises an exception on error under all platforms. Previously, " @@ -2945,30 +2481,25 @@ msgid "" "(Contributed by Berker Peksag in :issue:`2122`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1950 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1954 msgid "" -"Deleting a key from a read-only :mod:`dbm` database " -"(:mod:`dbm.dumb`, :mod:`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`error` " -"(:exc:`dbm.dumb.error`, :exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) " -"instead of :exc:`KeyError`. (Contributed by Xiang Zhang in :issue:`33106`.)" +"Deleting a key from a read-only :mod:`dbm` database (:mod:`dbm.dumb`, :mod:" +"`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`!error` (:exc:`dbm.dumb.error`, :" +"exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) instead of :exc:`KeyError`. " +"(Contributed by Xiang Zhang in :issue:`33106`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1959 msgid "" -"Simplified AST for literals. All constants will be represented " -"as :class:`ast.Constant` instances. Instantiating old classes ``Num``, " -"``Str``, ``Bytes``, ``NameConstant`` and ``Ellipsis`` will return an " -"instance of ``Constant``. (Contributed by Serhiy Storchaka " -"in :issue:`32892`.)" +"Simplified AST for literals. All constants will be represented as :class:" +"`ast.Constant` instances. Instantiating old classes ``Num``, ``Str``, " +"``Bytes``, ``NameConstant`` and ``Ellipsis`` will return an instance of " +"``Constant``. (Contributed by Serhiy Storchaka in :issue:`32892`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1975 msgid "" "The function :func:`asyncio.wait_for` now correctly waits for cancellation " "when using an instance of :class:`asyncio.Task`. Previously, upon reaching " @@ -2976,41 +2507,35 @@ msgid "" "Pranskevichus in :issue:`32751`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1980 msgid "" "The function :func:`asyncio.BaseTransport.get_extra_info` now returns a safe " "to use socket object when 'socket' is passed to the *name* parameter. " "(Contributed by Yury Selivanov in :issue:`37027`.)" msgstr "" -#: ../../whatsnew/3.8.rst:1984 msgid ":class:`asyncio.BufferedProtocol` has graduated to the stable API." msgstr "" -#: ../../whatsnew/3.8.rst:1988 msgid "" "DLL dependencies for extension modules and DLLs loaded with :mod:`ctypes` on " "Windows are now resolved more securely. Only the system paths, the directory " -"containing the DLL or PYD file, and directories added " -"with :func:`~os.add_dll_directory` are searched for load-time dependencies. " -"Specifically, :envvar:`PATH` and the current working directory are no longer " -"used, and modifications to these will no longer have any effect on normal " -"DLL resolution. If your application relies on these mechanisms, you should " -"check for :func:`~os.add_dll_directory` and if it exists, use it to add your " -"DLLs directory while loading your library. Note that Windows 7 users will " -"need to ensure that Windows Update KB2533623 has been installed (this is " -"also verified by the installer). (Contributed by Steve Dower " -"in :issue:`36085`.)" +"containing the DLL or PYD file, and directories added with :func:`~os." +"add_dll_directory` are searched for load-time dependencies. Specifically, :" +"envvar:`PATH` and the current working directory are no longer used, and " +"modifications to these will no longer have any effect on normal DLL " +"resolution. If your application relies on these mechanisms, you should check " +"for :func:`~os.add_dll_directory` and if it exists, use it to add your DLLs " +"directory while loading your library. Note that Windows 7 users will need to " +"ensure that Windows Update KB2533623 has been installed (this is also " +"verified by the installer). (Contributed by Steve Dower in :issue:`36085`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2001 msgid "" "The header files and functions related to pgen have been removed after its " "replacement by a pure Python implementation. (Contributed by Pablo Galindo " "in :issue:`36623`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2005 msgid "" ":class:`types.CodeType` has a new parameter in the second position of the " "constructor (*posonlyargcount*) to support positional-only arguments defined " @@ -3020,17 +2545,14 @@ msgid "" "code future-proof." msgstr "" -#: ../../whatsnew/3.8.rst:2012 msgid "" "The parameter ``digestmod`` for :func:`hmac.new` no longer uses the MD5 " "digest by default." msgstr "" -#: ../../whatsnew/3.8.rst:2016 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.8.rst:2018 msgid "" "The :c:struct:`PyCompilerFlags` structure got a new *cf_feature_version* " "field. It should be initialized to ``PY_MINOR_VERSION``. The field is " @@ -3038,14 +2560,12 @@ msgid "" "in *cf_flags*. (Contributed by Guido van Rossum in :issue:`35766`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2024 msgid "" "The :c:func:`!PyEval_ReInitThreads` function has been removed from the C " "API. It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` " "instead. (Contributed by Victor Stinner in :issue:`36728`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2029 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin. When Python is embedded, ``libpython`` must not be loaded with " @@ -3056,31 +2576,26 @@ msgid "" "Stinner in :issue:`21536`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2037 msgid "" -"Use of ``#`` variants of formats in parsing or building value " -"(e.g. :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:`PyObject_CallFunction`, " -"etc.) without ``PY_SSIZE_T_CLEAN`` defined raises ``DeprecationWarning`` " -"now. It will be removed in 3.10 or 4.0. Read :ref:`arg-parsing` for detail. " -"(Contributed by Inada Naoki in :issue:`36381`.)" +"Use of ``#`` variants of formats in parsing or building value (e.g. :c:func:" +"`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:" +"`PyObject_CallFunction`, etc.) without ``PY_SSIZE_T_CLEAN`` defined raises " +"``DeprecationWarning`` now. It will be removed in 3.10 or 4.0. Read :ref:" +"`arg-parsing` for detail. (Contributed by Inada Naoki in :issue:`36381`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2043 msgid "" -"Instances of heap-allocated types (such as those created " -"with :c:func:`PyType_FromSpec`) hold a reference to their type object. " -"Increasing the reference count of these type objects has been moved " -"from :c:func:`PyType_GenericAlloc` to the more low-level " -"functions, :c:func:`PyObject_Init` and :c:func:`PyObject_INIT`. This makes " -"types created through :c:func:`PyType_FromSpec` behave like other classes in " -"managed code." +"Instances of heap-allocated types (such as those created with :c:func:" +"`PyType_FromSpec`) hold a reference to their type object. Increasing the " +"reference count of these type objects has been moved from :c:func:" +"`PyType_GenericAlloc` to the more low-level functions, :c:func:" +"`PyObject_Init` and :c:macro:`!PyObject_INIT`. This makes types created " +"through :c:func:`PyType_FromSpec` behave like other classes in managed code." msgstr "" -#: ../../whatsnew/3.8.rst:2051 msgid ":ref:`Statically allocated types ` are not affected." msgstr "" -#: ../../whatsnew/3.8.rst:2053 msgid "" "For the vast majority of cases, there should be no side effect. However, " "types that manually increase the reference count after allocating an " @@ -3089,26 +2604,21 @@ msgid "" "instance deallocation." msgstr "" -#: ../../whatsnew/3.8.rst:2059 msgid "" "To correctly port these types into 3.8, please apply the following changes:" msgstr "" -#: ../../whatsnew/3.8.rst:2062 msgid "" "Remove :c:macro:`Py_INCREF` on the type object after allocating an instance " -"- if any. This may happen after " -"calling :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " -"or any other custom allocator that uses :c:func:`PyObject_Init` " -"or :c:func:`PyObject_INIT`." +"- if any. This may happen after calling :c:macro:`PyObject_New`, :c:macro:" +"`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " +"or any other custom allocator that uses :c:func:`PyObject_Init` or :c:macro:" +"`!PyObject_INIT`." msgstr "" -#: ../../whatsnew/3.8.rst:2069 ../../whatsnew/3.8.rst:2088 -#: ../../whatsnew/3.8.rst:2107 msgid "Example:" msgstr "" -#: ../../whatsnew/3.8.rst:2071 msgid "" "static foo_struct *\n" "foo_new(PyObject *type) {\n" @@ -3123,13 +2633,11 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.8.rst:2085 msgid "" "Ensure that all custom ``tp_dealloc`` functions of heap-allocated types " "decrease the type's reference count." msgstr "" -#: ../../whatsnew/3.8.rst:2090 msgid "" "static void\n" "foo_dealloc(foo_struct *instance) {\n" @@ -3142,47 +2650,38 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.8.rst:2102 msgid "(Contributed by Eddie Elizondo in :issue:`35810`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2104 msgid "" "The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC. The " "macro now must be placed before the symbol name." msgstr "" -#: ../../whatsnew/3.8.rst:2109 msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" msgstr "" -#: ../../whatsnew/3.8.rst:2113 msgid "(Contributed by Zackery Spytz in :issue:`33407`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2115 msgid "" "The interpreter does not pretend to support binary compatibility of " "extension types across feature releases, anymore. A :c:type:`PyTypeObject` " "exported by a third-party extension module is supposed to have all the slots " -"expected in the current Python version, " -"including :c:member:`~PyTypeObject.tp_finalize` " -"(:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore before " -"reading :c:member:`~PyTypeObject.tp_finalize`)." +"expected in the current Python version, including :c:member:`~PyTypeObject." +"tp_finalize` (:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore " +"before reading :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" -#: ../../whatsnew/3.8.rst:2122 msgid "(Contributed by Antoine Pitrou in :issue:`32388`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2124 msgid "" "The functions :c:func:`!PyNode_AddChild` and :c:func:`!PyParser_AddToken` " "now accept two additional ``int`` arguments *end_lineno* and " "*end_col_offset*." msgstr "" -#: ../../whatsnew/3.8.rst:2127 msgid "" "The :file:`libpython38.a` file to allow MinGW tools to link directly " "against :file:`python38.dll` is no longer included in the regular Windows " @@ -3191,30 +2690,25 @@ msgid "" "package:" msgstr "" -#: ../../whatsnew/3.8.rst:2132 msgid "" "gendef - python38.dll > tmp.def\n" "dlltool --dllname python38.dll --def tmp.def --output-lib libpython38.a" msgstr "" -#: ../../whatsnew/3.8.rst:2137 msgid "" "The location of an installed :file:`pythonXY.dll` will depend on the " -"installation options and the version and language of Windows. " -"See :ref:`using-on-windows` for more information. The resulting library " -"should be placed in the same directory as :file:`pythonXY.lib`, which is " -"generally the :file:`libs` directory under your Python installation." +"installation options and the version and language of Windows. See :ref:" +"`using-on-windows` for more information. The resulting library should be " +"placed in the same directory as :file:`pythonXY.lib`, which is generally " +"the :file:`libs` directory under your Python installation." msgstr "" -#: ../../whatsnew/3.8.rst:2143 msgid "(Contributed by Steve Dower in :issue:`37351`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2147 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.8.rst:2149 msgid "" "The interpreter loop has been simplified by moving the logic of unrolling " "the stack of blocks into the compiler. The compiler emits now explicit " @@ -3222,7 +2716,6 @@ msgid "" "code for :keyword:`break`, :keyword:`continue` and :keyword:`return`." msgstr "" -#: ../../whatsnew/3.8.rst:2155 msgid "" "Removed opcodes :opcode:`!BREAK_LOOP`, :opcode:`!CONTINUE_LOOP`, :opcode:`!" "SETUP_LOOP` and :opcode:`!SETUP_EXCEPT`. Added new opcodes :opcode:`!" @@ -3231,20 +2724,17 @@ msgid "" "WITH_CLEANUP_START`." msgstr "" -#: ../../whatsnew/3.8.rst:2161 msgid "" -"(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka " -"in :issue:`17611`.)" +"(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in :issue:" +"`17611`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2164 msgid "" "Added new opcode :opcode:`END_ASYNC_FOR` for handling exceptions raised when " "awaiting a next item in an :keyword:`async for` loop. (Contributed by Serhiy " "Storchaka in :issue:`33041`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2168 msgid "" "The :opcode:`MAP_ADD` now expects the value as the first element in the " "stack and the key as the second element. This change was made so the key is " @@ -3252,22 +2742,18 @@ msgid "" "by :pep:`572`. (Contributed by Jörn Heissler in :issue:`35224`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2175 msgid "Demos and Tools" msgstr "" -#: ../../whatsnew/3.8.rst:2177 msgid "" "Added a benchmark script for timing various ways to access variables: " "``Tools/scripts/var_access_benchmark.py``. (Contributed by Raymond Hettinger " "in :issue:`35884`.)" msgstr "" -#: ../../whatsnew/3.8.rst:2181 msgid "Here's a summary of performance improvements since Python 3.3:" msgstr "" -#: ../../whatsnew/3.8.rst:2183 msgid "" "Python version 3.3 3.4 3.5 3.6 3.7 " "3.8\n" @@ -3343,7 +2829,6 @@ msgid "" "0.3" msgstr "" -#: ../../whatsnew/3.8.rst:2228 msgid "" "The benchmarks were measured on an `Intel® Core™ i7-4960HQ processor " "`." +"Python 3.9 was released on October 5, 2020. For full details, see the :ref:" +"`changelog `." msgstr "" -#: ../../whatsnew/3.9.rst:51 msgid ":pep:`596` - Python 3.9 Release Schedule" msgstr "" -#: ../../whatsnew/3.9.rst:55 msgid "Summary -- Release highlights" msgstr "" -#: ../../whatsnew/3.9.rst:60 msgid "New syntax features:" msgstr "" -#: ../../whatsnew/3.9.rst:62 msgid ":pep:`584`, union operators added to ``dict``;" msgstr "" -#: ../../whatsnew/3.9.rst:63 msgid ":pep:`585`, type hinting generics in standard collections;" msgstr "" -#: ../../whatsnew/3.9.rst:64 msgid ":pep:`614`, relaxed grammar restrictions on decorators." msgstr "" -#: ../../whatsnew/3.9.rst:66 msgid "New built-in features:" msgstr "" -#: ../../whatsnew/3.9.rst:68 msgid ":pep:`616`, string methods to remove prefixes and suffixes." msgstr "" -#: ../../whatsnew/3.9.rst:70 msgid "New features in the standard library:" msgstr "" -#: ../../whatsnew/3.9.rst:72 msgid ":pep:`593`, flexible function and variable annotations;" msgstr "" -#: ../../whatsnew/3.9.rst:73 msgid "" ":func:`os.pidfd_open` added that allows process management without races and " "signals." msgstr "" -#: ../../whatsnew/3.9.rst:76 msgid "Interpreter improvements:" msgstr "" -#: ../../whatsnew/3.9.rst:78 msgid "" ":pep:`573`, fast access to module state from methods of C extension types;" msgstr "" -#: ../../whatsnew/3.9.rst:80 msgid ":pep:`617`, CPython now uses a new parser based on PEG;" msgstr "" -#: ../../whatsnew/3.9.rst:81 msgid "" "a number of Python builtins (range, tuple, set, frozenset, list, dict) are " "now sped up using :pep:`590` vectorcall;" msgstr "" -#: ../../whatsnew/3.9.rst:83 msgid "garbage collection does not block on resurrected objects;" msgstr "" -#: ../../whatsnew/3.9.rst:84 msgid "" -"a number of Python modules (:mod:`!_abc`, :mod:`!audioop`, :mod:`!" -"_bz2`, :mod:`!_codecs`, :mod:`!_contextvars`, :mod:`!_crypt`, :mod:`!" -"_functools`, :mod:`!_json`, :mod:`!" -"_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:`time`, :mod:`!" -"_weakref`) now use multiphase initialization as defined by PEP 489;" +"a number of Python modules (:mod:`!_abc`, :mod:`!audioop`, :mod:`!_bz2`, :" +"mod:`!_codecs`, :mod:`!_contextvars`, :mod:`!_crypt`, :mod:`!_functools`, :" +"mod:`!_json`, :mod:`!_locale`, :mod:`math`, :mod:`operator`, :mod:" +"`resource`, :mod:`time`, :mod:`!_weakref`) now use multiphase initialization " +"as defined by PEP 489;" msgstr "" -#: ../../whatsnew/3.9.rst:89 msgid "" -"a number of standard library modules (:mod:`!" -"audioop`, :mod:`ast`, :mod:`grp`, :mod:`!_hashlib`, :mod:`pwd`, :mod:`!" -"_posixsubprocess`, :mod:`random`, :mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) " -"are now using the stable ABI defined by PEP 384." +"a number of standard library modules (:mod:`!audioop`, :mod:`ast`, :mod:" +"`grp`, :mod:`!_hashlib`, :mod:`pwd`, :mod:`!_posixsubprocess`, :mod:" +"`random`, :mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) are now " +"using the stable ABI defined by PEP 384." msgstr "" -#: ../../whatsnew/3.9.rst:94 msgid "New library modules:" msgstr "" -#: ../../whatsnew/3.9.rst:96 msgid "" ":pep:`615`, the IANA Time Zone Database is now present in the standard " "library in the :mod:`zoneinfo` module;" msgstr "" -#: ../../whatsnew/3.9.rst:98 msgid "" "an implementation of a topological sort of a graph is now provided in the " "new :mod:`graphlib` module." msgstr "" -#: ../../whatsnew/3.9.rst:101 msgid "Release process changes:" msgstr "" -#: ../../whatsnew/3.9.rst:103 msgid ":pep:`602`, CPython adopts an annual release cycle." msgstr "" -#: ../../whatsnew/3.9.rst:107 msgid "You should check for DeprecationWarning in your code" msgstr "" -#: ../../whatsnew/3.9.rst:109 msgid "" "When Python 2.7 was still supported, a lot of functionality in Python 3 was " "kept for backward compatibility with Python 2.7. With the end of Python 2 " @@ -162,7 +133,6 @@ msgid "" "3.3, released in 2012." msgstr "" -#: ../../whatsnew/3.9.rst:117 msgid "" "Test your application with the :option:`-W` ``default`` command-line option " "to see :exc:`DeprecationWarning` and :exc:`PendingDeprecationWarning`, or " @@ -171,54 +141,45 @@ msgid "" "code." msgstr "" -#: ../../whatsnew/3.9.rst:122 msgid "" "Python 3.9 is the last version providing those Python 2 backward " "compatibility layers, to give more time to Python projects maintainers to " "organize the removal of the Python 2 support and add support for Python 3.9." msgstr "" -#: ../../whatsnew/3.9.rst:126 msgid "" "Aliases to :ref:`Abstract Base Classes ` " -"in the :mod:`collections` module, like ``collections.Mapping`` alias " -"to :class:`collections.abc.Mapping`, are kept for one last release for " -"backward compatibility. They will be removed from Python 3.10." +"in the :mod:`collections` module, like ``collections.Mapping`` alias to :" +"class:`collections.abc.Mapping`, are kept for one last release for backward " +"compatibility. They will be removed from Python 3.10." msgstr "" -#: ../../whatsnew/3.9.rst:131 msgid "" "More generally, try to run your tests in the :ref:`Python Development Mode " "` which helps to prepare your code to make it compatible with the " "next Python version." msgstr "" -#: ../../whatsnew/3.9.rst:135 msgid "" "Note: a number of pre-existing deprecations were removed in this version of " "Python as well. Consult the :ref:`removed-in-python-39` section." msgstr "" -#: ../../whatsnew/3.9.rst:140 ../../whatsnew/3.9.rst:1272 msgid "New Features" msgstr "" -#: ../../whatsnew/3.9.rst:143 msgid "Dictionary Merge & Update Operators" msgstr "" -#: ../../whatsnew/3.9.rst:145 msgid "" -"Merge (``|``) and update (``|=``) operators have been added to the built-" -"in :class:`dict` class. Those complement the existing ``dict.update`` and " +"Merge (``|``) and update (``|=``) operators have been added to the built-in :" +"class:`dict` class. Those complement the existing ``dict.update`` and " "``{**d1, **d2}`` methods of merging dictionaries." msgstr "" -#: ../../whatsnew/3.9.rst:149 ../../whatsnew/3.9.rst:282 msgid "Example::" msgstr "" -#: ../../whatsnew/3.9.rst:151 msgid "" ">>> x = {\"key1\": \"value1 from x\", \"key2\": \"value2 from x\"}\n" ">>> y = {\"key2\": \"value2 from y\", \"key3\": \"value3 from y\"}\n" @@ -228,31 +189,26 @@ msgid "" "{'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}" msgstr "" -#: ../../whatsnew/3.9.rst:158 msgid "" -"See :pep:`584` for a full description. (Contributed by Brandt Bucher " -"in :issue:`36144`.)" +"See :pep:`584` for a full description. (Contributed by Brandt Bucher in :" +"issue:`36144`.)" msgstr "" -#: ../../whatsnew/3.9.rst:162 msgid "New String Methods to Remove Prefixes and Suffixes" msgstr "" -#: ../../whatsnew/3.9.rst:164 msgid "" -":meth:`str.removeprefix(prefix)` " -"and :meth:`str.removesuffix(suffix)` have been added to " -"easily remove an unneeded prefix or a suffix from a string. Corresponding " -"``bytes``, ``bytearray``, and ``collections.UserString`` methods have also " -"been added. See :pep:`616` for a full description. (Contributed by Dennis " -"Sweeney in :issue:`39939`.)" +":meth:`str.removeprefix(prefix)` and :meth:`str." +"removesuffix(suffix)` have been added to easily remove an " +"unneeded prefix or a suffix from a string. Corresponding ``bytes``, " +"``bytearray``, and ``collections.UserString`` methods have also been added. " +"See :pep:`616` for a full description. (Contributed by Dennis Sweeney in :" +"issue:`39939`.)" msgstr "" -#: ../../whatsnew/3.9.rst:172 msgid "Type Hinting Generics in Standard Collections" msgstr "" -#: ../../whatsnew/3.9.rst:174 msgid "" "In type annotations you can now use built-in collection types such as " "``list`` and ``dict`` as generic types instead of importing the " @@ -261,28 +217,23 @@ msgid "" "for example ``queue.Queue``." msgstr "" -#: ../../whatsnew/3.9.rst:180 ../../whatsnew/3.9.rst:1159 msgid "Example:" msgstr "" -#: ../../whatsnew/3.9.rst:182 msgid "" "def greet_all(names: list[str]) -> None:\n" " for name in names:\n" " print(\"Hello\", name)" msgstr "" -#: ../../whatsnew/3.9.rst:188 msgid "" "See :pep:`585` for more details. (Contributed by Guido van Rossum, Ethan " "Smith, and Batuhan Taşkaya in :issue:`39481`.)" msgstr "" -#: ../../whatsnew/3.9.rst:192 msgid "New Parser" msgstr "" -#: ../../whatsnew/3.9.rst:194 msgid "" "Python 3.9 uses a new parser, based on `PEG `_ instead of `LL(1) ` and in :ref:`debug build " "`, the *encoding* and *errors* arguments are now checked for " -"string encoding and decoding operations. " -"Examples: :func:`open`, :meth:`str.encode` and :meth:`bytes.decode`." +"string encoding and decoding operations. Examples: :func:`open`, :meth:`str." +"encode` and :meth:`bytes.decode`." msgstr "" -#: ../../whatsnew/3.9.rst:236 msgid "" "By default, for best performance, the *errors* argument is only checked at " "the first encoding/decoding error and the *encoding* argument is sometimes " "ignored for empty strings. (Contributed by Victor Stinner in :issue:`37388`.)" msgstr "" -#: ../../whatsnew/3.9.rst:241 msgid "" "``\"\".replace(\"\", s, n)`` now returns ``s`` instead of an empty string " "for all non-zero ``n``. It is now consistent with ``\"\".replace(\"\", " @@ -358,14 +300,12 @@ msgid "" "objects. (Contributed by Serhiy Storchaka in :issue:`28029`.)" msgstr "" -#: ../../whatsnew/3.9.rst:246 msgid "" "Any valid expression can now be used as a :term:`decorator`. Previously, " "the grammar was much more restrictive. See :pep:`614` for details. " "(Contributed by Brandt Bucher in :issue:`39702`.)" msgstr "" -#: ../../whatsnew/3.9.rst:250 msgid "" "Improved help for the :mod:`typing` module. Docstrings are now shown for all " "special forms and special generic aliases (like ``Union`` and ``List``). " @@ -374,47 +314,38 @@ msgid "" "Serhiy Storchaka in :issue:`40257`.)" msgstr "" -#: ../../whatsnew/3.9.rst:256 msgid "" -"Parallel running " -"of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:`~agen.athrow` is now " -"prohibited, and ``ag_running`` now reflects the actual running status of the " -"async generator. (Contributed by Yury Selivanov in :issue:`30773`.)" +"Parallel running of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:" +"`~agen.athrow` is now prohibited, and ``ag_running`` now reflects the actual " +"running status of the async generator. (Contributed by Yury Selivanov in :" +"issue:`30773`.)" msgstr "" -#: ../../whatsnew/3.9.rst:261 msgid "" "Unexpected errors in calling the ``__iter__`` method are no longer masked by " -"``TypeError`` in the :keyword:`in` operator and " -"functions :func:`~operator.contains`, :func:`~operator.indexOf` " -"and :func:`~operator.countOf` of the :mod:`operator` module. (Contributed by " -"Serhiy Storchaka in :issue:`40824`.)" +"``TypeError`` in the :keyword:`in` operator and functions :func:`~operator." +"contains`, :func:`~operator.indexOf` and :func:`~operator.countOf` of the :" +"mod:`operator` module. (Contributed by Serhiy Storchaka in :issue:`40824`.)" msgstr "" -#: ../../whatsnew/3.9.rst:267 msgid "" "Unparenthesized lambda expressions can no longer be the expression part in " -"an ``if`` clause in comprehensions and generator expressions. " -"See :issue:`41848` and :issue:`43755` for details." +"an ``if`` clause in comprehensions and generator expressions. See :issue:" +"`41848` and :issue:`43755` for details." msgstr "" -#: ../../whatsnew/3.9.rst:273 msgid "New Modules" msgstr "" -#: ../../whatsnew/3.9.rst:276 msgid "zoneinfo" msgstr "" -#: ../../whatsnew/3.9.rst:278 msgid "" "The :mod:`zoneinfo` module brings support for the IANA time zone database to " -"the standard library. It adds :class:`zoneinfo.ZoneInfo`, a " -"concrete :class:`datetime.tzinfo` implementation backed by the system's time " -"zone data." +"the standard library. It adds :class:`zoneinfo.ZoneInfo`, a concrete :class:" +"`datetime.tzinfo` implementation backed by the system's time zone data." msgstr "" -#: ../../whatsnew/3.9.rst:284 msgid "" ">>> from zoneinfo import ZoneInfo\n" ">>> from datetime import datetime, timedelta\n" @@ -435,50 +366,41 @@ msgid "" "PST" msgstr "" -#: ../../whatsnew/3.9.rst:302 msgid "" "As a fall-back source of data for platforms that don't ship the IANA " "database, the :pypi:`tzdata` module was released as a first-party package -- " "distributed via PyPI and maintained by the CPython core team." msgstr "" -#: ../../whatsnew/3.9.rst:308 msgid "" ":pep:`615` -- Support for the IANA Time Zone Database in the Standard Library" msgstr "" -#: ../../whatsnew/3.9.rst:309 msgid "PEP written and implemented by Paul Ganssle" msgstr "" -#: ../../whatsnew/3.9.rst:313 msgid "graphlib" msgstr "" -#: ../../whatsnew/3.9.rst:315 msgid "" -"A new module, :mod:`graphlib`, was added that contains " -"the :class:`graphlib.TopologicalSorter` class to offer functionality to " -"perform topological sorting of graphs. (Contributed by Pablo Galindo, Tim " -"Peters and Larry Hastings in :issue:`17005`.)" +"A new module, :mod:`graphlib`, was added that contains the :class:`graphlib." +"TopologicalSorter` class to offer functionality to perform topological " +"sorting of graphs. (Contributed by Pablo Galindo, Tim Peters and Larry " +"Hastings in :issue:`17005`.)" msgstr "" -#: ../../whatsnew/3.9.rst:322 msgid "Improved Modules" msgstr "" -#: ../../whatsnew/3.9.rst:325 msgid "ast" msgstr "" -#: ../../whatsnew/3.9.rst:327 msgid "" "Added the *indent* option to :func:`~ast.dump` which allows it to produce a " -"multiline indented output. (Contributed by Serhiy Storchaka " -"in :issue:`37995`.)" +"multiline indented output. (Contributed by Serhiy Storchaka in :issue:" +"`37995`.)" msgstr "" -#: ../../whatsnew/3.9.rst:331 msgid "" "Added :func:`ast.unparse` as a function in the :mod:`ast` module that can be " "used to unparse an :class:`ast.AST` object and produce a string with code " @@ -486,53 +408,44 @@ msgid "" "(Contributed by Pablo Galindo and Batuhan Taskaya in :issue:`38870`.)" msgstr "" -#: ../../whatsnew/3.9.rst:336 msgid "" "Added docstrings to AST nodes that contains the ASDL signature used to " "construct that node. (Contributed by Batuhan Taskaya in :issue:`39638`.)" msgstr "" -#: ../../whatsnew/3.9.rst:340 msgid "asyncio" msgstr "" -#: ../../whatsnew/3.9.rst:342 msgid "" -"Due to significant security concerns, the *reuse_address* parameter " -"of :meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. " -"This is because of the behavior of the socket option ``SO_REUSEADDR`` in " -"UDP. For more details, see the documentation for " -"``loop.create_datagram_endpoint()``. (Contributed by Kyle Stanley, Antoine " -"Pitrou, and Yury Selivanov in :issue:`37228`.)" +"Due to significant security concerns, the *reuse_address* parameter of :meth:" +"`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " +"because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " +"more details, see the documentation for ``loop.create_datagram_endpoint()``. " +"(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" +"`37228`.)" msgstr "" -#: ../../whatsnew/3.9.rst:349 msgid "" -"Added a " -"new :term:`coroutine` :meth:`~asyncio.loop.shutdown_default_executor` that " -"schedules a shutdown for the default executor that waits on " -"the :class:`~concurrent.futures.ThreadPoolExecutor` to finish closing. " -"Also, :func:`asyncio.run` has been updated to use the new :term:`coroutine`. " -"(Contributed by Kyle Stanley in :issue:`34037`.)" +"Added a new :term:`coroutine` :meth:`~asyncio.loop." +"shutdown_default_executor` that schedules a shutdown for the default " +"executor that waits on the :class:`~concurrent.futures.ThreadPoolExecutor` " +"to finish closing. Also, :func:`asyncio.run` has been updated to use the " +"new :term:`coroutine`. (Contributed by Kyle Stanley in :issue:`34037`.)" msgstr "" -#: ../../whatsnew/3.9.rst:355 msgid "" "Added :class:`!asyncio.PidfdChildWatcher`, a Linux-specific child watcher " "implementation that polls process file descriptors. (:issue:`38692`)" msgstr "" -#: ../../whatsnew/3.9.rst:358 msgid "" "Added a new :term:`coroutine` :func:`asyncio.to_thread`. It is mainly used " "for running IO-bound functions in a separate thread to avoid blocking the " -"event loop, and essentially works as a high-level version " -"of :meth:`~asyncio.loop.run_in_executor` that can directly take keyword " -"arguments. (Contributed by Kyle Stanley and Yury Selivanov " -"in :issue:`32309`.)" +"event loop, and essentially works as a high-level version of :meth:`~asyncio." +"loop.run_in_executor` that can directly take keyword arguments. (Contributed " +"by Kyle Stanley and Yury Selivanov in :issue:`32309`.)" msgstr "" -#: ../../whatsnew/3.9.rst:364 msgid "" "When cancelling the task due to a timeout, :meth:`asyncio.wait_for` will now " "wait until the cancellation is complete also in the case when *timeout* is " @@ -540,47 +453,39 @@ msgid "" "Pranskevichus in :issue:`32751`.)" msgstr "" -#: ../../whatsnew/3.9.rst:369 msgid "" ":mod:`asyncio` now raises :exc:`TypeError` when calling incompatible methods " -"with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael " -"in :issue:`37404`.)" +"with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael in :issue:" +"`37404`.)" msgstr "" -#: ../../whatsnew/3.9.rst:374 msgid "compileall" msgstr "" -#: ../../whatsnew/3.9.rst:376 msgid "" "Added new possibility to use hardlinks for duplicated ``.pyc`` files: " "*hardlink_dupes* parameter and --hardlink-dupes command line option. " "(Contributed by Lumír 'Frenzy' Balhar in :issue:`40495`.)" msgstr "" -#: ../../whatsnew/3.9.rst:379 msgid "" "Added new options for path manipulation in resulting ``.pyc`` files: " "*stripdir*, *prependdir*, *limit_sl_dest* parameters and -s, -p, -e command " "line options. Added the possibility to specify the option for an " -"optimization level multiple times. (Contributed by Lumír 'Frenzy' Balhar " -"in :issue:`38112`.)" +"optimization level multiple times. (Contributed by Lumír 'Frenzy' Balhar in :" +"issue:`38112`.)" msgstr "" -#: ../../whatsnew/3.9.rst:384 msgid "concurrent.futures" msgstr "" -#: ../../whatsnew/3.9.rst:386 msgid "" -"Added a new *cancel_futures* parameter " -"to :meth:`concurrent.futures.Executor.shutdown` that cancels all pending " -"futures which have not started running, instead of waiting for them to " -"complete before shutting down the executor. (Contributed by Kyle Stanley " -"in :issue:`39349`.)" +"Added a new *cancel_futures* parameter to :meth:`concurrent.futures.Executor." +"shutdown` that cancels all pending futures which have not started running, " +"instead of waiting for them to complete before shutting down the executor. " +"(Contributed by Kyle Stanley in :issue:`39349`.)" msgstr "" -#: ../../whatsnew/3.9.rst:392 msgid "" "Removed daemon threads from :class:`~concurrent.futures.ThreadPoolExecutor` " "and :class:`~concurrent.futures.ProcessPoolExecutor`. This improves " @@ -588,7 +493,6 @@ msgid "" "processes. (Contributed by Kyle Stanley in :issue:`39812`.)" msgstr "" -#: ../../whatsnew/3.9.rst:397 msgid "" "Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned " "on demand, only when there are no available idle workers to reuse. This " @@ -596,94 +500,78 @@ msgid "" "workers. (Contributed by Kyle Stanley in :issue:`39207`.)" msgstr "" -#: ../../whatsnew/3.9.rst:403 msgid "curses" msgstr "" -#: ../../whatsnew/3.9.rst:405 msgid "" -"Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:`curses.get_tabsize`, " -"and :func:`curses.set_tabsize` functions. (Contributed by Anthony Sottile " -"in :issue:`38312`.)" +"Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:" +"`curses.get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed " +"by Anthony Sottile in :issue:`38312`.)" msgstr "" -#: ../../whatsnew/3.9.rst:410 msgid "datetime" msgstr "" -#: ../../whatsnew/3.9.rst:411 msgid "" -"The :meth:`~datetime.date.isocalendar` of :class:`datetime.date` " -"and :meth:`~datetime.datetime.isocalendar` of :class:`datetime.datetime` " -"methods now returns a :func:`~collections.namedtuple` instead of " -"a :class:`tuple`. (Contributed by Donghee Na in :issue:`24416`.)" +"The :meth:`~datetime.date.isocalendar` of :class:`datetime.date` and :meth:" +"`~datetime.datetime.isocalendar` of :class:`datetime.datetime` methods now " +"returns a :func:`~collections.namedtuple` instead of a :class:`tuple`. " +"(Contributed by Donghee Na in :issue:`24416`.)" msgstr "" -#: ../../whatsnew/3.9.rst:417 msgid "distutils" msgstr "" -#: ../../whatsnew/3.9.rst:419 msgid "" "The :command:`upload` command now creates SHA2-256 and Blake2b-256 hash " "digests. It skips MD5 on platforms that block MD5 digest. (Contributed by " "Christian Heimes in :issue:`40698`.)" msgstr "" -#: ../../whatsnew/3.9.rst:424 msgid "fcntl" msgstr "" -#: ../../whatsnew/3.9.rst:426 msgid "" "Added constants :const:`!fcntl.F_OFD_GETLK`, :const:`!fcntl.F_OFD_SETLK` " -"and :const:`!fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na " -"in :issue:`38602`.)" +"and :const:`!fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na in :issue:" +"`38602`.)" msgstr "" -#: ../../whatsnew/3.9.rst:431 msgid "ftplib" msgstr "" -#: ../../whatsnew/3.9.rst:433 msgid "" -":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise " -"a :class:`ValueError` if the given timeout for their constructor is zero to " -"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " -"in :issue:`39259`.)" +":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:" +"`ValueError` if the given timeout for their constructor is zero to prevent " +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" +"`39259`.)" msgstr "" -#: ../../whatsnew/3.9.rst:438 msgid "gc" msgstr "" -#: ../../whatsnew/3.9.rst:440 msgid "" "When the garbage collector makes a collection in which some objects " "resurrect (they are reachable from outside the isolated cycles after the " "finalizers have been executed), do not block the collection of all objects " -"that are still unreachable. (Contributed by Pablo Galindo and Tim Peters " -"in :issue:`38379`.)" +"that are still unreachable. (Contributed by Pablo Galindo and Tim Peters in :" +"issue:`38379`.)" msgstr "" -#: ../../whatsnew/3.9.rst:445 msgid "" "Added a new function :func:`gc.is_finalized` to check if an object has been " -"finalized by the garbage collector. (Contributed by Pablo Galindo " -"in :issue:`39322`.)" +"finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:" +"`39322`.)" msgstr "" -#: ../../whatsnew/3.9.rst:450 msgid "hashlib" msgstr "" -#: ../../whatsnew/3.9.rst:452 msgid "" "The :mod:`hashlib` module can now use SHA3 hashes and SHAKE XOF from OpenSSL " "when available. (Contributed by Christian Heimes in :issue:`37630`.)" msgstr "" -#: ../../whatsnew/3.9.rst:456 msgid "" "Builtin hash modules can now be disabled with ``./configure --without-" "builtin-hashlib-hashes`` or selectively enabled with e.g. ``./configure --" @@ -691,86 +579,72 @@ msgid "" "implementation. (Contributed by Christian Heimes in :issue:`40479`)" msgstr "" -#: ../../whatsnew/3.9.rst:464 msgid "http" msgstr "" -#: ../../whatsnew/3.9.rst:466 msgid "" "HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 " "TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Donghee " "Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.)" msgstr "" -#: ../../whatsnew/3.9.rst:470 msgid "IDLE and idlelib" msgstr "" -#: ../../whatsnew/3.9.rst:472 msgid "" -"Added option to toggle cursor blink off. (Contributed by Zackery Spytz " -"in :issue:`4603`.)" +"Added option to toggle cursor blink off. (Contributed by Zackery Spytz in :" +"issue:`4603`.)" msgstr "" -#: ../../whatsnew/3.9.rst:475 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" msgstr "" -#: ../../whatsnew/3.9.rst:478 msgid "" "Added keywords to module name completion list. (Contributed by Terry J. " "Reedy in :issue:`37765`.)" msgstr "" -#: ../../whatsnew/3.9.rst:481 msgid "New in 3.9 maintenance releases" msgstr "" -#: ../../whatsnew/3.9.rst:483 msgid "" "Make IDLE invoke :func:`sys.excepthook` (when started without '-n'). User " -"hooks were previously ignored. (Contributed by Ken Hilton " -"in :issue:`43008`.)" +"hooks were previously ignored. (Contributed by Ken Hilton in :issue:" +"`43008`.)" msgstr "" -#: ../../whatsnew/3.9.rst:487 msgid "The changes above have been backported to 3.8 maintenance releases." msgstr "" -#: ../../whatsnew/3.9.rst:489 msgid "" "Rearrange the settings dialog. Split the General tab into Windows and Shell/" "Ed tabs. Move help sources, which extend the Help menu, to the Extensions " "tab. Make space for new options and shorten the dialog. The latter makes " -"the dialog better fit small screens. (Contributed by Terry Jan Reedy " -"in :issue:`40468`.) Move the indent space setting from the Font tab to the " -"new Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy " -"in :issue:`33962`.)" +"the dialog better fit small screens. (Contributed by Terry Jan Reedy in :" +"issue:`40468`.) Move the indent space setting from the Font tab to the new " +"Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy in :issue:" +"`33962`.)" msgstr "" -#: ../../whatsnew/3.9.rst:497 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" msgstr "" -#: ../../whatsnew/3.9.rst:501 msgid "imaplib" msgstr "" -#: ../../whatsnew/3.9.rst:503 msgid "" ":class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional " -"*timeout* parameter for their constructors. Also, " -"the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* " -"parameter with this change. The overridden methods " -"of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib.IMAP4_stream` were " -"applied to this change. (Contributed by Donghee Na in :issue:`38615`.)" +"*timeout* parameter for their constructors. Also, the :meth:`~imaplib.IMAP4." +"open` method now has an optional *timeout* parameter with this change. The " +"overridden methods of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib." +"IMAP4_stream` were applied to this change. (Contributed by Donghee Na in :" +"issue:`38615`.)" msgstr "" -#: ../../whatsnew/3.9.rst:510 msgid "" ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " "frees server's resources associated with the selected mailbox and returns " @@ -780,281 +654,231 @@ msgid "" "Donghee Na in :issue:`40375`.)" msgstr "" -#: ../../whatsnew/3.9.rst:518 msgid "importlib" msgstr "" -#: ../../whatsnew/3.9.rst:520 msgid "" -"To improve consistency with import " -"statements, :func:`importlib.util.resolve_name` now " -"raises :exc:`ImportError` instead of :exc:`ValueError` for invalid relative " -"import attempts. (Contributed by Ngalim Siregar in :issue:`37444`.)" +"To improve consistency with import statements, :func:`importlib.util." +"resolve_name` now raises :exc:`ImportError` instead of :exc:`ValueError` for " +"invalid relative import attempts. (Contributed by Ngalim Siregar in :issue:" +"`37444`.)" msgstr "" -#: ../../whatsnew/3.9.rst:525 msgid "" "Import loaders which publish immutable module objects can now publish " "immutable packages in addition to individual modules. (Contributed by Dino " "Viehland in :issue:`39336`.)" msgstr "" -#: ../../whatsnew/3.9.rst:529 msgid "" "Added :func:`importlib.resources.files` function with support for " "subdirectories in package data, matching backport in ``importlib_resources`` " "version 1.5. (Contributed by Jason R. Coombs in :issue:`39791`.)" msgstr "" -#: ../../whatsnew/3.9.rst:534 msgid "" "Refreshed ``importlib.metadata`` from ``importlib_metadata`` version 1.6.1." msgstr "" -#: ../../whatsnew/3.9.rst:537 msgid "inspect" msgstr "" -#: ../../whatsnew/3.9.rst:539 msgid "" ":attr:`inspect.BoundArguments.arguments` is changed from ``OrderedDict`` to " -"regular dict. (Contributed by Inada Naoki in :issue:`36350` " -"and :issue:`39775`.)" +"regular dict. (Contributed by Inada Naoki in :issue:`36350` and :issue:" +"`39775`.)" msgstr "" -#: ../../whatsnew/3.9.rst:543 msgid "ipaddress" msgstr "" -#: ../../whatsnew/3.9.rst:545 msgid "" ":mod:`ipaddress` now supports IPv6 Scoped Addresses (IPv6 address with " "suffix ``%``)." msgstr "" -#: ../../whatsnew/3.9.rst:547 msgid "" "Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If " -"present, scope zone ID is available through " -"the :attr:`~ipaddress.IPv6Address.scope_id` attribute. (Contributed by " -"Oleksandr Pavliuk in :issue:`34788`.)" +"present, scope zone ID is available through the :attr:`~ipaddress." +"IPv6Address.scope_id` attribute. (Contributed by Oleksandr Pavliuk in :issue:" +"`34788`.)" msgstr "" -#: ../../whatsnew/3.9.rst:551 msgid "" "Starting with Python 3.9.5 the :mod:`ipaddress` module no longer accepts any " -"leading zeros in IPv4 address strings. (Contributed by Christian Heimes " -"in :issue:`36384`)." +"leading zeros in IPv4 address strings. (Contributed by Christian Heimes in :" +"issue:`36384`)." msgstr "" -#: ../../whatsnew/3.9.rst:556 msgid "math" msgstr "" -#: ../../whatsnew/3.9.rst:558 msgid "" "Expanded the :func:`math.gcd` function to handle multiple arguments. " "Formerly, it only supported two arguments. (Contributed by Serhiy Storchaka " "in :issue:`39648`.)" msgstr "" -#: ../../whatsnew/3.9.rst:562 msgid "" "Added :func:`math.lcm`: return the least common multiple of specified " "arguments. (Contributed by Mark Dickinson, Ananthakrishnan and Serhiy " "Storchaka in :issue:`39479` and :issue:`39648`.)" msgstr "" -#: ../../whatsnew/3.9.rst:566 msgid "" "Added :func:`math.nextafter`: return the next floating-point value after *x* " "towards *y*. (Contributed by Victor Stinner in :issue:`39288`.)" msgstr "" -#: ../../whatsnew/3.9.rst:570 msgid "" "Added :func:`math.ulp`: return the value of the least significant bit of a " "float. (Contributed by Victor Stinner in :issue:`39310`.)" msgstr "" -#: ../../whatsnew/3.9.rst:575 msgid "multiprocessing" msgstr "" -#: ../../whatsnew/3.9.rst:577 msgid "" -"The :class:`multiprocessing.SimpleQueue` class has a " -"new :meth:`~multiprocessing.SimpleQueue.close` method to explicitly close " -"the queue. (Contributed by Victor Stinner in :issue:`30966`.)" +"The :class:`multiprocessing.SimpleQueue` class has a new :meth:" +"`~multiprocessing.SimpleQueue.close` method to explicitly close the queue. " +"(Contributed by Victor Stinner in :issue:`30966`.)" msgstr "" -#: ../../whatsnew/3.9.rst:583 msgid "nntplib" msgstr "" -#: ../../whatsnew/3.9.rst:585 msgid "" ":class:`!NNTP` and :class:`!NNTP_SSL` now raise a :class:`ValueError` if the " "given timeout for their constructor is zero to prevent the creation of a non-" "blocking socket. (Contributed by Donghee Na in :issue:`39259`.)" msgstr "" -#: ../../whatsnew/3.9.rst:590 msgid "os" msgstr "" -#: ../../whatsnew/3.9.rst:592 msgid "" "Added :const:`~os.CLD_KILLED` and :const:`~os.CLD_STOPPED` for :attr:`!" "si_code`. (Contributed by Donghee Na in :issue:`38493`.)" msgstr "" -#: ../../whatsnew/3.9.rst:595 msgid "" -"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) " -"and :const:`os.P_PIDFD` (:issue:`38713`) for process management with file " -"descriptors." +"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :const:" +"`os.P_PIDFD` (:issue:`38713`) for process management with file descriptors." msgstr "" -#: ../../whatsnew/3.9.rst:599 msgid "" "The :func:`os.unsetenv` function is now also available on Windows. " "(Contributed by Victor Stinner in :issue:`39413`.)" msgstr "" -#: ../../whatsnew/3.9.rst:602 msgid "" "The :func:`os.putenv` and :func:`os.unsetenv` functions are now always " "available. (Contributed by Victor Stinner in :issue:`39395`.)" msgstr "" -#: ../../whatsnew/3.9.rst:606 msgid "" "Added :func:`os.waitstatus_to_exitcode` function: convert a wait status to " "an exit code. (Contributed by Victor Stinner in :issue:`40094`.)" msgstr "" -#: ../../whatsnew/3.9.rst:611 msgid "pathlib" msgstr "" -#: ../../whatsnew/3.9.rst:613 msgid "" -"Added :meth:`pathlib.Path.readlink` which acts similarly " -"to :func:`os.readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" +"Added :meth:`pathlib.Path.readlink` which acts similarly to :func:`os." +"readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" msgstr "" -#: ../../whatsnew/3.9.rst:618 msgid "pdb" msgstr "" -#: ../../whatsnew/3.9.rst:620 msgid "" "On Windows now :class:`~pdb.Pdb` supports ``~/.pdbrc``. (Contributed by Tim " "Hopper and Dan Lidral-Porter in :issue:`20523`.)" msgstr "" -#: ../../whatsnew/3.9.rst:624 msgid "poplib" msgstr "" -#: ../../whatsnew/3.9.rst:626 msgid "" -":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise " -"a :class:`ValueError` if the given timeout for their constructor is zero to " -"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " -"in :issue:`39259`.)" +":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:" +"`ValueError` if the given timeout for their constructor is zero to prevent " +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" +"`39259`.)" msgstr "" -#: ../../whatsnew/3.9.rst:631 msgid "pprint" msgstr "" -#: ../../whatsnew/3.9.rst:633 msgid "" ":mod:`pprint` can now pretty-print :class:`types.SimpleNamespace`. " "(Contributed by Carl Bordum Hansen in :issue:`37376`.)" msgstr "" -#: ../../whatsnew/3.9.rst:637 msgid "pydoc" msgstr "" -#: ../../whatsnew/3.9.rst:639 msgid "" "The documentation string is now shown not only for class, function, method " "etc, but for any object that has its own :attr:`~definition.__doc__` " "attribute. (Contributed by Serhiy Storchaka in :issue:`40257`.)" msgstr "" -#: ../../whatsnew/3.9.rst:645 msgid "random" msgstr "" -#: ../../whatsnew/3.9.rst:647 msgid "" "Added a new :meth:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" msgstr "" -#: ../../whatsnew/3.9.rst:651 msgid "signal" msgstr "" -#: ../../whatsnew/3.9.rst:653 msgid "" "Exposed the Linux-specific :func:`signal.pidfd_send_signal` for sending to " -"signals to a process using a file descriptor instead of a pid. " -"(:issue:`38712`)" +"signals to a process using a file descriptor instead of a pid. (:issue:" +"`38712`)" msgstr "" -#: ../../whatsnew/3.9.rst:657 msgid "smtplib" msgstr "" -#: ../../whatsnew/3.9.rst:659 msgid "" -":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise " -"a :class:`ValueError` if the given timeout for their constructor is zero to " -"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " -"in :issue:`39259`.)" +":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:" +"`ValueError` if the given timeout for their constructor is zero to prevent " +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" +"`39259`.)" msgstr "" -#: ../../whatsnew/3.9.rst:663 msgid "" ":class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter. " "(Contributed by Donghee Na in :issue:`39329`.)" msgstr "" -#: ../../whatsnew/3.9.rst:667 msgid "socket" msgstr "" -#: ../../whatsnew/3.9.rst:669 msgid "" -"The :mod:`socket` module now exports " -"the :const:`~socket.CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. " -"(Contributed by Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" +"The :mod:`socket` module now exports the :const:`~socket." +"CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. (Contributed by " +"Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" msgstr "" -#: ../../whatsnew/3.9.rst:673 msgid "" "The socket module now supports the :const:`~socket.CAN_J1939` protocol on " "platforms that support it. (Contributed by Karl Ding in :issue:`40291`.)" msgstr "" -#: ../../whatsnew/3.9.rst:676 msgid "" -"The socket module now has the :func:`socket.send_fds` " -"and :func:`socket.recv_fds` functions. (Contributed by Joannah Nanjekye, " -"Shinya Okano and Victor Stinner in :issue:`28724`.)" +"The socket module now has the :func:`socket.send_fds` and :func:`socket." +"recv_fds` functions. (Contributed by Joannah Nanjekye, Shinya Okano and " +"Victor Stinner in :issue:`28724`.)" msgstr "" -#: ../../whatsnew/3.9.rst:682 msgid "time" msgstr "" -#: ../../whatsnew/3.9.rst:684 msgid "" "On AIX, :func:`~time.thread_time` is now implemented with " "``thread_cputime()`` which has nanosecond resolution, rather than " @@ -1062,11 +886,9 @@ msgid "" "milliseconds. (Contributed by Batuhan Taskaya in :issue:`40192`)" msgstr "" -#: ../../whatsnew/3.9.rst:690 msgid "sys" msgstr "" -#: ../../whatsnew/3.9.rst:692 msgid "" "Added a new :data:`sys.platlibdir` attribute: name of the platform-specific " "library directory. It is used to build the path of standard library and the " @@ -1076,29 +898,24 @@ msgid "" "and Victor Stinner in :issue:`1294959`.)" msgstr "" -#: ../../whatsnew/3.9.rst:698 msgid "" "Previously, :data:`sys.stderr` was block-buffered when non-interactive. Now " "``stderr`` defaults to always being line-buffered. (Contributed by Jendrik " "Seipp in :issue:`13601`.)" msgstr "" -#: ../../whatsnew/3.9.rst:703 msgid "tracemalloc" msgstr "" -#: ../../whatsnew/3.9.rst:705 msgid "" "Added :func:`tracemalloc.reset_peak` to set the peak size of traced memory " "blocks to the current size, to measure the peak of specific pieces of code. " "(Contributed by Huon Wilson in :issue:`40630`.)" msgstr "" -#: ../../whatsnew/3.9.rst:710 ../../whatsnew/3.9.rst:1494 msgid "typing" msgstr "" -#: ../../whatsnew/3.9.rst:712 msgid "" ":pep:`593` introduced an :data:`typing.Annotated` type to decorate existing " "types with context-specific metadata and new ``include_extras`` parameter " @@ -1106,20 +923,16 @@ msgid "" "(Contributed by Till Varoquaux and Konstantin Kashin.)" msgstr "" -#: ../../whatsnew/3.9.rst:718 msgid "unicodedata" msgstr "" -#: ../../whatsnew/3.9.rst:720 msgid "" "The Unicode database has been updated to version 13.0.0. (:issue:`39926`)." msgstr "" -#: ../../whatsnew/3.9.rst:723 msgid "venv" msgstr "" -#: ../../whatsnew/3.9.rst:725 msgid "" "The activation scripts provided by :mod:`venv` now all specify their prompt " "customization consistently by always using the value specified by " @@ -1129,45 +942,36 @@ msgid "" "Cannon in :issue:`37663`.)" msgstr "" -#: ../../whatsnew/3.9.rst:733 msgid "xml" msgstr "" -#: ../../whatsnew/3.9.rst:735 msgid "" -"White space characters within attributes are now preserved when " -"serializing :mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer " -"normalized to \"\\n\". This is the result of discussion about how to " -"interpret section 2.11 of XML spec. (Contributed by Mefistotelis " -"in :issue:`39011`.)" +"White space characters within attributes are now preserved when serializing :" +"mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer normalized to " +"\"\\n\". This is the result of discussion about how to interpret section " +"2.11 of XML spec. (Contributed by Mefistotelis in :issue:`39011`.)" msgstr "" -#: ../../whatsnew/3.9.rst:743 msgid "Optimizations" msgstr "" -#: ../../whatsnew/3.9.rst:745 msgid "" "Optimized the idiom for assignment a temporary variable in comprehensions. " "Now ``for y in [expr]`` in comprehensions is as fast as a simple assignment " "``y = expr``. For example:" msgstr "" -#: ../../whatsnew/3.9.rst:749 msgid "sums = [s for s in [0] for x in data for s in [s + x]]" msgstr "" -#: ../../whatsnew/3.9.rst:751 msgid "" "Unlike the ``:=`` operator this idiom does not leak a variable to the outer " "scope." msgstr "" -#: ../../whatsnew/3.9.rst:754 msgid "(Contributed by Serhiy Storchaka in :issue:`32856`.)" msgstr "" -#: ../../whatsnew/3.9.rst:756 msgid "" "Optimized signal handling in multithreaded applications. If a thread " "different than the main thread gets a signal, the bytecode evaluation loop " @@ -1176,43 +980,36 @@ msgid "" "interpreter can handle signals." msgstr "" -#: ../../whatsnew/3.9.rst:762 msgid "" "Previously, the bytecode evaluation loop was interrupted at each instruction " -"until the main thread handles signals. (Contributed by Victor Stinner " -"in :issue:`40010`.)" +"until the main thread handles signals. (Contributed by Victor Stinner in :" +"issue:`40010`.)" msgstr "" -#: ../../whatsnew/3.9.rst:766 msgid "" "Optimized the :mod:`subprocess` module on FreeBSD using ``closefrom()``. " "(Contributed by Ed Maste, Conrad Meyer, Kyle Evans, Kubilay Kocak and Victor " "Stinner in :issue:`38061`.)" msgstr "" -#: ../../whatsnew/3.9.rst:770 msgid "" ":c:func:`PyLong_FromDouble` is now up to 1.87x faster for values that fit " "into :c:expr:`long`. (Contributed by Sergey Fedoseev in :issue:`37986`.)" msgstr "" -#: ../../whatsnew/3.9.rst:774 msgid "" -"A number of Python builtins " -"(:class:`range`, :class:`tuple`, :class:`set`, :class:`frozenset`, :class:`list`, :class:`dict`) " -"are now sped up by using :pep:`590` vectorcall protocol. (Contributed by " -"Donghee Na, Mark Shannon, Jeroen Demeyer and Petr Viktorin " -"in :issue:`37207`.)" +"A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" +"class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" +"pep:`590` vectorcall protocol. (Contributed by Donghee Na, Mark Shannon, " +"Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" msgstr "" -#: ../../whatsnew/3.9.rst:779 msgid "" "Optimized :meth:`!set.difference_update` for the case when the other set is " "much larger than the base set. (Suggested by Evgeny Kapun with code " "contributed by Michele Orrù in :issue:`8425`.)" msgstr "" -#: ../../whatsnew/3.9.rst:783 msgid "" "Python's small object allocator (``obmalloc.c``) now allows (no more than) " "one empty arena to remain available for immediate reuse, without returning " @@ -1221,26 +1018,22 @@ msgid "" "in :issue:`37257`.)" msgstr "" -#: ../../whatsnew/3.9.rst:789 msgid "" ":term:`floor division` of float operation now has a better performance. Also " "the message of :exc:`ZeroDivisionError` for this operation is updated. " "(Contributed by Donghee Na in :issue:`39434`.)" msgstr "" -#: ../../whatsnew/3.9.rst:793 msgid "" "Decoding short ASCII strings with UTF-8 and ascii codecs is now about 15% " "faster. (Contributed by Inada Naoki in :issue:`37348`.)" msgstr "" -#: ../../whatsnew/3.9.rst:796 msgid "" "Here's a summary of performance improvements from Python 3.4 through Python " "3.9:" msgstr "" -#: ../../whatsnew/3.9.rst:798 msgid "" "Python version 3.4 3.5 3.6 3.7 3.8 " "3.9\n" @@ -1316,29 +1109,25 @@ msgid "" "0.3" msgstr "" -#: ../../whatsnew/3.9.rst:843 msgid "" "These results were generated from the variable access benchmark script at: " "``Tools/scripts/var_access_benchmark.py``. The benchmark script displays " "timings in nanoseconds. The benchmarks were measured on an `Intel® Core™ " -"i7-4960HQ processor `_ running " -"the macOS 64-bit builds found at `python.org `_." +"i7-4960HQ processor `_ running the macOS 64-bit builds found at `python.org `_." msgstr "" -#: ../../whatsnew/3.9.rst:853 msgid "Deprecated" msgstr "" -#: ../../whatsnew/3.9.rst:855 msgid "" "The distutils ``bdist_msi`` command is now deprecated, use ``bdist_wheel`` " -"(wheel packages) instead. (Contributed by Hugo van Kemenade " -"in :issue:`39586`.)" +"(wheel packages) instead. (Contributed by Hugo van Kemenade in :issue:" +"`39586`.)" msgstr "" -#: ../../whatsnew/3.9.rst:859 msgid "" "Currently :func:`math.factorial` accepts :class:`float` instances with non-" "negative integer values (like ``5.0``). It raises a :exc:`ValueError` for " @@ -1347,7 +1136,6 @@ msgid "" "Serhiy Storchaka in :issue:`37315`.)" msgstr "" -#: ../../whatsnew/3.9.rst:865 msgid "" "The :mod:`!parser` and :mod:`!symbol` modules are deprecated and will be " "removed in future versions of Python. For the majority of use cases, users " @@ -1355,16 +1143,13 @@ msgid "" "stage, using the :mod:`ast` module." msgstr "" -#: ../../whatsnew/3.9.rst:870 msgid "" -"The Public C API functions :c:func:`!" -"PyParser_SimpleParseStringFlags`, :c:func:`!" -"PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" +"The Public C API functions :c:func:`!PyParser_SimpleParseStringFlags`, :c:" +"func:`!PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" "PyParser_SimpleParseFileFlags` and :c:func:`!PyNode_Compile` are deprecated " "and will be removed in Python 3.10 together with the old parser." msgstr "" -#: ../../whatsnew/3.9.rst:875 msgid "" "Using :data:`NotImplemented` in a boolean context has been deprecated, as it " "is almost exclusively the result of incorrect rich comparator " @@ -1372,58 +1157,48 @@ msgid "" "Python. (Contributed by Josh Rosenberg in :issue:`35712`.)" msgstr "" -#: ../../whatsnew/3.9.rst:881 msgid "" "The :mod:`random` module currently accepts any hashable type as a possible " "seed value. Unfortunately, some of those types are not guaranteed to have a " "deterministic hash value. After Python 3.9, the module will restrict its " -"seeds " -"to :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, " -"and :class:`bytearray`." +"seeds to :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:" +"`bytes`, and :class:`bytearray`." msgstr "" -#: ../../whatsnew/3.9.rst:887 msgid "" "Opening the :class:`~gzip.GzipFile` file for writing without specifying the " "*mode* argument is deprecated. In future Python versions it will always be " "opened for reading by default. Specify the *mode* argument for opening it " -"for writing and silencing a warning. (Contributed by Serhiy Storchaka " -"in :issue:`28286`.)" +"for writing and silencing a warning. (Contributed by Serhiy Storchaka in :" +"issue:`28286`.)" msgstr "" -#: ../../whatsnew/3.9.rst:893 msgid "" "Deprecated the ``split()`` method of :class:`!_tkinter.TkappType` in favour " "of the ``splitlist()`` method which has more consistent and predictable " "behavior. (Contributed by Serhiy Storchaka in :issue:`38371`.)" msgstr "" -#: ../../whatsnew/3.9.rst:898 msgid "" "The explicit passing of coroutine objects to :func:`asyncio.wait` has been " "deprecated and will be removed in version 3.11. (Contributed by Yury " "Selivanov and Kyle Stanley in :issue:`34790`.)" msgstr "" -#: ../../whatsnew/3.9.rst:902 msgid "" "binhex4 and hexbin4 standards are now deprecated. The :mod:`!binhex` module " "and the following :mod:`binascii` functions are now deprecated:" msgstr "" -#: ../../whatsnew/3.9.rst:905 msgid ":func:`!b2a_hqx`, :func:`!a2b_hqx`" msgstr "" -#: ../../whatsnew/3.9.rst:906 msgid ":func:`!rlecode_hqx`, :func:`!rledecode_hqx`" msgstr "" -#: ../../whatsnew/3.9.rst:908 msgid "(Contributed by Victor Stinner in :issue:`39353`.)" msgstr "" -#: ../../whatsnew/3.9.rst:910 msgid "" ":mod:`ast` classes ``slice``, ``Index`` and ``ExtSlice`` are considered " "deprecated and will be removed in future Python versions. ``value`` itself " @@ -1432,38 +1207,33 @@ msgid "" "Storchaka in :issue:`34822`.)" msgstr "" -#: ../../whatsnew/3.9.rst:916 msgid "" ":mod:`ast` classes ``Suite``, ``Param``, ``AugLoad`` and ``AugStore`` are " "considered deprecated and will be removed in future Python versions. They " "were not generated by the parser and not accepted by the code generator in " -"Python 3. (Contributed by Batuhan Taskaya in :issue:`39639` " -"and :issue:`39969` and Serhiy Storchaka in :issue:`39988`.)" +"Python 3. (Contributed by Batuhan Taskaya in :issue:`39639` and :issue:" +"`39969` and Serhiy Storchaka in :issue:`39988`.)" msgstr "" -#: ../../whatsnew/3.9.rst:923 msgid "" "The :c:func:`!PyEval_InitThreads` and :c:func:`!PyEval_ThreadsInitialized` " -"functions are now deprecated and will be removed in Python 3.11. " -"Calling :c:func:`!PyEval_InitThreads` now does nothing. The :term:`GIL` is " -"initialized by :c:func:`Py_Initialize` since Python 3.7. (Contributed by " -"Victor Stinner in :issue:`39877`.)" +"functions are now deprecated and will be removed in Python 3.11. Calling :c:" +"func:`!PyEval_InitThreads` now does nothing. The :term:`GIL` is initialized " +"by :c:func:`Py_Initialize` since Python 3.7. (Contributed by Victor Stinner " +"in :issue:`39877`.)" msgstr "" -#: ../../whatsnew/3.9.rst:929 msgid "" "Passing ``None`` as the first argument to the :func:`shlex.split` function " "has been deprecated. (Contributed by Zackery Spytz in :issue:`33262`.)" msgstr "" -#: ../../whatsnew/3.9.rst:932 msgid "" ":func:`!smtpd.MailmanProxy` is now deprecated as it is unusable without an " -"external module, ``mailman``. (Contributed by Samuel Colvin " -"in :issue:`35800`.)" +"external module, ``mailman``. (Contributed by Samuel Colvin in :issue:" +"`35800`.)" msgstr "" -#: ../../whatsnew/3.9.rst:935 msgid "" "The :mod:`!lib2to3` module now emits a :exc:`PendingDeprecationWarning`. " "Python 3.9 switched to a PEG parser (see :pep:`617`), and Python 3.10 may " @@ -1473,39 +1243,33 @@ msgid "" "or `parso`_. (Contributed by Carl Meyer in :issue:`40360`.)" msgstr "" -#: ../../whatsnew/3.9.rst:943 msgid "" "The *random* parameter of :func:`random.shuffle` has been deprecated. " "(Contributed by Raymond Hettinger in :issue:`40465`)" msgstr "" -#: ../../whatsnew/3.9.rst:952 ../../whatsnew/3.9.rst:1408 msgid "Removed" msgstr "" -#: ../../whatsnew/3.9.rst:954 msgid "" "The erroneous version at :data:`!unittest.mock.__version__` has been removed." msgstr "" -#: ../../whatsnew/3.9.rst:956 msgid "" ":class:`!nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been " "removed. These methods are deprecated since Python 3.3. Generally, these " "extensions are not supported or not enabled by NNTP server administrators. " "For ``xgtitle()``, please use :meth:`!nntplib.NNTP.descriptions` or :meth:`!" -"nntplib.NNTP.description` instead. (Contributed by Donghee Na " -"in :issue:`39366`.)" +"nntplib.NNTP.description` instead. (Contributed by Donghee Na in :issue:" +"`39366`.)" msgstr "" -#: ../../whatsnew/3.9.rst:963 msgid "" ":class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been " "removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated " "since Python 3.2. (Contributed by Victor Stinner in :issue:`38916`.)" msgstr "" -#: ../../whatsnew/3.9.rst:968 msgid "" "The undocumented ``sys.callstats()`` function has been removed. Since Python " "3.7, it was deprecated and always returned :const:`None`. It required a " @@ -1513,29 +1277,25 @@ msgid "" "3.7. (Contributed by Victor Stinner in :issue:`37414`.)" msgstr "" -#: ../../whatsnew/3.9.rst:973 msgid "" "The ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions have " -"been removed. They were deprecated since Python 3.2. " -"Use :func:`sys.getswitchinterval` and :func:`sys.setswitchinterval` instead. " -"(Contributed by Victor Stinner in :issue:`37392`.)" +"been removed. They were deprecated since Python 3.2. Use :func:`sys." +"getswitchinterval` and :func:`sys.setswitchinterval` instead. (Contributed " +"by Victor Stinner in :issue:`37392`.)" msgstr "" -#: ../../whatsnew/3.9.rst:978 msgid "" "The C function ``PyImport_Cleanup()`` has been removed. It was documented " "as: \"Empty the module table. For internal use only.\" (Contributed by " "Victor Stinner in :issue:`36710`.)" msgstr "" -#: ../../whatsnew/3.9.rst:982 msgid "" "``_dummy_thread`` and ``dummy_threading`` modules have been removed. These " "modules were deprecated since Python 3.7 which requires threading support. " "(Contributed by Victor Stinner in :issue:`37312`.)" msgstr "" -#: ../../whatsnew/3.9.rst:986 msgid "" "``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to " "``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open` have been " @@ -1543,35 +1303,29 @@ msgid "" "Stinner in :issue:`37320`.)" msgstr "" -#: ../../whatsnew/3.9.rst:991 msgid "" "The :meth:`!isAlive` method of :class:`threading.Thread` has been removed. " "It was deprecated since Python 3.8. Use :meth:`~threading.Thread.is_alive` " "instead. (Contributed by Donghee Na in :issue:`37804`.)" msgstr "" -#: ../../whatsnew/3.9.rst:996 msgid "" -"Methods ``getchildren()`` and ``getiterator()`` of " -"classes :class:`~xml.etree.ElementTree.ElementTree` " -"and :class:`~xml.etree.ElementTree.Element` in " -"the :mod:`~xml.etree.ElementTree` module have been removed. They were " -"deprecated in Python 3.2. Use ``iter(x)`` or ``list(x)`` instead of " -"``x.getchildren()`` and ``x.iter()`` or ``list(x.iter())`` instead of " -"``x.getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" +"Methods ``getchildren()`` and ``getiterator()`` of classes :class:`~xml." +"etree.ElementTree.ElementTree` and :class:`~xml.etree.ElementTree.Element` " +"in the :mod:`~xml.etree.ElementTree` module have been removed. They were " +"deprecated in Python 3.2. Use ``iter(x)`` or ``list(x)`` instead of ``x." +"getchildren()`` and ``x.iter()`` or ``list(x.iter())`` instead of ``x." +"getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1004 msgid "" "The old :mod:`plistlib` API has been removed, it was deprecated since Python " -"3.4. Use " -"the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:`~plistlib.dump`, " -"and :func:`~plistlib.dumps` functions. Additionally, the *use_builtin_types* " -"parameter was removed, standard :class:`bytes` objects are always used " -"instead. (Contributed by Jon Janzen in :issue:`36409`.)" +"3.4. Use the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" +"`~plistlib.dump`, and :func:`~plistlib.dumps` functions. Additionally, the " +"*use_builtin_types* parameter was removed, standard :class:`bytes` objects " +"are always used instead. (Contributed by Jon Janzen in :issue:`36409`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1010 msgid "" "The C function ``PyGen_NeedsFinalizing`` has been removed. It was not " "documented, tested, or used anywhere within CPython after the implementation " @@ -1579,22 +1333,19 @@ msgid "" "in :issue:`15088`)" msgstr "" -#: ../../whatsnew/3.9.rst:1015 msgid "" "``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated " -"since Python 3.1, have been removed: use :func:`base64.encodebytes` " -"and :func:`base64.decodebytes` instead. (Contributed by Victor Stinner " -"in :issue:`39351`.)" +"since Python 3.1, have been removed: use :func:`base64.encodebytes` and :" +"func:`base64.decodebytes` instead. (Contributed by Victor Stinner in :issue:" +"`39351`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1020 msgid "" "``fractions.gcd()`` function has been removed, it was deprecated since " "Python 3.5 (:issue:`22486`): use :func:`math.gcd` instead. (Contributed by " "Victor Stinner in :issue:`39350`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1024 msgid "" "The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since " "Python 3.0, it was ignored and using it emitted a :exc:`DeprecationWarning`. " @@ -1602,15 +1353,13 @@ msgid "" "Victor Stinner in :issue:`39357`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1029 msgid "" "The *encoding* parameter of :func:`json.loads` has been removed. As of " -"Python 3.1, it was deprecated and ignored; using it has emitted " -"a :exc:`DeprecationWarning` since Python 3.8. (Contributed by Inada Naoki " -"in :issue:`39377`)" +"Python 3.1, it was deprecated and ignored; using it has emitted a :exc:" +"`DeprecationWarning` since Python 3.8. (Contributed by Inada Naoki in :issue:" +"`39377`)" msgstr "" -#: ../../whatsnew/3.9.rst:1034 msgid "" "``with (await asyncio.lock):`` and ``with (yield from asyncio.lock):`` " "statements are not longer supported, use ``async with lock`` instead. The " @@ -1618,39 +1367,34 @@ msgid "" "(Contributed by Andrew Svetlov in :issue:`34793`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1039 msgid "" "The :func:`!sys.getcounts` function, the ``-X showalloccount`` command line " -"option and the ``show_alloc_count`` field of the C " -"structure :c:type:`PyConfig` have been removed. They required a special " -"Python build by defining ``COUNT_ALLOCS`` macro. (Contributed by Victor " -"Stinner in :issue:`39489`.)" +"option and the ``show_alloc_count`` field of the C structure :c:type:" +"`PyConfig` have been removed. They required a special Python build by " +"defining ``COUNT_ALLOCS`` macro. (Contributed by Victor Stinner in :issue:" +"`39489`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1045 msgid "" "The ``_field_types`` attribute of the :class:`typing.NamedTuple` class has " "been removed. It was deprecated since Python 3.8. Use the " -"``__annotations__`` attribute instead. (Contributed by Serhiy Storchaka " -"in :issue:`40182`.)" +"``__annotations__`` attribute instead. (Contributed by Serhiy Storchaka in :" +"issue:`40182`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1050 msgid "" "The :meth:`!symtable.SymbolTable.has_exec` method has been removed. It was " "deprecated since 2006, and only returning ``False`` when it's called. " "(Contributed by Batuhan Taskaya in :issue:`40208`)" msgstr "" -#: ../../whatsnew/3.9.rst:1054 msgid "" "The :meth:`!asyncio.Task.current_task` and :meth:`!asyncio.Task.all_tasks` " -"have been removed. They were deprecated since Python 3.7 and you can " -"use :func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. " +"have been removed. They were deprecated since Python 3.7 and you can use :" +"func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. " "(Contributed by Rémi Lapeyre in :issue:`40967`)" msgstr "" -#: ../../whatsnew/3.9.rst:1059 msgid "" "The ``unescape()`` method in the :class:`html.parser.HTMLParser` class has " "been removed (it was deprecated since Python 3.4). :func:`html.unescape` " @@ -1658,50 +1402,40 @@ msgid "" "unicode characters." msgstr "" -#: ../../whatsnew/3.9.rst:1066 ../../whatsnew/3.9.rst:1334 msgid "Porting to Python 3.9" msgstr "" -#: ../../whatsnew/3.9.rst:1068 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.9.rst:1073 msgid "Changes in the Python API" msgstr "" -#: ../../whatsnew/3.9.rst:1075 msgid "" -":func:`__import__` and :func:`importlib.util.resolve_name` now " -"raise :exc:`ImportError` where it previously raised :exc:`ValueError`. " -"Callers catching the specific exception type and supporting both Python 3.9 " -"and earlier versions will need to catch both using ``except (ImportError, " -"ValueError):``." +":func:`__import__` and :func:`importlib.util.resolve_name` now raise :exc:" +"`ImportError` where it previously raised :exc:`ValueError`. Callers catching " +"the specific exception type and supporting both Python 3.9 and earlier " +"versions will need to catch both using ``except (ImportError, ValueError):``." msgstr "" -#: ../../whatsnew/3.9.rst:1080 msgid "" "The :mod:`venv` activation scripts no longer special-case when " "``__VENV_PROMPT__`` is set to ``\"\"``." msgstr "" -#: ../../whatsnew/3.9.rst:1083 msgid "" -"The :meth:`select.epoll.unregister` method no longer ignores " -"the :const:`~errno.EBADF` error. (Contributed by Victor Stinner " -"in :issue:`39239`.)" +"The :meth:`select.epoll.unregister` method no longer ignores the :const:" +"`~errno.EBADF` error. (Contributed by Victor Stinner in :issue:`39239`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1087 msgid "" "The *compresslevel* parameter of :class:`bz2.BZ2File` became keyword-only, " "since the *buffering* parameter has been removed. (Contributed by Victor " "Stinner in :issue:`39357`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1091 msgid "" "Simplified AST for subscription. Simple indices will be represented by their " "value, extended slices will be represented as tuples. ``Index(value)`` will " @@ -1709,29 +1443,25 @@ msgid "" "Load())``. (Contributed by Serhiy Storchaka in :issue:`34822`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1097 msgid "" "The :mod:`importlib` module now ignores the :envvar:`PYTHONCASEOK` " "environment variable when the :option:`-E` or :option:`-I` command line " "options are being used." msgstr "" -#: ../../whatsnew/3.9.rst:1101 msgid "" "The *encoding* parameter has been added to the classes :class:`ftplib.FTP` " "and :class:`ftplib.FTP_TLS` as a keyword-only parameter, and the default " "encoding is changed from Latin-1 to UTF-8 to follow :rfc:`2640`." msgstr "" -#: ../../whatsnew/3.9.rst:1105 msgid "" -":meth:`asyncio.loop.shutdown_default_executor` has been added " -"to :class:`~asyncio.AbstractEventLoop`, meaning alternative event loops that " -"inherit from it should have this method defined. (Contributed by Kyle " -"Stanley in :issue:`34037`.)" +":meth:`asyncio.loop.shutdown_default_executor` has been added to :class:" +"`~asyncio.AbstractEventLoop`, meaning alternative event loops that inherit " +"from it should have this method defined. (Contributed by Kyle Stanley in :" +"issue:`34037`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1110 msgid "" "The constant values of future flags in the :mod:`__future__` module is " "updated in order to prevent collision with compiler flags. Previously " @@ -1739,7 +1469,6 @@ msgid "" "(Contributed by Batuhan Taskaya in :issue:`39562`)" msgstr "" -#: ../../whatsnew/3.9.rst:1115 msgid "" "``array('u')`` now uses :c:type:`wchar_t` as C type instead of " "``Py_UNICODE``. This change doesn't affect to its behavior because " @@ -1747,27 +1476,23 @@ msgid "" "by Inada Naoki in :issue:`34538`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1120 msgid "" "The :func:`logging.getLogger` API now returns the root logger when passed " "the name ``'root'``, whereas previously it returned a non-root logger named " "``'root'``. This could affect cases where user code explicitly wants a non-" -"root logger named ``'root'``, or instantiates a logger using " -"``logging.getLogger(__name__)`` in some top-level module called " -"``'root.py'``. (Contributed by Vinay Sajip in :issue:`37742`.)" +"root logger named ``'root'``, or instantiates a logger using ``logging." +"getLogger(__name__)`` in some top-level module called ``'root.py'``. " +"(Contributed by Vinay Sajip in :issue:`37742`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1127 msgid "" -"Division handling of :class:`~pathlib.PurePath` now " -"returns :data:`NotImplemented` instead of raising a :exc:`TypeError` when " -"passed something other than an instance of ``str`` " -"or :class:`~pathlib.PurePath`. This allows creating compatible classes that " -"don't inherit from those mentioned types. (Contributed by Roger Aiudi " -"in :issue:`34775`)." +"Division handling of :class:`~pathlib.PurePath` now returns :data:" +"`NotImplemented` instead of raising a :exc:`TypeError` when passed something " +"other than an instance of ``str`` or :class:`~pathlib.PurePath`. This " +"allows creating compatible classes that don't inherit from those mentioned " +"types. (Contributed by Roger Aiudi in :issue:`34775`)." msgstr "" -#: ../../whatsnew/3.9.rst:1133 msgid "" "Starting with Python 3.9.5 the :mod:`ipaddress` module no longer accepts any " "leading zeros in IPv4 address strings. Leading zeros are ambiguous and " @@ -1777,32 +1502,27 @@ msgid "" "leading zeros. (Contributed by Christian Heimes in :issue:`36384`)." msgstr "" -#: ../../whatsnew/3.9.rst:1141 msgid "" -":func:`codecs.lookup` now normalizes the encoding name the same way " -"as :func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` " -"also converts the name to lower case. For example, ``\"latex+latin1\"`` " -"encoding name is now normalized to ``\"latex_latin1\"``. (Contributed by " -"Jordon Xu in :issue:`37751`.)" +":func:`codecs.lookup` now normalizes the encoding name the same way as :func:" +"`encodings.normalize_encoding`, except that :func:`codecs.lookup` also " +"converts the name to lower case. For example, ``\"latex+latin1\"`` encoding " +"name is now normalized to ``\"latex_latin1\"``. (Contributed by Jordon Xu " +"in :issue:`37751`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1149 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.9.rst:1151 msgid "" "Instances of :ref:`heap-allocated types ` (such as those created " "with :c:func:`PyType_FromSpec` and similar APIs) hold a reference to their " "type object since Python 3.8. As indicated in the \"Changes in the C API\" " "of Python 3.8, for the vast majority of cases, there should be no side " -"effect but for types that have a " -"custom :c:member:`~PyTypeObject.tp_traverse` function, ensure that all " -"custom ``tp_traverse`` functions of heap-allocated types visit the object's " -"type." +"effect but for types that have a custom :c:member:`~PyTypeObject." +"tp_traverse` function, ensure that all custom ``tp_traverse`` functions of " +"heap-allocated types visit the object's type." msgstr "" -#: ../../whatsnew/3.9.rst:1161 msgid "" "int\n" "foo_traverse(PyObject *self, visitproc visit, void *arg)\n" @@ -1815,7 +1535,6 @@ msgid "" "}" msgstr "" -#: ../../whatsnew/3.9.rst:1173 msgid "" "If your traverse function delegates to ``tp_traverse`` of its base class (or " "another type), ensure that ``Py_TYPE(self)`` is visited only once. Note that " @@ -1823,19 +1542,15 @@ msgid "" "``tp_traverse``." msgstr "" -#: ../../whatsnew/3.9.rst:1178 msgid "For example, if your ``tp_traverse`` function includes:" msgstr "" -#: ../../whatsnew/3.9.rst:1180 msgid "base->tp_traverse(self, visit, arg)" msgstr "" -#: ../../whatsnew/3.9.rst:1184 msgid "then add:" msgstr "" -#: ../../whatsnew/3.9.rst:1186 msgid "" "#if PY_VERSION_HEX >= 0x03090000\n" " // This was not needed before Python 3.9 (bpo-35810 and bpo-40217)\n" @@ -1847,89 +1562,73 @@ msgid "" "#else" msgstr "" -#: ../../whatsnew/3.9.rst:1197 msgid "(See :issue:`35810` and :issue:`40217` for more information.)" msgstr "" -#: ../../whatsnew/3.9.rst:1199 msgid "" "The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, " "``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. " -"Use :c:func:`PyObject_Call` and its variants instead. (See more details " -"in :issue:`29548`.)" +"Use :c:func:`PyObject_Call` and its variants instead. (See more details in :" +"issue:`29548`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1205 msgid "CPython bytecode changes" msgstr "" -#: ../../whatsnew/3.9.rst:1207 msgid "" -"The :opcode:`!LOAD_ASSERTION_ERROR` opcode was added for handling " -"the :keyword:`assert` statement. Previously, the assert statement would not " -"work correctly if the :exc:`AssertionError` exception was being shadowed. " +"The :opcode:`!LOAD_ASSERTION_ERROR` opcode was added for handling the :" +"keyword:`assert` statement. Previously, the assert statement would not work " +"correctly if the :exc:`AssertionError` exception was being shadowed. " "(Contributed by Zackery Spytz in :issue:`34880`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1212 msgid "" "The :opcode:`COMPARE_OP` opcode was split into four distinct instructions:" msgstr "" -#: ../../whatsnew/3.9.rst:1214 msgid "``COMPARE_OP`` for rich comparisons" msgstr "" -#: ../../whatsnew/3.9.rst:1215 msgid "``IS_OP`` for 'is' and 'is not' tests" msgstr "" -#: ../../whatsnew/3.9.rst:1216 msgid "``CONTAINS_OP`` for 'in' and 'not in' tests" msgstr "" -#: ../../whatsnew/3.9.rst:1217 msgid "" "``JUMP_IF_NOT_EXC_MATCH`` for checking exceptions in 'try-except' statements." msgstr "" -#: ../../whatsnew/3.9.rst:1220 msgid "(Contributed by Mark Shannon in :issue:`39156`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1224 msgid "Build Changes" msgstr "" -#: ../../whatsnew/3.9.rst:1226 msgid "" "Added ``--with-platlibdir`` option to the ``configure`` script: name of the " -"platform-specific library directory, stored in the " -"new :data:`sys.platlibdir` attribute. See :data:`sys.platlibdir` attribute " -"for more information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos " -"Stratakis and Victor Stinner in :issue:`1294959`.)" +"platform-specific library directory, stored in the new :data:`sys." +"platlibdir` attribute. See :data:`sys.platlibdir` attribute for more " +"information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " +"and Victor Stinner in :issue:`1294959`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1232 msgid "" "The ``COUNT_ALLOCS`` special build macro has been removed. (Contributed by " "Victor Stinner in :issue:`39489`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1235 msgid "" "On non-Windows platforms, the :c:func:`!setenv` and :c:func:`!unsetenv` " "functions are now required to build Python. (Contributed by Victor Stinner " "in :issue:`39395`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1239 msgid "" "On non-Windows platforms, creating ``bdist_wininst`` installers is now " "officially unsupported. (See :issue:`10945` for more details.)" msgstr "" -#: ../../whatsnew/3.9.rst:1242 msgid "" "When building Python on macOS from source, ``_tkinter`` now links with non-" "system Tcl and Tk frameworks if they are installed in ``/Library/" @@ -1940,13 +1639,11 @@ msgid "" "(Contributed by Ned Deily in :issue:`34956`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1251 msgid "" "Python can now be built for Windows 10 ARM64. (Contributed by Steve Dower " "in :issue:`33125`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1254 msgid "" "Some individual tests are now skipped when ``--pgo`` is used. The tests in " "question increased the PGO task time significantly and likely didn't help " @@ -1962,43 +1659,37 @@ msgid "" "details.)" msgstr "" -#: ../../whatsnew/3.9.rst:1269 msgid "C API Changes" msgstr "" -#: ../../whatsnew/3.9.rst:1274 msgid "" ":pep:`573`: Added :c:func:`PyType_FromModuleAndSpec` to associate a module " "with a class; :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` " -"to retrieve the module and its state; and :c:type:`PyCMethod` " -"and :c:macro:`METH_METHOD` to allow a method to access the class it was " -"defined in. (Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" +"to retrieve the module and its state; and :c:type:`PyCMethod` and :c:macro:" +"`METH_METHOD` to allow a method to access the class it was defined in. " +"(Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1281 msgid "" -"Added :c:func:`PyFrame_GetCode` function: get a frame code. " -"Added :c:func:`PyFrame_GetBack` function: get the frame next outer frame. " -"(Contributed by Victor Stinner in :issue:`40421`.)" +"Added :c:func:`PyFrame_GetCode` function: get a frame code. Added :c:func:" +"`PyFrame_GetBack` function: get the frame next outer frame. (Contributed by " +"Victor Stinner in :issue:`40421`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1285 msgid "" "Added :c:func:`PyFrame_GetLineNumber` to the limited C API. (Contributed by " "Victor Stinner in :issue:`40421`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1288 msgid "" -"Added :c:func:`PyThreadState_GetInterpreter` " -"and :c:func:`PyInterpreterState_Get` functions to get the interpreter. " -"Added :c:func:`PyThreadState_GetFrame` function to get the current frame of " -"a Python thread state. Added :c:func:`PyThreadState_GetID` function: get the " -"unique identifier of a Python thread state. (Contributed by Victor Stinner " -"in :issue:`39947`.)" +"Added :c:func:`PyThreadState_GetInterpreter` and :c:func:" +"`PyInterpreterState_Get` functions to get the interpreter. Added :c:func:" +"`PyThreadState_GetFrame` function to get the current frame of a Python " +"thread state. Added :c:func:`PyThreadState_GetID` function: get the unique " +"identifier of a Python thread state. (Contributed by Victor Stinner in :" +"issue:`39947`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1296 msgid "" "Added a new public :c:func:`PyObject_CallNoArgs` function to the C API, " "which calls a callable Python object without any arguments. It is the most " @@ -2006,11 +1697,9 @@ msgid "" "(Contributed by Victor Stinner in :issue:`37194`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1301 ../../whatsnew/3.9.rst:1419 msgid "Changes in the limited C API (if ``Py_LIMITED_API`` macro is defined):" msgstr "" -#: ../../whatsnew/3.9.rst:1303 msgid "" "Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` " "as regular functions for the limited API. Previously, there were defined as " @@ -2019,70 +1708,59 @@ msgid "" "the limited C API)." msgstr "" -#: ../../whatsnew/3.9.rst:1309 msgid "" "``PyObject_INIT()`` and ``PyObject_INIT_VAR()`` become regular \"opaque\" " "function to hide implementation details." msgstr "" -#: ../../whatsnew/3.9.rst:1312 ../../whatsnew/3.9.rst:1446 msgid "(Contributed by Victor Stinner in :issue:`38644` and :issue:`39542`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1314 msgid "" "The :c:func:`PyModule_AddType` function is added to help adding a type to a " "module. (Contributed by Donghee Na in :issue:`40024`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1318 msgid "" -"Added the functions :c:func:`PyObject_GC_IsTracked` " -"and :c:func:`PyObject_GC_IsFinalized` to the public API to allow to query if " -"Python objects are being currently tracked or have been already finalized by " -"the garbage collector respectively. (Contributed by Pablo Galindo Salgado " -"in :issue:`40241`.)" +"Added the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" +"`PyObject_GC_IsFinalized` to the public API to allow to query if Python " +"objects are being currently tracked or have been already finalized by the " +"garbage collector respectively. (Contributed by Pablo Galindo Salgado in :" +"issue:`40241`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1324 msgid "" "Added :c:func:`!_PyObject_FunctionStr` to get a user-friendly string " -"representation of a function-like object. (Patch by Jeroen Demeyer " -"in :issue:`37645`.)" +"representation of a function-like object. (Patch by Jeroen Demeyer in :issue:" +"`37645`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1328 msgid "" "Added :c:func:`PyObject_CallOneArg` for calling an object with one " "positional argument (Patch by Jeroen Demeyer in :issue:`37483`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1336 msgid "" "``PyInterpreterState.eval_frame`` (:pep:`523`) now requires a new mandatory " -"*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner " -"in :issue:`38500`.)" +"*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner in :" +"issue:`38500`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1340 msgid "" -"Extension " -"modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:`~PyModuleDef.m_clear` " -"and :c:member:`~PyModuleDef.m_free` functions of :c:type:`PyModuleDef` are " -"no longer called if the module state was requested but is not allocated yet. " -"This is the case immediately after the module is created and before the " -"module is executed (:c:data:`Py_mod_exec` function). More precisely, these " -"functions are not called if :c:member:`~PyModuleDef.m_size` is greater than " -"0 and the module state (as returned by :c:func:`PyModule_GetState`) is " -"``NULL``." +"Extension modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:" +"`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions of :c:" +"type:`PyModuleDef` are no longer called if the module state was requested " +"but is not allocated yet. This is the case immediately after the module is " +"created and before the module is executed (:c:data:`Py_mod_exec` function). " +"More precisely, these functions are not called if :c:member:`~PyModuleDef." +"m_size` is greater than 0 and the module state (as returned by :c:func:" +"`PyModule_GetState`) is ``NULL``." msgstr "" -#: ../../whatsnew/3.9.rst:1349 msgid "" "Extension modules without module state (``m_size <= 0``) are not affected." msgstr "" -#: ../../whatsnew/3.9.rst:1351 msgid "" "If :c:func:`Py_AddPendingCall` is called in a subinterpreter, the function " "is now scheduled to be called from the subinterpreter, rather than being " @@ -2090,7 +1768,6 @@ msgid "" "of scheduled calls. (Contributed by Victor Stinner in :issue:`39984`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1357 msgid "" "The Windows registry is no longer used to initialize :data:`sys.path` when " "the ``-E`` option is used (if :c:member:`PyConfig.use_environment` is set to " @@ -2098,93 +1775,78 @@ msgid "" "by Zackery Spytz in :issue:`8901`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1362 msgid "" "The global variable :c:data:`PyStructSequence_UnnamedField` is now a " "constant and refers to a constant string. (Contributed by Serhiy Storchaka " "in :issue:`38650`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1366 msgid "" "The :c:type:`!PyGC_Head` structure is now opaque. It is only defined in the " -"internal C API (``pycore_gc.h``). (Contributed by Victor Stinner " -"in :issue:`40241`.)" +"internal C API (``pycore_gc.h``). (Contributed by Victor Stinner in :issue:" +"`40241`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1370 msgid "" -"The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, " -"``PyUnicode_WSTR_LENGTH``, :c:func:`!PyUnicode_FromUnicode`, :c:func:`!" -"PyUnicode_AsUnicode`, ``_PyUnicode_AsUnicode``, and :c:func:`!" -"PyUnicode_AsUnicodeAndSize` are marked as deprecated in C. They have been " -"deprecated by :pep:`393` since Python 3.3. (Contributed by Inada Naoki " -"in :issue:`36346`.)" +"The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:" +"func:`!PyUnicode_FromUnicode`, :c:func:`!PyUnicode_AsUnicode`, " +"``_PyUnicode_AsUnicode``, and :c:func:`!PyUnicode_AsUnicodeAndSize` are " +"marked as deprecated in C. They have been deprecated by :pep:`393` since " +"Python 3.3. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1377 msgid "" "The :c:func:`Py_FatalError` function is replaced with a macro which logs " "automatically the name of the current function, unless the " -"``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner " -"in :issue:`39882`.)" +"``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner in :" +"issue:`39882`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1382 msgid "" "The vectorcall protocol now requires that the caller passes only strings as " "keyword names. (See :issue:`37540` for more information.)" msgstr "" -#: ../../whatsnew/3.9.rst:1385 msgid "" "Implementation details of a number of macros and functions are now hidden:" msgstr "" -#: ../../whatsnew/3.9.rst:1387 msgid ":c:func:`PyObject_IS_GC` macro was converted to a function." msgstr "" -#: ../../whatsnew/3.9.rst:1389 msgid "" -"The :c:func:`!PyObject_NEW` macro becomes an alias to " -"the :c:macro:`PyObject_New` macro, and the :c:func:`!PyObject_NEW_VAR` macro " -"becomes an alias to the :c:macro:`PyObject_NewVar` macro. They no longer " -"access directly the :c:member:`PyTypeObject.tp_basicsize` member." +"The :c:func:`!PyObject_NEW` macro becomes an alias to the :c:macro:" +"`PyObject_New` macro, and the :c:func:`!PyObject_NEW_VAR` macro becomes an " +"alias to the :c:macro:`PyObject_NewVar` macro. They no longer access " +"directly the :c:member:`PyTypeObject.tp_basicsize` member." msgstr "" -#: ../../whatsnew/3.9.rst:1394 msgid "" ":c:func:`!PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function: " "the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset` " "member." msgstr "" -#: ../../whatsnew/3.9.rst:1398 msgid "" ":c:func:`PyObject_CheckBuffer` macro was converted to a function: the macro " "accessed directly the :c:member:`PyTypeObject.tp_as_buffer` member." msgstr "" -#: ../../whatsnew/3.9.rst:1401 msgid "" ":c:func:`PyIndex_Check` is now always declared as an opaque function to hide " "implementation details: removed the ``PyIndex_Check()`` macro. The macro " "accessed directly the :c:member:`PyTypeObject.tp_as_number` member." msgstr "" -#: ../../whatsnew/3.9.rst:1405 msgid "(See :issue:`40170` for more details.)" msgstr "" -#: ../../whatsnew/3.9.rst:1410 msgid "" "Excluded ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " -"``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner " -"in :issue:`38835`.)" +"``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner in :issue:" +"`38835`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1414 msgid "" "The ``tp_print`` slot of :ref:`PyTypeObject ` has been " "removed. It was used for printing objects to files in Python 2.7 and before. " @@ -2192,89 +1854,68 @@ msgid "" "Demeyer in :issue:`36974`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1421 msgid "Excluded the following functions from the limited C API:" msgstr "" -#: ../../whatsnew/3.9.rst:1423 msgid "" -"``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye " -"in :issue:`37878`.)" +"``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye in :issue:" +"`37878`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1425 msgid "``_Py_CheckRecursionLimit``" msgstr "" -#: ../../whatsnew/3.9.rst:1426 msgid "``_Py_NewReference()``" msgstr "" -#: ../../whatsnew/3.9.rst:1427 msgid "``_Py_ForgetReference()``" msgstr "" -#: ../../whatsnew/3.9.rst:1428 msgid "``_PyTraceMalloc_NewReference()``" msgstr "" -#: ../../whatsnew/3.9.rst:1429 msgid "``_Py_GetRefTotal()``" msgstr "" -#: ../../whatsnew/3.9.rst:1430 msgid "The trashcan mechanism which never worked in the limited C API." msgstr "" -#: ../../whatsnew/3.9.rst:1431 msgid "``PyTrash_UNWIND_LEVEL``" msgstr "" -#: ../../whatsnew/3.9.rst:1432 msgid "``Py_TRASHCAN_BEGIN_CONDITION``" msgstr "" -#: ../../whatsnew/3.9.rst:1433 msgid "``Py_TRASHCAN_BEGIN``" msgstr "" -#: ../../whatsnew/3.9.rst:1434 msgid "``Py_TRASHCAN_END``" msgstr "" -#: ../../whatsnew/3.9.rst:1435 msgid "``Py_TRASHCAN_SAFE_BEGIN``" msgstr "" -#: ../../whatsnew/3.9.rst:1436 msgid "``Py_TRASHCAN_SAFE_END``" msgstr "" -#: ../../whatsnew/3.9.rst:1438 msgid "Moved following functions and definitions to the internal C API:" msgstr "" -#: ../../whatsnew/3.9.rst:1440 msgid "``_PyDebug_PrintTotalRefs()``" msgstr "" -#: ../../whatsnew/3.9.rst:1441 msgid "``_Py_PrintReferences()``" msgstr "" -#: ../../whatsnew/3.9.rst:1442 msgid "``_Py_PrintReferenceAddresses()``" msgstr "" -#: ../../whatsnew/3.9.rst:1443 msgid "``_Py_tracemalloc_config``" msgstr "" -#: ../../whatsnew/3.9.rst:1444 msgid "``_Py_AddToAllObjects()`` (specific to ``Py_TRACE_REFS`` build)" msgstr "" -#: ../../whatsnew/3.9.rst:1448 msgid "" "Removed ``_PyRuntime.getframe`` hook and removed ``_PyThreadState_GetFrame`` " "macro which was an alias to ``_PyRuntime.getframe``. They were only exposed " @@ -2282,72 +1923,58 @@ msgid "" "(Contributed by Victor Stinner in :issue:`39946`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1453 msgid "" "Removed the following functions from the C API. Call :c:func:`PyGC_Collect` " "explicitly to clear all free lists. (Contributed by Inada Naoki and Victor " "Stinner in :issue:`37340`, :issue:`38896` and :issue:`40428`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1458 msgid "``PyAsyncGen_ClearFreeLists()``" msgstr "" -#: ../../whatsnew/3.9.rst:1459 msgid "``PyContext_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1460 msgid "``PyDict_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1461 msgid "``PyFloat_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1462 msgid "``PyFrame_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1463 msgid "``PyList_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1464 msgid "" "``PyMethod_ClearFreeList()`` and ``PyCFunction_ClearFreeList()``: the free " "lists of bound method objects have been removed." msgstr "" -#: ../../whatsnew/3.9.rst:1466 msgid "" "``PySet_ClearFreeList()``: the set free list has been removed in Python 3.4." msgstr "" -#: ../../whatsnew/3.9.rst:1468 msgid "``PyTuple_ClearFreeList()``" msgstr "" -#: ../../whatsnew/3.9.rst:1469 msgid "" "``PyUnicode_ClearFreeList()``: the Unicode free list has been removed in " "Python 3.3." msgstr "" -#: ../../whatsnew/3.9.rst:1472 msgid "" "Removed ``_PyUnicode_ClearStaticStrings()`` function. (Contributed by Victor " "Stinner in :issue:`39465`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1475 msgid "" "Removed ``Py_UNICODE_MATCH``. It has been deprecated by :pep:`393`, and " "broken since Python 3.3. The :c:func:`PyUnicode_Tailmatch` function can be " "used instead. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1480 msgid "" "Cleaned header files of interfaces defined but with no implementation. The " "public API symbols being removed are: " @@ -2356,31 +1983,25 @@ msgid "" "``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``, " "``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``, " "``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``, " -"``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado " -"in :issue:`39372`.)" +"``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado in :issue:" +"`39372`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1491 msgid "Notable changes in Python 3.9.1" msgstr "" -#: ../../whatsnew/3.9.rst:1496 msgid "" -"The behavior of :class:`typing.Literal` was changed to conform " -"with :pep:`586` and to match the behavior of static type checkers specified " -"in the PEP." +"The behavior of :class:`typing.Literal` was changed to conform with :pep:" +"`586` and to match the behavior of static type checkers specified in the PEP." msgstr "" -#: ../../whatsnew/3.9.rst:1499 msgid "``Literal`` now de-duplicates parameters." msgstr "" -#: ../../whatsnew/3.9.rst:1500 msgid "" "Equality comparisons between ``Literal`` objects are now order independent." msgstr "" -#: ../../whatsnew/3.9.rst:1501 msgid "" "``Literal`` comparisons now respect types. For example, ``Literal[0] == " "Literal[False]`` previously evaluated to ``True``. It is now ``False``. To " @@ -2388,7 +2009,6 @@ msgid "" "differentiating types." msgstr "" -#: ../../whatsnew/3.9.rst:1505 msgid "" "``Literal`` objects will now raise a :exc:`TypeError` exception during " "equality comparisons if any of their parameters are not :term:`hashable`. " @@ -2396,7 +2016,6 @@ msgid "" "error::" msgstr "" -#: ../../whatsnew/3.9.rst:1510 msgid "" ">>> from typing import Literal\n" ">>> Literal[{0}]\n" @@ -2406,15 +2025,12 @@ msgid "" "TypeError: unhashable type: 'set'" msgstr "" -#: ../../whatsnew/3.9.rst:1517 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1520 msgid "macOS 11.0 (Big Sur) and Apple Silicon Mac support" msgstr "" -#: ../../whatsnew/3.9.rst:1522 msgid "" "As of 3.9.1, Python now fully supports building and running on macOS 11.0 " "(Big Sur) and on Apple Silicon Macs (based on the ``ARM64`` architecture). A " @@ -2426,57 +2042,47 @@ msgid "" "version in use at runtime (\"weaklinking\")." msgstr "" -#: ../../whatsnew/3.9.rst:1531 msgid "(Contributed by Ronald Oussoren and Lawrence D'Anna in :issue:`41100`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1534 msgid "Notable changes in Python 3.9.2" msgstr "" -#: ../../whatsnew/3.9.rst:1537 msgid "collections.abc" msgstr "" -#: ../../whatsnew/3.9.rst:1539 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " "``collections.abc.Callable[[int, str], str]`` will have ``__args__`` of " "``(int, str, str)``; previously this was ``([int, str], str)``. To allow " "this change, :class:`types.GenericAlias` can now be subclassed, and a " -"subclass will be returned when subscripting " -"the :class:`collections.abc.Callable` type. Code which accesses the " -"arguments via :func:`typing.get_args` or ``__args__`` need to account for " -"this change. A :exc:`DeprecationWarning` may be emitted for invalid forms " -"of parameterizing :class:`collections.abc.Callable` which may have passed " -"silently in Python 3.9.1. This :exc:`DeprecationWarning` will become " -"a :exc:`TypeError` in Python 3.10. (Contributed by Ken Jin " -"in :issue:`42195`.)" +"subclass will be returned when subscripting the :class:`collections.abc." +"Callable` type. Code which accesses the arguments via :func:`typing." +"get_args` or ``__args__`` need to account for this change. A :exc:" +"`DeprecationWarning` may be emitted for invalid forms of parameterizing :" +"class:`collections.abc.Callable` which may have passed silently in Python " +"3.9.1. This :exc:`DeprecationWarning` will become a :exc:`TypeError` in " +"Python 3.10. (Contributed by Ken Jin in :issue:`42195`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1553 ../../whatsnew/3.9.rst:1578 msgid "urllib.parse" msgstr "" -#: ../../whatsnew/3.9.rst:1555 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " -"parameter separators in :func:`urllib.parse.parse_qs` " -"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " -"conform with newer W3C recommendations, this has been changed to allow only " -"a single separator key, with ``&`` as the default. This change also " -"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " -"affected functions internally. For more details, please see their respective " -"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " -"in :issue:`42967`.)" +"parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." +"parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " +"recommendations, this has been changed to allow only a single separator key, " +"with ``&`` as the default. This change also affects :func:`!cgi.parse` and :" +"func:`!cgi.parse_multipart` as they use the affected functions internally. " +"For more details, please see their respective documentation. (Contributed by " +"Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" -#: ../../whatsnew/3.9.rst:1566 msgid "Notable changes in Python 3.9.3" msgstr "" -#: ../../whatsnew/3.9.rst:1568 msgid "" "A security fix alters the :class:`ftplib.FTP` behavior to not trust the IPv4 " "address sent from the remote server when setting up a passive data channel. " @@ -2485,26 +2091,21 @@ msgid "" "instance to ``True``. (See :gh:`87451`)" msgstr "" -#: ../../whatsnew/3.9.rst:1575 msgid "Notable changes in Python 3.9.5" msgstr "" -#: ../../whatsnew/3.9.rst:1580 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " -"forms of attacks. Following the WHATWG specification that " -"updates :rfc:`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` " -"characters are stripped from the URL by the parser in :mod:`urllib.parse` " -"preventing such attacks. The removal characters are controlled by a new " -"module level variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. " -"(See :gh:`88048`)" +"forms of attacks. Following the WHATWG specification that updates :rfc:" +"`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are " +"stripped from the URL by the parser in :mod:`urllib.parse` preventing such " +"attacks. The removal characters are controlled by a new module level " +"variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" -#: ../../whatsnew/3.9.rst:1588 msgid "Notable security feature in 3.9.14" msgstr "" -#: ../../whatsnew/3.9.rst:1590 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " @@ -2517,15 +2118,12 @@ msgid "" "digits in string form." msgstr "" -#: ../../whatsnew/3.9.rst:1601 msgid "Notable changes in 3.9.17" msgstr "" -#: ../../whatsnew/3.9.rst:1604 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.9.rst:1606 msgid "" "The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " "have a new a *filter* argument that allows limiting tar features than may be " diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 182a820..61eca2d 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -3,17 +3,13 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -# Translators: -# Stan Ulbrych, 2025 -# #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-07 14:23+0000\n" -"PO-Revision-Date: 2025-07-18 18:50+0000\n" -"Last-Translator: Stan Ulbrych, 2025\n" +"POT-Creation-Date: 2025-09-13 14:14+0000\n" +"PO-Revision-Date: 2025-08-15 19:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" "MIME-Version: 1.0\n" @@ -22,131 +18,216 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../whatsnew/changelog.rst:7 msgid "Changelog" msgstr "" -#: ../NEWS:3 msgid "Python next" msgstr "" -#: ../NEWS:5 msgid "*Release date: XXXX-XX-XX*" msgstr "" -#: ../NEWS:8 ../NEWS:1715 ../NEWS:2088 ../NEWS:2661 ../NEWS:3197 ../NEWS:4615 -#: ../NEWS:7566 ../NEWS:8524 ../NEWS:9035 ../NEWS:9913 ../NEWS:10465 -#: ../NEWS:12744 ../NEWS:13931 ../NEWS:14599 ../NEWS:15279 ../NEWS:15609 -#: ../NEWS:16037 ../NEWS:18076 ../NEWS:18989 ../NEWS:19592 ../NEWS:20445 -#: ../NEWS:20880 ../NEWS:21383 ../NEWS:21829 ../NEWS:23617 ../NEWS:24439 -#: ../NEWS:25139 ../NEWS:25418 ../NEWS:25773 ../NEWS:26242 ../NEWS:26687 -#: ../NEWS:27745 ../NEWS:28183 ../NEWS:28638 ../NEWS:29112 ../NEWS:30265 -#: ../NEWS:31989 ../NEWS:32952 ../NEWS:33500 ../NEWS:36761 ../NEWS:37424 -#: ../NEWS:37584 ../NEWS:37796 ../NEWS:38053 ../NEWS:38384 ../NEWS:39229 -#: ../NEWS:41926 ../NEWS:42277 ../NEWS:42672 +msgid "Tools/Demos" +msgstr "" + +msgid "" +":gh:`137873`: The iOS test runner has been simplified, resolving some issues " +"that have been observed using the runner in GitHub Actions and Azure " +"Pipelines test environments." +msgstr "" + +msgid "Security" +msgstr "" + +msgid "" +":gh:`135661`: Fix CDATA section parsing in :class:`html.parser.HTMLParser` " +"according to the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the " +"CDATA section. Add private method ``_set_support_cdata()`` which can be used " +"to specify how to parse ``<[CDATA[`` --- as a CDATA section in foreign " +"content (SVG or MathML) or as a bogus comment in the HTML namespace." +msgstr "" + +msgid "Library" +msgstr "" + +msgid ":gh:`138515`: :mod:`email` is added to Emscripten build." +msgstr "" + +msgid "" +":gh:`138253`: Add the *block* parameter in the :meth:`!put` and :meth:`!get` " +"methods of the :mod:`concurrent.interpreters` queues for compatibility with " +"the :class:`queue.Queue` interface." +msgstr "" + +msgid "" +":gh:`134869`: Fix an issue where pressing Ctrl+C during tab completion in " +"the REPL would leave the autocompletion menu in a corrupted state." +msgstr "" + +msgid "" +":gh:`90548`: Fix ``musl`` detection for :func:`platform.libc_ver` on Alpine " +"Linux if compiled with --strip-all." +msgstr "" + +msgid "" +":gh:`136134`: :meth:`!SMTP.auth_cram_md5` now raises an :exc:`~smtplib." +"SMTPException` instead of a :exc:`ValueError` if Python has been built " +"without MD5 support. In particular, :class:`~smtplib.SMTP` clients will not " +"attempt to use this method even if the remote server is assumed to support " +"it. Patch by Bénédikt Tran." +msgstr "" + +msgid "" +":gh:`136134`: :meth:`IMAP4.login_cram_md5 ` " +"now raises an :exc:`IMAP4.error ` if CRAM-MD5 " +"authentication is not supported. Patch by Bénédikt Tran." +msgstr "" + +msgid "Core and Builtins" +msgstr "" + +msgid "" +":gh:`71810`: Raise :exc:`OverflowError` for ``(-1).to_bytes()`` for signed " +"conversions when bytes count is zero. Patch by Sergey B Kirpichev." +msgstr "" + +msgid "" +":gh:`138192`: Fix :mod:`contextvars` initialization so that all " +"subinterpreters are assigned the :attr:`~contextvars.Token.MISSING` value." +msgstr "" + +msgid "" +":gh:`138479`: Fix a crash when a generic object's ``__typing_subst__`` " +"returns an object that isn't a :class:`tuple`." +msgstr "" + +msgid "" +":gh:`138372`: Fix :exc:`SyntaxWarning` emitted for erroneous subscript " +"expressions involving :ref:`template string literals `. Patch by " +"Brian Schubert." +msgstr "" + +msgid "" +":gh:`138318`: The default REPL now avoids highlighting built-in names (for " +"instance :class:`set` or :func:`format`) when they are used as attribute " +"names (for instance in ``value.set`` or ``text.format``)." +msgstr "" + +msgid "" +":gh:`138349`: Fix crash in certain cases where a module contains both a " +"module-level annotation and a comprehension." +msgstr "" + +msgid "" +":gh:`137384`: Fix a crash when using the :mod:`warnings` module in a " +"finalizer at shutdown. Patch by Kumar Aditya." +msgstr "" + +msgid "" +":gh:`137883`: Fix runaway recursion when calling a function with keyword " +"arguments." +msgstr "" + +msgid "" +":gh:`137079`: Fix keyword typo recognition when parsing files. Patch by " +"Pablo Galindo." +msgstr "" + +msgid "" +":gh:`137728`: Fix the JIT's handling of many local variables. This " +"previously caused a segfault." +msgstr "" + +msgid "" +":gh:`137576`: Fix for incorrect source code being shown in tracebacks from " +"the Basic REPL when :envvar:`PYTHONSTARTUP` is given. Patch by Adam Hartz." +msgstr "" + +msgid "Python 3.14.0 release candidate 2" +msgstr "" + +msgid "*Release date: 2025-08-14*" +msgstr "" + msgid "macOS" msgstr "" -#: ../NEWS:10 +msgid "" +":gh:`137450`: macOS installer shell path management improvements: separate " +"the installer ``Shell profile updater`` postinstall script from the ``Update " +"Shell Profile.command`` to enable more robust error handling." +msgstr "" + msgid "" ":gh:`137134`: Update macOS installer to ship with SQLite version 3.50.4." msgstr "" -#: ../NEWS:13 ../NEWS:390 ../NEWS:627 ../NEWS:921 ../NEWS:1725 ../NEWS:2094 -#: ../NEWS:3530 ../NEWS:3970 ../NEWS:4625 ../NEWS:7541 ../NEWS:8018 -#: ../NEWS:8503 ../NEWS:9013 ../NEWS:9872 ../NEWS:10453 ../NEWS:12694 -#: ../NEWS:13910 ../NEWS:14287 ../NEWS:14573 ../NEWS:14859 ../NEWS:15256 -#: ../NEWS:15594 ../NEWS:16019 ../NEWS:17979 ../NEWS:18973 ../NEWS:19566 -#: ../NEWS:20051 ../NEWS:20431 ../NEWS:20874 ../NEWS:21358 ../NEWS:21815 -#: ../NEWS:23589 ../NEWS:24409 ../NEWS:24862 ../NEWS:25134 ../NEWS:25411 -#: ../NEWS:26233 ../NEWS:26672 ../NEWS:27702 ../NEWS:28171 ../NEWS:28631 -#: ../NEWS:29089 ../NEWS:29480 ../NEWS:30258 ../NEWS:31870 ../NEWS:32938 -#: ../NEWS:33447 ../NEWS:33816 ../NEWS:34061 ../NEWS:36651 ../NEWS:37196 -#: ../NEWS:37579 ../NEWS:37787 ../NEWS:38034 ../NEWS:38373 ../NEWS:38679 -#: ../NEWS:39214 ../NEWS:41324 ../NEWS:41921 ../NEWS:42252 ../NEWS:42663 -#: ../NEWS:43041 ../NEWS:43612 ../NEWS:43861 ../NEWS:43991 ../NEWS:44281 -#: ../NEWS:44522 ../NEWS:45052 ../NEWS:45284 ../NEWS:45787 ../NEWS:47056 -#: ../NEWS:47561 ../NEWS:48195 ../NEWS:48990 ../NEWS:49037 ../NEWS:49494 -#: ../NEWS:50783 ../NEWS:52597 msgid "Windows" msgstr "" -#: ../NEWS:15 msgid ":gh:`137134`: Update Windows installer to ship with SQLite 3.50.4." msgstr "" -#: ../NEWS:18 ../NEWS:68 ../NEWS:235 ../NEWS:423 ../NEWS:678 ../NEWS:970 -#: ../NEWS:1775 ../NEWS:2148 ../NEWS:2719 ../NEWS:3217 ../NEWS:3571 -#: ../NEWS:4024 ../NEWS:4795 ../NEWS:7184 ../NEWS:7738 ../NEWS:8194 -#: ../NEWS:8680 ../NEWS:9286 ../NEWS:10173 ../NEWS:11298 ../NEWS:13350 -#: ../NEWS:14102 ../NEWS:14414 ../NEWS:14708 ../NEWS:15001 ../NEWS:15399 -#: ../NEWS:15825 ../NEWS:16740 ../NEWS:18508 ../NEWS:19179 ../NEWS:19818 -#: ../NEWS:20212 ../NEWS:20631 ../NEWS:21044 ../NEWS:21509 ../NEWS:22473 -#: ../NEWS:24017 ../NEWS:24649 ../NEWS:25032 ../NEWS:25256 ../NEWS:25530 -#: ../NEWS:25927 ../NEWS:26482 ../NEWS:27102 ../NEWS:27974 ../NEWS:28362 -#: ../NEWS:28849 ../NEWS:29309 ../NEWS:29671 ../NEWS:30017 ../NEWS:30673 -#: ../NEWS:32439 ../NEWS:33106 ../NEWS:33649 ../NEWS:33944 ../NEWS:34695 -#: ../NEWS:37103 ../NEWS:37136 ../NEWS:37264 ../NEWS:37472 ../NEWS:37663 -#: ../NEWS:37868 ../NEWS:38166 ../NEWS:38487 ../NEWS:38812 ../NEWS:39402 -#: ../NEWS:40062 ../NEWS:41732 ../NEWS:42078 ../NEWS:42444 ../NEWS:42768 -#: ../NEWS:42871 ../NEWS:43334 ../NEWS:43721 ../NEWS:44024 ../NEWS:44106 -#: ../NEWS:44209 ../NEWS:44379 ../NEWS:44714 ../NEWS:45132 ../NEWS:45350 -#: ../NEWS:45587 ../NEWS:46124 ../NEWS:47151 ../NEWS:47169 ../NEWS:47257 -#: ../NEWS:47738 ../NEWS:48453 ../NEWS:49117 ../NEWS:49555 ../NEWS:49582 -#: ../NEWS:49620 ../NEWS:49640 ../NEWS:49747 ../NEWS:49841 ../NEWS:49937 -#: ../NEWS:50012 ../NEWS:50270 ../NEWS:50493 ../NEWS:50666 ../NEWS:51024 -msgid "Library" +msgid "" +":gh:`137426`: Remove the code deprecation of ``importlib.abc." +"ResourceLoader``. It is documented as deprecated, but left for backwards " +"compatibility with other classes in ``importlib.abc``." +msgstr "" + +msgid "" +":gh:`137282`: Fix tab completion and :func:`dir` on :mod:`concurrent." +"futures`." msgstr "" -#: ../NEWS:20 msgid "" ":gh:`137257`: Bump the version of pip bundled in ensurepip to version 25.2" msgstr "" -#: ../NEWS:22 msgid "" -":gh:`130522`: Fix unraisable :exc:`TypeError` raised " -"during :term:`interpreter shutdown` in the :mod:`threading` module." +":gh:`137226`: Fix behavior of :meth:`annotationlib.ForwardRef.evaluate` when " +"the *type_params* parameter is passed and the name of a type param is also " +"present in an enclosing scope." +msgstr "" + +msgid "" +":gh:`130522`: Fix unraisable :exc:`TypeError` raised during :term:" +"`interpreter shutdown` in the :mod:`threading` module." msgstr "" -#: ../NEWS:25 msgid "" ":gh:`137059`: Fix handling of file URLs with a Windows drive letter in the " "URL authority by :func:`urllib.request.url2pathname`. This fixes a " "regression in earlier pre-releases of Python 3.14." msgstr "" -#: ../NEWS:29 msgid "" ":gh:`130577`: :mod:`tarfile` now validates archives to ensure member offsets " -"are non-negative. (Contributed by Alexander Enrique Urieles Nieto " -"in :gh:`130577`.)" -msgstr "" - -#: ../NEWS:34 ../NEWS:111 ../NEWS:340 ../NEWS:526 ../NEWS:840 ../NEWS:1386 -#: ../NEWS:1958 ../NEWS:2418 ../NEWS:2982 ../NEWS:3394 ../NEWS:3798 -#: ../NEWS:4419 ../NEWS:6021 ../NEWS:6991 ../NEWS:7627 ../NEWS:8135 -#: ../NEWS:8570 ../NEWS:9127 ../NEWS:10001 ../NEWS:10662 ../NEWS:13134 -#: ../NEWS:14028 ../NEWS:14334 ../NEWS:14643 ../NEWS:14892 ../NEWS:15330 -#: ../NEWS:15671 ../NEWS:16124 ../NEWS:18312 ../NEWS:19060 ../NEWS:19661 -#: ../NEWS:20102 ../NEWS:20484 ../NEWS:20918 ../NEWS:21400 ../NEWS:21953 -#: ../NEWS:23886 ../NEWS:24557 ../NEWS:24967 ../NEWS:25200 ../NEWS:25457 -#: ../NEWS:25825 ../NEWS:26402 ../NEWS:26762 ../NEWS:27916 ../NEWS:28278 -#: ../NEWS:28722 ../NEWS:29232 ../NEWS:29573 ../NEWS:29940 ../NEWS:30356 -#: ../NEWS:32275 ../NEWS:33036 ../NEWS:33574 ../NEWS:33880 ../NEWS:34141 -#: ../NEWS:37121 ../NEWS:37233 ../NEWS:37446 ../NEWS:37637 ../NEWS:37847 -#: ../NEWS:38091 ../NEWS:38410 ../NEWS:38714 ../NEWS:39314 ../NEWS:39603 -#: ../NEWS:41695 ../NEWS:42032 ../NEWS:42349 ../NEWS:42798 ../NEWS:43287 -#: ../NEWS:43629 ../NEWS:43653 ../NEWS:43977 ../NEWS:44007 ../NEWS:44071 -#: ../NEWS:44185 ../NEWS:44309 ../NEWS:44577 ../NEWS:45086 ../NEWS:45333 -#: ../NEWS:45547 ../NEWS:45839 ../NEWS:47145 ../NEWS:47206 ../NEWS:47607 -#: ../NEWS:48280 ../NEWS:48323 ../NEWS:49031 ../NEWS:49049 ../NEWS:49572 -#: ../NEWS:49607 ../NEWS:49635 ../NEWS:49727 ../NEWS:49814 ../NEWS:49919 -#: ../NEWS:49962 ../NEWS:50238 ../NEWS:50473 ../NEWS:50659 ../NEWS:50798 -msgid "Core and Builtins" +"are non-negative. (Contributed by Alexander Enrique Urieles Nieto in :gh:" +"`130577`.)" +msgstr "" + +msgid "" +":gh:`135228`: When :mod:`dataclasses` replaces a class with a slotted " +"dataclass, the original class can now be garbage collected again. Earlier " +"changes in Python 3.14 caused this class to always remain in existence " +"together with the replacement class synthesized by :mod:`dataclasses`." +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "" +":gh:`136155`: We are now checking for fatal errors in EPUB builds in CI." +msgstr "" + +msgid "" +":gh:`137400`: Fix a crash in the :term:`free threading` build when disabling " +"profiling or tracing across all threads with :c:func:" +"`PyEval_SetProfileAllThreads` or :c:func:`PyEval_SetTraceAllThreads` or " +"their Python equivalents :func:`threading.settrace_all_threads` and :func:" +"`threading.setprofile_all_threads`." msgstr "" -#: ../NEWS:36 msgid "" ":gh:`137314`: Fixed a regression where raw f-strings incorrectly interpreted " "escape sequences in format specifications. Raw f-strings now properly " @@ -155,68 +236,67 @@ msgid "" "\\xFF'`` instead of ``'ÿ'``. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:42 +msgid "" +":gh:`137308`: A standalone docstring in a node body is optimized as a :" +"keyword:`pass` statement to ensure that the node's body is never empty. " +"There was a :exc:`ValueError` in :func:`compile` otherwise." +msgstr "" + +msgid "" +":gh:`137288`: Fix bug where some bytecode instructions of a boolean " +"expression are not associated with the correct exception handler." +msgstr "" + +msgid "" +":gh:`134291`: Remove some newer macOS API usage from the JIT compiler in " +"order to restore compatibility with older OSX 10.15 deployment targets." +msgstr "" + +msgid "" +":gh:`131338`: Disable computed stack limit checks on non-glibc linux " +"platforms to fix crashes on deep recursion." +msgstr "" + msgid "" ":gh:`136870`: Fix data races while de-instrumenting bytecode of code objects " "running concurrently in threads." msgstr "" -#: ../NEWS:47 -msgid "Python 3.14.0 release candidate 1" +msgid "C API" msgstr "" -#: ../NEWS:49 -msgid "*Release date: 2025-07-22*" +msgid "" +":gh:`137573`: Mark ``_PyOptimizer_Optimize`` as :c:macro:`Py_NO_INLINE` to " +"prevent stack overflow crashes on macOS." msgstr "" -#: ../NEWS:52 ../NEWS:179 ../NEWS:647 ../NEWS:930 ../NEWS:1740 ../NEWS:2100 -#: ../NEWS:2666 ../NEWS:3203 ../NEWS:3540 ../NEWS:3999 ../NEWS:4672 -#: ../NEWS:8535 ../NEWS:9057 ../NEWS:10494 ../NEWS:12759 ../NEWS:13961 -#: ../NEWS:14296 ../NEWS:15287 ../NEWS:15617 ../NEWS:18108 ../NEWS:18994 -#: ../NEWS:19601 ../NEWS:23677 ../NEWS:25783 ../NEWS:26277 ../NEWS:28196 -#: ../NEWS:28658 ../NEWS:29131 ../NEWS:32113 ../NEWS:32976 ../NEWS:33515 -#: ../NEWS:33857 ../NEWS:36980 ../NEWS:37602 ../NEWS:37819 ../NEWS:38079 -#: ../NEWS:38685 ../NEWS:39273 ../NEWS:41588 ../NEWS:41976 ../NEWS:42317 -#: ../NEWS:42740 ../NEWS:43227 ../NEWS:43592 ../NEWS:43986 ../NEWS:44060 -#: ../NEWS:45045 ../NEWS:45506 ../NEWS:45814 ../NEWS:47074 ../NEWS:48183 -#: ../NEWS:49009 ../NEWS:49532 ../NEWS:50219 ../NEWS:50438 ../NEWS:50646 -#: ../NEWS:52558 -msgid "Tools/Demos" +msgid "Build" +msgstr "" + +msgid ":gh:`132339`: Add support for OpenSSL 3.5." +msgstr "" + +msgid "Python 3.14.0 release candidate 1" +msgstr "" + +msgid "*Release date: 2025-07-22*" msgstr "" -#: ../NEWS:54 msgid "" ":gh:`136251`: Fixes and usability improvements for ``Tools/wasm/emscripten/" "web_example``" msgstr "" -#: ../NEWS:58 ../NEWS:198 ../NEWS:408 ../NEWS:668 ../NEWS:960 ../NEWS:1760 -#: ../NEWS:2140 ../NEWS:2691 ../NEWS:3563 ../NEWS:4019 ../NEWS:4744 -#: ../NEWS:6981 ../NEWS:8118 ../NEWS:8562 ../NEWS:9118 ../NEWS:10637 -#: ../NEWS:13116 ../NEWS:14313 ../NEWS:14634 ../NEWS:15316 ../NEWS:15651 -#: ../NEWS:16086 ../NEWS:18305 ../NEWS:21926 ../NEWS:23830 ../NEWS:24535 -#: ../NEWS:24960 ../NEWS:25194 ../NEWS:25818 ../NEWS:26391 ../NEWS:26741 -#: ../NEWS:27910 ../NEWS:28263 ../NEWS:28715 ../NEWS:29221 ../NEWS:29922 -#: ../NEWS:30307 ../NEWS:32260 ../NEWS:33018 ../NEWS:33562 ../NEWS:34093 -#: ../NEWS:37623 ../NEWS:37841 ../NEWS:39569 ../NEWS:42022 ../NEWS:42789 -#: ../NEWS:43253 ../NEWS:43280 ../NEWS:45324 ../NEWS:45535 ../NEWS:45826 -#: ../NEWS:47122 ../NEWS:47181 ../NEWS:47598 ../NEWS:48301 -msgid "Security" -msgstr "" - -#: ../NEWS:60 msgid "" ":gh:`135661`: Fix parsing attributes with whitespaces around the ``=`` " "separator in :class:`html.parser.HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:64 msgid "" ":gh:`118350`: Fix support of escapable raw text mode (elements \"textarea\" " "and \"title\") in :class:`html.parser.HTMLParser`." msgstr "" -#: ../NEWS:70 msgid "" ":gh:`136170`: Removed the unreleased ``zipfile.ZipFile.data_offset`` " "property added in 3.14.0a7 as it wasn't fully clear which behavior it should " @@ -224,86 +304,70 @@ msgid "" "expect." msgstr "" -#: ../NEWS:74 msgid ":gh:`124621`: pyrepl now works in Emscripten." msgstr "" -#: ../NEWS:76 msgid "" -":gh:`136874`: Discard URL query and fragment " -"in :func:`urllib.request.url2pathname`." +":gh:`136874`: Discard URL query and fragment in :func:`urllib.request." +"url2pathname`." msgstr "" -#: ../NEWS:79 msgid ":gh:`130645`: Enable color help by default in :mod:`argparse`." msgstr "" -#: ../NEWS:81 msgid ":gh:`136549`: Fix signature of :func:`threading.excepthook`." msgstr "" -#: ../NEWS:83 msgid "" ":gh:`136523`: Fix :class:`wave.Wave_write` emitting an unraisable when open " "raises." msgstr "" -#: ../NEWS:86 msgid "" -":gh:`52876`: Add missing ``keepends`` (default ``True``) parameter " -"to :meth:`!codecs.StreamReaderWriter.readline` and :meth:`!" -"codecs.StreamReaderWriter.readlines`." +":gh:`52876`: Add missing ``keepends`` (default ``True``) parameter to :meth:" +"`!codecs.StreamReaderWriter.readline` and :meth:`!codecs.StreamReaderWriter." +"readlines`." msgstr "" -#: ../NEWS:90 msgid "" ":gh:`136470`: Correct :class:`concurrent.futures.InterpreterPoolExecutor`'s " "default thread name." msgstr "" -#: ../NEWS:93 msgid "" ":gh:`136476`: Fix a bug that was causing the ``get_async_stack_trace`` " "function to miss some frames in the stack trace." msgstr "" -#: ../NEWS:96 msgid "" -":gh:`136434`: Fix docs generation of ``UnboundItem`` " -"in :mod:`concurrent.interpreters` when running with :option:`-OO`." +":gh:`136434`: Fix docs generation of ``UnboundItem`` in :mod:`concurrent." +"interpreters` when running with :option:`-OO`." msgstr "" -#: ../NEWS:99 msgid "" -":gh:`136380`: Raises :exc:`AttributeError` when " -"accessing :class:`concurrent.futures.InterpreterPoolExecutor` and " -"subinterpreters are not available." +":gh:`136380`: Raises :exc:`AttributeError` when accessing :class:`concurrent." +"futures.InterpreterPoolExecutor` and subinterpreters are not available." msgstr "" -#: ../NEWS:103 msgid "" -":gh:`134759`: Fix :exc:`UnboundLocalError` " -"in :func:`email.message.Message.get_payload` when the payload to decode is " -"a :class:`bytes` object. Patch by Kliment Lamonov." +":gh:`134759`: Fix :exc:`UnboundLocalError` in :func:`email.message.Message." +"get_payload` when the payload to decode is a :class:`bytes` object. Patch by " +"Kliment Lamonov." msgstr "" -#: ../NEWS:107 msgid "" -":gh:`134657`: :mod:`asyncio`: Remove some private names from " -"``asyncio.__all__``." +":gh:`134657`: :mod:`asyncio`: Remove some private names from ``asyncio." +"__all__``." msgstr "" -#: ../NEWS:113 msgid "" ":gh:`136801`: Fix PyREPL syntax highlighting on match cases after multi-line " "case. Contributed by Olga Matoula." msgstr "" -#: ../NEWS:116 msgid ":gh:`136421`: Fix crash when initializing :mod:`datetime` concurrently." msgstr "" -#: ../NEWS:118 msgid "" ":gh:`136541`: Fix some issues with the perf trampolines on x86-64 and " "aarch64. The trampolines were not being generated correctly for some cases, " @@ -311,232 +375,145 @@ msgid "" "Pablo Galindo." msgstr "" -#: ../NEWS:123 msgid "" ":gh:`136517`: Fixed a typo that prevented printing of uncollectable objects " "when the :const:`gc.DEBUG_UNCOLLECTABLE` mode was set." msgstr "" -#: ../NEWS:126 msgid "" ":gh:`136525`: Fix issue where per-thread bytecode was not instrumented for " "newly created threads." msgstr "" -#: ../NEWS:129 msgid "" ":gh:`132661`: ``Interpolation.expression`` now has a default, the empty " "string." msgstr "" -#: ../NEWS:132 msgid ":gh:`132661`: Reflect recent :pep:`750` change." msgstr "" -#: ../NEWS:134 msgid "" "Disallow concatenation of ``string.templatelib.Template`` and :class:`str`. " "Also, disallow implicit concatenation of t-string literals with string or f-" "string literals." msgstr "" -#: ../NEWS:138 msgid "" ":gh:`116738`: Make functions in :mod:`grp` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:141 msgid "" ":gh:`135148`: Fixed a bug where f-string debug expressions (using =) would " "incorrectly strip out parts of strings containing escaped quotes and # " "characters. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:145 msgid "" ":gh:`133136`: Limit excess memory usage in the :term:`free threading` build " "when a large dictionary or list is resized and accessed by multiple threads." msgstr "" -#: ../NEWS:149 msgid "" ":gh:`91153`: Fix a crash when a :class:`bytearray` is concurrently mutated " "during item assignment." msgstr "" -#: ../NEWS:152 msgid "" ":gh:`127971`: Fix off-by-one read beyond the end of a string in string " "search." msgstr "" -#: ../NEWS:156 ../NEWS:372 ../NEWS:583 ../NEWS:897 ../NEWS:1621 ../NEWS:2053 -#: ../NEWS:2580 ../NEWS:3117 ../NEWS:3472 ../NEWS:3899 ../NEWS:4546 -#: ../NEWS:6616 ../NEWS:7585 ../NEWS:8047 ../NEWS:8543 ../NEWS:9071 -#: ../NEWS:9978 ../NEWS:10502 ../NEWS:12819 ../NEWS:13968 ../NEWS:14301 -#: ../NEWS:14604 ../NEWS:15296 ../NEWS:15627 ../NEWS:16042 ../NEWS:18143 -#: ../NEWS:19007 ../NEWS:19607 ../NEWS:20075 ../NEWS:20458 ../NEWS:20886 -#: ../NEWS:21388 ../NEWS:21841 ../NEWS:23698 ../NEWS:24485 ../NEWS:24875 -#: ../NEWS:25151 ../NEWS:25439 ../NEWS:25792 ../NEWS:26287 ../NEWS:26705 -#: ../NEWS:27799 ../NEWS:28209 ../NEWS:28670 ../NEWS:29143 ../NEWS:29514 -#: ../NEWS:29901 ../NEWS:30288 ../NEWS:32138 ../NEWS:32982 ../NEWS:33520 -#: ../NEWS:33864 ../NEWS:37019 ../NEWS:37109 ../NEWS:37825 ../NEWS:38395 -#: ../NEWS:38692 ../NEWS:39285 ../NEWS:39547 ../NEWS:41619 ../NEWS:41994 -#: ../NEWS:42327 ../NEWS:42747 ../NEWS:43550 ../NEWS:43879 ../NEWS:44047 -#: ../NEWS:44548 ../NEWS:44987 ../NEWS:45477 ../NEWS:45806 ../NEWS:47095 -#: ../NEWS:47570 ../NEWS:48150 ../NEWS:50462 ../NEWS:50777 ../NEWS:52381 -msgid "C API" -msgstr "" - -#: ../NEWS:158 msgid "" ":gh:`112068`: Revert support of nullable arguments in :c:func:`PyArg_Parse`." msgstr "" -#: ../NEWS:160 msgid "" ":gh:`133296`: New variants for the critical section API that accept one or " "two :c:type:`PyMutex` pointers rather than :c:type:`PyObject` instances are " "now public in the non-limited C API." msgstr "" -#: ../NEWS:164 msgid "" ":gh:`134009`: Expose :c:func:`PyMutex_IsLocked` as part of the public C API." msgstr "" -#: ../NEWS:167 ../NEWS:378 ../NEWS:600 ../NEWS:903 ../NEWS:1680 ../NEWS:2061 -#: ../NEWS:2629 ../NEWS:3182 ../NEWS:3490 ../NEWS:3949 ../NEWS:4569 -#: ../NEWS:6871 ../NEWS:7519 ../NEWS:8008 ../NEWS:8477 ../NEWS:8998 -#: ../NEWS:9843 ../NEWS:10429 ../NEWS:12607 ../NEWS:13872 ../NEWS:14279 -#: ../NEWS:14556 ../NEWS:14826 ../NEWS:15238 ../NEWS:15572 ../NEWS:15983 -#: ../NEWS:17865 ../NEWS:18958 ../NEWS:19534 ../NEWS:20021 ../NEWS:20391 -#: ../NEWS:20827 ../NEWS:21230 ../NEWS:21760 ../NEWS:23543 ../NEWS:24400 -#: ../NEWS:24840 ../NEWS:25111 ../NEWS:25385 ../NEWS:25750 ../NEWS:26209 -#: ../NEWS:26665 ../NEWS:27681 ../NEWS:28161 ../NEWS:28619 ../NEWS:29072 -#: ../NEWS:29475 ../NEWS:29877 ../NEWS:30248 ../NEWS:31798 ../NEWS:32915 -#: ../NEWS:33386 ../NEWS:33802 ../NEWS:36533 ../NEWS:37189 ../NEWS:37411 -#: ../NEWS:37562 ../NEWS:37782 ../NEWS:38029 ../NEWS:38358 ../NEWS:39181 -#: ../NEWS:39501 ../NEWS:41212 ../NEWS:41901 ../NEWS:42011 ../NEWS:42246 -#: ../NEWS:42638 ../NEWS:42774 ../NEWS:43035 ../NEWS:43556 ../NEWS:43640 -#: ../NEWS:43931 ../NEWS:43996 ../NEWS:44168 ../NEWS:44286 ../NEWS:44555 -#: ../NEWS:45010 ../NEWS:45296 ../NEWS:45484 ../NEWS:45797 ../NEWS:46993 -#: ../NEWS:47548 ../NEWS:48210 ../NEWS:48931 ../NEWS:49483 ../NEWS:49543 -#: ../NEWS:49560 ../NEWS:49802 ../NEWS:49907 ../NEWS:50420 ../NEWS:50634 -#: ../NEWS:50769 ../NEWS:52301 -msgid "Build" -msgstr "" - -#: ../NEWS:169 msgid "" ":gh:`135621`: PyREPL no longer depends on the :mod:`curses` standard " "library. Contributed by Łukasz Langa." msgstr "" -#: ../NEWS:174 msgid "Python 3.14.0 beta 4" msgstr "" -#: ../NEWS:176 msgid "*Release date: 2025-07-08*" msgstr "" -#: ../NEWS:181 msgid "" ":gh:`135968`: Stubs for ``strip`` are now provided as part of an iOS install." msgstr "" -#: ../NEWS:183 msgid ":gh:`133600`: Backport file reorganization for Tools/wasm/wasi." msgstr "" -#: ../NEWS:185 msgid "" "This should make backporting future code changes easier. It also simplifies " "instructions around how to do WASI builds in the devguide." msgstr "" -#: ../NEWS:189 ../NEWS:397 ../NEWS:653 ../NEWS:939 ../NEWS:1749 ../NEWS:2123 -#: ../NEWS:2675 ../NEWS:3210 ../NEWS:3546 ../NEWS:4008 ../NEWS:4678 -#: ../NEWS:7982 ../NEWS:8445 ../NEWS:8988 ../NEWS:9803 ../NEWS:10395 -#: ../NEWS:12359 ../NEWS:13850 ../NEWS:14269 ../NEWS:14543 ../NEWS:14820 -#: ../NEWS:15226 ../NEWS:15551 ../NEWS:15963 ../NEWS:17743 ../NEWS:18927 -#: ../NEWS:19510 ../NEWS:19999 ../NEWS:20347 ../NEWS:20800 ../NEWS:21208 -#: ../NEWS:21711 ../NEWS:23421 ../NEWS:24377 ../NEWS:24831 ../NEWS:25105 -#: ../NEWS:25375 ../NEWS:25728 ../NEWS:26174 ../NEWS:26649 ../NEWS:27630 -#: ../NEWS:28152 ../NEWS:28593 ../NEWS:29056 ../NEWS:29466 ../NEWS:30193 -#: ../NEWS:31628 ../NEWS:32879 ../NEWS:33332 ../NEWS:33789 ../NEWS:34028 -#: ../NEWS:36366 ../NEWS:37402 ../NEWS:37556 ../NEWS:37772 ../NEWS:38024 -#: ../NEWS:38338 ../NEWS:38670 ../NEWS:39154 ../NEWS:41149 ../NEWS:41893 -#: ../NEWS:42006 ../NEWS:42231 ../NEWS:42621 ../NEWS:43019 ../NEWS:43598 -#: ../NEWS:43909 ../NEWS:44160 ../NEWS:44295 ../NEWS:44566 ../NEWS:44996 -#: ../NEWS:45269 ../NEWS:45523 ../NEWS:45777 ../NEWS:46950 ../NEWS:47510 -#: ../NEWS:48164 ../NEWS:48285 ../NEWS:48908 ../NEWS:49470 ../NEWS:49714 -#: ../NEWS:49891 ../NEWS:50200 ../NEWS:50429 ../NEWS:50639 ../NEWS:52450 msgid "Tests" msgstr "" -#: ../NEWS:191 msgid "" ":gh:`135966`: The iOS testbed now handles the ``app_packages`` folder as a " "site directory." msgstr "" -#: ../NEWS:194 msgid "" ":gh:`135494`: Fix regrtest to support excluding tests from ``--pgo`` tests. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:200 msgid "" -":gh:`136053`: :mod:`marshal`: fix a possible crash when " -"deserializing :class:`slice` objects." +":gh:`136053`: :mod:`marshal`: fix a possible crash when deserializing :class:" +"`slice` objects." msgstr "" -#: ../NEWS:203 msgid "" -":gh:`135661`: Fix parsing start and end tags " -"in :class:`html.parser.HTMLParser` according to the HTML5 standard." +":gh:`135661`: Fix parsing start and end tags in :class:`html.parser." +"HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:206 msgid "" "Whitespaces no longer accepted between ```` does not end the script section." msgstr "" -#: ../NEWS:209 msgid "" "Vertical tabulation (``\\v``) and non-ASCII whitespaces no longer recognized " "as whitespaces. The only whitespaces are ``\\t\\n\\r\\f`` and space." msgstr "" -#: ../NEWS:212 msgid "Null character (U+0000) no longer ends the tag name." msgstr "" -#: ../NEWS:214 msgid "" "Attributes and slashes after the tag name in end tags are now ignored, " "instead of terminating after the first ``>`` in quoted attribute value. E.g. " "``\"/>``." msgstr "" -#: ../NEWS:218 msgid "" "Multiple slashes and whitespaces between the last attribute and closing " "``>`` are now ignored in both start and end tags. E.g. ````." msgstr "" -#: ../NEWS:221 msgid "" -"Multiple ``=`` between attribute name and value are no longer collapsed. " -"E.g. ```` produces attribute \"foo\" with value \"=bar\"." +"Multiple ``=`` between attribute name and value are no longer collapsed. E." +"g. ```` produces attribute \"foo\" with value \"=bar\"." msgstr "" -#: ../NEWS:224 msgid "" "[Reverted in :gh:`136927`] Whitespaces between the ``=`` separator and " "attribute name or value are no longer ignored. E.g. ```` " @@ -545,7 +522,6 @@ msgid "" "with value None." msgstr "" -#: ../NEWS:229 msgid "" ":gh:`102555`: Fix comment parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no " @@ -553,46 +529,39 @@ msgid "" "and ``<--->``." msgstr "" -#: ../NEWS:237 msgid "" ":gh:`136286`: Fix pickling failures for protocols 0 and 1 for many objects " "realted to subinterpreters." msgstr "" -#: ../NEWS:240 msgid "" -":gh:`136316`: Improve support for evaluating nested forward references " -"in :func:`typing.evaluate_forward_ref`." +":gh:`136316`: Improve support for evaluating nested forward references in :" +"func:`typing.evaluate_forward_ref`." msgstr "" -#: ../NEWS:243 msgid "" ":gh:`85702`: If ``zoneinfo._common.load_tzdata`` is given a package without " -"a resource a :exc:`zoneinfo.ZoneInfoNotFoundError` is raised rather than " -"a :exc:`PermissionError`. Patch by Victor Stinner." +"a resource a :exc:`zoneinfo.ZoneInfoNotFoundError` is raised rather than a :" +"exc:`PermissionError`. Patch by Victor Stinner." msgstr "" -#: ../NEWS:247 msgid "" ":gh:`136028`: Fix parsing month names containing \"İ\" (U+0130, LATIN " "CAPITAL LETTER I WITH DOT ABOVE) in :func:`time.strptime`. This affects " "locales az_AZ, ber_DZ, ber_MA and crh_UA." msgstr "" -#: ../NEWS:251 msgid "" ":gh:`135995`: In the palmos encoding, make byte ``0x9b`` decode to ``›`` " "(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK)." msgstr "" -#: ../NEWS:254 msgid "" ":gh:`53203`: Fix :func:`time.strptime` for ``%c`` and ``%x`` formats on " "locales byn_ER, wal_ET and lzh_TW, and for ``%X`` format on locales ar_SA, " "bg_BG and lzh_TW." msgstr "" -#: ../NEWS:258 msgid "" ":gh:`91555`: An earlier change, which was introduced in 3.14.0b2, has been " "reverted. It disabled logging for a logger during handling of log messages " @@ -600,128 +569,107 @@ msgid "" "before 3.14.0b2." msgstr "" -#: ../NEWS:263 msgid "" ":gh:`135878`: Fixes a crash of :class:`types.SimpleNamespace` on :term:`free " -"threading` builds, when several threads were calling " -"its :meth:`~object.__repr__` method at the same time." +"threading` builds, when several threads were calling its :meth:`~object." +"__repr__` method at the same time." msgstr "" -#: ../NEWS:267 msgid "" -":gh:`135836`: Fix :exc:`IndexError` " -"in :meth:`asyncio.loop.create_connection` that could occur when non-" -"\\ :exc:`OSError` exception is raised during connection and socket's " -"``close()`` raises :exc:`!OSError`." +":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop." +"create_connection` that could occur when non-\\ :exc:`OSError` exception is " +"raised during connection and socket's ``close()`` raises :exc:`!OSError`." msgstr "" -#: ../NEWS:271 msgid "" -":gh:`135836`: Fix :exc:`IndexError` " -"in :meth:`asyncio.loop.create_connection` that could occur when the Happy " -"Eyeballs algorithm resulted in an empty exceptions list during connection " -"attempts." +":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop." +"create_connection` that could occur when the Happy Eyeballs algorithm " +"resulted in an empty exceptions list during connection attempts." msgstr "" -#: ../NEWS:275 msgid "" -":gh:`135855`: Raise :exc:`TypeError` instead of :exc:`SystemError` " -"when :func:`!_interpreters.set___main___attrs` is passed a non-dict object. " -"Patch by Brian Schubert." +":gh:`135855`: Raise :exc:`TypeError` instead of :exc:`SystemError` when :" +"func:`!_interpreters.set___main___attrs` is passed a non-dict object. Patch " +"by Brian Schubert." msgstr "" -#: ../NEWS:279 msgid "" ":gh:`135815`: :mod:`netrc`: skip security checks if :func:`os.getuid` is " "missing. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:282 msgid "" -":gh:`135640`: Address bug where it was possible to " -"call :func:`xml.etree.ElementTree.ElementTree.write` on an ElementTree " -"object with an invalid root element. This behavior blanked the file passed " -"to ``write`` if it already existed." +":gh:`135640`: Address bug where it was possible to call :func:`xml.etree." +"ElementTree.ElementTree.write` on an ElementTree object with an invalid root " +"element. This behavior blanked the file passed to ``write`` if it already " +"existed." msgstr "" -#: ../NEWS:287 msgid "" -":gh:`135645`: Added ``supports_isolated_interpreters`` field " -"to :data:`sys.implementation`." +":gh:`135645`: Added ``supports_isolated_interpreters`` field to :data:`sys." +"implementation`." msgstr "" -#: ../NEWS:290 msgid "" -":gh:`135646`: Raise consistent :exc:`NameError` exceptions " -"in :func:`annotationlib.ForwardRef.evaluate`" +":gh:`135646`: Raise consistent :exc:`NameError` exceptions in :func:" +"`annotationlib.ForwardRef.evaluate`" msgstr "" -#: ../NEWS:293 msgid "" ":gh:`135557`: Fix races on :mod:`heapq` updates and :class:`list` reads on " "the :term:`free threaded ` build." msgstr "" -#: ../NEWS:296 msgid "" -":gh:`119180`: Only fetch globals and locals if necessary " -"in :func:`annotationlib.get_annotations`" +":gh:`119180`: Only fetch globals and locals if necessary in :func:" +"`annotationlib.get_annotations`" msgstr "" -#: ../NEWS:299 msgid "" ":gh:`135561`: Fix a crash on DEBUG builds when an HACL* HMAC routine fails. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:302 msgid "" ":gh:`135487`: Fix :meth:`!reprlib.Repr.repr_int` when given integers with " "more than :func:`sys.get_int_max_str_digits` digits. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:306 msgid "" ":gh:`135335`: :mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after " "preloading modules in the ``forkserver``." msgstr "" -#: ../NEWS:309 msgid "" ":gh:`135069`: Fix the \"Invalid error handling\" exception in :class:`!" "encodings.idna.IncrementalDecoder` to correctly replace the 'errors' " "parameter." msgstr "" -#: ../NEWS:313 msgid "" -":gh:`130662`: +Accept leading zeros in precision and width fields for " -"+:class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25), " +":gh:`130662`: +Accept leading zeros in precision and width fields for +:" +"class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25), " "'.016f')``." msgstr "" -#: ../NEWS:317 msgid "" -":gh:`130662`: Accept leading zeros in precision and width fields " -"for :class:`~fractions.Fraction` formatting, for example " -"``format(Fraction(1, 3), '.016f')``." +":gh:`130662`: Accept leading zeros in precision and width fields for :class:" +"`~fractions.Fraction` formatting, for example ``format(Fraction(1, 3), " +"'.016f')``." msgstr "" -#: ../NEWS:321 msgid "" ":gh:`87790`: Support underscore and comma as thousands separators in the " "fractional part for :class:`~fractions.Fraction`'s formatting. Patch by " "Sergey B Kirpichev." msgstr "" -#: ../NEWS:325 msgid "" ":gh:`87790`: Support underscore and comma as thousands separators in the " "fractional part for :class:`~decimal.Decimal`'s formatting. Patch by Sergey " "B Kirpichev." msgstr "" -#: ../NEWS:329 msgid "" ":gh:`130664`: Handle corner-case for :class:`~fractions.Fraction`'s " "formatting: treat zero-padding (preceding the width field by a zero " @@ -729,128 +677,90 @@ msgid "" "alignment type of ``'='``, just as in case of :class:`float`'s." msgstr "" -#: ../NEWS:335 ../NEWS:517 ../NEWS:1377 ../NEWS:1952 ../NEWS:2406 ../NEWS:2972 -#: ../NEWS:3792 ../NEWS:4406 ../NEWS:5967 ../NEWS:7513 ../NEWS:7971 -#: ../NEWS:8437 ../NEWS:8974 ../NEWS:9789 ../NEWS:12312 ../NEWS:13830 -#: ../NEWS:14263 ../NEWS:14534 ../NEWS:14813 ../NEWS:15212 ../NEWS:15530 -#: ../NEWS:15955 ../NEWS:17657 ../NEWS:18890 ../NEWS:19484 ../NEWS:19993 -#: ../NEWS:20341 ../NEWS:20787 ../NEWS:21177 ../NEWS:21676 ../NEWS:23286 -#: ../NEWS:24354 ../NEWS:24816 ../NEWS:25096 ../NEWS:25366 ../NEWS:25719 -#: ../NEWS:26162 ../NEWS:26628 ../NEWS:27588 ../NEWS:28135 ../NEWS:28579 -#: ../NEWS:29037 ../NEWS:29441 ../NEWS:29864 ../NEWS:30179 ../NEWS:31524 -#: ../NEWS:32830 ../NEWS:33297 ../NEWS:33775 ../NEWS:34017 ../NEWS:36201 -#: ../NEWS:37177 ../NEWS:37387 ../NEWS:37537 ../NEWS:37755 ../NEWS:38000 -#: ../NEWS:38325 ../NEWS:38665 ../NEWS:39148 ../NEWS:39491 ../NEWS:41101 -#: ../NEWS:41855 ../NEWS:42211 ../NEWS:42608 ../NEWS:43007 ../NEWS:43576 -#: ../NEWS:43896 ../NEWS:44052 ../NEWS:44155 ../NEWS:45514 ../NEWS:45765 -#: ../NEWS:46932 ../NEWS:47492 ../NEWS:48159 ../NEWS:48885 ../NEWS:49446 -#: ../NEWS:49699 ../NEWS:49898 ../NEWS:50209 ../NEWS:52410 -msgid "Documentation" -msgstr "" - -#: ../NEWS:337 msgid "" ":gh:`136155`: EPUB builds are fixed by excluding non-XHTML-compatible tags." msgstr "" -#: ../NEWS:342 msgid ":gh:`109700`: Fix memory error handling in :c:func:`PyDict_SetDefault`." msgstr "" -#: ../NEWS:344 msgid "" ":gh:`78465`: Fix error message for ``cls.__new__(cls, ...)`` where ``cls`` " "is not instantiable builtin or extension type (with ``tp_new`` set to " "``NULL``)." msgstr "" -#: ../NEWS:348 msgid "" ":gh:`129958`: Differentiate between t-strings and f-strings in syntax error " "for newlines in format specifiers of single-quoted interpolated strings." msgstr "" -#: ../NEWS:351 msgid "" ":gh:`135871`: Non-blocking mutex lock attempts now return immediately when " "the lock is busy instead of briefly spinning in the :term:`free threading` " "build." msgstr "" -#: ../NEWS:355 msgid "" ":gh:`135106`: Restrict the trashcan mechanism to GC'ed objects and untrack " "them while in the trashcan to prevent the GC and trashcan mechanisms " "conflicting." msgstr "" -#: ../NEWS:359 msgid "" ":gh:`135607`: Fix potential :mod:`weakref` races in an object's destructor " "on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:362 msgid ":gh:`135608`: Fix a crash in the JIT involving attributes of modules." msgstr "" -#: ../NEWS:364 msgid "" -":gh:`135543`: Emit ``sys.remote_exec`` audit event " -"when :func:`sys.remote_exec` is called and migrate " -"``remote_debugger_script`` to ``cpython.remote_debugger_script``." +":gh:`135543`: Emit ``sys.remote_exec`` audit event when :func:`sys." +"remote_exec` is called and migrate ``remote_debugger_script`` to ``cpython." +"remote_debugger_script``." msgstr "" -#: ../NEWS:368 msgid "" ":gh:`134280`: Disable constant folding for ``~`` with a boolean argument. " "This moves the deprecation warning from compile time to runtime." msgstr "" -#: ../NEWS:374 msgid "" ":gh:`135906`: Fix compilation errors when compiling the internal headers " "with a C++ compiler." msgstr "" -#: ../NEWS:380 msgid "" ":gh:`134273`: Add support for configuring compiler flags for the JIT with " "``CFLAGS_JIT``" msgstr "" -#: ../NEWS:385 msgid "Python 3.14.0 beta 3" msgstr "" -#: ../NEWS:387 msgid "*Release date: 2025-06-17*" msgstr "" -#: ../NEWS:392 msgid "" ":gh:`135099`: Fix a crash that could occur on Windows when a background " "thread waits on a :c:type:`PyMutex` while the main thread is shutting down " "the interpreter." msgstr "" -#: ../NEWS:399 msgid "" ":gh:`132815`: Fix test__opcode: add ``JUMP_BACKWARD`` to specialization " "stats." msgstr "" -#: ../NEWS:402 msgid "" ":gh:`135489`: Show verbose output for failing tests during PGO profiling " "step with --enable-optimizations." msgstr "" -#: ../NEWS:405 msgid ":gh:`135120`: Add :func:`!test.support.subTests`." msgstr "" -#: ../NEWS:410 msgid "" ":gh:`135462`: Fix quadratic complexity in processing specially crafted input " "in :class:`html.parser.HTMLParser`. End-of-file errors are now handled " @@ -858,114 +768,95 @@ msgid "" "closed, tags are ignored." msgstr "" -#: ../NEWS:415 msgid "" ":gh:`135034`: Fixes multiple issues that allowed ``tarfile`` extraction " "filters (``filter=\"data\"`` and ``filter=\"tar\"``) to be bypassed using " "crafted symlinks and hard links." msgstr "" -#: ../NEWS:419 msgid "" -"Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, " -"and :cve:`2025-4517`." +"Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and :cve:" +"`2025-4517`." msgstr "" -#: ../NEWS:425 msgid "" ":gh:`65697`: :class:`configparser`'s error message when attempting to write " "an invalid key is now more helpful." msgstr "" -#: ../NEWS:428 msgid "" ":gh:`135497`: Fix :func:`os.getlogin` failing for longer usernames on BSD-" "based platforms." msgstr "" -#: ../NEWS:431 msgid "" ":gh:`135429`: Fix the argument mismatch in ``_lsprof`` for ``PY_THROW`` " "event." msgstr "" -#: ../NEWS:434 msgid "" -":gh:`135368`: Fix :class:`unittest.mock.Mock` generation " -"on :func:`dataclasses.dataclass` objects. Now all special attributes are set " -"as it was before :gh:`124429`." +":gh:`135368`: Fix :class:`unittest.mock.Mock` generation on :func:" +"`dataclasses.dataclass` objects. Now all special attributes are set as it " +"was before :gh:`124429`." msgstr "" -#: ../NEWS:438 msgid "" ":gh:`133967`: Do not normalize :mod:`locale` name 'C.UTF-8' to 'en_US.UTF-8'." msgstr "" -#: ../NEWS:440 msgid "" ":gh:`135321`: Raise a correct exception for values greater than 0x7fffffff " "for the ``BINSTRING`` opcode in the C implementation of :mod:`pickle`." msgstr "" -#: ../NEWS:443 msgid "" -":gh:`135276`: Backported bugfixes in zipfile.Path from zipp 3.23. Fixed " -"``.name``, ``.stem`` and other basename-based properties on Windows when " +":gh:`135276`: Backported bugfixes in zipfile.Path from zipp 3.23. Fixed ``." +"name``, ``.stem`` and other basename-based properties on Windows when " "working with a zipfile on disk." msgstr "" -#: ../NEWS:447 msgid "" ":gh:`135244`: :mod:`uuid`: when the MAC address cannot be determined, the 48-" "bit node ID is now generated with a cryptographically-secure pseudo-random " "number generator (CSPRNG) as per :rfc:`RFC 9562, §6.10.3 " -"<9562#section-6.10-3>`. This affects :func:`~uuid.uuid1` " -"and :func:`~uuid.uuid6`." +"<9562#section-6.10-3>`. This affects :func:`~uuid.uuid1` and :func:`~uuid." +"uuid6`." msgstr "" -#: ../NEWS:453 msgid "" -":gh:`134970`: Fix the \"unknown action\" exception " -"in :meth:`argparse.ArgumentParser.add_argument_group` to correctly replace " -"the action class." +":gh:`134970`: Fix the \"unknown action\" exception in :meth:`argparse." +"ArgumentParser.add_argument_group` to correctly replace the action class." msgstr "" -#: ../NEWS:457 msgid "" ":gh:`134718`: :func:`ast.dump` now only omits ``None`` and ``[]`` values if " "they are default values." msgstr "" -#: ../NEWS:460 msgid "" ":gh:`134939`: Add the :mod:`concurrent.interpreters` module. See :pep:`734`." msgstr "" -#: ../NEWS:462 msgid "" ":gh:`134885`: Fix possible crash in the :mod:`compression.zstd` module " "related to setting parameter types. Patch by Jelle Zijlstra." msgstr "" -#: ../NEWS:465 msgid "" -":gh:`134857`: Improve error report for :mod:`doctest`\\ s run " -"with :mod:`unittest`. Remove :mod:`!doctest` module frames from tracebacks " -"and redundant newline character from a failure message." +":gh:`134857`: Improve error report for :mod:`doctest`\\ s run with :mod:" +"`unittest`. Remove :mod:`!doctest` module frames from tracebacks and " +"redundant newline character from a failure message." msgstr "" -#: ../NEWS:469 msgid "" ":gh:`128840`: Fix parsing long IPv6 addresses with embedded IPv4 address." msgstr "" -#: ../NEWS:471 msgid "" ":gh:`134637`: Fix performance regression in calling a :mod:`ctypes` function " "pointer in :term:`free threading`." msgstr "" -#: ../NEWS:474 msgid "" ":gh:`134696`: Built-in HACL* and OpenSSL implementations of hash function " "constructors now correctly accept the same *documented* named arguments. For " @@ -974,39 +865,32 @@ msgid "" "implementation but these calls were not compatible. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:481 msgid "" -":gh:`134151`: :mod:`email`: Fix :exc:`TypeError` " -"in :func:`email.utils.decode_params` when sorting :rfc:`2231` continuations " -"that contain an unnumbered section." +":gh:`134151`: :mod:`email`: Fix :exc:`TypeError` in :func:`email.utils." +"decode_params` when sorting :rfc:`2231` continuations that contain an " +"unnumbered section." msgstr "" -#: ../NEWS:485 msgid "" ":gh:`134210`: :func:`curses.window.getch` now correctly handles signals. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:488 msgid "" ":gh:`134152`: :mod:`email`: Fix parsing of email message ID with invalid " "domain." msgstr "" -#: ../NEWS:491 msgid "" -":gh:`133489`: :func:`random.getrandbits` can now generate more that " -"2\\ :sup:`31` bits. :func:`random.randbytes` can now generate more that 256 " -"MiB." +":gh:`133489`: :func:`random.getrandbits` can now generate more that 2\\ :sup:" +"`31` bits. :func:`random.randbytes` can now generate more that 256 MiB." msgstr "" -#: ../NEWS:495 msgid "" -":gh:`132813`: Improve error messages for incorrect types and values " -"of :class:`csv.Dialect` attributes." +":gh:`132813`: Improve error messages for incorrect types and values of :" +"class:`csv.Dialect` attributes." msgstr "" -#: ../NEWS:498 msgid "" ":gh:`132969`: Prevent the :class:`~concurrent.futures.ProcessPoolExecutor` " "executor thread, which remains running when :meth:`shutdown(wait=False) " @@ -1018,43 +902,36 @@ msgid "" "pool." msgstr "" -#: ../NEWS:507 msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`os` by replacing " "``getlogin`` with ``getlogin_r`` re-entrant version." msgstr "" -#: ../NEWS:510 msgid "" ":gh:`131884`: Fix formatting issues in :func:`json.dump` when both *indent* " "and *skipkeys* are used." msgstr "" -#: ../NEWS:513 msgid "" ":gh:`130999`: Avoid exiting the new REPL and offer suggestions even if there " "are non-string candidates when errors occur." msgstr "" -#: ../NEWS:519 msgid "" ":gh:`135171`: Document that the :term:`iterator` for the leftmost :keyword:`!" "for` clause in the generator expression is created immediately." msgstr "" -#: ../NEWS:522 msgid "" ":issue:`45210`: Document that error indicator may be set in tp_dealloc, and " "how to avoid clobbering it." msgstr "" -#: ../NEWS:528 msgid "" ":gh:`135496`: Fix typo in the f-string conversion type error " "(\"exclamanation\" -> \"exclamation\")." msgstr "" -#: ../NEWS:531 msgid "" ":gh:`135371`: Fixed :mod:`asyncio` debugging tools to properly display " "internal coroutine call stacks alongside external task dependencies. The " @@ -1062,28 +939,24 @@ msgid "" "complete execution context. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:536 msgid "" ":gh:`127319`: Set the ``allow_reuse_port`` class variable to ``False`` on " "the XMLRPC, logging, and HTTP servers. This matches the behavior in prior " "Python releases, which is to not allow port reuse." msgstr "" -#: ../NEWS:540 msgid "" ":gh:`135171`: Reverts the behavior of async generator expressions when " "created with object w/o __aiter__ method to the pre-3.13 behavior of raising " "a TypeError." msgstr "" -#: ../NEWS:544 msgid "" ":gh:`130077`: Properly raise custom syntax errors when incorrect syntax " "containing names that are prefixes of soft keywords is encountered. Patch " "by Pablo Galindo." msgstr "" -#: ../NEWS:548 msgid "" ":gh:`135171`: Reverts the behavior of generator expressions when created " "with a non-iterable to the pre-3.13 behavior of raising a TypeError. It is " @@ -1093,31 +966,26 @@ msgid "" "and adding an additional check to ``FOR_ITER``." msgstr "" -#: ../NEWS:555 msgid "" ":gh:`116738`: Make methods in :mod:`heapq` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:558 msgid "" ":gh:`134876`: Add support to :pep:`768` remote debugging for Linux kernels " "which don't have CONFIG_CROSS_MEMORY_ATTACH configured." msgstr "" -#: ../NEWS:561 msgid "" ":gh:`134889`: Fix handling of a few opcodes that leave operands on the stack " "when optimizing ``LOAD_FAST``." msgstr "" -#: ../NEWS:564 msgid "" -":gh:`134908`: Fix crash when iterating over lines in a text file on " -"the :term:`free threaded ` build." +":gh:`134908`: Fix crash when iterating over lines in a text file on the :" +"term:`free threaded ` build." msgstr "" -#: ../NEWS:567 msgid "" ":gh:`132617`: Fix :meth:`dict.update` modification check that could " "incorrectly raise a \"dict mutated during update\" error when a different " @@ -1125,26 +993,22 @@ msgid "" "object." msgstr "" -#: ../NEWS:572 msgid "" ":gh:`134679`: Fix crash in the :term:`free threading` build's QSBR code that " "could occur when changing an object's ``__dict__`` attribute." msgstr "" -#: ../NEWS:575 msgid "" ":gh:`127682`: No longer call ``__iter__`` twice in list comprehensions. This " "brings the behavior of list comprehensions in line with other forms of " "iteration" msgstr "" -#: ../NEWS:579 msgid "" ":gh:`133912`: Fix the C API function ``PyObject_GenericSetDict`` to handle " "extension classes with inline values." msgstr "" -#: ../NEWS:585 msgid "" ":gh:`134989`: Fix ``Py_RETURN_NONE``, ``Py_RETURN_TRUE`` and " "``Py_RETURN_FALSE`` macros in the limited C API 3.11 and older: don't treat " @@ -1152,47 +1016,40 @@ msgid "" "Stinner." msgstr "" -#: ../NEWS:590 msgid "" -":gh:`134989`: Implement :c:func:`PyObject_DelAttr` " -"and :c:func:`PyObject_DelAttrString` as macros in the limited C API 3.12 and " -"older. Patch by Victor Stinner." +":gh:`134989`: Implement :c:func:`PyObject_DelAttr` and :c:func:" +"`PyObject_DelAttrString` as macros in the limited C API 3.12 and older. " +"Patch by Victor Stinner." msgstr "" -#: ../NEWS:594 msgid "" ":gh:`133968`: Add :c:func:`PyUnicodeWriter_WriteASCII` function to write an " -"ASCII string into a :c:type:`PyUnicodeWriter`. The function is faster " -"than :c:func:`PyUnicodeWriter_WriteUTF8`, but has an undefined behavior if " -"the input string contains non-ASCII characters. Patch by Victor Stinner." +"ASCII string into a :c:type:`PyUnicodeWriter`. The function is faster than :" +"c:func:`PyUnicodeWriter_WriteUTF8`, but has an undefined behavior if the " +"input string contains non-ASCII characters. Patch by Victor Stinner." msgstr "" -#: ../NEWS:602 msgid "" ":gh:`119132`: Remove \"experimental\" tag from the CPython free-threading " "build." msgstr "" -#: ../NEWS:605 msgid "" ":gh:`135497`: Fix the detection of ``MAXLOGNAME`` in the ``configure.ac`` " "script." msgstr "" -#: ../NEWS:608 msgid "" ":gh:`134923`: Windows builds with profile-guided optimization enabled now " "use ``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:`` " "options." msgstr "" -#: ../NEWS:612 msgid "" ":gh:`134774`: Fix :c:macro:`Py_DEBUG` macro redefinition warnings on Windows " "debug builds. Patch by Chris Eibl." msgstr "" -#: ../NEWS:615 msgid "" ":gh:`134632`: Fixed ``build-details.json`` generation to use ``INCLUDEPY``, " "in order to reference the ``pythonX.Y`` subdirectory of the include " @@ -1200,27 +1057,22 @@ msgid "" "directory." msgstr "" -#: ../NEWS:622 msgid "Python 3.14.0 beta 2" msgstr "" -#: ../NEWS:624 msgid "*Release date: 2025-05-26*" msgstr "" -#: ../NEWS:629 msgid "" ":gh:`130727`: Fix a race in internal calls into WMI that can result in an " "\"invalid handle\" exception under high load. Patch by Chris Eibl." msgstr "" -#: ../NEWS:632 msgid "" ":gh:`76023`: Make :func:`os.path.realpath` ignore Windows error 1005 when in " "non-strict mode." msgstr "" -#: ../NEWS:635 msgid "" ":gh:`133779`: Reverts the change to generate different :file:`pyconfig.h` " "files based on compiler settings, as it was frequently causing extension " @@ -1231,204 +1083,171 @@ msgid "" "with that flag or not." msgstr "" -#: ../NEWS:643 msgid "" ":gh:`133626`: Ensures packages are not accidentally bundled into the " "traditional installer." msgstr "" -#: ../NEWS:649 msgid "" ":gh:`134215`: :term:`REPL` import autocomplete only suggests private modules " "when explicitly specified." msgstr "" -#: ../NEWS:655 msgid "" ":gh:`133744`: Fix multiprocessing interrupt test. Add an event to " "synchronize the parent process with the child process: wait until the child " "process starts sleeping. Patch by Victor Stinner." msgstr "" -#: ../NEWS:659 msgid "" -":gh:`133682`: Fixed test case " -"``test.test_annotationlib.TestStringFormat.test_displays`` which ensures " -"proper handling of complex data structures (lists, sets, dictionaries, and " -"tuples) in string annotations." +":gh:`133682`: Fixed test case ``test.test_annotationlib.TestStringFormat." +"test_displays`` which ensures proper handling of complex data structures " +"(lists, sets, dictionaries, and tuples) in string annotations." msgstr "" -#: ../NEWS:664 msgid "" ":gh:`133639`: Fix ``TestPyReplAutoindent.test_auto_indent_default()`` " "doesn't run ``input_code``." msgstr "" -#: ../NEWS:670 msgid "" ":gh:`133767`: Fix use-after-free in the \"unicode-escape\" decoder with a " "non-\"strict\" error handler." msgstr "" -#: ../NEWS:673 msgid "" -":gh:`128840`: Short-circuit the processing of long IPv6 addresses early " -"in :mod:`ipaddress` to prevent excessive memory consumption and a minor " -"denial-of-service." +":gh:`128840`: Short-circuit the processing of long IPv6 addresses early in :" +"mod:`ipaddress` to prevent excessive memory consumption and a minor denial-" +"of-service." msgstr "" -#: ../NEWS:680 msgid "" ":gh:`132710`: If possible, ensure that :func:`uuid.getnode` returns the same " "result even across different processes. Previously, the result was constant " "only within the same process. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:684 msgid "" ":gh:`80334`: :func:`multiprocessing.freeze_support` now checks for work on " "any \"spawn\" start method platform rather than only on Windows." msgstr "" -#: ../NEWS:687 msgid "" ":gh:`134582`: Fix tokenize.untokenize() round-trip errors related to t-" "strings braces escaping" msgstr "" -#: ../NEWS:690 msgid "" ":gh:`134546`: Ensure :mod:`pdb` remote debugging script is readable by " "remote Python process." msgstr "" -#: ../NEWS:693 msgid "" ":gh:`134451`: Converted ``asyncio.tools.CycleFoundException`` from dataclass " "to a regular exception type." msgstr "" -#: ../NEWS:696 msgid "" ":gh:`114177`: Fix :mod:`asyncio` to not close subprocess pipes which would " "otherwise error out when the event loop is already closed." msgstr "" -#: ../NEWS:699 msgid "" -":gh:`90871`: Fixed an off by one error concerning the backlog parameter " -"in :meth:`~asyncio.loop.create_unix_server`. Contributed by Christian " -"Harries." +":gh:`90871`: Fixed an off by one error concerning the backlog parameter in :" +"meth:`~asyncio.loop.create_unix_server`. Contributed by Christian Harries." msgstr "" -#: ../NEWS:703 msgid ":gh:`134323`: Fix the :meth:`threading.RLock.locked` method." msgstr "" -#: ../NEWS:705 msgid "" ":gh:`86802`: Fixed asyncio memory leak in cancelled shield tasks. For " "shielded tasks where the shield was cancelled, log potential exceptions " "through the exception handler. Contributed by Christian Harries." msgstr "" -#: ../NEWS:709 msgid "" -":gh:`134209`: :mod:`curses`: The :meth:`curses.window.instr` " -"and :meth:`curses.window.getstr` methods now allocate their internal buffer " -"on the heap instead of the stack; in addition, the max buffer size is " -"increased from 1023 to 2047." +":gh:`134209`: :mod:`curses`: The :meth:`curses.window.instr` and :meth:" +"`curses.window.getstr` methods now allocate their internal buffer on the " +"heap instead of the stack; in addition, the max buffer size is increased " +"from 1023 to 2047." msgstr "" -#: ../NEWS:714 msgid "" ":gh:`134235`: Updated tab completion on REPL to include builtin modules. " "Contributed by Tom Wang, Hunter Young" msgstr "" -#: ../NEWS:717 msgid "" -":gh:`134152`: Fixed :exc:`UnboundLocalError` that could occur " -"during :mod:`email` header parsing if an expected trailing delimiter is " -"missing in some contexts." +":gh:`134152`: Fixed :exc:`UnboundLocalError` that could occur during :mod:" +"`email` header parsing if an expected trailing delimiter is missing in some " +"contexts." msgstr "" -#: ../NEWS:721 msgid "" ":gh:`134168`: :mod:`http.server`: Fix IPv6 address binding and :option:`--" "directory ` handling when using HTTPS." msgstr "" -#: ../NEWS:724 msgid "" ":gh:`62184`: Remove import of C implementation of :class:`io.FileIO` from " "Python implementation which has its own implementation" msgstr "" -#: ../NEWS:727 msgid "" -":gh:`133982`: Emit :exc:`RuntimeWarning` in the Python implementation " -"of :mod:`io` when the :term:`file-like object ` is not closed " +":gh:`133982`: Emit :exc:`RuntimeWarning` in the Python implementation of :" +"mod:`io` when the :term:`file-like object ` is not closed " "explicitly in the presence of multiple I/O layers." msgstr "" -#: ../NEWS:731 msgid "" -":gh:`133890`: The :mod:`tarfile` module now " -"handles :exc:`UnicodeEncodeError` in the same way as :exc:`OSError` when " -"cannot extract a member." +":gh:`133890`: The :mod:`tarfile` module now handles :exc:" +"`UnicodeEncodeError` in the same way as :exc:`OSError` when cannot extract a " +"member." msgstr "" -#: ../NEWS:734 msgid "" ":gh:`134097`: Fix interaction of the new :term:`REPL` and :option:`-X " "showrefcount <-X>` command line option." msgstr "" -#: ../NEWS:737 msgid "" -":gh:`133889`: The generated directory listing page " -"in :class:`http.server.SimpleHTTPRequestHandler` now only shows the decoded " -"path component of the requested URL, and not the query and fragment." +":gh:`133889`: The generated directory listing page in :class:`http.server." +"SimpleHTTPRequestHandler` now only shows the decoded path component of the " +"requested URL, and not the query and fragment." msgstr "" -#: ../NEWS:741 msgid "" ":gh:`134098`: Fix handling paths that end with a percent-encoded slash " "(``%2f`` or ``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`." msgstr "" -#: ../NEWS:744 msgid "" -":gh:`132124`: On POSIX-compliant systems, :func:`!" -"multiprocessing.util.get_temp_dir` now ignores :envvar:`TMPDIR` (and similar " -"environment variables) if the path length of ``AF_UNIX`` socket files " -"exceeds the platform-specific maximum length when using the :ref:`forkserver " +":gh:`132124`: On POSIX-compliant systems, :func:`!multiprocessing.util." +"get_temp_dir` now ignores :envvar:`TMPDIR` (and similar environment " +"variables) if the path length of ``AF_UNIX`` socket files exceeds the " +"platform-specific maximum length when using the :ref:`forkserver " "` start method. Patch by Bénédikt " "Tran." msgstr "" -#: ../NEWS:751 msgid "" ":gh:`134062`: :mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` " "for :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " "objects." msgstr "" -#: ../NEWS:755 msgid "" -":gh:`133970`: Make :class:`!string.templatelib.Template` and :class:`!" -"string.templatelib.Interpolation` generic." +":gh:`133970`: Make :class:`!string.templatelib.Template` and :class:`!string." +"templatelib.Interpolation` generic." msgstr "" -#: ../NEWS:758 msgid "" ":gh:`71253`: Raise :exc:`ValueError` in :func:`open` if *opener* returns a " "negative file-descriptor in the Python implementation of :mod:`io` to match " "the C implementation." msgstr "" -#: ../NEWS:762 msgid "" ":gh:`133960`: Simplify and improve :func:`typing.evaluate_forward_ref`. It " "now no longer raises errors on certain invalid types. In several situations, " @@ -1436,61 +1255,52 @@ msgid "" "unsupported." msgstr "" -#: ../NEWS:767 msgid "" ":gh:`133925`: Make the private class ``typing._UnionGenericAlias`` hashable." msgstr "" -#: ../NEWS:769 msgid "" ":gh:`133653`: Fix :class:`argparse.ArgumentParser` with the " "*formatter_class* argument. Fix TypeError when *formatter_class* is a custom " "subclass of :class:`!HelpFormatter`. Fix TypeError when *formatter_class* is " "not a subclass of :class:`!HelpFormatter` and non-standard *prefix_char* is " -"used. Fix support of colorizing when *formatter_class* is not a subclass " -"of :class:`!HelpFormatter`." +"used. Fix support of colorizing when *formatter_class* is not a subclass of :" +"class:`!HelpFormatter`." msgstr "" -#: ../NEWS:776 msgid "" ":gh:`132641`: Fixed a race in :func:`functools.lru_cache` under free-" "threading." msgstr "" -#: ../NEWS:779 msgid "" ":gh:`133783`: Fix bug with applying :func:`copy.replace` to :mod:`ast` " "objects. Attributes that default to ``None`` were incorrectly treated as " "required for manually created AST nodes." msgstr "" -#: ../NEWS:783 msgid "" ":gh:`133684`: Fix bug where :func:`annotationlib.get_annotations` would " "return the wrong result for certain classes that are part of a class " "hierarchy where ``from __future__ import annotations`` is used." msgstr "" -#: ../NEWS:787 msgid "" -":gh:`77057`: Fix handling of invalid markup declarations " -"in :class:`html.parser.HTMLParser`." +":gh:`77057`: Fix handling of invalid markup declarations in :class:`html." +"parser.HTMLParser`." msgstr "" -#: ../NEWS:790 msgid "" ":gh:`130328`: Speedup pasting in ``PyREPL`` on Windows in a legacy console. " "Patch by Chris Eibl." msgstr "" -#: ../NEWS:793 msgid "" ":gh:`133701`: Fix bug where :class:`typing.TypedDict` classes defined under " "``from __future__ import annotations`` and inheriting from another " "``TypedDict`` had an incorrect ``__annotations__`` attribute." msgstr "" -#: ../NEWS:797 msgid "" ":gh:`133581`: Improve unparsing of t-strings in :func:`ast.unparse` and " "``from __future__ import annotations``. Empty t-strings now round-trip " @@ -1498,25 +1308,21 @@ msgid "" "Zijlstra." msgstr "" -#: ../NEWS:802 msgid "" ":gh:`133551`: Support t-strings (:pep:`750`) in :mod:`annotationlib`. Patch " "by Jelle Zijlstra." msgstr "" -#: ../NEWS:805 msgid "" ":gh:`133439`: Fix dot commands with trailing spaces are mistaken for multi-" "line SQL statements in the sqlite3 command-line interface." msgstr "" -#: ../NEWS:808 msgid "" -":gh:`132493`: Avoid accessing ``__annotations__`` unnecessarily " -"in :func:`inspect.signature`." +":gh:`132493`: Avoid accessing ``__annotations__`` unnecessarily in :func:" +"`inspect.signature`." msgstr "" -#: ../NEWS:811 msgid "" ":gh:`132876`: ``ldexp()`` on Windows doesn't round subnormal results before " "Windows 11, but should. Python's :func:`math.ldexp` wrapper now does round " @@ -1524,227 +1330,190 @@ msgid "" "on Windows versions before 11." msgstr "" -#: ../NEWS:816 msgid "" -":gh:`133009`: :mod:`xml.etree.ElementTree`: Fix a crash " -"in :meth:`Element.__deepcopy__ ` when the element is " -"concurrently mutated. Patch by Bénédikt Tran." +":gh:`133009`: :mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element." +"__deepcopy__ ` when the element is concurrently " +"mutated. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:820 msgid "" ":gh:`91555`: Ignore log messages generated during handling of log messages, " "to avoid deadlock or infinite recursion. [NOTE: This change has since been " "reverted.]" msgstr "" -#: ../NEWS:824 msgid "" -":gh:`125028`: :data:`functools.Placeholder` cannot be passed " -"to :func:`functools.partial` as a keyword argument." +":gh:`125028`: :data:`functools.Placeholder` cannot be passed to :func:" +"`functools.partial` as a keyword argument." msgstr "" -#: ../NEWS:827 msgid "" ":gh:`62824`: Fix aliases for ``iso8859_8`` encoding. Patch by Dave Goncalves." msgstr "" -#: ../NEWS:829 msgid "" ":gh:`86155`: :meth:`html.parser.HTMLParser.close` no longer loses data when " "the ``\"\n" -"template = t\"

{evil}

\"\n" -"assert html(template) == \"

<script>alert('evil')</script>\"" +">>> list(template)\n" +"['Try some ', Interpolation('Stilton', 'variety', None, ''), ' cheese!']" msgstr "" -msgid "As another example, generating HTML attributes from data:" +msgid "" +"It's easy to write (or call) code to process :class:`!Template` instances. " +"For example, here's a function that renders static parts lowercase and :" +"class:`~string.templatelib.Interpolation` instances uppercase:" msgstr "" msgid "" -"attributes = {\"src\": \"shrubbery.jpg\", \"alt\": \"looks nice\"}\n" -"template = t\"\"\n" -"assert html(template) == '\"looks'" +"from string.templatelib import Interpolation\n" +"\n" +"def lower_upper(template):\n" +" \"\"\"Render static parts lowercase and interpolations uppercase.\"\"\"\n" +" parts = []\n" +" for part in template:\n" +" if isinstance(part, Interpolation):\n" +" parts.append(str(part.value).upper())\n" +" else:\n" +" parts.append(part.lower())\n" +" return ''.join(parts)\n" +"\n" +"name = 'Wenslydale'\n" +"template = t'Mister {name}'\n" +"assert lower_upper(template) == 'mister WENSLYDALE'" msgstr "" msgid "" -"Compared to using an f-string, the ``html`` function has access to template " -"attributes containing the original information: static strings, " -"interpolations, and values from the original scope. Unlike existing " -"templating approaches, t-strings build from the well-known f-string syntax " -"and rules. Template systems thus benefit from Python tooling as they are " -"much closer to the Python language, syntax, scoping, and more." +"Because :class:`!Template` instances distinguish between static strings and " +"interpolations at runtime, they can be useful for sanitising user input. " +"Writing a :func:`!html` function that escapes user input in HTML is an " +"exercise left to the reader! Template processing code can provide improved " +"flexibility. For instance, a more advanced :func:`!html` function could " +"accept a :class:`!dict` of HTML attributes directly in the template:" msgstr "" -msgid "Writing template handlers is straightforward:" +msgid "" +"attributes = {'src': 'limburger.jpg', 'alt': 'lovely cheese'}\n" +"template = t''\n" +"assert html(template) == '\"lovely'" msgstr "" msgid "" -"from string.templatelib import Template, Interpolation\n" -"\n" -"def lower_upper(template: Template) -> str:\n" -" \"\"\"Render static parts lowercased and interpolations uppercased." -"\"\"\"\n" -" parts: list[str] = []\n" -" for item in template:\n" -" if isinstance(item, Interpolation):\n" -" parts.append(str(item.value).upper())\n" -" else:\n" -" parts.append(item.lower())\n" -" return \"\".join(parts)\n" -"\n" -"name = \"world\"\n" -"assert lower_upper(t\"HELLO {name}\") == \"hello WORLD\"" +"Of course, template processing code does not need to return a string-like " +"result. An even *more* advanced :func:`!html` could return a custom type " +"representing a DOM-like structure." msgstr "" msgid "" -"With this in place, developers can write template systems to sanitize SQL, " +"With t-strings in place, developers can write systems that sanitise SQL, " "make safe shell operations, improve logging, tackle modern ideas in web " -"development (HTML, CSS, and so on), and implement lightweight, custom " +"development (HTML, CSS, and so on), and implement lightweight custom " "business DSLs." msgstr "" @@ -377,32 +466,41 @@ msgstr "" msgid ":pep:`750`." msgstr "" -msgid "PEP 768: Safe external debugger interface for CPython" +msgid ":pep:`768`: Safe external debugger interface" msgstr "" msgid "" -":pep:`768` introduces a zero-overhead debugging interface that allows " -"debuggers and profilers to safely attach to running Python processes. This " -"is a significant enhancement to Python's debugging capabilities allowing " -"debuggers to forego unsafe alternatives. See :ref:`below ` for how this feature is leveraged to implement the new :mod:`pdb` " -"module's remote attaching capabilities." +"Python 3.14 introduces a zero-overhead debugging interface that allows " +"debuggers and profilers to safely attach to running Python processes without " +"stopping or restarting them. This is a significant enhancement to Python's " +"debugging capabilities, meaning that unsafe alternatives are no longer " +"required." msgstr "" msgid "" "The new interface provides safe execution points for attaching debugger code " -"without modifying the interpreter's normal execution path or adding runtime " -"overhead. This enables tools to inspect and interact with Python " -"applications in real-time without stopping or restarting them — a crucial " -"capability for high-availability systems and production environments." +"without modifying the interpreter's normal execution path or adding any " +"overhead at runtime. Due to this, tools can now inspect and interact with " +"Python applications in real-time, which is a crucial capability for high-" +"availability systems and production environments." msgstr "" msgid "" -"For convenience, CPython implements this interface through the :mod:`sys` " -"module with a :func:`sys.remote_exec` function::" +"For convenience, this interface is implemented in the :func:`sys." +"remote_exec` function. For example:" msgstr "" -msgid "sys.remote_exec(pid, script_path)" +msgid "" +"import sys\n" +"from tempfile import NamedTemporaryFile\n" +"\n" +"with NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:\n" +" script_path = f.name\n" +" f.write(f'import my_debugger; my_debugger.connect({os.getpid()})')\n" +"\n" +"# Execute in process with PID 1234\n" +"print('Behold! An offering:')\n" +"sys.remote_exec(1234, script_path)" msgstr "" msgid "" @@ -412,29 +510,6 @@ msgid "" "mechanisms used to safely attach to running processes." msgstr "" -msgid "" -"Here's a simple example that inspects object types in a running Python " -"process:" -msgstr "" - -msgid "" -"import os\n" -"import sys\n" -"import tempfile\n" -"\n" -"# Create a temporary script\n" -"with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as " -"f:\n" -" script_path = f.name\n" -" f.write(f\"import my_debugger; my_debugger.connect({os.getpid()})\")\n" -"try:\n" -" # Execute in process with PID 1234\n" -" print(\"Behold! An offering:\")\n" -" sys.remote_exec(1234, script_path)\n" -"finally:\n" -" os.unlink(script_path)" -msgstr "" - msgid "" "The debugging interface has been carefully designed with security in mind " "and includes several mechanisms to control access:" @@ -451,13 +526,6 @@ msgid "" "feature at build time." msgstr "" -msgid "" -"A key implementation detail is that the interface piggybacks on the " -"interpreter's existing evaluation loop and safe points, ensuring zero " -"overhead during normal execution while providing a reliable way for external " -"processes to coordinate debugging operations." -msgstr "" - msgid "" "(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic " "in :gh:`131591`.)" @@ -466,247 +534,100 @@ msgstr "" msgid ":pep:`768`." msgstr "" -msgid "PEP 784: Adding Zstandard to the standard library" -msgstr "" - -msgid "" -"The new ``compression`` package contains modules :mod:`!compression.lzma`, :" -"mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!compression." -"zlib` which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` and :mod:" -"`zlib` modules respectively. The new import names under ``compression`` are " -"the canonical names for importing these compression modules going forward. " -"However, the existing modules names have not been deprecated. Any " -"deprecation or removal of the existing compression modules will occur no " -"sooner than five years after the release of 3.14." -msgstr "" - -msgid "" -"The new :mod:`!compression.zstd` module provides compression and " -"decompression APIs for the Zstandard format via bindings to `Meta's zstd " -"library `__. Zstandard is a widely " -"adopted, highly efficient, and fast compression format. In addition to the " -"APIs introduced in :mod:`!compression.zstd`, support for reading and writing " -"Zstandard compressed archives has been added to the :mod:`tarfile`, :mod:" -"`zipfile`, and :mod:`shutil` modules." -msgstr "" - -msgid "Here's an example of using the new module to compress some data:" -msgstr "" - -msgid "" -"from compression import zstd\n" -"import math\n" -"\n" -"data = str(math.pi).encode() * 20\n" -"\n" -"compressed = zstd.compress(data)\n" -"\n" -"ratio = len(compressed) / len(data)\n" -"print(f\"Achieved compression ratio of {ratio}\")" -msgstr "" - -msgid "" -"As can be seen, the API is similar to the APIs of the :mod:`!lzma` and :mod:" -"`!bz2` modules." -msgstr "" - -msgid "" -"(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas " -"Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" -msgstr "" - -msgid ":pep:`784`." -msgstr "" - -msgid "Remote attaching to a running Python process with PDB" -msgstr "" - -msgid "" -"The :mod:`pdb` module now supports remote attaching to a running Python " -"process using a new ``-p PID`` command-line option:" -msgstr "" - -msgid "python -m pdb -p 1234" -msgstr "" - -msgid "" -"This will connect to the Python process with the given PID and allow you to " -"debug it interactively. Notice that due to how the Python interpreter works " -"attaching to a remote process that is blocked in a system call or waiting " -"for I/O will only work once the next bytecode instruction is executed or " -"when the process receives a signal." -msgstr "" - -msgid "" -"This feature uses :pep:`768` and the :func:`sys.remote_exec` function to " -"attach to the remote process and send the PDB commands to it." -msgstr "" - -msgid "(Contributed by Matt Wozniski and Pablo Galindo in :gh:`131591`.)" -msgstr "" - -msgid "PEP 758 – Allow except and except* expressions without parentheses" -msgstr "" - -msgid "" -"The :keyword:`except` and :keyword:`except* ` expressions now " -"allow parentheses to be omitted when there are multiple exception types and " -"the ``as`` clause is not used. For example the following expressions are now " -"valid:" -msgstr "" - -msgid "" -"try:\n" -" connect_to_server()\n" -"except TimeoutError, ConnectionRefusedError:\n" -" print(\"Network issue encountered.\")\n" -"\n" -" # The same applies to except* (for exception groups):\n" -"\n" -"try:\n" -" connect_to_server()\n" -"except* TimeoutError, ConnectionRefusedError:\n" -" print(\"Network issue encountered.\")" -msgstr "" - -msgid "Check :pep:`758` for more details." -msgstr "" - -msgid "(Contributed by Pablo Galindo and Brett Cannon in :gh:`131831`.)" -msgstr "" - -msgid ":pep:`758`." -msgstr "" - -msgid "PEP 649 and 749: deferred evaluation of annotations" -msgstr "" - -msgid "" -"The :term:`annotations ` on functions, classes, and modules are " -"no longer evaluated eagerly. Instead, annotations are stored in special-" -"purpose :term:`annotate functions ` and evaluated only " -"when necessary (except if ``from __future__ import annotations`` is used). " -"This is specified in :pep:`649` and :pep:`749`." -msgstr "" - -msgid "" -"This change is designed to make annotations in Python more performant and " -"more usable in most circumstances. The runtime cost for defining annotations " -"is minimized, but it remains possible to introspect annotations at runtime. " -"It is no longer necessary to enclose annotations in strings if they contain " -"forward references." +msgid "A new type of interpreter" msgstr "" msgid "" -"The new :mod:`annotationlib` module provides tools for inspecting deferred " -"annotations. Annotations may be evaluated in the :attr:`~annotationlib." -"Format.VALUE` format (which evaluates annotations to runtime values, similar " -"to the behavior in earlier Python versions), the :attr:`~annotationlib." -"Format.FORWARDREF` format (which replaces undefined names with special " -"markers), and the :attr:`~annotationlib.Format.STRING` format (which returns " -"annotations as strings)." -msgstr "" - -msgid "This example shows how these formats behave:" +"A new type of interpreter has been added to CPython. It uses tail calls " +"between small C functions that implement individual Python opcodes, rather " +"than one large C ``case`` statement. For certain newer compilers, this " +"interpreter provides significantly better performance. Preliminary " +"benchmarks suggest a geometric mean of 3-5% faster on the standard " +"``pyperformance`` benchmark suite, depending on platform and architecture. " +"The baseline is Python 3.14 built with Clang 19, without this new " +"interpreter." msgstr "" msgid "" -">>> from annotationlib import get_annotations, Format\n" -">>> def func(arg: Undefined):\n" -"... pass\n" -">>> get_annotations(func, format=Format.VALUE)\n" -"Traceback (most recent call last):\n" -" ...\n" -"NameError: name 'Undefined' is not defined\n" -">>> get_annotations(func, format=Format.FORWARDREF)\n" -"{'arg': ForwardRef('Undefined', owner=)}\n" -">>> get_annotations(func, format=Format.STRING)\n" -"{'arg': 'Undefined'}" -msgstr "" - -msgid "Implications for annotated code" +"This interpreter currently only works with Clang 19 and newer on x86-64 and " +"AArch64 architectures. However, a future release of GCC is expected will " +"support this as well." msgstr "" msgid "" -"If you define annotations in your code (for example, for use with a static " -"type checker), then this change probably does not affect you: you can keep " -"writing annotations the same way you did with previous versions of Python." +"This feature is opt-in for now. Enabling profile-guided optimization is " +"highly recommendeded when using the new interpreter as it is the only " +"configuration that has been tested and validated for improved performance. " +"For further information, see :option:`--with-tail-call-interp`." msgstr "" msgid "" -"You will likely be able to remove quoted strings in annotations, which are " -"frequently used for forward references. Similarly, if you use ``from " -"__future__ import annotations`` to avoid having to write strings in " -"annotations, you may well be able to remove that import once you support " -"only Python 3.14 and newer. However, if you rely on third-party libraries " -"that read annotations, those libraries may need changes to support unquoted " -"annotations before they work as expected." -msgstr "" - -msgid "Implications for readers of ``__annotations__``" +"This is not to be confused with `tail call optimization`__ of Python " +"functions, which is currently not implemented in CPython." msgstr "" msgid "" -"If your code reads the ``__annotations__`` attribute on objects, you may " -"want to make changes in order to support code that relies on deferred " -"evaluation of annotations. For example, you may want to use :func:" -"`annotationlib.get_annotations` with the :attr:`~annotationlib.Format." -"FORWARDREF` format, as the :mod:`dataclasses` module now does." +"This new interpreter type is an internal implementation detail of the " +"CPython interpreter. It doesn't change the visible behavior of Python " +"programs at all. It can improve their performance, but doesn't change " +"anything else." msgstr "" msgid "" -"The external :pypi:`typing_extensions` package provides partial backports of " -"some of the functionality of the :mod:`annotationlib` module, such as the :" -"class:`~annotationlib.Format` enum and the :func:`~annotationlib." -"get_annotations` function. These can be used to write cross-version code " -"that takes advantage of the new behavior in Python 3.14." +"(Contributed by Ken Jin in :gh:`128563`, with ideas on how to implement this " +"in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)" msgstr "" -msgid "Related changes" +msgid "Free-threaded mode improvements" msgstr "" msgid "" -"The changes in Python 3.14 are designed to rework how ``__annotations__`` " -"works at runtime while minimizing breakage to code that contains annotations " -"in source code and to code that reads ``__annotations__``. However, if you " -"rely on undocumented details of the annotation behavior or on private " -"functions in the standard library, there are many ways in which your code " -"may not work in Python 3.14. To safeguard your code against future changes, " -"use only the documented functionality of the :mod:`annotationlib` module." +"CPython's free-threaded mode (:pep:`703`), initially added in 3.13, has been " +"significantly improved in Python 3.14. The implementation described in PEP " +"703 has been finished, including C API changes, and temporary workarounds in " +"the interpreter were replaced with more permanent solutions. The " +"specializing adaptive interpreter (:pep:`659`) is now enabled in free-" +"threaded mode, which along with many other optimizations greatly improves " +"its performance. The performance penalty on single-threaded code in free-" +"threaded mode is now roughly 5-10%, depending on the platform and C compiler " +"used." msgstr "" msgid "" -"In particular, do not read annotations directly from the namespace " -"dictionary attribute of type objects. Use :func:`annotationlib." -"get_annotate_from_class_namespace` during class construction and :func:" -"`annotationlib.get_annotations` afterwards." +"From Python 3.14, when compiling extension modules for the free-threaded " +"build of CPython on Windows, the preprocessor variable ``Py_GIL_DISABLED`` " +"now needs to be specified by the build backend, as it will no longer be " +"determined automatically by the C compiler. For a running interpreter, the " +"setting that was used at compile time can be found using :func:`sysconfig." +"get_config_var`." msgstr "" msgid "" -"In previous releases, it was sometimes possible to access class annotations " -"from an instance of an annotated class. This behavior was undocumented and " -"accidental, and will no longer work in Python 3.14." -msgstr "" - -msgid "``from __future__ import annotations``" +"The new :option:`-X context_aware_warnings <-X>` flag controls if :ref:" +"`concurrent safe warnings control ` " +"is enabled. The flag defaults to true for the free-threaded build and false " +"for the GIL-enabled build." msgstr "" msgid "" -"In Python 3.7, :pep:`563` introduced the ``from __future__ import " -"annotations`` directive, which turns all annotations into strings. This " -"directive is now considered deprecated and it is expected to be removed in a " -"future version of Python. However, this removal will not happen until after " -"Python 3.13, the last version of Python without deferred evaluation of " -"annotations, reaches its end of life in 2029. In Python 3.14, the behavior " -"of code using ``from __future__ import annotations`` is unchanged." +"A new :data:`~sys.flags.thread_inherit_context` flag has been added, which " +"if enabled means that threads created with :class:`threading.Thread` start " +"with a copy of the :class:`~contextvars.Context()` of the caller of :meth:" +"`~threading.Thread.start`. Most significantly, this makes the warning " +"filtering context established by :class:`~warnings.catch_warnings` be " +"\"inherited\" by threads (or asyncio tasks) started within that context. It " +"also affects other modules that use context variables, such as the :mod:" +"`decimal` context manager. This flag defaults to true for the free-threaded " +"build and false for the GIL-enabled build." msgstr "" msgid "" -"(Contributed by Jelle Zijlstra in :gh:`119180`; :pep:`649` was written by " -"Larry Hastings.)" -msgstr "" - -msgid ":pep:`649` and :pep:`749`." +"(Contributed by Sam Gross, Matt Page, Neil Schemenauer, Thomas Wouters, " +"Donghee Na, Kirill Podoprigora, Ken Jin, Itamar Oren, Brett Simmers, Dino " +"Viehland, Nathan Goldbaum, Ralf Gommers, Lysandros Nikolaou, Kumar Aditya, " +"Edgar Margffoy, and many others. Some of these contributors are employed by " +"Meta, which has continued to provide significant engineering resources to " +"support this project.)" msgstr "" msgid "Improved error messages" @@ -727,30 +648,7 @@ msgid "" " File \"\", line 1\n" " whille True:\n" " ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'while'?\n" -"\n" -">>> asynch def fetch_data():\n" -"... pass\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" asynch def fetch_data():\n" -" ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'async'?\n" -"\n" -">>> async def foo():\n" -"... awaid fetch_data()\n" -"Traceback (most recent call last):\n" -" File \"\", line 2\n" -" awaid fetch_data()\n" -" ^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'await'?\n" -"\n" -">>> raisee ValueError(\"Error\")\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" raisee ValueError(\"Error\")\n" -" ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'raise'?" +"SyntaxError: invalid syntax. Did you mean 'while'?" msgstr "" msgid "" @@ -759,21 +657,6 @@ msgid "" "Pablo Galindo in :gh:`132449`.)" msgstr "" -msgid "" -"When an unpacking assignment fails due to an incorrect number of variables, " -"the error message prints the received number of values in more cases than " -"before. (Contributed by Tushar Sadhwani in :gh:`122239`.)" -msgstr "" - -msgid "" -">>> x, y, z = 1, 2, 3, 4\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -" x, y, z = 1, 2, 3, 4\n" -" ^^^^^^^\n" -"ValueError: too many values to unpack (expected 3, got 4)" -msgstr "" - msgid "" ":keyword:`elif` statements that follow an :keyword:`else` block now have a " "specific error message. (Contributed by Steele Farnsworth in :gh:`129902`.)" @@ -793,13 +676,11 @@ msgid "" msgstr "" msgid "" -"If a statement (:keyword:`pass`, :keyword:`del`, :keyword:`return`, :keyword:" -"`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, :keyword:" -"`assert`, :keyword:`import`, :keyword:`from`) is passed to the :ref:" -"`if_expr` after :keyword:`else`, or one of :keyword:`pass`, :keyword:" -"`break`, or :keyword:`continue` is passed before :keyword:`if`, then the " -"error message highlights where the :token:`~python-grammar:expression` is " -"required. (Contributed by Sergey Miryanov in :gh:`129515`.)" +"If a statement is passed to the :ref:`if_expr` after :keyword:`else`, or one " +"of :keyword:`pass`, :keyword:`break`, or :keyword:`continue` is passed " +"before :keyword:`if`, then the error message highlights where the :token:" +"`~python-grammar:expression` is required. (Contributed by Sergey Miryanov " +"in :gh:`129515`.)" msgstr "" msgid "" @@ -863,14 +744,6 @@ msgid "" "`123440`.)" msgstr "" -msgid "" -">>> import ast as arr[0]\n" -" File \"\", line 1\n" -" import ast as arr[0]\n" -" ^^^^^^\n" -"SyntaxError: cannot use subscript as import target" -msgstr "" - msgid "" "Improved error message when trying to add an instance of an unhashable type " "to a :class:`dict` or :class:`set`. (Contributed by CF Bolz-Tereick and " @@ -902,46 +775,54 @@ msgid "" "(Contributed by Bénédikt Tran in :gh:`128398`.)" msgstr "" -msgid "PEP 741: Python configuration C API" +msgid ":pep:`784`: Zstandard support in the standard library" msgstr "" msgid "" -"Add a :ref:`PyInitConfig C API ` to configure the Python " -"initialization without relying on C structures and the ability to make ABI-" -"compatible changes in the future." +"The new :mod:`!compression` package contains modules :mod:`!compression." +"lzma`, :mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!" +"compression.zlib` which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` " +"and :mod:`zlib` modules respectively. The new import names under :mod:`!" +"compression` are the preferred names for importing these compression modules " +"from Python 3.14. However, the existing modules names have not been " +"deprecated. Any deprecation or removal of the existing compression modules " +"will occur no sooner than five years after the release of 3.14." msgstr "" msgid "" -"Complete the :pep:`587` :ref:`PyConfig C API ` by adding :c:" -"func:`PyInitConfig_AddModule` which can be used to add a built-in extension " -"module; a feature previously referred to as the “inittab”." +"The new :mod:`!compression.zstd` module provides compression and " +"decompression APIs for the Zstandard format via bindings to `Meta's zstd " +"library `__. Zstandard is a widely " +"adopted, highly efficient, and fast compression format. In addition to the " +"APIs introduced in :mod:`!compression.zstd`, support for reading and writing " +"Zstandard compressed archives has been added to the :mod:`tarfile`, :mod:" +"`zipfile`, and :mod:`shutil` modules." msgstr "" -msgid "" -"Add :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions to get and " -"set the current runtime configuration." +msgid "Here's an example of using the new module to compress some data:" msgstr "" msgid "" -"PEP 587 “Python Initialization Configuration” unified all the ways to " -"configure the Python initialization. This PEP unifies also the configuration " -"of the Python preinitialization and the Python initialization in a single " -"API. Moreover, this PEP only provides a single choice to embed Python, " -"instead of having two “Python” and “Isolated” choices (PEP 587), to simplify " -"the API further." +"from compression import zstd\n" +"import math\n" +"\n" +"data = str(math.pi).encode() * 20\n" +"compressed = zstd.compress(data)\n" +"ratio = len(compressed) / len(data)\n" +"print(f\"Achieved compression ratio of {ratio}\")" msgstr "" msgid "" -"The lower level PEP 587 PyConfig API remains available for use cases with an " -"intentionally higher level of coupling to CPython implementation details " -"(such as emulating the full functionality of CPython’s CLI, including its " -"configuration mechanisms)." +"As can be seen, the API is similar to the APIs of the :mod:`!lzma` and :mod:" +"`!bz2` modules." msgstr "" -msgid "(Contributed by Victor Stinner in :gh:`107954`.)" +msgid "" +"(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas " +"Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" msgstr "" -msgid ":pep:`741`." +msgid ":pep:`784`." msgstr "" msgid "Asyncio introspection capabilities" @@ -949,27 +830,22 @@ msgstr "" msgid "" "Added a new command-line interface to inspect running Python processes using " -"asynchronous tasks, available via:" -msgstr "" - -msgid "python -m asyncio ps PID" +"asynchronous tasks, available via ``python -m asyncio ps PID`` or ``python -" +"m asyncio pstree PID``." msgstr "" msgid "" -"This tool inspects the given process ID (PID) and displays information about " -"currently running asyncio tasks. It outputs a task table: a flat listing of " -"all tasks, their names, their coroutine stacks, and which tasks are awaiting " -"them." -msgstr "" - -msgid "python -m asyncio pstree PID" +"The ``ps`` subcommand inspects the given process ID (PID) and displays " +"information about currently running asyncio tasks. It outputs a task table: " +"a flat listing of all tasks, their names, their coroutine stacks, and which " +"tasks are awaiting them." msgstr "" msgid "" -"This tool fetches the same information, but renders a visual async call " -"tree, showing coroutine relationships in a hierarchical format. This " -"command is particularly useful for debugging long-running or stuck " -"asynchronous programs. It can help developers quickly identify where a " +"The ``pstree`` subcommand fetches the same information, but instead renders " +"a visual async call tree, showing coroutine relationships in a hierarchical " +"format. This command is particularly useful for debugging long-running or " +"stuck asynchronous programs. It can help developers quickly identify where a " "program is blocked, what tasks are pending, and how coroutines are chained " "together." msgstr "" @@ -980,24 +856,25 @@ msgstr "" msgid "" "import asyncio\n" "\n" -"async def play(track):\n" +"async def play_track(track):\n" " await asyncio.sleep(5)\n" -" print(f\"🎵 Finished: {track}\")\n" +" print(f'🎵 Finished: {track}')\n" "\n" -"async def album(name, tracks):\n" +"async def play_album(name, tracks):\n" " async with asyncio.TaskGroup() as tg:\n" " for track in tracks:\n" -" tg.create_task(play(track), name=track)\n" +" tg.create_task(play_track(track), name=track)\n" "\n" "async def main():\n" " async with asyncio.TaskGroup() as tg:\n" " tg.create_task(\n" -" album(\"Sundowning\", [\"TNDNBTG\", \"Levitate\"]), " -"name=\"Sundowning\")\n" +" play_album('Sundowning', ['TNDNBTG', 'Levitate']),\n" +" name='Sundowning')\n" " tg.create_task(\n" -" album(\"TMBTE\", [\"DYWTYLM\", \"Aqua Regia\"]), name=\"TMBTE\")\n" +" play_album('TMBTE', ['DYWTYLM', 'Aqua Regia']),\n" +" name='TMBTE')\n" "\n" -"if __name__ == \"__main__\":\n" +"if __name__ == '__main__':\n" " asyncio.run(main())" msgstr "" @@ -1082,209 +959,29 @@ msgid "" "python -m asyncio pstree 12345\n" "\n" "ERROR: await-graph contains cycles - cannot print a tree!\n" -"\n" -"cycle: Task-2 → Task-3 → Task-2" -msgstr "" - -msgid "" -"(Contributed by Pablo Galindo, Łukasz Langa, Yury Selivanov, and Marta Gomez " -"Macias in :gh:`91048`.)" -msgstr "" - -msgid "A new type of interpreter" -msgstr "" - -msgid "" -"A new type of interpreter has been added to CPython. It uses tail calls " -"between small C functions that implement individual Python opcodes, rather " -"than one large C case statement. For certain newer compilers, this " -"interpreter provides significantly better performance. Preliminary numbers " -"on our machines suggest anywhere up to 30% faster Python code, and a " -"geometric mean of 3-5% faster on ``pyperformance`` depending on platform and " -"architecture. The baseline is Python 3.14 built with Clang 19 without this " -"new interpreter." -msgstr "" - -msgid "" -"This interpreter currently only works with Clang 19 and newer on x86-64 and " -"AArch64 architectures. However, we expect that a future release of GCC will " -"support this as well." -msgstr "" - -msgid "" -"This feature is opt-in for now. We highly recommend enabling profile-guided " -"optimization with the new interpreter as it is the only configuration we " -"have tested and can validate its improved performance. For further " -"information on how to build Python, see :option:`--with-tail-call-interp`." -msgstr "" - -msgid "" -"This is not to be confused with `tail call optimization`__ of Python " -"functions, which is currently not implemented in CPython." -msgstr "" - -msgid "" -"This new interpreter type is an internal implementation detail of the " -"CPython interpreter. It doesn't change the visible behavior of Python " -"programs at all. It can improve their performance, but doesn't change " -"anything else." -msgstr "" - -msgid "" -"This section previously reported a 9-15% geometric mean speedup. This number " -"has since been cautiously revised down to 3-5%. While we expect performance " -"results to be better than what we report, our estimates are more " -"conservative due to a `compiler bug `_ found in Clang/LLVM 19, which causes the normal interpreter " -"to be slower. We were unaware of this bug, resulting in inaccurate results. " -"We sincerely apologize for communicating results that were only accurate for " -"LLVM v19.1.x and v20.1.0. In the meantime, the bug has been fixed in LLVM " -"v20.1.1 and for the upcoming v21.1, but it will remain unfixed for LLVM " -"v19.1.x and v20.1.0. Thus any benchmarks with those versions of LLVM may " -"produce inaccurate numbers. (Thanks to Nelson Elhage for bringing this to " -"light.)" -msgstr "" - -msgid "" -"(Contributed by Ken Jin in :gh:`128563`, with ideas on how to implement this " -"in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)" -msgstr "" - -msgid "Free-threaded mode" -msgstr "" - -msgid "" -"Free-threaded mode (:pep:`703`), initially added in 3.13, has been " -"significantly improved. The implementation described in PEP 703 was " -"finished, including C API changes, and temporary workarounds in the " -"interpreter were replaced with more permanent solutions. The specializing " -"adaptive interpreter (:pep:`659`) is now enabled in free-threaded mode, " -"which along with many other optimizations greatly improves its performance. " -"The performance penalty on single-threaded code in free-threaded mode is now " -"roughly 5-10%, depending on platform and C compiler used." -msgstr "" - -msgid "" -"This work was done by many contributors: Sam Gross, Matt Page, Neil " -"Schemenauer, Thomas Wouters, Donghee Na, Kirill Podoprigora, Ken Jin, Itamar " -"Oren, Brett Simmers, Dino Viehland, Nathan Goldbaum, Ralf Gommers, Lysandros " -"Nikolaou, Kumar Aditya, Edgar Margffoy, and many others." -msgstr "" - -msgid "" -"Some of these contributors are employed by Meta, which has continued to " -"provide significant engineering resources to support this project." -msgstr "" - -msgid "" -"From 3.14, when compiling extension modules for the free-threaded build of " -"CPython on Windows, the preprocessor variable ``Py_GIL_DISABLED`` now needs " -"to be specified by the build backend, as it will no longer be determined " -"automatically by the C compiler. For a running interpreter, the setting that " -"was used at compile time can be found using :func:`sysconfig.get_config_var`." -msgstr "" - -msgid "" -"A new flag has been added, :data:`~sys.flags.context_aware_warnings`. This " -"flag defaults to true for the free-threaded build and false for the GIL-" -"enabled build. If the flag is true then the :class:`warnings.catch_warnings` " -"context manager uses a context variable for warning filters. This makes the " -"context manager behave predictably when used with multiple threads or " -"asynchronous tasks." -msgstr "" - -msgid "" -"A new flag has been added, :data:`~sys.flags.thread_inherit_context`. This " -"flag defaults to true for the free-threaded build and false for the GIL-" -"enabled build. If the flag is true then threads created with :class:" -"`threading.Thread` start with a copy of the :class:`~contextvars.Context()` " -"of the caller of :meth:`~threading.Thread.start`. Most significantly, this " -"makes the warning filtering context established by :class:`~warnings." -"catch_warnings` be \"inherited\" by threads (or asyncio tasks) started " -"within that context. It also affects other modules that use context " -"variables, such as the :mod:`decimal` context manager." -msgstr "" - -msgid "Binary releases for the experimental just-in-time compiler" -msgstr "" - -msgid "" -"The official macOS and Windows release binaries now include an " -"*experimental* just-in-time (JIT) compiler. Although it is **not** " -"recommended for production use, it can be tested by setting :envvar:" -"`PYTHON_JIT=1 ` as an environment variable. Downstream source " -"builds and redistributors can use the :option:`--enable-experimental-jit=yes-" -"off` configuration option for similar behavior." -msgstr "" - -msgid "" -"The JIT is at an early stage and still in active development. As such, the " -"typical performance impact of enabling it can range from 10% slower to 20% " -"faster, depending on workload. To aid in testing and evaluation, a set of " -"introspection functions has been provided in the :data:`sys._jit` " -"namespace. :func:`sys._jit.is_available` can be used to determine if the " -"current executable supports JIT compilation, while :func:`sys._jit." -"is_enabled` can be used to tell if JIT compilation has been enabled for the " -"current process." -msgstr "" - -msgid "" -"Currently, the most significant missing functionality is that native " -"debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " -"through JIT frames (Python debuggers and profilers, like :mod:`pdb` or :mod:" -"`profile`, continue to work without modification). Free-threaded builds do " -"not support JIT compilation." -msgstr "" - -msgid "" -"Please report any bugs or major performance regressions that you encounter!" -msgstr "" - -msgid ":pep:`744`" -msgstr "" - -msgid "Concurrent safe warnings control" -msgstr "" - -msgid "" -"The :class:`warnings.catch_warnings` context manager will now optionally use " -"a context variable for warning filters. This is enabled by setting the :" -"data:`~sys.flags.context_aware_warnings` flag, either with the ``-X`` " -"command-line option or an environment variable. This gives predictable " -"warnings control when using :class:`~warnings.catch_warnings` combined with " -"multiple threads or asynchronous tasks. The flag defaults to true for the " -"free-threaded build and false for the GIL-enabled build." -msgstr "" - -msgid "(Contributed by Neil Schemenauer and Kumar Aditya in :gh:`130010`.)" -msgstr "" - -msgid "Platform support" +"\n" +"cycle: Task-2 → Task-3 → Task-2" msgstr "" msgid "" -":pep:`776`: Emscripten is now an officially supported platform at :pep:`tier " -"3 <11#tier-3>`. As a part of this effort, more than 25 bugs in `Emscripten " -"libc`__ were fixed. Emscripten now includes support for :mod:`ctypes`, :mod:" -"`termios`, and :mod:`fcntl`, as well as experimental support for the new :" -"ref:`default interactive shell `." +"(Contributed by Pablo Galindo, Łukasz Langa, Yury Selivanov, and Marta Gomez " +"Macias in :gh:`91048`.)" msgstr "" -msgid "" -"(Contributed by R. Hood Chatham in :gh:`127146`, :gh:`127683`, and :gh:" -"`136931`.)" +msgid "Concurrent safe warnings control" msgstr "" msgid "" -"iOS and macOS apps can now be configured to redirect ``stdout`` and " -"``stderr`` content to the system log. (Contributed by Russell Keith-Magee " -"in :gh:`127592`.)" +"The :class:`warnings.catch_warnings` context manager will now optionally use " +"a context variable for warning filters. This is enabled by setting the :data:" +"`~sys.flags.context_aware_warnings` flag, either with the ``-X`` command-" +"line option or an environment variable. This gives predictable warnings " +"control when using :class:`~warnings.catch_warnings` combined with multiple " +"threads or asynchronous tasks. The flag defaults to true for the free-" +"threaded build and false for the GIL-enabled build." msgstr "" -msgid "" -"The iOS testbed is now able to stream test output while the test is running. " -"The testbed can also be used to run the test suite of projects other than " -"CPython itself. (Contributed by Russell Keith-Magee in :gh:`127592`.)" +msgid "(Contributed by Neil Schemenauer and Kumar Aditya in :gh:`130010`.)" msgstr "" msgid "Other language changes" @@ -1403,6 +1100,27 @@ msgid "" "special meaning. (Contributed by Adam Turner in :gh:`133336`.)" msgstr "" +msgid "PEP 758: Allow ``except`` and ``except*`` expressions without brackets" +msgstr "" + +msgid "" +"The :keyword:`except` and :keyword:`except* ` expressions now " +"allow brackets to be omitted when there are multiple exception types and the " +"``as`` clause is not used. For example:" +msgstr "" + +msgid "" +"try:\n" +" connect_to_server()\n" +"except TimeoutError, ConnectionRefusedError:\n" +" print('The network has ceased to be!')" +msgstr "" + +msgid "" +"(Contributed by Pablo Galindo and Brett Cannon in :pep:`758` and :gh:" +"`131831`.)" +msgstr "" + msgid "PEP 765: Control flow in :keyword:`finally` blocks" msgstr "" @@ -1412,6 +1130,23 @@ msgid "" "a :keyword:`finally` block. This change is specified in :pep:`765`." msgstr "" +msgid "" +"In situations where this change is inconvenient (such as those where the " +"warnings are redundant due to code linting), the :ref:`warning filter " +"` can be used to turn off all syntax warnings by adding " +"``ignore::SyntaxWarning`` as a filter. This can be specified in combination " +"with a filter that converts other warnings to errors (for example, passing " +"``-Werror -Wignore::SyntaxWarning`` as CLI options, or setting " +"``PYTHONWARNINGS=error,ignore::SyntaxWarning``)." +msgstr "" + +msgid "" +"Note that applying such a filter at runtime using the :mod:`warnings` module " +"will only suppress the warning in code that is compiled *after* the filter " +"is adjusted. Code that is compiled prior to the filter adjustment (for " +"example, when a module is imported) will still emit the syntax warning." +msgstr "" + msgid "(Contributed by Irit Katriel in :gh:`130080`.)" msgstr "" @@ -1480,30 +1215,30 @@ msgstr "" msgid "" ":mod:`annotationlib`: For introspecting :term:`annotations `. " -"See :ref:`PEP 749 ` for more details. (Contributed by " -"Jelle Zijlstra in :gh:`119180`.)" +"See :ref:`PEP 749 ` for more details. " +"(Contributed by Jelle Zijlstra in :gh:`119180`.)" msgstr "" msgid "" ":mod:`compression` (including :mod:`compression.zstd`): A package for " "compression-related modules, including a new module to support the Zstandard " -"compression format. See :ref:`PEP 784 ` for more " +"compression format. See :ref:`PEP 784 ` for more " "details. (Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, " "Tomas Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" msgstr "" msgid "" ":mod:`concurrent.interpreters`: Support for multiple interpreters in the " -"standard library. See :ref:`PEP 734 ` for more details. " -"(Contributed by Eric Snow in :gh:`134939`.)" +"standard library. See :ref:`PEP 734 ` for " +"more details. (Contributed by Eric Snow in :gh:`134939`.)" msgstr "" msgid "" ":mod:`string.templatelib`: Support for template string literals (t-strings). " -"See :ref:`PEP 750 ` for more details. (Contributed by " -"Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, Lysandros Nikolaou, " -"Dave Peck, Adam Turner, Jelle Zijlstra, Bénédikt Tran, and Pablo Galindo " -"Salgado in :gh:`132661`.)" +"See :ref:`PEP 750 ` for more details. " +"(Contributed by Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, " +"Lysandros Nikolaou, Dave Peck, Adam Turner, Jelle Zijlstra, Bénédikt Tran, " +"and Pablo Galindo Salgado in :gh:`132661`.)" msgstr "" msgid "Improved modules" @@ -1620,8 +1355,8 @@ msgstr "" msgid "" "This is separate from the new :mod:`~concurrent.interpreters` module " -"introduced by :ref:`PEP 734 `. (Contributed by Eric Snow " -"in :gh:`124548`.)" +"introduced by :ref:`PEP 734 `. " +"(Contributed by Eric Snow in :gh:`124548`.)" msgstr "" msgid "" @@ -2367,6 +2102,31 @@ msgstr "" msgid "pdb" msgstr "" +msgid "" +"The :mod:`pdb` module now supports remote attaching to a running Python " +"process using a new :option:`-p PID ` command-line option:" +msgstr "" + +msgid "python -m pdb -p 1234" +msgstr "" + +msgid "" +"This will connect to the Python process with the given PID and allow you to " +"debug it interactively. Notice that due to how the Python interpreter works " +"attaching to a remote process that is blocked in a system call or waiting " +"for I/O will only work once the next bytecode instruction is executed or " +"when the process receives a signal." +msgstr "" + +msgid "" +"This feature uses :ref:`PEP 768 ` and the new :" +"func:`sys.remote_exec` function to attach to the remote process and send the " +"PDB commands to it." +msgstr "" + +msgid "(Contributed by Matt Wozniski and Pablo Galindo in :gh:`131591`.)" +msgstr "" + msgid "" "Hardcoded breakpoints (:func:`breakpoint` and :func:`~pdb.set_trace`) now " "reuse the most recent :class:`~pdb.Pdb` instance that calls :meth:`~pdb.Pdb." @@ -2581,9 +2341,9 @@ msgstr "" msgid "" "Add :func:`sys.remote_exec` to implement the new external debugger " -"interface. See :ref:`PEP 768 ` for details. (Contributed " -"by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic in :gh:" -"`131591`.)" +"interface. See :ref:`PEP 768 ` for details. " +"(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic " +"in :gh:`131591`.)" msgstr "" msgid "" @@ -4154,7 +3914,7 @@ msgid "" "to construct new :class:`~string.templatelib.Interpolation` and :class:" "`~string.templatelib.Template` instances, respectively. (Contributed by " "Lysandros Nikolaou and others in :gh:`132661`; see also :ref:`PEP 750: " -"Template strings `)." +"Template strings `)." msgstr "" msgid "" @@ -4200,8 +3960,8 @@ msgstr "" msgid "" "Add the :opcode:`!ANNOTATIONS_PLACEHOLDER` pseudo instruction to support " "partially executed module-level annotations with :ref:`deferred evaluation " -"of annotations `. (Contributed by Jelle Zijlstra in :gh:" -"`130907`.)" +"of annotations `. (Contributed by Jelle " +"Zijlstra in :gh:`130907`.)" msgstr "" msgid "" @@ -4244,6 +4004,47 @@ msgstr "" msgid "C API changes" msgstr "" +msgid "Python configuration C API" +msgstr "" + +msgid "" +"Add a :ref:`PyInitConfig C API ` to configure the Python " +"initialization without relying on C structures and the ability to make ABI-" +"compatible changes in the future." +msgstr "" + +msgid "" +"Complete the :pep:`587` :ref:`PyConfig C API ` by adding :c:" +"func:`PyInitConfig_AddModule` which can be used to add a built-in extension " +"module; a feature previously referred to as the \"inittab\"." +msgstr "" + +msgid "" +"Add :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions to get and " +"set the current runtime configuration." +msgstr "" + +msgid "" +":pep:`587` 'Python Initialization Configuration' unified all the ways to " +"configure Python's initialization. This PEP also unifies the configuration " +"of Python's preinitialization and initialization in a single API. Moreover, " +"this PEP only provides a single choice to embed Python, instead of having " +"two 'Python' and 'Isolated' choices (PEP 587), to further simplify the API." +msgstr "" + +msgid "" +"The lower level PEP 587 PyConfig API remains available for use cases with an " +"intentionally higher level of coupling to CPython implementation details " +"(such as emulating the full functionality of CPython's CLI, including its " +"configuration mechanisms)." +msgstr "" + +msgid "(Contributed by Victor Stinner in :gh:`107954`.)" +msgstr "" + +msgid ":pep:`741` and :pep:`587`" +msgstr "" + msgid "New features in the C API" msgstr "" @@ -4262,8 +4063,8 @@ msgstr "" msgid "" "Add functions to manipulate the configuration of the current runtime Python " -"interpreter (:ref:`PEP 741: Python configuration C API `):" +"interpreter (:ref:`PEP 741: Python configuration C API `):" msgstr "" msgid ":c:func:`PyConfig_Get`" @@ -4280,7 +4081,7 @@ msgstr "" msgid "" "Add functions to configure Python initialization (:ref:`PEP 741: Python " -"configuration C API `):" +"configuration C API `):" msgstr "" msgid ":c:func:`Py_InitializeFromInitConfig`" @@ -5014,7 +4815,19 @@ msgstr "" msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -msgid "Build Changes" +msgid "Build changes" +msgstr "" + +msgid "" +":pep:`776`: Emscripten is now an officially supported platform at :pep:`tier " +"3 <11#tier-3>`. As a part of this effort, more than 25 bugs in `Emscripten " +"libc`__ were fixed. Emscripten now includes support for :mod:`ctypes`, :mod:" +"`termios`, and :mod:`fcntl`, as well as experimental support for the new :" +"ref:`default interactive shell `. (Contributed by R. Hood " +"Chatham in :gh:`127146`, :gh:`127683`, and :gh:`136931`.)" +msgstr "" + +msgid "Official Android binary releases are now provided on python.org__." msgstr "" msgid "" @@ -5049,7 +4862,7 @@ msgstr "" msgid "" "The new :file:`configure` option :option:`--with-tail-call-interp` may be " "used to enable the experimental tail call interpreter. See :ref:`whatsnew314-" -"tail-call` for further details." +"tail-call-interpreter` for further details." msgstr "" msgid "" @@ -5058,6 +4871,18 @@ msgid "" "reasons." msgstr "" +msgid "" +"iOS and macOS apps can now be configured to redirect ``stdout`` and " +"``stderr`` content to the system log. (Contributed by Russell Keith-Magee " +"in :gh:`127592`.)" +msgstr "" + +msgid "" +"The iOS testbed is now able to stream test output while the test is running. " +"The testbed can also be used to run the test suite of projects other than " +"CPython itself. (Contributed by Russell Keith-Magee in :gh:`127592`.)" +msgstr "" + msgid ":file:`build-details.json`" msgstr "" @@ -5093,6 +4918,80 @@ msgstr "" msgid "This change in release process was specified in :pep:`761`." msgstr "" +msgid "Free-threaded Python is officially supported" +msgstr "" + +msgid "" +"The free-threaded build of Python is now supported and no longer " +"experimental. This is the start of `phase II `__ where free-threaded Python is officially supported but still " +"optional." +msgstr "" + +msgid "" +"The free-threading team are confident that the project is on the right path, " +"and appreciate the continued dedication from everyone working to make free-" +"threading ready for broader adoption across the Python community." +msgstr "" + +msgid "" +"With these recommendations and the acceptance of this PEP, the Python " +"developer community should broadly advertise that free-threading is a " +"supported Python build option now and into the future, and that it will not " +"be removed without a proper deprecation schedule." +msgstr "" + +msgid "" +"Any decision to transition to `phase III `__, with free-threading as the default or sole build of Python is " +"still undecided, and dependent on many factors both within CPython itself " +"and the community. This decision is for the future." +msgstr "" + +msgid ":pep:`779`" +msgstr "" + +msgid "`PEP 779's acceptance `__" +msgstr "" + +msgid "Binary releases for the experimental just-in-time compiler" +msgstr "" + +msgid "" +"The official macOS and Windows release binaries now include an " +"*experimental* just-in-time (JIT) compiler. Although it is **not** " +"recommended for production use, it can be tested by setting :envvar:" +"`PYTHON_JIT=1 ` as an environment variable. Downstream source " +"builds and redistributors can use the :option:`--enable-experimental-jit=yes-" +"off` configuration option for similar behavior." +msgstr "" + +msgid "" +"The JIT is at an early stage and still in active development. As such, the " +"typical performance impact of enabling it can range from 10% slower to 20% " +"faster, depending on workload. To aid in testing and evaluation, a set of " +"introspection functions has been provided in the :data:`sys._jit` " +"namespace. :func:`sys._jit.is_available` can be used to determine if the " +"current executable supports JIT compilation, while :func:`sys._jit." +"is_enabled` can be used to tell if JIT compilation has been enabled for the " +"current process." +msgstr "" + +msgid "" +"Currently, the most significant missing functionality is that native " +"debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " +"through JIT frames (Python debuggers and profilers, like :mod:`pdb` or :mod:" +"`profile`, continue to work without modification). Free-threaded builds do " +"not support JIT compilation." +msgstr "" + +msgid "" +"Please report any bugs or major performance regressions that you encounter!" +msgstr "" + +msgid ":pep:`744`" +msgstr "" + msgid "Porting to Python 3.14" msgstr "" @@ -5151,9 +5050,9 @@ msgstr "" msgid "" "The runtime behavior of annotations has changed in various ways; see :ref:" -"`above ` for details. While most code that interacts " -"with annotations should continue to work, some undocumented details may " -"behave differently." +"`above ` for details. While most code that " +"interacts with annotations should continue to work, some undocumented " +"details may behave differently." msgstr "" msgid "" @@ -5171,6 +5070,107 @@ msgid "" "On FreeBSD, :data:`sys.platform` no longer contains the major version number." msgstr "" +msgid "Changes in annotations (:pep:`649` and :pep:`749`)" +msgstr "" + +msgid "" +"This section contains guidance on changes that may be needed to annotations " +"or Python code that interacts with or introspects annotations, due to the " +"changes related to :ref:`deferred evaluation of annotations `." +msgstr "" + +msgid "" +"In the majority of cases, working code from older versions of Python will " +"not require any changes." +msgstr "" + +msgid "Implications for annotated code" +msgstr "" + +msgid "" +"If you define annotations in your code (for example, for use with a static " +"type checker), then this change probably does not affect you: you can keep " +"writing annotations the same way you did with previous versions of Python." +msgstr "" + +msgid "" +"You will likely be able to remove quoted strings in annotations, which are " +"frequently used for forward references. Similarly, if you use ``from " +"__future__ import annotations`` to avoid having to write strings in " +"annotations, you may well be able to remove that import once you support " +"only Python 3.14 and newer. However, if you rely on third-party libraries " +"that read annotations, those libraries may need changes to support unquoted " +"annotations before they work as expected." +msgstr "" + +msgid "Implications for readers of ``__annotations__``" +msgstr "" + +msgid "" +"If your code reads the :attr:`~object.__annotations__` attribute on objects, " +"you may want to make changes in order to support code that relies on " +"deferred evaluation of annotations. For example, you may want to use :func:" +"`annotationlib.get_annotations` with the :attr:`~annotationlib.Format." +"FORWARDREF` format, as the :mod:`dataclasses` module now does." +msgstr "" + +msgid "" +"The external :pypi:`typing_extensions` package provides partial backports of " +"some of the functionality of the :mod:`annotationlib` module, such as the :" +"class:`~annotationlib.Format` enum and the :func:`~annotationlib." +"get_annotations` function. These can be used to write cross-version code " +"that takes advantage of the new behavior in Python 3.14." +msgstr "" + +msgid "Related changes" +msgstr "" + +msgid "" +"The changes in Python 3.14 are designed to rework how :attr:`!" +"__annotations__` works at runtime while minimizing breakage to code that " +"contains annotations in source code and to code that reads :attr:`!" +"__annotations__`. However, if you rely on undocumented details of the " +"annotation behavior or on private functions in the standard library, there " +"are many ways in which your code may not work in Python 3.14. To safeguard " +"your code against future changes, only use the documented functionality of " +"the :mod:`annotationlib` module." +msgstr "" + +msgid "" +"In particular, do not read annotations directly from the namespace " +"dictionary attribute of type objects. Use :func:`annotationlib." +"get_annotate_from_class_namespace` during class construction and :func:" +"`annotationlib.get_annotations` afterwards." +msgstr "" + +msgid "" +"In previous releases, it was sometimes possible to access class annotations " +"from an instance of an annotated class. This behavior was undocumented and " +"accidental, and will no longer work in Python 3.14." +msgstr "" + +msgid "``from __future__ import annotations``" +msgstr "" + +msgid "" +"In Python 3.7, :pep:`563` introduced the ``from __future__ import " +"annotations`` :ref:`future statement `, which turns all annotations " +"into strings." +msgstr "" + +msgid "" +"However, this statement is now deprecated and it is expected to be removed " +"in a future version of Python. This removal will not happen until after " +"Python 3.13 reaches its end of life in 2029, being the last version of " +"Python without support for deferred evaluation of annotations." +msgstr "" + +msgid "" +"In Python 3.14, the behavior of code using ``from __future__ import " +"annotations`` is unchanged." +msgstr "" + msgid "Changes in the C API" msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index edc6794..6337c10 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index a2f060b..c0aea08 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-07 14:14+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index e3b8182..0356cf9 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index a824889..b4ce585 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-17 14:21+0000\n" +"POT-Creation-Date: 2025-10-07 14:17+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index f1f12b1..6939394 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-11 14:18+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index abb4f9f..f38d743 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-03 14:18+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 4093203..28ddc95 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-11 14:21+0000\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 092c4b1..0df7a0f 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-07 14:17+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -27,12 +27,18 @@ msgstr "" msgid "*Release date: XXXX-XX-XX*" msgstr "" -msgid "Windows" +msgid "macOS" +msgstr "" + +msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 8.6.17." msgstr "" msgid ":gh:`139573`: Updated bundled version of OpenSSL to 3.0.18." msgstr "" +msgid "Windows" +msgstr "" + msgid "Tools/Demos" msgstr "" @@ -53,6 +59,16 @@ msgid "" "subdirectory of the ``Apple`` folder." msgstr "" +msgid "Security" +msgstr "" + +msgid "" +":gh:`139400`: :mod:`xml.parsers.expat`: Make sure that parent Expat parsers " +"are only garbage-collected once they are no longer referenced by subparsers " +"created by :meth:`~xml.parsers.expat.xmlparser.ExternalEntityParserCreate`. " +"Patch by Sebastian Pipping." +msgstr "" + msgid "Library" msgstr "" @@ -75,9 +91,6 @@ msgid "" "Pipelines test environments." msgstr "" -msgid "Security" -msgstr "" - msgid "" ":gh:`135661`: Fix CDATA section parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the " @@ -231,9 +244,6 @@ msgstr "" msgid "*Release date: 2025-08-14*" msgstr "" -msgid "macOS" -msgstr "" - msgid "" ":gh:`137450`: macOS installer shell path management improvements: separate " "the installer ``Shell profile updater`` postinstall script from the ``Update " diff --git a/whatsnew/index.po b/whatsnew/index.po index 15f8645..1a815d0 100644 --- a/whatsnew/index.po +++ b/whatsnew/index.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-08 02:53-0300\n" +"POT-Creation-Date: 2025-10-05 14:11+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" From 0e5a786d20b805e6522e7be9e12ad2d822c71485 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Thu, 9 Oct 2025 15:29:55 +0000 Subject: [PATCH 28/39] Update translation from Transifex --- c-api/init.po | 28 +- c-api/unicode.po | 8 +- c-api/veryhigh.po | 7 +- deprecations/c-api-pending-removal-in-3.18.po | 2 +- deprecations/pending-removal-in-3.17.po | 2 +- extending/extending.po | 68 ++- library/argparse.po | 2 +- library/asyncio-queue.po | 45 +- library/codecs.po | 35 +- library/collections.abc.po | 18 +- library/csv.po | 2 +- library/ctypes.po | 62 ++- library/curses.po | 6 +- library/dataclasses.po | 100 ++-- library/dbm.po | 98 ++-- library/difflib.po | 4 +- library/fractions.po | 12 +- library/functions.po | 4 +- library/functools.po | 15 +- library/getpass.po | 2 +- library/importlib.resources.po | 13 +- library/numbers.po | 7 +- library/platform.po | 7 +- library/queue.po | 52 +- library/resource.po | 12 +- library/sqlite3.po | 10 +- library/subprocess.po | 11 +- library/typing.po | 44 +- library/warnings.po | 8 +- library/zoneinfo.po | 9 +- reference/compound_stmts.po | 71 +-- reference/datamodel.po | 16 +- reference/executionmodel.po | 232 ++++++++- reference/lexical_analysis.po | 134 +++++- reference/simple_stmts.po | 16 +- sphinx.po | 35 +- using/android.po | 2 +- using/configure.po | 4 +- whatsnew/2.6.po | 204 ++++---- whatsnew/2.7.po | 11 +- whatsnew/3.10.po | 13 +- whatsnew/3.13.po | 8 +- whatsnew/3.14.po | 17 +- whatsnew/changelog.po | 452 ++++++++++++++++-- 44 files changed, 1409 insertions(+), 499 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index 7afb765..fe87c0e 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1367,6 +1367,9 @@ msgid "" "will simply return ``NULL`` indicating that there was no prior thread state." msgstr "" +msgid ":c:func:`PyEval_ReleaseThread`" +msgstr "" + msgid "" "Similar to :c:func:`PyGILState_Ensure`, this function will hang the thread " "if the runtime is finalizing." @@ -1377,6 +1380,17 @@ msgid "" "with sub-interpreters:" msgstr "" +msgid "" +"The type of the value returned by :c:func:`PyGILState_Ensure` and passed to :" +"c:func:`PyGILState_Release`." +msgstr "" + +msgid "The GIL was already held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + +msgid "The GIL was not held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the :term:`attached thread state`. " @@ -1431,12 +1445,14 @@ msgid "" msgstr "" msgid "" -"This function does not account for :term:`thread states ` " -"created by something other than :c:func:`PyGILState_Ensure` (such as :c:func:" -"`PyThreadState_New`). Prefer :c:func:`PyThreadState_Get` or :c:func:" +"This function may return non-``NULL`` even when the :term:`thread state` is " +"detached. Prefer :c:func:`PyThreadState_Get` or :c:func:" "`PyThreadState_GetUnchecked` for most cases." msgstr "" +msgid ":c:func:`PyThreadState_Get`" +msgstr "" + msgid "" "Return ``1`` if the current thread is holding the :term:`GIL` and ``0`` " "otherwise. This function can be called from any thread at any time. Only if " @@ -1535,11 +1551,11 @@ msgid "" msgstr "" msgid "" -"This function now calls the :c:member:`PyThreadState.on_delete` callback. " +"This function now calls the :c:member:`!PyThreadState.on_delete` callback. " "Previously, that happened in :c:func:`PyThreadState_Delete`." msgstr "" -msgid "The :c:member:`PyThreadState.on_delete` callback was removed." +msgid "The :c:member:`!PyThreadState.on_delete` callback was removed." msgstr "" msgid "" diff --git a/c-api/unicode.po b/c-api/unicode.po index 2818c3b..2b7c1a0 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -805,9 +805,9 @@ msgstr "" msgid "" "This function checks that *unicode* is a Unicode object, that the index is " -"not out of bounds, and that the object's reference count is one). See :c:" -"func:`PyUnicode_WRITE` for a version that skips these checks, making them " -"your responsibility." +"not out of bounds, and that the object's reference count is one. See :c:func:" +"`PyUnicode_WRITE` for a version that skips these checks, making them your " +"responsibility." msgstr "" msgid "" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index c798d4c..1c5edcf 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -190,7 +190,8 @@ msgid "" "objects *globals* and *locals* with the compiler flags specified by " "*flags*. *globals* must be a dictionary; *locals* can be any object that " "implements the mapping protocol. The parameter *start* specifies the start " -"token that should be used to parse the source code." +"symbol and must one of the following: :c:data:`Py_eval_input`, :c:data:" +"`Py_file_input`, or :c:data:`Py_single_input`." msgstr "" msgid "" @@ -233,7 +234,7 @@ msgstr "" msgid "" "Parse and compile the Python source code in *str*, returning the resulting " -"code object. The start token is given by *start*; this can be used to " +"code object. The start symbol is given by *start*; this can be used to " "constrain the code which can be compiled and should be :c:data:" "`Py_eval_input`, :c:data:`Py_file_input`, or :c:data:`Py_single_input`. The " "filename specified by *filename* is used to construct the code object and " diff --git a/deprecations/c-api-pending-removal-in-3.18.po b/deprecations/c-api-pending-removal-in-3.18.po index d9f666d..711f59e 100644 --- a/deprecations/c-api-pending-removal-in-3.18.po +++ b/deprecations/c-api-pending-removal-in-3.18.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.17.po b/deprecations/pending-removal-in-3.17.po index 66d30a9..c3588a8 100644 --- a/deprecations/pending-removal-in-3.17.po +++ b/deprecations/pending-removal-in-3.17.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/extending.po b/extending/extending.po index d4f8fbd..f166ba2 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -107,12 +107,66 @@ msgstr "" msgid "" "All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` " -"or ``PY``, except those defined in standard header files. For convenience, " -"and since they are used extensively by the Python interpreter, ``\"Python." -"h\"`` includes a few standard header files: ````, ````, " -"````, and ````. If the latter header file does not exist " -"on your system, it declares the functions :c:func:`malloc`, :c:func:`free` " -"and :c:func:`realloc` directly." +"or ``PY``, except those defined in standard header files." +msgstr "" + +msgid "" +"For backward compatibility, :file:`Python.h` includes several standard " +"header files. C extensions should include the standard headers that they " +"use, and should not rely on these implicit includes. If using the limited C " +"API version 3.13 or newer, the implicit includes are:" +msgstr "" + +msgid "````" +msgstr "" + +msgid "```` (on Windows)" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "```` (if present)" +msgstr "" + +msgid "" +"If :c:macro:`Py_LIMITED_API` is not defined, or is set to version 3.12 or " +"older, the headers below are also included:" +msgstr "" + +msgid "````" +msgstr "" + +msgid "```` (on POSIX)" +msgstr "" + +msgid "" +"If :c:macro:`Py_LIMITED_API` is not defined, or is set to version 3.10 or " +"older, the headers below are also included:" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" +msgstr "" + +msgid "````" msgstr "" msgid "" diff --git a/library/argparse.po b/library/argparse.po index ce1562e..c154b4a 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 1e5f799..e292eb5 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -121,22 +121,42 @@ msgstr "" msgid "Return the number of items in the queue." msgstr "" +msgid "Put a :class:`Queue` instance into a shutdown mode." +msgstr "" + +msgid "" +"The queue can no longer grow. Future calls to :meth:`~Queue.put` raise :exc:" +"`QueueShutDown`. Currently blocked callers of :meth:`~Queue.put` will be " +"unblocked and will raise :exc:`QueueShutDown` in the formerly blocked thread." +msgstr "" + +msgid "" +"If *immediate* is false (the default), the queue can be wound down normally " +"with :meth:`~Queue.get` calls to extract tasks that have already been loaded." +msgstr "" + msgid "" -"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` raise :" -"exc:`QueueShutDown`." +"And if :meth:`~Queue.task_done` is called for each remaining task, a " +"pending :meth:`~Queue.join` will be unblocked normally." msgstr "" msgid "" -"By default, :meth:`~Queue.get` on a shut down queue will only raise once the " -"queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " -"immediately instead." +"Once the queue is empty, future calls to :meth:`~Queue.get` will raise :exc:" +"`QueueShutDown`." msgstr "" msgid "" -"All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " -"unblocked. If *immediate* is true, a task will be marked as done for each " -"remaining item in the queue, which may unblock callers of :meth:`~Queue." -"join`." +"If *immediate* is true, the queue is terminated immediately. The queue is " +"drained to be completely empty. All callers of :meth:`~Queue.join` are " +"unblocked regardless of the number of unfinished tasks. Blocked callers of :" +"meth:`~Queue.get` are unblocked and will raise :exc:`QueueShutDown` because " +"the queue is empty." +msgstr "" + +msgid "" +"Use caution when using :meth:`~Queue.join` with *immediate* set to true. " +"This unblocks the join even when no work has been done on the tasks, " +"violating the usual invariant for joining a queue." msgstr "" msgid "Indicate that a formerly enqueued work item is complete." @@ -154,11 +174,6 @@ msgid "" "item that had been :meth:`~Queue.put` into the queue)." msgstr "" -msgid "" -"``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " -"in the queue." -msgstr "" - msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." diff --git a/library/codecs.po b/library/codecs.po index 37e56d8..b3d508d 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1636,6 +1636,9 @@ msgstr "" msgid "iso-8859-4, latin4, L4" msgstr "" +msgid "Northern Europe" +msgstr "" + msgid "iso8859_5" msgstr "" @@ -2057,6 +2060,36 @@ msgstr "" msgid "Restoration of the aliases for the binary transforms." msgstr "" +msgid "Standalone Codec Functions" +msgstr "" + +msgid "" +"The following functions provide encoding and decoding functionality similar " +"to codecs, but are not available as named codecs through :func:`codecs." +"encode` or :func:`codecs.decode`. They are used internally (for example, by :" +"mod:`pickle`) and behave similarly to the ``string_escape`` codec that was " +"removed in Python 3." +msgstr "" + +msgid "" +"Encode *input* using escape sequences. Similar to how :func:`repr` on bytes " +"produces escaped byte values." +msgstr "" + +msgid "*input* must be a :class:`bytes` object." +msgstr "" + +msgid "" +"Returns a tuple ``(output, length)`` where *output* is a :class:`bytes` " +"object and *length* is the number of bytes consumed." +msgstr "" + +msgid "Decode *input* from escape sequences back to the original bytes." +msgstr "" + +msgid "*input* must be a :term:`bytes-like object`." +msgstr "" + msgid "Text Transforms" msgstr "" diff --git a/library/collections.abc.po b/library/collections.abc.po index f3841da..64dd8f1 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -521,10 +521,10 @@ msgstr "" msgid "" "In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :func:`@types.coroutine `) are *awaitables*, " -"even though they do not have an :meth:`~object.__await__` method. Using " -"``isinstance(gencoro, Awaitable)`` for them will return ``False``. Use :func:" -"`inspect.isawaitable` to detect them." +"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " +"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " +"Awaitable)`` for them will return ``False``. Use :func:`inspect.isawaitable` " +"to detect them." msgstr "" msgid "" @@ -537,10 +537,10 @@ msgstr "" msgid "" "In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :func:`@types.coroutine `) are *awaitables*, " -"even though they do not have an :meth:`~object.__await__` method. Using " -"``isinstance(gencoro, Coroutine)`` for them will return ``False``. Use :func:" -"`inspect.isawaitable` to detect them." +"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " +"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " +"Coroutine)`` for them will return ``False``. Use :func:`inspect.isawaitable` " +"to detect them." msgstr "" msgid "" diff --git a/library/csv.po b/library/csv.po index 6ad1b89..15a11b0 100644 --- a/library/csv.po +++ b/library/csv.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/ctypes.po b/library/ctypes.po index cfdb26d..1bc2a89 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1016,16 +1016,10 @@ msgid "" msgstr "" msgid "" -"It is possible to specify the maximum alignment for the fields by setting " -"the :attr:`~Structure._pack_` class attribute to a positive integer. This " -"matches what ``#pragma pack(n)`` does in MSVC." -msgstr "" - -msgid "" -"It is also possible to set a minimum alignment for how the subclass itself " -"is packed in the same way ``#pragma align(n)`` works in MSVC. This can be " -"achieved by specifying a :attr:`~Structure._align_` class attribute in the " -"subclass definition." +"It is possible to specify the maximum alignment for the fields and/or for " +"the structure itself by setting the class attributes :attr:`~Structure." +"_pack_` and/or :attr:`~Structure._align_`, respectively. See the attribute " +"documentation for details." msgstr "" msgid "" @@ -3286,12 +3280,24 @@ msgstr "" msgid "" "An optional small integer that allows overriding the alignment of structure " -"fields in the instance. :attr:`_pack_` must already be defined when :attr:" -"`_fields_` is assigned, otherwise it will have no effect. Setting this " -"attribute to 0 is the same as not setting it at all." +"fields in the instance." msgstr "" -msgid "This is only implemented for the MSVC-compatible memory layout." +msgid "" +"This is only implemented for the MSVC-compatible memory layout (see :attr:" +"`_layout_`)." +msgstr "" + +msgid "" +"Setting :attr:`!_pack_` to 0 is the same as not setting it at all. " +"Otherwise, the value must be a positive power of two. The effect is " +"equivalent to ``#pragma pack(N)`` in C, except :mod:`ctypes` may allow " +"larger *n* than what the compiler accepts." +msgstr "" + +msgid "" +":attr:`!_pack_` must already be defined when :attr:`_fields_` is assigned, " +"otherwise it will have no effect." msgstr "" msgid "" @@ -3302,9 +3308,29 @@ msgid "" msgstr "" msgid "" -"An optional small integer that allows overriding the alignment of the " -"structure when being packed or unpacked to/from memory. Setting this " -"attribute to 0 is the same as not setting it at all." +"An optional small integer that allows increasing the alignment of the " +"structure when being packed or unpacked to/from memory." +msgstr "" + +msgid "" +"The value must not be negative. The effect is equivalent to " +"``__attribute__((aligned(N)))`` on GCC or ``#pragma align(N)`` on MSVC, " +"except :mod:`ctypes` may allow values that the compiler would reject." +msgstr "" + +msgid "" +":attr:`!_align_` can only *increase* a structure's alignment requirements. " +"Setting it to 0 or 1 has no effect." +msgstr "" + +msgid "" +"Using values that are not powers of two is discouraged and may lead to " +"surprising behavior." +msgstr "" + +msgid "" +":attr:`!_align_` must already be defined when :attr:`_fields_` is assigned, " +"otherwise it will have no effect." msgstr "" msgid "" diff --git a/library/curses.po b/library/curses.po index cc03a47..e0d41c6 100644 --- a/library/curses.po +++ b/library/curses.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -728,8 +728,8 @@ msgid "" msgstr "" msgid "" -"Add attribute *attr* from the \"background\" set applied to all writes to " -"the current window." +"Add attribute *attr* to the \"background\" set applied to all writes to the " +"current window." msgstr "" msgid "" diff --git a/library/dataclasses.po b/library/dataclasses.po index 7c54c3d..bb61a77 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -406,10 +406,10 @@ msgid "" "If the default value of a field is specified by a call to :func:`!field`, " "then the class attribute for this field will be replaced by the specified " "*default* value. If *default* is not provided, then the class attribute " -"will be deleted. The intent is that after the :func:`@dataclass " -"` decorator runs, the class attributes will all contain the " -"default values for the fields, just as if the default value itself were " -"specified. For example, after::" +"will be deleted. The intent is that after the :deco:`dataclass` decorator " +"runs, the class attributes will all contain the default values for the " +"fields, just as if the default value itself were specified. For example, " +"after::" msgstr "" msgid "" @@ -533,8 +533,8 @@ msgid "" "``name``, ``(name, type)``, or ``(name, type, Field)``. If just ``name`` is " "supplied, :data:`typing.Any` is used for ``type``. The values of *init*, " "*repr*, *eq*, *order*, *unsafe_hash*, *frozen*, *match_args*, *kw_only*, " -"*slots*, and *weakref_slot* have the same meaning as they do in :func:" -"`@dataclass `." +"*slots*, and *weakref_slot* have the same meaning as they do in :deco:" +"`dataclass`." msgstr "" msgid "" @@ -545,15 +545,15 @@ msgstr "" msgid "" "The *decorator* parameter is a callable that will be used to create the " "dataclass. It should take the class object as a first argument and the same " -"keyword arguments as :func:`@dataclass `. By default, the :func:" -"`@dataclass ` function is used." +"keyword arguments as :deco:`dataclass`. By default, the :deco:`dataclass` " +"function is used." msgstr "" msgid "" "This function is not strictly required, because any Python mechanism for " "creating a new class with :attr:`~object.__annotations__` can then apply " -"the :func:`@dataclass ` function to convert that class to a " -"dataclass. This function is provided as a convenience. For example::" +"the :deco:`dataclass` function to convert that class to a dataclass. This " +"function is provided as a convenience. For example::" msgstr "" msgid "" @@ -705,10 +705,10 @@ msgid "" msgstr "" msgid "" -"The :meth:`~object.__init__` method generated by :func:`@dataclass " -"` does not call base class :meth:`!__init__` methods. If the base " -"class has an :meth:`!__init__` method that has to be called, it is common to " -"call this method in a :meth:`__post_init__` method::" +"The :meth:`~object.__init__` method generated by :deco:`dataclass` does not " +"call base class :meth:`!__init__` methods. If the base class has an :meth:`!" +"__init__` method that has to be called, it is common to call this method in " +"a :meth:`__post_init__` method::" msgstr "" msgid "" @@ -741,28 +741,26 @@ msgid "Class variables" msgstr "" msgid "" -"One of the few places where :func:`@dataclass ` actually inspects " -"the type of a field is to determine if a field is a class variable as " -"defined in :pep:`526`. It does this by checking if the type of the field " -"is :data:`typing.ClassVar`. If a field is a ``ClassVar``, it is excluded " -"from consideration as a field and is ignored by the dataclass mechanisms. " -"Such ``ClassVar`` pseudo-fields are not returned by the module-level :func:" -"`fields` function." +"One of the few places where :deco:`dataclass` actually inspects the type of " +"a field is to determine if a field is a class variable as defined in :pep:" +"`526`. It does this by checking if the type of the field is :data:`typing." +"ClassVar`. If a field is a ``ClassVar``, it is excluded from consideration " +"as a field and is ignored by the dataclass mechanisms. Such ``ClassVar`` " +"pseudo-fields are not returned by the module-level :func:`fields` function." msgstr "" msgid "Init-only variables" msgstr "" msgid "" -"Another place where :func:`@dataclass ` inspects a type " -"annotation is to determine if a field is an init-only variable. It does " -"this by seeing if the type of a field is of type :class:`InitVar`. If a " -"field is an :class:`InitVar`, it is considered a pseudo-field called an init-" -"only field. As it is not a true field, it is not returned by the module-" -"level :func:`fields` function. Init-only fields are added as parameters to " -"the generated :meth:`~object.__init__` method, and are passed to the " -"optional :meth:`__post_init__` method. They are not otherwise used by " -"dataclasses." +"Another place where :deco:`dataclass` inspects a type annotation is to " +"determine if a field is an init-only variable. It does this by seeing if " +"the type of a field is of type :class:`InitVar`. If a field is an :class:" +"`InitVar`, it is considered a pseudo-field called an init-only field. As it " +"is not a true field, it is not returned by the module-level :func:`fields` " +"function. Init-only fields are added as parameters to the generated :meth:" +"`~object.__init__` method, and are passed to the optional :meth:" +"`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" msgid "" @@ -794,8 +792,8 @@ msgstr "" msgid "" "It is not possible to create truly immutable Python objects. However, by " -"passing ``frozen=True`` to the :func:`@dataclass ` decorator you " -"can emulate immutability. In that case, dataclasses will add :meth:`~object." +"passing ``frozen=True`` to the :deco:`dataclass` decorator you can emulate " +"immutability. In that case, dataclasses will add :meth:`~object." "__setattr__` and :meth:`~object.__delattr__` methods to the class. These " "methods will raise a :exc:`FrozenInstanceError` when invoked." msgstr "" @@ -810,14 +808,14 @@ msgid "Inheritance" msgstr "Öröklés" msgid "" -"When the dataclass is being created by the :func:`@dataclass ` " -"decorator, it looks through all of the class's base classes in reverse MRO " -"(that is, starting at :class:`object`) and, for each dataclass that it " -"finds, adds the fields from that base class to an ordered mapping of fields. " -"After all of the base class fields are added, it adds its own fields to the " -"ordered mapping. All of the generated methods will use this combined, " -"calculated ordered mapping of fields. Because the fields are in insertion " -"order, derived classes override base classes. An example::" +"When the dataclass is being created by the :deco:`dataclass` decorator, it " +"looks through all of the class's base classes in reverse MRO (that is, " +"starting at :class:`object`) and, for each dataclass that it finds, adds the " +"fields from that base class to an ordered mapping of fields. After all of " +"the base class fields are added, it adds its own fields to the ordered " +"mapping. All of the generated methods will use this combined, calculated " +"ordered mapping of fields. Because the fields are in insertion order, " +"derived classes override base classes. An example::" msgstr "" msgid "" @@ -973,10 +971,10 @@ msgid "" "attr:`!x` when creating a class instance will share the same copy of :attr:`!" "x`. Because dataclasses just use normal Python class creation they also " "share this behavior. There is no general way for Data Classes to detect " -"this condition. Instead, the :func:`@dataclass ` decorator will " -"raise a :exc:`ValueError` if it detects an unhashable default parameter. " -"The assumption is that if a value is unhashable, it is mutable. This is a " -"partial solution, but it does protect against many common errors." +"this condition. Instead, the :deco:`dataclass` decorator will raise a :exc:" +"`ValueError` if it detects an unhashable default parameter. The assumption " +"is that if a value is unhashable, it is mutable. This is a partial " +"solution, but it does protect against many common errors." msgstr "" msgid "" @@ -1019,12 +1017,12 @@ msgid "" msgstr "" msgid "" -"To determine whether a field contains a default value, :func:`@dataclass " -"` will call the descriptor's :meth:`!__get__` method using its " -"class access form: ``descriptor.__get__(obj=None, type=cls)``. If the " -"descriptor returns a value in this case, it will be used as the field's " -"default. On the other hand, if the descriptor raises :exc:`AttributeError` " -"in this situation, no default value will be provided for the field." +"To determine whether a field contains a default value, :deco:`dataclass` " +"will call the descriptor's :meth:`!__get__` method using its class access " +"form: ``descriptor.__get__(obj=None, type=cls)``. If the descriptor returns " +"a value in this case, it will be used as the field's default. On the other " +"hand, if the descriptor raises :exc:`AttributeError` in this situation, no " +"default value will be provided for the field." msgstr "" msgid "" diff --git a/library/dbm.po b/library/dbm.po index 07aa407..2adfee7 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -118,11 +118,12 @@ msgid "*file* accepts a :term:`path-like object`." msgstr "" msgid "" -"The object returned by :func:`~dbm.open` supports the same basic " -"functionality as a :class:`dict`; keys and their corresponding values can be " -"stored, retrieved, and deleted, and the :keyword:`in` operator and the :meth:" -"`!keys` method are available, as well as :meth:`!get` and :meth:`!" -"setdefault` methods." +"The object returned by :func:`~dbm.open` supports the basic functionality of " +"mutable :term:`mappings `; keys and their corresponding values can " +"be stored, retrieved, and deleted, and iteration, the :keyword:`in` operator " +"and methods :meth:`!keys`, :meth:`!get`, :meth:`!setdefault` and :meth:`!" +"clear` are available. The :meth:`!keys` method returns a list instead of a " +"view object. The :meth:`!setdefault` method requires two arguments." msgstr "" msgid "" @@ -151,6 +152,9 @@ msgid "" "exception instead of :exc:`KeyError`." msgstr "" +msgid ":meth:`!clear` methods are now available for all :mod:`dbm` backends." +msgstr "" + msgid "" "The following example records some hostnames and a corresponding title, and " "then prints out the contents of the database::" @@ -212,10 +216,7 @@ msgid "" "availability` for more information." msgstr "" -msgid "" -"Open an SQLite database. The returned object behaves like a :term:`mapping`, " -"implements a :meth:`!close` method, and supports a \"closing\" context " -"manager via the :keyword:`with` keyword." +msgid "Open an SQLite database." msgstr "" msgid "The path to the database to be opened." @@ -226,6 +227,19 @@ msgid "" "when the database has to be created." msgstr "" +msgid "" +"The returned database object behaves similar to a mutable :term:`mapping`, " +"but the :meth:`!keys` method returns a list, and the :meth:`!setdefault` " +"method requires two arguments. It also supports a \"closing\" context " +"manager via the :keyword:`with` keyword." +msgstr "" + +msgid "The following method is also provided:" +msgstr "" + +msgid "Close the SQLite database." +msgstr "" + msgid ":mod:`dbm.gnu` --- GNU database manager" msgstr "" @@ -254,6 +268,11 @@ msgid "" "key." msgstr "" +msgid "" +"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " +"supports." +msgstr "" + msgid "Open a GDBM database and return a :class:`!gdbm` object." msgstr "" @@ -298,14 +317,23 @@ msgid "If an invalid *flag* argument is passed." msgstr "" msgid "" -"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " -"supports." +":class:`!gdbm` objects behave similar to mutable :term:`mappings `, " +"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " +"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " +"list, and the :meth:`!setdefault` method requires two arguments. It also " +"supports a \"closing\" context manager via the :keyword:`with` keyword." msgstr "" -msgid "" -":class:`!gdbm` objects behave similar to :term:`mappings `, but :" -"meth:`!items` and :meth:`!values` methods are not supported. The following " -"methods are also provided:" +msgid "Added the :meth:`!get` and :meth:`!setdefault` methods." +msgstr "" + +msgid "Added the :meth:`!clear` method." +msgstr "" + +msgid "The following methods are also provided:" +msgstr "" + +msgid "Close the GDBM database." msgstr "" msgid "" @@ -341,12 +369,6 @@ msgid "" "unwritten data to be written to the disk." msgstr "" -msgid "Close the GDBM database." -msgstr "" - -msgid "Remove all items from the GDBM database." -msgstr "" - msgid ":mod:`dbm.ndbm` --- New Database Manager" msgstr "" @@ -383,19 +405,18 @@ msgid "" "extensions)." msgstr "" -msgid "" -":class:`!ndbm` objects behave similar to :term:`mappings `, but :" -"meth:`!items` and :meth:`!values` methods are not supported. The following " -"methods are also provided:" -msgstr "" - msgid "Accepts :term:`path-like object` for filename." msgstr "" -msgid "Close the NDBM database." +msgid "" +":class:`!ndbm` objects behave similar to mutable :term:`mappings `, " +"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " +"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " +"list, and the :meth:`!setdefault` method requires two arguments. It also " +"supports a \"closing\" context manager via the :keyword:`with` keyword." msgstr "" -msgid "Remove all items from the NDBM database." +msgid "Close the NDBM database." msgstr "" msgid ":mod:`dbm.dumb` --- Portable DBM implementation" @@ -426,10 +447,7 @@ msgid "" "key." msgstr "" -msgid "" -"Open a :mod:`!dbm.dumb` database. The returned database object behaves " -"similar to a :term:`mapping`, in addition to providing :meth:`~dumbdbm.sync` " -"and :meth:`~dumbdbm.close` methods." +msgid "Open a :mod:`!dbm.dumb` database." msgstr "" msgid "" @@ -476,8 +494,13 @@ msgid "" msgstr "" msgid "" -"In addition to the methods provided by the :class:`collections.abc." -"MutableMapping` class, the following methods are provided:" +"The returned database object behaves similar to a mutable :term:`mapping`, " +"but the :meth:`!keys` and :meth:`!items` methods return lists, and the :meth:" +"`!setdefault` method requires two arguments. It also supports a \"closing\" " +"context manager via the :keyword:`with` keyword." +msgstr "" + +msgid "Close the database." msgstr "" msgid "" @@ -485,8 +508,5 @@ msgid "" "the :meth:`shelve.Shelf.sync` method." msgstr "" -msgid "Close the database." -msgstr "" - msgid "databases" msgstr "" diff --git a/library/difflib.po b/library/difflib.po index 16cbfe2..543b3a5 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -268,7 +268,7 @@ msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk, or false if not. The default is ``None``. There " "is also a module-level function :func:`IS_LINE_JUNK`, which filters out " -"lines without visible characters, except for at most one pound character " +"lines without visible characters, except for at most one hash character " "(``'#'``) -- however the underlying :class:`SequenceMatcher` class does a " "dynamic analysis of which lines are so frequent as to constitute noise, and " "this usually works better than using this function." diff --git a/library/fractions.po b/library/fractions.po index 9fee4ba..14c64b9 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -29,15 +29,15 @@ msgid "" msgstr "" msgid "" -"A Fraction instance can be constructed from a pair of integers, from another " -"rational number, or from a string." +"A Fraction instance can be constructed from a pair of rational numbers, from " +"a single number, or from a string." msgstr "" msgid "" "The first version requires that *numerator* and *denominator* are instances " "of :class:`numbers.Rational` and returns a new :class:`Fraction` instance " -"with value ``numerator/denominator``. If *denominator* is ``0``, it raises " -"a :exc:`ZeroDivisionError`." +"with a value equal to ``numerator/denominator``. If *denominator* is zero, " +"it raises a :exc:`ZeroDivisionError`." msgstr "" msgid "" @@ -150,7 +150,7 @@ msgstr "" msgid "Numerator of the Fraction in lowest term." msgstr "" -msgid "Denominator of the Fraction in lowest term." +msgid "Denominator of the Fraction in lowest terms. Guaranteed to be positive." msgstr "" msgid "" diff --git a/library/functions.po b/library/functions.po index d01dff5..117b87d 100644 --- a/library/functions.po +++ b/library/functions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1871,7 +1871,7 @@ msgid "" msgstr "" msgid "" -"The arguments must have numeric types. With mixed operand types, the " +"When arguments are builtin numeric types with mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " "operands, the result has the same type as the operands (after coercion) " "unless the second argument is negative; in that case, all arguments are " diff --git a/library/functools.po b/library/functools.po index 1a13ce1..2964765 100644 --- a/library/functools.po +++ b/library/functools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -809,10 +809,10 @@ msgstr "" msgid "" "``@singledispatchmethod`` supports nesting with other decorators such as :" -"func:`@classmethod`. Note that to allow for ``dispatcher." -"register``, ``singledispatchmethod`` must be the *outer most* decorator. " -"Here is the ``Negator`` class with the ``neg`` methods bound to the class, " -"rather than an instance of the class::" +"deco:`classmethod`. Note that to allow for ``dispatcher.register``, " +"``singledispatchmethod`` must be the *outer most* decorator. Here is the " +"``Negator`` class with the ``neg`` methods bound to the class, rather than " +"an instance of the class::" msgstr "" msgid "" @@ -834,9 +834,8 @@ msgid "" msgstr "" msgid "" -"The same pattern can be used for other similar decorators: :func:" -"`@staticmethod`, :func:`@abstractmethod`, " -"and others." +"The same pattern can be used for other similar decorators: :deco:" +"`staticmethod`, :deco:`~abc.abstractmethod`, and others." msgstr "" msgid "" diff --git a/library/getpass.po b/library/getpass.po index 13c62f0..dc2683a 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/importlib.resources.po b/library/importlib.resources.po index 717124b..2f0bd1c 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -34,11 +34,12 @@ msgid "" "\"Resources\" are file-like resources associated with a module or package in " "Python. The resources may be contained directly in a package, within a " "subdirectory contained in that package, or adjacent to modules outside a " -"package. Resources may be text or binary. As a result, Python module sources " -"(.py) of a package and compilation artifacts (pycache) are technically de-" -"facto resources of that package. In practice, however, resources are " -"primarily those non-Python artifacts exposed specifically by the package " -"author." +"package. Resources may be text or binary. As a result, a package's Python " +"module sources (.py), compilation artifacts (pycache), and installation " +"artifacts (like :func:`reserved filenames ` in " +"directories) are technically de-facto resources of that package. In " +"practice, however, resources are primarily those non-Python artifacts " +"exposed specifically by the package author." msgstr "" msgid "Resources can be opened or read in either binary or text mode." diff --git a/library/numbers.po b/library/numbers.po index 8c094f2..bf5d6cd 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -86,7 +86,10 @@ msgid "" "attr:`~Rational.denominator` positive." msgstr "" -msgid "Abstract." +msgid "Abstract. The numerator of this rational number." +msgstr "" + +msgid "Abstract. The denominator of this rational number." msgstr "" msgid "" diff --git a/library/platform.po b/library/platform.po index 306af1d..dbefcf4 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -75,6 +75,11 @@ msgid "" "the value cannot be determined." msgstr "" +msgid "" +"The output is platform-dependent and may differ in casing and naming " +"conventions." +msgstr "" + msgid "" "Returns the computer's network name (may not be fully qualified!). An empty " "string is returned if the value cannot be determined." diff --git a/library/queue.po b/library/queue.po index fa729cb..fa350e4 100644 --- a/library/queue.po +++ b/library/queue.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -208,11 +208,6 @@ msgid "" "item that had been :meth:`put` into the queue)." msgstr "" -msgid "" -"``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " -"in the queue." -msgstr "" - msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." @@ -229,6 +224,9 @@ msgid "" "unblocks." msgstr "" +msgid "Waiting for task completion" +msgstr "" + msgid "Example of how to wait for enqueued tasks to be completed::" msgstr "" @@ -261,26 +259,46 @@ msgid "Terminating queues" msgstr "" msgid "" -":class:`Queue` objects can be made to prevent further interaction by " -"shutting them down." +"When no longer needed, :class:`Queue` objects can be wound down until empty " +"or terminated immediately with a hard shutdown." +msgstr "" + +msgid "Put a :class:`Queue` instance into a shutdown mode." +msgstr "" + +msgid "" +"The queue can no longer grow. Future calls to :meth:`~Queue.put` raise :exc:" +"`ShutDown`. Currently blocked callers of :meth:`~Queue.put` will be " +"unblocked and will raise :exc:`ShutDown` in the formerly blocked thread." +msgstr "" + +msgid "" +"If *immediate* is false (the default), the queue can be wound down normally " +"with :meth:`~Queue.get` calls to extract tasks that have already been loaded." +msgstr "" + +msgid "" +"And if :meth:`~Queue.task_done` is called for each remaining task, a " +"pending :meth:`~Queue.join` will be unblocked normally." msgstr "" msgid "" -"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` raise :" -"exc:`ShutDown`." +"Once the queue is empty, future calls to :meth:`~Queue.get` will raise :exc:" +"`ShutDown`." msgstr "" msgid "" -"By default, :meth:`~Queue.get` on a shut down queue will only raise once the " -"queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " -"immediately instead." +"If *immediate* is true, the queue is terminated immediately. The queue is " +"drained to be completely empty. All callers of :meth:`~Queue.join` are " +"unblocked regardless of the number of unfinished tasks. Blocked callers of :" +"meth:`~Queue.get` are unblocked and will raise :exc:`ShutDown` because the " +"queue is empty." msgstr "" msgid "" -"All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " -"unblocked. If *immediate* is true, a task will be marked as done for each " -"remaining item in the queue, which may unblock callers of :meth:`~Queue." -"join`." +"Use caution when using :meth:`~Queue.join` with *immediate* set to true. " +"This unblocks the join even when no work has been done on the tasks, " +"violating the usual invariant for joining a queue." msgstr "" msgid "SimpleQueue Objects" diff --git a/library/resource.po b/library/resource.po index 83804dd..4ff1318 100644 --- a/library/resource.po +++ b/library/resource.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -80,14 +80,14 @@ msgstr "" msgid "" "Sets new limits of consumption of *resource*. The *limits* argument must be " "a tuple ``(soft, hard)`` of two integers describing the new limits. A value " -"of :data:`~resource.RLIM_INFINITY` can be used to request a limit that is " +"of :const:`~resource.RLIM_INFINITY` can be used to request a limit that is " "unlimited." msgstr "" msgid "" "Raises :exc:`ValueError` if an invalid resource is specified, if the new " "soft limit exceeds the hard limit, or if a process tries to raise its hard " -"limit. Specifying a limit of :data:`~resource.RLIM_INFINITY` when the hard " +"limit. Specifying a limit of :const:`~resource.RLIM_INFINITY` when the hard " "or system limit for that resource is not unlimited will result in a :exc:" "`ValueError`. A process with the effective UID of super-user can request " "any valid limit value, including unlimited, but :exc:`ValueError` will still " @@ -99,7 +99,7 @@ msgid "" "fails." msgstr "" -msgid "VxWorks only supports setting :data:`RLIMIT_NOFILE`." +msgid "VxWorks only supports setting :const:`RLIMIT_NOFILE`." msgstr "" msgid "" @@ -186,7 +186,9 @@ msgstr "" msgid "The maximum address space which may be locked in memory." msgstr "" -msgid "The largest area of mapped memory which the process may occupy." +msgid "" +"The largest area of mapped memory which the process may occupy. Usually an " +"alias of :const:`RLIMIT_AS`." msgstr "" msgid "" diff --git a/library/sqlite3.po b/library/sqlite3.po index 9d3d435..786762a 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -680,7 +680,7 @@ msgstr "" msgid "The name of the column where the blob is located." msgstr "" -msgid "The name of the row where the blob is located." +msgid "The row id where the blob is located." msgstr "" msgid "" @@ -1598,6 +1598,9 @@ msgid "" "the same value from one :meth:`fetchmany` call to the next." msgstr "" +msgid "Negative *size* values are rejected by raising :exc:`ValueError`." +msgstr "" + msgid "" "Return all (remaining) rows of a query result as a :class:`list`. Return an " "empty list if no rows are available. Note that the :attr:`arraysize` " @@ -1622,6 +1625,9 @@ msgid "" "fetched per call." msgstr "" +msgid "Negative values are rejected by raising :exc:`ValueError`." +msgstr "" + msgid "" "Read-only attribute that provides the SQLite database :class:`Connection` " "belonging to the cursor. A :class:`Cursor` object created by calling :meth:" diff --git a/library/subprocess.po b/library/subprocess.po index 6f0b901..223c091 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -701,7 +701,7 @@ msgstr "" msgid "" "If specified, *env* must provide any variables required for the program to " "execute. On Windows, in order to run a `side-by-side assembly`_ the " -"specified *env* **must** include a valid :envvar:`SystemRoot`." +"specified *env* **must** include a valid ``%SystemRoot%``." msgstr "" msgid "" @@ -1535,10 +1535,9 @@ msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." msgstr "" msgid "" -"Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " -"return a 2-tuple ``(exitcode, output)``. *encoding* and *errors* are used to " -"decode output; see the notes on :ref:`frequently-used-arguments` for more " -"details." +"Execute the string *cmd* in a shell with :func:`check_output` and return a 2-" +"tuple ``(exitcode, output)``. *encoding* and *errors* are used to decode " +"output; see the notes on :ref:`frequently-used-arguments` for more details." msgstr "" msgid "" diff --git a/library/typing.po b/library/typing.po index 3589b28..f5beb68 100644 --- a/library/typing.po +++ b/library/typing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1705,10 +1705,10 @@ msgstr "" msgid "" "Using ``Annotated[T, x]`` as an annotation still allows for static " "typechecking of ``T``, as type checkers will simply ignore the metadata " -"``x``. In this way, ``Annotated`` differs from the :func:`@no_type_check " -"` decorator, which can also be used for adding annotations " -"outside the scope of the typing system, but completely disables typechecking " -"for a function or class." +"``x``. In this way, ``Annotated`` differs from the :deco:`no_type_check` " +"decorator, which can also be used for adding annotations outside the scope " +"of the typing system, but completely disables typechecking for a function or " +"class." msgstr "" msgid "" @@ -3368,7 +3368,7 @@ msgstr "" msgid "" "The following protocols are provided by the :mod:`!typing` module. All are " -"decorated with :func:`@runtime_checkable `." +"decorated with :deco:`runtime_checkable`." msgstr "" msgid "" @@ -3569,7 +3569,7 @@ msgid "" "function that is itself a decorator. The presence of " "``@dataclass_transform()`` tells a static type checker that the decorated " "object performs runtime \"magic\" that transforms a class in a similar way " -"to :func:`@dataclasses.dataclass `." +"to :deco:`dataclasses.dataclass`." msgstr "" msgid "Example usage with a decorator function:" @@ -3615,18 +3615,18 @@ msgstr "" msgid "" "The ``CustomerModel`` classes defined above will be treated by type checkers " -"similarly to classes created with :func:`@dataclasses.dataclass `. For example, type checkers will assume these classes have " -"``__init__`` methods that accept ``id`` and ``name``." +"similarly to classes created with :deco:`dataclasses.dataclass`. For " +"example, type checkers will assume these classes have ``__init__`` methods " +"that accept ``id`` and ``name``." msgstr "" msgid "" "The decorated class, metaclass, or function may accept the following bool " "arguments which type checkers will assume have the same effect as they would " -"have on the :func:`@dataclasses.dataclass` decorator: " -"``init``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, " -"``kw_only``, and ``slots``. It must be possible for the value of these " -"arguments (``True`` or ``False``) to be statically evaluated." +"have on the :deco:`dataclasses.dataclass` decorator: ``init``, ``eq``, " +"``order``, ``unsafe_hash``, ``frozen``, ``match_args``, ``kw_only``, and " +"``slots``. It must be possible for the value of these arguments (``True`` or " +"``False``) to be statically evaluated." msgstr "" msgid "" @@ -3794,18 +3794,16 @@ msgid "" "`get_overloads`." msgstr "" -msgid "" -"Return a sequence of :func:`@overload `-decorated definitions for " -"*func*." +msgid "Return a sequence of :deco:`overload`-decorated definitions for *func*." msgstr "" msgid "" "*func* is the function object for the implementation of the overloaded " "function. For example, given the definition of ``process`` in the " -"documentation for :func:`@overload `, ``get_overloads(process)`` " -"will return a sequence of three function objects for the three defined " -"overloads. If called on a function with no overloads, ``get_overloads()`` " -"returns an empty sequence." +"documentation for :deco:`overload`, ``get_overloads(process)`` will return a " +"sequence of three function objects for the three defined overloads. If " +"called on a function with no overloads, ``get_overloads()`` returns an empty " +"sequence." msgstr "" msgid "" @@ -3968,8 +3966,8 @@ msgid "``None`` is replaced with :class:`types.NoneType`." msgstr "" msgid "" -"If :func:`@no_type_check ` has been applied to *obj*, an " -"empty dictionary is returned." +"If :deco:`no_type_check` has been applied to *obj*, an empty dictionary is " +"returned." msgstr "" msgid "" diff --git a/library/warnings.po b/library/warnings.po index edddad8..2b9315f 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -760,9 +760,9 @@ msgstr "" msgid "" "The deprecation message passed to the decorator is saved in the " "``__deprecated__`` attribute on the decorated object. If applied to an " -"overload, the decorator must be after the :func:`@overload ` decorator for the attribute to exist on the overload as returned " -"by :func:`typing.get_overloads`." +"overload, the decorator must be after the :deco:`~typing.overload` decorator " +"for the attribute to exist on the overload as returned by :func:`typing." +"get_overloads`." msgstr "" msgid "See :pep:`702`." diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 25e17ee..bfbafe7 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -375,10 +375,9 @@ msgid "" "``ZoneInfo(key)``: When constructed with the primary constructor, a " "``ZoneInfo`` object is serialized by key, and when deserialized, the " "deserializing process uses the primary and thus it is expected that these " -"are expected to be the same object as other references to the same time " -"zone. For example, if ``europe_berlin_pkl`` is a string containing a pickle " -"constructed from ``ZoneInfo(\"Europe/Berlin\")``, one would expect the " -"following behavior:" +"are the same object as other references to the same time zone. For example, " +"if ``europe_berlin_pkl`` is a string containing a pickle constructed from " +"``ZoneInfo(\"Europe/Berlin\")``, one would expect the following behavior:" msgstr "" msgid "" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index 6a3096b..8eff4e3 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-22 14:43+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -300,15 +300,34 @@ msgid ":keyword:`!except*` clause" msgstr "" msgid "" -"The :keyword:`!except*` clause(s) are used for handling :exc:" -"`ExceptionGroup`\\s. The exception type for matching is interpreted as in " -"the case of :keyword:`except`, but in the case of exception groups we can " -"have partial matches when the type matches some of the exceptions in the " -"group. This means that multiple :keyword:`!except*` clauses can execute, " -"each handling part of the exception group. Each clause executes at most once " -"and handles an exception group of all matching exceptions. Each exception " -"in the group is handled by at most one :keyword:`!except*` clause, the first " -"that matches it. ::" +"The :keyword:`!except*` clause(s) specify one or more handlers for groups of " +"exceptions (:exc:`BaseExceptionGroup` instances). A :keyword:`try` statement " +"can have either :keyword:`except` or :keyword:`!except*` clauses, but not " +"both. The exception type for matching is mandatory in the case of :keyword:`!" +"except*`, so ``except*:`` is a syntax error. The type is interpreted as in " +"the case of :keyword:`!except`, but matching is performed on the exceptions " +"contained in the group that is being handled. An :exc:`TypeError` is raised " +"if a matching type is a subclass of :exc:`!BaseExceptionGroup`, because that " +"would have ambiguous semantics." +msgstr "" + +msgid "" +"When an exception group is raised in the try block, each :keyword:`!except*` " +"clause splits (see :meth:`~BaseExceptionGroup.split`) it into the subgroups " +"of matching and non-matching exceptions. If the matching subgroup is not " +"empty, it becomes the handled exception (the value returned from :func:`sys." +"exception`) and assigned to the target of the :keyword:`!except*` clause (if " +"there is one). Then, the body of the :keyword:`!except*` clause executes. If " +"the non-matching subgroup is not empty, it is processed by the next :keyword:" +"`!except*` in the same manner. This continues until all exceptions in the " +"group have been matched, or the last :keyword:`!except*` clause has run." +msgstr "" + +msgid "" +"After all :keyword:`!except*` clauses execute, the group of unhandled " +"exceptions is merged with any exceptions that were raised or re-raised from " +"within :keyword:`!except*` clauses. This merged exception group propagates " +"on.::" msgstr "" msgid "" @@ -323,24 +342,21 @@ msgid "" "caught with nested (TypeError(2),)\n" "caught with nested (OSError(3), OSError(4))\n" " + Exception Group Traceback (most recent call last):\n" -" | File \"\", line 2, in \n" -" | ExceptionGroup: eg\n" +" | File \"\", line 2, in \n" +" | raise ExceptionGroup(\"eg\",\n" +" | [ValueError(1), TypeError(2), OSError(3), OSError(4)])\n" +" | ExceptionGroup: eg (1 sub-exception)\n" " +-+---------------- 1 ----------------\n" " | ValueError: 1\n" " +------------------------------------" msgstr "" msgid "" -"Any remaining exceptions that were not handled by any :keyword:`!except*` " -"clause are re-raised at the end, along with all exceptions that were raised " -"from within the :keyword:`!except*` clauses. If this list contains more than " -"one exception to reraise, they are combined into an exception group." -msgstr "" - -msgid "" -"If the raised exception is not an exception group and its type matches one " -"of the :keyword:`!except*` clauses, it is caught and wrapped by an exception " -"group with an empty message string. ::" +"If the exception raised from the :keyword:`try` block is not an exception " +"group and its type matches one of the :keyword:`!except*` clauses, it is " +"caught and wrapped by an exception group with an empty message string. This " +"ensures that the type of the target ``e`` is consistently :exc:" +"`BaseExceptionGroup`::" msgstr "" msgid "" @@ -353,15 +369,8 @@ msgid "" msgstr "" msgid "" -"An :keyword:`!except*` clause must have a matching expression; it cannot be " -"``except*:``. Furthermore, this expression cannot contain exception group " -"types, because that would have ambiguous semantics." -msgstr "" - -msgid "" -"It is not possible to mix :keyword:`except` and :keyword:`!except*` in the " -"same :keyword:`try`. The :keyword:`break`, :keyword:`continue`, and :keyword:" -"`return` statements cannot appear in an :keyword:`!except*` clause." +":keyword:`break`, :keyword:`continue` and :keyword:`return` cannot appear in " +"an :keyword:`!except*` clause." msgstr "" msgid ":keyword:`!else` clause" diff --git a/reference/datamodel.po b/reference/datamodel.po index 8b7f06c..3647df5 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -2444,11 +2444,11 @@ msgid "" msgstr "" msgid "" -"Python methods (including those decorated with :func:`@staticmethod " -"` and :func:`@classmethod `) are implemented as " -"non-data descriptors. Accordingly, instances can redefine and override " -"methods. This allows individual instances to acquire behaviors that differ " -"from other instances of the same class." +"Python methods (including those decorated with :deco:`staticmethod` and :" +"deco:`classmethod`) are implemented as non-data descriptors. Accordingly, " +"instances can redefine and override methods. This allows individual " +"instances to acquire behaviors that differ from other instances of the same " +"class." msgstr "" msgid "" @@ -2963,8 +2963,8 @@ msgstr "" msgid "" "When defined on a class, ``__class_getitem__()`` is automatically a class " -"method. As such, there is no need for it to be decorated with :func:" -"`@classmethod` when it is defined." +"method. As such, there is no need for it to be decorated with :deco:" +"`classmethod` when it is defined." msgstr "" msgid "The purpose of *__class_getitem__*" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 3fc3140..45426c4 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -473,6 +473,236 @@ msgid "" "`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" +msgid "Runtime Components" +msgstr "" + +msgid "General Computing Model" +msgstr "" + +msgid "" +"Python's execution model does not operate in a vacuum. It runs on a host " +"machine and through that host's runtime environment, including its operating " +"system (OS), if there is one. When a program runs, the conceptual layers of " +"how it runs on the host look something like this:" +msgstr "" + +msgid "**host machine**" +msgstr "" + +msgid "**process** (global resources)" +msgstr "" + +msgid "**thread** (runs machine code)" +msgstr "" + +msgid "" +"Each process represents a program running on the host. Think of each " +"process itself as the data part of its program. Think of the process' " +"threads as the execution part of the program. This distinction will be " +"important to understand the conceptual Python runtime." +msgstr "" + +msgid "" +"The process, as the data part, is the execution context in which the program " +"runs. It mostly consists of the set of resources assigned to the program by " +"the host, including memory, signals, file handles, sockets, and environment " +"variables." +msgstr "" + +msgid "" +"Processes are isolated and independent from one another. (The same is true " +"for hosts.) The host manages the process' access to its assigned resources, " +"in addition to coordinating between processes." +msgstr "" + +msgid "" +"Each thread represents the actual execution of the program's machine code, " +"running relative to the resources assigned to the program's process. It's " +"strictly up to the host how and when that execution takes place." +msgstr "" + +msgid "" +"From the point of view of Python, a program always starts with exactly one " +"thread. However, the program may grow to run in multiple simultaneous " +"threads. Not all hosts support multiple threads per process, but most do. " +"Unlike processes, threads in a process are not isolated and independent from " +"one another. Specifically, all threads in a process share all of the " +"process' resources." +msgstr "" + +msgid "" +"The fundamental point of threads is that each one does *run* independently, " +"at the same time as the others. That may be only conceptually at the same " +"time (\"concurrently\") or physically (\"in parallel\"). Either way, the " +"threads effectively run at a non-synchronized rate." +msgstr "" + +msgid "" +"That non-synchronized rate means none of the process' memory is guaranteed " +"to stay consistent for the code running in any given thread. Thus multi-" +"threaded programs must take care to coordinate access to intentionally " +"shared resources. Likewise, they must take care to be absolutely diligent " +"about not accessing any *other* resources in multiple threads; otherwise two " +"threads running at the same time might accidentally interfere with each " +"other's use of some shared data. All this is true for both Python programs " +"and the Python runtime." +msgstr "" + +msgid "" +"The cost of this broad, unstructured requirement is the tradeoff for the " +"kind of raw concurrency that threads provide. The alternative to the " +"required discipline generally means dealing with non-deterministic bugs and " +"data corruption." +msgstr "" + +msgid "Python Runtime Model" +msgstr "" + +msgid "" +"The same conceptual layers apply to each Python program, with some extra " +"data layers specific to Python:" +msgstr "" + +msgid "Python global runtime (*state*)" +msgstr "" + +msgid "Python interpreter (*state*)" +msgstr "" + +msgid "**thread** (runs Python bytecode and \"C-API\")" +msgstr "" + +msgid "Python thread *state*" +msgstr "" + +msgid "" +"At the conceptual level: when a Python program starts, it looks exactly like " +"that diagram, with one of each. The runtime may grow to include multiple " +"interpreters, and each interpreter may grow to include multiple thread " +"states." +msgstr "" + +msgid "" +"A Python implementation won't necessarily implement the runtime layers " +"distinctly or even concretely. The only exception is places where distinct " +"layers are directly specified or exposed to users, like through the :mod:" +"`threading` module." +msgstr "" + +msgid "" +"The initial interpreter is typically called the \"main\" interpreter. Some " +"Python implementations, like CPython, assign special roles to the main " +"interpreter." +msgstr "" + +msgid "" +"Likewise, the host thread where the runtime was initialized is known as the " +"\"main\" thread. It may be different from the process' initial thread, " +"though they are often the same. In some cases \"main thread\" may be even " +"more specific and refer to the initial thread state. A Python runtime might " +"assign specific responsibilities to the main thread, such as handling " +"signals." +msgstr "" + +msgid "" +"As a whole, the Python runtime consists of the global runtime state, " +"interpreters, and thread states. The runtime ensures all that state stays " +"consistent over its lifetime, particularly when used with multiple host " +"threads." +msgstr "" + +msgid "" +"The global runtime, at the conceptual level, is just a set of interpreters. " +"While those interpreters are otherwise isolated and independent from one " +"another, they may share some data or other resources. The runtime is " +"responsible for managing these global resources safely. The actual nature " +"and management of these resources is implementation-specific. Ultimately, " +"the external utility of the global runtime is limited to managing " +"interpreters." +msgstr "" + +msgid "" +"In contrast, an \"interpreter\" is conceptually what we would normally think " +"of as the (full-featured) \"Python runtime\". When machine code executing " +"in a host thread interacts with the Python runtime, it calls into Python in " +"the context of a specific interpreter." +msgstr "" + +msgid "" +"The term \"interpreter\" here is not the same as the \"bytecode " +"interpreter\", which is what regularly runs in threads, executing compiled " +"Python code." +msgstr "" + +msgid "" +"In an ideal world, \"Python runtime\" would refer to what we currently call " +"\"interpreter\". However, it's been called \"interpreter\" at least since " +"introduced in 1997 (`CPython:a027efa5b`_)." +msgstr "" + +msgid "" +"Each interpreter completely encapsulates all of the non-process-global, non-" +"thread-specific state needed for the Python runtime to work. Notably, the " +"interpreter's state persists between uses. It includes fundamental data " +"like :data:`sys.modules`. The runtime ensures multiple threads using the " +"same interpreter will safely share it between them." +msgstr "" + +msgid "" +"A Python implementation may support using multiple interpreters at the same " +"time in the same process. They are independent and isolated from one " +"another. For example, each interpreter has its own :data:`sys.modules`." +msgstr "" + +msgid "" +"For thread-specific runtime state, each interpreter has a set of thread " +"states, which it manages, in the same way the global runtime contains a set " +"of interpreters. It can have thread states for as many host threads as it " +"needs. It may even have multiple thread states for the same host thread, " +"though that isn't as common." +msgstr "" + +msgid "" +"Each thread state, conceptually, has all the thread-specific runtime data an " +"interpreter needs to operate in one host thread. The thread state includes " +"the current raised exception and the thread's Python call stack. It may " +"include other thread-specific resources." +msgstr "" + +msgid "" +"The term \"Python thread\" can sometimes refer to a thread state, but " +"normally it means a thread created using the :mod:`threading` module." +msgstr "" + +msgid "" +"Each thread state, over its lifetime, is always tied to exactly one " +"interpreter and exactly one host thread. It will only ever be used in that " +"thread and with that interpreter." +msgstr "" + +msgid "" +"Multiple thread states may be tied to the same host thread, whether for " +"different interpreters or even the same interpreter. However, for any given " +"host thread, only one of the thread states tied to it can be used by the " +"thread at a time." +msgstr "" + +msgid "" +"Thread states are isolated and independent from one another and don't share " +"any data, except for possibly sharing an interpreter and objects or other " +"resources belonging to that interpreter." +msgstr "" + +msgid "" +"Once a program is running, new Python threads can be created using the :mod:" +"`threading` module (on platforms and Python implementations that support " +"threads). Additional processes can be created using the :mod:`os`, :mod:" +"`subprocess`, and :mod:`multiprocessing` modules. Interpreters can be " +"created and used with the :mod:`~concurrent.interpreters` module. " +"Coroutines (async) can be run using :mod:`asyncio` in each interpreter, " +"typically only in a single thread (often the main thread)." +msgstr "" + msgid "Footnotes" msgstr "Lábjegyzet" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index ec96565..a944ceb 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -28,15 +28,129 @@ msgstr "" msgid "" "A Python program is read by a *parser*. Input to the parser is a stream of :" "term:`tokens `, generated by the *lexical analyzer* (also known as " -"the *tokenizer*). This chapter describes how the lexical analyzer breaks a " -"file into tokens." +"the *tokenizer*). This chapter describes how the lexical analyzer produces " +"these tokens." msgstr "" msgid "" -"Python reads program text as Unicode code points; the encoding of a source " -"file can be given by an encoding declaration and defaults to UTF-8, see :pep:" -"`3120` for details. If the source file cannot be decoded, a :exc:" -"`SyntaxError` is raised." +"The lexical analyzer determines the program text's :ref:`encoding " +"` (UTF-8 by default), and decodes the text into :ref:`source " +"characters `. If the text cannot be decoded, a :" +"exc:`SyntaxError` is raised." +msgstr "" + +msgid "" +"Next, the lexical analyzer uses the source characters to generate a stream " +"of tokens. The type of a generated token generally depends on the next " +"source character to be processed. Similarly, other special behavior of the " +"analyzer depends on the first source character that hasn't yet been " +"processed. The following table gives a quick summary of these source " +"characters, with links to sections that contain more information." +msgstr "" + +msgid "Character" +msgstr "" + +msgid "Next token (or other relevant documentation)" +msgstr "" + +msgid "space" +msgstr "" + +msgid "tab" +msgstr "" + +msgid "formfeed" +msgstr "" + +msgid ":ref:`Whitespace `" +msgstr "" + +msgid "CR, LF" +msgstr "" + +msgid ":ref:`New line `" +msgstr "" + +msgid ":ref:`Indentation `" +msgstr "" + +msgid "backslash (``\\``)" +msgstr "" + +msgid ":ref:`Explicit line joining `" +msgstr "" + +msgid "(Also significant in :ref:`string escape sequences `)" +msgstr "" + +msgid "hash (``#``)" +msgstr "" + +msgid ":ref:`Comment `" +msgstr "" + +msgid "quote (``'``, ``\"``)" +msgstr "" + +msgid ":ref:`String literal `" +msgstr "" + +msgid "ASCII letter (``a``-``z``, ``A``-``Z``)" +msgstr "" + +msgid "non-ASCII character" +msgstr "" + +msgid ":ref:`Name `" +msgstr "" + +msgid "Prefixed :ref:`string or bytes literal `" +msgstr "" + +msgid "underscore (``_``)" +msgstr "" + +msgid "(Can also be part of :ref:`numeric literals `)" +msgstr "" + +msgid "number (``0``-``9``)" +msgstr "" + +msgid ":ref:`Numeric literal `" +msgstr "" + +msgid "dot (``.``)" +msgstr "" + +msgid ":ref:`Operator `" +msgstr "" + +msgid "question mark (``?``)" +msgstr "" + +msgid "dollar (``$``)" +msgstr "" + +msgid "backquote (``​`​``)" +msgstr "" + +msgid "control character" +msgstr "" + +msgid "Error (outside string literals and comments)" +msgstr "" + +msgid "other printing character" +msgstr "" + +msgid ":ref:`Operator or delimiter `" +msgstr "" + +msgid "end of file" +msgstr "" + +msgid ":ref:`End marker `" msgstr "" msgid "Line structure" @@ -1599,12 +1713,6 @@ msgstr "" msgid "leading whitespace" msgstr "" -msgid "space" -msgstr "" - -msgid "tab" -msgstr "" - msgid "grouping" msgstr "" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 575a9a8..6806f2e 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -961,9 +961,17 @@ msgid "" msgstr "" msgid "" -"The :keyword:`global` statement applies to the entire scope of a function or " -"class body. A :exc:`SyntaxError` is raised if a variable is used or assigned " -"to prior to its global declaration in the scope." +"The :keyword:`!global` statement applies to the entire current scope " +"(module, function body or class definition). A :exc:`SyntaxError` is raised " +"if a variable is used or assigned to prior to its global declaration in the " +"scope." +msgstr "" + +msgid "" +"At the module level, all variables are global, so a :keyword:`!global` " +"statement has no effect. However, variables must still not be used or " +"assigned to prior to their :keyword:`!global` declaration. This requirement " +"is relaxed in the interactive prompt (:term:`REPL`)." msgstr "" msgid "" diff --git a/sphinx.po b/sphinx.po index ae69488..cb66b84 100644 --- a/sphinx.po +++ b/sphinx.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-01 14:15+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -64,47 +64,40 @@ msgid "HTML" msgstr "" msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" msgid "Plain text" msgstr "" msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" msgid "Texinfo" msgstr "" msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" msgid "" "Download (ca. %(download_size)s MiB)" +"a>" msgstr "" msgid "EPUB" msgstr "" -msgid "" -"Download (ca. " -"%(download_size)s MiB)" +msgid "Download" msgstr "" msgid "These archives contain all the content in the documentation." @@ -120,6 +113,13 @@ msgid "" "copy of the CPython repository.\n" msgstr "" +msgid "" +"\n" +"See the directory " +"listing\n" +"for file sizes." +msgstr "" + msgid "Unpacking" msgstr "" @@ -142,9 +142,8 @@ msgid "Problems" msgstr "" msgid "" -"If you have comments or suggestions for the Python documentation, please " -"send\n" -"email to docs@python.org." +"Open an issue\n" +"if you have comments or suggestions for the Python documentation." msgstr "" msgid "Availability" diff --git a/using/android.po b/using/android.po index 456c428..996a1fe 100644 --- a/using/android.po +++ b/using/android.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 14:16+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/using/configure.po b/using/configure.po index 4f2b49f..64b4ce6 100644 --- a/using/configure.po +++ b/using/configure.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -996,7 +996,7 @@ msgstr "" msgid "" "A copy of the ``mpdecimal`` library sources will no longer be distributed " -"with Python 3.15." +"with Python 3.16." msgstr "" msgid ":option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`." diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index f469a19..f7cea24 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -38,7 +38,7 @@ msgid "" "incorporates new features and syntax from 3.0 while remaining compatible " "with existing code by not removing older features or syntax. When it's not " "possible to do that, Python 2.6 tries to do what it can, adding " -"compatibility functions in a :mod:`future_builtins` module and a :option:" +"compatibility functions in a :mod:`!future_builtins` module and a :option:" "`!-3` switch to warn about usages that will become unsupported in 3.0." msgstr "" @@ -99,7 +99,7 @@ msgid "" "Python 3.0 adds several new built-in functions and changes the semantics of " "some existing builtins. Functions that are new in 3.0 such as :func:`bin` " "have simply been added to Python 2.6, but existing builtins haven't been " -"changed; instead, the :mod:`future_builtins` module has versions with the " +"changed; instead, the :mod:`!future_builtins` module has versions with the " "new 3.0 semantics. Code written to be compatible with 3.0 can do ``from " "future_builtins import hex, map`` as necessary." msgstr "" @@ -108,7 +108,7 @@ msgid "" "A new command-line switch, :option:`!-3`, enables warnings about features " "that will be removed in Python 3.0. You can run code with this switch to " "see how much work will be necessary to port code to 3.0. The value of this " -"switch is available to Python code as the boolean variable :data:`sys." +"switch is available to Python code as the boolean variable :data:`!sys." "py3kwarning`, and to C extension code as :c:data:`!Py_Py3kWarningFlag`." msgstr "" @@ -347,9 +347,10 @@ msgid "" msgstr "" msgid "" -"The :func:`localcontext` function in the :mod:`decimal` module makes it easy " -"to save and restore the current decimal context, which encapsulates the " -"desired precision and rounding characteristics for computations::" +"The :func:`~decimal.localcontext` function in the :mod:`decimal` module " +"makes it easy to save and restore the current decimal context, which " +"encapsulates the desired precision and rounding characteristics for " +"computations::" msgstr "" msgid "" @@ -440,7 +441,7 @@ msgstr "" msgid "" "The transaction should be committed if the code in the block runs flawlessly " "or rolled back if there's an exception. Here's the basic interface for :" -"class:`DatabaseConnection` that I'll assume::" +"class:`!DatabaseConnection` that I'll assume::" msgstr "" msgid "" @@ -507,15 +508,15 @@ msgid "" msgstr "" msgid "" -"The decorator is called :func:`contextmanager`, and lets you write a single " -"generator function instead of defining a new class. The generator should " -"yield exactly one value. The code up to the :keyword:`yield` will be " -"executed as the :meth:`~object.__enter__` method, and the value yielded will " -"be the method's return value that will get bound to the variable in the ':" -"keyword:`with`' statement's :keyword:`!as` clause, if any. The code after " -"the :keyword:`!yield` will be executed in the :meth:`~object.__exit__` " -"method. Any exception raised in the block will be raised by the :keyword:`!" -"yield` statement." +"The decorator is called :func:`~contextlib.contextmanager`, and lets you " +"write a single generator function instead of defining a new class. The " +"generator should yield exactly one value. The code up to the :keyword:" +"`yield` will be executed as the :meth:`~object.__enter__` method, and the " +"value yielded will be the method's return value that will get bound to the " +"variable in the ':keyword:`with`' statement's :keyword:`!as` clause, if " +"any. The code after the :keyword:`!yield` will be executed in the :meth:" +"`~object.__exit__` method. Any exception raised in the block will be raised " +"by the :keyword:`!yield` statement." msgstr "" msgid "" @@ -557,9 +558,9 @@ msgid "" msgstr "" msgid "" -"Finally, the :func:`closing` function returns its argument so that it can be " -"bound to a variable, and calls the argument's ``.close()`` method at the end " -"of the block. ::" +"Finally, the :func:`~contextlib.closing` function returns its argument so " +"that it can be bound to a variable, and calls the argument's ``.close()`` " +"method at the end of the block. ::" msgstr "" msgid "" @@ -637,9 +638,9 @@ msgid "" "If you don't like the default directory, it can be overridden by an " "environment variable. :envvar:`PYTHONUSERBASE` sets the root directory used " "for all Python versions supporting this feature. On Windows, the directory " -"for application-specific data can be changed by setting the :envvar:" -"`APPDATA` environment variable. You can also modify the :file:`site.py` " -"file for your Python installation." +"for application-specific data can be changed by setting the :envvar:`!" +"APPDATA` environment variable. You can also modify the :file:`site.py` file " +"for your Python installation." msgstr "" msgid "" @@ -668,11 +669,13 @@ msgid "" "The :mod:`multiprocessing` module started out as an exact emulation of the :" "mod:`threading` module using processes instead of threads. That goal was " "discarded along the path to Python 2.6, but the general approach of the " -"module is still similar. The fundamental class is the :class:`Process`, " -"which is passed a callable object and a collection of arguments. The :meth:" -"`start` method sets the callable running in a subprocess, after which you " -"can call the :meth:`is_alive` method to check whether the subprocess is " -"still running and the :meth:`join` method to wait for the process to exit." +"module is still similar. The fundamental class is the :class:" +"`~multiprocessing.Process`, which is passed a callable object and a " +"collection of arguments. The :meth:`~multiprocessing.Process.start` method " +"sets the callable running in a subprocess, after which you can call the :" +"meth:`~multiprocessing.Process.is_alive` method to check whether the " +"subprocess is still running and the :meth:`~multiprocessing.Process.join` " +"method to wait for the process to exit." msgstr "" msgid "" @@ -723,13 +726,15 @@ msgid "" msgstr "" msgid "" -"Two other classes, :class:`Pool` and :class:`Manager`, provide higher-level " -"interfaces. :class:`Pool` will create a fixed number of worker processes, " -"and requests can then be distributed to the workers by calling :meth:`apply` " -"or :meth:`apply_async` to add a single request, and :meth:`map` or :meth:" -"`map_async` to add a number of requests. The following code uses a :class:" -"`Pool` to spread requests across 5 worker processes and retrieve a list of " -"results::" +"Two other classes, :class:`~multiprocessing.pool.Pool` and :class:" +"`~multiprocessing.Manager`, provide higher-level interfaces. :class:" +"`~multiprocessing.pool.Pool` will create a fixed number of worker processes, " +"and requests can then be distributed to the workers by calling :meth:" +"`~multiprocessing.pool.Pool.apply` or :meth:`~multiprocessing.pool.Pool." +"apply_async` to add a single request, and :meth:`~multiprocessing.pool.Pool." +"map` or :meth:`~multiprocessing.pool.Pool.map_async` to add a number of " +"requests. The following code uses a :class:`~multiprocessing.pool.Pool` to " +"spread requests across 5 worker processes and retrieve a list of results::" msgstr "" msgid "" @@ -757,14 +762,16 @@ msgid "" msgstr "" msgid "" -"The other high-level interface, the :class:`Manager` class, creates a " -"separate server process that can hold master copies of Python data " +"The other high-level interface, the :class:`~multiprocessing.Manager` class, " +"creates a separate server process that can hold master copies of Python data " "structures. Other processes can then access and modify these data " "structures using proxy objects. The following example creates a shared " "dictionary by calling the :meth:`dict` method; the worker processes then " "insert values into the dictionary. (Locking is not done for you " -"automatically, which doesn't matter in this example. :class:`Manager`'s " -"methods also include :meth:`Lock`, :meth:`RLock`, and :meth:`Semaphore` to " +"automatically, which doesn't matter in this example. :class:" +"`~multiprocessing.Manager`'s methods also include :meth:`~multiprocessing." +"managers.SyncManager.Lock`, :meth:`~multiprocessing.managers.SyncManager." +"RLock`, and :meth:`~multiprocessing.managers.SyncManager.Semaphore` to " "create shared locks.)" msgstr "" @@ -1037,8 +1044,8 @@ msgid "" msgstr "" msgid "" -"Classes and types can define a :meth:`__format__` method to control how " -"they're formatted. It receives a single argument, the format specifier::" +"Classes and types can define a :meth:`~object.__format__` method to control " +"how they're formatted. It receives a single argument, the format specifier::" msgstr "" msgid "" @@ -1051,7 +1058,8 @@ msgstr "" msgid "" "There's also a :func:`format` builtin that will format a single value. It " -"calls the type's :meth:`__format__` method with the provided specifier::" +"calls the type's :meth:`~object.__format__` method with the provided " +"specifier::" msgstr "" msgid "" @@ -1285,8 +1293,8 @@ msgstr "" msgid "" "Python's built-in file objects support a number of methods, but file-like " "objects don't necessarily support all of them. Objects that imitate files " -"usually support :meth:`read` and :meth:`write`, but they may not support :" -"meth:`readline`, for example. Python 3.0 introduces a layered I/O library " +"usually support :meth:`!read` and :meth:`!write`, but they may not support :" +"meth:`!readline`, for example. Python 3.0 introduces a layered I/O library " "in the :mod:`io` module that separates buffering and text-handling features " "from the fundamental read and write operations." msgstr "" @@ -1297,12 +1305,13 @@ msgid "" msgstr "" msgid "" -":class:`RawIOBase` defines raw I/O operations: :meth:`read`, :meth:" -"`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " -"and :meth:`close`. Most of the methods of this class will often map to a " -"single system call. There are also :meth:`readable`, :meth:`writable`, and :" -"meth:`seekable` methods for determining what operations a given object will " -"allow." +":class:`~io.RawIOBase` defines raw I/O operations: :meth:`~io.RawIOBase." +"read`, :meth:`~io.RawIOBase.readinto`, :meth:`~io.RawIOBase.write`, :meth:" +"`~io.IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`~io.IOBase.truncate`, " +"and :meth:`~io.IOBase.close`. Most of the methods of this class will often " +"map to a single system call. There are also :meth:`~io.IOBase.readable`, :" +"meth:`~io.IOBase.writable`, and :meth:`~io.IOBase.seekable` methods for " +"determining what operations a given object will allow." msgstr "" msgid "" @@ -1311,36 +1320,37 @@ msgid "" msgstr "" msgid "" -":class:`BufferedIOBase` is an abstract base class that buffers data in " +":class:`~io.BufferedIOBase` is an abstract base class that buffers data in " "memory to reduce the number of system calls used, making I/O processing more " -"efficient. It supports all of the methods of :class:`RawIOBase`, and adds a :" -"attr:`raw` attribute holding the underlying raw object." +"efficient. It supports all of the methods of :class:`~io.RawIOBase`, and " +"adds a :attr:`~io.BufferedIOBase.raw` attribute holding the underlying raw " +"object." msgstr "" msgid "" -"There are five concrete classes implementing this ABC. :class:" -"`BufferedWriter` and :class:`BufferedReader` are for objects that support " -"write-only or read-only usage that have a :meth:`seek` method for random " -"access. :class:`BufferedRandom` objects support read and write access upon " -"the same underlying stream, and :class:`BufferedRWPair` is for objects such " -"as TTYs that have both read and write operations acting upon unconnected " -"streams of data. The :class:`BytesIO` class supports reading, writing, and " -"seeking over an in-memory buffer." +"There are five concrete classes implementing this ABC. :class:`~io." +"BufferedWriter` and :class:`~io.BufferedReader` are for objects that support " +"write-only or read-only usage that have a :meth:`~io.IOBase.seek` method for " +"random access. :class:`~io.BufferedRandom` objects support read and write " +"access upon the same underlying stream, and :class:`~io.BufferedRWPair` is " +"for objects such as TTYs that have both read and write operations acting " +"upon unconnected streams of data. The :class:`~io.BytesIO` class supports " +"reading, writing, and seeking over an in-memory buffer." msgstr "" msgid "" -":class:`TextIOBase`: Provides functions for reading and writing strings " +":class:`~io.TextIOBase`: Provides functions for reading and writing strings " "(remember, strings will be Unicode in Python 3.0), and supporting :term:" -"`universal newlines`. :class:`TextIOBase` defines the :meth:`readline` " +"`universal newlines`. :class:`~io.TextIOBase` defines the :meth:`readline` " "method and supports iteration upon objects." msgstr "" msgid "" -"There are two concrete implementations. :class:`TextIOWrapper` wraps a " +"There are two concrete implementations. :class:`~io.TextIOWrapper` wraps a " "buffered I/O object, supporting all of the methods for text I/O and adding " -"a :attr:`buffer` attribute for access to the underlying object. :class:" -"`StringIO` simply buffers everything in memory without ever writing anything " -"to disk." +"a :attr:`~io.TextIOBase.buffer` attribute for access to the underlying " +"object. :class:`~io.StringIO` simply buffers everything in memory without " +"ever writing anything to disk." msgstr "" msgid "" @@ -1437,10 +1447,10 @@ msgid "" "that a class has a given set of methods or supports a given access " "protocol. Abstract Base Classes (or ABCs) are an equivalent feature for " "Python. The ABC support consists of an :mod:`abc` module containing a " -"metaclass called :class:`ABCMeta`, special handling of this metaclass by " -"the :func:`isinstance` and :func:`issubclass` builtins, and a collection of " -"basic ABCs that the Python developers think will be widely useful. Future " -"versions of Python will probably add more ABCs." +"metaclass called :class:`~abc.ABCMeta`, special handling of this metaclass " +"by the :func:`isinstance` and :func:`issubclass` builtins, and a collection " +"of basic ABCs that the Python developers think will be widely useful. " +"Future versions of Python will probably add more ABCs." msgstr "" msgid "" @@ -1448,19 +1458,19 @@ msgid "" "dictionary-style access. The phrase \"dictionary-style\" is vague, however. " "It probably means that accessing items with ``obj[1]`` works. Does it imply " "that setting items with ``obj[2] = value`` works? Or that the object will " -"have :meth:`keys`, :meth:`values`, and :meth:`items` methods? What about " -"the iterative variants such as :meth:`iterkeys`? :meth:`copy` and :meth:" -"`update`? Iterating over the object with :func:`iter`?" +"have :meth:`!keys`, :meth:`!values`, and :meth:`!items` methods? What about " +"the iterative variants such as :meth:`!iterkeys`? :meth:`!copy`and :meth:`!" +"update`? Iterating over the object with :func:`!iter`?" msgstr "" msgid "" "The Python 2.6 :mod:`collections` module includes a number of different ABCs " "that represent these distinctions. :class:`Iterable` indicates that a class " -"defines :meth:`__iter__`, and :class:`Container` means the class defines a :" -"meth:`__contains__` method and therefore supports ``x in y`` expressions. " -"The basic dictionary interface of getting items, setting items, and :meth:" -"`keys`, :meth:`values`, and :meth:`items`, is defined by the :class:" -"`MutableMapping` ABC." +"defines :meth:`~object.__iter__`, and :class:`Container` means the class " +"defines a :meth:`~object.__contains__` method and therefore supports ``x in " +"y`` expressions. The basic dictionary interface of getting items, setting " +"items, and :meth:`!keys`, :meth:`!values`, and :meth:`!items`, is defined by " +"the :class:`MutableMapping` ABC." msgstr "" msgid "" @@ -1477,8 +1487,8 @@ msgstr "" msgid "" "Alternatively, you could write the class without deriving from the desired " -"ABC and instead register the class by calling the ABC's :meth:`register` " -"method::" +"ABC and instead register the class by calling the ABC's :meth:`~abc.ABCMeta." +"register` method::" msgstr "" msgid "" @@ -1492,10 +1502,10 @@ msgstr "" msgid "" "For classes that you write, deriving from the ABC is probably clearer. The :" -"meth:`register` method is useful when you've written a new ABC that can " -"describe an existing type or class, or if you want to declare that some " -"third-party class implements an ABC. For example, if you defined a :class:" -"`PrintableType` ABC, it's legal to do::" +"meth:`~abc.ABCMeta.register` method is useful when you've written a new ABC " +"that can describe an existing type or class, or if you want to declare that " +"some third-party class implements an ABC. For example, if you defined a :" +"class:`!PrintableType` ABC, it's legal to do::" msgstr "" msgid "" @@ -1556,19 +1566,19 @@ msgid "" msgstr "" msgid "" -"In the :class:`Drawable` ABC above, the :meth:`draw_doubled` method renders " -"the object at twice its size and can be implemented in terms of other " -"methods described in :class:`Drawable`. Classes implementing this ABC " -"therefore don't need to provide their own implementation of :meth:" -"`draw_doubled`, though they can do so. An implementation of :meth:`draw` is " +"In the :class:`!Drawable` ABC above, the :meth:`!draw_doubled` method " +"renders the object at twice its size and can be implemented in terms of " +"other methods described in :class:`!Drawable`. Classes implementing this " +"ABC therefore don't need to provide their own implementation of :meth:`!" +"draw_doubled`, though they can do so. An implementation of :meth:`!draw` is " "necessary, though; the ABC can't provide a useful generic implementation." msgstr "" msgid "" -"You can apply the ``@abstractmethod`` decorator to methods such as :meth:" -"`draw` that must be implemented; Python will then raise an exception for " -"classes that don't define the method. Note that the exception is only raised " -"when you actually try to create an instance of a subclass lacking the " +"You can apply the :deco:`~abc.abstractmethod` decorator to methods such as :" +"meth:`!draw` that must be implemented; Python will then raise an exception " +"for classes that don't define the method. Note that the exception is only " +"raised when you actually try to create an instance of a subclass lacking the " "method::" msgstr "" @@ -1598,7 +1608,7 @@ msgid "" " return self._x" msgstr "" -msgid "Subclasses must then define a :meth:`readonly` property." +msgid "Subclasses must then define a ``readonly`` property." msgstr "" msgid ":pep:`3119` - Introducing Abstract Base Classes" @@ -3402,13 +3412,13 @@ msgid "" "transformations such as changing line numbers." msgstr "" -msgid "The :mod:`future_builtins` module" +msgid "The :mod:`!future_builtins` module" msgstr "" msgid "" "Python 3.0 makes many changes to the repertoire of built-in functions, and " "most of the changes can't be introduced in the Python 2.x series because " -"they would break compatibility. The :mod:`future_builtins` module provides " +"they would break compatibility. The :mod:`!future_builtins` module provides " "versions of these built-in functions that can be imported when writing 3.0-" "compatible code." msgstr "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 88f0fe3..db51c85 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1027,11 +1027,10 @@ msgid "" msgstr "" msgid "" -"When using :class:`@classmethod ` and :class:`@staticmethod " -"` to wrap methods as class or static methods, the wrapper " -"object now exposes the wrapped function as their :attr:`~method.__func__` " -"attribute. (Contributed by Amaury Forgeot d'Arc, after a suggestion by " -"George Sakkis; :issue:`5982`.)" +"When using :deco:`classmethod` and :deco:`staticmethod` to wrap methods as " +"class or static methods, the wrapper object now exposes the wrapped function " +"as their :attr:`~method.__func__` attribute. (Contributed by Amaury Forgeot " +"d'Arc, after a suggestion by George Sakkis; :issue:`5982`.)" msgstr "" msgid "" diff --git a/whatsnew/3.10.po b/whatsnew/3.10.po index 6d61819..e8d77c6 100644 --- a/whatsnew/3.10.po +++ b/whatsnew/3.10.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1060,12 +1060,11 @@ msgid "" msgstr "" msgid "" -"Static methods (:func:`@staticmethod `) and class methods (:" -"func:`@classmethod `) now inherit the method attributes " -"(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, " -"``__annotations__``) and have a new ``__wrapped__`` attribute. Moreover, " -"static methods are now callable as regular functions. (Contributed by Victor " -"Stinner in :issue:`43682`.)" +"Static methods (:deco:`staticmethod`) and class methods (:deco:" +"`classmethod`) now inherit the method attributes (``__module__``, " +"``__name__``, ``__qualname__``, ``__doc__``, ``__annotations__``) and have a " +"new ``__wrapped__`` attribute. Moreover, static methods are now callable as " +"regular functions. (Contributed by Victor Stinner in :issue:`43682`.)" msgstr "" msgid "" diff --git a/whatsnew/3.13.po b/whatsnew/3.13.po index a419ddc..f34105d 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1071,9 +1071,9 @@ msgid "" msgstr "" msgid "" -"Allow removing all items from the database through the new :meth:`.gdbm." -"clear` and :meth:`.ndbm.clear` methods. (Contributed by Donghee Na in :gh:" -"`107122`.)" +"Allow removing all items from the database through the new :meth:`!clear` " +"methods of the GDBM and NDBM database objects. (Contributed by Donghee Na " +"in :gh:`107122`.)" msgstr "" msgid "dis" diff --git a/whatsnew/3.14.po b/whatsnew/3.14.po index b147a09..c61980a 100644 --- a/whatsnew/3.14.po +++ b/whatsnew/3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -268,7 +268,7 @@ msgid "true multi-core parallelism" msgstr "" msgid "" -"For some use cases, concurrency in software enables efficiency and can " +"For some use cases, concurrency in software improves efficiency and can " "simplify design, at a high level. At the same time, implementing and " "maintaining all but the simplest concurrency is often a struggle for the " "human brain. That especially applies to plain threads (for example, :mod:" @@ -277,9 +277,10 @@ msgstr "" msgid "" "With multiple isolated interpreters, you can take advantage of a class of " -"concurrency models, like CSP or the actor model, that have found success in " -"other programming languages, like Smalltalk, Erlang, Haskell, and Go. Think " -"of multiple interpreters like threads but with opt-in sharing." +"concurrency models, like Communicating Sequential Processes (CSP) or the " +"actor model, that have found success in other programming languages, like " +"Smalltalk, Erlang, Haskell, and Go. Think of multiple interpreters as " +"threads but with opt-in sharing." msgstr "" msgid "" @@ -303,8 +304,8 @@ msgid "" "While the feature has been around for decades, multiple interpreters have " "not been used widely, due to low awareness and the lack of a standard " "library module. Consequently, they currently have several notable " -"limitations, which will improve significantly now that the feature is " -"finally going mainstream." +"limitations, which are expected to improve significantly now that the " +"feature is going mainstream." msgstr "" msgid "Current limitations:" @@ -550,7 +551,7 @@ msgstr "" msgid "" "This interpreter currently only works with Clang 19 and newer on x86-64 and " -"AArch64 architectures. However, a future release of GCC is expected will " +"AArch64 architectures. However, a future release of GCC is expected to " "support this as well." msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 0df7a0f..4dc89d3 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-09 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -27,6 +27,390 @@ msgstr "" msgid "*Release date: XXXX-XX-XX*" msgstr "" +msgid "Tools/Demos" +msgstr "" + +msgid "" +":gh:`137484`: Have ``Tools/wasm/wasi`` put the build Python into a directory " +"named after the build triple instead of \"build\"." +msgstr "" + +msgid "" +":gh:`137248`: Add a ``--logdir`` option to ``Tools/wasm/wasi`` for " +"specifying where to write log files." +msgstr "" + +msgid "" +":gh:`137243`: Have Tools/wasm/wasi detect a WASI SDK install in /opt when it " +"was directly extracted from a release tarball." +msgstr "" + +msgid "Tests" +msgstr "" + +msgid "" +":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--" +"verbose`` option anymore. Patch by Victor Stinner." +msgstr "" + +msgid "Security" +msgstr "" + +msgid "" +":gh:`139700`: Check consistency of the zip64 end of central directory " +"record. Support records with \"zip64 extensible data\" if there are no bytes " +"prepended to the ZIP file." +msgstr "" + +msgid "" +":gh:`139283`: :mod:`sqlite3`: correctly handle maximum number of rows to " +"fetch in :meth:`Cursor.fetchmany ` and reject " +"negative values for :attr:`Cursor.arraysize `. " +"Patch by Bénédikt Tran." +msgstr "" + +msgid "Library" +msgstr "" + +msgid "" +":gh:`139736`: Fix excessive indentation in the default :mod:`argparse` :" +"class:`!HelpFormatter`. Patch by Alexander Edland." +msgstr "" + +msgid "" +":gh:`70765`: :mod:`http.server`: fix default handling of HTTP/0.9 requests " +"in :class:`~http.server.BaseHTTPRequestHandler`. Previously, :meth:`!" +"BaseHTTPRequestHandler.parse_request`` incorrectly waited for headers in the " +"request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." +msgstr "" + +msgid "" +":gh:`139210`: Fix use-after-free when reporting unknown event in :func:`xml." +"etree.ElementTree.iterparse`. Patch by Ken Jin." +msgstr "" + +msgid "" +":gh:`112729`: Fix crash when calling :func:`concurrent.interpreters.create` " +"when the process is out of memory." +msgstr "" + +msgid "" +":gh:`135729`: Fix unraisable exception during finalization when using :mod:" +"`concurrent.interpreters` in the REPL." +msgstr "" + +msgid "" +":gh:`139076`: Fix a bug in the :mod:`pydoc` module that was hiding functions " +"in a Python module if they were implemented in an extension module and the " +"module did not have ``__all__``." +msgstr "" + +msgid "" +":gh:`138813`: :class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to " +"``None`` instead of a shared dictionary." +msgstr "" + +msgid "" +":gh:`130567`: Fix possible crash in :func:`locale.strxfrm` due to a platform " +"bug on macOS." +msgstr "" + +msgid "" +":gh:`138779`: Support device numbers larger than ``2**63-1`` for the :attr:" +"`~os.stat_result.st_rdev` field of the :class:`os.stat_result` structure." +msgstr "" + +msgid "" +":gh:`137706`: Fix the partial evaluation of annotations that use ``typing." +"Annotated[T, x]`` where ``T`` is a forward reference." +msgstr "" + +msgid "" +":gh:`88375`: Fix normalization of the ``robots.txt`` rules and URLs in the :" +"mod:`urllib.robotparser` module. No longer ignore trailing ``?``. " +"Distinguish raw special characters ``?``, ``=`` and ``&`` from the percent-" +"encoded ones." +msgstr "" + +msgid "" +":gh:`111788`: Fix parsing errors in the :mod:`urllib.robotparser` module. " +"Don't fail trying to parse weird paths. Don't fail trying to decode non-" +"UTF-8 ``robots.txt`` files." +msgstr "" + +msgid "" +":gh:`138432`: :meth:`zoneinfo.reset_tzpath` will now convert any :class:`os." +"PathLike` objects it receives into strings before adding them to ``TZPATH``. " +"It will raise ``TypeError`` if anything other than a string is found after " +"this conversion. If given an :class:`os.PathLike` object that represents a " +"relative path, it will now raise ``ValueError`` instead of ``TypeError``, " +"and present a more informative error message." +msgstr "" + +msgid "" +":gh:`138008`: Fix segmentation faults in the :mod:`ctypes` module due to " +"invalid :attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen." +msgstr "" + +msgid "" +":gh:`60462`: Fix :func:`locale.strxfrm` on Solaris (and possibly other " +"platforms)." +msgstr "" + +msgid "" +":gh:`138239`: The REPL now highlights :keyword:`type` as a soft keyword in :" +"ref:`type statements `." +msgstr "" + +msgid "" +":gh:`138204`: Forbid expansion of shared anonymous :mod:`memory maps ` " +"on Linux, which caused a bus error." +msgstr "" + +msgid "" +":gh:`138010`: Fix an issue where defining a class with an :func:`@warnings." +"deprecated `-decorated base class may not invoke the " +"correct :meth:`~object.__init_subclass__` method in cases involving multiple " +"inheritance. Patch by Brian Schubert." +msgstr "" + +msgid "" +":gh:`137317`: :func:`inspect.signature` now correctly handles classes that " +"use a descriptor on a wrapped :meth:`!__init__` or :meth:`!__new__` method. " +"Contributed by Yongyu Yan." +msgstr "" + +msgid "" +":gh:`137754`: Fix import of the :mod:`zoneinfo` module if the C " +"implementation of the :mod:`datetime` module is not available." +msgstr "" + +msgid "" +":gh:`137490`: Handle :data:`~errno.ECANCELED` in the same way as :data:" +"`~errno.EINTR` in :func:`signal.sigwaitinfo` on NetBSD." +msgstr "" + +msgid "" +":gh:`137477`: Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` " +"and :func:`inspect.getsource` for generator expressions." +msgstr "" + +msgid "" +":gh:`137044`: Return large limit values as positive integers instead of " +"negative integers in :func:`resource.getrlimit`. Accept large values and " +"reject negative values (except :data:`~resource.RLIM_INFINITY`) for limits " +"in :func:`resource.setrlimit`." +msgstr "" + +msgid "" +":gh:`75989`: :func:`tarfile.TarFile.extractall` and :func:`tarfile.TarFile." +"extract` now overwrite symlinks when extracting hardlinks. (Contributed by " +"Alexander Enrique Urieles Nieto in :gh:`75989`.)" +msgstr "" + +msgid "" +":gh:`137017`: Fix :obj:`threading.Thread.is_alive` to remain ``True`` until " +"the underlying OS thread is fully cleaned up. This avoids false negatives in " +"edge cases involving thread monitoring or premature :obj:`threading.Thread." +"is_alive` calls." +msgstr "" + +msgid "" +":gh:`137273`: Fix debug assertion failure in :func:`locale.setlocale` on " +"Windows." +msgstr "" + +msgid "" +":gh:`137239`: :mod:`heapq`: Update :data:`!heapq.__all__` with ``*_max`` " +"functions." +msgstr "" + +msgid "" +":gh:`81325`: :class:`tarfile.TarFile` now accepts a :term:`path-like ` when working on a tar archive. (Contributed by Alexander " +"Enrique Urieles Nieto in :gh:`81325`.)" +msgstr "" + +msgid "" +":gh:`137185`: Fix a potential async-signal-safety issue in :mod:" +"`faulthandler` when printing C stack traces." +msgstr "" + +msgid "" +":gh:`136914`: Fix retrieval of :attr:`doctest.DocTest.lineno` for objects " +"decorated with :func:`functools.cache` or :class:`functools.cached_property`." +msgstr "" + +msgid "" +":gh:`136912`: :func:`hmac.digest` now properly handles large keys and " +"messages by falling back to the pure Python implementation when necessary. " +"Patch by Bénédikt Tran." +msgstr "" + +msgid "" +":gh:`83424`: Allows creating a :class:`ctypes.CDLL` without name when " +"passing a handle as an argument." +msgstr "" + +msgid "" +":gh:`136234`: Fix :meth:`asyncio.WriteTransport.writelines` to be robust to " +"connection failure, by using the same behavior as :meth:`~asyncio." +"WriteTransport.write`." +msgstr "" + +msgid ":gh:`136507`: Fix mimetypes CLI to handle multiple file parameters." +msgstr "" + +msgid "" +":gh:`135386`: Fix opening a :mod:`dbm.sqlite3` database for reading from " +"read-only file or directory." +msgstr "" + +msgid "" +":gh:`135444`: Fix :meth:`asyncio.DatagramTransport.sendto` to account for " +"datagram header size when data cannot be sent." +msgstr "" + +msgid "" +":gh:`126631`: Fix :mod:`multiprocessing` ``forkserver`` bug which prevented " +"``__main__`` from being preloaded." +msgstr "" + +msgid "" +":gh:`134698`: Fix a crash when calling methods of :class:`ssl.SSLContext` " +"or :class:`ssl.SSLSocket` across multiple threads." +msgstr "" + +msgid "" +":gh:`132551`: Make :class:`io.BytesIO` safe in :term:`free-threaded ` build." +msgstr "" + +msgid "" +":gh:`118981`: Fix potential hang in ``multiprocessing.popen_spawn_posix`` " +"that can happen when the child proc dies early by closing the child fds " +"right away." +msgstr "" + +msgid "" +":gh:`78319`: UTF8 support for the IMAP APPEND command has been made RFC " +"compliant." +msgstr "" + +msgid "" +":issue:`38735`: Fix failure when importing a module from the root directory " +"on unix-like platforms with sys.pycache_prefix set." +msgstr "" + +msgid "" +":issue:`41839`: Allow negative priority values from :func:`os." +"sched_get_priority_min` and :func:`os.sched_get_priority_max` functions." +msgstr "" + +msgid "IDLE" +msgstr "" + +msgid "" +":gh:`139742`: Colorize t-string prefixes for template strings in IDLE, as " +"done for f-string prefixes." +msgstr "" + +msgid "Core and Builtins" +msgstr "" + +msgid "" +":gh:`139748`: Fix reference leaks in error branches of functions accepting " +"path strings or bytes such as :func:`compile` and :func:`os.system`. Patch " +"by Bénédikt Tran." +msgstr "" + +msgid "" +":gh:`139516`: Fix lambda colon erroneously start format spec in f-string in " +"tokenizer." +msgstr "" + +msgid "" +":gh:`138558`: Fix handling of unusual t-string annotations in annotationlib. " +"Patch by Dave Peck." +msgstr "" + +msgid "" +":gh:`134466`: Don't run PyREPL in a degraded environment where setting " +"termios attributes is not allowed." +msgstr "" + +msgid "" +":gh:`105487`: Remove non-existent :meth:`~object.__copy__`, :meth:`~object." +"__deepcopy__`, and :attr:`~type.__bases__` from the :meth:`~object.__dir__` " +"entries of :class:`types.GenericAlias`." +msgstr "" + +msgid "" +":gh:`69605`: Fix some standard library submodules missing from the :term:" +"`REPL` auto-completion of imports." +msgstr "" + +msgid "" +":gh:`116738`: Make :mod:`cProfile` thread-safe on the :term:`free threaded " +"` build." +msgstr "" + +msgid "" +":gh:`138004`: On Solaris/Illumos platforms, thread names are now encoded as " +"ASCII to avoid errors on systems (e.g. OpenIndiana) that don't support non-" +"ASCII names." +msgstr "" + +msgid "" +":gh:`137433`: Fix a potential deadlock in the :term:`free threading` build " +"when daemon threads enable or disable profiling or tracing while the main " +"thread is shutting down the interpreter." +msgstr "" + +msgid "" +":gh:`137400`: Fix a crash in the :term:`free threading` build when disabling " +"profiling or tracing across all threads with :c:func:" +"`PyEval_SetProfileAllThreads` or :c:func:`PyEval_SetTraceAllThreads` or " +"their Python equivalents :func:`threading.settrace_all_threads` and :func:" +"`threading.setprofile_all_threads`." +msgstr "" + +msgid "" +":gh:`58124`: Fix name of the Python encoding in Unicode errors of the code " +"page codec: use \"cp65000\" and \"cp65001\" instead of \"CP_UTF7\" and " +"\"CP_UTF8\" which are not valid Python code names. Patch by Victor Stinner." +msgstr "" + +msgid "" +":gh:`128640`: Fix a crash when using threads inside of a subinterpreter." +msgstr "" + +msgid "Build" +msgstr "" + +msgid "" +":gh:`138489`: When cross-compiling for WASI by ``build_wasm`` or " +"``build_emscripten``, the ``build-details.json`` step is now included in the " +"build process, just like with native builds." +msgstr "" + +msgid "" +"This fixes the ``libinstall`` task which requires the ``build-details.json`` " +"file during the process." +msgstr "" + +msgid "" +":gh:`123681`: Check the ``strftime()`` behavior at runtime instead of at the " +"compile time to support cross-compiling. Remove the internal macro " +"``_Py_NORMALIZE_CENTURY``." +msgstr "" + +msgid "Python 3.14.0 final" +msgstr "" + +msgid "*Release date: 2025-10-07*" +msgstr "" + msgid "macOS" msgstr "" @@ -39,9 +423,6 @@ msgstr "" msgid "Windows" msgstr "" -msgid "Tools/Demos" -msgstr "" - msgid "" ":gh:`139330`: SBOM generation tool didn't cross-check the version and " "checksum values against the ``Modules/expat/refresh.sh`` script, leading to " @@ -59,9 +440,6 @@ msgid "" "subdirectory of the ``Apple`` folder." msgstr "" -msgid "Security" -msgstr "" - msgid "" ":gh:`139400`: :mod:`xml.parsers.expat`: Make sure that parent Expat parsers " "are only garbage-collected once they are no longer referenced by subparsers " @@ -69,9 +447,6 @@ msgid "" "Patch by Sebastian Pipping." msgstr "" -msgid "Library" -msgstr "" - msgid ":gh:`139312`: Upgrade bundled libexpat to 2.7.3" msgstr "" @@ -178,9 +553,6 @@ msgid "" "implement in :term:`repl`." msgstr "" -msgid "Core and Builtins" -msgstr "" - msgid "" ":gh:`71810`: Raise :exc:`OverflowError` for ``(-1).to_bytes()`` for signed " "conversions when bytes count is zero. Patch by Sergey B Kirpichev." @@ -309,14 +681,6 @@ msgid "" ":gh:`136155`: We are now checking for fatal errors in EPUB builds in CI." msgstr "" -msgid "" -":gh:`137400`: Fix a crash in the :term:`free threading` build when disabling " -"profiling or tracing across all threads with :c:func:" -"`PyEval_SetProfileAllThreads` or :c:func:`PyEval_SetTraceAllThreads` or " -"their Python equivalents :func:`threading.settrace_all_threads` and :func:" -"`threading.setprofile_all_threads`." -msgstr "" - msgid "" ":gh:`137314`: Fixed a regression where raw f-strings incorrectly interpreted " "escape sequences in format specifications. Raw f-strings now properly " @@ -359,9 +723,6 @@ msgid "" "prevent stack overflow crashes on macOS." msgstr "" -msgid "Build" -msgstr "" - msgid ":gh:`132339`: Add support for OpenSSL 3.5." msgstr "" @@ -551,9 +912,6 @@ msgid "" "instructions around how to do WASI builds in the devguide." msgstr "" -msgid "Tests" -msgstr "" - msgid "" ":gh:`135966`: The iOS testbed now handles the ``app_packages`` folder as a " "site directory." @@ -2219,9 +2577,6 @@ msgid "" "add_type`. Patch by Hugo van Kemenade." msgstr "" -msgid "IDLE" -msgstr "" - msgid ":gh:`112936`: fix IDLE: no Shell menu item in single-process mode." msgstr "" @@ -7962,9 +8317,9 @@ msgid "" msgstr "" msgid "" -":gh:`122088`: :func:`@warnings.deprecated ` now copies " -"the coroutine status of functions and methods so that :func:`inspect." -"iscoroutinefunction` returns the correct result." +":gh:`122088`: :deco:`warnings.deprecated` now copies the coroutine status of " +"functions and methods so that :func:`inspect.iscoroutinefunction` returns " +"the correct result." msgstr "" msgid "" @@ -27442,10 +27797,10 @@ msgid "" msgstr "" msgid "" -":gh:`91215`: For :func:`@dataclass `, add " -"*weakref_slot*. The new parameter defaults to ``False``. If true, and if " -"``slots=True``, add a slot named ``\"__weakref__\"``, which will allow " -"instances to be weakref'd. Contributed by Eric V. Smith" +":gh:`91215`: For :deco:`~dataclasses.dataclass`, add *weakref_slot*. The new " +"parameter defaults to ``False``. If true, and if ``slots=True``, add a slot " +"named ``\"__weakref__\"``, which will allow instances to be weakref'd. " +"Contributed by Eric V. Smith" msgstr "" msgid ":gh:`85984`: New function os.login_tty() for Unix." @@ -34106,11 +34461,11 @@ msgid "" msgstr "" msgid "" -":issue:`43216`: Remove the :func:`@asyncio.coroutine ` :" -"term:`decorator` enabling legacy generator-based coroutines to be compatible " -"with async/await code; remove :class:`asyncio.coroutines.CoroWrapper` used " -"for wrapping legacy coroutine objects in the debug mode. The decorator has " -"been deprecated since Python 3.8 and the removal was initially scheduled for " +":issue:`43216`: Remove the :deco:`asyncio.coroutine` :term:`decorator` " +"enabling legacy generator-based coroutines to be compatible with async/await " +"code; remove :class:`asyncio.coroutines.CoroWrapper` used for wrapping " +"legacy coroutine objects in the debug mode. The decorator has been " +"deprecated since Python 3.8 and the removal was initially scheduled for " "Python 3.10. Patch by Illia Volochii." msgstr "" @@ -35531,11 +35886,10 @@ msgid "" msgstr "" msgid "" -":issue:`43682`: Static methods (:func:`@staticmethod `) and " -"class methods (:func:`@classmethod `) now inherit the method " -"attributes (``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, " -"``__annotations__``) and have a new ``__wrapped__`` attribute. Patch by " -"Victor Stinner." +":issue:`43682`: Static methods (:deco:`staticmethod`) and class methods (:" +"deco:`classmethod`) now inherit the method attributes (``__module__``, " +"``__name__``, ``__qualname__``, ``__doc__``, ``__annotations__``) and have a " +"new ``__wrapped__`` attribute. Patch by Victor Stinner." msgstr "" msgid "" @@ -35560,8 +35914,8 @@ msgid "" msgstr "" msgid "" -":issue:`43682`: Static methods (:func:`@staticmethod `) are " -"now callable as regular functions. Patch by Victor Stinner." +":issue:`43682`: Static methods (:deco:`staticmethod`) are now callable as " +"regular functions. Patch by Victor Stinner." msgstr "" msgid "" From 8021ddcd6612d9522e15c892278ee24a2069161f Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Sat, 11 Oct 2025 15:09:47 +0000 Subject: [PATCH 29/39] Update translation from Transifex --- library/crypt.po | 6 +-- library/signal.po | 14 +++++- library/typing.po | 6 +-- library/zlib.po | 100 +++++++++++++++++++++++++++++++++++++++--- reference/grammar.po | 2 +- sphinx.po | 20 +-------- using/configure.po | 65 ++++++++++++++++++++++++--- whatsnew/3.13.po | 7 +-- whatsnew/changelog.po | 64 ++++++++++++++++++++++++++- 9 files changed, 240 insertions(+), 44 deletions(-) diff --git a/library/crypt.po b/library/crypt.po index e5de905..7f56d57 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -30,8 +30,8 @@ msgstr "" msgid "" "Applications can use the :mod:`hashlib` module from the standard library. " "Other possible replacements are third-party libraries from PyPI: :pypi:" -"`legacycrypt`, :pypi:`bcrypt`, :pypi:`argon2-cffi`, or :pypi:`passlib`. " -"These are not supported or maintained by the Python core team." +"`legacycrypt`, :pypi:`bcrypt`, or :pypi:`argon2-cffi`. These are not " +"supported or maintained by the Python core team." msgstr "" msgid "" diff --git a/library/signal.po b/library/signal.po index e0c9323..8563019 100644 --- a/library/signal.po +++ b/library/signal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -208,9 +208,18 @@ msgstr "" msgid "Default action is to ignore the signal." msgstr "" +msgid "Profiling timer expired." +msgstr "" + +msgid "Terminal quit signal." +msgstr "" + msgid "Segmentation fault: invalid memory reference." msgstr "" +msgid "Stop executing (cannot be caught or ignored)." +msgstr "" + msgid "" "Stack fault on coprocessor. The Linux kernel does not raise this signal: it " "can only be raised in user space." @@ -230,6 +239,9 @@ msgstr "" msgid "User-defined signal 2." msgstr "" +msgid "Virtual timer expired." +msgstr "" + msgid "Window resize signal." msgstr "" diff --git a/library/typing.po b/library/typing.po index f5beb68..f44ddfc 100644 --- a/library/typing.po +++ b/library/typing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -2710,7 +2710,7 @@ msgid "" "'Alias'" msgstr "" -msgid "The module in which the type alias was defined::" +msgid "The name of the module in which the type alias was defined::" msgstr "" msgid "" @@ -2934,7 +2934,7 @@ msgid "" "runtime" msgstr "" -msgid "The module in which the new type is defined." +msgid "The name of the module in which the new type is defined." msgstr "" msgid "The name of the new type." diff --git a/library/zlib.po b/library/zlib.po index 84d3cb8..c1adf00 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -33,8 +33,8 @@ msgstr "" msgid "" "zlib's functions have many options and often need to be used in a particular " "order. This documentation doesn't attempt to cover all of the permutations; " -"consult the zlib manual at http://www.zlib.net/manual.html for authoritative " -"information." +"consult the `zlib manual `_ for " +"authoritative information." msgstr "" msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." @@ -354,6 +354,96 @@ msgid "" "objects." msgstr "" +msgid "" +"The following constants are available to configure compression and " +"decompression behavior:" +msgstr "" + +msgid "The deflate compression method." +msgstr "" + +msgid "" +"The maximum window size, expressed as a power of 2. For example, if :const:`!" +"MAX_WBITS` is ``15`` it results in a window size of ``32 KiB``." +msgstr "" + +msgid "The default memory level for compression objects." +msgstr "" + +msgid "The default buffer size for decompression operations." +msgstr "" + +msgid "Compression level ``0``." +msgstr "" + +msgid "Compression level ``1``." +msgstr "" + +msgid "Compression level ``9``." +msgstr "" + +msgid "Default compression level (``-1``)." +msgstr "" + +msgid "Default compression strategy, for normal data." +msgstr "" + +msgid "Compression strategy for data produced by a filter (or predictor)." +msgstr "" + +msgid "Compression strategy that forces Huffman coding only." +msgstr "" + +msgid "" +"Compression strategy that limits match distances to one (run-length " +"encoding)." +msgstr "" + +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.0.1 or " +"greater." +msgstr "" + +msgid "Compression strategy that prevents the use of dynamic Huffman codes." +msgstr "" + +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.2.2 or " +"greater." +msgstr "" + +msgid "Flush mode ``0``. No special flushing behavior." +msgstr "" + +msgid "Flush mode ``1``. Flush as much output as possible." +msgstr "" + +msgid "" +"Flush mode ``2``. All output is flushed and the output is aligned to a byte " +"boundary." +msgstr "" + +msgid "" +"Flush mode ``3``. All output is flushed and the compression state is reset." +msgstr "" + +msgid "" +"Flush mode ``4``. All pending input is processed, no more input is expected." +msgstr "" + +msgid "Flush mode ``5``. A deflate block is completed and emitted." +msgstr "" + +msgid "" +"Flush mode ``6``, for inflate operations. Instructs inflate to return when " +"it gets to the next deflate block boundary." +msgstr "" + +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.3.4 or " +"greater." +msgstr "" + msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" @@ -386,13 +476,13 @@ msgstr "" msgid "Reading and writing :program:`gzip`\\ -format files." msgstr "" -msgid "http://www.zlib.net" +msgid "https://www.zlib.net" msgstr "" msgid "The zlib library home page." msgstr "" -msgid "http://www.zlib.net/manual.html" +msgid "https://www.zlib.net/manual.html" msgstr "" msgid "" diff --git a/reference/grammar.po b/reference/grammar.po index 93c743c..df8dbff 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-21 14:12+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/sphinx.po b/sphinx.po index cb66b84..230f652 100644 --- a/sphinx.po +++ b/sphinx.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -120,24 +120,6 @@ msgid "" "for file sizes." msgstr "" -msgid "Unpacking" -msgstr "" - -msgid "" -"Unix users should download the .tar.bz2 archives; these are bzipped tar\n" -"archives and can be handled in the usual way using tar and the bzip2\n" -"program. The Info-ZIP unzip " -"program can be\n" -"used to handle the ZIP archives if desired. The .tar.bz2 archives provide " -"the\n" -"best compression and fastest download times." -msgstr "" - -msgid "" -"Windows users can use the ZIP archives since those are customary on that\n" -"platform. These are created on Unix using the Info-ZIP zip program." -msgstr "" - msgid "Problems" msgstr "" diff --git a/using/configure.po b/using/configure.po index 64b4ce6..fce7b39 100644 --- a/using/configure.po +++ b/using/configure.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -49,15 +49,23 @@ msgstr "" msgid "Support for threads." msgstr "" +msgid "To build optional modules:" +msgstr "" + +msgid "`libbz2 `_ for the :mod:`bz2` module." +msgstr "" + msgid "" -"OpenSSL 1.1.1 is the minimum version and OpenSSL 3.0.18 is the recommended " -"minimum version for the :mod:`ssl` and :mod:`hashlib` extension modules." +"`libb2 `_ (:ref:`BLAKE2 `), " +"used by :mod:`hashlib` module." msgstr "" -msgid "SQLite 3.15.2 for the :mod:`sqlite3` extension module." +msgid "" +"`libffi `_ 3.3.0 is the recommended minimum " +"version for the :mod:`ctypes` module." msgstr "" -msgid "Tcl/Tk 8.5.12 for the :mod:`tkinter` module." +msgid "``liblzma``, for the :mod:`lzma` module." msgstr "" msgid "" @@ -65,6 +73,53 @@ msgid "" "the :mod:`decimal` module." msgstr "" +msgid "``libncurses`` or ``libncursesw``, for the :mod:`curses` module." +msgstr "" + +msgid "``libpanel`` or ``libpanelw``, for the :mod:`curses.panel` module." +msgstr "" + +msgid "" +"`libreadline `_ or " +"`libedit `_ for the :mod:`readline` " +"module." +msgstr "" + +msgid "" +"`libuuid `_, for the :mod:`uuid` module." +msgstr "" + +msgid "" +"`OpenSSL `_ 1.1.1 is the minimum version and " +"OpenSSL 3.0.18 is the recommended minimum version for the :mod:`ssl` and :" +"mod:`hashlib` extension modules." +msgstr "" + +msgid "" +"`SQLite `_ 3.15.2 for the :mod:`sqlite3` extension " +"module." +msgstr "" + +msgid "" +"`Tcl/Tk `_ 8.5.12 for the :mod:`tkinter` module." +msgstr "" + +msgid "" +"`zlib `_ 1.1.4 is the reccomended minimum version for " +"the :mod:`zlib` module." +msgstr "" + +msgid "" +"`zstd `_ 1.4.5 is the minimum version for " +"the :mod:`compression.zstd` module." +msgstr "" + +msgid "" +"For a full list of dependencies required to build all modules and how to " +"install them, see the `devguide `_." +msgstr "" + msgid "" "Autoconf 2.72 and aclocal 1.16.5 are required to regenerate the :file:" "`configure` script." diff --git a/whatsnew/3.13.po b/whatsnew/3.13.po index f34105d..bd12403 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1926,11 +1926,6 @@ msgid "" ":pypi:`bcrypt`: Modern password hashing for your software and your servers." msgstr "" -msgid "" -":pypi:`passlib`: Comprehensive password hashing framework supporting over 30 " -"schemes." -msgstr "" - msgid ":pypi:`argon2-cffi`: The secure Argon2 password hashing algorithm." msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 4dc89d3..e683b04 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -72,6 +72,27 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`139894`: Fix incorrect sharing of current task with the child process " +"while forking in :mod:`asyncio`. Patch by Kumar Aditya." +msgstr "" + +msgid "" +":gh:`139845`: Fix to not print KeyboardInterrupt twice in default asyncio " +"REPL." +msgstr "" + +msgid "" +":gh:`139783`: Fix :func:`inspect.getsourcelines` for the case when a " +"decorator is followed by a comment or an empty line." +msgstr "" + +msgid "" +":gh:`139809`: Prevent premature colorization of subparser ``prog`` in :meth:" +"`argparse.ArgumentParser.add_subparsers` to respect color environment " +"variable changes after parser creation." +msgstr "" + msgid "" ":gh:`139736`: Fix excessive indentation in the default :mod:`argparse` :" "class:`!HelpFormatter`. Patch by Alexander Edland." @@ -84,11 +105,27 @@ msgid "" "request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." msgstr "" +msgid "" +":gh:`139391`: Fix an issue when, on non-Windows platforms, it was not " +"possible to gracefully exit a ``python -m asyncio`` process suspended by " +"Ctrl+Z and later resumed by :manpage:`fg` other than with :manpage:`kill`." +msgstr "" + +msgid "" +":gh:`139289`: Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and " +"restore the existing completer after importing :mod:`rlcompleter`." +msgstr "" + msgid "" ":gh:`139210`: Fix use-after-free when reporting unknown event in :func:`xml." "etree.ElementTree.iterparse`. Patch by Ken Jin." msgstr "" +msgid "" +":gh:`138860`: Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock " +"in subprocess." +msgstr "" + msgid "" ":gh:`112729`: Fix crash when calling :func:`concurrent.interpreters.create` " "when the process is out of memory." @@ -105,6 +142,16 @@ msgid "" "module did not have ``__all__``." msgstr "" +msgid "" +":gh:`139065`: Fix trailing space before a wrapped long word if the line " +"length is exactly *width* in :mod:`textwrap`." +msgstr "" + +msgid "" +":gh:`139001`: Fix race condition in :class:`pathlib.Path` on the internal " +"``_raw_paths`` field." +msgstr "" + msgid "" ":gh:`138813`: :class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to " "``None`` instead of a shared dictionary." @@ -310,6 +357,11 @@ msgstr "" msgid "IDLE" msgstr "" +msgid "" +":gh:`96491`: Deduplicate version number in IDLE shell title bar after saving " +"to a file." +msgstr "" + msgid "" ":gh:`139742`: Colorize t-string prefixes for template strings in IDLE, as " "done for f-string prefixes." @@ -329,6 +381,11 @@ msgid "" "tokenizer." msgstr "" +msgid "" +":gh:`116738`: Make :mod:`mmap` thread-safe on the :term:`free threaded ` build." +msgstr "" + msgid "" ":gh:`138558`: Fix handling of unusual t-string annotations in annotationlib. " "Patch by Dave Peck." @@ -381,6 +438,11 @@ msgid "" "\"CP_UTF8\" which are not valid Python code names. Patch by Victor Stinner." msgstr "" +msgid "" +":gh:`133400`: Fixed Ctrl+D (^D) behavior in _pyrepl module to match old " +"pre-3.13 REPL behavior." +msgstr "" + msgid "" ":gh:`128640`: Fix a crash when using threads inside of a subinterpreter." msgstr "" From acb8d1c92668301c54e27609b91491defac50d19 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Mon, 13 Oct 2025 15:13:09 +0000 Subject: [PATCH 30/39] Update translation from Transifex --- c-api/object.po | 7 ++++++- c-api/typeobj.po | 4 ++-- library/mmap.po | 2 +- library/os.po | 2 +- library/pprint.po | 5 +---- library/signal.po | 13 ++++++------- using/cmdline.po | 6 +++--- whatsnew/changelog.po | 19 ++++++++++++++++++- 8 files changed, 38 insertions(+), 20 deletions(-) diff --git a/c-api/object.po b/c-api/object.po index f0bcb95..ebdeca1 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -603,6 +603,11 @@ msgstr "" msgid "Clear the managed dictionary of *obj*." msgstr "" +msgid "" +"This function must only be called in a clear function of the type which has " +"the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." +msgstr "" + msgid "" "Enable `deferred reference counting `_ on *obj*, if supported by the runtime. In " diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 6abf6c9..33516b8 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -2245,7 +2245,7 @@ msgstr "" msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" -"`~PyTypeObject.tp_flags` field, the traverse function must call :c:func:" +"`~PyTypeObject.tp_flags` field, the clear function must call :c:func:" "`PyObject_ClearManagedDict` like this::" msgstr "" diff --git a/library/mmap.po b/library/mmap.po index 2c833c6..aa6a6b9 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-22 14:43+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/os.po b/library/os.po index 210b623..33275a2 100644 --- a/library/os.po +++ b/library/os.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-22 14:43+0000\n" +"POT-Creation-Date: 2025-10-11 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pprint.po b/library/pprint.po index 8eef769..2d7a021 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -39,9 +39,6 @@ msgid "" "adjustable by the *width* parameter defaulting to 80 characters." msgstr "" -msgid "Dictionaries are sorted by key before the display is computed." -msgstr "" - msgid "Added support for pretty-printing :class:`types.SimpleNamespace`." msgstr "" diff --git a/library/signal.po b/library/signal.po index 8563019..4fa11e1 100644 --- a/library/signal.po +++ b/library/signal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -249,8 +249,8 @@ msgid "" "All the signal numbers are defined symbolically. For example, the hangup " "signal is defined as :const:`signal.SIGHUP`; the variable names are " "identical to the names used in C programs, as found in ````. The " -"Unix man page for ':c:func:`signal`' lists the existing signals (on some " -"systems this is :manpage:`signal(2)`, on others the list is in :manpage:" +"Unix man page for '``signal``' lists the existing signals (on some systems " +"this is :manpage:`signal(2)`, on others the list is in :manpage:" "`signal(7)`). Note that not all systems define the same set of signal names; " "only those names defined by the system are defined by this module." msgstr "" @@ -615,10 +615,9 @@ msgid "" msgstr "" msgid "" -"The return value is an object representing the data contained in the :c:type:" -"`siginfo_t` structure, namely: :attr:`si_signo`, :attr:`si_code`, :attr:" -"`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:" -"`si_band`." +"The return value is an object representing the data contained in the " +"``siginfo_t`` structure, namely: ``si_signo``, ``si_code``, ``si_errno``, " +"``si_pid``, ``si_uid``, ``si_status``, ``si_band``." msgstr "" msgid "See the man page :manpage:`sigwaitinfo(2)` for further information." diff --git a/using/cmdline.po b/using/cmdline.po index c8f73f5..01b6351 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1329,8 +1329,8 @@ msgstr "" msgid "" "If this variable is set to any value, the interpreter will not attempt to " -"load the Python-based :term:`REPL` that requires :mod:`curses` and :mod:" -"`readline`, and will instead use the traditional parser-based :term:`REPL`." +"load the Python-based :term:`REPL` that requires :mod:`readline`, and will " +"instead use the traditional parser-based :term:`REPL`." msgstr "" msgid "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index e683b04..5156058 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-13 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -72,6 +72,13 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`139905`: Add suggestion to error message for :class:`typing.Generic` " +"subclasses when ``cls.__parameters__`` is missing due to a parent class " +"failing to call :meth:`super().__init_subclass__() ` in its ``__init_subclass__``." +msgstr "" + msgid "" ":gh:`139894`: Fix incorrect sharing of current task with the child process " "while forking in :mod:`asyncio`. Patch by Kumar Aditya." @@ -328,6 +335,11 @@ msgid "" "or :class:`ssl.SSLSocket` across multiple threads." msgstr "" +msgid "" +":gh:`127081`: Fix libc thread safety issues with :mod:`dbm` by performing " +"stateful operations in critical sections." +msgstr "" + msgid "" ":gh:`132551`: Make :class:`io.BytesIO` safe in :term:`free-threaded ` build." @@ -370,6 +382,11 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`139988`: Fix a memory leak when failing to create a :class:`~typing." +"Union` type. Patch by Bénédikt Tran." +msgstr "" + msgid "" ":gh:`139748`: Fix reference leaks in error branches of functions accepting " "path strings or bytes such as :func:`compile` and :func:`os.system`. Patch " From 374f65f015c99046a5c371cd69c8b9edc6ace7f8 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Wed, 15 Oct 2025 15:10:24 +0000 Subject: [PATCH 31/39] Update translation from Transifex --- howto/a-conceptual-overview-of-asyncio.po | 72 +++++++++++------------ library/cmath.po | 4 +- library/http.po | 6 +- library/smtplib.po | 72 +++++++++++++++-------- library/stdtypes.po | 23 ++++++-- library/time.po | 6 +- library/turtle.po | 44 +++++++++++--- library/unicodedata.po | 2 +- reference/expressions.po | 7 ++- using/windows.po | 49 ++++++--------- whatsnew/changelog.po | 47 +++++++++++++-- 11 files changed, 214 insertions(+), 118 deletions(-) diff --git a/howto/a-conceptual-overview-of-asyncio.po b/howto/a-conceptual-overview-of-asyncio.po index 122c15b..83d6a0d 100644 --- a/howto/a-conceptual-overview-of-asyncio.po +++ b/howto/a-conceptual-overview-of-asyncio.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -28,15 +28,15 @@ msgid "" msgstr "" msgid "" -"You might be curious about some key :mod:`!asyncio` concepts. You'll be " -"comfortably able to answer these questions by the end of this article:" +"You might be curious about some key :mod:`!asyncio` concepts. By the end of " +"this article, you'll be able to comfortably answer these questions:" msgstr "" msgid "What's happening behind the scenes when an object is awaited?" msgstr "" msgid "" -"How does :mod:`!asyncio` differentiate between a task which doesn't need CPU-" +"How does :mod:`!asyncio` differentiate between a task which doesn't need CPU " "time (such as a network request or file read) as opposed to a task that does " "(such as computing n-factorial)?" msgstr "" @@ -68,7 +68,7 @@ msgstr "" msgid "" "In part 1, we'll cover the main, high-level building blocks of :mod:`!" -"asyncio`: the event loop, coroutine functions, coroutine objects, tasks and " +"asyncio`: the event loop, coroutine functions, coroutine objects, tasks, and " "``await``." msgstr "" @@ -92,7 +92,7 @@ msgid "" "event loop will then select another job from its pool and invoke it. You can " "*roughly* think of the collection of jobs as a queue: jobs are added and " "then processed one at a time, generally (but not always) in order. This " -"process repeats indefinitely with the event loop cycling endlessly onwards. " +"process repeats indefinitely, with the event loop cycling endlessly onwards. " "If there are no more jobs pending execution, the event loop is smart enough " "to rest and avoid needlessly wasting CPU cycles, and will come back when " "there's more work to be done." @@ -357,7 +357,7 @@ msgstr "" msgid "" "Generally speaking, when the awaited task finishes (``dig_the_hole_task``), " "the original task or coroutine (``plant_a_tree()``) is added back to the " -"event loops to-do list to be resumed." +"event loop's to-do list to be resumed." msgstr "" msgid "" @@ -395,7 +395,7 @@ msgstr "" msgid "" "The first statement in the coroutine ``main()`` creates ``task_b`` and " "schedules it for execution via the event loop. Then, ``coro_a()`` is " -"repeatedly awaited. Control never cedes to the event loop which is why we " +"repeatedly awaited. Control never cedes to the event loop, which is why we " "see the output of all three ``coro_a()`` invocations before ``coro_b()``'s " "output:" msgstr "" @@ -426,18 +426,18 @@ msgid "" "This behavior of ``await coroutine`` can trip a lot of people up! That " "example highlights how using only ``await coroutine`` could unintentionally " "hog control from other tasks and effectively stall the event loop. :func:" -"`asyncio.run` can help you detect such occurences via the ``debug=True`` " -"flag which accordingly enables :ref:`debug mode `. Among " -"other things, it will log any coroutines that monopolize execution for 100ms " -"or longer." +"`asyncio.run` can help you detect such occurrences via the ``debug=True`` " +"flag, which enables :ref:`debug mode `. Among other " +"things, it will log any coroutines that monopolize execution for 100ms or " +"longer." msgstr "" msgid "" "The design intentionally trades off some conceptual clarity around usage of " "``await`` for improved performance. Each time a task is awaited, control " "needs to be passed all the way up the call stack to the event loop. That " -"might sound minor, but in a large program with many ``await``'s and a deep " -"callstack that overhead can add up to a meaningful performance drag." +"might sound minor, but in a large program with many ``await`` statements and " +"a deep call stack, that overhead can add up to a meaningful performance drag." msgstr "" msgid "A conceptual overview part 2: the nuts and bolts" @@ -461,7 +461,7 @@ msgid "" "resume a coroutine. If the coroutine was paused and is now being resumed, " "the argument ``arg`` will be sent in as the return value of the ``yield`` " "statement which originally paused it. If the coroutine is being used for the " -"first time (as opposed to being resumed) ``arg`` must be ``None``." +"first time (as opposed to being resumed), ``arg`` must be ``None``." msgstr "" msgid "" @@ -493,12 +493,12 @@ msgid "" msgstr "" msgid "" -":ref:`yield `, like usual, pauses execution and returns control " -"to the caller. In the example above, the ``yield``, on line 3, is called by " +":ref:`yield `, as usual, pauses execution and returns control to " +"the caller. In the example above, the ``yield``, on line 3, is called by " "``... = await rock`` on line 11. More broadly speaking, ``await`` calls the :" "meth:`~object.__await__` method of the given object. ``await`` also does one " "more very special thing: it propagates (or \"passes along\") any ``yield``\\ " -"s it receives up the call-chain. In this case, that's back to ``... = " +"s it receives up the call chain. In this case, that's back to ``... = " "coroutine.send(None)`` on line 16." msgstr "" @@ -562,12 +562,12 @@ msgid "" msgstr "" msgid "" -"A future has a few important attributes. One is its state which can be " -"either \"pending\", \"cancelled\" or \"done\". Another is its result, which " +"A future has a few important attributes. One is its state, which can be " +"either \"pending\", \"cancelled\", or \"done\". Another is its result, which " "is set when the state transitions to done. Unlike a coroutine, a future does " "not represent the actual computation to be done; instead, it represents the " "status and result of that computation, kind of like a status light (red, " -"yellow or green) or indicator." +"yellow, or green) or indicator." msgstr "" msgid "" @@ -594,10 +594,10 @@ msgid "" msgstr "" msgid "" -"This snippet registers a few tasks with the event loop and then awaits a " -"coroutine wrapped in a task: ``async_sleep(3)``. We want that task to finish " -"only after three seconds have elapsed, but without preventing other tasks " -"from running." +"This snippet registers a few tasks with the event loop and then awaits the " +"task created by ``asyncio.create_task``, which wraps the ``async_sleep(3)`` " +"coroutine. We want that task to finish only after three seconds have " +"elapsed, but without preventing other tasks from running." msgstr "" msgid "" @@ -646,8 +646,8 @@ msgid "" msgstr "" msgid "" -"Below, we'll use a rather bare object, ``YieldToEventLoop()``, to ``yield`` " -"from ``__await__`` in order to cede control to the event loop. This is " +"Below, we use a rather bare ``YieldToEventLoop()`` object to ``yield`` from " +"its ``__await__`` method, ceding control to the event loop. This is " "effectively the same as calling ``asyncio.sleep(0)``, but this approach " "offers more clarity, not to mention it's somewhat cheating to use ``asyncio." "sleep`` when showcasing how to implement it!" @@ -659,12 +659,12 @@ msgid "" "which runs the coroutine ``_sleep_watcher(...)``, will be invoked once per " "full cycle of the event loop. On each resumption, it'll check the time and " "if not enough has elapsed, then it'll pause once again and hand control back " -"to the event loop. Eventually, enough time will have elapsed, and " -"``_sleep_watcher(...)`` will mark the future as done, and then itself finish " -"too by breaking out of the infinite ``while`` loop. Given this helper task " -"is only invoked once per cycle of the event loop, you'd be correct to note " -"that this asynchronous sleep will sleep *at least* three seconds, rather " -"than exactly three seconds. Note this is also of true of ``asyncio.sleep``." +"to the event loop. Once enough time has elapsed, ``_sleep_watcher(...)`` " +"marks the future as done and completes by exiting its infinite ``while`` " +"loop. Given this helper task is only invoked once per cycle of the event " +"loop, you'd be correct to note that this asynchronous sleep will sleep *at " +"least* three seconds, rather than exactly three seconds. Note this is also " +"true of ``asyncio.sleep``." msgstr "" msgid "" @@ -713,7 +713,7 @@ msgid "" msgstr "" msgid "" -"But, that's all for now. Hopefully you're ready to more confidently dive " -"into some async programming or check out advanced topics in the :mod:`rest " -"of the documentation `." +"But that's all for now. Hopefully you're ready to more confidently dive into " +"some async programming or check out advanced topics in the :mod:`rest of the " +"documentation `." msgstr "" diff --git a/library/cmath.po b/library/cmath.po index ba77833..627c906 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -474,7 +474,7 @@ msgstr "" msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to " -"``float('nan')``." +"``float('nan')``. See also :data:`math.nan`." msgstr "" msgid "" diff --git a/library/http.po b/library/http.po index 130c2da..40c34de 100644 --- a/library/http.po +++ b/library/http.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -668,7 +668,9 @@ msgstr "" msgid "" "Implemented RFC9110 naming for status constants. Old constant names are " -"preserved for backwards compatibility." +"preserved for backwards compatibility: ``413 REQUEST_ENTITY_TOO_LARGE``, " +"``414 REQUEST_URI_TOO_LONG``, ``416 REQUESTED_RANGE_NOT_SATISFIABLE`` and " +"``422 UNPROCESSABLE_ENTITY``." msgstr "" msgid "HTTP status category" diff --git a/library/smtplib.po b/library/smtplib.po index c12a0ff..68a107c 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -101,14 +101,14 @@ msgstr "" msgid "" "An :class:`SMTP_SSL` instance behaves exactly the same as instances of :" "class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is " -"required from the beginning of the connection and using :meth:`starttls` is " -"not appropriate. If *host* is not specified, the local host is used. If " -"*port* is zero, the standard SMTP-over-SSL port (465) is used. The optional " -"arguments *local_hostname*, *timeout* and *source_address* have the same " -"meaning as they do in the :class:`SMTP` class. *context*, also optional, " -"can contain a :class:`~ssl.SSLContext` and allows configuring various " -"aspects of the secure connection. Please read :ref:`ssl-security` for best " -"practices." +"required from the beginning of the connection and using :meth:`~SMTP." +"starttls` is not appropriate. If *host* is not specified, the local host is " +"used. If *port* is zero, the standard SMTP-over-SSL port (465) is used. The " +"optional arguments *local_hostname*, *timeout* and *source_address* have the " +"same meaning as they do in the :class:`SMTP` class. *context*, also " +"optional, can contain a :class:`~ssl.SSLContext` and allows configuring " +"various aspects of the secure connection. Please read :ref:`ssl-security` " +"for best practices." msgstr "" msgid "*context* was added." @@ -133,10 +133,10 @@ msgstr "" msgid "" "The LMTP protocol, which is very similar to ESMTP, is heavily based on the " "standard SMTP client. It's common to use Unix sockets for LMTP, so our :meth:" -"`connect` method must support that as well as a regular host:port server. " -"The optional arguments *local_hostname* and *source_address* have the same " -"meaning as they do in the :class:`SMTP` class. To specify a Unix socket, you " -"must use an absolute path for *host*, starting with a '/'." +"`~SMTP.connect` method must support that as well as a regular host:port " +"server. The optional arguments *local_hostname* and *source_address* have " +"the same meaning as they do in the :class:`SMTP` class. To specify a Unix " +"socket, you must use an absolute path for *host*, starting with a '/'." msgstr "" msgid "" @@ -168,8 +168,13 @@ msgstr "" msgid "" "Base class for all exceptions that include an SMTP error code. These " "exceptions are generated in some instances when the SMTP server returns an " -"error code. The error code is stored in the :attr:`smtp_code` attribute of " -"the error, and the :attr:`smtp_error` attribute is set to the error message." +"error code." +msgstr "" + +msgid "The error code." +msgstr "" + +msgid "The error message." msgstr "" msgid "" @@ -178,10 +183,12 @@ msgid "" "the SMTP server refused." msgstr "" +msgid "All recipient addresses refused." +msgstr "" + msgid "" -"All recipient addresses refused. The errors for each recipient are " -"accessible through the attribute :attr:`recipients`, which is a dictionary " -"of exactly the same sort as :meth:`SMTP.sendmail` returns." +"A dictionary of exactly the same sort as returned by :meth:`SMTP.sendmail` " +"containing the errors for each recipient." msgstr "" msgid "The SMTP server refused to accept the message data." @@ -456,7 +463,7 @@ msgid "SSL/TLS support is not available to your Python interpreter." msgstr "" msgid "" -"The method now supports hostname check with :attr:`SSLContext." +"The method now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indicator* (see :const:`~ssl.HAS_SNI`)." msgstr "" @@ -473,7 +480,7 @@ msgid "" "*mail_options*. ESMTP options (such as ``DSN`` commands) that should be used " "with all ``RCPT`` commands can be passed as *rcpt_options*. (If you need to " "use different ESMTP options to different recipients you have to use the low-" -"level methods such as :meth:`mail`, :meth:`rcpt` and :meth:`data` to send " +"level methods such as :meth:`!mail`, :meth:`!rcpt` and :meth:`!data` to send " "the message.)" msgstr "" @@ -518,11 +525,7 @@ msgstr "" msgid ":exc:`SMTPRecipientsRefused`" msgstr "" -msgid "" -"All recipients were refused. Nobody got the mail. The :attr:`recipients` " -"attribute of the exception object is a dictionary with information about the " -"refused recipients (like the one returned when at least one recipient was " -"accepted)." +msgid "All recipients were refused. Nobody got the mail." msgstr "" msgid ":exc:`SMTPSenderRefused`" @@ -607,6 +610,25 @@ msgid "" "documented here. For details, consult the module code." msgstr "" +msgid "Additionally, an SMTP instance has the following attributes:" +msgstr "" + +msgid "The response to the ``HELO`` command, see :meth:`helo`." +msgstr "" + +msgid "The response to the ``EHLO`` command, see :meth:`ehlo`." +msgstr "" + +msgid "" +"A boolean value indicating whether the server supports ESMTP, see :meth:" +"`ehlo`." +msgstr "" + +msgid "" +"A dictionary of the names of SMTP service extensions supported by the " +"server, see :meth:`ehlo`." +msgstr "" + msgid "SMTP Example" msgstr "" diff --git a/library/stdtypes.po b/library/stdtypes.po index 675384e..2b0599f 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -2541,6 +2541,21 @@ msgid "" "otherwise." msgstr "" +msgid "For example:" +msgstr "" + +msgid "" +">>> 'Spam, Spam, Spam'.istitle()\n" +"True\n" +">>> 'spam, spam, spam'.istitle()\n" +"False\n" +">>> 'SPAM, SPAM, SPAM'.istitle()\n" +"False" +msgstr "" + +msgid "See also :meth:`title`." +msgstr "" + msgid "" "Return ``True`` if all cased characters [4]_ in the string are uppercase and " "there is at least one cased character, ``False`` otherwise." @@ -2980,6 +2995,9 @@ msgid "" "\"They're Bill's Friends.\"" msgstr "" +msgid "See also :meth:`istitle`." +msgstr "" + msgid "" "Return a copy of the string in which each character has been mapped through " "the given translation table. The table must be an object that implements " @@ -3135,9 +3153,6 @@ msgstr "" msgid ":func:`str`" msgstr "" -msgid "For example:" -msgstr "" - msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)!s}'\n" diff --git a/library/time.po b/library/time.po index 8f2874f..b8593b7 100644 --- a/library/time.po +++ b/library/time.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -263,8 +263,8 @@ msgid "The result has the following attributes:" msgstr "" msgid "" -"*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " -"NTP daemon) or manually by the system administrator, ``False`` otherwise" +"*adjustable*: ``True`` if the clock can be set to jump forward or backward " +"in time, ``False`` otherwise. Does not refer to gradual NTP rate adjustments." msgstr "" msgid "" diff --git a/library/turtle.po b/library/turtle.po index 7c1a420..51afe8d 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1018,7 +1018,7 @@ msgstr "" msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " -"given, the maximum of pensize+4 and 2*pensize is used." +"given, the maximum of ``pensize+4`` and ``2*pensize`` is used." msgstr "" msgid "" @@ -1370,7 +1370,8 @@ msgstr "" msgid "" "Return the current pencolor as color specification string or as a tuple (see " -"example). May be used as input to another color/pencolor/fillcolor call." +"example). May be used as input to another color/pencolor/fillcolor/bgcolor " +"call." msgstr "" msgid "``pencolor(colorstring)``" @@ -1432,7 +1433,7 @@ msgstr "" msgid "" "Return the current fillcolor as color specification string, possibly in " "tuple format (see example). May be used as input to another color/pencolor/" -"fillcolor call." +"fillcolor/bgcolor call." msgstr "" msgid "``fillcolor(colorstring)``" @@ -2009,12 +2010,41 @@ msgid "" "``screen``." msgstr "" +msgid "Return or set the background color of the TurtleScreen." +msgstr "" + +msgid "``bgcolor()``" +msgstr "" + +msgid "" +"Return the current background color as color specification string or as a " +"tuple (see example). May be used as input to another color/pencolor/" +"fillcolor/bgcolor call." +msgstr "" + +msgid "``bgcolor(colorstring)``" +msgstr "" + msgid "" -"a color string or three numbers in the range 0..colormode or a 3-tuple of " -"such numbers" +"Set the background color to *colorstring*, which is a Tk color specification " +"string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -msgid "Set or return background color of the TurtleScreen." +msgid "``bgcolor((r, g, b))``" +msgstr "" + +msgid "" +"Set the background color to the RGB color represented by the tuple of *r*, " +"*g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, " +"where colormode is either 1.0 or 255 (see :func:`colormode`)." +msgstr "" + +msgid "``bgcolor(r, g, b)``" +msgstr "" + +msgid "" +"Set the background color to the RGB color represented by *r*, *g*, and *b*. " +"Each of *r*, *g*, and *b* must be in the range 0..colormode." msgstr "" msgid "" diff --git a/library/unicodedata.po b/library/unicodedata.po index df5065e..23f075f 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-25 14:15+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/reference/expressions.po b/reference/expressions.po index 32786e0..016e7e8 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1848,8 +1848,9 @@ msgid "Conditional expressions" msgstr "" msgid "" -"Conditional expressions (sometimes called a \"ternary operator\") have the " -"lowest priority of all Python operations." +"A conditional expression (sometimes called a \"ternary operator\") is an " +"alternative to the if-else statement. As it is an expression, it returns a " +"value and can appear as a sub-expression." msgstr "" msgid "" diff --git a/using/windows.po b/using/windows.po index bf987b6..7cb210d 100644 --- a/using/windows.po +++ b/using/windows.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -83,7 +83,7 @@ msgid "" "packages." msgstr "" -msgid "Python Install Manager" +msgid "Python install manager" msgstr "" msgid "Installation" @@ -142,7 +142,7 @@ msgid "" "below for more information." msgstr "" -msgid "Basic Use" +msgid "Basic use" msgstr "" msgid "" @@ -255,7 +255,7 @@ msgid "" "``pymanager exec`` forms of the command were used." msgstr "" -msgid "Command Help" +msgid "Command help" msgstr "" msgid "" @@ -284,7 +284,7 @@ msgid "" "more information about these files." msgstr "" -msgid "Listing Runtimes" +msgid "Listing runtimes" msgstr "" msgid "" @@ -338,7 +338,7 @@ msgid "" "allow additional options, and will produce legacy formatted output." msgstr "" -msgid "Installing Runtimes" +msgid "Installing runtimes" msgstr "" msgid "" @@ -386,7 +386,7 @@ msgstr "" msgid "$> py install ... [-t=|--target=] " msgstr "" -msgid "Offline Installs" +msgid "Offline installs" msgstr "" msgid "" @@ -426,7 +426,7 @@ msgid "" "without access to the internet." msgstr "" -msgid "Uninstalling Runtimes" +msgid "Uninstalling runtimes" msgstr "" msgid "$> py uninstall [-y|--yes] ..." @@ -710,7 +710,7 @@ msgid "" "``pymanager`` commands for installing and uninstalling." msgstr "" -msgid "Advanced Installation" +msgid "Advanced installation" msgstr "" msgid "" @@ -831,7 +831,7 @@ msgid "" "prevent using the Store package in this way." msgstr "" -msgid "Administrative Configuration" +msgid "Administrative configuration" msgstr "" msgid "" @@ -963,20 +963,12 @@ msgid "" "other than a Python runtime." msgstr "" -msgid "Installing Free-threaded Binaries" -msgstr "" - -msgid "(Experimental)" +msgid "Installing free-threaded binaries" msgstr "" msgid "" -"Everything described in this section is considered experimental, and should " -"be expected to change in future releases." -msgstr "" - -msgid "" -"Pre-built distributions of the experimental free-threaded build are " -"available by installing tags with the ``t`` suffix." +"Pre-built distributions of the free-threaded build are available by " +"installing tags with the ``t`` suffix." msgstr "" msgid "" @@ -1151,7 +1143,7 @@ msgid "" "The two recommended use cases for this distribution are described below." msgstr "" -msgid "Python Application" +msgid "Python application" msgstr "" msgid "" @@ -1351,7 +1343,7 @@ msgid "" "please install Python 3.12." msgstr "" -msgid "Removing the MAX_PATH Limitation" +msgid "Removing the MAX_PATH limitation" msgstr "" msgid "" @@ -1757,7 +1749,7 @@ msgstr "" msgid "Support for long paths was enabled in Python." msgstr "" -msgid "Installing Without UI" +msgid "Installing without UI" msgstr "" msgid "" @@ -2050,7 +2042,7 @@ msgid "" "" msgstr "" -msgid "Installing Without Downloading" +msgid "Installing without downloading" msgstr "" msgid "" @@ -2141,7 +2133,7 @@ msgid "" "nuget>`." msgstr "" -msgid "Python Launcher for Windows (Deprecated)" +msgid "Python launcher for Windows (deprecated)" msgstr "" msgid "" @@ -2334,9 +2326,6 @@ msgid "" "Python versions at the same time depending on the contents of the first line." msgstr "" -msgid "Shebang Lines" -msgstr "" - msgid "" "If the first line of a script file starts with ``#!``, it is known as a " "\"shebang\" line. Linux and other Unix like operating systems have native " @@ -2589,7 +2578,7 @@ msgid "" "debugging." msgstr "" -msgid "Dry Run" +msgid "Dry run" msgstr "" msgid "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 5156058..0f6580c 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-13 14:15+0000\n" +"POT-Creation-Date: 2025-10-15 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -27,6 +27,14 @@ msgstr "" msgid "*Release date: XXXX-XX-XX*" msgstr "" +msgid "Windows" +msgstr "" + +msgid "" +":gh:`139810`: Installing with ``py install 3[.x]-dev`` will now select final " +"versions as well as prereleases." +msgstr "" + msgid "Tools/Demos" msgstr "" @@ -108,7 +116,7 @@ msgstr "" msgid "" ":gh:`70765`: :mod:`http.server`: fix default handling of HTTP/0.9 requests " "in :class:`~http.server.BaseHTTPRequestHandler`. Previously, :meth:`!" -"BaseHTTPRequestHandler.parse_request`` incorrectly waited for headers in the " +"BaseHTTPRequestHandler.parse_request` incorrectly waited for headers in the " "request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." msgstr "" @@ -118,6 +126,12 @@ msgid "" "Ctrl+Z and later resumed by :manpage:`fg` other than with :manpage:`kill`." msgstr "" +msgid "" +":gh:`101828`: Fix ``'shift_jisx0213'``, ``'shift_jis_2004'``, " +"``'euc_jisx0213'`` and ``'euc_jis_2004'`` codecs truncating null chars as " +"they were treated as part of multi-character sequences." +msgstr "" + msgid "" ":gh:`139289`: Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and " "restore the existing completer after importing :mod:`rlcompleter`." @@ -164,6 +178,9 @@ msgid "" "``None`` instead of a shared dictionary." msgstr "" +msgid ":gh:`138993`: Dedent :data:`credits` text." +msgstr "" + msgid "" ":gh:`130567`: Fix possible crash in :func:`locale.strxfrm` due to a platform " "bug on macOS." @@ -335,6 +352,11 @@ msgid "" "or :class:`ssl.SSLSocket` across multiple threads." msgstr "" +msgid "" +":gh:`125996`: Fix thread safety of :class:`collections.OrderedDict`. Patch " +"by Kumar Aditya." +msgstr "" + msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`dbm` by performing " "stateful operations in critical sections." @@ -351,6 +373,11 @@ msgid "" "right away." msgstr "" +msgid "" +":gh:`102431`: Clarify constraints for \"logical\" arguments in methods of :" +"class:`decimal.Context`." +msgstr "" + msgid "" ":gh:`78319`: UTF8 support for the IMAP APPEND command has been made RFC " "compliant." @@ -382,6 +409,13 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140000`: Fix potential memory leak when a reference cycle exists " +"between an instance of :class:`typing.TypeAliasType`, :class:`typing." +"TypeVar`, :class:`typing.ParamSpec`, or :class:`typing.TypeVarTuple` and its " +"``__name__`` attribute. Patch by Mikhail Efimov." +msgstr "" + msgid "" ":gh:`139988`: Fix a memory leak when failing to create a :class:`~typing." "Union` type. Patch by Bénédikt Tran." @@ -398,6 +432,12 @@ msgid "" "tokenizer." msgstr "" +msgid "" +":gh:`139640`: Fix swallowing some syntax warnings in different modules if " +"they accidentally have the same message and are emitted from the same line. " +"Fix duplicated warnings in the ``finally`` block." +msgstr "" + msgid "" ":gh:`116738`: Make :mod:`mmap` thread-safe on the :term:`free threaded ` build." @@ -499,9 +539,6 @@ msgstr "" msgid ":gh:`139573`: Updated bundled version of OpenSSL to 3.0.18." msgstr "" -msgid "Windows" -msgstr "" - msgid "" ":gh:`139330`: SBOM generation tool didn't cross-check the version and " "checksum values against the ``Modules/expat/refresh.sh`` script, leading to " From 69d784b917cd789ffc5de0fc766ac6884346617c Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Fri, 17 Oct 2025 15:08:22 +0000 Subject: [PATCH 32/39] Update translation from Transifex --- library/importlib.po | 6 +++--- library/stdtypes.po | 4 ++-- library/tkinter.po | 6 +++--- reference/lexical_analysis.po | 6 +++--- whatsnew/3.14.po | 6 +++--- whatsnew/changelog.po | 39 +++++++++++++++++++++++++++++++---- 6 files changed, 49 insertions(+), 18 deletions(-) diff --git a/library/importlib.po b/library/importlib.po index 1892027..d02245a 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1219,8 +1219,8 @@ msgid "" "To accommodate this requirement, when running on iOS, extension module " "binaries are *not* packaged as ``.so`` files on ``sys.path``, but as " "individual standalone frameworks. To discover those frameworks, this loader " -"is be registered against the ``.fwork`` file extension, with a ``.fwork`` " -"file acting as a placeholder in the original location of the binary on ``sys." +"is registered against the ``.fwork`` file extension, with a ``.fwork`` file " +"acting as a placeholder in the original location of the binary on ``sys." "path``. The ``.fwork`` file contains the path of the actual binary in the " "``Frameworks`` folder, relative to the app bundle. To allow for resolving a " "framework-packaged binary back to the original location, the framework is " diff --git a/library/stdtypes.po b/library/stdtypes.po index 2b0599f..3e9a905 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-15 14:16+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -6440,7 +6440,7 @@ msgid "The Ellipsis Object" msgstr "" msgid "" -"This object is commonly used used to indicate that something is omitted. It " +"This object is commonly used to indicate that something is omitted. It " "supports no special operations. There is exactly one ellipsis object, " "named :const:`Ellipsis` (a built-in name). ``type(Ellipsis)()`` produces " "the :const:`Ellipsis` singleton." diff --git a/library/tkinter.po b/library/tkinter.po index d11b01a..89cd45b 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -599,8 +599,8 @@ msgid "" "Operations which are implemented as separate *commands* in Tcl (like " "``grid`` or ``destroy``) are represented as *methods* on Tkinter widget " "objects. As you'll see shortly, at other times Tcl uses what appear to be " -"method calls on widget objects, which more closely mirror what would is used " -"in Tkinter." +"method calls on widget objects, which more closely mirror what is used in " +"Tkinter." msgstr "" msgid "How do I...? What option does...?" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index a944ceb..5c114cc 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1495,8 +1495,8 @@ msgid "" msgstr "" msgid "" -"Unlike in integer literals, leading zeros are allowed in the numeric parts. " -"For example, ``077.010`` is legal, and denotes the same number as ``77.10``." +"Unlike in integer literals, leading zeros are allowed. For example, " +"``077.010`` is legal, and denotes the same number as ``77.01``." msgstr "" msgid "" diff --git a/whatsnew/3.14.po b/whatsnew/3.14.po index c61980a..bfece0b 100644 --- a/whatsnew/3.14.po +++ b/whatsnew/3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1362,7 +1362,7 @@ msgstr "" msgid "" "On Unix platforms other than macOS, :ref:`'forkserver' ` is now the the default :ref:`start method " +"start-method-forkserver>` is now the default :ref:`start method " "` for :class:`~concurrent.futures." "ProcessPoolExecutor` (replacing :ref:`'fork' `). This change does not affect Windows or macOS, where :ref:`'spawn' " @@ -1973,7 +1973,7 @@ msgstr "" msgid "" "On Unix platforms other than macOS, :ref:`'forkserver' ` is now the the default :ref:`start method " +"start-method-forkserver>` is now the default :ref:`start method " "` (replacing :ref:`'fork' `). This change does not affect Windows or macOS, where :" "ref:`'spawn' ` remains the default start " diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 0f6580c..66ef2c8 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-15 14:16+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -80,6 +80,16 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`140041`: Fix import of :mod:`ctypes` on Android and Cygwin when ABI " +"flags are present." +msgstr "" + +msgid "" +":gh:`140120`: Fixed a memory leak in :mod:`hmac` when it was using the hacl-" +"star backend. Discovered by ``@ashm-dev`` using AddressSanitizer." +msgstr "" + msgid "" ":gh:`139905`: Add suggestion to error message for :class:`typing.Generic` " "subclasses when ``cls.__parameters__`` is missing due to a parent class " @@ -186,6 +196,12 @@ msgid "" "bug on macOS." msgstr "" +msgid "" +":gh:`138859`: Fix generic type parameterization raising a :exc:`TypeError` " +"when omitting a :class:`ParamSpec` that has a default which is not a list of " +"types." +msgstr "" + msgid "" ":gh:`138779`: Support device numbers larger than ``2**63-1`` for the :attr:" "`~os.stat_result.st_rdev` field of the :class:`os.stat_result` structure." @@ -367,6 +383,11 @@ msgid "" "threading>` build." msgstr "" +msgid "" +":gh:`131788`: Make ``ResourceTracker.send`` from :mod:`multiprocessing` re-" +"entrant safe" +msgstr "" + msgid "" ":gh:`118981`: Fix potential hang in ``multiprocessing.popen_spawn_posix`` " "that can happen when the child proc dies early by closing the child fds " @@ -409,6 +430,11 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140061`: Fixing the checking of whether an object is uniquely " +"referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." +msgstr "" + msgid "" ":gh:`140000`: Fix potential memory leak when a reference cycle exists " "between an instance of :class:`typing.TypeAliasType`, :class:`typing." @@ -504,6 +530,14 @@ msgid "" ":gh:`128640`: Fix a crash when using threads inside of a subinterpreter." msgstr "" +msgid "C API" +msgstr "" + +msgid "" +":gh:`140153`: Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. " +"Patch by Victor Stinner." +msgstr "" + msgid "Build" msgstr "" @@ -831,9 +865,6 @@ msgid "" "running concurrently in threads." msgstr "" -msgid "C API" -msgstr "" - msgid "" ":gh:`137573`: Mark ``_PyOptimizer_Optimize`` as :c:macro:`Py_NO_INLINE` to " "prevent stack overflow crashes on macOS." From 4b1bca60d45f5eb26a6753742f3317b5d1f068df Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Sun, 19 Oct 2025 15:07:33 +0000 Subject: [PATCH 33/39] Update translation from Transifex --- library/codecs.po | 51 ++++++++++++++++++++++++------------------- library/ssl.po | 2 +- library/tkinter.po | 6 ++--- library/warnings.po | 23 +++++++++++++------ library/xml.po | 2 +- whatsnew/changelog.po | 20 ++++++++++++++++- 6 files changed, 69 insertions(+), 35 deletions(-) diff --git a/library/codecs.po b/library/codecs.po index b3d508d..9599270 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-19 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1028,27 +1028,34 @@ msgid "" "Unicode code point, is to store each code point as four consecutive bytes. " "There are two possibilities: store the bytes in big endian or in little " "endian order. These two encodings are called ``UTF-32-BE`` and ``UTF-32-LE`` " -"respectively. Their disadvantage is that if e.g. you use ``UTF-32-BE`` on a " -"little endian machine you will always have to swap bytes on encoding and " -"decoding. ``UTF-32`` avoids this problem: bytes will always be in natural " -"endianness. When these bytes are read by a CPU with a different endianness, " -"then bytes have to be swapped though. To be able to detect the endianness of " -"a ``UTF-16`` or ``UTF-32`` byte sequence, there's the so called BOM (\"Byte " -"Order Mark\"). This is the Unicode character ``U+FEFF``. This character can " -"be prepended to every ``UTF-16`` or ``UTF-32`` byte sequence. The byte " -"swapped version of this character (``0xFFFE``) is an illegal character that " -"may not appear in a Unicode text. So when the first character in a " -"``UTF-16`` or ``UTF-32`` byte sequence appears to be a ``U+FFFE`` the bytes " -"have to be swapped on decoding. Unfortunately the character ``U+FEFF`` had a " -"second purpose as a ``ZERO WIDTH NO-BREAK SPACE``: a character that has no " -"width and doesn't allow a word to be split. It can e.g. be used to give " -"hints to a ligature algorithm. With Unicode 4.0 using ``U+FEFF`` as a ``ZERO " -"WIDTH NO-BREAK SPACE`` has been deprecated (with ``U+2060`` (``WORD " -"JOINER``) assuming this role). Nevertheless Unicode software still must be " -"able to handle ``U+FEFF`` in both roles: as a BOM it's a device to determine " -"the storage layout of the encoded bytes, and vanishes once the byte sequence " -"has been decoded into a string; as a ``ZERO WIDTH NO-BREAK SPACE`` it's a " -"normal character that will be decoded like any other." +"respectively. Their disadvantage is that if, for example, you use ``UTF-32-" +"BE`` on a little endian machine you will always have to swap bytes on " +"encoding and decoding. Python's ``UTF-16`` and ``UTF-32`` codecs avoid this " +"problem by using the platform's native byte order when no BOM is present. " +"Python follows prevailing platform practice, so native-endian data round-" +"trips without redundant byte swapping, even though the Unicode Standard " +"defaults to big-endian when the byte order is unspecified. When these bytes " +"are read by a CPU with a different endianness, the bytes have to be swapped. " +"To be able to detect the endianness of a ``UTF-16`` or ``UTF-32`` byte " +"sequence, a BOM (\"Byte Order Mark\") is used. This is the Unicode character " +"``U+FEFF``. This character can be prepended to every ``UTF-16`` or " +"``UTF-32`` byte sequence. The byte swapped version of this character " +"(``0xFFFE``) is an illegal character that may not appear in a Unicode text. " +"When the first character of a ``UTF-16`` or ``UTF-32`` byte sequence is " +"``U+FFFE``, the bytes have to be swapped on decoding." +msgstr "" + +msgid "" +"Unfortunately the character ``U+FEFF`` had a second purpose as a ``ZERO " +"WIDTH NO-BREAK SPACE``: a character that has no width and doesn't allow a " +"word to be split. It can e.g. be used to give hints to a ligature algorithm. " +"With Unicode 4.0 using ``U+FEFF`` as a ``ZERO WIDTH NO-BREAK SPACE`` has " +"been deprecated (with ``U+2060`` (``WORD JOINER``) assuming this role). " +"Nevertheless Unicode software still must be able to handle ``U+FEFF`` in " +"both roles: as a BOM it's a device to determine the storage layout of the " +"encoded bytes, and vanishes once the byte sequence has been decoded into a " +"string; as a ``ZERO WIDTH NO-BREAK SPACE`` it's a normal character that will " +"be decoded like any other." msgstr "" msgid "" diff --git a/library/ssl.po b/library/ssl.po index 45b84da..79ff643 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-27 14:12+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/tkinter.po b/library/tkinter.po index 89cd45b..f37ed3d 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 14:15+0000\n" +"POT-Creation-Date: 2025-10-19 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1223,8 +1223,8 @@ msgid "justify" msgstr "" msgid "" -"Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " -"and ``\"fill\"``." +"Legal values are the strings: ``\"left\"``, ``\"center\"``, and " +"``\"right\"``." msgstr "" msgid "region" diff --git a/library/warnings.po b/library/warnings.po index 2b9315f..ba2b46b 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-19 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -653,12 +653,21 @@ msgstr "" msgid "" "This is a low-level interface to the functionality of :func:`warn`, passing " "in explicitly the message, category, filename and line number, and " -"optionally the module name and the registry (which should be the " -"``__warningregistry__`` dictionary of the module). The module name defaults " -"to the filename with ``.py`` stripped; if no registry is passed, the warning " -"is never suppressed. *message* must be a string and *category* a subclass " -"of :exc:`Warning` or *message* may be a :exc:`Warning` instance, in which " -"case *category* will be ignored." +"optionally other arguments. *message* must be a string and *category* a " +"subclass of :exc:`Warning` or *message* may be a :exc:`Warning` instance, in " +"which case *category* will be ignored." +msgstr "" + +msgid "" +"*module*, if supplied, should be the module name. If no module is passed, " +"the filename with ``.py`` stripped is used." +msgstr "" + +msgid "" +"*registry*, if supplied, should be the ``__warningregistry__`` dictionary of " +"the module. If no registry is passed, each warning is treated as the first " +"occurrence, that is, filter actions ``\"default\"``, ``\"module\"`` and " +"``\"once\"`` are handled as ``\"always\"``." msgstr "" msgid "" diff --git a/library/xml.po b/library/xml.po index 734475c..96723d6 100644 --- a/library/xml.po +++ b/library/xml.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-27 14:12+0000\n" +"POT-Creation-Date: 2025-10-17 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 66ef2c8..37ee30a 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 14:15+0000\n" +"POT-Creation-Date: 2025-10-19 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -80,6 +80,11 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`140272`: Fix memory leak in the :meth:`!clear` method of the :mod:`dbm." +"gnu` database." +msgstr "" + msgid "" ":gh:`140041`: Fix import of :mod:`ctypes` on Android and Cygwin when ABI " "flags are present." @@ -373,6 +378,11 @@ msgid "" "by Kumar Aditya." msgstr "" +msgid "" +":gh:`133789`: Fix unpickling of :mod:`pathlib` objects that were pickled in " +"Python 3.13." +msgstr "" + msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`dbm` by performing " "stateful operations in critical sections." @@ -430,11 +440,19 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140257`: Fix data race between interpreter_clear() and take_gil() on " +"eval_breaker during finalization with daemon threads." +msgstr "" + msgid "" ":gh:`140061`: Fixing the checking of whether an object is uniquely " "referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." msgstr "" +msgid ":gh:`140067`: Fix memory leak in sub-interpreter creation." +msgstr "" + msgid "" ":gh:`140000`: Fix potential memory leak when a reference cycle exists " "between an instance of :class:`typing.TypeAliasType`, :class:`typing." From d0bccd488e9042c6950b4c2c1a5510d2fa8859c6 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Tue, 21 Oct 2025 15:08:36 +0000 Subject: [PATCH 34/39] Update translation from Transifex --- bugs.po | 8 +++++++- faq/general.po | 4 ++-- library/gc.po | 2 +- library/glob.po | 24 +++++++++++++---------- library/resource.po | 43 +++++++++++++++++++++--------------------- library/signal.po | 5 ++++- library/typing.po | 9 +++++---- reference/datamodel.po | 11 ++++++++++- whatsnew/changelog.po | 42 ++++++++++++++++++++++++++++++++++++++++- 9 files changed, 106 insertions(+), 42 deletions(-) diff --git a/bugs.po b/bugs.po index c0a9869..7aebfee 100644 --- a/bugs.po +++ b/bugs.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -54,6 +54,12 @@ msgid "" "well." msgstr "" +msgid "" +"If the bug or suggested improvement concerns the translation of this " +"documentation, submit the report to the `translation’s repository " +"`_ instead." +msgstr "" + msgid "" "You can also open a discussion item on our `Documentation Discourse forum " "`_." diff --git a/faq/general.po b/faq/general.po index 4fb2c97..52fe066 100644 --- a/faq/general.po +++ b/faq/general.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -257,7 +257,7 @@ msgstr "" msgid "" "The standard documentation for the current stable version of Python is " -"available at https://docs.python.org/3/. PDF, plain text, and downloadable " +"available at https://docs.python.org/3/. EPUB, plain text, and downloadable " "HTML versions are also available at https://docs.python.org/3/download.html." msgstr "" diff --git a/library/gc.po b/library/gc.po index 7019d77..74e220a 100644 --- a/library/gc.po +++ b/library/gc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-29 14:15+0000\n" +"POT-Creation-Date: 2025-10-19 14:13+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/glob.po b/library/glob.po index 40ec38e..62cab9a 100644 --- a/library/glob.po +++ b/library/glob.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -25,19 +25,23 @@ msgid "**Source code:** :source:`Lib/glob.py`" msgstr "" msgid "" -"The :mod:`glob` module finds all the pathnames matching a specified pattern " -"according to the rules used by the Unix shell, although results are returned " -"in arbitrary order. No tilde expansion is done, but ``*``, ``?``, and " +"The :mod:`!glob` module finds pathnames using pattern matching rules similar " +"to the Unix shell. No tilde expansion is done, but ``*``, ``?``, and " "character ranges expressed with ``[]`` will be correctly matched. This is " "done by using the :func:`os.scandir` and :func:`fnmatch.fnmatch` functions " "in concert, and not by actually invoking a subshell." msgstr "" msgid "" -"Note that files beginning with a dot (``.``) can only be matched by patterns " -"that also start with a dot, unlike :func:`fnmatch.fnmatch` or :func:`pathlib." -"Path.glob`. (For tilde and shell variable expansion, use :func:`os.path." -"expanduser` and :func:`os.path.expandvars`.)" +"The pathnames are returned in no particular order. If you need a specific " +"order, sort the results." +msgstr "" + +msgid "" +"Files beginning with a dot (``.``) can only be matched by patterns that also " +"start with a dot, unlike :func:`fnmatch.fnmatch` or :func:`pathlib.Path." +"glob`. For tilde and shell variable expansion, use :func:`os.path." +"expanduser` and :func:`os.path.expandvars`." msgstr "" msgid "" @@ -45,7 +49,7 @@ msgid "" "``'[?]'`` matches the character ``'?'``." msgstr "" -msgid "The :mod:`glob` module defines the following functions:" +msgid "The :mod:`!glob` module defines the following functions:" msgstr "" msgid "" @@ -62,7 +66,7 @@ msgstr "" msgid "" "If *root_dir* is not ``None``, it should be a :term:`path-like object` " "specifying the root directory for searching. It has the same effect on :" -"func:`glob` as changing the current directory before calling it. If " +"func:`!glob` as changing the current directory before calling it. If " "*pathname* is relative, the result will contain paths relative to *root_dir*." msgstr "" diff --git a/library/resource.po b/library/resource.po index 4ff1318..04b4c9b 100644 --- a/library/resource.po +++ b/library/resource.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -154,9 +154,10 @@ msgstr "" msgid "" "The maximum amount of processor time (in seconds) that a process can use. If " -"this limit is exceeded, a :const:`SIGXCPU` signal is sent to the process. " -"(See the :mod:`signal` module documentation for information about how to " -"catch this signal and do something useful, e.g. flush open files to disk.)" +"this limit is exceeded, a :const:`~signal.SIGXCPU` signal is sent to the " +"process. (See the :mod:`signal` module documentation for information about " +"how to catch this signal and do something useful, e.g. flush open files to " +"disk.)" msgstr "" msgid "The maximum size of a file which the process may create." @@ -277,7 +278,7 @@ msgid "" msgstr "" msgid "" -"The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are " +"The fields :attr:`!ru_utime` and :attr:`!ru_stime` of the return value are " "floating-point values representing the amount of time spent executing in " "user mode and the amount of time spent executing in system mode, " "respectively. The remaining values are integers. Consult the :manpage:" @@ -297,7 +298,7 @@ msgstr "" msgid "``0``" msgstr "" -msgid ":attr:`ru_utime`" +msgid ":attr:`!ru_utime`" msgstr "" msgid "time in user mode (float seconds)" @@ -306,7 +307,7 @@ msgstr "" msgid "``1``" msgstr "``1``" -msgid ":attr:`ru_stime`" +msgid ":attr:`!ru_stime`" msgstr "" msgid "time in system mode (float seconds)" @@ -315,7 +316,7 @@ msgstr "" msgid "``2``" msgstr "``2``" -msgid ":attr:`ru_maxrss`" +msgid ":attr:`!ru_maxrss`" msgstr "" msgid "maximum resident set size" @@ -324,7 +325,7 @@ msgstr "" msgid "``3``" msgstr "``3``" -msgid ":attr:`ru_ixrss`" +msgid ":attr:`!ru_ixrss`" msgstr "" msgid "shared memory size" @@ -333,7 +334,7 @@ msgstr "" msgid "``4``" msgstr "``4``" -msgid ":attr:`ru_idrss`" +msgid ":attr:`!ru_idrss`" msgstr "" msgid "unshared memory size" @@ -342,7 +343,7 @@ msgstr "" msgid "``5``" msgstr "" -msgid ":attr:`ru_isrss`" +msgid ":attr:`!ru_isrss`" msgstr "" msgid "unshared stack size" @@ -351,7 +352,7 @@ msgstr "" msgid "``6``" msgstr "" -msgid ":attr:`ru_minflt`" +msgid ":attr:`!ru_minflt`" msgstr "" msgid "page faults not requiring I/O" @@ -360,7 +361,7 @@ msgstr "" msgid "``7``" msgstr "" -msgid ":attr:`ru_majflt`" +msgid ":attr:`!ru_majflt`" msgstr "" msgid "page faults requiring I/O" @@ -369,7 +370,7 @@ msgstr "" msgid "``8``" msgstr "" -msgid ":attr:`ru_nswap`" +msgid ":attr:`!ru_nswap`" msgstr "" msgid "number of swap outs" @@ -378,7 +379,7 @@ msgstr "" msgid "``9``" msgstr "" -msgid ":attr:`ru_inblock`" +msgid ":attr:`!ru_inblock`" msgstr "" msgid "block input operations" @@ -387,7 +388,7 @@ msgstr "" msgid "``10``" msgstr "" -msgid ":attr:`ru_oublock`" +msgid ":attr:`!ru_oublock`" msgstr "" msgid "block output operations" @@ -396,7 +397,7 @@ msgstr "" msgid "``11``" msgstr "" -msgid ":attr:`ru_msgsnd`" +msgid ":attr:`!ru_msgsnd`" msgstr "" msgid "messages sent" @@ -405,7 +406,7 @@ msgstr "" msgid "``12``" msgstr "" -msgid ":attr:`ru_msgrcv`" +msgid ":attr:`!ru_msgrcv`" msgstr "" msgid "messages received" @@ -414,7 +415,7 @@ msgstr "" msgid "``13``" msgstr "" -msgid ":attr:`ru_nsignals`" +msgid ":attr:`!ru_nsignals`" msgstr "" msgid "signals received" @@ -423,7 +424,7 @@ msgstr "" msgid "``14``" msgstr "" -msgid ":attr:`ru_nvcsw`" +msgid ":attr:`!ru_nvcsw`" msgstr "" msgid "voluntary context switches" @@ -432,7 +433,7 @@ msgstr "" msgid "``15``" msgstr "" -msgid ":attr:`ru_nivcsw`" +msgid ":attr:`!ru_nivcsw`" msgstr "" msgid "involuntary context switches" diff --git a/library/signal.po b/library/signal.po index 4fa11e1..2dad5f3 100644 --- a/library/signal.po +++ b/library/signal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-13 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -245,6 +245,9 @@ msgstr "" msgid "Window resize signal." msgstr "" +msgid "CPU time limit exceeded." +msgstr "" + msgid "" "All the signal numbers are defined symbolically. For example, the hangup " "signal is defined as :const:`signal.SIGHUP`; the variable names are " diff --git a/library/typing.po b/library/typing.po index f44ddfc..efd8632 100644 --- a/library/typing.po +++ b/library/typing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -3980,9 +3980,10 @@ msgid "" msgstr "" msgid "" -"The function recursively replaces all occurrences of ``Annotated[T, ...]`` " -"with ``T``, unless *include_extras* is set to ``True`` (see :class:" -"`Annotated` for more information)." +"The function recursively replaces all occurrences of ``Annotated[T, ...]``, " +"``Required[T]``, ``NotRequired[T]``, and ``ReadOnly[T]`` with ``T``, unless " +"*include_extras* is set to ``True`` (see :class:`Annotated` for more " +"information)." msgstr "" msgid "" diff --git a/reference/datamodel.po b/reference/datamodel.po index 3647df5..73d57c0 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -1159,6 +1159,12 @@ msgid "" "``(A, B, C)``." msgstr "" +msgid "" +"The single base class in the inheritance chain that is responsible for the " +"memory layout of instances. This attribute corresponds to :c:member:" +"`~PyTypeObject.tp_base` at the C level." +msgstr "" + msgid "" "The class's documentation string, or ``None`` if undefined. Not inherited by " "subclasses." @@ -4253,6 +4259,9 @@ msgstr "" msgid "__bases__ (class attribute)" msgstr "" +msgid "__base__ (class attribute)" +msgstr "" + msgid "__doc__ (class attribute)" msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 37ee30a..ac801ad 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-19 14:13+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -135,6 +135,12 @@ msgid "" "request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." msgstr "" +msgid "" +":gh:`63161`: Fix :func:`tokenize.detect_encoding`. Support non-UTF-8 shebang " +"and comments if non-UTF-8 encoding is specified. Detect decoding error for " +"non-UTF-8 encoding. Detect null bytes in source code." +msgstr "" + msgid "" ":gh:`139391`: Fix an issue when, on non-Windows platforms, it was not " "possible to gracefully exit a ``python -m asyncio`` process suspended by " @@ -196,6 +202,12 @@ msgstr "" msgid ":gh:`138993`: Dedent :data:`credits` text." msgstr "" +msgid "" +":gh:`138891`: Fix ``SyntaxError`` when ``inspect.get_annotations(f, " +"eval_str=True)`` is called on a function annotated with a :pep:`646` " +"``star_expression``" +msgstr "" + msgid "" ":gh:`130567`: Fix possible crash in :func:`locale.strxfrm` due to a platform " "bug on macOS." @@ -440,6 +452,26 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140398`: Fix memory leaks in :mod:`readline` functions :func:`~readline." +"read_init_file`, :func:`~readline.read_history_file`, :func:`~readline." +"write_history_file`, and :func:`~readline.append_history_file` when :c:func:" +"`PySys_Audit` fails." +msgstr "" + +msgid "" +":gh:`140406`: Fix memory leak when an object's :meth:`~object.__hash__` " +"method returns an object that isn't an :class:`int`." +msgstr "" + +msgid "" +":gh:`140306`: Fix memory leaks in cross-interpreter channel operations and " +"shared namespace handling." +msgstr "" + +msgid ":gh:`140301`: Fix memory leak of ``PyConfig`` in subinterpreters." +msgstr "" + msgid "" ":gh:`140257`: Fix data race between interpreter_clear() and take_gil() on " "eval_breaker during finalization with daemon threads." @@ -482,6 +514,14 @@ msgid "" "Fix duplicated warnings in the ``finally`` block." msgstr "" +msgid "" +":gh:`63161`: Support non-UTF-8 shebang and comments in Python source files " +"if non-UTF-8 encoding is specified. Detect decoding error in comments for " +"default (UTF-8) encoding. Show the line and position of decoding error for " +"default encoding in a traceback. Show the line containing the coding cookie " +"when it conflicts with the BOM in a traceback." +msgstr "" + msgid "" ":gh:`116738`: Make :mod:`mmap` thread-safe on the :term:`free threaded ` build." From d5bd5b856d82fff13fab5ace16095823fc136e82 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Thu, 23 Oct 2025 15:09:46 +0000 Subject: [PATCH 35/39] Update translation from Transifex --- library/annotationlib.po | 21 +++++++++++++++++- library/dis.po | 2 +- library/zlib.po | 48 ++++++++++++++++++---------------------- using/ios.po | 2 +- whatsnew/3.7.po | 2 +- whatsnew/changelog.po | 19 +++++++++++++++- 6 files changed, 63 insertions(+), 31 deletions(-) diff --git a/library/annotationlib.po b/library/annotationlib.po index a3d20da..ffe1965 100644 --- a/library/annotationlib.po +++ b/library/annotationlib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-23 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -429,12 +429,31 @@ msgid "" "__annotations__` is tried again and any error from accessing it is re-raised." msgstr "" +msgid "" +"When calling :attr:`!object.__annotate__` it is first called with :attr:" +"`~Format.FORWARDREF`. If this is not implemented, it will then check if :" +"attr:`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that in the fake " +"globals environment. If neither of these formats are supported, it will fall " +"back to using :attr:`~Format.VALUE`. If :attr:`~Format.VALUE` fails, the " +"error from this call will be raised." +msgstr "" + msgid "" "STRING: If :attr:`!object.__annotate__` exists, it is called first; " "otherwise, :attr:`!object.__annotations__` is used and stringified using :" "func:`annotations_to_string`." msgstr "" +msgid "" +"When calling :attr:`!object.__annotate__` it is first called with :attr:" +"`~Format.STRING`. If this is not implemented, it will then check if :attr:" +"`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that in the fake " +"globals environment. If neither of these formats are supported, it will fall " +"back to using :attr:`~Format.VALUE` with the result converted using :func:" +"`annotations_to_string`. If :attr:`~Format.VALUE` fails, the error from this " +"call will be raised." +msgstr "" + msgid "" "Returns a dict. :func:`!get_annotations` returns a new dict every time it's " "called; calling it twice on the same object will return two different but " diff --git a/library/dis.po b/library/dis.po index 8086280..888797c 100644 --- a/library/dis.po +++ b/library/dis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-01 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/zlib.po b/library/zlib.po index c1adf00..b32e43c 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-23 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -64,19 +64,17 @@ msgstr "" msgid "" "Compresses the bytes in *data*, returning a bytes object containing " "compressed data. *level* is an integer from ``0`` to ``9`` or ``-1`` " -"controlling the level of compression; ``1`` (Z_BEST_SPEED) is fastest and " -"produces the least compression, ``9`` (Z_BEST_COMPRESSION) is slowest and " -"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " -"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " -"default compromise between speed and compression (currently equivalent to " -"level 6)." +"controlling the level of compression; See :const:`Z_BEST_SPEED` (``1``), :" +"const:`Z_BEST_COMPRESSION` (``9``), :const:`Z_NO_COMPRESSION` (``0``), and " +"the default, :const:`Z_DEFAULT_COMPRESSION` (``-1``) for more information " +"about these values." msgstr "" msgid "" "The *wbits* argument controls the size of the history buffer (or the " "\"window size\") used when compressing data, and whether a header and " "trailer is included in the output. It can take several ranges of values, " -"defaulting to ``15`` (MAX_WBITS):" +"defaulting to ``15`` (:const:`MAX_WBITS`):" msgstr "" msgid "" @@ -115,12 +113,9 @@ msgstr "" msgid "" "*level* is the compression level -- an integer from ``0`` to ``9`` or " -"``-1``. A value of ``1`` (Z_BEST_SPEED) is fastest and produces the least " -"compression, while a value of ``9`` (Z_BEST_COMPRESSION) is slowest and " -"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " -"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " -"default compromise between speed and compression (currently equivalent to " -"level 6)." +"``-1``. See :const:`Z_BEST_SPEED` (``1``), :const:`Z_BEST_COMPRESSION` " +"(``9``), :const:`Z_NO_COMPRESSION` (``0``), and the default, :const:" +"`Z_DEFAULT_COMPRESSION` (``-1``) for more information about these values." msgstr "" msgid "" @@ -143,7 +138,7 @@ msgstr "" msgid "" "*strategy* is used to tune the compression algorithm. Possible values are :" "const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`, :" -"const:`Z_RLE` (zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2)." +"const:`Z_RLE` and :const:`Z_FIXED`." msgstr "" msgid "" @@ -264,13 +259,12 @@ msgid "" "All pending input is processed, and a bytes object containing the remaining " "compressed output is returned. *mode* can be selected from the constants :" "const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" -"`Z_FULL_FLUSH`, :const:`Z_BLOCK` (zlib 1.2.3.4), or :const:`Z_FINISH`, " -"defaulting to :const:`Z_FINISH`. Except :const:`Z_FINISH`, all constants " -"allow compressing further bytestrings of data, while :const:`Z_FINISH` " -"finishes the compressed stream and prevents compressing any more data. " -"After calling :meth:`flush` with *mode* set to :const:`Z_FINISH`, the :meth:" -"`compress` method cannot be called again; the only realistic action is to " -"delete the object." +"`Z_FULL_FLUSH`, :const:`Z_BLOCK`, or :const:`Z_FINISH`, defaulting to :const:" +"`Z_FINISH`. Except :const:`Z_FINISH`, all constants allow compressing " +"further bytestrings of data, while :const:`Z_FINISH` finishes the compressed " +"stream and prevents compressing any more data. After calling :meth:`flush` " +"with *mode* set to :const:`Z_FINISH`, the :meth:`compress` method cannot be " +"called again; the only realistic action is to delete the object." msgstr "" msgid "" @@ -373,16 +367,18 @@ msgstr "" msgid "The default buffer size for decompression operations." msgstr "" -msgid "Compression level ``0``." +msgid "Compression level ``0``; no compression." msgstr "" -msgid "Compression level ``1``." +msgid "Compression level ``1``; fastest and produces the least compression." msgstr "" -msgid "Compression level ``9``." +msgid "Compression level ``9``; slowest and produces the most compression." msgstr "" -msgid "Default compression level (``-1``)." +msgid "" +"Default compression level (``-1``); a compromise between speed and " +"compression. Currently equivalent to compression level ``6``." msgstr "" msgid "Default compression strategy, for normal data." diff --git a/using/ios.po b/using/ios.po index 078d22e..46d64ca 100644 --- a/using/ios.po +++ b/using/ios.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-01 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index de1995a..5627e07 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-01 14:15+0000\n" +"POT-Creation-Date: 2025-10-21 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index ac801ad..3578d5f 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-21 14:16+0000\n" +"POT-Creation-Date: 2025-10-23 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -80,6 +80,11 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`140474`: Fix memory leak in :class:`array.array` when creating arrays " +"from an empty :class:`str` and the ``u`` type code." +msgstr "" + msgid "" ":gh:`140272`: Fix memory leak in the :meth:`!clear` method of the :mod:`dbm." "gnu` database." @@ -219,6 +224,18 @@ msgid "" "types." msgstr "" +msgid "" +":gh:`138764`: Prevent :func:`annotationlib.call_annotate_function` from " +"calling ``__annotate__`` functions that don't support " +"``VALUE_WITH_FAKE_GLOBALS`` in a fake globals namespace with empty globals." +msgstr "" + +msgid "" +"Make ``FORWARDREF`` and ``STRING`` annotations fall back to using ``VALUE`` " +"annotations in the case that neither their own format, nor " +"``VALUE_WITH_FAKE_GLOBALS`` are supported." +msgstr "" + msgid "" ":gh:`138779`: Support device numbers larger than ``2**63-1`` for the :attr:" "`~os.stat_result.st_rdev` field of the :class:`os.stat_result` structure." From 29aaffcd75a11207d69f9e287c99d95297848a9f Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Sat, 25 Oct 2025 15:08:59 +0000 Subject: [PATCH 36/39] Update translation from Transifex --- c-api/arg.po | 4 +- c-api/capsule.po | 4 +- c-api/module.po | 8 +++- deprecations/index.po | 2 +- deprecations/pending-removal-in-future.po | 2 +- library/ast.po | 8 +++- library/asyncio-stream.po | 2 +- library/compression.po | 2 +- library/enum.po | 2 +- library/hashlib.po | 2 +- library/string.templatelib.po | 2 +- library/sysconfig.po | 2 +- library/xmlrpc.client.po | 4 +- whatsnew/3.12.po | 2 +- whatsnew/changelog.po | 48 ++++++++++++++++++++++- 15 files changed, 76 insertions(+), 18 deletions(-) diff --git a/c-api/arg.po b/c-api/arg.po index 0b814d4..e63cd16 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -251,7 +251,7 @@ msgstr "" msgid "" "This format accepts any object which implements the read-write buffer " "interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " -"The buffer may contain embedded null bytes. The caller have to call :c:func:" +"The buffer may contain embedded null bytes. The caller has to call :c:func:" "`PyBuffer_Release` when it is done with the buffer." msgstr "" diff --git a/c-api/capsule.po b/c-api/capsule.po index 1abc4f1..1efbdd2 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -27,7 +27,7 @@ msgstr "" msgid "" "This subtype of :c:type:`PyObject` represents an opaque value, useful for C " -"extension modules who need to pass an opaque value (as a :c:expr:`void*` " +"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 " diff --git a/c-api/module.po b/c-api/module.po index 25b16f3..f9ce827 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -92,6 +92,12 @@ msgid "" "was created, or ``NULL`` if the module wasn't created from a definition." msgstr "" +msgid "" +"On error, return ``NULL`` with an exception set. Use :c:func:" +"`PyErr_Occurred` to tell this case apart from a mising :c:type:`!" +"PyModuleDef`." +msgstr "" + msgid "" "Return the name of the file from which *module* was loaded using *module*'s :" "attr:`~module.__file__` attribute. If this is not defined, or if it is not " diff --git a/deprecations/index.po b/deprecations/index.po index b096fb8..bca333c 100644 --- a/deprecations/index.po +++ b/deprecations/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-future.po b/deprecations/pending-removal-in-future.po index 497a87f..1aa8054 100644 --- a/deprecations/pending-removal-in-future.po +++ b/deprecations/pending-removal-in-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/ast.po b/library/ast.po index 4c1cda2..dc08cab 100644 --- a/library/ast.po +++ b/library/ast.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -571,6 +571,12 @@ msgid "" "``str`` is a constant containing the text of the interpolation expression." msgstr "" +msgid "" +"If ``str`` is set to ``None``, then ``value`` is used to generate code when " +"calling :func:`ast.unparse`. This no longer guarantees that the generated " +"code is identical to the original and is intended for code generation." +msgstr "" + msgid "-1: no conversion" msgstr "" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 35ae94e..1f1d05d 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/compression.po b/library/compression.po index a4c525d..13c3444 100644 --- a/library/compression.po +++ b/library/compression.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/enum.po b/library/enum.po index a98c3bf..4fa3724 100644 --- a/library/enum.po +++ b/library/enum.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-03 14:13+0000\n" +"POT-Creation-Date: 2025-10-23 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: Transifex Bot <>, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/hashlib.po b/library/hashlib.po index 3342bc4..605d4c0 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-03 14:13+0000\n" +"POT-Creation-Date: 2025-10-23 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/string.templatelib.po b/library/string.templatelib.po index bf667e0..52fb32c 100644 --- a/library/string.templatelib.po +++ b/library/string.templatelib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sysconfig.po b/library/sysconfig.po index 052f64d..a3fb9f8 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 76794b0..f13ddb8 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -614,7 +614,7 @@ msgid "Convenience Functions" msgstr "" msgid "" -"Convert *params* into an XML-RPC request. or into a response if " +"Convert *params* into an XML-RPC request, or into a response if " "*methodresponse* is true. *params* can be either a tuple of arguments or an " "instance of the :exc:`Fault` exception class. If *methodresponse* is true, " "only a single value can be returned, meaning that *params* must be of length " diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po index 270f891..218a8fc 100644 --- a/whatsnew/3.12.po +++ b/whatsnew/3.12.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 3578d5f..18f5d53 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-23 14:15+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -56,6 +56,11 @@ msgstr "" msgid "Tests" msgstr "" +msgid "" +":gh:`140482`: Preserve and restore the state of ``stty echo`` as part of the " +"test environment." +msgstr "" + msgid "" ":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--" "verbose`` option anymore. Patch by Victor Stinner." @@ -80,6 +85,12 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`138774`: :func:`ast.unparse` now generates full source code when " +"handling :class:`ast.Interpolation` nodes that do not have a specified " +"source." +msgstr "" + msgid "" ":gh:`140474`: Fix memory leak in :class:`array.array` when creating arrays " "from an empty :class:`str` and the ``u`` type code." @@ -469,6 +480,25 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140517`: Fixed a reference leak when iterating over the result of :func:" +"`map` with ``strict=True`` when the input iterables have different lengths. " +"Patch by Mikhail Efimov." +msgstr "" + +msgid "" +":gh:`140471`: Fix potential buffer overflow in :class:`ast.AST` node " +"initialization when encountering malformed :attr:`~ast.AST._fields` " +"containing non-:class:`str`." +msgstr "" + +msgid "" +":gh:`140431`: Fix a crash in Python's :term:`garbage collector ` due to partially initialized :term:`coroutine` objects when " +"coroutine origin tracking depth is enabled (:func:`sys." +"set_coroutine_origin_tracking_depth`)." +msgstr "" + msgid "" ":gh:`140398`: Fix memory leaks in :mod:`readline` functions :func:`~readline." "read_init_file`, :func:`~readline.read_history_file`, :func:`~readline." @@ -494,6 +524,22 @@ msgid "" "eval_breaker during finalization with daemon threads." msgstr "" +msgid "" +":gh:`139951`: Fixes a regression in GC performance for a growing heap " +"composed mostly of small tuples." +msgstr "" + +msgid "" +"Counts number of actually tracked objects, instead of trackable objects. " +"This ensures that untracking tuples has the desired effect of reducing GC " +"overhead." +msgstr "" + +msgid "" +"Does not track most untrackable tuples during creation. This prevents large " +"numbers of small tuples causing excessive GCs." +msgstr "" + msgid "" ":gh:`140061`: Fixing the checking of whether an object is uniquely " "referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." From 9ef5fcd3609715df3cabced1df6239ca782bb78c Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Mon, 27 Oct 2025 15:10:11 +0000 Subject: [PATCH 37/39] Update translation from Transifex --- about.po | 2 +- c-api/abstract.po | 2 +- c-api/allocation.po | 2 +- c-api/apiabiversion.po | 2 +- c-api/bool.po | 2 +- c-api/buffer.po | 2 +- c-api/bytearray.po | 2 +- c-api/bytes.po | 2 +- c-api/call.po | 2 +- c-api/cell.po | 2 +- c-api/code.po | 4 +-- c-api/codec.po | 9 ++++--- c-api/complex.po | 2 +- c-api/concrete.po | 2 +- c-api/contextvars.po | 2 +- c-api/conversion.po | 2 +- c-api/coro.po | 2 +- c-api/datetime.po | 2 +- c-api/descriptor.po | 2 +- c-api/dict.po | 2 +- c-api/exceptions.po | 2 +- c-api/extension-modules.po | 2 +- c-api/file.po | 2 +- c-api/float.po | 2 +- c-api/frame.po | 2 +- c-api/function.po | 2 +- c-api/gcsupport.po | 2 +- c-api/gen.po | 2 +- c-api/hash.po | 2 +- c-api/import.po | 2 +- c-api/index.po | 2 +- c-api/init_config.po | 2 +- c-api/intro.po | 2 +- c-api/iter.po | 2 +- c-api/iterator.po | 2 +- c-api/lifecycle.po | 2 +- c-api/list.po | 2 +- c-api/long.po | 2 +- c-api/mapping.po | 2 +- c-api/marshal.po | 2 +- c-api/memory.po | 2 +- c-api/memoryview.po | 2 +- c-api/method.po | 2 +- c-api/monitoring.po | 2 +- c-api/none.po | 2 +- c-api/number.po | 2 +- c-api/objimpl.po | 2 +- c-api/perfmaps.po | 2 +- c-api/refcounting.po | 2 +- c-api/reflection.po | 2 +- c-api/sequence.po | 2 +- c-api/set.po | 2 +- c-api/slice.po | 2 +- c-api/stable.po | 2 +- c-api/structures.po | 2 +- c-api/sys.po | 2 +- c-api/time.po | 2 +- c-api/tuple.po | 2 +- c-api/type.po | 2 +- c-api/typehints.po | 2 +- c-api/utilities.po | 2 +- c-api/weakref.po | 2 +- contents.po | 2 +- copyright.po | 2 +- deprecations/c-api-pending-removal-in-3.14.po | 2 +- deprecations/c-api-pending-removal-in-3.15.po | 2 +- deprecations/c-api-pending-removal-in-3.16.po | 2 +- .../c-api-pending-removal-in-future.po | 2 +- deprecations/pending-removal-in-3.13.po | 2 +- deprecations/pending-removal-in-3.15.po | 2 +- deprecations/pending-removal-in-3.16.po | 2 +- deprecations/pending-removal-in-3.19.po | 2 +- distributing/index.po | 2 +- extending/building.po | 2 +- extending/embedding.po | 2 +- extending/index.po | 2 +- extending/newtypes.po | 2 +- extending/newtypes_tutorial.po | 2 +- extending/windows.po | 2 +- faq/design.po | 2 +- faq/extending.po | 2 +- faq/gui.po | 2 +- faq/index.po | 2 +- faq/installed.po | 2 +- faq/library.po | 2 +- faq/programming.po | 2 +- faq/windows.po | 2 +- glossary.po | 2 +- howto/annotations.po | 2 +- howto/argparse-optparse.po | 2 +- howto/argparse.po | 2 +- howto/clinic.po | 2 +- howto/cporting.po | 2 +- howto/curses.po | 2 +- howto/descriptor.po | 2 +- howto/enum.po | 2 +- howto/free-threading-extensions.po | 2 +- howto/free-threading-python.po | 2 +- howto/functional.po | 2 +- howto/gdb_helpers.po | 2 +- howto/index.po | 2 +- howto/instrumentation.po | 2 +- howto/ipaddress.po | 2 +- howto/isolating-extensions.po | 2 +- howto/logging-cookbook.po | 2 +- howto/logging.po | 2 +- howto/mro.po | 2 +- howto/perf_profiling.po | 2 +- howto/pyporting.po | 2 +- howto/regex.po | 2 +- howto/remote_debugging.po | 2 +- howto/sockets.po | 2 +- howto/sorting.po | 2 +- howto/timerfd.po | 2 +- howto/unicode.po | 2 +- howto/urllib2.po | 2 +- installing/index.po | 2 +- library/__future__.po | 2 +- library/__main__.po | 2 +- library/_thread.po | 2 +- library/abc.po | 2 +- library/aifc.po | 2 +- library/allos.po | 2 +- library/archiving.po | 2 +- library/array.po | 2 +- library/asynchat.po | 2 +- library/asyncio-api-index.po | 2 +- library/asyncio-dev.po | 2 +- library/asyncio-eventloop.po | 2 +- library/asyncio-exceptions.po | 2 +- library/asyncio-extending.po | 2 +- library/asyncio-future.po | 2 +- library/asyncio-graph.po | 2 +- library/asyncio-llapi-index.po | 2 +- library/asyncio-platforms.po | 2 +- library/asyncio-policy.po | 2 +- library/asyncio-protocol.po | 2 +- library/asyncio-runner.po | 2 +- library/asyncio-subprocess.po | 2 +- library/asyncio-sync.po | 2 +- library/asyncio-task.po | 2 +- library/asyncio.po | 2 +- library/asyncore.po | 2 +- library/atexit.po | 2 +- library/audioop.po | 2 +- library/audit_events.po | 2 +- library/base64.po | 2 +- library/bdb.po | 2 +- library/binary.po | 2 +- library/binascii.po | 2 +- library/bisect.po | 2 +- library/builtins.po | 2 +- library/bz2.po | 2 +- library/calendar.po | 2 +- library/cgi.po | 2 +- library/cgitb.po | 2 +- library/chunk.po | 2 +- library/cmd.po | 2 +- library/cmdline.po | 2 +- library/cmdlinelibs.po | 2 +- library/code.po | 2 +- library/codeop.po | 2 +- library/collections.po | 2 +- library/colorsys.po | 2 +- library/compileall.po | 2 +- library/compression.zstd.po | 2 +- library/concurrency.po | 2 +- library/concurrent.futures.po | 2 +- library/concurrent.interpreters.po | 2 +- library/concurrent.po | 2 +- library/configparser.po | 2 +- library/constants.po | 2 +- library/contextlib.po | 2 +- library/contextvars.po | 2 +- library/copy.po | 2 +- library/copyreg.po | 2 +- library/crypto.po | 2 +- library/curses.ascii.po | 2 +- library/curses.panel.po | 2 +- library/custominterp.po | 2 +- library/datatypes.po | 2 +- library/datetime.po | 2 +- library/debug.po | 2 +- library/decimal.po | 2 +- library/development.po | 2 +- library/devmode.po | 2 +- library/dialog.po | 2 +- library/distribution.po | 2 +- library/distutils.po | 2 +- library/doctest.po | 2 +- library/email.charset.po | 2 +- library/email.compat32-message.po | 2 +- library/email.contentmanager.po | 2 +- library/email.encoders.po | 2 +- library/email.errors.po | 2 +- library/email.examples.po | 2 +- library/email.generator.po | 2 +- library/email.header.po | 2 +- library/email.headerregistry.po | 2 +- library/email.iterators.po | 2 +- library/email.message.po | 2 +- library/email.mime.po | 2 +- library/email.parser.po | 2 +- library/email.po | 2 +- library/email.policy.po | 2 +- library/email.utils.po | 2 +- library/ensurepip.po | 2 +- library/errno.po | 2 +- library/exceptions.po | 2 +- library/faulthandler.po | 2 +- library/fcntl.po | 2 +- library/filecmp.po | 2 +- library/fileformats.po | 2 +- library/fileinput.po | 2 +- library/filesys.po | 2 +- library/fnmatch.po | 2 +- library/frameworks.po | 2 +- library/ftplib.po | 2 +- library/functional.po | 2 +- library/getopt.po | 2 +- library/gettext.po | 2 +- library/graphlib.po | 2 +- library/grp.po | 2 +- library/gzip.po | 2 +- library/heapq.po | 2 +- library/hmac.po | 2 +- library/html.entities.po | 2 +- library/html.parser.po | 2 +- library/http.client.po | 2 +- library/http.cookiejar.po | 2 +- library/http.cookies.po | 2 +- library/http.server.po | 2 +- library/i18n.po | 2 +- library/idle.po | 2 +- library/imaplib.po | 2 +- library/imghdr.po | 2 +- library/imp.po | 2 +- library/importlib.metadata.po | 2 +- library/importlib.resources.abc.po | 2 +- library/index.po | 2 +- library/internet.po | 2 +- library/intro.po | 2 +- library/io.po | 2 +- library/ipaddress.po | 2 +- library/ipc.po | 2 +- library/itertools.po | 2 +- library/json.po | 2 +- library/keyword.po | 2 +- library/language.po | 2 +- library/linecache.po | 2 +- library/locale.po | 2 +- library/logging.config.po | 2 +- library/logging.handlers.po | 2 +- library/logging.po | 2 +- library/lzma.po | 2 +- library/mailbox.po | 2 +- library/mailcap.po | 2 +- library/markup.po | 2 +- library/marshal.po | 2 +- library/math.po | 2 +- library/mimetypes.po | 2 +- library/mm.po | 2 +- library/modulefinder.po | 2 +- library/modules.po | 2 +- library/msilib.po | 2 +- library/msvcrt.po | 2 +- library/multiprocessing.po | 2 +- library/multiprocessing.shared_memory.po | 2 +- library/netdata.po | 2 +- library/netrc.po | 2 +- library/nis.po | 2 +- library/nntplib.po | 2 +- library/numeric.po | 2 +- library/operator.po | 2 +- library/optparse.po | 2 +- library/os.path.po | 2 +- library/ossaudiodev.po | 2 +- library/pathlib.po | 2 +- library/pdb.po | 2 +- library/persistence.po | 2 +- library/pickle.po | 2 +- library/pickletools.po | 2 +- library/pipes.po | 2 +- library/pkgutil.po | 2 +- library/plistlib.po | 2 +- library/poplib.po | 2 +- library/posix.po | 2 +- library/profile.po | 2 +- library/pty.po | 2 +- library/pwd.po | 2 +- library/py_compile.po | 2 +- library/pyclbr.po | 2 +- library/pydoc.po | 2 +- library/pyexpat.po | 2 +- library/python.po | 2 +- library/quopri.po | 2 +- library/random.po | 2 +- library/re.po | 2 +- library/readline.po | 2 +- library/removed.po | 2 +- library/reprlib.po | 2 +- library/rlcompleter.po | 2 +- library/runpy.po | 2 +- library/sched.po | 2 +- library/secrets.po | 2 +- library/security_warnings.po | 2 +- library/select.po | 2 +- library/selectors.po | 2 +- library/shelve.po | 2 +- library/shlex.po | 2 +- library/shutil.po | 2 +- library/site.po | 2 +- library/smtpd.po | 2 +- library/sndhdr.po | 2 +- library/socket.po | 2 +- library/socketserver.po | 2 +- library/spwd.po | 2 +- library/stat.po | 2 +- library/statistics.po | 2 +- library/string.po | 2 +- library/stringprep.po | 2 +- library/struct.po | 2 +- library/sunau.po | 2 +- library/superseded.po | 2 +- library/symtable.po | 2 +- library/sys.monitoring.po | 2 +- library/sys.po | 2 +- library/sys_path_init.po | 2 +- library/syslog.po | 2 +- library/tabnanny.po | 2 +- library/tarfile.po | 2 +- library/telnetlib.po | 2 +- library/tempfile.po | 2 +- library/termios.po | 2 +- library/test.po | 2 +- library/text.po | 2 +- library/textwrap.po | 2 +- library/threading.po | 2 +- library/timeit.po | 2 +- library/tk.po | 2 +- library/tkinter.colorchooser.po | 2 +- library/tkinter.dnd.po | 2 +- library/tkinter.font.po | 2 +- library/tkinter.messagebox.po | 2 +- library/tkinter.scrolledtext.po | 2 +- library/tkinter.ttk.po | 2 +- library/token.po | 2 +- library/tokenize.po | 2 +- library/tomllib.po | 2 +- library/trace.po | 2 +- library/traceback.po | 2 +- library/tracemalloc.po | 2 +- library/tty.po | 2 +- library/types.po | 2 +- library/unittest.mock-examples.po | 2 +- library/unittest.mock.po | 2 +- library/unittest.po | 2 +- library/unix.po | 2 +- library/urllib.error.po | 2 +- library/urllib.parse.po | 2 +- library/urllib.po | 2 +- library/urllib.request.po | 2 +- library/urllib.robotparser.po | 2 +- library/uu.po | 2 +- library/uuid.po | 2 +- library/venv.po | 2 +- library/wave.po | 2 +- library/weakref.po | 2 +- library/webbrowser.po | 2 +- library/windows.po | 2 +- library/winreg.po | 2 +- library/winsound.po | 2 +- library/wsgiref.po | 2 +- library/xdrlib.po | 2 +- library/xml.dom.minidom.po | 2 +- library/xml.dom.po | 2 +- library/xml.dom.pulldom.po | 2 +- library/xml.etree.elementtree.po | 2 +- library/xml.sax.handler.po | 2 +- library/xml.sax.po | 2 +- library/xml.sax.reader.po | 2 +- library/xml.sax.utils.po | 2 +- library/xmlrpc.po | 2 +- library/xmlrpc.server.po | 2 +- library/zipapp.po | 2 +- library/zipfile.po | 2 +- library/zipimport.po | 2 +- license.po | 2 +- reference/import.po | 2 +- reference/index.po | 2 +- reference/introduction.po | 2 +- reference/toplevel_components.po | 2 +- tutorial/appendix.po | 2 +- tutorial/appetite.po | 2 +- tutorial/classes.po | 2 +- tutorial/controlflow.po | 2 +- tutorial/datastructures.po | 2 +- tutorial/errors.po | 2 +- tutorial/floatingpoint.po | 2 +- tutorial/index.po | 2 +- tutorial/inputoutput.po | 2 +- tutorial/interactive.po | 2 +- tutorial/interpreter.po | 2 +- tutorial/introduction.po | 2 +- tutorial/modules.po | 2 +- tutorial/stdlib.po | 2 +- tutorial/stdlib2.po | 2 +- tutorial/venv.po | 2 +- tutorial/whatnow.po | 2 +- using/editors.po | 2 +- using/index.po | 2 +- using/mac.po | 2 +- using/unix.po | 2 +- whatsnew/2.0.po | 2 +- whatsnew/2.1.po | 2 +- whatsnew/2.2.po | 2 +- whatsnew/2.3.po | 2 +- whatsnew/2.4.po | 2 +- whatsnew/2.5.po | 2 +- whatsnew/3.0.po | 2 +- whatsnew/3.1.po | 2 +- whatsnew/3.11.po | 2 +- whatsnew/3.2.po | 2 +- whatsnew/3.3.po | 2 +- whatsnew/3.4.po | 2 +- whatsnew/3.6.po | 2 +- whatsnew/3.8.po | 2 +- whatsnew/3.9.po | 2 +- whatsnew/changelog.po | 27 ++++++++++++++++++- whatsnew/index.po | 2 +- 430 files changed, 460 insertions(+), 434 deletions(-) diff --git a/about.po b/about.po index 23c474e..2f09a94 100644 --- a/about.po +++ b/about.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/abstract.po b/c-api/abstract.po index 5e321e1..b95ccb4 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/allocation.po b/c-api/allocation.po index 660b41e..8f06944 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index 07e6aaa..35380ae 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/bool.po b/c-api/bool.po index 2f4f85e..5e5a4e3 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/buffer.po b/c-api/buffer.po index 6121f9b..444a331 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index c47090e..b8e3243 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/bytes.po b/c-api/bytes.po index 4bbe489..77547e1 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/call.po b/c-api/call.po index cd0ddb8..75eb74f 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/cell.po b/c-api/cell.po index 8667691..c382ac3 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/code.po b/c-api/code.po index c6fd414..8a7dd02 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" @@ -317,7 +317,7 @@ msgid "" "warnings." msgstr "" -msgid "Return a new an opaque index value used to adding data to code objects." +msgid "Return a new opaque index value used to adding data to code objects." msgstr "" msgid "" diff --git a/c-api/codec.po b/c-api/codec.po index fa516b1..555383f 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -25,8 +25,9 @@ msgid "Register a new codec search function." msgstr "" msgid "" -"As 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." +"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 "" msgid "" @@ -57,7 +58,7 @@ msgid "" "*object* is passed through the decoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " "may be ``NULL`` to use the default method defined for the codec. Raises a :" -"exc:`LookupError` if no encoder can be found." +"exc:`LookupError` if no decoder can be found." msgstr "" msgid "Codec lookup API" diff --git a/c-api/complex.po b/c-api/complex.po index 08c38e2..786e0e1 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/concrete.po b/c-api/concrete.po index 7961050..9c71e29 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index f17f807..8ba9ec4 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/conversion.po b/c-api/conversion.po index 9025137..ca1c696 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/coro.po b/c-api/coro.po index 28d07a4..8608518 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/datetime.po b/c-api/datetime.po index 8444154..9ce4b05 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/descriptor.po b/c-api/descriptor.po index c036c2b..1ac1a48 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/dict.po b/c-api/dict.po index 03219dd..a724747 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 3f80d82..987e4c6 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po index 446ecdd..fc8b664 100644 --- a/c-api/extension-modules.po +++ b/c-api/extension-modules.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/file.po b/c-api/file.po index c0033f2..5f8e299 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/float.po b/c-api/float.po index 4dce44e..69d3d6a 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/frame.po b/c-api/frame.po index 889c486..68f304e 100644 --- a/c-api/frame.po +++ b/c-api/frame.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/function.po b/c-api/function.po index bc04474..f3467e3 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 8246394..e0894cd 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/gen.po b/c-api/gen.po index 01f5d0b..a86dcc9 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/hash.po b/c-api/hash.po index 39421e9..cd21a4a 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/import.po b/c-api/import.po index a5a5bd7..6a5e9d1 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/index.po b/c-api/index.po index 7085046..46f2a12 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/init_config.po b/c-api/init_config.po index 4df9eb7..403f127 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/intro.po b/c-api/intro.po index 5ecef22..fe4e070 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/iter.po b/c-api/iter.po index 6e93f18..bdd9609 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/iterator.po b/c-api/iterator.po index 3d859b1..ef70292 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/lifecycle.po b/c-api/lifecycle.po index 34fc70f..edc5b9a 100644 --- a/c-api/lifecycle.po +++ b/c-api/lifecycle.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/list.po b/c-api/list.po index 650da45..3a4e572 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/long.po b/c-api/long.po index 6907aa7..374bbeb 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/mapping.po b/c-api/mapping.po index 4dd7376..54d31ea 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/marshal.po b/c-api/marshal.po index a6144bb..324d411 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/memory.po b/c-api/memory.po index bf51714..6950dfc 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 9deee9f..dd8926d 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/method.po b/c-api/method.po index 948d297..3c26da5 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/monitoring.po b/c-api/monitoring.po index b18980a..e1443fe 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/none.po b/c-api/none.po index bba1af1..96c3562 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/number.po b/c-api/number.po index 4a213af..090ccd8 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 7277870..3e689c9 100644 --- a/c-api/objimpl.po +++ b/c-api/objimpl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po index 8a09066..9e9c12f 100644 --- a/c-api/perfmaps.po +++ b/c-api/perfmaps.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index b8c8965..827b306 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/reflection.po b/c-api/reflection.po index d98c705..6997423 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/sequence.po b/c-api/sequence.po index 63e9f3c..2337858 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/set.po b/c-api/set.po index e8d28c4..1c58982 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/slice.po b/c-api/slice.po index bc4d323..8871b13 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/stable.po b/c-api/stable.po index 3ab9875..ed09b4f 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/structures.po b/c-api/structures.po index c79bd50..8286b44 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/sys.po b/c-api/sys.po index 49fb99b..3e58969 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/time.po b/c-api/time.po index c098259..177c6de 100644 --- a/c-api/time.po +++ b/c-api/time.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/tuple.po b/c-api/tuple.po index 9acd314..b7002b9 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/type.po b/c-api/type.po index 506fc30..beb6a04 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/typehints.po b/c-api/typehints.po index d00d9fc..ed21947 100644 --- a/c-api/typehints.po +++ b/c-api/typehints.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/utilities.po b/c-api/utilities.po index 10c7251..17d454c 100644 --- a/c-api/utilities.po +++ b/c-api/utilities.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/weakref.po b/c-api/weakref.po index 55292ad..9ae48cb 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/contents.po b/contents.po index dcb08a3..66309af 100644 --- a/contents.po +++ b/contents.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/copyright.po b/copyright.po index 2cb2be4..386a5f6 100644 --- a/copyright.po +++ b/copyright.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/c-api-pending-removal-in-3.14.po b/deprecations/c-api-pending-removal-in-3.14.po index 1f4ac84..0fc24cc 100644 --- a/deprecations/c-api-pending-removal-in-3.14.po +++ b/deprecations/c-api-pending-removal-in-3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/c-api-pending-removal-in-3.15.po b/deprecations/c-api-pending-removal-in-3.15.po index e05f53c..14985ca 100644 --- a/deprecations/c-api-pending-removal-in-3.15.po +++ b/deprecations/c-api-pending-removal-in-3.15.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/c-api-pending-removal-in-3.16.po b/deprecations/c-api-pending-removal-in-3.16.po index c04a212..9ae2cc4 100644 --- a/deprecations/c-api-pending-removal-in-3.16.po +++ b/deprecations/c-api-pending-removal-in-3.16.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/c-api-pending-removal-in-future.po b/deprecations/c-api-pending-removal-in-future.po index 7380e12..2d768c0 100644 --- a/deprecations/c-api-pending-removal-in-future.po +++ b/deprecations/c-api-pending-removal-in-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.13.po b/deprecations/pending-removal-in-3.13.po index 3ef84ff..6d207ce 100644 --- a/deprecations/pending-removal-in-3.13.po +++ b/deprecations/pending-removal-in-3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.15.po b/deprecations/pending-removal-in-3.15.po index b3f752b..216ec55 100644 --- a/deprecations/pending-removal-in-3.15.po +++ b/deprecations/pending-removal-in-3.15.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.16.po b/deprecations/pending-removal-in-3.16.po index 7d07711..5ee2ed1 100644 --- a/deprecations/pending-removal-in-3.16.po +++ b/deprecations/pending-removal-in-3.16.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.19.po b/deprecations/pending-removal-in-3.19.po index beb3b91..17784d4 100644 --- a/deprecations/pending-removal-in-3.19.po +++ b/deprecations/pending-removal-in-3.19.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/distributing/index.po b/distributing/index.po index ea08006..f72281f 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/building.po b/extending/building.po index f34a3d7..72c7882 100644 --- a/extending/building.po +++ b/extending/building.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/embedding.po b/extending/embedding.po index 7914fc9..4d804de 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/index.po b/extending/index.po index 90f28be..ea155f2 100644 --- a/extending/index.po +++ b/extending/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/newtypes.po b/extending/newtypes.po index b79f925..e35511a 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index d741af2..93bd5c9 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/extending/windows.po b/extending/windows.po index 66f4b59..f7a3b73 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/design.po b/faq/design.po index f47dbba..fdae152 100644 --- a/faq/design.po +++ b/faq/design.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/extending.po b/faq/extending.po index d11b2ec..aaf182a 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/gui.po b/faq/gui.po index bddd716..1b8b3b9 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/index.po b/faq/index.po index a70e34a..bcda120 100644 --- a/faq/index.po +++ b/faq/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/installed.po b/faq/installed.po index df5997d..ab46898 100644 --- a/faq/installed.po +++ b/faq/installed.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/faq/library.po b/faq/library.po index 35ec4b3..2d05137 100644 --- a/faq/library.po +++ b/faq/library.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/faq/programming.po b/faq/programming.po index 90f2d13..7330d17 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/faq/windows.po b/faq/windows.po index e59f837..8144a7c 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/glossary.po b/glossary.po index 019c5fb..14fdd8f 100644 --- a/glossary.po +++ b/glossary.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/howto/annotations.po b/howto/annotations.po index 4cddd09..221f59e 100644 --- a/howto/annotations.po +++ b/howto/annotations.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/argparse-optparse.po b/howto/argparse-optparse.po index 40d2a82..0621a8c 100644 --- a/howto/argparse-optparse.po +++ b/howto/argparse-optparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/argparse.po b/howto/argparse.po index 5793364..38589cd 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/clinic.po b/howto/clinic.po index ed124f3..f057379 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/cporting.po b/howto/cporting.po index 3c70256..f91edd1 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/curses.po b/howto/curses.po index 3696185..0406c85 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/descriptor.po b/howto/descriptor.po index 933fcc1..d1c3398 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/enum.po b/howto/enum.po index 2ec893a..d7f5606 100644 --- a/howto/enum.po +++ b/howto/enum.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/free-threading-extensions.po b/howto/free-threading-extensions.po index ad6b58b..f8db913 100644 --- a/howto/free-threading-extensions.po +++ b/howto/free-threading-extensions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/free-threading-python.po b/howto/free-threading-python.po index 0f39340..954d780 100644 --- a/howto/free-threading-python.po +++ b/howto/free-threading-python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/howto/functional.po b/howto/functional.po index 0576f9f..21c2a18 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/howto/gdb_helpers.po b/howto/gdb_helpers.po index 2c380ab..485dc86 100644 --- a/howto/gdb_helpers.po +++ b/howto/gdb_helpers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/index.po b/howto/index.po index f0fa06a..9dc077f 100644 --- a/howto/index.po +++ b/howto/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index 95feb92..603ed72 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index 1550718..012655c 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po index c7cd22a..cea72dd 100644 --- a/howto/isolating-extensions.po +++ b/howto/isolating-extensions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 01f05bd..4a9f06c 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/logging.po b/howto/logging.po index 6365aa6..3ef1ceb 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/mro.po b/howto/mro.po index abcce72..646d8c1 100644 --- a/howto/mro.po +++ b/howto/mro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/perf_profiling.po b/howto/perf_profiling.po index 9cb0093..d963dfe 100644 --- a/howto/perf_profiling.po +++ b/howto/perf_profiling.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/pyporting.po b/howto/pyporting.po index 6bf6ddc..b7b975d 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/regex.po b/howto/regex.po index d57a2ad..c235217 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po index 3384aca..813e129 100644 --- a/howto/remote_debugging.po +++ b/howto/remote_debugging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/sockets.po b/howto/sockets.po index 95ed87e..932ac76 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/sorting.po b/howto/sorting.po index 3dfab5e..a946fba 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/howto/timerfd.po b/howto/timerfd.po index 036d97e..6aac486 100644 --- a/howto/timerfd.po +++ b/howto/timerfd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/unicode.po b/howto/unicode.po index f50a5fc..6dcbe9f 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/howto/urllib2.po b/howto/urllib2.po index 9c15c5e..4274280 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/installing/index.po b/installing/index.po index 993de76..162d45f 100644 --- a/installing/index.po +++ b/installing/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/__future__.po b/library/__future__.po index cbec744..b252e31 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/__main__.po b/library/__main__.po index a79162a..803fdb3 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/_thread.po b/library/_thread.po index 086de5a..ec13fbe 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/abc.po b/library/abc.po index d727536..59d66b9 100644 --- a/library/abc.po +++ b/library/abc.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/aifc.po b/library/aifc.po index 598de0d..b17cb10 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/allos.po b/library/allos.po index b39cd80..6c2d1e2 100644 --- a/library/allos.po +++ b/library/allos.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/archiving.po b/library/archiving.po index bf666b8..ecbd121 100644 --- a/library/archiving.po +++ b/library/archiving.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/array.po b/library/array.po index 405c383..2be3973 100644 --- a/library/array.po +++ b/library/array.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asynchat.po b/library/asynchat.po index 08e623b..514e28f 100644 --- a/library/asynchat.po +++ b/library/asynchat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index d1a253d..a2bf286 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 5e4b27c..631f5e4 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 9328f56..b61cfa3 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index a7c53d1..57f13e9 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asyncio-extending.po b/library/asyncio-extending.po index c40effe..ad0df8f 100644 --- a/library/asyncio-extending.po +++ b/library/asyncio-extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 7568a2a..4457aaa 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-graph.po b/library/asyncio-graph.po index ac3a148..2da8b0d 100644 --- a/library/asyncio-graph.po +++ b/library/asyncio-graph.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index ec6ad64..11e0ef2 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 22de417..e8ba529 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index c1ce21f..0a78150 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 45103d6..aa17ab4 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/asyncio-runner.po b/library/asyncio-runner.po index ed92e49..9f7c1c8 100644 --- a/library/asyncio-runner.po +++ b/library/asyncio-runner.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index bd3139d..1a3890a 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index 886b396..cd47850 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index e8380cb..046302b 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio.po b/library/asyncio.po index 9b776cd..72b03b7 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncore.po b/library/asyncore.po index 7574000..6b17466 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/atexit.po b/library/atexit.po index 82afeb0..bed1a02 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/audioop.po b/library/audioop.po index 2ab039f..3caee3f 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/audit_events.po b/library/audit_events.po index a385728..1c7bba3 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/base64.po b/library/base64.po index 99d66c1..691a1df 100644 --- a/library/base64.po +++ b/library/base64.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/bdb.po b/library/bdb.po index b7487c6..7ce558c 100644 --- a/library/bdb.po +++ b/library/bdb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/binary.po b/library/binary.po index 210d5ce..963d347 100644 --- a/library/binary.po +++ b/library/binary.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/binascii.po b/library/binascii.po index f97de13..902e5f1 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/bisect.po b/library/bisect.po index fdd0ff2..d9e0500 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/builtins.po b/library/builtins.po index e7b64ca..3646a02 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/bz2.po b/library/bz2.po index cf151bd..116a61a 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/calendar.po b/library/calendar.po index cea17a6..5c64b61 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/cgi.po b/library/cgi.po index ea3538b..bb9b59a 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/cgitb.po b/library/cgitb.po index 984d4e0..a73a025 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/chunk.po b/library/chunk.po index 187d2f9..b2eba07 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/cmd.po b/library/cmd.po index 0bb2fbd..e0af422 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/cmdline.po b/library/cmdline.po index 6d3659c..c4c6479 100644 --- a/library/cmdline.po +++ b/library/cmdline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/cmdlinelibs.po b/library/cmdlinelibs.po index 98af2fd..3be1d35 100644 --- a/library/cmdlinelibs.po +++ b/library/cmdlinelibs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/code.po b/library/code.po index c18f005..77733a5 100644 --- a/library/code.po +++ b/library/code.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/codeop.po b/library/codeop.po index 477dcd3..d128aa2 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/collections.po b/library/collections.po index e6e7751..610f680 100644 --- a/library/collections.po +++ b/library/collections.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/colorsys.po b/library/colorsys.po index e147812..dbdd341 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/compileall.po b/library/compileall.po index 274e9ca..5ec06a5 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/compression.zstd.po b/library/compression.zstd.po index 1f07e9c..7d6cf3e 100644 --- a/library/compression.zstd.po +++ b/library/compression.zstd.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/concurrency.po b/library/concurrency.po index 0890cef..66dc712 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index e7deeca..e755549 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po index f4056ad..5367205 100644 --- a/library/concurrent.interpreters.po +++ b/library/concurrent.interpreters.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/concurrent.po b/library/concurrent.po index 3ae10ff..e4f8ba8 100644 --- a/library/concurrent.po +++ b/library/concurrent.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/configparser.po b/library/configparser.po index f40dde7..1e79dab 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/constants.po b/library/constants.po index e7efeb0..03ef4de 100644 --- a/library/constants.po +++ b/library/constants.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/contextlib.po b/library/contextlib.po index a9057d9..837ad60 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/contextvars.po b/library/contextvars.po index 39a8231..4c0e4bf 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/copy.po b/library/copy.po index d303c55..9f9d7b7 100644 --- a/library/copy.po +++ b/library/copy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/copyreg.po b/library/copyreg.po index 7784706..4ccb3cb 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/crypto.po b/library/crypto.po index 509222e..4747846 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/curses.ascii.po b/library/curses.ascii.po index db52391..9ddf1b0 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/curses.panel.po b/library/curses.panel.po index b09ecd5..c5d7e95 100644 --- a/library/curses.panel.po +++ b/library/curses.panel.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/custominterp.po b/library/custominterp.po index b2d9c88..8100eb9 100644 --- a/library/custominterp.po +++ b/library/custominterp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/datatypes.po b/library/datatypes.po index 725c6c0..d2629e2 100644 --- a/library/datatypes.po +++ b/library/datatypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/datetime.po b/library/datetime.po index 88b6864..7bd04c5 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/debug.po b/library/debug.po index 429b9e4..429cb67 100644 --- a/library/debug.po +++ b/library/debug.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/decimal.po b/library/decimal.po index 97e7315..a470c48 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/development.po b/library/development.po index 0e6d7d4..0a905be 100644 --- a/library/development.po +++ b/library/development.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/devmode.po b/library/devmode.po index be88c32..3db656f 100644 --- a/library/devmode.po +++ b/library/devmode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/dialog.po b/library/dialog.po index 39030ca..569d558 100644 --- a/library/dialog.po +++ b/library/dialog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/distribution.po b/library/distribution.po index 0ea74f7..17bf3cb 100644 --- a/library/distribution.po +++ b/library/distribution.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/distutils.po b/library/distutils.po index d5db656..44ae60a 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/doctest.po b/library/doctest.po index 3e24d8e..413de8c 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.charset.po b/library/email.charset.po index 46b0235..a42ae31 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 8a820b9..459fd3a 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po index 95b3493..10d5ed2 100644 --- a/library/email.contentmanager.po +++ b/library/email.contentmanager.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.encoders.po b/library/email.encoders.po index cbcbe6a..b3c4a29 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.errors.po b/library/email.errors.po index b63edc5..ea000fd 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.examples.po b/library/email.examples.po index 5ceb562..7ddabce 100644 --- a/library/email.examples.po +++ b/library/email.examples.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.generator.po b/library/email.generator.po index 48b82e8..c24c38a 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.header.po b/library/email.header.po index 1bcfe3e..cf32f76 100644 --- a/library/email.header.po +++ b/library/email.header.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index a7dbb12..204f101 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.iterators.po b/library/email.iterators.po index b4571a8..d2f297e 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.message.po b/library/email.message.po index eeb0293..2bf38c9 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.mime.po b/library/email.mime.po index 72ff4cb..4e764e7 100644 --- a/library/email.mime.po +++ b/library/email.mime.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.parser.po b/library/email.parser.po index f4e959b..e788e73 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.po b/library/email.po index 017df08..124d894 100644 --- a/library/email.po +++ b/library/email.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/email.policy.po b/library/email.policy.po index c6bf5f7..8c41b53 100644 --- a/library/email.policy.po +++ b/library/email.policy.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/email.utils.po b/library/email.utils.po index e901250..cf4ea28 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/ensurepip.po b/library/ensurepip.po index be233da..2d92c9d 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/errno.po b/library/errno.po index 8324875..7bff977 100644 --- a/library/errno.po +++ b/library/errno.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/exceptions.po b/library/exceptions.po index b023212..5d2be24 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/faulthandler.po b/library/faulthandler.po index 6815f0c..df467cc 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/fcntl.po b/library/fcntl.po index 5e0ac65..b398de3 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/filecmp.po b/library/filecmp.po index 6c05946..6fc90cc 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/fileformats.po b/library/fileformats.po index ca3a5ae..261dcd4 100644 --- a/library/fileformats.po +++ b/library/fileformats.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/fileinput.po b/library/fileinput.po index 2bb8e2d..2f2ef41 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/filesys.po b/library/filesys.po index def2da5..b482f8e 100644 --- a/library/filesys.po +++ b/library/filesys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/fnmatch.po b/library/fnmatch.po index 8809182..fcbd139 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/frameworks.po b/library/frameworks.po index 18316c1..4bb258e 100644 --- a/library/frameworks.po +++ b/library/frameworks.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/ftplib.po b/library/ftplib.po index c70f792..eff20f9 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/functional.po b/library/functional.po index f9d4dee..2a1abd0 100644 --- a/library/functional.po +++ b/library/functional.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/getopt.po b/library/getopt.po index 89bb9b7..baa2c16 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/gettext.po b/library/gettext.po index 56c1fdc..e72251f 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/graphlib.po b/library/graphlib.po index 7278488..c48e33b 100644 --- a/library/graphlib.po +++ b/library/graphlib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/grp.po b/library/grp.po index a8b20d5..a26adf4 100644 --- a/library/grp.po +++ b/library/grp.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/gzip.po b/library/gzip.po index 8b2cfef..5b745cb 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/heapq.po b/library/heapq.po index b138d21..1fc400f 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/hmac.po b/library/hmac.po index 1cc01a2..e4a8242 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/html.entities.po b/library/html.entities.po index 282db4f..4454c2b 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/html.parser.po b/library/html.parser.po index 7cc2e12..eecdbfd 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/http.client.po b/library/http.client.po index 2140337..38b63bb 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po index e879717..a6a864d 100644 --- a/library/http.cookiejar.po +++ b/library/http.cookiejar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/http.cookies.po b/library/http.cookies.po index 271a103..eaa8aee 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/http.server.po b/library/http.server.po index 9a2294f..eea82d4 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/i18n.po b/library/i18n.po index c4b4617..92cd3b4 100644 --- a/library/i18n.po +++ b/library/i18n.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/idle.po b/library/idle.po index 76cc02f..cf19b54 100644 --- a/library/idle.po +++ b/library/idle.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/imaplib.po b/library/imaplib.po index 32282dd..3cecb7b 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/imghdr.po b/library/imghdr.po index 684d50c..a826baf 100644 --- a/library/imghdr.po +++ b/library/imghdr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/imp.po b/library/imp.po index aea12cf..c49fe04 100644 --- a/library/imp.po +++ b/library/imp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index ac0b501..6984ea0 100644 --- a/library/importlib.metadata.po +++ b/library/importlib.metadata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/importlib.resources.abc.po b/library/importlib.resources.abc.po index 82f1c18..f52b8fd 100644 --- a/library/importlib.resources.abc.po +++ b/library/importlib.resources.abc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/index.po b/library/index.po index 509b968..c889e97 100644 --- a/library/index.po +++ b/library/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/internet.po b/library/internet.po index 05f0b03..3b4648f 100644 --- a/library/internet.po +++ b/library/internet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/intro.po b/library/intro.po index c9c1c04..71fbd38 100644 --- a/library/intro.po +++ b/library/intro.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/io.po b/library/io.po index 163dfc7..99f6b72 100644 --- a/library/io.po +++ b/library/io.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/ipaddress.po b/library/ipaddress.po index 2b663b6..7e757b9 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/ipc.po b/library/ipc.po index 072198b..67bbe9a 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/itertools.po b/library/itertools.po index 1a01b5c..4648c81 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/json.po b/library/json.po index abec3ef..b1767db 100644 --- a/library/json.po +++ b/library/json.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/keyword.po b/library/keyword.po index 26a2ef7..4ef8172 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/language.po b/library/language.po index 8c0e443..3939baa 100644 --- a/library/language.po +++ b/library/language.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/linecache.po b/library/linecache.po index 8f4f0c8..970137c 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/locale.po b/library/locale.po index 4c18cd4..26e4398 100644 --- a/library/locale.po +++ b/library/locale.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/logging.config.po b/library/logging.config.po index c471606..4f5ff00 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 536bd70..efbc1b6 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/logging.po b/library/logging.po index 416951b..4206eea 100644 --- a/library/logging.po +++ b/library/logging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/lzma.po b/library/lzma.po index 1a80f63..e2351ff 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/mailbox.po b/library/mailbox.po index 5a69a65..84770b7 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/mailcap.po b/library/mailcap.po index f6989a3..f85cfa1 100644 --- a/library/mailcap.po +++ b/library/mailcap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/markup.po b/library/markup.po index 3e9f8de..85f3af6 100644 --- a/library/markup.po +++ b/library/markup.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/marshal.po b/library/marshal.po index e36456e..480fb49 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/math.po b/library/math.po index 89aa036..1a8d40f 100644 --- a/library/math.po +++ b/library/math.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/mimetypes.po b/library/mimetypes.po index 4eed859..3787cf4 100644 --- a/library/mimetypes.po +++ b/library/mimetypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/mm.po b/library/mm.po index 130c038..f519f3a 100644 --- a/library/mm.po +++ b/library/mm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/modulefinder.po b/library/modulefinder.po index 41d404f..9ffe66a 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/modules.po b/library/modules.po index de4bc54..fe61e23 100644 --- a/library/modules.po +++ b/library/modules.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/msilib.po b/library/msilib.po index 65383e4..afb134b 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/msvcrt.po b/library/msvcrt.po index 8e08742..99cb8c7 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 25f2849..903b79c 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index 562ffe2..a01bb65 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/netdata.po b/library/netdata.po index b178c09..c5346cd 100644 --- a/library/netdata.po +++ b/library/netdata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/netrc.po b/library/netrc.po index df6cd1a..04df5cb 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/nis.po b/library/nis.po index 0a71ac9..6db78f3 100644 --- a/library/nis.po +++ b/library/nis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/nntplib.po b/library/nntplib.po index 0e082d3..1db59c5 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/numeric.po b/library/numeric.po index 2fd7c3b..54fada1 100644 --- a/library/numeric.po +++ b/library/numeric.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/operator.po b/library/operator.po index 6502bc9..2a8d509 100644 --- a/library/operator.po +++ b/library/operator.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/optparse.po b/library/optparse.po index 2c234b4..1a6364e 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/os.path.po b/library/os.path.po index 1d5a7b3..2396c6a 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index a49ee57..38612c1 100644 --- a/library/ossaudiodev.po +++ b/library/ossaudiodev.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pathlib.po b/library/pathlib.po index 6844f2a..c02a531 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/pdb.po b/library/pdb.po index 1aabb9e..6e02f22 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/persistence.po b/library/persistence.po index 9b0f181..7df474d 100644 --- a/library/persistence.po +++ b/library/persistence.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pickle.po b/library/pickle.po index 9deb9ae..b1e912d 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/pickletools.po b/library/pickletools.po index 09f1163..e33b383 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pipes.po b/library/pipes.po index fbe688e..380b98d 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pkgutil.po b/library/pkgutil.po index 32c7ec1..fa33429 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/plistlib.po b/library/plistlib.po index 5ecdfb5..104e495 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/poplib.po b/library/poplib.po index e6710f4..31ed3b9 100644 --- a/library/poplib.po +++ b/library/poplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/posix.po b/library/posix.po index da5fcb0..af761d4 100644 --- a/library/posix.po +++ b/library/posix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/profile.po b/library/profile.po index 7de3b89..27ccf7f 100644 --- a/library/profile.po +++ b/library/profile.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/pty.po b/library/pty.po index baf33ba..4039ed9 100644 --- a/library/pty.po +++ b/library/pty.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pwd.po b/library/pwd.po index dd186ce..9000931 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/py_compile.po b/library/py_compile.po index fa778a6..68bebc0 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pyclbr.po b/library/pyclbr.po index 5a6325c..e740f64 100644 --- a/library/pyclbr.po +++ b/library/pyclbr.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/pydoc.po b/library/pydoc.po index 3fd8231..42ff659 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/pyexpat.po b/library/pyexpat.po index ecdbc3b..542fd62 100644 --- a/library/pyexpat.po +++ b/library/pyexpat.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/python.po b/library/python.po index 0a56867..1080f84 100644 --- a/library/python.po +++ b/library/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/quopri.po b/library/quopri.po index 30c8f12..1f7ddd3 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/random.po b/library/random.po index e55d2ac..0c8bce0 100644 --- a/library/random.po +++ b/library/random.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/re.po b/library/re.po index 3d047f7..9719c2e 100644 --- a/library/re.po +++ b/library/re.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/readline.po b/library/readline.po index dbe8e2d..ccf6196 100644 --- a/library/readline.po +++ b/library/readline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/removed.po b/library/removed.po index 19868c9..0de889a 100644 --- a/library/removed.po +++ b/library/removed.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/reprlib.po b/library/reprlib.po index 5ff427c..b2ee4ef 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/rlcompleter.po b/library/rlcompleter.po index 5672075..4cf09ad 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/runpy.po b/library/runpy.po index ffd188c..050c4d4 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sched.po b/library/sched.po index c5c8eb8..401bfbe 100644 --- a/library/sched.po +++ b/library/sched.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/secrets.po b/library/secrets.po index 1b95605..7c294ba 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/security_warnings.po b/library/security_warnings.po index 70e95f7..f193d92 100644 --- a/library/security_warnings.po +++ b/library/security_warnings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/select.po b/library/select.po index 57a9767..1237674 100644 --- a/library/select.po +++ b/library/select.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/selectors.po b/library/selectors.po index 4d462c6..4ae5782 100644 --- a/library/selectors.po +++ b/library/selectors.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/shelve.po b/library/shelve.po index 1ec0136..2ec9693 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/shlex.po b/library/shlex.po index 2b9e509..79df28e 100644 --- a/library/shlex.po +++ b/library/shlex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/shutil.po b/library/shutil.po index 84cefee..04d0989 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/site.po b/library/site.po index acf36ee..ba7b9d4 100644 --- a/library/site.po +++ b/library/site.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/smtpd.po b/library/smtpd.po index 5c2022d..ec2d402 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sndhdr.po b/library/sndhdr.po index 3261441..436e33d 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/socket.po b/library/socket.po index 1fd524d..7b9b09a 100644 --- a/library/socket.po +++ b/library/socket.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/socketserver.po b/library/socketserver.po index afb6e49..0d83990 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/spwd.po b/library/spwd.po index 2f500ba..a01ab29 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/stat.po b/library/stat.po index d84882a..ab5ef3f 100644 --- a/library/stat.po +++ b/library/stat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/statistics.po b/library/statistics.po index caba816..93e1233 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/string.po b/library/string.po index c11126e..13874d4 100644 --- a/library/string.po +++ b/library/string.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/stringprep.po b/library/stringprep.po index 696192b..c9b6deb 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/struct.po b/library/struct.po index e9c8eca..ff07fdb 100644 --- a/library/struct.po +++ b/library/struct.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/sunau.po b/library/sunau.po index 3d7953b..0836c83 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/superseded.po b/library/superseded.po index 2021187..a8246d1 100644 --- a/library/superseded.po +++ b/library/superseded.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/symtable.po b/library/symtable.po index e0d5981..e0559ba 100644 --- a/library/symtable.po +++ b/library/symtable.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sys.monitoring.po b/library/sys.monitoring.po index 08d19cc..2f7d63f 100644 --- a/library/sys.monitoring.po +++ b/library/sys.monitoring.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sys.po b/library/sys.po index 8327801..0d35600 100644 --- a/library/sys.po +++ b/library/sys.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/sys_path_init.po b/library/sys_path_init.po index a4031ea..48a8ca0 100644 --- a/library/sys_path_init.po +++ b/library/sys_path_init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/syslog.po b/library/syslog.po index 31ff3c7..972c89c 100644 --- a/library/syslog.po +++ b/library/syslog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tabnanny.po b/library/tabnanny.po index be6ea0d..7a38da1 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tarfile.po b/library/tarfile.po index 9e34c42..391a26a 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/telnetlib.po b/library/telnetlib.po index b2da6bb..1f8cabb 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tempfile.po b/library/tempfile.po index 8391926..47aafe7 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/termios.po b/library/termios.po index fb4aee8..10f822d 100644 --- a/library/termios.po +++ b/library/termios.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/test.po b/library/test.po index e9104f6..29a6ba7 100644 --- a/library/test.po +++ b/library/test.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/text.po b/library/text.po index 5a5c8d6..5c400bf 100644 --- a/library/text.po +++ b/library/text.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/textwrap.po b/library/textwrap.po index 2361124..7dcb3c0 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/threading.po b/library/threading.po index 66b05f6..95b06d4 100644 --- a/library/threading.po +++ b/library/threading.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/timeit.po b/library/timeit.po index 27dbb56..6e10770 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tk.po b/library/tk.po index 5275e9c..99a1efd 100644 --- a/library/tk.po +++ b/library/tk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.colorchooser.po b/library/tkinter.colorchooser.po index 192dc6b..eaf6701 100644 --- a/library/tkinter.colorchooser.po +++ b/library/tkinter.colorchooser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.dnd.po b/library/tkinter.dnd.po index 2a65315..41a6651 100644 --- a/library/tkinter.dnd.po +++ b/library/tkinter.dnd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.font.po b/library/tkinter.font.po index 7abf9a3..1830b61 100644 --- a/library/tkinter.font.po +++ b/library/tkinter.font.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.messagebox.po b/library/tkinter.messagebox.po index 06aa890..81574d4 100644 --- a/library/tkinter.messagebox.po +++ b/library/tkinter.messagebox.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index fb8c7db..8265754 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 424bffa..7de9c5f 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/token.po b/library/token.po index fa808d6..bc913c7 100644 --- a/library/token.po +++ b/library/token.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tokenize.po b/library/tokenize.po index 618907f..ba5e9b3 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tomllib.po b/library/tomllib.po index 704e60e..6070876 100644 --- a/library/tomllib.po +++ b/library/tomllib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/trace.po b/library/trace.po index 9d119cb..b318276 100644 --- a/library/trace.po +++ b/library/trace.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/traceback.po b/library/traceback.po index 61bfae4..7f1b22c 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index c1ee6c8..91cdf17 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/tty.po b/library/tty.po index 1c5c59e..d222ed6 100644 --- a/library/tty.po +++ b/library/tty.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/types.po b/library/types.po index 23b848d..541f058 100644 --- a/library/types.po +++ b/library/types.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 3f680cc..2e966f4 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 6669646..af3c0c4 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/unittest.po b/library/unittest.po index 3c4b77c..441534e 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/unix.po b/library/unix.po index 967ae68..ff36525 100644 --- a/library/unix.po +++ b/library/unix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/urllib.error.po b/library/urllib.error.po index 3bf2f87..f09087c 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index 4019380..3535c98 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/urllib.po b/library/urllib.po index f6e541b..4128596 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/urllib.request.po b/library/urllib.request.po index 6347b38..ccd07e4 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 4e77dae..07ff207 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/uu.po b/library/uu.po index 288ded3..98a308d 100644 --- a/library/uu.po +++ b/library/uu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/uuid.po b/library/uuid.po index 19eebc0..4295a13 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/venv.po b/library/venv.po index 09e5ca9..efd336b 100644 --- a/library/venv.po +++ b/library/venv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/wave.po b/library/wave.po index 5cb7a77..635642d 100644 --- a/library/wave.po +++ b/library/wave.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/weakref.po b/library/weakref.po index ebad012..4fb2898 100644 --- a/library/weakref.po +++ b/library/weakref.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/webbrowser.po b/library/webbrowser.po index 47fc689..33f9ba4 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/windows.po b/library/windows.po index 522c321..8cf78ca 100644 --- a/library/windows.po +++ b/library/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/winreg.po b/library/winreg.po index 4004401..789a871 100644 --- a/library/winreg.po +++ b/library/winreg.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/winsound.po b/library/winsound.po index e831087..372ceac 100644 --- a/library/winsound.po +++ b/library/winsound.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/wsgiref.po b/library/wsgiref.po index 533c2c6..eaec4e0 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xdrlib.po b/library/xdrlib.po index 7daf4e4..93a00a3 100644 --- a/library/xdrlib.po +++ b/library/xdrlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xml.dom.minidom.po b/library/xml.dom.minidom.po index e472bbc..660a319 100644 --- a/library/xml.dom.minidom.po +++ b/library/xml.dom.minidom.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/xml.dom.po b/library/xml.dom.po index 8e723f0..792d13e 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/xml.dom.pulldom.po b/library/xml.dom.pulldom.po index 13af584..daacabb 100644 --- a/library/xml.dom.pulldom.po +++ b/library/xml.dom.pulldom.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 7302211..5048ea5 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po index 861ae90..884bf6a 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xml.sax.po b/library/xml.sax.po index 6e0af0d..28f693f 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xml.sax.reader.po b/library/xml.sax.reader.po index 3575407..4904879 100644 --- a/library/xml.sax.reader.po +++ b/library/xml.sax.reader.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index 6b24822..9348f6c 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xmlrpc.po b/library/xmlrpc.po index 1dbe55a..89e5032 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/xmlrpc.server.po b/library/xmlrpc.server.po index 32f8b82..5927b88 100644 --- a/library/xmlrpc.server.po +++ b/library/xmlrpc.server.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/zipapp.po b/library/zipapp.po index da994fe..9bcee63 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/zipfile.po b/library/zipfile.po index f2a4f40..bb39285 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/zipimport.po b/library/zipimport.po index 02928fc..2b5e14a 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/license.po b/license.po index de5452e..f1a84ae 100644 --- a/license.po +++ b/license.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/reference/import.po b/reference/import.po index 94d3294..d69f5aa 100644 --- a/reference/import.po +++ b/reference/import.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/reference/index.po b/reference/index.po index a4080e4..0722821 100644 --- a/reference/index.po +++ b/reference/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/reference/introduction.po b/reference/introduction.po index abfd76c..a83b09f 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index bef0f19..52096e0 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index e8e9303..cd1b33c 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/appetite.po b/tutorial/appetite.po index 27ab6e2..5129d07 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/classes.po b/tutorial/classes.po index 7a886e8..7dc3a0c 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 1c7b80b..f3e80d9 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 214d27a..7454bf2 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/errors.po b/tutorial/errors.po index aeaa346..f4b69b3 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 7cf5257..a4fd526 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/tutorial/index.po b/tutorial/index.po index 2c94b2b..1ed6d91 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 0cee3dc..3617c08 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index a789cb7..57b828a 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index de1e692..d25a4ec 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 4bb5d69..ec3ffa5 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/modules.po b/tutorial/modules.po index 947db03..9d7b2f9 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 1e78d40..496621a 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 3535d47..0f375b3 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/venv.po b/tutorial/venv.po index 36c036d..eb2cf0e 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 756c7c0..503e8c5 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/using/editors.po b/using/editors.po index a57abcd..1eb1c3f 100644 --- a/using/editors.po +++ b/using/editors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/using/index.po b/using/index.po index a7b3363..4c4f0ad 100644 --- a/using/index.po +++ b/using/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/using/mac.po b/using/mac.po index e27459f..2fc551f 100644 --- a/using/mac.po +++ b/using/mac.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/using/unix.po b/using/unix.po index b00b079..dab0406 100644 --- a/using/unix.po +++ b/using/unix.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 174b5e8..d6cac22 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index d09af6a..a6a5cdc 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index dc8186c..df65c68 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index fe43cf9..3272d37 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po index a4a0474..f73c66a 100644 --- a/whatsnew/2.4.po +++ b/whatsnew/2.4.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index b487f8d..b8a735f 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index 5ed50ba..60efef2 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 6331a00..27bfcbf 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index dd1b559..929f94d 100644 --- a/whatsnew/3.11.po +++ b/whatsnew/3.11.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 6337c10..daaa98c 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index c0aea08..c85d24c 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index 0356cf9..b572a1e 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index 6939394..508ace6 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index f38d743..8eda209 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 28ddc95..de31905 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 18f5d53..74478b2 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-25 14:12+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -85,6 +85,18 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`140633`: Ignore :exc:`AttributeError` when setting a module's " +"``__file__`` attribute when loading an extension module packaged as Apple " +"Framework." +msgstr "" + +msgid "" +":gh:`140593`: :mod:`xml.parsers.expat`: Fix a memory leak that could affect " +"users with :meth:`~xml.parsers.expat.xmlparser.ElementDeclHandler` set to a " +"custom element declaration handler. Patch by Sebastian Pipping." +msgstr "" + msgid "" ":gh:`138774`: :func:`ast.unparse` now generates full source code when " "handling :class:`ast.Interpolation` nodes that do not have a specified " @@ -511,6 +523,13 @@ msgid "" "method returns an object that isn't an :class:`int`." msgstr "" +msgid "" +":gh:`140358`: Restore elapsed time and unreachable object count in GC debug " +"output. These were inadvertently removed during a refactor of ``gc.c``. The " +"debug log now again reports elapsed collection time and the number of " +"unreachable objects. Contributed by Pål Grønås Drange." +msgstr "" + msgid "" ":gh:`140306`: Fix memory leaks in cross-interpreter channel operations and " "shared namespace handling." @@ -654,6 +673,12 @@ msgstr "" msgid "C API" msgstr "" +msgid "" +":gh:`140487`: Fix :c:macro:`Py_RETURN_NOTIMPLEMENTED` in limited C API 3.11 " +"and older: don't treat ``Py_NotImplemented`` as immortal. Patch by Victor " +"Stinner." +msgstr "" + msgid "" ":gh:`140153`: Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. " "Patch by Victor Stinner." diff --git a/whatsnew/index.po b/whatsnew/index.po index 1a815d0..71c4510 100644 --- a/whatsnew/index.po +++ b/whatsnew/index.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-05 14:11+0000\n" +"POT-Creation-Date: 2025-10-25 14:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" From 60100cfcee88a840eb85fea3b4c32e02646f10c6 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Wed, 29 Oct 2025 15:09:00 +0000 Subject: [PATCH 38/39] Update translation from Transifex --- deprecations/pending-removal-in-3.14.po | 2 +- library/asyncio-queue.po | 2 +- library/html.po | 2 +- library/inspect.po | 2 +- reference/executionmodel.po | 2 +- whatsnew/3.5.po | 2 +- whatsnew/changelog.po | 37 ++++++++++++++++++++++++- 7 files changed, 42 insertions(+), 7 deletions(-) diff --git a/deprecations/pending-removal-in-3.14.po b/deprecations/pending-removal-in-3.14.po index a1dd1ca..f6e6627 100644 --- a/deprecations/pending-removal-in-3.14.po +++ b/deprecations/pending-removal-in-3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index e292eb5..11984a0 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/html.po b/library/html.po index 4aa09c4..f2e165c 100644 --- a/library/html.po +++ b/library/html.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/inspect.po b/library/inspect.po index 7758f84..4f81b7a 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 45426c4..2c9905b 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index b4ce585..cca166b 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-07 14:17+0000\n" +"POT-Creation-Date: 2025-10-27 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 74478b2..8b30c2a 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-27 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -38,6 +38,11 @@ msgstr "" msgid "Tools/Demos" msgstr "" +msgid "" +":gh:`140702`: The iOS testbed app will now expose the ``GITHUB_ACTIONS`` " +"environment variable to iOS apps being tested." +msgstr "" + msgid "" ":gh:`137484`: Have ``Tools/wasm/wasi`` put the build Python into a directory " "named after the build triple instead of \"build\"." @@ -85,6 +90,17 @@ msgstr "" msgid "Library" msgstr "" +msgid "" +":gh:`140590`: Fix arguments checking for the :meth:`!functools.partial." +"__setstate__` that may lead to internal state corruption and crash. Patch by " +"Sergey Miryanov." +msgstr "" + +msgid "" +":gh:`140634`: Fix a reference counting bug in :meth:`!os.sched_param." +"__reduce__`." +msgstr "" + msgid "" ":gh:`140633`: Ignore :exc:`AttributeError` when setting a module's " "``__file__`` attribute when loading an extension module packaged as Apple " @@ -97,6 +113,12 @@ msgid "" "custom element declaration handler. Patch by Sebastian Pipping." msgstr "" +msgid "" +":gh:`140607`: Inside :meth:`io.RawIOBase.read`, validate that the count of " +"bytes returned by :meth:`io.RawIOBase.readinto` is valid (inside the " +"provided buffer)." +msgstr "" + msgid "" ":gh:`138774`: :func:`ast.unparse` now generates full source code when " "handling :class:`ast.Interpolation` nodes that do not have a specified " @@ -492,6 +514,11 @@ msgstr "" msgid "Core and Builtins" msgstr "" +msgid "" +":gh:`140576`: Fixed crash in :func:`tokenize.generate_tokens` in case of " +"specific incorrect input. Patch by Mikhail Efimov." +msgstr "" + msgid "" ":gh:`140517`: Fixed a reference leak when iterating over the result of :func:" "`map` with ``strict=True`` when the input iterables have different lengths. " @@ -559,6 +586,11 @@ msgid "" "numbers of small tuples causing excessive GCs." msgstr "" +msgid "" +":gh:`140104`: Fix a bug with exception handling in the JIT. Patch by Ken " +"Jin. Bug reported by Daniel Diniz." +msgstr "" + msgid "" ":gh:`140061`: Fixing the checking of whether an object is uniquely " "referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." @@ -687,6 +719,9 @@ msgstr "" msgid "Build" msgstr "" +msgid ":gh:`140189`: iOS builds were added to CI." +msgstr "" + msgid "" ":gh:`138489`: When cross-compiling for WASI by ``build_wasm`` or " "``build_emscripten``, the ``build-details.json`` step is now included in the " From 4b8ff6368925469922b7fb3b5bbbc59828826378 Mon Sep 17 00:00:00 2001 From: GitHub Action's update-translation job Date: Fri, 31 Oct 2025 15:10:39 +0000 Subject: [PATCH 39/39] Update translation from Transifex --- c-api/init.po | 2 +- c-api/unicode.po | 2 +- c-api/veryhigh.po | 2 +- deprecations/c-api-pending-removal-in-3.18.po | 2 +- deprecations/pending-removal-in-3.17.po | 2 +- extending/extending.po | 2 +- library/argparse.po | 2 +- library/collections.abc.po | 2 +- library/crypt.po | 2 +- library/csv.po | 2 +- library/ctypes.po | 2 +- library/curses.po | 2 +- library/dataclasses.po | 2 +- library/dbm.po | 2 +- library/difflib.po | 2 +- library/fractions.po | 2 +- library/functions.po | 2 +- library/functools.po | 2 +- library/getpass.po | 2 +- library/importlib.resources.po | 2 +- library/logging.po | 18 ++++---- library/numbers.po | 2 +- library/platform.po | 2 +- library/queue.po | 2 +- library/sqlite3.po | 2 +- library/subprocess.po | 2 +- library/zoneinfo.po | 2 +- reference/compound_stmts.po | 2 +- reference/grammar.po | 2 +- reference/simple_stmts.po | 2 +- sphinx.po | 2 +- using/android.po | 2 +- using/configure.po | 2 +- whatsnew/2.6.po | 2 +- whatsnew/2.7.po | 2 +- whatsnew/3.10.po | 2 +- whatsnew/3.13.po | 2 +- whatsnew/changelog.po | 42 ++++++++++++++++++- 38 files changed, 88 insertions(+), 44 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index fe87c0e..10fcee3 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/c-api/unicode.po b/c-api/unicode.po index 2b7c1a0..cecefcf 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 1c5edcf..a533b0e 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/c-api-pending-removal-in-3.18.po b/deprecations/c-api-pending-removal-in-3.18.po index 711f59e..26e09ef 100644 --- a/deprecations/c-api-pending-removal-in-3.18.po +++ b/deprecations/c-api-pending-removal-in-3.18.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/deprecations/pending-removal-in-3.17.po b/deprecations/pending-removal-in-3.17.po index c3588a8..8c09554 100644 --- a/deprecations/pending-removal-in-3.17.po +++ b/deprecations/pending-removal-in-3.17.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/extending/extending.po b/extending/extending.po index f166ba2..707307b 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/argparse.po b/library/argparse.po index c154b4a..13d8402 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/collections.abc.po b/library/collections.abc.po index 64dd8f1..4f11223 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/crypt.po b/library/crypt.po index 7f56d57..cb1f088 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/csv.po b/library/csv.po index 15a11b0..07dbbec 100644 --- a/library/csv.po +++ b/library/csv.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/ctypes.po b/library/ctypes.po index 1bc2a89..0dc8681 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/curses.po b/library/curses.po index e0d41c6..9e7b8b3 100644 --- a/library/curses.po +++ b/library/curses.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/dataclasses.po b/library/dataclasses.po index bb61a77..2ad6bbe 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/dbm.po b/library/dbm.po index 2adfee7..93eaa27 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/difflib.po b/library/difflib.po index 543b3a5..45e9d79 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/fractions.po b/library/fractions.po index 14c64b9..2c0bcac 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/functions.po b/library/functions.po index 117b87d..055756c 100644 --- a/library/functions.po +++ b/library/functions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/functools.po b/library/functools.po index 2964765..274f272 100644 --- a/library/functools.po +++ b/library/functools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/getpass.po b/library/getpass.po index dc2683a..6a20693 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/importlib.resources.po b/library/importlib.resources.po index 2f0bd1c..b81552e 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/logging.po b/library/logging.po index 4206eea..3c07736 100644 --- a/library/logging.po +++ b/library/logging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-25 14:12+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -1321,11 +1321,12 @@ msgstr "" msgid "" "Returns an instance of :class:`LoggerAdapter` initialized with an " -"underlying :class:`Logger` instance, a dict-like object (*extra*), and a " -"boolean (*merge_extra*) indicating whether or not the *extra* argument of " -"individual log calls should be merged with the :class:`LoggerAdapter` extra. " -"The default behavior is to ignore the *extra* argument of individual log " -"calls and only use the one of the :class:`LoggerAdapter` instance" +"underlying :class:`Logger` instance, an optional dict-like object (*extra*), " +"and an optional boolean (*merge_extra*) indicating whether or not the " +"*extra* argument of individual log calls should be merged with the :class:" +"`LoggerAdapter` extra. The default behavior is to ignore the *extra* " +"argument of individual log calls and only use the one of the :class:" +"`LoggerAdapter` instance" msgstr "" msgid "" @@ -1364,7 +1365,10 @@ msgid "" "delegate to the underlying logger and allow adapters to be nested." msgstr "" -msgid "The *merge_extra* argument was added." +msgid "The *extra* argument is now optional." +msgstr "" + +msgid "The *merge_extra* parameter was added." msgstr "" msgid "Thread Safety" diff --git a/library/numbers.po b/library/numbers.po index bf5d6cd..f821f83 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/platform.po b/library/platform.po index dbefcf4..da20ac9 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/queue.po b/library/queue.po index fa350e4..9feb636 100644 --- a/library/queue.po +++ b/library/queue.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/library/sqlite3.po b/library/sqlite3.po index 786762a..4ede15a 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/subprocess.po b/library/subprocess.po index 223c091..dc46f32 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index bfbafe7..16bf070 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index 8eff4e3..0665a2f 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/reference/grammar.po b/reference/grammar.po index df8dbff..d57c35e 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 6806f2e..92b647b 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/sphinx.po b/sphinx.po index 230f652..bc4d691 100644 --- a/sphinx.po +++ b/sphinx.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/using/android.po b/using/android.po index 996a1fe..94dba4d 100644 --- a/using/android.po +++ b/using/android.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/using/configure.po b/using/configure.po index fce7b39..fca6971 100644 --- a/using/configure.po +++ b/using/configure.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index f7cea24..8f1a9fc 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index db51c85..8bb2701 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.10.po b/whatsnew/3.10.po index e8d77c6..d48cb34 100644 --- a/whatsnew/3.10.po +++ b/whatsnew/3.10.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-09 14:15+0000\n" +"POT-Creation-Date: 2025-10-29 14:15+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/3.13.po b/whatsnew/3.13.po index bd12403..f8ad81a 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-11 14:13+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 8b30c2a..1dcd5c2 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-29 14:15+0000\n" +"POT-Creation-Date: 2025-10-31 14:16+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: Hungarian (https://app.transifex.com/python-doc/teams/5390/" "hu/)\n" @@ -66,6 +66,12 @@ msgid "" "test environment." msgstr "" +msgid "" +":gh:`140082`: Update ``python -m test`` to set ``FORCE_COLOR=1`` when being " +"run with color enabled so that :mod:`unittest` which is run by it with " +"redirected output will output in color." +msgstr "" + msgid "" ":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--" "verbose`` option anymore. Patch by Victor Stinner." @@ -90,6 +96,14 @@ msgstr "" msgid "Library" msgstr "" +msgid ":gh:`120057`: Add :func:`os.reload_environ` to ``os.__all__``." +msgstr "" + +msgid "" +":gh:`140228`: Avoid making unnecessary filesystem calls for frozen modules " +"in :mod:`linecache` when the global module cache is not present." +msgstr "" + msgid "" ":gh:`140590`: Fix arguments checking for the :meth:`!functools.partial." "__setstate__` that may lead to internal state corruption and crash. Patch by " @@ -119,6 +133,11 @@ msgid "" "provided buffer)." msgstr "" +msgid "" +":gh:`138162`: Fix :class:`logging.LoggerAdapter` with ``merge_extra=True`` " +"and without the *extra* argument." +msgstr "" + msgid "" ":gh:`138774`: :func:`ast.unparse` now generates full source code when " "handling :class:`ast.Interpolation` nodes that do not have a specified " @@ -519,6 +538,11 @@ msgid "" "specific incorrect input. Patch by Mikhail Efimov." msgstr "" +msgid "" +":gh:`140551`: Fixed crash in :class:`dict` if :meth:`dict.clear` is called " +"at the lookup stage. Patch by Mikhail Efimov and Inada Naoki." +msgstr "" + msgid "" ":gh:`140517`: Fixed a reference leak when iterating over the result of :func:" "`map` with ``strict=True`` when the input iterables have different lengths. " @@ -622,6 +646,12 @@ msgid "" "tokenizer." msgstr "" +msgid "" +":gh:`139640`: :func:`ast.parse` no longer emits syntax warnings for " +"``return``/``break``/``continue`` in ``finally`` (see :pep:`765`) -- they " +"are only emitted during compilation." +msgstr "" + msgid "" ":gh:`139640`: Fix swallowing some syntax warnings in different modules if " "they accidentally have the same message and are emitted from the same line. " @@ -651,6 +681,12 @@ msgid "" "termios attributes is not allowed." msgstr "" +msgid "" +":gh:`138944`: Fix :exc:`SyntaxError` message when invalid syntax appears on " +"the same line as a valid ``import ... as ...`` or ``from ... import ... " +"as ...`` statement. Patch by Brian Schubert." +msgstr "" + msgid "" ":gh:`105487`: Remove non-existent :meth:`~object.__copy__`, :meth:`~object." "__deepcopy__`, and :attr:`~type.__bases__` from the :meth:`~object.__dir__` " @@ -719,6 +755,10 @@ msgstr "" msgid "Build" msgstr "" +msgid "" +":gh:`140768`: Warn when the WASI SDK version doesn't match what's supported." +msgstr "" + msgid ":gh:`140189`: iOS builds were added to CI." msgstr ""